From ef0d3b7b15272e06d81781500718cd4901b4e321 Mon Sep 17 00:00:00 2001
From: nferraro
Date: Tue, 26 Feb 2019 13:09:24 +0100
Subject: [PATCH] Fix #497: upgrade to knative eventing 0.3.0
---
Gopkg.lock | 177 +-
Gopkg.toml | 33 +-
pkg/util/kubernetes/collection.go | 4 -
pkg/util/kubernetes/replace.go | 2 +-
.../go/asset/apiv1beta1/asset_client.go | 6 +-
.../go/asset/apiv1beta1/doc.go | 8 +-
.../go/asset/v1beta1/asset_client.go | 2 +-
.../cloud.google.com/go/asset/v1beta1/doc.go | 2 +-
.../cloud.google.com/go/bigquery/bigquery.go | 2 +-
.../apiv1/data_transfer_client.go | 6 +-
.../go/bigquery/datatransfer/apiv1/doc.go | 6 +-
vendor/cloud.google.com/go/bigquery/doc.go | 2 +-
vendor/cloud.google.com/go/bigquery/job.go | 11 +-
vendor/cloud.google.com/go/bigquery/params.go | 4 +
.../apiv1beta1/big_query_storage_client.go | 255 ++
.../go/bigquery/storage/apiv1beta1/doc.go | 89 +
vendor/cloud.google.com/go/bigquery/table.go | 14 +-
vendor/cloud.google.com/go/bigquery/value.go | 2 +-
vendor/cloud.google.com/go/bigtable/admin.go | 10 +-
.../cloud.google.com/go/bigtable/bigtable.go | 2 +-
.../go/bigtable/bttest/inmem.go | 8 +-
.../go/bigtable/cmd/emulator/cbtemulator.go | 10 +-
.../go/bigtable/internal/gax/call_option.go | 2 +-
.../go/bigtable/internal/gax/invoke.go | 2 +-
vendor/cloud.google.com/go/cloud.go | 2 +-
.../apiv2beta2/cloud_tasks_client.go | 6 +-
.../go/cloudtasks/apiv2beta2/doc.go | 8 +-
.../apiv2beta3/cloud_tasks_client.go | 6 +-
.../go/cloudtasks/apiv2beta3/doc.go | 8 +-
.../go/compute/metadata/metadata.go | 24 +-
.../container/apiv1/cluster_manager_client.go | 2 +-
.../container_analysis_v1_beta1_client.go | 6 +-
.../go/containeranalysis/apiv1beta1/doc.go | 6 +-
.../apiv1beta1/grafeas_v1_beta1_client.go | 6 +-
.../apiv1/cluster_controller_client.go | 6 +-
.../cloud.google.com/go/dataproc/apiv1/doc.go | 6 +-
.../dataproc/apiv1/job_controller_client.go | 6 +-
.../apiv1/workflow_template_client.go | 6 +-
.../apiv1beta2/cluster_controller_client.go | 6 +-
.../go/dataproc/apiv1beta2/doc.go | 8 +-
.../apiv1beta2/job_controller_client.go | 6 +-
.../apiv1beta2/workflow_template_client.go | 6 +-
.../cloud.google.com/go/datastore/client.go | 2 +-
.../go/datastore/datastore.go | 7 +-
vendor/cloud.google.com/go/datastore/load.go | 1 -
vendor/cloud.google.com/go/datastore/prop.go | 3 -
.../go/debugger/apiv2/controller2_client.go | 6 +-
.../go/debugger/apiv2/debugger2_client.go | 6 +-
.../cloud.google.com/go/debugger/apiv2/doc.go | 6 +-
.../go/dialogflow/apiv2/agents_client.go | 6 +-
.../go/dialogflow/apiv2/contexts_client.go | 6 +-
.../go/dialogflow/apiv2/doc.go | 6 +-
.../dialogflow/apiv2/entity_types_client.go | 6 +-
.../go/dialogflow/apiv2/intents_client.go | 6 +-
.../apiv2/session_entity_types_client.go | 6 +-
.../go/dialogflow/apiv2/sessions_client.go | 6 +-
.../go/dlp/apiv2/dlp_client.go | 6 +-
vendor/cloud.google.com/go/dlp/apiv2/doc.go | 6 +-
.../go/errorreporting/apiv1beta1/doc.go | 8 +-
.../apiv1beta1/error_group_client.go | 6 +-
.../apiv1beta1/error_stats_client.go | 6 +-
.../apiv1beta1/report_errors_client.go | 6 +-
.../go/errorreporting/errors.go | 6 +-
.../go/expr/apiv1alpha1/cel_client.go | 6 +-
.../go/expr/apiv1alpha1/conformance_client.go | 6 +-
.../go/expr/apiv1alpha1/doc.go | 6 +-
.../go/firestore/apiv1/doc.go | 91 +
.../go/firestore/apiv1/firestore_client.go | 503 +++
.../go/firestore/apiv1beta1/doc.go | 6 +-
.../firestore/apiv1beta1/firestore_client.go | 6 +-
.../cloud.google.com/go/firestore/client.go | 30 +-
.../cloud.google.com/go/firestore/collref.go | 36 +-
vendor/cloud.google.com/go/firestore/doc.go | 12 +
.../cloud.google.com/go/firestore/docref.go | 63 +-
.../cloud.google.com/go/firestore/document.go | 6 +-
.../go/firestore/fieldpath.go | 20 +-
.../go/firestore/from_value.go | 3 +-
.../go/firestore/genproto/test.pb.go | 430 +-
.../go/firestore/list_documents.go | 4 +-
.../cloud.google.com/go/firestore/options.go | 4 +-
vendor/cloud.google.com/go/firestore/order.go | 2 +-
vendor/cloud.google.com/go/firestore/query.go | 24 +-
.../cloud.google.com/go/firestore/to_value.go | 2 +-
.../go/firestore/transaction.go | 24 +-
vendor/cloud.google.com/go/firestore/watch.go | 4 +-
.../go/firestore/writebatch.go | 2 +-
.../go/functions/metadata/metadata.go | 3 +-
.../go/httpreplay/httpreplay.go | 55 +-
.../go/httpreplay/internal/proxy/converter.go | 291 ++
.../go/httpreplay/internal/proxy/debug.go | 11 -
.../go/httpreplay/internal/proxy/log.go | 99 +-
.../go/httpreplay/internal/proxy/record.go | 53 +-
.../go/httpreplay/internal/proxy/replay.go | 180 +-
.../go/iam/admin/apiv1/doc.go | 6 +-
.../go/iam/admin/apiv1/iam_client.go | 6 +-
.../go/iam/credentials/apiv1/doc.go | 6 +-
.../apiv1/iam_credentials_client.go | 6 +-
vendor/cloud.google.com/go/iam/iam.go | 25 +-
.../go/internal/btree/btree.go | 8 -
.../go/internal/pretty/pretty.go | 6 -
vendor/cloud.google.com/go/internal/retry.go | 2 +-
.../go/internal/testutil/context.go | 2 +-
.../go/internal/version/version.go | 2 +-
.../go/irm/apiv1alpha2/doc.go | 86 +
.../go/irm/apiv1alpha2/incident_client.go | 1226 ++++++
vendor/cloud.google.com/go/kms/apiv1/doc.go | 6 +-
vendor/cloud.google.com/go/kms/apiv1/iam.go | 10 +
.../go/kms/apiv1/key_management_client.go | 6 +-
.../cloud.google.com/go/language/apiv1/doc.go | 6 +-
.../go/language/apiv1/language_client.go | 6 +-
.../go/language/apiv1beta2/doc.go | 8 +-
.../go/language/apiv1beta2/language_client.go | 6 +-
.../go/logging/apiv2/config_client.go | 6 +-
.../cloud.google.com/go/logging/apiv2/doc.go | 6 +-
.../go/logging/apiv2/logging_client.go | 8 +-
.../go/logging/apiv2/metrics_client.go | 6 +-
vendor/cloud.google.com/go/logging/doc.go | 8 +-
.../go/logging/logadmin/logadmin.go | 10 +-
vendor/cloud.google.com/go/logging/logging.go | 6 +-
.../go/longrunning/autogen/doc.go | 6 +-
.../longrunning/autogen/operations_client.go | 6 +-
.../go/longrunning/longrunning.go | 2 +-
.../monitoring/apiv3/alert_policy_client.go | 6 +-
.../go/monitoring/apiv3/doc.go | 6 +-
.../go/monitoring/apiv3/group_client.go | 6 +-
.../go/monitoring/apiv3/metric_client.go | 6 +-
.../apiv3/notification_channel_client.go | 6 +-
.../monitoring/apiv3/uptime_check_client.go | 6 +-
.../cloud.google.com/go/oslogin/apiv1/doc.go | 6 +-
.../go/oslogin/apiv1/os_login_client.go | 6 +-
.../go/oslogin/apiv1beta/doc.go | 8 +-
.../go/oslogin/apiv1beta/os_login_client.go | 6 +-
.../go/profiler/busybench/busybench.go | 2 +-
.../cloud.google.com/go/profiler/profiler.go | 3 +-
.../go/profiler/proftest/proftest.go | 135 +-
.../cloud.google.com/go/pubsub/apiv1/doc.go | 9 +-
.../go/pubsub/apiv1/publisher_client.go | 9 +-
.../go/pubsub/apiv1/subscriber_client.go | 66 +-
vendor/cloud.google.com/go/pubsub/iterator.go | 6 +-
.../cloud.google.com/go/pubsub/pstest/fake.go | 80 +-
vendor/cloud.google.com/go/pubsub/pubsub.go | 2 -
.../cloud.google.com/go/pubsub/pullstream.go | 28 +-
vendor/cloud.google.com/go/pubsub/service.go | 43 +-
.../go/pubsub/subscription.go | 2 +-
vendor/cloud.google.com/go/pubsub/topic.go | 4 +-
.../go/redis/apiv1/cloud_redis_client.go | 6 +-
vendor/cloud.google.com/go/redis/apiv1/doc.go | 6 +-
.../go/redis/apiv1beta1/cloud_redis_client.go | 6 +-
.../go/redis/apiv1beta1/doc.go | 8 +-
vendor/cloud.google.com/go/rpcreplay/doc.go | 28 +-
.../go/rpcreplay/rpcreplay.go | 26 +
.../apiv1beta1/cloud_scheduler_client.go | 6 +-
.../go/scheduler/apiv1beta1/doc.go | 8 +-
.../go/securitycenter/apiv1beta1/doc.go | 11 +-
.../apiv1beta1/security_center_client.go | 6 +-
.../database/apiv1/database_admin_client.go | 6 +-
.../go/spanner/admin/database/apiv1/doc.go | 6 +-
.../go/spanner/admin/instance/apiv1/doc.go | 6 +-
.../instance/apiv1/instance_admin_client.go | 6 +-
.../cloud.google.com/go/spanner/apiv1/doc.go | 9 +-
.../go/spanner/apiv1/spanner_client.go | 6 +-
vendor/cloud.google.com/go/spanner/client.go | 22 +-
.../go/spanner/{util.go => cmp.go} | 23 +-
vendor/cloud.google.com/go/spanner/doc.go | 2 -
.../spanner/{ => internal/backoff}/backoff.go | 14 +-
.../go/spanner/internal/testutil/funcmock.go | 65 +
.../spanner/internal/testutil/mockclient.go | 160 +-
vendor/cloud.google.com/go/spanner/pdml.go | 4 +-
vendor/cloud.google.com/go/spanner/read.go | 15 +-
vendor/cloud.google.com/go/spanner/retry.go | 7 +-
vendor/cloud.google.com/go/spanner/session.go | 223 +-
vendor/cloud.google.com/go/spanner/trace.go | 6 +-
.../go/spanner/transaction.go | 18 +-
vendor/cloud.google.com/go/spanner/value.go | 4 +-
.../cloud.google.com/go/speech/apiv1/doc.go | 6 +-
.../go/speech/apiv1/speech_client.go | 6 +-
.../go/speech/apiv1p1beta1/doc.go | 8 +-
.../go/speech/apiv1p1beta1/speech_client.go | 6 +-
vendor/cloud.google.com/go/storage/bucket.go | 52 +
vendor/cloud.google.com/go/storage/doc.go | 2 +-
vendor/cloud.google.com/go/storage/invoke.go | 2 +-
vendor/cloud.google.com/go/storage/storage.go | 12 -
.../go/talent/apiv4beta1/company_client.go | 270 ++
.../go/talent/apiv4beta1/completion_client.go | 134 +
.../go/talent/apiv4beta1/doc.go | 91 +
.../go/talent/apiv4beta1/event_client.go | 124 +
.../go/talent/apiv4beta1/job_client.go | 424 ++
.../go/talent/apiv4beta1/profile_client.go | 354 ++
.../go/talent/apiv4beta1/resume_client.go | 156 +
.../go/texttospeech/apiv1/doc.go | 6 +-
.../apiv1/text_to_speech_client.go | 9 +-
vendor/cloud.google.com/go/tools.go | 31 +
vendor/cloud.google.com/go/trace/apiv1/doc.go | 6 +-
.../go/trace/apiv1/trace_client.go | 6 +-
vendor/cloud.google.com/go/trace/apiv2/doc.go | 6 +-
.../go/trace/apiv2/trace_client.go | 6 +-
.../go/videointelligence/apiv1/doc.go | 6 +-
.../apiv1/video_intelligence_client.go | 6 +-
.../go/videointelligence/apiv1beta1/doc.go | 8 +-
.../apiv1beta1/video_intelligence_client.go | 6 +-
.../go/videointelligence/apiv1beta2/doc.go | 8 +-
.../apiv1beta2/video_intelligence_client.go | 6 +-
.../go/vision/apiv1/client.go | 2 +-
.../cloud.google.com/go/vision/apiv1/doc.go | 6 +-
.../go/vision/apiv1/image_annotator_client.go | 6 +-
.../go/vision/apiv1/product_search_client.go | 6 +-
.../go/vision/apiv1p1beta1/doc.go | 6 +-
.../apiv1p1beta1/image_annotator_client.go | 6 +-
.../github.com/PuerkitoBio/purell/purell.go | 2 +-
.../emicklei/go-restful/container.go | 38 +-
.../examples/restful-curly-router.go | 8 +-
.../github.com/emicklei/go-restful/jsr311.go | 3 +-
.../github.com/emicklei/go-restful/route.go | 8 +
.../emicklei/go-restful/route_builder.go | 4 +-
.../emicklei/go-restful/web_service.go | 2 +-
vendor/github.com/go-openapi/spec/bindata.go | 95 +-
vendor/github.com/go-openapi/spec/cache.go | 60 +
vendor/github.com/go-openapi/spec/debug.go | 4 +-
vendor/github.com/go-openapi/spec/expander.go | 783 +---
vendor/github.com/go-openapi/spec/header.go | 6 +-
vendor/github.com/go-openapi/spec/info.go | 5 +-
vendor/github.com/go-openapi/spec/items.go | 8 +-
.../github.com/go-openapi/spec/normalizer.go | 152 +
.../github.com/go-openapi/spec/operation.go | 28 +-
.../github.com/go-openapi/spec/parameter.go | 51 +-
.../github.com/go-openapi/spec/path_item.go | 7 +-
vendor/github.com/go-openapi/spec/response.go | 5 +-
vendor/github.com/go-openapi/spec/schema.go | 53 +-
.../go-openapi/spec/schema_loader.go | 275 ++
.../go-openapi/spec/security_scheme.go | 5 +-
vendor/github.com/go-openapi/spec/swagger.go | 18 +-
vendor/github.com/go-openapi/spec/tag.go | 5 +-
vendor/github.com/go-openapi/spec/unused.go | 174 +
vendor/github.com/gobuffalo/envy/envy.go | 11 +
.../gobuffalo/envy/packrd/packed-packr.go | 21 -
vendor/github.com/gobuffalo/envy/version.go | 2 +-
.../conformance_proto/conformance.pb.go | 62 +-
.../gogo/protobuf/gogoproto/gogo.pb.go | 110 +-
.../jsonpb_test_proto/more_test_objects.pb.go | 50 +-
.../jsonpb_test_proto/test_objects.pb.go | 108 +-
.../protobuf/plugin/unmarshal/unmarshal.go | 54 +-
.../github.com/gogo/protobuf/proto/decode.go | 1 -
.../gogo/protobuf/proto/deprecated.go | 63 +
.../gogo/protobuf/proto/extensions.go | 2 +-
vendor/github.com/gogo/protobuf/proto/lib.go | 20 -
.../gogo/protobuf/proto/message_set.go | 137 +-
.../gogo/protobuf/proto/properties.go | 9 -
.../protobuf/proto/proto3_proto/proto3.pb.go | 58 +-
.../gogo/protobuf/proto/table_marshal.go | 2 +-
.../gogo/protobuf/proto/table_unmarshal.go | 4 +-
.../gogo/protobuf/proto/test_proto/test.pb.go | 409 +-
.../descriptor/descriptor.pb.go | 565 +--
.../descriptor/descriptor_gostring.gen.go | 26 +-
.../protoc-gen-gogo/generator/generator.go | 387 +-
.../protoc-gen-gogo/generator/helper.go | 2 +-
.../protobuf/protoc-gen-gogo/grpc/grpc.go | 19 +-
.../protoc-gen-gogo/plugin/plugin.pb.go | 38 +-
.../testdata/deprecated/deprecated.pb.go | 170 +-
.../extension_base/extension_base.pb.go | 35 +-
.../extension_extra/extension_extra.pb.go | 20 +-
.../extension_user/extension_user.pb.go | 74 +-
.../protoc-gen-gogo/testdata/grpc/grpc.pb.go | 79 +-
.../testdata/import_public/a.pb.go | 67 +-
.../testdata/import_public/b.pb.go | 36 +-
.../import_public/importing/importing.pb.go | 84 +
.../testdata/import_public/sub/a.pb.go | 470 ++-
.../testdata/import_public/sub/b.pb.go | 49 +-
.../testdata/imports/fmt/m.pb.go | 20 +-
.../testdata/imports/test_a_1/m1.pb.go | 32 +-
.../testdata/imports/test_a_1/m2.pb.go | 20 +-
.../testdata/imports/test_a_2/m3.pb.go | 20 +-
.../testdata/imports/test_a_2/m4.pb.go | 20 +-
.../testdata/imports/test_b_1/m1.pb.go | 20 +-
.../testdata/imports/test_b_1/m2.pb.go | 20 +-
.../testdata/imports/test_import_a1m1.pb.go | 24 +-
.../testdata/imports/test_import_a1m2.pb.go | 24 +-
.../testdata/imports/test_import_all.pb.go | 32 +-
.../testdata/my_test/test.pb.go | 332 +-
.../testdata/proto3/proto3.pb.go | 32 +-
.../test/asymetric-issue125/asym.pb.go | 84 +-
.../protobuf/test/cachedsize/cachedsize.pb.go | 60 +-
.../test/casttype/combos/both/casttype.pb.go | 800 ++--
.../casttype/combos/marshaler/casttype.pb.go | 677 ++-
.../casttype/combos/neither/casttype.pb.go | 692 +--
.../combos/unmarshaler/casttype.pb.go | 807 ++--
.../protobuf/test/castvalue/castvalue.pb.go | 603 +--
.../castvalue/combos/both/castvalue.pb.go | 656 +--
.../combos/marshaler/castvalue.pb.go | 607 +--
.../combos/unmarshaler/castvalue.pb.go | 656 +--
.../protobuf/test/combos/both/thetest.pb.go | 3490 ++++++++++------
.../test/combos/marshaler/thetest.pb.go | 1744 ++++----
.../test/combos/unmarshaler/thetest.pb.go | 3703 ++++++++++-------
.../test/custombytesnonstruct/proto.pb.go | 75 +-
.../gogo/protobuf/test/data/data.pb.go | 75 +-
.../test/deterministic/deterministic.pb.go | 121 +-
.../protobuf/test/empty-issue70/empty.pb.go | 57 +-
.../test/enumcustomname/enumcustomname.pb.go | 70 +-
.../protobuf/test/enumdecl/enumdecl.pb.go | 82 +-
.../test/enumdecl_all/enumdeclall.pb.go | 96 +-
.../protobuf/test/enumprefix/enumprefix.pb.go | 22 +-
.../test/enumstringer/enumstringer.pb.go | 84 +-
.../gogo/protobuf/test/example/example.pb.go | 742 ++--
.../protobuf/test/filedotname/file.dot.pb.go | 559 +--
.../gogo/protobuf/test/fuzztests/fuzz.pb.go | 302 +-
.../gogo/protobuf/test/group/group.pb.go | 583 +--
.../importcustom-issue389/imported/a.pb.go | 69 +-
.../importcustom-issue389/importing/c.pb.go | 82 +-
.../protobuf/test/importdedup/proto.pb.go | 25 +-
.../test/importdedup/subpkg/subproto.pb.go | 20 +-
.../importduplicate/importduplicate.pb.go | 81 +-
.../test/importduplicate/proto/proto.pb.go | 51 +-
.../importduplicate/sortkeys/sortable.pb.go | 53 +-
.../indeximport-issue72/index/index.pb.go | 76 +-
.../indeximport-issue72/indeximport.pb.go | 77 +-
.../protobuf/test/int64support/object.pb.go | 76 +-
.../protobuf/test/issue260/issue260.pb.go | 138 +-
.../protobuf/test/issue261/issue261.pb.go | 109 +-
.../protobuf/test/issue262/timefail.pb.go | 91 +-
.../test/issue312/events/events.pb.go | 61 +-
.../protobuf/test/issue312/issue312.pb.go | 20 +-
.../protobuf/test/issue322/issue322.pb.go | 75 +-
.../protobuf/test/issue330/issue330.pb.go | 70 +-
.../gogo/protobuf/test/issue34/proto.pb.go | 82 +-
.../protobuf/test/issue411/issue411.pb.go | 20 +-
.../protobuf/test/issue42order/issue42.pb.go | 82 +-
.../protobuf/test/issue435/issue435.pb.go | 26 +-
.../protobuf/test/issue438/issue438.pb.go | 117 +-
.../protobuf/test/issue444/issue444.pb.go | 43 +-
.../protobuf/test/issue449/issue449.pb.go | 91 +-
.../protobuf/test/issue503/issue503.pb.go | 865 ++++
.../gogo/protobuf/test/issue8/proto.pb.go | 66 +-
.../test/mapdefaults/combos/both/map.pb.go | 664 +--
.../mapdefaults/combos/marshaler/map.pb.go | 601 +--
.../test/mapdefaults/combos/neither/map.pb.go | 601 +--
.../mapdefaults/combos/unmarshaler/map.pb.go | 664 +--
.../mapsproto2/combos/both/mapsproto2.pb.go | 1289 +++---
.../combos/marshaler/mapsproto2.pb.go | 804 ++--
.../combos/neither/mapsproto2.pb.go | 829 ++--
.../combos/unmarshaler/mapsproto2.pb.go | 1312 +++---
.../gogo/protobuf/test/merge/merge.pb.go | 26 +-
.../gogo/protobuf/test/moredefaults/md.pb.go | 74 +-
.../protobuf/test/nopackage/nopackage.pb.go | 76 +-
.../protobuf/test/oneof/combos/both/one.pb.go | 781 ++--
.../test/oneof/combos/marshaler/one.pb.go | 685 +--
.../test/oneof/combos/neither/one.pb.go | 682 +--
.../test/oneof/combos/unmarshaler/one.pb.go | 780 ++--
.../test/oneof3/combos/both/one.pb.go | 677 +--
.../test/oneof3/combos/marshaler/one.pb.go | 622 +--
.../test/oneof3/combos/neither/one.pb.go | 619 +--
.../test/oneof3/combos/unmarshaler/one.pb.go | 676 +--
.../protobuf/test/oneofembed/oneofembed.pb.go | 60 +-
.../gogo/protobuf/test/packed/packed.pb.go | 550 ++-
.../test/proto3extension/proto3ext.pb.go | 14 +-
.../protobuf/test/protosize/protosize.pb.go | 83 +-
.../test/required/requiredexample.pb.go | 213 +-
.../test/sizeunderscore/sizeunderscore.pb.go | 81 +-
.../protobuf/test/stdtypes/stdtypes.pb.go | 236 +-
.../theproto3/combos/both/theproto3.pb.go | 1923 +++++----
.../combos/marshaler/theproto3.pb.go | 1337 +++---
.../theproto3/combos/neither/theproto3.pb.go | 1333 +++---
.../combos/unmarshaler/theproto3.pb.go | 1925 +++++----
.../gogo/protobuf/test/thetest.pb.go | 1736 ++++----
.../protobuf/test/typedecl/typedecl.pb.go | 117 +-
.../test/typedecl_all/typedeclall.pb.go | 117 +-
.../test/types/combos/both/types.pb.go | 1608 ++++---
.../test/types/combos/marshaler/types.pb.go | 375 +-
.../test/types/combos/neither/types.pb.go | 375 +-
.../test/types/combos/unmarshaler/types.pb.go | 1610 ++++---
.../test/unmarshalmerge/unmarshalmerge.pb.go | 172 +-
.../test/unrecognized/unrecognized.pb.go | 822 ++--
.../unrecognizedgroup/unrecognizedgroup.pb.go | 651 +--
.../protobuf/test/xxxfields/xxxfields.pb.go | 98 +-
.../github.com/gogo/protobuf/types/any.pb.go | 92 +-
.../github.com/gogo/protobuf/types/api.pb.go | 201 +-
.../gogo/protobuf/types/duration.go | 2 +-
.../gogo/protobuf/types/duration.pb.go | 85 +-
.../gogo/protobuf/types/empty.pb.go | 73 +-
.../gogo/protobuf/types/field_mask.pb.go | 132 +-
.../gogo/protobuf/types/source_context.pb.go | 88 +-
.../gogo/protobuf/types/struct.pb.go | 185 +-
.../gogo/protobuf/types/timestamp.go | 6 +-
.../gogo/protobuf/types/timestamp.pb.go | 113 +-
.../github.com/gogo/protobuf/types/type.pb.go | 325 +-
.../gogo/protobuf/types/wrappers.pb.go | 200 +-
.../vanity/test/fast/gogovanity.pb.go | 74 +-
.../protobuf/vanity/test/fast/proto3.pb.go | 60 +-
.../protobuf/vanity/test/fast/vanity.pb.go | 67 +-
.../vanity/test/faster/gogovanity.pb.go | 76 +-
.../protobuf/vanity/test/faster/proto3.pb.go | 60 +-
.../protobuf/vanity/test/faster/vanity.pb.go | 68 +-
.../vanity/test/slick/gogovanity.pb.go | 85 +-
.../protobuf/vanity/test/slick/proto3.pb.go | 69 +-
.../protobuf/vanity/test/slick/vanity.pb.go | 77 +-
.../github.com/golang/groupcache/lru/lru.go | 2 +-
.../google/go-containerregistry/LICENSE | 202 +
.../cmd/crane/help/main.go | 35 +
.../go-containerregistry/cmd/crane/main.go | 29 +
.../go-containerregistry/cmd/gcrane/main.go | 43 +
.../go-containerregistry/cmd/ko/binary.go | 30 +
.../go-containerregistry/cmd/ko/commands.go | 298 ++
.../go-containerregistry/cmd/ko/config.go | 92 +
.../go-containerregistry/cmd/ko/filestuff.go | 133 +
.../go-containerregistry/cmd/ko/flatname.go | 52 +
.../go-containerregistry/cmd/ko/local.go | 30 +
.../go-containerregistry/cmd/ko/main.go | 37 +
.../go-containerregistry/cmd/ko/publish.go | 105 +
.../go-containerregistry/cmd/ko/resolve.go | 259 ++
.../go-containerregistry/cmd/ko/tags.go | 29 +
.../cmd/ko/test/kodata/kenobi | 1 +
.../go-containerregistry/cmd/ko/test/main.go | 32 +
.../go-containerregistry/pkg/authn/anon.go | 26 +
.../go-containerregistry/pkg/authn/auth.go | 29 +
.../go-containerregistry/pkg/authn/authn.go | 21 +
.../go-containerregistry/pkg/authn/basic.go | 33 +
.../go-containerregistry/pkg/authn/bearer.go | 29 +
.../go-containerregistry/pkg/authn/doc.go | 17 +
.../go-containerregistry/pkg/authn/helper.go | 102 +
.../pkg/authn/k8schain/doc.go | 18 +
.../pkg/authn/k8schain/k8schain.go | 165 +
.../pkg/authn/k8schain/tests/explicit/main.go | 52 +
.../pkg/authn/k8schain/tests/implicit/main.go | 52 +
.../pkg/authn/k8schain/tests/noauth/main.go | 47 +
.../k8schain/tests/serviceaccount/main.go | 54 +
.../pkg/authn/keychain.go | 152 +
.../pkg/authn/multikeychain.go | 45 +
.../go-containerregistry/pkg/crane/append.go | 93 +
.../go-containerregistry/pkg/crane/config.go | 47 +
.../go-containerregistry/pkg/crane/copy.go | 67 +
.../go-containerregistry/pkg/crane/delete.go | 54 +
.../go-containerregistry/pkg/crane/digest.go | 47 +
.../go-containerregistry/pkg/crane/get.go | 36 +
.../go-containerregistry/pkg/crane/list.go | 60 +
.../pkg/crane/manifest.go | 47 +
.../go-containerregistry/pkg/crane/pull.go | 79 +
.../go-containerregistry/pkg/crane/push.go | 61 +
.../go-containerregistry/pkg/crane/rebase.go | 98 +
.../go-containerregistry/pkg/crane/root.go | 23 +
.../go-containerregistry/pkg/gcrane/copy.go | 336 ++
.../go-containerregistry/pkg/gcrane/doc.go | 16 +
.../go-containerregistry/pkg/gcrane/gc.go | 79 +
.../go-containerregistry/pkg/gcrane/list.go | 100 +
.../go-containerregistry/pkg/gcrane/root.go | 23 +
.../pkg/ko/build/build.go | 31 +
.../go-containerregistry/pkg/ko/build/doc.go | 17 +
.../pkg/ko/build/future.go | 75 +
.../pkg/ko/build/gobuild.go | 299 ++
.../pkg/ko/build/options.go | 46 +
.../pkg/ko/build/recorder.go | 46 +
.../pkg/ko/build/shared.go | 79 +
.../google/go-containerregistry/pkg/ko/doc.go | 16 +
.../pkg/ko/publish/daemon.go | 80 +
.../pkg/ko/publish/default.go | 121 +
.../pkg/ko/publish/doc.go | 17 +
.../pkg/ko/publish/future.go | 75 +
.../pkg/ko/publish/options.go | 82 +
.../pkg/ko/publish/publish.go | 28 +
.../pkg/ko/publish/shared.go | 76 +
.../pkg/ko/resolve/doc.go | 16 +
.../pkg/ko/resolve/resolve.go | 160 +
.../go-containerregistry/pkg/name/check.go | 52 +
.../go-containerregistry/pkg/name/digest.go | 91 +
.../go-containerregistry/pkg/name/errors.go | 37 +
.../go-containerregistry/pkg/name/ref.go | 50 +
.../go-containerregistry/pkg/name/registry.go | 144 +
.../pkg/name/repository.go | 99 +
.../go-containerregistry/pkg/name/tag.go | 101 +
.../go-containerregistry/pkg/v1/config.go | 130 +
.../go-containerregistry/pkg/v1/daemon/doc.go | 17 +
.../pkg/v1/daemon/image.go | 133 +
.../pkg/v1/daemon/options.go | 34 +
.../pkg/v1/daemon/write.go | 80 +
.../google/go-containerregistry/pkg/v1/doc.go | 19 +
.../go-containerregistry/pkg/v1/empty/doc.go | 16 +
.../pkg/v1/empty/image.go | 22 +
.../pkg/v1/google/auth.go | 138 +
.../go-containerregistry/pkg/v1/google/doc.go | 16 +
.../pkg/v1/google/keychain.go | 68 +
.../pkg/v1/google/list.go | 220 +
.../pkg/v1/google/options.go | 56 +
.../go-containerregistry/pkg/v1/hash.go | 111 +
.../go-containerregistry/pkg/v1/image.go | 58 +
.../go-containerregistry/pkg/v1/index.go | 34 +
.../go-containerregistry/pkg/v1/layer.go | 37 +
.../go-containerregistry/pkg/v1/manifest.go | 67 +
.../go-containerregistry/pkg/v1/mutate/doc.go | 16 +
.../pkg/v1/mutate/mutate.go | 563 +++
.../pkg/v1/mutate/rebase.go | 97 +
.../pkg/v1/partial/compressed.go | 159 +
.../pkg/v1/partial/doc.go | 17 +
.../pkg/v1/partial/image.go | 28 +
.../pkg/v1/partial/uncompressed.go | 228 +
.../pkg/v1/partial/with.go | 293 ++
.../go-containerregistry/pkg/v1/platform.go | 24 +
.../go-containerregistry/pkg/v1/random/doc.go | 16 +
.../pkg/v1/random/image.go | 132 +
.../pkg/v1/remote/delete.go | 64 +
.../go-containerregistry/pkg/v1/remote/doc.go | 17 +
.../pkg/v1/remote/image.go | 247 ++
.../pkg/v1/remote/list.go | 64 +
.../pkg/v1/remote/mount.go | 77 +
.../pkg/v1/remote/options.go | 56 +
.../pkg/v1/remote/transport/basic.go | 48 +
.../pkg/v1/remote/transport/bearer.go | 142 +
.../pkg/v1/remote/transport/doc.go | 18 +
.../pkg/v1/remote/transport/error.go | 111 +
.../pkg/v1/remote/transport/ping.go | 115 +
.../pkg/v1/remote/transport/scope.go | 24 +
.../pkg/v1/remote/transport/transport.go | 85 +
.../pkg/v1/remote/write.go | 372 ++
.../pkg/v1/stream/layer.go | 183 +
.../pkg/v1/tarball/doc.go | 17 +
.../pkg/v1/tarball/image.go | 340 ++
.../pkg/v1/tarball/layer.go | 144 +
.../pkg/v1/tarball/write.go | 165 +
.../pkg/v1/types/types.go | 40 +
.../pkg/v1/v1util/and_closer.go | 47 +
.../pkg/v1/v1util/verify.go | 61 +
.../go-containerregistry/pkg/v1/v1util/zip.go | 80 +
.../pkg/v1/zz_deepcopy_generated.go | 314 ++
.../gregjones/httpcache/httpcache.go | 18 +-
.../gregjones/httpcache/test/test.go | 35 +
vendor/github.com/imdario/mergo/map.go | 1 +
vendor/github.com/imdario/mergo/merge.go | 19 +-
.../knative/build/cmd/controller/kodata/HEAD | 1 +
.../knative/build/cmd/controller/main.go | 35 +-
.../knative/build/cmd/creds-init/kodata/HEAD | 1 +
.../knative/build/cmd/creds-init/main.go | 2 +-
.../knative/build/cmd/git-init/kodata/HEAD | 1 +
.../knative/build/cmd/git-init/main.go | 22 +-
.../knative/build/cmd/logs/kodata/HEAD | 1 +
.../knative/build/cmd/nop/kodata/HEAD | 1 +
.../knative/build/cmd/webhook/kodata/HEAD | 1 +
.../knative/build/cmd/webhook/main.go | 4 +-
.../build/v1alpha1/build_template_types.go | 9 +-
.../v1alpha1/build_template_validation.go | 23 +-
.../pkg/apis/build/v1alpha1/build_types.go | 74 +-
.../apis/build/v1alpha1/build_validation.go | 91 +-
.../build/v1alpha1/target_path_validation.go | 69 +
.../build/v1alpha1/zz_generated.deepcopy.go | 27 +-
.../build/pkg/builder/cluster/builder.go | 349 --
.../knative/build/pkg/builder/interface.go | 116 -
.../knative/build/pkg/builder/nop/builder.go | 140 -
.../knative/build/pkg/buildtest/wait.go | 68 -
.../knative/build/pkg/buildtest/yaml.go | 49 -
.../versioned/typed/build/v1alpha1/build.go | 17 +
.../typed/build/v1alpha1/fake/fake_build.go | 12 +
.../build/pkg/controller/controller.go | 51 -
.../pkg/credentials/dockercreds/creds.go | 103 +-
.../build/pkg/credentials/gitcreds/ssh.go | 11 +-
.../github.com/knative/build/pkg/logs/logs.go | 2 +-
.../common.go => reconciler/build/apply.go} | 47 +-
.../build/pkg/reconciler/build/build.go | 284 +-
.../build/resources/pod.go} | 391 +-
.../pkg/reconciler/build/timeout_handler.go | 137 +
.../pkg/reconciler/build/validate_build.go | 13 +-
.../buildtemplate/resources/imagecache.go | 10 +-
.../clusterbuildtemplate.go | 6 +-
.../resources/imagecache.go | 4 +-
.../github.com/knative/build/test/e2e/e2e.go | 61 +-
.../knative/build/test/e2e/randstring.go | 61 +
vendor/github.com/knative/eventing/AUTHORS | 1 +
.../apis/eventing/v1alpha1/channel_types.go | 13 +-
.../cluster_channel_provisioner_types.go | 12 +-
.../eventing/v1alpha1/subscription_types.go | 18 +-
.../typed/eventing/v1alpha1/channel.go | 17 +
.../eventing/v1alpha1/fake/fake_channel.go | 12 +
.../eventing/inmemory/channel/reconcile.go | 15 +-
.../clusterchannelprovisioner/reconcile.go | 6 +
.../eventing/subscription/reconcile.go | 57 +-
.../pkg/controller/testing/builder.go} | 18 +-
.../pkg/controller/testing/mock_client.go | 36 +-
.../eventing/pkg/controller/testing/table.go | 30 +-
.../eventing/pkg/provisioners/channel_util.go | 273 +-
.../controller/channel/controller.go | 88 +
.../gcppubsub/controller/channel/reconcile.go | 327 ++
.../clusterchannelprovisioner/controller.go | 62 +
.../clusterchannelprovisioner/reconcile.go | 123 +
.../gcppubsub/controller/cmd/kodata/HEAD | 1 +
.../gcppubsub/controller/cmd/kodata/LICENSE | 1 +
.../controller/cmd/kodata/VENDOR-LICENSE | 1 +
.../gcppubsub/controller/cmd/main.go | 102 +
.../gcppubsub/dispatcher/cmd/kodata/HEAD | 1 +
.../gcppubsub/dispatcher/cmd/kodata/LICENSE | 1 +
.../dispatcher/cmd/kodata/VENDOR-LICENSE | 1 +
.../gcppubsub/dispatcher/cmd/main.go | 115 +
.../dispatcher/dispatcher/controller.go | 102 +
.../dispatcher/dispatcher/reconcile.go | 343 ++
.../gcppubsub/dispatcher/receiver/receiver.go | 105 +
.../pkg/provisioners/gcppubsub/util/creds.go | 55 +
.../gcppubsub/util/fakepubsub/fake_pubsub.go | 214 +
.../pkg/provisioners/gcppubsub/util/names.go | 43 +
.../gcppubsub/util/pubsub_wrapper.go | 221 +
.../gcppubsub/util/testcreds/helper.go | 67 +
.../kafka/controller/channel/reconcile.go | 65 +-
.../kafka/controller/reconcile.go | 7 +
.../kafka/dispatcher/dispatcher.go | 6 +-
.../pkg/provisioners/message_dispatcher.go | 12 +
.../pkg/provisioners/message_receiver.go | 50 +-
.../natss/controller/channel/controller.go | 79 +
.../natss/controller/channel/reconcile.go | 151 +
.../clusterchannelprovisioner/controller.go | 81 +
.../clusterchannelprovisioner/reconcile.go | 140 +
.../pkg/provisioners/natss/controller/main.go | 67 +
.../natss/dispatcher/channel/controller.go | 60 +
.../natss/dispatcher/channel/reconcile.go | 126 +
.../natss/dispatcher/dispatcher/dispatcher.go | 189 +
.../natss/dispatcher/dispatcher/types.go} | 40 +-
.../pkg/provisioners/natss/dispatcher/main.go | 84 +
.../provisioners/natss/stanutil/stanutil.go | 87 +
.../pkg/provisioners/provisioner_util.go | 39 +-
.../filesystem/filesystem_watcher.go | 1 +
.../eventing/pkg/sidecar/configmap/parse.go | 1 +
.../multi_channel_fanout_handler.go | 16 +-
.../pkg/sidecar/multichannelfanout/parse.go | 1 +
.../pkg/sidecar/swappable/swappable.go | 5 +-
.../github.com/knative/eventing/test/crd.go | 15 +-
.../knative/eventing/test/e2e/e2e.go | 14 +-
.../test/test_images/k8sevents/function.go | 3 +-
.../pkg/apis/duck/v1alpha1/condition_set.go | 12 +-
.../apis/duck/v1alpha1/conditions_types.go | 6 +-
.../apis/duck/v1alpha1/generational_types.go | 82 -
.../pkg/apis/duck/v1alpha1/register.go | 2 -
.../duck/v1alpha1/zz_generated.deepcopy.go | 76 -
.../knative/pkg/apis/duck/verify.go | 47 +-
.../knative/pkg/apis/field_error.go | 8 +-
.../github.com/knative/pkg/apis/interfaces.go | 6 +
.../pkg/apis/istio/common/v1alpha1/string.go | 2 +-
.../istio/v1alpha3/destinationrule_types.go | 2 +-
.../knative/pkg/cloudevents/builder.go | 135 +
.../knative/pkg/cloudevents/client.go | 81 +
.../github.com/knative/pkg/cloudevents/doc.go | 1 -
.../pkg/cloudevents/encoding_binary.go | 142 +-
.../pkg/cloudevents/encoding_structured.go | 73 +-
.../knative/pkg/cloudevents/event.go | 111 +-
.../knative/pkg/cloudevents/event_v01.go | 236 ++
.../knative/pkg/cloudevents/event_v02.go | 261 ++
.../knative/pkg/cloudevents/handler.go | 43 +-
.../knative/pkg/controller/controller.go | 7 +-
vendor/github.com/knative/pkg/kmp/diff.go | 14 +
.../github.com/knative/pkg/logging/config.go | 39 +-
.../knative/pkg/logging/testing/util.go | 8 +
.../github.com/knative/pkg/metrics/config.go | 22 +-
.../knative/pkg/metrics/exporter.go | 70 -
.../knative/pkg/metrics/gcp_metadata.go | 40 +
.../pkg/metrics/metricskey/constants.go | 46 +-
.../pkg/metrics/monitored_resources.go | 53 +
.../pkg/metrics/prometheus_exporter.go | 73 +
.../pkg/metrics/stackdriver_exporter.go | 128 +
.../knative/{serving => }/pkg/system/clock.go | 2 +-
vendor/github.com/knative/pkg/system/names.go | 52 +
.../doc.go => pkg/system/testing/names.go} | 15 +-
vendor/github.com/knative/pkg/test/cleanup.go | 2 +-
vendor/github.com/knative/pkg/test/clients.go | 5 +-
.../github.com/knative/pkg/test/e2e_flags.go | 19 +-
.../knative/pkg/test/helpers/data.go | 49 +
.../knative/pkg/test/kube_checks.go | 23 +-
.../knative/pkg/test/logging/logging.go | 29 +-
vendor/github.com/knative/pkg/test/request.go | 66 +-
.../knative/pkg/test/spoof/spoof.go | 165 +-
.../github.com/knative/pkg/test/zipkin/doc.go | 41 +
.../knative/pkg/test/zipkin/util.go | 106 +-
.../pkg/testing/inner_default_resource.go | 68 +
.../knative/pkg/testing/resource.go | 48 +-
.../pkg/testing/zz_generated.deepcopy.go | 43 +
.../github.com/knative/pkg/tracker/enqueue.go | 20 +-
.../github.com/knative/pkg/version/version.go | 55 +
.../github.com/knative/pkg/webhook/certs.go | 3 +-
.../github.com/knative/pkg/webhook/webhook.go | 291 +-
.../knative/pkg/websocket/connection.go | 254 +-
.../knative/pkg/websocket/hijack.go | 32 +
.../knative/serving/cmd/activator/kodata/HEAD | 1 +
.../knative/serving/cmd/activator/main.go | 225 +-
.../serving/cmd/autoscaler/kodata/HEAD | 1 +
.../knative/serving/cmd/autoscaler/main.go | 110 +-
.../serving/cmd/controller/kodata/HEAD | 1 +
.../knative/serving/cmd/controller/main.go | 54 +-
.../knative/serving/cmd/queue/kodata/HEAD | 1 +
.../knative/serving/cmd/queue/main.go | 321 +-
.../knative/serving/cmd/util/env.go | 11 +
.../knative/serving/cmd/webhook/kodata/HEAD | 1 +
.../knative/serving/cmd/webhook/main.go | 42 +-
.../serving/pkg/activator/activator.go | 24 +-
.../knative/serving/pkg/activator/dedupe.go | 16 +-
.../activator/handler/concurrency_reporter.go | 128 +-
.../handler/enforce_length_handler.go | 4 +
.../activator/handler/filtering_handler.go | 2 +-
.../serving/pkg/activator/handler/handler.go | 62 +-
.../pkg/activator/handler/probe_handler.go | 36 +
.../activator/handler/requestevent_handler.go | 2 +-
.../knative/serving/pkg/activator/revision.go | 75 +-
.../serving/pkg/activator/stats_reporter.go | 124 +-
.../serving/pkg/activator/testing/utils.go | 36 +
.../serving/pkg/activator/throttler.go | 174 +
.../serving/pkg/activator/util/rewinder.go | 55 +-
.../serving/pkg/activator/util/transports.go | 9 +-
.../serving/pkg/apis/autoscaling/register.go | 27 +-
.../{kpa_defaults.go => pa_defaults.go} | 19 +
.../v1alpha1/{kpa_types.go => pa_types.go} | 103 +-
.../{kpa_validation.go => pa_validation.go} | 58 +-
.../serving/pkg/apis/networking/register.go | 2 +-
.../v1alpha1/clusteringress_defaults.go | 9 +-
.../v1alpha1/clusteringress_types.go | 58 +-
.../v1alpha1/clusteringress_validation.go | 35 +-
.../serving/pkg/apis/serving/register.go | 16 +-
.../serving/v1alpha1/configuration_types.go | 23 +-
.../v1alpha1/configuration_validation.go | 2 +
.../serving/v1alpha1/metadata_validation.go | 34 +-
.../serving/v1alpha1/revision_defaults.go | 16 +-
.../apis/serving/v1alpha1/revision_types.go | 169 +-
.../serving/v1alpha1/revision_validation.go | 231 +-
.../pkg/apis/serving/v1alpha1/route_types.go | 29 +-
.../apis/serving/v1alpha1/route_validation.go | 8 +-
.../apis/serving/v1alpha1/service_defaults.go | 4 +-
.../apis/serving/v1alpha1/service_types.go | 129 +-
.../serving/v1alpha1/service_validation.go | 33 +-
.../serving/v1alpha1/zz_generated.deepcopy.go | 11 +-
.../serving/pkg/autoscaler/autoscaler.go | 345 +-
.../knative/serving/pkg/autoscaler/config.go | 86 +-
.../serving/pkg/autoscaler/dynamic_config.go | 3 +-
.../serving/pkg/autoscaler/multiscaler.go | 154 +-
.../serving/pkg/autoscaler/stats_reporter.go | 170 +-
.../serving/pkg/autoscaler/stats_scraper.go | 167 +
.../pkg/autoscaler/statserver/server.go | 5 +-
.../pkg/autoscaler/zz_generated.deepcopy.go | 19 +
.../knative/serving/pkg/http/h2c/h2c.go | 9 +-
.../knative/serving/pkg/metrics/config.go | 34 +
.../pkg/{system/names.go => network/doc.go} | 11 +-
.../revision/config => network}/network.go | 39 +-
.../pkg/network/testdata/config-network.yaml | 1 +
.../pkg/network/zz_generated.deepcopy.go | 37 +
.../knative/serving/pkg/pool/doc.go | 21 +
.../knative/serving/pkg/pool/interface.go | 35 +
.../knative/serving/pkg/pool/pool.go | 109 +
.../knative/serving/pkg/queue/breaker.go | 189 +-
.../knative/serving/pkg/queue/constants.go | 20 +-
.../serving/pkg/queue/health/health_state.go | 107 +
.../names/names.go => queue/health/probe.go} | 26 +-
.../serving/pkg/queue/stats_reporter.go | 173 +
.../knative/serving/pkg/queue/timeout.go | 180 +
.../knative/serving/pkg/reconciler/filter.go | 48 +
.../knative/serving/pkg/reconciler/helper.go | 51 -
.../knative/serving/pkg/reconciler/names.go | 21 +-
.../serving/pkg/reconciler/reconciler.go | 43 +-
.../serving/pkg/reconciler/stats_reporter.go | 127 +
.../serving/pkg/reconciler/testing/actions.go | 12 +-
.../pkg/reconciler/testing/configmap.go | 62 +-
.../serving/pkg/reconciler/testing/events.go | 44 +
.../testing/generate_name_reactor.go | 86 +
.../serving/pkg/reconciler/testing/hooks.go | 26 +-
.../pkg/reconciler/testing/stats.go} | 32 +-
.../serving/pkg/reconciler/testing/table.go | 208 +-
.../v1alpha1/autoscaling/autoscaling.go | 245 --
.../v1alpha1/autoscaling/hpa/hpa.go | 212 +
.../v1alpha1/autoscaling/hpa/resources/hpa.go | 53 +
.../v1alpha1/autoscaling/{ => kpa}/doc.go | 4 +-
.../v1alpha1/autoscaling/kpa/kpa.go | 286 ++
.../autoscaling/{ => kpa}/kpa_scaler.go | 96 +-
.../autoscaling/kpa/resources/metric.go | 52 +
.../v1alpha1/clusteringress/clusteringress.go | 164 +-
.../v1alpha1/clusteringress/config/doc.go} | 19 +-
.../v1alpha1/clusteringress/config/istio.go | 106 +
.../v1alpha1/clusteringress/config/store.go | 83 +
.../config/testdata/config-istio.yaml | 1 +
.../config/zz_generated.deepcopy.go | 63 +
.../clusteringress/resources/names/names.go | 12 -
.../resources/virtual_service.go | 60 +-
.../v1alpha1/configuration/configuration.go | 164 +-
.../v1alpha1/configuration/resources/build.go | 42 +-
.../configuration/resources/revision.go | 58 +-
.../reconciler/v1alpha1/labeler/labeler.go | 15 +-
.../pkg/reconciler/v1alpha1/labeler/labels.go | 12 +-
.../v1alpha1/revision/config/controller.go | 20 +-
.../v1alpha1/revision/config/observability.go | 7 +-
.../v1alpha1/revision/config/store.go | 11 +-
.../revision/config/zz_generated.deepcopy.go | 26 +-
.../pkg/reconciler/v1alpha1/revision/cruds.go | 69 +-
.../reconciler/v1alpha1/revision/helpers.go | 6 +-
.../v1alpha1/revision/reconcile_resources.go | 71 +-
.../reconciler/v1alpha1/revision/resolve.go | 41 +-
.../v1alpha1/revision/resources/constants.go | 22 +-
.../v1alpha1/revision/resources/deploy.go | 106 +-
.../v1alpha1/revision/resources/fluentd.go | 4 +-
.../v1alpha1/revision/resources/imagecache.go | 4 +-
.../v1alpha1/revision/resources/meta.go | 11 +-
.../v1alpha1/revision/resources/queue.go | 39 +-
.../v1alpha1/revision/resources/service.go | 30 +-
.../reconciler/v1alpha1/revision/revision.go | 218 +-
.../v1alpha1/route/config/domain.go | 29 +-
.../reconciler/v1alpha1/route/config/store.go | 16 +-
.../route/config/testdata/config-network.yaml | 1 +
.../v1alpha1/route/reconcile_resources.go | 105 +-
.../route/resources/cluster_ingress.go | 113 +-
.../v1alpha1/route/resources/names/names.go | 17 +-
.../v1alpha1/route/resources/service.go | 15 +-
.../pkg/reconciler/v1alpha1/route/route.go | 208 +-
.../v1alpha1/route/traffic/traffic.go | 135 +-
.../service/resources/configuration.go | 6 +-
.../v1alpha1/service/resources/route.go | 44 +-
.../reconciler/v1alpha1/service/service.go | 177 +-
.../reconciler/v1alpha1/testing/aliases.go | 11 +-
.../reconciler/v1alpha1/testing/factory.go | 30 +-
.../reconciler/v1alpha1/testing/functional.go | 871 ++++
.../reconciler/v1alpha1/testing/listers.go | 8 +-
.../knative/serving/pkg/utils/utils.go | 69 +
.../serving/pkg/websocket/connection.go | 194 -
.../knative/serving/test/cleanup.go | 16 +-
.../knative/serving/test/clients.go | 67 +-
.../knative/serving/test/configuration.go | 58 +-
.../conformance/conformancetest_helper.go | 144 +
.../conformance/runtime_contract_types.go | 59 +
.../knative/serving/test/conformance/util.go | 199 +-
.../knative/serving/test/controller/main.go | 10 +-
vendor/github.com/knative/serving/test/crd.go | 232 +-
.../knative/serving/test/crd_checks.go | 75 +-
.../knative/serving/test/e2e/diagnose.go | 54 +-
.../knative/serving/test/e2e/e2e.go | 28 +-
.../knative/serving/test/e2e/scale.go | 218 +
.../knative/serving/test/e2e_flags.go | 6 +-
.../knative/serving/test/image_constants.go | 32 +
.../knative/serving/test/kube_checks.go | 71 -
.../serving/test/performance/performance.go | 83 +
.../github.com/knative/serving/test/prober.go | 273 ++
.../github.com/knative/serving/test/route.go | 94 +-
.../knative/serving/test/service.go | 219 +-
.../github.com/knative/serving/test/states.go | 12 +-
.../test/test_images/autoscale/autoscale.go | 5 +-
.../test_images/bloatingcow/bloatingcow.go | 61 +
.../test_images/environment/environment.go | 78 +
.../test/test_images/failing/failing.go | 34 +
.../test/test_images/grpc-ping/main.go | 88 +
.../test_images/grpc-ping/proto/ping.pb.go | 208 +
.../test_images/hellovolume/hellovolume.go | 45 +
.../test/test_images/helloworld/helloworld.go | 5 +-
.../test/test_images/httpproxy/httpproxy.go | 5 +-
.../observed_concurrency.go | 5 +-
.../test/test_images/pizzaplanetv1/main.go | 5 +-
.../test/test_images/pizzaplanetv2/main.go | 5 +-
.../{envvars/envvars.go => printport/main.go} | 16 +-
.../test/test_images/protocols/protocols.go | 45 +
.../test_images/runtime/handlers/cgroup.go | 69 +
.../test/test_images/runtime/handlers/env.go | 28 +
.../test/test_images/runtime/handlers/file.go | 49 +
.../test_images/runtime/handlers/handler.go | 62 +
.../test_images/runtime/handlers/mount.go | 55 +
.../test_images/runtime/handlers/request.go | 31 +
.../test_images/runtime/handlers/runtime.go | 37 +
.../serving/test/test_images/runtime/main.go | 44 +
.../test/test_images/singlethreaded/main.go | 5 +-
.../test/test_images/timeout/timeout.go | 52 +
.../serving/test/test_images/wsserver/echo.go | 69 +
.../knative/serving/test/types/runtime.go | 95 +
.../knative/serving/test/upgrade/upgrade.go | 77 +
.../github.com/knative/serving/test/util.go | 50 +-
.../mailru/easyjson/bootstrap/bootstrap.go | 2 +-
.../github.com/mailru/easyjson/gen/decoder.go | 13 +-
.../mailru/easyjson/parser/pkgpath.go | 18 +-
.../mailru/easyjson/tests/embedded_type.go | 10 +-
.../easyjson/tests/reference_to_pointer.go | 10 +
vendor/github.com/pkg/errors/errors.go | 43 +-
vendor/github.com/pkg/errors/stack.go | 51 +-
.../client_golang/api/prometheus/v1/api.go | 31 +-
.../client_golang/prometheus/counter.go | 2 +-
.../client_golang/prometheus/desc.go | 4 +-
.../client_golang/prometheus/gauge.go | 2 +-
.../client_golang/prometheus/histogram.go | 2 +-
.../client_golang/prometheus/http.go | 105 +-
.../client_golang/prometheus/labels.go | 21 +-
.../client_golang/prometheus/promhttp/http.go | 104 +-
.../client_golang/prometheus/registry.go | 48 +-
.../client_golang/prometheus/summary.go | 2 +-
.../prometheus/testutil/testutil.go | 47 +-
.../client_golang/prometheus/timer.go | 11 +-
.../prometheus/common/expfmt/text_create.go | 12 +-
.../bitbucket.org/ww/goautoneg/autoneg.go | 6 +-
.../prometheus/common/model/metric.go | 1 -
.../prometheus/common/route/route.go | 13 +
.../github.com/prometheus/procfs/diskstats.go | 81 +
.../prometheus/procfs/internal/util/parse.go | 14 +
.../prometheus/procfs/iostats/iostats.go | 67 +
.../prometheus/procfs/mountstats.go | 10 +
.../github.com/prometheus/procfs/proc_psi.go | 110 +
.../github.com/prometheus/procfs/proc_stat.go | 4 +-
.../prometheus/procfs/sysfs/block_device.go | 81 +
.../procfs/sysfs/class_power_supply.go | 188 +
.../prometheus/procfs/sysfs/class_thermal.go | 99 +
.../prometheus/procfs/sysfs/system_cpu.go | 107 +-
.../github.com/radovskyb/watcher/watcher.go | 12 +-
.../github.com/rogpeppe/go-internal/LICENSE | 27 +
.../rogpeppe/go-internal/cache/cache.go | 474 +++
.../rogpeppe/go-internal/cache/default.go | 95 +
.../rogpeppe/go-internal/cache/hash.go | 174 +
.../go-internal/cmd/testscript/help.go | 122 +
.../go-internal/cmd/testscript/main.go | 264 ++
.../go-internal/cmd/txtar-addmod/addmod.go | 33 +-
.../go-internal/cmd/txtar-savedir/savedir.go | 4 +-
.../go-internal/cmd/txtar-x/extract.go | 70 +
.../rogpeppe/go-internal/goproxytest/proxy.go | 68 +-
.../mod/fruit.com_v1.1.0/fruit/main.go | 3 +
.../rogpeppe/go-internal/gotooltest/setup.go | 120 +-
.../go-internal/internal/os/execpath/exec.go | 8 +
.../go-internal/internal/os/execpath/lp_js.go | 16 +
.../internal/os/execpath/lp_plan9.go | 54 +
.../internal/os/execpath/lp_unix.go | 58 +
.../internal/os/execpath/lp_windows.go | 92 +
.../internal/syscall/windows/mksyscall.go | 7 +
.../internal/syscall/windows/psapi_windows.go | 20 +
.../internal/syscall/windows/registry/key.go | 173 +
.../syscall/windows/registry/mksyscall.go | 7 +
.../syscall/windows/registry/syscall.go | 31 +
.../syscall/windows/registry/value.go | 384 ++
.../windows/registry/zsyscall_windows.go | 111 +
.../syscall/windows/reparse_windows.go | 64 +
.../syscall/windows/security_windows.go | 128 +
.../syscall/windows/symlink_windows.go | 39 +
.../syscall/windows/syscall_windows.go | 307 ++
.../internal/syscall/windows/sysdll/sysdll.go | 28 +
.../syscall/windows/zsyscall_windows.go | 363 ++
.../go-internal/internal/textutil/diff.go | 78 +
.../go-internal/internal/textutil/doc.go | 9 +
.../lockedfile/internal/filelock/filelock.go | 98 +
.../internal/filelock/filelock_fcntl.go | 159 +
.../internal/filelock/filelock_other.go | 36 +
.../internal/filelock/filelock_plan9.go | 38 +
.../internal/filelock/filelock_unix.go | 44 +
.../internal/filelock/filelock_windows.go | 67 +
.../go-internal/lockedfile/lockedfile.go | 122 +
.../lockedfile/lockedfile_filelock.go | 64 +
.../lockedfile/lockedfile_plan9.go | 93 +
.../rogpeppe/go-internal/lockedfile/mutex.go | 60 +
.../rogpeppe/go-internal/renameio/renameio.go | 63 +
.../rogpeppe/go-internal/testscript/cmd.go | 142 +-
.../rogpeppe/go-internal/testscript/cover.go | 4 +
.../rogpeppe/go-internal/testscript/doc.go | 47 +-
.../go-internal/testscript/envvarname.go | 7 +
.../testscript/envvarname_windows.go | 7 +
.../rogpeppe/go-internal/testscript/exe.go | 10 +
.../go-internal/testscript/testscript.go | 344 +-
.../rogpeppe/go-internal/txtar/archive.go | 43 +
vendor/github.com/sirupsen/logrus/entry.go | 125 +-
vendor/github.com/sirupsen/logrus/logger.go | 152 +-
vendor/github.com/sirupsen/logrus/logrus.go | 42 +-
.../sirupsen/logrus/terminal_check_aix.go | 9 +
.../logrus/terminal_check_notappengine.go | 2 +-
.../sirupsen/logrus/text_formatter.go | 24 +-
vendor/github.com/stretchr/testify/LICENSE | 35 +-
.../stretchr/testify/assert/assertions.go | 32 +-
.../github.com/stretchr/testify/mock/mock.go | 3 +-
.../stretchr/testify/require/requirements.go | 2 +-
.../stretchr/testify/suite/suite.go | 24 +
vendor/golang.org/x/crypto/acme/acme.go | 39 +-
vendor/golang.org/x/crypto/blake2b/blake2b.go | 8 +-
vendor/golang.org/x/crypto/blowfish/cipher.go | 8 +
vendor/golang.org/x/crypto/bn256/bn256.go | 31 +-
vendor/golang.org/x/crypto/bn256/gfp12.go | 4 +-
vendor/golang.org/x/crypto/cast5/cast5.go | 11 +-
.../x/crypto/curve25519/curve25519.go | 2 +-
.../x/crypto/internal/chacha20/asm_arm64.s | 308 ++
.../crypto/internal/chacha20/chacha_arm64.go | 31 +
.../crypto/internal/chacha20/chacha_noasm.go | 2 +-
vendor/golang.org/x/crypto/md4/md4.go | 4 +
vendor/golang.org/x/crypto/ocsp/ocsp.go | 3 +
vendor/golang.org/x/crypto/otr/otr.go | 6 +-
vendor/golang.org/x/crypto/pkcs12/pkcs12.go | 7 +-
.../x/crypto/ripemd160/ripemd160.go | 4 +
vendor/golang.org/x/crypto/sha3/hashes.go | 6 +
.../golang.org/x/crypto/ssh/agent/server.go | 3 +
.../x/crypto/ssh/knownhosts/knownhosts.go | 4 +-
.../x/crypto/ssh/terminal/terminal.go | 4 +
vendor/golang.org/x/crypto/tea/cipher.go | 8 +
vendor/golang.org/x/crypto/twofish/twofish.go | 6 +
vendor/golang.org/x/crypto/xtea/cipher.go | 8 +
vendor/golang.org/x/crypto/xts/xts.go | 37 +-
vendor/golang.org/x/net/html/node.go | 2 +-
vendor/golang.org/x/net/html/parse.go | 31 +-
vendor/golang.org/x/net/http2/frame.go | 2 +-
.../golang.org/x/net/http2/h2demo/h2demo.go | 39 +-
.../golang.org/x/net/http2/h2demo/launch.go | 302 --
vendor/golang.org/x/net/http2/h2demo/tmpl.go | 2 +-
vendor/golang.org/x/net/http2/server.go | 6 -
.../x/net/internal/nettest/helper_bsd.go | 29 -
.../x/net/internal/nettest/helper_nobsd.go | 4 -
.../x/net/internal/nettest/helper_stub.go | 4 -
.../x/net/internal/nettest/helper_windows.go | 4 -
vendor/golang.org/x/net/ipv4/sys_darwin.go | 52 +-
vendor/golang.org/x/net/ipv6/sys_darwin.go | 74 +-
vendor/golang.org/x/net/proxy/proxy.go | 9 +-
vendor/golang.org/x/net/route/route.go | 4 +-
.../x/net/route/zsys_freebsd_arm64.go | 123 +
vendor/golang.org/x/net/trace/trace.go | 14 +-
.../clientcredentials/clientcredentials.go | 12 +-
vendor/golang.org/x/oauth2/google/google.go | 5 +-
vendor/golang.org/x/oauth2/internal/token.go | 215 +-
vendor/golang.org/x/oauth2/jwt/jwt.go | 8 +
.../golang.org/x/oauth2/linkedin/linkedin.go | 5 +-
vendor/golang.org/x/oauth2/oauth2.go | 47 +-
vendor/golang.org/x/oauth2/token.go | 7 +-
vendor/golang.org/x/sys/cpu/byteorder.go | 30 +
vendor/golang.org/x/sys/cpu/cpu.go | 19 +
vendor/golang.org/x/sys/cpu/cpu_arm64.go | 67 -
vendor/golang.org/x/sys/cpu/cpu_linux.go | 26 +-
.../golang.org/x/sys/cpu/cpu_linux_arm64.go | 67 +
.../golang.org/x/sys/cpu/cpu_linux_ppc64x.go | 33 +
.../golang.org/x/sys/cpu/cpu_other_arm64.go | 11 +
.../{cpu_ppc64x.go => cpu_other_ppc64x.go} | 3 +-
vendor/golang.org/x/sys/cpu/cpu_x86.go | 2 +
vendor/golang.org/x/sys/plan9/mksyscall.go | 393 ++
.../x/sys/plan9/zsyscall_plan9_386.go | 16 +-
.../x/sys/plan9/zsyscall_plan9_amd64.go | 16 +-
.../x/sys/plan9/zsyscall_plan9_arm.go | 4 +-
.../golang.org/x/sys/unix/asm_netbsd_arm64.s | 29 +
vendor/golang.org/x/sys/unix/fcntl.go | 2 +-
vendor/golang.org/x/sys/unix/fcntl_darwin.go | 18 +
vendor/golang.org/x/sys/unix/linux/types.go | 26 +-
vendor/golang.org/x/sys/unix/mksyscall.go | 4 +
.../x/sys/unix/mksyscall_aix_ppc.go | 404 ++
.../x/sys/unix/mksyscall_aix_ppc64.go | 602 +++
.../x/sys/unix/mksyscall_solaris.go | 335 ++
vendor/golang.org/x/sys/unix/mksysnum.go | 2 +-
vendor/golang.org/x/sys/unix/syscall_aix.go | 2 +-
.../golang.org/x/sys/unix/syscall_darwin.go | 1 +
.../x/sys/unix/syscall_dragonfly.go | 1 +
vendor/golang.org/x/sys/unix/syscall_linux.go | 31 +-
.../x/sys/unix/syscall_linux_386.go | 1 +
.../x/sys/unix/syscall_linux_amd64.go | 1 +
.../x/sys/unix/syscall_linux_arm.go | 1 +
.../x/sys/unix/syscall_linux_arm64.go | 1 +
.../x/sys/unix/syscall_linux_mips64x.go | 1 +
.../x/sys/unix/syscall_linux_mipsx.go | 1 +
.../x/sys/unix/syscall_linux_ppc64x.go | 1 +
.../x/sys/unix/syscall_linux_riscv64.go | 4 +
.../x/sys/unix/syscall_linux_s390x.go | 1 +
.../x/sys/unix/syscall_linux_sparc64.go | 1 +
.../x/sys/unix/syscall_netbsd_arm64.go | 33 +
.../x/sys/unix/zerrors_linux_386.go | 31 +-
.../x/sys/unix/zerrors_linux_amd64.go | 31 +-
.../x/sys/unix/zerrors_linux_arm.go | 31 +-
.../x/sys/unix/zerrors_linux_arm64.go | 31 +-
.../x/sys/unix/zerrors_linux_mips.go | 31 +-
.../x/sys/unix/zerrors_linux_mips64.go | 31 +-
.../x/sys/unix/zerrors_linux_mips64le.go | 31 +-
.../x/sys/unix/zerrors_linux_mipsle.go | 31 +-
.../x/sys/unix/zerrors_linux_ppc64.go | 31 +-
.../x/sys/unix/zerrors_linux_ppc64le.go | 31 +-
.../x/sys/unix/zerrors_linux_riscv64.go | 31 +-
.../x/sys/unix/zerrors_linux_s390x.go | 31 +-
.../x/sys/unix/zerrors_linux_sparc64.go | 31 +-
.../x/sys/unix/zerrors_netbsd_arm64.go | 1762 ++++++++
.../golang.org/x/sys/unix/zsyscall_aix_ppc.go | 2 +-
.../x/sys/unix/zsyscall_aix_ppc64.go | 2 +-
.../x/sys/unix/zsyscall_aix_ppc64_gc.go | 2 +-
.../x/sys/unix/zsyscall_aix_ppc64_gccgo.go | 2 +-
.../x/sys/unix/zsyscall_darwin_amd64.go | 15 +
.../x/sys/unix/zsyscall_darwin_amd64.s | 2 +
.../x/sys/unix/zsyscall_dragonfly_amd64.go | 20 +
.../x/sys/unix/zsyscall_linux_386.go | 57 +-
.../x/sys/unix/zsyscall_linux_amd64.go | 57 +-
.../x/sys/unix/zsyscall_linux_arm.go | 57 +-
.../x/sys/unix/zsyscall_linux_arm64.go | 57 +-
.../x/sys/unix/zsyscall_linux_mips.go | 57 +-
.../x/sys/unix/zsyscall_linux_mips64.go | 57 +-
.../x/sys/unix/zsyscall_linux_mips64le.go | 57 +-
.../x/sys/unix/zsyscall_linux_mipsle.go | 57 +-
.../x/sys/unix/zsyscall_linux_ppc64.go | 57 +-
.../x/sys/unix/zsyscall_linux_ppc64le.go | 57 +-
.../x/sys/unix/zsyscall_linux_riscv64.go | 37 +-
.../x/sys/unix/zsyscall_linux_s390x.go | 57 +-
.../x/sys/unix/zsyscall_linux_sparc64.go | 57 +-
.../x/sys/unix/zsyscall_netbsd_arm64.go | 1826 ++++++++
.../x/sys/unix/zsyscall_solaris_amd64.go | 2 +-
.../x/sys/unix/zsysnum_darwin_amd64.go | 6 +-
.../x/sys/unix/zsysnum_dragonfly_amd64.go | 2 +-
.../x/sys/unix/zsysnum_freebsd_386.go | 2 +-
.../x/sys/unix/zsysnum_freebsd_amd64.go | 2 +-
.../x/sys/unix/zsysnum_freebsd_arm.go | 2 +-
.../x/sys/unix/zsysnum_freebsd_arm64.go | 2 +-
.../x/sys/unix/zsysnum_netbsd_arm64.go | 274 ++
.../x/sys/unix/zsysnum_openbsd_386.go | 2 +-
.../x/sys/unix/zsysnum_openbsd_amd64.go | 2 +-
.../x/sys/unix/zsysnum_openbsd_arm.go | 2 +-
.../golang.org/x/sys/unix/ztypes_linux_386.go | 61 +-
.../x/sys/unix/ztypes_linux_amd64.go | 61 +-
.../golang.org/x/sys/unix/ztypes_linux_arm.go | 61 +-
.../x/sys/unix/ztypes_linux_arm64.go | 61 +-
.../x/sys/unix/ztypes_linux_mips.go | 61 +-
.../x/sys/unix/ztypes_linux_mips64.go | 61 +-
.../x/sys/unix/ztypes_linux_mips64le.go | 61 +-
.../x/sys/unix/ztypes_linux_mipsle.go | 61 +-
.../x/sys/unix/ztypes_linux_ppc64.go | 61 +-
.../x/sys/unix/ztypes_linux_ppc64le.go | 61 +-
.../x/sys/unix/ztypes_linux_riscv64.go | 63 +-
.../x/sys/unix/ztypes_linux_s390x.go | 61 +-
.../x/sys/unix/ztypes_linux_sparc64.go | 61 +-
.../x/sys/unix/ztypes_netbsd_arm64.go | 472 +++
.../x/sys/windows/security_windows.go | 2 +-
.../x/sys/windows/syscall_windows.go | 13 +
.../x/sys/windows/zsyscall_windows.go | 20 +
.../golang.org/x/tools/cmd/godoc/appinit.go | 155 -
.../golang.org/x/tools/cmd/godoc/autocert.go | 88 -
vendor/golang.org/x/tools/cmd/godoc/dl.go | 2 -
vendor/golang.org/x/tools/cmd/godoc/doc.go | 3 +-
vendor/golang.org/x/tools/cmd/godoc/main.go | 10 +-
vendor/golang.org/x/tools/cmd/godoc/play.go | 2 -
vendor/golang.org/x/tools/cmd/godoc/x.go | 92 -
.../x/tools/cmd/{golsp => gopls}/main.go | 4 +-
.../golang.org/x/tools/cmd/guru/describe.go | 6 +-
.../guru/testdata/src/definition-json/main.go | 2 +
.../testdata/src/definition-json/main19.go | 5 -
.../cmd/guru/testdata/src/describe/main.go | 7 +-
.../cmd/guru/testdata/src/describe/main19.go | 13 -
vendor/golang.org/x/tools/cmd/guru/what.go | 3 +-
.../cmd/heapview/internal/core/mmapfile.go | 145 -
.../heapview/internal/core/mmapfile_other.go | 14 -
.../x/tools/cmd/heapview/internal/core/raw.go | 308 --
.../golang.org/x/tools/cmd/heapview/main.go | 83 -
.../golang.org/x/tools/cmd/splitdwarf/doc.go | 19 +
.../cmd/splitdwarf/internal/macho/fat.go | 141 +
.../cmd/splitdwarf/internal/macho/file.go | 1303 ++++++
.../cmd/splitdwarf/internal/macho/macho.go | 468 +++
.../splitdwarf/internal/macho/reloctype.go | 72 +
.../internal/macho/reloctype_string.go | 49 +
.../internal/macho/testdata/hello.c | 8 +
.../x/tools/cmd/splitdwarf/splitdwarf.go | 394 ++
.../x/tools/cmd/stringer/importer18.go | 16 -
.../x/tools/cmd/stringer/importer19.go | 16 -
.../x/tools/cmd/stringer/stringer.go | 124 +-
vendor/golang.org/x/tools/cmd/tip/cert.go | 64 -
vendor/golang.org/x/tools/cmd/tip/godoc.go | 93 -
vendor/golang.org/x/tools/cmd/tip/talks.go | 74 -
vendor/golang.org/x/tools/cmd/tip/tip.go | 441 --
.../x/tools/go/analysis/analysis.go | 1 +
.../x/tools/go/analysis/cmd/vet/vet.go | 2 +
vendor/golang.org/x/tools/go/analysis/doc.go | 2 +-
.../analysis/internal/analysisflags/flags.go | 13 +-
.../go/analysis/internal/checker/checker.go | 15 +-
.../go/analysis/passes/asmdecl/asmdecl.go | 3 +-
.../passes/atomicalign/atomicalign.go | 126 +
.../passes/atomicalign/testdata/src/a/a.go | 230 +
.../passes/atomicalign/testdata/src/a/stub.go | 7 +
.../passes/atomicalign/testdata/src/b/b.go | 19 +
.../passes/atomicalign/testdata/src/b/stub.go | 7 +
.../go/analysis/passes/cgocall/cgocall.go | 8 +-
.../go/analysis/passes/composite/composite.go | 11 +-
.../go/analysis/passes/inspect/inspect.go | 6 +-
.../passes/lostcancel/cmd/lostcancel/main.go | 2 +-
.../tools/go/analysis/passes/printf/printf.go | 1 +
.../passes/printf/testdata/src/a/a.go | 2 +
.../tools/go/analysis/passes/printf/types.go | 3 -
.../x/tools/go/analysis/passes/shift/shift.go | 31 +-
.../go/analysis/passes/structtag/structtag.go | 21 +-
.../passes/structtag/testdata/src/a/a.go | 46 +-
.../passes/structtag/testdata/src/a/b/b.go | 9 +
.../analysis/singlechecker/singlechecker.go | 6 +-
.../analysis/unitchecker/testdata/src/a/a.go | 7 -
.../analysis/unitchecker/testdata/src/b/b.go | 10 -
.../go/analysis/unitchecker/unitchecker.go | 1 +
.../x/tools/go/ast/inspector/inspector.go | 2 +-
.../x/tools/go/internal/gcimporter/bexport.go | 4 +-
.../x/tools/go/internal/gcimporter/bimport.go | 98 +-
.../x/tools/go/internal/gcimporter/iexport.go | 723 ++++
.../x/tools/go/internal/gcimporter/iimport.go | 14 +-
.../tools/go/internal/packagesdriver/sizes.go | 3 +
vendor/golang.org/x/tools/go/packages/doc.go | 14 +-
.../golang.org/x/tools/go/packages/golist.go | 14 +-
.../x/tools/go/packages/golist_fallback.go | 14 +-
.../x/tools/go/packages/gopackages/main.go | 134 +-
.../x/tools/go/packages/packages.go | 15 +-
.../tools/go/packages/packagestest/expect.go | 18 +
.../tools/go/packages/packagestest/export.go | 12 +
.../tools/go/packages/packagestest/modules.go | 3 +
vendor/golang.org/x/tools/go/vcs/vcs.go | 9 -
vendor/golang.org/x/tools/godoc/dl/dl.go | 352 --
vendor/golang.org/x/tools/godoc/dl/server.go | 266 --
vendor/golang.org/x/tools/godoc/dl/tmpl.go | 277 --
vendor/golang.org/x/tools/godoc/format.go | 2 +-
vendor/golang.org/x/tools/godoc/godoc.go | 4 +-
vendor/golang.org/x/tools/godoc/pres.go | 7 -
.../golang.org/x/tools/godoc/proxy/proxy.go | 170 -
.../x/tools/godoc/redirect/redirect.go | 78 +-
vendor/golang.org/x/tools/godoc/server.go | 9 +-
.../golang.org/x/tools/godoc/short/short.go | 186 -
vendor/golang.org/x/tools/godoc/short/tmpl.go | 119 -
.../golang.org/x/tools/godoc/static/static.go | 4 +-
vendor/golang.org/x/tools/imports/fix.go | 415 +-
vendor/golang.org/x/tools/imports/imports.go | 8 +-
vendor/golang.org/x/tools/imports/mkstdlib.go | 1 +
vendor/golang.org/x/tools/imports/mod.go | 351 ++
vendor/golang.org/x/tools/imports/zstdlib.go | 38 +-
.../x/tools/internal/gopathwalk/walk.go | 9 +-
.../x/tools/internal/lsp/cache/file.go | 45 +-
.../x/tools/internal/lsp/cache/view.go | 308 +-
.../x/tools/internal/lsp/cmd/cmd.go | 68 +-
.../x/tools/internal/lsp/cmd/definition.go | 176 +
.../x/tools/internal/lsp/cmd/location.go | 165 +
.../x/tools/internal/lsp/cmd/query.go | 71 +
.../x/tools/internal/lsp/cmd/serve.go | 150 +
.../x/tools/internal/lsp/cmd/server.go | 111 -
.../x/tools/internal/lsp/cmd/testdata/a/a.go | 68 +
.../x/tools/internal/lsp/cmd/testdata/b/b.go | 26 +
.../x/tools/internal/lsp/diagnostics.go | 11 +-
.../x/tools/internal/lsp/diff/diff.go | 215 +
.../golang.org/x/tools/internal/lsp/format.go | 16 +-
.../x/tools/internal/lsp/imports.go | 13 +-
.../x/tools/internal/lsp/position.go | 22 +-
.../x/tools/internal/lsp/protocol/basic.go | 28 +-
.../x/tools/internal/lsp/protocol/general.go | 4 +-
.../x/tools/internal/lsp/protocol/text.go | 2 +-
.../golang.org/x/tools/internal/lsp/server.go | 179 +-
.../x/tools/internal/lsp/source/analysis.go | 321 ++
.../x/tools/internal/lsp/source/completion.go | 70 +-
.../x/tools/internal/lsp/source/definition.go | 206 +-
.../tools/internal/lsp/source/diagnostics.go | 103 +-
.../x/tools/internal/lsp/source/format.go | 61 +-
.../x/tools/internal/lsp/source/hover.go | 50 -
.../internal/lsp/source/signature_help.go | 10 +-
.../x/tools/internal/lsp/source/view.go | 11 +-
.../x/tools/internal/lsp/testdata/bad/bad0.go | 6 +-
.../x/tools/internal/lsp/testdata/bad/bad1.go | 10 +-
.../lsp/testdata/builtins/builtins.go | 44 +-
.../x/tools/internal/lsp/testdata/foo/foo.go | 5 +-
.../lsp/testdata/format/bad_format.go | 21 -
.../tools/internal/lsp/testdata/good/good0.go | 2 +-
.../tools/internal/lsp/testdata/good/good1.go | 2 +-
.../internal/lsp/testdata/testy/testy.go | 3 +
.../x/tools/internal/memcache/memcache.go | 159 -
.../x/tools/internal/module/module.go | 540 +++
.../x/tools/internal/txtar/archive.go | 140 +
.../x/tools/refactor/rename/mvpkg.go | 24 +-
.../k8s.io/code-generator/Godeps/Godeps.json | 192 +-
.../_examples/apiserver/apis/example/doc.go | 1 +
.../apiserver/apis/example/v1/doc.go | 1 +
.../_examples/apiserver/apis/example2/doc.go | 1 +
.../apiserver/apis/example2/v1/doc.go | 1 +
.../internalversion/fake/fake_testtype.go | 2 +-
.../typed/example/internalversion/testtype.go | 17 +
.../internalversion/fake/fake_testtype.go | 2 +-
.../example2/internalversion/testtype.go | 17 +
.../typed/example/v1/fake/fake_testtype.go | 2 +-
.../versioned/typed/example/v1/testtype.go | 17 +
.../typed/example2/v1/fake/fake_testtype.go | 2 +-
.../versioned/typed/example2/v1/testtype.go | 17 +
.../internalinterfaces/factory_interfaces.go | 2 +
.../internalinterfaces/factory_interfaces.go | 2 +
.../_examples/crd/apis/example/v1/doc.go | 1 +
.../_examples/crd/apis/example2/v1/doc.go | 1 +
.../typed/example/v1/clustertesttype.go | 17 +
.../example/v1/fake/fake_clustertesttype.go | 4 +-
.../typed/example/v1/fake/fake_testtype.go | 2 +-
.../versioned/typed/example/v1/testtype.go | 17 +
.../typed/example2/v1/fake/fake_testtype.go | 2 +-
.../versioned/typed/example2/v1/testtype.go | 17 +
.../internalinterfaces/factory_interfaces.go | 2 +
.../client-gen/generators/client_generator.go | 8 +-
.../generators/fake/fake_client_generator.go | 4 +-
.../fake/generator_fake_for_clientset.go | 6 +-
.../fake/generator_fake_for_group.go | 2 +-
.../fake/generator_fake_for_type.go | 6 +-
.../generators/generator_for_clientset.go | 4 +-
.../generators/generator_for_type.go | 20 +
.../generators/scheme/generator_for_scheme.go | 5 +-
.../code-generator/cmd/client-gen/main.go | 7 +-
.../conversion-gen/generators/conversion.go | 66 +-
.../code-generator/cmd/conversion-gen/main.go | 9 +-
.../code-generator/cmd/deepcopy-gen/main.go | 9 +-
.../code-generator/cmd/defaulter-gen/main.go | 9 +-
.../cmd/go-to-protobuf/protobuf/generator.go | 8 +-
.../cmd/go-to-protobuf/protobuf/tags.go | 4 +-
.../code-generator/cmd/import-boss/main.go | 7 +-
.../cmd/informer-gen/generators/factory.go | 4 +-
.../generators/factoryinterface.go | 6 +-
.../cmd/informer-gen/generators/informer.go | 4 +-
.../cmd/informer-gen/generators/packages.go | 16 +-
.../cmd/informer-gen/generators/tags.go | 4 +-
.../generators/versioninterface.go | 2 +-
.../code-generator/cmd/informer-gen/main.go | 9 +-
.../cmd/lister-gen/generators/lister.go | 10 +-
.../cmd/lister-gen/generators/tags.go | 4 +-
.../code-generator/cmd/lister-gen/main.go | 9 +-
.../code-generator/cmd/openapi-gen/README | 13 -
.../cmd/openapi-gen/args/args.go | 53 -
.../code-generator/cmd/openapi-gen/main.go | 61 -
.../cmd/register-gen/generators/packages.go | 18 +-
.../code-generator/cmd/register-gen/main.go | 9 +-
.../k8s.io/code-generator/cmd/set-gen/main.go | 7 +-
.../k8s.io/code-generator/generate-groups.sh | 8 +-
.../generate-internal-groups.sh | 12 +-
.../code-generator/hack/update-codegen.sh | 4 +
.../code-generator/hack/verify-codegen.sh | 4 +-
.../import-boss/generators/import_restrict.go | 22 +-
vendor/k8s.io/gengo/parser/parse.go | 2 +-
.../examples/coexist_glog/coexist_glog.go | 28 +-
vendor/k8s.io/klog/examples/klogr/main.go | 27 +
vendor/k8s.io/klog/glog/glog.go | 160 -
vendor/k8s.io/klog/klog.go | 16 +-
vendor/k8s.io/klog/klogr/klogr.go | 147 +
1294 files changed, 88319 insertions(+), 37678 deletions(-)
create mode 100644 vendor/cloud.google.com/go/bigquery/storage/apiv1beta1/big_query_storage_client.go
create mode 100644 vendor/cloud.google.com/go/bigquery/storage/apiv1beta1/doc.go
create mode 100644 vendor/cloud.google.com/go/firestore/apiv1/doc.go
create mode 100644 vendor/cloud.google.com/go/firestore/apiv1/firestore_client.go
create mode 100644 vendor/cloud.google.com/go/httpreplay/internal/proxy/converter.go
create mode 100644 vendor/cloud.google.com/go/irm/apiv1alpha2/doc.go
create mode 100644 vendor/cloud.google.com/go/irm/apiv1alpha2/incident_client.go
rename vendor/cloud.google.com/go/spanner/{util.go => cmp.go} (65%)
rename vendor/cloud.google.com/go/spanner/{ => internal/backoff}/backoff.go (80%)
create mode 100644 vendor/cloud.google.com/go/spanner/internal/testutil/funcmock.go
create mode 100644 vendor/cloud.google.com/go/talent/apiv4beta1/company_client.go
create mode 100644 vendor/cloud.google.com/go/talent/apiv4beta1/completion_client.go
create mode 100644 vendor/cloud.google.com/go/talent/apiv4beta1/doc.go
create mode 100644 vendor/cloud.google.com/go/talent/apiv4beta1/event_client.go
create mode 100644 vendor/cloud.google.com/go/talent/apiv4beta1/job_client.go
create mode 100644 vendor/cloud.google.com/go/talent/apiv4beta1/profile_client.go
create mode 100644 vendor/cloud.google.com/go/talent/apiv4beta1/resume_client.go
create mode 100644 vendor/cloud.google.com/go/tools.go
create mode 100644 vendor/github.com/go-openapi/spec/cache.go
create mode 100644 vendor/github.com/go-openapi/spec/normalizer.go
create mode 100644 vendor/github.com/go-openapi/spec/schema_loader.go
create mode 100644 vendor/github.com/go-openapi/spec/unused.go
delete mode 100644 vendor/github.com/gobuffalo/envy/packrd/packed-packr.go
create mode 100644 vendor/github.com/gogo/protobuf/proto/deprecated.go
create mode 100644 vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/importing/importing.pb.go
create mode 100644 vendor/github.com/gogo/protobuf/test/issue503/issue503.pb.go
create mode 100644 vendor/github.com/google/go-containerregistry/LICENSE
create mode 100644 vendor/github.com/google/go-containerregistry/cmd/crane/help/main.go
create mode 100644 vendor/github.com/google/go-containerregistry/cmd/crane/main.go
create mode 100644 vendor/github.com/google/go-containerregistry/cmd/gcrane/main.go
create mode 100644 vendor/github.com/google/go-containerregistry/cmd/ko/binary.go
create mode 100644 vendor/github.com/google/go-containerregistry/cmd/ko/commands.go
create mode 100644 vendor/github.com/google/go-containerregistry/cmd/ko/config.go
create mode 100644 vendor/github.com/google/go-containerregistry/cmd/ko/filestuff.go
create mode 100644 vendor/github.com/google/go-containerregistry/cmd/ko/flatname.go
create mode 100644 vendor/github.com/google/go-containerregistry/cmd/ko/local.go
create mode 100644 vendor/github.com/google/go-containerregistry/cmd/ko/main.go
create mode 100644 vendor/github.com/google/go-containerregistry/cmd/ko/publish.go
create mode 100644 vendor/github.com/google/go-containerregistry/cmd/ko/resolve.go
create mode 100644 vendor/github.com/google/go-containerregistry/cmd/ko/tags.go
create mode 120000 vendor/github.com/google/go-containerregistry/cmd/ko/test/kodata/kenobi
create mode 100644 vendor/github.com/google/go-containerregistry/cmd/ko/test/main.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/authn/anon.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/authn/auth.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/authn/authn.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/authn/basic.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/authn/bearer.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/authn/doc.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/authn/helper.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/doc.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/k8schain.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/tests/explicit/main.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/tests/implicit/main.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/tests/noauth/main.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/tests/serviceaccount/main.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/authn/keychain.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/authn/multikeychain.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/crane/append.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/crane/config.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/crane/copy.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/crane/delete.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/crane/digest.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/crane/get.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/crane/list.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/crane/manifest.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/crane/pull.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/crane/push.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/crane/rebase.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/crane/root.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/gcrane/copy.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/gcrane/doc.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/gcrane/gc.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/gcrane/list.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/gcrane/root.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/ko/build/build.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/ko/build/doc.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/ko/build/future.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/ko/build/gobuild.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/ko/build/options.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/ko/build/recorder.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/ko/build/shared.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/ko/doc.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/ko/publish/daemon.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/ko/publish/default.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/ko/publish/doc.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/ko/publish/future.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/ko/publish/options.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/ko/publish/publish.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/ko/publish/shared.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/ko/resolve/doc.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/ko/resolve/resolve.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/name/check.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/name/digest.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/name/errors.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/name/ref.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/name/registry.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/name/repository.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/name/tag.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/config.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/daemon/doc.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/daemon/image.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/daemon/options.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/daemon/write.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/doc.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/empty/doc.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/empty/image.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/google/auth.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/google/doc.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/google/keychain.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/google/list.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/google/options.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/hash.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/image.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/index.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/layer.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/manifest.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/mutate/doc.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/mutate/mutate.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/mutate/rebase.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/partial/compressed.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/partial/doc.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/partial/image.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/partial/uncompressed.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/partial/with.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/platform.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/random/doc.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/random/image.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/remote/delete.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/remote/doc.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/remote/image.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/remote/list.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/remote/mount.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/remote/options.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/basic.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/bearer.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/doc.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/error.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/ping.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/scope.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/transport.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/remote/write.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/stream/layer.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/tarball/doc.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/tarball/image.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/tarball/layer.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/tarball/write.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/types/types.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/v1util/and_closer.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/v1util/verify.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/v1util/zip.go
create mode 100644 vendor/github.com/google/go-containerregistry/pkg/v1/zz_deepcopy_generated.go
create mode 100644 vendor/github.com/gregjones/httpcache/test/test.go
create mode 120000 vendor/github.com/knative/build/cmd/controller/kodata/HEAD
create mode 120000 vendor/github.com/knative/build/cmd/creds-init/kodata/HEAD
create mode 120000 vendor/github.com/knative/build/cmd/git-init/kodata/HEAD
create mode 120000 vendor/github.com/knative/build/cmd/logs/kodata/HEAD
create mode 120000 vendor/github.com/knative/build/cmd/nop/kodata/HEAD
create mode 120000 vendor/github.com/knative/build/cmd/webhook/kodata/HEAD
create mode 100644 vendor/github.com/knative/build/pkg/apis/build/v1alpha1/target_path_validation.go
delete mode 100644 vendor/github.com/knative/build/pkg/builder/cluster/builder.go
delete mode 100644 vendor/github.com/knative/build/pkg/builder/interface.go
delete mode 100644 vendor/github.com/knative/build/pkg/builder/nop/builder.go
delete mode 100644 vendor/github.com/knative/build/pkg/buildtest/wait.go
delete mode 100644 vendor/github.com/knative/build/pkg/buildtest/yaml.go
delete mode 100644 vendor/github.com/knative/build/pkg/controller/controller.go
rename vendor/github.com/knative/build/pkg/{builder/common.go => reconciler/build/apply.go} (75%)
rename vendor/github.com/knative/build/pkg/{builder/cluster/convert/convert.go => reconciler/build/resources/pod.go} (54%)
create mode 100644 vendor/github.com/knative/build/pkg/reconciler/build/timeout_handler.go
create mode 100644 vendor/github.com/knative/build/test/e2e/randstring.go
rename vendor/github.com/knative/{build/pkg/buildtest/json.go => eventing/pkg/controller/testing/builder.go} (67%)
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/channel/controller.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/channel/reconcile.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/clusterchannelprovisioner/controller.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/clusterchannelprovisioner/reconcile.go
create mode 120000 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/cmd/kodata/HEAD
create mode 120000 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/cmd/kodata/LICENSE
create mode 120000 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/cmd/kodata/VENDOR-LICENSE
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/cmd/main.go
create mode 120000 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/cmd/kodata/HEAD
create mode 120000 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/cmd/kodata/LICENSE
create mode 120000 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/cmd/kodata/VENDOR-LICENSE
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/cmd/main.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/dispatcher/controller.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/dispatcher/reconcile.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/receiver/receiver.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/creds.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/fakepubsub/fake_pubsub.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/names.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/pubsub_wrapper.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/testcreds/helper.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/channel/controller.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/channel/reconcile.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/clusterchannelprovisioner/controller.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/clusterchannelprovisioner/reconcile.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/main.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/channel/controller.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/channel/reconcile.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/dispatcher/dispatcher.go
rename vendor/github.com/knative/{build/pkg/buildtest/data.go => eventing/pkg/provisioners/natss/dispatcher/dispatcher/types.go} (50%)
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/main.go
create mode 100644 vendor/github.com/knative/eventing/pkg/provisioners/natss/stanutil/stanutil.go
delete mode 100644 vendor/github.com/knative/pkg/apis/duck/v1alpha1/generational_types.go
create mode 100644 vendor/github.com/knative/pkg/cloudevents/builder.go
create mode 100644 vendor/github.com/knative/pkg/cloudevents/client.go
create mode 100644 vendor/github.com/knative/pkg/cloudevents/event_v01.go
create mode 100644 vendor/github.com/knative/pkg/cloudevents/event_v02.go
create mode 100644 vendor/github.com/knative/pkg/metrics/gcp_metadata.go
create mode 100644 vendor/github.com/knative/pkg/metrics/monitored_resources.go
create mode 100644 vendor/github.com/knative/pkg/metrics/prometheus_exporter.go
create mode 100644 vendor/github.com/knative/pkg/metrics/stackdriver_exporter.go
rename vendor/github.com/knative/{serving => }/pkg/system/clock.go (95%)
create mode 100644 vendor/github.com/knative/pkg/system/names.go
rename vendor/github.com/knative/{serving/pkg/reconciler/v1alpha1/configuration/resources/names/doc.go => pkg/system/testing/names.go} (75%)
create mode 100644 vendor/github.com/knative/pkg/test/helpers/data.go
create mode 100644 vendor/github.com/knative/pkg/test/zipkin/doc.go
create mode 100644 vendor/github.com/knative/pkg/testing/inner_default_resource.go
create mode 100644 vendor/github.com/knative/pkg/version/version.go
create mode 100644 vendor/github.com/knative/pkg/websocket/hijack.go
create mode 120000 vendor/github.com/knative/serving/cmd/activator/kodata/HEAD
create mode 120000 vendor/github.com/knative/serving/cmd/autoscaler/kodata/HEAD
create mode 120000 vendor/github.com/knative/serving/cmd/controller/kodata/HEAD
create mode 120000 vendor/github.com/knative/serving/cmd/queue/kodata/HEAD
create mode 120000 vendor/github.com/knative/serving/cmd/webhook/kodata/HEAD
create mode 100644 vendor/github.com/knative/serving/pkg/activator/handler/probe_handler.go
create mode 100644 vendor/github.com/knative/serving/pkg/activator/testing/utils.go
create mode 100644 vendor/github.com/knative/serving/pkg/activator/throttler.go
rename vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/{kpa_defaults.go => pa_defaults.go} (60%)
rename vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/{kpa_types.go => pa_types.go} (68%)
rename vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/{kpa_validation.go => pa_validation.go} (59%)
create mode 100644 vendor/github.com/knative/serving/pkg/autoscaler/stats_scraper.go
create mode 100644 vendor/github.com/knative/serving/pkg/metrics/config.go
rename vendor/github.com/knative/serving/pkg/{system/names.go => network/doc.go} (77%)
rename vendor/github.com/knative/serving/pkg/{reconciler/v1alpha1/revision/config => network}/network.go (58%)
create mode 120000 vendor/github.com/knative/serving/pkg/network/testdata/config-network.yaml
create mode 100644 vendor/github.com/knative/serving/pkg/network/zz_generated.deepcopy.go
create mode 100644 vendor/github.com/knative/serving/pkg/pool/doc.go
create mode 100644 vendor/github.com/knative/serving/pkg/pool/interface.go
create mode 100644 vendor/github.com/knative/serving/pkg/pool/pool.go
create mode 100644 vendor/github.com/knative/serving/pkg/queue/health/health_state.go
rename vendor/github.com/knative/serving/pkg/{reconciler/v1alpha1/configuration/resources/names/names.go => queue/health/probe.go} (58%)
create mode 100644 vendor/github.com/knative/serving/pkg/queue/stats_reporter.go
create mode 100644 vendor/github.com/knative/serving/pkg/queue/timeout.go
create mode 100644 vendor/github.com/knative/serving/pkg/reconciler/filter.go
delete mode 100644 vendor/github.com/knative/serving/pkg/reconciler/helper.go
create mode 100644 vendor/github.com/knative/serving/pkg/reconciler/stats_reporter.go
create mode 100644 vendor/github.com/knative/serving/pkg/reconciler/testing/events.go
create mode 100644 vendor/github.com/knative/serving/pkg/reconciler/testing/generate_name_reactor.go
rename vendor/github.com/knative/{build/pkg/builder/validation/error.go => serving/pkg/reconciler/testing/stats.go} (53%)
delete mode 100644 vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/autoscaling.go
create mode 100644 vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/hpa/hpa.go
create mode 100644 vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/hpa/resources/hpa.go
rename vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/{ => kpa}/doc.go (85%)
create mode 100644 vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa/kpa.go
rename vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/{ => kpa}/kpa_scaler.go (62%)
create mode 100644 vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa/resources/metric.go
rename vendor/github.com/knative/{build/pkg/system/names.go => serving/pkg/reconciler/v1alpha1/clusteringress/config/doc.go} (69%)
create mode 100644 vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/istio.go
create mode 100644 vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/store.go
create mode 120000 vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/testdata/config-istio.yaml
create mode 100644 vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/zz_generated.deepcopy.go
create mode 120000 vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/config/testdata/config-network.yaml
create mode 100644 vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/testing/functional.go
create mode 100644 vendor/github.com/knative/serving/pkg/utils/utils.go
delete mode 100644 vendor/github.com/knative/serving/pkg/websocket/connection.go
create mode 100644 vendor/github.com/knative/serving/test/conformance/conformancetest_helper.go
create mode 100644 vendor/github.com/knative/serving/test/conformance/runtime_contract_types.go
create mode 100644 vendor/github.com/knative/serving/test/e2e/scale.go
create mode 100644 vendor/github.com/knative/serving/test/image_constants.go
delete mode 100644 vendor/github.com/knative/serving/test/kube_checks.go
create mode 100644 vendor/github.com/knative/serving/test/performance/performance.go
create mode 100644 vendor/github.com/knative/serving/test/prober.go
create mode 100644 vendor/github.com/knative/serving/test/test_images/bloatingcow/bloatingcow.go
create mode 100644 vendor/github.com/knative/serving/test/test_images/environment/environment.go
create mode 100644 vendor/github.com/knative/serving/test/test_images/failing/failing.go
create mode 100644 vendor/github.com/knative/serving/test/test_images/grpc-ping/main.go
create mode 100644 vendor/github.com/knative/serving/test/test_images/grpc-ping/proto/ping.pb.go
create mode 100644 vendor/github.com/knative/serving/test/test_images/hellovolume/hellovolume.go
rename vendor/github.com/knative/serving/test/{performance => test_images}/observed-concurrency/observed_concurrency.go (93%)
rename vendor/github.com/knative/serving/test/test_images/{envvars/envvars.go => printport/main.go} (69%)
create mode 100644 vendor/github.com/knative/serving/test/test_images/protocols/protocols.go
create mode 100644 vendor/github.com/knative/serving/test/test_images/runtime/handlers/cgroup.go
create mode 100644 vendor/github.com/knative/serving/test/test_images/runtime/handlers/env.go
create mode 100644 vendor/github.com/knative/serving/test/test_images/runtime/handlers/file.go
create mode 100644 vendor/github.com/knative/serving/test/test_images/runtime/handlers/handler.go
create mode 100644 vendor/github.com/knative/serving/test/test_images/runtime/handlers/mount.go
create mode 100644 vendor/github.com/knative/serving/test/test_images/runtime/handlers/request.go
create mode 100644 vendor/github.com/knative/serving/test/test_images/runtime/handlers/runtime.go
create mode 100644 vendor/github.com/knative/serving/test/test_images/runtime/main.go
create mode 100644 vendor/github.com/knative/serving/test/test_images/timeout/timeout.go
create mode 100644 vendor/github.com/knative/serving/test/test_images/wsserver/echo.go
create mode 100644 vendor/github.com/knative/serving/test/types/runtime.go
create mode 100644 vendor/github.com/knative/serving/test/upgrade/upgrade.go
create mode 100644 vendor/github.com/mailru/easyjson/tests/reference_to_pointer.go
create mode 100644 vendor/github.com/prometheus/procfs/diskstats.go
create mode 100644 vendor/github.com/prometheus/procfs/iostats/iostats.go
create mode 100644 vendor/github.com/prometheus/procfs/proc_psi.go
create mode 100644 vendor/github.com/prometheus/procfs/sysfs/block_device.go
create mode 100644 vendor/github.com/prometheus/procfs/sysfs/class_power_supply.go
create mode 100644 vendor/github.com/prometheus/procfs/sysfs/class_thermal.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/LICENSE
create mode 100644 vendor/github.com/rogpeppe/go-internal/cache/cache.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/cache/default.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/cache/hash.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/cmd/testscript/help.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/cmd/testscript/main.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/cmd/txtar-x/extract.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/goproxytest/testdata/mod/fruit.com_v1.1.0/fruit/main.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/os/execpath/exec.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/os/execpath/lp_js.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/os/execpath/lp_plan9.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/os/execpath/lp_unix.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/os/execpath/lp_windows.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/mksyscall.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/psapi_windows.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/key.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/mksyscall.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/syscall.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/value.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/zsyscall_windows.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/reparse_windows.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/security_windows.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/symlink_windows.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/syscall_windows.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/sysdll/sysdll.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/zsyscall_windows.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/textutil/diff.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/internal/textutil/doc.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_fcntl.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_other.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_plan9.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_unix.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_windows.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/lockedfile/lockedfile.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/lockedfile/lockedfile_filelock.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/lockedfile/lockedfile_plan9.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/lockedfile/mutex.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/renameio/renameio.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/testscript/envvarname.go
create mode 100644 vendor/github.com/rogpeppe/go-internal/testscript/envvarname_windows.go
create mode 100644 vendor/github.com/sirupsen/logrus/terminal_check_aix.go
create mode 100644 vendor/golang.org/x/crypto/internal/chacha20/asm_arm64.s
create mode 100644 vendor/golang.org/x/crypto/internal/chacha20/chacha_arm64.go
delete mode 100644 vendor/golang.org/x/net/http2/h2demo/launch.go
create mode 100644 vendor/golang.org/x/net/route/zsys_freebsd_arm64.go
create mode 100644 vendor/golang.org/x/sys/cpu/byteorder.go
delete mode 100644 vendor/golang.org/x/sys/cpu/cpu_arm64.go
create mode 100644 vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go
create mode 100644 vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go
create mode 100644 vendor/golang.org/x/sys/cpu/cpu_other_arm64.go
rename vendor/golang.org/x/sys/cpu/{cpu_ppc64x.go => cpu_other_ppc64x.go} (72%)
create mode 100644 vendor/golang.org/x/sys/plan9/mksyscall.go
create mode 100644 vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s
create mode 100644 vendor/golang.org/x/sys/unix/fcntl_darwin.go
create mode 100644 vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go
create mode 100644 vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go
create mode 100644 vendor/golang.org/x/sys/unix/mksyscall_solaris.go
create mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go
create mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go
create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go
create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go
create mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go
delete mode 100644 vendor/golang.org/x/tools/cmd/godoc/appinit.go
delete mode 100644 vendor/golang.org/x/tools/cmd/godoc/autocert.go
delete mode 100644 vendor/golang.org/x/tools/cmd/godoc/x.go
rename vendor/golang.org/x/tools/cmd/{golsp => gopls}/main.go (83%)
delete mode 100644 vendor/golang.org/x/tools/cmd/guru/testdata/src/definition-json/main19.go
delete mode 100644 vendor/golang.org/x/tools/cmd/guru/testdata/src/describe/main19.go
delete mode 100644 vendor/golang.org/x/tools/cmd/heapview/internal/core/mmapfile.go
delete mode 100644 vendor/golang.org/x/tools/cmd/heapview/internal/core/mmapfile_other.go
delete mode 100644 vendor/golang.org/x/tools/cmd/heapview/internal/core/raw.go
delete mode 100644 vendor/golang.org/x/tools/cmd/heapview/main.go
create mode 100644 vendor/golang.org/x/tools/cmd/splitdwarf/doc.go
create mode 100644 vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/fat.go
create mode 100644 vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/file.go
create mode 100644 vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/macho.go
create mode 100644 vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/reloctype.go
create mode 100644 vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/reloctype_string.go
create mode 100644 vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/testdata/hello.c
create mode 100644 vendor/golang.org/x/tools/cmd/splitdwarf/splitdwarf.go
delete mode 100644 vendor/golang.org/x/tools/cmd/stringer/importer18.go
delete mode 100644 vendor/golang.org/x/tools/cmd/stringer/importer19.go
delete mode 100644 vendor/golang.org/x/tools/cmd/tip/cert.go
delete mode 100644 vendor/golang.org/x/tools/cmd/tip/godoc.go
delete mode 100644 vendor/golang.org/x/tools/cmd/tip/talks.go
delete mode 100644 vendor/golang.org/x/tools/cmd/tip/tip.go
create mode 100644 vendor/golang.org/x/tools/go/analysis/passes/atomicalign/atomicalign.go
create mode 100644 vendor/golang.org/x/tools/go/analysis/passes/atomicalign/testdata/src/a/a.go
create mode 100644 vendor/golang.org/x/tools/go/analysis/passes/atomicalign/testdata/src/a/stub.go
create mode 100644 vendor/golang.org/x/tools/go/analysis/passes/atomicalign/testdata/src/b/b.go
create mode 100644 vendor/golang.org/x/tools/go/analysis/passes/atomicalign/testdata/src/b/stub.go
create mode 100644 vendor/golang.org/x/tools/go/analysis/passes/structtag/testdata/src/a/b/b.go
delete mode 100644 vendor/golang.org/x/tools/go/analysis/unitchecker/testdata/src/a/a.go
delete mode 100644 vendor/golang.org/x/tools/go/analysis/unitchecker/testdata/src/b/b.go
create mode 100644 vendor/golang.org/x/tools/go/internal/gcimporter/iexport.go
delete mode 100644 vendor/golang.org/x/tools/godoc/dl/dl.go
delete mode 100644 vendor/golang.org/x/tools/godoc/dl/server.go
delete mode 100644 vendor/golang.org/x/tools/godoc/dl/tmpl.go
delete mode 100644 vendor/golang.org/x/tools/godoc/proxy/proxy.go
delete mode 100644 vendor/golang.org/x/tools/godoc/short/short.go
delete mode 100644 vendor/golang.org/x/tools/godoc/short/tmpl.go
create mode 100644 vendor/golang.org/x/tools/imports/mod.go
create mode 100644 vendor/golang.org/x/tools/internal/lsp/cmd/definition.go
create mode 100644 vendor/golang.org/x/tools/internal/lsp/cmd/location.go
create mode 100644 vendor/golang.org/x/tools/internal/lsp/cmd/query.go
create mode 100644 vendor/golang.org/x/tools/internal/lsp/cmd/serve.go
delete mode 100644 vendor/golang.org/x/tools/internal/lsp/cmd/server.go
create mode 100644 vendor/golang.org/x/tools/internal/lsp/cmd/testdata/a/a.go
create mode 100644 vendor/golang.org/x/tools/internal/lsp/cmd/testdata/b/b.go
create mode 100644 vendor/golang.org/x/tools/internal/lsp/diff/diff.go
create mode 100644 vendor/golang.org/x/tools/internal/lsp/source/analysis.go
delete mode 100644 vendor/golang.org/x/tools/internal/lsp/source/hover.go
delete mode 100644 vendor/golang.org/x/tools/internal/lsp/testdata/format/bad_format.go
create mode 100644 vendor/golang.org/x/tools/internal/lsp/testdata/testy/testy.go
delete mode 100644 vendor/golang.org/x/tools/internal/memcache/memcache.go
create mode 100644 vendor/golang.org/x/tools/internal/module/module.go
create mode 100644 vendor/golang.org/x/tools/internal/txtar/archive.go
delete mode 100644 vendor/k8s.io/code-generator/cmd/openapi-gen/README
delete mode 100644 vendor/k8s.io/code-generator/cmd/openapi-gen/args/args.go
delete mode 100644 vendor/k8s.io/code-generator/cmd/openapi-gen/main.go
create mode 100644 vendor/k8s.io/klog/examples/klogr/main.go
delete mode 100644 vendor/k8s.io/klog/glog/glog.go
create mode 100644 vendor/k8s.io/klog/klogr/klogr.go
diff --git a/Gopkg.lock b/Gopkg.lock
index 91e34cb0dd..5ffb5e5808 100644
--- a/Gopkg.lock
+++ b/Gopkg.lock
@@ -2,12 +2,12 @@
[[projects]]
- digest = "1:fd1a7ca82682444a45424f6af37b1e0373f632e5a303441b111558ae8656a9b7"
+ digest = "1:2173c429b0c4654deb4f3e8d1f503c374f93a6b5549d74f9cba797c1e787f8e4"
name = "cloud.google.com/go"
packages = ["compute/metadata"]
pruneopts = "NT"
- revision = "0ebda48a7f143b1cce9eb37a8c1106ac762a3430"
- version = "v0.34.0"
+ revision = "c9474f2f8deb81759839474b6bd1726bbfe1c1c4"
+ version = "v0.36.0"
[[projects]]
digest = "1:a26f8da48b22e6176c1c6a2459904bb30bd0c49ada04b2963c2c3a203e81a620"
@@ -18,12 +18,12 @@
version = "v1.4.2"
[[projects]]
- digest = "1:d8ebbd207f3d3266d4423ce4860c9f3794956306ded6c7ba312ecc69cdfbf04c"
+ digest = "1:0a111edd8693fd977f42a0c4f199a0efb13c20aec9da99ad8830c7bb6a87e8d6"
name = "github.com/PuerkitoBio/purell"
packages = ["."]
pruneopts = "NT"
- revision = "0bcb03f4b4d0a9428594752bd2a3b9aa0a9d4bd4"
- version = "v1.1.0"
+ revision = "44968752391892e1b0d0b821ee79e9a85fa13049"
+ version = "v1.1.1"
[[projects]]
branch = "master"
@@ -77,15 +77,15 @@
version = "v1.1.1"
[[projects]]
- digest = "1:e6f888d4be8ec0f05c50e2aba83da4948b58045dee54d03be81fa74ea673302c"
+ digest = "1:2453249730493850718f891fb40b8f1bc932a0265384fc85b269dc04a01d4673"
name = "github.com/emicklei/go-restful"
packages = [
".",
"log",
]
pruneopts = "NT"
- revision = "3eb9738c1697594ea6e71a7156a9bb32ed216cf0"
- version = "v2.8.0"
+ revision = "85d198d05a92d31823b852b4a5928114912e8949"
+ version = "v2.9.0"
[[projects]]
digest = "1:820227d03dc661d34f837f3704626d2837dbfbf9f0ec8fdf1f58e683dc5f56fc"
@@ -137,11 +137,11 @@
[[projects]]
branch = "master"
- digest = "1:4da4ea0a664ba528965683d350f602d0f11464e6bb2e17aad0914723bc25d163"
+ digest = "1:8f80caf2fa31f78a035f33981c9685013033073b53f344f579e60fa69f0c6670"
name = "github.com/go-openapi/spec"
packages = ["."]
pruneopts = "NT"
- revision = "5b6cdde3200976e3ecceb2868706ee39b6aff3e4"
+ revision = "53d776530bf78a11b03a7b52dd8a083086b045e5"
[[projects]]
digest = "1:dc0f590770e5a6c70ea086232324f7b7dc4857c60eca63ab8ff78e0a5cfcdbf3"
@@ -152,23 +152,23 @@
version = "v0.18.0"
[[projects]]
- digest = "1:4fb6ac9e2e67130ed8c5db4154684b390c1c0ce213ba3f4532b7edc614f78999"
+ digest = "1:9059915429f7f3a5f18cfa6b7cab9a28721d7ac6db4079a62044aa229eb7f2a8"
name = "github.com/gobuffalo/envy"
packages = ["."]
pruneopts = "NT"
- revision = "801d7253ade1f895f74596b9a96147ed2d3b087e"
- version = "v1.6.11"
+ revision = "fa0dfdc10b5366ce365b7d9d1755a03e4e797bc5"
+ version = "v1.6.15"
[[projects]]
- digest = "1:932970e69f16e127aa0653b8263ae588cd127fa53273e19ba44332902c9826f2"
+ digest = "1:0b39706cfa32c1ba9e14435b5844d04aef81b60f44b6077e61e0607d56692603"
name = "github.com/gogo/protobuf"
packages = [
"proto",
"sortkeys",
]
pruneopts = "NT"
- revision = "4cbf7e384e768b4e01799441fdf2a706a5635ae7"
- version = "v1.2.0"
+ revision = "ba06b47c162d49f2af050fb4c75bcbc86a159d5c"
+ version = "v1.2.1"
[[projects]]
branch = "master"
@@ -180,11 +180,11 @@
[[projects]]
branch = "master"
- digest = "1:aaedc94233e56ed57cdb04e3abfacc85c90c14082b62e3cdbe8ea72fc06ee035"
+ digest = "1:20b774dcfdf0fff3148432beb828c52404f3eb3d70b7ce71ae0356ed6cbc2bae"
name = "github.com/golang/groupcache"
packages = ["lru"]
pruneopts = "NT"
- revision = "c65c006176ff7ff98bb916961c7abbc6b0afc0aa"
+ revision = "5b532d6fd5efaf7fa130d4e859a2fde0fc3a9e1b"
[[projects]]
digest = "1:d7cb4458ea8782e6efacd8f4940796ec559c90833509c436f40c4085b98156dd"
@@ -222,6 +222,13 @@
revision = "3af367b6b30c263d47e8895973edcca9a49cf029"
version = "v0.2.0"
+[[projects]]
+ digest = "1:27b01c6accfd4d577b3bc9c0cae2be1d267220182471ac3a5df9661877c0bdfc"
+ name = "github.com/google/go-containerregistry"
+ packages = ["pkg/name"]
+ pruneopts = "NT"
+ revision = "dbc4da98389f9d0c42eb314c2b346bf1d2a27310"
+
[[projects]]
branch = "master"
digest = "1:52c5834e2bebac9030c97cc0798ac11c3aa8a39f098aeb419f142533da6cd3cc"
@@ -252,14 +259,14 @@
[[projects]]
branch = "master"
- digest = "1:97972f03fbf34ec4247ddc78ddb681389c468c020492aa32b109744a54fc0c14"
+ digest = "1:bb7bd892abcb75ef819ce2efab9d54d22b7e38dc05ffac55428bb0578b52912b"
name = "github.com/gregjones/httpcache"
packages = [
".",
"diskcache",
]
pruneopts = "NT"
- revision = "c63ab54fda8f77302f8d414e19933f2b6026a089"
+ revision = "3befbb6ad0cc97d4c25d851e9528915809e1a22f"
[[projects]]
digest = "1:b42cde0e1f3c816dd57f57f7bbcf05ca40263ad96f168714c130c611fc0856a6"
@@ -273,12 +280,12 @@
version = "v0.5.0"
[[projects]]
- digest = "1:9a52adf44086cead3b384e5d0dbf7a1c1cce65e67552ee3383a8561c42a18cd3"
+ digest = "1:aaa38889f11896ee3644d77e17dc7764cc47f5f3d3b488268df2af2b52541c5f"
name = "github.com/imdario/mergo"
packages = ["."]
pruneopts = "NT"
- revision = "9f23e2d6bd2a77f959b2bf6acdbefd708a83a4a4"
- version = "v0.3.6"
+ revision = "7c29201646fa3de8506f701213473dd407f19646"
+ version = "v0.3.7"
[[projects]]
digest = "1:406338ad39ab2e37b7f4452906442a3dbf0eb3379dd1f06aafb5c07e769a5fbb"
@@ -313,18 +320,18 @@
version = "v1.1.5"
[[projects]]
- digest = "1:8faaaff026dfb90c01a725dbee08c6c2551d3d323144f1a3f163a927820a6e27"
+ digest = "1:b4f7300fda95a158ae4b6b59533cf64c81c7e46caf98a27dc210b37b06b60b9b"
name = "github.com/knative/build"
packages = [
"pkg/apis/build",
"pkg/apis/build/v1alpha1",
]
pruneopts = "NT"
- revision = "94859753e2c6724df2be86f6a254f810895fa3eb"
- version = "v0.2.0"
+ revision = "ee63efca9865c41732883f4eb0aef3be13becedd"
+ version = "v0.4.0"
[[projects]]
- digest = "1:ddabfb7fbdf06445655fe4fb8a7891215c792fa2f3e340f4a28aca0d82443980"
+ digest = "1:052c63e3bf853e8c4fb70aad4bb01e5ca85edbcc253d52466aef3e72a83eb45c"
name = "github.com/knative/eventing"
packages = [
"pkg/apis/duck/v1alpha1",
@@ -332,12 +339,12 @@
"pkg/apis/eventing/v1alpha1",
]
pruneopts = "NT"
- revision = "90852711c747bbafbf61baa7c5786f0066b20d4e"
- version = "v0.2.1"
+ revision = "4712e3a42fccad12a37f3ee07fc407fa5b0c4506"
+ version = "v0.3.0"
[[projects]]
branch = "master"
- digest = "1:9c58fccfc91968a8b5c8bd712898b6e97da32f950fea1d9979de38efa6e3b3ff"
+ digest = "1:12c99ebbe93d76d4bb2bc7eab264b472899d831956f25c7725d37dc0a8a62dd6"
name = "github.com/knative/pkg"
packages = [
"apis",
@@ -345,15 +352,16 @@
"apis/duck/v1alpha1",
"changeset",
"kmeta",
+ "kmp",
"logging",
"logging/logkey",
"webhook",
]
pruneopts = "NT"
- revision = "fff36e41c69f31f4f2522c47f808e9bef7156d3c"
+ revision = "41761b2c813c3e871ed02d1e137df6de8a97b68c"
[[projects]]
- digest = "1:2d75b12bd0e0c623236a648348406182cb0e245c7e73c61725b5710b5ae1816d"
+ digest = "1:d9f060568e794dab3c472590e65f5d1e208ec5488c66b17408a7d31bd72e2df2"
name = "github.com/knative/serving"
packages = [
"pkg/apis/autoscaling",
@@ -363,8 +371,8 @@
"pkg/apis/serving/v1alpha1",
]
pruneopts = "NT"
- revision = "5cbee406446031df3105ca2ac90ce4e9369207dd"
- version = "v0.2.3"
+ revision = "b3c82dc7afcca05ed03cd52df0860ad866fabd41"
+ version = "v0.4.0"
[[projects]]
digest = "1:4059c14e87a2de3a434430340521b5feece186c1469eff0834c29a63870de3ed"
@@ -376,7 +384,7 @@
[[projects]]
branch = "master"
- digest = "1:7d9fcac7f1228470c4ea0ee31cdfb662a758c44df691e39b3e76c11d3e12ba8f"
+ digest = "1:4925ec3736ef6c299cfcf61597782e3d66ec13114f7476019d04c742a7be55d0"
name = "github.com/mailru/easyjson"
packages = [
"buffer",
@@ -384,7 +392,7 @@
"jwriter",
]
pruneopts = "NT"
- revision = "60711f1a8329503b04e1c88535f419d0bb440bff"
+ revision = "6243d8e04c3f819e79757e8bc3faa15c3cb27003"
[[projects]]
digest = "1:56dbf15e091bf7926cb33a57cb6bdfc658fc6d3498d2f76f10a97ce7856f1fde"
@@ -490,12 +498,12 @@
version = "v2.0.1"
[[projects]]
- digest = "1:5cf3f025cbee5951a4ee961de067c8a89fc95a5adabead774f82822efabab121"
+ digest = "1:14715f705ff5dfe0ffd6571d7d201dd8e921030f8070321a79380d8ca4ec1a24"
name = "github.com/pkg/errors"
packages = ["."]
pruneopts = "NT"
- revision = "645ef00459ed84a119197bfb8d8205042c6df63d"
- version = "v0.8.0"
+ revision = "ba968bfe8b2f7e042a574c888954fccecfa385b4"
+ version = "v0.8.1"
[[projects]]
digest = "1:0028cb19b2e4c3112225cd871870f2d9cf49b9b4276531f03438a88e94be86fe"
@@ -506,7 +514,7 @@
version = "v1.0.0"
[[projects]]
- digest = "1:ec2a29e3bd141038ae5c3d3a4f57db0c341fcc1d98055a607aedd683aed124ee"
+ digest = "1:bb1dbe98a0b4bf193608772ae3d3c4ec64f64bc3f11b1845f11b603b91146fbc"
name = "github.com/prometheus/client_golang"
packages = [
"prometheus",
@@ -514,8 +522,8 @@
"prometheus/promhttp",
]
pruneopts = "NT"
- revision = "505eaef017263e299324067d40ca2c48f6a2cf50"
- version = "v0.9.2"
+ revision = "1cafe34db7fdec6022e17e00e1c1ea501022f3e4"
+ version = "v0.9.0"
[[projects]]
branch = "master"
@@ -523,11 +531,10 @@
name = "github.com/prometheus/client_model"
packages = ["go"]
pruneopts = "NT"
- revision = "5c3871d89910bfb32f5fcab2aa4b9ec68e65a99f"
+ revision = "fd36f4220a901265f90734c3183c5f0c91daa0b8"
[[projects]]
- branch = "master"
- digest = "1:aff0fac3bf0847ca241ebba899b74f614dee3c74d376f2be6ade2b1b22dd8e7c"
+ digest = "1:30261b5e263b5c4fb40571b53a41a99c96016c6b1b2c45c1cefd226fc3f6304b"
name = "github.com/prometheus/common"
packages = [
"expfmt",
@@ -535,31 +542,33 @@
"model",
]
pruneopts = "NT"
- revision = "67670fe90761d7ff18ec1d640135e53b9198328f"
+ revision = "cfeb6f9992ffa54aaa4f2170ade4067ee478b250"
+ version = "v0.2.0"
[[projects]]
branch = "master"
- digest = "1:2e3c31c847e848782a4925eb7b01fab0b8b4624a4249939405adc1f7b831f9da"
+ digest = "1:1c282f5c094061ce301d1ea3098799fc907ac1399e9f064c463787323a7b7340"
name = "github.com/prometheus/procfs"
packages = [
".",
"internal/util",
+ "iostats",
"nfs",
"xfs",
]
pruneopts = "NT"
- revision = "14fa7590c24d4615893b68e22fce3b3489689f65"
+ revision = "6ed1f7e1041181781dd2826d3001075d011a80cc"
[[projects]]
- digest = "1:32e563d4e6ed18cd2327875400f2b3aa46928ac5942c429fec8274830bb0ff56"
+ digest = "1:314848ee89d523450342d39252bb622ff16c2aaca90cdc4cb8be8ad21843b696"
name = "github.com/radovskyb/watcher"
packages = ["."]
pruneopts = "NT"
- revision = "3818ec23ec59ea15084fe26bfb114b3bb58aa132"
- version = "1.0.5"
+ revision = "d8b41ca2397a9b5cfc26adb10edbbcde40187a87"
+ version = "v1.0.6"
[[projects]]
- digest = "1:4e63570205b765959739e2ef37add1d229cab7dbf70d80341a0608816120493b"
+ digest = "1:fcef1ce61da6f8f6f115154fb0e0e5b159fe11656839ba1e6061372711c013ee"
name = "github.com/rogpeppe/go-internal"
packages = [
"modfile",
@@ -567,8 +576,8 @@
"semver",
]
pruneopts = "NT"
- revision = "d87f08a7d80821c797ffc8eb8f4e01675f378736"
- version = "v1.0.0"
+ revision = "1cf9852c553c5b7da2d5a4a091129a7822fed0c9"
+ version = "v1.2.2"
[[projects]]
digest = "1:0975c74a2cd70df6c2ae353c6283a25ce759dda7e1e706e5c07458baf3faca22"
@@ -587,12 +596,12 @@
version = "v1.0.2"
[[projects]]
- digest = "1:cd2f2cba5b7ffafd0412fb647ff4bcff170292de57270f05fbbf391e3eb9566b"
+ digest = "1:1f84287a4ca2c8f729d8155ba4c45915f5854ebbd214e406070779753da68422"
name = "github.com/sirupsen/logrus"
packages = ["."]
pruneopts = "NT"
- revision = "bcd833dfe83d3cebad139e4a29ed79cb2318bf95"
- version = "v1.2.0"
+ revision = "e1e72e9de974bd926e5c56f83753fba2df402ce5"
+ version = "v1.3.0"
[[projects]]
digest = "1:234b95cdbb31612ff4f97e0ac69abdede0c60f5f84e5d3f40123859f77d8bc2c"
@@ -619,12 +628,12 @@
version = "v1.0.2"
[[projects]]
- digest = "1:4af061277c04a7660e082acc2020f4c66d2c21dfc62e0242ffa1d2120cdfb4ec"
+ digest = "1:8e8fc2cb42cfa0a18fda0c9c4034092faa7aac773da5efdde8828eb4b96c001d"
name = "github.com/stretchr/testify"
packages = ["assert"]
pruneopts = "NT"
- revision = "f35b8ab0b5a2cef36673838d662e249dd9c94686"
- version = "v1.2.2"
+ revision = "ffdc059bfe9ce6a4e144ba849dbedead332c6053"
+ version = "v1.3.0"
[[projects]]
digest = "1:22f696cee54865fb8e9ff91df7b633f6b8f22037a8015253c6b6a71ca82219c7"
@@ -659,15 +668,15 @@
[[projects]]
branch = "master"
- digest = "1:d6d3b59b8c4ceb6a7db2f20169719e57a8dcfa2c055b4418feb3fcc7bbd1a936"
+ digest = "1:b19fb19351db5de242e3f1203e63c207c69bf4f4df4822b4ef15220e0204e0e4"
name = "golang.org/x/crypto"
packages = ["ssh/terminal"]
pruneopts = "NT"
- revision = "505ab145d0a99da450461ae2c1a9f6cd10d1f447"
+ revision = "7f87c0fbb88b590338857bcb720678c2583d4dea"
[[projects]]
branch = "master"
- digest = "1:9300b9f62f41c3dded875b33117e09e9269790eb4372f5e96621f1e375ed5307"
+ digest = "1:60c1f5371132225f21f849a13e379d55c4512ac9ed4b37e7fa33ea0fedeb8480"
name = "golang.org/x/net"
packages = [
"context",
@@ -678,11 +687,11 @@
"idna",
]
pruneopts = "NT"
- revision = "927f97764cc334a6575f4b7a1584a147864d5723"
+ revision = "fe579d43d83210096a79b46dcca0e3721058393a"
[[projects]]
branch = "master"
- digest = "1:bdb664c89389d18d2aa69fb3b61fe5e2effc09e55b333a56e3cb071026418e33"
+ digest = "1:e759bd229deb1bded1c76c43c47caece22e765203cb048cf1d3c9c51a748f49f"
name = "golang.org/x/oauth2"
packages = [
".",
@@ -692,18 +701,18 @@
"jwt",
]
pruneopts = "NT"
- revision = "d668ce993890a79bda886613ee587a69dd5da7a6"
+ revision = "9b3c75971fc92dd27c6436a37c05c831498658f1"
[[projects]]
branch = "master"
- digest = "1:1ca795ad9ef9bc9f0c93757893a59c80904588b453873d35cb393f667570a71a"
+ digest = "1:90abfd79711e2d0ce66e6d23a1b652f8e16c76e12a2ef4b255d1bf0ff4f254b8"
name = "golang.org/x/sys"
packages = [
"unix",
"windows",
]
pruneopts = "NT"
- revision = "82a175fd1598e8a172e58ebdf5ed262bb29129e5"
+ revision = "cc5685c2db1239775905f3911f0067c0fa74762f"
[[projects]]
digest = "1:8c74f97396ed63cc2ef04ebb5fc37bb032871b8fd890a25991ed40974b00cd2a"
@@ -739,7 +748,7 @@
[[projects]]
branch = "master"
- digest = "1:28a8b8275930d678cd5a2d4084f7ae8427a1e40c48085b6ae1340a4c00f79103"
+ digest = "1:dfddac8ab4fec08ac3679d4f64f6054a6be3c849faf6ea05e525e40f7aeeb133"
name = "golang.org/x/tools"
packages = [
"go/ast/astutil",
@@ -752,10 +761,11 @@
"imports",
"internal/fastwalk",
"internal/gopathwalk",
+ "internal/module",
"internal/semver",
]
pruneopts = "NT"
- revision = "d00ac6d27372a4273825635281f2dc360d4be563"
+ revision = "2dc4ef2775b8122dd5afe2c18fd6f775e87f89e5"
[[projects]]
digest = "1:902ffa11f1d8c19c12b05cabffe69e1a16608ad03a8899ebcb9c6bde295660ae"
@@ -842,9 +852,11 @@
"pkg/api/errors",
"pkg/api/meta",
"pkg/api/resource",
+ "pkg/api/validation",
"pkg/apis/meta/internalversion",
"pkg/apis/meta/v1",
"pkg/apis/meta/v1/unstructured",
+ "pkg/apis/meta/v1/validation",
"pkg/apis/meta/v1beta1",
"pkg/conversion",
"pkg/conversion/queryparams",
@@ -965,7 +977,7 @@
version = "kubernetes-1.13.1"
[[projects]]
- digest = "1:4e2addcdbe0330f43800c1fcb905fc7a21b86415dfcca619e5c606c87257af1b"
+ digest = "1:dc1ae99dcab96913d81ae970b1f7a7411a54199b14bfb17a7e86f9a56979c720"
name = "k8s.io/code-generator"
packages = [
"cmd/client-gen",
@@ -989,16 +1001,15 @@
"cmd/lister-gen",
"cmd/lister-gen/args",
"cmd/lister-gen/generators",
- "cmd/openapi-gen",
- "cmd/openapi-gen/args",
"pkg/util",
]
pruneopts = "T"
- revision = "3dcf91f64f638563e5106f21f50c31fa361c918d"
+ revision = "c2090bec4d9b1fb25de3812f868accc2bc9ecbae"
+ version = "kubernetes-1.13.1"
[[projects]]
branch = "master"
- digest = "1:5edbd655d7ee65178fd5750bda9a3d3cd7fb96291937926f4969e6b2dfbc5743"
+ digest = "1:4e07c417d966628ee9e471354ad5e311c9c25ff357d42fd0dd2f81a40caf6aad"
name = "k8s.io/gengo"
packages = [
"args",
@@ -1011,20 +1022,21 @@
"types",
]
pruneopts = "NT"
- revision = "fd15ee9cc2f77baa4f31e59e6acbf21146455073"
+ revision = "0689ccc1d7d65d9dd1bedcc3b0b1ed7df91ba266"
[[projects]]
- digest = "1:f3b42f307c7f49a1a7276c48d4b910db76e003220e88797f7acd41e3a9277ddf"
+ digest = "1:29f93bb84d907a2c035e729e19d66fe52165d8c905cb3ef1920140d76ae6afaf"
name = "k8s.io/klog"
packages = ["."]
pruneopts = "NT"
- revision = "a5bc97fbc634d635061f3146511332c7e313a55a"
- version = "v0.1.0"
+ revision = "71442cd4037d612096940ceb0f3fec3f7fff66e0"
+ version = "v0.2.0"
[[projects]]
digest = "1:c48a795cd7048bb1888273bc604b6e69b22f9b8089c3df65f77cc527757b515c"
name = "k8s.io/kube-openapi"
packages = [
+ "cmd/openapi-gen",
"cmd/openapi-gen/args",
"pkg/common",
"pkg/generators",
@@ -1118,6 +1130,7 @@
"k8s.io/api/extensions/v1beta1",
"k8s.io/api/rbac/v1",
"k8s.io/apimachinery/pkg/api/errors",
+ "k8s.io/apimachinery/pkg/api/meta",
"k8s.io/apimachinery/pkg/apis/meta/v1",
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
"k8s.io/apimachinery/pkg/labels",
@@ -1126,8 +1139,10 @@
"k8s.io/apimachinery/pkg/runtime/serializer",
"k8s.io/apimachinery/pkg/runtime/serializer/json",
"k8s.io/apimachinery/pkg/runtime/serializer/versioning",
+ "k8s.io/apimachinery/pkg/types",
"k8s.io/apimachinery/pkg/util/intstr",
"k8s.io/apimachinery/pkg/util/json",
+ "k8s.io/apimachinery/pkg/util/sets",
"k8s.io/apimachinery/pkg/util/yaml",
"k8s.io/apimachinery/pkg/watch",
"k8s.io/client-go/dynamic",
@@ -1144,8 +1159,8 @@
"k8s.io/code-generator/cmd/defaulter-gen",
"k8s.io/code-generator/cmd/informer-gen",
"k8s.io/code-generator/cmd/lister-gen",
- "k8s.io/code-generator/cmd/openapi-gen",
"k8s.io/gengo/args",
+ "k8s.io/kube-openapi/cmd/openapi-gen",
"sigs.k8s.io/controller-runtime/pkg/client",
"sigs.k8s.io/controller-runtime/pkg/client/config",
"sigs.k8s.io/controller-runtime/pkg/controller",
diff --git a/Gopkg.toml b/Gopkg.toml
index 47e4666226..483cd27a1e 100644
--- a/Gopkg.toml
+++ b/Gopkg.toml
@@ -6,10 +6,37 @@ required = [
"k8s.io/code-generator/cmd/client-gen",
"k8s.io/code-generator/cmd/lister-gen",
"k8s.io/code-generator/cmd/informer-gen",
- "k8s.io/code-generator/cmd/openapi-gen",
+ "k8s.io/kube-openapi/cmd/openapi-gen",
"k8s.io/gengo/args",
]
+# Align K8S resources to operator-sdk
+[[override]]
+ name = "k8s.io/api"
+ version = "kubernetes-1.13.1"
+
+[[override]]
+ name = "k8s.io/apimachinery"
+ version = "kubernetes-1.13.1"
+
+[[override]]
+ name = "k8s.io/code-generator"
+ version = "kubernetes-1.13.1"
+
+[[override]]
+ name = "k8s.io/client-go"
+ version = "kubernetes-1.13.1"
+
+# Align controller-runtime to operator-sdk
+[[override]]
+ name = "sigs.k8s.io/controller-runtime"
+ version = "=v0.1.10"
+
+# Override prometheus client to match version required by controller-runtime
+[[override]]
+ name = "github.com/prometheus/client_golang"
+ version = "=0.9.0"
+
[[constraint]]
name = "github.com/operator-framework/operator-sdk"
# The version rule is used for a specific release and the master branch for in between releases.
@@ -20,6 +47,10 @@ required = [
name = "github.com/coreos/prometheus-operator"
version = "0.27.0"
+[[constraint]]
+ name = "github.com/knative/eventing"
+ version = "0.3.0"
+
[prune]
go-tests = true
non-go = true
diff --git a/pkg/util/kubernetes/collection.go b/pkg/util/kubernetes/collection.go
index a33cd3daca..e0232295f8 100644
--- a/pkg/util/kubernetes/collection.go
+++ b/pkg/util/kubernetes/collection.go
@@ -219,10 +219,6 @@ func (c *Collection) VisitKnativeConfigurationSpec(visitor func(container *servi
c := &s.Spec.RunLatest.Configuration
visitor(c)
}
- if s.Spec.Pinned != nil {
- c := &s.Spec.Pinned.Configuration
- visitor(c)
- }
if s.Spec.Release != nil {
c := &s.Spec.Release.Configuration
visitor(c)
diff --git a/pkg/util/kubernetes/replace.go b/pkg/util/kubernetes/replace.go
index ba7b34771b..0e6625f426 100644
--- a/pkg/util/kubernetes/replace.go
+++ b/pkg/util/kubernetes/replace.go
@@ -95,7 +95,7 @@ func mapRequiredRouteData(from runtime.Object, to runtime.Object) {
func mapRequiredKnativeData(from runtime.Object, to runtime.Object) {
if fromC, ok := from.(*eventing.Subscription); ok {
if toC, ok := to.(*eventing.Subscription); ok {
- toC.Spec.Generation = fromC.Spec.Generation
+ toC.Spec.DeprecatedGeneration = fromC.Spec.DeprecatedGeneration
}
}
}
diff --git a/vendor/cloud.google.com/go/asset/apiv1beta1/asset_client.go b/vendor/cloud.google.com/go/asset/apiv1beta1/asset_client.go
index 4ff3bdb34f..fd2e0a9db3 100644
--- a/vendor/cloud.google.com/go/asset/apiv1beta1/asset_client.go
+++ b/vendor/cloud.google.com/go/asset/apiv1beta1/asset_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package asset
@@ -22,7 +22,7 @@ import (
"cloud.google.com/go/longrunning"
lroauto "cloud.google.com/go/longrunning/autogen"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
assetpb "google.golang.org/genproto/googleapis/cloud/asset/v1beta1"
diff --git a/vendor/cloud.google.com/go/asset/apiv1beta1/doc.go b/vendor/cloud.google.com/go/asset/apiv1beta1/doc.go
index 7ba09affbb..fdbb8f471b 100644
--- a/vendor/cloud.google.com/go/asset/apiv1beta1/doc.go
+++ b/vendor/cloud.google.com/go/asset/apiv1beta1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package asset is an auto-generated package for the
// Cloud Asset API.
//
-// NOTE: This package is in alpha. It is not stable, and is likely to change.
+// NOTE: This package is in beta. It is not stable, and may be subject to changes.
//
// The cloud asset API manages the history and inventory of cloud resources.
package asset // import "cloud.google.com/go/asset/apiv1beta1"
@@ -86,4 +86,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/asset/v1beta1/asset_client.go b/vendor/cloud.google.com/go/asset/v1beta1/asset_client.go
index 4ff3bdb34f..a1fdc0198c 100644
--- a/vendor/cloud.google.com/go/asset/v1beta1/asset_client.go
+++ b/vendor/cloud.google.com/go/asset/v1beta1/asset_client.go
@@ -22,7 +22,7 @@ import (
"cloud.google.com/go/longrunning"
lroauto "cloud.google.com/go/longrunning/autogen"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
assetpb "google.golang.org/genproto/googleapis/cloud/asset/v1beta1"
diff --git a/vendor/cloud.google.com/go/asset/v1beta1/doc.go b/vendor/cloud.google.com/go/asset/v1beta1/doc.go
index a2a639b4c1..7bc1dd5cf9 100644
--- a/vendor/cloud.google.com/go/asset/v1beta1/doc.go
+++ b/vendor/cloud.google.com/go/asset/v1beta1/doc.go
@@ -86,4 +86,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20181219"
diff --git a/vendor/cloud.google.com/go/bigquery/bigquery.go b/vendor/cloud.google.com/go/bigquery/bigquery.go
index 83e160e39a..02ee0c77fb 100644
--- a/vendor/cloud.google.com/go/bigquery/bigquery.go
+++ b/vendor/cloud.google.com/go/bigquery/bigquery.go
@@ -23,7 +23,7 @@ import (
"cloud.google.com/go/internal"
"cloud.google.com/go/internal/version"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
bq "google.golang.org/api/bigquery/v2"
"google.golang.org/api/googleapi"
"google.golang.org/api/option"
diff --git a/vendor/cloud.google.com/go/bigquery/datatransfer/apiv1/data_transfer_client.go b/vendor/cloud.google.com/go/bigquery/datatransfer/apiv1/data_transfer_client.go
index fea963e0be..a214706fca 100644
--- a/vendor/cloud.google.com/go/bigquery/datatransfer/apiv1/data_transfer_client.go
+++ b/vendor/cloud.google.com/go/bigquery/datatransfer/apiv1/data_transfer_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package datatransfer
@@ -23,7 +23,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/bigquery/datatransfer/apiv1/doc.go b/vendor/cloud.google.com/go/bigquery/datatransfer/apiv1/doc.go
index 6cd68697a6..ca106dcc7f 100644
--- a/vendor/cloud.google.com/go/bigquery/datatransfer/apiv1/doc.go
+++ b/vendor/cloud.google.com/go/bigquery/datatransfer/apiv1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package datatransfer is an auto-generated package for the
// BigQuery Data Transfer API.
@@ -87,4 +87,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/bigquery/doc.go b/vendor/cloud.google.com/go/bigquery/doc.go
index 43e491ce49..a9888b5708 100644
--- a/vendor/cloud.google.com/go/bigquery/doc.go
+++ b/vendor/cloud.google.com/go/bigquery/doc.go
@@ -40,7 +40,7 @@ To query existing tables, create a Query and call its Read method:
q := client.Query(`
SELECT year, SUM(number) as num
- FROM [bigquery-public-data:usa_names.usa_1910_2013]
+ FROM ` + "`bigquery-public-data.usa_names.usa_1910_2013`" + `
WHERE name = "William"
GROUP BY year
ORDER BY year
diff --git a/vendor/cloud.google.com/go/bigquery/job.go b/vendor/cloud.google.com/go/bigquery/job.go
index d98211d914..f3ed0c313f 100644
--- a/vendor/cloud.google.com/go/bigquery/job.go
+++ b/vendor/cloud.google.com/go/bigquery/job.go
@@ -22,7 +22,7 @@ import (
"cloud.google.com/go/internal"
"cloud.google.com/go/internal/trace"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
bq "google.golang.org/api/bigquery/v2"
"google.golang.org/api/googleapi"
"google.golang.org/api/iterator"
@@ -383,6 +383,14 @@ type QueryStatistics struct {
// Total bytes processed for the job.
TotalBytesProcessed int64
+ // For dry run queries, indicates how accurate the TotalBytesProcessed value is.
+ // When indicated, values include:
+ // UNKNOWN: accuracy of the estimate is unknown.
+ // PRECISE: estimate is precise.
+ // LOWER_BOUND: estimate is lower bound of what the query would cost.
+ // UPPER_BOUND: estiamte is upper bound of what the query would cost.
+ TotalBytesProcessedAccuracy string
+
// Describes execution plan for the query.
QueryPlan []*ExplainQueryStage
@@ -749,6 +757,7 @@ func (j *Job) setStatistics(s *bq.JobStatistics, c *Client) {
StatementType: s.Query.StatementType,
TotalBytesBilled: s.Query.TotalBytesBilled,
TotalBytesProcessed: s.Query.TotalBytesProcessed,
+ TotalBytesProcessedAccuracy: s.Query.TotalBytesProcessedAccuracy,
NumDMLAffectedRows: s.Query.NumDmlAffectedRows,
QueryPlan: queryPlanFromProto(s.Query.QueryPlan),
Schema: bqToSchema(s.Query.Schema),
diff --git a/vendor/cloud.google.com/go/bigquery/params.go b/vendor/cloud.google.com/go/bigquery/params.go
index fb79947ab1..4ca6a67ab9 100644
--- a/vendor/cloud.google.com/go/bigquery/params.go
+++ b/vendor/cloud.google.com/go/bigquery/params.go
@@ -276,6 +276,10 @@ func paramValue(v reflect.Value) (bq.QueryParameterValue, error) {
// None of the above: assume a scalar type. (If it's not a valid type,
// paramType will catch the error.)
res.Value = fmt.Sprint(v.Interface())
+ // Ensure empty string values are sent.
+ if res.Value == "" {
+ res.ForceSendFields = append(res.ForceSendFields, "Value")
+ }
return res, nil
}
diff --git a/vendor/cloud.google.com/go/bigquery/storage/apiv1beta1/big_query_storage_client.go b/vendor/cloud.google.com/go/bigquery/storage/apiv1beta1/big_query_storage_client.go
new file mode 100644
index 0000000000..64e054d529
--- /dev/null
+++ b/vendor/cloud.google.com/go/bigquery/storage/apiv1beta1/big_query_storage_client.go
@@ -0,0 +1,255 @@
+// Copyright 2019 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by gapic-generator. DO NOT EDIT.
+
+package storage
+
+import (
+ "context"
+ "fmt"
+ "time"
+
+ gax "github.com/googleapis/gax-go/v2"
+ "google.golang.org/api/option"
+ "google.golang.org/api/transport"
+ storagepb "google.golang.org/genproto/googleapis/cloud/bigquery/storage/v1beta1"
+ "google.golang.org/grpc"
+ "google.golang.org/grpc/codes"
+ "google.golang.org/grpc/metadata"
+)
+
+// BigQueryStorageCallOptions contains the retry settings for each method of BigQueryStorageClient.
+type BigQueryStorageCallOptions struct {
+ CreateReadSession []gax.CallOption
+ ReadRows []gax.CallOption
+ BatchCreateReadSessionStreams []gax.CallOption
+ FinalizeStream []gax.CallOption
+ SplitReadStream []gax.CallOption
+}
+
+func defaultBigQueryStorageClientOptions() []option.ClientOption {
+ return []option.ClientOption{
+ option.WithEndpoint("bigquerystorage.googleapis.com:443"),
+ option.WithScopes(DefaultAuthScopes()...),
+ }
+}
+
+func defaultBigQueryStorageCallOptions() *BigQueryStorageCallOptions {
+ retry := map[[2]string][]gax.CallOption{
+ {"default", "idempotent"}: {
+ gax.WithRetry(func() gax.Retryer {
+ return gax.OnCodes([]codes.Code{
+ codes.DeadlineExceeded,
+ codes.Unavailable,
+ }, gax.Backoff{
+ Initial: 100 * time.Millisecond,
+ Max: 60000 * time.Millisecond,
+ Multiplier: 1.3,
+ })
+ }),
+ },
+ }
+ return &BigQueryStorageCallOptions{
+ CreateReadSession: retry[[2]string{"default", "idempotent"}],
+ ReadRows: retry[[2]string{"default", "idempotent"}],
+ BatchCreateReadSessionStreams: retry[[2]string{"default", "idempotent"}],
+ FinalizeStream: retry[[2]string{"default", "idempotent"}],
+ SplitReadStream: retry[[2]string{"default", "idempotent"}],
+ }
+}
+
+// BigQueryStorageClient is a client for interacting with BigQuery Storage API.
+//
+// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
+type BigQueryStorageClient struct {
+ // The connection to the service.
+ conn *grpc.ClientConn
+
+ // The gRPC API client.
+ bigQueryStorageClient storagepb.BigQueryStorageClient
+
+ // The call options for this service.
+ CallOptions *BigQueryStorageCallOptions
+
+ // The x-goog-* metadata to be sent with each request.
+ xGoogMetadata metadata.MD
+}
+
+// NewBigQueryStorageClient creates a new big query storage client.
+//
+// BigQuery storage API.
+//
+// The BigQuery storage API can be used to read data stored in BigQuery.
+func NewBigQueryStorageClient(ctx context.Context, opts ...option.ClientOption) (*BigQueryStorageClient, error) {
+ conn, err := transport.DialGRPC(ctx, append(defaultBigQueryStorageClientOptions(), opts...)...)
+ if err != nil {
+ return nil, err
+ }
+ c := &BigQueryStorageClient{
+ conn: conn,
+ CallOptions: defaultBigQueryStorageCallOptions(),
+
+ bigQueryStorageClient: storagepb.NewBigQueryStorageClient(conn),
+ }
+ c.setGoogleClientInfo()
+ return c, nil
+}
+
+// Connection returns the client's connection to the API service.
+func (c *BigQueryStorageClient) Connection() *grpc.ClientConn {
+ return c.conn
+}
+
+// Close closes the connection to the API service. The user should invoke this when
+// the client is no longer required.
+func (c *BigQueryStorageClient) Close() error {
+ return c.conn.Close()
+}
+
+// setGoogleClientInfo sets the name and version of the application in
+// the `x-goog-api-client` header passed on each request. Intended for
+// use by Google-written clients.
+func (c *BigQueryStorageClient) setGoogleClientInfo(keyval ...string) {
+ kv := append([]string{"gl-go", versionGo()}, keyval...)
+ kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version)
+ c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
+}
+
+// CreateReadSession creates a new read session. A read session divides the contents of a
+// BigQuery table into one or more streams, which can then be used to read
+// data from the table. The read session also specifies properties of the
+// data to be read, such as a list of columns or a push-down filter describing
+// the rows to be returned.
+//
+// A particular row can be read by at most one stream. When the caller has
+// reached the end of each stream in the session, then all the data in the
+// table has been read.
+//
+// Read sessions automatically expire 24 hours after they are created and do
+// not require manual clean-up by the caller.
+func (c *BigQueryStorageClient) CreateReadSession(ctx context.Context, req *storagepb.CreateReadSessionRequest, opts ...gax.CallOption) (*storagepb.ReadSession, error) {
+ md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v&%s=%v", "table_reference.project_id", req.GetTableReference().GetProjectId(), "table_reference.dataset_id", req.GetTableReference().GetDatasetId()))
+ ctx = insertMetadata(ctx, c.xGoogMetadata, md)
+ opts = append(c.CallOptions.CreateReadSession[0:len(c.CallOptions.CreateReadSession):len(c.CallOptions.CreateReadSession)], opts...)
+ var resp *storagepb.ReadSession
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.bigQueryStorageClient.CreateReadSession(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// ReadRows reads rows from the table in the format prescribed by the read session.
+// Each response contains one or more table rows, up to a maximum of 10 MiB
+// per response; read requests which attempt to read individual rows larger
+// than this will fail.
+//
+// Each request also returns a set of stream statistics reflecting the
+// estimated total number of rows in the read stream. This number is computed
+// based on the total table size and the number of active streams in the read
+// session, and may change as other streams continue to read data.
+func (c *BigQueryStorageClient) ReadRows(ctx context.Context, req *storagepb.ReadRowsRequest, opts ...gax.CallOption) (storagepb.BigQueryStorage_ReadRowsClient, error) {
+ md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "read_position.stream.name", req.GetReadPosition().GetStream().GetName()))
+ ctx = insertMetadata(ctx, c.xGoogMetadata, md)
+ opts = append(c.CallOptions.ReadRows[0:len(c.CallOptions.ReadRows):len(c.CallOptions.ReadRows)], opts...)
+ var resp storagepb.BigQueryStorage_ReadRowsClient
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.bigQueryStorageClient.ReadRows(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// BatchCreateReadSessionStreams creates additional streams for a ReadSession. This API can be used to
+// dynamically adjust the parallelism of a batch processing task upwards by
+// adding additional workers.
+func (c *BigQueryStorageClient) BatchCreateReadSessionStreams(ctx context.Context, req *storagepb.BatchCreateReadSessionStreamsRequest, opts ...gax.CallOption) (*storagepb.BatchCreateReadSessionStreamsResponse, error) {
+ md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "session.name", req.GetSession().GetName()))
+ ctx = insertMetadata(ctx, c.xGoogMetadata, md)
+ opts = append(c.CallOptions.BatchCreateReadSessionStreams[0:len(c.CallOptions.BatchCreateReadSessionStreams):len(c.CallOptions.BatchCreateReadSessionStreams)], opts...)
+ var resp *storagepb.BatchCreateReadSessionStreamsResponse
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.bigQueryStorageClient.BatchCreateReadSessionStreams(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// FinalizeStream triggers the graceful termination of a single stream in a ReadSession. This
+// API can be used to dynamically adjust the parallelism of a batch processing
+// task downwards without losing data.
+//
+// This API does not delete the stream -- it remains visible in the
+// ReadSession, and any data processed by the stream is not released to other
+// streams. However, no additional data will be assigned to the stream once
+// this call completes. Callers must continue reading data on the stream until
+// the end of the stream is reached so that data which has already been
+// assigned to the stream will be processed.
+//
+// This method will return an error if there are no other live streams
+// in the Session, or if SplitReadStream() has been called on the given
+// Stream.
+func (c *BigQueryStorageClient) FinalizeStream(ctx context.Context, req *storagepb.FinalizeStreamRequest, opts ...gax.CallOption) error {
+ md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "stream.name", req.GetStream().GetName()))
+ ctx = insertMetadata(ctx, c.xGoogMetadata, md)
+ opts = append(c.CallOptions.FinalizeStream[0:len(c.CallOptions.FinalizeStream):len(c.CallOptions.FinalizeStream)], opts...)
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ _, err = c.bigQueryStorageClient.FinalizeStream(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ return err
+}
+
+// SplitReadStream splits a given read stream into two Streams. These streams are referred to
+// as the primary and the residual of the split. The original stream can still
+// be read from in the same manner as before. Both of the returned streams can
+// also be read from, and the total rows return by both child streams will be
+// the same as the rows read from the original stream.
+//
+// Moreover, the two child streams will be allocated back to back in the
+// original Stream. Concretely, it is guaranteed that for streams Original,
+// Primary, and Residual, that Original[0-j] = Primary[0-j] and
+// Original[j-n] = Residual[0-m] once the streams have been read to
+// completion.
+//
+// This method is guaranteed to be idempotent.
+func (c *BigQueryStorageClient) SplitReadStream(ctx context.Context, req *storagepb.SplitReadStreamRequest, opts ...gax.CallOption) (*storagepb.SplitReadStreamResponse, error) {
+ md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "original_stream.name", req.GetOriginalStream().GetName()))
+ ctx = insertMetadata(ctx, c.xGoogMetadata, md)
+ opts = append(c.CallOptions.SplitReadStream[0:len(c.CallOptions.SplitReadStream):len(c.CallOptions.SplitReadStream)], opts...)
+ var resp *storagepb.SplitReadStreamResponse
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.bigQueryStorageClient.SplitReadStream(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
diff --git a/vendor/cloud.google.com/go/bigquery/storage/apiv1beta1/doc.go b/vendor/cloud.google.com/go/bigquery/storage/apiv1beta1/doc.go
new file mode 100644
index 0000000000..d39966fe90
--- /dev/null
+++ b/vendor/cloud.google.com/go/bigquery/storage/apiv1beta1/doc.go
@@ -0,0 +1,89 @@
+// Copyright 2019 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by gapic-generator. DO NOT EDIT.
+
+// Package storage is an auto-generated package for the
+// BigQuery Storage API.
+//
+// NOTE: This package is in beta. It is not stable, and may be subject to changes.
+//
+package storage // import "cloud.google.com/go/bigquery/storage/apiv1beta1"
+
+import (
+ "context"
+ "runtime"
+ "strings"
+ "unicode"
+
+ "google.golang.org/grpc/metadata"
+)
+
+func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context {
+ out, _ := metadata.FromOutgoingContext(ctx)
+ out = out.Copy()
+ for _, md := range mds {
+ for k, v := range md {
+ out[k] = append(out[k], v...)
+ }
+ }
+ return metadata.NewOutgoingContext(ctx, out)
+}
+
+// DefaultAuthScopes reports the default set of authentication scopes to use with this package.
+func DefaultAuthScopes() []string {
+ return []string{
+ "https://www.googleapis.com/auth/bigquery",
+ "https://www.googleapis.com/auth/cloud-platform",
+ }
+}
+
+// versionGo returns the Go runtime version. The returned string
+// has no whitespace, suitable for reporting in header.
+func versionGo() string {
+ const develPrefix = "devel +"
+
+ s := runtime.Version()
+ if strings.HasPrefix(s, develPrefix) {
+ s = s[len(develPrefix):]
+ if p := strings.IndexFunc(s, unicode.IsSpace); p >= 0 {
+ s = s[:p]
+ }
+ return s
+ }
+
+ notSemverRune := func(r rune) bool {
+ return strings.IndexRune("0123456789.", r) < 0
+ }
+
+ if strings.HasPrefix(s, "go1") {
+ s = s[2:]
+ var prerelease string
+ if p := strings.IndexFunc(s, notSemverRune); p >= 0 {
+ s, prerelease = s[:p], s[p:]
+ }
+ if strings.HasSuffix(s, ".") {
+ s += "0"
+ } else if strings.Count(s, ".") < 2 {
+ s += ".0"
+ }
+ if prerelease != "" {
+ s += "-" + prerelease
+ }
+ return s
+ }
+ return "UNKNOWN"
+}
+
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/bigquery/table.go b/vendor/cloud.google.com/go/bigquery/table.go
index 6181f460b6..17fc408c67 100644
--- a/vendor/cloud.google.com/go/bigquery/table.go
+++ b/vendor/cloud.google.com/go/bigquery/table.go
@@ -94,6 +94,11 @@ type TableMetadata struct {
// This does not include data that is being buffered during a streaming insert.
NumBytes int64
+ // The number of bytes in the table considered "long-term storage" for reduced
+ // billing purposes. See https://cloud.google.com/bigquery/pricing#long-term-storage
+ // for more information.
+ NumLongTermBytes int64
+
// The number of rows of data in this table.
// This does not include data that is being buffered during a streaming insert.
NumRows uint64
@@ -359,6 +364,9 @@ func (tm *TableMetadata) toBQ() (*bq.Table, error) {
if tm.NumBytes != 0 {
return nil, errors.New("cannot set NumBytes on create")
}
+ if tm.NumLongTermBytes != 0 {
+ return nil, errors.New("cannot set NumLongTermBytes on create")
+ }
if tm.NumRows != 0 {
return nil, errors.New("cannot set NumRows on create")
}
@@ -397,6 +405,7 @@ func bqToTableMetadata(t *bq.Table) (*TableMetadata, error) {
FullID: t.Id,
Labels: t.Labels,
NumBytes: t.NumBytes,
+ NumLongTermBytes: t.NumLongTermBytes,
NumRows: t.NumRows,
ExpirationTime: unixMillisToTime(t.ExpirationTime),
CreationTime: unixMillisToTime(t.CreationTime),
@@ -510,7 +519,10 @@ func (tm *TableMetadataToUpdate) toBQ() (*bq.Table, error) {
}
if tm.TimePartitioning != nil {
t.TimePartitioning = tm.TimePartitioning.toBQ()
- t.TimePartitioning.ForceSendFields = []string{"Expiration", "RequirePartitionFilter"}
+ t.TimePartitioning.ForceSendFields = []string{"RequirePartitionFilter"}
+ if tm.TimePartitioning.Expiration == 0 {
+ t.TimePartitioning.NullFields = []string{"ExpirationMs"}
+ }
}
if tm.ViewQuery != nil {
t.View = &bq.ViewDefinition{
diff --git a/vendor/cloud.google.com/go/bigquery/value.go b/vendor/cloud.google.com/go/bigquery/value.go
index 2755a5f3ed..c4d32b844d 100644
--- a/vendor/cloud.google.com/go/bigquery/value.go
+++ b/vendor/cloud.google.com/go/bigquery/value.go
@@ -497,7 +497,7 @@ func (vls *ValuesSaver) Save() (map[string]Value, string, error) {
func valuesToMap(vs []Value, schema Schema) (map[string]Value, error) {
if len(vs) != len(schema) {
- return nil, errors.New("Schema does not match length of row to be inserted")
+ return nil, errors.New("schema does not match length of row to be inserted")
}
m := make(map[string]Value)
diff --git a/vendor/cloud.google.com/go/bigtable/admin.go b/vendor/cloud.google.com/go/bigtable/admin.go
index 5a0c23480c..35f3020690 100644
--- a/vendor/cloud.google.com/go/bigtable/admin.go
+++ b/vendor/cloud.google.com/go/bigtable/admin.go
@@ -385,7 +385,7 @@ func (ac *AdminClient) Snapshots(ctx context.Context, cluster string) *SnapshotI
for _, s := range resp.Snapshots {
snapshotInfo, err := newSnapshotInfo(s)
if err != nil {
- return "", fmt.Errorf("Failed to parse snapshot proto %v", err)
+ return "", fmt.Errorf("failed to parse snapshot proto %v", err)
}
it.items = append(it.items, snapshotInfo)
}
@@ -407,12 +407,12 @@ func newSnapshotInfo(snapshot *btapb.Snapshot) (*SnapshotInfo, error) {
createTime, err := ptypes.Timestamp(snapshot.CreateTime)
if err != nil {
- return nil, fmt.Errorf("Invalid createTime: %v", err)
+ return nil, fmt.Errorf("invalid createTime: %v", err)
}
deleteTime, err := ptypes.Timestamp(snapshot.DeleteTime)
if err != nil {
- return nil, fmt.Errorf("Invalid deleteTime: %v", err)
+ return nil, fmt.Errorf("invalid deleteTime: %v", err)
}
return &SnapshotInfo{
@@ -1064,9 +1064,7 @@ func (iac *InstanceAdminClient) ListAppProfiles(ctx context.Context, instanceID
return "", err
}
- for _, a := range profileRes.AppProfiles {
- pit.items = append(pit.items, a)
- }
+ pit.items = append(pit.items, profileRes.AppProfiles...)
return profileRes.NextPageToken, nil
}
diff --git a/vendor/cloud.google.com/go/bigtable/bigtable.go b/vendor/cloud.google.com/go/bigtable/bigtable.go
index 07b4ee885c..28c0c92a4a 100644
--- a/vendor/cloud.google.com/go/bigtable/bigtable.go
+++ b/vendor/cloud.google.com/go/bigtable/bigtable.go
@@ -71,7 +71,7 @@ func NewClientWithConfig(ctx context.Context, project, instance string, config C
o = append(o,
option.WithGRPCConnectionPool(4),
// Set the max size to correspond to server-side limits.
- option.WithGRPCDialOption(grpc.WithDefaultCallOptions(grpc.MaxCallSendMsgSize(100<<20), grpc.MaxCallRecvMsgSize(100<<20))),
+ option.WithGRPCDialOption(grpc.WithDefaultCallOptions(grpc.MaxCallSendMsgSize(1<<28), grpc.MaxCallRecvMsgSize(1<<28))),
// TODO(grpc/grpc-go#1388) using connection pool without WithBlock
// can cause RPCs to fail randomly. We can delete this after the issue is fixed.
option.WithGRPCDialOption(grpc.WithBlock()))
diff --git a/vendor/cloud.google.com/go/bigtable/bttest/inmem.go b/vendor/cloud.google.com/go/bigtable/bttest/inmem.go
index 81bcf4efd8..72ad1c1ba3 100644
--- a/vendor/cloud.google.com/go/bigtable/bttest/inmem.go
+++ b/vendor/cloud.google.com/go/bigtable/bttest/inmem.go
@@ -380,7 +380,13 @@ func (s *server) ReadRows(req *btpb.ReadRowsRequest, stream btpb.Bigtable_ReadRo
rows := make([]*row, 0, len(rowSet))
for _, r := range rowSet {
- rows = append(rows, r)
+ r.mu.Lock()
+ fams := len(r.families)
+ r.mu.Unlock()
+
+ if fams != 0 {
+ rows = append(rows, r)
+ }
}
sort.Sort(byRowKey(rows))
diff --git a/vendor/cloud.google.com/go/bigtable/cmd/emulator/cbtemulator.go b/vendor/cloud.google.com/go/bigtable/cmd/emulator/cbtemulator.go
index 2477a64205..144c09ffb1 100644
--- a/vendor/cloud.google.com/go/bigtable/cmd/emulator/cbtemulator.go
+++ b/vendor/cloud.google.com/go/bigtable/cmd/emulator/cbtemulator.go
@@ -31,10 +31,18 @@ var (
port = flag.Int("port", 9000, "the port number to bind to on the local machine")
)
+const (
+ maxMsgSize = 256 * 1024 * 1024 // 256 MiB
+)
+
func main() {
grpc.EnableTracing = false
flag.Parse()
- srv, err := bttest.NewServer(fmt.Sprintf("%s:%d", *host, *port))
+ opts := []grpc.ServerOption{
+ grpc.MaxRecvMsgSize(maxMsgSize),
+ grpc.MaxSendMsgSize(maxMsgSize),
+ }
+ srv, err := bttest.NewServer(fmt.Sprintf("%s:%d", *host, *port), opts...)
if err != nil {
log.Fatalf("failed to start emulator: %v", err)
}
diff --git a/vendor/cloud.google.com/go/bigtable/internal/gax/call_option.go b/vendor/cloud.google.com/go/bigtable/internal/gax/call_option.go
index 79c580b00a..3c2213923b 100644
--- a/vendor/cloud.google.com/go/bigtable/internal/gax/call_option.go
+++ b/vendor/cloud.google.com/go/bigtable/internal/gax/call_option.go
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-// Package gax is a snapshot from github.com/googleapis/gax-go with minor modifications.
+// Package gax is a snapshot from github.com/googleapis/gax-go/v2 with minor modifications.
package gax
import (
diff --git a/vendor/cloud.google.com/go/bigtable/internal/gax/invoke.go b/vendor/cloud.google.com/go/bigtable/internal/gax/invoke.go
index 228dd44380..22089702f7 100644
--- a/vendor/cloud.google.com/go/bigtable/internal/gax/invoke.go
+++ b/vendor/cloud.google.com/go/bigtable/internal/gax/invoke.go
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-// Package gax is a snapshot from github.com/googleapis/gax-go with minor modifications.
+// Package gax is a snapshot from github.com/googleapis/gax-go/v2 with minor modifications.
package gax
import (
diff --git a/vendor/cloud.google.com/go/cloud.go b/vendor/cloud.google.com/go/cloud.go
index 9cf75c5e1e..ec6a2325c8 100644
--- a/vendor/cloud.google.com/go/cloud.go
+++ b/vendor/cloud.google.com/go/cloud.go
@@ -64,7 +64,7 @@ pooled and addressed in a round robin fashion.
Using the Libraries with Docker
Minimal docker images like Alpine lack CA certificates. This causes RPCs to appear to
-hang, because gRPC retries indefinitely. See https://github.com/GoogleCloudPlatform/google-cloud-go/issues/928
+hang, because gRPC retries indefinitely. See https://github.com/googleapis/google-cloud-go/issues/928
for more information.
diff --git a/vendor/cloud.google.com/go/cloudtasks/apiv2beta2/cloud_tasks_client.go b/vendor/cloud.google.com/go/cloudtasks/apiv2beta2/cloud_tasks_client.go
index 0a2d93e495..a97ddd9e67 100644
--- a/vendor/cloud.google.com/go/cloudtasks/apiv2beta2/cloud_tasks_client.go
+++ b/vendor/cloud.google.com/go/cloudtasks/apiv2beta2/cloud_tasks_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package cloudtasks
@@ -23,7 +23,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/cloudtasks/apiv2beta2/doc.go b/vendor/cloud.google.com/go/cloudtasks/apiv2beta2/doc.go
index 755307513c..33c8f0eade 100644
--- a/vendor/cloud.google.com/go/cloudtasks/apiv2beta2/doc.go
+++ b/vendor/cloud.google.com/go/cloudtasks/apiv2beta2/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package cloudtasks is an auto-generated package for the
// Cloud Tasks API.
//
-// NOTE: This package is in alpha. It is not stable, and is likely to change.
+// NOTE: This package is in beta. It is not stable, and may be subject to changes.
//
// Manages the execution of large numbers of distributed requests.
package cloudtasks // import "cloud.google.com/go/cloudtasks/apiv2beta2"
@@ -86,4 +86,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/cloudtasks/apiv2beta3/cloud_tasks_client.go b/vendor/cloud.google.com/go/cloudtasks/apiv2beta3/cloud_tasks_client.go
index e956a7e038..72d97b2f04 100644
--- a/vendor/cloud.google.com/go/cloudtasks/apiv2beta3/cloud_tasks_client.go
+++ b/vendor/cloud.google.com/go/cloudtasks/apiv2beta3/cloud_tasks_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package cloudtasks
@@ -23,7 +23,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/cloudtasks/apiv2beta3/doc.go b/vendor/cloud.google.com/go/cloudtasks/apiv2beta3/doc.go
index d0a6f7b5d5..35f4610b1b 100644
--- a/vendor/cloud.google.com/go/cloudtasks/apiv2beta3/doc.go
+++ b/vendor/cloud.google.com/go/cloudtasks/apiv2beta3/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package cloudtasks is an auto-generated package for the
// Cloud Tasks API.
//
-// NOTE: This package is in alpha. It is not stable, and is likely to change.
+// NOTE: This package is in beta. It is not stable, and may be subject to changes.
//
// Manages the execution of large numbers of distributed requests.
package cloudtasks // import "cloud.google.com/go/cloudtasks/apiv2beta3"
@@ -86,4 +86,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/compute/metadata/metadata.go b/vendor/cloud.google.com/go/compute/metadata/metadata.go
index 0d929a6192..125b7033c9 100644
--- a/vendor/cloud.google.com/go/compute/metadata/metadata.go
+++ b/vendor/cloud.google.com/go/compute/metadata/metadata.go
@@ -137,7 +137,7 @@ func testOnGCE() bool {
resc := make(chan bool, 2)
// Try two strategies in parallel.
- // See https://github.com/GoogleCloudPlatform/google-cloud-go/issues/194
+ // See https://github.com/googleapis/google-cloud-go/issues/194
go func() {
req, _ := http.NewRequest("GET", "http://"+metadataIP, nil)
req.Header.Set("User-Agent", userAgent)
@@ -300,8 +300,8 @@ func (c *Client) getETag(suffix string) (value, etag string, err error) {
// being stable anyway.
host = metadataIP
}
- url := "http://" + host + "/computeMetadata/v1/" + suffix
- req, _ := http.NewRequest("GET", url, nil)
+ u := "http://" + host + "/computeMetadata/v1/" + suffix
+ req, _ := http.NewRequest("GET", u, nil)
req.Header.Set("Metadata-Flavor", "Google")
req.Header.Set("User-Agent", userAgent)
res, err := c.hc.Do(req)
@@ -312,13 +312,13 @@ func (c *Client) getETag(suffix string) (value, etag string, err error) {
if res.StatusCode == http.StatusNotFound {
return "", "", NotDefinedError(suffix)
}
- if res.StatusCode != 200 {
- return "", "", fmt.Errorf("status code %d trying to fetch %s", res.StatusCode, url)
- }
all, err := ioutil.ReadAll(res.Body)
if err != nil {
return "", "", err
}
+ if res.StatusCode != 200 {
+ return "", "", &Error{Code: res.StatusCode, Message: string(all)}
+ }
return string(all), res.Header.Get("Etag"), nil
}
@@ -499,3 +499,15 @@ func (c *Client) Subscribe(suffix string, fn func(v string, ok bool) error) erro
}
}
}
+
+// Error contains an error response from the server.
+type Error struct {
+ // Code is the HTTP response status code.
+ Code int
+ // Message is the server response message.
+ Message string
+}
+
+func (e *Error) Error() string {
+ return fmt.Sprintf("compute: Received %d `%s`", e.Code, e.Message)
+}
diff --git a/vendor/cloud.google.com/go/container/apiv1/cluster_manager_client.go b/vendor/cloud.google.com/go/container/apiv1/cluster_manager_client.go
index bb3011c37d..22978d3771 100644
--- a/vendor/cloud.google.com/go/container/apiv1/cluster_manager_client.go
+++ b/vendor/cloud.google.com/go/container/apiv1/cluster_manager_client.go
@@ -21,7 +21,7 @@ import (
"time"
"cloud.google.com/go/internal/version"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
containerpb "google.golang.org/genproto/googleapis/container/v1"
diff --git a/vendor/cloud.google.com/go/containeranalysis/apiv1beta1/container_analysis_v1_beta1_client.go b/vendor/cloud.google.com/go/containeranalysis/apiv1beta1/container_analysis_v1_beta1_client.go
index 1a5dd24f38..758df600c1 100644
--- a/vendor/cloud.google.com/go/containeranalysis/apiv1beta1/container_analysis_v1_beta1_client.go
+++ b/vendor/cloud.google.com/go/containeranalysis/apiv1beta1/container_analysis_v1_beta1_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package containeranalysis
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/containeranalysis/apiv1beta1/doc.go b/vendor/cloud.google.com/go/containeranalysis/apiv1beta1/doc.go
index 1f13e5bff5..208bfded47 100644
--- a/vendor/cloud.google.com/go/containeranalysis/apiv1beta1/doc.go
+++ b/vendor/cloud.google.com/go/containeranalysis/apiv1beta1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package containeranalysis is an auto-generated package for the
// Container Analysis API.
@@ -88,4 +88,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/containeranalysis/apiv1beta1/grafeas_v1_beta1_client.go b/vendor/cloud.google.com/go/containeranalysis/apiv1beta1/grafeas_v1_beta1_client.go
index b5d2c21a31..40091f6114 100644
--- a/vendor/cloud.google.com/go/containeranalysis/apiv1beta1/grafeas_v1_beta1_client.go
+++ b/vendor/cloud.google.com/go/containeranalysis/apiv1beta1/grafeas_v1_beta1_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package containeranalysis
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/dataproc/apiv1/cluster_controller_client.go b/vendor/cloud.google.com/go/dataproc/apiv1/cluster_controller_client.go
index 16394c238d..3320ec0458 100644
--- a/vendor/cloud.google.com/go/dataproc/apiv1/cluster_controller_client.go
+++ b/vendor/cloud.google.com/go/dataproc/apiv1/cluster_controller_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package dataproc
@@ -24,7 +24,7 @@ import (
"cloud.google.com/go/longrunning"
lroauto "cloud.google.com/go/longrunning/autogen"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/dataproc/apiv1/doc.go b/vendor/cloud.google.com/go/dataproc/apiv1/doc.go
index 8130fb2363..19f20059e6 100644
--- a/vendor/cloud.google.com/go/dataproc/apiv1/doc.go
+++ b/vendor/cloud.google.com/go/dataproc/apiv1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package dataproc is an auto-generated package for the
// Google Cloud Dataproc API.
@@ -86,4 +86,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/dataproc/apiv1/job_controller_client.go b/vendor/cloud.google.com/go/dataproc/apiv1/job_controller_client.go
index f38ecb5fac..dd125fbba6 100644
--- a/vendor/cloud.google.com/go/dataproc/apiv1/job_controller_client.go
+++ b/vendor/cloud.google.com/go/dataproc/apiv1/job_controller_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package dataproc
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/dataproc/apiv1/workflow_template_client.go b/vendor/cloud.google.com/go/dataproc/apiv1/workflow_template_client.go
index c7817a6646..bfb0e65e25 100644
--- a/vendor/cloud.google.com/go/dataproc/apiv1/workflow_template_client.go
+++ b/vendor/cloud.google.com/go/dataproc/apiv1/workflow_template_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package dataproc
@@ -24,7 +24,7 @@ import (
"cloud.google.com/go/longrunning"
lroauto "cloud.google.com/go/longrunning/autogen"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/dataproc/apiv1beta2/cluster_controller_client.go b/vendor/cloud.google.com/go/dataproc/apiv1beta2/cluster_controller_client.go
index 25c3d575bd..95ff58ebf0 100644
--- a/vendor/cloud.google.com/go/dataproc/apiv1beta2/cluster_controller_client.go
+++ b/vendor/cloud.google.com/go/dataproc/apiv1beta2/cluster_controller_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package dataproc
@@ -24,7 +24,7 @@ import (
"cloud.google.com/go/longrunning"
lroauto "cloud.google.com/go/longrunning/autogen"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/dataproc/apiv1beta2/doc.go b/vendor/cloud.google.com/go/dataproc/apiv1beta2/doc.go
index de8a575c9c..6871c51522 100644
--- a/vendor/cloud.google.com/go/dataproc/apiv1beta2/doc.go
+++ b/vendor/cloud.google.com/go/dataproc/apiv1beta2/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package dataproc is an auto-generated package for the
// Google Cloud Dataproc API.
//
-// NOTE: This package is in alpha. It is not stable, and is likely to change.
+// NOTE: This package is in beta. It is not stable, and may be subject to changes.
//
// Manages Hadoop-based clusters and jobs on Google Cloud Platform.
package dataproc // import "cloud.google.com/go/dataproc/apiv1beta2"
@@ -86,4 +86,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/dataproc/apiv1beta2/job_controller_client.go b/vendor/cloud.google.com/go/dataproc/apiv1beta2/job_controller_client.go
index 6049a7dbdf..cd52d5e8fd 100644
--- a/vendor/cloud.google.com/go/dataproc/apiv1beta2/job_controller_client.go
+++ b/vendor/cloud.google.com/go/dataproc/apiv1beta2/job_controller_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package dataproc
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/dataproc/apiv1beta2/workflow_template_client.go b/vendor/cloud.google.com/go/dataproc/apiv1beta2/workflow_template_client.go
index 4af9232b03..8ebc882994 100644
--- a/vendor/cloud.google.com/go/dataproc/apiv1beta2/workflow_template_client.go
+++ b/vendor/cloud.google.com/go/dataproc/apiv1beta2/workflow_template_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package dataproc
@@ -24,7 +24,7 @@ import (
"cloud.google.com/go/longrunning"
lroauto "cloud.google.com/go/longrunning/autogen"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/datastore/client.go b/vendor/cloud.google.com/go/datastore/client.go
index 8eee203be7..618d8bb3fa 100644
--- a/vendor/cloud.google.com/go/datastore/client.go
+++ b/vendor/cloud.google.com/go/datastore/client.go
@@ -20,7 +20,7 @@ import (
"cloud.google.com/go/internal"
"cloud.google.com/go/internal/version"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
pb "google.golang.org/genproto/googleapis/datastore/v1"
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
diff --git a/vendor/cloud.google.com/go/datastore/datastore.go b/vendor/cloud.google.com/go/datastore/datastore.go
index 315df2b0fc..e6f7ee1ca8 100644
--- a/vendor/cloud.google.com/go/datastore/datastore.go
+++ b/vendor/cloud.google.com/go/datastore/datastore.go
@@ -43,10 +43,9 @@ const resourcePrefixHeader = "google-cloud-resource-prefix"
// Client is a client for reading and writing data in a datastore dataset.
type Client struct {
- conn *grpc.ClientConn
- client pb.DatastoreClient
- endpoint string
- dataset string // Called dataset by the datastore API, synonym for project ID.
+ conn *grpc.ClientConn
+ client pb.DatastoreClient
+ dataset string // Called dataset by the datastore API, synonym for project ID.
}
// NewClient creates a new Client for a given dataset.
diff --git a/vendor/cloud.google.com/go/datastore/load.go b/vendor/cloud.google.com/go/datastore/load.go
index 61aa3ed28a..170385ba8b 100644
--- a/vendor/cloud.google.com/go/datastore/load.go
+++ b/vendor/cloud.google.com/go/datastore/load.go
@@ -29,7 +29,6 @@ var (
typeOfTime = reflect.TypeOf(time.Time{})
typeOfGeoPoint = reflect.TypeOf(GeoPoint{})
typeOfKeyPtr = reflect.TypeOf(&Key{})
- typeOfEntityPtr = reflect.TypeOf(&Entity{})
)
// typeMismatchReason returns a string explaining why the property p could not
diff --git a/vendor/cloud.google.com/go/datastore/prop.go b/vendor/cloud.google.com/go/datastore/prop.go
index 98084d0331..645b99a465 100644
--- a/vendor/cloud.google.com/go/datastore/prop.go
+++ b/vendor/cloud.google.com/go/datastore/prop.go
@@ -26,9 +26,6 @@ import (
// Entities with more than this many indexed properties will not be saved.
const maxIndexedProperties = 20000
-// []byte fields more than 1 megabyte long will not be loaded or saved.
-const maxBlobLen = 1 << 20
-
// Property is a name/value pair plus some metadata. A datastore entity's
// contents are loaded and saved as a sequence of Properties. Each property
// name must be unique within an entity.
diff --git a/vendor/cloud.google.com/go/debugger/apiv2/controller2_client.go b/vendor/cloud.google.com/go/debugger/apiv2/controller2_client.go
index 3c12efbf7e..5ffb8b7321 100644
--- a/vendor/cloud.google.com/go/debugger/apiv2/controller2_client.go
+++ b/vendor/cloud.google.com/go/debugger/apiv2/controller2_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package debugger
@@ -20,7 +20,7 @@ import (
"context"
"time"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
clouddebuggerpb "google.golang.org/genproto/googleapis/devtools/clouddebugger/v2"
diff --git a/vendor/cloud.google.com/go/debugger/apiv2/debugger2_client.go b/vendor/cloud.google.com/go/debugger/apiv2/debugger2_client.go
index de5e0f1333..127747f0d6 100644
--- a/vendor/cloud.google.com/go/debugger/apiv2/debugger2_client.go
+++ b/vendor/cloud.google.com/go/debugger/apiv2/debugger2_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package debugger
@@ -20,7 +20,7 @@ import (
"context"
"time"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
clouddebuggerpb "google.golang.org/genproto/googleapis/devtools/clouddebugger/v2"
diff --git a/vendor/cloud.google.com/go/debugger/apiv2/doc.go b/vendor/cloud.google.com/go/debugger/apiv2/doc.go
index e3d5256af8..dbefee0131 100644
--- a/vendor/cloud.google.com/go/debugger/apiv2/doc.go
+++ b/vendor/cloud.google.com/go/debugger/apiv2/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package debugger is an auto-generated package for the
// Stackdriver Debugger API.
@@ -90,4 +90,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/dialogflow/apiv2/agents_client.go b/vendor/cloud.google.com/go/dialogflow/apiv2/agents_client.go
index a6f7250901..6d60e18941 100644
--- a/vendor/cloud.google.com/go/dialogflow/apiv2/agents_client.go
+++ b/vendor/cloud.google.com/go/dialogflow/apiv2/agents_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package dialogflow
@@ -25,7 +25,7 @@ import (
lroauto "cloud.google.com/go/longrunning/autogen"
"github.com/golang/protobuf/proto"
structpbpb "github.com/golang/protobuf/ptypes/struct"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/dialogflow/apiv2/contexts_client.go b/vendor/cloud.google.com/go/dialogflow/apiv2/contexts_client.go
index 6d016ee499..c8ecc656b5 100644
--- a/vendor/cloud.google.com/go/dialogflow/apiv2/contexts_client.go
+++ b/vendor/cloud.google.com/go/dialogflow/apiv2/contexts_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package dialogflow
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/dialogflow/apiv2/doc.go b/vendor/cloud.google.com/go/dialogflow/apiv2/doc.go
index 61f42d7c3e..f30bc8238d 100644
--- a/vendor/cloud.google.com/go/dialogflow/apiv2/doc.go
+++ b/vendor/cloud.google.com/go/dialogflow/apiv2/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package dialogflow is an auto-generated package for the
// Dialogflow API.
@@ -87,4 +87,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/dialogflow/apiv2/entity_types_client.go b/vendor/cloud.google.com/go/dialogflow/apiv2/entity_types_client.go
index 2536b54024..0d2f1f331c 100644
--- a/vendor/cloud.google.com/go/dialogflow/apiv2/entity_types_client.go
+++ b/vendor/cloud.google.com/go/dialogflow/apiv2/entity_types_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package dialogflow
@@ -25,7 +25,7 @@ import (
lroauto "cloud.google.com/go/longrunning/autogen"
"github.com/golang/protobuf/proto"
structpbpb "github.com/golang/protobuf/ptypes/struct"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/dialogflow/apiv2/intents_client.go b/vendor/cloud.google.com/go/dialogflow/apiv2/intents_client.go
index 73f5ed35c6..1912fba5cc 100644
--- a/vendor/cloud.google.com/go/dialogflow/apiv2/intents_client.go
+++ b/vendor/cloud.google.com/go/dialogflow/apiv2/intents_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package dialogflow
@@ -25,7 +25,7 @@ import (
lroauto "cloud.google.com/go/longrunning/autogen"
"github.com/golang/protobuf/proto"
structpbpb "github.com/golang/protobuf/ptypes/struct"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/dialogflow/apiv2/session_entity_types_client.go b/vendor/cloud.google.com/go/dialogflow/apiv2/session_entity_types_client.go
index 8849a85550..b5f188da01 100644
--- a/vendor/cloud.google.com/go/dialogflow/apiv2/session_entity_types_client.go
+++ b/vendor/cloud.google.com/go/dialogflow/apiv2/session_entity_types_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package dialogflow
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/dialogflow/apiv2/sessions_client.go b/vendor/cloud.google.com/go/dialogflow/apiv2/sessions_client.go
index 7485e93b91..3c19da6121 100644
--- a/vendor/cloud.google.com/go/dialogflow/apiv2/sessions_client.go
+++ b/vendor/cloud.google.com/go/dialogflow/apiv2/sessions_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,14 +12,14 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package dialogflow
import (
"context"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
dialogflowpb "google.golang.org/genproto/googleapis/cloud/dialogflow/v2"
diff --git a/vendor/cloud.google.com/go/dlp/apiv2/dlp_client.go b/vendor/cloud.google.com/go/dlp/apiv2/dlp_client.go
index 359daa57a5..febf7df807 100644
--- a/vendor/cloud.google.com/go/dlp/apiv2/dlp_client.go
+++ b/vendor/cloud.google.com/go/dlp/apiv2/dlp_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package dlp
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/dlp/apiv2/doc.go b/vendor/cloud.google.com/go/dlp/apiv2/doc.go
index 4ee9d0d410..3266531c03 100644
--- a/vendor/cloud.google.com/go/dlp/apiv2/doc.go
+++ b/vendor/cloud.google.com/go/dlp/apiv2/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package dlp is an auto-generated package for the
// Cloud Data Loss Prevention (DLP) API.
@@ -87,4 +87,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/errorreporting/apiv1beta1/doc.go b/vendor/cloud.google.com/go/errorreporting/apiv1beta1/doc.go
index 65af37904a..bf4cb3a160 100644
--- a/vendor/cloud.google.com/go/errorreporting/apiv1beta1/doc.go
+++ b/vendor/cloud.google.com/go/errorreporting/apiv1beta1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package errorreporting is an auto-generated package for the
// Stackdriver Error Reporting API.
//
-// NOTE: This package is in alpha. It is not stable, and is likely to change.
+// NOTE: This package is in beta. It is not stable, and may be subject to changes.
//
// Stackdriver Error Reporting groups and counts similar errors from cloud
// services. The Stackdriver Error Reporting API provides a way to report new
@@ -90,4 +90,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/errorreporting/apiv1beta1/error_group_client.go b/vendor/cloud.google.com/go/errorreporting/apiv1beta1/error_group_client.go
index d4d360a8cc..4f2ad30622 100644
--- a/vendor/cloud.google.com/go/errorreporting/apiv1beta1/error_group_client.go
+++ b/vendor/cloud.google.com/go/errorreporting/apiv1beta1/error_group_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package errorreporting
@@ -20,7 +20,7 @@ import (
"context"
"time"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
clouderrorreportingpb "google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1"
diff --git a/vendor/cloud.google.com/go/errorreporting/apiv1beta1/error_stats_client.go b/vendor/cloud.google.com/go/errorreporting/apiv1beta1/error_stats_client.go
index 52c06b5aa6..ade3fdc4d1 100644
--- a/vendor/cloud.google.com/go/errorreporting/apiv1beta1/error_stats_client.go
+++ b/vendor/cloud.google.com/go/errorreporting/apiv1beta1/error_stats_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package errorreporting
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/errorreporting/apiv1beta1/report_errors_client.go b/vendor/cloud.google.com/go/errorreporting/apiv1beta1/report_errors_client.go
index fa16976ce8..c3e7d9c7af 100644
--- a/vendor/cloud.google.com/go/errorreporting/apiv1beta1/report_errors_client.go
+++ b/vendor/cloud.google.com/go/errorreporting/apiv1beta1/report_errors_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,14 +12,14 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package errorreporting
import (
"context"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
clouderrorreportingpb "google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1"
diff --git a/vendor/cloud.google.com/go/errorreporting/errors.go b/vendor/cloud.google.com/go/errorreporting/errors.go
index 1a47057971..b554b5993d 100644
--- a/vendor/cloud.google.com/go/errorreporting/errors.go
+++ b/vendor/cloud.google.com/go/errorreporting/errors.go
@@ -31,16 +31,12 @@ import (
vkit "cloud.google.com/go/errorreporting/apiv1beta1"
"cloud.google.com/go/internal/version"
"github.com/golang/protobuf/ptypes"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/support/bundler"
pb "google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1"
)
-const (
- userAgent = `gcloud-golang-errorreporting/20160701`
-)
-
// Config is additional configuration for Client.
type Config struct {
// ServiceName identifies the running program and is included in the error reports.
diff --git a/vendor/cloud.google.com/go/expr/apiv1alpha1/cel_client.go b/vendor/cloud.google.com/go/expr/apiv1alpha1/cel_client.go
index fedeccb45a..578a67d4de 100644
--- a/vendor/cloud.google.com/go/expr/apiv1alpha1/cel_client.go
+++ b/vendor/cloud.google.com/go/expr/apiv1alpha1/cel_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,14 +12,14 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package expr
import (
"context"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
exprpb "google.golang.org/genproto/googleapis/api/expr/v1alpha1"
diff --git a/vendor/cloud.google.com/go/expr/apiv1alpha1/conformance_client.go b/vendor/cloud.google.com/go/expr/apiv1alpha1/conformance_client.go
index 05acb8216e..6d2a5cac34 100644
--- a/vendor/cloud.google.com/go/expr/apiv1alpha1/conformance_client.go
+++ b/vendor/cloud.google.com/go/expr/apiv1alpha1/conformance_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,14 +12,14 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package expr
import (
"context"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
exprpb "google.golang.org/genproto/googleapis/api/expr/v1alpha1"
diff --git a/vendor/cloud.google.com/go/expr/apiv1alpha1/doc.go b/vendor/cloud.google.com/go/expr/apiv1alpha1/doc.go
index 6d9588c869..8a4a01e71f 100644
--- a/vendor/cloud.google.com/go/expr/apiv1alpha1/doc.go
+++ b/vendor/cloud.google.com/go/expr/apiv1alpha1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package expr is an auto-generated package for the
// Common Expression Language.
@@ -84,4 +84,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/firestore/apiv1/doc.go b/vendor/cloud.google.com/go/firestore/apiv1/doc.go
new file mode 100644
index 0000000000..756e315522
--- /dev/null
+++ b/vendor/cloud.google.com/go/firestore/apiv1/doc.go
@@ -0,0 +1,91 @@
+// Copyright 2018 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by gapic-generator. DO NOT EDIT.
+
+// Package firestore is an auto-generated package for the
+// Google Cloud Firestore API.
+//
+// NOTE: This package is in beta. It is not stable, and may be subject to changes.
+//
+//
+// Use the client at cloud.google.com/go/firestore in preference to this.
+package firestore // import "cloud.google.com/go/firestore/apiv1"
+
+import (
+ "context"
+ "runtime"
+ "strings"
+ "unicode"
+
+ "google.golang.org/grpc/metadata"
+)
+
+func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context {
+ out, _ := metadata.FromOutgoingContext(ctx)
+ out = out.Copy()
+ for _, md := range mds {
+ for k, v := range md {
+ out[k] = append(out[k], v...)
+ }
+ }
+ return metadata.NewOutgoingContext(ctx, out)
+}
+
+// DefaultAuthScopes reports the default set of authentication scopes to use with this package.
+func DefaultAuthScopes() []string {
+ return []string{
+ "https://www.googleapis.com/auth/cloud-platform",
+ "https://www.googleapis.com/auth/datastore",
+ }
+}
+
+// versionGo returns the Go runtime version. The returned string
+// has no whitespace, suitable for reporting in header.
+func versionGo() string {
+ const develPrefix = "devel +"
+
+ s := runtime.Version()
+ if strings.HasPrefix(s, develPrefix) {
+ s = s[len(develPrefix):]
+ if p := strings.IndexFunc(s, unicode.IsSpace); p >= 0 {
+ s = s[:p]
+ }
+ return s
+ }
+
+ notSemverRune := func(r rune) bool {
+ return strings.IndexRune("0123456789.", r) < 0
+ }
+
+ if strings.HasPrefix(s, "go1") {
+ s = s[2:]
+ var prerelease string
+ if p := strings.IndexFunc(s, notSemverRune); p >= 0 {
+ s, prerelease = s[:p], s[p:]
+ }
+ if strings.HasSuffix(s, ".") {
+ s += "0"
+ } else if strings.Count(s, ".") < 2 {
+ s += ".0"
+ }
+ if prerelease != "" {
+ s += "-" + prerelease
+ }
+ return s
+ }
+ return "UNKNOWN"
+}
+
+const versionClient = "20190110"
diff --git a/vendor/cloud.google.com/go/firestore/apiv1/firestore_client.go b/vendor/cloud.google.com/go/firestore/apiv1/firestore_client.go
new file mode 100644
index 0000000000..d0490cdfc0
--- /dev/null
+++ b/vendor/cloud.google.com/go/firestore/apiv1/firestore_client.go
@@ -0,0 +1,503 @@
+// Copyright 2018 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by gapic-generator. DO NOT EDIT.
+
+package firestore
+
+import (
+ "context"
+ "math"
+ "time"
+
+ "github.com/golang/protobuf/proto"
+ gax "github.com/googleapis/gax-go/v2"
+ "google.golang.org/api/iterator"
+ "google.golang.org/api/option"
+ "google.golang.org/api/transport"
+ firestorepb "google.golang.org/genproto/googleapis/firestore/v1"
+ "google.golang.org/grpc"
+ "google.golang.org/grpc/codes"
+ "google.golang.org/grpc/metadata"
+)
+
+// CallOptions contains the retry settings for each method of Client.
+type CallOptions struct {
+ GetDocument []gax.CallOption
+ ListDocuments []gax.CallOption
+ CreateDocument []gax.CallOption
+ UpdateDocument []gax.CallOption
+ DeleteDocument []gax.CallOption
+ BatchGetDocuments []gax.CallOption
+ BeginTransaction []gax.CallOption
+ Commit []gax.CallOption
+ Rollback []gax.CallOption
+ RunQuery []gax.CallOption
+ Write []gax.CallOption
+ Listen []gax.CallOption
+ ListCollectionIds []gax.CallOption
+}
+
+func defaultClientOptions() []option.ClientOption {
+ return []option.ClientOption{
+ option.WithEndpoint("firestore.googleapis.com:443"),
+ option.WithScopes(DefaultAuthScopes()...),
+ }
+}
+
+func defaultCallOptions() *CallOptions {
+ retry := map[[2]string][]gax.CallOption{
+ {"default", "idempotent"}: {
+ gax.WithRetry(func() gax.Retryer {
+ return gax.OnCodes([]codes.Code{
+ codes.DeadlineExceeded,
+ codes.Unavailable,
+ }, gax.Backoff{
+ Initial: 100 * time.Millisecond,
+ Max: 60000 * time.Millisecond,
+ Multiplier: 1.3,
+ })
+ }),
+ },
+ {"streaming", "idempotent"}: {
+ gax.WithRetry(func() gax.Retryer {
+ return gax.OnCodes([]codes.Code{
+ codes.DeadlineExceeded,
+ codes.Unavailable,
+ }, gax.Backoff{
+ Initial: 100 * time.Millisecond,
+ Max: 60000 * time.Millisecond,
+ Multiplier: 1.3,
+ })
+ }),
+ },
+ }
+ return &CallOptions{
+ GetDocument: retry[[2]string{"default", "idempotent"}],
+ ListDocuments: retry[[2]string{"default", "idempotent"}],
+ CreateDocument: retry[[2]string{"default", "non_idempotent"}],
+ UpdateDocument: retry[[2]string{"default", "non_idempotent"}],
+ DeleteDocument: retry[[2]string{"default", "idempotent"}],
+ BatchGetDocuments: retry[[2]string{"streaming", "idempotent"}],
+ BeginTransaction: retry[[2]string{"default", "idempotent"}],
+ Commit: retry[[2]string{"default", "non_idempotent"}],
+ Rollback: retry[[2]string{"default", "idempotent"}],
+ RunQuery: retry[[2]string{"streaming", "idempotent"}],
+ Write: retry[[2]string{"streaming", "non_idempotent"}],
+ Listen: retry[[2]string{"streaming", "idempotent"}],
+ ListCollectionIds: retry[[2]string{"default", "idempotent"}],
+ }
+}
+
+// Client is a client for interacting with Google Cloud Firestore API.
+//
+// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
+type Client struct {
+ // The connection to the service.
+ conn *grpc.ClientConn
+
+ // The gRPC API client.
+ client firestorepb.FirestoreClient
+
+ // The call options for this service.
+ CallOptions *CallOptions
+
+ // The x-goog-* metadata to be sent with each request.
+ xGoogMetadata metadata.MD
+}
+
+// NewClient creates a new firestore client.
+//
+// The Cloud Firestore service.
+//
+// This service exposes several types of comparable timestamps:
+//
+// create_time - The time at which a document was created. Changes only
+// when a document is deleted, then re-created. Increases in a strict
+// monotonic fashion.
+//
+// update_time - The time at which a document was last updated. Changes
+// every time a document is modified. Does not change when a write results
+// in no modifications. Increases in a strict monotonic fashion.
+//
+// read_time - The time at which a particular state was observed. Used
+// to denote a consistent snapshot of the database or the time at which a
+// Document was observed to not exist.
+//
+// commit_time - The time at which the writes in a transaction were
+// committed. Any read with an equal or greater read_time is guaranteed
+// to see the effects of the transaction.
+func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) {
+ conn, err := transport.DialGRPC(ctx, append(defaultClientOptions(), opts...)...)
+ if err != nil {
+ return nil, err
+ }
+ c := &Client{
+ conn: conn,
+ CallOptions: defaultCallOptions(),
+
+ client: firestorepb.NewFirestoreClient(conn),
+ }
+ c.SetGoogleClientInfo()
+ return c, nil
+}
+
+// Connection returns the client's connection to the API service.
+func (c *Client) Connection() *grpc.ClientConn {
+ return c.conn
+}
+
+// Close closes the connection to the API service. The user should invoke this when
+// the client is no longer required.
+func (c *Client) Close() error {
+ return c.conn.Close()
+}
+
+// SetGoogleClientInfo sets the name and version of the application in
+// the `x-goog-api-client` header passed on each request. Intended for
+// use by Google-written clients.
+func (c *Client) SetGoogleClientInfo(keyval ...string) {
+ kv := append([]string{"gl-go", versionGo()}, keyval...)
+ kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version)
+ c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
+}
+
+// GetDocument gets a single document.
+func (c *Client) GetDocument(ctx context.Context, req *firestorepb.GetDocumentRequest, opts ...gax.CallOption) (*firestorepb.Document, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.GetDocument[0:len(c.CallOptions.GetDocument):len(c.CallOptions.GetDocument)], opts...)
+ var resp *firestorepb.Document
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.client.GetDocument(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// ListDocuments lists documents.
+func (c *Client) ListDocuments(ctx context.Context, req *firestorepb.ListDocumentsRequest, opts ...gax.CallOption) *DocumentIterator {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.ListDocuments[0:len(c.CallOptions.ListDocuments):len(c.CallOptions.ListDocuments)], opts...)
+ it := &DocumentIterator{}
+ req = proto.Clone(req).(*firestorepb.ListDocumentsRequest)
+ it.InternalFetch = func(pageSize int, pageToken string) ([]*firestorepb.Document, string, error) {
+ var resp *firestorepb.ListDocumentsResponse
+ req.PageToken = pageToken
+ if pageSize > math.MaxInt32 {
+ req.PageSize = math.MaxInt32
+ } else {
+ req.PageSize = int32(pageSize)
+ }
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.client.ListDocuments(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, "", err
+ }
+ return resp.Documents, resp.NextPageToken, nil
+ }
+ fetch := func(pageSize int, pageToken string) (string, error) {
+ items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+ if err != nil {
+ return "", err
+ }
+ it.items = append(it.items, items...)
+ return nextPageToken, nil
+ }
+ it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+ it.pageInfo.MaxSize = int(req.PageSize)
+ return it
+}
+
+// CreateDocument creates a new document.
+func (c *Client) CreateDocument(ctx context.Context, req *firestorepb.CreateDocumentRequest, opts ...gax.CallOption) (*firestorepb.Document, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.CreateDocument[0:len(c.CallOptions.CreateDocument):len(c.CallOptions.CreateDocument)], opts...)
+ var resp *firestorepb.Document
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.client.CreateDocument(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// UpdateDocument updates or inserts a document.
+func (c *Client) UpdateDocument(ctx context.Context, req *firestorepb.UpdateDocumentRequest, opts ...gax.CallOption) (*firestorepb.Document, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.UpdateDocument[0:len(c.CallOptions.UpdateDocument):len(c.CallOptions.UpdateDocument)], opts...)
+ var resp *firestorepb.Document
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.client.UpdateDocument(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// DeleteDocument deletes a document.
+func (c *Client) DeleteDocument(ctx context.Context, req *firestorepb.DeleteDocumentRequest, opts ...gax.CallOption) error {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.DeleteDocument[0:len(c.CallOptions.DeleteDocument):len(c.CallOptions.DeleteDocument)], opts...)
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ _, err = c.client.DeleteDocument(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ return err
+}
+
+// BatchGetDocuments gets multiple documents.
+//
+// Documents returned by this method are not guaranteed to be returned in the
+// same order that they were requested.
+func (c *Client) BatchGetDocuments(ctx context.Context, req *firestorepb.BatchGetDocumentsRequest, opts ...gax.CallOption) (firestorepb.Firestore_BatchGetDocumentsClient, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.BatchGetDocuments[0:len(c.CallOptions.BatchGetDocuments):len(c.CallOptions.BatchGetDocuments)], opts...)
+ var resp firestorepb.Firestore_BatchGetDocumentsClient
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.client.BatchGetDocuments(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// BeginTransaction starts a new transaction.
+func (c *Client) BeginTransaction(ctx context.Context, req *firestorepb.BeginTransactionRequest, opts ...gax.CallOption) (*firestorepb.BeginTransactionResponse, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.BeginTransaction[0:len(c.CallOptions.BeginTransaction):len(c.CallOptions.BeginTransaction)], opts...)
+ var resp *firestorepb.BeginTransactionResponse
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.client.BeginTransaction(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// Commit commits a transaction, while optionally updating documents.
+func (c *Client) Commit(ctx context.Context, req *firestorepb.CommitRequest, opts ...gax.CallOption) (*firestorepb.CommitResponse, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.Commit[0:len(c.CallOptions.Commit):len(c.CallOptions.Commit)], opts...)
+ var resp *firestorepb.CommitResponse
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.client.Commit(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// Rollback rolls back a transaction.
+func (c *Client) Rollback(ctx context.Context, req *firestorepb.RollbackRequest, opts ...gax.CallOption) error {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.Rollback[0:len(c.CallOptions.Rollback):len(c.CallOptions.Rollback)], opts...)
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ _, err = c.client.Rollback(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ return err
+}
+
+// RunQuery runs a query.
+func (c *Client) RunQuery(ctx context.Context, req *firestorepb.RunQueryRequest, opts ...gax.CallOption) (firestorepb.Firestore_RunQueryClient, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.RunQuery[0:len(c.CallOptions.RunQuery):len(c.CallOptions.RunQuery)], opts...)
+ var resp firestorepb.Firestore_RunQueryClient
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.client.RunQuery(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// Write streams batches of document updates and deletes, in order.
+func (c *Client) Write(ctx context.Context, opts ...gax.CallOption) (firestorepb.Firestore_WriteClient, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.Write[0:len(c.CallOptions.Write):len(c.CallOptions.Write)], opts...)
+ var resp firestorepb.Firestore_WriteClient
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.client.Write(ctx, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// Listen listens to changes.
+func (c *Client) Listen(ctx context.Context, opts ...gax.CallOption) (firestorepb.Firestore_ListenClient, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.Listen[0:len(c.CallOptions.Listen):len(c.CallOptions.Listen)], opts...)
+ var resp firestorepb.Firestore_ListenClient
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.client.Listen(ctx, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// ListCollectionIds lists all the collection IDs underneath a document.
+func (c *Client) ListCollectionIds(ctx context.Context, req *firestorepb.ListCollectionIdsRequest, opts ...gax.CallOption) *StringIterator {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.ListCollectionIds[0:len(c.CallOptions.ListCollectionIds):len(c.CallOptions.ListCollectionIds)], opts...)
+ it := &StringIterator{}
+ req = proto.Clone(req).(*firestorepb.ListCollectionIdsRequest)
+ it.InternalFetch = func(pageSize int, pageToken string) ([]string, string, error) {
+ var resp *firestorepb.ListCollectionIdsResponse
+ req.PageToken = pageToken
+ if pageSize > math.MaxInt32 {
+ req.PageSize = math.MaxInt32
+ } else {
+ req.PageSize = int32(pageSize)
+ }
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.client.ListCollectionIds(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, "", err
+ }
+ return resp.CollectionIds, resp.NextPageToken, nil
+ }
+ fetch := func(pageSize int, pageToken string) (string, error) {
+ items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+ if err != nil {
+ return "", err
+ }
+ it.items = append(it.items, items...)
+ return nextPageToken, nil
+ }
+ it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+ it.pageInfo.MaxSize = int(req.PageSize)
+ return it
+}
+
+// DocumentIterator manages a stream of *firestorepb.Document.
+type DocumentIterator struct {
+ items []*firestorepb.Document
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []*firestorepb.Document, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *DocumentIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *DocumentIterator) Next() (*firestorepb.Document, error) {
+ var item *firestorepb.Document
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *DocumentIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *DocumentIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
+
+// StringIterator manages a stream of string.
+type StringIterator struct {
+ items []string
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []string, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *StringIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *StringIterator) Next() (string, error) {
+ var item string
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *StringIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *StringIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
diff --git a/vendor/cloud.google.com/go/firestore/apiv1beta1/doc.go b/vendor/cloud.google.com/go/firestore/apiv1beta1/doc.go
index a3a68a24bf..40b423ee2b 100644
--- a/vendor/cloud.google.com/go/firestore/apiv1beta1/doc.go
+++ b/vendor/cloud.google.com/go/firestore/apiv1beta1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package firestore is an auto-generated package for the
// Google Cloud Firestore API.
@@ -88,4 +88,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/firestore/apiv1beta1/firestore_client.go b/vendor/cloud.google.com/go/firestore/apiv1beta1/firestore_client.go
index 24404e2cb2..c9c1577b0f 100644
--- a/vendor/cloud.google.com/go/firestore/apiv1beta1/firestore_client.go
+++ b/vendor/cloud.google.com/go/firestore/apiv1beta1/firestore_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package firestore
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/firestore/client.go b/vendor/cloud.google.com/go/firestore/client.go
index a5f014f714..3535f7966f 100644
--- a/vendor/cloud.google.com/go/firestore/client.go
+++ b/vendor/cloud.google.com/go/firestore/client.go
@@ -19,16 +19,18 @@ import (
"errors"
"fmt"
"io"
+ "os"
"strings"
"time"
- vkit "cloud.google.com/go/firestore/apiv1beta1"
+ vkit "cloud.google.com/go/firestore/apiv1"
"cloud.google.com/go/internal/version"
"github.com/golang/protobuf/ptypes"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
- pb "google.golang.org/genproto/googleapis/firestore/v1beta1"
+ pb "google.golang.org/genproto/googleapis/firestore/v1"
+ "google.golang.org/grpc"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/metadata"
"google.golang.org/grpc/status"
@@ -47,7 +49,18 @@ type Client struct {
// NewClient creates a new Firestore client that uses the given project.
func NewClient(ctx context.Context, projectID string, opts ...option.ClientOption) (*Client, error) {
- vc, err := vkit.NewClient(ctx, opts...)
+ var o []option.ClientOption
+ // Environment variables for gcloud emulator:
+ // https://cloud.google.com/sdk/gcloud/reference/beta/emulators/firestore/
+ if addr := os.Getenv("FIRESTORE_EMULATOR_HOST"); addr != "" {
+ conn, err := grpc.Dial(addr, grpc.WithInsecure())
+ if err != nil {
+ return nil, fmt.Errorf("firestore: dialing address from env var FIRESTORE_EMULATOR_HOST: %v", err)
+ }
+ o = []option.ClientOption{option.WithGRPCConn(conn)}
+ }
+ o = append(o, opts...)
+ vc, err := vkit.NewClient(ctx, o...)
if err != nil {
return nil, err
}
@@ -125,9 +138,6 @@ func (c *Client) idsToRef(IDs []string, dbPath string) (*CollectionRef, *Documen
//
// If a document is not present, the corresponding DocumentSnapshot's Exists method will return false.
func (c *Client) GetAll(ctx context.Context, docRefs []*DocumentRef) ([]*DocumentSnapshot, error) {
- if err := checkTransaction(ctx); err != nil {
- return nil, err
- }
return c.getAll(ctx, docRefs, nil)
}
@@ -198,11 +208,10 @@ func (c *Client) getAll(ctx context.Context, docRefs []*DocumentRef, tid []byte)
// Collections returns an interator over the top-level collections.
func (c *Client) Collections(ctx context.Context) *CollectionIterator {
it := &CollectionIterator{
- err: checkTransaction(ctx),
client: c,
it: c.c.ListCollectionIds(
withResourceHeader(ctx, c.path()),
- &pb.ListCollectionIdsRequest{Parent: c.path()}),
+ &pb.ListCollectionIdsRequest{Parent: c.path() + "/documents"}),
}
it.pageInfo, it.nextFunc = iterator.NewPageInfo(
it.fetch,
@@ -218,9 +227,6 @@ func (c *Client) Batch() *WriteBatch {
// commit calls the Commit RPC outside of a transaction.
func (c *Client) commit(ctx context.Context, ws []*pb.Write) ([]*WriteResult, error) {
- if err := checkTransaction(ctx); err != nil {
- return nil, err
- }
req := &pb.CommitRequest{
Database: c.path(),
Writes: ws,
diff --git a/vendor/cloud.google.com/go/firestore/collref.go b/vendor/cloud.google.com/go/firestore/collref.go
index ff445d1185..77deac8008 100644
--- a/vendor/cloud.google.com/go/firestore/collref.go
+++ b/vendor/cloud.google.com/go/firestore/collref.go
@@ -26,11 +26,19 @@ import (
type CollectionRef struct {
c *Client
- // Typically Parent.Path, or c.path if Parent is nil.
- // May be different if this CollectionRef was created from a stored reference
- // to a different project/DB.
+ // The full resource path of the collection's parent. Typically Parent.Path,
+ // or c.path if Parent is nil. May be different if this CollectionRef was
+ // created from a stored reference to a different project/DB. Always
+ // includes /documents - that is, the parent is minimally considered to be
+ // "/documents".
+ //
+ // For example, "projects/P/databases/D/documents/coll-1/doc-1".
parentPath string
+ // The shorter resource path of the collection. A collection "coll-2" in
+ // document "doc-1" in collection "coll-1" would be: "coll-1/doc-1/coll-2".
+ selfPath string
+
// Parent is the document of which this collection is a part. It is
// nil for top-level collections.
Parent *DocumentRef
@@ -49,20 +57,33 @@ func newTopLevelCollRef(c *Client, dbPath, id string) *CollectionRef {
return &CollectionRef{
c: c,
ID: id,
- parentPath: dbPath,
+ parentPath: dbPath + "/documents",
+ selfPath: id,
Path: dbPath + "/documents/" + id,
- Query: Query{c: c, collectionID: id, parentPath: dbPath},
+ Query: Query{
+ c: c,
+ collectionID: id,
+ path: dbPath + "/documents/" + id,
+ parentPath: dbPath + "/documents",
+ },
}
}
func newCollRefWithParent(c *Client, parent *DocumentRef, id string) *CollectionRef {
+ selfPath := parent.shortPath + "/" + id
return &CollectionRef{
c: c,
Parent: parent,
ID: id,
parentPath: parent.Path,
+ selfPath: selfPath,
Path: parent.Path + "/" + id,
- Query: Query{c: c, collectionID: id, parentPath: parent.Path},
+ Query: Query{
+ c: c,
+ collectionID: id,
+ path: parent.Path + "/" + id,
+ parentPath: parent.Path,
+ },
}
}
@@ -99,9 +120,6 @@ func (c *CollectionRef) Add(ctx context.Context, data interface{}) (*DocumentRef
// missing documents. A missing document is a document that does not exist but has
// sub-documents.
func (c *CollectionRef) DocumentRefs(ctx context.Context) *DocumentRefIterator {
- if err := checkTransaction(ctx); err != nil {
- return &DocumentRefIterator{err: err}
- }
return newDocumentRefIterator(ctx, c, nil)
}
diff --git a/vendor/cloud.google.com/go/firestore/doc.go b/vendor/cloud.google.com/go/firestore/doc.go
index 1e4c3f1e50..2e9ddf8723 100644
--- a/vendor/cloud.google.com/go/firestore/doc.go
+++ b/vendor/cloud.google.com/go/firestore/doc.go
@@ -18,6 +18,8 @@
Package firestore provides a client for reading and writing to a Cloud Firestore
database.
+ NOTE: This package is in beta. It is not stable, and may be subject to changes.
+
See https://cloud.google.com/firestore/docs for an introduction
to Cloud Firestore and additional help on using the Firestore API.
@@ -214,5 +216,15 @@ read and write methods of the Transaction passed to it.
if err != nil {
// TODO: Handle error.
}
+
+Google Cloud Firestore Emulator
+
+This package supports the Cloud Firestore emulator, which is useful for testing and
+development. Environment variables are used to indicate that Firestore traffic should be
+directed to the emulator instead of the production Firestore service.
+
+To install and run the emulator and its environment variables, see the documentation
+at https://cloud.google.com/sdk/gcloud/reference/beta/emulators/firestore/. Once the
+emulator is running, set FIRESTORE_EMULATOR_HOST to the API endpoint.
*/
package firestore
diff --git a/vendor/cloud.google.com/go/firestore/docref.go b/vendor/cloud.google.com/go/firestore/docref.go
index 422b6bdeae..1858b6f54e 100644
--- a/vendor/cloud.google.com/go/firestore/docref.go
+++ b/vendor/cloud.google.com/go/firestore/docref.go
@@ -22,9 +22,9 @@ import (
"reflect"
"sort"
- vkit "cloud.google.com/go/firestore/apiv1beta1"
+ vkit "cloud.google.com/go/firestore/apiv1"
"google.golang.org/api/iterator"
- pb "google.golang.org/genproto/googleapis/firestore/v1beta1"
+ pb "google.golang.org/genproto/googleapis/firestore/v1"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
@@ -36,18 +36,24 @@ type DocumentRef struct {
// The CollectionRef that this document is a part of. Never nil.
Parent *CollectionRef
- // The full resource path of the document: "projects/P/databases/D/documents..."
+ // The full resource path of the document. A document "doc-1" in collection
+ // "coll-1" would be: "projects/P/databases/D/documents/coll-1/doc-1".
Path string
+ // The shorter resource path of the document. A document "doc-1" in
+ // collection "coll-1" would be: "coll-1/doc-1".
+ shortPath string
+
// The ID of the document: the last component of the resource path.
ID string
}
func newDocRef(parent *CollectionRef, id string) *DocumentRef {
return &DocumentRef{
- Parent: parent,
- ID: id,
- Path: parent.Path + "/" + id,
+ Parent: parent,
+ ID: id,
+ Path: parent.Path + "/" + id,
+ shortPath: parent.selfPath + "/" + id,
}
}
@@ -62,9 +68,6 @@ func (d *DocumentRef) Collection(id string) *CollectionRef {
// In that case, Get returns a non-nil DocumentSnapshot whose Exists method return false and whose
// ReadTime is the time of the failed read operation.
func (d *DocumentRef) Get(ctx context.Context) (*DocumentSnapshot, error) {
- if err := checkTransaction(ctx); err != nil {
- return nil, err
- }
if d == nil {
return nil, errNilDocRef
}
@@ -90,9 +93,9 @@ func (d *DocumentRef) Get(ctx context.Context) (*DocumentSnapshot, error) {
// - bool converts to Bool.
// - string converts to String.
// - int, int8, int16, int32 and int64 convert to Integer.
-// - uint8, uint16 and uint32 convert to Integer. uint64 is disallowed,
-// because it can represent values that cannot be represented in an int64, which
-// is the underlying type of a Integer.
+// - uint8, uint16 and uint32 convert to Integer. uint, uint64 and uintptr are disallowed,
+// because they may be able to represent values that cannot be represented in an int64,
+// which is the underlying type of a Integer.
// - float32 and float64 convert to Double.
// - []byte converts to Bytes.
// - time.Time and *ts.Timestamp convert to Timestamp. ts is the package
@@ -222,22 +225,6 @@ func fpvsFromData(v reflect.Value, prefix FieldPath, fpvs *[]fpv) {
}
}
-// removePathsIf creates a new slice of FieldPaths that contains
-// exactly those elements of fps for which pred returns false.
-func removePathsIf(fps []FieldPath, pred func(FieldPath) bool) []FieldPath {
- // Return fps if it's empty to preserve the distinction betweeen nil and zero-length.
- if len(fps) == 0 {
- return fps
- }
- var result []FieldPath
- for _, fp := range fps {
- if !pred(fp) {
- result = append(result, fp)
- }
- }
- return result
-}
-
// Delete deletes the document. If the document doesn't exist, it does nothing
// and returns no error.
func (d *DocumentRef) Delete(ctx context.Context, preconds ...Precondition) (*WriteResult, error) {
@@ -385,25 +372,6 @@ func (d *DocumentRef) newUpdateWithTransform(doc *pb.Document, updatePaths []Fie
return ws
}
-// This helper turns server timestamp fields into a transform proto.
-func (d *DocumentRef) newServerTimestampTransform(serverTimestampFieldPaths []FieldPath, pc *pb.Precondition) *pb.Write {
- sort.Sort(byPath(serverTimestampFieldPaths)) // TODO(jba): make tests pass without this
- var fts []*pb.DocumentTransform_FieldTransform
- for _, p := range serverTimestampFieldPaths {
- fts = append(fts, serverTimestamp(p.toServiceFieldPath()))
- }
- return &pb.Write{
- Operation: &pb.Write_Transform{
- &pb.DocumentTransform{
- Document: d.Path,
- FieldTransforms: fts,
- // TODO(jba): should the transform have the same preconditions as the write?
- },
- },
- CurrentDocument: pc,
- }
-}
-
// arrayUnion is a special type in firestore. It instructs the server to add its
// elements to whatever array already exists, or to create an array if no value
// exists.
@@ -564,7 +532,6 @@ func (d *DocumentRef) Update(ctx context.Context, updates []Update, preconds ...
func (d *DocumentRef) Collections(ctx context.Context) *CollectionIterator {
client := d.Parent.c
it := &CollectionIterator{
- err: checkTransaction(ctx),
client: client,
parent: d,
it: client.c.ListCollectionIds(
diff --git a/vendor/cloud.google.com/go/firestore/document.go b/vendor/cloud.google.com/go/firestore/document.go
index 75063acce3..5b9d79e30c 100644
--- a/vendor/cloud.google.com/go/firestore/document.go
+++ b/vendor/cloud.google.com/go/firestore/document.go
@@ -22,7 +22,7 @@ import (
"github.com/golang/protobuf/ptypes"
tspb "github.com/golang/protobuf/ptypes/timestamp"
- pb "google.golang.org/genproto/googleapis/firestore/v1beta1"
+ pb "google.golang.org/genproto/googleapis/firestore/v1"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
@@ -83,8 +83,8 @@ func (d *DocumentSnapshot) Data() map[string]interface{} {
// - Bool converts to bool.
// - String converts to string.
// - Integer converts int64. When setting a struct field, any signed or unsigned
-// integer type is permitted except uint64. Overflow is detected and results in
-// an error.
+// integer type is permitted except uint, uint64 or uintptr. Overflow is detected
+// and results in an error.
// - Double converts to float64. When setting a struct field, float32 is permitted.
// Overflow is detected and results in an error.
// - Bytes is converted to []byte.
diff --git a/vendor/cloud.google.com/go/firestore/fieldpath.go b/vendor/cloud.google.com/go/firestore/fieldpath.go
index 3f64ced89c..b9c1399906 100644
--- a/vendor/cloud.google.com/go/firestore/fieldpath.go
+++ b/vendor/cloud.google.com/go/firestore/fieldpath.go
@@ -25,7 +25,7 @@ import (
"sync"
"cloud.google.com/go/internal/fields"
- pb "google.golang.org/genproto/googleapis/firestore/v1beta1"
+ pb "google.golang.org/genproto/googleapis/firestore/v1"
)
// A FieldPath is a non-empty sequence of non-empty fields that reference a value.
@@ -111,24 +111,6 @@ func (fp FieldPath) with(k string) FieldPath {
return append(r, k)
}
-// concat creates a new FieldPath consisting of fp1 followed by fp2.
-func (fp1 FieldPath) concat(fp2 FieldPath) FieldPath {
- r := make(FieldPath, len(fp1)+len(fp2))
- copy(r, fp1)
- copy(r[len(fp1):], fp2)
- return r
-}
-
-// in reports whether fp is equal to one of the fps.
-func (fp FieldPath) in(fps []FieldPath) bool {
- for _, e := range fps {
- if fp.equal(e) {
- return true
- }
- }
- return false
-}
-
// checkNoDupOrPrefix checks whether any FieldPath is a prefix of (or equal to)
// another.
// It modifies the order of FieldPaths in its argument (via sorting).
diff --git a/vendor/cloud.google.com/go/firestore/from_value.go b/vendor/cloud.google.com/go/firestore/from_value.go
index feba34fceb..66ad9e8484 100644
--- a/vendor/cloud.google.com/go/firestore/from_value.go
+++ b/vendor/cloud.google.com/go/firestore/from_value.go
@@ -21,7 +21,7 @@ import (
"strings"
"github.com/golang/protobuf/ptypes"
- pb "google.golang.org/genproto/googleapis/firestore/v1beta1"
+ pb "google.golang.org/genproto/googleapis/firestore/v1"
)
func setFromProtoValue(x interface{}, vproto *pb.Value, c *Client) error {
@@ -342,7 +342,6 @@ func createFromProtoValue(vproto *pb.Value, c *Client) (interface{}, error) {
return pathToDoc(v.ReferenceValue, c)
case *pb.Value_GeoPointValue:
return v.GeoPointValue, nil
-
case *pb.Value_ArrayValue:
vals := v.ArrayValue.Values
ret := make([]interface{}, len(vals))
diff --git a/vendor/cloud.google.com/go/firestore/genproto/test.pb.go b/vendor/cloud.google.com/go/firestore/genproto/test.pb.go
index 1c8cb4ad93..7f5bc24989 100644
--- a/vendor/cloud.google.com/go/firestore/genproto/test.pb.go
+++ b/vendor/cloud.google.com/go/firestore/genproto/test.pb.go
@@ -7,7 +7,7 @@ import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import timestamp "github.com/golang/protobuf/ptypes/timestamp"
-import v1beta1 "google.golang.org/genproto/googleapis/firestore/v1beta1"
+import v1 "google.golang.org/genproto/googleapis/firestore/v1"
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -46,7 +46,7 @@ func (x DocChange_Kind) String() string {
return proto.EnumName(DocChange_Kind_name, int32(x))
}
func (DocChange_Kind) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{19, 0}
+ return fileDescriptor_test_3f755a975e4c199e, []int{19, 0}
}
// A collection of tests.
@@ -61,7 +61,7 @@ func (m *TestSuite) Reset() { *m = TestSuite{} }
func (m *TestSuite) String() string { return proto.CompactTextString(m) }
func (*TestSuite) ProtoMessage() {}
func (*TestSuite) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{0}
+ return fileDescriptor_test_3f755a975e4c199e, []int{0}
}
func (m *TestSuite) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TestSuite.Unmarshal(m, b)
@@ -110,7 +110,7 @@ func (m *Test) Reset() { *m = Test{} }
func (m *Test) String() string { return proto.CompactTextString(m) }
func (*Test) ProtoMessage() {}
func (*Test) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{1}
+ return fileDescriptor_test_3f755a975e4c199e, []int{1}
}
func (m *Test) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Test.Unmarshal(m, b)
@@ -130,6 +130,13 @@ func (m *Test) XXX_DiscardUnknown() {
var xxx_messageInfo_Test proto.InternalMessageInfo
+func (m *Test) GetDescription() string {
+ if m != nil {
+ return m.Description
+ }
+ return ""
+}
+
type isTest_Test interface {
isTest_Test()
}
@@ -137,36 +144,50 @@ type isTest_Test interface {
type Test_Get struct {
Get *GetTest `protobuf:"bytes,2,opt,name=get,proto3,oneof"`
}
+
type Test_Create struct {
Create *CreateTest `protobuf:"bytes,3,opt,name=create,proto3,oneof"`
}
+
type Test_Set struct {
Set *SetTest `protobuf:"bytes,4,opt,name=set,proto3,oneof"`
}
+
type Test_Update struct {
Update *UpdateTest `protobuf:"bytes,5,opt,name=update,proto3,oneof"`
}
+
type Test_UpdatePaths struct {
UpdatePaths *UpdatePathsTest `protobuf:"bytes,6,opt,name=update_paths,json=updatePaths,proto3,oneof"`
}
+
type Test_Delete struct {
Delete *DeleteTest `protobuf:"bytes,7,opt,name=delete,proto3,oneof"`
}
+
type Test_Query struct {
Query *QueryTest `protobuf:"bytes,8,opt,name=query,proto3,oneof"`
}
+
type Test_Listen struct {
Listen *ListenTest `protobuf:"bytes,9,opt,name=listen,proto3,oneof"`
}
-func (*Test_Get) isTest_Test() {}
-func (*Test_Create) isTest_Test() {}
-func (*Test_Set) isTest_Test() {}
-func (*Test_Update) isTest_Test() {}
+func (*Test_Get) isTest_Test() {}
+
+func (*Test_Create) isTest_Test() {}
+
+func (*Test_Set) isTest_Test() {}
+
+func (*Test_Update) isTest_Test() {}
+
func (*Test_UpdatePaths) isTest_Test() {}
-func (*Test_Delete) isTest_Test() {}
-func (*Test_Query) isTest_Test() {}
-func (*Test_Listen) isTest_Test() {}
+
+func (*Test_Delete) isTest_Test() {}
+
+func (*Test_Query) isTest_Test() {}
+
+func (*Test_Listen) isTest_Test() {}
func (m *Test) GetTest() isTest_Test {
if m != nil {
@@ -175,13 +196,6 @@ func (m *Test) GetTest() isTest_Test {
return nil
}
-func (m *Test) GetDescription() string {
- if m != nil {
- return m.Description
- }
- return ""
-}
-
func (m *Test) GetGet() *GetTest {
if x, ok := m.GetTest().(*Test_Get); ok {
return x.Get
@@ -431,17 +445,17 @@ type GetTest struct {
// The path of the doc, e.g. "projects/projectID/databases/(default)/documents/C/d"
DocRefPath string `protobuf:"bytes,1,opt,name=doc_ref_path,json=docRefPath,proto3" json:"doc_ref_path,omitempty"`
// The request that the call should send to the Firestore service.
- Request *v1beta1.GetDocumentRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
+ Request *v1.GetDocumentRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
func (m *GetTest) Reset() { *m = GetTest{} }
func (m *GetTest) String() string { return proto.CompactTextString(m) }
func (*GetTest) ProtoMessage() {}
func (*GetTest) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{2}
+ return fileDescriptor_test_3f755a975e4c199e, []int{2}
}
func (m *GetTest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetTest.Unmarshal(m, b)
@@ -468,7 +482,7 @@ func (m *GetTest) GetDocRefPath() string {
return ""
}
-func (m *GetTest) GetRequest() *v1beta1.GetDocumentRequest {
+func (m *GetTest) GetRequest() *v1.GetDocumentRequest {
if m != nil {
return m.Request
}
@@ -484,7 +498,7 @@ type CreateTest struct {
// (i.e. digit strings) should be treated as integers.
JsonData string `protobuf:"bytes,2,opt,name=json_data,json=jsonData,proto3" json:"json_data,omitempty"`
// The request that the call should generate.
- Request *v1beta1.CommitRequest `protobuf:"bytes,3,opt,name=request,proto3" json:"request,omitempty"`
+ Request *v1.CommitRequest `protobuf:"bytes,3,opt,name=request,proto3" json:"request,omitempty"`
// If true, the call should result in an error without generating a request.
// If this is true, request should not be set.
IsError bool `protobuf:"varint,4,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
@@ -497,7 +511,7 @@ func (m *CreateTest) Reset() { *m = CreateTest{} }
func (m *CreateTest) String() string { return proto.CompactTextString(m) }
func (*CreateTest) ProtoMessage() {}
func (*CreateTest) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{3}
+ return fileDescriptor_test_3f755a975e4c199e, []int{3}
}
func (m *CreateTest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateTest.Unmarshal(m, b)
@@ -531,7 +545,7 @@ func (m *CreateTest) GetJsonData() string {
return ""
}
-func (m *CreateTest) GetRequest() *v1beta1.CommitRequest {
+func (m *CreateTest) GetRequest() *v1.CommitRequest {
if m != nil {
return m.Request
}
@@ -547,21 +561,21 @@ func (m *CreateTest) GetIsError() bool {
// A call to DocumentRef.Set.
type SetTest struct {
- DocRefPath string `protobuf:"bytes,1,opt,name=doc_ref_path,json=docRefPath,proto3" json:"doc_ref_path,omitempty"`
- Option *SetOption `protobuf:"bytes,2,opt,name=option,proto3" json:"option,omitempty"`
- JsonData string `protobuf:"bytes,3,opt,name=json_data,json=jsonData,proto3" json:"json_data,omitempty"`
- Request *v1beta1.CommitRequest `protobuf:"bytes,4,opt,name=request,proto3" json:"request,omitempty"`
- IsError bool `protobuf:"varint,5,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
+ DocRefPath string `protobuf:"bytes,1,opt,name=doc_ref_path,json=docRefPath,proto3" json:"doc_ref_path,omitempty"`
+ Option *SetOption `protobuf:"bytes,2,opt,name=option,proto3" json:"option,omitempty"`
+ JsonData string `protobuf:"bytes,3,opt,name=json_data,json=jsonData,proto3" json:"json_data,omitempty"`
+ Request *v1.CommitRequest `protobuf:"bytes,4,opt,name=request,proto3" json:"request,omitempty"`
+ IsError bool `protobuf:"varint,5,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
func (m *SetTest) Reset() { *m = SetTest{} }
func (m *SetTest) String() string { return proto.CompactTextString(m) }
func (*SetTest) ProtoMessage() {}
func (*SetTest) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{4}
+ return fileDescriptor_test_3f755a975e4c199e, []int{4}
}
func (m *SetTest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetTest.Unmarshal(m, b)
@@ -602,7 +616,7 @@ func (m *SetTest) GetJsonData() string {
return ""
}
-func (m *SetTest) GetRequest() *v1beta1.CommitRequest {
+func (m *SetTest) GetRequest() *v1.CommitRequest {
if m != nil {
return m.Request
}
@@ -619,21 +633,21 @@ func (m *SetTest) GetIsError() bool {
// A call to the form of DocumentRef.Update that represents the data as a map
// or dictionary.
type UpdateTest struct {
- DocRefPath string `protobuf:"bytes,1,opt,name=doc_ref_path,json=docRefPath,proto3" json:"doc_ref_path,omitempty"`
- Precondition *v1beta1.Precondition `protobuf:"bytes,2,opt,name=precondition,proto3" json:"precondition,omitempty"`
- JsonData string `protobuf:"bytes,3,opt,name=json_data,json=jsonData,proto3" json:"json_data,omitempty"`
- Request *v1beta1.CommitRequest `protobuf:"bytes,4,opt,name=request,proto3" json:"request,omitempty"`
- IsError bool `protobuf:"varint,5,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
+ DocRefPath string `protobuf:"bytes,1,opt,name=doc_ref_path,json=docRefPath,proto3" json:"doc_ref_path,omitempty"`
+ Precondition *v1.Precondition `protobuf:"bytes,2,opt,name=precondition,proto3" json:"precondition,omitempty"`
+ JsonData string `protobuf:"bytes,3,opt,name=json_data,json=jsonData,proto3" json:"json_data,omitempty"`
+ Request *v1.CommitRequest `protobuf:"bytes,4,opt,name=request,proto3" json:"request,omitempty"`
+ IsError bool `protobuf:"varint,5,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
func (m *UpdateTest) Reset() { *m = UpdateTest{} }
func (m *UpdateTest) String() string { return proto.CompactTextString(m) }
func (*UpdateTest) ProtoMessage() {}
func (*UpdateTest) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{5}
+ return fileDescriptor_test_3f755a975e4c199e, []int{5}
}
func (m *UpdateTest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UpdateTest.Unmarshal(m, b)
@@ -660,7 +674,7 @@ func (m *UpdateTest) GetDocRefPath() string {
return ""
}
-func (m *UpdateTest) GetPrecondition() *v1beta1.Precondition {
+func (m *UpdateTest) GetPrecondition() *v1.Precondition {
if m != nil {
return m.Precondition
}
@@ -674,7 +688,7 @@ func (m *UpdateTest) GetJsonData() string {
return ""
}
-func (m *UpdateTest) GetRequest() *v1beta1.CommitRequest {
+func (m *UpdateTest) GetRequest() *v1.CommitRequest {
if m != nil {
return m.Request
}
@@ -691,23 +705,23 @@ func (m *UpdateTest) GetIsError() bool {
// A call to the form of DocumentRef.Update that represents the data as a list
// of field paths and their values.
type UpdatePathsTest struct {
- DocRefPath string `protobuf:"bytes,1,opt,name=doc_ref_path,json=docRefPath,proto3" json:"doc_ref_path,omitempty"`
- Precondition *v1beta1.Precondition `protobuf:"bytes,2,opt,name=precondition,proto3" json:"precondition,omitempty"`
+ DocRefPath string `protobuf:"bytes,1,opt,name=doc_ref_path,json=docRefPath,proto3" json:"doc_ref_path,omitempty"`
+ Precondition *v1.Precondition `protobuf:"bytes,2,opt,name=precondition,proto3" json:"precondition,omitempty"`
// parallel sequences: field_paths[i] corresponds to json_values[i]
- FieldPaths []*FieldPath `protobuf:"bytes,3,rep,name=field_paths,json=fieldPaths,proto3" json:"field_paths,omitempty"`
- JsonValues []string `protobuf:"bytes,4,rep,name=json_values,json=jsonValues,proto3" json:"json_values,omitempty"`
- Request *v1beta1.CommitRequest `protobuf:"bytes,5,opt,name=request,proto3" json:"request,omitempty"`
- IsError bool `protobuf:"varint,6,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
+ FieldPaths []*FieldPath `protobuf:"bytes,3,rep,name=field_paths,json=fieldPaths,proto3" json:"field_paths,omitempty"`
+ JsonValues []string `protobuf:"bytes,4,rep,name=json_values,json=jsonValues,proto3" json:"json_values,omitempty"`
+ Request *v1.CommitRequest `protobuf:"bytes,5,opt,name=request,proto3" json:"request,omitempty"`
+ IsError bool `protobuf:"varint,6,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
func (m *UpdatePathsTest) Reset() { *m = UpdatePathsTest{} }
func (m *UpdatePathsTest) String() string { return proto.CompactTextString(m) }
func (*UpdatePathsTest) ProtoMessage() {}
func (*UpdatePathsTest) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{6}
+ return fileDescriptor_test_3f755a975e4c199e, []int{6}
}
func (m *UpdatePathsTest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UpdatePathsTest.Unmarshal(m, b)
@@ -734,7 +748,7 @@ func (m *UpdatePathsTest) GetDocRefPath() string {
return ""
}
-func (m *UpdatePathsTest) GetPrecondition() *v1beta1.Precondition {
+func (m *UpdatePathsTest) GetPrecondition() *v1.Precondition {
if m != nil {
return m.Precondition
}
@@ -755,7 +769,7 @@ func (m *UpdatePathsTest) GetJsonValues() []string {
return nil
}
-func (m *UpdatePathsTest) GetRequest() *v1beta1.CommitRequest {
+func (m *UpdatePathsTest) GetRequest() *v1.CommitRequest {
if m != nil {
return m.Request
}
@@ -771,20 +785,20 @@ func (m *UpdatePathsTest) GetIsError() bool {
// A call to DocmentRef.Delete
type DeleteTest struct {
- DocRefPath string `protobuf:"bytes,1,opt,name=doc_ref_path,json=docRefPath,proto3" json:"doc_ref_path,omitempty"`
- Precondition *v1beta1.Precondition `protobuf:"bytes,2,opt,name=precondition,proto3" json:"precondition,omitempty"`
- Request *v1beta1.CommitRequest `protobuf:"bytes,3,opt,name=request,proto3" json:"request,omitempty"`
- IsError bool `protobuf:"varint,4,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
+ DocRefPath string `protobuf:"bytes,1,opt,name=doc_ref_path,json=docRefPath,proto3" json:"doc_ref_path,omitempty"`
+ Precondition *v1.Precondition `protobuf:"bytes,2,opt,name=precondition,proto3" json:"precondition,omitempty"`
+ Request *v1.CommitRequest `protobuf:"bytes,3,opt,name=request,proto3" json:"request,omitempty"`
+ IsError bool `protobuf:"varint,4,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
func (m *DeleteTest) Reset() { *m = DeleteTest{} }
func (m *DeleteTest) String() string { return proto.CompactTextString(m) }
func (*DeleteTest) ProtoMessage() {}
func (*DeleteTest) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{7}
+ return fileDescriptor_test_3f755a975e4c199e, []int{7}
}
func (m *DeleteTest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteTest.Unmarshal(m, b)
@@ -811,14 +825,14 @@ func (m *DeleteTest) GetDocRefPath() string {
return ""
}
-func (m *DeleteTest) GetPrecondition() *v1beta1.Precondition {
+func (m *DeleteTest) GetPrecondition() *v1.Precondition {
if m != nil {
return m.Precondition
}
return nil
}
-func (m *DeleteTest) GetRequest() *v1beta1.CommitRequest {
+func (m *DeleteTest) GetRequest() *v1.CommitRequest {
if m != nil {
return m.Request
}
@@ -845,7 +859,7 @@ func (m *SetOption) Reset() { *m = SetOption{} }
func (m *SetOption) String() string { return proto.CompactTextString(m) }
func (*SetOption) ProtoMessage() {}
func (*SetOption) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{8}
+ return fileDescriptor_test_3f755a975e4c199e, []int{8}
}
func (m *SetOption) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetOption.Unmarshal(m, b)
@@ -880,20 +894,20 @@ func (m *SetOption) GetFields() []*FieldPath {
}
type QueryTest struct {
- CollPath string `protobuf:"bytes,1,opt,name=coll_path,json=collPath,proto3" json:"coll_path,omitempty"`
- Clauses []*Clause `protobuf:"bytes,2,rep,name=clauses,proto3" json:"clauses,omitempty"`
- Query *v1beta1.StructuredQuery `protobuf:"bytes,3,opt,name=query,proto3" json:"query,omitempty"`
- IsError bool `protobuf:"varint,4,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
+ CollPath string `protobuf:"bytes,1,opt,name=coll_path,json=collPath,proto3" json:"coll_path,omitempty"`
+ Clauses []*Clause `protobuf:"bytes,2,rep,name=clauses,proto3" json:"clauses,omitempty"`
+ Query *v1.StructuredQuery `protobuf:"bytes,3,opt,name=query,proto3" json:"query,omitempty"`
+ IsError bool `protobuf:"varint,4,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
func (m *QueryTest) Reset() { *m = QueryTest{} }
func (m *QueryTest) String() string { return proto.CompactTextString(m) }
func (*QueryTest) ProtoMessage() {}
func (*QueryTest) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{9}
+ return fileDescriptor_test_3f755a975e4c199e, []int{9}
}
func (m *QueryTest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_QueryTest.Unmarshal(m, b)
@@ -927,7 +941,7 @@ func (m *QueryTest) GetClauses() []*Clause {
return nil
}
-func (m *QueryTest) GetQuery() *v1beta1.StructuredQuery {
+func (m *QueryTest) GetQuery() *v1.StructuredQuery {
if m != nil {
return m.Query
}
@@ -962,7 +976,7 @@ func (m *Clause) Reset() { *m = Clause{} }
func (m *Clause) String() string { return proto.CompactTextString(m) }
func (*Clause) ProtoMessage() {}
func (*Clause) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{10}
+ return fileDescriptor_test_3f755a975e4c199e, []int{10}
}
func (m *Clause) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Clause.Unmarshal(m, b)
@@ -989,40 +1003,56 @@ type isClause_Clause interface {
type Clause_Select struct {
Select *Select `protobuf:"bytes,1,opt,name=select,proto3,oneof"`
}
+
type Clause_Where struct {
Where *Where `protobuf:"bytes,2,opt,name=where,proto3,oneof"`
}
+
type Clause_OrderBy struct {
OrderBy *OrderBy `protobuf:"bytes,3,opt,name=order_by,json=orderBy,proto3,oneof"`
}
+
type Clause_Offset struct {
Offset int32 `protobuf:"varint,4,opt,name=offset,proto3,oneof"`
}
+
type Clause_Limit struct {
Limit int32 `protobuf:"varint,5,opt,name=limit,proto3,oneof"`
}
+
type Clause_StartAt struct {
StartAt *Cursor `protobuf:"bytes,6,opt,name=start_at,json=startAt,proto3,oneof"`
}
+
type Clause_StartAfter struct {
StartAfter *Cursor `protobuf:"bytes,7,opt,name=start_after,json=startAfter,proto3,oneof"`
}
+
type Clause_EndAt struct {
EndAt *Cursor `protobuf:"bytes,8,opt,name=end_at,json=endAt,proto3,oneof"`
}
+
type Clause_EndBefore struct {
EndBefore *Cursor `protobuf:"bytes,9,opt,name=end_before,json=endBefore,proto3,oneof"`
}
-func (*Clause_Select) isClause_Clause() {}
-func (*Clause_Where) isClause_Clause() {}
-func (*Clause_OrderBy) isClause_Clause() {}
-func (*Clause_Offset) isClause_Clause() {}
-func (*Clause_Limit) isClause_Clause() {}
-func (*Clause_StartAt) isClause_Clause() {}
+func (*Clause_Select) isClause_Clause() {}
+
+func (*Clause_Where) isClause_Clause() {}
+
+func (*Clause_OrderBy) isClause_Clause() {}
+
+func (*Clause_Offset) isClause_Clause() {}
+
+func (*Clause_Limit) isClause_Clause() {}
+
+func (*Clause_StartAt) isClause_Clause() {}
+
func (*Clause_StartAfter) isClause_Clause() {}
-func (*Clause_EndAt) isClause_Clause() {}
-func (*Clause_EndBefore) isClause_Clause() {}
+
+func (*Clause_EndAt) isClause_Clause() {}
+
+func (*Clause_EndBefore) isClause_Clause() {}
func (m *Clause) GetClause() isClause_Clause {
if m != nil {
@@ -1302,7 +1332,7 @@ func (m *Select) Reset() { *m = Select{} }
func (m *Select) String() string { return proto.CompactTextString(m) }
func (*Select) ProtoMessage() {}
func (*Select) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{11}
+ return fileDescriptor_test_3f755a975e4c199e, []int{11}
}
func (m *Select) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Select.Unmarshal(m, b)
@@ -1342,7 +1372,7 @@ func (m *Where) Reset() { *m = Where{} }
func (m *Where) String() string { return proto.CompactTextString(m) }
func (*Where) ProtoMessage() {}
func (*Where) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{12}
+ return fileDescriptor_test_3f755a975e4c199e, []int{12}
}
func (m *Where) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Where.Unmarshal(m, b)
@@ -1395,7 +1425,7 @@ func (m *OrderBy) Reset() { *m = OrderBy{} }
func (m *OrderBy) String() string { return proto.CompactTextString(m) }
func (*OrderBy) ProtoMessage() {}
func (*OrderBy) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{13}
+ return fileDescriptor_test_3f755a975e4c199e, []int{13}
}
func (m *OrderBy) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OrderBy.Unmarshal(m, b)
@@ -1442,7 +1472,7 @@ func (m *Cursor) Reset() { *m = Cursor{} }
func (m *Cursor) String() string { return proto.CompactTextString(m) }
func (*Cursor) ProtoMessage() {}
func (*Cursor) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{14}
+ return fileDescriptor_test_3f755a975e4c199e, []int{14}
}
func (m *Cursor) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Cursor.Unmarshal(m, b)
@@ -1488,7 +1518,7 @@ func (m *DocSnapshot) Reset() { *m = DocSnapshot{} }
func (m *DocSnapshot) String() string { return proto.CompactTextString(m) }
func (*DocSnapshot) ProtoMessage() {}
func (*DocSnapshot) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{15}
+ return fileDescriptor_test_3f755a975e4c199e, []int{15}
}
func (m *DocSnapshot) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DocSnapshot.Unmarshal(m, b)
@@ -1533,7 +1563,7 @@ func (m *FieldPath) Reset() { *m = FieldPath{} }
func (m *FieldPath) String() string { return proto.CompactTextString(m) }
func (*FieldPath) ProtoMessage() {}
func (*FieldPath) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{16}
+ return fileDescriptor_test_3f755a975e4c199e, []int{16}
}
func (m *FieldPath) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FieldPath.Unmarshal(m, b)
@@ -1572,19 +1602,19 @@ func (m *FieldPath) GetField() []string {
// should either change their client's ID for testing,
// or change the ID in the tests before running them.
type ListenTest struct {
- Responses []*v1beta1.ListenResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
- Snapshots []*Snapshot `protobuf:"bytes,2,rep,name=snapshots,proto3" json:"snapshots,omitempty"`
- IsError bool `protobuf:"varint,3,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
+ Responses []*v1.ListenResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
+ Snapshots []*Snapshot `protobuf:"bytes,2,rep,name=snapshots,proto3" json:"snapshots,omitempty"`
+ IsError bool `protobuf:"varint,3,opt,name=is_error,json=isError,proto3" json:"is_error,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
func (m *ListenTest) Reset() { *m = ListenTest{} }
func (m *ListenTest) String() string { return proto.CompactTextString(m) }
func (*ListenTest) ProtoMessage() {}
func (*ListenTest) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{17}
+ return fileDescriptor_test_3f755a975e4c199e, []int{17}
}
func (m *ListenTest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListenTest.Unmarshal(m, b)
@@ -1604,7 +1634,7 @@ func (m *ListenTest) XXX_DiscardUnknown() {
var xxx_messageInfo_ListenTest proto.InternalMessageInfo
-func (m *ListenTest) GetResponses() []*v1beta1.ListenResponse {
+func (m *ListenTest) GetResponses() []*v1.ListenResponse {
if m != nil {
return m.Responses
}
@@ -1626,7 +1656,7 @@ func (m *ListenTest) GetIsError() bool {
}
type Snapshot struct {
- Docs []*v1beta1.Document `protobuf:"bytes,1,rep,name=docs,proto3" json:"docs,omitempty"`
+ Docs []*v1.Document `protobuf:"bytes,1,rep,name=docs,proto3" json:"docs,omitempty"`
Changes []*DocChange `protobuf:"bytes,2,rep,name=changes,proto3" json:"changes,omitempty"`
ReadTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -1638,7 +1668,7 @@ func (m *Snapshot) Reset() { *m = Snapshot{} }
func (m *Snapshot) String() string { return proto.CompactTextString(m) }
func (*Snapshot) ProtoMessage() {}
func (*Snapshot) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{18}
+ return fileDescriptor_test_3f755a975e4c199e, []int{18}
}
func (m *Snapshot) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Snapshot.Unmarshal(m, b)
@@ -1658,7 +1688,7 @@ func (m *Snapshot) XXX_DiscardUnknown() {
var xxx_messageInfo_Snapshot proto.InternalMessageInfo
-func (m *Snapshot) GetDocs() []*v1beta1.Document {
+func (m *Snapshot) GetDocs() []*v1.Document {
if m != nil {
return m.Docs
}
@@ -1680,20 +1710,20 @@ func (m *Snapshot) GetReadTime() *timestamp.Timestamp {
}
type DocChange struct {
- Kind DocChange_Kind `protobuf:"varint,1,opt,name=kind,proto3,enum=tests.DocChange_Kind" json:"kind,omitempty"`
- Doc *v1beta1.Document `protobuf:"bytes,2,opt,name=doc,proto3" json:"doc,omitempty"`
- OldIndex int32 `protobuf:"varint,3,opt,name=old_index,json=oldIndex,proto3" json:"old_index,omitempty"`
- NewIndex int32 `protobuf:"varint,4,opt,name=new_index,json=newIndex,proto3" json:"new_index,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
+ Kind DocChange_Kind `protobuf:"varint,1,opt,name=kind,proto3,enum=tests.DocChange_Kind" json:"kind,omitempty"`
+ Doc *v1.Document `protobuf:"bytes,2,opt,name=doc,proto3" json:"doc,omitempty"`
+ OldIndex int32 `protobuf:"varint,3,opt,name=old_index,json=oldIndex,proto3" json:"old_index,omitempty"`
+ NewIndex int32 `protobuf:"varint,4,opt,name=new_index,json=newIndex,proto3" json:"new_index,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
func (m *DocChange) Reset() { *m = DocChange{} }
func (m *DocChange) String() string { return proto.CompactTextString(m) }
func (*DocChange) ProtoMessage() {}
func (*DocChange) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_338de568ad9314f7, []int{19}
+ return fileDescriptor_test_3f755a975e4c199e, []int{19}
}
func (m *DocChange) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DocChange.Unmarshal(m, b)
@@ -1720,7 +1750,7 @@ func (m *DocChange) GetKind() DocChange_Kind {
return DocChange_KIND_UNSPECIFIED
}
-func (m *DocChange) GetDoc() *v1beta1.Document {
+func (m *DocChange) GetDoc() *v1.Document {
if m != nil {
return m.Doc
}
@@ -1765,89 +1795,89 @@ func init() {
proto.RegisterEnum("tests.DocChange_Kind", DocChange_Kind_name, DocChange_Kind_value)
}
-func init() { proto.RegisterFile("test.proto", fileDescriptor_test_338de568ad9314f7) }
-
-var fileDescriptor_test_338de568ad9314f7 = []byte{
- // 1292 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0x4d, 0x73, 0xdb, 0xc4,
- 0x1b, 0xaf, 0x6c, 0x4b, 0x96, 0x1e, 0xe7, 0xdf, 0xe6, 0xbf, 0x53, 0x3a, 0x26, 0xc0, 0x34, 0xd5,
- 0x94, 0xc6, 0x6d, 0xc1, 0xa1, 0xe1, 0xed, 0xc0, 0x0c, 0x4c, 0x12, 0x3b, 0x6d, 0x28, 0x6d, 0x82,
- 0xdc, 0x96, 0x4b, 0x66, 0x8c, 0xa2, 0x5d, 0x27, 0x02, 0x59, 0xeb, 0xee, 0xae, 0xfa, 0xf2, 0x39,
- 0xb8, 0x73, 0x65, 0x60, 0x86, 0x03, 0x5f, 0x83, 0x13, 0x47, 0x3e, 0x03, 0x77, 0x38, 0x33, 0xfb,
- 0x26, 0x59, 0x69, 0x5d, 0x72, 0x28, 0xe5, 0xb6, 0xfb, 0x3c, 0xbf, 0xe7, 0xfd, 0x65, 0x25, 0x00,
- 0x41, 0xb8, 0xe8, 0xcf, 0x18, 0x15, 0x14, 0xb9, 0xf2, 0xcc, 0x57, 0xde, 0x3e, 0xa2, 0xf4, 0x28,
- 0x23, 0xeb, 0x93, 0x94, 0x11, 0x2e, 0x28, 0x23, 0xeb, 0x8f, 0x6e, 0x1c, 0x12, 0x11, 0xdf, 0x58,
- 0x4f, 0xe8, 0x74, 0x4a, 0x73, 0x8d, 0x5e, 0x59, 0x5b, 0x08, 0xc3, 0x34, 0x29, 0xa6, 0x24, 0x37,
- 0x6a, 0x57, 0x7a, 0x0b, 0x81, 0x25, 0xc5, 0x20, 0x2f, 0x2f, 0x44, 0x3e, 0x2c, 0x08, 0x7b, 0x6a,
- 0x50, 0x17, 0x0d, 0x4a, 0xdd, 0x0e, 0x8b, 0xc9, 0xba, 0x48, 0xa7, 0x84, 0x8b, 0x78, 0x3a, 0xd3,
- 0x80, 0xb0, 0x0f, 0xc1, 0x3d, 0xc2, 0xc5, 0xa8, 0x48, 0x05, 0x41, 0x97, 0x40, 0x87, 0xd5, 0x75,
- 0x56, 0x9b, 0xbd, 0xce, 0x46, 0xa7, 0xaf, 0x6e, 0x7d, 0x09, 0x88, 0x34, 0x27, 0xfc, 0xae, 0x09,
- 0x2d, 0x79, 0x47, 0xab, 0xd0, 0xc1, 0x84, 0x27, 0x2c, 0x9d, 0x89, 0x94, 0xe6, 0x5d, 0x67, 0xd5,
- 0xe9, 0x05, 0xd1, 0x3c, 0x09, 0x85, 0xd0, 0x3c, 0x22, 0xa2, 0xdb, 0x58, 0x75, 0x7a, 0x9d, 0x8d,
- 0xb3, 0x46, 0xd7, 0x4d, 0x22, 0xa4, 0xf8, 0xad, 0x33, 0x91, 0x64, 0xa2, 0xeb, 0xe0, 0x25, 0x8c,
- 0xc4, 0x82, 0x74, 0x9b, 0x0a, 0xf6, 0x7f, 0x03, 0xdb, 0x56, 0x44, 0x83, 0x34, 0x10, 0xa9, 0x90,
- 0x13, 0xd1, 0x6d, 0xd5, 0x14, 0x8e, 0x2a, 0x85, 0x5c, 0x2b, 0x2c, 0x66, 0x58, 0x2a, 0x74, 0x6b,
- 0x0a, 0xef, 0x2b, 0xa2, 0x55, 0xa8, 0x21, 0xe8, 0x13, 0x58, 0xd2, 0xa7, 0xf1, 0x2c, 0x16, 0xc7,
- 0xbc, 0xeb, 0x29, 0x91, 0x0b, 0x35, 0x91, 0x7d, 0xc9, 0x31, 0x72, 0x9d, 0xa2, 0x22, 0x49, 0x4b,
- 0x98, 0x64, 0x44, 0x90, 0x6e, 0xbb, 0x66, 0x69, 0xa0, 0x88, 0xd6, 0x92, 0x86, 0xa0, 0x1e, 0xb8,
- 0xaa, 0x2c, 0x5d, 0x5f, 0x61, 0x97, 0x0d, 0xf6, 0x4b, 0x49, 0x33, 0x50, 0x0d, 0x90, 0x6a, 0xb3,
- 0x94, 0x0b, 0x92, 0x77, 0x83, 0x9a, 0xda, 0x2f, 0x14, 0xd1, 0xaa, 0xd5, 0x90, 0x2d, 0x0f, 0x5a,
- 0x92, 0x1b, 0x72, 0x68, 0x9b, 0xc4, 0xa2, 0x55, 0x58, 0xc2, 0x34, 0x19, 0x33, 0x32, 0x51, 0x41,
- 0x99, 0xc2, 0x00, 0xa6, 0x49, 0x44, 0x26, 0xd2, 0x73, 0xb4, 0x03, 0x6d, 0x46, 0x1e, 0x16, 0x84,
- 0xdb, 0xda, 0xbc, 0xd3, 0xd7, 0x5d, 0xd2, 0xaf, 0x7a, 0xcc, 0xf4, 0x92, 0x2c, 0xd7, 0xc0, 0x74,
- 0x68, 0xa4, 0x65, 0x22, 0x2b, 0x1c, 0xfe, 0xe8, 0x00, 0x54, 0x75, 0x3a, 0x85, 0xe1, 0x37, 0x20,
- 0xf8, 0x86, 0xd3, 0x7c, 0x8c, 0x63, 0x11, 0x2b, 0xd3, 0x41, 0xe4, 0x4b, 0xc2, 0x20, 0x16, 0x31,
- 0xda, 0xac, 0xbc, 0xd2, 0xad, 0xb0, 0xb6, 0xd8, 0xab, 0x6d, 0x3a, 0x9d, 0xa6, 0xcf, 0x38, 0x84,
- 0x5e, 0x07, 0x3f, 0xe5, 0x63, 0xc2, 0x18, 0x65, 0xaa, 0x49, 0xfc, 0xa8, 0x9d, 0xf2, 0xa1, 0xbc,
- 0x86, 0xbf, 0x39, 0xd0, 0x1e, 0x9d, 0x3a, 0x43, 0x3d, 0xf0, 0xa8, 0x6e, 0xeb, 0x46, 0xad, 0x5c,
- 0x23, 0x22, 0xf6, 0x14, 0x3d, 0x32, 0xfc, 0x7a, 0x48, 0xcd, 0xc5, 0x21, 0xb5, 0x5e, 0x42, 0x48,
- 0x6e, 0x3d, 0xa4, 0x3f, 0x1d, 0x80, 0xaa, 0xab, 0x4f, 0x11, 0xd5, 0xe7, 0xb0, 0x34, 0x63, 0x24,
- 0xa1, 0x39, 0x4e, 0xe7, 0x62, 0xbb, 0xb2, 0xd8, 0xa7, 0xfd, 0x39, 0x74, 0x54, 0x93, 0xfd, 0x2f,
- 0xe3, 0xfe, 0xa5, 0x01, 0xe7, 0x4e, 0x8c, 0xe6, 0x2b, 0x0e, 0xfe, 0x06, 0x74, 0x26, 0x29, 0xc9,
- 0xb0, 0xd9, 0x1a, 0x4d, 0xb5, 0x2c, 0x6d, 0x8f, 0xec, 0x48, 0x8e, 0x34, 0x19, 0xc1, 0xc4, 0x1e,
- 0x39, 0xba, 0x08, 0x1d, 0x95, 0xaf, 0x47, 0x71, 0x56, 0x10, 0xde, 0x6d, 0xad, 0x36, 0xa5, 0x7f,
- 0x92, 0xf4, 0x40, 0x51, 0xe6, 0x73, 0xe6, 0xbe, 0x84, 0x9c, 0x79, 0xf5, 0x9c, 0xfd, 0xee, 0x00,
- 0x54, 0x7b, 0xe9, 0x15, 0xa7, 0xeb, 0xdf, 0x9d, 0xec, 0x9b, 0x10, 0x94, 0x63, 0x89, 0x96, 0xa1,
- 0x19, 0x67, 0x99, 0x8a, 0xc7, 0x8f, 0xe4, 0x51, 0x8e, 0xb2, 0x2a, 0x03, 0xef, 0x36, 0x16, 0x94,
- 0xc9, 0xf0, 0xc3, 0x9f, 0x1d, 0x08, 0xca, 0x7d, 0x2c, 0x1b, 0x3c, 0xa1, 0x59, 0x36, 0x9f, 0x1f,
- 0x5f, 0x12, 0x54, 0x76, 0xd6, 0xa0, 0x9d, 0x64, 0x71, 0xc1, 0x89, 0xd5, 0xfa, 0x3f, 0xfb, 0x6c,
- 0x29, 0x6a, 0x64, 0xb9, 0xe8, 0x33, 0xbb, 0xf6, 0x75, 0xe0, 0x57, 0x17, 0x07, 0x3e, 0x12, 0xac,
- 0x48, 0x44, 0xc1, 0x08, 0x56, 0x3e, 0xd8, 0xd7, 0xe0, 0x05, 0x81, 0xff, 0xd5, 0x00, 0x4f, 0xdb,
- 0x43, 0x6b, 0xe0, 0x71, 0x92, 0x91, 0x44, 0x28, 0x4f, 0x2b, 0x77, 0x46, 0x8a, 0x28, 0xdf, 0x0b,
- 0xcd, 0x46, 0x97, 0xc1, 0x7d, 0x7c, 0x4c, 0x18, 0x31, 0xf5, 0x5c, 0x32, 0xb8, 0xaf, 0x24, 0x4d,
- 0x3e, 0x41, 0x8a, 0x89, 0xae, 0x83, 0x4f, 0x19, 0x26, 0x6c, 0x7c, 0x68, 0x1d, 0xb7, 0x8f, 0xed,
- 0x9e, 0x24, 0x6f, 0x3d, 0xbd, 0x75, 0x26, 0x6a, 0x53, 0x7d, 0x44, 0x5d, 0xf0, 0xe8, 0x64, 0x62,
- 0xdf, 0x65, 0x57, 0x1a, 0xd3, 0x77, 0x74, 0x01, 0xdc, 0x2c, 0x9d, 0xa6, 0xba, 0xa1, 0x25, 0x43,
- 0x5f, 0xd1, 0x35, 0xf0, 0xb9, 0x88, 0x99, 0x18, 0xc7, 0xc2, 0xbc, 0xb8, 0x65, 0xfa, 0x0a, 0xc6,
- 0x29, 0x93, 0xda, 0x15, 0x60, 0x53, 0xa0, 0xf7, 0xa0, 0x63, 0xb0, 0x13, 0x41, 0x98, 0x79, 0x69,
- 0x9f, 0x81, 0x83, 0x86, 0x4b, 0x08, 0xba, 0x02, 0x1e, 0xc9, 0xb1, 0xd4, 0xed, 0x3f, 0x1f, 0xec,
- 0x92, 0x1c, 0x6f, 0x0a, 0xd4, 0x07, 0x90, 0xb8, 0x43, 0x32, 0xa1, 0x8c, 0x98, 0xb7, 0xf6, 0x19,
- 0x6c, 0x40, 0x72, 0xbc, 0xa5, 0x10, 0x5b, 0x3e, 0x78, 0xba, 0xaa, 0xe1, 0x06, 0x78, 0x3a, 0xb1,
- 0x73, 0xcd, 0xe5, 0xfc, 0x43, 0x73, 0x1d, 0x80, 0xab, 0x92, 0x8c, 0x2e, 0x43, 0xab, 0x6c, 0xa9,
- 0xe7, 0x09, 0x28, 0x2e, 0x3a, 0x0b, 0x0d, 0x3a, 0x33, 0x4f, 0x64, 0x83, 0xce, 0xd0, 0x5b, 0x00,
- 0xd5, 0xfa, 0x30, 0xfb, 0x36, 0x28, 0xb7, 0x47, 0x78, 0x07, 0xda, 0xa6, 0x32, 0xa7, 0xd4, 0xff,
- 0x26, 0x04, 0x38, 0x65, 0x24, 0x29, 0x67, 0x3b, 0x88, 0x2a, 0x42, 0xf8, 0x35, 0x78, 0x3a, 0x03,
- 0xe8, 0x43, 0xbd, 0x28, 0x78, 0x1e, 0xcf, 0xf8, 0x31, 0xb5, 0xed, 0x85, 0xec, 0x97, 0x0e, 0x4d,
- 0x46, 0x86, 0x13, 0x75, 0x70, 0x75, 0x39, 0xb9, 0xed, 0x1a, 0x27, 0xb7, 0x5d, 0xf8, 0x29, 0x74,
- 0xe6, 0x84, 0x11, 0x9a, 0x73, 0x3a, 0x30, 0x2e, 0xbe, 0xe8, 0x63, 0x21, 0xbc, 0x04, 0x41, 0x19,
- 0x12, 0x3a, 0x0f, 0xae, 0xca, 0xb2, 0x2a, 0x42, 0x10, 0xe9, 0x4b, 0xf8, 0xbd, 0x03, 0x50, 0x7d,
- 0x33, 0xa1, 0x1d, 0x08, 0x18, 0xe1, 0x33, 0x9a, 0xcb, 0xa1, 0xd5, 0xd5, 0xea, 0x2d, 0x9e, 0x46,
- 0x2d, 0x18, 0x19, 0x81, 0xa8, 0x12, 0x45, 0xef, 0x42, 0x60, 0xb3, 0x61, 0x87, 0xff, 0x9c, 0x9d,
- 0x36, 0x9b, 0x8b, 0x0a, 0x51, 0x9b, 0xdf, 0x66, 0x7d, 0x7e, 0x7f, 0x70, 0xc0, 0x2f, 0x33, 0xf0,
- 0x11, 0xb4, 0x30, 0x4d, 0xac, 0x67, 0xe1, 0x62, 0xcf, 0xca, 0xaf, 0x31, 0x85, 0x47, 0xd7, 0xa0,
- 0x9d, 0x1c, 0xc7, 0xf9, 0x11, 0x39, 0xb9, 0xdf, 0x06, 0x34, 0xd9, 0x56, 0x8c, 0xc8, 0x02, 0xd0,
- 0xc7, 0x32, 0x05, 0x31, 0x1e, 0xcb, 0x5f, 0x00, 0x33, 0xd7, 0x2b, 0xd6, 0x90, 0xfd, 0x3f, 0xe8,
- 0xdf, 0xb3, 0xff, 0x07, 0x91, 0x2f, 0xc1, 0xf2, 0x1a, 0xfe, 0xe1, 0x40, 0x50, 0xea, 0x43, 0x57,
- 0xa1, 0xf5, 0x6d, 0x9a, 0x63, 0x55, 0xac, 0xb3, 0x1b, 0xaf, 0x9d, 0xb4, 0xd7, 0xbf, 0x9d, 0xe6,
- 0x38, 0x52, 0x10, 0xf4, 0x01, 0x34, 0x31, 0x4d, 0xcc, 0xb2, 0x39, 0x4d, 0x50, 0x12, 0x2e, 0x2b,
- 0x4f, 0x33, 0x3c, 0x4e, 0x73, 0x4c, 0x9e, 0x28, 0x3f, 0xdd, 0xc8, 0xa7, 0x19, 0xde, 0x95, 0x77,
- 0xc9, 0xcc, 0xc9, 0x63, 0xc3, 0x6c, 0x69, 0x66, 0x4e, 0x1e, 0x2b, 0x66, 0xb8, 0x05, 0x2d, 0x69,
- 0x1d, 0x9d, 0x87, 0xe5, 0xdb, 0xbb, 0x77, 0x07, 0xe3, 0xfb, 0x77, 0x47, 0xfb, 0xc3, 0xed, 0xdd,
- 0x9d, 0xdd, 0xe1, 0x60, 0xf9, 0x0c, 0x0a, 0xc0, 0xdd, 0x1c, 0x0c, 0x86, 0x83, 0x65, 0x07, 0x75,
- 0xa0, 0x1d, 0x0d, 0xef, 0xec, 0x3d, 0x18, 0x0e, 0x96, 0x1b, 0x68, 0x09, 0xfc, 0x3b, 0x7b, 0x03,
- 0x8d, 0x6a, 0x6e, 0x3d, 0x81, 0x2b, 0x09, 0x9d, 0x5a, 0x5f, 0x93, 0x8c, 0x16, 0x78, 0xce, 0xe3,
- 0x84, 0xe6, 0x13, 0xca, 0xa6, 0x71, 0x9e, 0x90, 0x9f, 0x1a, 0xe1, 0x4d, 0x0d, 0xda, 0x56, 0xa0,
- 0x9d, 0x12, 0x74, 0x4f, 0x65, 0x64, 0x5f, 0xa6, 0xf4, 0xd7, 0x46, 0x4f, 0x83, 0x0e, 0x14, 0xe8,
- 0xa0, 0x04, 0x1d, 0x28, 0xd0, 0xc1, 0x76, 0xa5, 0xef, 0xd0, 0x53, 0x45, 0x78, 0xff, 0xef, 0x00,
- 0x00, 0x00, 0xff, 0xff, 0xc2, 0x7a, 0x63, 0xd5, 0x67, 0x0e, 0x00, 0x00,
+func init() { proto.RegisterFile("test.proto", fileDescriptor_test_3f755a975e4c199e) }
+
+var fileDescriptor_test_3f755a975e4c199e = []byte{
+ // 1284 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x96, 0x4f, 0x6f, 0xdc, 0x44,
+ 0x14, 0xc0, 0xeb, 0xdd, 0xb5, 0xd7, 0x7e, 0x1b, 0xda, 0x30, 0x2a, 0xd5, 0x12, 0xa8, 0xba, 0x75,
+ 0xab, 0x36, 0xb4, 0x62, 0x43, 0x82, 0x10, 0x12, 0x20, 0xa4, 0x24, 0xbb, 0x6d, 0xa3, 0xd2, 0x26,
+ 0x78, 0xdb, 0x72, 0x89, 0xb4, 0x38, 0x9e, 0xd9, 0xc4, 0xe0, 0xf5, 0x6c, 0x67, 0xc6, 0xfd, 0xf3,
+ 0x39, 0x38, 0x71, 0x45, 0x48, 0x20, 0x3e, 0x0a, 0x48, 0x7c, 0x0b, 0x4e, 0xdc, 0x39, 0xa3, 0xf9,
+ 0x67, 0xaf, 0x93, 0x6d, 0x1b, 0xa9, 0xa2, 0xdc, 0x3c, 0xef, 0xfd, 0xe6, 0xcd, 0xfb, 0x37, 0x6f,
+ 0x0c, 0x20, 0x08, 0x17, 0xfd, 0x19, 0xa3, 0x82, 0x22, 0x57, 0x7e, 0xf3, 0x95, 0xde, 0x21, 0xa5,
+ 0x87, 0x19, 0x59, 0x9b, 0xa4, 0x8c, 0x70, 0x41, 0x19, 0x59, 0x7b, 0xb2, 0xbe, 0x96, 0xd0, 0xe9,
+ 0x94, 0xe6, 0x1a, 0x5c, 0x09, 0x17, 0x11, 0x98, 0x26, 0xc5, 0x94, 0xe4, 0xc6, 0xd8, 0xca, 0x95,
+ 0x45, 0x4c, 0xb9, 0x30, 0xd0, 0xa5, 0x45, 0xd0, 0xe3, 0x82, 0xb0, 0xe7, 0xc7, 0x00, 0xb5, 0x3a,
+ 0x28, 0x26, 0x6b, 0x22, 0x9d, 0x12, 0x2e, 0xe2, 0xe9, 0x4c, 0x03, 0x61, 0x1f, 0x82, 0x07, 0x84,
+ 0x8b, 0x51, 0x91, 0x0a, 0x82, 0x2e, 0x83, 0x0e, 0xa1, 0xeb, 0xf4, 0x9a, 0xab, 0x9d, 0x8d, 0x4e,
+ 0x5f, 0xad, 0xfa, 0x12, 0x88, 0xb4, 0x26, 0xfc, 0xa1, 0x09, 0x2d, 0xb9, 0x46, 0x3d, 0xe8, 0x60,
+ 0xc2, 0x13, 0x96, 0xce, 0x44, 0x4a, 0xf3, 0xae, 0xd3, 0x73, 0x56, 0x83, 0x68, 0x5e, 0x84, 0x42,
+ 0x68, 0x1e, 0x12, 0xd1, 0x6d, 0xf4, 0x9c, 0xd5, 0xce, 0xc6, 0x59, 0x63, 0xeb, 0x36, 0x11, 0x72,
+ 0xfb, 0x9d, 0x33, 0x91, 0x54, 0xa2, 0x9b, 0xe0, 0x25, 0x8c, 0xc4, 0x82, 0x74, 0x9b, 0x0a, 0x7b,
+ 0xdb, 0x60, 0xdb, 0x4a, 0x68, 0x48, 0x83, 0x48, 0x83, 0x9c, 0x88, 0x6e, 0xab, 0x66, 0x70, 0x54,
+ 0x19, 0xe4, 0xda, 0x60, 0x31, 0xc3, 0xd2, 0xa0, 0x5b, 0x33, 0xf8, 0x50, 0x09, 0xad, 0x41, 0x8d,
+ 0xa0, 0xcf, 0x61, 0x49, 0x7f, 0x8d, 0x67, 0xb1, 0x38, 0xe2, 0x5d, 0x4f, 0x6d, 0xb9, 0x50, 0xdb,
+ 0xb2, 0x27, 0x35, 0x66, 0x5f, 0xa7, 0xa8, 0x44, 0xf2, 0x24, 0x4c, 0x32, 0x22, 0x48, 0xb7, 0x5d,
+ 0x3b, 0x69, 0xa0, 0x84, 0xf6, 0x24, 0x8d, 0xa0, 0x55, 0x70, 0x55, 0x59, 0xba, 0xbe, 0x62, 0x97,
+ 0x0d, 0xfb, 0xb5, 0x94, 0x19, 0x54, 0x03, 0xd2, 0x6c, 0x96, 0x72, 0x41, 0xf2, 0x6e, 0x50, 0x33,
+ 0xfb, 0x95, 0x12, 0x5a, 0xb3, 0x1a, 0xd9, 0xf2, 0xa0, 0x25, 0xb5, 0x61, 0x0e, 0x6d, 0x93, 0x58,
+ 0xd4, 0x83, 0x25, 0x4c, 0x93, 0x31, 0x23, 0x13, 0x15, 0x94, 0x29, 0x0c, 0x60, 0x9a, 0x44, 0x64,
+ 0x22, 0x3d, 0x47, 0x9b, 0xd0, 0x66, 0xe4, 0x71, 0x41, 0xb8, 0xad, 0xcd, 0xf5, 0xbe, 0xee, 0x92,
+ 0x7e, 0xd5, 0x5e, 0x4f, 0xd6, 0x65, 0xa5, 0x06, 0xa6, 0x25, 0x23, 0x8d, 0x47, 0x76, 0x5f, 0xf8,
+ 0xb3, 0x03, 0x50, 0x95, 0xe8, 0x14, 0x67, 0xbe, 0x07, 0xc1, 0x77, 0x9c, 0xe6, 0x63, 0x1c, 0x8b,
+ 0x58, 0x9d, 0x1a, 0x44, 0xbe, 0x14, 0x0c, 0x62, 0x11, 0xa3, 0x2f, 0x2a, 0x87, 0x74, 0x17, 0x84,
+ 0x0b, 0x1d, 0xda, 0xa6, 0xd3, 0x69, 0x7a, 0xc2, 0x17, 0xf4, 0x2e, 0xf8, 0x29, 0x1f, 0x13, 0xc6,
+ 0x28, 0x53, 0xad, 0xe1, 0x47, 0xed, 0x94, 0x0f, 0xe5, 0x32, 0xfc, 0xc3, 0x81, 0xf6, 0xe8, 0xd4,
+ 0x79, 0x59, 0x05, 0x8f, 0xea, 0x66, 0x6e, 0xd4, 0x8a, 0x34, 0x22, 0x62, 0x57, 0xc9, 0x23, 0xa3,
+ 0xaf, 0x47, 0xd3, 0x7c, 0x71, 0x34, 0xad, 0xd7, 0x8b, 0xc6, 0xad, 0x47, 0xf3, 0xb7, 0x03, 0x50,
+ 0xb5, 0xf1, 0x29, 0x02, 0x1a, 0xc2, 0xd2, 0x8c, 0x91, 0x84, 0xe6, 0x38, 0x9d, 0x0b, 0xeb, 0xf2,
+ 0x42, 0x77, 0xf6, 0xe6, 0xc0, 0xa8, 0xb6, 0xed, 0x7f, 0x8a, 0xf6, 0x97, 0x06, 0x9c, 0x3b, 0x76,
+ 0x03, 0xdf, 0x5c, 0xc8, 0xeb, 0xd0, 0x99, 0xa4, 0x24, 0xc3, 0x66, 0x2e, 0x34, 0xd5, 0x38, 0xb4,
+ 0xfd, 0x70, 0x4b, 0x6a, 0xe4, 0x69, 0x11, 0x4c, 0xec, 0x27, 0x47, 0x97, 0xa0, 0xa3, 0xb2, 0xf4,
+ 0x24, 0xce, 0x0a, 0xc2, 0xbb, 0xad, 0x5e, 0x53, 0xba, 0x26, 0x45, 0x8f, 0x94, 0x64, 0x3e, 0x53,
+ 0xee, 0xeb, 0x65, 0xca, 0xab, 0x67, 0xea, 0x4f, 0x07, 0xa0, 0x1a, 0x3a, 0x6f, 0x2e, 0x49, 0xff,
+ 0xd9, 0xb5, 0xbd, 0x0d, 0x41, 0x79, 0xe7, 0xd0, 0x32, 0x34, 0xe3, 0x2c, 0x53, 0x51, 0xf8, 0x91,
+ 0xfc, 0x94, 0xf7, 0x54, 0xe5, 0x9d, 0x77, 0x1b, 0x2f, 0xa8, 0x8b, 0xd1, 0x87, 0xbf, 0x3a, 0x10,
+ 0x94, 0x23, 0x56, 0xf6, 0x71, 0x42, 0xb3, 0x6c, 0x3e, 0x2b, 0xbe, 0x14, 0xa8, 0x9c, 0x5c, 0x87,
+ 0x76, 0x92, 0xc5, 0x05, 0x27, 0xd6, 0xea, 0x5b, 0xf6, 0x25, 0x52, 0xd2, 0xc8, 0x6a, 0xd1, 0x67,
+ 0x76, 0x92, 0xeb, 0x98, 0xaf, 0x2e, 0x8c, 0x79, 0x24, 0x58, 0x91, 0x88, 0x82, 0x11, 0xac, 0x8e,
+ 0xb7, 0xb3, 0xfd, 0x25, 0x31, 0xff, 0xd3, 0x00, 0x4f, 0x1f, 0x85, 0xae, 0x83, 0xc7, 0x49, 0x46,
+ 0x12, 0xa1, 0x9c, 0xac, 0x3c, 0x19, 0x29, 0xa1, 0x9c, 0xfe, 0x5a, 0x8d, 0xae, 0x82, 0xfb, 0xf4,
+ 0x88, 0x30, 0x62, 0x0a, 0xb8, 0x64, 0xb8, 0x6f, 0xa4, 0x4c, 0x3e, 0x28, 0x4a, 0x89, 0x6e, 0x82,
+ 0x4f, 0x19, 0x26, 0x6c, 0x7c, 0x60, 0x7d, 0xb6, 0x4f, 0xe7, 0xae, 0x14, 0x6f, 0x3d, 0xbf, 0x73,
+ 0x26, 0x6a, 0x53, 0xfd, 0x89, 0xba, 0xe0, 0xd1, 0xc9, 0xc4, 0xbe, 0xb2, 0xae, 0x3c, 0x4c, 0xaf,
+ 0xd1, 0x05, 0x70, 0xb3, 0x74, 0x9a, 0xea, 0xe6, 0x95, 0x0a, 0xbd, 0x44, 0x37, 0xc0, 0xe7, 0x22,
+ 0x66, 0x62, 0x1c, 0x0b, 0xf3, 0x7e, 0x96, 0x99, 0x2b, 0x18, 0xa7, 0x4c, 0x5a, 0x57, 0xc0, 0xa6,
+ 0x40, 0x1f, 0x41, 0xc7, 0xb0, 0x13, 0x41, 0x98, 0x79, 0x37, 0x4f, 0xe0, 0xa0, 0x71, 0x89, 0xa0,
+ 0x6b, 0xe0, 0x91, 0x1c, 0x4b, 0xdb, 0xfe, 0x62, 0xd8, 0x25, 0x39, 0xde, 0x14, 0xa8, 0x0f, 0x20,
+ 0xb9, 0x03, 0x32, 0xa1, 0x8c, 0x98, 0x97, 0xf3, 0x04, 0x1b, 0x90, 0x1c, 0x6f, 0x29, 0x62, 0xcb,
+ 0x07, 0x4f, 0x17, 0x34, 0xdc, 0x00, 0x4f, 0x27, 0x76, 0xae, 0xaf, 0x9c, 0x57, 0xf4, 0xd5, 0x3e,
+ 0xb8, 0x2a, 0xc9, 0xe8, 0x2a, 0xb4, 0xca, 0x6e, 0x5a, 0xb4, 0x41, 0x69, 0xd1, 0x59, 0x68, 0xd0,
+ 0x99, 0x79, 0xf5, 0x1a, 0x74, 0x86, 0x2e, 0x02, 0x54, 0xa3, 0xc2, 0x4c, 0xd4, 0xa0, 0x9c, 0x14,
+ 0xe1, 0x3d, 0x68, 0x9b, 0xca, 0x9c, 0xd2, 0xfe, 0xfb, 0x10, 0xe0, 0x94, 0x91, 0xa4, 0xbc, 0xcc,
+ 0x41, 0x54, 0x09, 0xc2, 0x6f, 0xc1, 0xd3, 0x19, 0x40, 0x9f, 0xe8, 0xc9, 0xc0, 0xf3, 0x78, 0xc6,
+ 0x8f, 0xa8, 0x6d, 0x2f, 0x64, 0xff, 0x5b, 0x68, 0x32, 0x32, 0x9a, 0xa8, 0x83, 0xab, 0xc5, 0xf1,
+ 0xc9, 0xd6, 0x38, 0x3e, 0xd9, 0xc2, 0x2f, 0xa1, 0x33, 0xb7, 0x19, 0xa1, 0x39, 0xa7, 0x03, 0xe3,
+ 0xe2, 0xcb, 0xde, 0xff, 0xf0, 0x32, 0x04, 0x65, 0x48, 0xe8, 0x3c, 0xb8, 0x2a, 0xcb, 0xaa, 0x08,
+ 0x41, 0xa4, 0x17, 0xe1, 0x8f, 0x0e, 0x40, 0xf5, 0x07, 0x84, 0x36, 0x21, 0x60, 0x84, 0xcf, 0x68,
+ 0x2e, 0xef, 0xab, 0xae, 0xd6, 0x95, 0x85, 0x17, 0x51, 0xef, 0x89, 0x0c, 0x1b, 0x55, 0xbb, 0xd0,
+ 0x87, 0x10, 0xd8, 0x44, 0xd8, 0x2b, 0x7f, 0xce, 0x5e, 0x34, 0x9b, 0x86, 0x8a, 0xa8, 0x5d, 0xdd,
+ 0x66, 0xfd, 0xea, 0xfe, 0xe4, 0x80, 0x5f, 0x06, 0xbf, 0x0e, 0x2d, 0x4c, 0x13, 0xeb, 0xd4, 0xc5,
+ 0x85, 0x4e, 0x95, 0xbf, 0x55, 0x0a, 0x45, 0x37, 0xa0, 0x9d, 0x1c, 0xc5, 0xf9, 0x21, 0x39, 0x3e,
+ 0xd0, 0x06, 0x34, 0xd9, 0x56, 0x8a, 0xc8, 0x02, 0xe8, 0x53, 0x19, 0x78, 0x8c, 0xc7, 0xf2, 0x37,
+ 0xde, 0xdc, 0xe6, 0x15, 0x7b, 0x86, 0xfd, 0xc7, 0xef, 0x3f, 0xb0, 0xff, 0xf8, 0x91, 0x2f, 0x61,
+ 0xb9, 0x0c, 0xff, 0x72, 0x20, 0x28, 0xed, 0xa1, 0x0f, 0xa0, 0xf5, 0x7d, 0x9a, 0x63, 0x55, 0xa2,
+ 0xb3, 0x1b, 0xef, 0x1c, 0x3f, 0xaf, 0x7f, 0x37, 0xcd, 0x71, 0xa4, 0x10, 0xb4, 0x06, 0x4d, 0x4c,
+ 0x13, 0x33, 0x62, 0x5e, 0x11, 0x8f, 0x24, 0x65, 0xa9, 0x69, 0x86, 0xc7, 0x69, 0x8e, 0xc9, 0x33,
+ 0xe5, 0xa2, 0x1b, 0xf9, 0x34, 0xc3, 0x3b, 0x72, 0x2d, 0x95, 0x39, 0x79, 0x6a, 0x94, 0x2d, 0xad,
+ 0xcc, 0xc9, 0x53, 0xa5, 0x0c, 0xb7, 0xa0, 0x25, 0x0f, 0x46, 0xe7, 0x61, 0xf9, 0xee, 0xce, 0xfd,
+ 0xc1, 0xf8, 0xe1, 0xfd, 0xd1, 0xde, 0x70, 0x7b, 0xe7, 0xd6, 0xce, 0x70, 0xb0, 0x7c, 0x06, 0x05,
+ 0xe0, 0x6e, 0x0e, 0x06, 0xc3, 0xc1, 0xb2, 0x83, 0x3a, 0xd0, 0x8e, 0x86, 0xf7, 0x76, 0x1f, 0x0d,
+ 0x07, 0xcb, 0x0d, 0xb4, 0x04, 0xfe, 0xbd, 0xdd, 0x81, 0xa6, 0x9a, 0x5b, 0xcf, 0xe0, 0x5a, 0x42,
+ 0xa7, 0xd6, 0xcd, 0x24, 0xa3, 0x05, 0x9e, 0x73, 0x36, 0xa1, 0xf9, 0x84, 0xb2, 0x69, 0x9c, 0x27,
+ 0xe4, 0xb7, 0x46, 0x78, 0x5b, 0x43, 0xdb, 0x0a, 0xba, 0x55, 0x42, 0x0f, 0x54, 0x32, 0xf6, 0x64,
+ 0x36, 0x7f, 0x6f, 0xac, 0x6a, 0x68, 0x5f, 0x41, 0xfb, 0x25, 0xb4, 0xaf, 0xa0, 0xfd, 0xed, 0xca,
+ 0xde, 0x81, 0xa7, 0xf2, 0xff, 0xf1, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xcb, 0x20, 0xda, 0x92,
+ 0x12, 0x0e, 0x00, 0x00,
}
diff --git a/vendor/cloud.google.com/go/firestore/list_documents.go b/vendor/cloud.google.com/go/firestore/list_documents.go
index f056d77973..af0d9cbb16 100644
--- a/vendor/cloud.google.com/go/firestore/list_documents.go
+++ b/vendor/cloud.google.com/go/firestore/list_documents.go
@@ -17,9 +17,9 @@ package firestore
import (
"context"
- vkit "cloud.google.com/go/firestore/apiv1beta1"
+ vkit "cloud.google.com/go/firestore/apiv1"
"google.golang.org/api/iterator"
- pb "google.golang.org/genproto/googleapis/firestore/v1beta1"
+ pb "google.golang.org/genproto/googleapis/firestore/v1"
)
// DocumentRefIterator is an interator over DocumentRefs.
diff --git a/vendor/cloud.google.com/go/firestore/options.go b/vendor/cloud.google.com/go/firestore/options.go
index ec6a2ae836..ecc5dc028f 100644
--- a/vendor/cloud.google.com/go/firestore/options.go
+++ b/vendor/cloud.google.com/go/firestore/options.go
@@ -20,7 +20,7 @@ import (
"time"
"github.com/golang/protobuf/ptypes"
- pb "google.golang.org/genproto/googleapis/firestore/v1beta1"
+ pb "google.golang.org/genproto/googleapis/firestore/v1"
)
// A Precondition modifies a Firestore update or delete operation.
@@ -92,7 +92,7 @@ func processPreconditionsForUpdate(preconds []Precondition) (*pb.Precondition, e
return exists(true).preconditionProto()
case 1:
if _, ok := preconds[0].(exists); ok {
- return nil, errors.New("Cannot use Exists with Update")
+ return nil, errors.New("cannot use Exists with Update")
}
return preconds[0].preconditionProto()
default:
diff --git a/vendor/cloud.google.com/go/firestore/order.go b/vendor/cloud.google.com/go/firestore/order.go
index c3f59ce18b..e5ee1e09fb 100644
--- a/vendor/cloud.google.com/go/firestore/order.go
+++ b/vendor/cloud.google.com/go/firestore/order.go
@@ -22,7 +22,7 @@ import (
"strings"
tspb "github.com/golang/protobuf/ptypes/timestamp"
- pb "google.golang.org/genproto/googleapis/firestore/v1beta1"
+ pb "google.golang.org/genproto/googleapis/firestore/v1"
)
// Returns a negative number, zero, or a positive number depending on whether a is
diff --git a/vendor/cloud.google.com/go/firestore/query.go b/vendor/cloud.google.com/go/firestore/query.go
index 71b0b3b596..16e258c159 100644
--- a/vendor/cloud.google.com/go/firestore/query.go
+++ b/vendor/cloud.google.com/go/firestore/query.go
@@ -26,7 +26,7 @@ import (
"cloud.google.com/go/internal/btree"
"github.com/golang/protobuf/ptypes/wrappers"
"google.golang.org/api/iterator"
- pb "google.golang.org/genproto/googleapis/firestore/v1beta1"
+ pb "google.golang.org/genproto/googleapis/firestore/v1"
)
// Query represents a Firestore query.
@@ -35,7 +35,8 @@ import (
// a new Query; it does not modify the old.
type Query struct {
c *Client
- parentPath string // path of the collection's parent
+ path string // path to query (collection)
+ parentPath string // path of the collection's parent (document)
collectionID string
selection []FieldPath
filters []filter
@@ -48,10 +49,6 @@ type Query struct {
err error
}
-func (q *Query) collectionPath() string {
- return q.parentPath + "/documents/" + q.collectionID
-}
-
// DocumentID is the special field name representing the ID of a document
// in queries.
const DocumentID = "__name__"
@@ -169,8 +166,10 @@ func (q Query) Limit(n int) Query {
// StartAt returns a new Query that specifies that results should start at
// the document with the given field values.
//
-// If StartAt is called with a single DocumentSnapshot, its field values are used.
-// The DocumentSnapshot must have all the fields mentioned in the OrderBy clauses.
+// StartAt may be called with a single DocumentSnapshot, representing an
+// existing document within the query. The document must be a direct child of
+// the location being queried (not a parent document, or document in a
+// different collection, or a grandchild document, for example).
//
// Otherwise, StartAt should be called with one field value for each OrderBy clause,
// in the order that they appear. For example, in
@@ -375,7 +374,7 @@ func (q *Query) fieldValuesToCursorValues(fieldValues []interface{}) ([]*pb.Valu
if !ok {
return nil, fmt.Errorf("firestore: expected doc ID for DocumentID field, got %T", fval)
}
- vals[i] = &pb.Value{ValueType: &pb.Value_ReferenceValue{q.collectionPath() + "/" + docID}}
+ vals[i] = &pb.Value{ValueType: &pb.Value_ReferenceValue{q.path + "/" + docID}}
} else {
var sawTransform bool
vals[i], sawTransform, err = toProtoValue(reflect.ValueOf(fval))
@@ -395,7 +394,7 @@ func (q *Query) docSnapshotToCursorValues(ds *DocumentSnapshot, orders []order)
vals := make([]*pb.Value, len(orders))
for i, ord := range orders {
if ord.isDocumentID() {
- dp, qp := ds.Ref.Parent.Path, q.collectionPath()
+ dp, qp := ds.Ref.Parent.Path, q.path
if dp != qp {
return nil, fmt.Errorf("firestore: document snapshot for %s passed to query on %s", dp, qp)
}
@@ -562,7 +561,6 @@ func trunc32(i int) int32 {
func (q Query) Documents(ctx context.Context) *DocumentIterator {
return &DocumentIterator{
iter: newQueryDocumentIterator(withResourceHeader(ctx, q.c.path()), &q, nil),
- err: checkTransaction(ctx),
}
}
@@ -749,7 +747,9 @@ func (it *QuerySnapshotIterator) Next() (*QuerySnapshot, error) {
// a QuerySnapshotIterator, to free up resources. It is not safe to call Stop
// concurrently with Next.
func (it *QuerySnapshotIterator) Stop() {
- it.ws.stop()
+ if it.ws != nil {
+ it.ws.stop()
+ }
}
// A QuerySnapshot is a snapshot of query results. It is returned by
diff --git a/vendor/cloud.google.com/go/firestore/to_value.go b/vendor/cloud.google.com/go/firestore/to_value.go
index 03236b251d..72969fd426 100644
--- a/vendor/cloud.google.com/go/firestore/to_value.go
+++ b/vendor/cloud.google.com/go/firestore/to_value.go
@@ -23,7 +23,7 @@ import (
"cloud.google.com/go/internal/fields"
"github.com/golang/protobuf/ptypes"
ts "github.com/golang/protobuf/ptypes/timestamp"
- pb "google.golang.org/genproto/googleapis/firestore/v1beta1"
+ pb "google.golang.org/genproto/googleapis/firestore/v1"
"google.golang.org/genproto/googleapis/type/latlng"
)
diff --git a/vendor/cloud.google.com/go/firestore/transaction.go b/vendor/cloud.google.com/go/firestore/transaction.go
index 5bfe3e78db..5df4a2af18 100644
--- a/vendor/cloud.google.com/go/firestore/transaction.go
+++ b/vendor/cloud.google.com/go/firestore/transaction.go
@@ -18,8 +18,8 @@ import (
"context"
"errors"
- gax "github.com/googleapis/gax-go"
- pb "google.golang.org/genproto/googleapis/firestore/v1beta1"
+ gax "github.com/googleapis/gax-go/v2"
+ pb "google.golang.org/genproto/googleapis/firestore/v1"
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
@@ -62,21 +62,13 @@ func (ro) config(t *Transaction) { t.readOnly = true }
var (
// Defined here for testing.
- errReadAfterWrite = errors.New("firestore: read after write in transaction")
- errWriteReadOnly = errors.New("firestore: write in read-only transaction")
- errNonTransactionalOp = errors.New("firestore: non-transactional operation inside a transaction")
- errNestedTransaction = errors.New("firestore: nested transaction")
+ errReadAfterWrite = errors.New("firestore: read after write in transaction")
+ errWriteReadOnly = errors.New("firestore: write in read-only transaction")
+ errNestedTransaction = errors.New("firestore: nested transaction")
)
type transactionInProgressKey struct{}
-func checkTransaction(ctx context.Context) error {
- if ctx.Value(transactionInProgressKey{}) != nil {
- return errNonTransactionalOp
- }
- return nil
-}
-
// RunTransaction runs f in a transaction. f should use the transaction it is given
// for all Firestore operations. For any operation requiring a context, f should use
// the context it is passed, not the first argument to RunTransaction.
@@ -118,7 +110,8 @@ func (c *Client) RunTransaction(ctx context.Context, f func(context.Context, *Tr
}
var backoff gax.Backoff
// TODO(jba): use other than the standard backoff parameters?
- // TODO(jba): get backoff time from gRPC trailer metadata? See extractRetryDelay in https://code.googlesource.com/gocloud/+/master/spanner/retry.go.
+ // TODO(jba): get backoff time from gRPC trailer metadata? See
+ // extractRetryDelay in https://code.googlesource.com/gocloud/+/master/spanner/retry.go.
var err error
for i := 0; i < t.maxAttempts; i++ {
var res *pb.BeginTransactionResponse
@@ -172,6 +165,9 @@ func (c *Client) RunTransaction(ctx context.Context, f func(context.Context, *Tr
err = cerr
break
}
+
+ // Reset state for the next attempt.
+ t.writes = nil
}
// If we run out of retries, return the last error we saw (which should
// be the Aborted from Commit, or a context error).
diff --git a/vendor/cloud.google.com/go/firestore/watch.go b/vendor/cloud.google.com/go/firestore/watch.go
index ec31d9833e..1e854e3d9b 100644
--- a/vendor/cloud.google.com/go/firestore/watch.go
+++ b/vendor/cloud.google.com/go/firestore/watch.go
@@ -25,8 +25,8 @@ import (
"cloud.google.com/go/internal/btree"
"github.com/golang/protobuf/ptypes"
- gax "github.com/googleapis/gax-go"
- pb "google.golang.org/genproto/googleapis/firestore/v1beta1"
+ gax "github.com/googleapis/gax-go/v2"
+ pb "google.golang.org/genproto/googleapis/firestore/v1"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
diff --git a/vendor/cloud.google.com/go/firestore/writebatch.go b/vendor/cloud.google.com/go/firestore/writebatch.go
index 5ed3429a77..5efa23189b 100644
--- a/vendor/cloud.google.com/go/firestore/writebatch.go
+++ b/vendor/cloud.google.com/go/firestore/writebatch.go
@@ -18,7 +18,7 @@ import (
"context"
"errors"
- pb "google.golang.org/genproto/googleapis/firestore/v1beta1"
+ pb "google.golang.org/genproto/googleapis/firestore/v1"
)
// A WriteBatch holds multiple database updates. Build a batch with the Create, Set,
diff --git a/vendor/cloud.google.com/go/functions/metadata/metadata.go b/vendor/cloud.google.com/go/functions/metadata/metadata.go
index 26f4434811..a5dfd32557 100644
--- a/vendor/cloud.google.com/go/functions/metadata/metadata.go
+++ b/vendor/cloud.google.com/go/functions/metadata/metadata.go
@@ -31,8 +31,7 @@ type Metadata struct {
// EventType is the type of the event. For example: "google.pubsub.topic.publish".
EventType string `json:"eventType"`
// Resource is the resource that triggered the event.
- // TODO(tbp): Make this a pointer.
- Resource Resource `json:"resource"`
+ Resource *Resource `json:"resource"`
}
// Resource holds Google Cloud Functions resource metadata.
diff --git a/vendor/cloud.google.com/go/httpreplay/httpreplay.go b/vendor/cloud.google.com/go/httpreplay/httpreplay.go
index 7c4e9e3d82..d684599d69 100644
--- a/vendor/cloud.google.com/go/httpreplay/httpreplay.go
+++ b/vendor/cloud.google.com/go/httpreplay/httpreplay.go
@@ -16,16 +16,16 @@
// from HTTP-based Google API clients.
//
// To record:
-// 1. Call NewRecorder to get a Recorder.
-// 2. Use its Client method to obtain an HTTP client to use when making API calls.
-// 3. Close the Recorder when you're done. That will save the
-// log of interactions to the file you provided to NewRecorder.
+// 1. Call NewRecorder to get a Recorder.
+// 2. Use its Client method to obtain an HTTP client to use when making API calls.
+// 3. Close the Recorder when you're done. That will save the log of interactions
+// to the file you provided to NewRecorder.
//
// To replay:
-// 1. Call NewReplayer with the same filename you used to record to get a Replayer.
-// 2. Call its Client method and use the client to make the same API calls.
-// You will get back the recorded responses.
-// 3. Close the Replayer when you're done.
+// 1. Call NewReplayer with the same filename you used to record to get a Replayer.
+// 2. Call its Client method and use the client to make the same API calls.
+// You will get back the recorded responses.
+// 3. Close the Replayer when you're done.
//
// This package is EXPERIMENTAL and is subject to change or removal without notice.
// It requires Go version 1.8 or higher.
@@ -44,8 +44,7 @@ import (
// A Recorder records HTTP interactions.
type Recorder struct {
- filename string
- proxy *proxy.Proxy
+ proxy *proxy.Proxy
}
// NewRecorder creates a recorder that writes to filename. The file will
@@ -61,6 +60,42 @@ func NewRecorder(filename string, initial []byte) (*Recorder, error) {
return &Recorder{proxy: p}, nil
}
+// RemoveRequestHeaders will remove request headers matching patterns from the log,
+// and skip matching them during replay.
+//
+// Pattern is taken literally except for *, which matches any sequence of characters.
+func (r *Recorder) RemoveRequestHeaders(patterns ...string) {
+ r.proxy.RemoveRequestHeaders(patterns)
+}
+
+// ClearHeaders will replace the value of request and response headers that match
+// any of the patterns with CLEARED, on both recording and replay.
+// Use ClearHeaders when the header information is secret or may change from run to
+// run, but you still want to verify that the headers are being sent and received.
+//
+// Pattern is taken literally except for *, which matches any sequence of characters.
+func (r *Recorder) ClearHeaders(patterns ...string) {
+ r.proxy.ClearHeaders(patterns)
+}
+
+// RemoveQueryParams will remove URL query parameters matching patterns from the log,
+// and skip matching them during replay.
+//
+// Pattern is taken literally except for *, which matches any sequence of characters.
+func (r *Recorder) RemoveQueryParams(patterns ...string) {
+ r.proxy.RemoveQueryParams(patterns)
+}
+
+// ClearQueryParams will replace the value of URL query parametrs that match any of
+// the patterns with CLEARED, on both recording and replay.
+// Use ClearQueryParams when the parameter information is secret or may change from
+// run to run, but you still want to verify that it are being sent.
+//
+// Pattern is taken literally except for *, which matches any sequence of characters.
+func (r *Recorder) ClearQueryParams(patterns ...string) {
+ r.proxy.ClearQueryParams(patterns)
+}
+
// Client returns an http.Client to be used for recording. Provide authentication options
// like option.WithTokenSource as you normally would, or omit them to use Application Default
// Credentials.
diff --git a/vendor/cloud.google.com/go/httpreplay/internal/proxy/converter.go b/vendor/cloud.google.com/go/httpreplay/internal/proxy/converter.go
new file mode 100644
index 0000000000..a97510b903
--- /dev/null
+++ b/vendor/cloud.google.com/go/httpreplay/internal/proxy/converter.go
@@ -0,0 +1,291 @@
+// Copyright 2019 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package proxy
+
+import (
+ "bytes"
+ "errors"
+ "io"
+ "io/ioutil"
+ "mime"
+ "mime/multipart"
+ "net/http"
+ "net/url"
+ "regexp"
+ "strings"
+)
+
+// A Converter converts HTTP requests and responses to the Request and Response types
+// of this package, while removing or redacting information.
+type Converter struct {
+ // These all apply to both headers and trailers.
+ ClearHeaders []tRegexp // replace matching headers with "CLEARED"
+ RemoveRequestHeaders []tRegexp // remove matching headers in requests
+ RemoveResponseHeaders []tRegexp // remove matching headers in responses
+ ClearParams []tRegexp // replace matching query params with "CLEARED"
+ RemoveParams []tRegexp // remove matching query params
+}
+
+// A regexp that can be marshaled to and from text.
+type tRegexp struct {
+ *regexp.Regexp
+}
+
+func (r tRegexp) MarshalText() ([]byte, error) {
+ return []byte(r.String()), nil
+}
+
+func (r *tRegexp) UnmarshalText(b []byte) error {
+ var err error
+ r.Regexp, err = regexp.Compile(string(b))
+ return err
+}
+
+func (c *Converter) registerRemoveRequestHeaders(pat string) {
+ c.RemoveRequestHeaders = append(c.RemoveRequestHeaders, pattern(pat))
+}
+
+func (c *Converter) registerClearHeaders(pat string) {
+ c.ClearHeaders = append(c.ClearHeaders, pattern(pat))
+}
+
+func (c *Converter) registerRemoveParams(pat string) {
+ c.RemoveParams = append(c.RemoveParams, pattern(pat))
+}
+
+func (c *Converter) registerClearParams(pat string) {
+ c.ClearParams = append(c.ClearParams, pattern(pat))
+}
+
+var (
+ defaultRemoveRequestHeaders = []string{
+ "Authorization", // not only is it secret, but it is probably missing on replay
+ "Proxy-Authorization",
+ "Connection",
+ "Content-Type", // because it may contain a random multipart boundary
+ "Date",
+ "Host",
+ "Transfer-Encoding",
+ "Via",
+ "X-Forwarded-*",
+ // Google-specific
+ "X-Cloud-Trace-Context", // OpenCensus traces have a random ID
+ "X-Goog-Api-Client", // can differ for, e.g., different Go versions
+ }
+
+ defaultRemoveBothHeaders = []string{
+ // Google-specific
+ // GFEs scrub X-Google- and X-GFE- headers from requests and responses.
+ // Drop them from recordings made by users inside Google.
+ // http://g3doc/gfe/g3doc/gfe3/design/http_filters/google_header_filter
+ // (internal Google documentation).
+ "X-Google-*",
+ "X-Gfe-*",
+ }
+
+ defaultClearHeaders = []string{
+ // Google-specific
+ // Used by Cloud Storage for customer-supplied encryption.
+ "X-Goog-*Encryption-Key",
+ }
+)
+
+func defaultConverter() *Converter {
+ c := &Converter{}
+ for _, h := range defaultClearHeaders {
+ c.registerClearHeaders(h)
+ }
+ for _, h := range defaultRemoveRequestHeaders {
+ c.registerRemoveRequestHeaders(h)
+ }
+ for _, h := range defaultRemoveBothHeaders {
+ c.registerRemoveRequestHeaders(h)
+ c.RemoveResponseHeaders = append(c.RemoveResponseHeaders, pattern(h))
+ }
+ return c
+}
+
+// Convert a pattern into a regexp.
+// A pattern is like a literal regexp anchored on both ends, with only one
+// non-literal character: "*", which matches zero or more characters.
+func pattern(p string) tRegexp {
+ q := regexp.QuoteMeta(p)
+ q = "^" + strings.Replace(q, `\*`, `.*`, -1) + "$"
+ // q must be a legal regexp.
+ return tRegexp{regexp.MustCompile(q)}
+}
+
+func (c *Converter) convertRequest(req *http.Request) (*Request, error) {
+ body, err := snapshotBody(&req.Body)
+ if err != nil {
+ return nil, err
+ }
+ mediaType, parts, err := parseRequestBody(req.Header.Get("Content-Type"), body)
+ if err != nil {
+ return nil, err
+ }
+ url2 := *req.URL
+ url2.RawQuery = scrubQuery(url2.RawQuery, c.ClearParams, c.RemoveParams)
+ return &Request{
+ Method: req.Method,
+ URL: url2.String(),
+ Header: scrubHeaders(req.Header, c.ClearHeaders, c.RemoveRequestHeaders),
+ MediaType: mediaType,
+ BodyParts: parts,
+ Trailer: scrubHeaders(req.Trailer, c.ClearHeaders, c.RemoveRequestHeaders),
+ }, nil
+}
+
+// parseRequestBody parses the Content-Type header, reads the body, and splits it into
+// parts if necessary. It returns the media type and the body parts.
+func parseRequestBody(contentType string, body []byte) (string, [][]byte, error) {
+ if contentType == "" {
+ // No content-type header. There should not be a body.
+ if len(body) != 0 {
+ return "", nil, errors.New("no Content-Type, but body")
+ }
+ return "", nil, nil
+ }
+ mediaType, params, err := mime.ParseMediaType(contentType)
+ if err != nil {
+ return "", nil, err
+ }
+ var parts [][]byte
+ if strings.HasPrefix(mediaType, "multipart/") {
+ mr := multipart.NewReader(bytes.NewReader(body), params["boundary"])
+ for {
+ p, err := mr.NextPart()
+ if err == io.EOF {
+ break
+ }
+ if err != nil {
+ return "", nil, err
+ }
+ part, err := ioutil.ReadAll(p)
+ if err != nil {
+ return "", nil, err
+ }
+ // TODO(jba): care about part headers?
+ parts = append(parts, part)
+ }
+ } else {
+ parts = [][]byte{body}
+ }
+ return mediaType, parts, nil
+}
+
+func (c *Converter) convertResponse(res *http.Response) (*Response, error) {
+ data, err := snapshotBody(&res.Body)
+ if err != nil {
+ return nil, err
+ }
+ return &Response{
+ StatusCode: res.StatusCode,
+ Proto: res.Proto,
+ ProtoMajor: res.ProtoMajor,
+ ProtoMinor: res.ProtoMinor,
+ Header: scrubHeaders(res.Header, c.ClearHeaders, c.RemoveResponseHeaders),
+ Body: data,
+ Trailer: scrubHeaders(res.Trailer, c.ClearHeaders, c.RemoveResponseHeaders),
+ }, nil
+}
+
+func snapshotBody(body *io.ReadCloser) ([]byte, error) {
+ data, err := ioutil.ReadAll(*body)
+ if err != nil {
+ return nil, err
+ }
+ (*body).Close()
+ *body = ioutil.NopCloser(bytes.NewReader(data))
+ return data, nil
+}
+
+// Copy headers, clearing some and removing others.
+func scrubHeaders(hs http.Header, clear, remove []tRegexp) http.Header {
+ rh := http.Header{}
+ for k, v := range hs {
+ switch {
+ case match(k, clear):
+ rh.Set(k, "CLEARED")
+ case match(k, remove):
+ // skip
+ default:
+ rh[k] = v
+ }
+ }
+ return rh
+}
+
+// Copy the query string, clearing some query params and removing others.
+// Preserve the order of the string.
+func scrubQuery(query string, clear, remove []tRegexp) string {
+ // We can't use url.ParseQuery because it doesn't preserve order.
+ var buf bytes.Buffer
+ for {
+ if i := strings.IndexAny(query, "&;"); i >= 0 {
+ scrubParam(&buf, query[:i], query[i], clear, remove)
+ query = query[i+1:]
+ } else {
+ scrubParam(&buf, query, 0, clear, remove)
+ break
+ }
+ }
+ s := buf.String()
+ if strings.HasSuffix(s, "&") {
+ return s[:len(s)-1]
+ }
+ return s
+}
+
+func scrubParam(buf *bytes.Buffer, param string, sep byte, clear, remove []tRegexp) {
+ if param == "" {
+ return
+ }
+ key := param
+ value := ""
+ if i := strings.Index(param, "="); i >= 0 {
+ key, value = key[:i], key[i+1:]
+ }
+ ukey, err := url.QueryUnescape(key)
+ // If the key is bad, just pass it and the value through.
+ if err != nil {
+ buf.WriteString(param)
+ if sep != 0 {
+ buf.WriteByte(sep)
+ }
+ return
+ }
+ if match(ukey, remove) {
+ return
+ }
+ if match(ukey, clear) && value != "" {
+ value = "CLEARED"
+ }
+ buf.WriteString(key)
+ buf.WriteByte('=')
+ buf.WriteString(value)
+ if sep != 0 {
+ buf.WriteByte(sep)
+ }
+}
+
+func match(s string, res []tRegexp) bool {
+ for _, re := range res {
+ if re.MatchString(s) {
+ return true
+ }
+ }
+ return false
+}
diff --git a/vendor/cloud.google.com/go/httpreplay/internal/proxy/debug.go b/vendor/cloud.google.com/go/httpreplay/internal/proxy/debug.go
index caf1997304..886ed2fdf4 100644
--- a/vendor/cloud.google.com/go/httpreplay/internal/proxy/debug.go
+++ b/vendor/cloud.google.com/go/httpreplay/internal/proxy/debug.go
@@ -15,8 +15,6 @@
package proxy
import (
- "bytes"
- "fmt"
"log"
"net/http"
)
@@ -50,12 +48,3 @@ func logHeaders(hs http.Header) {
log.Printf(" %s: %s", k, v)
}
}
-
-func (r *requestBody) String() string {
- buf := &bytes.Buffer{}
- fmt.Fprintf(buf, "media type: %q\n", r.mediaType)
- for i, p := range r.parts {
- fmt.Fprintf(buf, "part #%d: %q\n", i, string(p))
- }
- return buf.String()
-}
diff --git a/vendor/cloud.google.com/go/httpreplay/internal/proxy/log.go b/vendor/cloud.google.com/go/httpreplay/internal/proxy/log.go
index d1759ce9ed..98f0d9acdf 100644
--- a/vendor/cloud.google.com/go/httpreplay/internal/proxy/log.go
+++ b/vendor/cloud.google.com/go/httpreplay/internal/proxy/log.go
@@ -17,7 +17,6 @@ package proxy
import (
"bytes"
"fmt"
- "io"
"io/ioutil"
"net/http"
"strconv"
@@ -33,13 +32,14 @@ import (
// LogVersion is the current version of the log format. It can be used to
// support changes to the format over time, so newer code can read older files.
-const LogVersion = "0.1"
+const LogVersion = "0.2"
// A Log is a record of HTTP interactions, suitable for replay. It can be serialized to JSON.
type Log struct {
- Initial []byte // initial data for replay
- Version string // version of this log format
- Entries []*Entry
+ Initial []byte // initial data for replay
+ Version string // version of this log format
+ Converter *Converter
+ Entries []*Entry
}
// An Entry single request-response pair.
@@ -51,12 +51,14 @@ type Entry struct {
// A Request represents an http.Request in the log.
type Request struct {
- Method string // http.Request.Method
- URL string // http.Request.URL, as a string
- Proto string // http.Request.Proto
- Header http.Header // http.Request.Header
- Body []byte // http.Request.Body, read to completion
- Trailer http.Header `json:",omitempty"` // http.Request.Trailer
+ Method string // http.Request.Method
+ URL string // http.Request.URL, as a string
+ Header http.Header // http.Request.Header
+ // We need to understand multipart bodies because the boundaries are
+ // generated randomly, so we can't just compare the entire bodies for equality.
+ MediaType string // the media type part of the Content-Type header
+ BodyParts [][]byte // http.Request.Body, read to completion and split for multipart
+ Trailer http.Header `json:",omitempty"` // http.Request.Trailer
}
// A Response represents an http.Response in the log.
@@ -77,10 +79,13 @@ type Logger struct {
log *Log
}
-// NewLogger creates a new logger.
-func NewLogger() *Logger {
+// newLogger creates a new logger.
+func newLogger() *Logger {
return &Logger{
- log: &Log{Version: LogVersion},
+ log: &Log{
+ Version: LogVersion,
+ Converter: defaultConverter(),
+ },
entries: map[string]*Entry{},
}
}
@@ -94,7 +99,7 @@ func (l *Logger) ModifyRequest(req *http.Request) error {
if ctx.SkippingLogging() {
return nil
}
- lreq, err := fromHTTPRequest(req)
+ lreq, err := l.log.Converter.convertRequest(req)
if err != nil {
return err
}
@@ -119,7 +124,7 @@ func (l *Logger) ModifyResponse(res *http.Response) error {
return nil
}
id := ctx.ID()
- lres, err := fromHTTPResponse(res)
+ lres, err := l.log.Converter.convertResponse(res)
if err != nil {
return err
}
@@ -145,37 +150,6 @@ func (l *Logger) Extract() *Log {
return r
}
-func fromHTTPRequest(req *http.Request) (*Request, error) {
- data, err := snapshotBody(&req.Body)
- if err != nil {
- return nil, err
- }
- return &Request{
- Method: req.Method,
- URL: req.URL.String(),
- Proto: req.Proto,
- Header: redactHeaders(req.Header),
- Body: data,
- Trailer: req.Trailer,
- }, nil
-}
-
-func fromHTTPResponse(res *http.Response) (*Response, error) {
- data, err := snapshotBody(&res.Body)
- if err != nil {
- return nil, err
- }
- return &Response{
- StatusCode: res.StatusCode,
- Proto: res.Proto,
- ProtoMajor: res.ProtoMajor,
- ProtoMinor: res.ProtoMinor,
- Header: res.Header,
- Body: data,
- Trailer: res.Trailer,
- }, nil
-}
-
func toHTTPResponse(lr *Response, req *http.Request) *http.Response {
res := &http.Response{
StatusCode: lr.StatusCode,
@@ -199,34 +173,3 @@ func toHTTPResponse(lr *Response, req *http.Request) *http.Response {
}
return res
}
-
-func snapshotBody(body *io.ReadCloser) ([]byte, error) {
- data, err := ioutil.ReadAll(*body)
- if err != nil {
- return nil, err
- }
- (*body).Close()
- *body = ioutil.NopCloser(bytes.NewReader(data))
- return data, nil
-}
-
-// Headers that may contain sensitive data (auth tokens, keys).
-var sensitiveHeaders = map[string]bool{
- "Authorization": true,
- "Proxy-Authorization": true,
- "X-Goog-Encryption-Key": true, // used by Cloud Storage for customer-supplied encryption
- "X-Goog-Copy-Source-Encryption-Key": true, // ditto
-}
-
-// Copy headers, redacting sensitive ones.
-func redactHeaders(hs http.Header) http.Header {
- rh := http.Header{}
- for k, v := range hs {
- if sensitiveHeaders[k] {
- rh.Set(k, "REDACTED")
- } else {
- rh[k] = v
- }
- }
- return rh
-}
diff --git a/vendor/cloud.google.com/go/httpreplay/internal/proxy/record.go b/vendor/cloud.google.com/go/httpreplay/internal/proxy/record.go
index 57eacaf83a..0f0d6137a8 100644
--- a/vendor/cloud.google.com/go/httpreplay/internal/proxy/record.go
+++ b/vendor/cloud.google.com/go/httpreplay/internal/proxy/record.go
@@ -73,7 +73,7 @@ func ForRecording(filename string, port int) (*Proxy, error) {
skipAuth := skipLoggingByHost("accounts.google.com")
logGroup.AddRequestModifier(skipAuth)
logGroup.AddResponseModifier(skipAuth)
- p.logger = NewLogger()
+ p.logger = newLogger()
logGroup.AddRequestModifier(p.logger)
logGroup.AddResponseModifier(p.logger)
@@ -117,15 +117,11 @@ func newProxy(filename string) (*Proxy, error) {
return nil, err
}
mproxy.SetMITM(mc)
- ih := map[string]bool{}
- for k, v := range ignoreHeaders {
- ih[k] = v
- }
return &Proxy{
mproxy: mproxy,
CACert: x509c,
filename: filename,
- ignoreHeaders: ih,
+ ignoreHeaders: map[string]bool{},
}, nil
}
@@ -149,7 +145,52 @@ func (p *Proxy) Transport() *http.Transport {
}
}
+// RemoveRequestHeaders will remove request headers matching patterns from the log,
+// and skip matching them. Pattern is taken literally except for *, which matches any
+// sequence of characters.
+//
+// This only needs to be called during recording; the patterns will be saved to the
+// log for replay.
+func (p *Proxy) RemoveRequestHeaders(patterns []string) {
+ for _, pat := range patterns {
+ p.logger.log.Converter.registerRemoveRequestHeaders(pat)
+ }
+}
+
+// ClearHeaders will replace matching headers with CLEARED.
+//
+// This only needs to be called during recording; the patterns will be saved to the
+// log for replay.
+func (p *Proxy) ClearHeaders(patterns []string) {
+ for _, pat := range patterns {
+ p.logger.log.Converter.registerClearHeaders(pat)
+ }
+}
+
+// RemoveQueryParams will remove query parameters matching patterns from the request
+// URL before logging, and skip matching them. Pattern is taken literally except for
+// *, which matches any sequence of characters.
+//
+// This only needs to be called during recording; the patterns will be saved to the
+// log for replay.
+func (p *Proxy) RemoveQueryParams(patterns []string) {
+ for _, pat := range patterns {
+ p.logger.log.Converter.registerRemoveParams(pat)
+ }
+}
+
+// ClearQueryParams will replace matching query params in the request URL with CLEARED.
+//
+// This only needs to be called during recording; the patterns will be saved to the
+// log for replay.
+func (p *Proxy) ClearQueryParams(patterns []string) {
+ for _, pat := range patterns {
+ p.logger.log.Converter.registerClearParams(pat)
+ }
+}
+
// IgnoreHeader will cause h to be ignored during matching on replay.
+// Deprecated: use RemoveRequestHeaders instead.
func (p *Proxy) IgnoreHeader(h string) {
p.ignoreHeaders[http.CanonicalHeaderKey(h)] = true
}
diff --git a/vendor/cloud.google.com/go/httpreplay/internal/proxy/replay.go b/vendor/cloud.google.com/go/httpreplay/internal/proxy/replay.go
index e785c9ad64..87032eaa8f 100644
--- a/vendor/cloud.google.com/go/httpreplay/internal/proxy/replay.go
+++ b/vendor/cloud.google.com/go/httpreplay/internal/proxy/replay.go
@@ -19,14 +19,10 @@ import (
"encoding/json"
"errors"
"fmt"
- "io"
"io/ioutil"
"log"
- "mime"
- "mime/multipart"
"net/http"
"reflect"
- "strings"
"sync"
"github.com/google/martian/martianlog"
@@ -38,15 +34,20 @@ func ForReplaying(filename string, port int) (*Proxy, error) {
if err != nil {
return nil, err
}
- calls, initial, err := readLog(filename)
+ lg, err := readLog(filename)
if err != nil {
return nil, err
}
+ calls, err := constructCalls(lg)
+ if err != nil {
+ return nil, err
+ }
+ p.Initial = lg.Initial
p.mproxy.SetRoundTripper(&replayRoundTripper{
calls: calls,
ignoreHeaders: p.ignoreHeaders,
+ conv: lg.Converter,
})
- p.Initial = initial
// Debug logging.
// TODO(jba): factor out from here and ForRecording.
@@ -61,26 +62,30 @@ func ForReplaying(filename string, port int) (*Proxy, error) {
return p, nil
}
-// A call is an HTTP request and its matching response.
-type call struct {
- req *Request
- reqBody *requestBody // parsed request body
- res *Response
-}
-
-func readLog(filename string) ([]*call, []byte, error) {
+func readLog(filename string) (*Log, error) {
bytes, err := ioutil.ReadFile(filename)
if err != nil {
- return nil, nil, err
+ return nil, err
}
var lg Log
if err := json.Unmarshal(bytes, &lg); err != nil {
- return nil, nil, fmt.Errorf("%s: %v", filename, err)
+ return nil, fmt.Errorf("%s: %v", filename, err)
}
if lg.Version != LogVersion {
- return nil, nil, fmt.Errorf("httpreplay proxy: read log version %s but current version is %s",
+ return nil, fmt.Errorf(
+ "httpreplay: read log version %s but current version is %s; re-record the log",
lg.Version, LogVersion)
}
+ return &lg, nil
+}
+
+// A call is an HTTP request and its matching response.
+type call struct {
+ req *Request
+ res *Response
+}
+
+func constructCalls(lg *Log) ([]*call, error) {
ignoreIDs := map[string]bool{} // IDs of requests to ignore
callsByID := map[string]*call{}
var calls []*call
@@ -92,47 +97,47 @@ func readLog(filename string) ([]*call, []byte, error) {
switch {
case !ok:
if e.Request == nil {
- return nil, nil, fmt.Errorf("first entry for ID %s does not have a request", e.ID)
+ return nil, fmt.Errorf("first entry for ID %s does not have a request", e.ID)
}
if e.Request.Method == "CONNECT" {
// Ignore CONNECT methods.
ignoreIDs[e.ID] = true
} else {
- reqBody, err := newRequestBodyFromLog(e.Request)
- if err != nil {
- return nil, nil, err
- }
- c := &call{e.Request, reqBody, e.Response}
+ c := &call{e.Request, e.Response}
calls = append(calls, c)
callsByID[e.ID] = c
}
case e.Request != nil:
if e.Response != nil {
- return nil, nil, errors.New("HAR entry has both request and response")
+ return nil, errors.New("entry has both request and response")
}
c.req = e.Request
case e.Response != nil:
c.res = e.Response
default:
- return nil, nil, errors.New("HAR entry has neither request nor response")
+ return nil, errors.New("entry has neither request nor response")
}
}
for _, c := range calls {
if c.req == nil || c.res == nil {
- return nil, nil, fmt.Errorf("missing request or response: %+v", c)
+ return nil, fmt.Errorf("missing request or response: %+v", c)
}
}
- return calls, lg.Initial, nil
+ return calls, nil
}
type replayRoundTripper struct {
mu sync.Mutex
calls []*call
ignoreHeaders map[string]bool
+ conv *Converter
}
func (r *replayRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
- reqBody, err := newRequestBodyFromHTTP(req)
+ if req.Body != nil {
+ defer req.Body.Close()
+ }
+ creq, err := r.conv.convertRequest(req)
if err != nil {
return nil, err
}
@@ -142,7 +147,7 @@ func (r *replayRoundTripper) RoundTrip(req *http.Request) (*http.Response, error
if call == nil {
continue
}
- if requestsMatch(req, reqBody, call.req, call.reqBody, r.ignoreHeaders) {
+ if requestsMatch(creq, call.req, r.ignoreHeaders) {
r.calls[i] = nil // nil out this call so we don't reuse it
return toHTTPResponse(call.res, req), nil
}
@@ -150,128 +155,27 @@ func (r *replayRoundTripper) RoundTrip(req *http.Request) (*http.Response, error
return nil, fmt.Errorf("no matching request for %+v", req)
}
-// Headers that shouldn't be compared, because they may differ on different executions
-// of the same code, or may not be present during record or replay.
-var ignoreHeaders = map[string]bool{}
-
-func init() {
- // Sensitive headers are redacted in the log, so they won't be equal to incoming values.
- for h := range sensitiveHeaders {
- ignoreHeaders[h] = true
- }
- for _, h := range []string{
- "Content-Type", // handled by requestBody
- "Connection",
- "Date",
- "Host",
- "Transfer-Encoding",
- "Via",
- "X-Forwarded-For",
- "X-Forwarded-Host",
- "X-Forwarded-Proto",
- "X-Forwarded-Url",
- "X-Cloud-Trace-Context", // OpenCensus traces have a random ID
- "X-Goog-Api-Client", // can differ for, e.g., different Go versions
- } {
- ignoreHeaders[h] = true
- }
-}
-
// Report whether the incoming request in matches the candidate request cand.
-func requestsMatch(in *http.Request, inBody *requestBody, cand *Request, candBody *requestBody, ignoreHeaders map[string]bool) bool {
+func requestsMatch(in, cand *Request, ignoreHeaders map[string]bool) bool {
if in.Method != cand.Method {
return false
}
- if in.URL.String() != cand.URL {
+ if in.URL != cand.URL {
return false
}
- if !inBody.equal(candBody) {
+ if in.MediaType != cand.MediaType {
return false
}
- // Check headers last. See DebugHeaders.
- return headersMatch(in.Header, cand.Header, ignoreHeaders)
-}
-
-// A requestBody represents the body of a request. If the content type is multipart, the
-// body is split into parts.
-//
-// The replaying proxy needs to understand multipart bodies because the boundaries are
-// generated randomly, so we can't just compare the entire bodies for equality.
-type requestBody struct {
- mediaType string // the media type part of the Content-Type header
- parts [][]byte // the parts of the body, or just a single []byte if not multipart
-}
-
-func newRequestBodyFromHTTP(req *http.Request) (*requestBody, error) {
- defer req.Body.Close()
- return newRequestBody(req.Header.Get("Content-Type"), req.Body)
-}
-
-func newRequestBodyFromLog(req *Request) (*requestBody, error) {
- if req.Body == nil {
- return nil, nil
- }
- return newRequestBody(req.Header.Get("Content-Type"), bytes.NewReader(req.Body))
-}
-
-// newRequestBody parses the Content-Type header, reads the body, and splits it into
-// parts if necessary.
-func newRequestBody(contentType string, body io.Reader) (*requestBody, error) {
- if contentType == "" {
- // No content-type header. There should not be a body.
- if _, err := body.Read(make([]byte, 1)); err != io.EOF {
- return nil, errors.New("no Content-Type, but body")
- }
- return nil, nil
- }
- mediaType, params, err := mime.ParseMediaType(contentType)
- if err != nil {
- return nil, err
- }
- rb := &requestBody{mediaType: mediaType}
- if strings.HasPrefix(mediaType, "multipart/") {
- mr := multipart.NewReader(body, params["boundary"])
- for {
- p, err := mr.NextPart()
- if err == io.EOF {
- break
- }
- if err != nil {
- return nil, err
- }
- part, err := ioutil.ReadAll(p)
- if err != nil {
- return nil, err
- }
- // TODO(jba): care about part headers?
- rb.parts = append(rb.parts, part)
- }
- } else {
- bytes, err := ioutil.ReadAll(body)
- if err != nil {
- return nil, err
- }
- rb.parts = [][]byte{bytes}
- }
- return rb, nil
-}
-
-func (r1 *requestBody) equal(r2 *requestBody) bool {
- if r1 == nil || r2 == nil {
- return r1 == r2
- }
- if r1.mediaType != r2.mediaType {
- return false
- }
- if len(r1.parts) != len(r2.parts) {
+ if len(in.BodyParts) != len(cand.BodyParts) {
return false
}
- for i, p1 := range r1.parts {
- if !bytes.Equal(p1, r2.parts[i]) {
+ for i, p1 := range in.BodyParts {
+ if !bytes.Equal(p1, cand.BodyParts[i]) {
return false
}
}
- return true
+ // Check headers last. See DebugHeaders.
+ return headersMatch(in.Header, cand.Header, ignoreHeaders)
}
// DebugHeaders helps to determine whether a header should be ignored.
diff --git a/vendor/cloud.google.com/go/iam/admin/apiv1/doc.go b/vendor/cloud.google.com/go/iam/admin/apiv1/doc.go
index 3dea8ce83e..440ef52640 100644
--- a/vendor/cloud.google.com/go/iam/admin/apiv1/doc.go
+++ b/vendor/cloud.google.com/go/iam/admin/apiv1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package admin is an auto-generated package for the
// Google Identity and Access Management (IAM) API.
@@ -89,4 +89,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/iam/admin/apiv1/iam_client.go b/vendor/cloud.google.com/go/iam/admin/apiv1/iam_client.go
index 68622f6de6..467b6f3a92 100644
--- a/vendor/cloud.google.com/go/iam/admin/apiv1/iam_client.go
+++ b/vendor/cloud.google.com/go/iam/admin/apiv1/iam_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package admin
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/iam/credentials/apiv1/doc.go b/vendor/cloud.google.com/go/iam/credentials/apiv1/doc.go
index 718b2b4f53..ffcd7e92e5 100644
--- a/vendor/cloud.google.com/go/iam/credentials/apiv1/doc.go
+++ b/vendor/cloud.google.com/go/iam/credentials/apiv1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package credentials is an auto-generated package for the
// IAM Service Account Credentials API.
@@ -86,4 +86,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/iam/credentials/apiv1/iam_credentials_client.go b/vendor/cloud.google.com/go/iam/credentials/apiv1/iam_credentials_client.go
index 897d151e12..9899edb2ac 100644
--- a/vendor/cloud.google.com/go/iam/credentials/apiv1/iam_credentials_client.go
+++ b/vendor/cloud.google.com/go/iam/credentials/apiv1/iam_credentials_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package credentials
@@ -20,7 +20,7 @@ import (
"context"
"time"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
credentialspb "google.golang.org/genproto/googleapis/iam/credentials/v1"
diff --git a/vendor/cloud.google.com/go/iam/iam.go b/vendor/cloud.google.com/go/iam/iam.go
index 76df635617..5232cb6730 100644
--- a/vendor/cloud.google.com/go/iam/iam.go
+++ b/vendor/cloud.google.com/go/iam/iam.go
@@ -23,12 +23,14 @@ package iam
import (
"context"
+ "fmt"
"time"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
pb "google.golang.org/genproto/googleapis/iam/v1"
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
+ "google.golang.org/grpc/metadata"
)
// client abstracts the IAMPolicy API to allow multiple implementations.
@@ -56,6 +58,9 @@ var withRetry = gax.WithRetry(func() gax.Retryer {
func (g *grpcClient) Get(ctx context.Context, resource string) (*pb.Policy, error) {
var proto *pb.Policy
+ md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "resource", resource))
+ ctx = insertMetadata(ctx, md)
+
err := gax.Invoke(ctx, func(ctx context.Context, _ gax.CallSettings) error {
var err error
proto, err = g.c.GetIamPolicy(ctx, &pb.GetIamPolicyRequest{Resource: resource})
@@ -68,6 +73,9 @@ func (g *grpcClient) Get(ctx context.Context, resource string) (*pb.Policy, erro
}
func (g *grpcClient) Set(ctx context.Context, resource string, p *pb.Policy) error {
+ md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "resource", resource))
+ ctx = insertMetadata(ctx, md)
+
return gax.Invoke(ctx, func(ctx context.Context, _ gax.CallSettings) error {
_, err := g.c.SetIamPolicy(ctx, &pb.SetIamPolicyRequest{
Resource: resource,
@@ -79,6 +87,9 @@ func (g *grpcClient) Set(ctx context.Context, resource string, p *pb.Policy) err
func (g *grpcClient) Test(ctx context.Context, resource string, perms []string) ([]string, error) {
var res *pb.TestIamPermissionsResponse
+ md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "resource", resource))
+ ctx = insertMetadata(ctx, md)
+
err := gax.Invoke(ctx, func(ctx context.Context, _ gax.CallSettings) error {
var err error
res, err = g.c.TestIamPermissions(ctx, &pb.TestIamPermissionsRequest{
@@ -290,3 +301,15 @@ func memberIndex(m string, b *pb.Binding) int {
}
return -1
}
+
+// insertMetadata inserts metadata into the given context
+func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context {
+ out, _ := metadata.FromOutgoingContext(ctx)
+ out = out.Copy()
+ for _, md := range mds {
+ for k, v := range md {
+ out[k] = append(out[k], v...)
+ }
+ }
+ return metadata.NewOutgoingContext(ctx, out)
+}
diff --git a/vendor/cloud.google.com/go/internal/btree/btree.go b/vendor/cloud.google.com/go/internal/btree/btree.go
index 60d419f5ed..b494d9c05e 100644
--- a/vendor/cloud.google.com/go/internal/btree/btree.go
+++ b/vendor/cloud.google.com/go/internal/btree/btree.go
@@ -47,7 +47,6 @@
package btree
import (
- "fmt"
"sort"
"sync"
)
@@ -206,13 +205,6 @@ func (n *node) computeSize() int {
return sz
}
-func (n *node) checkSize() {
- sz := n.computeSize()
- if n.size != sz {
- panic(fmt.Sprintf("n.size = %d, computed size = %d", n.size, sz))
- }
-}
-
func (n *node) mutableFor(cow *copyOnWriteContext) *node {
if n.cow == cow {
return n
diff --git a/vendor/cloud.google.com/go/internal/pretty/pretty.go b/vendor/cloud.google.com/go/internal/pretty/pretty.go
index df98109416..fe6fcdd630 100644
--- a/vendor/cloud.google.com/go/internal/pretty/pretty.go
+++ b/vendor/cloud.google.com/go/internal/pretty/pretty.go
@@ -198,12 +198,6 @@ func short(v reflect.Value) string {
return fmt.Sprintf("%v", v)
}
-func indent(w io.Writer, level int) {
- for i := 0; i < level; i++ {
- io.WriteString(w, Indent) // ignore errors
- }
-}
-
func maybeSort(vs []reflect.Value, t reflect.Type) {
if less := lessFunc(t); less != nil {
sort.Sort(&sorter{vs, less})
diff --git a/vendor/cloud.google.com/go/internal/retry.go b/vendor/cloud.google.com/go/internal/retry.go
index 99093cc465..7a7b4c2052 100644
--- a/vendor/cloud.google.com/go/internal/retry.go
+++ b/vendor/cloud.google.com/go/internal/retry.go
@@ -18,7 +18,7 @@ import (
"context"
"time"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
)
// Retry calls the supplied function f repeatedly according to the provided
diff --git a/vendor/cloud.google.com/go/internal/testutil/context.go b/vendor/cloud.google.com/go/internal/testutil/context.go
index 93797fa421..78a3869d1d 100644
--- a/vendor/cloud.google.com/go/internal/testutil/context.go
+++ b/vendor/cloud.google.com/go/internal/testutil/context.go
@@ -85,7 +85,7 @@ func jwtConfigFromFile(filename string, scopes []string) (*jwt.Config, error) {
}
jsonKey, err := ioutil.ReadFile(filename)
if err != nil {
- return nil, fmt.Errorf("Cannot read the JSON key file, err: %v", err)
+ return nil, fmt.Errorf("cannot read the JSON key file, err: %v", err)
}
conf, err := google.JWTConfigFromJSON(jsonKey, scopes...)
if err != nil {
diff --git a/vendor/cloud.google.com/go/internal/version/version.go b/vendor/cloud.google.com/go/internal/version/version.go
index 220f02c1e1..4a2a8c19ff 100644
--- a/vendor/cloud.google.com/go/internal/version/version.go
+++ b/vendor/cloud.google.com/go/internal/version/version.go
@@ -67,5 +67,5 @@ func goVer(s string) string {
}
func notSemverRune(r rune) bool {
- return strings.IndexRune("0123456789.", r) < 0
+ return !strings.ContainsRune("0123456789.", r)
}
diff --git a/vendor/cloud.google.com/go/irm/apiv1alpha2/doc.go b/vendor/cloud.google.com/go/irm/apiv1alpha2/doc.go
new file mode 100644
index 0000000000..115a1f589c
--- /dev/null
+++ b/vendor/cloud.google.com/go/irm/apiv1alpha2/doc.go
@@ -0,0 +1,86 @@
+// Copyright 2019 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by gapic-generator. DO NOT EDIT.
+
+// Package irm is an auto-generated package for the
+// Stackdriver Incident Response & Management API.
+//
+// NOTE: This package is in alpha. It is not stable, and is likely to change.
+//
+package irm // import "cloud.google.com/go/irm/apiv1alpha2"
+
+import (
+ "context"
+ "runtime"
+ "strings"
+ "unicode"
+
+ "google.golang.org/grpc/metadata"
+)
+
+func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context {
+ out, _ := metadata.FromOutgoingContext(ctx)
+ out = out.Copy()
+ for _, md := range mds {
+ for k, v := range md {
+ out[k] = append(out[k], v...)
+ }
+ }
+ return metadata.NewOutgoingContext(ctx, out)
+}
+
+// DefaultAuthScopes reports the default set of authentication scopes to use with this package.
+func DefaultAuthScopes() []string {
+ return []string{}
+}
+
+// versionGo returns the Go runtime version. The returned string
+// has no whitespace, suitable for reporting in header.
+func versionGo() string {
+ const develPrefix = "devel +"
+
+ s := runtime.Version()
+ if strings.HasPrefix(s, develPrefix) {
+ s = s[len(develPrefix):]
+ if p := strings.IndexFunc(s, unicode.IsSpace); p >= 0 {
+ s = s[:p]
+ }
+ return s
+ }
+
+ notSemverRune := func(r rune) bool {
+ return strings.IndexRune("0123456789.", r) < 0
+ }
+
+ if strings.HasPrefix(s, "go1") {
+ s = s[2:]
+ var prerelease string
+ if p := strings.IndexFunc(s, notSemverRune); p >= 0 {
+ s, prerelease = s[:p], s[p:]
+ }
+ if strings.HasSuffix(s, ".") {
+ s += "0"
+ } else if strings.Count(s, ".") < 2 {
+ s += ".0"
+ }
+ if prerelease != "" {
+ s += "-" + prerelease
+ }
+ return s
+ }
+ return "UNKNOWN"
+}
+
+const versionClient = "20190201"
diff --git a/vendor/cloud.google.com/go/irm/apiv1alpha2/incident_client.go b/vendor/cloud.google.com/go/irm/apiv1alpha2/incident_client.go
new file mode 100644
index 0000000000..9cf8cee167
--- /dev/null
+++ b/vendor/cloud.google.com/go/irm/apiv1alpha2/incident_client.go
@@ -0,0 +1,1226 @@
+// Copyright 2019 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by gapic-generator. DO NOT EDIT.
+
+package irm
+
+import (
+ "context"
+ "math"
+ "time"
+
+ "github.com/golang/protobuf/proto"
+ gax "github.com/googleapis/gax-go/v2"
+ "google.golang.org/api/iterator"
+ "google.golang.org/api/option"
+ "google.golang.org/api/transport"
+ irmpb "google.golang.org/genproto/googleapis/cloud/irm/v1alpha2"
+ "google.golang.org/grpc"
+ "google.golang.org/grpc/codes"
+ "google.golang.org/grpc/metadata"
+)
+
+// IncidentCallOptions contains the retry settings for each method of IncidentClient.
+type IncidentCallOptions struct {
+ CreateIncident []gax.CallOption
+ GetIncident []gax.CallOption
+ SearchIncidents []gax.CallOption
+ UpdateIncident []gax.CallOption
+ SearchSimilarIncidents []gax.CallOption
+ CreateAnnotation []gax.CallOption
+ ListAnnotations []gax.CallOption
+ UpdateAnnotation []gax.CallOption
+ CreateTag []gax.CallOption
+ DeleteTag []gax.CallOption
+ ListTags []gax.CallOption
+ CreateSignal []gax.CallOption
+ ListSignals []gax.CallOption
+ GetSignal []gax.CallOption
+ UpdateSignal []gax.CallOption
+ AcknowledgeSignal []gax.CallOption
+ EscalateIncident []gax.CallOption
+ CreateArtifact []gax.CallOption
+ ListArtifacts []gax.CallOption
+ UpdateArtifact []gax.CallOption
+ DeleteArtifact []gax.CallOption
+ GetShiftHandoffPresets []gax.CallOption
+ SendShiftHandoff []gax.CallOption
+ CreateSubscription []gax.CallOption
+ ListSubscriptions []gax.CallOption
+ DeleteSubscription []gax.CallOption
+ CreateIncidentRoleAssignment []gax.CallOption
+ DeleteIncidentRoleAssignment []gax.CallOption
+ ListIncidentRoleAssignments []gax.CallOption
+ RequestIncidentRoleHandover []gax.CallOption
+ ConfirmIncidentRoleHandover []gax.CallOption
+ ForceIncidentRoleHandover []gax.CallOption
+ CancelIncidentRoleHandover []gax.CallOption
+}
+
+func defaultIncidentClientOptions() []option.ClientOption {
+ return []option.ClientOption{
+ option.WithEndpoint("irm.googleapis.com:443"),
+ option.WithScopes(DefaultAuthScopes()...),
+ }
+}
+
+func defaultIncidentCallOptions() *IncidentCallOptions {
+ retry := map[[2]string][]gax.CallOption{
+ {"default", "idempotent"}: {
+ gax.WithRetry(func() gax.Retryer {
+ return gax.OnCodes([]codes.Code{
+ codes.DeadlineExceeded,
+ codes.Unavailable,
+ }, gax.Backoff{
+ Initial: 100 * time.Millisecond,
+ Max: 60000 * time.Millisecond,
+ Multiplier: 1.3,
+ })
+ }),
+ },
+ }
+ return &IncidentCallOptions{
+ CreateIncident: retry[[2]string{"default", "non_idempotent"}],
+ GetIncident: retry[[2]string{"default", "idempotent"}],
+ SearchIncidents: retry[[2]string{"default", "idempotent"}],
+ UpdateIncident: retry[[2]string{"default", "non_idempotent"}],
+ SearchSimilarIncidents: retry[[2]string{"default", "idempotent"}],
+ CreateAnnotation: retry[[2]string{"default", "non_idempotent"}],
+ ListAnnotations: retry[[2]string{"default", "idempotent"}],
+ UpdateAnnotation: retry[[2]string{"default", "non_idempotent"}],
+ CreateTag: retry[[2]string{"default", "non_idempotent"}],
+ DeleteTag: retry[[2]string{"default", "idempotent"}],
+ ListTags: retry[[2]string{"default", "idempotent"}],
+ CreateSignal: retry[[2]string{"default", "non_idempotent"}],
+ ListSignals: retry[[2]string{"default", "idempotent"}],
+ GetSignal: retry[[2]string{"default", "idempotent"}],
+ UpdateSignal: retry[[2]string{"default", "non_idempotent"}],
+ AcknowledgeSignal: retry[[2]string{"default", "non_idempotent"}],
+ EscalateIncident: retry[[2]string{"default", "non_idempotent"}],
+ CreateArtifact: retry[[2]string{"default", "non_idempotent"}],
+ ListArtifacts: retry[[2]string{"default", "idempotent"}],
+ UpdateArtifact: retry[[2]string{"default", "non_idempotent"}],
+ DeleteArtifact: retry[[2]string{"default", "idempotent"}],
+ GetShiftHandoffPresets: retry[[2]string{"default", "idempotent"}],
+ SendShiftHandoff: retry[[2]string{"default", "non_idempotent"}],
+ CreateSubscription: retry[[2]string{"default", "non_idempotent"}],
+ ListSubscriptions: retry[[2]string{"default", "idempotent"}],
+ DeleteSubscription: retry[[2]string{"default", "idempotent"}],
+ CreateIncidentRoleAssignment: retry[[2]string{"default", "non_idempotent"}],
+ DeleteIncidentRoleAssignment: retry[[2]string{"default", "idempotent"}],
+ ListIncidentRoleAssignments: retry[[2]string{"default", "idempotent"}],
+ RequestIncidentRoleHandover: retry[[2]string{"default", "non_idempotent"}],
+ ConfirmIncidentRoleHandover: retry[[2]string{"default", "non_idempotent"}],
+ ForceIncidentRoleHandover: retry[[2]string{"default", "non_idempotent"}],
+ CancelIncidentRoleHandover: retry[[2]string{"default", "non_idempotent"}],
+ }
+}
+
+// IncidentClient is a client for interacting with Stackdriver Incident Response & Management API.
+//
+// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
+type IncidentClient struct {
+ // The connection to the service.
+ conn *grpc.ClientConn
+
+ // The gRPC API client.
+ incidentClient irmpb.IncidentServiceClient
+
+ // The call options for this service.
+ CallOptions *IncidentCallOptions
+
+ // The x-goog-* metadata to be sent with each request.
+ xGoogMetadata metadata.MD
+}
+
+// NewIncidentClient creates a new incident service client.
+//
+// The Incident API for Incident Response & Management.
+func NewIncidentClient(ctx context.Context, opts ...option.ClientOption) (*IncidentClient, error) {
+ conn, err := transport.DialGRPC(ctx, append(defaultIncidentClientOptions(), opts...)...)
+ if err != nil {
+ return nil, err
+ }
+ c := &IncidentClient{
+ conn: conn,
+ CallOptions: defaultIncidentCallOptions(),
+
+ incidentClient: irmpb.NewIncidentServiceClient(conn),
+ }
+ c.setGoogleClientInfo()
+ return c, nil
+}
+
+// Connection returns the client's connection to the API service.
+func (c *IncidentClient) Connection() *grpc.ClientConn {
+ return c.conn
+}
+
+// Close closes the connection to the API service. The user should invoke this when
+// the client is no longer required.
+func (c *IncidentClient) Close() error {
+ return c.conn.Close()
+}
+
+// setGoogleClientInfo sets the name and version of the application in
+// the `x-goog-api-client` header passed on each request. Intended for
+// use by Google-written clients.
+func (c *IncidentClient) setGoogleClientInfo(keyval ...string) {
+ kv := append([]string{"gl-go", versionGo()}, keyval...)
+ kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version)
+ c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
+}
+
+// CreateIncident creates a new incident.
+func (c *IncidentClient) CreateIncident(ctx context.Context, req *irmpb.CreateIncidentRequest, opts ...gax.CallOption) (*irmpb.Incident, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.CreateIncident[0:len(c.CallOptions.CreateIncident):len(c.CallOptions.CreateIncident)], opts...)
+ var resp *irmpb.Incident
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.CreateIncident(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// GetIncident returns an incident by name.
+func (c *IncidentClient) GetIncident(ctx context.Context, req *irmpb.GetIncidentRequest, opts ...gax.CallOption) (*irmpb.Incident, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.GetIncident[0:len(c.CallOptions.GetIncident):len(c.CallOptions.GetIncident)], opts...)
+ var resp *irmpb.Incident
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.GetIncident(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// SearchIncidents returns a list of incidents.
+// Incidents are ordered by start time, with the most recent incidents first.
+func (c *IncidentClient) SearchIncidents(ctx context.Context, req *irmpb.SearchIncidentsRequest, opts ...gax.CallOption) *IncidentIterator {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.SearchIncidents[0:len(c.CallOptions.SearchIncidents):len(c.CallOptions.SearchIncidents)], opts...)
+ it := &IncidentIterator{}
+ req = proto.Clone(req).(*irmpb.SearchIncidentsRequest)
+ it.InternalFetch = func(pageSize int, pageToken string) ([]*irmpb.Incident, string, error) {
+ var resp *irmpb.SearchIncidentsResponse
+ req.PageToken = pageToken
+ if pageSize > math.MaxInt32 {
+ req.PageSize = math.MaxInt32
+ } else {
+ req.PageSize = int32(pageSize)
+ }
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.SearchIncidents(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, "", err
+ }
+ return resp.Incidents, resp.NextPageToken, nil
+ }
+ fetch := func(pageSize int, pageToken string) (string, error) {
+ items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+ if err != nil {
+ return "", err
+ }
+ it.items = append(it.items, items...)
+ return nextPageToken, nil
+ }
+ it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+ it.pageInfo.MaxSize = int(req.PageSize)
+ return it
+}
+
+// UpdateIncident updates an existing incident.
+func (c *IncidentClient) UpdateIncident(ctx context.Context, req *irmpb.UpdateIncidentRequest, opts ...gax.CallOption) (*irmpb.Incident, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.UpdateIncident[0:len(c.CallOptions.UpdateIncident):len(c.CallOptions.UpdateIncident)], opts...)
+ var resp *irmpb.Incident
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.UpdateIncident(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// SearchSimilarIncidents returns a list of incidents that are "similar" to the specified incident
+// or signal. This functionality is provided on a best-effort basis and the
+// definition of "similar" is subject to change.
+func (c *IncidentClient) SearchSimilarIncidents(ctx context.Context, req *irmpb.SearchSimilarIncidentsRequest, opts ...gax.CallOption) *SearchSimilarIncidentsResponse_ResultIterator {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.SearchSimilarIncidents[0:len(c.CallOptions.SearchSimilarIncidents):len(c.CallOptions.SearchSimilarIncidents)], opts...)
+ it := &SearchSimilarIncidentsResponse_ResultIterator{}
+ req = proto.Clone(req).(*irmpb.SearchSimilarIncidentsRequest)
+ it.InternalFetch = func(pageSize int, pageToken string) ([]*irmpb.SearchSimilarIncidentsResponse_Result, string, error) {
+ var resp *irmpb.SearchSimilarIncidentsResponse
+ req.PageToken = pageToken
+ if pageSize > math.MaxInt32 {
+ req.PageSize = math.MaxInt32
+ } else {
+ req.PageSize = int32(pageSize)
+ }
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.SearchSimilarIncidents(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, "", err
+ }
+ return resp.Results, resp.NextPageToken, nil
+ }
+ fetch := func(pageSize int, pageToken string) (string, error) {
+ items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+ if err != nil {
+ return "", err
+ }
+ it.items = append(it.items, items...)
+ return nextPageToken, nil
+ }
+ it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+ it.pageInfo.MaxSize = int(req.PageSize)
+ return it
+}
+
+// CreateAnnotation creates an annotation on an existing incident. Only 'text/plain' and
+// 'text/markdown' annotations can be created via this method.
+func (c *IncidentClient) CreateAnnotation(ctx context.Context, req *irmpb.CreateAnnotationRequest, opts ...gax.CallOption) (*irmpb.Annotation, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.CreateAnnotation[0:len(c.CallOptions.CreateAnnotation):len(c.CallOptions.CreateAnnotation)], opts...)
+ var resp *irmpb.Annotation
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.CreateAnnotation(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// ListAnnotations lists annotations that are part of an incident. No assumptions should be
+// made on the content-type of the annotation returned.
+func (c *IncidentClient) ListAnnotations(ctx context.Context, req *irmpb.ListAnnotationsRequest, opts ...gax.CallOption) *AnnotationIterator {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.ListAnnotations[0:len(c.CallOptions.ListAnnotations):len(c.CallOptions.ListAnnotations)], opts...)
+ it := &AnnotationIterator{}
+ req = proto.Clone(req).(*irmpb.ListAnnotationsRequest)
+ it.InternalFetch = func(pageSize int, pageToken string) ([]*irmpb.Annotation, string, error) {
+ var resp *irmpb.ListAnnotationsResponse
+ req.PageToken = pageToken
+ if pageSize > math.MaxInt32 {
+ req.PageSize = math.MaxInt32
+ } else {
+ req.PageSize = int32(pageSize)
+ }
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.ListAnnotations(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, "", err
+ }
+ return resp.Annotations, resp.NextPageToken, nil
+ }
+ fetch := func(pageSize int, pageToken string) (string, error) {
+ items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+ if err != nil {
+ return "", err
+ }
+ it.items = append(it.items, items...)
+ return nextPageToken, nil
+ }
+ it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+ it.pageInfo.MaxSize = int(req.PageSize)
+ return it
+}
+
+// UpdateAnnotation updates an annotation on an existing incident.
+func (c *IncidentClient) UpdateAnnotation(ctx context.Context, req *irmpb.UpdateAnnotationRequest, opts ...gax.CallOption) (*irmpb.Annotation, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.UpdateAnnotation[0:len(c.CallOptions.UpdateAnnotation):len(c.CallOptions.UpdateAnnotation)], opts...)
+ var resp *irmpb.Annotation
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.UpdateAnnotation(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// CreateTag creates a tag on an existing incident.
+func (c *IncidentClient) CreateTag(ctx context.Context, req *irmpb.CreateTagRequest, opts ...gax.CallOption) (*irmpb.Tag, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.CreateTag[0:len(c.CallOptions.CreateTag):len(c.CallOptions.CreateTag)], opts...)
+ var resp *irmpb.Tag
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.CreateTag(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// DeleteTag deletes an existing tag.
+func (c *IncidentClient) DeleteTag(ctx context.Context, req *irmpb.DeleteTagRequest, opts ...gax.CallOption) error {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.DeleteTag[0:len(c.CallOptions.DeleteTag):len(c.CallOptions.DeleteTag)], opts...)
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ _, err = c.incidentClient.DeleteTag(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ return err
+}
+
+// ListTags lists tags that are part of an incident.
+func (c *IncidentClient) ListTags(ctx context.Context, req *irmpb.ListTagsRequest, opts ...gax.CallOption) *TagIterator {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.ListTags[0:len(c.CallOptions.ListTags):len(c.CallOptions.ListTags)], opts...)
+ it := &TagIterator{}
+ req = proto.Clone(req).(*irmpb.ListTagsRequest)
+ it.InternalFetch = func(pageSize int, pageToken string) ([]*irmpb.Tag, string, error) {
+ var resp *irmpb.ListTagsResponse
+ req.PageToken = pageToken
+ if pageSize > math.MaxInt32 {
+ req.PageSize = math.MaxInt32
+ } else {
+ req.PageSize = int32(pageSize)
+ }
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.ListTags(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, "", err
+ }
+ return resp.Tags, resp.NextPageToken, nil
+ }
+ fetch := func(pageSize int, pageToken string) (string, error) {
+ items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+ if err != nil {
+ return "", err
+ }
+ it.items = append(it.items, items...)
+ return nextPageToken, nil
+ }
+ it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+ it.pageInfo.MaxSize = int(req.PageSize)
+ return it
+}
+
+// CreateSignal creates a new signal.
+func (c *IncidentClient) CreateSignal(ctx context.Context, req *irmpb.CreateSignalRequest, opts ...gax.CallOption) (*irmpb.Signal, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.CreateSignal[0:len(c.CallOptions.CreateSignal):len(c.CallOptions.CreateSignal)], opts...)
+ var resp *irmpb.Signal
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.CreateSignal(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// ListSignals lists signals that are part of an incident.
+// Signals are returned in reverse chronological order.
+func (c *IncidentClient) ListSignals(ctx context.Context, req *irmpb.ListSignalsRequest, opts ...gax.CallOption) *SignalIterator {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.ListSignals[0:len(c.CallOptions.ListSignals):len(c.CallOptions.ListSignals)], opts...)
+ it := &SignalIterator{}
+ req = proto.Clone(req).(*irmpb.ListSignalsRequest)
+ it.InternalFetch = func(pageSize int, pageToken string) ([]*irmpb.Signal, string, error) {
+ var resp *irmpb.ListSignalsResponse
+ req.PageToken = pageToken
+ if pageSize > math.MaxInt32 {
+ req.PageSize = math.MaxInt32
+ } else {
+ req.PageSize = int32(pageSize)
+ }
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.ListSignals(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, "", err
+ }
+ return resp.Signals, resp.NextPageToken, nil
+ }
+ fetch := func(pageSize int, pageToken string) (string, error) {
+ items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+ if err != nil {
+ return "", err
+ }
+ it.items = append(it.items, items...)
+ return nextPageToken, nil
+ }
+ it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+ it.pageInfo.MaxSize = int(req.PageSize)
+ return it
+}
+
+// GetSignal returns a signal by name.
+func (c *IncidentClient) GetSignal(ctx context.Context, req *irmpb.GetSignalRequest, opts ...gax.CallOption) (*irmpb.Signal, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.GetSignal[0:len(c.CallOptions.GetSignal):len(c.CallOptions.GetSignal)], opts...)
+ var resp *irmpb.Signal
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.GetSignal(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// UpdateSignal updates an existing signal (e.g. to assign/unassign it to an
+// incident).
+func (c *IncidentClient) UpdateSignal(ctx context.Context, req *irmpb.UpdateSignalRequest, opts ...gax.CallOption) (*irmpb.Signal, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.UpdateSignal[0:len(c.CallOptions.UpdateSignal):len(c.CallOptions.UpdateSignal)], opts...)
+ var resp *irmpb.Signal
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.UpdateSignal(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// AcknowledgeSignal acks a signal. This acknowledges the signal in the underlying system,
+// indicating that the caller takes responsibility for looking into this.
+func (c *IncidentClient) AcknowledgeSignal(ctx context.Context, req *irmpb.AcknowledgeSignalRequest, opts ...gax.CallOption) (*irmpb.AcknowledgeSignalResponse, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.AcknowledgeSignal[0:len(c.CallOptions.AcknowledgeSignal):len(c.CallOptions.AcknowledgeSignal)], opts...)
+ var resp *irmpb.AcknowledgeSignalResponse
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.AcknowledgeSignal(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// EscalateIncident escalates an incident.
+func (c *IncidentClient) EscalateIncident(ctx context.Context, req *irmpb.EscalateIncidentRequest, opts ...gax.CallOption) (*irmpb.EscalateIncidentResponse, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.EscalateIncident[0:len(c.CallOptions.EscalateIncident):len(c.CallOptions.EscalateIncident)], opts...)
+ var resp *irmpb.EscalateIncidentResponse
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.EscalateIncident(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// CreateArtifact creates a new artifact.
+func (c *IncidentClient) CreateArtifact(ctx context.Context, req *irmpb.CreateArtifactRequest, opts ...gax.CallOption) (*irmpb.Artifact, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.CreateArtifact[0:len(c.CallOptions.CreateArtifact):len(c.CallOptions.CreateArtifact)], opts...)
+ var resp *irmpb.Artifact
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.CreateArtifact(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// ListArtifacts returns a list of artifacts for an incident.
+func (c *IncidentClient) ListArtifacts(ctx context.Context, req *irmpb.ListArtifactsRequest, opts ...gax.CallOption) *ArtifactIterator {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.ListArtifacts[0:len(c.CallOptions.ListArtifacts):len(c.CallOptions.ListArtifacts)], opts...)
+ it := &ArtifactIterator{}
+ req = proto.Clone(req).(*irmpb.ListArtifactsRequest)
+ it.InternalFetch = func(pageSize int, pageToken string) ([]*irmpb.Artifact, string, error) {
+ var resp *irmpb.ListArtifactsResponse
+ req.PageToken = pageToken
+ if pageSize > math.MaxInt32 {
+ req.PageSize = math.MaxInt32
+ } else {
+ req.PageSize = int32(pageSize)
+ }
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.ListArtifacts(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, "", err
+ }
+ return resp.Artifacts, resp.NextPageToken, nil
+ }
+ fetch := func(pageSize int, pageToken string) (string, error) {
+ items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+ if err != nil {
+ return "", err
+ }
+ it.items = append(it.items, items...)
+ return nextPageToken, nil
+ }
+ it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+ it.pageInfo.MaxSize = int(req.PageSize)
+ return it
+}
+
+// UpdateArtifact updates an existing artifact.
+func (c *IncidentClient) UpdateArtifact(ctx context.Context, req *irmpb.UpdateArtifactRequest, opts ...gax.CallOption) (*irmpb.Artifact, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.UpdateArtifact[0:len(c.CallOptions.UpdateArtifact):len(c.CallOptions.UpdateArtifact)], opts...)
+ var resp *irmpb.Artifact
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.UpdateArtifact(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// DeleteArtifact deletes an existing artifact.
+func (c *IncidentClient) DeleteArtifact(ctx context.Context, req *irmpb.DeleteArtifactRequest, opts ...gax.CallOption) error {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.DeleteArtifact[0:len(c.CallOptions.DeleteArtifact):len(c.CallOptions.DeleteArtifact)], opts...)
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ _, err = c.incidentClient.DeleteArtifact(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ return err
+}
+
+// GetShiftHandoffPresets returns "presets" specific to shift handoff (see SendShiftHandoff), e.g.
+// default values for handoff message fields.
+func (c *IncidentClient) GetShiftHandoffPresets(ctx context.Context, req *irmpb.GetShiftHandoffPresetsRequest, opts ...gax.CallOption) (*irmpb.ShiftHandoffPresets, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.GetShiftHandoffPresets[0:len(c.CallOptions.GetShiftHandoffPresets):len(c.CallOptions.GetShiftHandoffPresets)], opts...)
+ var resp *irmpb.ShiftHandoffPresets
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.GetShiftHandoffPresets(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// SendShiftHandoff sends a summary of the shift for oncall handoff.
+func (c *IncidentClient) SendShiftHandoff(ctx context.Context, req *irmpb.SendShiftHandoffRequest, opts ...gax.CallOption) (*irmpb.SendShiftHandoffResponse, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.SendShiftHandoff[0:len(c.CallOptions.SendShiftHandoff):len(c.CallOptions.SendShiftHandoff)], opts...)
+ var resp *irmpb.SendShiftHandoffResponse
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.SendShiftHandoff(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// CreateSubscription creates a new subscription.
+// This will fail if:
+// a. there are too many (50) subscriptions in the incident already
+// b. a subscription using the given channel already exists
+func (c *IncidentClient) CreateSubscription(ctx context.Context, req *irmpb.CreateSubscriptionRequest, opts ...gax.CallOption) (*irmpb.Subscription, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.CreateSubscription[0:len(c.CallOptions.CreateSubscription):len(c.CallOptions.CreateSubscription)], opts...)
+ var resp *irmpb.Subscription
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.CreateSubscription(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// ListSubscriptions returns a list of subscriptions for an incident.
+func (c *IncidentClient) ListSubscriptions(ctx context.Context, req *irmpb.ListSubscriptionsRequest, opts ...gax.CallOption) *SubscriptionIterator {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.ListSubscriptions[0:len(c.CallOptions.ListSubscriptions):len(c.CallOptions.ListSubscriptions)], opts...)
+ it := &SubscriptionIterator{}
+ req = proto.Clone(req).(*irmpb.ListSubscriptionsRequest)
+ it.InternalFetch = func(pageSize int, pageToken string) ([]*irmpb.Subscription, string, error) {
+ var resp *irmpb.ListSubscriptionsResponse
+ req.PageToken = pageToken
+ if pageSize > math.MaxInt32 {
+ req.PageSize = math.MaxInt32
+ } else {
+ req.PageSize = int32(pageSize)
+ }
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.ListSubscriptions(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, "", err
+ }
+ return resp.Subscriptions, resp.NextPageToken, nil
+ }
+ fetch := func(pageSize int, pageToken string) (string, error) {
+ items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+ if err != nil {
+ return "", err
+ }
+ it.items = append(it.items, items...)
+ return nextPageToken, nil
+ }
+ it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+ it.pageInfo.MaxSize = int(req.PageSize)
+ return it
+}
+
+// DeleteSubscription deletes an existing subscription.
+func (c *IncidentClient) DeleteSubscription(ctx context.Context, req *irmpb.DeleteSubscriptionRequest, opts ...gax.CallOption) error {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.DeleteSubscription[0:len(c.CallOptions.DeleteSubscription):len(c.CallOptions.DeleteSubscription)], opts...)
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ _, err = c.incidentClient.DeleteSubscription(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ return err
+}
+
+// CreateIncidentRoleAssignment creates a role assignment on an existing incident. Normally, the user field
+// will be set when assigning a role to oneself, and the next field will be
+// set when proposing another user as the assignee. Setting the next field
+// directly to a user other than oneself is equivalent to proposing and
+// force-assigning the role to the user.
+func (c *IncidentClient) CreateIncidentRoleAssignment(ctx context.Context, req *irmpb.CreateIncidentRoleAssignmentRequest, opts ...gax.CallOption) (*irmpb.IncidentRoleAssignment, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.CreateIncidentRoleAssignment[0:len(c.CallOptions.CreateIncidentRoleAssignment):len(c.CallOptions.CreateIncidentRoleAssignment)], opts...)
+ var resp *irmpb.IncidentRoleAssignment
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.CreateIncidentRoleAssignment(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// DeleteIncidentRoleAssignment deletes an existing role assignment.
+func (c *IncidentClient) DeleteIncidentRoleAssignment(ctx context.Context, req *irmpb.DeleteIncidentRoleAssignmentRequest, opts ...gax.CallOption) error {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.DeleteIncidentRoleAssignment[0:len(c.CallOptions.DeleteIncidentRoleAssignment):len(c.CallOptions.DeleteIncidentRoleAssignment)], opts...)
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ _, err = c.incidentClient.DeleteIncidentRoleAssignment(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ return err
+}
+
+// ListIncidentRoleAssignments lists role assignments that are part of an incident.
+func (c *IncidentClient) ListIncidentRoleAssignments(ctx context.Context, req *irmpb.ListIncidentRoleAssignmentsRequest, opts ...gax.CallOption) *IncidentRoleAssignmentIterator {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.ListIncidentRoleAssignments[0:len(c.CallOptions.ListIncidentRoleAssignments):len(c.CallOptions.ListIncidentRoleAssignments)], opts...)
+ it := &IncidentRoleAssignmentIterator{}
+ req = proto.Clone(req).(*irmpb.ListIncidentRoleAssignmentsRequest)
+ it.InternalFetch = func(pageSize int, pageToken string) ([]*irmpb.IncidentRoleAssignment, string, error) {
+ var resp *irmpb.ListIncidentRoleAssignmentsResponse
+ req.PageToken = pageToken
+ if pageSize > math.MaxInt32 {
+ req.PageSize = math.MaxInt32
+ } else {
+ req.PageSize = int32(pageSize)
+ }
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.ListIncidentRoleAssignments(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, "", err
+ }
+ return resp.IncidentRoleAssignments, resp.NextPageToken, nil
+ }
+ fetch := func(pageSize int, pageToken string) (string, error) {
+ items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+ if err != nil {
+ return "", err
+ }
+ it.items = append(it.items, items...)
+ return nextPageToken, nil
+ }
+ it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+ it.pageInfo.MaxSize = int(req.PageSize)
+ return it
+}
+
+// RequestIncidentRoleHandover starts a role handover. The proposed assignee will receive an email
+// notifying them of the assignment. This will fail if a role handover is
+// already pending.
+func (c *IncidentClient) RequestIncidentRoleHandover(ctx context.Context, req *irmpb.RequestIncidentRoleHandoverRequest, opts ...gax.CallOption) (*irmpb.IncidentRoleAssignment, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.RequestIncidentRoleHandover[0:len(c.CallOptions.RequestIncidentRoleHandover):len(c.CallOptions.RequestIncidentRoleHandover)], opts...)
+ var resp *irmpb.IncidentRoleAssignment
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.RequestIncidentRoleHandover(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// ConfirmIncidentRoleHandover confirms a role handover. This will fail if the 'proposed_assignee' field
+// of the IncidentRoleAssignment is not equal to the 'new_assignee' field of
+// the request. If the caller is not the new_assignee,
+// ForceIncidentRoleHandover should be used instead.
+func (c *IncidentClient) ConfirmIncidentRoleHandover(ctx context.Context, req *irmpb.ConfirmIncidentRoleHandoverRequest, opts ...gax.CallOption) (*irmpb.IncidentRoleAssignment, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.ConfirmIncidentRoleHandover[0:len(c.CallOptions.ConfirmIncidentRoleHandover):len(c.CallOptions.ConfirmIncidentRoleHandover)], opts...)
+ var resp *irmpb.IncidentRoleAssignment
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.ConfirmIncidentRoleHandover(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// ForceIncidentRoleHandover forces a role handover. This will fail if the 'proposed_assignee' field of
+// the IncidentRoleAssignment is not equal to the 'new_assignee' field of the
+// request. If the caller is the new_assignee, ConfirmIncidentRoleHandover
+// should be used instead.
+func (c *IncidentClient) ForceIncidentRoleHandover(ctx context.Context, req *irmpb.ForceIncidentRoleHandoverRequest, opts ...gax.CallOption) (*irmpb.IncidentRoleAssignment, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.ForceIncidentRoleHandover[0:len(c.CallOptions.ForceIncidentRoleHandover):len(c.CallOptions.ForceIncidentRoleHandover)], opts...)
+ var resp *irmpb.IncidentRoleAssignment
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.ForceIncidentRoleHandover(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// CancelIncidentRoleHandover cancels a role handover. This will fail if the 'proposed_assignee' field of
+// the IncidentRoleAssignment is not equal to the 'new_assignee' field of the
+// request.
+func (c *IncidentClient) CancelIncidentRoleHandover(ctx context.Context, req *irmpb.CancelIncidentRoleHandoverRequest, opts ...gax.CallOption) (*irmpb.IncidentRoleAssignment, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.CancelIncidentRoleHandover[0:len(c.CallOptions.CancelIncidentRoleHandover):len(c.CallOptions.CancelIncidentRoleHandover)], opts...)
+ var resp *irmpb.IncidentRoleAssignment
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.incidentClient.CancelIncidentRoleHandover(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// AnnotationIterator manages a stream of *irmpb.Annotation.
+type AnnotationIterator struct {
+ items []*irmpb.Annotation
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []*irmpb.Annotation, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *AnnotationIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *AnnotationIterator) Next() (*irmpb.Annotation, error) {
+ var item *irmpb.Annotation
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *AnnotationIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *AnnotationIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
+
+// ArtifactIterator manages a stream of *irmpb.Artifact.
+type ArtifactIterator struct {
+ items []*irmpb.Artifact
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []*irmpb.Artifact, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *ArtifactIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *ArtifactIterator) Next() (*irmpb.Artifact, error) {
+ var item *irmpb.Artifact
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *ArtifactIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *ArtifactIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
+
+// IncidentIterator manages a stream of *irmpb.Incident.
+type IncidentIterator struct {
+ items []*irmpb.Incident
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []*irmpb.Incident, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *IncidentIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *IncidentIterator) Next() (*irmpb.Incident, error) {
+ var item *irmpb.Incident
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *IncidentIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *IncidentIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
+
+// IncidentRoleAssignmentIterator manages a stream of *irmpb.IncidentRoleAssignment.
+type IncidentRoleAssignmentIterator struct {
+ items []*irmpb.IncidentRoleAssignment
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []*irmpb.IncidentRoleAssignment, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *IncidentRoleAssignmentIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *IncidentRoleAssignmentIterator) Next() (*irmpb.IncidentRoleAssignment, error) {
+ var item *irmpb.IncidentRoleAssignment
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *IncidentRoleAssignmentIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *IncidentRoleAssignmentIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
+
+// SearchSimilarIncidentsResponse_ResultIterator manages a stream of *irmpb.SearchSimilarIncidentsResponse_Result.
+type SearchSimilarIncidentsResponse_ResultIterator struct {
+ items []*irmpb.SearchSimilarIncidentsResponse_Result
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []*irmpb.SearchSimilarIncidentsResponse_Result, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *SearchSimilarIncidentsResponse_ResultIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *SearchSimilarIncidentsResponse_ResultIterator) Next() (*irmpb.SearchSimilarIncidentsResponse_Result, error) {
+ var item *irmpb.SearchSimilarIncidentsResponse_Result
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *SearchSimilarIncidentsResponse_ResultIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *SearchSimilarIncidentsResponse_ResultIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
+
+// SignalIterator manages a stream of *irmpb.Signal.
+type SignalIterator struct {
+ items []*irmpb.Signal
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []*irmpb.Signal, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *SignalIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *SignalIterator) Next() (*irmpb.Signal, error) {
+ var item *irmpb.Signal
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *SignalIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *SignalIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
+
+// SubscriptionIterator manages a stream of *irmpb.Subscription.
+type SubscriptionIterator struct {
+ items []*irmpb.Subscription
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []*irmpb.Subscription, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *SubscriptionIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *SubscriptionIterator) Next() (*irmpb.Subscription, error) {
+ var item *irmpb.Subscription
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *SubscriptionIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *SubscriptionIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
+
+// TagIterator manages a stream of *irmpb.Tag.
+type TagIterator struct {
+ items []*irmpb.Tag
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []*irmpb.Tag, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *TagIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *TagIterator) Next() (*irmpb.Tag, error) {
+ var item *irmpb.Tag
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *TagIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *TagIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
diff --git a/vendor/cloud.google.com/go/kms/apiv1/doc.go b/vendor/cloud.google.com/go/kms/apiv1/doc.go
index 2769e7f5d0..3ed9b80792 100644
--- a/vendor/cloud.google.com/go/kms/apiv1/doc.go
+++ b/vendor/cloud.google.com/go/kms/apiv1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package kms is an auto-generated package for the
// Cloud Key Management Service (KMS) API.
@@ -86,4 +86,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/kms/apiv1/iam.go b/vendor/cloud.google.com/go/kms/apiv1/iam.go
index 8c572a98e7..9fb2a6ab3b 100644
--- a/vendor/cloud.google.com/go/kms/apiv1/iam.go
+++ b/vendor/cloud.google.com/go/kms/apiv1/iam.go
@@ -20,11 +20,21 @@ import (
)
// KeyRingIAM returns a handle to inspect and change permissions of a KeyRing.
+//
+// Deprecated: Please use ResourceIAM and provide the KeyRing.Name as input.
func (c *KeyManagementClient) KeyRingIAM(keyRing *kmspb.KeyRing) *iam.Handle {
return iam.InternalNewHandle(c.Connection(), keyRing.Name)
}
// CryptoKeyIAM returns a handle to inspect and change permissions of a CryptoKey.
+//
+// Deprecated: Please use ResourceIAM and provide the CryptoKey.Name as input.
func (c *KeyManagementClient) CryptoKeyIAM(cryptoKey *kmspb.CryptoKey) *iam.Handle {
return iam.InternalNewHandle(c.Connection(), cryptoKey.Name)
}
+
+// ResourceIAM returns a handle to inspect and change permissions of the resource
+// indicated by the given resource path.
+func (c *KeyManagementClient) ResourceIAM(resourcePath string) *iam.Handle {
+ return iam.InternalNewHandle(c.Connection(), resourcePath)
+}
diff --git a/vendor/cloud.google.com/go/kms/apiv1/key_management_client.go b/vendor/cloud.google.com/go/kms/apiv1/key_management_client.go
index a7a8b9e83f..8c11f728ed 100644
--- a/vendor/cloud.google.com/go/kms/apiv1/key_management_client.go
+++ b/vendor/cloud.google.com/go/kms/apiv1/key_management_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package kms
@@ -23,7 +23,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/language/apiv1/doc.go b/vendor/cloud.google.com/go/language/apiv1/doc.go
index 01bfeacfb6..9b8c0d7830 100644
--- a/vendor/cloud.google.com/go/language/apiv1/doc.go
+++ b/vendor/cloud.google.com/go/language/apiv1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package language is an auto-generated package for the
// Google Cloud Natural Language API.
@@ -87,4 +87,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/language/apiv1/language_client.go b/vendor/cloud.google.com/go/language/apiv1/language_client.go
index 51627d9ffb..ddeb44059a 100644
--- a/vendor/cloud.google.com/go/language/apiv1/language_client.go
+++ b/vendor/cloud.google.com/go/language/apiv1/language_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package language
@@ -20,7 +20,7 @@ import (
"context"
"time"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
languagepb "google.golang.org/genproto/googleapis/cloud/language/v1"
diff --git a/vendor/cloud.google.com/go/language/apiv1beta2/doc.go b/vendor/cloud.google.com/go/language/apiv1beta2/doc.go
index 5c7ee03094..236a366904 100644
--- a/vendor/cloud.google.com/go/language/apiv1beta2/doc.go
+++ b/vendor/cloud.google.com/go/language/apiv1beta2/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package language is an auto-generated package for the
// Google Cloud Natural Language API.
//
-// NOTE: This package is in alpha. It is not stable, and is likely to change.
+// NOTE: This package is in beta. It is not stable, and may be subject to changes.
//
// Google Cloud Natural Language API provides natural language understanding
// technologies to developers. Examples include sentiment analysis, entity
@@ -88,4 +88,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/language/apiv1beta2/language_client.go b/vendor/cloud.google.com/go/language/apiv1beta2/language_client.go
index 19eeae3dfd..19a9671616 100644
--- a/vendor/cloud.google.com/go/language/apiv1beta2/language_client.go
+++ b/vendor/cloud.google.com/go/language/apiv1beta2/language_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package language
@@ -20,7 +20,7 @@ import (
"context"
"time"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
languagepb "google.golang.org/genproto/googleapis/cloud/language/v1beta2"
diff --git a/vendor/cloud.google.com/go/logging/apiv2/config_client.go b/vendor/cloud.google.com/go/logging/apiv2/config_client.go
index b711c0aa32..c6ec6d88b5 100644
--- a/vendor/cloud.google.com/go/logging/apiv2/config_client.go
+++ b/vendor/cloud.google.com/go/logging/apiv2/config_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package logging
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/logging/apiv2/doc.go b/vendor/cloud.google.com/go/logging/apiv2/doc.go
index 6ee4c618a1..6948819dd3 100644
--- a/vendor/cloud.google.com/go/logging/apiv2/doc.go
+++ b/vendor/cloud.google.com/go/logging/apiv2/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package logging is an auto-generated package for the
// Stackdriver Logging API.
@@ -92,4 +92,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/logging/apiv2/logging_client.go b/vendor/cloud.google.com/go/logging/apiv2/logging_client.go
index 39588c7ce8..7dddc21869 100644
--- a/vendor/cloud.google.com/go/logging/apiv2/logging_client.go
+++ b/vendor/cloud.google.com/go/logging/apiv2/logging_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package logging
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
@@ -67,7 +67,7 @@ func defaultCallOptions() *CallOptions {
}
return &CallOptions{
DeleteLog: retry[[2]string{"default", "idempotent"}],
- WriteLogEntries: retry[[2]string{"default", "non_idempotent"}],
+ WriteLogEntries: retry[[2]string{"default", "idempotent"}],
ListLogEntries: retry[[2]string{"default", "idempotent"}],
ListMonitoredResourceDescriptors: retry[[2]string{"default", "idempotent"}],
ListLogs: retry[[2]string{"default", "idempotent"}],
diff --git a/vendor/cloud.google.com/go/logging/apiv2/metrics_client.go b/vendor/cloud.google.com/go/logging/apiv2/metrics_client.go
index 7e53526c67..9d5030ff51 100644
--- a/vendor/cloud.google.com/go/logging/apiv2/metrics_client.go
+++ b/vendor/cloud.google.com/go/logging/apiv2/metrics_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package logging
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/logging/doc.go b/vendor/cloud.google.com/go/logging/doc.go
index 2f3c1815d1..f63d499094 100644
--- a/vendor/cloud.google.com/go/logging/doc.go
+++ b/vendor/cloud.google.com/go/logging/doc.go
@@ -21,9 +21,6 @@ This client uses Logging API v2.
See https://cloud.google.com/logging/docs/api/v2/ for an introduction to the API.
-Note: This package is in beta. Some backwards-incompatible changes may occur.
-
-
Creating a Client
Use a Client to interact with the Stackdriver Logging API.
@@ -65,7 +62,10 @@ For critical errors, you may want to send your log entries immediately.
LogSync is slow and will block until the log entry has been sent, so it is
not recommended for normal use.
- lg.LogSync(ctx, logging.Entry{Payload: "ALERT! Something critical happened!"})
+ err = lg.LogSync(ctx, logging.Entry{Payload: "ALERT! Something critical happened!"})
+ if err != nil {
+ // TODO: Handle error.
+ }
Payloads
diff --git a/vendor/cloud.google.com/go/logging/logadmin/logadmin.go b/vendor/cloud.google.com/go/logging/logadmin/logadmin.go
index d50f5e04c2..79e985a31f 100644
--- a/vendor/cloud.google.com/go/logging/logadmin/logadmin.go
+++ b/vendor/cloud.google.com/go/logging/logadmin/logadmin.go
@@ -28,7 +28,6 @@ package logadmin // import "cloud.google.com/go/logging/logadmin"
import (
"context"
"fmt"
- "math"
"net/http"
"net/url"
"strings"
@@ -39,7 +38,7 @@ import (
vkit "cloud.google.com/go/logging/apiv2"
"cloud.google.com/go/logging/internal"
"github.com/golang/protobuf/ptypes"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
_ "google.golang.org/genproto/googleapis/appengine/logging/v1" // Import the following so EntryIterator can unmarshal log protos.
@@ -285,13 +284,6 @@ func (it *EntryIterator) fetch(pageSize int, pageToken string) (string, error) {
})
}
-func trunc32(i int) int32 {
- if i > math.MaxInt32 {
- i = math.MaxInt32
- }
- return int32(i)
-}
-
var slashUnescaper = strings.NewReplacer("%2F", "/", "%2f", "/")
func fromLogEntry(le *logpb.LogEntry) (*logging.Entry, error) {
diff --git a/vendor/cloud.google.com/go/logging/logging.go b/vendor/cloud.google.com/go/logging/logging.go
index 6cc3ebb5fa..273976329c 100644
--- a/vendor/cloud.google.com/go/logging/logging.go
+++ b/vendor/cloud.google.com/go/logging/logging.go
@@ -233,7 +233,6 @@ type Logger struct {
// Options
commonResource *mrpb.MonitoredResource
commonLabels map[string]string
- writeTimeout time.Duration
ctxFunc func() (context.Context, func())
}
@@ -597,6 +596,10 @@ type Entry struct {
// be relative to //tracing.googleapis.com.
Trace string
+ // ID of the span within the trace associated with the log entry.
+ // The ID is a 16-character hexadecimal encoding of an 8-byte array.
+ SpanID string
+
// Optional. Source code location information associated with the log entry,
// if any.
SourceLocation *logpb.LogEntrySourceLocation
@@ -825,6 +828,7 @@ func (l *Logger) toLogEntry(e Entry) (*logpb.LogEntry, error) {
Operation: e.Operation,
Labels: e.Labels,
Trace: e.Trace,
+ SpanId: e.SpanID,
Resource: e.Resource,
SourceLocation: e.SourceLocation,
}
diff --git a/vendor/cloud.google.com/go/longrunning/autogen/doc.go b/vendor/cloud.google.com/go/longrunning/autogen/doc.go
index c5849a9cfd..6b6252a7a5 100644
--- a/vendor/cloud.google.com/go/longrunning/autogen/doc.go
+++ b/vendor/cloud.google.com/go/longrunning/autogen/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package longrunning is an auto-generated package for the
// Google Long Running Operations API.
@@ -85,4 +85,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/longrunning/autogen/operations_client.go b/vendor/cloud.google.com/go/longrunning/autogen/operations_client.go
index ebdf6f9f1c..7316802097 100644
--- a/vendor/cloud.google.com/go/longrunning/autogen/operations_client.go
+++ b/vendor/cloud.google.com/go/longrunning/autogen/operations_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package longrunning
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/longrunning/longrunning.go b/vendor/cloud.google.com/go/longrunning/longrunning.go
index 639482afce..e1d9dcf8a8 100644
--- a/vendor/cloud.google.com/go/longrunning/longrunning.go
+++ b/vendor/cloud.google.com/go/longrunning/longrunning.go
@@ -30,7 +30,7 @@ import (
autogen "cloud.google.com/go/longrunning/autogen"
"github.com/golang/protobuf/proto"
"github.com/golang/protobuf/ptypes"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
pb "google.golang.org/genproto/googleapis/longrunning"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
diff --git a/vendor/cloud.google.com/go/monitoring/apiv3/alert_policy_client.go b/vendor/cloud.google.com/go/monitoring/apiv3/alert_policy_client.go
index e3338793b9..a06b50dc52 100644
--- a/vendor/cloud.google.com/go/monitoring/apiv3/alert_policy_client.go
+++ b/vendor/cloud.google.com/go/monitoring/apiv3/alert_policy_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package monitoring
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/monitoring/apiv3/doc.go b/vendor/cloud.google.com/go/monitoring/apiv3/doc.go
index eb9ef7f532..4db8d95042 100644
--- a/vendor/cloud.google.com/go/monitoring/apiv3/doc.go
+++ b/vendor/cloud.google.com/go/monitoring/apiv3/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package monitoring is an auto-generated package for the
// Stackdriver Monitoring API.
@@ -91,4 +91,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/monitoring/apiv3/group_client.go b/vendor/cloud.google.com/go/monitoring/apiv3/group_client.go
index 2e37d23ad8..30e5f4a757 100644
--- a/vendor/cloud.google.com/go/monitoring/apiv3/group_client.go
+++ b/vendor/cloud.google.com/go/monitoring/apiv3/group_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package monitoring
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/monitoring/apiv3/metric_client.go b/vendor/cloud.google.com/go/monitoring/apiv3/metric_client.go
index 029e073f78..0299335cc9 100644
--- a/vendor/cloud.google.com/go/monitoring/apiv3/metric_client.go
+++ b/vendor/cloud.google.com/go/monitoring/apiv3/metric_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package monitoring
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/monitoring/apiv3/notification_channel_client.go b/vendor/cloud.google.com/go/monitoring/apiv3/notification_channel_client.go
index eb82cc7bc6..dc24183dd3 100644
--- a/vendor/cloud.google.com/go/monitoring/apiv3/notification_channel_client.go
+++ b/vendor/cloud.google.com/go/monitoring/apiv3/notification_channel_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package monitoring
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/monitoring/apiv3/uptime_check_client.go b/vendor/cloud.google.com/go/monitoring/apiv3/uptime_check_client.go
index 07a7ab8134..759abbbad4 100644
--- a/vendor/cloud.google.com/go/monitoring/apiv3/uptime_check_client.go
+++ b/vendor/cloud.google.com/go/monitoring/apiv3/uptime_check_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package monitoring
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/oslogin/apiv1/doc.go b/vendor/cloud.google.com/go/oslogin/apiv1/doc.go
index 0e4e2f9a5f..36ca543849 100644
--- a/vendor/cloud.google.com/go/oslogin/apiv1/doc.go
+++ b/vendor/cloud.google.com/go/oslogin/apiv1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package oslogin is an auto-generated package for the
// Google Cloud OS Login API.
@@ -89,4 +89,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/oslogin/apiv1/os_login_client.go b/vendor/cloud.google.com/go/oslogin/apiv1/os_login_client.go
index ee0a09c24d..b1bec452b7 100644
--- a/vendor/cloud.google.com/go/oslogin/apiv1/os_login_client.go
+++ b/vendor/cloud.google.com/go/oslogin/apiv1/os_login_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package oslogin
@@ -20,7 +20,7 @@ import (
"context"
"time"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
commonpb "google.golang.org/genproto/googleapis/cloud/oslogin/common"
diff --git a/vendor/cloud.google.com/go/oslogin/apiv1beta/doc.go b/vendor/cloud.google.com/go/oslogin/apiv1beta/doc.go
index fa88aff37b..d9d85d4342 100644
--- a/vendor/cloud.google.com/go/oslogin/apiv1beta/doc.go
+++ b/vendor/cloud.google.com/go/oslogin/apiv1beta/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package oslogin is an auto-generated package for the
// Google Cloud OS Login API.
//
-// NOTE: This package is in alpha. It is not stable, and is likely to change.
+// NOTE: This package is in beta. It is not stable, and may be subject to changes.
//
// Manages OS login configuration for Google account users.
package oslogin // import "cloud.google.com/go/oslogin/apiv1beta"
@@ -89,4 +89,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/oslogin/apiv1beta/os_login_client.go b/vendor/cloud.google.com/go/oslogin/apiv1beta/os_login_client.go
index 78a7be00d8..14ea89f07a 100644
--- a/vendor/cloud.google.com/go/oslogin/apiv1beta/os_login_client.go
+++ b/vendor/cloud.google.com/go/oslogin/apiv1beta/os_login_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package oslogin
@@ -20,7 +20,7 @@ import (
"context"
"time"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
commonpb "google.golang.org/genproto/googleapis/cloud/oslogin/common"
diff --git a/vendor/cloud.google.com/go/profiler/busybench/busybench.go b/vendor/cloud.google.com/go/profiler/busybench/busybench.go
index d99e6f5c4f..ee7b3214f3 100644
--- a/vendor/cloud.google.com/go/profiler/busybench/busybench.go
+++ b/vendor/cloud.google.com/go/profiler/busybench/busybench.go
@@ -30,7 +30,7 @@ import (
var (
service = flag.String("service", "", "service name")
mutexProfiling = flag.Bool("mutex_profiling", false, "enable mutex profiling")
- duration = flag.Int("duration", 600, "duration of the benchmark in seconds")
+ duration = flag.Int("duration", 150, "duration of the benchmark in seconds")
apiAddr = flag.String("api_address", "", "API address of the profiler (e.g. 'cloudprofiler.googleapis.com:443')")
projectID = flag.String("project_id", "", "cloud project ID")
)
diff --git a/vendor/cloud.google.com/go/profiler/profiler.go b/vendor/cloud.google.com/go/profiler/profiler.go
index 4011606109..86a70891f5 100644
--- a/vendor/cloud.google.com/go/profiler/profiler.go
+++ b/vendor/cloud.google.com/go/profiler/profiler.go
@@ -54,7 +54,7 @@ import (
"github.com/golang/protobuf/proto"
"github.com/golang/protobuf/ptypes"
"github.com/google/pprof/profile"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
gtransport "google.golang.org/api/transport/grpc"
pb "google.golang.org/genproto/googleapis/devtools/cloudprofiler/v2"
@@ -264,6 +264,7 @@ func (r *retryer) Retry(err error) (time.Duration, bool) {
// increasing value, bounded by maxBackoff.
func (a *agent) createProfile(ctx context.Context) *pb.Profile {
req := pb.CreateProfileRequest{
+ Parent: "projects/" + a.deployment.ProjectId,
Deployment: a.deployment,
ProfileType: a.profileTypes,
}
diff --git a/vendor/cloud.google.com/go/profiler/proftest/proftest.go b/vendor/cloud.google.com/go/profiler/proftest/proftest.go
index b103dd5a75..4c1b7d4124 100644
--- a/vendor/cloud.google.com/go/profiler/proftest/proftest.go
+++ b/vendor/cloud.google.com/go/profiler/proftest/proftest.go
@@ -31,7 +31,7 @@ import (
"time"
"cloud.google.com/go/storage"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"golang.org/x/build/kubernetes"
k8sapi "golang.org/x/build/kubernetes/api"
"golang.org/x/build/kubernetes/gke"
@@ -43,7 +43,6 @@ import (
const (
monitorWriteScope = "https://www.googleapis.com/auth/monitoring.write"
- storageReadScope = "https://www.googleapis.com/auth/devstorage.read_only"
)
// TestRunner has common elements used for testing profiling agents on a range
@@ -75,12 +74,12 @@ type ProfileResponse struct {
// ProfileData has data of a single profile.
type ProfileData struct {
- Samples []int32 `json:"samples"`
- SampleMetrics interface{} `json:"sampleMetrics"`
- DefaultMetricType string `json:"defaultMetricType"`
- TreeNodes interface{} `json:"treeNodes"`
- Functions functionArray `json:"functions"`
- SourceFiles interface{} `json:"sourceFiles"`
+ Samples []int32 `json:"samples"`
+ SampleMetrics interface{} `json:"sampleMetrics"`
+ DefaultMetricType string `json:"defaultMetricType"`
+ TreeNodes interface{} `json:"treeNodes"`
+ Functions functionArray `json:"functions"`
+ SourceFiles sourceFileArray `json:"sourceFiles"`
}
type functionArray struct {
@@ -88,6 +87,10 @@ type functionArray struct {
Sourcefile []int32 `json:"sourceFile"`
}
+type sourceFileArray struct {
+ Name []string `json:"name"`
+}
+
// InstanceConfig is configuration for starting single GCE instance for
// profiling agent test case.
type InstanceConfig struct {
@@ -111,20 +114,25 @@ type ClusterConfig struct {
Dockerfile string
}
-// HasFunction returns nil if the function is present, or, if the function is
-// not present, and error providing more details why the function is not
-// present.
-func (pr *ProfileResponse) HasFunction(functionName string) error {
+// CheckNonEmpty returns nil if the profile has a profiles and deployments
+// associated. Otherwise, returns a desciptive error.
+func (pr *ProfileResponse) CheckNonEmpty() error {
if pr.NumProfiles == 0 {
- return fmt.Errorf("failed to find function name %s in profile: profile response contains zero profiles: %v", functionName, pr)
+ return fmt.Errorf("profile response contains zero profiles: %v", pr)
}
if len(pr.Deployments) == 0 {
- return fmt.Errorf("failed to find function name %s in profile: profile response contains zero deployments: %v", functionName, pr)
- }
- if len(pr.Profile.Functions.Name) == 0 {
- return fmt.Errorf("failed to find function name %s in profile: profile does not have function data", functionName)
+ return fmt.Errorf("profile response contains zero deployments: %v", pr)
}
+ return nil
+}
+// HasFunction returns nil if the function is present, or, if the function is
+// not present, and error providing more details why the function is not
+// present.
+func (pr *ProfileResponse) HasFunction(functionName string) error {
+ if err := pr.CheckNonEmpty(); err != nil {
+ return fmt.Errorf("failed to find function name %s in profile: %v", functionName, err)
+ }
for _, name := range pr.Profile.Functions.Name {
if strings.Contains(name, functionName) {
return nil
@@ -133,6 +141,36 @@ func (pr *ProfileResponse) HasFunction(functionName string) error {
return fmt.Errorf("failed to find function name %s in profile", functionName)
}
+// HasFunctionInFile returns nil if function is present in the specifed file, and an
+// error if the function/file combination is not present in the profile.
+func (pr *ProfileResponse) HasFunctionInFile(functionName string, filename string) error {
+ if err := pr.CheckNonEmpty(); err != nil {
+ return fmt.Errorf("failed to find function name %s in file %s in profile: %v", functionName, filename, err)
+ }
+ for i, name := range pr.Profile.Functions.Name {
+ file := pr.Profile.SourceFiles.Name[pr.Profile.Functions.Sourcefile[i]]
+ if strings.Contains(name, functionName) && strings.HasSuffix(file, filename) {
+ return nil
+ }
+ }
+ return fmt.Errorf("failed to find function name %s in file %s in profile", functionName, filename)
+}
+
+// HasSourceFile returns nil if the file (or file where the end of the file path
+// matches the filename) is present in the profile. Or, if the filename is not
+// present, an error is returned.
+func (pr *ProfileResponse) HasSourceFile(filename string) error {
+ if err := pr.CheckNonEmpty(); err != nil {
+ return fmt.Errorf("failed to find filename %s in profile: %v", filename, err)
+ }
+ for _, name := range pr.Profile.SourceFiles.Name {
+ if strings.HasSuffix(name, filename) {
+ return nil
+ }
+ }
+ return fmt.Errorf("failed to find filename %s in profile", filename)
+}
+
// StartInstance starts a GCE Instance with name, zone, and projectId specified
// by the inst, and which runs the startup script specified in inst.
func (tr *GCETestRunner) StartInstance(ctx context.Context, inst *InstanceConfig) error {
@@ -268,7 +306,15 @@ func (tr *TestRunner) QueryProfiles(projectID, service, startTime, endTime, prof
queryRequest := fmt.Sprintf(queryJSONFmt, endTime, profileType, startTime, service)
- resp, err := tr.Client.Post(queryURL, "application/json", strings.NewReader(queryRequest))
+ req, err := http.NewRequest("POST", queryURL, strings.NewReader(queryRequest))
+ if err != nil {
+ return ProfileResponse{}, fmt.Errorf("failed to create an API request: %v", err)
+ }
+ req.Header = map[string][]string{
+ "X-Goog-User-Project": {projectID},
+ }
+
+ resp, err := tr.Client.Do(req)
if err != nil {
return ProfileResponse{}, fmt.Errorf("failed to query API: %v", err)
}
@@ -333,7 +379,7 @@ func (tr *GKETestRunner) createAndPublishDockerImage(ctx context.Context, projec
log.Printf("Transient error getting operation (will retry): %v", err)
break
}
- if op.Done == true {
+ if op.Done {
log.Printf("Published image %s to Google Container Registry.", ImageName)
return nil
}
@@ -397,45 +443,6 @@ func deleteDockerImageResource(client *http.Client, url string) error {
return nil
}
-func (tr *GKETestRunner) createCluster(ctx context.Context, client *http.Client, projectID, zone, ClusterName string) error {
- request := &container.CreateClusterRequest{Cluster: &container.Cluster{
- Name: ClusterName,
- InitialNodeCount: 3,
- NodeConfig: &container.NodeConfig{
- OauthScopes: []string{
- storageReadScope,
- },
- },
- }}
- op, err := tr.ContainerService.Projects.Zones.Clusters.Create(projectID, zone, request).Context(ctx).Do()
- if err != nil {
- return fmt.Errorf("failed to create cluster %s: %v", ClusterName, err)
- }
- opID := op.Name
-
- // Wait for creating cluster.
- for {
- select {
- case <-ctx.Done():
- return fmt.Errorf("timed out waiting creating cluster")
-
- case <-time.After(10 * time.Second):
- op, err := tr.ContainerService.Projects.Zones.Operations.Get(projectID, zone, opID).Context(ctx).Do()
- if err != nil {
- log.Printf("Transient error getting operation (will retry): %v", err)
- break
- }
- if op.Status == "DONE" {
- log.Printf("Created cluster %s.", ClusterName)
- return nil
- }
- if op.Status == "ABORTING" {
- return fmt.Errorf("create cluster operation is aborted")
- }
- }
- }
-}
-
func (tr *GKETestRunner) deployContainer(ctx context.Context, kubernetesClient *kubernetes.Client, podName, ImageName string) error {
// TODO: Pod restart policy defaults to "Always". Previous logs will disappear
// after restarting. Always restart causes the test not be able to see the
@@ -506,28 +513,28 @@ func (tr *GKETestRunner) DeleteClusterAndImage(ctx context.Context, cfg *Cluster
// StartAndDeployCluster creates image needed for cluster, then starts and
// deploys to cluster.
-func (tr *GKETestRunner) StartAndDeployCluster(ctx context.Context, cfg *ClusterConfig) error {
+func (tr *GKETestRunner) StartAndDeployCluster(ctx context.Context, cfg *ClusterConfig) (*kubernetes.Client, error) {
if err := tr.uploadImageSource(ctx, cfg.Bucket, cfg.ImageSourceName, cfg.Dockerfile); err != nil {
- return fmt.Errorf("failed to upload image source: %v", err)
+ return nil, fmt.Errorf("failed to upload image source: %v", err)
}
createImageCtx, cancel := context.WithTimeout(ctx, 5*time.Minute)
defer cancel()
if err := tr.createAndPublishDockerImage(createImageCtx, cfg.ProjectID, cfg.Bucket, cfg.ImageSourceName, fmt.Sprintf("gcr.io/%s", cfg.ImageName)); err != nil {
- return fmt.Errorf("failed to create and publish docker image %s: %v", cfg.ImageName, err)
+ return nil, fmt.Errorf("failed to create and publish docker image %s: %v", cfg.ImageName, err)
}
kubernetesClient, err := gke.NewClient(ctx, cfg.ClusterName, gke.OptZone(cfg.Zone), gke.OptProject(cfg.ProjectID))
if err != nil {
- return fmt.Errorf("failed to create new GKE client: %v", err)
+ return nil, fmt.Errorf("failed to create new GKE client: %v", err)
}
deployContainerCtx, cancel := context.WithTimeout(ctx, 5*time.Minute)
defer cancel()
if err := tr.deployContainer(deployContainerCtx, kubernetesClient, cfg.PodName, cfg.ImageName); err != nil {
- return fmt.Errorf("failed to deploy image %q to pod %q: %v", cfg.PodName, cfg.ImageName, err)
+ return nil, fmt.Errorf("failed to deploy image %q to pod %q: %v", cfg.PodName, cfg.ImageName, err)
}
- return nil
+ return kubernetesClient, nil
}
// uploadImageSource uploads source code for building docker image to GCS.
diff --git a/vendor/cloud.google.com/go/pubsub/apiv1/doc.go b/vendor/cloud.google.com/go/pubsub/apiv1/doc.go
index 5081693ff5..ac667ea3d7 100644
--- a/vendor/cloud.google.com/go/pubsub/apiv1/doc.go
+++ b/vendor/cloud.google.com/go/pubsub/apiv1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,12 +12,11 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package pubsub is an auto-generated package for the
// Google Cloud Pub/Sub API.
-//
-// NOTE: This package is in alpha. It is not stable, and is likely to change.
+
//
// Provides reliable, many-to-many, asynchronous messaging between
// applications.
@@ -90,4 +89,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/pubsub/apiv1/publisher_client.go b/vendor/cloud.google.com/go/pubsub/apiv1/publisher_client.go
index c33566e6a0..0d12f90958 100644
--- a/vendor/cloud.google.com/go/pubsub/apiv1/publisher_client.go
+++ b/vendor/cloud.google.com/go/pubsub/apiv1/publisher_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package pubsub
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
@@ -150,7 +150,8 @@ func (c *PublisherClient) SetGoogleClientInfo(keyval ...string) {
}
// CreateTopic creates the given topic with the given name. See the
-// resource name rules .
+//
+// resource name rules .
func (c *PublisherClient) CreateTopic(ctx context.Context, req *pubsubpb.Topic, opts ...gax.CallOption) (*pubsubpb.Topic, error) {
ctx = insertMetadata(ctx, c.xGoogMetadata)
opts = append(c.CallOptions.CreateTopic[0:len(c.CallOptions.CreateTopic):len(c.CallOptions.CreateTopic)], opts...)
diff --git a/vendor/cloud.google.com/go/pubsub/apiv1/subscriber_client.go b/vendor/cloud.google.com/go/pubsub/apiv1/subscriber_client.go
index dd644894ff..395be2df7c 100644
--- a/vendor/cloud.google.com/go/pubsub/apiv1/subscriber_client.go
+++ b/vendor/cloud.google.com/go/pubsub/apiv1/subscriber_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package pubsub
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
@@ -190,14 +190,15 @@ func (c *SubscriberClient) SetGoogleClientInfo(keyval ...string) {
}
// CreateSubscription creates a subscription to a given topic. See the
-// resource name rules .
+//
+// resource name rules .
// If the subscription already exists, returns ALREADY_EXISTS.
// If the corresponding topic doesn't exist, returns NOT_FOUND.
//
// If the name is not provided in the request, the server will assign a random
// name for this subscription on the same project as the topic, conforming
// to the
-// resource name format (at https://cloud.google.com/pubsub/docs/overview#names).
+// resource name format (at https://cloud.google.com/pubsub/docs/admin#resource_names).
// The generated name is populated in the returned Subscription object.
// Note that for REST API requests, you must specify a name in the request.
func (c *SubscriberClient) CreateSubscription(ctx context.Context, req *pubsubpb.Subscription, opts ...gax.CallOption) (*pubsubpb.Subscription, error) {
@@ -392,8 +393,13 @@ func (c *SubscriberClient) ModifyPushConfig(ctx context.Context, req *pubsubpb.M
return err
}
-// ListSnapshots lists the existing snapshots.
-// ALPHA: This feature is part of an alpha release. This API might be
+// ListSnapshots lists the existing snapshots. Snapshots are used in
+// Seek
+// operations, which allow
+// you to manage message acknowledgments in bulk. That is, you can set the
+// acknowledgment state of messages in an existing subscription to the state
+// captured by a snapshot.
+// BETA: This feature is part of a beta release. This API might be
// changed in backward-incompatible ways and is not recommended for production
// use. It is not subject to any SLA or deprecation policy.
func (c *SubscriberClient) ListSnapshots(ctx context.Context, req *pubsubpb.ListSnapshotsRequest, opts ...gax.CallOption) *SnapshotIterator {
@@ -432,8 +438,14 @@ func (c *SubscriberClient) ListSnapshots(ctx context.Context, req *pubsubpb.List
return it
}
-// CreateSnapshot creates a snapshot from the requested subscription.
-// ALPHA: This feature is part of an alpha release. This API might be
+// CreateSnapshot creates a snapshot from the requested subscription. Snapshots are used in
+// Seek
+// operations, which allow
+// you to manage message acknowledgments in bulk. That is, you can set the
+// acknowledgment state of messages in an existing subscription to the state
+// captured by a snapshot.
+//
+// BETA: This feature is part of a beta release. This API might be
// changed in backward-incompatible ways and is not recommended for production
// use. It is not subject to any SLA or deprecation policy.
// If the snapshot already exists, returns ALREADY_EXISTS.
@@ -443,10 +455,10 @@ func (c *SubscriberClient) ListSnapshots(ctx context.Context, req *pubsubpb.List
// See also the Snapshot.expire_time field. If the name is not provided in
// the request, the server will assign a random
// name for this snapshot on the same project as the subscription, conforming
-// to the resource name format (at https://cloud.google.com/pubsub/docs/overview#names).
-// The generated
-// name is populated in the returned Snapshot object. Note that for REST API
-// requests, you must specify a name in the request.
+// to the
+// resource name format (at https://cloud.google.com/pubsub/docs/admin#resource_names).
+// The generated name is populated in the returned Snapshot object. Note that
+// for REST API requests, you must specify a name in the request.
func (c *SubscriberClient) CreateSnapshot(ctx context.Context, req *pubsubpb.CreateSnapshotRequest, opts ...gax.CallOption) (*pubsubpb.Snapshot, error) {
ctx = insertMetadata(ctx, c.xGoogMetadata)
opts = append(c.CallOptions.CreateSnapshot[0:len(c.CallOptions.CreateSnapshot):len(c.CallOptions.CreateSnapshot)], opts...)
@@ -462,8 +474,13 @@ func (c *SubscriberClient) CreateSnapshot(ctx context.Context, req *pubsubpb.Cre
return resp, nil
}
-// UpdateSnapshot updates an existing snapshot.
-// ALPHA: This feature is part of an alpha release. This API might be
+// UpdateSnapshot updates an existing snapshot. Snapshots are used in
+// Seek
+// operations, which allow
+// you to manage message acknowledgments in bulk. That is, you can set the
+// acknowledgment state of messages in an existing subscription to the state
+// captured by a snapshot.
+// BETA: This feature is part of a beta release. This API might be
// changed in backward-incompatible ways and is not recommended for production
// use. It is not subject to any SLA or deprecation policy.
// Note that certain properties of a snapshot are not modifiable.
@@ -482,8 +499,13 @@ func (c *SubscriberClient) UpdateSnapshot(ctx context.Context, req *pubsubpb.Upd
return resp, nil
}
-// DeleteSnapshot removes an existing snapshot.
-// ALPHA: This feature is part of an alpha release. This API might be
+// DeleteSnapshot removes an existing snapshot. Snapshots are used in
+// Seek
+// operations, which allow
+// you to manage message acknowledgments in bulk. That is, you can set the
+// acknowledgment state of messages in an existing subscription to the state
+// captured by a snapshot.
+// BETA: This feature is part of a beta release. This API might be
// changed in backward-incompatible ways and is not recommended for production
// use. It is not subject to any SLA or deprecation policy.
// When the snapshot is deleted, all messages retained in the snapshot
@@ -502,8 +524,14 @@ func (c *SubscriberClient) DeleteSnapshot(ctx context.Context, req *pubsubpb.Del
}
// Seek seeks an existing subscription to a point in time or to a given snapshot,
-// whichever is provided in the request.
-// ALPHA: This feature is part of an alpha release. This API might be
+// whichever is provided in the request. Snapshots are used in
+// Seek
+// operations, which allow
+// you to manage message acknowledgments in bulk. That is, you can set the
+// acknowledgment state of messages in an existing subscription to the state
+// captured by a snapshot. Note that both the subscription and the snapshot
+// must be on the same topic.
+// BETA: This feature is part of a beta release. This API might be
// changed in backward-incompatible ways and is not recommended for production
// use. It is not subject to any SLA or deprecation policy.
func (c *SubscriberClient) Seek(ctx context.Context, req *pubsubpb.SeekRequest, opts ...gax.CallOption) (*pubsubpb.SeekResponse, error) {
diff --git a/vendor/cloud.google.com/go/pubsub/iterator.go b/vendor/cloud.google.com/go/pubsub/iterator.go
index 5b3415e421..f2987454c2 100644
--- a/vendor/cloud.google.com/go/pubsub/iterator.go
+++ b/vendor/cloud.google.com/go/pubsub/iterator.go
@@ -22,7 +22,7 @@ import (
vkit "cloud.google.com/go/pubsub/apiv1"
"cloud.google.com/go/pubsub/internal/distribution"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
pb "google.golang.org/genproto/googleapis/pubsub/v1"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
@@ -63,8 +63,6 @@ type messageIterator struct {
pendingNacks map[string]bool
pendingModAcks map[string]bool // ack IDs whose ack deadline is to be modified
err error // error from stream failure
-
- minAckDeadline time.Duration
}
// newMessageIterator starts and returns a new messageIterator.
@@ -214,7 +212,7 @@ func (it *messageIterator) receive(maxToPull int32) ([]*Message, error) {
it.keepAliveDeadlines[m.ackID] = maxExt
// Don't change the mod-ack if the message is going to be nacked. This is
// possible if there are retries.
- if !it.pendingNacks[m.ackID] && !it.po.synchronous {
+ if !it.pendingNacks[m.ackID] {
ackIDs[m.ackID] = true
}
}
diff --git a/vendor/cloud.google.com/go/pubsub/pstest/fake.go b/vendor/cloud.google.com/go/pubsub/pstest/fake.go
index 448c4c9328..7cc1177091 100644
--- a/vendor/cloud.google.com/go/pubsub/pstest/fake.go
+++ b/vendor/cloud.google.com/go/pubsub/pstest/fake.go
@@ -60,11 +60,13 @@ func timeNow() time.Time {
// Server is a fake Pub/Sub server.
type Server struct {
srv *testutil.Server
- Addr string // The address that the server is listening on.
- gServer gServer
+ Addr string // The address that the server is listening on.
+ GServer GServer // Not intended to be used directly.
}
-type gServer struct {
+// GServer is the underlying service implementor. It is not intended to be used
+// directly.
+type GServer struct {
pb.PublisherServer
pb.SubscriberServer
@@ -87,14 +89,14 @@ func NewServer() *Server {
s := &Server{
srv: srv,
Addr: srv.Addr,
- gServer: gServer{
+ GServer: GServer{
topics: map[string]*topic{},
subs: map[string]*subscription{},
msgsByID: map[string]*Message{},
},
}
- pb.RegisterPublisherServer(srv.Gsrv, &s.gServer)
- pb.RegisterSubscriberServer(srv.Gsrv, &s.gServer)
+ pb.RegisterPublisherServer(srv.Gsrv, &s.GServer)
+ pb.RegisterSubscriberServer(srv.Gsrv, &s.GServer)
srv.Start()
return s
}
@@ -113,12 +115,12 @@ func (s *Server) Publish(topic string, data []byte, attrs map[string]string) str
if !ok {
panic(fmt.Sprintf("topic name must be of the form %q", topicPattern))
}
- _, _ = s.gServer.CreateTopic(context.TODO(), &pb.Topic{Name: topic})
+ _, _ = s.GServer.CreateTopic(context.TODO(), &pb.Topic{Name: topic})
req := &pb.PublishRequest{
Topic: topic,
Messages: []*pb.PubsubMessage{{Data: data, Attributes: attrs}},
}
- res, err := s.gServer.Publish(context.TODO(), req)
+ res, err := s.GServer.Publish(context.TODO(), req)
if err != nil {
panic(fmt.Sprintf("pstest.Server.Publish: %v", err))
}
@@ -130,9 +132,9 @@ func (s *Server) Publish(topic string, data []byte, attrs map[string]string) str
// minutes. If SetStreamTimeout is never called or is passed zero, streams never shut
// down.
func (s *Server) SetStreamTimeout(d time.Duration) {
- s.gServer.mu.Lock()
- defer s.gServer.mu.Unlock()
- s.gServer.streamTimeout = d
+ s.GServer.mu.Lock()
+ defer s.GServer.mu.Unlock()
+ s.GServer.streamTimeout = d
}
// A Message is a message that was published to the server.
@@ -160,11 +162,11 @@ type Modack struct {
// Messages returns information about all messages ever published.
func (s *Server) Messages() []*Message {
- s.gServer.mu.Lock()
- defer s.gServer.mu.Unlock()
+ s.GServer.mu.Lock()
+ defer s.GServer.mu.Unlock()
var msgs []*Message
- for _, m := range s.gServer.msgs {
+ for _, m := range s.GServer.msgs {
m.Deliveries = m.deliveries
m.Acks = m.acks
msgs = append(msgs, m)
@@ -175,10 +177,10 @@ func (s *Server) Messages() []*Message {
// Message returns the message with the given ID, or nil if no message
// with that ID was published.
func (s *Server) Message(id string) *Message {
- s.gServer.mu.Lock()
- defer s.gServer.mu.Unlock()
+ s.GServer.mu.Lock()
+ defer s.GServer.mu.Unlock()
- m := s.gServer.msgsByID[id]
+ m := s.GServer.msgsByID[id]
if m != nil {
m.Deliveries = m.deliveries
m.Acks = m.acks
@@ -188,21 +190,21 @@ func (s *Server) Message(id string) *Message {
// Wait blocks until all server activity has completed.
func (s *Server) Wait() {
- s.gServer.wg.Wait()
+ s.GServer.wg.Wait()
}
// Close shuts down the server and releases all resources.
func (s *Server) Close() error {
s.srv.Close()
- s.gServer.mu.Lock()
- defer s.gServer.mu.Unlock()
- for _, sub := range s.gServer.subs {
+ s.GServer.mu.Lock()
+ defer s.GServer.mu.Unlock()
+ for _, sub := range s.GServer.subs {
sub.stop()
}
return nil
}
-func (s *gServer) CreateTopic(_ context.Context, t *pb.Topic) (*pb.Topic, error) {
+func (s *GServer) CreateTopic(_ context.Context, t *pb.Topic) (*pb.Topic, error) {
s.mu.Lock()
defer s.mu.Unlock()
@@ -214,7 +216,7 @@ func (s *gServer) CreateTopic(_ context.Context, t *pb.Topic) (*pb.Topic, error)
return top.proto, nil
}
-func (s *gServer) GetTopic(_ context.Context, req *pb.GetTopicRequest) (*pb.Topic, error) {
+func (s *GServer) GetTopic(_ context.Context, req *pb.GetTopicRequest) (*pb.Topic, error) {
s.mu.Lock()
defer s.mu.Unlock()
@@ -224,7 +226,7 @@ func (s *gServer) GetTopic(_ context.Context, req *pb.GetTopicRequest) (*pb.Topi
return nil, status.Errorf(codes.NotFound, "topic %q", req.Topic)
}
-func (s *gServer) UpdateTopic(_ context.Context, req *pb.UpdateTopicRequest) (*pb.Topic, error) {
+func (s *GServer) UpdateTopic(_ context.Context, req *pb.UpdateTopicRequest) (*pb.Topic, error) {
s.mu.Lock()
defer s.mu.Unlock()
@@ -245,7 +247,7 @@ func (s *gServer) UpdateTopic(_ context.Context, req *pb.UpdateTopicRequest) (*p
return t.proto, nil
}
-func (s *gServer) ListTopics(_ context.Context, req *pb.ListTopicsRequest) (*pb.ListTopicsResponse, error) {
+func (s *GServer) ListTopics(_ context.Context, req *pb.ListTopicsRequest) (*pb.ListTopicsResponse, error) {
s.mu.Lock()
defer s.mu.Unlock()
@@ -267,7 +269,7 @@ func (s *gServer) ListTopics(_ context.Context, req *pb.ListTopicsRequest) (*pb.
return res, nil
}
-func (s *gServer) ListTopicSubscriptions(_ context.Context, req *pb.ListTopicSubscriptionsRequest) (*pb.ListTopicSubscriptionsResponse, error) {
+func (s *GServer) ListTopicSubscriptions(_ context.Context, req *pb.ListTopicSubscriptionsRequest) (*pb.ListTopicSubscriptionsResponse, error) {
s.mu.Lock()
defer s.mu.Unlock()
@@ -288,7 +290,7 @@ func (s *gServer) ListTopicSubscriptions(_ context.Context, req *pb.ListTopicSub
}, nil
}
-func (s *gServer) DeleteTopic(_ context.Context, req *pb.DeleteTopicRequest) (*emptypb.Empty, error) {
+func (s *GServer) DeleteTopic(_ context.Context, req *pb.DeleteTopicRequest) (*emptypb.Empty, error) {
s.mu.Lock()
defer s.mu.Unlock()
@@ -301,7 +303,7 @@ func (s *gServer) DeleteTopic(_ context.Context, req *pb.DeleteTopicRequest) (*e
return &emptypb.Empty{}, nil
}
-func (s *gServer) CreateSubscription(_ context.Context, ps *pb.Subscription) (*pb.Subscription, error) {
+func (s *GServer) CreateSubscription(_ context.Context, ps *pb.Subscription) (*pb.Subscription, error) {
s.mu.Lock()
defer s.mu.Unlock()
@@ -382,7 +384,7 @@ func checkMRD(pmrd *durpb.Duration) error {
return nil
}
-func (s *gServer) GetSubscription(_ context.Context, req *pb.GetSubscriptionRequest) (*pb.Subscription, error) {
+func (s *GServer) GetSubscription(_ context.Context, req *pb.GetSubscriptionRequest) (*pb.Subscription, error) {
s.mu.Lock()
defer s.mu.Unlock()
sub, err := s.findSubscription(req.Subscription)
@@ -392,7 +394,7 @@ func (s *gServer) GetSubscription(_ context.Context, req *pb.GetSubscriptionRequ
return sub.proto, nil
}
-func (s *gServer) UpdateSubscription(_ context.Context, req *pb.UpdateSubscriptionRequest) (*pb.Subscription, error) {
+func (s *GServer) UpdateSubscription(_ context.Context, req *pb.UpdateSubscriptionRequest) (*pb.Subscription, error) {
if req.Subscription == nil {
return nil, status.Errorf(codes.InvalidArgument, "missing subscription")
}
@@ -433,7 +435,7 @@ func (s *gServer) UpdateSubscription(_ context.Context, req *pb.UpdateSubscripti
return sub.proto, nil
}
-func (s *gServer) ListSubscriptions(_ context.Context, req *pb.ListSubscriptionsRequest) (*pb.ListSubscriptionsResponse, error) {
+func (s *GServer) ListSubscriptions(_ context.Context, req *pb.ListSubscriptionsRequest) (*pb.ListSubscriptionsResponse, error) {
s.mu.Lock()
defer s.mu.Unlock()
@@ -455,7 +457,7 @@ func (s *gServer) ListSubscriptions(_ context.Context, req *pb.ListSubscriptions
return res, nil
}
-func (s *gServer) DeleteSubscription(_ context.Context, req *pb.DeleteSubscriptionRequest) (*emptypb.Empty, error) {
+func (s *GServer) DeleteSubscription(_ context.Context, req *pb.DeleteSubscriptionRequest) (*emptypb.Empty, error) {
s.mu.Lock()
defer s.mu.Unlock()
sub, err := s.findSubscription(req.Subscription)
@@ -468,7 +470,7 @@ func (s *gServer) DeleteSubscription(_ context.Context, req *pb.DeleteSubscripti
return &emptypb.Empty{}, nil
}
-func (s *gServer) Publish(_ context.Context, req *pb.PublishRequest) (*pb.PublishResponse, error) {
+func (s *GServer) Publish(_ context.Context, req *pb.PublishRequest) (*pb.PublishResponse, error) {
s.mu.Lock()
defer s.mu.Unlock()
@@ -586,7 +588,7 @@ func (s *subscription) stop() {
close(s.done)
}
-func (s *gServer) Acknowledge(_ context.Context, req *pb.AcknowledgeRequest) (*emptypb.Empty, error) {
+func (s *GServer) Acknowledge(_ context.Context, req *pb.AcknowledgeRequest) (*emptypb.Empty, error) {
s.mu.Lock()
defer s.mu.Unlock()
@@ -600,7 +602,7 @@ func (s *gServer) Acknowledge(_ context.Context, req *pb.AcknowledgeRequest) (*e
return &emptypb.Empty{}, nil
}
-func (s *gServer) ModifyAckDeadline(_ context.Context, req *pb.ModifyAckDeadlineRequest) (*emptypb.Empty, error) {
+func (s *GServer) ModifyAckDeadline(_ context.Context, req *pb.ModifyAckDeadlineRequest) (*emptypb.Empty, error) {
s.mu.Lock()
defer s.mu.Unlock()
sub, err := s.findSubscription(req.Subscription)
@@ -618,7 +620,7 @@ func (s *gServer) ModifyAckDeadline(_ context.Context, req *pb.ModifyAckDeadline
return &emptypb.Empty{}, nil
}
-func (s *gServer) Pull(ctx context.Context, req *pb.PullRequest) (*pb.PullResponse, error) {
+func (s *GServer) Pull(ctx context.Context, req *pb.PullRequest) (*pb.PullResponse, error) {
s.mu.Lock()
sub, err := s.findSubscription(req.Subscription)
if err != nil {
@@ -655,7 +657,7 @@ func (s *gServer) Pull(ctx context.Context, req *pb.PullRequest) (*pb.PullRespon
return &pb.PullResponse{ReceivedMessages: msgs}, nil
}
-func (s *gServer) StreamingPull(sps pb.Subscriber_StreamingPullServer) error {
+func (s *GServer) StreamingPull(sps pb.Subscriber_StreamingPullServer) error {
// Receive initial message configuring the pull.
req, err := sps.Recv()
if err != nil {
@@ -674,7 +676,7 @@ func (s *gServer) StreamingPull(sps pb.Subscriber_StreamingPullServer) error {
return err
}
-func (s *gServer) Seek(ctx context.Context, req *pb.SeekRequest) (*pb.SeekResponse, error) {
+func (s *GServer) Seek(ctx context.Context, req *pb.SeekRequest) (*pb.SeekResponse, error) {
// Only handle time-based seeking for now.
// This fake doesn't deal with snapshots.
var target time.Time
@@ -729,7 +731,7 @@ func (s *gServer) Seek(ctx context.Context, req *pb.SeekRequest) (*pb.SeekRespon
// Gets a subscription that must exist.
// Must be called with the lock held.
-func (s *gServer) findSubscription(name string) (*subscription, error) {
+func (s *GServer) findSubscription(name string) (*subscription, error) {
if name == "" {
return nil, status.Errorf(codes.InvalidArgument, "missing subscription")
}
diff --git a/vendor/cloud.google.com/go/pubsub/pubsub.go b/vendor/cloud.google.com/go/pubsub/pubsub.go
index 83f6731d15..cce9d6b250 100644
--- a/vendor/cloud.google.com/go/pubsub/pubsub.go
+++ b/vendor/cloud.google.com/go/pubsub/pubsub.go
@@ -37,8 +37,6 @@ const (
// across Google Cloud Platform services.
ScopeCloudPlatform = "https://www.googleapis.com/auth/cloud-platform"
- prodAddr = "https://pubsub.googleapis.com/"
-
maxAckDeadline = 10 * time.Minute
)
diff --git a/vendor/cloud.google.com/go/pubsub/pullstream.go b/vendor/cloud.google.com/go/pubsub/pullstream.go
index 5a50ff99fa..1c332ef202 100644
--- a/vendor/cloud.google.com/go/pubsub/pullstream.go
+++ b/vendor/cloud.google.com/go/pubsub/pullstream.go
@@ -20,7 +20,7 @@ import (
"sync"
"time"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
pb "google.golang.org/genproto/googleapis/pubsub/v1"
"google.golang.org/grpc"
)
@@ -95,13 +95,14 @@ func (s *pullStream) get(spc *pb.Subscriber_StreamingPullClient) (*pb.Subscriber
}
func (s *pullStream) openWithRetry() (pb.Subscriber_StreamingPullClient, error) {
- var bo gax.Backoff
+ r := defaultRetryer{}
for {
recordStat(s.ctx, StreamOpenCount, 1)
spc, err := s.open()
- if err != nil && isRetryable(err) {
+ bo, shouldRetry := r.Retry(err)
+ if err != nil && shouldRetry {
recordStat(s.ctx, StreamRetryCount, 1)
- if err := gax.Sleep(s.ctx, bo.Pause()); err != nil {
+ if err := gax.Sleep(s.ctx, bo); err != nil {
return nil, err
}
continue
@@ -110,11 +111,19 @@ func (s *pullStream) openWithRetry() (pb.Subscriber_StreamingPullClient, error)
}
}
-func (s *pullStream) call(f func(pb.Subscriber_StreamingPullClient) error) error {
+func (s *pullStream) call(f func(pb.Subscriber_StreamingPullClient) error, opts ...gax.CallOption) error {
+ var settings gax.CallSettings
+ for _, opt := range opts {
+ opt.Resolve(&settings)
+ }
+ var r gax.Retryer = &defaultRetryer{}
+ if settings.Retry != nil {
+ r = settings.Retry()
+ }
+
var (
spc *pb.Subscriber_StreamingPullClient
err error
- bo gax.Backoff
)
for {
spc, err = s.get(spc)
@@ -124,10 +133,11 @@ func (s *pullStream) call(f func(pb.Subscriber_StreamingPullClient) error) error
start := time.Now()
err = f(*spc)
if err != nil {
- if isRetryable(err) {
+ bo, shouldRetry := r.Retry(err)
+ if shouldRetry {
recordStat(s.ctx, StreamRetryCount, 1)
if time.Since(start) < 30*time.Second { // don't sleep if we've been blocked for a while
- if err := gax.Sleep(s.ctx, bo.Pause()); err != nil {
+ if err := gax.Sleep(s.ctx, bo); err != nil {
return err
}
}
@@ -167,7 +177,7 @@ func (s *pullStream) Recv() (*pb.StreamingPullResponse, error) {
recordStat(s.ctx, PullCount, int64(len(res.ReceivedMessages)))
}
return err
- })
+ }, gax.WithRetry(func() gax.Retryer { return &streamingPullRetryer{defaultRetryer: &defaultRetryer{}} }))
return res, err
}
diff --git a/vendor/cloud.google.com/go/pubsub/service.go b/vendor/cloud.google.com/go/pubsub/service.go
index 63d4aa4edd..b7358fe67d 100644
--- a/vendor/cloud.google.com/go/pubsub/service.go
+++ b/vendor/cloud.google.com/go/pubsub/service.go
@@ -18,7 +18,9 @@ import (
"fmt"
"math"
"strings"
+ "time"
+ gax "github.com/googleapis/gax-go/v2"
pb "google.golang.org/genproto/googleapis/pubsub/v1"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
@@ -61,18 +63,45 @@ func trunc32(i int64) int32 {
return int32(i)
}
-// Logic from https://github.com/GoogleCloudPlatform/google-cloud-java/blob/master/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/StatusUtil.java
-func isRetryable(err error) bool {
+type defaultRetryer struct {
+ bo gax.Backoff
+}
+
+// Logic originally from
+// https://github.com/GoogleCloudPlatform/google-cloud-java/blob/master/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/StatusUtil.java
+func (r *defaultRetryer) Retry(err error) (pause time.Duration, shouldRetry bool) {
s, ok := status.FromError(err)
if !ok { // includes io.EOF, normal stream close, which causes us to reopen
- return true
+ return r.bo.Pause(), true
}
switch s.Code() {
- case codes.DeadlineExceeded, codes.Internal, codes.ResourceExhausted:
- return true
+ case codes.DeadlineExceeded, codes.Internal, codes.ResourceExhausted, codes.Aborted:
+ return r.bo.Pause(), true
case codes.Unavailable:
- return !strings.Contains(s.Message(), "Server shutdownNow invoked")
+ c := strings.Contains(s.Message(), "Server shutdownNow invoked")
+ if !c {
+ return r.bo.Pause(), true
+ }
+ return 0, false
+ default:
+ return 0, false
+ }
+}
+
+type streamingPullRetryer struct {
+ defaultRetryer gax.Retryer
+}
+
+// Does not retry ResourceExhausted. See: https://github.com/GoogleCloudPlatform/google-cloud-go/issues/1166#issuecomment-443744705
+func (r *streamingPullRetryer) Retry(err error) (pause time.Duration, shouldRetry bool) {
+ s, ok := status.FromError(err)
+ if !ok { // call defaultRetryer so that its backoff can be used
+ return r.defaultRetryer.Retry(err)
+ }
+ switch s.Code() {
+ case codes.ResourceExhausted:
+ return 0, false
default:
- return false
+ return r.defaultRetryer.Retry(err)
}
}
diff --git a/vendor/cloud.google.com/go/pubsub/subscription.go b/vendor/cloud.google.com/go/pubsub/subscription.go
index 09f9dbc494..4620c565ed 100644
--- a/vendor/cloud.google.com/go/pubsub/subscription.go
+++ b/vendor/cloud.google.com/go/pubsub/subscription.go
@@ -27,7 +27,7 @@ import (
"cloud.google.com/go/internal/optional"
"github.com/golang/protobuf/ptypes"
durpb "github.com/golang/protobuf/ptypes/duration"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"golang.org/x/sync/errgroup"
pb "google.golang.org/genproto/googleapis/pubsub/v1"
fmpb "google.golang.org/genproto/protobuf/field_mask"
diff --git a/vendor/cloud.google.com/go/pubsub/topic.go b/vendor/cloud.google.com/go/pubsub/topic.go
index a9dc97e218..cc62bf192b 100644
--- a/vendor/cloud.google.com/go/pubsub/topic.go
+++ b/vendor/cloud.google.com/go/pubsub/topic.go
@@ -25,7 +25,7 @@ import (
"cloud.google.com/go/iam"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/support/bundler"
pb "google.golang.org/genproto/googleapis/pubsub/v1"
fmpb "google.golang.org/genproto/protobuf/field_mask"
@@ -63,8 +63,6 @@ type Topic struct {
mu sync.RWMutex
stopped bool
bundler *bundler.Bundler
-
- wg sync.WaitGroup
}
// PublishSettings control the bundling of published messages.
diff --git a/vendor/cloud.google.com/go/redis/apiv1/cloud_redis_client.go b/vendor/cloud.google.com/go/redis/apiv1/cloud_redis_client.go
index e7d421cb67..46b97f2f25 100644
--- a/vendor/cloud.google.com/go/redis/apiv1/cloud_redis_client.go
+++ b/vendor/cloud.google.com/go/redis/apiv1/cloud_redis_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package redis
@@ -24,7 +24,7 @@ import (
"cloud.google.com/go/longrunning"
lroauto "cloud.google.com/go/longrunning/autogen"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/redis/apiv1/doc.go b/vendor/cloud.google.com/go/redis/apiv1/doc.go
index 641394b6a6..98fc3e7e0e 100644
--- a/vendor/cloud.google.com/go/redis/apiv1/doc.go
+++ b/vendor/cloud.google.com/go/redis/apiv1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package redis is an auto-generated package for the
// Google Cloud Memorystore for Redis API.
@@ -87,4 +87,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/redis/apiv1beta1/cloud_redis_client.go b/vendor/cloud.google.com/go/redis/apiv1beta1/cloud_redis_client.go
index a3d4ff0f86..a5e91d5a8f 100644
--- a/vendor/cloud.google.com/go/redis/apiv1beta1/cloud_redis_client.go
+++ b/vendor/cloud.google.com/go/redis/apiv1beta1/cloud_redis_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package redis
@@ -25,7 +25,7 @@ import (
lroauto "cloud.google.com/go/longrunning/autogen"
"github.com/golang/protobuf/proto"
anypb "github.com/golang/protobuf/ptypes/any"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/redis/apiv1beta1/doc.go b/vendor/cloud.google.com/go/redis/apiv1beta1/doc.go
index 951cfb5c29..df322efc55 100644
--- a/vendor/cloud.google.com/go/redis/apiv1beta1/doc.go
+++ b/vendor/cloud.google.com/go/redis/apiv1beta1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package redis is an auto-generated package for the
// Google Cloud Memorystore for Redis API.
//
-// NOTE: This package is in alpha. It is not stable, and is likely to change.
+// NOTE: This package is in beta. It is not stable, and may be subject to changes.
//
// The Google Cloud Memorystore for Redis API is used for creating and
// managing
@@ -88,4 +88,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/rpcreplay/doc.go b/vendor/cloud.google.com/go/rpcreplay/doc.go
index 90455555f2..9cfc84e877 100644
--- a/vendor/cloud.google.com/go/rpcreplay/doc.go
+++ b/vendor/cloud.google.com/go/rpcreplay/doc.go
@@ -50,6 +50,13 @@ have to be as careful about the error returned from Close).
defer rep.Close()
conn, err := grpc.Dial(serverAddress, rep.DialOptions()...)
+Since a real connection isn't necessary for replay, you can get a fake
+one from the replayer instead of calling grpc.Dial:
+
+ rep, err := rpcreplay.NewReplayer("service.replay")
+ if err != nil { ... }
+ defer rep.Close()
+ conn, err := rep.Connection()
Initial State
@@ -75,18 +82,19 @@ On replay, get the bytes from Replayer.Initial:
if err != nil { ... }
-Callbacks that modify what is saved and matched from the replay file
+Callbacks
-Recorders and replayers have support for running callbacks before messages are written/read
-from the replay file. A Recorder has a BeforeFunc that can modify a request or response
-before it is written to the replay file. The actual RPCs sent to the service during recording
-remain unaltered; only what is saved in the replay file can be changed.A Replayer has a
-BeforeFunc that can modify a request before it is sent for matching.
+Recorders and replayers have support for running callbacks before messages are
+written to or read from the replay file. A Recorder has a BeforeFunc that can modify
+a request or response before it is written to the replay file. The actual RPCs sent
+to the service during recording remain unaltered; only what is saved in the replay
+file can be changed. A Replayer has a BeforeFunc that can modify a request before it
+is sent for matching.
-Example uses for these callbacks include customized logging, or scrubbing data
-before RPCs are written to the replay file. If requests are modified by the callbacks during recording,
-it is important to perform the same modifications to the requests when replaying, or RPC
-matching on replay will fail.
+Example uses for these callbacks include customized logging, or scrubbing data before
+RPCs are written to the replay file. If requests are modified by the callbacks during
+recording, it is important to perform the same modifications to the requests when
+replaying, or RPC matching on replay will fail.
A common way to analyze and modify the various messages is to use a type switch.
diff --git a/vendor/cloud.google.com/go/rpcreplay/rpcreplay.go b/vendor/cloud.google.com/go/rpcreplay/rpcreplay.go
index 215b9686f3..5151accc3a 100644
--- a/vendor/cloud.google.com/go/rpcreplay/rpcreplay.go
+++ b/vendor/cloud.google.com/go/rpcreplay/rpcreplay.go
@@ -22,6 +22,7 @@ import (
"fmt"
"io"
"log"
+ "net"
"os"
"sync"
@@ -373,6 +374,31 @@ func (rep *Replayer) DialOptions() []grpc.DialOption {
}
}
+// Connection returns a fake gRPC connection suitable for replaying.
+func (rep *Replayer) Connection() (*grpc.ClientConn, error) {
+ // We don't need an actual connection, not even a loopback one.
+ // But we do need something to attach gRPC interceptors to.
+ // So we start a local server and connect to it, then close it down.
+ srv := grpc.NewServer()
+ l, err := net.Listen("tcp", "127.0.0.1:0")
+ if err != nil {
+ return nil, err
+ }
+ go func() {
+ if err := srv.Serve(l); err != nil {
+ panic(err) // we should never get an error because we just connect and stop
+ }
+ }()
+ conn, err := grpc.Dial(l.Addr().String(),
+ append([]grpc.DialOption{grpc.WithInsecure()}, rep.DialOptions()...)...)
+ if err != nil {
+ return nil, err
+ }
+ conn.Close()
+ srv.Stop()
+ return conn, nil
+}
+
// Initial returns the initial state saved by the Recorder.
func (rep *Replayer) Initial() []byte { return rep.initial }
diff --git a/vendor/cloud.google.com/go/scheduler/apiv1beta1/cloud_scheduler_client.go b/vendor/cloud.google.com/go/scheduler/apiv1beta1/cloud_scheduler_client.go
index c14c48c473..37fd1e5302 100644
--- a/vendor/cloud.google.com/go/scheduler/apiv1beta1/cloud_scheduler_client.go
+++ b/vendor/cloud.google.com/go/scheduler/apiv1beta1/cloud_scheduler_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package scheduler
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/scheduler/apiv1beta1/doc.go b/vendor/cloud.google.com/go/scheduler/apiv1beta1/doc.go
index 1fbb60a8f9..fc66140083 100644
--- a/vendor/cloud.google.com/go/scheduler/apiv1beta1/doc.go
+++ b/vendor/cloud.google.com/go/scheduler/apiv1beta1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package scheduler is an auto-generated package for the
// Cloud Scheduler API.
//
-// NOTE: This package is in alpha. It is not stable, and is likely to change.
+// NOTE: This package is in beta. It is not stable, and may be subject to changes.
//
// Creates and manages jobs run on a regular recurring schedule.
package scheduler // import "cloud.google.com/go/scheduler/apiv1beta1"
@@ -86,4 +86,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/securitycenter/apiv1beta1/doc.go b/vendor/cloud.google.com/go/securitycenter/apiv1beta1/doc.go
index 65c6e99561..c9f0358b98 100644
--- a/vendor/cloud.google.com/go/securitycenter/apiv1beta1/doc.go
+++ b/vendor/cloud.google.com/go/securitycenter/apiv1beta1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,14 +12,15 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package securitycenter is an auto-generated package for the
// Cloud Security Command Center API.
//
-// NOTE: This package is in alpha. It is not stable, and is likely to change.
+// NOTE: This package is in beta. It is not stable, and may be subject to changes.
//
-// The public Cloud Security Command Center API.
+// Cloud Security Command Center API provides access to temporal views of
+// assets and findings within an organization.
package securitycenter // import "cloud.google.com/go/securitycenter/apiv1beta1"
import (
@@ -86,4 +87,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/securitycenter/apiv1beta1/security_center_client.go b/vendor/cloud.google.com/go/securitycenter/apiv1beta1/security_center_client.go
index 4318fe8efd..3cb3a0f478 100644
--- a/vendor/cloud.google.com/go/securitycenter/apiv1beta1/security_center_client.go
+++ b/vendor/cloud.google.com/go/securitycenter/apiv1beta1/security_center_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package securitycenter
@@ -24,7 +24,7 @@ import (
"cloud.google.com/go/longrunning"
lroauto "cloud.google.com/go/longrunning/autogen"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/spanner/admin/database/apiv1/database_admin_client.go b/vendor/cloud.google.com/go/spanner/admin/database/apiv1/database_admin_client.go
index a75dfebdf0..25afc5e77c 100644
--- a/vendor/cloud.google.com/go/spanner/admin/database/apiv1/database_admin_client.go
+++ b/vendor/cloud.google.com/go/spanner/admin/database/apiv1/database_admin_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package database
@@ -24,7 +24,7 @@ import (
"cloud.google.com/go/longrunning"
lroauto "cloud.google.com/go/longrunning/autogen"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/spanner/admin/database/apiv1/doc.go b/vendor/cloud.google.com/go/spanner/admin/database/apiv1/doc.go
index 55fbf1e07d..9ae4794346 100644
--- a/vendor/cloud.google.com/go/spanner/admin/database/apiv1/doc.go
+++ b/vendor/cloud.google.com/go/spanner/admin/database/apiv1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package database is an auto-generated package for the
// Cloud Spanner Database Admin API.
@@ -86,4 +86,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/spanner/admin/instance/apiv1/doc.go b/vendor/cloud.google.com/go/spanner/admin/instance/apiv1/doc.go
index 49cda55b08..fdd19f1291 100644
--- a/vendor/cloud.google.com/go/spanner/admin/instance/apiv1/doc.go
+++ b/vendor/cloud.google.com/go/spanner/admin/instance/apiv1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package instance is an auto-generated package for the
// Cloud Spanner Instance Admin API.
@@ -86,4 +86,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/spanner/admin/instance/apiv1/instance_admin_client.go b/vendor/cloud.google.com/go/spanner/admin/instance/apiv1/instance_admin_client.go
index 1a7df8fce5..d65742d187 100644
--- a/vendor/cloud.google.com/go/spanner/admin/instance/apiv1/instance_admin_client.go
+++ b/vendor/cloud.google.com/go/spanner/admin/instance/apiv1/instance_admin_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package instance
@@ -24,7 +24,7 @@ import (
"cloud.google.com/go/longrunning"
lroauto "cloud.google.com/go/longrunning/autogen"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/spanner/apiv1/doc.go b/vendor/cloud.google.com/go/spanner/apiv1/doc.go
index 34fdd0bf46..cecb3912c9 100644
--- a/vendor/cloud.google.com/go/spanner/apiv1/doc.go
+++ b/vendor/cloud.google.com/go/spanner/apiv1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,12 +12,11 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package spanner is an auto-generated package for the
// Cloud Spanner API.
-//
-// NOTE: This package is in alpha. It is not stable, and is likely to change.
+
//
// Cloud Spanner is a managed, mission-critical, globally consistent and
// scalable relational database service.
@@ -90,4 +89,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/spanner/apiv1/spanner_client.go b/vendor/cloud.google.com/go/spanner/apiv1/spanner_client.go
index 8db16f2c52..9796d32d87 100644
--- a/vendor/cloud.google.com/go/spanner/apiv1/spanner_client.go
+++ b/vendor/cloud.google.com/go/spanner/apiv1/spanner_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package spanner
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/spanner/client.go b/vendor/cloud.google.com/go/spanner/client.go
index 44ffbac0de..53913be0a3 100644
--- a/vendor/cloud.google.com/go/spanner/client.go
+++ b/vendor/cloud.google.com/go/spanner/client.go
@@ -87,7 +87,6 @@ type ClientConfig struct {
// NumChannels is the number of gRPC channels.
// If zero, a reasonable default is used based on the execution environment.
NumChannels int
- co []option.ClientOption
// SessionPoolConfig is the configuration for session pool.
SessionPoolConfig
// SessionLabels for the sessions created by this client.
@@ -120,8 +119,8 @@ func NewClient(ctx context.Context, database string, opts ...option.ClientOption
// NewClientWithConfig creates a client to a database. A valid database name has the
// form projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID.
func NewClientWithConfig(ctx context.Context, database string, config ClientConfig, opts ...option.ClientOption) (c *Client, err error) {
- ctx = traceStartSpan(ctx, "cloud.google.com/go/spanner.NewClient")
- defer func() { traceEndSpan(ctx, err) }()
+ ctx = startSpan(ctx, "cloud.google.com/go/spanner.NewClient")
+ defer func() { endSpan(ctx, err) }()
// Validate database path.
if err := validDatabaseName(database); err != nil {
@@ -342,18 +341,21 @@ func checkNestedTxn(ctx context.Context) error {
// The function f will be called one or more times. It must not maintain
// any state between calls.
//
-// If the transaction cannot be committed or if f returns an IsAborted error,
+// If the transaction cannot be committed or if f returns an ABORTED error,
// ReadWriteTransaction will call f again. It will continue to call f until the
// transaction can be committed or the Context times out or is cancelled. If f
-// returns an error other than IsAborted, ReadWriteTransaction will abort the
+// returns an error other than ABORTED, ReadWriteTransaction will abort the
// transaction and return the error.
//
// To limit the number of retries, set a deadline on the Context rather than
// using a fixed limit on the number of attempts. ReadWriteTransaction will
// retry as needed until that deadline is met.
+//
+// See https://godoc.org/cloud.google.com/go/spanner#ReadWriteTransaction for
+// more details.
func (c *Client) ReadWriteTransaction(ctx context.Context, f func(context.Context, *ReadWriteTransaction) error) (commitTimestamp time.Time, err error) {
- ctx = traceStartSpan(ctx, "cloud.google.com/go/spanner.ReadWriteTransaction")
- defer func() { traceEndSpan(ctx, err) }()
+ ctx = startSpan(ctx, "cloud.google.com/go/spanner.ReadWriteTransaction")
+ defer func() { endSpan(ctx, err) }()
if err := checkNestedTxn(ctx); err != nil {
return time.Time{}, err
}
@@ -383,7 +385,7 @@ func (c *Client) ReadWriteTransaction(ctx context.Context, f func(context.Contex
}
}
t.txReadOnly.txReadEnv = t
- tracePrintf(ctx, map[string]interface{}{"transactionID": string(sh.getTransactionID())},
+ statsPrintf(ctx, map[string]interface{}{"transactionID": string(sh.getTransactionID())},
"Starting transaction attempt")
if err = t.begin(ctx); err != nil {
// Mask error from begin operation as retryable error.
@@ -436,8 +438,8 @@ func (c *Client) Apply(ctx context.Context, ms []*Mutation, opts ...ApplyOption)
})
}
- ctx = traceStartSpan(ctx, "cloud.google.com/go/spanner.Apply")
- defer func() { traceEndSpan(ctx, err) }()
+ ctx = startSpan(ctx, "cloud.google.com/go/spanner.Apply")
+ defer func() { endSpan(ctx, err) }()
t := &writeOnlyTransaction{c.idleSessions}
return t.applyAtLeastOnce(ctx, ms...)
}
diff --git a/vendor/cloud.google.com/go/spanner/util.go b/vendor/cloud.google.com/go/spanner/cmp.go
similarity index 65%
rename from vendor/cloud.google.com/go/spanner/util.go
rename to vendor/cloud.google.com/go/spanner/cmp.go
index f4f2b25bd3..be1075944c 100644
--- a/vendor/cloud.google.com/go/spanner/util.go
+++ b/vendor/cloud.google.com/go/spanner/cmp.go
@@ -1,5 +1,5 @@
/*
-Copyright 2017 Google LLC
+Copyright 2018 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -16,18 +16,13 @@ limitations under the License.
package spanner
-// maxUint64 returns the maximum of two uint64
-func maxUint64(a, b uint64) uint64 {
- if a > b {
- return a
- }
- return b
-}
+import (
+ "cloud.google.com/go/internal/testutil"
+ "github.com/google/go-cmp/cmp"
+)
-// minUint64 returns the minimum of two uint64
-func minUint64(a, b uint64) uint64 {
- if a > b {
- return b
- }
- return a
+func testEqual(a, b interface{}) bool {
+ return testutil.Equal(a, b,
+ cmp.AllowUnexported(TimestampBound{}, Error{}, Mutation{}, Row{},
+ Partition{}, BatchReadOnlyTransactionID{}))
}
diff --git a/vendor/cloud.google.com/go/spanner/doc.go b/vendor/cloud.google.com/go/spanner/doc.go
index 4954082e89..72e582b5ee 100644
--- a/vendor/cloud.google.com/go/spanner/doc.go
+++ b/vendor/cloud.google.com/go/spanner/doc.go
@@ -19,8 +19,6 @@ Package spanner provides a client for reading and writing to Cloud Spanner
databases. See the packages under admin for clients that operate on databases
and instances.
-Note: This package is in beta. Some backwards-incompatible changes may occur.
-
See https://cloud.google.com/spanner/docs/getting-started/go/ for an introduction
to Cloud Spanner and additional help on using this API.
diff --git a/vendor/cloud.google.com/go/spanner/backoff.go b/vendor/cloud.google.com/go/spanner/internal/backoff/backoff.go
similarity index 80%
rename from vendor/cloud.google.com/go/spanner/backoff.go
rename to vendor/cloud.google.com/go/spanner/internal/backoff/backoff.go
index b2e13e9e4d..3ea2b381f5 100644
--- a/vendor/cloud.google.com/go/spanner/backoff.go
+++ b/vendor/cloud.google.com/go/spanner/internal/backoff/backoff.go
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-package spanner
+package backoff
import (
"math/rand"
@@ -23,7 +23,7 @@ import (
const (
// minBackoff is the minimum backoff used by default.
- minBackoff = 1 * time.Second
+ minBackoff = 100 * time.Millisecond
// maxBackoff is the maximum backoff used by default.
maxBackoff = 32 * time.Second
// jitter is the jitter factor.
@@ -32,16 +32,16 @@ const (
rate = 1.3
)
-var defaultBackoff = exponentialBackoff{minBackoff, maxBackoff}
+var DefaultBackoff = ExponentialBackoff{minBackoff, maxBackoff}
-type exponentialBackoff struct {
- min, max time.Duration
+type ExponentialBackoff struct {
+ Min, Max time.Duration
}
// delay calculates the delay that should happen at n-th
// exponential backoff in a series.
-func (b exponentialBackoff) delay(retries int) time.Duration {
- min, max := float64(b.min), float64(b.max)
+func (b ExponentialBackoff) Delay(retries int) time.Duration {
+ min, max := float64(b.Min), float64(b.Max)
delay := min
for delay < max && retries > 0 {
delay *= rate
diff --git a/vendor/cloud.google.com/go/spanner/internal/testutil/funcmock.go b/vendor/cloud.google.com/go/spanner/internal/testutil/funcmock.go
new file mode 100644
index 0000000000..d6698514ac
--- /dev/null
+++ b/vendor/cloud.google.com/go/spanner/internal/testutil/funcmock.go
@@ -0,0 +1,65 @@
+/*
+Copyright 2018 Google LLC
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package testutil
+
+import (
+ "context"
+
+ sppb "google.golang.org/genproto/googleapis/spanner/v1"
+ "google.golang.org/grpc"
+)
+
+// FuncMock overloads some of MockCloudSpannerClient's methods with pluggable
+// functions.
+//
+// Note: if you overload a method, you're in charge of making sure
+// MockCloudSpannerClient.ReceivedRequests receives the request appropriately.
+type FuncMock struct {
+ CommitFn func(c context.Context, r *sppb.CommitRequest, opts ...grpc.CallOption) (*sppb.CommitResponse, error)
+ BeginTransactionFn func(c context.Context, r *sppb.BeginTransactionRequest, opts ...grpc.CallOption) (*sppb.Transaction, error)
+ GetSessionFn func(c context.Context, r *sppb.GetSessionRequest, opts ...grpc.CallOption) (*sppb.Session, error)
+ CreateSessionFn func(c context.Context, r *sppb.CreateSessionRequest, opts ...grpc.CallOption) (*sppb.Session, error)
+ *MockCloudSpannerClient
+}
+
+func (s FuncMock) Commit(c context.Context, r *sppb.CommitRequest, opts ...grpc.CallOption) (*sppb.CommitResponse, error) {
+ if s.CommitFn == nil {
+ return s.MockCloudSpannerClient.Commit(c, r, opts...)
+ }
+ return s.CommitFn(c, r, opts...)
+}
+
+func (s FuncMock) BeginTransaction(c context.Context, r *sppb.BeginTransactionRequest, opts ...grpc.CallOption) (*sppb.Transaction, error) {
+ if s.BeginTransactionFn == nil {
+ return s.MockCloudSpannerClient.BeginTransaction(c, r, opts...)
+ }
+ return s.BeginTransactionFn(c, r, opts...)
+}
+
+func (s *FuncMock) GetSession(c context.Context, r *sppb.GetSessionRequest, opts ...grpc.CallOption) (*sppb.Session, error) {
+ if s.GetSessionFn == nil {
+ return s.MockCloudSpannerClient.GetSession(c, r, opts...)
+ }
+ return s.GetSessionFn(c, r, opts...)
+}
+
+func (s *FuncMock) CreateSession(c context.Context, r *sppb.CreateSessionRequest, opts ...grpc.CallOption) (*sppb.Session, error) {
+ if s.CreateSessionFn == nil {
+ return s.MockCloudSpannerClient.CreateSession(c, r, opts...)
+ }
+ return s.CreateSessionFn(c, r, opts...)
+}
diff --git a/vendor/cloud.google.com/go/spanner/internal/testutil/mockclient.go b/vendor/cloud.google.com/go/spanner/internal/testutil/mockclient.go
index c2d498afc8..f8084585b1 100644
--- a/vendor/cloud.google.com/go/spanner/internal/testutil/mockclient.go
+++ b/vendor/cloud.google.com/go/spanner/internal/testutil/mockclient.go
@@ -34,12 +34,6 @@ import (
"google.golang.org/grpc/status"
)
-// Action is a mocked RPC activity that MockCloudSpannerClient will take.
-type Action struct {
- Method string
- Err error
-}
-
// MockCloudSpannerClient is a mock implementation of sppb.SpannerClient.
type MockCloudSpannerClient struct {
sppb.SpannerClient
@@ -48,58 +42,30 @@ type MockCloudSpannerClient struct {
t *testing.T
// Live sessions on the client.
sessions map[string]bool
- // Expected set of actions that will be executed by the client.
- actions []Action
// Session ping history.
pings []string
- // Injected error, will be returned by all APIs.
- injErr map[string]error
- // Client will not fail on any request.
- nice bool
// Client will stall on any requests.
freezed chan struct{}
+
+ // Expected set of actions that have been executed by the client. These
+ // interfaces should be type reflected against with *Request types in sppb,
+ // such as sppb.GetSessionRequest. Buffered to a large degree.
+ ReceivedRequests chan interface{}
}
// NewMockCloudSpannerClient creates new MockCloudSpannerClient instance.
-func NewMockCloudSpannerClient(t *testing.T, acts ...Action) *MockCloudSpannerClient {
- mc := &MockCloudSpannerClient{t: t, sessions: map[string]bool{}, injErr: map[string]error{}}
- mc.SetActions(acts...)
+func NewMockCloudSpannerClient(t *testing.T) *MockCloudSpannerClient {
+ mc := &MockCloudSpannerClient{
+ t: t,
+ sessions: map[string]bool{},
+ ReceivedRequests: make(chan interface{}, 100000),
+ }
+
// Produce a closed channel, so the default action of ready is to not block.
mc.Freeze()
mc.Unfreeze()
- return mc
-}
-
-// MakeNice makes this a nice mock which will not fail on any request.
-func (m *MockCloudSpannerClient) MakeNice() {
- m.mu.Lock()
- defer m.mu.Unlock()
- m.nice = true
-}
-
-// MakeStrict makes this a strict mock which will fail on any unexpected request.
-func (m *MockCloudSpannerClient) MakeStrict() {
- m.mu.Lock()
- defer m.mu.Unlock()
- m.nice = false
-}
-// InjectError injects a global error that will be returned by all calls to method
-// regardless of the actions array.
-func (m *MockCloudSpannerClient) InjectError(method string, err error) {
- m.mu.Lock()
- defer m.mu.Unlock()
- m.injErr[method] = err
-}
-
-// SetActions sets the new set of expected actions to MockCloudSpannerClient.
-func (m *MockCloudSpannerClient) SetActions(acts ...Action) {
- m.mu.Lock()
- defer m.mu.Unlock()
- m.actions = nil
- for _, act := range acts {
- m.actions = append(m.actions, act)
- }
+ return mc
}
// DumpPings dumps the ping history.
@@ -123,11 +89,10 @@ func (m *MockCloudSpannerClient) DumpSessions() map[string]bool {
// CreateSession is a placeholder for SpannerClient.CreateSession.
func (m *MockCloudSpannerClient) CreateSession(c context.Context, r *sppb.CreateSessionRequest, opts ...grpc.CallOption) (*sppb.Session, error) {
m.ready()
+ m.ReceivedRequests <- r
+
m.mu.Lock()
defer m.mu.Unlock()
- if err := m.injErr["CreateSession"]; err != nil {
- return nil, err
- }
s := &sppb.Session{}
if r.Database != "mockdb" {
// Reject other databases
@@ -142,11 +107,10 @@ func (m *MockCloudSpannerClient) CreateSession(c context.Context, r *sppb.Create
// GetSession is a placeholder for SpannerClient.GetSession.
func (m *MockCloudSpannerClient) GetSession(c context.Context, r *sppb.GetSessionRequest, opts ...grpc.CallOption) (*sppb.Session, error) {
m.ready()
+ m.ReceivedRequests <- r
+
m.mu.Lock()
defer m.mu.Unlock()
- if err := m.injErr["GetSession"]; err != nil {
- return nil, err
- }
m.pings = append(m.pings, r.Name)
if _, ok := m.sessions[r.Name]; !ok {
return nil, status.Errorf(codes.NotFound, fmt.Sprintf("Session not found: %v", r.Name))
@@ -157,11 +121,10 @@ func (m *MockCloudSpannerClient) GetSession(c context.Context, r *sppb.GetSessio
// DeleteSession is a placeholder for SpannerClient.DeleteSession.
func (m *MockCloudSpannerClient) DeleteSession(c context.Context, r *sppb.DeleteSessionRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
m.ready()
+ m.ReceivedRequests <- r
+
m.mu.Lock()
defer m.mu.Unlock()
- if err := m.injErr["DeleteSession"]; err != nil {
- return nil, err
- }
if _, ok := m.sessions[r.Name]; !ok {
// Session not found.
return &empty.Empty{}, status.Errorf(codes.NotFound, fmt.Sprintf("Session not found: %v", r.Name))
@@ -174,12 +137,10 @@ func (m *MockCloudSpannerClient) DeleteSession(c context.Context, r *sppb.Delete
// ExecuteStreamingSql is a mock implementation of SpannerClient.ExecuteStreamingSql.
func (m *MockCloudSpannerClient) ExecuteStreamingSql(c context.Context, r *sppb.ExecuteSqlRequest, opts ...grpc.CallOption) (sppb.Spanner_ExecuteStreamingSqlClient, error) {
m.ready()
+ m.ReceivedRequests <- r
+
m.mu.Lock()
defer m.mu.Unlock()
- act, err := m.expectAction("ExecuteStreamingSql")
- if err != nil {
- return nil, err
- }
wantReq := &sppb.ExecuteSqlRequest{
Session: "mocksession",
Transaction: &sppb.TransactionSelector{
@@ -205,21 +166,16 @@ func (m *MockCloudSpannerClient) ExecuteStreamingSql(c context.Context, r *sppb.
if !proto.Equal(r, wantReq) {
return nil, fmt.Errorf("got query request: %v, want: %v", r, wantReq)
}
- if act.Err != nil {
- return nil, act.Err
- }
return nil, errors.New("query never succeeds on mock client")
}
// StreamingRead is a placeholder for SpannerClient.StreamingRead.
func (m *MockCloudSpannerClient) StreamingRead(c context.Context, r *sppb.ReadRequest, opts ...grpc.CallOption) (sppb.Spanner_StreamingReadClient, error) {
m.ready()
+ m.ReceivedRequests <- r
+
m.mu.Lock()
defer m.mu.Unlock()
- act, err := m.expectAction("StreamingRead", "StreamingReadIndex")
- if err != nil {
- return nil, err
- }
wantReq := &sppb.ReadRequest{
Session: "mocksession",
Transaction: &sppb.TransactionSelector{
@@ -250,32 +206,19 @@ func (m *MockCloudSpannerClient) StreamingRead(c context.Context, r *sppb.ReadRe
All: false,
},
}
- if act.Method == "StreamingIndexRead" {
- wantReq.Index = "idx1"
- }
if !proto.Equal(r, wantReq) {
return nil, fmt.Errorf("got query request: %v, want: %v", r, wantReq)
}
- if act.Err != nil {
- return nil, act.Err
- }
return nil, errors.New("read never succeeds on mock client")
}
// BeginTransaction is a placeholder for SpannerClient.BeginTransaction.
func (m *MockCloudSpannerClient) BeginTransaction(c context.Context, r *sppb.BeginTransactionRequest, opts ...grpc.CallOption) (*sppb.Transaction, error) {
m.ready()
+ m.ReceivedRequests <- r
+
m.mu.Lock()
defer m.mu.Unlock()
- if !m.nice {
- act, err := m.expectAction("BeginTransaction")
- if err != nil {
- return nil, err
- }
- if act.Err != nil {
- return nil, act.Err
- }
- }
resp := &sppb.Transaction{Id: []byte("transaction-1")}
if _, ok := r.Options.Mode.(*sppb.TransactionOptions_ReadOnly_); ok {
resp.ReadTimestamp = &pbt.Timestamp{Seconds: 3, Nanos: 4}
@@ -286,67 +229,37 @@ func (m *MockCloudSpannerClient) BeginTransaction(c context.Context, r *sppb.Beg
// Commit is a placeholder for SpannerClient.Commit.
func (m *MockCloudSpannerClient) Commit(c context.Context, r *sppb.CommitRequest, opts ...grpc.CallOption) (*sppb.CommitResponse, error) {
m.ready()
+ m.ReceivedRequests <- r
+
m.mu.Lock()
defer m.mu.Unlock()
- if !m.nice {
- act, err := m.expectAction("Commit")
- if err != nil {
- return nil, err
- }
- if act.Err != nil {
- return nil, act.Err
- }
- }
return &sppb.CommitResponse{CommitTimestamp: &pbt.Timestamp{Seconds: 1, Nanos: 2}}, nil
}
// Rollback is a placeholder for SpannerClient.Rollback.
func (m *MockCloudSpannerClient) Rollback(c context.Context, r *sppb.RollbackRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
m.ready()
+ m.ReceivedRequests <- r
+
m.mu.Lock()
defer m.mu.Unlock()
- if !m.nice {
- act, err := m.expectAction("Rollback")
- if err != nil {
- return nil, err
- }
- if act.Err != nil {
- return nil, act.Err
- }
- }
return nil, nil
}
// PartitionQuery is a placeholder for SpannerServer.PartitionQuery.
func (m *MockCloudSpannerClient) PartitionQuery(ctx context.Context, r *sppb.PartitionQueryRequest, opts ...grpc.CallOption) (*sppb.PartitionResponse, error) {
m.ready()
+ m.ReceivedRequests <- r
+
return nil, errors.New("Unimplemented")
}
// PartitionRead is a placeholder for SpannerServer.PartitionRead.
func (m *MockCloudSpannerClient) PartitionRead(ctx context.Context, r *sppb.PartitionReadRequest, opts ...grpc.CallOption) (*sppb.PartitionResponse, error) {
m.ready()
- return nil, errors.New("Unimplemented")
-}
+ m.ReceivedRequests <- r
-func (m *MockCloudSpannerClient) expectAction(methods ...string) (Action, error) {
- for _, me := range methods {
- if err := m.injErr[me]; err != nil {
- return Action{}, err
- }
- }
- if len(m.actions) == 0 {
- m.t.Fatalf("unexpected %v executed", methods)
- }
- act := m.actions[0]
- m.actions = m.actions[1:]
- for _, me := range methods {
- if me == act.Method {
- return act, nil
- }
- }
- m.t.Fatalf("unexpected call of one of %v, want method %s", methods, act.Method)
- return Action{}, nil
+ return nil, errors.New("Unimplemented")
}
// Freeze stalls all requests.
@@ -363,13 +276,6 @@ func (m *MockCloudSpannerClient) Unfreeze() {
close(m.freezed)
}
-// CheckActionsConsumed checks that all actions have been consumed.
-func (m *MockCloudSpannerClient) CheckActionsConsumed() {
- if len(m.actions) != 0 {
- m.t.Fatalf("unconsumed mock client actions: %v", m.actions)
- }
-}
-
// ready checks conditions before executing requests
// TODO: add checks for injected errors, actions
func (m *MockCloudSpannerClient) ready() {
diff --git a/vendor/cloud.google.com/go/spanner/pdml.go b/vendor/cloud.google.com/go/spanner/pdml.go
index 4beb7913f9..4ccf79129f 100644
--- a/vendor/cloud.google.com/go/spanner/pdml.go
+++ b/vendor/cloud.google.com/go/spanner/pdml.go
@@ -32,8 +32,8 @@ import (
// PartitionedUpdate returns an estimated count of the number of rows affected. The actual
// number of affected rows may be greater than the estimate.
func (c *Client) PartitionedUpdate(ctx context.Context, statement Statement) (count int64, err error) {
- ctx = traceStartSpan(ctx, "cloud.google.com/go/spanner.PartitionedUpdate")
- defer func() { traceEndSpan(ctx, err) }()
+ ctx = startSpan(ctx, "cloud.google.com/go/spanner.PartitionedUpdate")
+ defer func() { endSpan(ctx, err) }()
if err := checkNestedTxn(ctx); err != nil {
return 0, err
}
diff --git a/vendor/cloud.google.com/go/spanner/read.go b/vendor/cloud.google.com/go/spanner/read.go
index 8d23892e8a..6faccdbaff 100644
--- a/vendor/cloud.google.com/go/spanner/read.go
+++ b/vendor/cloud.google.com/go/spanner/read.go
@@ -25,6 +25,7 @@ import (
"time"
"cloud.google.com/go/internal/protostruct"
+ "cloud.google.com/go/spanner/internal/backoff"
proto "github.com/golang/protobuf/proto"
proto3 "github.com/golang/protobuf/ptypes/struct"
"google.golang.org/api/iterator"
@@ -47,7 +48,7 @@ func errEarlyReadEnd() error {
// Cloud Spanner.
func stream(ctx context.Context, rpc func(ct context.Context, resumeToken []byte) (streamingReceiver, error), setTimestamp func(time.Time), release func(error)) *RowIterator {
ctx, cancel := context.WithCancel(ctx)
- ctx = traceStartSpan(ctx, "cloud.google.com/go/spanner.RowIterator")
+ ctx = startSpan(ctx, "cloud.google.com/go/spanner.RowIterator")
return &RowIterator{
streamd: newResumableStreamDecoder(ctx, rpc),
rowd: &partialResultSetDecoder{},
@@ -167,7 +168,7 @@ func (r *RowIterator) Do(f func(r *Row) error) error {
// Stop terminates the iteration. It should be called after you finish using the iterator.
func (r *RowIterator) Stop() {
if r.streamd != nil {
- defer traceEndSpan(r.streamd.ctx, r.err)
+ defer endSpan(r.streamd.ctx, r.err)
}
if r.cancel != nil {
r.cancel()
@@ -309,7 +310,7 @@ type resumableStreamDecoder struct {
// err is the last error resumableStreamDecoder has encountered so far.
err error
// backoff to compute delays between retries.
- backoff exponentialBackoff
+ backoff backoff.ExponentialBackoff
}
// newResumableStreamDecoder creates a new resumeableStreamDecoder instance.
@@ -320,7 +321,7 @@ func newResumableStreamDecoder(ctx context.Context, rpc func(ct context.Context,
ctx: ctx,
rpc: rpc,
maxBytesBetweenResumeTokens: atomic.LoadInt32(&maxBytesBetweenResumeTokens),
- backoff: defaultBackoff,
+ backoff: backoff.DefaultBackoff,
}
}
@@ -343,7 +344,7 @@ func (d *resumableStreamDecoder) isNewResumeToken(rt []byte) bool {
if rt == nil {
return false
}
- if bytes.Compare(rt, d.resumeToken) == 0 {
+ if bytes.Equal(rt, d.resumeToken) {
return false
}
return true
@@ -530,8 +531,8 @@ func (d *resumableStreamDecoder) resetBackOff() {
// doBackoff does an exponential backoff sleep.
func (d *resumableStreamDecoder) doBackOff() {
- delay := d.backoff.delay(d.retryCount)
- tracePrintf(d.ctx, nil, "Backing off stream read for %s", delay)
+ delay := d.backoff.Delay(d.retryCount)
+ statsPrintf(d.ctx, nil, "Backing off stream read for %s", delay)
ticker := time.NewTicker(delay)
defer ticker.Stop()
d.retryCount++
diff --git a/vendor/cloud.google.com/go/spanner/retry.go b/vendor/cloud.google.com/go/spanner/retry.go
index 08ae920db3..a1724930b0 100644
--- a/vendor/cloud.google.com/go/spanner/retry.go
+++ b/vendor/cloud.google.com/go/spanner/retry.go
@@ -22,6 +22,7 @@ import (
"strings"
"time"
+ "cloud.google.com/go/spanner/internal/backoff"
"github.com/golang/protobuf/proto"
"github.com/golang/protobuf/ptypes"
edpb "google.golang.org/genproto/googleapis/rpc/errdetails"
@@ -155,7 +156,7 @@ func extractRetryDelay(err error) (time.Duration, bool) {
// runRetryable keeps attempting to run f until one of the following happens:
// 1) f returns nil error or an unretryable error;
// 2) context is cancelled or timeout.
-// TODO: consider using https://github.com/googleapis/gax-go once it
+// TODO: consider using https://github.com/googleapis/gax-go/v2 once it
// becomes available internally.
func runRetryable(ctx context.Context, f func(context.Context) error) error {
return toSpannerError(runRetryableNoWrap(ctx, f))
@@ -182,9 +183,9 @@ func runRetryableNoWrap(ctx context.Context, f func(context.Context) error) erro
// Error is retryable, do exponential backoff and continue.
b, ok := extractRetryDelay(funcErr)
if !ok {
- b = defaultBackoff.delay(retryCount)
+ b = backoff.DefaultBackoff.Delay(retryCount)
}
- tracePrintf(ctx, nil, "Backing off for %s, then retrying", b)
+ statsPrintf(ctx, nil, "Backing off for %s, then retrying", b)
select {
case <-ctx.Done():
return errContextCanceled(ctx, funcErr)
diff --git a/vendor/cloud.google.com/go/spanner/session.go b/vendor/cloud.google.com/go/spanner/session.go
index d058e57b23..d41b8629bf 100644
--- a/vendor/cloud.google.com/go/spanner/session.go
+++ b/vendor/cloud.google.com/go/spanner/session.go
@@ -450,7 +450,7 @@ func (p *sessionPool) shouldPrepareWrite() bool {
}
func (p *sessionPool) createSession(ctx context.Context) (*session, error) {
- tracePrintf(ctx, nil, "Creating a new session")
+ statsPrintf(ctx, nil, "Creating a new session")
doneCreate := func(done bool) {
p.mu.Lock()
if !done {
@@ -517,7 +517,7 @@ func (p *sessionPool) isHealthy(s *session) bool {
// take returns a cached session if there are available ones; if there isn't any, it tries to allocate a new one.
// Session returned by take should be used for read operations.
func (p *sessionPool) take(ctx context.Context) (*sessionHandle, error) {
- tracePrintf(ctx, nil, "Acquiring a read-only session")
+ statsPrintf(ctx, nil, "Acquiring a read-only session")
ctx = contextWithOutgoingMetadata(ctx, p.md)
for {
var (
@@ -533,11 +533,11 @@ func (p *sessionPool) take(ctx context.Context) (*sessionHandle, error) {
if p.idleList.Len() > 0 {
// Idle sessions are available, get one from the top of the idle list.
s = p.idleList.Remove(p.idleList.Front()).(*session)
- tracePrintf(ctx, map[string]interface{}{"sessionID": s.getID()},
+ statsPrintf(ctx, map[string]interface{}{"sessionID": s.getID()},
"Acquired read-only session")
} else if p.idleWriteList.Len() > 0 {
s = p.idleWriteList.Remove(p.idleWriteList.Front()).(*session)
- tracePrintf(ctx, map[string]interface{}{"sessionID": s.getID()},
+ statsPrintf(ctx, map[string]interface{}{"sessionID": s.getID()},
"Acquired read-write session")
}
if s != nil {
@@ -555,10 +555,10 @@ func (p *sessionPool) take(ctx context.Context) (*sessionHandle, error) {
if (p.MaxOpened > 0 && p.numOpened >= p.MaxOpened) || (p.MaxBurst > 0 && p.createReqs >= p.MaxBurst) {
mayGetSession := p.mayGetSession
p.mu.Unlock()
- tracePrintf(ctx, nil, "Waiting for read-only session to become available")
+ statsPrintf(ctx, nil, "Waiting for read-only session to become available")
select {
case <-ctx.Done():
- tracePrintf(ctx, nil, "Context done waiting for session")
+ statsPrintf(ctx, nil, "Context done waiting for session")
return nil, errGetSessionTimeout()
case <-mayGetSession:
}
@@ -570,10 +570,10 @@ func (p *sessionPool) take(ctx context.Context) (*sessionHandle, error) {
p.createReqs++
p.mu.Unlock()
if s, err = p.createSession(ctx); err != nil {
- tracePrintf(ctx, nil, "Error creating session: %v", err)
+ statsPrintf(ctx, nil, "Error creating session: %v", err)
return nil, toSpannerError(err)
}
- tracePrintf(ctx, map[string]interface{}{"sessionID": s.getID()},
+ statsPrintf(ctx, map[string]interface{}{"sessionID": s.getID()},
"Created session")
return &sessionHandle{session: s}, nil
}
@@ -582,7 +582,7 @@ func (p *sessionPool) take(ctx context.Context) (*sessionHandle, error) {
// takeWriteSession returns a write prepared cached session if there are available ones; if there isn't any, it tries to allocate a new one.
// Session returned should be used for read write transactions.
func (p *sessionPool) takeWriteSession(ctx context.Context) (*sessionHandle, error) {
- tracePrintf(ctx, nil, "Acquiring a read-write session")
+ statsPrintf(ctx, nil, "Acquiring a read-write session")
ctx = contextWithOutgoingMetadata(ctx, p.md)
for {
var (
@@ -598,10 +598,10 @@ func (p *sessionPool) takeWriteSession(ctx context.Context) (*sessionHandle, err
if p.idleWriteList.Len() > 0 {
// Idle sessions are available, get one from the top of the idle list.
s = p.idleWriteList.Remove(p.idleWriteList.Front()).(*session)
- tracePrintf(ctx, map[string]interface{}{"sessionID": s.getID()}, "Acquired read-write session")
+ statsPrintf(ctx, map[string]interface{}{"sessionID": s.getID()}, "Acquired read-write session")
} else if p.idleList.Len() > 0 {
s = p.idleList.Remove(p.idleList.Front()).(*session)
- tracePrintf(ctx, map[string]interface{}{"sessionID": s.getID()}, "Acquired read-only session")
+ statsPrintf(ctx, map[string]interface{}{"sessionID": s.getID()}, "Acquired read-only session")
}
if s != nil {
s.setIdleList(nil)
@@ -617,10 +617,10 @@ func (p *sessionPool) takeWriteSession(ctx context.Context) (*sessionHandle, err
if (p.MaxOpened > 0 && p.numOpened >= p.MaxOpened) || (p.MaxBurst > 0 && p.createReqs >= p.MaxBurst) {
mayGetSession := p.mayGetSession
p.mu.Unlock()
- tracePrintf(ctx, nil, "Waiting for read-write session to become available")
+ statsPrintf(ctx, nil, "Waiting for read-write session to become available")
select {
case <-ctx.Done():
- tracePrintf(ctx, nil, "Context done waiting for session")
+ statsPrintf(ctx, nil, "Context done waiting for session")
return nil, errGetSessionTimeout()
case <-mayGetSession:
}
@@ -633,16 +633,16 @@ func (p *sessionPool) takeWriteSession(ctx context.Context) (*sessionHandle, err
p.createReqs++
p.mu.Unlock()
if s, err = p.createSession(ctx); err != nil {
- tracePrintf(ctx, nil, "Error creating session: %v", err)
+ statsPrintf(ctx, nil, "Error creating session: %v", err)
return nil, toSpannerError(err)
}
- tracePrintf(ctx, map[string]interface{}{"sessionID": s.getID()},
+ statsPrintf(ctx, map[string]interface{}{"sessionID": s.getID()},
"Created session")
}
if !s.isWritePrepared() {
if err = s.prepareForWrite(ctx); err != nil {
s.recycle()
- tracePrintf(ctx, map[string]interface{}{"sessionID": s.getID()},
+ statsPrintf(ctx, map[string]interface{}{"sessionID": s.getID()},
"Error preparing session for write")
return nil, toSpannerError(err)
}
@@ -759,7 +759,8 @@ type healthChecker struct {
// done is used to signal that health checker should be closed.
done chan struct{}
// once is used for closing channel done only once.
- once sync.Once
+ once sync.Once
+ maintainerCancel func()
}
// newHealthChecker initializes new instance of healthChecker.
@@ -768,12 +769,13 @@ func newHealthChecker(interval time.Duration, workers int, sampleInterval time.D
workers = 1
}
hc := &healthChecker{
- interval: interval,
- workers: workers,
- pool: pool,
- sampleInterval: sampleInterval,
- ready: make(chan struct{}),
- done: make(chan struct{}),
+ interval: interval,
+ workers: workers,
+ pool: pool,
+ sampleInterval: sampleInterval,
+ ready: make(chan struct{}),
+ done: make(chan struct{}),
+ maintainerCancel: func() {},
}
hc.waitWorkers.Add(1)
go hc.maintainer()
@@ -786,6 +788,9 @@ func newHealthChecker(interval time.Duration, workers int, sampleInterval time.D
// close closes the healthChecker and waits for all healthcheck workers to exit.
func (hc *healthChecker) close() {
+ hc.mu.Lock()
+ hc.maintainerCancel()
+ hc.mu.Unlock()
hc.once.Do(func() { close(hc.done) })
hc.waitWorkers.Wait()
}
@@ -960,83 +965,8 @@ func (hc *healthChecker) maintainer() {
var (
windowSize uint64 = 10
iteration uint64
- timeout <-chan time.Time
)
- // replenishPool is run if numOpened is less than sessionsToKeep, timeouts on sampleInterval.
- replenishPool := func(sessionsToKeep uint64) {
- ctx, _ := context.WithTimeout(context.Background(), hc.sampleInterval)
- for {
- select {
- case <-timeout:
- return
- default:
- }
-
- p := hc.pool
- p.mu.Lock()
- // Take budget before the actual session creation.
- if sessionsToKeep <= p.numOpened {
- p.mu.Unlock()
- break
- }
- p.numOpened++
- recordStat(ctx, OpenSessionCount, int64(p.numOpened))
- p.createReqs++
- shouldPrepareWrite := p.shouldPrepareWrite()
- p.mu.Unlock()
- var (
- s *session
- err error
- )
- if s, err = p.createSession(ctx); err != nil {
- log.Printf("Failed to create session, error: %v", toSpannerError(err))
- continue
- }
- if shouldPrepareWrite {
- if err = s.prepareForWrite(ctx); err != nil {
- p.recycle(s)
- log.Printf("Failed to prepare session, error: %v", toSpannerError(err))
- continue
- }
- }
- p.recycle(s)
- }
- }
-
- // shrinkPool, scales down the session pool.
- shrinkPool := func(sessionsToKeep uint64) {
- for {
- select {
- case <-timeout:
- return
- default:
- }
-
- p := hc.pool
- p.mu.Lock()
-
- if sessionsToKeep >= p.numOpened {
- p.mu.Unlock()
- break
- }
-
- var s *session
- if p.idleList.Len() > 0 {
- s = p.idleList.Front().Value.(*session)
- } else if p.idleWriteList.Len() > 0 {
- s = p.idleWriteList.Front().Value.(*session)
- }
- p.mu.Unlock()
- if s != nil {
- // destroy session as expire.
- s.destroy(true)
- } else {
- break
- }
- }
- }
-
for {
if hc.isClosing() {
hc.waitWorkers.Done()
@@ -1058,26 +988,97 @@ func (hc *healthChecker) maintainer() {
}
sessionsToKeep := maxUint64(hc.pool.MinOpened,
minUint64(currSessionsOpened, hc.pool.MaxIdle+maxSessionsInUse))
+ ctx, cancel := context.WithTimeout(context.Background(), hc.sampleInterval)
+ hc.maintainerCancel = cancel
hc.mu.Unlock()
- timeout = time.After(hc.sampleInterval)
// Replenish or Shrink pool if needed.
// Note: we don't need to worry about pending create session requests, we only need to sample the current sessions in use.
// the routines will not try to create extra / delete creating sessions.
if sessionsToKeep > currSessionsOpened {
- replenishPool(sessionsToKeep)
+ hc.replenishPool(ctx, sessionsToKeep)
} else {
- shrinkPool(sessionsToKeep)
+ hc.shrinkPool(ctx, sessionsToKeep)
}
select {
- case <-timeout:
+ case <-ctx.Done():
case <-hc.done:
+ cancel()
}
iteration++
}
}
+// replenishPool is run if numOpened is less than sessionsToKeep, timeouts on sampleInterval.
+func (hc *healthChecker) replenishPool(ctx context.Context, sessionsToKeep uint64) {
+ for {
+ if ctx.Err() != nil {
+ return
+ }
+
+ p := hc.pool
+ p.mu.Lock()
+ // Take budget before the actual session creation.
+ if sessionsToKeep <= p.numOpened {
+ p.mu.Unlock()
+ break
+ }
+ p.numOpened++
+ recordStat(ctx, OpenSessionCount, int64(p.numOpened))
+ p.createReqs++
+ shouldPrepareWrite := p.shouldPrepareWrite()
+ p.mu.Unlock()
+ var (
+ s *session
+ err error
+ )
+ if s, err = p.createSession(ctx); err != nil {
+ log.Printf("Failed to create session, error: %v", toSpannerError(err))
+ continue
+ }
+ if shouldPrepareWrite {
+ if err = s.prepareForWrite(ctx); err != nil {
+ p.recycle(s)
+ log.Printf("Failed to prepare session, error: %v", toSpannerError(err))
+ continue
+ }
+ }
+ p.recycle(s)
+ }
+}
+
+// shrinkPool, scales down the session pool.
+func (hc *healthChecker) shrinkPool(ctx context.Context, sessionsToKeep uint64) {
+ for {
+ if ctx.Err() != nil {
+ return
+ }
+
+ p := hc.pool
+ p.mu.Lock()
+
+ if sessionsToKeep >= p.numOpened {
+ p.mu.Unlock()
+ break
+ }
+
+ var s *session
+ if p.idleList.Len() > 0 {
+ s = p.idleList.Front().Value.(*session)
+ } else if p.idleWriteList.Len() > 0 {
+ s = p.idleWriteList.Front().Value.(*session)
+ }
+ p.mu.Unlock()
+ if s != nil {
+ // destroy session as expire.
+ s.destroy(true)
+ } else {
+ break
+ }
+ }
+}
+
// shouldDropSession returns true if a particular error leads to the removal of a session
func shouldDropSession(err error) bool {
if err == nil {
@@ -1086,8 +1087,24 @@ func shouldDropSession(err error) bool {
// If a Cloud Spanner can no longer locate the session (for example, if session is garbage collected), then caller
// should not try to return the session back into the session pool.
// TODO: once gRPC can return auxiliary error information, stop parsing the error message.
- if ErrCode(err) == codes.NotFound && strings.Contains(ErrDesc(err), "Session not found:") {
+ if ErrCode(err) == codes.NotFound && strings.Contains(ErrDesc(err), "Session not found") {
return true
}
return false
}
+
+// maxUint64 returns the maximum of two uint64
+func maxUint64(a, b uint64) uint64 {
+ if a > b {
+ return a
+ }
+ return b
+}
+
+// minUint64 returns the minimum of two uint64
+func minUint64(a, b uint64) uint64 {
+ if a > b {
+ return b
+ }
+ return a
+}
diff --git a/vendor/cloud.google.com/go/spanner/trace.go b/vendor/cloud.google.com/go/spanner/trace.go
index 6fdbae415c..663ef194f9 100644
--- a/vendor/cloud.google.com/go/spanner/trace.go
+++ b/vendor/cloud.google.com/go/spanner/trace.go
@@ -23,12 +23,12 @@ import (
"go.opencensus.io/trace"
)
-func traceStartSpan(ctx context.Context, name string) context.Context {
+func startSpan(ctx context.Context, name string) context.Context {
ctx, _ = trace.StartSpan(ctx, name)
return ctx
}
-func traceEndSpan(ctx context.Context, err error) {
+func endSpan(ctx context.Context, err error) {
span := trace.FromContext(ctx)
if err != nil {
// TODO(jba): Add error code to the status.
@@ -37,7 +37,7 @@ func traceEndSpan(ctx context.Context, err error) {
span.End()
}
-func tracePrintf(ctx context.Context, attrMap map[string]interface{}, format string, args ...interface{}) {
+func statsPrintf(ctx context.Context, attrMap map[string]interface{}, format string, args ...interface{}) {
var attrs []trace.Attribute
for k, v := range attrMap {
var a trace.Attribute
diff --git a/vendor/cloud.google.com/go/spanner/transaction.go b/vendor/cloud.google.com/go/spanner/transaction.go
index a77f452d4a..d7f9ced7f6 100644
--- a/vendor/cloud.google.com/go/spanner/transaction.go
+++ b/vendor/cloud.google.com/go/spanner/transaction.go
@@ -80,8 +80,8 @@ type ReadOptions struct {
// ReadWithOptions returns a RowIterator for reading multiple rows from the database.
// Pass a ReadOptions to modify the read operation.
func (t *txReadOnly) ReadWithOptions(ctx context.Context, table string, keys KeySet, columns []string, opts *ReadOptions) (ri *RowIterator) {
- ctx = traceStartSpan(ctx, "cloud.google.com/go/spanner.Read")
- defer func() { traceEndSpan(ctx, ri.err) }()
+ ctx = startSpan(ctx, "cloud.google.com/go/spanner.Read")
+ defer func() { endSpan(ctx, ri.err) }()
var (
sh *sessionHandle
ts *sppb.TransactionSelector
@@ -188,8 +188,8 @@ func (t *txReadOnly) AnalyzeQuery(ctx context.Context, statement Statement) (*sp
}
func (t *txReadOnly) query(ctx context.Context, statement Statement, mode sppb.ExecuteSqlRequest_QueryMode) (ri *RowIterator) {
- ctx = traceStartSpan(ctx, "cloud.google.com/go/spanner.Query")
- defer func() { traceEndSpan(ctx, ri.err) }()
+ ctx = startSpan(ctx, "cloud.google.com/go/spanner.Query")
+ defer func() { endSpan(ctx, ri.err) }()
req, sh, err := t.prepareExecuteSQL(ctx, statement, mode)
if err != nil {
return &RowIterator{err: err}
@@ -252,11 +252,6 @@ func errRtsUnavailable() error {
return spannerErrorf(codes.Internal, "read timestamp is unavailable")
}
-// errTxNotInitialized returns error for using an uninitialized transaction.
-func errTxNotInitialized() error {
- return spannerErrorf(codes.InvalidArgument, "cannot use a uninitialized transaction")
-}
-
// errTxClosed returns error for using a closed transaction.
func errTxClosed() error {
return spannerErrorf(codes.InvalidArgument, "cannot use a closed transaction")
@@ -665,8 +660,8 @@ func (t *ReadWriteTransaction) BufferWrite(ms []*Mutation) error {
// Update returns an error if the statement is a query. However, the
// query is executed, and any data read will be validated upon commit.
func (t *ReadWriteTransaction) Update(ctx context.Context, stmt Statement) (rowCount int64, err error) {
- ctx = traceStartSpan(ctx, "cloud.google.com/go/spanner.Update")
- defer func() { traceEndSpan(ctx, err) }()
+ ctx = startSpan(ctx, "cloud.google.com/go/spanner.Update")
+ defer func() { endSpan(ctx, err) }()
req, sh, err := t.prepareExecuteSQL(ctx, stmt, sppb.ExecuteSqlRequest_NORMAL)
if err != nil {
return 0, err
@@ -809,7 +804,6 @@ func (t *ReadWriteTransaction) rollback(ctx context.Context) {
if shouldDropSession(err) {
t.sh.destroy()
}
- return
}
// runInTransaction executes f under a read-write transaction context.
diff --git a/vendor/cloud.google.com/go/spanner/value.go b/vendor/cloud.google.com/go/spanner/value.go
index 8e049d3730..6968025f61 100644
--- a/vendor/cloud.google.com/go/spanner/value.go
+++ b/vendor/cloud.google.com/go/spanner/value.go
@@ -129,7 +129,7 @@ type NullTime struct {
// String implements Stringer.String for NullTime
func (n NullTime) String() string {
if !n.Valid {
- return fmt.Sprintf("%s", "")
+ return ""
}
return fmt.Sprintf("%q", n.Time.Format(time.RFC3339Nano))
}
@@ -143,7 +143,7 @@ type NullDate struct {
// String implements Stringer.String for NullDate
func (n NullDate) String() string {
if !n.Valid {
- return fmt.Sprintf("%s", "")
+ return ""
}
return fmt.Sprintf("%q", n.Date)
}
diff --git a/vendor/cloud.google.com/go/speech/apiv1/doc.go b/vendor/cloud.google.com/go/speech/apiv1/doc.go
index 550d3bff09..9441e2dd5a 100644
--- a/vendor/cloud.google.com/go/speech/apiv1/doc.go
+++ b/vendor/cloud.google.com/go/speech/apiv1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package speech is an auto-generated package for the
// Cloud Speech API.
@@ -85,4 +85,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/speech/apiv1/speech_client.go b/vendor/cloud.google.com/go/speech/apiv1/speech_client.go
index 0ea5deabcc..33000d190e 100644
--- a/vendor/cloud.google.com/go/speech/apiv1/speech_client.go
+++ b/vendor/cloud.google.com/go/speech/apiv1/speech_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package speech
@@ -22,7 +22,7 @@ import (
"cloud.google.com/go/longrunning"
lroauto "cloud.google.com/go/longrunning/autogen"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
speechpb "google.golang.org/genproto/googleapis/cloud/speech/v1"
diff --git a/vendor/cloud.google.com/go/speech/apiv1p1beta1/doc.go b/vendor/cloud.google.com/go/speech/apiv1p1beta1/doc.go
index 58edeae3f4..d0d0e821e1 100644
--- a/vendor/cloud.google.com/go/speech/apiv1p1beta1/doc.go
+++ b/vendor/cloud.google.com/go/speech/apiv1p1beta1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package speech is an auto-generated package for the
// Cloud Speech API.
//
-// NOTE: This package is in alpha. It is not stable, and is likely to change.
+// NOTE: This package is in beta. It is not stable, and may be subject to changes.
//
// Converts audio to text by applying powerful neural network models.
package speech // import "cloud.google.com/go/speech/apiv1p1beta1"
@@ -86,4 +86,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/speech/apiv1p1beta1/speech_client.go b/vendor/cloud.google.com/go/speech/apiv1p1beta1/speech_client.go
index 15e7b0520b..631a089cc6 100644
--- a/vendor/cloud.google.com/go/speech/apiv1p1beta1/speech_client.go
+++ b/vendor/cloud.google.com/go/speech/apiv1p1beta1/speech_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package speech
@@ -22,7 +22,7 @@ import (
"cloud.google.com/go/longrunning"
lroauto "cloud.google.com/go/longrunning/autogen"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
speechpb "google.golang.org/genproto/googleapis/cloud/speech/v1p1beta1"
diff --git a/vendor/cloud.google.com/go/storage/bucket.go b/vendor/cloud.google.com/go/storage/bucket.go
index 3b0018affe..25359da1fa 100644
--- a/vendor/cloud.google.com/go/storage/bucket.go
+++ b/vendor/cloud.google.com/go/storage/bucket.go
@@ -232,6 +232,10 @@ type BucketAttrs struct {
// ACL is the list of access control rules on the bucket.
ACL []ACLRule
+ // BucketPolicyOnly configures access checks to use only bucket-level IAM
+ // policies.
+ BucketPolicyOnly BucketPolicyOnly
+
// DefaultObjectACL is the list of access controls to
// apply to new objects when no object ACL is provided.
DefaultObjectACL []ACLRule
@@ -311,6 +315,17 @@ type BucketAttrs struct {
Website *BucketWebsite
}
+// BucketPolicyOnly configures access checks to use only bucket-level IAM
+// policies.
+type BucketPolicyOnly struct {
+ // Enabled specifies whether access checks use only bucket-level IAM
+ // policies. Enabled may be disabled until the locked time.
+ Enabled bool
+ // LockedTime specifies the deadline for changing Enabled from true to
+ // false.
+ LockedTime time.Time
+}
+
// Lifecycle is the lifecycle configuration for objects in the bucket.
type Lifecycle struct {
Rules []LifecycleRule
@@ -485,6 +500,7 @@ func newBucket(b *raw.Bucket) (*BucketAttrs, error) {
Encryption: toBucketEncryption(b.Encryption),
Logging: toBucketLogging(b.Logging),
Website: toBucketWebsite(b.Website),
+ BucketPolicyOnly: toBucketPolicyOnly(b.IamConfiguration),
}, nil
}
@@ -509,6 +525,14 @@ func (b *BucketAttrs) toRawBucket() *raw.Bucket {
if b.RequesterPays {
bb = &raw.BucketBilling{RequesterPays: true}
}
+ var bktIAM *raw.BucketIamConfiguration
+ if b.BucketPolicyOnly.Enabled {
+ bktIAM = &raw.BucketIamConfiguration{
+ BucketPolicyOnly: &raw.BucketIamConfigurationBucketPolicyOnly{
+ Enabled: true,
+ },
+ }
+ }
return &raw.Bucket{
Name: b.Name,
Location: b.Location,
@@ -524,6 +548,7 @@ func (b *BucketAttrs) toRawBucket() *raw.Bucket {
Encryption: b.Encryption.toRawBucketEncryption(),
Logging: b.Logging.toRawBucketLogging(),
Website: b.Website.toRawBucketWebsite(),
+ IamConfiguration: bktIAM,
}
}
@@ -570,6 +595,10 @@ type BucketAttrsToUpdate struct {
// newly created objects in this bucket.
DefaultEventBasedHold optional.Bool
+ // BucketPolicyOnly configures access checks to use only bucket-level IAM
+ // policies.
+ BucketPolicyOnly *BucketPolicyOnly
+
// If set, updates the retention policy of the bucket. Using
// RetentionPolicy.RetentionPeriod = 0 will delete the existing policy.
//
@@ -656,6 +685,13 @@ func (ua *BucketAttrsToUpdate) toRawBucket() *raw.Bucket {
ForceSendFields: []string{"RequesterPays"},
}
}
+ if ua.BucketPolicyOnly != nil {
+ rb.IamConfiguration = &raw.BucketIamConfiguration{
+ BucketPolicyOnly: &raw.BucketIamConfigurationBucketPolicyOnly{
+ Enabled: ua.BucketPolicyOnly.Enabled,
+ },
+ }
+ }
if ua.Encryption != nil {
if ua.Encryption.DefaultKMSKeyName == "" {
rb.NullFields = append(rb.NullFields, "Encryption")
@@ -975,6 +1011,22 @@ func toBucketWebsite(w *raw.BucketWebsite) *BucketWebsite {
}
}
+func toBucketPolicyOnly(b *raw.BucketIamConfiguration) BucketPolicyOnly {
+ if b == nil || b.BucketPolicyOnly == nil || !b.BucketPolicyOnly.Enabled {
+ return BucketPolicyOnly{}
+ }
+ lt, err := time.Parse(time.RFC3339, b.BucketPolicyOnly.LockedTime)
+ if err != nil {
+ return BucketPolicyOnly{
+ Enabled: true,
+ }
+ }
+ return BucketPolicyOnly{
+ Enabled: true,
+ LockedTime: lt,
+ }
+}
+
// Objects returns an iterator over the objects in the bucket that match the Query q.
// If q is nil, no filtering is done.
func (b *BucketHandle) Objects(ctx context.Context, q *Query) *ObjectIterator {
diff --git a/vendor/cloud.google.com/go/storage/doc.go b/vendor/cloud.google.com/go/storage/doc.go
index e277f1d952..88f6459046 100644
--- a/vendor/cloud.google.com/go/storage/doc.go
+++ b/vendor/cloud.google.com/go/storage/doc.go
@@ -170,7 +170,7 @@ Errors returned by this client are often of the type [`googleapi.Error`](https:/
These errors can be introspected for more information by type asserting to the richer `googleapi.Error` type. For example:
if e, ok := err.(*googleapi.Error); ok {
- if e.Code = 409 { ... }
+ if e.Code == 409 { ... }
}
*/
package storage // import "cloud.google.com/go/storage"
diff --git a/vendor/cloud.google.com/go/storage/invoke.go b/vendor/cloud.google.com/go/storage/invoke.go
index 0a03f11013..e755f197de 100644
--- a/vendor/cloud.google.com/go/storage/invoke.go
+++ b/vendor/cloud.google.com/go/storage/invoke.go
@@ -18,7 +18,7 @@ import (
"context"
"cloud.google.com/go/internal"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
)
// runWithRetry calls the function until it returns nil or a non-retryable error, or
diff --git a/vendor/cloud.google.com/go/storage/storage.go b/vendor/cloud.google.com/go/storage/storage.go
index 6c62e3e1d8..70aa7a6df4 100644
--- a/vendor/cloud.google.com/go/storage/storage.go
+++ b/vendor/cloud.google.com/go/storage/storage.go
@@ -26,7 +26,6 @@ import (
"encoding/pem"
"errors"
"fmt"
- "io"
"net/http"
"net/url"
"reflect"
@@ -872,17 +871,6 @@ type Query struct {
Versions bool
}
-// contentTyper implements ContentTyper to enable an
-// io.ReadCloser to specify its MIME type.
-type contentTyper struct {
- io.Reader
- t string
-}
-
-func (c *contentTyper) ContentType() string {
- return c.t
-}
-
// Conditions constrain methods to act on specific generations of
// objects.
//
diff --git a/vendor/cloud.google.com/go/talent/apiv4beta1/company_client.go b/vendor/cloud.google.com/go/talent/apiv4beta1/company_client.go
new file mode 100644
index 0000000000..4fb00ccfcb
--- /dev/null
+++ b/vendor/cloud.google.com/go/talent/apiv4beta1/company_client.go
@@ -0,0 +1,270 @@
+// Copyright 2019 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by gapic-generator. DO NOT EDIT.
+
+package talent
+
+import (
+ "context"
+ "math"
+ "time"
+
+ "github.com/golang/protobuf/proto"
+ gax "github.com/googleapis/gax-go/v2"
+ "google.golang.org/api/iterator"
+ "google.golang.org/api/option"
+ "google.golang.org/api/transport"
+ talentpb "google.golang.org/genproto/googleapis/cloud/talent/v4beta1"
+ "google.golang.org/grpc"
+ "google.golang.org/grpc/codes"
+ "google.golang.org/grpc/metadata"
+)
+
+// CompanyCallOptions contains the retry settings for each method of CompanyClient.
+type CompanyCallOptions struct {
+ CreateCompany []gax.CallOption
+ GetCompany []gax.CallOption
+ UpdateCompany []gax.CallOption
+ DeleteCompany []gax.CallOption
+ ListCompanies []gax.CallOption
+}
+
+func defaultCompanyClientOptions() []option.ClientOption {
+ return []option.ClientOption{
+ option.WithEndpoint("jobs.googleapis.com:443"),
+ option.WithScopes(DefaultAuthScopes()...),
+ }
+}
+
+func defaultCompanyCallOptions() *CompanyCallOptions {
+ retry := map[[2]string][]gax.CallOption{
+ {"default", "idempotent"}: {
+ gax.WithRetry(func() gax.Retryer {
+ return gax.OnCodes([]codes.Code{
+ codes.DeadlineExceeded,
+ codes.Unavailable,
+ }, gax.Backoff{
+ Initial: 100 * time.Millisecond,
+ Max: 60000 * time.Millisecond,
+ Multiplier: 1.3,
+ })
+ }),
+ },
+ }
+ return &CompanyCallOptions{
+ CreateCompany: retry[[2]string{"default", "non_idempotent"}],
+ GetCompany: retry[[2]string{"default", "idempotent"}],
+ UpdateCompany: retry[[2]string{"default", "non_idempotent"}],
+ DeleteCompany: retry[[2]string{"default", "idempotent"}],
+ ListCompanies: retry[[2]string{"default", "idempotent"}],
+ }
+}
+
+// CompanyClient is a client for interacting with Cloud Talent Solution API.
+//
+// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
+type CompanyClient struct {
+ // The connection to the service.
+ conn *grpc.ClientConn
+
+ // The gRPC API client.
+ companyClient talentpb.CompanyServiceClient
+
+ // The call options for this service.
+ CallOptions *CompanyCallOptions
+
+ // The x-goog-* metadata to be sent with each request.
+ xGoogMetadata metadata.MD
+}
+
+// NewCompanyClient creates a new company service client.
+//
+// A service handles company management, including CRUD and job enumeration.
+func NewCompanyClient(ctx context.Context, opts ...option.ClientOption) (*CompanyClient, error) {
+ conn, err := transport.DialGRPC(ctx, append(defaultCompanyClientOptions(), opts...)...)
+ if err != nil {
+ return nil, err
+ }
+ c := &CompanyClient{
+ conn: conn,
+ CallOptions: defaultCompanyCallOptions(),
+
+ companyClient: talentpb.NewCompanyServiceClient(conn),
+ }
+ c.setGoogleClientInfo()
+ return c, nil
+}
+
+// Connection returns the client's connection to the API service.
+func (c *CompanyClient) Connection() *grpc.ClientConn {
+ return c.conn
+}
+
+// Close closes the connection to the API service. The user should invoke this when
+// the client is no longer required.
+func (c *CompanyClient) Close() error {
+ return c.conn.Close()
+}
+
+// setGoogleClientInfo sets the name and version of the application in
+// the `x-goog-api-client` header passed on each request. Intended for
+// use by Google-written clients.
+func (c *CompanyClient) setGoogleClientInfo(keyval ...string) {
+ kv := append([]string{"gl-go", versionGo()}, keyval...)
+ kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version)
+ c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
+}
+
+// CreateCompany creates a new company entity.
+func (c *CompanyClient) CreateCompany(ctx context.Context, req *talentpb.CreateCompanyRequest, opts ...gax.CallOption) (*talentpb.Company, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.CreateCompany[0:len(c.CallOptions.CreateCompany):len(c.CallOptions.CreateCompany)], opts...)
+ var resp *talentpb.Company
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.companyClient.CreateCompany(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// GetCompany retrieves specified company.
+func (c *CompanyClient) GetCompany(ctx context.Context, req *talentpb.GetCompanyRequest, opts ...gax.CallOption) (*talentpb.Company, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.GetCompany[0:len(c.CallOptions.GetCompany):len(c.CallOptions.GetCompany)], opts...)
+ var resp *talentpb.Company
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.companyClient.GetCompany(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// UpdateCompany updates specified company. Company names can't be updated. To update a
+// company name, delete the company and all jobs associated with it, and only
+// then re-create them.
+func (c *CompanyClient) UpdateCompany(ctx context.Context, req *talentpb.UpdateCompanyRequest, opts ...gax.CallOption) (*talentpb.Company, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.UpdateCompany[0:len(c.CallOptions.UpdateCompany):len(c.CallOptions.UpdateCompany)], opts...)
+ var resp *talentpb.Company
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.companyClient.UpdateCompany(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// DeleteCompany deletes specified company.
+// Prerequisite: The company has no jobs associated with it.
+func (c *CompanyClient) DeleteCompany(ctx context.Context, req *talentpb.DeleteCompanyRequest, opts ...gax.CallOption) error {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.DeleteCompany[0:len(c.CallOptions.DeleteCompany):len(c.CallOptions.DeleteCompany)], opts...)
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ _, err = c.companyClient.DeleteCompany(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ return err
+}
+
+// ListCompanies lists all companies associated with the service account.
+func (c *CompanyClient) ListCompanies(ctx context.Context, req *talentpb.ListCompaniesRequest, opts ...gax.CallOption) *CompanyIterator {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.ListCompanies[0:len(c.CallOptions.ListCompanies):len(c.CallOptions.ListCompanies)], opts...)
+ it := &CompanyIterator{}
+ req = proto.Clone(req).(*talentpb.ListCompaniesRequest)
+ it.InternalFetch = func(pageSize int, pageToken string) ([]*talentpb.Company, string, error) {
+ var resp *talentpb.ListCompaniesResponse
+ req.PageToken = pageToken
+ if pageSize > math.MaxInt32 {
+ req.PageSize = math.MaxInt32
+ } else {
+ req.PageSize = int32(pageSize)
+ }
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.companyClient.ListCompanies(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, "", err
+ }
+ return resp.Companies, resp.NextPageToken, nil
+ }
+ fetch := func(pageSize int, pageToken string) (string, error) {
+ items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+ if err != nil {
+ return "", err
+ }
+ it.items = append(it.items, items...)
+ return nextPageToken, nil
+ }
+ it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+ it.pageInfo.MaxSize = int(req.PageSize)
+ return it
+}
+
+// CompanyIterator manages a stream of *talentpb.Company.
+type CompanyIterator struct {
+ items []*talentpb.Company
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []*talentpb.Company, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *CompanyIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *CompanyIterator) Next() (*talentpb.Company, error) {
+ var item *talentpb.Company
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *CompanyIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *CompanyIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
diff --git a/vendor/cloud.google.com/go/talent/apiv4beta1/completion_client.go b/vendor/cloud.google.com/go/talent/apiv4beta1/completion_client.go
new file mode 100644
index 0000000000..c46bc4ac5f
--- /dev/null
+++ b/vendor/cloud.google.com/go/talent/apiv4beta1/completion_client.go
@@ -0,0 +1,134 @@
+// Copyright 2019 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by gapic-generator. DO NOT EDIT.
+
+package talent
+
+import (
+ "context"
+ "time"
+
+ gax "github.com/googleapis/gax-go/v2"
+ "google.golang.org/api/option"
+ "google.golang.org/api/transport"
+ talentpb "google.golang.org/genproto/googleapis/cloud/talent/v4beta1"
+ "google.golang.org/grpc"
+ "google.golang.org/grpc/codes"
+ "google.golang.org/grpc/metadata"
+)
+
+// CompletionCallOptions contains the retry settings for each method of CompletionClient.
+type CompletionCallOptions struct {
+ CompleteQuery []gax.CallOption
+}
+
+func defaultCompletionClientOptions() []option.ClientOption {
+ return []option.ClientOption{
+ option.WithEndpoint("jobs.googleapis.com:443"),
+ option.WithScopes(DefaultAuthScopes()...),
+ }
+}
+
+func defaultCompletionCallOptions() *CompletionCallOptions {
+ retry := map[[2]string][]gax.CallOption{
+ {"default", "idempotent"}: {
+ gax.WithRetry(func() gax.Retryer {
+ return gax.OnCodes([]codes.Code{
+ codes.DeadlineExceeded,
+ codes.Unavailable,
+ }, gax.Backoff{
+ Initial: 100 * time.Millisecond,
+ Max: 60000 * time.Millisecond,
+ Multiplier: 1.3,
+ })
+ }),
+ },
+ }
+ return &CompletionCallOptions{
+ CompleteQuery: retry[[2]string{"default", "idempotent"}],
+ }
+}
+
+// CompletionClient is a client for interacting with Cloud Talent Solution API.
+//
+// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
+type CompletionClient struct {
+ // The connection to the service.
+ conn *grpc.ClientConn
+
+ // The gRPC API client.
+ completionClient talentpb.CompletionClient
+
+ // The call options for this service.
+ CallOptions *CompletionCallOptions
+
+ // The x-goog-* metadata to be sent with each request.
+ xGoogMetadata metadata.MD
+}
+
+// NewCompletionClient creates a new completion client.
+//
+// A service handles auto completion.
+func NewCompletionClient(ctx context.Context, opts ...option.ClientOption) (*CompletionClient, error) {
+ conn, err := transport.DialGRPC(ctx, append(defaultCompletionClientOptions(), opts...)...)
+ if err != nil {
+ return nil, err
+ }
+ c := &CompletionClient{
+ conn: conn,
+ CallOptions: defaultCompletionCallOptions(),
+
+ completionClient: talentpb.NewCompletionClient(conn),
+ }
+ c.setGoogleClientInfo()
+ return c, nil
+}
+
+// Connection returns the client's connection to the API service.
+func (c *CompletionClient) Connection() *grpc.ClientConn {
+ return c.conn
+}
+
+// Close closes the connection to the API service. The user should invoke this when
+// the client is no longer required.
+func (c *CompletionClient) Close() error {
+ return c.conn.Close()
+}
+
+// setGoogleClientInfo sets the name and version of the application in
+// the `x-goog-api-client` header passed on each request. Intended for
+// use by Google-written clients.
+func (c *CompletionClient) setGoogleClientInfo(keyval ...string) {
+ kv := append([]string{"gl-go", versionGo()}, keyval...)
+ kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version)
+ c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
+}
+
+// CompleteQuery completes the specified prefix with keyword suggestions.
+// Intended for use by a job search auto-complete search box.
+func (c *CompletionClient) CompleteQuery(ctx context.Context, req *talentpb.CompleteQueryRequest, opts ...gax.CallOption) (*talentpb.CompleteQueryResponse, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.CompleteQuery[0:len(c.CallOptions.CompleteQuery):len(c.CallOptions.CompleteQuery)], opts...)
+ var resp *talentpb.CompleteQueryResponse
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.completionClient.CompleteQuery(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
diff --git a/vendor/cloud.google.com/go/talent/apiv4beta1/doc.go b/vendor/cloud.google.com/go/talent/apiv4beta1/doc.go
new file mode 100644
index 0000000000..e988eff1c5
--- /dev/null
+++ b/vendor/cloud.google.com/go/talent/apiv4beta1/doc.go
@@ -0,0 +1,91 @@
+// Copyright 2019 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by gapic-generator. DO NOT EDIT.
+
+// Package talent is an auto-generated package for the
+// Cloud Talent Solution API.
+//
+// NOTE: This package is in beta. It is not stable, and may be subject to changes.
+//
+// Cloud Talent Solution provides the capability to create, read, update, and
+// delete job postings, as well as search jobs based on keywords and filters.
+package talent // import "cloud.google.com/go/talent/apiv4beta1"
+
+import (
+ "context"
+ "runtime"
+ "strings"
+ "unicode"
+
+ "google.golang.org/grpc/metadata"
+)
+
+func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context {
+ out, _ := metadata.FromOutgoingContext(ctx)
+ out = out.Copy()
+ for _, md := range mds {
+ for k, v := range md {
+ out[k] = append(out[k], v...)
+ }
+ }
+ return metadata.NewOutgoingContext(ctx, out)
+}
+
+// DefaultAuthScopes reports the default set of authentication scopes to use with this package.
+func DefaultAuthScopes() []string {
+ return []string{
+ "https://www.googleapis.com/auth/cloud-platform",
+ "https://www.googleapis.com/auth/jobs",
+ }
+}
+
+// versionGo returns the Go runtime version. The returned string
+// has no whitespace, suitable for reporting in header.
+func versionGo() string {
+ const develPrefix = "devel +"
+
+ s := runtime.Version()
+ if strings.HasPrefix(s, develPrefix) {
+ s = s[len(develPrefix):]
+ if p := strings.IndexFunc(s, unicode.IsSpace); p >= 0 {
+ s = s[:p]
+ }
+ return s
+ }
+
+ notSemverRune := func(r rune) bool {
+ return strings.IndexRune("0123456789.", r) < 0
+ }
+
+ if strings.HasPrefix(s, "go1") {
+ s = s[2:]
+ var prerelease string
+ if p := strings.IndexFunc(s, notSemverRune); p >= 0 {
+ s, prerelease = s[:p], s[p:]
+ }
+ if strings.HasSuffix(s, ".") {
+ s += "0"
+ } else if strings.Count(s, ".") < 2 {
+ s += ".0"
+ }
+ if prerelease != "" {
+ s += "-" + prerelease
+ }
+ return s
+ }
+ return "UNKNOWN"
+}
+
+const versionClient = "20190127"
diff --git a/vendor/cloud.google.com/go/talent/apiv4beta1/event_client.go b/vendor/cloud.google.com/go/talent/apiv4beta1/event_client.go
new file mode 100644
index 0000000000..a4e4479723
--- /dev/null
+++ b/vendor/cloud.google.com/go/talent/apiv4beta1/event_client.go
@@ -0,0 +1,124 @@
+// Copyright 2019 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by gapic-generator. DO NOT EDIT.
+
+package talent
+
+import (
+ "context"
+
+ gax "github.com/googleapis/gax-go/v2"
+ "google.golang.org/api/option"
+ "google.golang.org/api/transport"
+ talentpb "google.golang.org/genproto/googleapis/cloud/talent/v4beta1"
+ "google.golang.org/grpc"
+ "google.golang.org/grpc/metadata"
+)
+
+// EventCallOptions contains the retry settings for each method of EventClient.
+type EventCallOptions struct {
+ CreateClientEvent []gax.CallOption
+}
+
+func defaultEventClientOptions() []option.ClientOption {
+ return []option.ClientOption{
+ option.WithEndpoint("jobs.googleapis.com:443"),
+ option.WithScopes(DefaultAuthScopes()...),
+ }
+}
+
+func defaultEventCallOptions() *EventCallOptions {
+ retry := map[[2]string][]gax.CallOption{}
+ return &EventCallOptions{
+ CreateClientEvent: retry[[2]string{"default", "non_idempotent"}],
+ }
+}
+
+// EventClient is a client for interacting with Cloud Talent Solution API.
+//
+// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
+type EventClient struct {
+ // The connection to the service.
+ conn *grpc.ClientConn
+
+ // The gRPC API client.
+ eventClient talentpb.EventServiceClient
+
+ // The call options for this service.
+ CallOptions *EventCallOptions
+
+ // The x-goog-* metadata to be sent with each request.
+ xGoogMetadata metadata.MD
+}
+
+// NewEventClient creates a new event service client.
+//
+// A service handles client event report.
+func NewEventClient(ctx context.Context, opts ...option.ClientOption) (*EventClient, error) {
+ conn, err := transport.DialGRPC(ctx, append(defaultEventClientOptions(), opts...)...)
+ if err != nil {
+ return nil, err
+ }
+ c := &EventClient{
+ conn: conn,
+ CallOptions: defaultEventCallOptions(),
+
+ eventClient: talentpb.NewEventServiceClient(conn),
+ }
+ c.setGoogleClientInfo()
+ return c, nil
+}
+
+// Connection returns the client's connection to the API service.
+func (c *EventClient) Connection() *grpc.ClientConn {
+ return c.conn
+}
+
+// Close closes the connection to the API service. The user should invoke this when
+// the client is no longer required.
+func (c *EventClient) Close() error {
+ return c.conn.Close()
+}
+
+// setGoogleClientInfo sets the name and version of the application in
+// the `x-goog-api-client` header passed on each request. Intended for
+// use by Google-written clients.
+func (c *EventClient) setGoogleClientInfo(keyval ...string) {
+ kv := append([]string{"gl-go", versionGo()}, keyval...)
+ kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version)
+ c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
+}
+
+// CreateClientEvent report events issued when end user interacts with customer's application
+// that uses Cloud Talent Solution. You may inspect the created events in
+// self service
+// tools (at https://console.cloud.google.com/talent-solution/overview).
+// Learn
+// more (at https://cloud.google.com/talent-solution/job-search/docs/management-tools)
+// about self service tools.
+func (c *EventClient) CreateClientEvent(ctx context.Context, req *talentpb.CreateClientEventRequest, opts ...gax.CallOption) (*talentpb.ClientEvent, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.CreateClientEvent[0:len(c.CallOptions.CreateClientEvent):len(c.CallOptions.CreateClientEvent)], opts...)
+ var resp *talentpb.ClientEvent
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.eventClient.CreateClientEvent(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
diff --git a/vendor/cloud.google.com/go/talent/apiv4beta1/job_client.go b/vendor/cloud.google.com/go/talent/apiv4beta1/job_client.go
new file mode 100644
index 0000000000..be78dbbba9
--- /dev/null
+++ b/vendor/cloud.google.com/go/talent/apiv4beta1/job_client.go
@@ -0,0 +1,424 @@
+// Copyright 2019 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by gapic-generator. DO NOT EDIT.
+
+package talent
+
+import (
+ "context"
+ "math"
+ "time"
+
+ "github.com/golang/protobuf/proto"
+ gax "github.com/googleapis/gax-go/v2"
+ "google.golang.org/api/iterator"
+ "google.golang.org/api/option"
+ "google.golang.org/api/transport"
+ talentpb "google.golang.org/genproto/googleapis/cloud/talent/v4beta1"
+ "google.golang.org/grpc"
+ "google.golang.org/grpc/codes"
+ "google.golang.org/grpc/metadata"
+)
+
+// JobCallOptions contains the retry settings for each method of JobClient.
+type JobCallOptions struct {
+ CreateJob []gax.CallOption
+ GetJob []gax.CallOption
+ UpdateJob []gax.CallOption
+ DeleteJob []gax.CallOption
+ ListJobs []gax.CallOption
+ BatchDeleteJobs []gax.CallOption
+ SearchJobs []gax.CallOption
+ SearchJobsForAlert []gax.CallOption
+}
+
+func defaultJobClientOptions() []option.ClientOption {
+ return []option.ClientOption{
+ option.WithEndpoint("jobs.googleapis.com:443"),
+ option.WithScopes(DefaultAuthScopes()...),
+ }
+}
+
+func defaultJobCallOptions() *JobCallOptions {
+ retry := map[[2]string][]gax.CallOption{
+ {"default", "idempotent"}: {
+ gax.WithRetry(func() gax.Retryer {
+ return gax.OnCodes([]codes.Code{
+ codes.DeadlineExceeded,
+ codes.Unavailable,
+ }, gax.Backoff{
+ Initial: 100 * time.Millisecond,
+ Max: 60000 * time.Millisecond,
+ Multiplier: 1.3,
+ })
+ }),
+ },
+ }
+ return &JobCallOptions{
+ CreateJob: retry[[2]string{"default", "non_idempotent"}],
+ GetJob: retry[[2]string{"default", "idempotent"}],
+ UpdateJob: retry[[2]string{"default", "non_idempotent"}],
+ DeleteJob: retry[[2]string{"default", "idempotent"}],
+ ListJobs: retry[[2]string{"default", "idempotent"}],
+ BatchDeleteJobs: retry[[2]string{"default", "non_idempotent"}],
+ SearchJobs: retry[[2]string{"default", "non_idempotent"}],
+ SearchJobsForAlert: retry[[2]string{"default", "non_idempotent"}],
+ }
+}
+
+// JobClient is a client for interacting with Cloud Talent Solution API.
+//
+// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
+type JobClient struct {
+ // The connection to the service.
+ conn *grpc.ClientConn
+
+ // The gRPC API client.
+ jobClient talentpb.JobServiceClient
+
+ // The call options for this service.
+ CallOptions *JobCallOptions
+
+ // The x-goog-* metadata to be sent with each request.
+ xGoogMetadata metadata.MD
+}
+
+// NewJobClient creates a new job service client.
+//
+// A service handles job management, including job CRUD, enumeration and search.
+func NewJobClient(ctx context.Context, opts ...option.ClientOption) (*JobClient, error) {
+ conn, err := transport.DialGRPC(ctx, append(defaultJobClientOptions(), opts...)...)
+ if err != nil {
+ return nil, err
+ }
+ c := &JobClient{
+ conn: conn,
+ CallOptions: defaultJobCallOptions(),
+
+ jobClient: talentpb.NewJobServiceClient(conn),
+ }
+ c.setGoogleClientInfo()
+ return c, nil
+}
+
+// Connection returns the client's connection to the API service.
+func (c *JobClient) Connection() *grpc.ClientConn {
+ return c.conn
+}
+
+// Close closes the connection to the API service. The user should invoke this when
+// the client is no longer required.
+func (c *JobClient) Close() error {
+ return c.conn.Close()
+}
+
+// setGoogleClientInfo sets the name and version of the application in
+// the `x-goog-api-client` header passed on each request. Intended for
+// use by Google-written clients.
+func (c *JobClient) setGoogleClientInfo(keyval ...string) {
+ kv := append([]string{"gl-go", versionGo()}, keyval...)
+ kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version)
+ c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
+}
+
+// CreateJob creates a new job.
+//
+// Typically, the job becomes searchable within 10 seconds, but it may take
+// up to 5 minutes.
+func (c *JobClient) CreateJob(ctx context.Context, req *talentpb.CreateJobRequest, opts ...gax.CallOption) (*talentpb.Job, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.CreateJob[0:len(c.CallOptions.CreateJob):len(c.CallOptions.CreateJob)], opts...)
+ var resp *talentpb.Job
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.jobClient.CreateJob(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// GetJob retrieves the specified job, whose status is OPEN or recently EXPIRED
+// within the last 90 days.
+func (c *JobClient) GetJob(ctx context.Context, req *talentpb.GetJobRequest, opts ...gax.CallOption) (*talentpb.Job, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.GetJob[0:len(c.CallOptions.GetJob):len(c.CallOptions.GetJob)], opts...)
+ var resp *talentpb.Job
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.jobClient.GetJob(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// UpdateJob updates specified job.
+//
+// Typically, updated contents become visible in search results within 10
+// seconds, but it may take up to 5 minutes.
+func (c *JobClient) UpdateJob(ctx context.Context, req *talentpb.UpdateJobRequest, opts ...gax.CallOption) (*talentpb.Job, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.UpdateJob[0:len(c.CallOptions.UpdateJob):len(c.CallOptions.UpdateJob)], opts...)
+ var resp *talentpb.Job
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.jobClient.UpdateJob(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// DeleteJob deletes the specified job.
+//
+// Typically, the job becomes unsearchable within 10 seconds, but it may take
+// up to 5 minutes.
+func (c *JobClient) DeleteJob(ctx context.Context, req *talentpb.DeleteJobRequest, opts ...gax.CallOption) error {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.DeleteJob[0:len(c.CallOptions.DeleteJob):len(c.CallOptions.DeleteJob)], opts...)
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ _, err = c.jobClient.DeleteJob(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ return err
+}
+
+// ListJobs lists jobs by filter.
+func (c *JobClient) ListJobs(ctx context.Context, req *talentpb.ListJobsRequest, opts ...gax.CallOption) *JobIterator {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.ListJobs[0:len(c.CallOptions.ListJobs):len(c.CallOptions.ListJobs)], opts...)
+ it := &JobIterator{}
+ req = proto.Clone(req).(*talentpb.ListJobsRequest)
+ it.InternalFetch = func(pageSize int, pageToken string) ([]*talentpb.Job, string, error) {
+ var resp *talentpb.ListJobsResponse
+ req.PageToken = pageToken
+ if pageSize > math.MaxInt32 {
+ req.PageSize = math.MaxInt32
+ } else {
+ req.PageSize = int32(pageSize)
+ }
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.jobClient.ListJobs(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, "", err
+ }
+ return resp.Jobs, resp.NextPageToken, nil
+ }
+ fetch := func(pageSize int, pageToken string) (string, error) {
+ items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+ if err != nil {
+ return "", err
+ }
+ it.items = append(it.items, items...)
+ return nextPageToken, nil
+ }
+ it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+ it.pageInfo.MaxSize = int(req.PageSize)
+ return it
+}
+
+// BatchDeleteJobs deletes a list of [Job][google.cloud.talent.v4beta1.Job]s by filter.
+func (c *JobClient) BatchDeleteJobs(ctx context.Context, req *talentpb.BatchDeleteJobsRequest, opts ...gax.CallOption) error {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.BatchDeleteJobs[0:len(c.CallOptions.BatchDeleteJobs):len(c.CallOptions.BatchDeleteJobs)], opts...)
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ _, err = c.jobClient.BatchDeleteJobs(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ return err
+}
+
+// SearchJobs searches for jobs using the provided [SearchJobsRequest][google.cloud.talent.v4beta1.SearchJobsRequest].
+//
+// This call constrains the [visibility][google.cloud.talent.v4beta1.Job.visibility] of jobs
+// present in the database, and only returns jobs that the caller has
+// permission to search against.
+func (c *JobClient) SearchJobs(ctx context.Context, req *talentpb.SearchJobsRequest, opts ...gax.CallOption) *SearchJobsResponse_MatchingJobIterator {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.SearchJobs[0:len(c.CallOptions.SearchJobs):len(c.CallOptions.SearchJobs)], opts...)
+ it := &SearchJobsResponse_MatchingJobIterator{}
+ req = proto.Clone(req).(*talentpb.SearchJobsRequest)
+ it.InternalFetch = func(pageSize int, pageToken string) ([]*talentpb.SearchJobsResponse_MatchingJob, string, error) {
+ var resp *talentpb.SearchJobsResponse
+ req.PageToken = pageToken
+ if pageSize > math.MaxInt32 {
+ req.PageSize = math.MaxInt32
+ } else {
+ req.PageSize = int32(pageSize)
+ }
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.jobClient.SearchJobs(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, "", err
+ }
+ return resp.MatchingJobs, resp.NextPageToken, nil
+ }
+ fetch := func(pageSize int, pageToken string) (string, error) {
+ items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+ if err != nil {
+ return "", err
+ }
+ it.items = append(it.items, items...)
+ return nextPageToken, nil
+ }
+ it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+ it.pageInfo.MaxSize = int(req.PageSize)
+ return it
+}
+
+// SearchJobsForAlert searches for jobs using the provided [SearchJobsRequest][google.cloud.talent.v4beta1.SearchJobsRequest].
+//
+// This API call is intended for the use case of targeting passive job
+// seekers (for example, job seekers who have signed up to receive email
+// alerts about potential job opportunities), and has different algorithmic
+// adjustments that are targeted to passive job seekers.
+//
+// This call constrains the [visibility][google.cloud.talent.v4beta1.Job.visibility] of jobs
+// present in the database, and only returns jobs the caller has
+// permission to search against.
+func (c *JobClient) SearchJobsForAlert(ctx context.Context, req *talentpb.SearchJobsRequest, opts ...gax.CallOption) *SearchJobsResponse_MatchingJobIterator {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.SearchJobsForAlert[0:len(c.CallOptions.SearchJobsForAlert):len(c.CallOptions.SearchJobsForAlert)], opts...)
+ it := &SearchJobsResponse_MatchingJobIterator{}
+ req = proto.Clone(req).(*talentpb.SearchJobsRequest)
+ it.InternalFetch = func(pageSize int, pageToken string) ([]*talentpb.SearchJobsResponse_MatchingJob, string, error) {
+ var resp *talentpb.SearchJobsResponse
+ req.PageToken = pageToken
+ if pageSize > math.MaxInt32 {
+ req.PageSize = math.MaxInt32
+ } else {
+ req.PageSize = int32(pageSize)
+ }
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.jobClient.SearchJobsForAlert(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, "", err
+ }
+ return resp.MatchingJobs, resp.NextPageToken, nil
+ }
+ fetch := func(pageSize int, pageToken string) (string, error) {
+ items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+ if err != nil {
+ return "", err
+ }
+ it.items = append(it.items, items...)
+ return nextPageToken, nil
+ }
+ it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+ it.pageInfo.MaxSize = int(req.PageSize)
+ return it
+}
+
+// JobIterator manages a stream of *talentpb.Job.
+type JobIterator struct {
+ items []*talentpb.Job
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []*talentpb.Job, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *JobIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *JobIterator) Next() (*talentpb.Job, error) {
+ var item *talentpb.Job
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *JobIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *JobIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
+
+// SearchJobsResponse_MatchingJobIterator manages a stream of *talentpb.SearchJobsResponse_MatchingJob.
+type SearchJobsResponse_MatchingJobIterator struct {
+ items []*talentpb.SearchJobsResponse_MatchingJob
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []*talentpb.SearchJobsResponse_MatchingJob, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *SearchJobsResponse_MatchingJobIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *SearchJobsResponse_MatchingJobIterator) Next() (*talentpb.SearchJobsResponse_MatchingJob, error) {
+ var item *talentpb.SearchJobsResponse_MatchingJob
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *SearchJobsResponse_MatchingJobIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *SearchJobsResponse_MatchingJobIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
diff --git a/vendor/cloud.google.com/go/talent/apiv4beta1/profile_client.go b/vendor/cloud.google.com/go/talent/apiv4beta1/profile_client.go
new file mode 100644
index 0000000000..6f42addc7c
--- /dev/null
+++ b/vendor/cloud.google.com/go/talent/apiv4beta1/profile_client.go
@@ -0,0 +1,354 @@
+// Copyright 2019 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by gapic-generator. DO NOT EDIT.
+
+package talent
+
+import (
+ "context"
+ "math"
+ "time"
+
+ "github.com/golang/protobuf/proto"
+ gax "github.com/googleapis/gax-go/v2"
+ "google.golang.org/api/iterator"
+ "google.golang.org/api/option"
+ "google.golang.org/api/transport"
+ talentpb "google.golang.org/genproto/googleapis/cloud/talent/v4beta1"
+ "google.golang.org/grpc"
+ "google.golang.org/grpc/codes"
+ "google.golang.org/grpc/metadata"
+)
+
+// ProfileCallOptions contains the retry settings for each method of ProfileClient.
+type ProfileCallOptions struct {
+ ListProfiles []gax.CallOption
+ CreateProfile []gax.CallOption
+ GetProfile []gax.CallOption
+ UpdateProfile []gax.CallOption
+ DeleteProfile []gax.CallOption
+ SearchProfiles []gax.CallOption
+}
+
+func defaultProfileClientOptions() []option.ClientOption {
+ return []option.ClientOption{
+ option.WithEndpoint("jobs.googleapis.com:443"),
+ option.WithScopes(DefaultAuthScopes()...),
+ }
+}
+
+func defaultProfileCallOptions() *ProfileCallOptions {
+ retry := map[[2]string][]gax.CallOption{
+ {"default", "idempotent"}: {
+ gax.WithRetry(func() gax.Retryer {
+ return gax.OnCodes([]codes.Code{
+ codes.DeadlineExceeded,
+ codes.Unavailable,
+ }, gax.Backoff{
+ Initial: 100 * time.Millisecond,
+ Max: 60000 * time.Millisecond,
+ Multiplier: 1.3,
+ })
+ }),
+ },
+ }
+ return &ProfileCallOptions{
+ ListProfiles: retry[[2]string{"default", "idempotent"}],
+ CreateProfile: retry[[2]string{"default", "non_idempotent"}],
+ GetProfile: retry[[2]string{"default", "idempotent"}],
+ UpdateProfile: retry[[2]string{"default", "non_idempotent"}],
+ DeleteProfile: retry[[2]string{"default", "idempotent"}],
+ SearchProfiles: retry[[2]string{"default", "non_idempotent"}],
+ }
+}
+
+// ProfileClient is a client for interacting with Cloud Talent Solution API.
+//
+// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
+type ProfileClient struct {
+ // The connection to the service.
+ conn *grpc.ClientConn
+
+ // The gRPC API client.
+ profileClient talentpb.ProfileServiceClient
+
+ // The call options for this service.
+ CallOptions *ProfileCallOptions
+
+ // The x-goog-* metadata to be sent with each request.
+ xGoogMetadata metadata.MD
+}
+
+// NewProfileClient creates a new profile service client.
+//
+// A service that handles profile management, including profile CRUD,
+// enumeration and search.
+func NewProfileClient(ctx context.Context, opts ...option.ClientOption) (*ProfileClient, error) {
+ conn, err := transport.DialGRPC(ctx, append(defaultProfileClientOptions(), opts...)...)
+ if err != nil {
+ return nil, err
+ }
+ c := &ProfileClient{
+ conn: conn,
+ CallOptions: defaultProfileCallOptions(),
+
+ profileClient: talentpb.NewProfileServiceClient(conn),
+ }
+ c.setGoogleClientInfo()
+ return c, nil
+}
+
+// Connection returns the client's connection to the API service.
+func (c *ProfileClient) Connection() *grpc.ClientConn {
+ return c.conn
+}
+
+// Close closes the connection to the API service. The user should invoke this when
+// the client is no longer required.
+func (c *ProfileClient) Close() error {
+ return c.conn.Close()
+}
+
+// setGoogleClientInfo sets the name and version of the application in
+// the `x-goog-api-client` header passed on each request. Intended for
+// use by Google-written clients.
+func (c *ProfileClient) setGoogleClientInfo(keyval ...string) {
+ kv := append([]string{"gl-go", versionGo()}, keyval...)
+ kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version)
+ c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
+}
+
+// ListProfiles lists profiles by filter. The order is unspecified.
+func (c *ProfileClient) ListProfiles(ctx context.Context, req *talentpb.ListProfilesRequest, opts ...gax.CallOption) *ProfileIterator {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.ListProfiles[0:len(c.CallOptions.ListProfiles):len(c.CallOptions.ListProfiles)], opts...)
+ it := &ProfileIterator{}
+ req = proto.Clone(req).(*talentpb.ListProfilesRequest)
+ it.InternalFetch = func(pageSize int, pageToken string) ([]*talentpb.Profile, string, error) {
+ var resp *talentpb.ListProfilesResponse
+ req.PageToken = pageToken
+ if pageSize > math.MaxInt32 {
+ req.PageSize = math.MaxInt32
+ } else {
+ req.PageSize = int32(pageSize)
+ }
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.profileClient.ListProfiles(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, "", err
+ }
+ return resp.Profiles, resp.NextPageToken, nil
+ }
+ fetch := func(pageSize int, pageToken string) (string, error) {
+ items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+ if err != nil {
+ return "", err
+ }
+ it.items = append(it.items, items...)
+ return nextPageToken, nil
+ }
+ it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+ it.pageInfo.MaxSize = int(req.PageSize)
+ return it
+}
+
+// CreateProfile creates and returns a new profile.
+func (c *ProfileClient) CreateProfile(ctx context.Context, req *talentpb.CreateProfileRequest, opts ...gax.CallOption) (*talentpb.Profile, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.CreateProfile[0:len(c.CallOptions.CreateProfile):len(c.CallOptions.CreateProfile)], opts...)
+ var resp *talentpb.Profile
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.profileClient.CreateProfile(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// GetProfile gets the specified profile.
+func (c *ProfileClient) GetProfile(ctx context.Context, req *talentpb.GetProfileRequest, opts ...gax.CallOption) (*talentpb.Profile, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.GetProfile[0:len(c.CallOptions.GetProfile):len(c.CallOptions.GetProfile)], opts...)
+ var resp *talentpb.Profile
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.profileClient.GetProfile(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// UpdateProfile updates the specified profile and returns the updated result.
+func (c *ProfileClient) UpdateProfile(ctx context.Context, req *talentpb.UpdateProfileRequest, opts ...gax.CallOption) (*talentpb.Profile, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.UpdateProfile[0:len(c.CallOptions.UpdateProfile):len(c.CallOptions.UpdateProfile)], opts...)
+ var resp *talentpb.Profile
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.profileClient.UpdateProfile(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
+// DeleteProfile deletes the specified profile.
+func (c *ProfileClient) DeleteProfile(ctx context.Context, req *talentpb.DeleteProfileRequest, opts ...gax.CallOption) error {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.DeleteProfile[0:len(c.CallOptions.DeleteProfile):len(c.CallOptions.DeleteProfile)], opts...)
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ _, err = c.profileClient.DeleteProfile(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ return err
+}
+
+// SearchProfiles searches for profiles within a company.
+//
+// For example, search by raw queries "software engineer in Mountain View" or
+// search by structured filters (location filter, education filter, etc.).
+//
+// See [SearchProfilesRequest][google.cloud.talent.v4beta1.SearchProfilesRequest] for more information.
+func (c *ProfileClient) SearchProfiles(ctx context.Context, req *talentpb.SearchProfilesRequest, opts ...gax.CallOption) *HistogramQueryResultIterator {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.SearchProfiles[0:len(c.CallOptions.SearchProfiles):len(c.CallOptions.SearchProfiles)], opts...)
+ it := &HistogramQueryResultIterator{}
+ req = proto.Clone(req).(*talentpb.SearchProfilesRequest)
+ it.InternalFetch = func(pageSize int, pageToken string) ([]*talentpb.HistogramQueryResult, string, error) {
+ var resp *talentpb.SearchProfilesResponse
+ req.PageToken = pageToken
+ if pageSize > math.MaxInt32 {
+ req.PageSize = math.MaxInt32
+ } else {
+ req.PageSize = int32(pageSize)
+ }
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.profileClient.SearchProfiles(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, "", err
+ }
+ return resp.HistogramQueryResults, resp.NextPageToken, nil
+ }
+ fetch := func(pageSize int, pageToken string) (string, error) {
+ items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
+ if err != nil {
+ return "", err
+ }
+ it.items = append(it.items, items...)
+ return nextPageToken, nil
+ }
+ it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
+ it.pageInfo.MaxSize = int(req.PageSize)
+ return it
+}
+
+// HistogramQueryResultIterator manages a stream of *talentpb.HistogramQueryResult.
+type HistogramQueryResultIterator struct {
+ items []*talentpb.HistogramQueryResult
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []*talentpb.HistogramQueryResult, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *HistogramQueryResultIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *HistogramQueryResultIterator) Next() (*talentpb.HistogramQueryResult, error) {
+ var item *talentpb.HistogramQueryResult
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *HistogramQueryResultIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *HistogramQueryResultIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
+
+// ProfileIterator manages a stream of *talentpb.Profile.
+type ProfileIterator struct {
+ items []*talentpb.Profile
+ pageInfo *iterator.PageInfo
+ nextFunc func() error
+
+ // InternalFetch is for use by the Google Cloud Libraries only.
+ // It is not part of the stable interface of this package.
+ //
+ // InternalFetch returns results from a single call to the underlying RPC.
+ // The number of results is no greater than pageSize.
+ // If there are no more results, nextPageToken is empty and err is nil.
+ InternalFetch func(pageSize int, pageToken string) (results []*talentpb.Profile, nextPageToken string, err error)
+}
+
+// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
+func (it *ProfileIterator) PageInfo() *iterator.PageInfo {
+ return it.pageInfo
+}
+
+// Next returns the next result. Its second return value is iterator.Done if there are no more
+// results. Once Next returns Done, all subsequent calls will return Done.
+func (it *ProfileIterator) Next() (*talentpb.Profile, error) {
+ var item *talentpb.Profile
+ if err := it.nextFunc(); err != nil {
+ return item, err
+ }
+ item = it.items[0]
+ it.items = it.items[1:]
+ return item, nil
+}
+
+func (it *ProfileIterator) bufLen() int {
+ return len(it.items)
+}
+
+func (it *ProfileIterator) takeBuf() interface{} {
+ b := it.items
+ it.items = nil
+ return b
+}
diff --git a/vendor/cloud.google.com/go/talent/apiv4beta1/resume_client.go b/vendor/cloud.google.com/go/talent/apiv4beta1/resume_client.go
new file mode 100644
index 0000000000..5396219c39
--- /dev/null
+++ b/vendor/cloud.google.com/go/talent/apiv4beta1/resume_client.go
@@ -0,0 +1,156 @@
+// Copyright 2019 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by gapic-generator. DO NOT EDIT.
+
+package talent
+
+import (
+ "context"
+
+ gax "github.com/googleapis/gax-go/v2"
+ "google.golang.org/api/option"
+ "google.golang.org/api/transport"
+ talentpb "google.golang.org/genproto/googleapis/cloud/talent/v4beta1"
+ "google.golang.org/grpc"
+ "google.golang.org/grpc/metadata"
+)
+
+// ResumeCallOptions contains the retry settings for each method of ResumeClient.
+type ResumeCallOptions struct {
+ ParseResume []gax.CallOption
+}
+
+func defaultResumeClientOptions() []option.ClientOption {
+ return []option.ClientOption{
+ option.WithEndpoint("jobs.googleapis.com:443"),
+ option.WithScopes(DefaultAuthScopes()...),
+ }
+}
+
+func defaultResumeCallOptions() *ResumeCallOptions {
+ retry := map[[2]string][]gax.CallOption{}
+ return &ResumeCallOptions{
+ ParseResume: retry[[2]string{"default", "non_idempotent"}],
+ }
+}
+
+// ResumeClient is a client for interacting with Cloud Talent Solution API.
+//
+// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
+type ResumeClient struct {
+ // The connection to the service.
+ conn *grpc.ClientConn
+
+ // The gRPC API client.
+ resumeClient talentpb.ResumeServiceClient
+
+ // The call options for this service.
+ CallOptions *ResumeCallOptions
+
+ // The x-goog-* metadata to be sent with each request.
+ xGoogMetadata metadata.MD
+}
+
+// NewResumeClient creates a new resume service client.
+//
+// A service that handles resume parsing.
+func NewResumeClient(ctx context.Context, opts ...option.ClientOption) (*ResumeClient, error) {
+ conn, err := transport.DialGRPC(ctx, append(defaultResumeClientOptions(), opts...)...)
+ if err != nil {
+ return nil, err
+ }
+ c := &ResumeClient{
+ conn: conn,
+ CallOptions: defaultResumeCallOptions(),
+
+ resumeClient: talentpb.NewResumeServiceClient(conn),
+ }
+ c.setGoogleClientInfo()
+ return c, nil
+}
+
+// Connection returns the client's connection to the API service.
+func (c *ResumeClient) Connection() *grpc.ClientConn {
+ return c.conn
+}
+
+// Close closes the connection to the API service. The user should invoke this when
+// the client is no longer required.
+func (c *ResumeClient) Close() error {
+ return c.conn.Close()
+}
+
+// setGoogleClientInfo sets the name and version of the application in
+// the `x-goog-api-client` header passed on each request. Intended for
+// use by Google-written clients.
+func (c *ResumeClient) setGoogleClientInfo(keyval ...string) {
+ kv := append([]string{"gl-go", versionGo()}, keyval...)
+ kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version)
+ c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
+}
+
+// ParseResume parses a resume into a [Profile][google.cloud.talent.v4beta1.Profile]. The API attempts to fill out the
+// following profile fields if present within the resume:
+//
+// personNames
+//
+// addresses
+//
+// emailAddress
+//
+// phoneNumbers
+//
+// personalUris
+//
+// employmentRecords
+//
+// educationRecords
+//
+// skills
+//
+// Note that some attributes in these fields may not be populated if they're
+// not present within the resume or unrecognizable by the resume parser.
+//
+// This API does not save the resume or profile. To create a profile from this
+// resume, clients need to call the CreateProfile method again with the
+// profile returned.
+//
+// This API supports the following list of formats:
+//
+// PDF
+//
+// TXT
+//
+// DOC
+//
+// RTF
+//
+// DOCX
+//
+// An error is thrown if the input format is not supported.
+func (c *ResumeClient) ParseResume(ctx context.Context, req *talentpb.ParseResumeRequest, opts ...gax.CallOption) (*talentpb.ParseResumeResponse, error) {
+ ctx = insertMetadata(ctx, c.xGoogMetadata)
+ opts = append(c.CallOptions.ParseResume[0:len(c.CallOptions.ParseResume):len(c.CallOptions.ParseResume)], opts...)
+ var resp *talentpb.ParseResumeResponse
+ err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
+ var err error
+ resp, err = c.resumeClient.ParseResume(ctx, req, settings.GRPC...)
+ return err
+ }, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
diff --git a/vendor/cloud.google.com/go/texttospeech/apiv1/doc.go b/vendor/cloud.google.com/go/texttospeech/apiv1/doc.go
index 6eb5375726..40598ad265 100644
--- a/vendor/cloud.google.com/go/texttospeech/apiv1/doc.go
+++ b/vendor/cloud.google.com/go/texttospeech/apiv1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package texttospeech is an auto-generated package for the
// Cloud Text-to-Speech API.
@@ -87,4 +87,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/texttospeech/apiv1/text_to_speech_client.go b/vendor/cloud.google.com/go/texttospeech/apiv1/text_to_speech_client.go
index 00a9dd6132..74cb9b7e82 100644
--- a/vendor/cloud.google.com/go/texttospeech/apiv1/text_to_speech_client.go
+++ b/vendor/cloud.google.com/go/texttospeech/apiv1/text_to_speech_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package texttospeech
@@ -20,7 +20,7 @@ import (
"context"
"time"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
texttospeechpb "google.golang.org/genproto/googleapis/cloud/texttospeech/v1"
@@ -118,8 +118,7 @@ func (c *Client) setGoogleClientInfo(keyval ...string) {
c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
}
-// ListVoices returns a list of [Voice][google.cloud.texttospeech.v1.Voice]
-// supported for synthesis.
+// ListVoices returns a list of Voice supported for synthesis.
func (c *Client) ListVoices(ctx context.Context, req *texttospeechpb.ListVoicesRequest, opts ...gax.CallOption) (*texttospeechpb.ListVoicesResponse, error) {
ctx = insertMetadata(ctx, c.xGoogMetadata)
opts = append(c.CallOptions.ListVoices[0:len(c.CallOptions.ListVoices):len(c.CallOptions.ListVoices)], opts...)
diff --git a/vendor/cloud.google.com/go/tools.go b/vendor/cloud.google.com/go/tools.go
new file mode 100644
index 0000000000..8f61430fb5
--- /dev/null
+++ b/vendor/cloud.google.com/go/tools.go
@@ -0,0 +1,31 @@
+// +build tools
+
+// Copyright 2018 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// This package exists to cause `go mod` and `go get` to believe these tools
+// are dependencies, even though they are not runtime dependencies of any
+// package (these are tools used by our CI builds). This means they will appear
+// in our `go.mod` file, but will not be a part of the build. Also, since the
+// build target is something non-existent, these should not be included in any
+// binaries.
+
+package cloud
+
+import (
+ _ "github.com/golang/protobuf/protoc-gen-go"
+ _ "golang.org/x/lint/golint"
+ _ "golang.org/x/tools/cmd/goimports"
+ _ "honnef.co/go/tools/cmd/staticcheck"
+)
diff --git a/vendor/cloud.google.com/go/trace/apiv1/doc.go b/vendor/cloud.google.com/go/trace/apiv1/doc.go
index 005df208a6..6dc9a066bc 100644
--- a/vendor/cloud.google.com/go/trace/apiv1/doc.go
+++ b/vendor/cloud.google.com/go/trace/apiv1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package trace is an auto-generated package for the
// Stackdriver Trace API.
@@ -94,4 +94,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/trace/apiv1/trace_client.go b/vendor/cloud.google.com/go/trace/apiv1/trace_client.go
index 73d654eb27..929ba9f795 100644
--- a/vendor/cloud.google.com/go/trace/apiv1/trace_client.go
+++ b/vendor/cloud.google.com/go/trace/apiv1/trace_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package trace
@@ -22,7 +22,7 @@ import (
"time"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/trace/apiv2/doc.go b/vendor/cloud.google.com/go/trace/apiv2/doc.go
index 553d9de74f..00c98cfda3 100644
--- a/vendor/cloud.google.com/go/trace/apiv2/doc.go
+++ b/vendor/cloud.google.com/go/trace/apiv2/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package trace is an auto-generated package for the
// Stackdriver Trace API.
@@ -91,4 +91,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/trace/apiv2/trace_client.go b/vendor/cloud.google.com/go/trace/apiv2/trace_client.go
index 1581d67217..cbc96c9615 100644
--- a/vendor/cloud.google.com/go/trace/apiv2/trace_client.go
+++ b/vendor/cloud.google.com/go/trace/apiv2/trace_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package trace
@@ -20,7 +20,7 @@ import (
"context"
"time"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
cloudtracepb "google.golang.org/genproto/googleapis/devtools/cloudtrace/v2"
diff --git a/vendor/cloud.google.com/go/videointelligence/apiv1/doc.go b/vendor/cloud.google.com/go/videointelligence/apiv1/doc.go
index 9c79b9a11b..0099069f5f 100644
--- a/vendor/cloud.google.com/go/videointelligence/apiv1/doc.go
+++ b/vendor/cloud.google.com/go/videointelligence/apiv1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package videointelligence is an auto-generated package for the
// Cloud Video Intelligence API.
@@ -86,4 +86,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/videointelligence/apiv1/video_intelligence_client.go b/vendor/cloud.google.com/go/videointelligence/apiv1/video_intelligence_client.go
index e16d1dd1d5..0991ebaab1 100644
--- a/vendor/cloud.google.com/go/videointelligence/apiv1/video_intelligence_client.go
+++ b/vendor/cloud.google.com/go/videointelligence/apiv1/video_intelligence_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package videointelligence
@@ -22,7 +22,7 @@ import (
"cloud.google.com/go/longrunning"
lroauto "cloud.google.com/go/longrunning/autogen"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
videointelligencepb "google.golang.org/genproto/googleapis/cloud/videointelligence/v1"
diff --git a/vendor/cloud.google.com/go/videointelligence/apiv1beta1/doc.go b/vendor/cloud.google.com/go/videointelligence/apiv1beta1/doc.go
index 00b740e353..c33bc19e79 100644
--- a/vendor/cloud.google.com/go/videointelligence/apiv1beta1/doc.go
+++ b/vendor/cloud.google.com/go/videointelligence/apiv1beta1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package videointelligence is an auto-generated package for the
// Google Cloud Video Intelligence API.
//
-// NOTE: This package is in alpha. It is not stable, and is likely to change.
+// NOTE: This package is in beta. It is not stable, and may be subject to changes.
//
// Google Cloud Video Intelligence API.
package videointelligence // import "cloud.google.com/go/videointelligence/apiv1beta1"
@@ -86,4 +86,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/videointelligence/apiv1beta1/video_intelligence_client.go b/vendor/cloud.google.com/go/videointelligence/apiv1beta1/video_intelligence_client.go
index f3003935a9..8c3e30bbc8 100644
--- a/vendor/cloud.google.com/go/videointelligence/apiv1beta1/video_intelligence_client.go
+++ b/vendor/cloud.google.com/go/videointelligence/apiv1beta1/video_intelligence_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package videointelligence
@@ -22,7 +22,7 @@ import (
"cloud.google.com/go/longrunning"
lroauto "cloud.google.com/go/longrunning/autogen"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
videointelligencepb "google.golang.org/genproto/googleapis/cloud/videointelligence/v1beta1"
diff --git a/vendor/cloud.google.com/go/videointelligence/apiv1beta2/doc.go b/vendor/cloud.google.com/go/videointelligence/apiv1beta2/doc.go
index 3f72b902f0..e89e696a8a 100644
--- a/vendor/cloud.google.com/go/videointelligence/apiv1beta2/doc.go
+++ b/vendor/cloud.google.com/go/videointelligence/apiv1beta2/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package videointelligence is an auto-generated package for the
// Google Cloud Video Intelligence API.
//
-// NOTE: This package is in alpha. It is not stable, and is likely to change.
+// NOTE: This package is in beta. It is not stable, and may be subject to changes.
//
// Google Cloud Video Intelligence API.
package videointelligence // import "cloud.google.com/go/videointelligence/apiv1beta2"
@@ -86,4 +86,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/videointelligence/apiv1beta2/video_intelligence_client.go b/vendor/cloud.google.com/go/videointelligence/apiv1beta2/video_intelligence_client.go
index d662165e71..3b88e5f4d3 100644
--- a/vendor/cloud.google.com/go/videointelligence/apiv1beta2/video_intelligence_client.go
+++ b/vendor/cloud.google.com/go/videointelligence/apiv1beta2/video_intelligence_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package videointelligence
@@ -22,7 +22,7 @@ import (
"cloud.google.com/go/longrunning"
lroauto "cloud.google.com/go/longrunning/autogen"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
videointelligencepb "google.golang.org/genproto/googleapis/cloud/videointelligence/v1beta2"
diff --git a/vendor/cloud.google.com/go/vision/apiv1/client.go b/vendor/cloud.google.com/go/vision/apiv1/client.go
index 77ae33e0c5..ab14a922d2 100644
--- a/vendor/cloud.google.com/go/vision/apiv1/client.go
+++ b/vendor/cloud.google.com/go/vision/apiv1/client.go
@@ -17,7 +17,7 @@ package vision
import (
"context"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
pb "google.golang.org/genproto/googleapis/cloud/vision/v1"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
diff --git a/vendor/cloud.google.com/go/vision/apiv1/doc.go b/vendor/cloud.google.com/go/vision/apiv1/doc.go
index 43445248ea..a533990029 100644
--- a/vendor/cloud.google.com/go/vision/apiv1/doc.go
+++ b/vendor/cloud.google.com/go/vision/apiv1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package vision is an auto-generated package for the
// Cloud Vision API.
@@ -89,4 +89,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/vision/apiv1/image_annotator_client.go b/vendor/cloud.google.com/go/vision/apiv1/image_annotator_client.go
index d82eedd558..e9c7078abb 100644
--- a/vendor/cloud.google.com/go/vision/apiv1/image_annotator_client.go
+++ b/vendor/cloud.google.com/go/vision/apiv1/image_annotator_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package vision
@@ -22,7 +22,7 @@ import (
"cloud.google.com/go/longrunning"
lroauto "cloud.google.com/go/longrunning/autogen"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1"
diff --git a/vendor/cloud.google.com/go/vision/apiv1/product_search_client.go b/vendor/cloud.google.com/go/vision/apiv1/product_search_client.go
index 2a835abb88..37cb88c4f1 100644
--- a/vendor/cloud.google.com/go/vision/apiv1/product_search_client.go
+++ b/vendor/cloud.google.com/go/vision/apiv1/product_search_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package vision
@@ -24,7 +24,7 @@ import (
"cloud.google.com/go/longrunning"
lroauto "cloud.google.com/go/longrunning/autogen"
"github.com/golang/protobuf/proto"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"google.golang.org/api/transport"
diff --git a/vendor/cloud.google.com/go/vision/apiv1p1beta1/doc.go b/vendor/cloud.google.com/go/vision/apiv1p1beta1/doc.go
index 317f2f61bd..bf40b3162a 100644
--- a/vendor/cloud.google.com/go/vision/apiv1p1beta1/doc.go
+++ b/vendor/cloud.google.com/go/vision/apiv1p1beta1/doc.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
// Package vision is an auto-generated package for the
// Google Cloud Vision API.
@@ -90,4 +90,4 @@ func versionGo() string {
return "UNKNOWN"
}
-const versionClient = "20181129"
+const versionClient = "20190121"
diff --git a/vendor/cloud.google.com/go/vision/apiv1p1beta1/image_annotator_client.go b/vendor/cloud.google.com/go/vision/apiv1p1beta1/image_annotator_client.go
index d0a7537539..0565374858 100644
--- a/vendor/cloud.google.com/go/vision/apiv1p1beta1/image_annotator_client.go
+++ b/vendor/cloud.google.com/go/vision/apiv1p1beta1/image_annotator_client.go
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// AUTO-GENERATED CODE. DO NOT EDIT.
+// Code generated by gapic-generator. DO NOT EDIT.
package vision
@@ -20,7 +20,7 @@ import (
"context"
"time"
- gax "github.com/googleapis/gax-go"
+ gax "github.com/googleapis/gax-go/v2"
"google.golang.org/api/option"
"google.golang.org/api/transport"
visionpb "google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1"
diff --git a/vendor/github.com/PuerkitoBio/purell/purell.go b/vendor/github.com/PuerkitoBio/purell/purell.go
index 645e1b76f7..6d0fc190a1 100644
--- a/vendor/github.com/PuerkitoBio/purell/purell.go
+++ b/vendor/github.com/PuerkitoBio/purell/purell.go
@@ -299,7 +299,7 @@ func sortQuery(u *url.URL) {
if len(q) > 0 {
arKeys := make([]string, len(q))
i := 0
- for k, _ := range q {
+ for k := range q {
arKeys[i] = k
i++
}
diff --git a/vendor/github.com/emicklei/go-restful/container.go b/vendor/github.com/emicklei/go-restful/container.go
index b4ad153e8d..061a8d7189 100644
--- a/vendor/github.com/emicklei/go-restful/container.go
+++ b/vendor/github.com/emicklei/go-restful/container.go
@@ -97,7 +97,7 @@ func (c *Container) Add(service *WebService) *Container {
// cannot have duplicate root paths
for _, each := range c.webServices {
if each.RootPath() == service.RootPath() {
- log.Printf("[restful] WebService with duplicate root path detected:['%v']", each)
+ log.Printf("WebService with duplicate root path detected:['%v']", each)
os.Exit(1)
}
}
@@ -139,7 +139,7 @@ func (c *Container) addHandler(service *WebService, serveMux *http.ServeMux) boo
func (c *Container) Remove(ws *WebService) error {
if c.ServeMux == http.DefaultServeMux {
- errMsg := fmt.Sprintf("[restful] cannot remove a WebService from a Container using the DefaultServeMux: ['%v']", ws)
+ errMsg := fmt.Sprintf("cannot remove a WebService from a Container using the DefaultServeMux: ['%v']", ws)
log.Print(errMsg)
return errors.New(errMsg)
}
@@ -168,7 +168,7 @@ func (c *Container) Remove(ws *WebService) error {
// This may be a security issue as it exposes sourcecode information.
func logStackOnRecover(panicReason interface{}, httpWriter http.ResponseWriter) {
var buffer bytes.Buffer
- buffer.WriteString(fmt.Sprintf("[restful] recover from panic situation: - %v\r\n", panicReason))
+ buffer.WriteString(fmt.Sprintf("recover from panic situation: - %v\r\n", panicReason))
for i := 2; ; i += 1 {
_, file, line, ok := runtime.Caller(i)
if !ok {
@@ -220,31 +220,37 @@ func (c *Container) dispatch(httpWriter http.ResponseWriter, httpRequest *http.R
}()
}
+ // Find best match Route ; err is non nil if no match was found
+ var webService *WebService
+ var route *Route
+ var err error
+ func() {
+ c.webServicesLock.RLock()
+ defer c.webServicesLock.RUnlock()
+ webService, route, err = c.router.SelectRoute(
+ c.webServices,
+ httpRequest)
+ }()
+
// Detect if compression is needed
// assume without compression, test for override
- if c.contentEncodingEnabled {
+ contentEncodingEnabled := c.contentEncodingEnabled
+ if route != nil && route.contentEncodingEnabled != nil {
+ contentEncodingEnabled = *route.contentEncodingEnabled
+ }
+ if contentEncodingEnabled {
doCompress, encoding := wantsCompressedResponse(httpRequest)
if doCompress {
var err error
writer, err = NewCompressingResponseWriter(httpWriter, encoding)
if err != nil {
- log.Print("[restful] unable to install compressor: ", err)
+ log.Print("unable to install compressor: ", err)
httpWriter.WriteHeader(http.StatusInternalServerError)
return
}
}
}
- // Find best match Route ; err is non nil if no match was found
- var webService *WebService
- var route *Route
- var err error
- func() {
- c.webServicesLock.RLock()
- defer c.webServicesLock.RUnlock()
- webService, route, err = c.router.SelectRoute(
- c.webServices,
- httpRequest)
- }()
+
if err != nil {
// a non-200 response has already been written
// run container filters anyway ; they should not touch the response...
diff --git a/vendor/github.com/emicklei/go-restful/examples/restful-curly-router.go b/vendor/github.com/emicklei/go-restful/examples/restful-curly-router.go
index 1bddb34af1..ce99ffa365 100644
--- a/vendor/github.com/emicklei/go-restful/examples/restful-curly-router.go
+++ b/vendor/github.com/emicklei/go-restful/examples/restful-curly-router.go
@@ -58,8 +58,8 @@ func (u UserResource) findUser(request *restful.Request, response *restful.Respo
}
}
-// POST http://localhost:8080/users
-// 1 Melissa Raspberry
+// PUT http://localhost:8080/users/1
+// 1 Melissa
//
func (u *UserResource) updateUser(request *restful.Request, response *restful.Response) {
usr := new(User)
@@ -73,8 +73,8 @@ func (u *UserResource) updateUser(request *restful.Request, response *restful.Re
}
}
-// PUT http://localhost:8080/users/1
-// 1 Melissa
+// POST http://localhost:8080/users
+// 1 Melissa Raspberry
//
func (u *UserResource) createUser(request *restful.Request, response *restful.Response) {
usr := User{Id: request.PathParameter("user-id")}
diff --git a/vendor/github.com/emicklei/go-restful/jsr311.go b/vendor/github.com/emicklei/go-restful/jsr311.go
index 4360b492ec..bc303ef709 100644
--- a/vendor/github.com/emicklei/go-restful/jsr311.go
+++ b/vendor/github.com/emicklei/go-restful/jsr311.go
@@ -99,11 +99,10 @@ func (r RouterJSR311) detectRoute(routes []Route, httpRequest *http.Request) (*R
}
return nil, NewError(http.StatusMethodNotAllowed, "405: Method Not Allowed")
}
- inputMediaOk := methodOk
// content-type
contentType := httpRequest.Header.Get(HEADER_ContentType)
- inputMediaOk = []Route{}
+ inputMediaOk := []Route{}
for _, each := range methodOk {
if each.matchesContentType(contentType) {
inputMediaOk = append(inputMediaOk, each)
diff --git a/vendor/github.com/emicklei/go-restful/route.go b/vendor/github.com/emicklei/go-restful/route.go
index f72bf98507..592638ab60 100644
--- a/vendor/github.com/emicklei/go-restful/route.go
+++ b/vendor/github.com/emicklei/go-restful/route.go
@@ -45,6 +45,9 @@ type Route struct {
// marks a route as deprecated
Deprecated bool
+
+ //Overrides the container.contentEncodingEnabled
+ contentEncodingEnabled *bool
}
// Initialize for Route
@@ -147,3 +150,8 @@ func tokenizePath(path string) []string {
func (r Route) String() string {
return r.Method + " " + r.Path
}
+
+// EnableContentEncoding (default=false) allows for GZIP or DEFLATE encoding of responses. Overrides the container.contentEncodingEnabled value.
+func (r Route) EnableContentEncoding(enabled bool) {
+ r.contentEncodingEnabled = &enabled
+}
diff --git a/vendor/github.com/emicklei/go-restful/route_builder.go b/vendor/github.com/emicklei/go-restful/route_builder.go
index 4ebecbd8c4..a4e74d10b8 100644
--- a/vendor/github.com/emicklei/go-restful/route_builder.go
+++ b/vendor/github.com/emicklei/go-restful/route_builder.go
@@ -261,11 +261,11 @@ func (b *RouteBuilder) typeNameHandler(handler TypeNameHandleFunction) *RouteBui
func (b *RouteBuilder) Build() Route {
pathExpr, err := newPathExpression(b.currentPath)
if err != nil {
- log.Printf("[restful] Invalid path:%s because:%v", b.currentPath, err)
+ log.Printf("Invalid path:%s because:%v", b.currentPath, err)
os.Exit(1)
}
if b.function == nil {
- log.Printf("[restful] No function specified for route:" + b.currentPath)
+ log.Printf("No function specified for route:" + b.currentPath)
os.Exit(1)
}
operationName := b.operation
diff --git a/vendor/github.com/emicklei/go-restful/web_service.go b/vendor/github.com/emicklei/go-restful/web_service.go
index f7e18a5859..77ba9a8cfc 100644
--- a/vendor/github.com/emicklei/go-restful/web_service.go
+++ b/vendor/github.com/emicklei/go-restful/web_service.go
@@ -60,7 +60,7 @@ func reflectTypeName(sample interface{}) string {
func (w *WebService) compilePathExpression() {
compiled, err := newPathExpression(w.rootPath)
if err != nil {
- log.Printf("[restful] invalid path:%s because:%v", w.rootPath, err)
+ log.Printf("invalid path:%s because:%v", w.rootPath, err)
os.Exit(1)
}
w.pathExpr = compiled
diff --git a/vendor/github.com/go-openapi/spec/bindata.go b/vendor/github.com/go-openapi/spec/bindata.go
index 1717ea1052..d5ec7b900a 100644
--- a/vendor/github.com/go-openapi/spec/bindata.go
+++ b/vendor/github.com/go-openapi/spec/bindata.go
@@ -1,14 +1,14 @@
-// Code generated by go-bindata.
+// Code generated by go-bindata. DO NOT EDIT.
// sources:
-// schemas/jsonschema-draft-04.json
-// schemas/v2/schema.json
-// DO NOT EDIT!
+// schemas/jsonschema-draft-04.json (4.357kB)
+// schemas/v2/schema.json (40.249kB)
package spec
import (
"bytes"
"compress/gzip"
+ "crypto/sha256"
"fmt"
"io"
"io/ioutil"
@@ -39,8 +39,9 @@ func bindataRead(data []byte, name string) ([]byte, error) {
}
type asset struct {
- bytes []byte
- info os.FileInfo
+ bytes []byte
+ info os.FileInfo
+ digest [sha256.Size]byte
}
type bindataFileInfo struct {
@@ -84,8 +85,8 @@ func jsonschemaDraft04JSON() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "jsonschema-draft-04.json", size: 4357, mode: os.FileMode(420), modTime: time.Unix(1523760398, 0)}
- a := &asset{bytes: bytes, info: info}
+ info := bindataFileInfo{name: "jsonschema-draft-04.json", size: 4357, mode: os.FileMode(436), modTime: time.Unix(1540282154, 0)}
+ a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe1, 0x48, 0x9d, 0xb, 0x47, 0x55, 0xf0, 0x27, 0x93, 0x30, 0x25, 0x91, 0xd3, 0xfc, 0xb8, 0xf0, 0x7b, 0x68, 0x93, 0xa8, 0x2a, 0x94, 0xf2, 0x48, 0x95, 0xf8, 0xe4, 0xed, 0xf1, 0x1b, 0x82, 0xe2}}
return a, nil
}
@@ -104,8 +105,8 @@ func v2SchemaJSON() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "v2/schema.json", size: 40249, mode: os.FileMode(420), modTime: time.Unix(1523760397, 0)}
- a := &asset{bytes: bytes, info: info}
+ info := bindataFileInfo{name: "v2/schema.json", size: 40249, mode: os.FileMode(436), modTime: time.Unix(1540282154, 0)}
+ a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xcb, 0x25, 0x27, 0xe8, 0x46, 0xae, 0x22, 0xc4, 0xf4, 0x8b, 0x1, 0x32, 0x4d, 0x1f, 0xf8, 0xdf, 0x75, 0x15, 0xc8, 0x2d, 0xc7, 0xed, 0xe, 0x7e, 0x0, 0x75, 0xc0, 0xf9, 0xd2, 0x1f, 0x75, 0x57}}
return a, nil
}
@@ -113,8 +114,8 @@ func v2SchemaJSON() (*asset, error) {
// It returns an error if the asset could not be found or
// could not be loaded.
func Asset(name string) ([]byte, error) {
- cannonicalName := strings.Replace(name, "\\", "/", -1)
- if f, ok := _bindata[cannonicalName]; ok {
+ canonicalName := strings.Replace(name, "\\", "/", -1)
+ if f, ok := _bindata[canonicalName]; ok {
a, err := f()
if err != nil {
return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err)
@@ -124,6 +125,12 @@ func Asset(name string) ([]byte, error) {
return nil, fmt.Errorf("Asset %s not found", name)
}
+// AssetString returns the asset contents as a string (instead of a []byte).
+func AssetString(name string) (string, error) {
+ data, err := Asset(name)
+ return string(data), err
+}
+
// MustAsset is like Asset but panics when Asset would return an error.
// It simplifies safe initialization of global variables.
func MustAsset(name string) []byte {
@@ -135,12 +142,18 @@ func MustAsset(name string) []byte {
return a
}
+// MustAssetString is like AssetString but panics when Asset would return an
+// error. It simplifies safe initialization of global variables.
+func MustAssetString(name string) string {
+ return string(MustAsset(name))
+}
+
// AssetInfo loads and returns the asset info for the given name.
// It returns an error if the asset could not be found or
// could not be loaded.
func AssetInfo(name string) (os.FileInfo, error) {
- cannonicalName := strings.Replace(name, "\\", "/", -1)
- if f, ok := _bindata[cannonicalName]; ok {
+ canonicalName := strings.Replace(name, "\\", "/", -1)
+ if f, ok := _bindata[canonicalName]; ok {
a, err := f()
if err != nil {
return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err)
@@ -150,6 +163,33 @@ func AssetInfo(name string) (os.FileInfo, error) {
return nil, fmt.Errorf("AssetInfo %s not found", name)
}
+// AssetDigest returns the digest of the file with the given name. It returns an
+// error if the asset could not be found or the digest could not be loaded.
+func AssetDigest(name string) ([sha256.Size]byte, error) {
+ canonicalName := strings.Replace(name, "\\", "/", -1)
+ if f, ok := _bindata[canonicalName]; ok {
+ a, err := f()
+ if err != nil {
+ return [sha256.Size]byte{}, fmt.Errorf("AssetDigest %s can't read by error: %v", name, err)
+ }
+ return a.digest, nil
+ }
+ return [sha256.Size]byte{}, fmt.Errorf("AssetDigest %s not found", name)
+}
+
+// Digests returns a map of all known files and their checksums.
+func Digests() (map[string][sha256.Size]byte, error) {
+ mp := make(map[string][sha256.Size]byte, len(_bindata))
+ for name := range _bindata {
+ a, err := _bindata[name]()
+ if err != nil {
+ return nil, err
+ }
+ mp[name] = a.digest
+ }
+ return mp, nil
+}
+
// AssetNames returns the names of the assets.
func AssetNames() []string {
names := make([]string, 0, len(_bindata))
@@ -162,7 +202,8 @@ func AssetNames() []string {
// _bindata is a table, holding each asset generator, mapped to its name.
var _bindata = map[string]func() (*asset, error){
"jsonschema-draft-04.json": jsonschemaDraft04JSON,
- "v2/schema.json": v2SchemaJSON,
+
+ "v2/schema.json": v2SchemaJSON,
}
// AssetDir returns the file names below a certain
@@ -174,15 +215,15 @@ var _bindata = map[string]func() (*asset, error){
// img/
// a.png
// b.png
-// then AssetDir("data") would return []string{"foo.txt", "img"}
-// AssetDir("data/img") would return []string{"a.png", "b.png"}
-// AssetDir("foo.txt") and AssetDir("notexist") would return an error
+// then AssetDir("data") would return []string{"foo.txt", "img"},
+// AssetDir("data/img") would return []string{"a.png", "b.png"},
+// AssetDir("foo.txt") and AssetDir("notexist") would return an error, and
// AssetDir("") will return []string{"data"}.
func AssetDir(name string) ([]string, error) {
node := _bintree
if len(name) != 0 {
- cannonicalName := strings.Replace(name, "\\", "/", -1)
- pathList := strings.Split(cannonicalName, "/")
+ canonicalName := strings.Replace(name, "\\", "/", -1)
+ pathList := strings.Split(canonicalName, "/")
for _, p := range pathList {
node = node.Children[p]
if node == nil {
@@ -212,7 +253,7 @@ var _bintree = &bintree{nil, map[string]*bintree{
}},
}}
-// RestoreAsset restores an asset under the given directory
+// RestoreAsset restores an asset under the given directory.
func RestoreAsset(dir, name string) error {
data, err := Asset(name)
if err != nil {
@@ -230,14 +271,10 @@ func RestoreAsset(dir, name string) error {
if err != nil {
return err
}
- err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
- if err != nil {
- return err
- }
- return nil
+ return os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
}
-// RestoreAssets restores an asset under the given directory recursively
+// RestoreAssets restores an asset under the given directory recursively.
func RestoreAssets(dir, name string) error {
children, err := AssetDir(name)
// File
@@ -255,6 +292,6 @@ func RestoreAssets(dir, name string) error {
}
func _filePath(dir, name string) string {
- cannonicalName := strings.Replace(name, "\\", "/", -1)
- return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...)
+ canonicalName := strings.Replace(name, "\\", "/", -1)
+ return filepath.Join(append([]string{dir}, strings.Split(canonicalName, "/")...)...)
}
diff --git a/vendor/github.com/go-openapi/spec/cache.go b/vendor/github.com/go-openapi/spec/cache.go
new file mode 100644
index 0000000000..3fada0daef
--- /dev/null
+++ b/vendor/github.com/go-openapi/spec/cache.go
@@ -0,0 +1,60 @@
+// Copyright 2015 go-swagger maintainers
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package spec
+
+import "sync"
+
+// ResolutionCache a cache for resolving urls
+type ResolutionCache interface {
+ Get(string) (interface{}, bool)
+ Set(string, interface{})
+}
+
+type simpleCache struct {
+ lock sync.RWMutex
+ store map[string]interface{}
+}
+
+// Get retrieves a cached URI
+func (s *simpleCache) Get(uri string) (interface{}, bool) {
+ debugLog("getting %q from resolution cache", uri)
+ s.lock.RLock()
+ v, ok := s.store[uri]
+ debugLog("got %q from resolution cache: %t", uri, ok)
+
+ s.lock.RUnlock()
+ return v, ok
+}
+
+// Set caches a URI
+func (s *simpleCache) Set(uri string, data interface{}) {
+ s.lock.Lock()
+ s.store[uri] = data
+ s.lock.Unlock()
+}
+
+var resCache ResolutionCache
+
+func init() {
+ resCache = initResolutionCache()
+}
+
+// initResolutionCache initializes the URI resolution cache
+func initResolutionCache() ResolutionCache {
+ return &simpleCache{store: map[string]interface{}{
+ "http://swagger.io/v2/schema.json": MustLoadSwagger20Schema(),
+ "http://json-schema.org/draft-04/schema": MustLoadJSONSchemaDraft04(),
+ }}
+}
diff --git a/vendor/github.com/go-openapi/spec/debug.go b/vendor/github.com/go-openapi/spec/debug.go
index 7edb95a614..389c528ff6 100644
--- a/vendor/github.com/go-openapi/spec/debug.go
+++ b/vendor/github.com/go-openapi/spec/debug.go
@@ -24,9 +24,9 @@ import (
var (
// Debug is true when the SWAGGER_DEBUG env var is not empty.
- // It enables a more verbose logging of validators.
+ // It enables a more verbose logging of this package.
Debug = os.Getenv("SWAGGER_DEBUG") != ""
- // validateLogger is a debug logger for this package
+ // specLogger is a debug logger for this package
specLogger *log.Logger
)
diff --git a/vendor/github.com/go-openapi/spec/expander.go b/vendor/github.com/go-openapi/spec/expander.go
index 456a9dd7ef..1e7fc8c490 100644
--- a/vendor/github.com/go-openapi/spec/expander.go
+++ b/vendor/github.com/go-openapi/spec/expander.go
@@ -17,20 +17,10 @@ package spec
import (
"encoding/json"
"fmt"
- "log"
- "net/url"
- "os"
- "path"
- "path/filepath"
- "reflect"
"strings"
- "sync"
-
- "github.com/go-openapi/jsonpointer"
- "github.com/go-openapi/swag"
)
-// ExpandOptions provides options for expand.
+// ExpandOptions provides options for spec expand
type ExpandOptions struct {
RelativeBase string
SkipSchemas bool
@@ -38,68 +28,6 @@ type ExpandOptions struct {
AbsoluteCircularRef bool
}
-// ResolutionCache a cache for resolving urls
-type ResolutionCache interface {
- Get(string) (interface{}, bool)
- Set(string, interface{})
-}
-
-type simpleCache struct {
- lock sync.RWMutex
- store map[string]interface{}
-}
-
-var resCache ResolutionCache
-
-func init() {
- resCache = initResolutionCache()
-}
-
-// initResolutionCache initializes the URI resolution cache
-func initResolutionCache() ResolutionCache {
- return &simpleCache{store: map[string]interface{}{
- "http://swagger.io/v2/schema.json": MustLoadSwagger20Schema(),
- "http://json-schema.org/draft-04/schema": MustLoadJSONSchemaDraft04(),
- }}
-}
-
-// resolverContext allows to share a context during spec processing.
-// At the moment, it just holds the index of circular references found.
-type resolverContext struct {
- // circulars holds all visited circular references, which allows shortcuts.
- // NOTE: this is not just a performance improvement: it is required to figure out
- // circular references which participate several cycles.
- // This structure is privately instantiated and needs not be locked against
- // concurrent access, unless we chose to implement a parallel spec walking.
- circulars map[string]bool
- basePath string
-}
-
-func newResolverContext(originalBasePath string) *resolverContext {
- return &resolverContext{
- circulars: make(map[string]bool),
- basePath: originalBasePath, // keep the root base path in context
- }
-}
-
-// Get retrieves a cached URI
-func (s *simpleCache) Get(uri string) (interface{}, bool) {
- debugLog("getting %q from resolution cache", uri)
- s.lock.RLock()
- v, ok := s.store[uri]
- debugLog("got %q from resolution cache: %t", uri, ok)
-
- s.lock.RUnlock()
- return v, ok
-}
-
-// Set caches a URI
-func (s *simpleCache) Set(uri string, data interface{}) {
- s.lock.Lock()
- s.store[uri] = data
- s.lock.Unlock()
-}
-
// ResolveRefWithBase resolves a reference against a context root with preservation of base path
func ResolveRefWithBase(root interface{}, ref *Ref, opts *ExpandOptions) (*Schema, error) {
resolver, err := defaultSchemaLoader(root, opts, nil, nil)
@@ -179,7 +107,10 @@ func ResolveResponseWithBase(root interface{}, ref Ref, opts *ExpandOptions) (*R
return result, nil
}
-// ResolveItems resolves header and parameter items reference against a context root and base path
+// ResolveItems resolves parameter items reference against a context root and base path.
+//
+// NOTE: stricly speaking, this construct is not supported by Swagger 2.0.
+// Similarly, $ref are forbidden in response headers.
func ResolveItems(root interface{}, ref Ref, opts *ExpandOptions) (*Items, error) {
resolver, err := defaultSchemaLoader(root, opts, nil, nil)
if err != nil {
@@ -213,341 +144,11 @@ func ResolvePathItem(root interface{}, ref Ref, opts *ExpandOptions) (*PathItem,
return result, nil
}
-type schemaLoader struct {
- root interface{}
- options *ExpandOptions
- cache ResolutionCache
- context *resolverContext
- loadDoc func(string) (json.RawMessage, error)
-}
-
-var idPtr, _ = jsonpointer.New("/id")
-var refPtr, _ = jsonpointer.New("/$ref")
-
-// PathLoader function to use when loading remote refs
-var PathLoader func(string) (json.RawMessage, error)
-
-func init() {
- PathLoader = func(path string) (json.RawMessage, error) {
- data, err := swag.LoadFromFileOrHTTP(path)
- if err != nil {
- return nil, err
- }
- return json.RawMessage(data), nil
- }
-}
-
-func defaultSchemaLoader(
- root interface{},
- expandOptions *ExpandOptions,
- cache ResolutionCache,
- context *resolverContext) (*schemaLoader, error) {
-
- if cache == nil {
- cache = resCache
- }
- if expandOptions == nil {
- expandOptions = &ExpandOptions{}
- }
- absBase, _ := absPath(expandOptions.RelativeBase)
- if context == nil {
- context = newResolverContext(absBase)
- }
- return &schemaLoader{
- root: root,
- options: expandOptions,
- cache: cache,
- context: context,
- loadDoc: func(path string) (json.RawMessage, error) {
- debugLog("fetching document at %q", path)
- return PathLoader(path)
- },
- }, nil
-}
-
-func idFromNode(node interface{}) (*Ref, error) {
- if idValue, _, err := idPtr.Get(node); err == nil {
- if refStr, ok := idValue.(string); ok && refStr != "" {
- idRef, err := NewRef(refStr)
- if err != nil {
- return nil, err
- }
- return &idRef, nil
- }
- }
- return nil, nil
-}
-
-func nextRef(startingNode interface{}, startingRef *Ref, ptr *jsonpointer.Pointer) *Ref {
- if startingRef == nil {
- return nil
- }
-
- if ptr == nil {
- return startingRef
- }
-
- ret := startingRef
- var idRef *Ref
- node := startingNode
-
- for _, tok := range ptr.DecodedTokens() {
- node, _, _ = jsonpointer.GetForToken(node, tok)
- if node == nil {
- break
- }
-
- idRef, _ = idFromNode(node)
- if idRef != nil {
- nw, err := ret.Inherits(*idRef)
- if err != nil {
- break
- }
- ret = nw
- }
-
- refRef, _, _ := refPtr.Get(node)
- if refRef != nil {
- var rf Ref
- switch value := refRef.(type) {
- case string:
- rf, _ = NewRef(value)
- }
- nw, err := ret.Inherits(rf)
- if err != nil {
- break
- }
- nwURL := nw.GetURL()
- if nwURL.Scheme == "file" || (nwURL.Scheme == "" && nwURL.Host == "") {
- nwpt := filepath.ToSlash(nwURL.Path)
- if filepath.IsAbs(nwpt) {
- _, err := os.Stat(nwpt)
- if err != nil {
- nwURL.Path = filepath.Join(".", nwpt)
- }
- }
- }
-
- ret = nw
- }
-
- }
-
- return ret
-}
-
-// normalize absolute path for cache.
-// on Windows, drive letters should be converted to lower as scheme in net/url.URL
-func normalizeAbsPath(path string) string {
- u, err := url.Parse(path)
- if err != nil {
- debugLog("normalize absolute path failed: %s", err)
- return path
- }
- return u.String()
-}
-
-// base or refPath could be a file path or a URL
-// given a base absolute path and a ref path, return the absolute path of refPath
-// 1) if refPath is absolute, return it
-// 2) if refPath is relative, join it with basePath keeping the scheme, hosts, and ports if exists
-// base could be a directory or a full file path
-func normalizePaths(refPath, base string) string {
- refURL, _ := url.Parse(refPath)
- if path.IsAbs(refURL.Path) || filepath.IsAbs(refPath) {
- // refPath is actually absolute
- if refURL.Host != "" {
- return refPath
- }
- parts := strings.Split(refPath, "#")
- result := filepath.FromSlash(parts[0])
- if len(parts) == 2 {
- result += "#" + parts[1]
- }
- return result
- }
-
- // relative refPath
- baseURL, _ := url.Parse(base)
- if !strings.HasPrefix(refPath, "#") {
- // combining paths
- if baseURL.Host != "" {
- baseURL.Path = path.Join(path.Dir(baseURL.Path), refURL.Path)
- } else { // base is a file
- newBase := fmt.Sprintf("%s#%s", filepath.Join(filepath.Dir(base), filepath.FromSlash(refURL.Path)), refURL.Fragment)
- return newBase
- }
-
- }
- // copying fragment from ref to base
- baseURL.Fragment = refURL.Fragment
- return baseURL.String()
-}
-
-// denormalizePaths returns to simplest notation on file $ref,
-// i.e. strips the absolute path and sets a path relative to the base path.
-//
-// This is currently used when we rewrite ref after a circular ref has been detected
-func denormalizeFileRef(ref *Ref, relativeBase, originalRelativeBase string) *Ref {
- debugLog("denormalizeFileRef for: %s", ref.String())
-
- if ref.String() == "" || ref.IsRoot() || ref.HasFragmentOnly {
- return ref
- }
- // strip relativeBase from URI
- relativeBaseURL, _ := url.Parse(relativeBase)
- relativeBaseURL.Fragment = ""
-
- if relativeBaseURL.IsAbs() && strings.HasPrefix(ref.String(), relativeBase) {
- // this should work for absolute URI (e.g. http://...): we have an exact match, just trim prefix
- r, _ := NewRef(strings.TrimPrefix(ref.String(), relativeBase))
- return &r
- }
-
- if relativeBaseURL.IsAbs() {
- // other absolute URL get unchanged (i.e. with a non-empty scheme)
- return ref
- }
-
- // for relative file URIs:
- originalRelativeBaseURL, _ := url.Parse(originalRelativeBase)
- originalRelativeBaseURL.Fragment = ""
- if strings.HasPrefix(ref.String(), originalRelativeBaseURL.String()) {
- // the resulting ref is in the expanded spec: return a local ref
- r, _ := NewRef(strings.TrimPrefix(ref.String(), originalRelativeBaseURL.String()))
- return &r
- }
-
- // check if we may set a relative path, considering the original base path for this spec.
- // Example:
- // spec is located at /mypath/spec.json
- // my normalized ref points to: /mypath/item.json#/target
- // expected result: item.json#/target
- parts := strings.Split(ref.String(), "#")
- relativePath, err := filepath.Rel(path.Dir(originalRelativeBaseURL.String()), parts[0])
- if err != nil {
- // there is no common ancestor (e.g. different drives on windows)
- // leaves the ref unchanged
- return ref
- }
- if len(parts) == 2 {
- relativePath += "#" + parts[1]
- }
- r, _ := NewRef(relativePath)
- return &r
-}
-
-// relativeBase could be an ABSOLUTE file path or an ABSOLUTE URL
-func normalizeFileRef(ref *Ref, relativeBase string) *Ref {
- // This is important for when the reference is pointing to the root schema
- if ref.String() == "" {
- r, _ := NewRef(relativeBase)
- return &r
- }
-
- debugLog("normalizing %s against %s", ref.String(), relativeBase)
-
- s := normalizePaths(ref.String(), relativeBase)
- r, _ := NewRef(s)
- return &r
-}
-
-func (r *schemaLoader) resolveRef(ref *Ref, target interface{}, basePath string) error {
- tgt := reflect.ValueOf(target)
- if tgt.Kind() != reflect.Ptr {
- return fmt.Errorf("resolve ref: target needs to be a pointer")
- }
-
- refURL := ref.GetURL()
- if refURL == nil {
- return nil
- }
-
- var res interface{}
- var data interface{}
- var err error
- // Resolve against the root if it isn't nil, and if ref is pointing at the root, or has a fragment only which means
- // it is pointing somewhere in the root.
- root := r.root
- if (ref.IsRoot() || ref.HasFragmentOnly) && root == nil && basePath != "" {
- if baseRef, erb := NewRef(basePath); erb == nil {
- root, _, _, _ = r.load(baseRef.GetURL())
- }
- }
- if (ref.IsRoot() || ref.HasFragmentOnly) && root != nil {
- data = root
- } else {
- baseRef := normalizeFileRef(ref, basePath)
- debugLog("current ref is: %s", ref.String())
- debugLog("current ref normalized file: %s", baseRef.String())
- data, _, _, err = r.load(baseRef.GetURL())
- if err != nil {
- return err
- }
- }
-
- res = data
- if ref.String() != "" {
- res, _, err = ref.GetPointer().Get(data)
- if err != nil {
- return err
- }
- }
- if err := swag.DynamicJSONToStruct(res, target); err != nil {
- return err
- }
-
- return nil
-}
-
-func (r *schemaLoader) load(refURL *url.URL) (interface{}, url.URL, bool, error) {
- debugLog("loading schema from url: %s", refURL)
- toFetch := *refURL
- toFetch.Fragment = ""
-
- normalized := normalizeAbsPath(toFetch.String())
-
- data, fromCache := r.cache.Get(normalized)
- if !fromCache {
- b, err := r.loadDoc(normalized)
- if err != nil {
- return nil, url.URL{}, false, err
- }
-
- if err := json.Unmarshal(b, &data); err != nil {
- return nil, url.URL{}, false, err
- }
- r.cache.Set(normalized, data)
- }
-
- return data, toFetch, fromCache, nil
-}
-
-// Resolve resolves a reference against basePath and stores the result in target
-// Resolve is not in charge of following references, it only resolves ref by following its URL
-// if the schema that ref is referring to has more refs in it. Resolve doesn't resolve them
-// if basePath is an empty string, ref is resolved against the root schema stored in the schemaLoader struct
-func (r *schemaLoader) Resolve(ref *Ref, target interface{}, basePath string) error {
- return r.resolveRef(ref, target, basePath)
-}
-
-// absPath returns the absolute path of a file
-func absPath(fname string) (string, error) {
- if strings.HasPrefix(fname, "http") {
- return fname, nil
- }
- if filepath.IsAbs(fname) {
- return fname, nil
- }
- wd, err := os.Getwd()
- return filepath.Join(wd, fname), err
-}
-
// ExpandSpec expands the references in a swagger spec
func ExpandSpec(spec *Swagger, options *ExpandOptions) error {
resolver, err := defaultSchemaLoader(spec, options, nil, nil)
// Just in case this ever returns an error.
- if shouldStopOnError(err, resolver.options) {
+ if resolver.shouldStopOnError(err) {
return err
}
@@ -561,7 +162,7 @@ func ExpandSpec(spec *Swagger, options *ExpandOptions) error {
for key, definition := range spec.Definitions {
var def *Schema
var err error
- if def, err = expandSchema(definition, []string{fmt.Sprintf("#/definitions/%s", key)}, resolver, specBasePath); shouldStopOnError(err, resolver.options) {
+ if def, err = expandSchema(definition, []string{fmt.Sprintf("#/definitions/%s", key)}, resolver, specBasePath); resolver.shouldStopOnError(err) {
return err
}
if def != nil {
@@ -570,23 +171,26 @@ func ExpandSpec(spec *Swagger, options *ExpandOptions) error {
}
}
- for key, parameter := range spec.Parameters {
- if err := expandParameter(¶meter, resolver, specBasePath); shouldStopOnError(err, resolver.options) {
+ for key := range spec.Parameters {
+ parameter := spec.Parameters[key]
+ if err := expandParameterOrResponse(¶meter, resolver, specBasePath); resolver.shouldStopOnError(err) {
return err
}
spec.Parameters[key] = parameter
}
- for key, response := range spec.Responses {
- if err := expandResponse(&response, resolver, specBasePath); shouldStopOnError(err, resolver.options) {
+ for key := range spec.Responses {
+ response := spec.Responses[key]
+ if err := expandParameterOrResponse(&response, resolver, specBasePath); resolver.shouldStopOnError(err) {
return err
}
spec.Responses[key] = response
}
if spec.Paths != nil {
- for key, path := range spec.Paths.Paths {
- if err := expandPathItem(&path, resolver, specBasePath); shouldStopOnError(err, resolver.options) {
+ for key := range spec.Paths.Paths {
+ path := spec.Paths.Paths[key]
+ if err := expandPathItem(&path, resolver, specBasePath); resolver.shouldStopOnError(err) {
return err
}
spec.Paths.Paths[key] = path
@@ -596,18 +200,6 @@ func ExpandSpec(spec *Swagger, options *ExpandOptions) error {
return nil
}
-func shouldStopOnError(err error, opts *ExpandOptions) bool {
- if err != nil && !opts.ContinueOnError {
- return true
- }
-
- if err != nil {
- log.Println(err)
- }
-
- return false
-}
-
// baseForRoot loads in the cache the root document and produces a fake "root" base path entry
// for further $ref resolution
func baseForRoot(root interface{}, cache ResolutionCache) string {
@@ -686,52 +278,6 @@ func expandItems(target Schema, parentRefs []string, resolver *schemaLoader, bas
return &target, nil
}
-// basePathFromSchemaID returns a new basePath based on an existing basePath and a schema ID
-func basePathFromSchemaID(oldBasePath, id string) string {
- u, err := url.Parse(oldBasePath)
- if err != nil {
- panic(err)
- }
- uid, err := url.Parse(id)
- if err != nil {
- panic(err)
- }
-
- if path.IsAbs(uid.Path) {
- return id
- }
- u.Path = path.Join(path.Dir(u.Path), uid.Path)
- return u.String()
-}
-
-// isCircular detects cycles in sequences of $ref.
-// It relies on a private context (which needs not be locked).
-func (r *schemaLoader) isCircular(ref *Ref, basePath string, parentRefs ...string) (foundCycle bool) {
- normalizedRef := normalizePaths(ref.String(), basePath)
- if _, ok := r.context.circulars[normalizedRef]; ok {
- // circular $ref has been already detected in another explored cycle
- foundCycle = true
- return
- }
- foundCycle = swag.ContainsStringsCI(parentRefs, normalizedRef)
- if foundCycle {
- r.context.circulars[normalizedRef] = true
- }
- return
-}
-
-func updateBasePath(transitive *schemaLoader, resolver *schemaLoader, basePath string) string {
- if transitive != resolver {
- debugLog("got a new resolver")
- if transitive.options != nil && transitive.options.RelativeBase != "" {
- basePath, _ = absPath(transitive.options.RelativeBase)
- debugLog("new basePath = %s", basePath)
- }
- }
-
- return basePath
-}
-
func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, basePath string) (*Schema, error) {
if target.Ref.String() == "" && target.Ref.IsRoot() {
// normalizing is important
@@ -741,8 +287,8 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
}
- /* change the base path of resolution when an ID is encountered
- otherwise the basePath should inherit the parent's */
+ // change the base path of resolution when an ID is encountered
+ // otherwise the basePath should inherit the parent's
// important: ID can be relative path
if target.ID != "" {
debugLog("schema has ID: %s", target.ID)
@@ -756,12 +302,11 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
basePath = normalizePaths(refPath, basePath)
}
- /* Explain here what this function does */
var t *Schema
- /* if Ref is found, everything else doesn't matter */
- /* Ref also changes the resolution scope of children expandSchema */
+ // if Ref is found, everything else doesn't matter
+ // Ref also changes the resolution scope of children expandSchema
if target.Ref.String() != "" {
- /* Here the resolution scope is changed because a $ref was encountered */
+ // here the resolution scope is changed because a $ref was encountered
normalizedRef := normalizeFileRef(&target.Ref, basePath)
normalizedBasePath := normalizedRef.RemoteURI()
@@ -779,31 +324,27 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
return &target, nil
}
- debugLog("basePath: %s", basePath)
- if Debug {
- b, _ := json.Marshal(target)
- debugLog("calling Resolve with target: %s", string(b))
- }
- if err := resolver.Resolve(&target.Ref, &t, basePath); shouldStopOnError(err, resolver.options) {
+ debugLog("basePath: %s: calling Resolve with target: %#v", basePath, target)
+ if err := resolver.Resolve(&target.Ref, &t, basePath); resolver.shouldStopOnError(err) {
return nil, err
}
if t != nil {
parentRefs = append(parentRefs, normalizedRef.String())
var err error
- transitiveResolver, err := transitiveResolver(basePath, target.Ref, resolver)
- if shouldStopOnError(err, resolver.options) {
+ transitiveResolver, err := resolver.transitiveResolver(basePath, target.Ref)
+ if transitiveResolver.shouldStopOnError(err) {
return nil, err
}
- basePath = updateBasePath(transitiveResolver, resolver, normalizedBasePath)
+ basePath = resolver.updateBasePath(transitiveResolver, normalizedBasePath)
return expandSchema(*t, parentRefs, transitiveResolver, basePath)
}
}
t, err := expandItems(target, parentRefs, resolver, basePath)
- if shouldStopOnError(err, resolver.options) {
+ if resolver.shouldStopOnError(err) {
return &target, err
}
if t != nil {
@@ -812,21 +353,21 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
for i := range target.AllOf {
t, err := expandSchema(target.AllOf[i], parentRefs, resolver, basePath)
- if shouldStopOnError(err, resolver.options) {
+ if resolver.shouldStopOnError(err) {
return &target, err
}
target.AllOf[i] = *t
}
for i := range target.AnyOf {
t, err := expandSchema(target.AnyOf[i], parentRefs, resolver, basePath)
- if shouldStopOnError(err, resolver.options) {
+ if resolver.shouldStopOnError(err) {
return &target, err
}
target.AnyOf[i] = *t
}
for i := range target.OneOf {
t, err := expandSchema(target.OneOf[i], parentRefs, resolver, basePath)
- if shouldStopOnError(err, resolver.options) {
+ if resolver.shouldStopOnError(err) {
return &target, err
}
if t != nil {
@@ -835,7 +376,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
}
if target.Not != nil {
t, err := expandSchema(*target.Not, parentRefs, resolver, basePath)
- if shouldStopOnError(err, resolver.options) {
+ if resolver.shouldStopOnError(err) {
return &target, err
}
if t != nil {
@@ -844,7 +385,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
}
for k := range target.Properties {
t, err := expandSchema(target.Properties[k], parentRefs, resolver, basePath)
- if shouldStopOnError(err, resolver.options) {
+ if resolver.shouldStopOnError(err) {
return &target, err
}
if t != nil {
@@ -853,7 +394,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
}
if target.AdditionalProperties != nil && target.AdditionalProperties.Schema != nil {
t, err := expandSchema(*target.AdditionalProperties.Schema, parentRefs, resolver, basePath)
- if shouldStopOnError(err, resolver.options) {
+ if resolver.shouldStopOnError(err) {
return &target, err
}
if t != nil {
@@ -862,7 +403,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
}
for k := range target.PatternProperties {
t, err := expandSchema(target.PatternProperties[k], parentRefs, resolver, basePath)
- if shouldStopOnError(err, resolver.options) {
+ if resolver.shouldStopOnError(err) {
return &target, err
}
if t != nil {
@@ -872,7 +413,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
for k := range target.Dependencies {
if target.Dependencies[k].Schema != nil {
t, err := expandSchema(*target.Dependencies[k].Schema, parentRefs, resolver, basePath)
- if shouldStopOnError(err, resolver.options) {
+ if resolver.shouldStopOnError(err) {
return &target, err
}
if t != nil {
@@ -882,7 +423,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
}
if target.AdditionalItems != nil && target.AdditionalItems.Schema != nil {
t, err := expandSchema(*target.AdditionalItems.Schema, parentRefs, resolver, basePath)
- if shouldStopOnError(err, resolver.options) {
+ if resolver.shouldStopOnError(err) {
return &target, err
}
if t != nil {
@@ -891,7 +432,7 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
}
for k := range target.Definitions {
t, err := expandSchema(target.Definitions[k], parentRefs, resolver, basePath)
- if shouldStopOnError(err, resolver.options) {
+ if resolver.shouldStopOnError(err) {
return &target, err
}
if t != nil {
@@ -901,75 +442,42 @@ func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, ba
return &target, nil
}
-func derefPathItem(pathItem *PathItem, parentRefs []string, resolver *schemaLoader, basePath string) error {
- curRef := pathItem.Ref.String()
- if curRef != "" {
- normalizedRef := normalizeFileRef(&pathItem.Ref, basePath)
- normalizedBasePath := normalizedRef.RemoteURI()
-
- if resolver.isCircular(normalizedRef, basePath, parentRefs...) {
- return nil
- }
-
- if err := resolver.Resolve(&pathItem.Ref, pathItem, basePath); shouldStopOnError(err, resolver.options) {
- return err
- }
-
- if pathItem.Ref.String() != "" && pathItem.Ref.String() != curRef && basePath != normalizedBasePath {
- parentRefs = append(parentRefs, normalizedRef.String())
- return derefPathItem(pathItem, parentRefs, resolver, normalizedBasePath)
- }
- }
-
- return nil
-}
-
func expandPathItem(pathItem *PathItem, resolver *schemaLoader, basePath string) error {
if pathItem == nil {
return nil
}
parentRefs := []string{}
- if err := derefPathItem(pathItem, parentRefs, resolver, basePath); shouldStopOnError(err, resolver.options) {
+ if err := resolver.deref(pathItem, parentRefs, basePath); resolver.shouldStopOnError(err) {
return err
}
if pathItem.Ref.String() != "" {
var err error
- resolver, err = transitiveResolver(basePath, pathItem.Ref, resolver)
- if shouldStopOnError(err, resolver.options) {
+ resolver, err = resolver.transitiveResolver(basePath, pathItem.Ref)
+ if resolver.shouldStopOnError(err) {
return err
}
}
pathItem.Ref = Ref{}
- // Currently unused:
- //parentRefs = parentRefs[0:]
-
for idx := range pathItem.Parameters {
- if err := expandParameter(&(pathItem.Parameters[idx]), resolver, basePath); shouldStopOnError(err, resolver.options) {
+ if err := expandParameterOrResponse(&(pathItem.Parameters[idx]), resolver, basePath); resolver.shouldStopOnError(err) {
return err
}
}
- if err := expandOperation(pathItem.Get, resolver, basePath); shouldStopOnError(err, resolver.options) {
- return err
+ ops := []*Operation{
+ pathItem.Get,
+ pathItem.Head,
+ pathItem.Options,
+ pathItem.Put,
+ pathItem.Post,
+ pathItem.Patch,
+ pathItem.Delete,
}
- if err := expandOperation(pathItem.Head, resolver, basePath); shouldStopOnError(err, resolver.options) {
- return err
- }
- if err := expandOperation(pathItem.Options, resolver, basePath); shouldStopOnError(err, resolver.options) {
- return err
- }
- if err := expandOperation(pathItem.Put, resolver, basePath); shouldStopOnError(err, resolver.options) {
- return err
- }
- if err := expandOperation(pathItem.Post, resolver, basePath); shouldStopOnError(err, resolver.options) {
- return err
- }
- if err := expandOperation(pathItem.Patch, resolver, basePath); shouldStopOnError(err, resolver.options) {
- return err
- }
- if err := expandOperation(pathItem.Delete, resolver, basePath); shouldStopOnError(err, resolver.options) {
- return err
+ for _, op := range ops {
+ if err := expandOperation(op, resolver, basePath); resolver.shouldStopOnError(err) {
+ return err
+ }
}
return nil
}
@@ -979,8 +487,9 @@ func expandOperation(op *Operation, resolver *schemaLoader, basePath string) err
return nil
}
- for i, param := range op.Parameters {
- if err := expandParameter(¶m, resolver, basePath); shouldStopOnError(err, resolver.options) {
+ for i := range op.Parameters {
+ param := op.Parameters[i]
+ if err := expandParameterOrResponse(¶m, resolver, basePath); resolver.shouldStopOnError(err) {
return err
}
op.Parameters[i] = param
@@ -988,11 +497,12 @@ func expandOperation(op *Operation, resolver *schemaLoader, basePath string) err
if op.Responses != nil {
responses := op.Responses
- if err := expandResponse(responses.Default, resolver, basePath); shouldStopOnError(err, resolver.options) {
+ if err := expandParameterOrResponse(responses.Default, resolver, basePath); resolver.shouldStopOnError(err) {
return err
}
- for code, response := range responses.StatusCodeResponses {
- if err := expandResponse(&response, resolver, basePath); shouldStopOnError(err, resolver.options) {
+ for code := range responses.StatusCodeResponses {
+ response := responses.StatusCodeResponses[code]
+ if err := expandParameterOrResponse(&response, resolver, basePath); resolver.shouldStopOnError(err) {
return err
}
responses.StatusCodeResponses[code] = response
@@ -1001,34 +511,6 @@ func expandOperation(op *Operation, resolver *schemaLoader, basePath string) err
return nil
}
-func transitiveResolver(basePath string, ref Ref, resolver *schemaLoader) (*schemaLoader, error) {
- if ref.IsRoot() || ref.HasFragmentOnly {
- return resolver, nil
- }
-
- baseRef, _ := NewRef(basePath)
- currentRef := normalizeFileRef(&ref, basePath)
- // Set a new root to resolve against
- if !strings.HasPrefix(currentRef.String(), baseRef.String()) {
- rootURL := currentRef.GetURL()
- rootURL.Fragment = ""
- root, _ := resolver.cache.Get(rootURL.String())
- var err error
-
- // shallow copy of resolver options to set a new RelativeBase when
- // traversing multiple documents
- newOptions := resolver.options
- newOptions.RelativeBase = rootURL.String()
- debugLog("setting new root: %s", newOptions.RelativeBase)
- resolver, err = defaultSchemaLoader(root, newOptions, resolver.cache, resolver.context)
- if err != nil {
- return nil, err
- }
- }
-
- return resolver, nil
-}
-
// ExpandResponseWithRoot expands a response based on a root document, not a fetchable document
func ExpandResponseWithRoot(response *Response, root interface{}, cache ResolutionCache) error {
opts := &ExpandOptions{
@@ -1043,7 +525,7 @@ func ExpandResponseWithRoot(response *Response, root interface{}, cache Resoluti
return err
}
- return expandResponse(response, resolver, opts.RelativeBase)
+ return expandParameterOrResponse(response, resolver, opts.RelativeBase)
}
// ExpandResponse expands a response based on a basepath
@@ -1062,70 +544,7 @@ func ExpandResponse(response *Response, basePath string) error {
return err
}
- return expandResponse(response, resolver, opts.RelativeBase)
-}
-
-func derefResponse(response *Response, parentRefs []string, resolver *schemaLoader, basePath string) error {
- curRef := response.Ref.String()
- if curRef != "" {
- /* Here the resolution scope is changed because a $ref was encountered */
- normalizedRef := normalizeFileRef(&response.Ref, basePath)
- normalizedBasePath := normalizedRef.RemoteURI()
-
- if resolver.isCircular(normalizedRef, basePath, parentRefs...) {
- return nil
- }
-
- if err := resolver.Resolve(&response.Ref, response, basePath); shouldStopOnError(err, resolver.options) {
- return err
- }
-
- if response.Ref.String() != "" && response.Ref.String() != curRef && basePath != normalizedBasePath {
- parentRefs = append(parentRefs, normalizedRef.String())
- return derefResponse(response, parentRefs, resolver, normalizedBasePath)
- }
- }
-
- return nil
-}
-
-func expandResponse(response *Response, resolver *schemaLoader, basePath string) error {
- if response == nil {
- return nil
- }
- parentRefs := []string{}
- if err := derefResponse(response, parentRefs, resolver, basePath); shouldStopOnError(err, resolver.options) {
- return err
- }
- if response.Ref.String() != "" {
- transitiveResolver, err := transitiveResolver(basePath, response.Ref, resolver)
- if shouldStopOnError(err, transitiveResolver.options) {
- return err
- }
- basePath = updateBasePath(transitiveResolver, resolver, basePath)
- resolver = transitiveResolver
- }
- if response.Schema != nil && response.Schema.Ref.String() != "" {
- // schema expanded to a $ref in another root
- var ern error
- response.Schema.Ref, ern = NewRef(normalizePaths(response.Schema.Ref.String(), response.Ref.RemoteURI()))
- if ern != nil {
- return ern
- }
- }
- response.Ref = Ref{}
-
- parentRefs = parentRefs[0:]
- if !resolver.options.SkipSchemas && response.Schema != nil {
- // parentRefs = append(parentRefs, response.Schema.Ref.String())
- s, err := expandSchema(*response.Schema, parentRefs, resolver, basePath)
- if shouldStopOnError(err, resolver.options) {
- return err
- }
- *response.Schema = *s
- }
-
- return nil
+ return expandParameterOrResponse(response, resolver, opts.RelativeBase)
}
// ExpandParameterWithRoot expands a parameter based on a root document, not a fetchable document
@@ -1142,10 +561,10 @@ func ExpandParameterWithRoot(parameter *Parameter, root interface{}, cache Resol
return err
}
- return expandParameter(parameter, resolver, opts.RelativeBase)
+ return expandParameterOrResponse(parameter, resolver, opts.RelativeBase)
}
-// ExpandParameter expands a parameter based on a basepath
+// ExpandParameter expands a parameter based on a basepath.
// This is the exported version of expandParameter
// all refs inside parameter will be resolved relative to basePath
func ExpandParameter(parameter *Parameter, basePath string) error {
@@ -1161,67 +580,71 @@ func ExpandParameter(parameter *Parameter, basePath string) error {
return err
}
- return expandParameter(parameter, resolver, opts.RelativeBase)
+ return expandParameterOrResponse(parameter, resolver, opts.RelativeBase)
}
-func derefParameter(parameter *Parameter, parentRefs []string, resolver *schemaLoader, basePath string) error {
- curRef := parameter.Ref.String()
- if curRef != "" {
- normalizedRef := normalizeFileRef(¶meter.Ref, basePath)
- normalizedBasePath := normalizedRef.RemoteURI()
-
- if resolver.isCircular(normalizedRef, basePath, parentRefs...) {
- return nil
- }
-
- if err := resolver.Resolve(¶meter.Ref, parameter, basePath); shouldStopOnError(err, resolver.options) {
- return err
+func getRefAndSchema(input interface{}) (*Ref, *Schema, error) {
+ var ref *Ref
+ var sch *Schema
+ switch refable := input.(type) {
+ case *Parameter:
+ if refable == nil {
+ return nil, nil, nil
}
-
- if parameter.Ref.String() != "" && parameter.Ref.String() != curRef && basePath != normalizedBasePath {
- parentRefs = append(parentRefs, normalizedRef.String())
- return derefParameter(parameter, parentRefs, resolver, normalizedBasePath)
+ ref = &refable.Ref
+ sch = refable.Schema
+ case *Response:
+ if refable == nil {
+ return nil, nil, nil
}
+ ref = &refable.Ref
+ sch = refable.Schema
+ default:
+ return nil, nil, fmt.Errorf("expand: unsupported type %T. Input should be of type *Parameter or *Response", input)
}
-
- return nil
+ return ref, sch, nil
}
-func expandParameter(parameter *Parameter, resolver *schemaLoader, basePath string) error {
- if parameter == nil {
+func expandParameterOrResponse(input interface{}, resolver *schemaLoader, basePath string) error {
+ ref, _, err := getRefAndSchema(input)
+ if err != nil {
+ return err
+ }
+ if ref == nil {
return nil
}
-
parentRefs := []string{}
- if err := derefParameter(parameter, parentRefs, resolver, basePath); shouldStopOnError(err, resolver.options) {
+ if err := resolver.deref(input, parentRefs, basePath); resolver.shouldStopOnError(err) {
return err
}
- if parameter.Ref.String() != "" {
- transitiveResolver, err := transitiveResolver(basePath, parameter.Ref, resolver)
- if shouldStopOnError(err, transitiveResolver.options) {
+ ref, sch, _ := getRefAndSchema(input)
+ if ref.String() != "" {
+ transitiveResolver, err := resolver.transitiveResolver(basePath, *ref)
+ if transitiveResolver.shouldStopOnError(err) {
return err
}
- basePath = updateBasePath(transitiveResolver, resolver, basePath)
+ basePath = resolver.updateBasePath(transitiveResolver, basePath)
resolver = transitiveResolver
}
- if parameter.Schema != nil && parameter.Schema.Ref.String() != "" {
+ if sch != nil && sch.Ref.String() != "" {
// schema expanded to a $ref in another root
var ern error
- parameter.Schema.Ref, ern = NewRef(normalizePaths(parameter.Schema.Ref.String(), parameter.Ref.RemoteURI()))
+ sch.Ref, ern = NewRef(normalizePaths(sch.Ref.String(), ref.RemoteURI()))
if ern != nil {
return ern
}
}
- parameter.Ref = Ref{}
+ if ref != nil {
+ *ref = Ref{}
+ }
- parentRefs = parentRefs[0:]
- if !resolver.options.SkipSchemas && parameter.Schema != nil {
- s, err := expandSchema(*parameter.Schema, parentRefs, resolver, basePath)
- if shouldStopOnError(err, resolver.options) {
+ if !resolver.options.SkipSchemas && sch != nil {
+ s, err := expandSchema(*sch, parentRefs, resolver, basePath)
+ if resolver.shouldStopOnError(err) {
return err
}
- *parameter.Schema = *s
+ *sch = *s
}
return nil
}
diff --git a/vendor/github.com/go-openapi/spec/header.go b/vendor/github.com/go-openapi/spec/header.go
index 82f77f7709..39efe452bb 100644
--- a/vendor/github.com/go-openapi/spec/header.go
+++ b/vendor/github.com/go-openapi/spec/header.go
@@ -22,6 +22,10 @@ import (
"github.com/go-openapi/swag"
)
+const (
+ jsonArray = "array"
+)
+
// HeaderProps describes a response header
type HeaderProps struct {
Description string `json:"description,omitempty"`
@@ -57,7 +61,7 @@ func (h *Header) Typed(tpe, format string) *Header {
// CollectionOf a fluent builder method for an array item
func (h *Header) CollectionOf(items *Items, format string) *Header {
- h.Type = "array"
+ h.Type = jsonArray
h.Items = items
h.CollectionFormat = format
return h
diff --git a/vendor/github.com/go-openapi/spec/info.go b/vendor/github.com/go-openapi/spec/info.go
index cfb37ec12a..c458b49b21 100644
--- a/vendor/github.com/go-openapi/spec/info.go
+++ b/vendor/github.com/go-openapi/spec/info.go
@@ -161,8 +161,5 @@ func (i *Info) UnmarshalJSON(data []byte) error {
if err := json.Unmarshal(data, &i.InfoProps); err != nil {
return err
}
- if err := json.Unmarshal(data, &i.VendorExtensible); err != nil {
- return err
- }
- return nil
+ return json.Unmarshal(data, &i.VendorExtensible)
}
diff --git a/vendor/github.com/go-openapi/spec/items.go b/vendor/github.com/go-openapi/spec/items.go
index cf42989716..78389317e4 100644
--- a/vendor/github.com/go-openapi/spec/items.go
+++ b/vendor/github.com/go-openapi/spec/items.go
@@ -22,6 +22,10 @@ import (
"github.com/go-openapi/swag"
)
+const (
+ jsonRef = "$ref"
+)
+
// SimpleSchema describe swagger simple schemas for parameters and headers
type SimpleSchema struct {
Type string `json:"type,omitempty"`
@@ -89,7 +93,7 @@ func (i *Items) Typed(tpe, format string) *Items {
// CollectionOf a fluent builder method for an array item
func (i *Items) CollectionOf(items *Items, format string) *Items {
- i.Type = "array"
+ i.Type = jsonArray
i.Items = items
i.CollectionFormat = format
return i
@@ -217,7 +221,7 @@ func (i Items) MarshalJSON() ([]byte, error) {
// JSONLookup look up a value by the json property name
func (i Items) JSONLookup(token string) (interface{}, error) {
- if token == "$ref" {
+ if token == jsonRef {
return &i.Ref, nil
}
diff --git a/vendor/github.com/go-openapi/spec/normalizer.go b/vendor/github.com/go-openapi/spec/normalizer.go
new file mode 100644
index 0000000000..b8957e7c0c
--- /dev/null
+++ b/vendor/github.com/go-openapi/spec/normalizer.go
@@ -0,0 +1,152 @@
+// Copyright 2015 go-swagger maintainers
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package spec
+
+import (
+ "fmt"
+ "net/url"
+ "os"
+ "path"
+ "path/filepath"
+ "strings"
+)
+
+// normalize absolute path for cache.
+// on Windows, drive letters should be converted to lower as scheme in net/url.URL
+func normalizeAbsPath(path string) string {
+ u, err := url.Parse(path)
+ if err != nil {
+ debugLog("normalize absolute path failed: %s", err)
+ return path
+ }
+ return u.String()
+}
+
+// base or refPath could be a file path or a URL
+// given a base absolute path and a ref path, return the absolute path of refPath
+// 1) if refPath is absolute, return it
+// 2) if refPath is relative, join it with basePath keeping the scheme, hosts, and ports if exists
+// base could be a directory or a full file path
+func normalizePaths(refPath, base string) string {
+ refURL, _ := url.Parse(refPath)
+ if path.IsAbs(refURL.Path) || filepath.IsAbs(refPath) {
+ // refPath is actually absolute
+ if refURL.Host != "" {
+ return refPath
+ }
+ parts := strings.Split(refPath, "#")
+ result := filepath.FromSlash(parts[0])
+ if len(parts) == 2 {
+ result += "#" + parts[1]
+ }
+ return result
+ }
+
+ // relative refPath
+ baseURL, _ := url.Parse(base)
+ if !strings.HasPrefix(refPath, "#") {
+ // combining paths
+ if baseURL.Host != "" {
+ baseURL.Path = path.Join(path.Dir(baseURL.Path), refURL.Path)
+ } else { // base is a file
+ newBase := fmt.Sprintf("%s#%s", filepath.Join(filepath.Dir(base), filepath.FromSlash(refURL.Path)), refURL.Fragment)
+ return newBase
+ }
+
+ }
+ // copying fragment from ref to base
+ baseURL.Fragment = refURL.Fragment
+ return baseURL.String()
+}
+
+// denormalizePaths returns to simplest notation on file $ref,
+// i.e. strips the absolute path and sets a path relative to the base path.
+//
+// This is currently used when we rewrite ref after a circular ref has been detected
+func denormalizeFileRef(ref *Ref, relativeBase, originalRelativeBase string) *Ref {
+ debugLog("denormalizeFileRef for: %s", ref.String())
+
+ if ref.String() == "" || ref.IsRoot() || ref.HasFragmentOnly {
+ return ref
+ }
+ // strip relativeBase from URI
+ relativeBaseURL, _ := url.Parse(relativeBase)
+ relativeBaseURL.Fragment = ""
+
+ if relativeBaseURL.IsAbs() && strings.HasPrefix(ref.String(), relativeBase) {
+ // this should work for absolute URI (e.g. http://...): we have an exact match, just trim prefix
+ r, _ := NewRef(strings.TrimPrefix(ref.String(), relativeBase))
+ return &r
+ }
+
+ if relativeBaseURL.IsAbs() {
+ // other absolute URL get unchanged (i.e. with a non-empty scheme)
+ return ref
+ }
+
+ // for relative file URIs:
+ originalRelativeBaseURL, _ := url.Parse(originalRelativeBase)
+ originalRelativeBaseURL.Fragment = ""
+ if strings.HasPrefix(ref.String(), originalRelativeBaseURL.String()) {
+ // the resulting ref is in the expanded spec: return a local ref
+ r, _ := NewRef(strings.TrimPrefix(ref.String(), originalRelativeBaseURL.String()))
+ return &r
+ }
+
+ // check if we may set a relative path, considering the original base path for this spec.
+ // Example:
+ // spec is located at /mypath/spec.json
+ // my normalized ref points to: /mypath/item.json#/target
+ // expected result: item.json#/target
+ parts := strings.Split(ref.String(), "#")
+ relativePath, err := filepath.Rel(path.Dir(originalRelativeBaseURL.String()), parts[0])
+ if err != nil {
+ // there is no common ancestor (e.g. different drives on windows)
+ // leaves the ref unchanged
+ return ref
+ }
+ if len(parts) == 2 {
+ relativePath += "#" + parts[1]
+ }
+ r, _ := NewRef(relativePath)
+ return &r
+}
+
+// relativeBase could be an ABSOLUTE file path or an ABSOLUTE URL
+func normalizeFileRef(ref *Ref, relativeBase string) *Ref {
+ // This is important for when the reference is pointing to the root schema
+ if ref.String() == "" {
+ r, _ := NewRef(relativeBase)
+ return &r
+ }
+
+ debugLog("normalizing %s against %s", ref.String(), relativeBase)
+
+ s := normalizePaths(ref.String(), relativeBase)
+ r, _ := NewRef(s)
+ return &r
+}
+
+// absPath returns the absolute path of a file
+func absPath(fname string) (string, error) {
+ if strings.HasPrefix(fname, "http") {
+ return fname, nil
+ }
+ if filepath.IsAbs(fname) {
+ return fname, nil
+ }
+ wd, err := os.Getwd()
+ return filepath.Join(wd, fname), err
+}
diff --git a/vendor/github.com/go-openapi/spec/operation.go b/vendor/github.com/go-openapi/spec/operation.go
index 344e317765..b1ebd59945 100644
--- a/vendor/github.com/go-openapi/spec/operation.go
+++ b/vendor/github.com/go-openapi/spec/operation.go
@@ -18,6 +18,7 @@ import (
"bytes"
"encoding/gob"
"encoding/json"
+ "sort"
"github.com/go-openapi/jsonpointer"
"github.com/go-openapi/swag"
@@ -30,17 +31,21 @@ func init() {
}
// OperationProps describes an operation
+//
+// NOTES:
+// - schemes, when present must be from [http, https, ws, wss]: see validate
+// - Security is handled as a special case: see MarshalJSON function
type OperationProps struct {
Description string `json:"description,omitempty"`
Consumes []string `json:"consumes,omitempty"`
Produces []string `json:"produces,omitempty"`
- Schemes []string `json:"schemes,omitempty"` // the scheme, when present must be from [http, https, ws, wss]
+ Schemes []string `json:"schemes,omitempty"`
Tags []string `json:"tags,omitempty"`
Summary string `json:"summary,omitempty"`
ExternalDocs *ExternalDocumentation `json:"externalDocs,omitempty"`
ID string `json:"operationId,omitempty"`
Deprecated bool `json:"deprecated,omitempty"`
- Security []map[string][]string `json:"security,omitempty"` //Special case, see MarshalJSON function
+ Security []map[string][]string `json:"security,omitempty"`
Parameters []Parameter `json:"parameters,omitempty"`
Responses *Responses `json:"responses,omitempty"`
}
@@ -84,11 +89,17 @@ func (o *Operation) SuccessResponse() (*Response, int, bool) {
return nil, 0, false
}
- for k, v := range o.Responses.StatusCodeResponses {
- if k/100 == 2 {
- return &v, k, true
+ responseCodes := make([]int, 0, len(o.Responses.StatusCodeResponses))
+ for k := range o.Responses.StatusCodeResponses {
+ if k >= 200 && k < 300 {
+ responseCodes = append(responseCodes, k)
}
}
+ if len(responseCodes) > 0 {
+ sort.Ints(responseCodes)
+ v := o.Responses.StatusCodeResponses[responseCodes[0]]
+ return &v, responseCodes[0], true
+ }
return o.Responses.Default, 0, false
}
@@ -107,10 +118,7 @@ func (o *Operation) UnmarshalJSON(data []byte) error {
if err := json.Unmarshal(data, &o.OperationProps); err != nil {
return err
}
- if err := json.Unmarshal(data, &o.VendorExtensible); err != nil {
- return err
- }
- return nil
+ return json.Unmarshal(data, &o.VendorExtensible)
}
// MarshalJSON converts this items object to JSON
@@ -224,7 +232,7 @@ func (o *Operation) AddParam(param *Parameter) *Operation {
// RemoveParam removes a parameter from the operation
func (o *Operation) RemoveParam(name, in string) *Operation {
for i, p := range o.Parameters {
- if p.Name == name && p.In == name {
+ if p.Name == name && p.In == in {
o.Parameters = append(o.Parameters[:i], o.Parameters[i+1:]...)
return o
}
diff --git a/vendor/github.com/go-openapi/spec/parameter.go b/vendor/github.com/go-openapi/spec/parameter.go
index cb1a88d252..cecdff5456 100644
--- a/vendor/github.com/go-openapi/spec/parameter.go
+++ b/vendor/github.com/go-openapi/spec/parameter.go
@@ -39,7 +39,8 @@ func PathParam(name string) *Parameter {
// BodyParam creates a body parameter
func BodyParam(name string, schema *Schema) *Parameter {
- return &Parameter{ParamProps: ParamProps{Name: name, In: "body", Schema: schema}, SimpleSchema: SimpleSchema{Type: "object"}}
+ return &Parameter{ParamProps: ParamProps{Name: name, In: "body", Schema: schema},
+ SimpleSchema: SimpleSchema{Type: "object"}}
}
// FormDataParam creates a body parameter
@@ -49,12 +50,15 @@ func FormDataParam(name string) *Parameter {
// FileParam creates a body parameter
func FileParam(name string) *Parameter {
- return &Parameter{ParamProps: ParamProps{Name: name, In: "formData"}, SimpleSchema: SimpleSchema{Type: "file"}}
+ return &Parameter{ParamProps: ParamProps{Name: name, In: "formData"},
+ SimpleSchema: SimpleSchema{Type: "file"}}
}
// SimpleArrayParam creates a param for a simple array (string, int, date etc)
func SimpleArrayParam(name, tpe, fmt string) *Parameter {
- return &Parameter{ParamProps: ParamProps{Name: name}, SimpleSchema: SimpleSchema{Type: "array", CollectionFormat: "csv", Items: &Items{SimpleSchema: SimpleSchema{Type: "string", Format: fmt}}}}
+ return &Parameter{ParamProps: ParamProps{Name: name},
+ SimpleSchema: SimpleSchema{Type: jsonArray, CollectionFormat: "csv",
+ Items: &Items{SimpleSchema: SimpleSchema{Type: "string", Format: fmt}}}}
}
// ParamRef creates a parameter that's a json reference
@@ -65,25 +69,43 @@ func ParamRef(uri string) *Parameter {
}
// ParamProps describes the specific attributes of an operation parameter
+//
+// NOTE:
+// - Schema is defined when "in" == "body": see validate
+// - AllowEmptyValue is allowed where "in" == "query" || "formData"
type ParamProps struct {
Description string `json:"description,omitempty"`
Name string `json:"name,omitempty"`
In string `json:"in,omitempty"`
Required bool `json:"required,omitempty"`
- Schema *Schema `json:"schema,omitempty"` // when in == "body"
- AllowEmptyValue bool `json:"allowEmptyValue,omitempty"` // when in == "query" || "formData"
+ Schema *Schema `json:"schema,omitempty"`
+ AllowEmptyValue bool `json:"allowEmptyValue,omitempty"`
}
// Parameter a unique parameter is defined by a combination of a [name](#parameterName) and [location](#parameterIn).
//
// There are five possible parameter types.
-// * Path - Used together with [Path Templating](#pathTemplating), where the parameter value is actually part of the operation's URL. This does not include the host or base path of the API. For example, in `/items/{itemId}`, the path parameter is `itemId`.
+// * Path - Used together with [Path Templating](#pathTemplating), where the parameter value is actually part
+// of the operation's URL. This does not include the host or base path of the API. For example, in `/items/{itemId}`,
+// the path parameter is `itemId`.
// * Query - Parameters that are appended to the URL. For example, in `/items?id=###`, the query parameter is `id`.
// * Header - Custom headers that are expected as part of the request.
-// * Body - The payload that's appended to the HTTP request. Since there can only be one payload, there can only be *one* body parameter. The name of the body parameter has no effect on the parameter itself and is used for documentation purposes only. Since Form parameters are also in the payload, body and form parameters cannot exist together for the same operation.
-// * Form - Used to describe the payload of an HTTP request when either `application/x-www-form-urlencoded` or `multipart/form-data` are used as the content type of the request (in Swagger's definition, the [`consumes`](#operationConsumes) property of an operation). This is the only parameter type that can be used to send files, thus supporting the `file` type. Since form parameters are sent in the payload, they cannot be declared together with a body parameter for the same operation. Form parameters have a different format based on the content-type used (for further details, consult http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4):
-// * `application/x-www-form-urlencoded` - Similar to the format of Query parameters but as a payload. For example, `foo=1&bar=swagger` - both `foo` and `bar` are form parameters. This is normally used for simple parameters that are being transferred.
-// * `multipart/form-data` - each parameter takes a section in the payload with an internal header. For example, for the header `Content-Disposition: form-data; name="submit-name"` the name of the parameter is `submit-name`. This type of form parameters is more commonly used for file transfers.
+// * Body - The payload that's appended to the HTTP request. Since there can only be one payload, there can only be
+// _one_ body parameter. The name of the body parameter has no effect on the parameter itself and is used for
+// documentation purposes only. Since Form parameters are also in the payload, body and form parameters cannot exist
+// together for the same operation.
+// * Form - Used to describe the payload of an HTTP request when either `application/x-www-form-urlencoded` or
+// `multipart/form-data` are used as the content type of the request (in Swagger's definition,
+// the [`consumes`](#operationConsumes) property of an operation). This is the only parameter type that can be used
+// to send files, thus supporting the `file` type. Since form parameters are sent in the payload, they cannot be
+// declared together with a body parameter for the same operation. Form parameters have a different format based on
+// the content-type used (for further details, consult http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4).
+// * `application/x-www-form-urlencoded` - Similar to the format of Query parameters but as a payload.
+// For example, `foo=1&bar=swagger` - both `foo` and `bar` are form parameters. This is normally used for simple
+// parameters that are being transferred.
+// * `multipart/form-data` - each parameter takes a section in the payload with an internal header.
+// For example, for the header `Content-Disposition: form-data; name="submit-name"` the name of the parameter is
+// `submit-name`. This type of form parameters is more commonly used for file transfers.
//
// For more information: http://goo.gl/8us55a#parameterObject
type Parameter struct {
@@ -99,7 +121,7 @@ func (p Parameter) JSONLookup(token string) (interface{}, error) {
if ex, ok := p.Extensions[token]; ok {
return &ex, nil
}
- if token == "$ref" {
+ if token == jsonRef {
return &p.Ref, nil
}
@@ -148,7 +170,7 @@ func (p *Parameter) Typed(tpe, format string) *Parameter {
// CollectionOf a fluent builder method for an array parameter
func (p *Parameter) CollectionOf(items *Items, format string) *Parameter {
- p.Type = "array"
+ p.Type = jsonArray
p.Items = items
p.CollectionFormat = format
return p
@@ -270,10 +292,7 @@ func (p *Parameter) UnmarshalJSON(data []byte) error {
if err := json.Unmarshal(data, &p.VendorExtensible); err != nil {
return err
}
- if err := json.Unmarshal(data, &p.ParamProps); err != nil {
- return err
- }
- return nil
+ return json.Unmarshal(data, &p.ParamProps)
}
// MarshalJSON converts this items object to JSON
diff --git a/vendor/github.com/go-openapi/spec/path_item.go b/vendor/github.com/go-openapi/spec/path_item.go
index a8ae63ece5..68fc8e9014 100644
--- a/vendor/github.com/go-openapi/spec/path_item.go
+++ b/vendor/github.com/go-openapi/spec/path_item.go
@@ -50,7 +50,7 @@ func (p PathItem) JSONLookup(token string) (interface{}, error) {
if ex, ok := p.Extensions[token]; ok {
return &ex, nil
}
- if token == "$ref" {
+ if token == jsonRef {
return &p.Ref, nil
}
r, _, err := jsonpointer.GetForToken(p.PathItemProps, token)
@@ -65,10 +65,7 @@ func (p *PathItem) UnmarshalJSON(data []byte) error {
if err := json.Unmarshal(data, &p.VendorExtensible); err != nil {
return err
}
- if err := json.Unmarshal(data, &p.PathItemProps); err != nil {
- return err
- }
- return nil
+ return json.Unmarshal(data, &p.PathItemProps)
}
// MarshalJSON converts this items object to JSON
diff --git a/vendor/github.com/go-openapi/spec/response.go b/vendor/github.com/go-openapi/spec/response.go
index 586db0d780..27729c1d93 100644
--- a/vendor/github.com/go-openapi/spec/response.go
+++ b/vendor/github.com/go-openapi/spec/response.go
@@ -58,10 +58,7 @@ func (r *Response) UnmarshalJSON(data []byte) error {
if err := json.Unmarshal(data, &r.Refable); err != nil {
return err
}
- if err := json.Unmarshal(data, &r.VendorExtensible); err != nil {
- return err
- }
- return nil
+ return json.Unmarshal(data, &r.VendorExtensible)
}
// MarshalJSON converts this items object to JSON
diff --git a/vendor/github.com/go-openapi/spec/schema.go b/vendor/github.com/go-openapi/spec/schema.go
index b9481e29bc..ce30d26e32 100644
--- a/vendor/github.com/go-openapi/spec/schema.go
+++ b/vendor/github.com/go-openapi/spec/schema.go
@@ -89,7 +89,8 @@ func DateTimeProperty() *Schema {
// MapProperty creates a map property
func MapProperty(property *Schema) *Schema {
- return &Schema{SchemaProps: SchemaProps{Type: []string{"object"}, AdditionalProperties: &SchemaOrBool{Allows: true, Schema: property}}}
+ return &Schema{SchemaProps: SchemaProps{Type: []string{"object"},
+ AdditionalProperties: &SchemaOrBool{Allows: true, Schema: property}}}
}
// RefProperty creates a ref property
@@ -155,54 +156,6 @@ func (r *SchemaURL) fromMap(v map[string]interface{}) error {
return nil
}
-// type ExtraSchemaProps map[string]interface{}
-
-// // JSONSchema represents a structure that is a json schema draft 04
-// type JSONSchema struct {
-// SchemaProps
-// ExtraSchemaProps
-// }
-
-// // MarshalJSON marshal this to JSON
-// func (s JSONSchema) MarshalJSON() ([]byte, error) {
-// b1, err := json.Marshal(s.SchemaProps)
-// if err != nil {
-// return nil, err
-// }
-// b2, err := s.Ref.MarshalJSON()
-// if err != nil {
-// return nil, err
-// }
-// b3, err := s.Schema.MarshalJSON()
-// if err != nil {
-// return nil, err
-// }
-// b4, err := json.Marshal(s.ExtraSchemaProps)
-// if err != nil {
-// return nil, err
-// }
-// return swag.ConcatJSON(b1, b2, b3, b4), nil
-// }
-
-// // UnmarshalJSON marshal this from JSON
-// func (s *JSONSchema) UnmarshalJSON(data []byte) error {
-// var sch JSONSchema
-// if err := json.Unmarshal(data, &sch.SchemaProps); err != nil {
-// return err
-// }
-// if err := json.Unmarshal(data, &sch.Ref); err != nil {
-// return err
-// }
-// if err := json.Unmarshal(data, &sch.Schema); err != nil {
-// return err
-// }
-// if err := json.Unmarshal(data, &sch.ExtraSchemaProps); err != nil {
-// return err
-// }
-// *s = sch
-// return nil
-// }
-
// SchemaProps describes a JSON schema (draft 4)
type SchemaProps struct {
ID string `json:"id,omitempty"`
@@ -351,7 +304,7 @@ func (s *Schema) AddType(tpe, format string) *Schema {
// CollectionOf a fluent builder method for an array parameter
func (s *Schema) CollectionOf(items Schema) *Schema {
- s.Type = []string{"array"}
+ s.Type = []string{jsonArray}
s.Items = &SchemaOrArray{Schema: &items}
return s
}
diff --git a/vendor/github.com/go-openapi/spec/schema_loader.go b/vendor/github.com/go-openapi/spec/schema_loader.go
new file mode 100644
index 0000000000..c34a96fa04
--- /dev/null
+++ b/vendor/github.com/go-openapi/spec/schema_loader.go
@@ -0,0 +1,275 @@
+// Copyright 2015 go-swagger maintainers
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package spec
+
+import (
+ "encoding/json"
+ "fmt"
+ "log"
+ "net/url"
+ "reflect"
+ "strings"
+
+ "github.com/go-openapi/swag"
+)
+
+// PathLoader function to use when loading remote refs
+var PathLoader func(string) (json.RawMessage, error)
+
+func init() {
+ PathLoader = func(path string) (json.RawMessage, error) {
+ data, err := swag.LoadFromFileOrHTTP(path)
+ if err != nil {
+ return nil, err
+ }
+ return json.RawMessage(data), nil
+ }
+}
+
+// resolverContext allows to share a context during spec processing.
+// At the moment, it just holds the index of circular references found.
+type resolverContext struct {
+ // circulars holds all visited circular references, which allows shortcuts.
+ // NOTE: this is not just a performance improvement: it is required to figure out
+ // circular references which participate several cycles.
+ // This structure is privately instantiated and needs not be locked against
+ // concurrent access, unless we chose to implement a parallel spec walking.
+ circulars map[string]bool
+ basePath string
+}
+
+func newResolverContext(originalBasePath string) *resolverContext {
+ return &resolverContext{
+ circulars: make(map[string]bool),
+ basePath: originalBasePath, // keep the root base path in context
+ }
+}
+
+type schemaLoader struct {
+ root interface{}
+ options *ExpandOptions
+ cache ResolutionCache
+ context *resolverContext
+ loadDoc func(string) (json.RawMessage, error)
+}
+
+func (r *schemaLoader) transitiveResolver(basePath string, ref Ref) (*schemaLoader, error) {
+ if ref.IsRoot() || ref.HasFragmentOnly {
+ return r, nil
+ }
+
+ baseRef, _ := NewRef(basePath)
+ currentRef := normalizeFileRef(&ref, basePath)
+ if strings.HasPrefix(currentRef.String(), baseRef.String()) {
+ return r, nil
+ }
+
+ // Set a new root to resolve against
+ rootURL := currentRef.GetURL()
+ rootURL.Fragment = ""
+ root, _ := r.cache.Get(rootURL.String())
+
+ // shallow copy of resolver options to set a new RelativeBase when
+ // traversing multiple documents
+ newOptions := r.options
+ newOptions.RelativeBase = rootURL.String()
+ debugLog("setting new root: %s", newOptions.RelativeBase)
+ resolver, err := defaultSchemaLoader(root, newOptions, r.cache, r.context)
+ if err != nil {
+ return nil, err
+ }
+
+ return resolver, nil
+}
+
+func (r *schemaLoader) updateBasePath(transitive *schemaLoader, basePath string) string {
+ if transitive != r {
+ debugLog("got a new resolver")
+ if transitive.options != nil && transitive.options.RelativeBase != "" {
+ basePath, _ = absPath(transitive.options.RelativeBase)
+ debugLog("new basePath = %s", basePath)
+ }
+ }
+ return basePath
+}
+
+func (r *schemaLoader) resolveRef(ref *Ref, target interface{}, basePath string) error {
+ tgt := reflect.ValueOf(target)
+ if tgt.Kind() != reflect.Ptr {
+ return fmt.Errorf("resolve ref: target needs to be a pointer")
+ }
+
+ refURL := ref.GetURL()
+ if refURL == nil {
+ return nil
+ }
+
+ var res interface{}
+ var data interface{}
+ var err error
+ // Resolve against the root if it isn't nil, and if ref is pointing at the root, or has a fragment only which means
+ // it is pointing somewhere in the root.
+ root := r.root
+ if (ref.IsRoot() || ref.HasFragmentOnly) && root == nil && basePath != "" {
+ if baseRef, erb := NewRef(basePath); erb == nil {
+ root, _, _, _ = r.load(baseRef.GetURL())
+ }
+ }
+ if (ref.IsRoot() || ref.HasFragmentOnly) && root != nil {
+ data = root
+ } else {
+ baseRef := normalizeFileRef(ref, basePath)
+ debugLog("current ref is: %s", ref.String())
+ debugLog("current ref normalized file: %s", baseRef.String())
+ data, _, _, err = r.load(baseRef.GetURL())
+ if err != nil {
+ return err
+ }
+ }
+
+ res = data
+ if ref.String() != "" {
+ res, _, err = ref.GetPointer().Get(data)
+ if err != nil {
+ return err
+ }
+ }
+ return swag.DynamicJSONToStruct(res, target)
+}
+
+func (r *schemaLoader) load(refURL *url.URL) (interface{}, url.URL, bool, error) {
+ debugLog("loading schema from url: %s", refURL)
+ toFetch := *refURL
+ toFetch.Fragment = ""
+
+ normalized := normalizeAbsPath(toFetch.String())
+
+ data, fromCache := r.cache.Get(normalized)
+ if !fromCache {
+ b, err := r.loadDoc(normalized)
+ if err != nil {
+ return nil, url.URL{}, false, err
+ }
+
+ if err := json.Unmarshal(b, &data); err != nil {
+ return nil, url.URL{}, false, err
+ }
+ r.cache.Set(normalized, data)
+ }
+
+ return data, toFetch, fromCache, nil
+}
+
+// isCircular detects cycles in sequences of $ref.
+// It relies on a private context (which needs not be locked).
+func (r *schemaLoader) isCircular(ref *Ref, basePath string, parentRefs ...string) (foundCycle bool) {
+ normalizedRef := normalizePaths(ref.String(), basePath)
+ if _, ok := r.context.circulars[normalizedRef]; ok {
+ // circular $ref has been already detected in another explored cycle
+ foundCycle = true
+ return
+ }
+ foundCycle = swag.ContainsStringsCI(parentRefs, normalizedRef)
+ if foundCycle {
+ r.context.circulars[normalizedRef] = true
+ }
+ return
+}
+
+// Resolve resolves a reference against basePath and stores the result in target
+// Resolve is not in charge of following references, it only resolves ref by following its URL
+// if the schema that ref is referring to has more refs in it. Resolve doesn't resolve them
+// if basePath is an empty string, ref is resolved against the root schema stored in the schemaLoader struct
+func (r *schemaLoader) Resolve(ref *Ref, target interface{}, basePath string) error {
+ return r.resolveRef(ref, target, basePath)
+}
+
+func (r *schemaLoader) deref(input interface{}, parentRefs []string, basePath string) error {
+ var ref *Ref
+ switch refable := input.(type) {
+ case *Schema:
+ ref = &refable.Ref
+ case *Parameter:
+ ref = &refable.Ref
+ case *Response:
+ ref = &refable.Ref
+ case *PathItem:
+ ref = &refable.Ref
+ default:
+ return fmt.Errorf("deref: unsupported type %T", input)
+ }
+
+ curRef := ref.String()
+ if curRef != "" {
+ normalizedRef := normalizeFileRef(ref, basePath)
+ normalizedBasePath := normalizedRef.RemoteURI()
+
+ if r.isCircular(normalizedRef, basePath, parentRefs...) {
+ return nil
+ }
+
+ if err := r.resolveRef(ref, input, basePath); r.shouldStopOnError(err) {
+ return err
+ }
+
+ // NOTE(fredbi): removed basePath check => needs more testing
+ if ref.String() != "" && ref.String() != curRef {
+ parentRefs = append(parentRefs, normalizedRef.String())
+ return r.deref(input, parentRefs, normalizedBasePath)
+ }
+ }
+
+ return nil
+}
+
+func (r *schemaLoader) shouldStopOnError(err error) bool {
+ if err != nil && !r.options.ContinueOnError {
+ return true
+ }
+
+ if err != nil {
+ log.Println(err)
+ }
+
+ return false
+}
+
+func defaultSchemaLoader(
+ root interface{},
+ expandOptions *ExpandOptions,
+ cache ResolutionCache,
+ context *resolverContext) (*schemaLoader, error) {
+
+ if cache == nil {
+ cache = resCache
+ }
+ if expandOptions == nil {
+ expandOptions = &ExpandOptions{}
+ }
+ absBase, _ := absPath(expandOptions.RelativeBase)
+ if context == nil {
+ context = newResolverContext(absBase)
+ }
+ return &schemaLoader{
+ root: root,
+ options: expandOptions,
+ cache: cache,
+ context: context,
+ loadDoc: func(path string) (json.RawMessage, error) {
+ debugLog("fetching document at %q", path)
+ return PathLoader(path)
+ },
+ }, nil
+}
diff --git a/vendor/github.com/go-openapi/spec/security_scheme.go b/vendor/github.com/go-openapi/spec/security_scheme.go
index 9f1b454eac..fe353842a6 100644
--- a/vendor/github.com/go-openapi/spec/security_scheme.go
+++ b/vendor/github.com/go-openapi/spec/security_scheme.go
@@ -136,8 +136,5 @@ func (s *SecurityScheme) UnmarshalJSON(data []byte) error {
if err := json.Unmarshal(data, &s.SecuritySchemeProps); err != nil {
return err
}
- if err := json.Unmarshal(data, &s.VendorExtensible); err != nil {
- return err
- }
- return nil
+ return json.Unmarshal(data, &s.VendorExtensible)
}
diff --git a/vendor/github.com/go-openapi/spec/swagger.go b/vendor/github.com/go-openapi/spec/swagger.go
index 4586a21c86..454617e585 100644
--- a/vendor/github.com/go-openapi/spec/swagger.go
+++ b/vendor/github.com/go-openapi/spec/swagger.go
@@ -24,7 +24,8 @@ import (
)
// Swagger this is the root document object for the API specification.
-// It combines what previously was the Resource Listing and API Declaration (version 1.2 and earlier) together into one document.
+// It combines what previously was the Resource Listing and API Declaration (version 1.2 and earlier)
+// together into one document.
//
// For more information: http://goo.gl/8us55a#swagger-object-
type Swagger struct {
@@ -68,16 +69,21 @@ func (s *Swagger) UnmarshalJSON(data []byte) error {
}
// SwaggerProps captures the top-level properties of an Api specification
+//
+// NOTE: validation rules
+// - the scheme, when present must be from [http, https, ws, wss]
+// - BasePath must start with a leading "/"
+// - Paths is required
type SwaggerProps struct {
ID string `json:"id,omitempty"`
Consumes []string `json:"consumes,omitempty"`
Produces []string `json:"produces,omitempty"`
- Schemes []string `json:"schemes,omitempty"` // the scheme, when present must be from [http, https, ws, wss]
+ Schemes []string `json:"schemes,omitempty"`
Swagger string `json:"swagger,omitempty"`
Info *Info `json:"info,omitempty"`
Host string `json:"host,omitempty"`
- BasePath string `json:"basePath,omitempty"` // must start with a leading "/"
- Paths *Paths `json:"paths"` // required
+ BasePath string `json:"basePath,omitempty"`
+ Paths *Paths `json:"paths"`
Definitions Definitions `json:"definitions,omitempty"`
Parameters map[string]Parameter `json:"parameters,omitempty"`
Responses map[string]Response `json:"responses,omitempty"`
@@ -244,9 +250,9 @@ func (s *StringOrArray) UnmarshalJSON(data []byte) error {
if single == nil {
return nil
}
- switch single.(type) {
+ switch v := single.(type) {
case string:
- *s = StringOrArray([]string{single.(string)})
+ *s = StringOrArray([]string{v})
return nil
default:
return fmt.Errorf("only string or array is allowed, not %T", single)
diff --git a/vendor/github.com/go-openapi/spec/tag.go b/vendor/github.com/go-openapi/spec/tag.go
index 25256c4bec..faa3d3de1e 100644
--- a/vendor/github.com/go-openapi/spec/tag.go
+++ b/vendor/github.com/go-openapi/spec/tag.go
@@ -30,10 +30,11 @@ type TagProps struct {
// NewTag creates a new tag
func NewTag(name, description string, externalDocs *ExternalDocumentation) Tag {
- return Tag{TagProps: TagProps{description, name, externalDocs}}
+ return Tag{TagProps: TagProps{Description: description, Name: name, ExternalDocs: externalDocs}}
}
-// Tag allows adding meta data to a single tag that is used by the [Operation Object](http://goo.gl/8us55a#operationObject).
+// Tag allows adding meta data to a single tag that is used by the
+// [Operation Object](http://goo.gl/8us55a#operationObject).
// It is not mandatory to have a Tag Object per tag used there.
//
// For more information: http://goo.gl/8us55a#tagObject
diff --git a/vendor/github.com/go-openapi/spec/unused.go b/vendor/github.com/go-openapi/spec/unused.go
new file mode 100644
index 0000000000..aa12b56f6e
--- /dev/null
+++ b/vendor/github.com/go-openapi/spec/unused.go
@@ -0,0 +1,174 @@
+// Copyright 2015 go-swagger maintainers
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package spec
+
+/*
+
+import (
+ "net/url"
+ "os"
+ "path"
+ "path/filepath"
+
+ "github.com/go-openapi/jsonpointer"
+)
+
+ // Some currently unused functions and definitions that
+ // used to be part of the expander.
+
+ // Moved here for the record and possible future reuse
+
+var (
+ idPtr, _ = jsonpointer.New("/id")
+ refPtr, _ = jsonpointer.New("/$ref")
+)
+
+func idFromNode(node interface{}) (*Ref, error) {
+ if idValue, _, err := idPtr.Get(node); err == nil {
+ if refStr, ok := idValue.(string); ok && refStr != "" {
+ idRef, err := NewRef(refStr)
+ if err != nil {
+ return nil, err
+ }
+ return &idRef, nil
+ }
+ }
+ return nil, nil
+}
+
+func nextRef(startingNode interface{}, startingRef *Ref, ptr *jsonpointer.Pointer) *Ref {
+ if startingRef == nil {
+ return nil
+ }
+
+ if ptr == nil {
+ return startingRef
+ }
+
+ ret := startingRef
+ var idRef *Ref
+ node := startingNode
+
+ for _, tok := range ptr.DecodedTokens() {
+ node, _, _ = jsonpointer.GetForToken(node, tok)
+ if node == nil {
+ break
+ }
+
+ idRef, _ = idFromNode(node)
+ if idRef != nil {
+ nw, err := ret.Inherits(*idRef)
+ if err != nil {
+ break
+ }
+ ret = nw
+ }
+
+ refRef, _, _ := refPtr.Get(node)
+ if refRef != nil {
+ var rf Ref
+ switch value := refRef.(type) {
+ case string:
+ rf, _ = NewRef(value)
+ }
+ nw, err := ret.Inherits(rf)
+ if err != nil {
+ break
+ }
+ nwURL := nw.GetURL()
+ if nwURL.Scheme == "file" || (nwURL.Scheme == "" && nwURL.Host == "") {
+ nwpt := filepath.ToSlash(nwURL.Path)
+ if filepath.IsAbs(nwpt) {
+ _, err := os.Stat(nwpt)
+ if err != nil {
+ nwURL.Path = filepath.Join(".", nwpt)
+ }
+ }
+ }
+
+ ret = nw
+ }
+
+ }
+
+ return ret
+}
+
+// basePathFromSchemaID returns a new basePath based on an existing basePath and a schema ID
+func basePathFromSchemaID(oldBasePath, id string) string {
+ u, err := url.Parse(oldBasePath)
+ if err != nil {
+ panic(err)
+ }
+ uid, err := url.Parse(id)
+ if err != nil {
+ panic(err)
+ }
+
+ if path.IsAbs(uid.Path) {
+ return id
+ }
+ u.Path = path.Join(path.Dir(u.Path), uid.Path)
+ return u.String()
+}
+*/
+
+// type ExtraSchemaProps map[string]interface{}
+
+// // JSONSchema represents a structure that is a json schema draft 04
+// type JSONSchema struct {
+// SchemaProps
+// ExtraSchemaProps
+// }
+
+// // MarshalJSON marshal this to JSON
+// func (s JSONSchema) MarshalJSON() ([]byte, error) {
+// b1, err := json.Marshal(s.SchemaProps)
+// if err != nil {
+// return nil, err
+// }
+// b2, err := s.Ref.MarshalJSON()
+// if err != nil {
+// return nil, err
+// }
+// b3, err := s.Schema.MarshalJSON()
+// if err != nil {
+// return nil, err
+// }
+// b4, err := json.Marshal(s.ExtraSchemaProps)
+// if err != nil {
+// return nil, err
+// }
+// return swag.ConcatJSON(b1, b2, b3, b4), nil
+// }
+
+// // UnmarshalJSON marshal this from JSON
+// func (s *JSONSchema) UnmarshalJSON(data []byte) error {
+// var sch JSONSchema
+// if err := json.Unmarshal(data, &sch.SchemaProps); err != nil {
+// return err
+// }
+// if err := json.Unmarshal(data, &sch.Ref); err != nil {
+// return err
+// }
+// if err := json.Unmarshal(data, &sch.Schema); err != nil {
+// return err
+// }
+// if err := json.Unmarshal(data, &sch.ExtraSchemaProps); err != nil {
+// return err
+// }
+// *s = sch
+// return nil
+// }
diff --git a/vendor/github.com/gobuffalo/envy/envy.go b/vendor/github.com/gobuffalo/envy/envy.go
index 026d0167a1..d3995f4557 100644
--- a/vendor/github.com/gobuffalo/envy/envy.go
+++ b/vendor/github.com/gobuffalo/envy/envy.go
@@ -195,6 +195,16 @@ func GoBin() string {
return Get("GO_BIN", "go")
}
+func InGoPath() bool {
+ pwd, _ := os.Getwd()
+ for _, p := range GoPaths() {
+ if strings.HasPrefix(pwd, p) {
+ return true
+ }
+ }
+ return false
+}
+
// GoPaths returns all possible GOPATHS that are set.
func GoPaths() []string {
gp := Get("GOPATH", "")
@@ -205,6 +215,7 @@ func GoPaths() []string {
}
func importPath(path string) string {
+ path = strings.TrimPrefix(path, "/private")
for _, gopath := range GoPaths() {
srcpath := filepath.Join(gopath, "src")
rel, err := filepath.Rel(srcpath, path)
diff --git a/vendor/github.com/gobuffalo/envy/packrd/packed-packr.go b/vendor/github.com/gobuffalo/envy/packrd/packed-packr.go
deleted file mode 100644
index 749b8f45e9..0000000000
--- a/vendor/github.com/gobuffalo/envy/packrd/packed-packr.go
+++ /dev/null
@@ -1,21 +0,0 @@
-// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT.
-
-// You can use the "packr2 clean" command to clean up this,
-// and any other packr generated files.
-package packrd
-
-import (
- "github.com/gobuffalo/packr/v2"
- "github.com/gobuffalo/packr/v2/file/resolver"
-)
-
-var _ = func() error {
- const gk = "e6ec151be31ed8358de3665e7be5891d"
- g := packr.New(gk, "")
- hgr, err := resolver.NewHexGzip(map[string]string{})
- if err != nil {
- panic(err)
- }
- g.DefaultResolver = hgr
- return nil
-}()
diff --git a/vendor/github.com/gobuffalo/envy/version.go b/vendor/github.com/gobuffalo/envy/version.go
index a6177fb405..0bff116a5d 100644
--- a/vendor/github.com/gobuffalo/envy/version.go
+++ b/vendor/github.com/gobuffalo/envy/version.go
@@ -1,3 +1,3 @@
package envy
-const Version = "v1.6.11"
+const Version = "v1.6.15"
diff --git a/vendor/github.com/gogo/protobuf/conformance/internal/conformance_proto/conformance.pb.go b/vendor/github.com/gogo/protobuf/conformance/internal/conformance_proto/conformance.pb.go
index 4bf71202b4..1e32a72eb1 100644
--- a/vendor/github.com/gogo/protobuf/conformance/internal/conformance_proto/conformance.pb.go
+++ b/vendor/github.com/gogo/protobuf/conformance/internal/conformance_proto/conformance.pb.go
@@ -3,10 +3,12 @@
package conformance
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import types "github.com/gogo/protobuf/types"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ types "github.com/gogo/protobuf/types"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -32,6 +34,7 @@ var WireFormat_name = map[int32]string{
1: "PROTOBUF",
2: "JSON",
}
+
var WireFormat_value = map[string]int32{
"UNSPECIFIED": 0,
"PROTOBUF": 1,
@@ -41,8 +44,9 @@ var WireFormat_value = map[string]int32{
func (x WireFormat) String() string {
return proto.EnumName(WireFormat_name, int32(x))
}
+
func (WireFormat) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_conformance_64c26947649a56a9, []int{0}
+ return fileDescriptor_13eb9ce388d56238, []int{0}
}
type ForeignEnum int32
@@ -58,6 +62,7 @@ var ForeignEnum_name = map[int32]string{
1: "FOREIGN_BAR",
2: "FOREIGN_BAZ",
}
+
var ForeignEnum_value = map[string]int32{
"FOREIGN_FOO": 0,
"FOREIGN_BAR": 1,
@@ -67,8 +72,9 @@ var ForeignEnum_value = map[string]int32{
func (x ForeignEnum) String() string {
return proto.EnumName(ForeignEnum_name, int32(x))
}
+
func (ForeignEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_conformance_64c26947649a56a9, []int{1}
+ return fileDescriptor_13eb9ce388d56238, []int{1}
}
type TestAllTypes_NestedEnum int32
@@ -86,6 +92,7 @@ var TestAllTypes_NestedEnum_name = map[int32]string{
2: "BAZ",
-1: "NEG",
}
+
var TestAllTypes_NestedEnum_value = map[string]int32{
"FOO": 0,
"BAR": 1,
@@ -96,8 +103,9 @@ var TestAllTypes_NestedEnum_value = map[string]int32{
func (x TestAllTypes_NestedEnum) String() string {
return proto.EnumName(TestAllTypes_NestedEnum_name, int32(x))
}
+
func (TestAllTypes_NestedEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_conformance_64c26947649a56a9, []int{2, 0}
+ return fileDescriptor_13eb9ce388d56238, []int{2, 0}
}
// Represents a single test case's input. The testee should:
@@ -124,7 +132,7 @@ func (m *ConformanceRequest) Reset() { *m = ConformanceRequest{} }
func (m *ConformanceRequest) String() string { return proto.CompactTextString(m) }
func (*ConformanceRequest) ProtoMessage() {}
func (*ConformanceRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_conformance_64c26947649a56a9, []int{0}
+ return fileDescriptor_13eb9ce388d56238, []int{0}
}
func (m *ConformanceRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ConformanceRequest.Unmarshal(m, b)
@@ -132,8 +140,8 @@ func (m *ConformanceRequest) XXX_Unmarshal(b []byte) error {
func (m *ConformanceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ConformanceRequest.Marshal(b, m, deterministic)
}
-func (dst *ConformanceRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ConformanceRequest.Merge(dst, src)
+func (m *ConformanceRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConformanceRequest.Merge(m, src)
}
func (m *ConformanceRequest) XXX_Size() int {
return xxx_messageInfo_ConformanceRequest.Size(m)
@@ -271,7 +279,7 @@ func (m *ConformanceResponse) Reset() { *m = ConformanceResponse{} }
func (m *ConformanceResponse) String() string { return proto.CompactTextString(m) }
func (*ConformanceResponse) ProtoMessage() {}
func (*ConformanceResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_conformance_64c26947649a56a9, []int{1}
+ return fileDescriptor_13eb9ce388d56238, []int{1}
}
func (m *ConformanceResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ConformanceResponse.Unmarshal(m, b)
@@ -279,8 +287,8 @@ func (m *ConformanceResponse) XXX_Unmarshal(b []byte) error {
func (m *ConformanceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ConformanceResponse.Marshal(b, m, deterministic)
}
-func (dst *ConformanceResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ConformanceResponse.Merge(dst, src)
+func (m *ConformanceResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConformanceResponse.Merge(m, src)
}
func (m *ConformanceResponse) XXX_Size() int {
return xxx_messageInfo_ConformanceResponse.Size(m)
@@ -623,7 +631,7 @@ func (m *TestAllTypes) Reset() { *m = TestAllTypes{} }
func (m *TestAllTypes) String() string { return proto.CompactTextString(m) }
func (*TestAllTypes) ProtoMessage() {}
func (*TestAllTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_conformance_64c26947649a56a9, []int{2}
+ return fileDescriptor_13eb9ce388d56238, []int{2}
}
func (m *TestAllTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TestAllTypes.Unmarshal(m, b)
@@ -631,8 +639,8 @@ func (m *TestAllTypes) XXX_Unmarshal(b []byte) error {
func (m *TestAllTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_TestAllTypes.Marshal(b, m, deterministic)
}
-func (dst *TestAllTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_TestAllTypes.Merge(dst, src)
+func (m *TestAllTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_TestAllTypes.Merge(m, src)
}
func (m *TestAllTypes) XXX_Size() int {
return xxx_messageInfo_TestAllTypes.Size(m)
@@ -1539,7 +1547,7 @@ func (m *TestAllTypes_NestedMessage) Reset() { *m = TestAllTypes_NestedM
func (m *TestAllTypes_NestedMessage) String() string { return proto.CompactTextString(m) }
func (*TestAllTypes_NestedMessage) ProtoMessage() {}
func (*TestAllTypes_NestedMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_conformance_64c26947649a56a9, []int{2, 0}
+ return fileDescriptor_13eb9ce388d56238, []int{2, 0}
}
func (m *TestAllTypes_NestedMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TestAllTypes_NestedMessage.Unmarshal(m, b)
@@ -1547,8 +1555,8 @@ func (m *TestAllTypes_NestedMessage) XXX_Unmarshal(b []byte) error {
func (m *TestAllTypes_NestedMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_TestAllTypes_NestedMessage.Marshal(b, m, deterministic)
}
-func (dst *TestAllTypes_NestedMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_TestAllTypes_NestedMessage.Merge(dst, src)
+func (m *TestAllTypes_NestedMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_TestAllTypes_NestedMessage.Merge(m, src)
}
func (m *TestAllTypes_NestedMessage) XXX_Size() int {
return xxx_messageInfo_TestAllTypes_NestedMessage.Size(m)
@@ -1584,7 +1592,7 @@ func (m *ForeignMessage) Reset() { *m = ForeignMessage{} }
func (m *ForeignMessage) String() string { return proto.CompactTextString(m) }
func (*ForeignMessage) ProtoMessage() {}
func (*ForeignMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_conformance_64c26947649a56a9, []int{3}
+ return fileDescriptor_13eb9ce388d56238, []int{3}
}
func (m *ForeignMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ForeignMessage.Unmarshal(m, b)
@@ -1592,8 +1600,8 @@ func (m *ForeignMessage) XXX_Unmarshal(b []byte) error {
func (m *ForeignMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ForeignMessage.Marshal(b, m, deterministic)
}
-func (dst *ForeignMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ForeignMessage.Merge(dst, src)
+func (m *ForeignMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ForeignMessage.Merge(m, src)
}
func (m *ForeignMessage) XXX_Size() int {
return xxx_messageInfo_ForeignMessage.Size(m)
@@ -1612,6 +1620,9 @@ func (m *ForeignMessage) GetC() int32 {
}
func init() {
+ proto.RegisterEnum("conformance.WireFormat", WireFormat_name, WireFormat_value)
+ proto.RegisterEnum("conformance.ForeignEnum", ForeignEnum_name, ForeignEnum_value)
+ proto.RegisterEnum("conformance.TestAllTypes_NestedEnum", TestAllTypes_NestedEnum_name, TestAllTypes_NestedEnum_value)
proto.RegisterType((*ConformanceRequest)(nil), "conformance.ConformanceRequest")
proto.RegisterType((*ConformanceResponse)(nil), "conformance.ConformanceResponse")
proto.RegisterType((*TestAllTypes)(nil), "conformance.TestAllTypes")
@@ -1636,16 +1647,13 @@ func init() {
proto.RegisterMapType((map[uint64]uint64)(nil), "conformance.TestAllTypes.MapUint64Uint64Entry")
proto.RegisterType((*TestAllTypes_NestedMessage)(nil), "conformance.TestAllTypes.NestedMessage")
proto.RegisterType((*ForeignMessage)(nil), "conformance.ForeignMessage")
- proto.RegisterEnum("conformance.WireFormat", WireFormat_name, WireFormat_value)
- proto.RegisterEnum("conformance.ForeignEnum", ForeignEnum_name, ForeignEnum_value)
- proto.RegisterEnum("conformance.TestAllTypes_NestedEnum", TestAllTypes_NestedEnum_name, TestAllTypes_NestedEnum_value)
}
func init() {
- proto.RegisterFile("internal/conformance_proto/conformance.proto", fileDescriptor_conformance_64c26947649a56a9)
+ proto.RegisterFile("internal/conformance_proto/conformance.proto", fileDescriptor_13eb9ce388d56238)
}
-var fileDescriptor_conformance_64c26947649a56a9 = []byte{
+var fileDescriptor_13eb9ce388d56238 = []byte{
// 2611 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x5a, 0x59, 0x73, 0xdb, 0xc8,
0x11, 0x16, 0x08, 0x5b, 0x92, 0x87, 0x94, 0x44, 0x8d, 0xae, 0xb1, 0xec, 0x5a, 0xc3, 0xf2, 0x3a,
diff --git a/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go b/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go
index 0057f8e1bf..e352808b90 100644
--- a/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go
+++ b/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go
@@ -1,12 +1,14 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: gogo.proto
-package gogoproto // import "github.com/gogo/protobuf/gogoproto"
+package gogoproto
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -24,7 +26,7 @@ var E_GoprotoEnumPrefix = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 62001,
Name: "gogoproto.goproto_enum_prefix",
- Tag: "varint,62001,opt,name=goproto_enum_prefix,json=goprotoEnumPrefix",
+ Tag: "varint,62001,opt,name=goproto_enum_prefix",
Filename: "gogo.proto",
}
@@ -33,7 +35,7 @@ var E_GoprotoEnumStringer = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 62021,
Name: "gogoproto.goproto_enum_stringer",
- Tag: "varint,62021,opt,name=goproto_enum_stringer,json=goprotoEnumStringer",
+ Tag: "varint,62021,opt,name=goproto_enum_stringer",
Filename: "gogo.proto",
}
@@ -42,7 +44,7 @@ var E_EnumStringer = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 62022,
Name: "gogoproto.enum_stringer",
- Tag: "varint,62022,opt,name=enum_stringer,json=enumStringer",
+ Tag: "varint,62022,opt,name=enum_stringer",
Filename: "gogo.proto",
}
@@ -51,7 +53,7 @@ var E_EnumCustomname = &proto.ExtensionDesc{
ExtensionType: (*string)(nil),
Field: 62023,
Name: "gogoproto.enum_customname",
- Tag: "bytes,62023,opt,name=enum_customname,json=enumCustomname",
+ Tag: "bytes,62023,opt,name=enum_customname",
Filename: "gogo.proto",
}
@@ -69,7 +71,7 @@ var E_EnumvalueCustomname = &proto.ExtensionDesc{
ExtensionType: (*string)(nil),
Field: 66001,
Name: "gogoproto.enumvalue_customname",
- Tag: "bytes,66001,opt,name=enumvalue_customname,json=enumvalueCustomname",
+ Tag: "bytes,66001,opt,name=enumvalue_customname",
Filename: "gogo.proto",
}
@@ -78,7 +80,7 @@ var E_GoprotoGettersAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63001,
Name: "gogoproto.goproto_getters_all",
- Tag: "varint,63001,opt,name=goproto_getters_all,json=goprotoGettersAll",
+ Tag: "varint,63001,opt,name=goproto_getters_all",
Filename: "gogo.proto",
}
@@ -87,7 +89,7 @@ var E_GoprotoEnumPrefixAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63002,
Name: "gogoproto.goproto_enum_prefix_all",
- Tag: "varint,63002,opt,name=goproto_enum_prefix_all,json=goprotoEnumPrefixAll",
+ Tag: "varint,63002,opt,name=goproto_enum_prefix_all",
Filename: "gogo.proto",
}
@@ -96,7 +98,7 @@ var E_GoprotoStringerAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63003,
Name: "gogoproto.goproto_stringer_all",
- Tag: "varint,63003,opt,name=goproto_stringer_all,json=goprotoStringerAll",
+ Tag: "varint,63003,opt,name=goproto_stringer_all",
Filename: "gogo.proto",
}
@@ -105,7 +107,7 @@ var E_VerboseEqualAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63004,
Name: "gogoproto.verbose_equal_all",
- Tag: "varint,63004,opt,name=verbose_equal_all,json=verboseEqualAll",
+ Tag: "varint,63004,opt,name=verbose_equal_all",
Filename: "gogo.proto",
}
@@ -114,7 +116,7 @@ var E_FaceAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63005,
Name: "gogoproto.face_all",
- Tag: "varint,63005,opt,name=face_all,json=faceAll",
+ Tag: "varint,63005,opt,name=face_all",
Filename: "gogo.proto",
}
@@ -123,7 +125,7 @@ var E_GostringAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63006,
Name: "gogoproto.gostring_all",
- Tag: "varint,63006,opt,name=gostring_all,json=gostringAll",
+ Tag: "varint,63006,opt,name=gostring_all",
Filename: "gogo.proto",
}
@@ -132,7 +134,7 @@ var E_PopulateAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63007,
Name: "gogoproto.populate_all",
- Tag: "varint,63007,opt,name=populate_all,json=populateAll",
+ Tag: "varint,63007,opt,name=populate_all",
Filename: "gogo.proto",
}
@@ -141,7 +143,7 @@ var E_StringerAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63008,
Name: "gogoproto.stringer_all",
- Tag: "varint,63008,opt,name=stringer_all,json=stringerAll",
+ Tag: "varint,63008,opt,name=stringer_all",
Filename: "gogo.proto",
}
@@ -150,7 +152,7 @@ var E_OnlyoneAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63009,
Name: "gogoproto.onlyone_all",
- Tag: "varint,63009,opt,name=onlyone_all,json=onlyoneAll",
+ Tag: "varint,63009,opt,name=onlyone_all",
Filename: "gogo.proto",
}
@@ -159,7 +161,7 @@ var E_EqualAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63013,
Name: "gogoproto.equal_all",
- Tag: "varint,63013,opt,name=equal_all,json=equalAll",
+ Tag: "varint,63013,opt,name=equal_all",
Filename: "gogo.proto",
}
@@ -168,7 +170,7 @@ var E_DescriptionAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63014,
Name: "gogoproto.description_all",
- Tag: "varint,63014,opt,name=description_all,json=descriptionAll",
+ Tag: "varint,63014,opt,name=description_all",
Filename: "gogo.proto",
}
@@ -177,7 +179,7 @@ var E_TestgenAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63015,
Name: "gogoproto.testgen_all",
- Tag: "varint,63015,opt,name=testgen_all,json=testgenAll",
+ Tag: "varint,63015,opt,name=testgen_all",
Filename: "gogo.proto",
}
@@ -186,7 +188,7 @@ var E_BenchgenAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63016,
Name: "gogoproto.benchgen_all",
- Tag: "varint,63016,opt,name=benchgen_all,json=benchgenAll",
+ Tag: "varint,63016,opt,name=benchgen_all",
Filename: "gogo.proto",
}
@@ -195,7 +197,7 @@ var E_MarshalerAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63017,
Name: "gogoproto.marshaler_all",
- Tag: "varint,63017,opt,name=marshaler_all,json=marshalerAll",
+ Tag: "varint,63017,opt,name=marshaler_all",
Filename: "gogo.proto",
}
@@ -204,7 +206,7 @@ var E_UnmarshalerAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63018,
Name: "gogoproto.unmarshaler_all",
- Tag: "varint,63018,opt,name=unmarshaler_all,json=unmarshalerAll",
+ Tag: "varint,63018,opt,name=unmarshaler_all",
Filename: "gogo.proto",
}
@@ -213,7 +215,7 @@ var E_StableMarshalerAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63019,
Name: "gogoproto.stable_marshaler_all",
- Tag: "varint,63019,opt,name=stable_marshaler_all,json=stableMarshalerAll",
+ Tag: "varint,63019,opt,name=stable_marshaler_all",
Filename: "gogo.proto",
}
@@ -222,7 +224,7 @@ var E_SizerAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63020,
Name: "gogoproto.sizer_all",
- Tag: "varint,63020,opt,name=sizer_all,json=sizerAll",
+ Tag: "varint,63020,opt,name=sizer_all",
Filename: "gogo.proto",
}
@@ -231,7 +233,7 @@ var E_GoprotoEnumStringerAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63021,
Name: "gogoproto.goproto_enum_stringer_all",
- Tag: "varint,63021,opt,name=goproto_enum_stringer_all,json=goprotoEnumStringerAll",
+ Tag: "varint,63021,opt,name=goproto_enum_stringer_all",
Filename: "gogo.proto",
}
@@ -240,7 +242,7 @@ var E_EnumStringerAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63022,
Name: "gogoproto.enum_stringer_all",
- Tag: "varint,63022,opt,name=enum_stringer_all,json=enumStringerAll",
+ Tag: "varint,63022,opt,name=enum_stringer_all",
Filename: "gogo.proto",
}
@@ -249,7 +251,7 @@ var E_UnsafeMarshalerAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63023,
Name: "gogoproto.unsafe_marshaler_all",
- Tag: "varint,63023,opt,name=unsafe_marshaler_all,json=unsafeMarshalerAll",
+ Tag: "varint,63023,opt,name=unsafe_marshaler_all",
Filename: "gogo.proto",
}
@@ -258,7 +260,7 @@ var E_UnsafeUnmarshalerAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63024,
Name: "gogoproto.unsafe_unmarshaler_all",
- Tag: "varint,63024,opt,name=unsafe_unmarshaler_all,json=unsafeUnmarshalerAll",
+ Tag: "varint,63024,opt,name=unsafe_unmarshaler_all",
Filename: "gogo.proto",
}
@@ -267,7 +269,7 @@ var E_GoprotoExtensionsMapAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63025,
Name: "gogoproto.goproto_extensions_map_all",
- Tag: "varint,63025,opt,name=goproto_extensions_map_all,json=goprotoExtensionsMapAll",
+ Tag: "varint,63025,opt,name=goproto_extensions_map_all",
Filename: "gogo.proto",
}
@@ -276,7 +278,7 @@ var E_GoprotoUnrecognizedAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63026,
Name: "gogoproto.goproto_unrecognized_all",
- Tag: "varint,63026,opt,name=goproto_unrecognized_all,json=goprotoUnrecognizedAll",
+ Tag: "varint,63026,opt,name=goproto_unrecognized_all",
Filename: "gogo.proto",
}
@@ -285,7 +287,7 @@ var E_GogoprotoImport = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63027,
Name: "gogoproto.gogoproto_import",
- Tag: "varint,63027,opt,name=gogoproto_import,json=gogoprotoImport",
+ Tag: "varint,63027,opt,name=gogoproto_import",
Filename: "gogo.proto",
}
@@ -294,7 +296,7 @@ var E_ProtosizerAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63028,
Name: "gogoproto.protosizer_all",
- Tag: "varint,63028,opt,name=protosizer_all,json=protosizerAll",
+ Tag: "varint,63028,opt,name=protosizer_all",
Filename: "gogo.proto",
}
@@ -303,7 +305,7 @@ var E_CompareAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63029,
Name: "gogoproto.compare_all",
- Tag: "varint,63029,opt,name=compare_all,json=compareAll",
+ Tag: "varint,63029,opt,name=compare_all",
Filename: "gogo.proto",
}
@@ -312,7 +314,7 @@ var E_TypedeclAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63030,
Name: "gogoproto.typedecl_all",
- Tag: "varint,63030,opt,name=typedecl_all,json=typedeclAll",
+ Tag: "varint,63030,opt,name=typedecl_all",
Filename: "gogo.proto",
}
@@ -321,7 +323,7 @@ var E_EnumdeclAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63031,
Name: "gogoproto.enumdecl_all",
- Tag: "varint,63031,opt,name=enumdecl_all,json=enumdeclAll",
+ Tag: "varint,63031,opt,name=enumdecl_all",
Filename: "gogo.proto",
}
@@ -330,7 +332,7 @@ var E_GoprotoRegistration = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63032,
Name: "gogoproto.goproto_registration",
- Tag: "varint,63032,opt,name=goproto_registration,json=goprotoRegistration",
+ Tag: "varint,63032,opt,name=goproto_registration",
Filename: "gogo.proto",
}
@@ -339,7 +341,7 @@ var E_MessagenameAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63033,
Name: "gogoproto.messagename_all",
- Tag: "varint,63033,opt,name=messagename_all,json=messagenameAll",
+ Tag: "varint,63033,opt,name=messagename_all",
Filename: "gogo.proto",
}
@@ -348,7 +350,7 @@ var E_GoprotoSizecacheAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63034,
Name: "gogoproto.goproto_sizecache_all",
- Tag: "varint,63034,opt,name=goproto_sizecache_all,json=goprotoSizecacheAll",
+ Tag: "varint,63034,opt,name=goproto_sizecache_all",
Filename: "gogo.proto",
}
@@ -357,7 +359,7 @@ var E_GoprotoUnkeyedAll = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 63035,
Name: "gogoproto.goproto_unkeyed_all",
- Tag: "varint,63035,opt,name=goproto_unkeyed_all,json=goprotoUnkeyedAll",
+ Tag: "varint,63035,opt,name=goproto_unkeyed_all",
Filename: "gogo.proto",
}
@@ -366,7 +368,7 @@ var E_GoprotoGetters = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 64001,
Name: "gogoproto.goproto_getters",
- Tag: "varint,64001,opt,name=goproto_getters,json=goprotoGetters",
+ Tag: "varint,64001,opt,name=goproto_getters",
Filename: "gogo.proto",
}
@@ -375,7 +377,7 @@ var E_GoprotoStringer = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 64003,
Name: "gogoproto.goproto_stringer",
- Tag: "varint,64003,opt,name=goproto_stringer,json=goprotoStringer",
+ Tag: "varint,64003,opt,name=goproto_stringer",
Filename: "gogo.proto",
}
@@ -384,7 +386,7 @@ var E_VerboseEqual = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 64004,
Name: "gogoproto.verbose_equal",
- Tag: "varint,64004,opt,name=verbose_equal,json=verboseEqual",
+ Tag: "varint,64004,opt,name=verbose_equal",
Filename: "gogo.proto",
}
@@ -492,7 +494,7 @@ var E_StableMarshaler = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 64019,
Name: "gogoproto.stable_marshaler",
- Tag: "varint,64019,opt,name=stable_marshaler,json=stableMarshaler",
+ Tag: "varint,64019,opt,name=stable_marshaler",
Filename: "gogo.proto",
}
@@ -510,7 +512,7 @@ var E_UnsafeMarshaler = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 64023,
Name: "gogoproto.unsafe_marshaler",
- Tag: "varint,64023,opt,name=unsafe_marshaler,json=unsafeMarshaler",
+ Tag: "varint,64023,opt,name=unsafe_marshaler",
Filename: "gogo.proto",
}
@@ -519,7 +521,7 @@ var E_UnsafeUnmarshaler = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 64024,
Name: "gogoproto.unsafe_unmarshaler",
- Tag: "varint,64024,opt,name=unsafe_unmarshaler,json=unsafeUnmarshaler",
+ Tag: "varint,64024,opt,name=unsafe_unmarshaler",
Filename: "gogo.proto",
}
@@ -528,7 +530,7 @@ var E_GoprotoExtensionsMap = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 64025,
Name: "gogoproto.goproto_extensions_map",
- Tag: "varint,64025,opt,name=goproto_extensions_map,json=goprotoExtensionsMap",
+ Tag: "varint,64025,opt,name=goproto_extensions_map",
Filename: "gogo.proto",
}
@@ -537,7 +539,7 @@ var E_GoprotoUnrecognized = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 64026,
Name: "gogoproto.goproto_unrecognized",
- Tag: "varint,64026,opt,name=goproto_unrecognized,json=goprotoUnrecognized",
+ Tag: "varint,64026,opt,name=goproto_unrecognized",
Filename: "gogo.proto",
}
@@ -582,7 +584,7 @@ var E_GoprotoSizecache = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 64034,
Name: "gogoproto.goproto_sizecache",
- Tag: "varint,64034,opt,name=goproto_sizecache,json=goprotoSizecache",
+ Tag: "varint,64034,opt,name=goproto_sizecache",
Filename: "gogo.proto",
}
@@ -591,7 +593,7 @@ var E_GoprotoUnkeyed = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 64035,
Name: "gogoproto.goproto_unkeyed",
- Tag: "varint,64035,opt,name=goproto_unkeyed,json=goprotoUnkeyed",
+ Tag: "varint,64035,opt,name=goproto_unkeyed",
Filename: "gogo.proto",
}
@@ -782,9 +784,9 @@ func init() {
proto.RegisterExtension(E_Wktpointer)
}
-func init() { proto.RegisterFile("gogo.proto", fileDescriptor_gogo_b95f77e237336c7c) }
+func init() { proto.RegisterFile("gogo.proto", fileDescriptor_592445b5231bc2b9) }
-var fileDescriptor_gogo_b95f77e237336c7c = []byte{
+var fileDescriptor_592445b5231bc2b9 = []byte{
// 1328 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x98, 0x49, 0x6f, 0x1c, 0x45,
0x14, 0x80, 0x85, 0x48, 0x64, 0x4f, 0x79, 0x8b, 0xc7, 0xc6, 0x84, 0x08, 0x44, 0xe0, 0xc4, 0xc9,
diff --git a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go
index 9952ddc988..50275c41e2 100644
--- a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go
+++ b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go
@@ -3,9 +3,11 @@
package jsonpb
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -31,6 +33,7 @@ var Numeral_name = map[int32]string{
1: "ARABIC",
2: "ROMAN",
}
+
var Numeral_value = map[string]int32{
"UNKNOWN": 0,
"ARABIC": 1,
@@ -40,8 +43,9 @@ var Numeral_value = map[string]int32{
func (x Numeral) String() string {
return proto.EnumName(Numeral_name, int32(x))
}
+
func (Numeral) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_more_test_objects_bef0d79b901f4c4a, []int{0}
+ return fileDescriptor_e6c135db3023e377, []int{0}
}
type Simple3 struct {
@@ -55,7 +59,7 @@ func (m *Simple3) Reset() { *m = Simple3{} }
func (m *Simple3) String() string { return proto.CompactTextString(m) }
func (*Simple3) ProtoMessage() {}
func (*Simple3) Descriptor() ([]byte, []int) {
- return fileDescriptor_more_test_objects_bef0d79b901f4c4a, []int{0}
+ return fileDescriptor_e6c135db3023e377, []int{0}
}
func (m *Simple3) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Simple3.Unmarshal(m, b)
@@ -63,8 +67,8 @@ func (m *Simple3) XXX_Unmarshal(b []byte) error {
func (m *Simple3) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Simple3.Marshal(b, m, deterministic)
}
-func (dst *Simple3) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Simple3.Merge(dst, src)
+func (m *Simple3) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Simple3.Merge(m, src)
}
func (m *Simple3) XXX_Size() int {
return xxx_messageInfo_Simple3.Size(m)
@@ -93,7 +97,7 @@ func (m *SimpleSlice3) Reset() { *m = SimpleSlice3{} }
func (m *SimpleSlice3) String() string { return proto.CompactTextString(m) }
func (*SimpleSlice3) ProtoMessage() {}
func (*SimpleSlice3) Descriptor() ([]byte, []int) {
- return fileDescriptor_more_test_objects_bef0d79b901f4c4a, []int{1}
+ return fileDescriptor_e6c135db3023e377, []int{1}
}
func (m *SimpleSlice3) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SimpleSlice3.Unmarshal(m, b)
@@ -101,8 +105,8 @@ func (m *SimpleSlice3) XXX_Unmarshal(b []byte) error {
func (m *SimpleSlice3) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SimpleSlice3.Marshal(b, m, deterministic)
}
-func (dst *SimpleSlice3) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SimpleSlice3.Merge(dst, src)
+func (m *SimpleSlice3) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SimpleSlice3.Merge(m, src)
}
func (m *SimpleSlice3) XXX_Size() int {
return xxx_messageInfo_SimpleSlice3.Size(m)
@@ -131,7 +135,7 @@ func (m *SimpleMap3) Reset() { *m = SimpleMap3{} }
func (m *SimpleMap3) String() string { return proto.CompactTextString(m) }
func (*SimpleMap3) ProtoMessage() {}
func (*SimpleMap3) Descriptor() ([]byte, []int) {
- return fileDescriptor_more_test_objects_bef0d79b901f4c4a, []int{2}
+ return fileDescriptor_e6c135db3023e377, []int{2}
}
func (m *SimpleMap3) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SimpleMap3.Unmarshal(m, b)
@@ -139,8 +143,8 @@ func (m *SimpleMap3) XXX_Unmarshal(b []byte) error {
func (m *SimpleMap3) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SimpleMap3.Marshal(b, m, deterministic)
}
-func (dst *SimpleMap3) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SimpleMap3.Merge(dst, src)
+func (m *SimpleMap3) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SimpleMap3.Merge(m, src)
}
func (m *SimpleMap3) XXX_Size() int {
return xxx_messageInfo_SimpleMap3.Size(m)
@@ -169,7 +173,7 @@ func (m *SimpleNull3) Reset() { *m = SimpleNull3{} }
func (m *SimpleNull3) String() string { return proto.CompactTextString(m) }
func (*SimpleNull3) ProtoMessage() {}
func (*SimpleNull3) Descriptor() ([]byte, []int) {
- return fileDescriptor_more_test_objects_bef0d79b901f4c4a, []int{3}
+ return fileDescriptor_e6c135db3023e377, []int{3}
}
func (m *SimpleNull3) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SimpleNull3.Unmarshal(m, b)
@@ -177,8 +181,8 @@ func (m *SimpleNull3) XXX_Unmarshal(b []byte) error {
func (m *SimpleNull3) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SimpleNull3.Marshal(b, m, deterministic)
}
-func (dst *SimpleNull3) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SimpleNull3.Merge(dst, src)
+func (m *SimpleNull3) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SimpleNull3.Merge(m, src)
}
func (m *SimpleNull3) XXX_Size() int {
return xxx_messageInfo_SimpleNull3.Size(m)
@@ -216,7 +220,7 @@ func (m *Mappy) Reset() { *m = Mappy{} }
func (m *Mappy) String() string { return proto.CompactTextString(m) }
func (*Mappy) ProtoMessage() {}
func (*Mappy) Descriptor() ([]byte, []int) {
- return fileDescriptor_more_test_objects_bef0d79b901f4c4a, []int{4}
+ return fileDescriptor_e6c135db3023e377, []int{4}
}
func (m *Mappy) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Mappy.Unmarshal(m, b)
@@ -224,8 +228,8 @@ func (m *Mappy) XXX_Unmarshal(b []byte) error {
func (m *Mappy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Mappy.Marshal(b, m, deterministic)
}
-func (dst *Mappy) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Mappy.Merge(dst, src)
+func (m *Mappy) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Mappy.Merge(m, src)
}
func (m *Mappy) XXX_Size() int {
return xxx_messageInfo_Mappy.Size(m)
@@ -307,6 +311,7 @@ func (m *Mappy) GetU64Booly() map[uint64]bool {
}
func init() {
+ proto.RegisterEnum("jsonpb.Numeral", Numeral_name, Numeral_value)
proto.RegisterType((*Simple3)(nil), "jsonpb.Simple3")
proto.RegisterType((*SimpleSlice3)(nil), "jsonpb.SimpleSlice3")
proto.RegisterType((*SimpleMap3)(nil), "jsonpb.SimpleMap3")
@@ -323,14 +328,11 @@ func init() {
proto.RegisterMapType((map[string]string)(nil), "jsonpb.Mappy.StrryEntry")
proto.RegisterMapType((map[uint32]bool)(nil), "jsonpb.Mappy.U32boolyEntry")
proto.RegisterMapType((map[uint64]bool)(nil), "jsonpb.Mappy.U64boolyEntry")
- proto.RegisterEnum("jsonpb.Numeral", Numeral_name, Numeral_value)
}
-func init() {
- proto.RegisterFile("more_test_objects.proto", fileDescriptor_more_test_objects_bef0d79b901f4c4a)
-}
+func init() { proto.RegisterFile("more_test_objects.proto", fileDescriptor_e6c135db3023e377) }
-var fileDescriptor_more_test_objects_bef0d79b901f4c4a = []byte{
+var fileDescriptor_e6c135db3023e377 = []byte{
// 526 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x94, 0xdd, 0x6b, 0xdb, 0x3c,
0x14, 0x87, 0x5f, 0x27, 0xf5, 0xd7, 0x49, 0xfb, 0x2e, 0x88, 0xb1, 0x99, 0xf4, 0x62, 0xc5, 0xb0,
diff --git a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go
index 91be0b26fb..7efcab8457 100644
--- a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go
+++ b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go
@@ -3,12 +3,12 @@
package jsonpb
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-// skipping weak import gogoproto "github.com/gogo/protobuf/gogoproto"
-import types "github.com/gogo/protobuf/types"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ types "github.com/gogo/protobuf/types"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -34,6 +34,7 @@ var Widget_Color_name = map[int32]string{
1: "GREEN",
2: "BLUE",
}
+
var Widget_Color_value = map[string]int32{
"RED": 0,
"GREEN": 1,
@@ -45,9 +46,11 @@ func (x Widget_Color) Enum() *Widget_Color {
*p = x
return p
}
+
func (x Widget_Color) String() string {
return proto.EnumName(Widget_Color_name, int32(x))
}
+
func (x *Widget_Color) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(Widget_Color_value, data, "Widget_Color")
if err != nil {
@@ -56,8 +59,9 @@ func (x *Widget_Color) UnmarshalJSON(data []byte) error {
*x = Widget_Color(value)
return nil
}
+
func (Widget_Color) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_test_objects_a7605480de8589c4, []int{3, 0}
+ return fileDescriptor_e97c739a0ce14cc6, []int{3, 0}
}
// Test message for holding primitive types.
@@ -91,7 +95,7 @@ func (m *Simple) Reset() { *m = Simple{} }
func (m *Simple) String() string { return proto.CompactTextString(m) }
func (*Simple) ProtoMessage() {}
func (*Simple) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_objects_a7605480de8589c4, []int{0}
+ return fileDescriptor_e97c739a0ce14cc6, []int{0}
}
func (m *Simple) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Simple.Unmarshal(m, b)
@@ -99,8 +103,8 @@ func (m *Simple) XXX_Unmarshal(b []byte) error {
func (m *Simple) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Simple.Marshal(b, m, deterministic)
}
-func (dst *Simple) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Simple.Merge(dst, src)
+func (m *Simple) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Simple.Merge(m, src)
}
func (m *Simple) XXX_Size() int {
return xxx_messageInfo_Simple.Size(m)
@@ -268,7 +272,7 @@ func (m *NonFinites) Reset() { *m = NonFinites{} }
func (m *NonFinites) String() string { return proto.CompactTextString(m) }
func (*NonFinites) ProtoMessage() {}
func (*NonFinites) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_objects_a7605480de8589c4, []int{1}
+ return fileDescriptor_e97c739a0ce14cc6, []int{1}
}
func (m *NonFinites) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NonFinites.Unmarshal(m, b)
@@ -276,8 +280,8 @@ func (m *NonFinites) XXX_Unmarshal(b []byte) error {
func (m *NonFinites) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NonFinites.Marshal(b, m, deterministic)
}
-func (dst *NonFinites) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NonFinites.Merge(dst, src)
+func (m *NonFinites) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NonFinites.Merge(m, src)
}
func (m *NonFinites) XXX_Size() int {
return xxx_messageInfo_NonFinites.Size(m)
@@ -352,7 +356,7 @@ func (m *Repeats) Reset() { *m = Repeats{} }
func (m *Repeats) String() string { return proto.CompactTextString(m) }
func (*Repeats) ProtoMessage() {}
func (*Repeats) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_objects_a7605480de8589c4, []int{2}
+ return fileDescriptor_e97c739a0ce14cc6, []int{2}
}
func (m *Repeats) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Repeats.Unmarshal(m, b)
@@ -360,8 +364,8 @@ func (m *Repeats) XXX_Unmarshal(b []byte) error {
func (m *Repeats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Repeats.Marshal(b, m, deterministic)
}
-func (dst *Repeats) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Repeats.Merge(dst, src)
+func (m *Repeats) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Repeats.Merge(m, src)
}
func (m *Repeats) XXX_Size() int {
return xxx_messageInfo_Repeats.Size(m)
@@ -466,7 +470,7 @@ func (m *Widget) Reset() { *m = Widget{} }
func (m *Widget) String() string { return proto.CompactTextString(m) }
func (*Widget) ProtoMessage() {}
func (*Widget) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_objects_a7605480de8589c4, []int{3}
+ return fileDescriptor_e97c739a0ce14cc6, []int{3}
}
func (m *Widget) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Widget.Unmarshal(m, b)
@@ -474,8 +478,8 @@ func (m *Widget) XXX_Unmarshal(b []byte) error {
func (m *Widget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Widget.Marshal(b, m, deterministic)
}
-func (dst *Widget) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Widget.Merge(dst, src)
+func (m *Widget) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Widget.Merge(m, src)
}
func (m *Widget) XXX_Size() int {
return xxx_messageInfo_Widget.Size(m)
@@ -540,7 +544,7 @@ func (m *Maps) Reset() { *m = Maps{} }
func (m *Maps) String() string { return proto.CompactTextString(m) }
func (*Maps) ProtoMessage() {}
func (*Maps) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_objects_a7605480de8589c4, []int{4}
+ return fileDescriptor_e97c739a0ce14cc6, []int{4}
}
func (m *Maps) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Maps.Unmarshal(m, b)
@@ -548,8 +552,8 @@ func (m *Maps) XXX_Unmarshal(b []byte) error {
func (m *Maps) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Maps.Marshal(b, m, deterministic)
}
-func (dst *Maps) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Maps.Merge(dst, src)
+func (m *Maps) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Maps.Merge(m, src)
}
func (m *Maps) XXX_Size() int {
return xxx_messageInfo_Maps.Size(m)
@@ -591,7 +595,7 @@ func (m *MsgWithOneof) Reset() { *m = MsgWithOneof{} }
func (m *MsgWithOneof) String() string { return proto.CompactTextString(m) }
func (*MsgWithOneof) ProtoMessage() {}
func (*MsgWithOneof) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_objects_a7605480de8589c4, []int{5}
+ return fileDescriptor_e97c739a0ce14cc6, []int{5}
}
func (m *MsgWithOneof) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgWithOneof.Unmarshal(m, b)
@@ -599,8 +603,8 @@ func (m *MsgWithOneof) XXX_Unmarshal(b []byte) error {
func (m *MsgWithOneof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MsgWithOneof.Marshal(b, m, deterministic)
}
-func (dst *MsgWithOneof) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MsgWithOneof.Merge(dst, src)
+func (m *MsgWithOneof) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MsgWithOneof.Merge(m, src)
}
func (m *MsgWithOneof) XXX_Size() int {
return xxx_messageInfo_MsgWithOneof.Size(m)
@@ -805,7 +809,7 @@ func (m *Real) Reset() { *m = Real{} }
func (m *Real) String() string { return proto.CompactTextString(m) }
func (*Real) ProtoMessage() {}
func (*Real) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_objects_a7605480de8589c4, []int{6}
+ return fileDescriptor_e97c739a0ce14cc6, []int{6}
}
var extRange_Real = []proto.ExtensionRange{
@@ -815,14 +819,15 @@ var extRange_Real = []proto.ExtensionRange{
func (*Real) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_Real
}
+
func (m *Real) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Real.Unmarshal(m, b)
}
func (m *Real) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Real.Marshal(b, m, deterministic)
}
-func (dst *Real) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Real.Merge(dst, src)
+func (m *Real) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Real.Merge(m, src)
}
func (m *Real) XXX_Size() int {
return xxx_messageInfo_Real.Size(m)
@@ -852,7 +857,7 @@ func (m *Complex) Reset() { *m = Complex{} }
func (m *Complex) String() string { return proto.CompactTextString(m) }
func (*Complex) ProtoMessage() {}
func (*Complex) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_objects_a7605480de8589c4, []int{7}
+ return fileDescriptor_e97c739a0ce14cc6, []int{7}
}
var extRange_Complex = []proto.ExtensionRange{
@@ -862,14 +867,15 @@ var extRange_Complex = []proto.ExtensionRange{
func (*Complex) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_Complex
}
+
func (m *Complex) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Complex.Unmarshal(m, b)
}
func (m *Complex) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Complex.Marshal(b, m, deterministic)
}
-func (dst *Complex) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Complex.Merge(dst, src)
+func (m *Complex) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Complex.Merge(m, src)
}
func (m *Complex) XXX_Size() int {
return xxx_messageInfo_Complex.Size(m)
@@ -892,7 +898,7 @@ var E_Complex_RealExtension = &proto.ExtensionDesc{
ExtensionType: (*Complex)(nil),
Field: 123,
Name: "jsonpb.Complex.real_extension",
- Tag: "bytes,123,opt,name=real_extension,json=realExtension",
+ Tag: "bytes,123,opt,name=real_extension",
Filename: "test_objects.proto",
}
@@ -921,7 +927,7 @@ func (m *KnownTypes) Reset() { *m = KnownTypes{} }
func (m *KnownTypes) String() string { return proto.CompactTextString(m) }
func (*KnownTypes) ProtoMessage() {}
func (*KnownTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_objects_a7605480de8589c4, []int{8}
+ return fileDescriptor_e97c739a0ce14cc6, []int{8}
}
func (m *KnownTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KnownTypes.Unmarshal(m, b)
@@ -929,8 +935,8 @@ func (m *KnownTypes) XXX_Unmarshal(b []byte) error {
func (m *KnownTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_KnownTypes.Marshal(b, m, deterministic)
}
-func (dst *KnownTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_KnownTypes.Merge(dst, src)
+func (m *KnownTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KnownTypes.Merge(m, src)
}
func (m *KnownTypes) XXX_Size() int {
return xxx_messageInfo_KnownTypes.Size(m)
@@ -1058,7 +1064,7 @@ func (m *MsgWithRequired) Reset() { *m = MsgWithRequired{} }
func (m *MsgWithRequired) String() string { return proto.CompactTextString(m) }
func (*MsgWithRequired) ProtoMessage() {}
func (*MsgWithRequired) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_objects_a7605480de8589c4, []int{9}
+ return fileDescriptor_e97c739a0ce14cc6, []int{9}
}
func (m *MsgWithRequired) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgWithRequired.Unmarshal(m, b)
@@ -1066,8 +1072,8 @@ func (m *MsgWithRequired) XXX_Unmarshal(b []byte) error {
func (m *MsgWithRequired) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MsgWithRequired.Marshal(b, m, deterministic)
}
-func (dst *MsgWithRequired) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MsgWithRequired.Merge(dst, src)
+func (m *MsgWithRequired) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MsgWithRequired.Merge(m, src)
}
func (m *MsgWithRequired) XXX_Size() int {
return xxx_messageInfo_MsgWithRequired.Size(m)
@@ -1098,7 +1104,7 @@ func (m *MsgWithIndirectRequired) Reset() { *m = MsgWithIndirectRequired
func (m *MsgWithIndirectRequired) String() string { return proto.CompactTextString(m) }
func (*MsgWithIndirectRequired) ProtoMessage() {}
func (*MsgWithIndirectRequired) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_objects_a7605480de8589c4, []int{10}
+ return fileDescriptor_e97c739a0ce14cc6, []int{10}
}
func (m *MsgWithIndirectRequired) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgWithIndirectRequired.Unmarshal(m, b)
@@ -1106,8 +1112,8 @@ func (m *MsgWithIndirectRequired) XXX_Unmarshal(b []byte) error {
func (m *MsgWithIndirectRequired) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MsgWithIndirectRequired.Marshal(b, m, deterministic)
}
-func (dst *MsgWithIndirectRequired) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MsgWithIndirectRequired.Merge(dst, src)
+func (m *MsgWithIndirectRequired) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MsgWithIndirectRequired.Merge(m, src)
}
func (m *MsgWithIndirectRequired) XXX_Size() int {
return xxx_messageInfo_MsgWithIndirectRequired.Size(m)
@@ -1150,7 +1156,7 @@ func (m *MsgWithRequiredBytes) Reset() { *m = MsgWithRequiredBytes{} }
func (m *MsgWithRequiredBytes) String() string { return proto.CompactTextString(m) }
func (*MsgWithRequiredBytes) ProtoMessage() {}
func (*MsgWithRequiredBytes) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_objects_a7605480de8589c4, []int{11}
+ return fileDescriptor_e97c739a0ce14cc6, []int{11}
}
func (m *MsgWithRequiredBytes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgWithRequiredBytes.Unmarshal(m, b)
@@ -1158,8 +1164,8 @@ func (m *MsgWithRequiredBytes) XXX_Unmarshal(b []byte) error {
func (m *MsgWithRequiredBytes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MsgWithRequiredBytes.Marshal(b, m, deterministic)
}
-func (dst *MsgWithRequiredBytes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MsgWithRequiredBytes.Merge(dst, src)
+func (m *MsgWithRequiredBytes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MsgWithRequiredBytes.Merge(m, src)
}
func (m *MsgWithRequiredBytes) XXX_Size() int {
return xxx_messageInfo_MsgWithRequiredBytes.Size(m)
@@ -1188,7 +1194,7 @@ func (m *MsgWithRequiredWKT) Reset() { *m = MsgWithRequiredWKT{} }
func (m *MsgWithRequiredWKT) String() string { return proto.CompactTextString(m) }
func (*MsgWithRequiredWKT) ProtoMessage() {}
func (*MsgWithRequiredWKT) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_objects_a7605480de8589c4, []int{12}
+ return fileDescriptor_e97c739a0ce14cc6, []int{12}
}
func (m *MsgWithRequiredWKT) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgWithRequiredWKT.Unmarshal(m, b)
@@ -1196,8 +1202,8 @@ func (m *MsgWithRequiredWKT) XXX_Unmarshal(b []byte) error {
func (m *MsgWithRequiredWKT) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MsgWithRequiredWKT.Marshal(b, m, deterministic)
}
-func (dst *MsgWithRequiredWKT) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MsgWithRequiredWKT.Merge(dst, src)
+func (m *MsgWithRequiredWKT) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MsgWithRequiredWKT.Merge(m, src)
}
func (m *MsgWithRequiredWKT) XXX_Size() int {
return xxx_messageInfo_MsgWithRequiredWKT.Size(m)
@@ -1234,6 +1240,7 @@ var E_Extm = &proto.ExtensionDesc{
}
func init() {
+ proto.RegisterEnum("jsonpb.Widget_Color", Widget_Color_name, Widget_Color_value)
proto.RegisterType((*Simple)(nil), "jsonpb.Simple")
proto.RegisterType((*NonFinites)(nil), "jsonpb.NonFinites")
proto.RegisterType((*Repeats)(nil), "jsonpb.Repeats")
@@ -1243,6 +1250,7 @@ func init() {
proto.RegisterMapType((map[int64]string)(nil), "jsonpb.Maps.MInt64StrEntry")
proto.RegisterType((*MsgWithOneof)(nil), "jsonpb.MsgWithOneof")
proto.RegisterType((*Real)(nil), "jsonpb.Real")
+ proto.RegisterExtension(E_Complex_RealExtension)
proto.RegisterType((*Complex)(nil), "jsonpb.Complex")
proto.RegisterType((*KnownTypes)(nil), "jsonpb.KnownTypes")
proto.RegisterType((*MsgWithRequired)(nil), "jsonpb.MsgWithRequired")
@@ -1250,15 +1258,13 @@ func init() {
proto.RegisterMapType((map[string]*MsgWithRequired)(nil), "jsonpb.MsgWithIndirectRequired.MapFieldEntry")
proto.RegisterType((*MsgWithRequiredBytes)(nil), "jsonpb.MsgWithRequiredBytes")
proto.RegisterType((*MsgWithRequiredWKT)(nil), "jsonpb.MsgWithRequiredWKT")
- proto.RegisterEnum("jsonpb.Widget_Color", Widget_Color_name, Widget_Color_value)
- proto.RegisterExtension(E_Complex_RealExtension)
proto.RegisterExtension(E_Name)
proto.RegisterExtension(E_Extm)
}
-func init() { proto.RegisterFile("test_objects.proto", fileDescriptor_test_objects_a7605480de8589c4) }
+func init() { proto.RegisterFile("test_objects.proto", fileDescriptor_e97c739a0ce14cc6) }
-var fileDescriptor_test_objects_a7605480de8589c4 = []byte{
+var fileDescriptor_e97c739a0ce14cc6 = []byte{
// 1504 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0xdb, 0x72, 0xdb, 0x36,
0x1a, 0x36, 0x49, 0x51, 0x12, 0x7f, 0xf9, 0x14, 0xc4, 0x49, 0x64, 0x6d, 0x36, 0xe1, 0x28, 0xd9,
diff --git a/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go b/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go
index 133bdfe3ed..e29565d864 100644
--- a/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go
+++ b/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go
@@ -223,7 +223,7 @@ func (p *unmarshal) decodeVarint(varName string, typName string) {
p.P(`}`)
p.P(`b := dAtA[iNdEx]`)
p.P(`iNdEx++`)
- p.P(varName, ` |= (`, typName, `(b) & 0x7F) << shift`)
+ p.P(varName, ` |= `, typName, `(b&0x7F) << shift`)
p.P(`if b < 0x80 {`)
p.In()
p.P(`break`)
@@ -368,6 +368,11 @@ func (p *unmarshal) mapField(varName string, customType bool, field *descriptor.
p.Out()
p.P(`}`)
p.P(`postStringIndex`, varName, ` := iNdEx + intStringLen`, varName)
+ p.P(`if postStringIndex`, varName, ` < 0 {`)
+ p.In()
+ p.P(`return ErrInvalidLength` + p.localName)
+ p.Out()
+ p.P(`}`)
p.P(`if postStringIndex`, varName, ` > l {`)
p.In()
p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`)
@@ -386,7 +391,7 @@ func (p *unmarshal) mapField(varName string, customType bool, field *descriptor.
p.Out()
p.P(`}`)
p.P(`postmsgIndex := iNdEx + mapmsglen`)
- p.P(`if mapmsglen < 0 {`)
+ p.P(`if postmsgIndex < 0 {`)
p.In()
p.P(`return ErrInvalidLength` + p.localName)
p.Out()
@@ -440,6 +445,11 @@ func (p *unmarshal) mapField(varName string, customType bool, field *descriptor.
p.Out()
p.P(`}`)
p.P(`postbytesIndex := iNdEx + intMapbyteLen`)
+ p.P(`if postbytesIndex < 0 {`)
+ p.In()
+ p.P(`return ErrInvalidLength` + p.localName)
+ p.Out()
+ p.P(`}`)
p.P(`if postbytesIndex > l {`)
p.In()
p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`)
@@ -632,6 +642,11 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip
p.Out()
p.P(`}`)
p.P(`postIndex := iNdEx + intStringLen`)
+ p.P(`if postIndex < 0 {`)
+ p.In()
+ p.P(`return ErrInvalidLength` + p.localName)
+ p.Out()
+ p.P(`}`)
p.P(`if postIndex > l {`)
p.In()
p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`)
@@ -661,6 +676,11 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip
p.Out()
p.P(`}`)
p.P(`postIndex := iNdEx + msglen`)
+ p.P(`if postIndex < 0 {`)
+ p.In()
+ p.P(`return ErrInvalidLength` + p.localName)
+ p.Out()
+ p.P(`}`)
p.P(`if postIndex > l {`)
p.In()
p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`)
@@ -1110,6 +1130,11 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip
p.Out()
p.P(`}`)
p.P(`postIndex := iNdEx + byteLen`)
+ p.P(`if postIndex < 0 {`)
+ p.In()
+ p.P(`return ErrInvalidLength` + p.localName)
+ p.Out()
+ p.P(`}`)
p.P(`if postIndex > l {`)
p.In()
p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`)
@@ -1364,6 +1389,11 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
p.Out()
p.P(`}`)
p.P(`postIndex := iNdEx + packedLen`)
+ p.P(`if postIndex < 0 {`)
+ p.In()
+ p.P(`return ErrInvalidLength` + p.localName)
+ p.Out()
+ p.P(`}`)
p.P(`if postIndex > l {`)
p.In()
p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`)
@@ -1378,7 +1408,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
p.P(`elementCount = packedLen/`, 4)
case descriptor.FieldDescriptorProto_TYPE_INT64, descriptor.FieldDescriptorProto_TYPE_UINT64, descriptor.FieldDescriptorProto_TYPE_INT32, descriptor.FieldDescriptorProto_TYPE_UINT32, descriptor.FieldDescriptorProto_TYPE_SINT32, descriptor.FieldDescriptorProto_TYPE_SINT64:
p.P(`var count int`)
- p.P(`for _, integer := range dAtA {`)
+ p.P(`for _, integer := range dAtA[iNdEx:postIndex] {`)
p.In()
p.P(`if integer < 128 {`)
p.In()
@@ -1459,6 +1489,11 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
p.P(`return ErrInvalidLength`, p.localName)
p.Out()
p.P(`}`)
+ p.P(`if (iNdEx + skippy) < 0 {`)
+ p.In()
+ p.P(`return ErrInvalidLength`, p.localName)
+ p.Out()
+ p.P(`}`)
p.P(`if (iNdEx + skippy) > l {`)
p.In()
p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`)
@@ -1482,6 +1517,11 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
p.P(`return ErrInvalidLength`, p.localName)
p.Out()
p.P(`}`)
+ p.P(`if (iNdEx + skippy) < 0 {`)
+ p.In()
+ p.P(`return ErrInvalidLength`, p.localName)
+ p.Out()
+ p.P(`}`)
p.P(`if (iNdEx + skippy) > l {`)
p.In()
p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`)
@@ -1589,10 +1629,13 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLength` + p.localName + `
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLength` + p.localName + `
+ }
return iNdEx, nil
case 3:
for {
@@ -1621,6 +1664,9 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLength` + p.localName + `
+ }
}
return iNdEx, nil
case 4:
diff --git a/vendor/github.com/gogo/protobuf/proto/decode.go b/vendor/github.com/gogo/protobuf/proto/decode.go
index d9aa3c42d6..63b0f08bef 100644
--- a/vendor/github.com/gogo/protobuf/proto/decode.go
+++ b/vendor/github.com/gogo/protobuf/proto/decode.go
@@ -186,7 +186,6 @@ func (p *Buffer) DecodeVarint() (x uint64, err error) {
if b&0x80 == 0 {
goto done
}
- // x -= 0x80 << 63 // Always zero.
return 0, errOverflow
diff --git a/vendor/github.com/gogo/protobuf/proto/deprecated.go b/vendor/github.com/gogo/protobuf/proto/deprecated.go
new file mode 100644
index 0000000000..35b882c09a
--- /dev/null
+++ b/vendor/github.com/gogo/protobuf/proto/deprecated.go
@@ -0,0 +1,63 @@
+// Go support for Protocol Buffers - Google's data interchange format
+//
+// Copyright 2018 The Go Authors. All rights reserved.
+// https://github.com/golang/protobuf
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package proto
+
+import "errors"
+
+// Deprecated: do not use.
+type Stats struct{ Emalloc, Dmalloc, Encode, Decode, Chit, Cmiss, Size uint64 }
+
+// Deprecated: do not use.
+func GetStats() Stats { return Stats{} }
+
+// Deprecated: do not use.
+func MarshalMessageSet(interface{}) ([]byte, error) {
+ return nil, errors.New("proto: not implemented")
+}
+
+// Deprecated: do not use.
+func UnmarshalMessageSet([]byte, interface{}) error {
+ return errors.New("proto: not implemented")
+}
+
+// Deprecated: do not use.
+func MarshalMessageSetJSON(interface{}) ([]byte, error) {
+ return nil, errors.New("proto: not implemented")
+}
+
+// Deprecated: do not use.
+func UnmarshalMessageSetJSON([]byte, interface{}) error {
+ return errors.New("proto: not implemented")
+}
+
+// Deprecated: do not use.
+func RegisterMessageSetType(Message, int32, string) {}
diff --git a/vendor/github.com/gogo/protobuf/proto/extensions.go b/vendor/github.com/gogo/protobuf/proto/extensions.go
index 44ebd457cf..686bd2a09d 100644
--- a/vendor/github.com/gogo/protobuf/proto/extensions.go
+++ b/vendor/github.com/gogo/protobuf/proto/extensions.go
@@ -544,7 +544,7 @@ func SetExtension(pb Message, extension *ExtensionDesc, value interface{}) error
}
typ := reflect.TypeOf(extension.ExtensionType)
if typ != reflect.TypeOf(value) {
- return errors.New("proto: bad extension value type")
+ return fmt.Errorf("proto: bad extension value type. got: %T, want: %T", value, extension.ExtensionType)
}
// nil extension values need to be caught early, because the
// encoder can't distinguish an ErrNil due to a nil extension
diff --git a/vendor/github.com/gogo/protobuf/proto/lib.go b/vendor/github.com/gogo/protobuf/proto/lib.go
index b2271d0b7b..d17f802092 100644
--- a/vendor/github.com/gogo/protobuf/proto/lib.go
+++ b/vendor/github.com/gogo/protobuf/proto/lib.go
@@ -341,26 +341,6 @@ type Message interface {
ProtoMessage()
}
-// Stats records allocation details about the protocol buffer encoders
-// and decoders. Useful for tuning the library itself.
-type Stats struct {
- Emalloc uint64 // mallocs in encode
- Dmalloc uint64 // mallocs in decode
- Encode uint64 // number of encodes
- Decode uint64 // number of decodes
- Chit uint64 // number of cache hits
- Cmiss uint64 // number of cache misses
- Size uint64 // number of sizes
-}
-
-// Set to true to enable stats collection.
-const collectStats = false
-
-var stats Stats
-
-// GetStats returns a copy of the global Stats structure.
-func GetStats() Stats { return stats }
-
// A Buffer is a buffer manager for marshaling and unmarshaling
// protocol buffers. It may be reused between invocations to
// reduce memory usage. It is not necessary to use a Buffer;
diff --git a/vendor/github.com/gogo/protobuf/proto/message_set.go b/vendor/github.com/gogo/protobuf/proto/message_set.go
index 3b6ca41d5e..f48a756761 100644
--- a/vendor/github.com/gogo/protobuf/proto/message_set.go
+++ b/vendor/github.com/gogo/protobuf/proto/message_set.go
@@ -36,13 +36,7 @@ package proto
*/
import (
- "bytes"
- "encoding/json"
"errors"
- "fmt"
- "reflect"
- "sort"
- "sync"
)
// errNoMessageTypeID occurs when a protocol buffer does not have a message type ID.
@@ -145,46 +139,9 @@ func skipVarint(buf []byte) []byte {
return buf[i+1:]
}
-// MarshalMessageSet encodes the extension map represented by m in the message set wire format.
-// It is called by generated Marshal methods on protocol buffer messages with the message_set_wire_format option.
-func MarshalMessageSet(exts interface{}) ([]byte, error) {
- return marshalMessageSet(exts, false)
-}
-
-// marshaMessageSet implements above function, with the opt to turn on / off deterministic during Marshal.
-func marshalMessageSet(exts interface{}, deterministic bool) ([]byte, error) {
- switch exts := exts.(type) {
- case *XXX_InternalExtensions:
- var u marshalInfo
- siz := u.sizeMessageSet(exts)
- b := make([]byte, 0, siz)
- return u.appendMessageSet(b, exts, deterministic)
-
- case map[int32]Extension:
- // This is an old-style extension map.
- // Wrap it in a new-style XXX_InternalExtensions.
- ie := XXX_InternalExtensions{
- p: &struct {
- mu sync.Mutex
- extensionMap map[int32]Extension
- }{
- extensionMap: exts,
- },
- }
-
- var u marshalInfo
- siz := u.sizeMessageSet(&ie)
- b := make([]byte, 0, siz)
- return u.appendMessageSet(b, &ie, deterministic)
-
- default:
- return nil, errors.New("proto: not an extension map")
- }
-}
-
-// UnmarshalMessageSet decodes the extension map encoded in buf in the message set wire format.
+// unmarshalMessageSet decodes the extension map encoded in buf in the message set wire format.
// It is called by Unmarshal methods on protocol buffer messages with the message_set_wire_format option.
-func UnmarshalMessageSet(buf []byte, exts interface{}) error {
+func unmarshalMessageSet(buf []byte, exts interface{}) error {
var m map[int32]Extension
switch exts := exts.(type) {
case *XXX_InternalExtensions:
@@ -222,93 +179,3 @@ func UnmarshalMessageSet(buf []byte, exts interface{}) error {
}
return nil
}
-
-// MarshalMessageSetJSON encodes the extension map represented by m in JSON format.
-// It is called by generated MarshalJSON methods on protocol buffer messages with the message_set_wire_format option.
-func MarshalMessageSetJSON(exts interface{}) ([]byte, error) {
- var m map[int32]Extension
- switch exts := exts.(type) {
- case *XXX_InternalExtensions:
- var mu sync.Locker
- m, mu = exts.extensionsRead()
- if m != nil {
- // Keep the extensions map locked until we're done marshaling to prevent
- // races between marshaling and unmarshaling the lazily-{en,de}coded
- // values.
- mu.Lock()
- defer mu.Unlock()
- }
- case map[int32]Extension:
- m = exts
- default:
- return nil, errors.New("proto: not an extension map")
- }
- var b bytes.Buffer
- b.WriteByte('{')
-
- // Process the map in key order for deterministic output.
- ids := make([]int32, 0, len(m))
- for id := range m {
- ids = append(ids, id)
- }
- sort.Sort(int32Slice(ids)) // int32Slice defined in text.go
-
- for i, id := range ids {
- ext := m[id]
- msd, ok := messageSetMap[id]
- if !ok {
- // Unknown type; we can't render it, so skip it.
- continue
- }
-
- if i > 0 && b.Len() > 1 {
- b.WriteByte(',')
- }
-
- fmt.Fprintf(&b, `"[%s]":`, msd.name)
-
- x := ext.value
- if x == nil {
- x = reflect.New(msd.t.Elem()).Interface()
- if err := Unmarshal(ext.enc, x.(Message)); err != nil {
- return nil, err
- }
- }
- d, err := json.Marshal(x)
- if err != nil {
- return nil, err
- }
- b.Write(d)
- }
- b.WriteByte('}')
- return b.Bytes(), nil
-}
-
-// UnmarshalMessageSetJSON decodes the extension map encoded in buf in JSON format.
-// It is called by generated UnmarshalJSON methods on protocol buffer messages with the message_set_wire_format option.
-func UnmarshalMessageSetJSON(buf []byte, exts interface{}) error {
- // Common-case fast path.
- if len(buf) == 0 || bytes.Equal(buf, []byte("{}")) {
- return nil
- }
-
- // This is fairly tricky, and it's not clear that it is needed.
- return errors.New("TODO: UnmarshalMessageSetJSON not yet implemented")
-}
-
-// A global registry of types that can be used in a MessageSet.
-
-var messageSetMap = make(map[int32]messageSetDesc)
-
-type messageSetDesc struct {
- t reflect.Type // pointer to struct
- name string
-}
-
-// RegisterMessageSetType is called from the generated code.
-func RegisterMessageSetType(m Message, fieldNum int32, name string) {
- messageSetMap[fieldNum] = messageSetDesc{
- t: reflect.TypeOf(m),
- name: name,
- }
-}
diff --git a/vendor/github.com/gogo/protobuf/proto/properties.go b/vendor/github.com/gogo/protobuf/proto/properties.go
index 04dcb8d9ef..c9e5fa0207 100644
--- a/vendor/github.com/gogo/protobuf/proto/properties.go
+++ b/vendor/github.com/gogo/protobuf/proto/properties.go
@@ -391,9 +391,6 @@ func GetProperties(t reflect.Type) *StructProperties {
sprop, ok := propertiesMap[t]
propertiesMu.RUnlock()
if ok {
- if collectStats {
- stats.Chit++
- }
return sprop
}
@@ -406,14 +403,8 @@ func GetProperties(t reflect.Type) *StructProperties {
// getPropertiesLocked requires that propertiesMu is held.
func getPropertiesLocked(t reflect.Type) *StructProperties {
if prop, ok := propertiesMap[t]; ok {
- if collectStats {
- stats.Chit++
- }
return prop
}
- if collectStats {
- stats.Cmiss++
- }
prop := new(StructProperties)
// in case of recursive protos, fill this in now.
diff --git a/vendor/github.com/gogo/protobuf/proto/proto3_proto/proto3.pb.go b/vendor/github.com/gogo/protobuf/proto/proto3_proto/proto3.pb.go
index d896fa977e..973c726fee 100644
--- a/vendor/github.com/gogo/protobuf/proto/proto3_proto/proto3.pb.go
+++ b/vendor/github.com/gogo/protobuf/proto/proto3_proto/proto3.pb.go
@@ -3,11 +3,13 @@
package proto3_proto
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import test_proto "github.com/gogo/protobuf/proto/test_proto"
-import types "github.com/gogo/protobuf/types"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ test_proto "github.com/gogo/protobuf/proto/test_proto"
+ types "github.com/gogo/protobuf/types"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -35,6 +37,7 @@ var Message_Humour_name = map[int32]string{
2: "SLAPSTICK",
3: "BILL_BAILEY",
}
+
var Message_Humour_value = map[string]int32{
"UNKNOWN": 0,
"PUNS": 1,
@@ -45,8 +48,9 @@ var Message_Humour_value = map[string]int32{
func (x Message_Humour) String() string {
return proto.EnumName(Message_Humour_name, int32(x))
}
+
func (Message_Humour) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_proto3_648c710522dc372e, []int{0, 0}
+ return fileDescriptor_4fee6d65e34a64b6, []int{0, 0}
}
type Message struct {
@@ -78,7 +82,7 @@ func (m *Message) Reset() { *m = Message{} }
func (m *Message) String() string { return proto.CompactTextString(m) }
func (*Message) ProtoMessage() {}
func (*Message) Descriptor() ([]byte, []int) {
- return fileDescriptor_proto3_648c710522dc372e, []int{0}
+ return fileDescriptor_4fee6d65e34a64b6, []int{0}
}
func (m *Message) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Message.Unmarshal(m, b)
@@ -86,8 +90,8 @@ func (m *Message) XXX_Unmarshal(b []byte) error {
func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Message.Marshal(b, m, deterministic)
}
-func (dst *Message) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Message.Merge(dst, src)
+func (m *Message) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Message.Merge(m, src)
}
func (m *Message) XXX_Size() int {
return xxx_messageInfo_Message.Size(m)
@@ -243,7 +247,7 @@ func (m *Nested) Reset() { *m = Nested{} }
func (m *Nested) String() string { return proto.CompactTextString(m) }
func (*Nested) ProtoMessage() {}
func (*Nested) Descriptor() ([]byte, []int) {
- return fileDescriptor_proto3_648c710522dc372e, []int{1}
+ return fileDescriptor_4fee6d65e34a64b6, []int{1}
}
func (m *Nested) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Nested.Unmarshal(m, b)
@@ -251,8 +255,8 @@ func (m *Nested) XXX_Unmarshal(b []byte) error {
func (m *Nested) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Nested.Marshal(b, m, deterministic)
}
-func (dst *Nested) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Nested.Merge(dst, src)
+func (m *Nested) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Nested.Merge(m, src)
}
func (m *Nested) XXX_Size() int {
return xxx_messageInfo_Nested.Size(m)
@@ -288,7 +292,7 @@ func (m *MessageWithMap) Reset() { *m = MessageWithMap{} }
func (m *MessageWithMap) String() string { return proto.CompactTextString(m) }
func (*MessageWithMap) ProtoMessage() {}
func (*MessageWithMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_proto3_648c710522dc372e, []int{2}
+ return fileDescriptor_4fee6d65e34a64b6, []int{2}
}
func (m *MessageWithMap) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MessageWithMap.Unmarshal(m, b)
@@ -296,8 +300,8 @@ func (m *MessageWithMap) XXX_Unmarshal(b []byte) error {
func (m *MessageWithMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MessageWithMap.Marshal(b, m, deterministic)
}
-func (dst *MessageWithMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MessageWithMap.Merge(dst, src)
+func (m *MessageWithMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MessageWithMap.Merge(m, src)
}
func (m *MessageWithMap) XXX_Size() int {
return xxx_messageInfo_MessageWithMap.Size(m)
@@ -326,7 +330,7 @@ func (m *IntMap) Reset() { *m = IntMap{} }
func (m *IntMap) String() string { return proto.CompactTextString(m) }
func (*IntMap) ProtoMessage() {}
func (*IntMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_proto3_648c710522dc372e, []int{3}
+ return fileDescriptor_4fee6d65e34a64b6, []int{3}
}
func (m *IntMap) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IntMap.Unmarshal(m, b)
@@ -334,8 +338,8 @@ func (m *IntMap) XXX_Unmarshal(b []byte) error {
func (m *IntMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_IntMap.Marshal(b, m, deterministic)
}
-func (dst *IntMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_IntMap.Merge(dst, src)
+func (m *IntMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_IntMap.Merge(m, src)
}
func (m *IntMap) XXX_Size() int {
return xxx_messageInfo_IntMap.Size(m)
@@ -364,7 +368,7 @@ func (m *IntMaps) Reset() { *m = IntMaps{} }
func (m *IntMaps) String() string { return proto.CompactTextString(m) }
func (*IntMaps) ProtoMessage() {}
func (*IntMaps) Descriptor() ([]byte, []int) {
- return fileDescriptor_proto3_648c710522dc372e, []int{4}
+ return fileDescriptor_4fee6d65e34a64b6, []int{4}
}
func (m *IntMaps) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IntMaps.Unmarshal(m, b)
@@ -372,8 +376,8 @@ func (m *IntMaps) XXX_Unmarshal(b []byte) error {
func (m *IntMaps) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_IntMaps.Marshal(b, m, deterministic)
}
-func (dst *IntMaps) XXX_Merge(src proto.Message) {
- xxx_messageInfo_IntMaps.Merge(dst, src)
+func (m *IntMaps) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_IntMaps.Merge(m, src)
}
func (m *IntMaps) XXX_Size() int {
return xxx_messageInfo_IntMaps.Size(m)
@@ -408,7 +412,7 @@ func (m *TestUTF8) Reset() { *m = TestUTF8{} }
func (m *TestUTF8) String() string { return proto.CompactTextString(m) }
func (*TestUTF8) ProtoMessage() {}
func (*TestUTF8) Descriptor() ([]byte, []int) {
- return fileDescriptor_proto3_648c710522dc372e, []int{5}
+ return fileDescriptor_4fee6d65e34a64b6, []int{5}
}
func (m *TestUTF8) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TestUTF8.Unmarshal(m, b)
@@ -416,8 +420,8 @@ func (m *TestUTF8) XXX_Unmarshal(b []byte) error {
func (m *TestUTF8) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_TestUTF8.Marshal(b, m, deterministic)
}
-func (dst *TestUTF8) XXX_Merge(src proto.Message) {
- xxx_messageInfo_TestUTF8.Merge(dst, src)
+func (m *TestUTF8) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_TestUTF8.Merge(m, src)
}
func (m *TestUTF8) XXX_Size() int {
return xxx_messageInfo_TestUTF8.Size(m)
@@ -532,6 +536,7 @@ func _TestUTF8_OneofSizer(msg proto.Message) (n int) {
}
func init() {
+ proto.RegisterEnum("proto3_proto.Message_Humour", Message_Humour_name, Message_Humour_value)
proto.RegisterType((*Message)(nil), "proto3_proto.Message")
proto.RegisterMapType((map[string]*test_proto.SubDefaults)(nil), "proto3_proto.Message.Proto2ValueEntry")
proto.RegisterMapType((map[string]string)(nil), "proto3_proto.Message.StringMapEntry")
@@ -545,12 +550,11 @@ func init() {
proto.RegisterType((*TestUTF8)(nil), "proto3_proto.TestUTF8")
proto.RegisterMapType((map[string]int64)(nil), "proto3_proto.TestUTF8.MapKeyEntry")
proto.RegisterMapType((map[int64]string)(nil), "proto3_proto.TestUTF8.MapValueEntry")
- proto.RegisterEnum("proto3_proto.Message_Humour", Message_Humour_name, Message_Humour_value)
}
-func init() { proto.RegisterFile("proto3.proto", fileDescriptor_proto3_648c710522dc372e) }
+func init() { proto.RegisterFile("proto3.proto", fileDescriptor_4fee6d65e34a64b6) }
-var fileDescriptor_proto3_648c710522dc372e = []byte{
+var fileDescriptor_4fee6d65e34a64b6 = []byte{
// 891 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x54, 0xff, 0x8e, 0xdb, 0x44,
0x10, 0xae, 0xe3, 0xfc, 0x70, 0x26, 0xc9, 0x35, 0x2c, 0x69, 0x59, 0x02, 0x48, 0x26, 0x20, 0x64,
diff --git a/vendor/github.com/gogo/protobuf/proto/table_marshal.go b/vendor/github.com/gogo/protobuf/proto/table_marshal.go
index ba58c49a43..9b1538d055 100644
--- a/vendor/github.com/gogo/protobuf/proto/table_marshal.go
+++ b/vendor/github.com/gogo/protobuf/proto/table_marshal.go
@@ -491,7 +491,7 @@ func (fi *marshalFieldInfo) computeMarshalFieldInfo(f *reflect.StructField) {
func (fi *marshalFieldInfo) computeOneofFieldInfo(f *reflect.StructField, oneofImplementers []interface{}) {
fi.field = toField(f)
- fi.wiretag = 1<<31 - 1 // Use a large tag number, make oneofs sorted at the end. This tag will not appear on the wire.
+ fi.wiretag = math.MaxInt32 // Use a large tag number, make oneofs sorted at the end. This tag will not appear on the wire.
fi.isPointer = true
fi.sizer, fi.marshaler = makeOneOfMarshaler(fi, f)
fi.oneofElems = make(map[reflect.Type]*marshalElemInfo)
diff --git a/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go b/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go
index e6b15c76ca..bb2622f28c 100644
--- a/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go
+++ b/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go
@@ -138,7 +138,7 @@ func (u *unmarshalInfo) unmarshal(m pointer, b []byte) error {
u.computeUnmarshalInfo()
}
if u.isMessageSet {
- return UnmarshalMessageSet(b, m.offset(u.extensions).toExtensions())
+ return unmarshalMessageSet(b, m.offset(u.extensions).toExtensions())
}
var reqMask uint64 // bitmask of required fields we've seen.
var errLater error
@@ -2142,7 +2142,7 @@ func encodeVarint(b []byte, x uint64) []byte {
// If there is an error, it returns 0,0.
func decodeVarint(b []byte) (uint64, int) {
var x, y uint64
- if len(b) <= 0 {
+ if len(b) == 0 {
goto bad
}
x = uint64(b[0])
diff --git a/vendor/github.com/gogo/protobuf/proto/test_proto/test.pb.go b/vendor/github.com/gogo/protobuf/proto/test_proto/test.pb.go
index a535feb9df..b3fa22604d 100644
--- a/vendor/github.com/gogo/protobuf/proto/test_proto/test.pb.go
+++ b/vendor/github.com/gogo/protobuf/proto/test_proto/test.pb.go
@@ -1,11 +1,13 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: test.proto
-package test_proto // import "github.com/gogo/protobuf/proto/test_proto"
+package test_proto
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -27,6 +29,7 @@ const (
var FOO_name = map[int32]string{
1: "FOO1",
}
+
var FOO_value = map[string]int32{
"FOO1": 1,
}
@@ -36,9 +39,11 @@ func (x FOO) Enum() *FOO {
*p = x
return p
}
+
func (x FOO) String() string {
return proto.EnumName(FOO_name, int32(x))
}
+
func (x *FOO) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(FOO_value, data, "FOO")
if err != nil {
@@ -47,8 +52,9 @@ func (x *FOO) UnmarshalJSON(data []byte) error {
*x = FOO(value)
return nil
}
+
func (FOO) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{0}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{0}
}
// An enum, for completeness.
@@ -89,6 +95,7 @@ var GoTest_KIND_name = map[int32]string{
11: "TABLE",
12: "FUNCTION",
}
+
var GoTest_KIND_value = map[string]int32{
"VOID": 0,
"BOOL": 1,
@@ -110,9 +117,11 @@ func (x GoTest_KIND) Enum() *GoTest_KIND {
*p = x
return p
}
+
func (x GoTest_KIND) String() string {
return proto.EnumName(GoTest_KIND_name, int32(x))
}
+
func (x *GoTest_KIND) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(GoTest_KIND_value, data, "GoTest_KIND")
if err != nil {
@@ -121,8 +130,9 @@ func (x *GoTest_KIND) UnmarshalJSON(data []byte) error {
*x = GoTest_KIND(value)
return nil
}
+
func (GoTest_KIND) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{2, 0}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{2, 0}
}
type MyMessage_Color int32
@@ -138,6 +148,7 @@ var MyMessage_Color_name = map[int32]string{
1: "GREEN",
2: "BLUE",
}
+
var MyMessage_Color_value = map[string]int32{
"RED": 0,
"GREEN": 1,
@@ -149,9 +160,11 @@ func (x MyMessage_Color) Enum() *MyMessage_Color {
*p = x
return p
}
+
func (x MyMessage_Color) String() string {
return proto.EnumName(MyMessage_Color_name, int32(x))
}
+
func (x *MyMessage_Color) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(MyMessage_Color_value, data, "MyMessage_Color")
if err != nil {
@@ -160,8 +173,9 @@ func (x *MyMessage_Color) UnmarshalJSON(data []byte) error {
*x = MyMessage_Color(value)
return nil
}
+
func (MyMessage_Color) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{13, 0}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{13, 0}
}
type DefaultsMessage_DefaultsEnum int32
@@ -177,6 +191,7 @@ var DefaultsMessage_DefaultsEnum_name = map[int32]string{
1: "ONE",
2: "TWO",
}
+
var DefaultsMessage_DefaultsEnum_value = map[string]int32{
"ZERO": 0,
"ONE": 1,
@@ -188,9 +203,11 @@ func (x DefaultsMessage_DefaultsEnum) Enum() *DefaultsMessage_DefaultsEnum {
*p = x
return p
}
+
func (x DefaultsMessage_DefaultsEnum) String() string {
return proto.EnumName(DefaultsMessage_DefaultsEnum_name, int32(x))
}
+
func (x *DefaultsMessage_DefaultsEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(DefaultsMessage_DefaultsEnum_value, data, "DefaultsMessage_DefaultsEnum")
if err != nil {
@@ -199,8 +216,9 @@ func (x *DefaultsMessage_DefaultsEnum) UnmarshalJSON(data []byte) error {
*x = DefaultsMessage_DefaultsEnum(value)
return nil
}
+
func (DefaultsMessage_DefaultsEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{16, 0}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{16, 0}
}
type Defaults_Color int32
@@ -216,6 +234,7 @@ var Defaults_Color_name = map[int32]string{
1: "GREEN",
2: "BLUE",
}
+
var Defaults_Color_value = map[string]int32{
"RED": 0,
"GREEN": 1,
@@ -227,9 +246,11 @@ func (x Defaults_Color) Enum() *Defaults_Color {
*p = x
return p
}
+
func (x Defaults_Color) String() string {
return proto.EnumName(Defaults_Color_name, int32(x))
}
+
func (x *Defaults_Color) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(Defaults_Color_value, data, "Defaults_Color")
if err != nil {
@@ -238,8 +259,9 @@ func (x *Defaults_Color) UnmarshalJSON(data []byte) error {
*x = Defaults_Color(value)
return nil
}
+
func (Defaults_Color) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{21, 0}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{21, 0}
}
type RepeatedEnum_Color int32
@@ -251,6 +273,7 @@ const (
var RepeatedEnum_Color_name = map[int32]string{
1: "RED",
}
+
var RepeatedEnum_Color_value = map[string]int32{
"RED": 1,
}
@@ -260,9 +283,11 @@ func (x RepeatedEnum_Color) Enum() *RepeatedEnum_Color {
*p = x
return p
}
+
func (x RepeatedEnum_Color) String() string {
return proto.EnumName(RepeatedEnum_Color_name, int32(x))
}
+
func (x *RepeatedEnum_Color) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(RepeatedEnum_Color_value, data, "RepeatedEnum_Color")
if err != nil {
@@ -271,8 +296,9 @@ func (x *RepeatedEnum_Color) UnmarshalJSON(data []byte) error {
*x = RepeatedEnum_Color(value)
return nil
}
+
func (RepeatedEnum_Color) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{23, 0}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{23, 0}
}
type GoEnum struct {
@@ -286,7 +312,7 @@ func (m *GoEnum) Reset() { *m = GoEnum{} }
func (m *GoEnum) String() string { return proto.CompactTextString(m) }
func (*GoEnum) ProtoMessage() {}
func (*GoEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{0}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{0}
}
func (m *GoEnum) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GoEnum.Unmarshal(m, b)
@@ -294,8 +320,8 @@ func (m *GoEnum) XXX_Unmarshal(b []byte) error {
func (m *GoEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GoEnum.Marshal(b, m, deterministic)
}
-func (dst *GoEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GoEnum.Merge(dst, src)
+func (m *GoEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GoEnum.Merge(m, src)
}
func (m *GoEnum) XXX_Size() int {
return xxx_messageInfo_GoEnum.Size(m)
@@ -325,7 +351,7 @@ func (m *GoTestField) Reset() { *m = GoTestField{} }
func (m *GoTestField) String() string { return proto.CompactTextString(m) }
func (*GoTestField) ProtoMessage() {}
func (*GoTestField) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{1}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{1}
}
func (m *GoTestField) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GoTestField.Unmarshal(m, b)
@@ -333,8 +359,8 @@ func (m *GoTestField) XXX_Unmarshal(b []byte) error {
func (m *GoTestField) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GoTestField.Marshal(b, m, deterministic)
}
-func (dst *GoTestField) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GoTestField.Merge(dst, src)
+func (m *GoTestField) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GoTestField.Merge(m, src)
}
func (m *GoTestField) XXX_Size() int {
return xxx_messageInfo_GoTestField.Size(m)
@@ -458,7 +484,7 @@ func (m *GoTest) Reset() { *m = GoTest{} }
func (m *GoTest) String() string { return proto.CompactTextString(m) }
func (*GoTest) ProtoMessage() {}
func (*GoTest) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{2}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{2}
}
func (m *GoTest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GoTest.Unmarshal(m, b)
@@ -466,8 +492,8 @@ func (m *GoTest) XXX_Unmarshal(b []byte) error {
func (m *GoTest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GoTest.Marshal(b, m, deterministic)
}
-func (dst *GoTest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GoTest.Merge(dst, src)
+func (m *GoTest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GoTest.Merge(m, src)
}
func (m *GoTest) XXX_Size() int {
return xxx_messageInfo_GoTest.Size(m)
@@ -1082,7 +1108,7 @@ func (m *GoTest_RequiredGroup) Reset() { *m = GoTest_RequiredGroup{} }
func (m *GoTest_RequiredGroup) String() string { return proto.CompactTextString(m) }
func (*GoTest_RequiredGroup) ProtoMessage() {}
func (*GoTest_RequiredGroup) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{2, 0}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{2, 0}
}
func (m *GoTest_RequiredGroup) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GoTest_RequiredGroup.Unmarshal(m, b)
@@ -1090,8 +1116,8 @@ func (m *GoTest_RequiredGroup) XXX_Unmarshal(b []byte) error {
func (m *GoTest_RequiredGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GoTest_RequiredGroup.Marshal(b, m, deterministic)
}
-func (dst *GoTest_RequiredGroup) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GoTest_RequiredGroup.Merge(dst, src)
+func (m *GoTest_RequiredGroup) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GoTest_RequiredGroup.Merge(m, src)
}
func (m *GoTest_RequiredGroup) XXX_Size() int {
return xxx_messageInfo_GoTest_RequiredGroup.Size(m)
@@ -1120,7 +1146,7 @@ func (m *GoTest_RepeatedGroup) Reset() { *m = GoTest_RepeatedGroup{} }
func (m *GoTest_RepeatedGroup) String() string { return proto.CompactTextString(m) }
func (*GoTest_RepeatedGroup) ProtoMessage() {}
func (*GoTest_RepeatedGroup) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{2, 1}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{2, 1}
}
func (m *GoTest_RepeatedGroup) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GoTest_RepeatedGroup.Unmarshal(m, b)
@@ -1128,8 +1154,8 @@ func (m *GoTest_RepeatedGroup) XXX_Unmarshal(b []byte) error {
func (m *GoTest_RepeatedGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GoTest_RepeatedGroup.Marshal(b, m, deterministic)
}
-func (dst *GoTest_RepeatedGroup) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GoTest_RepeatedGroup.Merge(dst, src)
+func (m *GoTest_RepeatedGroup) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GoTest_RepeatedGroup.Merge(m, src)
}
func (m *GoTest_RepeatedGroup) XXX_Size() int {
return xxx_messageInfo_GoTest_RepeatedGroup.Size(m)
@@ -1158,7 +1184,7 @@ func (m *GoTest_OptionalGroup) Reset() { *m = GoTest_OptionalGroup{} }
func (m *GoTest_OptionalGroup) String() string { return proto.CompactTextString(m) }
func (*GoTest_OptionalGroup) ProtoMessage() {}
func (*GoTest_OptionalGroup) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{2, 2}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{2, 2}
}
func (m *GoTest_OptionalGroup) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GoTest_OptionalGroup.Unmarshal(m, b)
@@ -1166,8 +1192,8 @@ func (m *GoTest_OptionalGroup) XXX_Unmarshal(b []byte) error {
func (m *GoTest_OptionalGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GoTest_OptionalGroup.Marshal(b, m, deterministic)
}
-func (dst *GoTest_OptionalGroup) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GoTest_OptionalGroup.Merge(dst, src)
+func (m *GoTest_OptionalGroup) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GoTest_OptionalGroup.Merge(m, src)
}
func (m *GoTest_OptionalGroup) XXX_Size() int {
return xxx_messageInfo_GoTest_OptionalGroup.Size(m)
@@ -1197,7 +1223,7 @@ func (m *GoTestRequiredGroupField) Reset() { *m = GoTestRequiredGroupFie
func (m *GoTestRequiredGroupField) String() string { return proto.CompactTextString(m) }
func (*GoTestRequiredGroupField) ProtoMessage() {}
func (*GoTestRequiredGroupField) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{3}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{3}
}
func (m *GoTestRequiredGroupField) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GoTestRequiredGroupField.Unmarshal(m, b)
@@ -1205,8 +1231,8 @@ func (m *GoTestRequiredGroupField) XXX_Unmarshal(b []byte) error {
func (m *GoTestRequiredGroupField) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GoTestRequiredGroupField.Marshal(b, m, deterministic)
}
-func (dst *GoTestRequiredGroupField) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GoTestRequiredGroupField.Merge(dst, src)
+func (m *GoTestRequiredGroupField) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GoTestRequiredGroupField.Merge(m, src)
}
func (m *GoTestRequiredGroupField) XXX_Size() int {
return xxx_messageInfo_GoTestRequiredGroupField.Size(m)
@@ -1235,7 +1261,7 @@ func (m *GoTestRequiredGroupField_Group) Reset() { *m = GoTestRequiredGr
func (m *GoTestRequiredGroupField_Group) String() string { return proto.CompactTextString(m) }
func (*GoTestRequiredGroupField_Group) ProtoMessage() {}
func (*GoTestRequiredGroupField_Group) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{3, 0}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{3, 0}
}
func (m *GoTestRequiredGroupField_Group) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GoTestRequiredGroupField_Group.Unmarshal(m, b)
@@ -1243,8 +1269,8 @@ func (m *GoTestRequiredGroupField_Group) XXX_Unmarshal(b []byte) error {
func (m *GoTestRequiredGroupField_Group) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GoTestRequiredGroupField_Group.Marshal(b, m, deterministic)
}
-func (dst *GoTestRequiredGroupField_Group) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GoTestRequiredGroupField_Group.Merge(dst, src)
+func (m *GoTestRequiredGroupField_Group) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GoTestRequiredGroupField_Group.Merge(m, src)
}
func (m *GoTestRequiredGroupField_Group) XXX_Size() int {
return xxx_messageInfo_GoTestRequiredGroupField_Group.Size(m)
@@ -1280,7 +1306,7 @@ func (m *GoSkipTest) Reset() { *m = GoSkipTest{} }
func (m *GoSkipTest) String() string { return proto.CompactTextString(m) }
func (*GoSkipTest) ProtoMessage() {}
func (*GoSkipTest) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{4}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{4}
}
func (m *GoSkipTest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GoSkipTest.Unmarshal(m, b)
@@ -1288,8 +1314,8 @@ func (m *GoSkipTest) XXX_Unmarshal(b []byte) error {
func (m *GoSkipTest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GoSkipTest.Marshal(b, m, deterministic)
}
-func (dst *GoSkipTest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GoSkipTest.Merge(dst, src)
+func (m *GoSkipTest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GoSkipTest.Merge(m, src)
}
func (m *GoSkipTest) XXX_Size() int {
return xxx_messageInfo_GoSkipTest.Size(m)
@@ -1347,7 +1373,7 @@ func (m *GoSkipTest_SkipGroup) Reset() { *m = GoSkipTest_SkipGroup{} }
func (m *GoSkipTest_SkipGroup) String() string { return proto.CompactTextString(m) }
func (*GoSkipTest_SkipGroup) ProtoMessage() {}
func (*GoSkipTest_SkipGroup) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{4, 0}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{4, 0}
}
func (m *GoSkipTest_SkipGroup) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GoSkipTest_SkipGroup.Unmarshal(m, b)
@@ -1355,8 +1381,8 @@ func (m *GoSkipTest_SkipGroup) XXX_Unmarshal(b []byte) error {
func (m *GoSkipTest_SkipGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GoSkipTest_SkipGroup.Marshal(b, m, deterministic)
}
-func (dst *GoSkipTest_SkipGroup) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GoSkipTest_SkipGroup.Merge(dst, src)
+func (m *GoSkipTest_SkipGroup) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GoSkipTest_SkipGroup.Merge(m, src)
}
func (m *GoSkipTest_SkipGroup) XXX_Size() int {
return xxx_messageInfo_GoSkipTest_SkipGroup.Size(m)
@@ -1394,7 +1420,7 @@ func (m *NonPackedTest) Reset() { *m = NonPackedTest{} }
func (m *NonPackedTest) String() string { return proto.CompactTextString(m) }
func (*NonPackedTest) ProtoMessage() {}
func (*NonPackedTest) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{5}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{5}
}
func (m *NonPackedTest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NonPackedTest.Unmarshal(m, b)
@@ -1402,8 +1428,8 @@ func (m *NonPackedTest) XXX_Unmarshal(b []byte) error {
func (m *NonPackedTest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NonPackedTest.Marshal(b, m, deterministic)
}
-func (dst *NonPackedTest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NonPackedTest.Merge(dst, src)
+func (m *NonPackedTest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NonPackedTest.Merge(m, src)
}
func (m *NonPackedTest) XXX_Size() int {
return xxx_messageInfo_NonPackedTest.Size(m)
@@ -1432,7 +1458,7 @@ func (m *PackedTest) Reset() { *m = PackedTest{} }
func (m *PackedTest) String() string { return proto.CompactTextString(m) }
func (*PackedTest) ProtoMessage() {}
func (*PackedTest) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{6}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{6}
}
func (m *PackedTest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PackedTest.Unmarshal(m, b)
@@ -1440,8 +1466,8 @@ func (m *PackedTest) XXX_Unmarshal(b []byte) error {
func (m *PackedTest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PackedTest.Marshal(b, m, deterministic)
}
-func (dst *PackedTest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_PackedTest.Merge(dst, src)
+func (m *PackedTest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PackedTest.Merge(m, src)
}
func (m *PackedTest) XXX_Size() int {
return xxx_messageInfo_PackedTest.Size(m)
@@ -1471,7 +1497,7 @@ func (m *MaxTag) Reset() { *m = MaxTag{} }
func (m *MaxTag) String() string { return proto.CompactTextString(m) }
func (*MaxTag) ProtoMessage() {}
func (*MaxTag) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{7}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{7}
}
func (m *MaxTag) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MaxTag.Unmarshal(m, b)
@@ -1479,8 +1505,8 @@ func (m *MaxTag) XXX_Unmarshal(b []byte) error {
func (m *MaxTag) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MaxTag.Marshal(b, m, deterministic)
}
-func (dst *MaxTag) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MaxTag.Merge(dst, src)
+func (m *MaxTag) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MaxTag.Merge(m, src)
}
func (m *MaxTag) XXX_Size() int {
return xxx_messageInfo_MaxTag.Size(m)
@@ -1510,7 +1536,7 @@ func (m *OldMessage) Reset() { *m = OldMessage{} }
func (m *OldMessage) String() string { return proto.CompactTextString(m) }
func (*OldMessage) ProtoMessage() {}
func (*OldMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{8}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{8}
}
func (m *OldMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OldMessage.Unmarshal(m, b)
@@ -1518,8 +1544,8 @@ func (m *OldMessage) XXX_Unmarshal(b []byte) error {
func (m *OldMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OldMessage.Marshal(b, m, deterministic)
}
-func (dst *OldMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OldMessage.Merge(dst, src)
+func (m *OldMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OldMessage.Merge(m, src)
}
func (m *OldMessage) XXX_Size() int {
return xxx_messageInfo_OldMessage.Size(m)
@@ -1555,7 +1581,7 @@ func (m *OldMessage_Nested) Reset() { *m = OldMessage_Nested{} }
func (m *OldMessage_Nested) String() string { return proto.CompactTextString(m) }
func (*OldMessage_Nested) ProtoMessage() {}
func (*OldMessage_Nested) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{8, 0}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{8, 0}
}
func (m *OldMessage_Nested) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OldMessage_Nested.Unmarshal(m, b)
@@ -1563,8 +1589,8 @@ func (m *OldMessage_Nested) XXX_Unmarshal(b []byte) error {
func (m *OldMessage_Nested) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OldMessage_Nested.Marshal(b, m, deterministic)
}
-func (dst *OldMessage_Nested) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OldMessage_Nested.Merge(dst, src)
+func (m *OldMessage_Nested) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OldMessage_Nested.Merge(m, src)
}
func (m *OldMessage_Nested) XXX_Size() int {
return xxx_messageInfo_OldMessage_Nested.Size(m)
@@ -1597,7 +1623,7 @@ func (m *NewMessage) Reset() { *m = NewMessage{} }
func (m *NewMessage) String() string { return proto.CompactTextString(m) }
func (*NewMessage) ProtoMessage() {}
func (*NewMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{9}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{9}
}
func (m *NewMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NewMessage.Unmarshal(m, b)
@@ -1605,8 +1631,8 @@ func (m *NewMessage) XXX_Unmarshal(b []byte) error {
func (m *NewMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NewMessage.Marshal(b, m, deterministic)
}
-func (dst *NewMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NewMessage.Merge(dst, src)
+func (m *NewMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NewMessage.Merge(m, src)
}
func (m *NewMessage) XXX_Size() int {
return xxx_messageInfo_NewMessage.Size(m)
@@ -1643,7 +1669,7 @@ func (m *NewMessage_Nested) Reset() { *m = NewMessage_Nested{} }
func (m *NewMessage_Nested) String() string { return proto.CompactTextString(m) }
func (*NewMessage_Nested) ProtoMessage() {}
func (*NewMessage_Nested) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{9, 0}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{9, 0}
}
func (m *NewMessage_Nested) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NewMessage_Nested.Unmarshal(m, b)
@@ -1651,8 +1677,8 @@ func (m *NewMessage_Nested) XXX_Unmarshal(b []byte) error {
func (m *NewMessage_Nested) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NewMessage_Nested.Marshal(b, m, deterministic)
}
-func (dst *NewMessage_Nested) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NewMessage_Nested.Merge(dst, src)
+func (m *NewMessage_Nested) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NewMessage_Nested.Merge(m, src)
}
func (m *NewMessage_Nested) XXX_Size() int {
return xxx_messageInfo_NewMessage_Nested.Size(m)
@@ -1690,7 +1716,7 @@ func (m *InnerMessage) Reset() { *m = InnerMessage{} }
func (m *InnerMessage) String() string { return proto.CompactTextString(m) }
func (*InnerMessage) ProtoMessage() {}
func (*InnerMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{10}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{10}
}
func (m *InnerMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InnerMessage.Unmarshal(m, b)
@@ -1698,8 +1724,8 @@ func (m *InnerMessage) XXX_Unmarshal(b []byte) error {
func (m *InnerMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_InnerMessage.Marshal(b, m, deterministic)
}
-func (dst *InnerMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_InnerMessage.Merge(dst, src)
+func (m *InnerMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_InnerMessage.Merge(m, src)
}
func (m *InnerMessage) XXX_Size() int {
return xxx_messageInfo_InnerMessage.Size(m)
@@ -1748,7 +1774,7 @@ func (m *OtherMessage) Reset() { *m = OtherMessage{} }
func (m *OtherMessage) String() string { return proto.CompactTextString(m) }
func (*OtherMessage) ProtoMessage() {}
func (*OtherMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{11}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{11}
}
var extRange_OtherMessage = []proto.ExtensionRange{
@@ -1758,14 +1784,15 @@ var extRange_OtherMessage = []proto.ExtensionRange{
func (*OtherMessage) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_OtherMessage
}
+
func (m *OtherMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OtherMessage.Unmarshal(m, b)
}
func (m *OtherMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OtherMessage.Marshal(b, m, deterministic)
}
-func (dst *OtherMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OtherMessage.Merge(dst, src)
+func (m *OtherMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OtherMessage.Merge(m, src)
}
func (m *OtherMessage) XXX_Size() int {
return xxx_messageInfo_OtherMessage.Size(m)
@@ -1815,7 +1842,7 @@ func (m *RequiredInnerMessage) Reset() { *m = RequiredInnerMessage{} }
func (m *RequiredInnerMessage) String() string { return proto.CompactTextString(m) }
func (*RequiredInnerMessage) ProtoMessage() {}
func (*RequiredInnerMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{12}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{12}
}
func (m *RequiredInnerMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RequiredInnerMessage.Unmarshal(m, b)
@@ -1823,8 +1850,8 @@ func (m *RequiredInnerMessage) XXX_Unmarshal(b []byte) error {
func (m *RequiredInnerMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RequiredInnerMessage.Marshal(b, m, deterministic)
}
-func (dst *RequiredInnerMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RequiredInnerMessage.Merge(dst, src)
+func (m *RequiredInnerMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RequiredInnerMessage.Merge(m, src)
}
func (m *RequiredInnerMessage) XXX_Size() int {
return xxx_messageInfo_RequiredInnerMessage.Size(m)
@@ -1866,7 +1893,7 @@ func (m *MyMessage) Reset() { *m = MyMessage{} }
func (m *MyMessage) String() string { return proto.CompactTextString(m) }
func (*MyMessage) ProtoMessage() {}
func (*MyMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{13}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{13}
}
var extRange_MyMessage = []proto.ExtensionRange{
@@ -1876,14 +1903,15 @@ var extRange_MyMessage = []proto.ExtensionRange{
func (*MyMessage) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_MyMessage
}
+
func (m *MyMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MyMessage.Unmarshal(m, b)
}
func (m *MyMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MyMessage.Marshal(b, m, deterministic)
}
-func (dst *MyMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MyMessage.Merge(dst, src)
+func (m *MyMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MyMessage.Merge(m, src)
}
func (m *MyMessage) XXX_Size() int {
return xxx_messageInfo_MyMessage.Size(m)
@@ -1989,7 +2017,7 @@ func (m *MyMessage_SomeGroup) Reset() { *m = MyMessage_SomeGroup{} }
func (m *MyMessage_SomeGroup) String() string { return proto.CompactTextString(m) }
func (*MyMessage_SomeGroup) ProtoMessage() {}
func (*MyMessage_SomeGroup) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{13, 0}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{13, 0}
}
func (m *MyMessage_SomeGroup) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MyMessage_SomeGroup.Unmarshal(m, b)
@@ -1997,8 +2025,8 @@ func (m *MyMessage_SomeGroup) XXX_Unmarshal(b []byte) error {
func (m *MyMessage_SomeGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MyMessage_SomeGroup.Marshal(b, m, deterministic)
}
-func (dst *MyMessage_SomeGroup) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MyMessage_SomeGroup.Merge(dst, src)
+func (m *MyMessage_SomeGroup) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MyMessage_SomeGroup.Merge(m, src)
}
func (m *MyMessage_SomeGroup) XXX_Size() int {
return xxx_messageInfo_MyMessage_SomeGroup.Size(m)
@@ -2028,7 +2056,7 @@ func (m *Ext) Reset() { *m = Ext{} }
func (m *Ext) String() string { return proto.CompactTextString(m) }
func (*Ext) ProtoMessage() {}
func (*Ext) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{14}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{14}
}
func (m *Ext) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Ext.Unmarshal(m, b)
@@ -2036,8 +2064,8 @@ func (m *Ext) XXX_Unmarshal(b []byte) error {
func (m *Ext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Ext.Marshal(b, m, deterministic)
}
-func (dst *Ext) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Ext.Merge(dst, src)
+func (m *Ext) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Ext.Merge(m, src)
}
func (m *Ext) XXX_Size() int {
return xxx_messageInfo_Ext.Size(m)
@@ -2102,7 +2130,7 @@ func (m *ComplexExtension) Reset() { *m = ComplexExtension{} }
func (m *ComplexExtension) String() string { return proto.CompactTextString(m) }
func (*ComplexExtension) ProtoMessage() {}
func (*ComplexExtension) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{15}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{15}
}
func (m *ComplexExtension) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ComplexExtension.Unmarshal(m, b)
@@ -2110,8 +2138,8 @@ func (m *ComplexExtension) XXX_Unmarshal(b []byte) error {
func (m *ComplexExtension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ComplexExtension.Marshal(b, m, deterministic)
}
-func (dst *ComplexExtension) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ComplexExtension.Merge(dst, src)
+func (m *ComplexExtension) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ComplexExtension.Merge(m, src)
}
func (m *ComplexExtension) XXX_Size() int {
return xxx_messageInfo_ComplexExtension.Size(m)
@@ -2154,7 +2182,7 @@ func (m *DefaultsMessage) Reset() { *m = DefaultsMessage{} }
func (m *DefaultsMessage) String() string { return proto.CompactTextString(m) }
func (*DefaultsMessage) ProtoMessage() {}
func (*DefaultsMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{16}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{16}
}
var extRange_DefaultsMessage = []proto.ExtensionRange{
@@ -2164,14 +2192,15 @@ var extRange_DefaultsMessage = []proto.ExtensionRange{
func (*DefaultsMessage) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_DefaultsMessage
}
+
func (m *DefaultsMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DefaultsMessage.Unmarshal(m, b)
}
func (m *DefaultsMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DefaultsMessage.Marshal(b, m, deterministic)
}
-func (dst *DefaultsMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DefaultsMessage.Merge(dst, src)
+func (m *DefaultsMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DefaultsMessage.Merge(m, src)
}
func (m *DefaultsMessage) XXX_Size() int {
return xxx_messageInfo_DefaultsMessage.Size(m)
@@ -2193,14 +2222,7 @@ func (m *MyMessageSet) Reset() { *m = MyMessageSet{} }
func (m *MyMessageSet) String() string { return proto.CompactTextString(m) }
func (*MyMessageSet) ProtoMessage() {}
func (*MyMessageSet) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{17}
-}
-
-func (m *MyMessageSet) MarshalJSON() ([]byte, error) {
- return proto.MarshalMessageSetJSON(&m.XXX_InternalExtensions)
-}
-func (m *MyMessageSet) UnmarshalJSON(buf []byte) error {
- return proto.UnmarshalMessageSetJSON(buf, &m.XXX_InternalExtensions)
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{17}
}
var extRange_MyMessageSet = []proto.ExtensionRange{
@@ -2210,14 +2232,15 @@ var extRange_MyMessageSet = []proto.ExtensionRange{
func (*MyMessageSet) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_MyMessageSet
}
+
func (m *MyMessageSet) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MyMessageSet.Unmarshal(m, b)
}
func (m *MyMessageSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MyMessageSet.Marshal(b, m, deterministic)
}
-func (dst *MyMessageSet) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MyMessageSet.Merge(dst, src)
+func (m *MyMessageSet) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MyMessageSet.Merge(m, src)
}
func (m *MyMessageSet) XXX_Size() int {
return xxx_messageInfo_MyMessageSet.Size(m)
@@ -2238,7 +2261,7 @@ func (m *Empty) Reset() { *m = Empty{} }
func (m *Empty) String() string { return proto.CompactTextString(m) }
func (*Empty) ProtoMessage() {}
func (*Empty) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{18}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{18}
}
func (m *Empty) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Empty.Unmarshal(m, b)
@@ -2246,8 +2269,8 @@ func (m *Empty) XXX_Unmarshal(b []byte) error {
func (m *Empty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Empty.Marshal(b, m, deterministic)
}
-func (dst *Empty) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Empty.Merge(dst, src)
+func (m *Empty) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Empty.Merge(m, src)
}
func (m *Empty) XXX_Size() int {
return xxx_messageInfo_Empty.Size(m)
@@ -2269,7 +2292,7 @@ func (m *MessageList) Reset() { *m = MessageList{} }
func (m *MessageList) String() string { return proto.CompactTextString(m) }
func (*MessageList) ProtoMessage() {}
func (*MessageList) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{19}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{19}
}
func (m *MessageList) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MessageList.Unmarshal(m, b)
@@ -2277,8 +2300,8 @@ func (m *MessageList) XXX_Unmarshal(b []byte) error {
func (m *MessageList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MessageList.Marshal(b, m, deterministic)
}
-func (dst *MessageList) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MessageList.Merge(dst, src)
+func (m *MessageList) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MessageList.Merge(m, src)
}
func (m *MessageList) XXX_Size() int {
return xxx_messageInfo_MessageList.Size(m)
@@ -2308,7 +2331,7 @@ func (m *MessageList_Message) Reset() { *m = MessageList_Message{} }
func (m *MessageList_Message) String() string { return proto.CompactTextString(m) }
func (*MessageList_Message) ProtoMessage() {}
func (*MessageList_Message) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{19, 0}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{19, 0}
}
func (m *MessageList_Message) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MessageList_Message.Unmarshal(m, b)
@@ -2316,8 +2339,8 @@ func (m *MessageList_Message) XXX_Unmarshal(b []byte) error {
func (m *MessageList_Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MessageList_Message.Marshal(b, m, deterministic)
}
-func (dst *MessageList_Message) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MessageList_Message.Merge(dst, src)
+func (m *MessageList_Message) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MessageList_Message.Merge(m, src)
}
func (m *MessageList_Message) XXX_Size() int {
return xxx_messageInfo_MessageList_Message.Size(m)
@@ -2354,7 +2377,7 @@ func (m *Strings) Reset() { *m = Strings{} }
func (m *Strings) String() string { return proto.CompactTextString(m) }
func (*Strings) ProtoMessage() {}
func (*Strings) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{20}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{20}
}
func (m *Strings) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Strings.Unmarshal(m, b)
@@ -2362,8 +2385,8 @@ func (m *Strings) XXX_Unmarshal(b []byte) error {
func (m *Strings) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Strings.Marshal(b, m, deterministic)
}
-func (dst *Strings) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Strings.Merge(dst, src)
+func (m *Strings) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Strings.Merge(m, src)
}
func (m *Strings) XXX_Size() int {
return xxx_messageInfo_Strings.Size(m)
@@ -2422,7 +2445,7 @@ func (m *Defaults) Reset() { *m = Defaults{} }
func (m *Defaults) String() string { return proto.CompactTextString(m) }
func (*Defaults) ProtoMessage() {}
func (*Defaults) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{21}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{21}
}
func (m *Defaults) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Defaults.Unmarshal(m, b)
@@ -2430,8 +2453,8 @@ func (m *Defaults) XXX_Unmarshal(b []byte) error {
func (m *Defaults) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Defaults.Marshal(b, m, deterministic)
}
-func (dst *Defaults) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Defaults.Merge(dst, src)
+func (m *Defaults) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Defaults.Merge(m, src)
}
func (m *Defaults) XXX_Size() int {
return xxx_messageInfo_Defaults.Size(m)
@@ -2607,7 +2630,7 @@ func (m *SubDefaults) Reset() { *m = SubDefaults{} }
func (m *SubDefaults) String() string { return proto.CompactTextString(m) }
func (*SubDefaults) ProtoMessage() {}
func (*SubDefaults) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{22}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{22}
}
func (m *SubDefaults) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SubDefaults.Unmarshal(m, b)
@@ -2615,8 +2638,8 @@ func (m *SubDefaults) XXX_Unmarshal(b []byte) error {
func (m *SubDefaults) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SubDefaults.Marshal(b, m, deterministic)
}
-func (dst *SubDefaults) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SubDefaults.Merge(dst, src)
+func (m *SubDefaults) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SubDefaults.Merge(m, src)
}
func (m *SubDefaults) XXX_Size() int {
return xxx_messageInfo_SubDefaults.Size(m)
@@ -2647,7 +2670,7 @@ func (m *RepeatedEnum) Reset() { *m = RepeatedEnum{} }
func (m *RepeatedEnum) String() string { return proto.CompactTextString(m) }
func (*RepeatedEnum) ProtoMessage() {}
func (*RepeatedEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{23}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{23}
}
func (m *RepeatedEnum) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepeatedEnum.Unmarshal(m, b)
@@ -2655,8 +2678,8 @@ func (m *RepeatedEnum) XXX_Unmarshal(b []byte) error {
func (m *RepeatedEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepeatedEnum.Marshal(b, m, deterministic)
}
-func (dst *RepeatedEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RepeatedEnum.Merge(dst, src)
+func (m *RepeatedEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RepeatedEnum.Merge(m, src)
}
func (m *RepeatedEnum) XXX_Size() int {
return xxx_messageInfo_RepeatedEnum.Size(m)
@@ -2691,7 +2714,7 @@ func (m *MoreRepeated) Reset() { *m = MoreRepeated{} }
func (m *MoreRepeated) String() string { return proto.CompactTextString(m) }
func (*MoreRepeated) ProtoMessage() {}
func (*MoreRepeated) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{24}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{24}
}
func (m *MoreRepeated) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MoreRepeated.Unmarshal(m, b)
@@ -2699,8 +2722,8 @@ func (m *MoreRepeated) XXX_Unmarshal(b []byte) error {
func (m *MoreRepeated) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MoreRepeated.Marshal(b, m, deterministic)
}
-func (dst *MoreRepeated) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MoreRepeated.Merge(dst, src)
+func (m *MoreRepeated) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MoreRepeated.Merge(m, src)
}
func (m *MoreRepeated) XXX_Size() int {
return xxx_messageInfo_MoreRepeated.Size(m)
@@ -2771,7 +2794,7 @@ func (m *GroupOld) Reset() { *m = GroupOld{} }
func (m *GroupOld) String() string { return proto.CompactTextString(m) }
func (*GroupOld) ProtoMessage() {}
func (*GroupOld) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{25}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{25}
}
func (m *GroupOld) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupOld.Unmarshal(m, b)
@@ -2779,8 +2802,8 @@ func (m *GroupOld) XXX_Unmarshal(b []byte) error {
func (m *GroupOld) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GroupOld.Marshal(b, m, deterministic)
}
-func (dst *GroupOld) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GroupOld.Merge(dst, src)
+func (m *GroupOld) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GroupOld.Merge(m, src)
}
func (m *GroupOld) XXX_Size() int {
return xxx_messageInfo_GroupOld.Size(m)
@@ -2809,7 +2832,7 @@ func (m *GroupOld_G) Reset() { *m = GroupOld_G{} }
func (m *GroupOld_G) String() string { return proto.CompactTextString(m) }
func (*GroupOld_G) ProtoMessage() {}
func (*GroupOld_G) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{25, 0}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{25, 0}
}
func (m *GroupOld_G) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupOld_G.Unmarshal(m, b)
@@ -2817,8 +2840,8 @@ func (m *GroupOld_G) XXX_Unmarshal(b []byte) error {
func (m *GroupOld_G) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GroupOld_G.Marshal(b, m, deterministic)
}
-func (dst *GroupOld_G) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GroupOld_G.Merge(dst, src)
+func (m *GroupOld_G) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GroupOld_G.Merge(m, src)
}
func (m *GroupOld_G) XXX_Size() int {
return xxx_messageInfo_GroupOld_G.Size(m)
@@ -2847,7 +2870,7 @@ func (m *GroupNew) Reset() { *m = GroupNew{} }
func (m *GroupNew) String() string { return proto.CompactTextString(m) }
func (*GroupNew) ProtoMessage() {}
func (*GroupNew) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{26}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{26}
}
func (m *GroupNew) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupNew.Unmarshal(m, b)
@@ -2855,8 +2878,8 @@ func (m *GroupNew) XXX_Unmarshal(b []byte) error {
func (m *GroupNew) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GroupNew.Marshal(b, m, deterministic)
}
-func (dst *GroupNew) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GroupNew.Merge(dst, src)
+func (m *GroupNew) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GroupNew.Merge(m, src)
}
func (m *GroupNew) XXX_Size() int {
return xxx_messageInfo_GroupNew.Size(m)
@@ -2886,7 +2909,7 @@ func (m *GroupNew_G) Reset() { *m = GroupNew_G{} }
func (m *GroupNew_G) String() string { return proto.CompactTextString(m) }
func (*GroupNew_G) ProtoMessage() {}
func (*GroupNew_G) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{26, 0}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{26, 0}
}
func (m *GroupNew_G) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupNew_G.Unmarshal(m, b)
@@ -2894,8 +2917,8 @@ func (m *GroupNew_G) XXX_Unmarshal(b []byte) error {
func (m *GroupNew_G) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GroupNew_G.Marshal(b, m, deterministic)
}
-func (dst *GroupNew_G) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GroupNew_G.Merge(dst, src)
+func (m *GroupNew_G) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GroupNew_G.Merge(m, src)
}
func (m *GroupNew_G) XXX_Size() int {
return xxx_messageInfo_GroupNew_G.Size(m)
@@ -2932,7 +2955,7 @@ func (m *FloatingPoint) Reset() { *m = FloatingPoint{} }
func (m *FloatingPoint) String() string { return proto.CompactTextString(m) }
func (*FloatingPoint) ProtoMessage() {}
func (*FloatingPoint) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{27}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{27}
}
func (m *FloatingPoint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FloatingPoint.Unmarshal(m, b)
@@ -2940,8 +2963,8 @@ func (m *FloatingPoint) XXX_Unmarshal(b []byte) error {
func (m *FloatingPoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FloatingPoint.Marshal(b, m, deterministic)
}
-func (dst *FloatingPoint) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FloatingPoint.Merge(dst, src)
+func (m *FloatingPoint) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FloatingPoint.Merge(m, src)
}
func (m *FloatingPoint) XXX_Size() int {
return xxx_messageInfo_FloatingPoint.Size(m)
@@ -2980,7 +3003,7 @@ func (m *MessageWithMap) Reset() { *m = MessageWithMap{} }
func (m *MessageWithMap) String() string { return proto.CompactTextString(m) }
func (*MessageWithMap) ProtoMessage() {}
func (*MessageWithMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{28}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{28}
}
func (m *MessageWithMap) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MessageWithMap.Unmarshal(m, b)
@@ -2988,8 +3011,8 @@ func (m *MessageWithMap) XXX_Unmarshal(b []byte) error {
func (m *MessageWithMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MessageWithMap.Marshal(b, m, deterministic)
}
-func (dst *MessageWithMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MessageWithMap.Merge(dst, src)
+func (m *MessageWithMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MessageWithMap.Merge(m, src)
}
func (m *MessageWithMap) XXX_Size() int {
return xxx_messageInfo_MessageWithMap.Size(m)
@@ -3060,7 +3083,7 @@ func (m *Oneof) Reset() { *m = Oneof{} }
func (m *Oneof) String() string { return proto.CompactTextString(m) }
func (*Oneof) ProtoMessage() {}
func (*Oneof) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{29}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{29}
}
func (m *Oneof) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Oneof.Unmarshal(m, b)
@@ -3068,8 +3091,8 @@ func (m *Oneof) XXX_Unmarshal(b []byte) error {
func (m *Oneof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Oneof.Marshal(b, m, deterministic)
}
-func (dst *Oneof) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Oneof.Merge(dst, src)
+func (m *Oneof) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Oneof.Merge(m, src)
}
func (m *Oneof) XXX_Size() int {
return xxx_messageInfo_Oneof.Size(m)
@@ -3627,7 +3650,7 @@ func (m *Oneof_F_Group) Reset() { *m = Oneof_F_Group{} }
func (m *Oneof_F_Group) String() string { return proto.CompactTextString(m) }
func (*Oneof_F_Group) ProtoMessage() {}
func (*Oneof_F_Group) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{29, 0}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{29, 0}
}
func (m *Oneof_F_Group) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Oneof_F_Group.Unmarshal(m, b)
@@ -3635,8 +3658,8 @@ func (m *Oneof_F_Group) XXX_Unmarshal(b []byte) error {
func (m *Oneof_F_Group) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Oneof_F_Group.Marshal(b, m, deterministic)
}
-func (dst *Oneof_F_Group) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Oneof_F_Group.Merge(dst, src)
+func (m *Oneof_F_Group) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Oneof_F_Group.Merge(m, src)
}
func (m *Oneof_F_Group) XXX_Size() int {
return xxx_messageInfo_Oneof_F_Group.Size(m)
@@ -3675,7 +3698,7 @@ func (m *Communique) Reset() { *m = Communique{} }
func (m *Communique) String() string { return proto.CompactTextString(m) }
func (*Communique) ProtoMessage() {}
func (*Communique) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{30}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{30}
}
func (m *Communique) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Communique.Unmarshal(m, b)
@@ -3683,8 +3706,8 @@ func (m *Communique) XXX_Unmarshal(b []byte) error {
func (m *Communique) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Communique.Marshal(b, m, deterministic)
}
-func (dst *Communique) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Communique.Merge(dst, src)
+func (m *Communique) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Communique.Merge(m, src)
}
func (m *Communique) XXX_Size() int {
return xxx_messageInfo_Communique.Size(m)
@@ -3925,7 +3948,7 @@ func (m *TestUTF8) Reset() { *m = TestUTF8{} }
func (m *TestUTF8) String() string { return proto.CompactTextString(m) }
func (*TestUTF8) ProtoMessage() {}
func (*TestUTF8) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_9a2a288ec56ee1d1, []int{31}
+ return fileDescriptor_c161fcfdc0c3ff1e, []int{31}
}
func (m *TestUTF8) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TestUTF8.Unmarshal(m, b)
@@ -3933,8 +3956,8 @@ func (m *TestUTF8) XXX_Unmarshal(b []byte) error {
func (m *TestUTF8) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_TestUTF8.Marshal(b, m, deterministic)
}
-func (dst *TestUTF8) XXX_Merge(src proto.Message) {
- xxx_messageInfo_TestUTF8.Merge(dst, src)
+func (m *TestUTF8) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_TestUTF8.Merge(m, src)
}
func (m *TestUTF8) XXX_Size() int {
return xxx_messageInfo_TestUTF8.Size(m)
@@ -4071,7 +4094,7 @@ var E_RComplex = &proto.ExtensionDesc{
ExtensionType: ([]*ComplexExtension)(nil),
Field: 201,
Name: "test_proto.r_complex",
- Tag: "bytes,201,rep,name=r_complex,json=rComplex",
+ Tag: "bytes,201,rep,name=r_complex",
Filename: "test.proto",
}
@@ -4080,7 +4103,7 @@ var E_NoDefaultDouble = &proto.ExtensionDesc{
ExtensionType: (*float64)(nil),
Field: 101,
Name: "test_proto.no_default_double",
- Tag: "fixed64,101,opt,name=no_default_double,json=noDefaultDouble",
+ Tag: "fixed64,101,opt,name=no_default_double",
Filename: "test.proto",
}
@@ -4089,7 +4112,7 @@ var E_NoDefaultFloat = &proto.ExtensionDesc{
ExtensionType: (*float32)(nil),
Field: 102,
Name: "test_proto.no_default_float",
- Tag: "fixed32,102,opt,name=no_default_float,json=noDefaultFloat",
+ Tag: "fixed32,102,opt,name=no_default_float",
Filename: "test.proto",
}
@@ -4098,7 +4121,7 @@ var E_NoDefaultInt32 = &proto.ExtensionDesc{
ExtensionType: (*int32)(nil),
Field: 103,
Name: "test_proto.no_default_int32",
- Tag: "varint,103,opt,name=no_default_int32,json=noDefaultInt32",
+ Tag: "varint,103,opt,name=no_default_int32",
Filename: "test.proto",
}
@@ -4107,7 +4130,7 @@ var E_NoDefaultInt64 = &proto.ExtensionDesc{
ExtensionType: (*int64)(nil),
Field: 104,
Name: "test_proto.no_default_int64",
- Tag: "varint,104,opt,name=no_default_int64,json=noDefaultInt64",
+ Tag: "varint,104,opt,name=no_default_int64",
Filename: "test.proto",
}
@@ -4116,7 +4139,7 @@ var E_NoDefaultUint32 = &proto.ExtensionDesc{
ExtensionType: (*uint32)(nil),
Field: 105,
Name: "test_proto.no_default_uint32",
- Tag: "varint,105,opt,name=no_default_uint32,json=noDefaultUint32",
+ Tag: "varint,105,opt,name=no_default_uint32",
Filename: "test.proto",
}
@@ -4125,7 +4148,7 @@ var E_NoDefaultUint64 = &proto.ExtensionDesc{
ExtensionType: (*uint64)(nil),
Field: 106,
Name: "test_proto.no_default_uint64",
- Tag: "varint,106,opt,name=no_default_uint64,json=noDefaultUint64",
+ Tag: "varint,106,opt,name=no_default_uint64",
Filename: "test.proto",
}
@@ -4134,7 +4157,7 @@ var E_NoDefaultSint32 = &proto.ExtensionDesc{
ExtensionType: (*int32)(nil),
Field: 107,
Name: "test_proto.no_default_sint32",
- Tag: "zigzag32,107,opt,name=no_default_sint32,json=noDefaultSint32",
+ Tag: "zigzag32,107,opt,name=no_default_sint32",
Filename: "test.proto",
}
@@ -4143,7 +4166,7 @@ var E_NoDefaultSint64 = &proto.ExtensionDesc{
ExtensionType: (*int64)(nil),
Field: 108,
Name: "test_proto.no_default_sint64",
- Tag: "zigzag64,108,opt,name=no_default_sint64,json=noDefaultSint64",
+ Tag: "zigzag64,108,opt,name=no_default_sint64",
Filename: "test.proto",
}
@@ -4152,7 +4175,7 @@ var E_NoDefaultFixed32 = &proto.ExtensionDesc{
ExtensionType: (*uint32)(nil),
Field: 109,
Name: "test_proto.no_default_fixed32",
- Tag: "fixed32,109,opt,name=no_default_fixed32,json=noDefaultFixed32",
+ Tag: "fixed32,109,opt,name=no_default_fixed32",
Filename: "test.proto",
}
@@ -4161,7 +4184,7 @@ var E_NoDefaultFixed64 = &proto.ExtensionDesc{
ExtensionType: (*uint64)(nil),
Field: 110,
Name: "test_proto.no_default_fixed64",
- Tag: "fixed64,110,opt,name=no_default_fixed64,json=noDefaultFixed64",
+ Tag: "fixed64,110,opt,name=no_default_fixed64",
Filename: "test.proto",
}
@@ -4170,7 +4193,7 @@ var E_NoDefaultSfixed32 = &proto.ExtensionDesc{
ExtensionType: (*int32)(nil),
Field: 111,
Name: "test_proto.no_default_sfixed32",
- Tag: "fixed32,111,opt,name=no_default_sfixed32,json=noDefaultSfixed32",
+ Tag: "fixed32,111,opt,name=no_default_sfixed32",
Filename: "test.proto",
}
@@ -4179,7 +4202,7 @@ var E_NoDefaultSfixed64 = &proto.ExtensionDesc{
ExtensionType: (*int64)(nil),
Field: 112,
Name: "test_proto.no_default_sfixed64",
- Tag: "fixed64,112,opt,name=no_default_sfixed64,json=noDefaultSfixed64",
+ Tag: "fixed64,112,opt,name=no_default_sfixed64",
Filename: "test.proto",
}
@@ -4188,7 +4211,7 @@ var E_NoDefaultBool = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 113,
Name: "test_proto.no_default_bool",
- Tag: "varint,113,opt,name=no_default_bool,json=noDefaultBool",
+ Tag: "varint,113,opt,name=no_default_bool",
Filename: "test.proto",
}
@@ -4197,7 +4220,7 @@ var E_NoDefaultString = &proto.ExtensionDesc{
ExtensionType: (*string)(nil),
Field: 114,
Name: "test_proto.no_default_string",
- Tag: "bytes,114,opt,name=no_default_string,json=noDefaultString",
+ Tag: "bytes,114,opt,name=no_default_string",
Filename: "test.proto",
}
@@ -4206,7 +4229,7 @@ var E_NoDefaultBytes = &proto.ExtensionDesc{
ExtensionType: ([]byte)(nil),
Field: 115,
Name: "test_proto.no_default_bytes",
- Tag: "bytes,115,opt,name=no_default_bytes,json=noDefaultBytes",
+ Tag: "bytes,115,opt,name=no_default_bytes",
Filename: "test.proto",
}
@@ -4215,7 +4238,7 @@ var E_NoDefaultEnum = &proto.ExtensionDesc{
ExtensionType: (*DefaultsMessage_DefaultsEnum)(nil),
Field: 116,
Name: "test_proto.no_default_enum",
- Tag: "varint,116,opt,name=no_default_enum,json=noDefaultEnum,enum=test_proto.DefaultsMessage_DefaultsEnum",
+ Tag: "varint,116,opt,name=no_default_enum,enum=test_proto.DefaultsMessage_DefaultsEnum",
Filename: "test.proto",
}
@@ -4224,7 +4247,7 @@ var E_DefaultDouble = &proto.ExtensionDesc{
ExtensionType: (*float64)(nil),
Field: 201,
Name: "test_proto.default_double",
- Tag: "fixed64,201,opt,name=default_double,json=defaultDouble,def=3.1415",
+ Tag: "fixed64,201,opt,name=default_double,def=3.1415",
Filename: "test.proto",
}
@@ -4233,7 +4256,7 @@ var E_DefaultFloat = &proto.ExtensionDesc{
ExtensionType: (*float32)(nil),
Field: 202,
Name: "test_proto.default_float",
- Tag: "fixed32,202,opt,name=default_float,json=defaultFloat,def=3.14",
+ Tag: "fixed32,202,opt,name=default_float,def=3.14",
Filename: "test.proto",
}
@@ -4242,7 +4265,7 @@ var E_DefaultInt32 = &proto.ExtensionDesc{
ExtensionType: (*int32)(nil),
Field: 203,
Name: "test_proto.default_int32",
- Tag: "varint,203,opt,name=default_int32,json=defaultInt32,def=42",
+ Tag: "varint,203,opt,name=default_int32,def=42",
Filename: "test.proto",
}
@@ -4251,7 +4274,7 @@ var E_DefaultInt64 = &proto.ExtensionDesc{
ExtensionType: (*int64)(nil),
Field: 204,
Name: "test_proto.default_int64",
- Tag: "varint,204,opt,name=default_int64,json=defaultInt64,def=43",
+ Tag: "varint,204,opt,name=default_int64,def=43",
Filename: "test.proto",
}
@@ -4260,7 +4283,7 @@ var E_DefaultUint32 = &proto.ExtensionDesc{
ExtensionType: (*uint32)(nil),
Field: 205,
Name: "test_proto.default_uint32",
- Tag: "varint,205,opt,name=default_uint32,json=defaultUint32,def=44",
+ Tag: "varint,205,opt,name=default_uint32,def=44",
Filename: "test.proto",
}
@@ -4269,7 +4292,7 @@ var E_DefaultUint64 = &proto.ExtensionDesc{
ExtensionType: (*uint64)(nil),
Field: 206,
Name: "test_proto.default_uint64",
- Tag: "varint,206,opt,name=default_uint64,json=defaultUint64,def=45",
+ Tag: "varint,206,opt,name=default_uint64,def=45",
Filename: "test.proto",
}
@@ -4278,7 +4301,7 @@ var E_DefaultSint32 = &proto.ExtensionDesc{
ExtensionType: (*int32)(nil),
Field: 207,
Name: "test_proto.default_sint32",
- Tag: "zigzag32,207,opt,name=default_sint32,json=defaultSint32,def=46",
+ Tag: "zigzag32,207,opt,name=default_sint32,def=46",
Filename: "test.proto",
}
@@ -4287,7 +4310,7 @@ var E_DefaultSint64 = &proto.ExtensionDesc{
ExtensionType: (*int64)(nil),
Field: 208,
Name: "test_proto.default_sint64",
- Tag: "zigzag64,208,opt,name=default_sint64,json=defaultSint64,def=47",
+ Tag: "zigzag64,208,opt,name=default_sint64,def=47",
Filename: "test.proto",
}
@@ -4296,7 +4319,7 @@ var E_DefaultFixed32 = &proto.ExtensionDesc{
ExtensionType: (*uint32)(nil),
Field: 209,
Name: "test_proto.default_fixed32",
- Tag: "fixed32,209,opt,name=default_fixed32,json=defaultFixed32,def=48",
+ Tag: "fixed32,209,opt,name=default_fixed32,def=48",
Filename: "test.proto",
}
@@ -4305,7 +4328,7 @@ var E_DefaultFixed64 = &proto.ExtensionDesc{
ExtensionType: (*uint64)(nil),
Field: 210,
Name: "test_proto.default_fixed64",
- Tag: "fixed64,210,opt,name=default_fixed64,json=defaultFixed64,def=49",
+ Tag: "fixed64,210,opt,name=default_fixed64,def=49",
Filename: "test.proto",
}
@@ -4314,7 +4337,7 @@ var E_DefaultSfixed32 = &proto.ExtensionDesc{
ExtensionType: (*int32)(nil),
Field: 211,
Name: "test_proto.default_sfixed32",
- Tag: "fixed32,211,opt,name=default_sfixed32,json=defaultSfixed32,def=50",
+ Tag: "fixed32,211,opt,name=default_sfixed32,def=50",
Filename: "test.proto",
}
@@ -4323,7 +4346,7 @@ var E_DefaultSfixed64 = &proto.ExtensionDesc{
ExtensionType: (*int64)(nil),
Field: 212,
Name: "test_proto.default_sfixed64",
- Tag: "fixed64,212,opt,name=default_sfixed64,json=defaultSfixed64,def=51",
+ Tag: "fixed64,212,opt,name=default_sfixed64,def=51",
Filename: "test.proto",
}
@@ -4332,7 +4355,7 @@ var E_DefaultBool = &proto.ExtensionDesc{
ExtensionType: (*bool)(nil),
Field: 213,
Name: "test_proto.default_bool",
- Tag: "varint,213,opt,name=default_bool,json=defaultBool,def=1",
+ Tag: "varint,213,opt,name=default_bool,def=1",
Filename: "test.proto",
}
@@ -4341,7 +4364,7 @@ var E_DefaultString = &proto.ExtensionDesc{
ExtensionType: (*string)(nil),
Field: 214,
Name: "test_proto.default_string",
- Tag: "bytes,214,opt,name=default_string,json=defaultString,def=Hello, string,def=foo",
+ Tag: "bytes,214,opt,name=default_string,def=Hello, string,def=foo",
Filename: "test.proto",
}
@@ -4350,7 +4373,7 @@ var E_DefaultBytes = &proto.ExtensionDesc{
ExtensionType: ([]byte)(nil),
Field: 215,
Name: "test_proto.default_bytes",
- Tag: "bytes,215,opt,name=default_bytes,json=defaultBytes,def=Hello, bytes",
+ Tag: "bytes,215,opt,name=default_bytes,def=Hello, bytes",
Filename: "test.proto",
}
@@ -4359,7 +4382,7 @@ var E_DefaultEnum = &proto.ExtensionDesc{
ExtensionType: (*DefaultsMessage_DefaultsEnum)(nil),
Field: 216,
Name: "test_proto.default_enum",
- Tag: "varint,216,opt,name=default_enum,json=defaultEnum,enum=test_proto.DefaultsMessage_DefaultsEnum,def=1",
+ Tag: "varint,216,opt,name=default_enum,enum=test_proto.DefaultsMessage_DefaultsEnum,def=1",
Filename: "test.proto",
}
@@ -4814,6 +4837,12 @@ var E_X250 = &proto.ExtensionDesc{
}
func init() {
+ proto.RegisterEnum("test_proto.FOO", FOO_name, FOO_value)
+ proto.RegisterEnum("test_proto.GoTest_KIND", GoTest_KIND_name, GoTest_KIND_value)
+ proto.RegisterEnum("test_proto.MyMessage_Color", MyMessage_Color_name, MyMessage_Color_value)
+ proto.RegisterEnum("test_proto.DefaultsMessage_DefaultsEnum", DefaultsMessage_DefaultsEnum_name, DefaultsMessage_DefaultsEnum_value)
+ proto.RegisterEnum("test_proto.Defaults_Color", Defaults_Color_name, Defaults_Color_value)
+ proto.RegisterEnum("test_proto.RepeatedEnum_Color", RepeatedEnum_Color_name, RepeatedEnum_Color_value)
proto.RegisterType((*GoEnum)(nil), "test_proto.GoEnum")
proto.RegisterType((*GoTestField)(nil), "test_proto.GoTestField")
proto.RegisterType((*GoTest)(nil), "test_proto.GoTest")
@@ -4836,6 +4865,9 @@ func init() {
proto.RegisterType((*RequiredInnerMessage)(nil), "test_proto.RequiredInnerMessage")
proto.RegisterType((*MyMessage)(nil), "test_proto.MyMessage")
proto.RegisterType((*MyMessage_SomeGroup)(nil), "test_proto.MyMessage.SomeGroup")
+ proto.RegisterExtension(E_Ext_More)
+ proto.RegisterExtension(E_Ext_Text)
+ proto.RegisterExtension(E_Ext_Number)
proto.RegisterType((*Ext)(nil), "test_proto.Ext")
proto.RegisterMapType((map[int32]int32)(nil), "test_proto.Ext.MapFieldEntry")
proto.RegisterType((*ComplexExtension)(nil), "test_proto.ComplexExtension")
@@ -4865,15 +4897,6 @@ func init() {
proto.RegisterType((*TestUTF8)(nil), "test_proto.TestUTF8")
proto.RegisterMapType((map[string]int64)(nil), "test_proto.TestUTF8.MapKeyEntry")
proto.RegisterMapType((map[int64]string)(nil), "test_proto.TestUTF8.MapValueEntry")
- proto.RegisterEnum("test_proto.FOO", FOO_name, FOO_value)
- proto.RegisterEnum("test_proto.GoTest_KIND", GoTest_KIND_name, GoTest_KIND_value)
- proto.RegisterEnum("test_proto.MyMessage_Color", MyMessage_Color_name, MyMessage_Color_value)
- proto.RegisterEnum("test_proto.DefaultsMessage_DefaultsEnum", DefaultsMessage_DefaultsEnum_name, DefaultsMessage_DefaultsEnum_value)
- proto.RegisterEnum("test_proto.Defaults_Color", Defaults_Color_name, Defaults_Color_value)
- proto.RegisterEnum("test_proto.RepeatedEnum_Color", RepeatedEnum_Color_name, RepeatedEnum_Color_value)
- proto.RegisterExtension(E_Ext_More)
- proto.RegisterExtension(E_Ext_Text)
- proto.RegisterExtension(E_Ext_Number)
proto.RegisterExtension(E_Greeting)
proto.RegisterExtension(E_Complex)
proto.RegisterExtension(E_RComplex)
@@ -4961,9 +4984,9 @@ func init() {
proto.RegisterExtension(E_X250)
}
-func init() { proto.RegisterFile("test.proto", fileDescriptor_test_9a2a288ec56ee1d1) }
+func init() { proto.RegisterFile("test.proto", fileDescriptor_c161fcfdc0c3ff1e) }
-var fileDescriptor_test_9a2a288ec56ee1d1 = []byte{
+var fileDescriptor_c161fcfdc0c3ff1e = []byte{
// 4787 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x5a, 0xd9, 0x73, 0x1b, 0x47,
0x7a, 0xd7, 0x0c, 0xee, 0x0f, 0x20, 0x31, 0x6c, 0xd1, 0x12, 0x44, 0x59, 0xd2, 0x08, 0x7b, 0x18,
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go
index 44f893b777..cacfa39235 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go
@@ -3,9 +3,11 @@
package descriptor
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -72,6 +74,7 @@ var FieldDescriptorProto_Type_name = map[int32]string{
17: "TYPE_SINT32",
18: "TYPE_SINT64",
}
+
var FieldDescriptorProto_Type_value = map[string]int32{
"TYPE_DOUBLE": 1,
"TYPE_FLOAT": 2,
@@ -98,9 +101,11 @@ func (x FieldDescriptorProto_Type) Enum() *FieldDescriptorProto_Type {
*p = x
return p
}
+
func (x FieldDescriptorProto_Type) String() string {
return proto.EnumName(FieldDescriptorProto_Type_name, int32(x))
}
+
func (x *FieldDescriptorProto_Type) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(FieldDescriptorProto_Type_value, data, "FieldDescriptorProto_Type")
if err != nil {
@@ -109,8 +114,9 @@ func (x *FieldDescriptorProto_Type) UnmarshalJSON(data []byte) error {
*x = FieldDescriptorProto_Type(value)
return nil
}
+
func (FieldDescriptorProto_Type) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{4, 0}
+ return fileDescriptor_308767df5ffe18af, []int{4, 0}
}
type FieldDescriptorProto_Label int32
@@ -127,6 +133,7 @@ var FieldDescriptorProto_Label_name = map[int32]string{
2: "LABEL_REQUIRED",
3: "LABEL_REPEATED",
}
+
var FieldDescriptorProto_Label_value = map[string]int32{
"LABEL_OPTIONAL": 1,
"LABEL_REQUIRED": 2,
@@ -138,9 +145,11 @@ func (x FieldDescriptorProto_Label) Enum() *FieldDescriptorProto_Label {
*p = x
return p
}
+
func (x FieldDescriptorProto_Label) String() string {
return proto.EnumName(FieldDescriptorProto_Label_name, int32(x))
}
+
func (x *FieldDescriptorProto_Label) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(FieldDescriptorProto_Label_value, data, "FieldDescriptorProto_Label")
if err != nil {
@@ -149,8 +158,9 @@ func (x *FieldDescriptorProto_Label) UnmarshalJSON(data []byte) error {
*x = FieldDescriptorProto_Label(value)
return nil
}
+
func (FieldDescriptorProto_Label) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{4, 1}
+ return fileDescriptor_308767df5ffe18af, []int{4, 1}
}
// Generated classes can be optimized for speed or code size.
@@ -168,6 +178,7 @@ var FileOptions_OptimizeMode_name = map[int32]string{
2: "CODE_SIZE",
3: "LITE_RUNTIME",
}
+
var FileOptions_OptimizeMode_value = map[string]int32{
"SPEED": 1,
"CODE_SIZE": 2,
@@ -179,9 +190,11 @@ func (x FileOptions_OptimizeMode) Enum() *FileOptions_OptimizeMode {
*p = x
return p
}
+
func (x FileOptions_OptimizeMode) String() string {
return proto.EnumName(FileOptions_OptimizeMode_name, int32(x))
}
+
func (x *FileOptions_OptimizeMode) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(FileOptions_OptimizeMode_value, data, "FileOptions_OptimizeMode")
if err != nil {
@@ -190,8 +203,9 @@ func (x *FileOptions_OptimizeMode) UnmarshalJSON(data []byte) error {
*x = FileOptions_OptimizeMode(value)
return nil
}
+
func (FileOptions_OptimizeMode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{10, 0}
+ return fileDescriptor_308767df5ffe18af, []int{10, 0}
}
type FieldOptions_CType int32
@@ -208,6 +222,7 @@ var FieldOptions_CType_name = map[int32]string{
1: "CORD",
2: "STRING_PIECE",
}
+
var FieldOptions_CType_value = map[string]int32{
"STRING": 0,
"CORD": 1,
@@ -219,9 +234,11 @@ func (x FieldOptions_CType) Enum() *FieldOptions_CType {
*p = x
return p
}
+
func (x FieldOptions_CType) String() string {
return proto.EnumName(FieldOptions_CType_name, int32(x))
}
+
func (x *FieldOptions_CType) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(FieldOptions_CType_value, data, "FieldOptions_CType")
if err != nil {
@@ -230,8 +247,9 @@ func (x *FieldOptions_CType) UnmarshalJSON(data []byte) error {
*x = FieldOptions_CType(value)
return nil
}
+
func (FieldOptions_CType) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{12, 0}
+ return fileDescriptor_308767df5ffe18af, []int{12, 0}
}
type FieldOptions_JSType int32
@@ -250,6 +268,7 @@ var FieldOptions_JSType_name = map[int32]string{
1: "JS_STRING",
2: "JS_NUMBER",
}
+
var FieldOptions_JSType_value = map[string]int32{
"JS_NORMAL": 0,
"JS_STRING": 1,
@@ -261,9 +280,11 @@ func (x FieldOptions_JSType) Enum() *FieldOptions_JSType {
*p = x
return p
}
+
func (x FieldOptions_JSType) String() string {
return proto.EnumName(FieldOptions_JSType_name, int32(x))
}
+
func (x *FieldOptions_JSType) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(FieldOptions_JSType_value, data, "FieldOptions_JSType")
if err != nil {
@@ -272,8 +293,9 @@ func (x *FieldOptions_JSType) UnmarshalJSON(data []byte) error {
*x = FieldOptions_JSType(value)
return nil
}
+
func (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{12, 1}
+ return fileDescriptor_308767df5ffe18af, []int{12, 1}
}
// Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
@@ -292,6 +314,7 @@ var MethodOptions_IdempotencyLevel_name = map[int32]string{
1: "NO_SIDE_EFFECTS",
2: "IDEMPOTENT",
}
+
var MethodOptions_IdempotencyLevel_value = map[string]int32{
"IDEMPOTENCY_UNKNOWN": 0,
"NO_SIDE_EFFECTS": 1,
@@ -303,9 +326,11 @@ func (x MethodOptions_IdempotencyLevel) Enum() *MethodOptions_IdempotencyLevel {
*p = x
return p
}
+
func (x MethodOptions_IdempotencyLevel) String() string {
return proto.EnumName(MethodOptions_IdempotencyLevel_name, int32(x))
}
+
func (x *MethodOptions_IdempotencyLevel) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(MethodOptions_IdempotencyLevel_value, data, "MethodOptions_IdempotencyLevel")
if err != nil {
@@ -314,8 +339,9 @@ func (x *MethodOptions_IdempotencyLevel) UnmarshalJSON(data []byte) error {
*x = MethodOptions_IdempotencyLevel(value)
return nil
}
+
func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{17, 0}
+ return fileDescriptor_308767df5ffe18af, []int{17, 0}
}
// The protocol compiler can output a FileDescriptorSet containing the .proto
@@ -331,7 +357,7 @@ func (m *FileDescriptorSet) Reset() { *m = FileDescriptorSet{} }
func (m *FileDescriptorSet) String() string { return proto.CompactTextString(m) }
func (*FileDescriptorSet) ProtoMessage() {}
func (*FileDescriptorSet) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{0}
+ return fileDescriptor_308767df5ffe18af, []int{0}
}
func (m *FileDescriptorSet) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FileDescriptorSet.Unmarshal(m, b)
@@ -339,8 +365,8 @@ func (m *FileDescriptorSet) XXX_Unmarshal(b []byte) error {
func (m *FileDescriptorSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FileDescriptorSet.Marshal(b, m, deterministic)
}
-func (dst *FileDescriptorSet) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FileDescriptorSet.Merge(dst, src)
+func (m *FileDescriptorSet) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FileDescriptorSet.Merge(m, src)
}
func (m *FileDescriptorSet) XXX_Size() int {
return xxx_messageInfo_FileDescriptorSet.Size(m)
@@ -392,7 +418,7 @@ func (m *FileDescriptorProto) Reset() { *m = FileDescriptorProto{} }
func (m *FileDescriptorProto) String() string { return proto.CompactTextString(m) }
func (*FileDescriptorProto) ProtoMessage() {}
func (*FileDescriptorProto) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{1}
+ return fileDescriptor_308767df5ffe18af, []int{1}
}
func (m *FileDescriptorProto) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FileDescriptorProto.Unmarshal(m, b)
@@ -400,8 +426,8 @@ func (m *FileDescriptorProto) XXX_Unmarshal(b []byte) error {
func (m *FileDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FileDescriptorProto.Marshal(b, m, deterministic)
}
-func (dst *FileDescriptorProto) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FileDescriptorProto.Merge(dst, src)
+func (m *FileDescriptorProto) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FileDescriptorProto.Merge(m, src)
}
func (m *FileDescriptorProto) XXX_Size() int {
return xxx_messageInfo_FileDescriptorProto.Size(m)
@@ -519,7 +545,7 @@ func (m *DescriptorProto) Reset() { *m = DescriptorProto{} }
func (m *DescriptorProto) String() string { return proto.CompactTextString(m) }
func (*DescriptorProto) ProtoMessage() {}
func (*DescriptorProto) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{2}
+ return fileDescriptor_308767df5ffe18af, []int{2}
}
func (m *DescriptorProto) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DescriptorProto.Unmarshal(m, b)
@@ -527,8 +553,8 @@ func (m *DescriptorProto) XXX_Unmarshal(b []byte) error {
func (m *DescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DescriptorProto.Marshal(b, m, deterministic)
}
-func (dst *DescriptorProto) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DescriptorProto.Merge(dst, src)
+func (m *DescriptorProto) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DescriptorProto.Merge(m, src)
}
func (m *DescriptorProto) XXX_Size() int {
return xxx_messageInfo_DescriptorProto.Size(m)
@@ -622,7 +648,7 @@ func (m *DescriptorProto_ExtensionRange) Reset() { *m = DescriptorProto_
func (m *DescriptorProto_ExtensionRange) String() string { return proto.CompactTextString(m) }
func (*DescriptorProto_ExtensionRange) ProtoMessage() {}
func (*DescriptorProto_ExtensionRange) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{2, 0}
+ return fileDescriptor_308767df5ffe18af, []int{2, 0}
}
func (m *DescriptorProto_ExtensionRange) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DescriptorProto_ExtensionRange.Unmarshal(m, b)
@@ -630,8 +656,8 @@ func (m *DescriptorProto_ExtensionRange) XXX_Unmarshal(b []byte) error {
func (m *DescriptorProto_ExtensionRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DescriptorProto_ExtensionRange.Marshal(b, m, deterministic)
}
-func (dst *DescriptorProto_ExtensionRange) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DescriptorProto_ExtensionRange.Merge(dst, src)
+func (m *DescriptorProto_ExtensionRange) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DescriptorProto_ExtensionRange.Merge(m, src)
}
func (m *DescriptorProto_ExtensionRange) XXX_Size() int {
return xxx_messageInfo_DescriptorProto_ExtensionRange.Size(m)
@@ -678,7 +704,7 @@ func (m *DescriptorProto_ReservedRange) Reset() { *m = DescriptorProto_R
func (m *DescriptorProto_ReservedRange) String() string { return proto.CompactTextString(m) }
func (*DescriptorProto_ReservedRange) ProtoMessage() {}
func (*DescriptorProto_ReservedRange) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{2, 1}
+ return fileDescriptor_308767df5ffe18af, []int{2, 1}
}
func (m *DescriptorProto_ReservedRange) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DescriptorProto_ReservedRange.Unmarshal(m, b)
@@ -686,8 +712,8 @@ func (m *DescriptorProto_ReservedRange) XXX_Unmarshal(b []byte) error {
func (m *DescriptorProto_ReservedRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DescriptorProto_ReservedRange.Marshal(b, m, deterministic)
}
-func (dst *DescriptorProto_ReservedRange) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DescriptorProto_ReservedRange.Merge(dst, src)
+func (m *DescriptorProto_ReservedRange) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DescriptorProto_ReservedRange.Merge(m, src)
}
func (m *DescriptorProto_ReservedRange) XXX_Size() int {
return xxx_messageInfo_DescriptorProto_ReservedRange.Size(m)
@@ -725,7 +751,7 @@ func (m *ExtensionRangeOptions) Reset() { *m = ExtensionRangeOptions{} }
func (m *ExtensionRangeOptions) String() string { return proto.CompactTextString(m) }
func (*ExtensionRangeOptions) ProtoMessage() {}
func (*ExtensionRangeOptions) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{3}
+ return fileDescriptor_308767df5ffe18af, []int{3}
}
var extRange_ExtensionRangeOptions = []proto.ExtensionRange{
@@ -735,14 +761,15 @@ var extRange_ExtensionRangeOptions = []proto.ExtensionRange{
func (*ExtensionRangeOptions) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_ExtensionRangeOptions
}
+
func (m *ExtensionRangeOptions) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExtensionRangeOptions.Unmarshal(m, b)
}
func (m *ExtensionRangeOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ExtensionRangeOptions.Marshal(b, m, deterministic)
}
-func (dst *ExtensionRangeOptions) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ExtensionRangeOptions.Merge(dst, src)
+func (m *ExtensionRangeOptions) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ExtensionRangeOptions.Merge(m, src)
}
func (m *ExtensionRangeOptions) XXX_Size() int {
return xxx_messageInfo_ExtensionRangeOptions.Size(m)
@@ -801,7 +828,7 @@ func (m *FieldDescriptorProto) Reset() { *m = FieldDescriptorProto{} }
func (m *FieldDescriptorProto) String() string { return proto.CompactTextString(m) }
func (*FieldDescriptorProto) ProtoMessage() {}
func (*FieldDescriptorProto) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{4}
+ return fileDescriptor_308767df5ffe18af, []int{4}
}
func (m *FieldDescriptorProto) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FieldDescriptorProto.Unmarshal(m, b)
@@ -809,8 +836,8 @@ func (m *FieldDescriptorProto) XXX_Unmarshal(b []byte) error {
func (m *FieldDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FieldDescriptorProto.Marshal(b, m, deterministic)
}
-func (dst *FieldDescriptorProto) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FieldDescriptorProto.Merge(dst, src)
+func (m *FieldDescriptorProto) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FieldDescriptorProto.Merge(m, src)
}
func (m *FieldDescriptorProto) XXX_Size() int {
return xxx_messageInfo_FieldDescriptorProto.Size(m)
@@ -904,7 +931,7 @@ func (m *OneofDescriptorProto) Reset() { *m = OneofDescriptorProto{} }
func (m *OneofDescriptorProto) String() string { return proto.CompactTextString(m) }
func (*OneofDescriptorProto) ProtoMessage() {}
func (*OneofDescriptorProto) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{5}
+ return fileDescriptor_308767df5ffe18af, []int{5}
}
func (m *OneofDescriptorProto) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OneofDescriptorProto.Unmarshal(m, b)
@@ -912,8 +939,8 @@ func (m *OneofDescriptorProto) XXX_Unmarshal(b []byte) error {
func (m *OneofDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OneofDescriptorProto.Marshal(b, m, deterministic)
}
-func (dst *OneofDescriptorProto) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OneofDescriptorProto.Merge(dst, src)
+func (m *OneofDescriptorProto) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OneofDescriptorProto.Merge(m, src)
}
func (m *OneofDescriptorProto) XXX_Size() int {
return xxx_messageInfo_OneofDescriptorProto.Size(m)
@@ -959,7 +986,7 @@ func (m *EnumDescriptorProto) Reset() { *m = EnumDescriptorProto{} }
func (m *EnumDescriptorProto) String() string { return proto.CompactTextString(m) }
func (*EnumDescriptorProto) ProtoMessage() {}
func (*EnumDescriptorProto) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{6}
+ return fileDescriptor_308767df5ffe18af, []int{6}
}
func (m *EnumDescriptorProto) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EnumDescriptorProto.Unmarshal(m, b)
@@ -967,8 +994,8 @@ func (m *EnumDescriptorProto) XXX_Unmarshal(b []byte) error {
func (m *EnumDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_EnumDescriptorProto.Marshal(b, m, deterministic)
}
-func (dst *EnumDescriptorProto) XXX_Merge(src proto.Message) {
- xxx_messageInfo_EnumDescriptorProto.Merge(dst, src)
+func (m *EnumDescriptorProto) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EnumDescriptorProto.Merge(m, src)
}
func (m *EnumDescriptorProto) XXX_Size() int {
return xxx_messageInfo_EnumDescriptorProto.Size(m)
@@ -1032,7 +1059,7 @@ func (m *EnumDescriptorProto_EnumReservedRange) Reset() { *m = EnumDescr
func (m *EnumDescriptorProto_EnumReservedRange) String() string { return proto.CompactTextString(m) }
func (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {}
func (*EnumDescriptorProto_EnumReservedRange) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{6, 0}
+ return fileDescriptor_308767df5ffe18af, []int{6, 0}
}
func (m *EnumDescriptorProto_EnumReservedRange) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EnumDescriptorProto_EnumReservedRange.Unmarshal(m, b)
@@ -1040,8 +1067,8 @@ func (m *EnumDescriptorProto_EnumReservedRange) XXX_Unmarshal(b []byte) error {
func (m *EnumDescriptorProto_EnumReservedRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_EnumDescriptorProto_EnumReservedRange.Marshal(b, m, deterministic)
}
-func (dst *EnumDescriptorProto_EnumReservedRange) XXX_Merge(src proto.Message) {
- xxx_messageInfo_EnumDescriptorProto_EnumReservedRange.Merge(dst, src)
+func (m *EnumDescriptorProto_EnumReservedRange) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EnumDescriptorProto_EnumReservedRange.Merge(m, src)
}
func (m *EnumDescriptorProto_EnumReservedRange) XXX_Size() int {
return xxx_messageInfo_EnumDescriptorProto_EnumReservedRange.Size(m)
@@ -1080,7 +1107,7 @@ func (m *EnumValueDescriptorProto) Reset() { *m = EnumValueDescriptorPro
func (m *EnumValueDescriptorProto) String() string { return proto.CompactTextString(m) }
func (*EnumValueDescriptorProto) ProtoMessage() {}
func (*EnumValueDescriptorProto) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{7}
+ return fileDescriptor_308767df5ffe18af, []int{7}
}
func (m *EnumValueDescriptorProto) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EnumValueDescriptorProto.Unmarshal(m, b)
@@ -1088,8 +1115,8 @@ func (m *EnumValueDescriptorProto) XXX_Unmarshal(b []byte) error {
func (m *EnumValueDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_EnumValueDescriptorProto.Marshal(b, m, deterministic)
}
-func (dst *EnumValueDescriptorProto) XXX_Merge(src proto.Message) {
- xxx_messageInfo_EnumValueDescriptorProto.Merge(dst, src)
+func (m *EnumValueDescriptorProto) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EnumValueDescriptorProto.Merge(m, src)
}
func (m *EnumValueDescriptorProto) XXX_Size() int {
return xxx_messageInfo_EnumValueDescriptorProto.Size(m)
@@ -1135,7 +1162,7 @@ func (m *ServiceDescriptorProto) Reset() { *m = ServiceDescriptorProto{}
func (m *ServiceDescriptorProto) String() string { return proto.CompactTextString(m) }
func (*ServiceDescriptorProto) ProtoMessage() {}
func (*ServiceDescriptorProto) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{8}
+ return fileDescriptor_308767df5ffe18af, []int{8}
}
func (m *ServiceDescriptorProto) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ServiceDescriptorProto.Unmarshal(m, b)
@@ -1143,8 +1170,8 @@ func (m *ServiceDescriptorProto) XXX_Unmarshal(b []byte) error {
func (m *ServiceDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ServiceDescriptorProto.Marshal(b, m, deterministic)
}
-func (dst *ServiceDescriptorProto) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ServiceDescriptorProto.Merge(dst, src)
+func (m *ServiceDescriptorProto) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ServiceDescriptorProto.Merge(m, src)
}
func (m *ServiceDescriptorProto) XXX_Size() int {
return xxx_messageInfo_ServiceDescriptorProto.Size(m)
@@ -1197,7 +1224,7 @@ func (m *MethodDescriptorProto) Reset() { *m = MethodDescriptorProto{} }
func (m *MethodDescriptorProto) String() string { return proto.CompactTextString(m) }
func (*MethodDescriptorProto) ProtoMessage() {}
func (*MethodDescriptorProto) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{9}
+ return fileDescriptor_308767df5ffe18af, []int{9}
}
func (m *MethodDescriptorProto) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MethodDescriptorProto.Unmarshal(m, b)
@@ -1205,8 +1232,8 @@ func (m *MethodDescriptorProto) XXX_Unmarshal(b []byte) error {
func (m *MethodDescriptorProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MethodDescriptorProto.Marshal(b, m, deterministic)
}
-func (dst *MethodDescriptorProto) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MethodDescriptorProto.Merge(dst, src)
+func (m *MethodDescriptorProto) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MethodDescriptorProto.Merge(m, src)
}
func (m *MethodDescriptorProto) XXX_Size() int {
return xxx_messageInfo_MethodDescriptorProto.Size(m)
@@ -1336,6 +1363,14 @@ type FileOptions struct {
// is empty. When this option is empty, the package name will be used for
// determining the namespace.
PhpNamespace *string `protobuf:"bytes,41,opt,name=php_namespace,json=phpNamespace" json:"php_namespace,omitempty"`
+ // Use this option to change the namespace of php generated metadata classes.
+ // Default is empty. When this option is empty, the proto file name will be used
+ // for determining the namespace.
+ PhpMetadataNamespace *string `protobuf:"bytes,44,opt,name=php_metadata_namespace,json=phpMetadataNamespace" json:"php_metadata_namespace,omitempty"`
+ // Use this option to change the package of ruby generated classes. Default
+ // is empty. When this option is not set, the package name will be used for
+ // determining the ruby package.
+ RubyPackage *string `protobuf:"bytes,45,opt,name=ruby_package,json=rubyPackage" json:"ruby_package,omitempty"`
// The parser stores options it doesn't recognize here.
// See the documentation for the "Options" section above.
UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"`
@@ -1349,7 +1384,7 @@ func (m *FileOptions) Reset() { *m = FileOptions{} }
func (m *FileOptions) String() string { return proto.CompactTextString(m) }
func (*FileOptions) ProtoMessage() {}
func (*FileOptions) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{10}
+ return fileDescriptor_308767df5ffe18af, []int{10}
}
var extRange_FileOptions = []proto.ExtensionRange{
@@ -1359,14 +1394,15 @@ var extRange_FileOptions = []proto.ExtensionRange{
func (*FileOptions) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_FileOptions
}
+
func (m *FileOptions) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FileOptions.Unmarshal(m, b)
}
func (m *FileOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FileOptions.Marshal(b, m, deterministic)
}
-func (dst *FileOptions) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FileOptions.Merge(dst, src)
+func (m *FileOptions) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FileOptions.Merge(m, src)
}
func (m *FileOptions) XXX_Size() int {
return xxx_messageInfo_FileOptions.Size(m)
@@ -1514,6 +1550,20 @@ func (m *FileOptions) GetPhpNamespace() string {
return ""
}
+func (m *FileOptions) GetPhpMetadataNamespace() string {
+ if m != nil && m.PhpMetadataNamespace != nil {
+ return *m.PhpMetadataNamespace
+ }
+ return ""
+}
+
+func (m *FileOptions) GetRubyPackage() string {
+ if m != nil && m.RubyPackage != nil {
+ return *m.RubyPackage
+ }
+ return ""
+}
+
func (m *FileOptions) GetUninterpretedOption() []*UninterpretedOption {
if m != nil {
return m.UninterpretedOption
@@ -1584,7 +1634,7 @@ func (m *MessageOptions) Reset() { *m = MessageOptions{} }
func (m *MessageOptions) String() string { return proto.CompactTextString(m) }
func (*MessageOptions) ProtoMessage() {}
func (*MessageOptions) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{11}
+ return fileDescriptor_308767df5ffe18af, []int{11}
}
var extRange_MessageOptions = []proto.ExtensionRange{
@@ -1594,14 +1644,15 @@ var extRange_MessageOptions = []proto.ExtensionRange{
func (*MessageOptions) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_MessageOptions
}
+
func (m *MessageOptions) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MessageOptions.Unmarshal(m, b)
}
func (m *MessageOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MessageOptions.Marshal(b, m, deterministic)
}
-func (dst *MessageOptions) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MessageOptions.Merge(dst, src)
+func (m *MessageOptions) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MessageOptions.Merge(m, src)
}
func (m *MessageOptions) XXX_Size() int {
return xxx_messageInfo_MessageOptions.Size(m)
@@ -1723,7 +1774,7 @@ func (m *FieldOptions) Reset() { *m = FieldOptions{} }
func (m *FieldOptions) String() string { return proto.CompactTextString(m) }
func (*FieldOptions) ProtoMessage() {}
func (*FieldOptions) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{12}
+ return fileDescriptor_308767df5ffe18af, []int{12}
}
var extRange_FieldOptions = []proto.ExtensionRange{
@@ -1733,14 +1784,15 @@ var extRange_FieldOptions = []proto.ExtensionRange{
func (*FieldOptions) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_FieldOptions
}
+
func (m *FieldOptions) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FieldOptions.Unmarshal(m, b)
}
func (m *FieldOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FieldOptions.Marshal(b, m, deterministic)
}
-func (dst *FieldOptions) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FieldOptions.Merge(dst, src)
+func (m *FieldOptions) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FieldOptions.Merge(m, src)
}
func (m *FieldOptions) XXX_Size() int {
return xxx_messageInfo_FieldOptions.Size(m)
@@ -1819,7 +1871,7 @@ func (m *OneofOptions) Reset() { *m = OneofOptions{} }
func (m *OneofOptions) String() string { return proto.CompactTextString(m) }
func (*OneofOptions) ProtoMessage() {}
func (*OneofOptions) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{13}
+ return fileDescriptor_308767df5ffe18af, []int{13}
}
var extRange_OneofOptions = []proto.ExtensionRange{
@@ -1829,14 +1881,15 @@ var extRange_OneofOptions = []proto.ExtensionRange{
func (*OneofOptions) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_OneofOptions
}
+
func (m *OneofOptions) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OneofOptions.Unmarshal(m, b)
}
func (m *OneofOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OneofOptions.Marshal(b, m, deterministic)
}
-func (dst *OneofOptions) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OneofOptions.Merge(dst, src)
+func (m *OneofOptions) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OneofOptions.Merge(m, src)
}
func (m *OneofOptions) XXX_Size() int {
return xxx_messageInfo_OneofOptions.Size(m)
@@ -1875,7 +1928,7 @@ func (m *EnumOptions) Reset() { *m = EnumOptions{} }
func (m *EnumOptions) String() string { return proto.CompactTextString(m) }
func (*EnumOptions) ProtoMessage() {}
func (*EnumOptions) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{14}
+ return fileDescriptor_308767df5ffe18af, []int{14}
}
var extRange_EnumOptions = []proto.ExtensionRange{
@@ -1885,14 +1938,15 @@ var extRange_EnumOptions = []proto.ExtensionRange{
func (*EnumOptions) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_EnumOptions
}
+
func (m *EnumOptions) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EnumOptions.Unmarshal(m, b)
}
func (m *EnumOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_EnumOptions.Marshal(b, m, deterministic)
}
-func (dst *EnumOptions) XXX_Merge(src proto.Message) {
- xxx_messageInfo_EnumOptions.Merge(dst, src)
+func (m *EnumOptions) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EnumOptions.Merge(m, src)
}
func (m *EnumOptions) XXX_Size() int {
return xxx_messageInfo_EnumOptions.Size(m)
@@ -1944,7 +1998,7 @@ func (m *EnumValueOptions) Reset() { *m = EnumValueOptions{} }
func (m *EnumValueOptions) String() string { return proto.CompactTextString(m) }
func (*EnumValueOptions) ProtoMessage() {}
func (*EnumValueOptions) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{15}
+ return fileDescriptor_308767df5ffe18af, []int{15}
}
var extRange_EnumValueOptions = []proto.ExtensionRange{
@@ -1954,14 +2008,15 @@ var extRange_EnumValueOptions = []proto.ExtensionRange{
func (*EnumValueOptions) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_EnumValueOptions
}
+
func (m *EnumValueOptions) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EnumValueOptions.Unmarshal(m, b)
}
func (m *EnumValueOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_EnumValueOptions.Marshal(b, m, deterministic)
}
-func (dst *EnumValueOptions) XXX_Merge(src proto.Message) {
- xxx_messageInfo_EnumValueOptions.Merge(dst, src)
+func (m *EnumValueOptions) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EnumValueOptions.Merge(m, src)
}
func (m *EnumValueOptions) XXX_Size() int {
return xxx_messageInfo_EnumValueOptions.Size(m)
@@ -2006,7 +2061,7 @@ func (m *ServiceOptions) Reset() { *m = ServiceOptions{} }
func (m *ServiceOptions) String() string { return proto.CompactTextString(m) }
func (*ServiceOptions) ProtoMessage() {}
func (*ServiceOptions) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{16}
+ return fileDescriptor_308767df5ffe18af, []int{16}
}
var extRange_ServiceOptions = []proto.ExtensionRange{
@@ -2016,14 +2071,15 @@ var extRange_ServiceOptions = []proto.ExtensionRange{
func (*ServiceOptions) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_ServiceOptions
}
+
func (m *ServiceOptions) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ServiceOptions.Unmarshal(m, b)
}
func (m *ServiceOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ServiceOptions.Marshal(b, m, deterministic)
}
-func (dst *ServiceOptions) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ServiceOptions.Merge(dst, src)
+func (m *ServiceOptions) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ServiceOptions.Merge(m, src)
}
func (m *ServiceOptions) XXX_Size() int {
return xxx_messageInfo_ServiceOptions.Size(m)
@@ -2069,7 +2125,7 @@ func (m *MethodOptions) Reset() { *m = MethodOptions{} }
func (m *MethodOptions) String() string { return proto.CompactTextString(m) }
func (*MethodOptions) ProtoMessage() {}
func (*MethodOptions) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{17}
+ return fileDescriptor_308767df5ffe18af, []int{17}
}
var extRange_MethodOptions = []proto.ExtensionRange{
@@ -2079,14 +2135,15 @@ var extRange_MethodOptions = []proto.ExtensionRange{
func (*MethodOptions) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_MethodOptions
}
+
func (m *MethodOptions) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MethodOptions.Unmarshal(m, b)
}
func (m *MethodOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MethodOptions.Marshal(b, m, deterministic)
}
-func (dst *MethodOptions) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MethodOptions.Merge(dst, src)
+func (m *MethodOptions) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MethodOptions.Merge(m, src)
}
func (m *MethodOptions) XXX_Size() int {
return xxx_messageInfo_MethodOptions.Size(m)
@@ -2146,7 +2203,7 @@ func (m *UninterpretedOption) Reset() { *m = UninterpretedOption{} }
func (m *UninterpretedOption) String() string { return proto.CompactTextString(m) }
func (*UninterpretedOption) ProtoMessage() {}
func (*UninterpretedOption) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{18}
+ return fileDescriptor_308767df5ffe18af, []int{18}
}
func (m *UninterpretedOption) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UninterpretedOption.Unmarshal(m, b)
@@ -2154,8 +2211,8 @@ func (m *UninterpretedOption) XXX_Unmarshal(b []byte) error {
func (m *UninterpretedOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_UninterpretedOption.Marshal(b, m, deterministic)
}
-func (dst *UninterpretedOption) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UninterpretedOption.Merge(dst, src)
+func (m *UninterpretedOption) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UninterpretedOption.Merge(m, src)
}
func (m *UninterpretedOption) XXX_Size() int {
return xxx_messageInfo_UninterpretedOption.Size(m)
@@ -2232,7 +2289,7 @@ func (m *UninterpretedOption_NamePart) Reset() { *m = UninterpretedOptio
func (m *UninterpretedOption_NamePart) String() string { return proto.CompactTextString(m) }
func (*UninterpretedOption_NamePart) ProtoMessage() {}
func (*UninterpretedOption_NamePart) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{18, 0}
+ return fileDescriptor_308767df5ffe18af, []int{18, 0}
}
func (m *UninterpretedOption_NamePart) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UninterpretedOption_NamePart.Unmarshal(m, b)
@@ -2240,8 +2297,8 @@ func (m *UninterpretedOption_NamePart) XXX_Unmarshal(b []byte) error {
func (m *UninterpretedOption_NamePart) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_UninterpretedOption_NamePart.Marshal(b, m, deterministic)
}
-func (dst *UninterpretedOption_NamePart) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UninterpretedOption_NamePart.Merge(dst, src)
+func (m *UninterpretedOption_NamePart) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UninterpretedOption_NamePart.Merge(m, src)
}
func (m *UninterpretedOption_NamePart) XXX_Size() int {
return xxx_messageInfo_UninterpretedOption_NamePart.Size(m)
@@ -2322,7 +2379,7 @@ func (m *SourceCodeInfo) Reset() { *m = SourceCodeInfo{} }
func (m *SourceCodeInfo) String() string { return proto.CompactTextString(m) }
func (*SourceCodeInfo) ProtoMessage() {}
func (*SourceCodeInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{19}
+ return fileDescriptor_308767df5ffe18af, []int{19}
}
func (m *SourceCodeInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SourceCodeInfo.Unmarshal(m, b)
@@ -2330,8 +2387,8 @@ func (m *SourceCodeInfo) XXX_Unmarshal(b []byte) error {
func (m *SourceCodeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SourceCodeInfo.Marshal(b, m, deterministic)
}
-func (dst *SourceCodeInfo) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SourceCodeInfo.Merge(dst, src)
+func (m *SourceCodeInfo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SourceCodeInfo.Merge(m, src)
}
func (m *SourceCodeInfo) XXX_Size() int {
return xxx_messageInfo_SourceCodeInfo.Size(m)
@@ -2439,7 +2496,7 @@ func (m *SourceCodeInfo_Location) Reset() { *m = SourceCodeInfo_Location
func (m *SourceCodeInfo_Location) String() string { return proto.CompactTextString(m) }
func (*SourceCodeInfo_Location) ProtoMessage() {}
func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{19, 0}
+ return fileDescriptor_308767df5ffe18af, []int{19, 0}
}
func (m *SourceCodeInfo_Location) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SourceCodeInfo_Location.Unmarshal(m, b)
@@ -2447,8 +2504,8 @@ func (m *SourceCodeInfo_Location) XXX_Unmarshal(b []byte) error {
func (m *SourceCodeInfo_Location) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SourceCodeInfo_Location.Marshal(b, m, deterministic)
}
-func (dst *SourceCodeInfo_Location) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SourceCodeInfo_Location.Merge(dst, src)
+func (m *SourceCodeInfo_Location) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SourceCodeInfo_Location.Merge(m, src)
}
func (m *SourceCodeInfo_Location) XXX_Size() int {
return xxx_messageInfo_SourceCodeInfo_Location.Size(m)
@@ -2510,7 +2567,7 @@ func (m *GeneratedCodeInfo) Reset() { *m = GeneratedCodeInfo{} }
func (m *GeneratedCodeInfo) String() string { return proto.CompactTextString(m) }
func (*GeneratedCodeInfo) ProtoMessage() {}
func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{20}
+ return fileDescriptor_308767df5ffe18af, []int{20}
}
func (m *GeneratedCodeInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GeneratedCodeInfo.Unmarshal(m, b)
@@ -2518,8 +2575,8 @@ func (m *GeneratedCodeInfo) XXX_Unmarshal(b []byte) error {
func (m *GeneratedCodeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GeneratedCodeInfo.Marshal(b, m, deterministic)
}
-func (dst *GeneratedCodeInfo) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GeneratedCodeInfo.Merge(dst, src)
+func (m *GeneratedCodeInfo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GeneratedCodeInfo.Merge(m, src)
}
func (m *GeneratedCodeInfo) XXX_Size() int {
return xxx_messageInfo_GeneratedCodeInfo.Size(m)
@@ -2559,7 +2616,7 @@ func (m *GeneratedCodeInfo_Annotation) Reset() { *m = GeneratedCodeInfo_
func (m *GeneratedCodeInfo_Annotation) String() string { return proto.CompactTextString(m) }
func (*GeneratedCodeInfo_Annotation) ProtoMessage() {}
func (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) {
- return fileDescriptor_descriptor_9588782fb9cbecd6, []int{20, 0}
+ return fileDescriptor_308767df5ffe18af, []int{20, 0}
}
func (m *GeneratedCodeInfo_Annotation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GeneratedCodeInfo_Annotation.Unmarshal(m, b)
@@ -2567,8 +2624,8 @@ func (m *GeneratedCodeInfo_Annotation) XXX_Unmarshal(b []byte) error {
func (m *GeneratedCodeInfo_Annotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GeneratedCodeInfo_Annotation.Marshal(b, m, deterministic)
}
-func (dst *GeneratedCodeInfo_Annotation) XXX_Merge(src proto.Message) {
- xxx_messageInfo_GeneratedCodeInfo_Annotation.Merge(dst, src)
+func (m *GeneratedCodeInfo_Annotation) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GeneratedCodeInfo_Annotation.Merge(m, src)
}
func (m *GeneratedCodeInfo_Annotation) XXX_Size() int {
return xxx_messageInfo_GeneratedCodeInfo_Annotation.Size(m)
@@ -2608,6 +2665,12 @@ func (m *GeneratedCodeInfo_Annotation) GetEnd() int32 {
}
func init() {
+ proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Type", FieldDescriptorProto_Type_name, FieldDescriptorProto_Type_value)
+ proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Label", FieldDescriptorProto_Label_name, FieldDescriptorProto_Label_value)
+ proto.RegisterEnum("google.protobuf.FileOptions_OptimizeMode", FileOptions_OptimizeMode_name, FileOptions_OptimizeMode_value)
+ proto.RegisterEnum("google.protobuf.FieldOptions_CType", FieldOptions_CType_name, FieldOptions_CType_value)
+ proto.RegisterEnum("google.protobuf.FieldOptions_JSType", FieldOptions_JSType_name, FieldOptions_JSType_value)
+ proto.RegisterEnum("google.protobuf.MethodOptions_IdempotencyLevel", MethodOptions_IdempotencyLevel_name, MethodOptions_IdempotencyLevel_value)
proto.RegisterType((*FileDescriptorSet)(nil), "google.protobuf.FileDescriptorSet")
proto.RegisterType((*FileDescriptorProto)(nil), "google.protobuf.FileDescriptorProto")
proto.RegisterType((*DescriptorProto)(nil), "google.protobuf.DescriptorProto")
@@ -2635,172 +2698,168 @@ func init() {
proto.RegisterType((*SourceCodeInfo_Location)(nil), "google.protobuf.SourceCodeInfo.Location")
proto.RegisterType((*GeneratedCodeInfo)(nil), "google.protobuf.GeneratedCodeInfo")
proto.RegisterType((*GeneratedCodeInfo_Annotation)(nil), "google.protobuf.GeneratedCodeInfo.Annotation")
- proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Type", FieldDescriptorProto_Type_name, FieldDescriptorProto_Type_value)
- proto.RegisterEnum("google.protobuf.FieldDescriptorProto_Label", FieldDescriptorProto_Label_name, FieldDescriptorProto_Label_value)
- proto.RegisterEnum("google.protobuf.FileOptions_OptimizeMode", FileOptions_OptimizeMode_name, FileOptions_OptimizeMode_value)
- proto.RegisterEnum("google.protobuf.FieldOptions_CType", FieldOptions_CType_name, FieldOptions_CType_value)
- proto.RegisterEnum("google.protobuf.FieldOptions_JSType", FieldOptions_JSType_name, FieldOptions_JSType_value)
- proto.RegisterEnum("google.protobuf.MethodOptions_IdempotencyLevel", MethodOptions_IdempotencyLevel_name, MethodOptions_IdempotencyLevel_value)
}
-func init() { proto.RegisterFile("descriptor.proto", fileDescriptor_descriptor_9588782fb9cbecd6) }
+func init() { proto.RegisterFile("descriptor.proto", fileDescriptor_308767df5ffe18af) }
-var fileDescriptor_descriptor_9588782fb9cbecd6 = []byte{
- // 2487 bytes of a gzipped FileDescriptorProto
+var fileDescriptor_308767df5ffe18af = []byte{
+ // 2522 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x6f, 0xdb, 0xc8,
- 0x15, 0x5f, 0x7d, 0x5a, 0x7a, 0x92, 0xe5, 0xf1, 0xd8, 0x9b, 0x30, 0xde, 0x8f, 0x38, 0xda, 0x8f,
- 0x38, 0x49, 0xab, 0x2c, 0x9c, 0xc4, 0xc9, 0x3a, 0xc5, 0xb6, 0xb2, 0xc4, 0x78, 0x95, 0xca, 0x92,
+ 0x15, 0x5f, 0x7d, 0x5a, 0x7a, 0x92, 0x65, 0x7a, 0xec, 0x75, 0x18, 0xef, 0x47, 0x1c, 0xed, 0x66,
+ 0xe3, 0x24, 0xbb, 0xca, 0xc2, 0x49, 0x9c, 0xac, 0x53, 0x6c, 0x2b, 0x4b, 0x8c, 0x57, 0xa9, 0xbe,
0x4a, 0xc9, 0xdd, 0x64, 0x8b, 0x82, 0x18, 0x93, 0x23, 0x89, 0x09, 0x45, 0x72, 0x49, 0x2a, 0x89,
- 0x83, 0x1e, 0x02, 0xf4, 0xd4, 0xff, 0xa0, 0x28, 0x8a, 0x1e, 0x7a, 0x59, 0xa0, 0xd7, 0x02, 0x05,
- 0xda, 0x7b, 0xaf, 0x05, 0x7a, 0xef, 0xa1, 0x40, 0x0b, 0xb4, 0x7f, 0x42, 0x8f, 0xc5, 0xcc, 0x90,
- 0x14, 0xf5, 0x95, 0x78, 0x17, 0x48, 0xf6, 0x64, 0xcf, 0xef, 0xfd, 0xde, 0xe3, 0x9b, 0x37, 0x6f,
- 0xde, 0xbc, 0x19, 0x01, 0xd2, 0xa9, 0xa7, 0xb9, 0x86, 0xe3, 0xdb, 0x6e, 0xc5, 0x71, 0x6d, 0xdf,
- 0xc6, 0x6b, 0x03, 0xdb, 0x1e, 0x98, 0x54, 0x8c, 0x4e, 0xc6, 0xfd, 0xf2, 0x11, 0xac, 0xdf, 0x33,
- 0x4c, 0x5a, 0x8f, 0x88, 0x5d, 0xea, 0xe3, 0x3b, 0x90, 0xee, 0x1b, 0x26, 0x95, 0x12, 0xdb, 0xa9,
- 0x9d, 0xc2, 0xee, 0x87, 0x95, 0x19, 0xa5, 0xca, 0xb4, 0x46, 0x87, 0xc1, 0x0a, 0xd7, 0x28, 0xff,
- 0x3b, 0x0d, 0x1b, 0x0b, 0xa4, 0x18, 0x43, 0xda, 0x22, 0x23, 0x66, 0x31, 0xb1, 0x93, 0x57, 0xf8,
- 0xff, 0x58, 0x82, 0x15, 0x87, 0x68, 0x8f, 0xc9, 0x80, 0x4a, 0x49, 0x0e, 0x87, 0x43, 0xfc, 0x3e,
- 0x80, 0x4e, 0x1d, 0x6a, 0xe9, 0xd4, 0xd2, 0x4e, 0xa5, 0xd4, 0x76, 0x6a, 0x27, 0xaf, 0xc4, 0x10,
- 0x7c, 0x0d, 0xd6, 0x9d, 0xf1, 0x89, 0x69, 0x68, 0x6a, 0x8c, 0x06, 0xdb, 0xa9, 0x9d, 0x8c, 0x82,
- 0x84, 0xa0, 0x3e, 0x21, 0x5f, 0x86, 0xb5, 0xa7, 0x94, 0x3c, 0x8e, 0x53, 0x0b, 0x9c, 0x5a, 0x62,
- 0x70, 0x8c, 0x58, 0x83, 0xe2, 0x88, 0x7a, 0x1e, 0x19, 0x50, 0xd5, 0x3f, 0x75, 0xa8, 0x94, 0xe6,
- 0xb3, 0xdf, 0x9e, 0x9b, 0xfd, 0xec, 0xcc, 0x0b, 0x81, 0x56, 0xef, 0xd4, 0xa1, 0xb8, 0x0a, 0x79,
- 0x6a, 0x8d, 0x47, 0xc2, 0x42, 0x66, 0x49, 0xfc, 0x64, 0x6b, 0x3c, 0x9a, 0xb5, 0x92, 0x63, 0x6a,
- 0x81, 0x89, 0x15, 0x8f, 0xba, 0x4f, 0x0c, 0x8d, 0x4a, 0x59, 0x6e, 0xe0, 0xf2, 0x9c, 0x81, 0xae,
- 0x90, 0xcf, 0xda, 0x08, 0xf5, 0x70, 0x0d, 0xf2, 0xf4, 0x99, 0x4f, 0x2d, 0xcf, 0xb0, 0x2d, 0x69,
- 0x85, 0x1b, 0xf9, 0x68, 0xc1, 0x2a, 0x52, 0x53, 0x9f, 0x35, 0x31, 0xd1, 0xc3, 0x7b, 0xb0, 0x62,
- 0x3b, 0xbe, 0x61, 0x5b, 0x9e, 0x94, 0xdb, 0x4e, 0xec, 0x14, 0x76, 0xdf, 0x5d, 0x98, 0x08, 0x6d,
- 0xc1, 0x51, 0x42, 0x32, 0x6e, 0x00, 0xf2, 0xec, 0xb1, 0xab, 0x51, 0x55, 0xb3, 0x75, 0xaa, 0x1a,
- 0x56, 0xdf, 0x96, 0xf2, 0xdc, 0xc0, 0xc5, 0xf9, 0x89, 0x70, 0x62, 0xcd, 0xd6, 0x69, 0xc3, 0xea,
- 0xdb, 0x4a, 0xc9, 0x9b, 0x1a, 0xe3, 0x73, 0x90, 0xf5, 0x4e, 0x2d, 0x9f, 0x3c, 0x93, 0x8a, 0x3c,
- 0x43, 0x82, 0x51, 0xf9, 0xcf, 0x59, 0x58, 0x3b, 0x4b, 0x8a, 0xdd, 0x85, 0x4c, 0x9f, 0xcd, 0x52,
- 0x4a, 0x7e, 0x93, 0x18, 0x08, 0x9d, 0xe9, 0x20, 0x66, 0xbf, 0x65, 0x10, 0xab, 0x50, 0xb0, 0xa8,
- 0xe7, 0x53, 0x5d, 0x64, 0x44, 0xea, 0x8c, 0x39, 0x05, 0x42, 0x69, 0x3e, 0xa5, 0xd2, 0xdf, 0x2a,
- 0xa5, 0x1e, 0xc0, 0x5a, 0xe4, 0x92, 0xea, 0x12, 0x6b, 0x10, 0xe6, 0xe6, 0xf5, 0x57, 0x79, 0x52,
- 0x91, 0x43, 0x3d, 0x85, 0xa9, 0x29, 0x25, 0x3a, 0x35, 0xc6, 0x75, 0x00, 0xdb, 0xa2, 0x76, 0x5f,
- 0xd5, 0xa9, 0x66, 0x4a, 0xb9, 0x25, 0x51, 0x6a, 0x33, 0xca, 0x5c, 0x94, 0x6c, 0x81, 0x6a, 0x26,
- 0xfe, 0x74, 0x92, 0x6a, 0x2b, 0x4b, 0x32, 0xe5, 0x48, 0x6c, 0xb2, 0xb9, 0x6c, 0x3b, 0x86, 0x92,
- 0x4b, 0x59, 0xde, 0x53, 0x3d, 0x98, 0x59, 0x9e, 0x3b, 0x51, 0x79, 0xe5, 0xcc, 0x94, 0x40, 0x4d,
- 0x4c, 0x6c, 0xd5, 0x8d, 0x0f, 0xf1, 0x07, 0x10, 0x01, 0x2a, 0x4f, 0x2b, 0xe0, 0x55, 0xa8, 0x18,
- 0x82, 0x2d, 0x32, 0xa2, 0x5b, 0xcf, 0xa1, 0x34, 0x1d, 0x1e, 0xbc, 0x09, 0x19, 0xcf, 0x27, 0xae,
- 0xcf, 0xb3, 0x30, 0xa3, 0x88, 0x01, 0x46, 0x90, 0xa2, 0x96, 0xce, 0xab, 0x5c, 0x46, 0x61, 0xff,
- 0xe2, 0x1f, 0x4d, 0x26, 0x9c, 0xe2, 0x13, 0xfe, 0x78, 0x7e, 0x45, 0xa7, 0x2c, 0xcf, 0xce, 0x7b,
- 0xeb, 0x36, 0xac, 0x4e, 0x4d, 0xe0, 0xac, 0x9f, 0x2e, 0xff, 0x02, 0xde, 0x5e, 0x68, 0x1a, 0x3f,
- 0x80, 0xcd, 0xb1, 0x65, 0x58, 0x3e, 0x75, 0x1d, 0x97, 0xb2, 0x8c, 0x15, 0x9f, 0x92, 0xfe, 0xb3,
- 0xb2, 0x24, 0xe7, 0x8e, 0xe3, 0x6c, 0x61, 0x45, 0xd9, 0x18, 0xcf, 0x83, 0x57, 0xf3, 0xb9, 0xff,
- 0xae, 0xa0, 0x17, 0x2f, 0x5e, 0xbc, 0x48, 0x96, 0x7f, 0x9d, 0x85, 0xcd, 0x45, 0x7b, 0x66, 0xe1,
- 0xf6, 0x3d, 0x07, 0x59, 0x6b, 0x3c, 0x3a, 0xa1, 0x2e, 0x0f, 0x52, 0x46, 0x09, 0x46, 0xb8, 0x0a,
- 0x19, 0x93, 0x9c, 0x50, 0x53, 0x4a, 0x6f, 0x27, 0x76, 0x4a, 0xbb, 0xd7, 0xce, 0xb4, 0x2b, 0x2b,
- 0x4d, 0xa6, 0xa2, 0x08, 0x4d, 0xfc, 0x19, 0xa4, 0x83, 0x12, 0xcd, 0x2c, 0x5c, 0x3d, 0x9b, 0x05,
- 0xb6, 0x97, 0x14, 0xae, 0x87, 0xdf, 0x81, 0x3c, 0xfb, 0x2b, 0x72, 0x23, 0xcb, 0x7d, 0xce, 0x31,
- 0x80, 0xe5, 0x05, 0xde, 0x82, 0x1c, 0xdf, 0x26, 0x3a, 0x0d, 0x8f, 0xb6, 0x68, 0xcc, 0x12, 0x4b,
- 0xa7, 0x7d, 0x32, 0x36, 0x7d, 0xf5, 0x09, 0x31, 0xc7, 0x94, 0x27, 0x7c, 0x5e, 0x29, 0x06, 0xe0,
- 0x4f, 0x19, 0x86, 0x2f, 0x42, 0x41, 0xec, 0x2a, 0xc3, 0xd2, 0xe9, 0x33, 0x5e, 0x3d, 0x33, 0x8a,
- 0xd8, 0x68, 0x0d, 0x86, 0xb0, 0xcf, 0x3f, 0xf2, 0x6c, 0x2b, 0x4c, 0x4d, 0xfe, 0x09, 0x06, 0xf0,
- 0xcf, 0xdf, 0x9e, 0x2d, 0xdc, 0xef, 0x2d, 0x9e, 0xde, 0x6c, 0x4e, 0x95, 0xff, 0x94, 0x84, 0x34,
- 0xaf, 0x17, 0x6b, 0x50, 0xe8, 0x3d, 0xec, 0xc8, 0x6a, 0xbd, 0x7d, 0x7c, 0xd0, 0x94, 0x51, 0x02,
- 0x97, 0x00, 0x38, 0x70, 0xaf, 0xd9, 0xae, 0xf6, 0x50, 0x32, 0x1a, 0x37, 0x5a, 0xbd, 0xbd, 0x9b,
- 0x28, 0x15, 0x29, 0x1c, 0x0b, 0x20, 0x1d, 0x27, 0xdc, 0xd8, 0x45, 0x19, 0x8c, 0xa0, 0x28, 0x0c,
- 0x34, 0x1e, 0xc8, 0xf5, 0xbd, 0x9b, 0x28, 0x3b, 0x8d, 0xdc, 0xd8, 0x45, 0x2b, 0x78, 0x15, 0xf2,
- 0x1c, 0x39, 0x68, 0xb7, 0x9b, 0x28, 0x17, 0xd9, 0xec, 0xf6, 0x94, 0x46, 0xeb, 0x10, 0xe5, 0x23,
- 0x9b, 0x87, 0x4a, 0xfb, 0xb8, 0x83, 0x20, 0xb2, 0x70, 0x24, 0x77, 0xbb, 0xd5, 0x43, 0x19, 0x15,
- 0x22, 0xc6, 0xc1, 0xc3, 0x9e, 0xdc, 0x45, 0xc5, 0x29, 0xb7, 0x6e, 0xec, 0xa2, 0xd5, 0xe8, 0x13,
- 0x72, 0xeb, 0xf8, 0x08, 0x95, 0xf0, 0x3a, 0xac, 0x8a, 0x4f, 0x84, 0x4e, 0xac, 0xcd, 0x40, 0x7b,
- 0x37, 0x11, 0x9a, 0x38, 0x22, 0xac, 0xac, 0x4f, 0x01, 0x7b, 0x37, 0x11, 0x2e, 0xd7, 0x20, 0xc3,
- 0xb3, 0x0b, 0x63, 0x28, 0x35, 0xab, 0x07, 0x72, 0x53, 0x6d, 0x77, 0x7a, 0x8d, 0x76, 0xab, 0xda,
- 0x44, 0x89, 0x09, 0xa6, 0xc8, 0x3f, 0x39, 0x6e, 0x28, 0x72, 0x1d, 0x25, 0xe3, 0x58, 0x47, 0xae,
- 0xf6, 0xe4, 0x3a, 0x4a, 0x95, 0x35, 0xd8, 0x5c, 0x54, 0x27, 0x17, 0xee, 0x8c, 0xd8, 0x12, 0x27,
- 0x97, 0x2c, 0x31, 0xb7, 0x35, 0xb7, 0xc4, 0xff, 0x4a, 0xc2, 0xc6, 0x82, 0xb3, 0x62, 0xe1, 0x47,
- 0x7e, 0x08, 0x19, 0x91, 0xa2, 0xe2, 0xf4, 0xbc, 0xb2, 0xf0, 0xd0, 0xe1, 0x09, 0x3b, 0x77, 0x82,
- 0x72, 0xbd, 0x78, 0x07, 0x91, 0x5a, 0xd2, 0x41, 0x30, 0x13, 0x73, 0x35, 0xfd, 0xe7, 0x73, 0x35,
- 0x5d, 0x1c, 0x7b, 0x7b, 0x67, 0x39, 0xf6, 0x38, 0xf6, 0xcd, 0x6a, 0x7b, 0x66, 0x41, 0x6d, 0xbf,
- 0x0b, 0xeb, 0x73, 0x86, 0xce, 0x5c, 0x63, 0x7f, 0x99, 0x00, 0x69, 0x59, 0x70, 0x5e, 0x51, 0xe9,
- 0x92, 0x53, 0x95, 0xee, 0xee, 0x6c, 0x04, 0x2f, 0x2d, 0x5f, 0x84, 0xb9, 0xb5, 0xfe, 0x3a, 0x01,
- 0xe7, 0x16, 0x77, 0x8a, 0x0b, 0x7d, 0xf8, 0x0c, 0xb2, 0x23, 0xea, 0x0f, 0xed, 0xb0, 0x5b, 0xfa,
- 0x78, 0xc1, 0x19, 0xcc, 0xc4, 0xb3, 0x8b, 0x1d, 0x68, 0xc5, 0x0f, 0xf1, 0xd4, 0xb2, 0x76, 0x4f,
- 0x78, 0x33, 0xe7, 0xe9, 0xaf, 0x92, 0xf0, 0xf6, 0x42, 0xe3, 0x0b, 0x1d, 0x7d, 0x0f, 0xc0, 0xb0,
- 0x9c, 0xb1, 0x2f, 0x3a, 0x22, 0x51, 0x60, 0xf3, 0x1c, 0xe1, 0xc5, 0x8b, 0x15, 0xcf, 0xb1, 0x1f,
- 0xc9, 0x53, 0x5c, 0x0e, 0x02, 0xe2, 0x84, 0x3b, 0x13, 0x47, 0xd3, 0xdc, 0xd1, 0xf7, 0x97, 0xcc,
- 0x74, 0x2e, 0x31, 0x3f, 0x01, 0xa4, 0x99, 0x06, 0xb5, 0x7c, 0xd5, 0xf3, 0x5d, 0x4a, 0x46, 0x86,
- 0x35, 0xe0, 0x27, 0x48, 0x6e, 0x3f, 0xd3, 0x27, 0xa6, 0x47, 0x95, 0x35, 0x21, 0xee, 0x86, 0x52,
- 0xa6, 0xc1, 0x13, 0xc8, 0x8d, 0x69, 0x64, 0xa7, 0x34, 0x84, 0x38, 0xd2, 0x28, 0xff, 0x31, 0x07,
- 0x85, 0x58, 0x5f, 0x8d, 0x2f, 0x41, 0xf1, 0x11, 0x79, 0x42, 0xd4, 0xf0, 0xae, 0x24, 0x22, 0x51,
- 0x60, 0x58, 0x27, 0xb8, 0x2f, 0x7d, 0x02, 0x9b, 0x9c, 0x62, 0x8f, 0x7d, 0xea, 0xaa, 0x9a, 0x49,
- 0x3c, 0x8f, 0x07, 0x2d, 0xc7, 0xa9, 0x98, 0xc9, 0xda, 0x4c, 0x54, 0x0b, 0x25, 0xf8, 0x16, 0x6c,
- 0x70, 0x8d, 0xd1, 0xd8, 0xf4, 0x0d, 0xc7, 0xa4, 0x2a, 0xbb, 0xbd, 0x79, 0xfc, 0x24, 0x89, 0x3c,
- 0x5b, 0x67, 0x8c, 0xa3, 0x80, 0xc0, 0x3c, 0xf2, 0x70, 0x1d, 0xde, 0xe3, 0x6a, 0x03, 0x6a, 0x51,
- 0x97, 0xf8, 0x54, 0xa5, 0x5f, 0x8d, 0x89, 0xe9, 0xa9, 0xc4, 0xd2, 0xd5, 0x21, 0xf1, 0x86, 0xd2,
- 0x26, 0x33, 0x70, 0x90, 0x94, 0x12, 0xca, 0x05, 0x46, 0x3c, 0x0c, 0x78, 0x32, 0xa7, 0x55, 0x2d,
- 0xfd, 0x73, 0xe2, 0x0d, 0xf1, 0x3e, 0x9c, 0xe3, 0x56, 0x3c, 0xdf, 0x35, 0xac, 0x81, 0xaa, 0x0d,
- 0xa9, 0xf6, 0x58, 0x1d, 0xfb, 0xfd, 0x3b, 0xd2, 0x3b, 0xf1, 0xef, 0x73, 0x0f, 0xbb, 0x9c, 0x53,
- 0x63, 0x94, 0x63, 0xbf, 0x7f, 0x07, 0x77, 0xa1, 0xc8, 0x16, 0x63, 0x64, 0x3c, 0xa7, 0x6a, 0xdf,
- 0x76, 0xf9, 0xd1, 0x58, 0x5a, 0x50, 0x9a, 0x62, 0x11, 0xac, 0xb4, 0x03, 0x85, 0x23, 0x5b, 0xa7,
- 0xfb, 0x99, 0x6e, 0x47, 0x96, 0xeb, 0x4a, 0x21, 0xb4, 0x72, 0xcf, 0x76, 0x59, 0x42, 0x0d, 0xec,
- 0x28, 0xc0, 0x05, 0x91, 0x50, 0x03, 0x3b, 0x0c, 0xef, 0x2d, 0xd8, 0xd0, 0x34, 0x31, 0x67, 0x43,
- 0x53, 0x83, 0x3b, 0x96, 0x27, 0xa1, 0xa9, 0x60, 0x69, 0xda, 0xa1, 0x20, 0x04, 0x39, 0xee, 0xe1,
- 0x4f, 0xe1, 0xed, 0x49, 0xb0, 0xe2, 0x8a, 0xeb, 0x73, 0xb3, 0x9c, 0x55, 0xbd, 0x05, 0x1b, 0xce,
- 0xe9, 0xbc, 0x22, 0x9e, 0xfa, 0xa2, 0x73, 0x3a, 0xab, 0x76, 0x1b, 0x36, 0x9d, 0xa1, 0x33, 0xaf,
- 0x77, 0x35, 0xae, 0x87, 0x9d, 0xa1, 0x33, 0xab, 0xf8, 0x11, 0xbf, 0x70, 0xbb, 0x54, 0x23, 0x3e,
- 0xd5, 0xa5, 0xf3, 0x71, 0x7a, 0x4c, 0x80, 0xaf, 0x03, 0xd2, 0x34, 0x95, 0x5a, 0xe4, 0xc4, 0xa4,
- 0x2a, 0x71, 0xa9, 0x45, 0x3c, 0xe9, 0x62, 0x9c, 0x5c, 0xd2, 0x34, 0x99, 0x4b, 0xab, 0x5c, 0x88,
- 0xaf, 0xc2, 0xba, 0x7d, 0xf2, 0x48, 0x13, 0x29, 0xa9, 0x3a, 0x2e, 0xed, 0x1b, 0xcf, 0xa4, 0x0f,
- 0x79, 0x7c, 0xd7, 0x98, 0x80, 0x27, 0x64, 0x87, 0xc3, 0xf8, 0x0a, 0x20, 0xcd, 0x1b, 0x12, 0xd7,
- 0xe1, 0x35, 0xd9, 0x73, 0x88, 0x46, 0xa5, 0x8f, 0x04, 0x55, 0xe0, 0xad, 0x10, 0x66, 0x5b, 0xc2,
- 0x7b, 0x6a, 0xf4, 0xfd, 0xd0, 0xe2, 0x65, 0xb1, 0x25, 0x38, 0x16, 0x58, 0xdb, 0x01, 0xc4, 0x42,
- 0x31, 0xf5, 0xe1, 0x1d, 0x4e, 0x2b, 0x39, 0x43, 0x27, 0xfe, 0xdd, 0x0f, 0x60, 0x95, 0x31, 0x27,
- 0x1f, 0xbd, 0x22, 0x1a, 0x32, 0x67, 0x18, 0xfb, 0xe2, 0x6b, 0xeb, 0x8d, 0xcb, 0xfb, 0x50, 0x8c,
- 0xe7, 0x27, 0xce, 0x83, 0xc8, 0x50, 0x94, 0x60, 0xcd, 0x4a, 0xad, 0x5d, 0x67, 0x6d, 0xc6, 0x97,
- 0x32, 0x4a, 0xb2, 0x76, 0xa7, 0xd9, 0xe8, 0xc9, 0xaa, 0x72, 0xdc, 0xea, 0x35, 0x8e, 0x64, 0x94,
- 0x8a, 0xf7, 0xd5, 0x7f, 0x4d, 0x42, 0x69, 0xfa, 0x8a, 0x84, 0x7f, 0x00, 0xe7, 0xc3, 0xf7, 0x0c,
- 0x8f, 0xfa, 0xea, 0x53, 0xc3, 0xe5, 0x5b, 0x66, 0x44, 0xc4, 0xf1, 0x15, 0x2d, 0xda, 0x66, 0xc0,
- 0xea, 0x52, 0xff, 0x0b, 0xc3, 0x65, 0x1b, 0x62, 0x44, 0x7c, 0xdc, 0x84, 0x8b, 0x96, 0xad, 0x7a,
- 0x3e, 0xb1, 0x74, 0xe2, 0xea, 0xea, 0xe4, 0x25, 0x49, 0x25, 0x9a, 0x46, 0x3d, 0xcf, 0x16, 0x47,
- 0x55, 0x64, 0xe5, 0x5d, 0xcb, 0xee, 0x06, 0xe4, 0x49, 0x0d, 0xaf, 0x06, 0xd4, 0x99, 0x04, 0x4b,
- 0x2d, 0x4b, 0xb0, 0x77, 0x20, 0x3f, 0x22, 0x8e, 0x4a, 0x2d, 0xdf, 0x3d, 0xe5, 0x8d, 0x71, 0x4e,
- 0xc9, 0x8d, 0x88, 0x23, 0xb3, 0xf1, 0x9b, 0xb9, 0x9f, 0xfc, 0x23, 0x05, 0xc5, 0x78, 0x73, 0xcc,
- 0xee, 0x1a, 0x1a, 0x3f, 0x47, 0x12, 0xbc, 0xd2, 0x7c, 0xf0, 0xd2, 0x56, 0xba, 0x52, 0x63, 0x07,
- 0xcc, 0x7e, 0x56, 0xb4, 0xac, 0x8a, 0xd0, 0x64, 0x87, 0x3b, 0xab, 0x2d, 0x54, 0xb4, 0x08, 0x39,
- 0x25, 0x18, 0xe1, 0x43, 0xc8, 0x3e, 0xf2, 0xb8, 0xed, 0x2c, 0xb7, 0xfd, 0xe1, 0xcb, 0x6d, 0xdf,
- 0xef, 0x72, 0xe3, 0xf9, 0xfb, 0x5d, 0xb5, 0xd5, 0x56, 0x8e, 0xaa, 0x4d, 0x25, 0x50, 0xc7, 0x17,
- 0x20, 0x6d, 0x92, 0xe7, 0xa7, 0xd3, 0x47, 0x11, 0x87, 0xce, 0x1a, 0xf8, 0x0b, 0x90, 0x7e, 0x4a,
- 0xc9, 0xe3, 0xe9, 0x03, 0x80, 0x43, 0xaf, 0x31, 0xf5, 0xaf, 0x43, 0x86, 0xc7, 0x0b, 0x03, 0x04,
- 0x11, 0x43, 0x6f, 0xe1, 0x1c, 0xa4, 0x6b, 0x6d, 0x85, 0xa5, 0x3f, 0x82, 0xa2, 0x40, 0xd5, 0x4e,
- 0x43, 0xae, 0xc9, 0x28, 0x59, 0xbe, 0x05, 0x59, 0x11, 0x04, 0xb6, 0x35, 0xa2, 0x30, 0xa0, 0xb7,
- 0x82, 0x61, 0x60, 0x23, 0x11, 0x4a, 0x8f, 0x8f, 0x0e, 0x64, 0x05, 0x25, 0xe3, 0xcb, 0xeb, 0x41,
- 0x31, 0xde, 0x17, 0xbf, 0x99, 0x9c, 0xfa, 0x4b, 0x02, 0x0a, 0xb1, 0x3e, 0x97, 0x35, 0x28, 0xc4,
- 0x34, 0xed, 0xa7, 0x2a, 0x31, 0x0d, 0xe2, 0x05, 0x49, 0x01, 0x1c, 0xaa, 0x32, 0xe4, 0xac, 0x8b,
- 0xf6, 0x46, 0x9c, 0xff, 0x5d, 0x02, 0xd0, 0x6c, 0x8b, 0x39, 0xe3, 0x60, 0xe2, 0x3b, 0x75, 0xf0,
- 0xb7, 0x09, 0x28, 0x4d, 0xf7, 0x95, 0x33, 0xee, 0x5d, 0xfa, 0x4e, 0xdd, 0xfb, 0x67, 0x12, 0x56,
- 0xa7, 0xba, 0xc9, 0xb3, 0x7a, 0xf7, 0x15, 0xac, 0x1b, 0x3a, 0x1d, 0x39, 0xb6, 0x4f, 0x2d, 0xed,
- 0x54, 0x35, 0xe9, 0x13, 0x6a, 0x4a, 0x65, 0x5e, 0x28, 0xae, 0xbf, 0xbc, 0x5f, 0xad, 0x34, 0x26,
- 0x7a, 0x4d, 0xa6, 0xb6, 0xbf, 0xd1, 0xa8, 0xcb, 0x47, 0x9d, 0x76, 0x4f, 0x6e, 0xd5, 0x1e, 0xaa,
- 0xc7, 0xad, 0x1f, 0xb7, 0xda, 0x5f, 0xb4, 0x14, 0x64, 0xcc, 0xd0, 0x5e, 0xe3, 0x56, 0xef, 0x00,
- 0x9a, 0x75, 0x0a, 0x9f, 0x87, 0x45, 0x6e, 0xa1, 0xb7, 0xf0, 0x06, 0xac, 0xb5, 0xda, 0x6a, 0xb7,
- 0x51, 0x97, 0x55, 0xf9, 0xde, 0x3d, 0xb9, 0xd6, 0xeb, 0x8a, 0x17, 0x88, 0x88, 0xdd, 0x9b, 0xde,
- 0xd4, 0xbf, 0x49, 0xc1, 0xc6, 0x02, 0x4f, 0x70, 0x35, 0xb8, 0x3b, 0x88, 0xeb, 0xcc, 0xf7, 0xcf,
- 0xe2, 0x7d, 0x85, 0x1d, 0xf9, 0x1d, 0xe2, 0xfa, 0xc1, 0x55, 0xe3, 0x0a, 0xb0, 0x28, 0x59, 0xbe,
- 0xd1, 0x37, 0xa8, 0x1b, 0x3c, 0xd8, 0x88, 0x0b, 0xc5, 0xda, 0x04, 0x17, 0x6f, 0x36, 0xdf, 0x03,
- 0xec, 0xd8, 0x9e, 0xe1, 0x1b, 0x4f, 0xa8, 0x6a, 0x58, 0xe1, 0xeb, 0x0e, 0xbb, 0x60, 0xa4, 0x15,
- 0x14, 0x4a, 0x1a, 0x96, 0x1f, 0xb1, 0x2d, 0x3a, 0x20, 0x33, 0x6c, 0x56, 0xc0, 0x53, 0x0a, 0x0a,
- 0x25, 0x11, 0xfb, 0x12, 0x14, 0x75, 0x7b, 0xcc, 0xba, 0x2e, 0xc1, 0x63, 0xe7, 0x45, 0x42, 0x29,
- 0x08, 0x2c, 0xa2, 0x04, 0xfd, 0xf4, 0xe4, 0x59, 0xa9, 0xa8, 0x14, 0x04, 0x26, 0x28, 0x97, 0x61,
- 0x8d, 0x0c, 0x06, 0x2e, 0x33, 0x1e, 0x1a, 0x12, 0x37, 0x84, 0x52, 0x04, 0x73, 0xe2, 0xd6, 0x7d,
- 0xc8, 0x85, 0x71, 0x60, 0x47, 0x32, 0x8b, 0x84, 0xea, 0x88, 0x6b, 0x6f, 0x72, 0x27, 0xaf, 0xe4,
- 0xac, 0x50, 0x78, 0x09, 0x8a, 0x86, 0xa7, 0x4e, 0x5e, 0xc9, 0x93, 0xdb, 0xc9, 0x9d, 0x9c, 0x52,
- 0x30, 0xbc, 0xe8, 0x85, 0xb1, 0xfc, 0x75, 0x12, 0x4a, 0xd3, 0xaf, 0xfc, 0xb8, 0x0e, 0x39, 0xd3,
- 0xd6, 0x08, 0x4f, 0x2d, 0xf1, 0x13, 0xd3, 0xce, 0x2b, 0x7e, 0x18, 0xa8, 0x34, 0x03, 0xbe, 0x12,
- 0x69, 0x6e, 0xfd, 0x2d, 0x01, 0xb9, 0x10, 0xc6, 0xe7, 0x20, 0xed, 0x10, 0x7f, 0xc8, 0xcd, 0x65,
- 0x0e, 0x92, 0x28, 0xa1, 0xf0, 0x31, 0xc3, 0x3d, 0x87, 0x58, 0x3c, 0x05, 0x02, 0x9c, 0x8d, 0xd9,
- 0xba, 0x9a, 0x94, 0xe8, 0xfc, 0xfa, 0x61, 0x8f, 0x46, 0xd4, 0xf2, 0xbd, 0x70, 0x5d, 0x03, 0xbc,
- 0x16, 0xc0, 0xf8, 0x1a, 0xac, 0xfb, 0x2e, 0x31, 0xcc, 0x29, 0x6e, 0x9a, 0x73, 0x51, 0x28, 0x88,
- 0xc8, 0xfb, 0x70, 0x21, 0xb4, 0xab, 0x53, 0x9f, 0x68, 0x43, 0xaa, 0x4f, 0x94, 0xb2, 0xfc, 0x99,
- 0xe1, 0x7c, 0x40, 0xa8, 0x07, 0xf2, 0x50, 0xb7, 0xfc, 0xf7, 0x04, 0xac, 0x87, 0x17, 0x26, 0x3d,
- 0x0a, 0xd6, 0x11, 0x00, 0xb1, 0x2c, 0xdb, 0x8f, 0x87, 0x6b, 0x3e, 0x95, 0xe7, 0xf4, 0x2a, 0xd5,
- 0x48, 0x49, 0x89, 0x19, 0xd8, 0x1a, 0x01, 0x4c, 0x24, 0x4b, 0xc3, 0x76, 0x11, 0x0a, 0xc1, 0x4f,
- 0x38, 0xfc, 0x77, 0x40, 0x71, 0xc5, 0x06, 0x01, 0xb1, 0x9b, 0x15, 0xde, 0x84, 0xcc, 0x09, 0x1d,
- 0x18, 0x56, 0xf0, 0x30, 0x2b, 0x06, 0xe1, 0x43, 0x48, 0x3a, 0x7a, 0x08, 0x39, 0xf8, 0x19, 0x6c,
- 0x68, 0xf6, 0x68, 0xd6, 0xdd, 0x03, 0x34, 0x73, 0xcd, 0xf7, 0x3e, 0x4f, 0x7c, 0x09, 0x93, 0x16,
- 0xf3, 0x7f, 0x89, 0xc4, 0xef, 0x93, 0xa9, 0xc3, 0xce, 0xc1, 0x1f, 0x92, 0x5b, 0x87, 0x42, 0xb5,
- 0x13, 0xce, 0x54, 0xa1, 0x7d, 0x93, 0x6a, 0xcc, 0xfb, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0xa3,
- 0x58, 0x22, 0x30, 0xdf, 0x1c, 0x00, 0x00,
+ 0x83, 0x1e, 0x02, 0xf4, 0x54, 0xa0, 0x7f, 0x40, 0x51, 0x14, 0x3d, 0xf4, 0xb2, 0x40, 0xff, 0x80,
+ 0x02, 0xed, 0xbd, 0xd7, 0x02, 0xbd, 0xf7, 0x50, 0xa0, 0x05, 0xda, 0x3f, 0xa1, 0xc7, 0x62, 0x66,
+ 0x48, 0x8a, 0xd4, 0x47, 0xe2, 0x5d, 0x20, 0xd9, 0x93, 0x3d, 0xef, 0xfd, 0xde, 0x9b, 0x37, 0x8f,
+ 0xbf, 0x79, 0xf3, 0x66, 0x04, 0x82, 0x46, 0x5c, 0xd5, 0xd1, 0x6d, 0xcf, 0x72, 0x2a, 0xb6, 0x63,
+ 0x79, 0x16, 0x5a, 0x1b, 0x5a, 0xd6, 0xd0, 0x20, 0x7c, 0x74, 0x32, 0x19, 0x94, 0x5b, 0xb0, 0x7e,
+ 0x4f, 0x37, 0x48, 0x3d, 0x04, 0xf6, 0x88, 0x87, 0xee, 0x40, 0x7a, 0xa0, 0x1b, 0x44, 0x4c, 0xec,
+ 0xa4, 0x76, 0x0b, 0x7b, 0x1f, 0x56, 0x66, 0x8c, 0x2a, 0x71, 0x8b, 0x2e, 0x15, 0xcb, 0xcc, 0xa2,
+ 0xfc, 0xef, 0x34, 0x6c, 0x2c, 0xd0, 0x22, 0x04, 0x69, 0x13, 0x8f, 0xa9, 0xc7, 0xc4, 0x6e, 0x5e,
+ 0x66, 0xff, 0x23, 0x11, 0x56, 0x6c, 0xac, 0x3e, 0xc6, 0x43, 0x22, 0x26, 0x99, 0x38, 0x18, 0xa2,
+ 0xf7, 0x01, 0x34, 0x62, 0x13, 0x53, 0x23, 0xa6, 0x7a, 0x2a, 0xa6, 0x76, 0x52, 0xbb, 0x79, 0x39,
+ 0x22, 0x41, 0xd7, 0x60, 0xdd, 0x9e, 0x9c, 0x18, 0xba, 0xaa, 0x44, 0x60, 0xb0, 0x93, 0xda, 0xcd,
+ 0xc8, 0x02, 0x57, 0xd4, 0xa7, 0xe0, 0xcb, 0xb0, 0xf6, 0x94, 0xe0, 0xc7, 0x51, 0x68, 0x81, 0x41,
+ 0x4b, 0x54, 0x1c, 0x01, 0xd6, 0xa0, 0x38, 0x26, 0xae, 0x8b, 0x87, 0x44, 0xf1, 0x4e, 0x6d, 0x22,
+ 0xa6, 0xd9, 0xea, 0x77, 0xe6, 0x56, 0x3f, 0xbb, 0xf2, 0x82, 0x6f, 0xd5, 0x3f, 0xb5, 0x09, 0xaa,
+ 0x42, 0x9e, 0x98, 0x93, 0x31, 0xf7, 0x90, 0x59, 0x92, 0x3f, 0xc9, 0x9c, 0x8c, 0x67, 0xbd, 0xe4,
+ 0xa8, 0x99, 0xef, 0x62, 0xc5, 0x25, 0xce, 0x13, 0x5d, 0x25, 0x62, 0x96, 0x39, 0xb8, 0x3c, 0xe7,
+ 0xa0, 0xc7, 0xf5, 0xb3, 0x3e, 0x02, 0x3b, 0x54, 0x83, 0x3c, 0x79, 0xe6, 0x11, 0xd3, 0xd5, 0x2d,
+ 0x53, 0x5c, 0x61, 0x4e, 0x2e, 0x2d, 0xf8, 0x8a, 0xc4, 0xd0, 0x66, 0x5d, 0x4c, 0xed, 0xd0, 0x3e,
+ 0xac, 0x58, 0xb6, 0xa7, 0x5b, 0xa6, 0x2b, 0xe6, 0x76, 0x12, 0xbb, 0x85, 0xbd, 0x77, 0x17, 0x12,
+ 0xa1, 0xc3, 0x31, 0x72, 0x00, 0x46, 0x0d, 0x10, 0x5c, 0x6b, 0xe2, 0xa8, 0x44, 0x51, 0x2d, 0x8d,
+ 0x28, 0xba, 0x39, 0xb0, 0xc4, 0x3c, 0x73, 0x70, 0x61, 0x7e, 0x21, 0x0c, 0x58, 0xb3, 0x34, 0xd2,
+ 0x30, 0x07, 0x96, 0x5c, 0x72, 0x63, 0x63, 0xb4, 0x05, 0x59, 0xf7, 0xd4, 0xf4, 0xf0, 0x33, 0xb1,
+ 0xc8, 0x18, 0xe2, 0x8f, 0xca, 0x7f, 0xce, 0xc2, 0xda, 0x59, 0x28, 0x76, 0x17, 0x32, 0x03, 0xba,
+ 0x4a, 0x31, 0xf9, 0x6d, 0x72, 0xc0, 0x6d, 0xe2, 0x49, 0xcc, 0x7e, 0xc7, 0x24, 0x56, 0xa1, 0x60,
+ 0x12, 0xd7, 0x23, 0x1a, 0x67, 0x44, 0xea, 0x8c, 0x9c, 0x02, 0x6e, 0x34, 0x4f, 0xa9, 0xf4, 0x77,
+ 0xa2, 0xd4, 0x03, 0x58, 0x0b, 0x43, 0x52, 0x1c, 0x6c, 0x0e, 0x03, 0x6e, 0x5e, 0x7f, 0x55, 0x24,
+ 0x15, 0x29, 0xb0, 0x93, 0xa9, 0x99, 0x5c, 0x22, 0xb1, 0x31, 0xaa, 0x03, 0x58, 0x26, 0xb1, 0x06,
+ 0x8a, 0x46, 0x54, 0x43, 0xcc, 0x2d, 0xc9, 0x52, 0x87, 0x42, 0xe6, 0xb2, 0x64, 0x71, 0xa9, 0x6a,
+ 0xa0, 0xcf, 0xa6, 0x54, 0x5b, 0x59, 0xc2, 0x94, 0x16, 0xdf, 0x64, 0x73, 0x6c, 0x3b, 0x86, 0x92,
+ 0x43, 0x28, 0xef, 0x89, 0xe6, 0xaf, 0x2c, 0xcf, 0x82, 0xa8, 0xbc, 0x72, 0x65, 0xb2, 0x6f, 0xc6,
+ 0x17, 0xb6, 0xea, 0x44, 0x87, 0xe8, 0x03, 0x08, 0x05, 0x0a, 0xa3, 0x15, 0xb0, 0x2a, 0x54, 0x0c,
+ 0x84, 0x6d, 0x3c, 0x26, 0xdb, 0xcf, 0xa1, 0x14, 0x4f, 0x0f, 0xda, 0x84, 0x8c, 0xeb, 0x61, 0xc7,
+ 0x63, 0x2c, 0xcc, 0xc8, 0x7c, 0x80, 0x04, 0x48, 0x11, 0x53, 0x63, 0x55, 0x2e, 0x23, 0xd3, 0x7f,
+ 0xd1, 0x8f, 0xa6, 0x0b, 0x4e, 0xb1, 0x05, 0x7f, 0x34, 0xff, 0x45, 0x63, 0x9e, 0x67, 0xd7, 0xbd,
+ 0x7d, 0x1b, 0x56, 0x63, 0x0b, 0x38, 0xeb, 0xd4, 0xe5, 0x5f, 0xc0, 0xdb, 0x0b, 0x5d, 0xa3, 0x07,
+ 0xb0, 0x39, 0x31, 0x75, 0xd3, 0x23, 0x8e, 0xed, 0x10, 0xca, 0x58, 0x3e, 0x95, 0xf8, 0x9f, 0x95,
+ 0x25, 0x9c, 0x3b, 0x8e, 0xa2, 0xb9, 0x17, 0x79, 0x63, 0x32, 0x2f, 0xbc, 0x9a, 0xcf, 0xfd, 0x77,
+ 0x45, 0x78, 0xf1, 0xe2, 0xc5, 0x8b, 0x64, 0xf9, 0x37, 0x59, 0xd8, 0x5c, 0xb4, 0x67, 0x16, 0x6e,
+ 0xdf, 0x2d, 0xc8, 0x9a, 0x93, 0xf1, 0x09, 0x71, 0x58, 0x92, 0x32, 0xb2, 0x3f, 0x42, 0x55, 0xc8,
+ 0x18, 0xf8, 0x84, 0x18, 0x62, 0x7a, 0x27, 0xb1, 0x5b, 0xda, 0xbb, 0x76, 0xa6, 0x5d, 0x59, 0x69,
+ 0x52, 0x13, 0x99, 0x5b, 0xa2, 0xcf, 0x21, 0xed, 0x97, 0x68, 0xea, 0xe1, 0xea, 0xd9, 0x3c, 0xd0,
+ 0xbd, 0x24, 0x33, 0x3b, 0xf4, 0x0e, 0xe4, 0xe9, 0x5f, 0xce, 0x8d, 0x2c, 0x8b, 0x39, 0x47, 0x05,
+ 0x94, 0x17, 0x68, 0x1b, 0x72, 0x6c, 0x9b, 0x68, 0x24, 0x38, 0xda, 0xc2, 0x31, 0x25, 0x96, 0x46,
+ 0x06, 0x78, 0x62, 0x78, 0xca, 0x13, 0x6c, 0x4c, 0x08, 0x23, 0x7c, 0x5e, 0x2e, 0xfa, 0xc2, 0x9f,
+ 0x52, 0x19, 0xba, 0x00, 0x05, 0xbe, 0xab, 0x74, 0x53, 0x23, 0xcf, 0x58, 0xf5, 0xcc, 0xc8, 0x7c,
+ 0xa3, 0x35, 0xa8, 0x84, 0x4e, 0xff, 0xc8, 0xb5, 0xcc, 0x80, 0x9a, 0x6c, 0x0a, 0x2a, 0x60, 0xd3,
+ 0xdf, 0x9e, 0x2d, 0xdc, 0xef, 0x2d, 0x5e, 0xde, 0x2c, 0xa7, 0xca, 0x7f, 0x4a, 0x42, 0x9a, 0xd5,
+ 0x8b, 0x35, 0x28, 0xf4, 0x1f, 0x76, 0x25, 0xa5, 0xde, 0x39, 0x3e, 0x6c, 0x4a, 0x42, 0x02, 0x95,
+ 0x00, 0x98, 0xe0, 0x5e, 0xb3, 0x53, 0xed, 0x0b, 0xc9, 0x70, 0xdc, 0x68, 0xf7, 0xf7, 0x6f, 0x0a,
+ 0xa9, 0xd0, 0xe0, 0x98, 0x0b, 0xd2, 0x51, 0xc0, 0x8d, 0x3d, 0x21, 0x83, 0x04, 0x28, 0x72, 0x07,
+ 0x8d, 0x07, 0x52, 0x7d, 0xff, 0xa6, 0x90, 0x8d, 0x4b, 0x6e, 0xec, 0x09, 0x2b, 0x68, 0x15, 0xf2,
+ 0x4c, 0x72, 0xd8, 0xe9, 0x34, 0x85, 0x5c, 0xe8, 0xb3, 0xd7, 0x97, 0x1b, 0xed, 0x23, 0x21, 0x1f,
+ 0xfa, 0x3c, 0x92, 0x3b, 0xc7, 0x5d, 0x01, 0x42, 0x0f, 0x2d, 0xa9, 0xd7, 0xab, 0x1e, 0x49, 0x42,
+ 0x21, 0x44, 0x1c, 0x3e, 0xec, 0x4b, 0x3d, 0xa1, 0x18, 0x0b, 0xeb, 0xc6, 0x9e, 0xb0, 0x1a, 0x4e,
+ 0x21, 0xb5, 0x8f, 0x5b, 0x42, 0x09, 0xad, 0xc3, 0x2a, 0x9f, 0x22, 0x08, 0x62, 0x6d, 0x46, 0xb4,
+ 0x7f, 0x53, 0x10, 0xa6, 0x81, 0x70, 0x2f, 0xeb, 0x31, 0xc1, 0xfe, 0x4d, 0x01, 0x95, 0x6b, 0x90,
+ 0x61, 0xec, 0x42, 0x08, 0x4a, 0xcd, 0xea, 0xa1, 0xd4, 0x54, 0x3a, 0xdd, 0x7e, 0xa3, 0xd3, 0xae,
+ 0x36, 0x85, 0xc4, 0x54, 0x26, 0x4b, 0x3f, 0x39, 0x6e, 0xc8, 0x52, 0x5d, 0x48, 0x46, 0x65, 0x5d,
+ 0xa9, 0xda, 0x97, 0xea, 0x42, 0xaa, 0xac, 0xc2, 0xe6, 0xa2, 0x3a, 0xb9, 0x70, 0x67, 0x44, 0x3e,
+ 0x71, 0x72, 0xc9, 0x27, 0x66, 0xbe, 0xe6, 0x3e, 0xf1, 0xbf, 0x92, 0xb0, 0xb1, 0xe0, 0xac, 0x58,
+ 0x38, 0xc9, 0x0f, 0x21, 0xc3, 0x29, 0xca, 0x4f, 0xcf, 0x2b, 0x0b, 0x0f, 0x1d, 0x46, 0xd8, 0xb9,
+ 0x13, 0x94, 0xd9, 0x45, 0x3b, 0x88, 0xd4, 0x92, 0x0e, 0x82, 0xba, 0x98, 0xab, 0xe9, 0x3f, 0x9f,
+ 0xab, 0xe9, 0xfc, 0xd8, 0xdb, 0x3f, 0xcb, 0xb1, 0xc7, 0x64, 0xdf, 0xae, 0xb6, 0x67, 0x16, 0xd4,
+ 0xf6, 0xbb, 0xb0, 0x3e, 0xe7, 0xe8, 0xcc, 0x35, 0xf6, 0x97, 0x09, 0x10, 0x97, 0x25, 0xe7, 0x15,
+ 0x95, 0x2e, 0x19, 0xab, 0x74, 0x77, 0x67, 0x33, 0x78, 0x71, 0xf9, 0x47, 0x98, 0xfb, 0xd6, 0xdf,
+ 0x24, 0x60, 0x6b, 0x71, 0xa7, 0xb8, 0x30, 0x86, 0xcf, 0x21, 0x3b, 0x26, 0xde, 0xc8, 0x0a, 0xba,
+ 0xa5, 0x8f, 0x16, 0x9c, 0xc1, 0x54, 0x3d, 0xfb, 0xb1, 0x7d, 0xab, 0xe8, 0x21, 0x9e, 0x5a, 0xd6,
+ 0xee, 0xf1, 0x68, 0xe6, 0x22, 0xfd, 0x55, 0x12, 0xde, 0x5e, 0xe8, 0x7c, 0x61, 0xa0, 0xef, 0x01,
+ 0xe8, 0xa6, 0x3d, 0xf1, 0x78, 0x47, 0xc4, 0x0b, 0x6c, 0x9e, 0x49, 0x58, 0xf1, 0xa2, 0xc5, 0x73,
+ 0xe2, 0x85, 0xfa, 0x14, 0xd3, 0x03, 0x17, 0x31, 0xc0, 0x9d, 0x69, 0xa0, 0x69, 0x16, 0xe8, 0xfb,
+ 0x4b, 0x56, 0x3a, 0x47, 0xcc, 0x4f, 0x41, 0x50, 0x0d, 0x9d, 0x98, 0x9e, 0xe2, 0x7a, 0x0e, 0xc1,
+ 0x63, 0xdd, 0x1c, 0xb2, 0x13, 0x24, 0x77, 0x90, 0x19, 0x60, 0xc3, 0x25, 0xf2, 0x1a, 0x57, 0xf7,
+ 0x02, 0x2d, 0xb5, 0x60, 0x04, 0x72, 0x22, 0x16, 0xd9, 0x98, 0x05, 0x57, 0x87, 0x16, 0xe5, 0x5f,
+ 0xe7, 0xa1, 0x10, 0xe9, 0xab, 0xd1, 0x45, 0x28, 0x3e, 0xc2, 0x4f, 0xb0, 0x12, 0xdc, 0x95, 0x78,
+ 0x26, 0x0a, 0x54, 0xd6, 0xf5, 0xef, 0x4b, 0x9f, 0xc2, 0x26, 0x83, 0x58, 0x13, 0x8f, 0x38, 0x8a,
+ 0x6a, 0x60, 0xd7, 0x65, 0x49, 0xcb, 0x31, 0x28, 0xa2, 0xba, 0x0e, 0x55, 0xd5, 0x02, 0x0d, 0xba,
+ 0x05, 0x1b, 0xcc, 0x62, 0x3c, 0x31, 0x3c, 0xdd, 0x36, 0x88, 0x42, 0x6f, 0x6f, 0x2e, 0x3b, 0x49,
+ 0xc2, 0xc8, 0xd6, 0x29, 0xa2, 0xe5, 0x03, 0x68, 0x44, 0x2e, 0xaa, 0xc3, 0x7b, 0xcc, 0x6c, 0x48,
+ 0x4c, 0xe2, 0x60, 0x8f, 0x28, 0xe4, 0xeb, 0x09, 0x36, 0x5c, 0x05, 0x9b, 0x9a, 0x32, 0xc2, 0xee,
+ 0x48, 0xdc, 0xa4, 0x0e, 0x0e, 0x93, 0x62, 0x42, 0x3e, 0x4f, 0x81, 0x47, 0x3e, 0x4e, 0x62, 0xb0,
+ 0xaa, 0xa9, 0x7d, 0x81, 0xdd, 0x11, 0x3a, 0x80, 0x2d, 0xe6, 0xc5, 0xf5, 0x1c, 0xdd, 0x1c, 0x2a,
+ 0xea, 0x88, 0xa8, 0x8f, 0x95, 0x89, 0x37, 0xb8, 0x23, 0xbe, 0x13, 0x9d, 0x9f, 0x45, 0xd8, 0x63,
+ 0x98, 0x1a, 0x85, 0x1c, 0x7b, 0x83, 0x3b, 0xa8, 0x07, 0x45, 0xfa, 0x31, 0xc6, 0xfa, 0x73, 0xa2,
+ 0x0c, 0x2c, 0x87, 0x1d, 0x8d, 0xa5, 0x05, 0xa5, 0x29, 0x92, 0xc1, 0x4a, 0xc7, 0x37, 0x68, 0x59,
+ 0x1a, 0x39, 0xc8, 0xf4, 0xba, 0x92, 0x54, 0x97, 0x0b, 0x81, 0x97, 0x7b, 0x96, 0x43, 0x09, 0x35,
+ 0xb4, 0xc2, 0x04, 0x17, 0x38, 0xa1, 0x86, 0x56, 0x90, 0xde, 0x5b, 0xb0, 0xa1, 0xaa, 0x7c, 0xcd,
+ 0xba, 0xaa, 0xf8, 0x77, 0x2c, 0x57, 0x14, 0x62, 0xc9, 0x52, 0xd5, 0x23, 0x0e, 0xf0, 0x39, 0xee,
+ 0xa2, 0xcf, 0xe0, 0xed, 0x69, 0xb2, 0xa2, 0x86, 0xeb, 0x73, 0xab, 0x9c, 0x35, 0xbd, 0x05, 0x1b,
+ 0xf6, 0xe9, 0xbc, 0x21, 0x8a, 0xcd, 0x68, 0x9f, 0xce, 0x9a, 0xdd, 0x86, 0x4d, 0x7b, 0x64, 0xcf,
+ 0xdb, 0x5d, 0x8d, 0xda, 0x21, 0x7b, 0x64, 0xcf, 0x1a, 0x5e, 0x62, 0x17, 0x6e, 0x87, 0xa8, 0xd8,
+ 0x23, 0x9a, 0x78, 0x2e, 0x0a, 0x8f, 0x28, 0xd0, 0x75, 0x10, 0x54, 0x55, 0x21, 0x26, 0x3e, 0x31,
+ 0x88, 0x82, 0x1d, 0x62, 0x62, 0x57, 0xbc, 0x10, 0x05, 0x97, 0x54, 0x55, 0x62, 0xda, 0x2a, 0x53,
+ 0xa2, 0xab, 0xb0, 0x6e, 0x9d, 0x3c, 0x52, 0x39, 0x25, 0x15, 0xdb, 0x21, 0x03, 0xfd, 0x99, 0xf8,
+ 0x21, 0xcb, 0xef, 0x1a, 0x55, 0x30, 0x42, 0x76, 0x99, 0x18, 0x5d, 0x01, 0x41, 0x75, 0x47, 0xd8,
+ 0xb1, 0x59, 0x4d, 0x76, 0x6d, 0xac, 0x12, 0xf1, 0x12, 0x87, 0x72, 0x79, 0x3b, 0x10, 0xd3, 0x2d,
+ 0xe1, 0x3e, 0xd5, 0x07, 0x5e, 0xe0, 0xf1, 0x32, 0xdf, 0x12, 0x4c, 0xe6, 0x7b, 0xdb, 0x05, 0x81,
+ 0xa6, 0x22, 0x36, 0xf1, 0x2e, 0x83, 0x95, 0xec, 0x91, 0x1d, 0x9d, 0xf7, 0x03, 0x58, 0xa5, 0xc8,
+ 0xe9, 0xa4, 0x57, 0x78, 0x43, 0x66, 0x8f, 0x22, 0x33, 0xde, 0x84, 0x2d, 0x0a, 0x1a, 0x13, 0x0f,
+ 0x6b, 0xd8, 0xc3, 0x11, 0xf4, 0xc7, 0x0c, 0x4d, 0xf3, 0xde, 0xf2, 0x95, 0xb1, 0x38, 0x9d, 0xc9,
+ 0xc9, 0x69, 0xc8, 0xac, 0x4f, 0x78, 0x9c, 0x54, 0x16, 0x70, 0xeb, 0xb5, 0x35, 0xdd, 0xe5, 0x03,
+ 0x28, 0x46, 0x89, 0x8f, 0xf2, 0xc0, 0xa9, 0x2f, 0x24, 0x68, 0x17, 0x54, 0xeb, 0xd4, 0x69, 0xff,
+ 0xf2, 0x95, 0x24, 0x24, 0x69, 0x1f, 0xd5, 0x6c, 0xf4, 0x25, 0x45, 0x3e, 0x6e, 0xf7, 0x1b, 0x2d,
+ 0x49, 0x48, 0x45, 0x1b, 0xf6, 0xbf, 0x26, 0xa1, 0x14, 0xbf, 0x7b, 0xa1, 0x1f, 0xc0, 0xb9, 0xe0,
+ 0xa1, 0xc4, 0x25, 0x9e, 0xf2, 0x54, 0x77, 0xd8, 0x5e, 0x1c, 0x63, 0x7e, 0x2e, 0x86, 0x6c, 0xd8,
+ 0xf4, 0x51, 0x3d, 0xe2, 0x7d, 0xa9, 0x3b, 0x74, 0xa7, 0x8d, 0xb1, 0x87, 0x9a, 0x70, 0xc1, 0xb4,
+ 0x14, 0xd7, 0xc3, 0xa6, 0x86, 0x1d, 0x4d, 0x99, 0x3e, 0x51, 0x29, 0x58, 0x55, 0x89, 0xeb, 0x5a,
+ 0xfc, 0x0c, 0x0c, 0xbd, 0xbc, 0x6b, 0x5a, 0x3d, 0x1f, 0x3c, 0x3d, 0x1c, 0xaa, 0x3e, 0x74, 0x86,
+ 0xb9, 0xa9, 0x65, 0xcc, 0x7d, 0x07, 0xf2, 0x63, 0x6c, 0x2b, 0xc4, 0xf4, 0x9c, 0x53, 0xd6, 0x71,
+ 0xe7, 0xe4, 0xdc, 0x18, 0xdb, 0x12, 0x1d, 0xbf, 0x99, 0x8b, 0xcf, 0x3f, 0x52, 0x50, 0x8c, 0x76,
+ 0xdd, 0xf4, 0x12, 0xa3, 0xb2, 0x03, 0x2a, 0xc1, 0x4a, 0xd8, 0x07, 0x2f, 0xed, 0xd1, 0x2b, 0x35,
+ 0x7a, 0x72, 0x1d, 0x64, 0x79, 0x2f, 0x2c, 0x73, 0x4b, 0xda, 0x35, 0x50, 0x6a, 0x11, 0xde, 0x7b,
+ 0xe4, 0x64, 0x7f, 0x84, 0x8e, 0x20, 0xfb, 0xc8, 0x65, 0xbe, 0xb3, 0xcc, 0xf7, 0x87, 0x2f, 0xf7,
+ 0x7d, 0xbf, 0xc7, 0x9c, 0xe7, 0xef, 0xf7, 0x94, 0x76, 0x47, 0x6e, 0x55, 0x9b, 0xb2, 0x6f, 0x8e,
+ 0xce, 0x43, 0xda, 0xc0, 0xcf, 0x4f, 0xe3, 0x67, 0x1c, 0x13, 0x9d, 0x35, 0xf1, 0xe7, 0x21, 0xfd,
+ 0x94, 0xe0, 0xc7, 0xf1, 0x93, 0x85, 0x89, 0x5e, 0x23, 0xf5, 0xaf, 0x43, 0x86, 0xe5, 0x0b, 0x01,
+ 0xf8, 0x19, 0x13, 0xde, 0x42, 0x39, 0x48, 0xd7, 0x3a, 0x32, 0xa5, 0xbf, 0x00, 0x45, 0x2e, 0x55,
+ 0xba, 0x0d, 0xa9, 0x26, 0x09, 0xc9, 0xf2, 0x2d, 0xc8, 0xf2, 0x24, 0xd0, 0xad, 0x11, 0xa6, 0x41,
+ 0x78, 0xcb, 0x1f, 0xfa, 0x3e, 0x12, 0x81, 0xf6, 0xb8, 0x75, 0x28, 0xc9, 0x42, 0x32, 0xfa, 0x79,
+ 0x5d, 0x28, 0x46, 0x1b, 0xee, 0x37, 0xc3, 0xa9, 0xbf, 0x24, 0xa0, 0x10, 0x69, 0xa0, 0x69, 0xe7,
+ 0x83, 0x0d, 0xc3, 0x7a, 0xaa, 0x60, 0x43, 0xc7, 0xae, 0x4f, 0x0a, 0x60, 0xa2, 0x2a, 0x95, 0x9c,
+ 0xf5, 0xa3, 0xbd, 0x91, 0xe0, 0x7f, 0x9f, 0x00, 0x61, 0xb6, 0x77, 0x9d, 0x09, 0x30, 0xf1, 0xbd,
+ 0x06, 0xf8, 0xbb, 0x04, 0x94, 0xe2, 0x0d, 0xeb, 0x4c, 0x78, 0x17, 0xbf, 0xd7, 0xf0, 0xfe, 0x99,
+ 0x84, 0xd5, 0x58, 0x9b, 0x7a, 0xd6, 0xe8, 0xbe, 0x86, 0x75, 0x5d, 0x23, 0x63, 0xdb, 0xf2, 0x88,
+ 0xa9, 0x9e, 0x2a, 0x06, 0x79, 0x42, 0x0c, 0xb1, 0xcc, 0x0a, 0xc5, 0xf5, 0x97, 0x37, 0xc2, 0x95,
+ 0xc6, 0xd4, 0xae, 0x49, 0xcd, 0x0e, 0x36, 0x1a, 0x75, 0xa9, 0xd5, 0xed, 0xf4, 0xa5, 0x76, 0xed,
+ 0xa1, 0x72, 0xdc, 0xfe, 0x71, 0xbb, 0xf3, 0x65, 0x5b, 0x16, 0xf4, 0x19, 0xd8, 0x6b, 0xdc, 0xea,
+ 0x5d, 0x10, 0x66, 0x83, 0x42, 0xe7, 0x60, 0x51, 0x58, 0xc2, 0x5b, 0x68, 0x03, 0xd6, 0xda, 0x1d,
+ 0xa5, 0xd7, 0xa8, 0x4b, 0x8a, 0x74, 0xef, 0x9e, 0x54, 0xeb, 0xf7, 0xf8, 0xd3, 0x46, 0x88, 0xee,
+ 0xc7, 0x37, 0xf5, 0x6f, 0x53, 0xb0, 0xb1, 0x20, 0x12, 0x54, 0xf5, 0x2f, 0x25, 0xfc, 0x9e, 0xf4,
+ 0xc9, 0x59, 0xa2, 0xaf, 0xd0, 0xae, 0xa0, 0x8b, 0x1d, 0xcf, 0xbf, 0xc3, 0x5c, 0x01, 0x9a, 0x25,
+ 0xd3, 0xd3, 0x07, 0x3a, 0x71, 0xfc, 0x97, 0x20, 0x7e, 0x53, 0x59, 0x9b, 0xca, 0xf9, 0x63, 0xd0,
+ 0xc7, 0x80, 0x6c, 0xcb, 0xd5, 0x3d, 0xfd, 0x09, 0x51, 0x74, 0x33, 0x78, 0x36, 0xa2, 0x37, 0x97,
+ 0xb4, 0x2c, 0x04, 0x9a, 0x86, 0xe9, 0x85, 0x68, 0x93, 0x0c, 0xf1, 0x0c, 0x9a, 0x16, 0xf0, 0x94,
+ 0x2c, 0x04, 0x9a, 0x10, 0x7d, 0x11, 0x8a, 0x9a, 0x35, 0xa1, 0xed, 0x1c, 0xc7, 0xd1, 0xf3, 0x22,
+ 0x21, 0x17, 0xb8, 0x2c, 0x84, 0xf8, 0x8d, 0xfa, 0xf4, 0xbd, 0xaa, 0x28, 0x17, 0xb8, 0x8c, 0x43,
+ 0x2e, 0xc3, 0x1a, 0x1e, 0x0e, 0x1d, 0xea, 0x3c, 0x70, 0xc4, 0xaf, 0x1e, 0xa5, 0x50, 0xcc, 0x80,
+ 0xdb, 0xf7, 0x21, 0x17, 0xe4, 0x81, 0x1e, 0xc9, 0x34, 0x13, 0x8a, 0xcd, 0xef, 0xd3, 0xc9, 0xdd,
+ 0xbc, 0x9c, 0x33, 0x03, 0xe5, 0x45, 0x28, 0xea, 0xae, 0x32, 0x7d, 0x7e, 0x4f, 0xee, 0x24, 0x77,
+ 0x73, 0x72, 0x41, 0x77, 0xc3, 0xa7, 0xcb, 0xf2, 0x37, 0x49, 0x28, 0xc5, 0x7f, 0x3e, 0x40, 0x75,
+ 0xc8, 0x19, 0x96, 0x8a, 0x19, 0xb5, 0xf8, 0x6f, 0x57, 0xbb, 0xaf, 0xf8, 0xc5, 0xa1, 0xd2, 0xf4,
+ 0xf1, 0x72, 0x68, 0xb9, 0xfd, 0xb7, 0x04, 0xe4, 0x02, 0x31, 0xda, 0x82, 0xb4, 0x8d, 0xbd, 0x11,
+ 0x73, 0x97, 0x39, 0x4c, 0x0a, 0x09, 0x99, 0x8d, 0xa9, 0xdc, 0xb5, 0xb1, 0xc9, 0x28, 0xe0, 0xcb,
+ 0xe9, 0x98, 0x7e, 0x57, 0x83, 0x60, 0x8d, 0xdd, 0x6b, 0xac, 0xf1, 0x98, 0x98, 0x9e, 0x1b, 0x7c,
+ 0x57, 0x5f, 0x5e, 0xf3, 0xc5, 0xe8, 0x1a, 0xac, 0x7b, 0x0e, 0xd6, 0x8d, 0x18, 0x36, 0xcd, 0xb0,
+ 0x42, 0xa0, 0x08, 0xc1, 0x07, 0x70, 0x3e, 0xf0, 0xab, 0x11, 0x0f, 0xab, 0x23, 0xa2, 0x4d, 0x8d,
+ 0xb2, 0xec, 0xfd, 0xe2, 0x9c, 0x0f, 0xa8, 0xfb, 0xfa, 0xc0, 0xb6, 0xfc, 0xf7, 0x04, 0xac, 0x07,
+ 0x37, 0x31, 0x2d, 0x4c, 0x56, 0x0b, 0x00, 0x9b, 0xa6, 0xe5, 0x45, 0xd3, 0x35, 0x4f, 0xe5, 0x39,
+ 0xbb, 0x4a, 0x35, 0x34, 0x92, 0x23, 0x0e, 0xb6, 0xc7, 0x00, 0x53, 0xcd, 0xd2, 0xb4, 0x5d, 0x80,
+ 0x82, 0xff, 0xdb, 0x10, 0xfb, 0x81, 0x91, 0xdf, 0xdd, 0x81, 0x8b, 0xe8, 0x95, 0x0d, 0x6d, 0x42,
+ 0xe6, 0x84, 0x0c, 0x75, 0xd3, 0x7f, 0xf1, 0xe5, 0x83, 0xe0, 0x85, 0x25, 0x1d, 0xbe, 0xb0, 0x1c,
+ 0xfe, 0x0c, 0x36, 0x54, 0x6b, 0x3c, 0x1b, 0xee, 0xa1, 0x30, 0xf3, 0x7e, 0xe0, 0x7e, 0x91, 0xf8,
+ 0x0a, 0xa6, 0x2d, 0xe6, 0xff, 0x12, 0x89, 0x3f, 0x24, 0x53, 0x47, 0xdd, 0xc3, 0x3f, 0x26, 0xb7,
+ 0x8f, 0xb8, 0x69, 0x37, 0x58, 0xa9, 0x4c, 0x06, 0x06, 0x51, 0x69, 0xf4, 0xff, 0x0f, 0x00, 0x00,
+ 0xff, 0xff, 0x88, 0x17, 0xc1, 0xbe, 0x38, 0x1d, 0x00, 0x00,
}
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_gostring.gen.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_gostring.gen.go
index ec6eb168d6..165b2110df 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_gostring.gen.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_gostring.gen.go
@@ -3,14 +3,16 @@
package descriptor
-import fmt "fmt"
-import strings "strings"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import sort "sort"
-import strconv "strconv"
-import reflect "reflect"
-import proto "github.com/gogo/protobuf/proto"
-import math "math"
+import (
+ fmt "fmt"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+ reflect "reflect"
+ sort "sort"
+ strconv "strconv"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -358,7 +360,7 @@ func (this *FileOptions) GoString() string {
if this == nil {
return "nil"
}
- s := make([]string, 0, 23)
+ s := make([]string, 0, 25)
s = append(s, "&descriptor.FileOptions{")
if this.JavaPackage != nil {
s = append(s, "JavaPackage: "+valueToGoStringDescriptor(this.JavaPackage, "string")+",\n")
@@ -414,6 +416,12 @@ func (this *FileOptions) GoString() string {
if this.PhpNamespace != nil {
s = append(s, "PhpNamespace: "+valueToGoStringDescriptor(this.PhpNamespace, "string")+",\n")
}
+ if this.PhpMetadataNamespace != nil {
+ s = append(s, "PhpMetadataNamespace: "+valueToGoStringDescriptor(this.PhpMetadataNamespace, "string")+",\n")
+ }
+ if this.RubyPackage != nil {
+ s = append(s, "RubyPackage: "+valueToGoStringDescriptor(this.RubyPackage, "string")+",\n")
+ }
if this.UninterpretedOption != nil {
s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n")
}
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/generator.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/generator.go
index 31ef6c5d1d..d05574404c 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/generator.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/generator.go
@@ -48,6 +48,7 @@ import (
"crypto/sha256"
"encoding/hex"
"fmt"
+ "go/ast"
"go/build"
"go/parser"
"go/printer"
@@ -306,7 +307,6 @@ type FileDescriptor struct {
// This is used for supporting public imports.
exported map[Object][]symbol
- fingerprint string // Fingerprint of this file's contents.
importPath GoImportPath // Import path of this file's package.
packageName GoPackageName // Name of this file's Go package.
@@ -317,8 +317,8 @@ type FileDescriptor struct {
// to the compressed bytes of this descriptor. It is not exported, so
// it is only valid inside the generated package.
func (d *FileDescriptor) VarName() string {
- name := strings.Map(badToUnderscore, baseName(d.GetName()))
- return fmt.Sprintf("fileDescriptor_%s_%s", name, d.fingerprint)
+ h := sha256.Sum256([]byte(d.GetName()))
+ return fmt.Sprintf("fileDescriptor_%s", hex.EncodeToString(h[:8]))
}
// goPackageOption interprets the file's go_package option.
@@ -375,7 +375,7 @@ func (d *FileDescriptor) addExport(obj Object, sym symbol) {
type symbol interface {
// GenerateAlias should generate an appropriate alias
// for the symbol from the named package.
- GenerateAlias(g *Generator, pkg GoPackageName)
+ GenerateAlias(g *Generator, filename string, pkg GoPackageName)
}
type messageSymbol struct {
@@ -391,7 +391,8 @@ type getterSymbol struct {
genType bool // whether typ contains a generated type (message/group/enum)
}
-func (ms *messageSymbol) GenerateAlias(g *Generator, pkg GoPackageName) {
+func (ms *messageSymbol) GenerateAlias(g *Generator, filename string, pkg GoPackageName) {
+ g.P("// ", ms.sym, " from public import ", filename)
g.P("type ", ms.sym, " = ", pkg, ".", ms.sym)
for _, name := range ms.oneofTypes {
g.P("type ", name, " = ", pkg, ".", name)
@@ -403,8 +404,9 @@ type enumSymbol struct {
proto3 bool // Whether this came from a proto3 file.
}
-func (es enumSymbol) GenerateAlias(g *Generator, pkg GoPackageName) {
+func (es enumSymbol) GenerateAlias(g *Generator, filename string, pkg GoPackageName) {
s := es.name
+ g.P("// ", s, " from public import ", filename)
g.P("type ", s, " = ", pkg, ".", s)
g.P("var ", s, "_name = ", pkg, ".", s, "_name")
g.P("var ", s, "_value = ", pkg, ".", s, "_value")
@@ -416,7 +418,7 @@ type constOrVarSymbol struct {
cast string // if non-empty, a type cast is required (used for enums)
}
-func (cs constOrVarSymbol) GenerateAlias(g *Generator, pkg GoPackageName) {
+func (cs constOrVarSymbol) GenerateAlias(g *Generator, filename string, pkg GoPackageName) {
v := string(pkg) + "." + cs.sym
if cs.cast != "" {
v = cs.cast + "(" + v + ")"
@@ -453,6 +455,7 @@ type Generator struct {
packageNames map[GoImportPath]GoPackageName // Imported package names in the current file.
usedPackages map[GoImportPath]bool // Packages used in current file.
usedPackageNames map[GoPackageName]bool // Package names used in the current file.
+ addedImports map[GoImportPath]bool // Additional imports to emit.`
typeNameToObject map[string]Object // Key is a fully-qualified name in input syntax.
init []string // Lines to emit in the init function.
indent string
@@ -580,7 +583,7 @@ func (g *Generator) GoPackageName(importPath GoImportPath) GoPackageName {
return name
}
name := cleanPackageName(baseName(string(importPath)))
- for i, orig := 1, name; g.usedPackageNames[name]; i++ {
+ for i, orig := 1, name; g.usedPackageNames[name] || isGoPredeclaredIdentifier[string(name)]; i++ {
name = orig + GoPackageName(strconv.Itoa(i))
}
if g.packageNames == nil {
@@ -594,6 +597,13 @@ func (g *Generator) GoPackageName(importPath GoImportPath) GoPackageName {
return name
}
+// AddImport adds a package to the generated file's import section.
+// It returns the name used for the package.
+func (g *Generator) AddImport(importPath GoImportPath) GoPackageName {
+ g.addedImports[importPath] = true
+ return g.GoPackageName(importPath)
+}
+
var globalPackageNames = map[GoPackageName]bool{
"fmt": true,
"math": true,
@@ -639,6 +649,48 @@ var isGoKeyword = map[string]bool{
"var": true,
}
+var isGoPredeclaredIdentifier = map[string]bool{
+ "append": true,
+ "bool": true,
+ "byte": true,
+ "cap": true,
+ "close": true,
+ "complex": true,
+ "complex128": true,
+ "complex64": true,
+ "copy": true,
+ "delete": true,
+ "error": true,
+ "false": true,
+ "float32": true,
+ "float64": true,
+ "imag": true,
+ "int": true,
+ "int16": true,
+ "int32": true,
+ "int64": true,
+ "int8": true,
+ "iota": true,
+ "len": true,
+ "make": true,
+ "new": true,
+ "nil": true,
+ "panic": true,
+ "print": true,
+ "println": true,
+ "real": true,
+ "recover": true,
+ "rune": true,
+ "string": true,
+ "true": true,
+ "uint": true,
+ "uint16": true,
+ "uint32": true,
+ "uint64": true,
+ "uint8": true,
+ "uintptr": true,
+}
+
func cleanPackageName(name string) GoPackageName {
name = strings.Map(badToUnderscore, name)
// Identifier must not be keyword: insert _.
@@ -779,27 +831,10 @@ func (g *Generator) WrapTypes() {
if fd == nil {
g.Fail("could not find file named", fileName)
}
- fingerprint, err := fingerprintProto(fd.FileDescriptorProto)
- if err != nil {
- g.Error(err)
- }
- fd.fingerprint = fingerprint
g.genFiles = append(g.genFiles, fd)
}
}
-// fingerprintProto returns a fingerprint for a message.
-// The fingerprint is intended to prevent conflicts between generated fileds,
-// not to provide cryptographic security.
-func fingerprintProto(m proto.Message) (string, error) {
- b, err := proto.Marshal(m)
- if err != nil {
- return "", err
- }
- h := sha256.Sum256(b)
- return hex.EncodeToString(h[:8]), nil
-}
-
// Scan the descriptors in this file. For each one, build the slice of nested descriptors
func (g *Generator) buildNestedDescriptors(descs []*Descriptor) {
for _, desc := range descs {
@@ -993,39 +1028,6 @@ func (g *Generator) ObjectNamed(typeName string) Object {
if !ok {
g.Fail("can't find object with type", typeName)
}
-
- // If the file of this object isn't a direct dependency of the current file,
- // or in the current file, then this object has been publicly imported into
- // a dependency of the current file.
- // We should return the ImportedDescriptor object for it instead.
- direct := *o.File().Name == *g.file.Name
- if !direct {
- for _, dep := range g.file.Dependency {
- if *g.fileByName(dep).Name == *o.File().Name {
- direct = true
- break
- }
- }
- }
- if !direct {
- found := false
- Loop:
- for _, dep := range g.file.Dependency {
- df := g.fileByName(*g.fileByName(dep).Name)
- for _, td := range df.imp {
- if td.o == o {
- // Found it!
- o = td
- found = true
- break Loop
- }
- }
- }
- if !found {
- log.Printf("protoc-gen-gogo: WARNING: failed finding publicly imported dependency for %v, used in %v", typeName, *g.file.Name)
- }
- }
-
return o
}
@@ -1119,7 +1121,7 @@ func (g *Generator) addInitf(stmt string, a ...interface{}) {
}
func (g *Generator) PrintImport(alias GoPackageName, pkg GoImportPath) {
- statement := "import " + string(alias) + " " + strconv.Quote(string(pkg))
+ statement := string(alias) + " " + strconv.Quote(string(pkg))
if g.writtenImports[statement] {
return
}
@@ -1189,6 +1191,7 @@ func (g *Generator) generate(file *FileDescriptor) {
g.usedPackages = make(map[GoImportPath]bool)
g.packageNames = make(map[GoImportPath]GoPackageName)
g.usedPackageNames = make(map[GoPackageName]bool)
+ g.addedImports = make(map[GoImportPath]bool)
for name := range globalPackageNames {
g.usedPackageNames[name] = true
}
@@ -1222,12 +1225,11 @@ func (g *Generator) generate(file *FileDescriptor) {
g.generateExtension(ext)
}
g.generateInitFunction()
+ g.generateFileDescriptor(file)
// Run the plugins before the imports so we know which imports are necessary.
g.runPlugins(file)
- g.generateFileDescriptor(file)
-
// Generate header and imports last, though they appear first in the output.
rem := g.Buffer
remAnno := g.annotations
@@ -1253,7 +1255,7 @@ func (g *Generator) generate(file *FileDescriptor) {
// make a copy independent of g; we'll need it after Reset.
original = append([]byte(nil), original...)
}
- ast, err := parser.ParseFile(fset, "", original, parser.ParseComments)
+ fileAST, err := parser.ParseFile(fset, "", original, parser.ParseComments)
if err != nil {
// Print out the bad code with line numbers.
// This should never happen in practice, but it can while changing generated code,
@@ -1269,8 +1271,9 @@ func (g *Generator) generate(file *FileDescriptor) {
g.Fail("bad Go source code was generated:", err.Error(), "\n"+src.String())
}
}
+ ast.SortImports(fset, fileAST)
g.Reset()
- err = (&printer.Config{Mode: printer.TabIndent | printer.UseSpaces, Tabwidth: 8}).Fprint(g, fset, ast)
+ err = (&printer.Config{Mode: printer.TabIndent | printer.UseSpaces, Tabwidth: 8}).Fprint(g, fset, fileAST)
if err != nil {
g.Fail("generated Go source code could not be reformatted:", err.Error())
}
@@ -1299,28 +1302,10 @@ func (g *Generator) generateHeader() {
g.P("// source: ", *g.file.Name)
}
g.P()
-
- importPath, _, _ := g.file.goPackageOption()
- if importPath == "" {
- g.P("package ", g.file.packageName)
- } else {
- g.P("package ", g.file.packageName, " // import ", GoImportPath(g.ImportPrefix)+importPath)
- }
+ g.PrintComments(strconv.Itoa(packagePath))
+ g.P()
+ g.P("package ", g.file.packageName)
g.P()
-
- if loc, ok := g.file.comments[strconv.Itoa(packagePath)]; ok {
- g.P("/*")
- // not using g.PrintComments because this is a /* */ comment block.
- text := strings.TrimSuffix(loc.GetLeadingComments(), "\n")
- for _, line := range strings.Split(text, "\n") {
- line = strings.TrimPrefix(line, " ")
- // ensure we don't escape from the block comment
- line = strings.Replace(line, "*/", "* /", -1)
- g.P(line)
- }
- g.P("*/")
- g.P()
- }
}
// deprecationComment is the standard comment added to deprecated
@@ -1351,7 +1336,7 @@ func (g *Generator) makeComments(path string) (string, bool) {
w := new(bytes.Buffer)
nl := ""
for _, line := range strings.Split(strings.TrimSuffix(loc.GetLeadingComments(), "\n"), "\n") {
- fmt.Fprintf(w, "%s// %s", nl, strings.TrimPrefix(line, " "))
+ fmt.Fprintf(w, "%s//%s", nl, line)
nl = "\n"
}
return w.String(), true
@@ -1385,25 +1370,7 @@ func (g *Generator) weak(i int32) bool {
// Generate the imports
func (g *Generator) generateImports() {
- // We almost always need a proto import. Rather than computing when we
- // do, which is tricky when there's a plugin, just import it and
- // reference it later. The same argument applies to the fmt and math packages.
- if gogoproto.ImportsGoGoProto(g.file.FileDescriptorProto) {
- g.PrintImport(GoPackageName(g.Pkg["proto"]), GoImportPath(g.ImportPrefix)+GoImportPath("github.com/gogo/protobuf/proto"))
- if gogoproto.RegistersGolangProto(g.file.FileDescriptorProto) {
- g.PrintImport(GoPackageName(g.Pkg["golang_proto"]), GoImportPath(g.ImportPrefix)+GoImportPath("github.com/golang/protobuf/proto"))
- }
- } else {
- g.PrintImport(GoPackageName(g.Pkg["proto"]), GoImportPath(g.ImportPrefix)+GoImportPath("github.com/golang/protobuf/proto"))
- }
- g.PrintImport(GoPackageName(g.Pkg["fmt"]), "fmt")
- g.PrintImport(GoPackageName(g.Pkg["math"]), "math")
-
- var (
- imports = make(map[GoImportPath]bool)
- strongImports = make(map[GoImportPath]bool)
- importPaths []string
- )
+ imports := make(map[GoImportPath]GoPackageName)
for i, s := range g.file.Dependency {
fd := g.fileByName(s)
importPath := fd.importPath
@@ -1411,44 +1378,56 @@ func (g *Generator) generateImports() {
if importPath == g.file.importPath {
continue
}
- if !imports[importPath] {
- importPaths = append(importPaths, string(importPath))
- }
- imports[importPath] = true
- if !g.weak(int32(i)) {
- strongImports[importPath] = true
+ // Do not import weak imports.
+ if g.weak(int32(i)) {
+ continue
}
- }
- sort.Strings(importPaths)
- for i := range importPaths {
- importPath := GoImportPath(importPaths[i])
- packageName := g.GoPackageName(importPath)
- fullPath := GoImportPath(g.ImportPrefix) + importPath
- // Skip weak imports.
- if !strongImports[importPath] {
- g.P("// skipping weak import ", packageName, " ", fullPath)
+ // Do not import a package twice.
+ if _, ok := imports[importPath]; ok {
continue
}
// We need to import all the dependencies, even if we don't reference them,
// because other code and tools depend on having the full transitive closure
// of protocol buffer types in the binary.
- if _, ok := g.usedPackages[importPath]; ok {
- g.PrintImport(packageName, fullPath)
- } else {
- g.P("import _ ", fullPath)
+ packageName := g.GoPackageName(importPath)
+ if _, ok := g.usedPackages[importPath]; !ok {
+ packageName = "_"
}
+ imports[importPath] = packageName
}
- g.P()
+ for importPath := range g.addedImports {
+ imports[importPath] = g.GoPackageName(importPath)
+ }
+ // We almost always need a proto import. Rather than computing when we
+ // do, which is tricky when there's a plugin, just import it and
+ // reference it later. The same argument applies to the fmt and math packages.
+ g.P("import (")
+ g.PrintImport(GoPackageName(g.Pkg["fmt"]), "fmt")
+ g.PrintImport(GoPackageName(g.Pkg["math"]), "math")
+ if gogoproto.ImportsGoGoProto(g.file.FileDescriptorProto) {
+ g.PrintImport(GoPackageName(g.Pkg["proto"]), GoImportPath(g.ImportPrefix)+GoImportPath("github.com/gogo/protobuf/proto"))
+ if gogoproto.RegistersGolangProto(g.file.FileDescriptorProto) {
+ g.PrintImport(GoPackageName(g.Pkg["golang_proto"]), GoImportPath(g.ImportPrefix)+GoImportPath("github.com/golang/protobuf/proto"))
+ }
+ } else {
+ g.PrintImport(GoPackageName(g.Pkg["proto"]), GoImportPath(g.ImportPrefix)+GoImportPath("github.com/golang/protobuf/proto"))
+ }
+ for importPath, packageName := range imports {
+ g.P(packageName, " ", GoImportPath(g.ImportPrefix)+importPath)
+ }
+ // Custom gogo imports
for _, s := range g.customImports {
s1 := strings.Map(badToUnderscore, s)
g.PrintImport(GoPackageName(s1), GoImportPath(s))
}
- g.P()
- // TODO: may need to worry about uniqueness across plugins
+ // gogo plugin imports
+ // TODO: may need to worry about uniqueness across plugins and could change this
+ // to use the `addedImports` technique
for _, p := range plugins {
p.GenerateImports(g.file)
- g.P()
}
+ g.P(")")
+
g.P("// Reference imports to suppress errors if they are not otherwise used.")
g.P("var _ = ", g.Pkg["proto"], ".Marshal")
if gogoproto.ImportsGoGoProto(g.file.FileDescriptorProto) && gogoproto.RegistersGolangProto(g.file.FileDescriptorProto) {
@@ -1466,26 +1445,20 @@ func (g *Generator) generateImports() {
}
func (g *Generator) generateImported(id *ImportedDescriptor) {
- tn := id.TypeName()
- sn := tn[len(tn)-1]
df := id.o.File()
filename := *df.Name
if df.importPath == g.file.importPath {
// Don't generate type aliases for files in the same Go package as this one.
- g.P("// Ignoring public import of ", sn, " from ", filename)
- g.P()
return
}
if !supportTypeAliases {
g.Fail(fmt.Sprintf("%s: public imports require at least go1.9", filename))
}
- g.P("// ", sn, " from public import ", filename)
g.usedPackages[df.importPath] = true
for _, sym := range df.exported[id.o] {
- sym.GenerateAlias(g, g.GoPackageName(df.importPath))
+ sym.GenerateAlias(g, filename, g.GoPackageName(df.importPath))
}
-
g.P()
}
@@ -1532,7 +1505,7 @@ func (g *Generator) generateEnum(enum *EnumDescriptor) {
g.Out()
g.P(")")
}
-
+ g.P()
g.P("var ", ccTypeName, "_name = map[int32]string{")
g.In()
generated := make(map[int32]bool) // avoid duplicate values
@@ -1546,6 +1519,7 @@ func (g *Generator) generateEnum(enum *EnumDescriptor) {
}
g.Out()
g.P("}")
+ g.P()
g.P("var ", ccTypeName, "_value = map[string]int32{")
g.In()
for _, e := range enum.Value {
@@ -1553,6 +1527,7 @@ func (g *Generator) generateEnum(enum *EnumDescriptor) {
}
g.Out()
g.P("}")
+ g.P()
if !enum.proto3() {
g.P("func (x ", ccTypeName, ") Enum() *", ccTypeName, " {")
@@ -1562,6 +1537,7 @@ func (g *Generator) generateEnum(enum *EnumDescriptor) {
g.P("return p")
g.Out()
g.P("}")
+ g.P()
}
if gogoproto.IsGoEnumStringer(g.file.FileDescriptorProto, enum.EnumDescriptorProto) {
@@ -1570,6 +1546,7 @@ func (g *Generator) generateEnum(enum *EnumDescriptor) {
g.P("return ", g.Pkg["proto"], ".EnumName(", ccTypeName, "_name, int32(x))")
g.Out()
g.P("}")
+ g.P()
}
if !enum.proto3() && !gogoproto.IsGoEnumStringer(g.file.FileDescriptorProto, enum.EnumDescriptorProto) {
@@ -1578,6 +1555,7 @@ func (g *Generator) generateEnum(enum *EnumDescriptor) {
g.P("return ", g.Pkg["proto"], ".MarshalJSONEnum(", ccTypeName, "_name, int32(x))")
g.Out()
g.P("}")
+ g.P()
}
if !enum.proto3() {
g.P("func (x *", ccTypeName, ") UnmarshalJSON(data []byte) error {")
@@ -1592,6 +1570,7 @@ func (g *Generator) generateEnum(enum *EnumDescriptor) {
g.P("return nil")
g.Out()
g.P("}")
+ g.P()
}
var indexes []string
@@ -1605,11 +1584,13 @@ func (g *Generator) generateEnum(enum *EnumDescriptor) {
g.P("return ", g.file.VarName(), ", []int{", strings.Join(indexes, ", "), "}")
g.Out()
g.P("}")
+ g.P()
if enum.file.GetPackage() == "google.protobuf" && enum.GetName() == "NullValue" {
g.P("func (", ccTypeName, `) XXX_WellKnownType() string { return "`, enum.GetName(), `" }`)
+ g.P()
}
- g.P()
+ g.generateEnumRegistration(enum)
}
// The tag is a string like "varint,2,opt,name=fieldname,def=7" that
@@ -1666,6 +1647,18 @@ func (g *Generator) goTag(message *Descriptor, field *descriptor.FieldDescriptor
g.Fail("unknown enum type", CamelCaseSlice(obj.TypeName()))
}
defaultValue = enum.integerValueAsString(defaultValue)
+ case descriptor.FieldDescriptorProto_TYPE_FLOAT:
+ if def := defaultValue; def != "inf" && def != "-inf" && def != "nan" {
+ if f, err := strconv.ParseFloat(defaultValue, 32); err == nil {
+ defaultValue = fmt.Sprint(float32(f))
+ }
+ }
+ case descriptor.FieldDescriptorProto_TYPE_DOUBLE:
+ if def := defaultValue; def != "inf" && def != "-inf" && def != "nan" {
+ if f, err := strconv.ParseFloat(defaultValue, 64); err == nil {
+ defaultValue = fmt.Sprint(f)
+ }
+ }
}
defaultValue = ",def=" + defaultValue
}
@@ -1703,7 +1696,7 @@ func (g *Generator) goTag(message *Descriptor, field *descriptor.FieldDescriptor
name = name[i+1:]
}
}
- if json := field.GetJsonName(); json != "" && json != name {
+ if json := field.GetJsonName(); field.Extendee == nil && json != "" && json != name {
// TODO: escaping might be needed, in which case
// perhaps this should be in its own "json" tag.
name += ",json=" + json
@@ -2002,11 +1995,16 @@ func (g *Generator) GoMapType(d *Descriptor, field *descriptor.FieldDescriptorPr
}
func (g *Generator) RecordTypeUse(t string) {
- if _, ok := g.typeNameToObject[t]; ok {
- // Call ObjectNamed to get the true object to record the use.
- obj := g.ObjectNamed(t)
- g.usedPackages[obj.GoImportPath()] = true
+ if _, ok := g.typeNameToObject[t]; !ok {
+ return
+ }
+ importPath := g.ObjectNamed(t).GoImportPath()
+ if importPath == g.outputImportPath {
+ // Don't record use of objects in our package.
+ return
}
+ g.AddImport(importPath)
+ g.usedPackages[importPath] = true
}
// Method names that may be generated. Fields with these names get an
@@ -2142,7 +2140,7 @@ func (g *Generator) defaultConstantName(goMessageType, protoFieldName string) st
// oneofField - field containing list of subfields:
// - oneofSubField - a field within the oneof
-// msgCtx contais the context for the generator functions.
+// msgCtx contains the context for the generator functions.
type msgCtx struct {
goName string // Go struct name of the message, e.g. MessageName
message *Descriptor // The descriptor for the message
@@ -2233,6 +2231,7 @@ type oneofSubField struct {
fieldNumber int // Actual field number, as defined in proto, e.g. 12
getterDef string // Default for getters, e.g. "nil", `""` or "Default_MessageType_FieldName"
protoDef string // Default value as defined in the proto file, e.g "yoshi" or "5"
+ deprecated string // Deprecation comment, if any.
wireType string // gogo. We can set this on creation, instead of using a function
}
@@ -2662,11 +2661,14 @@ func (f *oneofField) getter(g *Generator, mc *msgCtx) {
return
}
- for _, of := range f.subFields {
- if gogoproto.IsEmbed(of.protoField) || gogoproto.IsCustomType(of.protoField) {
+ for _, sf := range f.subFields {
+ if gogoproto.IsEmbed(sf.protoField) || gogoproto.IsCustomType(sf.protoField) {
continue
}
- g.generateGet(mc, of.protoField, of.protoType, true, of.goName, of.goType, f.goName, of.oneofTypeName, of.fullPath, of.getterName, of.getterDef)
+ if sf.deprecated != "" {
+ g.P(sf.deprecated)
+ }
+ g.generateGet(mc, sf.protoField, sf.protoType, true, sf.goName, sf.goType, f.goName, sf.oneofTypeName, sf.fullPath, sf.getterName, sf.getterDef)
}
}
@@ -2741,6 +2743,14 @@ func (g *Generator) generateDefaultConstants(mc *msgCtx, topLevelFields []topLev
def = "float32(" + def + ")"
}
kind = "var "
+ case df.getProtoType() == descriptor.FieldDescriptorProto_TYPE_FLOAT:
+ if f, err := strconv.ParseFloat(def, 32); err == nil {
+ def = fmt.Sprint(float32(f))
+ }
+ case df.getProtoType() == descriptor.FieldDescriptorProto_TYPE_DOUBLE:
+ if f, err := strconv.ParseFloat(def, 64); err == nil {
+ def = fmt.Sprint(f)
+ }
case df.getProtoType() == descriptor.FieldDescriptorProto_TYPE_ENUM:
// Must be an enum. Need to construct the prefixed name.
obj := g.ObjectNamed(df.getProtoTypeName())
@@ -3085,22 +3095,6 @@ func (g *Generator) generateCommonMethods(mc *msgCtx) {
// Extension support methods
if len(mc.message.ExtensionRange) > 0 {
- // message_set_wire_format only makes sense when extensions are defined.
- if opts := mc.message.Options; opts != nil && opts.GetMessageSetWireFormat() {
- // isMessageSet = true
- g.P()
- g.P("func (m *", mc.goName, ") MarshalJSON() ([]byte, error) {")
- g.In()
- g.P("return ", g.Pkg["proto"], ".MarshalMessageSetJSON(&m.XXX_InternalExtensions)")
- g.Out()
- g.P("}")
- g.P("func (m *", mc.goName, ") UnmarshalJSON(buf []byte) error {")
- g.In()
- g.P("return ", g.Pkg["proto"], ".UnmarshalMessageSetJSON(buf, &m.XXX_InternalExtensions)")
- g.Out()
- g.P("}")
- }
-
g.P()
g.P("var extRange_", mc.goName, " = []", g.Pkg["proto"], ".ExtensionRange{")
g.In()
@@ -3115,6 +3109,7 @@ func (g *Generator) generateCommonMethods(mc *msgCtx) {
g.P("return extRange_", mc.goName)
g.Out()
g.P("}")
+ g.P()
if !gogoproto.HasExtensionsMap(g.file.FileDescriptorProto, mc.message.DescriptorProto) {
g.P("func (m *", mc.goName, ") GetExtensions() *[]byte {")
g.In()
@@ -3183,9 +3178,9 @@ func (g *Generator) generateCommonMethods(mc *msgCtx) {
g.Out()
g.P("}")
- g.P("func (dst *", mc.goName, ") XXX_Merge(src ", g.Pkg["proto"], ".Message) {")
+ g.P("func (m *", mc.goName, ") XXX_Merge(src ", g.Pkg["proto"], ".Message) {")
g.In()
- g.P("xxx_messageInfo_", mc.goName, ".Merge(dst, src)")
+ g.P("xxx_messageInfo_", mc.goName, ".Merge(m, src)")
g.Out()
g.P("}")
@@ -3335,6 +3330,10 @@ func (g *Generator) generateMessage(message *Descriptor) {
}
}
goTyp, _ := g.GoType(message, field)
+ fieldDeprecated := ""
+ if field.GetOptions().GetDeprecated() {
+ fieldDeprecated = deprecationComment
+ }
dvalue := g.getterDefault(field, goTypeName, GoTypeToName(goTyp))
if oneof {
tname := goTypeName + "_" + fieldName
@@ -3379,6 +3378,7 @@ func (g *Generator) generateMessage(message *Descriptor) {
getterDef: dvalue,
protoDef: field.GetDefaultValue(),
oneofTypeName: tname,
+ deprecated: fieldDeprecated,
wireType: wireTypeName(field),
}
@@ -3389,11 +3389,6 @@ func (g *Generator) generateMessage(message *Descriptor) {
continue
}
- fieldDeprecated := ""
- if field.GetOptions().GetDeprecated() {
- fieldDeprecated = deprecationComment
- }
-
fieldFullPath := fmt.Sprintf("%s,%d,%d", message.path, messageFieldPath, i)
c, ok := g.makeComments(fieldFullPath)
if ok {
@@ -3458,25 +3453,23 @@ func (g *Generator) generateMessage(message *Descriptor) {
g.generateOneofFuncs(mc, topLevelFields)
g.P()
- if !message.group {
- var oneofTypes []string
- for _, f := range topLevelFields {
- if of, ok := f.(*oneofField); ok {
- for _, osf := range of.subFields {
- oneofTypes = append(oneofTypes, osf.oneofTypeName)
- }
+ var oneofTypes []string
+ for _, f := range topLevelFields {
+ if of, ok := f.(*oneofField); ok {
+ for _, osf := range of.subFields {
+ oneofTypes = append(oneofTypes, osf.oneofTypeName)
}
}
+ }
- opts := message.Options
- ms := &messageSymbol{
- sym: goTypeName,
- hasExtensions: len(message.ExtensionRange) > 0,
- isMessageSet: opts != nil && opts.GetMessageSetWireFormat(),
- oneofTypes: oneofTypes,
- }
- g.file.addExport(message, ms)
+ opts := message.Options
+ ms := &messageSymbol{
+ sym: goTypeName,
+ hasExtensions: len(message.ExtensionRange) > 0,
+ isMessageSet: opts != nil && opts.GetMessageSetWireFormat(),
+ oneofTypes: oneofTypes,
}
+ g.file.addExport(message, ms)
for _, ext := range message.ext {
g.generateExtension(ext)
@@ -3617,10 +3610,8 @@ func (g *Generator) generateExtension(ext *ExtensionDescriptor) {
// In addition, the situation for when to apply this special case is implemented
// differently in other languages:
// https://github.com/google/protobuf/blob/aff10976/src/google/protobuf/text_format.cc#L1560
- mset := false
if extDesc.GetOptions().GetMessageSetWireFormat() && typeName[len(typeName)-1] == "message_set_extension" {
typeName = typeName[:len(typeName)-1]
- mset = true
}
// For text formatting, the package must be exactly what the .proto file declares,
@@ -3643,29 +3634,12 @@ func (g *Generator) generateExtension(ext *ExtensionDescriptor) {
g.P("}")
g.P()
- if mset {
- // Generate a bit more code to register with message_set.go.
- g.addInitf("%s.RegisterMessageSetType((%s)(nil), %d, %q)", g.Pkg["proto"], fieldType, *field.Number, extName)
- if gogoproto.ImportsGoGoProto(g.file.FileDescriptorProto) && gogoproto.RegistersGolangProto(g.file.FileDescriptorProto) {
- g.addInitf("%s.RegisterMessageSetType((%s)(nil), %d, %q)", g.Pkg["golang_proto"], fieldType, *field.Number, extName)
- }
- }
+ g.addInitf("%s.RegisterExtension(%s)", g.Pkg["proto"], ext.DescName())
g.file.addExport(ext, constOrVarSymbol{ccTypeName, "var", ""})
}
func (g *Generator) generateInitFunction() {
- for _, enum := range g.file.enum {
- g.generateEnumRegistration(enum)
- }
- for _, d := range g.file.desc {
- for _, ext := range d.ext {
- g.generateExtensionRegistration(ext)
- }
- }
- for _, ext := range g.file.ext {
- g.generateExtensionRegistration(ext)
- }
if len(g.init) == 0 {
return
}
@@ -3739,13 +3713,6 @@ func (g *Generator) generateEnumRegistration(enum *EnumDescriptor) {
}
}
-func (g *Generator) generateExtensionRegistration(ext *ExtensionDescriptor) {
- g.addInitf("%s.RegisterExtension(%s)", g.Pkg["proto"], ext.DescName())
- if gogoproto.ImportsGoGoProto(g.file.FileDescriptorProto) && gogoproto.RegistersGolangProto(g.file.FileDescriptorProto) {
- g.addInitf("%s.RegisterExtension(%s)", g.Pkg["golang_proto"], ext.DescName())
- }
-}
-
// And now lots of helper functions.
// Is c an ASCII lower-case letter?
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/helper.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/helper.go
index 697bbf52d1..abd821ce76 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/helper.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/helper.go
@@ -364,7 +364,7 @@ func (g *Generator) generatePlugin(file *FileDescriptor, p Plugin) {
rem := g.Buffer
g.Buffer = new(bytes.Buffer)
g.generateHeader()
- p.GenerateImports(g.file)
+ // p.GenerateImports(g.file)
g.generateImports()
if !g.writeOutput {
return
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/grpc.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/grpc.go
index 0b1438d216..42661f9df3 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/grpc.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/grpc.go
@@ -36,7 +36,6 @@ package grpc
import (
"fmt"
- "path"
"strconv"
"strings"
@@ -53,7 +52,7 @@ const generatedCodeVersion = 4
// Paths for packages used by code generated in this file,
// relative to the import_prefix of the generator.Generator.
const (
- contextPkgPath = "golang.org/x/net/context"
+ contextPkgPath = "context"
grpcPkgPath = "google.golang.org/grpc"
)
@@ -83,8 +82,6 @@ var (
// Init initializes the plugin.
func (g *grpc) Init(gen *generator.Generator) {
g.gen = gen
- contextPkg = generator.RegisterUniquePackageName("context", nil)
- grpcPkg = generator.RegisterUniquePackageName("grpc", nil)
}
// Given a type name defined in a .proto, return its object.
@@ -108,6 +105,9 @@ func (g *grpc) Generate(file *generator.FileDescriptor) {
return
}
+ contextPkg = string(g.gen.AddImport(contextPkgPath))
+ grpcPkg = string(g.gen.AddImport(grpcPkgPath))
+
g.P("// Reference imports to suppress errors if they are not otherwise used.")
g.P("var _ ", contextPkg, ".Context")
g.P("var _ ", grpcPkg, ".ClientConn")
@@ -125,16 +125,7 @@ func (g *grpc) Generate(file *generator.FileDescriptor) {
}
// GenerateImports generates the import declaration for this file.
-func (g *grpc) GenerateImports(file *generator.FileDescriptor) {
- if len(file.FileDescriptorProto.Service) == 0 {
- return
- }
- g.P("import (")
- g.P(contextPkg, " ", generator.GoImportPath(path.Join(string(g.gen.ImportPrefix), contextPkgPath)))
- g.P(grpcPkg, " ", generator.GoImportPath(path.Join(string(g.gen.ImportPrefix), grpcPkgPath)))
- g.P(")")
- g.P()
-}
+func (g *grpc) GenerateImports(file *generator.FileDescriptor) {}
// reservedClientName records whether a client name is reserved on the client side.
var reservedClientName = map[string]bool{
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/plugin.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/plugin.pb.go
index d6fea3fa0a..131d05ffe8 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/plugin.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/plugin.pb.go
@@ -3,10 +3,12 @@
package plugin_go
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -36,7 +38,7 @@ func (m *Version) Reset() { *m = Version{} }
func (m *Version) String() string { return proto.CompactTextString(m) }
func (*Version) ProtoMessage() {}
func (*Version) Descriptor() ([]byte, []int) {
- return fileDescriptor_plugin_ac234f81c61f07b3, []int{0}
+ return fileDescriptor_22a625af4bc1cc87, []int{0}
}
func (m *Version) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Version.Unmarshal(m, b)
@@ -44,8 +46,8 @@ func (m *Version) XXX_Unmarshal(b []byte) error {
func (m *Version) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Version.Marshal(b, m, deterministic)
}
-func (dst *Version) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Version.Merge(dst, src)
+func (m *Version) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Version.Merge(m, src)
}
func (m *Version) XXX_Size() int {
return xxx_messageInfo_Version.Size(m)
@@ -118,7 +120,7 @@ func (m *CodeGeneratorRequest) Reset() { *m = CodeGeneratorRequest{} }
func (m *CodeGeneratorRequest) String() string { return proto.CompactTextString(m) }
func (*CodeGeneratorRequest) ProtoMessage() {}
func (*CodeGeneratorRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_plugin_ac234f81c61f07b3, []int{1}
+ return fileDescriptor_22a625af4bc1cc87, []int{1}
}
func (m *CodeGeneratorRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CodeGeneratorRequest.Unmarshal(m, b)
@@ -126,8 +128,8 @@ func (m *CodeGeneratorRequest) XXX_Unmarshal(b []byte) error {
func (m *CodeGeneratorRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CodeGeneratorRequest.Marshal(b, m, deterministic)
}
-func (dst *CodeGeneratorRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CodeGeneratorRequest.Merge(dst, src)
+func (m *CodeGeneratorRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CodeGeneratorRequest.Merge(m, src)
}
func (m *CodeGeneratorRequest) XXX_Size() int {
return xxx_messageInfo_CodeGeneratorRequest.Size(m)
@@ -187,7 +189,7 @@ func (m *CodeGeneratorResponse) Reset() { *m = CodeGeneratorResponse{} }
func (m *CodeGeneratorResponse) String() string { return proto.CompactTextString(m) }
func (*CodeGeneratorResponse) ProtoMessage() {}
func (*CodeGeneratorResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_plugin_ac234f81c61f07b3, []int{2}
+ return fileDescriptor_22a625af4bc1cc87, []int{2}
}
func (m *CodeGeneratorResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CodeGeneratorResponse.Unmarshal(m, b)
@@ -195,8 +197,8 @@ func (m *CodeGeneratorResponse) XXX_Unmarshal(b []byte) error {
func (m *CodeGeneratorResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CodeGeneratorResponse.Marshal(b, m, deterministic)
}
-func (dst *CodeGeneratorResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CodeGeneratorResponse.Merge(dst, src)
+func (m *CodeGeneratorResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CodeGeneratorResponse.Merge(m, src)
}
func (m *CodeGeneratorResponse) XXX_Size() int {
return xxx_messageInfo_CodeGeneratorResponse.Size(m)
@@ -284,7 +286,7 @@ func (m *CodeGeneratorResponse_File) Reset() { *m = CodeGeneratorRespons
func (m *CodeGeneratorResponse_File) String() string { return proto.CompactTextString(m) }
func (*CodeGeneratorResponse_File) ProtoMessage() {}
func (*CodeGeneratorResponse_File) Descriptor() ([]byte, []int) {
- return fileDescriptor_plugin_ac234f81c61f07b3, []int{2, 0}
+ return fileDescriptor_22a625af4bc1cc87, []int{2, 0}
}
func (m *CodeGeneratorResponse_File) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CodeGeneratorResponse_File.Unmarshal(m, b)
@@ -292,8 +294,8 @@ func (m *CodeGeneratorResponse_File) XXX_Unmarshal(b []byte) error {
func (m *CodeGeneratorResponse_File) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CodeGeneratorResponse_File.Marshal(b, m, deterministic)
}
-func (dst *CodeGeneratorResponse_File) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CodeGeneratorResponse_File.Merge(dst, src)
+func (m *CodeGeneratorResponse_File) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CodeGeneratorResponse_File.Merge(m, src)
}
func (m *CodeGeneratorResponse_File) XXX_Size() int {
return xxx_messageInfo_CodeGeneratorResponse_File.Size(m)
@@ -332,9 +334,9 @@ func init() {
proto.RegisterType((*CodeGeneratorResponse_File)(nil), "google.protobuf.compiler.CodeGeneratorResponse.File")
}
-func init() { proto.RegisterFile("plugin.proto", fileDescriptor_plugin_ac234f81c61f07b3) }
+func init() { proto.RegisterFile("plugin.proto", fileDescriptor_22a625af4bc1cc87) }
-var fileDescriptor_plugin_ac234f81c61f07b3 = []byte{
+var fileDescriptor_22a625af4bc1cc87 = []byte{
// 383 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0xcd, 0x6a, 0xd5, 0x40,
0x14, 0xc7, 0x89, 0x37, 0xb5, 0xe4, 0xb4, 0x34, 0x65, 0xa8, 0x32, 0x94, 0x2e, 0xe2, 0x45, 0x30,
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/deprecated/deprecated.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/deprecated/deprecated.pb.go
index 3980aa7f06..26d0c0b493 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/deprecated/deprecated.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/deprecated/deprecated.pb.go
@@ -1,19 +1,16 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// deprecated/deprecated.proto is a deprecated file.
-package deprecated // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/deprecated"
+// package deprecated contains only deprecated messages and services.
-/*
-package deprecated contains only deprecated messages and services.
-*/
-
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
+package deprecated
import (
- context "golang.org/x/net/context"
+ context "context"
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
grpc "google.golang.org/grpc"
+ math "math"
)
// Reference imports to suppress errors if they are not otherwise used.
@@ -37,6 +34,7 @@ const (
var DeprecatedEnum_name = map[int32]string{
0: "DEPRECATED",
}
+
var DeprecatedEnum_value = map[string]int32{
"DEPRECATED": 0,
}
@@ -44,8 +42,9 @@ var DeprecatedEnum_value = map[string]int32{
func (x DeprecatedEnum) String() string {
return proto.EnumName(DeprecatedEnum_name, int32(x))
}
+
func (DeprecatedEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_deprecated_1b284d1f30819a6c, []int{0}
+ return fileDescriptor_f64ba265cd7eae3f, []int{0}
}
// DeprecatedRequest is a request to DeprecatedCall.
@@ -61,7 +60,7 @@ func (m *DeprecatedRequest) Reset() { *m = DeprecatedRequest{} }
func (m *DeprecatedRequest) String() string { return proto.CompactTextString(m) }
func (*DeprecatedRequest) ProtoMessage() {}
func (*DeprecatedRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_deprecated_1b284d1f30819a6c, []int{0}
+ return fileDescriptor_f64ba265cd7eae3f, []int{0}
}
func (m *DeprecatedRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeprecatedRequest.Unmarshal(m, b)
@@ -69,8 +68,8 @@ func (m *DeprecatedRequest) XXX_Unmarshal(b []byte) error {
func (m *DeprecatedRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DeprecatedRequest.Marshal(b, m, deterministic)
}
-func (dst *DeprecatedRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DeprecatedRequest.Merge(dst, src)
+func (m *DeprecatedRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DeprecatedRequest.Merge(m, src)
}
func (m *DeprecatedRequest) XXX_Size() int {
return xxx_messageInfo_DeprecatedRequest.Size(m)
@@ -84,17 +83,22 @@ var xxx_messageInfo_DeprecatedRequest proto.InternalMessageInfo
// Deprecated: Do not use.
type DeprecatedResponse struct {
// DeprecatedField contains a DeprecatedEnum.
- DeprecatedField DeprecatedEnum `protobuf:"varint,1,opt,name=deprecated_field,json=deprecatedField,proto3,enum=deprecated.DeprecatedEnum" json:"deprecated_field,omitempty"` // Deprecated: Do not use.
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
+ DeprecatedField DeprecatedEnum `protobuf:"varint,1,opt,name=deprecated_field,json=deprecatedField,proto3,enum=deprecated.DeprecatedEnum" json:"deprecated_field,omitempty"` // Deprecated: Do not use.
+ // DeprecatedOneof contains a deprecated field.
+ //
+ // Types that are valid to be assigned to DeprecatedOneof:
+ // *DeprecatedResponse_DeprecatedOneofField
+ DeprecatedOneof isDeprecatedResponse_DeprecatedOneof `protobuf_oneof:"deprecated_oneof"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
func (m *DeprecatedResponse) Reset() { *m = DeprecatedResponse{} }
func (m *DeprecatedResponse) String() string { return proto.CompactTextString(m) }
func (*DeprecatedResponse) ProtoMessage() {}
func (*DeprecatedResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_deprecated_1b284d1f30819a6c, []int{1}
+ return fileDescriptor_f64ba265cd7eae3f, []int{1}
}
func (m *DeprecatedResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeprecatedResponse.Unmarshal(m, b)
@@ -102,8 +106,8 @@ func (m *DeprecatedResponse) XXX_Unmarshal(b []byte) error {
func (m *DeprecatedResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DeprecatedResponse.Marshal(b, m, deterministic)
}
-func (dst *DeprecatedResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DeprecatedResponse.Merge(dst, src)
+func (m *DeprecatedResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DeprecatedResponse.Merge(m, src)
}
func (m *DeprecatedResponse) XXX_Size() int {
return xxx_messageInfo_DeprecatedResponse.Size(m)
@@ -114,6 +118,23 @@ func (m *DeprecatedResponse) XXX_DiscardUnknown() {
var xxx_messageInfo_DeprecatedResponse proto.InternalMessageInfo
+type isDeprecatedResponse_DeprecatedOneof interface {
+ isDeprecatedResponse_DeprecatedOneof()
+}
+
+type DeprecatedResponse_DeprecatedOneofField struct {
+ DeprecatedOneofField string `protobuf:"bytes,2,opt,name=deprecated_oneof_field,json=deprecatedOneofField,proto3,oneof"`
+}
+
+func (*DeprecatedResponse_DeprecatedOneofField) isDeprecatedResponse_DeprecatedOneof() {}
+
+func (m *DeprecatedResponse) GetDeprecatedOneof() isDeprecatedResponse_DeprecatedOneof {
+ if m != nil {
+ return m.DeprecatedOneof
+ }
+ return nil
+}
+
// Deprecated: Do not use.
func (m *DeprecatedResponse) GetDeprecatedField() DeprecatedEnum {
if m != nil {
@@ -122,10 +143,93 @@ func (m *DeprecatedResponse) GetDeprecatedField() DeprecatedEnum {
return DeprecatedEnum_DEPRECATED
}
+// Deprecated: Do not use.
+func (m *DeprecatedResponse) GetDeprecatedOneofField() string {
+ if x, ok := m.GetDeprecatedOneof().(*DeprecatedResponse_DeprecatedOneofField); ok {
+ return x.DeprecatedOneofField
+ }
+ return ""
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*DeprecatedResponse) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+ return _DeprecatedResponse_OneofMarshaler, _DeprecatedResponse_OneofUnmarshaler, _DeprecatedResponse_OneofSizer, []interface{}{
+ (*DeprecatedResponse_DeprecatedOneofField)(nil),
+ }
+}
+
+func _DeprecatedResponse_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+ m := msg.(*DeprecatedResponse)
+ // deprecated_oneof
+ switch x := m.DeprecatedOneof.(type) {
+ case *DeprecatedResponse_DeprecatedOneofField:
+ _ = b.EncodeVarint(2<<3 | proto.WireBytes)
+ _ = b.EncodeStringBytes(x.DeprecatedOneofField)
+ case nil:
+ default:
+ return fmt.Errorf("DeprecatedResponse.DeprecatedOneof has unexpected type %T", x)
+ }
+ return nil
+}
+
+func _DeprecatedResponse_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+ m := msg.(*DeprecatedResponse)
+ switch tag {
+ case 2: // deprecated_oneof.deprecated_oneof_field
+ if wire != proto.WireBytes {
+ return true, proto.ErrInternalBadWireType
+ }
+ x, err := b.DecodeStringBytes()
+ m.DeprecatedOneof = &DeprecatedResponse_DeprecatedOneofField{x}
+ return true, err
+ default:
+ return false, nil
+ }
+}
+
+func _DeprecatedResponse_OneofSizer(msg proto.Message) (n int) {
+ m := msg.(*DeprecatedResponse)
+ // deprecated_oneof
+ switch x := m.DeprecatedOneof.(type) {
+ case *DeprecatedResponse_DeprecatedOneofField:
+ n += 1 // tag and wire
+ n += proto.SizeVarint(uint64(len(x.DeprecatedOneofField)))
+ n += len(x.DeprecatedOneofField)
+ case nil:
+ default:
+ panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+ }
+ return n
+}
+
func init() {
+ proto.RegisterEnum("deprecated.DeprecatedEnum", DeprecatedEnum_name, DeprecatedEnum_value)
proto.RegisterType((*DeprecatedRequest)(nil), "deprecated.DeprecatedRequest")
proto.RegisterType((*DeprecatedResponse)(nil), "deprecated.DeprecatedResponse")
- proto.RegisterEnum("deprecated.DeprecatedEnum", DeprecatedEnum_name, DeprecatedEnum_value)
+}
+
+func init() { proto.RegisterFile("deprecated/deprecated.proto", fileDescriptor_f64ba265cd7eae3f) }
+
+var fileDescriptor_f64ba265cd7eae3f = []byte{
+ // 284 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4e, 0x49, 0x2d, 0x28,
+ 0x4a, 0x4d, 0x4e, 0x2c, 0x49, 0x4d, 0xd1, 0x47, 0x30, 0xf5, 0x0a, 0x8a, 0xf2, 0x4b, 0xf2, 0x85,
+ 0xb8, 0x10, 0x22, 0x4a, 0xe2, 0x5c, 0x82, 0x2e, 0x70, 0x5e, 0x50, 0x6a, 0x61, 0x69, 0x6a, 0x71,
+ 0x89, 0x15, 0x93, 0x04, 0xa3, 0xd2, 0x66, 0x46, 0x2e, 0x21, 0x64, 0x99, 0xe2, 0x82, 0xfc, 0xbc,
+ 0xe2, 0x54, 0x21, 0x4f, 0x2e, 0x01, 0x84, 0xee, 0xf8, 0xb4, 0xcc, 0xd4, 0x9c, 0x14, 0x09, 0x46,
+ 0x05, 0x46, 0x0d, 0x3e, 0x23, 0x29, 0x3d, 0x24, 0x8b, 0x10, 0x3a, 0x5d, 0xf3, 0x4a, 0x73, 0x9d,
+ 0x98, 0x24, 0x18, 0x83, 0xf8, 0x11, 0xd2, 0x6e, 0x20, 0x6d, 0x42, 0x56, 0x5c, 0x62, 0x48, 0x46,
+ 0xe5, 0xe7, 0xa5, 0xe6, 0xa7, 0x41, 0x0d, 0x64, 0x52, 0x60, 0xd4, 0xe0, 0x04, 0x69, 0xf2, 0x60,
+ 0x08, 0x12, 0x41, 0xa8, 0xf1, 0x07, 0x29, 0x01, 0xeb, 0x05, 0xb9, 0xd0, 0x49, 0x08, 0xc5, 0x29,
+ 0x60, 0xfd, 0x5a, 0x1a, 0x5c, 0x7c, 0xa8, 0x56, 0x0b, 0x09, 0x71, 0x71, 0xb9, 0xb8, 0x06, 0x04,
+ 0xb9, 0x3a, 0x3b, 0x86, 0xb8, 0xba, 0x08, 0x30, 0x48, 0x31, 0x71, 0x30, 0x4a, 0x31, 0x49, 0x30,
+ 0x1a, 0xe5, 0x21, 0x7b, 0x3c, 0x38, 0xb5, 0xa8, 0x2c, 0x33, 0x39, 0x55, 0x28, 0x04, 0x59, 0xbb,
+ 0x73, 0x62, 0x4e, 0x8e, 0x90, 0x2c, 0x76, 0x5f, 0x41, 0x43, 0x4a, 0x4a, 0x0e, 0x97, 0x34, 0x24,
+ 0xb8, 0x94, 0x98, 0x3b, 0x98, 0x18, 0xa5, 0x40, 0x84, 0x93, 0x63, 0x94, 0x4d, 0x7a, 0x66, 0x49,
+ 0x46, 0x69, 0x92, 0x5e, 0x72, 0x7e, 0xae, 0x7e, 0x7a, 0x7e, 0x7a, 0xbe, 0x3e, 0x38, 0x36, 0x92,
+ 0x4a, 0xd3, 0x20, 0x8c, 0x64, 0xdd, 0xf4, 0xd4, 0x3c, 0x5d, 0xb0, 0x44, 0x49, 0x6a, 0x71, 0x49,
+ 0x4a, 0x62, 0x49, 0x22, 0x52, 0xd4, 0xed, 0x60, 0x64, 0x4c, 0x62, 0x03, 0xab, 0x33, 0x06, 0x04,
+ 0x00, 0x00, 0xff, 0xff, 0xf0, 0x08, 0x22, 0x8d, 0xdd, 0x01, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -208,27 +312,3 @@ var _DeprecatedService_serviceDesc = grpc.ServiceDesc{
Streams: []grpc.StreamDesc{},
Metadata: "deprecated/deprecated.proto",
}
-
-func init() {
- proto.RegisterFile("deprecated/deprecated.proto", fileDescriptor_deprecated_1b284d1f30819a6c)
-}
-
-var fileDescriptor_deprecated_1b284d1f30819a6c = []byte{
- // 245 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4e, 0x49, 0x2d, 0x28,
- 0x4a, 0x4d, 0x4e, 0x2c, 0x49, 0x4d, 0xd1, 0x47, 0x30, 0xf5, 0x0a, 0x8a, 0xf2, 0x4b, 0xf2, 0x85,
- 0xb8, 0x10, 0x22, 0x4a, 0xe2, 0x5c, 0x82, 0x2e, 0x70, 0x5e, 0x50, 0x6a, 0x61, 0x69, 0x6a, 0x71,
- 0x89, 0x15, 0x93, 0x04, 0xa3, 0x52, 0x32, 0x97, 0x10, 0xb2, 0x44, 0x71, 0x41, 0x7e, 0x5e, 0x71,
- 0xaa, 0x90, 0x27, 0x97, 0x00, 0x42, 0x73, 0x7c, 0x5a, 0x66, 0x6a, 0x4e, 0x8a, 0x04, 0xa3, 0x02,
- 0xa3, 0x06, 0x9f, 0x91, 0x94, 0x1e, 0x92, 0x3d, 0x08, 0x9d, 0xae, 0x79, 0xa5, 0xb9, 0x4e, 0x4c,
- 0x12, 0x8c, 0x41, 0xfc, 0x08, 0x69, 0x37, 0x90, 0x36, 0x90, 0x25, 0x5a, 0x1a, 0x5c, 0x7c, 0xa8,
- 0x4a, 0x85, 0x84, 0xb8, 0xb8, 0x5c, 0x5c, 0x03, 0x82, 0x5c, 0x9d, 0x1d, 0x43, 0x5c, 0x5d, 0x04,
- 0x18, 0xa4, 0x98, 0x38, 0x18, 0xa5, 0x98, 0x24, 0x18, 0x8d, 0xf2, 0x90, 0xdd, 0x19, 0x9c, 0x5a,
- 0x54, 0x96, 0x99, 0x9c, 0x2a, 0x14, 0x82, 0xac, 0xdd, 0x39, 0x31, 0x27, 0x47, 0x48, 0x16, 0xbb,
- 0x2b, 0xa0, 0x1e, 0x93, 0x92, 0xc3, 0x25, 0x0d, 0xf1, 0x9e, 0x12, 0x73, 0x07, 0x13, 0xa3, 0x14,
- 0x88, 0x70, 0x72, 0x8c, 0xb2, 0x49, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5,
- 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0x07, 0x5e, 0x52, 0x69, 0x1a, 0x84, 0x91, 0xac, 0x9b, 0x9e,
- 0x9a, 0xa7, 0x0b, 0x96, 0x28, 0x49, 0x2d, 0x2e, 0x49, 0x49, 0x2c, 0x49, 0x44, 0x0a, 0xe9, 0x1d,
- 0x8c, 0x8c, 0x49, 0x6c, 0x60, 0x75, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf6, 0x28, 0xee,
- 0x83, 0x8c, 0x01, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_base/extension_base.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_base/extension_base.pb.go
index b40c82c692..7f223a3dfa 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_base/extension_base.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_base/extension_base.pb.go
@@ -1,11 +1,13 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: extension_base/extension_base.proto
-package extension_base // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_base"
+package extension_base
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -30,7 +32,7 @@ func (m *BaseMessage) Reset() { *m = BaseMessage{} }
func (m *BaseMessage) String() string { return proto.CompactTextString(m) }
func (*BaseMessage) ProtoMessage() {}
func (*BaseMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_extension_base_b5c437cd79d90e00, []int{0}
+ return fileDescriptor_2fbd53bac0b7ca8a, []int{0}
}
var extRange_BaseMessage = []proto.ExtensionRange{
@@ -41,14 +43,15 @@ var extRange_BaseMessage = []proto.ExtensionRange{
func (*BaseMessage) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_BaseMessage
}
+
func (m *BaseMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BaseMessage.Unmarshal(m, b)
}
func (m *BaseMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BaseMessage.Marshal(b, m, deterministic)
}
-func (dst *BaseMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_BaseMessage.Merge(dst, src)
+func (m *BaseMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BaseMessage.Merge(m, src)
}
func (m *BaseMessage) XXX_Size() int {
return xxx_messageInfo_BaseMessage.Size(m)
@@ -78,14 +81,7 @@ func (m *OldStyleMessage) Reset() { *m = OldStyleMessage{} }
func (m *OldStyleMessage) String() string { return proto.CompactTextString(m) }
func (*OldStyleMessage) ProtoMessage() {}
func (*OldStyleMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_extension_base_b5c437cd79d90e00, []int{1}
-}
-
-func (m *OldStyleMessage) MarshalJSON() ([]byte, error) {
- return proto.MarshalMessageSetJSON(&m.XXX_InternalExtensions)
-}
-func (m *OldStyleMessage) UnmarshalJSON(buf []byte) error {
- return proto.UnmarshalMessageSetJSON(buf, &m.XXX_InternalExtensions)
+ return fileDescriptor_2fbd53bac0b7ca8a, []int{1}
}
var extRange_OldStyleMessage = []proto.ExtensionRange{
@@ -95,14 +91,15 @@ var extRange_OldStyleMessage = []proto.ExtensionRange{
func (*OldStyleMessage) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_OldStyleMessage
}
+
func (m *OldStyleMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OldStyleMessage.Unmarshal(m, b)
}
func (m *OldStyleMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OldStyleMessage.Marshal(b, m, deterministic)
}
-func (dst *OldStyleMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OldStyleMessage.Merge(dst, src)
+func (m *OldStyleMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OldStyleMessage.Merge(m, src)
}
func (m *OldStyleMessage) XXX_Size() int {
return xxx_messageInfo_OldStyleMessage.Size(m)
@@ -119,10 +116,10 @@ func init() {
}
func init() {
- proto.RegisterFile("extension_base/extension_base.proto", fileDescriptor_extension_base_b5c437cd79d90e00)
+ proto.RegisterFile("extension_base/extension_base.proto", fileDescriptor_2fbd53bac0b7ca8a)
}
-var fileDescriptor_extension_base_b5c437cd79d90e00 = []byte{
+var fileDescriptor_2fbd53bac0b7ca8a = []byte{
// 175 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x4e, 0xad, 0x28, 0x49,
0xcd, 0x2b, 0xce, 0xcc, 0xcf, 0x8b, 0x4f, 0x4a, 0x2c, 0x4e, 0xd5, 0x47, 0xe5, 0xea, 0x15, 0x14,
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_extra/extension_extra.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_extra/extension_extra.pb.go
index 71968db3eb..639b3d9690 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_extra/extension_extra.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_extra/extension_extra.pb.go
@@ -1,11 +1,13 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: extension_extra/extension_extra.proto
-package extension_extra // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_extra"
+package extension_extra
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -29,7 +31,7 @@ func (m *ExtraMessage) Reset() { *m = ExtraMessage{} }
func (m *ExtraMessage) String() string { return proto.CompactTextString(m) }
func (*ExtraMessage) ProtoMessage() {}
func (*ExtraMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_extension_extra_e06efb14fc6ecf89, []int{0}
+ return fileDescriptor_fce75f5a63502cd5, []int{0}
}
func (m *ExtraMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExtraMessage.Unmarshal(m, b)
@@ -37,8 +39,8 @@ func (m *ExtraMessage) XXX_Unmarshal(b []byte) error {
func (m *ExtraMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ExtraMessage.Marshal(b, m, deterministic)
}
-func (dst *ExtraMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ExtraMessage.Merge(dst, src)
+func (m *ExtraMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ExtraMessage.Merge(m, src)
}
func (m *ExtraMessage) XXX_Size() int {
return xxx_messageInfo_ExtraMessage.Size(m)
@@ -61,10 +63,10 @@ func init() {
}
func init() {
- proto.RegisterFile("extension_extra/extension_extra.proto", fileDescriptor_extension_extra_e06efb14fc6ecf89)
+ proto.RegisterFile("extension_extra/extension_extra.proto", fileDescriptor_fce75f5a63502cd5)
}
-var fileDescriptor_extension_extra_e06efb14fc6ecf89 = []byte{
+var fileDescriptor_fce75f5a63502cd5 = []byte{
// 130 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x4d, 0xad, 0x28, 0x49,
0xcd, 0x2b, 0xce, 0xcc, 0xcf, 0x8b, 0x4f, 0xad, 0x28, 0x29, 0x4a, 0xd4, 0x47, 0xe3, 0xeb, 0x15,
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_user/extension_user.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_user/extension_user.pb.go
index 43c2b469a1..f8df45b11d 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_user/extension_user.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_user/extension_user.pb.go
@@ -1,13 +1,15 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: extension_user/extension_user.proto
-package extension_user // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_user"
+package extension_user
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import extension_base "github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_base"
-import extension_extra "github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_extra"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ extension_base "github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_base"
+ extension_extra "github.com/gogo/protobuf/protoc-gen-gogo/testdata/extension_extra"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -32,7 +34,7 @@ func (m *UserMessage) Reset() { *m = UserMessage{} }
func (m *UserMessage) String() string { return proto.CompactTextString(m) }
func (*UserMessage) ProtoMessage() {}
func (*UserMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_extension_user_026ca4e46735207f, []int{0}
+ return fileDescriptor_359ba8abf543ca10, []int{0}
}
func (m *UserMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UserMessage.Unmarshal(m, b)
@@ -40,8 +42,8 @@ func (m *UserMessage) XXX_Unmarshal(b []byte) error {
func (m *UserMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_UserMessage.Marshal(b, m, deterministic)
}
-func (dst *UserMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UserMessage.Merge(dst, src)
+func (m *UserMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UserMessage.Merge(m, src)
}
func (m *UserMessage) XXX_Size() int {
return xxx_messageInfo_UserMessage.Size(m)
@@ -78,7 +80,7 @@ func (m *LoudMessage) Reset() { *m = LoudMessage{} }
func (m *LoudMessage) String() string { return proto.CompactTextString(m) }
func (*LoudMessage) ProtoMessage() {}
func (*LoudMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_extension_user_026ca4e46735207f, []int{1}
+ return fileDescriptor_359ba8abf543ca10, []int{1}
}
var extRange_LoudMessage = []proto.ExtensionRange{
@@ -88,14 +90,15 @@ var extRange_LoudMessage = []proto.ExtensionRange{
func (*LoudMessage) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_LoudMessage
}
+
func (m *LoudMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LoudMessage.Unmarshal(m, b)
}
func (m *LoudMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_LoudMessage.Marshal(b, m, deterministic)
}
-func (dst *LoudMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_LoudMessage.Merge(dst, src)
+func (m *LoudMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_LoudMessage.Merge(m, src)
}
func (m *LoudMessage) XXX_Size() int {
return xxx_messageInfo_LoudMessage.Size(m)
@@ -126,7 +129,7 @@ func (m *LoginMessage) Reset() { *m = LoginMessage{} }
func (m *LoginMessage) String() string { return proto.CompactTextString(m) }
func (*LoginMessage) ProtoMessage() {}
func (*LoginMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_extension_user_026ca4e46735207f, []int{2}
+ return fileDescriptor_359ba8abf543ca10, []int{2}
}
func (m *LoginMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LoginMessage.Unmarshal(m, b)
@@ -134,8 +137,8 @@ func (m *LoginMessage) XXX_Unmarshal(b []byte) error {
func (m *LoginMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_LoginMessage.Marshal(b, m, deterministic)
}
-func (dst *LoginMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_LoginMessage.Merge(dst, src)
+func (m *LoginMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_LoginMessage.Merge(m, src)
}
func (m *LoginMessage) XXX_Size() int {
return xxx_messageInfo_LoginMessage.Size(m)
@@ -151,7 +154,7 @@ var E_LoginMessage_UserMessage = &proto.ExtensionDesc{
ExtensionType: (*UserMessage)(nil),
Field: 16,
Name: "extension_user.LoginMessage.user_message",
- Tag: "bytes,16,opt,name=user_message,json=userMessage",
+ Tag: "bytes,16,opt,name=user_message",
Filename: "extension_user/extension_user.proto",
}
@@ -166,7 +169,7 @@ func (m *Detail) Reset() { *m = Detail{} }
func (m *Detail) String() string { return proto.CompactTextString(m) }
func (*Detail) ProtoMessage() {}
func (*Detail) Descriptor() ([]byte, []int) {
- return fileDescriptor_extension_user_026ca4e46735207f, []int{3}
+ return fileDescriptor_359ba8abf543ca10, []int{3}
}
func (m *Detail) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Detail.Unmarshal(m, b)
@@ -174,8 +177,8 @@ func (m *Detail) XXX_Unmarshal(b []byte) error {
func (m *Detail) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Detail.Marshal(b, m, deterministic)
}
-func (dst *Detail) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Detail.Merge(dst, src)
+func (m *Detail) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Detail.Merge(m, src)
}
func (m *Detail) XXX_Size() int {
return xxx_messageInfo_Detail.Size(m)
@@ -205,7 +208,7 @@ func (m *Announcement) Reset() { *m = Announcement{} }
func (m *Announcement) String() string { return proto.CompactTextString(m) }
func (*Announcement) ProtoMessage() {}
func (*Announcement) Descriptor() ([]byte, []int) {
- return fileDescriptor_extension_user_026ca4e46735207f, []int{4}
+ return fileDescriptor_359ba8abf543ca10, []int{4}
}
func (m *Announcement) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Announcement.Unmarshal(m, b)
@@ -213,8 +216,8 @@ func (m *Announcement) XXX_Unmarshal(b []byte) error {
func (m *Announcement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Announcement.Marshal(b, m, deterministic)
}
-func (dst *Announcement) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Announcement.Merge(dst, src)
+func (m *Announcement) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Announcement.Merge(m, src)
}
func (m *Announcement) XXX_Size() int {
return xxx_messageInfo_Announcement.Size(m)
@@ -237,7 +240,7 @@ var E_Announcement_LoudExt = &proto.ExtensionDesc{
ExtensionType: (*Announcement)(nil),
Field: 100,
Name: "extension_user.Announcement.loud_ext",
- Tag: "bytes,100,opt,name=loud_ext,json=loudExt",
+ Tag: "bytes,100,opt,name=loud_ext",
Filename: "extension_user/extension_user.proto",
}
@@ -254,7 +257,7 @@ func (m *OldStyleParcel) Reset() { *m = OldStyleParcel{} }
func (m *OldStyleParcel) String() string { return proto.CompactTextString(m) }
func (*OldStyleParcel) ProtoMessage() {}
func (*OldStyleParcel) Descriptor() ([]byte, []int) {
- return fileDescriptor_extension_user_026ca4e46735207f, []int{5}
+ return fileDescriptor_359ba8abf543ca10, []int{5}
}
func (m *OldStyleParcel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OldStyleParcel.Unmarshal(m, b)
@@ -262,8 +265,8 @@ func (m *OldStyleParcel) XXX_Unmarshal(b []byte) error {
func (m *OldStyleParcel) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OldStyleParcel.Marshal(b, m, deterministic)
}
-func (dst *OldStyleParcel) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OldStyleParcel.Merge(dst, src)
+func (m *OldStyleParcel) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OldStyleParcel.Merge(m, src)
}
func (m *OldStyleParcel) XXX_Size() int {
return xxx_messageInfo_OldStyleParcel.Size(m)
@@ -293,7 +296,7 @@ var E_OldStyleParcel_MessageSetExtension = &proto.ExtensionDesc{
ExtensionType: (*OldStyleParcel)(nil),
Field: 2001,
Name: "extension_user.OldStyleParcel",
- Tag: "bytes,2001,opt,name=message_set_extension,json=messageSetExtension",
+ Tag: "bytes,2001,opt,name=message_set_extension",
Filename: "extension_user/extension_user.proto",
}
@@ -302,7 +305,7 @@ var E_UserMessage = &proto.ExtensionDesc{
ExtensionType: (*UserMessage)(nil),
Field: 5,
Name: "extension_user.user_message",
- Tag: "bytes,5,opt,name=user_message,json=userMessage",
+ Tag: "bytes,5,opt,name=user_message",
Filename: "extension_user/extension_user.proto",
}
@@ -311,7 +314,7 @@ var E_ExtraMessage = &proto.ExtensionDesc{
ExtensionType: (*extension_extra.ExtraMessage)(nil),
Field: 9,
Name: "extension_user.extra_message",
- Tag: "bytes,9,opt,name=extra_message,json=extraMessage",
+ Tag: "bytes,9,opt,name=extra_message",
Filename: "extension_user/extension_user.proto",
}
@@ -344,16 +347,15 @@ var E_Detail = &proto.ExtensionDesc{
func init() {
proto.RegisterType((*UserMessage)(nil), "extension_user.UserMessage")
+ proto.RegisterExtension(E_LoudMessage_Volume)
proto.RegisterType((*LoudMessage)(nil), "extension_user.LoudMessage")
+ proto.RegisterExtension(E_LoginMessage_UserMessage)
proto.RegisterType((*LoginMessage)(nil), "extension_user.LoginMessage")
proto.RegisterType((*Detail)(nil), "extension_user.Detail")
- proto.RegisterType((*Announcement)(nil), "extension_user.Announcement")
- proto.RegisterMessageSetType((*OldStyleParcel)(nil), 2001, "extension_user.OldStyleParcel")
- proto.RegisterType((*OldStyleParcel)(nil), "extension_user.OldStyleParcel")
- proto.RegisterExtension(E_LoudMessage_Volume)
- proto.RegisterExtension(E_LoginMessage_UserMessage)
proto.RegisterExtension(E_Announcement_LoudExt)
+ proto.RegisterType((*Announcement)(nil), "extension_user.Announcement")
proto.RegisterExtension(E_OldStyleParcel_MessageSetExtension)
+ proto.RegisterType((*OldStyleParcel)(nil), "extension_user.OldStyleParcel")
proto.RegisterExtension(E_UserMessage)
proto.RegisterExtension(E_ExtraMessage)
proto.RegisterExtension(E_Width)
@@ -362,10 +364,10 @@ func init() {
}
func init() {
- proto.RegisterFile("extension_user/extension_user.proto", fileDescriptor_extension_user_026ca4e46735207f)
+ proto.RegisterFile("extension_user/extension_user.proto", fileDescriptor_359ba8abf543ca10)
}
-var fileDescriptor_extension_user_026ca4e46735207f = []byte{
+var fileDescriptor_359ba8abf543ca10 = []byte{
// 490 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xc1, 0x6e, 0xd3, 0x40,
0x10, 0x95, 0xdb, 0xc6, 0x4d, 0xc7, 0x69, 0x29, 0x06, 0xaa, 0xa8, 0x40, 0xb1, 0x8c, 0x90, 0x2c,
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/grpc/grpc.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/grpc/grpc.pb.go
index 8dcafa21b9..cf2bfc0316 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/grpc/grpc.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/grpc/grpc.pb.go
@@ -1,15 +1,14 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: grpc/grpc.proto
-package testing // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/grpc"
-
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
+package testing
import (
- context "golang.org/x/net/context"
+ context "context"
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
grpc "google.golang.org/grpc"
+ math "math"
)
// Reference imports to suppress errors if they are not otherwise used.
@@ -33,7 +32,7 @@ func (m *SimpleRequest) Reset() { *m = SimpleRequest{} }
func (m *SimpleRequest) String() string { return proto.CompactTextString(m) }
func (*SimpleRequest) ProtoMessage() {}
func (*SimpleRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_grpc_9f03674ccb9f2c2b, []int{0}
+ return fileDescriptor_81ea47a3f88c2082, []int{0}
}
func (m *SimpleRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SimpleRequest.Unmarshal(m, b)
@@ -41,8 +40,8 @@ func (m *SimpleRequest) XXX_Unmarshal(b []byte) error {
func (m *SimpleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SimpleRequest.Marshal(b, m, deterministic)
}
-func (dst *SimpleRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SimpleRequest.Merge(dst, src)
+func (m *SimpleRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SimpleRequest.Merge(m, src)
}
func (m *SimpleRequest) XXX_Size() int {
return xxx_messageInfo_SimpleRequest.Size(m)
@@ -63,7 +62,7 @@ func (m *SimpleResponse) Reset() { *m = SimpleResponse{} }
func (m *SimpleResponse) String() string { return proto.CompactTextString(m) }
func (*SimpleResponse) ProtoMessage() {}
func (*SimpleResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_grpc_9f03674ccb9f2c2b, []int{1}
+ return fileDescriptor_81ea47a3f88c2082, []int{1}
}
func (m *SimpleResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SimpleResponse.Unmarshal(m, b)
@@ -71,8 +70,8 @@ func (m *SimpleResponse) XXX_Unmarshal(b []byte) error {
func (m *SimpleResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SimpleResponse.Marshal(b, m, deterministic)
}
-func (dst *SimpleResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SimpleResponse.Merge(dst, src)
+func (m *SimpleResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SimpleResponse.Merge(m, src)
}
func (m *SimpleResponse) XXX_Size() int {
return xxx_messageInfo_SimpleResponse.Size(m)
@@ -93,7 +92,7 @@ func (m *StreamMsg) Reset() { *m = StreamMsg{} }
func (m *StreamMsg) String() string { return proto.CompactTextString(m) }
func (*StreamMsg) ProtoMessage() {}
func (*StreamMsg) Descriptor() ([]byte, []int) {
- return fileDescriptor_grpc_9f03674ccb9f2c2b, []int{2}
+ return fileDescriptor_81ea47a3f88c2082, []int{2}
}
func (m *StreamMsg) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StreamMsg.Unmarshal(m, b)
@@ -101,8 +100,8 @@ func (m *StreamMsg) XXX_Unmarshal(b []byte) error {
func (m *StreamMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_StreamMsg.Marshal(b, m, deterministic)
}
-func (dst *StreamMsg) XXX_Merge(src proto.Message) {
- xxx_messageInfo_StreamMsg.Merge(dst, src)
+func (m *StreamMsg) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StreamMsg.Merge(m, src)
}
func (m *StreamMsg) XXX_Size() int {
return xxx_messageInfo_StreamMsg.Size(m)
@@ -123,7 +122,7 @@ func (m *StreamMsg2) Reset() { *m = StreamMsg2{} }
func (m *StreamMsg2) String() string { return proto.CompactTextString(m) }
func (*StreamMsg2) ProtoMessage() {}
func (*StreamMsg2) Descriptor() ([]byte, []int) {
- return fileDescriptor_grpc_9f03674ccb9f2c2b, []int{3}
+ return fileDescriptor_81ea47a3f88c2082, []int{3}
}
func (m *StreamMsg2) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StreamMsg2.Unmarshal(m, b)
@@ -131,8 +130,8 @@ func (m *StreamMsg2) XXX_Unmarshal(b []byte) error {
func (m *StreamMsg2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_StreamMsg2.Marshal(b, m, deterministic)
}
-func (dst *StreamMsg2) XXX_Merge(src proto.Message) {
- xxx_messageInfo_StreamMsg2.Merge(dst, src)
+func (m *StreamMsg2) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StreamMsg2.Merge(m, src)
}
func (m *StreamMsg2) XXX_Size() int {
return xxx_messageInfo_StreamMsg2.Size(m)
@@ -150,6 +149,28 @@ func init() {
proto.RegisterType((*StreamMsg2)(nil), "grpc.testing.StreamMsg2")
}
+func init() { proto.RegisterFile("grpc/grpc.proto", fileDescriptor_81ea47a3f88c2082) }
+
+var fileDescriptor_81ea47a3f88c2082 = []byte{
+ // 241 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4f, 0x2f, 0x2a, 0x48,
+ 0xd6, 0x07, 0x11, 0x7a, 0x05, 0x45, 0xf9, 0x25, 0xf9, 0x42, 0x3c, 0x60, 0x76, 0x49, 0x6a, 0x71,
+ 0x49, 0x66, 0x5e, 0xba, 0x12, 0x3f, 0x17, 0x6f, 0x70, 0x66, 0x6e, 0x41, 0x4e, 0x6a, 0x50, 0x6a,
+ 0x61, 0x69, 0x6a, 0x71, 0x89, 0x92, 0x00, 0x17, 0x1f, 0x4c, 0xa0, 0xb8, 0x20, 0x3f, 0xaf, 0x38,
+ 0x55, 0x89, 0x9b, 0x8b, 0x33, 0xb8, 0xa4, 0x28, 0x35, 0x31, 0xd7, 0xb7, 0x38, 0x5d, 0x89, 0x87,
+ 0x8b, 0x0b, 0xce, 0x31, 0x32, 0x9a, 0xc1, 0xc4, 0xc5, 0x12, 0x92, 0x5a, 0x5c, 0x22, 0xe4, 0xc6,
+ 0xc5, 0x19, 0x9a, 0x97, 0x58, 0x54, 0xe9, 0x9c, 0x98, 0x93, 0x23, 0x24, 0xad, 0x87, 0x6c, 0x85,
+ 0x1e, 0x8a, 0xf9, 0x52, 0x32, 0xd8, 0x25, 0x21, 0x76, 0x09, 0xb9, 0x70, 0x71, 0xb9, 0xe4, 0x97,
+ 0xe7, 0x15, 0x83, 0xad, 0xc0, 0x6f, 0x90, 0x38, 0x9a, 0x24, 0xcc, 0x55, 0x06, 0x8c, 0x42, 0xce,
+ 0x5c, 0x1c, 0xa1, 0x05, 0x50, 0x33, 0x70, 0x29, 0xc3, 0xef, 0x10, 0x0d, 0x46, 0x21, 0x5b, 0x2e,
+ 0x16, 0xa7, 0xcc, 0x94, 0x4c, 0xdc, 0x06, 0x48, 0xe0, 0x90, 0x30, 0xd2, 0x60, 0x34, 0x60, 0x74,
+ 0x72, 0x88, 0xb2, 0x4b, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf,
+ 0x4f, 0xcf, 0xd7, 0x07, 0x87, 0x7f, 0x52, 0x69, 0x1a, 0x84, 0x91, 0xac, 0x9b, 0x9e, 0x9a, 0xa7,
+ 0x0b, 0x96, 0x00, 0x19, 0x91, 0x92, 0x58, 0x92, 0x08, 0x8e, 0x26, 0x6b, 0xa8, 0x81, 0x49, 0x6c,
+ 0x60, 0x65, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x16, 0x54, 0x6e, 0x1b, 0xc2, 0x01, 0x00,
+ 0x00,
+}
+
// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn
@@ -420,25 +441,3 @@ var _Test_serviceDesc = grpc.ServiceDesc{
},
Metadata: "grpc/grpc.proto",
}
-
-func init() { proto.RegisterFile("grpc/grpc.proto", fileDescriptor_grpc_9f03674ccb9f2c2b) }
-
-var fileDescriptor_grpc_9f03674ccb9f2c2b = []byte{
- // 241 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4f, 0x2f, 0x2a, 0x48,
- 0xd6, 0x07, 0x11, 0x7a, 0x05, 0x45, 0xf9, 0x25, 0xf9, 0x42, 0x3c, 0x60, 0x76, 0x49, 0x6a, 0x71,
- 0x49, 0x66, 0x5e, 0xba, 0x12, 0x3f, 0x17, 0x6f, 0x70, 0x66, 0x6e, 0x41, 0x4e, 0x6a, 0x50, 0x6a,
- 0x61, 0x69, 0x6a, 0x71, 0x89, 0x92, 0x00, 0x17, 0x1f, 0x4c, 0xa0, 0xb8, 0x20, 0x3f, 0xaf, 0x38,
- 0x55, 0x89, 0x9b, 0x8b, 0x33, 0xb8, 0xa4, 0x28, 0x35, 0x31, 0xd7, 0xb7, 0x38, 0x5d, 0x89, 0x87,
- 0x8b, 0x0b, 0xce, 0x31, 0x32, 0x9a, 0xc1, 0xc4, 0xc5, 0x12, 0x92, 0x5a, 0x5c, 0x22, 0xe4, 0xc6,
- 0xc5, 0x19, 0x9a, 0x97, 0x58, 0x54, 0xe9, 0x9c, 0x98, 0x93, 0x23, 0x24, 0xad, 0x87, 0x6c, 0x85,
- 0x1e, 0x8a, 0xf9, 0x52, 0x32, 0xd8, 0x25, 0x21, 0x76, 0x09, 0xb9, 0x70, 0x71, 0xb9, 0xe4, 0x97,
- 0xe7, 0x15, 0x83, 0xad, 0xc0, 0x6f, 0x90, 0x38, 0x9a, 0x24, 0xcc, 0x55, 0x06, 0x8c, 0x42, 0xce,
- 0x5c, 0x1c, 0xa1, 0x05, 0x50, 0x33, 0x70, 0x29, 0xc3, 0xef, 0x10, 0x0d, 0x46, 0x21, 0x5b, 0x2e,
- 0x16, 0xa7, 0xcc, 0x94, 0x4c, 0xdc, 0x06, 0x48, 0xe0, 0x90, 0x30, 0xd2, 0x60, 0x34, 0x60, 0x74,
- 0x72, 0x88, 0xb2, 0x4b, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf,
- 0x4f, 0xcf, 0xd7, 0x07, 0x87, 0x7f, 0x52, 0x69, 0x1a, 0x84, 0x91, 0xac, 0x9b, 0x9e, 0x9a, 0xa7,
- 0x0b, 0x96, 0x00, 0x19, 0x91, 0x92, 0x58, 0x92, 0x08, 0x8e, 0x26, 0x6b, 0xa8, 0x81, 0x49, 0x6c,
- 0x60, 0x65, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x16, 0x54, 0x6e, 0x1b, 0xc2, 0x01, 0x00,
- 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/a.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/a.pb.go
index 80fe83b609..66d16f6e1c 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/a.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/a.pb.go
@@ -1,12 +1,14 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: import_public/a.proto
-package import_public // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public"
+package import_public
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import sub "github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ sub "github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -19,8 +21,20 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
+const Default_M_DefaultField = sub.Default_M_DefaultField
+
// M from public import import_public/sub/a.proto
type M = sub.M
+type M_OneofInt32 = sub.M_OneofInt32
+type M_OneofInt64 = sub.M_OneofInt64
+
+// M_Grouping from public import import_public/sub/a.proto
+type M_Grouping = sub.M_Grouping
+
+// M_Submessage from public import import_public/sub/a.proto
+type M_Submessage = sub.M_Submessage
+type M_Submessage_SubmessageOneofInt32 = sub.M_Submessage_SubmessageOneofInt32
+type M_Submessage_SubmessageOneofInt64 = sub.M_Submessage_SubmessageOneofInt64
// E from public import import_public/sub/a.proto
type E = sub.E
@@ -30,12 +44,28 @@ var E_value = sub.E_value
const E_ZERO = E(sub.E_ZERO)
-// Ignoring public import of Local from import_public/b.proto
+// M_Subenum from public import import_public/sub/a.proto
+type M_Subenum = sub.M_Subenum
+
+var M_Subenum_name = sub.M_Subenum_name
+var M_Subenum_value = sub.M_Subenum_value
+
+const M_M_ZERO = M_Subenum(sub.M_M_ZERO)
+
+// M_Submessage_Submessage_Subenum from public import import_public/sub/a.proto
+type M_Submessage_Submessage_Subenum = sub.M_Submessage_Submessage_Subenum
+
+var M_Submessage_Submessage_Subenum_name = sub.M_Submessage_Submessage_Subenum_name
+var M_Submessage_Submessage_Subenum_value = sub.M_Submessage_Submessage_Subenum_value
+
+const M_Submessage_M_SUBMESSAGE_ZERO = M_Submessage_Submessage_Subenum(sub.M_Submessage_M_SUBMESSAGE_ZERO)
+
+var E_ExtensionField = sub.E_ExtensionField
type Public struct {
- M *sub.M `protobuf:"bytes,1,opt,name=m,proto3" json:"m,omitempty"`
- E sub.E `protobuf:"varint,2,opt,name=e,proto3,enum=goproto.test.import_public.sub.E" json:"e,omitempty"`
- Local *Local `protobuf:"bytes,3,opt,name=local,proto3" json:"local,omitempty"`
+ M *sub.M `protobuf:"bytes,1,opt,name=m" json:"m,omitempty"`
+ E *sub.E `protobuf:"varint,2,opt,name=e,enum=goproto.test.import_public.sub.E" json:"e,omitempty"`
+ Local *Local `protobuf:"bytes,3,opt,name=local" json:"local,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -45,7 +75,7 @@ func (m *Public) Reset() { *m = Public{} }
func (m *Public) String() string { return proto.CompactTextString(m) }
func (*Public) ProtoMessage() {}
func (*Public) Descriptor() ([]byte, []int) {
- return fileDescriptor_a_2f23fa0a8a46426d, []int{0}
+ return fileDescriptor_73b7577c95fa6b70, []int{0}
}
func (m *Public) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Public.Unmarshal(m, b)
@@ -53,8 +83,8 @@ func (m *Public) XXX_Unmarshal(b []byte) error {
func (m *Public) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Public.Marshal(b, m, deterministic)
}
-func (dst *Public) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Public.Merge(dst, src)
+func (m *Public) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Public.Merge(m, src)
}
func (m *Public) XXX_Size() int {
return xxx_messageInfo_Public.Size(m)
@@ -73,8 +103,8 @@ func (m *Public) GetM() *sub.M {
}
func (m *Public) GetE() sub.E {
- if m != nil {
- return m.E
+ if m != nil && m.E != nil {
+ return *m.E
}
return sub.E_ZERO
}
@@ -90,10 +120,10 @@ func init() {
proto.RegisterType((*Public)(nil), "goproto.test.import_public.Public")
}
-func init() { proto.RegisterFile("import_public/a.proto", fileDescriptor_a_2f23fa0a8a46426d) }
+func init() { proto.RegisterFile("import_public/a.proto", fileDescriptor_73b7577c95fa6b70) }
-var fileDescriptor_a_2f23fa0a8a46426d = []byte{
- // 197 bytes of a gzipped FileDescriptorProto
+var fileDescriptor_73b7577c95fa6b70 = []byte{
+ // 192 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xcd, 0xcc, 0x2d, 0xc8,
0x2f, 0x2a, 0x89, 0x2f, 0x28, 0x4d, 0xca, 0xc9, 0x4c, 0xd6, 0x4f, 0xd4, 0x2b, 0x28, 0xca, 0x2f,
0xc9, 0x17, 0x92, 0x4a, 0xcf, 0x07, 0x33, 0xf4, 0x4a, 0x52, 0x8b, 0x4b, 0xf4, 0x50, 0xd4, 0x48,
@@ -105,6 +135,5 @@ var fileDescriptor_a_2f23fa0a8a46426d = []byte{
0x04, 0x51, 0xef, 0xe4, 0x18, 0x65, 0x9f, 0x9e, 0x59, 0x92, 0x51, 0x9a, 0xa4, 0x97, 0x9c, 0x9f,
0xab, 0x9f, 0x9e, 0x9f, 0x9e, 0xaf, 0x0f, 0xd6, 0x98, 0x54, 0x9a, 0x06, 0x61, 0x24, 0xeb, 0xa6,
0xa7, 0xe6, 0xe9, 0x82, 0x25, 0x40, 0x66, 0xa5, 0x24, 0x96, 0x24, 0xea, 0xa3, 0x98, 0x17, 0xc0,
- 0x10, 0xc0, 0x98, 0xc4, 0x06, 0x56, 0x6b, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x8b, 0x63, 0x98,
- 0xb1, 0x5a, 0x01, 0x00, 0x00,
+ 0x10, 0xc0, 0x08, 0x08, 0x00, 0x00, 0xff, 0xff, 0x4b, 0xfb, 0x07, 0xae, 0x52, 0x01, 0x00, 0x00,
}
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/b.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/b.pb.go
index e2c81d8740..989c4201ae 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/b.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/b.pb.go
@@ -1,12 +1,14 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: import_public/b.proto
-package import_public // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public"
+package import_public
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import sub "github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ sub "github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -20,8 +22,8 @@ var _ = math.Inf
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
type Local struct {
- M *sub.M `protobuf:"bytes,1,opt,name=m,proto3" json:"m,omitempty"`
- E sub.E `protobuf:"varint,2,opt,name=e,proto3,enum=goproto.test.import_public.sub.E" json:"e,omitempty"`
+ M *sub.M `protobuf:"bytes,1,opt,name=m" json:"m,omitempty"`
+ E *sub.E `protobuf:"varint,2,opt,name=e,enum=goproto.test.import_public.sub.E" json:"e,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -31,7 +33,7 @@ func (m *Local) Reset() { *m = Local{} }
func (m *Local) String() string { return proto.CompactTextString(m) }
func (*Local) ProtoMessage() {}
func (*Local) Descriptor() ([]byte, []int) {
- return fileDescriptor_b_64c467639fa1a874, []int{0}
+ return fileDescriptor_84995586b3d09710, []int{0}
}
func (m *Local) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Local.Unmarshal(m, b)
@@ -39,8 +41,8 @@ func (m *Local) XXX_Unmarshal(b []byte) error {
func (m *Local) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Local.Marshal(b, m, deterministic)
}
-func (dst *Local) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Local.Merge(dst, src)
+func (m *Local) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Local.Merge(m, src)
}
func (m *Local) XXX_Size() int {
return xxx_messageInfo_Local.Size(m)
@@ -59,8 +61,8 @@ func (m *Local) GetM() *sub.M {
}
func (m *Local) GetE() sub.E {
- if m != nil {
- return m.E
+ if m != nil && m.E != nil {
+ return *m.E
}
return sub.E_ZERO
}
@@ -69,10 +71,10 @@ func init() {
proto.RegisterType((*Local)(nil), "goproto.test.import_public.Local")
}
-func init() { proto.RegisterFile("import_public/b.proto", fileDescriptor_b_64c467639fa1a874) }
+func init() { proto.RegisterFile("import_public/b.proto", fileDescriptor_84995586b3d09710) }
-var fileDescriptor_b_64c467639fa1a874 = []byte{
- // 171 bytes of a gzipped FileDescriptorProto
+var fileDescriptor_84995586b3d09710 = []byte{
+ // 166 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xcd, 0xcc, 0x2d, 0xc8,
0x2f, 0x2a, 0x89, 0x2f, 0x28, 0x4d, 0xca, 0xc9, 0x4c, 0xd6, 0x4f, 0xd2, 0x2b, 0x28, 0xca, 0x2f,
0xc9, 0x17, 0x92, 0x4a, 0xcf, 0x07, 0x33, 0xf4, 0x4a, 0x52, 0x8b, 0x4b, 0xf4, 0x50, 0xd4, 0x48,
@@ -82,6 +84,6 @@ var fileDescriptor_b_64c467639fa1a874 = []byte{
0x04, 0x93, 0x02, 0xa3, 0x06, 0x1f, 0x61, 0x0d, 0xae, 0x41, 0x8c, 0xa9, 0x4e, 0x8e, 0x51, 0xf6,
0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0xe9, 0xf9, 0xe9, 0xf9, 0xfa,
0x60, 0x4d, 0x49, 0xa5, 0x69, 0x10, 0x46, 0xb2, 0x6e, 0x7a, 0x6a, 0x9e, 0x2e, 0x58, 0x02, 0x64,
- 0x4e, 0x4a, 0x62, 0x49, 0xa2, 0x3e, 0x8a, 0x59, 0x49, 0x6c, 0x60, 0x75, 0xc6, 0x80, 0x00, 0x00,
- 0x00, 0xff, 0xff, 0x2e, 0xf6, 0xdd, 0x8a, 0x04, 0x01, 0x00, 0x00,
+ 0x4e, 0x4a, 0x62, 0x49, 0xa2, 0x3e, 0x8a, 0x59, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb0, 0xbb,
+ 0x8d, 0x44, 0xfc, 0x00, 0x00, 0x00,
}
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/importing/importing.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/importing/importing.pb.go
new file mode 100644
index 0000000000..c298f96a09
--- /dev/null
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/importing/importing.pb.go
@@ -0,0 +1,84 @@
+// Code generated by protoc-gen-gogo. DO NOT EDIT.
+// source: import_public/importing/importing.proto
+
+package importing
+
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ _ "github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public"
+ sub "github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
+
+type M struct {
+ // Message type defined in a file publicly imported by a file we import.
+ M *sub.M `protobuf:"bytes,1,opt,name=m" json:"m,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *M) Reset() { *m = M{} }
+func (m *M) String() string { return proto.CompactTextString(m) }
+func (*M) ProtoMessage() {}
+func (*M) Descriptor() ([]byte, []int) {
+ return fileDescriptor_36b835b3b8f6171a, []int{0}
+}
+func (m *M) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_M.Unmarshal(m, b)
+}
+func (m *M) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_M.Marshal(b, m, deterministic)
+}
+func (m *M) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_M.Merge(m, src)
+}
+func (m *M) XXX_Size() int {
+ return xxx_messageInfo_M.Size(m)
+}
+func (m *M) XXX_DiscardUnknown() {
+ xxx_messageInfo_M.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_M proto.InternalMessageInfo
+
+func (m *M) GetM() *sub.M {
+ if m != nil {
+ return m.M
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterType((*M)(nil), "goproto.test.import_public.importing.M")
+}
+
+func init() {
+ proto.RegisterFile("import_public/importing/importing.proto", fileDescriptor_36b835b3b8f6171a)
+}
+
+var fileDescriptor_36b835b3b8f6171a = []byte{
+ // 153 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0xcf, 0xcc, 0x2d, 0xc8,
+ 0x2f, 0x2a, 0x89, 0x2f, 0x28, 0x4d, 0xca, 0xc9, 0x4c, 0xd6, 0x87, 0xf0, 0x32, 0xf3, 0xd2, 0x11,
+ 0x2c, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x95, 0xf4, 0x7c, 0x30, 0x43, 0xaf, 0x24, 0xb5,
+ 0xb8, 0x44, 0x0f, 0x45, 0x97, 0x1e, 0x5c, 0xad, 0x94, 0x28, 0xaa, 0x71, 0x89, 0x10, 0xcd, 0x4a,
+ 0x26, 0x5c, 0x8c, 0xbe, 0x42, 0xfa, 0x5c, 0x8c, 0xb9, 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0xdc, 0x46,
+ 0x8a, 0x7a, 0x78, 0x4c, 0x2b, 0x2e, 0x4d, 0xd2, 0xf3, 0x0d, 0x62, 0xcc, 0x75, 0xf2, 0x8e, 0xf2,
+ 0x4c, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0xcf, 0x49, 0xcc,
+ 0x4b, 0xd7, 0x07, 0x6b, 0x4b, 0x2a, 0x4d, 0x83, 0x30, 0x92, 0x75, 0xd3, 0x53, 0xf3, 0x74, 0xd3,
+ 0xf3, 0xf5, 0x41, 0xe6, 0xa4, 0x24, 0x96, 0x24, 0xea, 0xe3, 0xf0, 0x0f, 0x20, 0x00, 0x00, 0xff,
+ 0xff, 0xd8, 0x7e, 0x58, 0x1c, 0xe9, 0x00, 0x00, 0x00,
+}
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub/a.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub/a.pb.go
index 1cf7f6f97a..47901904e9 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub/a.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub/a.pb.go
@@ -1,11 +1,13 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: import_public/sub/a.proto
-package sub // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub"
+package sub
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -27,30 +29,127 @@ const (
var E_name = map[int32]string{
0: "ZERO",
}
+
var E_value = map[string]int32{
"ZERO": 0,
}
+func (x E) Enum() *E {
+ p := new(E)
+ *p = x
+ return p
+}
+
func (x E) String() string {
return proto.EnumName(E_name, int32(x))
}
+
+func (x *E) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(E_value, data, "E")
+ if err != nil {
+ return err
+ }
+ *x = E(value)
+ return nil
+}
+
func (E) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_a_051bb22eaae5295a, []int{0}
+ return fileDescriptor_382f7805394b5c4e, []int{0}
+}
+
+type M_Subenum int32
+
+const (
+ M_M_ZERO M_Subenum = 0
+)
+
+var M_Subenum_name = map[int32]string{
+ 0: "M_ZERO",
+}
+
+var M_Subenum_value = map[string]int32{
+ "M_ZERO": 0,
+}
+
+func (x M_Subenum) Enum() *M_Subenum {
+ p := new(M_Subenum)
+ *p = x
+ return p
+}
+
+func (x M_Subenum) String() string {
+ return proto.EnumName(M_Subenum_name, int32(x))
+}
+
+func (x *M_Subenum) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(M_Subenum_value, data, "M_Subenum")
+ if err != nil {
+ return err
+ }
+ *x = M_Subenum(value)
+ return nil
+}
+
+func (M_Subenum) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_382f7805394b5c4e, []int{0, 0}
+}
+
+type M_Submessage_Submessage_Subenum int32
+
+const (
+ M_Submessage_M_SUBMESSAGE_ZERO M_Submessage_Submessage_Subenum = 0
+)
+
+var M_Submessage_Submessage_Subenum_name = map[int32]string{
+ 0: "M_SUBMESSAGE_ZERO",
+}
+
+var M_Submessage_Submessage_Subenum_value = map[string]int32{
+ "M_SUBMESSAGE_ZERO": 0,
+}
+
+func (x M_Submessage_Submessage_Subenum) Enum() *M_Submessage_Submessage_Subenum {
+ p := new(M_Submessage_Submessage_Subenum)
+ *p = x
+ return p
+}
+
+func (x M_Submessage_Submessage_Subenum) String() string {
+ return proto.EnumName(M_Submessage_Submessage_Subenum_name, int32(x))
+}
+
+func (x *M_Submessage_Submessage_Subenum) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(M_Submessage_Submessage_Subenum_value, data, "M_Submessage_Submessage_Subenum")
+ if err != nil {
+ return err
+ }
+ *x = M_Submessage_Submessage_Subenum(value)
+ return nil
+}
+
+func (M_Submessage_Submessage_Subenum) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_382f7805394b5c4e, []int{0, 1, 0}
}
type M struct {
// Field using a type in the same Go package, but a different source file.
- M2 *M2 `protobuf:"bytes,1,opt,name=m2,proto3" json:"m2,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
+ M2 *M2 `protobuf:"bytes,1,opt,name=m2" json:"m2,omitempty"`
+ // Types that are valid to be assigned to OneofField:
+ // *M_OneofInt32
+ // *M_OneofInt64
+ OneofField isM_OneofField `protobuf_oneof:"oneof_field"`
+ Grouping *M_Grouping `protobuf:"group,4,opt,name=Grouping,json=grouping" json:"grouping,omitempty"`
+ DefaultField *string `protobuf:"bytes,6,opt,name=default_field,json=defaultField,def=def" json:"default_field,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
func (m *M) Reset() { *m = M{} }
func (m *M) String() string { return proto.CompactTextString(m) }
func (*M) ProtoMessage() {}
func (*M) Descriptor() ([]byte, []int) {
- return fileDescriptor_a_051bb22eaae5295a, []int{0}
+ return fileDescriptor_382f7805394b5c4e, []int{0}
}
func (m *M) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_M.Unmarshal(m, b)
@@ -58,8 +157,8 @@ func (m *M) XXX_Unmarshal(b []byte) error {
func (m *M) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_M.Marshal(b, m, deterministic)
}
-func (dst *M) XXX_Merge(src proto.Message) {
- xxx_messageInfo_M.Merge(dst, src)
+func (m *M) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_M.Merge(m, src)
}
func (m *M) XXX_Size() int {
return xxx_messageInfo_M.Size(m)
@@ -70,6 +169,29 @@ func (m *M) XXX_DiscardUnknown() {
var xxx_messageInfo_M proto.InternalMessageInfo
+const Default_M_DefaultField string = "def"
+
+type isM_OneofField interface {
+ isM_OneofField()
+}
+
+type M_OneofInt32 struct {
+ OneofInt32 int32 `protobuf:"varint,2,opt,name=oneof_int32,json=oneofInt32,oneof"`
+}
+type M_OneofInt64 struct {
+ OneofInt64 int64 `protobuf:"varint,3,opt,name=oneof_int64,json=oneofInt64,oneof"`
+}
+
+func (*M_OneofInt32) isM_OneofField() {}
+func (*M_OneofInt64) isM_OneofField() {}
+
+func (m *M) GetOneofField() isM_OneofField {
+ if m != nil {
+ return m.OneofField
+ }
+ return nil
+}
+
func (m *M) GetM2() *M2 {
if m != nil {
return m.M2
@@ -77,24 +199,316 @@ func (m *M) GetM2() *M2 {
return nil
}
+func (m *M) GetOneofInt32() int32 {
+ if x, ok := m.GetOneofField().(*M_OneofInt32); ok {
+ return x.OneofInt32
+ }
+ return 0
+}
+
+func (m *M) GetOneofInt64() int64 {
+ if x, ok := m.GetOneofField().(*M_OneofInt64); ok {
+ return x.OneofInt64
+ }
+ return 0
+}
+
+func (m *M) GetGrouping() *M_Grouping {
+ if m != nil {
+ return m.Grouping
+ }
+ return nil
+}
+
+func (m *M) GetDefaultField() string {
+ if m != nil && m.DefaultField != nil {
+ return *m.DefaultField
+ }
+ return Default_M_DefaultField
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*M) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+ return _M_OneofMarshaler, _M_OneofUnmarshaler, _M_OneofSizer, []interface{}{
+ (*M_OneofInt32)(nil),
+ (*M_OneofInt64)(nil),
+ }
+}
+
+func _M_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+ m := msg.(*M)
+ // oneof_field
+ switch x := m.OneofField.(type) {
+ case *M_OneofInt32:
+ _ = b.EncodeVarint(2<<3 | proto.WireVarint)
+ _ = b.EncodeVarint(uint64(x.OneofInt32))
+ case *M_OneofInt64:
+ _ = b.EncodeVarint(3<<3 | proto.WireVarint)
+ _ = b.EncodeVarint(uint64(x.OneofInt64))
+ case nil:
+ default:
+ return fmt.Errorf("M.OneofField has unexpected type %T", x)
+ }
+ return nil
+}
+
+func _M_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+ m := msg.(*M)
+ switch tag {
+ case 2: // oneof_field.oneof_int32
+ if wire != proto.WireVarint {
+ return true, proto.ErrInternalBadWireType
+ }
+ x, err := b.DecodeVarint()
+ m.OneofField = &M_OneofInt32{int32(x)}
+ return true, err
+ case 3: // oneof_field.oneof_int64
+ if wire != proto.WireVarint {
+ return true, proto.ErrInternalBadWireType
+ }
+ x, err := b.DecodeVarint()
+ m.OneofField = &M_OneofInt64{int64(x)}
+ return true, err
+ default:
+ return false, nil
+ }
+}
+
+func _M_OneofSizer(msg proto.Message) (n int) {
+ m := msg.(*M)
+ // oneof_field
+ switch x := m.OneofField.(type) {
+ case *M_OneofInt32:
+ n += 1 // tag and wire
+ n += proto.SizeVarint(uint64(x.OneofInt32))
+ case *M_OneofInt64:
+ n += 1 // tag and wire
+ n += proto.SizeVarint(uint64(x.OneofInt64))
+ case nil:
+ default:
+ panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+ }
+ return n
+}
+
+type M_Grouping struct {
+ GroupField *string `protobuf:"bytes,5,opt,name=group_field,json=groupField" json:"group_field,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *M_Grouping) Reset() { *m = M_Grouping{} }
+func (m *M_Grouping) String() string { return proto.CompactTextString(m) }
+func (*M_Grouping) ProtoMessage() {}
+func (*M_Grouping) Descriptor() ([]byte, []int) {
+ return fileDescriptor_382f7805394b5c4e, []int{0, 0}
+}
+func (m *M_Grouping) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_M_Grouping.Unmarshal(m, b)
+}
+func (m *M_Grouping) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_M_Grouping.Marshal(b, m, deterministic)
+}
+func (m *M_Grouping) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_M_Grouping.Merge(m, src)
+}
+func (m *M_Grouping) XXX_Size() int {
+ return xxx_messageInfo_M_Grouping.Size(m)
+}
+func (m *M_Grouping) XXX_DiscardUnknown() {
+ xxx_messageInfo_M_Grouping.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_M_Grouping proto.InternalMessageInfo
+
+func (m *M_Grouping) GetGroupField() string {
+ if m != nil && m.GroupField != nil {
+ return *m.GroupField
+ }
+ return ""
+}
+
+type M_Submessage struct {
+ // Types that are valid to be assigned to SubmessageOneofField:
+ // *M_Submessage_SubmessageOneofInt32
+ // *M_Submessage_SubmessageOneofInt64
+ SubmessageOneofField isM_Submessage_SubmessageOneofField `protobuf_oneof:"submessage_oneof_field"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *M_Submessage) Reset() { *m = M_Submessage{} }
+func (m *M_Submessage) String() string { return proto.CompactTextString(m) }
+func (*M_Submessage) ProtoMessage() {}
+func (*M_Submessage) Descriptor() ([]byte, []int) {
+ return fileDescriptor_382f7805394b5c4e, []int{0, 1}
+}
+func (m *M_Submessage) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_M_Submessage.Unmarshal(m, b)
+}
+func (m *M_Submessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_M_Submessage.Marshal(b, m, deterministic)
+}
+func (m *M_Submessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_M_Submessage.Merge(m, src)
+}
+func (m *M_Submessage) XXX_Size() int {
+ return xxx_messageInfo_M_Submessage.Size(m)
+}
+func (m *M_Submessage) XXX_DiscardUnknown() {
+ xxx_messageInfo_M_Submessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_M_Submessage proto.InternalMessageInfo
+
+type isM_Submessage_SubmessageOneofField interface {
+ isM_Submessage_SubmessageOneofField()
+}
+
+type M_Submessage_SubmessageOneofInt32 struct {
+ SubmessageOneofInt32 int32 `protobuf:"varint,1,opt,name=submessage_oneof_int32,json=submessageOneofInt32,oneof"`
+}
+type M_Submessage_SubmessageOneofInt64 struct {
+ SubmessageOneofInt64 int64 `protobuf:"varint,2,opt,name=submessage_oneof_int64,json=submessageOneofInt64,oneof"`
+}
+
+func (*M_Submessage_SubmessageOneofInt32) isM_Submessage_SubmessageOneofField() {}
+func (*M_Submessage_SubmessageOneofInt64) isM_Submessage_SubmessageOneofField() {}
+
+func (m *M_Submessage) GetSubmessageOneofField() isM_Submessage_SubmessageOneofField {
+ if m != nil {
+ return m.SubmessageOneofField
+ }
+ return nil
+}
+
+func (m *M_Submessage) GetSubmessageOneofInt32() int32 {
+ if x, ok := m.GetSubmessageOneofField().(*M_Submessage_SubmessageOneofInt32); ok {
+ return x.SubmessageOneofInt32
+ }
+ return 0
+}
+
+func (m *M_Submessage) GetSubmessageOneofInt64() int64 {
+ if x, ok := m.GetSubmessageOneofField().(*M_Submessage_SubmessageOneofInt64); ok {
+ return x.SubmessageOneofInt64
+ }
+ return 0
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*M_Submessage) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+ return _M_Submessage_OneofMarshaler, _M_Submessage_OneofUnmarshaler, _M_Submessage_OneofSizer, []interface{}{
+ (*M_Submessage_SubmessageOneofInt32)(nil),
+ (*M_Submessage_SubmessageOneofInt64)(nil),
+ }
+}
+
+func _M_Submessage_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+ m := msg.(*M_Submessage)
+ // submessage_oneof_field
+ switch x := m.SubmessageOneofField.(type) {
+ case *M_Submessage_SubmessageOneofInt32:
+ _ = b.EncodeVarint(1<<3 | proto.WireVarint)
+ _ = b.EncodeVarint(uint64(x.SubmessageOneofInt32))
+ case *M_Submessage_SubmessageOneofInt64:
+ _ = b.EncodeVarint(2<<3 | proto.WireVarint)
+ _ = b.EncodeVarint(uint64(x.SubmessageOneofInt64))
+ case nil:
+ default:
+ return fmt.Errorf("M_Submessage.SubmessageOneofField has unexpected type %T", x)
+ }
+ return nil
+}
+
+func _M_Submessage_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+ m := msg.(*M_Submessage)
+ switch tag {
+ case 1: // submessage_oneof_field.submessage_oneof_int32
+ if wire != proto.WireVarint {
+ return true, proto.ErrInternalBadWireType
+ }
+ x, err := b.DecodeVarint()
+ m.SubmessageOneofField = &M_Submessage_SubmessageOneofInt32{int32(x)}
+ return true, err
+ case 2: // submessage_oneof_field.submessage_oneof_int64
+ if wire != proto.WireVarint {
+ return true, proto.ErrInternalBadWireType
+ }
+ x, err := b.DecodeVarint()
+ m.SubmessageOneofField = &M_Submessage_SubmessageOneofInt64{int64(x)}
+ return true, err
+ default:
+ return false, nil
+ }
+}
+
+func _M_Submessage_OneofSizer(msg proto.Message) (n int) {
+ m := msg.(*M_Submessage)
+ // submessage_oneof_field
+ switch x := m.SubmessageOneofField.(type) {
+ case *M_Submessage_SubmessageOneofInt32:
+ n += 1 // tag and wire
+ n += proto.SizeVarint(uint64(x.SubmessageOneofInt32))
+ case *M_Submessage_SubmessageOneofInt64:
+ n += 1 // tag and wire
+ n += proto.SizeVarint(uint64(x.SubmessageOneofInt64))
+ case nil:
+ default:
+ panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+ }
+ return n
+}
+
+var E_ExtensionField = &proto.ExtensionDesc{
+ ExtendedType: (*M2)(nil),
+ ExtensionType: (*string)(nil),
+ Field: 1,
+ Name: "goproto.test.import_public.sub.extension_field",
+ Tag: "bytes,1,opt,name=extension_field",
+ Filename: "import_public/sub/a.proto",
+}
+
func init() {
- proto.RegisterType((*M)(nil), "goproto.test.import_public.sub.M")
proto.RegisterEnum("goproto.test.import_public.sub.E", E_name, E_value)
+ proto.RegisterEnum("goproto.test.import_public.sub.M_Subenum", M_Subenum_name, M_Subenum_value)
+ proto.RegisterEnum("goproto.test.import_public.sub.M_Submessage_Submessage_Subenum", M_Submessage_Submessage_Subenum_name, M_Submessage_Submessage_Subenum_value)
+ proto.RegisterType((*M)(nil), "goproto.test.import_public.sub.M")
+ proto.RegisterType((*M_Grouping)(nil), "goproto.test.import_public.sub.M.Grouping")
+ proto.RegisterType((*M_Submessage)(nil), "goproto.test.import_public.sub.M.Submessage")
+ proto.RegisterExtension(E_ExtensionField)
}
-func init() { proto.RegisterFile("import_public/sub/a.proto", fileDescriptor_a_051bb22eaae5295a) }
-
-var fileDescriptor_a_051bb22eaae5295a = []byte{
- // 169 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xcc, 0xcc, 0x2d, 0xc8,
- 0x2f, 0x2a, 0x89, 0x2f, 0x28, 0x4d, 0xca, 0xc9, 0x4c, 0xd6, 0x2f, 0x2e, 0x4d, 0xd2, 0x4f, 0xd4,
- 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0x4b, 0xcf, 0x07, 0x33, 0xf4, 0x4a, 0x52, 0x8b, 0x4b,
- 0xf4, 0x50, 0xd4, 0xe9, 0x15, 0x97, 0x26, 0x49, 0x61, 0xd1, 0x9a, 0x04, 0xd1, 0xaa, 0x64, 0xce,
- 0xc5, 0xe8, 0x2b, 0x64, 0xc4, 0xc5, 0x94, 0x6b, 0x24, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x6d, 0xa4,
- 0xa4, 0x87, 0xdf, 0x30, 0x3d, 0x5f, 0xa3, 0x20, 0xa6, 0x5c, 0x23, 0x2d, 0x5e, 0x2e, 0x46, 0x57,
- 0x21, 0x0e, 0x2e, 0x96, 0x28, 0xd7, 0x20, 0x7f, 0x01, 0x06, 0x27, 0xd7, 0x28, 0xe7, 0xf4, 0xcc,
- 0x92, 0x8c, 0xd2, 0x24, 0xbd, 0xe4, 0xfc, 0x5c, 0xfd, 0xf4, 0xfc, 0xf4, 0x7c, 0x7d, 0xb0, 0x29,
- 0x49, 0xa5, 0x69, 0x10, 0x46, 0xb2, 0x6e, 0x7a, 0x6a, 0x9e, 0x2e, 0x58, 0x02, 0x64, 0x70, 0x4a,
- 0x62, 0x49, 0xa2, 0x3e, 0x86, 0xb3, 0x92, 0xd8, 0xc0, 0x6a, 0x8d, 0x01, 0x01, 0x00, 0x00, 0xff,
- 0xff, 0x7a, 0x6a, 0x5c, 0xb5, 0xed, 0x00, 0x00, 0x00,
+func init() { proto.RegisterFile("import_public/sub/a.proto", fileDescriptor_382f7805394b5c4e) }
+
+var fileDescriptor_382f7805394b5c4e = []byte{
+ // 407 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xcf, 0x6e, 0x9b, 0x40,
+ 0x10, 0xc6, 0xb3, 0xc6, 0x49, 0x9d, 0x71, 0xdd, 0x3f, 0xab, 0xa6, 0xa2, 0x39, 0xb4, 0x94, 0x13,
+ 0x4a, 0x94, 0x45, 0xa2, 0x88, 0x43, 0x6e, 0x75, 0x45, 0xd2, 0xaa, 0x42, 0x91, 0x40, 0xbd, 0xe4,
+ 0x82, 0x58, 0xb3, 0x6c, 0x91, 0x0c, 0x8b, 0xcc, 0xae, 0xd4, 0x47, 0xe8, 0x7b, 0xf5, 0xc5, 0x2a,
+ 0x16, 0xb0, 0x63, 0xd5, 0x6d, 0x73, 0x5b, 0xe6, 0xfb, 0x7e, 0x33, 0x9a, 0x8f, 0x81, 0x37, 0x65,
+ 0xd5, 0x88, 0x8d, 0x4c, 0x1b, 0x45, 0xd7, 0xe5, 0xca, 0x6d, 0x15, 0x75, 0x33, 0xd2, 0x6c, 0x84,
+ 0x14, 0xf8, 0x2d, 0x17, 0xfa, 0x41, 0x24, 0x6b, 0x25, 0xd9, 0xf3, 0x91, 0x56, 0xd1, 0xf3, 0x03,
+ 0x28, 0xed, 0x51, 0xfb, 0xe7, 0x14, 0x50, 0x84, 0x3d, 0x98, 0x54, 0x9e, 0x89, 0x2c, 0xe4, 0xcc,
+ 0x3d, 0x9b, 0xfc, 0xbb, 0x1b, 0x89, 0xbc, 0x78, 0x52, 0x79, 0xf8, 0x3d, 0xcc, 0x45, 0xcd, 0x44,
+ 0x91, 0x96, 0xb5, 0xfc, 0xe0, 0x99, 0x13, 0x0b, 0x39, 0xc7, 0x9f, 0x8f, 0x62, 0xd0, 0xc5, 0x2f,
+ 0x5d, 0x6d, 0xcf, 0x12, 0xf8, 0xa6, 0x61, 0x21, 0xc7, 0x78, 0x68, 0x09, 0x7c, 0x7c, 0x03, 0x33,
+ 0xbe, 0x11, 0xaa, 0x29, 0x6b, 0x6e, 0x4e, 0x2d, 0xe4, 0x80, 0x77, 0xf1, 0xdf, 0xf9, 0xe4, 0x76,
+ 0x20, 0xe2, 0x2d, 0x8b, 0x1d, 0x58, 0xe4, 0xac, 0xc8, 0xd4, 0x5a, 0xa6, 0x45, 0xc9, 0xd6, 0xb9,
+ 0x79, 0x62, 0x21, 0xe7, 0xf4, 0xda, 0xc8, 0x59, 0x11, 0x3f, 0x1d, 0x94, 0x9b, 0x4e, 0x38, 0xbf,
+ 0x84, 0xd9, 0xc8, 0xe3, 0x77, 0x30, 0xd7, 0x1d, 0x06, 0xe6, 0xb8, 0x63, 0x62, 0xd0, 0xa5, 0xde,
+ 0xfc, 0x0b, 0x01, 0x24, 0x8a, 0x56, 0xac, 0x6d, 0x33, 0xce, 0x70, 0x00, 0xaf, 0xdb, 0xed, 0x57,
+ 0xfa, 0x70, 0x7d, 0x34, 0xac, 0xff, 0x6a, 0xa7, 0xdf, 0xed, 0x82, 0xf8, 0x0b, 0x17, 0xf8, 0x3a,
+ 0x36, 0xe3, 0x30, 0x17, 0xf8, 0xf6, 0x25, 0xe0, 0xdd, 0xf4, 0x34, 0x51, 0x94, 0xd5, 0xaa, 0xc2,
+ 0x67, 0xf0, 0x32, 0x4a, 0x93, 0x6f, 0xcb, 0x28, 0x4c, 0x92, 0x8f, 0xb7, 0x61, 0x7a, 0x1f, 0xc6,
+ 0x77, 0x2f, 0x8e, 0x96, 0xe6, 0x81, 0x21, 0x7a, 0x2f, 0xfb, 0x0c, 0x9e, 0x8c, 0x2c, 0xc0, 0x49,
+ 0x34, 0x02, 0x8b, 0xf1, 0xf7, 0x68, 0xd7, 0xc5, 0x02, 0x50, 0x88, 0x67, 0x30, 0xed, 0xd5, 0xeb,
+ 0xaf, 0xf0, 0x9c, 0xfd, 0x90, 0xac, 0x6e, 0x4b, 0x51, 0xf7, 0x0e, 0xfc, 0x88, 0xd3, 0xd0, 0x41,
+ 0x9c, 0xc6, 0xcf, 0xb6, 0xa8, 0xce, 0x71, 0x19, 0xde, 0x7f, 0xe2, 0xa5, 0xfc, 0xae, 0x28, 0x59,
+ 0x89, 0xca, 0xe5, 0x82, 0x0b, 0x57, 0x37, 0xa2, 0xaa, 0xe8, 0x1f, 0xab, 0x2b, 0xce, 0xea, 0x2b,
+ 0x2d, 0x74, 0xbd, 0xf3, 0x4c, 0x66, 0xee, 0x1f, 0x57, 0xfb, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x4f,
+ 0x37, 0x1b, 0x7d, 0x04, 0x03, 0x00, 0x00,
}
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub/b.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub/b.pb.go
index d43a5c6a04..c9dbd8c0bf 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub/b.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub/b.pb.go
@@ -1,11 +1,13 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: import_public/sub/b.proto
-package sub // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/import_public/sub"
+package sub
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -19,25 +21,35 @@ var _ = math.Inf
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
type M2 struct {
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ proto.XXX_InternalExtensions `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
func (m *M2) Reset() { *m = M2{} }
func (m *M2) String() string { return proto.CompactTextString(m) }
func (*M2) ProtoMessage() {}
func (*M2) Descriptor() ([]byte, []int) {
- return fileDescriptor_b_d16d7ba92a37c489, []int{0}
+ return fileDescriptor_fc66afda3d7c2232, []int{0}
}
+
+var extRange_M2 = []proto.ExtensionRange{
+ {Start: 1, End: 536870911},
+}
+
+func (*M2) ExtensionRangeArray() []proto.ExtensionRange {
+ return extRange_M2
+}
+
func (m *M2) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_M2.Unmarshal(m, b)
}
func (m *M2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_M2.Marshal(b, m, deterministic)
}
-func (dst *M2) XXX_Merge(src proto.Message) {
- xxx_messageInfo_M2.Merge(dst, src)
+func (m *M2) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_M2.Merge(m, src)
}
func (m *M2) XXX_Size() int {
return xxx_messageInfo_M2.Size(m)
@@ -52,16 +64,17 @@ func init() {
proto.RegisterType((*M2)(nil), "goproto.test.import_public.sub.M2")
}
-func init() { proto.RegisterFile("import_public/sub/b.proto", fileDescriptor_b_d16d7ba92a37c489) }
+func init() { proto.RegisterFile("import_public/sub/b.proto", fileDescriptor_fc66afda3d7c2232) }
-var fileDescriptor_b_d16d7ba92a37c489 = []byte{
- // 124 bytes of a gzipped FileDescriptorProto
+var fileDescriptor_fc66afda3d7c2232 = []byte{
+ // 129 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xcc, 0xcc, 0x2d, 0xc8,
0x2f, 0x2a, 0x89, 0x2f, 0x28, 0x4d, 0xca, 0xc9, 0x4c, 0xd6, 0x2f, 0x2e, 0x4d, 0xd2, 0x4f, 0xd2,
0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0x4b, 0xcf, 0x07, 0x33, 0xf4, 0x4a, 0x52, 0x8b, 0x4b,
- 0xf4, 0x50, 0xd4, 0xe9, 0x15, 0x97, 0x26, 0x29, 0xb1, 0x70, 0x31, 0xf9, 0x1a, 0x39, 0xb9, 0x46,
- 0x39, 0xa7, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0xa7, 0xe7, 0xa7, 0xe7,
- 0xeb, 0x83, 0x75, 0x25, 0x95, 0xa6, 0x41, 0x18, 0xc9, 0xba, 0xe9, 0xa9, 0x79, 0xba, 0x60, 0x09,
- 0x90, 0x41, 0x29, 0x89, 0x25, 0x89, 0xfa, 0x18, 0x96, 0x26, 0xb1, 0x81, 0xd5, 0x1a, 0x03, 0x02,
- 0x00, 0x00, 0xff, 0xff, 0x9f, 0xe4, 0xbf, 0x60, 0x90, 0x00, 0x00, 0x00,
+ 0xf4, 0x50, 0xd4, 0xe9, 0x15, 0x97, 0x26, 0x29, 0xf1, 0x71, 0x31, 0xf9, 0x1a, 0x69, 0x71, 0x70,
+ 0x30, 0x0a, 0x34, 0x34, 0x34, 0x34, 0x30, 0x39, 0xb9, 0x46, 0x39, 0xa7, 0x67, 0x96, 0x64, 0x94,
+ 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0xa7, 0xe7, 0xa7, 0xe7, 0xeb, 0x83, 0xf5, 0x27, 0x95, 0xa6,
+ 0x41, 0x18, 0xc9, 0xba, 0xe9, 0xa9, 0x79, 0xba, 0x60, 0x09, 0x90, 0x91, 0x29, 0x89, 0x25, 0x89,
+ 0xfa, 0x18, 0xd6, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0xdb, 0x3c, 0x08, 0x57, 0x92, 0x00, 0x00,
+ 0x00,
}
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/fmt/m.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/fmt/m.pb.go
index ac828dfbca..245cc81c1e 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/fmt/m.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/fmt/m.pb.go
@@ -1,11 +1,13 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: imports/fmt/m.proto
-package fmt // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/fmt"
+package fmt
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -28,7 +30,7 @@ func (m *M) Reset() { *m = M{} }
func (m *M) String() string { return proto.CompactTextString(m) }
func (*M) ProtoMessage() {}
func (*M) Descriptor() ([]byte, []int) {
- return fileDescriptor_m_33cccd852670578e, []int{0}
+ return fileDescriptor_72c126fcd452e392, []int{0}
}
func (m *M) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_M.Unmarshal(m, b)
@@ -36,8 +38,8 @@ func (m *M) XXX_Unmarshal(b []byte) error {
func (m *M) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_M.Marshal(b, m, deterministic)
}
-func (dst *M) XXX_Merge(src proto.Message) {
- xxx_messageInfo_M.Merge(dst, src)
+func (m *M) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_M.Merge(m, src)
}
func (m *M) XXX_Size() int {
return xxx_messageInfo_M.Size(m)
@@ -52,9 +54,9 @@ func init() {
proto.RegisterType((*M)(nil), "fmt.M")
}
-func init() { proto.RegisterFile("imports/fmt/m.proto", fileDescriptor_m_33cccd852670578e) }
+func init() { proto.RegisterFile("imports/fmt/m.proto", fileDescriptor_72c126fcd452e392) }
-var fileDescriptor_m_33cccd852670578e = []byte{
+var fileDescriptor_72c126fcd452e392 = []byte{
// 106 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xce, 0xcc, 0x2d, 0xc8,
0x2f, 0x2a, 0x29, 0xd6, 0x4f, 0xcb, 0x2d, 0xd1, 0xcf, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17,
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1/m1.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1/m1.pb.go
index f0e3a79eca..60b390197d 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1/m1.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1/m1.pb.go
@@ -1,11 +1,13 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: imports/test_a_1/m1.proto
-package test_a_1 // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1"
+package test_a_1
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -27,6 +29,7 @@ const (
var E1_name = map[int32]string{
0: "E1_ZERO",
}
+
var E1_value = map[string]int32{
"E1_ZERO": 0,
}
@@ -34,8 +37,9 @@ var E1_value = map[string]int32{
func (x E1) String() string {
return proto.EnumName(E1_name, int32(x))
}
+
func (E1) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_m1_d51bc82db1cbc235, []int{0}
+ return fileDescriptor_c1091de3fa870a14, []int{0}
}
type M1 struct {
@@ -48,7 +52,7 @@ func (m *M1) Reset() { *m = M1{} }
func (m *M1) String() string { return proto.CompactTextString(m) }
func (*M1) ProtoMessage() {}
func (*M1) Descriptor() ([]byte, []int) {
- return fileDescriptor_m1_d51bc82db1cbc235, []int{0}
+ return fileDescriptor_c1091de3fa870a14, []int{0}
}
func (m *M1) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_M1.Unmarshal(m, b)
@@ -56,8 +60,8 @@ func (m *M1) XXX_Unmarshal(b []byte) error {
func (m *M1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_M1.Marshal(b, m, deterministic)
}
-func (dst *M1) XXX_Merge(src proto.Message) {
- xxx_messageInfo_M1.Merge(dst, src)
+func (m *M1) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_M1.Merge(m, src)
}
func (m *M1) XXX_Size() int {
return xxx_messageInfo_M1.Size(m)
@@ -79,7 +83,7 @@ func (m *M1_1) Reset() { *m = M1_1{} }
func (m *M1_1) String() string { return proto.CompactTextString(m) }
func (*M1_1) ProtoMessage() {}
func (*M1_1) Descriptor() ([]byte, []int) {
- return fileDescriptor_m1_d51bc82db1cbc235, []int{1}
+ return fileDescriptor_c1091de3fa870a14, []int{1}
}
func (m *M1_1) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_M1_1.Unmarshal(m, b)
@@ -87,8 +91,8 @@ func (m *M1_1) XXX_Unmarshal(b []byte) error {
func (m *M1_1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_M1_1.Marshal(b, m, deterministic)
}
-func (dst *M1_1) XXX_Merge(src proto.Message) {
- xxx_messageInfo_M1_1.Merge(dst, src)
+func (m *M1_1) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_M1_1.Merge(m, src)
}
func (m *M1_1) XXX_Size() int {
return xxx_messageInfo_M1_1.Size(m)
@@ -107,14 +111,14 @@ func (m *M1_1) GetM1() *M1 {
}
func init() {
+ proto.RegisterEnum("test.a.E1", E1_name, E1_value)
proto.RegisterType((*M1)(nil), "test.a.M1")
proto.RegisterType((*M1_1)(nil), "test.a.M1_1")
- proto.RegisterEnum("test.a.E1", E1_name, E1_value)
}
-func init() { proto.RegisterFile("imports/test_a_1/m1.proto", fileDescriptor_m1_d51bc82db1cbc235) }
+func init() { proto.RegisterFile("imports/test_a_1/m1.proto", fileDescriptor_c1091de3fa870a14) }
-var fileDescriptor_m1_d51bc82db1cbc235 = []byte{
+var fileDescriptor_c1091de3fa870a14 = []byte{
// 163 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xcc, 0xcc, 0x2d, 0xc8,
0x2f, 0x2a, 0x29, 0xd6, 0x2f, 0x49, 0x2d, 0x2e, 0x89, 0x4f, 0x8c, 0x37, 0xd4, 0xcf, 0x35, 0xd4,
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1/m2.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1/m2.pb.go
index 8ce9fb47ca..c2604d6fc8 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1/m2.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1/m2.pb.go
@@ -1,11 +1,13 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: imports/test_a_1/m2.proto
-package test_a_1 // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1"
+package test_a_1
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -28,7 +30,7 @@ func (m *M2) Reset() { *m = M2{} }
func (m *M2) String() string { return proto.CompactTextString(m) }
func (*M2) ProtoMessage() {}
func (*M2) Descriptor() ([]byte, []int) {
- return fileDescriptor_m2_d5c8bd8077345106, []int{0}
+ return fileDescriptor_20cf27515c0d621c, []int{0}
}
func (m *M2) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_M2.Unmarshal(m, b)
@@ -36,8 +38,8 @@ func (m *M2) XXX_Unmarshal(b []byte) error {
func (m *M2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_M2.Marshal(b, m, deterministic)
}
-func (dst *M2) XXX_Merge(src proto.Message) {
- xxx_messageInfo_M2.Merge(dst, src)
+func (m *M2) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_M2.Merge(m, src)
}
func (m *M2) XXX_Size() int {
return xxx_messageInfo_M2.Size(m)
@@ -52,9 +54,9 @@ func init() {
proto.RegisterType((*M2)(nil), "test.a.M2")
}
-func init() { proto.RegisterFile("imports/test_a_1/m2.proto", fileDescriptor_m2_d5c8bd8077345106) }
+func init() { proto.RegisterFile("imports/test_a_1/m2.proto", fileDescriptor_20cf27515c0d621c) }
-var fileDescriptor_m2_d5c8bd8077345106 = []byte{
+var fileDescriptor_20cf27515c0d621c = []byte{
// 112 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xcc, 0xcc, 0x2d, 0xc8,
0x2f, 0x2a, 0x29, 0xd6, 0x2f, 0x49, 0x2d, 0x2e, 0x89, 0x4f, 0x8c, 0x37, 0xd4, 0xcf, 0x35, 0xd2,
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2/m3.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2/m3.pb.go
index 09b9b072a0..f25c6688bb 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2/m3.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2/m3.pb.go
@@ -1,11 +1,13 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: imports/test_a_2/m3.proto
-package test_a_2 // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2"
+package test_a_2
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -28,7 +30,7 @@ func (m *M3) Reset() { *m = M3{} }
func (m *M3) String() string { return proto.CompactTextString(m) }
func (*M3) ProtoMessage() {}
func (*M3) Descriptor() ([]byte, []int) {
- return fileDescriptor_m3_064810011afd7503, []int{0}
+ return fileDescriptor_ff9d8f834875c9c5, []int{0}
}
func (m *M3) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_M3.Unmarshal(m, b)
@@ -36,8 +38,8 @@ func (m *M3) XXX_Unmarshal(b []byte) error {
func (m *M3) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_M3.Marshal(b, m, deterministic)
}
-func (dst *M3) XXX_Merge(src proto.Message) {
- xxx_messageInfo_M3.Merge(dst, src)
+func (m *M3) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_M3.Merge(m, src)
}
func (m *M3) XXX_Size() int {
return xxx_messageInfo_M3.Size(m)
@@ -52,9 +54,9 @@ func init() {
proto.RegisterType((*M3)(nil), "test.a.M3")
}
-func init() { proto.RegisterFile("imports/test_a_2/m3.proto", fileDescriptor_m3_064810011afd7503) }
+func init() { proto.RegisterFile("imports/test_a_2/m3.proto", fileDescriptor_ff9d8f834875c9c5) }
-var fileDescriptor_m3_064810011afd7503 = []byte{
+var fileDescriptor_ff9d8f834875c9c5 = []byte{
// 112 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xcc, 0xcc, 0x2d, 0xc8,
0x2f, 0x2a, 0x29, 0xd6, 0x2f, 0x49, 0x2d, 0x2e, 0x89, 0x4f, 0x8c, 0x37, 0xd2, 0xcf, 0x35, 0xd6,
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2/m4.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2/m4.pb.go
index 208210374a..0fa0164e44 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2/m4.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2/m4.pb.go
@@ -1,11 +1,13 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: imports/test_a_2/m4.proto
-package test_a_2 // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2"
+package test_a_2
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -28,7 +30,7 @@ func (m *M4) Reset() { *m = M4{} }
func (m *M4) String() string { return proto.CompactTextString(m) }
func (*M4) ProtoMessage() {}
func (*M4) Descriptor() ([]byte, []int) {
- return fileDescriptor_m4_4d6eef89f3bce729, []int{0}
+ return fileDescriptor_fdd24f82f6c5a786, []int{0}
}
func (m *M4) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_M4.Unmarshal(m, b)
@@ -36,8 +38,8 @@ func (m *M4) XXX_Unmarshal(b []byte) error {
func (m *M4) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_M4.Marshal(b, m, deterministic)
}
-func (dst *M4) XXX_Merge(src proto.Message) {
- xxx_messageInfo_M4.Merge(dst, src)
+func (m *M4) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_M4.Merge(m, src)
}
func (m *M4) XXX_Size() int {
return xxx_messageInfo_M4.Size(m)
@@ -52,9 +54,9 @@ func init() {
proto.RegisterType((*M4)(nil), "test.a.M4")
}
-func init() { proto.RegisterFile("imports/test_a_2/m4.proto", fileDescriptor_m4_4d6eef89f3bce729) }
+func init() { proto.RegisterFile("imports/test_a_2/m4.proto", fileDescriptor_fdd24f82f6c5a786) }
-var fileDescriptor_m4_4d6eef89f3bce729 = []byte{
+var fileDescriptor_fdd24f82f6c5a786 = []byte{
// 112 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xcc, 0xcc, 0x2d, 0xc8,
0x2f, 0x2a, 0x29, 0xd6, 0x2f, 0x49, 0x2d, 0x2e, 0x89, 0x4f, 0x8c, 0x37, 0xd2, 0xcf, 0x35, 0xd1,
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1/m1.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1/m1.pb.go
index 312383a45f..4207274ef7 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1/m1.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1/m1.pb.go
@@ -1,11 +1,13 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: imports/test_b_1/m1.proto
-package beta // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1"
+package beta
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -28,7 +30,7 @@ func (m *M1) Reset() { *m = M1{} }
func (m *M1) String() string { return proto.CompactTextString(m) }
func (*M1) ProtoMessage() {}
func (*M1) Descriptor() ([]byte, []int) {
- return fileDescriptor_m1_dbaf48759a325297, []int{0}
+ return fileDescriptor_7f49573d035512a8, []int{0}
}
func (m *M1) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_M1.Unmarshal(m, b)
@@ -36,8 +38,8 @@ func (m *M1) XXX_Unmarshal(b []byte) error {
func (m *M1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_M1.Marshal(b, m, deterministic)
}
-func (dst *M1) XXX_Merge(src proto.Message) {
- xxx_messageInfo_M1.Merge(dst, src)
+func (m *M1) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_M1.Merge(m, src)
}
func (m *M1) XXX_Size() int {
return xxx_messageInfo_M1.Size(m)
@@ -52,9 +54,9 @@ func init() {
proto.RegisterType((*M1)(nil), "test.b.part1.M1")
}
-func init() { proto.RegisterFile("imports/test_b_1/m1.proto", fileDescriptor_m1_dbaf48759a325297) }
+func init() { proto.RegisterFile("imports/test_b_1/m1.proto", fileDescriptor_7f49573d035512a8) }
-var fileDescriptor_m1_dbaf48759a325297 = []byte{
+var fileDescriptor_7f49573d035512a8 = []byte{
// 123 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xcc, 0xcc, 0x2d, 0xc8,
0x2f, 0x2a, 0x29, 0xd6, 0x2f, 0x49, 0x2d, 0x2e, 0x89, 0x4f, 0x8a, 0x37, 0xd4, 0xcf, 0x35, 0xd4,
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1/m2.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1/m2.pb.go
index 35da5f9d3e..56779a6197 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1/m2.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1/m2.pb.go
@@ -1,11 +1,13 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: imports/test_b_1/m2.proto
-package beta // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1"
+package beta
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -28,7 +30,7 @@ func (m *M2) Reset() { *m = M2{} }
func (m *M2) String() string { return proto.CompactTextString(m) }
func (*M2) ProtoMessage() {}
func (*M2) Descriptor() ([]byte, []int) {
- return fileDescriptor_m2_6eda99829d3a5ac8, []int{0}
+ return fileDescriptor_a1becddceeb586f2, []int{0}
}
func (m *M2) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_M2.Unmarshal(m, b)
@@ -36,8 +38,8 @@ func (m *M2) XXX_Unmarshal(b []byte) error {
func (m *M2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_M2.Marshal(b, m, deterministic)
}
-func (dst *M2) XXX_Merge(src proto.Message) {
- xxx_messageInfo_M2.Merge(dst, src)
+func (m *M2) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_M2.Merge(m, src)
}
func (m *M2) XXX_Size() int {
return xxx_messageInfo_M2.Size(m)
@@ -52,9 +54,9 @@ func init() {
proto.RegisterType((*M2)(nil), "test.b.part2.M2")
}
-func init() { proto.RegisterFile("imports/test_b_1/m2.proto", fileDescriptor_m2_6eda99829d3a5ac8) }
+func init() { proto.RegisterFile("imports/test_b_1/m2.proto", fileDescriptor_a1becddceeb586f2) }
-var fileDescriptor_m2_6eda99829d3a5ac8 = []byte{
+var fileDescriptor_a1becddceeb586f2 = []byte{
// 123 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xcc, 0xcc, 0x2d, 0xc8,
0x2f, 0x2a, 0x29, 0xd6, 0x2f, 0x49, 0x2d, 0x2e, 0x89, 0x4f, 0x8a, 0x37, 0xd4, 0xcf, 0x35, 0xd2,
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_a1m1.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_a1m1.pb.go
index ad84d069be..960aed26ad 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_a1m1.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_a1m1.pb.go
@@ -1,12 +1,14 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: imports/test_import_a1m1.proto
-package imports // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports"
+package imports
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import test_a_1 "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ test_a_1 "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -30,7 +32,7 @@ func (m *A1M1) Reset() { *m = A1M1{} }
func (m *A1M1) String() string { return proto.CompactTextString(m) }
func (*A1M1) ProtoMessage() {}
func (*A1M1) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_import_a1m1_2621f8d5ff4f97af, []int{0}
+ return fileDescriptor_3b904a47327455f3, []int{0}
}
func (m *A1M1) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_A1M1.Unmarshal(m, b)
@@ -38,8 +40,8 @@ func (m *A1M1) XXX_Unmarshal(b []byte) error {
func (m *A1M1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_A1M1.Marshal(b, m, deterministic)
}
-func (dst *A1M1) XXX_Merge(src proto.Message) {
- xxx_messageInfo_A1M1.Merge(dst, src)
+func (m *A1M1) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_A1M1.Merge(m, src)
}
func (m *A1M1) XXX_Size() int {
return xxx_messageInfo_A1M1.Size(m)
@@ -61,11 +63,9 @@ func init() {
proto.RegisterType((*A1M1)(nil), "test.A1M1")
}
-func init() {
- proto.RegisterFile("imports/test_import_a1m1.proto", fileDescriptor_test_import_a1m1_2621f8d5ff4f97af)
-}
+func init() { proto.RegisterFile("imports/test_import_a1m1.proto", fileDescriptor_3b904a47327455f3) }
-var fileDescriptor_test_import_a1m1_2621f8d5ff4f97af = []byte{
+var fileDescriptor_3b904a47327455f3 = []byte{
// 147 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xcb, 0xcc, 0x2d, 0xc8,
0x2f, 0x2a, 0x29, 0xd6, 0x2f, 0x49, 0x2d, 0x2e, 0x89, 0x87, 0x70, 0xe2, 0x13, 0x0d, 0x73, 0x0d,
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_a1m2.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_a1m2.pb.go
index d86bcb215e..4dd0080956 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_a1m2.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_a1m2.pb.go
@@ -1,12 +1,14 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: imports/test_import_a1m2.proto
-package imports // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports"
+package imports
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import test_a_1 "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ test_a_1 "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -30,7 +32,7 @@ func (m *A1M2) Reset() { *m = A1M2{} }
func (m *A1M2) String() string { return proto.CompactTextString(m) }
func (*A1M2) ProtoMessage() {}
func (*A1M2) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_import_a1m2_01f3ba09eb823c21, []int{0}
+ return fileDescriptor_bdb27b114687957d, []int{0}
}
func (m *A1M2) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_A1M2.Unmarshal(m, b)
@@ -38,8 +40,8 @@ func (m *A1M2) XXX_Unmarshal(b []byte) error {
func (m *A1M2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_A1M2.Marshal(b, m, deterministic)
}
-func (dst *A1M2) XXX_Merge(src proto.Message) {
- xxx_messageInfo_A1M2.Merge(dst, src)
+func (m *A1M2) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_A1M2.Merge(m, src)
}
func (m *A1M2) XXX_Size() int {
return xxx_messageInfo_A1M2.Size(m)
@@ -61,11 +63,9 @@ func init() {
proto.RegisterType((*A1M2)(nil), "test.A1M2")
}
-func init() {
- proto.RegisterFile("imports/test_import_a1m2.proto", fileDescriptor_test_import_a1m2_01f3ba09eb823c21)
-}
+func init() { proto.RegisterFile("imports/test_import_a1m2.proto", fileDescriptor_bdb27b114687957d) }
-var fileDescriptor_test_import_a1m2_01f3ba09eb823c21 = []byte{
+var fileDescriptor_bdb27b114687957d = []byte{
// 147 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xcb, 0xcc, 0x2d, 0xc8,
0x2f, 0x2a, 0x29, 0xd6, 0x2f, 0x49, 0x2d, 0x2e, 0x89, 0x87, 0x70, 0xe2, 0x13, 0x0d, 0x73, 0x8d,
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_all.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_all.pb.go
index d2aa5bbd4a..19ae861eb4 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_all.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_import_all.pb.go
@@ -1,15 +1,17 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: imports/test_import_all.proto
-package imports // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports"
-
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import fmt1 "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/fmt"
-import test_a_1 "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1"
-import test_a_2 "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2"
-import test_b_1 "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1"
+package imports
+
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ fmt1 "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/fmt"
+ test_a_1 "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_1"
+ test_a_2 "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_a_2"
+ test_b_1 "github.com/gogo/protobuf/protoc-gen-gogo/testdata/imports/test_b_1"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -39,7 +41,7 @@ func (m *All) Reset() { *m = All{} }
func (m *All) String() string { return proto.CompactTextString(m) }
func (*All) ProtoMessage() {}
func (*All) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_import_all_a07d58de416f602a, []int{0}
+ return fileDescriptor_324466f0afc16f77, []int{0}
}
func (m *All) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_All.Unmarshal(m, b)
@@ -47,8 +49,8 @@ func (m *All) XXX_Unmarshal(b []byte) error {
func (m *All) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_All.Marshal(b, m, deterministic)
}
-func (dst *All) XXX_Merge(src proto.Message) {
- xxx_messageInfo_All.Merge(dst, src)
+func (m *All) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_All.Merge(m, src)
}
func (m *All) XXX_Size() int {
return xxx_messageInfo_All.Size(m)
@@ -112,11 +114,9 @@ func init() {
proto.RegisterType((*All)(nil), "test.All")
}
-func init() {
- proto.RegisterFile("imports/test_import_all.proto", fileDescriptor_test_import_all_a07d58de416f602a)
-}
+func init() { proto.RegisterFile("imports/test_import_all.proto", fileDescriptor_324466f0afc16f77) }
-var fileDescriptor_test_import_all_a07d58de416f602a = []byte{
+var fileDescriptor_324466f0afc16f77 = []byte{
// 258 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0xd0, 0x31, 0x4f, 0xf3, 0x30,
0x10, 0x06, 0x60, 0xe5, 0x73, 0xbf, 0x20, 0x99, 0x05, 0x85, 0xc5, 0x20, 0x90, 0x50, 0x27, 0x96,
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go
index 2798c068f9..a978e8261a 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go
@@ -1,16 +1,16 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: my_test/test.proto
-package test // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/my_test"
+// This package holds interesting messages.
-/*
-This package holds interesting messages.
-*/
+package test
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ _ "github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -35,6 +35,7 @@ var HatType_name = map[int32]string{
1: "FEDORA",
2: "FEZ",
}
+
var HatType_value = map[string]int32{
"FEDORA": 1,
"FEZ": 2,
@@ -45,9 +46,11 @@ func (x HatType) Enum() *HatType {
*p = x
return p
}
+
func (x HatType) String() string {
return proto.EnumName(HatType_name, int32(x))
}
+
func (x *HatType) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(HatType_value, data, "HatType")
if err != nil {
@@ -56,8 +59,9 @@ func (x *HatType) UnmarshalJSON(data []byte) error {
*x = HatType(value)
return nil
}
+
func (HatType) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_test_220c5cc0922855ae, []int{0}
+ return fileDescriptor_2c9b60a40d5131b9, []int{0}
}
// This enum represents days of the week.
@@ -74,6 +78,7 @@ var Days_name = map[int32]string{
2: "TUESDAY",
// Duplicate value: 1: "LUNDI",
}
+
var Days_value = map[string]int32{
"MONDAY": 1,
"TUESDAY": 2,
@@ -85,9 +90,11 @@ func (x Days) Enum() *Days {
*p = x
return p
}
+
func (x Days) String() string {
return proto.EnumName(Days_name, int32(x))
}
+
func (x *Days) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(Days_value, data, "Days")
if err != nil {
@@ -96,8 +103,9 @@ func (x *Days) UnmarshalJSON(data []byte) error {
*x = Days(value)
return nil
}
+
func (Days) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_test_220c5cc0922855ae, []int{1}
+ return fileDescriptor_2c9b60a40d5131b9, []int{1}
}
type Request_Color int32
@@ -113,6 +121,7 @@ var Request_Color_name = map[int32]string{
1: "GREEN",
2: "BLUE",
}
+
var Request_Color_value = map[string]int32{
"RED": 0,
"GREEN": 1,
@@ -124,9 +133,11 @@ func (x Request_Color) Enum() *Request_Color {
*p = x
return p
}
+
func (x Request_Color) String() string {
return proto.EnumName(Request_Color_name, int32(x))
}
+
func (x *Request_Color) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(Request_Color_value, data, "Request_Color")
if err != nil {
@@ -135,8 +146,9 @@ func (x *Request_Color) UnmarshalJSON(data []byte) error {
*x = Request_Color(value)
return nil
}
+
func (Request_Color) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_test_220c5cc0922855ae, []int{0, 0}
+ return fileDescriptor_2c9b60a40d5131b9, []int{0, 0}
}
type Reply_Entry_Game int32
@@ -150,6 +162,7 @@ var Reply_Entry_Game_name = map[int32]string{
1: "FOOTBALL",
2: "TENNIS",
}
+
var Reply_Entry_Game_value = map[string]int32{
"FOOTBALL": 1,
"TENNIS": 2,
@@ -160,9 +173,11 @@ func (x Reply_Entry_Game) Enum() *Reply_Entry_Game {
*p = x
return p
}
+
func (x Reply_Entry_Game) String() string {
return proto.EnumName(Reply_Entry_Game_name, int32(x))
}
+
func (x *Reply_Entry_Game) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(Reply_Entry_Game_value, data, "Reply_Entry_Game")
if err != nil {
@@ -171,8 +186,9 @@ func (x *Reply_Entry_Game) UnmarshalJSON(data []byte) error {
*x = Reply_Entry_Game(value)
return nil
}
+
func (Reply_Entry_Game) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_test_220c5cc0922855ae, []int{1, 0, 0}
+ return fileDescriptor_2c9b60a40d5131b9, []int{1, 0, 0}
}
// This is a message that might be sent somewhere.
@@ -191,6 +207,12 @@ type Request struct {
Reset_ *int32 `protobuf:"varint,12,opt,name=reset" json:"reset,omitempty"`
// This field should not conflict with any getters.
GetKey_ *string `protobuf:"bytes,16,opt,name=get_key,json=getKey" json:"get_key,omitempty"`
+ FloatNinf *float32 `protobuf:"fixed32,20,opt,name=float_ninf,json=floatNinf,def=-inf" json:"float_ninf,omitempty"`
+ FloatPinf *float32 `protobuf:"fixed32,21,opt,name=float_pinf,json=floatPinf,def=inf" json:"float_pinf,omitempty"`
+ FloatExp *float32 `protobuf:"fixed32,22,opt,name=float_exp,json=floatExp,def=1e+09" json:"float_exp,omitempty"`
+ DoubleNinf *float64 `protobuf:"fixed64,23,opt,name=double_ninf,json=doubleNinf,def=-inf" json:"double_ninf,omitempty"`
+ DoublePinf *float64 `protobuf:"fixed64,24,opt,name=double_pinf,json=doublePinf,def=inf" json:"double_pinf,omitempty"`
+ DoubleExp *float64 `protobuf:"fixed64,25,opt,name=double_exp,json=doubleExp,def=1e+09" json:"double_exp,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -200,7 +222,7 @@ func (m *Request) Reset() { *m = Request{} }
func (m *Request) String() string { return proto.CompactTextString(m) }
func (*Request) ProtoMessage() {}
func (*Request) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_220c5cc0922855ae, []int{0}
+ return fileDescriptor_2c9b60a40d5131b9, []int{0}
}
func (m *Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Request.Unmarshal(m, b)
@@ -208,8 +230,8 @@ func (m *Request) XXX_Unmarshal(b []byte) error {
func (m *Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Request.Marshal(b, m, deterministic)
}
-func (dst *Request) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Request.Merge(dst, src)
+func (m *Request) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Request.Merge(m, src)
}
func (m *Request) XXX_Size() int {
return xxx_messageInfo_Request.Size(m)
@@ -223,6 +245,15 @@ var xxx_messageInfo_Request proto.InternalMessageInfo
const Default_Request_Hat HatType = HatType_FEDORA
var Default_Request_Deadline float32 = float32(math.Inf(1))
+var Default_Request_FloatNinf float32 = float32(math.Inf(-1))
+var Default_Request_FloatPinf float32 = float32(math.Inf(1))
+
+const Default_Request_FloatExp float32 = 1e+09
+
+var Default_Request_DoubleNinf float64 = math.Inf(-1)
+var Default_Request_DoublePinf float64 = math.Inf(1)
+
+const Default_Request_DoubleExp float64 = 1e+09
func (m *Request) GetKey() []int64 {
if m != nil {
@@ -287,6 +318,48 @@ func (m *Request) GetGetKey_() string {
return ""
}
+func (m *Request) GetFloatNinf() float32 {
+ if m != nil && m.FloatNinf != nil {
+ return *m.FloatNinf
+ }
+ return Default_Request_FloatNinf
+}
+
+func (m *Request) GetFloatPinf() float32 {
+ if m != nil && m.FloatPinf != nil {
+ return *m.FloatPinf
+ }
+ return Default_Request_FloatPinf
+}
+
+func (m *Request) GetFloatExp() float32 {
+ if m != nil && m.FloatExp != nil {
+ return *m.FloatExp
+ }
+ return Default_Request_FloatExp
+}
+
+func (m *Request) GetDoubleNinf() float64 {
+ if m != nil && m.DoubleNinf != nil {
+ return *m.DoubleNinf
+ }
+ return Default_Request_DoubleNinf
+}
+
+func (m *Request) GetDoublePinf() float64 {
+ if m != nil && m.DoublePinf != nil {
+ return *m.DoublePinf
+ }
+ return Default_Request_DoublePinf
+}
+
+func (m *Request) GetDoubleExp() float64 {
+ if m != nil && m.DoubleExp != nil {
+ return *m.DoubleExp
+ }
+ return Default_Request_DoubleExp
+}
+
type Request_SomeGroup struct {
GroupField *int32 `protobuf:"varint,9,opt,name=group_field,json=groupField" json:"group_field,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -298,7 +371,7 @@ func (m *Request_SomeGroup) Reset() { *m = Request_SomeGroup{} }
func (m *Request_SomeGroup) String() string { return proto.CompactTextString(m) }
func (*Request_SomeGroup) ProtoMessage() {}
func (*Request_SomeGroup) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_220c5cc0922855ae, []int{0, 0}
+ return fileDescriptor_2c9b60a40d5131b9, []int{0, 0}
}
func (m *Request_SomeGroup) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Request_SomeGroup.Unmarshal(m, b)
@@ -306,8 +379,8 @@ func (m *Request_SomeGroup) XXX_Unmarshal(b []byte) error {
func (m *Request_SomeGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Request_SomeGroup.Marshal(b, m, deterministic)
}
-func (dst *Request_SomeGroup) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Request_SomeGroup.Merge(dst, src)
+func (m *Request_SomeGroup) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Request_SomeGroup.Merge(m, src)
}
func (m *Request_SomeGroup) XXX_Size() int {
return xxx_messageInfo_Request_SomeGroup.Size(m)
@@ -338,7 +411,7 @@ func (m *Reply) Reset() { *m = Reply{} }
func (m *Reply) String() string { return proto.CompactTextString(m) }
func (*Reply) ProtoMessage() {}
func (*Reply) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_220c5cc0922855ae, []int{1}
+ return fileDescriptor_2c9b60a40d5131b9, []int{1}
}
var extRange_Reply = []proto.ExtensionRange{
@@ -348,14 +421,15 @@ var extRange_Reply = []proto.ExtensionRange{
func (*Reply) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_Reply
}
+
func (m *Reply) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Reply.Unmarshal(m, b)
}
func (m *Reply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Reply.Marshal(b, m, deterministic)
}
-func (dst *Reply) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Reply.Merge(dst, src)
+func (m *Reply) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Reply.Merge(m, src)
}
func (m *Reply) XXX_Size() int {
return xxx_messageInfo_Reply.Size(m)
@@ -393,7 +467,7 @@ func (m *Reply_Entry) Reset() { *m = Reply_Entry{} }
func (m *Reply_Entry) String() string { return proto.CompactTextString(m) }
func (*Reply_Entry) ProtoMessage() {}
func (*Reply_Entry) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_220c5cc0922855ae, []int{1, 0}
+ return fileDescriptor_2c9b60a40d5131b9, []int{1, 0}
}
func (m *Reply_Entry) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Reply_Entry.Unmarshal(m, b)
@@ -401,8 +475,8 @@ func (m *Reply_Entry) XXX_Unmarshal(b []byte) error {
func (m *Reply_Entry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Reply_Entry.Marshal(b, m, deterministic)
}
-func (dst *Reply_Entry) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Reply_Entry.Merge(dst, src)
+func (m *Reply_Entry) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Reply_Entry.Merge(m, src)
}
func (m *Reply_Entry) XXX_Size() int {
return xxx_messageInfo_Reply_Entry.Size(m)
@@ -448,7 +522,7 @@ func (m *OtherBase) Reset() { *m = OtherBase{} }
func (m *OtherBase) String() string { return proto.CompactTextString(m) }
func (*OtherBase) ProtoMessage() {}
func (*OtherBase) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_220c5cc0922855ae, []int{2}
+ return fileDescriptor_2c9b60a40d5131b9, []int{2}
}
var extRange_OtherBase = []proto.ExtensionRange{
@@ -458,14 +532,15 @@ var extRange_OtherBase = []proto.ExtensionRange{
func (*OtherBase) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_OtherBase
}
+
func (m *OtherBase) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OtherBase.Unmarshal(m, b)
}
func (m *OtherBase) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OtherBase.Marshal(b, m, deterministic)
}
-func (dst *OtherBase) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OtherBase.Merge(dst, src)
+func (m *OtherBase) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OtherBase.Merge(m, src)
}
func (m *OtherBase) XXX_Size() int {
return xxx_messageInfo_OtherBase.Size(m)
@@ -493,7 +568,7 @@ func (m *ReplyExtensions) Reset() { *m = ReplyExtensions{} }
func (m *ReplyExtensions) String() string { return proto.CompactTextString(m) }
func (*ReplyExtensions) ProtoMessage() {}
func (*ReplyExtensions) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_220c5cc0922855ae, []int{3}
+ return fileDescriptor_2c9b60a40d5131b9, []int{3}
}
func (m *ReplyExtensions) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReplyExtensions.Unmarshal(m, b)
@@ -501,8 +576,8 @@ func (m *ReplyExtensions) XXX_Unmarshal(b []byte) error {
func (m *ReplyExtensions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReplyExtensions.Marshal(b, m, deterministic)
}
-func (dst *ReplyExtensions) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ReplyExtensions.Merge(dst, src)
+func (m *ReplyExtensions) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ReplyExtensions.Merge(m, src)
}
func (m *ReplyExtensions) XXX_Size() int {
return xxx_messageInfo_ReplyExtensions.Size(m)
@@ -551,7 +626,7 @@ func (m *OtherReplyExtensions) Reset() { *m = OtherReplyExtensions{} }
func (m *OtherReplyExtensions) String() string { return proto.CompactTextString(m) }
func (*OtherReplyExtensions) ProtoMessage() {}
func (*OtherReplyExtensions) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_220c5cc0922855ae, []int{4}
+ return fileDescriptor_2c9b60a40d5131b9, []int{4}
}
func (m *OtherReplyExtensions) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OtherReplyExtensions.Unmarshal(m, b)
@@ -559,8 +634,8 @@ func (m *OtherReplyExtensions) XXX_Unmarshal(b []byte) error {
func (m *OtherReplyExtensions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OtherReplyExtensions.Marshal(b, m, deterministic)
}
-func (dst *OtherReplyExtensions) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OtherReplyExtensions.Merge(dst, src)
+func (m *OtherReplyExtensions) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OtherReplyExtensions.Merge(m, src)
}
func (m *OtherReplyExtensions) XXX_Size() int {
return xxx_messageInfo_OtherReplyExtensions.Size(m)
@@ -589,14 +664,7 @@ func (m *OldReply) Reset() { *m = OldReply{} }
func (m *OldReply) String() string { return proto.CompactTextString(m) }
func (*OldReply) ProtoMessage() {}
func (*OldReply) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_220c5cc0922855ae, []int{5}
-}
-
-func (m *OldReply) MarshalJSON() ([]byte, error) {
- return proto.MarshalMessageSetJSON(&m.XXX_InternalExtensions)
-}
-func (m *OldReply) UnmarshalJSON(buf []byte) error {
- return proto.UnmarshalMessageSetJSON(buf, &m.XXX_InternalExtensions)
+ return fileDescriptor_2c9b60a40d5131b9, []int{5}
}
var extRange_OldReply = []proto.ExtensionRange{
@@ -606,14 +674,15 @@ var extRange_OldReply = []proto.ExtensionRange{
func (*OldReply) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_OldReply
}
+
func (m *OldReply) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OldReply.Unmarshal(m, b)
}
func (m *OldReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OldReply.Marshal(b, m, deterministic)
}
-func (dst *OldReply) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OldReply.Merge(dst, src)
+func (m *OldReply) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OldReply.Merge(m, src)
}
func (m *OldReply) XXX_Size() int {
return xxx_messageInfo_OldReply.Size(m)
@@ -649,7 +718,7 @@ func (m *Communique) Reset() { *m = Communique{} }
func (m *Communique) String() string { return proto.CompactTextString(m) }
func (*Communique) ProtoMessage() {}
func (*Communique) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_220c5cc0922855ae, []int{6}
+ return fileDescriptor_2c9b60a40d5131b9, []int{6}
}
func (m *Communique) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Communique.Unmarshal(m, b)
@@ -657,8 +726,8 @@ func (m *Communique) XXX_Unmarshal(b []byte) error {
func (m *Communique) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Communique.Marshal(b, m, deterministic)
}
-func (dst *Communique) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Communique.Merge(dst, src)
+func (m *Communique) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Communique.Merge(m, src)
}
func (m *Communique) XXX_Size() int {
return xxx_messageInfo_Communique.Size(m)
@@ -1002,7 +1071,7 @@ func (m *Communique_SomeGroup) Reset() { *m = Communique_SomeGroup{} }
func (m *Communique_SomeGroup) String() string { return proto.CompactTextString(m) }
func (*Communique_SomeGroup) ProtoMessage() {}
func (*Communique_SomeGroup) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_220c5cc0922855ae, []int{6, 0}
+ return fileDescriptor_2c9b60a40d5131b9, []int{6, 0}
}
func (m *Communique_SomeGroup) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Communique_SomeGroup.Unmarshal(m, b)
@@ -1010,8 +1079,8 @@ func (m *Communique_SomeGroup) XXX_Unmarshal(b []byte) error {
func (m *Communique_SomeGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Communique_SomeGroup.Marshal(b, m, deterministic)
}
-func (dst *Communique_SomeGroup) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Communique_SomeGroup.Merge(dst, src)
+func (m *Communique_SomeGroup) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Communique_SomeGroup.Merge(m, src)
}
func (m *Communique_SomeGroup) XXX_Size() int {
return xxx_messageInfo_Communique_SomeGroup.Size(m)
@@ -1039,7 +1108,7 @@ func (m *Communique_Delta) Reset() { *m = Communique_Delta{} }
func (m *Communique_Delta) String() string { return proto.CompactTextString(m) }
func (*Communique_Delta) ProtoMessage() {}
func (*Communique_Delta) Descriptor() ([]byte, []int) {
- return fileDescriptor_test_220c5cc0922855ae, []int{6, 1}
+ return fileDescriptor_2c9b60a40d5131b9, []int{6, 1}
}
func (m *Communique_Delta) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Communique_Delta.Unmarshal(m, b)
@@ -1047,8 +1116,8 @@ func (m *Communique_Delta) XXX_Unmarshal(b []byte) error {
func (m *Communique_Delta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Communique_Delta.Marshal(b, m, deterministic)
}
-func (dst *Communique_Delta) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Communique_Delta.Merge(dst, src)
+func (m *Communique_Delta) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Communique_Delta.Merge(m, src)
}
func (m *Communique_Delta) XXX_Size() int {
return xxx_messageInfo_Communique_Delta.Size(m)
@@ -1078,6 +1147,10 @@ var E_Donut = &proto.ExtensionDesc{
}
func init() {
+ proto.RegisterEnum("my.test.HatType", HatType_name, HatType_value)
+ proto.RegisterEnum("my.test.Days", Days_name, Days_value)
+ proto.RegisterEnum("my.test.Request_Color", Request_Color_name, Request_Color_value)
+ proto.RegisterEnum("my.test.Reply_Entry_Game", Reply_Entry_Game_name, Reply_Entry_Game_value)
proto.RegisterType((*Request)(nil), "my.test.Request")
proto.RegisterMapType((map[int64]*Reply)(nil), "my.test.Request.MsgMappingEntry")
proto.RegisterMapType((map[int32]string)(nil), "my.test.Request.NameMappingEntry")
@@ -1085,90 +1158,93 @@ func init() {
proto.RegisterType((*Reply)(nil), "my.test.Reply")
proto.RegisterType((*Reply_Entry)(nil), "my.test.Reply.Entry")
proto.RegisterType((*OtherBase)(nil), "my.test.OtherBase")
+ proto.RegisterExtension(E_ReplyExtensions_Time)
+ proto.RegisterExtension(E_ReplyExtensions_Carrot)
+ proto.RegisterExtension(E_ReplyExtensions_Donut)
proto.RegisterType((*ReplyExtensions)(nil), "my.test.ReplyExtensions")
proto.RegisterType((*OtherReplyExtensions)(nil), "my.test.OtherReplyExtensions")
proto.RegisterType((*OldReply)(nil), "my.test.OldReply")
proto.RegisterType((*Communique)(nil), "my.test.Communique")
proto.RegisterType((*Communique_SomeGroup)(nil), "my.test.Communique.SomeGroup")
proto.RegisterType((*Communique_Delta)(nil), "my.test.Communique.Delta")
- proto.RegisterEnum("my.test.HatType", HatType_name, HatType_value)
- proto.RegisterEnum("my.test.Days", Days_name, Days_value)
- proto.RegisterEnum("my.test.Request_Color", Request_Color_name, Request_Color_value)
- proto.RegisterEnum("my.test.Reply_Entry_Game", Reply_Entry_Game_name, Reply_Entry_Game_value)
- proto.RegisterExtension(E_ReplyExtensions_Time)
- proto.RegisterExtension(E_ReplyExtensions_Carrot)
- proto.RegisterExtension(E_ReplyExtensions_Donut)
proto.RegisterExtension(E_Tag)
proto.RegisterExtension(E_Donut)
}
-func init() { proto.RegisterFile("my_test/test.proto", fileDescriptor_test_220c5cc0922855ae) }
-
-var fileDescriptor_test_220c5cc0922855ae = []byte{
- // 1031 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x55, 0xdd, 0x6e, 0xe3, 0x44,
- 0x14, 0xce, 0xd8, 0x71, 0x7e, 0x4e, 0x42, 0x6b, 0x46, 0x55, 0x6b, 0x05, 0xed, 0xd6, 0x04, 0x8a,
- 0x4c, 0xc5, 0xa6, 0xda, 0x80, 0xc4, 0x2a, 0x88, 0xd5, 0x36, 0x3f, 0x6d, 0xaa, 0x6d, 0x12, 0x69,
- 0xda, 0x5e, 0xb0, 0x37, 0xd6, 0x34, 0x9e, 0x3a, 0xa6, 0x19, 0x3b, 0x6b, 0x8f, 0x11, 0xbe, 0xeb,
- 0x53, 0xc0, 0x6b, 0x70, 0xcf, 0x0b, 0xf1, 0x16, 0x45, 0x33, 0x0e, 0x49, 0xda, 0xa0, 0xbd, 0xb1,
- 0x7c, 0xce, 0xf9, 0xce, 0xe7, 0x39, 0x3f, 0xf3, 0x19, 0x30, 0xcf, 0x5c, 0xc1, 0x12, 0x71, 0x22,
- 0x1f, 0xad, 0x45, 0x1c, 0x89, 0x08, 0x97, 0x79, 0xd6, 0x92, 0x66, 0x03, 0xf3, 0x74, 0x2e, 0x82,
- 0x13, 0xf5, 0x7c, 0x9d, 0x07, 0x9b, 0xff, 0x14, 0xa1, 0x4c, 0xd8, 0xc7, 0x94, 0x25, 0x02, 0x9b,
- 0xa0, 0xdf, 0xb3, 0xcc, 0x42, 0xb6, 0xee, 0xe8, 0x44, 0xbe, 0x62, 0x07, 0xf4, 0x59, 0xca, 0x2c,
- 0xdd, 0x46, 0xce, 0x4e, 0x7b, 0xbf, 0xb5, 0x24, 0x6a, 0x2d, 0x13, 0x5a, 0xbd, 0x68, 0x1e, 0xc5,
- 0x44, 0x42, 0xf0, 0x31, 0xe8, 0x33, 0x2a, 0xac, 0xa2, 0x42, 0x9a, 0x2b, 0xe4, 0x90, 0x8a, 0xeb,
- 0x6c, 0xc1, 0x3a, 0xa5, 0xb3, 0x41, 0x7f, 0x42, 0x4e, 0x89, 0x04, 0xe1, 0x43, 0xa8, 0x78, 0x8c,
- 0x7a, 0xf3, 0x20, 0x64, 0x56, 0xd9, 0x46, 0x8e, 0xd6, 0xd1, 0x83, 0xf0, 0x8e, 0xac, 0x9c, 0xf8,
- 0x0d, 0x54, 0x93, 0x88, 0x33, 0x3f, 0x8e, 0xd2, 0x85, 0x55, 0xb1, 0x91, 0x03, 0xed, 0xc6, 0xd6,
- 0xc7, 0xaf, 0x22, 0xce, 0xce, 0x25, 0x82, 0xac, 0xc1, 0xb8, 0x0f, 0xf5, 0x90, 0x72, 0xe6, 0x72,
- 0xba, 0x58, 0x04, 0xa1, 0x6f, 0xed, 0xd8, 0xba, 0x53, 0x6b, 0x7f, 0xb9, 0x95, 0x3c, 0xa6, 0x9c,
- 0x8d, 0x72, 0xcc, 0x20, 0x14, 0x71, 0x46, 0x6a, 0xe1, 0xda, 0x83, 0x4f, 0xa1, 0xc6, 0x13, 0x7f,
- 0x45, 0xb2, 0xab, 0x48, 0xec, 0x2d, 0x92, 0x51, 0xe2, 0x3f, 0xe1, 0x00, 0xbe, 0x72, 0xe0, 0x3d,
- 0x30, 0x62, 0x96, 0x30, 0x61, 0xd5, 0x6d, 0xe4, 0x18, 0x24, 0x37, 0xf0, 0x01, 0x94, 0x7d, 0x26,
- 0x5c, 0xd9, 0x65, 0xd3, 0x46, 0x4e, 0x95, 0x94, 0x7c, 0x26, 0xde, 0xb3, 0xac, 0xf1, 0x1d, 0x54,
- 0x57, 0xf5, 0xe0, 0x43, 0xa8, 0xa9, 0x6a, 0xdc, 0xbb, 0x80, 0xcd, 0x3d, 0xab, 0xaa, 0x18, 0x40,
- 0xb9, 0xce, 0xa4, 0xa7, 0xf1, 0x16, 0xcc, 0xe7, 0x05, 0xac, 0x87, 0x27, 0xc1, 0x6a, 0x78, 0x7b,
- 0x60, 0xfc, 0x46, 0xe7, 0x29, 0xb3, 0x34, 0xf5, 0xa9, 0xdc, 0xe8, 0x68, 0x6f, 0x50, 0x63, 0x04,
- 0xbb, 0xcf, 0xce, 0xbe, 0x99, 0x8e, 0xf3, 0xf4, 0xaf, 0x37, 0xd3, 0x6b, 0xed, 0x9d, 0x8d, 0xf2,
- 0x17, 0xf3, 0x6c, 0x83, 0xae, 0x79, 0x04, 0x86, 0xda, 0x04, 0x5c, 0x06, 0x9d, 0x0c, 0xfa, 0x66,
- 0x01, 0x57, 0xc1, 0x38, 0x27, 0x83, 0xc1, 0xd8, 0x44, 0xb8, 0x02, 0xc5, 0xee, 0xe5, 0xcd, 0xc0,
- 0xd4, 0x9a, 0x7f, 0x6a, 0x60, 0xa8, 0x5c, 0x7c, 0x0c, 0xc6, 0x5d, 0x94, 0x86, 0x9e, 0x5a, 0xb5,
- 0x5a, 0x7b, 0xef, 0x29, 0x75, 0x2b, 0xef, 0x66, 0x0e, 0xc1, 0x47, 0x50, 0x9f, 0x46, 0x7c, 0x41,
- 0xa7, 0xaa, 0x6d, 0x89, 0xa5, 0xd9, 0xba, 0x63, 0x74, 0x35, 0x13, 0x91, 0xda, 0xd2, 0xff, 0x9e,
- 0x65, 0x49, 0xe3, 0x2f, 0x04, 0x46, 0x5e, 0x49, 0x1f, 0x0e, 0xef, 0x59, 0xe6, 0x8a, 0x19, 0x15,
- 0x6e, 0xc8, 0x98, 0x97, 0xb8, 0xaf, 0xdb, 0xdf, 0xff, 0x30, 0xa5, 0x9c, 0xcd, 0xdd, 0x1e, 0x4d,
- 0x2e, 0x42, 0xdf, 0x42, 0xb6, 0xe6, 0xe8, 0xe4, 0x8b, 0x7b, 0x96, 0x5d, 0xcf, 0xa8, 0x18, 0x4b,
- 0xd0, 0x0a, 0x93, 0x43, 0xf0, 0xc1, 0x66, 0xf5, 0x7a, 0x07, 0xfd, 0xb8, 0x2c, 0x18, 0x7f, 0x03,
- 0xa6, 0xcb, 0xb3, 0x7c, 0x34, 0xae, 0xda, 0xb5, 0xb6, 0xba, 0x1f, 0x3a, 0xa9, 0x8f, 0x32, 0x35,
- 0x1e, 0x39, 0x9a, 0x76, 0xd3, 0x86, 0xe2, 0x39, 0xe5, 0x0c, 0xd7, 0xa1, 0x72, 0x36, 0x99, 0x5c,
- 0x77, 0x4f, 0x2f, 0x2f, 0x4d, 0x84, 0x01, 0x4a, 0xd7, 0x83, 0xf1, 0xf8, 0xe2, 0xca, 0xd4, 0x8e,
- 0x2b, 0x15, 0xcf, 0x7c, 0x78, 0x78, 0x78, 0xd0, 0x9a, 0xdf, 0x42, 0x75, 0x22, 0x66, 0x2c, 0xee,
- 0xd2, 0x84, 0x61, 0x0c, 0x45, 0x49, 0xab, 0x46, 0x51, 0x25, 0xea, 0x7d, 0x03, 0xfa, 0x37, 0x82,
- 0x5d, 0xd5, 0xa5, 0xc1, 0xef, 0x82, 0x85, 0x49, 0x10, 0x85, 0x49, 0xbb, 0x09, 0x45, 0x11, 0x70,
- 0x86, 0x9f, 0x8d, 0xc8, 0x62, 0x36, 0x72, 0x10, 0x51, 0xb1, 0xf6, 0x3b, 0x28, 0x4d, 0x69, 0x1c,
- 0x47, 0x62, 0x0b, 0x15, 0xa8, 0xf1, 0x5a, 0x4f, 0xbd, 0x6b, 0x76, 0xb2, 0xcc, 0x6b, 0x77, 0xc1,
- 0xf0, 0xa2, 0x30, 0x15, 0x18, 0xaf, 0xa0, 0xab, 0x43, 0xab, 0x4f, 0x7d, 0x8a, 0x24, 0x4f, 0x6d,
- 0x3a, 0xb0, 0xa7, 0x72, 0x9e, 0x85, 0xb7, 0x97, 0xb7, 0x69, 0x41, 0x65, 0x32, 0xf7, 0x14, 0x4e,
- 0x55, 0xff, 0xf8, 0xf8, 0xf8, 0x58, 0xee, 0x68, 0x15, 0xd4, 0xfc, 0x43, 0x07, 0xe8, 0x45, 0x9c,
- 0xa7, 0x61, 0xf0, 0x31, 0x65, 0xf8, 0x25, 0xd4, 0x38, 0xbd, 0x67, 0x2e, 0x67, 0xee, 0x34, 0xce,
- 0x29, 0x2a, 0xa4, 0x2a, 0x5d, 0x23, 0xd6, 0x8b, 0x33, 0x6c, 0x41, 0x29, 0x4c, 0xf9, 0x2d, 0x8b,
- 0x2d, 0x43, 0xb2, 0x0f, 0x0b, 0x64, 0x69, 0xe3, 0xbd, 0x65, 0xa3, 0x4b, 0xb2, 0xd1, 0xc3, 0x42,
- 0xde, 0x6a, 0xe9, 0xf5, 0xa8, 0xa0, 0x4a, 0x98, 0xea, 0xd2, 0x2b, 0x2d, 0x7c, 0x00, 0x25, 0xc1,
- 0xf8, 0xc2, 0x9d, 0x2a, 0x39, 0x42, 0xc3, 0x02, 0x31, 0xa4, 0xdd, 0x93, 0xf4, 0x33, 0x16, 0xf8,
- 0x33, 0xa1, 0xae, 0xa9, 0x26, 0xe9, 0x73, 0x1b, 0x1f, 0x81, 0x21, 0x22, 0x8f, 0x66, 0x16, 0x28,
- 0x4d, 0xfc, 0x6c, 0xd5, 0x9b, 0x3e, 0xcd, 0x12, 0x45, 0x20, 0xa3, 0x78, 0x1f, 0x0c, 0x4e, 0xb3,
- 0x5b, 0x66, 0xd5, 0xe4, 0xc9, 0xa5, 0x5f, 0x99, 0xd2, 0xef, 0xb1, 0xb9, 0xa0, 0x4a, 0x40, 0x3e,
- 0x97, 0x7e, 0x65, 0xe2, 0x26, 0xe8, 0x3c, 0xf1, 0x95, 0x7c, 0x6c, 0x5d, 0xca, 0x61, 0x81, 0xc8,
- 0x20, 0xfe, 0x79, 0x53, 0x3f, 0x77, 0x94, 0x7e, 0xbe, 0x58, 0x21, 0xd7, 0xbd, 0x5b, 0x4b, 0xe8,
- 0xb0, 0xb0, 0x21, 0xa2, 0x8d, 0xaf, 0x36, 0xc5, 0x68, 0x1f, 0x4a, 0x9c, 0xa9, 0xfe, 0xed, 0xe6,
- 0x8a, 0x95, 0x5b, 0x8d, 0x32, 0x18, 0x7d, 0x79, 0xa0, 0x6e, 0x19, 0x8c, 0x34, 0x0c, 0xa2, 0xf0,
- 0xf8, 0x25, 0x94, 0x97, 0x72, 0x2f, 0xd7, 0x3c, 0x17, 0x7c, 0x13, 0x49, 0x51, 0x38, 0x1b, 0x7c,
- 0x30, 0xb5, 0xe3, 0x16, 0x14, 0x65, 0xe9, 0x32, 0x38, 0x9a, 0x8c, 0xfb, 0xa7, 0xbf, 0x98, 0x08,
- 0xd7, 0xa0, 0x7c, 0x7d, 0x33, 0xb8, 0x92, 0x86, 0x26, 0x55, 0xe3, 0xf2, 0x66, 0xdc, 0xbf, 0x30,
- 0x51, 0x43, 0x33, 0x51, 0xc7, 0x06, 0x5d, 0x50, 0x7f, 0x6b, 0x5f, 0x7d, 0x75, 0x0c, 0x19, 0xea,
- 0xf4, 0xfe, 0x5b, 0xc9, 0xe7, 0x98, 0x5f, 0x55, 0x77, 0x5e, 0x3c, 0x5d, 0xd4, 0xff, 0xdf, 0xc9,
- 0xee, 0xbb, 0x0f, 0x6f, 0xfd, 0x40, 0xcc, 0xd2, 0xdb, 0xd6, 0x34, 0xe2, 0x27, 0x7e, 0xe4, 0x47,
- 0x27, 0xea, 0xd7, 0x78, 0x9b, 0xde, 0xe5, 0x2f, 0xd3, 0x57, 0x3e, 0x0b, 0x5f, 0xa9, 0x80, 0x24,
- 0x93, 0xfb, 0x70, 0xb2, 0xfc, 0xcd, 0xfe, 0x24, 0x1f, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x28,
- 0xe2, 0x2a, 0xeb, 0x75, 0x07, 0x00, 0x00,
+func init() { proto.RegisterFile("my_test/test.proto", fileDescriptor_2c9b60a40d5131b9) }
+
+var fileDescriptor_2c9b60a40d5131b9 = []byte{
+ // 1145 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x56, 0xdd, 0x6e, 0xdb, 0x46,
+ 0x13, 0x35, 0x49, 0x51, 0x3f, 0x23, 0x7f, 0x36, 0xbf, 0x85, 0x6b, 0xb3, 0x2a, 0x92, 0xb0, 0x4a,
+ 0x5c, 0x28, 0x6e, 0x23, 0xc7, 0x6a, 0x81, 0xa6, 0x2a, 0x1a, 0xc4, 0xb2, 0xe8, 0x38, 0x88, 0x2d,
+ 0x17, 0x1b, 0xe7, 0xa2, 0xb9, 0x21, 0x68, 0x71, 0x45, 0xb1, 0xd6, 0x92, 0x8c, 0xb8, 0x2c, 0xcc,
+ 0x3b, 0x3f, 0x45, 0xfb, 0x1a, 0xbd, 0xef, 0x33, 0xf4, 0x99, 0x5c, 0xec, 0xac, 0x22, 0xc9, 0x56,
+ 0x51, 0x5d, 0x10, 0x9c, 0x33, 0x67, 0xce, 0x72, 0x67, 0x66, 0x67, 0x05, 0x84, 0x17, 0x9e, 0x60,
+ 0x99, 0xd8, 0x97, 0x8f, 0x76, 0x3a, 0x4d, 0x44, 0x42, 0x2a, 0xbc, 0x68, 0x4b, 0xb3, 0x41, 0x78,
+ 0x3e, 0x11, 0xd1, 0x3e, 0x3e, 0x0f, 0x94, 0xb3, 0xf9, 0x77, 0x19, 0x2a, 0x94, 0x7d, 0xcc, 0x59,
+ 0x26, 0x88, 0x05, 0xc6, 0x15, 0x2b, 0x6c, 0xcd, 0x31, 0x5a, 0x06, 0x95, 0xaf, 0xa4, 0x05, 0xc6,
+ 0x38, 0x67, 0xb6, 0xe1, 0x68, 0xad, 0x8d, 0xce, 0x76, 0x7b, 0x26, 0xd4, 0x9e, 0x05, 0xb4, 0x8f,
+ 0x92, 0x49, 0x32, 0xa5, 0x92, 0x42, 0xf6, 0xc0, 0x18, 0xfb, 0xc2, 0x2e, 0x21, 0xd3, 0x9a, 0x33,
+ 0x4f, 0x7c, 0x71, 0x51, 0xa4, 0xac, 0x5b, 0x3e, 0x76, 0xfb, 0xe7, 0xf4, 0x90, 0x4a, 0x12, 0x79,
+ 0x04, 0xd5, 0x80, 0xf9, 0xc1, 0x24, 0x8a, 0x99, 0x5d, 0x71, 0xb4, 0x96, 0xde, 0x35, 0xa2, 0x78,
+ 0x44, 0xe7, 0x20, 0x79, 0x01, 0xb5, 0x2c, 0xe1, 0x2c, 0x9c, 0x26, 0x79, 0x6a, 0x57, 0x1d, 0xad,
+ 0x05, 0x9d, 0xc6, 0xca, 0xe2, 0xef, 0x12, 0xce, 0x5e, 0x4b, 0x06, 0x5d, 0x90, 0x49, 0x1f, 0xd6,
+ 0x63, 0x9f, 0x33, 0x8f, 0xfb, 0x69, 0x1a, 0xc5, 0xa1, 0xbd, 0xe1, 0x18, 0xad, 0x7a, 0xe7, 0xcb,
+ 0x95, 0xe0, 0x81, 0xcf, 0xd9, 0x99, 0xe2, 0xb8, 0xb1, 0x98, 0x16, 0xb4, 0x1e, 0x2f, 0x10, 0x72,
+ 0x08, 0x75, 0x9e, 0x85, 0x73, 0x91, 0x4d, 0x14, 0x71, 0x56, 0x44, 0xce, 0xb2, 0xf0, 0x8e, 0x06,
+ 0xf0, 0x39, 0x40, 0xb6, 0xc0, 0x9c, 0xb2, 0x8c, 0x09, 0x7b, 0xdd, 0xd1, 0x5a, 0x26, 0x55, 0x06,
+ 0xd9, 0x81, 0x4a, 0xc8, 0x84, 0x27, 0xb3, 0x6c, 0x39, 0x5a, 0xab, 0x46, 0xcb, 0x21, 0x13, 0x6f,
+ 0x59, 0x41, 0x1e, 0x03, 0x8c, 0x26, 0x89, 0x2f, 0xbc, 0x38, 0x8a, 0x47, 0xf6, 0x16, 0x26, 0xa5,
+ 0xf4, 0x4c, 0x66, 0xa5, 0x86, 0xf8, 0x20, 0x8a, 0x47, 0xa4, 0xf9, 0x89, 0x94, 0x4a, 0xd2, 0x67,
+ 0x8b, 0xcc, 0x29, 0xce, 0xcf, 0x8a, 0xa3, 0x0c, 0x8f, 0x5d, 0xa7, 0xf6, 0x36, 0x52, 0xcc, 0x03,
+ 0xf6, 0xf5, 0xf3, 0x1f, 0x68, 0x15, 0x71, 0xf7, 0x3a, 0x25, 0xbb, 0x50, 0x0f, 0x92, 0xfc, 0x72,
+ 0xc2, 0xd4, 0x6a, 0x3b, 0x8e, 0xd6, 0xd2, 0x66, 0xab, 0x81, 0x72, 0xe0, 0x72, 0x4f, 0xe6, 0x34,
+ 0x5c, 0xcf, 0x46, 0x9a, 0xb1, 0xc4, 0xc2, 0x05, 0x9f, 0xc2, 0xcc, 0xc2, 0x15, 0x3f, 0x47, 0x12,
+ 0x1c, 0x3c, 0xff, 0xf4, 0xa3, 0x35, 0xe5, 0x75, 0xaf, 0xd3, 0xc6, 0x37, 0x50, 0x9b, 0x17, 0x8d,
+ 0x3c, 0x82, 0x3a, 0x96, 0xcc, 0x1b, 0x45, 0x6c, 0x12, 0xd8, 0x35, 0x4c, 0x13, 0x20, 0x74, 0x2c,
+ 0x91, 0xc6, 0x4b, 0xb0, 0xee, 0x57, 0x69, 0xd1, 0xa1, 0x92, 0x8c, 0x1d, 0xba, 0x05, 0xe6, 0x6f,
+ 0xfe, 0x24, 0x67, 0xb6, 0x8e, 0xf9, 0x54, 0x46, 0x57, 0x7f, 0xa1, 0x35, 0xce, 0x60, 0xf3, 0x5e,
+ 0x81, 0x96, 0xc3, 0x89, 0x0a, 0x7f, 0xb2, 0x1c, 0x5e, 0xef, 0x6c, 0x2c, 0xd5, 0x38, 0x9d, 0x14,
+ 0x4b, 0x72, 0xcd, 0x5d, 0x30, 0xb1, 0xdd, 0x49, 0x05, 0x0c, 0xea, 0xf6, 0xad, 0x35, 0x52, 0x03,
+ 0xf3, 0x35, 0x75, 0xdd, 0x81, 0xa5, 0x91, 0x2a, 0x94, 0x7a, 0xa7, 0xef, 0x5d, 0x4b, 0x6f, 0xfe,
+ 0xa1, 0x83, 0x89, 0xb1, 0x64, 0x0f, 0xcc, 0x51, 0x92, 0xc7, 0x01, 0x9e, 0xa7, 0x7a, 0x67, 0xeb,
+ 0xae, 0x74, 0x5b, 0xb5, 0x8c, 0xa2, 0x90, 0x5d, 0x58, 0x1f, 0x26, 0x3c, 0xf5, 0x87, 0xd8, 0x1b,
+ 0x99, 0xad, 0x3b, 0x46, 0xcb, 0xec, 0xe9, 0x96, 0x46, 0xeb, 0x33, 0xfc, 0x2d, 0x2b, 0xb2, 0xc6,
+ 0x9f, 0x1a, 0x98, 0x6a, 0x27, 0x7d, 0x78, 0x74, 0xc5, 0x0a, 0x4f, 0x8c, 0x65, 0xcb, 0x30, 0x16,
+ 0x64, 0xde, 0x41, 0xe7, 0xdb, 0xef, 0x86, 0x3e, 0x67, 0x13, 0xef, 0xc8, 0xcf, 0xde, 0xc4, 0xa1,
+ 0xad, 0x39, 0x7a, 0xcb, 0xa0, 0x5f, 0x5c, 0xb1, 0xe2, 0x62, 0xec, 0x8b, 0x81, 0x24, 0xcd, 0x39,
+ 0x8a, 0x42, 0x76, 0x96, 0x77, 0x6f, 0x74, 0xb5, 0xef, 0x67, 0x1b, 0x26, 0x5f, 0x81, 0xe5, 0xf1,
+ 0x42, 0x95, 0xc6, 0xc3, 0x03, 0xd5, 0xc1, 0x21, 0x60, 0xd0, 0xf5, 0xb3, 0x02, 0xcb, 0x23, 0x4b,
+ 0xd3, 0x69, 0x3a, 0x50, 0x7a, 0xed, 0x73, 0x46, 0xd6, 0xa1, 0x7a, 0x7c, 0x7e, 0x7e, 0xd1, 0x3b,
+ 0x3c, 0x3d, 0xb5, 0x34, 0x02, 0x50, 0xbe, 0x70, 0x07, 0x83, 0x37, 0xef, 0x2c, 0x7d, 0xaf, 0x5a,
+ 0x0d, 0xac, 0x9b, 0x9b, 0x9b, 0x1b, 0xbd, 0xf9, 0x14, 0x6a, 0xe7, 0x62, 0xcc, 0xa6, 0x3d, 0x3f,
+ 0x63, 0x84, 0x40, 0x49, 0xca, 0x62, 0x29, 0x6a, 0x14, 0xdf, 0x97, 0xa8, 0x7f, 0x69, 0xb0, 0x89,
+ 0x59, 0x72, 0xaf, 0x05, 0x8b, 0xb3, 0x28, 0x89, 0xb3, 0x4e, 0x13, 0x4a, 0x22, 0xe2, 0x8c, 0xdc,
+ 0x2b, 0x91, 0xcd, 0x64, 0xc7, 0x51, 0xf4, 0x75, 0x5e, 0x41, 0x79, 0xe8, 0x4f, 0xa7, 0x89, 0x58,
+ 0x61, 0x45, 0x58, 0x5e, 0xfb, 0x2e, 0xba, 0x50, 0xa7, 0xb3, 0xb8, 0x4e, 0x0f, 0xcc, 0x20, 0x89,
+ 0x73, 0x41, 0xc8, 0x9c, 0x3a, 0xff, 0x68, 0x5c, 0xea, 0xbf, 0x44, 0x54, 0x68, 0xb3, 0x05, 0x5b,
+ 0x18, 0x73, 0xcf, 0xbd, 0xda, 0xbc, 0x4d, 0x1b, 0xaa, 0xe7, 0x93, 0x00, 0x79, 0xb8, 0xfb, 0xdb,
+ 0xdb, 0xdb, 0xdb, 0x4a, 0x57, 0xaf, 0x6a, 0xcd, 0xdf, 0x0d, 0x80, 0xa3, 0x84, 0xf3, 0x3c, 0x8e,
+ 0x3e, 0xe6, 0x8c, 0x3c, 0x84, 0x3a, 0xf7, 0xaf, 0x98, 0xc7, 0x99, 0x37, 0x9c, 0x2a, 0x89, 0x2a,
+ 0xad, 0x49, 0xe8, 0x8c, 0x1d, 0x4d, 0x0b, 0x62, 0x43, 0x39, 0xce, 0xf9, 0x25, 0x9b, 0xda, 0xa6,
+ 0x54, 0x3f, 0x59, 0xa3, 0x33, 0x9b, 0x6c, 0xcd, 0x12, 0x5d, 0x96, 0x89, 0x3e, 0x59, 0x53, 0xa9,
+ 0x96, 0x68, 0xe0, 0x0b, 0x1f, 0xa7, 0xef, 0xba, 0x44, 0xa5, 0x45, 0x76, 0xa0, 0x2c, 0x18, 0x4f,
+ 0xbd, 0x21, 0xce, 0x5c, 0xed, 0x64, 0x8d, 0x9a, 0xd2, 0x3e, 0x92, 0xf2, 0x63, 0x16, 0x85, 0x63,
+ 0x81, 0xc7, 0x54, 0x97, 0xf2, 0xca, 0x26, 0xbb, 0x60, 0x8a, 0x24, 0xf0, 0x0b, 0x1b, 0x70, 0xf0,
+ 0xff, 0x6f, 0x9e, 0x9b, 0xbe, 0x5f, 0x64, 0x28, 0x20, 0xbd, 0x64, 0x1b, 0x4c, 0xee, 0x17, 0x97,
+ 0xcc, 0xae, 0xcb, 0x2f, 0x97, 0x38, 0x9a, 0x12, 0x0f, 0xd8, 0x44, 0xf8, 0x38, 0x25, 0xff, 0x2f,
+ 0x71, 0x34, 0x49, 0x13, 0x0c, 0x9e, 0x85, 0x38, 0x23, 0x57, 0x0e, 0xe5, 0xc9, 0x1a, 0x95, 0x4e,
+ 0xf2, 0xd3, 0xf2, 0x25, 0xb1, 0x81, 0x97, 0xc4, 0x83, 0x39, 0x73, 0x91, 0xbb, 0xc5, 0x3d, 0x71,
+ 0xb2, 0xb6, 0x74, 0x53, 0x34, 0x1e, 0x2f, 0x0f, 0xa3, 0x6d, 0x28, 0x73, 0x86, 0xf9, 0xdb, 0x54,
+ 0x63, 0x59, 0x59, 0x8d, 0x0a, 0x98, 0x7d, 0xf9, 0x41, 0xbd, 0x0a, 0x98, 0x79, 0x1c, 0x25, 0xf1,
+ 0xde, 0x43, 0xa8, 0xcc, 0xee, 0x34, 0xd9, 0xe6, 0xea, 0x56, 0xb3, 0x34, 0x39, 0x14, 0x8e, 0xdd,
+ 0x0f, 0x96, 0xbe, 0xd7, 0x86, 0x92, 0xdc, 0xba, 0x74, 0x9e, 0x9d, 0x0f, 0xfa, 0x87, 0xbf, 0x58,
+ 0x1a, 0xa9, 0x43, 0xe5, 0xe2, 0xbd, 0xfb, 0x4e, 0x1a, 0xba, 0x9c, 0x1a, 0xa7, 0xef, 0x07, 0xfd,
+ 0x37, 0x96, 0xd6, 0xd0, 0x2d, 0xad, 0xeb, 0x80, 0x21, 0xfc, 0x70, 0xa5, 0x5f, 0x43, 0xfc, 0x0c,
+ 0xe9, 0xea, 0x1e, 0x7d, 0x6a, 0xc9, 0xfb, 0x9c, 0x5f, 0x31, 0x3b, 0x0f, 0xee, 0x36, 0xea, 0xbf,
+ 0xf7, 0x64, 0xef, 0xd5, 0x87, 0x97, 0x61, 0x24, 0xc6, 0xf9, 0x65, 0x7b, 0x98, 0xf0, 0xfd, 0x30,
+ 0x09, 0x93, 0x7d, 0xbc, 0xff, 0x2f, 0xf3, 0x91, 0x7a, 0x19, 0x3e, 0x0b, 0x59, 0xfc, 0x0c, 0x1d,
+ 0x52, 0x4c, 0xf6, 0xc3, 0xfe, 0xec, 0xbf, 0xc4, 0x8f, 0xf2, 0xf1, 0x4f, 0x00, 0x00, 0x00, 0xff,
+ 0xff, 0x0b, 0xc8, 0x22, 0xdb, 0x5a, 0x08, 0x00, 0x00,
}
diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/proto3/proto3.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/proto3/proto3.pb.go
index c4ae7ea7ef..a22c8d959d 100644
--- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/proto3/proto3.pb.go
+++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/proto3/proto3.pb.go
@@ -1,11 +1,13 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: proto3/proto3.proto
-package proto3 // import "github.com/gogo/protobuf/protoc-gen-gogo/testdata/proto3"
+package proto3
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -33,6 +35,7 @@ var Request_Flavour_name = map[int32]string{
2: "UMAMI",
3: "GOPHERLICIOUS",
}
+
var Request_Flavour_value = map[string]int32{
"SWEET": 0,
"SOUR": 1,
@@ -43,8 +46,9 @@ var Request_Flavour_value = map[string]int32{
func (x Request_Flavour) String() string {
return proto.EnumName(Request_Flavour_name, int32(x))
}
+
func (Request_Flavour) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_proto3_1eff755e13e61017, []int{0, 0}
+ return fileDescriptor_ab04eb4084a521db, []int{0, 0}
}
type Request struct {
@@ -62,7 +66,7 @@ func (m *Request) Reset() { *m = Request{} }
func (m *Request) String() string { return proto.CompactTextString(m) }
func (*Request) ProtoMessage() {}
func (*Request) Descriptor() ([]byte, []int) {
- return fileDescriptor_proto3_1eff755e13e61017, []int{0}
+ return fileDescriptor_ab04eb4084a521db, []int{0}
}
func (m *Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Request.Unmarshal(m, b)
@@ -70,8 +74,8 @@ func (m *Request) XXX_Unmarshal(b []byte) error {
func (m *Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Request.Marshal(b, m, deterministic)
}
-func (dst *Request) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Request.Merge(dst, src)
+func (m *Request) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Request.Merge(m, src)
}
func (m *Request) XXX_Size() int {
return xxx_messageInfo_Request.Size(m)
@@ -129,7 +133,7 @@ func (m *Book) Reset() { *m = Book{} }
func (m *Book) String() string { return proto.CompactTextString(m) }
func (*Book) ProtoMessage() {}
func (*Book) Descriptor() ([]byte, []int) {
- return fileDescriptor_proto3_1eff755e13e61017, []int{1}
+ return fileDescriptor_ab04eb4084a521db, []int{1}
}
func (m *Book) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Book.Unmarshal(m, b)
@@ -137,8 +141,8 @@ func (m *Book) XXX_Unmarshal(b []byte) error {
func (m *Book) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Book.Marshal(b, m, deterministic)
}
-func (dst *Book) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Book.Merge(dst, src)
+func (m *Book) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Book.Merge(m, src)
}
func (m *Book) XXX_Size() int {
return xxx_messageInfo_Book.Size(m)
@@ -164,14 +168,14 @@ func (m *Book) GetRawData() []byte {
}
func init() {
+ proto.RegisterEnum("proto3.Request_Flavour", Request_Flavour_name, Request_Flavour_value)
proto.RegisterType((*Request)(nil), "proto3.Request")
proto.RegisterType((*Book)(nil), "proto3.Book")
- proto.RegisterEnum("proto3.Request_Flavour", Request_Flavour_name, Request_Flavour_value)
}
-func init() { proto.RegisterFile("proto3/proto3.proto", fileDescriptor_proto3_1eff755e13e61017) }
+func init() { proto.RegisterFile("proto3/proto3.proto", fileDescriptor_ab04eb4084a521db) }
-var fileDescriptor_proto3_1eff755e13e61017 = []byte{
+var fileDescriptor_ab04eb4084a521db = []byte{
// 303 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x3c, 0x90, 0x4d, 0x4f, 0xf2, 0x40,
0x14, 0x85, 0x99, 0x7e, 0xbc, 0xc0, 0x7d, 0xd1, 0x8c, 0x57, 0x13, 0xc7, 0x8d, 0x99, 0xb0, 0xea,
diff --git a/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym.pb.go b/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym.pb.go
index 0a55fb8cd3..043dc16760 100644
--- a/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym.pb.go
@@ -3,14 +3,14 @@
package asym
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -34,7 +34,7 @@ func (m *M) Reset() { *m = M{} }
func (m *M) String() string { return proto.CompactTextString(m) }
func (*M) ProtoMessage() {}
func (*M) Descriptor() ([]byte, []int) {
- return fileDescriptor_asym_34ee0efbcd9b19e2, []int{0}
+ return fileDescriptor_72d286349de177ec, []int{0}
}
func (m *M) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -51,8 +51,8 @@ func (m *M) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *M) XXX_Merge(src proto.Message) {
- xxx_messageInfo_M.Merge(dst, src)
+func (m *M) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_M.Merge(m, src)
}
func (m *M) XXX_Size() int {
return m.Size()
@@ -73,7 +73,7 @@ func (m *MyType) Reset() { *m = MyType{} }
func (m *MyType) String() string { return proto.CompactTextString(m) }
func (*MyType) ProtoMessage() {}
func (*MyType) Descriptor() ([]byte, []int) {
- return fileDescriptor_asym_34ee0efbcd9b19e2, []int{1}
+ return fileDescriptor_72d286349de177ec, []int{1}
}
func (m *MyType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -81,8 +81,8 @@ func (m *MyType) XXX_Unmarshal(b []byte) error {
func (m *MyType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MyType.Marshal(b, m, deterministic)
}
-func (dst *MyType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MyType.Merge(dst, src)
+func (m *MyType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MyType.Merge(m, src)
}
func (m *MyType) XXX_Size() int {
return xxx_messageInfo_MyType.Size(m)
@@ -97,6 +97,23 @@ func init() {
proto.RegisterType((*M)(nil), "asym.M")
proto.RegisterType((*MyType)(nil), "asym.MyType")
}
+
+func init() { proto.RegisterFile("asym.proto", fileDescriptor_72d286349de177ec) }
+
+var fileDescriptor_72d286349de177ec = []byte{
+ // 158 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4a, 0x2c, 0xae, 0xcc,
+ 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x01, 0xb1, 0xa5, 0x74, 0xd3, 0x33, 0x4b, 0x32,
+ 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0x92, 0x49, 0xa5,
+ 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x34, 0x29, 0xa9, 0x72, 0x31, 0xfa, 0x0a, 0x29, 0x70,
+ 0x31, 0x27, 0x16, 0x15, 0x49, 0x30, 0x2a, 0x30, 0x6b, 0xf0, 0x38, 0xf1, 0x9d, 0xb8, 0x27, 0xcf,
+ 0x70, 0xeb, 0x9e, 0x3c, 0x9b, 0x6f, 0x65, 0x48, 0x65, 0x41, 0x6a, 0x10, 0x48, 0x4a, 0x49, 0x8a,
+ 0x0b, 0xca, 0xb5, 0x12, 0xd8, 0xb1, 0x40, 0x9e, 0xe1, 0xc7, 0x02, 0x79, 0x86, 0x8e, 0x85, 0xf2,
+ 0x0c, 0x0b, 0x16, 0xca, 0x33, 0x38, 0x49, 0x3c, 0x78, 0x28, 0xc7, 0xf8, 0xe3, 0xa1, 0x1c, 0xe3,
+ 0x8a, 0x47, 0x72, 0x8c, 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c,
+ 0x23, 0x20, 0x00, 0x00, 0xff, 0xff, 0x81, 0x2c, 0x72, 0xc1, 0x9e, 0x00, 0x00, 0x00,
+}
+
func (this *M) VerboseEqual(that interface{}) error {
if that == nil {
if this == nil {
@@ -397,7 +414,7 @@ func (m *M) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -425,7 +442,7 @@ func (m *M) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -434,6 +451,9 @@ func (m *M) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthAsym
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthAsym
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -452,6 +472,9 @@ func (m *M) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthAsym
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthAsym
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -480,7 +503,7 @@ func (m *MyType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -503,6 +526,9 @@ func (m *MyType) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthAsym
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthAsym
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -570,10 +596,13 @@ func skipAsym(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthAsym
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthAsym
+ }
return iNdEx, nil
case 3:
for {
@@ -602,6 +631,9 @@ func skipAsym(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthAsym
+ }
}
return iNdEx, nil
case 4:
@@ -620,19 +652,3 @@ var (
ErrInvalidLengthAsym = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowAsym = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("asym.proto", fileDescriptor_asym_34ee0efbcd9b19e2) }
-
-var fileDescriptor_asym_34ee0efbcd9b19e2 = []byte{
- // 158 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4a, 0x2c, 0xae, 0xcc,
- 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x01, 0xb1, 0xa5, 0x74, 0xd3, 0x33, 0x4b, 0x32,
- 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0x92, 0x49, 0xa5,
- 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x34, 0x29, 0xa9, 0x72, 0x31, 0xfa, 0x0a, 0x29, 0x70,
- 0x31, 0x27, 0x16, 0x15, 0x49, 0x30, 0x2a, 0x30, 0x6b, 0xf0, 0x38, 0xf1, 0x9d, 0xb8, 0x27, 0xcf,
- 0x70, 0xeb, 0x9e, 0x3c, 0x9b, 0x6f, 0x65, 0x48, 0x65, 0x41, 0x6a, 0x10, 0x48, 0x4a, 0x49, 0x8a,
- 0x0b, 0xca, 0xb5, 0x12, 0xd8, 0xb1, 0x40, 0x9e, 0xe1, 0xc7, 0x02, 0x79, 0x86, 0x8e, 0x85, 0xf2,
- 0x0c, 0x0b, 0x16, 0xca, 0x33, 0x38, 0x49, 0x3c, 0x78, 0x28, 0xc7, 0xf8, 0xe3, 0xa1, 0x1c, 0xe3,
- 0x8a, 0x47, 0x72, 0x8c, 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c,
- 0x23, 0x20, 0x00, 0x00, 0xff, 0xff, 0x81, 0x2c, 0x72, 0xc1, 0x9e, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/cachedsize/cachedsize.pb.go b/vendor/github.com/gogo/protobuf/test/cachedsize/cachedsize.pb.go
index e19a2b37a8..9341d842b1 100644
--- a/vendor/github.com/gogo/protobuf/test/cachedsize/cachedsize.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/cachedsize/cachedsize.pb.go
@@ -3,12 +3,13 @@
package cachedsize
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -32,7 +33,7 @@ func (m *Foo) Reset() { *m = Foo{} }
func (m *Foo) String() string { return proto.CompactTextString(m) }
func (*Foo) ProtoMessage() {}
func (*Foo) Descriptor() ([]byte, []int) {
- return fileDescriptor_cachedsize_3c7c595320e5882b, []int{0}
+ return fileDescriptor_dd0d29d364e4fbd8, []int{0}
}
func (m *Foo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Foo.Unmarshal(m, b)
@@ -40,8 +41,8 @@ func (m *Foo) XXX_Unmarshal(b []byte) error {
func (m *Foo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Foo.Marshal(b, m, deterministic)
}
-func (dst *Foo) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Foo.Merge(dst, src)
+func (m *Foo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Foo.Merge(m, src)
}
func (m *Foo) XXX_Size() int {
return xxx_messageInfo_Foo.Size(m)
@@ -70,7 +71,7 @@ func (m *Bar) Reset() { *m = Bar{} }
func (m *Bar) String() string { return proto.CompactTextString(m) }
func (*Bar) ProtoMessage() {}
func (*Bar) Descriptor() ([]byte, []int) {
- return fileDescriptor_cachedsize_3c7c595320e5882b, []int{1}
+ return fileDescriptor_dd0d29d364e4fbd8, []int{1}
}
func (m *Bar) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Bar.Unmarshal(m, b)
@@ -78,8 +79,8 @@ func (m *Bar) XXX_Unmarshal(b []byte) error {
func (m *Bar) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Bar.Marshal(b, m, deterministic)
}
-func (dst *Bar) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Bar.Merge(dst, src)
+func (m *Bar) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Bar.Merge(m, src)
}
func (m *Bar) XXX_Size() int {
return xxx_messageInfo_Bar.Size(m)
@@ -101,6 +102,24 @@ func init() {
proto.RegisterType((*Foo)(nil), "cachedsize.Foo")
proto.RegisterType((*Bar)(nil), "cachedsize.Bar")
}
+
+func init() { proto.RegisterFile("cachedsize.proto", fileDescriptor_dd0d29d364e4fbd8) }
+
+var fileDescriptor_dd0d29d364e4fbd8 = []byte{
+ // 162 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x48, 0x4e, 0x4c, 0xce,
+ 0x48, 0x4d, 0x29, 0xce, 0xac, 0x4a, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x42, 0x88,
+ 0x48, 0xe9, 0xa6, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0xa7, 0xe7, 0xa7,
+ 0xe7, 0xeb, 0x83, 0x95, 0x24, 0x95, 0xa6, 0x81, 0x79, 0x60, 0x0e, 0x98, 0x05, 0xd1, 0xaa, 0xa4,
+ 0xc7, 0xc5, 0xec, 0x96, 0x9f, 0x2f, 0xa4, 0xce, 0xc5, 0x96, 0x96, 0x99, 0x9a, 0x93, 0x62, 0x28,
+ 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x6d, 0xc4, 0xaf, 0x87, 0x64, 0x89, 0x53, 0x62, 0x51, 0x10, 0x54,
+ 0x5a, 0x49, 0x99, 0x8b, 0xd9, 0x29, 0xb1, 0x48, 0x48, 0x06, 0xaa, 0xde, 0x08, 0xac, 0x9e, 0xc3,
+ 0x89, 0xe5, 0xc4, 0x3d, 0x79, 0x06, 0xa8, 0x22, 0x23, 0x27, 0x89, 0x07, 0x0f, 0xe5, 0x18, 0x57,
+ 0x3c, 0x92, 0x63, 0x3c, 0xf1, 0x48, 0x8e, 0xe1, 0xc2, 0x23, 0x39, 0x86, 0x07, 0x8f, 0xe4, 0x18,
+ 0x3f, 0x3c, 0x92, 0x63, 0x04, 0x04, 0x00, 0x00, 0xff, 0xff, 0x95, 0xd6, 0x7b, 0xf2, 0xbc, 0x00,
+ 0x00, 0x00,
+}
+
func (this *Foo) VerboseEqual(that interface{}) error {
if that == nil {
if this == nil {
@@ -263,20 +282,3 @@ func sovCachedsize(x uint64) (n int) {
func sozCachedsize(x uint64) (n int) {
return sovCachedsize(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
-
-func init() { proto.RegisterFile("cachedsize.proto", fileDescriptor_cachedsize_3c7c595320e5882b) }
-
-var fileDescriptor_cachedsize_3c7c595320e5882b = []byte{
- // 162 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x48, 0x4e, 0x4c, 0xce,
- 0x48, 0x4d, 0x29, 0xce, 0xac, 0x4a, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x42, 0x88,
- 0x48, 0xe9, 0xa6, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0xa7, 0xe7, 0xa7,
- 0xe7, 0xeb, 0x83, 0x95, 0x24, 0x95, 0xa6, 0x81, 0x79, 0x60, 0x0e, 0x98, 0x05, 0xd1, 0xaa, 0xa4,
- 0xc7, 0xc5, 0xec, 0x96, 0x9f, 0x2f, 0xa4, 0xce, 0xc5, 0x96, 0x96, 0x99, 0x9a, 0x93, 0x62, 0x28,
- 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x6d, 0xc4, 0xaf, 0x87, 0x64, 0x89, 0x53, 0x62, 0x51, 0x10, 0x54,
- 0x5a, 0x49, 0x99, 0x8b, 0xd9, 0x29, 0xb1, 0x48, 0x48, 0x06, 0xaa, 0xde, 0x08, 0xac, 0x9e, 0xc3,
- 0x89, 0xe5, 0xc4, 0x3d, 0x79, 0x06, 0xa8, 0x22, 0x23, 0x27, 0x89, 0x07, 0x0f, 0xe5, 0x18, 0x57,
- 0x3c, 0x92, 0x63, 0x3c, 0xf1, 0x48, 0x8e, 0xe1, 0xc2, 0x23, 0x39, 0x86, 0x07, 0x8f, 0xe4, 0x18,
- 0x3f, 0x3c, 0x92, 0x63, 0x04, 0x04, 0x00, 0x00, 0xff, 0xff, 0x95, 0xd6, 0x7b, 0xf2, 0xbc, 0x00,
- 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttype.pb.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttype.pb.go
index ad6dda0525..683fdd649b 100644
--- a/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttype.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttype.pb.go
@@ -3,26 +3,23 @@
package casttype
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-
-import encoding_binary "encoding/binary"
-
-import io "io"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -60,7 +57,7 @@ type Castaway struct {
func (m *Castaway) Reset() { *m = Castaway{} }
func (*Castaway) ProtoMessage() {}
func (*Castaway) Descriptor() ([]byte, []int) {
- return fileDescriptor_casttype_c3de4173df712bd1, []int{0}
+ return fileDescriptor_e62bd869da1a4b71, []int{0}
}
func (m *Castaway) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -77,8 +74,8 @@ func (m *Castaway) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Castaway) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Castaway.Merge(dst, src)
+func (m *Castaway) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Castaway.Merge(m, src)
}
func (m *Castaway) XXX_Size() int {
return m.Size()
@@ -99,7 +96,7 @@ type Wilson struct {
func (m *Wilson) Reset() { *m = Wilson{} }
func (*Wilson) ProtoMessage() {}
func (*Wilson) Descriptor() ([]byte, []int) {
- return fileDescriptor_casttype_c3de4173df712bd1, []int{1}
+ return fileDescriptor_e62bd869da1a4b71, []int{1}
}
func (m *Wilson) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -116,8 +113,8 @@ func (m *Wilson) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Wilson) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Wilson.Merge(dst, src)
+func (m *Wilson) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Wilson.Merge(m, src)
}
func (m *Wilson) XXX_Size() int {
return m.Size()
@@ -136,6 +133,57 @@ func init() {
proto.RegisterMapType((map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson)(nil), "casttype.Castaway.MyNullableMapEntry")
proto.RegisterType((*Wilson)(nil), "casttype.Wilson")
}
+
+func init() { proto.RegisterFile("combos/both/casttype.proto", fileDescriptor_e62bd869da1a4b71) }
+
+var fileDescriptor_e62bd869da1a4b71 = []byte{
+ // 694 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x4c,
+ 0x18, 0xc7, 0xfd, 0x34, 0x4d, 0x9b, 0x5c, 0x9a, 0xf7, 0x8d, 0x4e, 0x0c, 0x56, 0x24, 0xce, 0x56,
+ 0xab, 0x22, 0x0f, 0x90, 0x54, 0x69, 0x54, 0xaa, 0x82, 0x18, 0x5c, 0x15, 0xa9, 0x08, 0x17, 0x64,
+ 0xa8, 0x2a, 0x10, 0x8b, 0xd3, 0x9a, 0x34, 0xc2, 0x89, 0xa3, 0xf8, 0x02, 0xf2, 0x56, 0x95, 0x01,
+ 0x89, 0xbf, 0x84, 0x91, 0x05, 0x89, 0x91, 0xb1, 0x63, 0x47, 0xa6, 0xb4, 0x36, 0x4b, 0xd9, 0x3a,
+ 0x56, 0x99, 0xd0, 0xdd, 0x39, 0xb1, 0xfb, 0x03, 0x94, 0xa6, 0xdb, 0x3d, 0x77, 0xcf, 0xf3, 0x79,
+ 0xbe, 0xf7, 0xdc, 0x73, 0x77, 0xa8, 0xb8, 0xed, 0x36, 0x6b, 0xae, 0x57, 0xae, 0xb9, 0x74, 0xb7,
+ 0xbc, 0x6d, 0x79, 0x94, 0xfa, 0x6d, 0xbb, 0xd4, 0xee, 0xb8, 0xd4, 0xc5, 0x99, 0x81, 0x5d, 0xbc,
+ 0x57, 0x6f, 0xd0, 0xdd, 0x6e, 0xad, 0xb4, 0xed, 0x36, 0xcb, 0x75, 0xb7, 0xee, 0x96, 0xb9, 0x43,
+ 0xad, 0xfb, 0x96, 0x5b, 0xdc, 0xe0, 0x23, 0x11, 0x38, 0xfb, 0x3b, 0x8f, 0x32, 0xab, 0x96, 0x47,
+ 0xad, 0x0f, 0x96, 0x8f, 0xe7, 0x51, 0x66, 0xbd, 0x45, 0x17, 0x2b, 0xcf, 0x69, 0x47, 0x06, 0x15,
+ 0xb4, 0x94, 0x9e, 0xed, 0xf7, 0x94, 0x74, 0x83, 0xcd, 0x99, 0xc3, 0x25, 0x3c, 0x87, 0xd2, 0x7c,
+ 0x2c, 0x4f, 0x70, 0x9f, 0xfc, 0x41, 0x4f, 0x91, 0x62, 0x3f, 0xb1, 0x86, 0x5f, 0xa1, 0x9c, 0xe1,
+ 0x6f, 0x36, 0x5a, 0x74, 0xa9, 0xca, 0x70, 0x29, 0x15, 0xb4, 0x49, 0xfd, 0x7e, 0xbf, 0xa7, 0x2c,
+ 0xfe, 0x55, 0x20, 0xb5, 0x3d, 0x1a, 0x6f, 0x6c, 0x10, 0xfd, 0xd2, 0x6f, 0xdb, 0x66, 0x92, 0x85,
+ 0xb7, 0x50, 0x66, 0x60, 0xca, 0x93, 0x9c, 0xfb, 0x20, 0x92, 0x30, 0x16, 0x7b, 0x08, 0xc3, 0x6f,
+ 0xd0, 0x8c, 0xe1, 0x3f, 0x76, 0x5c, 0x2b, 0xaa, 0x41, 0x5a, 0x05, 0x6d, 0x42, 0x5f, 0xee, 0xf7,
+ 0x94, 0xea, 0xc8, 0xe0, 0x28, 0x9c, 0x93, 0xcf, 0xd1, 0xf0, 0x6b, 0x94, 0x1d, 0xda, 0xf2, 0x14,
+ 0x47, 0x3f, 0x8c, 0x74, 0x8f, 0x87, 0x8f, 0x71, 0x09, 0xe5, 0xa2, 0xdc, 0xd3, 0x2a, 0x68, 0x30,
+ 0x8e, 0xf2, 0xa8, 0x26, 0xe7, 0x68, 0x09, 0xe5, 0x4b, 0x55, 0x39, 0xc3, 0xd1, 0x63, 0x2a, 0x8f,
+ 0xf0, 0x31, 0x0e, 0x3f, 0x41, 0xd3, 0x86, 0xaf, 0xfb, 0xd4, 0xf6, 0xe4, 0xac, 0x0a, 0xda, 0x8c,
+ 0xbe, 0xd0, 0xef, 0x29, 0x77, 0x47, 0xa4, 0xf2, 0x38, 0x73, 0x00, 0xc0, 0x2a, 0xca, 0x6d, 0xb8,
+ 0x9d, 0xa6, 0xe5, 0x08, 0x1e, 0x62, 0x3c, 0x33, 0x39, 0x85, 0x37, 0xd9, 0x4e, 0xc4, 0x69, 0x7b,
+ 0x72, 0x4e, 0x4d, 0xdd, 0xa4, 0x27, 0x63, 0x12, 0x6e, 0xa0, 0xb4, 0xe1, 0x1b, 0x56, 0x5b, 0x9e,
+ 0x51, 0x53, 0x5a, 0xae, 0x72, 0xbb, 0x34, 0x8c, 0x18, 0xdc, 0xad, 0x12, 0x5f, 0x5f, 0x6b, 0xd1,
+ 0x8e, 0xaf, 0x57, 0xfb, 0x3d, 0x65, 0x61, 0xe4, 0x8c, 0x86, 0xd5, 0xe6, 0xe9, 0x44, 0x06, 0xfc,
+ 0x0d, 0xd8, 0xc5, 0x5a, 0xed, 0x7a, 0xd4, 0x6d, 0xb2, 0x8c, 0x79, 0x9e, 0x71, 0xee, 0xca, 0x8c,
+ 0x43, 0x2f, 0x91, 0xb7, 0xb5, 0x7f, 0x74, 0x8d, 0x9d, 0xbe, 0xa0, 0x9d, 0x46, 0xab, 0xce, 0x52,
+ 0x7f, 0x3e, 0x1a, 0xfb, 0xd2, 0x0e, 0x15, 0xe0, 0x8f, 0x80, 0xf2, 0x86, 0xbf, 0xd1, 0x75, 0x1c,
+ 0xab, 0xe6, 0xd8, 0x4c, 0xf9, 0x7f, 0x5c, 0xf9, 0xfc, 0x95, 0xca, 0x13, 0x7e, 0x42, 0xfb, 0xd2,
+ 0xfe, 0x91, 0x52, 0x19, 0x59, 0x04, 0x7f, 0x82, 0xb8, 0x86, 0xf3, 0x39, 0xf1, 0x27, 0xae, 0x62,
+ 0xad, 0x59, 0xb3, 0x77, 0x76, 0xec, 0x1d, 0xa6, 0xe2, 0xff, 0x7f, 0xa8, 0x48, 0xf8, 0x09, 0x15,
+ 0x2b, 0xac, 0xeb, 0xc7, 0x57, 0x92, 0xe0, 0xe1, 0x67, 0x68, 0x4a, 0x54, 0x58, 0x2e, 0xa8, 0xa0,
+ 0x65, 0xaf, 0xd9, 0x86, 0xf1, 0xe1, 0x98, 0x11, 0xa6, 0xb8, 0x8c, 0x50, 0xdc, 0x63, 0xb8, 0x80,
+ 0x52, 0xef, 0x6c, 0x9f, 0xbf, 0xe2, 0x59, 0x93, 0x0d, 0xf1, 0x2d, 0x94, 0x7e, 0x6f, 0x39, 0x5d,
+ 0x9b, 0xbf, 0xda, 0x93, 0xa6, 0x30, 0x56, 0x26, 0x96, 0xa1, 0xf8, 0x08, 0x15, 0x2e, 0xf6, 0xca,
+ 0xb5, 0xe2, 0x4d, 0x84, 0x2f, 0x9f, 0x58, 0x92, 0x90, 0x16, 0x84, 0x3b, 0x49, 0x42, 0xae, 0x52,
+ 0x88, 0x6b, 0xbe, 0xd5, 0x70, 0x3c, 0xb7, 0x75, 0x89, 0x79, 0xb1, 0xfe, 0x37, 0x63, 0xce, 0x12,
+ 0x34, 0x25, 0x26, 0xd9, 0x5e, 0xd6, 0xf9, 0xf7, 0xc1, 0x7f, 0x39, 0x53, 0x18, 0xfa, 0xd3, 0x83,
+ 0x80, 0x48, 0x87, 0x01, 0x91, 0x7e, 0x06, 0x44, 0x3a, 0x0e, 0x08, 0x9c, 0x04, 0x04, 0x4e, 0x03,
+ 0x02, 0x67, 0x01, 0x81, 0xbd, 0x90, 0xc0, 0x97, 0x90, 0xc0, 0xd7, 0x90, 0xc0, 0xf7, 0x90, 0xc0,
+ 0x8f, 0x90, 0xc0, 0x41, 0x48, 0xe0, 0x30, 0x24, 0x70, 0x1c, 0x12, 0x38, 0x09, 0x89, 0x74, 0x1a,
+ 0x12, 0x38, 0x0b, 0x89, 0xb4, 0xf7, 0x8b, 0x48, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x0b, 0x0c,
+ 0x8a, 0xc1, 0xaf, 0x07, 0x00, 0x00,
+}
+
func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return CasttypeDescription()
}
@@ -145,279 +193,281 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog
func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4344 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x1b, 0xd7,
- 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0x79, 0x49, 0xcb, 0x10, 0x13, 0x83, 0x14, 0xe5,
- 0x1f, 0xda, 0x4e, 0x28, 0x8f, 0xfe, 0x05, 0x25, 0x76, 0x09, 0x12, 0x62, 0xa0, 0x12, 0x24, 0xb3,
- 0x24, 0x23, 0xcb, 0x69, 0x67, 0x67, 0xb9, 0xb8, 0x04, 0x57, 0x5a, 0xec, 0x6e, 0x76, 0x17, 0x92,
- 0xa1, 0xe9, 0x83, 0x1a, 0xb7, 0xcd, 0xa4, 0x9d, 0xfe, 0x77, 0xa6, 0x89, 0xeb, 0xb8, 0x4d, 0x3a,
- 0x8d, 0xd3, 0xf4, 0x27, 0x49, 0xd3, 0xa4, 0x49, 0xfa, 0x92, 0x97, 0xb4, 0x7e, 0xea, 0x24, 0x6f,
- 0x7d, 0xe8, 0xc8, 0x16, 0xe3, 0x99, 0x3a, 0xad, 0xdb, 0xb8, 0xad, 0x1e, 0x3c, 0xf2, 0x4b, 0xe7,
- 0xfe, 0x2d, 0x16, 0x3f, 0xd4, 0x82, 0xca, 0xd8, 0x79, 0x22, 0xf6, 0xdc, 0xf3, 0x7d, 0xf7, 0xdc,
- 0x73, 0xcf, 0xbd, 0xe7, 0xdc, 0xbb, 0x4b, 0xf8, 0xe9, 0x39, 0x98, 0xa9, 0xdb, 0x76, 0xdd, 0xc4,
- 0xc7, 0x1c, 0xd7, 0xf6, 0xed, 0xed, 0xe6, 0xce, 0xb1, 0x1a, 0xf6, 0x74, 0xd7, 0x70, 0x7c, 0xdb,
- 0x9d, 0xa7, 0x32, 0x34, 0xc6, 0x34, 0xe6, 0x85, 0xc6, 0x6c, 0x15, 0xc6, 0x2f, 0x18, 0x26, 0x5e,
- 0x0a, 0x14, 0x37, 0xb0, 0x8f, 0xce, 0x42, 0x62, 0xc7, 0x30, 0x71, 0x5e, 0x9a, 0x89, 0xcf, 0x65,
- 0x8e, 0x3f, 0x3c, 0xdf, 0x05, 0x9a, 0xef, 0x44, 0xac, 0x13, 0xb1, 0x42, 0x11, 0xb3, 0x6f, 0x24,
- 0x60, 0xa2, 0x4f, 0x2b, 0x42, 0x90, 0xb0, 0xb4, 0x06, 0x61, 0x94, 0xe6, 0xd2, 0x0a, 0xfd, 0x8d,
- 0xf2, 0x30, 0xe2, 0x68, 0xfa, 0x55, 0xad, 0x8e, 0xf3, 0x31, 0x2a, 0x16, 0x8f, 0xa8, 0x00, 0x50,
- 0xc3, 0x0e, 0xb6, 0x6a, 0xd8, 0xd2, 0x5b, 0xf9, 0xf8, 0x4c, 0x7c, 0x2e, 0xad, 0x84, 0x24, 0xe8,
- 0x49, 0x18, 0x77, 0x9a, 0xdb, 0xa6, 0xa1, 0xab, 0x21, 0x35, 0x98, 0x89, 0xcf, 0x25, 0x15, 0x99,
- 0x35, 0x2c, 0xb5, 0x95, 0x1f, 0x83, 0xb1, 0xeb, 0x58, 0xbb, 0x1a, 0x56, 0xcd, 0x50, 0xd5, 0x1c,
- 0x11, 0x87, 0x14, 0x17, 0x21, 0xdb, 0xc0, 0x9e, 0xa7, 0xd5, 0xb1, 0xea, 0xb7, 0x1c, 0x9c, 0x4f,
- 0xd0, 0xd1, 0xcf, 0xf4, 0x8c, 0xbe, 0x7b, 0xe4, 0x19, 0x8e, 0xda, 0x6c, 0x39, 0x18, 0x2d, 0x40,
- 0x1a, 0x5b, 0xcd, 0x06, 0x63, 0x48, 0xee, 0xe3, 0xbf, 0xb2, 0xd5, 0x6c, 0x74, 0xb3, 0xa4, 0x08,
- 0x8c, 0x53, 0x8c, 0x78, 0xd8, 0xbd, 0x66, 0xe8, 0x38, 0x3f, 0x4c, 0x09, 0x1e, 0xeb, 0x21, 0xd8,
- 0x60, 0xed, 0xdd, 0x1c, 0x02, 0x87, 0x16, 0x21, 0x8d, 0x9f, 0xf7, 0xb1, 0xe5, 0x19, 0xb6, 0x95,
- 0x1f, 0xa1, 0x24, 0x8f, 0xf4, 0x99, 0x45, 0x6c, 0xd6, 0xba, 0x29, 0xda, 0x38, 0x74, 0x1a, 0x46,
- 0x6c, 0xc7, 0x37, 0x6c, 0xcb, 0xcb, 0xa7, 0x66, 0xa4, 0xb9, 0xcc, 0xf1, 0x0f, 0xf6, 0x0d, 0x84,
- 0x35, 0xa6, 0xa3, 0x08, 0x65, 0x54, 0x01, 0xd9, 0xb3, 0x9b, 0xae, 0x8e, 0x55, 0xdd, 0xae, 0x61,
- 0xd5, 0xb0, 0x76, 0xec, 0x7c, 0x9a, 0x12, 0x4c, 0xf7, 0x0e, 0x84, 0x2a, 0x2e, 0xda, 0x35, 0x5c,
- 0xb1, 0x76, 0x6c, 0x25, 0xe7, 0x75, 0x3c, 0xa3, 0x43, 0x30, 0xec, 0xb5, 0x2c, 0x5f, 0x7b, 0x3e,
- 0x9f, 0xa5, 0x11, 0xc2, 0x9f, 0x66, 0xbf, 0x3b, 0x0c, 0x63, 0x83, 0x84, 0xd8, 0x79, 0x48, 0xee,
- 0x90, 0x51, 0xe6, 0x63, 0x07, 0xf1, 0x01, 0xc3, 0x74, 0x3a, 0x71, 0xf8, 0x3e, 0x9d, 0xb8, 0x00,
- 0x19, 0x0b, 0x7b, 0x3e, 0xae, 0xb1, 0x88, 0x88, 0x0f, 0x18, 0x53, 0xc0, 0x40, 0xbd, 0x21, 0x95,
- 0xb8, 0xaf, 0x90, 0x7a, 0x16, 0xc6, 0x02, 0x93, 0x54, 0x57, 0xb3, 0xea, 0x22, 0x36, 0x8f, 0x45,
- 0x59, 0x32, 0x5f, 0x16, 0x38, 0x85, 0xc0, 0x94, 0x1c, 0xee, 0x78, 0x46, 0x4b, 0x00, 0xb6, 0x85,
- 0xed, 0x1d, 0xb5, 0x86, 0x75, 0x33, 0x9f, 0xda, 0xc7, 0x4b, 0x6b, 0x44, 0xa5, 0xc7, 0x4b, 0x36,
- 0x93, 0xea, 0x26, 0x3a, 0xd7, 0x0e, 0xb5, 0x91, 0x7d, 0x22, 0xa5, 0xca, 0x16, 0x59, 0x4f, 0xb4,
- 0x6d, 0x41, 0xce, 0xc5, 0x24, 0xee, 0x71, 0x8d, 0x8f, 0x2c, 0x4d, 0x8d, 0x98, 0x8f, 0x1c, 0x99,
- 0xc2, 0x61, 0x6c, 0x60, 0xa3, 0x6e, 0xf8, 0x11, 0x1d, 0x85, 0x40, 0xa0, 0xd2, 0xb0, 0x02, 0xba,
- 0x0b, 0x65, 0x85, 0x70, 0x55, 0x6b, 0xe0, 0xa9, 0x1b, 0x90, 0xeb, 0x74, 0x0f, 0x9a, 0x84, 0xa4,
- 0xe7, 0x6b, 0xae, 0x4f, 0xa3, 0x30, 0xa9, 0xb0, 0x07, 0x24, 0x43, 0x1c, 0x5b, 0x35, 0xba, 0xcb,
- 0x25, 0x15, 0xf2, 0x13, 0xfd, 0x42, 0x7b, 0xc0, 0x71, 0x3a, 0xe0, 0x47, 0x7b, 0x67, 0xb4, 0x83,
- 0xb9, 0x7b, 0xdc, 0x53, 0x67, 0x60, 0xb4, 0x63, 0x00, 0x83, 0x76, 0x3d, 0xfb, 0x2b, 0xf0, 0x40,
- 0x5f, 0x6a, 0xf4, 0x2c, 0x4c, 0x36, 0x2d, 0xc3, 0xf2, 0xb1, 0xeb, 0xb8, 0x98, 0x44, 0x2c, 0xeb,
- 0x2a, 0xff, 0xef, 0x23, 0xfb, 0xc4, 0xdc, 0x56, 0x58, 0x9b, 0xb1, 0x28, 0x13, 0xcd, 0x5e, 0xe1,
- 0x13, 0xe9, 0xd4, 0x9b, 0x23, 0xf2, 0xcd, 0x9b, 0x37, 0x6f, 0xc6, 0x66, 0x3f, 0x37, 0x0c, 0x93,
+ // 4379 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7b, 0x5b, 0x70, 0x1c, 0xc7,
+ 0x75, 0x36, 0x66, 0x2f, 0xc0, 0xee, 0xd9, 0xc5, 0x62, 0xd0, 0x80, 0xa8, 0x15, 0x64, 0x2d, 0x40,
+ 0x50, 0x17, 0xe8, 0x06, 0xaa, 0x78, 0xd7, 0xd2, 0x96, 0x7e, 0x2c, 0xb0, 0x84, 0x97, 0x3f, 0x16,
+ 0x80, 0x07, 0x80, 0x29, 0xca, 0x49, 0x4d, 0x0d, 0x66, 0x1b, 0x8b, 0x21, 0x67, 0x67, 0xc6, 0x33,
+ 0xb3, 0xa4, 0x96, 0x95, 0x07, 0xc6, 0x4a, 0xe2, 0x72, 0xee, 0xb7, 0xaa, 0xd8, 0x8a, 0xac, 0xc4,
+ 0x4e, 0xc5, 0x72, 0x9c, 0x8b, 0xed, 0x24, 0x76, 0x6c, 0xe7, 0xc5, 0x2f, 0x4e, 0xf8, 0x94, 0xb2,
+ 0xdf, 0xf2, 0x90, 0xa2, 0x44, 0x58, 0x55, 0x91, 0x13, 0x25, 0x51, 0x12, 0x3e, 0xa8, 0xa8, 0x97,
+ 0x54, 0xdf, 0x66, 0x67, 0x2f, 0xe0, 0x2c, 0xe8, 0x92, 0xfc, 0x84, 0x9d, 0xd3, 0xe7, 0xfb, 0xfa,
+ 0xf4, 0xe9, 0xd3, 0x7d, 0x4e, 0xf7, 0x0c, 0xe0, 0x46, 0x11, 0x66, 0xea, 0xb6, 0x5d, 0x37, 0xf1,
+ 0x51, 0xc7, 0xb5, 0x7d, 0x7b, 0xbb, 0xb9, 0x73, 0xb4, 0x86, 0x3d, 0xdd, 0x35, 0x1c, 0xdf, 0x76,
+ 0xe7, 0xa9, 0x0c, 0x8d, 0x31, 0x8d, 0x79, 0xa1, 0x31, 0x5b, 0x85, 0xf1, 0x73, 0x86, 0x89, 0x97,
+ 0x02, 0xc5, 0x0d, 0xec, 0xa3, 0x33, 0x90, 0xd8, 0x31, 0x4c, 0x9c, 0x97, 0x66, 0xe2, 0x73, 0x99,
+ 0x63, 0x0f, 0xcf, 0x77, 0x81, 0xe6, 0x3b, 0x11, 0xeb, 0x44, 0xac, 0x50, 0xc4, 0xec, 0x5b, 0x09,
+ 0x98, 0xe8, 0xd3, 0x8a, 0x10, 0x24, 0x2c, 0xad, 0x41, 0x18, 0xa5, 0xb9, 0xb4, 0x42, 0x7f, 0xa3,
+ 0x3c, 0x8c, 0x38, 0x9a, 0x7e, 0x59, 0xab, 0xe3, 0x7c, 0x8c, 0x8a, 0xc5, 0x23, 0x2a, 0x00, 0xd4,
+ 0xb0, 0x83, 0xad, 0x1a, 0xb6, 0xf4, 0x56, 0x3e, 0x3e, 0x13, 0x9f, 0x4b, 0x2b, 0x21, 0x09, 0x7a,
+ 0x12, 0xc6, 0x9d, 0xe6, 0xb6, 0x69, 0xe8, 0x6a, 0x48, 0x0d, 0x66, 0xe2, 0x73, 0x49, 0x45, 0x66,
+ 0x0d, 0x4b, 0x6d, 0xe5, 0xc7, 0x60, 0xec, 0x2a, 0xd6, 0x2e, 0x87, 0x55, 0x33, 0x54, 0x35, 0x47,
+ 0xc4, 0x21, 0xc5, 0x45, 0xc8, 0x36, 0xb0, 0xe7, 0x69, 0x75, 0xac, 0xfa, 0x2d, 0x07, 0xe7, 0x13,
+ 0x74, 0xf4, 0x33, 0x3d, 0xa3, 0xef, 0x1e, 0x79, 0x86, 0xa3, 0x36, 0x5b, 0x0e, 0x46, 0x0b, 0x90,
+ 0xc6, 0x56, 0xb3, 0xc1, 0x18, 0x92, 0xfb, 0xf8, 0xaf, 0x6c, 0x35, 0x1b, 0xdd, 0x2c, 0x29, 0x02,
+ 0xe3, 0x14, 0x23, 0x1e, 0x76, 0xaf, 0x18, 0x3a, 0xce, 0x0f, 0x53, 0x82, 0xc7, 0x7a, 0x08, 0x36,
+ 0x58, 0x7b, 0x37, 0x87, 0xc0, 0xa1, 0x45, 0x48, 0xe3, 0x97, 0x7c, 0x6c, 0x79, 0x86, 0x6d, 0xe5,
+ 0x47, 0x28, 0xc9, 0x23, 0x7d, 0x66, 0x11, 0x9b, 0xb5, 0x6e, 0x8a, 0x36, 0x0e, 0x9d, 0x82, 0x11,
+ 0xdb, 0xf1, 0x0d, 0xdb, 0xf2, 0xf2, 0xa9, 0x19, 0x69, 0x2e, 0x73, 0xec, 0x23, 0x7d, 0x03, 0x61,
+ 0x8d, 0xe9, 0x28, 0x42, 0x19, 0x55, 0x40, 0xf6, 0xec, 0xa6, 0xab, 0x63, 0x55, 0xb7, 0x6b, 0x58,
+ 0x35, 0xac, 0x1d, 0x3b, 0x9f, 0xa6, 0x04, 0xd3, 0xbd, 0x03, 0xa1, 0x8a, 0x8b, 0x76, 0x0d, 0x57,
+ 0xac, 0x1d, 0x5b, 0xc9, 0x79, 0x1d, 0xcf, 0xe8, 0x10, 0x0c, 0x7b, 0x2d, 0xcb, 0xd7, 0x5e, 0xca,
+ 0x67, 0x69, 0x84, 0xf0, 0xa7, 0xd9, 0xef, 0x0e, 0xc3, 0xd8, 0x20, 0x21, 0x76, 0x16, 0x92, 0x3b,
+ 0x64, 0x94, 0xf9, 0xd8, 0x41, 0x7c, 0xc0, 0x30, 0x9d, 0x4e, 0x1c, 0xbe, 0x47, 0x27, 0x2e, 0x40,
+ 0xc6, 0xc2, 0x9e, 0x8f, 0x6b, 0x2c, 0x22, 0xe2, 0x03, 0xc6, 0x14, 0x30, 0x50, 0x6f, 0x48, 0x25,
+ 0xee, 0x29, 0xa4, 0x5e, 0x80, 0xb1, 0xc0, 0x24, 0xd5, 0xd5, 0xac, 0xba, 0x88, 0xcd, 0xa3, 0x51,
+ 0x96, 0xcc, 0x97, 0x05, 0x4e, 0x21, 0x30, 0x25, 0x87, 0x3b, 0x9e, 0xd1, 0x12, 0x80, 0x6d, 0x61,
+ 0x7b, 0x47, 0xad, 0x61, 0xdd, 0xcc, 0xa7, 0xf6, 0xf1, 0xd2, 0x1a, 0x51, 0xe9, 0xf1, 0x92, 0xcd,
+ 0xa4, 0xba, 0x89, 0x9e, 0x6d, 0x87, 0xda, 0xc8, 0x3e, 0x91, 0x52, 0x65, 0x8b, 0xac, 0x27, 0xda,
+ 0xb6, 0x20, 0xe7, 0x62, 0x12, 0xf7, 0xb8, 0xc6, 0x47, 0x96, 0xa6, 0x46, 0xcc, 0x47, 0x8e, 0x4c,
+ 0xe1, 0x30, 0x36, 0xb0, 0x51, 0x37, 0xfc, 0x88, 0x8e, 0x40, 0x20, 0x50, 0x69, 0x58, 0x01, 0xdd,
+ 0x85, 0xb2, 0x42, 0xb8, 0xaa, 0x35, 0xf0, 0xd4, 0x35, 0xc8, 0x75, 0xba, 0x07, 0x4d, 0x42, 0xd2,
+ 0xf3, 0x35, 0xd7, 0xa7, 0x51, 0x98, 0x54, 0xd8, 0x03, 0x92, 0x21, 0x8e, 0xad, 0x1a, 0xdd, 0xe5,
+ 0x92, 0x0a, 0xf9, 0x89, 0xfe, 0x5f, 0x7b, 0xc0, 0x71, 0x3a, 0xe0, 0x47, 0x7b, 0x67, 0xb4, 0x83,
+ 0xb9, 0x7b, 0xdc, 0x53, 0xa7, 0x61, 0xb4, 0x63, 0x00, 0x83, 0x76, 0x3d, 0xfb, 0x0b, 0x70, 0x5f,
+ 0x5f, 0x6a, 0xf4, 0x02, 0x4c, 0x36, 0x2d, 0xc3, 0xf2, 0xb1, 0xeb, 0xb8, 0x98, 0x44, 0x2c, 0xeb,
+ 0x2a, 0xff, 0xaf, 0x23, 0xfb, 0xc4, 0xdc, 0x56, 0x58, 0x9b, 0xb1, 0x28, 0x13, 0xcd, 0x5e, 0xe1,
+ 0x13, 0xe9, 0xd4, 0xdb, 0x23, 0xf2, 0xf5, 0xeb, 0xd7, 0xaf, 0xc7, 0x66, 0x3f, 0x3f, 0x0c, 0x93,
0xfd, 0xd6, 0x4c, 0xdf, 0xe5, 0x7b, 0x08, 0x86, 0xad, 0x66, 0x63, 0x1b, 0xbb, 0xd4, 0x49, 0x49,
- 0x85, 0x3f, 0xa1, 0x05, 0x48, 0x9a, 0xda, 0x36, 0x36, 0xf3, 0x89, 0x19, 0x69, 0x2e, 0x77, 0xfc,
- 0xc9, 0x81, 0x56, 0xe5, 0xfc, 0x0a, 0x81, 0x28, 0x0c, 0x89, 0x9e, 0x86, 0x04, 0xdf, 0xa2, 0x09,
- 0xc3, 0x13, 0x83, 0x31, 0x90, 0xb5, 0xa4, 0x50, 0x1c, 0xfa, 0x00, 0xa4, 0xc9, 0x5f, 0x16, 0x1b,
- 0xc3, 0xd4, 0xe6, 0x14, 0x11, 0x90, 0xb8, 0x40, 0x53, 0x90, 0xa2, 0xcb, 0xa4, 0x86, 0x45, 0x6a,
- 0x0b, 0x9e, 0x49, 0x60, 0xd5, 0xf0, 0x8e, 0xd6, 0x34, 0x7d, 0xf5, 0x9a, 0x66, 0x36, 0x31, 0x0d,
- 0xf8, 0xb4, 0x92, 0xe5, 0xc2, 0x4f, 0x10, 0x19, 0x9a, 0x86, 0x0c, 0x5b, 0x55, 0x86, 0x55, 0xc3,
- 0xcf, 0xd3, 0xdd, 0x33, 0xa9, 0xb0, 0x85, 0x56, 0x21, 0x12, 0xd2, 0xfd, 0x15, 0xcf, 0xb6, 0x44,
- 0x68, 0xd2, 0x2e, 0x88, 0x80, 0x76, 0x7f, 0xa6, 0x7b, 0xe3, 0x7e, 0xa8, 0xff, 0xf0, 0xba, 0x63,
- 0x6a, 0xf6, 0xdb, 0x31, 0x48, 0xd0, 0xfd, 0x62, 0x0c, 0x32, 0x9b, 0x97, 0xd7, 0xcb, 0xea, 0xd2,
- 0xda, 0x56, 0x69, 0xa5, 0x2c, 0x4b, 0x28, 0x07, 0x40, 0x05, 0x17, 0x56, 0xd6, 0x16, 0x36, 0xe5,
- 0x58, 0xf0, 0x5c, 0x59, 0xdd, 0x3c, 0x7d, 0x52, 0x8e, 0x07, 0x80, 0x2d, 0x26, 0x48, 0x84, 0x15,
- 0x4e, 0x1c, 0x97, 0x93, 0x48, 0x86, 0x2c, 0x23, 0xa8, 0x3c, 0x5b, 0x5e, 0x3a, 0x7d, 0x52, 0x1e,
- 0xee, 0x94, 0x9c, 0x38, 0x2e, 0x8f, 0xa0, 0x51, 0x48, 0x53, 0x49, 0x69, 0x6d, 0x6d, 0x45, 0x4e,
- 0x05, 0x9c, 0x1b, 0x9b, 0x4a, 0x65, 0x75, 0x59, 0x4e, 0x07, 0x9c, 0xcb, 0xca, 0xda, 0xd6, 0xba,
- 0x0c, 0x01, 0x43, 0xb5, 0xbc, 0xb1, 0xb1, 0xb0, 0x5c, 0x96, 0x33, 0x81, 0x46, 0xe9, 0xf2, 0x66,
- 0x79, 0x43, 0xce, 0x76, 0x98, 0x75, 0xe2, 0xb8, 0x3c, 0x1a, 0x74, 0x51, 0x5e, 0xdd, 0xaa, 0xca,
- 0x39, 0x34, 0x0e, 0xa3, 0xac, 0x0b, 0x61, 0xc4, 0x58, 0x97, 0xe8, 0xf4, 0x49, 0x59, 0x6e, 0x1b,
- 0xc2, 0x58, 0xc6, 0x3b, 0x04, 0xa7, 0x4f, 0xca, 0x68, 0x76, 0x11, 0x92, 0x34, 0xba, 0x10, 0x82,
- 0xdc, 0xca, 0x42, 0xa9, 0xbc, 0xa2, 0xae, 0xad, 0x6f, 0x56, 0xd6, 0x56, 0x17, 0x56, 0x64, 0xa9,
- 0x2d, 0x53, 0xca, 0x1f, 0xdf, 0xaa, 0x28, 0xe5, 0x25, 0x39, 0x16, 0x96, 0xad, 0x97, 0x17, 0x36,
- 0xcb, 0x4b, 0x72, 0x7c, 0x56, 0x87, 0xc9, 0x7e, 0xfb, 0x64, 0xdf, 0x95, 0x11, 0x9a, 0xe2, 0xd8,
- 0x3e, 0x53, 0x4c, 0xb9, 0x7a, 0xa6, 0xf8, 0xc7, 0x31, 0x98, 0xe8, 0x93, 0x2b, 0xfa, 0x76, 0xf2,
- 0x0c, 0x24, 0x59, 0x88, 0xb2, 0xec, 0xf9, 0x78, 0xdf, 0xa4, 0x43, 0x03, 0xb6, 0x27, 0x83, 0x52,
- 0x5c, 0xb8, 0x82, 0x88, 0xef, 0x53, 0x41, 0x10, 0x8a, 0x9e, 0x3d, 0xfd, 0x97, 0x7b, 0xf6, 0x74,
- 0x96, 0xf6, 0x4e, 0x0f, 0x92, 0xf6, 0xa8, 0xec, 0x60, 0x7b, 0x7b, 0xb2, 0xcf, 0xde, 0x7e, 0x1e,
- 0xc6, 0x7b, 0x88, 0x06, 0xde, 0x63, 0x5f, 0x90, 0x20, 0xbf, 0x9f, 0x73, 0x22, 0x76, 0xba, 0x58,
- 0xc7, 0x4e, 0x77, 0xbe, 0xdb, 0x83, 0x47, 0xf6, 0x9f, 0x84, 0x9e, 0xb9, 0x7e, 0x45, 0x82, 0x43,
- 0xfd, 0x2b, 0xc5, 0xbe, 0x36, 0x3c, 0x0d, 0xc3, 0x0d, 0xec, 0xef, 0xda, 0xa2, 0x5a, 0x7a, 0xb4,
- 0x4f, 0x0e, 0x26, 0xcd, 0xdd, 0x93, 0xcd, 0x51, 0xe1, 0x24, 0x1e, 0xdf, 0xaf, 0xdc, 0x63, 0xd6,
- 0xf4, 0x58, 0xfa, 0xd9, 0x18, 0x3c, 0xd0, 0x97, 0xbc, 0xaf, 0xa1, 0x0f, 0x01, 0x18, 0x96, 0xd3,
- 0xf4, 0x59, 0x45, 0xc4, 0x36, 0xd8, 0x34, 0x95, 0xd0, 0xcd, 0x8b, 0x6c, 0x9e, 0x4d, 0x3f, 0x68,
- 0x8f, 0xd3, 0x76, 0x60, 0x22, 0xaa, 0x70, 0xb6, 0x6d, 0x68, 0x82, 0x1a, 0x5a, 0xd8, 0x67, 0xa4,
- 0x3d, 0x81, 0xf9, 0x14, 0xc8, 0xba, 0x69, 0x60, 0xcb, 0x57, 0x3d, 0xdf, 0xc5, 0x5a, 0xc3, 0xb0,
- 0xea, 0x34, 0x83, 0xa4, 0x8a, 0xc9, 0x1d, 0xcd, 0xf4, 0xb0, 0x32, 0xc6, 0x9a, 0x37, 0x44, 0x2b,
- 0x41, 0xd0, 0x00, 0x72, 0x43, 0x88, 0xe1, 0x0e, 0x04, 0x6b, 0x0e, 0x10, 0xb3, 0xdf, 0x4c, 0x41,
- 0x26, 0x54, 0x57, 0xa3, 0x23, 0x90, 0xbd, 0xa2, 0x5d, 0xd3, 0x54, 0x71, 0x56, 0x62, 0x9e, 0xc8,
- 0x10, 0xd9, 0x3a, 0x3f, 0x2f, 0x3d, 0x05, 0x93, 0x54, 0xc5, 0x6e, 0xfa, 0xd8, 0x55, 0x75, 0x53,
- 0xf3, 0x3c, 0xea, 0xb4, 0x14, 0x55, 0x45, 0xa4, 0x6d, 0x8d, 0x34, 0x2d, 0x8a, 0x16, 0x74, 0x0a,
+ 0x85, 0x3f, 0xa1, 0x05, 0x48, 0x9a, 0xda, 0x36, 0x36, 0xf3, 0x89, 0x19, 0x69, 0x2e, 0x77, 0xec,
+ 0xc9, 0x81, 0x56, 0xe5, 0xfc, 0x0a, 0x81, 0x28, 0x0c, 0x89, 0x9e, 0x83, 0x04, 0xdf, 0xa2, 0x09,
+ 0xc3, 0x13, 0x83, 0x31, 0x90, 0xb5, 0xa4, 0x50, 0x1c, 0x7a, 0x10, 0xd2, 0xe4, 0x2f, 0x8b, 0x8d,
+ 0x61, 0x6a, 0x73, 0x8a, 0x08, 0x48, 0x5c, 0xa0, 0x29, 0x48, 0xd1, 0x65, 0x52, 0xc3, 0x22, 0xb5,
+ 0x05, 0xcf, 0x24, 0xb0, 0x6a, 0x78, 0x47, 0x6b, 0x9a, 0xbe, 0x7a, 0x45, 0x33, 0x9b, 0x98, 0x06,
+ 0x7c, 0x5a, 0xc9, 0x72, 0xe1, 0x27, 0x89, 0x0c, 0x4d, 0x43, 0x86, 0xad, 0x2a, 0xc3, 0xaa, 0xe1,
+ 0x97, 0xe8, 0xee, 0x99, 0x54, 0xd8, 0x42, 0xab, 0x10, 0x09, 0xe9, 0xfe, 0x92, 0x67, 0x5b, 0x22,
+ 0x34, 0x69, 0x17, 0x44, 0x40, 0xbb, 0x3f, 0xdd, 0xbd, 0x71, 0x3f, 0xd4, 0x7f, 0x78, 0xdd, 0x31,
+ 0x35, 0xfb, 0xed, 0x18, 0x24, 0xe8, 0x7e, 0x31, 0x06, 0x99, 0xcd, 0x8b, 0xeb, 0x65, 0x75, 0x69,
+ 0x6d, 0xab, 0xb4, 0x52, 0x96, 0x25, 0x94, 0x03, 0xa0, 0x82, 0x73, 0x2b, 0x6b, 0x0b, 0x9b, 0x72,
+ 0x2c, 0x78, 0xae, 0xac, 0x6e, 0x9e, 0x3a, 0x21, 0xc7, 0x03, 0xc0, 0x16, 0x13, 0x24, 0xc2, 0x0a,
+ 0xc7, 0x8f, 0xc9, 0x49, 0x24, 0x43, 0x96, 0x11, 0x54, 0x5e, 0x28, 0x2f, 0x9d, 0x3a, 0x21, 0x0f,
+ 0x77, 0x4a, 0x8e, 0x1f, 0x93, 0x47, 0xd0, 0x28, 0xa4, 0xa9, 0xa4, 0xb4, 0xb6, 0xb6, 0x22, 0xa7,
+ 0x02, 0xce, 0x8d, 0x4d, 0xa5, 0xb2, 0xba, 0x2c, 0xa7, 0x03, 0xce, 0x65, 0x65, 0x6d, 0x6b, 0x5d,
+ 0x86, 0x80, 0xa1, 0x5a, 0xde, 0xd8, 0x58, 0x58, 0x2e, 0xcb, 0x99, 0x40, 0xa3, 0x74, 0x71, 0xb3,
+ 0xbc, 0x21, 0x67, 0x3b, 0xcc, 0x3a, 0x7e, 0x4c, 0x1e, 0x0d, 0xba, 0x28, 0xaf, 0x6e, 0x55, 0xe5,
+ 0x1c, 0x1a, 0x87, 0x51, 0xd6, 0x85, 0x30, 0x62, 0xac, 0x4b, 0x74, 0xea, 0x84, 0x2c, 0xb7, 0x0d,
+ 0x61, 0x2c, 0xe3, 0x1d, 0x82, 0x53, 0x27, 0x64, 0x34, 0xbb, 0x08, 0x49, 0x1a, 0x5d, 0x08, 0x41,
+ 0x6e, 0x65, 0xa1, 0x54, 0x5e, 0x51, 0xd7, 0xd6, 0x37, 0x2b, 0x6b, 0xab, 0x0b, 0x2b, 0xb2, 0xd4,
+ 0x96, 0x29, 0xe5, 0x4f, 0x6c, 0x55, 0x94, 0xf2, 0x92, 0x1c, 0x0b, 0xcb, 0xd6, 0xcb, 0x0b, 0x9b,
+ 0xe5, 0x25, 0x39, 0x3e, 0xab, 0xc3, 0x64, 0xbf, 0x7d, 0xb2, 0xef, 0xca, 0x08, 0x4d, 0x71, 0x6c,
+ 0x9f, 0x29, 0xa6, 0x5c, 0x3d, 0x53, 0xfc, 0xe3, 0x18, 0x4c, 0xf4, 0xc9, 0x15, 0x7d, 0x3b, 0x79,
+ 0x1e, 0x92, 0x2c, 0x44, 0x59, 0xf6, 0x7c, 0xbc, 0x6f, 0xd2, 0xa1, 0x01, 0xdb, 0x93, 0x41, 0x29,
+ 0x2e, 0x5c, 0x41, 0xc4, 0xf7, 0xa9, 0x20, 0x08, 0x45, 0xcf, 0x9e, 0xfe, 0xf3, 0x3d, 0x7b, 0x3a,
+ 0x4b, 0x7b, 0xa7, 0x06, 0x49, 0x7b, 0x54, 0x76, 0xb0, 0xbd, 0x3d, 0xd9, 0x67, 0x6f, 0x3f, 0x0b,
+ 0xe3, 0x3d, 0x44, 0x03, 0xef, 0xb1, 0x2f, 0x4b, 0x90, 0xdf, 0xcf, 0x39, 0x11, 0x3b, 0x5d, 0xac,
+ 0x63, 0xa7, 0x3b, 0xdb, 0xed, 0xc1, 0xc3, 0xfb, 0x4f, 0x42, 0xcf, 0x5c, 0xbf, 0x2e, 0xc1, 0xa1,
+ 0xfe, 0x95, 0x62, 0x5f, 0x1b, 0x9e, 0x83, 0xe1, 0x06, 0xf6, 0x77, 0x6d, 0x51, 0x2d, 0x3d, 0xda,
+ 0x27, 0x07, 0x93, 0xe6, 0xee, 0xc9, 0xe6, 0xa8, 0x70, 0x12, 0x8f, 0xef, 0x57, 0xee, 0x31, 0x6b,
+ 0x7a, 0x2c, 0xfd, 0x5c, 0x0c, 0xee, 0xeb, 0x4b, 0xde, 0xd7, 0xd0, 0x87, 0x00, 0x0c, 0xcb, 0x69,
+ 0xfa, 0xac, 0x22, 0x62, 0x1b, 0x6c, 0x9a, 0x4a, 0xe8, 0xe6, 0x45, 0x36, 0xcf, 0xa6, 0x1f, 0xb4,
+ 0xc7, 0x69, 0x3b, 0x30, 0x11, 0x55, 0x38, 0xd3, 0x36, 0x34, 0x41, 0x0d, 0x2d, 0xec, 0x33, 0xd2,
+ 0x9e, 0xc0, 0x7c, 0x06, 0x64, 0xdd, 0x34, 0xb0, 0xe5, 0xab, 0x9e, 0xef, 0x62, 0xad, 0x61, 0x58,
+ 0x75, 0x9a, 0x41, 0x52, 0xc5, 0xe4, 0x8e, 0x66, 0x7a, 0x58, 0x19, 0x63, 0xcd, 0x1b, 0xa2, 0x95,
+ 0x20, 0x68, 0x00, 0xb9, 0x21, 0xc4, 0x70, 0x07, 0x82, 0x35, 0x07, 0x88, 0xd9, 0x5f, 0x4f, 0x43,
+ 0x26, 0x54, 0x57, 0xa3, 0xc3, 0x90, 0xbd, 0xa4, 0x5d, 0xd1, 0x54, 0x71, 0x56, 0x62, 0x9e, 0xc8,
+ 0x10, 0xd9, 0x3a, 0x3f, 0x2f, 0x3d, 0x03, 0x93, 0x54, 0xc5, 0x6e, 0xfa, 0xd8, 0x55, 0x75, 0x53,
+ 0xf3, 0x3c, 0xea, 0xb4, 0x14, 0x55, 0x45, 0xa4, 0x6d, 0x8d, 0x34, 0x2d, 0x8a, 0x16, 0x74, 0x12,
0x26, 0x28, 0xa2, 0xd1, 0x34, 0x7d, 0xc3, 0x31, 0xb1, 0x4a, 0x4e, 0x6f, 0x1e, 0xcd, 0x24, 0x81,
0x65, 0xe3, 0x44, 0xa3, 0xca, 0x15, 0x88, 0x45, 0x1e, 0x5a, 0x82, 0x87, 0x28, 0xac, 0x8e, 0x2d,
- 0xec, 0x6a, 0x3e, 0x56, 0xf1, 0xa7, 0x9a, 0x9a, 0xe9, 0xa9, 0x9a, 0x55, 0x53, 0x77, 0x35, 0x6f,
- 0x37, 0x3f, 0x49, 0x08, 0x4a, 0xb1, 0xbc, 0xa4, 0x1c, 0x26, 0x8a, 0xcb, 0x5c, 0xaf, 0x4c, 0xd5,
- 0x16, 0xac, 0xda, 0xc7, 0x34, 0x6f, 0x17, 0x15, 0xe1, 0x10, 0x65, 0xf1, 0x7c, 0xd7, 0xb0, 0xea,
- 0xaa, 0xbe, 0x8b, 0xf5, 0xab, 0x6a, 0xd3, 0xdf, 0x39, 0x9b, 0xff, 0x40, 0xb8, 0x7f, 0x6a, 0xe1,
- 0x06, 0xd5, 0x59, 0x24, 0x2a, 0x5b, 0xfe, 0xce, 0x59, 0xb4, 0x01, 0x59, 0x32, 0x19, 0x0d, 0xe3,
- 0x06, 0x56, 0x77, 0x6c, 0x97, 0xa6, 0xc6, 0x5c, 0x9f, 0xad, 0x29, 0xe4, 0xc1, 0xf9, 0x35, 0x0e,
- 0xa8, 0xda, 0x35, 0x5c, 0x4c, 0x6e, 0xac, 0x97, 0xcb, 0x4b, 0x4a, 0x46, 0xb0, 0x5c, 0xb0, 0x5d,
- 0x12, 0x50, 0x75, 0x3b, 0x70, 0x70, 0x86, 0x05, 0x54, 0xdd, 0x16, 0xee, 0x3d, 0x05, 0x13, 0xba,
+ 0xec, 0x6a, 0x3e, 0x56, 0xf1, 0xa7, 0x9b, 0x9a, 0xe9, 0xa9, 0x9a, 0x55, 0x53, 0x77, 0x35, 0x6f,
+ 0x37, 0x3f, 0x49, 0x08, 0x4a, 0xb1, 0xbc, 0xa4, 0x3c, 0x40, 0x14, 0x97, 0xb9, 0x5e, 0x99, 0xaa,
+ 0x2d, 0x58, 0xb5, 0x8f, 0x6b, 0xde, 0x2e, 0x2a, 0xc2, 0x21, 0xca, 0xe2, 0xf9, 0xae, 0x61, 0xd5,
+ 0x55, 0x7d, 0x17, 0xeb, 0x97, 0xd5, 0xa6, 0xbf, 0x73, 0x26, 0xff, 0x60, 0xb8, 0x7f, 0x6a, 0xe1,
+ 0x06, 0xd5, 0x59, 0x24, 0x2a, 0x5b, 0xfe, 0xce, 0x19, 0xb4, 0x01, 0x59, 0x32, 0x19, 0x0d, 0xe3,
+ 0x1a, 0x56, 0x77, 0x6c, 0x97, 0xa6, 0xc6, 0x5c, 0x9f, 0xad, 0x29, 0xe4, 0xc1, 0xf9, 0x35, 0x0e,
+ 0xa8, 0xda, 0x35, 0x5c, 0x4c, 0x6e, 0xac, 0x97, 0xcb, 0x4b, 0x4a, 0x46, 0xb0, 0x9c, 0xb3, 0x5d,
+ 0x12, 0x50, 0x75, 0x3b, 0x70, 0x70, 0x86, 0x05, 0x54, 0xdd, 0x16, 0xee, 0x3d, 0x09, 0x13, 0xba,
0xce, 0xc6, 0x6c, 0xe8, 0x2a, 0x3f, 0x63, 0x79, 0x79, 0xb9, 0xc3, 0x59, 0xba, 0xbe, 0xcc, 0x14,
- 0x78, 0x8c, 0x7b, 0xe8, 0x1c, 0x3c, 0xd0, 0x76, 0x56, 0x18, 0x38, 0xde, 0x33, 0xca, 0x6e, 0xe8,
- 0x29, 0x98, 0x70, 0x5a, 0xbd, 0x40, 0xd4, 0xd1, 0xa3, 0xd3, 0xea, 0x86, 0x9d, 0x81, 0x49, 0x67,
- 0xd7, 0xe9, 0xc5, 0x3d, 0x11, 0xc6, 0x21, 0x67, 0xd7, 0xe9, 0x06, 0x3e, 0x42, 0x0f, 0xdc, 0x2e,
- 0xd6, 0x35, 0x1f, 0xd7, 0xf2, 0x0f, 0x86, 0xd5, 0x43, 0x0d, 0xe8, 0x18, 0xc8, 0xba, 0xae, 0x62,
- 0x4b, 0xdb, 0x36, 0xb1, 0xaa, 0xb9, 0xd8, 0xd2, 0xbc, 0xfc, 0x74, 0x58, 0x39, 0xa7, 0xeb, 0x65,
- 0xda, 0xba, 0x40, 0x1b, 0xd1, 0x13, 0x30, 0x6e, 0x6f, 0x5f, 0xd1, 0x59, 0x48, 0xaa, 0x8e, 0x8b,
- 0x77, 0x8c, 0xe7, 0xf3, 0x0f, 0x53, 0xff, 0x8e, 0x91, 0x06, 0x1a, 0x90, 0xeb, 0x54, 0x8c, 0x1e,
- 0x07, 0x59, 0xf7, 0x76, 0x35, 0xd7, 0xa1, 0x7b, 0xb2, 0xe7, 0x68, 0x3a, 0xce, 0x3f, 0xc2, 0x54,
- 0x99, 0x7c, 0x55, 0x88, 0xc9, 0x92, 0xf0, 0xae, 0x1b, 0x3b, 0xbe, 0x60, 0x7c, 0x8c, 0x2d, 0x09,
- 0x2a, 0xe3, 0x6c, 0x73, 0x20, 0x13, 0x57, 0x74, 0x74, 0x3c, 0x47, 0xd5, 0x72, 0xce, 0xae, 0x13,
- 0xee, 0xf7, 0x28, 0x8c, 0x12, 0xcd, 0x76, 0xa7, 0x8f, 0xb3, 0x82, 0xcc, 0xd9, 0x0d, 0xf5, 0xf8,
- 0x9e, 0xd5, 0xc6, 0xb3, 0x45, 0xc8, 0x86, 0xe3, 0x13, 0xa5, 0x81, 0x45, 0xa8, 0x2c, 0x91, 0x62,
- 0x65, 0x71, 0x6d, 0x89, 0x94, 0x19, 0xcf, 0x95, 0xe5, 0x18, 0x29, 0x77, 0x56, 0x2a, 0x9b, 0x65,
- 0x55, 0xd9, 0x5a, 0xdd, 0xac, 0x54, 0xcb, 0x72, 0x3c, 0x5c, 0x57, 0xff, 0x20, 0x06, 0xb9, 0xce,
- 0x23, 0x12, 0xfa, 0x08, 0x3c, 0x28, 0xee, 0x33, 0x3c, 0xec, 0xab, 0xd7, 0x0d, 0x97, 0x2e, 0x99,
- 0x86, 0xc6, 0xd2, 0x57, 0x30, 0x69, 0x93, 0x5c, 0x6b, 0x03, 0xfb, 0x97, 0x0c, 0x97, 0x2c, 0x88,
- 0x86, 0xe6, 0xa3, 0x15, 0x98, 0xb6, 0x6c, 0xd5, 0xf3, 0x35, 0xab, 0xa6, 0xb9, 0x35, 0xb5, 0x7d,
- 0x93, 0xa4, 0x6a, 0xba, 0x8e, 0x3d, 0xcf, 0x66, 0xa9, 0x2a, 0x60, 0xf9, 0xa0, 0x65, 0x6f, 0x70,
- 0xe5, 0xf6, 0x1e, 0xbe, 0xc0, 0x55, 0xbb, 0x02, 0x2c, 0xbe, 0x5f, 0x80, 0x7d, 0x00, 0xd2, 0x0d,
- 0xcd, 0x51, 0xb1, 0xe5, 0xbb, 0x2d, 0x5a, 0x18, 0xa7, 0x94, 0x54, 0x43, 0x73, 0xca, 0xe4, 0xf9,
- 0xfd, 0x39, 0x9f, 0xfc, 0x5b, 0x1c, 0xb2, 0xe1, 0xe2, 0x98, 0x9c, 0x35, 0x74, 0x9a, 0x47, 0x24,
- 0xba, 0xd3, 0x1c, 0xbd, 0x67, 0x29, 0x3d, 0xbf, 0x48, 0x12, 0x4c, 0x71, 0x98, 0x95, 0xac, 0x0a,
- 0x43, 0x92, 0xe4, 0x4e, 0xf6, 0x16, 0xcc, 0x4a, 0x84, 0x94, 0xc2, 0x9f, 0xd0, 0x32, 0x0c, 0x5f,
- 0xf1, 0x28, 0xf7, 0x30, 0xe5, 0x7e, 0xf8, 0xde, 0xdc, 0x17, 0x37, 0x28, 0x79, 0xfa, 0xe2, 0x86,
- 0xba, 0xba, 0xa6, 0x54, 0x17, 0x56, 0x14, 0x0e, 0x47, 0x87, 0x21, 0x61, 0x6a, 0x37, 0x5a, 0x9d,
- 0xa9, 0x88, 0x8a, 0x06, 0x75, 0xfc, 0x61, 0x48, 0x5c, 0xc7, 0xda, 0xd5, 0xce, 0x04, 0x40, 0x45,
- 0xef, 0x61, 0xe8, 0x1f, 0x83, 0x24, 0xf5, 0x17, 0x02, 0xe0, 0x1e, 0x93, 0x87, 0x50, 0x0a, 0x12,
- 0x8b, 0x6b, 0x0a, 0x09, 0x7f, 0x19, 0xb2, 0x4c, 0xaa, 0xae, 0x57, 0xca, 0x8b, 0x65, 0x39, 0x36,
- 0x7b, 0x0a, 0x86, 0x99, 0x13, 0xc8, 0xd2, 0x08, 0xdc, 0x20, 0x0f, 0xf1, 0x47, 0xce, 0x21, 0x89,
- 0xd6, 0xad, 0x6a, 0xa9, 0xac, 0xc8, 0xb1, 0xf0, 0xf4, 0x7a, 0x90, 0x0d, 0xd7, 0xc5, 0xef, 0x4f,
- 0x4c, 0x7d, 0x4f, 0x82, 0x4c, 0xa8, 0xce, 0x25, 0x05, 0x8a, 0x66, 0x9a, 0xf6, 0x75, 0x55, 0x33,
- 0x0d, 0xcd, 0xe3, 0x41, 0x01, 0x54, 0xb4, 0x40, 0x24, 0x83, 0x4e, 0xda, 0xfb, 0x62, 0xfc, 0xcb,
- 0x12, 0xc8, 0xdd, 0x25, 0x66, 0x97, 0x81, 0xd2, 0xcf, 0xd5, 0xc0, 0x97, 0x24, 0xc8, 0x75, 0xd6,
- 0x95, 0x5d, 0xe6, 0x1d, 0xf9, 0xb9, 0x9a, 0xf7, 0x7a, 0x0c, 0x46, 0x3b, 0xaa, 0xc9, 0x41, 0xad,
- 0xfb, 0x14, 0x8c, 0x1b, 0x35, 0xdc, 0x70, 0x6c, 0x1f, 0x5b, 0x7a, 0x4b, 0x35, 0xf1, 0x35, 0x6c,
- 0xe6, 0x67, 0xe9, 0x46, 0x71, 0xec, 0xde, 0xf5, 0xea, 0x7c, 0xa5, 0x8d, 0x5b, 0x21, 0xb0, 0xe2,
- 0x44, 0x65, 0xa9, 0x5c, 0x5d, 0x5f, 0xdb, 0x2c, 0xaf, 0x2e, 0x5e, 0x56, 0xb7, 0x56, 0x7f, 0x71,
- 0x75, 0xed, 0xd2, 0xaa, 0x22, 0x1b, 0x5d, 0x6a, 0xef, 0xe1, 0x52, 0x5f, 0x07, 0xb9, 0xdb, 0x28,
- 0xf4, 0x20, 0xf4, 0x33, 0x4b, 0x1e, 0x42, 0x13, 0x30, 0xb6, 0xba, 0xa6, 0x6e, 0x54, 0x96, 0xca,
- 0x6a, 0xf9, 0xc2, 0x85, 0xf2, 0xe2, 0xe6, 0x06, 0xbb, 0x81, 0x08, 0xb4, 0x37, 0x3b, 0x17, 0xf5,
- 0x8b, 0x71, 0x98, 0xe8, 0x63, 0x09, 0x5a, 0xe0, 0x67, 0x07, 0x76, 0x9c, 0xf9, 0xf0, 0x20, 0xd6,
- 0xcf, 0x93, 0x94, 0xbf, 0xae, 0xb9, 0x3e, 0x3f, 0x6a, 0x3c, 0x0e, 0xc4, 0x4b, 0x96, 0x6f, 0xec,
- 0x18, 0xd8, 0xe5, 0x17, 0x36, 0xec, 0x40, 0x31, 0xd6, 0x96, 0xb3, 0x3b, 0x9b, 0x0f, 0x01, 0x72,
- 0x6c, 0xcf, 0xf0, 0x8d, 0x6b, 0x58, 0x35, 0x2c, 0x71, 0xbb, 0x43, 0x0e, 0x18, 0x09, 0x45, 0x16,
- 0x2d, 0x15, 0xcb, 0x0f, 0xb4, 0x2d, 0x5c, 0xd7, 0xba, 0xb4, 0xc9, 0x06, 0x1e, 0x57, 0x64, 0xd1,
- 0x12, 0x68, 0x1f, 0x81, 0x6c, 0xcd, 0x6e, 0x92, 0xaa, 0x8b, 0xe9, 0x91, 0x7c, 0x21, 0x29, 0x19,
- 0x26, 0x0b, 0x54, 0x78, 0x3d, 0xdd, 0xbe, 0x56, 0xca, 0x2a, 0x19, 0x26, 0x63, 0x2a, 0x8f, 0xc1,
- 0x98, 0x56, 0xaf, 0xbb, 0x84, 0x5c, 0x10, 0xb1, 0x13, 0x42, 0x2e, 0x10, 0x53, 0xc5, 0xa9, 0x8b,
- 0x90, 0x12, 0x7e, 0x20, 0x29, 0x99, 0x78, 0x42, 0x75, 0xd8, 0xb1, 0x37, 0x36, 0x97, 0x56, 0x52,
- 0x96, 0x68, 0x3c, 0x02, 0x59, 0xc3, 0x53, 0xdb, 0xb7, 0xe4, 0xb1, 0x99, 0xd8, 0x5c, 0x4a, 0xc9,
- 0x18, 0x5e, 0x70, 0xc3, 0x38, 0xfb, 0x4a, 0x0c, 0x72, 0x9d, 0xb7, 0xfc, 0x68, 0x09, 0x52, 0xa6,
- 0xad, 0x6b, 0x34, 0xb4, 0xd8, 0x2b, 0xa6, 0xb9, 0x88, 0x17, 0x03, 0xf3, 0x2b, 0x5c, 0x5f, 0x09,
- 0x90, 0x53, 0xff, 0x22, 0x41, 0x4a, 0x88, 0xd1, 0x21, 0x48, 0x38, 0x9a, 0xbf, 0x4b, 0xe9, 0x92,
- 0xa5, 0x98, 0x2c, 0x29, 0xf4, 0x99, 0xc8, 0x3d, 0x47, 0xb3, 0x68, 0x08, 0x70, 0x39, 0x79, 0x26,
- 0xf3, 0x6a, 0x62, 0xad, 0x46, 0x8f, 0x1f, 0x76, 0xa3, 0x81, 0x2d, 0xdf, 0x13, 0xf3, 0xca, 0xe5,
- 0x8b, 0x5c, 0x8c, 0x9e, 0x84, 0x71, 0xdf, 0xd5, 0x0c, 0xb3, 0x43, 0x37, 0x41, 0x75, 0x65, 0xd1,
- 0x10, 0x28, 0x17, 0xe1, 0xb0, 0xe0, 0xad, 0x61, 0x5f, 0xd3, 0x77, 0x71, 0xad, 0x0d, 0x1a, 0xa6,
- 0xd7, 0x0c, 0x0f, 0x72, 0x85, 0x25, 0xde, 0x2e, 0xb0, 0xb3, 0x3f, 0x92, 0x60, 0x5c, 0x1c, 0x98,
- 0x6a, 0x81, 0xb3, 0xaa, 0x00, 0x9a, 0x65, 0xd9, 0x7e, 0xd8, 0x5d, 0xbd, 0xa1, 0xdc, 0x83, 0x9b,
- 0x5f, 0x08, 0x40, 0x4a, 0x88, 0x60, 0xaa, 0x01, 0xd0, 0x6e, 0xd9, 0xd7, 0x6d, 0xd3, 0x90, 0xe1,
- 0xaf, 0x70, 0xe8, 0x7b, 0x40, 0x76, 0xc4, 0x06, 0x26, 0x22, 0x27, 0x2b, 0x34, 0x09, 0xc9, 0x6d,
- 0x5c, 0x37, 0x2c, 0x7e, 0x31, 0xcb, 0x1e, 0xc4, 0x45, 0x48, 0x22, 0xb8, 0x08, 0x29, 0x7d, 0x12,
- 0x26, 0x74, 0xbb, 0xd1, 0x6d, 0x6e, 0x49, 0xee, 0x3a, 0xe6, 0x7b, 0x1f, 0x93, 0x9e, 0x83, 0x76,
- 0x89, 0xf9, 0x8e, 0x24, 0x7d, 0x29, 0x16, 0x5f, 0x5e, 0x2f, 0x7d, 0x35, 0x36, 0xb5, 0xcc, 0xa0,
- 0xeb, 0x62, 0xa4, 0x0a, 0xde, 0x31, 0xb1, 0x4e, 0xac, 0x87, 0x2f, 0x3f, 0x09, 0x1f, 0xae, 0x1b,
- 0xfe, 0x6e, 0x73, 0x7b, 0x5e, 0xb7, 0x1b, 0xc7, 0xea, 0x76, 0xdd, 0x6e, 0xbf, 0xfa, 0x24, 0x4f,
- 0xf4, 0x81, 0xfe, 0xe2, 0xaf, 0x3f, 0xd3, 0x81, 0x74, 0x2a, 0xf2, 0x5d, 0x69, 0x71, 0x15, 0x26,
- 0xb8, 0xb2, 0x4a, 0xdf, 0xbf, 0xb0, 0x53, 0x04, 0xba, 0xe7, 0x1d, 0x56, 0xfe, 0x1b, 0x6f, 0xd0,
- 0x74, 0xad, 0x8c, 0x73, 0x28, 0x69, 0x63, 0x07, 0x8d, 0xa2, 0x02, 0x0f, 0x74, 0xf0, 0xb1, 0xa5,
- 0x89, 0xdd, 0x08, 0xc6, 0x1f, 0x70, 0xc6, 0x89, 0x10, 0xe3, 0x06, 0x87, 0x16, 0x17, 0x61, 0xf4,
- 0x20, 0x5c, 0xff, 0xc4, 0xb9, 0xb2, 0x38, 0x4c, 0xb2, 0x0c, 0x63, 0x94, 0x44, 0x6f, 0x7a, 0xbe,
- 0xdd, 0xa0, 0xfb, 0xde, 0xbd, 0x69, 0xfe, 0xf9, 0x0d, 0xb6, 0x56, 0x72, 0x04, 0xb6, 0x18, 0xa0,
- 0x8a, 0x45, 0xa0, 0xaf, 0x9c, 0x6a, 0x58, 0x37, 0x23, 0x18, 0x5e, 0xe5, 0x86, 0x04, 0xfa, 0xc5,
- 0x4f, 0xc0, 0x24, 0xf9, 0x4d, 0xb7, 0xa5, 0xb0, 0x25, 0xd1, 0x17, 0x5e, 0xf9, 0x1f, 0xbd, 0xc0,
- 0x96, 0xe3, 0x44, 0x40, 0x10, 0xb2, 0x29, 0x34, 0x8b, 0x75, 0xec, 0xfb, 0xd8, 0xf5, 0x54, 0xcd,
- 0xec, 0x67, 0x5e, 0xe8, 0xc6, 0x20, 0xff, 0xf9, 0xb7, 0x3a, 0x67, 0x71, 0x99, 0x21, 0x17, 0x4c,
- 0xb3, 0xb8, 0x05, 0x0f, 0xf6, 0x89, 0x8a, 0x01, 0x38, 0x5f, 0xe4, 0x9c, 0x93, 0x3d, 0x91, 0x41,
- 0x68, 0xd7, 0x41, 0xc8, 0x83, 0xb9, 0x1c, 0x80, 0xf3, 0x4f, 0x38, 0x27, 0xe2, 0x58, 0x31, 0xa5,
- 0x84, 0xf1, 0x22, 0x8c, 0x5f, 0xc3, 0xee, 0xb6, 0xed, 0xf1, 0x5b, 0x9a, 0x01, 0xe8, 0x5e, 0xe2,
- 0x74, 0x63, 0x1c, 0x48, 0xaf, 0x6d, 0x08, 0xd7, 0x39, 0x48, 0xed, 0x68, 0x3a, 0x1e, 0x80, 0xe2,
- 0x0b, 0x9c, 0x62, 0x84, 0xe8, 0x13, 0xe8, 0x02, 0x64, 0xeb, 0x36, 0xcf, 0x4c, 0xd1, 0xf0, 0x97,
- 0x39, 0x3c, 0x23, 0x30, 0x9c, 0xc2, 0xb1, 0x9d, 0xa6, 0x49, 0xd2, 0x56, 0x34, 0xc5, 0x9f, 0x0a,
- 0x0a, 0x81, 0xe1, 0x14, 0x07, 0x70, 0xeb, 0x9f, 0x09, 0x0a, 0x2f, 0xe4, 0xcf, 0x67, 0x20, 0x63,
- 0x5b, 0x66, 0xcb, 0xb6, 0x06, 0x31, 0xe2, 0x8b, 0x9c, 0x01, 0x38, 0x84, 0x10, 0x9c, 0x87, 0xf4,
- 0xa0, 0x13, 0xf1, 0x17, 0x6f, 0x89, 0xe5, 0x21, 0x66, 0x60, 0x19, 0xc6, 0xc4, 0x06, 0x65, 0xd8,
- 0xd6, 0x00, 0x14, 0x5f, 0xe6, 0x14, 0xb9, 0x10, 0x8c, 0x0f, 0xc3, 0xc7, 0x9e, 0x5f, 0xc7, 0x83,
- 0x90, 0xbc, 0x22, 0x86, 0xc1, 0x21, 0xdc, 0x95, 0xdb, 0xd8, 0xd2, 0x77, 0x07, 0x63, 0xf8, 0x8a,
- 0x70, 0xa5, 0xc0, 0x10, 0x8a, 0x45, 0x18, 0x6d, 0x68, 0xae, 0xb7, 0xab, 0x99, 0x03, 0x4d, 0xc7,
- 0x5f, 0x72, 0x8e, 0x6c, 0x00, 0xe2, 0x1e, 0x69, 0x5a, 0x07, 0xa1, 0xf9, 0xaa, 0xf0, 0x48, 0x08,
- 0xc6, 0x97, 0x9e, 0xe7, 0xd3, 0x2b, 0xad, 0x83, 0xb0, 0xfd, 0x95, 0x58, 0x7a, 0x0c, 0x5b, 0x0d,
- 0x33, 0x9e, 0x87, 0xb4, 0x67, 0xdc, 0x18, 0x88, 0xe6, 0xaf, 0xc5, 0x4c, 0x53, 0x00, 0x01, 0x5f,
- 0x86, 0xc3, 0x7d, 0xd3, 0xc4, 0x00, 0x64, 0x7f, 0xc3, 0xc9, 0x0e, 0xf5, 0x49, 0x15, 0x7c, 0x4b,
- 0x38, 0x28, 0xe5, 0xdf, 0x8a, 0x2d, 0x01, 0x77, 0x71, 0xad, 0x93, 0xb3, 0x82, 0xa7, 0xed, 0x1c,
- 0xcc, 0x6b, 0x5f, 0x13, 0x5e, 0x63, 0xd8, 0x0e, 0xaf, 0x6d, 0xc2, 0x21, 0xce, 0x78, 0xb0, 0x79,
- 0xfd, 0xba, 0xd8, 0x58, 0x19, 0x7a, 0xab, 0x73, 0x76, 0x3f, 0x09, 0x53, 0x81, 0x3b, 0x45, 0x51,
- 0xea, 0xa9, 0x0d, 0xcd, 0x19, 0x80, 0xf9, 0x1b, 0x9c, 0x59, 0xec, 0xf8, 0x41, 0x55, 0xeb, 0x55,
- 0x35, 0x87, 0x90, 0x3f, 0x0b, 0x79, 0x41, 0xde, 0xb4, 0x5c, 0xac, 0xdb, 0x75, 0xcb, 0xb8, 0x81,
- 0x6b, 0x03, 0x50, 0xff, 0x5d, 0xd7, 0x54, 0x6d, 0x85, 0xe0, 0x84, 0xb9, 0x02, 0x72, 0x50, 0xab,
- 0xa8, 0x46, 0xc3, 0xb1, 0x5d, 0x3f, 0x82, 0xf1, 0x9b, 0x62, 0xa6, 0x02, 0x5c, 0x85, 0xc2, 0x8a,
- 0x65, 0xc8, 0xd1, 0xc7, 0x41, 0x43, 0xf2, 0xef, 0x39, 0xd1, 0x68, 0x1b, 0xc5, 0x37, 0x0e, 0xdd,
- 0x6e, 0x38, 0x9a, 0x3b, 0xc8, 0xfe, 0xf7, 0x2d, 0xb1, 0x71, 0x70, 0x08, 0xdf, 0x38, 0xfc, 0x96,
- 0x83, 0x49, 0xb6, 0x1f, 0x80, 0xe1, 0xdb, 0x62, 0xe3, 0x10, 0x18, 0x4e, 0x21, 0x0a, 0x86, 0x01,
- 0x28, 0xfe, 0x41, 0x50, 0x08, 0x0c, 0xa1, 0xf8, 0x78, 0x3b, 0xd1, 0xba, 0xb8, 0x6e, 0x78, 0xbe,
- 0xcb, 0x4a, 0xe1, 0x7b, 0x53, 0x7d, 0xe7, 0xad, 0xce, 0x22, 0x4c, 0x09, 0x41, 0xc9, 0x4e, 0xc4,
- 0xaf, 0x50, 0xe9, 0x49, 0x29, 0xda, 0xb0, 0xef, 0x8a, 0x9d, 0x28, 0x04, 0x23, 0xb6, 0x85, 0x2a,
- 0x44, 0xe2, 0x76, 0x9d, 0x9c, 0x0f, 0x06, 0xa0, 0xfb, 0x5e, 0x97, 0x71, 0x1b, 0x02, 0x4b, 0x38,
- 0x43, 0xf5, 0x4f, 0xd3, 0xba, 0x8a, 0x5b, 0x03, 0x45, 0xe7, 0x3f, 0x76, 0xd5, 0x3f, 0x5b, 0x0c,
- 0xc9, 0xf6, 0x90, 0xb1, 0xae, 0x7a, 0x0a, 0x45, 0x7d, 0xac, 0x93, 0xff, 0xd5, 0x3b, 0x7c, 0xbc,
- 0x9d, 0xe5, 0x54, 0x71, 0x85, 0x04, 0x79, 0x67, 0xd1, 0x13, 0x4d, 0xf6, 0xc2, 0x9d, 0x20, 0xce,
- 0x3b, 0x6a, 0x9e, 0xe2, 0x05, 0x18, 0xed, 0x28, 0x78, 0xa2, 0xa9, 0x7e, 0x8d, 0x53, 0x65, 0xc3,
- 0xf5, 0x4e, 0xf1, 0x14, 0x24, 0x48, 0xf1, 0x12, 0x0d, 0xff, 0x75, 0x0e, 0xa7, 0xea, 0xc5, 0x8f,
- 0x42, 0x4a, 0x14, 0x2d, 0xd1, 0xd0, 0xdf, 0xe0, 0xd0, 0x00, 0x42, 0xe0, 0xa2, 0x60, 0x89, 0x86,
- 0x7f, 0x46, 0xc0, 0x05, 0x84, 0xc0, 0x07, 0x77, 0xe1, 0xf7, 0x7f, 0x2b, 0xc1, 0x93, 0x8e, 0xf0,
- 0xdd, 0x79, 0x18, 0xe1, 0x95, 0x4a, 0x34, 0xfa, 0xb3, 0xbc, 0x73, 0x81, 0x28, 0x9e, 0x81, 0xe4,
- 0x80, 0x0e, 0xff, 0x6d, 0x0e, 0x65, 0xfa, 0xc5, 0x45, 0xc8, 0x84, 0xaa, 0x93, 0x68, 0xf8, 0xef,
- 0x70, 0x78, 0x18, 0x45, 0x4c, 0xe7, 0xd5, 0x49, 0x34, 0xc1, 0xef, 0x0a, 0xd3, 0x39, 0x82, 0xb8,
- 0x4d, 0x14, 0x26, 0xd1, 0xe8, 0xdf, 0x13, 0x5e, 0x17, 0x90, 0xe2, 0x33, 0x90, 0x0e, 0x92, 0x4d,
- 0x34, 0xfe, 0xf7, 0x39, 0xbe, 0x8d, 0x21, 0x1e, 0x08, 0x25, 0xbb, 0x68, 0x8a, 0x3f, 0x10, 0x1e,
- 0x08, 0xa1, 0xc8, 0x32, 0xea, 0x2e, 0x60, 0xa2, 0x99, 0xfe, 0x50, 0x2c, 0xa3, 0xae, 0xfa, 0x85,
- 0xcc, 0x26, 0xdd, 0xf3, 0xa3, 0x29, 0xfe, 0x48, 0xcc, 0x26, 0xd5, 0x27, 0x66, 0x74, 0x57, 0x04,
- 0xd1, 0x1c, 0x7f, 0x2c, 0xcc, 0xe8, 0x2a, 0x08, 0x8a, 0xeb, 0x80, 0x7a, 0xab, 0x81, 0x68, 0xbe,
- 0xcf, 0x71, 0xbe, 0xf1, 0x9e, 0x62, 0xa0, 0x78, 0x09, 0x0e, 0xf5, 0xaf, 0x04, 0xa2, 0x59, 0x3f,
- 0x7f, 0xa7, 0xeb, 0xec, 0x16, 0x2e, 0x04, 0x8a, 0x9b, 0xed, 0x94, 0x12, 0xae, 0x02, 0xa2, 0x69,
- 0x5f, 0xbc, 0xd3, 0xb9, 0x71, 0x87, 0x8b, 0x80, 0xe2, 0x02, 0x40, 0x3b, 0x01, 0x47, 0x73, 0xbd,
- 0xc4, 0xb9, 0x42, 0x20, 0xb2, 0x34, 0x78, 0xfe, 0x8d, 0xc6, 0x7f, 0x41, 0x2c, 0x0d, 0x8e, 0x20,
- 0x4b, 0x43, 0xa4, 0xde, 0x68, 0xf4, 0xcb, 0x62, 0x69, 0x08, 0x08, 0x89, 0xec, 0x50, 0x76, 0x8b,
- 0x66, 0xf8, 0xa2, 0x88, 0xec, 0x10, 0xaa, 0xb8, 0x0a, 0xe3, 0x3d, 0x09, 0x31, 0x9a, 0xea, 0x4b,
- 0x9c, 0x4a, 0xee, 0xce, 0x87, 0xe1, 0xe4, 0xc5, 0x93, 0x61, 0x34, 0xdb, 0x9f, 0x77, 0x25, 0x2f,
- 0x9e, 0x0b, 0x8b, 0xe7, 0x21, 0x65, 0x35, 0x4d, 0x93, 0x2c, 0x1e, 0x74, 0xef, 0x0f, 0xec, 0xf2,
- 0x3f, 0x79, 0x97, 0x7b, 0x47, 0x00, 0x8a, 0xa7, 0x20, 0x89, 0x1b, 0xdb, 0xb8, 0x16, 0x85, 0xfc,
- 0x8f, 0x77, 0xc5, 0x86, 0x49, 0xb4, 0x8b, 0xcf, 0x00, 0xb0, 0xab, 0x11, 0xfa, 0xda, 0x2f, 0x02,
- 0xfb, 0x9f, 0xef, 0xf2, 0x4f, 0x5f, 0xda, 0x90, 0x36, 0x01, 0xfb, 0x90, 0xe6, 0xde, 0x04, 0x6f,
- 0x75, 0x12, 0xd0, 0x19, 0x39, 0x07, 0x23, 0x57, 0x3c, 0xdb, 0xf2, 0xb5, 0x7a, 0x14, 0xfa, 0xbf,
- 0x38, 0x5a, 0xe8, 0x13, 0x87, 0x35, 0x6c, 0x17, 0xfb, 0x5a, 0xdd, 0x8b, 0xc2, 0xfe, 0x37, 0xc7,
- 0x06, 0x00, 0x02, 0xd6, 0x35, 0xcf, 0x1f, 0x64, 0xdc, 0x3f, 0x15, 0x60, 0x01, 0x20, 0x46, 0x93,
- 0xdf, 0x57, 0x71, 0x2b, 0x0a, 0xfb, 0xb6, 0x30, 0x9a, 0xeb, 0x17, 0x3f, 0x0a, 0x69, 0xf2, 0x93,
- 0x7d, 0xcf, 0x16, 0x01, 0xfe, 0x1f, 0x0e, 0x6e, 0x23, 0x48, 0xcf, 0x9e, 0x5f, 0xf3, 0x8d, 0x68,
- 0x67, 0xff, 0x2f, 0x9f, 0x69, 0xa1, 0x5f, 0x5c, 0x80, 0x8c, 0xe7, 0xd7, 0x6a, 0x4d, 0x5e, 0x9f,
- 0x46, 0xc0, 0xff, 0xef, 0xdd, 0xe0, 0xca, 0x22, 0xc0, 0x90, 0xd9, 0xbe, 0x7e, 0xd5, 0x77, 0x6c,
- 0xfa, 0x9a, 0x23, 0x8a, 0xe1, 0x0e, 0x67, 0x08, 0x41, 0x4a, 0xe5, 0xfe, 0xd7, 0xb7, 0xb0, 0x6c,
- 0x2f, 0xdb, 0xec, 0xe2, 0xf6, 0xb9, 0xd9, 0xe8, 0x1b, 0x58, 0xf8, 0xda, 0x18, 0x4c, 0xe9, 0x76,
- 0x63, 0xdb, 0xf6, 0x8e, 0x6d, 0xdb, 0xfe, 0xee, 0x31, 0x31, 0x31, 0xfc, 0x56, 0x36, 0x98, 0xa8,
- 0xa9, 0x83, 0x5d, 0xe7, 0xce, 0xfe, 0x64, 0x14, 0x52, 0x8b, 0x9a, 0xe7, 0x6b, 0xd7, 0xb5, 0x16,
- 0x7a, 0x04, 0x52, 0x15, 0xcb, 0x3f, 0x71, 0x7c, 0xdd, 0x77, 0xe9, 0x1b, 0xc9, 0x78, 0x29, 0x7d,
- 0xf7, 0xd6, 0x74, 0xd2, 0x20, 0x32, 0x25, 0x68, 0x42, 0x47, 0x21, 0x49, 0x7f, 0xd3, 0x4b, 0xed,
- 0x78, 0x69, 0xf4, 0xd5, 0x5b, 0xd3, 0x43, 0x6d, 0x3d, 0xd6, 0x86, 0x2e, 0x43, 0xa6, 0xda, 0xda,
- 0x32, 0x2c, 0xff, 0xf4, 0x49, 0x42, 0x47, 0x1c, 0x93, 0x28, 0x9d, 0xb9, 0x7b, 0x6b, 0xfa, 0xc4,
- 0xbe, 0x06, 0x92, 0x8a, 0xa2, 0x3d, 0x30, 0x81, 0xa6, 0x5f, 0x0c, 0x87, 0xb9, 0xd0, 0x25, 0x48,
- 0x89, 0x47, 0xf6, 0x72, 0xa8, 0x74, 0x9e, 0x9b, 0x70, 0x5f, 0xdc, 0x01, 0x19, 0xfa, 0x25, 0xc8,
- 0x56, 0x5b, 0x17, 0x4c, 0x5b, 0xe3, 0x3e, 0x48, 0xce, 0x48, 0x73, 0xb1, 0xd2, 0xd9, 0xbb, 0xb7,
- 0xa6, 0x4f, 0x0e, 0x4c, 0xcc, 0xe1, 0x94, 0xb9, 0x83, 0x0d, 0x3d, 0x07, 0xe9, 0xe0, 0x99, 0xbe,
- 0x7e, 0x8a, 0x95, 0x3e, 0xc2, 0xed, 0xbe, 0x3f, 0xfa, 0x36, 0x5d, 0xc8, 0x72, 0xe6, 0xee, 0x91,
- 0x19, 0x69, 0x4e, 0xba, 0x1f, 0xcb, 0xb9, 0x4f, 0x3a, 0xd8, 0x42, 0x96, 0x9f, 0x3e, 0x49, 0xdf,
- 0x77, 0x49, 0xf7, 0x6b, 0x39, 0xa7, 0x6f, 0xd3, 0xa1, 0x8b, 0x30, 0x52, 0x6d, 0x95, 0x5a, 0x3e,
- 0xf6, 0xe8, 0x87, 0x68, 0xd9, 0xd2, 0x53, 0x77, 0x6f, 0x4d, 0x7f, 0x68, 0x40, 0x56, 0x8a, 0x53,
- 0x04, 0x01, 0x9a, 0x81, 0xcc, 0xaa, 0xed, 0x36, 0x34, 0x93, 0xf1, 0x01, 0x7b, 0x7f, 0x17, 0x12,
- 0xa1, 0x2d, 0x32, 0x12, 0x36, 0xdb, 0x1e, 0xfd, 0x1f, 0xa6, 0x9f, 0x21, 0x26, 0xdb, 0x4c, 0xc8,
- 0x80, 0x64, 0xb5, 0x55, 0xd5, 0x9c, 0x7c, 0x96, 0xbe, 0x5c, 0x7a, 0x68, 0x3e, 0x40, 0x88, 0xb5,
- 0x35, 0x4f, 0xdb, 0xe9, 0x57, 0x38, 0xa5, 0x93, 0x77, 0x6f, 0x4d, 0x3f, 0x35, 0x70, 0x8f, 0x55,
- 0xcd, 0xa1, 0xdd, 0xb1, 0x1e, 0xd0, 0xb7, 0x24, 0xb2, 0xb0, 0xd8, 0xed, 0x3c, 0xe9, 0x71, 0x94,
- 0xf6, 0x78, 0xb4, 0x6f, 0x8f, 0x81, 0x16, 0xeb, 0xd7, 0xfa, 0xf4, 0x6b, 0x07, 0x18, 0x29, 0x3b,
- 0x14, 0x92, 0xae, 0x7f, 0xf3, 0xb5, 0xfb, 0x5e, 0xb4, 0x81, 0x05, 0xe8, 0x05, 0x09, 0x46, 0xab,
- 0xad, 0x55, 0x9e, 0xbd, 0x89, 0xe5, 0x39, 0xfe, 0x9f, 0x2e, 0xfd, 0x2c, 0x0f, 0xe9, 0x31, 0xdb,
- 0x4f, 0x7f, 0xfa, 0xb5, 0xe9, 0xe3, 0x03, 0x1b, 0x41, 0xb7, 0x20, 0x6a, 0x43, 0x67, 0x9f, 0xe8,
- 0x33, 0xd4, 0x8a, 0x32, 0xa9, 0x04, 0x6a, 0xb8, 0x46, 0xac, 0x18, 0xbb, 0x87, 0x15, 0x21, 0x3d,
- 0x66, 0x45, 0x91, 0x44, 0xfd, 0xfd, 0x5b, 0x12, 0xe2, 0x43, 0x6b, 0x30, 0xcc, 0x3c, 0x4c, 0x3f,
- 0x82, 0x4c, 0x1f, 0x30, 0x0c, 0xdb, 0x93, 0xa3, 0x70, 0x9a, 0xa9, 0xb3, 0x00, 0xed, 0x18, 0x43,
- 0x32, 0xc4, 0xaf, 0xe2, 0x16, 0xff, 0xd2, 0x95, 0xfc, 0x44, 0x93, 0xed, 0x4f, 0xd1, 0xa5, 0xb9,
- 0x04, 0xff, 0xbe, 0xbc, 0x18, 0x3b, 0x2b, 0x4d, 0x3d, 0x0d, 0x72, 0x77, 0xac, 0x1c, 0x08, 0xaf,
- 0x00, 0xea, 0x9d, 0xb1, 0x30, 0x43, 0x92, 0x31, 0x3c, 0x1a, 0x66, 0xc8, 0x1c, 0x97, 0xdb, 0x3e,
- 0xbf, 0x64, 0x98, 0x9e, 0x6d, 0xf5, 0x70, 0x76, 0xfb, 0xff, 0x67, 0xe3, 0x9c, 0x2d, 0xc0, 0x30,
- 0x13, 0x92, 0xb1, 0x54, 0x68, 0xfa, 0xa0, 0x59, 0x4e, 0x61, 0x0f, 0xa5, 0x95, 0x57, 0x6f, 0x17,
- 0x86, 0x7e, 0x78, 0xbb, 0x30, 0xf4, 0xaf, 0xb7, 0x0b, 0x43, 0xaf, 0xdf, 0x2e, 0x48, 0x6f, 0xde,
- 0x2e, 0x48, 0x6f, 0xdf, 0x2e, 0x48, 0xef, 0xdc, 0x2e, 0x48, 0x37, 0xf7, 0x0a, 0xd2, 0x57, 0xf6,
- 0x0a, 0xd2, 0xd7, 0xf7, 0x0a, 0xd2, 0x77, 0xf6, 0x0a, 0xd2, 0xf7, 0xf7, 0x0a, 0xd2, 0xab, 0x7b,
- 0x05, 0xe9, 0x87, 0x7b, 0x05, 0xe9, 0xf5, 0xbd, 0x82, 0xf4, 0xe6, 0x5e, 0x61, 0xe8, 0xed, 0xbd,
- 0x82, 0xf4, 0xce, 0x5e, 0x61, 0xe8, 0xe6, 0x8f, 0x0b, 0x43, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff,
- 0xf5, 0x3e, 0x59, 0xc8, 0x4d, 0x3a, 0x00, 0x00,
+ 0x78, 0x8c, 0x7b, 0xe8, 0x59, 0xb8, 0xaf, 0xed, 0xac, 0x30, 0x70, 0xbc, 0x67, 0x94, 0xdd, 0xd0,
+ 0x93, 0x30, 0xe1, 0xb4, 0x7a, 0x81, 0xa8, 0xa3, 0x47, 0xa7, 0xd5, 0x0d, 0x3b, 0x0d, 0x93, 0xce,
+ 0xae, 0xd3, 0x8b, 0x7b, 0x22, 0x8c, 0x43, 0xce, 0xae, 0xd3, 0x0d, 0x7c, 0x84, 0x1e, 0xb8, 0x5d,
+ 0xac, 0x6b, 0x3e, 0xae, 0xe5, 0xef, 0x0f, 0xab, 0x87, 0x1a, 0xd0, 0x51, 0x90, 0x75, 0x5d, 0xc5,
+ 0x96, 0xb6, 0x6d, 0x62, 0x55, 0x73, 0xb1, 0xa5, 0x79, 0xf9, 0xe9, 0xb0, 0x72, 0x4e, 0xd7, 0xcb,
+ 0xb4, 0x75, 0x81, 0x36, 0xa2, 0x27, 0x60, 0xdc, 0xde, 0xbe, 0xa4, 0xb3, 0x90, 0x54, 0x1d, 0x17,
+ 0xef, 0x18, 0x2f, 0xe5, 0x1f, 0xa6, 0xfe, 0x1d, 0x23, 0x0d, 0x34, 0x20, 0xd7, 0xa9, 0x18, 0x3d,
+ 0x0e, 0xb2, 0xee, 0xed, 0x6a, 0xae, 0x43, 0xf7, 0x64, 0xcf, 0xd1, 0x74, 0x9c, 0x7f, 0x84, 0xa9,
+ 0x32, 0xf9, 0xaa, 0x10, 0x93, 0x25, 0xe1, 0x5d, 0x35, 0x76, 0x7c, 0xc1, 0xf8, 0x18, 0x5b, 0x12,
+ 0x54, 0xc6, 0xd9, 0xe6, 0x40, 0x26, 0xae, 0xe8, 0xe8, 0x78, 0x8e, 0xaa, 0xe5, 0x9c, 0x5d, 0x27,
+ 0xdc, 0xef, 0x11, 0x18, 0x25, 0x9a, 0xed, 0x4e, 0x1f, 0x67, 0x05, 0x99, 0xb3, 0x1b, 0xea, 0xf1,
+ 0x04, 0x1c, 0x22, 0x4a, 0x0d, 0xec, 0x6b, 0x35, 0xcd, 0xd7, 0x42, 0xda, 0x4f, 0x51, 0x6d, 0xe2,
+ 0xf7, 0x2a, 0x6f, 0xec, 0xb0, 0xd3, 0x6d, 0x6e, 0xb7, 0x82, 0xc8, 0x7a, 0x9a, 0xd9, 0x49, 0x64,
+ 0x22, 0xb6, 0x3e, 0xb0, 0xa2, 0x7b, 0xb6, 0x08, 0xd9, 0x70, 0xe0, 0xa3, 0x34, 0xb0, 0xd0, 0x97,
+ 0x25, 0x52, 0x05, 0x2d, 0xae, 0x2d, 0x91, 0xfa, 0xe5, 0xc5, 0xb2, 0x1c, 0x23, 0x75, 0xd4, 0x4a,
+ 0x65, 0xb3, 0xac, 0x2a, 0x5b, 0xab, 0x9b, 0x95, 0x6a, 0x59, 0x8e, 0x87, 0x0b, 0xf6, 0x1f, 0xc4,
+ 0x20, 0xd7, 0x79, 0xf6, 0x42, 0x1f, 0x85, 0xfb, 0xc5, 0x45, 0x89, 0x87, 0x7d, 0xf5, 0xaa, 0xe1,
+ 0xd2, 0xb5, 0xd8, 0xd0, 0x58, 0x5e, 0x0c, 0xa2, 0x61, 0x92, 0x6b, 0x6d, 0x60, 0xff, 0x82, 0xe1,
+ 0x92, 0x95, 0xd6, 0xd0, 0x7c, 0xb4, 0x02, 0xd3, 0x96, 0xad, 0x7a, 0xbe, 0x66, 0xd5, 0x34, 0xb7,
+ 0xa6, 0xb6, 0xaf, 0xa8, 0x54, 0x4d, 0xd7, 0xb1, 0xe7, 0xd9, 0x2c, 0x07, 0x06, 0x2c, 0x1f, 0xb1,
+ 0xec, 0x0d, 0xae, 0xdc, 0x4e, 0x0e, 0x0b, 0x5c, 0xb5, 0x2b, 0x72, 0xe3, 0xfb, 0x45, 0xee, 0x83,
+ 0x90, 0x6e, 0x68, 0x8e, 0x8a, 0x2d, 0xdf, 0x6d, 0xd1, 0x8a, 0x3b, 0xa5, 0xa4, 0x1a, 0x9a, 0x53,
+ 0x26, 0xcf, 0x1f, 0xce, 0xc1, 0xe7, 0x5f, 0xe2, 0x90, 0x0d, 0x57, 0xdd, 0xe4, 0x10, 0xa3, 0xd3,
+ 0x04, 0x25, 0xd1, 0x2d, 0xec, 0xc8, 0x5d, 0x6b, 0xf4, 0xf9, 0x45, 0x92, 0xb9, 0x8a, 0xc3, 0xac,
+ 0x16, 0x56, 0x18, 0x92, 0x54, 0x0d, 0x24, 0xb4, 0x30, 0xab, 0x3d, 0x52, 0x0a, 0x7f, 0x42, 0xcb,
+ 0x30, 0x7c, 0xc9, 0xa3, 0xdc, 0xc3, 0x94, 0xfb, 0xe1, 0xbb, 0x73, 0x9f, 0xdf, 0xa0, 0xe4, 0xe9,
+ 0xf3, 0x1b, 0xea, 0xea, 0x9a, 0x52, 0x5d, 0x58, 0x51, 0x38, 0x1c, 0x3d, 0x00, 0x09, 0x53, 0xbb,
+ 0xd6, 0xea, 0xcc, 0x71, 0x54, 0x34, 0xa8, 0xe3, 0x1f, 0x80, 0xc4, 0x55, 0xac, 0x5d, 0xee, 0xcc,
+ 0x2c, 0x54, 0xf4, 0x01, 0x86, 0xfe, 0x51, 0x48, 0x52, 0x7f, 0x21, 0x00, 0xee, 0x31, 0x79, 0x08,
+ 0xa5, 0x20, 0xb1, 0xb8, 0xa6, 0x90, 0xf0, 0x97, 0x21, 0xcb, 0xa4, 0xea, 0x7a, 0xa5, 0xbc, 0x58,
+ 0x96, 0x63, 0xb3, 0x27, 0x61, 0x98, 0x39, 0x81, 0x2c, 0x8d, 0xc0, 0x0d, 0xf2, 0x10, 0x7f, 0xe4,
+ 0x1c, 0x92, 0x68, 0xdd, 0xaa, 0x96, 0xca, 0x8a, 0x1c, 0x0b, 0x4f, 0xaf, 0x07, 0xd9, 0x70, 0xc1,
+ 0xfd, 0xe1, 0xc4, 0xd4, 0xf7, 0x24, 0xc8, 0x84, 0x0a, 0x68, 0x52, 0xf9, 0x68, 0xa6, 0x69, 0x5f,
+ 0x55, 0x35, 0xd3, 0xd0, 0x3c, 0x1e, 0x14, 0x40, 0x45, 0x0b, 0x44, 0x32, 0xe8, 0xa4, 0x7d, 0x28,
+ 0xc6, 0xbf, 0x26, 0x81, 0xdc, 0x5d, 0xbb, 0x76, 0x19, 0x28, 0xfd, 0x4c, 0x0d, 0x7c, 0x55, 0x82,
+ 0x5c, 0x67, 0xc1, 0xda, 0x65, 0xde, 0xe1, 0x9f, 0xa9, 0x79, 0x6f, 0xc6, 0x60, 0xb4, 0xa3, 0x4c,
+ 0x1d, 0xd4, 0xba, 0x4f, 0xc3, 0xb8, 0x51, 0xc3, 0x0d, 0xc7, 0xf6, 0xb1, 0xa5, 0xb7, 0x54, 0x13,
+ 0x5f, 0xc1, 0x66, 0x7e, 0x96, 0x6e, 0x14, 0x47, 0xef, 0x5e, 0x08, 0xcf, 0x57, 0xda, 0xb8, 0x15,
+ 0x02, 0x2b, 0x4e, 0x54, 0x96, 0xca, 0xd5, 0xf5, 0xb5, 0xcd, 0xf2, 0xea, 0xe2, 0x45, 0x75, 0x6b,
+ 0xf5, 0xff, 0xaf, 0xae, 0x5d, 0x58, 0x55, 0x64, 0xa3, 0x4b, 0xed, 0x03, 0x5c, 0xea, 0xeb, 0x20,
+ 0x77, 0x1b, 0x85, 0xee, 0x87, 0x7e, 0x66, 0xc9, 0x43, 0x68, 0x02, 0xc6, 0x56, 0xd7, 0xd4, 0x8d,
+ 0xca, 0x52, 0x59, 0x2d, 0x9f, 0x3b, 0x57, 0x5e, 0xdc, 0xdc, 0x60, 0x57, 0x1b, 0x81, 0xf6, 0x66,
+ 0xe7, 0xa2, 0x7e, 0x25, 0x0e, 0x13, 0x7d, 0x2c, 0x41, 0x0b, 0xfc, 0x50, 0xc2, 0xce, 0x49, 0x4f,
+ 0x0f, 0x62, 0xfd, 0x3c, 0xa9, 0x0a, 0xd6, 0x35, 0xd7, 0xe7, 0x67, 0x98, 0xc7, 0x81, 0x78, 0xc9,
+ 0xf2, 0x8d, 0x1d, 0x03, 0xbb, 0xfc, 0x26, 0x88, 0x9d, 0x54, 0xc6, 0xda, 0x72, 0x76, 0x19, 0xf4,
+ 0x14, 0x20, 0xc7, 0xf6, 0x0c, 0xdf, 0xb8, 0x82, 0x55, 0xc3, 0x12, 0xd7, 0x46, 0xe4, 0xe4, 0x92,
+ 0x50, 0x64, 0xd1, 0x52, 0xb1, 0xfc, 0x40, 0xdb, 0xc2, 0x75, 0xad, 0x4b, 0x9b, 0x6c, 0xe0, 0x71,
+ 0x45, 0x16, 0x2d, 0x81, 0xf6, 0x61, 0xc8, 0xd6, 0xec, 0x26, 0x29, 0xe7, 0x98, 0x1e, 0xc9, 0x17,
+ 0x92, 0x92, 0x61, 0xb2, 0x40, 0x85, 0x17, 0xea, 0xed, 0xfb, 0xaa, 0xac, 0x92, 0x61, 0x32, 0xa6,
+ 0xf2, 0x18, 0x8c, 0x69, 0xf5, 0xba, 0x4b, 0xc8, 0x05, 0x11, 0x3b, 0x7a, 0xe4, 0x02, 0x31, 0x55,
+ 0x9c, 0x3a, 0x0f, 0x29, 0xe1, 0x07, 0x92, 0x92, 0x89, 0x27, 0x54, 0x87, 0x9d, 0xa7, 0x63, 0x73,
+ 0x69, 0x25, 0x65, 0x89, 0xc6, 0xc3, 0x90, 0x35, 0x3c, 0xb5, 0x7d, 0xfd, 0x1e, 0x9b, 0x89, 0xcd,
+ 0xa5, 0x94, 0x8c, 0xe1, 0x05, 0x57, 0x97, 0xb3, 0xaf, 0xc7, 0x20, 0xd7, 0xf9, 0xfa, 0x00, 0x2d,
+ 0x41, 0xca, 0xb4, 0x75, 0x8d, 0x86, 0x16, 0x7b, 0x77, 0x35, 0x17, 0xf1, 0xc6, 0x61, 0x7e, 0x85,
+ 0xeb, 0x2b, 0x01, 0x72, 0xea, 0x9f, 0x24, 0x48, 0x09, 0x31, 0x3a, 0x04, 0x09, 0x47, 0xf3, 0x77,
+ 0x29, 0x5d, 0xb2, 0x14, 0x93, 0x25, 0x85, 0x3e, 0x13, 0xb9, 0xe7, 0x68, 0x16, 0x0d, 0x01, 0x2e,
+ 0x27, 0xcf, 0x64, 0x5e, 0x4d, 0xac, 0xd5, 0xe8, 0xb9, 0xc6, 0x6e, 0x34, 0xb0, 0xe5, 0x7b, 0x62,
+ 0x5e, 0xb9, 0x7c, 0x91, 0x8b, 0xd1, 0x93, 0x30, 0xee, 0xbb, 0x9a, 0x61, 0x76, 0xe8, 0x26, 0xa8,
+ 0xae, 0x2c, 0x1a, 0x02, 0xe5, 0x22, 0x3c, 0x20, 0x78, 0x6b, 0xd8, 0xd7, 0xf4, 0x5d, 0x5c, 0x6b,
+ 0x83, 0x86, 0xe9, 0xfd, 0xc5, 0xfd, 0x5c, 0x61, 0x89, 0xb7, 0x0b, 0xec, 0xec, 0x8f, 0x24, 0x18,
+ 0x17, 0x27, 0xb1, 0x5a, 0xe0, 0xac, 0x2a, 0x80, 0x66, 0x59, 0xb6, 0x1f, 0x76, 0x57, 0x6f, 0x28,
+ 0xf7, 0xe0, 0xe6, 0x17, 0x02, 0x90, 0x12, 0x22, 0x98, 0x6a, 0x00, 0xb4, 0x5b, 0xf6, 0x75, 0xdb,
+ 0x34, 0x64, 0xf8, 0xbb, 0x21, 0xfa, 0x82, 0x91, 0x9d, 0xdd, 0x81, 0x89, 0xc8, 0x91, 0x0d, 0x4d,
+ 0x42, 0x72, 0x1b, 0xd7, 0x0d, 0x8b, 0xdf, 0xf8, 0xb2, 0x07, 0x71, 0xc3, 0x92, 0x08, 0x6e, 0x58,
+ 0x4a, 0x9f, 0x82, 0x09, 0xdd, 0x6e, 0x74, 0x9b, 0x5b, 0x92, 0xbb, 0xee, 0x0f, 0xbc, 0x8f, 0x4b,
+ 0x2f, 0x42, 0xbb, 0xc4, 0x7c, 0x4f, 0x92, 0xbe, 0x1c, 0x8b, 0x2f, 0xaf, 0x97, 0xbe, 0x16, 0x9b,
+ 0x5a, 0x66, 0xd0, 0x75, 0x31, 0x52, 0x05, 0xef, 0x98, 0x58, 0x27, 0xd6, 0xc3, 0x57, 0x9e, 0x84,
+ 0xa7, 0xeb, 0x86, 0xbf, 0xdb, 0xdc, 0x9e, 0xd7, 0xed, 0xc6, 0xd1, 0xba, 0x5d, 0xb7, 0xdb, 0xef,
+ 0x54, 0xc9, 0x13, 0x7d, 0xa0, 0xbf, 0xf8, 0x7b, 0xd5, 0x74, 0x20, 0x9d, 0x8a, 0x7c, 0x09, 0x5b,
+ 0x5c, 0x85, 0x09, 0xae, 0xac, 0xd2, 0x17, 0x3b, 0xec, 0x78, 0x82, 0xee, 0x7a, 0x39, 0x96, 0xff,
+ 0xe6, 0x5b, 0x34, 0x5d, 0x2b, 0xe3, 0x1c, 0x4a, 0xda, 0xd8, 0x09, 0xa6, 0xa8, 0xc0, 0x7d, 0x1d,
+ 0x7c, 0x6c, 0x69, 0x62, 0x37, 0x82, 0xf1, 0x07, 0x9c, 0x71, 0x22, 0xc4, 0xb8, 0xc1, 0xa1, 0xc5,
+ 0x45, 0x18, 0x3d, 0x08, 0xd7, 0x3f, 0x70, 0xae, 0x2c, 0x0e, 0x93, 0x2c, 0xc3, 0x18, 0x25, 0xd1,
+ 0x9b, 0x9e, 0x6f, 0x37, 0xe8, 0xbe, 0x77, 0x77, 0x9a, 0x7f, 0x7c, 0x8b, 0xad, 0x95, 0x1c, 0x81,
+ 0x2d, 0x06, 0xa8, 0x62, 0x11, 0xe8, 0xbb, 0xac, 0x1a, 0xd6, 0xcd, 0x08, 0x86, 0x1b, 0xdc, 0x90,
+ 0x40, 0xbf, 0xf8, 0x49, 0x98, 0x24, 0xbf, 0xe9, 0xb6, 0x14, 0xb6, 0x24, 0xfa, 0x26, 0x2d, 0xff,
+ 0xa3, 0x97, 0xd9, 0x72, 0x9c, 0x08, 0x08, 0x42, 0x36, 0x85, 0x66, 0xb1, 0x8e, 0x7d, 0x1f, 0xbb,
+ 0x9e, 0xaa, 0x99, 0xfd, 0xcc, 0x0b, 0x5d, 0x45, 0xe4, 0xbf, 0xf0, 0x4e, 0xe7, 0x2c, 0x2e, 0x33,
+ 0xe4, 0x82, 0x69, 0x16, 0xb7, 0xe0, 0xfe, 0x3e, 0x51, 0x31, 0x00, 0xe7, 0x2b, 0x9c, 0x73, 0xb2,
+ 0x27, 0x32, 0x08, 0xed, 0x3a, 0x08, 0x79, 0x30, 0x97, 0x03, 0x70, 0xfe, 0x21, 0xe7, 0x44, 0x1c,
+ 0x2b, 0xa6, 0x94, 0x30, 0x9e, 0x87, 0xf1, 0x2b, 0xd8, 0xdd, 0xb6, 0x3d, 0x7e, 0xfd, 0x33, 0x00,
+ 0xdd, 0xab, 0x9c, 0x6e, 0x8c, 0x03, 0xe9, 0x7d, 0x10, 0xe1, 0x7a, 0x16, 0x52, 0x3b, 0x9a, 0x8e,
+ 0x07, 0xa0, 0xf8, 0x22, 0xa7, 0x18, 0x21, 0xfa, 0x04, 0xba, 0x00, 0xd9, 0xba, 0xcd, 0x33, 0x53,
+ 0x34, 0xfc, 0x35, 0x0e, 0xcf, 0x08, 0x0c, 0xa7, 0x70, 0x6c, 0xa7, 0x69, 0x92, 0xb4, 0x15, 0x4d,
+ 0xf1, 0x47, 0x82, 0x42, 0x60, 0x38, 0xc5, 0x01, 0xdc, 0xfa, 0xc7, 0x82, 0xc2, 0x0b, 0xf9, 0xf3,
+ 0x79, 0xc8, 0xd8, 0x96, 0xd9, 0xb2, 0xad, 0x41, 0x8c, 0xf8, 0x12, 0x67, 0x00, 0x0e, 0x21, 0x04,
+ 0x67, 0x21, 0x3d, 0xe8, 0x44, 0xfc, 0xe9, 0x3b, 0x62, 0x79, 0x88, 0x19, 0x58, 0x86, 0x31, 0xb1,
+ 0x41, 0x19, 0xb6, 0x35, 0x00, 0xc5, 0x57, 0x38, 0x45, 0x2e, 0x04, 0xe3, 0xc3, 0xf0, 0xb1, 0xe7,
+ 0xd7, 0xf1, 0x20, 0x24, 0xaf, 0x8b, 0x61, 0x70, 0x08, 0x77, 0xe5, 0x36, 0xb6, 0xf4, 0xdd, 0xc1,
+ 0x18, 0xbe, 0x2a, 0x5c, 0x29, 0x30, 0x84, 0x62, 0x11, 0x46, 0x1b, 0x9a, 0xeb, 0xed, 0x6a, 0xe6,
+ 0x40, 0xd3, 0xf1, 0x67, 0x9c, 0x23, 0x1b, 0x80, 0xb8, 0x47, 0x9a, 0xd6, 0x41, 0x68, 0xbe, 0x26,
+ 0x3c, 0x12, 0x82, 0xf1, 0xa5, 0xe7, 0xf9, 0xf4, 0xae, 0xec, 0x20, 0x6c, 0x7f, 0x2e, 0x96, 0x1e,
+ 0xc3, 0x56, 0xc3, 0x8c, 0x67, 0x21, 0xed, 0x19, 0xd7, 0x06, 0xa2, 0xf9, 0x0b, 0x31, 0xd3, 0x14,
+ 0x40, 0xc0, 0x17, 0xe1, 0x81, 0xbe, 0x69, 0x62, 0x00, 0xb2, 0xbf, 0xe4, 0x64, 0x87, 0xfa, 0xa4,
+ 0x0a, 0xbe, 0x25, 0x1c, 0x94, 0xf2, 0xaf, 0xc4, 0x96, 0x80, 0xbb, 0xb8, 0xd6, 0xc9, 0x59, 0xc1,
+ 0xd3, 0x76, 0x0e, 0xe6, 0xb5, 0xaf, 0x0b, 0xaf, 0x31, 0x6c, 0x87, 0xd7, 0x36, 0xe1, 0x10, 0x67,
+ 0x3c, 0xd8, 0xbc, 0x7e, 0x43, 0x6c, 0xac, 0x0c, 0xbd, 0xd5, 0x39, 0xbb, 0x9f, 0x82, 0xa9, 0xc0,
+ 0x9d, 0xa2, 0x28, 0xf5, 0xd4, 0x86, 0xe6, 0x0c, 0xc0, 0xfc, 0x4d, 0xce, 0x2c, 0x76, 0xfc, 0xa0,
+ 0xaa, 0xf5, 0xaa, 0x9a, 0x43, 0xc8, 0x5f, 0x80, 0xbc, 0x20, 0x6f, 0x5a, 0x2e, 0xd6, 0xed, 0xba,
+ 0x65, 0x5c, 0xc3, 0xb5, 0x01, 0xa8, 0xff, 0xba, 0x6b, 0xaa, 0xb6, 0x42, 0x70, 0xc2, 0x5c, 0x01,
+ 0x39, 0xa8, 0x55, 0x54, 0xa3, 0xe1, 0xd8, 0xae, 0x1f, 0xc1, 0xf8, 0x37, 0x62, 0xa6, 0x02, 0x5c,
+ 0x85, 0xc2, 0x8a, 0x65, 0xc8, 0xd1, 0xc7, 0x41, 0x43, 0xf2, 0x6f, 0x39, 0xd1, 0x68, 0x1b, 0xc5,
+ 0x37, 0x0e, 0xdd, 0x6e, 0x38, 0x9a, 0x3b, 0xc8, 0xfe, 0xf7, 0x2d, 0xb1, 0x71, 0x70, 0x08, 0xdf,
+ 0x38, 0xfc, 0x96, 0x83, 0x49, 0xb6, 0x1f, 0x80, 0xe1, 0xdb, 0x62, 0xe3, 0x10, 0x18, 0x4e, 0x21,
+ 0x0a, 0x86, 0x01, 0x28, 0xfe, 0x4e, 0x50, 0x08, 0x0c, 0xa1, 0xf8, 0x44, 0x3b, 0xd1, 0xba, 0xb8,
+ 0x6e, 0x78, 0xbe, 0xcb, 0x4a, 0xe1, 0xbb, 0x53, 0x7d, 0xe7, 0x9d, 0xce, 0x22, 0x4c, 0x09, 0x41,
+ 0xc9, 0x4e, 0xc4, 0xaf, 0x50, 0xe9, 0x49, 0x29, 0xda, 0xb0, 0xef, 0x8a, 0x9d, 0x28, 0x04, 0x23,
+ 0xb6, 0x85, 0x2a, 0x44, 0xe2, 0x76, 0x9d, 0x9c, 0x0f, 0x06, 0xa0, 0xfb, 0x5e, 0x97, 0x71, 0x1b,
+ 0x02, 0x4b, 0x38, 0x43, 0xf5, 0x4f, 0xd3, 0xba, 0x8c, 0x5b, 0x03, 0x45, 0xe7, 0xdf, 0x77, 0xd5,
+ 0x3f, 0x5b, 0x0c, 0xc9, 0xf6, 0x90, 0xb1, 0xae, 0x7a, 0x0a, 0x45, 0x7d, 0x05, 0x94, 0xff, 0xc5,
+ 0xdb, 0x7c, 0xbc, 0x9d, 0xe5, 0x54, 0x71, 0x85, 0x04, 0x79, 0x67, 0xd1, 0x13, 0x4d, 0xf6, 0xf2,
+ 0xed, 0x20, 0xce, 0x3b, 0x6a, 0x9e, 0xe2, 0x39, 0x18, 0xed, 0x28, 0x78, 0xa2, 0xa9, 0x7e, 0x89,
+ 0x53, 0x65, 0xc3, 0xf5, 0x4e, 0xf1, 0x24, 0x24, 0x48, 0xf1, 0x12, 0x0d, 0xff, 0x65, 0x0e, 0xa7,
+ 0xea, 0xc5, 0x8f, 0x41, 0x4a, 0x14, 0x2d, 0xd1, 0xd0, 0x5f, 0xe1, 0xd0, 0x00, 0x42, 0xe0, 0xa2,
+ 0x60, 0x89, 0x86, 0x7f, 0x56, 0xc0, 0x05, 0x84, 0xc0, 0x07, 0x77, 0xe1, 0xf7, 0x7f, 0x2d, 0xc1,
+ 0x93, 0x8e, 0xf0, 0xdd, 0x59, 0x18, 0xe1, 0x95, 0x4a, 0x34, 0xfa, 0x73, 0xbc, 0x73, 0x81, 0x28,
+ 0x9e, 0x86, 0xe4, 0x80, 0x0e, 0xff, 0x0d, 0x0e, 0x65, 0xfa, 0xc5, 0x45, 0xc8, 0x84, 0xaa, 0x93,
+ 0x68, 0xf8, 0x6f, 0x72, 0x78, 0x18, 0x45, 0x4c, 0xe7, 0xd5, 0x49, 0x34, 0xc1, 0x6f, 0x09, 0xd3,
+ 0x39, 0x82, 0xb8, 0x4d, 0x14, 0x26, 0xd1, 0xe8, 0xdf, 0x16, 0x5e, 0x17, 0x90, 0xe2, 0xf3, 0x90,
+ 0x0e, 0x92, 0x4d, 0x34, 0xfe, 0x77, 0x38, 0xbe, 0x8d, 0x21, 0x1e, 0x08, 0x25, 0xbb, 0x68, 0x8a,
+ 0xdf, 0x15, 0x1e, 0x08, 0xa1, 0xc8, 0x32, 0xea, 0x2e, 0x60, 0xa2, 0x99, 0x7e, 0x4f, 0x2c, 0xa3,
+ 0xae, 0xfa, 0x85, 0xcc, 0x26, 0xdd, 0xf3, 0xa3, 0x29, 0x7e, 0x5f, 0xcc, 0x26, 0xd5, 0x27, 0x66,
+ 0x74, 0x57, 0x04, 0xd1, 0x1c, 0x7f, 0x20, 0xcc, 0xe8, 0x2a, 0x08, 0x8a, 0xeb, 0x80, 0x7a, 0xab,
+ 0x81, 0x68, 0xbe, 0xcf, 0x73, 0xbe, 0xf1, 0x9e, 0x62, 0xa0, 0x78, 0x01, 0x0e, 0xf5, 0xaf, 0x04,
+ 0xa2, 0x59, 0xbf, 0x70, 0xbb, 0xeb, 0xec, 0x16, 0x2e, 0x04, 0x8a, 0x9b, 0xed, 0x94, 0x12, 0xae,
+ 0x02, 0xa2, 0x69, 0x5f, 0xb9, 0xdd, 0xb9, 0x71, 0x87, 0x8b, 0x80, 0xe2, 0x02, 0x40, 0x3b, 0x01,
+ 0x47, 0x73, 0xbd, 0xca, 0xb9, 0x42, 0x20, 0xb2, 0x34, 0x78, 0xfe, 0x8d, 0xc6, 0x7f, 0x51, 0x2c,
+ 0x0d, 0x8e, 0x20, 0x4b, 0x43, 0xa4, 0xde, 0x68, 0xf4, 0x6b, 0x62, 0x69, 0x08, 0x08, 0x89, 0xec,
+ 0x50, 0x76, 0x8b, 0x66, 0xf8, 0x92, 0x88, 0xec, 0x10, 0xaa, 0xb8, 0x0a, 0xe3, 0x3d, 0x09, 0x31,
+ 0x9a, 0xea, 0xcb, 0x9c, 0x4a, 0xee, 0xce, 0x87, 0xe1, 0xe4, 0xc5, 0x93, 0x61, 0x34, 0xdb, 0x9f,
+ 0x74, 0x25, 0x2f, 0x9e, 0x0b, 0x8b, 0x67, 0x21, 0x65, 0x35, 0x4d, 0x93, 0x2c, 0x1e, 0x74, 0xf7,
+ 0x2f, 0xf7, 0xf2, 0x3f, 0x79, 0x9f, 0x7b, 0x47, 0x00, 0x8a, 0x27, 0x21, 0x89, 0x1b, 0xdb, 0xb8,
+ 0x16, 0x85, 0xfc, 0xb7, 0xf7, 0xc5, 0x86, 0x49, 0xb4, 0x8b, 0xcf, 0x03, 0xb0, 0xab, 0x11, 0xfa,
+ 0xda, 0x2f, 0x02, 0xfb, 0xef, 0xef, 0xf3, 0x6f, 0x6a, 0xda, 0x90, 0x36, 0x01, 0xfb, 0x42, 0xe7,
+ 0xee, 0x04, 0xef, 0x74, 0x12, 0xd0, 0x19, 0x79, 0x16, 0x46, 0x2e, 0x79, 0xb6, 0xe5, 0x6b, 0xf5,
+ 0x28, 0xf4, 0x7f, 0x70, 0xb4, 0xd0, 0x27, 0x0e, 0x6b, 0xd8, 0x2e, 0xf6, 0xb5, 0xba, 0x17, 0x85,
+ 0xfd, 0x4f, 0x8e, 0x0d, 0x00, 0x04, 0xac, 0x6b, 0x9e, 0x3f, 0xc8, 0xb8, 0xff, 0x4b, 0x80, 0x05,
+ 0x80, 0x18, 0x4d, 0x7e, 0x5f, 0xc6, 0xad, 0x28, 0xec, 0xbb, 0xc2, 0x68, 0xae, 0x5f, 0xfc, 0x18,
+ 0xa4, 0xc9, 0x4f, 0xf6, 0xa1, 0x5c, 0x04, 0xf8, 0xbf, 0x39, 0xb8, 0x8d, 0x20, 0x3d, 0x7b, 0x7e,
+ 0xcd, 0x37, 0xa2, 0x9d, 0xfd, 0x3f, 0x7c, 0xa6, 0x85, 0x7e, 0x71, 0x01, 0x32, 0x9e, 0x5f, 0xab,
+ 0x35, 0x79, 0x7d, 0x1a, 0x01, 0xff, 0xdf, 0xf7, 0x83, 0x2b, 0x8b, 0x00, 0x43, 0x66, 0xfb, 0xea,
+ 0x65, 0xdf, 0xb1, 0xe9, 0x6b, 0x8e, 0x28, 0x86, 0xdb, 0x9c, 0x21, 0x04, 0x29, 0x95, 0xfb, 0x5f,
+ 0xdf, 0xc2, 0xb2, 0xbd, 0x6c, 0xb3, 0x8b, 0xdb, 0x17, 0x67, 0xa3, 0x6f, 0x60, 0xe1, 0xeb, 0x63,
+ 0x30, 0xa5, 0xdb, 0x8d, 0x6d, 0xdb, 0x3b, 0xba, 0x6d, 0xfb, 0xbb, 0x47, 0xc5, 0xc4, 0xf0, 0x5b,
+ 0xd9, 0x60, 0xa2, 0xa6, 0x0e, 0x76, 0x9d, 0x3b, 0xfb, 0x93, 0x51, 0x48, 0x2d, 0x6a, 0x9e, 0xaf,
+ 0x5d, 0xd5, 0x5a, 0xe8, 0x11, 0x48, 0x55, 0x2c, 0xff, 0xf8, 0xb1, 0x75, 0xdf, 0xa5, 0x6f, 0x24,
+ 0xe3, 0xa5, 0xf4, 0x9d, 0x9b, 0xd3, 0x49, 0x83, 0xc8, 0x94, 0xa0, 0x09, 0x1d, 0x81, 0x24, 0xfd,
+ 0x4d, 0x2f, 0xb5, 0xe3, 0xa5, 0xd1, 0x1b, 0x37, 0xa7, 0x87, 0xda, 0x7a, 0xac, 0x0d, 0x5d, 0x84,
+ 0x4c, 0xb5, 0xb5, 0x65, 0x58, 0xfe, 0xa9, 0x13, 0x84, 0x8e, 0x38, 0x26, 0x51, 0x3a, 0x7d, 0xe7,
+ 0xe6, 0xf4, 0xf1, 0x7d, 0x0d, 0x24, 0x15, 0x45, 0x7b, 0x60, 0x02, 0x4d, 0x3f, 0x45, 0x0e, 0x73,
+ 0xa1, 0x0b, 0x90, 0x12, 0x8f, 0xec, 0xe5, 0x50, 0xe9, 0x2c, 0x37, 0xe1, 0x9e, 0xb8, 0x03, 0x32,
+ 0xf4, 0x73, 0x90, 0xad, 0xb6, 0xce, 0x99, 0xb6, 0xc6, 0x7d, 0x90, 0x9c, 0x91, 0xe6, 0x62, 0xa5,
+ 0x33, 0x77, 0x6e, 0x4e, 0x9f, 0x18, 0x98, 0x98, 0xc3, 0x29, 0x73, 0x07, 0x1b, 0x7a, 0x11, 0xd2,
+ 0xc1, 0x33, 0x7d, 0xfd, 0x14, 0x2b, 0x7d, 0x94, 0xdb, 0x7d, 0x6f, 0xf4, 0x6d, 0xba, 0x90, 0xe5,
+ 0xcc, 0xdd, 0x23, 0x33, 0xd2, 0x9c, 0x74, 0x2f, 0x96, 0x73, 0x9f, 0x74, 0xb0, 0x85, 0x2c, 0x3f,
+ 0x75, 0x82, 0xbe, 0xef, 0x92, 0xee, 0xd5, 0x72, 0x4e, 0xdf, 0xa6, 0x43, 0xe7, 0x61, 0xa4, 0xda,
+ 0x2a, 0xb5, 0x7c, 0xec, 0xd1, 0x2f, 0xdc, 0xb2, 0xa5, 0x67, 0xee, 0xdc, 0x9c, 0x7e, 0x6a, 0x40,
+ 0x56, 0x8a, 0x53, 0x04, 0x01, 0x9a, 0x81, 0xcc, 0xaa, 0xed, 0x36, 0x34, 0x93, 0xf1, 0x01, 0x7b,
+ 0x7f, 0x17, 0x12, 0xa1, 0x2d, 0x32, 0x12, 0x36, 0xdb, 0x1e, 0xfd, 0xe7, 0xa8, 0x9f, 0x22, 0x26,
+ 0xdb, 0x4c, 0xc8, 0x80, 0x64, 0xb5, 0x55, 0xd5, 0x9c, 0x7c, 0x96, 0xbe, 0x5c, 0x7a, 0x68, 0x3e,
+ 0x40, 0x88, 0xb5, 0x35, 0x4f, 0xdb, 0xe9, 0x57, 0x38, 0xa5, 0x13, 0x77, 0x6e, 0x4e, 0x3f, 0x33,
+ 0x70, 0x8f, 0x55, 0xcd, 0xa1, 0xdd, 0xb1, 0x1e, 0xd0, 0xb7, 0x24, 0xb2, 0xb0, 0xd8, 0xed, 0x3c,
+ 0xe9, 0x71, 0x94, 0xf6, 0x78, 0xa4, 0x6f, 0x8f, 0x81, 0x16, 0xeb, 0xd7, 0xfa, 0xcc, 0x1b, 0x07,
+ 0x18, 0x29, 0x3b, 0x14, 0x92, 0xae, 0x7f, 0xf5, 0x8d, 0x7b, 0x5e, 0xb4, 0x81, 0x05, 0xe8, 0x65,
+ 0x09, 0x46, 0xab, 0xad, 0x55, 0x9e, 0xbd, 0x89, 0xe5, 0x39, 0xfe, 0x2f, 0x34, 0xfd, 0x2c, 0x0f,
+ 0xe9, 0x31, 0xdb, 0x4f, 0x7d, 0xe6, 0x8d, 0xe9, 0x63, 0x03, 0x1b, 0x41, 0xb7, 0x20, 0x6a, 0x43,
+ 0x67, 0x9f, 0xe8, 0xb3, 0xd4, 0x8a, 0x32, 0xa9, 0x04, 0x6a, 0xb8, 0x46, 0xac, 0x18, 0xbb, 0x8b,
+ 0x15, 0x21, 0x3d, 0x66, 0x45, 0x91, 0x44, 0xfd, 0xbd, 0x5b, 0x12, 0xe2, 0x43, 0x6b, 0x30, 0xcc,
+ 0x3c, 0x4c, 0xbf, 0xae, 0x4c, 0x1f, 0x30, 0x0c, 0xdb, 0x93, 0xa3, 0x70, 0x9a, 0xa9, 0x33, 0x00,
+ 0xed, 0x18, 0x43, 0x32, 0xc4, 0x2f, 0xe3, 0x16, 0xff, 0x84, 0x96, 0xfc, 0x44, 0x93, 0xed, 0x6f,
+ 0xdc, 0xa5, 0xb9, 0x04, 0xff, 0x70, 0xbd, 0x18, 0x3b, 0x23, 0x4d, 0x3d, 0x07, 0x72, 0x77, 0xac,
+ 0x1c, 0x08, 0xaf, 0x00, 0xea, 0x9d, 0xb1, 0x30, 0x43, 0x92, 0x31, 0x3c, 0x1a, 0x66, 0xc8, 0x1c,
+ 0x93, 0xdb, 0x3e, 0xbf, 0x60, 0x98, 0x9e, 0x6d, 0xf5, 0x70, 0x76, 0xfb, 0xff, 0xa7, 0xe3, 0x9c,
+ 0x2d, 0xc0, 0x30, 0x13, 0x92, 0xb1, 0x54, 0x68, 0xfa, 0xa0, 0x59, 0x4e, 0x61, 0x0f, 0xa5, 0x95,
+ 0x1b, 0xb7, 0x0a, 0x43, 0x3f, 0xbc, 0x55, 0x18, 0xfa, 0xe7, 0x5b, 0x85, 0xa1, 0x37, 0x6f, 0x15,
+ 0xa4, 0xb7, 0x6f, 0x15, 0xa4, 0x77, 0x6f, 0x15, 0xa4, 0xf7, 0x6e, 0x15, 0xa4, 0xeb, 0x7b, 0x05,
+ 0xe9, 0xab, 0x7b, 0x05, 0xe9, 0x1b, 0x7b, 0x05, 0xe9, 0x3b, 0x7b, 0x05, 0xe9, 0xfb, 0x7b, 0x05,
+ 0xe9, 0xc6, 0x5e, 0x41, 0xfa, 0xe1, 0x5e, 0x41, 0x7a, 0x73, 0xaf, 0x20, 0xbd, 0xbd, 0x57, 0x18,
+ 0x7a, 0x77, 0xaf, 0x20, 0xbd, 0xb7, 0x57, 0x18, 0xba, 0xfe, 0xe3, 0xc2, 0xd0, 0xff, 0x05, 0x00,
+ 0x00, 0xff, 0xff, 0x0e, 0x10, 0x9c, 0x56, 0xa6, 0x3a, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -1623,7 +1673,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1651,7 +1701,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1671,7 +1721,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Int32 |= (int32(b) & 0x7F) << shift
+ m.Int32 |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1690,7 +1740,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift
+ v |= github_com_gogo_protobuf_test_casttype.MyUint64Type(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1710,7 +1760,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.MyUint64 |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift
+ m.MyUint64 |= github_com_gogo_protobuf_test_casttype.MyUint64Type(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1775,7 +1825,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1784,6 +1834,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1806,7 +1859,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1815,6 +1868,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1835,7 +1891,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift
+ v |= github_com_gogo_protobuf_test_casttype.MyUint64Type(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1852,7 +1908,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1861,12 +1917,15 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -1886,7 +1945,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift
+ v |= github_com_gogo_protobuf_test_casttype.MyUint64Type(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1910,7 +1969,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1919,6 +1978,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1939,7 +2001,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1956,7 +2018,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1966,6 +2028,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -1981,7 +2046,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint64(b) & 0x7F) << shift
+ mapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2017,7 +2082,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2026,6 +2091,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2046,7 +2114,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2063,7 +2131,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2073,6 +2141,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -2088,7 +2159,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint64(b) & 0x7F) << shift
+ mapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2124,7 +2195,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2133,6 +2204,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2153,7 +2227,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2169,7 +2243,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2185,7 +2259,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2194,7 +2268,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthCasttype
}
if postmsgIndex > l {
@@ -2236,7 +2310,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2245,6 +2319,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2265,7 +2342,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2281,7 +2358,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2297,7 +2374,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2306,7 +2383,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthCasttype
}
if postmsgIndex > l {
@@ -2348,7 +2425,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2358,6 +2435,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2373,6 +2453,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthCasttype
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthCasttype
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2401,7 +2484,7 @@ func (m *Wilson) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2429,7 +2512,7 @@ func (m *Wilson) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2444,6 +2527,9 @@ func (m *Wilson) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthCasttype
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthCasttype
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2511,10 +2597,13 @@ func skipCasttype(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthCasttype
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthCasttype
+ }
return iNdEx, nil
case 3:
for {
@@ -2543,6 +2632,9 @@ func skipCasttype(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthCasttype
+ }
}
return iNdEx, nil
case 4:
@@ -2561,55 +2653,3 @@ var (
ErrInvalidLengthCasttype = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowCasttype = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("combos/both/casttype.proto", fileDescriptor_casttype_c3de4173df712bd1)
-}
-
-var fileDescriptor_casttype_c3de4173df712bd1 = []byte{
- // 694 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x4c,
- 0x18, 0xc7, 0xfd, 0x34, 0x4d, 0x9b, 0x5c, 0x9a, 0xf7, 0x8d, 0x4e, 0x0c, 0x56, 0x24, 0xce, 0x56,
- 0xab, 0x22, 0x0f, 0x90, 0x54, 0x69, 0x54, 0xaa, 0x82, 0x18, 0x5c, 0x15, 0xa9, 0x08, 0x17, 0x64,
- 0xa8, 0x2a, 0x10, 0x8b, 0xd3, 0x9a, 0x34, 0xc2, 0x89, 0xa3, 0xf8, 0x02, 0xf2, 0x56, 0x95, 0x01,
- 0x89, 0xbf, 0x84, 0x91, 0x05, 0x89, 0x91, 0xb1, 0x63, 0x47, 0xa6, 0xb4, 0x36, 0x4b, 0xd9, 0x3a,
- 0x56, 0x99, 0xd0, 0xdd, 0x39, 0xb1, 0xfb, 0x03, 0x94, 0xa6, 0xdb, 0x3d, 0x77, 0xcf, 0xf3, 0x79,
- 0xbe, 0xf7, 0xdc, 0x73, 0x77, 0xa8, 0xb8, 0xed, 0x36, 0x6b, 0xae, 0x57, 0xae, 0xb9, 0x74, 0xb7,
- 0xbc, 0x6d, 0x79, 0x94, 0xfa, 0x6d, 0xbb, 0xd4, 0xee, 0xb8, 0xd4, 0xc5, 0x99, 0x81, 0x5d, 0xbc,
- 0x57, 0x6f, 0xd0, 0xdd, 0x6e, 0xad, 0xb4, 0xed, 0x36, 0xcb, 0x75, 0xb7, 0xee, 0x96, 0xb9, 0x43,
- 0xad, 0xfb, 0x96, 0x5b, 0xdc, 0xe0, 0x23, 0x11, 0x38, 0xfb, 0x3b, 0x8f, 0x32, 0xab, 0x96, 0x47,
- 0xad, 0x0f, 0x96, 0x8f, 0xe7, 0x51, 0x66, 0xbd, 0x45, 0x17, 0x2b, 0xcf, 0x69, 0x47, 0x06, 0x15,
- 0xb4, 0x94, 0x9e, 0xed, 0xf7, 0x94, 0x74, 0x83, 0xcd, 0x99, 0xc3, 0x25, 0x3c, 0x87, 0xd2, 0x7c,
- 0x2c, 0x4f, 0x70, 0x9f, 0xfc, 0x41, 0x4f, 0x91, 0x62, 0x3f, 0xb1, 0x86, 0x5f, 0xa1, 0x9c, 0xe1,
- 0x6f, 0x36, 0x5a, 0x74, 0xa9, 0xca, 0x70, 0x29, 0x15, 0xb4, 0x49, 0xfd, 0x7e, 0xbf, 0xa7, 0x2c,
- 0xfe, 0x55, 0x20, 0xb5, 0x3d, 0x1a, 0x6f, 0x6c, 0x10, 0xfd, 0xd2, 0x6f, 0xdb, 0x66, 0x92, 0x85,
- 0xb7, 0x50, 0x66, 0x60, 0xca, 0x93, 0x9c, 0xfb, 0x20, 0x92, 0x30, 0x16, 0x7b, 0x08, 0xc3, 0x6f,
- 0xd0, 0x8c, 0xe1, 0x3f, 0x76, 0x5c, 0x2b, 0xaa, 0x41, 0x5a, 0x05, 0x6d, 0x42, 0x5f, 0xee, 0xf7,
- 0x94, 0xea, 0xc8, 0xe0, 0x28, 0x9c, 0x93, 0xcf, 0xd1, 0xf0, 0x6b, 0x94, 0x1d, 0xda, 0xf2, 0x14,
- 0x47, 0x3f, 0x8c, 0x74, 0x8f, 0x87, 0x8f, 0x71, 0x09, 0xe5, 0xa2, 0xdc, 0xd3, 0x2a, 0x68, 0x30,
- 0x8e, 0xf2, 0xa8, 0x26, 0xe7, 0x68, 0x09, 0xe5, 0x4b, 0x55, 0x39, 0xc3, 0xd1, 0x63, 0x2a, 0x8f,
- 0xf0, 0x31, 0x0e, 0x3f, 0x41, 0xd3, 0x86, 0xaf, 0xfb, 0xd4, 0xf6, 0xe4, 0xac, 0x0a, 0xda, 0x8c,
- 0xbe, 0xd0, 0xef, 0x29, 0x77, 0x47, 0xa4, 0xf2, 0x38, 0x73, 0x00, 0xc0, 0x2a, 0xca, 0x6d, 0xb8,
- 0x9d, 0xa6, 0xe5, 0x08, 0x1e, 0x62, 0x3c, 0x33, 0x39, 0x85, 0x37, 0xd9, 0x4e, 0xc4, 0x69, 0x7b,
- 0x72, 0x4e, 0x4d, 0xdd, 0xa4, 0x27, 0x63, 0x12, 0x6e, 0xa0, 0xb4, 0xe1, 0x1b, 0x56, 0x5b, 0x9e,
- 0x51, 0x53, 0x5a, 0xae, 0x72, 0xbb, 0x34, 0x8c, 0x18, 0xdc, 0xad, 0x12, 0x5f, 0x5f, 0x6b, 0xd1,
- 0x8e, 0xaf, 0x57, 0xfb, 0x3d, 0x65, 0x61, 0xe4, 0x8c, 0x86, 0xd5, 0xe6, 0xe9, 0x44, 0x06, 0xfc,
- 0x0d, 0xd8, 0xc5, 0x5a, 0xed, 0x7a, 0xd4, 0x6d, 0xb2, 0x8c, 0x79, 0x9e, 0x71, 0xee, 0xca, 0x8c,
- 0x43, 0x2f, 0x91, 0xb7, 0xb5, 0x7f, 0x74, 0x8d, 0x9d, 0xbe, 0xa0, 0x9d, 0x46, 0xab, 0xce, 0x52,
- 0x7f, 0x3e, 0x1a, 0xfb, 0xd2, 0x0e, 0x15, 0xe0, 0x8f, 0x80, 0xf2, 0x86, 0xbf, 0xd1, 0x75, 0x1c,
- 0xab, 0xe6, 0xd8, 0x4c, 0xf9, 0x7f, 0x5c, 0xf9, 0xfc, 0x95, 0xca, 0x13, 0x7e, 0x42, 0xfb, 0xd2,
- 0xfe, 0x91, 0x52, 0x19, 0x59, 0x04, 0x7f, 0x82, 0xb8, 0x86, 0xf3, 0x39, 0xf1, 0x27, 0xae, 0x62,
- 0xad, 0x59, 0xb3, 0x77, 0x76, 0xec, 0x1d, 0xa6, 0xe2, 0xff, 0x7f, 0xa8, 0x48, 0xf8, 0x09, 0x15,
- 0x2b, 0xac, 0xeb, 0xc7, 0x57, 0x92, 0xe0, 0xe1, 0x67, 0x68, 0x4a, 0x54, 0x58, 0x2e, 0xa8, 0xa0,
- 0x65, 0xaf, 0xd9, 0x86, 0xf1, 0xe1, 0x98, 0x11, 0xa6, 0xb8, 0x8c, 0x50, 0xdc, 0x63, 0xb8, 0x80,
- 0x52, 0xef, 0x6c, 0x9f, 0xbf, 0xe2, 0x59, 0x93, 0x0d, 0xf1, 0x2d, 0x94, 0x7e, 0x6f, 0x39, 0x5d,
- 0x9b, 0xbf, 0xda, 0x93, 0xa6, 0x30, 0x56, 0x26, 0x96, 0xa1, 0xf8, 0x08, 0x15, 0x2e, 0xf6, 0xca,
- 0xb5, 0xe2, 0x4d, 0x84, 0x2f, 0x9f, 0x58, 0x92, 0x90, 0x16, 0x84, 0x3b, 0x49, 0x42, 0xae, 0x52,
- 0x88, 0x6b, 0xbe, 0xd5, 0x70, 0x3c, 0xb7, 0x75, 0x89, 0x79, 0xb1, 0xfe, 0x37, 0x63, 0xce, 0x12,
- 0x34, 0x25, 0x26, 0xd9, 0x5e, 0xd6, 0xf9, 0xf7, 0xc1, 0x7f, 0x39, 0x53, 0x18, 0xfa, 0xd3, 0x83,
- 0x80, 0x48, 0x87, 0x01, 0x91, 0x7e, 0x06, 0x44, 0x3a, 0x0e, 0x08, 0x9c, 0x04, 0x04, 0x4e, 0x03,
- 0x02, 0x67, 0x01, 0x81, 0xbd, 0x90, 0xc0, 0x97, 0x90, 0xc0, 0xd7, 0x90, 0xc0, 0xf7, 0x90, 0xc0,
- 0x8f, 0x90, 0xc0, 0x41, 0x48, 0xe0, 0x30, 0x24, 0x70, 0x1c, 0x12, 0x38, 0x09, 0x89, 0x74, 0x1a,
- 0x12, 0x38, 0x0b, 0x89, 0xb4, 0xf7, 0x8b, 0x48, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x0b, 0x0c,
- 0x8a, 0xc1, 0xaf, 0x07, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.pb.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.pb.go
index 59695f9a11..0ef308bcbd 100644
--- a/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.pb.go
@@ -3,24 +3,22 @@
package casttype
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-
-import encoding_binary "encoding/binary"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -58,7 +56,7 @@ type Castaway struct {
func (m *Castaway) Reset() { *m = Castaway{} }
func (*Castaway) ProtoMessage() {}
func (*Castaway) Descriptor() ([]byte, []int) {
- return fileDescriptor_casttype_c89cc726fec17f61, []int{0}
+ return fileDescriptor_aae4edfe8cc8b226, []int{0}
}
func (m *Castaway) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Castaway.Unmarshal(m, b)
@@ -75,8 +73,8 @@ func (m *Castaway) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Castaway) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Castaway.Merge(dst, src)
+func (m *Castaway) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Castaway.Merge(m, src)
}
func (m *Castaway) XXX_Size() int {
return m.Size()
@@ -97,7 +95,7 @@ type Wilson struct {
func (m *Wilson) Reset() { *m = Wilson{} }
func (*Wilson) ProtoMessage() {}
func (*Wilson) Descriptor() ([]byte, []int) {
- return fileDescriptor_casttype_c89cc726fec17f61, []int{1}
+ return fileDescriptor_aae4edfe8cc8b226, []int{1}
}
func (m *Wilson) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Wilson.Unmarshal(m, b)
@@ -114,8 +112,8 @@ func (m *Wilson) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Wilson) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Wilson.Merge(dst, src)
+func (m *Wilson) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Wilson.Merge(m, src)
}
func (m *Wilson) XXX_Size() int {
return m.Size()
@@ -134,6 +132,57 @@ func init() {
proto.RegisterMapType((map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson)(nil), "casttype.Castaway.MyNullableMapEntry")
proto.RegisterType((*Wilson)(nil), "casttype.Wilson")
}
+
+func init() { proto.RegisterFile("combos/marshaler/casttype.proto", fileDescriptor_aae4edfe8cc8b226) }
+
+var fileDescriptor_aae4edfe8cc8b226 = []byte{
+ // 698 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x4c,
+ 0x18, 0xc7, 0x7d, 0x4d, 0xd3, 0x26, 0x97, 0xe6, 0x7d, 0xa3, 0x13, 0x83, 0x55, 0x89, 0xb3, 0xd5,
+ 0xaa, 0xc8, 0x03, 0x24, 0x55, 0x1a, 0x95, 0xaa, 0x20, 0x06, 0x57, 0x45, 0x2a, 0xc2, 0x05, 0x19,
+ 0xaa, 0x0a, 0xc4, 0x72, 0x69, 0x4d, 0x1a, 0xe1, 0xc4, 0x91, 0x7d, 0x01, 0x79, 0xab, 0xca, 0x80,
+ 0xc4, 0x5f, 0xc2, 0xc8, 0x82, 0xc4, 0xc8, 0xd8, 0xb1, 0x23, 0x53, 0x5a, 0x9b, 0xa5, 0x6c, 0x1d,
+ 0xab, 0x4c, 0xe8, 0xee, 0x9c, 0xd8, 0xfd, 0x01, 0x4a, 0xdc, 0xed, 0x9e, 0xbb, 0xe7, 0xf9, 0x3c,
+ 0xdf, 0x7b, 0xee, 0xb9, 0x3b, 0xa8, 0xec, 0x38, 0xad, 0xba, 0xe3, 0x55, 0x5a, 0xc4, 0xf5, 0xf6,
+ 0x88, 0x6d, 0xb9, 0x95, 0x1d, 0xe2, 0x51, 0xea, 0x77, 0xac, 0x72, 0xc7, 0x75, 0xa8, 0x83, 0x72,
+ 0x03, 0x7b, 0xf6, 0x5e, 0xa3, 0x49, 0xf7, 0xba, 0xf5, 0xf2, 0x8e, 0xd3, 0xaa, 0x34, 0x9c, 0x86,
+ 0x53, 0xe1, 0x0e, 0xf5, 0xee, 0x5b, 0x6e, 0x71, 0x83, 0x8f, 0x44, 0xe0, 0xdc, 0xef, 0x22, 0xcc,
+ 0xad, 0x11, 0x8f, 0x92, 0x0f, 0xc4, 0x47, 0x0b, 0x30, 0xb7, 0xd1, 0xa6, 0x4b, 0xd5, 0xe7, 0xd4,
+ 0x95, 0x81, 0x0a, 0xb4, 0x8c, 0x9e, 0xef, 0xf7, 0x94, 0x6c, 0x93, 0xcd, 0x99, 0xc3, 0x25, 0x34,
+ 0x0f, 0xb3, 0x7c, 0x2c, 0x4f, 0x70, 0x9f, 0xe2, 0x61, 0x4f, 0x91, 0x62, 0x3f, 0xb1, 0x86, 0x5e,
+ 0xc1, 0x82, 0xe1, 0x6f, 0x35, 0xdb, 0x74, 0xb9, 0xc6, 0x70, 0x19, 0x15, 0x68, 0x93, 0xfa, 0xfd,
+ 0x7e, 0x4f, 0x59, 0xfa, 0xab, 0x40, 0x6a, 0x79, 0x34, 0xde, 0xd8, 0x20, 0xfa, 0xa5, 0xdf, 0xb1,
+ 0xcc, 0x24, 0x0b, 0x6d, 0xc3, 0xdc, 0xc0, 0x94, 0x27, 0x39, 0xf7, 0x41, 0x24, 0x21, 0x15, 0x7b,
+ 0x08, 0x43, 0x6f, 0xe0, 0x8c, 0xe1, 0x3f, 0xb6, 0x1d, 0x12, 0xd5, 0x20, 0xab, 0x02, 0x6d, 0x42,
+ 0x5f, 0xe9, 0xf7, 0x94, 0xda, 0xc8, 0xe0, 0x28, 0x9c, 0x93, 0x2f, 0xd0, 0xd0, 0x6b, 0x98, 0x1f,
+ 0xda, 0xf2, 0x14, 0x47, 0x3f, 0x8c, 0x74, 0xa7, 0xc3, 0xc7, 0xb8, 0x84, 0x72, 0x51, 0xee, 0x69,
+ 0x15, 0x68, 0x20, 0x8d, 0xf2, 0xa8, 0x26, 0x17, 0x68, 0x09, 0xe5, 0xcb, 0x35, 0x39, 0xc7, 0xd1,
+ 0x29, 0x95, 0x47, 0xf8, 0x18, 0x87, 0x9e, 0xc0, 0x69, 0xc3, 0xd7, 0x7d, 0x6a, 0x79, 0x72, 0x5e,
+ 0x05, 0xda, 0x8c, 0xbe, 0xd8, 0xef, 0x29, 0x77, 0x47, 0xa4, 0xf2, 0x38, 0x73, 0x00, 0x40, 0x2a,
+ 0x2c, 0x6c, 0x3a, 0x6e, 0x8b, 0xd8, 0x82, 0x07, 0x19, 0xcf, 0x4c, 0x4e, 0xa1, 0x2d, 0xb6, 0x13,
+ 0x71, 0xda, 0x9e, 0x5c, 0x50, 0x33, 0x37, 0xe9, 0xc9, 0x98, 0x84, 0x9a, 0x30, 0x6b, 0xf8, 0x06,
+ 0xe9, 0xc8, 0x33, 0x6a, 0x46, 0x2b, 0x54, 0x6f, 0x97, 0x87, 0x11, 0x83, 0xbb, 0x55, 0xe6, 0xeb,
+ 0xeb, 0x6d, 0xea, 0xfa, 0x7a, 0xad, 0xdf, 0x53, 0x16, 0x47, 0xce, 0x68, 0x90, 0x0e, 0x4f, 0x27,
+ 0x32, 0xa0, 0x6f, 0x80, 0x5d, 0xac, 0xb5, 0xae, 0x47, 0x9d, 0x16, 0xcb, 0x58, 0xe4, 0x19, 0xe7,
+ 0xaf, 0xcd, 0x38, 0xf4, 0x12, 0x79, 0xdb, 0x07, 0xc7, 0x63, 0xec, 0xf4, 0x05, 0x75, 0x9b, 0xed,
+ 0x06, 0x4b, 0xfd, 0xf9, 0x38, 0xf5, 0xa5, 0x1d, 0x2a, 0x40, 0x1f, 0x01, 0x2c, 0x1a, 0xfe, 0x66,
+ 0xd7, 0xb6, 0x49, 0xdd, 0xb6, 0x98, 0xf2, 0xff, 0xb8, 0xf2, 0x85, 0x6b, 0x95, 0x27, 0xfc, 0x84,
+ 0xf6, 0xe5, 0x83, 0x63, 0xa5, 0x3a, 0xb2, 0x08, 0xfe, 0x04, 0x71, 0x0d, 0x17, 0x73, 0xa2, 0x4f,
+ 0x5c, 0xc5, 0x7a, 0xab, 0x6e, 0xed, 0xee, 0x5a, 0xbb, 0x4c, 0xc5, 0xff, 0xff, 0x50, 0x91, 0xf0,
+ 0x13, 0x2a, 0x56, 0x59, 0xd7, 0xa7, 0x57, 0x92, 0xe0, 0xa1, 0x67, 0x70, 0x4a, 0x54, 0x58, 0x2e,
+ 0xa9, 0x40, 0xcb, 0x8f, 0xd9, 0x86, 0xf1, 0xe1, 0x98, 0x11, 0x66, 0x76, 0x05, 0xc2, 0xb8, 0xc7,
+ 0x50, 0x09, 0x66, 0xde, 0x59, 0x3e, 0x7f, 0xc5, 0xf3, 0x26, 0x1b, 0xa2, 0x5b, 0x30, 0xfb, 0x9e,
+ 0xd8, 0x5d, 0x8b, 0xbf, 0xda, 0x93, 0xa6, 0x30, 0x56, 0x27, 0x56, 0xc0, 0xec, 0x23, 0x58, 0xba,
+ 0xdc, 0x2b, 0x63, 0xc5, 0x9b, 0x10, 0x5d, 0x3d, 0xb1, 0x24, 0x21, 0x2b, 0x08, 0x77, 0x92, 0x84,
+ 0x42, 0xb5, 0x14, 0xd7, 0x7c, 0xbb, 0x69, 0x7b, 0x4e, 0xfb, 0x0a, 0xf3, 0x72, 0xfd, 0x6f, 0xc6,
+ 0x9c, 0xc3, 0x70, 0x4a, 0x4c, 0xb2, 0xbd, 0x6c, 0xf0, 0xef, 0x83, 0xff, 0x72, 0xa6, 0x30, 0xf4,
+ 0xa7, 0x87, 0x01, 0x96, 0x8e, 0x02, 0x2c, 0xfd, 0x0c, 0xb0, 0x74, 0x12, 0x60, 0x70, 0x1a, 0x60,
+ 0x70, 0x16, 0x60, 0x70, 0x1e, 0x60, 0xb0, 0x1f, 0x62, 0xf0, 0x25, 0xc4, 0xe0, 0x6b, 0x88, 0xc1,
+ 0xf7, 0x10, 0x83, 0x1f, 0x21, 0x06, 0x87, 0x21, 0x06, 0x47, 0x21, 0x96, 0x4e, 0x42, 0x0c, 0x4e,
+ 0x43, 0x2c, 0x9d, 0x85, 0x18, 0x9c, 0x87, 0x58, 0xda, 0xff, 0x85, 0xa5, 0x3f, 0x01, 0x00, 0x00,
+ 0xff, 0xff, 0xec, 0xe2, 0x9e, 0x1c, 0xb4, 0x07, 0x00, 0x00,
+}
+
func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return CasttypeDescription()
}
@@ -143,279 +192,281 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog
func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4343 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5b, 0x70, 0x1b, 0xd7,
- 0x79, 0xe6, 0xe2, 0x42, 0x02, 0x3f, 0x40, 0x70, 0x79, 0x48, 0xcb, 0x10, 0x13, 0x83, 0x14, 0xe5,
- 0x0b, 0x6d, 0x27, 0x94, 0x47, 0x77, 0x41, 0x89, 0x5d, 0x82, 0x84, 0x18, 0xa8, 0x04, 0xc9, 0x2c,
- 0xc9, 0xc8, 0x72, 0xda, 0xd9, 0x59, 0x2e, 0x0e, 0xc1, 0x95, 0x16, 0xbb, 0x9b, 0xdd, 0x85, 0x64,
- 0x68, 0xfa, 0xa0, 0xc6, 0x6d, 0x33, 0x69, 0xa7, 0xf7, 0xce, 0x34, 0x71, 0x1d, 0xb7, 0x49, 0xa7,
- 0x71, 0x9a, 0xde, 0x92, 0xe6, 0xd2, 0x24, 0x7d, 0xc9, 0x4b, 0x5a, 0x3f, 0x75, 0x92, 0xb7, 0x3e,
- 0x74, 0x64, 0x8b, 0xf1, 0x4c, 0x9d, 0xd6, 0x6d, 0xdc, 0x56, 0x0f, 0x1e, 0xf9, 0xa5, 0x73, 0x6e,
- 0x8b, 0xc5, 0x85, 0x5a, 0x50, 0x19, 0x3b, 0x4f, 0xc4, 0xfe, 0xe7, 0xff, 0xbe, 0xf3, 0x9f, 0xff,
- 0xfc, 0xe7, 0xfc, 0xff, 0x39, 0xbb, 0x84, 0x9f, 0x9e, 0x83, 0x99, 0xba, 0x6d, 0xd7, 0x4d, 0x7c,
- 0xcc, 0x71, 0x6d, 0xdf, 0xde, 0x6e, 0xee, 0x1c, 0xab, 0x61, 0x4f, 0x77, 0x0d, 0xc7, 0xb7, 0xdd,
- 0x79, 0x2a, 0x43, 0x63, 0x4c, 0x63, 0x5e, 0x68, 0xcc, 0x56, 0x61, 0xfc, 0x82, 0x61, 0xe2, 0xa5,
- 0x40, 0x71, 0x03, 0xfb, 0xe8, 0x2c, 0x24, 0x76, 0x0c, 0x13, 0xe7, 0xa5, 0x99, 0xf8, 0x5c, 0xe6,
- 0xf8, 0xc3, 0xf3, 0x5d, 0xa0, 0xf9, 0x4e, 0xc4, 0x3a, 0x11, 0x2b, 0x14, 0x31, 0xfb, 0x46, 0x02,
- 0x26, 0xfa, 0xb4, 0x22, 0x04, 0x09, 0x4b, 0x6b, 0x10, 0x46, 0x69, 0x2e, 0xad, 0xd0, 0xdf, 0x28,
- 0x0f, 0x23, 0x8e, 0xa6, 0x5f, 0xd5, 0xea, 0x38, 0x1f, 0xa3, 0x62, 0xf1, 0x88, 0x0a, 0x00, 0x35,
- 0xec, 0x60, 0xab, 0x86, 0x2d, 0xbd, 0x95, 0x8f, 0xcf, 0xc4, 0xe7, 0xd2, 0x4a, 0x48, 0x82, 0x9e,
- 0x84, 0x71, 0xa7, 0xb9, 0x6d, 0x1a, 0xba, 0x1a, 0x52, 0x83, 0x99, 0xf8, 0x5c, 0x52, 0x91, 0x59,
- 0xc3, 0x52, 0x5b, 0xf9, 0x31, 0x18, 0xbb, 0x8e, 0xb5, 0xab, 0x61, 0xd5, 0x0c, 0x55, 0xcd, 0x11,
- 0x71, 0x48, 0x71, 0x11, 0xb2, 0x0d, 0xec, 0x79, 0x5a, 0x1d, 0xab, 0x7e, 0xcb, 0xc1, 0xf9, 0x04,
- 0x1d, 0xfd, 0x4c, 0xcf, 0xe8, 0xbb, 0x47, 0x9e, 0xe1, 0xa8, 0xcd, 0x96, 0x83, 0xd1, 0x02, 0xa4,
- 0xb1, 0xd5, 0x6c, 0x30, 0x86, 0xe4, 0x3e, 0xfe, 0x2b, 0x5b, 0xcd, 0x46, 0x37, 0x4b, 0x8a, 0xc0,
- 0x38, 0xc5, 0x88, 0x87, 0xdd, 0x6b, 0x86, 0x8e, 0xf3, 0xc3, 0x94, 0xe0, 0xb1, 0x1e, 0x82, 0x0d,
- 0xd6, 0xde, 0xcd, 0x21, 0x70, 0x68, 0x11, 0xd2, 0xf8, 0x79, 0x1f, 0x5b, 0x9e, 0x61, 0x5b, 0xf9,
- 0x11, 0x4a, 0xf2, 0x48, 0x9f, 0x59, 0xc4, 0x66, 0xad, 0x9b, 0xa2, 0x8d, 0x43, 0xa7, 0x61, 0xc4,
- 0x76, 0x7c, 0xc3, 0xb6, 0xbc, 0x7c, 0x6a, 0x46, 0x9a, 0xcb, 0x1c, 0xff, 0x60, 0xdf, 0x40, 0x58,
- 0x63, 0x3a, 0x8a, 0x50, 0x46, 0x15, 0x90, 0x3d, 0xbb, 0xe9, 0xea, 0x58, 0xd5, 0xed, 0x1a, 0x56,
- 0x0d, 0x6b, 0xc7, 0xce, 0xa7, 0x29, 0xc1, 0x74, 0xef, 0x40, 0xa8, 0xe2, 0xa2, 0x5d, 0xc3, 0x15,
- 0x6b, 0xc7, 0x56, 0x72, 0x5e, 0xc7, 0x33, 0x3a, 0x04, 0xc3, 0x5e, 0xcb, 0xf2, 0xb5, 0xe7, 0xf3,
- 0x59, 0x1a, 0x21, 0xfc, 0x69, 0xf6, 0xbb, 0xc3, 0x30, 0x36, 0x48, 0x88, 0x9d, 0x87, 0xe4, 0x0e,
- 0x19, 0x65, 0x3e, 0x76, 0x10, 0x1f, 0x30, 0x4c, 0xa7, 0x13, 0x87, 0xef, 0xd3, 0x89, 0x0b, 0x90,
- 0xb1, 0xb0, 0xe7, 0xe3, 0x1a, 0x8b, 0x88, 0xf8, 0x80, 0x31, 0x05, 0x0c, 0xd4, 0x1b, 0x52, 0x89,
- 0xfb, 0x0a, 0xa9, 0x67, 0x61, 0x2c, 0x30, 0x49, 0x75, 0x35, 0xab, 0x2e, 0x62, 0xf3, 0x58, 0x94,
- 0x25, 0xf3, 0x65, 0x81, 0x53, 0x08, 0x4c, 0xc9, 0xe1, 0x8e, 0x67, 0xb4, 0x04, 0x60, 0x5b, 0xd8,
- 0xde, 0x51, 0x6b, 0x58, 0x37, 0xf3, 0xa9, 0x7d, 0xbc, 0xb4, 0x46, 0x54, 0x7a, 0xbc, 0x64, 0x33,
- 0xa9, 0x6e, 0xa2, 0x73, 0xed, 0x50, 0x1b, 0xd9, 0x27, 0x52, 0xaa, 0x6c, 0x91, 0xf5, 0x44, 0xdb,
+ // 4378 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7b, 0x5b, 0x70, 0x1c, 0xc7,
+ 0x75, 0x36, 0x66, 0x2f, 0xc0, 0xee, 0xd9, 0xc5, 0x62, 0xd0, 0x80, 0xa8, 0x15, 0x64, 0x2d, 0x40,
+ 0x50, 0x17, 0xe8, 0x06, 0xaa, 0x78, 0xd7, 0xd2, 0x96, 0x7e, 0x2c, 0xb0, 0x84, 0x97, 0x3f, 0x16,
+ 0x80, 0x07, 0x80, 0x29, 0xca, 0x49, 0x4d, 0x0d, 0x66, 0x1b, 0x8b, 0x21, 0x67, 0x67, 0xc6, 0x33,
+ 0xb3, 0xa4, 0x96, 0x95, 0x07, 0xc6, 0x4a, 0xe2, 0x72, 0xee, 0xb7, 0xaa, 0xd8, 0x8a, 0xac, 0xc4,
+ 0x4e, 0xc5, 0x72, 0x9c, 0x9b, 0x9d, 0xd8, 0x8e, 0xed, 0xbc, 0xf8, 0xc5, 0x09, 0x9f, 0x52, 0xf6,
+ 0x5b, 0x1e, 0x52, 0x94, 0x08, 0xab, 0x2a, 0x72, 0xa2, 0x24, 0x4a, 0xc2, 0x07, 0x15, 0xf5, 0x92,
+ 0xea, 0xdb, 0xec, 0xec, 0x05, 0x9c, 0x05, 0x5d, 0x92, 0x9f, 0xb0, 0x73, 0xfa, 0x7c, 0x5f, 0x9f,
+ 0x3e, 0x7d, 0xba, 0xcf, 0xe9, 0x9e, 0x01, 0xdc, 0x28, 0xc2, 0x4c, 0xdd, 0xb6, 0xeb, 0x26, 0x3e,
+ 0xea, 0xb8, 0xb6, 0x6f, 0x6f, 0x37, 0x77, 0x8e, 0xd6, 0xb0, 0xa7, 0xbb, 0x86, 0xe3, 0xdb, 0xee,
+ 0x3c, 0x95, 0xa1, 0x31, 0xa6, 0x31, 0x2f, 0x34, 0x66, 0xab, 0x30, 0x7e, 0xce, 0x30, 0xf1, 0x52,
+ 0xa0, 0xb8, 0x81, 0x7d, 0x74, 0x06, 0x12, 0x3b, 0x86, 0x89, 0xf3, 0xd2, 0x4c, 0x7c, 0x2e, 0x73,
+ 0xec, 0xe1, 0xf9, 0x2e, 0xd0, 0x7c, 0x27, 0x62, 0x9d, 0x88, 0x15, 0x8a, 0x98, 0x7d, 0x2b, 0x01,
+ 0x13, 0x7d, 0x5a, 0x11, 0x82, 0x84, 0xa5, 0x35, 0x08, 0xa3, 0x34, 0x97, 0x56, 0xe8, 0x6f, 0x94,
+ 0x87, 0x11, 0x47, 0xd3, 0x2f, 0x6b, 0x75, 0x9c, 0x8f, 0x51, 0xb1, 0x78, 0x44, 0x05, 0x80, 0x1a,
+ 0x76, 0xb0, 0x55, 0xc3, 0x96, 0xde, 0xca, 0xc7, 0x67, 0xe2, 0x73, 0x69, 0x25, 0x24, 0x41, 0x4f,
+ 0xc2, 0xb8, 0xd3, 0xdc, 0x36, 0x0d, 0x5d, 0x0d, 0xa9, 0xc1, 0x4c, 0x7c, 0x2e, 0xa9, 0xc8, 0xac,
+ 0x61, 0xa9, 0xad, 0xfc, 0x18, 0x8c, 0x5d, 0xc5, 0xda, 0xe5, 0xb0, 0x6a, 0x86, 0xaa, 0xe6, 0x88,
+ 0x38, 0xa4, 0xb8, 0x08, 0xd9, 0x06, 0xf6, 0x3c, 0xad, 0x8e, 0x55, 0xbf, 0xe5, 0xe0, 0x7c, 0x82,
+ 0x8e, 0x7e, 0xa6, 0x67, 0xf4, 0xdd, 0x23, 0xcf, 0x70, 0xd4, 0x66, 0xcb, 0xc1, 0x68, 0x01, 0xd2,
+ 0xd8, 0x6a, 0x36, 0x18, 0x43, 0x72, 0x1f, 0xff, 0x95, 0xad, 0x66, 0xa3, 0x9b, 0x25, 0x45, 0x60,
+ 0x9c, 0x62, 0xc4, 0xc3, 0xee, 0x15, 0x43, 0xc7, 0xf9, 0x61, 0x4a, 0xf0, 0x58, 0x0f, 0xc1, 0x06,
+ 0x6b, 0xef, 0xe6, 0x10, 0x38, 0xb4, 0x08, 0x69, 0xfc, 0x92, 0x8f, 0x2d, 0xcf, 0xb0, 0xad, 0xfc,
+ 0x08, 0x25, 0x79, 0xa4, 0xcf, 0x2c, 0x62, 0xb3, 0xd6, 0x4d, 0xd1, 0xc6, 0xa1, 0x53, 0x30, 0x62,
+ 0x3b, 0xbe, 0x61, 0x5b, 0x5e, 0x3e, 0x35, 0x23, 0xcd, 0x65, 0x8e, 0x7d, 0xa4, 0x6f, 0x20, 0xac,
+ 0x31, 0x1d, 0x45, 0x28, 0xa3, 0x0a, 0xc8, 0x9e, 0xdd, 0x74, 0x75, 0xac, 0xea, 0x76, 0x0d, 0xab,
+ 0x86, 0xb5, 0x63, 0xe7, 0xd3, 0x94, 0x60, 0xba, 0x77, 0x20, 0x54, 0x71, 0xd1, 0xae, 0xe1, 0x8a,
+ 0xb5, 0x63, 0x2b, 0x39, 0xaf, 0xe3, 0x19, 0x1d, 0x82, 0x61, 0xaf, 0x65, 0xf9, 0xda, 0x4b, 0xf9,
+ 0x2c, 0x8d, 0x10, 0xfe, 0x34, 0xfb, 0xdd, 0x61, 0x18, 0x1b, 0x24, 0xc4, 0xce, 0x42, 0x72, 0x87,
+ 0x8c, 0x32, 0x1f, 0x3b, 0x88, 0x0f, 0x18, 0xa6, 0xd3, 0x89, 0xc3, 0xf7, 0xe8, 0xc4, 0x05, 0xc8,
+ 0x58, 0xd8, 0xf3, 0x71, 0x8d, 0x45, 0x44, 0x7c, 0xc0, 0x98, 0x02, 0x06, 0xea, 0x0d, 0xa9, 0xc4,
+ 0x3d, 0x85, 0xd4, 0x0b, 0x30, 0x16, 0x98, 0xa4, 0xba, 0x9a, 0x55, 0x17, 0xb1, 0x79, 0x34, 0xca,
+ 0x92, 0xf9, 0xb2, 0xc0, 0x29, 0x04, 0xa6, 0xe4, 0x70, 0xc7, 0x33, 0x5a, 0x02, 0xb0, 0x2d, 0x6c,
+ 0xef, 0xa8, 0x35, 0xac, 0x9b, 0xf9, 0xd4, 0x3e, 0x5e, 0x5a, 0x23, 0x2a, 0x3d, 0x5e, 0xb2, 0x99,
+ 0x54, 0x37, 0xd1, 0xb3, 0xed, 0x50, 0x1b, 0xd9, 0x27, 0x52, 0xaa, 0x6c, 0x91, 0xf5, 0x44, 0xdb,
0x16, 0xe4, 0x5c, 0x4c, 0xe2, 0x1e, 0xd7, 0xf8, 0xc8, 0xd2, 0xd4, 0x88, 0xf9, 0xc8, 0x91, 0x29,
- 0x1c, 0xc6, 0x06, 0x36, 0xea, 0x86, 0x1f, 0xd1, 0x51, 0x08, 0x04, 0x2a, 0x0d, 0x2b, 0xa0, 0xbb,
- 0x50, 0x56, 0x08, 0x57, 0xb5, 0x06, 0x9e, 0xba, 0x01, 0xb9, 0x4e, 0xf7, 0xa0, 0x49, 0x48, 0x7a,
+ 0x1c, 0xc6, 0x06, 0x36, 0xea, 0x86, 0x1f, 0xd1, 0x11, 0x08, 0x04, 0x2a, 0x0d, 0x2b, 0xa0, 0xbb,
+ 0x50, 0x56, 0x08, 0x57, 0xb5, 0x06, 0x9e, 0xba, 0x06, 0xb9, 0x4e, 0xf7, 0xa0, 0x49, 0x48, 0x7a,
0xbe, 0xe6, 0xfa, 0x34, 0x0a, 0x93, 0x0a, 0x7b, 0x40, 0x32, 0xc4, 0xb1, 0x55, 0xa3, 0xbb, 0x5c,
- 0x52, 0x21, 0x3f, 0xd1, 0x2f, 0xb4, 0x07, 0x1c, 0xa7, 0x03, 0x7e, 0xb4, 0x77, 0x46, 0x3b, 0x98,
- 0xbb, 0xc7, 0x3d, 0x75, 0x06, 0x46, 0x3b, 0x06, 0x30, 0x68, 0xd7, 0xb3, 0xbf, 0x02, 0x0f, 0xf4,
- 0xa5, 0x46, 0xcf, 0xc2, 0x64, 0xd3, 0x32, 0x2c, 0x1f, 0xbb, 0x8e, 0x8b, 0x49, 0xc4, 0xb2, 0xae,
- 0xf2, 0xff, 0x3e, 0xb2, 0x4f, 0xcc, 0x6d, 0x85, 0xb5, 0x19, 0x8b, 0x32, 0xd1, 0xec, 0x15, 0x3e,
- 0x91, 0x4e, 0xbd, 0x39, 0x22, 0xdf, 0xbc, 0x79, 0xf3, 0x66, 0x6c, 0xf6, 0x73, 0xc3, 0x30, 0xd9,
- 0x6f, 0xcd, 0xf4, 0x5d, 0xbe, 0x87, 0x60, 0xd8, 0x6a, 0x36, 0xb6, 0xb1, 0x4b, 0x9d, 0x94, 0x54,
- 0xf8, 0x13, 0x5a, 0x80, 0xa4, 0xa9, 0x6d, 0x63, 0x33, 0x9f, 0x98, 0x91, 0xe6, 0x72, 0xc7, 0x9f,
- 0x1c, 0x68, 0x55, 0xce, 0xaf, 0x10, 0x88, 0xc2, 0x90, 0xe8, 0x69, 0x48, 0xf0, 0x2d, 0x9a, 0x30,
- 0x3c, 0x31, 0x18, 0x03, 0x59, 0x4b, 0x0a, 0xc5, 0xa1, 0x0f, 0x40, 0x9a, 0xfc, 0x65, 0xb1, 0x31,
+ 0x52, 0x21, 0x3f, 0xd1, 0xff, 0x6b, 0x0f, 0x38, 0x4e, 0x07, 0xfc, 0x68, 0xef, 0x8c, 0x76, 0x30,
+ 0x77, 0x8f, 0x7b, 0xea, 0x34, 0x8c, 0x76, 0x0c, 0x60, 0xd0, 0xae, 0x67, 0x7f, 0x01, 0xee, 0xeb,
+ 0x4b, 0x8d, 0x5e, 0x80, 0xc9, 0xa6, 0x65, 0x58, 0x3e, 0x76, 0x1d, 0x17, 0x93, 0x88, 0x65, 0x5d,
+ 0xe5, 0xff, 0x75, 0x64, 0x9f, 0x98, 0xdb, 0x0a, 0x6b, 0x33, 0x16, 0x65, 0xa2, 0xd9, 0x2b, 0x7c,
+ 0x22, 0x9d, 0x7a, 0x7b, 0x44, 0xbe, 0x7e, 0xfd, 0xfa, 0xf5, 0xd8, 0xec, 0xe7, 0x87, 0x61, 0xb2,
+ 0xdf, 0x9a, 0xe9, 0xbb, 0x7c, 0x0f, 0xc1, 0xb0, 0xd5, 0x6c, 0x6c, 0x63, 0x97, 0x3a, 0x29, 0xa9,
+ 0xf0, 0x27, 0xb4, 0x00, 0x49, 0x53, 0xdb, 0xc6, 0x66, 0x3e, 0x31, 0x23, 0xcd, 0xe5, 0x8e, 0x3d,
+ 0x39, 0xd0, 0xaa, 0x9c, 0x5f, 0x21, 0x10, 0x85, 0x21, 0xd1, 0x73, 0x90, 0xe0, 0x5b, 0x34, 0x61,
+ 0x78, 0x62, 0x30, 0x06, 0xb2, 0x96, 0x14, 0x8a, 0x43, 0x0f, 0x42, 0x9a, 0xfc, 0x65, 0xb1, 0x31,
0x4c, 0x6d, 0x4e, 0x11, 0x01, 0x89, 0x0b, 0x34, 0x05, 0x29, 0xba, 0x4c, 0x6a, 0x58, 0xa4, 0xb6,
- 0xe0, 0x99, 0x04, 0x56, 0x0d, 0xef, 0x68, 0x4d, 0xd3, 0x57, 0xaf, 0x69, 0x66, 0x13, 0xd3, 0x80,
- 0x4f, 0x2b, 0x59, 0x2e, 0xfc, 0x04, 0x91, 0xa1, 0x69, 0xc8, 0xb0, 0x55, 0x65, 0x58, 0x35, 0xfc,
- 0x3c, 0xdd, 0x3d, 0x93, 0x0a, 0x5b, 0x68, 0x15, 0x22, 0x21, 0xdd, 0x5f, 0xf1, 0x6c, 0x4b, 0x84,
- 0x26, 0xed, 0x82, 0x08, 0x68, 0xf7, 0x67, 0xba, 0x37, 0xee, 0x87, 0xfa, 0x0f, 0xaf, 0x3b, 0xa6,
- 0x66, 0xbf, 0x1d, 0x83, 0x04, 0xdd, 0x2f, 0xc6, 0x20, 0xb3, 0x79, 0x79, 0xbd, 0xac, 0x2e, 0xad,
- 0x6d, 0x95, 0x56, 0xca, 0xb2, 0x84, 0x72, 0x00, 0x54, 0x70, 0x61, 0x65, 0x6d, 0x61, 0x53, 0x8e,
- 0x05, 0xcf, 0x95, 0xd5, 0xcd, 0xd3, 0x27, 0xe5, 0x78, 0x00, 0xd8, 0x62, 0x82, 0x44, 0x58, 0xe1,
- 0xc4, 0x71, 0x39, 0x89, 0x64, 0xc8, 0x32, 0x82, 0xca, 0xb3, 0xe5, 0xa5, 0xd3, 0x27, 0xe5, 0xe1,
- 0x4e, 0xc9, 0x89, 0xe3, 0xf2, 0x08, 0x1a, 0x85, 0x34, 0x95, 0x94, 0xd6, 0xd6, 0x56, 0xe4, 0x54,
+ 0xe0, 0x99, 0x04, 0x56, 0x0d, 0xef, 0x68, 0x4d, 0xd3, 0x57, 0xaf, 0x68, 0x66, 0x13, 0xd3, 0x80,
+ 0x4f, 0x2b, 0x59, 0x2e, 0xfc, 0x24, 0x91, 0xa1, 0x69, 0xc8, 0xb0, 0x55, 0x65, 0x58, 0x35, 0xfc,
+ 0x12, 0xdd, 0x3d, 0x93, 0x0a, 0x5b, 0x68, 0x15, 0x22, 0x21, 0xdd, 0x5f, 0xf2, 0x6c, 0x4b, 0x84,
+ 0x26, 0xed, 0x82, 0x08, 0x68, 0xf7, 0xa7, 0xbb, 0x37, 0xee, 0x87, 0xfa, 0x0f, 0xaf, 0x3b, 0xa6,
+ 0x66, 0xbf, 0x1d, 0x83, 0x04, 0xdd, 0x2f, 0xc6, 0x20, 0xb3, 0x79, 0x71, 0xbd, 0xac, 0x2e, 0xad,
+ 0x6d, 0x95, 0x56, 0xca, 0xb2, 0x84, 0x72, 0x00, 0x54, 0x70, 0x6e, 0x65, 0x6d, 0x61, 0x53, 0x8e,
+ 0x05, 0xcf, 0x95, 0xd5, 0xcd, 0x53, 0x27, 0xe4, 0x78, 0x00, 0xd8, 0x62, 0x82, 0x44, 0x58, 0xe1,
+ 0xf8, 0x31, 0x39, 0x89, 0x64, 0xc8, 0x32, 0x82, 0xca, 0x0b, 0xe5, 0xa5, 0x53, 0x27, 0xe4, 0xe1,
+ 0x4e, 0xc9, 0xf1, 0x63, 0xf2, 0x08, 0x1a, 0x85, 0x34, 0x95, 0x94, 0xd6, 0xd6, 0x56, 0xe4, 0x54,
0xc0, 0xb9, 0xb1, 0xa9, 0x54, 0x56, 0x97, 0xe5, 0x74, 0xc0, 0xb9, 0xac, 0xac, 0x6d, 0xad, 0xcb,
- 0x10, 0x30, 0x54, 0xcb, 0x1b, 0x1b, 0x0b, 0xcb, 0x65, 0x39, 0x13, 0x68, 0x94, 0x2e, 0x6f, 0x96,
- 0x37, 0xe4, 0x6c, 0x87, 0x59, 0x27, 0x8e, 0xcb, 0xa3, 0x41, 0x17, 0xe5, 0xd5, 0xad, 0xaa, 0x9c,
- 0x43, 0xe3, 0x30, 0xca, 0xba, 0x10, 0x46, 0x8c, 0x75, 0x89, 0x4e, 0x9f, 0x94, 0xe5, 0xb6, 0x21,
- 0x8c, 0x65, 0xbc, 0x43, 0x70, 0xfa, 0xa4, 0x8c, 0x66, 0x17, 0x21, 0x49, 0xa3, 0x0b, 0x21, 0xc8,
+ 0x10, 0x30, 0x54, 0xcb, 0x1b, 0x1b, 0x0b, 0xcb, 0x65, 0x39, 0x13, 0x68, 0x94, 0x2e, 0x6e, 0x96,
+ 0x37, 0xe4, 0x6c, 0x87, 0x59, 0xc7, 0x8f, 0xc9, 0xa3, 0x41, 0x17, 0xe5, 0xd5, 0xad, 0xaa, 0x9c,
+ 0x43, 0xe3, 0x30, 0xca, 0xba, 0x10, 0x46, 0x8c, 0x75, 0x89, 0x4e, 0x9d, 0x90, 0xe5, 0xb6, 0x21,
+ 0x8c, 0x65, 0xbc, 0x43, 0x70, 0xea, 0x84, 0x8c, 0x66, 0x17, 0x21, 0x49, 0xa3, 0x0b, 0x21, 0xc8,
0xad, 0x2c, 0x94, 0xca, 0x2b, 0xea, 0xda, 0xfa, 0x66, 0x65, 0x6d, 0x75, 0x61, 0x45, 0x96, 0xda,
- 0x32, 0xa5, 0xfc, 0xf1, 0xad, 0x8a, 0x52, 0x5e, 0x92, 0x63, 0x61, 0xd9, 0x7a, 0x79, 0x61, 0xb3,
+ 0x32, 0xa5, 0xfc, 0x89, 0xad, 0x8a, 0x52, 0x5e, 0x92, 0x63, 0x61, 0xd9, 0x7a, 0x79, 0x61, 0xb3,
0xbc, 0x24, 0xc7, 0x67, 0x75, 0x98, 0xec, 0xb7, 0x4f, 0xf6, 0x5d, 0x19, 0xa1, 0x29, 0x8e, 0xed,
0x33, 0xc5, 0x94, 0xab, 0x67, 0x8a, 0x7f, 0x1c, 0x83, 0x89, 0x3e, 0xb9, 0xa2, 0x6f, 0x27, 0xcf,
- 0x40, 0x92, 0x85, 0x28, 0xcb, 0x9e, 0x8f, 0xf7, 0x4d, 0x3a, 0x34, 0x60, 0x7b, 0x32, 0x28, 0xc5,
- 0x85, 0x2b, 0x88, 0xf8, 0x3e, 0x15, 0x04, 0xa1, 0xe8, 0xd9, 0xd3, 0x7f, 0xb9, 0x67, 0x4f, 0x67,
- 0x69, 0xef, 0xf4, 0x20, 0x69, 0x8f, 0xca, 0x0e, 0xb6, 0xb7, 0x27, 0xfb, 0xec, 0xed, 0xe7, 0x61,
- 0xbc, 0x87, 0x68, 0xe0, 0x3d, 0xf6, 0x05, 0x09, 0xf2, 0xfb, 0x39, 0x27, 0x62, 0xa7, 0x8b, 0x75,
- 0xec, 0x74, 0xe7, 0xbb, 0x3d, 0x78, 0x64, 0xff, 0x49, 0xe8, 0x99, 0xeb, 0x57, 0x24, 0x38, 0xd4,
- 0xbf, 0x52, 0xec, 0x6b, 0xc3, 0xd3, 0x30, 0xdc, 0xc0, 0xfe, 0xae, 0x2d, 0xaa, 0xa5, 0x47, 0xfb,
+ 0x43, 0x92, 0x85, 0x28, 0xcb, 0x9e, 0x8f, 0xf7, 0x4d, 0x3a, 0x34, 0x60, 0x7b, 0x32, 0x28, 0xc5,
+ 0x85, 0x2b, 0x88, 0xf8, 0x3e, 0x15, 0x04, 0xa1, 0xe8, 0xd9, 0xd3, 0x7f, 0xbe, 0x67, 0x4f, 0x67,
+ 0x69, 0xef, 0xd4, 0x20, 0x69, 0x8f, 0xca, 0x0e, 0xb6, 0xb7, 0x27, 0xfb, 0xec, 0xed, 0x67, 0x61,
+ 0xbc, 0x87, 0x68, 0xe0, 0x3d, 0xf6, 0x65, 0x09, 0xf2, 0xfb, 0x39, 0x27, 0x62, 0xa7, 0x8b, 0x75,
+ 0xec, 0x74, 0x67, 0xbb, 0x3d, 0x78, 0x78, 0xff, 0x49, 0xe8, 0x99, 0xeb, 0xd7, 0x25, 0x38, 0xd4,
+ 0xbf, 0x52, 0xec, 0x6b, 0xc3, 0x73, 0x30, 0xdc, 0xc0, 0xfe, 0xae, 0x2d, 0xaa, 0xa5, 0x47, 0xfb,
0xe4, 0x60, 0xd2, 0xdc, 0x3d, 0xd9, 0x1c, 0x15, 0x4e, 0xe2, 0xf1, 0xfd, 0xca, 0x3d, 0x66, 0x4d,
- 0x8f, 0xa5, 0x9f, 0x8d, 0xc1, 0x03, 0x7d, 0xc9, 0xfb, 0x1a, 0xfa, 0x10, 0x80, 0x61, 0x39, 0x4d,
+ 0x8f, 0xa5, 0x9f, 0x8b, 0xc1, 0x7d, 0x7d, 0xc9, 0xfb, 0x1a, 0xfa, 0x10, 0x80, 0x61, 0x39, 0x4d,
0x9f, 0x55, 0x44, 0x6c, 0x83, 0x4d, 0x53, 0x09, 0xdd, 0xbc, 0xc8, 0xe6, 0xd9, 0xf4, 0x83, 0xf6,
- 0x38, 0x6d, 0x07, 0x26, 0xa2, 0x0a, 0x67, 0xdb, 0x86, 0x26, 0xa8, 0xa1, 0x85, 0x7d, 0x46, 0xda,
- 0x13, 0x98, 0x4f, 0x81, 0xac, 0x9b, 0x06, 0xb6, 0x7c, 0xd5, 0xf3, 0x5d, 0xac, 0x35, 0x0c, 0xab,
+ 0x38, 0x6d, 0x07, 0x26, 0xa2, 0x0a, 0x67, 0xda, 0x86, 0x26, 0xa8, 0xa1, 0x85, 0x7d, 0x46, 0xda,
+ 0x13, 0x98, 0xcf, 0x80, 0xac, 0x9b, 0x06, 0xb6, 0x7c, 0xd5, 0xf3, 0x5d, 0xac, 0x35, 0x0c, 0xab,
0x4e, 0x33, 0x48, 0xaa, 0x98, 0xdc, 0xd1, 0x4c, 0x0f, 0x2b, 0x63, 0xac, 0x79, 0x43, 0xb4, 0x12,
- 0x04, 0x0d, 0x20, 0x37, 0x84, 0x18, 0xee, 0x40, 0xb0, 0xe6, 0x00, 0x31, 0xfb, 0x8d, 0x14, 0x64,
- 0x42, 0x75, 0x35, 0x3a, 0x02, 0xd9, 0x2b, 0xda, 0x35, 0x4d, 0x15, 0x67, 0x25, 0xe6, 0x89, 0x0c,
- 0x91, 0xad, 0xf3, 0xf3, 0xd2, 0x53, 0x30, 0x49, 0x55, 0xec, 0xa6, 0x8f, 0x5d, 0x55, 0x37, 0x35,
- 0xcf, 0xa3, 0x4e, 0x4b, 0x51, 0x55, 0x44, 0xda, 0xd6, 0x48, 0xd3, 0xa2, 0x68, 0x41, 0xa7, 0x60,
- 0x82, 0x22, 0x1a, 0x4d, 0xd3, 0x37, 0x1c, 0x13, 0xab, 0xe4, 0xf4, 0xe6, 0xd1, 0x4c, 0x12, 0x58,
- 0x36, 0x4e, 0x34, 0xaa, 0x5c, 0x81, 0x58, 0xe4, 0xa1, 0x25, 0x78, 0x88, 0xc2, 0xea, 0xd8, 0xc2,
- 0xae, 0xe6, 0x63, 0x15, 0x7f, 0xaa, 0xa9, 0x99, 0x9e, 0xaa, 0x59, 0x35, 0x75, 0x57, 0xf3, 0x76,
- 0xf3, 0x93, 0x84, 0xa0, 0x14, 0xcb, 0x4b, 0xca, 0x61, 0xa2, 0xb8, 0xcc, 0xf5, 0xca, 0x54, 0x6d,
- 0xc1, 0xaa, 0x7d, 0x4c, 0xf3, 0x76, 0x51, 0x11, 0x0e, 0x51, 0x16, 0xcf, 0x77, 0x0d, 0xab, 0xae,
- 0xea, 0xbb, 0x58, 0xbf, 0xaa, 0x36, 0xfd, 0x9d, 0xb3, 0xf9, 0x0f, 0x84, 0xfb, 0xa7, 0x16, 0x6e,
- 0x50, 0x9d, 0x45, 0xa2, 0xb2, 0xe5, 0xef, 0x9c, 0x45, 0x1b, 0x90, 0x25, 0x93, 0xd1, 0x30, 0x6e,
- 0x60, 0x75, 0xc7, 0x76, 0x69, 0x6a, 0xcc, 0xf5, 0xd9, 0x9a, 0x42, 0x1e, 0x9c, 0x5f, 0xe3, 0x80,
- 0xaa, 0x5d, 0xc3, 0xc5, 0xe4, 0xc6, 0x7a, 0xb9, 0xbc, 0xa4, 0x64, 0x04, 0xcb, 0x05, 0xdb, 0x25,
- 0x01, 0x55, 0xb7, 0x03, 0x07, 0x67, 0x58, 0x40, 0xd5, 0x6d, 0xe1, 0xde, 0x53, 0x30, 0xa1, 0xeb,
- 0x6c, 0xcc, 0x86, 0xae, 0xf2, 0x33, 0x96, 0x97, 0x97, 0x3b, 0x9c, 0xa5, 0xeb, 0xcb, 0x4c, 0x81,
- 0xc7, 0xb8, 0x87, 0xce, 0xc1, 0x03, 0x6d, 0x67, 0x85, 0x81, 0xe3, 0x3d, 0xa3, 0xec, 0x86, 0x9e,
- 0x82, 0x09, 0xa7, 0xd5, 0x0b, 0x44, 0x1d, 0x3d, 0x3a, 0xad, 0x6e, 0xd8, 0x19, 0x98, 0x74, 0x76,
- 0x9d, 0x5e, 0xdc, 0x13, 0x61, 0x1c, 0x72, 0x76, 0x9d, 0x6e, 0xe0, 0x23, 0xf4, 0xc0, 0xed, 0x62,
- 0x5d, 0xf3, 0x71, 0x2d, 0xff, 0x60, 0x58, 0x3d, 0xd4, 0x80, 0x8e, 0x81, 0xac, 0xeb, 0x2a, 0xb6,
- 0xb4, 0x6d, 0x13, 0xab, 0x9a, 0x8b, 0x2d, 0xcd, 0xcb, 0x4f, 0x87, 0x95, 0x73, 0xba, 0x5e, 0xa6,
- 0xad, 0x0b, 0xb4, 0x11, 0x3d, 0x01, 0xe3, 0xf6, 0xf6, 0x15, 0x9d, 0x85, 0xa4, 0xea, 0xb8, 0x78,
- 0xc7, 0x78, 0x3e, 0xff, 0x30, 0xf5, 0xef, 0x18, 0x69, 0xa0, 0x01, 0xb9, 0x4e, 0xc5, 0xe8, 0x71,
- 0x90, 0x75, 0x6f, 0x57, 0x73, 0x1d, 0xba, 0x27, 0x7b, 0x8e, 0xa6, 0xe3, 0xfc, 0x23, 0x4c, 0x95,
- 0xc9, 0x57, 0x85, 0x98, 0x2c, 0x09, 0xef, 0xba, 0xb1, 0xe3, 0x0b, 0xc6, 0xc7, 0xd8, 0x92, 0xa0,
- 0x32, 0xce, 0x36, 0x07, 0x32, 0x71, 0x45, 0x47, 0xc7, 0x73, 0x54, 0x2d, 0xe7, 0xec, 0x3a, 0xe1,
- 0x7e, 0x8f, 0xc2, 0x28, 0xd1, 0x6c, 0x77, 0xfa, 0x38, 0x2b, 0xc8, 0x9c, 0xdd, 0x50, 0x8f, 0xef,
- 0x59, 0x6d, 0x3c, 0x5b, 0x84, 0x6c, 0x38, 0x3e, 0x51, 0x1a, 0x58, 0x84, 0xca, 0x12, 0x29, 0x56,
- 0x16, 0xd7, 0x96, 0x48, 0x99, 0xf1, 0x5c, 0x59, 0x8e, 0x91, 0x72, 0x67, 0xa5, 0xb2, 0x59, 0x56,
- 0x95, 0xad, 0xd5, 0xcd, 0x4a, 0xb5, 0x2c, 0xc7, 0xc3, 0x75, 0xf5, 0x0f, 0x62, 0x90, 0xeb, 0x3c,
- 0x22, 0xa1, 0x8f, 0xc0, 0x83, 0xe2, 0x3e, 0xc3, 0xc3, 0xbe, 0x7a, 0xdd, 0x70, 0xe9, 0x92, 0x69,
- 0x68, 0x2c, 0x7d, 0x05, 0x93, 0x36, 0xc9, 0xb5, 0x36, 0xb0, 0x7f, 0xc9, 0x70, 0xc9, 0x82, 0x68,
- 0x68, 0x3e, 0x5a, 0x81, 0x69, 0xcb, 0x56, 0x3d, 0x5f, 0xb3, 0x6a, 0x9a, 0x5b, 0x53, 0xdb, 0x37,
- 0x49, 0xaa, 0xa6, 0xeb, 0xd8, 0xf3, 0x6c, 0x96, 0xaa, 0x02, 0x96, 0x0f, 0x5a, 0xf6, 0x06, 0x57,
- 0x6e, 0xef, 0xe1, 0x0b, 0x5c, 0xb5, 0x2b, 0xc0, 0xe2, 0xfb, 0x05, 0xd8, 0x07, 0x20, 0xdd, 0xd0,
- 0x1c, 0x15, 0x5b, 0xbe, 0xdb, 0xa2, 0x85, 0x71, 0x4a, 0x49, 0x35, 0x34, 0xa7, 0x4c, 0x9e, 0xdf,
- 0x9f, 0xf3, 0xc9, 0xbf, 0xc5, 0x21, 0x1b, 0x2e, 0x8e, 0xc9, 0x59, 0x43, 0xa7, 0x79, 0x44, 0xa2,
- 0x3b, 0xcd, 0xd1, 0x7b, 0x96, 0xd2, 0xf3, 0x8b, 0x24, 0xc1, 0x14, 0x87, 0x59, 0xc9, 0xaa, 0x30,
- 0x24, 0x49, 0xee, 0x64, 0x6f, 0xc1, 0xac, 0x44, 0x48, 0x29, 0xfc, 0x09, 0x2d, 0xc3, 0xf0, 0x15,
- 0x8f, 0x72, 0x0f, 0x53, 0xee, 0x87, 0xef, 0xcd, 0x7d, 0x71, 0x83, 0x92, 0xa7, 0x2f, 0x6e, 0xa8,
- 0xab, 0x6b, 0x4a, 0x75, 0x61, 0x45, 0xe1, 0x70, 0x74, 0x18, 0x12, 0xa6, 0x76, 0xa3, 0xd5, 0x99,
- 0x8a, 0xa8, 0x68, 0x50, 0xc7, 0x1f, 0x86, 0xc4, 0x75, 0xac, 0x5d, 0xed, 0x4c, 0x00, 0x54, 0xf4,
- 0x1e, 0x86, 0xfe, 0x31, 0x48, 0x52, 0x7f, 0x21, 0x00, 0xee, 0x31, 0x79, 0x08, 0xa5, 0x20, 0xb1,
- 0xb8, 0xa6, 0x90, 0xf0, 0x97, 0x21, 0xcb, 0xa4, 0xea, 0x7a, 0xa5, 0xbc, 0x58, 0x96, 0x63, 0xb3,
- 0xa7, 0x60, 0x98, 0x39, 0x81, 0x2c, 0x8d, 0xc0, 0x0d, 0xf2, 0x10, 0x7f, 0xe4, 0x1c, 0x92, 0x68,
- 0xdd, 0xaa, 0x96, 0xca, 0x8a, 0x1c, 0x0b, 0x4f, 0xaf, 0x07, 0xd9, 0x70, 0x5d, 0xfc, 0xfe, 0xc4,
- 0xd4, 0xf7, 0x24, 0xc8, 0x84, 0xea, 0x5c, 0x52, 0xa0, 0x68, 0xa6, 0x69, 0x5f, 0x57, 0x35, 0xd3,
- 0xd0, 0x3c, 0x1e, 0x14, 0x40, 0x45, 0x0b, 0x44, 0x32, 0xe8, 0xa4, 0xbd, 0x2f, 0xc6, 0xbf, 0x2c,
- 0x81, 0xdc, 0x5d, 0x62, 0x76, 0x19, 0x28, 0xfd, 0x5c, 0x0d, 0x7c, 0x49, 0x82, 0x5c, 0x67, 0x5d,
- 0xd9, 0x65, 0xde, 0x91, 0x9f, 0xab, 0x79, 0xaf, 0xc7, 0x60, 0xb4, 0xa3, 0x9a, 0x1c, 0xd4, 0xba,
- 0x4f, 0xc1, 0xb8, 0x51, 0xc3, 0x0d, 0xc7, 0xf6, 0xb1, 0xa5, 0xb7, 0x54, 0x13, 0x5f, 0xc3, 0x66,
- 0x7e, 0x96, 0x6e, 0x14, 0xc7, 0xee, 0x5d, 0xaf, 0xce, 0x57, 0xda, 0xb8, 0x15, 0x02, 0x2b, 0x4e,
- 0x54, 0x96, 0xca, 0xd5, 0xf5, 0xb5, 0xcd, 0xf2, 0xea, 0xe2, 0x65, 0x75, 0x6b, 0xf5, 0x17, 0x57,
- 0xd7, 0x2e, 0xad, 0x2a, 0xb2, 0xd1, 0xa5, 0xf6, 0x1e, 0x2e, 0xf5, 0x75, 0x90, 0xbb, 0x8d, 0x42,
- 0x0f, 0x42, 0x3f, 0xb3, 0xe4, 0x21, 0x34, 0x01, 0x63, 0xab, 0x6b, 0xea, 0x46, 0x65, 0xa9, 0xac,
- 0x96, 0x2f, 0x5c, 0x28, 0x2f, 0x6e, 0x6e, 0xb0, 0x1b, 0x88, 0x40, 0x7b, 0xb3, 0x73, 0x51, 0xbf,
- 0x18, 0x87, 0x89, 0x3e, 0x96, 0xa0, 0x05, 0x7e, 0x76, 0x60, 0xc7, 0x99, 0x0f, 0x0f, 0x62, 0xfd,
- 0x3c, 0x49, 0xf9, 0xeb, 0x9a, 0xeb, 0xf3, 0xa3, 0xc6, 0xe3, 0x40, 0xbc, 0x64, 0xf9, 0xc6, 0x8e,
- 0x81, 0x5d, 0x7e, 0x61, 0xc3, 0x0e, 0x14, 0x63, 0x6d, 0x39, 0xbb, 0xb3, 0xf9, 0x10, 0x20, 0xc7,
- 0xf6, 0x0c, 0xdf, 0xb8, 0x86, 0x55, 0xc3, 0x12, 0xb7, 0x3b, 0xe4, 0x80, 0x91, 0x50, 0x64, 0xd1,
- 0x52, 0xb1, 0xfc, 0x40, 0xdb, 0xc2, 0x75, 0xad, 0x4b, 0x9b, 0x6c, 0xe0, 0x71, 0x45, 0x16, 0x2d,
- 0x81, 0xf6, 0x11, 0xc8, 0xd6, 0xec, 0x26, 0xa9, 0xba, 0x98, 0x1e, 0xc9, 0x17, 0x92, 0x92, 0x61,
- 0xb2, 0x40, 0x85, 0xd7, 0xd3, 0xed, 0x6b, 0xa5, 0xac, 0x92, 0x61, 0x32, 0xa6, 0xf2, 0x18, 0x8c,
- 0x69, 0xf5, 0xba, 0x4b, 0xc8, 0x05, 0x11, 0x3b, 0x21, 0xe4, 0x02, 0x31, 0x55, 0x9c, 0xba, 0x08,
- 0x29, 0xe1, 0x07, 0x92, 0x92, 0x89, 0x27, 0x54, 0x87, 0x1d, 0x7b, 0x63, 0x73, 0x69, 0x25, 0x65,
- 0x89, 0xc6, 0x23, 0x90, 0x35, 0x3c, 0xb5, 0x7d, 0x4b, 0x1e, 0x9b, 0x89, 0xcd, 0xa5, 0x94, 0x8c,
- 0xe1, 0x05, 0x37, 0x8c, 0xb3, 0xaf, 0xc4, 0x20, 0xd7, 0x79, 0xcb, 0x8f, 0x96, 0x20, 0x65, 0xda,
- 0xba, 0x46, 0x43, 0x8b, 0xbd, 0x62, 0x9a, 0x8b, 0x78, 0x31, 0x30, 0xbf, 0xc2, 0xf5, 0x95, 0x00,
- 0x39, 0xf5, 0x2f, 0x12, 0xa4, 0x84, 0x18, 0x1d, 0x82, 0x84, 0xa3, 0xf9, 0xbb, 0x94, 0x2e, 0x59,
- 0x8a, 0xc9, 0x92, 0x42, 0x9f, 0x89, 0xdc, 0x73, 0x34, 0x8b, 0x86, 0x00, 0x97, 0x93, 0x67, 0x32,
- 0xaf, 0x26, 0xd6, 0x6a, 0xf4, 0xf8, 0x61, 0x37, 0x1a, 0xd8, 0xf2, 0x3d, 0x31, 0xaf, 0x5c, 0xbe,
- 0xc8, 0xc5, 0xe8, 0x49, 0x18, 0xf7, 0x5d, 0xcd, 0x30, 0x3b, 0x74, 0x13, 0x54, 0x57, 0x16, 0x0d,
- 0x81, 0x72, 0x11, 0x0e, 0x0b, 0xde, 0x1a, 0xf6, 0x35, 0x7d, 0x17, 0xd7, 0xda, 0xa0, 0x61, 0x7a,
- 0xcd, 0xf0, 0x20, 0x57, 0x58, 0xe2, 0xed, 0x02, 0x3b, 0xfb, 0x23, 0x09, 0xc6, 0xc5, 0x81, 0xa9,
- 0x16, 0x38, 0xab, 0x0a, 0xa0, 0x59, 0x96, 0xed, 0x87, 0xdd, 0xd5, 0x1b, 0xca, 0x3d, 0xb8, 0xf9,
- 0x85, 0x00, 0xa4, 0x84, 0x08, 0xa6, 0x1a, 0x00, 0xed, 0x96, 0x7d, 0xdd, 0x36, 0x0d, 0x19, 0xfe,
- 0x0a, 0x87, 0xbe, 0x07, 0x64, 0x47, 0x6c, 0x60, 0x22, 0x72, 0xb2, 0x42, 0x93, 0x90, 0xdc, 0xc6,
- 0x75, 0xc3, 0xe2, 0x17, 0xb3, 0xec, 0x41, 0x5c, 0x84, 0x24, 0x82, 0x8b, 0x90, 0xd2, 0x27, 0x61,
- 0x42, 0xb7, 0x1b, 0xdd, 0xe6, 0x96, 0xe4, 0xae, 0x63, 0xbe, 0xf7, 0x31, 0xe9, 0x39, 0x68, 0x97,
- 0x98, 0xef, 0x48, 0xd2, 0x97, 0x62, 0xf1, 0xe5, 0xf5, 0xd2, 0x57, 0x63, 0x53, 0xcb, 0x0c, 0xba,
- 0x2e, 0x46, 0xaa, 0xe0, 0x1d, 0x13, 0xeb, 0xc4, 0x7a, 0xf8, 0xf2, 0x93, 0xf0, 0xe1, 0xba, 0xe1,
- 0xef, 0x36, 0xb7, 0xe7, 0x75, 0xbb, 0x71, 0xac, 0x6e, 0xd7, 0xed, 0xf6, 0xab, 0x4f, 0xf2, 0x44,
- 0x1f, 0xe8, 0x2f, 0xfe, 0xfa, 0x33, 0x1d, 0x48, 0xa7, 0x22, 0xdf, 0x95, 0x16, 0x57, 0x61, 0x82,
- 0x2b, 0xab, 0xf4, 0xfd, 0x0b, 0x3b, 0x45, 0xa0, 0x7b, 0xde, 0x61, 0xe5, 0xbf, 0xfe, 0x06, 0x4d,
- 0xd7, 0xca, 0x38, 0x87, 0x92, 0x36, 0x76, 0xd0, 0x28, 0x2a, 0xf0, 0x40, 0x07, 0x1f, 0x5b, 0x9a,
- 0xd8, 0x8d, 0x60, 0xfc, 0x01, 0x67, 0x9c, 0x08, 0x31, 0x6e, 0x70, 0x68, 0x71, 0x11, 0x46, 0x0f,
- 0xc2, 0xf5, 0x4f, 0x9c, 0x2b, 0x8b, 0xc3, 0x24, 0xcb, 0x30, 0x46, 0x49, 0xf4, 0xa6, 0xe7, 0xdb,
- 0x0d, 0xba, 0xef, 0xdd, 0x9b, 0xe6, 0x9f, 0xdf, 0x60, 0x6b, 0x25, 0x47, 0x60, 0x8b, 0x01, 0xaa,
- 0x58, 0x04, 0xfa, 0xca, 0xa9, 0x86, 0x75, 0x33, 0x82, 0xe1, 0x55, 0x6e, 0x48, 0xa0, 0x5f, 0xfc,
- 0x04, 0x4c, 0x92, 0xdf, 0x74, 0x5b, 0x0a, 0x5b, 0x12, 0x7d, 0xe1, 0x95, 0xff, 0xd1, 0x0b, 0x6c,
- 0x39, 0x4e, 0x04, 0x04, 0x21, 0x9b, 0x42, 0xb3, 0x58, 0xc7, 0xbe, 0x8f, 0x5d, 0x4f, 0xd5, 0xcc,
- 0x7e, 0xe6, 0x85, 0x6e, 0x0c, 0xf2, 0x9f, 0x7f, 0xab, 0x73, 0x16, 0x97, 0x19, 0x72, 0xc1, 0x34,
- 0x8b, 0x5b, 0xf0, 0x60, 0x9f, 0xa8, 0x18, 0x80, 0xf3, 0x45, 0xce, 0x39, 0xd9, 0x13, 0x19, 0x84,
- 0x76, 0x1d, 0x84, 0x3c, 0x98, 0xcb, 0x01, 0x38, 0xff, 0x84, 0x73, 0x22, 0x8e, 0x15, 0x53, 0x4a,
- 0x18, 0x2f, 0xc2, 0xf8, 0x35, 0xec, 0x6e, 0xdb, 0x1e, 0xbf, 0xa5, 0x19, 0x80, 0xee, 0x25, 0x4e,
- 0x37, 0xc6, 0x81, 0xf4, 0xda, 0x86, 0x70, 0x9d, 0x83, 0xd4, 0x8e, 0xa6, 0xe3, 0x01, 0x28, 0xbe,
- 0xc0, 0x29, 0x46, 0x88, 0x3e, 0x81, 0x2e, 0x40, 0xb6, 0x6e, 0xf3, 0xcc, 0x14, 0x0d, 0x7f, 0x99,
- 0xc3, 0x33, 0x02, 0xc3, 0x29, 0x1c, 0xdb, 0x69, 0x9a, 0x24, 0x6d, 0x45, 0x53, 0xfc, 0xa9, 0xa0,
- 0x10, 0x18, 0x4e, 0x71, 0x00, 0xb7, 0xfe, 0x99, 0xa0, 0xf0, 0x42, 0xfe, 0x7c, 0x06, 0x32, 0xb6,
- 0x65, 0xb6, 0x6c, 0x6b, 0x10, 0x23, 0xbe, 0xc8, 0x19, 0x80, 0x43, 0x08, 0xc1, 0x79, 0x48, 0x0f,
- 0x3a, 0x11, 0x7f, 0xf1, 0x96, 0x58, 0x1e, 0x62, 0x06, 0x96, 0x61, 0x4c, 0x6c, 0x50, 0x86, 0x6d,
- 0x0d, 0x40, 0xf1, 0x65, 0x4e, 0x91, 0x0b, 0xc1, 0xf8, 0x30, 0x7c, 0xec, 0xf9, 0x75, 0x3c, 0x08,
- 0xc9, 0x2b, 0x62, 0x18, 0x1c, 0xc2, 0x5d, 0xb9, 0x8d, 0x2d, 0x7d, 0x77, 0x30, 0x86, 0xaf, 0x08,
- 0x57, 0x0a, 0x0c, 0xa1, 0x58, 0x84, 0xd1, 0x86, 0xe6, 0x7a, 0xbb, 0x9a, 0x39, 0xd0, 0x74, 0xfc,
- 0x25, 0xe7, 0xc8, 0x06, 0x20, 0xee, 0x91, 0xa6, 0x75, 0x10, 0x9a, 0xaf, 0x0a, 0x8f, 0x84, 0x60,
- 0x7c, 0xe9, 0x79, 0x3e, 0xbd, 0xd2, 0x3a, 0x08, 0xdb, 0x5f, 0x89, 0xa5, 0xc7, 0xb0, 0xd5, 0x30,
- 0xe3, 0x79, 0x48, 0x7b, 0xc6, 0x8d, 0x81, 0x68, 0xfe, 0x5a, 0xcc, 0x34, 0x05, 0x10, 0xf0, 0x65,
- 0x38, 0xdc, 0x37, 0x4d, 0x0c, 0x40, 0xf6, 0x37, 0x9c, 0xec, 0x50, 0x9f, 0x54, 0xc1, 0xb7, 0x84,
- 0x83, 0x52, 0xfe, 0xad, 0xd8, 0x12, 0x70, 0x17, 0xd7, 0x3a, 0x39, 0x2b, 0x78, 0xda, 0xce, 0xc1,
- 0xbc, 0xf6, 0x77, 0xc2, 0x6b, 0x0c, 0xdb, 0xe1, 0xb5, 0x4d, 0x38, 0xc4, 0x19, 0x0f, 0x36, 0xaf,
- 0x5f, 0x13, 0x1b, 0x2b, 0x43, 0x6f, 0x75, 0xce, 0xee, 0x27, 0x61, 0x2a, 0x70, 0xa7, 0x28, 0x4a,
- 0x3d, 0xb5, 0xa1, 0x39, 0x03, 0x30, 0x7f, 0x9d, 0x33, 0x8b, 0x1d, 0x3f, 0xa8, 0x6a, 0xbd, 0xaa,
- 0xe6, 0x10, 0xf2, 0x67, 0x21, 0x2f, 0xc8, 0x9b, 0x96, 0x8b, 0x75, 0xbb, 0x6e, 0x19, 0x37, 0x70,
- 0x6d, 0x00, 0xea, 0xbf, 0xef, 0x9a, 0xaa, 0xad, 0x10, 0x9c, 0x30, 0x57, 0x40, 0x0e, 0x6a, 0x15,
- 0xd5, 0x68, 0x38, 0xb6, 0xeb, 0x47, 0x30, 0x7e, 0x43, 0xcc, 0x54, 0x80, 0xab, 0x50, 0x58, 0xb1,
- 0x0c, 0x39, 0xfa, 0x38, 0x68, 0x48, 0x7e, 0x93, 0x13, 0x8d, 0xb6, 0x51, 0x7c, 0xe3, 0xd0, 0xed,
- 0x86, 0xa3, 0xb9, 0x83, 0xec, 0x7f, 0xdf, 0x12, 0x1b, 0x07, 0x87, 0xf0, 0x8d, 0xc3, 0x6f, 0x39,
- 0x98, 0x64, 0xfb, 0x01, 0x18, 0xbe, 0x2d, 0x36, 0x0e, 0x81, 0xe1, 0x14, 0xa2, 0x60, 0x18, 0x80,
- 0xe2, 0x1f, 0x04, 0x85, 0xc0, 0x10, 0x8a, 0x8f, 0xb7, 0x13, 0xad, 0x8b, 0xeb, 0x86, 0xe7, 0xbb,
- 0xac, 0x14, 0xbe, 0x37, 0xd5, 0x77, 0xde, 0xea, 0x2c, 0xc2, 0x94, 0x10, 0x94, 0xec, 0x44, 0xfc,
- 0x0a, 0x95, 0x9e, 0x94, 0xa2, 0x0d, 0xfb, 0xae, 0xd8, 0x89, 0x42, 0x30, 0x62, 0x5b, 0xa8, 0x42,
- 0x24, 0x6e, 0xd7, 0xc9, 0xf9, 0x60, 0x00, 0xba, 0xef, 0x75, 0x19, 0xb7, 0x21, 0xb0, 0x84, 0x33,
- 0x54, 0xff, 0x34, 0xad, 0xab, 0xb8, 0x35, 0x50, 0x74, 0xfe, 0x63, 0x57, 0xfd, 0xb3, 0xc5, 0x90,
- 0x6c, 0x0f, 0x19, 0xeb, 0xaa, 0xa7, 0x50, 0xd4, 0xc7, 0x3a, 0xf9, 0x5f, 0xbd, 0xc3, 0xc7, 0xdb,
- 0x59, 0x4e, 0x15, 0x57, 0x48, 0x90, 0x77, 0x16, 0x3d, 0xd1, 0x64, 0x2f, 0xdc, 0x09, 0xe2, 0xbc,
- 0xa3, 0xe6, 0x29, 0x5e, 0x80, 0xd1, 0x8e, 0x82, 0x27, 0x9a, 0xea, 0xd7, 0x38, 0x55, 0x36, 0x5c,
- 0xef, 0x14, 0x4f, 0x41, 0x82, 0x14, 0x2f, 0xd1, 0xf0, 0x5f, 0xe7, 0x70, 0xaa, 0x5e, 0xfc, 0x28,
- 0xa4, 0x44, 0xd1, 0x12, 0x0d, 0xfd, 0x0d, 0x0e, 0x0d, 0x20, 0x04, 0x2e, 0x0a, 0x96, 0x68, 0xf8,
- 0x67, 0x04, 0x5c, 0x40, 0x08, 0x7c, 0x70, 0x17, 0x7e, 0xff, 0xb7, 0x12, 0x3c, 0xe9, 0x08, 0xdf,
- 0x9d, 0x87, 0x11, 0x5e, 0xa9, 0x44, 0xa3, 0x3f, 0xcb, 0x3b, 0x17, 0x88, 0xe2, 0x19, 0x48, 0x0e,
- 0xe8, 0xf0, 0xdf, 0xe6, 0x50, 0xa6, 0x5f, 0x5c, 0x84, 0x4c, 0xa8, 0x3a, 0x89, 0x86, 0xff, 0x0e,
- 0x87, 0x87, 0x51, 0xc4, 0x74, 0x5e, 0x9d, 0x44, 0x13, 0xfc, 0xae, 0x30, 0x9d, 0x23, 0x88, 0xdb,
- 0x44, 0x61, 0x12, 0x8d, 0xfe, 0x3d, 0xe1, 0x75, 0x01, 0x29, 0x3e, 0x03, 0xe9, 0x20, 0xd9, 0x44,
- 0xe3, 0x7f, 0x9f, 0xe3, 0xdb, 0x18, 0xe2, 0x81, 0x50, 0xb2, 0x8b, 0xa6, 0xf8, 0x03, 0xe1, 0x81,
- 0x10, 0x8a, 0x2c, 0xa3, 0xee, 0x02, 0x26, 0x9a, 0xe9, 0x0f, 0xc5, 0x32, 0xea, 0xaa, 0x5f, 0xc8,
- 0x6c, 0xd2, 0x3d, 0x3f, 0x9a, 0xe2, 0x8f, 0xc4, 0x6c, 0x52, 0x7d, 0x62, 0x46, 0x77, 0x45, 0x10,
- 0xcd, 0xf1, 0xc7, 0xc2, 0x8c, 0xae, 0x82, 0xa0, 0xb8, 0x0e, 0xa8, 0xb7, 0x1a, 0x88, 0xe6, 0xfb,
- 0x1c, 0xe7, 0x1b, 0xef, 0x29, 0x06, 0x8a, 0x97, 0xe0, 0x50, 0xff, 0x4a, 0x20, 0x9a, 0xf5, 0xf3,
- 0x77, 0xba, 0xce, 0x6e, 0xe1, 0x42, 0xa0, 0xb8, 0xd9, 0x4e, 0x29, 0xe1, 0x2a, 0x20, 0x9a, 0xf6,
- 0xc5, 0x3b, 0x9d, 0x1b, 0x77, 0xb8, 0x08, 0x28, 0x2e, 0x00, 0xb4, 0x13, 0x70, 0x34, 0xd7, 0x4b,
- 0x9c, 0x2b, 0x04, 0x22, 0x4b, 0x83, 0xe7, 0xdf, 0x68, 0xfc, 0x17, 0xc4, 0xd2, 0xe0, 0x08, 0xb2,
- 0x34, 0x44, 0xea, 0x8d, 0x46, 0xbf, 0x2c, 0x96, 0x86, 0x80, 0x90, 0xc8, 0x0e, 0x65, 0xb7, 0x68,
- 0x86, 0x2f, 0x8a, 0xc8, 0x0e, 0xa1, 0x8a, 0xab, 0x30, 0xde, 0x93, 0x10, 0xa3, 0xa9, 0xbe, 0xc4,
- 0xa9, 0xe4, 0xee, 0x7c, 0x18, 0x4e, 0x5e, 0x3c, 0x19, 0x46, 0xb3, 0xfd, 0x79, 0x57, 0xf2, 0xe2,
- 0xb9, 0xb0, 0x78, 0x1e, 0x52, 0x56, 0xd3, 0x34, 0xc9, 0xe2, 0x41, 0xf7, 0xfe, 0xc0, 0x2e, 0xff,
- 0x93, 0x77, 0xb9, 0x77, 0x04, 0xa0, 0x78, 0x0a, 0x92, 0xb8, 0xb1, 0x8d, 0x6b, 0x51, 0xc8, 0xff,
- 0x78, 0x57, 0x6c, 0x98, 0x44, 0xbb, 0xf8, 0x0c, 0x00, 0xbb, 0x1a, 0xa1, 0xaf, 0xfd, 0x22, 0xb0,
- 0xff, 0xf9, 0x2e, 0xff, 0xf4, 0xa5, 0x0d, 0x69, 0x13, 0xb0, 0x0f, 0x69, 0xee, 0x4d, 0xf0, 0x56,
- 0x27, 0x01, 0x9d, 0x91, 0x73, 0x30, 0x72, 0xc5, 0xb3, 0x2d, 0x5f, 0xab, 0x47, 0xa1, 0xff, 0x8b,
- 0xa3, 0x85, 0x3e, 0x71, 0x58, 0xc3, 0x76, 0xb1, 0xaf, 0xd5, 0xbd, 0x28, 0xec, 0x7f, 0x73, 0x6c,
- 0x00, 0x20, 0x60, 0x5d, 0xf3, 0xfc, 0x41, 0xc6, 0xfd, 0x53, 0x01, 0x16, 0x00, 0x62, 0x34, 0xf9,
- 0x7d, 0x15, 0xb7, 0xa2, 0xb0, 0x6f, 0x0b, 0xa3, 0xb9, 0x7e, 0xf1, 0xa3, 0x90, 0x26, 0x3f, 0xd9,
- 0xf7, 0x6c, 0x11, 0xe0, 0xff, 0xe1, 0xe0, 0x36, 0x82, 0xf4, 0xec, 0xf9, 0x35, 0xdf, 0x88, 0x76,
- 0xf6, 0xff, 0xf2, 0x99, 0x16, 0xfa, 0xc5, 0x05, 0xc8, 0x78, 0x7e, 0xad, 0xd6, 0xe4, 0xf5, 0x69,
- 0x04, 0xfc, 0xff, 0xde, 0x0d, 0xae, 0x2c, 0x02, 0x0c, 0x99, 0xed, 0xeb, 0x57, 0x7d, 0xc7, 0xa6,
- 0xaf, 0x39, 0xa2, 0x18, 0xee, 0x70, 0x86, 0x10, 0xa4, 0x54, 0xee, 0x7f, 0x7d, 0x0b, 0xcb, 0xf6,
- 0xb2, 0xcd, 0x2e, 0x6e, 0x9f, 0x9b, 0x8d, 0xbe, 0x81, 0x85, 0x6f, 0x8e, 0xc1, 0xb4, 0x6e, 0x37,
- 0xb6, 0x6d, 0xef, 0x58, 0xb0, 0x1d, 0x1f, 0x13, 0xb3, 0xc3, 0xaf, 0x66, 0x83, 0xd9, 0x9a, 0x3a,
- 0xd8, 0x9d, 0xee, 0xec, 0x4f, 0x46, 0x21, 0xb5, 0xa8, 0x79, 0xbe, 0x76, 0x5d, 0x6b, 0xa1, 0x47,
- 0x20, 0x55, 0xb1, 0xfc, 0x13, 0xc7, 0xd7, 0x7d, 0x97, 0xbe, 0x96, 0x8c, 0x97, 0xd2, 0x77, 0x6f,
- 0x4d, 0x27, 0x0d, 0x22, 0x53, 0x82, 0x26, 0x74, 0x14, 0x92, 0xf4, 0x37, 0xbd, 0xd9, 0x8e, 0x97,
- 0x46, 0x5f, 0xbd, 0x35, 0x3d, 0xd4, 0xd6, 0x63, 0x6d, 0xe8, 0x32, 0x64, 0xaa, 0xad, 0x2d, 0xc3,
- 0xf2, 0x4f, 0x9f, 0x24, 0x74, 0xc4, 0x3b, 0x89, 0xd2, 0x99, 0xbb, 0xb7, 0xa6, 0x4f, 0xec, 0x6b,
- 0x20, 0x29, 0x2b, 0xda, 0x03, 0x13, 0x68, 0xfa, 0xd9, 0x70, 0x98, 0x0b, 0x5d, 0x82, 0x94, 0x78,
- 0x64, 0x6f, 0x88, 0x4a, 0xe7, 0xb9, 0x09, 0xf7, 0xc5, 0x1d, 0x90, 0xa1, 0x5f, 0x82, 0x6c, 0xb5,
- 0x75, 0xc1, 0xb4, 0x35, 0xee, 0x83, 0xe4, 0x8c, 0x34, 0x17, 0x2b, 0x9d, 0xbd, 0x7b, 0x6b, 0xfa,
- 0xe4, 0xc0, 0xc4, 0x1c, 0x4e, 0x99, 0x3b, 0xd8, 0xd0, 0x73, 0x90, 0x0e, 0x9e, 0xe9, 0x3b, 0xa8,
- 0x58, 0xe9, 0x23, 0xdc, 0xee, 0xfb, 0xa3, 0x6f, 0xd3, 0x85, 0x2c, 0x67, 0xee, 0x1e, 0x99, 0x91,
- 0xe6, 0xa4, 0xfb, 0xb1, 0x9c, 0xfb, 0xa4, 0x83, 0x2d, 0x64, 0xf9, 0xe9, 0x93, 0xf4, 0xa5, 0x97,
- 0x74, 0xbf, 0x96, 0x73, 0xfa, 0x36, 0x1d, 0xba, 0x08, 0x23, 0xd5, 0x56, 0xa9, 0xe5, 0x63, 0x8f,
- 0x7e, 0x8d, 0x96, 0x2d, 0x3d, 0x75, 0xf7, 0xd6, 0xf4, 0x87, 0x06, 0x64, 0xa5, 0x38, 0x45, 0x10,
- 0xa0, 0x19, 0xc8, 0xac, 0xda, 0x6e, 0x43, 0x33, 0x19, 0x1f, 0xb0, 0x97, 0x78, 0x21, 0x11, 0xda,
- 0x22, 0x23, 0x61, 0xb3, 0xed, 0xd1, 0x7f, 0x64, 0xfa, 0x19, 0x62, 0xb2, 0xcd, 0x84, 0x0c, 0x48,
- 0x56, 0x5b, 0x55, 0xcd, 0xc9, 0x67, 0xe9, 0x1b, 0xa6, 0x87, 0xe6, 0x03, 0x84, 0x58, 0x5b, 0xf3,
- 0xb4, 0x9d, 0x7e, 0x8a, 0x53, 0x3a, 0x79, 0xf7, 0xd6, 0xf4, 0x53, 0x03, 0xf7, 0x58, 0xd5, 0x1c,
- 0xda, 0x1d, 0xeb, 0x01, 0x7d, 0x4b, 0x22, 0x0b, 0x8b, 0x5d, 0xd1, 0x93, 0x1e, 0x47, 0x69, 0x8f,
- 0x47, 0xfb, 0xf6, 0x18, 0x68, 0xb1, 0x7e, 0xad, 0x4f, 0xbf, 0x76, 0x80, 0x91, 0xb2, 0x93, 0x21,
- 0xe9, 0xfa, 0x37, 0x5f, 0xbb, 0xef, 0x45, 0x1b, 0x58, 0x80, 0x5e, 0x90, 0x60, 0xb4, 0xda, 0x5a,
- 0xe5, 0x29, 0x9c, 0x58, 0x9e, 0xe3, 0xff, 0xee, 0xd2, 0xcf, 0xf2, 0x90, 0x1e, 0xb3, 0xfd, 0xf4,
- 0xa7, 0x5f, 0x9b, 0x3e, 0x3e, 0xb0, 0x11, 0x74, 0x0b, 0xa2, 0x36, 0x74, 0xf6, 0x89, 0x3e, 0x43,
- 0xad, 0x28, 0x93, 0x72, 0xa0, 0x86, 0x6b, 0xc4, 0x8a, 0xb1, 0x7b, 0x58, 0x11, 0xd2, 0x63, 0x56,
- 0x14, 0x49, 0xd4, 0xdf, 0xbf, 0x25, 0x21, 0x3e, 0xb4, 0x06, 0xc3, 0xcc, 0xc3, 0xf4, 0x4b, 0xc8,
- 0xf4, 0x01, 0xc3, 0xb0, 0x3d, 0x39, 0x0a, 0xa7, 0x99, 0x3a, 0x0b, 0xd0, 0x8e, 0x31, 0x24, 0x43,
- 0xfc, 0x2a, 0x6e, 0xf1, 0xcf, 0x5d, 0xc9, 0x4f, 0x34, 0xd9, 0xfe, 0x1e, 0x5d, 0x9a, 0x4b, 0xf0,
- 0x8f, 0xcc, 0x8b, 0xb1, 0xb3, 0xd2, 0xd4, 0xd3, 0x20, 0x77, 0xc7, 0xca, 0x81, 0xf0, 0x0a, 0xa0,
- 0xde, 0x19, 0x0b, 0x33, 0x24, 0x19, 0xc3, 0xa3, 0x61, 0x86, 0xcc, 0x71, 0xb9, 0xed, 0xf3, 0x4b,
- 0x86, 0xe9, 0xd9, 0x56, 0x0f, 0x67, 0xb7, 0xff, 0x7f, 0x36, 0xce, 0xd9, 0x02, 0x0c, 0x33, 0x21,
- 0x19, 0x4b, 0x85, 0xa6, 0x0f, 0x9a, 0xe5, 0x14, 0xf6, 0x50, 0x5a, 0x79, 0xf5, 0x76, 0x61, 0xe8,
- 0x87, 0xb7, 0x0b, 0x43, 0xff, 0x7a, 0xbb, 0x30, 0xf4, 0xfa, 0xed, 0x82, 0xf4, 0xe6, 0xed, 0x82,
- 0xf4, 0xf6, 0xed, 0x82, 0xf4, 0xce, 0xed, 0x82, 0x74, 0x73, 0xaf, 0x20, 0x7d, 0x65, 0xaf, 0x20,
- 0x7d, 0x6d, 0xaf, 0x20, 0x7d, 0x67, 0xaf, 0x20, 0x7d, 0x7f, 0xaf, 0x20, 0xbd, 0xba, 0x57, 0x90,
- 0x7e, 0xb8, 0x57, 0x18, 0x7a, 0x7d, 0xaf, 0x20, 0xbd, 0xb9, 0x57, 0x18, 0x7a, 0x7b, 0xaf, 0x20,
- 0xbd, 0xb3, 0x57, 0x18, 0xba, 0xf9, 0xe3, 0xc2, 0xd0, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x5e,
- 0xff, 0x73, 0x3e, 0x52, 0x3a, 0x00, 0x00,
+ 0x04, 0x0d, 0x20, 0x37, 0x84, 0x18, 0xee, 0x40, 0xb0, 0xe6, 0x00, 0x31, 0xfb, 0xeb, 0x69, 0xc8,
+ 0x84, 0xea, 0x6a, 0x74, 0x18, 0xb2, 0x97, 0xb4, 0x2b, 0x9a, 0x2a, 0xce, 0x4a, 0xcc, 0x13, 0x19,
+ 0x22, 0x5b, 0xe7, 0xe7, 0xa5, 0x67, 0x60, 0x92, 0xaa, 0xd8, 0x4d, 0x1f, 0xbb, 0xaa, 0x6e, 0x6a,
+ 0x9e, 0x47, 0x9d, 0x96, 0xa2, 0xaa, 0x88, 0xb4, 0xad, 0x91, 0xa6, 0x45, 0xd1, 0x82, 0x4e, 0xc2,
+ 0x04, 0x45, 0x34, 0x9a, 0xa6, 0x6f, 0x38, 0x26, 0x56, 0xc9, 0xe9, 0xcd, 0xa3, 0x99, 0x24, 0xb0,
+ 0x6c, 0x9c, 0x68, 0x54, 0xb9, 0x02, 0xb1, 0xc8, 0x43, 0x4b, 0xf0, 0x10, 0x85, 0xd5, 0xb1, 0x85,
+ 0x5d, 0xcd, 0xc7, 0x2a, 0xfe, 0x74, 0x53, 0x33, 0x3d, 0x55, 0xb3, 0x6a, 0xea, 0xae, 0xe6, 0xed,
+ 0xe6, 0x27, 0x09, 0x41, 0x29, 0x96, 0x97, 0x94, 0x07, 0x88, 0xe2, 0x32, 0xd7, 0x2b, 0x53, 0xb5,
+ 0x05, 0xab, 0xf6, 0x71, 0xcd, 0xdb, 0x45, 0x45, 0x38, 0x44, 0x59, 0x3c, 0xdf, 0x35, 0xac, 0xba,
+ 0xaa, 0xef, 0x62, 0xfd, 0xb2, 0xda, 0xf4, 0x77, 0xce, 0xe4, 0x1f, 0x0c, 0xf7, 0x4f, 0x2d, 0xdc,
+ 0xa0, 0x3a, 0x8b, 0x44, 0x65, 0xcb, 0xdf, 0x39, 0x83, 0x36, 0x20, 0x4b, 0x26, 0xa3, 0x61, 0x5c,
+ 0xc3, 0xea, 0x8e, 0xed, 0xd2, 0xd4, 0x98, 0xeb, 0xb3, 0x35, 0x85, 0x3c, 0x38, 0xbf, 0xc6, 0x01,
+ 0x55, 0xbb, 0x86, 0x8b, 0xc9, 0x8d, 0xf5, 0x72, 0x79, 0x49, 0xc9, 0x08, 0x96, 0x73, 0xb6, 0x4b,
+ 0x02, 0xaa, 0x6e, 0x07, 0x0e, 0xce, 0xb0, 0x80, 0xaa, 0xdb, 0xc2, 0xbd, 0x27, 0x61, 0x42, 0xd7,
+ 0xd9, 0x98, 0x0d, 0x5d, 0xe5, 0x67, 0x2c, 0x2f, 0x2f, 0x77, 0x38, 0x4b, 0xd7, 0x97, 0x99, 0x02,
+ 0x8f, 0x71, 0x0f, 0x3d, 0x0b, 0xf7, 0xb5, 0x9d, 0x15, 0x06, 0x8e, 0xf7, 0x8c, 0xb2, 0x1b, 0x7a,
+ 0x12, 0x26, 0x9c, 0x56, 0x2f, 0x10, 0x75, 0xf4, 0xe8, 0xb4, 0xba, 0x61, 0xa7, 0x61, 0xd2, 0xd9,
+ 0x75, 0x7a, 0x71, 0x4f, 0x84, 0x71, 0xc8, 0xd9, 0x75, 0xba, 0x81, 0x8f, 0xd0, 0x03, 0xb7, 0x8b,
+ 0x75, 0xcd, 0xc7, 0xb5, 0xfc, 0xfd, 0x61, 0xf5, 0x50, 0x03, 0x3a, 0x0a, 0xb2, 0xae, 0xab, 0xd8,
+ 0xd2, 0xb6, 0x4d, 0xac, 0x6a, 0x2e, 0xb6, 0x34, 0x2f, 0x3f, 0x1d, 0x56, 0xce, 0xe9, 0x7a, 0x99,
+ 0xb6, 0x2e, 0xd0, 0x46, 0xf4, 0x04, 0x8c, 0xdb, 0xdb, 0x97, 0x74, 0x16, 0x92, 0xaa, 0xe3, 0xe2,
+ 0x1d, 0xe3, 0xa5, 0xfc, 0xc3, 0xd4, 0xbf, 0x63, 0xa4, 0x81, 0x06, 0xe4, 0x3a, 0x15, 0xa3, 0xc7,
+ 0x41, 0xd6, 0xbd, 0x5d, 0xcd, 0x75, 0xe8, 0x9e, 0xec, 0x39, 0x9a, 0x8e, 0xf3, 0x8f, 0x30, 0x55,
+ 0x26, 0x5f, 0x15, 0x62, 0xb2, 0x24, 0xbc, 0xab, 0xc6, 0x8e, 0x2f, 0x18, 0x1f, 0x63, 0x4b, 0x82,
+ 0xca, 0x38, 0xdb, 0x1c, 0xc8, 0xc4, 0x15, 0x1d, 0x1d, 0xcf, 0x51, 0xb5, 0x9c, 0xb3, 0xeb, 0x84,
+ 0xfb, 0x3d, 0x02, 0xa3, 0x44, 0xb3, 0xdd, 0xe9, 0xe3, 0xac, 0x20, 0x73, 0x76, 0x43, 0x3d, 0x9e,
+ 0x80, 0x43, 0x44, 0xa9, 0x81, 0x7d, 0xad, 0xa6, 0xf9, 0x5a, 0x48, 0xfb, 0x29, 0xaa, 0x4d, 0xfc,
+ 0x5e, 0xe5, 0x8d, 0x1d, 0x76, 0xba, 0xcd, 0xed, 0x56, 0x10, 0x59, 0x4f, 0x33, 0x3b, 0x89, 0x4c,
+ 0xc4, 0xd6, 0x07, 0x56, 0x74, 0xcf, 0x16, 0x21, 0x1b, 0x0e, 0x7c, 0x94, 0x06, 0x16, 0xfa, 0xb2,
+ 0x44, 0xaa, 0xa0, 0xc5, 0xb5, 0x25, 0x52, 0xbf, 0xbc, 0x58, 0x96, 0x63, 0xa4, 0x8e, 0x5a, 0xa9,
+ 0x6c, 0x96, 0x55, 0x65, 0x6b, 0x75, 0xb3, 0x52, 0x2d, 0xcb, 0xf1, 0x70, 0xc1, 0xfe, 0x83, 0x18,
+ 0xe4, 0x3a, 0xcf, 0x5e, 0xe8, 0xa3, 0x70, 0xbf, 0xb8, 0x28, 0xf1, 0xb0, 0xaf, 0x5e, 0x35, 0x5c,
+ 0xba, 0x16, 0x1b, 0x1a, 0xcb, 0x8b, 0x41, 0x34, 0x4c, 0x72, 0xad, 0x0d, 0xec, 0x5f, 0x30, 0x5c,
+ 0xb2, 0xd2, 0x1a, 0x9a, 0x8f, 0x56, 0x60, 0xda, 0xb2, 0x55, 0xcf, 0xd7, 0xac, 0x9a, 0xe6, 0xd6,
+ 0xd4, 0xf6, 0x15, 0x95, 0xaa, 0xe9, 0x3a, 0xf6, 0x3c, 0x9b, 0xe5, 0xc0, 0x80, 0xe5, 0x23, 0x96,
+ 0xbd, 0xc1, 0x95, 0xdb, 0xc9, 0x61, 0x81, 0xab, 0x76, 0x45, 0x6e, 0x7c, 0xbf, 0xc8, 0x7d, 0x10,
+ 0xd2, 0x0d, 0xcd, 0x51, 0xb1, 0xe5, 0xbb, 0x2d, 0x5a, 0x71, 0xa7, 0x94, 0x54, 0x43, 0x73, 0xca,
+ 0xe4, 0xf9, 0xc3, 0x39, 0xf8, 0xfc, 0x4b, 0x1c, 0xb2, 0xe1, 0xaa, 0x9b, 0x1c, 0x62, 0x74, 0x9a,
+ 0xa0, 0x24, 0xba, 0x85, 0x1d, 0xb9, 0x6b, 0x8d, 0x3e, 0xbf, 0x48, 0x32, 0x57, 0x71, 0x98, 0xd5,
+ 0xc2, 0x0a, 0x43, 0x92, 0xaa, 0x81, 0x84, 0x16, 0x66, 0xb5, 0x47, 0x4a, 0xe1, 0x4f, 0x68, 0x19,
+ 0x86, 0x2f, 0x79, 0x94, 0x7b, 0x98, 0x72, 0x3f, 0x7c, 0x77, 0xee, 0xf3, 0x1b, 0x94, 0x3c, 0x7d,
+ 0x7e, 0x43, 0x5d, 0x5d, 0x53, 0xaa, 0x0b, 0x2b, 0x0a, 0x87, 0xa3, 0x07, 0x20, 0x61, 0x6a, 0xd7,
+ 0x5a, 0x9d, 0x39, 0x8e, 0x8a, 0x06, 0x75, 0xfc, 0x03, 0x90, 0xb8, 0x8a, 0xb5, 0xcb, 0x9d, 0x99,
+ 0x85, 0x8a, 0x3e, 0xc0, 0xd0, 0x3f, 0x0a, 0x49, 0xea, 0x2f, 0x04, 0xc0, 0x3d, 0x26, 0x0f, 0xa1,
+ 0x14, 0x24, 0x16, 0xd7, 0x14, 0x12, 0xfe, 0x32, 0x64, 0x99, 0x54, 0x5d, 0xaf, 0x94, 0x17, 0xcb,
+ 0x72, 0x6c, 0xf6, 0x24, 0x0c, 0x33, 0x27, 0x90, 0xa5, 0x11, 0xb8, 0x41, 0x1e, 0xe2, 0x8f, 0x9c,
+ 0x43, 0x12, 0xad, 0x5b, 0xd5, 0x52, 0x59, 0x91, 0x63, 0xe1, 0xe9, 0xf5, 0x20, 0x1b, 0x2e, 0xb8,
+ 0x3f, 0x9c, 0x98, 0xfa, 0x9e, 0x04, 0x99, 0x50, 0x01, 0x4d, 0x2a, 0x1f, 0xcd, 0x34, 0xed, 0xab,
+ 0xaa, 0x66, 0x1a, 0x9a, 0xc7, 0x83, 0x02, 0xa8, 0x68, 0x81, 0x48, 0x06, 0x9d, 0xb4, 0x0f, 0xc5,
+ 0xf8, 0xd7, 0x24, 0x90, 0xbb, 0x6b, 0xd7, 0x2e, 0x03, 0xa5, 0x9f, 0xa9, 0x81, 0xaf, 0x4a, 0x90,
+ 0xeb, 0x2c, 0x58, 0xbb, 0xcc, 0x3b, 0xfc, 0x33, 0x35, 0xef, 0xcd, 0x18, 0x8c, 0x76, 0x94, 0xa9,
+ 0x83, 0x5a, 0xf7, 0x69, 0x18, 0x37, 0x6a, 0xb8, 0xe1, 0xd8, 0x3e, 0xb6, 0xf4, 0x96, 0x6a, 0xe2,
+ 0x2b, 0xd8, 0xcc, 0xcf, 0xd2, 0x8d, 0xe2, 0xe8, 0xdd, 0x0b, 0xe1, 0xf9, 0x4a, 0x1b, 0xb7, 0x42,
+ 0x60, 0xc5, 0x89, 0xca, 0x52, 0xb9, 0xba, 0xbe, 0xb6, 0x59, 0x5e, 0x5d, 0xbc, 0xa8, 0x6e, 0xad,
+ 0xfe, 0xff, 0xd5, 0xb5, 0x0b, 0xab, 0x8a, 0x6c, 0x74, 0xa9, 0x7d, 0x80, 0x4b, 0x7d, 0x1d, 0xe4,
+ 0x6e, 0xa3, 0xd0, 0xfd, 0xd0, 0xcf, 0x2c, 0x79, 0x08, 0x4d, 0xc0, 0xd8, 0xea, 0x9a, 0xba, 0x51,
+ 0x59, 0x2a, 0xab, 0xe5, 0x73, 0xe7, 0xca, 0x8b, 0x9b, 0x1b, 0xec, 0x6a, 0x23, 0xd0, 0xde, 0xec,
+ 0x5c, 0xd4, 0xaf, 0xc4, 0x61, 0xa2, 0x8f, 0x25, 0x68, 0x81, 0x1f, 0x4a, 0xd8, 0x39, 0xe9, 0xe9,
+ 0x41, 0xac, 0x9f, 0x27, 0x55, 0xc1, 0xba, 0xe6, 0xfa, 0xfc, 0x0c, 0xf3, 0x38, 0x10, 0x2f, 0x59,
+ 0xbe, 0xb1, 0x63, 0x60, 0x97, 0xdf, 0x04, 0xb1, 0x93, 0xca, 0x58, 0x5b, 0xce, 0x2e, 0x83, 0x9e,
+ 0x02, 0xe4, 0xd8, 0x9e, 0xe1, 0x1b, 0x57, 0xb0, 0x6a, 0x58, 0xe2, 0xda, 0x88, 0x9c, 0x5c, 0x12,
+ 0x8a, 0x2c, 0x5a, 0x2a, 0x96, 0x1f, 0x68, 0x5b, 0xb8, 0xae, 0x75, 0x69, 0x93, 0x0d, 0x3c, 0xae,
+ 0xc8, 0xa2, 0x25, 0xd0, 0x3e, 0x0c, 0xd9, 0x9a, 0xdd, 0x24, 0xe5, 0x1c, 0xd3, 0x23, 0xf9, 0x42,
+ 0x52, 0x32, 0x4c, 0x16, 0xa8, 0xf0, 0x42, 0xbd, 0x7d, 0x5f, 0x95, 0x55, 0x32, 0x4c, 0xc6, 0x54,
+ 0x1e, 0x83, 0x31, 0xad, 0x5e, 0x77, 0x09, 0xb9, 0x20, 0x62, 0x47, 0x8f, 0x5c, 0x20, 0xa6, 0x8a,
+ 0x53, 0xe7, 0x21, 0x25, 0xfc, 0x40, 0x52, 0x32, 0xf1, 0x84, 0xea, 0xb0, 0xf3, 0x74, 0x6c, 0x2e,
+ 0xad, 0xa4, 0x2c, 0xd1, 0x78, 0x18, 0xb2, 0x86, 0xa7, 0xb6, 0xaf, 0xdf, 0x63, 0x33, 0xb1, 0xb9,
+ 0x94, 0x92, 0x31, 0xbc, 0xe0, 0xea, 0x72, 0xf6, 0xf5, 0x18, 0xe4, 0x3a, 0x5f, 0x1f, 0xa0, 0x25,
+ 0x48, 0x99, 0xb6, 0xae, 0xd1, 0xd0, 0x62, 0xef, 0xae, 0xe6, 0x22, 0xde, 0x38, 0xcc, 0xaf, 0x70,
+ 0x7d, 0x25, 0x40, 0x4e, 0xfd, 0x93, 0x04, 0x29, 0x21, 0x46, 0x87, 0x20, 0xe1, 0x68, 0xfe, 0x2e,
+ 0xa5, 0x4b, 0x96, 0x62, 0xb2, 0xa4, 0xd0, 0x67, 0x22, 0xf7, 0x1c, 0xcd, 0xa2, 0x21, 0xc0, 0xe5,
+ 0xe4, 0x99, 0xcc, 0xab, 0x89, 0xb5, 0x1a, 0x3d, 0xd7, 0xd8, 0x8d, 0x06, 0xb6, 0x7c, 0x4f, 0xcc,
+ 0x2b, 0x97, 0x2f, 0x72, 0x31, 0x7a, 0x12, 0xc6, 0x7d, 0x57, 0x33, 0xcc, 0x0e, 0xdd, 0x04, 0xd5,
+ 0x95, 0x45, 0x43, 0xa0, 0x5c, 0x84, 0x07, 0x04, 0x6f, 0x0d, 0xfb, 0x9a, 0xbe, 0x8b, 0x6b, 0x6d,
+ 0xd0, 0x30, 0xbd, 0xbf, 0xb8, 0x9f, 0x2b, 0x2c, 0xf1, 0x76, 0x81, 0x9d, 0xfd, 0x91, 0x04, 0xe3,
+ 0xe2, 0x24, 0x56, 0x0b, 0x9c, 0x55, 0x05, 0xd0, 0x2c, 0xcb, 0xf6, 0xc3, 0xee, 0xea, 0x0d, 0xe5,
+ 0x1e, 0xdc, 0xfc, 0x42, 0x00, 0x52, 0x42, 0x04, 0x53, 0x0d, 0x80, 0x76, 0xcb, 0xbe, 0x6e, 0x9b,
+ 0x86, 0x0c, 0x7f, 0x37, 0x44, 0x5f, 0x30, 0xb2, 0xb3, 0x3b, 0x30, 0x11, 0x39, 0xb2, 0xa1, 0x49,
+ 0x48, 0x6e, 0xe3, 0xba, 0x61, 0xf1, 0x1b, 0x5f, 0xf6, 0x20, 0x6e, 0x58, 0x12, 0xc1, 0x0d, 0x4b,
+ 0xe9, 0x53, 0x30, 0xa1, 0xdb, 0x8d, 0x6e, 0x73, 0x4b, 0x72, 0xd7, 0xfd, 0x81, 0xf7, 0x71, 0xe9,
+ 0x45, 0x68, 0x97, 0x98, 0xef, 0x49, 0xd2, 0x97, 0x63, 0xf1, 0xe5, 0xf5, 0xd2, 0xd7, 0x62, 0x53,
+ 0xcb, 0x0c, 0xba, 0x2e, 0x46, 0xaa, 0xe0, 0x1d, 0x13, 0xeb, 0xc4, 0x7a, 0xf8, 0xca, 0x93, 0xf0,
+ 0x74, 0xdd, 0xf0, 0x77, 0x9b, 0xdb, 0xf3, 0xba, 0xdd, 0x38, 0x5a, 0xb7, 0xeb, 0x76, 0xfb, 0x9d,
+ 0x2a, 0x79, 0xa2, 0x0f, 0xf4, 0x17, 0x7f, 0xaf, 0x9a, 0x0e, 0xa4, 0x53, 0x91, 0x2f, 0x61, 0x8b,
+ 0xab, 0x30, 0xc1, 0x95, 0x55, 0xfa, 0x62, 0x87, 0x1d, 0x4f, 0xd0, 0x5d, 0x2f, 0xc7, 0xf2, 0xdf,
+ 0x78, 0x8b, 0xa6, 0x6b, 0x65, 0x9c, 0x43, 0x49, 0x1b, 0x3b, 0xc1, 0x14, 0x15, 0xb8, 0xaf, 0x83,
+ 0x8f, 0x2d, 0x4d, 0xec, 0x46, 0x30, 0xfe, 0x80, 0x33, 0x4e, 0x84, 0x18, 0x37, 0x38, 0xb4, 0xb8,
+ 0x08, 0xa3, 0x07, 0xe1, 0xfa, 0x07, 0xce, 0x95, 0xc5, 0x61, 0x92, 0x65, 0x18, 0xa3, 0x24, 0x7a,
+ 0xd3, 0xf3, 0xed, 0x06, 0xdd, 0xf7, 0xee, 0x4e, 0xf3, 0x8f, 0x6f, 0xb1, 0xb5, 0x92, 0x23, 0xb0,
+ 0xc5, 0x00, 0x55, 0x2c, 0x02, 0x7d, 0x97, 0x55, 0xc3, 0xba, 0x19, 0xc1, 0x70, 0x83, 0x1b, 0x12,
+ 0xe8, 0x17, 0x3f, 0x09, 0x93, 0xe4, 0x37, 0xdd, 0x96, 0xc2, 0x96, 0x44, 0xdf, 0xa4, 0xe5, 0x7f,
+ 0xf4, 0x32, 0x5b, 0x8e, 0x13, 0x01, 0x41, 0xc8, 0xa6, 0xd0, 0x2c, 0xd6, 0xb1, 0xef, 0x63, 0xd7,
+ 0x53, 0x35, 0xb3, 0x9f, 0x79, 0xa1, 0xab, 0x88, 0xfc, 0x17, 0xde, 0xe9, 0x9c, 0xc5, 0x65, 0x86,
+ 0x5c, 0x30, 0xcd, 0xe2, 0x16, 0xdc, 0xdf, 0x27, 0x2a, 0x06, 0xe0, 0x7c, 0x85, 0x73, 0x4e, 0xf6,
+ 0x44, 0x06, 0xa1, 0x5d, 0x07, 0x21, 0x0f, 0xe6, 0x72, 0x00, 0xce, 0x3f, 0xe4, 0x9c, 0x88, 0x63,
+ 0xc5, 0x94, 0x12, 0xc6, 0xf3, 0x30, 0x7e, 0x05, 0xbb, 0xdb, 0xb6, 0xc7, 0xaf, 0x7f, 0x06, 0xa0,
+ 0x7b, 0x95, 0xd3, 0x8d, 0x71, 0x20, 0xbd, 0x0f, 0x22, 0x5c, 0xcf, 0x42, 0x6a, 0x47, 0xd3, 0xf1,
+ 0x00, 0x14, 0x5f, 0xe4, 0x14, 0x23, 0x44, 0x9f, 0x40, 0x17, 0x20, 0x5b, 0xb7, 0x79, 0x66, 0x8a,
+ 0x86, 0xbf, 0xc6, 0xe1, 0x19, 0x81, 0xe1, 0x14, 0x8e, 0xed, 0x34, 0x4d, 0x92, 0xb6, 0xa2, 0x29,
+ 0xfe, 0x48, 0x50, 0x08, 0x0c, 0xa7, 0x38, 0x80, 0x5b, 0xff, 0x58, 0x50, 0x78, 0x21, 0x7f, 0x3e,
+ 0x0f, 0x19, 0xdb, 0x32, 0x5b, 0xb6, 0x35, 0x88, 0x11, 0x5f, 0xe2, 0x0c, 0xc0, 0x21, 0x84, 0xe0,
+ 0x2c, 0xa4, 0x07, 0x9d, 0x88, 0x3f, 0x7d, 0x47, 0x2c, 0x0f, 0x31, 0x03, 0xcb, 0x30, 0x26, 0x36,
+ 0x28, 0xc3, 0xb6, 0x06, 0xa0, 0xf8, 0x0a, 0xa7, 0xc8, 0x85, 0x60, 0x7c, 0x18, 0x3e, 0xf6, 0xfc,
+ 0x3a, 0x1e, 0x84, 0xe4, 0x75, 0x31, 0x0c, 0x0e, 0xe1, 0xae, 0xdc, 0xc6, 0x96, 0xbe, 0x3b, 0x18,
+ 0xc3, 0x57, 0x85, 0x2b, 0x05, 0x86, 0x50, 0x2c, 0xc2, 0x68, 0x43, 0x73, 0xbd, 0x5d, 0xcd, 0x1c,
+ 0x68, 0x3a, 0xfe, 0x8c, 0x73, 0x64, 0x03, 0x10, 0xf7, 0x48, 0xd3, 0x3a, 0x08, 0xcd, 0xd7, 0x84,
+ 0x47, 0x42, 0x30, 0xbe, 0xf4, 0x3c, 0x9f, 0xde, 0x95, 0x1d, 0x84, 0xed, 0xcf, 0xc5, 0xd2, 0x63,
+ 0xd8, 0x6a, 0x98, 0xf1, 0x2c, 0xa4, 0x3d, 0xe3, 0xda, 0x40, 0x34, 0x7f, 0x21, 0x66, 0x9a, 0x02,
+ 0x08, 0xf8, 0x22, 0x3c, 0xd0, 0x37, 0x4d, 0x0c, 0x40, 0xf6, 0x97, 0x9c, 0xec, 0x50, 0x9f, 0x54,
+ 0xc1, 0xb7, 0x84, 0x83, 0x52, 0xfe, 0x95, 0xd8, 0x12, 0x70, 0x17, 0xd7, 0x3a, 0x39, 0x2b, 0x78,
+ 0xda, 0xce, 0xc1, 0xbc, 0xf6, 0xd7, 0xc2, 0x6b, 0x0c, 0xdb, 0xe1, 0xb5, 0x4d, 0x38, 0xc4, 0x19,
+ 0x0f, 0x36, 0xaf, 0x5f, 0x17, 0x1b, 0x2b, 0x43, 0x6f, 0x75, 0xce, 0xee, 0xa7, 0x60, 0x2a, 0x70,
+ 0xa7, 0x28, 0x4a, 0x3d, 0xb5, 0xa1, 0x39, 0x03, 0x30, 0x7f, 0x83, 0x33, 0x8b, 0x1d, 0x3f, 0xa8,
+ 0x6a, 0xbd, 0xaa, 0xe6, 0x10, 0xf2, 0x17, 0x20, 0x2f, 0xc8, 0x9b, 0x96, 0x8b, 0x75, 0xbb, 0x6e,
+ 0x19, 0xd7, 0x70, 0x6d, 0x00, 0xea, 0xbf, 0xe9, 0x9a, 0xaa, 0xad, 0x10, 0x9c, 0x30, 0x57, 0x40,
+ 0x0e, 0x6a, 0x15, 0xd5, 0x68, 0x38, 0xb6, 0xeb, 0x47, 0x30, 0xfe, 0xad, 0x98, 0xa9, 0x00, 0x57,
+ 0xa1, 0xb0, 0x62, 0x19, 0x72, 0xf4, 0x71, 0xd0, 0x90, 0xfc, 0x26, 0x27, 0x1a, 0x6d, 0xa3, 0xf8,
+ 0xc6, 0xa1, 0xdb, 0x0d, 0x47, 0x73, 0x07, 0xd9, 0xff, 0xbe, 0x25, 0x36, 0x0e, 0x0e, 0xe1, 0x1b,
+ 0x87, 0xdf, 0x72, 0x30, 0xc9, 0xf6, 0x03, 0x30, 0x7c, 0x5b, 0x6c, 0x1c, 0x02, 0xc3, 0x29, 0x44,
+ 0xc1, 0x30, 0x00, 0xc5, 0xdf, 0x09, 0x0a, 0x81, 0x21, 0x14, 0x9f, 0x68, 0x27, 0x5a, 0x17, 0xd7,
+ 0x0d, 0xcf, 0x77, 0x59, 0x29, 0x7c, 0x77, 0xaa, 0xef, 0xbc, 0xd3, 0x59, 0x84, 0x29, 0x21, 0x28,
+ 0xd9, 0x89, 0xf8, 0x15, 0x2a, 0x3d, 0x29, 0x45, 0x1b, 0xf6, 0x5d, 0xb1, 0x13, 0x85, 0x60, 0xc4,
+ 0xb6, 0x50, 0x85, 0x48, 0xdc, 0xae, 0x93, 0xf3, 0xc1, 0x00, 0x74, 0xdf, 0xeb, 0x32, 0x6e, 0x43,
+ 0x60, 0x09, 0x67, 0xa8, 0xfe, 0x69, 0x5a, 0x97, 0x71, 0x6b, 0xa0, 0xe8, 0xfc, 0xfb, 0xae, 0xfa,
+ 0x67, 0x8b, 0x21, 0xd9, 0x1e, 0x32, 0xd6, 0x55, 0x4f, 0xa1, 0xa8, 0xaf, 0x80, 0xf2, 0xbf, 0x78,
+ 0x9b, 0x8f, 0xb7, 0xb3, 0x9c, 0x2a, 0xae, 0x90, 0x20, 0xef, 0x2c, 0x7a, 0xa2, 0xc9, 0x5e, 0xbe,
+ 0x1d, 0xc4, 0x79, 0x47, 0xcd, 0x53, 0x3c, 0x07, 0xa3, 0x1d, 0x05, 0x4f, 0x34, 0xd5, 0x2f, 0x71,
+ 0xaa, 0x6c, 0xb8, 0xde, 0x29, 0x9e, 0x84, 0x04, 0x29, 0x5e, 0xa2, 0xe1, 0xbf, 0xcc, 0xe1, 0x54,
+ 0xbd, 0xf8, 0x31, 0x48, 0x89, 0xa2, 0x25, 0x1a, 0xfa, 0x2b, 0x1c, 0x1a, 0x40, 0x08, 0x5c, 0x14,
+ 0x2c, 0xd1, 0xf0, 0xcf, 0x0a, 0xb8, 0x80, 0x10, 0xf8, 0xe0, 0x2e, 0xfc, 0xfe, 0xaf, 0x25, 0x78,
+ 0xd2, 0x11, 0xbe, 0x3b, 0x0b, 0x23, 0xbc, 0x52, 0x89, 0x46, 0x7f, 0x8e, 0x77, 0x2e, 0x10, 0xc5,
+ 0xd3, 0x90, 0x1c, 0xd0, 0xe1, 0xbf, 0xc1, 0xa1, 0x4c, 0xbf, 0xb8, 0x08, 0x99, 0x50, 0x75, 0x12,
+ 0x0d, 0xff, 0x4d, 0x0e, 0x0f, 0xa3, 0x88, 0xe9, 0xbc, 0x3a, 0x89, 0x26, 0xf8, 0x2d, 0x61, 0x3a,
+ 0x47, 0x10, 0xb7, 0x89, 0xc2, 0x24, 0x1a, 0xfd, 0xdb, 0xc2, 0xeb, 0x02, 0x52, 0x7c, 0x1e, 0xd2,
+ 0x41, 0xb2, 0x89, 0xc6, 0xff, 0x0e, 0xc7, 0xb7, 0x31, 0xc4, 0x03, 0xa1, 0x64, 0x17, 0x4d, 0xf1,
+ 0xbb, 0xc2, 0x03, 0x21, 0x14, 0x59, 0x46, 0xdd, 0x05, 0x4c, 0x34, 0xd3, 0xef, 0x89, 0x65, 0xd4,
+ 0x55, 0xbf, 0x90, 0xd9, 0xa4, 0x7b, 0x7e, 0x34, 0xc5, 0xef, 0x8b, 0xd9, 0xa4, 0xfa, 0xc4, 0x8c,
+ 0xee, 0x8a, 0x20, 0x9a, 0xe3, 0x0f, 0x84, 0x19, 0x5d, 0x05, 0x41, 0x71, 0x1d, 0x50, 0x6f, 0x35,
+ 0x10, 0xcd, 0xf7, 0x79, 0xce, 0x37, 0xde, 0x53, 0x0c, 0x14, 0x2f, 0xc0, 0xa1, 0xfe, 0x95, 0x40,
+ 0x34, 0xeb, 0x17, 0x6e, 0x77, 0x9d, 0xdd, 0xc2, 0x85, 0x40, 0x71, 0xb3, 0x9d, 0x52, 0xc2, 0x55,
+ 0x40, 0x34, 0xed, 0x2b, 0xb7, 0x3b, 0x37, 0xee, 0x70, 0x11, 0x50, 0x5c, 0x00, 0x68, 0x27, 0xe0,
+ 0x68, 0xae, 0x57, 0x39, 0x57, 0x08, 0x44, 0x96, 0x06, 0xcf, 0xbf, 0xd1, 0xf8, 0x2f, 0x8a, 0xa5,
+ 0xc1, 0x11, 0x64, 0x69, 0x88, 0xd4, 0x1b, 0x8d, 0x7e, 0x4d, 0x2c, 0x0d, 0x01, 0x21, 0x91, 0x1d,
+ 0xca, 0x6e, 0xd1, 0x0c, 0x5f, 0x12, 0x91, 0x1d, 0x42, 0x15, 0x57, 0x61, 0xbc, 0x27, 0x21, 0x46,
+ 0x53, 0x7d, 0x99, 0x53, 0xc9, 0xdd, 0xf9, 0x30, 0x9c, 0xbc, 0x78, 0x32, 0x8c, 0x66, 0xfb, 0x93,
+ 0xae, 0xe4, 0xc5, 0x73, 0x61, 0xf1, 0x2c, 0xa4, 0xac, 0xa6, 0x69, 0x92, 0xc5, 0x83, 0xee, 0xfe,
+ 0xe5, 0x5e, 0xfe, 0x27, 0xef, 0x73, 0xef, 0x08, 0x40, 0xf1, 0x24, 0x24, 0x71, 0x63, 0x1b, 0xd7,
+ 0xa2, 0x90, 0xff, 0xf6, 0xbe, 0xd8, 0x30, 0x89, 0x76, 0xf1, 0x79, 0x00, 0x76, 0x35, 0x42, 0x5f,
+ 0xfb, 0x45, 0x60, 0xff, 0xfd, 0x7d, 0xfe, 0x4d, 0x4d, 0x1b, 0xd2, 0x26, 0x60, 0x5f, 0xe8, 0xdc,
+ 0x9d, 0xe0, 0x9d, 0x4e, 0x02, 0x3a, 0x23, 0xcf, 0xc2, 0xc8, 0x25, 0xcf, 0xb6, 0x7c, 0xad, 0x1e,
+ 0x85, 0xfe, 0x0f, 0x8e, 0x16, 0xfa, 0xc4, 0x61, 0x0d, 0xdb, 0xc5, 0xbe, 0x56, 0xf7, 0xa2, 0xb0,
+ 0xff, 0xc9, 0xb1, 0x01, 0x80, 0x80, 0x75, 0xcd, 0xf3, 0x07, 0x19, 0xf7, 0x7f, 0x09, 0xb0, 0x00,
+ 0x10, 0xa3, 0xc9, 0xef, 0xcb, 0xb8, 0x15, 0x85, 0x7d, 0x57, 0x18, 0xcd, 0xf5, 0x8b, 0x1f, 0x83,
+ 0x34, 0xf9, 0xc9, 0x3e, 0x94, 0x8b, 0x00, 0xff, 0x37, 0x07, 0xb7, 0x11, 0xa4, 0x67, 0xcf, 0xaf,
+ 0xf9, 0x46, 0xb4, 0xb3, 0xff, 0x87, 0xcf, 0xb4, 0xd0, 0x2f, 0x2e, 0x40, 0xc6, 0xf3, 0x6b, 0xb5,
+ 0x26, 0xaf, 0x4f, 0x23, 0xe0, 0xff, 0xfb, 0x7e, 0x70, 0x65, 0x11, 0x60, 0xc8, 0x6c, 0x5f, 0xbd,
+ 0xec, 0x3b, 0x36, 0x7d, 0xcd, 0x11, 0xc5, 0x70, 0x9b, 0x33, 0x84, 0x20, 0xa5, 0x72, 0xff, 0xeb,
+ 0x5b, 0x58, 0xb6, 0x97, 0x6d, 0x76, 0x71, 0xfb, 0xe2, 0x6c, 0xf4, 0x0d, 0x2c, 0x7c, 0x73, 0x0c,
+ 0xa6, 0x75, 0xbb, 0xb1, 0x6d, 0x7b, 0x47, 0x83, 0xed, 0xf8, 0xa8, 0x98, 0x1d, 0x7e, 0x35, 0x1b,
+ 0xcc, 0xd6, 0xd4, 0xc1, 0xee, 0x74, 0x67, 0x7f, 0x32, 0x0a, 0xa9, 0x45, 0xcd, 0xf3, 0xb5, 0xab,
+ 0x5a, 0x0b, 0x3d, 0x02, 0xa9, 0x8a, 0xe5, 0x1f, 0x3f, 0xb6, 0xee, 0xbb, 0xf4, 0xb5, 0x64, 0xbc,
+ 0x94, 0xbe, 0x73, 0x73, 0x3a, 0x69, 0x10, 0x99, 0x12, 0x34, 0xa1, 0x23, 0x90, 0xa4, 0xbf, 0xe9,
+ 0xcd, 0x76, 0xbc, 0x34, 0x7a, 0xe3, 0xe6, 0xf4, 0x50, 0x5b, 0x8f, 0xb5, 0xa1, 0x8b, 0x90, 0xa9,
+ 0xb6, 0xb6, 0x0c, 0xcb, 0x3f, 0x75, 0x82, 0xd0, 0x11, 0xef, 0x24, 0x4a, 0xa7, 0xef, 0xdc, 0x9c,
+ 0x3e, 0xbe, 0xaf, 0x81, 0xa4, 0xac, 0x68, 0x0f, 0x4c, 0xa0, 0xe9, 0xf7, 0xc8, 0x61, 0x2e, 0x74,
+ 0x01, 0x52, 0xe2, 0x91, 0xbd, 0x21, 0x2a, 0x9d, 0xe5, 0x26, 0xdc, 0x13, 0x77, 0x40, 0x86, 0x7e,
+ 0x0e, 0xb2, 0xd5, 0xd6, 0x39, 0xd3, 0xd6, 0xb8, 0x0f, 0x92, 0x33, 0xd2, 0x5c, 0xac, 0x74, 0xe6,
+ 0xce, 0xcd, 0xe9, 0x13, 0x03, 0x13, 0x73, 0x38, 0x65, 0xee, 0x60, 0x43, 0x2f, 0x42, 0x3a, 0x78,
+ 0xa6, 0xef, 0xa0, 0x62, 0xa5, 0x8f, 0x72, 0xbb, 0xef, 0x8d, 0xbe, 0x4d, 0x17, 0xb2, 0x9c, 0xb9,
+ 0x7b, 0x64, 0x46, 0x9a, 0x93, 0xee, 0xc5, 0x72, 0xee, 0x93, 0x0e, 0xb6, 0x90, 0xe5, 0xa7, 0x4e,
+ 0xd0, 0x97, 0x5e, 0xd2, 0xbd, 0x5a, 0xce, 0xe9, 0xdb, 0x74, 0xe8, 0x3c, 0x8c, 0x54, 0x5b, 0xa5,
+ 0x96, 0x8f, 0x3d, 0xfa, 0x99, 0x5b, 0xb6, 0xf4, 0xcc, 0x9d, 0x9b, 0xd3, 0x4f, 0x0d, 0xc8, 0x4a,
+ 0x71, 0x8a, 0x20, 0x40, 0x33, 0x90, 0x59, 0xb5, 0xdd, 0x86, 0x66, 0x32, 0x3e, 0x60, 0x2f, 0xf1,
+ 0x42, 0x22, 0xb4, 0x45, 0x46, 0xc2, 0x66, 0xdb, 0xa3, 0xff, 0x21, 0xf5, 0x53, 0xc4, 0x64, 0x9b,
+ 0x09, 0x19, 0x90, 0xac, 0xb6, 0xaa, 0x9a, 0x93, 0xcf, 0xd2, 0x37, 0x4c, 0x0f, 0xcd, 0x07, 0x08,
+ 0xb1, 0xb6, 0xe6, 0x69, 0x3b, 0xfd, 0x14, 0xa7, 0x74, 0xe2, 0xce, 0xcd, 0xe9, 0x67, 0x06, 0xee,
+ 0xb1, 0xaa, 0x39, 0xb4, 0x3b, 0xd6, 0x03, 0xfa, 0x96, 0x44, 0x16, 0x16, 0xbb, 0xa2, 0x27, 0x3d,
+ 0x8e, 0xd2, 0x1e, 0x8f, 0xf4, 0xed, 0x31, 0xd0, 0x62, 0xfd, 0x5a, 0x9f, 0x79, 0xe3, 0x00, 0x23,
+ 0x65, 0x27, 0x43, 0xd2, 0xf5, 0xaf, 0xbe, 0x71, 0xcf, 0x8b, 0x36, 0xb0, 0x00, 0xbd, 0x2c, 0xc1,
+ 0x68, 0xb5, 0xb5, 0xca, 0x53, 0x38, 0xb1, 0x3c, 0xc7, 0xff, 0x8f, 0xa6, 0x9f, 0xe5, 0x21, 0x3d,
+ 0x66, 0xfb, 0xa9, 0xcf, 0xbc, 0x31, 0x7d, 0x6c, 0x60, 0x23, 0xe8, 0x16, 0x44, 0x6d, 0xe8, 0xec,
+ 0x13, 0x7d, 0x96, 0x5a, 0x51, 0x26, 0xe5, 0x40, 0x0d, 0xd7, 0x88, 0x15, 0x63, 0x77, 0xb1, 0x22,
+ 0xa4, 0xc7, 0xac, 0x28, 0x92, 0xa8, 0xbf, 0x77, 0x4b, 0x42, 0x7c, 0x68, 0x0d, 0x86, 0x99, 0x87,
+ 0xe9, 0x27, 0x96, 0xe9, 0x03, 0x86, 0x61, 0x7b, 0x72, 0x14, 0x4e, 0x33, 0x75, 0x06, 0xa0, 0x1d,
+ 0x63, 0x48, 0x86, 0xf8, 0x65, 0xdc, 0xe2, 0xdf, 0xd1, 0x92, 0x9f, 0x68, 0xb2, 0xfd, 0xa1, 0xbb,
+ 0x34, 0x97, 0xe0, 0x5f, 0xaf, 0x17, 0x63, 0x67, 0xa4, 0xa9, 0xe7, 0x40, 0xee, 0x8e, 0x95, 0x03,
+ 0xe1, 0x15, 0x40, 0xbd, 0x33, 0x16, 0x66, 0x48, 0x32, 0x86, 0x47, 0xc3, 0x0c, 0x99, 0x63, 0x72,
+ 0xdb, 0xe7, 0x17, 0x0c, 0xd3, 0xb3, 0xad, 0x1e, 0xce, 0x6e, 0xff, 0xff, 0x74, 0x9c, 0xb3, 0x05,
+ 0x18, 0x66, 0x42, 0x32, 0x96, 0x0a, 0x4d, 0x1f, 0x34, 0xcb, 0x29, 0xec, 0xa1, 0xb4, 0x72, 0xe3,
+ 0x56, 0x61, 0xe8, 0x87, 0xb7, 0x0a, 0x43, 0xff, 0x7c, 0xab, 0x30, 0xf4, 0xe6, 0xad, 0x82, 0xf4,
+ 0xf6, 0xad, 0x82, 0xf4, 0xee, 0xad, 0x82, 0xf4, 0xde, 0xad, 0x82, 0x74, 0x7d, 0xaf, 0x20, 0x7d,
+ 0x75, 0xaf, 0x20, 0x7d, 0x7d, 0xaf, 0x20, 0x7d, 0x67, 0xaf, 0x20, 0x7d, 0x7f, 0xaf, 0x20, 0xdd,
+ 0xd8, 0x2b, 0x48, 0x3f, 0xdc, 0x2b, 0x0c, 0xbd, 0xb9, 0x57, 0x90, 0xde, 0xde, 0x2b, 0x0c, 0xbd,
+ 0xbb, 0x57, 0x90, 0xde, 0xdb, 0x2b, 0x0c, 0x5d, 0xff, 0x71, 0x61, 0xe8, 0xff, 0x02, 0x00, 0x00,
+ 0xff, 0xff, 0x20, 0xb5, 0xdc, 0x39, 0xab, 0x3a, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -1606,55 +1657,3 @@ func valueToStringCasttype(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
-
-func init() {
- proto.RegisterFile("combos/marshaler/casttype.proto", fileDescriptor_casttype_c89cc726fec17f61)
-}
-
-var fileDescriptor_casttype_c89cc726fec17f61 = []byte{
- // 698 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x4c,
- 0x18, 0xc7, 0x7d, 0x4d, 0xd3, 0x26, 0x97, 0xe6, 0x7d, 0xa3, 0x13, 0x83, 0x55, 0x89, 0xb3, 0xd5,
- 0xaa, 0xc8, 0x03, 0x24, 0x55, 0x1a, 0x95, 0xaa, 0x20, 0x06, 0x57, 0x45, 0x2a, 0xc2, 0x05, 0x19,
- 0xaa, 0x0a, 0xc4, 0x72, 0x69, 0x4d, 0x1a, 0xe1, 0xc4, 0x91, 0x7d, 0x01, 0x79, 0xab, 0xca, 0x80,
- 0xc4, 0x5f, 0xc2, 0xc8, 0x82, 0xc4, 0xc8, 0xd8, 0xb1, 0x23, 0x53, 0x5a, 0x9b, 0xa5, 0x6c, 0x1d,
- 0xab, 0x4c, 0xe8, 0xee, 0x9c, 0xd8, 0xfd, 0x01, 0x4a, 0xdc, 0xed, 0x9e, 0xbb, 0xe7, 0xf9, 0x3c,
- 0xdf, 0x7b, 0xee, 0xb9, 0x3b, 0xa8, 0xec, 0x38, 0xad, 0xba, 0xe3, 0x55, 0x5a, 0xc4, 0xf5, 0xf6,
- 0x88, 0x6d, 0xb9, 0x95, 0x1d, 0xe2, 0x51, 0xea, 0x77, 0xac, 0x72, 0xc7, 0x75, 0xa8, 0x83, 0x72,
- 0x03, 0x7b, 0xf6, 0x5e, 0xa3, 0x49, 0xf7, 0xba, 0xf5, 0xf2, 0x8e, 0xd3, 0xaa, 0x34, 0x9c, 0x86,
- 0x53, 0xe1, 0x0e, 0xf5, 0xee, 0x5b, 0x6e, 0x71, 0x83, 0x8f, 0x44, 0xe0, 0xdc, 0xef, 0x22, 0xcc,
- 0xad, 0x11, 0x8f, 0x92, 0x0f, 0xc4, 0x47, 0x0b, 0x30, 0xb7, 0xd1, 0xa6, 0x4b, 0xd5, 0xe7, 0xd4,
- 0x95, 0x81, 0x0a, 0xb4, 0x8c, 0x9e, 0xef, 0xf7, 0x94, 0x6c, 0x93, 0xcd, 0x99, 0xc3, 0x25, 0x34,
- 0x0f, 0xb3, 0x7c, 0x2c, 0x4f, 0x70, 0x9f, 0xe2, 0x61, 0x4f, 0x91, 0x62, 0x3f, 0xb1, 0x86, 0x5e,
- 0xc1, 0x82, 0xe1, 0x6f, 0x35, 0xdb, 0x74, 0xb9, 0xc6, 0x70, 0x19, 0x15, 0x68, 0x93, 0xfa, 0xfd,
- 0x7e, 0x4f, 0x59, 0xfa, 0xab, 0x40, 0x6a, 0x79, 0x34, 0xde, 0xd8, 0x20, 0xfa, 0xa5, 0xdf, 0xb1,
- 0xcc, 0x24, 0x0b, 0x6d, 0xc3, 0xdc, 0xc0, 0x94, 0x27, 0x39, 0xf7, 0x41, 0x24, 0x21, 0x15, 0x7b,
- 0x08, 0x43, 0x6f, 0xe0, 0x8c, 0xe1, 0x3f, 0xb6, 0x1d, 0x12, 0xd5, 0x20, 0xab, 0x02, 0x6d, 0x42,
- 0x5f, 0xe9, 0xf7, 0x94, 0xda, 0xc8, 0xe0, 0x28, 0x9c, 0x93, 0x2f, 0xd0, 0xd0, 0x6b, 0x98, 0x1f,
- 0xda, 0xf2, 0x14, 0x47, 0x3f, 0x8c, 0x74, 0xa7, 0xc3, 0xc7, 0xb8, 0x84, 0x72, 0x51, 0xee, 0x69,
- 0x15, 0x68, 0x20, 0x8d, 0xf2, 0xa8, 0x26, 0x17, 0x68, 0x09, 0xe5, 0xcb, 0x35, 0x39, 0xc7, 0xd1,
- 0x29, 0x95, 0x47, 0xf8, 0x18, 0x87, 0x9e, 0xc0, 0x69, 0xc3, 0xd7, 0x7d, 0x6a, 0x79, 0x72, 0x5e,
- 0x05, 0xda, 0x8c, 0xbe, 0xd8, 0xef, 0x29, 0x77, 0x47, 0xa4, 0xf2, 0x38, 0x73, 0x00, 0x40, 0x2a,
- 0x2c, 0x6c, 0x3a, 0x6e, 0x8b, 0xd8, 0x82, 0x07, 0x19, 0xcf, 0x4c, 0x4e, 0xa1, 0x2d, 0xb6, 0x13,
- 0x71, 0xda, 0x9e, 0x5c, 0x50, 0x33, 0x37, 0xe9, 0xc9, 0x98, 0x84, 0x9a, 0x30, 0x6b, 0xf8, 0x06,
- 0xe9, 0xc8, 0x33, 0x6a, 0x46, 0x2b, 0x54, 0x6f, 0x97, 0x87, 0x11, 0x83, 0xbb, 0x55, 0xe6, 0xeb,
- 0xeb, 0x6d, 0xea, 0xfa, 0x7a, 0xad, 0xdf, 0x53, 0x16, 0x47, 0xce, 0x68, 0x90, 0x0e, 0x4f, 0x27,
- 0x32, 0xa0, 0x6f, 0x80, 0x5d, 0xac, 0xb5, 0xae, 0x47, 0x9d, 0x16, 0xcb, 0x58, 0xe4, 0x19, 0xe7,
- 0xaf, 0xcd, 0x38, 0xf4, 0x12, 0x79, 0xdb, 0x07, 0xc7, 0x63, 0xec, 0xf4, 0x05, 0x75, 0x9b, 0xed,
- 0x06, 0x4b, 0xfd, 0xf9, 0x38, 0xf5, 0xa5, 0x1d, 0x2a, 0x40, 0x1f, 0x01, 0x2c, 0x1a, 0xfe, 0x66,
- 0xd7, 0xb6, 0x49, 0xdd, 0xb6, 0x98, 0xf2, 0xff, 0xb8, 0xf2, 0x85, 0x6b, 0x95, 0x27, 0xfc, 0x84,
- 0xf6, 0xe5, 0x83, 0x63, 0xa5, 0x3a, 0xb2, 0x08, 0xfe, 0x04, 0x71, 0x0d, 0x17, 0x73, 0xa2, 0x4f,
- 0x5c, 0xc5, 0x7a, 0xab, 0x6e, 0xed, 0xee, 0x5a, 0xbb, 0x4c, 0xc5, 0xff, 0xff, 0x50, 0x91, 0xf0,
- 0x13, 0x2a, 0x56, 0x59, 0xd7, 0xa7, 0x57, 0x92, 0xe0, 0xa1, 0x67, 0x70, 0x4a, 0x54, 0x58, 0x2e,
- 0xa9, 0x40, 0xcb, 0x8f, 0xd9, 0x86, 0xf1, 0xe1, 0x98, 0x11, 0x66, 0x76, 0x05, 0xc2, 0xb8, 0xc7,
- 0x50, 0x09, 0x66, 0xde, 0x59, 0x3e, 0x7f, 0xc5, 0xf3, 0x26, 0x1b, 0xa2, 0x5b, 0x30, 0xfb, 0x9e,
- 0xd8, 0x5d, 0x8b, 0xbf, 0xda, 0x93, 0xa6, 0x30, 0x56, 0x27, 0x56, 0xc0, 0xec, 0x23, 0x58, 0xba,
- 0xdc, 0x2b, 0x63, 0xc5, 0x9b, 0x10, 0x5d, 0x3d, 0xb1, 0x24, 0x21, 0x2b, 0x08, 0x77, 0x92, 0x84,
- 0x42, 0xb5, 0x14, 0xd7, 0x7c, 0xbb, 0x69, 0x7b, 0x4e, 0xfb, 0x0a, 0xf3, 0x72, 0xfd, 0x6f, 0xc6,
- 0x9c, 0xc3, 0x70, 0x4a, 0x4c, 0xb2, 0xbd, 0x6c, 0xf0, 0xef, 0x83, 0xff, 0x72, 0xa6, 0x30, 0xf4,
- 0xa7, 0x87, 0x01, 0x96, 0x8e, 0x02, 0x2c, 0xfd, 0x0c, 0xb0, 0x74, 0x12, 0x60, 0x70, 0x1a, 0x60,
- 0x70, 0x16, 0x60, 0x70, 0x1e, 0x60, 0xb0, 0x1f, 0x62, 0xf0, 0x25, 0xc4, 0xe0, 0x6b, 0x88, 0xc1,
- 0xf7, 0x10, 0x83, 0x1f, 0x21, 0x06, 0x87, 0x21, 0x06, 0x47, 0x21, 0x96, 0x4e, 0x42, 0x0c, 0x4e,
- 0x43, 0x2c, 0x9d, 0x85, 0x18, 0x9c, 0x87, 0x58, 0xda, 0xff, 0x85, 0xa5, 0x3f, 0x01, 0x00, 0x00,
- 0xff, 0xff, 0xec, 0xe2, 0x9e, 0x1c, 0xb4, 0x07, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.pb.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.pb.go
index c76f806ea4..c34e7316d0 100644
--- a/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.pb.go
@@ -3,22 +3,21 @@
package casttype
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -56,7 +55,7 @@ type Castaway struct {
func (m *Castaway) Reset() { *m = Castaway{} }
func (*Castaway) ProtoMessage() {}
func (*Castaway) Descriptor() ([]byte, []int) {
- return fileDescriptor_casttype_d04722a9b63e08e7, []int{0}
+ return fileDescriptor_ab4c77c492a233c4, []int{0}
}
func (m *Castaway) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Castaway.Unmarshal(m, b)
@@ -64,8 +63,8 @@ func (m *Castaway) XXX_Unmarshal(b []byte) error {
func (m *Castaway) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Castaway.Marshal(b, m, deterministic)
}
-func (dst *Castaway) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Castaway.Merge(dst, src)
+func (m *Castaway) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Castaway.Merge(m, src)
}
func (m *Castaway) XXX_Size() int {
return xxx_messageInfo_Castaway.Size(m)
@@ -86,7 +85,7 @@ type Wilson struct {
func (m *Wilson) Reset() { *m = Wilson{} }
func (*Wilson) ProtoMessage() {}
func (*Wilson) Descriptor() ([]byte, []int) {
- return fileDescriptor_casttype_d04722a9b63e08e7, []int{1}
+ return fileDescriptor_ab4c77c492a233c4, []int{1}
}
func (m *Wilson) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Wilson.Unmarshal(m, b)
@@ -94,8 +93,8 @@ func (m *Wilson) XXX_Unmarshal(b []byte) error {
func (m *Wilson) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Wilson.Marshal(b, m, deterministic)
}
-func (dst *Wilson) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Wilson.Merge(dst, src)
+func (m *Wilson) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Wilson.Merge(m, src)
}
func (m *Wilson) XXX_Size() int {
return xxx_messageInfo_Wilson.Size(m)
@@ -114,6 +113,57 @@ func init() {
proto.RegisterMapType((map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson)(nil), "casttype.Castaway.MyNullableMapEntry")
proto.RegisterType((*Wilson)(nil), "casttype.Wilson")
}
+
+func init() { proto.RegisterFile("combos/neither/casttype.proto", fileDescriptor_ab4c77c492a233c4) }
+
+var fileDescriptor_ab4c77c492a233c4 = []byte{
+ // 695 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x40,
+ 0x14, 0xc7, 0x7d, 0x4d, 0xd3, 0x26, 0x97, 0x06, 0xa2, 0x13, 0x83, 0x55, 0xa9, 0x67, 0xab, 0x55,
+ 0x91, 0x07, 0x48, 0xaa, 0x34, 0x2a, 0x55, 0x41, 0x0c, 0xae, 0x8a, 0x54, 0x84, 0x0b, 0x32, 0x54,
+ 0x15, 0x88, 0xc5, 0x69, 0x4d, 0x6a, 0xe1, 0xd8, 0x51, 0x7c, 0x01, 0x79, 0xab, 0xca, 0x80, 0xc4,
+ 0x5f, 0xc2, 0xc8, 0x82, 0xc4, 0xc8, 0xd8, 0xb1, 0x23, 0x53, 0x5a, 0x9b, 0xa5, 0x6c, 0x1d, 0xab,
+ 0x4c, 0xe8, 0xee, 0x1c, 0xdb, 0xfd, 0x01, 0x4a, 0xdd, 0xed, 0xde, 0xdd, 0x7b, 0x9f, 0xf7, 0xbd,
+ 0x77, 0xef, 0xee, 0xe0, 0xcc, 0xb6, 0xdb, 0x6e, 0xba, 0x5e, 0xcd, 0x31, 0x2d, 0xb2, 0x6b, 0x76,
+ 0x6b, 0xdb, 0x86, 0x47, 0x88, 0xdf, 0x31, 0xab, 0x9d, 0xae, 0x4b, 0x5c, 0x54, 0x18, 0xda, 0xd3,
+ 0xf7, 0x5b, 0x16, 0xd9, 0xed, 0x35, 0xab, 0xdb, 0x6e, 0xbb, 0xd6, 0x72, 0x5b, 0x6e, 0x8d, 0x39,
+ 0x34, 0x7b, 0xef, 0x98, 0xc5, 0x0c, 0x36, 0xe2, 0x81, 0xb3, 0x7f, 0xca, 0xb0, 0xb0, 0x6a, 0x78,
+ 0xc4, 0xf8, 0x68, 0xf8, 0x68, 0x1e, 0x16, 0xd6, 0x1d, 0xb2, 0x58, 0x7f, 0x41, 0xba, 0x22, 0x90,
+ 0x81, 0x92, 0x53, 0x8b, 0x83, 0xbe, 0x94, 0xb7, 0xe8, 0x9c, 0x1e, 0x2f, 0xa1, 0x39, 0x98, 0x67,
+ 0x63, 0x71, 0x8c, 0xf9, 0x94, 0x0f, 0xfa, 0x92, 0x90, 0xf8, 0xf1, 0x35, 0xf4, 0x1a, 0x96, 0x34,
+ 0x7f, 0xd3, 0x72, 0xc8, 0x52, 0x83, 0xe2, 0x72, 0x32, 0x50, 0xc6, 0xd5, 0x07, 0x83, 0xbe, 0xb4,
+ 0xf8, 0x4f, 0x81, 0xc4, 0xf4, 0x48, 0xb2, 0xb1, 0x61, 0xf4, 0x2b, 0xbf, 0x63, 0xea, 0x69, 0x16,
+ 0xda, 0x82, 0x85, 0xa1, 0x29, 0x8e, 0x33, 0xee, 0xc3, 0x48, 0x42, 0x26, 0x76, 0x0c, 0x43, 0x6f,
+ 0xe1, 0x94, 0xe6, 0x3f, 0xb1, 0x5d, 0x23, 0xaa, 0x41, 0x5e, 0x06, 0xca, 0x98, 0xba, 0x3c, 0xe8,
+ 0x4b, 0x8d, 0x91, 0xc1, 0x51, 0x38, 0x23, 0x9f, 0xa3, 0xa1, 0x37, 0xb0, 0x18, 0xdb, 0xe2, 0x04,
+ 0x43, 0x3f, 0x8a, 0x74, 0x67, 0xc3, 0x27, 0xb8, 0x94, 0x72, 0x5e, 0xee, 0x49, 0x19, 0x28, 0x20,
+ 0x8b, 0xf2, 0xa8, 0x26, 0xe7, 0x68, 0x29, 0xe5, 0x4b, 0x0d, 0xb1, 0xc0, 0xd0, 0x19, 0x95, 0x47,
+ 0xf8, 0x04, 0x87, 0x9e, 0xc2, 0x49, 0xcd, 0x57, 0x7d, 0x62, 0x7a, 0x62, 0x51, 0x06, 0xca, 0x94,
+ 0xba, 0x30, 0xe8, 0x4b, 0xf7, 0x46, 0xa4, 0xb2, 0x38, 0x7d, 0x08, 0x40, 0x32, 0x2c, 0x6d, 0xb8,
+ 0xdd, 0xb6, 0x61, 0x73, 0x1e, 0xa4, 0x3c, 0x3d, 0x3d, 0x85, 0x36, 0xe9, 0x4e, 0xf8, 0x69, 0x7b,
+ 0x62, 0x49, 0xce, 0xdd, 0xa4, 0x27, 0x13, 0x12, 0xb2, 0x60, 0x5e, 0xf3, 0x35, 0xa3, 0x23, 0x4e,
+ 0xc9, 0x39, 0xa5, 0x54, 0x9f, 0xa9, 0xc6, 0x11, 0xc3, 0xbb, 0x55, 0x65, 0xeb, 0x6b, 0x0e, 0xe9,
+ 0xfa, 0x6a, 0x63, 0xd0, 0x97, 0x16, 0x46, 0xce, 0xa8, 0x19, 0x1d, 0x96, 0x8e, 0x67, 0x40, 0xdf,
+ 0x01, 0xbd, 0x58, 0xab, 0x3d, 0x8f, 0xb8, 0x6d, 0x9a, 0xb1, 0xcc, 0x32, 0xce, 0x5d, 0x99, 0x31,
+ 0xf6, 0xe2, 0x79, 0x9d, 0xfd, 0xa3, 0x6b, 0xec, 0xf4, 0x25, 0xe9, 0x5a, 0x4e, 0x8b, 0xa6, 0xfe,
+ 0x72, 0x94, 0xf9, 0xd2, 0xc6, 0x0a, 0xd0, 0x27, 0x00, 0xcb, 0x9a, 0xbf, 0xd1, 0xb3, 0x6d, 0xa3,
+ 0x69, 0x9b, 0x54, 0xf9, 0x2d, 0xa6, 0x7c, 0xfe, 0x4a, 0xe5, 0x29, 0x3f, 0xae, 0x7d, 0x69, 0xff,
+ 0x48, 0xaa, 0x8f, 0x2c, 0x82, 0x3d, 0x41, 0x4c, 0xc3, 0xf9, 0x9c, 0xe8, 0x33, 0x53, 0xb1, 0xd6,
+ 0x6e, 0x9a, 0x3b, 0x3b, 0xe6, 0x0e, 0x55, 0x71, 0xfb, 0x3f, 0x2a, 0x52, 0x7e, 0x5c, 0xc5, 0x0a,
+ 0xed, 0xfa, 0xec, 0x4a, 0x52, 0x3c, 0xf4, 0x1c, 0x4e, 0xf0, 0x0a, 0x8b, 0x15, 0x19, 0x28, 0xc5,
+ 0x6b, 0xb6, 0x61, 0x72, 0x38, 0x7a, 0x84, 0x99, 0x5e, 0x86, 0x30, 0xe9, 0x31, 0x54, 0x81, 0xb9,
+ 0xf7, 0xa6, 0xcf, 0x5e, 0xf1, 0xa2, 0x4e, 0x87, 0xe8, 0x0e, 0xcc, 0x7f, 0x30, 0xec, 0x9e, 0xc9,
+ 0x5e, 0xed, 0x71, 0x9d, 0x1b, 0x2b, 0x63, 0xcb, 0x60, 0xfa, 0x31, 0xac, 0x5c, 0xec, 0x95, 0x6b,
+ 0xc5, 0xeb, 0x10, 0x5d, 0x3e, 0xb1, 0x34, 0x21, 0xcf, 0x09, 0x77, 0xd3, 0x84, 0x52, 0xbd, 0x92,
+ 0xd4, 0x7c, 0xcb, 0xb2, 0x3d, 0xd7, 0xb9, 0xc4, 0xbc, 0x58, 0xff, 0x9b, 0x31, 0x67, 0x31, 0x9c,
+ 0xe0, 0x93, 0x74, 0x2f, 0xeb, 0xec, 0xfb, 0x60, 0xbf, 0x9c, 0xce, 0x0d, 0xf5, 0xd9, 0x41, 0x80,
+ 0x85, 0xc3, 0x00, 0x0b, 0xbf, 0x02, 0x2c, 0x1c, 0x07, 0x18, 0x9c, 0x04, 0x18, 0x9c, 0x06, 0x18,
+ 0x9c, 0x05, 0x18, 0xec, 0x85, 0x18, 0x7c, 0x0d, 0x31, 0xf8, 0x16, 0x62, 0xf0, 0x23, 0xc4, 0xe0,
+ 0x67, 0x88, 0xc1, 0x41, 0x88, 0x85, 0xc3, 0x10, 0x0b, 0xc7, 0x21, 0x06, 0x27, 0x21, 0x16, 0x4e,
+ 0x43, 0x0c, 0xce, 0x42, 0x2c, 0xec, 0xfd, 0xc6, 0xc2, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3f,
+ 0x22, 0x40, 0x8d, 0xb2, 0x07, 0x00, 0x00,
+}
+
func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return CasttypeDescription()
}
@@ -123,279 +173,281 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog
func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4346 bytes of a gzipped FileDescriptorSet
+ // 4380 bytes of a gzipped FileDescriptorSet
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5b, 0x70, 0x1b, 0xd7,
- 0x79, 0xe6, 0xe2, 0x42, 0x02, 0x3f, 0x40, 0x70, 0x79, 0x48, 0xcb, 0x30, 0x13, 0x81, 0x14, 0xe5,
- 0x0b, 0x6d, 0x27, 0x94, 0x47, 0x77, 0x41, 0x89, 0x5d, 0x82, 0x84, 0x18, 0xa8, 0x04, 0xc9, 0x2c,
- 0xc9, 0xc8, 0x72, 0xda, 0xd9, 0x59, 0x2e, 0x0e, 0xc1, 0x95, 0x16, 0xbb, 0x9b, 0xdd, 0x85, 0x64,
- 0x68, 0xfa, 0xa0, 0xc6, 0x6d, 0x33, 0x69, 0xa7, 0xf7, 0xce, 0x34, 0x71, 0x1d, 0xb7, 0x49, 0xa7,
- 0x71, 0x9a, 0xde, 0x72, 0x69, 0xd2, 0x24, 0x7d, 0xc9, 0x4b, 0x5a, 0x3f, 0x75, 0x92, 0xb7, 0x3e,
- 0x74, 0x64, 0x8b, 0xf1, 0x4c, 0x9d, 0xd6, 0x6d, 0xdc, 0x56, 0x0f, 0x1e, 0xf9, 0xa5, 0x73, 0x6e,
- 0x8b, 0xc5, 0x85, 0x5a, 0x50, 0x19, 0x3b, 0x4f, 0xc4, 0xfe, 0xe7, 0xff, 0xbe, 0xf3, 0x9f, 0xff,
- 0xfc, 0xe7, 0xfc, 0xff, 0x39, 0xbb, 0x84, 0x9f, 0x9e, 0x83, 0x99, 0xba, 0x6d, 0xd7, 0x4d, 0x7c,
- 0xcc, 0x71, 0x6d, 0xdf, 0xde, 0x6e, 0xee, 0x1c, 0xab, 0x61, 0x4f, 0x77, 0x0d, 0xc7, 0xb7, 0xdd,
- 0x79, 0x2a, 0x43, 0x63, 0x4c, 0x63, 0x5e, 0x68, 0xcc, 0x56, 0x61, 0xfc, 0x82, 0x61, 0xe2, 0xa5,
- 0x40, 0x71, 0x03, 0xfb, 0xe8, 0x2c, 0x24, 0x76, 0x0c, 0x13, 0xe7, 0xa5, 0x99, 0xf8, 0x5c, 0xe6,
- 0xf8, 0xc3, 0xf3, 0x5d, 0xa0, 0xf9, 0x4e, 0xc4, 0x3a, 0x11, 0x2b, 0x14, 0x31, 0xfb, 0x46, 0x02,
- 0x26, 0xfa, 0xb4, 0x22, 0x04, 0x09, 0x4b, 0x6b, 0x10, 0x46, 0x69, 0x2e, 0xad, 0xd0, 0xdf, 0x28,
- 0x0f, 0x23, 0x8e, 0xa6, 0x5f, 0xd5, 0xea, 0x38, 0x1f, 0xa3, 0x62, 0xf1, 0x88, 0x0a, 0x00, 0x35,
- 0xec, 0x60, 0xab, 0x86, 0x2d, 0xbd, 0x95, 0x8f, 0xcf, 0xc4, 0xe7, 0xd2, 0x4a, 0x48, 0x82, 0x9e,
- 0x84, 0x71, 0xa7, 0xb9, 0x6d, 0x1a, 0xba, 0x1a, 0x52, 0x83, 0x99, 0xf8, 0x5c, 0x52, 0x91, 0x59,
- 0xc3, 0x52, 0x5b, 0xf9, 0x31, 0x18, 0xbb, 0x8e, 0xb5, 0xab, 0x61, 0xd5, 0x0c, 0x55, 0xcd, 0x11,
- 0x71, 0x48, 0x71, 0x11, 0xb2, 0x0d, 0xec, 0x79, 0x5a, 0x1d, 0xab, 0x7e, 0xcb, 0xc1, 0xf9, 0x04,
- 0x1d, 0xfd, 0x4c, 0xcf, 0xe8, 0xbb, 0x47, 0x9e, 0xe1, 0xa8, 0xcd, 0x96, 0x83, 0xd1, 0x02, 0xa4,
- 0xb1, 0xd5, 0x6c, 0x30, 0x86, 0xe4, 0x3e, 0xfe, 0x2b, 0x5b, 0xcd, 0x46, 0x37, 0x4b, 0x8a, 0xc0,
- 0x38, 0xc5, 0x88, 0x87, 0xdd, 0x6b, 0x86, 0x8e, 0xf3, 0xc3, 0x94, 0xe0, 0xb1, 0x1e, 0x82, 0x0d,
- 0xd6, 0xde, 0xcd, 0x21, 0x70, 0x68, 0x11, 0xd2, 0xf8, 0x79, 0x1f, 0x5b, 0x9e, 0x61, 0x5b, 0xf9,
- 0x11, 0x4a, 0xf2, 0x48, 0x9f, 0x59, 0xc4, 0x66, 0xad, 0x9b, 0xa2, 0x8d, 0x43, 0xa7, 0x61, 0xc4,
- 0x76, 0x7c, 0xc3, 0xb6, 0xbc, 0x7c, 0x6a, 0x46, 0x9a, 0xcb, 0x1c, 0xff, 0x60, 0xdf, 0x40, 0x58,
- 0x63, 0x3a, 0x8a, 0x50, 0x46, 0x15, 0x90, 0x3d, 0xbb, 0xe9, 0xea, 0x58, 0xd5, 0xed, 0x1a, 0x56,
- 0x0d, 0x6b, 0xc7, 0xce, 0xa7, 0x29, 0xc1, 0x74, 0xef, 0x40, 0xa8, 0xe2, 0xa2, 0x5d, 0xc3, 0x15,
- 0x6b, 0xc7, 0x56, 0x72, 0x5e, 0xc7, 0x33, 0x3a, 0x04, 0xc3, 0x5e, 0xcb, 0xf2, 0xb5, 0xe7, 0xf3,
- 0x59, 0x1a, 0x21, 0xfc, 0x69, 0xf6, 0xbb, 0xc3, 0x30, 0x36, 0x48, 0x88, 0x9d, 0x87, 0xe4, 0x0e,
- 0x19, 0x65, 0x3e, 0x76, 0x10, 0x1f, 0x30, 0x4c, 0xa7, 0x13, 0x87, 0xef, 0xd3, 0x89, 0x0b, 0x90,
- 0xb1, 0xb0, 0xe7, 0xe3, 0x1a, 0x8b, 0x88, 0xf8, 0x80, 0x31, 0x05, 0x0c, 0xd4, 0x1b, 0x52, 0x89,
- 0xfb, 0x0a, 0xa9, 0x67, 0x61, 0x2c, 0x30, 0x49, 0x75, 0x35, 0xab, 0x2e, 0x62, 0xf3, 0x58, 0x94,
- 0x25, 0xf3, 0x65, 0x81, 0x53, 0x08, 0x4c, 0xc9, 0xe1, 0x8e, 0x67, 0xb4, 0x04, 0x60, 0x5b, 0xd8,
- 0xde, 0x51, 0x6b, 0x58, 0x37, 0xf3, 0xa9, 0x7d, 0xbc, 0xb4, 0x46, 0x54, 0x7a, 0xbc, 0x64, 0x33,
- 0xa9, 0x6e, 0xa2, 0x73, 0xed, 0x50, 0x1b, 0xd9, 0x27, 0x52, 0xaa, 0x6c, 0x91, 0xf5, 0x44, 0xdb,
- 0x16, 0xe4, 0x5c, 0x4c, 0xe2, 0x1e, 0xd7, 0xf8, 0xc8, 0xd2, 0xd4, 0x88, 0xf9, 0xc8, 0x91, 0x29,
- 0x1c, 0xc6, 0x06, 0x36, 0xea, 0x86, 0x1f, 0xd1, 0x51, 0x08, 0x04, 0x2a, 0x0d, 0x2b, 0xa0, 0xbb,
- 0x50, 0x56, 0x08, 0x57, 0xb5, 0x06, 0x9e, 0xba, 0x01, 0xb9, 0x4e, 0xf7, 0xa0, 0x49, 0x48, 0x7a,
- 0xbe, 0xe6, 0xfa, 0x34, 0x0a, 0x93, 0x0a, 0x7b, 0x40, 0x32, 0xc4, 0xb1, 0x55, 0xa3, 0xbb, 0x5c,
- 0x52, 0x21, 0x3f, 0xd1, 0x2f, 0xb4, 0x07, 0x1c, 0xa7, 0x03, 0x7e, 0xb4, 0x77, 0x46, 0x3b, 0x98,
- 0xbb, 0xc7, 0x3d, 0x75, 0x06, 0x46, 0x3b, 0x06, 0x30, 0x68, 0xd7, 0xb3, 0xbf, 0x02, 0x0f, 0xf4,
- 0xa5, 0x46, 0xcf, 0xc2, 0x64, 0xd3, 0x32, 0x2c, 0x1f, 0xbb, 0x8e, 0x8b, 0x49, 0xc4, 0xb2, 0xae,
- 0xf2, 0xff, 0x3e, 0xb2, 0x4f, 0xcc, 0x6d, 0x85, 0xb5, 0x19, 0x8b, 0x32, 0xd1, 0xec, 0x15, 0x3e,
- 0x91, 0x4e, 0xbd, 0x39, 0x22, 0xdf, 0xbc, 0x79, 0xf3, 0x66, 0x6c, 0xf6, 0x73, 0xc3, 0x30, 0xd9,
- 0x6f, 0xcd, 0xf4, 0x5d, 0xbe, 0x87, 0x60, 0xd8, 0x6a, 0x36, 0xb6, 0xb1, 0x4b, 0x9d, 0x94, 0x54,
- 0xf8, 0x13, 0x5a, 0x80, 0xa4, 0xa9, 0x6d, 0x63, 0x33, 0x9f, 0x98, 0x91, 0xe6, 0x72, 0xc7, 0x9f,
- 0x1c, 0x68, 0x55, 0xce, 0xaf, 0x10, 0x88, 0xc2, 0x90, 0xe8, 0x69, 0x48, 0xf0, 0x2d, 0x9a, 0x30,
- 0x3c, 0x31, 0x18, 0x03, 0x59, 0x4b, 0x0a, 0xc5, 0xa1, 0x0f, 0x40, 0x9a, 0xfc, 0x65, 0xb1, 0x31,
- 0x4c, 0x6d, 0x4e, 0x11, 0x01, 0x89, 0x0b, 0x34, 0x05, 0x29, 0xba, 0x4c, 0x6a, 0x58, 0xa4, 0xb6,
- 0xe0, 0x99, 0x04, 0x56, 0x0d, 0xef, 0x68, 0x4d, 0xd3, 0x57, 0xaf, 0x69, 0x66, 0x13, 0xd3, 0x80,
- 0x4f, 0x2b, 0x59, 0x2e, 0xfc, 0x04, 0x91, 0xa1, 0x69, 0xc8, 0xb0, 0x55, 0x65, 0x58, 0x35, 0xfc,
- 0x3c, 0xdd, 0x3d, 0x93, 0x0a, 0x5b, 0x68, 0x15, 0x22, 0x21, 0xdd, 0x5f, 0xf1, 0x6c, 0x4b, 0x84,
- 0x26, 0xed, 0x82, 0x08, 0x68, 0xf7, 0x67, 0xba, 0x37, 0xee, 0xc3, 0xfd, 0x87, 0xd7, 0x1d, 0x53,
- 0xb3, 0xdf, 0x8e, 0x41, 0x82, 0xee, 0x17, 0x63, 0x90, 0xd9, 0xbc, 0xbc, 0x5e, 0x56, 0x97, 0xd6,
- 0xb6, 0x4a, 0x2b, 0x65, 0x59, 0x42, 0x39, 0x00, 0x2a, 0xb8, 0xb0, 0xb2, 0xb6, 0xb0, 0x29, 0xc7,
- 0x82, 0xe7, 0xca, 0xea, 0xe6, 0xe9, 0x93, 0x72, 0x3c, 0x00, 0x6c, 0x31, 0x41, 0x22, 0xac, 0x70,
- 0xe2, 0xb8, 0x9c, 0x44, 0x32, 0x64, 0x19, 0x41, 0xe5, 0xd9, 0xf2, 0xd2, 0xe9, 0x93, 0xf2, 0x70,
- 0xa7, 0xe4, 0xc4, 0x71, 0x79, 0x04, 0x8d, 0x42, 0x9a, 0x4a, 0x4a, 0x6b, 0x6b, 0x2b, 0x72, 0x2a,
- 0xe0, 0xdc, 0xd8, 0x54, 0x2a, 0xab, 0xcb, 0x72, 0x3a, 0xe0, 0x5c, 0x56, 0xd6, 0xb6, 0xd6, 0x65,
- 0x08, 0x18, 0xaa, 0xe5, 0x8d, 0x8d, 0x85, 0xe5, 0xb2, 0x9c, 0x09, 0x34, 0x4a, 0x97, 0x37, 0xcb,
- 0x1b, 0x72, 0xb6, 0xc3, 0xac, 0x13, 0xc7, 0xe5, 0xd1, 0xa0, 0x8b, 0xf2, 0xea, 0x56, 0x55, 0xce,
- 0xa1, 0x71, 0x18, 0x65, 0x5d, 0x08, 0x23, 0xc6, 0xba, 0x44, 0xa7, 0x4f, 0xca, 0x72, 0xdb, 0x10,
- 0xc6, 0x32, 0xde, 0x21, 0x38, 0x7d, 0x52, 0x46, 0xb3, 0x8b, 0x90, 0xa4, 0xd1, 0x85, 0x10, 0xe4,
- 0x56, 0x16, 0x4a, 0xe5, 0x15, 0x75, 0x6d, 0x7d, 0xb3, 0xb2, 0xb6, 0xba, 0xb0, 0x22, 0x4b, 0x6d,
- 0x99, 0x52, 0xfe, 0xf8, 0x56, 0x45, 0x29, 0x2f, 0xc9, 0xb1, 0xb0, 0x6c, 0xbd, 0xbc, 0xb0, 0x59,
- 0x5e, 0x92, 0xe3, 0xb3, 0x3a, 0x4c, 0xf6, 0xdb, 0x27, 0xfb, 0xae, 0x8c, 0xd0, 0x14, 0xc7, 0xf6,
- 0x99, 0x62, 0xca, 0xd5, 0x33, 0xc5, 0x3f, 0x8e, 0xc1, 0x44, 0x9f, 0x5c, 0xd1, 0xb7, 0x93, 0x67,
- 0x20, 0xc9, 0x42, 0x94, 0x65, 0xcf, 0xc7, 0xfb, 0x26, 0x1d, 0x1a, 0xb0, 0x3d, 0x19, 0x94, 0xe2,
- 0xc2, 0x15, 0x44, 0x7c, 0x9f, 0x0a, 0x82, 0x50, 0xf4, 0xec, 0xe9, 0xbf, 0xdc, 0xb3, 0xa7, 0xb3,
- 0xb4, 0x77, 0x7a, 0x90, 0xb4, 0x47, 0x65, 0x07, 0xdb, 0xdb, 0x93, 0x7d, 0xf6, 0xf6, 0xf3, 0x30,
- 0xde, 0x43, 0x34, 0xf0, 0x1e, 0xfb, 0x82, 0x04, 0xf9, 0xfd, 0x9c, 0x13, 0xb1, 0xd3, 0xc5, 0x3a,
- 0x76, 0xba, 0xf3, 0xdd, 0x1e, 0x3c, 0xb2, 0xff, 0x24, 0xf4, 0xcc, 0xf5, 0x2b, 0x12, 0x1c, 0xea,
- 0x5f, 0x29, 0xf6, 0xb5, 0xe1, 0x69, 0x18, 0x6e, 0x60, 0x7f, 0xd7, 0x16, 0xd5, 0xd2, 0xa3, 0x7d,
- 0x72, 0x30, 0x69, 0xee, 0x9e, 0x6c, 0x8e, 0x0a, 0x27, 0xf1, 0xf8, 0x7e, 0xe5, 0x1e, 0xb3, 0xa6,
- 0xc7, 0xd2, 0xcf, 0xc6, 0xe0, 0x81, 0xbe, 0xe4, 0x7d, 0x0d, 0x3d, 0x0c, 0x60, 0x58, 0x4e, 0xd3,
- 0x67, 0x15, 0x11, 0xdb, 0x60, 0xd3, 0x54, 0x42, 0x37, 0x2f, 0xb2, 0x79, 0x36, 0xfd, 0xa0, 0x3d,
- 0x4e, 0xdb, 0x81, 0x89, 0xa8, 0xc2, 0xd9, 0xb6, 0xa1, 0x09, 0x6a, 0x68, 0x61, 0x9f, 0x91, 0xf6,
- 0x04, 0xe6, 0x53, 0x20, 0xeb, 0xa6, 0x81, 0x2d, 0x5f, 0xf5, 0x7c, 0x17, 0x6b, 0x0d, 0xc3, 0xaa,
- 0xd3, 0x0c, 0x92, 0x2a, 0x26, 0x77, 0x34, 0xd3, 0xc3, 0xca, 0x18, 0x6b, 0xde, 0x10, 0xad, 0x04,
- 0x41, 0x03, 0xc8, 0x0d, 0x21, 0x86, 0x3b, 0x10, 0xac, 0x39, 0x40, 0xcc, 0x7e, 0x33, 0x05, 0x99,
- 0x50, 0x5d, 0x8d, 0x8e, 0x40, 0xf6, 0x8a, 0x76, 0x4d, 0x53, 0xc5, 0x59, 0x89, 0x79, 0x22, 0x43,
- 0x64, 0xeb, 0xfc, 0xbc, 0xf4, 0x14, 0x4c, 0x52, 0x15, 0xbb, 0xe9, 0x63, 0x57, 0xd5, 0x4d, 0xcd,
- 0xf3, 0xa8, 0xd3, 0x52, 0x54, 0x15, 0x91, 0xb6, 0x35, 0xd2, 0xb4, 0x28, 0x5a, 0xd0, 0x29, 0x98,
- 0xa0, 0x88, 0x46, 0xd3, 0xf4, 0x0d, 0xc7, 0xc4, 0x2a, 0x39, 0xbd, 0x79, 0x34, 0x93, 0x04, 0x96,
- 0x8d, 0x13, 0x8d, 0x2a, 0x57, 0x20, 0x16, 0x79, 0x68, 0x09, 0x0e, 0x53, 0x58, 0x1d, 0x5b, 0xd8,
- 0xd5, 0x7c, 0xac, 0xe2, 0x4f, 0x35, 0x35, 0xd3, 0x53, 0x35, 0xab, 0xa6, 0xee, 0x6a, 0xde, 0x6e,
- 0x7e, 0x92, 0x10, 0x94, 0x62, 0x79, 0x49, 0x79, 0x88, 0x28, 0x2e, 0x73, 0xbd, 0x32, 0x55, 0x5b,
- 0xb0, 0x6a, 0x1f, 0xd3, 0xbc, 0x5d, 0x54, 0x84, 0x43, 0x94, 0xc5, 0xf3, 0x5d, 0xc3, 0xaa, 0xab,
- 0xfa, 0x2e, 0xd6, 0xaf, 0xaa, 0x4d, 0x7f, 0xe7, 0x6c, 0xfe, 0x03, 0xe1, 0xfe, 0xa9, 0x85, 0x1b,
- 0x54, 0x67, 0x91, 0xa8, 0x6c, 0xf9, 0x3b, 0x67, 0xd1, 0x06, 0x64, 0xc9, 0x64, 0x34, 0x8c, 0x1b,
- 0x58, 0xdd, 0xb1, 0x5d, 0x9a, 0x1a, 0x73, 0x7d, 0xb6, 0xa6, 0x90, 0x07, 0xe7, 0xd7, 0x38, 0xa0,
- 0x6a, 0xd7, 0x70, 0x31, 0xb9, 0xb1, 0x5e, 0x2e, 0x2f, 0x29, 0x19, 0xc1, 0x72, 0xc1, 0x76, 0x49,
- 0x40, 0xd5, 0xed, 0xc0, 0xc1, 0x19, 0x16, 0x50, 0x75, 0x5b, 0xb8, 0xf7, 0x14, 0x4c, 0xe8, 0x3a,
- 0x1b, 0xb3, 0xa1, 0xab, 0xfc, 0x8c, 0xe5, 0xe5, 0xe5, 0x0e, 0x67, 0xe9, 0xfa, 0x32, 0x53, 0xe0,
- 0x31, 0xee, 0xa1, 0x73, 0xf0, 0x40, 0xdb, 0x59, 0x61, 0xe0, 0x78, 0xcf, 0x28, 0xbb, 0xa1, 0xa7,
- 0x60, 0xc2, 0x69, 0xf5, 0x02, 0x51, 0x47, 0x8f, 0x4e, 0xab, 0x1b, 0x76, 0x06, 0x26, 0x9d, 0x5d,
- 0xa7, 0x17, 0xf7, 0x44, 0x18, 0x87, 0x9c, 0x5d, 0xa7, 0x1b, 0xf8, 0x08, 0x3d, 0x70, 0xbb, 0x58,
- 0xd7, 0x7c, 0x5c, 0xcb, 0x3f, 0x18, 0x56, 0x0f, 0x35, 0xa0, 0x63, 0x20, 0xeb, 0xba, 0x8a, 0x2d,
- 0x6d, 0xdb, 0xc4, 0xaa, 0xe6, 0x62, 0x4b, 0xf3, 0xf2, 0xd3, 0x61, 0xe5, 0x9c, 0xae, 0x97, 0x69,
- 0xeb, 0x02, 0x6d, 0x44, 0x4f, 0xc0, 0xb8, 0xbd, 0x7d, 0x45, 0x67, 0x21, 0xa9, 0x3a, 0x2e, 0xde,
- 0x31, 0x9e, 0xcf, 0x3f, 0x4c, 0xfd, 0x3b, 0x46, 0x1a, 0x68, 0x40, 0xae, 0x53, 0x31, 0x7a, 0x1c,
- 0x64, 0xdd, 0xdb, 0xd5, 0x5c, 0x87, 0xee, 0xc9, 0x9e, 0xa3, 0xe9, 0x38, 0xff, 0x08, 0x53, 0x65,
- 0xf2, 0x55, 0x21, 0x26, 0x4b, 0xc2, 0xbb, 0x6e, 0xec, 0xf8, 0x82, 0xf1, 0x31, 0xb6, 0x24, 0xa8,
- 0x8c, 0xb3, 0xcd, 0x81, 0x4c, 0x5c, 0xd1, 0xd1, 0xf1, 0x1c, 0x55, 0xcb, 0x39, 0xbb, 0x4e, 0xb8,
- 0xdf, 0xa3, 0x30, 0x4a, 0x34, 0xdb, 0x9d, 0x3e, 0xce, 0x0a, 0x32, 0x67, 0x37, 0xd4, 0xe3, 0x7b,
- 0x56, 0x1b, 0xcf, 0x16, 0x21, 0x1b, 0x8e, 0x4f, 0x94, 0x06, 0x16, 0xa1, 0xb2, 0x44, 0x8a, 0x95,
- 0xc5, 0xb5, 0x25, 0x52, 0x66, 0x3c, 0x57, 0x96, 0x63, 0xa4, 0xdc, 0x59, 0xa9, 0x6c, 0x96, 0x55,
- 0x65, 0x6b, 0x75, 0xb3, 0x52, 0x2d, 0xcb, 0xf1, 0x70, 0x5d, 0xfd, 0x83, 0x18, 0xe4, 0x3a, 0x8f,
- 0x48, 0xe8, 0x23, 0xf0, 0xa0, 0xb8, 0xcf, 0xf0, 0xb0, 0xaf, 0x5e, 0x37, 0x5c, 0xba, 0x64, 0x1a,
- 0x1a, 0x4b, 0x5f, 0xc1, 0xa4, 0x4d, 0x72, 0xad, 0x0d, 0xec, 0x5f, 0x32, 0x5c, 0xb2, 0x20, 0x1a,
- 0x9a, 0x8f, 0x56, 0x60, 0xda, 0xb2, 0x55, 0xcf, 0xd7, 0xac, 0x9a, 0xe6, 0xd6, 0xd4, 0xf6, 0x4d,
- 0x92, 0xaa, 0xe9, 0x3a, 0xf6, 0x3c, 0x9b, 0xa5, 0xaa, 0x80, 0xe5, 0x83, 0x96, 0xbd, 0xc1, 0x95,
- 0xdb, 0x7b, 0xf8, 0x02, 0x57, 0xed, 0x0a, 0xb0, 0xf8, 0x7e, 0x01, 0xf6, 0x01, 0x48, 0x37, 0x34,
- 0x47, 0xc5, 0x96, 0xef, 0xb6, 0x68, 0x61, 0x9c, 0x52, 0x52, 0x0d, 0xcd, 0x29, 0x93, 0xe7, 0xf7,
- 0xe7, 0x7c, 0xf2, 0x6f, 0x71, 0xc8, 0x86, 0x8b, 0x63, 0x72, 0xd6, 0xd0, 0x69, 0x1e, 0x91, 0xe8,
- 0x4e, 0x73, 0xf4, 0x9e, 0xa5, 0xf4, 0xfc, 0x22, 0x49, 0x30, 0xc5, 0x61, 0x56, 0xb2, 0x2a, 0x0c,
- 0x49, 0x92, 0x3b, 0xd9, 0x5b, 0x30, 0x2b, 0x11, 0x52, 0x0a, 0x7f, 0x42, 0xcb, 0x30, 0x7c, 0xc5,
- 0xa3, 0xdc, 0xc3, 0x94, 0xfb, 0xe1, 0x7b, 0x73, 0x5f, 0xdc, 0xa0, 0xe4, 0xe9, 0x8b, 0x1b, 0xea,
- 0xea, 0x9a, 0x52, 0x5d, 0x58, 0x51, 0x38, 0x1c, 0x3d, 0x04, 0x09, 0x53, 0xbb, 0xd1, 0xea, 0x4c,
- 0x45, 0x54, 0x34, 0xa8, 0xe3, 0x1f, 0x82, 0xc4, 0x75, 0xac, 0x5d, 0xed, 0x4c, 0x00, 0x54, 0xf4,
- 0x1e, 0x86, 0xfe, 0x31, 0x48, 0x52, 0x7f, 0x21, 0x00, 0xee, 0x31, 0x79, 0x08, 0xa5, 0x20, 0xb1,
- 0xb8, 0xa6, 0x90, 0xf0, 0x97, 0x21, 0xcb, 0xa4, 0xea, 0x7a, 0xa5, 0xbc, 0x58, 0x96, 0x63, 0xb3,
- 0xa7, 0x60, 0x98, 0x39, 0x81, 0x2c, 0x8d, 0xc0, 0x0d, 0xf2, 0x10, 0x7f, 0xe4, 0x1c, 0x92, 0x68,
- 0xdd, 0xaa, 0x96, 0xca, 0x8a, 0x1c, 0x0b, 0x4f, 0xaf, 0x07, 0xd9, 0x70, 0x5d, 0xfc, 0xfe, 0xc4,
- 0xd4, 0xf7, 0x24, 0xc8, 0x84, 0xea, 0x5c, 0x52, 0xa0, 0x68, 0xa6, 0x69, 0x5f, 0x57, 0x35, 0xd3,
- 0xd0, 0x3c, 0x1e, 0x14, 0x40, 0x45, 0x0b, 0x44, 0x32, 0xe8, 0xa4, 0xbd, 0x2f, 0xc6, 0xbf, 0x2c,
- 0x81, 0xdc, 0x5d, 0x62, 0x76, 0x19, 0x28, 0xfd, 0x5c, 0x0d, 0x7c, 0x49, 0x82, 0x5c, 0x67, 0x5d,
- 0xd9, 0x65, 0xde, 0x91, 0x9f, 0xab, 0x79, 0xaf, 0xc7, 0x60, 0xb4, 0xa3, 0x9a, 0x1c, 0xd4, 0xba,
- 0x4f, 0xc1, 0xb8, 0x51, 0xc3, 0x0d, 0xc7, 0xf6, 0xb1, 0xa5, 0xb7, 0x54, 0x13, 0x5f, 0xc3, 0x66,
- 0x7e, 0x96, 0x6e, 0x14, 0xc7, 0xee, 0x5d, 0xaf, 0xce, 0x57, 0xda, 0xb8, 0x15, 0x02, 0x2b, 0x4e,
- 0x54, 0x96, 0xca, 0xd5, 0xf5, 0xb5, 0xcd, 0xf2, 0xea, 0xe2, 0x65, 0x75, 0x6b, 0xf5, 0x17, 0x57,
- 0xd7, 0x2e, 0xad, 0x2a, 0xb2, 0xd1, 0xa5, 0xf6, 0x1e, 0x2e, 0xf5, 0x75, 0x90, 0xbb, 0x8d, 0x42,
- 0x0f, 0x42, 0x3f, 0xb3, 0xe4, 0x21, 0x34, 0x01, 0x63, 0xab, 0x6b, 0xea, 0x46, 0x65, 0xa9, 0xac,
- 0x96, 0x2f, 0x5c, 0x28, 0x2f, 0x6e, 0x6e, 0xb0, 0x1b, 0x88, 0x40, 0x7b, 0xb3, 0x73, 0x51, 0xbf,
- 0x18, 0x87, 0x89, 0x3e, 0x96, 0xa0, 0x05, 0x7e, 0x76, 0x60, 0xc7, 0x99, 0x0f, 0x0f, 0x62, 0xfd,
- 0x3c, 0x49, 0xf9, 0xeb, 0x9a, 0xeb, 0xf3, 0xa3, 0xc6, 0xe3, 0x40, 0xbc, 0x64, 0xf9, 0xc6, 0x8e,
- 0x81, 0x5d, 0x7e, 0x61, 0xc3, 0x0e, 0x14, 0x63, 0x6d, 0x39, 0xbb, 0xb3, 0xf9, 0x10, 0x20, 0xc7,
- 0xf6, 0x0c, 0xdf, 0xb8, 0x86, 0x55, 0xc3, 0x12, 0xb7, 0x3b, 0xe4, 0x80, 0x91, 0x50, 0x64, 0xd1,
- 0x52, 0xb1, 0xfc, 0x40, 0xdb, 0xc2, 0x75, 0xad, 0x4b, 0x9b, 0x6c, 0xe0, 0x71, 0x45, 0x16, 0x2d,
- 0x81, 0xf6, 0x11, 0xc8, 0xd6, 0xec, 0x26, 0xa9, 0xba, 0x98, 0x1e, 0xc9, 0x17, 0x92, 0x92, 0x61,
- 0xb2, 0x40, 0x85, 0xd7, 0xd3, 0xed, 0x6b, 0xa5, 0xac, 0x92, 0x61, 0x32, 0xa6, 0xf2, 0x18, 0x8c,
- 0x69, 0xf5, 0xba, 0x4b, 0xc8, 0x05, 0x11, 0x3b, 0x21, 0xe4, 0x02, 0x31, 0x55, 0x9c, 0xba, 0x08,
- 0x29, 0xe1, 0x07, 0x92, 0x92, 0x89, 0x27, 0x54, 0x87, 0x1d, 0x7b, 0x63, 0x73, 0x69, 0x25, 0x65,
- 0x89, 0xc6, 0x23, 0x90, 0x35, 0x3c, 0xb5, 0x7d, 0x4b, 0x1e, 0x9b, 0x89, 0xcd, 0xa5, 0x94, 0x8c,
- 0xe1, 0x05, 0x37, 0x8c, 0xb3, 0xaf, 0xc4, 0x20, 0xd7, 0x79, 0xcb, 0x8f, 0x96, 0x20, 0x65, 0xda,
- 0xba, 0x46, 0x43, 0x8b, 0xbd, 0x62, 0x9a, 0x8b, 0x78, 0x31, 0x30, 0xbf, 0xc2, 0xf5, 0x95, 0x00,
- 0x39, 0xf5, 0x2f, 0x12, 0xa4, 0x84, 0x18, 0x1d, 0x82, 0x84, 0xa3, 0xf9, 0xbb, 0x94, 0x2e, 0x59,
- 0x8a, 0xc9, 0x92, 0x42, 0x9f, 0x89, 0xdc, 0x73, 0x34, 0x8b, 0x86, 0x00, 0x97, 0x93, 0x67, 0x32,
- 0xaf, 0x26, 0xd6, 0x6a, 0xf4, 0xf8, 0x61, 0x37, 0x1a, 0xd8, 0xf2, 0x3d, 0x31, 0xaf, 0x5c, 0xbe,
- 0xc8, 0xc5, 0xe8, 0x49, 0x18, 0xf7, 0x5d, 0xcd, 0x30, 0x3b, 0x74, 0x13, 0x54, 0x57, 0x16, 0x0d,
- 0x81, 0x72, 0x11, 0x1e, 0x12, 0xbc, 0x35, 0xec, 0x6b, 0xfa, 0x2e, 0xae, 0xb5, 0x41, 0xc3, 0xf4,
- 0x9a, 0xe1, 0x41, 0xae, 0xb0, 0xc4, 0xdb, 0x05, 0x76, 0xf6, 0x47, 0x12, 0x8c, 0x8b, 0x03, 0x53,
- 0x2d, 0x70, 0x56, 0x15, 0x40, 0xb3, 0x2c, 0xdb, 0x0f, 0xbb, 0xab, 0x37, 0x94, 0x7b, 0x70, 0xf3,
- 0x0b, 0x01, 0x48, 0x09, 0x11, 0x4c, 0x35, 0x00, 0xda, 0x2d, 0xfb, 0xba, 0x6d, 0x1a, 0x32, 0xfc,
- 0x15, 0x0e, 0x7d, 0x0f, 0xc8, 0x8e, 0xd8, 0xc0, 0x44, 0xe4, 0x64, 0x85, 0x26, 0x21, 0xb9, 0x8d,
- 0xeb, 0x86, 0xc5, 0x2f, 0x66, 0xd9, 0x83, 0xb8, 0x08, 0x49, 0x04, 0x17, 0x21, 0xa5, 0x4f, 0xc2,
- 0x84, 0x6e, 0x37, 0xba, 0xcd, 0x2d, 0xc9, 0x5d, 0xc7, 0x7c, 0xef, 0x63, 0xd2, 0x73, 0xd0, 0x2e,
- 0x31, 0xdf, 0x91, 0xa4, 0x2f, 0xc5, 0xe2, 0xcb, 0xeb, 0xa5, 0xaf, 0xc6, 0xa6, 0x96, 0x19, 0x74,
- 0x5d, 0x8c, 0x54, 0xc1, 0x3b, 0x26, 0xd6, 0x89, 0xf5, 0xf0, 0xe5, 0x27, 0xe1, 0xc3, 0x75, 0xc3,
- 0xdf, 0x6d, 0x6e, 0xcf, 0xeb, 0x76, 0xe3, 0x58, 0xdd, 0xae, 0xdb, 0xed, 0x57, 0x9f, 0xe4, 0x89,
- 0x3e, 0xd0, 0x5f, 0xfc, 0xf5, 0x67, 0x3a, 0x90, 0x4e, 0x45, 0xbe, 0x2b, 0x2d, 0xae, 0xc2, 0x04,
- 0x57, 0x56, 0xe9, 0xfb, 0x17, 0x76, 0x8a, 0x40, 0xf7, 0xbc, 0xc3, 0xca, 0x7f, 0xfd, 0x0d, 0x9a,
- 0xae, 0x95, 0x71, 0x0e, 0x25, 0x6d, 0xec, 0xa0, 0x51, 0x54, 0xe0, 0x81, 0x0e, 0x3e, 0xb6, 0x34,
- 0xb1, 0x1b, 0xc1, 0xf8, 0x03, 0xce, 0x38, 0x11, 0x62, 0xdc, 0xe0, 0xd0, 0xe2, 0x22, 0x8c, 0x1e,
- 0x84, 0xeb, 0x9f, 0x38, 0x57, 0x16, 0x87, 0x49, 0x96, 0x61, 0x8c, 0x92, 0xe8, 0x4d, 0xcf, 0xb7,
- 0x1b, 0x74, 0xdf, 0xbb, 0x37, 0xcd, 0x3f, 0xbf, 0xc1, 0xd6, 0x4a, 0x8e, 0xc0, 0x16, 0x03, 0x54,
- 0xb1, 0x08, 0xf4, 0x95, 0x53, 0x0d, 0xeb, 0x66, 0x04, 0xc3, 0xab, 0xdc, 0x90, 0x40, 0xbf, 0xf8,
- 0x09, 0x98, 0x24, 0xbf, 0xe9, 0xb6, 0x14, 0xb6, 0x24, 0xfa, 0xc2, 0x2b, 0xff, 0xa3, 0x17, 0xd8,
- 0x72, 0x9c, 0x08, 0x08, 0x42, 0x36, 0x85, 0x66, 0xb1, 0x8e, 0x7d, 0x1f, 0xbb, 0x9e, 0xaa, 0x99,
- 0xfd, 0xcc, 0x0b, 0xdd, 0x18, 0xe4, 0x3f, 0xff, 0x56, 0xe7, 0x2c, 0x2e, 0x33, 0xe4, 0x82, 0x69,
- 0x16, 0xb7, 0xe0, 0xc1, 0x3e, 0x51, 0x31, 0x00, 0xe7, 0x8b, 0x9c, 0x73, 0xb2, 0x27, 0x32, 0x08,
- 0xed, 0x3a, 0x08, 0x79, 0x30, 0x97, 0x03, 0x70, 0xfe, 0x09, 0xe7, 0x44, 0x1c, 0x2b, 0xa6, 0x94,
- 0x30, 0x5e, 0x84, 0xf1, 0x6b, 0xd8, 0xdd, 0xb6, 0x3d, 0x7e, 0x4b, 0x33, 0x00, 0xdd, 0x4b, 0x9c,
- 0x6e, 0x8c, 0x03, 0xe9, 0xb5, 0x0d, 0xe1, 0x3a, 0x07, 0xa9, 0x1d, 0x4d, 0xc7, 0x03, 0x50, 0x7c,
- 0x81, 0x53, 0x8c, 0x10, 0x7d, 0x02, 0x5d, 0x80, 0x6c, 0xdd, 0xe6, 0x99, 0x29, 0x1a, 0xfe, 0x32,
- 0x87, 0x67, 0x04, 0x86, 0x53, 0x38, 0xb6, 0xd3, 0x34, 0x49, 0xda, 0x8a, 0xa6, 0xf8, 0x53, 0x41,
- 0x21, 0x30, 0x9c, 0xe2, 0x00, 0x6e, 0xfd, 0x33, 0x41, 0xe1, 0x85, 0xfc, 0xf9, 0x0c, 0x64, 0x6c,
- 0xcb, 0x6c, 0xd9, 0xd6, 0x20, 0x46, 0x7c, 0x91, 0x33, 0x00, 0x87, 0x10, 0x82, 0xf3, 0x90, 0x1e,
- 0x74, 0x22, 0xfe, 0xe2, 0x2d, 0xb1, 0x3c, 0xc4, 0x0c, 0x2c, 0xc3, 0x98, 0xd8, 0xa0, 0x0c, 0xdb,
- 0x1a, 0x80, 0xe2, 0xcb, 0x9c, 0x22, 0x17, 0x82, 0xf1, 0x61, 0xf8, 0xd8, 0xf3, 0xeb, 0x78, 0x10,
- 0x92, 0x57, 0xc4, 0x30, 0x38, 0x84, 0xbb, 0x72, 0x1b, 0x5b, 0xfa, 0xee, 0x60, 0x0c, 0x5f, 0x11,
- 0xae, 0x14, 0x18, 0x42, 0xb1, 0x08, 0xa3, 0x0d, 0xcd, 0xf5, 0x76, 0x35, 0x73, 0xa0, 0xe9, 0xf8,
- 0x4b, 0xce, 0x91, 0x0d, 0x40, 0xdc, 0x23, 0x4d, 0xeb, 0x20, 0x34, 0x5f, 0x15, 0x1e, 0x09, 0xc1,
- 0xf8, 0xd2, 0xf3, 0x7c, 0x7a, 0xa5, 0x75, 0x10, 0xb6, 0xbf, 0x12, 0x4b, 0x8f, 0x61, 0xab, 0x61,
- 0xc6, 0xf3, 0x90, 0xf6, 0x8c, 0x1b, 0x03, 0xd1, 0xfc, 0xb5, 0x98, 0x69, 0x0a, 0x20, 0xe0, 0xcb,
- 0xf0, 0x50, 0xdf, 0x34, 0x31, 0x00, 0xd9, 0xdf, 0x70, 0xb2, 0x43, 0x7d, 0x52, 0x05, 0xdf, 0x12,
- 0x0e, 0x4a, 0xf9, 0xb7, 0x62, 0x4b, 0xc0, 0x5d, 0x5c, 0xeb, 0xe4, 0xac, 0xe0, 0x69, 0x3b, 0x07,
- 0xf3, 0xda, 0xdf, 0x09, 0xaf, 0x31, 0x6c, 0x87, 0xd7, 0x36, 0xe1, 0x10, 0x67, 0x3c, 0xd8, 0xbc,
- 0x7e, 0x4d, 0x6c, 0xac, 0x0c, 0xbd, 0xd5, 0x39, 0xbb, 0x9f, 0x84, 0xa9, 0xc0, 0x9d, 0xa2, 0x28,
- 0xf5, 0xd4, 0x86, 0xe6, 0x0c, 0xc0, 0xfc, 0x75, 0xce, 0x2c, 0x76, 0xfc, 0xa0, 0xaa, 0xf5, 0xaa,
- 0x9a, 0x43, 0xc8, 0x9f, 0x85, 0xbc, 0x20, 0x6f, 0x5a, 0x2e, 0xd6, 0xed, 0xba, 0x65, 0xdc, 0xc0,
- 0xb5, 0x01, 0xa8, 0xbf, 0xd1, 0x35, 0x55, 0x5b, 0x21, 0x38, 0x61, 0xae, 0x80, 0x1c, 0xd4, 0x2a,
- 0xaa, 0xd1, 0x70, 0x6c, 0xd7, 0x8f, 0x60, 0xfc, 0xa6, 0x98, 0xa9, 0x00, 0x57, 0xa1, 0xb0, 0x62,
- 0x19, 0x72, 0xf4, 0x71, 0xd0, 0x90, 0xfc, 0x7b, 0x4e, 0x34, 0xda, 0x46, 0xf1, 0x8d, 0x43, 0xb7,
- 0x1b, 0x8e, 0xe6, 0x0e, 0xb2, 0xff, 0x7d, 0x4b, 0x6c, 0x1c, 0x1c, 0xc2, 0x37, 0x0e, 0xbf, 0xe5,
- 0x60, 0x92, 0xed, 0x07, 0x60, 0xf8, 0xb6, 0xd8, 0x38, 0x04, 0x86, 0x53, 0x88, 0x82, 0x61, 0x00,
- 0x8a, 0x7f, 0x10, 0x14, 0x02, 0x43, 0x28, 0x3e, 0xde, 0x4e, 0xb4, 0x2e, 0xae, 0x1b, 0x9e, 0xef,
- 0xb2, 0x52, 0xf8, 0xde, 0x54, 0xdf, 0x79, 0xab, 0xb3, 0x08, 0x53, 0x42, 0x50, 0xb2, 0x13, 0xf1,
- 0x2b, 0x54, 0x7a, 0x52, 0x8a, 0x36, 0xec, 0xbb, 0x62, 0x27, 0x0a, 0xc1, 0x88, 0x6d, 0xa1, 0x0a,
- 0x91, 0xb8, 0x5d, 0x27, 0xe7, 0x83, 0x01, 0xe8, 0xbe, 0xd7, 0x65, 0xdc, 0x86, 0xc0, 0x12, 0xce,
- 0x50, 0xfd, 0xd3, 0xb4, 0xae, 0xe2, 0xd6, 0x40, 0xd1, 0xf9, 0x8f, 0x5d, 0xf5, 0xcf, 0x16, 0x43,
- 0xb2, 0x3d, 0x64, 0xac, 0xab, 0x9e, 0x42, 0x51, 0x1f, 0xeb, 0xe4, 0x7f, 0xf5, 0x0e, 0x1f, 0x6f,
- 0x67, 0x39, 0x55, 0x5c, 0x21, 0x41, 0xde, 0x59, 0xf4, 0x44, 0x93, 0xbd, 0x70, 0x27, 0x88, 0xf3,
- 0x8e, 0x9a, 0xa7, 0x78, 0x01, 0x46, 0x3b, 0x0a, 0x9e, 0x68, 0xaa, 0x5f, 0xe3, 0x54, 0xd9, 0x70,
- 0xbd, 0x53, 0x3c, 0x05, 0x09, 0x52, 0xbc, 0x44, 0xc3, 0x7f, 0x9d, 0xc3, 0xa9, 0x7a, 0xf1, 0xa3,
- 0x90, 0x12, 0x45, 0x4b, 0x34, 0xf4, 0x37, 0x38, 0x34, 0x80, 0x10, 0xb8, 0x28, 0x58, 0xa2, 0xe1,
- 0x9f, 0x11, 0x70, 0x01, 0x21, 0xf0, 0xc1, 0x5d, 0xf8, 0xfd, 0xdf, 0x4a, 0xf0, 0xa4, 0x23, 0x7c,
- 0x77, 0x1e, 0x46, 0x78, 0xa5, 0x12, 0x8d, 0xfe, 0x2c, 0xef, 0x5c, 0x20, 0x8a, 0x67, 0x20, 0x39,
- 0xa0, 0xc3, 0x7f, 0x9b, 0x43, 0x99, 0x7e, 0x71, 0x11, 0x32, 0xa1, 0xea, 0x24, 0x1a, 0xfe, 0x3b,
- 0x1c, 0x1e, 0x46, 0x11, 0xd3, 0x79, 0x75, 0x12, 0x4d, 0xf0, 0xbb, 0xc2, 0x74, 0x8e, 0x20, 0x6e,
- 0x13, 0x85, 0x49, 0x34, 0xfa, 0xf7, 0x84, 0xd7, 0x05, 0xa4, 0xf8, 0x0c, 0xa4, 0x83, 0x64, 0x13,
- 0x8d, 0xff, 0x7d, 0x8e, 0x6f, 0x63, 0x88, 0x07, 0x42, 0xc9, 0x2e, 0x9a, 0xe2, 0x0f, 0x84, 0x07,
- 0x42, 0x28, 0xb2, 0x8c, 0xba, 0x0b, 0x98, 0x68, 0xa6, 0x3f, 0x14, 0xcb, 0xa8, 0xab, 0x7e, 0x21,
- 0xb3, 0x49, 0xf7, 0xfc, 0x68, 0x8a, 0x3f, 0x12, 0xb3, 0x49, 0xf5, 0x89, 0x19, 0xdd, 0x15, 0x41,
- 0x34, 0xc7, 0x1f, 0x0b, 0x33, 0xba, 0x0a, 0x82, 0xe2, 0x3a, 0xa0, 0xde, 0x6a, 0x20, 0x9a, 0xef,
- 0x73, 0x9c, 0x6f, 0xbc, 0xa7, 0x18, 0x28, 0x5e, 0x82, 0x43, 0xfd, 0x2b, 0x81, 0x68, 0xd6, 0xcf,
- 0xdf, 0xe9, 0x3a, 0xbb, 0x85, 0x0b, 0x81, 0xe2, 0x66, 0x3b, 0xa5, 0x84, 0xab, 0x80, 0x68, 0xda,
- 0x17, 0xef, 0x74, 0x6e, 0xdc, 0xe1, 0x22, 0xa0, 0xb8, 0x00, 0xd0, 0x4e, 0xc0, 0xd1, 0x5c, 0x2f,
- 0x71, 0xae, 0x10, 0x88, 0x2c, 0x0d, 0x9e, 0x7f, 0xa3, 0xf1, 0x5f, 0x10, 0x4b, 0x83, 0x23, 0xc8,
- 0xd2, 0x10, 0xa9, 0x37, 0x1a, 0xfd, 0xb2, 0x58, 0x1a, 0x02, 0x42, 0x22, 0x3b, 0x94, 0xdd, 0xa2,
- 0x19, 0xbe, 0x28, 0x22, 0x3b, 0x84, 0x2a, 0xae, 0xc2, 0x78, 0x4f, 0x42, 0x8c, 0xa6, 0xfa, 0x12,
- 0xa7, 0x92, 0xbb, 0xf3, 0x61, 0x38, 0x79, 0xf1, 0x64, 0x18, 0xcd, 0xf6, 0xe7, 0x5d, 0xc9, 0x8b,
- 0xe7, 0xc2, 0xe2, 0x79, 0x48, 0x59, 0x4d, 0xd3, 0x24, 0x8b, 0x07, 0xdd, 0xfb, 0x03, 0xbb, 0xfc,
- 0x4f, 0xde, 0xe5, 0xde, 0x11, 0x80, 0xe2, 0x29, 0x48, 0xe2, 0xc6, 0x36, 0xae, 0x45, 0x21, 0xff,
- 0xe3, 0x5d, 0xb1, 0x61, 0x12, 0xed, 0xe2, 0x33, 0x00, 0xec, 0x6a, 0x84, 0xbe, 0xf6, 0x8b, 0xc0,
- 0xfe, 0xe7, 0xbb, 0xfc, 0xd3, 0x97, 0x36, 0xa4, 0x4d, 0xc0, 0x3e, 0xa4, 0xb9, 0x37, 0xc1, 0x5b,
- 0x9d, 0x04, 0x74, 0x46, 0xce, 0xc1, 0xc8, 0x15, 0xcf, 0xb6, 0x7c, 0xad, 0x1e, 0x85, 0xfe, 0x2f,
- 0x8e, 0x16, 0xfa, 0xc4, 0x61, 0x0d, 0xdb, 0xc5, 0xbe, 0x56, 0xf7, 0xa2, 0xb0, 0xff, 0xcd, 0xb1,
- 0x01, 0x80, 0x80, 0x75, 0xcd, 0xf3, 0x07, 0x19, 0xf7, 0x4f, 0x05, 0x58, 0x00, 0x88, 0xd1, 0xe4,
- 0xf7, 0x55, 0xdc, 0x8a, 0xc2, 0xbe, 0x2d, 0x8c, 0xe6, 0xfa, 0xc5, 0x8f, 0x42, 0x9a, 0xfc, 0x64,
- 0xdf, 0xb3, 0x45, 0x80, 0xff, 0x87, 0x83, 0xdb, 0x08, 0xd2, 0xb3, 0xe7, 0xd7, 0x7c, 0x23, 0xda,
- 0xd9, 0xff, 0xcb, 0x67, 0x5a, 0xe8, 0x17, 0x17, 0x20, 0xe3, 0xf9, 0xb5, 0x5a, 0x93, 0xd7, 0xa7,
- 0x11, 0xf0, 0xff, 0x7b, 0x37, 0xb8, 0xb2, 0x08, 0x30, 0x64, 0xb6, 0xaf, 0x5f, 0xf5, 0x1d, 0x9b,
- 0xbe, 0xe6, 0x88, 0x62, 0xb8, 0xc3, 0x19, 0x42, 0x90, 0x52, 0xb9, 0xff, 0xf5, 0x2d, 0x2c, 0xdb,
- 0xcb, 0x36, 0xbb, 0xb8, 0x7d, 0x6e, 0x36, 0xfa, 0x06, 0x16, 0xbe, 0x31, 0x06, 0x87, 0x75, 0xbb,
- 0xb1, 0x6d, 0x7b, 0xc7, 0x2c, 0x6c, 0xf8, 0xbb, 0xd8, 0x3d, 0x26, 0xe6, 0x86, 0x5f, 0xcc, 0x06,
- 0x73, 0x35, 0x75, 0xb0, 0x1b, 0xdd, 0xd9, 0x9f, 0x8c, 0x42, 0x6a, 0x51, 0xf3, 0x7c, 0xed, 0xba,
- 0xd6, 0x42, 0x8f, 0x40, 0xaa, 0x62, 0xf9, 0x27, 0x8e, 0xaf, 0xfb, 0x2e, 0x7d, 0x29, 0x19, 0x2f,
- 0xa5, 0xef, 0xde, 0x9a, 0x4e, 0x1a, 0x44, 0xa6, 0x04, 0x4d, 0xe8, 0x28, 0x24, 0xe9, 0x6f, 0x7a,
- 0xaf, 0x1d, 0x2f, 0x8d, 0xbe, 0x7a, 0x6b, 0x7a, 0xa8, 0xad, 0xc7, 0xda, 0xd0, 0x65, 0xc8, 0x54,
- 0x5b, 0x5b, 0x86, 0xe5, 0x9f, 0x3e, 0x49, 0xe8, 0x88, 0x6f, 0x12, 0xa5, 0x33, 0x77, 0x6f, 0x4d,
- 0x9f, 0xd8, 0xd7, 0x40, 0x52, 0x54, 0xb4, 0x07, 0x26, 0xd0, 0xf4, 0xa3, 0xe1, 0x30, 0x17, 0xba,
- 0x04, 0x29, 0xf1, 0xc8, 0xde, 0x0f, 0x95, 0xce, 0x73, 0x13, 0xee, 0x8b, 0x3b, 0x20, 0x43, 0xbf,
- 0x04, 0xd9, 0x6a, 0xeb, 0x82, 0x69, 0x6b, 0xdc, 0x07, 0xc9, 0x19, 0x69, 0x2e, 0x56, 0x3a, 0x7b,
- 0xf7, 0xd6, 0xf4, 0xc9, 0x81, 0x89, 0x39, 0x9c, 0x32, 0x77, 0xb0, 0xa1, 0xe7, 0x20, 0x1d, 0x3c,
- 0xd3, 0x37, 0x50, 0xb1, 0xd2, 0x47, 0xb8, 0xdd, 0xf7, 0x47, 0xdf, 0xa6, 0x0b, 0x59, 0xce, 0xdc,
- 0x3d, 0x32, 0x23, 0xcd, 0x49, 0xf7, 0x63, 0x39, 0xf7, 0x49, 0x07, 0x5b, 0xc8, 0xf2, 0xd3, 0x27,
- 0xe9, 0x2b, 0x2f, 0xe9, 0x7e, 0x2d, 0xe7, 0xf4, 0x6d, 0x3a, 0x74, 0x11, 0x46, 0xaa, 0xad, 0x52,
- 0xcb, 0xc7, 0x1e, 0xfd, 0x16, 0x2d, 0x5b, 0x7a, 0xea, 0xee, 0xad, 0xe9, 0x0f, 0x0d, 0xc8, 0x4a,
- 0x71, 0x8a, 0x20, 0x40, 0x33, 0x90, 0x59, 0xb5, 0xdd, 0x86, 0x66, 0x32, 0x3e, 0x60, 0xaf, 0xf0,
- 0x42, 0x22, 0xb4, 0x45, 0x46, 0xc2, 0x66, 0xdb, 0xa3, 0xff, 0xc6, 0xf4, 0x33, 0xc4, 0x64, 0x9b,
- 0x09, 0x19, 0x90, 0xac, 0xb6, 0xaa, 0x9a, 0x93, 0xcf, 0xd2, 0xf7, 0x4b, 0x87, 0xe7, 0x03, 0x84,
- 0x58, 0x5b, 0xf3, 0xb4, 0x9d, 0x7e, 0x88, 0x53, 0x3a, 0x79, 0xf7, 0xd6, 0xf4, 0x53, 0x03, 0xf7,
- 0x58, 0xd5, 0x1c, 0xda, 0x1d, 0xeb, 0x01, 0x7d, 0x4b, 0x22, 0x0b, 0x8b, 0x5d, 0xd0, 0x93, 0x1e,
- 0x47, 0x69, 0x8f, 0x47, 0xfb, 0xf6, 0x18, 0x68, 0xb1, 0x7e, 0xad, 0x4f, 0xbf, 0x76, 0x80, 0x91,
- 0xb2, 0x73, 0x21, 0xe9, 0xfa, 0x37, 0x5f, 0xbb, 0xef, 0x45, 0x1b, 0x58, 0x80, 0x5e, 0x90, 0x60,
- 0xb4, 0xda, 0x5a, 0xe5, 0x09, 0x9c, 0x58, 0x9e, 0xe3, 0xff, 0xec, 0xd2, 0xcf, 0xf2, 0x90, 0x1e,
- 0xb3, 0xfd, 0xf4, 0xa7, 0x5f, 0x9b, 0x3e, 0x3e, 0xb0, 0x11, 0x74, 0x0b, 0xa2, 0x36, 0x74, 0xf6,
- 0x89, 0x3e, 0x43, 0xad, 0x28, 0x93, 0x62, 0xa0, 0x86, 0x6b, 0xc4, 0x8a, 0xb1, 0x7b, 0x58, 0x11,
- 0xd2, 0x63, 0x56, 0x14, 0x49, 0xd4, 0xdf, 0xbf, 0x25, 0x21, 0x3e, 0xb4, 0x06, 0xc3, 0xcc, 0xc3,
- 0xf4, 0x3b, 0xc8, 0xf4, 0x01, 0xc3, 0xb0, 0x3d, 0x39, 0x0a, 0xa7, 0x99, 0x3a, 0x0b, 0xd0, 0x8e,
- 0x31, 0x24, 0x43, 0xfc, 0x2a, 0x6e, 0xf1, 0x8f, 0x5d, 0xc9, 0x4f, 0x34, 0xd9, 0xfe, 0x1a, 0x5d,
- 0x9a, 0x4b, 0xf0, 0x4f, 0xcc, 0x8b, 0xb1, 0xb3, 0xd2, 0xd4, 0xd3, 0x20, 0x77, 0xc7, 0xca, 0x81,
- 0xf0, 0x0a, 0xa0, 0xde, 0x19, 0x0b, 0x33, 0x24, 0x19, 0xc3, 0xa3, 0x61, 0x86, 0xcc, 0x71, 0xb9,
- 0xed, 0xf3, 0x4b, 0x86, 0xe9, 0xd9, 0x56, 0x0f, 0x67, 0xb7, 0xff, 0x7f, 0x36, 0xce, 0xd9, 0x02,
- 0x0c, 0x33, 0x21, 0x19, 0x4b, 0x85, 0xa6, 0x0f, 0x9a, 0xe5, 0x14, 0xf6, 0x50, 0x5a, 0x79, 0xf5,
- 0x76, 0x61, 0xe8, 0x87, 0xb7, 0x0b, 0x43, 0xff, 0x7a, 0xbb, 0x30, 0xf4, 0xfa, 0xed, 0x82, 0xf4,
- 0xe6, 0xed, 0x82, 0xf4, 0xf6, 0xed, 0x82, 0xf4, 0xce, 0xed, 0x82, 0x74, 0x73, 0xaf, 0x20, 0x7d,
- 0x65, 0xaf, 0x20, 0x7d, 0x6d, 0xaf, 0x20, 0x7d, 0x67, 0xaf, 0x20, 0x7d, 0x7f, 0xaf, 0x20, 0xbd,
- 0xba, 0x57, 0x18, 0xfa, 0xe1, 0x5e, 0x61, 0xe8, 0xf5, 0xbd, 0x82, 0xf4, 0xe6, 0x5e, 0x61, 0xe8,
- 0xed, 0xbd, 0x82, 0xf4, 0xce, 0x5e, 0x61, 0xe8, 0xe6, 0x8f, 0x0b, 0x43, 0xff, 0x1f, 0x00, 0x00,
- 0xff, 0xff, 0x24, 0x62, 0x9d, 0xf9, 0x50, 0x3a, 0x00, 0x00,
+ 0x79, 0xe6, 0xe2, 0x42, 0x02, 0x3f, 0x40, 0x70, 0x79, 0x48, 0x4b, 0x10, 0x1d, 0x81, 0x14, 0xe5,
+ 0x0b, 0x7d, 0xa3, 0x3c, 0xba, 0x1b, 0x4a, 0xec, 0x12, 0x24, 0xc4, 0x50, 0x25, 0x48, 0x66, 0x49,
+ 0x46, 0x96, 0xd3, 0xce, 0xce, 0x72, 0x71, 0x08, 0xae, 0xb4, 0xd8, 0xdd, 0xec, 0x2e, 0x24, 0x43,
+ 0xd3, 0x07, 0x35, 0x6e, 0x9b, 0x49, 0xef, 0xb7, 0x99, 0x26, 0xae, 0xe3, 0x36, 0xe9, 0x34, 0x4e,
+ 0xd3, 0x5b, 0x92, 0x36, 0x69, 0x92, 0xbe, 0xe4, 0x25, 0xad, 0x9e, 0x3a, 0xc9, 0x5b, 0x1f, 0x3a,
+ 0xb2, 0xc5, 0x78, 0xa6, 0x4e, 0xeb, 0xb6, 0x6e, 0xab, 0x07, 0x8f, 0xfc, 0x92, 0x39, 0xb7, 0xc5,
+ 0xe2, 0x42, 0x2d, 0xa8, 0x8c, 0xed, 0x27, 0x62, 0xff, 0xf3, 0x7f, 0xdf, 0xf9, 0xcf, 0x7f, 0xfe,
+ 0x73, 0xfe, 0xff, 0x9c, 0x5d, 0xc2, 0xcd, 0x22, 0x4c, 0xd5, 0x6c, 0xbb, 0x66, 0xe2, 0x63, 0x8e,
+ 0x6b, 0xfb, 0xf6, 0x56, 0x63, 0xfb, 0x58, 0x15, 0x7b, 0xba, 0x6b, 0x38, 0xbe, 0xed, 0xce, 0x52,
+ 0x19, 0x1a, 0x61, 0x1a, 0xb3, 0x42, 0x63, 0xba, 0x02, 0xa3, 0xe7, 0x0d, 0x13, 0x2f, 0x04, 0x8a,
+ 0xeb, 0xd8, 0x47, 0x67, 0x21, 0xb1, 0x6d, 0x98, 0x38, 0x2f, 0x4d, 0xc5, 0x67, 0x32, 0xc7, 0x1f,
+ 0x9a, 0xed, 0x00, 0xcd, 0xb6, 0x23, 0xd6, 0x88, 0x58, 0xa1, 0x88, 0xe9, 0x37, 0x13, 0x30, 0xd6,
+ 0xa3, 0x15, 0x21, 0x48, 0x58, 0x5a, 0x9d, 0x30, 0x4a, 0x33, 0x69, 0x85, 0xfe, 0x46, 0x79, 0x18,
+ 0x72, 0x34, 0xfd, 0x8a, 0x56, 0xc3, 0xf9, 0x18, 0x15, 0x8b, 0x47, 0x54, 0x00, 0xa8, 0x62, 0x07,
+ 0x5b, 0x55, 0x6c, 0xe9, 0xcd, 0x7c, 0x7c, 0x2a, 0x3e, 0x93, 0x56, 0x42, 0x12, 0xf4, 0x04, 0x8c,
+ 0x3a, 0x8d, 0x2d, 0xd3, 0xd0, 0xd5, 0x90, 0x1a, 0x4c, 0xc5, 0x67, 0x92, 0x8a, 0xcc, 0x1a, 0x16,
+ 0x5a, 0xca, 0x8f, 0xc2, 0xc8, 0x35, 0xac, 0x5d, 0x09, 0xab, 0x66, 0xa8, 0x6a, 0x8e, 0x88, 0x43,
+ 0x8a, 0xf3, 0x90, 0xad, 0x63, 0xcf, 0xd3, 0x6a, 0x58, 0xf5, 0x9b, 0x0e, 0xce, 0x27, 0xe8, 0xe8,
+ 0xa7, 0xba, 0x46, 0xdf, 0x39, 0xf2, 0x0c, 0x47, 0x6d, 0x34, 0x1d, 0x8c, 0xe6, 0x20, 0x8d, 0xad,
+ 0x46, 0x9d, 0x31, 0x24, 0xf7, 0xf0, 0x5f, 0xd9, 0x6a, 0xd4, 0x3b, 0x59, 0x52, 0x04, 0xc6, 0x29,
+ 0x86, 0x3c, 0xec, 0x5e, 0x35, 0x74, 0x9c, 0x1f, 0xa4, 0x04, 0x8f, 0x76, 0x11, 0xac, 0xb3, 0xf6,
+ 0x4e, 0x0e, 0x81, 0x43, 0xf3, 0x90, 0xc6, 0x2f, 0xfa, 0xd8, 0xf2, 0x0c, 0xdb, 0xca, 0x0f, 0x51,
+ 0x92, 0x87, 0x7b, 0xcc, 0x22, 0x36, 0xab, 0x9d, 0x14, 0x2d, 0x1c, 0x3a, 0x0d, 0x43, 0xb6, 0xe3,
+ 0x1b, 0xb6, 0xe5, 0xe5, 0x53, 0x53, 0xd2, 0x4c, 0xe6, 0xf8, 0x47, 0x7a, 0x06, 0xc2, 0x2a, 0xd3,
+ 0x51, 0x84, 0x32, 0x5a, 0x02, 0xd9, 0xb3, 0x1b, 0xae, 0x8e, 0x55, 0xdd, 0xae, 0x62, 0xd5, 0xb0,
+ 0xb6, 0xed, 0x7c, 0x9a, 0x12, 0x4c, 0x76, 0x0f, 0x84, 0x2a, 0xce, 0xdb, 0x55, 0xbc, 0x64, 0x6d,
+ 0xdb, 0x4a, 0xce, 0x6b, 0x7b, 0x46, 0x07, 0x60, 0xd0, 0x6b, 0x5a, 0xbe, 0xf6, 0x62, 0x3e, 0x4b,
+ 0x23, 0x84, 0x3f, 0x4d, 0x7f, 0x77, 0x10, 0x46, 0xfa, 0x09, 0xb1, 0x73, 0x90, 0xdc, 0x26, 0xa3,
+ 0xcc, 0xc7, 0xf6, 0xe3, 0x03, 0x86, 0x69, 0x77, 0xe2, 0xe0, 0x7d, 0x3a, 0x71, 0x0e, 0x32, 0x16,
+ 0xf6, 0x7c, 0x5c, 0x65, 0x11, 0x11, 0xef, 0x33, 0xa6, 0x80, 0x81, 0xba, 0x43, 0x2a, 0x71, 0x5f,
+ 0x21, 0xf5, 0x3c, 0x8c, 0x04, 0x26, 0xa9, 0xae, 0x66, 0xd5, 0x44, 0x6c, 0x1e, 0x8b, 0xb2, 0x64,
+ 0xb6, 0x2c, 0x70, 0x0a, 0x81, 0x29, 0x39, 0xdc, 0xf6, 0x8c, 0x16, 0x00, 0x6c, 0x0b, 0xdb, 0xdb,
+ 0x6a, 0x15, 0xeb, 0x66, 0x3e, 0xb5, 0x87, 0x97, 0x56, 0x89, 0x4a, 0x97, 0x97, 0x6c, 0x26, 0xd5,
+ 0x4d, 0xf4, 0x4c, 0x2b, 0xd4, 0x86, 0xf6, 0x88, 0x94, 0x0a, 0x5b, 0x64, 0x5d, 0xd1, 0xb6, 0x09,
+ 0x39, 0x17, 0x93, 0xb8, 0xc7, 0x55, 0x3e, 0xb2, 0x34, 0x35, 0x62, 0x36, 0x72, 0x64, 0x0a, 0x87,
+ 0xb1, 0x81, 0x0d, 0xbb, 0xe1, 0x47, 0x74, 0x14, 0x02, 0x81, 0x4a, 0xc3, 0x0a, 0xe8, 0x2e, 0x94,
+ 0x15, 0xc2, 0x15, 0xad, 0x8e, 0x27, 0xae, 0x43, 0xae, 0xdd, 0x3d, 0x68, 0x1c, 0x92, 0x9e, 0xaf,
+ 0xb9, 0x3e, 0x8d, 0xc2, 0xa4, 0xc2, 0x1e, 0x90, 0x0c, 0x71, 0x6c, 0x55, 0xe9, 0x2e, 0x97, 0x54,
+ 0xc8, 0x4f, 0xf4, 0x73, 0xad, 0x01, 0xc7, 0xe9, 0x80, 0x1f, 0xe9, 0x9e, 0xd1, 0x36, 0xe6, 0xce,
+ 0x71, 0x4f, 0x9c, 0x81, 0xe1, 0xb6, 0x01, 0xf4, 0xdb, 0xf5, 0xf4, 0x2f, 0xc1, 0x03, 0x3d, 0xa9,
+ 0xd1, 0xf3, 0x30, 0xde, 0xb0, 0x0c, 0xcb, 0xc7, 0xae, 0xe3, 0x62, 0x12, 0xb1, 0xac, 0xab, 0xfc,
+ 0xbf, 0x0f, 0xed, 0x11, 0x73, 0x9b, 0x61, 0x6d, 0xc6, 0xa2, 0x8c, 0x35, 0xba, 0x85, 0x8f, 0xa7,
+ 0x53, 0x6f, 0x0d, 0xc9, 0x37, 0x6e, 0xdc, 0xb8, 0x11, 0x9b, 0xfe, 0xfc, 0x20, 0x8c, 0xf7, 0x5a,
+ 0x33, 0x3d, 0x97, 0xef, 0x01, 0x18, 0xb4, 0x1a, 0xf5, 0x2d, 0xec, 0x52, 0x27, 0x25, 0x15, 0xfe,
+ 0x84, 0xe6, 0x20, 0x69, 0x6a, 0x5b, 0xd8, 0xcc, 0x27, 0xa6, 0xa4, 0x99, 0xdc, 0xf1, 0x27, 0xfa,
+ 0x5a, 0x95, 0xb3, 0xcb, 0x04, 0xa2, 0x30, 0x24, 0x7a, 0x16, 0x12, 0x7c, 0x8b, 0x26, 0x0c, 0x8f,
+ 0xf7, 0xc7, 0x40, 0xd6, 0x92, 0x42, 0x71, 0xe8, 0x41, 0x48, 0x93, 0xbf, 0x2c, 0x36, 0x06, 0xa9,
+ 0xcd, 0x29, 0x22, 0x20, 0x71, 0x81, 0x26, 0x20, 0x45, 0x97, 0x49, 0x15, 0x8b, 0xd4, 0x16, 0x3c,
+ 0x93, 0xc0, 0xaa, 0xe2, 0x6d, 0xad, 0x61, 0xfa, 0xea, 0x55, 0xcd, 0x6c, 0x60, 0x1a, 0xf0, 0x69,
+ 0x25, 0xcb, 0x85, 0x9f, 0x24, 0x32, 0x34, 0x09, 0x19, 0xb6, 0xaa, 0x0c, 0xab, 0x8a, 0x5f, 0xa4,
+ 0xbb, 0x67, 0x52, 0x61, 0x0b, 0x6d, 0x89, 0x48, 0x48, 0xf7, 0x97, 0x3d, 0xdb, 0x12, 0xa1, 0x49,
+ 0xbb, 0x20, 0x02, 0xda, 0xfd, 0x99, 0xce, 0x8d, 0xfb, 0x70, 0xef, 0xe1, 0x75, 0xc6, 0xd4, 0xf4,
+ 0xb7, 0x63, 0x90, 0xa0, 0xfb, 0xc5, 0x08, 0x64, 0x36, 0x2e, 0xad, 0x95, 0xd5, 0x85, 0xd5, 0xcd,
+ 0xd2, 0x72, 0x59, 0x96, 0x50, 0x0e, 0x80, 0x0a, 0xce, 0x2f, 0xaf, 0xce, 0x6d, 0xc8, 0xb1, 0xe0,
+ 0x79, 0x69, 0x65, 0xe3, 0xf4, 0x49, 0x39, 0x1e, 0x00, 0x36, 0x99, 0x20, 0x11, 0x56, 0x38, 0x71,
+ 0x5c, 0x4e, 0x22, 0x19, 0xb2, 0x8c, 0x60, 0xe9, 0xf9, 0xf2, 0xc2, 0xe9, 0x93, 0xf2, 0x60, 0xbb,
+ 0xe4, 0xc4, 0x71, 0x79, 0x08, 0x0d, 0x43, 0x9a, 0x4a, 0x4a, 0xab, 0xab, 0xcb, 0x72, 0x2a, 0xe0,
+ 0x5c, 0xdf, 0x50, 0x96, 0x56, 0x16, 0xe5, 0x74, 0xc0, 0xb9, 0xa8, 0xac, 0x6e, 0xae, 0xc9, 0x10,
+ 0x30, 0x54, 0xca, 0xeb, 0xeb, 0x73, 0x8b, 0x65, 0x39, 0x13, 0x68, 0x94, 0x2e, 0x6d, 0x94, 0xd7,
+ 0xe5, 0x6c, 0x9b, 0x59, 0x27, 0x8e, 0xcb, 0xc3, 0x41, 0x17, 0xe5, 0x95, 0xcd, 0x8a, 0x9c, 0x43,
+ 0xa3, 0x30, 0xcc, 0xba, 0x10, 0x46, 0x8c, 0x74, 0x88, 0x4e, 0x9f, 0x94, 0xe5, 0x96, 0x21, 0x8c,
+ 0x65, 0xb4, 0x4d, 0x70, 0xfa, 0xa4, 0x8c, 0xa6, 0xe7, 0x21, 0x49, 0xa3, 0x0b, 0x21, 0xc8, 0x2d,
+ 0xcf, 0x95, 0xca, 0xcb, 0xea, 0xea, 0xda, 0xc6, 0xd2, 0xea, 0xca, 0xdc, 0xb2, 0x2c, 0xb5, 0x64,
+ 0x4a, 0xf9, 0x13, 0x9b, 0x4b, 0x4a, 0x79, 0x41, 0x8e, 0x85, 0x65, 0x6b, 0xe5, 0xb9, 0x8d, 0xf2,
+ 0x82, 0x1c, 0x9f, 0xd6, 0x61, 0xbc, 0xd7, 0x3e, 0xd9, 0x73, 0x65, 0x84, 0xa6, 0x38, 0xb6, 0xc7,
+ 0x14, 0x53, 0xae, 0xae, 0x29, 0xfe, 0x71, 0x0c, 0xc6, 0x7a, 0xe4, 0x8a, 0x9e, 0x9d, 0x3c, 0x07,
+ 0x49, 0x16, 0xa2, 0x2c, 0x7b, 0x3e, 0xd6, 0x33, 0xe9, 0xd0, 0x80, 0xed, 0xca, 0xa0, 0x14, 0x17,
+ 0xae, 0x20, 0xe2, 0x7b, 0x54, 0x10, 0x84, 0xa2, 0x6b, 0x4f, 0xff, 0xc5, 0xae, 0x3d, 0x9d, 0xa5,
+ 0xbd, 0xd3, 0xfd, 0xa4, 0x3d, 0x2a, 0xdb, 0xdf, 0xde, 0x9e, 0xec, 0xb1, 0xb7, 0x9f, 0x83, 0xd1,
+ 0x2e, 0xa2, 0xbe, 0xf7, 0xd8, 0x97, 0x24, 0xc8, 0xef, 0xe5, 0x9c, 0x88, 0x9d, 0x2e, 0xd6, 0xb6,
+ 0xd3, 0x9d, 0xeb, 0xf4, 0xe0, 0x91, 0xbd, 0x27, 0xa1, 0x6b, 0xae, 0x5f, 0x93, 0xe0, 0x40, 0xef,
+ 0x4a, 0xb1, 0xa7, 0x0d, 0xcf, 0xc2, 0x60, 0x1d, 0xfb, 0x3b, 0xb6, 0xa8, 0x96, 0x1e, 0xe9, 0x91,
+ 0x83, 0x49, 0x73, 0xe7, 0x64, 0x73, 0x54, 0x38, 0x89, 0xc7, 0xf7, 0x2a, 0xf7, 0x98, 0x35, 0x5d,
+ 0x96, 0x7e, 0x2e, 0x06, 0x0f, 0xf4, 0x24, 0xef, 0x69, 0xe8, 0x61, 0x00, 0xc3, 0x72, 0x1a, 0x3e,
+ 0xab, 0x88, 0xd8, 0x06, 0x9b, 0xa6, 0x12, 0xba, 0x79, 0x91, 0xcd, 0xb3, 0xe1, 0x07, 0xed, 0x71,
+ 0xda, 0x0e, 0x4c, 0x44, 0x15, 0xce, 0xb6, 0x0c, 0x4d, 0x50, 0x43, 0x0b, 0x7b, 0x8c, 0xb4, 0x2b,
+ 0x30, 0x9f, 0x06, 0x59, 0x37, 0x0d, 0x6c, 0xf9, 0xaa, 0xe7, 0xbb, 0x58, 0xab, 0x1b, 0x56, 0x8d,
+ 0x66, 0x90, 0x54, 0x31, 0xb9, 0xad, 0x99, 0x1e, 0x56, 0x46, 0x58, 0xf3, 0xba, 0x68, 0x25, 0x08,
+ 0x1a, 0x40, 0x6e, 0x08, 0x31, 0xd8, 0x86, 0x60, 0xcd, 0x01, 0x62, 0xfa, 0x37, 0xd3, 0x90, 0x09,
+ 0xd5, 0xd5, 0xe8, 0x08, 0x64, 0x2f, 0x6b, 0x57, 0x35, 0x55, 0x9c, 0x95, 0x98, 0x27, 0x32, 0x44,
+ 0xb6, 0xc6, 0xcf, 0x4b, 0x4f, 0xc3, 0x38, 0x55, 0xb1, 0x1b, 0x3e, 0x76, 0x55, 0xdd, 0xd4, 0x3c,
+ 0x8f, 0x3a, 0x2d, 0x45, 0x55, 0x11, 0x69, 0x5b, 0x25, 0x4d, 0xf3, 0xa2, 0x05, 0x9d, 0x82, 0x31,
+ 0x8a, 0xa8, 0x37, 0x4c, 0xdf, 0x70, 0x4c, 0xac, 0x92, 0xd3, 0x9b, 0x47, 0x33, 0x49, 0x60, 0xd9,
+ 0x28, 0xd1, 0xa8, 0x70, 0x05, 0x62, 0x91, 0x87, 0x16, 0xe0, 0x30, 0x85, 0xd5, 0xb0, 0x85, 0x5d,
+ 0xcd, 0xc7, 0x2a, 0xfe, 0x74, 0x43, 0x33, 0x3d, 0x55, 0xb3, 0xaa, 0xea, 0x8e, 0xe6, 0xed, 0xe4,
+ 0xc7, 0x09, 0x41, 0x29, 0x96, 0x97, 0x94, 0x43, 0x44, 0x71, 0x91, 0xeb, 0x95, 0xa9, 0xda, 0x9c,
+ 0x55, 0xfd, 0xb8, 0xe6, 0xed, 0xa0, 0x22, 0x1c, 0xa0, 0x2c, 0x9e, 0xef, 0x1a, 0x56, 0x4d, 0xd5,
+ 0x77, 0xb0, 0x7e, 0x45, 0x6d, 0xf8, 0xdb, 0x67, 0xf3, 0x0f, 0x86, 0xfb, 0xa7, 0x16, 0xae, 0x53,
+ 0x9d, 0x79, 0xa2, 0xb2, 0xe9, 0x6f, 0x9f, 0x45, 0xeb, 0x90, 0x25, 0x93, 0x51, 0x37, 0xae, 0x63,
+ 0x75, 0xdb, 0x76, 0x69, 0x6a, 0xcc, 0xf5, 0xd8, 0x9a, 0x42, 0x1e, 0x9c, 0x5d, 0xe5, 0x80, 0x8a,
+ 0x5d, 0xc5, 0xc5, 0xe4, 0xfa, 0x5a, 0xb9, 0xbc, 0xa0, 0x64, 0x04, 0xcb, 0x79, 0xdb, 0x25, 0x01,
+ 0x55, 0xb3, 0x03, 0x07, 0x67, 0x58, 0x40, 0xd5, 0x6c, 0xe1, 0xde, 0x53, 0x30, 0xa6, 0xeb, 0x6c,
+ 0xcc, 0x86, 0xae, 0xf2, 0x33, 0x96, 0x97, 0x97, 0xdb, 0x9c, 0xa5, 0xeb, 0x8b, 0x4c, 0x81, 0xc7,
+ 0xb8, 0x87, 0x9e, 0x81, 0x07, 0x5a, 0xce, 0x0a, 0x03, 0x47, 0xbb, 0x46, 0xd9, 0x09, 0x3d, 0x05,
+ 0x63, 0x4e, 0xb3, 0x1b, 0x88, 0xda, 0x7a, 0x74, 0x9a, 0x9d, 0xb0, 0x33, 0x30, 0xee, 0xec, 0x38,
+ 0xdd, 0xb8, 0xc7, 0xc3, 0x38, 0xe4, 0xec, 0x38, 0x9d, 0xc0, 0x87, 0xe9, 0x81, 0xdb, 0xc5, 0xba,
+ 0xe6, 0xe3, 0x6a, 0xfe, 0x60, 0x58, 0x3d, 0xd4, 0x80, 0x8e, 0x81, 0xac, 0xeb, 0x2a, 0xb6, 0xb4,
+ 0x2d, 0x13, 0xab, 0x9a, 0x8b, 0x2d, 0xcd, 0xcb, 0x4f, 0x86, 0x95, 0x73, 0xba, 0x5e, 0xa6, 0xad,
+ 0x73, 0xb4, 0x11, 0x3d, 0x0e, 0xa3, 0xf6, 0xd6, 0x65, 0x9d, 0x85, 0xa4, 0xea, 0xb8, 0x78, 0xdb,
+ 0x78, 0x31, 0xff, 0x10, 0xf5, 0xef, 0x08, 0x69, 0xa0, 0x01, 0xb9, 0x46, 0xc5, 0xe8, 0x31, 0x90,
+ 0x75, 0x6f, 0x47, 0x73, 0x1d, 0xba, 0x27, 0x7b, 0x8e, 0xa6, 0xe3, 0xfc, 0xc3, 0x4c, 0x95, 0xc9,
+ 0x57, 0x84, 0x98, 0x2c, 0x09, 0xef, 0x9a, 0xb1, 0xed, 0x0b, 0xc6, 0x47, 0xd9, 0x92, 0xa0, 0x32,
+ 0xce, 0x36, 0x03, 0x32, 0x71, 0x45, 0x5b, 0xc7, 0x33, 0x54, 0x2d, 0xe7, 0xec, 0x38, 0xe1, 0x7e,
+ 0x8f, 0xc2, 0x30, 0xd1, 0x6c, 0x75, 0xfa, 0x18, 0x2b, 0xc8, 0x9c, 0x9d, 0x50, 0x8f, 0x27, 0xe1,
+ 0x00, 0x51, 0xaa, 0x63, 0x5f, 0xab, 0x6a, 0xbe, 0x16, 0xd2, 0x7e, 0x92, 0x6a, 0x13, 0xbf, 0x57,
+ 0x78, 0x63, 0x9b, 0x9d, 0x6e, 0x63, 0xab, 0x19, 0x44, 0xd6, 0x53, 0xcc, 0x4e, 0x22, 0x13, 0xb1,
+ 0xf5, 0xbe, 0x15, 0xdd, 0xd3, 0x45, 0xc8, 0x86, 0x03, 0x1f, 0xa5, 0x81, 0x85, 0xbe, 0x2c, 0x91,
+ 0x2a, 0x68, 0x7e, 0x75, 0x81, 0xd4, 0x2f, 0x2f, 0x94, 0xe5, 0x18, 0xa9, 0xa3, 0x96, 0x97, 0x36,
+ 0xca, 0xaa, 0xb2, 0xb9, 0xb2, 0xb1, 0x54, 0x29, 0xcb, 0xf1, 0x70, 0xc1, 0xfe, 0x83, 0x18, 0xe4,
+ 0xda, 0xcf, 0x5e, 0xe8, 0xa3, 0x70, 0x50, 0x5c, 0x94, 0x78, 0xd8, 0x57, 0xaf, 0x19, 0x2e, 0x5d,
+ 0x8b, 0x75, 0x8d, 0xe5, 0xc5, 0x20, 0x1a, 0xc6, 0xb9, 0xd6, 0x3a, 0xf6, 0x2f, 0x1a, 0x2e, 0x59,
+ 0x69, 0x75, 0xcd, 0x47, 0xcb, 0x30, 0x69, 0xd9, 0xaa, 0xe7, 0x6b, 0x56, 0x55, 0x73, 0xab, 0x6a,
+ 0xeb, 0x8a, 0x4a, 0xd5, 0x74, 0x1d, 0x7b, 0x9e, 0xcd, 0x72, 0x60, 0xc0, 0xf2, 0x11, 0xcb, 0x5e,
+ 0xe7, 0xca, 0xad, 0xe4, 0x30, 0xc7, 0x55, 0x3b, 0x22, 0x37, 0xbe, 0x57, 0xe4, 0x3e, 0x08, 0xe9,
+ 0xba, 0xe6, 0xa8, 0xd8, 0xf2, 0xdd, 0x26, 0xad, 0xb8, 0x53, 0x4a, 0xaa, 0xae, 0x39, 0x65, 0xf2,
+ 0xfc, 0xc1, 0x1c, 0x7c, 0xfe, 0x2d, 0x0e, 0xd9, 0x70, 0xd5, 0x4d, 0x0e, 0x31, 0x3a, 0x4d, 0x50,
+ 0x12, 0xdd, 0xc2, 0x8e, 0xde, 0xb3, 0x46, 0x9f, 0x9d, 0x27, 0x99, 0xab, 0x38, 0xc8, 0x6a, 0x61,
+ 0x85, 0x21, 0x49, 0xd5, 0x40, 0x42, 0x0b, 0xb3, 0xda, 0x23, 0xa5, 0xf0, 0x27, 0xb4, 0x08, 0x83,
+ 0x97, 0x3d, 0xca, 0x3d, 0x48, 0xb9, 0x1f, 0xba, 0x37, 0xf7, 0x85, 0x75, 0x4a, 0x9e, 0xbe, 0xb0,
+ 0xae, 0xae, 0xac, 0x2a, 0x95, 0xb9, 0x65, 0x85, 0xc3, 0xd1, 0x21, 0x48, 0x98, 0xda, 0xf5, 0x66,
+ 0x7b, 0x8e, 0xa3, 0xa2, 0x7e, 0x1d, 0x7f, 0x08, 0x12, 0xd7, 0xb0, 0x76, 0xa5, 0x3d, 0xb3, 0x50,
+ 0xd1, 0xfb, 0x18, 0xfa, 0xc7, 0x20, 0x49, 0xfd, 0x85, 0x00, 0xb8, 0xc7, 0xe4, 0x01, 0x94, 0x82,
+ 0xc4, 0xfc, 0xaa, 0x42, 0xc2, 0x5f, 0x86, 0x2c, 0x93, 0xaa, 0x6b, 0x4b, 0xe5, 0xf9, 0xb2, 0x1c,
+ 0x9b, 0x3e, 0x05, 0x83, 0xcc, 0x09, 0x64, 0x69, 0x04, 0x6e, 0x90, 0x07, 0xf8, 0x23, 0xe7, 0x90,
+ 0x44, 0xeb, 0x66, 0xa5, 0x54, 0x56, 0xe4, 0x58, 0x78, 0x7a, 0x3d, 0xc8, 0x86, 0x0b, 0xee, 0x0f,
+ 0x26, 0xa6, 0xbe, 0x27, 0x41, 0x26, 0x54, 0x40, 0x93, 0xca, 0x47, 0x33, 0x4d, 0xfb, 0x9a, 0xaa,
+ 0x99, 0x86, 0xe6, 0xf1, 0xa0, 0x00, 0x2a, 0x9a, 0x23, 0x92, 0x7e, 0x27, 0xed, 0x03, 0x31, 0xfe,
+ 0x55, 0x09, 0xe4, 0xce, 0xda, 0xb5, 0xc3, 0x40, 0xe9, 0x43, 0x35, 0xf0, 0x15, 0x09, 0x72, 0xed,
+ 0x05, 0x6b, 0x87, 0x79, 0x47, 0x3e, 0x54, 0xf3, 0xde, 0x88, 0xc1, 0x70, 0x5b, 0x99, 0xda, 0xaf,
+ 0x75, 0x9f, 0x86, 0x51, 0xa3, 0x8a, 0xeb, 0x8e, 0xed, 0x63, 0x4b, 0x6f, 0xaa, 0x26, 0xbe, 0x8a,
+ 0xcd, 0xfc, 0x34, 0xdd, 0x28, 0x8e, 0xdd, 0xbb, 0x10, 0x9e, 0x5d, 0x6a, 0xe1, 0x96, 0x09, 0xac,
+ 0x38, 0xb6, 0xb4, 0x50, 0xae, 0xac, 0xad, 0x6e, 0x94, 0x57, 0xe6, 0x2f, 0xa9, 0x9b, 0x2b, 0x3f,
+ 0xbf, 0xb2, 0x7a, 0x71, 0x45, 0x91, 0x8d, 0x0e, 0xb5, 0xf7, 0x71, 0xa9, 0xaf, 0x81, 0xdc, 0x69,
+ 0x14, 0x3a, 0x08, 0xbd, 0xcc, 0x92, 0x07, 0xd0, 0x18, 0x8c, 0xac, 0xac, 0xaa, 0xeb, 0x4b, 0x0b,
+ 0x65, 0xb5, 0x7c, 0xfe, 0x7c, 0x79, 0x7e, 0x63, 0x9d, 0x5d, 0x6d, 0x04, 0xda, 0x1b, 0xed, 0x8b,
+ 0xfa, 0xe5, 0x38, 0x8c, 0xf5, 0xb0, 0x04, 0xcd, 0xf1, 0x43, 0x09, 0x3b, 0x27, 0x3d, 0xd5, 0x8f,
+ 0xf5, 0xb3, 0xa4, 0x2a, 0x58, 0xd3, 0x5c, 0x9f, 0x9f, 0x61, 0x1e, 0x03, 0xe2, 0x25, 0xcb, 0x37,
+ 0xb6, 0x0d, 0xec, 0xf2, 0x9b, 0x20, 0x76, 0x52, 0x19, 0x69, 0xc9, 0xd9, 0x65, 0xd0, 0x93, 0x80,
+ 0x1c, 0xdb, 0x33, 0x7c, 0xe3, 0x2a, 0x56, 0x0d, 0x4b, 0x5c, 0x1b, 0x91, 0x93, 0x4b, 0x42, 0x91,
+ 0x45, 0xcb, 0x92, 0xe5, 0x07, 0xda, 0x16, 0xae, 0x69, 0x1d, 0xda, 0x64, 0x03, 0x8f, 0x2b, 0xb2,
+ 0x68, 0x09, 0xb4, 0x8f, 0x40, 0xb6, 0x6a, 0x37, 0x48, 0x39, 0xc7, 0xf4, 0x48, 0xbe, 0x90, 0x94,
+ 0x0c, 0x93, 0x05, 0x2a, 0xbc, 0x50, 0x6f, 0xdd, 0x57, 0x65, 0x95, 0x0c, 0x93, 0x31, 0x95, 0x47,
+ 0x61, 0x44, 0xab, 0xd5, 0x5c, 0x42, 0x2e, 0x88, 0xd8, 0xd1, 0x23, 0x17, 0x88, 0xa9, 0xe2, 0xc4,
+ 0x05, 0x48, 0x09, 0x3f, 0x90, 0x94, 0x4c, 0x3c, 0xa1, 0x3a, 0xec, 0x3c, 0x1d, 0x9b, 0x49, 0x2b,
+ 0x29, 0x4b, 0x34, 0x1e, 0x81, 0xac, 0xe1, 0xa9, 0xad, 0xeb, 0xf7, 0xd8, 0x54, 0x6c, 0x26, 0xa5,
+ 0x64, 0x0c, 0x2f, 0xb8, 0xba, 0x9c, 0x7e, 0x2d, 0x06, 0xb9, 0xf6, 0xd7, 0x07, 0x68, 0x01, 0x52,
+ 0xa6, 0xad, 0x6b, 0x34, 0xb4, 0xd8, 0xbb, 0xab, 0x99, 0x88, 0x37, 0x0e, 0xb3, 0xcb, 0x5c, 0x5f,
+ 0x09, 0x90, 0x13, 0xff, 0x22, 0x41, 0x4a, 0x88, 0xd1, 0x01, 0x48, 0x38, 0x9a, 0xbf, 0x43, 0xe9,
+ 0x92, 0xa5, 0x98, 0x2c, 0x29, 0xf4, 0x99, 0xc8, 0x3d, 0x47, 0xb3, 0x68, 0x08, 0x70, 0x39, 0x79,
+ 0x26, 0xf3, 0x6a, 0x62, 0xad, 0x4a, 0xcf, 0x35, 0x76, 0xbd, 0x8e, 0x2d, 0xdf, 0x13, 0xf3, 0xca,
+ 0xe5, 0xf3, 0x5c, 0x8c, 0x9e, 0x80, 0x51, 0xdf, 0xd5, 0x0c, 0xb3, 0x4d, 0x37, 0x41, 0x75, 0x65,
+ 0xd1, 0x10, 0x28, 0x17, 0xe1, 0x90, 0xe0, 0xad, 0x62, 0x5f, 0xd3, 0x77, 0x70, 0xb5, 0x05, 0x1a,
+ 0xa4, 0xf7, 0x17, 0x07, 0xb9, 0xc2, 0x02, 0x6f, 0x17, 0xd8, 0xe9, 0x1f, 0x49, 0x30, 0x2a, 0x4e,
+ 0x62, 0xd5, 0xc0, 0x59, 0x15, 0x00, 0xcd, 0xb2, 0x6c, 0x3f, 0xec, 0xae, 0xee, 0x50, 0xee, 0xc2,
+ 0xcd, 0xce, 0x05, 0x20, 0x25, 0x44, 0x30, 0x51, 0x07, 0x68, 0xb5, 0xec, 0xe9, 0xb6, 0x49, 0xc8,
+ 0xf0, 0x77, 0x43, 0xf4, 0x05, 0x23, 0x3b, 0xbb, 0x03, 0x13, 0x91, 0x23, 0x1b, 0x1a, 0x87, 0xe4,
+ 0x16, 0xae, 0x19, 0x16, 0xbf, 0xf1, 0x65, 0x0f, 0xe2, 0x86, 0x25, 0x11, 0xdc, 0xb0, 0x94, 0x3e,
+ 0x05, 0x63, 0xba, 0x5d, 0xef, 0x34, 0xb7, 0x24, 0x77, 0xdc, 0x1f, 0x78, 0x1f, 0x97, 0x5e, 0x80,
+ 0x56, 0x89, 0xf9, 0xae, 0x24, 0x7d, 0x39, 0x16, 0x5f, 0x5c, 0x2b, 0x7d, 0x2d, 0x36, 0xb1, 0xc8,
+ 0xa0, 0x6b, 0x62, 0xa4, 0x0a, 0xde, 0x36, 0xb1, 0x4e, 0xac, 0x87, 0xaf, 0x3c, 0x01, 0x4f, 0xd5,
+ 0x0c, 0x7f, 0xa7, 0xb1, 0x35, 0xab, 0xdb, 0xf5, 0x63, 0x35, 0xbb, 0x66, 0xb7, 0xde, 0xa9, 0x92,
+ 0x27, 0xfa, 0x40, 0x7f, 0xf1, 0xf7, 0xaa, 0xe9, 0x40, 0x3a, 0x11, 0xf9, 0x12, 0xb6, 0xb8, 0x02,
+ 0x63, 0x5c, 0x59, 0xa5, 0x2f, 0x76, 0xd8, 0xf1, 0x04, 0xdd, 0xf3, 0x72, 0x2c, 0xff, 0x8d, 0x37,
+ 0x69, 0xba, 0x56, 0x46, 0x39, 0x94, 0xb4, 0xb1, 0x13, 0x4c, 0x51, 0x81, 0x07, 0xda, 0xf8, 0xd8,
+ 0xd2, 0xc4, 0x6e, 0x04, 0xe3, 0x0f, 0x38, 0xe3, 0x58, 0x88, 0x71, 0x9d, 0x43, 0x8b, 0xf3, 0x30,
+ 0xbc, 0x1f, 0xae, 0x7f, 0xe2, 0x5c, 0x59, 0x1c, 0x26, 0x59, 0x84, 0x11, 0x4a, 0xa2, 0x37, 0x3c,
+ 0xdf, 0xae, 0xd3, 0x7d, 0xef, 0xde, 0x34, 0xff, 0xfc, 0x26, 0x5b, 0x2b, 0x39, 0x02, 0x9b, 0x0f,
+ 0x50, 0xc5, 0x22, 0xd0, 0x77, 0x59, 0x55, 0xac, 0x9b, 0x11, 0x0c, 0x37, 0xb9, 0x21, 0x81, 0x7e,
+ 0xf1, 0x93, 0x30, 0x4e, 0x7e, 0xd3, 0x6d, 0x29, 0x6c, 0x49, 0xf4, 0x4d, 0x5a, 0xfe, 0x47, 0x2f,
+ 0xb1, 0xe5, 0x38, 0x16, 0x10, 0x84, 0x6c, 0x0a, 0xcd, 0x62, 0x0d, 0xfb, 0x3e, 0x76, 0x3d, 0x55,
+ 0x33, 0x7b, 0x99, 0x17, 0xba, 0x8a, 0xc8, 0x7f, 0xe1, 0xed, 0xf6, 0x59, 0x5c, 0x64, 0xc8, 0x39,
+ 0xd3, 0x2c, 0x6e, 0xc2, 0xc1, 0x1e, 0x51, 0xd1, 0x07, 0xe7, 0xcb, 0x9c, 0x73, 0xbc, 0x2b, 0x32,
+ 0x08, 0xed, 0x1a, 0x08, 0x79, 0x30, 0x97, 0x7d, 0x70, 0xfe, 0x31, 0xe7, 0x44, 0x1c, 0x2b, 0xa6,
+ 0x94, 0x30, 0x5e, 0x80, 0xd1, 0xab, 0xd8, 0xdd, 0xb2, 0x3d, 0x7e, 0xfd, 0xd3, 0x07, 0xdd, 0x2b,
+ 0x9c, 0x6e, 0x84, 0x03, 0xe9, 0x7d, 0x10, 0xe1, 0x7a, 0x06, 0x52, 0xdb, 0x9a, 0x8e, 0xfb, 0xa0,
+ 0xf8, 0x22, 0xa7, 0x18, 0x22, 0xfa, 0x04, 0x3a, 0x07, 0xd9, 0x9a, 0xcd, 0x33, 0x53, 0x34, 0xfc,
+ 0x55, 0x0e, 0xcf, 0x08, 0x0c, 0xa7, 0x70, 0x6c, 0xa7, 0x61, 0x92, 0xb4, 0x15, 0x4d, 0xf1, 0x27,
+ 0x82, 0x42, 0x60, 0x38, 0xc5, 0x3e, 0xdc, 0xfa, 0xa7, 0x82, 0xc2, 0x0b, 0xf9, 0xf3, 0x39, 0xc8,
+ 0xd8, 0x96, 0xd9, 0xb4, 0xad, 0x7e, 0x8c, 0xf8, 0x12, 0x67, 0x00, 0x0e, 0x21, 0x04, 0xe7, 0x20,
+ 0xdd, 0xef, 0x44, 0xfc, 0xf9, 0xdb, 0x62, 0x79, 0x88, 0x19, 0x58, 0x84, 0x11, 0xb1, 0x41, 0x19,
+ 0xb6, 0xd5, 0x07, 0xc5, 0x57, 0x38, 0x45, 0x2e, 0x04, 0xe3, 0xc3, 0xf0, 0xb1, 0xe7, 0xd7, 0x70,
+ 0x3f, 0x24, 0xaf, 0x89, 0x61, 0x70, 0x08, 0x77, 0xe5, 0x16, 0xb6, 0xf4, 0x9d, 0xfe, 0x18, 0xbe,
+ 0x2a, 0x5c, 0x29, 0x30, 0x84, 0x62, 0x1e, 0x86, 0xeb, 0x9a, 0xeb, 0xed, 0x68, 0x66, 0x5f, 0xd3,
+ 0xf1, 0x17, 0x9c, 0x23, 0x1b, 0x80, 0xb8, 0x47, 0x1a, 0xd6, 0x7e, 0x68, 0xbe, 0x26, 0x3c, 0x12,
+ 0x82, 0xf1, 0xa5, 0xe7, 0xf9, 0xf4, 0xae, 0x6c, 0x3f, 0x6c, 0x7f, 0x29, 0x96, 0x1e, 0xc3, 0x56,
+ 0xc2, 0x8c, 0xe7, 0x20, 0xed, 0x19, 0xd7, 0xfb, 0xa2, 0xf9, 0x2b, 0x31, 0xd3, 0x14, 0x40, 0xc0,
+ 0x97, 0xe0, 0x50, 0xcf, 0x34, 0xd1, 0x07, 0xd9, 0x5f, 0x73, 0xb2, 0x03, 0x3d, 0x52, 0x05, 0xdf,
+ 0x12, 0xf6, 0x4b, 0xf9, 0x37, 0x62, 0x4b, 0xc0, 0x1d, 0x5c, 0x6b, 0xe4, 0xac, 0xe0, 0x69, 0xdb,
+ 0xfb, 0xf3, 0xda, 0xdf, 0x0a, 0xaf, 0x31, 0x6c, 0x9b, 0xd7, 0x36, 0xe0, 0x00, 0x67, 0xdc, 0xdf,
+ 0xbc, 0x7e, 0x5d, 0x6c, 0xac, 0x0c, 0xbd, 0xd9, 0x3e, 0xbb, 0x9f, 0x82, 0x89, 0xc0, 0x9d, 0xa2,
+ 0x28, 0xf5, 0xd4, 0xba, 0xe6, 0xf4, 0xc1, 0xfc, 0x0d, 0xce, 0x2c, 0x76, 0xfc, 0xa0, 0xaa, 0xf5,
+ 0x2a, 0x9a, 0x43, 0xc8, 0x9f, 0x87, 0xbc, 0x20, 0x6f, 0x58, 0x2e, 0xd6, 0xed, 0x9a, 0x65, 0x5c,
+ 0xc7, 0xd5, 0x3e, 0xa8, 0xbf, 0xd9, 0x31, 0x55, 0x9b, 0x21, 0x38, 0x61, 0x5e, 0x02, 0x39, 0xa8,
+ 0x55, 0x54, 0xa3, 0xee, 0xd8, 0xae, 0x1f, 0xc1, 0xf8, 0x77, 0x62, 0xa6, 0x02, 0xdc, 0x12, 0x85,
+ 0x15, 0xcb, 0x90, 0xa3, 0x8f, 0xfd, 0x86, 0xe4, 0xdf, 0x73, 0xa2, 0xe1, 0x16, 0x8a, 0x6f, 0x1c,
+ 0xba, 0x5d, 0x77, 0x34, 0xb7, 0x9f, 0xfd, 0xef, 0x5b, 0x62, 0xe3, 0xe0, 0x10, 0xbe, 0x71, 0xf8,
+ 0x4d, 0x07, 0x93, 0x6c, 0xdf, 0x07, 0xc3, 0xb7, 0xc5, 0xc6, 0x21, 0x30, 0x9c, 0x42, 0x14, 0x0c,
+ 0x7d, 0x50, 0xfc, 0x83, 0xa0, 0x10, 0x18, 0x42, 0xf1, 0x89, 0x56, 0xa2, 0x75, 0x71, 0xcd, 0xf0,
+ 0x7c, 0x97, 0x95, 0xc2, 0xf7, 0xa6, 0xfa, 0xce, 0xdb, 0xed, 0x45, 0x98, 0x12, 0x82, 0x92, 0x9d,
+ 0x88, 0x5f, 0xa1, 0xd2, 0x93, 0x52, 0xb4, 0x61, 0xdf, 0x15, 0x3b, 0x51, 0x08, 0x46, 0x6c, 0x0b,
+ 0x55, 0x88, 0xc4, 0xed, 0x3a, 0x39, 0x1f, 0xf4, 0x41, 0xf7, 0xbd, 0x0e, 0xe3, 0xd6, 0x05, 0x96,
+ 0x70, 0x86, 0xea, 0x9f, 0x86, 0x75, 0x05, 0x37, 0xfb, 0x8a, 0xce, 0x7f, 0xec, 0xa8, 0x7f, 0x36,
+ 0x19, 0x92, 0xed, 0x21, 0x23, 0x1d, 0xf5, 0x14, 0x8a, 0xfa, 0x0a, 0x28, 0xff, 0xcb, 0x77, 0xf8,
+ 0x78, 0xdb, 0xcb, 0xa9, 0xe2, 0x32, 0x09, 0xf2, 0xf6, 0xa2, 0x27, 0x9a, 0xec, 0xa5, 0x3b, 0x41,
+ 0x9c, 0xb7, 0xd5, 0x3c, 0xc5, 0xf3, 0x30, 0xdc, 0x56, 0xf0, 0x44, 0x53, 0xfd, 0x0a, 0xa7, 0xca,
+ 0x86, 0xeb, 0x9d, 0xe2, 0x29, 0x48, 0x90, 0xe2, 0x25, 0x1a, 0xfe, 0xab, 0x1c, 0x4e, 0xd5, 0x8b,
+ 0x1f, 0x83, 0x94, 0x28, 0x5a, 0xa2, 0xa1, 0xbf, 0xc6, 0xa1, 0x01, 0x84, 0xc0, 0x45, 0xc1, 0x12,
+ 0x0d, 0xff, 0xac, 0x80, 0x0b, 0x08, 0x81, 0xf7, 0xef, 0xc2, 0xef, 0xff, 0x46, 0x82, 0x27, 0x1d,
+ 0xe1, 0xbb, 0x73, 0x30, 0xc4, 0x2b, 0x95, 0x68, 0xf4, 0xe7, 0x78, 0xe7, 0x02, 0x51, 0x3c, 0x03,
+ 0xc9, 0x3e, 0x1d, 0xfe, 0x5b, 0x1c, 0xca, 0xf4, 0x8b, 0xf3, 0x90, 0x09, 0x55, 0x27, 0xd1, 0xf0,
+ 0xdf, 0xe6, 0xf0, 0x30, 0x8a, 0x98, 0xce, 0xab, 0x93, 0x68, 0x82, 0xdf, 0x11, 0xa6, 0x73, 0x04,
+ 0x71, 0x9b, 0x28, 0x4c, 0xa2, 0xd1, 0xbf, 0x2b, 0xbc, 0x2e, 0x20, 0xc5, 0xe7, 0x20, 0x1d, 0x24,
+ 0x9b, 0x68, 0xfc, 0xef, 0x71, 0x7c, 0x0b, 0x43, 0x3c, 0x10, 0x4a, 0x76, 0xd1, 0x14, 0xbf, 0x2f,
+ 0x3c, 0x10, 0x42, 0x91, 0x65, 0xd4, 0x59, 0xc0, 0x44, 0x33, 0xfd, 0x81, 0x58, 0x46, 0x1d, 0xf5,
+ 0x0b, 0x99, 0x4d, 0xba, 0xe7, 0x47, 0x53, 0xfc, 0xa1, 0x98, 0x4d, 0xaa, 0x4f, 0xcc, 0xe8, 0xac,
+ 0x08, 0xa2, 0x39, 0xfe, 0x48, 0x98, 0xd1, 0x51, 0x10, 0x14, 0xd7, 0x00, 0x75, 0x57, 0x03, 0xd1,
+ 0x7c, 0x9f, 0xe7, 0x7c, 0xa3, 0x5d, 0xc5, 0x40, 0xf1, 0x22, 0x1c, 0xe8, 0x5d, 0x09, 0x44, 0xb3,
+ 0x7e, 0xe1, 0x4e, 0xc7, 0xd9, 0x2d, 0x5c, 0x08, 0x14, 0x37, 0x5a, 0x29, 0x25, 0x5c, 0x05, 0x44,
+ 0xd3, 0xbe, 0x7c, 0xa7, 0x7d, 0xe3, 0x0e, 0x17, 0x01, 0xc5, 0x39, 0x80, 0x56, 0x02, 0x8e, 0xe6,
+ 0x7a, 0x85, 0x73, 0x85, 0x40, 0x64, 0x69, 0xf0, 0xfc, 0x1b, 0x8d, 0xff, 0xa2, 0x58, 0x1a, 0x1c,
+ 0x41, 0x96, 0x86, 0x48, 0xbd, 0xd1, 0xe8, 0x57, 0xc5, 0xd2, 0x10, 0x10, 0x12, 0xd9, 0xa1, 0xec,
+ 0x16, 0xcd, 0xf0, 0x25, 0x11, 0xd9, 0x21, 0x54, 0x71, 0x05, 0x46, 0xbb, 0x12, 0x62, 0x34, 0xd5,
+ 0x97, 0x39, 0x95, 0xdc, 0x99, 0x0f, 0xc3, 0xc9, 0x8b, 0x27, 0xc3, 0x68, 0xb6, 0x3f, 0xeb, 0x48,
+ 0x5e, 0x3c, 0x17, 0x16, 0xcf, 0x41, 0xca, 0x6a, 0x98, 0x26, 0x59, 0x3c, 0xe8, 0xde, 0x5f, 0xee,
+ 0xe5, 0x7f, 0xf2, 0x1e, 0xf7, 0x8e, 0x00, 0x14, 0x4f, 0x41, 0x12, 0xd7, 0xb7, 0x70, 0x35, 0x0a,
+ 0xf9, 0x1f, 0xef, 0x89, 0x0d, 0x93, 0x68, 0x17, 0x9f, 0x03, 0x60, 0x57, 0x23, 0xf4, 0xb5, 0x5f,
+ 0x04, 0xf6, 0x3f, 0xdf, 0xe3, 0xdf, 0xd4, 0xb4, 0x20, 0x2d, 0x02, 0xf6, 0x85, 0xce, 0xbd, 0x09,
+ 0xde, 0x6e, 0x27, 0xa0, 0x33, 0xf2, 0x0c, 0x0c, 0x5d, 0xf6, 0x6c, 0xcb, 0xd7, 0x6a, 0x51, 0xe8,
+ 0xff, 0xe2, 0x68, 0xa1, 0x4f, 0x1c, 0x56, 0xb7, 0x5d, 0xec, 0x6b, 0x35, 0x2f, 0x0a, 0xfb, 0xdf,
+ 0x1c, 0x1b, 0x00, 0x08, 0x58, 0xd7, 0x3c, 0xbf, 0x9f, 0x71, 0xff, 0x8f, 0x00, 0x0b, 0x00, 0x31,
+ 0x9a, 0xfc, 0xbe, 0x82, 0x9b, 0x51, 0xd8, 0x77, 0x84, 0xd1, 0x5c, 0xbf, 0xf8, 0x31, 0x48, 0x93,
+ 0x9f, 0xec, 0x43, 0xb9, 0x08, 0xf0, 0xff, 0x72, 0x70, 0x0b, 0x41, 0x7a, 0xf6, 0xfc, 0xaa, 0x6f,
+ 0x44, 0x3b, 0xfb, 0xff, 0xf8, 0x4c, 0x0b, 0xfd, 0xe2, 0x1c, 0x64, 0x3c, 0xbf, 0x5a, 0x6d, 0xf0,
+ 0xfa, 0x34, 0x02, 0xfe, 0xff, 0xef, 0x05, 0x57, 0x16, 0x01, 0x86, 0xcc, 0xf6, 0xb5, 0x2b, 0xbe,
+ 0x63, 0xd3, 0xd7, 0x1c, 0x51, 0x0c, 0x77, 0x38, 0x43, 0x08, 0x52, 0x2a, 0xf7, 0xbe, 0xbe, 0x85,
+ 0x45, 0x7b, 0xd1, 0x66, 0x17, 0xb7, 0x2f, 0x4c, 0x47, 0xdf, 0xc0, 0xc2, 0x37, 0x47, 0xe0, 0xb0,
+ 0x6e, 0xd7, 0xb7, 0x6c, 0xef, 0x98, 0x85, 0x0d, 0x7f, 0x07, 0xbb, 0xc7, 0xc4, 0xdc, 0xf0, 0x8b,
+ 0xd9, 0x60, 0xae, 0x26, 0xf6, 0x77, 0xa3, 0x3b, 0xfd, 0x93, 0x61, 0x48, 0xcd, 0x6b, 0x9e, 0xaf,
+ 0x5d, 0xd3, 0x9a, 0xe8, 0x61, 0x48, 0x2d, 0x59, 0xfe, 0x89, 0xe3, 0x6b, 0xbe, 0x4b, 0x5f, 0x4a,
+ 0xc6, 0x4b, 0xe9, 0xbb, 0xb7, 0x26, 0x93, 0x06, 0x91, 0x29, 0x41, 0x13, 0x3a, 0x0a, 0x49, 0xfa,
+ 0x9b, 0xde, 0x6b, 0xc7, 0x4b, 0xc3, 0x37, 0x6f, 0x4d, 0x0e, 0xb4, 0xf4, 0x58, 0x1b, 0xba, 0x04,
+ 0x99, 0x4a, 0x73, 0xd3, 0xb0, 0xfc, 0xd3, 0x27, 0x09, 0x1d, 0xf1, 0x4d, 0xa2, 0x74, 0xe6, 0xee,
+ 0xad, 0xc9, 0x13, 0x7b, 0x1a, 0x48, 0x8a, 0x8a, 0xd6, 0xc0, 0x04, 0x9a, 0x7e, 0x8d, 0x1c, 0xe6,
+ 0x42, 0x17, 0x21, 0x25, 0x1e, 0xd9, 0xfb, 0xa1, 0xd2, 0x39, 0x6e, 0xc2, 0x7d, 0x71, 0x07, 0x64,
+ 0xe8, 0x17, 0x20, 0x5b, 0x69, 0x9e, 0x37, 0x6d, 0x8d, 0xfb, 0x20, 0x39, 0x25, 0xcd, 0xc4, 0x4a,
+ 0x67, 0xef, 0xde, 0x9a, 0x3c, 0xd9, 0x37, 0x31, 0x87, 0x53, 0xe6, 0x36, 0x36, 0xf4, 0x02, 0xa4,
+ 0x83, 0x67, 0xfa, 0x06, 0x2a, 0x56, 0xfa, 0x28, 0xb7, 0xfb, 0xfe, 0xe8, 0x5b, 0x74, 0x21, 0xcb,
+ 0x99, 0xbb, 0x87, 0xa6, 0xa4, 0x19, 0xe9, 0x7e, 0x2c, 0xe7, 0x3e, 0x69, 0x63, 0x0b, 0x59, 0x7e,
+ 0xfa, 0x24, 0x7d, 0xe5, 0x25, 0xdd, 0xaf, 0xe5, 0x9c, 0xbe, 0x45, 0x87, 0x2e, 0xc0, 0x50, 0xa5,
+ 0x59, 0x6a, 0xfa, 0xd8, 0xa3, 0x1f, 0xb9, 0x65, 0x4b, 0x4f, 0xdf, 0xbd, 0x35, 0xf9, 0x64, 0x9f,
+ 0xac, 0x14, 0xa7, 0x08, 0x02, 0x34, 0x05, 0x99, 0x15, 0xdb, 0xad, 0x6b, 0x26, 0xe3, 0x03, 0xf6,
+ 0x0a, 0x2f, 0x24, 0x42, 0x9b, 0x64, 0x24, 0x6c, 0xb6, 0x3d, 0xfa, 0xff, 0x51, 0x3f, 0x43, 0x4c,
+ 0xb6, 0x98, 0x90, 0x01, 0xc9, 0x4a, 0xb3, 0xa2, 0x39, 0xf9, 0x2c, 0x7d, 0xbf, 0x74, 0x78, 0x36,
+ 0x40, 0x88, 0xb5, 0x35, 0x4b, 0xdb, 0xe9, 0x87, 0x38, 0xa5, 0x93, 0x77, 0x6f, 0x4d, 0x3e, 0xdd,
+ 0x77, 0x8f, 0x15, 0xcd, 0xa1, 0xdd, 0xb1, 0x1e, 0xd0, 0xb7, 0x24, 0xb2, 0xb0, 0xd8, 0x05, 0x3d,
+ 0xe9, 0x71, 0x98, 0xf6, 0x78, 0xb4, 0x67, 0x8f, 0x81, 0x16, 0xeb, 0xd7, 0xfa, 0xcc, 0xeb, 0xfb,
+ 0x18, 0x29, 0x3b, 0x17, 0x92, 0xae, 0x7f, 0xfd, 0xf5, 0xfb, 0x5e, 0xb4, 0x81, 0x05, 0xe8, 0x25,
+ 0x09, 0x86, 0x2b, 0xcd, 0x15, 0x9e, 0xc0, 0x89, 0xe5, 0x39, 0xfe, 0x5f, 0x34, 0xbd, 0x2c, 0x0f,
+ 0xe9, 0x31, 0xdb, 0x4f, 0x7f, 0xe6, 0xf5, 0xc9, 0xe3, 0x7d, 0x1b, 0x41, 0xb7, 0x20, 0x6a, 0x43,
+ 0x7b, 0x9f, 0xe8, 0xb3, 0xd4, 0x8a, 0x32, 0x29, 0x06, 0xaa, 0xb8, 0x4a, 0xac, 0x18, 0xb9, 0x87,
+ 0x15, 0x21, 0x3d, 0x66, 0x45, 0x91, 0x44, 0xfd, 0xfd, 0x5b, 0x12, 0xe2, 0x43, 0xab, 0x30, 0xc8,
+ 0x3c, 0x4c, 0x3f, 0xb0, 0x4c, 0xef, 0x33, 0x0c, 0x5b, 0x93, 0xa3, 0x70, 0x9a, 0x89, 0xb3, 0x00,
+ 0xad, 0x18, 0x43, 0x32, 0xc4, 0xaf, 0xe0, 0x26, 0xff, 0x8a, 0x96, 0xfc, 0x44, 0xe3, 0xad, 0xcf,
+ 0xdc, 0xa5, 0x99, 0x04, 0xff, 0x76, 0xbd, 0x18, 0x3b, 0x2b, 0x4d, 0x3c, 0x0b, 0x72, 0x67, 0xac,
+ 0xec, 0x0b, 0xaf, 0x00, 0xea, 0x9e, 0xb1, 0x30, 0x43, 0x92, 0x31, 0x3c, 0x12, 0x66, 0xc8, 0x1c,
+ 0x97, 0x5b, 0x3e, 0xbf, 0x68, 0x98, 0x9e, 0x6d, 0x75, 0x71, 0x76, 0xfa, 0xff, 0x67, 0xe3, 0x9c,
+ 0x2e, 0xc0, 0x20, 0x13, 0x92, 0xb1, 0x2c, 0xd1, 0xf4, 0x41, 0xb3, 0x9c, 0xc2, 0x1e, 0x4a, 0xcb,
+ 0x37, 0x6f, 0x17, 0x06, 0x7e, 0x78, 0xbb, 0x30, 0xf0, 0xaf, 0xb7, 0x0b, 0x03, 0x6f, 0xdc, 0x2e,
+ 0x48, 0x6f, 0xdd, 0x2e, 0x48, 0xef, 0xdc, 0x2e, 0x48, 0xef, 0xde, 0x2e, 0x48, 0x37, 0x76, 0x0b,
+ 0xd2, 0x57, 0x77, 0x0b, 0xd2, 0xd7, 0x77, 0x0b, 0xd2, 0x77, 0x76, 0x0b, 0xd2, 0xf7, 0x77, 0x0b,
+ 0xd2, 0xcd, 0xdd, 0xc2, 0xc0, 0x0f, 0x77, 0x0b, 0x03, 0x6f, 0xec, 0x16, 0xa4, 0xb7, 0x76, 0x0b,
+ 0x03, 0xef, 0xec, 0x16, 0xa4, 0x77, 0x77, 0x0b, 0x03, 0x37, 0x7e, 0x5c, 0x18, 0xf8, 0x69, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0x98, 0xc1, 0x05, 0xa0, 0xa9, 0x3a, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -1383,55 +1435,3 @@ func valueToStringCasttype(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
-
-func init() {
- proto.RegisterFile("combos/neither/casttype.proto", fileDescriptor_casttype_d04722a9b63e08e7)
-}
-
-var fileDescriptor_casttype_d04722a9b63e08e7 = []byte{
- // 695 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x40,
- 0x14, 0xc7, 0x7d, 0x4d, 0xd3, 0x26, 0x97, 0x06, 0xa2, 0x13, 0x83, 0x55, 0xa9, 0x67, 0xab, 0x55,
- 0x91, 0x07, 0x48, 0xaa, 0x34, 0x2a, 0x55, 0x41, 0x0c, 0xae, 0x8a, 0x54, 0x84, 0x0b, 0x32, 0x54,
- 0x15, 0x88, 0xc5, 0x69, 0x4d, 0x6a, 0xe1, 0xd8, 0x51, 0x7c, 0x01, 0x79, 0xab, 0xca, 0x80, 0xc4,
- 0x5f, 0xc2, 0xc8, 0x82, 0xc4, 0xc8, 0xd8, 0xb1, 0x23, 0x53, 0x5a, 0x9b, 0xa5, 0x6c, 0x1d, 0xab,
- 0x4c, 0xe8, 0xee, 0x1c, 0xdb, 0xfd, 0x01, 0x4a, 0xdd, 0xed, 0xde, 0xdd, 0x7b, 0x9f, 0xf7, 0xbd,
- 0x77, 0xef, 0xee, 0xe0, 0xcc, 0xb6, 0xdb, 0x6e, 0xba, 0x5e, 0xcd, 0x31, 0x2d, 0xb2, 0x6b, 0x76,
- 0x6b, 0xdb, 0x86, 0x47, 0x88, 0xdf, 0x31, 0xab, 0x9d, 0xae, 0x4b, 0x5c, 0x54, 0x18, 0xda, 0xd3,
- 0xf7, 0x5b, 0x16, 0xd9, 0xed, 0x35, 0xab, 0xdb, 0x6e, 0xbb, 0xd6, 0x72, 0x5b, 0x6e, 0x8d, 0x39,
- 0x34, 0x7b, 0xef, 0x98, 0xc5, 0x0c, 0x36, 0xe2, 0x81, 0xb3, 0x7f, 0xca, 0xb0, 0xb0, 0x6a, 0x78,
- 0xc4, 0xf8, 0x68, 0xf8, 0x68, 0x1e, 0x16, 0xd6, 0x1d, 0xb2, 0x58, 0x7f, 0x41, 0xba, 0x22, 0x90,
- 0x81, 0x92, 0x53, 0x8b, 0x83, 0xbe, 0x94, 0xb7, 0xe8, 0x9c, 0x1e, 0x2f, 0xa1, 0x39, 0x98, 0x67,
- 0x63, 0x71, 0x8c, 0xf9, 0x94, 0x0f, 0xfa, 0x92, 0x90, 0xf8, 0xf1, 0x35, 0xf4, 0x1a, 0x96, 0x34,
- 0x7f, 0xd3, 0x72, 0xc8, 0x52, 0x83, 0xe2, 0x72, 0x32, 0x50, 0xc6, 0xd5, 0x07, 0x83, 0xbe, 0xb4,
- 0xf8, 0x4f, 0x81, 0xc4, 0xf4, 0x48, 0xb2, 0xb1, 0x61, 0xf4, 0x2b, 0xbf, 0x63, 0xea, 0x69, 0x16,
- 0xda, 0x82, 0x85, 0xa1, 0x29, 0x8e, 0x33, 0xee, 0xc3, 0x48, 0x42, 0x26, 0x76, 0x0c, 0x43, 0x6f,
- 0xe1, 0x94, 0xe6, 0x3f, 0xb1, 0x5d, 0x23, 0xaa, 0x41, 0x5e, 0x06, 0xca, 0x98, 0xba, 0x3c, 0xe8,
- 0x4b, 0x8d, 0x91, 0xc1, 0x51, 0x38, 0x23, 0x9f, 0xa3, 0xa1, 0x37, 0xb0, 0x18, 0xdb, 0xe2, 0x04,
- 0x43, 0x3f, 0x8a, 0x74, 0x67, 0xc3, 0x27, 0xb8, 0x94, 0x72, 0x5e, 0xee, 0x49, 0x19, 0x28, 0x20,
- 0x8b, 0xf2, 0xa8, 0x26, 0xe7, 0x68, 0x29, 0xe5, 0x4b, 0x0d, 0xb1, 0xc0, 0xd0, 0x19, 0x95, 0x47,
- 0xf8, 0x04, 0x87, 0x9e, 0xc2, 0x49, 0xcd, 0x57, 0x7d, 0x62, 0x7a, 0x62, 0x51, 0x06, 0xca, 0x94,
- 0xba, 0x30, 0xe8, 0x4b, 0xf7, 0x46, 0xa4, 0xb2, 0x38, 0x7d, 0x08, 0x40, 0x32, 0x2c, 0x6d, 0xb8,
- 0xdd, 0xb6, 0x61, 0x73, 0x1e, 0xa4, 0x3c, 0x3d, 0x3d, 0x85, 0x36, 0xe9, 0x4e, 0xf8, 0x69, 0x7b,
- 0x62, 0x49, 0xce, 0xdd, 0xa4, 0x27, 0x13, 0x12, 0xb2, 0x60, 0x5e, 0xf3, 0x35, 0xa3, 0x23, 0x4e,
- 0xc9, 0x39, 0xa5, 0x54, 0x9f, 0xa9, 0xc6, 0x11, 0xc3, 0xbb, 0x55, 0x65, 0xeb, 0x6b, 0x0e, 0xe9,
- 0xfa, 0x6a, 0x63, 0xd0, 0x97, 0x16, 0x46, 0xce, 0xa8, 0x19, 0x1d, 0x96, 0x8e, 0x67, 0x40, 0xdf,
- 0x01, 0xbd, 0x58, 0xab, 0x3d, 0x8f, 0xb8, 0x6d, 0x9a, 0xb1, 0xcc, 0x32, 0xce, 0x5d, 0x99, 0x31,
- 0xf6, 0xe2, 0x79, 0x9d, 0xfd, 0xa3, 0x6b, 0xec, 0xf4, 0x25, 0xe9, 0x5a, 0x4e, 0x8b, 0xa6, 0xfe,
- 0x72, 0x94, 0xf9, 0xd2, 0xc6, 0x0a, 0xd0, 0x27, 0x00, 0xcb, 0x9a, 0xbf, 0xd1, 0xb3, 0x6d, 0xa3,
- 0x69, 0x9b, 0x54, 0xf9, 0x2d, 0xa6, 0x7c, 0xfe, 0x4a, 0xe5, 0x29, 0x3f, 0xae, 0x7d, 0x69, 0xff,
- 0x48, 0xaa, 0x8f, 0x2c, 0x82, 0x3d, 0x41, 0x4c, 0xc3, 0xf9, 0x9c, 0xe8, 0x33, 0x53, 0xb1, 0xd6,
- 0x6e, 0x9a, 0x3b, 0x3b, 0xe6, 0x0e, 0x55, 0x71, 0xfb, 0x3f, 0x2a, 0x52, 0x7e, 0x5c, 0xc5, 0x0a,
- 0xed, 0xfa, 0xec, 0x4a, 0x52, 0x3c, 0xf4, 0x1c, 0x4e, 0xf0, 0x0a, 0x8b, 0x15, 0x19, 0x28, 0xc5,
- 0x6b, 0xb6, 0x61, 0x72, 0x38, 0x7a, 0x84, 0x99, 0x5e, 0x86, 0x30, 0xe9, 0x31, 0x54, 0x81, 0xb9,
- 0xf7, 0xa6, 0xcf, 0x5e, 0xf1, 0xa2, 0x4e, 0x87, 0xe8, 0x0e, 0xcc, 0x7f, 0x30, 0xec, 0x9e, 0xc9,
- 0x5e, 0xed, 0x71, 0x9d, 0x1b, 0x2b, 0x63, 0xcb, 0x60, 0xfa, 0x31, 0xac, 0x5c, 0xec, 0x95, 0x6b,
- 0xc5, 0xeb, 0x10, 0x5d, 0x3e, 0xb1, 0x34, 0x21, 0xcf, 0x09, 0x77, 0xd3, 0x84, 0x52, 0xbd, 0x92,
- 0xd4, 0x7c, 0xcb, 0xb2, 0x3d, 0xd7, 0xb9, 0xc4, 0xbc, 0x58, 0xff, 0x9b, 0x31, 0x67, 0x31, 0x9c,
- 0xe0, 0x93, 0x74, 0x2f, 0xeb, 0xec, 0xfb, 0x60, 0xbf, 0x9c, 0xce, 0x0d, 0xf5, 0xd9, 0x41, 0x80,
- 0x85, 0xc3, 0x00, 0x0b, 0xbf, 0x02, 0x2c, 0x1c, 0x07, 0x18, 0x9c, 0x04, 0x18, 0x9c, 0x06, 0x18,
- 0x9c, 0x05, 0x18, 0xec, 0x85, 0x18, 0x7c, 0x0d, 0x31, 0xf8, 0x16, 0x62, 0xf0, 0x23, 0xc4, 0xe0,
- 0x67, 0x88, 0xc1, 0x41, 0x88, 0x85, 0xc3, 0x10, 0x0b, 0xc7, 0x21, 0x06, 0x27, 0x21, 0x16, 0x4e,
- 0x43, 0x0c, 0xce, 0x42, 0x2c, 0xec, 0xfd, 0xc6, 0xc2, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3f,
- 0x22, 0x40, 0x8d, 0xb2, 0x07, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.pb.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.pb.go
index 3505678fee..f2a0299445 100644
--- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.pb.go
@@ -3,25 +3,23 @@
package casttype
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-
-import io "io"
-import encoding_binary "encoding/binary"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -59,7 +57,7 @@ type Castaway struct {
func (m *Castaway) Reset() { *m = Castaway{} }
func (*Castaway) ProtoMessage() {}
func (*Castaway) Descriptor() ([]byte, []int) {
- return fileDescriptor_casttype_bbbbfd21588d9441, []int{0}
+ return fileDescriptor_46f4856cfc83fd14, []int{0}
}
func (m *Castaway) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -67,8 +65,8 @@ func (m *Castaway) XXX_Unmarshal(b []byte) error {
func (m *Castaway) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Castaway.Marshal(b, m, deterministic)
}
-func (dst *Castaway) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Castaway.Merge(dst, src)
+func (m *Castaway) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Castaway.Merge(m, src)
}
func (m *Castaway) XXX_Size() int {
return xxx_messageInfo_Castaway.Size(m)
@@ -89,7 +87,7 @@ type Wilson struct {
func (m *Wilson) Reset() { *m = Wilson{} }
func (*Wilson) ProtoMessage() {}
func (*Wilson) Descriptor() ([]byte, []int) {
- return fileDescriptor_casttype_bbbbfd21588d9441, []int{1}
+ return fileDescriptor_46f4856cfc83fd14, []int{1}
}
func (m *Wilson) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -97,8 +95,8 @@ func (m *Wilson) XXX_Unmarshal(b []byte) error {
func (m *Wilson) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Wilson.Marshal(b, m, deterministic)
}
-func (dst *Wilson) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Wilson.Merge(dst, src)
+func (m *Wilson) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Wilson.Merge(m, src)
}
func (m *Wilson) XXX_Size() int {
return xxx_messageInfo_Wilson.Size(m)
@@ -117,6 +115,57 @@ func init() {
proto.RegisterMapType((map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson)(nil), "casttype.Castaway.MyNullableMapEntry")
proto.RegisterType((*Wilson)(nil), "casttype.Wilson")
}
+
+func init() { proto.RegisterFile("combos/unmarshaler/casttype.proto", fileDescriptor_46f4856cfc83fd14) }
+
+var fileDescriptor_46f4856cfc83fd14 = []byte{
+ // 698 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x40,
+ 0x14, 0xc7, 0x7d, 0x4d, 0xd3, 0x26, 0x97, 0x06, 0xa2, 0x13, 0x83, 0x55, 0x89, 0xb3, 0x69, 0x55,
+ 0xe4, 0x01, 0x92, 0x2a, 0x8d, 0x4a, 0x55, 0x10, 0x83, 0xab, 0x22, 0x15, 0xe1, 0x82, 0x0c, 0x55,
+ 0x05, 0x62, 0xb9, 0xb4, 0x26, 0x8d, 0x70, 0xec, 0xc8, 0xbe, 0x80, 0xbc, 0x55, 0x65, 0x40, 0xe2,
+ 0x2f, 0x61, 0x64, 0x41, 0x62, 0x64, 0xec, 0xd8, 0x91, 0x29, 0xad, 0xcd, 0x52, 0xb6, 0x8e, 0x55,
+ 0x26, 0x74, 0x77, 0x4e, 0xec, 0xfe, 0x00, 0xa5, 0xe9, 0x76, 0xef, 0xee, 0xbd, 0xcf, 0xfb, 0xde,
+ 0xbb, 0x77, 0x77, 0xf0, 0xce, 0x96, 0xdb, 0xaa, 0xbb, 0x7e, 0xa5, 0xe3, 0xb4, 0x88, 0xe7, 0xef,
+ 0x10, 0xdb, 0xf2, 0x2a, 0x5b, 0xc4, 0xa7, 0x34, 0x68, 0x5b, 0xe5, 0xb6, 0xe7, 0x52, 0x17, 0xe5,
+ 0xfa, 0xf6, 0xf4, 0xfd, 0x46, 0x93, 0xee, 0x74, 0xea, 0xe5, 0x2d, 0xb7, 0x55, 0x69, 0xb8, 0x0d,
+ 0xb7, 0xc2, 0x1d, 0xea, 0x9d, 0x77, 0xdc, 0xe2, 0x06, 0x1f, 0x89, 0xc0, 0x99, 0x3f, 0x45, 0x98,
+ 0x5b, 0x21, 0x3e, 0x25, 0x1f, 0x49, 0x80, 0xe6, 0x60, 0x6e, 0xcd, 0xa1, 0x0b, 0xd5, 0x17, 0xd4,
+ 0x93, 0x81, 0x0a, 0xb4, 0x8c, 0x9e, 0xef, 0x75, 0x95, 0x6c, 0x93, 0xcd, 0x99, 0x83, 0x25, 0x34,
+ 0x0b, 0xb3, 0x7c, 0x2c, 0x8f, 0x71, 0x9f, 0xe2, 0x7e, 0x57, 0x91, 0x12, 0x3f, 0xb1, 0x86, 0x5e,
+ 0xc3, 0x82, 0x11, 0x6c, 0x34, 0x1d, 0xba, 0x58, 0x63, 0xb8, 0x8c, 0x0a, 0xb4, 0x71, 0xfd, 0x41,
+ 0xaf, 0xab, 0x2c, 0xfc, 0x53, 0x20, 0xb5, 0x7c, 0x9a, 0x6c, 0xac, 0x1f, 0xfd, 0x2a, 0x68, 0x5b,
+ 0x66, 0x9a, 0x85, 0x36, 0x61, 0xae, 0x6f, 0xca, 0xe3, 0x9c, 0xfb, 0x30, 0x96, 0x30, 0x12, 0x7b,
+ 0x00, 0x43, 0x6f, 0xe1, 0x94, 0x11, 0x3c, 0xb1, 0x5d, 0x12, 0xd7, 0x20, 0xab, 0x02, 0x6d, 0x4c,
+ 0x5f, 0xea, 0x75, 0x95, 0xda, 0xd0, 0xe0, 0x38, 0x9c, 0x93, 0xcf, 0xd0, 0xd0, 0x1b, 0x98, 0x1f,
+ 0xd8, 0xf2, 0x04, 0x47, 0x3f, 0x8a, 0x75, 0x8f, 0x86, 0x4f, 0x70, 0x29, 0xe5, 0xa2, 0xdc, 0x93,
+ 0x2a, 0xd0, 0xc0, 0x28, 0xca, 0xe3, 0x9a, 0x9c, 0xa1, 0xa5, 0x94, 0x2f, 0xd6, 0xe4, 0x1c, 0x47,
+ 0x8f, 0xa8, 0x3c, 0xc6, 0x27, 0x38, 0xf4, 0x14, 0x4e, 0x1a, 0x81, 0x1e, 0x50, 0xcb, 0x97, 0xf3,
+ 0x2a, 0xd0, 0xa6, 0xf4, 0xf9, 0x5e, 0x57, 0xb9, 0x37, 0x24, 0x95, 0xc7, 0x99, 0x7d, 0x00, 0x52,
+ 0x61, 0x61, 0xdd, 0xf5, 0x5a, 0xc4, 0x16, 0x3c, 0xc8, 0x78, 0x66, 0x7a, 0x0a, 0x6d, 0xb0, 0x9d,
+ 0x88, 0xd3, 0xf6, 0xe5, 0x82, 0x9a, 0xb9, 0x4e, 0x4f, 0x26, 0x24, 0xd4, 0x84, 0x59, 0x23, 0x30,
+ 0x48, 0x5b, 0x9e, 0x52, 0x33, 0x5a, 0xa1, 0x7a, 0xbb, 0x3c, 0x88, 0xe8, 0xdf, 0xad, 0x32, 0x5f,
+ 0x5f, 0x75, 0xa8, 0x17, 0xe8, 0xb5, 0x5e, 0x57, 0x99, 0x1f, 0x3a, 0xa3, 0x41, 0xda, 0x3c, 0x9d,
+ 0xc8, 0x80, 0xbe, 0x03, 0x76, 0xb1, 0x56, 0x3a, 0x3e, 0x75, 0x5b, 0x2c, 0x63, 0x91, 0x67, 0x9c,
+ 0xbd, 0x34, 0xe3, 0xc0, 0x4b, 0xe4, 0x75, 0xf6, 0x0e, 0xaf, 0xb0, 0xd3, 0x97, 0xd4, 0x6b, 0x3a,
+ 0x0d, 0x96, 0xfa, 0xcb, 0xe1, 0xc8, 0x97, 0x76, 0xa0, 0x00, 0x7d, 0x02, 0xb0, 0x68, 0x04, 0xeb,
+ 0x1d, 0xdb, 0x26, 0x75, 0xdb, 0x62, 0xca, 0x6f, 0x70, 0xe5, 0x73, 0x97, 0x2a, 0x4f, 0xf9, 0x09,
+ 0xed, 0x8b, 0x7b, 0x87, 0x4a, 0x75, 0x68, 0x11, 0xfc, 0x09, 0xe2, 0x1a, 0xce, 0xe6, 0x44, 0x9f,
+ 0xb9, 0x8a, 0xd5, 0x56, 0xdd, 0xda, 0xde, 0xb6, 0xb6, 0x99, 0x8a, 0x9b, 0xff, 0x51, 0x91, 0xf2,
+ 0x13, 0x2a, 0x96, 0x59, 0xd7, 0x8f, 0xae, 0x24, 0xc5, 0x43, 0xcf, 0xe1, 0x84, 0xa8, 0xb0, 0x5c,
+ 0x52, 0x81, 0x96, 0xbf, 0x62, 0x1b, 0x26, 0x87, 0x63, 0xc6, 0x98, 0xe9, 0x25, 0x08, 0x93, 0x1e,
+ 0x43, 0x25, 0x98, 0x79, 0x6f, 0x05, 0xfc, 0x15, 0xcf, 0x9b, 0x6c, 0x88, 0x6e, 0xc1, 0xec, 0x07,
+ 0x62, 0x77, 0x2c, 0xfe, 0x6a, 0x8f, 0x9b, 0xc2, 0x58, 0x1e, 0x5b, 0x02, 0xd3, 0x8f, 0x61, 0xe9,
+ 0x7c, 0xaf, 0x5c, 0x29, 0xde, 0x84, 0xe8, 0xe2, 0x89, 0xa5, 0x09, 0x59, 0x41, 0xb8, 0x9b, 0x26,
+ 0x14, 0xaa, 0xa5, 0xa4, 0xe6, 0x9b, 0x4d, 0xdb, 0x77, 0x9d, 0x0b, 0xcc, 0xf3, 0xf5, 0xbf, 0x1e,
+ 0x73, 0x06, 0xc3, 0x09, 0x31, 0xc9, 0xf6, 0xb2, 0xc6, 0xbf, 0x0f, 0xfe, 0xcb, 0x99, 0xc2, 0xd0,
+ 0x9f, 0xed, 0x87, 0x58, 0x3a, 0x08, 0xb1, 0xf4, 0x2b, 0xc4, 0xd2, 0x51, 0x88, 0xc1, 0x71, 0x88,
+ 0xc1, 0x49, 0x88, 0xc1, 0x69, 0x88, 0xc1, 0x6e, 0x84, 0xc1, 0xd7, 0x08, 0x83, 0x6f, 0x11, 0x06,
+ 0x3f, 0x22, 0x0c, 0x7e, 0x46, 0x18, 0xec, 0x47, 0x58, 0x3a, 0x88, 0x30, 0x38, 0x8a, 0x30, 0x38,
+ 0x8e, 0xb0, 0x74, 0x12, 0x61, 0x70, 0x1a, 0x61, 0x69, 0xf7, 0x37, 0x96, 0xfe, 0x06, 0x00, 0x00,
+ 0xff, 0xff, 0xa8, 0xc0, 0xa5, 0xf1, 0xb6, 0x07, 0x00, 0x00,
+}
+
func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return CasttypeDescription()
}
@@ -126,279 +175,281 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog
func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4343 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x1b, 0xd7,
- 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0x79, 0x49, 0xcb, 0x30, 0x1d, 0x83, 0x14, 0xe5,
- 0x1f, 0xda, 0x4e, 0x28, 0x8f, 0xfe, 0x05, 0x25, 0x76, 0x09, 0x12, 0x62, 0xa0, 0x12, 0x24, 0xb3,
- 0x24, 0x23, 0xcb, 0x69, 0x67, 0x67, 0xb9, 0xb8, 0x04, 0x57, 0x5a, 0xec, 0x6e, 0x76, 0x17, 0x92,
- 0xa1, 0xe9, 0x83, 0x1a, 0xb7, 0xcd, 0xa4, 0x9d, 0xfe, 0x77, 0xa6, 0x89, 0xeb, 0xb8, 0x4d, 0x3a,
- 0x8d, 0xd3, 0xf4, 0x2f, 0x69, 0x1a, 0x37, 0x49, 0x5f, 0xf2, 0x92, 0xd6, 0x4f, 0x9d, 0xe4, 0xad,
- 0x0f, 0x1d, 0xd9, 0x62, 0x3c, 0x53, 0xa7, 0x75, 0x1b, 0xb7, 0xd5, 0x83, 0x47, 0x7e, 0xc9, 0xdc,
- 0xbf, 0xc5, 0xe2, 0x87, 0x5a, 0x50, 0x19, 0x3b, 0x4f, 0xc4, 0x9e, 0x7b, 0xbe, 0xef, 0x9e, 0x7b,
- 0xee, 0xb9, 0xf7, 0x9c, 0x7b, 0x77, 0x09, 0x3f, 0x39, 0x0b, 0x33, 0x75, 0xdb, 0xae, 0x9b, 0xf8,
- 0xa8, 0xe3, 0xda, 0xbe, 0xbd, 0xdd, 0xdc, 0x39, 0x5a, 0xc3, 0x9e, 0xee, 0x1a, 0x8e, 0x6f, 0xbb,
- 0xf3, 0x54, 0x86, 0xc6, 0x98, 0xc6, 0xbc, 0xd0, 0x98, 0xad, 0xc2, 0xf8, 0x79, 0xc3, 0xc4, 0x4b,
- 0x81, 0xe2, 0x06, 0xf6, 0xd1, 0x19, 0x48, 0xec, 0x18, 0x26, 0xce, 0x4b, 0x33, 0xf1, 0xb9, 0xcc,
- 0xb1, 0x87, 0xe7, 0xbb, 0x40, 0xf3, 0x9d, 0x88, 0x75, 0x22, 0x56, 0x28, 0x62, 0xf6, 0xcd, 0x04,
- 0x4c, 0xf4, 0x69, 0x45, 0x08, 0x12, 0x96, 0xd6, 0x20, 0x8c, 0xd2, 0x5c, 0x5a, 0xa1, 0xbf, 0x51,
- 0x1e, 0x46, 0x1c, 0x4d, 0xbf, 0xa2, 0xd5, 0x71, 0x3e, 0x46, 0xc5, 0xe2, 0x11, 0x15, 0x00, 0x6a,
- 0xd8, 0xc1, 0x56, 0x0d, 0x5b, 0x7a, 0x2b, 0x1f, 0x9f, 0x89, 0xcf, 0xa5, 0x95, 0x90, 0x04, 0x3d,
- 0x09, 0xe3, 0x4e, 0x73, 0xdb, 0x34, 0x74, 0x35, 0xa4, 0x06, 0x33, 0xf1, 0xb9, 0xa4, 0x22, 0xb3,
- 0x86, 0xa5, 0xb6, 0xf2, 0x63, 0x30, 0x76, 0x0d, 0x6b, 0x57, 0xc2, 0xaa, 0x19, 0xaa, 0x9a, 0x23,
- 0xe2, 0x90, 0xe2, 0x22, 0x64, 0x1b, 0xd8, 0xf3, 0xb4, 0x3a, 0x56, 0xfd, 0x96, 0x83, 0xf3, 0x09,
- 0x3a, 0xfa, 0x99, 0x9e, 0xd1, 0x77, 0x8f, 0x3c, 0xc3, 0x51, 0x9b, 0x2d, 0x07, 0xa3, 0x05, 0x48,
- 0x63, 0xab, 0xd9, 0x60, 0x0c, 0xc9, 0x7d, 0xfc, 0x57, 0xb6, 0x9a, 0x8d, 0x6e, 0x96, 0x14, 0x81,
- 0x71, 0x8a, 0x11, 0x0f, 0xbb, 0x57, 0x0d, 0x1d, 0xe7, 0x87, 0x29, 0xc1, 0x63, 0x3d, 0x04, 0x1b,
- 0xac, 0xbd, 0x9b, 0x43, 0xe0, 0xd0, 0x22, 0xa4, 0xf1, 0xf3, 0x3e, 0xb6, 0x3c, 0xc3, 0xb6, 0xf2,
- 0x23, 0x94, 0xe4, 0x91, 0x3e, 0xb3, 0x88, 0xcd, 0x5a, 0x37, 0x45, 0x1b, 0x87, 0x4e, 0xc1, 0x88,
- 0xed, 0xf8, 0x86, 0x6d, 0x79, 0xf9, 0xd4, 0x8c, 0x34, 0x97, 0x39, 0xf6, 0xa1, 0xbe, 0x81, 0xb0,
- 0xc6, 0x74, 0x14, 0xa1, 0x8c, 0x2a, 0x20, 0x7b, 0x76, 0xd3, 0xd5, 0xb1, 0xaa, 0xdb, 0x35, 0xac,
- 0x1a, 0xd6, 0x8e, 0x9d, 0x4f, 0x53, 0x82, 0xe9, 0xde, 0x81, 0x50, 0xc5, 0x45, 0xbb, 0x86, 0x2b,
- 0xd6, 0x8e, 0xad, 0xe4, 0xbc, 0x8e, 0x67, 0x74, 0x08, 0x86, 0xbd, 0x96, 0xe5, 0x6b, 0xcf, 0xe7,
- 0xb3, 0x34, 0x42, 0xf8, 0xd3, 0xec, 0x77, 0x86, 0x61, 0x6c, 0x90, 0x10, 0x3b, 0x07, 0xc9, 0x1d,
- 0x32, 0xca, 0x7c, 0xec, 0x20, 0x3e, 0x60, 0x98, 0x4e, 0x27, 0x0e, 0xdf, 0xa3, 0x13, 0x17, 0x20,
- 0x63, 0x61, 0xcf, 0xc7, 0x35, 0x16, 0x11, 0xf1, 0x01, 0x63, 0x0a, 0x18, 0xa8, 0x37, 0xa4, 0x12,
- 0xf7, 0x14, 0x52, 0xcf, 0xc2, 0x58, 0x60, 0x92, 0xea, 0x6a, 0x56, 0x5d, 0xc4, 0xe6, 0xd1, 0x28,
- 0x4b, 0xe6, 0xcb, 0x02, 0xa7, 0x10, 0x98, 0x92, 0xc3, 0x1d, 0xcf, 0x68, 0x09, 0xc0, 0xb6, 0xb0,
- 0xbd, 0xa3, 0xd6, 0xb0, 0x6e, 0xe6, 0x53, 0xfb, 0x78, 0x69, 0x8d, 0xa8, 0xf4, 0x78, 0xc9, 0x66,
- 0x52, 0xdd, 0x44, 0x67, 0xdb, 0xa1, 0x36, 0xb2, 0x4f, 0xa4, 0x54, 0xd9, 0x22, 0xeb, 0x89, 0xb6,
- 0x2d, 0xc8, 0xb9, 0x98, 0xc4, 0x3d, 0xae, 0xf1, 0x91, 0xa5, 0xa9, 0x11, 0xf3, 0x91, 0x23, 0x53,
- 0x38, 0x8c, 0x0d, 0x6c, 0xd4, 0x0d, 0x3f, 0xa2, 0x23, 0x10, 0x08, 0x54, 0x1a, 0x56, 0x40, 0x77,
- 0xa1, 0xac, 0x10, 0xae, 0x6a, 0x0d, 0x3c, 0x75, 0x1d, 0x72, 0x9d, 0xee, 0x41, 0x93, 0x90, 0xf4,
- 0x7c, 0xcd, 0xf5, 0x69, 0x14, 0x26, 0x15, 0xf6, 0x80, 0x64, 0x88, 0x63, 0xab, 0x46, 0x77, 0xb9,
- 0xa4, 0x42, 0x7e, 0xa2, 0x5f, 0x68, 0x0f, 0x38, 0x4e, 0x07, 0xfc, 0x68, 0xef, 0x8c, 0x76, 0x30,
- 0x77, 0x8f, 0x7b, 0xea, 0x34, 0x8c, 0x76, 0x0c, 0x60, 0xd0, 0xae, 0x67, 0x7f, 0x05, 0xee, 0xeb,
- 0x4b, 0x8d, 0x9e, 0x85, 0xc9, 0xa6, 0x65, 0x58, 0x3e, 0x76, 0x1d, 0x17, 0x93, 0x88, 0x65, 0x5d,
- 0xe5, 0xff, 0x63, 0x64, 0x9f, 0x98, 0xdb, 0x0a, 0x6b, 0x33, 0x16, 0x65, 0xa2, 0xd9, 0x2b, 0x7c,
- 0x22, 0x9d, 0x7a, 0x6b, 0x44, 0xbe, 0x71, 0xe3, 0xc6, 0x8d, 0xd8, 0xec, 0xe7, 0x87, 0x61, 0xb2,
- 0xdf, 0x9a, 0xe9, 0xbb, 0x7c, 0x0f, 0xc1, 0xb0, 0xd5, 0x6c, 0x6c, 0x63, 0x97, 0x3a, 0x29, 0xa9,
- 0xf0, 0x27, 0xb4, 0x00, 0x49, 0x53, 0xdb, 0xc6, 0x66, 0x3e, 0x31, 0x23, 0xcd, 0xe5, 0x8e, 0x3d,
- 0x39, 0xd0, 0xaa, 0x9c, 0x5f, 0x21, 0x10, 0x85, 0x21, 0xd1, 0xd3, 0x90, 0xe0, 0x5b, 0x34, 0x61,
- 0x78, 0x62, 0x30, 0x06, 0xb2, 0x96, 0x14, 0x8a, 0x43, 0x0f, 0x42, 0x9a, 0xfc, 0x65, 0xb1, 0x31,
- 0x4c, 0x6d, 0x4e, 0x11, 0x01, 0x89, 0x0b, 0x34, 0x05, 0x29, 0xba, 0x4c, 0x6a, 0x58, 0xa4, 0xb6,
- 0xe0, 0x99, 0x04, 0x56, 0x0d, 0xef, 0x68, 0x4d, 0xd3, 0x57, 0xaf, 0x6a, 0x66, 0x13, 0xd3, 0x80,
- 0x4f, 0x2b, 0x59, 0x2e, 0xfc, 0x24, 0x91, 0xa1, 0x69, 0xc8, 0xb0, 0x55, 0x65, 0x58, 0x35, 0xfc,
- 0x3c, 0xdd, 0x3d, 0x93, 0x0a, 0x5b, 0x68, 0x15, 0x22, 0x21, 0xdd, 0x5f, 0xf6, 0x6c, 0x4b, 0x84,
- 0x26, 0xed, 0x82, 0x08, 0x68, 0xf7, 0xa7, 0xbb, 0x37, 0xee, 0x87, 0xfa, 0x0f, 0xaf, 0x3b, 0xa6,
- 0x66, 0x5f, 0x8d, 0x41, 0x82, 0xee, 0x17, 0x63, 0x90, 0xd9, 0xbc, 0xb4, 0x5e, 0x56, 0x97, 0xd6,
- 0xb6, 0x4a, 0x2b, 0x65, 0x59, 0x42, 0x39, 0x00, 0x2a, 0x38, 0xbf, 0xb2, 0xb6, 0xb0, 0x29, 0xc7,
- 0x82, 0xe7, 0xca, 0xea, 0xe6, 0xa9, 0x13, 0x72, 0x3c, 0x00, 0x6c, 0x31, 0x41, 0x22, 0xac, 0x70,
- 0xfc, 0x98, 0x9c, 0x44, 0x32, 0x64, 0x19, 0x41, 0xe5, 0xd9, 0xf2, 0xd2, 0xa9, 0x13, 0xf2, 0x70,
- 0xa7, 0xe4, 0xf8, 0x31, 0x79, 0x04, 0x8d, 0x42, 0x9a, 0x4a, 0x4a, 0x6b, 0x6b, 0x2b, 0x72, 0x2a,
- 0xe0, 0xdc, 0xd8, 0x54, 0x2a, 0xab, 0xcb, 0x72, 0x3a, 0xe0, 0x5c, 0x56, 0xd6, 0xb6, 0xd6, 0x65,
- 0x08, 0x18, 0xaa, 0xe5, 0x8d, 0x8d, 0x85, 0xe5, 0xb2, 0x9c, 0x09, 0x34, 0x4a, 0x97, 0x36, 0xcb,
- 0x1b, 0x72, 0xb6, 0xc3, 0xac, 0xe3, 0xc7, 0xe4, 0xd1, 0xa0, 0x8b, 0xf2, 0xea, 0x56, 0x55, 0xce,
- 0xa1, 0x71, 0x18, 0x65, 0x5d, 0x08, 0x23, 0xc6, 0xba, 0x44, 0xa7, 0x4e, 0xc8, 0x72, 0xdb, 0x10,
- 0xc6, 0x32, 0xde, 0x21, 0x38, 0x75, 0x42, 0x46, 0xb3, 0x8b, 0x90, 0xa4, 0xd1, 0x85, 0x10, 0xe4,
- 0x56, 0x16, 0x4a, 0xe5, 0x15, 0x75, 0x6d, 0x7d, 0xb3, 0xb2, 0xb6, 0xba, 0xb0, 0x22, 0x4b, 0x6d,
- 0x99, 0x52, 0xfe, 0xc4, 0x56, 0x45, 0x29, 0x2f, 0xc9, 0xb1, 0xb0, 0x6c, 0xbd, 0xbc, 0xb0, 0x59,
- 0x5e, 0x92, 0xe3, 0xb3, 0x3a, 0x4c, 0xf6, 0xdb, 0x27, 0xfb, 0xae, 0x8c, 0xd0, 0x14, 0xc7, 0xf6,
- 0x99, 0x62, 0xca, 0xd5, 0x33, 0xc5, 0x3f, 0x8a, 0xc1, 0x44, 0x9f, 0x5c, 0xd1, 0xb7, 0x93, 0x67,
- 0x20, 0xc9, 0x42, 0x94, 0x65, 0xcf, 0xc7, 0xfb, 0x26, 0x1d, 0x1a, 0xb0, 0x3d, 0x19, 0x94, 0xe2,
- 0xc2, 0x15, 0x44, 0x7c, 0x9f, 0x0a, 0x82, 0x50, 0xf4, 0xec, 0xe9, 0xbf, 0xdc, 0xb3, 0xa7, 0xb3,
- 0xb4, 0x77, 0x6a, 0x90, 0xb4, 0x47, 0x65, 0x07, 0xdb, 0xdb, 0x93, 0x7d, 0xf6, 0xf6, 0x73, 0x30,
- 0xde, 0x43, 0x34, 0xf0, 0x1e, 0xfb, 0x82, 0x04, 0xf9, 0xfd, 0x9c, 0x13, 0xb1, 0xd3, 0xc5, 0x3a,
- 0x76, 0xba, 0x73, 0xdd, 0x1e, 0x3c, 0xbc, 0xff, 0x24, 0xf4, 0xcc, 0xf5, 0x2b, 0x12, 0x1c, 0xea,
- 0x5f, 0x29, 0xf6, 0xb5, 0xe1, 0x69, 0x18, 0x6e, 0x60, 0x7f, 0xd7, 0x16, 0xd5, 0xd2, 0xa3, 0x7d,
- 0x72, 0x30, 0x69, 0xee, 0x9e, 0x6c, 0x8e, 0x0a, 0x27, 0xf1, 0xf8, 0x7e, 0xe5, 0x1e, 0xb3, 0xa6,
- 0xc7, 0xd2, 0xcf, 0xc5, 0xe0, 0xbe, 0xbe, 0xe4, 0x7d, 0x0d, 0x7d, 0x08, 0xc0, 0xb0, 0x9c, 0xa6,
- 0xcf, 0x2a, 0x22, 0xb6, 0xc1, 0xa6, 0xa9, 0x84, 0x6e, 0x5e, 0x64, 0xf3, 0x6c, 0xfa, 0x41, 0x7b,
- 0x9c, 0xb6, 0x03, 0x13, 0x51, 0x85, 0x33, 0x6d, 0x43, 0x13, 0xd4, 0xd0, 0xc2, 0x3e, 0x23, 0xed,
- 0x09, 0xcc, 0xa7, 0x40, 0xd6, 0x4d, 0x03, 0x5b, 0xbe, 0xea, 0xf9, 0x2e, 0xd6, 0x1a, 0x86, 0x55,
- 0xa7, 0x19, 0x24, 0x55, 0x4c, 0xee, 0x68, 0xa6, 0x87, 0x95, 0x31, 0xd6, 0xbc, 0x21, 0x5a, 0x09,
- 0x82, 0x06, 0x90, 0x1b, 0x42, 0x0c, 0x77, 0x20, 0x58, 0x73, 0x80, 0x98, 0xfd, 0x66, 0x0a, 0x32,
- 0xa1, 0xba, 0x1a, 0x1d, 0x86, 0xec, 0x65, 0xed, 0xaa, 0xa6, 0x8a, 0xb3, 0x12, 0xf3, 0x44, 0x86,
- 0xc8, 0xd6, 0xf9, 0x79, 0xe9, 0x29, 0x98, 0xa4, 0x2a, 0x76, 0xd3, 0xc7, 0xae, 0xaa, 0x9b, 0x9a,
- 0xe7, 0x51, 0xa7, 0xa5, 0xa8, 0x2a, 0x22, 0x6d, 0x6b, 0xa4, 0x69, 0x51, 0xb4, 0xa0, 0x93, 0x30,
- 0x41, 0x11, 0x8d, 0xa6, 0xe9, 0x1b, 0x8e, 0x89, 0x55, 0x72, 0x7a, 0xf3, 0x68, 0x26, 0x09, 0x2c,
- 0x1b, 0x27, 0x1a, 0x55, 0xae, 0x40, 0x2c, 0xf2, 0xd0, 0x12, 0x3c, 0x44, 0x61, 0x75, 0x6c, 0x61,
- 0x57, 0xf3, 0xb1, 0x8a, 0x3f, 0xdd, 0xd4, 0x4c, 0x4f, 0xd5, 0xac, 0x9a, 0xba, 0xab, 0x79, 0xbb,
- 0xf9, 0x49, 0x42, 0x50, 0x8a, 0xe5, 0x25, 0xe5, 0x01, 0xa2, 0xb8, 0xcc, 0xf5, 0xca, 0x54, 0x6d,
- 0xc1, 0xaa, 0x7d, 0x5c, 0xf3, 0x76, 0x51, 0x11, 0x0e, 0x51, 0x16, 0xcf, 0x77, 0x0d, 0xab, 0xae,
- 0xea, 0xbb, 0x58, 0xbf, 0xa2, 0x36, 0xfd, 0x9d, 0x33, 0xf9, 0x07, 0xc3, 0xfd, 0x53, 0x0b, 0x37,
- 0xa8, 0xce, 0x22, 0x51, 0xd9, 0xf2, 0x77, 0xce, 0xa0, 0x0d, 0xc8, 0x92, 0xc9, 0x68, 0x18, 0xd7,
- 0xb1, 0xba, 0x63, 0xbb, 0x34, 0x35, 0xe6, 0xfa, 0x6c, 0x4d, 0x21, 0x0f, 0xce, 0xaf, 0x71, 0x40,
- 0xd5, 0xae, 0xe1, 0x62, 0x72, 0x63, 0xbd, 0x5c, 0x5e, 0x52, 0x32, 0x82, 0xe5, 0xbc, 0xed, 0x92,
- 0x80, 0xaa, 0xdb, 0x81, 0x83, 0x33, 0x2c, 0xa0, 0xea, 0xb6, 0x70, 0xef, 0x49, 0x98, 0xd0, 0x75,
- 0x36, 0x66, 0x43, 0x57, 0xf9, 0x19, 0xcb, 0xcb, 0xcb, 0x1d, 0xce, 0xd2, 0xf5, 0x65, 0xa6, 0xc0,
- 0x63, 0xdc, 0x43, 0x67, 0xe1, 0xbe, 0xb6, 0xb3, 0xc2, 0xc0, 0xf1, 0x9e, 0x51, 0x76, 0x43, 0x4f,
- 0xc2, 0x84, 0xd3, 0xea, 0x05, 0xa2, 0x8e, 0x1e, 0x9d, 0x56, 0x37, 0xec, 0x34, 0x4c, 0x3a, 0xbb,
- 0x4e, 0x2f, 0xee, 0x89, 0x30, 0x0e, 0x39, 0xbb, 0x4e, 0x37, 0xf0, 0x11, 0x7a, 0xe0, 0x76, 0xb1,
- 0xae, 0xf9, 0xb8, 0x96, 0xbf, 0x3f, 0xac, 0x1e, 0x6a, 0x40, 0x47, 0x41, 0xd6, 0x75, 0x15, 0x5b,
- 0xda, 0xb6, 0x89, 0x55, 0xcd, 0xc5, 0x96, 0xe6, 0xe5, 0xa7, 0xc3, 0xca, 0x39, 0x5d, 0x2f, 0xd3,
- 0xd6, 0x05, 0xda, 0x88, 0x9e, 0x80, 0x71, 0x7b, 0xfb, 0xb2, 0xce, 0x42, 0x52, 0x75, 0x5c, 0xbc,
- 0x63, 0x3c, 0x9f, 0x7f, 0x98, 0xfa, 0x77, 0x8c, 0x34, 0xd0, 0x80, 0x5c, 0xa7, 0x62, 0xf4, 0x38,
- 0xc8, 0xba, 0xb7, 0xab, 0xb9, 0x0e, 0xdd, 0x93, 0x3d, 0x47, 0xd3, 0x71, 0xfe, 0x11, 0xa6, 0xca,
- 0xe4, 0xab, 0x42, 0x4c, 0x96, 0x84, 0x77, 0xcd, 0xd8, 0xf1, 0x05, 0xe3, 0x63, 0x6c, 0x49, 0x50,
- 0x19, 0x67, 0x9b, 0x03, 0x99, 0xb8, 0xa2, 0xa3, 0xe3, 0x39, 0xaa, 0x96, 0x73, 0x76, 0x9d, 0x70,
- 0xbf, 0x47, 0x60, 0x94, 0x68, 0xb6, 0x3b, 0x7d, 0x9c, 0x15, 0x64, 0xce, 0x6e, 0xa8, 0xc7, 0xf7,
- 0xad, 0x36, 0x9e, 0x2d, 0x42, 0x36, 0x1c, 0x9f, 0x28, 0x0d, 0x2c, 0x42, 0x65, 0x89, 0x14, 0x2b,
- 0x8b, 0x6b, 0x4b, 0xa4, 0xcc, 0x78, 0xae, 0x2c, 0xc7, 0x48, 0xb9, 0xb3, 0x52, 0xd9, 0x2c, 0xab,
- 0xca, 0xd6, 0xea, 0x66, 0xa5, 0x5a, 0x96, 0xe3, 0xe1, 0xba, 0xfa, 0xfb, 0x31, 0xc8, 0x75, 0x1e,
- 0x91, 0xd0, 0x47, 0xe1, 0x7e, 0x71, 0x9f, 0xe1, 0x61, 0x5f, 0xbd, 0x66, 0xb8, 0x74, 0xc9, 0x34,
- 0x34, 0x96, 0xbe, 0x82, 0x49, 0x9b, 0xe4, 0x5a, 0x1b, 0xd8, 0xbf, 0x68, 0xb8, 0x64, 0x41, 0x34,
- 0x34, 0x1f, 0xad, 0xc0, 0xb4, 0x65, 0xab, 0x9e, 0xaf, 0x59, 0x35, 0xcd, 0xad, 0xa9, 0xed, 0x9b,
- 0x24, 0x55, 0xd3, 0x75, 0xec, 0x79, 0x36, 0x4b, 0x55, 0x01, 0xcb, 0x87, 0x2c, 0x7b, 0x83, 0x2b,
- 0xb7, 0xf7, 0xf0, 0x05, 0xae, 0xda, 0x15, 0x60, 0xf1, 0xfd, 0x02, 0xec, 0x41, 0x48, 0x37, 0x34,
- 0x47, 0xc5, 0x96, 0xef, 0xb6, 0x68, 0x61, 0x9c, 0x52, 0x52, 0x0d, 0xcd, 0x29, 0x93, 0xe7, 0x0f,
- 0xe6, 0x7c, 0xf2, 0xef, 0x71, 0xc8, 0x86, 0x8b, 0x63, 0x72, 0xd6, 0xd0, 0x69, 0x1e, 0x91, 0xe8,
- 0x4e, 0x73, 0xe4, 0xae, 0xa5, 0xf4, 0xfc, 0x22, 0x49, 0x30, 0xc5, 0x61, 0x56, 0xb2, 0x2a, 0x0c,
- 0x49, 0x92, 0x3b, 0xd9, 0x5b, 0x30, 0x2b, 0x11, 0x52, 0x0a, 0x7f, 0x42, 0xcb, 0x30, 0x7c, 0xd9,
- 0xa3, 0xdc, 0xc3, 0x94, 0xfb, 0xe1, 0xbb, 0x73, 0x5f, 0xd8, 0xa0, 0xe4, 0xe9, 0x0b, 0x1b, 0xea,
- 0xea, 0x9a, 0x52, 0x5d, 0x58, 0x51, 0x38, 0x1c, 0x3d, 0x00, 0x09, 0x53, 0xbb, 0xde, 0xea, 0x4c,
- 0x45, 0x54, 0x34, 0xa8, 0xe3, 0x1f, 0x80, 0xc4, 0x35, 0xac, 0x5d, 0xe9, 0x4c, 0x00, 0x54, 0xf4,
- 0x3e, 0x86, 0xfe, 0x51, 0x48, 0x52, 0x7f, 0x21, 0x00, 0xee, 0x31, 0x79, 0x08, 0xa5, 0x20, 0xb1,
- 0xb8, 0xa6, 0x90, 0xf0, 0x97, 0x21, 0xcb, 0xa4, 0xea, 0x7a, 0xa5, 0xbc, 0x58, 0x96, 0x63, 0xb3,
- 0x27, 0x61, 0x98, 0x39, 0x81, 0x2c, 0x8d, 0xc0, 0x0d, 0xf2, 0x10, 0x7f, 0xe4, 0x1c, 0x92, 0x68,
- 0xdd, 0xaa, 0x96, 0xca, 0x8a, 0x1c, 0x0b, 0x4f, 0xaf, 0x07, 0xd9, 0x70, 0x5d, 0xfc, 0xc1, 0xc4,
- 0xd4, 0x77, 0x25, 0xc8, 0x84, 0xea, 0x5c, 0x52, 0xa0, 0x68, 0xa6, 0x69, 0x5f, 0x53, 0x35, 0xd3,
- 0xd0, 0x3c, 0x1e, 0x14, 0x40, 0x45, 0x0b, 0x44, 0x32, 0xe8, 0xa4, 0x7d, 0x20, 0xc6, 0xbf, 0x2c,
- 0x81, 0xdc, 0x5d, 0x62, 0x76, 0x19, 0x28, 0xfd, 0x5c, 0x0d, 0x7c, 0x49, 0x82, 0x5c, 0x67, 0x5d,
- 0xd9, 0x65, 0xde, 0xe1, 0x9f, 0xab, 0x79, 0x6f, 0xc4, 0x60, 0xb4, 0xa3, 0x9a, 0x1c, 0xd4, 0xba,
- 0x4f, 0xc3, 0xb8, 0x51, 0xc3, 0x0d, 0xc7, 0xf6, 0xb1, 0xa5, 0xb7, 0x54, 0x13, 0x5f, 0xc5, 0x66,
- 0x7e, 0x96, 0x6e, 0x14, 0x47, 0xef, 0x5e, 0xaf, 0xce, 0x57, 0xda, 0xb8, 0x15, 0x02, 0x2b, 0x4e,
- 0x54, 0x96, 0xca, 0xd5, 0xf5, 0xb5, 0xcd, 0xf2, 0xea, 0xe2, 0x25, 0x75, 0x6b, 0xf5, 0x17, 0x57,
- 0xd7, 0x2e, 0xae, 0x2a, 0xb2, 0xd1, 0xa5, 0xf6, 0x3e, 0x2e, 0xf5, 0x75, 0x90, 0xbb, 0x8d, 0x42,
- 0xf7, 0x43, 0x3f, 0xb3, 0xe4, 0x21, 0x34, 0x01, 0x63, 0xab, 0x6b, 0xea, 0x46, 0x65, 0xa9, 0xac,
- 0x96, 0xcf, 0x9f, 0x2f, 0x2f, 0x6e, 0x6e, 0xb0, 0x1b, 0x88, 0x40, 0x7b, 0xb3, 0x73, 0x51, 0xbf,
- 0x18, 0x87, 0x89, 0x3e, 0x96, 0xa0, 0x05, 0x7e, 0x76, 0x60, 0xc7, 0x99, 0x8f, 0x0c, 0x62, 0xfd,
- 0x3c, 0x49, 0xf9, 0xeb, 0x9a, 0xeb, 0xf3, 0xa3, 0xc6, 0xe3, 0x40, 0xbc, 0x64, 0xf9, 0xc6, 0x8e,
- 0x81, 0x5d, 0x7e, 0x61, 0xc3, 0x0e, 0x14, 0x63, 0x6d, 0x39, 0xbb, 0xb3, 0xf9, 0x30, 0x20, 0xc7,
- 0xf6, 0x0c, 0xdf, 0xb8, 0x8a, 0x55, 0xc3, 0x12, 0xb7, 0x3b, 0xe4, 0x80, 0x91, 0x50, 0x64, 0xd1,
- 0x52, 0xb1, 0xfc, 0x40, 0xdb, 0xc2, 0x75, 0xad, 0x4b, 0x9b, 0x6c, 0xe0, 0x71, 0x45, 0x16, 0x2d,
- 0x81, 0xf6, 0x61, 0xc8, 0xd6, 0xec, 0x26, 0xa9, 0xba, 0x98, 0x1e, 0xc9, 0x17, 0x92, 0x92, 0x61,
- 0xb2, 0x40, 0x85, 0xd7, 0xd3, 0xed, 0x6b, 0xa5, 0xac, 0x92, 0x61, 0x32, 0xa6, 0xf2, 0x18, 0x8c,
- 0x69, 0xf5, 0xba, 0x4b, 0xc8, 0x05, 0x11, 0x3b, 0x21, 0xe4, 0x02, 0x31, 0x55, 0x9c, 0xba, 0x00,
- 0x29, 0xe1, 0x07, 0x92, 0x92, 0x89, 0x27, 0x54, 0x87, 0x1d, 0x7b, 0x63, 0x73, 0x69, 0x25, 0x65,
- 0x89, 0xc6, 0xc3, 0x90, 0x35, 0x3c, 0xb5, 0x7d, 0x4b, 0x1e, 0x9b, 0x89, 0xcd, 0xa5, 0x94, 0x8c,
- 0xe1, 0x05, 0x37, 0x8c, 0xb3, 0xaf, 0xc4, 0x20, 0xd7, 0x79, 0xcb, 0x8f, 0x96, 0x20, 0x65, 0xda,
- 0xba, 0x46, 0x43, 0x8b, 0xbd, 0x62, 0x9a, 0x8b, 0x78, 0x31, 0x30, 0xbf, 0xc2, 0xf5, 0x95, 0x00,
- 0x39, 0xf5, 0xaf, 0x12, 0xa4, 0x84, 0x18, 0x1d, 0x82, 0x84, 0xa3, 0xf9, 0xbb, 0x94, 0x2e, 0x59,
- 0x8a, 0xc9, 0x92, 0x42, 0x9f, 0x89, 0xdc, 0x73, 0x34, 0x8b, 0x86, 0x00, 0x97, 0x93, 0x67, 0x32,
- 0xaf, 0x26, 0xd6, 0x6a, 0xf4, 0xf8, 0x61, 0x37, 0x1a, 0xd8, 0xf2, 0x3d, 0x31, 0xaf, 0x5c, 0xbe,
- 0xc8, 0xc5, 0xe8, 0x49, 0x18, 0xf7, 0x5d, 0xcd, 0x30, 0x3b, 0x74, 0x13, 0x54, 0x57, 0x16, 0x0d,
- 0x81, 0x72, 0x11, 0x1e, 0x10, 0xbc, 0x35, 0xec, 0x6b, 0xfa, 0x2e, 0xae, 0xb5, 0x41, 0xc3, 0xf4,
- 0x9a, 0xe1, 0x7e, 0xae, 0xb0, 0xc4, 0xdb, 0x05, 0x76, 0xf6, 0x87, 0x12, 0x8c, 0x8b, 0x03, 0x53,
- 0x2d, 0x70, 0x56, 0x15, 0x40, 0xb3, 0x2c, 0xdb, 0x0f, 0xbb, 0xab, 0x37, 0x94, 0x7b, 0x70, 0xf3,
- 0x0b, 0x01, 0x48, 0x09, 0x11, 0x4c, 0x35, 0x00, 0xda, 0x2d, 0xfb, 0xba, 0x6d, 0x1a, 0x32, 0xfc,
- 0x15, 0x0e, 0x7d, 0x0f, 0xc8, 0x8e, 0xd8, 0xc0, 0x44, 0xe4, 0x64, 0x85, 0x26, 0x21, 0xb9, 0x8d,
- 0xeb, 0x86, 0xc5, 0x2f, 0x66, 0xd9, 0x83, 0xb8, 0x08, 0x49, 0x04, 0x17, 0x21, 0xa5, 0x4f, 0xc1,
- 0x84, 0x6e, 0x37, 0xba, 0xcd, 0x2d, 0xc9, 0x5d, 0xc7, 0x7c, 0xef, 0xe3, 0xd2, 0x73, 0xd0, 0x2e,
- 0x31, 0xdf, 0x95, 0xa4, 0x2f, 0xc7, 0xe2, 0xcb, 0xeb, 0xa5, 0xaf, 0xc5, 0xa6, 0x96, 0x19, 0x74,
- 0x5d, 0x8c, 0x54, 0xc1, 0x3b, 0x26, 0xd6, 0x89, 0xf5, 0xf0, 0x95, 0x27, 0xe1, 0x23, 0x75, 0xc3,
- 0xdf, 0x6d, 0x6e, 0xcf, 0xeb, 0x76, 0xe3, 0x68, 0xdd, 0xae, 0xdb, 0xed, 0x57, 0x9f, 0xe4, 0x89,
- 0x3e, 0xd0, 0x5f, 0xfc, 0xf5, 0x67, 0x3a, 0x90, 0x4e, 0x45, 0xbe, 0x2b, 0x2d, 0xae, 0xc2, 0x04,
- 0x57, 0x56, 0xe9, 0xfb, 0x17, 0x76, 0x8a, 0x40, 0x77, 0xbd, 0xc3, 0xca, 0x7f, 0xe3, 0x4d, 0x9a,
- 0xae, 0x95, 0x71, 0x0e, 0x25, 0x6d, 0xec, 0xa0, 0x51, 0x54, 0xe0, 0xbe, 0x0e, 0x3e, 0xb6, 0x34,
- 0xb1, 0x1b, 0xc1, 0xf8, 0x7d, 0xce, 0x38, 0x11, 0x62, 0xdc, 0xe0, 0xd0, 0xe2, 0x22, 0x8c, 0x1e,
- 0x84, 0xeb, 0x9f, 0x39, 0x57, 0x16, 0x87, 0x49, 0x96, 0x61, 0x8c, 0x92, 0xe8, 0x4d, 0xcf, 0xb7,
- 0x1b, 0x74, 0xdf, 0xbb, 0x3b, 0xcd, 0xbf, 0xbc, 0xc9, 0xd6, 0x4a, 0x8e, 0xc0, 0x16, 0x03, 0x54,
- 0xb1, 0x08, 0xf4, 0x95, 0x53, 0x0d, 0xeb, 0x66, 0x04, 0xc3, 0x6b, 0xdc, 0x90, 0x40, 0xbf, 0xf8,
- 0x49, 0x98, 0x24, 0xbf, 0xe9, 0xb6, 0x14, 0xb6, 0x24, 0xfa, 0xc2, 0x2b, 0xff, 0xc3, 0x17, 0xd8,
- 0x72, 0x9c, 0x08, 0x08, 0x42, 0x36, 0x85, 0x66, 0xb1, 0x8e, 0x7d, 0x1f, 0xbb, 0x9e, 0xaa, 0x99,
- 0xfd, 0xcc, 0x0b, 0xdd, 0x18, 0xe4, 0xbf, 0xf0, 0x76, 0xe7, 0x2c, 0x2e, 0x33, 0xe4, 0x82, 0x69,
- 0x16, 0xb7, 0xe0, 0xfe, 0x3e, 0x51, 0x31, 0x00, 0xe7, 0x8b, 0x9c, 0x73, 0xb2, 0x27, 0x32, 0x08,
- 0xed, 0x3a, 0x08, 0x79, 0x30, 0x97, 0x03, 0x70, 0xfe, 0x09, 0xe7, 0x44, 0x1c, 0x2b, 0xa6, 0x94,
- 0x30, 0x5e, 0x80, 0xf1, 0xab, 0xd8, 0xdd, 0xb6, 0x3d, 0x7e, 0x4b, 0x33, 0x00, 0xdd, 0x4b, 0x9c,
- 0x6e, 0x8c, 0x03, 0xe9, 0xb5, 0x0d, 0xe1, 0x3a, 0x0b, 0xa9, 0x1d, 0x4d, 0xc7, 0x03, 0x50, 0x7c,
- 0x91, 0x53, 0x8c, 0x10, 0x7d, 0x02, 0x5d, 0x80, 0x6c, 0xdd, 0xe6, 0x99, 0x29, 0x1a, 0xfe, 0x32,
- 0x87, 0x67, 0x04, 0x86, 0x53, 0x38, 0xb6, 0xd3, 0x34, 0x49, 0xda, 0x8a, 0xa6, 0xf8, 0x53, 0x41,
- 0x21, 0x30, 0x9c, 0xe2, 0x00, 0x6e, 0xfd, 0x33, 0x41, 0xe1, 0x85, 0xfc, 0xf9, 0x0c, 0x64, 0x6c,
- 0xcb, 0x6c, 0xd9, 0xd6, 0x20, 0x46, 0x7c, 0x89, 0x33, 0x00, 0x87, 0x10, 0x82, 0x73, 0x90, 0x1e,
- 0x74, 0x22, 0xfe, 0xe2, 0x6d, 0xb1, 0x3c, 0xc4, 0x0c, 0x2c, 0xc3, 0x98, 0xd8, 0xa0, 0x0c, 0xdb,
- 0x1a, 0x80, 0xe2, 0x2b, 0x9c, 0x22, 0x17, 0x82, 0xf1, 0x61, 0xf8, 0xd8, 0xf3, 0xeb, 0x78, 0x10,
- 0x92, 0x57, 0xc4, 0x30, 0x38, 0x84, 0xbb, 0x72, 0x1b, 0x5b, 0xfa, 0xee, 0x60, 0x0c, 0x5f, 0x15,
- 0xae, 0x14, 0x18, 0x42, 0xb1, 0x08, 0xa3, 0x0d, 0xcd, 0xf5, 0x76, 0x35, 0x73, 0xa0, 0xe9, 0xf8,
- 0x4b, 0xce, 0x91, 0x0d, 0x40, 0xdc, 0x23, 0x4d, 0xeb, 0x20, 0x34, 0x5f, 0x13, 0x1e, 0x09, 0xc1,
- 0xf8, 0xd2, 0xf3, 0x7c, 0x7a, 0xa5, 0x75, 0x10, 0xb6, 0xbf, 0x12, 0x4b, 0x8f, 0x61, 0xab, 0x61,
- 0xc6, 0x73, 0x90, 0xf6, 0x8c, 0xeb, 0x03, 0xd1, 0xfc, 0xb5, 0x98, 0x69, 0x0a, 0x20, 0xe0, 0x4b,
- 0xf0, 0x40, 0xdf, 0x34, 0x31, 0x00, 0xd9, 0xdf, 0x70, 0xb2, 0x43, 0x7d, 0x52, 0x05, 0xdf, 0x12,
- 0x0e, 0x4a, 0xf9, 0xb7, 0x62, 0x4b, 0xc0, 0x5d, 0x5c, 0xeb, 0xe4, 0xac, 0xe0, 0x69, 0x3b, 0x07,
- 0xf3, 0xda, 0xdf, 0x09, 0xaf, 0x31, 0x6c, 0x87, 0xd7, 0x36, 0xe1, 0x10, 0x67, 0x3c, 0xd8, 0xbc,
- 0x7e, 0x5d, 0x6c, 0xac, 0x0c, 0xbd, 0xd5, 0x39, 0xbb, 0x9f, 0x82, 0xa9, 0xc0, 0x9d, 0xa2, 0x28,
- 0xf5, 0xd4, 0x86, 0xe6, 0x0c, 0xc0, 0xfc, 0x0d, 0xce, 0x2c, 0x76, 0xfc, 0xa0, 0xaa, 0xf5, 0xaa,
- 0x9a, 0x43, 0xc8, 0x9f, 0x85, 0xbc, 0x20, 0x6f, 0x5a, 0x2e, 0xd6, 0xed, 0xba, 0x65, 0x5c, 0xc7,
- 0xb5, 0x01, 0xa8, 0xff, 0xbe, 0x6b, 0xaa, 0xb6, 0x42, 0x70, 0xc2, 0x5c, 0x01, 0x39, 0xa8, 0x55,
- 0x54, 0xa3, 0xe1, 0xd8, 0xae, 0x1f, 0xc1, 0xf8, 0x4d, 0x31, 0x53, 0x01, 0xae, 0x42, 0x61, 0xc5,
- 0x32, 0xe4, 0xe8, 0xe3, 0xa0, 0x21, 0xf9, 0x0f, 0x9c, 0x68, 0xb4, 0x8d, 0xe2, 0x1b, 0x87, 0x6e,
- 0x37, 0x1c, 0xcd, 0x1d, 0x64, 0xff, 0xfb, 0x96, 0xd8, 0x38, 0x38, 0x84, 0x6f, 0x1c, 0x7e, 0xcb,
- 0xc1, 0x24, 0xdb, 0x0f, 0xc0, 0xf0, 0xaa, 0xd8, 0x38, 0x04, 0x86, 0x53, 0x88, 0x82, 0x61, 0x00,
- 0x8a, 0x7f, 0x14, 0x14, 0x02, 0x43, 0x28, 0x3e, 0xd1, 0x4e, 0xb4, 0x2e, 0xae, 0x1b, 0x9e, 0xef,
- 0xb2, 0x52, 0xf8, 0xee, 0x54, 0xdf, 0x7e, 0xbb, 0xb3, 0x08, 0x53, 0x42, 0x50, 0xb2, 0x13, 0xf1,
- 0x2b, 0x54, 0x7a, 0x52, 0x8a, 0x36, 0xec, 0x3b, 0x62, 0x27, 0x0a, 0xc1, 0x88, 0x6d, 0xa1, 0x0a,
- 0x91, 0xb8, 0x5d, 0x27, 0xe7, 0x83, 0x01, 0xe8, 0xbe, 0xdb, 0x65, 0xdc, 0x86, 0xc0, 0x12, 0xce,
- 0x50, 0xfd, 0xd3, 0xb4, 0xae, 0xe0, 0xd6, 0x40, 0xd1, 0xf9, 0x4f, 0x5d, 0xf5, 0xcf, 0x16, 0x43,
- 0xb2, 0x3d, 0x64, 0xac, 0xab, 0x9e, 0x42, 0x51, 0x1f, 0xeb, 0xe4, 0x7f, 0xf5, 0x36, 0x1f, 0x6f,
- 0x67, 0x39, 0x55, 0x5c, 0x21, 0x41, 0xde, 0x59, 0xf4, 0x44, 0x93, 0xbd, 0x70, 0x3b, 0x88, 0xf3,
- 0x8e, 0x9a, 0xa7, 0x78, 0x1e, 0x46, 0x3b, 0x0a, 0x9e, 0x68, 0xaa, 0x5f, 0xe3, 0x54, 0xd9, 0x70,
- 0xbd, 0x53, 0x3c, 0x09, 0x09, 0x52, 0xbc, 0x44, 0xc3, 0x7f, 0x9d, 0xc3, 0xa9, 0x7a, 0xf1, 0x63,
- 0x90, 0x12, 0x45, 0x4b, 0x34, 0xf4, 0x37, 0x38, 0x34, 0x80, 0x10, 0xb8, 0x28, 0x58, 0xa2, 0xe1,
- 0x9f, 0x15, 0x70, 0x01, 0x21, 0xf0, 0xc1, 0x5d, 0xf8, 0xbd, 0xdf, 0x4a, 0xf0, 0xa4, 0x23, 0x7c,
- 0x77, 0x0e, 0x46, 0x78, 0xa5, 0x12, 0x8d, 0xfe, 0x1c, 0xef, 0x5c, 0x20, 0x8a, 0xa7, 0x21, 0x39,
- 0xa0, 0xc3, 0x7f, 0x9b, 0x43, 0x99, 0x7e, 0x71, 0x11, 0x32, 0xa1, 0xea, 0x24, 0x1a, 0xfe, 0x3b,
- 0x1c, 0x1e, 0x46, 0x11, 0xd3, 0x79, 0x75, 0x12, 0x4d, 0xf0, 0xbb, 0xc2, 0x74, 0x8e, 0x20, 0x6e,
- 0x13, 0x85, 0x49, 0x34, 0xfa, 0xf7, 0x84, 0xd7, 0x05, 0xa4, 0xf8, 0x0c, 0xa4, 0x83, 0x64, 0x13,
- 0x8d, 0xff, 0x7d, 0x8e, 0x6f, 0x63, 0x88, 0x07, 0x42, 0xc9, 0x2e, 0x9a, 0xe2, 0x0f, 0x84, 0x07,
- 0x42, 0x28, 0xb2, 0x8c, 0xba, 0x0b, 0x98, 0x68, 0xa6, 0x3f, 0x14, 0xcb, 0xa8, 0xab, 0x7e, 0x21,
- 0xb3, 0x49, 0xf7, 0xfc, 0x68, 0x8a, 0x3f, 0x12, 0xb3, 0x49, 0xf5, 0x89, 0x19, 0xdd, 0x15, 0x41,
- 0x34, 0xc7, 0x1f, 0x0b, 0x33, 0xba, 0x0a, 0x82, 0xe2, 0x3a, 0xa0, 0xde, 0x6a, 0x20, 0x9a, 0xef,
- 0xf3, 0x9c, 0x6f, 0xbc, 0xa7, 0x18, 0x28, 0x5e, 0x84, 0x43, 0xfd, 0x2b, 0x81, 0x68, 0xd6, 0x2f,
- 0xdc, 0xee, 0x3a, 0xbb, 0x85, 0x0b, 0x81, 0xe2, 0x66, 0x3b, 0xa5, 0x84, 0xab, 0x80, 0x68, 0xda,
- 0x17, 0x6f, 0x77, 0x6e, 0xdc, 0xe1, 0x22, 0xa0, 0xb8, 0x00, 0xd0, 0x4e, 0xc0, 0xd1, 0x5c, 0x2f,
- 0x71, 0xae, 0x10, 0x88, 0x2c, 0x0d, 0x9e, 0x7f, 0xa3, 0xf1, 0x5f, 0x14, 0x4b, 0x83, 0x23, 0xc8,
- 0xd2, 0x10, 0xa9, 0x37, 0x1a, 0xfd, 0xb2, 0x58, 0x1a, 0x02, 0x42, 0x22, 0x3b, 0x94, 0xdd, 0xa2,
- 0x19, 0xbe, 0x24, 0x22, 0x3b, 0x84, 0x2a, 0xae, 0xc2, 0x78, 0x4f, 0x42, 0x8c, 0xa6, 0xfa, 0x32,
- 0xa7, 0x92, 0xbb, 0xf3, 0x61, 0x38, 0x79, 0xf1, 0x64, 0x18, 0xcd, 0xf6, 0xe7, 0x5d, 0xc9, 0x8b,
- 0xe7, 0xc2, 0xe2, 0x39, 0x48, 0x59, 0x4d, 0xd3, 0x24, 0x8b, 0x07, 0xdd, 0xfd, 0x03, 0xbb, 0xfc,
- 0x8f, 0xdf, 0xe3, 0xde, 0x11, 0x80, 0xe2, 0x49, 0x48, 0xe2, 0xc6, 0x36, 0xae, 0x45, 0x21, 0xff,
- 0xf3, 0x3d, 0xb1, 0x61, 0x12, 0xed, 0xe2, 0x33, 0x00, 0xec, 0x6a, 0x84, 0xbe, 0xf6, 0x8b, 0xc0,
- 0xfe, 0xd7, 0x7b, 0xfc, 0xd3, 0x97, 0x36, 0xa4, 0x4d, 0xc0, 0x3e, 0xa4, 0xb9, 0x3b, 0xc1, 0xdb,
- 0x9d, 0x04, 0x74, 0x46, 0xce, 0xc2, 0xc8, 0x65, 0xcf, 0xb6, 0x7c, 0xad, 0x1e, 0x85, 0xfe, 0x6f,
- 0x8e, 0x16, 0xfa, 0xc4, 0x61, 0x0d, 0xdb, 0xc5, 0xbe, 0x56, 0xf7, 0xa2, 0xb0, 0xff, 0xc3, 0xb1,
- 0x01, 0x80, 0x80, 0x75, 0xcd, 0xf3, 0x07, 0x19, 0xf7, 0x4f, 0x04, 0x58, 0x00, 0x88, 0xd1, 0xe4,
- 0xf7, 0x15, 0xdc, 0x8a, 0xc2, 0xbe, 0x23, 0x8c, 0xe6, 0xfa, 0xc5, 0x8f, 0x41, 0x9a, 0xfc, 0x64,
- 0xdf, 0xb3, 0x45, 0x80, 0xff, 0x97, 0x83, 0xdb, 0x08, 0xd2, 0xb3, 0xe7, 0xd7, 0x7c, 0x23, 0xda,
- 0xd9, 0xff, 0xc7, 0x67, 0x5a, 0xe8, 0x17, 0x17, 0x20, 0xe3, 0xf9, 0xb5, 0x5a, 0x93, 0xd7, 0xa7,
- 0x11, 0xf0, 0xff, 0x7f, 0x2f, 0xb8, 0xb2, 0x08, 0x30, 0x64, 0xb6, 0xaf, 0x5d, 0xf1, 0x1d, 0x9b,
- 0xbe, 0xe6, 0x88, 0x62, 0xb8, 0xcd, 0x19, 0x42, 0x90, 0x52, 0xb9, 0xff, 0xf5, 0x2d, 0x2c, 0xdb,
- 0xcb, 0x36, 0xbb, 0xb8, 0x7d, 0x6e, 0x36, 0xfa, 0x06, 0x16, 0x5e, 0x1d, 0x83, 0xc3, 0xba, 0xdd,
- 0xd8, 0xb6, 0xbd, 0xa3, 0xa1, 0xcd, 0xfc, 0xa8, 0x98, 0x1f, 0x7e, 0x39, 0x1b, 0xcc, 0xd7, 0xd4,
- 0xc1, 0x6e, 0x75, 0x67, 0x7f, 0x3c, 0x0a, 0xa9, 0x45, 0xcd, 0xf3, 0xb5, 0x6b, 0x5a, 0x0b, 0x3d,
- 0x02, 0xa9, 0x8a, 0xe5, 0x1f, 0x3f, 0xb6, 0xee, 0xbb, 0xf4, 0xc5, 0x64, 0xbc, 0x94, 0xbe, 0x73,
- 0x73, 0x3a, 0x69, 0x10, 0x99, 0x12, 0x34, 0xa1, 0x23, 0x90, 0xa4, 0xbf, 0xe9, 0xdd, 0x76, 0xbc,
- 0x34, 0xfa, 0xda, 0xcd, 0xe9, 0xa1, 0xb6, 0x1e, 0x6b, 0x43, 0x97, 0x20, 0x53, 0x6d, 0x6d, 0x19,
- 0x96, 0x7f, 0xea, 0x04, 0xa1, 0x23, 0xfe, 0x49, 0x94, 0x4e, 0xdf, 0xb9, 0x39, 0x7d, 0x7c, 0x5f,
- 0x03, 0x49, 0x61, 0xd1, 0x1e, 0x98, 0x40, 0xd3, 0x0f, 0x87, 0xc3, 0x5c, 0xe8, 0x22, 0xa4, 0xc4,
- 0x23, 0x7b, 0x47, 0x54, 0x3a, 0xc7, 0x4d, 0xb8, 0x27, 0xee, 0x80, 0x0c, 0xfd, 0x12, 0x64, 0xab,
- 0xad, 0xf3, 0xa6, 0xad, 0x71, 0x1f, 0x24, 0x67, 0xa4, 0xb9, 0x58, 0xe9, 0xcc, 0x9d, 0x9b, 0xd3,
- 0x27, 0x06, 0x26, 0xe6, 0x70, 0xca, 0xdc, 0xc1, 0x86, 0x9e, 0x83, 0x74, 0xf0, 0x4c, 0xdf, 0x42,
- 0xc5, 0x4a, 0x1f, 0xe5, 0x76, 0xdf, 0x1b, 0x7d, 0x9b, 0x2e, 0x64, 0x39, 0x73, 0xf7, 0xc8, 0x8c,
- 0x34, 0x27, 0xdd, 0x8b, 0xe5, 0xdc, 0x27, 0x1d, 0x6c, 0x21, 0xcb, 0x4f, 0x9d, 0xa0, 0xaf, 0xbd,
- 0xa4, 0x7b, 0xb5, 0x9c, 0xd3, 0xb7, 0xe9, 0xd0, 0x05, 0x18, 0xa9, 0xb6, 0x4a, 0x2d, 0x1f, 0x7b,
- 0xf4, 0x7b, 0xb4, 0x6c, 0xe9, 0xa9, 0x3b, 0x37, 0xa7, 0x3f, 0x3c, 0x20, 0x2b, 0xc5, 0x29, 0x82,
- 0x00, 0xcd, 0x40, 0x66, 0xd5, 0x76, 0x1b, 0x9a, 0xc9, 0xf8, 0x80, 0xbd, 0xc6, 0x0b, 0x89, 0xd0,
- 0x16, 0x19, 0x09, 0x9b, 0x6d, 0x8f, 0xfe, 0x2b, 0xd3, 0xcf, 0x10, 0x93, 0x6d, 0x26, 0x64, 0x40,
- 0xb2, 0xda, 0xaa, 0x6a, 0x4e, 0x3e, 0x4b, 0xdf, 0x31, 0x3d, 0x34, 0x1f, 0x20, 0xc4, 0xda, 0x9a,
- 0xa7, 0xed, 0xf4, 0x63, 0x9c, 0xd2, 0x89, 0x3b, 0x37, 0xa7, 0x9f, 0x1a, 0xb8, 0xc7, 0xaa, 0xe6,
- 0xd0, 0xee, 0x58, 0x0f, 0xe8, 0x5b, 0x12, 0x59, 0x58, 0xec, 0x92, 0x9e, 0xf4, 0x38, 0x4a, 0x7b,
- 0x3c, 0xd2, 0xb7, 0xc7, 0x40, 0x8b, 0xf5, 0x6b, 0x7d, 0xe6, 0xf5, 0x03, 0x8c, 0x94, 0x9d, 0x0d,
- 0x49, 0xd7, 0xbf, 0xf9, 0xfa, 0x3d, 0x2f, 0xda, 0xc0, 0x02, 0xf4, 0x82, 0x04, 0xa3, 0xd5, 0xd6,
- 0x2a, 0x4f, 0xe2, 0xc4, 0xf2, 0x1c, 0xff, 0x87, 0x97, 0x7e, 0x96, 0x87, 0xf4, 0x98, 0xed, 0xa7,
- 0x3e, 0xf3, 0xfa, 0xf4, 0xb1, 0x81, 0x8d, 0xa0, 0x5b, 0x10, 0xb5, 0xa1, 0xb3, 0x4f, 0xf4, 0x59,
- 0x6a, 0x45, 0x99, 0x14, 0x04, 0x35, 0x5c, 0x23, 0x56, 0x8c, 0xdd, 0xc5, 0x8a, 0x90, 0x1e, 0xb3,
- 0xa2, 0x48, 0xa2, 0xfe, 0xde, 0x2d, 0x09, 0xf1, 0xa1, 0x35, 0x18, 0x66, 0x1e, 0xa6, 0xdf, 0x42,
- 0xa6, 0x0f, 0x18, 0x86, 0xed, 0xc9, 0x51, 0x38, 0xcd, 0xd4, 0x19, 0x80, 0x76, 0x8c, 0x21, 0x19,
- 0xe2, 0x57, 0x70, 0x8b, 0x7f, 0xf0, 0x4a, 0x7e, 0xa2, 0xc9, 0xf6, 0x17, 0xe9, 0xd2, 0x5c, 0x82,
- 0x7f, 0x66, 0x5e, 0x8c, 0x9d, 0x91, 0xa6, 0x9e, 0x06, 0xb9, 0x3b, 0x56, 0x0e, 0x84, 0x57, 0x00,
- 0xf5, 0xce, 0x58, 0x98, 0x21, 0xc9, 0x18, 0x1e, 0x0d, 0x33, 0x64, 0x8e, 0xc9, 0x6d, 0x9f, 0x5f,
- 0x34, 0x4c, 0xcf, 0xb6, 0x7a, 0x38, 0xbb, 0xfd, 0xff, 0xb3, 0x71, 0xce, 0x16, 0x60, 0x98, 0x09,
- 0xc9, 0x58, 0x2a, 0x34, 0x7d, 0xd0, 0x2c, 0xa7, 0xb0, 0x87, 0xd2, 0xca, 0x6b, 0xb7, 0x0a, 0x43,
- 0x3f, 0xb8, 0x55, 0x18, 0xfa, 0xb7, 0x5b, 0x85, 0xa1, 0x37, 0x6e, 0x15, 0xa4, 0xb7, 0x6e, 0x15,
- 0xa4, 0x77, 0x6e, 0x15, 0xa4, 0x77, 0x6f, 0x15, 0xa4, 0x1b, 0x7b, 0x05, 0xe9, 0xab, 0x7b, 0x05,
- 0xe9, 0xeb, 0x7b, 0x05, 0xe9, 0xdb, 0x7b, 0x05, 0xe9, 0x7b, 0x7b, 0x05, 0xe9, 0xb5, 0xbd, 0xc2,
- 0xd0, 0x0f, 0xf6, 0x0a, 0xd2, 0x1b, 0x7b, 0x05, 0xe9, 0xad, 0xbd, 0xc2, 0xd0, 0x3b, 0x7b, 0x05,
- 0xe9, 0xdd, 0xbd, 0xc2, 0xd0, 0x8d, 0x1f, 0x15, 0x86, 0x7e, 0x1a, 0x00, 0x00, 0xff, 0xff, 0x84,
- 0x0f, 0xf8, 0xed, 0x54, 0x3a, 0x00, 0x00,
+ // 4377 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5b, 0x70, 0x1b, 0xd7,
+ 0x79, 0xe6, 0xe2, 0x42, 0x02, 0x3f, 0x40, 0x70, 0x79, 0x48, 0xcb, 0x30, 0x13, 0x83, 0x14, 0xe5,
+ 0x0b, 0x7d, 0xa3, 0x3c, 0xba, 0x1b, 0x4a, 0xec, 0x12, 0x24, 0xc4, 0x40, 0x25, 0x48, 0x66, 0x49,
+ 0x46, 0x96, 0xd3, 0xce, 0xce, 0x72, 0x71, 0x08, 0xae, 0xb4, 0xd8, 0xdd, 0xec, 0x2e, 0x24, 0x43,
+ 0xd3, 0x07, 0x35, 0x6e, 0x9b, 0x49, 0xef, 0xb7, 0x99, 0x26, 0xae, 0xe3, 0x36, 0xe9, 0x34, 0x4e,
+ 0xd3, 0x5b, 0xd2, 0x36, 0x6e, 0x92, 0xbe, 0xe4, 0x25, 0xad, 0x9e, 0x3a, 0xc9, 0x5b, 0x1f, 0x3a,
+ 0xb2, 0xc5, 0x78, 0xa6, 0x4e, 0xeb, 0xb6, 0x6e, 0xab, 0x07, 0x8f, 0xfc, 0xd2, 0x39, 0xb7, 0xc5,
+ 0xe2, 0x42, 0x2d, 0xa8, 0x8c, 0x9d, 0x27, 0x62, 0xff, 0xf3, 0x7f, 0xdf, 0xf9, 0xcf, 0x7f, 0xfe,
+ 0x73, 0xfe, 0xff, 0x9c, 0x5d, 0xc2, 0x8d, 0x22, 0xcc, 0xd4, 0x6d, 0xbb, 0x6e, 0xe2, 0xa3, 0x8e,
+ 0x6b, 0xfb, 0xf6, 0x76, 0x73, 0xe7, 0x68, 0x0d, 0x7b, 0xba, 0x6b, 0x38, 0xbe, 0xed, 0xce, 0x53,
+ 0x19, 0x1a, 0x63, 0x1a, 0xf3, 0x42, 0x63, 0xb6, 0x0a, 0xe3, 0xe7, 0x0c, 0x13, 0x2f, 0x05, 0x8a,
+ 0x1b, 0xd8, 0x47, 0x67, 0x20, 0xb1, 0x63, 0x98, 0x38, 0x2f, 0xcd, 0xc4, 0xe7, 0x32, 0xc7, 0x1e,
+ 0x9a, 0xef, 0x02, 0xcd, 0x77, 0x22, 0xd6, 0x89, 0x58, 0xa1, 0x88, 0xd9, 0xb7, 0x12, 0x30, 0xd1,
+ 0xa7, 0x15, 0x21, 0x48, 0x58, 0x5a, 0x83, 0x30, 0x4a, 0x73, 0x69, 0x85, 0xfe, 0x46, 0x79, 0x18,
+ 0x71, 0x34, 0xfd, 0xb2, 0x56, 0xc7, 0xf9, 0x18, 0x15, 0x8b, 0x47, 0x54, 0x00, 0xa8, 0x61, 0x07,
+ 0x5b, 0x35, 0x6c, 0xe9, 0xad, 0x7c, 0x7c, 0x26, 0x3e, 0x97, 0x56, 0x42, 0x12, 0xf4, 0x04, 0x8c,
+ 0x3b, 0xcd, 0x6d, 0xd3, 0xd0, 0xd5, 0x90, 0x1a, 0xcc, 0xc4, 0xe7, 0x92, 0x8a, 0xcc, 0x1a, 0x96,
+ 0xda, 0xca, 0x8f, 0xc2, 0xd8, 0x55, 0xac, 0x5d, 0x0e, 0xab, 0x66, 0xa8, 0x6a, 0x8e, 0x88, 0x43,
+ 0x8a, 0x8b, 0x90, 0x6d, 0x60, 0xcf, 0xd3, 0xea, 0x58, 0xf5, 0x5b, 0x0e, 0xce, 0x27, 0xe8, 0xe8,
+ 0x67, 0x7a, 0x46, 0xdf, 0x3d, 0xf2, 0x0c, 0x47, 0x6d, 0xb6, 0x1c, 0x8c, 0x16, 0x20, 0x8d, 0xad,
+ 0x66, 0x83, 0x31, 0x24, 0xf7, 0xf1, 0x5f, 0xd9, 0x6a, 0x36, 0xba, 0x59, 0x52, 0x04, 0xc6, 0x29,
+ 0x46, 0x3c, 0xec, 0x5e, 0x31, 0x74, 0x9c, 0x1f, 0xa6, 0x04, 0x8f, 0xf6, 0x10, 0x6c, 0xb0, 0xf6,
+ 0x6e, 0x0e, 0x81, 0x43, 0x8b, 0x90, 0xc6, 0x2f, 0xfa, 0xd8, 0xf2, 0x0c, 0xdb, 0xca, 0x8f, 0x50,
+ 0x92, 0x87, 0xfb, 0xcc, 0x22, 0x36, 0x6b, 0xdd, 0x14, 0x6d, 0x1c, 0x3a, 0x05, 0x23, 0xb6, 0xe3,
+ 0x1b, 0xb6, 0xe5, 0xe5, 0x53, 0x33, 0xd2, 0x5c, 0xe6, 0xd8, 0x47, 0xfb, 0x06, 0xc2, 0x1a, 0xd3,
+ 0x51, 0x84, 0x32, 0xaa, 0x80, 0xec, 0xd9, 0x4d, 0x57, 0xc7, 0xaa, 0x6e, 0xd7, 0xb0, 0x6a, 0x58,
+ 0x3b, 0x76, 0x3e, 0x4d, 0x09, 0xa6, 0x7b, 0x07, 0x42, 0x15, 0x17, 0xed, 0x1a, 0xae, 0x58, 0x3b,
+ 0xb6, 0x92, 0xf3, 0x3a, 0x9e, 0xd1, 0x21, 0x18, 0xf6, 0x5a, 0x96, 0xaf, 0xbd, 0x98, 0xcf, 0xd2,
+ 0x08, 0xe1, 0x4f, 0xb3, 0xdf, 0x19, 0x86, 0xb1, 0x41, 0x42, 0xec, 0x2c, 0x24, 0x77, 0xc8, 0x28,
+ 0xf3, 0xb1, 0x83, 0xf8, 0x80, 0x61, 0x3a, 0x9d, 0x38, 0x7c, 0x8f, 0x4e, 0x5c, 0x80, 0x8c, 0x85,
+ 0x3d, 0x1f, 0xd7, 0x58, 0x44, 0xc4, 0x07, 0x8c, 0x29, 0x60, 0xa0, 0xde, 0x90, 0x4a, 0xdc, 0x53,
+ 0x48, 0x3d, 0x0f, 0x63, 0x81, 0x49, 0xaa, 0xab, 0x59, 0x75, 0x11, 0x9b, 0x47, 0xa3, 0x2c, 0x99,
+ 0x2f, 0x0b, 0x9c, 0x42, 0x60, 0x4a, 0x0e, 0x77, 0x3c, 0xa3, 0x25, 0x00, 0xdb, 0xc2, 0xf6, 0x8e,
+ 0x5a, 0xc3, 0xba, 0x99, 0x4f, 0xed, 0xe3, 0xa5, 0x35, 0xa2, 0xd2, 0xe3, 0x25, 0x9b, 0x49, 0x75,
+ 0x13, 0x3d, 0xd3, 0x0e, 0xb5, 0x91, 0x7d, 0x22, 0xa5, 0xca, 0x16, 0x59, 0x4f, 0xb4, 0x6d, 0x41,
+ 0xce, 0xc5, 0x24, 0xee, 0x71, 0x8d, 0x8f, 0x2c, 0x4d, 0x8d, 0x98, 0x8f, 0x1c, 0x99, 0xc2, 0x61,
+ 0x6c, 0x60, 0xa3, 0x6e, 0xf8, 0x11, 0x1d, 0x81, 0x40, 0xa0, 0xd2, 0xb0, 0x02, 0xba, 0x0b, 0x65,
+ 0x85, 0x70, 0x55, 0x6b, 0xe0, 0xa9, 0x6b, 0x90, 0xeb, 0x74, 0x0f, 0x9a, 0x84, 0xa4, 0xe7, 0x6b,
+ 0xae, 0x4f, 0xa3, 0x30, 0xa9, 0xb0, 0x07, 0x24, 0x43, 0x1c, 0x5b, 0x35, 0xba, 0xcb, 0x25, 0x15,
+ 0xf2, 0x13, 0xfd, 0x4c, 0x7b, 0xc0, 0x71, 0x3a, 0xe0, 0x47, 0x7a, 0x67, 0xb4, 0x83, 0xb9, 0x7b,
+ 0xdc, 0x53, 0xa7, 0x61, 0xb4, 0x63, 0x00, 0x83, 0x76, 0x3d, 0xfb, 0x0b, 0x70, 0x5f, 0x5f, 0x6a,
+ 0xf4, 0x3c, 0x4c, 0x36, 0x2d, 0xc3, 0xf2, 0xb1, 0xeb, 0xb8, 0x98, 0x44, 0x2c, 0xeb, 0x2a, 0xff,
+ 0x6f, 0x23, 0xfb, 0xc4, 0xdc, 0x56, 0x58, 0x9b, 0xb1, 0x28, 0x13, 0xcd, 0x5e, 0xe1, 0xe3, 0xe9,
+ 0xd4, 0xdb, 0x23, 0xf2, 0xf5, 0xeb, 0xd7, 0xaf, 0xc7, 0x66, 0xbf, 0x30, 0x0c, 0x93, 0xfd, 0xd6,
+ 0x4c, 0xdf, 0xe5, 0x7b, 0x08, 0x86, 0xad, 0x66, 0x63, 0x1b, 0xbb, 0xd4, 0x49, 0x49, 0x85, 0x3f,
+ 0xa1, 0x05, 0x48, 0x9a, 0xda, 0x36, 0x36, 0xf3, 0x89, 0x19, 0x69, 0x2e, 0x77, 0xec, 0x89, 0x81,
+ 0x56, 0xe5, 0xfc, 0x0a, 0x81, 0x28, 0x0c, 0x89, 0x9e, 0x85, 0x04, 0xdf, 0xa2, 0x09, 0xc3, 0xe3,
+ 0x83, 0x31, 0x90, 0xb5, 0xa4, 0x50, 0x1c, 0xfa, 0x08, 0xa4, 0xc9, 0x5f, 0x16, 0x1b, 0xc3, 0xd4,
+ 0xe6, 0x14, 0x11, 0x90, 0xb8, 0x40, 0x53, 0x90, 0xa2, 0xcb, 0xa4, 0x86, 0x45, 0x6a, 0x0b, 0x9e,
+ 0x49, 0x60, 0xd5, 0xf0, 0x8e, 0xd6, 0x34, 0x7d, 0xf5, 0x8a, 0x66, 0x36, 0x31, 0x0d, 0xf8, 0xb4,
+ 0x92, 0xe5, 0xc2, 0x4f, 0x11, 0x19, 0x9a, 0x86, 0x0c, 0x5b, 0x55, 0x86, 0x55, 0xc3, 0x2f, 0xd2,
+ 0xdd, 0x33, 0xa9, 0xb0, 0x85, 0x56, 0x21, 0x12, 0xd2, 0xfd, 0x25, 0xcf, 0xb6, 0x44, 0x68, 0xd2,
+ 0x2e, 0x88, 0x80, 0x76, 0x7f, 0xba, 0x7b, 0xe3, 0x7e, 0xb0, 0xff, 0xf0, 0xba, 0x63, 0x6a, 0xf6,
+ 0xf5, 0x18, 0x24, 0xe8, 0x7e, 0x31, 0x06, 0x99, 0xcd, 0x8b, 0xeb, 0x65, 0x75, 0x69, 0x6d, 0xab,
+ 0xb4, 0x52, 0x96, 0x25, 0x94, 0x03, 0xa0, 0x82, 0x73, 0x2b, 0x6b, 0x0b, 0x9b, 0x72, 0x2c, 0x78,
+ 0xae, 0xac, 0x6e, 0x9e, 0x3a, 0x21, 0xc7, 0x03, 0xc0, 0x16, 0x13, 0x24, 0xc2, 0x0a, 0xc7, 0x8f,
+ 0xc9, 0x49, 0x24, 0x43, 0x96, 0x11, 0x54, 0x9e, 0x2f, 0x2f, 0x9d, 0x3a, 0x21, 0x0f, 0x77, 0x4a,
+ 0x8e, 0x1f, 0x93, 0x47, 0xd0, 0x28, 0xa4, 0xa9, 0xa4, 0xb4, 0xb6, 0xb6, 0x22, 0xa7, 0x02, 0xce,
+ 0x8d, 0x4d, 0xa5, 0xb2, 0xba, 0x2c, 0xa7, 0x03, 0xce, 0x65, 0x65, 0x6d, 0x6b, 0x5d, 0x86, 0x80,
+ 0xa1, 0x5a, 0xde, 0xd8, 0x58, 0x58, 0x2e, 0xcb, 0x99, 0x40, 0xa3, 0x74, 0x71, 0xb3, 0xbc, 0x21,
+ 0x67, 0x3b, 0xcc, 0x3a, 0x7e, 0x4c, 0x1e, 0x0d, 0xba, 0x28, 0xaf, 0x6e, 0x55, 0xe5, 0x1c, 0x1a,
+ 0x87, 0x51, 0xd6, 0x85, 0x30, 0x62, 0xac, 0x4b, 0x74, 0xea, 0x84, 0x2c, 0xb7, 0x0d, 0x61, 0x2c,
+ 0xe3, 0x1d, 0x82, 0x53, 0x27, 0x64, 0x34, 0xbb, 0x08, 0x49, 0x1a, 0x5d, 0x08, 0x41, 0x6e, 0x65,
+ 0xa1, 0x54, 0x5e, 0x51, 0xd7, 0xd6, 0x37, 0x2b, 0x6b, 0xab, 0x0b, 0x2b, 0xb2, 0xd4, 0x96, 0x29,
+ 0xe5, 0x4f, 0x6e, 0x55, 0x94, 0xf2, 0x92, 0x1c, 0x0b, 0xcb, 0xd6, 0xcb, 0x0b, 0x9b, 0xe5, 0x25,
+ 0x39, 0x3e, 0xab, 0xc3, 0x64, 0xbf, 0x7d, 0xb2, 0xef, 0xca, 0x08, 0x4d, 0x71, 0x6c, 0x9f, 0x29,
+ 0xa6, 0x5c, 0x3d, 0x53, 0xfc, 0xa3, 0x18, 0x4c, 0xf4, 0xc9, 0x15, 0x7d, 0x3b, 0x79, 0x0e, 0x92,
+ 0x2c, 0x44, 0x59, 0xf6, 0x7c, 0xac, 0x6f, 0xd2, 0xa1, 0x01, 0xdb, 0x93, 0x41, 0x29, 0x2e, 0x5c,
+ 0x41, 0xc4, 0xf7, 0xa9, 0x20, 0x08, 0x45, 0xcf, 0x9e, 0xfe, 0xf3, 0x3d, 0x7b, 0x3a, 0x4b, 0x7b,
+ 0xa7, 0x06, 0x49, 0x7b, 0x54, 0x76, 0xb0, 0xbd, 0x3d, 0xd9, 0x67, 0x6f, 0x3f, 0x0b, 0xe3, 0x3d,
+ 0x44, 0x03, 0xef, 0xb1, 0x2f, 0x49, 0x90, 0xdf, 0xcf, 0x39, 0x11, 0x3b, 0x5d, 0xac, 0x63, 0xa7,
+ 0x3b, 0xdb, 0xed, 0xc1, 0xc3, 0xfb, 0x4f, 0x42, 0xcf, 0x5c, 0xbf, 0x26, 0xc1, 0xa1, 0xfe, 0x95,
+ 0x62, 0x5f, 0x1b, 0x9e, 0x85, 0xe1, 0x06, 0xf6, 0x77, 0x6d, 0x51, 0x2d, 0x3d, 0xd2, 0x27, 0x07,
+ 0x93, 0xe6, 0xee, 0xc9, 0xe6, 0xa8, 0x70, 0x12, 0x8f, 0xef, 0x57, 0xee, 0x31, 0x6b, 0x7a, 0x2c,
+ 0xfd, 0x7c, 0x0c, 0xee, 0xeb, 0x4b, 0xde, 0xd7, 0xd0, 0x07, 0x01, 0x0c, 0xcb, 0x69, 0xfa, 0xac,
+ 0x22, 0x62, 0x1b, 0x6c, 0x9a, 0x4a, 0xe8, 0xe6, 0x45, 0x36, 0xcf, 0xa6, 0x1f, 0xb4, 0xc7, 0x69,
+ 0x3b, 0x30, 0x11, 0x55, 0x38, 0xd3, 0x36, 0x34, 0x41, 0x0d, 0x2d, 0xec, 0x33, 0xd2, 0x9e, 0xc0,
+ 0x7c, 0x1a, 0x64, 0xdd, 0x34, 0xb0, 0xe5, 0xab, 0x9e, 0xef, 0x62, 0xad, 0x61, 0x58, 0x75, 0x9a,
+ 0x41, 0x52, 0xc5, 0xe4, 0x8e, 0x66, 0x7a, 0x58, 0x19, 0x63, 0xcd, 0x1b, 0xa2, 0x95, 0x20, 0x68,
+ 0x00, 0xb9, 0x21, 0xc4, 0x70, 0x07, 0x82, 0x35, 0x07, 0x88, 0xd9, 0x5f, 0x4f, 0x43, 0x26, 0x54,
+ 0x57, 0xa3, 0xc3, 0x90, 0xbd, 0xa4, 0x5d, 0xd1, 0x54, 0x71, 0x56, 0x62, 0x9e, 0xc8, 0x10, 0xd9,
+ 0x3a, 0x3f, 0x2f, 0x3d, 0x0d, 0x93, 0x54, 0xc5, 0x6e, 0xfa, 0xd8, 0x55, 0x75, 0x53, 0xf3, 0x3c,
+ 0xea, 0xb4, 0x14, 0x55, 0x45, 0xa4, 0x6d, 0x8d, 0x34, 0x2d, 0x8a, 0x16, 0x74, 0x12, 0x26, 0x28,
+ 0xa2, 0xd1, 0x34, 0x7d, 0xc3, 0x31, 0xb1, 0x4a, 0x4e, 0x6f, 0x1e, 0xcd, 0x24, 0x81, 0x65, 0xe3,
+ 0x44, 0xa3, 0xca, 0x15, 0x88, 0x45, 0x1e, 0x5a, 0x82, 0x07, 0x29, 0xac, 0x8e, 0x2d, 0xec, 0x6a,
+ 0x3e, 0x56, 0xf1, 0x67, 0x9a, 0x9a, 0xe9, 0xa9, 0x9a, 0x55, 0x53, 0x77, 0x35, 0x6f, 0x37, 0x3f,
+ 0x49, 0x08, 0x4a, 0xb1, 0xbc, 0xa4, 0x3c, 0x40, 0x14, 0x97, 0xb9, 0x5e, 0x99, 0xaa, 0x2d, 0x58,
+ 0xb5, 0x4f, 0x68, 0xde, 0x2e, 0x2a, 0xc2, 0x21, 0xca, 0xe2, 0xf9, 0xae, 0x61, 0xd5, 0x55, 0x7d,
+ 0x17, 0xeb, 0x97, 0xd5, 0xa6, 0xbf, 0x73, 0x26, 0xff, 0x91, 0x70, 0xff, 0xd4, 0xc2, 0x0d, 0xaa,
+ 0xb3, 0x48, 0x54, 0xb6, 0xfc, 0x9d, 0x33, 0x68, 0x03, 0xb2, 0x64, 0x32, 0x1a, 0xc6, 0x35, 0xac,
+ 0xee, 0xd8, 0x2e, 0x4d, 0x8d, 0xb9, 0x3e, 0x5b, 0x53, 0xc8, 0x83, 0xf3, 0x6b, 0x1c, 0x50, 0xb5,
+ 0x6b, 0xb8, 0x98, 0xdc, 0x58, 0x2f, 0x97, 0x97, 0x94, 0x8c, 0x60, 0x39, 0x67, 0xbb, 0x24, 0xa0,
+ 0xea, 0x76, 0xe0, 0xe0, 0x0c, 0x0b, 0xa8, 0xba, 0x2d, 0xdc, 0x7b, 0x12, 0x26, 0x74, 0x9d, 0x8d,
+ 0xd9, 0xd0, 0x55, 0x7e, 0xc6, 0xf2, 0xf2, 0x72, 0x87, 0xb3, 0x74, 0x7d, 0x99, 0x29, 0xf0, 0x18,
+ 0xf7, 0xd0, 0x33, 0x70, 0x5f, 0xdb, 0x59, 0x61, 0xe0, 0x78, 0xcf, 0x28, 0xbb, 0xa1, 0x27, 0x61,
+ 0xc2, 0x69, 0xf5, 0x02, 0x51, 0x47, 0x8f, 0x4e, 0xab, 0x1b, 0x76, 0x1a, 0x26, 0x9d, 0x5d, 0xa7,
+ 0x17, 0xf7, 0x78, 0x18, 0x87, 0x9c, 0x5d, 0xa7, 0x1b, 0xf8, 0x30, 0x3d, 0x70, 0xbb, 0x58, 0xd7,
+ 0x7c, 0x5c, 0xcb, 0xdf, 0x1f, 0x56, 0x0f, 0x35, 0xa0, 0xa3, 0x20, 0xeb, 0xba, 0x8a, 0x2d, 0x6d,
+ 0xdb, 0xc4, 0xaa, 0xe6, 0x62, 0x4b, 0xf3, 0xf2, 0xd3, 0x61, 0xe5, 0x9c, 0xae, 0x97, 0x69, 0xeb,
+ 0x02, 0x6d, 0x44, 0x8f, 0xc3, 0xb8, 0xbd, 0x7d, 0x49, 0x67, 0x21, 0xa9, 0x3a, 0x2e, 0xde, 0x31,
+ 0x5e, 0xcc, 0x3f, 0x44, 0xfd, 0x3b, 0x46, 0x1a, 0x68, 0x40, 0xae, 0x53, 0x31, 0x7a, 0x0c, 0x64,
+ 0xdd, 0xdb, 0xd5, 0x5c, 0x87, 0xee, 0xc9, 0x9e, 0xa3, 0xe9, 0x38, 0xff, 0x30, 0x53, 0x65, 0xf2,
+ 0x55, 0x21, 0x26, 0x4b, 0xc2, 0xbb, 0x6a, 0xec, 0xf8, 0x82, 0xf1, 0x51, 0xb6, 0x24, 0xa8, 0x8c,
+ 0xb3, 0xcd, 0x81, 0x4c, 0x5c, 0xd1, 0xd1, 0xf1, 0x1c, 0x55, 0xcb, 0x39, 0xbb, 0x4e, 0xb8, 0xdf,
+ 0x23, 0x30, 0x4a, 0x34, 0xdb, 0x9d, 0x3e, 0xc6, 0x0a, 0x32, 0x67, 0x37, 0xd4, 0xe3, 0x09, 0x38,
+ 0x44, 0x94, 0x1a, 0xd8, 0xd7, 0x6a, 0x9a, 0xaf, 0x85, 0xb4, 0x9f, 0xa4, 0xda, 0xc4, 0xef, 0x55,
+ 0xde, 0xd8, 0x61, 0xa7, 0xdb, 0xdc, 0x6e, 0x05, 0x91, 0xf5, 0x14, 0xb3, 0x93, 0xc8, 0x44, 0x6c,
+ 0x7d, 0x60, 0x45, 0xf7, 0x6c, 0x11, 0xb2, 0xe1, 0xc0, 0x47, 0x69, 0x60, 0xa1, 0x2f, 0x4b, 0xa4,
+ 0x0a, 0x5a, 0x5c, 0x5b, 0x22, 0xf5, 0xcb, 0x0b, 0x65, 0x39, 0x46, 0xea, 0xa8, 0x95, 0xca, 0x66,
+ 0x59, 0x55, 0xb6, 0x56, 0x37, 0x2b, 0xd5, 0xb2, 0x1c, 0x0f, 0x17, 0xec, 0xdf, 0x8f, 0x41, 0xae,
+ 0xf3, 0xec, 0x85, 0x3e, 0x06, 0xf7, 0x8b, 0x8b, 0x12, 0x0f, 0xfb, 0xea, 0x55, 0xc3, 0xa5, 0x6b,
+ 0xb1, 0xa1, 0xb1, 0xbc, 0x18, 0x44, 0xc3, 0x24, 0xd7, 0xda, 0xc0, 0xfe, 0x05, 0xc3, 0x25, 0x2b,
+ 0xad, 0xa1, 0xf9, 0x68, 0x05, 0xa6, 0x2d, 0x5b, 0xf5, 0x7c, 0xcd, 0xaa, 0x69, 0x6e, 0x4d, 0x6d,
+ 0x5f, 0x51, 0xa9, 0x9a, 0xae, 0x63, 0xcf, 0xb3, 0x59, 0x0e, 0x0c, 0x58, 0x3e, 0x6a, 0xd9, 0x1b,
+ 0x5c, 0xb9, 0x9d, 0x1c, 0x16, 0xb8, 0x6a, 0x57, 0xe4, 0xc6, 0xf7, 0x8b, 0xdc, 0x8f, 0x40, 0xba,
+ 0xa1, 0x39, 0x2a, 0xb6, 0x7c, 0xb7, 0x45, 0x2b, 0xee, 0x94, 0x92, 0x6a, 0x68, 0x4e, 0x99, 0x3c,
+ 0x7f, 0x38, 0x07, 0x9f, 0x7f, 0x8d, 0x43, 0x36, 0x5c, 0x75, 0x93, 0x43, 0x8c, 0x4e, 0x13, 0x94,
+ 0x44, 0xb7, 0xb0, 0x23, 0x77, 0xad, 0xd1, 0xe7, 0x17, 0x49, 0xe6, 0x2a, 0x0e, 0xb3, 0x5a, 0x58,
+ 0x61, 0x48, 0x52, 0x35, 0x90, 0xd0, 0xc2, 0xac, 0xf6, 0x48, 0x29, 0xfc, 0x09, 0x2d, 0xc3, 0xf0,
+ 0x25, 0x8f, 0x72, 0x0f, 0x53, 0xee, 0x87, 0xee, 0xce, 0x7d, 0x7e, 0x83, 0x92, 0xa7, 0xcf, 0x6f,
+ 0xa8, 0xab, 0x6b, 0x4a, 0x75, 0x61, 0x45, 0xe1, 0x70, 0xf4, 0x00, 0x24, 0x4c, 0xed, 0x5a, 0xab,
+ 0x33, 0xc7, 0x51, 0xd1, 0xa0, 0x8e, 0x7f, 0x00, 0x12, 0x57, 0xb1, 0x76, 0xb9, 0x33, 0xb3, 0x50,
+ 0xd1, 0x07, 0x18, 0xfa, 0x47, 0x21, 0x49, 0xfd, 0x85, 0x00, 0xb8, 0xc7, 0xe4, 0x21, 0x94, 0x82,
+ 0xc4, 0xe2, 0x9a, 0x42, 0xc2, 0x5f, 0x86, 0x2c, 0x93, 0xaa, 0xeb, 0x95, 0xf2, 0x62, 0x59, 0x8e,
+ 0xcd, 0x9e, 0x84, 0x61, 0xe6, 0x04, 0xb2, 0x34, 0x02, 0x37, 0xc8, 0x43, 0xfc, 0x91, 0x73, 0x48,
+ 0xa2, 0x75, 0xab, 0x5a, 0x2a, 0x2b, 0x72, 0x2c, 0x3c, 0xbd, 0x1e, 0x64, 0xc3, 0x05, 0xf7, 0x87,
+ 0x13, 0x53, 0xdf, 0x95, 0x20, 0x13, 0x2a, 0xa0, 0x49, 0xe5, 0xa3, 0x99, 0xa6, 0x7d, 0x55, 0xd5,
+ 0x4c, 0x43, 0xf3, 0x78, 0x50, 0x00, 0x15, 0x2d, 0x10, 0xc9, 0xa0, 0x93, 0xf6, 0xa1, 0x18, 0xff,
+ 0xaa, 0x04, 0x72, 0x77, 0xed, 0xda, 0x65, 0xa0, 0xf4, 0x53, 0x35, 0xf0, 0x15, 0x09, 0x72, 0x9d,
+ 0x05, 0x6b, 0x97, 0x79, 0x87, 0x7f, 0xaa, 0xe6, 0xbd, 0x19, 0x83, 0xd1, 0x8e, 0x32, 0x75, 0x50,
+ 0xeb, 0x3e, 0x03, 0xe3, 0x46, 0x0d, 0x37, 0x1c, 0xdb, 0xc7, 0x96, 0xde, 0x52, 0x4d, 0x7c, 0x05,
+ 0x9b, 0xf9, 0x59, 0xba, 0x51, 0x1c, 0xbd, 0x7b, 0x21, 0x3c, 0x5f, 0x69, 0xe3, 0x56, 0x08, 0xac,
+ 0x38, 0x51, 0x59, 0x2a, 0x57, 0xd7, 0xd7, 0x36, 0xcb, 0xab, 0x8b, 0x17, 0xd5, 0xad, 0xd5, 0x9f,
+ 0x5d, 0x5d, 0xbb, 0xb0, 0xaa, 0xc8, 0x46, 0x97, 0xda, 0x07, 0xb8, 0xd4, 0xd7, 0x41, 0xee, 0x36,
+ 0x0a, 0xdd, 0x0f, 0xfd, 0xcc, 0x92, 0x87, 0xd0, 0x04, 0x8c, 0xad, 0xae, 0xa9, 0x1b, 0x95, 0xa5,
+ 0xb2, 0x5a, 0x3e, 0x77, 0xae, 0xbc, 0xb8, 0xb9, 0xc1, 0xae, 0x36, 0x02, 0xed, 0xcd, 0xce, 0x45,
+ 0xfd, 0x72, 0x1c, 0x26, 0xfa, 0x58, 0x82, 0x16, 0xf8, 0xa1, 0x84, 0x9d, 0x93, 0x9e, 0x1a, 0xc4,
+ 0xfa, 0x79, 0x52, 0x15, 0xac, 0x6b, 0xae, 0xcf, 0xcf, 0x30, 0x8f, 0x01, 0xf1, 0x92, 0xe5, 0x1b,
+ 0x3b, 0x06, 0x76, 0xf9, 0x4d, 0x10, 0x3b, 0xa9, 0x8c, 0xb5, 0xe5, 0xec, 0x32, 0xe8, 0x49, 0x40,
+ 0x8e, 0xed, 0x19, 0xbe, 0x71, 0x05, 0xab, 0x86, 0x25, 0xae, 0x8d, 0xc8, 0xc9, 0x25, 0xa1, 0xc8,
+ 0xa2, 0xa5, 0x62, 0xf9, 0x81, 0xb6, 0x85, 0xeb, 0x5a, 0x97, 0x36, 0xd9, 0xc0, 0xe3, 0x8a, 0x2c,
+ 0x5a, 0x02, 0xed, 0xc3, 0x90, 0xad, 0xd9, 0x4d, 0x52, 0xce, 0x31, 0x3d, 0x92, 0x2f, 0x24, 0x25,
+ 0xc3, 0x64, 0x81, 0x0a, 0x2f, 0xd4, 0xdb, 0xf7, 0x55, 0x59, 0x25, 0xc3, 0x64, 0x4c, 0xe5, 0x51,
+ 0x18, 0xd3, 0xea, 0x75, 0x97, 0x90, 0x0b, 0x22, 0x76, 0xf4, 0xc8, 0x05, 0x62, 0xaa, 0x38, 0x75,
+ 0x1e, 0x52, 0xc2, 0x0f, 0x24, 0x25, 0x13, 0x4f, 0xa8, 0x0e, 0x3b, 0x4f, 0xc7, 0xe6, 0xd2, 0x4a,
+ 0xca, 0x12, 0x8d, 0x87, 0x21, 0x6b, 0x78, 0x6a, 0xfb, 0xfa, 0x3d, 0x36, 0x13, 0x9b, 0x4b, 0x29,
+ 0x19, 0xc3, 0x0b, 0xae, 0x2e, 0x67, 0x5f, 0x8b, 0x41, 0xae, 0xf3, 0xf5, 0x01, 0x5a, 0x82, 0x94,
+ 0x69, 0xeb, 0x1a, 0x0d, 0x2d, 0xf6, 0xee, 0x6a, 0x2e, 0xe2, 0x8d, 0xc3, 0xfc, 0x0a, 0xd7, 0x57,
+ 0x02, 0xe4, 0xd4, 0x3f, 0x4b, 0x90, 0x12, 0x62, 0x74, 0x08, 0x12, 0x8e, 0xe6, 0xef, 0x52, 0xba,
+ 0x64, 0x29, 0x26, 0x4b, 0x0a, 0x7d, 0x26, 0x72, 0xcf, 0xd1, 0x2c, 0x1a, 0x02, 0x5c, 0x4e, 0x9e,
+ 0xc9, 0xbc, 0x9a, 0x58, 0xab, 0xd1, 0x73, 0x8d, 0xdd, 0x68, 0x60, 0xcb, 0xf7, 0xc4, 0xbc, 0x72,
+ 0xf9, 0x22, 0x17, 0xa3, 0x27, 0x60, 0xdc, 0x77, 0x35, 0xc3, 0xec, 0xd0, 0x4d, 0x50, 0x5d, 0x59,
+ 0x34, 0x04, 0xca, 0x45, 0x78, 0x40, 0xf0, 0xd6, 0xb0, 0xaf, 0xe9, 0xbb, 0xb8, 0xd6, 0x06, 0x0d,
+ 0xd3, 0xfb, 0x8b, 0xfb, 0xb9, 0xc2, 0x12, 0x6f, 0x17, 0xd8, 0xd9, 0x1f, 0x4a, 0x30, 0x2e, 0x4e,
+ 0x62, 0xb5, 0xc0, 0x59, 0x55, 0x00, 0xcd, 0xb2, 0x6c, 0x3f, 0xec, 0xae, 0xde, 0x50, 0xee, 0xc1,
+ 0xcd, 0x2f, 0x04, 0x20, 0x25, 0x44, 0x30, 0xd5, 0x00, 0x68, 0xb7, 0xec, 0xeb, 0xb6, 0x69, 0xc8,
+ 0xf0, 0x77, 0x43, 0xf4, 0x05, 0x23, 0x3b, 0xbb, 0x03, 0x13, 0x91, 0x23, 0x1b, 0x9a, 0x84, 0xe4,
+ 0x36, 0xae, 0x1b, 0x16, 0xbf, 0xf1, 0x65, 0x0f, 0xe2, 0x86, 0x25, 0x11, 0xdc, 0xb0, 0x94, 0x3e,
+ 0x0d, 0x13, 0xba, 0xdd, 0xe8, 0x36, 0xb7, 0x24, 0x77, 0xdd, 0x1f, 0x78, 0x9f, 0x90, 0x5e, 0x80,
+ 0x76, 0x89, 0xf9, 0x9e, 0x24, 0x7d, 0x25, 0x16, 0x5f, 0x5e, 0x2f, 0x7d, 0x3d, 0x36, 0xb5, 0xcc,
+ 0xa0, 0xeb, 0x62, 0xa4, 0x0a, 0xde, 0x31, 0xb1, 0x4e, 0xac, 0x87, 0xaf, 0x3e, 0x01, 0x4f, 0xd5,
+ 0x0d, 0x7f, 0xb7, 0xb9, 0x3d, 0xaf, 0xdb, 0x8d, 0xa3, 0x75, 0xbb, 0x6e, 0xb7, 0xdf, 0xa9, 0x92,
+ 0x27, 0xfa, 0x40, 0x7f, 0xf1, 0xf7, 0xaa, 0xe9, 0x40, 0x3a, 0x15, 0xf9, 0x12, 0xb6, 0xb8, 0x0a,
+ 0x13, 0x5c, 0x59, 0xa5, 0x2f, 0x76, 0xd8, 0xf1, 0x04, 0xdd, 0xf5, 0x72, 0x2c, 0xff, 0xcd, 0xb7,
+ 0x68, 0xba, 0x56, 0xc6, 0x39, 0x94, 0xb4, 0xb1, 0x13, 0x4c, 0x51, 0x81, 0xfb, 0x3a, 0xf8, 0xd8,
+ 0xd2, 0xc4, 0x6e, 0x04, 0xe3, 0xf7, 0x39, 0xe3, 0x44, 0x88, 0x71, 0x83, 0x43, 0x8b, 0x8b, 0x30,
+ 0x7a, 0x10, 0xae, 0x7f, 0xe4, 0x5c, 0x59, 0x1c, 0x26, 0x59, 0x86, 0x31, 0x4a, 0xa2, 0x37, 0x3d,
+ 0xdf, 0x6e, 0xd0, 0x7d, 0xef, 0xee, 0x34, 0xff, 0xf4, 0x16, 0x5b, 0x2b, 0x39, 0x02, 0x5b, 0x0c,
+ 0x50, 0xc5, 0x22, 0xd0, 0x77, 0x59, 0x35, 0xac, 0x9b, 0x11, 0x0c, 0x37, 0xb8, 0x21, 0x81, 0x7e,
+ 0xf1, 0x53, 0x30, 0x49, 0x7e, 0xd3, 0x6d, 0x29, 0x6c, 0x49, 0xf4, 0x4d, 0x5a, 0xfe, 0x87, 0x2f,
+ 0xb1, 0xe5, 0x38, 0x11, 0x10, 0x84, 0x6c, 0x0a, 0xcd, 0x62, 0x1d, 0xfb, 0x3e, 0x76, 0x3d, 0x55,
+ 0x33, 0xfb, 0x99, 0x17, 0xba, 0x8a, 0xc8, 0x7f, 0xf1, 0x9d, 0xce, 0x59, 0x5c, 0x66, 0xc8, 0x05,
+ 0xd3, 0x2c, 0x6e, 0xc1, 0xfd, 0x7d, 0xa2, 0x62, 0x00, 0xce, 0x97, 0x39, 0xe7, 0x64, 0x4f, 0x64,
+ 0x10, 0xda, 0x75, 0x10, 0xf2, 0x60, 0x2e, 0x07, 0xe0, 0xfc, 0x43, 0xce, 0x89, 0x38, 0x56, 0x4c,
+ 0x29, 0x61, 0x3c, 0x0f, 0xe3, 0x57, 0xb0, 0xbb, 0x6d, 0x7b, 0xfc, 0xfa, 0x67, 0x00, 0xba, 0x57,
+ 0x38, 0xdd, 0x18, 0x07, 0xd2, 0xfb, 0x20, 0xc2, 0xf5, 0x0c, 0xa4, 0x76, 0x34, 0x1d, 0x0f, 0x40,
+ 0xf1, 0x25, 0x4e, 0x31, 0x42, 0xf4, 0x09, 0x74, 0x01, 0xb2, 0x75, 0x9b, 0x67, 0xa6, 0x68, 0xf8,
+ 0xab, 0x1c, 0x9e, 0x11, 0x18, 0x4e, 0xe1, 0xd8, 0x4e, 0xd3, 0x24, 0x69, 0x2b, 0x9a, 0xe2, 0x8f,
+ 0x04, 0x85, 0xc0, 0x70, 0x8a, 0x03, 0xb8, 0xf5, 0x8f, 0x05, 0x85, 0x17, 0xf2, 0xe7, 0x73, 0x90,
+ 0xb1, 0x2d, 0xb3, 0x65, 0x5b, 0x83, 0x18, 0xf1, 0x65, 0xce, 0x00, 0x1c, 0x42, 0x08, 0xce, 0x42,
+ 0x7a, 0xd0, 0x89, 0xf8, 0xd3, 0x77, 0xc4, 0xf2, 0x10, 0x33, 0xb0, 0x0c, 0x63, 0x62, 0x83, 0x32,
+ 0x6c, 0x6b, 0x00, 0x8a, 0xaf, 0x72, 0x8a, 0x5c, 0x08, 0xc6, 0x87, 0xe1, 0x63, 0xcf, 0xaf, 0xe3,
+ 0x41, 0x48, 0x5e, 0x13, 0xc3, 0xe0, 0x10, 0xee, 0xca, 0x6d, 0x6c, 0xe9, 0xbb, 0x83, 0x31, 0x7c,
+ 0x4d, 0xb8, 0x52, 0x60, 0x08, 0xc5, 0x22, 0x8c, 0x36, 0x34, 0xd7, 0xdb, 0xd5, 0xcc, 0x81, 0xa6,
+ 0xe3, 0xcf, 0x38, 0x47, 0x36, 0x00, 0x71, 0x8f, 0x34, 0xad, 0x83, 0xd0, 0x7c, 0x5d, 0x78, 0x24,
+ 0x04, 0xe3, 0x4b, 0xcf, 0xf3, 0xe9, 0x5d, 0xd9, 0x41, 0xd8, 0xfe, 0x5c, 0x2c, 0x3d, 0x86, 0xad,
+ 0x86, 0x19, 0xcf, 0x42, 0xda, 0x33, 0xae, 0x0d, 0x44, 0xf3, 0x17, 0x62, 0xa6, 0x29, 0x80, 0x80,
+ 0x2f, 0xc2, 0x03, 0x7d, 0xd3, 0xc4, 0x00, 0x64, 0x7f, 0xc9, 0xc9, 0x0e, 0xf5, 0x49, 0x15, 0x7c,
+ 0x4b, 0x38, 0x28, 0xe5, 0x5f, 0x89, 0x2d, 0x01, 0x77, 0x71, 0xad, 0x93, 0xb3, 0x82, 0xa7, 0xed,
+ 0x1c, 0xcc, 0x6b, 0x7f, 0x2d, 0xbc, 0xc6, 0xb0, 0x1d, 0x5e, 0xdb, 0x84, 0x43, 0x9c, 0xf1, 0x60,
+ 0xf3, 0xfa, 0x0d, 0xb1, 0xb1, 0x32, 0xf4, 0x56, 0xe7, 0xec, 0x7e, 0x1a, 0xa6, 0x02, 0x77, 0x8a,
+ 0xa2, 0xd4, 0x53, 0x1b, 0x9a, 0x33, 0x00, 0xf3, 0x37, 0x39, 0xb3, 0xd8, 0xf1, 0x83, 0xaa, 0xd6,
+ 0xab, 0x6a, 0x0e, 0x21, 0x7f, 0x1e, 0xf2, 0x82, 0xbc, 0x69, 0xb9, 0x58, 0xb7, 0xeb, 0x96, 0x71,
+ 0x0d, 0xd7, 0x06, 0xa0, 0xfe, 0x9b, 0xae, 0xa9, 0xda, 0x0a, 0xc1, 0x09, 0x73, 0x05, 0xe4, 0xa0,
+ 0x56, 0x51, 0x8d, 0x86, 0x63, 0xbb, 0x7e, 0x04, 0xe3, 0xdf, 0x8a, 0x99, 0x0a, 0x70, 0x15, 0x0a,
+ 0x2b, 0x96, 0x21, 0x47, 0x1f, 0x07, 0x0d, 0xc9, 0xbf, 0xe3, 0x44, 0xa3, 0x6d, 0x14, 0xdf, 0x38,
+ 0x74, 0xbb, 0xe1, 0x68, 0xee, 0x20, 0xfb, 0xdf, 0xb7, 0xc4, 0xc6, 0xc1, 0x21, 0x7c, 0xe3, 0xf0,
+ 0x5b, 0x0e, 0x26, 0xd9, 0x7e, 0x00, 0x86, 0xd7, 0xc5, 0xc6, 0x21, 0x30, 0x9c, 0x42, 0x14, 0x0c,
+ 0x03, 0x50, 0xfc, 0xbd, 0xa0, 0x10, 0x18, 0x42, 0xf1, 0xc9, 0x76, 0xa2, 0x75, 0x71, 0xdd, 0xf0,
+ 0x7c, 0x97, 0x95, 0xc2, 0x77, 0xa7, 0xfa, 0xf6, 0x3b, 0x9d, 0x45, 0x98, 0x12, 0x82, 0x92, 0x9d,
+ 0x88, 0x5f, 0xa1, 0xd2, 0x93, 0x52, 0xb4, 0x61, 0xdf, 0x11, 0x3b, 0x51, 0x08, 0x46, 0x6c, 0x0b,
+ 0x55, 0x88, 0xc4, 0xed, 0x3a, 0x39, 0x1f, 0x0c, 0x40, 0xf7, 0xdd, 0x2e, 0xe3, 0x36, 0x04, 0x96,
+ 0x70, 0x86, 0xea, 0x9f, 0xa6, 0x75, 0x19, 0xb7, 0x06, 0x8a, 0xce, 0x7f, 0xe8, 0xaa, 0x7f, 0xb6,
+ 0x18, 0x92, 0xed, 0x21, 0x63, 0x5d, 0xf5, 0x14, 0x8a, 0xfa, 0x0a, 0x28, 0xff, 0x8b, 0xb7, 0xf9,
+ 0x78, 0x3b, 0xcb, 0xa9, 0xe2, 0x0a, 0x09, 0xf2, 0xce, 0xa2, 0x27, 0x9a, 0xec, 0xa5, 0xdb, 0x41,
+ 0x9c, 0x77, 0xd4, 0x3c, 0xc5, 0x73, 0x30, 0xda, 0x51, 0xf0, 0x44, 0x53, 0xfd, 0x12, 0xa7, 0xca,
+ 0x86, 0xeb, 0x9d, 0xe2, 0x49, 0x48, 0x90, 0xe2, 0x25, 0x1a, 0xfe, 0xcb, 0x1c, 0x4e, 0xd5, 0x8b,
+ 0x1f, 0x87, 0x94, 0x28, 0x5a, 0xa2, 0xa1, 0xbf, 0xc2, 0xa1, 0x01, 0x84, 0xc0, 0x45, 0xc1, 0x12,
+ 0x0d, 0xff, 0x9c, 0x80, 0x0b, 0x08, 0x81, 0x0f, 0xee, 0xc2, 0xef, 0xfd, 0x5a, 0x82, 0x27, 0x1d,
+ 0xe1, 0xbb, 0xb3, 0x30, 0xc2, 0x2b, 0x95, 0x68, 0xf4, 0xe7, 0x79, 0xe7, 0x02, 0x51, 0x3c, 0x0d,
+ 0xc9, 0x01, 0x1d, 0xfe, 0x1b, 0x1c, 0xca, 0xf4, 0x8b, 0x8b, 0x90, 0x09, 0x55, 0x27, 0xd1, 0xf0,
+ 0xdf, 0xe4, 0xf0, 0x30, 0x8a, 0x98, 0xce, 0xab, 0x93, 0x68, 0x82, 0xdf, 0x12, 0xa6, 0x73, 0x04,
+ 0x71, 0x9b, 0x28, 0x4c, 0xa2, 0xd1, 0xbf, 0x2d, 0xbc, 0x2e, 0x20, 0xc5, 0xe7, 0x20, 0x1d, 0x24,
+ 0x9b, 0x68, 0xfc, 0xef, 0x70, 0x7c, 0x1b, 0x43, 0x3c, 0x10, 0x4a, 0x76, 0xd1, 0x14, 0xbf, 0x2b,
+ 0x3c, 0x10, 0x42, 0x91, 0x65, 0xd4, 0x5d, 0xc0, 0x44, 0x33, 0xfd, 0x9e, 0x58, 0x46, 0x5d, 0xf5,
+ 0x0b, 0x99, 0x4d, 0xba, 0xe7, 0x47, 0x53, 0xfc, 0xbe, 0x98, 0x4d, 0xaa, 0x4f, 0xcc, 0xe8, 0xae,
+ 0x08, 0xa2, 0x39, 0xfe, 0x40, 0x98, 0xd1, 0x55, 0x10, 0x14, 0xd7, 0x01, 0xf5, 0x56, 0x03, 0xd1,
+ 0x7c, 0x5f, 0xe0, 0x7c, 0xe3, 0x3d, 0xc5, 0x40, 0xf1, 0x02, 0x1c, 0xea, 0x5f, 0x09, 0x44, 0xb3,
+ 0x7e, 0xf1, 0x76, 0xd7, 0xd9, 0x2d, 0x5c, 0x08, 0x14, 0x37, 0xdb, 0x29, 0x25, 0x5c, 0x05, 0x44,
+ 0xd3, 0xbe, 0x7c, 0xbb, 0x73, 0xe3, 0x0e, 0x17, 0x01, 0xc5, 0x05, 0x80, 0x76, 0x02, 0x8e, 0xe6,
+ 0x7a, 0x85, 0x73, 0x85, 0x40, 0x64, 0x69, 0xf0, 0xfc, 0x1b, 0x8d, 0xff, 0x92, 0x58, 0x1a, 0x1c,
+ 0x41, 0x96, 0x86, 0x48, 0xbd, 0xd1, 0xe8, 0x57, 0xc5, 0xd2, 0x10, 0x10, 0x12, 0xd9, 0xa1, 0xec,
+ 0x16, 0xcd, 0xf0, 0x65, 0x11, 0xd9, 0x21, 0x54, 0x71, 0x15, 0xc6, 0x7b, 0x12, 0x62, 0x34, 0xd5,
+ 0x57, 0x38, 0x95, 0xdc, 0x9d, 0x0f, 0xc3, 0xc9, 0x8b, 0x27, 0xc3, 0x68, 0xb6, 0x3f, 0xe9, 0x4a,
+ 0x5e, 0x3c, 0x17, 0x16, 0xcf, 0x42, 0xca, 0x6a, 0x9a, 0x26, 0x59, 0x3c, 0xe8, 0xee, 0x5f, 0xee,
+ 0xe5, 0x7f, 0xfc, 0x3e, 0xf7, 0x8e, 0x00, 0x14, 0x4f, 0x42, 0x12, 0x37, 0xb6, 0x71, 0x2d, 0x0a,
+ 0xf9, 0xef, 0xef, 0x8b, 0x0d, 0x93, 0x68, 0x17, 0x9f, 0x03, 0x60, 0x57, 0x23, 0xf4, 0xb5, 0x5f,
+ 0x04, 0xf6, 0x3f, 0xde, 0xe7, 0xdf, 0xd4, 0xb4, 0x21, 0x6d, 0x02, 0xf6, 0x85, 0xce, 0xdd, 0x09,
+ 0xde, 0xe9, 0x24, 0xa0, 0x33, 0xf2, 0x0c, 0x8c, 0x5c, 0xf2, 0x6c, 0xcb, 0xd7, 0xea, 0x51, 0xe8,
+ 0xff, 0xe4, 0x68, 0xa1, 0x4f, 0x1c, 0xd6, 0xb0, 0x5d, 0xec, 0x6b, 0x75, 0x2f, 0x0a, 0xfb, 0x5f,
+ 0x1c, 0x1b, 0x00, 0x08, 0x58, 0xd7, 0x3c, 0x7f, 0x90, 0x71, 0xff, 0xb7, 0x00, 0x0b, 0x00, 0x31,
+ 0x9a, 0xfc, 0xbe, 0x8c, 0x5b, 0x51, 0xd8, 0x77, 0x85, 0xd1, 0x5c, 0xbf, 0xf8, 0x71, 0x48, 0x93,
+ 0x9f, 0xec, 0x43, 0xb9, 0x08, 0xf0, 0xff, 0x70, 0x70, 0x1b, 0x41, 0x7a, 0xf6, 0xfc, 0x9a, 0x6f,
+ 0x44, 0x3b, 0xfb, 0x7f, 0xf9, 0x4c, 0x0b, 0xfd, 0xe2, 0x02, 0x64, 0x3c, 0xbf, 0x56, 0x6b, 0xf2,
+ 0xfa, 0x34, 0x02, 0xfe, 0x7f, 0xef, 0x07, 0x57, 0x16, 0x01, 0x86, 0xcc, 0xf6, 0xd5, 0xcb, 0xbe,
+ 0x63, 0xd3, 0xd7, 0x1c, 0x51, 0x0c, 0xb7, 0x39, 0x43, 0x08, 0x52, 0x2a, 0xf7, 0xbf, 0xbe, 0x85,
+ 0x65, 0x7b, 0xd9, 0x66, 0x17, 0xb7, 0x2f, 0xcc, 0x46, 0xdf, 0xc0, 0xc2, 0xeb, 0x63, 0x70, 0x58,
+ 0xb7, 0x1b, 0xdb, 0xb6, 0x77, 0x34, 0xb4, 0x99, 0x1f, 0x15, 0xf3, 0xc3, 0x2f, 0x67, 0x83, 0xf9,
+ 0x9a, 0x3a, 0xd8, 0xad, 0xee, 0xec, 0x8f, 0x47, 0x21, 0xb5, 0xa8, 0x79, 0xbe, 0x76, 0x55, 0x6b,
+ 0xa1, 0x87, 0x21, 0x55, 0xb1, 0xfc, 0xe3, 0xc7, 0xd6, 0x7d, 0x97, 0xbe, 0x98, 0x8c, 0x97, 0xd2,
+ 0x77, 0x6e, 0x4e, 0x27, 0x0d, 0x22, 0x53, 0x82, 0x26, 0x74, 0x04, 0x92, 0xf4, 0x37, 0xbd, 0xdb,
+ 0x8e, 0x97, 0x46, 0x6f, 0xdc, 0x9c, 0x1e, 0x6a, 0xeb, 0xb1, 0x36, 0x74, 0x11, 0x32, 0xd5, 0xd6,
+ 0x96, 0x61, 0xf9, 0xa7, 0x4e, 0x10, 0x3a, 0xe2, 0x9f, 0x44, 0xe9, 0xf4, 0x9d, 0x9b, 0xd3, 0xc7,
+ 0xf7, 0x35, 0x90, 0x14, 0x16, 0xed, 0x81, 0x09, 0x34, 0xfd, 0x22, 0x39, 0xcc, 0x85, 0x2e, 0x40,
+ 0x4a, 0x3c, 0xb2, 0x77, 0x44, 0xa5, 0xb3, 0xdc, 0x84, 0x7b, 0xe2, 0x0e, 0xc8, 0xd0, 0xcf, 0x41,
+ 0xb6, 0xda, 0x3a, 0x67, 0xda, 0x1a, 0xf7, 0x41, 0x72, 0x46, 0x9a, 0x8b, 0x95, 0xce, 0xdc, 0xb9,
+ 0x39, 0x7d, 0x62, 0x60, 0x62, 0x0e, 0xa7, 0xcc, 0x1d, 0x6c, 0xe8, 0x05, 0x48, 0x07, 0xcf, 0xf4,
+ 0x2d, 0x54, 0xac, 0xf4, 0x31, 0x6e, 0xf7, 0xbd, 0xd1, 0xb7, 0xe9, 0x42, 0x96, 0x33, 0x77, 0x8f,
+ 0xcc, 0x48, 0x73, 0xd2, 0xbd, 0x58, 0xce, 0x7d, 0xd2, 0xc1, 0x16, 0xb2, 0xfc, 0xd4, 0x09, 0xfa,
+ 0xda, 0x4b, 0xba, 0x57, 0xcb, 0x39, 0x7d, 0x9b, 0x0e, 0x9d, 0x87, 0x91, 0x6a, 0xab, 0xd4, 0xf2,
+ 0xb1, 0x47, 0x3f, 0x74, 0xcb, 0x96, 0x9e, 0xbe, 0x73, 0x73, 0xfa, 0xc9, 0x01, 0x59, 0x29, 0x4e,
+ 0x11, 0x04, 0x68, 0x06, 0x32, 0xab, 0xb6, 0xdb, 0xd0, 0x4c, 0xc6, 0x07, 0xec, 0x35, 0x5e, 0x48,
+ 0x84, 0xb6, 0xc8, 0x48, 0xd8, 0x6c, 0x7b, 0xf4, 0x7f, 0xa4, 0x7e, 0x82, 0x98, 0x6c, 0x33, 0x21,
+ 0x03, 0x92, 0xd5, 0x56, 0x55, 0x73, 0xf2, 0x59, 0xfa, 0x8e, 0xe9, 0xc1, 0xf9, 0x00, 0x21, 0xd6,
+ 0xd6, 0x3c, 0x6d, 0xa7, 0x1f, 0xe3, 0x94, 0x4e, 0xdc, 0xb9, 0x39, 0xfd, 0xf4, 0xc0, 0x3d, 0x56,
+ 0x35, 0x87, 0x76, 0xc7, 0x7a, 0x40, 0xdf, 0x92, 0xc8, 0xc2, 0x62, 0x97, 0xf4, 0xa4, 0xc7, 0x51,
+ 0xda, 0xe3, 0x91, 0xbe, 0x3d, 0x06, 0x5a, 0xac, 0x5f, 0xeb, 0xb3, 0x6f, 0x1c, 0x60, 0xa4, 0xec,
+ 0x6c, 0x48, 0xba, 0xfe, 0xd5, 0x37, 0xee, 0x79, 0xd1, 0x06, 0x16, 0xa0, 0x97, 0x24, 0x18, 0xad,
+ 0xb6, 0x56, 0x79, 0x12, 0x27, 0x96, 0xe7, 0xf8, 0x7f, 0xd2, 0xf4, 0xb3, 0x3c, 0xa4, 0xc7, 0x6c,
+ 0x3f, 0xf5, 0xd9, 0x37, 0xa6, 0x8f, 0x0d, 0x6c, 0x04, 0xdd, 0x82, 0xa8, 0x0d, 0x9d, 0x7d, 0xa2,
+ 0xcf, 0x51, 0x2b, 0xca, 0xa4, 0x20, 0xa8, 0xe1, 0x1a, 0xb1, 0x62, 0xec, 0x2e, 0x56, 0x84, 0xf4,
+ 0x98, 0x15, 0x45, 0x12, 0xf5, 0xf7, 0x6e, 0x49, 0x88, 0x0f, 0xad, 0xc1, 0x30, 0xf3, 0x30, 0xfd,
+ 0xc8, 0x32, 0x7d, 0xc0, 0x30, 0x6c, 0x4f, 0x8e, 0xc2, 0x69, 0xa6, 0xce, 0x00, 0xb4, 0x63, 0x0c,
+ 0xc9, 0x10, 0xbf, 0x8c, 0x5b, 0xfc, 0x4b, 0x5a, 0xf2, 0x13, 0x4d, 0xb6, 0x3f, 0x75, 0x97, 0xe6,
+ 0x12, 0xfc, 0xfb, 0xf5, 0x62, 0xec, 0x8c, 0x34, 0xf5, 0x2c, 0xc8, 0xdd, 0xb1, 0x72, 0x20, 0xbc,
+ 0x02, 0xa8, 0x77, 0xc6, 0xc2, 0x0c, 0x49, 0xc6, 0xf0, 0x48, 0x98, 0x21, 0x73, 0x4c, 0x6e, 0xfb,
+ 0xfc, 0x82, 0x61, 0x7a, 0xb6, 0xd5, 0xc3, 0xd9, 0xed, 0xff, 0x9f, 0x8c, 0x73, 0xb6, 0x00, 0xc3,
+ 0x4c, 0x48, 0xc6, 0x52, 0xa1, 0xe9, 0x83, 0x66, 0x39, 0x85, 0x3d, 0x94, 0x56, 0x6e, 0xdc, 0x2a,
+ 0x0c, 0xfd, 0xe0, 0x56, 0x61, 0xe8, 0x5f, 0x6e, 0x15, 0x86, 0xde, 0xbc, 0x55, 0x90, 0xde, 0xbe,
+ 0x55, 0x90, 0xde, 0xbd, 0x55, 0x90, 0xde, 0xbb, 0x55, 0x90, 0xae, 0xef, 0x15, 0xa4, 0xaf, 0xed,
+ 0x15, 0xa4, 0x6f, 0xec, 0x15, 0xa4, 0x6f, 0xef, 0x15, 0xa4, 0xef, 0xed, 0x15, 0xa4, 0x1b, 0x7b,
+ 0x85, 0xa1, 0x1f, 0xec, 0x15, 0xa4, 0x37, 0xf7, 0x0a, 0xd2, 0xdb, 0x7b, 0x85, 0xa1, 0x77, 0xf7,
+ 0x0a, 0xd2, 0x7b, 0x7b, 0x85, 0xa1, 0xeb, 0x3f, 0x2a, 0x0c, 0xfd, 0x7f, 0x00, 0x00, 0x00, 0xff,
+ 0xff, 0xdd, 0xf4, 0x4d, 0xca, 0xad, 0x3a, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -1401,7 +1452,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1429,7 +1480,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1449,7 +1500,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Int32 |= (int32(b) & 0x7F) << shift
+ m.Int32 |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1468,7 +1519,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift
+ v |= github_com_gogo_protobuf_test_casttype.MyUint64Type(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1488,7 +1539,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.MyUint64 |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift
+ m.MyUint64 |= github_com_gogo_protobuf_test_casttype.MyUint64Type(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1553,7 +1604,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1562,6 +1613,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1584,7 +1638,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1593,6 +1647,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1613,7 +1670,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift
+ v |= github_com_gogo_protobuf_test_casttype.MyUint64Type(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1630,7 +1687,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1639,12 +1696,15 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -1664,7 +1724,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift
+ v |= github_com_gogo_protobuf_test_casttype.MyUint64Type(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1688,7 +1748,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1697,6 +1757,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1717,7 +1780,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1734,7 +1797,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1744,6 +1807,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -1759,7 +1825,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint64(b) & 0x7F) << shift
+ mapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1795,7 +1861,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1804,6 +1870,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1824,7 +1893,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1841,7 +1910,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1851,6 +1920,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -1866,7 +1938,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint64(b) & 0x7F) << shift
+ mapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1902,7 +1974,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1911,6 +1983,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1931,7 +2006,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1947,7 +2022,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1963,7 +2038,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1972,7 +2047,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthCasttype
}
if postmsgIndex > l {
@@ -2014,7 +2089,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2023,6 +2098,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2043,7 +2121,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2059,7 +2137,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2075,7 +2153,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2084,7 +2162,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthCasttype
}
if postmsgIndex > l {
@@ -2126,7 +2204,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2136,6 +2214,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCasttype
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCasttype
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2151,6 +2232,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthCasttype
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthCasttype
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2179,7 +2263,7 @@ func (m *Wilson) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2207,7 +2291,7 @@ func (m *Wilson) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2222,6 +2306,9 @@ func (m *Wilson) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthCasttype
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthCasttype
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2289,10 +2376,13 @@ func skipCasttype(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthCasttype
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthCasttype
+ }
return iNdEx, nil
case 3:
for {
@@ -2321,6 +2411,9 @@ func skipCasttype(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthCasttype
+ }
}
return iNdEx, nil
case 4:
@@ -2339,55 +2432,3 @@ var (
ErrInvalidLengthCasttype = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowCasttype = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("combos/unmarshaler/casttype.proto", fileDescriptor_casttype_bbbbfd21588d9441)
-}
-
-var fileDescriptor_casttype_bbbbfd21588d9441 = []byte{
- // 698 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x40,
- 0x14, 0xc7, 0x7d, 0x4d, 0xd3, 0x26, 0x97, 0x06, 0xa2, 0x13, 0x83, 0x55, 0x89, 0xb3, 0x69, 0x55,
- 0xe4, 0x01, 0x92, 0x2a, 0x8d, 0x4a, 0x55, 0x10, 0x83, 0xab, 0x22, 0x15, 0xe1, 0x82, 0x0c, 0x55,
- 0x05, 0x62, 0xb9, 0xb4, 0x26, 0x8d, 0x70, 0xec, 0xc8, 0xbe, 0x80, 0xbc, 0x55, 0x65, 0x40, 0xe2,
- 0x2f, 0x61, 0x64, 0x41, 0x62, 0x64, 0xec, 0xd8, 0x91, 0x29, 0xad, 0xcd, 0x52, 0xb6, 0x8e, 0x55,
- 0x26, 0x74, 0x77, 0x4e, 0xec, 0xfe, 0x00, 0xa5, 0xe9, 0x76, 0xef, 0xee, 0xbd, 0xcf, 0xfb, 0xde,
- 0xbb, 0x77, 0x77, 0xf0, 0xce, 0x96, 0xdb, 0xaa, 0xbb, 0x7e, 0xa5, 0xe3, 0xb4, 0x88, 0xe7, 0xef,
- 0x10, 0xdb, 0xf2, 0x2a, 0x5b, 0xc4, 0xa7, 0x34, 0x68, 0x5b, 0xe5, 0xb6, 0xe7, 0x52, 0x17, 0xe5,
- 0xfa, 0xf6, 0xf4, 0xfd, 0x46, 0x93, 0xee, 0x74, 0xea, 0xe5, 0x2d, 0xb7, 0x55, 0x69, 0xb8, 0x0d,
- 0xb7, 0xc2, 0x1d, 0xea, 0x9d, 0x77, 0xdc, 0xe2, 0x06, 0x1f, 0x89, 0xc0, 0x99, 0x3f, 0x45, 0x98,
- 0x5b, 0x21, 0x3e, 0x25, 0x1f, 0x49, 0x80, 0xe6, 0x60, 0x6e, 0xcd, 0xa1, 0x0b, 0xd5, 0x17, 0xd4,
- 0x93, 0x81, 0x0a, 0xb4, 0x8c, 0x9e, 0xef, 0x75, 0x95, 0x6c, 0x93, 0xcd, 0x99, 0x83, 0x25, 0x34,
- 0x0b, 0xb3, 0x7c, 0x2c, 0x8f, 0x71, 0x9f, 0xe2, 0x7e, 0x57, 0x91, 0x12, 0x3f, 0xb1, 0x86, 0x5e,
- 0xc3, 0x82, 0x11, 0x6c, 0x34, 0x1d, 0xba, 0x58, 0x63, 0xb8, 0x8c, 0x0a, 0xb4, 0x71, 0xfd, 0x41,
- 0xaf, 0xab, 0x2c, 0xfc, 0x53, 0x20, 0xb5, 0x7c, 0x9a, 0x6c, 0xac, 0x1f, 0xfd, 0x2a, 0x68, 0x5b,
- 0x66, 0x9a, 0x85, 0x36, 0x61, 0xae, 0x6f, 0xca, 0xe3, 0x9c, 0xfb, 0x30, 0x96, 0x30, 0x12, 0x7b,
- 0x00, 0x43, 0x6f, 0xe1, 0x94, 0x11, 0x3c, 0xb1, 0x5d, 0x12, 0xd7, 0x20, 0xab, 0x02, 0x6d, 0x4c,
- 0x5f, 0xea, 0x75, 0x95, 0xda, 0xd0, 0xe0, 0x38, 0x9c, 0x93, 0xcf, 0xd0, 0xd0, 0x1b, 0x98, 0x1f,
- 0xd8, 0xf2, 0x04, 0x47, 0x3f, 0x8a, 0x75, 0x8f, 0x86, 0x4f, 0x70, 0x29, 0xe5, 0xa2, 0xdc, 0x93,
- 0x2a, 0xd0, 0xc0, 0x28, 0xca, 0xe3, 0x9a, 0x9c, 0xa1, 0xa5, 0x94, 0x2f, 0xd6, 0xe4, 0x1c, 0x47,
- 0x8f, 0xa8, 0x3c, 0xc6, 0x27, 0x38, 0xf4, 0x14, 0x4e, 0x1a, 0x81, 0x1e, 0x50, 0xcb, 0x97, 0xf3,
- 0x2a, 0xd0, 0xa6, 0xf4, 0xf9, 0x5e, 0x57, 0xb9, 0x37, 0x24, 0x95, 0xc7, 0x99, 0x7d, 0x00, 0x52,
- 0x61, 0x61, 0xdd, 0xf5, 0x5a, 0xc4, 0x16, 0x3c, 0xc8, 0x78, 0x66, 0x7a, 0x0a, 0x6d, 0xb0, 0x9d,
- 0x88, 0xd3, 0xf6, 0xe5, 0x82, 0x9a, 0xb9, 0x4e, 0x4f, 0x26, 0x24, 0xd4, 0x84, 0x59, 0x23, 0x30,
- 0x48, 0x5b, 0x9e, 0x52, 0x33, 0x5a, 0xa1, 0x7a, 0xbb, 0x3c, 0x88, 0xe8, 0xdf, 0xad, 0x32, 0x5f,
- 0x5f, 0x75, 0xa8, 0x17, 0xe8, 0xb5, 0x5e, 0x57, 0x99, 0x1f, 0x3a, 0xa3, 0x41, 0xda, 0x3c, 0x9d,
- 0xc8, 0x80, 0xbe, 0x03, 0x76, 0xb1, 0x56, 0x3a, 0x3e, 0x75, 0x5b, 0x2c, 0x63, 0x91, 0x67, 0x9c,
- 0xbd, 0x34, 0xe3, 0xc0, 0x4b, 0xe4, 0x75, 0xf6, 0x0e, 0xaf, 0xb0, 0xd3, 0x97, 0xd4, 0x6b, 0x3a,
- 0x0d, 0x96, 0xfa, 0xcb, 0xe1, 0xc8, 0x97, 0x76, 0xa0, 0x00, 0x7d, 0x02, 0xb0, 0x68, 0x04, 0xeb,
- 0x1d, 0xdb, 0x26, 0x75, 0xdb, 0x62, 0xca, 0x6f, 0x70, 0xe5, 0x73, 0x97, 0x2a, 0x4f, 0xf9, 0x09,
- 0xed, 0x8b, 0x7b, 0x87, 0x4a, 0x75, 0x68, 0x11, 0xfc, 0x09, 0xe2, 0x1a, 0xce, 0xe6, 0x44, 0x9f,
- 0xb9, 0x8a, 0xd5, 0x56, 0xdd, 0xda, 0xde, 0xb6, 0xb6, 0x99, 0x8a, 0x9b, 0xff, 0x51, 0x91, 0xf2,
- 0x13, 0x2a, 0x96, 0x59, 0xd7, 0x8f, 0xae, 0x24, 0xc5, 0x43, 0xcf, 0xe1, 0x84, 0xa8, 0xb0, 0x5c,
- 0x52, 0x81, 0x96, 0xbf, 0x62, 0x1b, 0x26, 0x87, 0x63, 0xc6, 0x98, 0xe9, 0x25, 0x08, 0x93, 0x1e,
- 0x43, 0x25, 0x98, 0x79, 0x6f, 0x05, 0xfc, 0x15, 0xcf, 0x9b, 0x6c, 0x88, 0x6e, 0xc1, 0xec, 0x07,
- 0x62, 0x77, 0x2c, 0xfe, 0x6a, 0x8f, 0x9b, 0xc2, 0x58, 0x1e, 0x5b, 0x02, 0xd3, 0x8f, 0x61, 0xe9,
- 0x7c, 0xaf, 0x5c, 0x29, 0xde, 0x84, 0xe8, 0xe2, 0x89, 0xa5, 0x09, 0x59, 0x41, 0xb8, 0x9b, 0x26,
- 0x14, 0xaa, 0xa5, 0xa4, 0xe6, 0x9b, 0x4d, 0xdb, 0x77, 0x9d, 0x0b, 0xcc, 0xf3, 0xf5, 0xbf, 0x1e,
- 0x73, 0x06, 0xc3, 0x09, 0x31, 0xc9, 0xf6, 0xb2, 0xc6, 0xbf, 0x0f, 0xfe, 0xcb, 0x99, 0xc2, 0xd0,
- 0x9f, 0xed, 0x87, 0x58, 0x3a, 0x08, 0xb1, 0xf4, 0x2b, 0xc4, 0xd2, 0x51, 0x88, 0xc1, 0x71, 0x88,
- 0xc1, 0x49, 0x88, 0xc1, 0x69, 0x88, 0xc1, 0x6e, 0x84, 0xc1, 0xd7, 0x08, 0x83, 0x6f, 0x11, 0x06,
- 0x3f, 0x22, 0x0c, 0x7e, 0x46, 0x18, 0xec, 0x47, 0x58, 0x3a, 0x88, 0x30, 0x38, 0x8a, 0x30, 0x38,
- 0x8e, 0xb0, 0x74, 0x12, 0x61, 0x70, 0x1a, 0x61, 0x69, 0xf7, 0x37, 0x96, 0xfe, 0x06, 0x00, 0x00,
- 0xff, 0xff, 0xa8, 0xc0, 0xa5, 0xf1, 0xb6, 0x07, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/castvalue.pb.go b/vendor/github.com/gogo/protobuf/test/castvalue/castvalue.pb.go
index 0d16d99a57..47369d082b 100644
--- a/vendor/github.com/gogo/protobuf/test/castvalue/castvalue.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/castvalue/castvalue.pb.go
@@ -3,20 +3,20 @@
package castvalue
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -40,7 +40,7 @@ type Castaway struct {
func (m *Castaway) Reset() { *m = Castaway{} }
func (*Castaway) ProtoMessage() {}
func (*Castaway) Descriptor() ([]byte, []int) {
- return fileDescriptor_castvalue_87404b9a479f5489, []int{0}
+ return fileDescriptor_42465c49d5c9d654, []int{0}
}
func (m *Castaway) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Castaway.Unmarshal(m, b)
@@ -48,8 +48,8 @@ func (m *Castaway) XXX_Unmarshal(b []byte) error {
func (m *Castaway) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Castaway.Marshal(b, m, deterministic)
}
-func (dst *Castaway) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Castaway.Merge(dst, src)
+func (m *Castaway) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Castaway.Merge(m, src)
}
func (m *Castaway) XXX_Size() int {
return xxx_messageInfo_Castaway.Size(m)
@@ -70,7 +70,7 @@ type Wilson struct {
func (m *Wilson) Reset() { *m = Wilson{} }
func (*Wilson) ProtoMessage() {}
func (*Wilson) Descriptor() ([]byte, []int) {
- return fileDescriptor_castvalue_87404b9a479f5489, []int{1}
+ return fileDescriptor_42465c49d5c9d654, []int{1}
}
func (m *Wilson) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Wilson.Unmarshal(m, b)
@@ -78,8 +78,8 @@ func (m *Wilson) XXX_Unmarshal(b []byte) error {
func (m *Wilson) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Wilson.Marshal(b, m, deterministic)
}
-func (dst *Wilson) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Wilson.Merge(dst, src)
+func (m *Wilson) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Wilson.Merge(m, src)
}
func (m *Wilson) XXX_Size() int {
return xxx_messageInfo_Wilson.Size(m)
@@ -96,6 +96,35 @@ func init() {
proto.RegisterMapType((map[int32]*MyWilson)(nil), "castvalue.Castaway.CastMapValueMessageNullableEntry")
proto.RegisterType((*Wilson)(nil), "castvalue.Wilson")
}
+
+func init() { proto.RegisterFile("castvalue.proto", fileDescriptor_42465c49d5c9d654) }
+
+var fileDescriptor_42465c49d5c9d654 = []byte{
+ // 342 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4f, 0x4e, 0x2c, 0x2e,
+ 0x29, 0x4b, 0xcc, 0x29, 0x4d, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x84, 0x0b, 0x48,
+ 0xe9, 0xa6, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0xa7, 0xe7, 0xa7, 0xe7,
+ 0xeb, 0x83, 0x55, 0x24, 0x95, 0xa6, 0x81, 0x79, 0x60, 0x0e, 0x98, 0x05, 0xd1, 0xa9, 0x74, 0x90,
+ 0x99, 0x8b, 0xc3, 0x39, 0xb1, 0xb8, 0x24, 0xb1, 0x3c, 0xb1, 0x52, 0xa8, 0x80, 0x4b, 0x18, 0xc4,
+ 0xf6, 0x4d, 0x2c, 0x08, 0x03, 0x99, 0xe5, 0x9b, 0x5a, 0x5c, 0x9c, 0x98, 0x9e, 0x2a, 0xc1, 0xa8,
+ 0xc0, 0xac, 0xc1, 0x6d, 0xa4, 0xa3, 0x87, 0xb0, 0x15, 0xa6, 0x43, 0x0f, 0x8b, 0x72, 0xd7, 0xbc,
+ 0x92, 0xa2, 0x4a, 0x27, 0x81, 0x13, 0xf7, 0xe4, 0x19, 0xba, 0xee, 0xcb, 0x73, 0xf8, 0x56, 0x86,
+ 0x67, 0xe6, 0x14, 0xe7, 0xe7, 0x05, 0x61, 0x33, 0x5a, 0xa8, 0x85, 0x91, 0x4b, 0x1a, 0x8b, 0xb8,
+ 0x5f, 0x69, 0x4e, 0x4e, 0x62, 0x52, 0x4e, 0xaa, 0x04, 0x13, 0xd8, 0x6a, 0x13, 0x22, 0xad, 0x86,
+ 0x69, 0x83, 0x38, 0x81, 0x07, 0xc5, 0x7a, 0x7c, 0xd6, 0x48, 0x45, 0x72, 0x49, 0xe0, 0xf2, 0x89,
+ 0x90, 0x00, 0x17, 0x73, 0x76, 0x6a, 0xa5, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x6b, 0x10, 0x88, 0x29,
+ 0xa4, 0xce, 0xc5, 0x0a, 0x76, 0x8b, 0x04, 0x93, 0x02, 0xa3, 0x06, 0xb7, 0x91, 0x20, 0x92, 0xeb,
+ 0xa0, 0x96, 0x41, 0xe4, 0xad, 0x98, 0x2c, 0x18, 0xa5, 0x12, 0xb9, 0x14, 0x08, 0xb9, 0x94, 0x42,
+ 0x2b, 0x94, 0xe4, 0xb8, 0xd8, 0x20, 0x82, 0x42, 0x22, 0x5c, 0xac, 0x9e, 0x79, 0x25, 0x66, 0x26,
+ 0x60, 0xa3, 0x98, 0x83, 0x20, 0x1c, 0x27, 0x9f, 0x13, 0x0f, 0xe5, 0x18, 0x2e, 0x3c, 0x94, 0x63,
+ 0xb8, 0xf1, 0x50, 0x8e, 0xe1, 0xc1, 0x43, 0x39, 0xc6, 0x17, 0x0f, 0xe5, 0x18, 0x3f, 0x3c, 0x94,
+ 0x63, 0xfc, 0xf1, 0x50, 0x8e, 0xb1, 0xe1, 0x91, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x1b, 0x1e,
+ 0xc9, 0x31, 0xee, 0x78, 0x24, 0xc7, 0x78, 0xe0, 0x91, 0x1c, 0xe3, 0x89, 0x47, 0x72, 0x0c, 0x17,
+ 0x1e, 0xc9, 0x31, 0x3c, 0x78, 0x24, 0xc7, 0xf8, 0xe2, 0x91, 0x1c, 0xc3, 0x87, 0x47, 0x72, 0x8c,
+ 0x3f, 0x1e, 0xc9, 0x31, 0x34, 0x3c, 0x96, 0x63, 0x00, 0x04, 0x00, 0x00, 0xff, 0xff, 0x7b, 0x8b,
+ 0x19, 0x68, 0x7d, 0x02, 0x00, 0x00,
+}
+
func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return CastvalueDescription()
}
@@ -105,258 +134,260 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog
func CastvalueDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4004 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0xdc, 0xd6,
- 0x75, 0x26, 0xf6, 0x87, 0xdc, 0x3d, 0xbb, 0x5c, 0x82, 0x20, 0x2d, 0xad, 0xe8, 0x64, 0x45, 0xd1,
- 0x76, 0x44, 0xdb, 0x09, 0x95, 0x91, 0x25, 0x59, 0x5a, 0x35, 0x71, 0x97, 0xcb, 0x15, 0xb3, 0x2e,
- 0xff, 0x82, 0x25, 0x63, 0xcb, 0x99, 0x0e, 0x06, 0xc4, 0xde, 0x5d, 0x42, 0xc2, 0x02, 0x08, 0x80,
- 0x95, 0x4c, 0x4d, 0x1f, 0xd4, 0x71, 0xda, 0x4e, 0xda, 0xe9, 0x7f, 0x67, 0x9a, 0xb8, 0x8e, 0xdb,
- 0xa4, 0xd3, 0x38, 0x4d, 0xff, 0x92, 0xa6, 0x4d, 0x93, 0xf4, 0x25, 0x7d, 0x48, 0xeb, 0xa7, 0x4e,
- 0xf2, 0xd6, 0x87, 0x4e, 0x6b, 0x31, 0x9e, 0xa9, 0xdb, 0xba, 0x8d, 0xdb, 0xea, 0xc1, 0x33, 0x9e,
- 0xce, 0x74, 0xee, 0x1f, 0x16, 0xc0, 0x2e, 0x09, 0x30, 0x1d, 0x3b, 0x4f, 0x24, 0xce, 0x3d, 0xdf,
- 0x87, 0x73, 0xcf, 0x3d, 0xf7, 0x9c, 0x73, 0x2f, 0x16, 0x7e, 0x78, 0x05, 0xe6, 0xbb, 0x96, 0xd5,
- 0x35, 0xd0, 0x39, 0xdb, 0xb1, 0x3c, 0x6b, 0xb7, 0xdf, 0x39, 0xd7, 0x46, 0xae, 0xe6, 0xe8, 0xb6,
- 0x67, 0x39, 0x4b, 0x44, 0x26, 0x4d, 0x51, 0x8d, 0x25, 0xae, 0xb1, 0xb0, 0x0e, 0xd3, 0xd7, 0x74,
- 0x03, 0xad, 0xf8, 0x8a, 0x2d, 0xe4, 0x49, 0x97, 0x21, 0xd3, 0xd1, 0x0d, 0x54, 0x16, 0xe6, 0xd3,
- 0x8b, 0x85, 0xf3, 0x0f, 0x2f, 0x45, 0x40, 0x4b, 0x61, 0xc4, 0x16, 0x16, 0xcb, 0x04, 0xb1, 0xf0,
- 0x7a, 0x06, 0x66, 0x46, 0x8c, 0x4a, 0x12, 0x64, 0x4c, 0xb5, 0x87, 0x19, 0x85, 0xc5, 0xbc, 0x4c,
- 0xfe, 0x97, 0xca, 0x30, 0x61, 0xab, 0xda, 0x4d, 0xb5, 0x8b, 0xca, 0x29, 0x22, 0xe6, 0x8f, 0x52,
- 0x05, 0xa0, 0x8d, 0x6c, 0x64, 0xb6, 0x91, 0xa9, 0xed, 0x97, 0xd3, 0xf3, 0xe9, 0xc5, 0xbc, 0x1c,
- 0x90, 0x48, 0x8f, 0xc3, 0xb4, 0xdd, 0xdf, 0x35, 0x74, 0x4d, 0x09, 0xa8, 0xc1, 0x7c, 0x7a, 0x31,
- 0x2b, 0x8b, 0x74, 0x60, 0x65, 0xa0, 0x7c, 0x16, 0xa6, 0x6e, 0x23, 0xf5, 0x66, 0x50, 0xb5, 0x40,
- 0x54, 0x4b, 0x58, 0x1c, 0x50, 0xac, 0x43, 0xb1, 0x87, 0x5c, 0x57, 0xed, 0x22, 0xc5, 0xdb, 0xb7,
- 0x51, 0x39, 0x43, 0x66, 0x3f, 0x3f, 0x34, 0xfb, 0xe8, 0xcc, 0x0b, 0x0c, 0xb5, 0xbd, 0x6f, 0x23,
- 0xa9, 0x06, 0x79, 0x64, 0xf6, 0x7b, 0x94, 0x21, 0x7b, 0x88, 0xff, 0x1a, 0x66, 0xbf, 0x17, 0x65,
- 0xc9, 0x61, 0x18, 0xa3, 0x98, 0x70, 0x91, 0x73, 0x4b, 0xd7, 0x50, 0x79, 0x9c, 0x10, 0x9c, 0x1d,
- 0x22, 0x68, 0xd1, 0xf1, 0x28, 0x07, 0xc7, 0x49, 0x75, 0xc8, 0xa3, 0xe7, 0x3d, 0x64, 0xba, 0xba,
- 0x65, 0x96, 0x27, 0x08, 0xc9, 0x23, 0x23, 0x56, 0x11, 0x19, 0xed, 0x28, 0xc5, 0x00, 0x27, 0x5d,
- 0x82, 0x09, 0xcb, 0xf6, 0x74, 0xcb, 0x74, 0xcb, 0xb9, 0x79, 0x61, 0xb1, 0x70, 0xfe, 0x7d, 0x23,
- 0x03, 0x61, 0x93, 0xea, 0xc8, 0x5c, 0x59, 0x6a, 0x82, 0xe8, 0x5a, 0x7d, 0x47, 0x43, 0x8a, 0x66,
- 0xb5, 0x91, 0xa2, 0x9b, 0x1d, 0xab, 0x9c, 0x27, 0x04, 0xa7, 0x87, 0x27, 0x42, 0x14, 0xeb, 0x56,
- 0x1b, 0x35, 0xcd, 0x8e, 0x25, 0x97, 0xdc, 0xd0, 0xb3, 0x74, 0x02, 0xc6, 0xdd, 0x7d, 0xd3, 0x53,
- 0x9f, 0x2f, 0x17, 0x49, 0x84, 0xb0, 0xa7, 0x85, 0x6f, 0x8d, 0xc3, 0x54, 0x92, 0x10, 0xbb, 0x0a,
- 0xd9, 0x0e, 0x9e, 0x65, 0x39, 0x75, 0x1c, 0x1f, 0x50, 0x4c, 0xd8, 0x89, 0xe3, 0x3f, 0xa2, 0x13,
- 0x6b, 0x50, 0x30, 0x91, 0xeb, 0xa1, 0x36, 0x8d, 0x88, 0x74, 0xc2, 0x98, 0x02, 0x0a, 0x1a, 0x0e,
- 0xa9, 0xcc, 0x8f, 0x14, 0x52, 0xcf, 0xc2, 0x94, 0x6f, 0x92, 0xe2, 0xa8, 0x66, 0x97, 0xc7, 0xe6,
- 0xb9, 0x38, 0x4b, 0x96, 0x1a, 0x1c, 0x27, 0x63, 0x98, 0x5c, 0x42, 0xa1, 0x67, 0x69, 0x05, 0xc0,
- 0x32, 0x91, 0xd5, 0x51, 0xda, 0x48, 0x33, 0xca, 0xb9, 0x43, 0xbc, 0xb4, 0x89, 0x55, 0x86, 0xbc,
- 0x64, 0x51, 0xa9, 0x66, 0x48, 0x57, 0x06, 0xa1, 0x36, 0x71, 0x48, 0xa4, 0xac, 0xd3, 0x4d, 0x36,
- 0x14, 0x6d, 0x3b, 0x50, 0x72, 0x10, 0x8e, 0x7b, 0xd4, 0x66, 0x33, 0xcb, 0x13, 0x23, 0x96, 0x62,
- 0x67, 0x26, 0x33, 0x18, 0x9d, 0xd8, 0xa4, 0x13, 0x7c, 0x94, 0x1e, 0x02, 0x5f, 0xa0, 0x90, 0xb0,
- 0x02, 0x92, 0x85, 0x8a, 0x5c, 0xb8, 0xa1, 0xf6, 0xd0, 0xdc, 0x1d, 0x28, 0x85, 0xdd, 0x23, 0xcd,
- 0x42, 0xd6, 0xf5, 0x54, 0xc7, 0x23, 0x51, 0x98, 0x95, 0xe9, 0x83, 0x24, 0x42, 0x1a, 0x99, 0x6d,
- 0x92, 0xe5, 0xb2, 0x32, 0xfe, 0x57, 0xfa, 0xc9, 0xc1, 0x84, 0xd3, 0x64, 0xc2, 0x1f, 0x18, 0x5e,
- 0xd1, 0x10, 0x73, 0x74, 0xde, 0x73, 0x4f, 0xc2, 0x64, 0x68, 0x02, 0x49, 0x5f, 0xbd, 0xf0, 0x33,
- 0xf0, 0xc0, 0x48, 0x6a, 0xe9, 0x59, 0x98, 0xed, 0x9b, 0xba, 0xe9, 0x21, 0xc7, 0x76, 0x10, 0x8e,
- 0x58, 0xfa, 0xaa, 0xf2, 0xbf, 0x4c, 0x1c, 0x12, 0x73, 0x3b, 0x41, 0x6d, 0xca, 0x22, 0xcf, 0xf4,
- 0x87, 0x85, 0x8f, 0xe5, 0x73, 0x6f, 0x4c, 0x88, 0x77, 0xef, 0xde, 0xbd, 0x9b, 0x5a, 0xf8, 0xec,
- 0x38, 0xcc, 0x8e, 0xda, 0x33, 0x23, 0xb7, 0xef, 0x09, 0x18, 0x37, 0xfb, 0xbd, 0x5d, 0xe4, 0x10,
- 0x27, 0x65, 0x65, 0xf6, 0x24, 0xd5, 0x20, 0x6b, 0xa8, 0xbb, 0xc8, 0x28, 0x67, 0xe6, 0x85, 0xc5,
- 0xd2, 0xf9, 0xc7, 0x13, 0xed, 0xca, 0xa5, 0x35, 0x0c, 0x91, 0x29, 0x52, 0xfa, 0x28, 0x64, 0x58,
- 0x8a, 0xc6, 0x0c, 0x8f, 0x25, 0x63, 0xc0, 0x7b, 0x49, 0x26, 0x38, 0xe9, 0x41, 0xc8, 0xe3, 0xbf,
- 0x34, 0x36, 0xc6, 0x89, 0xcd, 0x39, 0x2c, 0xc0, 0x71, 0x21, 0xcd, 0x41, 0x8e, 0x6c, 0x93, 0x36,
- 0xe2, 0xa5, 0xcd, 0x7f, 0xc6, 0x81, 0xd5, 0x46, 0x1d, 0xb5, 0x6f, 0x78, 0xca, 0x2d, 0xd5, 0xe8,
- 0x23, 0x12, 0xf0, 0x79, 0xb9, 0xc8, 0x84, 0x9f, 0xc0, 0x32, 0xe9, 0x34, 0x14, 0xe8, 0xae, 0xd2,
- 0xcd, 0x36, 0x7a, 0x9e, 0x64, 0xcf, 0xac, 0x4c, 0x37, 0x5a, 0x13, 0x4b, 0xf0, 0xeb, 0x6f, 0xb8,
- 0x96, 0xc9, 0x43, 0x93, 0xbc, 0x02, 0x0b, 0xc8, 0xeb, 0x9f, 0x8c, 0x26, 0xee, 0xf7, 0x8f, 0x9e,
- 0x5e, 0x34, 0xa6, 0x16, 0xbe, 0x91, 0x82, 0x0c, 0xc9, 0x17, 0x53, 0x50, 0xd8, 0xbe, 0xbe, 0xd5,
- 0x50, 0x56, 0x36, 0x77, 0x96, 0xd7, 0x1a, 0xa2, 0x20, 0x95, 0x00, 0x88, 0xe0, 0xda, 0xda, 0x66,
- 0x6d, 0x5b, 0x4c, 0xf9, 0xcf, 0xcd, 0x8d, 0xed, 0x4b, 0x17, 0xc4, 0xb4, 0x0f, 0xd8, 0xa1, 0x82,
- 0x4c, 0x50, 0xe1, 0x89, 0xf3, 0x62, 0x56, 0x12, 0xa1, 0x48, 0x09, 0x9a, 0xcf, 0x36, 0x56, 0x2e,
- 0x5d, 0x10, 0xc7, 0xc3, 0x92, 0x27, 0xce, 0x8b, 0x13, 0xd2, 0x24, 0xe4, 0x89, 0x64, 0x79, 0x73,
- 0x73, 0x4d, 0xcc, 0xf9, 0x9c, 0xad, 0x6d, 0xb9, 0xb9, 0xb1, 0x2a, 0xe6, 0x7d, 0xce, 0x55, 0x79,
- 0x73, 0x67, 0x4b, 0x04, 0x9f, 0x61, 0xbd, 0xd1, 0x6a, 0xd5, 0x56, 0x1b, 0x62, 0xc1, 0xd7, 0x58,
- 0xbe, 0xbe, 0xdd, 0x68, 0x89, 0xc5, 0x90, 0x59, 0x4f, 0x9c, 0x17, 0x27, 0xfd, 0x57, 0x34, 0x36,
- 0x76, 0xd6, 0xc5, 0x92, 0x34, 0x0d, 0x93, 0xf4, 0x15, 0xdc, 0x88, 0xa9, 0x88, 0xe8, 0xd2, 0x05,
- 0x51, 0x1c, 0x18, 0x42, 0x59, 0xa6, 0x43, 0x82, 0x4b, 0x17, 0x44, 0x69, 0xa1, 0x0e, 0x59, 0x12,
- 0x5d, 0x92, 0x04, 0xa5, 0xb5, 0xda, 0x72, 0x63, 0x4d, 0xd9, 0xdc, 0xda, 0x6e, 0x6e, 0x6e, 0xd4,
- 0xd6, 0x44, 0x61, 0x20, 0x93, 0x1b, 0x1f, 0xdf, 0x69, 0xca, 0x8d, 0x15, 0x31, 0x15, 0x94, 0x6d,
- 0x35, 0x6a, 0xdb, 0x8d, 0x15, 0x31, 0xbd, 0xa0, 0xc1, 0xec, 0xa8, 0x3c, 0x39, 0x72, 0x67, 0x04,
- 0x96, 0x38, 0x75, 0xc8, 0x12, 0x13, 0xae, 0xa1, 0x25, 0xfe, 0x41, 0x0a, 0x66, 0x46, 0xd4, 0x8a,
- 0x91, 0x2f, 0x79, 0x0a, 0xb2, 0x34, 0x44, 0x69, 0xf5, 0x7c, 0x74, 0x64, 0xd1, 0x21, 0x01, 0x3b,
- 0x54, 0x41, 0x09, 0x2e, 0xd8, 0x41, 0xa4, 0x0f, 0xe9, 0x20, 0x30, 0xc5, 0x50, 0x4e, 0xff, 0xe9,
- 0xa1, 0x9c, 0x4e, 0xcb, 0xde, 0xa5, 0x24, 0x65, 0x8f, 0xc8, 0x8e, 0x97, 0xdb, 0xb3, 0x23, 0x72,
- 0xfb, 0x55, 0x98, 0x1e, 0x22, 0x4a, 0x9c, 0x63, 0x5f, 0x10, 0xa0, 0x7c, 0x98, 0x73, 0x62, 0x32,
- 0x5d, 0x2a, 0x94, 0xe9, 0xae, 0x46, 0x3d, 0x78, 0xe6, 0xf0, 0x45, 0x18, 0x5a, 0xeb, 0x57, 0x04,
- 0x38, 0x31, 0xba, 0x53, 0x1c, 0x69, 0xc3, 0x47, 0x61, 0xbc, 0x87, 0xbc, 0x3d, 0x8b, 0x77, 0x4b,
- 0x1f, 0x18, 0x51, 0x83, 0xf1, 0x70, 0x74, 0xb1, 0x19, 0x2a, 0x58, 0xc4, 0xd3, 0x87, 0xb5, 0x7b,
- 0xd4, 0x9a, 0x21, 0x4b, 0x3f, 0x93, 0x82, 0x07, 0x46, 0x92, 0x8f, 0x34, 0xf4, 0xfd, 0x00, 0xba,
- 0x69, 0xf7, 0x3d, 0xda, 0x11, 0xd1, 0x04, 0x9b, 0x27, 0x12, 0x92, 0xbc, 0x70, 0xf2, 0xec, 0x7b,
- 0xfe, 0x78, 0x9a, 0x8c, 0x03, 0x15, 0x11, 0x85, 0xcb, 0x03, 0x43, 0x33, 0xc4, 0xd0, 0xca, 0x21,
- 0x33, 0x1d, 0x0a, 0xcc, 0x0f, 0x83, 0xa8, 0x19, 0x3a, 0x32, 0x3d, 0xc5, 0xf5, 0x1c, 0xa4, 0xf6,
- 0x74, 0xb3, 0x4b, 0x2a, 0x48, 0xae, 0x9a, 0xed, 0xa8, 0x86, 0x8b, 0xe4, 0x29, 0x3a, 0xdc, 0xe2,
- 0xa3, 0x18, 0x41, 0x02, 0xc8, 0x09, 0x20, 0xc6, 0x43, 0x08, 0x3a, 0xec, 0x23, 0x16, 0xbe, 0x9e,
- 0x83, 0x42, 0xa0, 0xaf, 0x96, 0xce, 0x40, 0xf1, 0x86, 0x7a, 0x4b, 0x55, 0xf8, 0x59, 0x89, 0x7a,
- 0xa2, 0x80, 0x65, 0x5b, 0xec, 0xbc, 0xf4, 0x61, 0x98, 0x25, 0x2a, 0x56, 0xdf, 0x43, 0x8e, 0xa2,
- 0x19, 0xaa, 0xeb, 0x12, 0xa7, 0xe5, 0x88, 0xaa, 0x84, 0xc7, 0x36, 0xf1, 0x50, 0x9d, 0x8f, 0x48,
- 0x17, 0x61, 0x86, 0x20, 0x7a, 0x7d, 0xc3, 0xd3, 0x6d, 0x03, 0x29, 0xf8, 0xf4, 0xe6, 0x92, 0x4a,
- 0xe2, 0x5b, 0x36, 0x8d, 0x35, 0xd6, 0x99, 0x02, 0xb6, 0xc8, 0x95, 0x56, 0xe0, 0xfd, 0x04, 0xd6,
- 0x45, 0x26, 0x72, 0x54, 0x0f, 0x29, 0xe8, 0x53, 0x7d, 0xd5, 0x70, 0x15, 0xd5, 0x6c, 0x2b, 0x7b,
- 0xaa, 0xbb, 0x57, 0x9e, 0xc5, 0x04, 0xcb, 0xa9, 0xb2, 0x20, 0x9f, 0xc2, 0x8a, 0xab, 0x4c, 0xaf,
- 0x41, 0xd4, 0x6a, 0x66, 0xfb, 0x63, 0xaa, 0xbb, 0x27, 0x55, 0xe1, 0x04, 0x61, 0x71, 0x3d, 0x47,
- 0x37, 0xbb, 0x8a, 0xb6, 0x87, 0xb4, 0x9b, 0x4a, 0xdf, 0xeb, 0x5c, 0x2e, 0x3f, 0x18, 0x7c, 0x3f,
- 0xb1, 0xb0, 0x45, 0x74, 0xea, 0x58, 0x65, 0xc7, 0xeb, 0x5c, 0x96, 0x5a, 0x50, 0xc4, 0x8b, 0xd1,
- 0xd3, 0xef, 0x20, 0xa5, 0x63, 0x39, 0xa4, 0x34, 0x96, 0x46, 0xa4, 0xa6, 0x80, 0x07, 0x97, 0x36,
- 0x19, 0x60, 0xdd, 0x6a, 0xa3, 0x6a, 0xb6, 0xb5, 0xd5, 0x68, 0xac, 0xc8, 0x05, 0xce, 0x72, 0xcd,
- 0x72, 0x70, 0x40, 0x75, 0x2d, 0xdf, 0xc1, 0x05, 0x1a, 0x50, 0x5d, 0x8b, 0xbb, 0xf7, 0x22, 0xcc,
- 0x68, 0x1a, 0x9d, 0xb3, 0xae, 0x29, 0xec, 0x8c, 0xe5, 0x96, 0xc5, 0x90, 0xb3, 0x34, 0x6d, 0x95,
- 0x2a, 0xb0, 0x18, 0x77, 0xa5, 0x2b, 0xf0, 0xc0, 0xc0, 0x59, 0x41, 0xe0, 0xf4, 0xd0, 0x2c, 0xa3,
- 0xd0, 0x8b, 0x30, 0x63, 0xef, 0x0f, 0x03, 0xa5, 0xd0, 0x1b, 0xed, 0xfd, 0x28, 0xec, 0x49, 0x98,
- 0xb5, 0xf7, 0xec, 0x61, 0xdc, 0x63, 0x41, 0x9c, 0x64, 0xef, 0xd9, 0x51, 0xe0, 0x23, 0xe4, 0xc0,
- 0xed, 0x20, 0x4d, 0xf5, 0x50, 0xbb, 0x7c, 0x32, 0xa8, 0x1e, 0x18, 0x90, 0xce, 0x81, 0xa8, 0x69,
- 0x0a, 0x32, 0xd5, 0x5d, 0x03, 0x29, 0xaa, 0x83, 0x4c, 0xd5, 0x2d, 0x9f, 0x0e, 0x2a, 0x97, 0x34,
- 0xad, 0x41, 0x46, 0x6b, 0x64, 0x50, 0x7a, 0x0c, 0xa6, 0xad, 0xdd, 0x1b, 0x1a, 0x0d, 0x49, 0xc5,
- 0x76, 0x50, 0x47, 0x7f, 0xbe, 0xfc, 0x30, 0xf1, 0xef, 0x14, 0x1e, 0x20, 0x01, 0xb9, 0x45, 0xc4,
- 0xd2, 0xa3, 0x20, 0x6a, 0xee, 0x9e, 0xea, 0xd8, 0x24, 0x27, 0xbb, 0xb6, 0xaa, 0xa1, 0xf2, 0x23,
- 0x54, 0x95, 0xca, 0x37, 0xb8, 0x18, 0x6f, 0x09, 0xf7, 0xb6, 0xde, 0xf1, 0x38, 0xe3, 0x59, 0xba,
- 0x25, 0x88, 0x8c, 0xb1, 0x2d, 0x82, 0x88, 0x5d, 0x11, 0x7a, 0xf1, 0x22, 0x51, 0x2b, 0xd9, 0x7b,
- 0x76, 0xf0, 0xbd, 0x0f, 0xc1, 0x24, 0xd6, 0x1c, 0xbc, 0xf4, 0x51, 0xda, 0x90, 0xd9, 0x7b, 0x81,
- 0x37, 0xbe, 0x6b, 0xbd, 0xf1, 0x42, 0x15, 0x8a, 0xc1, 0xf8, 0x94, 0xf2, 0x40, 0x23, 0x54, 0x14,
- 0x70, 0xb3, 0x52, 0xdf, 0x5c, 0xc1, 0x6d, 0xc6, 0x73, 0x0d, 0x31, 0x85, 0xdb, 0x9d, 0xb5, 0xe6,
- 0x76, 0x43, 0x91, 0x77, 0x36, 0xb6, 0x9b, 0xeb, 0x0d, 0x31, 0x1d, 0xec, 0xab, 0xbf, 0x9b, 0x82,
- 0x52, 0xf8, 0x88, 0x24, 0xfd, 0x04, 0x9c, 0xe4, 0xf7, 0x19, 0x2e, 0xf2, 0x94, 0xdb, 0xba, 0x43,
- 0xb6, 0x4c, 0x4f, 0xa5, 0xe5, 0xcb, 0x5f, 0xb4, 0x59, 0xa6, 0xd5, 0x42, 0xde, 0x33, 0xba, 0x83,
- 0x37, 0x44, 0x4f, 0xf5, 0xa4, 0x35, 0x38, 0x6d, 0x5a, 0x8a, 0xeb, 0xa9, 0x66, 0x5b, 0x75, 0xda,
- 0xca, 0xe0, 0x26, 0x49, 0x51, 0x35, 0x0d, 0xb9, 0xae, 0x45, 0x4b, 0x95, 0xcf, 0xf2, 0x3e, 0xd3,
- 0x6a, 0x31, 0xe5, 0x41, 0x0e, 0xaf, 0x31, 0xd5, 0x48, 0x80, 0xa5, 0x0f, 0x0b, 0xb0, 0x07, 0x21,
- 0xdf, 0x53, 0x6d, 0x05, 0x99, 0x9e, 0xb3, 0x4f, 0x1a, 0xe3, 0x9c, 0x9c, 0xeb, 0xa9, 0x76, 0x03,
- 0x3f, 0xbf, 0x37, 0xe7, 0x93, 0x7f, 0x4c, 0x43, 0x31, 0xd8, 0x1c, 0xe3, 0xb3, 0x86, 0x46, 0xea,
- 0x88, 0x40, 0x32, 0xcd, 0x43, 0x47, 0xb6, 0xd2, 0x4b, 0x75, 0x5c, 0x60, 0xaa, 0xe3, 0xb4, 0x65,
- 0x95, 0x29, 0x12, 0x17, 0x77, 0x9c, 0x5b, 0x10, 0x6d, 0x11, 0x72, 0x32, 0x7b, 0x92, 0x56, 0x61,
- 0xfc, 0x86, 0x4b, 0xb8, 0xc7, 0x09, 0xf7, 0xc3, 0x47, 0x73, 0x3f, 0xdd, 0x22, 0xe4, 0xf9, 0xa7,
- 0x5b, 0xca, 0xc6, 0xa6, 0xbc, 0x5e, 0x5b, 0x93, 0x19, 0x5c, 0x3a, 0x05, 0x19, 0x43, 0xbd, 0xb3,
- 0x1f, 0x2e, 0x45, 0x44, 0x94, 0xd4, 0xf1, 0xa7, 0x20, 0x73, 0x1b, 0xa9, 0x37, 0xc3, 0x05, 0x80,
- 0x88, 0xde, 0xc5, 0xd0, 0x3f, 0x07, 0x59, 0xe2, 0x2f, 0x09, 0x80, 0x79, 0x4c, 0x1c, 0x93, 0x72,
- 0x90, 0xa9, 0x6f, 0xca, 0x38, 0xfc, 0x45, 0x28, 0x52, 0xa9, 0xb2, 0xd5, 0x6c, 0xd4, 0x1b, 0x62,
- 0x6a, 0xe1, 0x22, 0x8c, 0x53, 0x27, 0xe0, 0xad, 0xe1, 0xbb, 0x41, 0x1c, 0x63, 0x8f, 0x8c, 0x43,
- 0xe0, 0xa3, 0x3b, 0xeb, 0xcb, 0x0d, 0x59, 0x4c, 0x05, 0x97, 0xd7, 0x85, 0x62, 0xb0, 0x2f, 0x7e,
- 0x6f, 0x62, 0xea, 0xdb, 0x02, 0x14, 0x02, 0x7d, 0x2e, 0x6e, 0x50, 0x54, 0xc3, 0xb0, 0x6e, 0x2b,
- 0xaa, 0xa1, 0xab, 0x2e, 0x0b, 0x0a, 0x20, 0xa2, 0x1a, 0x96, 0x24, 0x5d, 0xb4, 0xf7, 0xc4, 0xf8,
- 0x97, 0x05, 0x10, 0xa3, 0x2d, 0x66, 0xc4, 0x40, 0xe1, 0xc7, 0x6a, 0xe0, 0x4b, 0x02, 0x94, 0xc2,
- 0x7d, 0x65, 0xc4, 0xbc, 0x33, 0x3f, 0x56, 0xf3, 0x5e, 0x4b, 0xc1, 0x64, 0xa8, 0x9b, 0x4c, 0x6a,
- 0xdd, 0xa7, 0x60, 0x5a, 0x6f, 0xa3, 0x9e, 0x6d, 0x79, 0xc8, 0xd4, 0xf6, 0x15, 0x03, 0xdd, 0x42,
- 0x46, 0x79, 0x81, 0x24, 0x8a, 0x73, 0x47, 0xf7, 0xab, 0x4b, 0xcd, 0x01, 0x6e, 0x0d, 0xc3, 0xaa,
- 0x33, 0xcd, 0x95, 0xc6, 0xfa, 0xd6, 0xe6, 0x76, 0x63, 0xa3, 0x7e, 0x5d, 0xd9, 0xd9, 0xf8, 0xa9,
- 0x8d, 0xcd, 0x67, 0x36, 0x64, 0x51, 0x8f, 0xa8, 0xbd, 0x8b, 0x5b, 0x7d, 0x0b, 0xc4, 0xa8, 0x51,
- 0xd2, 0x49, 0x18, 0x65, 0x96, 0x38, 0x26, 0xcd, 0xc0, 0xd4, 0xc6, 0xa6, 0xd2, 0x6a, 0xae, 0x34,
- 0x94, 0xc6, 0xb5, 0x6b, 0x8d, 0xfa, 0x76, 0x8b, 0xde, 0x40, 0xf8, 0xda, 0xdb, 0xe1, 0x4d, 0xfd,
- 0x62, 0x1a, 0x66, 0x46, 0x58, 0x22, 0xd5, 0xd8, 0xd9, 0x81, 0x1e, 0x67, 0x3e, 0x94, 0xc4, 0xfa,
- 0x25, 0x5c, 0xf2, 0xb7, 0x54, 0xc7, 0x63, 0x47, 0x8d, 0x47, 0x01, 0x7b, 0xc9, 0xf4, 0xf4, 0x8e,
- 0x8e, 0x1c, 0x76, 0x61, 0x43, 0x0f, 0x14, 0x53, 0x03, 0x39, 0xbd, 0xb3, 0xf9, 0x20, 0x48, 0xb6,
- 0xe5, 0xea, 0x9e, 0x7e, 0x0b, 0x29, 0xba, 0xc9, 0x6f, 0x77, 0xf0, 0x01, 0x23, 0x23, 0x8b, 0x7c,
- 0xa4, 0x69, 0x7a, 0xbe, 0xb6, 0x89, 0xba, 0x6a, 0x44, 0x1b, 0x27, 0xf0, 0xb4, 0x2c, 0xf2, 0x11,
- 0x5f, 0xfb, 0x0c, 0x14, 0xdb, 0x56, 0x1f, 0x77, 0x5d, 0x54, 0x0f, 0xd7, 0x0b, 0x41, 0x2e, 0x50,
- 0x99, 0xaf, 0xc2, 0xfa, 0xe9, 0xc1, 0xb5, 0x52, 0x51, 0x2e, 0x50, 0x19, 0x55, 0x39, 0x0b, 0x53,
- 0x6a, 0xb7, 0xeb, 0x60, 0x72, 0x4e, 0x44, 0x4f, 0x08, 0x25, 0x5f, 0x4c, 0x14, 0xe7, 0x9e, 0x86,
- 0x1c, 0xf7, 0x03, 0x2e, 0xc9, 0xd8, 0x13, 0x8a, 0x4d, 0x8f, 0xbd, 0xa9, 0xc5, 0xbc, 0x9c, 0x33,
- 0xf9, 0xe0, 0x19, 0x28, 0xea, 0xae, 0x32, 0xb8, 0x25, 0x4f, 0xcd, 0xa7, 0x16, 0x73, 0x72, 0x41,
- 0x77, 0xfd, 0x1b, 0xc6, 0x85, 0x57, 0x52, 0x50, 0x0a, 0xdf, 0xf2, 0x4b, 0x2b, 0x90, 0x33, 0x2c,
- 0x4d, 0x25, 0xa1, 0x45, 0x3f, 0x31, 0x2d, 0xc6, 0x7c, 0x18, 0x58, 0x5a, 0x63, 0xfa, 0xb2, 0x8f,
- 0x9c, 0xfb, 0x7b, 0x01, 0x72, 0x5c, 0x2c, 0x9d, 0x80, 0x8c, 0xad, 0x7a, 0x7b, 0x84, 0x2e, 0xbb,
- 0x9c, 0x12, 0x05, 0x99, 0x3c, 0x63, 0xb9, 0x6b, 0xab, 0x26, 0x09, 0x01, 0x26, 0xc7, 0xcf, 0x78,
- 0x5d, 0x0d, 0xa4, 0xb6, 0xc9, 0xf1, 0xc3, 0xea, 0xf5, 0x90, 0xe9, 0xb9, 0x7c, 0x5d, 0x99, 0xbc,
- 0xce, 0xc4, 0xd2, 0xe3, 0x30, 0xed, 0x39, 0xaa, 0x6e, 0x84, 0x74, 0x33, 0x44, 0x57, 0xe4, 0x03,
- 0xbe, 0x72, 0x15, 0x4e, 0x71, 0xde, 0x36, 0xf2, 0x54, 0x6d, 0x0f, 0xb5, 0x07, 0xa0, 0x71, 0x72,
- 0xcd, 0x70, 0x92, 0x29, 0xac, 0xb0, 0x71, 0x8e, 0x5d, 0xf8, 0xbe, 0x00, 0xd3, 0xfc, 0xc0, 0xd4,
- 0xf6, 0x9d, 0xb5, 0x0e, 0xa0, 0x9a, 0xa6, 0xe5, 0x05, 0xdd, 0x35, 0x1c, 0xca, 0x43, 0xb8, 0xa5,
- 0x9a, 0x0f, 0x92, 0x03, 0x04, 0x73, 0x3d, 0x80, 0xc1, 0xc8, 0xa1, 0x6e, 0x3b, 0x0d, 0x05, 0xf6,
- 0x09, 0x87, 0x7c, 0x07, 0xa4, 0x47, 0x6c, 0xa0, 0x22, 0x7c, 0xb2, 0x92, 0x66, 0x21, 0xbb, 0x8b,
- 0xba, 0xba, 0xc9, 0x2e, 0x66, 0xe9, 0x03, 0xbf, 0x08, 0xc9, 0xf8, 0x17, 0x21, 0xcb, 0x9f, 0x84,
- 0x19, 0xcd, 0xea, 0x45, 0xcd, 0x5d, 0x16, 0x23, 0xc7, 0x7c, 0xf7, 0x63, 0xc2, 0x73, 0x30, 0x68,
- 0x31, 0xdf, 0x16, 0x84, 0x2f, 0xa6, 0xd2, 0xab, 0x5b, 0xcb, 0x5f, 0x49, 0xcd, 0xad, 0x52, 0xe8,
- 0x16, 0x9f, 0xa9, 0x8c, 0x3a, 0x06, 0xd2, 0xb0, 0xf5, 0xf0, 0xa5, 0xc7, 0xe1, 0x43, 0x5d, 0xdd,
- 0xdb, 0xeb, 0xef, 0x2e, 0x69, 0x56, 0xef, 0x5c, 0xd7, 0xea, 0x5a, 0x83, 0x4f, 0x9f, 0xf8, 0x89,
- 0x3c, 0x90, 0xff, 0xd8, 0xe7, 0xcf, 0xbc, 0x2f, 0x9d, 0x8b, 0xfd, 0x56, 0x5a, 0xdd, 0x80, 0x19,
- 0xa6, 0xac, 0x90, 0xef, 0x2f, 0xf4, 0x14, 0x21, 0x1d, 0x79, 0x87, 0x55, 0xfe, 0xda, 0xeb, 0xa4,
- 0x5c, 0xcb, 0xd3, 0x0c, 0x8a, 0xc7, 0xe8, 0x41, 0xa3, 0x2a, 0xc3, 0x03, 0x21, 0x3e, 0xba, 0x35,
- 0x91, 0x13, 0xc3, 0xf8, 0x5d, 0xc6, 0x38, 0x13, 0x60, 0x6c, 0x31, 0x68, 0xb5, 0x0e, 0x93, 0xc7,
- 0xe1, 0xfa, 0x5b, 0xc6, 0x55, 0x44, 0x41, 0x92, 0x55, 0x98, 0x22, 0x24, 0x5a, 0xdf, 0xf5, 0xac,
- 0x1e, 0xc9, 0x7b, 0x47, 0xd3, 0xfc, 0xdd, 0xeb, 0x74, 0xaf, 0x94, 0x30, 0xac, 0xee, 0xa3, 0xaa,
- 0x55, 0x20, 0x9f, 0x9c, 0xda, 0x48, 0x33, 0x62, 0x18, 0x5e, 0x65, 0x86, 0xf8, 0xfa, 0xd5, 0x4f,
- 0xc0, 0x2c, 0xfe, 0x9f, 0xa4, 0xa5, 0xa0, 0x25, 0xf1, 0x17, 0x5e, 0xe5, 0xef, 0xbf, 0x40, 0xb7,
- 0xe3, 0x8c, 0x4f, 0x10, 0xb0, 0x29, 0xb0, 0x8a, 0x5d, 0xe4, 0x79, 0xc8, 0x71, 0x15, 0xd5, 0x18,
- 0x65, 0x5e, 0xe0, 0xc6, 0xa0, 0xfc, 0xb9, 0x37, 0xc3, 0xab, 0xb8, 0x4a, 0x91, 0x35, 0xc3, 0xa8,
- 0xee, 0xc0, 0xc9, 0x11, 0x51, 0x91, 0x80, 0xf3, 0x45, 0xc6, 0x39, 0x3b, 0x14, 0x19, 0x98, 0x76,
- 0x0b, 0xb8, 0xdc, 0x5f, 0xcb, 0x04, 0x9c, 0xbf, 0xc3, 0x38, 0x25, 0x86, 0xe5, 0x4b, 0x8a, 0x19,
- 0x9f, 0x86, 0xe9, 0x5b, 0xc8, 0xd9, 0xb5, 0x5c, 0x76, 0x4b, 0x93, 0x80, 0xee, 0x25, 0x46, 0x37,
- 0xc5, 0x80, 0xe4, 0xda, 0x06, 0x73, 0x5d, 0x81, 0x5c, 0x47, 0xd5, 0x50, 0x02, 0x8a, 0xcf, 0x33,
- 0x8a, 0x09, 0xac, 0x8f, 0xa1, 0x35, 0x28, 0x76, 0x2d, 0x56, 0x99, 0xe2, 0xe1, 0x2f, 0x33, 0x78,
- 0x81, 0x63, 0x18, 0x85, 0x6d, 0xd9, 0x7d, 0x03, 0x97, 0xad, 0x78, 0x8a, 0xdf, 0xe5, 0x14, 0x1c,
- 0xc3, 0x28, 0x8e, 0xe1, 0xd6, 0xdf, 0xe3, 0x14, 0x6e, 0xc0, 0x9f, 0x4f, 0x41, 0xc1, 0x32, 0x8d,
- 0x7d, 0xcb, 0x4c, 0x62, 0xc4, 0x17, 0x18, 0x03, 0x30, 0x08, 0x26, 0xb8, 0x0a, 0xf9, 0xa4, 0x0b,
- 0xf1, 0x07, 0x6f, 0xf2, 0xed, 0xc1, 0x57, 0x60, 0x15, 0xa6, 0x78, 0x82, 0xd2, 0x2d, 0x33, 0x01,
- 0xc5, 0x97, 0x18, 0x45, 0x29, 0x00, 0x63, 0xd3, 0xf0, 0x90, 0xeb, 0x75, 0x51, 0x12, 0x92, 0x57,
- 0xf8, 0x34, 0x18, 0x84, 0xb9, 0x72, 0x17, 0x99, 0xda, 0x5e, 0x32, 0x86, 0x2f, 0x73, 0x57, 0x72,
- 0x0c, 0xa6, 0xa8, 0xc3, 0x64, 0x4f, 0x75, 0xdc, 0x3d, 0xd5, 0x48, 0xb4, 0x1c, 0x7f, 0xc8, 0x38,
- 0x8a, 0x3e, 0x88, 0x79, 0xa4, 0x6f, 0x1e, 0x87, 0xe6, 0x2b, 0xdc, 0x23, 0x01, 0x18, 0xdb, 0x7a,
- 0xae, 0x47, 0xae, 0xb4, 0x8e, 0xc3, 0xf6, 0x47, 0x7c, 0xeb, 0x51, 0xec, 0x7a, 0x90, 0xf1, 0x2a,
- 0xe4, 0x5d, 0xfd, 0x4e, 0x22, 0x9a, 0x3f, 0xe6, 0x2b, 0x4d, 0x00, 0x18, 0x7c, 0x1d, 0x4e, 0x8d,
- 0x2c, 0x13, 0x09, 0xc8, 0xfe, 0x84, 0x91, 0x9d, 0x18, 0x51, 0x2a, 0x58, 0x4a, 0x38, 0x2e, 0xe5,
- 0x9f, 0xf2, 0x94, 0x80, 0x22, 0x5c, 0x5b, 0xf8, 0xac, 0xe0, 0xaa, 0x9d, 0xe3, 0x79, 0xed, 0xcf,
- 0xb8, 0xd7, 0x28, 0x36, 0xe4, 0xb5, 0x6d, 0x38, 0xc1, 0x18, 0x8f, 0xb7, 0xae, 0x5f, 0xe5, 0x89,
- 0x95, 0xa2, 0x77, 0xc2, 0xab, 0xfb, 0x49, 0x98, 0xf3, 0xdd, 0xc9, 0x9b, 0x52, 0x57, 0xe9, 0xa9,
- 0x76, 0x02, 0xe6, 0xaf, 0x31, 0x66, 0x9e, 0xf1, 0xfd, 0xae, 0xd6, 0x5d, 0x57, 0x6d, 0x4c, 0xfe,
- 0x2c, 0x94, 0x39, 0x79, 0xdf, 0x74, 0x90, 0x66, 0x75, 0x4d, 0xfd, 0x0e, 0x6a, 0x27, 0xa0, 0xfe,
- 0xf3, 0xc8, 0x52, 0xed, 0x04, 0xe0, 0x98, 0xb9, 0x09, 0xa2, 0xdf, 0xab, 0x28, 0x7a, 0xcf, 0xb6,
- 0x1c, 0x2f, 0x86, 0xf1, 0xeb, 0x7c, 0xa5, 0x7c, 0x5c, 0x93, 0xc0, 0xaa, 0x0d, 0x28, 0x91, 0xc7,
- 0xa4, 0x21, 0xf9, 0x17, 0x8c, 0x68, 0x72, 0x80, 0x62, 0x89, 0x43, 0xb3, 0x7a, 0xb6, 0xea, 0x24,
- 0xc9, 0x7f, 0x7f, 0xc9, 0x13, 0x07, 0x83, 0xb0, 0xc4, 0xe1, 0xed, 0xdb, 0x08, 0x57, 0xfb, 0x04,
- 0x0c, 0xdf, 0xe0, 0x89, 0x83, 0x63, 0x18, 0x05, 0x6f, 0x18, 0x12, 0x50, 0xfc, 0x15, 0xa7, 0xe0,
- 0x18, 0x4c, 0xf1, 0xf1, 0x41, 0xa1, 0x75, 0x50, 0x57, 0x77, 0x3d, 0x87, 0xb6, 0xc2, 0x47, 0x53,
- 0x7d, 0xf3, 0xcd, 0x70, 0x13, 0x26, 0x07, 0xa0, 0x38, 0x13, 0xb1, 0x2b, 0x54, 0x72, 0x52, 0x8a,
- 0x37, 0xec, 0x5b, 0x3c, 0x13, 0x05, 0x60, 0xd8, 0xb6, 0x40, 0x87, 0x88, 0xdd, 0xae, 0xe1, 0xf3,
- 0x41, 0x02, 0xba, 0x6f, 0x47, 0x8c, 0x6b, 0x71, 0x2c, 0xe6, 0x0c, 0xf4, 0x3f, 0x7d, 0xf3, 0x26,
- 0xda, 0x4f, 0x14, 0x9d, 0x7f, 0x1d, 0xe9, 0x7f, 0x76, 0x28, 0x92, 0xe6, 0x90, 0xa9, 0x48, 0x3f,
- 0x25, 0xc5, 0xfd, 0x58, 0xa7, 0xfc, 0xb3, 0xf7, 0xd9, 0x7c, 0xc3, 0xed, 0x54, 0x75, 0x0d, 0x07,
- 0x79, 0xb8, 0xe9, 0x89, 0x27, 0x7b, 0xe1, 0xbe, 0x1f, 0xe7, 0xa1, 0x9e, 0xa7, 0x7a, 0x0d, 0x26,
- 0x43, 0x0d, 0x4f, 0x3c, 0xd5, 0xa7, 0x19, 0x55, 0x31, 0xd8, 0xef, 0x54, 0x2f, 0x42, 0x06, 0x37,
- 0x2f, 0xf1, 0xf0, 0x9f, 0x63, 0x70, 0xa2, 0x5e, 0xfd, 0x08, 0xe4, 0x78, 0xd3, 0x12, 0x0f, 0xfd,
- 0x79, 0x06, 0xf5, 0x21, 0x18, 0xce, 0x1b, 0x96, 0x78, 0xf8, 0x2f, 0x70, 0x38, 0x87, 0x60, 0x78,
- 0x72, 0x17, 0x7e, 0xe7, 0x97, 0x32, 0xac, 0xe8, 0x70, 0xdf, 0x5d, 0x85, 0x09, 0xd6, 0xa9, 0xc4,
- 0xa3, 0x3f, 0xc3, 0x5e, 0xce, 0x11, 0xd5, 0x27, 0x21, 0x9b, 0xd0, 0xe1, 0xbf, 0xcc, 0xa0, 0x54,
- 0xbf, 0x5a, 0x87, 0x42, 0xa0, 0x3b, 0x89, 0x87, 0xff, 0x0a, 0x83, 0x07, 0x51, 0xd8, 0x74, 0xd6,
- 0x9d, 0xc4, 0x13, 0xfc, 0x2a, 0x37, 0x9d, 0x21, 0xb0, 0xdb, 0x78, 0x63, 0x12, 0x8f, 0xfe, 0x35,
- 0xee, 0x75, 0x0e, 0xa9, 0x3e, 0x05, 0x79, 0xbf, 0xd8, 0xc4, 0xe3, 0x7f, 0x9d, 0xe1, 0x07, 0x18,
- 0xec, 0x81, 0x40, 0xb1, 0x8b, 0xa7, 0xf8, 0x0d, 0xee, 0x81, 0x00, 0x0a, 0x6f, 0xa3, 0x68, 0x03,
- 0x13, 0xcf, 0xf4, 0x9b, 0x7c, 0x1b, 0x45, 0xfa, 0x17, 0xbc, 0x9a, 0x24, 0xe7, 0xc7, 0x53, 0xfc,
- 0x16, 0x5f, 0x4d, 0xa2, 0x8f, 0xcd, 0x88, 0x76, 0x04, 0xf1, 0x1c, 0xbf, 0xcd, 0xcd, 0x88, 0x34,
- 0x04, 0xd5, 0x2d, 0x90, 0x86, 0xbb, 0x81, 0x78, 0xbe, 0xcf, 0x32, 0xbe, 0xe9, 0xa1, 0x66, 0xa0,
- 0xfa, 0x0c, 0x9c, 0x18, 0xdd, 0x09, 0xc4, 0xb3, 0x7e, 0xee, 0x7e, 0xe4, 0xec, 0x16, 0x6c, 0x04,
- 0xaa, 0xdb, 0x83, 0x92, 0x12, 0xec, 0x02, 0xe2, 0x69, 0x5f, 0xbc, 0x1f, 0x4e, 0xdc, 0xc1, 0x26,
- 0xa0, 0x5a, 0x03, 0x18, 0x14, 0xe0, 0x78, 0xae, 0x97, 0x18, 0x57, 0x00, 0x84, 0xb7, 0x06, 0xab,
- 0xbf, 0xf1, 0xf8, 0xcf, 0xf3, 0xad, 0xc1, 0x10, 0x78, 0x6b, 0xf0, 0xd2, 0x1b, 0x8f, 0x7e, 0x99,
- 0x6f, 0x0d, 0x0e, 0xc1, 0x91, 0x1d, 0xa8, 0x6e, 0xf1, 0x0c, 0x5f, 0xe0, 0x91, 0x1d, 0x40, 0x55,
- 0x37, 0x60, 0x7a, 0xa8, 0x20, 0xc6, 0x53, 0x7d, 0x91, 0x51, 0x89, 0xd1, 0x7a, 0x18, 0x2c, 0x5e,
- 0xac, 0x18, 0xc6, 0xb3, 0xfd, 0x7e, 0xa4, 0x78, 0xb1, 0x5a, 0x58, 0xbd, 0x0a, 0x39, 0xb3, 0x6f,
- 0x18, 0x78, 0xf3, 0x48, 0x47, 0xff, 0xc0, 0xae, 0xfc, 0xaf, 0xef, 0x30, 0xef, 0x70, 0x40, 0xf5,
- 0x22, 0x64, 0x51, 0x6f, 0x17, 0xb5, 0xe3, 0x90, 0xff, 0xf6, 0x0e, 0x4f, 0x98, 0x58, 0xbb, 0xfa,
- 0x14, 0x00, 0xbd, 0x1a, 0x21, 0x9f, 0xfd, 0x62, 0xb0, 0xff, 0xfe, 0x0e, 0xfb, 0xe9, 0xcb, 0x00,
- 0x32, 0x20, 0xa0, 0x3f, 0xa4, 0x39, 0x9a, 0xe0, 0xcd, 0x30, 0x01, 0x59, 0x91, 0x2b, 0x30, 0x71,
- 0xc3, 0xb5, 0x4c, 0x4f, 0xed, 0xc6, 0xa1, 0xff, 0x83, 0xa1, 0xb9, 0x3e, 0x76, 0x58, 0xcf, 0x72,
- 0x90, 0xa7, 0x76, 0xdd, 0x38, 0xec, 0x7f, 0x32, 0xac, 0x0f, 0xc0, 0x60, 0x4d, 0x75, 0xbd, 0x24,
- 0xf3, 0xfe, 0x21, 0x07, 0x73, 0x00, 0x36, 0x1a, 0xff, 0x7f, 0x13, 0xed, 0xc7, 0x61, 0xdf, 0xe2,
- 0x46, 0x33, 0xfd, 0xea, 0x47, 0x20, 0x8f, 0xff, 0xa5, 0xbf, 0x67, 0x8b, 0x01, 0xff, 0x17, 0x03,
- 0x0f, 0x10, 0xf8, 0xcd, 0xae, 0xd7, 0xf6, 0xf4, 0x78, 0x67, 0xff, 0x37, 0x5b, 0x69, 0xae, 0x5f,
- 0xad, 0x41, 0xc1, 0xf5, 0xda, 0xed, 0x3e, 0xeb, 0x4f, 0x63, 0xe0, 0xff, 0xf3, 0x8e, 0x7f, 0x65,
- 0xe1, 0x63, 0xf0, 0x6a, 0xdf, 0xbe, 0xe9, 0xd9, 0x16, 0xf9, 0xcc, 0x11, 0xc7, 0x70, 0x9f, 0x31,
- 0x04, 0x20, 0xcb, 0x8d, 0xd1, 0xd7, 0xb7, 0xb0, 0x6a, 0xad, 0x5a, 0xf4, 0xe2, 0xf6, 0xb9, 0x85,
- 0xf8, 0x1b, 0x58, 0xf8, 0xdf, 0x0c, 0x4c, 0xf9, 0x3e, 0xe1, 0x57, 0xb1, 0xbe, 0x60, 0xee, 0x78,
- 0x97, 0xb8, 0x0b, 0x7f, 0x93, 0x86, 0x5c, 0x5d, 0x75, 0x3d, 0xf5, 0xb6, 0xba, 0x2f, 0xd9, 0x30,
- 0x83, 0xff, 0x5f, 0x57, 0x6d, 0x72, 0x25, 0xc8, 0xf6, 0x2e, 0xbb, 0x27, 0xff, 0xe0, 0xd2, 0xe0,
- 0xad, 0x1c, 0xb1, 0x34, 0x42, 0x9d, 0xfc, 0xbe, 0x60, 0x59, 0x7c, 0xf5, 0x9f, 0x4e, 0x8f, 0xfd,
- 0xe2, 0x3f, 0x9f, 0xce, 0xad, 0xef, 0x3f, 0xa3, 0x1b, 0xae, 0x65, 0xca, 0xa3, 0xa8, 0xa5, 0x4f,
- 0x0b, 0xf0, 0xe0, 0x08, 0xf9, 0x06, 0xdb, 0xda, 0xec, 0x6b, 0xd3, 0x85, 0x84, 0xaf, 0xe6, 0x30,
- 0x6a, 0x42, 0x31, 0xf4, 0xfa, 0xa3, 0x5e, 0x33, 0x77, 0x1d, 0xca, 0x87, 0xcd, 0x44, 0x12, 0x21,
- 0x7d, 0x13, 0xed, 0xb3, 0x1f, 0x29, 0xe2, 0x7f, 0xa5, 0xb3, 0x83, 0x9f, 0x72, 0x0a, 0x8b, 0x85,
- 0xf3, 0xd3, 0x01, 0xeb, 0xd8, 0xcb, 0xe8, 0x78, 0x35, 0x75, 0x59, 0x98, 0x53, 0x61, 0x3e, 0xce,
- 0xd2, 0xff, 0xe7, 0x2b, 0x16, 0x2a, 0x30, 0x4e, 0x85, 0xd2, 0x2c, 0x64, 0x9b, 0xa6, 0x77, 0xe9,
- 0x02, 0xa1, 0x4a, 0xcb, 0xf4, 0x61, 0x79, 0xed, 0xd5, 0x7b, 0x95, 0xb1, 0xef, 0xdd, 0xab, 0x8c,
- 0xfd, 0xc3, 0xbd, 0xca, 0xd8, 0x6b, 0xf7, 0x2a, 0xc2, 0x1b, 0xf7, 0x2a, 0xc2, 0x5b, 0xf7, 0x2a,
- 0xc2, 0xdb, 0xf7, 0x2a, 0xc2, 0xdd, 0x83, 0x8a, 0xf0, 0xe5, 0x83, 0x8a, 0xf0, 0xd5, 0x83, 0x8a,
- 0xf0, 0xcd, 0x83, 0x8a, 0xf0, 0x9d, 0x83, 0x8a, 0xf0, 0xea, 0x41, 0x65, 0xec, 0x7b, 0x07, 0x95,
- 0xb1, 0xd7, 0x0e, 0x2a, 0xc2, 0x1b, 0x07, 0x95, 0xb1, 0xb7, 0x0e, 0x2a, 0xc2, 0xdb, 0x07, 0x95,
- 0xb1, 0xbb, 0x3f, 0xa8, 0x8c, 0xfd, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x42, 0x03, 0x05, 0x0d,
- 0x1b, 0x35, 0x00, 0x00,
+ // 4037 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0x1b, 0xd7,
+ 0x79, 0xe6, 0xe2, 0x42, 0x02, 0x3f, 0x40, 0x70, 0xb9, 0xa4, 0x29, 0x88, 0x8e, 0x21, 0x8a, 0xb6,
+ 0x23, 0xfa, 0x46, 0x65, 0x64, 0x49, 0x96, 0xa1, 0x26, 0x2e, 0x08, 0x42, 0x0c, 0x5c, 0xde, 0xb2,
+ 0x20, 0x63, 0xcb, 0x99, 0xce, 0xce, 0x72, 0x71, 0x08, 0xae, 0xb4, 0xd8, 0xdd, 0xec, 0x2e, 0x24,
+ 0x53, 0xd3, 0x07, 0x75, 0x9c, 0xb6, 0x93, 0xde, 0x6f, 0x33, 0x4d, 0x5c, 0xc7, 0x6d, 0xd2, 0x69,
+ 0x9c, 0xa6, 0xb7, 0xa4, 0x97, 0x34, 0x49, 0x5f, 0xd2, 0x87, 0xb4, 0x7a, 0xea, 0x24, 0x6f, 0x7d,
+ 0xe8, 0xb4, 0x16, 0xe3, 0x99, 0xba, 0xad, 0xdb, 0xba, 0xad, 0x1e, 0x3c, 0xe3, 0xe9, 0x4c, 0xe7,
+ 0xdc, 0x16, 0xbb, 0x0b, 0x90, 0xbb, 0x4c, 0xc6, 0xf6, 0x13, 0x79, 0xfe, 0xf3, 0x7f, 0xdf, 0xf9,
+ 0xcf, 0x7f, 0xfe, 0x73, 0xfe, 0xff, 0x9c, 0x05, 0xdc, 0xa9, 0xc2, 0x5c, 0xc7, 0xb2, 0x3a, 0x06,
+ 0x3a, 0x6b, 0x3b, 0x96, 0x67, 0xed, 0xf4, 0x76, 0xcf, 0xb6, 0x91, 0xab, 0x39, 0xba, 0xed, 0x59,
+ 0xce, 0x22, 0x91, 0x49, 0x13, 0x54, 0x63, 0x91, 0x6b, 0xcc, 0xaf, 0xc1, 0xe4, 0x15, 0xdd, 0x40,
+ 0xcb, 0xbe, 0x62, 0x0b, 0x79, 0xd2, 0x25, 0xc8, 0xec, 0xea, 0x06, 0x2a, 0x0b, 0x73, 0xe9, 0x85,
+ 0xc2, 0xb9, 0x87, 0x16, 0x23, 0xa0, 0xc5, 0x30, 0x62, 0x13, 0x8b, 0x65, 0x82, 0x98, 0x7f, 0x23,
+ 0x03, 0x53, 0x43, 0x7a, 0x25, 0x09, 0x32, 0xa6, 0xda, 0xc5, 0x8c, 0xc2, 0x42, 0x5e, 0x26, 0xff,
+ 0x4b, 0x65, 0x18, 0xb3, 0x55, 0xed, 0xba, 0xda, 0x41, 0xe5, 0x14, 0x11, 0xf3, 0xa6, 0x54, 0x01,
+ 0x68, 0x23, 0x1b, 0x99, 0x6d, 0x64, 0x6a, 0xfb, 0xe5, 0xf4, 0x5c, 0x7a, 0x21, 0x2f, 0x07, 0x24,
+ 0xd2, 0x63, 0x30, 0x69, 0xf7, 0x76, 0x0c, 0x5d, 0x53, 0x02, 0x6a, 0x30, 0x97, 0x5e, 0xc8, 0xca,
+ 0x22, 0xed, 0x58, 0xee, 0x2b, 0x9f, 0x81, 0x89, 0x9b, 0x48, 0xbd, 0x1e, 0x54, 0x2d, 0x10, 0xd5,
+ 0x12, 0x16, 0x07, 0x14, 0xeb, 0x50, 0xec, 0x22, 0xd7, 0x55, 0x3b, 0x48, 0xf1, 0xf6, 0x6d, 0x54,
+ 0xce, 0x90, 0xd9, 0xcf, 0x0d, 0xcc, 0x3e, 0x3a, 0xf3, 0x02, 0x43, 0x6d, 0xed, 0xdb, 0x48, 0xaa,
+ 0x41, 0x1e, 0x99, 0xbd, 0x2e, 0x65, 0xc8, 0x1e, 0xe2, 0xbf, 0x86, 0xd9, 0xeb, 0x46, 0x59, 0x72,
+ 0x18, 0xc6, 0x28, 0xc6, 0x5c, 0xe4, 0xdc, 0xd0, 0x35, 0x54, 0x1e, 0x25, 0x04, 0x67, 0x06, 0x08,
+ 0x5a, 0xb4, 0x3f, 0xca, 0xc1, 0x71, 0x52, 0x1d, 0xf2, 0xe8, 0x45, 0x0f, 0x99, 0xae, 0x6e, 0x99,
+ 0xe5, 0x31, 0x42, 0xf2, 0xf0, 0x90, 0x55, 0x44, 0x46, 0x3b, 0x4a, 0xd1, 0xc7, 0x49, 0x17, 0x61,
+ 0xcc, 0xb2, 0x3d, 0xdd, 0x32, 0xdd, 0x72, 0x6e, 0x4e, 0x58, 0x28, 0x9c, 0xfb, 0xd0, 0xd0, 0x40,
+ 0xd8, 0xa0, 0x3a, 0x32, 0x57, 0x96, 0x9a, 0x20, 0xba, 0x56, 0xcf, 0xd1, 0x90, 0xa2, 0x59, 0x6d,
+ 0xa4, 0xe8, 0xe6, 0xae, 0x55, 0xce, 0x13, 0x82, 0x53, 0x83, 0x13, 0x21, 0x8a, 0x75, 0xab, 0x8d,
+ 0x9a, 0xe6, 0xae, 0x25, 0x97, 0xdc, 0x50, 0x5b, 0x9a, 0x81, 0x51, 0x77, 0xdf, 0xf4, 0xd4, 0x17,
+ 0xcb, 0x45, 0x12, 0x21, 0xac, 0x35, 0xff, 0xad, 0x51, 0x98, 0x48, 0x12, 0x62, 0x97, 0x21, 0xbb,
+ 0x8b, 0x67, 0x59, 0x4e, 0x1d, 0xc7, 0x07, 0x14, 0x13, 0x76, 0xe2, 0xe8, 0x0f, 0xe9, 0xc4, 0x1a,
+ 0x14, 0x4c, 0xe4, 0x7a, 0xa8, 0x4d, 0x23, 0x22, 0x9d, 0x30, 0xa6, 0x80, 0x82, 0x06, 0x43, 0x2a,
+ 0xf3, 0x43, 0x85, 0xd4, 0xf3, 0x30, 0xe1, 0x9b, 0xa4, 0x38, 0xaa, 0xd9, 0xe1, 0xb1, 0x79, 0x36,
+ 0xce, 0x92, 0xc5, 0x06, 0xc7, 0xc9, 0x18, 0x26, 0x97, 0x50, 0xa8, 0x2d, 0x2d, 0x03, 0x58, 0x26,
+ 0xb2, 0x76, 0x95, 0x36, 0xd2, 0x8c, 0x72, 0xee, 0x10, 0x2f, 0x6d, 0x60, 0x95, 0x01, 0x2f, 0x59,
+ 0x54, 0xaa, 0x19, 0xd2, 0xd3, 0xfd, 0x50, 0x1b, 0x3b, 0x24, 0x52, 0xd6, 0xe8, 0x26, 0x1b, 0x88,
+ 0xb6, 0x6d, 0x28, 0x39, 0x08, 0xc7, 0x3d, 0x6a, 0xb3, 0x99, 0xe5, 0x89, 0x11, 0x8b, 0xb1, 0x33,
+ 0x93, 0x19, 0x8c, 0x4e, 0x6c, 0xdc, 0x09, 0x36, 0xa5, 0x07, 0xc1, 0x17, 0x28, 0x24, 0xac, 0x80,
+ 0x9c, 0x42, 0x45, 0x2e, 0x5c, 0x57, 0xbb, 0x68, 0xf6, 0x16, 0x94, 0xc2, 0xee, 0x91, 0xa6, 0x21,
+ 0xeb, 0x7a, 0xaa, 0xe3, 0x91, 0x28, 0xcc, 0xca, 0xb4, 0x21, 0x89, 0x90, 0x46, 0x66, 0x9b, 0x9c,
+ 0x72, 0x59, 0x19, 0xff, 0x2b, 0xfd, 0x78, 0x7f, 0xc2, 0x69, 0x32, 0xe1, 0x0f, 0x0f, 0xae, 0x68,
+ 0x88, 0x39, 0x3a, 0xef, 0xd9, 0xa7, 0x60, 0x3c, 0x34, 0x81, 0xa4, 0x43, 0xcf, 0xff, 0x14, 0xdc,
+ 0x37, 0x94, 0x5a, 0x7a, 0x1e, 0xa6, 0x7b, 0xa6, 0x6e, 0x7a, 0xc8, 0xb1, 0x1d, 0x84, 0x23, 0x96,
+ 0x0e, 0x55, 0xfe, 0x97, 0xb1, 0x43, 0x62, 0x6e, 0x3b, 0xa8, 0x4d, 0x59, 0xe4, 0xa9, 0xde, 0xa0,
+ 0xf0, 0xd1, 0x7c, 0xee, 0xcd, 0x31, 0xf1, 0xf6, 0xed, 0xdb, 0xb7, 0x53, 0xf3, 0x9f, 0x1b, 0x85,
+ 0xe9, 0x61, 0x7b, 0x66, 0xe8, 0xf6, 0x9d, 0x81, 0x51, 0xb3, 0xd7, 0xdd, 0x41, 0x0e, 0x71, 0x52,
+ 0x56, 0x66, 0x2d, 0xa9, 0x06, 0x59, 0x43, 0xdd, 0x41, 0x46, 0x39, 0x33, 0x27, 0x2c, 0x94, 0xce,
+ 0x3d, 0x96, 0x68, 0x57, 0x2e, 0xae, 0x62, 0x88, 0x4c, 0x91, 0xd2, 0xc7, 0x20, 0xc3, 0x8e, 0x68,
+ 0xcc, 0xf0, 0x68, 0x32, 0x06, 0xbc, 0x97, 0x64, 0x82, 0x93, 0xee, 0x87, 0x3c, 0xfe, 0x4b, 0x63,
+ 0x63, 0x94, 0xd8, 0x9c, 0xc3, 0x02, 0x1c, 0x17, 0xd2, 0x2c, 0xe4, 0xc8, 0x36, 0x69, 0x23, 0x9e,
+ 0xda, 0xfc, 0x36, 0x0e, 0xac, 0x36, 0xda, 0x55, 0x7b, 0x86, 0xa7, 0xdc, 0x50, 0x8d, 0x1e, 0x22,
+ 0x01, 0x9f, 0x97, 0x8b, 0x4c, 0xf8, 0x49, 0x2c, 0x93, 0x4e, 0x41, 0x81, 0xee, 0x2a, 0xdd, 0x6c,
+ 0xa3, 0x17, 0xc9, 0xe9, 0x99, 0x95, 0xe9, 0x46, 0x6b, 0x62, 0x09, 0x1e, 0xfe, 0x9a, 0x6b, 0x99,
+ 0x3c, 0x34, 0xc9, 0x10, 0x58, 0x40, 0x86, 0x7f, 0x2a, 0x7a, 0x70, 0x3f, 0x30, 0x7c, 0x7a, 0xd1,
+ 0x98, 0x9a, 0xff, 0x46, 0x0a, 0x32, 0xe4, 0xbc, 0x98, 0x80, 0xc2, 0xd6, 0xd5, 0xcd, 0x86, 0xb2,
+ 0xbc, 0xb1, 0xbd, 0xb4, 0xda, 0x10, 0x05, 0xa9, 0x04, 0x40, 0x04, 0x57, 0x56, 0x37, 0x6a, 0x5b,
+ 0x62, 0xca, 0x6f, 0x37, 0xd7, 0xb7, 0x2e, 0x9e, 0x17, 0xd3, 0x3e, 0x60, 0x9b, 0x0a, 0x32, 0x41,
+ 0x85, 0x27, 0xcf, 0x89, 0x59, 0x49, 0x84, 0x22, 0x25, 0x68, 0x3e, 0xdf, 0x58, 0xbe, 0x78, 0x5e,
+ 0x1c, 0x0d, 0x4b, 0x9e, 0x3c, 0x27, 0x8e, 0x49, 0xe3, 0x90, 0x27, 0x92, 0xa5, 0x8d, 0x8d, 0x55,
+ 0x31, 0xe7, 0x73, 0xb6, 0xb6, 0xe4, 0xe6, 0xfa, 0x8a, 0x98, 0xf7, 0x39, 0x57, 0xe4, 0x8d, 0xed,
+ 0x4d, 0x11, 0x7c, 0x86, 0xb5, 0x46, 0xab, 0x55, 0x5b, 0x69, 0x88, 0x05, 0x5f, 0x63, 0xe9, 0xea,
+ 0x56, 0xa3, 0x25, 0x16, 0x43, 0x66, 0x3d, 0x79, 0x4e, 0x1c, 0xf7, 0x87, 0x68, 0xac, 0x6f, 0xaf,
+ 0x89, 0x25, 0x69, 0x12, 0xc6, 0xe9, 0x10, 0xdc, 0x88, 0x89, 0x88, 0xe8, 0xe2, 0x79, 0x51, 0xec,
+ 0x1b, 0x42, 0x59, 0x26, 0x43, 0x82, 0x8b, 0xe7, 0x45, 0x69, 0xbe, 0x0e, 0x59, 0x12, 0x5d, 0x92,
+ 0x04, 0xa5, 0xd5, 0xda, 0x52, 0x63, 0x55, 0xd9, 0xd8, 0xdc, 0x6a, 0x6e, 0xac, 0xd7, 0x56, 0x45,
+ 0xa1, 0x2f, 0x93, 0x1b, 0x9f, 0xd8, 0x6e, 0xca, 0x8d, 0x65, 0x31, 0x15, 0x94, 0x6d, 0x36, 0x6a,
+ 0x5b, 0x8d, 0x65, 0x31, 0x3d, 0xaf, 0xc1, 0xf4, 0xb0, 0x73, 0x72, 0xe8, 0xce, 0x08, 0x2c, 0x71,
+ 0xea, 0x90, 0x25, 0x26, 0x5c, 0x03, 0x4b, 0xfc, 0x83, 0x14, 0x4c, 0x0d, 0xc9, 0x15, 0x43, 0x07,
+ 0x79, 0x06, 0xb2, 0x34, 0x44, 0x69, 0xf6, 0x7c, 0x64, 0x68, 0xd2, 0x21, 0x01, 0x3b, 0x90, 0x41,
+ 0x09, 0x2e, 0x58, 0x41, 0xa4, 0x0f, 0xa9, 0x20, 0x30, 0xc5, 0xc0, 0x99, 0xfe, 0x93, 0x03, 0x67,
+ 0x3a, 0x4d, 0x7b, 0x17, 0x93, 0xa4, 0x3d, 0x22, 0x3b, 0xde, 0xd9, 0x9e, 0x1d, 0x72, 0xb6, 0x5f,
+ 0x86, 0xc9, 0x01, 0xa2, 0xc4, 0x67, 0xec, 0x4b, 0x02, 0x94, 0x0f, 0x73, 0x4e, 0xcc, 0x49, 0x97,
+ 0x0a, 0x9d, 0x74, 0x97, 0xa3, 0x1e, 0x3c, 0x7d, 0xf8, 0x22, 0x0c, 0xac, 0xf5, 0x6b, 0x02, 0xcc,
+ 0x0c, 0xaf, 0x14, 0x87, 0xda, 0xf0, 0x31, 0x18, 0xed, 0x22, 0x6f, 0xcf, 0xe2, 0xd5, 0xd2, 0x87,
+ 0x87, 0xe4, 0x60, 0xdc, 0x1d, 0x5d, 0x6c, 0x86, 0x0a, 0x26, 0xf1, 0xf4, 0x61, 0xe5, 0x1e, 0xb5,
+ 0x66, 0xc0, 0xd2, 0xcf, 0xa6, 0xe0, 0xbe, 0xa1, 0xe4, 0x43, 0x0d, 0x7d, 0x00, 0x40, 0x37, 0xed,
+ 0x9e, 0x47, 0x2b, 0x22, 0x7a, 0xc0, 0xe6, 0x89, 0x84, 0x1c, 0x5e, 0xf8, 0xf0, 0xec, 0x79, 0x7e,
+ 0x7f, 0x9a, 0xf4, 0x03, 0x15, 0x11, 0x85, 0x4b, 0x7d, 0x43, 0x33, 0xc4, 0xd0, 0xca, 0x21, 0x33,
+ 0x1d, 0x08, 0xcc, 0x8f, 0x80, 0xa8, 0x19, 0x3a, 0x32, 0x3d, 0xc5, 0xf5, 0x1c, 0xa4, 0x76, 0x75,
+ 0xb3, 0x43, 0x32, 0x48, 0xae, 0x9a, 0xdd, 0x55, 0x0d, 0x17, 0xc9, 0x13, 0xb4, 0xbb, 0xc5, 0x7b,
+ 0x31, 0x82, 0x04, 0x90, 0x13, 0x40, 0x8c, 0x86, 0x10, 0xb4, 0xdb, 0x47, 0xcc, 0xff, 0x62, 0x1e,
+ 0x0a, 0x81, 0xba, 0x5a, 0x3a, 0x0d, 0xc5, 0x6b, 0xea, 0x0d, 0x55, 0xe1, 0x77, 0x25, 0xea, 0x89,
+ 0x02, 0x96, 0x6d, 0xb2, 0xfb, 0xd2, 0x47, 0x60, 0x9a, 0xa8, 0x58, 0x3d, 0x0f, 0x39, 0x8a, 0x66,
+ 0xa8, 0xae, 0x4b, 0x9c, 0x96, 0x23, 0xaa, 0x12, 0xee, 0xdb, 0xc0, 0x5d, 0x75, 0xde, 0x23, 0x5d,
+ 0x80, 0x29, 0x82, 0xe8, 0xf6, 0x0c, 0x4f, 0xb7, 0x0d, 0xa4, 0xe0, 0xdb, 0x9b, 0x4b, 0x32, 0x89,
+ 0x6f, 0xd9, 0x24, 0xd6, 0x58, 0x63, 0x0a, 0xd8, 0x22, 0x57, 0x5a, 0x86, 0x07, 0x08, 0xac, 0x83,
+ 0x4c, 0xe4, 0xa8, 0x1e, 0x52, 0xd0, 0xa7, 0x7b, 0xaa, 0xe1, 0x2a, 0xaa, 0xd9, 0x56, 0xf6, 0x54,
+ 0x77, 0xaf, 0x3c, 0x8d, 0x09, 0x96, 0x52, 0x65, 0x41, 0x3e, 0x89, 0x15, 0x57, 0x98, 0x5e, 0x83,
+ 0xa8, 0xd5, 0xcc, 0xf6, 0xc7, 0x55, 0x77, 0x4f, 0xaa, 0xc2, 0x0c, 0x61, 0x71, 0x3d, 0x47, 0x37,
+ 0x3b, 0x8a, 0xb6, 0x87, 0xb4, 0xeb, 0x4a, 0xcf, 0xdb, 0xbd, 0x54, 0xbe, 0x3f, 0x38, 0x3e, 0xb1,
+ 0xb0, 0x45, 0x74, 0xea, 0x58, 0x65, 0xdb, 0xdb, 0xbd, 0x24, 0xb5, 0xa0, 0x88, 0x17, 0xa3, 0xab,
+ 0xdf, 0x42, 0xca, 0xae, 0xe5, 0x90, 0xd4, 0x58, 0x1a, 0x72, 0x34, 0x05, 0x3c, 0xb8, 0xb8, 0xc1,
+ 0x00, 0x6b, 0x56, 0x1b, 0x55, 0xb3, 0xad, 0xcd, 0x46, 0x63, 0x59, 0x2e, 0x70, 0x96, 0x2b, 0x96,
+ 0x83, 0x03, 0xaa, 0x63, 0xf9, 0x0e, 0x2e, 0xd0, 0x80, 0xea, 0x58, 0xdc, 0xbd, 0x17, 0x60, 0x4a,
+ 0xd3, 0xe8, 0x9c, 0x75, 0x4d, 0x61, 0x77, 0x2c, 0xb7, 0x2c, 0x86, 0x9c, 0xa5, 0x69, 0x2b, 0x54,
+ 0x81, 0xc5, 0xb8, 0x2b, 0x3d, 0x0d, 0xf7, 0xf5, 0x9d, 0x15, 0x04, 0x4e, 0x0e, 0xcc, 0x32, 0x0a,
+ 0xbd, 0x00, 0x53, 0xf6, 0xfe, 0x20, 0x50, 0x0a, 0x8d, 0x68, 0xef, 0x47, 0x61, 0x4f, 0xc1, 0xb4,
+ 0xbd, 0x67, 0x0f, 0xe2, 0x1e, 0x0d, 0xe2, 0x24, 0x7b, 0xcf, 0x8e, 0x02, 0x1f, 0x26, 0x17, 0x6e,
+ 0x07, 0x69, 0xaa, 0x87, 0xda, 0xe5, 0x13, 0x41, 0xf5, 0x40, 0x87, 0x74, 0x16, 0x44, 0x4d, 0x53,
+ 0x90, 0xa9, 0xee, 0x18, 0x48, 0x51, 0x1d, 0x64, 0xaa, 0x6e, 0xf9, 0x54, 0x50, 0xb9, 0xa4, 0x69,
+ 0x0d, 0xd2, 0x5b, 0x23, 0x9d, 0xd2, 0xa3, 0x30, 0x69, 0xed, 0x5c, 0xd3, 0x68, 0x48, 0x2a, 0xb6,
+ 0x83, 0x76, 0xf5, 0x17, 0xcb, 0x0f, 0x11, 0xff, 0x4e, 0xe0, 0x0e, 0x12, 0x90, 0x9b, 0x44, 0x2c,
+ 0x3d, 0x02, 0xa2, 0xe6, 0xee, 0xa9, 0x8e, 0x4d, 0xce, 0x64, 0xd7, 0x56, 0x35, 0x54, 0x7e, 0x98,
+ 0xaa, 0x52, 0xf9, 0x3a, 0x17, 0xe3, 0x2d, 0xe1, 0xde, 0xd4, 0x77, 0x3d, 0xce, 0x78, 0x86, 0x6e,
+ 0x09, 0x22, 0x63, 0x6c, 0x0b, 0x20, 0x62, 0x57, 0x84, 0x06, 0x5e, 0x20, 0x6a, 0x25, 0x7b, 0xcf,
+ 0x0e, 0x8e, 0xfb, 0x20, 0x8c, 0x63, 0xcd, 0xfe, 0xa0, 0x8f, 0xd0, 0x82, 0xcc, 0xde, 0x0b, 0x8c,
+ 0x78, 0x1e, 0x66, 0xb0, 0x52, 0x17, 0x79, 0x6a, 0x5b, 0xf5, 0xd4, 0x80, 0xf6, 0xe3, 0x44, 0x1b,
+ 0xfb, 0x7d, 0x8d, 0x75, 0x86, 0xec, 0x74, 0x7a, 0x3b, 0xfb, 0x7e, 0x64, 0x3d, 0x41, 0xed, 0xc4,
+ 0x32, 0x1e, 0x5b, 0xef, 0x59, 0xd1, 0x3d, 0x5f, 0x85, 0x62, 0x30, 0xf0, 0xa5, 0x3c, 0xd0, 0xd0,
+ 0x17, 0x05, 0x5c, 0x05, 0xd5, 0x37, 0x96, 0x71, 0xfd, 0xf2, 0x42, 0x43, 0x4c, 0xe1, 0x3a, 0x6a,
+ 0xb5, 0xb9, 0xd5, 0x50, 0xe4, 0xed, 0xf5, 0xad, 0xe6, 0x5a, 0x43, 0x4c, 0x07, 0x0b, 0xf6, 0xef,
+ 0xa6, 0xa0, 0x14, 0xbe, 0x7b, 0x49, 0x3f, 0x06, 0x27, 0xf8, 0x43, 0x89, 0x8b, 0x3c, 0xe5, 0xa6,
+ 0xee, 0x90, 0xbd, 0xd8, 0x55, 0x69, 0x5e, 0xf4, 0xa3, 0x61, 0x9a, 0x69, 0xb5, 0x90, 0xf7, 0x9c,
+ 0xee, 0xe0, 0x9d, 0xd6, 0x55, 0x3d, 0x69, 0x15, 0x4e, 0x99, 0x96, 0xe2, 0x7a, 0xaa, 0xd9, 0x56,
+ 0x9d, 0xb6, 0xd2, 0x7f, 0xa2, 0x52, 0x54, 0x4d, 0x43, 0xae, 0x6b, 0xd1, 0x1c, 0xe8, 0xb3, 0x7c,
+ 0xc8, 0xb4, 0x5a, 0x4c, 0xb9, 0x9f, 0x1c, 0x6a, 0x4c, 0x35, 0x12, 0xb9, 0xe9, 0xc3, 0x22, 0xf7,
+ 0x7e, 0xc8, 0x77, 0x55, 0x5b, 0x41, 0xa6, 0xe7, 0xec, 0x93, 0x8a, 0x3b, 0x27, 0xe7, 0xba, 0xaa,
+ 0xdd, 0xc0, 0xed, 0xf7, 0xe7, 0xe2, 0xf3, 0x8f, 0x69, 0x28, 0x06, 0xab, 0x6e, 0x7c, 0x89, 0xd1,
+ 0x48, 0x82, 0x12, 0xc8, 0x11, 0xf6, 0xe0, 0x91, 0x35, 0xfa, 0x62, 0x1d, 0x67, 0xae, 0xea, 0x28,
+ 0xad, 0x85, 0x65, 0x8a, 0xc4, 0x55, 0x03, 0x0e, 0x2d, 0x44, 0x6b, 0x8f, 0x9c, 0xcc, 0x5a, 0xd2,
+ 0x0a, 0x8c, 0x5e, 0x73, 0x09, 0xf7, 0x28, 0xe1, 0x7e, 0xe8, 0x68, 0xee, 0x67, 0x5b, 0x84, 0x3c,
+ 0xff, 0x6c, 0x4b, 0x59, 0xdf, 0x90, 0xd7, 0x6a, 0xab, 0x32, 0x83, 0x4b, 0x27, 0x21, 0x63, 0xa8,
+ 0xb7, 0xf6, 0xc3, 0x39, 0x8e, 0x88, 0x92, 0x3a, 0xfe, 0x24, 0x64, 0x6e, 0x22, 0xf5, 0x7a, 0x38,
+ 0xb3, 0x10, 0xd1, 0x7b, 0x18, 0xfa, 0x67, 0x21, 0x4b, 0xfc, 0x25, 0x01, 0x30, 0x8f, 0x89, 0x23,
+ 0x52, 0x0e, 0x32, 0xf5, 0x0d, 0x19, 0x87, 0xbf, 0x08, 0x45, 0x2a, 0x55, 0x36, 0x9b, 0x8d, 0x7a,
+ 0x43, 0x4c, 0xcd, 0x5f, 0x80, 0x51, 0xea, 0x04, 0xbc, 0x35, 0x7c, 0x37, 0x88, 0x23, 0xac, 0xc9,
+ 0x38, 0x04, 0xde, 0xbb, 0xbd, 0xb6, 0xd4, 0x90, 0xc5, 0x54, 0x70, 0x79, 0x5d, 0x28, 0x06, 0x0b,
+ 0xee, 0xf7, 0x27, 0xa6, 0xbe, 0x2d, 0x40, 0x21, 0x50, 0x40, 0xe3, 0xca, 0x47, 0x35, 0x0c, 0xeb,
+ 0xa6, 0xa2, 0x1a, 0xba, 0xea, 0xb2, 0xa0, 0x00, 0x22, 0xaa, 0x61, 0x49, 0xd2, 0x45, 0x7b, 0x5f,
+ 0x8c, 0x7f, 0x55, 0x00, 0x31, 0x5a, 0xbb, 0x46, 0x0c, 0x14, 0x3e, 0x50, 0x03, 0x5f, 0x11, 0xa0,
+ 0x14, 0x2e, 0x58, 0x23, 0xe6, 0x9d, 0xfe, 0x40, 0xcd, 0x7b, 0x3d, 0x05, 0xe3, 0xa1, 0x32, 0x35,
+ 0xa9, 0x75, 0x9f, 0x86, 0x49, 0xbd, 0x8d, 0xba, 0xb6, 0xe5, 0x21, 0x53, 0xdb, 0x57, 0x0c, 0x74,
+ 0x03, 0x19, 0xe5, 0x79, 0x72, 0x50, 0x9c, 0x3d, 0xba, 0x10, 0x5e, 0x6c, 0xf6, 0x71, 0xab, 0x18,
+ 0x56, 0x9d, 0x6a, 0x2e, 0x37, 0xd6, 0x36, 0x37, 0xb6, 0x1a, 0xeb, 0xf5, 0xab, 0xca, 0xf6, 0xfa,
+ 0x4f, 0xac, 0x6f, 0x3c, 0xb7, 0x2e, 0x8b, 0x7a, 0x44, 0xed, 0x3d, 0xdc, 0xea, 0x9b, 0x20, 0x46,
+ 0x8d, 0x92, 0x4e, 0xc0, 0x30, 0xb3, 0xc4, 0x11, 0x69, 0x0a, 0x26, 0xd6, 0x37, 0x94, 0x56, 0x73,
+ 0xb9, 0xa1, 0x34, 0xae, 0x5c, 0x69, 0xd4, 0xb7, 0x5a, 0xf4, 0x69, 0xc3, 0xd7, 0xde, 0x0a, 0x6f,
+ 0xea, 0x97, 0xd3, 0x30, 0x35, 0xc4, 0x12, 0xa9, 0xc6, 0x2e, 0x25, 0xf4, 0x9e, 0xf4, 0x44, 0x12,
+ 0xeb, 0x17, 0x71, 0x55, 0xb0, 0xa9, 0x3a, 0x1e, 0xbb, 0xc3, 0x3c, 0x02, 0xd8, 0x4b, 0xa6, 0xa7,
+ 0xef, 0xea, 0xc8, 0x61, 0x2f, 0x41, 0xf4, 0xa6, 0x32, 0xd1, 0x97, 0xd3, 0xc7, 0xa0, 0xc7, 0x41,
+ 0xb2, 0x2d, 0x57, 0xf7, 0xf4, 0x1b, 0x48, 0xd1, 0x4d, 0xfe, 0x6c, 0x84, 0x6f, 0x2e, 0x19, 0x59,
+ 0xe4, 0x3d, 0x4d, 0xd3, 0xf3, 0xb5, 0x4d, 0xd4, 0x51, 0x23, 0xda, 0xf8, 0x00, 0x4f, 0xcb, 0x22,
+ 0xef, 0xf1, 0xb5, 0x4f, 0x43, 0xb1, 0x6d, 0xf5, 0x70, 0x39, 0x47, 0xf5, 0x70, 0xbe, 0x10, 0xe4,
+ 0x02, 0x95, 0xf9, 0x2a, 0xac, 0x50, 0xef, 0xbf, 0x57, 0x15, 0xe5, 0x02, 0x95, 0x51, 0x95, 0x33,
+ 0x30, 0xa1, 0x76, 0x3a, 0x0e, 0x26, 0xe7, 0x44, 0xf4, 0xea, 0x51, 0xf2, 0xc5, 0x44, 0x71, 0xf6,
+ 0x59, 0xc8, 0x71, 0x3f, 0xe0, 0x94, 0x8c, 0x3d, 0xa1, 0xd8, 0xf4, 0x3e, 0x9d, 0x5a, 0xc8, 0xcb,
+ 0x39, 0x93, 0x77, 0x9e, 0x86, 0xa2, 0xee, 0x2a, 0xfd, 0xe7, 0xf7, 0xd4, 0x5c, 0x6a, 0x21, 0x27,
+ 0x17, 0x74, 0xd7, 0x7f, 0xba, 0x9c, 0x7f, 0x2d, 0x05, 0xa5, 0xf0, 0xe7, 0x03, 0x69, 0x19, 0x72,
+ 0x86, 0xa5, 0xa9, 0x24, 0xb4, 0xe8, 0xb7, 0xab, 0x85, 0x98, 0x2f, 0x0e, 0x8b, 0xab, 0x4c, 0x5f,
+ 0xf6, 0x91, 0xb3, 0x7f, 0x2f, 0x40, 0x8e, 0x8b, 0xa5, 0x19, 0xc8, 0xd8, 0xaa, 0xb7, 0x47, 0xe8,
+ 0xb2, 0x4b, 0x29, 0x51, 0x90, 0x49, 0x1b, 0xcb, 0x5d, 0x5b, 0x35, 0x49, 0x08, 0x30, 0x39, 0x6e,
+ 0xe3, 0x75, 0x35, 0x90, 0xda, 0x26, 0xf7, 0x1a, 0xab, 0xdb, 0x45, 0xa6, 0xe7, 0xf2, 0x75, 0x65,
+ 0xf2, 0x3a, 0x13, 0x4b, 0x8f, 0xc1, 0xa4, 0xe7, 0xa8, 0xba, 0x11, 0xd2, 0xcd, 0x10, 0x5d, 0x91,
+ 0x77, 0xf8, 0xca, 0x55, 0x38, 0xc9, 0x79, 0xdb, 0xc8, 0x53, 0xb5, 0x3d, 0xd4, 0xee, 0x83, 0x46,
+ 0xc9, 0xfb, 0xc5, 0x09, 0xa6, 0xb0, 0xcc, 0xfa, 0x39, 0x76, 0xfe, 0xfb, 0x02, 0x4c, 0xf2, 0x9b,
+ 0x58, 0xdb, 0x77, 0xd6, 0x1a, 0x80, 0x6a, 0x9a, 0x96, 0x17, 0x74, 0xd7, 0x60, 0x28, 0x0f, 0xe0,
+ 0x16, 0x6b, 0x3e, 0x48, 0x0e, 0x10, 0xcc, 0x76, 0x01, 0xfa, 0x3d, 0x87, 0xba, 0xed, 0x14, 0x14,
+ 0xd8, 0xb7, 0x21, 0xf2, 0x81, 0x91, 0xde, 0xdd, 0x81, 0x8a, 0xf0, 0x95, 0x4d, 0x9a, 0x86, 0xec,
+ 0x0e, 0xea, 0xe8, 0x26, 0x7b, 0xf1, 0xa5, 0x0d, 0xfe, 0xc2, 0x92, 0xf1, 0x5f, 0x58, 0x96, 0x3e,
+ 0x05, 0x53, 0x9a, 0xd5, 0x8d, 0x9a, 0xbb, 0x24, 0x46, 0xde, 0x0f, 0xdc, 0x8f, 0x0b, 0x2f, 0x40,
+ 0xbf, 0xc4, 0x7c, 0x47, 0x10, 0xbe, 0x94, 0x4a, 0xaf, 0x6c, 0x2e, 0x7d, 0x35, 0x35, 0xbb, 0x42,
+ 0xa1, 0x9b, 0x7c, 0xa6, 0x32, 0xda, 0x35, 0x90, 0x86, 0xad, 0x87, 0x2f, 0x3f, 0x06, 0x4f, 0x74,
+ 0x74, 0x6f, 0xaf, 0xb7, 0xb3, 0xa8, 0x59, 0xdd, 0xb3, 0x1d, 0xab, 0x63, 0xf5, 0xbf, 0xa9, 0xe2,
+ 0x16, 0x69, 0x90, 0xff, 0xd8, 0x77, 0xd5, 0xbc, 0x2f, 0x9d, 0x8d, 0xfd, 0x08, 0x5b, 0x5d, 0x87,
+ 0x29, 0xa6, 0xac, 0x90, 0x0f, 0x3b, 0xf4, 0x7a, 0x22, 0x1d, 0xf9, 0x38, 0x56, 0xfe, 0xfa, 0x1b,
+ 0x24, 0x5d, 0xcb, 0x93, 0x0c, 0x8a, 0xfb, 0xe8, 0x0d, 0xa6, 0x2a, 0xc3, 0x7d, 0x21, 0x3e, 0xba,
+ 0x35, 0x91, 0x13, 0xc3, 0xf8, 0x5d, 0xc6, 0x38, 0x15, 0x60, 0x6c, 0x31, 0x68, 0xb5, 0x0e, 0xe3,
+ 0xc7, 0xe1, 0xfa, 0x5b, 0xc6, 0x55, 0x44, 0x41, 0x92, 0x15, 0x98, 0x20, 0x24, 0x5a, 0xcf, 0xf5,
+ 0xac, 0x2e, 0x39, 0xf7, 0x8e, 0xa6, 0xf9, 0xbb, 0x37, 0xe8, 0x5e, 0x29, 0x61, 0x58, 0xdd, 0x47,
+ 0x55, 0xab, 0x40, 0xbe, 0x65, 0xb5, 0x91, 0x66, 0xc4, 0x30, 0xdc, 0x61, 0x86, 0xf8, 0xfa, 0xd5,
+ 0x4f, 0xc2, 0x34, 0xfe, 0x9f, 0x1c, 0x4b, 0x41, 0x4b, 0xe2, 0x5f, 0xd2, 0xca, 0xdf, 0x7f, 0x89,
+ 0x6e, 0xc7, 0x29, 0x9f, 0x20, 0x60, 0x53, 0x60, 0x15, 0x3b, 0xc8, 0xf3, 0x90, 0xe3, 0x2a, 0xaa,
+ 0x31, 0xcc, 0xbc, 0xc0, 0x53, 0x44, 0xf9, 0xf3, 0x6f, 0x85, 0x57, 0x71, 0x85, 0x22, 0x6b, 0x86,
+ 0x51, 0xdd, 0x86, 0x13, 0x43, 0xa2, 0x22, 0x01, 0xe7, 0xcb, 0x8c, 0x73, 0x7a, 0x20, 0x32, 0x30,
+ 0xed, 0x26, 0x70, 0xb9, 0xbf, 0x96, 0x09, 0x38, 0x7f, 0x9b, 0x71, 0x4a, 0x0c, 0xcb, 0x97, 0x14,
+ 0x33, 0x3e, 0x0b, 0x93, 0x37, 0x90, 0xb3, 0x63, 0xb9, 0xec, 0xf9, 0x27, 0x01, 0xdd, 0x2b, 0x8c,
+ 0x6e, 0x82, 0x01, 0xc9, 0x7b, 0x10, 0xe6, 0x7a, 0x1a, 0x72, 0xbb, 0xaa, 0x86, 0x12, 0x50, 0x7c,
+ 0x81, 0x51, 0x8c, 0x61, 0x7d, 0x0c, 0xad, 0x41, 0xb1, 0x63, 0xb1, 0xcc, 0x14, 0x0f, 0x7f, 0x95,
+ 0xc1, 0x0b, 0x1c, 0xc3, 0x28, 0x6c, 0xcb, 0xee, 0x19, 0x38, 0x6d, 0xc5, 0x53, 0xfc, 0x0e, 0xa7,
+ 0xe0, 0x18, 0x46, 0x71, 0x0c, 0xb7, 0xfe, 0x2e, 0xa7, 0x70, 0x03, 0xfe, 0x7c, 0x06, 0x0a, 0x96,
+ 0x69, 0xec, 0x5b, 0x66, 0x12, 0x23, 0xbe, 0xc8, 0x18, 0x80, 0x41, 0x30, 0xc1, 0x65, 0xc8, 0x27,
+ 0x5d, 0x88, 0xdf, 0x7f, 0x8b, 0x6f, 0x0f, 0xbe, 0x02, 0x2b, 0x30, 0xc1, 0x0f, 0x28, 0xdd, 0x32,
+ 0x13, 0x50, 0x7c, 0x99, 0x51, 0x94, 0x02, 0x30, 0x36, 0x0d, 0x0f, 0xb9, 0x5e, 0x07, 0x25, 0x21,
+ 0x79, 0x8d, 0x4f, 0x83, 0x41, 0x98, 0x2b, 0x77, 0x90, 0xa9, 0xed, 0x25, 0x63, 0xf8, 0x0a, 0x77,
+ 0x25, 0xc7, 0x60, 0x8a, 0x3a, 0x8c, 0x77, 0x55, 0xc7, 0xdd, 0x53, 0x8d, 0x44, 0xcb, 0xf1, 0x07,
+ 0x8c, 0xa3, 0xe8, 0x83, 0x98, 0x47, 0x7a, 0xe6, 0x71, 0x68, 0xbe, 0xca, 0x3d, 0x12, 0x80, 0xb1,
+ 0xad, 0xe7, 0x7a, 0xe4, 0xad, 0xec, 0x38, 0x6c, 0x7f, 0xc8, 0xb7, 0x1e, 0xc5, 0xae, 0x05, 0x19,
+ 0x2f, 0x43, 0xde, 0xd5, 0x6f, 0x25, 0xa2, 0xf9, 0x23, 0xbe, 0xd2, 0x04, 0x80, 0xc1, 0x57, 0xe1,
+ 0xe4, 0xd0, 0x34, 0x91, 0x80, 0xec, 0x8f, 0x19, 0xd9, 0xcc, 0x90, 0x54, 0xc1, 0x8e, 0x84, 0xe3,
+ 0x52, 0xfe, 0x09, 0x3f, 0x12, 0x50, 0x84, 0x6b, 0x13, 0xdf, 0x15, 0x5c, 0x75, 0xf7, 0x78, 0x5e,
+ 0xfb, 0x53, 0xee, 0x35, 0x8a, 0x0d, 0x79, 0x6d, 0x0b, 0x66, 0x18, 0xe3, 0xf1, 0xd6, 0xf5, 0x6b,
+ 0xfc, 0x60, 0xa5, 0xe8, 0xed, 0xf0, 0xea, 0x7e, 0x0a, 0x66, 0x7d, 0x77, 0xf2, 0xa2, 0xd4, 0x55,
+ 0xba, 0xaa, 0x9d, 0x80, 0xf9, 0xeb, 0x8c, 0x99, 0x9f, 0xf8, 0x7e, 0x55, 0xeb, 0xae, 0xa9, 0x36,
+ 0x26, 0x7f, 0x1e, 0xca, 0x9c, 0xbc, 0x67, 0x3a, 0x48, 0xb3, 0x3a, 0xa6, 0x7e, 0x0b, 0xb5, 0x13,
+ 0x50, 0xff, 0x59, 0x64, 0xa9, 0xb6, 0x03, 0x70, 0xcc, 0xdc, 0x04, 0xd1, 0xaf, 0x55, 0x14, 0xbd,
+ 0x6b, 0x5b, 0x8e, 0x17, 0xc3, 0xf8, 0xe7, 0x7c, 0xa5, 0x7c, 0x5c, 0x93, 0xc0, 0xaa, 0x0d, 0x28,
+ 0x91, 0x66, 0xd2, 0x90, 0xfc, 0x0b, 0x46, 0x34, 0xde, 0x47, 0xb1, 0x83, 0x43, 0xb3, 0xba, 0xb6,
+ 0xea, 0x24, 0x39, 0xff, 0xfe, 0x92, 0x1f, 0x1c, 0x0c, 0xc2, 0x0e, 0x0e, 0x6f, 0xdf, 0x46, 0x38,
+ 0xdb, 0x27, 0x60, 0xf8, 0x06, 0x3f, 0x38, 0x38, 0x86, 0x51, 0xf0, 0x82, 0x21, 0x01, 0xc5, 0x5f,
+ 0x71, 0x0a, 0x8e, 0xc1, 0x14, 0x9f, 0xe8, 0x27, 0x5a, 0x07, 0x75, 0x74, 0xd7, 0x73, 0x68, 0x29,
+ 0x7c, 0x34, 0xd5, 0x37, 0xdf, 0x0a, 0x17, 0x61, 0x72, 0x00, 0x8a, 0x4f, 0x22, 0xf6, 0x84, 0x4a,
+ 0x6e, 0x4a, 0xf1, 0x86, 0x7d, 0x8b, 0x9f, 0x44, 0x01, 0x18, 0xb6, 0x2d, 0x50, 0x21, 0x62, 0xb7,
+ 0x6b, 0xf8, 0x7e, 0x90, 0x80, 0xee, 0xdb, 0x11, 0xe3, 0x5a, 0x1c, 0x8b, 0x39, 0x03, 0xf5, 0x4f,
+ 0xcf, 0xbc, 0x8e, 0xf6, 0x13, 0x45, 0xe7, 0x5f, 0x47, 0xea, 0x9f, 0x6d, 0x8a, 0xa4, 0x67, 0xc8,
+ 0x44, 0xa4, 0x9e, 0x92, 0xe2, 0x7e, 0x05, 0x54, 0xfe, 0xe9, 0x7b, 0x6c, 0xbe, 0xe1, 0x72, 0xaa,
+ 0xba, 0x8a, 0x83, 0x3c, 0x5c, 0xf4, 0xc4, 0x93, 0xbd, 0x74, 0xcf, 0x8f, 0xf3, 0x50, 0xcd, 0x53,
+ 0xbd, 0x02, 0xe3, 0xa1, 0x82, 0x27, 0x9e, 0xea, 0x33, 0x8c, 0xaa, 0x18, 0xac, 0x77, 0xaa, 0x17,
+ 0x20, 0x83, 0x8b, 0x97, 0x78, 0xf8, 0xcf, 0x30, 0x38, 0x51, 0xaf, 0x7e, 0x14, 0x72, 0xbc, 0x68,
+ 0x89, 0x87, 0xfe, 0x2c, 0x83, 0xfa, 0x10, 0x0c, 0xe7, 0x05, 0x4b, 0x3c, 0xfc, 0xe7, 0x38, 0x9c,
+ 0x43, 0x30, 0x3c, 0xb9, 0x0b, 0xbf, 0xf3, 0x0b, 0x19, 0x96, 0x74, 0xb8, 0xef, 0x2e, 0xc3, 0x18,
+ 0xab, 0x54, 0xe2, 0xd1, 0x9f, 0x65, 0x83, 0x73, 0x44, 0xf5, 0x29, 0xc8, 0x26, 0x74, 0xf8, 0x2f,
+ 0x31, 0x28, 0xd5, 0xaf, 0xd6, 0xa1, 0x10, 0xa8, 0x4e, 0xe2, 0xe1, 0xbf, 0xcc, 0xe0, 0x41, 0x14,
+ 0x36, 0x9d, 0x55, 0x27, 0xf1, 0x04, 0xbf, 0xc2, 0x4d, 0x67, 0x08, 0xec, 0x36, 0x5e, 0x98, 0xc4,
+ 0xa3, 0x7f, 0x95, 0x7b, 0x9d, 0x43, 0xaa, 0xcf, 0x40, 0xde, 0x4f, 0x36, 0xf1, 0xf8, 0x5f, 0x63,
+ 0xf8, 0x3e, 0x06, 0x7b, 0x20, 0x90, 0xec, 0xe2, 0x29, 0x7e, 0x9d, 0x7b, 0x20, 0x80, 0xc2, 0xdb,
+ 0x28, 0x5a, 0xc0, 0xc4, 0x33, 0xfd, 0x06, 0xdf, 0x46, 0x91, 0xfa, 0x05, 0xaf, 0x26, 0x39, 0xf3,
+ 0xe3, 0x29, 0x7e, 0x93, 0xaf, 0x26, 0xd1, 0xc7, 0x66, 0x44, 0x2b, 0x82, 0x78, 0x8e, 0xdf, 0xe2,
+ 0x66, 0x44, 0x0a, 0x82, 0xea, 0x26, 0x48, 0x83, 0xd5, 0x40, 0x3c, 0xdf, 0xe7, 0x18, 0xdf, 0xe4,
+ 0x40, 0x31, 0x50, 0x7d, 0x0e, 0x66, 0x86, 0x57, 0x02, 0xf1, 0xac, 0x9f, 0xbf, 0x17, 0xb9, 0xbb,
+ 0x05, 0x0b, 0x81, 0xea, 0x56, 0x3f, 0xa5, 0x04, 0xab, 0x80, 0x78, 0xda, 0x97, 0xef, 0x85, 0x0f,
+ 0xee, 0x60, 0x11, 0x50, 0xad, 0x01, 0xf4, 0x13, 0x70, 0x3c, 0xd7, 0x2b, 0x8c, 0x2b, 0x00, 0xc2,
+ 0x5b, 0x83, 0xe5, 0xdf, 0x78, 0xfc, 0x17, 0xf8, 0xd6, 0x60, 0x08, 0xbc, 0x35, 0x78, 0xea, 0x8d,
+ 0x47, 0xbf, 0xca, 0xb7, 0x06, 0x87, 0xe0, 0xc8, 0x0e, 0x64, 0xb7, 0x78, 0x86, 0x2f, 0xf2, 0xc8,
+ 0x0e, 0xa0, 0xaa, 0xeb, 0x30, 0x39, 0x90, 0x10, 0xe3, 0xa9, 0xbe, 0xc4, 0xa8, 0xc4, 0x68, 0x3e,
+ 0x0c, 0x26, 0x2f, 0x96, 0x0c, 0xe3, 0xd9, 0x7e, 0x2f, 0x92, 0xbc, 0x58, 0x2e, 0xac, 0x5e, 0x86,
+ 0x9c, 0xd9, 0x33, 0x0c, 0xbc, 0x79, 0xa4, 0xa3, 0x7f, 0xb9, 0x57, 0xfe, 0xd7, 0x77, 0x99, 0x77,
+ 0x38, 0xa0, 0x7a, 0x01, 0xb2, 0xa8, 0xbb, 0x83, 0xda, 0x71, 0xc8, 0x7f, 0x7b, 0x97, 0x1f, 0x98,
+ 0x58, 0xbb, 0xfa, 0x0c, 0x00, 0x7d, 0x1a, 0x21, 0x9f, 0xfd, 0x62, 0xb0, 0xff, 0xfe, 0x2e, 0xfb,
+ 0x4d, 0x4d, 0x1f, 0xd2, 0x27, 0xa0, 0xbf, 0xd0, 0x39, 0x9a, 0xe0, 0xad, 0x30, 0x01, 0x59, 0x91,
+ 0xa7, 0x61, 0xec, 0x9a, 0x6b, 0x99, 0x9e, 0xda, 0x89, 0x43, 0xff, 0x07, 0x43, 0x73, 0x7d, 0xec,
+ 0xb0, 0xae, 0xe5, 0x20, 0x4f, 0xed, 0xb8, 0x71, 0xd8, 0xff, 0x64, 0x58, 0x1f, 0x80, 0xc1, 0x9a,
+ 0xea, 0x7a, 0x49, 0xe6, 0xfd, 0x5f, 0x1c, 0xcc, 0x01, 0xd8, 0x68, 0xfc, 0xff, 0x75, 0xb4, 0x1f,
+ 0x87, 0x7d, 0x9b, 0x1b, 0xcd, 0xf4, 0xab, 0x1f, 0x85, 0x3c, 0xfe, 0x97, 0xfe, 0x50, 0x2e, 0x06,
+ 0xfc, 0xdf, 0x0c, 0xdc, 0x47, 0xe0, 0x91, 0x5d, 0xaf, 0xed, 0xe9, 0xf1, 0xce, 0xfe, 0x1f, 0xb6,
+ 0xd2, 0x5c, 0xbf, 0x5a, 0x83, 0x82, 0xeb, 0xb5, 0xdb, 0x3d, 0x56, 0x9f, 0xc6, 0xc0, 0xff, 0xf7,
+ 0x5d, 0xff, 0xc9, 0xc2, 0xc7, 0xe0, 0xd5, 0xbe, 0x79, 0xdd, 0xb3, 0x2d, 0xf2, 0x99, 0x23, 0x8e,
+ 0xe1, 0x1e, 0x63, 0x08, 0x40, 0x96, 0x1a, 0xc3, 0x9f, 0x6f, 0x61, 0xc5, 0x5a, 0xb1, 0xe8, 0xc3,
+ 0xed, 0x0b, 0xf3, 0xf1, 0x2f, 0xb0, 0xf0, 0x7f, 0x19, 0x98, 0xf0, 0x7d, 0xc2, 0x9f, 0x62, 0x7d,
+ 0xc1, 0xec, 0xf1, 0x1e, 0x71, 0xe7, 0xff, 0x26, 0x0d, 0xb9, 0xba, 0xea, 0x7a, 0xea, 0x4d, 0x75,
+ 0x5f, 0xb2, 0x61, 0x0a, 0xff, 0xbf, 0xa6, 0xda, 0xe4, 0x49, 0x90, 0xed, 0x5d, 0xf6, 0x4e, 0xfe,
+ 0xf8, 0x62, 0x7f, 0x54, 0x8e, 0x58, 0x1c, 0xa2, 0x4e, 0x7e, 0x5f, 0xb0, 0x24, 0xde, 0xf9, 0xa7,
+ 0x53, 0x23, 0x3f, 0xff, 0xcf, 0xa7, 0x72, 0x6b, 0xfb, 0xcf, 0xe9, 0x86, 0x6b, 0x99, 0xf2, 0x30,
+ 0x6a, 0xe9, 0x33, 0x02, 0xdc, 0x3f, 0x44, 0xbe, 0xce, 0xb6, 0x36, 0xfb, 0xda, 0x74, 0x3e, 0xe1,
+ 0xd0, 0x1c, 0x46, 0x4d, 0x28, 0x86, 0x86, 0x3f, 0x6a, 0x98, 0xd9, 0xab, 0x50, 0x3e, 0x6c, 0x26,
+ 0x92, 0x08, 0xe9, 0xeb, 0x68, 0x9f, 0xfd, 0xfa, 0x11, 0xff, 0x2b, 0x9d, 0xe9, 0xff, 0x46, 0x54,
+ 0x58, 0x28, 0x9c, 0x9b, 0x0c, 0x58, 0xc7, 0x06, 0xa3, 0xfd, 0xd5, 0xd4, 0x25, 0x61, 0x56, 0x85,
+ 0xb9, 0x38, 0x4b, 0x7f, 0xc4, 0x21, 0xe6, 0x2b, 0x30, 0x4a, 0x85, 0xd2, 0x34, 0x64, 0x9b, 0xa6,
+ 0x77, 0xf1, 0x3c, 0xa1, 0x4a, 0xcb, 0xb4, 0xb1, 0xb4, 0x7a, 0xe7, 0x6e, 0x65, 0xe4, 0x7b, 0x77,
+ 0x2b, 0x23, 0xff, 0x70, 0xb7, 0x32, 0xf2, 0xfa, 0xdd, 0x8a, 0xf0, 0xe6, 0xdd, 0x8a, 0xf0, 0xf6,
+ 0xdd, 0x8a, 0xf0, 0xce, 0xdd, 0x8a, 0x70, 0xfb, 0xa0, 0x22, 0x7c, 0xe5, 0xa0, 0x22, 0x7c, 0xed,
+ 0xa0, 0x22, 0x7c, 0xf3, 0xa0, 0x22, 0x7c, 0xe7, 0xa0, 0x22, 0xdc, 0x39, 0xa8, 0x8c, 0x7c, 0xef,
+ 0xa0, 0x32, 0xf2, 0xfa, 0x41, 0x45, 0x78, 0xf3, 0xa0, 0x32, 0xf2, 0xf6, 0x41, 0x45, 0x78, 0xe7,
+ 0xa0, 0x32, 0x72, 0xfb, 0x07, 0x95, 0x91, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xf1, 0x02, 0x52,
+ 0xaf, 0x74, 0x35, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -874,31 +905,3 @@ func valueToStringCastvalue(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
-
-func init() { proto.RegisterFile("castvalue.proto", fileDescriptor_castvalue_87404b9a479f5489) }
-
-var fileDescriptor_castvalue_87404b9a479f5489 = []byte{
- // 342 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4f, 0x4e, 0x2c, 0x2e,
- 0x29, 0x4b, 0xcc, 0x29, 0x4d, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x84, 0x0b, 0x48,
- 0xe9, 0xa6, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0xa7, 0xe7, 0xa7, 0xe7,
- 0xeb, 0x83, 0x55, 0x24, 0x95, 0xa6, 0x81, 0x79, 0x60, 0x0e, 0x98, 0x05, 0xd1, 0xa9, 0x74, 0x90,
- 0x99, 0x8b, 0xc3, 0x39, 0xb1, 0xb8, 0x24, 0xb1, 0x3c, 0xb1, 0x52, 0xa8, 0x80, 0x4b, 0x18, 0xc4,
- 0xf6, 0x4d, 0x2c, 0x08, 0x03, 0x99, 0xe5, 0x9b, 0x5a, 0x5c, 0x9c, 0x98, 0x9e, 0x2a, 0xc1, 0xa8,
- 0xc0, 0xac, 0xc1, 0x6d, 0xa4, 0xa3, 0x87, 0xb0, 0x15, 0xa6, 0x43, 0x0f, 0x8b, 0x72, 0xd7, 0xbc,
- 0x92, 0xa2, 0x4a, 0x27, 0x81, 0x13, 0xf7, 0xe4, 0x19, 0xba, 0xee, 0xcb, 0x73, 0xf8, 0x56, 0x86,
- 0x67, 0xe6, 0x14, 0xe7, 0xe7, 0x05, 0x61, 0x33, 0x5a, 0xa8, 0x85, 0x91, 0x4b, 0x1a, 0x8b, 0xb8,
- 0x5f, 0x69, 0x4e, 0x4e, 0x62, 0x52, 0x4e, 0xaa, 0x04, 0x13, 0xd8, 0x6a, 0x13, 0x22, 0xad, 0x86,
- 0x69, 0x83, 0x38, 0x81, 0x07, 0xc5, 0x7a, 0x7c, 0xd6, 0x48, 0x45, 0x72, 0x49, 0xe0, 0xf2, 0x89,
- 0x90, 0x00, 0x17, 0x73, 0x76, 0x6a, 0xa5, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x6b, 0x10, 0x88, 0x29,
- 0xa4, 0xce, 0xc5, 0x0a, 0x76, 0x8b, 0x04, 0x93, 0x02, 0xa3, 0x06, 0xb7, 0x91, 0x20, 0x92, 0xeb,
- 0xa0, 0x96, 0x41, 0xe4, 0xad, 0x98, 0x2c, 0x18, 0xa5, 0x12, 0xb9, 0x14, 0x08, 0xb9, 0x94, 0x42,
- 0x2b, 0x94, 0xe4, 0xb8, 0xd8, 0x20, 0x82, 0x42, 0x22, 0x5c, 0xac, 0x9e, 0x79, 0x25, 0x66, 0x26,
- 0x60, 0xa3, 0x98, 0x83, 0x20, 0x1c, 0x27, 0x9f, 0x13, 0x0f, 0xe5, 0x18, 0x2e, 0x3c, 0x94, 0x63,
- 0xb8, 0xf1, 0x50, 0x8e, 0xe1, 0xc1, 0x43, 0x39, 0xc6, 0x17, 0x0f, 0xe5, 0x18, 0x3f, 0x3c, 0x94,
- 0x63, 0xfc, 0xf1, 0x50, 0x8e, 0xb1, 0xe1, 0x91, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x1b, 0x1e,
- 0xc9, 0x31, 0xee, 0x78, 0x24, 0xc7, 0x78, 0xe0, 0x91, 0x1c, 0xe3, 0x89, 0x47, 0x72, 0x0c, 0x17,
- 0x1e, 0xc9, 0x31, 0x3c, 0x78, 0x24, 0xc7, 0xf8, 0xe2, 0x91, 0x1c, 0xc3, 0x87, 0x47, 0x72, 0x8c,
- 0x3f, 0x1e, 0xc9, 0x31, 0x34, 0x3c, 0x96, 0x63, 0x00, 0x04, 0x00, 0x00, 0xff, 0xff, 0x7b, 0x8b,
- 0x19, 0x68, 0x7d, 0x02, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.pb.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.pb.go
index 577f774867..4169362b56 100644
--- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.pb.go
@@ -3,22 +3,21 @@
package castvalue
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-
-import io "io"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -42,7 +41,7 @@ type Castaway struct {
func (m *Castaway) Reset() { *m = Castaway{} }
func (*Castaway) ProtoMessage() {}
func (*Castaway) Descriptor() ([]byte, []int) {
- return fileDescriptor_castvalue_a8e85bd7357c5c72, []int{0}
+ return fileDescriptor_028f9c91e1363907, []int{0}
}
func (m *Castaway) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -59,8 +58,8 @@ func (m *Castaway) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Castaway) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Castaway.Merge(dst, src)
+func (m *Castaway) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Castaway.Merge(m, src)
}
func (m *Castaway) XXX_Size() int {
return m.Size()
@@ -81,7 +80,7 @@ type Wilson struct {
func (m *Wilson) Reset() { *m = Wilson{} }
func (*Wilson) ProtoMessage() {}
func (*Wilson) Descriptor() ([]byte, []int) {
- return fileDescriptor_castvalue_a8e85bd7357c5c72, []int{1}
+ return fileDescriptor_028f9c91e1363907, []int{1}
}
func (m *Wilson) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -98,8 +97,8 @@ func (m *Wilson) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Wilson) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Wilson.Merge(dst, src)
+func (m *Wilson) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Wilson.Merge(m, src)
}
func (m *Wilson) XXX_Size() int {
return m.Size()
@@ -116,6 +115,36 @@ func init() {
proto.RegisterMapType((map[int32]*MyWilson)(nil), "castvalue.Castaway.CastMapValueMessageNullableEntry")
proto.RegisterType((*Wilson)(nil), "castvalue.Wilson")
}
+
+func init() { proto.RegisterFile("combos/both/castvalue.proto", fileDescriptor_028f9c91e1363907) }
+
+var fileDescriptor_028f9c91e1363907 = []byte{
+ // 354 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x8f, 0xbd, 0x4f, 0x2a, 0x41,
+ 0x14, 0xc5, 0xf7, 0xb2, 0xe1, 0x85, 0x37, 0xbc, 0x82, 0xb7, 0x5a, 0x6c, 0x20, 0xb9, 0x6c, 0x68,
+ 0xa4, 0xd0, 0xdd, 0x84, 0x10, 0x63, 0x2c, 0x31, 0x16, 0x26, 0x62, 0x41, 0xa1, 0xb1, 0x9c, 0x25,
+ 0xeb, 0x42, 0x5c, 0x18, 0xc2, 0xce, 0x6a, 0xb6, 0xa3, 0xb0, 0xf2, 0x2f, 0xb1, 0xb4, 0xb4, 0xd4,
+ 0x8e, 0x92, 0xd2, 0x4a, 0x99, 0xb1, 0xa1, 0xa4, 0xa4, 0x34, 0xcc, 0x8a, 0x1f, 0x09, 0x7e, 0x24,
+ 0x76, 0xf7, 0x9e, 0xb9, 0xe7, 0xfc, 0xce, 0x90, 0x42, 0x93, 0x75, 0x5c, 0x16, 0x3a, 0x2e, 0xe3,
+ 0x2d, 0xa7, 0x49, 0x43, 0x7e, 0x46, 0x83, 0xc8, 0xb3, 0x7b, 0x7d, 0xc6, 0x99, 0xf1, 0xf7, 0x55,
+ 0xc8, 0x6f, 0xf8, 0x6d, 0xde, 0x8a, 0x5c, 0xbb, 0xc9, 0x3a, 0x8e, 0xcf, 0x7c, 0xe6, 0xa8, 0x0b,
+ 0x37, 0x3a, 0x51, 0x9b, 0x5a, 0xd4, 0x94, 0x38, 0x4b, 0x77, 0x3a, 0xc9, 0xec, 0xd0, 0x90, 0xd3,
+ 0x73, 0x1a, 0x1b, 0x3d, 0xb2, 0x32, 0x9f, 0xeb, 0xb4, 0x77, 0x38, 0xcf, 0xaa, 0x7b, 0x61, 0x48,
+ 0x7d, 0xcf, 0x04, 0x4b, 0x2f, 0x67, 0x2b, 0xeb, 0xf6, 0x1b, 0x75, 0xe1, 0xb0, 0x97, 0x9c, 0xef,
+ 0x76, 0x79, 0x3f, 0xae, 0xe5, 0x86, 0x0f, 0x45, 0xed, 0xf2, 0xb1, 0x98, 0xa9, 0xc7, 0x47, 0xed,
+ 0x20, 0x64, 0xdd, 0xc6, 0xb2, 0x68, 0xe3, 0x02, 0x48, 0x61, 0x89, 0x7e, 0x10, 0x05, 0x01, 0x75,
+ 0x03, 0xcf, 0x4c, 0x29, 0x74, 0xf5, 0x87, 0xe8, 0x85, 0x2d, 0xa9, 0xf0, 0xef, 0x03, 0xfe, 0x2b,
+ 0x4c, 0xfe, 0x98, 0x98, 0x9f, 0xfd, 0xc4, 0xc8, 0x11, 0xfd, 0xd4, 0x8b, 0x4d, 0xb0, 0xa0, 0x9c,
+ 0x6e, 0xcc, 0x47, 0x63, 0x8d, 0xa4, 0x55, 0x17, 0x33, 0x65, 0x41, 0x39, 0x5b, 0xf9, 0xff, 0xae,
+ 0xdd, 0x0b, 0x2c, 0x79, 0xdf, 0x4e, 0x6d, 0x41, 0x9e, 0x12, 0xeb, 0xbb, 0xa6, 0xbf, 0x44, 0x94,
+ 0x90, 0xfc, 0x49, 0x44, 0x63, 0x95, 0xa4, 0xf7, 0xba, 0x7c, 0xb3, 0xaa, 0xa2, 0xf4, 0x46, 0xb2,
+ 0xd4, 0xf6, 0x87, 0x02, 0xb5, 0x91, 0x40, 0xed, 0x5e, 0xa0, 0x36, 0x16, 0x08, 0x13, 0x81, 0x30,
+ 0x15, 0x08, 0x33, 0x81, 0x30, 0x90, 0x08, 0x57, 0x12, 0xe1, 0x5a, 0x22, 0xdc, 0x48, 0x84, 0x5b,
+ 0x89, 0x30, 0x94, 0x08, 0x23, 0x89, 0x30, 0x96, 0x08, 0x13, 0x89, 0xda, 0x54, 0x22, 0xcc, 0x24,
+ 0x6a, 0x83, 0x27, 0xd4, 0x9e, 0x03, 0x00, 0x00, 0xff, 0xff, 0xd3, 0xe0, 0x74, 0x89, 0x89, 0x02,
+ 0x00, 0x00,
+}
+
func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return CastvalueDescription()
}
@@ -125,258 +154,260 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog
func CastvalueDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4012 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0xdc, 0xd6,
- 0x75, 0x26, 0xf6, 0x87, 0xdc, 0x3d, 0xbb, 0x5c, 0x82, 0x20, 0x2d, 0xad, 0xa8, 0x78, 0x45, 0xd1,
- 0x76, 0x44, 0xdb, 0x09, 0x99, 0x91, 0x25, 0x59, 0x5a, 0x35, 0x71, 0x97, 0xcb, 0x15, 0xb3, 0x2e,
- 0xff, 0x82, 0x25, 0x63, 0xcb, 0x99, 0x0e, 0x06, 0xc4, 0x5e, 0x2e, 0x21, 0x61, 0x01, 0x04, 0xc0,
- 0x4a, 0xa6, 0xa6, 0x0f, 0xea, 0x38, 0x6d, 0xc7, 0xed, 0xf4, 0xbf, 0x33, 0x4d, 0x5c, 0xc7, 0x6d,
- 0xd2, 0x69, 0x9c, 0xa6, 0x7f, 0x49, 0xd3, 0xa6, 0x49, 0xfa, 0x92, 0x3e, 0xa4, 0xf5, 0x53, 0x27,
- 0x79, 0xeb, 0x43, 0xa7, 0xb5, 0x18, 0xcf, 0xd4, 0x6d, 0xdd, 0xc6, 0x6d, 0xf5, 0xe0, 0x19, 0xbf,
- 0x74, 0xee, 0x1f, 0x16, 0xc0, 0x2e, 0x09, 0x30, 0x19, 0x3b, 0x4f, 0x24, 0xce, 0x3d, 0xdf, 0x87,
- 0x73, 0xcf, 0x3d, 0xf7, 0x9c, 0x73, 0x2f, 0x16, 0x7e, 0x78, 0x05, 0x66, 0x3b, 0x96, 0xd5, 0x31,
- 0xd0, 0xa2, 0xed, 0x58, 0x9e, 0xb5, 0xd3, 0xdb, 0x5d, 0x6c, 0x23, 0x57, 0x73, 0x74, 0xdb, 0xb3,
- 0x9c, 0x05, 0x22, 0x93, 0x26, 0xa8, 0xc6, 0x02, 0xd7, 0x98, 0x5b, 0x83, 0xc9, 0x6b, 0xba, 0x81,
- 0x96, 0x7d, 0xc5, 0x16, 0xf2, 0xa4, 0xcb, 0x90, 0xd9, 0xd5, 0x0d, 0x54, 0x16, 0x66, 0xd3, 0xf3,
- 0x85, 0xf3, 0x0f, 0x2f, 0x44, 0x40, 0x0b, 0x61, 0xc4, 0x26, 0x16, 0xcb, 0x04, 0x31, 0xf7, 0x46,
- 0x06, 0xa6, 0x86, 0x8c, 0x4a, 0x12, 0x64, 0x4c, 0xb5, 0x8b, 0x19, 0x85, 0xf9, 0xbc, 0x4c, 0xfe,
- 0x97, 0xca, 0x30, 0x66, 0xab, 0xda, 0x4d, 0xb5, 0x83, 0xca, 0x29, 0x22, 0xe6, 0x8f, 0x52, 0x05,
- 0xa0, 0x8d, 0x6c, 0x64, 0xb6, 0x91, 0xa9, 0xed, 0x97, 0xd3, 0xb3, 0xe9, 0xf9, 0xbc, 0x1c, 0x90,
- 0x48, 0x8f, 0xc3, 0xa4, 0xdd, 0xdb, 0x31, 0x74, 0x4d, 0x09, 0xa8, 0xc1, 0x6c, 0x7a, 0x3e, 0x2b,
- 0x8b, 0x74, 0x60, 0xb9, 0xaf, 0x7c, 0x0e, 0x26, 0x6e, 0x23, 0xf5, 0x66, 0x50, 0xb5, 0x40, 0x54,
- 0x4b, 0x58, 0x1c, 0x50, 0xac, 0x43, 0xb1, 0x8b, 0x5c, 0x57, 0xed, 0x20, 0xc5, 0xdb, 0xb7, 0x51,
- 0x39, 0x43, 0x66, 0x3f, 0x3b, 0x30, 0xfb, 0xe8, 0xcc, 0x0b, 0x0c, 0xb5, 0xb5, 0x6f, 0x23, 0xa9,
- 0x06, 0x79, 0x64, 0xf6, 0xba, 0x94, 0x21, 0x7b, 0x88, 0xff, 0x1a, 0x66, 0xaf, 0x1b, 0x65, 0xc9,
- 0x61, 0x18, 0xa3, 0x18, 0x73, 0x91, 0x73, 0x4b, 0xd7, 0x50, 0x79, 0x94, 0x10, 0x9c, 0x1b, 0x20,
- 0x68, 0xd1, 0xf1, 0x28, 0x07, 0xc7, 0x49, 0x75, 0xc8, 0xa3, 0xe7, 0x3d, 0x64, 0xba, 0xba, 0x65,
- 0x96, 0xc7, 0x08, 0xc9, 0x23, 0x43, 0x56, 0x11, 0x19, 0xed, 0x28, 0x45, 0x1f, 0x27, 0x5d, 0x82,
- 0x31, 0xcb, 0xf6, 0x74, 0xcb, 0x74, 0xcb, 0xb9, 0x59, 0x61, 0xbe, 0x70, 0xfe, 0x03, 0x43, 0x03,
- 0x61, 0x83, 0xea, 0xc8, 0x5c, 0x59, 0x6a, 0x82, 0xe8, 0x5a, 0x3d, 0x47, 0x43, 0x8a, 0x66, 0xb5,
- 0x91, 0xa2, 0x9b, 0xbb, 0x56, 0x39, 0x4f, 0x08, 0xce, 0x0c, 0x4e, 0x84, 0x28, 0xd6, 0xad, 0x36,
- 0x6a, 0x9a, 0xbb, 0x96, 0x5c, 0x72, 0x43, 0xcf, 0xd2, 0x09, 0x18, 0x75, 0xf7, 0x4d, 0x4f, 0x7d,
- 0xbe, 0x5c, 0x24, 0x11, 0xc2, 0x9e, 0xe6, 0xbe, 0x35, 0x0a, 0x13, 0x49, 0x42, 0xec, 0x2a, 0x64,
- 0x77, 0xf1, 0x2c, 0xcb, 0xa9, 0xe3, 0xf8, 0x80, 0x62, 0xc2, 0x4e, 0x1c, 0xfd, 0x11, 0x9d, 0x58,
- 0x83, 0x82, 0x89, 0x5c, 0x0f, 0xb5, 0x69, 0x44, 0xa4, 0x13, 0xc6, 0x14, 0x50, 0xd0, 0x60, 0x48,
- 0x65, 0x7e, 0xa4, 0x90, 0x7a, 0x16, 0x26, 0x7c, 0x93, 0x14, 0x47, 0x35, 0x3b, 0x3c, 0x36, 0x17,
- 0xe3, 0x2c, 0x59, 0x68, 0x70, 0x9c, 0x8c, 0x61, 0x72, 0x09, 0x85, 0x9e, 0xa5, 0x65, 0x00, 0xcb,
- 0x44, 0xd6, 0xae, 0xd2, 0x46, 0x9a, 0x51, 0xce, 0x1d, 0xe2, 0xa5, 0x0d, 0xac, 0x32, 0xe0, 0x25,
- 0x8b, 0x4a, 0x35, 0x43, 0xba, 0xd2, 0x0f, 0xb5, 0xb1, 0x43, 0x22, 0x65, 0x8d, 0x6e, 0xb2, 0x81,
- 0x68, 0xdb, 0x86, 0x92, 0x83, 0x70, 0xdc, 0xa3, 0x36, 0x9b, 0x59, 0x9e, 0x18, 0xb1, 0x10, 0x3b,
- 0x33, 0x99, 0xc1, 0xe8, 0xc4, 0xc6, 0x9d, 0xe0, 0xa3, 0xf4, 0x10, 0xf8, 0x02, 0x85, 0x84, 0x15,
- 0x90, 0x2c, 0x54, 0xe4, 0xc2, 0x75, 0xb5, 0x8b, 0x66, 0xee, 0x40, 0x29, 0xec, 0x1e, 0x69, 0x1a,
- 0xb2, 0xae, 0xa7, 0x3a, 0x1e, 0x89, 0xc2, 0xac, 0x4c, 0x1f, 0x24, 0x11, 0xd2, 0xc8, 0x6c, 0x93,
- 0x2c, 0x97, 0x95, 0xf1, 0xbf, 0xd2, 0x4f, 0xf7, 0x27, 0x9c, 0x26, 0x13, 0xfe, 0xe0, 0xe0, 0x8a,
- 0x86, 0x98, 0xa3, 0xf3, 0x9e, 0x79, 0x12, 0xc6, 0x43, 0x13, 0x48, 0xfa, 0xea, 0xb9, 0x9f, 0x83,
- 0x07, 0x86, 0x52, 0x4b, 0xcf, 0xc2, 0x74, 0xcf, 0xd4, 0x4d, 0x0f, 0x39, 0xb6, 0x83, 0x70, 0xc4,
- 0xd2, 0x57, 0x95, 0xff, 0x6d, 0xec, 0x90, 0x98, 0xdb, 0x0e, 0x6a, 0x53, 0x16, 0x79, 0xaa, 0x37,
- 0x28, 0x7c, 0x2c, 0x9f, 0x7b, 0x73, 0x4c, 0xbc, 0x7b, 0xf7, 0xee, 0xdd, 0xd4, 0xdc, 0x67, 0x47,
- 0x61, 0x7a, 0xd8, 0x9e, 0x19, 0xba, 0x7d, 0x4f, 0xc0, 0xa8, 0xd9, 0xeb, 0xee, 0x20, 0x87, 0x38,
- 0x29, 0x2b, 0xb3, 0x27, 0xa9, 0x06, 0x59, 0x43, 0xdd, 0x41, 0x46, 0x39, 0x33, 0x2b, 0xcc, 0x97,
- 0xce, 0x3f, 0x9e, 0x68, 0x57, 0x2e, 0xac, 0x62, 0x88, 0x4c, 0x91, 0xd2, 0xc7, 0x20, 0xc3, 0x52,
- 0x34, 0x66, 0x78, 0x2c, 0x19, 0x03, 0xde, 0x4b, 0x32, 0xc1, 0x49, 0xa7, 0x21, 0x8f, 0xff, 0xd2,
- 0xd8, 0x18, 0x25, 0x36, 0xe7, 0xb0, 0x00, 0xc7, 0x85, 0x34, 0x03, 0x39, 0xb2, 0x4d, 0xda, 0x88,
- 0x97, 0x36, 0xff, 0x19, 0x07, 0x56, 0x1b, 0xed, 0xaa, 0x3d, 0xc3, 0x53, 0x6e, 0xa9, 0x46, 0x0f,
- 0x91, 0x80, 0xcf, 0xcb, 0x45, 0x26, 0xfc, 0x24, 0x96, 0x49, 0x67, 0xa0, 0x40, 0x77, 0x95, 0x6e,
- 0xb6, 0xd1, 0xf3, 0x24, 0x7b, 0x66, 0x65, 0xba, 0xd1, 0x9a, 0x58, 0x82, 0x5f, 0x7f, 0xc3, 0xb5,
- 0x4c, 0x1e, 0x9a, 0xe4, 0x15, 0x58, 0x40, 0x5e, 0xff, 0x64, 0x34, 0x71, 0x3f, 0x38, 0x7c, 0x7a,
- 0xd1, 0x98, 0x9a, 0xfb, 0x46, 0x0a, 0x32, 0x24, 0x5f, 0x4c, 0x40, 0x61, 0xeb, 0xfa, 0x66, 0x43,
- 0x59, 0xde, 0xd8, 0x5e, 0x5a, 0x6d, 0x88, 0x82, 0x54, 0x02, 0x20, 0x82, 0x6b, 0xab, 0x1b, 0xb5,
- 0x2d, 0x31, 0xe5, 0x3f, 0x37, 0xd7, 0xb7, 0x2e, 0x5d, 0x10, 0xd3, 0x3e, 0x60, 0x9b, 0x0a, 0x32,
- 0x41, 0x85, 0x27, 0xce, 0x8b, 0x59, 0x49, 0x84, 0x22, 0x25, 0x68, 0x3e, 0xdb, 0x58, 0xbe, 0x74,
- 0x41, 0x1c, 0x0d, 0x4b, 0x9e, 0x38, 0x2f, 0x8e, 0x49, 0xe3, 0x90, 0x27, 0x92, 0xa5, 0x8d, 0x8d,
- 0x55, 0x31, 0xe7, 0x73, 0xb6, 0xb6, 0xe4, 0xe6, 0xfa, 0x8a, 0x98, 0xf7, 0x39, 0x57, 0xe4, 0x8d,
- 0xed, 0x4d, 0x11, 0x7c, 0x86, 0xb5, 0x46, 0xab, 0x55, 0x5b, 0x69, 0x88, 0x05, 0x5f, 0x63, 0xe9,
- 0xfa, 0x56, 0xa3, 0x25, 0x16, 0x43, 0x66, 0x3d, 0x71, 0x5e, 0x1c, 0xf7, 0x5f, 0xd1, 0x58, 0xdf,
- 0x5e, 0x13, 0x4b, 0xd2, 0x24, 0x8c, 0xd3, 0x57, 0x70, 0x23, 0x26, 0x22, 0xa2, 0x4b, 0x17, 0x44,
- 0xb1, 0x6f, 0x08, 0x65, 0x99, 0x0c, 0x09, 0x2e, 0x5d, 0x10, 0xa5, 0xb9, 0x3a, 0x64, 0x49, 0x74,
- 0x49, 0x12, 0x94, 0x56, 0x6b, 0x4b, 0x8d, 0x55, 0x65, 0x63, 0x73, 0xab, 0xb9, 0xb1, 0x5e, 0x5b,
- 0x15, 0x85, 0xbe, 0x4c, 0x6e, 0x7c, 0x62, 0xbb, 0x29, 0x37, 0x96, 0xc5, 0x54, 0x50, 0xb6, 0xd9,
- 0xa8, 0x6d, 0x35, 0x96, 0xc5, 0xf4, 0x9c, 0x06, 0xd3, 0xc3, 0xf2, 0xe4, 0xd0, 0x9d, 0x11, 0x58,
- 0xe2, 0xd4, 0x21, 0x4b, 0x4c, 0xb8, 0x06, 0x96, 0xf8, 0x07, 0x29, 0x98, 0x1a, 0x52, 0x2b, 0x86,
- 0xbe, 0xe4, 0x29, 0xc8, 0xd2, 0x10, 0xa5, 0xd5, 0xf3, 0xd1, 0xa1, 0x45, 0x87, 0x04, 0xec, 0x40,
- 0x05, 0x25, 0xb8, 0x60, 0x07, 0x91, 0x3e, 0xa4, 0x83, 0xc0, 0x14, 0x03, 0x39, 0xfd, 0x67, 0x07,
- 0x72, 0x3a, 0x2d, 0x7b, 0x97, 0x92, 0x94, 0x3d, 0x22, 0x3b, 0x5e, 0x6e, 0xcf, 0x0e, 0xc9, 0xed,
- 0x57, 0x61, 0x72, 0x80, 0x28, 0x71, 0x8e, 0x7d, 0x41, 0x80, 0xf2, 0x61, 0xce, 0x89, 0xc9, 0x74,
- 0xa9, 0x50, 0xa6, 0xbb, 0x1a, 0xf5, 0xe0, 0xd9, 0xc3, 0x17, 0x61, 0x60, 0xad, 0x5f, 0x15, 0xe0,
- 0xc4, 0xf0, 0x4e, 0x71, 0xa8, 0x0d, 0x1f, 0x83, 0xd1, 0x2e, 0xf2, 0xf6, 0x2c, 0xde, 0x2d, 0x7d,
- 0x70, 0x48, 0x0d, 0xc6, 0xc3, 0xd1, 0xc5, 0x66, 0xa8, 0x60, 0x11, 0x4f, 0x1f, 0xd6, 0xee, 0x51,
- 0x6b, 0x06, 0x2c, 0x7d, 0x31, 0x05, 0x0f, 0x0c, 0x25, 0x1f, 0x6a, 0xe8, 0x83, 0x00, 0xba, 0x69,
- 0xf7, 0x3c, 0xda, 0x11, 0xd1, 0x04, 0x9b, 0x27, 0x12, 0x92, 0xbc, 0x70, 0xf2, 0xec, 0x79, 0xfe,
- 0x78, 0x9a, 0x8c, 0x03, 0x15, 0x11, 0x85, 0xcb, 0x7d, 0x43, 0x33, 0xc4, 0xd0, 0xca, 0x21, 0x33,
- 0x1d, 0x08, 0xcc, 0x8f, 0x80, 0xa8, 0x19, 0x3a, 0x32, 0x3d, 0xc5, 0xf5, 0x1c, 0xa4, 0x76, 0x75,
- 0xb3, 0x43, 0x2a, 0x48, 0xae, 0x9a, 0xdd, 0x55, 0x0d, 0x17, 0xc9, 0x13, 0x74, 0xb8, 0xc5, 0x47,
- 0x31, 0x82, 0x04, 0x90, 0x13, 0x40, 0x8c, 0x86, 0x10, 0x74, 0xd8, 0x47, 0xcc, 0x7d, 0x3d, 0x07,
- 0x85, 0x40, 0x5f, 0x2d, 0x9d, 0x85, 0xe2, 0x0d, 0xf5, 0x96, 0xaa, 0xf0, 0xb3, 0x12, 0xf5, 0x44,
- 0x01, 0xcb, 0x36, 0xd9, 0x79, 0xe9, 0x23, 0x30, 0x4d, 0x54, 0xac, 0x9e, 0x87, 0x1c, 0x45, 0x33,
- 0x54, 0xd7, 0x25, 0x4e, 0xcb, 0x11, 0x55, 0x09, 0x8f, 0x6d, 0xe0, 0xa1, 0x3a, 0x1f, 0x91, 0x2e,
- 0xc2, 0x14, 0x41, 0x74, 0x7b, 0x86, 0xa7, 0xdb, 0x06, 0x52, 0xf0, 0xe9, 0xcd, 0x25, 0x95, 0xc4,
- 0xb7, 0x6c, 0x12, 0x6b, 0xac, 0x31, 0x05, 0x6c, 0x91, 0x2b, 0x2d, 0xc3, 0x83, 0x04, 0xd6, 0x41,
- 0x26, 0x72, 0x54, 0x0f, 0x29, 0xe8, 0xd3, 0x3d, 0xd5, 0x70, 0x15, 0xd5, 0x6c, 0x2b, 0x7b, 0xaa,
- 0xbb, 0x57, 0x9e, 0xc6, 0x04, 0x4b, 0xa9, 0xb2, 0x20, 0x9f, 0xc2, 0x8a, 0x2b, 0x4c, 0xaf, 0x41,
- 0xd4, 0x6a, 0x66, 0xfb, 0xe3, 0xaa, 0xbb, 0x27, 0x55, 0xe1, 0x04, 0x61, 0x71, 0x3d, 0x47, 0x37,
- 0x3b, 0x8a, 0xb6, 0x87, 0xb4, 0x9b, 0x4a, 0xcf, 0xdb, 0xbd, 0x5c, 0x3e, 0x1d, 0x7c, 0x3f, 0xb1,
- 0xb0, 0x45, 0x74, 0xea, 0x58, 0x65, 0xdb, 0xdb, 0xbd, 0x2c, 0xb5, 0xa0, 0x88, 0x17, 0xa3, 0xab,
- 0xdf, 0x41, 0xca, 0xae, 0xe5, 0x90, 0xd2, 0x58, 0x1a, 0x92, 0x9a, 0x02, 0x1e, 0x5c, 0xd8, 0x60,
- 0x80, 0x35, 0xab, 0x8d, 0xaa, 0xd9, 0xd6, 0x66, 0xa3, 0xb1, 0x2c, 0x17, 0x38, 0xcb, 0x35, 0xcb,
- 0xc1, 0x01, 0xd5, 0xb1, 0x7c, 0x07, 0x17, 0x68, 0x40, 0x75, 0x2c, 0xee, 0xde, 0x8b, 0x30, 0xa5,
- 0x69, 0x74, 0xce, 0xba, 0xa6, 0xb0, 0x33, 0x96, 0x5b, 0x16, 0x43, 0xce, 0xd2, 0xb4, 0x15, 0xaa,
- 0xc0, 0x62, 0xdc, 0x95, 0xae, 0xc0, 0x03, 0x7d, 0x67, 0x05, 0x81, 0x93, 0x03, 0xb3, 0x8c, 0x42,
- 0x2f, 0xc2, 0x94, 0xbd, 0x3f, 0x08, 0x94, 0x42, 0x6f, 0xb4, 0xf7, 0xa3, 0xb0, 0x27, 0x61, 0xda,
- 0xde, 0xb3, 0x07, 0x71, 0x8f, 0x05, 0x71, 0x92, 0xbd, 0x67, 0x47, 0x81, 0x8f, 0x90, 0x03, 0xb7,
- 0x83, 0x34, 0xd5, 0x43, 0xed, 0xf2, 0xc9, 0xa0, 0x7a, 0x60, 0x40, 0x5a, 0x04, 0x51, 0xd3, 0x14,
- 0x64, 0xaa, 0x3b, 0x06, 0x52, 0x54, 0x07, 0x99, 0xaa, 0x5b, 0x3e, 0x13, 0x54, 0x2e, 0x69, 0x5a,
- 0x83, 0x8c, 0xd6, 0xc8, 0xa0, 0xf4, 0x18, 0x4c, 0x5a, 0x3b, 0x37, 0x34, 0x1a, 0x92, 0x8a, 0xed,
- 0xa0, 0x5d, 0xfd, 0xf9, 0xf2, 0xc3, 0xc4, 0xbf, 0x13, 0x78, 0x80, 0x04, 0xe4, 0x26, 0x11, 0x4b,
- 0x8f, 0x82, 0xa8, 0xb9, 0x7b, 0xaa, 0x63, 0x93, 0x9c, 0xec, 0xda, 0xaa, 0x86, 0xca, 0x8f, 0x50,
- 0x55, 0x2a, 0x5f, 0xe7, 0x62, 0xbc, 0x25, 0xdc, 0xdb, 0xfa, 0xae, 0xc7, 0x19, 0xcf, 0xd1, 0x2d,
- 0x41, 0x64, 0x8c, 0x6d, 0x1e, 0x44, 0xec, 0x8a, 0xd0, 0x8b, 0xe7, 0x89, 0x5a, 0xc9, 0xde, 0xb3,
- 0x83, 0xef, 0x7d, 0x08, 0xc6, 0xb1, 0x66, 0xff, 0xa5, 0x8f, 0xd2, 0x86, 0xcc, 0xde, 0x0b, 0xbc,
- 0xf1, 0x3d, 0xeb, 0x8d, 0xe7, 0xaa, 0x50, 0x0c, 0xc6, 0xa7, 0x94, 0x07, 0x1a, 0xa1, 0xa2, 0x80,
- 0x9b, 0x95, 0xfa, 0xc6, 0x32, 0x6e, 0x33, 0x9e, 0x6b, 0x88, 0x29, 0xdc, 0xee, 0xac, 0x36, 0xb7,
- 0x1a, 0x8a, 0xbc, 0xbd, 0xbe, 0xd5, 0x5c, 0x6b, 0x88, 0xe9, 0x60, 0x5f, 0xfd, 0xdd, 0x14, 0x94,
- 0xc2, 0x47, 0x24, 0xe9, 0xa7, 0xe0, 0x24, 0xbf, 0xcf, 0x70, 0x91, 0xa7, 0xdc, 0xd6, 0x1d, 0xb2,
- 0x65, 0xba, 0x2a, 0x2d, 0x5f, 0xfe, 0xa2, 0x4d, 0x33, 0xad, 0x16, 0xf2, 0x9e, 0xd1, 0x1d, 0xbc,
- 0x21, 0xba, 0xaa, 0x27, 0xad, 0xc2, 0x19, 0xd3, 0x52, 0x5c, 0x4f, 0x35, 0xdb, 0xaa, 0xd3, 0x56,
- 0xfa, 0x37, 0x49, 0x8a, 0xaa, 0x69, 0xc8, 0x75, 0x2d, 0x5a, 0xaa, 0x7c, 0x96, 0x0f, 0x98, 0x56,
- 0x8b, 0x29, 0xf7, 0x73, 0x78, 0x8d, 0xa9, 0x46, 0x02, 0x2c, 0x7d, 0x58, 0x80, 0x9d, 0x86, 0x7c,
- 0x57, 0xb5, 0x15, 0x64, 0x7a, 0xce, 0x3e, 0x69, 0x8c, 0x73, 0x72, 0xae, 0xab, 0xda, 0x0d, 0xfc,
- 0xfc, 0xfe, 0x9c, 0x4f, 0xfe, 0x39, 0x0d, 0xc5, 0x60, 0x73, 0x8c, 0xcf, 0x1a, 0x1a, 0xa9, 0x23,
- 0x02, 0xc9, 0x34, 0x0f, 0x1d, 0xd9, 0x4a, 0x2f, 0xd4, 0x71, 0x81, 0xa9, 0x8e, 0xd2, 0x96, 0x55,
- 0xa6, 0x48, 0x5c, 0xdc, 0x71, 0x6e, 0x41, 0xb4, 0x45, 0xc8, 0xc9, 0xec, 0x49, 0x5a, 0x81, 0xd1,
- 0x1b, 0x2e, 0xe1, 0x1e, 0x25, 0xdc, 0x0f, 0x1f, 0xcd, 0xfd, 0x74, 0x8b, 0x90, 0xe7, 0x9f, 0x6e,
- 0x29, 0xeb, 0x1b, 0xf2, 0x5a, 0x6d, 0x55, 0x66, 0x70, 0xe9, 0x14, 0x64, 0x0c, 0xf5, 0xce, 0x7e,
- 0xb8, 0x14, 0x11, 0x51, 0x52, 0xc7, 0x9f, 0x82, 0xcc, 0x6d, 0xa4, 0xde, 0x0c, 0x17, 0x00, 0x22,
- 0x7a, 0x0f, 0x43, 0x7f, 0x11, 0xb2, 0xc4, 0x5f, 0x12, 0x00, 0xf3, 0x98, 0x38, 0x22, 0xe5, 0x20,
- 0x53, 0xdf, 0x90, 0x71, 0xf8, 0x8b, 0x50, 0xa4, 0x52, 0x65, 0xb3, 0xd9, 0xa8, 0x37, 0xc4, 0xd4,
- 0xdc, 0x45, 0x18, 0xa5, 0x4e, 0xc0, 0x5b, 0xc3, 0x77, 0x83, 0x38, 0xc2, 0x1e, 0x19, 0x87, 0xc0,
- 0x47, 0xb7, 0xd7, 0x96, 0x1a, 0xb2, 0x98, 0x0a, 0x2e, 0xaf, 0x0b, 0xc5, 0x60, 0x5f, 0xfc, 0xfe,
- 0xc4, 0xd4, 0xb7, 0x05, 0x28, 0x04, 0xfa, 0x5c, 0xdc, 0xa0, 0xa8, 0x86, 0x61, 0xdd, 0x56, 0x54,
- 0x43, 0x57, 0x5d, 0x16, 0x14, 0x40, 0x44, 0x35, 0x2c, 0x49, 0xba, 0x68, 0xef, 0x8b, 0xf1, 0xaf,
- 0x08, 0x20, 0x46, 0x5b, 0xcc, 0x88, 0x81, 0xc2, 0x4f, 0xd4, 0xc0, 0x97, 0x05, 0x28, 0x85, 0xfb,
- 0xca, 0x88, 0x79, 0x67, 0x7f, 0xa2, 0xe6, 0xbd, 0x9e, 0x82, 0xf1, 0x50, 0x37, 0x99, 0xd4, 0xba,
- 0x4f, 0xc3, 0xa4, 0xde, 0x46, 0x5d, 0xdb, 0xf2, 0x90, 0xa9, 0xed, 0x2b, 0x06, 0xba, 0x85, 0x8c,
- 0xf2, 0x1c, 0x49, 0x14, 0x8b, 0x47, 0xf7, 0xab, 0x0b, 0xcd, 0x3e, 0x6e, 0x15, 0xc3, 0xaa, 0x53,
- 0xcd, 0xe5, 0xc6, 0xda, 0xe6, 0xc6, 0x56, 0x63, 0xbd, 0x7e, 0x5d, 0xd9, 0x5e, 0xff, 0x99, 0xf5,
- 0x8d, 0x67, 0xd6, 0x65, 0x51, 0x8f, 0xa8, 0xbd, 0x87, 0x5b, 0x7d, 0x13, 0xc4, 0xa8, 0x51, 0xd2,
- 0x49, 0x18, 0x66, 0x96, 0x38, 0x22, 0x4d, 0xc1, 0xc4, 0xfa, 0x86, 0xd2, 0x6a, 0x2e, 0x37, 0x94,
- 0xc6, 0xb5, 0x6b, 0x8d, 0xfa, 0x56, 0x8b, 0xde, 0x40, 0xf8, 0xda, 0x5b, 0xe1, 0x4d, 0xfd, 0x52,
- 0x1a, 0xa6, 0x86, 0x58, 0x22, 0xd5, 0xd8, 0xd9, 0x81, 0x1e, 0x67, 0x3e, 0x9c, 0xc4, 0xfa, 0x05,
- 0x5c, 0xf2, 0x37, 0x55, 0xc7, 0x63, 0x47, 0x8d, 0x47, 0x01, 0x7b, 0xc9, 0xf4, 0xf4, 0x5d, 0x1d,
- 0x39, 0xec, 0xc2, 0x86, 0x1e, 0x28, 0x26, 0xfa, 0x72, 0x7a, 0x67, 0xf3, 0x21, 0x90, 0x6c, 0xcb,
- 0xd5, 0x3d, 0xfd, 0x16, 0x52, 0x74, 0x93, 0xdf, 0xee, 0xe0, 0x03, 0x46, 0x46, 0x16, 0xf9, 0x48,
- 0xd3, 0xf4, 0x7c, 0x6d, 0x13, 0x75, 0xd4, 0x88, 0x36, 0x4e, 0xe0, 0x69, 0x59, 0xe4, 0x23, 0xbe,
- 0xf6, 0x59, 0x28, 0xb6, 0xad, 0x1e, 0xee, 0xba, 0xa8, 0x1e, 0xae, 0x17, 0x82, 0x5c, 0xa0, 0x32,
- 0x5f, 0x85, 0xf5, 0xd3, 0xfd, 0x6b, 0xa5, 0xa2, 0x5c, 0xa0, 0x32, 0xaa, 0x72, 0x0e, 0x26, 0xd4,
- 0x4e, 0xc7, 0xc1, 0xe4, 0x9c, 0x88, 0x9e, 0x10, 0x4a, 0xbe, 0x98, 0x28, 0xce, 0x3c, 0x0d, 0x39,
- 0xee, 0x07, 0x5c, 0x92, 0xb1, 0x27, 0x14, 0x9b, 0x1e, 0x7b, 0x53, 0xf3, 0x79, 0x39, 0x67, 0xf2,
- 0xc1, 0xb3, 0x50, 0xd4, 0x5d, 0xa5, 0x7f, 0x4b, 0x9e, 0x9a, 0x4d, 0xcd, 0xe7, 0xe4, 0x82, 0xee,
- 0xfa, 0x37, 0x8c, 0x73, 0xaf, 0xa6, 0xa0, 0x14, 0xbe, 0xe5, 0x97, 0x96, 0x21, 0x67, 0x58, 0x9a,
- 0x4a, 0x42, 0x8b, 0x7e, 0x62, 0x9a, 0x8f, 0xf9, 0x30, 0xb0, 0xb0, 0xca, 0xf4, 0x65, 0x1f, 0x39,
- 0xf3, 0x8f, 0x02, 0xe4, 0xb8, 0x58, 0x3a, 0x01, 0x19, 0x5b, 0xf5, 0xf6, 0x08, 0x5d, 0x76, 0x29,
- 0x25, 0x0a, 0x32, 0x79, 0xc6, 0x72, 0xd7, 0x56, 0x4d, 0x12, 0x02, 0x4c, 0x8e, 0x9f, 0xf1, 0xba,
- 0x1a, 0x48, 0x6d, 0x93, 0xe3, 0x87, 0xd5, 0xed, 0x22, 0xd3, 0x73, 0xf9, 0xba, 0x32, 0x79, 0x9d,
- 0x89, 0xa5, 0xc7, 0x61, 0xd2, 0x73, 0x54, 0xdd, 0x08, 0xe9, 0x66, 0x88, 0xae, 0xc8, 0x07, 0x7c,
- 0xe5, 0x2a, 0x9c, 0xe2, 0xbc, 0x6d, 0xe4, 0xa9, 0xda, 0x1e, 0x6a, 0xf7, 0x41, 0xa3, 0xe4, 0x9a,
- 0xe1, 0x24, 0x53, 0x58, 0x66, 0xe3, 0x1c, 0x3b, 0xf7, 0x7d, 0x01, 0x26, 0xf9, 0x81, 0xa9, 0xed,
- 0x3b, 0x6b, 0x0d, 0x40, 0x35, 0x4d, 0xcb, 0x0b, 0xba, 0x6b, 0x30, 0x94, 0x07, 0x70, 0x0b, 0x35,
- 0x1f, 0x24, 0x07, 0x08, 0x66, 0xba, 0x00, 0xfd, 0x91, 0x43, 0xdd, 0x76, 0x06, 0x0a, 0xec, 0x13,
- 0x0e, 0xf9, 0x0e, 0x48, 0x8f, 0xd8, 0x40, 0x45, 0xf8, 0x64, 0x25, 0x4d, 0x43, 0x76, 0x07, 0x75,
- 0x74, 0x93, 0x5d, 0xcc, 0xd2, 0x07, 0x7e, 0x11, 0x92, 0xf1, 0x2f, 0x42, 0x96, 0x3e, 0x05, 0x53,
- 0x9a, 0xd5, 0x8d, 0x9a, 0xbb, 0x24, 0x46, 0x8e, 0xf9, 0xee, 0xc7, 0x85, 0xe7, 0xa0, 0xdf, 0x62,
- 0xbe, 0x23, 0x08, 0x5f, 0x4c, 0xa5, 0x57, 0x36, 0x97, 0xbe, 0x92, 0x9a, 0x59, 0xa1, 0xd0, 0x4d,
- 0x3e, 0x53, 0x19, 0xed, 0x1a, 0x48, 0xc3, 0xd6, 0xc3, 0x97, 0x1e, 0x87, 0x0f, 0x77, 0x74, 0x6f,
- 0xaf, 0xb7, 0xb3, 0xa0, 0x59, 0xdd, 0xc5, 0x8e, 0xd5, 0xb1, 0xfa, 0x9f, 0x3e, 0xf1, 0x13, 0x79,
- 0x20, 0xff, 0xb1, 0xcf, 0x9f, 0x79, 0x5f, 0x3a, 0x13, 0xfb, 0xad, 0xb4, 0xba, 0x0e, 0x53, 0x4c,
- 0x59, 0x21, 0xdf, 0x5f, 0xe8, 0x29, 0x42, 0x3a, 0xf2, 0x0e, 0xab, 0xfc, 0xb5, 0x37, 0x48, 0xb9,
- 0x96, 0x27, 0x19, 0x14, 0x8f, 0xd1, 0x83, 0x46, 0x55, 0x86, 0x07, 0x42, 0x7c, 0x74, 0x6b, 0x22,
- 0x27, 0x86, 0xf1, 0xbb, 0x8c, 0x71, 0x2a, 0xc0, 0xd8, 0x62, 0xd0, 0x6a, 0x1d, 0xc6, 0x8f, 0xc3,
- 0xf5, 0xf7, 0x8c, 0xab, 0x88, 0x82, 0x24, 0x2b, 0x30, 0x41, 0x48, 0xb4, 0x9e, 0xeb, 0x59, 0x5d,
- 0x92, 0xf7, 0x8e, 0xa6, 0xf9, 0x87, 0x37, 0xe8, 0x5e, 0x29, 0x61, 0x58, 0xdd, 0x47, 0x55, 0xab,
- 0x40, 0x3e, 0x39, 0xb5, 0x91, 0x66, 0xc4, 0x30, 0xbc, 0xc6, 0x0c, 0xf1, 0xf5, 0xab, 0x9f, 0x84,
- 0x69, 0xfc, 0x3f, 0x49, 0x4b, 0x41, 0x4b, 0xe2, 0x2f, 0xbc, 0xca, 0xdf, 0x7f, 0x81, 0x6e, 0xc7,
- 0x29, 0x9f, 0x20, 0x60, 0x53, 0x60, 0x15, 0x3b, 0xc8, 0xf3, 0x90, 0xe3, 0x2a, 0xaa, 0x31, 0xcc,
- 0xbc, 0xc0, 0x8d, 0x41, 0xf9, 0x73, 0x6f, 0x85, 0x57, 0x71, 0x85, 0x22, 0x6b, 0x86, 0x51, 0xdd,
- 0x86, 0x93, 0x43, 0xa2, 0x22, 0x01, 0xe7, 0x4b, 0x8c, 0x73, 0x7a, 0x20, 0x32, 0x30, 0xed, 0x26,
- 0x70, 0xb9, 0xbf, 0x96, 0x09, 0x38, 0x7f, 0x8f, 0x71, 0x4a, 0x0c, 0xcb, 0x97, 0x14, 0x33, 0x3e,
- 0x0d, 0x93, 0xb7, 0x90, 0xb3, 0x63, 0xb9, 0xec, 0x96, 0x26, 0x01, 0xdd, 0xcb, 0x8c, 0x6e, 0x82,
- 0x01, 0xc9, 0xb5, 0x0d, 0xe6, 0xba, 0x02, 0xb9, 0x5d, 0x55, 0x43, 0x09, 0x28, 0x3e, 0xcf, 0x28,
- 0xc6, 0xb0, 0x3e, 0x86, 0xd6, 0xa0, 0xd8, 0xb1, 0x58, 0x65, 0x8a, 0x87, 0xbf, 0xc2, 0xe0, 0x05,
- 0x8e, 0x61, 0x14, 0xb6, 0x65, 0xf7, 0x0c, 0x5c, 0xb6, 0xe2, 0x29, 0x7e, 0x9f, 0x53, 0x70, 0x0c,
- 0xa3, 0x38, 0x86, 0x5b, 0xff, 0x80, 0x53, 0xb8, 0x01, 0x7f, 0x3e, 0x05, 0x05, 0xcb, 0x34, 0xf6,
- 0x2d, 0x33, 0x89, 0x11, 0x5f, 0x60, 0x0c, 0xc0, 0x20, 0x98, 0xe0, 0x2a, 0xe4, 0x93, 0x2e, 0xc4,
- 0x1f, 0xbd, 0xc5, 0xb7, 0x07, 0x5f, 0x81, 0x15, 0x98, 0xe0, 0x09, 0x4a, 0xb7, 0xcc, 0x04, 0x14,
- 0x5f, 0x62, 0x14, 0xa5, 0x00, 0x8c, 0x4d, 0xc3, 0x43, 0xae, 0xd7, 0x41, 0x49, 0x48, 0x5e, 0xe5,
- 0xd3, 0x60, 0x10, 0xe6, 0xca, 0x1d, 0x64, 0x6a, 0x7b, 0xc9, 0x18, 0xbe, 0xcc, 0x5d, 0xc9, 0x31,
- 0x98, 0xa2, 0x0e, 0xe3, 0x5d, 0xd5, 0x71, 0xf7, 0x54, 0x23, 0xd1, 0x72, 0xfc, 0x31, 0xe3, 0x28,
- 0xfa, 0x20, 0xe6, 0x91, 0x9e, 0x79, 0x1c, 0x9a, 0xaf, 0x70, 0x8f, 0x04, 0x60, 0x6c, 0xeb, 0xb9,
- 0x1e, 0xb9, 0xd2, 0x3a, 0x0e, 0xdb, 0x9f, 0xf0, 0xad, 0x47, 0xb1, 0x6b, 0x41, 0xc6, 0xab, 0x90,
- 0x77, 0xf5, 0x3b, 0x89, 0x68, 0xfe, 0x94, 0xaf, 0x34, 0x01, 0x60, 0xf0, 0x75, 0x38, 0x35, 0xb4,
- 0x4c, 0x24, 0x20, 0xfb, 0x33, 0x46, 0x76, 0x62, 0x48, 0xa9, 0x60, 0x29, 0xe1, 0xb8, 0x94, 0x7f,
- 0xce, 0x53, 0x02, 0x8a, 0x70, 0x6d, 0xe2, 0xb3, 0x82, 0xab, 0xee, 0x1e, 0xcf, 0x6b, 0x7f, 0xc1,
- 0xbd, 0x46, 0xb1, 0x21, 0xaf, 0x6d, 0xc1, 0x09, 0xc6, 0x78, 0xbc, 0x75, 0xfd, 0x2a, 0x4f, 0xac,
- 0x14, 0xbd, 0x1d, 0x5e, 0xdd, 0x4f, 0xc1, 0x8c, 0xef, 0x4e, 0xde, 0x94, 0xba, 0x4a, 0x57, 0xb5,
- 0x13, 0x30, 0x7f, 0x8d, 0x31, 0xf3, 0x8c, 0xef, 0x77, 0xb5, 0xee, 0x9a, 0x6a, 0x63, 0xf2, 0x67,
- 0xa1, 0xcc, 0xc9, 0x7b, 0xa6, 0x83, 0x34, 0xab, 0x63, 0xea, 0x77, 0x50, 0x3b, 0x01, 0xf5, 0x5f,
- 0x46, 0x96, 0x6a, 0x3b, 0x00, 0xc7, 0xcc, 0x4d, 0x10, 0xfd, 0x5e, 0x45, 0xd1, 0xbb, 0xb6, 0xe5,
- 0x78, 0x31, 0x8c, 0x5f, 0xe7, 0x2b, 0xe5, 0xe3, 0x9a, 0x04, 0x56, 0x6d, 0x40, 0x89, 0x3c, 0x26,
- 0x0d, 0xc9, 0xbf, 0x62, 0x44, 0xe3, 0x7d, 0x14, 0x4b, 0x1c, 0x9a, 0xd5, 0xb5, 0x55, 0x27, 0x49,
- 0xfe, 0xfb, 0x6b, 0x9e, 0x38, 0x18, 0x84, 0x25, 0x0e, 0x6f, 0xdf, 0x46, 0xb8, 0xda, 0x27, 0x60,
- 0xf8, 0x06, 0x4f, 0x1c, 0x1c, 0xc3, 0x28, 0x78, 0xc3, 0x90, 0x80, 0xe2, 0x6f, 0x38, 0x05, 0xc7,
- 0x60, 0x8a, 0x4f, 0xf4, 0x0b, 0xad, 0x83, 0x3a, 0xba, 0xeb, 0x39, 0xb4, 0x15, 0x3e, 0x9a, 0xea,
- 0x9b, 0x6f, 0x85, 0x9b, 0x30, 0x39, 0x00, 0xc5, 0x99, 0x88, 0x5d, 0xa1, 0x92, 0x93, 0x52, 0xbc,
- 0x61, 0xdf, 0xe2, 0x99, 0x28, 0x00, 0xc3, 0xb6, 0x05, 0x3a, 0x44, 0xec, 0x76, 0x0d, 0x9f, 0x0f,
- 0x12, 0xd0, 0x7d, 0x3b, 0x62, 0x5c, 0x8b, 0x63, 0x31, 0x67, 0xa0, 0xff, 0xe9, 0x99, 0x37, 0xd1,
- 0x7e, 0xa2, 0xe8, 0xfc, 0xdb, 0x48, 0xff, 0xb3, 0x4d, 0x91, 0x34, 0x87, 0x4c, 0x44, 0xfa, 0x29,
- 0x29, 0xee, 0xc7, 0x3a, 0xe5, 0x9f, 0xbf, 0xcf, 0xe6, 0x1b, 0x6e, 0xa7, 0xaa, 0xab, 0x38, 0xc8,
- 0xc3, 0x4d, 0x4f, 0x3c, 0xd9, 0x0b, 0xf7, 0xfd, 0x38, 0x0f, 0xf5, 0x3c, 0xd5, 0x6b, 0x30, 0x1e,
- 0x6a, 0x78, 0xe2, 0xa9, 0x3e, 0xc3, 0xa8, 0x8a, 0xc1, 0x7e, 0xa7, 0x7a, 0x11, 0x32, 0xb8, 0x79,
- 0x89, 0x87, 0xff, 0x02, 0x83, 0x13, 0xf5, 0xea, 0x47, 0x21, 0xc7, 0x9b, 0x96, 0x78, 0xe8, 0x2f,
- 0x32, 0xa8, 0x0f, 0xc1, 0x70, 0xde, 0xb0, 0xc4, 0xc3, 0x7f, 0x89, 0xc3, 0x39, 0x04, 0xc3, 0x93,
- 0xbb, 0xf0, 0x3b, 0xbf, 0x92, 0x61, 0x45, 0x87, 0xfb, 0xee, 0x2a, 0x8c, 0xb1, 0x4e, 0x25, 0x1e,
- 0xfd, 0x22, 0x7b, 0x39, 0x47, 0x54, 0x9f, 0x84, 0x6c, 0x42, 0x87, 0xff, 0x2a, 0x83, 0x52, 0xfd,
- 0x6a, 0x1d, 0x0a, 0x81, 0xee, 0x24, 0x1e, 0xfe, 0x6b, 0x0c, 0x1e, 0x44, 0x61, 0xd3, 0x59, 0x77,
- 0x12, 0x4f, 0xf0, 0xeb, 0xdc, 0x74, 0x86, 0xc0, 0x6e, 0xe3, 0x8d, 0x49, 0x3c, 0xfa, 0x37, 0xb8,
- 0xd7, 0x39, 0xa4, 0xfa, 0x14, 0xe4, 0xfd, 0x62, 0x13, 0x8f, 0xff, 0x4d, 0x86, 0xef, 0x63, 0xb0,
- 0x07, 0x02, 0xc5, 0x2e, 0x9e, 0xe2, 0xb7, 0xb8, 0x07, 0x02, 0x28, 0xbc, 0x8d, 0xa2, 0x0d, 0x4c,
- 0x3c, 0xd3, 0x6f, 0xf3, 0x6d, 0x14, 0xe9, 0x5f, 0xf0, 0x6a, 0x92, 0x9c, 0x1f, 0x4f, 0xf1, 0x3b,
- 0x7c, 0x35, 0x89, 0x3e, 0x36, 0x23, 0xda, 0x11, 0xc4, 0x73, 0xfc, 0x2e, 0x37, 0x23, 0xd2, 0x10,
- 0x54, 0x37, 0x41, 0x1a, 0xec, 0x06, 0xe2, 0xf9, 0x3e, 0xcb, 0xf8, 0x26, 0x07, 0x9a, 0x81, 0xea,
- 0x33, 0x70, 0x62, 0x78, 0x27, 0x10, 0xcf, 0xfa, 0xb9, 0xfb, 0x91, 0xb3, 0x5b, 0xb0, 0x11, 0xa8,
- 0x6e, 0xf5, 0x4b, 0x4a, 0xb0, 0x0b, 0x88, 0xa7, 0x7d, 0xe9, 0x7e, 0x38, 0x71, 0x07, 0x9b, 0x80,
- 0x6a, 0x0d, 0xa0, 0x5f, 0x80, 0xe3, 0xb9, 0x5e, 0x66, 0x5c, 0x01, 0x10, 0xde, 0x1a, 0xac, 0xfe,
- 0xc6, 0xe3, 0x3f, 0xcf, 0xb7, 0x06, 0x43, 0xe0, 0xad, 0xc1, 0x4b, 0x6f, 0x3c, 0xfa, 0x15, 0xbe,
- 0x35, 0x38, 0x04, 0x47, 0x76, 0xa0, 0xba, 0xc5, 0x33, 0x7c, 0x81, 0x47, 0x76, 0x00, 0x55, 0x5d,
- 0x87, 0xc9, 0x81, 0x82, 0x18, 0x4f, 0xf5, 0x45, 0x46, 0x25, 0x46, 0xeb, 0x61, 0xb0, 0x78, 0xb1,
- 0x62, 0x18, 0xcf, 0xf6, 0x87, 0x91, 0xe2, 0xc5, 0x6a, 0x61, 0xf5, 0x2a, 0xe4, 0xcc, 0x9e, 0x61,
- 0xe0, 0xcd, 0x23, 0x1d, 0xfd, 0x03, 0xbb, 0xf2, 0xbf, 0xbf, 0xcb, 0xbc, 0xc3, 0x01, 0xd5, 0x8b,
- 0x90, 0x45, 0xdd, 0x1d, 0xd4, 0x8e, 0x43, 0xfe, 0xc7, 0xbb, 0x3c, 0x61, 0x62, 0xed, 0xea, 0x53,
- 0x00, 0xf4, 0x6a, 0x84, 0x7c, 0xf6, 0x8b, 0xc1, 0xfe, 0xe7, 0xbb, 0xec, 0xa7, 0x2f, 0x7d, 0x48,
- 0x9f, 0x80, 0xfe, 0x90, 0xe6, 0x68, 0x82, 0xb7, 0xc2, 0x04, 0x64, 0x45, 0xae, 0xc0, 0xd8, 0x0d,
- 0xd7, 0x32, 0x3d, 0xb5, 0x13, 0x87, 0xfe, 0x2f, 0x86, 0xe6, 0xfa, 0xd8, 0x61, 0x5d, 0xcb, 0x41,
- 0x9e, 0xda, 0x71, 0xe3, 0xb0, 0xff, 0xcd, 0xb0, 0x3e, 0x00, 0x83, 0x35, 0xd5, 0xf5, 0x92, 0xcc,
- 0xfb, 0x87, 0x1c, 0xcc, 0x01, 0xd8, 0x68, 0xfc, 0xff, 0x4d, 0xb4, 0x1f, 0x87, 0x7d, 0x9b, 0x1b,
- 0xcd, 0xf4, 0xab, 0x1f, 0x85, 0x3c, 0xfe, 0x97, 0xfe, 0x9e, 0x2d, 0x06, 0xfc, 0x3f, 0x0c, 0xdc,
- 0x47, 0xe0, 0x37, 0xbb, 0x5e, 0xdb, 0xd3, 0xe3, 0x9d, 0xfd, 0xbf, 0x6c, 0xa5, 0xb9, 0x7e, 0xb5,
- 0x06, 0x05, 0xd7, 0x6b, 0xb7, 0x7b, 0xac, 0x3f, 0x8d, 0x81, 0xff, 0xdf, 0xbb, 0xfe, 0x95, 0x85,
- 0x8f, 0xc1, 0xab, 0x7d, 0xfb, 0xa6, 0x67, 0x5b, 0xe4, 0x33, 0x47, 0x1c, 0xc3, 0x7d, 0xc6, 0x10,
- 0x80, 0x2c, 0x35, 0x86, 0x5f, 0xdf, 0xc2, 0x8a, 0xb5, 0x62, 0xd1, 0x8b, 0xdb, 0xe7, 0xe6, 0xe2,
- 0x6f, 0x60, 0xe1, 0xc5, 0x2c, 0x9c, 0xd6, 0xac, 0xee, 0x8e, 0xe5, 0x2e, 0xee, 0x58, 0xde, 0xde,
- 0xa2, 0xef, 0x1f, 0x7e, 0x2d, 0xeb, 0x0b, 0x66, 0x8e, 0x77, 0xa1, 0x3b, 0xf7, 0x77, 0x69, 0xc8,
- 0xd5, 0x55, 0xd7, 0x53, 0x6f, 0xab, 0xfb, 0x92, 0x0d, 0x53, 0xf8, 0xff, 0x35, 0xd5, 0x26, 0xd7,
- 0x83, 0x6c, 0x1f, 0xb3, 0x3b, 0xf3, 0x0f, 0x2d, 0xf4, 0xdf, 0xca, 0x11, 0x0b, 0x43, 0xd4, 0xc9,
- 0x6f, 0x0d, 0x96, 0xc4, 0xd7, 0xfe, 0xe5, 0xcc, 0xc8, 0x2f, 0xff, 0xeb, 0x99, 0xdc, 0xda, 0xfe,
- 0x33, 0xba, 0xe1, 0x5a, 0xa6, 0x3c, 0x8c, 0x5a, 0xfa, 0x8c, 0x00, 0xa7, 0x87, 0xc8, 0xd7, 0xd9,
- 0x36, 0x67, 0x5f, 0x9e, 0x2e, 0x24, 0x7c, 0x35, 0x87, 0x51, 0x13, 0x8a, 0xa1, 0xd7, 0x1f, 0xf5,
- 0x9a, 0x99, 0xeb, 0x50, 0x3e, 0x6c, 0x26, 0x92, 0x08, 0xe9, 0x9b, 0x68, 0x9f, 0xfd, 0x60, 0x11,
- 0xff, 0x2b, 0x9d, 0xeb, 0xff, 0xac, 0x53, 0x98, 0x2f, 0x9c, 0x9f, 0x0c, 0x58, 0xc7, 0x5e, 0x46,
- 0xc7, 0xab, 0xa9, 0xcb, 0xc2, 0x8c, 0x0a, 0xb3, 0x71, 0x96, 0xfe, 0x98, 0xaf, 0x98, 0xab, 0xc0,
- 0x28, 0x15, 0x4a, 0xd3, 0x90, 0x6d, 0x9a, 0xde, 0xa5, 0x0b, 0x84, 0x2a, 0x2d, 0xd3, 0x87, 0xa5,
- 0xd5, 0xd7, 0xee, 0x55, 0x46, 0xbe, 0x77, 0xaf, 0x32, 0xf2, 0x4f, 0xf7, 0x2a, 0x23, 0xaf, 0xdf,
- 0xab, 0x08, 0x6f, 0xde, 0xab, 0x08, 0x6f, 0xdf, 0xab, 0x08, 0xef, 0xdc, 0xab, 0x08, 0x77, 0x0f,
- 0x2a, 0xc2, 0x97, 0x0f, 0x2a, 0xc2, 0x57, 0x0f, 0x2a, 0xc2, 0x37, 0x0f, 0x2a, 0xc2, 0x77, 0x0e,
- 0x2a, 0xc2, 0x6b, 0x07, 0x15, 0xe1, 0x7b, 0x07, 0x15, 0xe1, 0xf5, 0x83, 0x8a, 0xf0, 0xe6, 0x41,
- 0x65, 0xe4, 0xed, 0x83, 0x8a, 0xf0, 0xce, 0x41, 0x65, 0xe4, 0xee, 0x0f, 0x2a, 0x23, 0xff, 0x1f,
- 0x00, 0x00, 0xff, 0xff, 0xfc, 0xe4, 0xa0, 0x05, 0x27, 0x35, 0x00, 0x00,
+ // 4046 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0x1b, 0xd7,
+ 0x79, 0xe6, 0xe2, 0x42, 0x02, 0x3f, 0x40, 0x70, 0xb9, 0xa4, 0x25, 0x88, 0x4a, 0x20, 0x8a, 0xb6,
+ 0x23, 0xfa, 0x46, 0x66, 0x64, 0x49, 0x96, 0xa1, 0x26, 0x2e, 0x08, 0x42, 0x0c, 0x5c, 0xde, 0xb2,
+ 0x20, 0x63, 0xcb, 0x99, 0xce, 0xce, 0x72, 0x71, 0x08, 0xae, 0xb4, 0xd8, 0xdd, 0xec, 0x2e, 0x24,
+ 0x53, 0xd3, 0x07, 0x75, 0x9c, 0xb6, 0xe3, 0xde, 0x6f, 0x33, 0x4d, 0x5c, 0xc7, 0x6d, 0xd2, 0x69,
+ 0x9c, 0xa6, 0xb7, 0xa4, 0x97, 0x34, 0x49, 0x5f, 0xd2, 0x87, 0xb4, 0x7a, 0xea, 0x24, 0x6f, 0x7d,
+ 0xe8, 0xb4, 0x16, 0xe3, 0x99, 0xba, 0xad, 0xdb, 0xba, 0xad, 0x1e, 0x3c, 0xe3, 0x97, 0xce, 0xb9,
+ 0x2d, 0x76, 0x17, 0x20, 0x77, 0x99, 0x8e, 0x9d, 0x27, 0xf2, 0xfc, 0xe7, 0xff, 0xbe, 0xf3, 0x9f,
+ 0xff, 0xfc, 0xe7, 0xfc, 0xff, 0x39, 0x0b, 0xb8, 0x5b, 0x85, 0xd9, 0x8e, 0x65, 0x75, 0x0c, 0xb4,
+ 0x68, 0x3b, 0x96, 0x67, 0xed, 0xf4, 0x76, 0x17, 0xdb, 0xc8, 0xd5, 0x1c, 0xdd, 0xf6, 0x2c, 0x67,
+ 0x81, 0xc8, 0xa4, 0x09, 0xaa, 0xb1, 0xc0, 0x35, 0xe6, 0xd6, 0x60, 0xf2, 0xaa, 0x6e, 0xa0, 0x65,
+ 0x5f, 0xb1, 0x85, 0x3c, 0xe9, 0x32, 0x64, 0x76, 0x75, 0x03, 0x95, 0x85, 0xd9, 0xf4, 0x7c, 0xe1,
+ 0xfc, 0x43, 0x0b, 0x11, 0xd0, 0x42, 0x18, 0xb1, 0x89, 0xc5, 0x32, 0x41, 0xcc, 0xbd, 0x99, 0x81,
+ 0xa9, 0x21, 0xbd, 0x92, 0x04, 0x19, 0x53, 0xed, 0x62, 0x46, 0x61, 0x3e, 0x2f, 0x93, 0xff, 0xa5,
+ 0x32, 0x8c, 0xd9, 0xaa, 0x76, 0x43, 0xed, 0xa0, 0x72, 0x8a, 0x88, 0x79, 0x53, 0xaa, 0x00, 0xb4,
+ 0x91, 0x8d, 0xcc, 0x36, 0x32, 0xb5, 0xfd, 0x72, 0x7a, 0x36, 0x3d, 0x9f, 0x97, 0x03, 0x12, 0xe9,
+ 0x31, 0x98, 0xb4, 0x7b, 0x3b, 0x86, 0xae, 0x29, 0x01, 0x35, 0x98, 0x4d, 0xcf, 0x67, 0x65, 0x91,
+ 0x76, 0x2c, 0xf7, 0x95, 0xcf, 0xc1, 0xc4, 0x2d, 0xa4, 0xde, 0x08, 0xaa, 0x16, 0x88, 0x6a, 0x09,
+ 0x8b, 0x03, 0x8a, 0x75, 0x28, 0x76, 0x91, 0xeb, 0xaa, 0x1d, 0xa4, 0x78, 0xfb, 0x36, 0x2a, 0x67,
+ 0xc8, 0xec, 0x67, 0x07, 0x66, 0x1f, 0x9d, 0x79, 0x81, 0xa1, 0xb6, 0xf6, 0x6d, 0x24, 0xd5, 0x20,
+ 0x8f, 0xcc, 0x5e, 0x97, 0x32, 0x64, 0x0f, 0xf1, 0x5f, 0xc3, 0xec, 0x75, 0xa3, 0x2c, 0x39, 0x0c,
+ 0x63, 0x14, 0x63, 0x2e, 0x72, 0x6e, 0xea, 0x1a, 0x2a, 0x8f, 0x12, 0x82, 0x73, 0x03, 0x04, 0x2d,
+ 0xda, 0x1f, 0xe5, 0xe0, 0x38, 0xa9, 0x0e, 0x79, 0xf4, 0xa2, 0x87, 0x4c, 0x57, 0xb7, 0xcc, 0xf2,
+ 0x18, 0x21, 0x79, 0x78, 0xc8, 0x2a, 0x22, 0xa3, 0x1d, 0xa5, 0xe8, 0xe3, 0xa4, 0x4b, 0x30, 0x66,
+ 0xd9, 0x9e, 0x6e, 0x99, 0x6e, 0x39, 0x37, 0x2b, 0xcc, 0x17, 0xce, 0x7f, 0x68, 0x68, 0x20, 0x6c,
+ 0x50, 0x1d, 0x99, 0x2b, 0x4b, 0x4d, 0x10, 0x5d, 0xab, 0xe7, 0x68, 0x48, 0xd1, 0xac, 0x36, 0x52,
+ 0x74, 0x73, 0xd7, 0x2a, 0xe7, 0x09, 0xc1, 0x99, 0xc1, 0x89, 0x10, 0xc5, 0xba, 0xd5, 0x46, 0x4d,
+ 0x73, 0xd7, 0x92, 0x4b, 0x6e, 0xa8, 0x2d, 0x9d, 0x80, 0x51, 0x77, 0xdf, 0xf4, 0xd4, 0x17, 0xcb,
+ 0x45, 0x12, 0x21, 0xac, 0x35, 0xf7, 0xad, 0x51, 0x98, 0x48, 0x12, 0x62, 0x57, 0x20, 0xbb, 0x8b,
+ 0x67, 0x59, 0x4e, 0x1d, 0xc7, 0x07, 0x14, 0x13, 0x76, 0xe2, 0xe8, 0x0f, 0xe9, 0xc4, 0x1a, 0x14,
+ 0x4c, 0xe4, 0x7a, 0xa8, 0x4d, 0x23, 0x22, 0x9d, 0x30, 0xa6, 0x80, 0x82, 0x06, 0x43, 0x2a, 0xf3,
+ 0x43, 0x85, 0xd4, 0xf3, 0x30, 0xe1, 0x9b, 0xa4, 0x38, 0xaa, 0xd9, 0xe1, 0xb1, 0xb9, 0x18, 0x67,
+ 0xc9, 0x42, 0x83, 0xe3, 0x64, 0x0c, 0x93, 0x4b, 0x28, 0xd4, 0x96, 0x96, 0x01, 0x2c, 0x13, 0x59,
+ 0xbb, 0x4a, 0x1b, 0x69, 0x46, 0x39, 0x77, 0x88, 0x97, 0x36, 0xb0, 0xca, 0x80, 0x97, 0x2c, 0x2a,
+ 0xd5, 0x0c, 0xe9, 0xe9, 0x7e, 0xa8, 0x8d, 0x1d, 0x12, 0x29, 0x6b, 0x74, 0x93, 0x0d, 0x44, 0xdb,
+ 0x36, 0x94, 0x1c, 0x84, 0xe3, 0x1e, 0xb5, 0xd9, 0xcc, 0xf2, 0xc4, 0x88, 0x85, 0xd8, 0x99, 0xc9,
+ 0x0c, 0x46, 0x27, 0x36, 0xee, 0x04, 0x9b, 0xd2, 0x83, 0xe0, 0x0b, 0x14, 0x12, 0x56, 0x40, 0x4e,
+ 0xa1, 0x22, 0x17, 0xae, 0xab, 0x5d, 0x34, 0x73, 0x1b, 0x4a, 0x61, 0xf7, 0x48, 0xd3, 0x90, 0x75,
+ 0x3d, 0xd5, 0xf1, 0x48, 0x14, 0x66, 0x65, 0xda, 0x90, 0x44, 0x48, 0x23, 0xb3, 0x4d, 0x4e, 0xb9,
+ 0xac, 0x8c, 0xff, 0x95, 0x7e, 0xbc, 0x3f, 0xe1, 0x34, 0x99, 0xf0, 0x47, 0x06, 0x57, 0x34, 0xc4,
+ 0x1c, 0x9d, 0xf7, 0xcc, 0x53, 0x30, 0x1e, 0x9a, 0x40, 0xd2, 0xa1, 0xe7, 0x7e, 0x0a, 0x1e, 0x18,
+ 0x4a, 0x2d, 0x3d, 0x0f, 0xd3, 0x3d, 0x53, 0x37, 0x3d, 0xe4, 0xd8, 0x0e, 0xc2, 0x11, 0x4b, 0x87,
+ 0x2a, 0xff, 0xcb, 0xd8, 0x21, 0x31, 0xb7, 0x1d, 0xd4, 0xa6, 0x2c, 0xf2, 0x54, 0x6f, 0x50, 0xf8,
+ 0x68, 0x3e, 0xf7, 0xd6, 0x98, 0x78, 0xe7, 0xce, 0x9d, 0x3b, 0xa9, 0xb9, 0xcf, 0x8d, 0xc2, 0xf4,
+ 0xb0, 0x3d, 0x33, 0x74, 0xfb, 0x9e, 0x80, 0x51, 0xb3, 0xd7, 0xdd, 0x41, 0x0e, 0x71, 0x52, 0x56,
+ 0x66, 0x2d, 0xa9, 0x06, 0x59, 0x43, 0xdd, 0x41, 0x46, 0x39, 0x33, 0x2b, 0xcc, 0x97, 0xce, 0x3f,
+ 0x96, 0x68, 0x57, 0x2e, 0xac, 0x62, 0x88, 0x4c, 0x91, 0xd2, 0xc7, 0x21, 0xc3, 0x8e, 0x68, 0xcc,
+ 0xf0, 0x68, 0x32, 0x06, 0xbc, 0x97, 0x64, 0x82, 0x93, 0x4e, 0x43, 0x1e, 0xff, 0xa5, 0xb1, 0x31,
+ 0x4a, 0x6c, 0xce, 0x61, 0x01, 0x8e, 0x0b, 0x69, 0x06, 0x72, 0x64, 0x9b, 0xb4, 0x11, 0x4f, 0x6d,
+ 0x7e, 0x1b, 0x07, 0x56, 0x1b, 0xed, 0xaa, 0x3d, 0xc3, 0x53, 0x6e, 0xaa, 0x46, 0x0f, 0x91, 0x80,
+ 0xcf, 0xcb, 0x45, 0x26, 0xfc, 0x14, 0x96, 0x49, 0x67, 0xa0, 0x40, 0x77, 0x95, 0x6e, 0xb6, 0xd1,
+ 0x8b, 0xe4, 0xf4, 0xcc, 0xca, 0x74, 0xa3, 0x35, 0xb1, 0x04, 0x0f, 0x7f, 0xdd, 0xb5, 0x4c, 0x1e,
+ 0x9a, 0x64, 0x08, 0x2c, 0x20, 0xc3, 0x3f, 0x15, 0x3d, 0xb8, 0x3f, 0x3c, 0x7c, 0x7a, 0xd1, 0x98,
+ 0x9a, 0xfb, 0x46, 0x0a, 0x32, 0xe4, 0xbc, 0x98, 0x80, 0xc2, 0xd6, 0xb5, 0xcd, 0x86, 0xb2, 0xbc,
+ 0xb1, 0xbd, 0xb4, 0xda, 0x10, 0x05, 0xa9, 0x04, 0x40, 0x04, 0x57, 0x57, 0x37, 0x6a, 0x5b, 0x62,
+ 0xca, 0x6f, 0x37, 0xd7, 0xb7, 0x2e, 0x5d, 0x10, 0xd3, 0x3e, 0x60, 0x9b, 0x0a, 0x32, 0x41, 0x85,
+ 0x27, 0xcf, 0x8b, 0x59, 0x49, 0x84, 0x22, 0x25, 0x68, 0x3e, 0xdf, 0x58, 0xbe, 0x74, 0x41, 0x1c,
+ 0x0d, 0x4b, 0x9e, 0x3c, 0x2f, 0x8e, 0x49, 0xe3, 0x90, 0x27, 0x92, 0xa5, 0x8d, 0x8d, 0x55, 0x31,
+ 0xe7, 0x73, 0xb6, 0xb6, 0xe4, 0xe6, 0xfa, 0x8a, 0x98, 0xf7, 0x39, 0x57, 0xe4, 0x8d, 0xed, 0x4d,
+ 0x11, 0x7c, 0x86, 0xb5, 0x46, 0xab, 0x55, 0x5b, 0x69, 0x88, 0x05, 0x5f, 0x63, 0xe9, 0xda, 0x56,
+ 0xa3, 0x25, 0x16, 0x43, 0x66, 0x3d, 0x79, 0x5e, 0x1c, 0xf7, 0x87, 0x68, 0xac, 0x6f, 0xaf, 0x89,
+ 0x25, 0x69, 0x12, 0xc6, 0xe9, 0x10, 0xdc, 0x88, 0x89, 0x88, 0xe8, 0xd2, 0x05, 0x51, 0xec, 0x1b,
+ 0x42, 0x59, 0x26, 0x43, 0x82, 0x4b, 0x17, 0x44, 0x69, 0xae, 0x0e, 0x59, 0x12, 0x5d, 0x92, 0x04,
+ 0xa5, 0xd5, 0xda, 0x52, 0x63, 0x55, 0xd9, 0xd8, 0xdc, 0x6a, 0x6e, 0xac, 0xd7, 0x56, 0x45, 0xa1,
+ 0x2f, 0x93, 0x1b, 0x9f, 0xdc, 0x6e, 0xca, 0x8d, 0x65, 0x31, 0x15, 0x94, 0x6d, 0x36, 0x6a, 0x5b,
+ 0x8d, 0x65, 0x31, 0x3d, 0xa7, 0xc1, 0xf4, 0xb0, 0x73, 0x72, 0xe8, 0xce, 0x08, 0x2c, 0x71, 0xea,
+ 0x90, 0x25, 0x26, 0x5c, 0x03, 0x4b, 0xfc, 0x83, 0x14, 0x4c, 0x0d, 0xc9, 0x15, 0x43, 0x07, 0x79,
+ 0x06, 0xb2, 0x34, 0x44, 0x69, 0xf6, 0x7c, 0x64, 0x68, 0xd2, 0x21, 0x01, 0x3b, 0x90, 0x41, 0x09,
+ 0x2e, 0x58, 0x41, 0xa4, 0x0f, 0xa9, 0x20, 0x30, 0xc5, 0xc0, 0x99, 0xfe, 0x93, 0x03, 0x67, 0x3a,
+ 0x4d, 0x7b, 0x97, 0x92, 0xa4, 0x3d, 0x22, 0x3b, 0xde, 0xd9, 0x9e, 0x1d, 0x72, 0xb6, 0x5f, 0x81,
+ 0xc9, 0x01, 0xa2, 0xc4, 0x67, 0xec, 0x4b, 0x02, 0x94, 0x0f, 0x73, 0x4e, 0xcc, 0x49, 0x97, 0x0a,
+ 0x9d, 0x74, 0x57, 0xa2, 0x1e, 0x3c, 0x7b, 0xf8, 0x22, 0x0c, 0xac, 0xf5, 0xeb, 0x02, 0x9c, 0x18,
+ 0x5e, 0x29, 0x0e, 0xb5, 0xe1, 0xe3, 0x30, 0xda, 0x45, 0xde, 0x9e, 0xc5, 0xab, 0xa5, 0x8f, 0x0c,
+ 0xc9, 0xc1, 0xb8, 0x3b, 0xba, 0xd8, 0x0c, 0x15, 0x4c, 0xe2, 0xe9, 0xc3, 0xca, 0x3d, 0x6a, 0xcd,
+ 0x80, 0xa5, 0x2f, 0xa7, 0xe0, 0x81, 0xa1, 0xe4, 0x43, 0x0d, 0xfd, 0x30, 0x80, 0x6e, 0xda, 0x3d,
+ 0x8f, 0x56, 0x44, 0xf4, 0x80, 0xcd, 0x13, 0x09, 0x39, 0xbc, 0xf0, 0xe1, 0xd9, 0xf3, 0xfc, 0xfe,
+ 0x34, 0xe9, 0x07, 0x2a, 0x22, 0x0a, 0x97, 0xfb, 0x86, 0x66, 0x88, 0xa1, 0x95, 0x43, 0x66, 0x3a,
+ 0x10, 0x98, 0x1f, 0x05, 0x51, 0x33, 0x74, 0x64, 0x7a, 0x8a, 0xeb, 0x39, 0x48, 0xed, 0xea, 0x66,
+ 0x87, 0x64, 0x90, 0x5c, 0x35, 0xbb, 0xab, 0x1a, 0x2e, 0x92, 0x27, 0x68, 0x77, 0x8b, 0xf7, 0x62,
+ 0x04, 0x09, 0x20, 0x27, 0x80, 0x18, 0x0d, 0x21, 0x68, 0xb7, 0x8f, 0x98, 0xfb, 0xc5, 0x3c, 0x14,
+ 0x02, 0x75, 0xb5, 0x74, 0x16, 0x8a, 0xd7, 0xd5, 0x9b, 0xaa, 0xc2, 0xef, 0x4a, 0xd4, 0x13, 0x05,
+ 0x2c, 0xdb, 0x64, 0xf7, 0xa5, 0x8f, 0xc2, 0x34, 0x51, 0xb1, 0x7a, 0x1e, 0x72, 0x14, 0xcd, 0x50,
+ 0x5d, 0x97, 0x38, 0x2d, 0x47, 0x54, 0x25, 0xdc, 0xb7, 0x81, 0xbb, 0xea, 0xbc, 0x47, 0xba, 0x08,
+ 0x53, 0x04, 0xd1, 0xed, 0x19, 0x9e, 0x6e, 0x1b, 0x48, 0xc1, 0xb7, 0x37, 0x97, 0x64, 0x12, 0xdf,
+ 0xb2, 0x49, 0xac, 0xb1, 0xc6, 0x14, 0xb0, 0x45, 0xae, 0xb4, 0x0c, 0x1f, 0x26, 0xb0, 0x0e, 0x32,
+ 0x91, 0xa3, 0x7a, 0x48, 0x41, 0x9f, 0xe9, 0xa9, 0x86, 0xab, 0xa8, 0x66, 0x5b, 0xd9, 0x53, 0xdd,
+ 0xbd, 0xf2, 0x34, 0x26, 0x58, 0x4a, 0x95, 0x05, 0xf9, 0x14, 0x56, 0x5c, 0x61, 0x7a, 0x0d, 0xa2,
+ 0x56, 0x33, 0xdb, 0x9f, 0x50, 0xdd, 0x3d, 0xa9, 0x0a, 0x27, 0x08, 0x8b, 0xeb, 0x39, 0xba, 0xd9,
+ 0x51, 0xb4, 0x3d, 0xa4, 0xdd, 0x50, 0x7a, 0xde, 0xee, 0xe5, 0xf2, 0xe9, 0xe0, 0xf8, 0xc4, 0xc2,
+ 0x16, 0xd1, 0xa9, 0x63, 0x95, 0x6d, 0x6f, 0xf7, 0xb2, 0xd4, 0x82, 0x22, 0x5e, 0x8c, 0xae, 0x7e,
+ 0x1b, 0x29, 0xbb, 0x96, 0x43, 0x52, 0x63, 0x69, 0xc8, 0xd1, 0x14, 0xf0, 0xe0, 0xc2, 0x06, 0x03,
+ 0xac, 0x59, 0x6d, 0x54, 0xcd, 0xb6, 0x36, 0x1b, 0x8d, 0x65, 0xb9, 0xc0, 0x59, 0xae, 0x5a, 0x0e,
+ 0x0e, 0xa8, 0x8e, 0xe5, 0x3b, 0xb8, 0x40, 0x03, 0xaa, 0x63, 0x71, 0xf7, 0x5e, 0x84, 0x29, 0x4d,
+ 0xa3, 0x73, 0xd6, 0x35, 0x85, 0xdd, 0xb1, 0xdc, 0xb2, 0x18, 0x72, 0x96, 0xa6, 0xad, 0x50, 0x05,
+ 0x16, 0xe3, 0xae, 0xf4, 0x34, 0x3c, 0xd0, 0x77, 0x56, 0x10, 0x38, 0x39, 0x30, 0xcb, 0x28, 0xf4,
+ 0x22, 0x4c, 0xd9, 0xfb, 0x83, 0x40, 0x29, 0x34, 0xa2, 0xbd, 0x1f, 0x85, 0x3d, 0x05, 0xd3, 0xf6,
+ 0x9e, 0x3d, 0x88, 0x7b, 0x34, 0x88, 0x93, 0xec, 0x3d, 0x3b, 0x0a, 0x7c, 0x98, 0x5c, 0xb8, 0x1d,
+ 0xa4, 0xa9, 0x1e, 0x6a, 0x97, 0x4f, 0x06, 0xd5, 0x03, 0x1d, 0xd2, 0x22, 0x88, 0x9a, 0xa6, 0x20,
+ 0x53, 0xdd, 0x31, 0x90, 0xa2, 0x3a, 0xc8, 0x54, 0xdd, 0xf2, 0x99, 0xa0, 0x72, 0x49, 0xd3, 0x1a,
+ 0xa4, 0xb7, 0x46, 0x3a, 0xa5, 0x47, 0x61, 0xd2, 0xda, 0xb9, 0xae, 0xd1, 0x90, 0x54, 0x6c, 0x07,
+ 0xed, 0xea, 0x2f, 0x96, 0x1f, 0x22, 0xfe, 0x9d, 0xc0, 0x1d, 0x24, 0x20, 0x37, 0x89, 0x58, 0x7a,
+ 0x04, 0x44, 0xcd, 0xdd, 0x53, 0x1d, 0x9b, 0x9c, 0xc9, 0xae, 0xad, 0x6a, 0xa8, 0xfc, 0x30, 0x55,
+ 0xa5, 0xf2, 0x75, 0x2e, 0xc6, 0x5b, 0xc2, 0xbd, 0xa5, 0xef, 0x7a, 0x9c, 0xf1, 0x1c, 0xdd, 0x12,
+ 0x44, 0xc6, 0xd8, 0xe6, 0x41, 0xc4, 0xae, 0x08, 0x0d, 0x3c, 0x4f, 0xd4, 0x4a, 0xf6, 0x9e, 0x1d,
+ 0x1c, 0xf7, 0x41, 0x18, 0xc7, 0x9a, 0xfd, 0x41, 0x1f, 0xa1, 0x05, 0x99, 0xbd, 0x17, 0x18, 0xf1,
+ 0x02, 0x9c, 0xc0, 0x4a, 0x5d, 0xe4, 0xa9, 0x6d, 0xd5, 0x53, 0x03, 0xda, 0x8f, 0x13, 0x6d, 0xec,
+ 0xf7, 0x35, 0xd6, 0x19, 0xb2, 0xd3, 0xe9, 0xed, 0xec, 0xfb, 0x91, 0xf5, 0x04, 0xb5, 0x13, 0xcb,
+ 0x78, 0x6c, 0xbd, 0x6f, 0x45, 0xf7, 0x5c, 0x15, 0x8a, 0xc1, 0xc0, 0x97, 0xf2, 0x40, 0x43, 0x5f,
+ 0x14, 0x70, 0x15, 0x54, 0xdf, 0x58, 0xc6, 0xf5, 0xcb, 0x0b, 0x0d, 0x31, 0x85, 0xeb, 0xa8, 0xd5,
+ 0xe6, 0x56, 0x43, 0x91, 0xb7, 0xd7, 0xb7, 0x9a, 0x6b, 0x0d, 0x31, 0x1d, 0x2c, 0xd8, 0xbf, 0x9b,
+ 0x82, 0x52, 0xf8, 0xee, 0x25, 0xfd, 0x18, 0x9c, 0xe4, 0x0f, 0x25, 0x2e, 0xf2, 0x94, 0x5b, 0xba,
+ 0x43, 0xf6, 0x62, 0x57, 0xa5, 0x79, 0xd1, 0x8f, 0x86, 0x69, 0xa6, 0xd5, 0x42, 0xde, 0x73, 0xba,
+ 0x83, 0x77, 0x5a, 0x57, 0xf5, 0xa4, 0x55, 0x38, 0x63, 0x5a, 0x8a, 0xeb, 0xa9, 0x66, 0x5b, 0x75,
+ 0xda, 0x4a, 0xff, 0x89, 0x4a, 0x51, 0x35, 0x0d, 0xb9, 0xae, 0x45, 0x73, 0xa0, 0xcf, 0xf2, 0x21,
+ 0xd3, 0x6a, 0x31, 0xe5, 0x7e, 0x72, 0xa8, 0x31, 0xd5, 0x48, 0xe4, 0xa6, 0x0f, 0x8b, 0xdc, 0xd3,
+ 0x90, 0xef, 0xaa, 0xb6, 0x82, 0x4c, 0xcf, 0xd9, 0x27, 0x15, 0x77, 0x4e, 0xce, 0x75, 0x55, 0xbb,
+ 0x81, 0xdb, 0x1f, 0xcc, 0xc5, 0xe7, 0x1f, 0xd3, 0x50, 0x0c, 0x56, 0xdd, 0xf8, 0x12, 0xa3, 0x91,
+ 0x04, 0x25, 0x90, 0x23, 0xec, 0xc1, 0x23, 0x6b, 0xf4, 0x85, 0x3a, 0xce, 0x5c, 0xd5, 0x51, 0x5a,
+ 0x0b, 0xcb, 0x14, 0x89, 0xab, 0x06, 0x1c, 0x5a, 0x88, 0xd6, 0x1e, 0x39, 0x99, 0xb5, 0xa4, 0x15,
+ 0x18, 0xbd, 0xee, 0x12, 0xee, 0x51, 0xc2, 0xfd, 0xd0, 0xd1, 0xdc, 0xcf, 0xb6, 0x08, 0x79, 0xfe,
+ 0xd9, 0x96, 0xb2, 0xbe, 0x21, 0xaf, 0xd5, 0x56, 0x65, 0x06, 0x97, 0x4e, 0x41, 0xc6, 0x50, 0x6f,
+ 0xef, 0x87, 0x73, 0x1c, 0x11, 0x25, 0x75, 0xfc, 0x29, 0xc8, 0xdc, 0x42, 0xea, 0x8d, 0x70, 0x66,
+ 0x21, 0xa2, 0xf7, 0x31, 0xf4, 0x17, 0x21, 0x4b, 0xfc, 0x25, 0x01, 0x30, 0x8f, 0x89, 0x23, 0x52,
+ 0x0e, 0x32, 0xf5, 0x0d, 0x19, 0x87, 0xbf, 0x08, 0x45, 0x2a, 0x55, 0x36, 0x9b, 0x8d, 0x7a, 0x43,
+ 0x4c, 0xcd, 0x5d, 0x84, 0x51, 0xea, 0x04, 0xbc, 0x35, 0x7c, 0x37, 0x88, 0x23, 0xac, 0xc9, 0x38,
+ 0x04, 0xde, 0xbb, 0xbd, 0xb6, 0xd4, 0x90, 0xc5, 0x54, 0x70, 0x79, 0x5d, 0x28, 0x06, 0x0b, 0xee,
+ 0x0f, 0x26, 0xa6, 0xbe, 0x2d, 0x40, 0x21, 0x50, 0x40, 0xe3, 0xca, 0x47, 0x35, 0x0c, 0xeb, 0x96,
+ 0xa2, 0x1a, 0xba, 0xea, 0xb2, 0xa0, 0x00, 0x22, 0xaa, 0x61, 0x49, 0xd2, 0x45, 0xfb, 0x40, 0x8c,
+ 0x7f, 0x4d, 0x00, 0x31, 0x5a, 0xbb, 0x46, 0x0c, 0x14, 0x7e, 0xa4, 0x06, 0xbe, 0x2a, 0x40, 0x29,
+ 0x5c, 0xb0, 0x46, 0xcc, 0x3b, 0xfb, 0x23, 0x35, 0xef, 0x8d, 0x14, 0x8c, 0x87, 0xca, 0xd4, 0xa4,
+ 0xd6, 0x7d, 0x06, 0x26, 0xf5, 0x36, 0xea, 0xda, 0x96, 0x87, 0x4c, 0x6d, 0x5f, 0x31, 0xd0, 0x4d,
+ 0x64, 0x94, 0xe7, 0xc8, 0x41, 0xb1, 0x78, 0x74, 0x21, 0xbc, 0xd0, 0xec, 0xe3, 0x56, 0x31, 0xac,
+ 0x3a, 0xd5, 0x5c, 0x6e, 0xac, 0x6d, 0x6e, 0x6c, 0x35, 0xd6, 0xeb, 0xd7, 0x94, 0xed, 0xf5, 0x9f,
+ 0x58, 0xdf, 0x78, 0x6e, 0x5d, 0x16, 0xf5, 0x88, 0xda, 0xfb, 0xb8, 0xd5, 0x37, 0x41, 0x8c, 0x1a,
+ 0x25, 0x9d, 0x84, 0x61, 0x66, 0x89, 0x23, 0xd2, 0x14, 0x4c, 0xac, 0x6f, 0x28, 0xad, 0xe6, 0x72,
+ 0x43, 0x69, 0x5c, 0xbd, 0xda, 0xa8, 0x6f, 0xb5, 0xe8, 0xd3, 0x86, 0xaf, 0xbd, 0x15, 0xde, 0xd4,
+ 0xaf, 0xa4, 0x61, 0x6a, 0x88, 0x25, 0x52, 0x8d, 0x5d, 0x4a, 0xe8, 0x3d, 0xe9, 0x89, 0x24, 0xd6,
+ 0x2f, 0xe0, 0xaa, 0x60, 0x53, 0x75, 0x3c, 0x76, 0x87, 0x79, 0x04, 0xb0, 0x97, 0x4c, 0x4f, 0xdf,
+ 0xd5, 0x91, 0xc3, 0x5e, 0x82, 0xe8, 0x4d, 0x65, 0xa2, 0x2f, 0xa7, 0x8f, 0x41, 0x8f, 0x83, 0x64,
+ 0x5b, 0xae, 0xee, 0xe9, 0x37, 0x91, 0xa2, 0x9b, 0xfc, 0xd9, 0x08, 0xdf, 0x5c, 0x32, 0xb2, 0xc8,
+ 0x7b, 0x9a, 0xa6, 0xe7, 0x6b, 0x9b, 0xa8, 0xa3, 0x46, 0xb4, 0xf1, 0x01, 0x9e, 0x96, 0x45, 0xde,
+ 0xe3, 0x6b, 0x9f, 0x85, 0x62, 0xdb, 0xea, 0xe1, 0x72, 0x8e, 0xea, 0xe1, 0x7c, 0x21, 0xc8, 0x05,
+ 0x2a, 0xf3, 0x55, 0x58, 0xa1, 0xde, 0x7f, 0xaf, 0x2a, 0xca, 0x05, 0x2a, 0xa3, 0x2a, 0xe7, 0x60,
+ 0x42, 0xed, 0x74, 0x1c, 0x4c, 0xce, 0x89, 0xe8, 0xd5, 0xa3, 0xe4, 0x8b, 0x89, 0xe2, 0xcc, 0xb3,
+ 0x90, 0xe3, 0x7e, 0xc0, 0x29, 0x19, 0x7b, 0x42, 0xb1, 0xe9, 0x7d, 0x3a, 0x35, 0x9f, 0x97, 0x73,
+ 0x26, 0xef, 0x3c, 0x0b, 0x45, 0xdd, 0x55, 0xfa, 0xcf, 0xef, 0xa9, 0xd9, 0xd4, 0x7c, 0x4e, 0x2e,
+ 0xe8, 0xae, 0xff, 0x74, 0x39, 0xf7, 0x7a, 0x0a, 0x4a, 0xe1, 0xcf, 0x07, 0xd2, 0x32, 0xe4, 0x0c,
+ 0x4b, 0x53, 0x49, 0x68, 0xd1, 0x6f, 0x57, 0xf3, 0x31, 0x5f, 0x1c, 0x16, 0x56, 0x99, 0xbe, 0xec,
+ 0x23, 0x67, 0xfe, 0x5e, 0x80, 0x1c, 0x17, 0x4b, 0x27, 0x20, 0x63, 0xab, 0xde, 0x1e, 0xa1, 0xcb,
+ 0x2e, 0xa5, 0x44, 0x41, 0x26, 0x6d, 0x2c, 0x77, 0x6d, 0xd5, 0x24, 0x21, 0xc0, 0xe4, 0xb8, 0x8d,
+ 0xd7, 0xd5, 0x40, 0x6a, 0x9b, 0xdc, 0x6b, 0xac, 0x6e, 0x17, 0x99, 0x9e, 0xcb, 0xd7, 0x95, 0xc9,
+ 0xeb, 0x4c, 0x2c, 0x3d, 0x06, 0x93, 0x9e, 0xa3, 0xea, 0x46, 0x48, 0x37, 0x43, 0x74, 0x45, 0xde,
+ 0xe1, 0x2b, 0x57, 0xe1, 0x14, 0xe7, 0x6d, 0x23, 0x4f, 0xd5, 0xf6, 0x50, 0xbb, 0x0f, 0x1a, 0x25,
+ 0xef, 0x17, 0x27, 0x99, 0xc2, 0x32, 0xeb, 0xe7, 0xd8, 0xb9, 0xef, 0x0b, 0x30, 0xc9, 0x6f, 0x62,
+ 0x6d, 0xdf, 0x59, 0x6b, 0x00, 0xaa, 0x69, 0x5a, 0x5e, 0xd0, 0x5d, 0x83, 0xa1, 0x3c, 0x80, 0x5b,
+ 0xa8, 0xf9, 0x20, 0x39, 0x40, 0x30, 0xd3, 0x05, 0xe8, 0xf7, 0x1c, 0xea, 0xb6, 0x33, 0x50, 0x60,
+ 0xdf, 0x86, 0xc8, 0x07, 0x46, 0x7a, 0x77, 0x07, 0x2a, 0xc2, 0x57, 0x36, 0x69, 0x1a, 0xb2, 0x3b,
+ 0xa8, 0xa3, 0x9b, 0xec, 0xc5, 0x97, 0x36, 0xf8, 0x0b, 0x4b, 0xc6, 0x7f, 0x61, 0x59, 0xfa, 0x34,
+ 0x4c, 0x69, 0x56, 0x37, 0x6a, 0xee, 0x92, 0x18, 0x79, 0x3f, 0x70, 0x3f, 0x21, 0xbc, 0x00, 0xfd,
+ 0x12, 0xf3, 0x5d, 0x41, 0xf8, 0x52, 0x2a, 0xbd, 0xb2, 0xb9, 0xf4, 0xd5, 0xd4, 0xcc, 0x0a, 0x85,
+ 0x6e, 0xf2, 0x99, 0xca, 0x68, 0xd7, 0x40, 0x1a, 0xb6, 0x1e, 0xbe, 0xfc, 0x18, 0x3c, 0xd1, 0xd1,
+ 0xbd, 0xbd, 0xde, 0xce, 0x82, 0x66, 0x75, 0x17, 0x3b, 0x56, 0xc7, 0xea, 0x7f, 0x53, 0xc5, 0x2d,
+ 0xd2, 0x20, 0xff, 0xb1, 0xef, 0xaa, 0x79, 0x5f, 0x3a, 0x13, 0xfb, 0x11, 0xb6, 0xba, 0x0e, 0x53,
+ 0x4c, 0x59, 0x21, 0x1f, 0x76, 0xe8, 0xf5, 0x44, 0x3a, 0xf2, 0x71, 0xac, 0xfc, 0xf5, 0x37, 0x49,
+ 0xba, 0x96, 0x27, 0x19, 0x14, 0xf7, 0xd1, 0x1b, 0x4c, 0x55, 0x86, 0x07, 0x42, 0x7c, 0x74, 0x6b,
+ 0x22, 0x27, 0x86, 0xf1, 0xbb, 0x8c, 0x71, 0x2a, 0xc0, 0xd8, 0x62, 0xd0, 0x6a, 0x1d, 0xc6, 0x8f,
+ 0xc3, 0xf5, 0xb7, 0x8c, 0xab, 0x88, 0x82, 0x24, 0x2b, 0x30, 0x41, 0x48, 0xb4, 0x9e, 0xeb, 0x59,
+ 0x5d, 0x72, 0xee, 0x1d, 0x4d, 0xf3, 0x77, 0x6f, 0xd2, 0xbd, 0x52, 0xc2, 0xb0, 0xba, 0x8f, 0xaa,
+ 0x56, 0x81, 0x7c, 0xcb, 0x6a, 0x23, 0xcd, 0x88, 0x61, 0xb8, 0xcb, 0x0c, 0xf1, 0xf5, 0xab, 0x9f,
+ 0x82, 0x69, 0xfc, 0x3f, 0x39, 0x96, 0x82, 0x96, 0xc4, 0xbf, 0xa4, 0x95, 0xbf, 0xff, 0x12, 0xdd,
+ 0x8e, 0x53, 0x3e, 0x41, 0xc0, 0xa6, 0xc0, 0x2a, 0x76, 0x90, 0xe7, 0x21, 0xc7, 0x55, 0x54, 0x63,
+ 0x98, 0x79, 0x81, 0xa7, 0x88, 0xf2, 0xe7, 0xdf, 0x0e, 0xaf, 0xe2, 0x0a, 0x45, 0xd6, 0x0c, 0xa3,
+ 0xba, 0x0d, 0x27, 0x87, 0x44, 0x45, 0x02, 0xce, 0x57, 0x18, 0xe7, 0xf4, 0x40, 0x64, 0x60, 0xda,
+ 0x4d, 0xe0, 0x72, 0x7f, 0x2d, 0x13, 0x70, 0xfe, 0x36, 0xe3, 0x94, 0x18, 0x96, 0x2f, 0x29, 0x66,
+ 0x7c, 0x16, 0x26, 0x6f, 0x22, 0x67, 0xc7, 0x72, 0xd9, 0xf3, 0x4f, 0x02, 0xba, 0x57, 0x19, 0xdd,
+ 0x04, 0x03, 0x92, 0xf7, 0x20, 0xcc, 0xf5, 0x34, 0xe4, 0x76, 0x55, 0x0d, 0x25, 0xa0, 0xf8, 0x02,
+ 0xa3, 0x18, 0xc3, 0xfa, 0x18, 0x5a, 0x83, 0x62, 0xc7, 0x62, 0x99, 0x29, 0x1e, 0xfe, 0x1a, 0x83,
+ 0x17, 0x38, 0x86, 0x51, 0xd8, 0x96, 0xdd, 0x33, 0x70, 0xda, 0x8a, 0xa7, 0xf8, 0x1d, 0x4e, 0xc1,
+ 0x31, 0x8c, 0xe2, 0x18, 0x6e, 0xfd, 0x5d, 0x4e, 0xe1, 0x06, 0xfc, 0xf9, 0x0c, 0x14, 0x2c, 0xd3,
+ 0xd8, 0xb7, 0xcc, 0x24, 0x46, 0x7c, 0x91, 0x31, 0x00, 0x83, 0x60, 0x82, 0x2b, 0x90, 0x4f, 0xba,
+ 0x10, 0xbf, 0xff, 0x36, 0xdf, 0x1e, 0x7c, 0x05, 0x56, 0x60, 0x82, 0x1f, 0x50, 0xba, 0x65, 0x26,
+ 0xa0, 0xf8, 0x32, 0xa3, 0x28, 0x05, 0x60, 0x6c, 0x1a, 0x1e, 0x72, 0xbd, 0x0e, 0x4a, 0x42, 0xf2,
+ 0x3a, 0x9f, 0x06, 0x83, 0x30, 0x57, 0xee, 0x20, 0x53, 0xdb, 0x4b, 0xc6, 0xf0, 0x15, 0xee, 0x4a,
+ 0x8e, 0xc1, 0x14, 0x75, 0x18, 0xef, 0xaa, 0x8e, 0xbb, 0xa7, 0x1a, 0x89, 0x96, 0xe3, 0x0f, 0x18,
+ 0x47, 0xd1, 0x07, 0x31, 0x8f, 0xf4, 0xcc, 0xe3, 0xd0, 0x7c, 0x95, 0x7b, 0x24, 0x00, 0x63, 0x5b,
+ 0xcf, 0xf5, 0xc8, 0x5b, 0xd9, 0x71, 0xd8, 0xfe, 0x90, 0x6f, 0x3d, 0x8a, 0x5d, 0x0b, 0x32, 0x5e,
+ 0x81, 0xbc, 0xab, 0xdf, 0x4e, 0x44, 0xf3, 0x47, 0x7c, 0xa5, 0x09, 0x00, 0x83, 0xaf, 0xc1, 0xa9,
+ 0xa1, 0x69, 0x22, 0x01, 0xd9, 0x1f, 0x33, 0xb2, 0x13, 0x43, 0x52, 0x05, 0x3b, 0x12, 0x8e, 0x4b,
+ 0xf9, 0x27, 0xfc, 0x48, 0x40, 0x11, 0xae, 0x4d, 0x7c, 0x57, 0x70, 0xd5, 0xdd, 0xe3, 0x79, 0xed,
+ 0x4f, 0xb9, 0xd7, 0x28, 0x36, 0xe4, 0xb5, 0x2d, 0x38, 0xc1, 0x18, 0x8f, 0xb7, 0xae, 0x5f, 0xe3,
+ 0x07, 0x2b, 0x45, 0x6f, 0x87, 0x57, 0xf7, 0xd3, 0x30, 0xe3, 0xbb, 0x93, 0x17, 0xa5, 0xae, 0xd2,
+ 0x55, 0xed, 0x04, 0xcc, 0x5f, 0x67, 0xcc, 0xfc, 0xc4, 0xf7, 0xab, 0x5a, 0x77, 0x4d, 0xb5, 0x31,
+ 0xf9, 0xf3, 0x50, 0xe6, 0xe4, 0x3d, 0xd3, 0x41, 0x9a, 0xd5, 0x31, 0xf5, 0xdb, 0xa8, 0x9d, 0x80,
+ 0xfa, 0xcf, 0x22, 0x4b, 0xb5, 0x1d, 0x80, 0x63, 0xe6, 0x26, 0x88, 0x7e, 0xad, 0xa2, 0xe8, 0x5d,
+ 0xdb, 0x72, 0xbc, 0x18, 0xc6, 0x3f, 0xe7, 0x2b, 0xe5, 0xe3, 0x9a, 0x04, 0x56, 0x6d, 0x40, 0x89,
+ 0x34, 0x93, 0x86, 0xe4, 0x5f, 0x30, 0xa2, 0xf1, 0x3e, 0x8a, 0x1d, 0x1c, 0x9a, 0xd5, 0xb5, 0x55,
+ 0x27, 0xc9, 0xf9, 0xf7, 0x97, 0xfc, 0xe0, 0x60, 0x10, 0x76, 0x70, 0x78, 0xfb, 0x36, 0xc2, 0xd9,
+ 0x3e, 0x01, 0xc3, 0x37, 0xf8, 0xc1, 0xc1, 0x31, 0x8c, 0x82, 0x17, 0x0c, 0x09, 0x28, 0xfe, 0x8a,
+ 0x53, 0x70, 0x0c, 0xa6, 0xf8, 0x64, 0x3f, 0xd1, 0x3a, 0xa8, 0xa3, 0xbb, 0x9e, 0x43, 0x4b, 0xe1,
+ 0xa3, 0xa9, 0xbe, 0xf9, 0x76, 0xb8, 0x08, 0x93, 0x03, 0x50, 0x7c, 0x12, 0xb1, 0x27, 0x54, 0x72,
+ 0x53, 0x8a, 0x37, 0xec, 0x5b, 0xfc, 0x24, 0x0a, 0xc0, 0xb0, 0x6d, 0x81, 0x0a, 0x11, 0xbb, 0x5d,
+ 0xc3, 0xf7, 0x83, 0x04, 0x74, 0xdf, 0x8e, 0x18, 0xd7, 0xe2, 0x58, 0xcc, 0x19, 0xa8, 0x7f, 0x7a,
+ 0xe6, 0x0d, 0xb4, 0x9f, 0x28, 0x3a, 0xff, 0x3a, 0x52, 0xff, 0x6c, 0x53, 0x24, 0x3d, 0x43, 0x26,
+ 0x22, 0xf5, 0x94, 0x14, 0xf7, 0x2b, 0xa0, 0xf2, 0x4f, 0xdf, 0x67, 0xf3, 0x0d, 0x97, 0x53, 0xd5,
+ 0x55, 0x1c, 0xe4, 0xe1, 0xa2, 0x27, 0x9e, 0xec, 0xa5, 0xfb, 0x7e, 0x9c, 0x87, 0x6a, 0x9e, 0xea,
+ 0x55, 0x18, 0x0f, 0x15, 0x3c, 0xf1, 0x54, 0x9f, 0x65, 0x54, 0xc5, 0x60, 0xbd, 0x53, 0xbd, 0x08,
+ 0x19, 0x5c, 0xbc, 0xc4, 0xc3, 0x7f, 0x86, 0xc1, 0x89, 0x7a, 0xf5, 0x63, 0x90, 0xe3, 0x45, 0x4b,
+ 0x3c, 0xf4, 0x67, 0x19, 0xd4, 0x87, 0x60, 0x38, 0x2f, 0x58, 0xe2, 0xe1, 0x3f, 0xc7, 0xe1, 0x1c,
+ 0x82, 0xe1, 0xc9, 0x5d, 0xf8, 0x9d, 0x5f, 0xc8, 0xb0, 0xa4, 0xc3, 0x7d, 0x77, 0x05, 0xc6, 0x58,
+ 0xa5, 0x12, 0x8f, 0x7e, 0x99, 0x0d, 0xce, 0x11, 0xd5, 0xa7, 0x20, 0x9b, 0xd0, 0xe1, 0xbf, 0xc4,
+ 0xa0, 0x54, 0xbf, 0x5a, 0x87, 0x42, 0xa0, 0x3a, 0x89, 0x87, 0xff, 0x32, 0x83, 0x07, 0x51, 0xd8,
+ 0x74, 0x56, 0x9d, 0xc4, 0x13, 0xfc, 0x0a, 0x37, 0x9d, 0x21, 0xb0, 0xdb, 0x78, 0x61, 0x12, 0x8f,
+ 0xfe, 0x55, 0xee, 0x75, 0x0e, 0xa9, 0x3e, 0x03, 0x79, 0x3f, 0xd9, 0xc4, 0xe3, 0x7f, 0x8d, 0xe1,
+ 0xfb, 0x18, 0xec, 0x81, 0x40, 0xb2, 0x8b, 0xa7, 0xf8, 0x75, 0xee, 0x81, 0x00, 0x0a, 0x6f, 0xa3,
+ 0x68, 0x01, 0x13, 0xcf, 0xf4, 0x1b, 0x7c, 0x1b, 0x45, 0xea, 0x17, 0xbc, 0x9a, 0xe4, 0xcc, 0x8f,
+ 0xa7, 0xf8, 0x4d, 0xbe, 0x9a, 0x44, 0x1f, 0x9b, 0x11, 0xad, 0x08, 0xe2, 0x39, 0x7e, 0x8b, 0x9b,
+ 0x11, 0x29, 0x08, 0xaa, 0x9b, 0x20, 0x0d, 0x56, 0x03, 0xf1, 0x7c, 0x9f, 0x63, 0x7c, 0x93, 0x03,
+ 0xc5, 0x40, 0xf5, 0x39, 0x38, 0x31, 0xbc, 0x12, 0x88, 0x67, 0xfd, 0xfc, 0xfd, 0xc8, 0xdd, 0x2d,
+ 0x58, 0x08, 0x54, 0xb7, 0xfa, 0x29, 0x25, 0x58, 0x05, 0xc4, 0xd3, 0xbe, 0x72, 0x3f, 0x7c, 0x70,
+ 0x07, 0x8b, 0x80, 0x6a, 0x0d, 0xa0, 0x9f, 0x80, 0xe3, 0xb9, 0x5e, 0x65, 0x5c, 0x01, 0x10, 0xde,
+ 0x1a, 0x2c, 0xff, 0xc6, 0xe3, 0xbf, 0xc0, 0xb7, 0x06, 0x43, 0xe0, 0xad, 0xc1, 0x53, 0x6f, 0x3c,
+ 0xfa, 0x35, 0xbe, 0x35, 0x38, 0x04, 0x47, 0x76, 0x20, 0xbb, 0xc5, 0x33, 0x7c, 0x91, 0x47, 0x76,
+ 0x00, 0x55, 0x5d, 0x87, 0xc9, 0x81, 0x84, 0x18, 0x4f, 0xf5, 0x25, 0x46, 0x25, 0x46, 0xf3, 0x61,
+ 0x30, 0x79, 0xb1, 0x64, 0x18, 0xcf, 0xf6, 0x7b, 0x91, 0xe4, 0xc5, 0x72, 0x61, 0xf5, 0x0a, 0xe4,
+ 0xcc, 0x9e, 0x61, 0xe0, 0xcd, 0x23, 0x1d, 0xfd, 0xcb, 0xbd, 0xf2, 0xbf, 0xbe, 0xc7, 0xbc, 0xc3,
+ 0x01, 0xd5, 0x8b, 0x90, 0x45, 0xdd, 0x1d, 0xd4, 0x8e, 0x43, 0xfe, 0xdb, 0x7b, 0xfc, 0xc0, 0xc4,
+ 0xda, 0xd5, 0x67, 0x00, 0xe8, 0xd3, 0x08, 0xf9, 0xec, 0x17, 0x83, 0xfd, 0xf7, 0xf7, 0xd8, 0x6f,
+ 0x6a, 0xfa, 0x90, 0x3e, 0x01, 0xfd, 0x85, 0xce, 0xd1, 0x04, 0x6f, 0x87, 0x09, 0xc8, 0x8a, 0x3c,
+ 0x0d, 0x63, 0xd7, 0x5d, 0xcb, 0xf4, 0xd4, 0x4e, 0x1c, 0xfa, 0x3f, 0x18, 0x9a, 0xeb, 0x63, 0x87,
+ 0x75, 0x2d, 0x07, 0x79, 0x6a, 0xc7, 0x8d, 0xc3, 0xfe, 0x27, 0xc3, 0xfa, 0x00, 0x0c, 0xd6, 0x54,
+ 0xd7, 0x4b, 0x32, 0xef, 0xff, 0xe2, 0x60, 0x0e, 0xc0, 0x46, 0xe3, 0xff, 0x6f, 0xa0, 0xfd, 0x38,
+ 0xec, 0x3b, 0xdc, 0x68, 0xa6, 0x5f, 0xfd, 0x18, 0xe4, 0xf1, 0xbf, 0xf4, 0x87, 0x72, 0x31, 0xe0,
+ 0xff, 0x66, 0xe0, 0x3e, 0x02, 0x8f, 0xec, 0x7a, 0x6d, 0x4f, 0x8f, 0x77, 0xf6, 0xff, 0xb0, 0x95,
+ 0xe6, 0xfa, 0xd5, 0x1a, 0x14, 0x5c, 0xaf, 0xdd, 0xee, 0xb1, 0xfa, 0x34, 0x06, 0xfe, 0xbf, 0xef,
+ 0xf9, 0x4f, 0x16, 0x3e, 0x06, 0xaf, 0xf6, 0xad, 0x1b, 0x9e, 0x6d, 0x91, 0xcf, 0x1c, 0x71, 0x0c,
+ 0xf7, 0x19, 0x43, 0x00, 0xb2, 0xd4, 0x18, 0xfe, 0x7c, 0x0b, 0x2b, 0xd6, 0x8a, 0x45, 0x1f, 0x6e,
+ 0x5f, 0x98, 0x8b, 0x7f, 0x81, 0x85, 0x97, 0xb3, 0x70, 0x5a, 0xb3, 0xba, 0x3b, 0x96, 0xbb, 0xb8,
+ 0x63, 0x79, 0x7b, 0x8b, 0xbe, 0x7f, 0xf8, 0xb3, 0xac, 0x2f, 0x98, 0x39, 0xde, 0x83, 0xee, 0xdc,
+ 0xdf, 0xa4, 0x21, 0x57, 0x57, 0x5d, 0x4f, 0xbd, 0xa5, 0xee, 0x4b, 0x36, 0x4c, 0xe1, 0xff, 0xd7,
+ 0x54, 0x9b, 0x3c, 0x0f, 0xb2, 0x7d, 0xcc, 0xde, 0xcc, 0x1f, 0x5f, 0xe8, 0x8f, 0xca, 0x11, 0x0b,
+ 0x43, 0xd4, 0xc9, 0x6f, 0x0d, 0x96, 0xc4, 0xbb, 0xff, 0x74, 0x66, 0xe4, 0xe7, 0xff, 0xf9, 0x4c,
+ 0x6e, 0x6d, 0xff, 0x39, 0xdd, 0x70, 0x2d, 0x53, 0x1e, 0x46, 0x2d, 0x7d, 0x56, 0x80, 0xd3, 0x43,
+ 0xe4, 0xeb, 0x6c, 0x9b, 0xb3, 0x2f, 0x4f, 0x17, 0x12, 0x0e, 0xcd, 0x61, 0xd4, 0x84, 0x62, 0x68,
+ 0xf8, 0xa3, 0x86, 0x99, 0xb9, 0x06, 0xe5, 0xc3, 0x66, 0x22, 0x89, 0x90, 0xbe, 0x81, 0xf6, 0xd9,
+ 0x2f, 0x21, 0xf1, 0xbf, 0xd2, 0xb9, 0xfe, 0xef, 0x45, 0x85, 0xf9, 0xc2, 0xf9, 0xc9, 0x80, 0x75,
+ 0x6c, 0x30, 0xda, 0x5f, 0x4d, 0x5d, 0x16, 0x66, 0x54, 0x98, 0x8d, 0xb3, 0xf4, 0xff, 0x39, 0xc4,
+ 0x5c, 0x05, 0x46, 0xa9, 0x50, 0x9a, 0x86, 0x6c, 0xd3, 0xf4, 0x2e, 0x5d, 0x20, 0x54, 0x69, 0x99,
+ 0x36, 0x96, 0x56, 0xef, 0xde, 0xab, 0x8c, 0x7c, 0xef, 0x5e, 0x65, 0xe4, 0x1f, 0xee, 0x55, 0x46,
+ 0xde, 0xb8, 0x57, 0x11, 0xde, 0xba, 0x57, 0x11, 0xde, 0xb9, 0x57, 0x11, 0xde, 0xbd, 0x57, 0x11,
+ 0xee, 0x1c, 0x54, 0x84, 0xaf, 0x1c, 0x54, 0x84, 0xaf, 0x1d, 0x54, 0x84, 0x6f, 0x1e, 0x54, 0x84,
+ 0xef, 0x1c, 0x54, 0x84, 0xbb, 0x07, 0x15, 0xe1, 0x7b, 0x07, 0x15, 0xe1, 0x8d, 0x83, 0x8a, 0xf0,
+ 0xd6, 0x41, 0x65, 0xe4, 0x9d, 0x83, 0x8a, 0xf0, 0xee, 0x41, 0x65, 0xe4, 0xce, 0x0f, 0x2a, 0x23,
+ 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0x73, 0x87, 0xc4, 0x56, 0x80, 0x35, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -1017,7 +1048,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1045,7 +1076,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1054,6 +1085,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCastvalue
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCastvalue
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1074,7 +1108,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1090,7 +1124,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1106,7 +1140,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1115,7 +1149,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCastvalue
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthCastvalue
}
if postmsgIndex > l {
@@ -1157,7 +1191,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1166,6 +1200,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCastvalue
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCastvalue
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1186,7 +1223,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1202,7 +1239,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1218,7 +1255,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1227,7 +1264,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCastvalue
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthCastvalue
}
if postmsgIndex > l {
@@ -1264,6 +1301,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthCastvalue
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthCastvalue
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1292,7 +1332,7 @@ func (m *Wilson) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1320,7 +1360,7 @@ func (m *Wilson) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1335,6 +1375,9 @@ func (m *Wilson) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthCastvalue
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthCastvalue
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1402,10 +1445,13 @@ func skipCastvalue(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthCastvalue
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthCastvalue
+ }
return iNdEx, nil
case 3:
for {
@@ -1434,6 +1480,9 @@ func skipCastvalue(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthCastvalue
+ }
}
return iNdEx, nil
case 4:
@@ -1452,34 +1501,3 @@ var (
ErrInvalidLengthCastvalue = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowCastvalue = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("combos/both/castvalue.proto", fileDescriptor_castvalue_a8e85bd7357c5c72)
-}
-
-var fileDescriptor_castvalue_a8e85bd7357c5c72 = []byte{
- // 354 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x8f, 0xbd, 0x4f, 0x2a, 0x41,
- 0x14, 0xc5, 0xf7, 0xb2, 0xe1, 0x85, 0x37, 0xbc, 0x82, 0xb7, 0x5a, 0x6c, 0x20, 0xb9, 0x6c, 0x68,
- 0xa4, 0xd0, 0xdd, 0x84, 0x10, 0x63, 0x2c, 0x31, 0x16, 0x26, 0x62, 0x41, 0xa1, 0xb1, 0x9c, 0x25,
- 0xeb, 0x42, 0x5c, 0x18, 0xc2, 0xce, 0x6a, 0xb6, 0xa3, 0xb0, 0xf2, 0x2f, 0xb1, 0xb4, 0xb4, 0xd4,
- 0x8e, 0x92, 0xd2, 0x4a, 0x99, 0xb1, 0xa1, 0xa4, 0xa4, 0x34, 0xcc, 0x8a, 0x1f, 0x09, 0x7e, 0x24,
- 0x76, 0xf7, 0x9e, 0xb9, 0xe7, 0xfc, 0xce, 0x90, 0x42, 0x93, 0x75, 0x5c, 0x16, 0x3a, 0x2e, 0xe3,
- 0x2d, 0xa7, 0x49, 0x43, 0x7e, 0x46, 0x83, 0xc8, 0xb3, 0x7b, 0x7d, 0xc6, 0x99, 0xf1, 0xf7, 0x55,
- 0xc8, 0x6f, 0xf8, 0x6d, 0xde, 0x8a, 0x5c, 0xbb, 0xc9, 0x3a, 0x8e, 0xcf, 0x7c, 0xe6, 0xa8, 0x0b,
- 0x37, 0x3a, 0x51, 0x9b, 0x5a, 0xd4, 0x94, 0x38, 0x4b, 0x77, 0x3a, 0xc9, 0xec, 0xd0, 0x90, 0xd3,
- 0x73, 0x1a, 0x1b, 0x3d, 0xb2, 0x32, 0x9f, 0xeb, 0xb4, 0x77, 0x38, 0xcf, 0xaa, 0x7b, 0x61, 0x48,
- 0x7d, 0xcf, 0x04, 0x4b, 0x2f, 0x67, 0x2b, 0xeb, 0xf6, 0x1b, 0x75, 0xe1, 0xb0, 0x97, 0x9c, 0xef,
- 0x76, 0x79, 0x3f, 0xae, 0xe5, 0x86, 0x0f, 0x45, 0xed, 0xf2, 0xb1, 0x98, 0xa9, 0xc7, 0x47, 0xed,
- 0x20, 0x64, 0xdd, 0xc6, 0xb2, 0x68, 0xe3, 0x02, 0x48, 0x61, 0x89, 0x7e, 0x10, 0x05, 0x01, 0x75,
- 0x03, 0xcf, 0x4c, 0x29, 0x74, 0xf5, 0x87, 0xe8, 0x85, 0x2d, 0xa9, 0xf0, 0xef, 0x03, 0xfe, 0x2b,
- 0x4c, 0xfe, 0x98, 0x98, 0x9f, 0xfd, 0xc4, 0xc8, 0x11, 0xfd, 0xd4, 0x8b, 0x4d, 0xb0, 0xa0, 0x9c,
- 0x6e, 0xcc, 0x47, 0x63, 0x8d, 0xa4, 0x55, 0x17, 0x33, 0x65, 0x41, 0x39, 0x5b, 0xf9, 0xff, 0xae,
- 0xdd, 0x0b, 0x2c, 0x79, 0xdf, 0x4e, 0x6d, 0x41, 0x9e, 0x12, 0xeb, 0xbb, 0xa6, 0xbf, 0x44, 0x94,
- 0x90, 0xfc, 0x49, 0x44, 0x63, 0x95, 0xa4, 0xf7, 0xba, 0x7c, 0xb3, 0xaa, 0xa2, 0xf4, 0x46, 0xb2,
- 0xd4, 0xf6, 0x87, 0x02, 0xb5, 0x91, 0x40, 0xed, 0x5e, 0xa0, 0x36, 0x16, 0x08, 0x13, 0x81, 0x30,
- 0x15, 0x08, 0x33, 0x81, 0x30, 0x90, 0x08, 0x57, 0x12, 0xe1, 0x5a, 0x22, 0xdc, 0x48, 0x84, 0x5b,
- 0x89, 0x30, 0x94, 0x08, 0x23, 0x89, 0x30, 0x96, 0x08, 0x13, 0x89, 0xda, 0x54, 0x22, 0xcc, 0x24,
- 0x6a, 0x83, 0x27, 0xd4, 0x9e, 0x03, 0x00, 0x00, 0xff, 0xff, 0xd3, 0xe0, 0x74, 0x89, 0x89, 0x02,
- 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.pb.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.pb.go
index e6012f3b43..717967547c 100644
--- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.pb.go
@@ -3,20 +3,20 @@
package castvalue
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -40,7 +40,7 @@ type Castaway struct {
func (m *Castaway) Reset() { *m = Castaway{} }
func (*Castaway) ProtoMessage() {}
func (*Castaway) Descriptor() ([]byte, []int) {
- return fileDescriptor_castvalue_cc68bdd888d8d1a2, []int{0}
+ return fileDescriptor_5c90a1ace13d5df2, []int{0}
}
func (m *Castaway) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Castaway.Unmarshal(m, b)
@@ -57,8 +57,8 @@ func (m *Castaway) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Castaway) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Castaway.Merge(dst, src)
+func (m *Castaway) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Castaway.Merge(m, src)
}
func (m *Castaway) XXX_Size() int {
return m.Size()
@@ -79,7 +79,7 @@ type Wilson struct {
func (m *Wilson) Reset() { *m = Wilson{} }
func (*Wilson) ProtoMessage() {}
func (*Wilson) Descriptor() ([]byte, []int) {
- return fileDescriptor_castvalue_cc68bdd888d8d1a2, []int{1}
+ return fileDescriptor_5c90a1ace13d5df2, []int{1}
}
func (m *Wilson) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Wilson.Unmarshal(m, b)
@@ -96,8 +96,8 @@ func (m *Wilson) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Wilson) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Wilson.Merge(dst, src)
+func (m *Wilson) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Wilson.Merge(m, src)
}
func (m *Wilson) XXX_Size() int {
return m.Size()
@@ -114,6 +114,36 @@ func init() {
proto.RegisterMapType((map[int32]*MyWilson)(nil), "castvalue.Castaway.CastMapValueMessageNullableEntry")
proto.RegisterType((*Wilson)(nil), "castvalue.Wilson")
}
+
+func init() { proto.RegisterFile("combos/marshaler/castvalue.proto", fileDescriptor_5c90a1ace13d5df2) }
+
+var fileDescriptor_5c90a1ace13d5df2 = []byte{
+ // 358 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x8f, 0xbd, 0x4f, 0x2a, 0x41,
+ 0x14, 0xc5, 0xe7, 0xb2, 0xe1, 0x85, 0x37, 0xbc, 0x82, 0xb7, 0xef, 0x15, 0x1b, 0x4c, 0x2e, 0x1b,
+ 0x1a, 0x29, 0x74, 0x37, 0x21, 0xc4, 0x18, 0x4b, 0x8c, 0x85, 0x89, 0x58, 0x50, 0x68, 0x2c, 0x67,
+ 0xc9, 0xba, 0x10, 0x17, 0x86, 0xec, 0x87, 0x66, 0x3b, 0x0a, 0x2b, 0xff, 0x12, 0x4b, 0x4b, 0x4b,
+ 0xed, 0x28, 0x29, 0xad, 0x94, 0x19, 0x1b, 0x4a, 0x4a, 0x4a, 0xc3, 0xac, 0xf8, 0x91, 0xe0, 0x47,
+ 0x62, 0x77, 0xef, 0x99, 0x7b, 0xce, 0xef, 0x0c, 0x35, 0x5b, 0xbc, 0xeb, 0xf0, 0xd0, 0xee, 0xb2,
+ 0x20, 0x6c, 0x33, 0xdf, 0x0d, 0xec, 0x16, 0x0b, 0xa3, 0x53, 0xe6, 0xc7, 0xae, 0xd5, 0x0f, 0x78,
+ 0xc4, 0xf5, 0xdf, 0x2f, 0x42, 0x71, 0xdd, 0xeb, 0x44, 0xed, 0xd8, 0xb1, 0x5a, 0xbc, 0x6b, 0x7b,
+ 0xdc, 0xe3, 0xb6, 0xba, 0x70, 0xe2, 0x63, 0xb5, 0xa9, 0x45, 0x4d, 0xa9, 0xb3, 0x7c, 0xab, 0xd1,
+ 0xdc, 0x36, 0x0b, 0x23, 0x76, 0xc6, 0x12, 0xbd, 0x4f, 0xff, 0xcd, 0xe7, 0x06, 0xeb, 0x1f, 0xcc,
+ 0xb3, 0x1a, 0x6e, 0x18, 0x32, 0xcf, 0x35, 0xc0, 0xd4, 0x2a, 0xf9, 0xea, 0x9a, 0xf5, 0x4a, 0x5d,
+ 0x38, 0xac, 0x25, 0xe7, 0x3b, 0xbd, 0x28, 0x48, 0xea, 0x85, 0xe1, 0x7d, 0x89, 0x5c, 0x3c, 0x94,
+ 0x72, 0x8d, 0xe4, 0xb0, 0xe3, 0x87, 0xbc, 0xd7, 0x5c, 0x16, 0xad, 0x9f, 0x03, 0x5d, 0x59, 0xa2,
+ 0xef, 0xc7, 0xbe, 0xcf, 0x1c, 0xdf, 0x35, 0x32, 0x0a, 0x5d, 0xfb, 0x26, 0x7a, 0x61, 0x4b, 0x2b,
+ 0xfc, 0x79, 0x87, 0xff, 0x0c, 0x53, 0x3c, 0xa2, 0xc6, 0x47, 0x3f, 0xd1, 0x0b, 0x54, 0x3b, 0x71,
+ 0x13, 0x03, 0x4c, 0xa8, 0x64, 0x9b, 0xf3, 0x51, 0x5f, 0xa5, 0x59, 0xd5, 0xc5, 0xc8, 0x98, 0x50,
+ 0xc9, 0x57, 0xff, 0xbe, 0x69, 0xf7, 0x0c, 0x4b, 0xdf, 0xb7, 0x32, 0x9b, 0x50, 0x64, 0xd4, 0xfc,
+ 0xaa, 0xe9, 0x0f, 0x11, 0x65, 0xa4, 0xbf, 0x52, 0x51, 0xff, 0x4f, 0xb3, 0xbb, 0xbd, 0x68, 0xa3,
+ 0xa6, 0xa2, 0xb4, 0x66, 0xba, 0xd4, 0xf7, 0x86, 0x02, 0xc9, 0x48, 0x20, 0xb9, 0x13, 0x48, 0xc6,
+ 0x02, 0x61, 0x22, 0x10, 0xa6, 0x02, 0x61, 0x26, 0x10, 0x06, 0x12, 0xe1, 0x52, 0x22, 0x5c, 0x49,
+ 0x84, 0x6b, 0x89, 0x70, 0x23, 0x11, 0x86, 0x12, 0x61, 0x24, 0x91, 0x8c, 0x25, 0xc2, 0x44, 0x22,
+ 0x99, 0x4a, 0x84, 0x99, 0x44, 0x32, 0x78, 0x44, 0xf2, 0x14, 0x00, 0x00, 0xff, 0xff, 0xc3, 0x22,
+ 0x8c, 0x46, 0x8e, 0x02, 0x00, 0x00,
+}
+
func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return CastvalueDescription()
}
@@ -123,258 +153,260 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog
func CastvalueDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4012 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0xdc, 0xd6,
- 0x75, 0x26, 0xf6, 0x87, 0xdc, 0x3d, 0xbb, 0x5c, 0x82, 0x20, 0x2d, 0xad, 0xe8, 0x78, 0x45, 0xd1,
- 0x76, 0x44, 0xdb, 0x09, 0x99, 0x91, 0x25, 0x59, 0x5a, 0x35, 0x71, 0x97, 0xcb, 0x15, 0xb3, 0x2e,
- 0xff, 0x82, 0x25, 0x63, 0xcb, 0x99, 0x0e, 0x06, 0xc4, 0x5e, 0x2e, 0x21, 0x61, 0x01, 0x04, 0xc0,
- 0x4a, 0xa6, 0xa6, 0x0f, 0xea, 0x38, 0x6d, 0x27, 0xed, 0x34, 0xfd, 0x9d, 0x69, 0xe2, 0x3a, 0x6e,
- 0x93, 0x4e, 0xe3, 0x34, 0xfd, 0x4b, 0x9a, 0x36, 0x4d, 0xd2, 0x97, 0xf4, 0x21, 0xad, 0x9f, 0x3a,
- 0xc9, 0x5b, 0x1f, 0x3a, 0xad, 0xc5, 0x78, 0xa6, 0x6e, 0xeb, 0x36, 0x6e, 0xab, 0x07, 0xcf, 0xe8,
- 0xa5, 0x73, 0xff, 0xb0, 0x00, 0x76, 0x49, 0x80, 0xe9, 0xd8, 0x7e, 0x22, 0x71, 0xee, 0xf9, 0x3e,
- 0x9c, 0x7b, 0xee, 0xb9, 0xe7, 0x9c, 0x7b, 0xb1, 0xf0, 0xe3, 0xcb, 0x30, 0xdb, 0xb1, 0xac, 0x8e,
- 0x81, 0x16, 0x6d, 0xc7, 0xf2, 0xac, 0x9d, 0xde, 0xee, 0x62, 0x1b, 0xb9, 0x9a, 0xa3, 0xdb, 0x9e,
- 0xe5, 0x2c, 0x10, 0x99, 0x34, 0x41, 0x35, 0x16, 0xb8, 0xc6, 0xdc, 0x1a, 0x4c, 0x5e, 0xd5, 0x0d,
- 0xb4, 0xec, 0x2b, 0xb6, 0x90, 0x27, 0x5d, 0x82, 0xcc, 0xae, 0x6e, 0xa0, 0xb2, 0x30, 0x9b, 0x9e,
- 0x2f, 0x9c, 0x7b, 0x64, 0x21, 0x02, 0x5a, 0x08, 0x23, 0x36, 0xb1, 0x58, 0x26, 0x88, 0xb9, 0x37,
- 0x32, 0x30, 0x35, 0x64, 0x54, 0x92, 0x20, 0x63, 0xaa, 0x5d, 0xcc, 0x28, 0xcc, 0xe7, 0x65, 0xf2,
- 0xbf, 0x54, 0x86, 0x31, 0x5b, 0xd5, 0x6e, 0xa8, 0x1d, 0x54, 0x4e, 0x11, 0x31, 0x7f, 0x94, 0x2a,
- 0x00, 0x6d, 0x64, 0x23, 0xb3, 0x8d, 0x4c, 0x6d, 0xbf, 0x9c, 0x9e, 0x4d, 0xcf, 0xe7, 0xe5, 0x80,
- 0x44, 0x7a, 0x02, 0x26, 0xed, 0xde, 0x8e, 0xa1, 0x6b, 0x4a, 0x40, 0x0d, 0x66, 0xd3, 0xf3, 0x59,
- 0x59, 0xa4, 0x03, 0xcb, 0x7d, 0xe5, 0xb3, 0x30, 0x71, 0x0b, 0xa9, 0x37, 0x82, 0xaa, 0x05, 0xa2,
- 0x5a, 0xc2, 0xe2, 0x80, 0x62, 0x1d, 0x8a, 0x5d, 0xe4, 0xba, 0x6a, 0x07, 0x29, 0xde, 0xbe, 0x8d,
- 0xca, 0x19, 0x32, 0xfb, 0xd9, 0x81, 0xd9, 0x47, 0x67, 0x5e, 0x60, 0xa8, 0xad, 0x7d, 0x1b, 0x49,
- 0x35, 0xc8, 0x23, 0xb3, 0xd7, 0xa5, 0x0c, 0xd9, 0x43, 0xfc, 0xd7, 0x30, 0x7b, 0xdd, 0x28, 0x4b,
- 0x0e, 0xc3, 0x18, 0xc5, 0x98, 0x8b, 0x9c, 0x9b, 0xba, 0x86, 0xca, 0xa3, 0x84, 0xe0, 0xec, 0x00,
- 0x41, 0x8b, 0x8e, 0x47, 0x39, 0x38, 0x4e, 0xaa, 0x43, 0x1e, 0xbd, 0xe0, 0x21, 0xd3, 0xd5, 0x2d,
- 0xb3, 0x3c, 0x46, 0x48, 0x1e, 0x1d, 0xb2, 0x8a, 0xc8, 0x68, 0x47, 0x29, 0xfa, 0x38, 0xe9, 0x22,
- 0x8c, 0x59, 0xb6, 0xa7, 0x5b, 0xa6, 0x5b, 0xce, 0xcd, 0x0a, 0xf3, 0x85, 0x73, 0x1f, 0x18, 0x1a,
- 0x08, 0x1b, 0x54, 0x47, 0xe6, 0xca, 0x52, 0x13, 0x44, 0xd7, 0xea, 0x39, 0x1a, 0x52, 0x34, 0xab,
- 0x8d, 0x14, 0xdd, 0xdc, 0xb5, 0xca, 0x79, 0x42, 0x70, 0x7a, 0x70, 0x22, 0x44, 0xb1, 0x6e, 0xb5,
- 0x51, 0xd3, 0xdc, 0xb5, 0xe4, 0x92, 0x1b, 0x7a, 0x96, 0x4e, 0xc0, 0xa8, 0xbb, 0x6f, 0x7a, 0xea,
- 0x0b, 0xe5, 0x22, 0x89, 0x10, 0xf6, 0x34, 0xf7, 0x9d, 0x51, 0x98, 0x48, 0x12, 0x62, 0x57, 0x20,
- 0xbb, 0x8b, 0x67, 0x59, 0x4e, 0x1d, 0xc7, 0x07, 0x14, 0x13, 0x76, 0xe2, 0xe8, 0x4f, 0xe8, 0xc4,
- 0x1a, 0x14, 0x4c, 0xe4, 0x7a, 0xa8, 0x4d, 0x23, 0x22, 0x9d, 0x30, 0xa6, 0x80, 0x82, 0x06, 0x43,
- 0x2a, 0xf3, 0x13, 0x85, 0xd4, 0x73, 0x30, 0xe1, 0x9b, 0xa4, 0x38, 0xaa, 0xd9, 0xe1, 0xb1, 0xb9,
- 0x18, 0x67, 0xc9, 0x42, 0x83, 0xe3, 0x64, 0x0c, 0x93, 0x4b, 0x28, 0xf4, 0x2c, 0x2d, 0x03, 0x58,
- 0x26, 0xb2, 0x76, 0x95, 0x36, 0xd2, 0x8c, 0x72, 0xee, 0x10, 0x2f, 0x6d, 0x60, 0x95, 0x01, 0x2f,
- 0x59, 0x54, 0xaa, 0x19, 0xd2, 0xe5, 0x7e, 0xa8, 0x8d, 0x1d, 0x12, 0x29, 0x6b, 0x74, 0x93, 0x0d,
- 0x44, 0xdb, 0x36, 0x94, 0x1c, 0x84, 0xe3, 0x1e, 0xb5, 0xd9, 0xcc, 0xf2, 0xc4, 0x88, 0x85, 0xd8,
- 0x99, 0xc9, 0x0c, 0x46, 0x27, 0x36, 0xee, 0x04, 0x1f, 0xa5, 0x87, 0xc1, 0x17, 0x28, 0x24, 0xac,
- 0x80, 0x64, 0xa1, 0x22, 0x17, 0xae, 0xab, 0x5d, 0x34, 0x73, 0x1b, 0x4a, 0x61, 0xf7, 0x48, 0xd3,
- 0x90, 0x75, 0x3d, 0xd5, 0xf1, 0x48, 0x14, 0x66, 0x65, 0xfa, 0x20, 0x89, 0x90, 0x46, 0x66, 0x9b,
- 0x64, 0xb9, 0xac, 0x8c, 0xff, 0x95, 0x7e, 0xba, 0x3f, 0xe1, 0x34, 0x99, 0xf0, 0x07, 0x07, 0x57,
- 0x34, 0xc4, 0x1c, 0x9d, 0xf7, 0xcc, 0x53, 0x30, 0x1e, 0x9a, 0x40, 0xd2, 0x57, 0xcf, 0xfd, 0x1c,
- 0x3c, 0x30, 0x94, 0x5a, 0x7a, 0x0e, 0xa6, 0x7b, 0xa6, 0x6e, 0x7a, 0xc8, 0xb1, 0x1d, 0x84, 0x23,
- 0x96, 0xbe, 0xaa, 0xfc, 0xaf, 0x63, 0x87, 0xc4, 0xdc, 0x76, 0x50, 0x9b, 0xb2, 0xc8, 0x53, 0xbd,
- 0x41, 0xe1, 0xe3, 0xf9, 0xdc, 0x9b, 0x63, 0xe2, 0x9d, 0x3b, 0x77, 0xee, 0xa4, 0xe6, 0x3e, 0x3f,
- 0x0a, 0xd3, 0xc3, 0xf6, 0xcc, 0xd0, 0xed, 0x7b, 0x02, 0x46, 0xcd, 0x5e, 0x77, 0x07, 0x39, 0xc4,
- 0x49, 0x59, 0x99, 0x3d, 0x49, 0x35, 0xc8, 0x1a, 0xea, 0x0e, 0x32, 0xca, 0x99, 0x59, 0x61, 0xbe,
- 0x74, 0xee, 0x89, 0x44, 0xbb, 0x72, 0x61, 0x15, 0x43, 0x64, 0x8a, 0x94, 0x3e, 0x06, 0x19, 0x96,
- 0xa2, 0x31, 0xc3, 0xe3, 0xc9, 0x18, 0xf0, 0x5e, 0x92, 0x09, 0x4e, 0x7a, 0x10, 0xf2, 0xf8, 0x2f,
- 0x8d, 0x8d, 0x51, 0x62, 0x73, 0x0e, 0x0b, 0x70, 0x5c, 0x48, 0x33, 0x90, 0x23, 0xdb, 0xa4, 0x8d,
- 0x78, 0x69, 0xf3, 0x9f, 0x71, 0x60, 0xb5, 0xd1, 0xae, 0xda, 0x33, 0x3c, 0xe5, 0xa6, 0x6a, 0xf4,
- 0x10, 0x09, 0xf8, 0xbc, 0x5c, 0x64, 0xc2, 0x4f, 0x62, 0x99, 0x74, 0x1a, 0x0a, 0x74, 0x57, 0xe9,
- 0x66, 0x1b, 0xbd, 0x40, 0xb2, 0x67, 0x56, 0xa6, 0x1b, 0xad, 0x89, 0x25, 0xf8, 0xf5, 0xd7, 0x5d,
- 0xcb, 0xe4, 0xa1, 0x49, 0x5e, 0x81, 0x05, 0xe4, 0xf5, 0x4f, 0x45, 0x13, 0xf7, 0x43, 0xc3, 0xa7,
- 0x17, 0x8d, 0xa9, 0xb9, 0x6f, 0xa5, 0x20, 0x43, 0xf2, 0xc5, 0x04, 0x14, 0xb6, 0xae, 0x6d, 0x36,
- 0x94, 0xe5, 0x8d, 0xed, 0xa5, 0xd5, 0x86, 0x28, 0x48, 0x25, 0x00, 0x22, 0xb8, 0xba, 0xba, 0x51,
- 0xdb, 0x12, 0x53, 0xfe, 0x73, 0x73, 0x7d, 0xeb, 0xe2, 0x79, 0x31, 0xed, 0x03, 0xb6, 0xa9, 0x20,
- 0x13, 0x54, 0x78, 0xf2, 0x9c, 0x98, 0x95, 0x44, 0x28, 0x52, 0x82, 0xe6, 0x73, 0x8d, 0xe5, 0x8b,
- 0xe7, 0xc5, 0xd1, 0xb0, 0xe4, 0xc9, 0x73, 0xe2, 0x98, 0x34, 0x0e, 0x79, 0x22, 0x59, 0xda, 0xd8,
- 0x58, 0x15, 0x73, 0x3e, 0x67, 0x6b, 0x4b, 0x6e, 0xae, 0xaf, 0x88, 0x79, 0x9f, 0x73, 0x45, 0xde,
- 0xd8, 0xde, 0x14, 0xc1, 0x67, 0x58, 0x6b, 0xb4, 0x5a, 0xb5, 0x95, 0x86, 0x58, 0xf0, 0x35, 0x96,
- 0xae, 0x6d, 0x35, 0x5a, 0x62, 0x31, 0x64, 0xd6, 0x93, 0xe7, 0xc4, 0x71, 0xff, 0x15, 0x8d, 0xf5,
- 0xed, 0x35, 0xb1, 0x24, 0x4d, 0xc2, 0x38, 0x7d, 0x05, 0x37, 0x62, 0x22, 0x22, 0xba, 0x78, 0x5e,
- 0x14, 0xfb, 0x86, 0x50, 0x96, 0xc9, 0x90, 0xe0, 0xe2, 0x79, 0x51, 0x9a, 0xab, 0x43, 0x96, 0x44,
- 0x97, 0x24, 0x41, 0x69, 0xb5, 0xb6, 0xd4, 0x58, 0x55, 0x36, 0x36, 0xb7, 0x9a, 0x1b, 0xeb, 0xb5,
- 0x55, 0x51, 0xe8, 0xcb, 0xe4, 0xc6, 0x27, 0xb6, 0x9b, 0x72, 0x63, 0x59, 0x4c, 0x05, 0x65, 0x9b,
- 0x8d, 0xda, 0x56, 0x63, 0x59, 0x4c, 0xcf, 0x69, 0x30, 0x3d, 0x2c, 0x4f, 0x0e, 0xdd, 0x19, 0x81,
- 0x25, 0x4e, 0x1d, 0xb2, 0xc4, 0x84, 0x6b, 0x60, 0x89, 0x7f, 0x94, 0x82, 0xa9, 0x21, 0xb5, 0x62,
- 0xe8, 0x4b, 0x9e, 0x86, 0x2c, 0x0d, 0x51, 0x5a, 0x3d, 0x1f, 0x1b, 0x5a, 0x74, 0x48, 0xc0, 0x0e,
- 0x54, 0x50, 0x82, 0x0b, 0x76, 0x10, 0xe9, 0x43, 0x3a, 0x08, 0x4c, 0x31, 0x90, 0xd3, 0x7f, 0x76,
- 0x20, 0xa7, 0xd3, 0xb2, 0x77, 0x31, 0x49, 0xd9, 0x23, 0xb2, 0xe3, 0xe5, 0xf6, 0xec, 0x90, 0xdc,
- 0x7e, 0x05, 0x26, 0x07, 0x88, 0x12, 0xe7, 0xd8, 0x17, 0x05, 0x28, 0x1f, 0xe6, 0x9c, 0x98, 0x4c,
- 0x97, 0x0a, 0x65, 0xba, 0x2b, 0x51, 0x0f, 0x9e, 0x39, 0x7c, 0x11, 0x06, 0xd6, 0xfa, 0x55, 0x01,
- 0x4e, 0x0c, 0xef, 0x14, 0x87, 0xda, 0xf0, 0x31, 0x18, 0xed, 0x22, 0x6f, 0xcf, 0xe2, 0xdd, 0xd2,
- 0x07, 0x87, 0xd4, 0x60, 0x3c, 0x1c, 0x5d, 0x6c, 0x86, 0x0a, 0x16, 0xf1, 0xf4, 0x61, 0xed, 0x1e,
- 0xb5, 0x66, 0xc0, 0xd2, 0xcf, 0xa6, 0xe0, 0x81, 0xa1, 0xe4, 0x43, 0x0d, 0x7d, 0x08, 0x40, 0x37,
- 0xed, 0x9e, 0x47, 0x3b, 0x22, 0x9a, 0x60, 0xf3, 0x44, 0x42, 0x92, 0x17, 0x4e, 0x9e, 0x3d, 0xcf,
- 0x1f, 0x4f, 0x93, 0x71, 0xa0, 0x22, 0xa2, 0x70, 0xa9, 0x6f, 0x68, 0x86, 0x18, 0x5a, 0x39, 0x64,
- 0xa6, 0x03, 0x81, 0xf9, 0x11, 0x10, 0x35, 0x43, 0x47, 0xa6, 0xa7, 0xb8, 0x9e, 0x83, 0xd4, 0xae,
- 0x6e, 0x76, 0x48, 0x05, 0xc9, 0x55, 0xb3, 0xbb, 0xaa, 0xe1, 0x22, 0x79, 0x82, 0x0e, 0xb7, 0xf8,
- 0x28, 0x46, 0x90, 0x00, 0x72, 0x02, 0x88, 0xd1, 0x10, 0x82, 0x0e, 0xfb, 0x88, 0xb9, 0x6f, 0xe6,
- 0xa0, 0x10, 0xe8, 0xab, 0xa5, 0x33, 0x50, 0xbc, 0xae, 0xde, 0x54, 0x15, 0x7e, 0x56, 0xa2, 0x9e,
- 0x28, 0x60, 0xd9, 0x26, 0x3b, 0x2f, 0x7d, 0x04, 0xa6, 0x89, 0x8a, 0xd5, 0xf3, 0x90, 0xa3, 0x68,
- 0x86, 0xea, 0xba, 0xc4, 0x69, 0x39, 0xa2, 0x2a, 0xe1, 0xb1, 0x0d, 0x3c, 0x54, 0xe7, 0x23, 0xd2,
- 0x05, 0x98, 0x22, 0x88, 0x6e, 0xcf, 0xf0, 0x74, 0xdb, 0x40, 0x0a, 0x3e, 0xbd, 0xb9, 0xa4, 0x92,
- 0xf8, 0x96, 0x4d, 0x62, 0x8d, 0x35, 0xa6, 0x80, 0x2d, 0x72, 0xa5, 0x65, 0x78, 0x88, 0xc0, 0x3a,
- 0xc8, 0x44, 0x8e, 0xea, 0x21, 0x05, 0x7d, 0xba, 0xa7, 0x1a, 0xae, 0xa2, 0x9a, 0x6d, 0x65, 0x4f,
- 0x75, 0xf7, 0xca, 0xd3, 0x98, 0x60, 0x29, 0x55, 0x16, 0xe4, 0x53, 0x58, 0x71, 0x85, 0xe9, 0x35,
- 0x88, 0x5a, 0xcd, 0x6c, 0x7f, 0x5c, 0x75, 0xf7, 0xa4, 0x2a, 0x9c, 0x20, 0x2c, 0xae, 0xe7, 0xe8,
- 0x66, 0x47, 0xd1, 0xf6, 0x90, 0x76, 0x43, 0xe9, 0x79, 0xbb, 0x97, 0xca, 0x0f, 0x06, 0xdf, 0x4f,
- 0x2c, 0x6c, 0x11, 0x9d, 0x3a, 0x56, 0xd9, 0xf6, 0x76, 0x2f, 0x49, 0x2d, 0x28, 0xe2, 0xc5, 0xe8,
- 0xea, 0xb7, 0x91, 0xb2, 0x6b, 0x39, 0xa4, 0x34, 0x96, 0x86, 0xa4, 0xa6, 0x80, 0x07, 0x17, 0x36,
- 0x18, 0x60, 0xcd, 0x6a, 0xa3, 0x6a, 0xb6, 0xb5, 0xd9, 0x68, 0x2c, 0xcb, 0x05, 0xce, 0x72, 0xd5,
- 0x72, 0x70, 0x40, 0x75, 0x2c, 0xdf, 0xc1, 0x05, 0x1a, 0x50, 0x1d, 0x8b, 0xbb, 0xf7, 0x02, 0x4c,
- 0x69, 0x1a, 0x9d, 0xb3, 0xae, 0x29, 0xec, 0x8c, 0xe5, 0x96, 0xc5, 0x90, 0xb3, 0x34, 0x6d, 0x85,
- 0x2a, 0xb0, 0x18, 0x77, 0xa5, 0xcb, 0xf0, 0x40, 0xdf, 0x59, 0x41, 0xe0, 0xe4, 0xc0, 0x2c, 0xa3,
- 0xd0, 0x0b, 0x30, 0x65, 0xef, 0x0f, 0x02, 0xa5, 0xd0, 0x1b, 0xed, 0xfd, 0x28, 0xec, 0x29, 0x98,
- 0xb6, 0xf7, 0xec, 0x41, 0xdc, 0xe3, 0x41, 0x9c, 0x64, 0xef, 0xd9, 0x51, 0xe0, 0xa3, 0xe4, 0xc0,
- 0xed, 0x20, 0x4d, 0xf5, 0x50, 0xbb, 0x7c, 0x32, 0xa8, 0x1e, 0x18, 0x90, 0x16, 0x41, 0xd4, 0x34,
- 0x05, 0x99, 0xea, 0x8e, 0x81, 0x14, 0xd5, 0x41, 0xa6, 0xea, 0x96, 0x4f, 0x07, 0x95, 0x4b, 0x9a,
- 0xd6, 0x20, 0xa3, 0x35, 0x32, 0x28, 0x3d, 0x0e, 0x93, 0xd6, 0xce, 0x75, 0x8d, 0x86, 0xa4, 0x62,
- 0x3b, 0x68, 0x57, 0x7f, 0xa1, 0xfc, 0x08, 0xf1, 0xef, 0x04, 0x1e, 0x20, 0x01, 0xb9, 0x49, 0xc4,
- 0xd2, 0x63, 0x20, 0x6a, 0xee, 0x9e, 0xea, 0xd8, 0x24, 0x27, 0xbb, 0xb6, 0xaa, 0xa1, 0xf2, 0xa3,
- 0x54, 0x95, 0xca, 0xd7, 0xb9, 0x18, 0x6f, 0x09, 0xf7, 0x96, 0xbe, 0xeb, 0x71, 0xc6, 0xb3, 0x74,
- 0x4b, 0x10, 0x19, 0x63, 0x9b, 0x07, 0x11, 0xbb, 0x22, 0xf4, 0xe2, 0x79, 0xa2, 0x56, 0xb2, 0xf7,
- 0xec, 0xe0, 0x7b, 0x1f, 0x86, 0x71, 0xac, 0xd9, 0x7f, 0xe9, 0x63, 0xb4, 0x21, 0xb3, 0xf7, 0x02,
- 0x6f, 0x7c, 0xd7, 0x7a, 0xe3, 0xb9, 0x2a, 0x14, 0x83, 0xf1, 0x29, 0xe5, 0x81, 0x46, 0xa8, 0x28,
- 0xe0, 0x66, 0xa5, 0xbe, 0xb1, 0x8c, 0xdb, 0x8c, 0xe7, 0x1b, 0x62, 0x0a, 0xb7, 0x3b, 0xab, 0xcd,
- 0xad, 0x86, 0x22, 0x6f, 0xaf, 0x6f, 0x35, 0xd7, 0x1a, 0x62, 0x3a, 0xd8, 0x57, 0x7f, 0x3f, 0x05,
- 0xa5, 0xf0, 0x11, 0x49, 0xfa, 0x29, 0x38, 0xc9, 0xef, 0x33, 0x5c, 0xe4, 0x29, 0xb7, 0x74, 0x87,
- 0x6c, 0x99, 0xae, 0x4a, 0xcb, 0x97, 0xbf, 0x68, 0xd3, 0x4c, 0xab, 0x85, 0xbc, 0x67, 0x75, 0x07,
- 0x6f, 0x88, 0xae, 0xea, 0x49, 0xab, 0x70, 0xda, 0xb4, 0x14, 0xd7, 0x53, 0xcd, 0xb6, 0xea, 0xb4,
- 0x95, 0xfe, 0x4d, 0x92, 0xa2, 0x6a, 0x1a, 0x72, 0x5d, 0x8b, 0x96, 0x2a, 0x9f, 0xe5, 0x03, 0xa6,
- 0xd5, 0x62, 0xca, 0xfd, 0x1c, 0x5e, 0x63, 0xaa, 0x91, 0x00, 0x4b, 0x1f, 0x16, 0x60, 0x0f, 0x42,
- 0xbe, 0xab, 0xda, 0x0a, 0x32, 0x3d, 0x67, 0x9f, 0x34, 0xc6, 0x39, 0x39, 0xd7, 0x55, 0xed, 0x06,
- 0x7e, 0x7e, 0x6f, 0xce, 0x27, 0xff, 0x94, 0x86, 0x62, 0xb0, 0x39, 0xc6, 0x67, 0x0d, 0x8d, 0xd4,
- 0x11, 0x81, 0x64, 0x9a, 0x87, 0x8f, 0x6c, 0xa5, 0x17, 0xea, 0xb8, 0xc0, 0x54, 0x47, 0x69, 0xcb,
- 0x2a, 0x53, 0x24, 0x2e, 0xee, 0x38, 0xb7, 0x20, 0xda, 0x22, 0xe4, 0x64, 0xf6, 0x24, 0xad, 0xc0,
- 0xe8, 0x75, 0x97, 0x70, 0x8f, 0x12, 0xee, 0x47, 0x8e, 0xe6, 0x7e, 0xa6, 0x45, 0xc8, 0xf3, 0xcf,
- 0xb4, 0x94, 0xf5, 0x0d, 0x79, 0xad, 0xb6, 0x2a, 0x33, 0xb8, 0x74, 0x0a, 0x32, 0x86, 0x7a, 0x7b,
- 0x3f, 0x5c, 0x8a, 0x88, 0x28, 0xa9, 0xe3, 0x4f, 0x41, 0xe6, 0x16, 0x52, 0x6f, 0x84, 0x0b, 0x00,
- 0x11, 0xbd, 0x8b, 0xa1, 0xbf, 0x08, 0x59, 0xe2, 0x2f, 0x09, 0x80, 0x79, 0x4c, 0x1c, 0x91, 0x72,
- 0x90, 0xa9, 0x6f, 0xc8, 0x38, 0xfc, 0x45, 0x28, 0x52, 0xa9, 0xb2, 0xd9, 0x6c, 0xd4, 0x1b, 0x62,
- 0x6a, 0xee, 0x02, 0x8c, 0x52, 0x27, 0xe0, 0xad, 0xe1, 0xbb, 0x41, 0x1c, 0x61, 0x8f, 0x8c, 0x43,
- 0xe0, 0xa3, 0xdb, 0x6b, 0x4b, 0x0d, 0x59, 0x4c, 0x05, 0x97, 0xd7, 0x85, 0x62, 0xb0, 0x2f, 0x7e,
- 0x6f, 0x62, 0xea, 0xbb, 0x02, 0x14, 0x02, 0x7d, 0x2e, 0x6e, 0x50, 0x54, 0xc3, 0xb0, 0x6e, 0x29,
- 0xaa, 0xa1, 0xab, 0x2e, 0x0b, 0x0a, 0x20, 0xa2, 0x1a, 0x96, 0x24, 0x5d, 0xb4, 0xf7, 0xc4, 0xf8,
- 0x57, 0x04, 0x10, 0xa3, 0x2d, 0x66, 0xc4, 0x40, 0xe1, 0x7d, 0x35, 0xf0, 0x65, 0x01, 0x4a, 0xe1,
- 0xbe, 0x32, 0x62, 0xde, 0x99, 0xf7, 0xd5, 0xbc, 0xd7, 0x53, 0x30, 0x1e, 0xea, 0x26, 0x93, 0x5a,
- 0xf7, 0x69, 0x98, 0xd4, 0xdb, 0xa8, 0x6b, 0x5b, 0x1e, 0x32, 0xb5, 0x7d, 0xc5, 0x40, 0x37, 0x91,
- 0x51, 0x9e, 0x23, 0x89, 0x62, 0xf1, 0xe8, 0x7e, 0x75, 0xa1, 0xd9, 0xc7, 0xad, 0x62, 0x58, 0x75,
- 0xaa, 0xb9, 0xdc, 0x58, 0xdb, 0xdc, 0xd8, 0x6a, 0xac, 0xd7, 0xaf, 0x29, 0xdb, 0xeb, 0x3f, 0xb3,
- 0xbe, 0xf1, 0xec, 0xba, 0x2c, 0xea, 0x11, 0xb5, 0x77, 0x71, 0xab, 0x6f, 0x82, 0x18, 0x35, 0x4a,
- 0x3a, 0x09, 0xc3, 0xcc, 0x12, 0x47, 0xa4, 0x29, 0x98, 0x58, 0xdf, 0x50, 0x5a, 0xcd, 0xe5, 0x86,
- 0xd2, 0xb8, 0x7a, 0xb5, 0x51, 0xdf, 0x6a, 0xd1, 0x1b, 0x08, 0x5f, 0x7b, 0x2b, 0xbc, 0xa9, 0x5f,
- 0x4a, 0xc3, 0xd4, 0x10, 0x4b, 0xa4, 0x1a, 0x3b, 0x3b, 0xd0, 0xe3, 0xcc, 0x87, 0x93, 0x58, 0xbf,
- 0x80, 0x4b, 0xfe, 0xa6, 0xea, 0x78, 0xec, 0xa8, 0xf1, 0x18, 0x60, 0x2f, 0x99, 0x9e, 0xbe, 0xab,
- 0x23, 0x87, 0x5d, 0xd8, 0xd0, 0x03, 0xc5, 0x44, 0x5f, 0x4e, 0xef, 0x6c, 0x3e, 0x04, 0x92, 0x6d,
- 0xb9, 0xba, 0xa7, 0xdf, 0x44, 0x8a, 0x6e, 0xf2, 0xdb, 0x1d, 0x7c, 0xc0, 0xc8, 0xc8, 0x22, 0x1f,
- 0x69, 0x9a, 0x9e, 0xaf, 0x6d, 0xa2, 0x8e, 0x1a, 0xd1, 0xc6, 0x09, 0x3c, 0x2d, 0x8b, 0x7c, 0xc4,
- 0xd7, 0x3e, 0x03, 0xc5, 0xb6, 0xd5, 0xc3, 0x5d, 0x17, 0xd5, 0xc3, 0xf5, 0x42, 0x90, 0x0b, 0x54,
- 0xe6, 0xab, 0xb0, 0x7e, 0xba, 0x7f, 0xad, 0x54, 0x94, 0x0b, 0x54, 0x46, 0x55, 0xce, 0xc2, 0x84,
- 0xda, 0xe9, 0x38, 0x98, 0x9c, 0x13, 0xd1, 0x13, 0x42, 0xc9, 0x17, 0x13, 0xc5, 0x99, 0x67, 0x20,
- 0xc7, 0xfd, 0x80, 0x4b, 0x32, 0xf6, 0x84, 0x62, 0xd3, 0x63, 0x6f, 0x6a, 0x3e, 0x2f, 0xe7, 0x4c,
- 0x3e, 0x78, 0x06, 0x8a, 0xba, 0xab, 0xf4, 0x6f, 0xc9, 0x53, 0xb3, 0xa9, 0xf9, 0x9c, 0x5c, 0xd0,
- 0x5d, 0xff, 0x86, 0x71, 0xee, 0xd5, 0x14, 0x94, 0xc2, 0xb7, 0xfc, 0xd2, 0x32, 0xe4, 0x0c, 0x4b,
- 0x53, 0x49, 0x68, 0xd1, 0x4f, 0x4c, 0xf3, 0x31, 0x1f, 0x06, 0x16, 0x56, 0x99, 0xbe, 0xec, 0x23,
- 0x67, 0xfe, 0x41, 0x80, 0x1c, 0x17, 0x4b, 0x27, 0x20, 0x63, 0xab, 0xde, 0x1e, 0xa1, 0xcb, 0x2e,
- 0xa5, 0x44, 0x41, 0x26, 0xcf, 0x58, 0xee, 0xda, 0xaa, 0x49, 0x42, 0x80, 0xc9, 0xf1, 0x33, 0x5e,
- 0x57, 0x03, 0xa9, 0x6d, 0x72, 0xfc, 0xb0, 0xba, 0x5d, 0x64, 0x7a, 0x2e, 0x5f, 0x57, 0x26, 0xaf,
- 0x33, 0xb1, 0xf4, 0x04, 0x4c, 0x7a, 0x8e, 0xaa, 0x1b, 0x21, 0xdd, 0x0c, 0xd1, 0x15, 0xf9, 0x80,
- 0xaf, 0x5c, 0x85, 0x53, 0x9c, 0xb7, 0x8d, 0x3c, 0x55, 0xdb, 0x43, 0xed, 0x3e, 0x68, 0x94, 0x5c,
- 0x33, 0x9c, 0x64, 0x0a, 0xcb, 0x6c, 0x9c, 0x63, 0xe7, 0x7e, 0x28, 0xc0, 0x24, 0x3f, 0x30, 0xb5,
- 0x7d, 0x67, 0xad, 0x01, 0xa8, 0xa6, 0x69, 0x79, 0x41, 0x77, 0x0d, 0x86, 0xf2, 0x00, 0x6e, 0xa1,
- 0xe6, 0x83, 0xe4, 0x00, 0xc1, 0x4c, 0x17, 0xa0, 0x3f, 0x72, 0xa8, 0xdb, 0x4e, 0x43, 0x81, 0x7d,
- 0xc2, 0x21, 0xdf, 0x01, 0xe9, 0x11, 0x1b, 0xa8, 0x08, 0x9f, 0xac, 0xa4, 0x69, 0xc8, 0xee, 0xa0,
- 0x8e, 0x6e, 0xb2, 0x8b, 0x59, 0xfa, 0xc0, 0x2f, 0x42, 0x32, 0xfe, 0x45, 0xc8, 0xd2, 0xa7, 0x60,
- 0x4a, 0xb3, 0xba, 0x51, 0x73, 0x97, 0xc4, 0xc8, 0x31, 0xdf, 0xfd, 0xb8, 0xf0, 0x3c, 0xf4, 0x5b,
- 0xcc, 0x77, 0x04, 0xe1, 0xcb, 0xa9, 0xf4, 0xca, 0xe6, 0xd2, 0xd7, 0x52, 0x33, 0x2b, 0x14, 0xba,
- 0xc9, 0x67, 0x2a, 0xa3, 0x5d, 0x03, 0x69, 0xd8, 0x7a, 0xf8, 0xca, 0x13, 0xf0, 0xe1, 0x8e, 0xee,
- 0xed, 0xf5, 0x76, 0x16, 0x34, 0xab, 0xbb, 0xd8, 0xb1, 0x3a, 0x56, 0xff, 0xd3, 0x27, 0x7e, 0x22,
- 0x0f, 0xe4, 0x3f, 0xf6, 0xf9, 0x33, 0xef, 0x4b, 0x67, 0x62, 0xbf, 0x95, 0x56, 0xd7, 0x61, 0x8a,
- 0x29, 0x2b, 0xe4, 0xfb, 0x0b, 0x3d, 0x45, 0x48, 0x47, 0xde, 0x61, 0x95, 0xbf, 0xf1, 0x06, 0x29,
- 0xd7, 0xf2, 0x24, 0x83, 0xe2, 0x31, 0x7a, 0xd0, 0xa8, 0xca, 0xf0, 0x40, 0x88, 0x8f, 0x6e, 0x4d,
- 0xe4, 0xc4, 0x30, 0x7e, 0x9f, 0x31, 0x4e, 0x05, 0x18, 0x5b, 0x0c, 0x5a, 0xad, 0xc3, 0xf8, 0x71,
- 0xb8, 0xfe, 0x8e, 0x71, 0x15, 0x51, 0x90, 0x64, 0x05, 0x26, 0x08, 0x89, 0xd6, 0x73, 0x3d, 0xab,
- 0x4b, 0xf2, 0xde, 0xd1, 0x34, 0x7f, 0xff, 0x06, 0xdd, 0x2b, 0x25, 0x0c, 0xab, 0xfb, 0xa8, 0x6a,
- 0x15, 0xc8, 0x27, 0xa7, 0x36, 0xd2, 0x8c, 0x18, 0x86, 0xd7, 0x98, 0x21, 0xbe, 0x7e, 0xf5, 0x93,
- 0x30, 0x8d, 0xff, 0x27, 0x69, 0x29, 0x68, 0x49, 0xfc, 0x85, 0x57, 0xf9, 0x87, 0x2f, 0xd2, 0xed,
- 0x38, 0xe5, 0x13, 0x04, 0x6c, 0x0a, 0xac, 0x62, 0x07, 0x79, 0x1e, 0x72, 0x5c, 0x45, 0x35, 0x86,
- 0x99, 0x17, 0xb8, 0x31, 0x28, 0x7f, 0xe1, 0xad, 0xf0, 0x2a, 0xae, 0x50, 0x64, 0xcd, 0x30, 0xaa,
- 0xdb, 0x70, 0x72, 0x48, 0x54, 0x24, 0xe0, 0x7c, 0x89, 0x71, 0x4e, 0x0f, 0x44, 0x06, 0xa6, 0xdd,
- 0x04, 0x2e, 0xf7, 0xd7, 0x32, 0x01, 0xe7, 0xef, 0x32, 0x4e, 0x89, 0x61, 0xf9, 0x92, 0x62, 0xc6,
- 0x67, 0x60, 0xf2, 0x26, 0x72, 0x76, 0x2c, 0x97, 0xdd, 0xd2, 0x24, 0xa0, 0x7b, 0x99, 0xd1, 0x4d,
- 0x30, 0x20, 0xb9, 0xb6, 0xc1, 0x5c, 0x97, 0x21, 0xb7, 0xab, 0x6a, 0x28, 0x01, 0xc5, 0x17, 0x19,
- 0xc5, 0x18, 0xd6, 0xc7, 0xd0, 0x1a, 0x14, 0x3b, 0x16, 0xab, 0x4c, 0xf1, 0xf0, 0x57, 0x18, 0xbc,
- 0xc0, 0x31, 0x8c, 0xc2, 0xb6, 0xec, 0x9e, 0x81, 0xcb, 0x56, 0x3c, 0xc5, 0xef, 0x71, 0x0a, 0x8e,
- 0x61, 0x14, 0xc7, 0x70, 0xeb, 0xef, 0x73, 0x0a, 0x37, 0xe0, 0xcf, 0xa7, 0xa1, 0x60, 0x99, 0xc6,
- 0xbe, 0x65, 0x26, 0x31, 0xe2, 0x4b, 0x8c, 0x01, 0x18, 0x04, 0x13, 0x5c, 0x81, 0x7c, 0xd2, 0x85,
- 0xf8, 0xc3, 0xb7, 0xf8, 0xf6, 0xe0, 0x2b, 0xb0, 0x02, 0x13, 0x3c, 0x41, 0xe9, 0x96, 0x99, 0x80,
- 0xe2, 0x2b, 0x8c, 0xa2, 0x14, 0x80, 0xb1, 0x69, 0x78, 0xc8, 0xf5, 0x3a, 0x28, 0x09, 0xc9, 0xab,
- 0x7c, 0x1a, 0x0c, 0xc2, 0x5c, 0xb9, 0x83, 0x4c, 0x6d, 0x2f, 0x19, 0xc3, 0x57, 0xb9, 0x2b, 0x39,
- 0x06, 0x53, 0xd4, 0x61, 0xbc, 0xab, 0x3a, 0xee, 0x9e, 0x6a, 0x24, 0x5a, 0x8e, 0x3f, 0x62, 0x1c,
- 0x45, 0x1f, 0xc4, 0x3c, 0xd2, 0x33, 0x8f, 0x43, 0xf3, 0x35, 0xee, 0x91, 0x00, 0x8c, 0x6d, 0x3d,
- 0xd7, 0x23, 0x57, 0x5a, 0xc7, 0x61, 0xfb, 0x63, 0xbe, 0xf5, 0x28, 0x76, 0x2d, 0xc8, 0x78, 0x05,
- 0xf2, 0xae, 0x7e, 0x3b, 0x11, 0xcd, 0x9f, 0xf0, 0x95, 0x26, 0x00, 0x0c, 0xbe, 0x06, 0xa7, 0x86,
- 0x96, 0x89, 0x04, 0x64, 0x7f, 0xca, 0xc8, 0x4e, 0x0c, 0x29, 0x15, 0x2c, 0x25, 0x1c, 0x97, 0xf2,
- 0xcf, 0x78, 0x4a, 0x40, 0x11, 0xae, 0x4d, 0x7c, 0x56, 0x70, 0xd5, 0xdd, 0xe3, 0x79, 0xed, 0xcf,
- 0xb9, 0xd7, 0x28, 0x36, 0xe4, 0xb5, 0x2d, 0x38, 0xc1, 0x18, 0x8f, 0xb7, 0xae, 0x5f, 0xe7, 0x89,
- 0x95, 0xa2, 0xb7, 0xc3, 0xab, 0xfb, 0x29, 0x98, 0xf1, 0xdd, 0xc9, 0x9b, 0x52, 0x57, 0xe9, 0xaa,
- 0x76, 0x02, 0xe6, 0x6f, 0x30, 0x66, 0x9e, 0xf1, 0xfd, 0xae, 0xd6, 0x5d, 0x53, 0x6d, 0x4c, 0xfe,
- 0x1c, 0x94, 0x39, 0x79, 0xcf, 0x74, 0x90, 0x66, 0x75, 0x4c, 0xfd, 0x36, 0x6a, 0x27, 0xa0, 0xfe,
- 0x8b, 0xc8, 0x52, 0x6d, 0x07, 0xe0, 0x98, 0xb9, 0x09, 0xa2, 0xdf, 0xab, 0x28, 0x7a, 0xd7, 0xb6,
- 0x1c, 0x2f, 0x86, 0xf1, 0x9b, 0x7c, 0xa5, 0x7c, 0x5c, 0x93, 0xc0, 0xaa, 0x0d, 0x28, 0x91, 0xc7,
- 0xa4, 0x21, 0xf9, 0x97, 0x8c, 0x68, 0xbc, 0x8f, 0x62, 0x89, 0x43, 0xb3, 0xba, 0xb6, 0xea, 0x24,
- 0xc9, 0x7f, 0x7f, 0xc5, 0x13, 0x07, 0x83, 0xb0, 0xc4, 0xe1, 0xed, 0xdb, 0x08, 0x57, 0xfb, 0x04,
- 0x0c, 0xdf, 0xe2, 0x89, 0x83, 0x63, 0x18, 0x05, 0x6f, 0x18, 0x12, 0x50, 0xfc, 0x35, 0xa7, 0xe0,
- 0x18, 0x4c, 0xf1, 0x89, 0x7e, 0xa1, 0x75, 0x50, 0x47, 0x77, 0x3d, 0x87, 0xb6, 0xc2, 0x47, 0x53,
- 0x7d, 0xfb, 0xad, 0x70, 0x13, 0x26, 0x07, 0xa0, 0x38, 0x13, 0xb1, 0x2b, 0x54, 0x72, 0x52, 0x8a,
- 0x37, 0xec, 0x3b, 0x3c, 0x13, 0x05, 0x60, 0xd8, 0xb6, 0x40, 0x87, 0x88, 0xdd, 0xae, 0xe1, 0xf3,
- 0x41, 0x02, 0xba, 0xef, 0x46, 0x8c, 0x6b, 0x71, 0x2c, 0xe6, 0x0c, 0xf4, 0x3f, 0x3d, 0xf3, 0x06,
- 0xda, 0x4f, 0x14, 0x9d, 0x7f, 0x13, 0xe9, 0x7f, 0xb6, 0x29, 0x92, 0xe6, 0x90, 0x89, 0x48, 0x3f,
- 0x25, 0xc5, 0xfd, 0x58, 0xa7, 0xfc, 0xf3, 0xf7, 0xd8, 0x7c, 0xc3, 0xed, 0x54, 0x75, 0x15, 0x07,
- 0x79, 0xb8, 0xe9, 0x89, 0x27, 0x7b, 0xf1, 0x9e, 0x1f, 0xe7, 0xa1, 0x9e, 0xa7, 0x7a, 0x15, 0xc6,
- 0x43, 0x0d, 0x4f, 0x3c, 0xd5, 0x67, 0x18, 0x55, 0x31, 0xd8, 0xef, 0x54, 0x2f, 0x40, 0x06, 0x37,
- 0x2f, 0xf1, 0xf0, 0x5f, 0x60, 0x70, 0xa2, 0x5e, 0xfd, 0x28, 0xe4, 0x78, 0xd3, 0x12, 0x0f, 0xfd,
- 0x45, 0x06, 0xf5, 0x21, 0x18, 0xce, 0x1b, 0x96, 0x78, 0xf8, 0x2f, 0x71, 0x38, 0x87, 0x60, 0x78,
- 0x72, 0x17, 0x7e, 0xef, 0x57, 0x32, 0xac, 0xe8, 0x70, 0xdf, 0x5d, 0x81, 0x31, 0xd6, 0xa9, 0xc4,
- 0xa3, 0x3f, 0xcb, 0x5e, 0xce, 0x11, 0xd5, 0xa7, 0x20, 0x9b, 0xd0, 0xe1, 0xbf, 0xca, 0xa0, 0x54,
- 0xbf, 0x5a, 0x87, 0x42, 0xa0, 0x3b, 0x89, 0x87, 0x7f, 0x8e, 0xc1, 0x83, 0x28, 0x6c, 0x3a, 0xeb,
- 0x4e, 0xe2, 0x09, 0x7e, 0x8d, 0x9b, 0xce, 0x10, 0xd8, 0x6d, 0xbc, 0x31, 0x89, 0x47, 0xff, 0x3a,
- 0xf7, 0x3a, 0x87, 0x54, 0x9f, 0x86, 0xbc, 0x5f, 0x6c, 0xe2, 0xf1, 0xbf, 0xc1, 0xf0, 0x7d, 0x0c,
- 0xf6, 0x40, 0xa0, 0xd8, 0xc5, 0x53, 0xfc, 0x26, 0xf7, 0x40, 0x00, 0x85, 0xb7, 0x51, 0xb4, 0x81,
- 0x89, 0x67, 0xfa, 0x2d, 0xbe, 0x8d, 0x22, 0xfd, 0x0b, 0x5e, 0x4d, 0x92, 0xf3, 0xe3, 0x29, 0x7e,
- 0x9b, 0xaf, 0x26, 0xd1, 0xc7, 0x66, 0x44, 0x3b, 0x82, 0x78, 0x8e, 0xdf, 0xe1, 0x66, 0x44, 0x1a,
- 0x82, 0xea, 0x26, 0x48, 0x83, 0xdd, 0x40, 0x3c, 0xdf, 0xe7, 0x19, 0xdf, 0xe4, 0x40, 0x33, 0x50,
- 0x7d, 0x16, 0x4e, 0x0c, 0xef, 0x04, 0xe2, 0x59, 0xbf, 0x70, 0x2f, 0x72, 0x76, 0x0b, 0x36, 0x02,
- 0xd5, 0xad, 0x7e, 0x49, 0x09, 0x76, 0x01, 0xf1, 0xb4, 0x2f, 0xdd, 0x0b, 0x27, 0xee, 0x60, 0x13,
- 0x50, 0xad, 0x01, 0xf4, 0x0b, 0x70, 0x3c, 0xd7, 0xcb, 0x8c, 0x2b, 0x00, 0xc2, 0x5b, 0x83, 0xd5,
- 0xdf, 0x78, 0xfc, 0x17, 0xf9, 0xd6, 0x60, 0x08, 0xbc, 0x35, 0x78, 0xe9, 0x8d, 0x47, 0xbf, 0xc2,
- 0xb7, 0x06, 0x87, 0xe0, 0xc8, 0x0e, 0x54, 0xb7, 0x78, 0x86, 0x2f, 0xf1, 0xc8, 0x0e, 0xa0, 0xaa,
- 0xeb, 0x30, 0x39, 0x50, 0x10, 0xe3, 0xa9, 0xbe, 0xcc, 0xa8, 0xc4, 0x68, 0x3d, 0x0c, 0x16, 0x2f,
- 0x56, 0x0c, 0xe3, 0xd9, 0xfe, 0x20, 0x52, 0xbc, 0x58, 0x2d, 0xac, 0x5e, 0x81, 0x9c, 0xd9, 0x33,
- 0x0c, 0xbc, 0x79, 0xa4, 0xa3, 0x7f, 0x60, 0x57, 0xfe, 0xb7, 0xfb, 0xcc, 0x3b, 0x1c, 0x50, 0xbd,
- 0x00, 0x59, 0xd4, 0xdd, 0x41, 0xed, 0x38, 0xe4, 0xbf, 0xdf, 0xe7, 0x09, 0x13, 0x6b, 0x57, 0x9f,
- 0x06, 0xa0, 0x57, 0x23, 0xe4, 0xb3, 0x5f, 0x0c, 0xf6, 0x3f, 0xee, 0xb3, 0x9f, 0xbe, 0xf4, 0x21,
- 0x7d, 0x02, 0xfa, 0x43, 0x9a, 0xa3, 0x09, 0xde, 0x0a, 0x13, 0x90, 0x15, 0xb9, 0x0c, 0x63, 0xd7,
- 0x5d, 0xcb, 0xf4, 0xd4, 0x4e, 0x1c, 0xfa, 0x3f, 0x19, 0x9a, 0xeb, 0x63, 0x87, 0x75, 0x2d, 0x07,
- 0x79, 0x6a, 0xc7, 0x8d, 0xc3, 0xfe, 0x17, 0xc3, 0xfa, 0x00, 0x0c, 0xd6, 0x54, 0xd7, 0x4b, 0x32,
- 0xef, 0x1f, 0x73, 0x30, 0x07, 0x60, 0xa3, 0xf1, 0xff, 0x37, 0xd0, 0x7e, 0x1c, 0xf6, 0x6d, 0x6e,
- 0x34, 0xd3, 0xaf, 0x7e, 0x14, 0xf2, 0xf8, 0x5f, 0xfa, 0x7b, 0xb6, 0x18, 0xf0, 0x7f, 0x33, 0x70,
- 0x1f, 0x81, 0xdf, 0xec, 0x7a, 0x6d, 0x4f, 0x8f, 0x77, 0xf6, 0xff, 0xb0, 0x95, 0xe6, 0xfa, 0xd5,
- 0x1a, 0x14, 0x5c, 0xaf, 0xdd, 0xee, 0xb1, 0xfe, 0x34, 0x06, 0xfe, 0xbf, 0xf7, 0xfd, 0x2b, 0x0b,
- 0x1f, 0x83, 0x57, 0xfb, 0xd6, 0x0d, 0xcf, 0xb6, 0xc8, 0x67, 0x8e, 0x38, 0x86, 0x7b, 0x8c, 0x21,
- 0x00, 0x59, 0x6a, 0x0c, 0xbf, 0xbe, 0x85, 0x15, 0x6b, 0xc5, 0xa2, 0x17, 0xb7, 0xcf, 0xcf, 0xc5,
- 0xdf, 0xc0, 0xc2, 0xe7, 0xb2, 0x30, 0xab, 0x59, 0xdd, 0x1d, 0xcb, 0x5d, 0xf4, 0xd3, 0xf1, 0xa2,
- 0xef, 0x24, 0x7e, 0x37, 0xeb, 0x0b, 0x66, 0x8e, 0x77, 0xab, 0x3b, 0xf7, 0xb7, 0x69, 0xc8, 0xd5,
- 0x55, 0xd7, 0x53, 0x6f, 0xa9, 0xfb, 0x92, 0x0d, 0x53, 0xf8, 0xff, 0x35, 0xd5, 0x26, 0x77, 0x84,
- 0x6c, 0x33, 0xb3, 0x8b, 0xf3, 0x0f, 0x2d, 0xf4, 0xdf, 0xca, 0x11, 0x0b, 0x43, 0xd4, 0xc9, 0x0f,
- 0x0e, 0x96, 0xc4, 0xd7, 0xfe, 0xf9, 0xf4, 0xc8, 0x2f, 0xff, 0xcb, 0xe9, 0xdc, 0xda, 0xfe, 0xb3,
- 0xba, 0xe1, 0x5a, 0xa6, 0x3c, 0x8c, 0x5a, 0xfa, 0x8c, 0x00, 0x0f, 0x0e, 0x91, 0xaf, 0xb3, 0xbd,
- 0xce, 0x3e, 0x3f, 0x9d, 0x4f, 0xf8, 0x6a, 0x0e, 0xa3, 0x26, 0x14, 0x43, 0xaf, 0x3f, 0xea, 0x35,
- 0x33, 0xd7, 0xa0, 0x7c, 0xd8, 0x4c, 0x24, 0x11, 0xd2, 0x37, 0xd0, 0x3e, 0xfb, 0xd5, 0x22, 0xfe,
- 0x57, 0x3a, 0xdb, 0xff, 0x6d, 0xa7, 0x30, 0x5f, 0x38, 0x37, 0x19, 0xb0, 0x8e, 0xbd, 0x8c, 0x8e,
- 0x57, 0x53, 0x97, 0x84, 0x19, 0x15, 0x66, 0xe3, 0x2c, 0xfd, 0x7f, 0xbe, 0x62, 0xae, 0x02, 0xa3,
- 0x54, 0x28, 0x4d, 0x43, 0xb6, 0x69, 0x7a, 0x17, 0xcf, 0x13, 0xaa, 0xb4, 0x4c, 0x1f, 0x96, 0x56,
- 0x5f, 0xbb, 0x5b, 0x19, 0xf9, 0xc1, 0xdd, 0xca, 0xc8, 0x3f, 0xde, 0xad, 0x8c, 0xbc, 0x7e, 0xb7,
- 0x22, 0xbc, 0x79, 0xb7, 0x22, 0xbc, 0x7d, 0xb7, 0x22, 0xbc, 0x73, 0xb7, 0x22, 0xdc, 0x39, 0xa8,
- 0x08, 0x5f, 0x3d, 0xa8, 0x08, 0x5f, 0x3f, 0xa8, 0x08, 0xdf, 0x3e, 0xa8, 0x08, 0xdf, 0x3b, 0xa8,
- 0x08, 0xaf, 0x1d, 0x54, 0x84, 0x1f, 0x1c, 0x54, 0x46, 0x5e, 0x3f, 0xa8, 0x08, 0x6f, 0x1e, 0x54,
- 0x46, 0xde, 0x3e, 0xa8, 0x08, 0xef, 0x1c, 0x54, 0x46, 0xee, 0xfc, 0xa8, 0x32, 0xf2, 0x7f, 0x01,
- 0x00, 0x00, 0xff, 0xff, 0x70, 0xfd, 0x70, 0x7d, 0x2c, 0x35, 0x00, 0x00,
+ // 4046 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xdc, 0xe6,
+ 0x75, 0x26, 0xf6, 0x42, 0xee, 0x9e, 0x5d, 0x2e, 0x41, 0x90, 0x96, 0x56, 0x74, 0xbc, 0xa2, 0x68,
+ 0x3b, 0xa2, 0x6f, 0x64, 0x46, 0x96, 0x64, 0x79, 0xd5, 0xc4, 0x5d, 0x2e, 0x57, 0xcc, 0xba, 0xbc,
+ 0x05, 0x4b, 0xc6, 0x96, 0x33, 0x1d, 0x0c, 0x88, 0xfd, 0xb9, 0x84, 0x84, 0x05, 0x10, 0x00, 0x2b,
+ 0x99, 0x9a, 0x3e, 0xa8, 0xe3, 0xb4, 0x9d, 0xf4, 0x92, 0x5e, 0x67, 0x9a, 0xb8, 0x8e, 0xdb, 0xa4,
+ 0xd3, 0x38, 0x4d, 0x6f, 0x49, 0x2f, 0x69, 0x92, 0xbe, 0xa4, 0x0f, 0x69, 0xf5, 0xd4, 0x49, 0xde,
+ 0xfa, 0xd0, 0x69, 0x2d, 0xc6, 0x33, 0x75, 0x5b, 0xb7, 0x75, 0x5b, 0x3d, 0x78, 0xc6, 0x2f, 0x9d,
+ 0xff, 0x86, 0x05, 0xb0, 0x4b, 0x02, 0x4c, 0xc6, 0xf6, 0x13, 0x89, 0xf3, 0x9f, 0xef, 0xc3, 0xf9,
+ 0xcf, 0x7f, 0xfe, 0x73, 0xce, 0xff, 0x63, 0xe1, 0x4e, 0x15, 0x66, 0x3b, 0x96, 0xd5, 0x31, 0xd0,
+ 0xa2, 0xed, 0x58, 0x9e, 0xb5, 0xd3, 0xdb, 0x5d, 0x6c, 0x23, 0x57, 0x73, 0x74, 0xdb, 0xb3, 0x9c,
+ 0x05, 0x22, 0x93, 0x26, 0xa8, 0xc6, 0x02, 0xd7, 0x98, 0x5b, 0x83, 0xc9, 0x2b, 0xba, 0x81, 0x96,
+ 0x7d, 0xc5, 0x16, 0xf2, 0xa4, 0x4b, 0x90, 0xd9, 0xd5, 0x0d, 0x54, 0x16, 0x66, 0xd3, 0xf3, 0x85,
+ 0x73, 0x0f, 0x2d, 0x44, 0x40, 0x0b, 0x61, 0xc4, 0x26, 0x16, 0xcb, 0x04, 0x31, 0xf7, 0x46, 0x06,
+ 0xa6, 0x86, 0x8c, 0x4a, 0x12, 0x64, 0x4c, 0xb5, 0x8b, 0x19, 0x85, 0xf9, 0xbc, 0x4c, 0xfe, 0x97,
+ 0xca, 0x30, 0x66, 0xab, 0xda, 0x75, 0xb5, 0x83, 0xca, 0x29, 0x22, 0xe6, 0x8f, 0x52, 0x05, 0xa0,
+ 0x8d, 0x6c, 0x64, 0xb6, 0x91, 0xa9, 0xed, 0x97, 0xd3, 0xb3, 0xe9, 0xf9, 0xbc, 0x1c, 0x90, 0x48,
+ 0x8f, 0xc1, 0xa4, 0xdd, 0xdb, 0x31, 0x74, 0x4d, 0x09, 0xa8, 0xc1, 0x6c, 0x7a, 0x3e, 0x2b, 0x8b,
+ 0x74, 0x60, 0xb9, 0xaf, 0x7c, 0x16, 0x26, 0x6e, 0x22, 0xf5, 0x7a, 0x50, 0xb5, 0x40, 0x54, 0x4b,
+ 0x58, 0x1c, 0x50, 0xac, 0x43, 0xb1, 0x8b, 0x5c, 0x57, 0xed, 0x20, 0xc5, 0xdb, 0xb7, 0x51, 0x39,
+ 0x43, 0x66, 0x3f, 0x3b, 0x30, 0xfb, 0xe8, 0xcc, 0x0b, 0x0c, 0xb5, 0xb5, 0x6f, 0x23, 0xa9, 0x06,
+ 0x79, 0x64, 0xf6, 0xba, 0x94, 0x21, 0x7b, 0x88, 0xff, 0x1a, 0x66, 0xaf, 0x1b, 0x65, 0xc9, 0x61,
+ 0x18, 0xa3, 0x18, 0x73, 0x91, 0x73, 0x43, 0xd7, 0x50, 0x79, 0x94, 0x10, 0x9c, 0x1d, 0x20, 0x68,
+ 0xd1, 0xf1, 0x28, 0x07, 0xc7, 0x49, 0x75, 0xc8, 0xa3, 0x17, 0x3d, 0x64, 0xba, 0xba, 0x65, 0x96,
+ 0xc7, 0x08, 0xc9, 0xc3, 0x43, 0x56, 0x11, 0x19, 0xed, 0x28, 0x45, 0x1f, 0x27, 0x5d, 0x84, 0x31,
+ 0xcb, 0xf6, 0x74, 0xcb, 0x74, 0xcb, 0xb9, 0x59, 0x61, 0xbe, 0x70, 0xee, 0x43, 0x43, 0x03, 0x61,
+ 0x83, 0xea, 0xc8, 0x5c, 0x59, 0x6a, 0x82, 0xe8, 0x5a, 0x3d, 0x47, 0x43, 0x8a, 0x66, 0xb5, 0x91,
+ 0xa2, 0x9b, 0xbb, 0x56, 0x39, 0x4f, 0x08, 0x4e, 0x0f, 0x4e, 0x84, 0x28, 0xd6, 0xad, 0x36, 0x6a,
+ 0x9a, 0xbb, 0x96, 0x5c, 0x72, 0x43, 0xcf, 0xd2, 0x09, 0x18, 0x75, 0xf7, 0x4d, 0x4f, 0x7d, 0xb1,
+ 0x5c, 0x24, 0x11, 0xc2, 0x9e, 0xe6, 0xbe, 0x3d, 0x0a, 0x13, 0x49, 0x42, 0xec, 0x32, 0x64, 0x77,
+ 0xf1, 0x2c, 0xcb, 0xa9, 0xe3, 0xf8, 0x80, 0x62, 0xc2, 0x4e, 0x1c, 0xfd, 0x11, 0x9d, 0x58, 0x83,
+ 0x82, 0x89, 0x5c, 0x0f, 0xb5, 0x69, 0x44, 0xa4, 0x13, 0xc6, 0x14, 0x50, 0xd0, 0x60, 0x48, 0x65,
+ 0x7e, 0xa4, 0x90, 0x7a, 0x1e, 0x26, 0x7c, 0x93, 0x14, 0x47, 0x35, 0x3b, 0x3c, 0x36, 0x17, 0xe3,
+ 0x2c, 0x59, 0x68, 0x70, 0x9c, 0x8c, 0x61, 0x72, 0x09, 0x85, 0x9e, 0xa5, 0x65, 0x00, 0xcb, 0x44,
+ 0xd6, 0xae, 0xd2, 0x46, 0x9a, 0x51, 0xce, 0x1d, 0xe2, 0xa5, 0x0d, 0xac, 0x32, 0xe0, 0x25, 0x8b,
+ 0x4a, 0x35, 0x43, 0x7a, 0xba, 0x1f, 0x6a, 0x63, 0x87, 0x44, 0xca, 0x1a, 0xdd, 0x64, 0x03, 0xd1,
+ 0xb6, 0x0d, 0x25, 0x07, 0xe1, 0xb8, 0x47, 0x6d, 0x36, 0xb3, 0x3c, 0x31, 0x62, 0x21, 0x76, 0x66,
+ 0x32, 0x83, 0xd1, 0x89, 0x8d, 0x3b, 0xc1, 0x47, 0xe9, 0x41, 0xf0, 0x05, 0x0a, 0x09, 0x2b, 0x20,
+ 0x59, 0xa8, 0xc8, 0x85, 0xeb, 0x6a, 0x17, 0xcd, 0xdc, 0x82, 0x52, 0xd8, 0x3d, 0xd2, 0x34, 0x64,
+ 0x5d, 0x4f, 0x75, 0x3c, 0x12, 0x85, 0x59, 0x99, 0x3e, 0x48, 0x22, 0xa4, 0x91, 0xd9, 0x26, 0x59,
+ 0x2e, 0x2b, 0xe3, 0x7f, 0xa5, 0x9f, 0xec, 0x4f, 0x38, 0x4d, 0x26, 0xfc, 0xe1, 0xc1, 0x15, 0x0d,
+ 0x31, 0x47, 0xe7, 0x3d, 0xf3, 0x14, 0x8c, 0x87, 0x26, 0x90, 0xf4, 0xd5, 0x73, 0x3f, 0x03, 0xf7,
+ 0x0d, 0xa5, 0x96, 0x9e, 0x87, 0xe9, 0x9e, 0xa9, 0x9b, 0x1e, 0x72, 0x6c, 0x07, 0xe1, 0x88, 0xa5,
+ 0xaf, 0x2a, 0xff, 0xeb, 0xd8, 0x21, 0x31, 0xb7, 0x1d, 0xd4, 0xa6, 0x2c, 0xf2, 0x54, 0x6f, 0x50,
+ 0xf8, 0x68, 0x3e, 0xf7, 0xe6, 0x98, 0x78, 0xfb, 0xf6, 0xed, 0xdb, 0xa9, 0xb9, 0xcf, 0x8f, 0xc2,
+ 0xf4, 0xb0, 0x3d, 0x33, 0x74, 0xfb, 0x9e, 0x80, 0x51, 0xb3, 0xd7, 0xdd, 0x41, 0x0e, 0x71, 0x52,
+ 0x56, 0x66, 0x4f, 0x52, 0x0d, 0xb2, 0x86, 0xba, 0x83, 0x8c, 0x72, 0x66, 0x56, 0x98, 0x2f, 0x9d,
+ 0x7b, 0x2c, 0xd1, 0xae, 0x5c, 0x58, 0xc5, 0x10, 0x99, 0x22, 0xa5, 0x8f, 0x41, 0x86, 0xa5, 0x68,
+ 0xcc, 0xf0, 0x68, 0x32, 0x06, 0xbc, 0x97, 0x64, 0x82, 0x93, 0xee, 0x87, 0x3c, 0xfe, 0x4b, 0x63,
+ 0x63, 0x94, 0xd8, 0x9c, 0xc3, 0x02, 0x1c, 0x17, 0xd2, 0x0c, 0xe4, 0xc8, 0x36, 0x69, 0x23, 0x5e,
+ 0xda, 0xfc, 0x67, 0x1c, 0x58, 0x6d, 0xb4, 0xab, 0xf6, 0x0c, 0x4f, 0xb9, 0xa1, 0x1a, 0x3d, 0x44,
+ 0x02, 0x3e, 0x2f, 0x17, 0x99, 0xf0, 0x93, 0x58, 0x26, 0x9d, 0x86, 0x02, 0xdd, 0x55, 0xba, 0xd9,
+ 0x46, 0x2f, 0x92, 0xec, 0x99, 0x95, 0xe9, 0x46, 0x6b, 0x62, 0x09, 0x7e, 0xfd, 0x35, 0xd7, 0x32,
+ 0x79, 0x68, 0x92, 0x57, 0x60, 0x01, 0x79, 0xfd, 0x53, 0xd1, 0xc4, 0xfd, 0xc0, 0xf0, 0xe9, 0x45,
+ 0x63, 0x6a, 0xee, 0x9b, 0x29, 0xc8, 0x90, 0x7c, 0x31, 0x01, 0x85, 0xad, 0xab, 0x9b, 0x0d, 0x65,
+ 0x79, 0x63, 0x7b, 0x69, 0xb5, 0x21, 0x0a, 0x52, 0x09, 0x80, 0x08, 0xae, 0xac, 0x6e, 0xd4, 0xb6,
+ 0xc4, 0x94, 0xff, 0xdc, 0x5c, 0xdf, 0xba, 0x78, 0x5e, 0x4c, 0xfb, 0x80, 0x6d, 0x2a, 0xc8, 0x04,
+ 0x15, 0x9e, 0x3c, 0x27, 0x66, 0x25, 0x11, 0x8a, 0x94, 0xa0, 0xf9, 0x7c, 0x63, 0xf9, 0xe2, 0x79,
+ 0x71, 0x34, 0x2c, 0x79, 0xf2, 0x9c, 0x38, 0x26, 0x8d, 0x43, 0x9e, 0x48, 0x96, 0x36, 0x36, 0x56,
+ 0xc5, 0x9c, 0xcf, 0xd9, 0xda, 0x92, 0x9b, 0xeb, 0x2b, 0x62, 0xde, 0xe7, 0x5c, 0x91, 0x37, 0xb6,
+ 0x37, 0x45, 0xf0, 0x19, 0xd6, 0x1a, 0xad, 0x56, 0x6d, 0xa5, 0x21, 0x16, 0x7c, 0x8d, 0xa5, 0xab,
+ 0x5b, 0x8d, 0x96, 0x58, 0x0c, 0x99, 0xf5, 0xe4, 0x39, 0x71, 0xdc, 0x7f, 0x45, 0x63, 0x7d, 0x7b,
+ 0x4d, 0x2c, 0x49, 0x93, 0x30, 0x4e, 0x5f, 0xc1, 0x8d, 0x98, 0x88, 0x88, 0x2e, 0x9e, 0x17, 0xc5,
+ 0xbe, 0x21, 0x94, 0x65, 0x32, 0x24, 0xb8, 0x78, 0x5e, 0x94, 0xe6, 0xea, 0x90, 0x25, 0xd1, 0x25,
+ 0x49, 0x50, 0x5a, 0xad, 0x2d, 0x35, 0x56, 0x95, 0x8d, 0xcd, 0xad, 0xe6, 0xc6, 0x7a, 0x6d, 0x55,
+ 0x14, 0xfa, 0x32, 0xb9, 0xf1, 0x89, 0xed, 0xa6, 0xdc, 0x58, 0x16, 0x53, 0x41, 0xd9, 0x66, 0xa3,
+ 0xb6, 0xd5, 0x58, 0x16, 0xd3, 0x73, 0x1a, 0x4c, 0x0f, 0xcb, 0x93, 0x43, 0x77, 0x46, 0x60, 0x89,
+ 0x53, 0x87, 0x2c, 0x31, 0xe1, 0x1a, 0x58, 0xe2, 0x1f, 0xa6, 0x60, 0x6a, 0x48, 0xad, 0x18, 0xfa,
+ 0x92, 0x67, 0x20, 0x4b, 0x43, 0x94, 0x56, 0xcf, 0x47, 0x86, 0x16, 0x1d, 0x12, 0xb0, 0x03, 0x15,
+ 0x94, 0xe0, 0x82, 0x1d, 0x44, 0xfa, 0x90, 0x0e, 0x02, 0x53, 0x0c, 0xe4, 0xf4, 0x9f, 0x1e, 0xc8,
+ 0xe9, 0xb4, 0xec, 0x5d, 0x4c, 0x52, 0xf6, 0x88, 0xec, 0x78, 0xb9, 0x3d, 0x3b, 0x24, 0xb7, 0x5f,
+ 0x86, 0xc9, 0x01, 0xa2, 0xc4, 0x39, 0xf6, 0x25, 0x01, 0xca, 0x87, 0x39, 0x27, 0x26, 0xd3, 0xa5,
+ 0x42, 0x99, 0xee, 0x72, 0xd4, 0x83, 0x67, 0x0e, 0x5f, 0x84, 0x81, 0xb5, 0x7e, 0x4d, 0x80, 0x13,
+ 0xc3, 0x3b, 0xc5, 0xa1, 0x36, 0x7c, 0x0c, 0x46, 0xbb, 0xc8, 0xdb, 0xb3, 0x78, 0xb7, 0xf4, 0xe1,
+ 0x21, 0x35, 0x18, 0x0f, 0x47, 0x17, 0x9b, 0xa1, 0x82, 0x45, 0x3c, 0x7d, 0x58, 0xbb, 0x47, 0xad,
+ 0x19, 0xb0, 0xf4, 0xb3, 0x29, 0xb8, 0x6f, 0x28, 0xf9, 0x50, 0x43, 0x1f, 0x00, 0xd0, 0x4d, 0xbb,
+ 0xe7, 0xd1, 0x8e, 0x88, 0x26, 0xd8, 0x3c, 0x91, 0x90, 0xe4, 0x85, 0x93, 0x67, 0xcf, 0xf3, 0xc7,
+ 0xd3, 0x64, 0x1c, 0xa8, 0x88, 0x28, 0x5c, 0xea, 0x1b, 0x9a, 0x21, 0x86, 0x56, 0x0e, 0x99, 0xe9,
+ 0x40, 0x60, 0x7e, 0x04, 0x44, 0xcd, 0xd0, 0x91, 0xe9, 0x29, 0xae, 0xe7, 0x20, 0xb5, 0xab, 0x9b,
+ 0x1d, 0x52, 0x41, 0x72, 0xd5, 0xec, 0xae, 0x6a, 0xb8, 0x48, 0x9e, 0xa0, 0xc3, 0x2d, 0x3e, 0x8a,
+ 0x11, 0x24, 0x80, 0x9c, 0x00, 0x62, 0x34, 0x84, 0xa0, 0xc3, 0x3e, 0x62, 0xee, 0x97, 0xf3, 0x50,
+ 0x08, 0xf4, 0xd5, 0xd2, 0x19, 0x28, 0x5e, 0x53, 0x6f, 0xa8, 0x0a, 0x3f, 0x2b, 0x51, 0x4f, 0x14,
+ 0xb0, 0x6c, 0x93, 0x9d, 0x97, 0x3e, 0x02, 0xd3, 0x44, 0xc5, 0xea, 0x79, 0xc8, 0x51, 0x34, 0x43,
+ 0x75, 0x5d, 0xe2, 0xb4, 0x1c, 0x51, 0x95, 0xf0, 0xd8, 0x06, 0x1e, 0xaa, 0xf3, 0x11, 0xe9, 0x02,
+ 0x4c, 0x11, 0x44, 0xb7, 0x67, 0x78, 0xba, 0x6d, 0x20, 0x05, 0x9f, 0xde, 0x5c, 0x52, 0x49, 0x7c,
+ 0xcb, 0x26, 0xb1, 0xc6, 0x1a, 0x53, 0xc0, 0x16, 0xb9, 0xd2, 0x32, 0x3c, 0x40, 0x60, 0x1d, 0x64,
+ 0x22, 0x47, 0xf5, 0x90, 0x82, 0x3e, 0xdd, 0x53, 0x0d, 0x57, 0x51, 0xcd, 0xb6, 0xb2, 0xa7, 0xba,
+ 0x7b, 0xe5, 0x69, 0x4c, 0xb0, 0x94, 0x2a, 0x0b, 0xf2, 0x29, 0xac, 0xb8, 0xc2, 0xf4, 0x1a, 0x44,
+ 0xad, 0x66, 0xb6, 0x3f, 0xae, 0xba, 0x7b, 0x52, 0x15, 0x4e, 0x10, 0x16, 0xd7, 0x73, 0x74, 0xb3,
+ 0xa3, 0x68, 0x7b, 0x48, 0xbb, 0xae, 0xf4, 0xbc, 0xdd, 0x4b, 0xe5, 0xfb, 0x83, 0xef, 0x27, 0x16,
+ 0xb6, 0x88, 0x4e, 0x1d, 0xab, 0x6c, 0x7b, 0xbb, 0x97, 0xa4, 0x16, 0x14, 0xf1, 0x62, 0x74, 0xf5,
+ 0x5b, 0x48, 0xd9, 0xb5, 0x1c, 0x52, 0x1a, 0x4b, 0x43, 0x52, 0x53, 0xc0, 0x83, 0x0b, 0x1b, 0x0c,
+ 0xb0, 0x66, 0xb5, 0x51, 0x35, 0xdb, 0xda, 0x6c, 0x34, 0x96, 0xe5, 0x02, 0x67, 0xb9, 0x62, 0x39,
+ 0x38, 0xa0, 0x3a, 0x96, 0xef, 0xe0, 0x02, 0x0d, 0xa8, 0x8e, 0xc5, 0xdd, 0x7b, 0x01, 0xa6, 0x34,
+ 0x8d, 0xce, 0x59, 0xd7, 0x14, 0x76, 0xc6, 0x72, 0xcb, 0x62, 0xc8, 0x59, 0x9a, 0xb6, 0x42, 0x15,
+ 0x58, 0x8c, 0xbb, 0xd2, 0xd3, 0x70, 0x5f, 0xdf, 0x59, 0x41, 0xe0, 0xe4, 0xc0, 0x2c, 0xa3, 0xd0,
+ 0x0b, 0x30, 0x65, 0xef, 0x0f, 0x02, 0xa5, 0xd0, 0x1b, 0xed, 0xfd, 0x28, 0xec, 0x29, 0x98, 0xb6,
+ 0xf7, 0xec, 0x41, 0xdc, 0xa3, 0x41, 0x9c, 0x64, 0xef, 0xd9, 0x51, 0xe0, 0xc3, 0xe4, 0xc0, 0xed,
+ 0x20, 0x4d, 0xf5, 0x50, 0xbb, 0x7c, 0x32, 0xa8, 0x1e, 0x18, 0x90, 0x16, 0x41, 0xd4, 0x34, 0x05,
+ 0x99, 0xea, 0x8e, 0x81, 0x14, 0xd5, 0x41, 0xa6, 0xea, 0x96, 0x4f, 0x07, 0x95, 0x4b, 0x9a, 0xd6,
+ 0x20, 0xa3, 0x35, 0x32, 0x28, 0x3d, 0x0a, 0x93, 0xd6, 0xce, 0x35, 0x8d, 0x86, 0xa4, 0x62, 0x3b,
+ 0x68, 0x57, 0x7f, 0xb1, 0xfc, 0x10, 0xf1, 0xef, 0x04, 0x1e, 0x20, 0x01, 0xb9, 0x49, 0xc4, 0xd2,
+ 0x23, 0x20, 0x6a, 0xee, 0x9e, 0xea, 0xd8, 0x24, 0x27, 0xbb, 0xb6, 0xaa, 0xa1, 0xf2, 0xc3, 0x54,
+ 0x95, 0xca, 0xd7, 0xb9, 0x18, 0x6f, 0x09, 0xf7, 0xa6, 0xbe, 0xeb, 0x71, 0xc6, 0xb3, 0x74, 0x4b,
+ 0x10, 0x19, 0x63, 0x9b, 0x07, 0x11, 0xbb, 0x22, 0xf4, 0xe2, 0x79, 0xa2, 0x56, 0xb2, 0xf7, 0xec,
+ 0xe0, 0x7b, 0x1f, 0x84, 0x71, 0xac, 0xd9, 0x7f, 0xe9, 0x23, 0xb4, 0x21, 0xb3, 0xf7, 0x02, 0x6f,
+ 0x3c, 0x0f, 0x27, 0xb0, 0x52, 0x17, 0x79, 0x6a, 0x5b, 0xf5, 0xd4, 0x80, 0xf6, 0xe3, 0x44, 0x1b,
+ 0xfb, 0x7d, 0x8d, 0x0d, 0x86, 0xec, 0x74, 0x7a, 0x3b, 0xfb, 0x7e, 0x64, 0x3d, 0x41, 0xed, 0xc4,
+ 0x32, 0x1e, 0x5b, 0xef, 0x59, 0xd3, 0x3d, 0x57, 0x85, 0x62, 0x30, 0xf0, 0xa5, 0x3c, 0xd0, 0xd0,
+ 0x17, 0x05, 0xdc, 0x05, 0xd5, 0x37, 0x96, 0x71, 0xff, 0xf2, 0x42, 0x43, 0x4c, 0xe1, 0x3e, 0x6a,
+ 0xb5, 0xb9, 0xd5, 0x50, 0xe4, 0xed, 0xf5, 0xad, 0xe6, 0x5a, 0x43, 0x4c, 0x07, 0x1b, 0xf6, 0xef,
+ 0xa5, 0xa0, 0x14, 0x3e, 0x7b, 0x49, 0x3f, 0x01, 0x27, 0xf9, 0x45, 0x89, 0x8b, 0x3c, 0xe5, 0xa6,
+ 0xee, 0x90, 0xbd, 0xd8, 0x55, 0x69, 0x5d, 0xf4, 0xa3, 0x61, 0x9a, 0x69, 0xb5, 0x90, 0xf7, 0x9c,
+ 0xee, 0xe0, 0x9d, 0xd6, 0x55, 0x3d, 0x69, 0x15, 0x4e, 0x9b, 0x96, 0xe2, 0x7a, 0xaa, 0xd9, 0x56,
+ 0x9d, 0xb6, 0xd2, 0xbf, 0xa2, 0x52, 0x54, 0x4d, 0x43, 0xae, 0x6b, 0xd1, 0x1a, 0xe8, 0xb3, 0x7c,
+ 0xc8, 0xb4, 0x5a, 0x4c, 0xb9, 0x5f, 0x1c, 0x6a, 0x4c, 0x35, 0x12, 0xb9, 0xe9, 0xc3, 0x22, 0xf7,
+ 0x7e, 0xc8, 0x77, 0x55, 0x5b, 0x41, 0xa6, 0xe7, 0xec, 0x93, 0x8e, 0x3b, 0x27, 0xe7, 0xba, 0xaa,
+ 0xdd, 0xc0, 0xcf, 0xef, 0xcf, 0xc1, 0xe7, 0x9f, 0xd2, 0x50, 0x0c, 0x76, 0xdd, 0xf8, 0x10, 0xa3,
+ 0x91, 0x02, 0x25, 0x90, 0x14, 0xf6, 0xe0, 0x91, 0x3d, 0xfa, 0x42, 0x1d, 0x57, 0xae, 0xea, 0x28,
+ 0xed, 0x85, 0x65, 0x8a, 0xc4, 0x5d, 0x03, 0x0e, 0x2d, 0x44, 0x7b, 0x8f, 0x9c, 0xcc, 0x9e, 0xa4,
+ 0x15, 0x18, 0xbd, 0xe6, 0x12, 0xee, 0x51, 0xc2, 0xfd, 0xd0, 0xd1, 0xdc, 0xcf, 0xb6, 0x08, 0x79,
+ 0xfe, 0xd9, 0x96, 0xb2, 0xbe, 0x21, 0xaf, 0xd5, 0x56, 0x65, 0x06, 0x97, 0x4e, 0x41, 0xc6, 0x50,
+ 0x6f, 0xed, 0x87, 0x6b, 0x1c, 0x11, 0x25, 0x75, 0xfc, 0x29, 0xc8, 0xdc, 0x44, 0xea, 0xf5, 0x70,
+ 0x65, 0x21, 0xa2, 0xf7, 0x30, 0xf4, 0x17, 0x21, 0x4b, 0xfc, 0x25, 0x01, 0x30, 0x8f, 0x89, 0x23,
+ 0x52, 0x0e, 0x32, 0xf5, 0x0d, 0x19, 0x87, 0xbf, 0x08, 0x45, 0x2a, 0x55, 0x36, 0x9b, 0x8d, 0x7a,
+ 0x43, 0x4c, 0xcd, 0x5d, 0x80, 0x51, 0xea, 0x04, 0xbc, 0x35, 0x7c, 0x37, 0x88, 0x23, 0xec, 0x91,
+ 0x71, 0x08, 0x7c, 0x74, 0x7b, 0x6d, 0xa9, 0x21, 0x8b, 0xa9, 0xe0, 0xf2, 0xba, 0x50, 0x0c, 0x36,
+ 0xdc, 0xef, 0x4f, 0x4c, 0x7d, 0x47, 0x80, 0x42, 0xa0, 0x81, 0xc6, 0x9d, 0x8f, 0x6a, 0x18, 0xd6,
+ 0x4d, 0x45, 0x35, 0x74, 0xd5, 0x65, 0x41, 0x01, 0x44, 0x54, 0xc3, 0x92, 0xa4, 0x8b, 0xf6, 0xbe,
+ 0x18, 0xff, 0xaa, 0x00, 0x62, 0xb4, 0x77, 0x8d, 0x18, 0x28, 0x7c, 0xa0, 0x06, 0xbe, 0x22, 0x40,
+ 0x29, 0xdc, 0xb0, 0x46, 0xcc, 0x3b, 0xf3, 0x81, 0x9a, 0xf7, 0x7a, 0x0a, 0xc6, 0x43, 0x6d, 0x6a,
+ 0x52, 0xeb, 0x3e, 0x0d, 0x93, 0x7a, 0x1b, 0x75, 0x6d, 0xcb, 0x43, 0xa6, 0xb6, 0xaf, 0x18, 0xe8,
+ 0x06, 0x32, 0xca, 0x73, 0x24, 0x51, 0x2c, 0x1e, 0xdd, 0x08, 0x2f, 0x34, 0xfb, 0xb8, 0x55, 0x0c,
+ 0xab, 0x4e, 0x35, 0x97, 0x1b, 0x6b, 0x9b, 0x1b, 0x5b, 0x8d, 0xf5, 0xfa, 0x55, 0x65, 0x7b, 0xfd,
+ 0xa7, 0xd6, 0x37, 0x9e, 0x5b, 0x97, 0x45, 0x3d, 0xa2, 0xf6, 0x1e, 0x6e, 0xf5, 0x4d, 0x10, 0xa3,
+ 0x46, 0x49, 0x27, 0x61, 0x98, 0x59, 0xe2, 0x88, 0x34, 0x05, 0x13, 0xeb, 0x1b, 0x4a, 0xab, 0xb9,
+ 0xdc, 0x50, 0x1a, 0x57, 0xae, 0x34, 0xea, 0x5b, 0x2d, 0x7a, 0xb5, 0xe1, 0x6b, 0x6f, 0x85, 0x37,
+ 0xf5, 0xcb, 0x69, 0x98, 0x1a, 0x62, 0x89, 0x54, 0x63, 0x87, 0x12, 0x7a, 0x4e, 0x7a, 0x22, 0x89,
+ 0xf5, 0x0b, 0xb8, 0x2b, 0xd8, 0x54, 0x1d, 0x8f, 0x9d, 0x61, 0x1e, 0x01, 0xec, 0x25, 0xd3, 0xd3,
+ 0x77, 0x75, 0xe4, 0xb0, 0x9b, 0x20, 0x7a, 0x52, 0x99, 0xe8, 0xcb, 0xe9, 0x65, 0xd0, 0xe3, 0x20,
+ 0xd9, 0x96, 0xab, 0x7b, 0xfa, 0x0d, 0xa4, 0xe8, 0x26, 0xbf, 0x36, 0xc2, 0x27, 0x97, 0x8c, 0x2c,
+ 0xf2, 0x91, 0xa6, 0xe9, 0xf9, 0xda, 0x26, 0xea, 0xa8, 0x11, 0x6d, 0x9c, 0xc0, 0xd3, 0xb2, 0xc8,
+ 0x47, 0x7c, 0xed, 0x33, 0x50, 0x6c, 0x5b, 0x3d, 0xdc, 0xce, 0x51, 0x3d, 0x5c, 0x2f, 0x04, 0xb9,
+ 0x40, 0x65, 0xbe, 0x0a, 0x6b, 0xd4, 0xfb, 0xf7, 0x55, 0x45, 0xb9, 0x40, 0x65, 0x54, 0xe5, 0x2c,
+ 0x4c, 0xa8, 0x9d, 0x8e, 0x83, 0xc9, 0x39, 0x11, 0x3d, 0x7a, 0x94, 0x7c, 0x31, 0x51, 0x9c, 0x79,
+ 0x16, 0x72, 0xdc, 0x0f, 0xb8, 0x24, 0x63, 0x4f, 0x28, 0x36, 0x3d, 0x4f, 0xa7, 0xe6, 0xf3, 0x72,
+ 0xce, 0xe4, 0x83, 0x67, 0xa0, 0xa8, 0xbb, 0x4a, 0xff, 0xfa, 0x3d, 0x35, 0x9b, 0x9a, 0xcf, 0xc9,
+ 0x05, 0xdd, 0xf5, 0xaf, 0x2e, 0xe7, 0x5e, 0x4b, 0x41, 0x29, 0xfc, 0xf9, 0x40, 0x5a, 0x86, 0x9c,
+ 0x61, 0x69, 0x2a, 0x09, 0x2d, 0xfa, 0xed, 0x6a, 0x3e, 0xe6, 0x8b, 0xc3, 0xc2, 0x2a, 0xd3, 0x97,
+ 0x7d, 0xe4, 0xcc, 0x3f, 0x08, 0x90, 0xe3, 0x62, 0xe9, 0x04, 0x64, 0x6c, 0xd5, 0xdb, 0x23, 0x74,
+ 0xd9, 0xa5, 0x94, 0x28, 0xc8, 0xe4, 0x19, 0xcb, 0x5d, 0x5b, 0x35, 0x49, 0x08, 0x30, 0x39, 0x7e,
+ 0xc6, 0xeb, 0x6a, 0x20, 0xb5, 0x4d, 0xce, 0x35, 0x56, 0xb7, 0x8b, 0x4c, 0xcf, 0xe5, 0xeb, 0xca,
+ 0xe4, 0x75, 0x26, 0x96, 0x1e, 0x83, 0x49, 0xcf, 0x51, 0x75, 0x23, 0xa4, 0x9b, 0x21, 0xba, 0x22,
+ 0x1f, 0xf0, 0x95, 0xab, 0x70, 0x8a, 0xf3, 0xb6, 0x91, 0xa7, 0x6a, 0x7b, 0xa8, 0xdd, 0x07, 0x8d,
+ 0x92, 0xfb, 0x8b, 0x93, 0x4c, 0x61, 0x99, 0x8d, 0x73, 0xec, 0xdc, 0x0f, 0x04, 0x98, 0xe4, 0x27,
+ 0xb1, 0xb6, 0xef, 0xac, 0x35, 0x00, 0xd5, 0x34, 0x2d, 0x2f, 0xe8, 0xae, 0xc1, 0x50, 0x1e, 0xc0,
+ 0x2d, 0xd4, 0x7c, 0x90, 0x1c, 0x20, 0x98, 0xe9, 0x02, 0xf4, 0x47, 0x0e, 0x75, 0xdb, 0x69, 0x28,
+ 0xb0, 0x6f, 0x43, 0xe4, 0x03, 0x23, 0x3d, 0xbb, 0x03, 0x15, 0xe1, 0x23, 0x9b, 0x34, 0x0d, 0xd9,
+ 0x1d, 0xd4, 0xd1, 0x4d, 0x76, 0xe3, 0x4b, 0x1f, 0xf8, 0x0d, 0x4b, 0xc6, 0xbf, 0x61, 0x59, 0xfa,
+ 0x14, 0x4c, 0x69, 0x56, 0x37, 0x6a, 0xee, 0x92, 0x18, 0xb9, 0x3f, 0x70, 0x3f, 0x2e, 0xbc, 0x00,
+ 0xfd, 0x16, 0xf3, 0x1d, 0x41, 0xf8, 0x72, 0x2a, 0xbd, 0xb2, 0xb9, 0xf4, 0xb5, 0xd4, 0xcc, 0x0a,
+ 0x85, 0x6e, 0xf2, 0x99, 0xca, 0x68, 0xd7, 0x40, 0x1a, 0xb6, 0x1e, 0xbe, 0xf2, 0x18, 0x3c, 0xd1,
+ 0xd1, 0xbd, 0xbd, 0xde, 0xce, 0x82, 0x66, 0x75, 0x17, 0x3b, 0x56, 0xc7, 0xea, 0x7f, 0x53, 0xc5,
+ 0x4f, 0xe4, 0x81, 0xfc, 0xc7, 0xbe, 0xab, 0xe6, 0x7d, 0xe9, 0x4c, 0xec, 0x47, 0xd8, 0xea, 0x3a,
+ 0x4c, 0x31, 0x65, 0x85, 0x7c, 0xd8, 0xa1, 0xc7, 0x13, 0xe9, 0xc8, 0xcb, 0xb1, 0xf2, 0x37, 0xde,
+ 0x20, 0xe5, 0x5a, 0x9e, 0x64, 0x50, 0x3c, 0x46, 0x4f, 0x30, 0x55, 0x19, 0xee, 0x0b, 0xf1, 0xd1,
+ 0xad, 0x89, 0x9c, 0x18, 0xc6, 0xef, 0x31, 0xc6, 0xa9, 0x00, 0x63, 0x8b, 0x41, 0xab, 0x75, 0x18,
+ 0x3f, 0x0e, 0xd7, 0xdf, 0x31, 0xae, 0x22, 0x0a, 0x92, 0xac, 0xc0, 0x04, 0x21, 0xd1, 0x7a, 0xae,
+ 0x67, 0x75, 0x49, 0xde, 0x3b, 0x9a, 0xe6, 0xef, 0xdf, 0xa0, 0x7b, 0xa5, 0x84, 0x61, 0x75, 0x1f,
+ 0x55, 0xad, 0x02, 0xf9, 0x96, 0xd5, 0x46, 0x9a, 0x11, 0xc3, 0x70, 0x87, 0x19, 0xe2, 0xeb, 0x57,
+ 0x3f, 0x09, 0xd3, 0xf8, 0x7f, 0x92, 0x96, 0x82, 0x96, 0xc4, 0xdf, 0xa4, 0x95, 0x7f, 0xf0, 0x12,
+ 0xdd, 0x8e, 0x53, 0x3e, 0x41, 0xc0, 0xa6, 0xc0, 0x2a, 0x76, 0x90, 0xe7, 0x21, 0xc7, 0x55, 0x54,
+ 0x63, 0x98, 0x79, 0x81, 0xab, 0x88, 0xf2, 0x17, 0xde, 0x0a, 0xaf, 0xe2, 0x0a, 0x45, 0xd6, 0x0c,
+ 0xa3, 0xba, 0x0d, 0x27, 0x87, 0x44, 0x45, 0x02, 0xce, 0x97, 0x19, 0xe7, 0xf4, 0x40, 0x64, 0x60,
+ 0xda, 0x4d, 0xe0, 0x72, 0x7f, 0x2d, 0x13, 0x70, 0xfe, 0x0e, 0xe3, 0x94, 0x18, 0x96, 0x2f, 0x29,
+ 0x66, 0x7c, 0x16, 0x26, 0x6f, 0x20, 0x67, 0xc7, 0x72, 0xd9, 0xf5, 0x4f, 0x02, 0xba, 0x57, 0x18,
+ 0xdd, 0x04, 0x03, 0x92, 0xfb, 0x20, 0xcc, 0xf5, 0x34, 0xe4, 0x76, 0x55, 0x0d, 0x25, 0xa0, 0xf8,
+ 0x22, 0xa3, 0x18, 0xc3, 0xfa, 0x18, 0x5a, 0x83, 0x62, 0xc7, 0x62, 0x95, 0x29, 0x1e, 0xfe, 0x2a,
+ 0x83, 0x17, 0x38, 0x86, 0x51, 0xd8, 0x96, 0xdd, 0x33, 0x70, 0xd9, 0x8a, 0xa7, 0xf8, 0x5d, 0x4e,
+ 0xc1, 0x31, 0x8c, 0xe2, 0x18, 0x6e, 0xfd, 0x3d, 0x4e, 0xe1, 0x06, 0xfc, 0xf9, 0x0c, 0x14, 0x2c,
+ 0xd3, 0xd8, 0xb7, 0xcc, 0x24, 0x46, 0x7c, 0x89, 0x31, 0x00, 0x83, 0x60, 0x82, 0xcb, 0x90, 0x4f,
+ 0xba, 0x10, 0x7f, 0xf0, 0x16, 0xdf, 0x1e, 0x7c, 0x05, 0x56, 0x60, 0x82, 0x27, 0x28, 0xdd, 0x32,
+ 0x13, 0x50, 0x7c, 0x85, 0x51, 0x94, 0x02, 0x30, 0x36, 0x0d, 0x0f, 0xb9, 0x5e, 0x07, 0x25, 0x21,
+ 0x79, 0x8d, 0x4f, 0x83, 0x41, 0x98, 0x2b, 0x77, 0x90, 0xa9, 0xed, 0x25, 0x63, 0xf8, 0x2a, 0x77,
+ 0x25, 0xc7, 0x60, 0x8a, 0x3a, 0x8c, 0x77, 0x55, 0xc7, 0xdd, 0x53, 0x8d, 0x44, 0xcb, 0xf1, 0x87,
+ 0x8c, 0xa3, 0xe8, 0x83, 0x98, 0x47, 0x7a, 0xe6, 0x71, 0x68, 0xbe, 0xc6, 0x3d, 0x12, 0x80, 0xb1,
+ 0xad, 0xe7, 0x7a, 0xe4, 0xae, 0xec, 0x38, 0x6c, 0x7f, 0xc4, 0xb7, 0x1e, 0xc5, 0xae, 0x05, 0x19,
+ 0x2f, 0x43, 0xde, 0xd5, 0x6f, 0x25, 0xa2, 0xf9, 0x63, 0xbe, 0xd2, 0x04, 0x80, 0xc1, 0x57, 0xe1,
+ 0xd4, 0xd0, 0x32, 0x91, 0x80, 0xec, 0x4f, 0x18, 0xd9, 0x89, 0x21, 0xa5, 0x82, 0xa5, 0x84, 0xe3,
+ 0x52, 0xfe, 0x29, 0x4f, 0x09, 0x28, 0xc2, 0xb5, 0x89, 0xcf, 0x0a, 0xae, 0xba, 0x7b, 0x3c, 0xaf,
+ 0xfd, 0x19, 0xf7, 0x1a, 0xc5, 0x86, 0xbc, 0xb6, 0x05, 0x27, 0x18, 0xe3, 0xf1, 0xd6, 0xf5, 0xeb,
+ 0x3c, 0xb1, 0x52, 0xf4, 0x76, 0x78, 0x75, 0x3f, 0x05, 0x33, 0xbe, 0x3b, 0x79, 0x53, 0xea, 0x2a,
+ 0x5d, 0xd5, 0x4e, 0xc0, 0xfc, 0x0d, 0xc6, 0xcc, 0x33, 0xbe, 0xdf, 0xd5, 0xba, 0x6b, 0xaa, 0x8d,
+ 0xc9, 0x9f, 0x87, 0x32, 0x27, 0xef, 0x99, 0x0e, 0xd2, 0xac, 0x8e, 0xa9, 0xdf, 0x42, 0xed, 0x04,
+ 0xd4, 0x7f, 0x1e, 0x59, 0xaa, 0xed, 0x00, 0x1c, 0x33, 0x37, 0x41, 0xf4, 0x7b, 0x15, 0x45, 0xef,
+ 0xda, 0x96, 0xe3, 0xc5, 0x30, 0xfe, 0x05, 0x5f, 0x29, 0x1f, 0xd7, 0x24, 0xb0, 0x6a, 0x03, 0x4a,
+ 0xe4, 0x31, 0x69, 0x48, 0xfe, 0x25, 0x23, 0x1a, 0xef, 0xa3, 0x58, 0xe2, 0xd0, 0xac, 0xae, 0xad,
+ 0x3a, 0x49, 0xf2, 0xdf, 0x5f, 0xf1, 0xc4, 0xc1, 0x20, 0x2c, 0x71, 0x78, 0xfb, 0x36, 0xc2, 0xd5,
+ 0x3e, 0x01, 0xc3, 0x37, 0x79, 0xe2, 0xe0, 0x18, 0x46, 0xc1, 0x1b, 0x86, 0x04, 0x14, 0x7f, 0xcd,
+ 0x29, 0x38, 0x06, 0x53, 0x7c, 0xa2, 0x5f, 0x68, 0x1d, 0xd4, 0xd1, 0x5d, 0xcf, 0xa1, 0xad, 0xf0,
+ 0xd1, 0x54, 0xdf, 0x7a, 0x2b, 0xdc, 0x84, 0xc9, 0x01, 0x28, 0xce, 0x44, 0xec, 0x0a, 0x95, 0x9c,
+ 0x94, 0xe2, 0x0d, 0xfb, 0x36, 0xcf, 0x44, 0x01, 0x18, 0xb6, 0x2d, 0xd0, 0x21, 0x62, 0xb7, 0x6b,
+ 0xf8, 0x7c, 0x90, 0x80, 0xee, 0x3b, 0x11, 0xe3, 0x5a, 0x1c, 0x8b, 0x39, 0x03, 0xfd, 0x4f, 0xcf,
+ 0xbc, 0x8e, 0xf6, 0x13, 0x45, 0xe7, 0xdf, 0x44, 0xfa, 0x9f, 0x6d, 0x8a, 0xa4, 0x39, 0x64, 0x22,
+ 0xd2, 0x4f, 0x49, 0x71, 0xbf, 0x02, 0x2a, 0xff, 0xec, 0x3d, 0x36, 0xdf, 0x70, 0x3b, 0x55, 0x5d,
+ 0xc5, 0x41, 0x1e, 0x6e, 0x7a, 0xe2, 0xc9, 0x5e, 0xba, 0xe7, 0xc7, 0x79, 0xa8, 0xe7, 0xa9, 0x5e,
+ 0x81, 0xf1, 0x50, 0xc3, 0x13, 0x4f, 0xf5, 0x19, 0x46, 0x55, 0x0c, 0xf6, 0x3b, 0xd5, 0x0b, 0x90,
+ 0xc1, 0xcd, 0x4b, 0x3c, 0xfc, 0xe7, 0x18, 0x9c, 0xa8, 0x57, 0x3f, 0x0a, 0x39, 0xde, 0xb4, 0xc4,
+ 0x43, 0x7f, 0x9e, 0x41, 0x7d, 0x08, 0x86, 0xf3, 0x86, 0x25, 0x1e, 0xfe, 0x0b, 0x1c, 0xce, 0x21,
+ 0x18, 0x9e, 0xdc, 0x85, 0xdf, 0xfd, 0xa5, 0x0c, 0x2b, 0x3a, 0xdc, 0x77, 0x97, 0x61, 0x8c, 0x75,
+ 0x2a, 0xf1, 0xe8, 0xcf, 0xb2, 0x97, 0x73, 0x44, 0xf5, 0x29, 0xc8, 0x26, 0x74, 0xf8, 0xaf, 0x30,
+ 0x28, 0xd5, 0xaf, 0xd6, 0xa1, 0x10, 0xe8, 0x4e, 0xe2, 0xe1, 0x9f, 0x63, 0xf0, 0x20, 0x0a, 0x9b,
+ 0xce, 0xba, 0x93, 0x78, 0x82, 0x5f, 0xe5, 0xa6, 0x33, 0x04, 0x76, 0x1b, 0x6f, 0x4c, 0xe2, 0xd1,
+ 0xbf, 0xc6, 0xbd, 0xce, 0x21, 0xd5, 0x67, 0x20, 0xef, 0x17, 0x9b, 0x78, 0xfc, 0xaf, 0x33, 0x7c,
+ 0x1f, 0x83, 0x3d, 0x10, 0x28, 0x76, 0xf1, 0x14, 0xbf, 0xc1, 0x3d, 0x10, 0x40, 0xe1, 0x6d, 0x14,
+ 0x6d, 0x60, 0xe2, 0x99, 0x7e, 0x93, 0x6f, 0xa3, 0x48, 0xff, 0x82, 0x57, 0x93, 0xe4, 0xfc, 0x78,
+ 0x8a, 0xdf, 0xe2, 0xab, 0x49, 0xf4, 0xb1, 0x19, 0xd1, 0x8e, 0x20, 0x9e, 0xe3, 0xb7, 0xb9, 0x19,
+ 0x91, 0x86, 0xa0, 0xba, 0x09, 0xd2, 0x60, 0x37, 0x10, 0xcf, 0xf7, 0x79, 0xc6, 0x37, 0x39, 0xd0,
+ 0x0c, 0x54, 0x9f, 0x83, 0x13, 0xc3, 0x3b, 0x81, 0x78, 0xd6, 0x2f, 0xdc, 0x8b, 0x9c, 0xdd, 0x82,
+ 0x8d, 0x40, 0x75, 0xab, 0x5f, 0x52, 0x82, 0x5d, 0x40, 0x3c, 0xed, 0xcb, 0xf7, 0xc2, 0x89, 0x3b,
+ 0xd8, 0x04, 0x54, 0x6b, 0x00, 0xfd, 0x02, 0x1c, 0xcf, 0xf5, 0x0a, 0xe3, 0x0a, 0x80, 0xf0, 0xd6,
+ 0x60, 0xf5, 0x37, 0x1e, 0xff, 0x45, 0xbe, 0x35, 0x18, 0x02, 0x6f, 0x0d, 0x5e, 0x7a, 0xe3, 0xd1,
+ 0xaf, 0xf2, 0xad, 0xc1, 0x21, 0x38, 0xb2, 0x03, 0xd5, 0x2d, 0x9e, 0xe1, 0x4b, 0x3c, 0xb2, 0x03,
+ 0xa8, 0xea, 0x3a, 0x4c, 0x0e, 0x14, 0xc4, 0x78, 0xaa, 0x2f, 0x33, 0x2a, 0x31, 0x5a, 0x0f, 0x83,
+ 0xc5, 0x8b, 0x15, 0xc3, 0x78, 0xb6, 0xdf, 0x8f, 0x14, 0x2f, 0x56, 0x0b, 0xab, 0x97, 0x21, 0x67,
+ 0xf6, 0x0c, 0x03, 0x6f, 0x1e, 0xe9, 0xe8, 0x5f, 0xee, 0x95, 0xff, 0xed, 0x5d, 0xe6, 0x1d, 0x0e,
+ 0xa8, 0x5e, 0x80, 0x2c, 0xea, 0xee, 0xa0, 0x76, 0x1c, 0xf2, 0xdf, 0xdf, 0xe5, 0x09, 0x13, 0x6b,
+ 0x57, 0x9f, 0x01, 0xa0, 0x57, 0x23, 0xe4, 0xb3, 0x5f, 0x0c, 0xf6, 0x3f, 0xde, 0x65, 0xbf, 0xa9,
+ 0xe9, 0x43, 0xfa, 0x04, 0xf4, 0x17, 0x3a, 0x47, 0x13, 0xbc, 0x15, 0x26, 0x20, 0x2b, 0xf2, 0x34,
+ 0x8c, 0x5d, 0x73, 0x2d, 0xd3, 0x53, 0x3b, 0x71, 0xe8, 0xff, 0x64, 0x68, 0xae, 0x8f, 0x1d, 0xd6,
+ 0xb5, 0x1c, 0xe4, 0xa9, 0x1d, 0x37, 0x0e, 0xfb, 0x5f, 0x0c, 0xeb, 0x03, 0x30, 0x58, 0x53, 0x5d,
+ 0x2f, 0xc9, 0xbc, 0xff, 0x9b, 0x83, 0x39, 0x00, 0x1b, 0x8d, 0xff, 0xbf, 0x8e, 0xf6, 0xe3, 0xb0,
+ 0x6f, 0x73, 0xa3, 0x99, 0x7e, 0xf5, 0xa3, 0x90, 0xc7, 0xff, 0xd2, 0x1f, 0xca, 0xc5, 0x80, 0xff,
+ 0x87, 0x81, 0xfb, 0x08, 0xfc, 0x66, 0xd7, 0x6b, 0x7b, 0x7a, 0xbc, 0xb3, 0xff, 0x97, 0xad, 0x34,
+ 0xd7, 0xaf, 0xd6, 0xa0, 0xe0, 0x7a, 0xed, 0x76, 0x8f, 0xf5, 0xa7, 0x31, 0xf0, 0xff, 0x7b, 0xd7,
+ 0xbf, 0xb2, 0xf0, 0x31, 0x78, 0xb5, 0x6f, 0x5e, 0xf7, 0x6c, 0x8b, 0x7c, 0xe6, 0x88, 0x63, 0xb8,
+ 0xc7, 0x18, 0x02, 0x90, 0xa5, 0xc6, 0xf0, 0xeb, 0x5b, 0x58, 0xb1, 0x56, 0x2c, 0x7a, 0x71, 0xfb,
+ 0xc2, 0x5c, 0xfc, 0x0d, 0x2c, 0x7c, 0x2e, 0x0b, 0xb3, 0x9a, 0xd5, 0xdd, 0xb1, 0xdc, 0x45, 0x3f,
+ 0x1d, 0x2f, 0xfa, 0x4e, 0xe2, 0x77, 0xb3, 0xbe, 0x60, 0xe6, 0x78, 0xb7, 0xba, 0x73, 0x7f, 0x9b,
+ 0x86, 0x5c, 0x5d, 0x75, 0x3d, 0xf5, 0xa6, 0xba, 0x2f, 0xd9, 0x30, 0x85, 0xff, 0x5f, 0x53, 0x6d,
+ 0x72, 0x47, 0xc8, 0x36, 0x33, 0xbb, 0x38, 0x7f, 0x7c, 0xa1, 0xff, 0x56, 0x8e, 0x58, 0x18, 0xa2,
+ 0x4e, 0x7e, 0x70, 0xb0, 0x24, 0xde, 0xf9, 0xe7, 0xd3, 0x23, 0xbf, 0xf8, 0x2f, 0xa7, 0x73, 0x6b,
+ 0xfb, 0xcf, 0xe9, 0x86, 0x6b, 0x99, 0xf2, 0x30, 0x6a, 0xe9, 0x33, 0x02, 0xdc, 0x3f, 0x44, 0xbe,
+ 0xce, 0xf6, 0x3a, 0xfb, 0xfc, 0x74, 0x3e, 0xe1, 0xab, 0x39, 0x8c, 0x9a, 0x50, 0x0c, 0xbd, 0xfe,
+ 0xa8, 0xd7, 0xcc, 0x5c, 0x85, 0xf2, 0x61, 0x33, 0x91, 0x44, 0x48, 0x5f, 0x47, 0xfb, 0xec, 0xe7,
+ 0x90, 0xf8, 0x5f, 0xe9, 0x6c, 0xff, 0x47, 0xa3, 0xc2, 0x7c, 0xe1, 0xdc, 0x64, 0xc0, 0x3a, 0xf6,
+ 0x32, 0x3a, 0x5e, 0x4d, 0x5d, 0x12, 0x66, 0x54, 0x98, 0x8d, 0xb3, 0xf4, 0xc7, 0x7c, 0xc5, 0x5c,
+ 0x05, 0x46, 0xa9, 0x50, 0x9a, 0x86, 0x6c, 0xd3, 0xf4, 0x2e, 0x9e, 0x27, 0x54, 0x69, 0x99, 0x3e,
+ 0x2c, 0xad, 0xde, 0xb9, 0x5b, 0x19, 0xf9, 0xfe, 0xdd, 0xca, 0xc8, 0x3f, 0xde, 0xad, 0x8c, 0xbc,
+ 0x7e, 0xb7, 0x22, 0xbc, 0x79, 0xb7, 0x22, 0xbc, 0x7d, 0xb7, 0x22, 0xbc, 0x73, 0xb7, 0x22, 0xdc,
+ 0x3e, 0xa8, 0x08, 0x5f, 0x3d, 0xa8, 0x08, 0x5f, 0x3f, 0xa8, 0x08, 0xdf, 0x3a, 0xa8, 0x08, 0xdf,
+ 0x3d, 0xa8, 0x08, 0x77, 0x0e, 0x2a, 0xc2, 0xf7, 0x0f, 0x2a, 0x23, 0xaf, 0x1f, 0x54, 0x84, 0x37,
+ 0x0f, 0x2a, 0x23, 0x6f, 0x1f, 0x54, 0x84, 0x77, 0x0e, 0x2a, 0x23, 0xb7, 0x7f, 0x58, 0x19, 0xf9,
+ 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb5, 0xef, 0x1d, 0xb9, 0x85, 0x35, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -1000,34 +1032,3 @@ func valueToStringCastvalue(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
-
-func init() {
- proto.RegisterFile("combos/marshaler/castvalue.proto", fileDescriptor_castvalue_cc68bdd888d8d1a2)
-}
-
-var fileDescriptor_castvalue_cc68bdd888d8d1a2 = []byte{
- // 358 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x8f, 0xbd, 0x4f, 0x2a, 0x41,
- 0x14, 0xc5, 0xe7, 0xb2, 0xe1, 0x85, 0x37, 0xbc, 0x82, 0xb7, 0xef, 0x15, 0x1b, 0x4c, 0x2e, 0x1b,
- 0x1a, 0x29, 0x74, 0x37, 0x21, 0xc4, 0x18, 0x4b, 0x8c, 0x85, 0x89, 0x58, 0x50, 0x68, 0x2c, 0x67,
- 0xc9, 0xba, 0x10, 0x17, 0x86, 0xec, 0x87, 0x66, 0x3b, 0x0a, 0x2b, 0xff, 0x12, 0x4b, 0x4b, 0x4b,
- 0xed, 0x28, 0x29, 0xad, 0x94, 0x19, 0x1b, 0x4a, 0x4a, 0x4a, 0xc3, 0xac, 0xf8, 0x91, 0xe0, 0x47,
- 0x62, 0x77, 0xef, 0x99, 0x7b, 0xce, 0xef, 0x0c, 0x35, 0x5b, 0xbc, 0xeb, 0xf0, 0xd0, 0xee, 0xb2,
- 0x20, 0x6c, 0x33, 0xdf, 0x0d, 0xec, 0x16, 0x0b, 0xa3, 0x53, 0xe6, 0xc7, 0xae, 0xd5, 0x0f, 0x78,
- 0xc4, 0xf5, 0xdf, 0x2f, 0x42, 0x71, 0xdd, 0xeb, 0x44, 0xed, 0xd8, 0xb1, 0x5a, 0xbc, 0x6b, 0x7b,
- 0xdc, 0xe3, 0xb6, 0xba, 0x70, 0xe2, 0x63, 0xb5, 0xa9, 0x45, 0x4d, 0xa9, 0xb3, 0x7c, 0xab, 0xd1,
- 0xdc, 0x36, 0x0b, 0x23, 0x76, 0xc6, 0x12, 0xbd, 0x4f, 0xff, 0xcd, 0xe7, 0x06, 0xeb, 0x1f, 0xcc,
- 0xb3, 0x1a, 0x6e, 0x18, 0x32, 0xcf, 0x35, 0xc0, 0xd4, 0x2a, 0xf9, 0xea, 0x9a, 0xf5, 0x4a, 0x5d,
- 0x38, 0xac, 0x25, 0xe7, 0x3b, 0xbd, 0x28, 0x48, 0xea, 0x85, 0xe1, 0x7d, 0x89, 0x5c, 0x3c, 0x94,
- 0x72, 0x8d, 0xe4, 0xb0, 0xe3, 0x87, 0xbc, 0xd7, 0x5c, 0x16, 0xad, 0x9f, 0x03, 0x5d, 0x59, 0xa2,
- 0xef, 0xc7, 0xbe, 0xcf, 0x1c, 0xdf, 0x35, 0x32, 0x0a, 0x5d, 0xfb, 0x26, 0x7a, 0x61, 0x4b, 0x2b,
- 0xfc, 0x79, 0x87, 0xff, 0x0c, 0x53, 0x3c, 0xa2, 0xc6, 0x47, 0x3f, 0xd1, 0x0b, 0x54, 0x3b, 0x71,
- 0x13, 0x03, 0x4c, 0xa8, 0x64, 0x9b, 0xf3, 0x51, 0x5f, 0xa5, 0x59, 0xd5, 0xc5, 0xc8, 0x98, 0x50,
- 0xc9, 0x57, 0xff, 0xbe, 0x69, 0xf7, 0x0c, 0x4b, 0xdf, 0xb7, 0x32, 0x9b, 0x50, 0x64, 0xd4, 0xfc,
- 0xaa, 0xe9, 0x0f, 0x11, 0x65, 0xa4, 0xbf, 0x52, 0x51, 0xff, 0x4f, 0xb3, 0xbb, 0xbd, 0x68, 0xa3,
- 0xa6, 0xa2, 0xb4, 0x66, 0xba, 0xd4, 0xf7, 0x86, 0x02, 0xc9, 0x48, 0x20, 0xb9, 0x13, 0x48, 0xc6,
- 0x02, 0x61, 0x22, 0x10, 0xa6, 0x02, 0x61, 0x26, 0x10, 0x06, 0x12, 0xe1, 0x52, 0x22, 0x5c, 0x49,
- 0x84, 0x6b, 0x89, 0x70, 0x23, 0x11, 0x86, 0x12, 0x61, 0x24, 0x91, 0x8c, 0x25, 0xc2, 0x44, 0x22,
- 0x99, 0x4a, 0x84, 0x99, 0x44, 0x32, 0x78, 0x44, 0xf2, 0x14, 0x00, 0x00, 0xff, 0xff, 0xc3, 0x22,
- 0x8c, 0x46, 0x8e, 0x02, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.pb.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.pb.go
index eb67ebdc15..fd26a891c1 100644
--- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.pb.go
@@ -3,22 +3,21 @@
package castvalue
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-
-import io "io"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -42,7 +41,7 @@ type Castaway struct {
func (m *Castaway) Reset() { *m = Castaway{} }
func (*Castaway) ProtoMessage() {}
func (*Castaway) Descriptor() ([]byte, []int) {
- return fileDescriptor_castvalue_92129bf361b9c2b5, []int{0}
+ return fileDescriptor_8a43cbd4586a8bcb, []int{0}
}
func (m *Castaway) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -50,8 +49,8 @@ func (m *Castaway) XXX_Unmarshal(b []byte) error {
func (m *Castaway) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Castaway.Marshal(b, m, deterministic)
}
-func (dst *Castaway) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Castaway.Merge(dst, src)
+func (m *Castaway) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Castaway.Merge(m, src)
}
func (m *Castaway) XXX_Size() int {
return xxx_messageInfo_Castaway.Size(m)
@@ -72,7 +71,7 @@ type Wilson struct {
func (m *Wilson) Reset() { *m = Wilson{} }
func (*Wilson) ProtoMessage() {}
func (*Wilson) Descriptor() ([]byte, []int) {
- return fileDescriptor_castvalue_92129bf361b9c2b5, []int{1}
+ return fileDescriptor_8a43cbd4586a8bcb, []int{1}
}
func (m *Wilson) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -80,8 +79,8 @@ func (m *Wilson) XXX_Unmarshal(b []byte) error {
func (m *Wilson) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Wilson.Marshal(b, m, deterministic)
}
-func (dst *Wilson) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Wilson.Merge(dst, src)
+func (m *Wilson) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Wilson.Merge(m, src)
}
func (m *Wilson) XXX_Size() int {
return xxx_messageInfo_Wilson.Size(m)
@@ -98,6 +97,36 @@ func init() {
proto.RegisterMapType((map[int32]*MyWilson)(nil), "castvalue.Castaway.CastMapValueMessageNullableEntry")
proto.RegisterType((*Wilson)(nil), "castvalue.Wilson")
}
+
+func init() { proto.RegisterFile("combos/unmarshaler/castvalue.proto", fileDescriptor_8a43cbd4586a8bcb) }
+
+var fileDescriptor_8a43cbd4586a8bcb = []byte{
+ // 359 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x8f, 0xbd, 0x4f, 0xf2, 0x50,
+ 0x14, 0xc6, 0xef, 0xa1, 0xe1, 0x0d, 0xef, 0xc5, 0x01, 0xab, 0x43, 0x83, 0xc9, 0xa1, 0x61, 0x91,
+ 0x41, 0xdb, 0x84, 0x10, 0x63, 0x1c, 0x31, 0x0e, 0x26, 0xe2, 0xc0, 0xa0, 0x71, 0xbc, 0x25, 0xb5,
+ 0x10, 0x4b, 0x2f, 0xe9, 0x87, 0xa6, 0x1b, 0x83, 0x93, 0x7f, 0x89, 0xa3, 0xa3, 0xa3, 0x6e, 0x8c,
+ 0x8c, 0x4e, 0x4a, 0xaf, 0x0b, 0x23, 0x23, 0xa3, 0xe1, 0x56, 0xfc, 0x48, 0xf0, 0x23, 0x71, 0x3b,
+ 0xe7, 0xb9, 0xe7, 0x79, 0x7e, 0xcf, 0xa5, 0xe5, 0x16, 0xef, 0x5a, 0x3c, 0x30, 0x23, 0xaf, 0xcb,
+ 0xfc, 0xa0, 0xcd, 0x5c, 0xdb, 0x37, 0x5b, 0x2c, 0x08, 0xcf, 0x99, 0x1b, 0xd9, 0x46, 0xcf, 0xe7,
+ 0x21, 0x57, 0xff, 0xbf, 0x09, 0xc5, 0x4d, 0xa7, 0x13, 0xb6, 0x23, 0xcb, 0x68, 0xf1, 0xae, 0xe9,
+ 0x70, 0x87, 0x9b, 0xf2, 0xc2, 0x8a, 0x4e, 0xe5, 0x26, 0x17, 0x39, 0xa5, 0xce, 0xf2, 0xbd, 0x42,
+ 0x73, 0xbb, 0x2c, 0x08, 0xd9, 0x05, 0x8b, 0xd5, 0x1e, 0x5d, 0x99, 0xcd, 0x0d, 0xd6, 0x3b, 0x9a,
+ 0x65, 0x35, 0xec, 0x20, 0x60, 0x8e, 0xad, 0x81, 0xae, 0x54, 0xf2, 0xd5, 0x0d, 0xe3, 0x9d, 0x3a,
+ 0x77, 0x18, 0x0b, 0xce, 0xf7, 0xbc, 0xd0, 0x8f, 0xeb, 0x85, 0xc1, 0x63, 0x89, 0x5c, 0x3d, 0x95,
+ 0x72, 0x8d, 0xf8, 0xb8, 0xe3, 0x06, 0xdc, 0x6b, 0x2e, 0x8a, 0x56, 0x2f, 0x81, 0xae, 0x2d, 0xd0,
+ 0x0f, 0x23, 0xd7, 0x65, 0x96, 0x6b, 0x6b, 0x19, 0x89, 0xae, 0xfd, 0x12, 0x3d, 0xb7, 0xa5, 0x15,
+ 0x96, 0x3e, 0xe1, 0xbf, 0xc3, 0x14, 0x4f, 0xa8, 0xf6, 0xd5, 0x4f, 0xd4, 0x02, 0x55, 0xce, 0xec,
+ 0x58, 0x03, 0x1d, 0x2a, 0xd9, 0xe6, 0x6c, 0x54, 0xd7, 0x69, 0x56, 0x76, 0xd1, 0x32, 0x3a, 0x54,
+ 0xf2, 0xd5, 0xe5, 0x0f, 0xed, 0x5e, 0x61, 0xe9, 0xfb, 0x4e, 0x66, 0x1b, 0x8a, 0x8c, 0xea, 0x3f,
+ 0x35, 0xfd, 0x23, 0xa2, 0x8c, 0xf4, 0x5f, 0x2a, 0xaa, 0xab, 0x34, 0xbb, 0xef, 0x85, 0x5b, 0x35,
+ 0x19, 0xa5, 0x34, 0xd3, 0xa5, 0x7e, 0x30, 0x48, 0x90, 0x0c, 0x13, 0x24, 0x0f, 0x09, 0x92, 0x51,
+ 0x82, 0x30, 0x4e, 0x10, 0x26, 0x09, 0xc2, 0x34, 0x41, 0xe8, 0x0b, 0x84, 0x6b, 0x81, 0x70, 0x23,
+ 0x10, 0x6e, 0x05, 0xc2, 0x9d, 0x40, 0x18, 0x08, 0x24, 0x43, 0x81, 0x30, 0x12, 0x08, 0x63, 0x81,
+ 0x64, 0x22, 0x10, 0xa6, 0x02, 0x49, 0xff, 0x19, 0xc9, 0x4b, 0x00, 0x00, 0x00, 0xff, 0xff, 0x73,
+ 0xe3, 0x1c, 0x3e, 0x90, 0x02, 0x00, 0x00,
+}
+
func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return CastvalueDescription()
}
@@ -107,258 +136,260 @@ func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gog
func CastvalueDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4013 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0xdc, 0xd6,
- 0x75, 0x26, 0xf6, 0x87, 0xdc, 0x3d, 0xbb, 0x5c, 0x82, 0x20, 0x2d, 0xad, 0xe8, 0x64, 0x25, 0xad,
- 0xed, 0x88, 0xb6, 0x13, 0x32, 0x23, 0x4b, 0xb2, 0xb4, 0x6a, 0xe2, 0x2e, 0x97, 0x2b, 0x66, 0x5d,
- 0xfe, 0x05, 0x4b, 0xc6, 0x96, 0x33, 0x1d, 0x0c, 0x88, 0xbd, 0x5c, 0x42, 0xc2, 0x02, 0x08, 0x80,
- 0x95, 0x4c, 0x4d, 0x1f, 0xd4, 0x71, 0xda, 0x4e, 0xda, 0x69, 0x9b, 0xfe, 0xcc, 0x34, 0x71, 0x1d,
- 0xb7, 0x49, 0xa7, 0x71, 0x9a, 0xfe, 0x25, 0x4d, 0x9b, 0x26, 0xe9, 0x4b, 0xfa, 0x90, 0xd6, 0x4f,
- 0x9d, 0xe4, 0xad, 0x0f, 0x9d, 0xd6, 0x62, 0x3c, 0x53, 0xb7, 0x75, 0x1b, 0xb7, 0xd5, 0x83, 0x67,
- 0xfc, 0xd2, 0xb9, 0x7f, 0x58, 0x00, 0xbb, 0x24, 0xc0, 0x74, 0xec, 0x3c, 0x91, 0x38, 0xf7, 0x7c,
- 0x1f, 0xce, 0x3d, 0xf7, 0xdc, 0x73, 0xce, 0xbd, 0x58, 0xf8, 0xd1, 0x15, 0x38, 0xd3, 0xb5, 0xac,
- 0xae, 0x81, 0x16, 0x6d, 0xc7, 0xf2, 0xac, 0x9d, 0xfe, 0xee, 0x62, 0x07, 0xb9, 0x9a, 0xa3, 0xdb,
- 0x9e, 0xe5, 0x2c, 0x10, 0x99, 0x34, 0x45, 0x35, 0x16, 0xb8, 0x46, 0x75, 0x0d, 0xa6, 0xaf, 0xe9,
- 0x06, 0x5a, 0xf6, 0x15, 0xdb, 0xc8, 0x93, 0x2e, 0x43, 0x66, 0x57, 0x37, 0x50, 0x59, 0x38, 0x93,
- 0x9e, 0x2f, 0x9c, 0x7f, 0x78, 0x21, 0x02, 0x5a, 0x08, 0x23, 0x36, 0xb1, 0x58, 0x26, 0x88, 0xea,
- 0xeb, 0x19, 0x98, 0x19, 0x31, 0x2a, 0x49, 0x90, 0x31, 0xd5, 0x1e, 0x66, 0x14, 0xe6, 0xf3, 0x32,
- 0xf9, 0x5f, 0x2a, 0xc3, 0x84, 0xad, 0x6a, 0x37, 0xd5, 0x2e, 0x2a, 0xa7, 0x88, 0x98, 0x3f, 0x4a,
- 0x15, 0x80, 0x0e, 0xb2, 0x91, 0xd9, 0x41, 0xa6, 0xb6, 0x5f, 0x4e, 0x9f, 0x49, 0xcf, 0xe7, 0xe5,
- 0x80, 0x44, 0x7a, 0x1c, 0xa6, 0xed, 0xfe, 0x8e, 0xa1, 0x6b, 0x4a, 0x40, 0x0d, 0xce, 0xa4, 0xe7,
- 0xb3, 0xb2, 0x48, 0x07, 0x96, 0x07, 0xca, 0xe7, 0x60, 0xea, 0x36, 0x52, 0x6f, 0x06, 0x55, 0x0b,
- 0x44, 0xb5, 0x84, 0xc5, 0x01, 0xc5, 0x06, 0x14, 0x7b, 0xc8, 0x75, 0xd5, 0x2e, 0x52, 0xbc, 0x7d,
- 0x1b, 0x95, 0x33, 0x64, 0xf6, 0x67, 0x86, 0x66, 0x1f, 0x9d, 0x79, 0x81, 0xa1, 0xb6, 0xf6, 0x6d,
- 0x24, 0xd5, 0x21, 0x8f, 0xcc, 0x7e, 0x8f, 0x32, 0x64, 0x0f, 0xf1, 0x5f, 0xd3, 0xec, 0xf7, 0xa2,
- 0x2c, 0x39, 0x0c, 0x63, 0x14, 0x13, 0x2e, 0x72, 0x6e, 0xe9, 0x1a, 0x2a, 0x8f, 0x13, 0x82, 0x73,
- 0x43, 0x04, 0x6d, 0x3a, 0x1e, 0xe5, 0xe0, 0x38, 0xa9, 0x01, 0x79, 0xf4, 0xbc, 0x87, 0x4c, 0x57,
- 0xb7, 0xcc, 0xf2, 0x04, 0x21, 0x79, 0x64, 0xc4, 0x2a, 0x22, 0xa3, 0x13, 0xa5, 0x18, 0xe0, 0xa4,
- 0x4b, 0x30, 0x61, 0xd9, 0x9e, 0x6e, 0x99, 0x6e, 0x39, 0x77, 0x46, 0x98, 0x2f, 0x9c, 0x7f, 0xdf,
- 0xc8, 0x40, 0xd8, 0xa0, 0x3a, 0x32, 0x57, 0x96, 0x5a, 0x20, 0xba, 0x56, 0xdf, 0xd1, 0x90, 0xa2,
- 0x59, 0x1d, 0xa4, 0xe8, 0xe6, 0xae, 0x55, 0xce, 0x13, 0x82, 0xd3, 0xc3, 0x13, 0x21, 0x8a, 0x0d,
- 0xab, 0x83, 0x5a, 0xe6, 0xae, 0x25, 0x97, 0xdc, 0xd0, 0xb3, 0x74, 0x02, 0xc6, 0xdd, 0x7d, 0xd3,
- 0x53, 0x9f, 0x2f, 0x17, 0x49, 0x84, 0xb0, 0xa7, 0xea, 0xb7, 0xc7, 0x61, 0x2a, 0x49, 0x88, 0x5d,
- 0x85, 0xec, 0x2e, 0x9e, 0x65, 0x39, 0x75, 0x1c, 0x1f, 0x50, 0x4c, 0xd8, 0x89, 0xe3, 0x3f, 0xa6,
- 0x13, 0xeb, 0x50, 0x30, 0x91, 0xeb, 0xa1, 0x0e, 0x8d, 0x88, 0x74, 0xc2, 0x98, 0x02, 0x0a, 0x1a,
- 0x0e, 0xa9, 0xcc, 0x8f, 0x15, 0x52, 0xcf, 0xc2, 0x94, 0x6f, 0x92, 0xe2, 0xa8, 0x66, 0x97, 0xc7,
- 0xe6, 0x62, 0x9c, 0x25, 0x0b, 0x4d, 0x8e, 0x93, 0x31, 0x4c, 0x2e, 0xa1, 0xd0, 0xb3, 0xb4, 0x0c,
- 0x60, 0x99, 0xc8, 0xda, 0x55, 0x3a, 0x48, 0x33, 0xca, 0xb9, 0x43, 0xbc, 0xb4, 0x81, 0x55, 0x86,
- 0xbc, 0x64, 0x51, 0xa9, 0x66, 0x48, 0x57, 0x06, 0xa1, 0x36, 0x71, 0x48, 0xa4, 0xac, 0xd1, 0x4d,
- 0x36, 0x14, 0x6d, 0xdb, 0x50, 0x72, 0x10, 0x8e, 0x7b, 0xd4, 0x61, 0x33, 0xcb, 0x13, 0x23, 0x16,
- 0x62, 0x67, 0x26, 0x33, 0x18, 0x9d, 0xd8, 0xa4, 0x13, 0x7c, 0x94, 0x1e, 0x02, 0x5f, 0xa0, 0x90,
- 0xb0, 0x02, 0x92, 0x85, 0x8a, 0x5c, 0xb8, 0xae, 0xf6, 0xd0, 0xdc, 0x1d, 0x28, 0x85, 0xdd, 0x23,
- 0xcd, 0x42, 0xd6, 0xf5, 0x54, 0xc7, 0x23, 0x51, 0x98, 0x95, 0xe9, 0x83, 0x24, 0x42, 0x1a, 0x99,
- 0x1d, 0x92, 0xe5, 0xb2, 0x32, 0xfe, 0x57, 0xfa, 0xe9, 0xc1, 0x84, 0xd3, 0x64, 0xc2, 0x1f, 0x18,
- 0x5e, 0xd1, 0x10, 0x73, 0x74, 0xde, 0x73, 0x4f, 0xc2, 0x64, 0x68, 0x02, 0x49, 0x5f, 0x5d, 0xfd,
- 0x39, 0x78, 0x60, 0x24, 0xb5, 0xf4, 0x2c, 0xcc, 0xf6, 0x4d, 0xdd, 0xf4, 0x90, 0x63, 0x3b, 0x08,
- 0x47, 0x2c, 0x7d, 0x55, 0xf9, 0x5f, 0x27, 0x0e, 0x89, 0xb9, 0xed, 0xa0, 0x36, 0x65, 0x91, 0x67,
- 0xfa, 0xc3, 0xc2, 0xc7, 0xf2, 0xb9, 0x37, 0x26, 0xc4, 0xbb, 0x77, 0xef, 0xde, 0x4d, 0x55, 0x3f,
- 0x37, 0x0e, 0xb3, 0xa3, 0xf6, 0xcc, 0xc8, 0xed, 0x7b, 0x02, 0xc6, 0xcd, 0x7e, 0x6f, 0x07, 0x39,
- 0xc4, 0x49, 0x59, 0x99, 0x3d, 0x49, 0x75, 0xc8, 0x1a, 0xea, 0x0e, 0x32, 0xca, 0x99, 0x33, 0xc2,
- 0x7c, 0xe9, 0xfc, 0xe3, 0x89, 0x76, 0xe5, 0xc2, 0x2a, 0x86, 0xc8, 0x14, 0x29, 0x7d, 0x14, 0x32,
- 0x2c, 0x45, 0x63, 0x86, 0xc7, 0x92, 0x31, 0xe0, 0xbd, 0x24, 0x13, 0x9c, 0xf4, 0x20, 0xe4, 0xf1,
- 0x5f, 0x1a, 0x1b, 0xe3, 0xc4, 0xe6, 0x1c, 0x16, 0xe0, 0xb8, 0x90, 0xe6, 0x20, 0x47, 0xb6, 0x49,
- 0x07, 0xf1, 0xd2, 0xe6, 0x3f, 0xe3, 0xc0, 0xea, 0xa0, 0x5d, 0xb5, 0x6f, 0x78, 0xca, 0x2d, 0xd5,
- 0xe8, 0x23, 0x12, 0xf0, 0x79, 0xb9, 0xc8, 0x84, 0x9f, 0xc0, 0x32, 0xe9, 0x34, 0x14, 0xe8, 0xae,
- 0xd2, 0xcd, 0x0e, 0x7a, 0x9e, 0x64, 0xcf, 0xac, 0x4c, 0x37, 0x5a, 0x0b, 0x4b, 0xf0, 0xeb, 0x6f,
- 0xb8, 0x96, 0xc9, 0x43, 0x93, 0xbc, 0x02, 0x0b, 0xc8, 0xeb, 0x9f, 0x8c, 0x26, 0xee, 0xf7, 0x8f,
- 0x9e, 0x5e, 0x34, 0xa6, 0xaa, 0xdf, 0x4c, 0x41, 0x86, 0xe4, 0x8b, 0x29, 0x28, 0x6c, 0x5d, 0xdf,
- 0x6c, 0x2a, 0xcb, 0x1b, 0xdb, 0x4b, 0xab, 0x4d, 0x51, 0x90, 0x4a, 0x00, 0x44, 0x70, 0x6d, 0x75,
- 0xa3, 0xbe, 0x25, 0xa6, 0xfc, 0xe7, 0xd6, 0xfa, 0xd6, 0xa5, 0x0b, 0x62, 0xda, 0x07, 0x6c, 0x53,
- 0x41, 0x26, 0xa8, 0xf0, 0xc4, 0x79, 0x31, 0x2b, 0x89, 0x50, 0xa4, 0x04, 0xad, 0x67, 0x9b, 0xcb,
- 0x97, 0x2e, 0x88, 0xe3, 0x61, 0xc9, 0x13, 0xe7, 0xc5, 0x09, 0x69, 0x12, 0xf2, 0x44, 0xb2, 0xb4,
- 0xb1, 0xb1, 0x2a, 0xe6, 0x7c, 0xce, 0xf6, 0x96, 0xdc, 0x5a, 0x5f, 0x11, 0xf3, 0x3e, 0xe7, 0x8a,
- 0xbc, 0xb1, 0xbd, 0x29, 0x82, 0xcf, 0xb0, 0xd6, 0x6c, 0xb7, 0xeb, 0x2b, 0x4d, 0xb1, 0xe0, 0x6b,
- 0x2c, 0x5d, 0xdf, 0x6a, 0xb6, 0xc5, 0x62, 0xc8, 0xac, 0x27, 0xce, 0x8b, 0x93, 0xfe, 0x2b, 0x9a,
- 0xeb, 0xdb, 0x6b, 0x62, 0x49, 0x9a, 0x86, 0x49, 0xfa, 0x0a, 0x6e, 0xc4, 0x54, 0x44, 0x74, 0xe9,
- 0x82, 0x28, 0x0e, 0x0c, 0xa1, 0x2c, 0xd3, 0x21, 0xc1, 0xa5, 0x0b, 0xa2, 0x54, 0x6d, 0x40, 0x96,
- 0x44, 0x97, 0x24, 0x41, 0x69, 0xb5, 0xbe, 0xd4, 0x5c, 0x55, 0x36, 0x36, 0xb7, 0x5a, 0x1b, 0xeb,
- 0xf5, 0x55, 0x51, 0x18, 0xc8, 0xe4, 0xe6, 0xc7, 0xb7, 0x5b, 0x72, 0x73, 0x59, 0x4c, 0x05, 0x65,
- 0x9b, 0xcd, 0xfa, 0x56, 0x73, 0x59, 0x4c, 0x57, 0x35, 0x98, 0x1d, 0x95, 0x27, 0x47, 0xee, 0x8c,
- 0xc0, 0x12, 0xa7, 0x0e, 0x59, 0x62, 0xc2, 0x35, 0xb4, 0xc4, 0x3f, 0x4c, 0xc1, 0xcc, 0x88, 0x5a,
- 0x31, 0xf2, 0x25, 0x4f, 0x41, 0x96, 0x86, 0x28, 0xad, 0x9e, 0x8f, 0x8e, 0x2c, 0x3a, 0x24, 0x60,
- 0x87, 0x2a, 0x28, 0xc1, 0x05, 0x3b, 0x88, 0xf4, 0x21, 0x1d, 0x04, 0xa6, 0x18, 0xca, 0xe9, 0x3f,
- 0x3b, 0x94, 0xd3, 0x69, 0xd9, 0xbb, 0x94, 0xa4, 0xec, 0x11, 0xd9, 0xf1, 0x72, 0x7b, 0x76, 0x44,
- 0x6e, 0xbf, 0x0a, 0xd3, 0x43, 0x44, 0x89, 0x73, 0xec, 0x0b, 0x02, 0x94, 0x0f, 0x73, 0x4e, 0x4c,
- 0xa6, 0x4b, 0x85, 0x32, 0xdd, 0xd5, 0xa8, 0x07, 0xcf, 0x1e, 0xbe, 0x08, 0x43, 0x6b, 0xfd, 0x8a,
- 0x00, 0x27, 0x46, 0x77, 0x8a, 0x23, 0x6d, 0xf8, 0x28, 0x8c, 0xf7, 0x90, 0xb7, 0x67, 0xf1, 0x6e,
- 0xe9, 0x03, 0x23, 0x6a, 0x30, 0x1e, 0x8e, 0x2e, 0x36, 0x43, 0x05, 0x8b, 0x78, 0xfa, 0xb0, 0x76,
- 0x8f, 0x5a, 0x33, 0x64, 0xe9, 0x67, 0x52, 0xf0, 0xc0, 0x48, 0xf2, 0x91, 0x86, 0xbe, 0x1f, 0x40,
- 0x37, 0xed, 0xbe, 0x47, 0x3b, 0x22, 0x9a, 0x60, 0xf3, 0x44, 0x42, 0x92, 0x17, 0x4e, 0x9e, 0x7d,
- 0xcf, 0x1f, 0x4f, 0x93, 0x71, 0xa0, 0x22, 0xa2, 0x70, 0x79, 0x60, 0x68, 0x86, 0x18, 0x5a, 0x39,
- 0x64, 0xa6, 0x43, 0x81, 0xf9, 0x61, 0x10, 0x35, 0x43, 0x47, 0xa6, 0xa7, 0xb8, 0x9e, 0x83, 0xd4,
- 0x9e, 0x6e, 0x76, 0x49, 0x05, 0xc9, 0xd5, 0xb2, 0xbb, 0xaa, 0xe1, 0x22, 0x79, 0x8a, 0x0e, 0xb7,
- 0xf9, 0x28, 0x46, 0x90, 0x00, 0x72, 0x02, 0x88, 0xf1, 0x10, 0x82, 0x0e, 0xfb, 0x88, 0xea, 0x37,
- 0x72, 0x50, 0x08, 0xf4, 0xd5, 0xd2, 0x59, 0x28, 0xde, 0x50, 0x6f, 0xa9, 0x0a, 0x3f, 0x2b, 0x51,
- 0x4f, 0x14, 0xb0, 0x6c, 0x93, 0x9d, 0x97, 0x3e, 0x0c, 0xb3, 0x44, 0xc5, 0xea, 0x7b, 0xc8, 0x51,
- 0x34, 0x43, 0x75, 0x5d, 0xe2, 0xb4, 0x1c, 0x51, 0x95, 0xf0, 0xd8, 0x06, 0x1e, 0x6a, 0xf0, 0x11,
- 0xe9, 0x22, 0xcc, 0x10, 0x44, 0xaf, 0x6f, 0x78, 0xba, 0x6d, 0x20, 0x05, 0x9f, 0xde, 0x5c, 0x52,
- 0x49, 0x7c, 0xcb, 0xa6, 0xb1, 0xc6, 0x1a, 0x53, 0xc0, 0x16, 0xb9, 0xd2, 0x32, 0xbc, 0x9f, 0xc0,
- 0xba, 0xc8, 0x44, 0x8e, 0xea, 0x21, 0x05, 0x7d, 0xaa, 0xaf, 0x1a, 0xae, 0xa2, 0x9a, 0x1d, 0x65,
- 0x4f, 0x75, 0xf7, 0xca, 0xb3, 0x98, 0x60, 0x29, 0x55, 0x16, 0xe4, 0x53, 0x58, 0x71, 0x85, 0xe9,
- 0x35, 0x89, 0x5a, 0xdd, 0xec, 0x7c, 0x4c, 0x75, 0xf7, 0xa4, 0x1a, 0x9c, 0x20, 0x2c, 0xae, 0xe7,
- 0xe8, 0x66, 0x57, 0xd1, 0xf6, 0x90, 0x76, 0x53, 0xe9, 0x7b, 0xbb, 0x97, 0xcb, 0x0f, 0x06, 0xdf,
- 0x4f, 0x2c, 0x6c, 0x13, 0x9d, 0x06, 0x56, 0xd9, 0xf6, 0x76, 0x2f, 0x4b, 0x6d, 0x28, 0xe2, 0xc5,
- 0xe8, 0xe9, 0x77, 0x90, 0xb2, 0x6b, 0x39, 0xa4, 0x34, 0x96, 0x46, 0xa4, 0xa6, 0x80, 0x07, 0x17,
- 0x36, 0x18, 0x60, 0xcd, 0xea, 0xa0, 0x5a, 0xb6, 0xbd, 0xd9, 0x6c, 0x2e, 0xcb, 0x05, 0xce, 0x72,
- 0xcd, 0x72, 0x70, 0x40, 0x75, 0x2d, 0xdf, 0xc1, 0x05, 0x1a, 0x50, 0x5d, 0x8b, 0xbb, 0xf7, 0x22,
- 0xcc, 0x68, 0x1a, 0x9d, 0xb3, 0xae, 0x29, 0xec, 0x8c, 0xe5, 0x96, 0xc5, 0x90, 0xb3, 0x34, 0x6d,
- 0x85, 0x2a, 0xb0, 0x18, 0x77, 0xa5, 0x2b, 0xf0, 0xc0, 0xc0, 0x59, 0x41, 0xe0, 0xf4, 0xd0, 0x2c,
- 0xa3, 0xd0, 0x8b, 0x30, 0x63, 0xef, 0x0f, 0x03, 0xa5, 0xd0, 0x1b, 0xed, 0xfd, 0x28, 0xec, 0x49,
- 0x98, 0xb5, 0xf7, 0xec, 0x61, 0xdc, 0x63, 0x41, 0x9c, 0x64, 0xef, 0xd9, 0x51, 0xe0, 0x23, 0xe4,
- 0xc0, 0xed, 0x20, 0x4d, 0xf5, 0x50, 0xa7, 0x7c, 0x32, 0xa8, 0x1e, 0x18, 0x90, 0x16, 0x41, 0xd4,
- 0x34, 0x05, 0x99, 0xea, 0x8e, 0x81, 0x14, 0xd5, 0x41, 0xa6, 0xea, 0x96, 0x4f, 0x07, 0x95, 0x4b,
- 0x9a, 0xd6, 0x24, 0xa3, 0x75, 0x32, 0x28, 0x3d, 0x06, 0xd3, 0xd6, 0xce, 0x0d, 0x8d, 0x86, 0xa4,
- 0x62, 0x3b, 0x68, 0x57, 0x7f, 0xbe, 0xfc, 0x30, 0xf1, 0xef, 0x14, 0x1e, 0x20, 0x01, 0xb9, 0x49,
- 0xc4, 0xd2, 0xa3, 0x20, 0x6a, 0xee, 0x9e, 0xea, 0xd8, 0x24, 0x27, 0xbb, 0xb6, 0xaa, 0xa1, 0xf2,
- 0x23, 0x54, 0x95, 0xca, 0xd7, 0xb9, 0x18, 0x6f, 0x09, 0xf7, 0xb6, 0xbe, 0xeb, 0x71, 0xc6, 0x73,
- 0x74, 0x4b, 0x10, 0x19, 0x63, 0x9b, 0x07, 0x11, 0xbb, 0x22, 0xf4, 0xe2, 0x79, 0xa2, 0x56, 0xb2,
- 0xf7, 0xec, 0xe0, 0x7b, 0x1f, 0x82, 0x49, 0xac, 0x39, 0x78, 0xe9, 0xa3, 0xb4, 0x21, 0xb3, 0xf7,
- 0x02, 0x6f, 0x7c, 0xd7, 0x7a, 0xe3, 0x6a, 0x0d, 0x8a, 0xc1, 0xf8, 0x94, 0xf2, 0x40, 0x23, 0x54,
- 0x14, 0x70, 0xb3, 0xd2, 0xd8, 0x58, 0xc6, 0x6d, 0xc6, 0x73, 0x4d, 0x31, 0x85, 0xdb, 0x9d, 0xd5,
- 0xd6, 0x56, 0x53, 0x91, 0xb7, 0xd7, 0xb7, 0x5a, 0x6b, 0x4d, 0x31, 0x1d, 0xec, 0xab, 0xbf, 0x97,
- 0x82, 0x52, 0xf8, 0x88, 0x24, 0xfd, 0x14, 0x9c, 0xe4, 0xf7, 0x19, 0x2e, 0xf2, 0x94, 0xdb, 0xba,
- 0x43, 0xb6, 0x4c, 0x4f, 0xa5, 0xe5, 0xcb, 0x5f, 0xb4, 0x59, 0xa6, 0xd5, 0x46, 0xde, 0x33, 0xba,
- 0x83, 0x37, 0x44, 0x4f, 0xf5, 0xa4, 0x55, 0x38, 0x6d, 0x5a, 0x8a, 0xeb, 0xa9, 0x66, 0x47, 0x75,
- 0x3a, 0xca, 0xe0, 0x26, 0x49, 0x51, 0x35, 0x0d, 0xb9, 0xae, 0x45, 0x4b, 0x95, 0xcf, 0xf2, 0x3e,
- 0xd3, 0x6a, 0x33, 0xe5, 0x41, 0x0e, 0xaf, 0x33, 0xd5, 0x48, 0x80, 0xa5, 0x0f, 0x0b, 0xb0, 0x07,
- 0x21, 0xdf, 0x53, 0x6d, 0x05, 0x99, 0x9e, 0xb3, 0x4f, 0x1a, 0xe3, 0x9c, 0x9c, 0xeb, 0xa9, 0x76,
- 0x13, 0x3f, 0xbf, 0x37, 0xe7, 0x93, 0x7f, 0x4a, 0x43, 0x31, 0xd8, 0x1c, 0xe3, 0xb3, 0x86, 0x46,
- 0xea, 0x88, 0x40, 0x32, 0xcd, 0x43, 0x47, 0xb6, 0xd2, 0x0b, 0x0d, 0x5c, 0x60, 0x6a, 0xe3, 0xb4,
- 0x65, 0x95, 0x29, 0x12, 0x17, 0x77, 0x9c, 0x5b, 0x10, 0x6d, 0x11, 0x72, 0x32, 0x7b, 0x92, 0x56,
- 0x60, 0xfc, 0x86, 0x4b, 0xb8, 0xc7, 0x09, 0xf7, 0xc3, 0x47, 0x73, 0x3f, 0xdd, 0x26, 0xe4, 0xf9,
- 0xa7, 0xdb, 0xca, 0xfa, 0x86, 0xbc, 0x56, 0x5f, 0x95, 0x19, 0x5c, 0x3a, 0x05, 0x19, 0x43, 0xbd,
- 0xb3, 0x1f, 0x2e, 0x45, 0x44, 0x94, 0xd4, 0xf1, 0xa7, 0x20, 0x73, 0x1b, 0xa9, 0x37, 0xc3, 0x05,
- 0x80, 0x88, 0xde, 0xc5, 0xd0, 0x5f, 0x84, 0x2c, 0xf1, 0x97, 0x04, 0xc0, 0x3c, 0x26, 0x8e, 0x49,
- 0x39, 0xc8, 0x34, 0x36, 0x64, 0x1c, 0xfe, 0x22, 0x14, 0xa9, 0x54, 0xd9, 0x6c, 0x35, 0x1b, 0x4d,
- 0x31, 0x55, 0xbd, 0x08, 0xe3, 0xd4, 0x09, 0x78, 0x6b, 0xf8, 0x6e, 0x10, 0xc7, 0xd8, 0x23, 0xe3,
- 0x10, 0xf8, 0xe8, 0xf6, 0xda, 0x52, 0x53, 0x16, 0x53, 0xc1, 0xe5, 0x75, 0xa1, 0x18, 0xec, 0x8b,
- 0xdf, 0x9b, 0x98, 0xfa, 0x8e, 0x00, 0x85, 0x40, 0x9f, 0x8b, 0x1b, 0x14, 0xd5, 0x30, 0xac, 0xdb,
- 0x8a, 0x6a, 0xe8, 0xaa, 0xcb, 0x82, 0x02, 0x88, 0xa8, 0x8e, 0x25, 0x49, 0x17, 0xed, 0x3d, 0x31,
- 0xfe, 0x65, 0x01, 0xc4, 0x68, 0x8b, 0x19, 0x31, 0x50, 0xf8, 0x89, 0x1a, 0xf8, 0x92, 0x00, 0xa5,
- 0x70, 0x5f, 0x19, 0x31, 0xef, 0xec, 0x4f, 0xd4, 0xbc, 0xd7, 0x52, 0x30, 0x19, 0xea, 0x26, 0x93,
- 0x5a, 0xf7, 0x29, 0x98, 0xd6, 0x3b, 0xa8, 0x67, 0x5b, 0x1e, 0x32, 0xb5, 0x7d, 0xc5, 0x40, 0xb7,
- 0x90, 0x51, 0xae, 0x92, 0x44, 0xb1, 0x78, 0x74, 0xbf, 0xba, 0xd0, 0x1a, 0xe0, 0x56, 0x31, 0xac,
- 0x36, 0xd3, 0x5a, 0x6e, 0xae, 0x6d, 0x6e, 0x6c, 0x35, 0xd7, 0x1b, 0xd7, 0x95, 0xed, 0xf5, 0x9f,
- 0x59, 0xdf, 0x78, 0x66, 0x5d, 0x16, 0xf5, 0x88, 0xda, 0xbb, 0xb8, 0xd5, 0x37, 0x41, 0x8c, 0x1a,
- 0x25, 0x9d, 0x84, 0x51, 0x66, 0x89, 0x63, 0xd2, 0x0c, 0x4c, 0xad, 0x6f, 0x28, 0xed, 0xd6, 0x72,
- 0x53, 0x69, 0x5e, 0xbb, 0xd6, 0x6c, 0x6c, 0xb5, 0xe9, 0x0d, 0x84, 0xaf, 0xbd, 0x15, 0xde, 0xd4,
- 0x2f, 0xa6, 0x61, 0x66, 0x84, 0x25, 0x52, 0x9d, 0x9d, 0x1d, 0xe8, 0x71, 0xe6, 0x43, 0x49, 0xac,
- 0x5f, 0xc0, 0x25, 0x7f, 0x53, 0x75, 0x3c, 0x76, 0xd4, 0x78, 0x14, 0xb0, 0x97, 0x4c, 0x4f, 0xdf,
- 0xd5, 0x91, 0xc3, 0x2e, 0x6c, 0xe8, 0x81, 0x62, 0x6a, 0x20, 0xa7, 0x77, 0x36, 0x1f, 0x04, 0xc9,
- 0xb6, 0x5c, 0xdd, 0xd3, 0x6f, 0x21, 0x45, 0x37, 0xf9, 0xed, 0x0e, 0x3e, 0x60, 0x64, 0x64, 0x91,
- 0x8f, 0xb4, 0x4c, 0xcf, 0xd7, 0x36, 0x51, 0x57, 0x8d, 0x68, 0xe3, 0x04, 0x9e, 0x96, 0x45, 0x3e,
- 0xe2, 0x6b, 0x9f, 0x85, 0x62, 0xc7, 0xea, 0xe3, 0xae, 0x8b, 0xea, 0xe1, 0x7a, 0x21, 0xc8, 0x05,
- 0x2a, 0xf3, 0x55, 0x58, 0x3f, 0x3d, 0xb8, 0x56, 0x2a, 0xca, 0x05, 0x2a, 0xa3, 0x2a, 0xe7, 0x60,
- 0x4a, 0xed, 0x76, 0x1d, 0x4c, 0xce, 0x89, 0xe8, 0x09, 0xa1, 0xe4, 0x8b, 0x89, 0xe2, 0xdc, 0xd3,
- 0x90, 0xe3, 0x7e, 0xc0, 0x25, 0x19, 0x7b, 0x42, 0xb1, 0xe9, 0xb1, 0x37, 0x35, 0x9f, 0x97, 0x73,
- 0x26, 0x1f, 0x3c, 0x0b, 0x45, 0xdd, 0x55, 0x06, 0xb7, 0xe4, 0xa9, 0x33, 0xa9, 0xf9, 0x9c, 0x5c,
- 0xd0, 0x5d, 0xff, 0x86, 0xb1, 0xfa, 0x4a, 0x0a, 0x4a, 0xe1, 0x5b, 0x7e, 0x69, 0x19, 0x72, 0x86,
- 0xa5, 0xa9, 0x24, 0xb4, 0xe8, 0x27, 0xa6, 0xf9, 0x98, 0x0f, 0x03, 0x0b, 0xab, 0x4c, 0x5f, 0xf6,
- 0x91, 0x73, 0xff, 0x20, 0x40, 0x8e, 0x8b, 0xa5, 0x13, 0x90, 0xb1, 0x55, 0x6f, 0x8f, 0xd0, 0x65,
- 0x97, 0x52, 0xa2, 0x20, 0x93, 0x67, 0x2c, 0x77, 0x6d, 0xd5, 0x24, 0x21, 0xc0, 0xe4, 0xf8, 0x19,
- 0xaf, 0xab, 0x81, 0xd4, 0x0e, 0x39, 0x7e, 0x58, 0xbd, 0x1e, 0x32, 0x3d, 0x97, 0xaf, 0x2b, 0x93,
- 0x37, 0x98, 0x58, 0x7a, 0x1c, 0xa6, 0x3d, 0x47, 0xd5, 0x8d, 0x90, 0x6e, 0x86, 0xe8, 0x8a, 0x7c,
- 0xc0, 0x57, 0xae, 0xc1, 0x29, 0xce, 0xdb, 0x41, 0x9e, 0xaa, 0xed, 0xa1, 0xce, 0x00, 0x34, 0x4e,
- 0xae, 0x19, 0x4e, 0x32, 0x85, 0x65, 0x36, 0xce, 0xb1, 0xd5, 0x1f, 0x08, 0x30, 0xcd, 0x0f, 0x4c,
- 0x1d, 0xdf, 0x59, 0x6b, 0x00, 0xaa, 0x69, 0x5a, 0x5e, 0xd0, 0x5d, 0xc3, 0xa1, 0x3c, 0x84, 0x5b,
- 0xa8, 0xfb, 0x20, 0x39, 0x40, 0x30, 0xd7, 0x03, 0x18, 0x8c, 0x1c, 0xea, 0xb6, 0xd3, 0x50, 0x60,
- 0x9f, 0x70, 0xc8, 0x77, 0x40, 0x7a, 0xc4, 0x06, 0x2a, 0xc2, 0x27, 0x2b, 0x69, 0x16, 0xb2, 0x3b,
- 0xa8, 0xab, 0x9b, 0xec, 0x62, 0x96, 0x3e, 0xf0, 0x8b, 0x90, 0x8c, 0x7f, 0x11, 0xb2, 0xf4, 0x49,
- 0x98, 0xd1, 0xac, 0x5e, 0xd4, 0xdc, 0x25, 0x31, 0x72, 0xcc, 0x77, 0x3f, 0x26, 0x3c, 0x07, 0x83,
- 0x16, 0xf3, 0x6d, 0x41, 0xf8, 0x52, 0x2a, 0xbd, 0xb2, 0xb9, 0xf4, 0xd5, 0xd4, 0xdc, 0x0a, 0x85,
- 0x6e, 0xf2, 0x99, 0xca, 0x68, 0xd7, 0x40, 0x1a, 0xb6, 0x1e, 0xbe, 0xfc, 0x38, 0x7c, 0xa8, 0xab,
- 0x7b, 0x7b, 0xfd, 0x9d, 0x05, 0xcd, 0xea, 0x2d, 0x76, 0xad, 0xae, 0x35, 0xf8, 0xf4, 0x89, 0x9f,
- 0xc8, 0x03, 0xf9, 0x8f, 0x7d, 0xfe, 0xcc, 0xfb, 0xd2, 0xb9, 0xd8, 0x6f, 0xa5, 0xb5, 0x75, 0x98,
- 0x61, 0xca, 0x0a, 0xf9, 0xfe, 0x42, 0x4f, 0x11, 0xd2, 0x91, 0x77, 0x58, 0xe5, 0xaf, 0xbf, 0x4e,
- 0xca, 0xb5, 0x3c, 0xcd, 0xa0, 0x78, 0x8c, 0x1e, 0x34, 0x6a, 0x32, 0x3c, 0x10, 0xe2, 0xa3, 0x5b,
- 0x13, 0x39, 0x31, 0x8c, 0xdf, 0x63, 0x8c, 0x33, 0x01, 0xc6, 0x36, 0x83, 0xd6, 0x1a, 0x30, 0x79,
- 0x1c, 0xae, 0xbf, 0x63, 0x5c, 0x45, 0x14, 0x24, 0x59, 0x81, 0x29, 0x42, 0xa2, 0xf5, 0x5d, 0xcf,
- 0xea, 0x91, 0xbc, 0x77, 0x34, 0xcd, 0xdf, 0xbf, 0x4e, 0xf7, 0x4a, 0x09, 0xc3, 0x1a, 0x3e, 0xaa,
- 0x56, 0x03, 0xf2, 0xc9, 0xa9, 0x83, 0x34, 0x23, 0x86, 0xe1, 0x55, 0x66, 0x88, 0xaf, 0x5f, 0xfb,
- 0x04, 0xcc, 0xe2, 0xff, 0x49, 0x5a, 0x0a, 0x5a, 0x12, 0x7f, 0xe1, 0x55, 0xfe, 0xc1, 0x0b, 0x74,
- 0x3b, 0xce, 0xf8, 0x04, 0x01, 0x9b, 0x02, 0xab, 0xd8, 0x45, 0x9e, 0x87, 0x1c, 0x57, 0x51, 0x8d,
- 0x51, 0xe6, 0x05, 0x6e, 0x0c, 0xca, 0x9f, 0x7f, 0x33, 0xbc, 0x8a, 0x2b, 0x14, 0x59, 0x37, 0x8c,
- 0xda, 0x36, 0x9c, 0x1c, 0x11, 0x15, 0x09, 0x38, 0x5f, 0x64, 0x9c, 0xb3, 0x43, 0x91, 0x81, 0x69,
- 0x37, 0x81, 0xcb, 0xfd, 0xb5, 0x4c, 0xc0, 0xf9, 0xbb, 0x8c, 0x53, 0x62, 0x58, 0xbe, 0xa4, 0x98,
- 0xf1, 0x69, 0x98, 0xbe, 0x85, 0x9c, 0x1d, 0xcb, 0x65, 0xb7, 0x34, 0x09, 0xe8, 0x5e, 0x62, 0x74,
- 0x53, 0x0c, 0x48, 0xae, 0x6d, 0x30, 0xd7, 0x15, 0xc8, 0xed, 0xaa, 0x1a, 0x4a, 0x40, 0xf1, 0x05,
- 0x46, 0x31, 0x81, 0xf5, 0x31, 0xb4, 0x0e, 0xc5, 0xae, 0xc5, 0x2a, 0x53, 0x3c, 0xfc, 0x65, 0x06,
- 0x2f, 0x70, 0x0c, 0xa3, 0xb0, 0x2d, 0xbb, 0x6f, 0xe0, 0xb2, 0x15, 0x4f, 0xf1, 0x7b, 0x9c, 0x82,
- 0x63, 0x18, 0xc5, 0x31, 0xdc, 0xfa, 0xfb, 0x9c, 0xc2, 0x0d, 0xf8, 0xf3, 0x29, 0x28, 0x58, 0xa6,
- 0xb1, 0x6f, 0x99, 0x49, 0x8c, 0xf8, 0x22, 0x63, 0x00, 0x06, 0xc1, 0x04, 0x57, 0x21, 0x9f, 0x74,
- 0x21, 0xfe, 0xf0, 0x4d, 0xbe, 0x3d, 0xf8, 0x0a, 0xac, 0xc0, 0x14, 0x4f, 0x50, 0xba, 0x65, 0x26,
- 0xa0, 0xf8, 0x32, 0xa3, 0x28, 0x05, 0x60, 0x6c, 0x1a, 0x1e, 0x72, 0xbd, 0x2e, 0x4a, 0x42, 0xf2,
- 0x0a, 0x9f, 0x06, 0x83, 0x30, 0x57, 0xee, 0x20, 0x53, 0xdb, 0x4b, 0xc6, 0xf0, 0x15, 0xee, 0x4a,
- 0x8e, 0xc1, 0x14, 0x0d, 0x98, 0xec, 0xa9, 0x8e, 0xbb, 0xa7, 0x1a, 0x89, 0x96, 0xe3, 0x8f, 0x18,
- 0x47, 0xd1, 0x07, 0x31, 0x8f, 0xf4, 0xcd, 0xe3, 0xd0, 0x7c, 0x95, 0x7b, 0x24, 0x00, 0x63, 0x5b,
- 0xcf, 0xf5, 0xc8, 0x95, 0xd6, 0x71, 0xd8, 0xfe, 0x98, 0x6f, 0x3d, 0x8a, 0x5d, 0x0b, 0x32, 0x5e,
- 0x85, 0xbc, 0xab, 0xdf, 0x49, 0x44, 0xf3, 0x27, 0x7c, 0xa5, 0x09, 0x00, 0x83, 0xaf, 0xc3, 0xa9,
- 0x91, 0x65, 0x22, 0x01, 0xd9, 0x9f, 0x32, 0xb2, 0x13, 0x23, 0x4a, 0x05, 0x4b, 0x09, 0xc7, 0xa5,
- 0xfc, 0x33, 0x9e, 0x12, 0x50, 0x84, 0x6b, 0x13, 0x9f, 0x15, 0x5c, 0x75, 0xf7, 0x78, 0x5e, 0xfb,
- 0x73, 0xee, 0x35, 0x8a, 0x0d, 0x79, 0x6d, 0x0b, 0x4e, 0x30, 0xc6, 0xe3, 0xad, 0xeb, 0xd7, 0x78,
- 0x62, 0xa5, 0xe8, 0xed, 0xf0, 0xea, 0x7e, 0x12, 0xe6, 0x7c, 0x77, 0xf2, 0xa6, 0xd4, 0x55, 0x7a,
- 0xaa, 0x9d, 0x80, 0xf9, 0xeb, 0x8c, 0x99, 0x67, 0x7c, 0xbf, 0xab, 0x75, 0xd7, 0x54, 0x1b, 0x93,
- 0x3f, 0x0b, 0x65, 0x4e, 0xde, 0x37, 0x1d, 0xa4, 0x59, 0x5d, 0x53, 0xbf, 0x83, 0x3a, 0x09, 0xa8,
- 0xff, 0x22, 0xb2, 0x54, 0xdb, 0x01, 0x38, 0x66, 0x6e, 0x81, 0xe8, 0xf7, 0x2a, 0x8a, 0xde, 0xb3,
- 0x2d, 0xc7, 0x8b, 0x61, 0xfc, 0x06, 0x5f, 0x29, 0x1f, 0xd7, 0x22, 0xb0, 0x5a, 0x13, 0x4a, 0xe4,
- 0x31, 0x69, 0x48, 0xfe, 0x25, 0x23, 0x9a, 0x1c, 0xa0, 0x58, 0xe2, 0xd0, 0xac, 0x9e, 0xad, 0x3a,
- 0x49, 0xf2, 0xdf, 0x5f, 0xf1, 0xc4, 0xc1, 0x20, 0x2c, 0x71, 0x78, 0xfb, 0x36, 0xc2, 0xd5, 0x3e,
- 0x01, 0xc3, 0x37, 0x79, 0xe2, 0xe0, 0x18, 0x46, 0xc1, 0x1b, 0x86, 0x04, 0x14, 0x7f, 0xcd, 0x29,
- 0x38, 0x06, 0x53, 0x7c, 0x7c, 0x50, 0x68, 0x1d, 0xd4, 0xd5, 0x5d, 0xcf, 0xa1, 0xad, 0xf0, 0xd1,
- 0x54, 0xdf, 0x7a, 0x33, 0xdc, 0x84, 0xc9, 0x01, 0x28, 0xce, 0x44, 0xec, 0x0a, 0x95, 0x9c, 0x94,
- 0xe2, 0x0d, 0xfb, 0x36, 0xcf, 0x44, 0x01, 0x18, 0xb6, 0x2d, 0xd0, 0x21, 0x62, 0xb7, 0x6b, 0xf8,
- 0x7c, 0x90, 0x80, 0xee, 0x3b, 0x11, 0xe3, 0xda, 0x1c, 0x8b, 0x39, 0x03, 0xfd, 0x4f, 0xdf, 0xbc,
- 0x89, 0xf6, 0x13, 0x45, 0xe7, 0xdf, 0x44, 0xfa, 0x9f, 0x6d, 0x8a, 0xa4, 0x39, 0x64, 0x2a, 0xd2,
- 0x4f, 0x49, 0x71, 0x3f, 0xd6, 0x29, 0xff, 0xfc, 0x7d, 0x36, 0xdf, 0x70, 0x3b, 0x55, 0x5b, 0xc5,
- 0x41, 0x1e, 0x6e, 0x7a, 0xe2, 0xc9, 0x5e, 0xb8, 0xef, 0xc7, 0x79, 0xa8, 0xe7, 0xa9, 0x5d, 0x83,
- 0xc9, 0x50, 0xc3, 0x13, 0x4f, 0xf5, 0x69, 0x46, 0x55, 0x0c, 0xf6, 0x3b, 0xb5, 0x8b, 0x90, 0xc1,
- 0xcd, 0x4b, 0x3c, 0xfc, 0x17, 0x18, 0x9c, 0xa8, 0xd7, 0x3e, 0x02, 0x39, 0xde, 0xb4, 0xc4, 0x43,
- 0x7f, 0x91, 0x41, 0x7d, 0x08, 0x86, 0xf3, 0x86, 0x25, 0x1e, 0xfe, 0x4b, 0x1c, 0xce, 0x21, 0x18,
- 0x9e, 0xdc, 0x85, 0xdf, 0xfd, 0x95, 0x0c, 0x2b, 0x3a, 0xdc, 0x77, 0x57, 0x61, 0x82, 0x75, 0x2a,
- 0xf1, 0xe8, 0xcf, 0xb0, 0x97, 0x73, 0x44, 0xed, 0x49, 0xc8, 0x26, 0x74, 0xf8, 0xaf, 0x32, 0x28,
- 0xd5, 0xaf, 0x35, 0xa0, 0x10, 0xe8, 0x4e, 0xe2, 0xe1, 0xbf, 0xc6, 0xe0, 0x41, 0x14, 0x36, 0x9d,
- 0x75, 0x27, 0xf1, 0x04, 0xbf, 0xce, 0x4d, 0x67, 0x08, 0xec, 0x36, 0xde, 0x98, 0xc4, 0xa3, 0x3f,
- 0xcb, 0xbd, 0xce, 0x21, 0xb5, 0xa7, 0x20, 0xef, 0x17, 0x9b, 0x78, 0xfc, 0x6f, 0x30, 0xfc, 0x00,
- 0x83, 0x3d, 0x10, 0x28, 0x76, 0xf1, 0x14, 0xbf, 0xc9, 0x3d, 0x10, 0x40, 0xe1, 0x6d, 0x14, 0x6d,
- 0x60, 0xe2, 0x99, 0x7e, 0x8b, 0x6f, 0xa3, 0x48, 0xff, 0x82, 0x57, 0x93, 0xe4, 0xfc, 0x78, 0x8a,
- 0xdf, 0xe6, 0xab, 0x49, 0xf4, 0xb1, 0x19, 0xd1, 0x8e, 0x20, 0x9e, 0xe3, 0x77, 0xb8, 0x19, 0x91,
- 0x86, 0xa0, 0xb6, 0x09, 0xd2, 0x70, 0x37, 0x10, 0xcf, 0xf7, 0x39, 0xc6, 0x37, 0x3d, 0xd4, 0x0c,
- 0xd4, 0x9e, 0x81, 0x13, 0xa3, 0x3b, 0x81, 0x78, 0xd6, 0xcf, 0xdf, 0x8f, 0x9c, 0xdd, 0x82, 0x8d,
- 0x40, 0x6d, 0x6b, 0x50, 0x52, 0x82, 0x5d, 0x40, 0x3c, 0xed, 0x8b, 0xf7, 0xc3, 0x89, 0x3b, 0xd8,
- 0x04, 0xd4, 0xea, 0x00, 0x83, 0x02, 0x1c, 0xcf, 0xf5, 0x12, 0xe3, 0x0a, 0x80, 0xf0, 0xd6, 0x60,
- 0xf5, 0x37, 0x1e, 0xff, 0x05, 0xbe, 0x35, 0x18, 0x02, 0x6f, 0x0d, 0x5e, 0x7a, 0xe3, 0xd1, 0x2f,
- 0xf3, 0xad, 0xc1, 0x21, 0x38, 0xb2, 0x03, 0xd5, 0x2d, 0x9e, 0xe1, 0x8b, 0x3c, 0xb2, 0x03, 0xa8,
- 0xda, 0x3a, 0x4c, 0x0f, 0x15, 0xc4, 0x78, 0xaa, 0x2f, 0x31, 0x2a, 0x31, 0x5a, 0x0f, 0x83, 0xc5,
- 0x8b, 0x15, 0xc3, 0x78, 0xb6, 0x3f, 0x88, 0x14, 0x2f, 0x56, 0x0b, 0x6b, 0x57, 0x21, 0x67, 0xf6,
- 0x0d, 0x03, 0x6f, 0x1e, 0xe9, 0xe8, 0x1f, 0xd8, 0x95, 0xff, 0xed, 0x1d, 0xe6, 0x1d, 0x0e, 0xa8,
- 0x5d, 0x84, 0x2c, 0xea, 0xed, 0xa0, 0x4e, 0x1c, 0xf2, 0xdf, 0xdf, 0xe1, 0x09, 0x13, 0x6b, 0xd7,
- 0x9e, 0x02, 0xa0, 0x57, 0x23, 0xe4, 0xb3, 0x5f, 0x0c, 0xf6, 0x3f, 0xde, 0x61, 0x3f, 0x7d, 0x19,
- 0x40, 0x06, 0x04, 0xf4, 0x87, 0x34, 0x47, 0x13, 0xbc, 0x19, 0x26, 0x20, 0x2b, 0x72, 0x05, 0x26,
- 0x6e, 0xb8, 0x96, 0xe9, 0xa9, 0xdd, 0x38, 0xf4, 0x7f, 0x32, 0x34, 0xd7, 0xc7, 0x0e, 0xeb, 0x59,
- 0x0e, 0xf2, 0xd4, 0xae, 0x1b, 0x87, 0xfd, 0x2f, 0x86, 0xf5, 0x01, 0x18, 0xac, 0xa9, 0xae, 0x97,
- 0x64, 0xde, 0x3f, 0xe2, 0x60, 0x0e, 0xc0, 0x46, 0xe3, 0xff, 0x6f, 0xa2, 0xfd, 0x38, 0xec, 0x5b,
- 0xdc, 0x68, 0xa6, 0x5f, 0xfb, 0x08, 0xe4, 0xf1, 0xbf, 0xf4, 0xf7, 0x6c, 0x31, 0xe0, 0xff, 0x66,
- 0xe0, 0x01, 0x02, 0xbf, 0xd9, 0xf5, 0x3a, 0x9e, 0x1e, 0xef, 0xec, 0xff, 0x61, 0x2b, 0xcd, 0xf5,
- 0x6b, 0x75, 0x28, 0xb8, 0x5e, 0xa7, 0xd3, 0x67, 0xfd, 0x69, 0x0c, 0xfc, 0x7f, 0xdf, 0xf1, 0xaf,
- 0x2c, 0x7c, 0x0c, 0x5e, 0xed, 0xdb, 0x37, 0x3d, 0xdb, 0x22, 0x9f, 0x39, 0xe2, 0x18, 0xee, 0x33,
- 0x86, 0x00, 0x64, 0xa9, 0x39, 0xfa, 0xfa, 0x16, 0x56, 0xac, 0x15, 0x8b, 0x5e, 0xdc, 0x3e, 0x57,
- 0x8d, 0xbf, 0x81, 0x85, 0xcf, 0x66, 0xa1, 0xaa, 0x59, 0xbd, 0x1d, 0xcb, 0x5d, 0x0c, 0x24, 0xf3,
- 0x45, 0xdf, 0x4d, 0xfc, 0x76, 0xd6, 0x17, 0xcc, 0x1d, 0xef, 0x5e, 0xb7, 0xfa, 0xb7, 0x69, 0xc8,
- 0x35, 0x54, 0xd7, 0x53, 0x6f, 0xab, 0xfb, 0x92, 0x0d, 0x33, 0xf8, 0xff, 0x35, 0xd5, 0x26, 0xb7,
- 0x84, 0x6c, 0x3b, 0xb3, 0xab, 0xf3, 0x0f, 0x2e, 0x0c, 0xde, 0xca, 0x11, 0x0b, 0x23, 0xd4, 0xc9,
- 0x4f, 0x0e, 0x96, 0xc4, 0x57, 0xff, 0xf9, 0xf4, 0xd8, 0x2f, 0xff, 0xcb, 0xe9, 0xdc, 0xda, 0xfe,
- 0x33, 0xba, 0xe1, 0x5a, 0xa6, 0x3c, 0x8a, 0x5a, 0xfa, 0xb4, 0x00, 0x0f, 0x8e, 0x90, 0xaf, 0xb3,
- 0xdd, 0xce, 0x3e, 0x40, 0x5d, 0x48, 0xf8, 0x6a, 0x0e, 0xa3, 0x26, 0x14, 0x43, 0xaf, 0x3f, 0xea,
- 0x35, 0x73, 0xd7, 0xa1, 0x7c, 0xd8, 0x4c, 0x24, 0x11, 0xd2, 0x37, 0xd1, 0x3e, 0xfb, 0xdd, 0x22,
- 0xfe, 0x57, 0x3a, 0x37, 0xf8, 0x75, 0xa7, 0x30, 0x5f, 0x38, 0x3f, 0x1d, 0xb0, 0x8e, 0xbd, 0x8c,
- 0x8e, 0xd7, 0x52, 0x97, 0x85, 0x39, 0x15, 0xce, 0xc4, 0x59, 0xfa, 0xff, 0x7c, 0x45, 0xb5, 0x02,
- 0xe3, 0x54, 0x28, 0xcd, 0x42, 0xb6, 0x65, 0x7a, 0x97, 0x2e, 0x10, 0xaa, 0xb4, 0x4c, 0x1f, 0x96,
- 0x56, 0x5f, 0xbd, 0x57, 0x19, 0xfb, 0xfe, 0xbd, 0xca, 0xd8, 0x3f, 0xde, 0xab, 0x8c, 0xbd, 0x76,
- 0xaf, 0x22, 0xbc, 0x71, 0xaf, 0x22, 0xbc, 0x75, 0xaf, 0x22, 0xbc, 0x7d, 0xaf, 0x22, 0xdc, 0x3d,
- 0xa8, 0x08, 0x5f, 0x39, 0xa8, 0x08, 0x5f, 0x3b, 0xa8, 0x08, 0xdf, 0x3a, 0xa8, 0x08, 0xdf, 0x3d,
- 0xa8, 0x08, 0xaf, 0x1e, 0x54, 0xc6, 0xbe, 0x7f, 0x50, 0x11, 0x5e, 0x3b, 0xa8, 0x08, 0x6f, 0x1c,
- 0x54, 0xc6, 0xde, 0x3a, 0xa8, 0x08, 0x6f, 0x1f, 0x54, 0xc6, 0xee, 0xfe, 0xb0, 0x32, 0xf6, 0x7f,
- 0x01, 0x00, 0x00, 0xff, 0xff, 0x54, 0x4b, 0xb1, 0x7c, 0x2e, 0x35, 0x00, 0x00,
+ // 4046 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xdc, 0xe6,
+ 0x75, 0x26, 0xf6, 0x42, 0xee, 0x9e, 0x5d, 0x2e, 0x41, 0x90, 0x96, 0x56, 0x74, 0xbc, 0x92, 0xd6,
+ 0x76, 0x44, 0xdf, 0xa8, 0x8c, 0x2c, 0xc9, 0xf2, 0xaa, 0x89, 0xbb, 0x5c, 0xae, 0x98, 0x75, 0x79,
+ 0x0b, 0x96, 0x8c, 0x2d, 0x67, 0x3a, 0x18, 0x10, 0xfb, 0x73, 0x09, 0x09, 0x0b, 0x20, 0x00, 0x56,
+ 0x32, 0x35, 0x7d, 0x50, 0xc7, 0x69, 0x3b, 0xe9, 0x35, 0xbd, 0xcc, 0x34, 0x71, 0x1d, 0xb7, 0x49,
+ 0xa7, 0x71, 0x9a, 0xde, 0x92, 0x5e, 0xd2, 0x24, 0x7d, 0x49, 0x1f, 0xd2, 0xea, 0xa9, 0x93, 0xbc,
+ 0xf5, 0xa1, 0xd3, 0x5a, 0x8c, 0x67, 0xea, 0xb6, 0x6e, 0xeb, 0xb6, 0x7a, 0xf0, 0x8c, 0x5f, 0x3a,
+ 0xff, 0x0d, 0x0b, 0x60, 0x97, 0x04, 0x98, 0x8c, 0xed, 0x27, 0x12, 0xe7, 0x3f, 0xdf, 0x87, 0xf3,
+ 0x9f, 0xff, 0xfc, 0xe7, 0x9c, 0xff, 0xc7, 0xc2, 0x9d, 0x1a, 0x9c, 0xea, 0x5a, 0x56, 0xd7, 0x40,
+ 0x67, 0x6d, 0xc7, 0xf2, 0xac, 0xed, 0xfe, 0xce, 0xd9, 0x0e, 0x72, 0x35, 0x47, 0xb7, 0x3d, 0xcb,
+ 0x59, 0x20, 0x32, 0x69, 0x8a, 0x6a, 0x2c, 0x70, 0x8d, 0xea, 0x2a, 0x4c, 0x5f, 0xd1, 0x0d, 0xb4,
+ 0xe4, 0x2b, 0xb6, 0x91, 0x27, 0x5d, 0x82, 0xcc, 0x8e, 0x6e, 0xa0, 0xb2, 0x70, 0x2a, 0x3d, 0x5f,
+ 0x38, 0xf7, 0xd0, 0x42, 0x04, 0xb4, 0x10, 0x46, 0x6c, 0x60, 0xb1, 0x4c, 0x10, 0xd5, 0x37, 0x32,
+ 0x30, 0x33, 0x62, 0x54, 0x92, 0x20, 0x63, 0xaa, 0x3d, 0xcc, 0x28, 0xcc, 0xe7, 0x65, 0xf2, 0xbf,
+ 0x54, 0x86, 0x09, 0x5b, 0xd5, 0xae, 0xab, 0x5d, 0x54, 0x4e, 0x11, 0x31, 0x7f, 0x94, 0x2a, 0x00,
+ 0x1d, 0x64, 0x23, 0xb3, 0x83, 0x4c, 0x6d, 0xaf, 0x9c, 0x3e, 0x95, 0x9e, 0xcf, 0xcb, 0x01, 0x89,
+ 0xf4, 0x18, 0x4c, 0xdb, 0xfd, 0x6d, 0x43, 0xd7, 0x94, 0x80, 0x1a, 0x9c, 0x4a, 0xcf, 0x67, 0x65,
+ 0x91, 0x0e, 0x2c, 0x0d, 0x94, 0xcf, 0xc0, 0xd4, 0x4d, 0xa4, 0x5e, 0x0f, 0xaa, 0x16, 0x88, 0x6a,
+ 0x09, 0x8b, 0x03, 0x8a, 0x0d, 0x28, 0xf6, 0x90, 0xeb, 0xaa, 0x5d, 0xa4, 0x78, 0x7b, 0x36, 0x2a,
+ 0x67, 0xc8, 0xec, 0x4f, 0x0d, 0xcd, 0x3e, 0x3a, 0xf3, 0x02, 0x43, 0x6d, 0xee, 0xd9, 0x48, 0xaa,
+ 0x43, 0x1e, 0x99, 0xfd, 0x1e, 0x65, 0xc8, 0x1e, 0xe0, 0xbf, 0xa6, 0xd9, 0xef, 0x45, 0x59, 0x72,
+ 0x18, 0xc6, 0x28, 0x26, 0x5c, 0xe4, 0xdc, 0xd0, 0x35, 0x54, 0x1e, 0x27, 0x04, 0x67, 0x86, 0x08,
+ 0xda, 0x74, 0x3c, 0xca, 0xc1, 0x71, 0x52, 0x03, 0xf2, 0xe8, 0x45, 0x0f, 0x99, 0xae, 0x6e, 0x99,
+ 0xe5, 0x09, 0x42, 0xf2, 0xf0, 0x88, 0x55, 0x44, 0x46, 0x27, 0x4a, 0x31, 0xc0, 0x49, 0x17, 0x61,
+ 0xc2, 0xb2, 0x3d, 0xdd, 0x32, 0xdd, 0x72, 0xee, 0x94, 0x30, 0x5f, 0x38, 0xf7, 0xa1, 0x91, 0x81,
+ 0xb0, 0x4e, 0x75, 0x64, 0xae, 0x2c, 0xb5, 0x40, 0x74, 0xad, 0xbe, 0xa3, 0x21, 0x45, 0xb3, 0x3a,
+ 0x48, 0xd1, 0xcd, 0x1d, 0xab, 0x9c, 0x27, 0x04, 0x27, 0x87, 0x27, 0x42, 0x14, 0x1b, 0x56, 0x07,
+ 0xb5, 0xcc, 0x1d, 0x4b, 0x2e, 0xb9, 0xa1, 0x67, 0xe9, 0x18, 0x8c, 0xbb, 0x7b, 0xa6, 0xa7, 0xbe,
+ 0x58, 0x2e, 0x92, 0x08, 0x61, 0x4f, 0xd5, 0x6f, 0x8f, 0xc3, 0x54, 0x92, 0x10, 0xbb, 0x0c, 0xd9,
+ 0x1d, 0x3c, 0xcb, 0x72, 0xea, 0x28, 0x3e, 0xa0, 0x98, 0xb0, 0x13, 0xc7, 0x7f, 0x44, 0x27, 0xd6,
+ 0xa1, 0x60, 0x22, 0xd7, 0x43, 0x1d, 0x1a, 0x11, 0xe9, 0x84, 0x31, 0x05, 0x14, 0x34, 0x1c, 0x52,
+ 0x99, 0x1f, 0x29, 0xa4, 0x9e, 0x87, 0x29, 0xdf, 0x24, 0xc5, 0x51, 0xcd, 0x2e, 0x8f, 0xcd, 0xb3,
+ 0x71, 0x96, 0x2c, 0x34, 0x39, 0x4e, 0xc6, 0x30, 0xb9, 0x84, 0x42, 0xcf, 0xd2, 0x12, 0x80, 0x65,
+ 0x22, 0x6b, 0x47, 0xe9, 0x20, 0xcd, 0x28, 0xe7, 0x0e, 0xf0, 0xd2, 0x3a, 0x56, 0x19, 0xf2, 0x92,
+ 0x45, 0xa5, 0x9a, 0x21, 0x3d, 0x3d, 0x08, 0xb5, 0x89, 0x03, 0x22, 0x65, 0x95, 0x6e, 0xb2, 0xa1,
+ 0x68, 0xdb, 0x82, 0x92, 0x83, 0x70, 0xdc, 0xa3, 0x0e, 0x9b, 0x59, 0x9e, 0x18, 0xb1, 0x10, 0x3b,
+ 0x33, 0x99, 0xc1, 0xe8, 0xc4, 0x26, 0x9d, 0xe0, 0xa3, 0xf4, 0x20, 0xf8, 0x02, 0x85, 0x84, 0x15,
+ 0x90, 0x2c, 0x54, 0xe4, 0xc2, 0x35, 0xb5, 0x87, 0xe6, 0x6e, 0x41, 0x29, 0xec, 0x1e, 0x69, 0x16,
+ 0xb2, 0xae, 0xa7, 0x3a, 0x1e, 0x89, 0xc2, 0xac, 0x4c, 0x1f, 0x24, 0x11, 0xd2, 0xc8, 0xec, 0x90,
+ 0x2c, 0x97, 0x95, 0xf1, 0xbf, 0xd2, 0x4f, 0x0e, 0x26, 0x9c, 0x26, 0x13, 0xfe, 0xf0, 0xf0, 0x8a,
+ 0x86, 0x98, 0xa3, 0xf3, 0x9e, 0x7b, 0x0a, 0x26, 0x43, 0x13, 0x48, 0xfa, 0xea, 0xea, 0xcf, 0xc0,
+ 0x7d, 0x23, 0xa9, 0xa5, 0xe7, 0x61, 0xb6, 0x6f, 0xea, 0xa6, 0x87, 0x1c, 0xdb, 0x41, 0x38, 0x62,
+ 0xe9, 0xab, 0xca, 0xff, 0x3a, 0x71, 0x40, 0xcc, 0x6d, 0x05, 0xb5, 0x29, 0x8b, 0x3c, 0xd3, 0x1f,
+ 0x16, 0x3e, 0x9a, 0xcf, 0xbd, 0x39, 0x21, 0xde, 0xbe, 0x7d, 0xfb, 0x76, 0xaa, 0xfa, 0xf9, 0x71,
+ 0x98, 0x1d, 0xb5, 0x67, 0x46, 0x6e, 0xdf, 0x63, 0x30, 0x6e, 0xf6, 0x7b, 0xdb, 0xc8, 0x21, 0x4e,
+ 0xca, 0xca, 0xec, 0x49, 0xaa, 0x43, 0xd6, 0x50, 0xb7, 0x91, 0x51, 0xce, 0x9c, 0x12, 0xe6, 0x4b,
+ 0xe7, 0x1e, 0x4b, 0xb4, 0x2b, 0x17, 0x56, 0x30, 0x44, 0xa6, 0x48, 0xe9, 0x63, 0x90, 0x61, 0x29,
+ 0x1a, 0x33, 0x3c, 0x9a, 0x8c, 0x01, 0xef, 0x25, 0x99, 0xe0, 0xa4, 0xfb, 0x21, 0x8f, 0xff, 0xd2,
+ 0xd8, 0x18, 0x27, 0x36, 0xe7, 0xb0, 0x00, 0xc7, 0x85, 0x34, 0x07, 0x39, 0xb2, 0x4d, 0x3a, 0x88,
+ 0x97, 0x36, 0xff, 0x19, 0x07, 0x56, 0x07, 0xed, 0xa8, 0x7d, 0xc3, 0x53, 0x6e, 0xa8, 0x46, 0x1f,
+ 0x91, 0x80, 0xcf, 0xcb, 0x45, 0x26, 0xfc, 0x24, 0x96, 0x49, 0x27, 0xa1, 0x40, 0x77, 0x95, 0x6e,
+ 0x76, 0xd0, 0x8b, 0x24, 0x7b, 0x66, 0x65, 0xba, 0xd1, 0x5a, 0x58, 0x82, 0x5f, 0x7f, 0xcd, 0xb5,
+ 0x4c, 0x1e, 0x9a, 0xe4, 0x15, 0x58, 0x40, 0x5e, 0xff, 0x54, 0x34, 0x71, 0x3f, 0x30, 0x7a, 0x7a,
+ 0xd1, 0x98, 0xaa, 0x7e, 0x33, 0x05, 0x19, 0x92, 0x2f, 0xa6, 0xa0, 0xb0, 0x79, 0x75, 0xa3, 0xa9,
+ 0x2c, 0xad, 0x6f, 0x2d, 0xae, 0x34, 0x45, 0x41, 0x2a, 0x01, 0x10, 0xc1, 0x95, 0x95, 0xf5, 0xfa,
+ 0xa6, 0x98, 0xf2, 0x9f, 0x5b, 0x6b, 0x9b, 0x17, 0xcf, 0x8b, 0x69, 0x1f, 0xb0, 0x45, 0x05, 0x99,
+ 0xa0, 0xc2, 0x93, 0xe7, 0xc4, 0xac, 0x24, 0x42, 0x91, 0x12, 0xb4, 0x9e, 0x6f, 0x2e, 0x5d, 0x3c,
+ 0x2f, 0x8e, 0x87, 0x25, 0x4f, 0x9e, 0x13, 0x27, 0xa4, 0x49, 0xc8, 0x13, 0xc9, 0xe2, 0xfa, 0xfa,
+ 0x8a, 0x98, 0xf3, 0x39, 0xdb, 0x9b, 0x72, 0x6b, 0x6d, 0x59, 0xcc, 0xfb, 0x9c, 0xcb, 0xf2, 0xfa,
+ 0xd6, 0x86, 0x08, 0x3e, 0xc3, 0x6a, 0xb3, 0xdd, 0xae, 0x2f, 0x37, 0xc5, 0x82, 0xaf, 0xb1, 0x78,
+ 0x75, 0xb3, 0xd9, 0x16, 0x8b, 0x21, 0xb3, 0x9e, 0x3c, 0x27, 0x4e, 0xfa, 0xaf, 0x68, 0xae, 0x6d,
+ 0xad, 0x8a, 0x25, 0x69, 0x1a, 0x26, 0xe9, 0x2b, 0xb8, 0x11, 0x53, 0x11, 0xd1, 0xc5, 0xf3, 0xa2,
+ 0x38, 0x30, 0x84, 0xb2, 0x4c, 0x87, 0x04, 0x17, 0xcf, 0x8b, 0x52, 0xb5, 0x01, 0x59, 0x12, 0x5d,
+ 0x92, 0x04, 0xa5, 0x95, 0xfa, 0x62, 0x73, 0x45, 0x59, 0xdf, 0xd8, 0x6c, 0xad, 0xaf, 0xd5, 0x57,
+ 0x44, 0x61, 0x20, 0x93, 0x9b, 0x9f, 0xd8, 0x6a, 0xc9, 0xcd, 0x25, 0x31, 0x15, 0x94, 0x6d, 0x34,
+ 0xeb, 0x9b, 0xcd, 0x25, 0x31, 0x5d, 0xd5, 0x60, 0x76, 0x54, 0x9e, 0x1c, 0xb9, 0x33, 0x02, 0x4b,
+ 0x9c, 0x3a, 0x60, 0x89, 0x09, 0xd7, 0xd0, 0x12, 0xff, 0x30, 0x05, 0x33, 0x23, 0x6a, 0xc5, 0xc8,
+ 0x97, 0x3c, 0x03, 0x59, 0x1a, 0xa2, 0xb4, 0x7a, 0x3e, 0x32, 0xb2, 0xe8, 0x90, 0x80, 0x1d, 0xaa,
+ 0xa0, 0x04, 0x17, 0xec, 0x20, 0xd2, 0x07, 0x74, 0x10, 0x98, 0x62, 0x28, 0xa7, 0xff, 0xf4, 0x50,
+ 0x4e, 0xa7, 0x65, 0xef, 0x62, 0x92, 0xb2, 0x47, 0x64, 0x47, 0xcb, 0xed, 0xd9, 0x11, 0xb9, 0xfd,
+ 0x32, 0x4c, 0x0f, 0x11, 0x25, 0xce, 0xb1, 0x2f, 0x09, 0x50, 0x3e, 0xc8, 0x39, 0x31, 0x99, 0x2e,
+ 0x15, 0xca, 0x74, 0x97, 0xa3, 0x1e, 0x3c, 0x7d, 0xf0, 0x22, 0x0c, 0xad, 0xf5, 0x6b, 0x02, 0x1c,
+ 0x1b, 0xdd, 0x29, 0x8e, 0xb4, 0xe1, 0x63, 0x30, 0xde, 0x43, 0xde, 0xae, 0xc5, 0xbb, 0xa5, 0x0f,
+ 0x8f, 0xa8, 0xc1, 0x78, 0x38, 0xba, 0xd8, 0x0c, 0x15, 0x2c, 0xe2, 0xe9, 0x83, 0xda, 0x3d, 0x6a,
+ 0xcd, 0x90, 0xa5, 0x9f, 0x4d, 0xc1, 0x7d, 0x23, 0xc9, 0x47, 0x1a, 0xfa, 0x00, 0x80, 0x6e, 0xda,
+ 0x7d, 0x8f, 0x76, 0x44, 0x34, 0xc1, 0xe6, 0x89, 0x84, 0x24, 0x2f, 0x9c, 0x3c, 0xfb, 0x9e, 0x3f,
+ 0x9e, 0x26, 0xe3, 0x40, 0x45, 0x44, 0xe1, 0xd2, 0xc0, 0xd0, 0x0c, 0x31, 0xb4, 0x72, 0xc0, 0x4c,
+ 0x87, 0x02, 0xf3, 0x23, 0x20, 0x6a, 0x86, 0x8e, 0x4c, 0x4f, 0x71, 0x3d, 0x07, 0xa9, 0x3d, 0xdd,
+ 0xec, 0x92, 0x0a, 0x92, 0xab, 0x65, 0x77, 0x54, 0xc3, 0x45, 0xf2, 0x14, 0x1d, 0x6e, 0xf3, 0x51,
+ 0x8c, 0x20, 0x01, 0xe4, 0x04, 0x10, 0xe3, 0x21, 0x04, 0x1d, 0xf6, 0x11, 0xd5, 0x5f, 0xce, 0x43,
+ 0x21, 0xd0, 0x57, 0x4b, 0xa7, 0xa1, 0x78, 0x4d, 0xbd, 0xa1, 0x2a, 0xfc, 0xac, 0x44, 0x3d, 0x51,
+ 0xc0, 0xb2, 0x0d, 0x76, 0x5e, 0xfa, 0x08, 0xcc, 0x12, 0x15, 0xab, 0xef, 0x21, 0x47, 0xd1, 0x0c,
+ 0xd5, 0x75, 0x89, 0xd3, 0x72, 0x44, 0x55, 0xc2, 0x63, 0xeb, 0x78, 0xa8, 0xc1, 0x47, 0xa4, 0x0b,
+ 0x30, 0x43, 0x10, 0xbd, 0xbe, 0xe1, 0xe9, 0xb6, 0x81, 0x14, 0x7c, 0x7a, 0x73, 0x49, 0x25, 0xf1,
+ 0x2d, 0x9b, 0xc6, 0x1a, 0xab, 0x4c, 0x01, 0x5b, 0xe4, 0x4a, 0x4b, 0xf0, 0x00, 0x81, 0x75, 0x91,
+ 0x89, 0x1c, 0xd5, 0x43, 0x0a, 0xfa, 0x74, 0x5f, 0x35, 0x5c, 0x45, 0x35, 0x3b, 0xca, 0xae, 0xea,
+ 0xee, 0x96, 0x67, 0x31, 0xc1, 0x62, 0xaa, 0x2c, 0xc8, 0x27, 0xb0, 0xe2, 0x32, 0xd3, 0x6b, 0x12,
+ 0xb5, 0xba, 0xd9, 0xf9, 0xb8, 0xea, 0xee, 0x4a, 0x35, 0x38, 0x46, 0x58, 0x5c, 0xcf, 0xd1, 0xcd,
+ 0xae, 0xa2, 0xed, 0x22, 0xed, 0xba, 0xd2, 0xf7, 0x76, 0x2e, 0x95, 0xef, 0x0f, 0xbe, 0x9f, 0x58,
+ 0xd8, 0x26, 0x3a, 0x0d, 0xac, 0xb2, 0xe5, 0xed, 0x5c, 0x92, 0xda, 0x50, 0xc4, 0x8b, 0xd1, 0xd3,
+ 0x6f, 0x21, 0x65, 0xc7, 0x72, 0x48, 0x69, 0x2c, 0x8d, 0x48, 0x4d, 0x01, 0x0f, 0x2e, 0xac, 0x33,
+ 0xc0, 0xaa, 0xd5, 0x41, 0xb5, 0x6c, 0x7b, 0xa3, 0xd9, 0x5c, 0x92, 0x0b, 0x9c, 0xe5, 0x8a, 0xe5,
+ 0xe0, 0x80, 0xea, 0x5a, 0xbe, 0x83, 0x0b, 0x34, 0xa0, 0xba, 0x16, 0x77, 0xef, 0x05, 0x98, 0xd1,
+ 0x34, 0x3a, 0x67, 0x5d, 0x53, 0xd8, 0x19, 0xcb, 0x2d, 0x8b, 0x21, 0x67, 0x69, 0xda, 0x32, 0x55,
+ 0x60, 0x31, 0xee, 0x4a, 0x4f, 0xc3, 0x7d, 0x03, 0x67, 0x05, 0x81, 0xd3, 0x43, 0xb3, 0x8c, 0x42,
+ 0x2f, 0xc0, 0x8c, 0xbd, 0x37, 0x0c, 0x94, 0x42, 0x6f, 0xb4, 0xf7, 0xa2, 0xb0, 0xa7, 0x60, 0xd6,
+ 0xde, 0xb5, 0x87, 0x71, 0x8f, 0x06, 0x71, 0x92, 0xbd, 0x6b, 0x47, 0x81, 0x0f, 0x93, 0x03, 0xb7,
+ 0x83, 0x34, 0xd5, 0x43, 0x9d, 0xf2, 0xf1, 0xa0, 0x7a, 0x60, 0x40, 0x3a, 0x0b, 0xa2, 0xa6, 0x29,
+ 0xc8, 0x54, 0xb7, 0x0d, 0xa4, 0xa8, 0x0e, 0x32, 0x55, 0xb7, 0x7c, 0x32, 0xa8, 0x5c, 0xd2, 0xb4,
+ 0x26, 0x19, 0xad, 0x93, 0x41, 0xe9, 0x51, 0x98, 0xb6, 0xb6, 0xaf, 0x69, 0x34, 0x24, 0x15, 0xdb,
+ 0x41, 0x3b, 0xfa, 0x8b, 0xe5, 0x87, 0x88, 0x7f, 0xa7, 0xf0, 0x00, 0x09, 0xc8, 0x0d, 0x22, 0x96,
+ 0x1e, 0x01, 0x51, 0x73, 0x77, 0x55, 0xc7, 0x26, 0x39, 0xd9, 0xb5, 0x55, 0x0d, 0x95, 0x1f, 0xa6,
+ 0xaa, 0x54, 0xbe, 0xc6, 0xc5, 0x78, 0x4b, 0xb8, 0x37, 0xf5, 0x1d, 0x8f, 0x33, 0x9e, 0xa1, 0x5b,
+ 0x82, 0xc8, 0x18, 0xdb, 0x3c, 0x88, 0xd8, 0x15, 0xa1, 0x17, 0xcf, 0x13, 0xb5, 0x92, 0xbd, 0x6b,
+ 0x07, 0xdf, 0xfb, 0x20, 0x4c, 0x62, 0xcd, 0xc1, 0x4b, 0x1f, 0xa1, 0x0d, 0x99, 0xbd, 0x1b, 0x78,
+ 0xe3, 0x79, 0x38, 0x86, 0x95, 0x7a, 0xc8, 0x53, 0x3b, 0xaa, 0xa7, 0x06, 0xb4, 0x1f, 0x27, 0xda,
+ 0xd8, 0xef, 0xab, 0x6c, 0x30, 0x64, 0xa7, 0xd3, 0xdf, 0xde, 0xf3, 0x23, 0xeb, 0x09, 0x6a, 0x27,
+ 0x96, 0xf1, 0xd8, 0x7a, 0xcf, 0x9a, 0xee, 0x6a, 0x0d, 0x8a, 0xc1, 0xc0, 0x97, 0xf2, 0x40, 0x43,
+ 0x5f, 0x14, 0x70, 0x17, 0xd4, 0x58, 0x5f, 0xc2, 0xfd, 0xcb, 0x0b, 0x4d, 0x31, 0x85, 0xfb, 0xa8,
+ 0x95, 0xd6, 0x66, 0x53, 0x91, 0xb7, 0xd6, 0x36, 0x5b, 0xab, 0x4d, 0x31, 0x1d, 0x6c, 0xd8, 0xbf,
+ 0x97, 0x82, 0x52, 0xf8, 0xec, 0x25, 0xfd, 0x04, 0x1c, 0xe7, 0x17, 0x25, 0x2e, 0xf2, 0x94, 0x9b,
+ 0xba, 0x43, 0xf6, 0x62, 0x4f, 0xa5, 0x75, 0xd1, 0x8f, 0x86, 0x59, 0xa6, 0xd5, 0x46, 0xde, 0x73,
+ 0xba, 0x83, 0x77, 0x5a, 0x4f, 0xf5, 0xa4, 0x15, 0x38, 0x69, 0x5a, 0x8a, 0xeb, 0xa9, 0x66, 0x47,
+ 0x75, 0x3a, 0xca, 0xe0, 0x8a, 0x4a, 0x51, 0x35, 0x0d, 0xb9, 0xae, 0x45, 0x6b, 0xa0, 0xcf, 0xf2,
+ 0x21, 0xd3, 0x6a, 0x33, 0xe5, 0x41, 0x71, 0xa8, 0x33, 0xd5, 0x48, 0xe4, 0xa6, 0x0f, 0x8a, 0xdc,
+ 0xfb, 0x21, 0xdf, 0x53, 0x6d, 0x05, 0x99, 0x9e, 0xb3, 0x47, 0x3a, 0xee, 0x9c, 0x9c, 0xeb, 0xa9,
+ 0x76, 0x13, 0x3f, 0xbf, 0x3f, 0x07, 0x9f, 0x7f, 0x4a, 0x43, 0x31, 0xd8, 0x75, 0xe3, 0x43, 0x8c,
+ 0x46, 0x0a, 0x94, 0x40, 0x52, 0xd8, 0x83, 0x87, 0xf6, 0xe8, 0x0b, 0x0d, 0x5c, 0xb9, 0x6a, 0xe3,
+ 0xb4, 0x17, 0x96, 0x29, 0x12, 0x77, 0x0d, 0x38, 0xb4, 0x10, 0xed, 0x3d, 0x72, 0x32, 0x7b, 0x92,
+ 0x96, 0x61, 0xfc, 0x9a, 0x4b, 0xb8, 0xc7, 0x09, 0xf7, 0x43, 0x87, 0x73, 0x3f, 0xdb, 0x26, 0xe4,
+ 0xf9, 0x67, 0xdb, 0xca, 0xda, 0xba, 0xbc, 0x5a, 0x5f, 0x91, 0x19, 0x5c, 0x3a, 0x01, 0x19, 0x43,
+ 0xbd, 0xb5, 0x17, 0xae, 0x71, 0x44, 0x94, 0xd4, 0xf1, 0x27, 0x20, 0x73, 0x13, 0xa9, 0xd7, 0xc3,
+ 0x95, 0x85, 0x88, 0xde, 0xc3, 0xd0, 0x3f, 0x0b, 0x59, 0xe2, 0x2f, 0x09, 0x80, 0x79, 0x4c, 0x1c,
+ 0x93, 0x72, 0x90, 0x69, 0xac, 0xcb, 0x38, 0xfc, 0x45, 0x28, 0x52, 0xa9, 0xb2, 0xd1, 0x6a, 0x36,
+ 0x9a, 0x62, 0xaa, 0x7a, 0x01, 0xc6, 0xa9, 0x13, 0xf0, 0xd6, 0xf0, 0xdd, 0x20, 0x8e, 0xb1, 0x47,
+ 0xc6, 0x21, 0xf0, 0xd1, 0xad, 0xd5, 0xc5, 0xa6, 0x2c, 0xa6, 0x82, 0xcb, 0xeb, 0x42, 0x31, 0xd8,
+ 0x70, 0xbf, 0x3f, 0x31, 0xf5, 0x1d, 0x01, 0x0a, 0x81, 0x06, 0x1a, 0x77, 0x3e, 0xaa, 0x61, 0x58,
+ 0x37, 0x15, 0xd5, 0xd0, 0x55, 0x97, 0x05, 0x05, 0x10, 0x51, 0x1d, 0x4b, 0x92, 0x2e, 0xda, 0xfb,
+ 0x62, 0xfc, 0xab, 0x02, 0x88, 0xd1, 0xde, 0x35, 0x62, 0xa0, 0xf0, 0x81, 0x1a, 0xf8, 0x8a, 0x00,
+ 0xa5, 0x70, 0xc3, 0x1a, 0x31, 0xef, 0xf4, 0x07, 0x6a, 0xde, 0xeb, 0x29, 0x98, 0x0c, 0xb5, 0xa9,
+ 0x49, 0xad, 0xfb, 0x34, 0x4c, 0xeb, 0x1d, 0xd4, 0xb3, 0x2d, 0x0f, 0x99, 0xda, 0x9e, 0x62, 0xa0,
+ 0x1b, 0xc8, 0x28, 0x57, 0x49, 0xa2, 0x38, 0x7b, 0x78, 0x23, 0xbc, 0xd0, 0x1a, 0xe0, 0x56, 0x30,
+ 0xac, 0x36, 0xd3, 0x5a, 0x6a, 0xae, 0x6e, 0xac, 0x6f, 0x36, 0xd7, 0x1a, 0x57, 0x95, 0xad, 0xb5,
+ 0x9f, 0x5a, 0x5b, 0x7f, 0x6e, 0x4d, 0x16, 0xf5, 0x88, 0xda, 0x7b, 0xb8, 0xd5, 0x37, 0x40, 0x8c,
+ 0x1a, 0x25, 0x1d, 0x87, 0x51, 0x66, 0x89, 0x63, 0xd2, 0x0c, 0x4c, 0xad, 0xad, 0x2b, 0xed, 0xd6,
+ 0x52, 0x53, 0x69, 0x5e, 0xb9, 0xd2, 0x6c, 0x6c, 0xb6, 0xe9, 0xd5, 0x86, 0xaf, 0xbd, 0x19, 0xde,
+ 0xd4, 0x2f, 0xa7, 0x61, 0x66, 0x84, 0x25, 0x52, 0x9d, 0x1d, 0x4a, 0xe8, 0x39, 0xe9, 0x89, 0x24,
+ 0xd6, 0x2f, 0xe0, 0xae, 0x60, 0x43, 0x75, 0x3c, 0x76, 0x86, 0x79, 0x04, 0xb0, 0x97, 0x4c, 0x4f,
+ 0xdf, 0xd1, 0x91, 0xc3, 0x6e, 0x82, 0xe8, 0x49, 0x65, 0x6a, 0x20, 0xa7, 0x97, 0x41, 0x8f, 0x83,
+ 0x64, 0x5b, 0xae, 0xee, 0xe9, 0x37, 0x90, 0xa2, 0x9b, 0xfc, 0xda, 0x08, 0x9f, 0x5c, 0x32, 0xb2,
+ 0xc8, 0x47, 0x5a, 0xa6, 0xe7, 0x6b, 0x9b, 0xa8, 0xab, 0x46, 0xb4, 0x71, 0x02, 0x4f, 0xcb, 0x22,
+ 0x1f, 0xf1, 0xb5, 0x4f, 0x43, 0xb1, 0x63, 0xf5, 0x71, 0x3b, 0x47, 0xf5, 0x70, 0xbd, 0x10, 0xe4,
+ 0x02, 0x95, 0xf9, 0x2a, 0xac, 0x51, 0x1f, 0xdc, 0x57, 0x15, 0xe5, 0x02, 0x95, 0x51, 0x95, 0x33,
+ 0x30, 0xa5, 0x76, 0xbb, 0x0e, 0x26, 0xe7, 0x44, 0xf4, 0xe8, 0x51, 0xf2, 0xc5, 0x44, 0x71, 0xee,
+ 0x59, 0xc8, 0x71, 0x3f, 0xe0, 0x92, 0x8c, 0x3d, 0xa1, 0xd8, 0xf4, 0x3c, 0x9d, 0x9a, 0xcf, 0xcb,
+ 0x39, 0x93, 0x0f, 0x9e, 0x86, 0xa2, 0xee, 0x2a, 0x83, 0xeb, 0xf7, 0xd4, 0xa9, 0xd4, 0x7c, 0x4e,
+ 0x2e, 0xe8, 0xae, 0x7f, 0x75, 0x59, 0x7d, 0x2d, 0x05, 0xa5, 0xf0, 0xe7, 0x03, 0x69, 0x09, 0x72,
+ 0x86, 0xa5, 0xa9, 0x24, 0xb4, 0xe8, 0xb7, 0xab, 0xf9, 0x98, 0x2f, 0x0e, 0x0b, 0x2b, 0x4c, 0x5f,
+ 0xf6, 0x91, 0x73, 0xff, 0x20, 0x40, 0x8e, 0x8b, 0xa5, 0x63, 0x90, 0xb1, 0x55, 0x6f, 0x97, 0xd0,
+ 0x65, 0x17, 0x53, 0xa2, 0x20, 0x93, 0x67, 0x2c, 0x77, 0x6d, 0xd5, 0x24, 0x21, 0xc0, 0xe4, 0xf8,
+ 0x19, 0xaf, 0xab, 0x81, 0xd4, 0x0e, 0x39, 0xd7, 0x58, 0xbd, 0x1e, 0x32, 0x3d, 0x97, 0xaf, 0x2b,
+ 0x93, 0x37, 0x98, 0x58, 0x7a, 0x0c, 0xa6, 0x3d, 0x47, 0xd5, 0x8d, 0x90, 0x6e, 0x86, 0xe8, 0x8a,
+ 0x7c, 0xc0, 0x57, 0xae, 0xc1, 0x09, 0xce, 0xdb, 0x41, 0x9e, 0xaa, 0xed, 0xa2, 0xce, 0x00, 0x34,
+ 0x4e, 0xee, 0x2f, 0x8e, 0x33, 0x85, 0x25, 0x36, 0xce, 0xb1, 0xd5, 0x1f, 0x08, 0x30, 0xcd, 0x4f,
+ 0x62, 0x1d, 0xdf, 0x59, 0xab, 0x00, 0xaa, 0x69, 0x5a, 0x5e, 0xd0, 0x5d, 0xc3, 0xa1, 0x3c, 0x84,
+ 0x5b, 0xa8, 0xfb, 0x20, 0x39, 0x40, 0x30, 0xd7, 0x03, 0x18, 0x8c, 0x1c, 0xe8, 0xb6, 0x93, 0x50,
+ 0x60, 0xdf, 0x86, 0xc8, 0x07, 0x46, 0x7a, 0x76, 0x07, 0x2a, 0xc2, 0x47, 0x36, 0x69, 0x16, 0xb2,
+ 0xdb, 0xa8, 0xab, 0x9b, 0xec, 0xc6, 0x97, 0x3e, 0xf0, 0x1b, 0x96, 0x8c, 0x7f, 0xc3, 0xb2, 0xf8,
+ 0x29, 0x98, 0xd1, 0xac, 0x5e, 0xd4, 0xdc, 0x45, 0x31, 0x72, 0x7f, 0xe0, 0x7e, 0x5c, 0x78, 0x01,
+ 0x06, 0x2d, 0xe6, 0x3b, 0x82, 0xf0, 0xe5, 0x54, 0x7a, 0x79, 0x63, 0xf1, 0x6b, 0xa9, 0xb9, 0x65,
+ 0x0a, 0xdd, 0xe0, 0x33, 0x95, 0xd1, 0x8e, 0x81, 0x34, 0x6c, 0x3d, 0x7c, 0xe5, 0x31, 0x78, 0xa2,
+ 0xab, 0x7b, 0xbb, 0xfd, 0xed, 0x05, 0xcd, 0xea, 0x9d, 0xed, 0x5a, 0x5d, 0x6b, 0xf0, 0x4d, 0x15,
+ 0x3f, 0x91, 0x07, 0xf2, 0x1f, 0xfb, 0xae, 0x9a, 0xf7, 0xa5, 0x73, 0xb1, 0x1f, 0x61, 0x6b, 0x6b,
+ 0x30, 0xc3, 0x94, 0x15, 0xf2, 0x61, 0x87, 0x1e, 0x4f, 0xa4, 0x43, 0x2f, 0xc7, 0xca, 0xdf, 0x78,
+ 0x83, 0x94, 0x6b, 0x79, 0x9a, 0x41, 0xf1, 0x18, 0x3d, 0xc1, 0xd4, 0x64, 0xb8, 0x2f, 0xc4, 0x47,
+ 0xb7, 0x26, 0x72, 0x62, 0x18, 0xbf, 0xc7, 0x18, 0x67, 0x02, 0x8c, 0x6d, 0x06, 0xad, 0x35, 0x60,
+ 0xf2, 0x28, 0x5c, 0x7f, 0xc7, 0xb8, 0x8a, 0x28, 0x48, 0xb2, 0x0c, 0x53, 0x84, 0x44, 0xeb, 0xbb,
+ 0x9e, 0xd5, 0x23, 0x79, 0xef, 0x70, 0x9a, 0xbf, 0x7f, 0x83, 0xee, 0x95, 0x12, 0x86, 0x35, 0x7c,
+ 0x54, 0xad, 0x06, 0xe4, 0x5b, 0x56, 0x07, 0x69, 0x46, 0x0c, 0xc3, 0x1d, 0x66, 0x88, 0xaf, 0x5f,
+ 0xfb, 0x24, 0xcc, 0xe2, 0xff, 0x49, 0x5a, 0x0a, 0x5a, 0x12, 0x7f, 0x93, 0x56, 0xfe, 0xc1, 0x4b,
+ 0x74, 0x3b, 0xce, 0xf8, 0x04, 0x01, 0x9b, 0x02, 0xab, 0xd8, 0x45, 0x9e, 0x87, 0x1c, 0x57, 0x51,
+ 0x8d, 0x51, 0xe6, 0x05, 0xae, 0x22, 0xca, 0x5f, 0x78, 0x2b, 0xbc, 0x8a, 0xcb, 0x14, 0x59, 0x37,
+ 0x8c, 0xda, 0x16, 0x1c, 0x1f, 0x11, 0x15, 0x09, 0x38, 0x5f, 0x66, 0x9c, 0xb3, 0x43, 0x91, 0x81,
+ 0x69, 0x37, 0x80, 0xcb, 0xfd, 0xb5, 0x4c, 0xc0, 0xf9, 0x3b, 0x8c, 0x53, 0x62, 0x58, 0xbe, 0xa4,
+ 0x98, 0xf1, 0x59, 0x98, 0xbe, 0x81, 0x9c, 0x6d, 0xcb, 0x65, 0xd7, 0x3f, 0x09, 0xe8, 0x5e, 0x61,
+ 0x74, 0x53, 0x0c, 0x48, 0xee, 0x83, 0x30, 0xd7, 0xd3, 0x90, 0xdb, 0x51, 0x35, 0x94, 0x80, 0xe2,
+ 0x8b, 0x8c, 0x62, 0x02, 0xeb, 0x63, 0x68, 0x1d, 0x8a, 0x5d, 0x8b, 0x55, 0xa6, 0x78, 0xf8, 0xab,
+ 0x0c, 0x5e, 0xe0, 0x18, 0x46, 0x61, 0x5b, 0x76, 0xdf, 0xc0, 0x65, 0x2b, 0x9e, 0xe2, 0x77, 0x39,
+ 0x05, 0xc7, 0x30, 0x8a, 0x23, 0xb8, 0xf5, 0xf7, 0x38, 0x85, 0x1b, 0xf0, 0xe7, 0x33, 0x50, 0xb0,
+ 0x4c, 0x63, 0xcf, 0x32, 0x93, 0x18, 0xf1, 0x25, 0xc6, 0x00, 0x0c, 0x82, 0x09, 0x2e, 0x43, 0x3e,
+ 0xe9, 0x42, 0xfc, 0xc1, 0x5b, 0x7c, 0x7b, 0xf0, 0x15, 0x58, 0x86, 0x29, 0x9e, 0xa0, 0x74, 0xcb,
+ 0x4c, 0x40, 0xf1, 0x15, 0x46, 0x51, 0x0a, 0xc0, 0xd8, 0x34, 0x3c, 0xe4, 0x7a, 0x5d, 0x94, 0x84,
+ 0xe4, 0x35, 0x3e, 0x0d, 0x06, 0x61, 0xae, 0xdc, 0x46, 0xa6, 0xb6, 0x9b, 0x8c, 0xe1, 0xab, 0xdc,
+ 0x95, 0x1c, 0x83, 0x29, 0x1a, 0x30, 0xd9, 0x53, 0x1d, 0x77, 0x57, 0x35, 0x12, 0x2d, 0xc7, 0x1f,
+ 0x32, 0x8e, 0xa2, 0x0f, 0x62, 0x1e, 0xe9, 0x9b, 0x47, 0xa1, 0xf9, 0x1a, 0xf7, 0x48, 0x00, 0xc6,
+ 0xb6, 0x9e, 0xeb, 0x91, 0xbb, 0xb2, 0xa3, 0xb0, 0xfd, 0x11, 0xdf, 0x7a, 0x14, 0xbb, 0x1a, 0x64,
+ 0xbc, 0x0c, 0x79, 0x57, 0xbf, 0x95, 0x88, 0xe6, 0x8f, 0xf9, 0x4a, 0x13, 0x00, 0x06, 0x5f, 0x85,
+ 0x13, 0x23, 0xcb, 0x44, 0x02, 0xb2, 0x3f, 0x61, 0x64, 0xc7, 0x46, 0x94, 0x0a, 0x96, 0x12, 0x8e,
+ 0x4a, 0xf9, 0xa7, 0x3c, 0x25, 0xa0, 0x08, 0xd7, 0x06, 0x3e, 0x2b, 0xb8, 0xea, 0xce, 0xd1, 0xbc,
+ 0xf6, 0x67, 0xdc, 0x6b, 0x14, 0x1b, 0xf2, 0xda, 0x26, 0x1c, 0x63, 0x8c, 0x47, 0x5b, 0xd7, 0xaf,
+ 0xf3, 0xc4, 0x4a, 0xd1, 0x5b, 0xe1, 0xd5, 0xfd, 0x14, 0xcc, 0xf9, 0xee, 0xe4, 0x4d, 0xa9, 0xab,
+ 0xf4, 0x54, 0x3b, 0x01, 0xf3, 0x37, 0x18, 0x33, 0xcf, 0xf8, 0x7e, 0x57, 0xeb, 0xae, 0xaa, 0x36,
+ 0x26, 0x7f, 0x1e, 0xca, 0x9c, 0xbc, 0x6f, 0x3a, 0x48, 0xb3, 0xba, 0xa6, 0x7e, 0x0b, 0x75, 0x12,
+ 0x50, 0xff, 0x79, 0x64, 0xa9, 0xb6, 0x02, 0x70, 0xcc, 0xdc, 0x02, 0xd1, 0xef, 0x55, 0x14, 0xbd,
+ 0x67, 0x5b, 0x8e, 0x17, 0xc3, 0xf8, 0x17, 0x7c, 0xa5, 0x7c, 0x5c, 0x8b, 0xc0, 0x6a, 0x4d, 0x28,
+ 0x91, 0xc7, 0xa4, 0x21, 0xf9, 0x97, 0x8c, 0x68, 0x72, 0x80, 0x62, 0x89, 0x43, 0xb3, 0x7a, 0xb6,
+ 0xea, 0x24, 0xc9, 0x7f, 0x7f, 0xc5, 0x13, 0x07, 0x83, 0xb0, 0xc4, 0xe1, 0xed, 0xd9, 0x08, 0x57,
+ 0xfb, 0x04, 0x0c, 0xdf, 0xe4, 0x89, 0x83, 0x63, 0x18, 0x05, 0x6f, 0x18, 0x12, 0x50, 0xfc, 0x35,
+ 0xa7, 0xe0, 0x18, 0x4c, 0xf1, 0x89, 0x41, 0xa1, 0x75, 0x50, 0x57, 0x77, 0x3d, 0x87, 0xb6, 0xc2,
+ 0x87, 0x53, 0x7d, 0xeb, 0xad, 0x70, 0x13, 0x26, 0x07, 0xa0, 0x38, 0x13, 0xb1, 0x2b, 0x54, 0x72,
+ 0x52, 0x8a, 0x37, 0xec, 0xdb, 0x3c, 0x13, 0x05, 0x60, 0xd8, 0xb6, 0x40, 0x87, 0x88, 0xdd, 0xae,
+ 0xe1, 0xf3, 0x41, 0x02, 0xba, 0xef, 0x44, 0x8c, 0x6b, 0x73, 0x2c, 0xe6, 0x0c, 0xf4, 0x3f, 0x7d,
+ 0xf3, 0x3a, 0xda, 0x4b, 0x14, 0x9d, 0x7f, 0x13, 0xe9, 0x7f, 0xb6, 0x28, 0x92, 0xe6, 0x90, 0xa9,
+ 0x48, 0x3f, 0x25, 0xc5, 0xfd, 0x0a, 0xa8, 0xfc, 0xb3, 0xf7, 0xd8, 0x7c, 0xc3, 0xed, 0x54, 0x6d,
+ 0x05, 0x07, 0x79, 0xb8, 0xe9, 0x89, 0x27, 0x7b, 0xe9, 0x9e, 0x1f, 0xe7, 0xa1, 0x9e, 0xa7, 0x76,
+ 0x05, 0x26, 0x43, 0x0d, 0x4f, 0x3c, 0xd5, 0x67, 0x18, 0x55, 0x31, 0xd8, 0xef, 0xd4, 0x2e, 0x40,
+ 0x06, 0x37, 0x2f, 0xf1, 0xf0, 0x9f, 0x63, 0x70, 0xa2, 0x5e, 0xfb, 0x28, 0xe4, 0x78, 0xd3, 0x12,
+ 0x0f, 0xfd, 0x79, 0x06, 0xf5, 0x21, 0x18, 0xce, 0x1b, 0x96, 0x78, 0xf8, 0x2f, 0x70, 0x38, 0x87,
+ 0x60, 0x78, 0x72, 0x17, 0x7e, 0xf7, 0x97, 0x32, 0xac, 0xe8, 0x70, 0xdf, 0x5d, 0x86, 0x09, 0xd6,
+ 0xa9, 0xc4, 0xa3, 0x3f, 0xcb, 0x5e, 0xce, 0x11, 0xb5, 0xa7, 0x20, 0x9b, 0xd0, 0xe1, 0xbf, 0xc2,
+ 0xa0, 0x54, 0xbf, 0xd6, 0x80, 0x42, 0xa0, 0x3b, 0x89, 0x87, 0xff, 0x2a, 0x83, 0x07, 0x51, 0xd8,
+ 0x74, 0xd6, 0x9d, 0xc4, 0x13, 0xfc, 0x1a, 0x37, 0x9d, 0x21, 0xb0, 0xdb, 0x78, 0x63, 0x12, 0x8f,
+ 0xfe, 0x1c, 0xf7, 0x3a, 0x87, 0xd4, 0x9e, 0x81, 0xbc, 0x5f, 0x6c, 0xe2, 0xf1, 0xbf, 0xce, 0xf0,
+ 0x03, 0x0c, 0xf6, 0x40, 0xa0, 0xd8, 0xc5, 0x53, 0xfc, 0x06, 0xf7, 0x40, 0x00, 0x85, 0xb7, 0x51,
+ 0xb4, 0x81, 0x89, 0x67, 0xfa, 0x4d, 0xbe, 0x8d, 0x22, 0xfd, 0x0b, 0x5e, 0x4d, 0x92, 0xf3, 0xe3,
+ 0x29, 0x7e, 0x8b, 0xaf, 0x26, 0xd1, 0xc7, 0x66, 0x44, 0x3b, 0x82, 0x78, 0x8e, 0xdf, 0xe6, 0x66,
+ 0x44, 0x1a, 0x82, 0xda, 0x06, 0x48, 0xc3, 0xdd, 0x40, 0x3c, 0xdf, 0xe7, 0x19, 0xdf, 0xf4, 0x50,
+ 0x33, 0x50, 0x7b, 0x0e, 0x8e, 0x8d, 0xee, 0x04, 0xe2, 0x59, 0xbf, 0x70, 0x2f, 0x72, 0x76, 0x0b,
+ 0x36, 0x02, 0xb5, 0xcd, 0x41, 0x49, 0x09, 0x76, 0x01, 0xf1, 0xb4, 0x2f, 0xdf, 0x0b, 0x27, 0xee,
+ 0x60, 0x13, 0x50, 0xab, 0x03, 0x0c, 0x0a, 0x70, 0x3c, 0xd7, 0x2b, 0x8c, 0x2b, 0x00, 0xc2, 0x5b,
+ 0x83, 0xd5, 0xdf, 0x78, 0xfc, 0x17, 0xf9, 0xd6, 0x60, 0x08, 0xbc, 0x35, 0x78, 0xe9, 0x8d, 0x47,
+ 0xbf, 0xca, 0xb7, 0x06, 0x87, 0xe0, 0xc8, 0x0e, 0x54, 0xb7, 0x78, 0x86, 0x2f, 0xf1, 0xc8, 0x0e,
+ 0xa0, 0x6a, 0x6b, 0x30, 0x3d, 0x54, 0x10, 0xe3, 0xa9, 0xbe, 0xcc, 0xa8, 0xc4, 0x68, 0x3d, 0x0c,
+ 0x16, 0x2f, 0x56, 0x0c, 0xe3, 0xd9, 0x7e, 0x3f, 0x52, 0xbc, 0x58, 0x2d, 0xac, 0x5d, 0x86, 0x9c,
+ 0xd9, 0x37, 0x0c, 0xbc, 0x79, 0xa4, 0xc3, 0x7f, 0xb9, 0x57, 0xfe, 0xb7, 0x77, 0x99, 0x77, 0x38,
+ 0xa0, 0x76, 0x01, 0xb2, 0xa8, 0xb7, 0x8d, 0x3a, 0x71, 0xc8, 0x7f, 0x7f, 0x97, 0x27, 0x4c, 0xac,
+ 0x5d, 0x7b, 0x06, 0x80, 0x5e, 0x8d, 0x90, 0xcf, 0x7e, 0x31, 0xd8, 0xff, 0x78, 0x97, 0xfd, 0xa6,
+ 0x66, 0x00, 0x19, 0x10, 0xd0, 0x5f, 0xe8, 0x1c, 0x4e, 0xf0, 0x56, 0x98, 0x80, 0xac, 0xc8, 0xd3,
+ 0x30, 0x71, 0xcd, 0xb5, 0x4c, 0x4f, 0xed, 0xc6, 0xa1, 0xff, 0x93, 0xa1, 0xb9, 0x3e, 0x76, 0x58,
+ 0xcf, 0x72, 0x90, 0xa7, 0x76, 0xdd, 0x38, 0xec, 0x7f, 0x31, 0xac, 0x0f, 0xc0, 0x60, 0x4d, 0x75,
+ 0xbd, 0x24, 0xf3, 0xfe, 0x6f, 0x0e, 0xe6, 0x00, 0x6c, 0x34, 0xfe, 0xff, 0x3a, 0xda, 0x8b, 0xc3,
+ 0xbe, 0xcd, 0x8d, 0x66, 0xfa, 0xb5, 0x8f, 0x42, 0x1e, 0xff, 0x4b, 0x7f, 0x28, 0x17, 0x03, 0xfe,
+ 0x1f, 0x06, 0x1e, 0x20, 0xf0, 0x9b, 0x5d, 0xaf, 0xe3, 0xe9, 0xf1, 0xce, 0xfe, 0x5f, 0xb6, 0xd2,
+ 0x5c, 0xbf, 0x56, 0x87, 0x82, 0xeb, 0x75, 0x3a, 0x7d, 0xd6, 0x9f, 0xc6, 0xc0, 0xff, 0xef, 0x5d,
+ 0xff, 0xca, 0xc2, 0xc7, 0xe0, 0xd5, 0xbe, 0x79, 0xdd, 0xb3, 0x2d, 0xf2, 0x99, 0x23, 0x8e, 0xe1,
+ 0x1e, 0x63, 0x08, 0x40, 0x16, 0x9b, 0xa3, 0xaf, 0x6f, 0x61, 0xd9, 0x5a, 0xb6, 0xe8, 0xc5, 0xed,
+ 0x0b, 0xd5, 0xf8, 0x1b, 0x58, 0xf8, 0x5c, 0x16, 0xaa, 0x9a, 0xd5, 0xdb, 0xb6, 0xdc, 0xb3, 0x81,
+ 0x64, 0x7e, 0xd6, 0x77, 0x13, 0xbf, 0x9d, 0xf5, 0x05, 0x73, 0x47, 0xbb, 0xd7, 0xad, 0xfe, 0x6d,
+ 0x1a, 0x72, 0x0d, 0xd5, 0xf5, 0xd4, 0x9b, 0xea, 0x9e, 0x64, 0xc3, 0x0c, 0xfe, 0x7f, 0x55, 0xb5,
+ 0xc9, 0x2d, 0x21, 0xdb, 0xce, 0xec, 0xea, 0xfc, 0xf1, 0x85, 0xc1, 0x5b, 0x39, 0x62, 0x61, 0x84,
+ 0x3a, 0xf9, 0xc9, 0xc1, 0xa2, 0x78, 0xe7, 0x9f, 0x4f, 0x8e, 0xfd, 0xe2, 0xbf, 0x9c, 0xcc, 0xad,
+ 0xee, 0x3d, 0xa7, 0x1b, 0xae, 0x65, 0xca, 0xa3, 0xa8, 0xa5, 0xcf, 0x08, 0x70, 0xff, 0x08, 0xf9,
+ 0x1a, 0xdb, 0xed, 0xec, 0x03, 0xd4, 0xf9, 0x84, 0xaf, 0xe6, 0x30, 0x6a, 0x42, 0x31, 0xf4, 0xfa,
+ 0xc3, 0x5e, 0x33, 0x77, 0x15, 0xca, 0x07, 0xcd, 0x44, 0x12, 0x21, 0x7d, 0x1d, 0xed, 0xb1, 0x1f,
+ 0x44, 0xe2, 0x7f, 0xa5, 0x33, 0x83, 0x9f, 0x8d, 0x0a, 0xf3, 0x85, 0x73, 0xd3, 0x01, 0xeb, 0xd8,
+ 0xcb, 0xe8, 0x78, 0x2d, 0x75, 0x49, 0x98, 0x53, 0xe1, 0x54, 0x9c, 0xa5, 0x3f, 0xe6, 0x2b, 0xaa,
+ 0x15, 0x18, 0xa7, 0x42, 0x69, 0x16, 0xb2, 0x2d, 0xd3, 0xbb, 0x78, 0x9e, 0x50, 0xa5, 0x65, 0xfa,
+ 0xb0, 0xb8, 0x72, 0xe7, 0x6e, 0x65, 0xec, 0xfb, 0x77, 0x2b, 0x63, 0xff, 0x78, 0xb7, 0x32, 0xf6,
+ 0xfa, 0xdd, 0x8a, 0xf0, 0xe6, 0xdd, 0x8a, 0xf0, 0xf6, 0xdd, 0x8a, 0xf0, 0xce, 0xdd, 0x8a, 0x70,
+ 0x7b, 0xbf, 0x22, 0x7c, 0x75, 0xbf, 0x22, 0x7c, 0x7d, 0xbf, 0x22, 0x7c, 0x6b, 0xbf, 0x22, 0x7c,
+ 0x77, 0xbf, 0x22, 0xdc, 0xd9, 0xaf, 0x8c, 0x7d, 0x7f, 0xbf, 0x22, 0xbc, 0xbe, 0x5f, 0x11, 0xde,
+ 0xdc, 0xaf, 0x8c, 0xbd, 0xbd, 0x5f, 0x11, 0xde, 0xd9, 0xaf, 0x8c, 0xdd, 0xfe, 0x61, 0x65, 0xec,
+ 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x7a, 0xdd, 0x85, 0x39, 0x87, 0x35, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -891,7 +922,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -919,7 +950,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -928,6 +959,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCastvalue
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCastvalue
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -948,7 +982,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -964,7 +998,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -980,7 +1014,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -989,7 +1023,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCastvalue
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthCastvalue
}
if postmsgIndex > l {
@@ -1031,7 +1065,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1040,6 +1074,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCastvalue
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCastvalue
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1060,7 +1097,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1076,7 +1113,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1092,7 +1129,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1101,7 +1138,7 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthCastvalue
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthCastvalue
}
if postmsgIndex > l {
@@ -1138,6 +1175,9 @@ func (m *Castaway) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthCastvalue
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthCastvalue
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1166,7 +1206,7 @@ func (m *Wilson) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1194,7 +1234,7 @@ func (m *Wilson) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1209,6 +1249,9 @@ func (m *Wilson) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthCastvalue
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthCastvalue
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1276,10 +1319,13 @@ func skipCastvalue(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthCastvalue
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthCastvalue
+ }
return iNdEx, nil
case 3:
for {
@@ -1308,6 +1354,9 @@ func skipCastvalue(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthCastvalue
+ }
}
return iNdEx, nil
case 4:
@@ -1326,34 +1375,3 @@ var (
ErrInvalidLengthCastvalue = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowCastvalue = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("combos/unmarshaler/castvalue.proto", fileDescriptor_castvalue_92129bf361b9c2b5)
-}
-
-var fileDescriptor_castvalue_92129bf361b9c2b5 = []byte{
- // 359 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x8f, 0xbd, 0x4f, 0xf2, 0x50,
- 0x14, 0xc6, 0xef, 0xa1, 0xe1, 0x0d, 0xef, 0xc5, 0x01, 0xab, 0x43, 0x83, 0xc9, 0xa1, 0x61, 0x91,
- 0x41, 0xdb, 0x84, 0x10, 0x63, 0x1c, 0x31, 0x0e, 0x26, 0xe2, 0xc0, 0xa0, 0x71, 0xbc, 0x25, 0xb5,
- 0x10, 0x4b, 0x2f, 0xe9, 0x87, 0xa6, 0x1b, 0x83, 0x93, 0x7f, 0x89, 0xa3, 0xa3, 0xa3, 0x6e, 0x8c,
- 0x8c, 0x4e, 0x4a, 0xaf, 0x0b, 0x23, 0x23, 0xa3, 0xe1, 0x56, 0xfc, 0x48, 0xf0, 0x23, 0x71, 0x3b,
- 0xe7, 0xb9, 0xe7, 0x79, 0x7e, 0xcf, 0xa5, 0xe5, 0x16, 0xef, 0x5a, 0x3c, 0x30, 0x23, 0xaf, 0xcb,
- 0xfc, 0xa0, 0xcd, 0x5c, 0xdb, 0x37, 0x5b, 0x2c, 0x08, 0xcf, 0x99, 0x1b, 0xd9, 0x46, 0xcf, 0xe7,
- 0x21, 0x57, 0xff, 0xbf, 0x09, 0xc5, 0x4d, 0xa7, 0x13, 0xb6, 0x23, 0xcb, 0x68, 0xf1, 0xae, 0xe9,
- 0x70, 0x87, 0x9b, 0xf2, 0xc2, 0x8a, 0x4e, 0xe5, 0x26, 0x17, 0x39, 0xa5, 0xce, 0xf2, 0xbd, 0x42,
- 0x73, 0xbb, 0x2c, 0x08, 0xd9, 0x05, 0x8b, 0xd5, 0x1e, 0x5d, 0x99, 0xcd, 0x0d, 0xd6, 0x3b, 0x9a,
- 0x65, 0x35, 0xec, 0x20, 0x60, 0x8e, 0xad, 0x81, 0xae, 0x54, 0xf2, 0xd5, 0x0d, 0xe3, 0x9d, 0x3a,
- 0x77, 0x18, 0x0b, 0xce, 0xf7, 0xbc, 0xd0, 0x8f, 0xeb, 0x85, 0xc1, 0x63, 0x89, 0x5c, 0x3d, 0x95,
- 0x72, 0x8d, 0xf8, 0xb8, 0xe3, 0x06, 0xdc, 0x6b, 0x2e, 0x8a, 0x56, 0x2f, 0x81, 0xae, 0x2d, 0xd0,
- 0x0f, 0x23, 0xd7, 0x65, 0x96, 0x6b, 0x6b, 0x19, 0x89, 0xae, 0xfd, 0x12, 0x3d, 0xb7, 0xa5, 0x15,
- 0x96, 0x3e, 0xe1, 0xbf, 0xc3, 0x14, 0x4f, 0xa8, 0xf6, 0xd5, 0x4f, 0xd4, 0x02, 0x55, 0xce, 0xec,
- 0x58, 0x03, 0x1d, 0x2a, 0xd9, 0xe6, 0x6c, 0x54, 0xd7, 0x69, 0x56, 0x76, 0xd1, 0x32, 0x3a, 0x54,
- 0xf2, 0xd5, 0xe5, 0x0f, 0xed, 0x5e, 0x61, 0xe9, 0xfb, 0x4e, 0x66, 0x1b, 0x8a, 0x8c, 0xea, 0x3f,
- 0x35, 0xfd, 0x23, 0xa2, 0x8c, 0xf4, 0x5f, 0x2a, 0xaa, 0xab, 0x34, 0xbb, 0xef, 0x85, 0x5b, 0x35,
- 0x19, 0xa5, 0x34, 0xd3, 0xa5, 0x7e, 0x30, 0x48, 0x90, 0x0c, 0x13, 0x24, 0x0f, 0x09, 0x92, 0x51,
- 0x82, 0x30, 0x4e, 0x10, 0x26, 0x09, 0xc2, 0x34, 0x41, 0xe8, 0x0b, 0x84, 0x6b, 0x81, 0x70, 0x23,
- 0x10, 0x6e, 0x05, 0xc2, 0x9d, 0x40, 0x18, 0x08, 0x24, 0x43, 0x81, 0x30, 0x12, 0x08, 0x63, 0x81,
- 0x64, 0x22, 0x10, 0xa6, 0x02, 0x49, 0xff, 0x19, 0xc9, 0x4b, 0x00, 0x00, 0x00, 0xff, 0xff, 0x73,
- 0xe3, 0x1c, 0x3e, 0x90, 0x02, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/combos/both/thetest.pb.go b/vendor/github.com/gogo/protobuf/test/combos/both/thetest.pb.go
index a9b87f4951..e6b4a24f91 100644
--- a/vendor/github.com/gogo/protobuf/test/combos/both/thetest.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/combos/both/thetest.pb.go
@@ -3,31 +3,26 @@
package test
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
-import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/test/custom-dash-type"
-
-import bytes "bytes"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import compress_gzip "compress/gzip"
-import io_ioutil "io/ioutil"
-
-import strconv "strconv"
-
-import strings "strings"
-import sort "sort"
-import reflect "reflect"
-
-import encoding_binary "encoding/binary"
-
-import io "io"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
+ github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/test/custom-dash-type"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ sort "sort"
+ strconv "strconv"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -53,6 +48,7 @@ var TheTestEnum_name = map[int32]string{
1: "B",
2: "C",
}
+
var TheTestEnum_value = map[string]int32{
"A": 0,
"B": 1,
@@ -64,9 +60,11 @@ func (x TheTestEnum) Enum() *TheTestEnum {
*p = x
return p
}
+
func (x TheTestEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(TheTestEnum_name, int32(x))
}
+
func (x *TheTestEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(TheTestEnum_value, data, "TheTestEnum")
if err != nil {
@@ -75,8 +73,9 @@ func (x *TheTestEnum) UnmarshalJSON(data []byte) error {
*x = TheTestEnum(value)
return nil
}
+
func (TheTestEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{0}
+ return fileDescriptor_519c3115fa9830d1, []int{0}
}
type AnotherTestEnum int32
@@ -90,6 +89,7 @@ var AnotherTestEnum_name = map[int32]string{
10: "D",
11: "E",
}
+
var AnotherTestEnum_value = map[string]int32{
"D": 10,
"E": 11,
@@ -100,9 +100,11 @@ func (x AnotherTestEnum) Enum() *AnotherTestEnum {
*p = x
return p
}
+
func (x AnotherTestEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(AnotherTestEnum_name, int32(x))
}
+
func (x *AnotherTestEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(AnotherTestEnum_value, data, "AnotherTestEnum")
if err != nil {
@@ -111,8 +113,9 @@ func (x *AnotherTestEnum) UnmarshalJSON(data []byte) error {
*x = AnotherTestEnum(value)
return nil
}
+
func (AnotherTestEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{1}
+ return fileDescriptor_519c3115fa9830d1, []int{1}
}
// YetAnotherTestEnum is used to test cross-package import of custom name
@@ -128,6 +131,7 @@ var YetAnotherTestEnum_name = map[int32]string{
0: "AA",
1: "BB",
}
+
var YetAnotherTestEnum_value = map[string]int32{
"AA": 0,
"BB": 1,
@@ -138,9 +142,11 @@ func (x YetAnotherTestEnum) Enum() *YetAnotherTestEnum {
*p = x
return p
}
+
func (x YetAnotherTestEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(YetAnotherTestEnum_name, int32(x))
}
+
func (x *YetAnotherTestEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(YetAnotherTestEnum_value, data, "YetAnotherTestEnum")
if err != nil {
@@ -149,8 +155,9 @@ func (x *YetAnotherTestEnum) UnmarshalJSON(data []byte) error {
*x = YetAnotherTestEnum(value)
return nil
}
+
func (YetAnotherTestEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{2}
+ return fileDescriptor_519c3115fa9830d1, []int{2}
}
// YetAnotherTestEnum is used to test cross-package import of custom name
@@ -166,6 +173,7 @@ var YetYetAnotherTestEnum_name = map[int32]string{
0: "CC",
1: "DD",
}
+
var YetYetAnotherTestEnum_value = map[string]int32{
"CC": 0,
"DD": 1,
@@ -176,9 +184,11 @@ func (x YetYetAnotherTestEnum) Enum() *YetYetAnotherTestEnum {
*p = x
return p
}
+
func (x YetYetAnotherTestEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(YetYetAnotherTestEnum_name, int32(x))
}
+
func (x *YetYetAnotherTestEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(YetYetAnotherTestEnum_value, data, "YetYetAnotherTestEnum")
if err != nil {
@@ -187,8 +197,9 @@ func (x *YetYetAnotherTestEnum) UnmarshalJSON(data []byte) error {
*x = YetYetAnotherTestEnum(value)
return nil
}
+
func (YetYetAnotherTestEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{3}
+ return fileDescriptor_519c3115fa9830d1, []int{3}
}
type NestedDefinition_NestedEnum int32
@@ -200,6 +211,7 @@ const (
var NestedDefinition_NestedEnum_name = map[int32]string{
1: "TYPE_NESTED",
}
+
var NestedDefinition_NestedEnum_value = map[string]int32{
"TYPE_NESTED": 1,
}
@@ -209,9 +221,11 @@ func (x NestedDefinition_NestedEnum) Enum() *NestedDefinition_NestedEnum {
*p = x
return p
}
+
func (x NestedDefinition_NestedEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(NestedDefinition_NestedEnum_name, int32(x))
}
+
func (x *NestedDefinition_NestedEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(NestedDefinition_NestedEnum_value, data, "NestedDefinition_NestedEnum")
if err != nil {
@@ -220,8 +234,9 @@ func (x *NestedDefinition_NestedEnum) UnmarshalJSON(data []byte) error {
*x = NestedDefinition_NestedEnum(value)
return nil
}
+
func (NestedDefinition_NestedEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{42, 0}
+ return fileDescriptor_519c3115fa9830d1, []int{42, 0}
}
type NidOptNative struct {
@@ -248,7 +263,7 @@ type NidOptNative struct {
func (m *NidOptNative) Reset() { *m = NidOptNative{} }
func (*NidOptNative) ProtoMessage() {}
func (*NidOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{0}
+ return fileDescriptor_519c3115fa9830d1, []int{0}
}
func (m *NidOptNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -265,8 +280,8 @@ func (m *NidOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NidOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptNative.Merge(dst, src)
+func (m *NidOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptNative.Merge(m, src)
}
func (m *NidOptNative) XXX_Size() int {
return m.Size()
@@ -301,7 +316,7 @@ type NinOptNative struct {
func (m *NinOptNative) Reset() { *m = NinOptNative{} }
func (*NinOptNative) ProtoMessage() {}
func (*NinOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{1}
+ return fileDescriptor_519c3115fa9830d1, []int{1}
}
func (m *NinOptNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -318,8 +333,8 @@ func (m *NinOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NinOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptNative.Merge(dst, src)
+func (m *NinOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptNative.Merge(m, src)
}
func (m *NinOptNative) XXX_Size() int {
return m.Size()
@@ -354,7 +369,7 @@ type NidRepNative struct {
func (m *NidRepNative) Reset() { *m = NidRepNative{} }
func (*NidRepNative) ProtoMessage() {}
func (*NidRepNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{2}
+ return fileDescriptor_519c3115fa9830d1, []int{2}
}
func (m *NidRepNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -371,8 +386,8 @@ func (m *NidRepNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NidRepNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepNative.Merge(dst, src)
+func (m *NidRepNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepNative.Merge(m, src)
}
func (m *NidRepNative) XXX_Size() int {
return m.Size()
@@ -407,7 +422,7 @@ type NinRepNative struct {
func (m *NinRepNative) Reset() { *m = NinRepNative{} }
func (*NinRepNative) ProtoMessage() {}
func (*NinRepNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{3}
+ return fileDescriptor_519c3115fa9830d1, []int{3}
}
func (m *NinRepNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -424,8 +439,8 @@ func (m *NinRepNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NinRepNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepNative.Merge(dst, src)
+func (m *NinRepNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepNative.Merge(m, src)
}
func (m *NinRepNative) XXX_Size() int {
return m.Size()
@@ -458,7 +473,7 @@ type NidRepPackedNative struct {
func (m *NidRepPackedNative) Reset() { *m = NidRepPackedNative{} }
func (*NidRepPackedNative) ProtoMessage() {}
func (*NidRepPackedNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{4}
+ return fileDescriptor_519c3115fa9830d1, []int{4}
}
func (m *NidRepPackedNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -475,8 +490,8 @@ func (m *NidRepPackedNative) XXX_Marshal(b []byte, deterministic bool) ([]byte,
return b[:n], nil
}
}
-func (dst *NidRepPackedNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepPackedNative.Merge(dst, src)
+func (m *NidRepPackedNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepPackedNative.Merge(m, src)
}
func (m *NidRepPackedNative) XXX_Size() int {
return m.Size()
@@ -509,7 +524,7 @@ type NinRepPackedNative struct {
func (m *NinRepPackedNative) Reset() { *m = NinRepPackedNative{} }
func (*NinRepPackedNative) ProtoMessage() {}
func (*NinRepPackedNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{5}
+ return fileDescriptor_519c3115fa9830d1, []int{5}
}
func (m *NinRepPackedNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -526,8 +541,8 @@ func (m *NinRepPackedNative) XXX_Marshal(b []byte, deterministic bool) ([]byte,
return b[:n], nil
}
}
-func (dst *NinRepPackedNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepPackedNative.Merge(dst, src)
+func (m *NinRepPackedNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepPackedNative.Merge(m, src)
}
func (m *NinRepPackedNative) XXX_Size() int {
return m.Size()
@@ -557,7 +572,7 @@ type NidOptStruct struct {
func (m *NidOptStruct) Reset() { *m = NidOptStruct{} }
func (*NidOptStruct) ProtoMessage() {}
func (*NidOptStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{6}
+ return fileDescriptor_519c3115fa9830d1, []int{6}
}
func (m *NidOptStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -574,8 +589,8 @@ func (m *NidOptStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NidOptStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptStruct.Merge(dst, src)
+func (m *NidOptStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptStruct.Merge(m, src)
}
func (m *NidOptStruct) XXX_Size() int {
return m.Size()
@@ -605,7 +620,7 @@ type NinOptStruct struct {
func (m *NinOptStruct) Reset() { *m = NinOptStruct{} }
func (*NinOptStruct) ProtoMessage() {}
func (*NinOptStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{7}
+ return fileDescriptor_519c3115fa9830d1, []int{7}
}
func (m *NinOptStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -622,8 +637,8 @@ func (m *NinOptStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NinOptStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptStruct.Merge(dst, src)
+func (m *NinOptStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptStruct.Merge(m, src)
}
func (m *NinOptStruct) XXX_Size() int {
return m.Size()
@@ -653,7 +668,7 @@ type NidRepStruct struct {
func (m *NidRepStruct) Reset() { *m = NidRepStruct{} }
func (*NidRepStruct) ProtoMessage() {}
func (*NidRepStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{8}
+ return fileDescriptor_519c3115fa9830d1, []int{8}
}
func (m *NidRepStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -670,8 +685,8 @@ func (m *NidRepStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NidRepStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepStruct.Merge(dst, src)
+func (m *NidRepStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepStruct.Merge(m, src)
}
func (m *NidRepStruct) XXX_Size() int {
return m.Size()
@@ -701,7 +716,7 @@ type NinRepStruct struct {
func (m *NinRepStruct) Reset() { *m = NinRepStruct{} }
func (*NinRepStruct) ProtoMessage() {}
func (*NinRepStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{9}
+ return fileDescriptor_519c3115fa9830d1, []int{9}
}
func (m *NinRepStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -718,8 +733,8 @@ func (m *NinRepStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NinRepStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepStruct.Merge(dst, src)
+func (m *NinRepStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepStruct.Merge(m, src)
}
func (m *NinRepStruct) XXX_Size() int {
return m.Size()
@@ -742,7 +757,7 @@ type NidEmbeddedStruct struct {
func (m *NidEmbeddedStruct) Reset() { *m = NidEmbeddedStruct{} }
func (*NidEmbeddedStruct) ProtoMessage() {}
func (*NidEmbeddedStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{10}
+ return fileDescriptor_519c3115fa9830d1, []int{10}
}
func (m *NidEmbeddedStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -759,8 +774,8 @@ func (m *NidEmbeddedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
-func (dst *NidEmbeddedStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidEmbeddedStruct.Merge(dst, src)
+func (m *NidEmbeddedStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidEmbeddedStruct.Merge(m, src)
}
func (m *NidEmbeddedStruct) XXX_Size() int {
return m.Size()
@@ -783,7 +798,7 @@ type NinEmbeddedStruct struct {
func (m *NinEmbeddedStruct) Reset() { *m = NinEmbeddedStruct{} }
func (*NinEmbeddedStruct) ProtoMessage() {}
func (*NinEmbeddedStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{11}
+ return fileDescriptor_519c3115fa9830d1, []int{11}
}
func (m *NinEmbeddedStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -800,8 +815,8 @@ func (m *NinEmbeddedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
-func (dst *NinEmbeddedStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinEmbeddedStruct.Merge(dst, src)
+func (m *NinEmbeddedStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinEmbeddedStruct.Merge(m, src)
}
func (m *NinEmbeddedStruct) XXX_Size() int {
return m.Size()
@@ -823,7 +838,7 @@ type NidNestedStruct struct {
func (m *NidNestedStruct) Reset() { *m = NidNestedStruct{} }
func (*NidNestedStruct) ProtoMessage() {}
func (*NidNestedStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{12}
+ return fileDescriptor_519c3115fa9830d1, []int{12}
}
func (m *NidNestedStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -840,8 +855,8 @@ func (m *NidNestedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, err
return b[:n], nil
}
}
-func (dst *NidNestedStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidNestedStruct.Merge(dst, src)
+func (m *NidNestedStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidNestedStruct.Merge(m, src)
}
func (m *NidNestedStruct) XXX_Size() int {
return m.Size()
@@ -863,7 +878,7 @@ type NinNestedStruct struct {
func (m *NinNestedStruct) Reset() { *m = NinNestedStruct{} }
func (*NinNestedStruct) ProtoMessage() {}
func (*NinNestedStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{13}
+ return fileDescriptor_519c3115fa9830d1, []int{13}
}
func (m *NinNestedStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -880,8 +895,8 @@ func (m *NinNestedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, err
return b[:n], nil
}
}
-func (dst *NinNestedStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinNestedStruct.Merge(dst, src)
+func (m *NinNestedStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinNestedStruct.Merge(m, src)
}
func (m *NinNestedStruct) XXX_Size() int {
return m.Size()
@@ -903,7 +918,7 @@ type NidOptCustom struct {
func (m *NidOptCustom) Reset() { *m = NidOptCustom{} }
func (*NidOptCustom) ProtoMessage() {}
func (*NidOptCustom) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{14}
+ return fileDescriptor_519c3115fa9830d1, []int{14}
}
func (m *NidOptCustom) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -920,8 +935,8 @@ func (m *NidOptCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NidOptCustom) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptCustom.Merge(dst, src)
+func (m *NidOptCustom) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptCustom.Merge(m, src)
}
func (m *NidOptCustom) XXX_Size() int {
return m.Size()
@@ -942,7 +957,7 @@ type CustomDash struct {
func (m *CustomDash) Reset() { *m = CustomDash{} }
func (*CustomDash) ProtoMessage() {}
func (*CustomDash) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{15}
+ return fileDescriptor_519c3115fa9830d1, []int{15}
}
func (m *CustomDash) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -959,8 +974,8 @@ func (m *CustomDash) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *CustomDash) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomDash.Merge(dst, src)
+func (m *CustomDash) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomDash.Merge(m, src)
}
func (m *CustomDash) XXX_Size() int {
return m.Size()
@@ -982,7 +997,7 @@ type NinOptCustom struct {
func (m *NinOptCustom) Reset() { *m = NinOptCustom{} }
func (*NinOptCustom) ProtoMessage() {}
func (*NinOptCustom) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{16}
+ return fileDescriptor_519c3115fa9830d1, []int{16}
}
func (m *NinOptCustom) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -999,8 +1014,8 @@ func (m *NinOptCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NinOptCustom) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptCustom.Merge(dst, src)
+func (m *NinOptCustom) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptCustom.Merge(m, src)
}
func (m *NinOptCustom) XXX_Size() int {
return m.Size()
@@ -1022,7 +1037,7 @@ type NidRepCustom struct {
func (m *NidRepCustom) Reset() { *m = NidRepCustom{} }
func (*NidRepCustom) ProtoMessage() {}
func (*NidRepCustom) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{17}
+ return fileDescriptor_519c3115fa9830d1, []int{17}
}
func (m *NidRepCustom) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1039,8 +1054,8 @@ func (m *NidRepCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NidRepCustom) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepCustom.Merge(dst, src)
+func (m *NidRepCustom) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepCustom.Merge(m, src)
}
func (m *NidRepCustom) XXX_Size() int {
return m.Size()
@@ -1062,7 +1077,7 @@ type NinRepCustom struct {
func (m *NinRepCustom) Reset() { *m = NinRepCustom{} }
func (*NinRepCustom) ProtoMessage() {}
func (*NinRepCustom) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{18}
+ return fileDescriptor_519c3115fa9830d1, []int{18}
}
func (m *NinRepCustom) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1079,8 +1094,8 @@ func (m *NinRepCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NinRepCustom) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepCustom.Merge(dst, src)
+func (m *NinRepCustom) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepCustom.Merge(m, src)
}
func (m *NinRepCustom) XXX_Size() int {
return m.Size()
@@ -1109,7 +1124,7 @@ type NinOptNativeUnion struct {
func (m *NinOptNativeUnion) Reset() { *m = NinOptNativeUnion{} }
func (*NinOptNativeUnion) ProtoMessage() {}
func (*NinOptNativeUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{19}
+ return fileDescriptor_519c3115fa9830d1, []int{19}
}
func (m *NinOptNativeUnion) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1126,8 +1141,8 @@ func (m *NinOptNativeUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
-func (dst *NinOptNativeUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptNativeUnion.Merge(dst, src)
+func (m *NinOptNativeUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptNativeUnion.Merge(m, src)
}
func (m *NinOptNativeUnion) XXX_Size() int {
return m.Size()
@@ -1156,7 +1171,7 @@ type NinOptStructUnion struct {
func (m *NinOptStructUnion) Reset() { *m = NinOptStructUnion{} }
func (*NinOptStructUnion) ProtoMessage() {}
func (*NinOptStructUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{20}
+ return fileDescriptor_519c3115fa9830d1, []int{20}
}
func (m *NinOptStructUnion) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1173,8 +1188,8 @@ func (m *NinOptStructUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
-func (dst *NinOptStructUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptStructUnion.Merge(dst, src)
+func (m *NinOptStructUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptStructUnion.Merge(m, src)
}
func (m *NinOptStructUnion) XXX_Size() int {
return m.Size()
@@ -1197,7 +1212,7 @@ type NinEmbeddedStructUnion struct {
func (m *NinEmbeddedStructUnion) Reset() { *m = NinEmbeddedStructUnion{} }
func (*NinEmbeddedStructUnion) ProtoMessage() {}
func (*NinEmbeddedStructUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{21}
+ return fileDescriptor_519c3115fa9830d1, []int{21}
}
func (m *NinEmbeddedStructUnion) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1214,8 +1229,8 @@ func (m *NinEmbeddedStructUnion) XXX_Marshal(b []byte, deterministic bool) ([]by
return b[:n], nil
}
}
-func (dst *NinEmbeddedStructUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinEmbeddedStructUnion.Merge(dst, src)
+func (m *NinEmbeddedStructUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinEmbeddedStructUnion.Merge(m, src)
}
func (m *NinEmbeddedStructUnion) XXX_Size() int {
return m.Size()
@@ -1238,7 +1253,7 @@ type NinNestedStructUnion struct {
func (m *NinNestedStructUnion) Reset() { *m = NinNestedStructUnion{} }
func (*NinNestedStructUnion) ProtoMessage() {}
func (*NinNestedStructUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{22}
+ return fileDescriptor_519c3115fa9830d1, []int{22}
}
func (m *NinNestedStructUnion) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1255,8 +1270,8 @@ func (m *NinNestedStructUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte
return b[:n], nil
}
}
-func (dst *NinNestedStructUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinNestedStructUnion.Merge(dst, src)
+func (m *NinNestedStructUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinNestedStructUnion.Merge(m, src)
}
func (m *NinNestedStructUnion) XXX_Size() int {
return m.Size()
@@ -1279,7 +1294,7 @@ type Tree struct {
func (m *Tree) Reset() { *m = Tree{} }
func (*Tree) ProtoMessage() {}
func (*Tree) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{23}
+ return fileDescriptor_519c3115fa9830d1, []int{23}
}
func (m *Tree) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1296,8 +1311,8 @@ func (m *Tree) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Tree) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Tree.Merge(dst, src)
+func (m *Tree) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Tree.Merge(m, src)
}
func (m *Tree) XXX_Size() int {
return m.Size()
@@ -1319,7 +1334,7 @@ type OrBranch struct {
func (m *OrBranch) Reset() { *m = OrBranch{} }
func (*OrBranch) ProtoMessage() {}
func (*OrBranch) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{24}
+ return fileDescriptor_519c3115fa9830d1, []int{24}
}
func (m *OrBranch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1336,8 +1351,8 @@ func (m *OrBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *OrBranch) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OrBranch.Merge(dst, src)
+func (m *OrBranch) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OrBranch.Merge(m, src)
}
func (m *OrBranch) XXX_Size() int {
return m.Size()
@@ -1359,7 +1374,7 @@ type AndBranch struct {
func (m *AndBranch) Reset() { *m = AndBranch{} }
func (*AndBranch) ProtoMessage() {}
func (*AndBranch) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{25}
+ return fileDescriptor_519c3115fa9830d1, []int{25}
}
func (m *AndBranch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1376,8 +1391,8 @@ func (m *AndBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *AndBranch) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AndBranch.Merge(dst, src)
+func (m *AndBranch) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AndBranch.Merge(m, src)
}
func (m *AndBranch) XXX_Size() int {
return m.Size()
@@ -1399,7 +1414,7 @@ type Leaf struct {
func (m *Leaf) Reset() { *m = Leaf{} }
func (*Leaf) ProtoMessage() {}
func (*Leaf) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{26}
+ return fileDescriptor_519c3115fa9830d1, []int{26}
}
func (m *Leaf) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1416,8 +1431,8 @@ func (m *Leaf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Leaf) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Leaf.Merge(dst, src)
+func (m *Leaf) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Leaf.Merge(m, src)
}
func (m *Leaf) XXX_Size() int {
return m.Size()
@@ -1440,7 +1455,7 @@ type DeepTree struct {
func (m *DeepTree) Reset() { *m = DeepTree{} }
func (*DeepTree) ProtoMessage() {}
func (*DeepTree) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{27}
+ return fileDescriptor_519c3115fa9830d1, []int{27}
}
func (m *DeepTree) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1457,8 +1472,8 @@ func (m *DeepTree) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *DeepTree) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DeepTree.Merge(dst, src)
+func (m *DeepTree) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DeepTree.Merge(m, src)
}
func (m *DeepTree) XXX_Size() int {
return m.Size()
@@ -1479,7 +1494,7 @@ type ADeepBranch struct {
func (m *ADeepBranch) Reset() { *m = ADeepBranch{} }
func (*ADeepBranch) ProtoMessage() {}
func (*ADeepBranch) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{28}
+ return fileDescriptor_519c3115fa9830d1, []int{28}
}
func (m *ADeepBranch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1496,8 +1511,8 @@ func (m *ADeepBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *ADeepBranch) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ADeepBranch.Merge(dst, src)
+func (m *ADeepBranch) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ADeepBranch.Merge(m, src)
}
func (m *ADeepBranch) XXX_Size() int {
return m.Size()
@@ -1519,7 +1534,7 @@ type AndDeepBranch struct {
func (m *AndDeepBranch) Reset() { *m = AndDeepBranch{} }
func (*AndDeepBranch) ProtoMessage() {}
func (*AndDeepBranch) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{29}
+ return fileDescriptor_519c3115fa9830d1, []int{29}
}
func (m *AndDeepBranch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1536,8 +1551,8 @@ func (m *AndDeepBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
return b[:n], nil
}
}
-func (dst *AndDeepBranch) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AndDeepBranch.Merge(dst, src)
+func (m *AndDeepBranch) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AndDeepBranch.Merge(m, src)
}
func (m *AndDeepBranch) XXX_Size() int {
return m.Size()
@@ -1558,7 +1573,7 @@ type DeepLeaf struct {
func (m *DeepLeaf) Reset() { *m = DeepLeaf{} }
func (*DeepLeaf) ProtoMessage() {}
func (*DeepLeaf) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{30}
+ return fileDescriptor_519c3115fa9830d1, []int{30}
}
func (m *DeepLeaf) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1575,8 +1590,8 @@ func (m *DeepLeaf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *DeepLeaf) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DeepLeaf.Merge(dst, src)
+func (m *DeepLeaf) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DeepLeaf.Merge(m, src)
}
func (m *DeepLeaf) XXX_Size() int {
return m.Size()
@@ -1596,7 +1611,7 @@ type Nil struct {
func (m *Nil) Reset() { *m = Nil{} }
func (*Nil) ProtoMessage() {}
func (*Nil) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{31}
+ return fileDescriptor_519c3115fa9830d1, []int{31}
}
func (m *Nil) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1613,8 +1628,8 @@ func (m *Nil) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Nil) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Nil.Merge(dst, src)
+func (m *Nil) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Nil.Merge(m, src)
}
func (m *Nil) XXX_Size() int {
return m.Size()
@@ -1635,7 +1650,7 @@ type NidOptEnum struct {
func (m *NidOptEnum) Reset() { *m = NidOptEnum{} }
func (*NidOptEnum) ProtoMessage() {}
func (*NidOptEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{32}
+ return fileDescriptor_519c3115fa9830d1, []int{32}
}
func (m *NidOptEnum) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1652,8 +1667,8 @@ func (m *NidOptEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *NidOptEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptEnum.Merge(dst, src)
+func (m *NidOptEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptEnum.Merge(m, src)
}
func (m *NidOptEnum) XXX_Size() int {
return m.Size()
@@ -1676,7 +1691,7 @@ type NinOptEnum struct {
func (m *NinOptEnum) Reset() { *m = NinOptEnum{} }
func (*NinOptEnum) ProtoMessage() {}
func (*NinOptEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{33}
+ return fileDescriptor_519c3115fa9830d1, []int{33}
}
func (m *NinOptEnum) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1693,8 +1708,8 @@ func (m *NinOptEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *NinOptEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptEnum.Merge(dst, src)
+func (m *NinOptEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptEnum.Merge(m, src)
}
func (m *NinOptEnum) XXX_Size() int {
return m.Size()
@@ -1717,7 +1732,7 @@ type NidRepEnum struct {
func (m *NidRepEnum) Reset() { *m = NidRepEnum{} }
func (*NidRepEnum) ProtoMessage() {}
func (*NidRepEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{34}
+ return fileDescriptor_519c3115fa9830d1, []int{34}
}
func (m *NidRepEnum) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1734,8 +1749,8 @@ func (m *NidRepEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *NidRepEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepEnum.Merge(dst, src)
+func (m *NidRepEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepEnum.Merge(m, src)
}
func (m *NidRepEnum) XXX_Size() int {
return m.Size()
@@ -1758,7 +1773,7 @@ type NinRepEnum struct {
func (m *NinRepEnum) Reset() { *m = NinRepEnum{} }
func (*NinRepEnum) ProtoMessage() {}
func (*NinRepEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{35}
+ return fileDescriptor_519c3115fa9830d1, []int{35}
}
func (m *NinRepEnum) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1775,8 +1790,8 @@ func (m *NinRepEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *NinRepEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepEnum.Merge(dst, src)
+func (m *NinRepEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepEnum.Merge(m, src)
}
func (m *NinRepEnum) XXX_Size() int {
return m.Size()
@@ -1799,7 +1814,7 @@ type NinOptEnumDefault struct {
func (m *NinOptEnumDefault) Reset() { *m = NinOptEnumDefault{} }
func (*NinOptEnumDefault) ProtoMessage() {}
func (*NinOptEnumDefault) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{36}
+ return fileDescriptor_519c3115fa9830d1, []int{36}
}
func (m *NinOptEnumDefault) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1816,8 +1831,8 @@ func (m *NinOptEnumDefault) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
-func (dst *NinOptEnumDefault) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptEnumDefault.Merge(dst, src)
+func (m *NinOptEnumDefault) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptEnumDefault.Merge(m, src)
}
func (m *NinOptEnumDefault) XXX_Size() int {
return m.Size()
@@ -1865,7 +1880,7 @@ type AnotherNinOptEnum struct {
func (m *AnotherNinOptEnum) Reset() { *m = AnotherNinOptEnum{} }
func (*AnotherNinOptEnum) ProtoMessage() {}
func (*AnotherNinOptEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{37}
+ return fileDescriptor_519c3115fa9830d1, []int{37}
}
func (m *AnotherNinOptEnum) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1882,8 +1897,8 @@ func (m *AnotherNinOptEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
-func (dst *AnotherNinOptEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AnotherNinOptEnum.Merge(dst, src)
+func (m *AnotherNinOptEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AnotherNinOptEnum.Merge(m, src)
}
func (m *AnotherNinOptEnum) XXX_Size() int {
return m.Size()
@@ -1906,7 +1921,7 @@ type AnotherNinOptEnumDefault struct {
func (m *AnotherNinOptEnumDefault) Reset() { *m = AnotherNinOptEnumDefault{} }
func (*AnotherNinOptEnumDefault) ProtoMessage() {}
func (*AnotherNinOptEnumDefault) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{38}
+ return fileDescriptor_519c3115fa9830d1, []int{38}
}
func (m *AnotherNinOptEnumDefault) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1923,8 +1938,8 @@ func (m *AnotherNinOptEnumDefault) XXX_Marshal(b []byte, deterministic bool) ([]
return b[:n], nil
}
}
-func (dst *AnotherNinOptEnumDefault) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AnotherNinOptEnumDefault.Merge(dst, src)
+func (m *AnotherNinOptEnumDefault) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AnotherNinOptEnumDefault.Merge(m, src)
}
func (m *AnotherNinOptEnumDefault) XXX_Size() int {
return m.Size()
@@ -1972,7 +1987,7 @@ type Timer struct {
func (m *Timer) Reset() { *m = Timer{} }
func (*Timer) ProtoMessage() {}
func (*Timer) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{39}
+ return fileDescriptor_519c3115fa9830d1, []int{39}
}
func (m *Timer) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1989,8 +2004,8 @@ func (m *Timer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Timer) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Timer.Merge(dst, src)
+func (m *Timer) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Timer.Merge(m, src)
}
func (m *Timer) XXX_Size() int {
return m.Size()
@@ -2012,7 +2027,7 @@ type MyExtendable struct {
func (m *MyExtendable) Reset() { *m = MyExtendable{} }
func (*MyExtendable) ProtoMessage() {}
func (*MyExtendable) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{40}
+ return fileDescriptor_519c3115fa9830d1, []int{40}
}
var extRange_MyExtendable = []proto.ExtensionRange{
@@ -2022,6 +2037,7 @@ var extRange_MyExtendable = []proto.ExtensionRange{
func (*MyExtendable) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_MyExtendable
}
+
func (m *MyExtendable) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
@@ -2037,8 +2053,8 @@ func (m *MyExtendable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *MyExtendable) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MyExtendable.Merge(dst, src)
+func (m *MyExtendable) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MyExtendable.Merge(m, src)
}
func (m *MyExtendable) XXX_Size() int {
return m.Size()
@@ -2062,7 +2078,7 @@ type OtherExtenable struct {
func (m *OtherExtenable) Reset() { *m = OtherExtenable{} }
func (*OtherExtenable) ProtoMessage() {}
func (*OtherExtenable) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{41}
+ return fileDescriptor_519c3115fa9830d1, []int{41}
}
var extRange_OtherExtenable = []proto.ExtensionRange{
@@ -2073,6 +2089,7 @@ var extRange_OtherExtenable = []proto.ExtensionRange{
func (*OtherExtenable) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_OtherExtenable
}
+
func (m *OtherExtenable) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
@@ -2088,8 +2105,8 @@ func (m *OtherExtenable) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro
return b[:n], nil
}
}
-func (dst *OtherExtenable) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OtherExtenable.Merge(dst, src)
+func (m *OtherExtenable) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OtherExtenable.Merge(m, src)
}
func (m *OtherExtenable) XXX_Size() int {
return m.Size()
@@ -2113,7 +2130,7 @@ type NestedDefinition struct {
func (m *NestedDefinition) Reset() { *m = NestedDefinition{} }
func (*NestedDefinition) ProtoMessage() {}
func (*NestedDefinition) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{42}
+ return fileDescriptor_519c3115fa9830d1, []int{42}
}
func (m *NestedDefinition) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2130,8 +2147,8 @@ func (m *NestedDefinition) XXX_Marshal(b []byte, deterministic bool) ([]byte, er
return b[:n], nil
}
}
-func (dst *NestedDefinition) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedDefinition.Merge(dst, src)
+func (m *NestedDefinition) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedDefinition.Merge(m, src)
}
func (m *NestedDefinition) XXX_Size() int {
return m.Size()
@@ -2153,7 +2170,7 @@ type NestedDefinition_NestedMessage struct {
func (m *NestedDefinition_NestedMessage) Reset() { *m = NestedDefinition_NestedMessage{} }
func (*NestedDefinition_NestedMessage) ProtoMessage() {}
func (*NestedDefinition_NestedMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{42, 0}
+ return fileDescriptor_519c3115fa9830d1, []int{42, 0}
}
func (m *NestedDefinition_NestedMessage) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2170,8 +2187,8 @@ func (m *NestedDefinition_NestedMessage) XXX_Marshal(b []byte, deterministic boo
return b[:n], nil
}
}
-func (dst *NestedDefinition_NestedMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedDefinition_NestedMessage.Merge(dst, src)
+func (m *NestedDefinition_NestedMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedDefinition_NestedMessage.Merge(m, src)
}
func (m *NestedDefinition_NestedMessage) XXX_Size() int {
return m.Size()
@@ -2194,7 +2211,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Reset() {
}
func (*NestedDefinition_NestedMessage_NestedNestedMsg) ProtoMessage() {}
func (*NestedDefinition_NestedMessage_NestedNestedMsg) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{42, 0, 0}
+ return fileDescriptor_519c3115fa9830d1, []int{42, 0, 0}
}
func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2211,8 +2228,8 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Marshal(b []byte, d
return b[:n], nil
}
}
-func (dst *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedDefinition_NestedMessage_NestedNestedMsg.Merge(dst, src)
+func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedDefinition_NestedMessage_NestedNestedMsg.Merge(m, src)
}
func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Size() int {
return m.Size()
@@ -2235,7 +2252,7 @@ type NestedScope struct {
func (m *NestedScope) Reset() { *m = NestedScope{} }
func (*NestedScope) ProtoMessage() {}
func (*NestedScope) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{43}
+ return fileDescriptor_519c3115fa9830d1, []int{43}
}
func (m *NestedScope) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2252,8 +2269,8 @@ func (m *NestedScope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NestedScope) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedScope.Merge(dst, src)
+func (m *NestedScope) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedScope.Merge(m, src)
}
func (m *NestedScope) XXX_Size() int {
return m.Size()
@@ -2266,7 +2283,7 @@ var xxx_messageInfo_NestedScope proto.InternalMessageInfo
type NinOptNativeDefault struct {
Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"`
- Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.12341" json:"Field2,omitempty"`
+ Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"`
Field3 *int32 `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"`
Field4 *int64 `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"`
Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"`
@@ -2288,7 +2305,7 @@ type NinOptNativeDefault struct {
func (m *NinOptNativeDefault) Reset() { *m = NinOptNativeDefault{} }
func (*NinOptNativeDefault) ProtoMessage() {}
func (*NinOptNativeDefault) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{44}
+ return fileDescriptor_519c3115fa9830d1, []int{44}
}
func (m *NinOptNativeDefault) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2305,8 +2322,8 @@ func (m *NinOptNativeDefault) XXX_Marshal(b []byte, deterministic bool) ([]byte,
return b[:n], nil
}
}
-func (dst *NinOptNativeDefault) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptNativeDefault.Merge(dst, src)
+func (m *NinOptNativeDefault) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptNativeDefault.Merge(m, src)
}
func (m *NinOptNativeDefault) XXX_Size() int {
return m.Size()
@@ -2318,7 +2335,7 @@ func (m *NinOptNativeDefault) XXX_DiscardUnknown() {
var xxx_messageInfo_NinOptNativeDefault proto.InternalMessageInfo
const Default_NinOptNativeDefault_Field1 float64 = 1234.1234
-const Default_NinOptNativeDefault_Field2 float32 = 1234.12341
+const Default_NinOptNativeDefault_Field2 float32 = 1234.1234
const Default_NinOptNativeDefault_Field3 int32 = 1234
const Default_NinOptNativeDefault_Field4 int64 = 1234
const Default_NinOptNativeDefault_Field5 uint32 = 1234
@@ -2447,7 +2464,7 @@ type CustomContainer struct {
func (m *CustomContainer) Reset() { *m = CustomContainer{} }
func (*CustomContainer) ProtoMessage() {}
func (*CustomContainer) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{45}
+ return fileDescriptor_519c3115fa9830d1, []int{45}
}
func (m *CustomContainer) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2464,8 +2481,8 @@ func (m *CustomContainer) XXX_Marshal(b []byte, deterministic bool) ([]byte, err
return b[:n], nil
}
}
-func (dst *CustomContainer) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomContainer.Merge(dst, src)
+func (m *CustomContainer) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomContainer.Merge(m, src)
}
func (m *CustomContainer) XXX_Size() int {
return m.Size()
@@ -2500,7 +2517,7 @@ type CustomNameNidOptNative struct {
func (m *CustomNameNidOptNative) Reset() { *m = CustomNameNidOptNative{} }
func (*CustomNameNidOptNative) ProtoMessage() {}
func (*CustomNameNidOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{46}
+ return fileDescriptor_519c3115fa9830d1, []int{46}
}
func (m *CustomNameNidOptNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2517,8 +2534,8 @@ func (m *CustomNameNidOptNative) XXX_Marshal(b []byte, deterministic bool) ([]by
return b[:n], nil
}
}
-func (dst *CustomNameNidOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNidOptNative.Merge(dst, src)
+func (m *CustomNameNidOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNidOptNative.Merge(m, src)
}
func (m *CustomNameNidOptNative) XXX_Size() int {
return m.Size()
@@ -2553,7 +2570,7 @@ type CustomNameNinOptNative struct {
func (m *CustomNameNinOptNative) Reset() { *m = CustomNameNinOptNative{} }
func (*CustomNameNinOptNative) ProtoMessage() {}
func (*CustomNameNinOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{47}
+ return fileDescriptor_519c3115fa9830d1, []int{47}
}
func (m *CustomNameNinOptNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2570,8 +2587,8 @@ func (m *CustomNameNinOptNative) XXX_Marshal(b []byte, deterministic bool) ([]by
return b[:n], nil
}
}
-func (dst *CustomNameNinOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNinOptNative.Merge(dst, src)
+func (m *CustomNameNinOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNinOptNative.Merge(m, src)
}
func (m *CustomNameNinOptNative) XXX_Size() int {
return m.Size()
@@ -2606,7 +2623,7 @@ type CustomNameNinRepNative struct {
func (m *CustomNameNinRepNative) Reset() { *m = CustomNameNinRepNative{} }
func (*CustomNameNinRepNative) ProtoMessage() {}
func (*CustomNameNinRepNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{48}
+ return fileDescriptor_519c3115fa9830d1, []int{48}
}
func (m *CustomNameNinRepNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2623,8 +2640,8 @@ func (m *CustomNameNinRepNative) XXX_Marshal(b []byte, deterministic bool) ([]by
return b[:n], nil
}
}
-func (dst *CustomNameNinRepNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNinRepNative.Merge(dst, src)
+func (m *CustomNameNinRepNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNinRepNative.Merge(m, src)
}
func (m *CustomNameNinRepNative) XXX_Size() int {
return m.Size()
@@ -2654,7 +2671,7 @@ type CustomNameNinStruct struct {
func (m *CustomNameNinStruct) Reset() { *m = CustomNameNinStruct{} }
func (*CustomNameNinStruct) ProtoMessage() {}
func (*CustomNameNinStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{49}
+ return fileDescriptor_519c3115fa9830d1, []int{49}
}
func (m *CustomNameNinStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2671,8 +2688,8 @@ func (m *CustomNameNinStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte,
return b[:n], nil
}
}
-func (dst *CustomNameNinStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNinStruct.Merge(dst, src)
+func (m *CustomNameNinStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNinStruct.Merge(m, src)
}
func (m *CustomNameNinStruct) XXX_Size() int {
return m.Size()
@@ -2696,7 +2713,7 @@ type CustomNameCustomType struct {
func (m *CustomNameCustomType) Reset() { *m = CustomNameCustomType{} }
func (*CustomNameCustomType) ProtoMessage() {}
func (*CustomNameCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{50}
+ return fileDescriptor_519c3115fa9830d1, []int{50}
}
func (m *CustomNameCustomType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2713,8 +2730,8 @@ func (m *CustomNameCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte
return b[:n], nil
}
}
-func (dst *CustomNameCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameCustomType.Merge(dst, src)
+func (m *CustomNameCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameCustomType.Merge(m, src)
}
func (m *CustomNameCustomType) XXX_Size() int {
return m.Size()
@@ -2737,7 +2754,7 @@ type CustomNameNinEmbeddedStructUnion struct {
func (m *CustomNameNinEmbeddedStructUnion) Reset() { *m = CustomNameNinEmbeddedStructUnion{} }
func (*CustomNameNinEmbeddedStructUnion) ProtoMessage() {}
func (*CustomNameNinEmbeddedStructUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{51}
+ return fileDescriptor_519c3115fa9830d1, []int{51}
}
func (m *CustomNameNinEmbeddedStructUnion) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2754,8 +2771,8 @@ func (m *CustomNameNinEmbeddedStructUnion) XXX_Marshal(b []byte, deterministic b
return b[:n], nil
}
}
-func (dst *CustomNameNinEmbeddedStructUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNinEmbeddedStructUnion.Merge(dst, src)
+func (m *CustomNameNinEmbeddedStructUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNinEmbeddedStructUnion.Merge(m, src)
}
func (m *CustomNameNinEmbeddedStructUnion) XXX_Size() int {
return m.Size()
@@ -2777,7 +2794,7 @@ type CustomNameEnum struct {
func (m *CustomNameEnum) Reset() { *m = CustomNameEnum{} }
func (*CustomNameEnum) ProtoMessage() {}
func (*CustomNameEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{52}
+ return fileDescriptor_519c3115fa9830d1, []int{52}
}
func (m *CustomNameEnum) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2794,8 +2811,8 @@ func (m *CustomNameEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro
return b[:n], nil
}
}
-func (dst *CustomNameEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameEnum.Merge(dst, src)
+func (m *CustomNameEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameEnum.Merge(m, src)
}
func (m *CustomNameEnum) XXX_Size() int {
return m.Size()
@@ -2817,7 +2834,7 @@ type NoExtensionsMap struct {
func (m *NoExtensionsMap) Reset() { *m = NoExtensionsMap{} }
func (*NoExtensionsMap) ProtoMessage() {}
func (*NoExtensionsMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{53}
+ return fileDescriptor_519c3115fa9830d1, []int{53}
}
var extRange_NoExtensionsMap = []proto.ExtensionRange{
@@ -2827,6 +2844,7 @@ var extRange_NoExtensionsMap = []proto.ExtensionRange{
func (*NoExtensionsMap) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_NoExtensionsMap
}
+
func (m *NoExtensionsMap) GetExtensions() *[]byte {
if m.XXX_extensions == nil {
m.XXX_extensions = make([]byte, 0)
@@ -2848,8 +2866,8 @@ func (m *NoExtensionsMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, err
return b[:n], nil
}
}
-func (dst *NoExtensionsMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NoExtensionsMap.Merge(dst, src)
+func (m *NoExtensionsMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NoExtensionsMap.Merge(m, src)
}
func (m *NoExtensionsMap) XXX_Size() int {
return m.Size()
@@ -2869,7 +2887,7 @@ type Unrecognized struct {
func (m *Unrecognized) Reset() { *m = Unrecognized{} }
func (*Unrecognized) ProtoMessage() {}
func (*Unrecognized) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{54}
+ return fileDescriptor_519c3115fa9830d1, []int{54}
}
func (m *Unrecognized) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2886,8 +2904,8 @@ func (m *Unrecognized) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *Unrecognized) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Unrecognized.Merge(dst, src)
+func (m *Unrecognized) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Unrecognized.Merge(m, src)
}
func (m *Unrecognized) XXX_Size() int {
return m.Size()
@@ -2909,7 +2927,7 @@ type UnrecognizedWithInner struct {
func (m *UnrecognizedWithInner) Reset() { *m = UnrecognizedWithInner{} }
func (*UnrecognizedWithInner) ProtoMessage() {}
func (*UnrecognizedWithInner) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{55}
+ return fileDescriptor_519c3115fa9830d1, []int{55}
}
func (m *UnrecognizedWithInner) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2926,8 +2944,8 @@ func (m *UnrecognizedWithInner) XXX_Marshal(b []byte, deterministic bool) ([]byt
return b[:n], nil
}
}
-func (dst *UnrecognizedWithInner) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnrecognizedWithInner.Merge(dst, src)
+func (m *UnrecognizedWithInner) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnrecognizedWithInner.Merge(m, src)
}
func (m *UnrecognizedWithInner) XXX_Size() int {
return m.Size()
@@ -2947,7 +2965,7 @@ type UnrecognizedWithInner_Inner struct {
func (m *UnrecognizedWithInner_Inner) Reset() { *m = UnrecognizedWithInner_Inner{} }
func (*UnrecognizedWithInner_Inner) ProtoMessage() {}
func (*UnrecognizedWithInner_Inner) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{55, 0}
+ return fileDescriptor_519c3115fa9830d1, []int{55, 0}
}
func (m *UnrecognizedWithInner_Inner) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2964,8 +2982,8 @@ func (m *UnrecognizedWithInner_Inner) XXX_Marshal(b []byte, deterministic bool)
return b[:n], nil
}
}
-func (dst *UnrecognizedWithInner_Inner) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnrecognizedWithInner_Inner.Merge(dst, src)
+func (m *UnrecognizedWithInner_Inner) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnrecognizedWithInner_Inner.Merge(m, src)
}
func (m *UnrecognizedWithInner_Inner) XXX_Size() int {
return m.Size()
@@ -2987,7 +3005,7 @@ type UnrecognizedWithEmbed struct {
func (m *UnrecognizedWithEmbed) Reset() { *m = UnrecognizedWithEmbed{} }
func (*UnrecognizedWithEmbed) ProtoMessage() {}
func (*UnrecognizedWithEmbed) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{56}
+ return fileDescriptor_519c3115fa9830d1, []int{56}
}
func (m *UnrecognizedWithEmbed) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3004,8 +3022,8 @@ func (m *UnrecognizedWithEmbed) XXX_Marshal(b []byte, deterministic bool) ([]byt
return b[:n], nil
}
}
-func (dst *UnrecognizedWithEmbed) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnrecognizedWithEmbed.Merge(dst, src)
+func (m *UnrecognizedWithEmbed) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnrecognizedWithEmbed.Merge(m, src)
}
func (m *UnrecognizedWithEmbed) XXX_Size() int {
return m.Size()
@@ -3025,7 +3043,7 @@ type UnrecognizedWithEmbed_Embedded struct {
func (m *UnrecognizedWithEmbed_Embedded) Reset() { *m = UnrecognizedWithEmbed_Embedded{} }
func (*UnrecognizedWithEmbed_Embedded) ProtoMessage() {}
func (*UnrecognizedWithEmbed_Embedded) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{56, 0}
+ return fileDescriptor_519c3115fa9830d1, []int{56, 0}
}
func (m *UnrecognizedWithEmbed_Embedded) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3042,8 +3060,8 @@ func (m *UnrecognizedWithEmbed_Embedded) XXX_Marshal(b []byte, deterministic boo
return b[:n], nil
}
}
-func (dst *UnrecognizedWithEmbed_Embedded) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnrecognizedWithEmbed_Embedded.Merge(dst, src)
+func (m *UnrecognizedWithEmbed_Embedded) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnrecognizedWithEmbed_Embedded.Merge(m, src)
}
func (m *UnrecognizedWithEmbed_Embedded) XXX_Size() int {
return m.Size()
@@ -3065,7 +3083,7 @@ type Node struct {
func (m *Node) Reset() { *m = Node{} }
func (*Node) ProtoMessage() {}
func (*Node) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{57}
+ return fileDescriptor_519c3115fa9830d1, []int{57}
}
func (m *Node) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3082,8 +3100,8 @@ func (m *Node) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Node) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Node.Merge(dst, src)
+func (m *Node) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Node.Merge(m, src)
}
func (m *Node) XXX_Size() int {
return m.Size()
@@ -3104,7 +3122,7 @@ type NonByteCustomType struct {
func (m *NonByteCustomType) Reset() { *m = NonByteCustomType{} }
func (*NonByteCustomType) ProtoMessage() {}
func (*NonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{58}
+ return fileDescriptor_519c3115fa9830d1, []int{58}
}
func (m *NonByteCustomType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3121,8 +3139,8 @@ func (m *NonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
-func (dst *NonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NonByteCustomType.Merge(dst, src)
+func (m *NonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NonByteCustomType.Merge(m, src)
}
func (m *NonByteCustomType) XXX_Size() int {
return m.Size()
@@ -3143,7 +3161,7 @@ type NidOptNonByteCustomType struct {
func (m *NidOptNonByteCustomType) Reset() { *m = NidOptNonByteCustomType{} }
func (*NidOptNonByteCustomType) ProtoMessage() {}
func (*NidOptNonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{59}
+ return fileDescriptor_519c3115fa9830d1, []int{59}
}
func (m *NidOptNonByteCustomType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3160,8 +3178,8 @@ func (m *NidOptNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]b
return b[:n], nil
}
}
-func (dst *NidOptNonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptNonByteCustomType.Merge(dst, src)
+func (m *NidOptNonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptNonByteCustomType.Merge(m, src)
}
func (m *NidOptNonByteCustomType) XXX_Size() int {
return m.Size()
@@ -3182,7 +3200,7 @@ type NinOptNonByteCustomType struct {
func (m *NinOptNonByteCustomType) Reset() { *m = NinOptNonByteCustomType{} }
func (*NinOptNonByteCustomType) ProtoMessage() {}
func (*NinOptNonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{60}
+ return fileDescriptor_519c3115fa9830d1, []int{60}
}
func (m *NinOptNonByteCustomType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3199,8 +3217,8 @@ func (m *NinOptNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]b
return b[:n], nil
}
}
-func (dst *NinOptNonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptNonByteCustomType.Merge(dst, src)
+func (m *NinOptNonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptNonByteCustomType.Merge(m, src)
}
func (m *NinOptNonByteCustomType) XXX_Size() int {
return m.Size()
@@ -3221,7 +3239,7 @@ type NidRepNonByteCustomType struct {
func (m *NidRepNonByteCustomType) Reset() { *m = NidRepNonByteCustomType{} }
func (*NidRepNonByteCustomType) ProtoMessage() {}
func (*NidRepNonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{61}
+ return fileDescriptor_519c3115fa9830d1, []int{61}
}
func (m *NidRepNonByteCustomType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3238,8 +3256,8 @@ func (m *NidRepNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]b
return b[:n], nil
}
}
-func (dst *NidRepNonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepNonByteCustomType.Merge(dst, src)
+func (m *NidRepNonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepNonByteCustomType.Merge(m, src)
}
func (m *NidRepNonByteCustomType) XXX_Size() int {
return m.Size()
@@ -3260,7 +3278,7 @@ type NinRepNonByteCustomType struct {
func (m *NinRepNonByteCustomType) Reset() { *m = NinRepNonByteCustomType{} }
func (*NinRepNonByteCustomType) ProtoMessage() {}
func (*NinRepNonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{62}
+ return fileDescriptor_519c3115fa9830d1, []int{62}
}
func (m *NinRepNonByteCustomType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3277,8 +3295,8 @@ func (m *NinRepNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]b
return b[:n], nil
}
}
-func (dst *NinRepNonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepNonByteCustomType.Merge(dst, src)
+func (m *NinRepNonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepNonByteCustomType.Merge(m, src)
}
func (m *NinRepNonByteCustomType) XXX_Size() int {
return m.Size()
@@ -3299,7 +3317,7 @@ type ProtoType struct {
func (m *ProtoType) Reset() { *m = ProtoType{} }
func (*ProtoType) ProtoMessage() {}
func (*ProtoType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_3e4f682cb8349b83, []int{63}
+ return fileDescriptor_519c3115fa9830d1, []int{63}
}
func (m *ProtoType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3316,8 +3334,8 @@ func (m *ProtoType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *ProtoType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ProtoType.Merge(dst, src)
+func (m *ProtoType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ProtoType.Merge(m, src)
}
func (m *ProtoType) XXX_Size() int {
return m.Size()
@@ -3401,6 +3419,11 @@ var E_FieldC1 = &proto.ExtensionDesc{
}
func init() {
+ proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value)
+ proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value)
+ proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value)
+ proto.RegisterEnum("test.YetYetAnotherTestEnum", YetYetAnotherTestEnum_name, YetYetAnotherTestEnum_value)
+ proto.RegisterEnum("test.NestedDefinition_NestedEnum", NestedDefinition_NestedEnum_name, NestedDefinition_NestedEnum_value)
proto.RegisterType((*NidOptNative)(nil), "test.NidOptNative")
proto.RegisterType((*NinOptNative)(nil), "test.NinOptNative")
proto.RegisterType((*NidRepNative)(nil), "test.NidRepNative")
@@ -3469,11 +3492,6 @@ func init() {
proto.RegisterType((*NidRepNonByteCustomType)(nil), "test.NidRepNonByteCustomType")
proto.RegisterType((*NinRepNonByteCustomType)(nil), "test.NinRepNonByteCustomType")
proto.RegisterType((*ProtoType)(nil), "test.ProtoType")
- proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value)
- proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value)
- proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value)
- proto.RegisterEnum("test.YetYetAnotherTestEnum", YetYetAnotherTestEnum_name, YetYetAnotherTestEnum_value)
- proto.RegisterEnum("test.NestedDefinition_NestedEnum", NestedDefinition_NestedEnum_name, NestedDefinition_NestedEnum_value)
proto.RegisterExtension(E_FieldA)
proto.RegisterExtension(E_FieldB)
proto.RegisterExtension(E_FieldC)
@@ -3483,6 +3501,206 @@ func init() {
proto.RegisterExtension(E_FieldB1)
proto.RegisterExtension(E_FieldC1)
}
+
+func init() { proto.RegisterFile("combos/both/thetest.proto", fileDescriptor_519c3115fa9830d1) }
+
+var fileDescriptor_519c3115fa9830d1 = []byte{
+ // 3081 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4d, 0x6c, 0x1b, 0xc7,
+ 0x15, 0xd6, 0xec, 0x50, 0x0a, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0xb6, 0x8c, 0xba, 0xa2, 0x37,
+ 0xb2, 0xca, 0x10, 0xb1, 0x44, 0x51, 0x94, 0x2c, 0x33, 0x4d, 0x0a, 0xf1, 0xc7, 0x8d, 0xdc, 0x88,
+ 0x32, 0x18, 0xb9, 0xad, 0x81, 0x02, 0x05, 0x25, 0xae, 0x45, 0xa2, 0xd2, 0x52, 0x20, 0x57, 0x69,
+ 0xdc, 0x43, 0x11, 0xe4, 0x50, 0x04, 0xbd, 0x16, 0x3d, 0xb6, 0x71, 0x51, 0x14, 0x48, 0x6f, 0x39,
+ 0x14, 0x45, 0x51, 0x14, 0x8d, 0x2f, 0x05, 0xd4, 0x9b, 0xd1, 0x53, 0x11, 0x14, 0x42, 0xc4, 0x5c,
+ 0x72, 0x0c, 0x7a, 0x69, 0x0e, 0x39, 0x14, 0xbb, 0x3b, 0x3b, 0x3b, 0x33, 0xdc, 0xe5, 0x2e, 0x2d,
+ 0xb9, 0xcd, 0xc5, 0x16, 0xe7, 0xbd, 0x37, 0xf3, 0xf6, 0x7d, 0xdf, 0x7b, 0xfb, 0x76, 0x66, 0xe0,
+ 0x6b, 0x7b, 0xed, 0xc3, 0xdd, 0x76, 0x77, 0x69, 0xb7, 0x6d, 0x36, 0x97, 0xcc, 0xa6, 0x6e, 0xea,
+ 0x5d, 0x73, 0xf1, 0xa8, 0xd3, 0x36, 0xdb, 0x72, 0xcc, 0xfa, 0x3b, 0x79, 0x7d, 0xbf, 0x65, 0x36,
+ 0x8f, 0x77, 0x17, 0xf7, 0xda, 0x87, 0x4b, 0xfb, 0xed, 0xfd, 0xf6, 0x92, 0x2d, 0xdc, 0x3d, 0xbe,
+ 0x6f, 0xff, 0xb2, 0x7f, 0xd8, 0x7f, 0x39, 0x46, 0xda, 0xbf, 0x30, 0x4c, 0x56, 0x5b, 0x8d, 0xed,
+ 0x23, 0xb3, 0x5a, 0x37, 0x5b, 0x6f, 0xe9, 0xf2, 0x2c, 0x8c, 0xdd, 0x6a, 0xe9, 0x07, 0x8d, 0x65,
+ 0x05, 0xa5, 0x50, 0x1a, 0x15, 0x63, 0x27, 0xa7, 0x73, 0x23, 0x35, 0x32, 0x46, 0xa5, 0x39, 0x45,
+ 0x4a, 0xa1, 0xb4, 0xc4, 0x49, 0x73, 0x54, 0xba, 0xa2, 0xe0, 0x14, 0x4a, 0x8f, 0x72, 0xd2, 0x15,
+ 0x2a, 0xcd, 0x2b, 0xb1, 0x14, 0x4a, 0x63, 0x4e, 0x9a, 0xa7, 0xd2, 0x55, 0x65, 0x34, 0x85, 0xd2,
+ 0x97, 0x38, 0xe9, 0x2a, 0x95, 0xae, 0x29, 0x63, 0x29, 0x94, 0x8e, 0x71, 0xd2, 0x35, 0x2a, 0xbd,
+ 0xa1, 0x3c, 0x93, 0x42, 0xe9, 0xcb, 0x9c, 0xf4, 0x06, 0x95, 0xae, 0x2b, 0xf1, 0x14, 0x4a, 0xcb,
+ 0x9c, 0x74, 0x9d, 0x4a, 0x6f, 0x2a, 0xe3, 0x29, 0x94, 0x7e, 0x86, 0x93, 0xde, 0x94, 0x55, 0x78,
+ 0xc6, 0x79, 0xf2, 0xac, 0x02, 0x29, 0x94, 0x9e, 0x26, 0x62, 0x77, 0xd0, 0x93, 0x2f, 0x2b, 0x13,
+ 0x29, 0x94, 0x1e, 0xe3, 0xe5, 0xcb, 0x9e, 0x3c, 0xa7, 0x4c, 0xa6, 0x50, 0x3a, 0xc1, 0xcb, 0x73,
+ 0x9e, 0x7c, 0x45, 0xb9, 0x94, 0x42, 0xe9, 0x38, 0x2f, 0x5f, 0xf1, 0xe4, 0x79, 0x65, 0x2a, 0x85,
+ 0xd2, 0xe3, 0xbc, 0x3c, 0xef, 0xc9, 0x57, 0x95, 0xe9, 0x14, 0x4a, 0x4f, 0xf2, 0xf2, 0x55, 0xed,
+ 0x5d, 0x1b, 0x5e, 0xc3, 0x83, 0x77, 0x86, 0x87, 0x97, 0x02, 0x3b, 0xc3, 0x03, 0x4b, 0x21, 0x9d,
+ 0xe1, 0x21, 0xa5, 0x60, 0xce, 0xf0, 0x60, 0x52, 0x18, 0x67, 0x78, 0x18, 0x29, 0x80, 0x33, 0x3c,
+ 0x80, 0x14, 0xba, 0x19, 0x1e, 0x3a, 0x0a, 0xda, 0x0c, 0x0f, 0x1a, 0x85, 0x6b, 0x86, 0x87, 0x8b,
+ 0x02, 0xa5, 0x08, 0x40, 0x79, 0x10, 0x29, 0x02, 0x44, 0x1e, 0x38, 0x8a, 0x00, 0x8e, 0x07, 0x8b,
+ 0x22, 0xc0, 0xe2, 0x01, 0xa2, 0x08, 0x80, 0x78, 0x50, 0x28, 0x02, 0x14, 0x1e, 0x08, 0x24, 0xc7,
+ 0x6a, 0xfa, 0x91, 0x4f, 0x8e, 0xe1, 0x81, 0x39, 0x86, 0x07, 0xe6, 0x18, 0x1e, 0x98, 0x63, 0x78,
+ 0x60, 0x8e, 0xe1, 0x81, 0x39, 0x86, 0x07, 0xe6, 0x18, 0x1e, 0x98, 0x63, 0x78, 0x60, 0x8e, 0xe1,
+ 0xc1, 0x39, 0x86, 0x43, 0x72, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31, 0x1c, 0x92, 0x63, 0x38,
+ 0x24, 0xc7, 0x70, 0x60, 0x8e, 0x79, 0xf0, 0xce, 0xf0, 0xf0, 0xfa, 0xe6, 0x18, 0x0e, 0xc8, 0x31,
+ 0x1c, 0x90, 0x63, 0x38, 0x20, 0xc7, 0x70, 0x40, 0x8e, 0xe1, 0x80, 0x1c, 0xc3, 0x01, 0x39, 0x86,
+ 0x03, 0x72, 0x0c, 0x07, 0xe5, 0x18, 0x0e, 0xcc, 0x31, 0x1c, 0x98, 0x63, 0x38, 0x30, 0xc7, 0x70,
+ 0x60, 0x8e, 0xe1, 0xc0, 0x1c, 0xc3, 0x6c, 0x8e, 0xfd, 0x05, 0x83, 0xec, 0xe4, 0xd8, 0x9d, 0xfa,
+ 0xde, 0x8f, 0xf4, 0x06, 0x81, 0x42, 0x15, 0x32, 0x6d, 0xcc, 0x82, 0x2e, 0xe1, 0x41, 0xa2, 0x0a,
+ 0xb9, 0xc6, 0xcb, 0x73, 0x54, 0xee, 0x66, 0x1b, 0x2f, 0x5f, 0xa1, 0x72, 0x37, 0xdf, 0x78, 0x79,
+ 0x9e, 0xca, 0xdd, 0x8c, 0xe3, 0xe5, 0xab, 0x54, 0xee, 0xe6, 0x1c, 0x2f, 0x5f, 0xa3, 0x72, 0x37,
+ 0xeb, 0x78, 0xf9, 0x0d, 0x2a, 0x77, 0xf3, 0x8e, 0x97, 0xaf, 0x53, 0xb9, 0x9b, 0x79, 0xbc, 0xfc,
+ 0xa6, 0x9c, 0x12, 0x73, 0xcf, 0x55, 0xa0, 0xd0, 0xa6, 0xc4, 0xec, 0x13, 0x34, 0x96, 0x3d, 0x0d,
+ 0x37, 0xff, 0x04, 0x8d, 0x9c, 0xa7, 0xe1, 0x66, 0xa0, 0xa0, 0xb1, 0xa2, 0xbd, 0x67, 0xc3, 0x67,
+ 0x88, 0xf0, 0x25, 0x05, 0xf8, 0x24, 0x06, 0xba, 0xa4, 0x00, 0x9d, 0xc4, 0xc0, 0x96, 0x14, 0x60,
+ 0x93, 0x18, 0xc8, 0x92, 0x02, 0x64, 0x12, 0x03, 0x57, 0x52, 0x80, 0x4b, 0x62, 0xa0, 0x4a, 0x0a,
+ 0x50, 0x49, 0x0c, 0x4c, 0x49, 0x01, 0x26, 0x89, 0x81, 0x28, 0x29, 0x40, 0x24, 0x31, 0xf0, 0x24,
+ 0x05, 0x78, 0x24, 0x06, 0x9a, 0x59, 0x11, 0x1a, 0x89, 0x85, 0x65, 0x56, 0x84, 0x45, 0x62, 0x21,
+ 0x99, 0x15, 0x21, 0x91, 0x58, 0x38, 0x66, 0x45, 0x38, 0x24, 0x16, 0x8a, 0x2f, 0x25, 0xb7, 0x23,
+ 0x7c, 0xd3, 0xec, 0x1c, 0xef, 0x99, 0xe7, 0xea, 0x08, 0xb3, 0x5c, 0xfb, 0x30, 0x91, 0x93, 0x17,
+ 0xed, 0x86, 0x95, 0xed, 0x38, 0x85, 0x37, 0x58, 0x96, 0x6b, 0x2c, 0x18, 0x0b, 0xc3, 0xdf, 0x22,
+ 0x7f, 0xae, 0xde, 0x30, 0xcb, 0xb5, 0x19, 0xe1, 0xfe, 0xad, 0x3f, 0xf5, 0x8e, 0xed, 0x91, 0xe4,
+ 0x76, 0x6c, 0x24, 0xfc, 0xc3, 0x76, 0x6c, 0x99, 0xf0, 0x90, 0xd3, 0x60, 0x67, 0xc2, 0x83, 0xdd,
+ 0xf7, 0xd6, 0x89, 0xda, 0xc1, 0x65, 0xc2, 0x43, 0x4b, 0x83, 0x7a, 0xb1, 0xfd, 0x16, 0x61, 0x70,
+ 0x4d, 0x3f, 0xf2, 0x61, 0xf0, 0xb0, 0xfd, 0x56, 0x96, 0x2b, 0x25, 0xc3, 0x32, 0x18, 0x0f, 0xcd,
+ 0xe0, 0x61, 0x3b, 0xaf, 0x2c, 0x57, 0x5e, 0x86, 0x66, 0xf0, 0x53, 0xe8, 0x87, 0x08, 0x83, 0xbd,
+ 0xf0, 0x0f, 0xdb, 0x0f, 0x65, 0xc2, 0x43, 0xee, 0xcb, 0x60, 0x3c, 0x04, 0x83, 0xa3, 0xf4, 0x47,
+ 0x99, 0xf0, 0xd0, 0xfa, 0x33, 0xf8, 0xdc, 0xdd, 0xcc, 0xfb, 0x08, 0x2e, 0x57, 0x5b, 0x8d, 0xca,
+ 0xe1, 0xae, 0xde, 0x68, 0xe8, 0x0d, 0x12, 0xc7, 0x2c, 0x57, 0x09, 0x02, 0xa0, 0x7e, 0x7c, 0x3a,
+ 0xe7, 0x45, 0x78, 0x15, 0xe2, 0x4e, 0x4c, 0xb3, 0x59, 0xe5, 0x04, 0x85, 0x54, 0x38, 0xaa, 0x2a,
+ 0x5f, 0x75, 0xcd, 0x96, 0xb3, 0xca, 0x3f, 0x10, 0x53, 0xe5, 0xe8, 0xb0, 0xf6, 0x0b, 0xdb, 0x43,
+ 0xe3, 0xdc, 0x1e, 0x2e, 0x45, 0xf2, 0x90, 0xf1, 0xed, 0x85, 0x3e, 0xdf, 0x18, 0xaf, 0x8e, 0x61,
+ 0xba, 0xda, 0x6a, 0x54, 0xf5, 0xae, 0x19, 0xcd, 0x25, 0x47, 0x47, 0xa8, 0x07, 0x59, 0x8e, 0x96,
+ 0xac, 0x05, 0xa5, 0x34, 0x5f, 0x23, 0xb4, 0x96, 0xb5, 0xac, 0xc1, 0x2d, 0x9b, 0x09, 0x5a, 0xd6,
+ 0xab, 0xec, 0x74, 0xc1, 0x4c, 0xd0, 0x82, 0x5e, 0x0e, 0xd1, 0xa5, 0xde, 0x76, 0x5f, 0xce, 0xa5,
+ 0xe3, 0xae, 0xd9, 0x3e, 0x94, 0x67, 0x41, 0xda, 0x6c, 0xd8, 0x6b, 0x4c, 0x16, 0x27, 0x2d, 0xa7,
+ 0x3e, 0x3e, 0x9d, 0x8b, 0xdd, 0x3d, 0x6e, 0x35, 0x6a, 0xd2, 0x66, 0x43, 0xbe, 0x0d, 0xa3, 0xdf,
+ 0xad, 0x1f, 0x1c, 0xeb, 0xf6, 0x2b, 0x62, 0xb2, 0x98, 0x27, 0x0a, 0x2f, 0x07, 0xee, 0x11, 0x59,
+ 0x0b, 0x2f, 0xed, 0xd9, 0x53, 0x2f, 0xde, 0x6d, 0x19, 0xe6, 0x72, 0x6e, 0xbd, 0xe6, 0x4c, 0xa1,
+ 0xfd, 0x00, 0xc0, 0x59, 0xb3, 0x5c, 0xef, 0x36, 0xe5, 0xaa, 0x3b, 0xb3, 0xb3, 0xf4, 0xfa, 0xc7,
+ 0xa7, 0x73, 0xf9, 0x28, 0xb3, 0x5e, 0x6f, 0xd4, 0xbb, 0xcd, 0xeb, 0xe6, 0x83, 0x23, 0x7d, 0xb1,
+ 0xf8, 0xc0, 0xd4, 0xbb, 0xee, 0xec, 0x47, 0xee, 0x5b, 0x8f, 0x3c, 0x97, 0xc2, 0x3c, 0x57, 0x9c,
+ 0x7b, 0xa6, 0x5b, 0xfc, 0x33, 0x65, 0x9f, 0xf4, 0x79, 0xde, 0x76, 0x5f, 0x12, 0x42, 0x24, 0x71,
+ 0x58, 0x24, 0xf1, 0x79, 0x23, 0x79, 0xe4, 0xd6, 0x47, 0xe1, 0x59, 0xf1, 0xa0, 0x67, 0xc5, 0xe7,
+ 0x79, 0xd6, 0xff, 0x38, 0xd9, 0x4a, 0xf3, 0xe9, 0xae, 0xd1, 0x6a, 0x1b, 0x5f, 0xb9, 0xbd, 0xa0,
+ 0x0b, 0xed, 0x02, 0x0a, 0xb1, 0x93, 0x87, 0x73, 0x48, 0x7b, 0x5f, 0x72, 0x9f, 0xdc, 0x49, 0xa4,
+ 0x27, 0x7b, 0xf2, 0xaf, 0x4a, 0x4f, 0xf5, 0x34, 0x22, 0xf4, 0x6b, 0x04, 0x33, 0x7d, 0x95, 0xdc,
+ 0x09, 0xd3, 0xc5, 0x96, 0x73, 0x63, 0xd8, 0x72, 0x4e, 0x1c, 0xfc, 0x03, 0x82, 0xe7, 0x84, 0xf2,
+ 0xea, 0xb8, 0xb7, 0x24, 0xb8, 0xf7, 0x7c, 0xff, 0x4a, 0xb6, 0x22, 0xe3, 0x1d, 0x0b, 0xaf, 0x60,
+ 0xc0, 0xcc, 0x4c, 0x71, 0xcf, 0x0b, 0xb8, 0xcf, 0x52, 0x03, 0x9f, 0x70, 0xb9, 0x0c, 0x20, 0x6e,
+ 0xb7, 0x21, 0xb6, 0xd3, 0xd1, 0x75, 0x59, 0x05, 0x69, 0xbb, 0x43, 0x3c, 0x9c, 0x72, 0xec, 0xb7,
+ 0x3b, 0xc5, 0x4e, 0xdd, 0xd8, 0x6b, 0xd6, 0xa4, 0xed, 0x8e, 0x7c, 0x15, 0xf0, 0x86, 0xd1, 0x20,
+ 0x1e, 0x4d, 0x3b, 0x0a, 0x1b, 0x46, 0x83, 0x68, 0x58, 0x32, 0x59, 0x85, 0xd8, 0x1b, 0x7a, 0xfd,
+ 0x3e, 0x71, 0x02, 0x1c, 0x1d, 0x6b, 0xa4, 0x66, 0x8f, 0x93, 0x05, 0xbf, 0x0f, 0x71, 0x77, 0x62,
+ 0x79, 0xde, 0xb2, 0xb8, 0x6f, 0x92, 0x65, 0x89, 0x85, 0xe5, 0x0e, 0x79, 0x73, 0xd9, 0x52, 0x79,
+ 0x01, 0x46, 0x6b, 0xad, 0xfd, 0xa6, 0x49, 0x16, 0xef, 0x57, 0x73, 0xc4, 0xda, 0x3d, 0x18, 0xa7,
+ 0x1e, 0x5d, 0xf0, 0xd4, 0x65, 0xe7, 0xd1, 0xe4, 0x24, 0xfb, 0x3e, 0x71, 0xf7, 0x2d, 0x9d, 0x21,
+ 0x39, 0x05, 0xf1, 0x37, 0xcd, 0x8e, 0x57, 0xf4, 0xdd, 0x8e, 0x94, 0x8e, 0x6a, 0xef, 0x22, 0x88,
+ 0x97, 0x75, 0xfd, 0xc8, 0x0e, 0xf8, 0x35, 0x88, 0x95, 0xdb, 0x3f, 0x36, 0x88, 0x83, 0x97, 0x49,
+ 0x44, 0x2d, 0x31, 0x89, 0xa9, 0x2d, 0x96, 0xaf, 0xb1, 0x71, 0x7f, 0x96, 0xc6, 0x9d, 0xd1, 0xb3,
+ 0x63, 0xaf, 0x71, 0xb1, 0x27, 0x00, 0x5a, 0x4a, 0x7d, 0xf1, 0xbf, 0x01, 0x13, 0xcc, 0x2a, 0x72,
+ 0x9a, 0xb8, 0x21, 0x89, 0x86, 0x6c, 0xac, 0x2c, 0x0d, 0x4d, 0x87, 0x4b, 0xdc, 0xc2, 0x96, 0x29,
+ 0x13, 0xe2, 0x00, 0x53, 0x3b, 0xcc, 0x19, 0x3e, 0xcc, 0xfe, 0xaa, 0x24, 0xd4, 0x59, 0x27, 0x46,
+ 0x76, 0xb8, 0xe7, 0x1d, 0x72, 0x06, 0x83, 0x68, 0xfd, 0xad, 0x8d, 0x02, 0xae, 0xb6, 0x0e, 0xb4,
+ 0x57, 0x01, 0x9c, 0x94, 0xaf, 0x18, 0xc7, 0x87, 0x42, 0xd6, 0x4d, 0xb9, 0x01, 0xde, 0x69, 0xea,
+ 0x3b, 0x7a, 0xd7, 0x56, 0xe1, 0xfb, 0x29, 0xab, 0xc0, 0x80, 0x93, 0x62, 0xb6, 0xfd, 0x4b, 0xa1,
+ 0xf6, 0xbe, 0x9d, 0x98, 0xa5, 0xaa, 0x38, 0xaa, 0xf7, 0x74, 0x73, 0xc3, 0x68, 0x9b, 0x4d, 0xbd,
+ 0x23, 0x58, 0xe4, 0xe4, 0x15, 0x2e, 0x61, 0xa7, 0x72, 0x2f, 0x50, 0x8b, 0x40, 0xa3, 0x15, 0xed,
+ 0x43, 0xdb, 0x41, 0xab, 0x15, 0xe8, 0x7b, 0x40, 0x1c, 0xe1, 0x01, 0xe5, 0x35, 0xae, 0x7f, 0x1b,
+ 0xe0, 0xa6, 0xf0, 0x69, 0x79, 0x93, 0xfb, 0xce, 0x19, 0xec, 0x2c, 0xff, 0x8d, 0xe9, 0xc6, 0xd4,
+ 0x75, 0xf9, 0xa5, 0x50, 0x97, 0x03, 0xba, 0xdb, 0x61, 0x63, 0x8a, 0xa3, 0xc6, 0xf4, 0xcf, 0xb4,
+ 0xe3, 0xb0, 0x86, 0xcb, 0xfa, 0xfd, 0xfa, 0xf1, 0x81, 0x29, 0xbf, 0x1c, 0x8a, 0x7d, 0x01, 0x95,
+ 0xa8, 0xab, 0xf9, 0xa8, 0xf0, 0x17, 0xa4, 0x62, 0x91, 0xba, 0x7b, 0x63, 0x08, 0x0a, 0x14, 0xa4,
+ 0x52, 0x89, 0x96, 0xed, 0xf8, 0x7b, 0x0f, 0xe7, 0xd0, 0x07, 0x0f, 0xe7, 0x46, 0xb4, 0xdf, 0x23,
+ 0xb8, 0x4c, 0x34, 0x19, 0xe2, 0x5e, 0x17, 0x9c, 0xbf, 0xe2, 0xd6, 0x0c, 0xbf, 0x08, 0xfc, 0xcf,
+ 0xc8, 0xfb, 0x37, 0x04, 0x4a, 0x9f, 0xaf, 0x6e, 0xbc, 0xb3, 0x91, 0x5c, 0x2e, 0xa0, 0xca, 0xff,
+ 0x3f, 0xe6, 0xf7, 0x60, 0x74, 0xa7, 0x75, 0xa8, 0x77, 0xac, 0x37, 0x81, 0xf5, 0x87, 0xe3, 0xb2,
+ 0x7b, 0x98, 0xe3, 0x0c, 0xb9, 0x32, 0xc7, 0x39, 0x4e, 0x96, 0x93, 0x15, 0x88, 0x95, 0xeb, 0x66,
+ 0xdd, 0xf6, 0x60, 0x92, 0xd6, 0xd7, 0xba, 0x59, 0xd7, 0x56, 0x60, 0x72, 0xeb, 0x41, 0xe5, 0x6d,
+ 0x53, 0x37, 0x1a, 0xf5, 0xdd, 0x03, 0xf1, 0x0c, 0xd4, 0xed, 0x57, 0x97, 0x33, 0xa3, 0xf1, 0x46,
+ 0xe2, 0x04, 0x15, 0x62, 0xb6, 0x3f, 0x6f, 0xc1, 0xd4, 0xb6, 0xe5, 0xb6, 0x6d, 0xc7, 0x99, 0x39,
+ 0xab, 0x63, 0xfa, 0xf0, 0x42, 0x53, 0x86, 0xbd, 0xa6, 0x2c, 0x05, 0x68, 0x8b, 0x6f, 0x9d, 0x58,
+ 0x3f, 0x6a, 0x68, 0x2b, 0x13, 0x8b, 0x4f, 0x25, 0x2e, 0x67, 0x62, 0x71, 0x48, 0x5c, 0x22, 0xeb,
+ 0xfe, 0x1d, 0x43, 0xc2, 0x69, 0x75, 0xca, 0xfa, 0xfd, 0x96, 0xd1, 0x32, 0xfb, 0xfb, 0x55, 0xea,
+ 0xb1, 0xfc, 0x2d, 0x18, 0xb7, 0x42, 0x6a, 0xff, 0x22, 0x80, 0x5d, 0x25, 0x2d, 0x8a, 0x30, 0x05,
+ 0x19, 0xb0, 0xa9, 0xe3, 0xd9, 0xc8, 0xb7, 0x00, 0x57, 0xab, 0x5b, 0xe4, 0xe5, 0x96, 0x1f, 0x68,
+ 0xba, 0xa5, 0x77, 0xbb, 0xf5, 0x7d, 0x9d, 0xfc, 0x22, 0x63, 0xdd, 0xfd, 0x9a, 0x35, 0x81, 0x9c,
+ 0x07, 0xa9, 0xba, 0x45, 0x1a, 0xde, 0xf9, 0x28, 0xd3, 0xd4, 0xa4, 0xea, 0x56, 0xf2, 0xaf, 0x08,
+ 0x2e, 0x71, 0xa3, 0xb2, 0x06, 0x93, 0xce, 0x00, 0xf3, 0xb8, 0x63, 0x35, 0x6e, 0xcc, 0xf5, 0x59,
+ 0x3a, 0xa7, 0xcf, 0xc9, 0x0d, 0x98, 0x16, 0xc6, 0xe5, 0x45, 0x90, 0xd9, 0x21, 0xe2, 0x04, 0xd8,
+ 0x0d, 0xb5, 0x8f, 0x44, 0xfb, 0x3a, 0x80, 0x17, 0x57, 0x79, 0x1a, 0x26, 0x76, 0xee, 0xdd, 0xa9,
+ 0xfc, 0xb0, 0x5a, 0x79, 0x73, 0xa7, 0x52, 0x4e, 0x20, 0xed, 0x8f, 0x08, 0x26, 0x48, 0xdb, 0xba,
+ 0xd7, 0x3e, 0xd2, 0xe5, 0x22, 0xa0, 0x0d, 0xc2, 0x87, 0x27, 0xf3, 0x1b, 0x6d, 0xc8, 0x4b, 0x80,
+ 0x8a, 0xd1, 0xa1, 0x46, 0x45, 0x39, 0x07, 0xa8, 0x44, 0x00, 0x8e, 0x86, 0x0c, 0x2a, 0x69, 0xff,
+ 0xc6, 0xf0, 0x2c, 0xdb, 0x46, 0xbb, 0xf5, 0xe4, 0x2a, 0xff, 0xdd, 0x54, 0x18, 0x5f, 0xce, 0xad,
+ 0xe4, 0x17, 0xad, 0x7f, 0x28, 0x25, 0x35, 0xfe, 0x13, 0xaa, 0x00, 0x54, 0x65, 0x39, 0xe8, 0x9e,
+ 0x48, 0x21, 0xc6, 0xcc, 0xd0, 0x77, 0x4f, 0x84, 0x93, 0xf6, 0xdd, 0x13, 0xe1, 0xa4, 0x7d, 0xf7,
+ 0x44, 0x38, 0x69, 0xdf, 0x59, 0x00, 0x27, 0xed, 0xbb, 0x27, 0xc2, 0x49, 0xfb, 0xee, 0x89, 0x70,
+ 0xd2, 0xfe, 0x7b, 0x22, 0x44, 0x1c, 0x78, 0x4f, 0x84, 0x97, 0xf7, 0xdf, 0x13, 0xe1, 0xe5, 0xfd,
+ 0xf7, 0x44, 0x0a, 0x31, 0xb3, 0x73, 0xac, 0x07, 0x9f, 0x3a, 0xf0, 0xf6, 0x83, 0x3e, 0x02, 0xbd,
+ 0x0a, 0xbc, 0x0d, 0xd3, 0xce, 0x86, 0x44, 0xa9, 0x6d, 0x98, 0xf5, 0x96, 0xa1, 0x77, 0xe4, 0x6f,
+ 0xc2, 0xa4, 0x33, 0xe4, 0x7c, 0xe6, 0xf8, 0x7d, 0x06, 0x3a, 0x72, 0x52, 0x6f, 0x39, 0x6d, 0xed,
+ 0xcb, 0x18, 0xcc, 0x38, 0x03, 0xd5, 0xfa, 0xa1, 0xce, 0xdd, 0x32, 0x5a, 0x10, 0xce, 0x94, 0xa6,
+ 0x2c, 0xf3, 0xde, 0xe9, 0x9c, 0x33, 0xba, 0x41, 0xd9, 0xb4, 0x20, 0x9c, 0x2e, 0xf1, 0x7a, 0xde,
+ 0x0b, 0x68, 0x41, 0xb8, 0x79, 0xc4, 0xeb, 0xd1, 0xf7, 0x0d, 0xd5, 0x73, 0xef, 0x20, 0xf1, 0x7a,
+ 0x65, 0xca, 0xb2, 0x05, 0xe1, 0x36, 0x12, 0xaf, 0x57, 0xa1, 0x7c, 0x5b, 0x10, 0xce, 0x9e, 0x78,
+ 0xbd, 0x5b, 0x94, 0x79, 0x0b, 0xc2, 0x29, 0x14, 0xaf, 0xf7, 0x6d, 0xca, 0xc1, 0x05, 0xe1, 0xae,
+ 0x12, 0xaf, 0xf7, 0x3a, 0x65, 0xe3, 0x82, 0x70, 0x6b, 0x89, 0xd7, 0xdb, 0xa4, 0xbc, 0x4c, 0x8b,
+ 0xf7, 0x97, 0x78, 0xc5, 0xdb, 0x1e, 0x43, 0xd3, 0xe2, 0x4d, 0x26, 0x5e, 0xf3, 0x3b, 0x1e, 0x57,
+ 0xd3, 0xe2, 0x9d, 0x26, 0x5e, 0xf3, 0x0d, 0x8f, 0xb5, 0x69, 0xf1, 0xac, 0x8c, 0xd7, 0xdc, 0xf2,
+ 0xf8, 0x9b, 0x16, 0x4f, 0xcd, 0x78, 0xcd, 0xaa, 0xc7, 0xe4, 0xb4, 0x78, 0x7e, 0xc6, 0x6b, 0x6e,
+ 0x7b, 0x9b, 0xe8, 0x1f, 0x09, 0xf4, 0x63, 0x6e, 0x41, 0x69, 0x02, 0xfd, 0xc0, 0x87, 0x7a, 0x42,
+ 0x21, 0x63, 0x74, 0x3c, 0xda, 0x69, 0x02, 0xed, 0xc0, 0x87, 0x72, 0x9a, 0x40, 0x39, 0xf0, 0xa1,
+ 0x9b, 0x26, 0xd0, 0x0d, 0x7c, 0xa8, 0xa6, 0x09, 0x54, 0x03, 0x1f, 0x9a, 0x69, 0x02, 0xcd, 0xc0,
+ 0x87, 0x62, 0x9a, 0x40, 0x31, 0xf0, 0xa1, 0x97, 0x26, 0xd0, 0x0b, 0x7c, 0xa8, 0x35, 0x2f, 0x52,
+ 0x0b, 0xfc, 0x68, 0x35, 0x2f, 0xd2, 0x0a, 0xfc, 0x28, 0xf5, 0xa2, 0x48, 0xa9, 0xf1, 0xde, 0xe9,
+ 0xdc, 0xa8, 0x35, 0xc4, 0xb0, 0x69, 0x5e, 0x64, 0x13, 0xf8, 0x31, 0x69, 0x5e, 0x64, 0x12, 0xf8,
+ 0xb1, 0x68, 0x5e, 0x64, 0x11, 0xf8, 0x31, 0xe8, 0x91, 0xc8, 0x20, 0xef, 0x8e, 0x8f, 0x26, 0x1c,
+ 0x29, 0x86, 0x31, 0x08, 0x47, 0x60, 0x10, 0x8e, 0xc0, 0x20, 0x1c, 0x81, 0x41, 0x38, 0x02, 0x83,
+ 0x70, 0x04, 0x06, 0xe1, 0x08, 0x0c, 0xc2, 0x11, 0x18, 0x84, 0xa3, 0x30, 0x08, 0x47, 0x62, 0x10,
+ 0x0e, 0x62, 0xd0, 0xbc, 0x78, 0xe3, 0x01, 0xfc, 0x0a, 0xd2, 0xbc, 0x78, 0xf4, 0x19, 0x4e, 0x21,
+ 0x1c, 0x89, 0x42, 0x38, 0x88, 0x42, 0x1f, 0x61, 0x78, 0x96, 0xa3, 0x10, 0x39, 0x1f, 0xba, 0xa8,
+ 0x0a, 0xb4, 0x16, 0xe1, 0x82, 0x85, 0x1f, 0xa7, 0xd6, 0x22, 0x1c, 0x52, 0x0f, 0xe2, 0x59, 0x7f,
+ 0x15, 0xaa, 0x44, 0xa8, 0x42, 0xb7, 0x28, 0x87, 0xd6, 0x22, 0x5c, 0xbc, 0xe8, 0xe7, 0xde, 0xfa,
+ 0xa0, 0x22, 0xf0, 0x7a, 0xa4, 0x22, 0xb0, 0x19, 0xa9, 0x08, 0xdc, 0xf6, 0x10, 0xfc, 0x99, 0x04,
+ 0xcf, 0x79, 0x08, 0x3a, 0x7f, 0xed, 0x3c, 0x38, 0xb2, 0x4a, 0x80, 0x77, 0x44, 0x25, 0xbb, 0xc7,
+ 0x36, 0x0c, 0x8c, 0xd2, 0x66, 0x43, 0xbe, 0xc3, 0x1f, 0x56, 0x15, 0x86, 0x3d, 0xc0, 0x61, 0x10,
+ 0x27, 0x9b, 0xa1, 0xf3, 0x80, 0x37, 0x1b, 0x5d, 0xbb, 0x5a, 0xf8, 0x2d, 0x5b, 0xaa, 0x59, 0x62,
+ 0xb9, 0x06, 0x63, 0xb6, 0x7a, 0xd7, 0x86, 0xf7, 0x3c, 0x0b, 0x97, 0x6b, 0x64, 0x26, 0xed, 0x11,
+ 0x82, 0x14, 0x47, 0xe5, 0x8b, 0x39, 0x32, 0x78, 0x25, 0xd2, 0x91, 0x01, 0x97, 0x20, 0xde, 0xf1,
+ 0xc1, 0x37, 0xfa, 0x4f, 0xaa, 0xd9, 0x2c, 0x11, 0x8f, 0x12, 0x7e, 0x0a, 0x53, 0xde, 0x13, 0xd8,
+ 0xdf, 0x6c, 0xab, 0xe1, 0xbb, 0x99, 0x7e, 0xa9, 0xb9, 0x2a, 0xec, 0xa2, 0x0d, 0x34, 0xa3, 0xd9,
+ 0xaa, 0x15, 0x60, 0xba, 0xda, 0xb6, 0x77, 0x00, 0xba, 0xad, 0xb6, 0xd1, 0xdd, 0xaa, 0x1f, 0x85,
+ 0x6d, 0x46, 0xc4, 0xad, 0xd6, 0xfc, 0xe4, 0x37, 0x73, 0x23, 0xda, 0xcb, 0x30, 0x79, 0xd7, 0xe8,
+ 0xe8, 0x7b, 0xed, 0x7d, 0xa3, 0xf5, 0x13, 0xbd, 0x21, 0x18, 0x8e, 0xbb, 0x86, 0x85, 0xd8, 0x63,
+ 0x4b, 0xfb, 0x97, 0x08, 0xae, 0xb0, 0xea, 0xdf, 0x6b, 0x99, 0xcd, 0x4d, 0xc3, 0xea, 0xe9, 0x5f,
+ 0x85, 0xb8, 0x4e, 0x80, 0xb3, 0xdf, 0x5d, 0x13, 0xee, 0x77, 0xa4, 0xaf, 0xfa, 0xa2, 0xfd, 0x6f,
+ 0x8d, 0x9a, 0x08, 0xbb, 0x20, 0xee, 0xb2, 0xb9, 0xe4, 0x35, 0x18, 0x75, 0xe6, 0xe7, 0xfd, 0xba,
+ 0x24, 0xf8, 0xf5, 0x3b, 0x1f, 0xbf, 0x6c, 0x1e, 0xc9, 0xb7, 0x39, 0xbf, 0x98, 0xcf, 0x55, 0x5f,
+ 0xf5, 0x45, 0x97, 0x7c, 0xc5, 0xb8, 0xd5, 0xff, 0xd9, 0x8c, 0x0a, 0x77, 0x32, 0x0d, 0xf1, 0x8a,
+ 0xa8, 0xe3, 0xef, 0x67, 0x19, 0x62, 0xd5, 0x76, 0x43, 0x97, 0x9f, 0x83, 0xd1, 0x37, 0xea, 0xbb,
+ 0xfa, 0x01, 0x09, 0xb2, 0xf3, 0x43, 0x5e, 0x80, 0x78, 0xa9, 0xd9, 0x3a, 0x68, 0x74, 0x74, 0x83,
+ 0x9c, 0xd9, 0x93, 0x2d, 0x74, 0xcb, 0xa6, 0x46, 0x65, 0x5a, 0x09, 0x2e, 0x57, 0xdb, 0x46, 0xf1,
+ 0x81, 0xc9, 0xd6, 0x8d, 0x45, 0x21, 0x45, 0xc8, 0x99, 0xcf, 0x1d, 0x2b, 0x1b, 0x2d, 0x85, 0xe2,
+ 0xe8, 0xc7, 0xa7, 0x73, 0x68, 0x87, 0xee, 0x9f, 0x6f, 0xc1, 0xf3, 0x24, 0x7d, 0xfa, 0xa6, 0xca,
+ 0x85, 0x4d, 0x35, 0x4e, 0xce, 0xa9, 0x99, 0xe9, 0x36, 0xad, 0xe9, 0x0c, 0xdf, 0xe9, 0x9e, 0xcc,
+ 0x33, 0xab, 0x29, 0x1a, 0xe8, 0x19, 0x1e, 0xca, 0x33, 0xdf, 0xe9, 0x16, 0xc3, 0xa6, 0x13, 0x3c,
+ 0x7b, 0x11, 0xc6, 0xa9, 0x8c, 0x61, 0x03, 0x9b, 0x29, 0xb9, 0x8c, 0x06, 0x13, 0x4c, 0xc2, 0xca,
+ 0xa3, 0x80, 0x36, 0x12, 0x23, 0xd6, 0x7f, 0xc5, 0x04, 0xb2, 0xfe, 0x2b, 0x25, 0xa4, 0xcc, 0x35,
+ 0x98, 0x16, 0xf6, 0x2f, 0x2d, 0x49, 0x39, 0x01, 0xd6, 0x7f, 0x95, 0xc4, 0x44, 0x32, 0xf6, 0xde,
+ 0x6f, 0xd5, 0x91, 0xcc, 0x2b, 0x20, 0xf7, 0xef, 0x74, 0xca, 0x63, 0x20, 0x6d, 0x58, 0x53, 0x3e,
+ 0x0f, 0x52, 0xb1, 0x98, 0x40, 0xc9, 0xe9, 0x9f, 0xff, 0x2a, 0x35, 0x51, 0xd4, 0x4d, 0x53, 0xef,
+ 0xdc, 0xd3, 0xcd, 0x62, 0x91, 0x18, 0xbf, 0x06, 0x57, 0x7c, 0x77, 0x4a, 0x2d, 0xfb, 0x52, 0xc9,
+ 0xb1, 0x2f, 0x97, 0xfb, 0xec, 0xcb, 0x65, 0xdb, 0x1e, 0x15, 0xdc, 0x13, 0xe7, 0x0d, 0xd9, 0x67,
+ 0x97, 0x51, 0x69, 0x30, 0x27, 0xdc, 0x1b, 0x85, 0xd7, 0x88, 0x6e, 0xd1, 0x57, 0x57, 0x0f, 0x39,
+ 0xb1, 0x2e, 0x16, 0x4a, 0xc4, 0xbe, 0xe4, 0x6b, 0x7f, 0x5f, 0x38, 0x56, 0xe5, 0xdf, 0x10, 0x64,
+ 0x92, 0x12, 0x75, 0xb8, 0xec, 0x3b, 0x49, 0x93, 0xb9, 0xec, 0x5e, 0xa6, 0x0e, 0x57, 0x7c, 0x75,
+ 0x5b, 0x21, 0x97, 0xbe, 0x2a, 0x85, 0x25, 0xf2, 0x92, 0xdf, 0x58, 0x96, 0xaf, 0xb8, 0x39, 0xca,
+ 0x55, 0x60, 0x12, 0x20, 0x57, 0xab, 0x50, 0x22, 0x06, 0xc5, 0x40, 0x83, 0xe0, 0x28, 0xb9, 0x96,
+ 0x85, 0xd7, 0xc9, 0x24, 0xa5, 0xc0, 0x49, 0x42, 0x42, 0xe5, 0x9a, 0x17, 0x77, 0x4e, 0xce, 0xd4,
+ 0x91, 0xc7, 0x67, 0xea, 0xc8, 0x3f, 0xcf, 0xd4, 0x91, 0x4f, 0xce, 0x54, 0xf4, 0xd9, 0x99, 0x8a,
+ 0x3e, 0x3f, 0x53, 0xd1, 0x17, 0x67, 0x2a, 0x7a, 0xa7, 0xa7, 0xa2, 0x0f, 0x7a, 0x2a, 0xfa, 0xb0,
+ 0xa7, 0xa2, 0x3f, 0xf5, 0x54, 0xf4, 0xa8, 0xa7, 0xa2, 0x93, 0x9e, 0x8a, 0x1e, 0xf7, 0x54, 0xf4,
+ 0x49, 0x4f, 0x45, 0x9f, 0xf5, 0xd4, 0x91, 0xcf, 0x7b, 0x2a, 0xfa, 0xa2, 0xa7, 0x8e, 0xbc, 0xf3,
+ 0xa9, 0x3a, 0xf2, 0xf0, 0x53, 0x75, 0xe4, 0x83, 0x4f, 0x55, 0xf4, 0xdf, 0x00, 0x00, 0x00, 0xff,
+ 0xff, 0x6f, 0x5f, 0xc5, 0x7d, 0x47, 0x36, 0x00, 0x00,
+}
+
func (this *NidOptNative) Compare(that interface{}) int {
if that == nil {
if this == nil {
@@ -8936,428 +9154,430 @@ func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_
func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 6731 bytes of a gzipped FileDescriptorSet
+ // 6764 bytes of a gzipped FileDescriptorSet
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x7b, 0x70, 0x24, 0x57,
- 0x79, 0xef, 0xf6, 0xf4, 0x48, 0x3b, 0xfa, 0xf4, 0x6a, 0xb5, 0x76, 0xb5, 0x63, 0x79, 0x2d, 0xed,
- 0x8e, 0xd7, 0x6b, 0x59, 0xb6, 0xb5, 0x5a, 0xad, 0xf6, 0x35, 0x8b, 0xed, 0x3b, 0xaf, 0x5d, 0x6b,
- 0x91, 0x46, 0xa2, 0x25, 0x61, 0x2f, 0xdc, 0x5b, 0x53, 0xbd, 0x33, 0x47, 0xd2, 0xd8, 0x33, 0xdd,
- 0xc3, 0x74, 0x8f, 0x6d, 0xb9, 0x6e, 0xdd, 0xf2, 0x85, 0x7b, 0x09, 0x24, 0x95, 0x27, 0x49, 0x05,
- 0x08, 0x18, 0x03, 0x05, 0x18, 0xf2, 0x82, 0x40, 0x08, 0x90, 0x54, 0xf0, 0x3f, 0x84, 0xcd, 0x3f,
- 0x29, 0x93, 0xbf, 0x52, 0x54, 0xca, 0x85, 0xd7, 0x54, 0x85, 0x24, 0x4e, 0x20, 0xc4, 0x55, 0xa1,
- 0xca, 0xfc, 0x91, 0x3a, 0xaf, 0xee, 0x3e, 0x67, 0x7a, 0xd4, 0x2d, 0xaf, 0x6d, 0xf8, 0x67, 0x77,
- 0xe6, 0x7c, 0xdf, 0xef, 0xeb, 0xef, 0x7c, 0xaf, 0xf3, 0xf5, 0x39, 0x47, 0x03, 0x3f, 0xbe, 0x08,
- 0xc7, 0xb6, 0x6d, 0x7b, 0xbb, 0x81, 0x4e, 0xb5, 0xda, 0xb6, 0x6b, 0x5f, 0xef, 0x6c, 0x9d, 0xaa,
- 0x21, 0xa7, 0xda, 0xae, 0xb7, 0x5c, 0xbb, 0x3d, 0x47, 0xc6, 0xf4, 0x51, 0xca, 0x31, 0xc7, 0x39,
- 0x32, 0x2b, 0x30, 0x76, 0xb9, 0xde, 0x40, 0x45, 0x8f, 0x71, 0x1d, 0xb9, 0xfa, 0x05, 0x48, 0x6e,
- 0xd5, 0x1b, 0x28, 0xad, 0x1c, 0x53, 0x67, 0x06, 0x17, 0x4e, 0xcc, 0x49, 0xa0, 0x39, 0x11, 0xb1,
- 0x86, 0x87, 0x0d, 0x82, 0xc8, 0xfc, 0x30, 0x09, 0xe3, 0x21, 0x54, 0x5d, 0x87, 0xa4, 0x65, 0x36,
- 0xb1, 0x44, 0x65, 0x66, 0xc0, 0x20, 0x9f, 0xf5, 0x34, 0x1c, 0x6c, 0x99, 0xd5, 0xc7, 0xcd, 0x6d,
- 0x94, 0x4e, 0x90, 0x61, 0xfe, 0x55, 0x9f, 0x02, 0xa8, 0xa1, 0x16, 0xb2, 0x6a, 0xc8, 0xaa, 0xee,
- 0xa6, 0xd5, 0x63, 0xea, 0xcc, 0x80, 0x11, 0x18, 0xd1, 0xef, 0x85, 0xb1, 0x56, 0xe7, 0x7a, 0xa3,
- 0x5e, 0xad, 0x04, 0xd8, 0xe0, 0x98, 0x3a, 0xd3, 0x67, 0x68, 0x94, 0x50, 0xf4, 0x99, 0xef, 0x86,
- 0xd1, 0x27, 0x91, 0xf9, 0x78, 0x90, 0x75, 0x90, 0xb0, 0x8e, 0xe0, 0xe1, 0x00, 0x63, 0x01, 0x86,
- 0x9a, 0xc8, 0x71, 0xcc, 0x6d, 0x54, 0x71, 0x77, 0x5b, 0x28, 0x9d, 0x24, 0xb3, 0x3f, 0xd6, 0x35,
- 0x7b, 0x79, 0xe6, 0x83, 0x0c, 0xb5, 0xb1, 0xdb, 0x42, 0x7a, 0x0e, 0x06, 0x90, 0xd5, 0x69, 0x52,
- 0x09, 0x7d, 0x3d, 0xec, 0x57, 0xb2, 0x3a, 0x4d, 0x59, 0x4a, 0x0a, 0xc3, 0x98, 0x88, 0x83, 0x0e,
- 0x6a, 0x3f, 0x51, 0xaf, 0xa2, 0x74, 0x3f, 0x11, 0x70, 0x77, 0x97, 0x80, 0x75, 0x4a, 0x97, 0x65,
- 0x70, 0x9c, 0x5e, 0x80, 0x01, 0xf4, 0x94, 0x8b, 0x2c, 0xa7, 0x6e, 0x5b, 0xe9, 0x83, 0x44, 0xc8,
- 0x5d, 0x21, 0x5e, 0x44, 0x8d, 0x9a, 0x2c, 0xc2, 0xc7, 0xe9, 0xe7, 0xe0, 0xa0, 0xdd, 0x72, 0xeb,
- 0xb6, 0xe5, 0xa4, 0x53, 0xc7, 0x94, 0x99, 0xc1, 0x85, 0xa3, 0xa1, 0x81, 0xb0, 0x4a, 0x79, 0x0c,
- 0xce, 0xac, 0x2f, 0x81, 0xe6, 0xd8, 0x9d, 0x76, 0x15, 0x55, 0xaa, 0x76, 0x0d, 0x55, 0xea, 0xd6,
- 0x96, 0x9d, 0x1e, 0x20, 0x02, 0xa6, 0xbb, 0x27, 0x42, 0x18, 0x0b, 0x76, 0x0d, 0x2d, 0x59, 0x5b,
- 0xb6, 0x31, 0xe2, 0x08, 0xdf, 0xf5, 0x09, 0xe8, 0x77, 0x76, 0x2d, 0xd7, 0x7c, 0x2a, 0x3d, 0x44,
- 0x22, 0x84, 0x7d, 0xcb, 0x7c, 0xb3, 0x1f, 0x46, 0xe3, 0x84, 0xd8, 0x25, 0xe8, 0xdb, 0xc2, 0xb3,
- 0x4c, 0x27, 0xf6, 0x63, 0x03, 0x8a, 0x11, 0x8d, 0xd8, 0xff, 0x06, 0x8d, 0x98, 0x83, 0x41, 0x0b,
- 0x39, 0x2e, 0xaa, 0xd1, 0x88, 0x50, 0x63, 0xc6, 0x14, 0x50, 0x50, 0x77, 0x48, 0x25, 0xdf, 0x50,
- 0x48, 0x3d, 0x0a, 0xa3, 0x9e, 0x4a, 0x95, 0xb6, 0x69, 0x6d, 0xf3, 0xd8, 0x3c, 0x15, 0xa5, 0xc9,
- 0x5c, 0x89, 0xe3, 0x0c, 0x0c, 0x33, 0x46, 0x90, 0xf0, 0x5d, 0x2f, 0x02, 0xd8, 0x16, 0xb2, 0xb7,
- 0x2a, 0x35, 0x54, 0x6d, 0xa4, 0x53, 0x3d, 0xac, 0xb4, 0x8a, 0x59, 0xba, 0xac, 0x64, 0xd3, 0xd1,
- 0x6a, 0x43, 0xbf, 0xe8, 0x87, 0xda, 0xc1, 0x1e, 0x91, 0xb2, 0x42, 0x93, 0xac, 0x2b, 0xda, 0x36,
- 0x61, 0xa4, 0x8d, 0x70, 0xdc, 0xa3, 0x1a, 0x9b, 0xd9, 0x00, 0x51, 0x62, 0x2e, 0x72, 0x66, 0x06,
- 0x83, 0xd1, 0x89, 0x0d, 0xb7, 0x83, 0x5f, 0xf5, 0x3b, 0xc1, 0x1b, 0xa8, 0x90, 0xb0, 0x02, 0x52,
- 0x85, 0x86, 0xf8, 0x60, 0xd9, 0x6c, 0xa2, 0xc9, 0xa7, 0x61, 0x44, 0x34, 0x8f, 0x7e, 0x08, 0xfa,
- 0x1c, 0xd7, 0x6c, 0xbb, 0x24, 0x0a, 0xfb, 0x0c, 0xfa, 0x45, 0xd7, 0x40, 0x45, 0x56, 0x8d, 0x54,
- 0xb9, 0x3e, 0x03, 0x7f, 0xd4, 0xff, 0x87, 0x3f, 0x61, 0x95, 0x4c, 0xf8, 0x64, 0xb7, 0x47, 0x05,
- 0xc9, 0xf2, 0xbc, 0x27, 0xcf, 0xc3, 0xb0, 0x30, 0x81, 0xb8, 0x8f, 0xce, 0xfc, 0x6f, 0x38, 0x1c,
- 0x2a, 0x5a, 0x7f, 0x14, 0x0e, 0x75, 0xac, 0xba, 0xe5, 0xa2, 0x76, 0xab, 0x8d, 0x70, 0xc4, 0xd2,
- 0x47, 0xa5, 0xff, 0xe9, 0x60, 0x8f, 0x98, 0xdb, 0x0c, 0x72, 0x53, 0x29, 0xc6, 0x78, 0xa7, 0x7b,
- 0x70, 0x76, 0x20, 0xf5, 0xa3, 0x83, 0xda, 0x33, 0xcf, 0x3c, 0xf3, 0x4c, 0x22, 0xf3, 0xd1, 0x7e,
- 0x38, 0x14, 0x96, 0x33, 0xa1, 0xe9, 0x3b, 0x01, 0xfd, 0x56, 0xa7, 0x79, 0x1d, 0xb5, 0x89, 0x91,
- 0xfa, 0x0c, 0xf6, 0x4d, 0xcf, 0x41, 0x5f, 0xc3, 0xbc, 0x8e, 0x1a, 0xe9, 0xe4, 0x31, 0x65, 0x66,
- 0x64, 0xe1, 0xde, 0x58, 0x59, 0x39, 0xb7, 0x8c, 0x21, 0x06, 0x45, 0xea, 0x0f, 0x42, 0x92, 0x95,
- 0x68, 0x2c, 0x61, 0x36, 0x9e, 0x04, 0x9c, 0x4b, 0x06, 0xc1, 0xe9, 0xb7, 0xc3, 0x00, 0xfe, 0x9f,
- 0xc6, 0x46, 0x3f, 0xd1, 0x39, 0x85, 0x07, 0x70, 0x5c, 0xe8, 0x93, 0x90, 0x22, 0x69, 0x52, 0x43,
- 0x7c, 0x69, 0xf3, 0xbe, 0xe3, 0xc0, 0xaa, 0xa1, 0x2d, 0xb3, 0xd3, 0x70, 0x2b, 0x4f, 0x98, 0x8d,
- 0x0e, 0x22, 0x01, 0x3f, 0x60, 0x0c, 0xb1, 0xc1, 0x77, 0xe3, 0x31, 0x7d, 0x1a, 0x06, 0x69, 0x56,
- 0xd5, 0xad, 0x1a, 0x7a, 0x8a, 0x54, 0xcf, 0x3e, 0x83, 0x26, 0xda, 0x12, 0x1e, 0xc1, 0x8f, 0x7f,
- 0xcc, 0xb1, 0x2d, 0x1e, 0x9a, 0xe4, 0x11, 0x78, 0x80, 0x3c, 0xfe, 0xbc, 0x5c, 0xb8, 0xef, 0x08,
- 0x9f, 0x9e, 0x1c, 0x53, 0x99, 0xaf, 0x27, 0x20, 0x49, 0xea, 0xc5, 0x28, 0x0c, 0x6e, 0x5c, 0x5b,
- 0x2b, 0x55, 0x8a, 0xab, 0x9b, 0xf9, 0xe5, 0x92, 0xa6, 0xe8, 0x23, 0x00, 0x64, 0xe0, 0xf2, 0xf2,
- 0x6a, 0x6e, 0x43, 0x4b, 0x78, 0xdf, 0x97, 0xca, 0x1b, 0xe7, 0x16, 0x35, 0xd5, 0x03, 0x6c, 0xd2,
- 0x81, 0x64, 0x90, 0xe1, 0xcc, 0x82, 0xd6, 0xa7, 0x6b, 0x30, 0x44, 0x05, 0x2c, 0x3d, 0x5a, 0x2a,
- 0x9e, 0x5b, 0xd4, 0xfa, 0xc5, 0x91, 0x33, 0x0b, 0xda, 0x41, 0x7d, 0x18, 0x06, 0xc8, 0x48, 0x7e,
- 0x75, 0x75, 0x59, 0x4b, 0x79, 0x32, 0xd7, 0x37, 0x8c, 0xa5, 0xf2, 0x15, 0x6d, 0xc0, 0x93, 0x79,
- 0xc5, 0x58, 0xdd, 0x5c, 0xd3, 0xc0, 0x93, 0xb0, 0x52, 0x5a, 0x5f, 0xcf, 0x5d, 0x29, 0x69, 0x83,
- 0x1e, 0x47, 0xfe, 0xda, 0x46, 0x69, 0x5d, 0x1b, 0x12, 0xd4, 0x3a, 0xb3, 0xa0, 0x0d, 0x7b, 0x8f,
- 0x28, 0x95, 0x37, 0x57, 0xb4, 0x11, 0x7d, 0x0c, 0x86, 0xe9, 0x23, 0xb8, 0x12, 0xa3, 0xd2, 0xd0,
- 0xb9, 0x45, 0x4d, 0xf3, 0x15, 0xa1, 0x52, 0xc6, 0x84, 0x81, 0x73, 0x8b, 0x9a, 0x9e, 0x29, 0x40,
- 0x1f, 0x89, 0x2e, 0x5d, 0x87, 0x91, 0xe5, 0x5c, 0xbe, 0xb4, 0x5c, 0x59, 0x5d, 0xdb, 0x58, 0x5a,
- 0x2d, 0xe7, 0x96, 0x35, 0xc5, 0x1f, 0x33, 0x4a, 0xef, 0xda, 0x5c, 0x32, 0x4a, 0x45, 0x2d, 0x11,
- 0x1c, 0x5b, 0x2b, 0xe5, 0x36, 0x4a, 0x45, 0x4d, 0xcd, 0x54, 0xe1, 0x50, 0x58, 0x9d, 0x0c, 0xcd,
- 0x8c, 0x80, 0x8b, 0x13, 0x3d, 0x5c, 0x4c, 0x64, 0x75, 0xb9, 0xf8, 0x95, 0x04, 0x8c, 0x87, 0xac,
- 0x15, 0xa1, 0x0f, 0x79, 0x08, 0xfa, 0x68, 0x88, 0xd2, 0xd5, 0xf3, 0x9e, 0xd0, 0x45, 0x87, 0x04,
- 0x6c, 0xd7, 0x0a, 0x4a, 0x70, 0xc1, 0x0e, 0x42, 0xed, 0xd1, 0x41, 0x60, 0x11, 0x5d, 0x35, 0xfd,
- 0x7f, 0x75, 0xd5, 0x74, 0xba, 0xec, 0x9d, 0x8b, 0xb3, 0xec, 0x91, 0xb1, 0xfd, 0xd5, 0xf6, 0xbe,
- 0x90, 0xda, 0x7e, 0x09, 0xc6, 0xba, 0x04, 0xc5, 0xae, 0xb1, 0x1f, 0x50, 0x20, 0xdd, 0xcb, 0x38,
- 0x11, 0x95, 0x2e, 0x21, 0x54, 0xba, 0x4b, 0xb2, 0x05, 0x8f, 0xf7, 0x76, 0x42, 0x97, 0xaf, 0xbf,
- 0xa0, 0xc0, 0x44, 0x78, 0xa7, 0x18, 0xaa, 0xc3, 0x83, 0xd0, 0xdf, 0x44, 0xee, 0x8e, 0xcd, 0xbb,
- 0xa5, 0x93, 0x21, 0x6b, 0x30, 0x26, 0xcb, 0xce, 0x66, 0xa8, 0xe0, 0x22, 0xae, 0xf6, 0x6a, 0xf7,
- 0xa8, 0x36, 0x5d, 0x9a, 0x7e, 0x38, 0x01, 0x87, 0x43, 0x85, 0x87, 0x2a, 0x7a, 0x07, 0x40, 0xdd,
- 0x6a, 0x75, 0x5c, 0xda, 0x11, 0xd1, 0x02, 0x3b, 0x40, 0x46, 0x48, 0xf1, 0xc2, 0xc5, 0xb3, 0xe3,
- 0x7a, 0x74, 0x95, 0xd0, 0x81, 0x0e, 0x11, 0x86, 0x0b, 0xbe, 0xa2, 0x49, 0xa2, 0xe8, 0x54, 0x8f,
- 0x99, 0x76, 0x05, 0xe6, 0x3c, 0x68, 0xd5, 0x46, 0x1d, 0x59, 0x6e, 0xc5, 0x71, 0xdb, 0xc8, 0x6c,
- 0xd6, 0xad, 0x6d, 0xb2, 0x82, 0xa4, 0xb2, 0x7d, 0x5b, 0x66, 0xc3, 0x41, 0xc6, 0x28, 0x25, 0xaf,
- 0x73, 0x2a, 0x46, 0x90, 0x00, 0x6a, 0x07, 0x10, 0xfd, 0x02, 0x82, 0x92, 0x3d, 0x44, 0xe6, 0xab,
- 0x29, 0x18, 0x0c, 0xf4, 0xd5, 0xfa, 0x71, 0x18, 0x7a, 0xcc, 0x7c, 0xc2, 0xac, 0xf0, 0x77, 0x25,
- 0x6a, 0x89, 0x41, 0x3c, 0xb6, 0xc6, 0xde, 0x97, 0xe6, 0xe1, 0x10, 0x61, 0xb1, 0x3b, 0x2e, 0x6a,
- 0x57, 0xaa, 0x0d, 0xd3, 0x71, 0x88, 0xd1, 0x52, 0x84, 0x55, 0xc7, 0xb4, 0x55, 0x4c, 0x2a, 0x70,
- 0x8a, 0x7e, 0x16, 0xc6, 0x09, 0xa2, 0xd9, 0x69, 0xb8, 0xf5, 0x56, 0x03, 0x55, 0xf0, 0xdb, 0x9b,
- 0x43, 0x56, 0x12, 0x4f, 0xb3, 0x31, 0xcc, 0xb1, 0xc2, 0x18, 0xb0, 0x46, 0x8e, 0x5e, 0x84, 0x3b,
- 0x08, 0x6c, 0x1b, 0x59, 0xa8, 0x6d, 0xba, 0xa8, 0x82, 0xde, 0xd7, 0x31, 0x1b, 0x4e, 0xc5, 0xb4,
- 0x6a, 0x95, 0x1d, 0xd3, 0xd9, 0x49, 0x1f, 0xc2, 0x02, 0xf2, 0x89, 0xb4, 0x62, 0xdc, 0x86, 0x19,
- 0xaf, 0x30, 0xbe, 0x12, 0x61, 0xcb, 0x59, 0xb5, 0x87, 0x4d, 0x67, 0x47, 0xcf, 0xc2, 0x04, 0x91,
- 0xe2, 0xb8, 0xed, 0xba, 0xb5, 0x5d, 0xa9, 0xee, 0xa0, 0xea, 0xe3, 0x95, 0x8e, 0xbb, 0x75, 0x21,
- 0x7d, 0x7b, 0xf0, 0xf9, 0x44, 0xc3, 0x75, 0xc2, 0x53, 0xc0, 0x2c, 0x9b, 0xee, 0xd6, 0x05, 0x7d,
- 0x1d, 0x86, 0xb0, 0x33, 0x9a, 0xf5, 0xa7, 0x51, 0x65, 0xcb, 0x6e, 0x93, 0xa5, 0x71, 0x24, 0xa4,
- 0x34, 0x05, 0x2c, 0x38, 0xb7, 0xca, 0x00, 0x2b, 0x76, 0x0d, 0x65, 0xfb, 0xd6, 0xd7, 0x4a, 0xa5,
- 0xa2, 0x31, 0xc8, 0xa5, 0x5c, 0xb6, 0xdb, 0x38, 0xa0, 0xb6, 0x6d, 0xcf, 0xc0, 0x83, 0x34, 0xa0,
- 0xb6, 0x6d, 0x6e, 0xde, 0xb3, 0x30, 0x5e, 0xad, 0xd2, 0x39, 0xd7, 0xab, 0x15, 0xf6, 0x8e, 0xe5,
- 0xa4, 0x35, 0xc1, 0x58, 0xd5, 0xea, 0x15, 0xca, 0xc0, 0x62, 0xdc, 0xd1, 0x2f, 0xc2, 0x61, 0xdf,
- 0x58, 0x41, 0xe0, 0x58, 0xd7, 0x2c, 0x65, 0xe8, 0x59, 0x18, 0x6f, 0xed, 0x76, 0x03, 0x75, 0xe1,
- 0x89, 0xad, 0x5d, 0x19, 0x76, 0x1e, 0x0e, 0xb5, 0x76, 0x5a, 0xdd, 0xb8, 0xd9, 0x20, 0x4e, 0x6f,
- 0xed, 0xb4, 0x64, 0xe0, 0x5d, 0xe4, 0x85, 0xbb, 0x8d, 0xaa, 0xa6, 0x8b, 0x6a, 0xe9, 0x23, 0x41,
- 0xf6, 0x00, 0x41, 0x3f, 0x05, 0x5a, 0xb5, 0x5a, 0x41, 0x96, 0x79, 0xbd, 0x81, 0x2a, 0x66, 0x1b,
- 0x59, 0xa6, 0x93, 0x9e, 0x0e, 0x32, 0x8f, 0x54, 0xab, 0x25, 0x42, 0xcd, 0x11, 0xa2, 0x3e, 0x0b,
- 0x63, 0xf6, 0xf5, 0xc7, 0xaa, 0x34, 0x24, 0x2b, 0xad, 0x36, 0xda, 0xaa, 0x3f, 0x95, 0x3e, 0x41,
- 0xec, 0x3b, 0x8a, 0x09, 0x24, 0x20, 0xd7, 0xc8, 0xb0, 0x7e, 0x0f, 0x68, 0x55, 0x67, 0xc7, 0x6c,
- 0xb7, 0x48, 0x4d, 0x76, 0x5a, 0x66, 0x15, 0xa5, 0xef, 0xa2, 0xac, 0x74, 0xbc, 0xcc, 0x87, 0x71,
- 0x4a, 0x38, 0x4f, 0xd6, 0xb7, 0x5c, 0x2e, 0xf1, 0x6e, 0x9a, 0x12, 0x64, 0x8c, 0x49, 0x9b, 0x01,
- 0x0d, 0x9b, 0x42, 0x78, 0xf0, 0x0c, 0x61, 0x1b, 0x69, 0xed, 0xb4, 0x82, 0xcf, 0xbd, 0x13, 0x86,
- 0x31, 0xa7, 0xff, 0xd0, 0x7b, 0x68, 0x43, 0xd6, 0xda, 0x09, 0x3c, 0xf1, 0x2d, 0xeb, 0x8d, 0x33,
- 0x59, 0x18, 0x0a, 0xc6, 0xa7, 0x3e, 0x00, 0x34, 0x42, 0x35, 0x05, 0x37, 0x2b, 0x85, 0xd5, 0x22,
- 0x6e, 0x33, 0xde, 0x53, 0xd2, 0x12, 0xb8, 0xdd, 0x59, 0x5e, 0xda, 0x28, 0x55, 0x8c, 0xcd, 0xf2,
- 0xc6, 0xd2, 0x4a, 0x49, 0x53, 0x83, 0x7d, 0xf5, 0x77, 0x12, 0x30, 0x22, 0xbe, 0x22, 0xe9, 0xef,
- 0x80, 0x23, 0x7c, 0x3f, 0xc3, 0x41, 0x6e, 0xe5, 0xc9, 0x7a, 0x9b, 0xa4, 0x4c, 0xd3, 0xa4, 0xcb,
- 0x97, 0xe7, 0xb4, 0x43, 0x8c, 0x6b, 0x1d, 0xb9, 0x8f, 0xd4, 0xdb, 0x38, 0x21, 0x9a, 0xa6, 0xab,
- 0x2f, 0xc3, 0xb4, 0x65, 0x57, 0x1c, 0xd7, 0xb4, 0x6a, 0x66, 0xbb, 0x56, 0xf1, 0x77, 0x92, 0x2a,
- 0x66, 0xb5, 0x8a, 0x1c, 0xc7, 0xa6, 0x4b, 0x95, 0x27, 0xe5, 0xa8, 0x65, 0xaf, 0x33, 0x66, 0xbf,
- 0x86, 0xe7, 0x18, 0xab, 0x14, 0x60, 0x6a, 0xaf, 0x00, 0xbb, 0x1d, 0x06, 0x9a, 0x66, 0xab, 0x82,
- 0x2c, 0xb7, 0xbd, 0x4b, 0x1a, 0xe3, 0x94, 0x91, 0x6a, 0x9a, 0xad, 0x12, 0xfe, 0xfe, 0xf6, 0xbc,
- 0x9f, 0xfc, 0xa3, 0x0a, 0x43, 0xc1, 0xe6, 0x18, 0xbf, 0x6b, 0x54, 0xc9, 0x3a, 0xa2, 0x90, 0x4a,
- 0x73, 0xe7, 0x9e, 0xad, 0xf4, 0x5c, 0x01, 0x2f, 0x30, 0xd9, 0x7e, 0xda, 0xb2, 0x1a, 0x14, 0x89,
- 0x17, 0x77, 0x5c, 0x5b, 0x10, 0x6d, 0x11, 0x52, 0x06, 0xfb, 0xa6, 0x5f, 0x81, 0xfe, 0xc7, 0x1c,
- 0x22, 0xbb, 0x9f, 0xc8, 0x3e, 0xb1, 0xb7, 0xec, 0xab, 0xeb, 0x44, 0xf8, 0xc0, 0xd5, 0xf5, 0x4a,
- 0x79, 0xd5, 0x58, 0xc9, 0x2d, 0x1b, 0x0c, 0xae, 0xdf, 0x06, 0xc9, 0x86, 0xf9, 0xf4, 0xae, 0xb8,
- 0x14, 0x91, 0xa1, 0xb8, 0x86, 0xbf, 0x0d, 0x92, 0x4f, 0x22, 0xf3, 0x71, 0x71, 0x01, 0x20, 0x43,
- 0x6f, 0x61, 0xe8, 0x9f, 0x82, 0x3e, 0x62, 0x2f, 0x1d, 0x80, 0x59, 0x4c, 0x3b, 0xa0, 0xa7, 0x20,
- 0x59, 0x58, 0x35, 0x70, 0xf8, 0x6b, 0x30, 0x44, 0x47, 0x2b, 0x6b, 0x4b, 0xa5, 0x42, 0x49, 0x4b,
- 0x64, 0xce, 0x42, 0x3f, 0x35, 0x02, 0x4e, 0x0d, 0xcf, 0x0c, 0xda, 0x01, 0xf6, 0x95, 0xc9, 0x50,
- 0x38, 0x75, 0x73, 0x25, 0x5f, 0x32, 0xb4, 0x44, 0xd0, 0xbd, 0x0e, 0x0c, 0x05, 0xfb, 0xe2, 0xb7,
- 0x27, 0xa6, 0xbe, 0xa5, 0xc0, 0x60, 0xa0, 0xcf, 0xc5, 0x0d, 0x8a, 0xd9, 0x68, 0xd8, 0x4f, 0x56,
- 0xcc, 0x46, 0xdd, 0x74, 0x58, 0x50, 0x00, 0x19, 0xca, 0xe1, 0x91, 0xb8, 0x4e, 0x7b, 0x5b, 0x94,
- 0x7f, 0x56, 0x01, 0x4d, 0x6e, 0x31, 0x25, 0x05, 0x95, 0x5f, 0xa8, 0x82, 0x9f, 0x50, 0x60, 0x44,
- 0xec, 0x2b, 0x25, 0xf5, 0x8e, 0xff, 0x42, 0xd5, 0xfb, 0x41, 0x02, 0x86, 0x85, 0x6e, 0x32, 0xae,
- 0x76, 0xef, 0x83, 0xb1, 0x7a, 0x0d, 0x35, 0x5b, 0xb6, 0x8b, 0xac, 0xea, 0x6e, 0xa5, 0x81, 0x9e,
- 0x40, 0x8d, 0x74, 0x86, 0x14, 0x8a, 0x53, 0x7b, 0xf7, 0xab, 0x73, 0x4b, 0x3e, 0x6e, 0x19, 0xc3,
- 0xb2, 0xe3, 0x4b, 0xc5, 0xd2, 0xca, 0xda, 0xea, 0x46, 0xa9, 0x5c, 0xb8, 0x56, 0xd9, 0x2c, 0xbf,
- 0xb3, 0xbc, 0xfa, 0x48, 0xd9, 0xd0, 0xea, 0x12, 0xdb, 0x5b, 0x98, 0xea, 0x6b, 0xa0, 0xc9, 0x4a,
- 0xe9, 0x47, 0x20, 0x4c, 0x2d, 0xed, 0x80, 0x3e, 0x0e, 0xa3, 0xe5, 0xd5, 0xca, 0xfa, 0x52, 0xb1,
- 0x54, 0x29, 0x5d, 0xbe, 0x5c, 0x2a, 0x6c, 0xac, 0xd3, 0x1d, 0x08, 0x8f, 0x7b, 0x43, 0x4c, 0xea,
- 0x8f, 0xab, 0x30, 0x1e, 0xa2, 0x89, 0x9e, 0x63, 0xef, 0x0e, 0xf4, 0x75, 0xe6, 0xfe, 0x38, 0xda,
- 0xcf, 0xe1, 0x25, 0x7f, 0xcd, 0x6c, 0xbb, 0xec, 0x55, 0xe3, 0x1e, 0xc0, 0x56, 0xb2, 0xdc, 0xfa,
- 0x56, 0x1d, 0xb5, 0xd9, 0x86, 0x0d, 0x7d, 0xa1, 0x18, 0xf5, 0xc7, 0xe9, 0x9e, 0xcd, 0x7d, 0xa0,
- 0xb7, 0x6c, 0xa7, 0xee, 0xd6, 0x9f, 0x40, 0x95, 0xba, 0xc5, 0x77, 0x77, 0xf0, 0x0b, 0x46, 0xd2,
- 0xd0, 0x38, 0x65, 0xc9, 0x72, 0x3d, 0x6e, 0x0b, 0x6d, 0x9b, 0x12, 0x37, 0x2e, 0xe0, 0xaa, 0xa1,
- 0x71, 0x8a, 0xc7, 0x7d, 0x1c, 0x86, 0x6a, 0x76, 0x07, 0x77, 0x5d, 0x94, 0x0f, 0xaf, 0x17, 0x8a,
- 0x31, 0x48, 0xc7, 0x3c, 0x16, 0xd6, 0x4f, 0xfb, 0xdb, 0x4a, 0x43, 0xc6, 0x20, 0x1d, 0xa3, 0x2c,
- 0x77, 0xc3, 0xa8, 0xb9, 0xbd, 0xdd, 0xc6, 0xc2, 0xb9, 0x20, 0xfa, 0x86, 0x30, 0xe2, 0x0d, 0x13,
- 0xc6, 0xc9, 0xab, 0x90, 0xe2, 0x76, 0xc0, 0x4b, 0x32, 0xb6, 0x44, 0xa5, 0x45, 0x5f, 0x7b, 0x13,
- 0x33, 0x03, 0x46, 0xca, 0xe2, 0xc4, 0xe3, 0x30, 0x54, 0x77, 0x2a, 0xfe, 0x2e, 0x79, 0xe2, 0x58,
- 0x62, 0x26, 0x65, 0x0c, 0xd6, 0x1d, 0x6f, 0x87, 0x31, 0xf3, 0x85, 0x04, 0x8c, 0x88, 0xbb, 0xfc,
- 0x7a, 0x11, 0x52, 0x0d, 0xbb, 0x6a, 0x92, 0xd0, 0xa2, 0x47, 0x4c, 0x33, 0x11, 0x07, 0x03, 0x73,
- 0xcb, 0x8c, 0xdf, 0xf0, 0x90, 0x93, 0x7f, 0xa7, 0x40, 0x8a, 0x0f, 0xeb, 0x13, 0x90, 0x6c, 0x99,
- 0xee, 0x0e, 0x11, 0xd7, 0x97, 0x4f, 0x68, 0x8a, 0x41, 0xbe, 0xe3, 0x71, 0xa7, 0x65, 0x5a, 0x24,
- 0x04, 0xd8, 0x38, 0xfe, 0x8e, 0xfd, 0xda, 0x40, 0x66, 0x8d, 0xbc, 0x7e, 0xd8, 0xcd, 0x26, 0xb2,
- 0x5c, 0x87, 0xfb, 0x95, 0x8d, 0x17, 0xd8, 0xb0, 0x7e, 0x2f, 0x8c, 0xb9, 0x6d, 0xb3, 0xde, 0x10,
- 0x78, 0x93, 0x84, 0x57, 0xe3, 0x04, 0x8f, 0x39, 0x0b, 0xb7, 0x71, 0xb9, 0x35, 0xe4, 0x9a, 0xd5,
- 0x1d, 0x54, 0xf3, 0x41, 0xfd, 0x64, 0x9b, 0xe1, 0x08, 0x63, 0x28, 0x32, 0x3a, 0xc7, 0x66, 0xbe,
- 0xa7, 0xc0, 0x18, 0x7f, 0x61, 0xaa, 0x79, 0xc6, 0x5a, 0x01, 0x30, 0x2d, 0xcb, 0x76, 0x83, 0xe6,
- 0xea, 0x0e, 0xe5, 0x2e, 0xdc, 0x5c, 0xce, 0x03, 0x19, 0x01, 0x01, 0x93, 0x4d, 0x00, 0x9f, 0xd2,
- 0xd3, 0x6c, 0xd3, 0x30, 0xc8, 0x8e, 0x70, 0xc8, 0x39, 0x20, 0x7d, 0xc5, 0x06, 0x3a, 0x84, 0xdf,
- 0xac, 0xf4, 0x43, 0xd0, 0x77, 0x1d, 0x6d, 0xd7, 0x2d, 0xb6, 0x31, 0x4b, 0xbf, 0xf0, 0x8d, 0x90,
- 0xa4, 0xb7, 0x11, 0x92, 0x7f, 0x2f, 0x8c, 0x57, 0xed, 0xa6, 0xac, 0x6e, 0x5e, 0x93, 0x5e, 0xf3,
- 0x9d, 0x87, 0x95, 0xf7, 0x80, 0xdf, 0x62, 0xfe, 0x4c, 0x51, 0x3e, 0x93, 0x50, 0xaf, 0xac, 0xe5,
- 0xbf, 0x94, 0x98, 0xbc, 0x42, 0xa1, 0x6b, 0x7c, 0xa6, 0x06, 0xda, 0x6a, 0xa0, 0x2a, 0xd6, 0x1e,
- 0x3e, 0x7f, 0x2f, 0xdc, 0xbf, 0x5d, 0x77, 0x77, 0x3a, 0xd7, 0xe7, 0xaa, 0x76, 0xf3, 0xd4, 0xb6,
- 0xbd, 0x6d, 0xfb, 0x47, 0x9f, 0xf8, 0x1b, 0xf9, 0x42, 0x3e, 0xb1, 0xe3, 0xcf, 0x01, 0x6f, 0x74,
- 0x32, 0xf2, 0xac, 0x34, 0x5b, 0x86, 0x71, 0xc6, 0x5c, 0x21, 0xe7, 0x2f, 0xf4, 0x2d, 0x42, 0xdf,
- 0x73, 0x0f, 0x2b, 0xfd, 0x95, 0x1f, 0x92, 0xe5, 0xda, 0x18, 0x63, 0x50, 0x4c, 0xa3, 0x2f, 0x1a,
- 0x59, 0x03, 0x0e, 0x0b, 0xf2, 0x68, 0x6a, 0xa2, 0x76, 0x84, 0xc4, 0xef, 0x30, 0x89, 0xe3, 0x01,
- 0x89, 0xeb, 0x0c, 0x9a, 0x2d, 0xc0, 0xf0, 0x7e, 0x64, 0xfd, 0x0d, 0x93, 0x35, 0x84, 0x82, 0x42,
- 0xae, 0xc0, 0x28, 0x11, 0x52, 0xed, 0x38, 0xae, 0xdd, 0x24, 0x75, 0x6f, 0x6f, 0x31, 0xdf, 0xfd,
- 0x21, 0xcd, 0x95, 0x11, 0x0c, 0x2b, 0x78, 0xa8, 0x6c, 0x16, 0xc8, 0x91, 0x53, 0x0d, 0x55, 0x1b,
- 0x11, 0x12, 0x6e, 0x30, 0x45, 0x3c, 0xfe, 0xec, 0xbb, 0xe1, 0x10, 0xfe, 0x4c, 0xca, 0x52, 0x50,
- 0x93, 0xe8, 0x0d, 0xaf, 0xf4, 0xf7, 0x3e, 0x40, 0xd3, 0x71, 0xdc, 0x13, 0x10, 0xd0, 0x29, 0xe0,
- 0xc5, 0x6d, 0xe4, 0xba, 0xa8, 0xed, 0x54, 0xcc, 0x46, 0x98, 0x7a, 0x81, 0x1d, 0x83, 0xf4, 0xc7,
- 0x5e, 0x15, 0xbd, 0x78, 0x85, 0x22, 0x73, 0x8d, 0x46, 0x76, 0x13, 0x8e, 0x84, 0x44, 0x45, 0x0c,
- 0x99, 0x1f, 0x67, 0x32, 0x0f, 0x75, 0x45, 0x06, 0x16, 0xbb, 0x06, 0x7c, 0xdc, 0xf3, 0x65, 0x0c,
- 0x99, 0x7f, 0xc0, 0x64, 0xea, 0x0c, 0xcb, 0x5d, 0x8a, 0x25, 0x5e, 0x85, 0xb1, 0x27, 0x50, 0xfb,
- 0xba, 0xed, 0xb0, 0x5d, 0x9a, 0x18, 0xe2, 0x3e, 0xc1, 0xc4, 0x8d, 0x32, 0x20, 0xd9, 0xb6, 0xc1,
- 0xb2, 0x2e, 0x42, 0x6a, 0xcb, 0xac, 0xa2, 0x18, 0x22, 0x3e, 0xc9, 0x44, 0x1c, 0xc4, 0xfc, 0x18,
- 0x9a, 0x83, 0xa1, 0x6d, 0x9b, 0xad, 0x4c, 0xd1, 0xf0, 0x67, 0x19, 0x7c, 0x90, 0x63, 0x98, 0x88,
- 0x96, 0xdd, 0xea, 0x34, 0xf0, 0xb2, 0x15, 0x2d, 0xe2, 0x53, 0x5c, 0x04, 0xc7, 0x30, 0x11, 0xfb,
- 0x30, 0xeb, 0x73, 0x5c, 0x84, 0x13, 0xb0, 0xe7, 0x43, 0x30, 0x68, 0x5b, 0x8d, 0x5d, 0xdb, 0x8a,
- 0xa3, 0xc4, 0xa7, 0x99, 0x04, 0x60, 0x10, 0x2c, 0xe0, 0x12, 0x0c, 0xc4, 0x75, 0xc4, 0xe7, 0x5e,
- 0xe5, 0xe9, 0xc1, 0x3d, 0x70, 0x05, 0x46, 0x79, 0x81, 0xaa, 0xdb, 0x56, 0x0c, 0x11, 0x9f, 0x67,
- 0x22, 0x46, 0x02, 0x30, 0x36, 0x0d, 0x17, 0x39, 0xee, 0x36, 0x8a, 0x23, 0xe4, 0x0b, 0x7c, 0x1a,
- 0x0c, 0xc2, 0x4c, 0x79, 0x1d, 0x59, 0xd5, 0x9d, 0x78, 0x12, 0x9e, 0xe7, 0xa6, 0xe4, 0x18, 0x2c,
- 0xa2, 0x00, 0xc3, 0x4d, 0xb3, 0xed, 0xec, 0x98, 0x8d, 0x58, 0xee, 0xf8, 0x22, 0x93, 0x31, 0xe4,
- 0x81, 0x98, 0x45, 0x3a, 0xd6, 0x7e, 0xc4, 0x7c, 0x89, 0x5b, 0x24, 0x00, 0x63, 0xa9, 0xe7, 0xb8,
- 0x64, 0x4b, 0x6b, 0x3f, 0xd2, 0xfe, 0x90, 0xa7, 0x1e, 0xc5, 0xae, 0x04, 0x25, 0x5e, 0x82, 0x01,
- 0xa7, 0xfe, 0x74, 0x2c, 0x31, 0x7f, 0xc4, 0x3d, 0x4d, 0x00, 0x18, 0x7c, 0x0d, 0x6e, 0x0b, 0x5d,
- 0x26, 0x62, 0x08, 0xfb, 0x63, 0x26, 0x6c, 0x22, 0x64, 0xa9, 0x60, 0x25, 0x61, 0xbf, 0x22, 0xff,
- 0x84, 0x97, 0x04, 0x24, 0xc9, 0x5a, 0xc3, 0xef, 0x0a, 0x8e, 0xb9, 0xb5, 0x3f, 0xab, 0xfd, 0x29,
- 0xb7, 0x1a, 0xc5, 0x0a, 0x56, 0xdb, 0x80, 0x09, 0x26, 0x71, 0x7f, 0x7e, 0xfd, 0x32, 0x2f, 0xac,
- 0x14, 0xbd, 0x29, 0x7a, 0xf7, 0xbd, 0x30, 0xe9, 0x99, 0x93, 0x37, 0xa5, 0x4e, 0xa5, 0x69, 0xb6,
- 0x62, 0x48, 0xfe, 0x0a, 0x93, 0xcc, 0x2b, 0xbe, 0xd7, 0xd5, 0x3a, 0x2b, 0x66, 0x0b, 0x0b, 0x7f,
- 0x14, 0xd2, 0x5c, 0x78, 0xc7, 0x6a, 0xa3, 0xaa, 0xbd, 0x6d, 0xd5, 0x9f, 0x46, 0xb5, 0x18, 0xa2,
- 0xff, 0x4c, 0x72, 0xd5, 0x66, 0x00, 0x8e, 0x25, 0x2f, 0x81, 0xe6, 0xf5, 0x2a, 0x95, 0x7a, 0xb3,
- 0x65, 0xb7, 0xdd, 0x08, 0x89, 0x5f, 0xe5, 0x9e, 0xf2, 0x70, 0x4b, 0x04, 0x96, 0x2d, 0xc1, 0x08,
- 0xf9, 0x1a, 0x37, 0x24, 0xbf, 0xc6, 0x04, 0x0d, 0xfb, 0x28, 0x56, 0x38, 0xaa, 0x76, 0xb3, 0x65,
- 0xb6, 0xe3, 0xd4, 0xbf, 0x3f, 0xe7, 0x85, 0x83, 0x41, 0x58, 0xe1, 0x70, 0x77, 0x5b, 0x08, 0xaf,
- 0xf6, 0x31, 0x24, 0x7c, 0x9d, 0x17, 0x0e, 0x8e, 0x61, 0x22, 0x78, 0xc3, 0x10, 0x43, 0xc4, 0x5f,
- 0x70, 0x11, 0x1c, 0x83, 0x45, 0xbc, 0xcb, 0x5f, 0x68, 0xdb, 0x68, 0xbb, 0xee, 0xb8, 0x6d, 0xda,
- 0x0a, 0xef, 0x2d, 0xea, 0x1b, 0xaf, 0x8a, 0x4d, 0x98, 0x11, 0x80, 0xe2, 0x4a, 0xc4, 0xb6, 0x50,
- 0xc9, 0x9b, 0x52, 0xb4, 0x62, 0xdf, 0xe4, 0x95, 0x28, 0x00, 0xc3, 0xba, 0x05, 0x3a, 0x44, 0x6c,
- 0xf6, 0x2a, 0x7e, 0x3f, 0x88, 0x21, 0xee, 0x5b, 0x92, 0x72, 0xeb, 0x1c, 0x8b, 0x65, 0x06, 0xfa,
- 0x9f, 0x8e, 0xf5, 0x38, 0xda, 0x8d, 0x15, 0x9d, 0x7f, 0x29, 0xf5, 0x3f, 0x9b, 0x14, 0x49, 0x6b,
- 0xc8, 0xa8, 0xd4, 0x4f, 0xe9, 0x51, 0x97, 0x75, 0xd2, 0xff, 0xf7, 0x35, 0x36, 0x5f, 0xb1, 0x9d,
- 0xca, 0x2e, 0xe3, 0x20, 0x17, 0x9b, 0x9e, 0x68, 0x61, 0x1f, 0x78, 0xcd, 0x8b, 0x73, 0xa1, 0xe7,
- 0xc9, 0x5e, 0x86, 0x61, 0xa1, 0xe1, 0x89, 0x16, 0xf5, 0xff, 0x98, 0xa8, 0xa1, 0x60, 0xbf, 0x93,
- 0x3d, 0x0b, 0x49, 0xdc, 0xbc, 0x44, 0xc3, 0xff, 0x3f, 0x83, 0x13, 0xf6, 0xec, 0x03, 0x90, 0xe2,
- 0x4d, 0x4b, 0x34, 0xf4, 0x83, 0x0c, 0xea, 0x41, 0x30, 0x9c, 0x37, 0x2c, 0xd1, 0xf0, 0x5f, 0xe1,
- 0x70, 0x0e, 0xc1, 0xf0, 0xf8, 0x26, 0x7c, 0xe1, 0xd7, 0x92, 0x6c, 0xd1, 0xe1, 0xb6, 0xbb, 0x04,
- 0x07, 0x59, 0xa7, 0x12, 0x8d, 0xfe, 0x30, 0x7b, 0x38, 0x47, 0x64, 0xcf, 0x43, 0x5f, 0x4c, 0x83,
- 0xff, 0x3a, 0x83, 0x52, 0xfe, 0x6c, 0x01, 0x06, 0x03, 0xdd, 0x49, 0x34, 0xfc, 0x37, 0x18, 0x3c,
- 0x88, 0xc2, 0xaa, 0xb3, 0xee, 0x24, 0x5a, 0xc0, 0x6f, 0x72, 0xd5, 0x19, 0x02, 0x9b, 0x8d, 0x37,
- 0x26, 0xd1, 0xe8, 0xdf, 0xe2, 0x56, 0xe7, 0x90, 0xec, 0x43, 0x30, 0xe0, 0x2d, 0x36, 0xd1, 0xf8,
- 0xdf, 0x66, 0x78, 0x1f, 0x83, 0x2d, 0x10, 0x58, 0xec, 0xa2, 0x45, 0xfc, 0x0e, 0xb7, 0x40, 0x00,
- 0x85, 0xd3, 0x48, 0x6e, 0x60, 0xa2, 0x25, 0x7d, 0x84, 0xa7, 0x91, 0xd4, 0xbf, 0x60, 0x6f, 0x92,
- 0x9a, 0x1f, 0x2d, 0xe2, 0x77, 0xb9, 0x37, 0x09, 0x3f, 0x56, 0x43, 0xee, 0x08, 0xa2, 0x65, 0xfc,
- 0x3e, 0x57, 0x43, 0x6a, 0x08, 0xb2, 0x6b, 0xa0, 0x77, 0x77, 0x03, 0xd1, 0xf2, 0x3e, 0xca, 0xe4,
- 0x8d, 0x75, 0x35, 0x03, 0xd9, 0x47, 0x60, 0x22, 0xbc, 0x13, 0x88, 0x96, 0xfa, 0xb1, 0xd7, 0xa4,
- 0x77, 0xb7, 0x60, 0x23, 0x90, 0xdd, 0xf0, 0x97, 0x94, 0x60, 0x17, 0x10, 0x2d, 0xf6, 0xe3, 0xaf,
- 0x89, 0x85, 0x3b, 0xd8, 0x04, 0x64, 0x73, 0x00, 0xfe, 0x02, 0x1c, 0x2d, 0xeb, 0x13, 0x4c, 0x56,
- 0x00, 0x84, 0x53, 0x83, 0xad, 0xbf, 0xd1, 0xf8, 0x4f, 0xf2, 0xd4, 0x60, 0x08, 0x9c, 0x1a, 0x7c,
- 0xe9, 0x8d, 0x46, 0x3f, 0xcb, 0x53, 0x83, 0x43, 0x70, 0x64, 0x07, 0x56, 0xb7, 0x68, 0x09, 0x9f,
- 0xe6, 0x91, 0x1d, 0x40, 0x65, 0xcb, 0x30, 0xd6, 0xb5, 0x20, 0x46, 0x8b, 0xfa, 0x0c, 0x13, 0xa5,
- 0xc9, 0xeb, 0x61, 0x70, 0xf1, 0x62, 0x8b, 0x61, 0xb4, 0xb4, 0xcf, 0x4a, 0x8b, 0x17, 0x5b, 0x0b,
- 0xb3, 0x97, 0x20, 0x65, 0x75, 0x1a, 0x0d, 0x9c, 0x3c, 0xfa, 0xde, 0x17, 0xec, 0xd2, 0xff, 0xfc,
- 0x3a, 0xb3, 0x0e, 0x07, 0x64, 0xcf, 0x42, 0x1f, 0x6a, 0x5e, 0x47, 0xb5, 0x28, 0xe4, 0xbf, 0xbc,
- 0xce, 0x0b, 0x26, 0xe6, 0xce, 0x3e, 0x04, 0x40, 0xb7, 0x46, 0xc8, 0xb1, 0x5f, 0x04, 0xf6, 0x5f,
- 0x5f, 0x67, 0x57, 0x5f, 0x7c, 0x88, 0x2f, 0x80, 0x5e, 0xa4, 0xd9, 0x5b, 0xc0, 0xab, 0xa2, 0x00,
- 0xe2, 0x91, 0x8b, 0x70, 0xf0, 0x31, 0xc7, 0xb6, 0x5c, 0x73, 0x3b, 0x0a, 0xfd, 0x6f, 0x0c, 0xcd,
- 0xf9, 0xb1, 0xc1, 0x9a, 0x76, 0x1b, 0xb9, 0xe6, 0xb6, 0x13, 0x85, 0xfd, 0x77, 0x86, 0xf5, 0x00,
- 0x18, 0x5c, 0x35, 0x1d, 0x37, 0xce, 0xbc, 0x7f, 0xcc, 0xc1, 0x1c, 0x80, 0x95, 0xc6, 0x9f, 0x1f,
- 0x47, 0xbb, 0x51, 0xd8, 0x9f, 0x70, 0xa5, 0x19, 0x7f, 0xf6, 0x01, 0x18, 0xc0, 0x1f, 0xe9, 0x7d,
- 0xb6, 0x08, 0xf0, 0x7f, 0x30, 0xb0, 0x8f, 0xc0, 0x4f, 0x76, 0xdc, 0x9a, 0x5b, 0x8f, 0x36, 0xf6,
- 0x4f, 0x99, 0xa7, 0x39, 0x7f, 0x36, 0x07, 0x83, 0x8e, 0x5b, 0xab, 0x75, 0x58, 0x7f, 0x1a, 0x01,
- 0xff, 0xcf, 0xd7, 0xbd, 0x2d, 0x0b, 0x0f, 0x83, 0xbd, 0xfd, 0xe4, 0xe3, 0x6e, 0xcb, 0x26, 0xc7,
- 0x1c, 0x51, 0x12, 0x5e, 0x63, 0x12, 0x02, 0x90, 0x7c, 0x29, 0x7c, 0xfb, 0x16, 0xae, 0xd8, 0x57,
- 0x6c, 0xba, 0x71, 0xfb, 0x9e, 0x4c, 0xf4, 0x0e, 0x2c, 0x7c, 0xb7, 0x01, 0xb7, 0x55, 0xed, 0xe6,
- 0x75, 0xdb, 0x39, 0x75, 0xdd, 0x76, 0x77, 0x4e, 0xb9, 0x3b, 0x08, 0x2f, 0xc0, 0x6c, 0x53, 0x36,
- 0x89, 0x3f, 0x4f, 0xee, 0x6f, 0x27, 0x97, 0x9c, 0xd3, 0x97, 0xeb, 0x58, 0xf9, 0x32, 0x39, 0x2a,
- 0xd1, 0x8f, 0x42, 0x3f, 0x99, 0xce, 0x69, 0x72, 0x1c, 0xa9, 0xe4, 0x93, 0x37, 0x5e, 0x9a, 0x3e,
- 0x60, 0xb0, 0x31, 0x8f, 0xba, 0x40, 0xf6, 0xb2, 0x13, 0x02, 0x75, 0xc1, 0xa3, 0x9e, 0xa1, 0xdb,
- 0xd9, 0x02, 0xf5, 0x8c, 0x47, 0x5d, 0x24, 0x1b, 0xdb, 0xaa, 0x40, 0x5d, 0xf4, 0xa8, 0x67, 0xc9,
- 0xe1, 0xcd, 0xb0, 0x40, 0x3d, 0xeb, 0x51, 0xcf, 0x91, 0x23, 0x9b, 0xa4, 0x40, 0x3d, 0xe7, 0x51,
- 0xcf, 0x93, 0xd3, 0x9a, 0x31, 0x81, 0x7a, 0xde, 0xa3, 0x5e, 0x20, 0xa7, 0x34, 0xba, 0x40, 0xbd,
- 0xe0, 0x51, 0x2f, 0x92, 0x2b, 0x50, 0x07, 0x05, 0xea, 0x45, 0x7d, 0x0a, 0x0e, 0xd2, 0x99, 0xcf,
- 0x93, 0x23, 0xfd, 0x51, 0x46, 0xe6, 0x83, 0x3e, 0xfd, 0x34, 0xb9, 0xee, 0xd4, 0x2f, 0xd2, 0x4f,
- 0xfb, 0xf4, 0x05, 0xf2, 0x97, 0x17, 0x9a, 0x48, 0x5f, 0xf0, 0xe9, 0x67, 0xd2, 0xc3, 0xe4, 0xca,
- 0x97, 0x40, 0x3f, 0xe3, 0xd3, 0x17, 0xd3, 0x23, 0x38, 0x27, 0x44, 0xfa, 0xa2, 0x4f, 0x3f, 0x9b,
- 0x1e, 0x3d, 0xa6, 0xcc, 0x0c, 0x89, 0xf4, 0xb3, 0x99, 0xf7, 0x13, 0xf7, 0x5a, 0xbe, 0x7b, 0x27,
- 0x44, 0xf7, 0x7a, 0x8e, 0x9d, 0x10, 0x1d, 0xeb, 0xb9, 0x74, 0x42, 0x74, 0xa9, 0xe7, 0xcc, 0x09,
- 0xd1, 0x99, 0x9e, 0x1b, 0x27, 0x44, 0x37, 0x7a, 0x0e, 0x9c, 0x10, 0x1d, 0xe8, 0xb9, 0x6e, 0x42,
- 0x74, 0x9d, 0xe7, 0xb4, 0x09, 0xd1, 0x69, 0x9e, 0xbb, 0x26, 0x44, 0x77, 0x79, 0x8e, 0x4a, 0x4b,
- 0x8e, 0xf2, 0x5d, 0x94, 0x96, 0x5c, 0xe4, 0x3b, 0x27, 0x2d, 0x39, 0xc7, 0x77, 0x4b, 0x5a, 0x72,
- 0x8b, 0xef, 0x90, 0xb4, 0xe4, 0x10, 0xdf, 0x15, 0x69, 0xc9, 0x15, 0xbe, 0x13, 0x58, 0x8e, 0x19,
- 0xa8, 0x15, 0x92, 0x63, 0xea, 0x9e, 0x39, 0xa6, 0xee, 0x99, 0x63, 0xea, 0x9e, 0x39, 0xa6, 0xee,
- 0x99, 0x63, 0xea, 0x9e, 0x39, 0xa6, 0xee, 0x99, 0x63, 0xea, 0x9e, 0x39, 0xa6, 0xee, 0x99, 0x63,
- 0xea, 0xde, 0x39, 0xa6, 0x46, 0xe4, 0x98, 0x1a, 0x91, 0x63, 0x6a, 0x44, 0x8e, 0xa9, 0x11, 0x39,
- 0xa6, 0x46, 0xe4, 0x98, 0xda, 0x33, 0xc7, 0x7c, 0xf7, 0x4e, 0x88, 0xee, 0x0d, 0xcd, 0x31, 0xb5,
- 0x47, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, 0x98,
- 0xda, 0x23, 0xc7, 0xd4, 0x1e, 0x39, 0xa6, 0xf6, 0xca, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0x3d, 0x73,
- 0x4c, 0xed, 0x99, 0x63, 0x6a, 0xcf, 0x1c, 0x53, 0x7b, 0xe6, 0x98, 0x1a, 0xcc, 0xb1, 0xbf, 0x52,
- 0x41, 0xa7, 0x39, 0xb6, 0x46, 0x2e, 0x85, 0x31, 0x57, 0x4c, 0x49, 0x99, 0xd6, 0x8f, 0x5d, 0xa7,
- 0xf9, 0x2e, 0x99, 0x92, 0x72, 0x4d, 0xa4, 0x2f, 0x78, 0x74, 0x9e, 0x6d, 0x22, 0xfd, 0x8c, 0x47,
- 0xe7, 0xf9, 0x26, 0xd2, 0x17, 0x3d, 0x3a, 0xcf, 0x38, 0x91, 0x7e, 0xd6, 0xa3, 0xf3, 0x9c, 0x13,
- 0xe9, 0xe7, 0x3c, 0x3a, 0xcf, 0x3a, 0x91, 0x7e, 0xde, 0xa3, 0xf3, 0xbc, 0x13, 0xe9, 0x17, 0x3c,
- 0x3a, 0xcf, 0x3c, 0x91, 0x7e, 0x51, 0x3f, 0x26, 0xe7, 0x1e, 0x67, 0xf0, 0x5c, 0x7b, 0x4c, 0xce,
- 0x3e, 0x89, 0xe3, 0xb4, 0xcf, 0xc1, 0xf3, 0x4f, 0xe2, 0x58, 0xf0, 0x39, 0x78, 0x06, 0x4a, 0x1c,
- 0x67, 0x32, 0x1f, 0x22, 0xee, 0xb3, 0x64, 0xf7, 0x4d, 0x4a, 0xee, 0x4b, 0x04, 0x5c, 0x37, 0x29,
- 0xb9, 0x2e, 0x11, 0x70, 0xdb, 0xa4, 0xe4, 0xb6, 0x44, 0xc0, 0x65, 0x93, 0x92, 0xcb, 0x12, 0x01,
- 0x77, 0x4d, 0x4a, 0xee, 0x4a, 0x04, 0x5c, 0x35, 0x29, 0xb9, 0x2a, 0x11, 0x70, 0xd3, 0xa4, 0xe4,
- 0xa6, 0x44, 0xc0, 0x45, 0x93, 0x92, 0x8b, 0x12, 0x01, 0xf7, 0x4c, 0x4a, 0xee, 0x49, 0x04, 0x5c,
- 0x73, 0x54, 0x76, 0x4d, 0x22, 0xe8, 0x96, 0xa3, 0xb2, 0x5b, 0x12, 0x41, 0x97, 0x1c, 0x95, 0x5d,
- 0x92, 0x08, 0xba, 0xe3, 0xa8, 0xec, 0x8e, 0x44, 0xd0, 0x15, 0x3f, 0x4f, 0xf0, 0x8e, 0x70, 0xdd,
- 0x6d, 0x77, 0xaa, 0xee, 0x2d, 0x75, 0x84, 0xf3, 0x42, 0xfb, 0x30, 0xb8, 0xa0, 0xcf, 0x91, 0x86,
- 0x35, 0xd8, 0x71, 0x4a, 0x2b, 0xd8, 0xbc, 0xd0, 0x58, 0x04, 0x10, 0x56, 0x38, 0x62, 0xf1, 0x96,
- 0x7a, 0xc3, 0x79, 0xa1, 0xcd, 0x88, 0xd6, 0xef, 0xc2, 0x5b, 0xde, 0xb1, 0xbd, 0x90, 0xe0, 0x1d,
- 0x1b, 0x33, 0xff, 0x7e, 0x3b, 0xb6, 0xd9, 0x68, 0x93, 0x7b, 0xc6, 0x9e, 0x8d, 0x36, 0x76, 0xd7,
- 0xaa, 0x13, 0xb7, 0x83, 0x9b, 0x8d, 0x36, 0xad, 0x67, 0xd4, 0x37, 0xb7, 0xdf, 0x62, 0x11, 0x6c,
- 0xa0, 0x56, 0x48, 0x04, 0xef, 0xb7, 0xdf, 0x9a, 0x17, 0x4a, 0xc9, 0x7e, 0x23, 0x58, 0xdd, 0x77,
- 0x04, 0xef, 0xb7, 0xf3, 0x9a, 0x17, 0xca, 0xcb, 0xbe, 0x23, 0xf8, 0x2d, 0xe8, 0x87, 0x58, 0x04,
- 0xfb, 0xe6, 0xdf, 0x6f, 0x3f, 0x34, 0x1b, 0x6d, 0xf2, 0xd0, 0x08, 0x56, 0xf7, 0x11, 0xc1, 0x71,
- 0xfa, 0xa3, 0xd9, 0x68, 0xd3, 0x86, 0x47, 0xf0, 0x2d, 0x77, 0x33, 0x9f, 0x52, 0x60, 0xac, 0x5c,
- 0xaf, 0x95, 0x9a, 0xd7, 0x51, 0xad, 0x86, 0x6a, 0xcc, 0x8e, 0xf3, 0x42, 0x25, 0xe8, 0xe1, 0xea,
- 0x17, 0x5f, 0x9a, 0xf6, 0x2d, 0x7c, 0x16, 0x52, 0xd4, 0xa6, 0xf3, 0xf3, 0xe9, 0x1b, 0x4a, 0x44,
- 0x85, 0xf3, 0x58, 0xf5, 0xe3, 0x1c, 0x76, 0x7a, 0x3e, 0xfd, 0xf7, 0x4a, 0xa0, 0xca, 0x79, 0xc3,
- 0x99, 0x8f, 0x10, 0x0d, 0xad, 0x5b, 0xd6, 0xf0, 0x54, 0x2c, 0x0d, 0x03, 0xba, 0xdd, 0xde, 0xa5,
- 0x5b, 0x40, 0xab, 0x0e, 0x8c, 0x96, 0xeb, 0xb5, 0x32, 0xf9, 0x9b, 0xff, 0x38, 0x2a, 0x51, 0x1e,
- 0xa9, 0x1e, 0xcc, 0x0b, 0x61, 0x19, 0x44, 0x78, 0x21, 0x2d, 0xd6, 0x88, 0x4c, 0x1d, 0x3f, 0xd6,
- 0x12, 0x1e, 0x3b, 0xdb, 0xeb, 0xb1, 0x7e, 0x65, 0xf7, 0x1e, 0x38, 0xdb, 0xeb, 0x81, 0x7e, 0x0e,
- 0x79, 0x8f, 0x7a, 0x8a, 0x2f, 0xce, 0xf4, 0x6a, 0x96, 0x7e, 0x14, 0x12, 0x4b, 0xf4, 0xe6, 0xf8,
- 0x50, 0x7e, 0x08, 0x2b, 0xf5, 0xfd, 0x97, 0xa6, 0x93, 0x9b, 0x9d, 0x7a, 0xcd, 0x48, 0x2c, 0xd5,
- 0xf4, 0xab, 0xd0, 0xf7, 0x6e, 0xf6, 0x97, 0xa7, 0x98, 0x61, 0x91, 0x31, 0xdc, 0xd7, 0x73, 0x8f,
- 0x08, 0x3f, 0xf8, 0x14, 0xdd, 0xa6, 0x9c, 0xdb, 0xac, 0x5b, 0xee, 0xe9, 0x85, 0x0b, 0x06, 0x15,
- 0x91, 0xf9, 0x9f, 0x00, 0xf4, 0x99, 0x45, 0xd3, 0xd9, 0xd1, 0xcb, 0x5c, 0x32, 0x7d, 0xf4, 0x85,
- 0xef, 0xbf, 0x34, 0xbd, 0x18, 0x47, 0xea, 0xfd, 0x35, 0xd3, 0xd9, 0xb9, 0xdf, 0xdd, 0x6d, 0xa1,
- 0xb9, 0xfc, 0xae, 0x8b, 0x1c, 0x2e, 0xbd, 0xc5, 0x57, 0x3d, 0x36, 0xaf, 0x74, 0x60, 0x5e, 0x29,
- 0x61, 0x4e, 0x97, 0xc5, 0x39, 0xcd, 0xbf, 0xd1, 0xf9, 0x3c, 0xc5, 0x17, 0x09, 0xc9, 0x92, 0x6a,
- 0x94, 0x25, 0xd5, 0x5b, 0xb5, 0x64, 0x8b, 0xd7, 0x47, 0x69, 0xae, 0xea, 0x5e, 0x73, 0x55, 0x6f,
- 0x65, 0xae, 0xff, 0x45, 0xb3, 0xd5, 0xcb, 0xa7, 0x4d, 0x8b, 0xde, 0x5a, 0xfd, 0xe5, 0xda, 0x0b,
- 0x7a, 0x53, 0xbb, 0x80, 0x6c, 0xf2, 0xc6, 0x73, 0xd3, 0x4a, 0xe6, 0x53, 0x09, 0x3e, 0x73, 0x9a,
- 0x48, 0x6f, 0x6c, 0xe6, 0xbf, 0x2c, 0x3d, 0xd5, 0x5b, 0x61, 0xa1, 0x67, 0x15, 0x98, 0xe8, 0xaa,
- 0xe4, 0xd4, 0x4c, 0x6f, 0x6e, 0x39, 0xb7, 0xf6, 0x5b, 0xce, 0x99, 0x82, 0x5f, 0x53, 0xe0, 0x90,
- 0x54, 0x5e, 0xa9, 0x7a, 0xa7, 0x24, 0xf5, 0x8e, 0x74, 0x3f, 0x89, 0x30, 0x06, 0xb4, 0x0b, 0xba,
- 0x57, 0x02, 0x04, 0x24, 0x7b, 0x7e, 0x5f, 0x94, 0xfc, 0x7e, 0xd4, 0x03, 0x84, 0x98, 0x8b, 0x47,
- 0x00, 0x53, 0xdb, 0x86, 0xe4, 0x46, 0x1b, 0x21, 0x7d, 0x0a, 0x12, 0xab, 0x6d, 0xa6, 0xe1, 0x08,
- 0xc5, 0xaf, 0xb6, 0xf3, 0x6d, 0xd3, 0xaa, 0xee, 0x18, 0x89, 0xd5, 0xb6, 0x7e, 0x1c, 0xd4, 0x1c,
- 0xfb, 0xab, 0xf7, 0xc1, 0x85, 0x51, 0xca, 0x90, 0xb3, 0x6a, 0x8c, 0x03, 0xd3, 0xf4, 0x29, 0x48,
- 0x2e, 0x23, 0x73, 0x8b, 0x29, 0x01, 0x94, 0x07, 0x8f, 0x18, 0x64, 0x9c, 0x3d, 0xf0, 0x51, 0x48,
- 0x71, 0xc1, 0xfa, 0x09, 0x8c, 0xd8, 0x72, 0xd9, 0x63, 0x19, 0x02, 0xab, 0xc3, 0x56, 0x2e, 0x42,
- 0xd5, 0x4f, 0x42, 0x9f, 0x51, 0xdf, 0xde, 0x71, 0xd9, 0xc3, 0xbb, 0xd9, 0x28, 0x39, 0x73, 0x0d,
- 0x06, 0x3c, 0x8d, 0xde, 0x64, 0xd1, 0x45, 0x3a, 0x35, 0x7d, 0x32, 0xb8, 0x9e, 0xf0, 0x7d, 0x4b,
- 0x3a, 0xa4, 0x1f, 0x83, 0xd4, 0xba, 0xdb, 0xf6, 0x8b, 0x3e, 0xef, 0x48, 0xbd, 0xd1, 0xcc, 0xfb,
- 0x15, 0x48, 0x15, 0x11, 0x6a, 0x11, 0x83, 0xdf, 0x05, 0xc9, 0xa2, 0xfd, 0xa4, 0xc5, 0x14, 0x1c,
- 0x63, 0x16, 0xc5, 0x64, 0x66, 0x53, 0x42, 0xd6, 0xef, 0x0a, 0xda, 0x7d, 0xdc, 0xb3, 0x7b, 0x80,
- 0x8f, 0xd8, 0x3e, 0x23, 0xd8, 0x9e, 0x39, 0x10, 0x33, 0x75, 0xd9, 0xff, 0x3c, 0x0c, 0x06, 0x9e,
- 0xa2, 0xcf, 0x30, 0x35, 0x12, 0x32, 0x30, 0x68, 0x2b, 0xcc, 0x91, 0x41, 0x30, 0x2c, 0x3c, 0x18,
- 0x43, 0x03, 0x26, 0xee, 0x01, 0x25, 0x66, 0x9e, 0x15, 0xcd, 0x1c, 0xce, 0xca, 0x4c, 0x3d, 0x4f,
- 0x6d, 0x44, 0xcc, 0x7d, 0x82, 0x06, 0x67, 0x6f, 0x27, 0xe2, 0xcf, 0x99, 0x3e, 0x50, 0xcb, 0xf5,
- 0x46, 0xe6, 0x01, 0x00, 0x9a, 0xf2, 0x25, 0xab, 0xd3, 0x94, 0xb2, 0x6e, 0x84, 0x1b, 0x78, 0x63,
- 0x07, 0x6d, 0x20, 0x87, 0xb0, 0x88, 0xfd, 0x14, 0x2e, 0x30, 0x40, 0x53, 0x8c, 0xe0, 0xef, 0x89,
- 0xc4, 0x87, 0x76, 0x62, 0x98, 0x35, 0x4d, 0x59, 0xaf, 0x21, 0x37, 0x67, 0xd9, 0xee, 0x0e, 0x6a,
- 0x4b, 0x88, 0x05, 0xfd, 0x8c, 0x90, 0xb0, 0x23, 0x0b, 0xb7, 0x7b, 0x88, 0x9e, 0xa0, 0x33, 0x99,
- 0x2f, 0x13, 0x05, 0x71, 0x2b, 0xd0, 0x35, 0x41, 0x35, 0xc6, 0x04, 0xf5, 0x73, 0x42, 0xff, 0xb6,
- 0x87, 0x9a, 0xd2, 0xab, 0xe5, 0x45, 0xe1, 0x3d, 0x67, 0x6f, 0x65, 0xc5, 0x77, 0x4c, 0x6e, 0x53,
- 0xae, 0xf2, 0x3d, 0x91, 0x2a, 0xf7, 0xe8, 0x6e, 0xf7, 0x6b, 0x53, 0x35, 0xae, 0x4d, 0xbf, 0xe5,
- 0x75, 0x1c, 0xf4, 0xa7, 0x45, 0xc8, 0x8f, 0xf2, 0xe8, 0xf7, 0x45, 0xfa, 0x3e, 0xab, 0x14, 0x3c,
- 0x55, 0x17, 0xe3, 0xba, 0x3f, 0x9b, 0xc8, 0xe7, 0x3d, 0x75, 0xcf, 0xef, 0x23, 0x04, 0xb2, 0x89,
- 0x42, 0xc1, 0x2b, 0xdb, 0xa9, 0x0f, 0x3d, 0x37, 0xad, 0x3c, 0xff, 0xdc, 0xf4, 0x81, 0xcc, 0x17,
- 0x15, 0x18, 0x63, 0x9c, 0x81, 0xc0, 0xbd, 0x5f, 0x52, 0xfe, 0x30, 0xaf, 0x19, 0x61, 0x16, 0x78,
- 0xdb, 0x82, 0xf7, 0x3b, 0x0a, 0xa4, 0xbb, 0x74, 0xe5, 0xf6, 0x9e, 0x8f, 0xa5, 0x72, 0x56, 0x29,
- 0xfd, 0xe2, 0x6d, 0x7e, 0x0d, 0xfa, 0x36, 0xea, 0x4d, 0xd4, 0xc6, 0x2b, 0x01, 0xfe, 0x40, 0x55,
- 0xe6, 0x87, 0x39, 0x74, 0x88, 0xd3, 0xa8, 0x72, 0x02, 0x6d, 0x41, 0x4f, 0x43, 0xb2, 0x68, 0xba,
- 0x26, 0xd1, 0x60, 0xc8, 0xab, 0xaf, 0xa6, 0x6b, 0x66, 0xce, 0xc0, 0xd0, 0xca, 0x2e, 0xb9, 0x6a,
- 0x54, 0x23, 0xb7, 0x4c, 0xc4, 0xee, 0x8f, 0xf7, 0xab, 0xa7, 0x67, 0xfb, 0x52, 0x35, 0xed, 0x86,
- 0x92, 0x4d, 0x12, 0x7d, 0x9e, 0x80, 0x91, 0x55, 0xac, 0x36, 0xc1, 0x09, 0x30, 0xfa, 0x74, 0xd5,
- 0x9b, 0xbc, 0xd4, 0x94, 0xa9, 0x7e, 0x53, 0x76, 0x0c, 0x94, 0x15, 0xb1, 0x75, 0x0a, 0xea, 0x61,
- 0x28, 0x2b, 0xb3, 0xc9, 0xd4, 0x88, 0x36, 0x36, 0x9b, 0x4c, 0x81, 0x36, 0xcc, 0x9e, 0xfb, 0xb7,
- 0x2a, 0x68, 0xb4, 0xd5, 0x29, 0xa2, 0xad, 0xba, 0x55, 0x77, 0xbb, 0xfb, 0x55, 0x4f, 0x63, 0xfd,
- 0x21, 0x18, 0xc0, 0x26, 0xbd, 0xcc, 0x7e, 0x9b, 0x0f, 0x9b, 0xfe, 0x38, 0x6b, 0x51, 0x24, 0x11,
- 0x6c, 0x80, 0x84, 0x8e, 0x8f, 0xd1, 0x2f, 0x83, 0x5a, 0x2e, 0xaf, 0xb0, 0xc5, 0x6d, 0x71, 0x4f,
- 0x28, 0xbb, 0xce, 0xc3, 0xbe, 0xb1, 0x31, 0x67, 0xdb, 0xc0, 0x02, 0xf4, 0x45, 0x48, 0x94, 0x57,
- 0x58, 0xc3, 0x7b, 0x22, 0x8e, 0x18, 0x23, 0x51, 0x5e, 0x99, 0xfc, 0x6b, 0x05, 0x86, 0x85, 0x51,
- 0x3d, 0x03, 0x43, 0x74, 0x20, 0x30, 0xdd, 0x7e, 0x43, 0x18, 0xe3, 0x3a, 0x27, 0x6e, 0x51, 0xe7,
- 0xc9, 0x1c, 0x8c, 0x4a, 0xe3, 0xfa, 0x1c, 0xe8, 0xc1, 0x21, 0xa6, 0x04, 0xfd, 0x5d, 0xb0, 0x10,
- 0x4a, 0xe6, 0x0e, 0x00, 0xdf, 0xae, 0xde, 0xcf, 0x59, 0x95, 0x4b, 0xeb, 0x1b, 0xa5, 0xa2, 0xa6,
- 0x64, 0xbe, 0xae, 0xc0, 0x20, 0x6b, 0x5b, 0xab, 0x76, 0x0b, 0xe9, 0x79, 0x50, 0x72, 0x2c, 0x1e,
- 0xde, 0x98, 0xde, 0x4a, 0x4e, 0x3f, 0x05, 0x4a, 0x3e, 0xbe, 0xab, 0x95, 0xbc, 0xbe, 0x00, 0x4a,
- 0x81, 0x39, 0x38, 0x9e, 0x67, 0x94, 0x42, 0xe6, 0xa7, 0x2a, 0x8c, 0x07, 0xdb, 0x68, 0x5e, 0x4f,
- 0x8e, 0x8b, 0xef, 0x4d, 0xd9, 0x81, 0xd3, 0x0b, 0x67, 0x16, 0xe7, 0xf0, 0x3f, 0x5e, 0x48, 0x66,
- 0xc4, 0x57, 0xa8, 0x2c, 0x78, 0x2c, 0xa7, 0x7b, 0xdd, 0x13, 0xc9, 0x26, 0x03, 0x12, 0xba, 0xee,
- 0x89, 0x08, 0xd4, 0xae, 0x7b, 0x22, 0x02, 0xb5, 0xeb, 0x9e, 0x88, 0x40, 0xed, 0x3a, 0x0b, 0x10,
- 0xa8, 0x5d, 0xf7, 0x44, 0x04, 0x6a, 0xd7, 0x3d, 0x11, 0x81, 0xda, 0x7d, 0x4f, 0x84, 0x91, 0x7b,
- 0xde, 0x13, 0x11, 0xe9, 0xdd, 0xf7, 0x44, 0x44, 0x7a, 0xf7, 0x3d, 0x91, 0x6c, 0xd2, 0x6d, 0x77,
- 0x50, 0xef, 0x53, 0x07, 0x11, 0xbf, 0xd7, 0x4b, 0xa0, 0x5f, 0x81, 0x57, 0x61, 0x94, 0x6e, 0x48,
- 0x14, 0x6c, 0xcb, 0x35, 0xeb, 0x16, 0x6a, 0xeb, 0xef, 0x80, 0x21, 0x3a, 0x44, 0x5f, 0x73, 0xc2,
- 0x5e, 0x03, 0x29, 0x9d, 0xd5, 0x5b, 0x81, 0x3b, 0xf3, 0xf3, 0x24, 0x4c, 0xd0, 0x81, 0xb2, 0xd9,
- 0x44, 0xc2, 0x2d, 0xa3, 0x93, 0xd2, 0x99, 0xd2, 0x08, 0x86, 0xdf, 0x7c, 0x69, 0x9a, 0x8e, 0xe6,
- 0xbc, 0x68, 0x3a, 0x29, 0x9d, 0x2e, 0x89, 0x7c, 0xfe, 0x02, 0x74, 0x52, 0xba, 0x79, 0x24, 0xf2,
- 0x79, 0xeb, 0x8d, 0xc7, 0xc7, 0xef, 0x20, 0x89, 0x7c, 0x45, 0x2f, 0xca, 0x4e, 0x4a, 0xb7, 0x91,
- 0x44, 0xbe, 0x92, 0x17, 0x6f, 0x27, 0xa5, 0xb3, 0x27, 0x91, 0xef, 0xb2, 0x17, 0x79, 0x27, 0xa5,
- 0x53, 0x28, 0x91, 0xef, 0x8a, 0x17, 0x83, 0x27, 0xa5, 0xbb, 0x4a, 0x22, 0xdf, 0xc3, 0x5e, 0x34,
- 0x9e, 0x94, 0x6e, 0x2d, 0x89, 0x7c, 0x4b, 0x5e, 0x5c, 0xce, 0xc8, 0xf7, 0x97, 0x44, 0xc6, 0xab,
- 0x7e, 0x84, 0xce, 0xc8, 0x37, 0x99, 0x44, 0xce, 0x77, 0xfa, 0xb1, 0x3a, 0x23, 0xdf, 0x69, 0x12,
- 0x39, 0x97, 0xfd, 0xa8, 0x9d, 0x91, 0xcf, 0xca, 0x44, 0xce, 0x15, 0x3f, 0x7e, 0x67, 0xe4, 0x53,
- 0x33, 0x91, 0xb3, 0xec, 0x47, 0xf2, 0x8c, 0x7c, 0x7e, 0x26, 0x72, 0xae, 0xfa, 0x9b, 0xe8, 0xdf,
- 0x96, 0xc2, 0x2f, 0x70, 0x0b, 0x2a, 0x23, 0x85, 0x1f, 0x84, 0x84, 0x9e, 0x54, 0xc8, 0x02, 0x3c,
- 0x7e, 0xd8, 0x65, 0xa4, 0xb0, 0x83, 0x90, 0x90, 0xcb, 0x48, 0x21, 0x07, 0x21, 0xe1, 0x96, 0x91,
- 0xc2, 0x0d, 0x42, 0x42, 0x2d, 0x23, 0x85, 0x1a, 0x84, 0x84, 0x59, 0x46, 0x0a, 0x33, 0x08, 0x09,
- 0xb1, 0x8c, 0x14, 0x62, 0x10, 0x12, 0x5e, 0x19, 0x29, 0xbc, 0x20, 0x24, 0xb4, 0x4e, 0xc8, 0xa1,
- 0x05, 0x61, 0x61, 0x75, 0x42, 0x0e, 0x2b, 0x08, 0x0b, 0xa9, 0x3b, 0xe5, 0x90, 0x1a, 0xb8, 0xf9,
- 0xd2, 0x74, 0x1f, 0x1e, 0x0a, 0x44, 0xd3, 0x09, 0x39, 0x9a, 0x20, 0x2c, 0x92, 0x4e, 0xc8, 0x91,
- 0x04, 0x61, 0x51, 0x74, 0x42, 0x8e, 0x22, 0x08, 0x8b, 0xa0, 0x17, 0xe4, 0x08, 0xf2, 0xef, 0xf8,
- 0x64, 0xa4, 0x23, 0xc5, 0xa8, 0x08, 0x52, 0x63, 0x44, 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x18, 0x11,
- 0xa4, 0xc6, 0x88, 0x20, 0x35, 0x46, 0x04, 0xa9, 0x31, 0x22, 0x48, 0x8d, 0x11, 0x41, 0x6a, 0x9c,
- 0x08, 0x52, 0x63, 0x45, 0x90, 0xda, 0x2b, 0x82, 0x4e, 0xc8, 0x37, 0x1e, 0x20, 0xac, 0x20, 0x9d,
- 0x90, 0x8f, 0x3e, 0xa3, 0x43, 0x48, 0x8d, 0x15, 0x42, 0x6a, 0xaf, 0x10, 0xfa, 0xb6, 0x0a, 0xe3,
- 0x42, 0x08, 0xb1, 0xf3, 0xa1, 0x37, 0xab, 0x02, 0x9d, 0x8b, 0x71, 0xc1, 0x22, 0x2c, 0xa6, 0xce,
- 0xc5, 0x38, 0xa4, 0xde, 0x2b, 0xce, 0xba, 0xab, 0x50, 0x29, 0x46, 0x15, 0xba, 0xec, 0xc5, 0xd0,
- 0xb9, 0x18, 0x17, 0x2f, 0xba, 0x63, 0xef, 0xc2, 0x5e, 0x45, 0xe0, 0xe1, 0x58, 0x45, 0x60, 0x29,
- 0x56, 0x11, 0xb8, 0xea, 0x7b, 0xf0, 0x83, 0x09, 0x38, 0xe4, 0x7b, 0x90, 0x7e, 0x22, 0xbf, 0x9d,
- 0x95, 0x09, 0x1c, 0x51, 0xe9, 0xfc, 0xd8, 0x26, 0xe0, 0xc6, 0xc4, 0x52, 0x4d, 0x5f, 0x13, 0x0f,
- 0xab, 0xb2, 0xfb, 0x3d, 0xc0, 0x09, 0x78, 0x9c, 0x6d, 0x86, 0x9e, 0x00, 0x75, 0xa9, 0xe6, 0x90,
- 0x6a, 0x11, 0xf6, 0xd8, 0x82, 0x81, 0xc9, 0xba, 0x01, 0xfd, 0x84, 0xdd, 0x21, 0xee, 0xbd, 0x95,
- 0x07, 0x17, 0x0d, 0x26, 0x29, 0xf3, 0x82, 0x02, 0xc7, 0x84, 0x50, 0x7e, 0x73, 0x8e, 0x0c, 0x2e,
- 0xc5, 0x3a, 0x32, 0x10, 0x12, 0xc4, 0x3f, 0x3e, 0xb8, 0xbb, 0xfb, 0xa4, 0x3a, 0x98, 0x25, 0xf2,
- 0x51, 0xc2, 0xff, 0x81, 0x11, 0x7f, 0x06, 0xe4, 0x9d, 0xed, 0x6c, 0xf4, 0x6e, 0x66, 0x58, 0x6a,
- 0x9e, 0x95, 0x76, 0xd1, 0xf6, 0x84, 0x79, 0xd9, 0x9a, 0xc9, 0xc2, 0x68, 0x59, 0xfc, 0xa3, 0xa7,
- 0xa8, 0xcd, 0x88, 0x14, 0x6e, 0xcd, 0x6f, 0x7c, 0x7a, 0xfa, 0x40, 0xe6, 0x3e, 0x18, 0x0a, 0xfe,
- 0x5d, 0x93, 0x04, 0x1c, 0xe0, 0xc0, 0x6c, 0xf2, 0x45, 0xcc, 0xfd, 0x7b, 0x0a, 0x1c, 0x0e, 0xb2,
- 0x3f, 0x52, 0x77, 0x77, 0x96, 0x2c, 0xdc, 0xd3, 0x3f, 0x00, 0x29, 0xc4, 0x1c, 0xc7, 0x7e, 0x06,
- 0x87, 0xbd, 0x47, 0x86, 0xb2, 0xcf, 0x91, 0x7f, 0x0d, 0x0f, 0x22, 0xed, 0x82, 0xf0, 0xc7, 0x2e,
- 0x4c, 0xde, 0x05, 0x7d, 0x54, 0xbe, 0xa8, 0xd7, 0xb0, 0xa4, 0xd7, 0xe7, 0x42, 0xf4, 0x22, 0x71,
- 0xa4, 0x5f, 0x15, 0xf4, 0x0a, 0xbc, 0xae, 0x86, 0xb2, 0xcf, 0xf1, 0xe0, 0xcb, 0xa7, 0x70, 0xff,
- 0x47, 0x22, 0x2a, 0x5a, 0xc9, 0x19, 0x48, 0x95, 0x64, 0x9e, 0x70, 0x3d, 0x8b, 0x90, 0x2c, 0xdb,
- 0x35, 0xf2, 0x03, 0x3d, 0xe4, 0x17, 0xa9, 0x99, 0x91, 0xd9, 0xcf, 0x53, 0x9f, 0x84, 0x54, 0x61,
- 0xa7, 0xde, 0xa8, 0xb5, 0x91, 0xc5, 0xce, 0xec, 0xd9, 0x16, 0x3a, 0xc6, 0x18, 0x1e, 0x2d, 0x53,
- 0x80, 0xb1, 0xb2, 0x6d, 0xe5, 0x77, 0xdd, 0x60, 0xdd, 0x98, 0x93, 0x52, 0x84, 0x9d, 0xf9, 0x90,
- 0xbf, 0x03, 0xc1, 0x0c, 0xf9, 0xbe, 0xef, 0xbf, 0x34, 0xad, 0x6c, 0x78, 0xfb, 0xe7, 0x2b, 0x70,
- 0x84, 0xa5, 0x4f, 0x97, 0xa8, 0x85, 0x28, 0x51, 0x03, 0xec, 0x9c, 0x3a, 0x20, 0x6e, 0x09, 0x8b,
- 0xb3, 0x42, 0xc5, 0xbd, 0x31, 0xcd, 0x70, 0x53, 0xb4, 0xa7, 0x66, 0xea, 0xbe, 0x34, 0x0b, 0x15,
- 0x37, 0x17, 0x25, 0x4e, 0xd2, 0xec, 0x4e, 0x18, 0xf0, 0x68, 0x81, 0x68, 0x08, 0x66, 0xca, 0xc2,
- 0x6c, 0x06, 0x06, 0x03, 0x09, 0xab, 0xf7, 0x81, 0x92, 0xd3, 0x0e, 0xe0, 0xff, 0xf2, 0x9a, 0x82,
- 0xff, 0x2b, 0x68, 0x89, 0xd9, 0xbb, 0x60, 0x54, 0xda, 0xbf, 0xc4, 0x94, 0xa2, 0x06, 0xf8, 0xbf,
- 0x92, 0x36, 0x38, 0x99, 0xfc, 0xd0, 0x67, 0xa7, 0x0e, 0xcc, 0x5e, 0x02, 0xbd, 0x7b, 0xa7, 0x53,
- 0xef, 0x87, 0x44, 0x0e, 0x8b, 0x3c, 0x02, 0x89, 0x7c, 0x5e, 0x53, 0x26, 0x47, 0x7f, 0xf5, 0x93,
- 0xc7, 0x06, 0xf3, 0xe4, 0x8f, 0xb6, 0xaf, 0x21, 0x37, 0x9f, 0x67, 0xe0, 0x07, 0xe1, 0x70, 0xe8,
- 0x4e, 0x29, 0xc6, 0x17, 0x0a, 0x14, 0x5f, 0x2c, 0x76, 0xe1, 0x8b, 0x45, 0x82, 0x57, 0xb2, 0xfc,
- 0xc4, 0x39, 0xa7, 0x87, 0xec, 0x32, 0xa6, 0x6b, 0x81, 0x13, 0xee, 0x5c, 0xf6, 0x41, 0xc6, 0x9b,
- 0x0f, 0xe5, 0x45, 0x11, 0x27, 0xd6, 0xf9, 0x6c, 0x81, 0xe1, 0x0b, 0xa1, 0xf8, 0x2d, 0xe9, 0x58,
- 0x55, 0x5c, 0x21, 0x98, 0x90, 0x82, 0xa7, 0x70, 0x31, 0x54, 0xc8, 0x4e, 0xe0, 0xb2, 0x7b, 0xd1,
- 0x53, 0xb8, 0x14, 0xca, 0x5b, 0x8f, 0xb8, 0xf4, 0x55, 0xca, 0x9e, 0x62, 0x8b, 0x7c, 0xee, 0xb4,
- 0x7e, 0x98, 0xe7, 0xa8, 0x50, 0x81, 0x99, 0x81, 0x38, 0x57, 0xb6, 0xc0, 0x00, 0xf9, 0x9e, 0x80,
- 0xde, 0x56, 0xe2, 0xc8, 0xec, 0xc3, 0x4c, 0x48, 0xa1, 0xa7, 0x90, 0x08, 0x53, 0x71, 0x78, 0x7e,
- 0xe3, 0xc6, 0xcb, 0x53, 0x07, 0x5e, 0x7c, 0x79, 0xea, 0xc0, 0x3f, 0xbc, 0x3c, 0x75, 0xe0, 0x07,
- 0x2f, 0x4f, 0x29, 0x3f, 0x7a, 0x79, 0x4a, 0xf9, 0xc9, 0xcb, 0x53, 0xca, 0xcf, 0x5e, 0x9e, 0x52,
- 0x9e, 0xb9, 0x39, 0xa5, 0x3c, 0x7f, 0x73, 0x4a, 0xf9, 0xf2, 0xcd, 0x29, 0xe5, 0x1b, 0x37, 0xa7,
- 0x94, 0x17, 0x6e, 0x4e, 0x29, 0x37, 0x6e, 0x4e, 0x29, 0x2f, 0xde, 0x9c, 0x52, 0x7e, 0x70, 0x73,
- 0x4a, 0xf9, 0xd1, 0xcd, 0xa9, 0x03, 0x3f, 0xb9, 0x39, 0xa5, 0xfc, 0xec, 0xe6, 0xd4, 0x81, 0x67,
- 0x5e, 0x99, 0x3a, 0xf0, 0xdc, 0x2b, 0x53, 0x07, 0x9e, 0x7f, 0x65, 0x4a, 0xf9, 0xef, 0x00, 0x00,
- 0x00, 0xff, 0xff, 0xb3, 0x75, 0x57, 0xed, 0xe5, 0x68, 0x00, 0x00,
+ 0x75, 0xf7, 0xf6, 0xf4, 0x48, 0x3b, 0x3a, 0x7a, 0xb5, 0x5a, 0xbb, 0xda, 0xb1, 0xbc, 0x96, 0x76,
+ 0xc7, 0xeb, 0xb5, 0x2c, 0xdb, 0x5a, 0xad, 0x56, 0xfb, 0x9a, 0xc5, 0xf6, 0x37, 0xaf, 0x5d, 0x6b,
+ 0x59, 0x8d, 0x44, 0x4b, 0xc2, 0x5e, 0xf8, 0xbe, 0x9a, 0x6a, 0xcd, 0x5c, 0x49, 0x63, 0xcf, 0x74,
+ 0x0f, 0xd3, 0x3d, 0xb6, 0xe5, 0xfa, 0xea, 0x2b, 0x7f, 0x90, 0x10, 0xc8, 0x3b, 0x21, 0xa9, 0x00,
+ 0x01, 0x63, 0xa0, 0x00, 0x43, 0x5e, 0x90, 0x10, 0x02, 0x24, 0x15, 0xfc, 0x0f, 0x61, 0xf3, 0x4f,
+ 0xca, 0xe4, 0xaf, 0x14, 0x95, 0x72, 0xe1, 0x35, 0x55, 0x21, 0x89, 0x93, 0x10, 0xe2, 0xaa, 0x50,
+ 0x65, 0xfe, 0x48, 0xdd, 0x57, 0x77, 0xdf, 0x3b, 0x3d, 0xea, 0x96, 0xd7, 0x36, 0xfc, 0xb3, 0x3b,
+ 0x73, 0xcf, 0xf9, 0x9d, 0x3e, 0xf7, 0xbc, 0xee, 0xe9, 0x7b, 0xaf, 0x06, 0x6e, 0x64, 0xe1, 0xd8,
+ 0xb6, 0x6d, 0x6f, 0x37, 0xd0, 0xa9, 0x56, 0xdb, 0x76, 0xed, 0xcd, 0xce, 0xd6, 0xa9, 0x1a, 0x72,
+ 0xaa, 0xed, 0x7a, 0xcb, 0xb5, 0xdb, 0x73, 0x64, 0x4c, 0x1f, 0xa5, 0x1c, 0x73, 0x9c, 0x23, 0xb3,
+ 0x0c, 0x63, 0x97, 0xeb, 0x0d, 0x54, 0xf4, 0x18, 0xd7, 0x90, 0xab, 0x5f, 0x80, 0xe4, 0x56, 0xbd,
+ 0x81, 0xd2, 0xca, 0x31, 0x75, 0x66, 0x70, 0xe1, 0xc4, 0x9c, 0x04, 0x9a, 0x13, 0x11, 0xab, 0x78,
+ 0xd8, 0x20, 0x88, 0xcc, 0x0f, 0x92, 0x30, 0x1e, 0x42, 0xd5, 0x75, 0x48, 0x5a, 0x66, 0x13, 0x4b,
+ 0x54, 0x66, 0x06, 0x0c, 0xf2, 0x59, 0x4f, 0xc3, 0xc1, 0x96, 0x59, 0x7d, 0xdc, 0xdc, 0x46, 0xe9,
+ 0x04, 0x19, 0xe6, 0x5f, 0xf5, 0x29, 0x80, 0x1a, 0x6a, 0x21, 0xab, 0x86, 0xac, 0xea, 0x6e, 0x5a,
+ 0x3d, 0xa6, 0xce, 0x0c, 0x18, 0x81, 0x11, 0xfd, 0x5e, 0x18, 0x6b, 0x75, 0x36, 0x1b, 0xf5, 0x6a,
+ 0x25, 0xc0, 0x06, 0xc7, 0xd4, 0x99, 0x3e, 0x43, 0xa3, 0x84, 0xa2, 0xcf, 0x7c, 0x37, 0x8c, 0x3e,
+ 0x89, 0xcc, 0xc7, 0x83, 0xac, 0x83, 0x84, 0x75, 0x04, 0x0f, 0x07, 0x18, 0x0b, 0x30, 0xd4, 0x44,
+ 0x8e, 0x63, 0x6e, 0xa3, 0x8a, 0xbb, 0xdb, 0x42, 0xe9, 0x24, 0x99, 0xfd, 0xb1, 0xae, 0xd9, 0xcb,
+ 0x33, 0x1f, 0x64, 0xa8, 0xf5, 0xdd, 0x16, 0xd2, 0x73, 0x30, 0x80, 0xac, 0x4e, 0x93, 0x4a, 0xe8,
+ 0xeb, 0x61, 0xbf, 0x92, 0xd5, 0x69, 0xca, 0x52, 0x52, 0x18, 0xc6, 0x44, 0x1c, 0x74, 0x50, 0xfb,
+ 0x89, 0x7a, 0x15, 0xa5, 0xfb, 0x89, 0x80, 0xbb, 0xbb, 0x04, 0xac, 0x51, 0xba, 0x2c, 0x83, 0xe3,
+ 0xf4, 0x02, 0x0c, 0xa0, 0xa7, 0x5c, 0x64, 0x39, 0x75, 0xdb, 0x4a, 0x1f, 0x24, 0x42, 0xee, 0x0a,
+ 0xf1, 0x22, 0x6a, 0xd4, 0x64, 0x11, 0x3e, 0x4e, 0x3f, 0x07, 0x07, 0xed, 0x96, 0x5b, 0xb7, 0x2d,
+ 0x27, 0x9d, 0x3a, 0xa6, 0xcc, 0x0c, 0x2e, 0x1c, 0x0d, 0x0d, 0x84, 0x15, 0xca, 0x63, 0x70, 0x66,
+ 0x7d, 0x09, 0x34, 0xc7, 0xee, 0xb4, 0xab, 0xa8, 0x52, 0xb5, 0x6b, 0xa8, 0x52, 0xb7, 0xb6, 0xec,
+ 0xf4, 0x00, 0x11, 0x30, 0xdd, 0x3d, 0x11, 0xc2, 0x58, 0xb0, 0x6b, 0x68, 0xc9, 0xda, 0xb2, 0x8d,
+ 0x11, 0x47, 0xf8, 0xae, 0x4f, 0x40, 0xbf, 0xb3, 0x6b, 0xb9, 0xe6, 0x53, 0xe9, 0x21, 0x12, 0x21,
+ 0xec, 0x5b, 0xe6, 0x1b, 0xfd, 0x30, 0x1a, 0x27, 0xc4, 0x2e, 0x41, 0xdf, 0x16, 0x9e, 0x65, 0x3a,
+ 0xb1, 0x1f, 0x1b, 0x50, 0x8c, 0x68, 0xc4, 0xfe, 0x37, 0x68, 0xc4, 0x1c, 0x0c, 0x5a, 0xc8, 0x71,
+ 0x51, 0x8d, 0x46, 0x84, 0x1a, 0x33, 0xa6, 0x80, 0x82, 0xba, 0x43, 0x2a, 0xf9, 0x86, 0x42, 0xea,
+ 0x51, 0x18, 0xf5, 0x54, 0xaa, 0xb4, 0x4d, 0x6b, 0x9b, 0xc7, 0xe6, 0xa9, 0x28, 0x4d, 0xe6, 0x4a,
+ 0x1c, 0x67, 0x60, 0x98, 0x31, 0x82, 0x84, 0xef, 0x7a, 0x11, 0xc0, 0xb6, 0x90, 0xbd, 0x55, 0xa9,
+ 0xa1, 0x6a, 0x23, 0x9d, 0xea, 0x61, 0xa5, 0x15, 0xcc, 0xd2, 0x65, 0x25, 0x9b, 0x8e, 0x56, 0x1b,
+ 0xfa, 0x45, 0x3f, 0xd4, 0x0e, 0xf6, 0x88, 0x94, 0x65, 0x9a, 0x64, 0x5d, 0xd1, 0xb6, 0x01, 0x23,
+ 0x6d, 0x84, 0xe3, 0x1e, 0xd5, 0xd8, 0xcc, 0x06, 0x88, 0x12, 0x73, 0x91, 0x33, 0x33, 0x18, 0x8c,
+ 0x4e, 0x6c, 0xb8, 0x1d, 0xfc, 0xaa, 0xdf, 0x09, 0xde, 0x40, 0x85, 0x84, 0x15, 0x90, 0x2a, 0x34,
+ 0xc4, 0x07, 0xcb, 0x66, 0x13, 0x4d, 0x3e, 0x0d, 0x23, 0xa2, 0x79, 0xf4, 0x43, 0xd0, 0xe7, 0xb8,
+ 0x66, 0xdb, 0x25, 0x51, 0xd8, 0x67, 0xd0, 0x2f, 0xba, 0x06, 0x2a, 0xb2, 0x6a, 0xa4, 0xca, 0xf5,
+ 0x19, 0xf8, 0xa3, 0xfe, 0xbf, 0xfc, 0x09, 0xab, 0x64, 0xc2, 0x27, 0xbb, 0x3d, 0x2a, 0x48, 0x96,
+ 0xe7, 0x3d, 0x79, 0x1e, 0x86, 0x85, 0x09, 0xc4, 0x7d, 0x74, 0xe6, 0xff, 0xc2, 0xe1, 0x50, 0xd1,
+ 0xfa, 0xa3, 0x70, 0xa8, 0x63, 0xd5, 0x2d, 0x17, 0xb5, 0x5b, 0x6d, 0x84, 0x23, 0x96, 0x3e, 0x2a,
+ 0xfd, 0x4f, 0x07, 0x7b, 0xc4, 0xdc, 0x46, 0x90, 0x9b, 0x4a, 0x31, 0xc6, 0x3b, 0xdd, 0x83, 0xb3,
+ 0x03, 0xa9, 0x1f, 0x1e, 0xd4, 0x9e, 0x79, 0xe6, 0x99, 0x67, 0x12, 0x99, 0x8f, 0xf6, 0xc3, 0xa1,
+ 0xb0, 0x9c, 0x09, 0x4d, 0xdf, 0x09, 0xe8, 0xb7, 0x3a, 0xcd, 0x4d, 0xd4, 0x26, 0x46, 0xea, 0x33,
+ 0xd8, 0x37, 0x3d, 0x07, 0x7d, 0x0d, 0x73, 0x13, 0x35, 0xd2, 0xc9, 0x63, 0xca, 0xcc, 0xc8, 0xc2,
+ 0xbd, 0xb1, 0xb2, 0x72, 0xee, 0x1a, 0x86, 0x18, 0x14, 0xa9, 0x3f, 0x08, 0x49, 0x56, 0xa2, 0xb1,
+ 0x84, 0xd9, 0x78, 0x12, 0x70, 0x2e, 0x19, 0x04, 0xa7, 0xdf, 0x0e, 0x03, 0xf8, 0x7f, 0x1a, 0x1b,
+ 0xfd, 0x44, 0xe7, 0x14, 0x1e, 0xc0, 0x71, 0xa1, 0x4f, 0x42, 0x8a, 0xa4, 0x49, 0x0d, 0xf1, 0xa5,
+ 0xcd, 0xfb, 0x8e, 0x03, 0xab, 0x86, 0xb6, 0xcc, 0x4e, 0xc3, 0xad, 0x3c, 0x61, 0x36, 0x3a, 0x88,
+ 0x04, 0xfc, 0x80, 0x31, 0xc4, 0x06, 0xdf, 0x8d, 0xc7, 0xf4, 0x69, 0x18, 0xa4, 0x59, 0x55, 0xb7,
+ 0x6a, 0xe8, 0x29, 0x52, 0x3d, 0xfb, 0x0c, 0x9a, 0x68, 0x4b, 0x78, 0x04, 0x3f, 0xfe, 0x31, 0xc7,
+ 0xb6, 0x78, 0x68, 0x92, 0x47, 0xe0, 0x01, 0xf2, 0xf8, 0xf3, 0x72, 0xe1, 0xbe, 0x23, 0x7c, 0x7a,
+ 0x72, 0x4c, 0x65, 0xbe, 0x96, 0x80, 0x24, 0xa9, 0x17, 0xa3, 0x30, 0xb8, 0x7e, 0x7d, 0xb5, 0x54,
+ 0x29, 0xae, 0x6c, 0xe4, 0xaf, 0x95, 0x34, 0x45, 0x1f, 0x01, 0x20, 0x03, 0x97, 0xaf, 0xad, 0xe4,
+ 0xd6, 0xb5, 0x84, 0xf7, 0x7d, 0xa9, 0xbc, 0x7e, 0x6e, 0x51, 0x53, 0x3d, 0xc0, 0x06, 0x1d, 0x48,
+ 0x06, 0x19, 0xce, 0x2c, 0x68, 0x7d, 0xba, 0x06, 0x43, 0x54, 0xc0, 0xd2, 0xa3, 0xa5, 0xe2, 0xb9,
+ 0x45, 0xad, 0x5f, 0x1c, 0x39, 0xb3, 0xa0, 0x1d, 0xd4, 0x87, 0x61, 0x80, 0x8c, 0xe4, 0x57, 0x56,
+ 0xae, 0x69, 0x29, 0x4f, 0xe6, 0xda, 0xba, 0xb1, 0x54, 0xbe, 0xa2, 0x0d, 0x78, 0x32, 0xaf, 0x18,
+ 0x2b, 0x1b, 0xab, 0x1a, 0x78, 0x12, 0x96, 0x4b, 0x6b, 0x6b, 0xb9, 0x2b, 0x25, 0x6d, 0xd0, 0xe3,
+ 0xc8, 0x5f, 0x5f, 0x2f, 0xad, 0x69, 0x43, 0x82, 0x5a, 0x67, 0x16, 0xb4, 0x61, 0xef, 0x11, 0xa5,
+ 0xf2, 0xc6, 0xb2, 0x36, 0xa2, 0x8f, 0xc1, 0x30, 0x7d, 0x04, 0x57, 0x62, 0x54, 0x1a, 0x3a, 0xb7,
+ 0xa8, 0x69, 0xbe, 0x22, 0x54, 0xca, 0x98, 0x30, 0x70, 0x6e, 0x51, 0xd3, 0x33, 0x05, 0xe8, 0x23,
+ 0xd1, 0xa5, 0xeb, 0x30, 0x72, 0x2d, 0x97, 0x2f, 0x5d, 0xab, 0xac, 0xac, 0xae, 0x2f, 0xad, 0x94,
+ 0x73, 0xd7, 0x34, 0xc5, 0x1f, 0x33, 0x4a, 0xef, 0xda, 0x58, 0x32, 0x4a, 0x45, 0x2d, 0x11, 0x1c,
+ 0x5b, 0x2d, 0xe5, 0xd6, 0x4b, 0x45, 0x4d, 0xcd, 0x54, 0xe1, 0x50, 0x58, 0x9d, 0x0c, 0xcd, 0x8c,
+ 0x80, 0x8b, 0x13, 0x3d, 0x5c, 0x4c, 0x64, 0x75, 0xb9, 0xf8, 0x95, 0x04, 0x8c, 0x87, 0xac, 0x15,
+ 0xa1, 0x0f, 0x79, 0x08, 0xfa, 0x68, 0x88, 0xd2, 0xd5, 0xf3, 0x9e, 0xd0, 0x45, 0x87, 0x04, 0x6c,
+ 0xd7, 0x0a, 0x4a, 0x70, 0xc1, 0x0e, 0x42, 0xed, 0xd1, 0x41, 0x60, 0x11, 0x5d, 0x35, 0xfd, 0xff,
+ 0x74, 0xd5, 0x74, 0xba, 0xec, 0x9d, 0x8b, 0xb3, 0xec, 0x91, 0xb1, 0xfd, 0xd5, 0xf6, 0xbe, 0x90,
+ 0xda, 0x7e, 0x09, 0xc6, 0xba, 0x04, 0xc5, 0xae, 0xb1, 0x1f, 0x50, 0x20, 0xdd, 0xcb, 0x38, 0x11,
+ 0x95, 0x2e, 0x21, 0x54, 0xba, 0x4b, 0xb2, 0x05, 0x8f, 0xf7, 0x76, 0x42, 0x97, 0xaf, 0xbf, 0xa0,
+ 0xc0, 0x44, 0x78, 0xa7, 0x18, 0xaa, 0xc3, 0x83, 0xd0, 0xdf, 0x44, 0xee, 0x8e, 0xcd, 0xbb, 0xa5,
+ 0x93, 0x21, 0x6b, 0x30, 0x26, 0xcb, 0xce, 0x66, 0xa8, 0xe0, 0x22, 0xae, 0xf6, 0x6a, 0xf7, 0xa8,
+ 0x36, 0x5d, 0x9a, 0x7e, 0x38, 0x01, 0x87, 0x43, 0x85, 0x87, 0x2a, 0x7a, 0x07, 0x40, 0xdd, 0x6a,
+ 0x75, 0x5c, 0xda, 0x11, 0xd1, 0x02, 0x3b, 0x40, 0x46, 0x48, 0xf1, 0xc2, 0xc5, 0xb3, 0xe3, 0x7a,
+ 0x74, 0x95, 0xd0, 0x81, 0x0e, 0x11, 0x86, 0x0b, 0xbe, 0xa2, 0x49, 0xa2, 0xe8, 0x54, 0x8f, 0x99,
+ 0x76, 0x05, 0xe6, 0x3c, 0x68, 0xd5, 0x46, 0x1d, 0x59, 0x6e, 0xc5, 0x71, 0xdb, 0xc8, 0x6c, 0xd6,
+ 0xad, 0x6d, 0xb2, 0x82, 0xa4, 0xb2, 0x7d, 0x5b, 0x66, 0xc3, 0x41, 0xc6, 0x28, 0x25, 0xaf, 0x71,
+ 0x2a, 0x46, 0x90, 0x00, 0x6a, 0x07, 0x10, 0xfd, 0x02, 0x82, 0x92, 0x3d, 0x44, 0xe6, 0x57, 0x07,
+ 0x60, 0x30, 0xd0, 0x57, 0xeb, 0xc7, 0x61, 0xe8, 0x31, 0xf3, 0x09, 0xb3, 0xc2, 0xdf, 0x95, 0xa8,
+ 0x25, 0x06, 0xf1, 0xd8, 0x2a, 0x7b, 0x5f, 0x9a, 0x87, 0x43, 0x84, 0xc5, 0xee, 0xb8, 0xa8, 0x5d,
+ 0xa9, 0x36, 0x4c, 0xc7, 0x21, 0x46, 0x4b, 0x11, 0x56, 0x1d, 0xd3, 0x56, 0x30, 0xa9, 0xc0, 0x29,
+ 0xfa, 0x59, 0x18, 0x27, 0x88, 0x66, 0xa7, 0xe1, 0xd6, 0x5b, 0x0d, 0x54, 0xc1, 0x6f, 0x6f, 0x0e,
+ 0x59, 0x49, 0x3c, 0xcd, 0xc6, 0x30, 0xc7, 0x32, 0x63, 0xc0, 0x1a, 0x39, 0x7a, 0x11, 0xee, 0x20,
+ 0xb0, 0x6d, 0x64, 0xa1, 0xb6, 0xe9, 0xa2, 0x0a, 0x7a, 0x5f, 0xc7, 0x6c, 0x38, 0x15, 0xd3, 0xaa,
+ 0x55, 0x76, 0x4c, 0x67, 0x27, 0x7d, 0x08, 0x0b, 0xc8, 0x27, 0xd2, 0x8a, 0x71, 0x1b, 0x66, 0xbc,
+ 0xc2, 0xf8, 0x4a, 0x84, 0x2d, 0x67, 0xd5, 0x1e, 0x36, 0x9d, 0x1d, 0x3d, 0x0b, 0x13, 0x44, 0x8a,
+ 0xe3, 0xb6, 0xeb, 0xd6, 0x76, 0xa5, 0xba, 0x83, 0xaa, 0x8f, 0x57, 0x3a, 0xee, 0xd6, 0x85, 0xf4,
+ 0xed, 0xc1, 0xe7, 0x13, 0x0d, 0xd7, 0x08, 0x4f, 0x01, 0xb3, 0x6c, 0xb8, 0x5b, 0x17, 0xf4, 0x35,
+ 0x18, 0xc2, 0xce, 0x68, 0xd6, 0x9f, 0x46, 0x95, 0x2d, 0xbb, 0x4d, 0x96, 0xc6, 0x91, 0x90, 0xd2,
+ 0x14, 0xb0, 0xe0, 0xdc, 0x0a, 0x03, 0x2c, 0xdb, 0x35, 0x94, 0xed, 0x5b, 0x5b, 0x2d, 0x95, 0x8a,
+ 0xc6, 0x20, 0x97, 0x72, 0xd9, 0x6e, 0xe3, 0x80, 0xda, 0xb6, 0x3d, 0x03, 0x0f, 0xd2, 0x80, 0xda,
+ 0xb6, 0xb9, 0x79, 0xcf, 0xc2, 0x78, 0xb5, 0x4a, 0xe7, 0x5c, 0xaf, 0x56, 0xd8, 0x3b, 0x96, 0x93,
+ 0xd6, 0x04, 0x63, 0x55, 0xab, 0x57, 0x28, 0x03, 0x8b, 0x71, 0x47, 0xbf, 0x08, 0x87, 0x7d, 0x63,
+ 0x05, 0x81, 0x63, 0x5d, 0xb3, 0x94, 0xa1, 0x67, 0x61, 0xbc, 0xb5, 0xdb, 0x0d, 0xd4, 0x85, 0x27,
+ 0xb6, 0x76, 0x65, 0xd8, 0x79, 0x38, 0xd4, 0xda, 0x69, 0x75, 0xe3, 0x66, 0x83, 0x38, 0xbd, 0xb5,
+ 0xd3, 0x92, 0x81, 0x77, 0x91, 0x17, 0xee, 0x36, 0xaa, 0x9a, 0x2e, 0xaa, 0xa5, 0x8f, 0x04, 0xd9,
+ 0x03, 0x04, 0xfd, 0x14, 0x68, 0xd5, 0x6a, 0x05, 0x59, 0xe6, 0x66, 0x03, 0x55, 0xcc, 0x36, 0xb2,
+ 0x4c, 0x27, 0x3d, 0x1d, 0x64, 0x1e, 0xa9, 0x56, 0x4b, 0x84, 0x9a, 0x23, 0x44, 0x7d, 0x16, 0xc6,
+ 0xec, 0xcd, 0xc7, 0xaa, 0x34, 0x24, 0x2b, 0xad, 0x36, 0xda, 0xaa, 0x3f, 0x95, 0x3e, 0x41, 0xec,
+ 0x3b, 0x8a, 0x09, 0x24, 0x20, 0x57, 0xc9, 0xb0, 0x7e, 0x0f, 0x68, 0x55, 0x67, 0xc7, 0x6c, 0xb7,
+ 0x48, 0x4d, 0x76, 0x5a, 0x66, 0x15, 0xa5, 0xef, 0xa2, 0xac, 0x74, 0xbc, 0xcc, 0x87, 0x71, 0x4a,
+ 0x38, 0x4f, 0xd6, 0xb7, 0x5c, 0x2e, 0xf1, 0x6e, 0x9a, 0x12, 0x64, 0x8c, 0x49, 0x9b, 0x01, 0x0d,
+ 0x9b, 0x42, 0x78, 0xf0, 0x0c, 0x61, 0x1b, 0x69, 0xed, 0xb4, 0x82, 0xcf, 0xbd, 0x13, 0x86, 0x31,
+ 0xa7, 0xff, 0xd0, 0x7b, 0x68, 0x43, 0xd6, 0xda, 0x09, 0x3c, 0x71, 0x11, 0x26, 0x30, 0x53, 0x13,
+ 0xb9, 0x66, 0xcd, 0x74, 0xcd, 0x00, 0xf7, 0x7d, 0x84, 0x1b, 0xdb, 0x7d, 0x99, 0x11, 0x05, 0x3d,
+ 0xdb, 0x9d, 0xcd, 0x5d, 0x2f, 0xb2, 0xee, 0xa7, 0x7a, 0xe2, 0x31, 0x1e, 0x5b, 0x6f, 0x59, 0xd3,
+ 0x9d, 0xc9, 0xc2, 0x50, 0x30, 0xf0, 0xf5, 0x01, 0xa0, 0xa1, 0xaf, 0x29, 0xb8, 0x0b, 0x2a, 0xac,
+ 0x14, 0x71, 0xff, 0xf2, 0x9e, 0x92, 0x96, 0xc0, 0x7d, 0xd4, 0xb5, 0xa5, 0xf5, 0x52, 0xc5, 0xd8,
+ 0x28, 0xaf, 0x2f, 0x2d, 0x97, 0x34, 0x35, 0xd8, 0xb0, 0x7f, 0x3b, 0x01, 0x23, 0xe2, 0xbb, 0x97,
+ 0xfe, 0x0e, 0x38, 0xc2, 0x37, 0x4a, 0x1c, 0xe4, 0x56, 0x9e, 0xac, 0xb7, 0x49, 0x2e, 0x36, 0x4d,
+ 0xba, 0x2e, 0x7a, 0xd1, 0x70, 0x88, 0x71, 0xad, 0x21, 0xf7, 0x91, 0x7a, 0x1b, 0x67, 0x5a, 0xd3,
+ 0x74, 0xf5, 0x6b, 0x30, 0x6d, 0xd9, 0x15, 0xc7, 0x35, 0xad, 0x9a, 0xd9, 0xae, 0x55, 0xfc, 0x2d,
+ 0xaa, 0x8a, 0x59, 0xad, 0x22, 0xc7, 0xb1, 0xe9, 0x1a, 0xe8, 0x49, 0x39, 0x6a, 0xd9, 0x6b, 0x8c,
+ 0xd9, 0x5f, 0x1c, 0x72, 0x8c, 0x55, 0x8a, 0x5c, 0xb5, 0x57, 0xe4, 0xde, 0x0e, 0x03, 0x4d, 0xb3,
+ 0x55, 0x41, 0x96, 0xdb, 0xde, 0x25, 0x1d, 0x77, 0xca, 0x48, 0x35, 0xcd, 0x56, 0x09, 0x7f, 0x7f,
+ 0x7b, 0x5e, 0x7c, 0xfe, 0x51, 0x85, 0xa1, 0x60, 0xd7, 0x8d, 0x5f, 0x62, 0xaa, 0x64, 0x81, 0x52,
+ 0x48, 0x09, 0xbb, 0x73, 0xcf, 0x1e, 0x7d, 0xae, 0x80, 0x57, 0xae, 0x6c, 0x3f, 0xed, 0x85, 0x0d,
+ 0x8a, 0xc4, 0x5d, 0x03, 0x0e, 0x2d, 0x44, 0x7b, 0x8f, 0x94, 0xc1, 0xbe, 0xe9, 0x57, 0xa0, 0xff,
+ 0x31, 0x87, 0xc8, 0xee, 0x27, 0xb2, 0x4f, 0xec, 0x2d, 0xfb, 0xea, 0x1a, 0x11, 0x3e, 0x70, 0x75,
+ 0xad, 0x52, 0x5e, 0x31, 0x96, 0x73, 0xd7, 0x0c, 0x06, 0xd7, 0x6f, 0x83, 0x64, 0xc3, 0x7c, 0x7a,
+ 0x57, 0x5c, 0xe3, 0xc8, 0x50, 0x5c, 0xc3, 0xdf, 0x06, 0xc9, 0x27, 0x91, 0xf9, 0xb8, 0xb8, 0xb2,
+ 0x90, 0xa1, 0xb7, 0x30, 0xf4, 0x4f, 0x41, 0x1f, 0xb1, 0x97, 0x0e, 0xc0, 0x2c, 0xa6, 0x1d, 0xd0,
+ 0x53, 0x90, 0x2c, 0xac, 0x18, 0x38, 0xfc, 0x35, 0x18, 0xa2, 0xa3, 0x95, 0xd5, 0xa5, 0x52, 0xa1,
+ 0xa4, 0x25, 0x32, 0x67, 0xa1, 0x9f, 0x1a, 0x01, 0xa7, 0x86, 0x67, 0x06, 0xed, 0x00, 0xfb, 0xca,
+ 0x64, 0x28, 0x9c, 0xba, 0xb1, 0x9c, 0x2f, 0x19, 0x5a, 0x22, 0xe8, 0x5e, 0x07, 0x86, 0x82, 0x0d,
+ 0xf7, 0xdb, 0x13, 0x53, 0xdf, 0x54, 0x60, 0x30, 0xd0, 0x40, 0xe3, 0xce, 0xc7, 0x6c, 0x34, 0xec,
+ 0x27, 0x2b, 0x66, 0xa3, 0x6e, 0x3a, 0x2c, 0x28, 0x80, 0x0c, 0xe5, 0xf0, 0x48, 0x5c, 0xa7, 0xbd,
+ 0x2d, 0xca, 0x3f, 0xab, 0x80, 0x26, 0xf7, 0xae, 0x92, 0x82, 0xca, 0xcf, 0x54, 0xc1, 0x4f, 0x28,
+ 0x30, 0x22, 0x36, 0xac, 0x92, 0x7a, 0xc7, 0x7f, 0xa6, 0xea, 0x7d, 0x3f, 0x01, 0xc3, 0x42, 0x9b,
+ 0x1a, 0x57, 0xbb, 0xf7, 0xc1, 0x58, 0xbd, 0x86, 0x9a, 0x2d, 0xdb, 0x45, 0x56, 0x75, 0xb7, 0xd2,
+ 0x40, 0x4f, 0xa0, 0x46, 0x3a, 0x43, 0x0a, 0xc5, 0xa9, 0xbd, 0x1b, 0xe1, 0xb9, 0x25, 0x1f, 0x77,
+ 0x0d, 0xc3, 0xb2, 0xe3, 0x4b, 0xc5, 0xd2, 0xf2, 0xea, 0xca, 0x7a, 0xa9, 0x5c, 0xb8, 0x5e, 0xd9,
+ 0x28, 0xbf, 0xb3, 0xbc, 0xf2, 0x48, 0xd9, 0xd0, 0xea, 0x12, 0xdb, 0x5b, 0x98, 0xea, 0xab, 0xa0,
+ 0xc9, 0x4a, 0xe9, 0x47, 0x20, 0x4c, 0x2d, 0xed, 0x80, 0x3e, 0x0e, 0xa3, 0xe5, 0x95, 0xca, 0xda,
+ 0x52, 0xb1, 0x54, 0x29, 0x5d, 0xbe, 0x5c, 0x2a, 0xac, 0xaf, 0xd1, 0xad, 0x0d, 0x8f, 0x7b, 0x5d,
+ 0x4c, 0xea, 0x8f, 0xab, 0x30, 0x1e, 0xa2, 0x89, 0x9e, 0x63, 0x2f, 0x25, 0xf4, 0x3d, 0xe9, 0xfe,
+ 0x38, 0xda, 0xcf, 0xe1, 0xae, 0x60, 0xd5, 0x6c, 0xbb, 0xec, 0x1d, 0xe6, 0x1e, 0xc0, 0x56, 0xb2,
+ 0xdc, 0xfa, 0x56, 0x1d, 0xb5, 0xd9, 0x4e, 0x10, 0x7d, 0x53, 0x19, 0xf5, 0xc7, 0xe9, 0x66, 0xd0,
+ 0x7d, 0xa0, 0xb7, 0x6c, 0xa7, 0xee, 0xd6, 0x9f, 0x40, 0x95, 0xba, 0xc5, 0xb7, 0x8d, 0xf0, 0x9b,
+ 0x4b, 0xd2, 0xd0, 0x38, 0x65, 0xc9, 0x72, 0x3d, 0x6e, 0x0b, 0x6d, 0x9b, 0x12, 0x37, 0x2e, 0xe0,
+ 0xaa, 0xa1, 0x71, 0x8a, 0xc7, 0x7d, 0x1c, 0x86, 0x6a, 0x76, 0x07, 0xb7, 0x73, 0x94, 0x0f, 0xaf,
+ 0x17, 0x8a, 0x31, 0x48, 0xc7, 0x3c, 0x16, 0xd6, 0xa8, 0xfb, 0xfb, 0x55, 0x43, 0xc6, 0x20, 0x1d,
+ 0xa3, 0x2c, 0x77, 0xc3, 0xa8, 0xb9, 0xbd, 0xdd, 0xc6, 0xc2, 0xb9, 0x20, 0xfa, 0xea, 0x31, 0xe2,
+ 0x0d, 0x13, 0xc6, 0xc9, 0xab, 0x90, 0xe2, 0x76, 0xc0, 0x4b, 0x32, 0xb6, 0x44, 0xa5, 0x45, 0xdf,
+ 0xa7, 0x13, 0x33, 0x03, 0x46, 0xca, 0xe2, 0xc4, 0xe3, 0x30, 0x54, 0x77, 0x2a, 0xfe, 0xf6, 0x7b,
+ 0xe2, 0x58, 0x62, 0x26, 0x65, 0x0c, 0xd6, 0x1d, 0x6f, 0xeb, 0x32, 0xf3, 0x85, 0x04, 0x8c, 0x88,
+ 0xc7, 0x07, 0x7a, 0x11, 0x52, 0x0d, 0xbb, 0x6a, 0x92, 0xd0, 0xa2, 0x67, 0x57, 0x33, 0x11, 0x27,
+ 0x0e, 0x73, 0xd7, 0x18, 0xbf, 0xe1, 0x21, 0x27, 0xff, 0x4e, 0x81, 0x14, 0x1f, 0xd6, 0x27, 0x20,
+ 0xd9, 0x32, 0xdd, 0x1d, 0x22, 0xae, 0x2f, 0x9f, 0xd0, 0x14, 0x83, 0x7c, 0xc7, 0xe3, 0x4e, 0xcb,
+ 0xb4, 0x48, 0x08, 0xb0, 0x71, 0xfc, 0x1d, 0xfb, 0xb5, 0x81, 0xcc, 0x1a, 0x79, 0xaf, 0xb1, 0x9b,
+ 0x4d, 0x64, 0xb9, 0x0e, 0xf7, 0x2b, 0x1b, 0x2f, 0xb0, 0x61, 0xfd, 0x5e, 0x18, 0x73, 0xdb, 0x66,
+ 0xbd, 0x21, 0xf0, 0x26, 0x09, 0xaf, 0xc6, 0x09, 0x1e, 0x73, 0x16, 0x6e, 0xe3, 0x72, 0x6b, 0xc8,
+ 0x35, 0xab, 0x3b, 0xa8, 0xe6, 0x83, 0xfa, 0xc9, 0xfe, 0xc5, 0x11, 0xc6, 0x50, 0x64, 0x74, 0x8e,
+ 0xcd, 0x7c, 0x57, 0x81, 0x31, 0xfe, 0x26, 0x56, 0xf3, 0x8c, 0xb5, 0x0c, 0x60, 0x5a, 0x96, 0xed,
+ 0x06, 0xcd, 0xd5, 0x1d, 0xca, 0x5d, 0xb8, 0xb9, 0x9c, 0x07, 0x32, 0x02, 0x02, 0x26, 0x9b, 0x00,
+ 0x3e, 0xa5, 0xa7, 0xd9, 0xa6, 0x61, 0x90, 0x9d, 0x0d, 0x91, 0x03, 0x46, 0xfa, 0xee, 0x0e, 0x74,
+ 0x08, 0xbf, 0xb2, 0xe9, 0x87, 0xa0, 0x6f, 0x13, 0x6d, 0xd7, 0x2d, 0xb6, 0xe3, 0x4b, 0xbf, 0xf0,
+ 0x1d, 0x96, 0xa4, 0xb7, 0xc3, 0x92, 0x7f, 0x2f, 0x8c, 0x57, 0xed, 0xa6, 0xac, 0x6e, 0x5e, 0x93,
+ 0xf6, 0x0f, 0x9c, 0x87, 0x95, 0xf7, 0x80, 0xdf, 0x62, 0xfe, 0x44, 0x51, 0x3e, 0x93, 0x50, 0xaf,
+ 0xac, 0xe6, 0xbf, 0x94, 0x98, 0xbc, 0x42, 0xa1, 0xab, 0x7c, 0xa6, 0x06, 0xda, 0x6a, 0xa0, 0x2a,
+ 0xd6, 0x1e, 0x3e, 0x7f, 0x2f, 0xdc, 0xbf, 0x5d, 0x77, 0x77, 0x3a, 0x9b, 0x73, 0x55, 0xbb, 0x79,
+ 0x6a, 0xdb, 0xde, 0xb6, 0xfd, 0x33, 0x55, 0xfc, 0x8d, 0x7c, 0x21, 0x9f, 0xd8, 0xb9, 0xea, 0x80,
+ 0x37, 0x3a, 0x19, 0x79, 0x08, 0x9b, 0x2d, 0xc3, 0x38, 0x63, 0xae, 0x90, 0x83, 0x1d, 0xfa, 0x7a,
+ 0xa2, 0xef, 0xb9, 0x39, 0x96, 0xfe, 0xca, 0x0f, 0xc8, 0x72, 0x6d, 0x8c, 0x31, 0x28, 0xa6, 0xd1,
+ 0x37, 0x98, 0xac, 0x01, 0x87, 0x05, 0x79, 0x34, 0x35, 0x51, 0x3b, 0x42, 0xe2, 0xb7, 0x99, 0xc4,
+ 0xf1, 0x80, 0xc4, 0x35, 0x06, 0xcd, 0x16, 0x60, 0x78, 0x3f, 0xb2, 0xfe, 0x86, 0xc9, 0x1a, 0x42,
+ 0x41, 0x21, 0x57, 0x60, 0x94, 0x08, 0xa9, 0x76, 0x1c, 0xd7, 0x6e, 0x92, 0xba, 0xb7, 0xb7, 0x98,
+ 0xef, 0xfc, 0x80, 0xe6, 0xca, 0x08, 0x86, 0x15, 0x3c, 0x54, 0x36, 0x0b, 0xe4, 0x2c, 0xab, 0x86,
+ 0xaa, 0x8d, 0x08, 0x09, 0x37, 0x98, 0x22, 0x1e, 0x7f, 0xf6, 0xdd, 0x70, 0x08, 0x7f, 0x26, 0x65,
+ 0x29, 0xa8, 0x49, 0xf4, 0x4e, 0x5a, 0xfa, 0xbb, 0x1f, 0xa0, 0xe9, 0x38, 0xee, 0x09, 0x08, 0xe8,
+ 0x14, 0xf0, 0xe2, 0x36, 0x72, 0x5d, 0xd4, 0x76, 0x2a, 0x66, 0x23, 0x4c, 0xbd, 0xc0, 0x56, 0x44,
+ 0xfa, 0x63, 0xaf, 0x8a, 0x5e, 0xbc, 0x42, 0x91, 0xb9, 0x46, 0x23, 0xbb, 0x01, 0x47, 0x42, 0xa2,
+ 0x22, 0x86, 0xcc, 0x8f, 0x33, 0x99, 0x87, 0xba, 0x22, 0x03, 0x8b, 0x5d, 0x05, 0x3e, 0xee, 0xf9,
+ 0x32, 0x86, 0xcc, 0xdf, 0x67, 0x32, 0x75, 0x86, 0xe5, 0x2e, 0xc5, 0x12, 0xaf, 0xc2, 0xd8, 0x13,
+ 0xa8, 0xbd, 0x69, 0x3b, 0x6c, 0xfb, 0x27, 0x86, 0xb8, 0x4f, 0x30, 0x71, 0xa3, 0x0c, 0x48, 0xf6,
+ 0x83, 0xb0, 0xac, 0x8b, 0x90, 0xda, 0x32, 0xab, 0x28, 0x86, 0x88, 0x4f, 0x32, 0x11, 0x07, 0x31,
+ 0x3f, 0x86, 0xe6, 0x60, 0x68, 0xdb, 0x66, 0x2b, 0x53, 0x34, 0xfc, 0x59, 0x06, 0x1f, 0xe4, 0x18,
+ 0x26, 0xa2, 0x65, 0xb7, 0x3a, 0x0d, 0xbc, 0x6c, 0x45, 0x8b, 0xf8, 0x14, 0x17, 0xc1, 0x31, 0x4c,
+ 0xc4, 0x3e, 0xcc, 0xfa, 0x1c, 0x17, 0xe1, 0x04, 0xec, 0xf9, 0x10, 0x0c, 0xda, 0x56, 0x63, 0xd7,
+ 0xb6, 0xe2, 0x28, 0xf1, 0x69, 0x26, 0x01, 0x18, 0x04, 0x0b, 0xb8, 0x04, 0x03, 0x71, 0x1d, 0xf1,
+ 0xb9, 0x57, 0x79, 0x7a, 0x70, 0x0f, 0x5c, 0x81, 0x51, 0x5e, 0xa0, 0xea, 0xb6, 0x15, 0x43, 0xc4,
+ 0xe7, 0x99, 0x88, 0x91, 0x00, 0x8c, 0x4d, 0xc3, 0x45, 0x8e, 0xbb, 0x8d, 0xe2, 0x08, 0xf9, 0x02,
+ 0x9f, 0x06, 0x83, 0x30, 0x53, 0x6e, 0x22, 0xab, 0xba, 0x13, 0x4f, 0xc2, 0xf3, 0xdc, 0x94, 0x1c,
+ 0x83, 0x45, 0x14, 0x60, 0xb8, 0x69, 0xb6, 0x9d, 0x1d, 0xb3, 0x11, 0xcb, 0x1d, 0x5f, 0x64, 0x32,
+ 0x86, 0x3c, 0x10, 0xb3, 0x48, 0xc7, 0xda, 0x8f, 0x98, 0x2f, 0x71, 0x8b, 0x04, 0x60, 0x2c, 0xf5,
+ 0x1c, 0x97, 0xec, 0x95, 0xed, 0x47, 0xda, 0x1f, 0xf0, 0xd4, 0xa3, 0xd8, 0xe5, 0xa0, 0xc4, 0x4b,
+ 0x30, 0xe0, 0xd4, 0x9f, 0x8e, 0x25, 0xe6, 0x0f, 0xb9, 0xa7, 0x09, 0x00, 0x83, 0xaf, 0xc3, 0x6d,
+ 0xa1, 0xcb, 0x44, 0x0c, 0x61, 0x7f, 0xc4, 0x84, 0x4d, 0x84, 0x2c, 0x15, 0xac, 0x24, 0xec, 0x57,
+ 0xe4, 0x1f, 0xf3, 0x92, 0x80, 0x24, 0x59, 0xab, 0xf8, 0x5d, 0xc1, 0x31, 0xb7, 0xf6, 0x67, 0xb5,
+ 0x3f, 0xe1, 0x56, 0xa3, 0x58, 0xc1, 0x6a, 0xeb, 0x30, 0xc1, 0x24, 0xee, 0xcf, 0xaf, 0x5f, 0xe6,
+ 0x85, 0x95, 0xa2, 0x37, 0x44, 0xef, 0xbe, 0x17, 0x26, 0x3d, 0x73, 0xf2, 0xa6, 0xd4, 0xa9, 0x34,
+ 0xcd, 0x56, 0x0c, 0xc9, 0x5f, 0x61, 0x92, 0x79, 0xc5, 0xf7, 0xba, 0x5a, 0x67, 0xd9, 0x6c, 0x61,
+ 0xe1, 0x8f, 0x42, 0x9a, 0x0b, 0xef, 0x58, 0x6d, 0x54, 0xb5, 0xb7, 0xad, 0xfa, 0xd3, 0xa8, 0x16,
+ 0x43, 0xf4, 0x9f, 0x4a, 0xae, 0xda, 0x08, 0xc0, 0xb1, 0xe4, 0x25, 0xd0, 0xbc, 0x5e, 0xa5, 0x52,
+ 0x6f, 0xb6, 0xec, 0xb6, 0x1b, 0x21, 0xf1, 0xcf, 0xb8, 0xa7, 0x3c, 0xdc, 0x12, 0x81, 0x65, 0x4b,
+ 0x30, 0x42, 0xbe, 0xc6, 0x0d, 0xc9, 0xaf, 0x32, 0x41, 0xc3, 0x3e, 0x8a, 0x15, 0x8e, 0xaa, 0xdd,
+ 0x6c, 0x99, 0xed, 0x38, 0xf5, 0xef, 0xcf, 0x79, 0xe1, 0x60, 0x10, 0x56, 0x38, 0xdc, 0xdd, 0x16,
+ 0xc2, 0xab, 0x7d, 0x0c, 0x09, 0x5f, 0xe3, 0x85, 0x83, 0x63, 0x98, 0x08, 0xde, 0x30, 0xc4, 0x10,
+ 0xf1, 0x17, 0x5c, 0x04, 0xc7, 0x60, 0x11, 0xef, 0xf2, 0x17, 0xda, 0x36, 0xda, 0xae, 0x3b, 0x6e,
+ 0x9b, 0xb6, 0xc2, 0x7b, 0x8b, 0xfa, 0xfa, 0xab, 0x62, 0x13, 0x66, 0x04, 0xa0, 0xb8, 0x12, 0xb1,
+ 0x2d, 0x54, 0xf2, 0xa6, 0x14, 0xad, 0xd8, 0x37, 0x78, 0x25, 0x0a, 0xc0, 0xb0, 0x6e, 0x81, 0x0e,
+ 0x11, 0x9b, 0xbd, 0x8a, 0xdf, 0x0f, 0x62, 0x88, 0xfb, 0xa6, 0xa4, 0xdc, 0x1a, 0xc7, 0x62, 0x99,
+ 0x81, 0xfe, 0xa7, 0x63, 0x3d, 0x8e, 0x76, 0x63, 0x45, 0xe7, 0x5f, 0x4a, 0xfd, 0xcf, 0x06, 0x45,
+ 0xd2, 0x1a, 0x32, 0x2a, 0xf5, 0x53, 0x7a, 0xd4, 0x2d, 0xa0, 0xf4, 0xff, 0x7f, 0x8d, 0xcd, 0x57,
+ 0x6c, 0xa7, 0xb2, 0xd7, 0x70, 0x90, 0x8b, 0x4d, 0x4f, 0xb4, 0xb0, 0x0f, 0xbc, 0xe6, 0xc5, 0xb9,
+ 0xd0, 0xf3, 0x64, 0x2f, 0xc3, 0xb0, 0xd0, 0xf0, 0x44, 0x8b, 0xfa, 0x05, 0x26, 0x6a, 0x28, 0xd8,
+ 0xef, 0x64, 0xcf, 0x42, 0x12, 0x37, 0x2f, 0xd1, 0xf0, 0x5f, 0x64, 0x70, 0xc2, 0x9e, 0x7d, 0x00,
+ 0x52, 0xbc, 0x69, 0x89, 0x86, 0x7e, 0x90, 0x41, 0x3d, 0x08, 0x86, 0xf3, 0x86, 0x25, 0x1a, 0xfe,
+ 0x4b, 0x1c, 0xce, 0x21, 0x18, 0x1e, 0xdf, 0x84, 0x2f, 0xfc, 0x4a, 0x92, 0x2d, 0x3a, 0xdc, 0x76,
+ 0x97, 0xe0, 0x20, 0xeb, 0x54, 0xa2, 0xd1, 0x1f, 0x66, 0x0f, 0xe7, 0x88, 0xec, 0x79, 0xe8, 0x8b,
+ 0x69, 0xf0, 0x5f, 0x63, 0x50, 0xca, 0x9f, 0x2d, 0xc0, 0x60, 0xa0, 0x3b, 0x89, 0x86, 0xff, 0x3a,
+ 0x83, 0x07, 0x51, 0x58, 0x75, 0xd6, 0x9d, 0x44, 0x0b, 0xf8, 0x0d, 0xae, 0x3a, 0x43, 0x60, 0xb3,
+ 0xf1, 0xc6, 0x24, 0x1a, 0xfd, 0x9b, 0xdc, 0xea, 0x1c, 0x92, 0x7d, 0x08, 0x06, 0xbc, 0xc5, 0x26,
+ 0x1a, 0xff, 0x5b, 0x0c, 0xef, 0x63, 0xb0, 0x05, 0x02, 0x8b, 0x5d, 0xb4, 0x88, 0xdf, 0xe6, 0x16,
+ 0x08, 0xa0, 0x70, 0x1a, 0xc9, 0x0d, 0x4c, 0xb4, 0xa4, 0x8f, 0xf0, 0x34, 0x92, 0xfa, 0x17, 0xec,
+ 0x4d, 0x52, 0xf3, 0xa3, 0x45, 0xfc, 0x0e, 0xf7, 0x26, 0xe1, 0xc7, 0x6a, 0xc8, 0x1d, 0x41, 0xb4,
+ 0x8c, 0xdf, 0xe3, 0x6a, 0x48, 0x0d, 0x41, 0x76, 0x15, 0xf4, 0xee, 0x6e, 0x20, 0x5a, 0xde, 0x47,
+ 0x99, 0xbc, 0xb1, 0xae, 0x66, 0x20, 0xfb, 0x08, 0x4c, 0x84, 0x77, 0x02, 0xd1, 0x52, 0x3f, 0xf6,
+ 0x9a, 0xf4, 0xee, 0x16, 0x6c, 0x04, 0xb2, 0xeb, 0xfe, 0x92, 0x12, 0xec, 0x02, 0xa2, 0xc5, 0x7e,
+ 0xfc, 0x35, 0xb1, 0x70, 0x07, 0x9b, 0x80, 0x6c, 0x0e, 0xc0, 0x5f, 0x80, 0xa3, 0x65, 0x7d, 0x82,
+ 0xc9, 0x0a, 0x80, 0x70, 0x6a, 0xb0, 0xf5, 0x37, 0x1a, 0xff, 0x49, 0x9e, 0x1a, 0x0c, 0x81, 0x53,
+ 0x83, 0x2f, 0xbd, 0xd1, 0xe8, 0x67, 0x79, 0x6a, 0x70, 0x08, 0x8e, 0xec, 0xc0, 0xea, 0x16, 0x2d,
+ 0xe1, 0xd3, 0x3c, 0xb2, 0x03, 0xa8, 0x6c, 0x19, 0xc6, 0xba, 0x16, 0xc4, 0x68, 0x51, 0x9f, 0x61,
+ 0xa2, 0x34, 0x79, 0x3d, 0x0c, 0x2e, 0x5e, 0x6c, 0x31, 0x8c, 0x96, 0xf6, 0x59, 0x69, 0xf1, 0x62,
+ 0x6b, 0x61, 0xf6, 0x12, 0xa4, 0xac, 0x4e, 0xa3, 0x81, 0x93, 0x47, 0xdf, 0xfb, 0xe6, 0x5e, 0xfa,
+ 0x9f, 0x5f, 0x67, 0xd6, 0xe1, 0x80, 0xec, 0x59, 0xe8, 0x43, 0xcd, 0x4d, 0x54, 0x8b, 0x42, 0xfe,
+ 0xcb, 0xeb, 0xbc, 0x60, 0x62, 0xee, 0xec, 0x43, 0x00, 0x74, 0x6b, 0x84, 0x1c, 0xfb, 0x45, 0x60,
+ 0xff, 0xf5, 0x75, 0x76, 0xa7, 0xc6, 0x87, 0xf8, 0x02, 0xe8, 0x0d, 0x9d, 0xbd, 0x05, 0xbc, 0x2a,
+ 0x0a, 0x20, 0x1e, 0xb9, 0x08, 0x07, 0x1f, 0x73, 0x6c, 0xcb, 0x35, 0xb7, 0xa3, 0xd0, 0xff, 0xc6,
+ 0xd0, 0x9c, 0x1f, 0x1b, 0xac, 0x69, 0xb7, 0x91, 0x6b, 0x6e, 0x3b, 0x51, 0xd8, 0x7f, 0x67, 0x58,
+ 0x0f, 0x80, 0xc1, 0x55, 0xd3, 0x71, 0xe3, 0xcc, 0xfb, 0x3f, 0x38, 0x98, 0x03, 0xb0, 0xd2, 0xf8,
+ 0xf3, 0xe3, 0x68, 0x37, 0x0a, 0xfb, 0x23, 0xae, 0x34, 0xe3, 0xcf, 0x3e, 0x00, 0x03, 0xf8, 0x23,
+ 0xbd, 0x28, 0x17, 0x01, 0xfe, 0x4f, 0x06, 0xf6, 0x11, 0xf8, 0xc9, 0x8e, 0x5b, 0x73, 0xeb, 0xd1,
+ 0xc6, 0xfe, 0x31, 0xf3, 0x34, 0xe7, 0xcf, 0xe6, 0x60, 0xd0, 0x71, 0x6b, 0xb5, 0x0e, 0xeb, 0x4f,
+ 0x23, 0xe0, 0xff, 0xf5, 0xba, 0xb7, 0x65, 0xe1, 0x61, 0xb0, 0xb7, 0x9f, 0x7c, 0xdc, 0x6d, 0xd9,
+ 0xe4, 0x98, 0x23, 0x4a, 0xc2, 0x6b, 0x4c, 0x42, 0x00, 0x92, 0x2f, 0x85, 0x6f, 0xdf, 0xc2, 0x15,
+ 0xfb, 0x8a, 0x4d, 0x37, 0x6e, 0xdf, 0x93, 0x89, 0xde, 0x81, 0x85, 0xef, 0x34, 0xe0, 0xb6, 0xaa,
+ 0xdd, 0xdc, 0xb4, 0x9d, 0x53, 0x9b, 0xb6, 0xbb, 0x73, 0xca, 0xdd, 0x41, 0x78, 0x01, 0x66, 0x9b,
+ 0xb2, 0x49, 0xfc, 0x79, 0x72, 0x7f, 0x3b, 0xb9, 0xe4, 0x9c, 0xbe, 0x5c, 0xc7, 0xca, 0x97, 0xc9,
+ 0x51, 0x89, 0x7e, 0x14, 0xfa, 0xc9, 0x74, 0x4e, 0x93, 0xe3, 0x48, 0x25, 0x9f, 0xbc, 0xf1, 0xd2,
+ 0xf4, 0x01, 0x83, 0x8d, 0x79, 0xd4, 0x05, 0xb2, 0x97, 0x9d, 0x10, 0xa8, 0x0b, 0x1e, 0xf5, 0x0c,
+ 0xdd, 0xce, 0x16, 0xa8, 0x67, 0x3c, 0xea, 0x22, 0xd9, 0xd8, 0x56, 0x05, 0xea, 0xa2, 0x47, 0x3d,
+ 0x4b, 0x0e, 0x6f, 0x86, 0x05, 0xea, 0x59, 0x8f, 0x7a, 0x8e, 0x1c, 0xd9, 0x24, 0x05, 0xea, 0x39,
+ 0x8f, 0x7a, 0x9e, 0x9c, 0xd6, 0x8c, 0x09, 0xd4, 0xf3, 0x1e, 0xf5, 0x02, 0x39, 0xa5, 0xd1, 0x05,
+ 0xea, 0x05, 0x8f, 0x7a, 0x91, 0xdc, 0xad, 0x3a, 0x28, 0x50, 0x2f, 0xea, 0x53, 0x70, 0x90, 0xce,
+ 0x7c, 0x9e, 0x1c, 0xe9, 0x8f, 0x32, 0x32, 0x1f, 0xf4, 0xe9, 0xa7, 0xc9, 0x3d, 0xaa, 0x7e, 0x91,
+ 0x7e, 0xda, 0xa7, 0x2f, 0x90, 0x3f, 0xe9, 0xd0, 0x44, 0xfa, 0x82, 0x4f, 0x3f, 0x93, 0x1e, 0x26,
+ 0x77, 0xc9, 0x04, 0xfa, 0x19, 0x9f, 0xbe, 0x98, 0x1e, 0xc1, 0x39, 0x21, 0xd2, 0x17, 0x7d, 0xfa,
+ 0xd9, 0xf4, 0xe8, 0x31, 0x65, 0x66, 0x48, 0xa4, 0x9f, 0xcd, 0xbc, 0x9f, 0xb8, 0xd7, 0xf2, 0xdd,
+ 0x3b, 0x21, 0xba, 0xd7, 0x73, 0xec, 0x84, 0xe8, 0x58, 0xcf, 0xa5, 0x13, 0xa2, 0x4b, 0x3d, 0x67,
+ 0x4e, 0x88, 0xce, 0xf4, 0xdc, 0x38, 0x21, 0xba, 0xd1, 0x73, 0xe0, 0x84, 0xe8, 0x40, 0xcf, 0x75,
+ 0x13, 0xa2, 0xeb, 0x3c, 0xa7, 0x4d, 0x88, 0x4e, 0xf3, 0xdc, 0x35, 0x21, 0xba, 0xcb, 0x73, 0x54,
+ 0x5a, 0x72, 0x94, 0xef, 0xa2, 0xb4, 0xe4, 0x22, 0xdf, 0x39, 0x69, 0xc9, 0x39, 0xbe, 0x5b, 0xd2,
+ 0x92, 0x5b, 0x7c, 0x87, 0xa4, 0x25, 0x87, 0xf8, 0xae, 0x48, 0x4b, 0xae, 0xf0, 0x9d, 0xc0, 0x72,
+ 0xcc, 0x40, 0xad, 0x90, 0x1c, 0x53, 0xf7, 0xcc, 0x31, 0x75, 0xcf, 0x1c, 0x53, 0xf7, 0xcc, 0x31,
+ 0x75, 0xcf, 0x1c, 0x53, 0xf7, 0xcc, 0x31, 0x75, 0xcf, 0x1c, 0x53, 0xf7, 0xcc, 0x31, 0x75, 0xcf,
+ 0x1c, 0x53, 0xf7, 0xce, 0x31, 0x35, 0x22, 0xc7, 0xd4, 0x88, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0x8d,
+ 0xc8, 0x31, 0x35, 0x22, 0xc7, 0xd4, 0x9e, 0x39, 0xe6, 0xbb, 0x77, 0x42, 0x74, 0x6f, 0x68, 0x8e,
+ 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23,
+ 0xc7, 0xd4, 0x1e, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5, 0x57, 0x8e, 0xa9, 0x3d, 0x73, 0x4c, 0xed,
+ 0x99, 0x63, 0x6a, 0xcf, 0x1c, 0x53, 0x7b, 0xe6, 0x98, 0xda, 0x33, 0xc7, 0xd4, 0x60, 0x8e, 0xfd,
+ 0x95, 0x0a, 0x3a, 0xcd, 0xb1, 0x55, 0x72, 0x29, 0x8c, 0xb9, 0x62, 0x4a, 0xca, 0xb4, 0x7e, 0xec,
+ 0x3a, 0xcd, 0x77, 0xc9, 0x94, 0x94, 0x6b, 0x22, 0x7d, 0xc1, 0xa3, 0xf3, 0x6c, 0x13, 0xe9, 0x67,
+ 0x3c, 0x3a, 0xcf, 0x37, 0x91, 0xbe, 0xe8, 0xd1, 0x79, 0xc6, 0x89, 0xf4, 0xb3, 0x1e, 0x9d, 0xe7,
+ 0x9c, 0x48, 0x3f, 0xe7, 0xd1, 0x79, 0xd6, 0x89, 0xf4, 0xf3, 0x1e, 0x9d, 0xe7, 0x9d, 0x48, 0xbf,
+ 0xe0, 0xd1, 0x79, 0xe6, 0x89, 0xf4, 0x8b, 0xfa, 0x31, 0x39, 0xf7, 0x38, 0x83, 0xe7, 0xda, 0x63,
+ 0x72, 0xf6, 0x49, 0x1c, 0xa7, 0x7d, 0x0e, 0x9e, 0x7f, 0x12, 0xc7, 0x82, 0xcf, 0xc1, 0x33, 0x50,
+ 0xe2, 0x38, 0x93, 0xf9, 0x10, 0x71, 0x9f, 0x25, 0xbb, 0x6f, 0x52, 0x72, 0x5f, 0x22, 0xe0, 0xba,
+ 0x49, 0xc9, 0x75, 0x89, 0x80, 0xdb, 0x26, 0x25, 0xb7, 0x25, 0x02, 0x2e, 0x9b, 0x94, 0x5c, 0x96,
+ 0x08, 0xb8, 0x6b, 0x52, 0x72, 0x57, 0x22, 0xe0, 0xaa, 0x49, 0xc9, 0x55, 0x89, 0x80, 0x9b, 0x26,
+ 0x25, 0x37, 0x25, 0x02, 0x2e, 0x9a, 0x94, 0x5c, 0x94, 0x08, 0xb8, 0x67, 0x52, 0x72, 0x4f, 0x22,
+ 0xe0, 0x9a, 0xa3, 0xb2, 0x6b, 0x12, 0x41, 0xb7, 0x1c, 0x95, 0xdd, 0x92, 0x08, 0xba, 0xe4, 0xa8,
+ 0xec, 0x92, 0x44, 0xd0, 0x1d, 0x47, 0x65, 0x77, 0x24, 0x82, 0xae, 0xf8, 0x69, 0x82, 0x77, 0x84,
+ 0x6b, 0x6e, 0xbb, 0x53, 0x75, 0x6f, 0xa9, 0x23, 0x9c, 0x17, 0xda, 0x87, 0xc1, 0x05, 0x7d, 0x8e,
+ 0x34, 0xac, 0xc1, 0x8e, 0x53, 0x5a, 0xc1, 0xe6, 0x85, 0xc6, 0x22, 0x80, 0xb0, 0xc2, 0x11, 0x8b,
+ 0xb7, 0xd4, 0x1b, 0xce, 0x0b, 0x6d, 0x46, 0xb4, 0x7e, 0x17, 0xde, 0xf2, 0x8e, 0xed, 0x85, 0x04,
+ 0xef, 0xd8, 0x98, 0xf9, 0xf7, 0xdb, 0xb1, 0xcd, 0x46, 0x9b, 0xdc, 0x33, 0xf6, 0x6c, 0xb4, 0xb1,
+ 0xbb, 0x56, 0x9d, 0xb8, 0x1d, 0xdc, 0x6c, 0xb4, 0x69, 0x3d, 0xa3, 0xbe, 0xb9, 0xfd, 0x16, 0x8b,
+ 0x60, 0x03, 0xb5, 0x42, 0x22, 0x78, 0xbf, 0xfd, 0xd6, 0xbc, 0x50, 0x4a, 0xf6, 0x1b, 0xc1, 0xea,
+ 0xbe, 0x23, 0x78, 0xbf, 0x9d, 0xd7, 0xbc, 0x50, 0x5e, 0xf6, 0x1d, 0xc1, 0x6f, 0x41, 0x3f, 0xc4,
+ 0x22, 0xd8, 0x37, 0xff, 0x7e, 0xfb, 0xa1, 0xd9, 0x68, 0x93, 0x87, 0x46, 0xb0, 0xba, 0x8f, 0x08,
+ 0x8e, 0xd3, 0x1f, 0xcd, 0x46, 0x9b, 0x36, 0x3c, 0x82, 0x6f, 0xb9, 0x9b, 0xf9, 0x94, 0x02, 0x63,
+ 0xe5, 0x7a, 0xad, 0xd4, 0xdc, 0x44, 0xb5, 0x1a, 0xaa, 0x31, 0x3b, 0xce, 0x0b, 0x95, 0xa0, 0x87,
+ 0xab, 0x5f, 0x7c, 0x69, 0xda, 0xb7, 0xf0, 0x59, 0x48, 0x51, 0x9b, 0xce, 0xcf, 0xa7, 0x6f, 0x28,
+ 0x11, 0x15, 0xce, 0x63, 0xd5, 0x8f, 0x73, 0xd8, 0xe9, 0xf9, 0xf4, 0xdf, 0x2b, 0x81, 0x2a, 0xe7,
+ 0x0d, 0x67, 0x3e, 0x42, 0x34, 0xb4, 0x6e, 0x59, 0xc3, 0x53, 0xb1, 0x34, 0x0c, 0xe8, 0x76, 0x7b,
+ 0x97, 0x6e, 0x01, 0xad, 0x3a, 0x30, 0x5a, 0xae, 0xd7, 0xca, 0xe4, 0xc7, 0x04, 0xe2, 0xa8, 0x44,
+ 0x79, 0xa4, 0x7a, 0x30, 0x2f, 0x84, 0x65, 0x10, 0xe1, 0x85, 0xb4, 0x58, 0x23, 0x32, 0x75, 0xfc,
+ 0x58, 0x4b, 0x78, 0xec, 0x6c, 0xaf, 0xc7, 0xfa, 0x95, 0xdd, 0x7b, 0xe0, 0x6c, 0xaf, 0x07, 0xfa,
+ 0x39, 0xe4, 0x3d, 0xea, 0x29, 0xbe, 0x38, 0xd3, 0xab, 0x59, 0xfa, 0x51, 0x48, 0x2c, 0xd1, 0x9b,
+ 0xe3, 0x43, 0xf9, 0x21, 0xac, 0xd4, 0xf7, 0x5e, 0x9a, 0x4e, 0x6e, 0x74, 0xea, 0x35, 0x23, 0xb1,
+ 0x54, 0xd3, 0xaf, 0x42, 0xdf, 0xbb, 0xd9, 0x9f, 0xb4, 0x62, 0x86, 0x45, 0xc6, 0x70, 0x5f, 0xcf,
+ 0x3d, 0x22, 0xfc, 0xe0, 0x53, 0x74, 0x9b, 0x72, 0x6e, 0xa3, 0x6e, 0xb9, 0xa7, 0x17, 0x2e, 0x18,
+ 0x54, 0x44, 0xe6, 0x7f, 0x03, 0xd0, 0x67, 0x16, 0x4d, 0x67, 0x47, 0x2f, 0x73, 0xc9, 0xf4, 0xd1,
+ 0x17, 0xbe, 0xf7, 0xd2, 0xf4, 0x62, 0x1c, 0xa9, 0xf7, 0xd7, 0x4c, 0x67, 0xe7, 0x7e, 0x77, 0xb7,
+ 0x85, 0xe6, 0xf2, 0xbb, 0x2e, 0x72, 0xb8, 0xf4, 0x16, 0x5f, 0xf5, 0xd8, 0xbc, 0xd2, 0x81, 0x79,
+ 0xa5, 0x84, 0x39, 0x5d, 0x16, 0xe7, 0x34, 0xff, 0x46, 0xe7, 0xf3, 0x14, 0x5f, 0x24, 0x24, 0x4b,
+ 0xaa, 0x51, 0x96, 0x54, 0x6f, 0xd5, 0x92, 0x2d, 0x5e, 0x1f, 0xa5, 0xb9, 0xaa, 0x7b, 0xcd, 0x55,
+ 0xbd, 0x95, 0xb9, 0xfe, 0x37, 0xcd, 0x56, 0x2f, 0x9f, 0x36, 0x2c, 0x7a, 0x6b, 0xf5, 0xe7, 0x6b,
+ 0x2f, 0xe8, 0x4d, 0xed, 0x02, 0xb2, 0xc9, 0x1b, 0xcf, 0x4d, 0x2b, 0x99, 0x4f, 0x25, 0xf8, 0xcc,
+ 0x69, 0x22, 0xbd, 0xb1, 0x99, 0xff, 0xbc, 0xf4, 0x54, 0x6f, 0x85, 0x85, 0x9e, 0x55, 0x60, 0xa2,
+ 0xab, 0x92, 0x53, 0x33, 0xbd, 0xb9, 0xe5, 0xdc, 0xda, 0x6f, 0x39, 0x67, 0x0a, 0x7e, 0x55, 0x81,
+ 0x43, 0x52, 0x79, 0xa5, 0xea, 0x9d, 0x92, 0xd4, 0x3b, 0xd2, 0xfd, 0x24, 0xc2, 0x18, 0xd0, 0x2e,
+ 0xe8, 0x5e, 0x09, 0x10, 0x90, 0xec, 0xf9, 0x7d, 0x51, 0xf2, 0xfb, 0x51, 0x0f, 0x10, 0x62, 0x2e,
+ 0x1e, 0x01, 0x4c, 0x6d, 0x1b, 0x92, 0xeb, 0x6d, 0x84, 0xf4, 0x29, 0x48, 0xac, 0xb4, 0x99, 0x86,
+ 0x23, 0x14, 0xbf, 0xd2, 0xce, 0xb7, 0x4d, 0xab, 0xba, 0x63, 0x24, 0x56, 0xda, 0xfa, 0x71, 0x50,
+ 0x73, 0xec, 0xcf, 0xe9, 0x07, 0x17, 0x46, 0x29, 0x43, 0xce, 0xaa, 0x31, 0x0e, 0x4c, 0xd3, 0xa7,
+ 0x20, 0x79, 0x0d, 0x99, 0x5b, 0x4c, 0x09, 0xa0, 0x3c, 0x78, 0xc4, 0x20, 0xe3, 0xec, 0x81, 0x8f,
+ 0x42, 0x8a, 0x0b, 0xd6, 0x4f, 0x60, 0xc4, 0x96, 0xcb, 0x1e, 0xcb, 0x10, 0x58, 0x1d, 0xb6, 0x72,
+ 0x11, 0xaa, 0x7e, 0x12, 0xfa, 0x8c, 0xfa, 0xf6, 0x8e, 0xcb, 0x1e, 0xde, 0xcd, 0x46, 0xc9, 0x99,
+ 0xeb, 0x30, 0xe0, 0x69, 0xf4, 0x26, 0x8b, 0x2e, 0xd2, 0xa9, 0xe9, 0x93, 0xc1, 0xf5, 0x84, 0xef,
+ 0x5b, 0xd2, 0x21, 0xfd, 0x18, 0xa4, 0xd6, 0xdc, 0xb6, 0x5f, 0xf4, 0x79, 0x47, 0xea, 0x8d, 0x66,
+ 0xde, 0xaf, 0x40, 0xaa, 0x88, 0x50, 0x8b, 0x18, 0xfc, 0x2e, 0x48, 0x16, 0xed, 0x27, 0x2d, 0xa6,
+ 0xe0, 0x18, 0xb3, 0x28, 0x26, 0x33, 0x9b, 0x12, 0xb2, 0x7e, 0x57, 0xd0, 0xee, 0xe3, 0x9e, 0xdd,
+ 0x03, 0x7c, 0xc4, 0xf6, 0x19, 0xc1, 0xf6, 0xcc, 0x81, 0x98, 0xa9, 0xcb, 0xfe, 0xe7, 0x61, 0x30,
+ 0xf0, 0x14, 0x7d, 0x86, 0xa9, 0x91, 0x90, 0x81, 0x41, 0x5b, 0x61, 0x8e, 0x0c, 0x82, 0x61, 0xe1,
+ 0xc1, 0x18, 0x1a, 0x30, 0x71, 0x0f, 0x28, 0x31, 0xf3, 0xac, 0x68, 0xe6, 0x70, 0x56, 0x66, 0xea,
+ 0x79, 0x6a, 0x23, 0x62, 0xee, 0x13, 0x34, 0x38, 0x7b, 0x3b, 0x11, 0x7f, 0xce, 0xf4, 0x81, 0x5a,
+ 0xae, 0x37, 0x32, 0x0f, 0x00, 0xd0, 0x94, 0x2f, 0x59, 0x9d, 0xa6, 0x94, 0x75, 0x23, 0xdc, 0xc0,
+ 0xeb, 0x3b, 0x68, 0x1d, 0x39, 0x84, 0x45, 0xec, 0xa7, 0x70, 0x81, 0x01, 0x9a, 0x62, 0x04, 0x7f,
+ 0x4f, 0x24, 0x3e, 0xb4, 0x13, 0xc3, 0xac, 0x69, 0xca, 0x7a, 0x1d, 0xb9, 0x39, 0xcb, 0x76, 0x77,
+ 0x50, 0x5b, 0x42, 0x2c, 0xe8, 0x67, 0x84, 0x84, 0x1d, 0x59, 0xb8, 0xdd, 0x43, 0xf4, 0x04, 0x9d,
+ 0xc9, 0x7c, 0x99, 0x28, 0x88, 0x5b, 0x81, 0xae, 0x09, 0xaa, 0x31, 0x26, 0xa8, 0x9f, 0x13, 0xfa,
+ 0xb7, 0x3d, 0xd4, 0x94, 0x5e, 0x2d, 0x2f, 0x0a, 0xef, 0x39, 0x7b, 0x2b, 0x2b, 0xbe, 0x63, 0x72,
+ 0x9b, 0x72, 0x95, 0xef, 0x89, 0x54, 0xb9, 0x47, 0x77, 0xbb, 0x5f, 0x9b, 0xaa, 0x71, 0x6d, 0xfa,
+ 0x4d, 0xaf, 0xe3, 0xa0, 0xbf, 0x59, 0x42, 0x7e, 0xed, 0x47, 0xbf, 0x2f, 0xd2, 0xf7, 0x59, 0xa5,
+ 0xe0, 0xa9, 0xba, 0x18, 0xd7, 0xfd, 0xd9, 0x44, 0x3e, 0xef, 0xa9, 0x7b, 0x7e, 0x1f, 0x21, 0x90,
+ 0x4d, 0x14, 0x0a, 0x5e, 0xd9, 0x4e, 0x7d, 0xe8, 0xb9, 0x69, 0xe5, 0xf9, 0xe7, 0xa6, 0x0f, 0x64,
+ 0xbe, 0xa8, 0xc0, 0x18, 0xe3, 0x0c, 0x04, 0xee, 0xfd, 0x92, 0xf2, 0x87, 0x79, 0xcd, 0x08, 0xb3,
+ 0xc0, 0xdb, 0x16, 0xbc, 0xdf, 0x56, 0x20, 0xdd, 0xa5, 0x2b, 0xb7, 0xf7, 0x7c, 0x2c, 0x95, 0xb3,
+ 0x4a, 0xe9, 0x67, 0x6f, 0xf3, 0xeb, 0xd0, 0xb7, 0x5e, 0x6f, 0xa2, 0x36, 0x5e, 0x09, 0xf0, 0x07,
+ 0xaa, 0x32, 0x3f, 0xcc, 0xa1, 0x43, 0x9c, 0x46, 0x95, 0x13, 0x68, 0x0b, 0x7a, 0x1a, 0x92, 0x45,
+ 0xd3, 0x35, 0x89, 0x06, 0x43, 0x5e, 0x7d, 0x35, 0x5d, 0x33, 0x73, 0x06, 0x86, 0x96, 0x77, 0xc9,
+ 0x55, 0xa3, 0x1a, 0xb9, 0x65, 0x22, 0x76, 0x7f, 0xbc, 0x5f, 0x3d, 0x3d, 0xdb, 0x97, 0xaa, 0x69,
+ 0x37, 0x94, 0x6c, 0x92, 0xe8, 0xf3, 0x04, 0x8c, 0xac, 0x60, 0xb5, 0x09, 0x4e, 0x80, 0xd1, 0xa7,
+ 0xab, 0xde, 0xe4, 0xa5, 0xa6, 0x4c, 0xf5, 0x9b, 0xb2, 0x63, 0xa0, 0x2c, 0x8b, 0xad, 0x53, 0x50,
+ 0x0f, 0x43, 0x59, 0x9e, 0x4d, 0xa6, 0x46, 0xb4, 0xb1, 0xd9, 0x64, 0x0a, 0xb4, 0x61, 0xf6, 0xdc,
+ 0xbf, 0x55, 0x41, 0xa3, 0xad, 0x4e, 0x11, 0x6d, 0xd5, 0xad, 0xba, 0xdb, 0xdd, 0xaf, 0x7a, 0x1a,
+ 0xeb, 0x0f, 0xc1, 0x00, 0x36, 0xe9, 0x65, 0xf6, 0xa3, 0x7f, 0xd8, 0xf4, 0xc7, 0x59, 0x8b, 0x22,
+ 0x89, 0x60, 0x03, 0x24, 0x74, 0x7c, 0x8c, 0x7e, 0x19, 0xd4, 0x72, 0x79, 0x99, 0x2d, 0x6e, 0x8b,
+ 0x7b, 0x42, 0xd9, 0x75, 0x1e, 0xf6, 0x8d, 0x8d, 0x39, 0xdb, 0x06, 0x16, 0xa0, 0x2f, 0x42, 0xa2,
+ 0xbc, 0xcc, 0x1a, 0xde, 0x13, 0x71, 0xc4, 0x18, 0x89, 0xf2, 0xf2, 0xe4, 0x5f, 0x2b, 0x30, 0x2c,
+ 0x8c, 0xea, 0x19, 0x18, 0xa2, 0x03, 0x81, 0xe9, 0xf6, 0x1b, 0xc2, 0x18, 0xd7, 0x39, 0x71, 0x8b,
+ 0x3a, 0x4f, 0xe6, 0x60, 0x54, 0x1a, 0xd7, 0xe7, 0x40, 0x0f, 0x0e, 0x31, 0x25, 0xe8, 0x0f, 0x8e,
+ 0x85, 0x50, 0x32, 0x77, 0x00, 0xf8, 0x76, 0xf5, 0x7e, 0x27, 0xab, 0x5c, 0x5a, 0x5b, 0x2f, 0x15,
+ 0x35, 0x25, 0xf3, 0x35, 0x05, 0x06, 0x59, 0xdb, 0x5a, 0xb5, 0x5b, 0x48, 0xcf, 0x83, 0x92, 0x63,
+ 0xf1, 0xf0, 0xc6, 0xf4, 0x56, 0x72, 0xfa, 0x29, 0x50, 0xf2, 0xf1, 0x5d, 0xad, 0xe4, 0xf5, 0x05,
+ 0x50, 0x0a, 0xcc, 0xc1, 0xf1, 0x3c, 0xa3, 0x14, 0x32, 0x3f, 0x56, 0x61, 0x3c, 0xd8, 0x46, 0xf3,
+ 0x7a, 0x72, 0x5c, 0x7c, 0x6f, 0xca, 0x0e, 0x9c, 0x5e, 0x38, 0xb3, 0x38, 0x87, 0xff, 0xf1, 0x42,
+ 0x32, 0x23, 0xbe, 0x42, 0x65, 0xc1, 0x63, 0x39, 0xdd, 0xeb, 0x9e, 0x48, 0x36, 0x19, 0x90, 0xd0,
+ 0x75, 0x4f, 0x44, 0xa0, 0x76, 0xdd, 0x13, 0x11, 0xa8, 0x5d, 0xf7, 0x44, 0x04, 0x6a, 0xd7, 0x59,
+ 0x80, 0x40, 0xed, 0xba, 0x27, 0x22, 0x50, 0xbb, 0xee, 0x89, 0x08, 0xd4, 0xee, 0x7b, 0x22, 0x8c,
+ 0xdc, 0xf3, 0x9e, 0x88, 0x48, 0xef, 0xbe, 0x27, 0x22, 0xd2, 0xbb, 0xef, 0x89, 0x64, 0x93, 0x6e,
+ 0xbb, 0x83, 0x7a, 0x9f, 0x3a, 0x88, 0xf8, 0xbd, 0x5e, 0x02, 0xfd, 0x0a, 0xbc, 0x02, 0xa3, 0x74,
+ 0x43, 0xa2, 0x60, 0x5b, 0xae, 0x59, 0xb7, 0x50, 0x5b, 0x7f, 0x07, 0x0c, 0xd1, 0x21, 0xfa, 0x9a,
+ 0x13, 0xf6, 0x1a, 0x48, 0xe9, 0xac, 0xde, 0x0a, 0xdc, 0x99, 0x9f, 0x26, 0x61, 0x82, 0x0e, 0x94,
+ 0xcd, 0x26, 0x12, 0x6e, 0x19, 0x9d, 0x94, 0xce, 0x94, 0x46, 0x30, 0xfc, 0xe6, 0x4b, 0xd3, 0x74,
+ 0x34, 0xe7, 0x45, 0xd3, 0x49, 0xe9, 0x74, 0x49, 0xe4, 0xf3, 0x17, 0xa0, 0x93, 0xd2, 0xcd, 0x23,
+ 0x91, 0xcf, 0x5b, 0x6f, 0x3c, 0x3e, 0x7e, 0x07, 0x49, 0xe4, 0x2b, 0x7a, 0x51, 0x76, 0x52, 0xba,
+ 0x8d, 0x24, 0xf2, 0x95, 0xbc, 0x78, 0x3b, 0x29, 0x9d, 0x3d, 0x89, 0x7c, 0x97, 0xbd, 0xc8, 0x3b,
+ 0x29, 0x9d, 0x42, 0x89, 0x7c, 0x57, 0xbc, 0x18, 0x3c, 0x29, 0xdd, 0x55, 0x12, 0xf9, 0x1e, 0xf6,
+ 0xa2, 0xf1, 0xa4, 0x74, 0x6b, 0x49, 0xe4, 0x5b, 0xf2, 0xe2, 0x72, 0x46, 0xbe, 0xbf, 0x24, 0x32,
+ 0x5e, 0xf5, 0x23, 0x74, 0x46, 0xbe, 0xc9, 0x24, 0x72, 0xbe, 0xd3, 0x8f, 0xd5, 0x19, 0xf9, 0x4e,
+ 0x93, 0xc8, 0x79, 0xcd, 0x8f, 0xda, 0x19, 0xf9, 0xac, 0x4c, 0xe4, 0x5c, 0xf6, 0xe3, 0x77, 0x46,
+ 0x3e, 0x35, 0x13, 0x39, 0xcb, 0x7e, 0x24, 0xcf, 0xc8, 0xe7, 0x67, 0x22, 0xe7, 0x8a, 0xbf, 0x89,
+ 0xfe, 0x2d, 0x29, 0xfc, 0x02, 0xb7, 0xa0, 0x32, 0x52, 0xf8, 0x41, 0x48, 0xe8, 0x49, 0x85, 0x2c,
+ 0xc0, 0xe3, 0x87, 0x5d, 0x46, 0x0a, 0x3b, 0x08, 0x09, 0xb9, 0x8c, 0x14, 0x72, 0x10, 0x12, 0x6e,
+ 0x19, 0x29, 0xdc, 0x20, 0x24, 0xd4, 0x32, 0x52, 0xa8, 0x41, 0x48, 0x98, 0x65, 0xa4, 0x30, 0x83,
+ 0x90, 0x10, 0xcb, 0x48, 0x21, 0x06, 0x21, 0xe1, 0x95, 0x91, 0xc2, 0x0b, 0x42, 0x42, 0xeb, 0x84,
+ 0x1c, 0x5a, 0x10, 0x16, 0x56, 0x27, 0xe4, 0xb0, 0x82, 0xb0, 0x90, 0xba, 0x53, 0x0e, 0xa9, 0x81,
+ 0x9b, 0x2f, 0x4d, 0xf7, 0xe1, 0xa1, 0x40, 0x34, 0x9d, 0x90, 0xa3, 0x09, 0xc2, 0x22, 0xe9, 0x84,
+ 0x1c, 0x49, 0x10, 0x16, 0x45, 0x27, 0xe4, 0x28, 0x82, 0xb0, 0x08, 0x7a, 0x41, 0x8e, 0x20, 0xff,
+ 0x8e, 0x4f, 0x46, 0x3a, 0x52, 0x8c, 0x8a, 0x20, 0x35, 0x46, 0x04, 0xa9, 0x31, 0x22, 0x48, 0x8d,
+ 0x11, 0x41, 0x6a, 0x8c, 0x08, 0x52, 0x63, 0x44, 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x18, 0x11, 0xa4,
+ 0xc6, 0x89, 0x20, 0x35, 0x56, 0x04, 0xa9, 0xbd, 0x22, 0xe8, 0x84, 0x7c, 0xe3, 0x01, 0xc2, 0x0a,
+ 0xd2, 0x09, 0xf9, 0xe8, 0x33, 0x3a, 0x84, 0xd4, 0x58, 0x21, 0xa4, 0xf6, 0x0a, 0xa1, 0x6f, 0xa9,
+ 0x30, 0x2e, 0x84, 0x10, 0x3b, 0x1f, 0x7a, 0xb3, 0x2a, 0xd0, 0xb9, 0x18, 0x17, 0x2c, 0xc2, 0x62,
+ 0xea, 0x5c, 0x8c, 0x43, 0xea, 0xbd, 0xe2, 0xac, 0xbb, 0x0a, 0x95, 0x62, 0x54, 0xa1, 0xcb, 0x5e,
+ 0x0c, 0x9d, 0x8b, 0x71, 0xf1, 0xa2, 0x3b, 0xf6, 0x2e, 0xec, 0x55, 0x04, 0x1e, 0x8e, 0x55, 0x04,
+ 0x96, 0x62, 0x15, 0x81, 0xab, 0xbe, 0x07, 0x3f, 0x98, 0x80, 0x43, 0xbe, 0x07, 0xe9, 0x27, 0xf2,
+ 0xdb, 0x59, 0x99, 0xc0, 0x11, 0x95, 0xce, 0x8f, 0x6d, 0x02, 0x6e, 0x4c, 0x2c, 0xd5, 0xf4, 0x55,
+ 0xf1, 0xb0, 0x2a, 0xbb, 0xdf, 0x03, 0x9c, 0x80, 0xc7, 0xd9, 0x66, 0xe8, 0x09, 0x50, 0x97, 0x6a,
+ 0x0e, 0xa9, 0x16, 0x61, 0x8f, 0x2d, 0x18, 0x98, 0xac, 0x1b, 0xd0, 0x4f, 0xd8, 0x1d, 0xe2, 0xde,
+ 0x5b, 0x79, 0x70, 0xd1, 0x60, 0x92, 0x32, 0x2f, 0x28, 0x70, 0x4c, 0x08, 0xe5, 0x37, 0xe7, 0xc8,
+ 0xe0, 0x52, 0xac, 0x23, 0x03, 0x21, 0x41, 0xfc, 0xe3, 0x83, 0xbb, 0xbb, 0x4f, 0xaa, 0x83, 0x59,
+ 0x22, 0x1f, 0x25, 0xfc, 0x3f, 0x18, 0xf1, 0x67, 0x40, 0xde, 0xd9, 0xce, 0x46, 0xef, 0x66, 0x86,
+ 0xa5, 0xe6, 0x59, 0x69, 0x17, 0x6d, 0x4f, 0x98, 0x97, 0xad, 0x99, 0x2c, 0x8c, 0x96, 0xc5, 0x3f,
+ 0x7a, 0x8a, 0xda, 0x8c, 0x48, 0xe1, 0xd6, 0xfc, 0xc6, 0xa7, 0xa7, 0x0f, 0x64, 0xee, 0x83, 0xa1,
+ 0xe0, 0xdf, 0x35, 0x49, 0xc0, 0x01, 0x0e, 0xcc, 0x26, 0x5f, 0xc4, 0xdc, 0xbf, 0xab, 0xc0, 0xe1,
+ 0x20, 0xfb, 0x23, 0x75, 0x77, 0x67, 0xc9, 0xc2, 0x3d, 0xfd, 0x03, 0x90, 0x42, 0xcc, 0x71, 0xec,
+ 0x67, 0x70, 0xd8, 0x7b, 0x64, 0x28, 0xfb, 0x1c, 0xf9, 0xd7, 0xf0, 0x20, 0xd2, 0x2e, 0x08, 0x7f,
+ 0xec, 0xc2, 0xe4, 0x5d, 0xd0, 0x47, 0xe5, 0x8b, 0x7a, 0x0d, 0x4b, 0x7a, 0x7d, 0x2e, 0x44, 0x2f,
+ 0x12, 0x47, 0xfa, 0x55, 0x41, 0xaf, 0xc0, 0xeb, 0x6a, 0x28, 0xfb, 0x1c, 0x0f, 0xbe, 0x7c, 0x0a,
+ 0xf7, 0x7f, 0x24, 0xa2, 0xa2, 0x95, 0x9c, 0x81, 0x54, 0x49, 0xe6, 0x09, 0xd7, 0xb3, 0x08, 0xc9,
+ 0xb2, 0x5d, 0x23, 0x3f, 0xd0, 0x43, 0x7e, 0xea, 0x9a, 0x19, 0x99, 0xfd, 0xee, 0xf5, 0x49, 0x48,
+ 0x15, 0x76, 0xea, 0x8d, 0x5a, 0x1b, 0x59, 0xec, 0xcc, 0x9e, 0x6d, 0xa1, 0x63, 0x8c, 0xe1, 0xd1,
+ 0x32, 0x05, 0x18, 0x2b, 0xdb, 0x56, 0x7e, 0xd7, 0x0d, 0xd6, 0x8d, 0x39, 0x29, 0x45, 0xd8, 0x99,
+ 0x0f, 0xf9, 0x3b, 0x10, 0xcc, 0x90, 0xef, 0xfb, 0xde, 0x4b, 0xd3, 0xca, 0xba, 0xb7, 0x7f, 0xbe,
+ 0x0c, 0x47, 0x58, 0xfa, 0x74, 0x89, 0x5a, 0x88, 0x12, 0x35, 0xc0, 0xce, 0xa9, 0x03, 0xe2, 0x96,
+ 0xb0, 0x38, 0x2b, 0x54, 0xdc, 0x1b, 0xd3, 0x0c, 0x37, 0x45, 0x7b, 0x6a, 0xa6, 0xee, 0x4b, 0xb3,
+ 0x50, 0x71, 0x73, 0x51, 0xe2, 0x24, 0xcd, 0xee, 0x84, 0x01, 0x8f, 0x16, 0x88, 0x86, 0x60, 0xa6,
+ 0x2c, 0xcc, 0x66, 0x60, 0x30, 0x90, 0xb0, 0x7a, 0x1f, 0x28, 0x39, 0xed, 0x00, 0xfe, 0x2f, 0xaf,
+ 0x29, 0xf8, 0xbf, 0x82, 0x96, 0x98, 0xbd, 0x0b, 0x46, 0xa5, 0xfd, 0x4b, 0x4c, 0x29, 0x6a, 0x80,
+ 0xff, 0x2b, 0x69, 0x83, 0x93, 0xc9, 0x0f, 0x7d, 0x76, 0xea, 0xc0, 0xec, 0x25, 0xd0, 0xbb, 0x77,
+ 0x3a, 0xf5, 0x7e, 0x48, 0xe4, 0xb0, 0xc8, 0x23, 0x90, 0xc8, 0xe7, 0x35, 0x65, 0x72, 0xf4, 0x97,
+ 0x3f, 0x79, 0x6c, 0x30, 0x4f, 0xfe, 0x68, 0xfb, 0x3a, 0x72, 0xf3, 0x79, 0x06, 0x7e, 0x10, 0x0e,
+ 0x87, 0xee, 0x94, 0x62, 0x7c, 0xa1, 0x40, 0xf1, 0xc5, 0x62, 0x17, 0xbe, 0x58, 0x24, 0x78, 0x25,
+ 0xcb, 0x4f, 0x9c, 0x73, 0x7a, 0xc8, 0x2e, 0x63, 0xba, 0x16, 0x38, 0xe1, 0xce, 0x65, 0x1f, 0x64,
+ 0xbc, 0xf9, 0x50, 0x5e, 0x14, 0x71, 0x62, 0x9d, 0xcf, 0x16, 0x18, 0xbe, 0x10, 0x8a, 0xdf, 0x92,
+ 0x8e, 0x55, 0xc5, 0x15, 0x82, 0x09, 0x29, 0x78, 0x0a, 0x17, 0x43, 0x85, 0xec, 0x04, 0x2e, 0xbb,
+ 0x17, 0x3d, 0x85, 0x4b, 0xa1, 0xbc, 0xf5, 0x88, 0x4b, 0x5f, 0xa5, 0xec, 0x29, 0xb6, 0xc8, 0xe7,
+ 0x4e, 0xeb, 0x87, 0x79, 0x8e, 0x0a, 0x15, 0x98, 0x19, 0x88, 0x73, 0x65, 0x0b, 0x0c, 0x90, 0xef,
+ 0x09, 0xe8, 0x6d, 0x25, 0x8e, 0xcc, 0x3e, 0xcc, 0x84, 0x14, 0x7a, 0x0a, 0x89, 0x30, 0x15, 0x87,
+ 0xe7, 0xd7, 0x6f, 0xbc, 0x3c, 0x75, 0xe0, 0xc5, 0x97, 0xa7, 0x0e, 0xfc, 0xc3, 0xcb, 0x53, 0x07,
+ 0xbe, 0xff, 0xf2, 0x94, 0xf2, 0xc3, 0x97, 0xa7, 0x94, 0x1f, 0xbd, 0x3c, 0xa5, 0xfc, 0xe4, 0xe5,
+ 0x29, 0xe5, 0x99, 0x9b, 0x53, 0xca, 0xf3, 0x37, 0xa7, 0x94, 0x2f, 0xdf, 0x9c, 0x52, 0xbe, 0x7e,
+ 0x73, 0x4a, 0x79, 0xe1, 0xe6, 0x94, 0x72, 0xe3, 0xe6, 0x94, 0xf2, 0xe2, 0xcd, 0x29, 0xe5, 0xfb,
+ 0x37, 0xa7, 0x94, 0x1f, 0xde, 0x9c, 0x3a, 0xf0, 0xa3, 0x9b, 0x53, 0xca, 0x4f, 0x6e, 0x4e, 0x1d,
+ 0x78, 0xe6, 0x95, 0xa9, 0x03, 0xcf, 0xbd, 0x32, 0x75, 0xe0, 0xf9, 0x57, 0xa6, 0x94, 0xff, 0x09,
+ 0x00, 0x00, 0xff, 0xff, 0xb3, 0x44, 0x1b, 0x6f, 0x3e, 0x69, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -31498,7 +31718,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31548,7 +31768,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Field3 |= (int32(b) & 0x7F) << shift
+ m.Field3 |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31567,7 +31787,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Field4 |= (int64(b) & 0x7F) << shift
+ m.Field4 |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31586,7 +31806,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Field5 |= (uint32(b) & 0x7F) << shift
+ m.Field5 |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31605,7 +31825,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Field6 |= (uint64(b) & 0x7F) << shift
+ m.Field6 |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31624,7 +31844,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31645,7 +31865,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31706,7 +31926,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31726,7 +31946,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31736,6 +31956,9 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -31755,7 +31978,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31764,6 +31987,9 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -31781,6 +32007,9 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -31809,7 +32038,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31861,7 +32090,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31881,7 +32110,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31901,7 +32130,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31921,7 +32150,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31941,7 +32170,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31962,7 +32191,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32028,7 +32257,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32049,7 +32278,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32059,6 +32288,9 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32079,7 +32311,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32088,6 +32320,9 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32105,6 +32340,9 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -32133,7 +32371,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32168,7 +32406,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32177,6 +32415,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32219,7 +32460,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32228,6 +32469,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32261,7 +32505,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32278,7 +32522,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32287,12 +32531,15 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -32312,7 +32559,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32334,7 +32581,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32351,7 +32598,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32360,12 +32607,15 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -32385,7 +32635,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32407,7 +32657,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32424,7 +32674,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32433,12 +32683,15 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -32458,7 +32711,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32480,7 +32733,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32497,7 +32750,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32506,12 +32759,15 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -32531,7 +32787,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32553,7 +32809,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32571,7 +32827,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32580,12 +32836,15 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -32605,7 +32864,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32628,7 +32887,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32646,7 +32905,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32655,12 +32914,15 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -32680,7 +32942,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32711,7 +32973,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32720,6 +32982,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32760,7 +33025,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32769,6 +33034,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32809,7 +33077,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32818,6 +33086,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32858,7 +33129,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32867,6 +33138,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32899,7 +33173,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32916,7 +33190,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32925,6 +33199,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32944,7 +33221,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32968,7 +33245,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32978,6 +33255,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32997,7 +33277,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33006,6 +33286,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33021,6 +33304,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -33049,7 +33335,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33084,7 +33370,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33093,6 +33379,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33135,7 +33424,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33144,6 +33433,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33177,7 +33469,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33194,7 +33486,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33203,12 +33495,15 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -33228,7 +33523,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33250,7 +33545,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33267,7 +33562,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33276,12 +33571,15 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -33301,7 +33599,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33323,7 +33621,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33340,7 +33638,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33349,12 +33647,15 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -33374,7 +33675,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33396,7 +33697,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33413,7 +33714,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33422,12 +33723,15 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -33447,7 +33751,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33469,7 +33773,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33487,7 +33791,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33496,12 +33800,15 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -33521,7 +33828,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33544,7 +33851,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33562,7 +33869,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33571,12 +33878,15 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -33596,7 +33906,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33627,7 +33937,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33636,6 +33946,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33676,7 +33989,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33685,6 +33998,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33725,7 +34041,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33734,6 +34050,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33774,7 +34093,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33783,6 +34102,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33815,7 +34137,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33832,7 +34154,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33841,6 +34163,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33860,7 +34185,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33884,7 +34209,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33894,6 +34219,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33913,7 +34241,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33922,6 +34250,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33937,6 +34268,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -33965,7 +34299,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34000,7 +34334,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34009,6 +34343,9 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34051,7 +34388,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34060,6 +34397,9 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34093,7 +34433,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34110,7 +34450,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34119,12 +34459,15 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -34144,7 +34487,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34166,7 +34509,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34183,7 +34526,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34192,12 +34535,15 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -34217,7 +34563,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34239,7 +34585,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34256,7 +34602,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34265,12 +34611,15 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -34290,7 +34639,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34312,7 +34661,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34329,7 +34678,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34338,12 +34687,15 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -34363,7 +34715,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34385,7 +34737,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34403,7 +34755,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34412,12 +34764,15 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -34437,7 +34792,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34460,7 +34815,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34478,7 +34833,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34487,12 +34842,15 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -34512,7 +34870,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34543,7 +34901,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34552,6 +34910,9 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34592,7 +34953,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34601,6 +34962,9 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34641,7 +35005,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34650,6 +35014,9 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34690,7 +35057,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34699,6 +35066,9 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34731,7 +35101,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34748,7 +35118,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34757,6 +35127,9 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34776,7 +35149,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34795,6 +35168,9 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -34823,7 +35199,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34858,7 +35234,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34867,6 +35243,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34909,7 +35288,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34918,6 +35297,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34951,7 +35333,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34968,7 +35350,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34977,12 +35359,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -35002,7 +35387,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35024,7 +35409,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35041,7 +35426,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35050,12 +35435,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -35075,7 +35463,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35097,7 +35485,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35114,7 +35502,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35123,12 +35511,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -35148,7 +35539,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35170,7 +35561,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35187,7 +35578,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35196,12 +35587,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -35221,7 +35615,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35243,7 +35637,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35261,7 +35655,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35270,12 +35664,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -35295,7 +35692,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35318,7 +35715,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35336,7 +35733,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35345,12 +35742,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -35370,7 +35770,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35401,7 +35801,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35410,6 +35810,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35450,7 +35853,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35459,6 +35862,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35499,7 +35905,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35508,6 +35914,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35548,7 +35957,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35557,6 +35966,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35589,7 +36001,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35606,7 +36018,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35615,6 +36027,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35634,7 +36049,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35653,6 +36068,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -35681,7 +36099,7 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35731,7 +36149,7 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35740,6 +36158,9 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35761,7 +36182,7 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35770,6 +36191,9 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35791,7 +36215,7 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Field6 |= (uint64(b) & 0x7F) << shift
+ m.Field6 |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35810,7 +36234,7 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35831,7 +36255,7 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35840,6 +36264,9 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35861,7 +36288,7 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35881,7 +36308,7 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35891,6 +36318,9 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35910,7 +36340,7 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35919,6 +36349,9 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35936,6 +36369,9 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -35964,7 +36400,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36016,7 +36452,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36025,6 +36461,9 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36049,7 +36488,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36058,6 +36497,9 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36082,7 +36524,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36102,7 +36544,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36123,7 +36565,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36132,6 +36574,9 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36156,7 +36601,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36177,7 +36622,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36187,6 +36632,9 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36207,7 +36655,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36216,6 +36664,9 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36233,6 +36684,9 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -36261,7 +36715,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36296,7 +36750,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36305,6 +36759,9 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36347,7 +36804,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36356,6 +36813,9 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36391,7 +36851,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36400,6 +36860,9 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36422,7 +36885,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36431,6 +36894,9 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36451,7 +36917,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36468,7 +36934,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36477,12 +36943,15 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -36502,7 +36971,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36524,7 +36993,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36542,7 +37011,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36551,12 +37020,15 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -36576,7 +37048,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36601,7 +37073,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36610,6 +37082,9 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36630,7 +37105,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36647,7 +37122,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36656,6 +37131,9 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36675,7 +37153,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36699,7 +37177,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36709,6 +37187,9 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36728,7 +37209,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36737,6 +37218,9 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36752,6 +37236,9 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -36780,7 +37267,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36815,7 +37302,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36824,6 +37311,9 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36866,7 +37356,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36875,6 +37365,9 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36910,7 +37403,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36919,6 +37412,9 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36941,7 +37437,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36950,6 +37446,9 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36970,7 +37469,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36987,7 +37486,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36996,12 +37495,15 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -37021,7 +37523,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37043,7 +37545,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37061,7 +37563,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37070,12 +37572,15 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -37095,7 +37600,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37120,7 +37625,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37129,6 +37634,9 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37149,7 +37657,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37166,7 +37674,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37175,6 +37683,9 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37194,7 +37705,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37218,7 +37729,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37228,6 +37739,9 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37247,7 +37761,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37256,6 +37770,9 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37271,6 +37788,9 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -37299,7 +37819,7 @@ func (m *NidEmbeddedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37327,7 +37847,7 @@ func (m *NidEmbeddedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37336,6 +37856,9 @@ func (m *NidEmbeddedStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37360,7 +37883,7 @@ func (m *NidEmbeddedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37369,6 +37892,9 @@ func (m *NidEmbeddedStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37390,7 +37916,7 @@ func (m *NidEmbeddedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37405,6 +37931,9 @@ func (m *NidEmbeddedStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -37433,7 +37962,7 @@ func (m *NinEmbeddedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37461,7 +37990,7 @@ func (m *NinEmbeddedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37470,6 +37999,9 @@ func (m *NinEmbeddedStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37494,7 +38026,7 @@ func (m *NinEmbeddedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37503,6 +38035,9 @@ func (m *NinEmbeddedStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37527,7 +38062,7 @@ func (m *NinEmbeddedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37543,6 +38078,9 @@ func (m *NinEmbeddedStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -37571,7 +38109,7 @@ func (m *NidNestedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37599,7 +38137,7 @@ func (m *NidNestedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37608,6 +38146,9 @@ func (m *NidNestedStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37629,7 +38170,7 @@ func (m *NidNestedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37638,6 +38179,9 @@ func (m *NidNestedStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37655,6 +38199,9 @@ func (m *NidNestedStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -37683,7 +38230,7 @@ func (m *NinNestedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37711,7 +38258,7 @@ func (m *NinNestedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37720,6 +38267,9 @@ func (m *NinNestedStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37744,7 +38294,7 @@ func (m *NinNestedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37753,6 +38303,9 @@ func (m *NinNestedStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37770,6 +38323,9 @@ func (m *NinNestedStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -37798,7 +38354,7 @@ func (m *NidOptCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37826,7 +38382,7 @@ func (m *NidOptCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37835,6 +38391,9 @@ func (m *NidOptCustom) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37856,7 +38415,7 @@ func (m *NidOptCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37865,6 +38424,9 @@ func (m *NidOptCustom) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37881,6 +38443,9 @@ func (m *NidOptCustom) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -37909,7 +38474,7 @@ func (m *CustomDash) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37937,7 +38502,7 @@ func (m *CustomDash) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37946,6 +38511,9 @@ func (m *CustomDash) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37964,6 +38532,9 @@ func (m *CustomDash) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -37992,7 +38563,7 @@ func (m *NinOptCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38020,7 +38591,7 @@ func (m *NinOptCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38029,6 +38600,9 @@ func (m *NinOptCustom) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38052,7 +38626,7 @@ func (m *NinOptCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38061,6 +38635,9 @@ func (m *NinOptCustom) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38079,6 +38656,9 @@ func (m *NinOptCustom) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -38107,7 +38687,7 @@ func (m *NidRepCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38135,7 +38715,7 @@ func (m *NidRepCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38144,6 +38724,9 @@ func (m *NidRepCustom) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38167,7 +38750,7 @@ func (m *NidRepCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38176,6 +38759,9 @@ func (m *NidRepCustom) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38194,6 +38780,9 @@ func (m *NidRepCustom) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -38222,7 +38811,7 @@ func (m *NinRepCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38250,7 +38839,7 @@ func (m *NinRepCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38259,6 +38848,9 @@ func (m *NinRepCustom) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38282,7 +38874,7 @@ func (m *NinRepCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38291,6 +38883,9 @@ func (m *NinRepCustom) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38309,6 +38904,9 @@ func (m *NinRepCustom) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -38337,7 +38935,7 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38389,7 +38987,7 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38409,7 +39007,7 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38429,7 +39027,7 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38449,7 +39047,7 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38469,7 +39067,7 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38490,7 +39088,7 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38500,6 +39098,9 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38520,7 +39121,7 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38529,6 +39130,9 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38546,6 +39150,9 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -38574,7 +39181,7 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38626,7 +39233,7 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38635,6 +39242,9 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38659,7 +39269,7 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38668,6 +39278,9 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38692,7 +39305,7 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38712,7 +39325,7 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38733,7 +39346,7 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38754,7 +39367,7 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38764,6 +39377,9 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38784,7 +39400,7 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38793,6 +39409,9 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38810,6 +39429,9 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -38838,7 +39460,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38866,7 +39488,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38875,6 +39497,9 @@ func (m *NinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38899,7 +39524,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38908,6 +39533,9 @@ func (m *NinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38932,7 +39560,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38948,6 +39576,9 @@ func (m *NinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -38976,7 +39607,7 @@ func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39004,7 +39635,7 @@ func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39013,6 +39644,9 @@ func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39037,7 +39671,7 @@ func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39046,6 +39680,9 @@ func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39070,7 +39707,7 @@ func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39079,6 +39716,9 @@ func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39098,6 +39738,9 @@ func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -39126,7 +39769,7 @@ func (m *Tree) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39154,7 +39797,7 @@ func (m *Tree) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39163,6 +39806,9 @@ func (m *Tree) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39187,7 +39833,7 @@ func (m *Tree) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39196,6 +39842,9 @@ func (m *Tree) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39220,7 +39869,7 @@ func (m *Tree) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39229,6 +39878,9 @@ func (m *Tree) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39248,6 +39900,9 @@ func (m *Tree) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -39276,7 +39931,7 @@ func (m *OrBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39304,7 +39959,7 @@ func (m *OrBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39313,6 +39968,9 @@ func (m *OrBranch) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39334,7 +39992,7 @@ func (m *OrBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39343,6 +40001,9 @@ func (m *OrBranch) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39359,6 +40020,9 @@ func (m *OrBranch) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -39387,7 +40051,7 @@ func (m *AndBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39415,7 +40079,7 @@ func (m *AndBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39424,6 +40088,9 @@ func (m *AndBranch) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39445,7 +40112,7 @@ func (m *AndBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39454,6 +40121,9 @@ func (m *AndBranch) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39470,6 +40140,9 @@ func (m *AndBranch) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -39498,7 +40171,7 @@ func (m *Leaf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39526,7 +40199,7 @@ func (m *Leaf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Value |= (int64(b) & 0x7F) << shift
+ m.Value |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39545,7 +40218,7 @@ func (m *Leaf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39555,6 +40228,9 @@ func (m *Leaf) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39569,6 +40245,9 @@ func (m *Leaf) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -39597,7 +40276,7 @@ func (m *DeepTree) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39625,7 +40304,7 @@ func (m *DeepTree) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39634,6 +40313,9 @@ func (m *DeepTree) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39658,7 +40340,7 @@ func (m *DeepTree) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39667,6 +40349,9 @@ func (m *DeepTree) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39691,7 +40376,7 @@ func (m *DeepTree) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39700,6 +40385,9 @@ func (m *DeepTree) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39719,6 +40407,9 @@ func (m *DeepTree) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -39747,7 +40438,7 @@ func (m *ADeepBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39775,7 +40466,7 @@ func (m *ADeepBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39784,6 +40475,9 @@ func (m *ADeepBranch) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39800,6 +40494,9 @@ func (m *ADeepBranch) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -39828,7 +40525,7 @@ func (m *AndDeepBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39856,7 +40553,7 @@ func (m *AndDeepBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39865,6 +40562,9 @@ func (m *AndDeepBranch) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39886,7 +40586,7 @@ func (m *AndDeepBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39895,6 +40595,9 @@ func (m *AndDeepBranch) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39911,6 +40614,9 @@ func (m *AndDeepBranch) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -39939,7 +40645,7 @@ func (m *DeepLeaf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39967,7 +40673,7 @@ func (m *DeepLeaf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39976,6 +40682,9 @@ func (m *DeepLeaf) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39992,6 +40701,9 @@ func (m *DeepLeaf) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40020,7 +40732,7 @@ func (m *Nil) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40043,6 +40755,9 @@ func (m *Nil) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40071,7 +40786,7 @@ func (m *NidOptEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40099,7 +40814,7 @@ func (m *NidOptEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Field1 |= (TheTestEnum(b) & 0x7F) << shift
+ m.Field1 |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40113,6 +40828,9 @@ func (m *NidOptEnum) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40141,7 +40859,7 @@ func (m *NinOptEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40169,7 +40887,7 @@ func (m *NinOptEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (TheTestEnum(b) & 0x7F) << shift
+ v |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40189,7 +40907,7 @@ func (m *NinOptEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40209,7 +40927,7 @@ func (m *NinOptEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetYetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40224,6 +40942,9 @@ func (m *NinOptEnum) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40252,7 +40973,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40278,7 +40999,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (TheTestEnum(b) & 0x7F) << shift
+ v |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40295,7 +41016,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40304,6 +41025,9 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -40322,7 +41046,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (TheTestEnum(b) & 0x7F) << shift
+ v |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40344,7 +41068,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40361,7 +41085,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40370,6 +41094,9 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -40388,7 +41115,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40410,7 +41137,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetYetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40427,7 +41154,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40436,6 +41163,9 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -40454,7 +41184,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetYetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40473,6 +41203,9 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40501,7 +41234,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40527,7 +41260,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (TheTestEnum(b) & 0x7F) << shift
+ v |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40544,7 +41277,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40553,6 +41286,9 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -40571,7 +41307,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (TheTestEnum(b) & 0x7F) << shift
+ v |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40593,7 +41329,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40610,7 +41346,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40619,6 +41355,9 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -40637,7 +41376,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40659,7 +41398,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetYetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40676,7 +41415,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40685,6 +41424,9 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -40703,7 +41445,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetYetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40722,6 +41464,9 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40750,7 +41495,7 @@ func (m *NinOptEnumDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40778,7 +41523,7 @@ func (m *NinOptEnumDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (TheTestEnum(b) & 0x7F) << shift
+ v |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40798,7 +41543,7 @@ func (m *NinOptEnumDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40818,7 +41563,7 @@ func (m *NinOptEnumDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetYetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40833,6 +41578,9 @@ func (m *NinOptEnumDefault) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40861,7 +41609,7 @@ func (m *AnotherNinOptEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40889,7 +41637,7 @@ func (m *AnotherNinOptEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (AnotherTestEnum(b) & 0x7F) << shift
+ v |= AnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40909,7 +41657,7 @@ func (m *AnotherNinOptEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40929,7 +41677,7 @@ func (m *AnotherNinOptEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetYetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40944,6 +41692,9 @@ func (m *AnotherNinOptEnum) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40972,7 +41723,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41000,7 +41751,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (AnotherTestEnum(b) & 0x7F) << shift
+ v |= AnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41020,7 +41771,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41040,7 +41791,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetYetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41055,6 +41806,9 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -41083,7 +41837,7 @@ func (m *Timer) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41131,7 +41885,7 @@ func (m *Timer) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41140,6 +41894,9 @@ func (m *Timer) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -41157,6 +41914,9 @@ func (m *Timer) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -41185,7 +41945,7 @@ func (m *MyExtendable) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41213,7 +41973,7 @@ func (m *MyExtendable) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41237,6 +41997,9 @@ func (m *MyExtendable) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -41251,6 +42014,9 @@ func (m *MyExtendable) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -41280,7 +42046,7 @@ func (m *OtherExtenable) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41308,7 +42074,7 @@ func (m *OtherExtenable) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41317,6 +42083,9 @@ func (m *OtherExtenable) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -41341,7 +42110,7 @@ func (m *OtherExtenable) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41361,7 +42130,7 @@ func (m *OtherExtenable) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41385,6 +42154,9 @@ func (m *OtherExtenable) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -41399,6 +42171,9 @@ func (m *OtherExtenable) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -41428,7 +42203,7 @@ func (m *NestedDefinition) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41456,7 +42231,7 @@ func (m *NestedDefinition) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41476,7 +42251,7 @@ func (m *NestedDefinition) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (NestedDefinition_NestedEnum(b) & 0x7F) << shift
+ v |= NestedDefinition_NestedEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41496,7 +42271,7 @@ func (m *NestedDefinition) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41505,6 +42280,9 @@ func (m *NestedDefinition) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -41529,7 +42307,7 @@ func (m *NestedDefinition) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41538,6 +42316,9 @@ func (m *NestedDefinition) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -41557,6 +42338,9 @@ func (m *NestedDefinition) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -41585,7 +42369,7 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41624,7 +42408,7 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41633,6 +42417,9 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -41652,6 +42439,9 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -41680,7 +42470,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(dAtA []byte)
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41708,7 +42498,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(dAtA []byte)
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41718,6 +42508,9 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(dAtA []byte)
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -41733,6 +42526,9 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(dAtA []byte)
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -41761,7 +42557,7 @@ func (m *NestedScope) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41789,7 +42585,7 @@ func (m *NestedScope) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41798,6 +42594,9 @@ func (m *NestedScope) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -41822,7 +42621,7 @@ func (m *NestedScope) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (NestedDefinition_NestedEnum(b) & 0x7F) << shift
+ v |= NestedDefinition_NestedEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41842,7 +42641,7 @@ func (m *NestedScope) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41851,6 +42650,9 @@ func (m *NestedScope) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -41870,6 +42672,9 @@ func (m *NestedScope) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -41898,7 +42703,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41950,7 +42755,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41970,7 +42775,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41990,7 +42795,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42010,7 +42815,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42030,7 +42835,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42051,7 +42856,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42117,7 +42922,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42138,7 +42943,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42148,6 +42953,9 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -42168,7 +42976,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42177,6 +42985,9 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -42194,6 +43005,9 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -42222,7 +43036,7 @@ func (m *CustomContainer) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42250,7 +43064,7 @@ func (m *CustomContainer) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42259,6 +43073,9 @@ func (m *CustomContainer) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -42275,6 +43092,9 @@ func (m *CustomContainer) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -42303,7 +43123,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42353,7 +43173,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.FieldC |= (int32(b) & 0x7F) << shift
+ m.FieldC |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42372,7 +43192,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.FieldD |= (int64(b) & 0x7F) << shift
+ m.FieldD |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42391,7 +43211,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.FieldE |= (uint32(b) & 0x7F) << shift
+ m.FieldE |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42410,7 +43230,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.FieldF |= (uint64(b) & 0x7F) << shift
+ m.FieldF |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42429,7 +43249,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42450,7 +43270,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42511,7 +43331,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42531,7 +43351,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42541,6 +43361,9 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -42560,7 +43383,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42569,6 +43392,9 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -42586,6 +43412,9 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -42614,7 +43443,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42666,7 +43495,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42686,7 +43515,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42706,7 +43535,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42726,7 +43555,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42746,7 +43575,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42767,7 +43596,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42833,7 +43662,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42854,7 +43683,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42864,6 +43693,9 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -42884,7 +43716,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42893,6 +43725,9 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -42910,6 +43745,9 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -42938,7 +43776,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42973,7 +43811,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -42982,6 +43820,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -43024,7 +43865,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43033,6 +43874,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -43066,7 +43910,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43083,7 +43927,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43092,12 +43936,15 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -43117,7 +43964,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43139,7 +43986,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43156,7 +44003,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43165,12 +44012,15 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -43190,7 +44040,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43212,7 +44062,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43229,7 +44079,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43238,12 +44088,15 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -43263,7 +44116,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43285,7 +44138,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43302,7 +44155,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43311,12 +44164,15 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -43336,7 +44192,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43358,7 +44214,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43376,7 +44232,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43385,12 +44241,15 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -43410,7 +44269,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43433,7 +44292,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43451,7 +44310,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43460,12 +44319,15 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -43485,7 +44347,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43516,7 +44378,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43525,6 +44387,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -43565,7 +44430,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43574,6 +44439,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -43614,7 +44482,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43623,6 +44491,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -43663,7 +44534,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43672,6 +44543,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -43704,7 +44578,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43721,7 +44595,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43730,6 +44604,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -43749,7 +44626,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43773,7 +44650,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43783,6 +44660,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -43802,7 +44682,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43811,6 +44691,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -43826,6 +44709,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -43854,7 +44740,7 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43906,7 +44792,7 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43915,6 +44801,9 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -43939,7 +44828,7 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43948,6 +44837,9 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -43970,7 +44862,7 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -43990,7 +44882,7 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44011,7 +44903,7 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44020,6 +44912,9 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -44044,7 +44939,7 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44065,7 +44960,7 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44075,6 +44970,9 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -44095,7 +44993,7 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44104,6 +45002,9 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -44121,6 +45022,9 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -44149,7 +45053,7 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44177,7 +45081,7 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44186,6 +45090,9 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -44209,7 +45116,7 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44218,6 +45125,9 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -44241,7 +45151,7 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44250,6 +45160,9 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -44273,7 +45186,7 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44282,6 +45195,9 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -44300,6 +45216,9 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -44328,7 +45247,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44356,7 +45275,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44365,6 +45284,9 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -44389,7 +45311,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44398,6 +45320,9 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -44422,7 +45347,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44438,6 +45363,9 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -44466,7 +45394,7 @@ func (m *CustomNameEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44494,7 +45422,7 @@ func (m *CustomNameEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (TheTestEnum(b) & 0x7F) << shift
+ v |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44512,7 +45440,7 @@ func (m *CustomNameEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (TheTestEnum(b) & 0x7F) << shift
+ v |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44529,7 +45457,7 @@ func (m *CustomNameEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44538,6 +45466,9 @@ func (m *CustomNameEnum) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -44556,7 +45487,7 @@ func (m *CustomNameEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (TheTestEnum(b) & 0x7F) << shift
+ v |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44575,6 +45506,9 @@ func (m *CustomNameEnum) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -44603,7 +45537,7 @@ func (m *NoExtensionsMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44631,7 +45565,7 @@ func (m *NoExtensionsMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44655,6 +45589,9 @@ func (m *NoExtensionsMap) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -44669,6 +45606,9 @@ func (m *NoExtensionsMap) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -44698,7 +45638,7 @@ func (m *Unrecognized) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44726,7 +45666,7 @@ func (m *Unrecognized) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44736,6 +45676,9 @@ func (m *Unrecognized) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -44751,6 +45694,9 @@ func (m *Unrecognized) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -44778,7 +45724,7 @@ func (m *UnrecognizedWithInner) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44806,7 +45752,7 @@ func (m *UnrecognizedWithInner) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44815,6 +45761,9 @@ func (m *UnrecognizedWithInner) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -44837,7 +45786,7 @@ func (m *UnrecognizedWithInner) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44847,6 +45796,9 @@ func (m *UnrecognizedWithInner) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -44862,6 +45814,9 @@ func (m *UnrecognizedWithInner) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -44890,7 +45845,7 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44918,7 +45873,7 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44933,6 +45888,9 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -44960,7 +45918,7 @@ func (m *UnrecognizedWithEmbed) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44988,7 +45946,7 @@ func (m *UnrecognizedWithEmbed) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -44997,6 +45955,9 @@ func (m *UnrecognizedWithEmbed) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -45018,7 +45979,7 @@ func (m *UnrecognizedWithEmbed) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -45028,6 +45989,9 @@ func (m *UnrecognizedWithEmbed) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -45043,6 +46007,9 @@ func (m *UnrecognizedWithEmbed) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -45071,7 +46038,7 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -45099,7 +46066,7 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -45114,6 +46081,9 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -45141,7 +46111,7 @@ func (m *Node) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -45169,7 +46139,7 @@ func (m *Node) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -45179,6 +46149,9 @@ func (m *Node) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -45199,7 +46172,7 @@ func (m *Node) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -45208,6 +46181,9 @@ func (m *Node) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -45225,6 +46201,9 @@ func (m *Node) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -45253,7 +46232,7 @@ func (m *NonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -45281,7 +46260,7 @@ func (m *NonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -45290,6 +46269,9 @@ func (m *NonByteCustomType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -45309,6 +46291,9 @@ func (m *NonByteCustomType) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -45337,7 +46322,7 @@ func (m *NidOptNonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -45365,7 +46350,7 @@ func (m *NidOptNonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -45374,6 +46359,9 @@ func (m *NidOptNonByteCustomType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -45390,6 +46378,9 @@ func (m *NidOptNonByteCustomType) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -45418,7 +46409,7 @@ func (m *NinOptNonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -45446,7 +46437,7 @@ func (m *NinOptNonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -45455,6 +46446,9 @@ func (m *NinOptNonByteCustomType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -45474,6 +46468,9 @@ func (m *NinOptNonByteCustomType) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -45502,7 +46499,7 @@ func (m *NidRepNonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -45530,7 +46527,7 @@ func (m *NidRepNonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -45539,6 +46536,9 @@ func (m *NidRepNonByteCustomType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -45556,6 +46556,9 @@ func (m *NidRepNonByteCustomType) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -45584,7 +46587,7 @@ func (m *NinRepNonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -45612,7 +46615,7 @@ func (m *NinRepNonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -45621,6 +46624,9 @@ func (m *NinRepNonByteCustomType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -45638,6 +46644,9 @@ func (m *NinRepNonByteCustomType) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -45666,7 +46675,7 @@ func (m *ProtoType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -45694,7 +46703,7 @@ func (m *ProtoType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -45704,6 +46713,9 @@ func (m *ProtoType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -45719,6 +46731,9 @@ func (m *ProtoType) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -45786,10 +46801,13 @@ func skipThetest(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthThetest
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthThetest
+ }
return iNdEx, nil
case 3:
for {
@@ -45818,6 +46836,9 @@ func skipThetest(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthThetest
+ }
}
return iNdEx, nil
case 4:
@@ -45836,202 +46857,3 @@ var (
ErrInvalidLengthThetest = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowThetest = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("combos/both/thetest.proto", fileDescriptor_thetest_3e4f682cb8349b83) }
-
-var fileDescriptor_thetest_3e4f682cb8349b83 = []byte{
- // 3081 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4d, 0x6c, 0x1b, 0xc7,
- 0x15, 0xd6, 0xec, 0x50, 0x0a, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0xb6, 0x8c, 0xba, 0xa2, 0x37,
- 0xb2, 0xca, 0x10, 0xb1, 0x44, 0x51, 0x94, 0x2c, 0x33, 0x4d, 0x0a, 0xf1, 0xc7, 0x8d, 0xdc, 0x88,
- 0x32, 0x18, 0xb9, 0xad, 0x81, 0x02, 0x05, 0x25, 0xae, 0x45, 0xa2, 0xd2, 0x52, 0x20, 0x57, 0x69,
- 0xdc, 0x43, 0x11, 0xe4, 0x50, 0x04, 0xbd, 0x16, 0x3d, 0xb6, 0x71, 0x51, 0x14, 0x48, 0x6f, 0x39,
- 0x14, 0x45, 0x51, 0x14, 0x8d, 0x2f, 0x05, 0xd4, 0x9b, 0xd1, 0x53, 0x11, 0x14, 0x42, 0xc4, 0x5c,
- 0x72, 0x0c, 0x7a, 0x69, 0x0e, 0x39, 0x14, 0xbb, 0x3b, 0x3b, 0x3b, 0x33, 0xdc, 0xe5, 0x2e, 0x2d,
- 0xb9, 0xcd, 0xc5, 0x16, 0xe7, 0xbd, 0x37, 0xf3, 0xf6, 0x7d, 0xdf, 0x7b, 0xfb, 0x76, 0x66, 0xe0,
- 0x6b, 0x7b, 0xed, 0xc3, 0xdd, 0x76, 0x77, 0x69, 0xb7, 0x6d, 0x36, 0x97, 0xcc, 0xa6, 0x6e, 0xea,
- 0x5d, 0x73, 0xf1, 0xa8, 0xd3, 0x36, 0xdb, 0x72, 0xcc, 0xfa, 0x3b, 0x79, 0x7d, 0xbf, 0x65, 0x36,
- 0x8f, 0x77, 0x17, 0xf7, 0xda, 0x87, 0x4b, 0xfb, 0xed, 0xfd, 0xf6, 0x92, 0x2d, 0xdc, 0x3d, 0xbe,
- 0x6f, 0xff, 0xb2, 0x7f, 0xd8, 0x7f, 0x39, 0x46, 0xda, 0xbf, 0x30, 0x4c, 0x56, 0x5b, 0x8d, 0xed,
- 0x23, 0xb3, 0x5a, 0x37, 0x5b, 0x6f, 0xe9, 0xf2, 0x2c, 0x8c, 0xdd, 0x6a, 0xe9, 0x07, 0x8d, 0x65,
- 0x05, 0xa5, 0x50, 0x1a, 0x15, 0x63, 0x27, 0xa7, 0x73, 0x23, 0x35, 0x32, 0x46, 0xa5, 0x39, 0x45,
- 0x4a, 0xa1, 0xb4, 0xc4, 0x49, 0x73, 0x54, 0xba, 0xa2, 0xe0, 0x14, 0x4a, 0x8f, 0x72, 0xd2, 0x15,
- 0x2a, 0xcd, 0x2b, 0xb1, 0x14, 0x4a, 0x63, 0x4e, 0x9a, 0xa7, 0xd2, 0x55, 0x65, 0x34, 0x85, 0xd2,
- 0x97, 0x38, 0xe9, 0x2a, 0x95, 0xae, 0x29, 0x63, 0x29, 0x94, 0x8e, 0x71, 0xd2, 0x35, 0x2a, 0xbd,
- 0xa1, 0x3c, 0x93, 0x42, 0xe9, 0xcb, 0x9c, 0xf4, 0x06, 0x95, 0xae, 0x2b, 0xf1, 0x14, 0x4a, 0xcb,
- 0x9c, 0x74, 0x9d, 0x4a, 0x6f, 0x2a, 0xe3, 0x29, 0x94, 0x7e, 0x86, 0x93, 0xde, 0x94, 0x55, 0x78,
- 0xc6, 0x79, 0xf2, 0xac, 0x02, 0x29, 0x94, 0x9e, 0x26, 0x62, 0x77, 0xd0, 0x93, 0x2f, 0x2b, 0x13,
- 0x29, 0x94, 0x1e, 0xe3, 0xe5, 0xcb, 0x9e, 0x3c, 0xa7, 0x4c, 0xa6, 0x50, 0x3a, 0xc1, 0xcb, 0x73,
- 0x9e, 0x7c, 0x45, 0xb9, 0x94, 0x42, 0xe9, 0x38, 0x2f, 0x5f, 0xf1, 0xe4, 0x79, 0x65, 0x2a, 0x85,
- 0xd2, 0xe3, 0xbc, 0x3c, 0xef, 0xc9, 0x57, 0x95, 0xe9, 0x14, 0x4a, 0x4f, 0xf2, 0xf2, 0x55, 0xed,
- 0x5d, 0x1b, 0x5e, 0xc3, 0x83, 0x77, 0x86, 0x87, 0x97, 0x02, 0x3b, 0xc3, 0x03, 0x4b, 0x21, 0x9d,
- 0xe1, 0x21, 0xa5, 0x60, 0xce, 0xf0, 0x60, 0x52, 0x18, 0x67, 0x78, 0x18, 0x29, 0x80, 0x33, 0x3c,
- 0x80, 0x14, 0xba, 0x19, 0x1e, 0x3a, 0x0a, 0xda, 0x0c, 0x0f, 0x1a, 0x85, 0x6b, 0x86, 0x87, 0x8b,
- 0x02, 0xa5, 0x08, 0x40, 0x79, 0x10, 0x29, 0x02, 0x44, 0x1e, 0x38, 0x8a, 0x00, 0x8e, 0x07, 0x8b,
- 0x22, 0xc0, 0xe2, 0x01, 0xa2, 0x08, 0x80, 0x78, 0x50, 0x28, 0x02, 0x14, 0x1e, 0x08, 0x24, 0xc7,
- 0x6a, 0xfa, 0x91, 0x4f, 0x8e, 0xe1, 0x81, 0x39, 0x86, 0x07, 0xe6, 0x18, 0x1e, 0x98, 0x63, 0x78,
- 0x60, 0x8e, 0xe1, 0x81, 0x39, 0x86, 0x07, 0xe6, 0x18, 0x1e, 0x98, 0x63, 0x78, 0x60, 0x8e, 0xe1,
- 0xc1, 0x39, 0x86, 0x43, 0x72, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31, 0x1c, 0x92, 0x63, 0x38,
- 0x24, 0xc7, 0x70, 0x60, 0x8e, 0x79, 0xf0, 0xce, 0xf0, 0xf0, 0xfa, 0xe6, 0x18, 0x0e, 0xc8, 0x31,
- 0x1c, 0x90, 0x63, 0x38, 0x20, 0xc7, 0x70, 0x40, 0x8e, 0xe1, 0x80, 0x1c, 0xc3, 0x01, 0x39, 0x86,
- 0x03, 0x72, 0x0c, 0x07, 0xe5, 0x18, 0x0e, 0xcc, 0x31, 0x1c, 0x98, 0x63, 0x38, 0x30, 0xc7, 0x70,
- 0x60, 0x8e, 0xe1, 0xc0, 0x1c, 0xc3, 0x6c, 0x8e, 0xfd, 0x05, 0x83, 0xec, 0xe4, 0xd8, 0x9d, 0xfa,
- 0xde, 0x8f, 0xf4, 0x06, 0x81, 0x42, 0x15, 0x32, 0x6d, 0xcc, 0x82, 0x2e, 0xe1, 0x41, 0xa2, 0x0a,
- 0xb9, 0xc6, 0xcb, 0x73, 0x54, 0xee, 0x66, 0x1b, 0x2f, 0x5f, 0xa1, 0x72, 0x37, 0xdf, 0x78, 0x79,
- 0x9e, 0xca, 0xdd, 0x8c, 0xe3, 0xe5, 0xab, 0x54, 0xee, 0xe6, 0x1c, 0x2f, 0x5f, 0xa3, 0x72, 0x37,
- 0xeb, 0x78, 0xf9, 0x0d, 0x2a, 0x77, 0xf3, 0x8e, 0x97, 0xaf, 0x53, 0xb9, 0x9b, 0x79, 0xbc, 0xfc,
- 0xa6, 0x9c, 0x12, 0x73, 0xcf, 0x55, 0xa0, 0xd0, 0xa6, 0xc4, 0xec, 0x13, 0x34, 0x96, 0x3d, 0x0d,
- 0x37, 0xff, 0x04, 0x8d, 0x9c, 0xa7, 0xe1, 0x66, 0xa0, 0xa0, 0xb1, 0xa2, 0xbd, 0x67, 0xc3, 0x67,
- 0x88, 0xf0, 0x25, 0x05, 0xf8, 0x24, 0x06, 0xba, 0xa4, 0x00, 0x9d, 0xc4, 0xc0, 0x96, 0x14, 0x60,
- 0x93, 0x18, 0xc8, 0x92, 0x02, 0x64, 0x12, 0x03, 0x57, 0x52, 0x80, 0x4b, 0x62, 0xa0, 0x4a, 0x0a,
- 0x50, 0x49, 0x0c, 0x4c, 0x49, 0x01, 0x26, 0x89, 0x81, 0x28, 0x29, 0x40, 0x24, 0x31, 0xf0, 0x24,
- 0x05, 0x78, 0x24, 0x06, 0x9a, 0x59, 0x11, 0x1a, 0x89, 0x85, 0x65, 0x56, 0x84, 0x45, 0x62, 0x21,
- 0x99, 0x15, 0x21, 0x91, 0x58, 0x38, 0x66, 0x45, 0x38, 0x24, 0x16, 0x8a, 0x2f, 0x25, 0xb7, 0x23,
- 0x7c, 0xd3, 0xec, 0x1c, 0xef, 0x99, 0xe7, 0xea, 0x08, 0xb3, 0x5c, 0xfb, 0x30, 0x91, 0x93, 0x17,
- 0xed, 0x86, 0x95, 0xed, 0x38, 0x85, 0x37, 0x58, 0x96, 0x6b, 0x2c, 0x18, 0x0b, 0xc3, 0xdf, 0x22,
- 0x7f, 0xae, 0xde, 0x30, 0xcb, 0xb5, 0x19, 0xe1, 0xfe, 0xad, 0x3f, 0xf5, 0x8e, 0xed, 0x91, 0xe4,
- 0x76, 0x6c, 0x24, 0xfc, 0xc3, 0x76, 0x6c, 0x99, 0xf0, 0x90, 0xd3, 0x60, 0x67, 0xc2, 0x83, 0xdd,
- 0xf7, 0xd6, 0x89, 0xda, 0xc1, 0x65, 0xc2, 0x43, 0x4b, 0x83, 0x7a, 0xb1, 0xfd, 0x16, 0x61, 0x70,
- 0x4d, 0x3f, 0xf2, 0x61, 0xf0, 0xb0, 0xfd, 0x56, 0x96, 0x2b, 0x25, 0xc3, 0x32, 0x18, 0x0f, 0xcd,
- 0xe0, 0x61, 0x3b, 0xaf, 0x2c, 0x57, 0x5e, 0x86, 0x66, 0xf0, 0x53, 0xe8, 0x87, 0x08, 0x83, 0xbd,
- 0xf0, 0x0f, 0xdb, 0x0f, 0x65, 0xc2, 0x43, 0xee, 0xcb, 0x60, 0x3c, 0x04, 0x83, 0xa3, 0xf4, 0x47,
- 0x99, 0xf0, 0xd0, 0xfa, 0x33, 0xf8, 0xdc, 0xdd, 0xcc, 0xfb, 0x08, 0x2e, 0x57, 0x5b, 0x8d, 0xca,
- 0xe1, 0xae, 0xde, 0x68, 0xe8, 0x0d, 0x12, 0xc7, 0x2c, 0x57, 0x09, 0x02, 0xa0, 0x7e, 0x7c, 0x3a,
- 0xe7, 0x45, 0x78, 0x15, 0xe2, 0x4e, 0x4c, 0xb3, 0x59, 0xe5, 0x04, 0x85, 0x54, 0x38, 0xaa, 0x2a,
- 0x5f, 0x75, 0xcd, 0x96, 0xb3, 0xca, 0x3f, 0x10, 0x53, 0xe5, 0xe8, 0xb0, 0xf6, 0x0b, 0xdb, 0x43,
- 0xe3, 0xdc, 0x1e, 0x2e, 0x45, 0xf2, 0x90, 0xf1, 0xed, 0x85, 0x3e, 0xdf, 0x18, 0xaf, 0x8e, 0x61,
- 0xba, 0xda, 0x6a, 0x54, 0xf5, 0xae, 0x19, 0xcd, 0x25, 0x47, 0x47, 0xa8, 0x07, 0x59, 0x8e, 0x96,
- 0xac, 0x05, 0xa5, 0x34, 0x5f, 0x23, 0xb4, 0x96, 0xb5, 0xac, 0xc1, 0x2d, 0x9b, 0x09, 0x5a, 0xd6,
- 0xab, 0xec, 0x74, 0xc1, 0x4c, 0xd0, 0x82, 0x5e, 0x0e, 0xd1, 0xa5, 0xde, 0x76, 0x5f, 0xce, 0xa5,
- 0xe3, 0xae, 0xd9, 0x3e, 0x94, 0x67, 0x41, 0xda, 0x6c, 0xd8, 0x6b, 0x4c, 0x16, 0x27, 0x2d, 0xa7,
- 0x3e, 0x3e, 0x9d, 0x8b, 0xdd, 0x3d, 0x6e, 0x35, 0x6a, 0xd2, 0x66, 0x43, 0xbe, 0x0d, 0xa3, 0xdf,
- 0xad, 0x1f, 0x1c, 0xeb, 0xf6, 0x2b, 0x62, 0xb2, 0x98, 0x27, 0x0a, 0x2f, 0x07, 0xee, 0x11, 0x59,
- 0x0b, 0x2f, 0xed, 0xd9, 0x53, 0x2f, 0xde, 0x6d, 0x19, 0xe6, 0x72, 0x6e, 0xbd, 0xe6, 0x4c, 0xa1,
- 0xfd, 0x00, 0xc0, 0x59, 0xb3, 0x5c, 0xef, 0x36, 0xe5, 0xaa, 0x3b, 0xb3, 0xb3, 0xf4, 0xfa, 0xc7,
- 0xa7, 0x73, 0xf9, 0x28, 0xb3, 0x5e, 0x6f, 0xd4, 0xbb, 0xcd, 0xeb, 0xe6, 0x83, 0x23, 0x7d, 0xb1,
- 0xf8, 0xc0, 0xd4, 0xbb, 0xee, 0xec, 0x47, 0xee, 0x5b, 0x8f, 0x3c, 0x97, 0xc2, 0x3c, 0x57, 0x9c,
- 0x7b, 0xa6, 0x5b, 0xfc, 0x33, 0x65, 0x9f, 0xf4, 0x79, 0xde, 0x76, 0x5f, 0x12, 0x42, 0x24, 0x71,
- 0x58, 0x24, 0xf1, 0x79, 0x23, 0x79, 0xe4, 0xd6, 0x47, 0xe1, 0x59, 0xf1, 0xa0, 0x67, 0xc5, 0xe7,
- 0x79, 0xd6, 0xff, 0x38, 0xd9, 0x4a, 0xf3, 0xe9, 0xae, 0xd1, 0x6a, 0x1b, 0x5f, 0xb9, 0xbd, 0xa0,
- 0x0b, 0xed, 0x02, 0x0a, 0xb1, 0x93, 0x87, 0x73, 0x48, 0x7b, 0x5f, 0x72, 0x9f, 0xdc, 0x49, 0xa4,
- 0x27, 0x7b, 0xf2, 0xaf, 0x4a, 0x4f, 0xf5, 0x34, 0x22, 0xf4, 0x6b, 0x04, 0x33, 0x7d, 0x95, 0xdc,
- 0x09, 0xd3, 0xc5, 0x96, 0x73, 0x63, 0xd8, 0x72, 0x4e, 0x1c, 0xfc, 0x03, 0x82, 0xe7, 0x84, 0xf2,
- 0xea, 0xb8, 0xb7, 0x24, 0xb8, 0xf7, 0x7c, 0xff, 0x4a, 0xb6, 0x22, 0xe3, 0x1d, 0x0b, 0xaf, 0x60,
- 0xc0, 0xcc, 0x4c, 0x71, 0xcf, 0x0b, 0xb8, 0xcf, 0x52, 0x03, 0x9f, 0x70, 0xb9, 0x0c, 0x20, 0x6e,
- 0xb7, 0x21, 0xb6, 0xd3, 0xd1, 0x75, 0x59, 0x05, 0x69, 0xbb, 0x43, 0x3c, 0x9c, 0x72, 0xec, 0xb7,
- 0x3b, 0xc5, 0x4e, 0xdd, 0xd8, 0x6b, 0xd6, 0xa4, 0xed, 0x8e, 0x7c, 0x15, 0xf0, 0x86, 0xd1, 0x20,
- 0x1e, 0x4d, 0x3b, 0x0a, 0x1b, 0x46, 0x83, 0x68, 0x58, 0x32, 0x59, 0x85, 0xd8, 0x1b, 0x7a, 0xfd,
- 0x3e, 0x71, 0x02, 0x1c, 0x1d, 0x6b, 0xa4, 0x66, 0x8f, 0x93, 0x05, 0xbf, 0x0f, 0x71, 0x77, 0x62,
- 0x79, 0xde, 0xb2, 0xb8, 0x6f, 0x92, 0x65, 0x89, 0x85, 0xe5, 0x0e, 0x79, 0x73, 0xd9, 0x52, 0x79,
- 0x01, 0x46, 0x6b, 0xad, 0xfd, 0xa6, 0x49, 0x16, 0xef, 0x57, 0x73, 0xc4, 0xda, 0x3d, 0x18, 0xa7,
- 0x1e, 0x5d, 0xf0, 0xd4, 0x65, 0xe7, 0xd1, 0xe4, 0x24, 0xfb, 0x3e, 0x71, 0xf7, 0x2d, 0x9d, 0x21,
- 0x39, 0x05, 0xf1, 0x37, 0xcd, 0x8e, 0x57, 0xf4, 0xdd, 0x8e, 0x94, 0x8e, 0x6a, 0xef, 0x22, 0x88,
- 0x97, 0x75, 0xfd, 0xc8, 0x0e, 0xf8, 0x35, 0x88, 0x95, 0xdb, 0x3f, 0x36, 0x88, 0x83, 0x97, 0x49,
- 0x44, 0x2d, 0x31, 0x89, 0xa9, 0x2d, 0x96, 0xaf, 0xb1, 0x71, 0x7f, 0x96, 0xc6, 0x9d, 0xd1, 0xb3,
- 0x63, 0xaf, 0x71, 0xb1, 0x27, 0x00, 0x5a, 0x4a, 0x7d, 0xf1, 0xbf, 0x01, 0x13, 0xcc, 0x2a, 0x72,
- 0x9a, 0xb8, 0x21, 0x89, 0x86, 0x6c, 0xac, 0x2c, 0x0d, 0x4d, 0x87, 0x4b, 0xdc, 0xc2, 0x96, 0x29,
- 0x13, 0xe2, 0x00, 0x53, 0x3b, 0xcc, 0x19, 0x3e, 0xcc, 0xfe, 0xaa, 0x24, 0xd4, 0x59, 0x27, 0x46,
- 0x76, 0xb8, 0xe7, 0x1d, 0x72, 0x06, 0x83, 0x68, 0xfd, 0xad, 0x8d, 0x02, 0xae, 0xb6, 0x0e, 0xb4,
- 0x57, 0x01, 0x9c, 0x94, 0xaf, 0x18, 0xc7, 0x87, 0x42, 0xd6, 0x4d, 0xb9, 0x01, 0xde, 0x69, 0xea,
- 0x3b, 0x7a, 0xd7, 0x56, 0xe1, 0xfb, 0x29, 0xab, 0xc0, 0x80, 0x93, 0x62, 0xb6, 0xfd, 0x4b, 0xa1,
- 0xf6, 0xbe, 0x9d, 0x98, 0xa5, 0xaa, 0x38, 0xaa, 0xf7, 0x74, 0x73, 0xc3, 0x68, 0x9b, 0x4d, 0xbd,
- 0x23, 0x58, 0xe4, 0xe4, 0x15, 0x2e, 0x61, 0xa7, 0x72, 0x2f, 0x50, 0x8b, 0x40, 0xa3, 0x15, 0xed,
- 0x43, 0xdb, 0x41, 0xab, 0x15, 0xe8, 0x7b, 0x40, 0x1c, 0xe1, 0x01, 0xe5, 0x35, 0xae, 0x7f, 0x1b,
- 0xe0, 0xa6, 0xf0, 0x69, 0x79, 0x93, 0xfb, 0xce, 0x19, 0xec, 0x2c, 0xff, 0x8d, 0xe9, 0xc6, 0xd4,
- 0x75, 0xf9, 0xa5, 0x50, 0x97, 0x03, 0xba, 0xdb, 0x61, 0x63, 0x8a, 0xa3, 0xc6, 0xf4, 0xcf, 0xb4,
- 0xe3, 0xb0, 0x86, 0xcb, 0xfa, 0xfd, 0xfa, 0xf1, 0x81, 0x29, 0xbf, 0x1c, 0x8a, 0x7d, 0x01, 0x95,
- 0xa8, 0xab, 0xf9, 0xa8, 0xf0, 0x17, 0xa4, 0x62, 0x91, 0xba, 0x7b, 0x63, 0x08, 0x0a, 0x14, 0xa4,
- 0x52, 0x89, 0x96, 0xed, 0xf8, 0x7b, 0x0f, 0xe7, 0xd0, 0x07, 0x0f, 0xe7, 0x46, 0xb4, 0xdf, 0x23,
- 0xb8, 0x4c, 0x34, 0x19, 0xe2, 0x5e, 0x17, 0x9c, 0xbf, 0xe2, 0xd6, 0x0c, 0xbf, 0x08, 0xfc, 0xcf,
- 0xc8, 0xfb, 0x37, 0x04, 0x4a, 0x9f, 0xaf, 0x6e, 0xbc, 0xb3, 0x91, 0x5c, 0x2e, 0xa0, 0xca, 0xff,
- 0x3f, 0xe6, 0xf7, 0x60, 0x74, 0xa7, 0x75, 0xa8, 0x77, 0xac, 0x37, 0x81, 0xf5, 0x87, 0xe3, 0xb2,
- 0x7b, 0x98, 0xe3, 0x0c, 0xb9, 0x32, 0xc7, 0x39, 0x4e, 0x96, 0x93, 0x15, 0x88, 0x95, 0xeb, 0x66,
- 0xdd, 0xf6, 0x60, 0x92, 0xd6, 0xd7, 0xba, 0x59, 0xd7, 0x56, 0x60, 0x72, 0xeb, 0x41, 0xe5, 0x6d,
- 0x53, 0x37, 0x1a, 0xf5, 0xdd, 0x03, 0xf1, 0x0c, 0xd4, 0xed, 0x57, 0x97, 0x33, 0xa3, 0xf1, 0x46,
- 0xe2, 0x04, 0x15, 0x62, 0xb6, 0x3f, 0x6f, 0xc1, 0xd4, 0xb6, 0xe5, 0xb6, 0x6d, 0x67, 0x9b, 0xa5,
- 0x00, 0x6d, 0xf1, 0x8d, 0x10, 0x3b, 0x6b, 0x0d, 0x6d, 0x09, 0xed, 0x23, 0xa6, 0xe1, 0x11, 0xda,
- 0x36, 0x4c, 0xdb, 0xb6, 0x4c, 0x2c, 0x3e, 0x95, 0xb8, 0x9c, 0x89, 0xc5, 0x21, 0x71, 0x89, 0xac,
- 0xfb, 0x77, 0x0c, 0x09, 0xa7, 0xd5, 0x29, 0xeb, 0xf7, 0x5b, 0x46, 0xcb, 0xec, 0xef, 0x57, 0xa9,
- 0xc7, 0xf2, 0xb7, 0x60, 0xdc, 0x0a, 0xa9, 0xfd, 0x8b, 0x00, 0x76, 0x95, 0xb4, 0x28, 0xc2, 0x14,
- 0x64, 0xc0, 0xa6, 0x8e, 0x67, 0x23, 0xdf, 0x02, 0x5c, 0xad, 0x6e, 0x91, 0x97, 0x5b, 0x7e, 0xa0,
- 0xe9, 0x96, 0xde, 0xed, 0xd6, 0xf7, 0x75, 0xf2, 0x8b, 0x8c, 0x75, 0xf7, 0x6b, 0xd6, 0x04, 0x72,
- 0x1e, 0xa4, 0xea, 0x16, 0x69, 0x78, 0xe7, 0xa3, 0x4c, 0x53, 0x93, 0xaa, 0x5b, 0xc9, 0xbf, 0x22,
- 0xb8, 0xc4, 0x8d, 0xca, 0x1a, 0x4c, 0x3a, 0x03, 0xcc, 0xe3, 0x8e, 0xd5, 0xb8, 0x31, 0xd7, 0x67,
- 0xe9, 0x9c, 0x3e, 0x27, 0x37, 0x60, 0x5a, 0x18, 0x97, 0x17, 0x41, 0x66, 0x87, 0x88, 0x13, 0x60,
- 0x37, 0xd4, 0x3e, 0x12, 0xed, 0xeb, 0x00, 0x5e, 0x5c, 0xe5, 0x69, 0x98, 0xd8, 0xb9, 0x77, 0xa7,
- 0xf2, 0xc3, 0x6a, 0xe5, 0xcd, 0x9d, 0x4a, 0x39, 0x81, 0xb4, 0x3f, 0x22, 0x98, 0x20, 0x6d, 0xeb,
- 0x5e, 0xfb, 0x48, 0x97, 0x8b, 0x80, 0x36, 0x08, 0x83, 0x9e, 0xcc, 0x6f, 0xb4, 0x21, 0x2f, 0x01,
- 0x2a, 0x46, 0x87, 0x1a, 0x15, 0xe5, 0x1c, 0xa0, 0x12, 0x01, 0x38, 0x1a, 0x32, 0xa8, 0xa4, 0xfd,
- 0x1b, 0xc3, 0xb3, 0x6c, 0x1b, 0xed, 0xd6, 0x93, 0xab, 0xfc, 0x77, 0x53, 0x61, 0x7c, 0x39, 0xb7,
- 0x92, 0x5f, 0xb4, 0xfe, 0xa1, 0x94, 0xd4, 0xf8, 0x4f, 0xa8, 0x02, 0x50, 0x95, 0xe5, 0xa0, 0x7b,
- 0x22, 0x85, 0x18, 0x33, 0x43, 0xdf, 0x3d, 0x11, 0x4e, 0xda, 0x77, 0x4f, 0x84, 0x93, 0xf6, 0xdd,
- 0x13, 0xe1, 0xa4, 0x7d, 0x67, 0x01, 0x9c, 0xb4, 0xef, 0x9e, 0x08, 0x27, 0xed, 0xbb, 0x27, 0xc2,
- 0x49, 0xfb, 0xef, 0x89, 0x10, 0x71, 0xe0, 0x3d, 0x11, 0x5e, 0xde, 0x7f, 0x4f, 0x84, 0x97, 0xf7,
- 0xdf, 0x13, 0x29, 0xc4, 0xcc, 0xce, 0xb1, 0x1e, 0x7c, 0xea, 0xc0, 0xdb, 0x0f, 0xfa, 0x08, 0xf4,
- 0x2a, 0xf0, 0x36, 0x4c, 0x3b, 0x1b, 0x12, 0xa5, 0xb6, 0x61, 0xd6, 0x5b, 0x86, 0xde, 0x91, 0xbf,
- 0x09, 0x93, 0xce, 0x90, 0xf3, 0x99, 0xe3, 0xf7, 0x19, 0xe8, 0xc8, 0x49, 0xbd, 0xe5, 0xb4, 0xb5,
- 0x2f, 0x63, 0x30, 0xe3, 0x0c, 0x54, 0xeb, 0x87, 0x3a, 0x77, 0xcb, 0x68, 0x41, 0x38, 0x53, 0x9a,
- 0xb2, 0xcc, 0x7b, 0xa7, 0x73, 0xce, 0xe8, 0x06, 0x65, 0xd3, 0x82, 0x70, 0xba, 0xc4, 0xeb, 0x79,
- 0x2f, 0xa0, 0x05, 0xe1, 0xe6, 0x11, 0xaf, 0x47, 0xdf, 0x37, 0x54, 0xcf, 0xbd, 0x83, 0xc4, 0xeb,
- 0x95, 0x29, 0xcb, 0x16, 0x84, 0xdb, 0x48, 0xbc, 0x5e, 0x85, 0xf2, 0x6d, 0x41, 0x38, 0x7b, 0xe2,
- 0xf5, 0x6e, 0x51, 0xe6, 0x2d, 0x08, 0xa7, 0x50, 0xbc, 0xde, 0xb7, 0x29, 0x07, 0x17, 0x84, 0xbb,
- 0x4a, 0xbc, 0xde, 0xeb, 0x94, 0x8d, 0x0b, 0xc2, 0xad, 0x25, 0x5e, 0x6f, 0x93, 0xf2, 0x32, 0x2d,
- 0xde, 0x5f, 0xe2, 0x15, 0x6f, 0x7b, 0x0c, 0x4d, 0x8b, 0x37, 0x99, 0x78, 0xcd, 0xef, 0x78, 0x5c,
- 0x4d, 0x8b, 0x77, 0x9a, 0x78, 0xcd, 0x37, 0x3c, 0xd6, 0xa6, 0xc5, 0xb3, 0x32, 0x5e, 0x73, 0xcb,
- 0xe3, 0x6f, 0x5a, 0x3c, 0x35, 0xe3, 0x35, 0xab, 0x1e, 0x93, 0xd3, 0xe2, 0xf9, 0x19, 0xaf, 0xb9,
- 0xed, 0x6d, 0xa2, 0x7f, 0x24, 0xd0, 0x8f, 0xb9, 0x05, 0xa5, 0x09, 0xf4, 0x03, 0x1f, 0xea, 0x09,
- 0x85, 0x8c, 0xd1, 0xf1, 0x68, 0xa7, 0x09, 0xb4, 0x03, 0x1f, 0xca, 0x69, 0x02, 0xe5, 0xc0, 0x87,
- 0x6e, 0x9a, 0x40, 0x37, 0xf0, 0xa1, 0x9a, 0x26, 0x50, 0x0d, 0x7c, 0x68, 0xa6, 0x09, 0x34, 0x03,
- 0x1f, 0x8a, 0x69, 0x02, 0xc5, 0xc0, 0x87, 0x5e, 0x9a, 0x40, 0x2f, 0xf0, 0xa1, 0xd6, 0xbc, 0x48,
- 0x2d, 0xf0, 0xa3, 0xd5, 0xbc, 0x48, 0x2b, 0xf0, 0xa3, 0xd4, 0x8b, 0x22, 0xa5, 0xc6, 0x7b, 0xa7,
- 0x73, 0xa3, 0xd6, 0x10, 0xc3, 0xa6, 0x79, 0x91, 0x4d, 0xe0, 0xc7, 0xa4, 0x79, 0x91, 0x49, 0xe0,
- 0xc7, 0xa2, 0x79, 0x91, 0x45, 0xe0, 0xc7, 0xa0, 0x47, 0x22, 0x83, 0xbc, 0x3b, 0x3e, 0x9a, 0x70,
- 0xa4, 0x18, 0xc6, 0x20, 0x1c, 0x81, 0x41, 0x38, 0x02, 0x83, 0x70, 0x04, 0x06, 0xe1, 0x08, 0x0c,
- 0xc2, 0x11, 0x18, 0x84, 0x23, 0x30, 0x08, 0x47, 0x60, 0x10, 0x8e, 0xc2, 0x20, 0x1c, 0x89, 0x41,
- 0x38, 0x88, 0x41, 0xf3, 0xe2, 0x8d, 0x07, 0xf0, 0x2b, 0x48, 0xf3, 0xe2, 0xd1, 0x67, 0x38, 0x85,
- 0x70, 0x24, 0x0a, 0xe1, 0x20, 0x0a, 0x7d, 0x84, 0xe1, 0x59, 0x8e, 0x42, 0xe4, 0x7c, 0xe8, 0xa2,
- 0x2a, 0xd0, 0x5a, 0x84, 0x0b, 0x16, 0x7e, 0x9c, 0x5a, 0x8b, 0x70, 0x48, 0x3d, 0x88, 0x67, 0xfd,
- 0x55, 0xa8, 0x12, 0xa1, 0x0a, 0xdd, 0xa2, 0x1c, 0x5a, 0x8b, 0x70, 0xf1, 0xa2, 0x9f, 0x7b, 0xeb,
- 0x83, 0x8a, 0xc0, 0xeb, 0x91, 0x8a, 0xc0, 0x66, 0xa4, 0x22, 0x70, 0xdb, 0x43, 0xf0, 0x67, 0x12,
- 0x3c, 0xe7, 0x21, 0xe8, 0xfc, 0xb5, 0xf3, 0xe0, 0xc8, 0x2a, 0x01, 0xde, 0x11, 0x95, 0xec, 0x1e,
- 0xdb, 0x30, 0x30, 0x4a, 0x9b, 0x0d, 0xf9, 0x0e, 0x7f, 0x58, 0x55, 0x18, 0xf6, 0x00, 0x87, 0x41,
- 0x9c, 0x6c, 0x86, 0xce, 0x03, 0xde, 0x6c, 0x74, 0xed, 0x6a, 0xe1, 0xb7, 0x6c, 0xa9, 0x66, 0x89,
- 0xe5, 0x1a, 0x8c, 0xd9, 0xea, 0x5d, 0x1b, 0xde, 0xf3, 0x2c, 0x5c, 0xae, 0x91, 0x99, 0xb4, 0x47,
- 0x08, 0x52, 0x1c, 0x95, 0x2f, 0xe6, 0xc8, 0xe0, 0x95, 0x48, 0x47, 0x06, 0x5c, 0x82, 0x78, 0xc7,
- 0x07, 0xdf, 0xe8, 0x3f, 0xa9, 0x66, 0xb3, 0x44, 0x3c, 0x4a, 0xf8, 0x29, 0x4c, 0x79, 0x4f, 0x60,
- 0x7f, 0xb3, 0xad, 0x86, 0xef, 0x66, 0xfa, 0xa5, 0xe6, 0xaa, 0xb0, 0x8b, 0x36, 0xd0, 0x8c, 0x66,
- 0xab, 0x56, 0x80, 0xe9, 0x6a, 0xdb, 0xde, 0x33, 0xe8, 0xb6, 0xda, 0x46, 0x77, 0xab, 0x7e, 0x14,
- 0xb6, 0x19, 0x11, 0xb7, 0x5a, 0xf3, 0x93, 0xdf, 0xcc, 0x8d, 0x68, 0x2f, 0xc3, 0xe4, 0x5d, 0xa3,
- 0xa3, 0xef, 0xb5, 0xf7, 0x8d, 0xd6, 0x4f, 0xf4, 0x86, 0x60, 0x38, 0xee, 0x1a, 0x16, 0x62, 0x8f,
- 0x2d, 0xed, 0x5f, 0x22, 0xb8, 0xc2, 0xaa, 0x7f, 0xaf, 0x65, 0x36, 0x37, 0x0d, 0xab, 0xa7, 0x7f,
- 0x15, 0xe2, 0x3a, 0x01, 0xce, 0x7e, 0x77, 0x4d, 0xb8, 0xdf, 0x91, 0xbe, 0xea, 0x8b, 0xf6, 0xbf,
- 0x35, 0x6a, 0x22, 0xec, 0x71, 0xb8, 0xcb, 0xe6, 0x92, 0xd7, 0x60, 0xd4, 0x99, 0x9f, 0xf7, 0xeb,
- 0x92, 0xe0, 0xd7, 0xef, 0x7c, 0xfc, 0xb2, 0x79, 0x24, 0xdf, 0xe6, 0xfc, 0x62, 0x3e, 0x57, 0x7d,
- 0xd5, 0x17, 0x5d, 0xf2, 0x15, 0xe3, 0x56, 0xff, 0x67, 0x33, 0x2a, 0xdc, 0xc9, 0x34, 0xc4, 0x2b,
- 0xa2, 0x8e, 0xbf, 0x9f, 0x65, 0x88, 0x55, 0xdb, 0x0d, 0x5d, 0x7e, 0x0e, 0x46, 0xdf, 0xa8, 0xef,
- 0xea, 0x07, 0x24, 0xc8, 0xce, 0x0f, 0x79, 0x01, 0xe2, 0xa5, 0x66, 0xeb, 0xa0, 0xd1, 0xd1, 0x0d,
- 0x72, 0x66, 0x4f, 0xb6, 0xd0, 0x2d, 0x9b, 0x1a, 0x95, 0x69, 0x25, 0xb8, 0x5c, 0x6d, 0x1b, 0xc5,
- 0x07, 0x26, 0x5b, 0x37, 0x16, 0x85, 0x14, 0x21, 0x67, 0x3e, 0x77, 0xac, 0x6c, 0xb4, 0x14, 0x8a,
- 0xa3, 0x1f, 0x9f, 0xce, 0xa1, 0x1d, 0xba, 0x7f, 0xbe, 0x05, 0xcf, 0x93, 0xf4, 0xe9, 0x9b, 0x2a,
- 0x17, 0x36, 0xd5, 0x38, 0x39, 0xa7, 0x66, 0xa6, 0xdb, 0xb4, 0xa6, 0x33, 0x7c, 0xa7, 0x7b, 0x32,
- 0xcf, 0xac, 0xa6, 0x68, 0xa0, 0x67, 0x78, 0x28, 0xcf, 0x7c, 0xa7, 0x5b, 0x0c, 0x9b, 0x4e, 0xf0,
- 0xec, 0x45, 0x18, 0xa7, 0x32, 0x86, 0x0d, 0x6c, 0xa6, 0xe4, 0x32, 0x1a, 0x4c, 0x30, 0x09, 0x2b,
- 0x8f, 0x02, 0xda, 0x48, 0x8c, 0x58, 0xff, 0x15, 0x13, 0xc8, 0xfa, 0xaf, 0x94, 0x90, 0x32, 0xd7,
- 0x60, 0x5a, 0xd8, 0xbf, 0xb4, 0x24, 0xe5, 0x04, 0x58, 0xff, 0x55, 0x12, 0x13, 0xc9, 0xd8, 0x7b,
- 0xbf, 0x55, 0x47, 0x32, 0xaf, 0x80, 0xdc, 0xbf, 0xd3, 0x29, 0x8f, 0x81, 0xb4, 0x61, 0x4d, 0xf9,
- 0x3c, 0x48, 0xc5, 0x62, 0x02, 0x25, 0xa7, 0x7f, 0xfe, 0xab, 0xd4, 0x44, 0x51, 0x37, 0x4d, 0xbd,
- 0x73, 0x4f, 0x37, 0x8b, 0x45, 0x62, 0xfc, 0x1a, 0x5c, 0xf1, 0xdd, 0x29, 0xb5, 0xec, 0x4b, 0x25,
- 0xc7, 0xbe, 0x5c, 0xee, 0xb3, 0x2f, 0x97, 0x6d, 0x7b, 0x54, 0x70, 0x4f, 0x9c, 0x37, 0x64, 0x9f,
- 0x7d, 0x49, 0xa5, 0xc1, 0x9c, 0x70, 0x6f, 0x14, 0x5e, 0x23, 0xba, 0x45, 0x5f, 0x5d, 0x3d, 0xe4,
- 0xc4, 0xba, 0x58, 0x28, 0x11, 0xfb, 0x92, 0xaf, 0xfd, 0x7d, 0xe1, 0x58, 0x95, 0x7f, 0x43, 0x90,
- 0x49, 0x4a, 0xd4, 0xe1, 0xb2, 0xef, 0x24, 0x4d, 0xe6, 0xb2, 0x7b, 0x99, 0x3a, 0x5c, 0xf1, 0xd5,
- 0x6d, 0x85, 0x5c, 0xfa, 0xaa, 0x14, 0x96, 0xc8, 0x4b, 0x7e, 0x63, 0x59, 0xbe, 0xe2, 0xe6, 0x28,
- 0x57, 0x81, 0x49, 0x80, 0x5c, 0xad, 0x42, 0x89, 0x18, 0x14, 0x03, 0x0d, 0x82, 0xa3, 0xe4, 0x5a,
- 0x16, 0x5e, 0x27, 0x93, 0x94, 0x02, 0x27, 0x09, 0x09, 0x95, 0x6b, 0x5e, 0xdc, 0x39, 0x39, 0x53,
- 0x47, 0x1e, 0x9f, 0xa9, 0x23, 0xff, 0x3c, 0x53, 0x47, 0x3e, 0x39, 0x53, 0xd1, 0x67, 0x67, 0x2a,
- 0xfa, 0xfc, 0x4c, 0x45, 0x5f, 0x9c, 0xa9, 0xe8, 0x9d, 0x9e, 0x8a, 0x3e, 0xe8, 0xa9, 0xe8, 0xc3,
- 0x9e, 0x8a, 0xfe, 0xd4, 0x53, 0xd1, 0xa3, 0x9e, 0x8a, 0x4e, 0x7a, 0x2a, 0x7a, 0xdc, 0x53, 0xd1,
- 0x27, 0x3d, 0x15, 0x7d, 0xd6, 0x53, 0x47, 0x3e, 0xef, 0xa9, 0xe8, 0x8b, 0x9e, 0x3a, 0xf2, 0xce,
- 0xa7, 0xea, 0xc8, 0xc3, 0x4f, 0xd5, 0x91, 0x0f, 0x3e, 0x55, 0xd1, 0x7f, 0x03, 0x00, 0x00, 0xff,
- 0xff, 0xe9, 0xa6, 0x38, 0x99, 0x47, 0x36, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetest.pb.go b/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetest.pb.go
index cc7e284e1e..7c39ae9a20 100644
--- a/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetest.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetest.pb.go
@@ -3,29 +3,25 @@
package test
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
-import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/test/custom-dash-type"
-
-import bytes "bytes"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import compress_gzip "compress/gzip"
-import io_ioutil "io/ioutil"
-
-import strconv "strconv"
-
-import strings "strings"
-import sort "sort"
-import reflect "reflect"
-
-import encoding_binary "encoding/binary"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
+ github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/test/custom-dash-type"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ sort "sort"
+ strconv "strconv"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -51,6 +47,7 @@ var TheTestEnum_name = map[int32]string{
1: "B",
2: "C",
}
+
var TheTestEnum_value = map[string]int32{
"A": 0,
"B": 1,
@@ -62,9 +59,11 @@ func (x TheTestEnum) Enum() *TheTestEnum {
*p = x
return p
}
+
func (x TheTestEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(TheTestEnum_name, int32(x))
}
+
func (x *TheTestEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(TheTestEnum_value, data, "TheTestEnum")
if err != nil {
@@ -73,8 +72,9 @@ func (x *TheTestEnum) UnmarshalJSON(data []byte) error {
*x = TheTestEnum(value)
return nil
}
+
func (TheTestEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{0}
+ return fileDescriptor_2c941132e75f38be, []int{0}
}
type AnotherTestEnum int32
@@ -88,6 +88,7 @@ var AnotherTestEnum_name = map[int32]string{
10: "D",
11: "E",
}
+
var AnotherTestEnum_value = map[string]int32{
"D": 10,
"E": 11,
@@ -98,9 +99,11 @@ func (x AnotherTestEnum) Enum() *AnotherTestEnum {
*p = x
return p
}
+
func (x AnotherTestEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(AnotherTestEnum_name, int32(x))
}
+
func (x *AnotherTestEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(AnotherTestEnum_value, data, "AnotherTestEnum")
if err != nil {
@@ -109,8 +112,9 @@ func (x *AnotherTestEnum) UnmarshalJSON(data []byte) error {
*x = AnotherTestEnum(value)
return nil
}
+
func (AnotherTestEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{1}
+ return fileDescriptor_2c941132e75f38be, []int{1}
}
// YetAnotherTestEnum is used to test cross-package import of custom name
@@ -126,6 +130,7 @@ var YetAnotherTestEnum_name = map[int32]string{
0: "AA",
1: "BB",
}
+
var YetAnotherTestEnum_value = map[string]int32{
"AA": 0,
"BB": 1,
@@ -136,9 +141,11 @@ func (x YetAnotherTestEnum) Enum() *YetAnotherTestEnum {
*p = x
return p
}
+
func (x YetAnotherTestEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(YetAnotherTestEnum_name, int32(x))
}
+
func (x *YetAnotherTestEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(YetAnotherTestEnum_value, data, "YetAnotherTestEnum")
if err != nil {
@@ -147,8 +154,9 @@ func (x *YetAnotherTestEnum) UnmarshalJSON(data []byte) error {
*x = YetAnotherTestEnum(value)
return nil
}
+
func (YetAnotherTestEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{2}
+ return fileDescriptor_2c941132e75f38be, []int{2}
}
// YetAnotherTestEnum is used to test cross-package import of custom name
@@ -164,6 +172,7 @@ var YetYetAnotherTestEnum_name = map[int32]string{
0: "CC",
1: "DD",
}
+
var YetYetAnotherTestEnum_value = map[string]int32{
"CC": 0,
"DD": 1,
@@ -174,9 +183,11 @@ func (x YetYetAnotherTestEnum) Enum() *YetYetAnotherTestEnum {
*p = x
return p
}
+
func (x YetYetAnotherTestEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(YetYetAnotherTestEnum_name, int32(x))
}
+
func (x *YetYetAnotherTestEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(YetYetAnotherTestEnum_value, data, "YetYetAnotherTestEnum")
if err != nil {
@@ -185,8 +196,9 @@ func (x *YetYetAnotherTestEnum) UnmarshalJSON(data []byte) error {
*x = YetYetAnotherTestEnum(value)
return nil
}
+
func (YetYetAnotherTestEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{3}
+ return fileDescriptor_2c941132e75f38be, []int{3}
}
type NestedDefinition_NestedEnum int32
@@ -198,6 +210,7 @@ const (
var NestedDefinition_NestedEnum_name = map[int32]string{
1: "TYPE_NESTED",
}
+
var NestedDefinition_NestedEnum_value = map[string]int32{
"TYPE_NESTED": 1,
}
@@ -207,9 +220,11 @@ func (x NestedDefinition_NestedEnum) Enum() *NestedDefinition_NestedEnum {
*p = x
return p
}
+
func (x NestedDefinition_NestedEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(NestedDefinition_NestedEnum_name, int32(x))
}
+
func (x *NestedDefinition_NestedEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(NestedDefinition_NestedEnum_value, data, "NestedDefinition_NestedEnum")
if err != nil {
@@ -218,8 +233,9 @@ func (x *NestedDefinition_NestedEnum) UnmarshalJSON(data []byte) error {
*x = NestedDefinition_NestedEnum(value)
return nil
}
+
func (NestedDefinition_NestedEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{42, 0}
+ return fileDescriptor_2c941132e75f38be, []int{42, 0}
}
type NidOptNative struct {
@@ -246,7 +262,7 @@ type NidOptNative struct {
func (m *NidOptNative) Reset() { *m = NidOptNative{} }
func (*NidOptNative) ProtoMessage() {}
func (*NidOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{0}
+ return fileDescriptor_2c941132e75f38be, []int{0}
}
func (m *NidOptNative) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidOptNative.Unmarshal(m, b)
@@ -263,8 +279,8 @@ func (m *NidOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NidOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptNative.Merge(dst, src)
+func (m *NidOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptNative.Merge(m, src)
}
func (m *NidOptNative) XXX_Size() int {
return m.Size()
@@ -299,7 +315,7 @@ type NinOptNative struct {
func (m *NinOptNative) Reset() { *m = NinOptNative{} }
func (*NinOptNative) ProtoMessage() {}
func (*NinOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{1}
+ return fileDescriptor_2c941132e75f38be, []int{1}
}
func (m *NinOptNative) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptNative.Unmarshal(m, b)
@@ -316,8 +332,8 @@ func (m *NinOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NinOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptNative.Merge(dst, src)
+func (m *NinOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptNative.Merge(m, src)
}
func (m *NinOptNative) XXX_Size() int {
return m.Size()
@@ -352,7 +368,7 @@ type NidRepNative struct {
func (m *NidRepNative) Reset() { *m = NidRepNative{} }
func (*NidRepNative) ProtoMessage() {}
func (*NidRepNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{2}
+ return fileDescriptor_2c941132e75f38be, []int{2}
}
func (m *NidRepNative) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidRepNative.Unmarshal(m, b)
@@ -369,8 +385,8 @@ func (m *NidRepNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NidRepNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepNative.Merge(dst, src)
+func (m *NidRepNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepNative.Merge(m, src)
}
func (m *NidRepNative) XXX_Size() int {
return m.Size()
@@ -405,7 +421,7 @@ type NinRepNative struct {
func (m *NinRepNative) Reset() { *m = NinRepNative{} }
func (*NinRepNative) ProtoMessage() {}
func (*NinRepNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{3}
+ return fileDescriptor_2c941132e75f38be, []int{3}
}
func (m *NinRepNative) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinRepNative.Unmarshal(m, b)
@@ -422,8 +438,8 @@ func (m *NinRepNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NinRepNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepNative.Merge(dst, src)
+func (m *NinRepNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepNative.Merge(m, src)
}
func (m *NinRepNative) XXX_Size() int {
return m.Size()
@@ -456,7 +472,7 @@ type NidRepPackedNative struct {
func (m *NidRepPackedNative) Reset() { *m = NidRepPackedNative{} }
func (*NidRepPackedNative) ProtoMessage() {}
func (*NidRepPackedNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{4}
+ return fileDescriptor_2c941132e75f38be, []int{4}
}
func (m *NidRepPackedNative) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidRepPackedNative.Unmarshal(m, b)
@@ -473,8 +489,8 @@ func (m *NidRepPackedNative) XXX_Marshal(b []byte, deterministic bool) ([]byte,
return b[:n], nil
}
}
-func (dst *NidRepPackedNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepPackedNative.Merge(dst, src)
+func (m *NidRepPackedNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepPackedNative.Merge(m, src)
}
func (m *NidRepPackedNative) XXX_Size() int {
return m.Size()
@@ -507,7 +523,7 @@ type NinRepPackedNative struct {
func (m *NinRepPackedNative) Reset() { *m = NinRepPackedNative{} }
func (*NinRepPackedNative) ProtoMessage() {}
func (*NinRepPackedNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{5}
+ return fileDescriptor_2c941132e75f38be, []int{5}
}
func (m *NinRepPackedNative) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinRepPackedNative.Unmarshal(m, b)
@@ -524,8 +540,8 @@ func (m *NinRepPackedNative) XXX_Marshal(b []byte, deterministic bool) ([]byte,
return b[:n], nil
}
}
-func (dst *NinRepPackedNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepPackedNative.Merge(dst, src)
+func (m *NinRepPackedNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepPackedNative.Merge(m, src)
}
func (m *NinRepPackedNative) XXX_Size() int {
return m.Size()
@@ -555,7 +571,7 @@ type NidOptStruct struct {
func (m *NidOptStruct) Reset() { *m = NidOptStruct{} }
func (*NidOptStruct) ProtoMessage() {}
func (*NidOptStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{6}
+ return fileDescriptor_2c941132e75f38be, []int{6}
}
func (m *NidOptStruct) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidOptStruct.Unmarshal(m, b)
@@ -572,8 +588,8 @@ func (m *NidOptStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NidOptStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptStruct.Merge(dst, src)
+func (m *NidOptStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptStruct.Merge(m, src)
}
func (m *NidOptStruct) XXX_Size() int {
return m.Size()
@@ -603,7 +619,7 @@ type NinOptStruct struct {
func (m *NinOptStruct) Reset() { *m = NinOptStruct{} }
func (*NinOptStruct) ProtoMessage() {}
func (*NinOptStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{7}
+ return fileDescriptor_2c941132e75f38be, []int{7}
}
func (m *NinOptStruct) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptStruct.Unmarshal(m, b)
@@ -620,8 +636,8 @@ func (m *NinOptStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NinOptStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptStruct.Merge(dst, src)
+func (m *NinOptStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptStruct.Merge(m, src)
}
func (m *NinOptStruct) XXX_Size() int {
return m.Size()
@@ -651,7 +667,7 @@ type NidRepStruct struct {
func (m *NidRepStruct) Reset() { *m = NidRepStruct{} }
func (*NidRepStruct) ProtoMessage() {}
func (*NidRepStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{8}
+ return fileDescriptor_2c941132e75f38be, []int{8}
}
func (m *NidRepStruct) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidRepStruct.Unmarshal(m, b)
@@ -668,8 +684,8 @@ func (m *NidRepStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NidRepStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepStruct.Merge(dst, src)
+func (m *NidRepStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepStruct.Merge(m, src)
}
func (m *NidRepStruct) XXX_Size() int {
return m.Size()
@@ -699,7 +715,7 @@ type NinRepStruct struct {
func (m *NinRepStruct) Reset() { *m = NinRepStruct{} }
func (*NinRepStruct) ProtoMessage() {}
func (*NinRepStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{9}
+ return fileDescriptor_2c941132e75f38be, []int{9}
}
func (m *NinRepStruct) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinRepStruct.Unmarshal(m, b)
@@ -716,8 +732,8 @@ func (m *NinRepStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NinRepStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepStruct.Merge(dst, src)
+func (m *NinRepStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepStruct.Merge(m, src)
}
func (m *NinRepStruct) XXX_Size() int {
return m.Size()
@@ -740,7 +756,7 @@ type NidEmbeddedStruct struct {
func (m *NidEmbeddedStruct) Reset() { *m = NidEmbeddedStruct{} }
func (*NidEmbeddedStruct) ProtoMessage() {}
func (*NidEmbeddedStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{10}
+ return fileDescriptor_2c941132e75f38be, []int{10}
}
func (m *NidEmbeddedStruct) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidEmbeddedStruct.Unmarshal(m, b)
@@ -757,8 +773,8 @@ func (m *NidEmbeddedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
-func (dst *NidEmbeddedStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidEmbeddedStruct.Merge(dst, src)
+func (m *NidEmbeddedStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidEmbeddedStruct.Merge(m, src)
}
func (m *NidEmbeddedStruct) XXX_Size() int {
return m.Size()
@@ -781,7 +797,7 @@ type NinEmbeddedStruct struct {
func (m *NinEmbeddedStruct) Reset() { *m = NinEmbeddedStruct{} }
func (*NinEmbeddedStruct) ProtoMessage() {}
func (*NinEmbeddedStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{11}
+ return fileDescriptor_2c941132e75f38be, []int{11}
}
func (m *NinEmbeddedStruct) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinEmbeddedStruct.Unmarshal(m, b)
@@ -798,8 +814,8 @@ func (m *NinEmbeddedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
-func (dst *NinEmbeddedStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinEmbeddedStruct.Merge(dst, src)
+func (m *NinEmbeddedStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinEmbeddedStruct.Merge(m, src)
}
func (m *NinEmbeddedStruct) XXX_Size() int {
return m.Size()
@@ -821,7 +837,7 @@ type NidNestedStruct struct {
func (m *NidNestedStruct) Reset() { *m = NidNestedStruct{} }
func (*NidNestedStruct) ProtoMessage() {}
func (*NidNestedStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{12}
+ return fileDescriptor_2c941132e75f38be, []int{12}
}
func (m *NidNestedStruct) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidNestedStruct.Unmarshal(m, b)
@@ -838,8 +854,8 @@ func (m *NidNestedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, err
return b[:n], nil
}
}
-func (dst *NidNestedStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidNestedStruct.Merge(dst, src)
+func (m *NidNestedStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidNestedStruct.Merge(m, src)
}
func (m *NidNestedStruct) XXX_Size() int {
return m.Size()
@@ -861,7 +877,7 @@ type NinNestedStruct struct {
func (m *NinNestedStruct) Reset() { *m = NinNestedStruct{} }
func (*NinNestedStruct) ProtoMessage() {}
func (*NinNestedStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{13}
+ return fileDescriptor_2c941132e75f38be, []int{13}
}
func (m *NinNestedStruct) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinNestedStruct.Unmarshal(m, b)
@@ -878,8 +894,8 @@ func (m *NinNestedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, err
return b[:n], nil
}
}
-func (dst *NinNestedStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinNestedStruct.Merge(dst, src)
+func (m *NinNestedStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinNestedStruct.Merge(m, src)
}
func (m *NinNestedStruct) XXX_Size() int {
return m.Size()
@@ -901,7 +917,7 @@ type NidOptCustom struct {
func (m *NidOptCustom) Reset() { *m = NidOptCustom{} }
func (*NidOptCustom) ProtoMessage() {}
func (*NidOptCustom) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{14}
+ return fileDescriptor_2c941132e75f38be, []int{14}
}
func (m *NidOptCustom) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidOptCustom.Unmarshal(m, b)
@@ -918,8 +934,8 @@ func (m *NidOptCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NidOptCustom) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptCustom.Merge(dst, src)
+func (m *NidOptCustom) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptCustom.Merge(m, src)
}
func (m *NidOptCustom) XXX_Size() int {
return m.Size()
@@ -940,7 +956,7 @@ type CustomDash struct {
func (m *CustomDash) Reset() { *m = CustomDash{} }
func (*CustomDash) ProtoMessage() {}
func (*CustomDash) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{15}
+ return fileDescriptor_2c941132e75f38be, []int{15}
}
func (m *CustomDash) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomDash.Unmarshal(m, b)
@@ -957,8 +973,8 @@ func (m *CustomDash) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *CustomDash) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomDash.Merge(dst, src)
+func (m *CustomDash) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomDash.Merge(m, src)
}
func (m *CustomDash) XXX_Size() int {
return m.Size()
@@ -980,7 +996,7 @@ type NinOptCustom struct {
func (m *NinOptCustom) Reset() { *m = NinOptCustom{} }
func (*NinOptCustom) ProtoMessage() {}
func (*NinOptCustom) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{16}
+ return fileDescriptor_2c941132e75f38be, []int{16}
}
func (m *NinOptCustom) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptCustom.Unmarshal(m, b)
@@ -997,8 +1013,8 @@ func (m *NinOptCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NinOptCustom) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptCustom.Merge(dst, src)
+func (m *NinOptCustom) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptCustom.Merge(m, src)
}
func (m *NinOptCustom) XXX_Size() int {
return m.Size()
@@ -1020,7 +1036,7 @@ type NidRepCustom struct {
func (m *NidRepCustom) Reset() { *m = NidRepCustom{} }
func (*NidRepCustom) ProtoMessage() {}
func (*NidRepCustom) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{17}
+ return fileDescriptor_2c941132e75f38be, []int{17}
}
func (m *NidRepCustom) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidRepCustom.Unmarshal(m, b)
@@ -1037,8 +1053,8 @@ func (m *NidRepCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NidRepCustom) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepCustom.Merge(dst, src)
+func (m *NidRepCustom) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepCustom.Merge(m, src)
}
func (m *NidRepCustom) XXX_Size() int {
return m.Size()
@@ -1060,7 +1076,7 @@ type NinRepCustom struct {
func (m *NinRepCustom) Reset() { *m = NinRepCustom{} }
func (*NinRepCustom) ProtoMessage() {}
func (*NinRepCustom) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{18}
+ return fileDescriptor_2c941132e75f38be, []int{18}
}
func (m *NinRepCustom) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinRepCustom.Unmarshal(m, b)
@@ -1077,8 +1093,8 @@ func (m *NinRepCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NinRepCustom) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepCustom.Merge(dst, src)
+func (m *NinRepCustom) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepCustom.Merge(m, src)
}
func (m *NinRepCustom) XXX_Size() int {
return m.Size()
@@ -1107,7 +1123,7 @@ type NinOptNativeUnion struct {
func (m *NinOptNativeUnion) Reset() { *m = NinOptNativeUnion{} }
func (*NinOptNativeUnion) ProtoMessage() {}
func (*NinOptNativeUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{19}
+ return fileDescriptor_2c941132e75f38be, []int{19}
}
func (m *NinOptNativeUnion) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptNativeUnion.Unmarshal(m, b)
@@ -1124,8 +1140,8 @@ func (m *NinOptNativeUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
-func (dst *NinOptNativeUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptNativeUnion.Merge(dst, src)
+func (m *NinOptNativeUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptNativeUnion.Merge(m, src)
}
func (m *NinOptNativeUnion) XXX_Size() int {
return m.Size()
@@ -1154,7 +1170,7 @@ type NinOptStructUnion struct {
func (m *NinOptStructUnion) Reset() { *m = NinOptStructUnion{} }
func (*NinOptStructUnion) ProtoMessage() {}
func (*NinOptStructUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{20}
+ return fileDescriptor_2c941132e75f38be, []int{20}
}
func (m *NinOptStructUnion) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptStructUnion.Unmarshal(m, b)
@@ -1171,8 +1187,8 @@ func (m *NinOptStructUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
-func (dst *NinOptStructUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptStructUnion.Merge(dst, src)
+func (m *NinOptStructUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptStructUnion.Merge(m, src)
}
func (m *NinOptStructUnion) XXX_Size() int {
return m.Size()
@@ -1195,7 +1211,7 @@ type NinEmbeddedStructUnion struct {
func (m *NinEmbeddedStructUnion) Reset() { *m = NinEmbeddedStructUnion{} }
func (*NinEmbeddedStructUnion) ProtoMessage() {}
func (*NinEmbeddedStructUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{21}
+ return fileDescriptor_2c941132e75f38be, []int{21}
}
func (m *NinEmbeddedStructUnion) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinEmbeddedStructUnion.Unmarshal(m, b)
@@ -1212,8 +1228,8 @@ func (m *NinEmbeddedStructUnion) XXX_Marshal(b []byte, deterministic bool) ([]by
return b[:n], nil
}
}
-func (dst *NinEmbeddedStructUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinEmbeddedStructUnion.Merge(dst, src)
+func (m *NinEmbeddedStructUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinEmbeddedStructUnion.Merge(m, src)
}
func (m *NinEmbeddedStructUnion) XXX_Size() int {
return m.Size()
@@ -1236,7 +1252,7 @@ type NinNestedStructUnion struct {
func (m *NinNestedStructUnion) Reset() { *m = NinNestedStructUnion{} }
func (*NinNestedStructUnion) ProtoMessage() {}
func (*NinNestedStructUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{22}
+ return fileDescriptor_2c941132e75f38be, []int{22}
}
func (m *NinNestedStructUnion) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinNestedStructUnion.Unmarshal(m, b)
@@ -1253,8 +1269,8 @@ func (m *NinNestedStructUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte
return b[:n], nil
}
}
-func (dst *NinNestedStructUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinNestedStructUnion.Merge(dst, src)
+func (m *NinNestedStructUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinNestedStructUnion.Merge(m, src)
}
func (m *NinNestedStructUnion) XXX_Size() int {
return m.Size()
@@ -1277,7 +1293,7 @@ type Tree struct {
func (m *Tree) Reset() { *m = Tree{} }
func (*Tree) ProtoMessage() {}
func (*Tree) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{23}
+ return fileDescriptor_2c941132e75f38be, []int{23}
}
func (m *Tree) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Tree.Unmarshal(m, b)
@@ -1294,8 +1310,8 @@ func (m *Tree) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Tree) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Tree.Merge(dst, src)
+func (m *Tree) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Tree.Merge(m, src)
}
func (m *Tree) XXX_Size() int {
return m.Size()
@@ -1317,7 +1333,7 @@ type OrBranch struct {
func (m *OrBranch) Reset() { *m = OrBranch{} }
func (*OrBranch) ProtoMessage() {}
func (*OrBranch) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{24}
+ return fileDescriptor_2c941132e75f38be, []int{24}
}
func (m *OrBranch) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OrBranch.Unmarshal(m, b)
@@ -1334,8 +1350,8 @@ func (m *OrBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *OrBranch) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OrBranch.Merge(dst, src)
+func (m *OrBranch) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OrBranch.Merge(m, src)
}
func (m *OrBranch) XXX_Size() int {
return m.Size()
@@ -1357,7 +1373,7 @@ type AndBranch struct {
func (m *AndBranch) Reset() { *m = AndBranch{} }
func (*AndBranch) ProtoMessage() {}
func (*AndBranch) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{25}
+ return fileDescriptor_2c941132e75f38be, []int{25}
}
func (m *AndBranch) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AndBranch.Unmarshal(m, b)
@@ -1374,8 +1390,8 @@ func (m *AndBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *AndBranch) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AndBranch.Merge(dst, src)
+func (m *AndBranch) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AndBranch.Merge(m, src)
}
func (m *AndBranch) XXX_Size() int {
return m.Size()
@@ -1397,7 +1413,7 @@ type Leaf struct {
func (m *Leaf) Reset() { *m = Leaf{} }
func (*Leaf) ProtoMessage() {}
func (*Leaf) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{26}
+ return fileDescriptor_2c941132e75f38be, []int{26}
}
func (m *Leaf) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Leaf.Unmarshal(m, b)
@@ -1414,8 +1430,8 @@ func (m *Leaf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Leaf) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Leaf.Merge(dst, src)
+func (m *Leaf) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Leaf.Merge(m, src)
}
func (m *Leaf) XXX_Size() int {
return m.Size()
@@ -1438,7 +1454,7 @@ type DeepTree struct {
func (m *DeepTree) Reset() { *m = DeepTree{} }
func (*DeepTree) ProtoMessage() {}
func (*DeepTree) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{27}
+ return fileDescriptor_2c941132e75f38be, []int{27}
}
func (m *DeepTree) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeepTree.Unmarshal(m, b)
@@ -1455,8 +1471,8 @@ func (m *DeepTree) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *DeepTree) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DeepTree.Merge(dst, src)
+func (m *DeepTree) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DeepTree.Merge(m, src)
}
func (m *DeepTree) XXX_Size() int {
return m.Size()
@@ -1477,7 +1493,7 @@ type ADeepBranch struct {
func (m *ADeepBranch) Reset() { *m = ADeepBranch{} }
func (*ADeepBranch) ProtoMessage() {}
func (*ADeepBranch) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{28}
+ return fileDescriptor_2c941132e75f38be, []int{28}
}
func (m *ADeepBranch) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ADeepBranch.Unmarshal(m, b)
@@ -1494,8 +1510,8 @@ func (m *ADeepBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *ADeepBranch) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ADeepBranch.Merge(dst, src)
+func (m *ADeepBranch) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ADeepBranch.Merge(m, src)
}
func (m *ADeepBranch) XXX_Size() int {
return m.Size()
@@ -1517,7 +1533,7 @@ type AndDeepBranch struct {
func (m *AndDeepBranch) Reset() { *m = AndDeepBranch{} }
func (*AndDeepBranch) ProtoMessage() {}
func (*AndDeepBranch) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{29}
+ return fileDescriptor_2c941132e75f38be, []int{29}
}
func (m *AndDeepBranch) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AndDeepBranch.Unmarshal(m, b)
@@ -1534,8 +1550,8 @@ func (m *AndDeepBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
return b[:n], nil
}
}
-func (dst *AndDeepBranch) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AndDeepBranch.Merge(dst, src)
+func (m *AndDeepBranch) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AndDeepBranch.Merge(m, src)
}
func (m *AndDeepBranch) XXX_Size() int {
return m.Size()
@@ -1556,7 +1572,7 @@ type DeepLeaf struct {
func (m *DeepLeaf) Reset() { *m = DeepLeaf{} }
func (*DeepLeaf) ProtoMessage() {}
func (*DeepLeaf) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{30}
+ return fileDescriptor_2c941132e75f38be, []int{30}
}
func (m *DeepLeaf) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeepLeaf.Unmarshal(m, b)
@@ -1573,8 +1589,8 @@ func (m *DeepLeaf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *DeepLeaf) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DeepLeaf.Merge(dst, src)
+func (m *DeepLeaf) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DeepLeaf.Merge(m, src)
}
func (m *DeepLeaf) XXX_Size() int {
return m.Size()
@@ -1594,7 +1610,7 @@ type Nil struct {
func (m *Nil) Reset() { *m = Nil{} }
func (*Nil) ProtoMessage() {}
func (*Nil) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{31}
+ return fileDescriptor_2c941132e75f38be, []int{31}
}
func (m *Nil) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Nil.Unmarshal(m, b)
@@ -1611,8 +1627,8 @@ func (m *Nil) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Nil) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Nil.Merge(dst, src)
+func (m *Nil) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Nil.Merge(m, src)
}
func (m *Nil) XXX_Size() int {
return m.Size()
@@ -1633,7 +1649,7 @@ type NidOptEnum struct {
func (m *NidOptEnum) Reset() { *m = NidOptEnum{} }
func (*NidOptEnum) ProtoMessage() {}
func (*NidOptEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{32}
+ return fileDescriptor_2c941132e75f38be, []int{32}
}
func (m *NidOptEnum) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidOptEnum.Unmarshal(m, b)
@@ -1650,8 +1666,8 @@ func (m *NidOptEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *NidOptEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptEnum.Merge(dst, src)
+func (m *NidOptEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptEnum.Merge(m, src)
}
func (m *NidOptEnum) XXX_Size() int {
return m.Size()
@@ -1674,7 +1690,7 @@ type NinOptEnum struct {
func (m *NinOptEnum) Reset() { *m = NinOptEnum{} }
func (*NinOptEnum) ProtoMessage() {}
func (*NinOptEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{33}
+ return fileDescriptor_2c941132e75f38be, []int{33}
}
func (m *NinOptEnum) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptEnum.Unmarshal(m, b)
@@ -1691,8 +1707,8 @@ func (m *NinOptEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *NinOptEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptEnum.Merge(dst, src)
+func (m *NinOptEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptEnum.Merge(m, src)
}
func (m *NinOptEnum) XXX_Size() int {
return m.Size()
@@ -1715,7 +1731,7 @@ type NidRepEnum struct {
func (m *NidRepEnum) Reset() { *m = NidRepEnum{} }
func (*NidRepEnum) ProtoMessage() {}
func (*NidRepEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{34}
+ return fileDescriptor_2c941132e75f38be, []int{34}
}
func (m *NidRepEnum) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidRepEnum.Unmarshal(m, b)
@@ -1732,8 +1748,8 @@ func (m *NidRepEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *NidRepEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepEnum.Merge(dst, src)
+func (m *NidRepEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepEnum.Merge(m, src)
}
func (m *NidRepEnum) XXX_Size() int {
return m.Size()
@@ -1756,7 +1772,7 @@ type NinRepEnum struct {
func (m *NinRepEnum) Reset() { *m = NinRepEnum{} }
func (*NinRepEnum) ProtoMessage() {}
func (*NinRepEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{35}
+ return fileDescriptor_2c941132e75f38be, []int{35}
}
func (m *NinRepEnum) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinRepEnum.Unmarshal(m, b)
@@ -1773,8 +1789,8 @@ func (m *NinRepEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *NinRepEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepEnum.Merge(dst, src)
+func (m *NinRepEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepEnum.Merge(m, src)
}
func (m *NinRepEnum) XXX_Size() int {
return m.Size()
@@ -1797,7 +1813,7 @@ type NinOptEnumDefault struct {
func (m *NinOptEnumDefault) Reset() { *m = NinOptEnumDefault{} }
func (*NinOptEnumDefault) ProtoMessage() {}
func (*NinOptEnumDefault) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{36}
+ return fileDescriptor_2c941132e75f38be, []int{36}
}
func (m *NinOptEnumDefault) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptEnumDefault.Unmarshal(m, b)
@@ -1814,8 +1830,8 @@ func (m *NinOptEnumDefault) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
-func (dst *NinOptEnumDefault) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptEnumDefault.Merge(dst, src)
+func (m *NinOptEnumDefault) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptEnumDefault.Merge(m, src)
}
func (m *NinOptEnumDefault) XXX_Size() int {
return m.Size()
@@ -1863,7 +1879,7 @@ type AnotherNinOptEnum struct {
func (m *AnotherNinOptEnum) Reset() { *m = AnotherNinOptEnum{} }
func (*AnotherNinOptEnum) ProtoMessage() {}
func (*AnotherNinOptEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{37}
+ return fileDescriptor_2c941132e75f38be, []int{37}
}
func (m *AnotherNinOptEnum) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AnotherNinOptEnum.Unmarshal(m, b)
@@ -1880,8 +1896,8 @@ func (m *AnotherNinOptEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
-func (dst *AnotherNinOptEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AnotherNinOptEnum.Merge(dst, src)
+func (m *AnotherNinOptEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AnotherNinOptEnum.Merge(m, src)
}
func (m *AnotherNinOptEnum) XXX_Size() int {
return m.Size()
@@ -1904,7 +1920,7 @@ type AnotherNinOptEnumDefault struct {
func (m *AnotherNinOptEnumDefault) Reset() { *m = AnotherNinOptEnumDefault{} }
func (*AnotherNinOptEnumDefault) ProtoMessage() {}
func (*AnotherNinOptEnumDefault) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{38}
+ return fileDescriptor_2c941132e75f38be, []int{38}
}
func (m *AnotherNinOptEnumDefault) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AnotherNinOptEnumDefault.Unmarshal(m, b)
@@ -1921,8 +1937,8 @@ func (m *AnotherNinOptEnumDefault) XXX_Marshal(b []byte, deterministic bool) ([]
return b[:n], nil
}
}
-func (dst *AnotherNinOptEnumDefault) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AnotherNinOptEnumDefault.Merge(dst, src)
+func (m *AnotherNinOptEnumDefault) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AnotherNinOptEnumDefault.Merge(m, src)
}
func (m *AnotherNinOptEnumDefault) XXX_Size() int {
return m.Size()
@@ -1970,7 +1986,7 @@ type Timer struct {
func (m *Timer) Reset() { *m = Timer{} }
func (*Timer) ProtoMessage() {}
func (*Timer) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{39}
+ return fileDescriptor_2c941132e75f38be, []int{39}
}
func (m *Timer) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Timer.Unmarshal(m, b)
@@ -1987,8 +2003,8 @@ func (m *Timer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Timer) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Timer.Merge(dst, src)
+func (m *Timer) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Timer.Merge(m, src)
}
func (m *Timer) XXX_Size() int {
return m.Size()
@@ -2010,7 +2026,7 @@ type MyExtendable struct {
func (m *MyExtendable) Reset() { *m = MyExtendable{} }
func (*MyExtendable) ProtoMessage() {}
func (*MyExtendable) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{40}
+ return fileDescriptor_2c941132e75f38be, []int{40}
}
var extRange_MyExtendable = []proto.ExtensionRange{
@@ -2020,6 +2036,7 @@ var extRange_MyExtendable = []proto.ExtensionRange{
func (*MyExtendable) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_MyExtendable
}
+
func (m *MyExtendable) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MyExtendable.Unmarshal(m, b)
}
@@ -2035,8 +2052,8 @@ func (m *MyExtendable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *MyExtendable) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MyExtendable.Merge(dst, src)
+func (m *MyExtendable) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MyExtendable.Merge(m, src)
}
func (m *MyExtendable) XXX_Size() int {
return m.Size()
@@ -2060,7 +2077,7 @@ type OtherExtenable struct {
func (m *OtherExtenable) Reset() { *m = OtherExtenable{} }
func (*OtherExtenable) ProtoMessage() {}
func (*OtherExtenable) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{41}
+ return fileDescriptor_2c941132e75f38be, []int{41}
}
var extRange_OtherExtenable = []proto.ExtensionRange{
@@ -2071,6 +2088,7 @@ var extRange_OtherExtenable = []proto.ExtensionRange{
func (*OtherExtenable) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_OtherExtenable
}
+
func (m *OtherExtenable) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OtherExtenable.Unmarshal(m, b)
}
@@ -2086,8 +2104,8 @@ func (m *OtherExtenable) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro
return b[:n], nil
}
}
-func (dst *OtherExtenable) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OtherExtenable.Merge(dst, src)
+func (m *OtherExtenable) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OtherExtenable.Merge(m, src)
}
func (m *OtherExtenable) XXX_Size() int {
return m.Size()
@@ -2111,7 +2129,7 @@ type NestedDefinition struct {
func (m *NestedDefinition) Reset() { *m = NestedDefinition{} }
func (*NestedDefinition) ProtoMessage() {}
func (*NestedDefinition) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{42}
+ return fileDescriptor_2c941132e75f38be, []int{42}
}
func (m *NestedDefinition) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NestedDefinition.Unmarshal(m, b)
@@ -2128,8 +2146,8 @@ func (m *NestedDefinition) XXX_Marshal(b []byte, deterministic bool) ([]byte, er
return b[:n], nil
}
}
-func (dst *NestedDefinition) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedDefinition.Merge(dst, src)
+func (m *NestedDefinition) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedDefinition.Merge(m, src)
}
func (m *NestedDefinition) XXX_Size() int {
return m.Size()
@@ -2151,7 +2169,7 @@ type NestedDefinition_NestedMessage struct {
func (m *NestedDefinition_NestedMessage) Reset() { *m = NestedDefinition_NestedMessage{} }
func (*NestedDefinition_NestedMessage) ProtoMessage() {}
func (*NestedDefinition_NestedMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{42, 0}
+ return fileDescriptor_2c941132e75f38be, []int{42, 0}
}
func (m *NestedDefinition_NestedMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NestedDefinition_NestedMessage.Unmarshal(m, b)
@@ -2168,8 +2186,8 @@ func (m *NestedDefinition_NestedMessage) XXX_Marshal(b []byte, deterministic boo
return b[:n], nil
}
}
-func (dst *NestedDefinition_NestedMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedDefinition_NestedMessage.Merge(dst, src)
+func (m *NestedDefinition_NestedMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedDefinition_NestedMessage.Merge(m, src)
}
func (m *NestedDefinition_NestedMessage) XXX_Size() int {
return m.Size()
@@ -2192,7 +2210,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Reset() {
}
func (*NestedDefinition_NestedMessage_NestedNestedMsg) ProtoMessage() {}
func (*NestedDefinition_NestedMessage_NestedNestedMsg) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{42, 0, 0}
+ return fileDescriptor_2c941132e75f38be, []int{42, 0, 0}
}
func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NestedDefinition_NestedMessage_NestedNestedMsg.Unmarshal(m, b)
@@ -2209,8 +2227,8 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Marshal(b []byte, d
return b[:n], nil
}
}
-func (dst *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedDefinition_NestedMessage_NestedNestedMsg.Merge(dst, src)
+func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedDefinition_NestedMessage_NestedNestedMsg.Merge(m, src)
}
func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Size() int {
return m.Size()
@@ -2233,7 +2251,7 @@ type NestedScope struct {
func (m *NestedScope) Reset() { *m = NestedScope{} }
func (*NestedScope) ProtoMessage() {}
func (*NestedScope) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{43}
+ return fileDescriptor_2c941132e75f38be, []int{43}
}
func (m *NestedScope) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NestedScope.Unmarshal(m, b)
@@ -2250,8 +2268,8 @@ func (m *NestedScope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NestedScope) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedScope.Merge(dst, src)
+func (m *NestedScope) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedScope.Merge(m, src)
}
func (m *NestedScope) XXX_Size() int {
return m.Size()
@@ -2264,7 +2282,7 @@ var xxx_messageInfo_NestedScope proto.InternalMessageInfo
type NinOptNativeDefault struct {
Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"`
- Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.12341" json:"Field2,omitempty"`
+ Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"`
Field3 *int32 `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"`
Field4 *int64 `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"`
Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"`
@@ -2286,7 +2304,7 @@ type NinOptNativeDefault struct {
func (m *NinOptNativeDefault) Reset() { *m = NinOptNativeDefault{} }
func (*NinOptNativeDefault) ProtoMessage() {}
func (*NinOptNativeDefault) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{44}
+ return fileDescriptor_2c941132e75f38be, []int{44}
}
func (m *NinOptNativeDefault) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptNativeDefault.Unmarshal(m, b)
@@ -2303,8 +2321,8 @@ func (m *NinOptNativeDefault) XXX_Marshal(b []byte, deterministic bool) ([]byte,
return b[:n], nil
}
}
-func (dst *NinOptNativeDefault) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptNativeDefault.Merge(dst, src)
+func (m *NinOptNativeDefault) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptNativeDefault.Merge(m, src)
}
func (m *NinOptNativeDefault) XXX_Size() int {
return m.Size()
@@ -2316,7 +2334,7 @@ func (m *NinOptNativeDefault) XXX_DiscardUnknown() {
var xxx_messageInfo_NinOptNativeDefault proto.InternalMessageInfo
const Default_NinOptNativeDefault_Field1 float64 = 1234.1234
-const Default_NinOptNativeDefault_Field2 float32 = 1234.12341
+const Default_NinOptNativeDefault_Field2 float32 = 1234.1234
const Default_NinOptNativeDefault_Field3 int32 = 1234
const Default_NinOptNativeDefault_Field4 int64 = 1234
const Default_NinOptNativeDefault_Field5 uint32 = 1234
@@ -2445,7 +2463,7 @@ type CustomContainer struct {
func (m *CustomContainer) Reset() { *m = CustomContainer{} }
func (*CustomContainer) ProtoMessage() {}
func (*CustomContainer) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{45}
+ return fileDescriptor_2c941132e75f38be, []int{45}
}
func (m *CustomContainer) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomContainer.Unmarshal(m, b)
@@ -2462,8 +2480,8 @@ func (m *CustomContainer) XXX_Marshal(b []byte, deterministic bool) ([]byte, err
return b[:n], nil
}
}
-func (dst *CustomContainer) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomContainer.Merge(dst, src)
+func (m *CustomContainer) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomContainer.Merge(m, src)
}
func (m *CustomContainer) XXX_Size() int {
return m.Size()
@@ -2498,7 +2516,7 @@ type CustomNameNidOptNative struct {
func (m *CustomNameNidOptNative) Reset() { *m = CustomNameNidOptNative{} }
func (*CustomNameNidOptNative) ProtoMessage() {}
func (*CustomNameNidOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{46}
+ return fileDescriptor_2c941132e75f38be, []int{46}
}
func (m *CustomNameNidOptNative) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomNameNidOptNative.Unmarshal(m, b)
@@ -2515,8 +2533,8 @@ func (m *CustomNameNidOptNative) XXX_Marshal(b []byte, deterministic bool) ([]by
return b[:n], nil
}
}
-func (dst *CustomNameNidOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNidOptNative.Merge(dst, src)
+func (m *CustomNameNidOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNidOptNative.Merge(m, src)
}
func (m *CustomNameNidOptNative) XXX_Size() int {
return m.Size()
@@ -2551,7 +2569,7 @@ type CustomNameNinOptNative struct {
func (m *CustomNameNinOptNative) Reset() { *m = CustomNameNinOptNative{} }
func (*CustomNameNinOptNative) ProtoMessage() {}
func (*CustomNameNinOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{47}
+ return fileDescriptor_2c941132e75f38be, []int{47}
}
func (m *CustomNameNinOptNative) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomNameNinOptNative.Unmarshal(m, b)
@@ -2568,8 +2586,8 @@ func (m *CustomNameNinOptNative) XXX_Marshal(b []byte, deterministic bool) ([]by
return b[:n], nil
}
}
-func (dst *CustomNameNinOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNinOptNative.Merge(dst, src)
+func (m *CustomNameNinOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNinOptNative.Merge(m, src)
}
func (m *CustomNameNinOptNative) XXX_Size() int {
return m.Size()
@@ -2604,7 +2622,7 @@ type CustomNameNinRepNative struct {
func (m *CustomNameNinRepNative) Reset() { *m = CustomNameNinRepNative{} }
func (*CustomNameNinRepNative) ProtoMessage() {}
func (*CustomNameNinRepNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{48}
+ return fileDescriptor_2c941132e75f38be, []int{48}
}
func (m *CustomNameNinRepNative) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomNameNinRepNative.Unmarshal(m, b)
@@ -2621,8 +2639,8 @@ func (m *CustomNameNinRepNative) XXX_Marshal(b []byte, deterministic bool) ([]by
return b[:n], nil
}
}
-func (dst *CustomNameNinRepNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNinRepNative.Merge(dst, src)
+func (m *CustomNameNinRepNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNinRepNative.Merge(m, src)
}
func (m *CustomNameNinRepNative) XXX_Size() int {
return m.Size()
@@ -2652,7 +2670,7 @@ type CustomNameNinStruct struct {
func (m *CustomNameNinStruct) Reset() { *m = CustomNameNinStruct{} }
func (*CustomNameNinStruct) ProtoMessage() {}
func (*CustomNameNinStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{49}
+ return fileDescriptor_2c941132e75f38be, []int{49}
}
func (m *CustomNameNinStruct) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomNameNinStruct.Unmarshal(m, b)
@@ -2669,8 +2687,8 @@ func (m *CustomNameNinStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte,
return b[:n], nil
}
}
-func (dst *CustomNameNinStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNinStruct.Merge(dst, src)
+func (m *CustomNameNinStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNinStruct.Merge(m, src)
}
func (m *CustomNameNinStruct) XXX_Size() int {
return m.Size()
@@ -2694,7 +2712,7 @@ type CustomNameCustomType struct {
func (m *CustomNameCustomType) Reset() { *m = CustomNameCustomType{} }
func (*CustomNameCustomType) ProtoMessage() {}
func (*CustomNameCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{50}
+ return fileDescriptor_2c941132e75f38be, []int{50}
}
func (m *CustomNameCustomType) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomNameCustomType.Unmarshal(m, b)
@@ -2711,8 +2729,8 @@ func (m *CustomNameCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte
return b[:n], nil
}
}
-func (dst *CustomNameCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameCustomType.Merge(dst, src)
+func (m *CustomNameCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameCustomType.Merge(m, src)
}
func (m *CustomNameCustomType) XXX_Size() int {
return m.Size()
@@ -2735,7 +2753,7 @@ type CustomNameNinEmbeddedStructUnion struct {
func (m *CustomNameNinEmbeddedStructUnion) Reset() { *m = CustomNameNinEmbeddedStructUnion{} }
func (*CustomNameNinEmbeddedStructUnion) ProtoMessage() {}
func (*CustomNameNinEmbeddedStructUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{51}
+ return fileDescriptor_2c941132e75f38be, []int{51}
}
func (m *CustomNameNinEmbeddedStructUnion) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomNameNinEmbeddedStructUnion.Unmarshal(m, b)
@@ -2752,8 +2770,8 @@ func (m *CustomNameNinEmbeddedStructUnion) XXX_Marshal(b []byte, deterministic b
return b[:n], nil
}
}
-func (dst *CustomNameNinEmbeddedStructUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNinEmbeddedStructUnion.Merge(dst, src)
+func (m *CustomNameNinEmbeddedStructUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNinEmbeddedStructUnion.Merge(m, src)
}
func (m *CustomNameNinEmbeddedStructUnion) XXX_Size() int {
return m.Size()
@@ -2775,7 +2793,7 @@ type CustomNameEnum struct {
func (m *CustomNameEnum) Reset() { *m = CustomNameEnum{} }
func (*CustomNameEnum) ProtoMessage() {}
func (*CustomNameEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{52}
+ return fileDescriptor_2c941132e75f38be, []int{52}
}
func (m *CustomNameEnum) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomNameEnum.Unmarshal(m, b)
@@ -2792,8 +2810,8 @@ func (m *CustomNameEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro
return b[:n], nil
}
}
-func (dst *CustomNameEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameEnum.Merge(dst, src)
+func (m *CustomNameEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameEnum.Merge(m, src)
}
func (m *CustomNameEnum) XXX_Size() int {
return m.Size()
@@ -2815,7 +2833,7 @@ type NoExtensionsMap struct {
func (m *NoExtensionsMap) Reset() { *m = NoExtensionsMap{} }
func (*NoExtensionsMap) ProtoMessage() {}
func (*NoExtensionsMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{53}
+ return fileDescriptor_2c941132e75f38be, []int{53}
}
var extRange_NoExtensionsMap = []proto.ExtensionRange{
@@ -2825,6 +2843,7 @@ var extRange_NoExtensionsMap = []proto.ExtensionRange{
func (*NoExtensionsMap) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_NoExtensionsMap
}
+
func (m *NoExtensionsMap) GetExtensions() *[]byte {
if m.XXX_extensions == nil {
m.XXX_extensions = make([]byte, 0)
@@ -2846,8 +2865,8 @@ func (m *NoExtensionsMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, err
return b[:n], nil
}
}
-func (dst *NoExtensionsMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NoExtensionsMap.Merge(dst, src)
+func (m *NoExtensionsMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NoExtensionsMap.Merge(m, src)
}
func (m *NoExtensionsMap) XXX_Size() int {
return m.Size()
@@ -2867,7 +2886,7 @@ type Unrecognized struct {
func (m *Unrecognized) Reset() { *m = Unrecognized{} }
func (*Unrecognized) ProtoMessage() {}
func (*Unrecognized) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{54}
+ return fileDescriptor_2c941132e75f38be, []int{54}
}
func (m *Unrecognized) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Unrecognized.Unmarshal(m, b)
@@ -2884,8 +2903,8 @@ func (m *Unrecognized) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *Unrecognized) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Unrecognized.Merge(dst, src)
+func (m *Unrecognized) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Unrecognized.Merge(m, src)
}
func (m *Unrecognized) XXX_Size() int {
return m.Size()
@@ -2907,7 +2926,7 @@ type UnrecognizedWithInner struct {
func (m *UnrecognizedWithInner) Reset() { *m = UnrecognizedWithInner{} }
func (*UnrecognizedWithInner) ProtoMessage() {}
func (*UnrecognizedWithInner) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{55}
+ return fileDescriptor_2c941132e75f38be, []int{55}
}
func (m *UnrecognizedWithInner) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UnrecognizedWithInner.Unmarshal(m, b)
@@ -2924,8 +2943,8 @@ func (m *UnrecognizedWithInner) XXX_Marshal(b []byte, deterministic bool) ([]byt
return b[:n], nil
}
}
-func (dst *UnrecognizedWithInner) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnrecognizedWithInner.Merge(dst, src)
+func (m *UnrecognizedWithInner) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnrecognizedWithInner.Merge(m, src)
}
func (m *UnrecognizedWithInner) XXX_Size() int {
return m.Size()
@@ -2945,7 +2964,7 @@ type UnrecognizedWithInner_Inner struct {
func (m *UnrecognizedWithInner_Inner) Reset() { *m = UnrecognizedWithInner_Inner{} }
func (*UnrecognizedWithInner_Inner) ProtoMessage() {}
func (*UnrecognizedWithInner_Inner) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{55, 0}
+ return fileDescriptor_2c941132e75f38be, []int{55, 0}
}
func (m *UnrecognizedWithInner_Inner) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UnrecognizedWithInner_Inner.Unmarshal(m, b)
@@ -2962,8 +2981,8 @@ func (m *UnrecognizedWithInner_Inner) XXX_Marshal(b []byte, deterministic bool)
return b[:n], nil
}
}
-func (dst *UnrecognizedWithInner_Inner) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnrecognizedWithInner_Inner.Merge(dst, src)
+func (m *UnrecognizedWithInner_Inner) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnrecognizedWithInner_Inner.Merge(m, src)
}
func (m *UnrecognizedWithInner_Inner) XXX_Size() int {
return m.Size()
@@ -2985,7 +3004,7 @@ type UnrecognizedWithEmbed struct {
func (m *UnrecognizedWithEmbed) Reset() { *m = UnrecognizedWithEmbed{} }
func (*UnrecognizedWithEmbed) ProtoMessage() {}
func (*UnrecognizedWithEmbed) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{56}
+ return fileDescriptor_2c941132e75f38be, []int{56}
}
func (m *UnrecognizedWithEmbed) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UnrecognizedWithEmbed.Unmarshal(m, b)
@@ -3002,8 +3021,8 @@ func (m *UnrecognizedWithEmbed) XXX_Marshal(b []byte, deterministic bool) ([]byt
return b[:n], nil
}
}
-func (dst *UnrecognizedWithEmbed) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnrecognizedWithEmbed.Merge(dst, src)
+func (m *UnrecognizedWithEmbed) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnrecognizedWithEmbed.Merge(m, src)
}
func (m *UnrecognizedWithEmbed) XXX_Size() int {
return m.Size()
@@ -3023,7 +3042,7 @@ type UnrecognizedWithEmbed_Embedded struct {
func (m *UnrecognizedWithEmbed_Embedded) Reset() { *m = UnrecognizedWithEmbed_Embedded{} }
func (*UnrecognizedWithEmbed_Embedded) ProtoMessage() {}
func (*UnrecognizedWithEmbed_Embedded) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{56, 0}
+ return fileDescriptor_2c941132e75f38be, []int{56, 0}
}
func (m *UnrecognizedWithEmbed_Embedded) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UnrecognizedWithEmbed_Embedded.Unmarshal(m, b)
@@ -3040,8 +3059,8 @@ func (m *UnrecognizedWithEmbed_Embedded) XXX_Marshal(b []byte, deterministic boo
return b[:n], nil
}
}
-func (dst *UnrecognizedWithEmbed_Embedded) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnrecognizedWithEmbed_Embedded.Merge(dst, src)
+func (m *UnrecognizedWithEmbed_Embedded) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnrecognizedWithEmbed_Embedded.Merge(m, src)
}
func (m *UnrecognizedWithEmbed_Embedded) XXX_Size() int {
return m.Size()
@@ -3063,7 +3082,7 @@ type Node struct {
func (m *Node) Reset() { *m = Node{} }
func (*Node) ProtoMessage() {}
func (*Node) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{57}
+ return fileDescriptor_2c941132e75f38be, []int{57}
}
func (m *Node) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Node.Unmarshal(m, b)
@@ -3080,8 +3099,8 @@ func (m *Node) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Node) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Node.Merge(dst, src)
+func (m *Node) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Node.Merge(m, src)
}
func (m *Node) XXX_Size() int {
return m.Size()
@@ -3102,7 +3121,7 @@ type NonByteCustomType struct {
func (m *NonByteCustomType) Reset() { *m = NonByteCustomType{} }
func (*NonByteCustomType) ProtoMessage() {}
func (*NonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{58}
+ return fileDescriptor_2c941132e75f38be, []int{58}
}
func (m *NonByteCustomType) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NonByteCustomType.Unmarshal(m, b)
@@ -3119,8 +3138,8 @@ func (m *NonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
-func (dst *NonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NonByteCustomType.Merge(dst, src)
+func (m *NonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NonByteCustomType.Merge(m, src)
}
func (m *NonByteCustomType) XXX_Size() int {
return m.Size()
@@ -3141,7 +3160,7 @@ type NidOptNonByteCustomType struct {
func (m *NidOptNonByteCustomType) Reset() { *m = NidOptNonByteCustomType{} }
func (*NidOptNonByteCustomType) ProtoMessage() {}
func (*NidOptNonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{59}
+ return fileDescriptor_2c941132e75f38be, []int{59}
}
func (m *NidOptNonByteCustomType) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidOptNonByteCustomType.Unmarshal(m, b)
@@ -3158,8 +3177,8 @@ func (m *NidOptNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]b
return b[:n], nil
}
}
-func (dst *NidOptNonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptNonByteCustomType.Merge(dst, src)
+func (m *NidOptNonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptNonByteCustomType.Merge(m, src)
}
func (m *NidOptNonByteCustomType) XXX_Size() int {
return m.Size()
@@ -3180,7 +3199,7 @@ type NinOptNonByteCustomType struct {
func (m *NinOptNonByteCustomType) Reset() { *m = NinOptNonByteCustomType{} }
func (*NinOptNonByteCustomType) ProtoMessage() {}
func (*NinOptNonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{60}
+ return fileDescriptor_2c941132e75f38be, []int{60}
}
func (m *NinOptNonByteCustomType) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptNonByteCustomType.Unmarshal(m, b)
@@ -3197,8 +3216,8 @@ func (m *NinOptNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]b
return b[:n], nil
}
}
-func (dst *NinOptNonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptNonByteCustomType.Merge(dst, src)
+func (m *NinOptNonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptNonByteCustomType.Merge(m, src)
}
func (m *NinOptNonByteCustomType) XXX_Size() int {
return m.Size()
@@ -3219,7 +3238,7 @@ type NidRepNonByteCustomType struct {
func (m *NidRepNonByteCustomType) Reset() { *m = NidRepNonByteCustomType{} }
func (*NidRepNonByteCustomType) ProtoMessage() {}
func (*NidRepNonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{61}
+ return fileDescriptor_2c941132e75f38be, []int{61}
}
func (m *NidRepNonByteCustomType) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidRepNonByteCustomType.Unmarshal(m, b)
@@ -3236,8 +3255,8 @@ func (m *NidRepNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]b
return b[:n], nil
}
}
-func (dst *NidRepNonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepNonByteCustomType.Merge(dst, src)
+func (m *NidRepNonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepNonByteCustomType.Merge(m, src)
}
func (m *NidRepNonByteCustomType) XXX_Size() int {
return m.Size()
@@ -3258,7 +3277,7 @@ type NinRepNonByteCustomType struct {
func (m *NinRepNonByteCustomType) Reset() { *m = NinRepNonByteCustomType{} }
func (*NinRepNonByteCustomType) ProtoMessage() {}
func (*NinRepNonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{62}
+ return fileDescriptor_2c941132e75f38be, []int{62}
}
func (m *NinRepNonByteCustomType) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinRepNonByteCustomType.Unmarshal(m, b)
@@ -3275,8 +3294,8 @@ func (m *NinRepNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]b
return b[:n], nil
}
}
-func (dst *NinRepNonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepNonByteCustomType.Merge(dst, src)
+func (m *NinRepNonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepNonByteCustomType.Merge(m, src)
}
func (m *NinRepNonByteCustomType) XXX_Size() int {
return m.Size()
@@ -3297,7 +3316,7 @@ type ProtoType struct {
func (m *ProtoType) Reset() { *m = ProtoType{} }
func (*ProtoType) ProtoMessage() {}
func (*ProtoType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_0843136744e013f8, []int{63}
+ return fileDescriptor_2c941132e75f38be, []int{63}
}
func (m *ProtoType) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProtoType.Unmarshal(m, b)
@@ -3314,8 +3333,8 @@ func (m *ProtoType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *ProtoType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ProtoType.Merge(dst, src)
+func (m *ProtoType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ProtoType.Merge(m, src)
}
func (m *ProtoType) XXX_Size() int {
return m.Size()
@@ -3399,6 +3418,11 @@ var E_FieldC1 = &proto.ExtensionDesc{
}
func init() {
+ proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value)
+ proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value)
+ proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value)
+ proto.RegisterEnum("test.YetYetAnotherTestEnum", YetYetAnotherTestEnum_name, YetYetAnotherTestEnum_value)
+ proto.RegisterEnum("test.NestedDefinition_NestedEnum", NestedDefinition_NestedEnum_name, NestedDefinition_NestedEnum_value)
proto.RegisterType((*NidOptNative)(nil), "test.NidOptNative")
proto.RegisterType((*NinOptNative)(nil), "test.NinOptNative")
proto.RegisterType((*NidRepNative)(nil), "test.NidRepNative")
@@ -3467,11 +3491,6 @@ func init() {
proto.RegisterType((*NidRepNonByteCustomType)(nil), "test.NidRepNonByteCustomType")
proto.RegisterType((*NinRepNonByteCustomType)(nil), "test.NinRepNonByteCustomType")
proto.RegisterType((*ProtoType)(nil), "test.ProtoType")
- proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value)
- proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value)
- proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value)
- proto.RegisterEnum("test.YetYetAnotherTestEnum", YetYetAnotherTestEnum_name, YetYetAnotherTestEnum_value)
- proto.RegisterEnum("test.NestedDefinition_NestedEnum", NestedDefinition_NestedEnum_name, NestedDefinition_NestedEnum_value)
proto.RegisterExtension(E_FieldA)
proto.RegisterExtension(E_FieldB)
proto.RegisterExtension(E_FieldC)
@@ -3481,6 +3500,206 @@ func init() {
proto.RegisterExtension(E_FieldB1)
proto.RegisterExtension(E_FieldC1)
}
+
+func init() { proto.RegisterFile("combos/marshaler/thetest.proto", fileDescriptor_2c941132e75f38be) }
+
+var fileDescriptor_2c941132e75f38be = []byte{
+ // 3086 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7,
+ 0xd5, 0xe7, 0xec, 0x50, 0x0a, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0x16, 0x8c, 0xbe, 0x15, 0xbd,
+ 0x91, 0xf5, 0x31, 0x44, 0x2c, 0x51, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0xe3, 0x46, 0x6e,
+ 0x44, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x16, 0xd7, 0x22, 0x51, 0x69, 0x29, 0x90, 0xab,
+ 0x34, 0xee, 0xa1, 0x08, 0x72, 0x28, 0x82, 0x5e, 0x8b, 0x1e, 0xdb, 0xb8, 0x28, 0x0a, 0xa4, 0xb7,
+ 0x1c, 0x8a, 0xa2, 0x28, 0x8a, 0xc6, 0x97, 0x02, 0xea, 0xcd, 0xe8, 0xa9, 0x08, 0x0a, 0x21, 0x62,
+ 0x2e, 0x39, 0x06, 0xbd, 0x34, 0x87, 0x1c, 0x8a, 0xdd, 0x9d, 0x9d, 0x9d, 0x19, 0xee, 0x72, 0x97,
+ 0x96, 0xd2, 0xe6, 0x62, 0x8b, 0xf3, 0xde, 0x9b, 0x79, 0xfb, 0x7e, 0xbf, 0xf7, 0xf6, 0xed, 0xcc,
+ 0x80, 0xba, 0xd7, 0x39, 0xbc, 0xdf, 0xe9, 0x2d, 0x1f, 0x36, 0xba, 0xbd, 0x56, 0xe3, 0x40, 0xef,
+ 0x2e, 0x9b, 0x2d, 0xdd, 0xd4, 0x7b, 0xe6, 0xd2, 0x51, 0xb7, 0x63, 0x76, 0xe4, 0xb8, 0xf5, 0x77,
+ 0xea, 0xfa, 0x7e, 0xdb, 0x6c, 0x1d, 0xdf, 0x5f, 0xda, 0xeb, 0x1c, 0x2e, 0xef, 0x77, 0xf6, 0x3b,
+ 0xcb, 0xb6, 0xf0, 0xfe, 0xf1, 0x03, 0xfb, 0x97, 0xfd, 0xc3, 0xfe, 0xcb, 0x31, 0xd2, 0xfe, 0x89,
+ 0x61, 0xaa, 0xd6, 0x6e, 0xee, 0x1c, 0x99, 0xb5, 0x86, 0xd9, 0x7e, 0x4b, 0x97, 0xe7, 0x60, 0xfc,
+ 0x56, 0x5b, 0x3f, 0x68, 0xae, 0x28, 0x28, 0x8d, 0x32, 0xa8, 0x14, 0x3f, 0x39, 0x9d, 0x8f, 0xd5,
+ 0xc9, 0x18, 0x95, 0xe6, 0x15, 0x29, 0x8d, 0x32, 0x12, 0x27, 0xcd, 0x53, 0xe9, 0xaa, 0x82, 0xd3,
+ 0x28, 0x33, 0xc6, 0x49, 0x57, 0xa9, 0xb4, 0xa0, 0xc4, 0xd3, 0x28, 0x83, 0x39, 0x69, 0x81, 0x4a,
+ 0xd7, 0x94, 0xb1, 0x34, 0xca, 0x5c, 0xe2, 0xa4, 0x6b, 0x54, 0xba, 0xae, 0x8c, 0xa7, 0x51, 0x26,
+ 0xce, 0x49, 0xd7, 0xa9, 0xf4, 0x86, 0xf2, 0x4c, 0x1a, 0x65, 0x2e, 0x73, 0xd2, 0x1b, 0x54, 0xba,
+ 0xa1, 0x24, 0xd2, 0x28, 0x23, 0x73, 0xd2, 0x0d, 0x2a, 0xbd, 0xa9, 0x4c, 0xa4, 0x51, 0xe6, 0x19,
+ 0x4e, 0x7a, 0x53, 0x56, 0xe1, 0x19, 0xe7, 0xc9, 0x73, 0x0a, 0xa4, 0x51, 0x66, 0x86, 0x88, 0xdd,
+ 0x41, 0x4f, 0xbe, 0xa2, 0x4c, 0xa6, 0x51, 0x66, 0x9c, 0x97, 0xaf, 0x78, 0xf2, 0xbc, 0x32, 0x95,
+ 0x46, 0x99, 0x24, 0x2f, 0xcf, 0x7b, 0xf2, 0x55, 0xe5, 0x52, 0x1a, 0x65, 0x12, 0xbc, 0x7c, 0xd5,
+ 0x93, 0x17, 0x94, 0xe9, 0x34, 0xca, 0x4c, 0xf0, 0xf2, 0x82, 0x27, 0x5f, 0x53, 0x66, 0xd2, 0x28,
+ 0x33, 0xc5, 0xcb, 0xd7, 0xb4, 0x77, 0x6d, 0x78, 0x0d, 0x0f, 0xde, 0x59, 0x1e, 0x5e, 0x0a, 0xec,
+ 0x2c, 0x0f, 0x2c, 0x85, 0x74, 0x96, 0x87, 0x94, 0x82, 0x39, 0xcb, 0x83, 0x49, 0x61, 0x9c, 0xe5,
+ 0x61, 0xa4, 0x00, 0xce, 0xf2, 0x00, 0x52, 0xe8, 0x66, 0x79, 0xe8, 0x28, 0x68, 0xb3, 0x3c, 0x68,
+ 0x14, 0xae, 0x59, 0x1e, 0x2e, 0x0a, 0x94, 0x22, 0x00, 0xe5, 0x41, 0xa4, 0x08, 0x10, 0x79, 0xe0,
+ 0x28, 0x02, 0x38, 0x1e, 0x2c, 0x8a, 0x00, 0x8b, 0x07, 0x88, 0x22, 0x00, 0xe2, 0x41, 0xa1, 0x08,
+ 0x50, 0x78, 0x20, 0x90, 0x1c, 0xab, 0xeb, 0x47, 0x3e, 0x39, 0x86, 0x87, 0xe6, 0x18, 0x1e, 0x9a,
+ 0x63, 0x78, 0x68, 0x8e, 0xe1, 0xa1, 0x39, 0x86, 0x87, 0xe6, 0x18, 0x1e, 0x9a, 0x63, 0x78, 0x68,
+ 0x8e, 0xe1, 0xa1, 0x39, 0x86, 0x87, 0xe7, 0x18, 0x0e, 0xc9, 0x31, 0x1c, 0x92, 0x63, 0x38, 0x24,
+ 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0x90, 0x1c, 0xc3, 0x81, 0x39, 0xe6, 0xc1, 0x3b, 0xcb, 0xc3, 0xeb,
+ 0x9b, 0x63, 0x38, 0x20, 0xc7, 0x70, 0x40, 0x8e, 0xe1, 0x80, 0x1c, 0xc3, 0x01, 0x39, 0x86, 0x03,
+ 0x72, 0x0c, 0x07, 0xe4, 0x18, 0x0e, 0xc8, 0x31, 0x1c, 0x94, 0x63, 0x38, 0x30, 0xc7, 0x70, 0x60,
+ 0x8e, 0xe1, 0xc0, 0x1c, 0xc3, 0x81, 0x39, 0x86, 0x03, 0x73, 0x0c, 0xb3, 0x39, 0xf6, 0x67, 0x0c,
+ 0xb2, 0x93, 0x63, 0x77, 0x1a, 0x7b, 0x3f, 0xd4, 0x9b, 0x04, 0x0a, 0x55, 0xc8, 0xb4, 0x71, 0x0b,
+ 0xba, 0xa4, 0x07, 0x89, 0x2a, 0xe4, 0x1a, 0x2f, 0xcf, 0x53, 0xb9, 0x9b, 0x6d, 0xbc, 0x7c, 0x95,
+ 0xca, 0xdd, 0x7c, 0xe3, 0xe5, 0x05, 0x2a, 0x77, 0x33, 0x8e, 0x97, 0xaf, 0x51, 0xb9, 0x9b, 0x73,
+ 0xbc, 0x7c, 0x9d, 0xca, 0xdd, 0xac, 0xe3, 0xe5, 0x37, 0xa8, 0xdc, 0xcd, 0x3b, 0x5e, 0xbe, 0x41,
+ 0xe5, 0x6e, 0xe6, 0xf1, 0xf2, 0x9b, 0x72, 0x5a, 0xcc, 0x3d, 0x57, 0x81, 0x42, 0x9b, 0x16, 0xb3,
+ 0x4f, 0xd0, 0x58, 0xf1, 0x34, 0xdc, 0xfc, 0x13, 0x34, 0xf2, 0x9e, 0x86, 0x9b, 0x81, 0x82, 0xc6,
+ 0xaa, 0xf6, 0x9e, 0x0d, 0x9f, 0x21, 0xc2, 0x97, 0x12, 0xe0, 0x93, 0x18, 0xe8, 0x52, 0x02, 0x74,
+ 0x12, 0x03, 0x5b, 0x4a, 0x80, 0x4d, 0x62, 0x20, 0x4b, 0x09, 0x90, 0x49, 0x0c, 0x5c, 0x29, 0x01,
+ 0x2e, 0x89, 0x81, 0x2a, 0x25, 0x40, 0x25, 0x31, 0x30, 0xa5, 0x04, 0x98, 0x24, 0x06, 0xa2, 0x94,
+ 0x00, 0x91, 0xc4, 0xc0, 0x93, 0x12, 0xe0, 0x91, 0x18, 0x68, 0xe6, 0x44, 0x68, 0x24, 0x16, 0x96,
+ 0x39, 0x11, 0x16, 0x89, 0x85, 0x64, 0x4e, 0x84, 0x44, 0x62, 0xe1, 0x98, 0x13, 0xe1, 0x90, 0x58,
+ 0x28, 0xbe, 0x94, 0xdc, 0x8e, 0xf0, 0x4d, 0xb3, 0x7b, 0xbc, 0x67, 0x9e, 0xab, 0x23, 0xcc, 0x71,
+ 0xed, 0xc3, 0x64, 0x5e, 0x5e, 0xb2, 0x1b, 0x56, 0xb6, 0xe3, 0x14, 0xde, 0x60, 0x39, 0xae, 0xb1,
+ 0x60, 0x2c, 0x0c, 0x7f, 0x8b, 0xc2, 0xb9, 0x7a, 0xc3, 0x1c, 0xd7, 0x66, 0x84, 0xfb, 0xb7, 0xf1,
+ 0x95, 0x77, 0x6c, 0x8f, 0x25, 0xb7, 0x63, 0x23, 0xe1, 0x1f, 0xb5, 0x63, 0xcb, 0x86, 0x87, 0x9c,
+ 0x06, 0x3b, 0x1b, 0x1e, 0xec, 0x81, 0xb7, 0x4e, 0xd4, 0x0e, 0x2e, 0x1b, 0x1e, 0x5a, 0x1a, 0xd4,
+ 0x8b, 0xed, 0xb7, 0x08, 0x83, 0xeb, 0xfa, 0x91, 0x0f, 0x83, 0x47, 0xed, 0xb7, 0x72, 0x5c, 0x29,
+ 0x19, 0x95, 0xc1, 0x78, 0x64, 0x06, 0x8f, 0xda, 0x79, 0xe5, 0xb8, 0xf2, 0x32, 0x32, 0x83, 0xbf,
+ 0x82, 0x7e, 0x88, 0x30, 0xd8, 0x0b, 0xff, 0xa8, 0xfd, 0x50, 0x36, 0x3c, 0xe4, 0xbe, 0x0c, 0xc6,
+ 0x23, 0x30, 0x38, 0x4a, 0x7f, 0x94, 0x0d, 0x0f, 0xad, 0x3f, 0x83, 0xcf, 0xdd, 0xcd, 0xbc, 0x8f,
+ 0xe0, 0x72, 0xad, 0xdd, 0xac, 0x1e, 0xde, 0xd7, 0x9b, 0x4d, 0xbd, 0x49, 0xe2, 0x98, 0xe3, 0x2a,
+ 0x41, 0x00, 0xd4, 0x4f, 0x4e, 0xe7, 0xbd, 0x08, 0xaf, 0x41, 0xc2, 0x89, 0x69, 0x2e, 0xa7, 0x9c,
+ 0xa0, 0x90, 0x0a, 0x47, 0x55, 0xe5, 0xab, 0xae, 0xd9, 0x4a, 0x4e, 0xf9, 0x3b, 0x62, 0xaa, 0x1c,
+ 0x1d, 0xd6, 0x7e, 0x6e, 0x7b, 0x68, 0x9c, 0xdb, 0xc3, 0xe5, 0x48, 0x1e, 0x32, 0xbe, 0xbd, 0x30,
+ 0xe0, 0x1b, 0xe3, 0xd5, 0x31, 0xcc, 0xd4, 0xda, 0xcd, 0x9a, 0xde, 0x33, 0xa3, 0xb9, 0xe4, 0xe8,
+ 0x08, 0xf5, 0x20, 0xc7, 0xd1, 0x92, 0xb5, 0xa0, 0x94, 0xe6, 0x6b, 0x84, 0xd6, 0xb6, 0x96, 0x35,
+ 0xb8, 0x65, 0xb3, 0x41, 0xcb, 0x7a, 0x95, 0x9d, 0x2e, 0x98, 0x0d, 0x5a, 0xd0, 0xcb, 0x21, 0xba,
+ 0xd4, 0xdb, 0xee, 0xcb, 0xb9, 0x7c, 0xdc, 0x33, 0x3b, 0x87, 0xf2, 0x1c, 0x48, 0x5b, 0x4d, 0x7b,
+ 0x8d, 0xa9, 0xd2, 0x94, 0xe5, 0xd4, 0xc7, 0xa7, 0xf3, 0xf1, 0xbb, 0xc7, 0xed, 0x66, 0x5d, 0xda,
+ 0x6a, 0xca, 0xb7, 0x61, 0xec, 0x3b, 0x8d, 0x83, 0x63, 0xdd, 0x7e, 0x45, 0x4c, 0x95, 0x0a, 0x44,
+ 0xe1, 0xe5, 0xc0, 0x3d, 0x22, 0x6b, 0xe1, 0xe5, 0x3d, 0x7b, 0xea, 0xa5, 0xbb, 0x6d, 0xc3, 0x5c,
+ 0xc9, 0x6f, 0xd4, 0x9d, 0x29, 0xb4, 0xef, 0x03, 0x38, 0x6b, 0x56, 0x1a, 0xbd, 0x96, 0x5c, 0x73,
+ 0x67, 0x76, 0x96, 0xde, 0xf8, 0xf8, 0x74, 0xbe, 0x10, 0x65, 0xd6, 0xeb, 0xcd, 0x46, 0xaf, 0x75,
+ 0xdd, 0x7c, 0x78, 0xa4, 0x2f, 0x95, 0x1e, 0x9a, 0x7a, 0xcf, 0x9d, 0xfd, 0xc8, 0x7d, 0xeb, 0x91,
+ 0xe7, 0x52, 0x98, 0xe7, 0x4a, 0x70, 0xcf, 0x74, 0x8b, 0x7f, 0xa6, 0xdc, 0xd3, 0x3e, 0xcf, 0xdb,
+ 0xee, 0x4b, 0x42, 0x88, 0x24, 0x0e, 0x8b, 0x24, 0x3e, 0x6f, 0x24, 0x8f, 0xdc, 0xfa, 0x28, 0x3c,
+ 0x2b, 0x1e, 0xf6, 0xac, 0xf8, 0x3c, 0xcf, 0xfa, 0x6f, 0x27, 0x5b, 0x69, 0x3e, 0xdd, 0x35, 0xda,
+ 0x1d, 0xe3, 0x6b, 0xb7, 0x17, 0x74, 0xa1, 0x5d, 0x40, 0x31, 0x7e, 0xf2, 0x68, 0x1e, 0x69, 0xef,
+ 0x4b, 0xee, 0x93, 0x3b, 0x89, 0xf4, 0x74, 0x4f, 0xfe, 0x75, 0xe9, 0xa9, 0xbe, 0x8a, 0x08, 0xfd,
+ 0x0a, 0xc1, 0xec, 0x40, 0x25, 0x77, 0xc2, 0x74, 0xb1, 0xe5, 0xdc, 0x18, 0xb5, 0x9c, 0x13, 0x07,
+ 0x7f, 0x8f, 0xe0, 0x39, 0xa1, 0xbc, 0x3a, 0xee, 0x2d, 0x0b, 0xee, 0x3d, 0x3f, 0xb8, 0x92, 0xad,
+ 0xc8, 0x78, 0xc7, 0xc2, 0x2b, 0x18, 0x30, 0x33, 0x53, 0xdc, 0x0b, 0x02, 0xee, 0x73, 0xd4, 0xc0,
+ 0x27, 0x5c, 0x2e, 0x03, 0x88, 0xdb, 0x1d, 0x88, 0xef, 0x76, 0x75, 0x5d, 0x56, 0x41, 0xda, 0xe9,
+ 0x12, 0x0f, 0xa7, 0x1d, 0xfb, 0x9d, 0x6e, 0xa9, 0xdb, 0x30, 0xf6, 0x5a, 0x75, 0x69, 0xa7, 0x2b,
+ 0x5f, 0x05, 0xbc, 0x69, 0x34, 0x89, 0x47, 0x33, 0x8e, 0xc2, 0xa6, 0xd1, 0x24, 0x1a, 0x96, 0x4c,
+ 0x56, 0x21, 0xfe, 0x86, 0xde, 0x78, 0x40, 0x9c, 0x00, 0x47, 0xc7, 0x1a, 0xa9, 0xdb, 0xe3, 0x64,
+ 0xc1, 0xef, 0x41, 0xc2, 0x9d, 0x58, 0x5e, 0xb0, 0x2c, 0x1e, 0x98, 0x64, 0x59, 0x62, 0x61, 0xb9,
+ 0x43, 0xde, 0x5c, 0xb6, 0x54, 0x5e, 0x84, 0xb1, 0x7a, 0x7b, 0xbf, 0x65, 0x92, 0xc5, 0x07, 0xd5,
+ 0x1c, 0xb1, 0x76, 0x0f, 0x26, 0xa8, 0x47, 0x17, 0x3c, 0x75, 0xc5, 0x79, 0x34, 0x39, 0xc5, 0xbe,
+ 0x4f, 0xdc, 0x7d, 0x4b, 0x67, 0x48, 0x4e, 0x43, 0xe2, 0x4d, 0xb3, 0xeb, 0x15, 0x7d, 0xb7, 0x23,
+ 0xa5, 0xa3, 0xda, 0xbb, 0x08, 0x12, 0x15, 0x5d, 0x3f, 0xb2, 0x03, 0x7e, 0x0d, 0xe2, 0x95, 0xce,
+ 0x8f, 0x0c, 0xe2, 0xe0, 0x65, 0x12, 0x51, 0x4b, 0x4c, 0x62, 0x6a, 0x8b, 0xe5, 0x6b, 0x6c, 0xdc,
+ 0x9f, 0xa5, 0x71, 0x67, 0xf4, 0xec, 0xd8, 0x6b, 0x5c, 0xec, 0x09, 0x80, 0x96, 0xd2, 0x40, 0xfc,
+ 0x6f, 0xc0, 0x24, 0xb3, 0x8a, 0x9c, 0x21, 0x6e, 0x48, 0xa2, 0x21, 0x1b, 0x2b, 0x4b, 0x43, 0xd3,
+ 0xe1, 0x12, 0xb7, 0xb0, 0x65, 0xca, 0x84, 0x38, 0xc0, 0xd4, 0x0e, 0x73, 0x96, 0x0f, 0xb3, 0xbf,
+ 0x2a, 0x09, 0x75, 0xce, 0x89, 0x91, 0x1d, 0xee, 0x05, 0x87, 0x9c, 0xc1, 0x20, 0x5a, 0x7f, 0x6b,
+ 0x63, 0x80, 0x6b, 0xed, 0x03, 0xed, 0x55, 0x00, 0x27, 0xe5, 0xab, 0xc6, 0xf1, 0xa1, 0x90, 0x75,
+ 0xd3, 0x6e, 0x80, 0x77, 0x5b, 0xfa, 0xae, 0xde, 0xb3, 0x55, 0xf8, 0x7e, 0xca, 0x2a, 0x30, 0xe0,
+ 0xa4, 0x98, 0x6d, 0xff, 0x52, 0xa8, 0xbd, 0x6f, 0x27, 0x66, 0xa9, 0x2a, 0x8e, 0xea, 0x3d, 0xdd,
+ 0xdc, 0x34, 0x3a, 0x66, 0x4b, 0xef, 0x0a, 0x16, 0x79, 0x79, 0x95, 0x4b, 0xd8, 0xe9, 0xfc, 0x0b,
+ 0xd4, 0x22, 0xd0, 0x68, 0x55, 0xfb, 0xd0, 0x76, 0xd0, 0x6a, 0x05, 0x06, 0x1e, 0x10, 0x47, 0x78,
+ 0x40, 0x79, 0x9d, 0xeb, 0xdf, 0x86, 0xb8, 0x29, 0x7c, 0x5a, 0xde, 0xe4, 0xbe, 0x73, 0x86, 0x3b,
+ 0xcb, 0x7f, 0x63, 0xba, 0x31, 0x75, 0x5d, 0x7e, 0x29, 0xd4, 0xe5, 0x80, 0xee, 0x76, 0xd4, 0x98,
+ 0xe2, 0xa8, 0x31, 0xfd, 0x13, 0xed, 0x38, 0xac, 0xe1, 0x8a, 0xfe, 0xa0, 0x71, 0x7c, 0x60, 0xca,
+ 0x2f, 0x87, 0x62, 0x5f, 0x44, 0x65, 0xea, 0x6a, 0x21, 0x2a, 0xfc, 0x45, 0xa9, 0x54, 0xa2, 0xee,
+ 0xde, 0x18, 0x81, 0x02, 0x45, 0xa9, 0x5c, 0xa6, 0x65, 0x3b, 0xf1, 0xde, 0xa3, 0x79, 0xf4, 0xc1,
+ 0xa3, 0xf9, 0x98, 0xf6, 0x3b, 0x04, 0x97, 0x89, 0x26, 0x43, 0xdc, 0xeb, 0x82, 0xf3, 0x57, 0xdc,
+ 0x9a, 0xe1, 0x17, 0x81, 0xff, 0x1a, 0x79, 0xff, 0x8a, 0x40, 0x19, 0xf0, 0xd5, 0x8d, 0x77, 0x2e,
+ 0x92, 0xcb, 0x45, 0x54, 0xfd, 0xdf, 0xc7, 0xfc, 0x1e, 0x8c, 0xed, 0xb6, 0x0f, 0xf5, 0xae, 0xf5,
+ 0x26, 0xb0, 0xfe, 0x70, 0x5c, 0x76, 0x0f, 0x73, 0x9c, 0x21, 0x57, 0xe6, 0x38, 0xc7, 0xc9, 0xf2,
+ 0xb2, 0x02, 0xf1, 0x4a, 0xc3, 0x6c, 0xd8, 0x1e, 0x4c, 0xd1, 0xfa, 0xda, 0x30, 0x1b, 0xda, 0x2a,
+ 0x4c, 0x6d, 0x3f, 0xac, 0xbe, 0x6d, 0xea, 0x46, 0xb3, 0x71, 0xff, 0x40, 0x3c, 0x03, 0x75, 0xfb,
+ 0xd5, 0x95, 0xec, 0x58, 0xa2, 0x99, 0x3c, 0x41, 0xc5, 0xb8, 0xed, 0xcf, 0x5b, 0x30, 0xbd, 0x63,
+ 0xb9, 0x6d, 0xdb, 0x71, 0x66, 0xce, 0xea, 0x98, 0x3e, 0xbc, 0xd0, 0x94, 0x61, 0xaf, 0x29, 0x4b,
+ 0x03, 0xda, 0xe6, 0x5b, 0x27, 0xd6, 0x8f, 0x3a, 0xda, 0xce, 0xc6, 0x13, 0xd3, 0xc9, 0xcb, 0xd9,
+ 0x78, 0x02, 0x92, 0x97, 0xc8, 0xba, 0x7f, 0xc3, 0x90, 0x74, 0x5a, 0x9d, 0x8a, 0xfe, 0xa0, 0x6d,
+ 0xb4, 0xcd, 0xc1, 0x7e, 0x95, 0x7a, 0x2c, 0x7f, 0x13, 0x26, 0xac, 0x90, 0xda, 0xbf, 0x08, 0x60,
+ 0x57, 0x49, 0x8b, 0x22, 0x4c, 0x41, 0x06, 0x6c, 0xea, 0x78, 0x36, 0xf2, 0x2d, 0xc0, 0xb5, 0xda,
+ 0x36, 0x79, 0xb9, 0x15, 0x86, 0x9a, 0x6e, 0xeb, 0xbd, 0x5e, 0x63, 0x5f, 0x27, 0xbf, 0xc8, 0x58,
+ 0x6f, 0xbf, 0x6e, 0x4d, 0x20, 0x17, 0x40, 0xaa, 0x6d, 0x93, 0x86, 0x77, 0x21, 0xca, 0x34, 0x75,
+ 0xa9, 0xb6, 0x9d, 0xfa, 0x0b, 0x82, 0x4b, 0xdc, 0xa8, 0xac, 0xc1, 0x94, 0x33, 0xc0, 0x3c, 0xee,
+ 0x78, 0x9d, 0x1b, 0x73, 0x7d, 0x96, 0xce, 0xe9, 0x73, 0x6a, 0x13, 0x66, 0x84, 0x71, 0x79, 0x09,
+ 0x64, 0x76, 0x88, 0x38, 0x01, 0x76, 0x43, 0xed, 0x23, 0xd1, 0xfe, 0x0f, 0xc0, 0x8b, 0xab, 0x3c,
+ 0x03, 0x93, 0xbb, 0xf7, 0xee, 0x54, 0x7f, 0x50, 0xab, 0xbe, 0xb9, 0x5b, 0xad, 0x24, 0x91, 0xf6,
+ 0x07, 0x04, 0x93, 0xa4, 0x6d, 0xdd, 0xeb, 0x1c, 0xe9, 0x72, 0x09, 0xd0, 0x26, 0xe1, 0xc3, 0xd3,
+ 0xf9, 0x8d, 0x36, 0xe5, 0x65, 0x40, 0xa5, 0xe8, 0x50, 0xa3, 0x92, 0x9c, 0x07, 0x54, 0x26, 0x00,
+ 0x47, 0x43, 0x06, 0x95, 0xb5, 0x7f, 0x61, 0x78, 0x96, 0x6d, 0xa3, 0xdd, 0x7a, 0x72, 0x95, 0xff,
+ 0x6e, 0x2a, 0x4e, 0xac, 0xe4, 0x57, 0x0b, 0x4b, 0xd6, 0x3f, 0x94, 0x92, 0x1a, 0xff, 0x09, 0x55,
+ 0x04, 0xaa, 0xb2, 0x12, 0x74, 0x4f, 0xa4, 0x18, 0x67, 0x66, 0x18, 0xb8, 0x27, 0xc2, 0x49, 0x07,
+ 0xee, 0x89, 0x70, 0xd2, 0x81, 0x7b, 0x22, 0x9c, 0x74, 0xe0, 0x2c, 0x80, 0x93, 0x0e, 0xdc, 0x13,
+ 0xe1, 0xa4, 0x03, 0xf7, 0x44, 0x38, 0xe9, 0xe0, 0x3d, 0x11, 0x22, 0x0e, 0xbc, 0x27, 0xc2, 0xcb,
+ 0x07, 0xef, 0x89, 0xf0, 0xf2, 0xc1, 0x7b, 0x22, 0xc5, 0xb8, 0xd9, 0x3d, 0xd6, 0x83, 0x4f, 0x1d,
+ 0x78, 0xfb, 0x61, 0x1f, 0x81, 0x5e, 0x05, 0xde, 0x81, 0x19, 0x67, 0x43, 0xa2, 0xdc, 0x31, 0xcc,
+ 0x46, 0xdb, 0xd0, 0xbb, 0xf2, 0x37, 0x60, 0xca, 0x19, 0x72, 0x3e, 0x73, 0xfc, 0x3e, 0x03, 0x1d,
+ 0x39, 0xa9, 0xb7, 0x9c, 0xb6, 0xf6, 0x65, 0x1c, 0x66, 0x9d, 0x81, 0x5a, 0xe3, 0x50, 0xe7, 0x6e,
+ 0x19, 0x2d, 0x0a, 0x67, 0x4a, 0xd3, 0x96, 0x79, 0xff, 0x74, 0xde, 0x19, 0xdd, 0xa4, 0x6c, 0x5a,
+ 0x14, 0x4e, 0x97, 0x78, 0x3d, 0xef, 0x05, 0xb4, 0x28, 0xdc, 0x3c, 0xe2, 0xf5, 0xe8, 0xfb, 0x86,
+ 0xea, 0xb9, 0x77, 0x90, 0x78, 0xbd, 0x0a, 0x65, 0xd9, 0xa2, 0x70, 0x1b, 0x89, 0xd7, 0xab, 0x52,
+ 0xbe, 0x2d, 0x0a, 0x67, 0x4f, 0xbc, 0xde, 0x2d, 0xca, 0xbc, 0x45, 0xe1, 0x14, 0x8a, 0xd7, 0xfb,
+ 0x16, 0xe5, 0xe0, 0xa2, 0x70, 0x57, 0x89, 0xd7, 0x7b, 0x9d, 0xb2, 0x71, 0x51, 0xb8, 0xb5, 0xc4,
+ 0xeb, 0x6d, 0x51, 0x5e, 0x66, 0xc4, 0xfb, 0x4b, 0xbc, 0xe2, 0x6d, 0x8f, 0xa1, 0x19, 0xf1, 0x26,
+ 0x13, 0xaf, 0xf9, 0x6d, 0x8f, 0xab, 0x19, 0xf1, 0x4e, 0x13, 0xaf, 0xf9, 0x86, 0xc7, 0xda, 0x8c,
+ 0x78, 0x56, 0xc6, 0x6b, 0x6e, 0x7b, 0xfc, 0xcd, 0x88, 0xa7, 0x66, 0xbc, 0x66, 0xcd, 0x63, 0x72,
+ 0x46, 0x3c, 0x3f, 0xe3, 0x35, 0x77, 0xbc, 0x4d, 0xf4, 0x8f, 0x04, 0xfa, 0x31, 0xb7, 0xa0, 0x34,
+ 0x81, 0x7e, 0xe0, 0x43, 0x3d, 0xa1, 0x90, 0x31, 0x3a, 0x1e, 0xed, 0x34, 0x81, 0x76, 0xe0, 0x43,
+ 0x39, 0x4d, 0xa0, 0x1c, 0xf8, 0xd0, 0x4d, 0x13, 0xe8, 0x06, 0x3e, 0x54, 0xd3, 0x04, 0xaa, 0x81,
+ 0x0f, 0xcd, 0x34, 0x81, 0x66, 0xe0, 0x43, 0x31, 0x4d, 0xa0, 0x18, 0xf8, 0xd0, 0x4b, 0x13, 0xe8,
+ 0x05, 0x3e, 0xd4, 0x5a, 0x10, 0xa9, 0x05, 0x7e, 0xb4, 0x5a, 0x10, 0x69, 0x05, 0x7e, 0x94, 0x7a,
+ 0x51, 0xa4, 0xd4, 0x44, 0xff, 0x74, 0x7e, 0xcc, 0x1a, 0x62, 0xd8, 0xb4, 0x20, 0xb2, 0x09, 0xfc,
+ 0x98, 0xb4, 0x20, 0x32, 0x09, 0xfc, 0x58, 0xb4, 0x20, 0xb2, 0x08, 0xfc, 0x18, 0xf4, 0x58, 0x64,
+ 0x90, 0x77, 0xc7, 0x47, 0x13, 0x8e, 0x14, 0xc3, 0x18, 0x84, 0x23, 0x30, 0x08, 0x47, 0x60, 0x10,
+ 0x8e, 0xc0, 0x20, 0x1c, 0x81, 0x41, 0x38, 0x02, 0x83, 0x70, 0x04, 0x06, 0xe1, 0x08, 0x0c, 0xc2,
+ 0x51, 0x18, 0x84, 0x23, 0x31, 0x08, 0x07, 0x31, 0x68, 0x41, 0xbc, 0xf1, 0x00, 0x7e, 0x05, 0x69,
+ 0x41, 0x3c, 0xfa, 0x0c, 0xa7, 0x10, 0x8e, 0x44, 0x21, 0x1c, 0x44, 0xa1, 0x8f, 0x30, 0x3c, 0xcb,
+ 0x51, 0x88, 0x9c, 0x0f, 0x5d, 0x54, 0x05, 0x5a, 0x8f, 0x70, 0xc1, 0xc2, 0x8f, 0x53, 0xeb, 0x11,
+ 0x0e, 0xa9, 0x87, 0xf1, 0x6c, 0xb0, 0x0a, 0x55, 0x23, 0x54, 0xa1, 0x5b, 0x94, 0x43, 0xeb, 0x11,
+ 0x2e, 0x5e, 0x0c, 0x72, 0x6f, 0x63, 0x58, 0x11, 0x78, 0x3d, 0x52, 0x11, 0xd8, 0x8a, 0x54, 0x04,
+ 0x6e, 0x7b, 0x08, 0xfe, 0x54, 0x82, 0xe7, 0x3c, 0x04, 0x9d, 0xbf, 0x76, 0x1f, 0x1e, 0x59, 0x25,
+ 0xc0, 0x3b, 0xa2, 0x92, 0xdd, 0x63, 0x1b, 0x06, 0x46, 0x69, 0xab, 0x29, 0xdf, 0xe1, 0x0f, 0xab,
+ 0x8a, 0xa3, 0x1e, 0xe0, 0x30, 0x88, 0x93, 0xcd, 0xd0, 0x05, 0xc0, 0x5b, 0xcd, 0x9e, 0x5d, 0x2d,
+ 0xfc, 0x96, 0x2d, 0xd7, 0x2d, 0xb1, 0x5c, 0x87, 0x71, 0x5b, 0xbd, 0x67, 0xc3, 0x7b, 0x9e, 0x85,
+ 0x2b, 0x75, 0x32, 0x93, 0xf6, 0x18, 0x41, 0x9a, 0xa3, 0xf2, 0xc5, 0x1c, 0x19, 0xbc, 0x12, 0xe9,
+ 0xc8, 0x80, 0x4b, 0x10, 0xef, 0xf8, 0xe0, 0xff, 0x07, 0x4f, 0xaa, 0xd9, 0x2c, 0x11, 0x8f, 0x12,
+ 0x7e, 0x02, 0xd3, 0xde, 0x13, 0xd8, 0xdf, 0x6c, 0x6b, 0xe1, 0xbb, 0x99, 0x7e, 0xa9, 0xb9, 0x26,
+ 0xec, 0xa2, 0x0d, 0x35, 0xa3, 0xd9, 0xaa, 0x15, 0x61, 0xa6, 0xd6, 0xb1, 0x77, 0x00, 0x7a, 0xed,
+ 0x8e, 0xd1, 0xdb, 0x6e, 0x1c, 0x85, 0x6d, 0x46, 0x24, 0xac, 0xd6, 0xfc, 0xe4, 0xd7, 0xf3, 0x31,
+ 0xed, 0x65, 0x98, 0xba, 0x6b, 0x74, 0xf5, 0xbd, 0xce, 0xbe, 0xd1, 0xfe, 0xb1, 0xde, 0x14, 0x0c,
+ 0x27, 0x5c, 0xc3, 0x62, 0xfc, 0x89, 0xa5, 0xfd, 0x0b, 0x04, 0x57, 0x58, 0xf5, 0xef, 0xb6, 0xcd,
+ 0xd6, 0x96, 0x61, 0xf5, 0xf4, 0xaf, 0x42, 0x42, 0x27, 0xc0, 0xd9, 0xef, 0xae, 0x49, 0xf7, 0x3b,
+ 0xd2, 0x57, 0x7d, 0xc9, 0xfe, 0xb7, 0x4e, 0x4d, 0x84, 0x5d, 0x10, 0x77, 0xd9, 0x7c, 0xea, 0x1a,
+ 0x8c, 0x39, 0xf3, 0xf3, 0x7e, 0x5d, 0x12, 0xfc, 0xfa, 0xad, 0x8f, 0x5f, 0x36, 0x8f, 0xe4, 0xdb,
+ 0x9c, 0x5f, 0xcc, 0xe7, 0xaa, 0xaf, 0xfa, 0x92, 0x4b, 0xbe, 0x52, 0xc2, 0xea, 0xff, 0x6c, 0x46,
+ 0x85, 0x3b, 0x99, 0x81, 0x44, 0x55, 0xd4, 0xf1, 0xf7, 0xb3, 0x02, 0xf1, 0x5a, 0xa7, 0xa9, 0xcb,
+ 0xcf, 0xc1, 0xd8, 0x1b, 0x8d, 0xfb, 0xfa, 0x01, 0x09, 0xb2, 0xf3, 0x43, 0x5e, 0x84, 0x44, 0xb9,
+ 0xd5, 0x3e, 0x68, 0x76, 0x75, 0x83, 0x9c, 0xd9, 0x93, 0x2d, 0x74, 0xcb, 0xa6, 0x4e, 0x65, 0x5a,
+ 0x19, 0x2e, 0xd7, 0x3a, 0x46, 0xe9, 0xa1, 0xc9, 0xd6, 0x8d, 0x25, 0x21, 0x45, 0xc8, 0x99, 0xcf,
+ 0x1d, 0x2b, 0x1b, 0x2d, 0x85, 0xd2, 0xd8, 0xc7, 0xa7, 0xf3, 0x68, 0x97, 0xee, 0x9f, 0x6f, 0xc3,
+ 0xf3, 0x24, 0x7d, 0x06, 0xa6, 0xca, 0x87, 0x4d, 0x35, 0x41, 0xce, 0xa9, 0x99, 0xe9, 0xb6, 0xac,
+ 0xe9, 0x0c, 0xdf, 0xe9, 0x9e, 0xce, 0x33, 0xab, 0x29, 0x1a, 0xea, 0x19, 0x1e, 0xc9, 0x33, 0xdf,
+ 0xe9, 0x96, 0xc2, 0xa6, 0x13, 0x3c, 0x7b, 0x11, 0x26, 0xa8, 0x8c, 0x61, 0x03, 0x9b, 0x29, 0xf9,
+ 0xac, 0x06, 0x93, 0x4c, 0xc2, 0xca, 0x63, 0x80, 0x36, 0x93, 0x31, 0xeb, 0xbf, 0x52, 0x12, 0x59,
+ 0xff, 0x95, 0x93, 0x52, 0xf6, 0x1a, 0xcc, 0x08, 0xfb, 0x97, 0x96, 0xa4, 0x92, 0x04, 0xeb, 0xbf,
+ 0x6a, 0x72, 0x32, 0x15, 0x7f, 0xef, 0x37, 0x6a, 0x2c, 0xfb, 0x0a, 0xc8, 0x83, 0x3b, 0x9d, 0xf2,
+ 0x38, 0x48, 0x9b, 0xd6, 0x94, 0xcf, 0x83, 0x54, 0x2a, 0x25, 0x51, 0x6a, 0xe6, 0x67, 0xbf, 0x4c,
+ 0x4f, 0x96, 0x74, 0xd3, 0xd4, 0xbb, 0xf7, 0x74, 0xb3, 0x54, 0x22, 0xc6, 0xaf, 0xc1, 0x15, 0xdf,
+ 0x9d, 0x52, 0xcb, 0xbe, 0x5c, 0x76, 0xec, 0x2b, 0x95, 0x01, 0xfb, 0x4a, 0xc5, 0xb6, 0x47, 0x45,
+ 0xf7, 0xc4, 0x79, 0x53, 0xf6, 0xd9, 0x65, 0x54, 0x9a, 0xcc, 0x09, 0xf7, 0x66, 0xf1, 0x35, 0xa2,
+ 0x5b, 0xf2, 0xd5, 0xd5, 0x43, 0x4e, 0xac, 0x4b, 0xc5, 0x32, 0xb1, 0x2f, 0xfb, 0xda, 0x3f, 0x10,
+ 0x8e, 0x55, 0xf9, 0x37, 0x04, 0x99, 0xa4, 0x4c, 0x1d, 0xae, 0xf8, 0x4e, 0xd2, 0x62, 0x2e, 0xbb,
+ 0x57, 0xa8, 0xc3, 0x55, 0x5f, 0xdd, 0x76, 0xc8, 0xa5, 0xaf, 0x6a, 0x71, 0x99, 0xbc, 0xe4, 0x37,
+ 0x57, 0xe4, 0x2b, 0x6e, 0x8e, 0x72, 0x15, 0x98, 0x04, 0xc8, 0xd5, 0x2a, 0x96, 0x89, 0x41, 0x29,
+ 0xd0, 0x20, 0x38, 0x4a, 0xae, 0x65, 0xf1, 0x75, 0x32, 0x49, 0x39, 0x70, 0x92, 0x90, 0x50, 0xb9,
+ 0xe6, 0xa5, 0xdd, 0x93, 0x33, 0x35, 0xf6, 0xe4, 0x4c, 0x8d, 0xfd, 0xe3, 0x4c, 0x8d, 0x7d, 0x72,
+ 0xa6, 0xa2, 0xcf, 0xce, 0x54, 0xf4, 0xf9, 0x99, 0x8a, 0xbe, 0x38, 0x53, 0xd1, 0x3b, 0x7d, 0x15,
+ 0x7d, 0xd0, 0x57, 0xd1, 0x87, 0x7d, 0x15, 0xfd, 0xb1, 0xaf, 0xa2, 0xc7, 0x7d, 0x15, 0x9d, 0xf4,
+ 0x55, 0xf4, 0xa4, 0xaf, 0xc6, 0x3e, 0xe9, 0xab, 0xe8, 0xb3, 0xbe, 0x1a, 0xfb, 0xbc, 0xaf, 0xa2,
+ 0x2f, 0xfa, 0x6a, 0xec, 0x9d, 0x4f, 0xd5, 0xd8, 0xa3, 0x4f, 0xd5, 0xd8, 0x07, 0x9f, 0xaa, 0xe8,
+ 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xbb, 0x21, 0xff, 0xfc, 0x4c, 0x36, 0x00, 0x00,
+}
+
func (this *NidOptNative) Compare(that interface{}) int {
if that == nil {
if this == nil {
@@ -8934,428 +9153,430 @@ func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_
func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 6731 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x7b, 0x70, 0x24, 0x57,
- 0x79, 0xaf, 0x7a, 0x7a, 0xa4, 0x1d, 0x7d, 0x7a, 0xb5, 0x5a, 0xbb, 0xda, 0xb1, 0xbc, 0x96, 0x76,
- 0xc7, 0xeb, 0xb5, 0x2c, 0xdb, 0x5a, 0xad, 0x56, 0xfb, 0x9a, 0xc5, 0xf6, 0x9d, 0xd7, 0xae, 0xb5,
- 0xac, 0x46, 0xa2, 0x25, 0x61, 0x2f, 0xdc, 0x5b, 0x53, 0xbd, 0x33, 0x47, 0xd2, 0xd8, 0x33, 0xdd,
- 0xc3, 0x74, 0x8f, 0x6d, 0xb9, 0x6e, 0xdd, 0xf2, 0x85, 0x7b, 0x09, 0x24, 0x95, 0x27, 0x49, 0x05,
- 0x08, 0x18, 0x03, 0x05, 0x18, 0xf2, 0x82, 0x40, 0x08, 0x90, 0x54, 0xf0, 0x3f, 0x24, 0x9b, 0xaa,
- 0x54, 0xca, 0xe4, 0xaf, 0x14, 0x95, 0x72, 0xe1, 0x35, 0x55, 0x21, 0x89, 0x13, 0x08, 0x71, 0x55,
- 0xa8, 0x32, 0x7f, 0xa4, 0xce, 0xab, 0xbb, 0xcf, 0x99, 0x1e, 0x75, 0xcb, 0x6b, 0x1b, 0xfe, 0xd9,
- 0x9d, 0x39, 0xdf, 0xf7, 0xfb, 0xfa, 0x3b, 0xdf, 0xeb, 0x7c, 0x7d, 0xce, 0xd1, 0xc0, 0x8f, 0x2e,
- 0xc0, 0xd1, 0x6d, 0xdb, 0xde, 0x6e, 0xa0, 0x93, 0xad, 0xb6, 0xed, 0xda, 0xd7, 0x3b, 0x5b, 0x27,
- 0x6b, 0xc8, 0xa9, 0xb6, 0xeb, 0x2d, 0xd7, 0x6e, 0xcf, 0x93, 0x31, 0x7d, 0x8c, 0x72, 0xcc, 0x73,
- 0x8e, 0xcc, 0x0a, 0x8c, 0x5f, 0xaa, 0x37, 0x50, 0xd1, 0x63, 0x5c, 0x47, 0xae, 0x7e, 0x1e, 0x92,
- 0x5b, 0xf5, 0x06, 0x4a, 0x2b, 0x47, 0xd5, 0xd9, 0xa1, 0xc5, 0xe3, 0xf3, 0x12, 0x68, 0x5e, 0x44,
- 0xac, 0xe1, 0x61, 0x83, 0x20, 0x32, 0x3f, 0x48, 0xc2, 0x44, 0x08, 0x55, 0xd7, 0x21, 0x69, 0x99,
- 0x4d, 0x2c, 0x51, 0x99, 0x1d, 0x34, 0xc8, 0x67, 0x3d, 0x0d, 0x07, 0x5a, 0x66, 0xf5, 0x71, 0x73,
- 0x1b, 0xa5, 0x13, 0x64, 0x98, 0x7f, 0xd5, 0xa7, 0x01, 0x6a, 0xa8, 0x85, 0xac, 0x1a, 0xb2, 0xaa,
- 0xbb, 0x69, 0xf5, 0xa8, 0x3a, 0x3b, 0x68, 0x04, 0x46, 0xf4, 0x7b, 0x61, 0xbc, 0xd5, 0xb9, 0xde,
- 0xa8, 0x57, 0x2b, 0x01, 0x36, 0x38, 0xaa, 0xce, 0xf6, 0x1b, 0x1a, 0x25, 0x14, 0x7d, 0xe6, 0xbb,
- 0x61, 0xec, 0x49, 0x64, 0x3e, 0x1e, 0x64, 0x1d, 0x22, 0xac, 0xa3, 0x78, 0x38, 0xc0, 0x58, 0x80,
- 0xe1, 0x26, 0x72, 0x1c, 0x73, 0x1b, 0x55, 0xdc, 0xdd, 0x16, 0x4a, 0x27, 0xc9, 0xec, 0x8f, 0x76,
- 0xcd, 0x5e, 0x9e, 0xf9, 0x10, 0x43, 0x6d, 0xec, 0xb6, 0x90, 0x9e, 0x83, 0x41, 0x64, 0x75, 0x9a,
- 0x54, 0x42, 0x7f, 0x0f, 0xfb, 0x95, 0xac, 0x4e, 0x53, 0x96, 0x92, 0xc2, 0x30, 0x26, 0xe2, 0x80,
- 0x83, 0xda, 0x4f, 0xd4, 0xab, 0x28, 0x3d, 0x40, 0x04, 0xdc, 0xdd, 0x25, 0x60, 0x9d, 0xd2, 0x65,
- 0x19, 0x1c, 0xa7, 0x17, 0x60, 0x10, 0x3d, 0xe5, 0x22, 0xcb, 0xa9, 0xdb, 0x56, 0xfa, 0x00, 0x11,
- 0x72, 0x57, 0x88, 0x17, 0x51, 0xa3, 0x26, 0x8b, 0xf0, 0x71, 0xfa, 0x59, 0x38, 0x60, 0xb7, 0xdc,
- 0xba, 0x6d, 0x39, 0xe9, 0xd4, 0x51, 0x65, 0x76, 0x68, 0xf1, 0x48, 0x68, 0x20, 0xac, 0x52, 0x1e,
- 0x83, 0x33, 0xeb, 0xcb, 0xa0, 0x39, 0x76, 0xa7, 0x5d, 0x45, 0x95, 0xaa, 0x5d, 0x43, 0x95, 0xba,
- 0xb5, 0x65, 0xa7, 0x07, 0x89, 0x80, 0x99, 0xee, 0x89, 0x10, 0xc6, 0x82, 0x5d, 0x43, 0xcb, 0xd6,
- 0x96, 0x6d, 0x8c, 0x3a, 0xc2, 0x77, 0x7d, 0x12, 0x06, 0x9c, 0x5d, 0xcb, 0x35, 0x9f, 0x4a, 0x0f,
- 0x93, 0x08, 0x61, 0xdf, 0x32, 0xdf, 0x1c, 0x80, 0xb1, 0x38, 0x21, 0x76, 0x11, 0xfa, 0xb7, 0xf0,
- 0x2c, 0xd3, 0x89, 0xfd, 0xd8, 0x80, 0x62, 0x44, 0x23, 0x0e, 0xbc, 0x41, 0x23, 0xe6, 0x60, 0xc8,
- 0x42, 0x8e, 0x8b, 0x6a, 0x34, 0x22, 0xd4, 0x98, 0x31, 0x05, 0x14, 0xd4, 0x1d, 0x52, 0xc9, 0x37,
- 0x14, 0x52, 0x8f, 0xc2, 0x98, 0xa7, 0x52, 0xa5, 0x6d, 0x5a, 0xdb, 0x3c, 0x36, 0x4f, 0x46, 0x69,
- 0x32, 0x5f, 0xe2, 0x38, 0x03, 0xc3, 0x8c, 0x51, 0x24, 0x7c, 0xd7, 0x8b, 0x00, 0xb6, 0x85, 0xec,
- 0xad, 0x4a, 0x0d, 0x55, 0x1b, 0xe9, 0x54, 0x0f, 0x2b, 0xad, 0x62, 0x96, 0x2e, 0x2b, 0xd9, 0x74,
- 0xb4, 0xda, 0xd0, 0x2f, 0xf8, 0xa1, 0x76, 0xa0, 0x47, 0xa4, 0xac, 0xd0, 0x24, 0xeb, 0x8a, 0xb6,
- 0x4d, 0x18, 0x6d, 0x23, 0x1c, 0xf7, 0xa8, 0xc6, 0x66, 0x36, 0x48, 0x94, 0x98, 0x8f, 0x9c, 0x99,
- 0xc1, 0x60, 0x74, 0x62, 0x23, 0xed, 0xe0, 0x57, 0xfd, 0x4e, 0xf0, 0x06, 0x2a, 0x24, 0xac, 0x80,
- 0x54, 0xa1, 0x61, 0x3e, 0x58, 0x36, 0x9b, 0x68, 0xea, 0x69, 0x18, 0x15, 0xcd, 0xa3, 0x1f, 0x84,
- 0x7e, 0xc7, 0x35, 0xdb, 0x2e, 0x89, 0xc2, 0x7e, 0x83, 0x7e, 0xd1, 0x35, 0x50, 0x91, 0x55, 0x23,
- 0x55, 0xae, 0xdf, 0xc0, 0x1f, 0xf5, 0xff, 0xe1, 0x4f, 0x58, 0x25, 0x13, 0x3e, 0xd1, 0xed, 0x51,
- 0x41, 0xb2, 0x3c, 0xef, 0xa9, 0x73, 0x30, 0x22, 0x4c, 0x20, 0xee, 0xa3, 0x33, 0xff, 0x1b, 0x0e,
- 0x85, 0x8a, 0xd6, 0x1f, 0x85, 0x83, 0x1d, 0xab, 0x6e, 0xb9, 0xa8, 0xdd, 0x6a, 0x23, 0x1c, 0xb1,
- 0xf4, 0x51, 0xe9, 0x7f, 0x3a, 0xd0, 0x23, 0xe6, 0x36, 0x83, 0xdc, 0x54, 0x8a, 0x31, 0xd1, 0xe9,
- 0x1e, 0x9c, 0x1b, 0x4c, 0xfd, 0xf0, 0x80, 0xf6, 0xcc, 0x33, 0xcf, 0x3c, 0x93, 0xc8, 0x7c, 0x74,
- 0x00, 0x0e, 0x86, 0xe5, 0x4c, 0x68, 0xfa, 0x4e, 0xc2, 0x80, 0xd5, 0x69, 0x5e, 0x47, 0x6d, 0x62,
- 0xa4, 0x7e, 0x83, 0x7d, 0xd3, 0x73, 0xd0, 0xdf, 0x30, 0xaf, 0xa3, 0x46, 0x3a, 0x79, 0x54, 0x99,
- 0x1d, 0x5d, 0xbc, 0x37, 0x56, 0x56, 0xce, 0x5f, 0xc5, 0x10, 0x83, 0x22, 0xf5, 0x07, 0x21, 0xc9,
- 0x4a, 0x34, 0x96, 0x30, 0x17, 0x4f, 0x02, 0xce, 0x25, 0x83, 0xe0, 0xf4, 0xdb, 0x61, 0x10, 0xff,
- 0x4f, 0x63, 0x63, 0x80, 0xe8, 0x9c, 0xc2, 0x03, 0x38, 0x2e, 0xf4, 0x29, 0x48, 0x91, 0x34, 0xa9,
- 0x21, 0xbe, 0xb4, 0x79, 0xdf, 0x71, 0x60, 0xd5, 0xd0, 0x96, 0xd9, 0x69, 0xb8, 0x95, 0x27, 0xcc,
- 0x46, 0x07, 0x91, 0x80, 0x1f, 0x34, 0x86, 0xd9, 0xe0, 0xbb, 0xf1, 0x98, 0x3e, 0x03, 0x43, 0x34,
- 0xab, 0xea, 0x56, 0x0d, 0x3d, 0x45, 0xaa, 0x67, 0xbf, 0x41, 0x13, 0x6d, 0x19, 0x8f, 0xe0, 0xc7,
- 0x3f, 0xe6, 0xd8, 0x16, 0x0f, 0x4d, 0xf2, 0x08, 0x3c, 0x40, 0x1e, 0x7f, 0x4e, 0x2e, 0xdc, 0x77,
- 0x84, 0x4f, 0x4f, 0x8e, 0xa9, 0xcc, 0xd7, 0x13, 0x90, 0x24, 0xf5, 0x62, 0x0c, 0x86, 0x36, 0xae,
- 0xad, 0x95, 0x2a, 0xc5, 0xd5, 0xcd, 0xfc, 0xd5, 0x92, 0xa6, 0xe8, 0xa3, 0x00, 0x64, 0xe0, 0xd2,
- 0xd5, 0xd5, 0xdc, 0x86, 0x96, 0xf0, 0xbe, 0x2f, 0x97, 0x37, 0xce, 0x2e, 0x69, 0xaa, 0x07, 0xd8,
- 0xa4, 0x03, 0xc9, 0x20, 0xc3, 0xe9, 0x45, 0xad, 0x5f, 0xd7, 0x60, 0x98, 0x0a, 0x58, 0x7e, 0xb4,
- 0x54, 0x3c, 0xbb, 0xa4, 0x0d, 0x88, 0x23, 0xa7, 0x17, 0xb5, 0x03, 0xfa, 0x08, 0x0c, 0x92, 0x91,
- 0xfc, 0xea, 0xea, 0x55, 0x2d, 0xe5, 0xc9, 0x5c, 0xdf, 0x30, 0x96, 0xcb, 0x97, 0xb5, 0x41, 0x4f,
- 0xe6, 0x65, 0x63, 0x75, 0x73, 0x4d, 0x03, 0x4f, 0xc2, 0x4a, 0x69, 0x7d, 0x3d, 0x77, 0xb9, 0xa4,
- 0x0d, 0x79, 0x1c, 0xf9, 0x6b, 0x1b, 0xa5, 0x75, 0x6d, 0x58, 0x50, 0xeb, 0xf4, 0xa2, 0x36, 0xe2,
- 0x3d, 0xa2, 0x54, 0xde, 0x5c, 0xd1, 0x46, 0xf5, 0x71, 0x18, 0xa1, 0x8f, 0xe0, 0x4a, 0x8c, 0x49,
- 0x43, 0x67, 0x97, 0x34, 0xcd, 0x57, 0x84, 0x4a, 0x19, 0x17, 0x06, 0xce, 0x2e, 0x69, 0x7a, 0xa6,
- 0x00, 0xfd, 0x24, 0xba, 0x74, 0x1d, 0x46, 0xaf, 0xe6, 0xf2, 0xa5, 0xab, 0x95, 0xd5, 0xb5, 0x8d,
- 0xe5, 0xd5, 0x72, 0xee, 0xaa, 0xa6, 0xf8, 0x63, 0x46, 0xe9, 0x5d, 0x9b, 0xcb, 0x46, 0xa9, 0xa8,
- 0x25, 0x82, 0x63, 0x6b, 0xa5, 0xdc, 0x46, 0xa9, 0xa8, 0xa9, 0x99, 0x2a, 0x1c, 0x0c, 0xab, 0x93,
- 0xa1, 0x99, 0x11, 0x70, 0x71, 0xa2, 0x87, 0x8b, 0x89, 0xac, 0x2e, 0x17, 0xbf, 0x92, 0x80, 0x89,
- 0x90, 0xb5, 0x22, 0xf4, 0x21, 0x0f, 0x41, 0x3f, 0x0d, 0x51, 0xba, 0x7a, 0xde, 0x13, 0xba, 0xe8,
- 0x90, 0x80, 0xed, 0x5a, 0x41, 0x09, 0x2e, 0xd8, 0x41, 0xa8, 0x3d, 0x3a, 0x08, 0x2c, 0xa2, 0xab,
- 0xa6, 0xff, 0xaf, 0xae, 0x9a, 0x4e, 0x97, 0xbd, 0xb3, 0x71, 0x96, 0x3d, 0x32, 0xb6, 0xbf, 0xda,
- 0xde, 0x1f, 0x52, 0xdb, 0x2f, 0xc2, 0x78, 0x97, 0xa0, 0xd8, 0x35, 0xf6, 0x03, 0x0a, 0xa4, 0x7b,
- 0x19, 0x27, 0xa2, 0xd2, 0x25, 0x84, 0x4a, 0x77, 0x51, 0xb6, 0xe0, 0xb1, 0xde, 0x4e, 0xe8, 0xf2,
- 0xf5, 0x17, 0x14, 0x98, 0x0c, 0xef, 0x14, 0x43, 0x75, 0x78, 0x10, 0x06, 0x9a, 0xc8, 0xdd, 0xb1,
- 0x79, 0xb7, 0x74, 0x22, 0x64, 0x0d, 0xc6, 0x64, 0xd9, 0xd9, 0x0c, 0x15, 0x5c, 0xc4, 0xd5, 0x5e,
- 0xed, 0x1e, 0xd5, 0xa6, 0x4b, 0xd3, 0x0f, 0x27, 0xe0, 0x50, 0xa8, 0xf0, 0x50, 0x45, 0xef, 0x00,
- 0xa8, 0x5b, 0xad, 0x8e, 0x4b, 0x3b, 0x22, 0x5a, 0x60, 0x07, 0xc9, 0x08, 0x29, 0x5e, 0xb8, 0x78,
- 0x76, 0x5c, 0x8f, 0xae, 0x12, 0x3a, 0xd0, 0x21, 0xc2, 0x70, 0xde, 0x57, 0x34, 0x49, 0x14, 0x9d,
- 0xee, 0x31, 0xd3, 0xae, 0xc0, 0x5c, 0x00, 0xad, 0xda, 0xa8, 0x23, 0xcb, 0xad, 0x38, 0x6e, 0x1b,
- 0x99, 0xcd, 0xba, 0xb5, 0x4d, 0x56, 0x90, 0x54, 0xb6, 0x7f, 0xcb, 0x6c, 0x38, 0xc8, 0x18, 0xa3,
- 0xe4, 0x75, 0x4e, 0xc5, 0x08, 0x12, 0x40, 0xed, 0x00, 0x62, 0x40, 0x40, 0x50, 0xb2, 0x87, 0xc8,
- 0x7c, 0x35, 0x05, 0x43, 0x81, 0xbe, 0x5a, 0x3f, 0x06, 0xc3, 0x8f, 0x99, 0x4f, 0x98, 0x15, 0xfe,
- 0xae, 0x44, 0x2d, 0x31, 0x84, 0xc7, 0xd6, 0xd8, 0xfb, 0xd2, 0x02, 0x1c, 0x24, 0x2c, 0x76, 0xc7,
- 0x45, 0xed, 0x4a, 0xb5, 0x61, 0x3a, 0x0e, 0x31, 0x5a, 0x8a, 0xb0, 0xea, 0x98, 0xb6, 0x8a, 0x49,
- 0x05, 0x4e, 0xd1, 0xcf, 0xc0, 0x04, 0x41, 0x34, 0x3b, 0x0d, 0xb7, 0xde, 0x6a, 0xa0, 0x0a, 0x7e,
- 0x7b, 0x73, 0xc8, 0x4a, 0xe2, 0x69, 0x36, 0x8e, 0x39, 0x56, 0x18, 0x03, 0xd6, 0xc8, 0xd1, 0x8b,
- 0x70, 0x07, 0x81, 0x6d, 0x23, 0x0b, 0xb5, 0x4d, 0x17, 0x55, 0xd0, 0xfb, 0x3a, 0x66, 0xc3, 0xa9,
- 0x98, 0x56, 0xad, 0xb2, 0x63, 0x3a, 0x3b, 0xe9, 0x83, 0x58, 0x40, 0x3e, 0x91, 0x56, 0x8c, 0xdb,
- 0x30, 0xe3, 0x65, 0xc6, 0x57, 0x22, 0x6c, 0x39, 0xab, 0xf6, 0xb0, 0xe9, 0xec, 0xe8, 0x59, 0x98,
- 0x24, 0x52, 0x1c, 0xb7, 0x5d, 0xb7, 0xb6, 0x2b, 0xd5, 0x1d, 0x54, 0x7d, 0xbc, 0xd2, 0x71, 0xb7,
- 0xce, 0xa7, 0x6f, 0x0f, 0x3e, 0x9f, 0x68, 0xb8, 0x4e, 0x78, 0x0a, 0x98, 0x65, 0xd3, 0xdd, 0x3a,
- 0xaf, 0xaf, 0xc3, 0x30, 0x76, 0x46, 0xb3, 0xfe, 0x34, 0xaa, 0x6c, 0xd9, 0x6d, 0xb2, 0x34, 0x8e,
- 0x86, 0x94, 0xa6, 0x80, 0x05, 0xe7, 0x57, 0x19, 0x60, 0xc5, 0xae, 0xa1, 0x6c, 0xff, 0xfa, 0x5a,
- 0xa9, 0x54, 0x34, 0x86, 0xb8, 0x94, 0x4b, 0x76, 0x1b, 0x07, 0xd4, 0xb6, 0xed, 0x19, 0x78, 0x88,
- 0x06, 0xd4, 0xb6, 0xcd, 0xcd, 0x7b, 0x06, 0x26, 0xaa, 0x55, 0x3a, 0xe7, 0x7a, 0xb5, 0xc2, 0xde,
- 0xb1, 0x9c, 0xb4, 0x26, 0x18, 0xab, 0x5a, 0xbd, 0x4c, 0x19, 0x58, 0x8c, 0x3b, 0xfa, 0x05, 0x38,
- 0xe4, 0x1b, 0x2b, 0x08, 0x1c, 0xef, 0x9a, 0xa5, 0x0c, 0x3d, 0x03, 0x13, 0xad, 0xdd, 0x6e, 0xa0,
- 0x2e, 0x3c, 0xb1, 0xb5, 0x2b, 0xc3, 0xce, 0xc1, 0xc1, 0xd6, 0x4e, 0xab, 0x1b, 0x37, 0x17, 0xc4,
- 0xe9, 0xad, 0x9d, 0x96, 0x0c, 0xbc, 0x8b, 0xbc, 0x70, 0xb7, 0x51, 0xd5, 0x74, 0x51, 0x2d, 0x7d,
- 0x38, 0xc8, 0x1e, 0x20, 0xe8, 0x27, 0x41, 0xab, 0x56, 0x2b, 0xc8, 0x32, 0xaf, 0x37, 0x50, 0xc5,
- 0x6c, 0x23, 0xcb, 0x74, 0xd2, 0x33, 0x41, 0xe6, 0xd1, 0x6a, 0xb5, 0x44, 0xa8, 0x39, 0x42, 0xd4,
- 0xe7, 0x60, 0xdc, 0xbe, 0xfe, 0x58, 0x95, 0x86, 0x64, 0xa5, 0xd5, 0x46, 0x5b, 0xf5, 0xa7, 0xd2,
- 0xc7, 0x89, 0x7d, 0xc7, 0x30, 0x81, 0x04, 0xe4, 0x1a, 0x19, 0xd6, 0xef, 0x01, 0xad, 0xea, 0xec,
- 0x98, 0xed, 0x16, 0xa9, 0xc9, 0x4e, 0xcb, 0xac, 0xa2, 0xf4, 0x5d, 0x94, 0x95, 0x8e, 0x97, 0xf9,
- 0x30, 0x4e, 0x09, 0xe7, 0xc9, 0xfa, 0x96, 0xcb, 0x25, 0xde, 0x4d, 0x53, 0x82, 0x8c, 0x31, 0x69,
- 0xb3, 0xa0, 0x61, 0x53, 0x08, 0x0f, 0x9e, 0x25, 0x6c, 0xa3, 0xad, 0x9d, 0x56, 0xf0, 0xb9, 0x77,
- 0xc2, 0x08, 0xe6, 0xf4, 0x1f, 0x7a, 0x0f, 0x6d, 0xc8, 0x5a, 0x3b, 0x81, 0x27, 0xbe, 0x65, 0xbd,
- 0x71, 0x26, 0x0b, 0xc3, 0xc1, 0xf8, 0xd4, 0x07, 0x81, 0x46, 0xa8, 0xa6, 0xe0, 0x66, 0xa5, 0xb0,
- 0x5a, 0xc4, 0x6d, 0xc6, 0x7b, 0x4a, 0x5a, 0x02, 0xb7, 0x3b, 0x57, 0x97, 0x37, 0x4a, 0x15, 0x63,
- 0xb3, 0xbc, 0xb1, 0xbc, 0x52, 0xd2, 0xd4, 0x60, 0x5f, 0xfd, 0x9d, 0x04, 0x8c, 0x8a, 0xaf, 0x48,
- 0xfa, 0x3b, 0xe0, 0x30, 0xdf, 0xcf, 0x70, 0x90, 0x5b, 0x79, 0xb2, 0xde, 0x26, 0x29, 0xd3, 0x34,
- 0xe9, 0xf2, 0xe5, 0x39, 0xed, 0x20, 0xe3, 0x5a, 0x47, 0xee, 0x23, 0xf5, 0x36, 0x4e, 0x88, 0xa6,
- 0xe9, 0xea, 0x57, 0x61, 0xc6, 0xb2, 0x2b, 0x8e, 0x6b, 0x5a, 0x35, 0xb3, 0x5d, 0xab, 0xf8, 0x3b,
- 0x49, 0x15, 0xb3, 0x5a, 0x45, 0x8e, 0x63, 0xd3, 0xa5, 0xca, 0x93, 0x72, 0xc4, 0xb2, 0xd7, 0x19,
- 0xb3, 0x5f, 0xc3, 0x73, 0x8c, 0x55, 0x0a, 0x30, 0xb5, 0x57, 0x80, 0xdd, 0x0e, 0x83, 0x4d, 0xb3,
- 0x55, 0x41, 0x96, 0xdb, 0xde, 0x25, 0x8d, 0x71, 0xca, 0x48, 0x35, 0xcd, 0x56, 0x09, 0x7f, 0x7f,
- 0x7b, 0xde, 0x4f, 0xfe, 0x51, 0x85, 0xe1, 0x60, 0x73, 0x8c, 0xdf, 0x35, 0xaa, 0x64, 0x1d, 0x51,
- 0x48, 0xa5, 0xb9, 0x73, 0xcf, 0x56, 0x7a, 0xbe, 0x80, 0x17, 0x98, 0xec, 0x00, 0x6d, 0x59, 0x0d,
- 0x8a, 0xc4, 0x8b, 0x3b, 0xae, 0x2d, 0x88, 0xb6, 0x08, 0x29, 0x83, 0x7d, 0xd3, 0x2f, 0xc3, 0xc0,
- 0x63, 0x0e, 0x91, 0x3d, 0x40, 0x64, 0x1f, 0xdf, 0x5b, 0xf6, 0x95, 0x75, 0x22, 0x7c, 0xf0, 0xca,
- 0x7a, 0xa5, 0xbc, 0x6a, 0xac, 0xe4, 0xae, 0x1a, 0x0c, 0xae, 0xdf, 0x06, 0xc9, 0x86, 0xf9, 0xf4,
- 0xae, 0xb8, 0x14, 0x91, 0xa1, 0xb8, 0x86, 0xbf, 0x0d, 0x92, 0x4f, 0x22, 0xf3, 0x71, 0x71, 0x01,
- 0x20, 0x43, 0x6f, 0x61, 0xe8, 0x9f, 0x84, 0x7e, 0x62, 0x2f, 0x1d, 0x80, 0x59, 0x4c, 0xeb, 0xd3,
- 0x53, 0x90, 0x2c, 0xac, 0x1a, 0x38, 0xfc, 0x35, 0x18, 0xa6, 0xa3, 0x95, 0xb5, 0xe5, 0x52, 0xa1,
- 0xa4, 0x25, 0x32, 0x67, 0x60, 0x80, 0x1a, 0x01, 0xa7, 0x86, 0x67, 0x06, 0xad, 0x8f, 0x7d, 0x65,
- 0x32, 0x14, 0x4e, 0xdd, 0x5c, 0xc9, 0x97, 0x0c, 0x2d, 0x11, 0x74, 0xaf, 0x03, 0xc3, 0xc1, 0xbe,
- 0xf8, 0xed, 0x89, 0xa9, 0x6f, 0x29, 0x30, 0x14, 0xe8, 0x73, 0x71, 0x83, 0x62, 0x36, 0x1a, 0xf6,
- 0x93, 0x15, 0xb3, 0x51, 0x37, 0x1d, 0x16, 0x14, 0x40, 0x86, 0x72, 0x78, 0x24, 0xae, 0xd3, 0xde,
- 0x16, 0xe5, 0x9f, 0x55, 0x40, 0x93, 0x5b, 0x4c, 0x49, 0x41, 0xe5, 0xe7, 0xaa, 0xe0, 0x27, 0x14,
- 0x18, 0x15, 0xfb, 0x4a, 0x49, 0xbd, 0x63, 0x3f, 0x57, 0xf5, 0xbe, 0x9f, 0x80, 0x11, 0xa1, 0x9b,
- 0x8c, 0xab, 0xdd, 0xfb, 0x60, 0xbc, 0x5e, 0x43, 0xcd, 0x96, 0xed, 0x22, 0xab, 0xba, 0x5b, 0x69,
- 0xa0, 0x27, 0x50, 0x23, 0x9d, 0x21, 0x85, 0xe2, 0xe4, 0xde, 0xfd, 0xea, 0xfc, 0xb2, 0x8f, 0xbb,
- 0x8a, 0x61, 0xd9, 0x89, 0xe5, 0x62, 0x69, 0x65, 0x6d, 0x75, 0xa3, 0x54, 0x2e, 0x5c, 0xab, 0x6c,
- 0x96, 0xdf, 0x59, 0x5e, 0x7d, 0xa4, 0x6c, 0x68, 0x75, 0x89, 0xed, 0x2d, 0x4c, 0xf5, 0x35, 0xd0,
- 0x64, 0xa5, 0xf4, 0xc3, 0x10, 0xa6, 0x96, 0xd6, 0xa7, 0x4f, 0xc0, 0x58, 0x79, 0xb5, 0xb2, 0xbe,
- 0x5c, 0x2c, 0x55, 0x4a, 0x97, 0x2e, 0x95, 0x0a, 0x1b, 0xeb, 0x74, 0x07, 0xc2, 0xe3, 0xde, 0x10,
- 0x93, 0xfa, 0xe3, 0x2a, 0x4c, 0x84, 0x68, 0xa2, 0xe7, 0xd8, 0xbb, 0x03, 0x7d, 0x9d, 0xb9, 0x3f,
- 0x8e, 0xf6, 0xf3, 0x78, 0xc9, 0x5f, 0x33, 0xdb, 0x2e, 0x7b, 0xd5, 0xb8, 0x07, 0xb0, 0x95, 0x2c,
- 0xb7, 0xbe, 0x55, 0x47, 0x6d, 0xb6, 0x61, 0x43, 0x5f, 0x28, 0xc6, 0xfc, 0x71, 0xba, 0x67, 0x73,
- 0x1f, 0xe8, 0x2d, 0xdb, 0xa9, 0xbb, 0xf5, 0x27, 0x50, 0xa5, 0x6e, 0xf1, 0xdd, 0x1d, 0xfc, 0x82,
- 0x91, 0x34, 0x34, 0x4e, 0x59, 0xb6, 0x5c, 0x8f, 0xdb, 0x42, 0xdb, 0xa6, 0xc4, 0x8d, 0x0b, 0xb8,
- 0x6a, 0x68, 0x9c, 0xe2, 0x71, 0x1f, 0x83, 0xe1, 0x9a, 0xdd, 0xc1, 0x5d, 0x17, 0xe5, 0xc3, 0xeb,
- 0x85, 0x62, 0x0c, 0xd1, 0x31, 0x8f, 0x85, 0xf5, 0xd3, 0xfe, 0xb6, 0xd2, 0xb0, 0x31, 0x44, 0xc7,
- 0x28, 0xcb, 0xdd, 0x30, 0x66, 0x6e, 0x6f, 0xb7, 0xb1, 0x70, 0x2e, 0x88, 0xbe, 0x21, 0x8c, 0x7a,
- 0xc3, 0x84, 0x71, 0xea, 0x0a, 0xa4, 0xb8, 0x1d, 0xf0, 0x92, 0x8c, 0x2d, 0x51, 0x69, 0xd1, 0xd7,
- 0xde, 0xc4, 0xec, 0xa0, 0x91, 0xb2, 0x38, 0xf1, 0x18, 0x0c, 0xd7, 0x9d, 0x8a, 0xbf, 0x4b, 0x9e,
- 0x38, 0x9a, 0x98, 0x4d, 0x19, 0x43, 0x75, 0xc7, 0xdb, 0x61, 0xcc, 0x7c, 0x21, 0x01, 0xa3, 0xe2,
- 0x2e, 0xbf, 0x5e, 0x84, 0x54, 0xc3, 0xae, 0x9a, 0x24, 0xb4, 0xe8, 0x11, 0xd3, 0x6c, 0xc4, 0xc1,
- 0xc0, 0xfc, 0x55, 0xc6, 0x6f, 0x78, 0xc8, 0xa9, 0xbf, 0x53, 0x20, 0xc5, 0x87, 0xf5, 0x49, 0x48,
- 0xb6, 0x4c, 0x77, 0x87, 0x88, 0xeb, 0xcf, 0x27, 0x34, 0xc5, 0x20, 0xdf, 0xf1, 0xb8, 0xd3, 0x32,
- 0x2d, 0x12, 0x02, 0x6c, 0x1c, 0x7f, 0xc7, 0x7e, 0x6d, 0x20, 0xb3, 0x46, 0x5e, 0x3f, 0xec, 0x66,
- 0x13, 0x59, 0xae, 0xc3, 0xfd, 0xca, 0xc6, 0x0b, 0x6c, 0x58, 0xbf, 0x17, 0xc6, 0xdd, 0xb6, 0x59,
- 0x6f, 0x08, 0xbc, 0x49, 0xc2, 0xab, 0x71, 0x82, 0xc7, 0x9c, 0x85, 0xdb, 0xb8, 0xdc, 0x1a, 0x72,
- 0xcd, 0xea, 0x0e, 0xaa, 0xf9, 0xa0, 0x01, 0xb2, 0xcd, 0x70, 0x98, 0x31, 0x14, 0x19, 0x9d, 0x63,
- 0x33, 0xdf, 0x55, 0x60, 0x9c, 0xbf, 0x30, 0xd5, 0x3c, 0x63, 0xad, 0x00, 0x98, 0x96, 0x65, 0xbb,
- 0x41, 0x73, 0x75, 0x87, 0x72, 0x17, 0x6e, 0x3e, 0xe7, 0x81, 0x8c, 0x80, 0x80, 0xa9, 0x26, 0x80,
- 0x4f, 0xe9, 0x69, 0xb6, 0x19, 0x18, 0x62, 0x47, 0x38, 0xe4, 0x1c, 0x90, 0xbe, 0x62, 0x03, 0x1d,
- 0xc2, 0x6f, 0x56, 0xfa, 0x41, 0xe8, 0xbf, 0x8e, 0xb6, 0xeb, 0x16, 0xdb, 0x98, 0xa5, 0x5f, 0xf8,
- 0x46, 0x48, 0xd2, 0xdb, 0x08, 0xc9, 0xbf, 0x17, 0x26, 0xaa, 0x76, 0x53, 0x56, 0x37, 0xaf, 0x49,
- 0xaf, 0xf9, 0xce, 0xc3, 0xca, 0x7b, 0xc0, 0x6f, 0x31, 0x7f, 0xaa, 0x28, 0x9f, 0x49, 0xa8, 0x97,
- 0xd7, 0xf2, 0x5f, 0x4a, 0x4c, 0x5d, 0xa6, 0xd0, 0x35, 0x3e, 0x53, 0x03, 0x6d, 0x35, 0x50, 0x15,
- 0x6b, 0x0f, 0x9f, 0xbf, 0x17, 0xee, 0xdf, 0xae, 0xbb, 0x3b, 0x9d, 0xeb, 0xf3, 0x55, 0xbb, 0x79,
- 0x72, 0xdb, 0xde, 0xb6, 0xfd, 0xa3, 0x4f, 0xfc, 0x8d, 0x7c, 0x21, 0x9f, 0xd8, 0xf1, 0xe7, 0xa0,
- 0x37, 0x3a, 0x15, 0x79, 0x56, 0x9a, 0x2d, 0xc3, 0x04, 0x63, 0xae, 0x90, 0xf3, 0x17, 0xfa, 0x16,
- 0xa1, 0xef, 0xb9, 0x87, 0x95, 0xfe, 0xca, 0x0f, 0xc8, 0x72, 0x6d, 0x8c, 0x33, 0x28, 0xa6, 0xd1,
- 0x17, 0x8d, 0xac, 0x01, 0x87, 0x04, 0x79, 0x34, 0x35, 0x51, 0x3b, 0x42, 0xe2, 0x77, 0x98, 0xc4,
- 0x89, 0x80, 0xc4, 0x75, 0x06, 0xcd, 0x16, 0x60, 0x64, 0x3f, 0xb2, 0xfe, 0x8a, 0xc9, 0x1a, 0x46,
- 0x41, 0x21, 0x97, 0x61, 0x8c, 0x08, 0xa9, 0x76, 0x1c, 0xd7, 0x6e, 0x92, 0xba, 0xb7, 0xb7, 0x98,
- 0xbf, 0xfe, 0x01, 0xcd, 0x95, 0x51, 0x0c, 0x2b, 0x78, 0xa8, 0x6c, 0x16, 0xc8, 0x91, 0x53, 0x0d,
- 0x55, 0x1b, 0x11, 0x12, 0x6e, 0x30, 0x45, 0x3c, 0xfe, 0xec, 0xbb, 0xe1, 0x20, 0xfe, 0x4c, 0xca,
- 0x52, 0x50, 0x93, 0xe8, 0x0d, 0xaf, 0xf4, 0x77, 0x3f, 0x40, 0xd3, 0x71, 0xc2, 0x13, 0x10, 0xd0,
- 0x29, 0xe0, 0xc5, 0x6d, 0xe4, 0xba, 0xa8, 0xed, 0x54, 0xcc, 0x46, 0x98, 0x7a, 0x81, 0x1d, 0x83,
- 0xf4, 0xc7, 0x5e, 0x15, 0xbd, 0x78, 0x99, 0x22, 0x73, 0x8d, 0x46, 0x76, 0x13, 0x0e, 0x87, 0x44,
- 0x45, 0x0c, 0x99, 0x1f, 0x67, 0x32, 0x0f, 0x76, 0x45, 0x06, 0x16, 0xbb, 0x06, 0x7c, 0xdc, 0xf3,
- 0x65, 0x0c, 0x99, 0xbf, 0xc7, 0x64, 0xea, 0x0c, 0xcb, 0x5d, 0x8a, 0x25, 0x5e, 0x81, 0xf1, 0x27,
- 0x50, 0xfb, 0xba, 0xed, 0xb0, 0x5d, 0x9a, 0x18, 0xe2, 0x3e, 0xc1, 0xc4, 0x8d, 0x31, 0x20, 0xd9,
- 0xb6, 0xc1, 0xb2, 0x2e, 0x40, 0x6a, 0xcb, 0xac, 0xa2, 0x18, 0x22, 0x3e, 0xc9, 0x44, 0x1c, 0xc0,
- 0xfc, 0x18, 0x9a, 0x83, 0xe1, 0x6d, 0x9b, 0xad, 0x4c, 0xd1, 0xf0, 0x67, 0x19, 0x7c, 0x88, 0x63,
- 0x98, 0x88, 0x96, 0xdd, 0xea, 0x34, 0xf0, 0xb2, 0x15, 0x2d, 0xe2, 0x53, 0x5c, 0x04, 0xc7, 0x30,
- 0x11, 0xfb, 0x30, 0xeb, 0x73, 0x5c, 0x84, 0x13, 0xb0, 0xe7, 0x43, 0x30, 0x64, 0x5b, 0x8d, 0x5d,
- 0xdb, 0x8a, 0xa3, 0xc4, 0xa7, 0x99, 0x04, 0x60, 0x10, 0x2c, 0xe0, 0x22, 0x0c, 0xc6, 0x75, 0xc4,
- 0xe7, 0x5e, 0xe5, 0xe9, 0xc1, 0x3d, 0x70, 0x19, 0xc6, 0x78, 0x81, 0xaa, 0xdb, 0x56, 0x0c, 0x11,
- 0x9f, 0x67, 0x22, 0x46, 0x03, 0x30, 0x36, 0x0d, 0x17, 0x39, 0xee, 0x36, 0x8a, 0x23, 0xe4, 0x0b,
- 0x7c, 0x1a, 0x0c, 0xc2, 0x4c, 0x79, 0x1d, 0x59, 0xd5, 0x9d, 0x78, 0x12, 0x9e, 0xe7, 0xa6, 0xe4,
- 0x18, 0x2c, 0xa2, 0x00, 0x23, 0x4d, 0xb3, 0xed, 0xec, 0x98, 0x8d, 0x58, 0xee, 0xf8, 0x22, 0x93,
- 0x31, 0xec, 0x81, 0x98, 0x45, 0x3a, 0xd6, 0x7e, 0xc4, 0x7c, 0x89, 0x5b, 0x24, 0x00, 0x63, 0xa9,
- 0xe7, 0xb8, 0x64, 0x4b, 0x6b, 0x3f, 0xd2, 0x7e, 0x9f, 0xa7, 0x1e, 0xc5, 0xae, 0x04, 0x25, 0x5e,
- 0x84, 0x41, 0xa7, 0xfe, 0x74, 0x2c, 0x31, 0x7f, 0xc0, 0x3d, 0x4d, 0x00, 0x18, 0x7c, 0x0d, 0x6e,
- 0x0b, 0x5d, 0x26, 0x62, 0x08, 0xfb, 0x43, 0x26, 0x6c, 0x32, 0x64, 0xa9, 0x60, 0x25, 0x61, 0xbf,
- 0x22, 0xff, 0x88, 0x97, 0x04, 0x24, 0xc9, 0x5a, 0xc3, 0xef, 0x0a, 0x8e, 0xb9, 0xb5, 0x3f, 0xab,
- 0xfd, 0x31, 0xb7, 0x1a, 0xc5, 0x0a, 0x56, 0xdb, 0x80, 0x49, 0x26, 0x71, 0x7f, 0x7e, 0xfd, 0x32,
- 0x2f, 0xac, 0x14, 0xbd, 0x29, 0x7a, 0xf7, 0xbd, 0x30, 0xe5, 0x99, 0x93, 0x37, 0xa5, 0x4e, 0xa5,
- 0x69, 0xb6, 0x62, 0x48, 0xfe, 0x0a, 0x93, 0xcc, 0x2b, 0xbe, 0xd7, 0xd5, 0x3a, 0x2b, 0x66, 0x0b,
- 0x0b, 0x7f, 0x14, 0xd2, 0x5c, 0x78, 0xc7, 0x6a, 0xa3, 0xaa, 0xbd, 0x6d, 0xd5, 0x9f, 0x46, 0xb5,
- 0x18, 0xa2, 0xff, 0x44, 0x72, 0xd5, 0x66, 0x00, 0x8e, 0x25, 0x2f, 0x83, 0xe6, 0xf5, 0x2a, 0x95,
- 0x7a, 0xb3, 0x65, 0xb7, 0xdd, 0x08, 0x89, 0x5f, 0xe5, 0x9e, 0xf2, 0x70, 0xcb, 0x04, 0x96, 0x2d,
- 0xc1, 0x28, 0xf9, 0x1a, 0x37, 0x24, 0xbf, 0xc6, 0x04, 0x8d, 0xf8, 0x28, 0x56, 0x38, 0xaa, 0x76,
- 0xb3, 0x65, 0xb6, 0xe3, 0xd4, 0xbf, 0x3f, 0xe5, 0x85, 0x83, 0x41, 0x58, 0xe1, 0x70, 0x77, 0x5b,
- 0x08, 0xaf, 0xf6, 0x31, 0x24, 0x7c, 0x9d, 0x17, 0x0e, 0x8e, 0x61, 0x22, 0x78, 0xc3, 0x10, 0x43,
- 0xc4, 0x9f, 0x71, 0x11, 0x1c, 0x83, 0x45, 0xbc, 0xcb, 0x5f, 0x68, 0xdb, 0x68, 0xbb, 0xee, 0xb8,
- 0x6d, 0xda, 0x0a, 0xef, 0x2d, 0xea, 0x1b, 0xaf, 0x8a, 0x4d, 0x98, 0x11, 0x80, 0xe2, 0x4a, 0xc4,
- 0xb6, 0x50, 0xc9, 0x9b, 0x52, 0xb4, 0x62, 0xdf, 0xe4, 0x95, 0x28, 0x00, 0xc3, 0xba, 0x05, 0x3a,
- 0x44, 0x6c, 0xf6, 0x2a, 0x7e, 0x3f, 0x88, 0x21, 0xee, 0x5b, 0x92, 0x72, 0xeb, 0x1c, 0x8b, 0x65,
- 0x06, 0xfa, 0x9f, 0x8e, 0xf5, 0x38, 0xda, 0x8d, 0x15, 0x9d, 0x7f, 0x2e, 0xf5, 0x3f, 0x9b, 0x14,
- 0x49, 0x6b, 0xc8, 0x98, 0xd4, 0x4f, 0xe9, 0x51, 0x97, 0x75, 0xd2, 0xff, 0xf7, 0x35, 0x36, 0x5f,
- 0xb1, 0x9d, 0xca, 0x5e, 0xc5, 0x41, 0x2e, 0x36, 0x3d, 0xd1, 0xc2, 0x3e, 0xf0, 0x9a, 0x17, 0xe7,
- 0x42, 0xcf, 0x93, 0xbd, 0x04, 0x23, 0x42, 0xc3, 0x13, 0x2d, 0xea, 0xff, 0x31, 0x51, 0xc3, 0xc1,
- 0x7e, 0x27, 0x7b, 0x06, 0x92, 0xb8, 0x79, 0x89, 0x86, 0xff, 0x7f, 0x06, 0x27, 0xec, 0xd9, 0x07,
- 0x20, 0xc5, 0x9b, 0x96, 0x68, 0xe8, 0x07, 0x19, 0xd4, 0x83, 0x60, 0x38, 0x6f, 0x58, 0xa2, 0xe1,
- 0xbf, 0xc4, 0xe1, 0x1c, 0x82, 0xe1, 0xf1, 0x4d, 0xf8, 0xc2, 0xaf, 0x24, 0xd9, 0xa2, 0xc3, 0x6d,
- 0x77, 0x11, 0x0e, 0xb0, 0x4e, 0x25, 0x1a, 0xfd, 0x61, 0xf6, 0x70, 0x8e, 0xc8, 0x9e, 0x83, 0xfe,
- 0x98, 0x06, 0xff, 0x55, 0x06, 0xa5, 0xfc, 0xd9, 0x02, 0x0c, 0x05, 0xba, 0x93, 0x68, 0xf8, 0xaf,
- 0x31, 0x78, 0x10, 0x85, 0x55, 0x67, 0xdd, 0x49, 0xb4, 0x80, 0x5f, 0xe7, 0xaa, 0x33, 0x04, 0x36,
- 0x1b, 0x6f, 0x4c, 0xa2, 0xd1, 0xbf, 0xc1, 0xad, 0xce, 0x21, 0xd9, 0x87, 0x60, 0xd0, 0x5b, 0x6c,
- 0xa2, 0xf1, 0xbf, 0xc9, 0xf0, 0x3e, 0x06, 0x5b, 0x20, 0xb0, 0xd8, 0x45, 0x8b, 0xf8, 0x2d, 0x6e,
- 0x81, 0x00, 0x0a, 0xa7, 0x91, 0xdc, 0xc0, 0x44, 0x4b, 0xfa, 0x08, 0x4f, 0x23, 0xa9, 0x7f, 0xc1,
- 0xde, 0x24, 0x35, 0x3f, 0x5a, 0xc4, 0x6f, 0x73, 0x6f, 0x12, 0x7e, 0xac, 0x86, 0xdc, 0x11, 0x44,
- 0xcb, 0xf8, 0x5d, 0xae, 0x86, 0xd4, 0x10, 0x64, 0xd7, 0x40, 0xef, 0xee, 0x06, 0xa2, 0xe5, 0x7d,
- 0x94, 0xc9, 0x1b, 0xef, 0x6a, 0x06, 0xb2, 0x8f, 0xc0, 0x64, 0x78, 0x27, 0x10, 0x2d, 0xf5, 0x63,
- 0xaf, 0x49, 0xef, 0x6e, 0xc1, 0x46, 0x20, 0xbb, 0xe1, 0x2f, 0x29, 0xc1, 0x2e, 0x20, 0x5a, 0xec,
- 0xc7, 0x5f, 0x13, 0x0b, 0x77, 0xb0, 0x09, 0xc8, 0xe6, 0x00, 0xfc, 0x05, 0x38, 0x5a, 0xd6, 0x27,
- 0x98, 0xac, 0x00, 0x08, 0xa7, 0x06, 0x5b, 0x7f, 0xa3, 0xf1, 0x9f, 0xe4, 0xa9, 0xc1, 0x10, 0x38,
- 0x35, 0xf8, 0xd2, 0x1b, 0x8d, 0x7e, 0x96, 0xa7, 0x06, 0x87, 0xe0, 0xc8, 0x0e, 0xac, 0x6e, 0xd1,
- 0x12, 0x3e, 0xcd, 0x23, 0x3b, 0x80, 0xca, 0x96, 0x61, 0xbc, 0x6b, 0x41, 0x8c, 0x16, 0xf5, 0x19,
- 0x26, 0x4a, 0x93, 0xd7, 0xc3, 0xe0, 0xe2, 0xc5, 0x16, 0xc3, 0x68, 0x69, 0x9f, 0x95, 0x16, 0x2f,
- 0xb6, 0x16, 0x66, 0x2f, 0x42, 0xca, 0xea, 0x34, 0x1a, 0x38, 0x79, 0xf4, 0xbd, 0x2f, 0xd8, 0xa5,
- 0xff, 0xf9, 0x75, 0x66, 0x1d, 0x0e, 0xc8, 0x9e, 0x81, 0x7e, 0xd4, 0xbc, 0x8e, 0x6a, 0x51, 0xc8,
- 0x7f, 0x79, 0x9d, 0x17, 0x4c, 0xcc, 0x9d, 0x7d, 0x08, 0x80, 0x6e, 0x8d, 0x90, 0x63, 0xbf, 0x08,
- 0xec, 0xbf, 0xbe, 0xce, 0xae, 0xbe, 0xf8, 0x10, 0x5f, 0x00, 0xbd, 0x48, 0xb3, 0xb7, 0x80, 0x57,
- 0x45, 0x01, 0xc4, 0x23, 0x17, 0xe0, 0xc0, 0x63, 0x8e, 0x6d, 0xb9, 0xe6, 0x76, 0x14, 0xfa, 0xdf,
- 0x18, 0x9a, 0xf3, 0x63, 0x83, 0x35, 0xed, 0x36, 0x72, 0xcd, 0x6d, 0x27, 0x0a, 0xfb, 0xef, 0x0c,
- 0xeb, 0x01, 0x30, 0xb8, 0x6a, 0x3a, 0x6e, 0x9c, 0x79, 0xff, 0x88, 0x83, 0x39, 0x00, 0x2b, 0x8d,
- 0x3f, 0x3f, 0x8e, 0x76, 0xa3, 0xb0, 0x3f, 0xe6, 0x4a, 0x33, 0xfe, 0xec, 0x03, 0x30, 0x88, 0x3f,
- 0xd2, 0xfb, 0x6c, 0x11, 0xe0, 0xff, 0x60, 0x60, 0x1f, 0x81, 0x9f, 0xec, 0xb8, 0x35, 0xb7, 0x1e,
- 0x6d, 0xec, 0x9f, 0x30, 0x4f, 0x73, 0xfe, 0x6c, 0x0e, 0x86, 0x1c, 0xb7, 0x56, 0xeb, 0xb0, 0xfe,
- 0x34, 0x02, 0xfe, 0x9f, 0xaf, 0x7b, 0x5b, 0x16, 0x1e, 0x06, 0x7b, 0xfb, 0xc9, 0xc7, 0xdd, 0x96,
- 0x4d, 0x8e, 0x39, 0xa2, 0x24, 0xbc, 0xc6, 0x24, 0x04, 0x20, 0xf9, 0x52, 0xf8, 0xf6, 0x2d, 0x5c,
- 0xb6, 0x2f, 0xdb, 0x74, 0xe3, 0xf6, 0x3d, 0x99, 0xe8, 0x1d, 0x58, 0xf8, 0xdb, 0x06, 0x4c, 0x57,
- 0xed, 0xe6, 0x75, 0xdb, 0x39, 0xe9, 0x95, 0xe3, 0x93, 0xee, 0x0e, 0xc2, 0xab, 0x30, 0xdb, 0x99,
- 0x4d, 0xe2, 0xcf, 0x53, 0xfb, 0xdb, 0xce, 0x25, 0x87, 0xf5, 0xe5, 0x3a, 0x9e, 0x41, 0x99, 0x9c,
- 0x97, 0xe8, 0x47, 0x60, 0x80, 0xcc, 0xe9, 0x14, 0x39, 0x93, 0x54, 0xf2, 0xc9, 0x1b, 0x2f, 0xcd,
- 0xf4, 0x19, 0x6c, 0xcc, 0xa3, 0x2e, 0x92, 0x0d, 0xed, 0x84, 0x40, 0x5d, 0xf4, 0xa8, 0xa7, 0xe9,
- 0x9e, 0xb6, 0x40, 0x3d, 0xed, 0x51, 0x97, 0xc8, 0xee, 0xb6, 0x2a, 0x50, 0x97, 0x3c, 0xea, 0x19,
- 0x72, 0x82, 0x33, 0x22, 0x50, 0xcf, 0x78, 0xd4, 0xb3, 0xe4, 0xdc, 0x26, 0x29, 0x50, 0xcf, 0x7a,
- 0xd4, 0x73, 0xe4, 0xc8, 0x66, 0x5c, 0xa0, 0x9e, 0xf3, 0xa8, 0xe7, 0xc9, 0x51, 0x8d, 0x2e, 0x50,
- 0xcf, 0x7b, 0xd4, 0x0b, 0xe4, 0x1e, 0xd4, 0x01, 0x81, 0x7a, 0x41, 0x9f, 0x86, 0x03, 0x74, 0xe6,
- 0x0b, 0xe4, 0x5c, 0x7f, 0x8c, 0x91, 0xf9, 0xa0, 0x4f, 0x3f, 0x45, 0xee, 0x3c, 0x0d, 0x88, 0xf4,
- 0x53, 0x3e, 0x7d, 0x91, 0xfc, 0xf9, 0x85, 0x26, 0xd2, 0x17, 0x7d, 0xfa, 0xe9, 0xf4, 0x08, 0xb9,
- 0xf7, 0x25, 0xd0, 0x4f, 0xfb, 0xf4, 0xa5, 0xf4, 0x28, 0x4e, 0x0c, 0x91, 0xbe, 0xe4, 0xd3, 0xcf,
- 0xa4, 0xc7, 0x8e, 0x2a, 0xb3, 0xc3, 0x22, 0xfd, 0x4c, 0xe6, 0xfd, 0xc4, 0xbd, 0x96, 0xef, 0xde,
- 0x49, 0xd1, 0xbd, 0x9e, 0x63, 0x27, 0x45, 0xc7, 0x7a, 0x2e, 0x9d, 0x14, 0x5d, 0xea, 0x39, 0x73,
- 0x52, 0x74, 0xa6, 0xe7, 0xc6, 0x49, 0xd1, 0x8d, 0x9e, 0x03, 0x27, 0x45, 0x07, 0x7a, 0xae, 0x9b,
- 0x14, 0x5d, 0xe7, 0x39, 0x6d, 0x52, 0x74, 0x9a, 0xe7, 0xae, 0x49, 0xd1, 0x5d, 0x9e, 0xa3, 0xd2,
- 0x92, 0xa3, 0x7c, 0x17, 0xa5, 0x25, 0x17, 0xf9, 0xce, 0x49, 0x4b, 0xce, 0xf1, 0xdd, 0x92, 0x96,
- 0xdc, 0xe2, 0x3b, 0x24, 0x2d, 0x39, 0xc4, 0x77, 0x45, 0x5a, 0x72, 0x85, 0xef, 0x04, 0x96, 0x63,
- 0x06, 0x6a, 0x85, 0xe4, 0x98, 0xba, 0x67, 0x8e, 0xa9, 0x7b, 0xe6, 0x98, 0xba, 0x67, 0x8e, 0xa9,
- 0x7b, 0xe6, 0x98, 0xba, 0x67, 0x8e, 0xa9, 0x7b, 0xe6, 0x98, 0xba, 0x67, 0x8e, 0xa9, 0x7b, 0xe6,
- 0x98, 0xba, 0x77, 0x8e, 0xa9, 0x11, 0x39, 0xa6, 0x46, 0xe4, 0x98, 0x1a, 0x91, 0x63, 0x6a, 0x44,
- 0x8e, 0xa9, 0x11, 0x39, 0xa6, 0xf6, 0xcc, 0x31, 0xdf, 0xbd, 0x93, 0xa2, 0x7b, 0x43, 0x73, 0x4c,
- 0xed, 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23, 0xc7, 0xd4, 0x1e, 0x39,
- 0xa6, 0xf6, 0xc8, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0xbd, 0x72, 0x4c, 0xed, 0x99, 0x63, 0x6a, 0xcf,
- 0x1c, 0x53, 0x7b, 0xe6, 0x98, 0xda, 0x33, 0xc7, 0xd4, 0x9e, 0x39, 0xa6, 0x06, 0x73, 0xec, 0x2f,
- 0x54, 0xd0, 0x69, 0x8e, 0xad, 0x91, 0x9b, 0x61, 0xcc, 0x15, 0xd3, 0x52, 0xa6, 0x0d, 0x60, 0xd7,
- 0x69, 0xbe, 0x4b, 0xa6, 0xa5, 0x5c, 0x13, 0xe9, 0x8b, 0x1e, 0x9d, 0x67, 0x9b, 0x48, 0x3f, 0xed,
- 0xd1, 0x79, 0xbe, 0x89, 0xf4, 0x25, 0x8f, 0xce, 0x33, 0x4e, 0xa4, 0x9f, 0xf1, 0xe8, 0x3c, 0xe7,
- 0x44, 0xfa, 0x59, 0x8f, 0xce, 0xb3, 0x4e, 0xa4, 0x9f, 0xf3, 0xe8, 0x3c, 0xef, 0x44, 0xfa, 0x79,
- 0x8f, 0xce, 0x33, 0x4f, 0xa4, 0x5f, 0xd0, 0x8f, 0xca, 0xb9, 0xc7, 0x19, 0x3c, 0xd7, 0x1e, 0x95,
- 0xb3, 0x4f, 0xe2, 0x38, 0xe5, 0x73, 0xf0, 0xfc, 0x93, 0x38, 0x16, 0x7d, 0x0e, 0x9e, 0x81, 0x12,
- 0xc7, 0xe9, 0xcc, 0x87, 0x88, 0xfb, 0x2c, 0xd9, 0x7d, 0x53, 0x92, 0xfb, 0x12, 0x01, 0xd7, 0x4d,
- 0x49, 0xae, 0x4b, 0x04, 0xdc, 0x36, 0x25, 0xb9, 0x2d, 0x11, 0x70, 0xd9, 0x94, 0xe4, 0xb2, 0x44,
- 0xc0, 0x5d, 0x53, 0x92, 0xbb, 0x12, 0x01, 0x57, 0x4d, 0x49, 0xae, 0x4a, 0x04, 0xdc, 0x34, 0x25,
- 0xb9, 0x29, 0x11, 0x70, 0xd1, 0x94, 0xe4, 0xa2, 0x44, 0xc0, 0x3d, 0x53, 0x92, 0x7b, 0x12, 0x01,
- 0xd7, 0x1c, 0x91, 0x5d, 0x93, 0x08, 0xba, 0xe5, 0x88, 0xec, 0x96, 0x44, 0xd0, 0x25, 0x47, 0x64,
- 0x97, 0x24, 0x82, 0xee, 0x38, 0x22, 0xbb, 0x23, 0x11, 0x74, 0xc5, 0xcf, 0x12, 0xbc, 0x23, 0x5c,
- 0x77, 0xdb, 0x9d, 0xaa, 0x7b, 0x4b, 0x1d, 0xe1, 0x82, 0xd0, 0x3e, 0x0c, 0x2d, 0xea, 0xf3, 0xa4,
- 0x61, 0x0d, 0x76, 0x9c, 0xd2, 0x0a, 0xb6, 0x20, 0x34, 0x16, 0x01, 0x84, 0x15, 0x8e, 0x58, 0xba,
- 0xa5, 0xde, 0x70, 0x41, 0x68, 0x33, 0xa2, 0xf5, 0x3b, 0xff, 0x96, 0x77, 0x6c, 0x2f, 0x24, 0x78,
- 0xc7, 0xc6, 0xcc, 0xbf, 0xdf, 0x8e, 0x6d, 0x2e, 0xda, 0xe4, 0x9e, 0xb1, 0xe7, 0xa2, 0x8d, 0xdd,
- 0xb5, 0xea, 0xc4, 0xed, 0xe0, 0xe6, 0xa2, 0x4d, 0xeb, 0x19, 0xf5, 0xcd, 0xed, 0xb7, 0x58, 0x04,
- 0x1b, 0xa8, 0x15, 0x12, 0xc1, 0xfb, 0xed, 0xb7, 0x16, 0x84, 0x52, 0xb2, 0xdf, 0x08, 0x56, 0xf7,
- 0x1d, 0xc1, 0xfb, 0xed, 0xbc, 0x16, 0x84, 0xf2, 0xb2, 0xef, 0x08, 0x7e, 0x0b, 0xfa, 0x21, 0x16,
- 0xc1, 0xbe, 0xf9, 0xf7, 0xdb, 0x0f, 0xcd, 0x45, 0x9b, 0x3c, 0x34, 0x82, 0xd5, 0x7d, 0x44, 0x70,
- 0x9c, 0xfe, 0x68, 0x2e, 0xda, 0xb4, 0xe1, 0x11, 0x7c, 0xcb, 0xdd, 0xcc, 0xa7, 0x14, 0x18, 0x2f,
- 0xd7, 0x6b, 0xa5, 0xe6, 0x75, 0x54, 0xab, 0xa1, 0x1a, 0xb3, 0xe3, 0x82, 0x50, 0x09, 0x7a, 0xb8,
- 0xfa, 0xc5, 0x97, 0x66, 0x7c, 0x0b, 0x9f, 0x81, 0x14, 0xb5, 0xe9, 0xc2, 0x42, 0xfa, 0x86, 0x12,
- 0x51, 0xe1, 0x3c, 0x56, 0xfd, 0x18, 0x87, 0x9d, 0x5a, 0x48, 0xff, 0xbd, 0x12, 0xa8, 0x72, 0xde,
- 0x70, 0xe6, 0x23, 0x44, 0x43, 0xeb, 0x96, 0x35, 0x3c, 0x19, 0x4b, 0xc3, 0x80, 0x6e, 0xb7, 0x77,
- 0xe9, 0x16, 0xd0, 0xaa, 0x03, 0x63, 0xe5, 0x7a, 0xad, 0x4c, 0xfe, 0xf0, 0x3f, 0x8e, 0x4a, 0x94,
- 0x47, 0xaa, 0x07, 0x0b, 0x42, 0x58, 0x06, 0x11, 0x5e, 0x48, 0x8b, 0x35, 0x22, 0x53, 0xc7, 0x8f,
- 0xb5, 0x84, 0xc7, 0xce, 0xf5, 0x7a, 0xac, 0x5f, 0xd9, 0xbd, 0x07, 0xce, 0xf5, 0x7a, 0xa0, 0x9f,
- 0x43, 0xde, 0xa3, 0x9e, 0xe2, 0x8b, 0x33, 0xbd, 0x9f, 0xa5, 0x1f, 0x81, 0xc4, 0x32, 0xbd, 0x3e,
- 0x3e, 0x9c, 0x1f, 0xc6, 0x4a, 0x7d, 0xef, 0xa5, 0x99, 0xe4, 0x66, 0xa7, 0x5e, 0x33, 0x12, 0xcb,
- 0x35, 0xfd, 0x0a, 0xf4, 0xbf, 0x9b, 0xfd, 0xf9, 0x29, 0x66, 0x58, 0x62, 0x0c, 0xf7, 0xf5, 0xdc,
- 0x23, 0xc2, 0x0f, 0x3e, 0x49, 0xf7, 0x2a, 0xe7, 0x37, 0xeb, 0x96, 0x7b, 0x6a, 0xf1, 0xbc, 0x41,
- 0x45, 0x64, 0xfe, 0x27, 0x00, 0x7d, 0x66, 0xd1, 0x74, 0x76, 0xf4, 0x32, 0x97, 0x4c, 0x1f, 0x7d,
- 0xfe, 0x7b, 0x2f, 0xcd, 0x2c, 0xc5, 0x91, 0x7a, 0x7f, 0xcd, 0x74, 0x76, 0xee, 0x77, 0x77, 0x5b,
- 0x68, 0x3e, 0xbf, 0xeb, 0x22, 0x87, 0x4b, 0x6f, 0xf1, 0x55, 0x8f, 0xcd, 0x2b, 0x1d, 0x98, 0x57,
- 0x4a, 0x98, 0xd3, 0x25, 0x71, 0x4e, 0x0b, 0x6f, 0x74, 0x3e, 0x4f, 0xf1, 0x45, 0x42, 0xb2, 0xa4,
- 0x1a, 0x65, 0x49, 0xf5, 0x56, 0x2d, 0xd9, 0xe2, 0xf5, 0x51, 0x9a, 0xab, 0xba, 0xd7, 0x5c, 0xd5,
- 0x5b, 0x99, 0xeb, 0x7f, 0xd1, 0x6c, 0xf5, 0xf2, 0x69, 0xd3, 0xa2, 0x57, 0x57, 0x7f, 0xb1, 0xf6,
- 0x82, 0xde, 0xd4, 0x2e, 0x20, 0x9b, 0xbc, 0xf1, 0xdc, 0x8c, 0x92, 0xf9, 0x54, 0x82, 0xcf, 0x9c,
- 0x26, 0xd2, 0x1b, 0x9b, 0xf9, 0x2f, 0x4a, 0x4f, 0xf5, 0x56, 0x58, 0xe8, 0x59, 0x05, 0x26, 0xbb,
- 0x2a, 0x39, 0x35, 0xd3, 0x9b, 0x5b, 0xce, 0xad, 0xfd, 0x96, 0x73, 0xa6, 0xe0, 0xd7, 0x14, 0x38,
- 0x28, 0x95, 0x57, 0xaa, 0xde, 0x49, 0x49, 0xbd, 0xc3, 0xdd, 0x4f, 0x22, 0x8c, 0x01, 0xed, 0x82,
- 0xee, 0x95, 0x00, 0x01, 0xc9, 0x9e, 0xdf, 0x97, 0x24, 0xbf, 0x1f, 0xf1, 0x00, 0x21, 0xe6, 0xe2,
- 0x11, 0xc0, 0xd4, 0xb6, 0x21, 0xb9, 0xd1, 0x46, 0x48, 0x9f, 0x86, 0xc4, 0x6a, 0x9b, 0x69, 0x38,
- 0x4a, 0xf1, 0xab, 0xed, 0x7c, 0xdb, 0xb4, 0xaa, 0x3b, 0x46, 0x62, 0xb5, 0xad, 0x1f, 0x03, 0x35,
- 0xc7, 0xfe, 0xf4, 0x7d, 0x68, 0x71, 0x8c, 0x32, 0xe4, 0xac, 0x1a, 0xe3, 0xc0, 0x34, 0x7d, 0x1a,
- 0x92, 0x57, 0x91, 0xb9, 0xc5, 0x94, 0x00, 0xca, 0x83, 0x47, 0x0c, 0x32, 0xce, 0x1e, 0xf8, 0x28,
- 0xa4, 0xb8, 0x60, 0xfd, 0x38, 0x46, 0x6c, 0xb9, 0xec, 0xb1, 0x0c, 0x81, 0xd5, 0x61, 0x2b, 0x17,
- 0xa1, 0xea, 0x27, 0xa0, 0xdf, 0xa8, 0x6f, 0xef, 0xb8, 0xec, 0xe1, 0xdd, 0x6c, 0x94, 0x9c, 0xb9,
- 0x06, 0x83, 0x9e, 0x46, 0x6f, 0xb2, 0xe8, 0x22, 0x9d, 0x9a, 0x3e, 0x15, 0x5c, 0x4f, 0xf8, 0xbe,
- 0x25, 0x1d, 0xd2, 0x8f, 0x42, 0x6a, 0xdd, 0x6d, 0xfb, 0x45, 0x9f, 0x77, 0xa4, 0xde, 0x68, 0xe6,
- 0xfd, 0x0a, 0xa4, 0x8a, 0x08, 0xb5, 0x88, 0xc1, 0xef, 0x82, 0x64, 0xd1, 0x7e, 0xd2, 0x62, 0x0a,
- 0x8e, 0x33, 0x8b, 0x62, 0x32, 0xb3, 0x29, 0x21, 0xeb, 0x77, 0x05, 0xed, 0x3e, 0xe1, 0xd9, 0x3d,
- 0xc0, 0x47, 0x6c, 0x9f, 0x11, 0x6c, 0xcf, 0x1c, 0x88, 0x99, 0xba, 0xec, 0x7f, 0x0e, 0x86, 0x02,
- 0x4f, 0xd1, 0x67, 0x99, 0x1a, 0x09, 0x19, 0x18, 0xb4, 0x15, 0xe6, 0xc8, 0x20, 0x18, 0x11, 0x1e,
- 0x8c, 0xa1, 0x01, 0x13, 0xf7, 0x80, 0x12, 0x33, 0xcf, 0x89, 0x66, 0x0e, 0x67, 0x65, 0xa6, 0x5e,
- 0xa0, 0x36, 0x22, 0xe6, 0x3e, 0x4e, 0x83, 0xb3, 0xb7, 0x13, 0xf1, 0xe7, 0x4c, 0x3f, 0xa8, 0xe5,
- 0x7a, 0x23, 0xf3, 0x00, 0x00, 0x4d, 0xf9, 0x92, 0xd5, 0x69, 0x4a, 0x59, 0x37, 0xca, 0x0d, 0xbc,
- 0xb1, 0x83, 0x36, 0x90, 0x43, 0x58, 0xc4, 0x7e, 0x0a, 0x17, 0x18, 0xa0, 0x29, 0x46, 0xf0, 0xf7,
- 0x44, 0xe2, 0x43, 0x3b, 0x31, 0xcc, 0x9a, 0xa6, 0xac, 0xd7, 0x90, 0x9b, 0xb3, 0x6c, 0x77, 0x07,
- 0xb5, 0x25, 0xc4, 0xa2, 0x7e, 0x5a, 0x48, 0xd8, 0xd1, 0xc5, 0xdb, 0x3d, 0x44, 0x4f, 0xd0, 0xe9,
- 0xcc, 0x97, 0x89, 0x82, 0xb8, 0x15, 0xe8, 0x9a, 0xa0, 0x1a, 0x63, 0x82, 0xfa, 0x59, 0xa1, 0x7f,
- 0xdb, 0x43, 0x4d, 0xe9, 0xd5, 0xf2, 0x82, 0xf0, 0x9e, 0xb3, 0xb7, 0xb2, 0xe2, 0x3b, 0x26, 0xb7,
- 0x29, 0x57, 0xf9, 0x9e, 0x48, 0x95, 0x7b, 0x74, 0xb7, 0xfb, 0xb5, 0xa9, 0x1a, 0xd7, 0xa6, 0xdf,
- 0xf2, 0x3a, 0x0e, 0xfa, 0xfb, 0x22, 0xe4, 0x97, 0x79, 0xf4, 0xfb, 0x22, 0x7d, 0x9f, 0x55, 0x0a,
- 0x9e, 0xaa, 0x4b, 0x71, 0xdd, 0x9f, 0x4d, 0xe4, 0xf3, 0x9e, 0xba, 0xe7, 0xf6, 0x11, 0x02, 0xd9,
- 0x44, 0xa1, 0xe0, 0x95, 0xed, 0xd4, 0x87, 0x9e, 0x9b, 0x51, 0x9e, 0x7f, 0x6e, 0xa6, 0x2f, 0xf3,
- 0x45, 0x05, 0xc6, 0x19, 0x67, 0x20, 0x70, 0xef, 0x97, 0x94, 0x3f, 0xc4, 0x6b, 0x46, 0x98, 0x05,
- 0xde, 0xb6, 0xe0, 0xfd, 0x8e, 0x02, 0xe9, 0x2e, 0x5d, 0xb9, 0xbd, 0x17, 0x62, 0xa9, 0x9c, 0x55,
- 0x4a, 0x3f, 0x7f, 0x9b, 0x5f, 0x83, 0xfe, 0x8d, 0x7a, 0x13, 0xb5, 0xf1, 0x4a, 0x80, 0x3f, 0x50,
- 0x95, 0xf9, 0x61, 0x0e, 0x1d, 0xe2, 0x34, 0xaa, 0x9c, 0x40, 0x5b, 0xd4, 0xd3, 0x90, 0x2c, 0x9a,
- 0xae, 0x49, 0x34, 0x18, 0xf6, 0xea, 0xab, 0xe9, 0x9a, 0x99, 0xd3, 0x30, 0xbc, 0xb2, 0x4b, 0xee,
- 0x1b, 0xd5, 0xc8, 0x55, 0x13, 0xb1, 0xfb, 0xe3, 0xfd, 0xea, 0xa9, 0xb9, 0xfe, 0x54, 0x4d, 0xbb,
- 0xa1, 0x64, 0x93, 0x44, 0x9f, 0x27, 0x60, 0x74, 0x15, 0xab, 0x4d, 0x70, 0x02, 0x8c, 0x3e, 0x5d,
- 0xf5, 0x26, 0x2f, 0x35, 0x65, 0xaa, 0xdf, 0x94, 0x1d, 0x05, 0x65, 0x45, 0x6c, 0x9d, 0x82, 0x7a,
- 0x18, 0xca, 0xca, 0x5c, 0x32, 0x35, 0xaa, 0x8d, 0xcf, 0x25, 0x53, 0xa0, 0x8d, 0xb0, 0xe7, 0xfe,
- 0x8d, 0x0a, 0x1a, 0x6d, 0x75, 0x8a, 0x68, 0xab, 0x6e, 0xd5, 0xdd, 0xee, 0x7e, 0xd5, 0xd3, 0x58,
- 0x7f, 0x08, 0x06, 0xb1, 0x49, 0x2f, 0xb1, 0x1f, 0xe8, 0xc3, 0xa6, 0x3f, 0xc6, 0x5a, 0x14, 0x49,
- 0x04, 0x1b, 0x20, 0xa1, 0xe3, 0x63, 0xf4, 0x4b, 0xa0, 0x96, 0xcb, 0x2b, 0x6c, 0x71, 0x5b, 0xda,
- 0x13, 0xca, 0xee, 0xf4, 0xb0, 0x6f, 0x6c, 0xcc, 0xd9, 0x36, 0xb0, 0x00, 0x7d, 0x09, 0x12, 0xe5,
- 0x15, 0xd6, 0xf0, 0x1e, 0x8f, 0x23, 0xc6, 0x48, 0x94, 0x57, 0xa6, 0xfe, 0x52, 0x81, 0x11, 0x61,
- 0x54, 0xcf, 0xc0, 0x30, 0x1d, 0x08, 0x4c, 0x77, 0xc0, 0x10, 0xc6, 0xb8, 0xce, 0x89, 0x5b, 0xd4,
- 0x79, 0x2a, 0x07, 0x63, 0xd2, 0xb8, 0x3e, 0x0f, 0x7a, 0x70, 0x88, 0x29, 0x41, 0x7f, 0x1c, 0x2c,
- 0x84, 0x92, 0xb9, 0x03, 0xc0, 0xb7, 0xab, 0xf7, 0x9b, 0x56, 0xe5, 0xd2, 0xfa, 0x46, 0xa9, 0xa8,
- 0x29, 0x99, 0xaf, 0x2b, 0x30, 0xc4, 0xda, 0xd6, 0xaa, 0xdd, 0x42, 0x7a, 0x1e, 0x94, 0x1c, 0x8b,
- 0x87, 0x37, 0xa6, 0xb7, 0x92, 0xd3, 0x4f, 0x82, 0x92, 0x8f, 0xef, 0x6a, 0x25, 0xaf, 0x2f, 0x82,
- 0x52, 0x60, 0x0e, 0x8e, 0xe7, 0x19, 0xa5, 0x90, 0xf9, 0x89, 0x0a, 0x13, 0xc1, 0x36, 0x9a, 0xd7,
- 0x93, 0x63, 0xe2, 0x7b, 0x53, 0x76, 0xf0, 0xd4, 0xe2, 0xe9, 0xa5, 0x79, 0xfc, 0x8f, 0x17, 0x92,
- 0x19, 0xf1, 0x15, 0x2a, 0x0b, 0x1e, 0xcb, 0xa9, 0x5e, 0xf7, 0x44, 0xb2, 0xc9, 0x80, 0x84, 0xae,
- 0x7b, 0x22, 0x02, 0xb5, 0xeb, 0x9e, 0x88, 0x40, 0xed, 0xba, 0x27, 0x22, 0x50, 0xbb, 0xce, 0x02,
- 0x04, 0x6a, 0xd7, 0x3d, 0x11, 0x81, 0xda, 0x75, 0x4f, 0x44, 0xa0, 0x76, 0xdf, 0x13, 0x61, 0xe4,
- 0x9e, 0xf7, 0x44, 0x44, 0x7a, 0xf7, 0x3d, 0x11, 0x91, 0xde, 0x7d, 0x4f, 0x24, 0x9b, 0x74, 0xdb,
- 0x1d, 0xd4, 0xfb, 0xd4, 0x41, 0xc4, 0xef, 0xf5, 0x12, 0xe8, 0x57, 0xe0, 0x55, 0x18, 0xa3, 0x1b,
- 0x12, 0x05, 0xdb, 0x72, 0xcd, 0xba, 0x85, 0xda, 0xfa, 0x3b, 0x60, 0x98, 0x0e, 0xd1, 0xd7, 0x9c,
- 0xb0, 0xd7, 0x40, 0x4a, 0x67, 0xf5, 0x56, 0xe0, 0xce, 0xfc, 0x2c, 0x09, 0x93, 0x74, 0xa0, 0x6c,
- 0x36, 0x91, 0x70, 0xcb, 0xe8, 0x84, 0x74, 0xa6, 0x34, 0x8a, 0xe1, 0x37, 0x5f, 0x9a, 0xa1, 0xa3,
- 0x39, 0x2f, 0x9a, 0x4e, 0x48, 0xa7, 0x4b, 0x22, 0x9f, 0xbf, 0x00, 0x9d, 0x90, 0x6e, 0x1e, 0x89,
- 0x7c, 0xde, 0x7a, 0xe3, 0xf1, 0xf1, 0x3b, 0x48, 0x22, 0x5f, 0xd1, 0x8b, 0xb2, 0x13, 0xd2, 0x6d,
- 0x24, 0x91, 0xaf, 0xe4, 0xc5, 0xdb, 0x09, 0xe9, 0xec, 0x49, 0xe4, 0xbb, 0xe4, 0x45, 0xde, 0x09,
- 0xe9, 0x14, 0x4a, 0xe4, 0xbb, 0xec, 0xc5, 0xe0, 0x09, 0xe9, 0xae, 0x92, 0xc8, 0xf7, 0xb0, 0x17,
- 0x8d, 0x27, 0xa4, 0x5b, 0x4b, 0x22, 0xdf, 0xb2, 0x17, 0x97, 0xb3, 0xf2, 0xfd, 0x25, 0x91, 0xf1,
- 0x8a, 0x1f, 0xa1, 0xb3, 0xf2, 0x4d, 0x26, 0x91, 0xf3, 0x9d, 0x7e, 0xac, 0xce, 0xca, 0x77, 0x9a,
- 0x44, 0xce, 0xab, 0x7e, 0xd4, 0xce, 0xca, 0x67, 0x65, 0x22, 0xe7, 0x8a, 0x1f, 0xbf, 0xb3, 0xf2,
- 0xa9, 0x99, 0xc8, 0x59, 0xf6, 0x23, 0x79, 0x56, 0x3e, 0x3f, 0x13, 0x39, 0x57, 0xfd, 0x4d, 0xf4,
- 0x6f, 0x4b, 0xe1, 0x17, 0xb8, 0x05, 0x95, 0x91, 0xc2, 0x0f, 0x42, 0x42, 0x4f, 0x2a, 0x64, 0x01,
- 0x1e, 0x3f, 0xec, 0x32, 0x52, 0xd8, 0x41, 0x48, 0xc8, 0x65, 0xa4, 0x90, 0x83, 0x90, 0x70, 0xcb,
- 0x48, 0xe1, 0x06, 0x21, 0xa1, 0x96, 0x91, 0x42, 0x0d, 0x42, 0xc2, 0x2c, 0x23, 0x85, 0x19, 0x84,
- 0x84, 0x58, 0x46, 0x0a, 0x31, 0x08, 0x09, 0xaf, 0x8c, 0x14, 0x5e, 0x10, 0x12, 0x5a, 0xc7, 0xe5,
- 0xd0, 0x82, 0xb0, 0xb0, 0x3a, 0x2e, 0x87, 0x15, 0x84, 0x85, 0xd4, 0x9d, 0x72, 0x48, 0x0d, 0xde,
- 0x7c, 0x69, 0xa6, 0x1f, 0x0f, 0x05, 0xa2, 0xe9, 0xb8, 0x1c, 0x4d, 0x10, 0x16, 0x49, 0xc7, 0xe5,
- 0x48, 0x82, 0xb0, 0x28, 0x3a, 0x2e, 0x47, 0x11, 0x84, 0x45, 0xd0, 0x0b, 0x72, 0x04, 0xf9, 0x77,
- 0x7c, 0x32, 0xd2, 0x91, 0x62, 0x54, 0x04, 0xa9, 0x31, 0x22, 0x48, 0x8d, 0x11, 0x41, 0x6a, 0x8c,
- 0x08, 0x52, 0x63, 0x44, 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x18, 0x11, 0xa4, 0xc6, 0x88, 0x20, 0x35,
- 0x4e, 0x04, 0xa9, 0xb1, 0x22, 0x48, 0xed, 0x15, 0x41, 0xc7, 0xe5, 0x1b, 0x0f, 0x10, 0x56, 0x90,
- 0x8e, 0xcb, 0x47, 0x9f, 0xd1, 0x21, 0xa4, 0xc6, 0x0a, 0x21, 0xb5, 0x57, 0x08, 0x7d, 0x5b, 0x85,
- 0x09, 0x21, 0x84, 0xd8, 0xf9, 0xd0, 0x9b, 0x55, 0x81, 0xce, 0xc6, 0xb8, 0x60, 0x11, 0x16, 0x53,
- 0x67, 0x63, 0x1c, 0x52, 0xef, 0x15, 0x67, 0xdd, 0x55, 0xa8, 0x14, 0xa3, 0x0a, 0x5d, 0xf2, 0x62,
- 0xe8, 0x6c, 0x8c, 0x8b, 0x17, 0xdd, 0xb1, 0x77, 0x7e, 0xaf, 0x22, 0xf0, 0x70, 0xac, 0x22, 0xb0,
- 0x1c, 0xab, 0x08, 0x5c, 0xf1, 0x3d, 0xf8, 0xc1, 0x04, 0x1c, 0xf4, 0x3d, 0x48, 0x3f, 0x91, 0x1f,
- 0xd0, 0xca, 0x04, 0x8e, 0xa8, 0x74, 0x7e, 0x6c, 0x13, 0x70, 0x63, 0x62, 0xb9, 0xa6, 0xaf, 0x89,
- 0x87, 0x55, 0xd9, 0xfd, 0x1e, 0xe0, 0x04, 0x3c, 0xce, 0x36, 0x43, 0x8f, 0x83, 0xba, 0x5c, 0x73,
- 0x48, 0xb5, 0x08, 0x7b, 0x6c, 0xc1, 0xc0, 0x64, 0xdd, 0x80, 0x01, 0xc2, 0xee, 0x10, 0xf7, 0xde,
- 0xca, 0x83, 0x8b, 0x06, 0x93, 0x94, 0x79, 0x41, 0x81, 0xa3, 0x42, 0x28, 0xbf, 0x39, 0x47, 0x06,
- 0x17, 0x63, 0x1d, 0x19, 0x08, 0x09, 0xe2, 0x1f, 0x1f, 0xdc, 0xdd, 0x7d, 0x52, 0x1d, 0xcc, 0x12,
- 0xf9, 0x28, 0xe1, 0xff, 0xc0, 0xa8, 0x3f, 0x03, 0xf2, 0xce, 0x76, 0x26, 0x7a, 0x37, 0x33, 0x2c,
- 0x35, 0xcf, 0x48, 0xbb, 0x68, 0x7b, 0xc2, 0xbc, 0x6c, 0xcd, 0x64, 0x61, 0xac, 0x2c, 0xfe, 0xe5,
- 0x53, 0xd4, 0x66, 0x44, 0x0a, 0xb7, 0xe6, 0x37, 0x3e, 0x3d, 0xd3, 0x97, 0xb9, 0x0f, 0x86, 0x83,
- 0x7f, 0xdc, 0x24, 0x01, 0x07, 0x39, 0x30, 0x9b, 0x7c, 0x11, 0x73, 0xff, 0x8e, 0x02, 0x87, 0x82,
- 0xec, 0x8f, 0xd4, 0xdd, 0x9d, 0x65, 0x0b, 0xf7, 0xf4, 0x0f, 0x40, 0x0a, 0x31, 0xc7, 0xb1, 0xdf,
- 0xc2, 0x61, 0xef, 0x91, 0xa1, 0xec, 0xf3, 0xe4, 0x5f, 0xc3, 0x83, 0x48, 0xbb, 0x20, 0xfc, 0xb1,
- 0x8b, 0x53, 0x77, 0x41, 0x3f, 0x95, 0x2f, 0xea, 0x35, 0x22, 0xe9, 0xf5, 0xb9, 0x10, 0xbd, 0x48,
- 0x1c, 0xe9, 0x57, 0x04, 0xbd, 0x02, 0xaf, 0xab, 0xa1, 0xec, 0xf3, 0x3c, 0xf8, 0xf2, 0x29, 0xdc,
- 0xff, 0x91, 0x88, 0x8a, 0x56, 0x72, 0x16, 0x52, 0x25, 0x99, 0x27, 0x5c, 0xcf, 0x22, 0x24, 0xcb,
- 0x76, 0x8d, 0xfc, 0x4a, 0x0f, 0xf9, 0x59, 0x6a, 0x66, 0x64, 0xf6, 0x1b, 0xd5, 0x27, 0x20, 0x55,
- 0xd8, 0xa9, 0x37, 0x6a, 0x6d, 0x64, 0xb1, 0x33, 0x7b, 0xb6, 0x85, 0x8e, 0x31, 0x86, 0x47, 0xcb,
- 0x14, 0x60, 0xbc, 0x6c, 0x5b, 0xf9, 0x5d, 0x37, 0x58, 0x37, 0xe6, 0xa5, 0x14, 0x61, 0x67, 0x3e,
- 0xe4, 0x8f, 0x41, 0x30, 0x43, 0xbe, 0xff, 0x7b, 0x2f, 0xcd, 0x28, 0x1b, 0xde, 0xfe, 0xf9, 0x0a,
- 0x1c, 0x66, 0xe9, 0xd3, 0x25, 0x6a, 0x31, 0x4a, 0xd4, 0x20, 0x3b, 0xa7, 0x0e, 0x88, 0x5b, 0xc6,
- 0xe2, 0xac, 0x50, 0x71, 0x6f, 0x4c, 0x33, 0xdc, 0x14, 0xed, 0xa9, 0x99, 0xba, 0x2f, 0xcd, 0x42,
- 0xc5, 0xcd, 0x47, 0x89, 0x93, 0x34, 0xbb, 0x13, 0x06, 0x3d, 0x5a, 0x20, 0x1a, 0x82, 0x99, 0xb2,
- 0x38, 0x97, 0x81, 0xa1, 0x40, 0xc2, 0xea, 0xfd, 0xa0, 0xe4, 0xb4, 0x3e, 0xfc, 0x5f, 0x5e, 0x53,
- 0xf0, 0x7f, 0x05, 0x2d, 0x31, 0x77, 0x17, 0x8c, 0x49, 0xfb, 0x97, 0x98, 0x52, 0xd4, 0x00, 0xff,
- 0x57, 0xd2, 0x86, 0xa6, 0x92, 0x1f, 0xfa, 0xec, 0x74, 0xdf, 0xdc, 0x45, 0xd0, 0xbb, 0x77, 0x3a,
- 0xf5, 0x01, 0x48, 0xe4, 0xb0, 0xc8, 0xc3, 0x90, 0xc8, 0xe7, 0x35, 0x65, 0x6a, 0xec, 0x97, 0x3f,
- 0x79, 0x74, 0x28, 0x4f, 0xfe, 0x72, 0xfb, 0x1a, 0x72, 0xf3, 0x79, 0x06, 0x7e, 0x10, 0x0e, 0x85,
- 0xee, 0x94, 0x62, 0x7c, 0xa1, 0x40, 0xf1, 0xc5, 0x62, 0x17, 0xbe, 0x58, 0x24, 0x78, 0x25, 0xcb,
- 0x4f, 0x9c, 0x73, 0x7a, 0xc8, 0x2e, 0x63, 0xba, 0x16, 0x38, 0xe1, 0xce, 0x65, 0x1f, 0x64, 0xbc,
- 0xf9, 0x50, 0x5e, 0x14, 0x71, 0x62, 0x9d, 0xcf, 0x16, 0x18, 0xbe, 0x10, 0x8a, 0xdf, 0x92, 0x8e,
- 0x55, 0xc5, 0x15, 0x82, 0x09, 0x29, 0x78, 0x0a, 0x17, 0x43, 0x85, 0xec, 0x04, 0x2e, 0xbb, 0x17,
- 0x3d, 0x85, 0x4b, 0xa1, 0xbc, 0xf5, 0x88, 0x4b, 0x5f, 0xa5, 0xec, 0x49, 0xb6, 0xc8, 0xe7, 0x4e,
- 0xe9, 0x87, 0x78, 0x8e, 0x0a, 0x15, 0x98, 0x19, 0x88, 0x73, 0x65, 0x0b, 0x0c, 0x90, 0xef, 0x09,
- 0xe8, 0x6d, 0x25, 0x8e, 0xcc, 0x3e, 0xcc, 0x84, 0x14, 0x7a, 0x0a, 0x89, 0x30, 0x15, 0x87, 0xe7,
- 0x37, 0x6e, 0xbc, 0x3c, 0xdd, 0xf7, 0xe2, 0xcb, 0xd3, 0x7d, 0xff, 0xf0, 0xf2, 0x74, 0xdf, 0xf7,
- 0x5f, 0x9e, 0x56, 0x7e, 0xf8, 0xf2, 0xb4, 0xf2, 0xe3, 0x97, 0xa7, 0x95, 0x9f, 0xbe, 0x3c, 0xad,
- 0x3c, 0x73, 0x73, 0x5a, 0x79, 0xfe, 0xe6, 0xb4, 0xf2, 0xe5, 0x9b, 0xd3, 0xca, 0x37, 0x6e, 0x4e,
- 0x2b, 0x2f, 0xdc, 0x9c, 0x56, 0x6e, 0xdc, 0x9c, 0x56, 0x5e, 0xbc, 0x39, 0xdd, 0xf7, 0xfd, 0x9b,
- 0xd3, 0xca, 0x0f, 0x6f, 0x4e, 0xf7, 0xfd, 0xf8, 0xe6, 0xb4, 0xf2, 0xd3, 0x9b, 0xd3, 0x7d, 0xcf,
- 0xbc, 0x32, 0xdd, 0xf7, 0xdc, 0x2b, 0xd3, 0x7d, 0xcf, 0xbf, 0x32, 0xad, 0xfc, 0x77, 0x00, 0x00,
- 0x00, 0xff, 0xff, 0x09, 0x02, 0x7e, 0xa3, 0xea, 0x68, 0x00, 0x00,
+ // 6764 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x7b, 0x6c, 0x1c, 0xd7,
+ 0x75, 0x37, 0x67, 0x67, 0x49, 0x2d, 0x0f, 0x5f, 0xc3, 0xa1, 0x44, 0xad, 0x69, 0x99, 0x94, 0xd6,
+ 0xb2, 0x4c, 0xd3, 0x36, 0x45, 0x51, 0xd4, 0x6b, 0x15, 0xdb, 0xdf, 0xbe, 0x24, 0x53, 0x11, 0x97,
+ 0xcc, 0x90, 0x8c, 0xad, 0xe4, 0xfb, 0xb0, 0x18, 0xed, 0x5e, 0x92, 0x6b, 0xef, 0xce, 0x6c, 0x76,
+ 0x66, 0x6d, 0xd3, 0xf8, 0xf0, 0xc1, 0x5f, 0xd2, 0xa6, 0x49, 0xdf, 0x6d, 0x5a, 0x34, 0x49, 0x13,
+ 0xc7, 0x49, 0x90, 0xc4, 0x49, 0x5f, 0x49, 0x9b, 0xa6, 0x49, 0x5a, 0x34, 0xfe, 0x27, 0xad, 0x0a,
+ 0x14, 0x85, 0xd3, 0xbf, 0x8a, 0xa0, 0x30, 0x62, 0x39, 0x40, 0xd3, 0xd6, 0x6d, 0xd3, 0xd4, 0x40,
+ 0x03, 0x38, 0x7f, 0x14, 0xf7, 0x35, 0x33, 0xf7, 0xee, 0x2c, 0x67, 0x68, 0xd9, 0x4e, 0xfe, 0x91,
+ 0x76, 0xef, 0x39, 0xbf, 0x33, 0xe7, 0x9e, 0xd7, 0x3d, 0x73, 0xef, 0xe5, 0xc2, 0x8d, 0x2c, 0x1c,
+ 0xdd, 0xb6, 0xed, 0xed, 0x06, 0x3a, 0xd9, 0x6a, 0xdb, 0xae, 0x7d, 0xbd, 0xb3, 0x75, 0xb2, 0x86,
+ 0x9c, 0x6a, 0xbb, 0xde, 0x72, 0xed, 0xf6, 0x3c, 0x19, 0xd3, 0xc7, 0x28, 0xc7, 0x3c, 0xe7, 0xc8,
+ 0xac, 0xc0, 0xf8, 0xa5, 0x7a, 0x03, 0x15, 0x3d, 0xc6, 0x75, 0xe4, 0xea, 0xe7, 0x21, 0xb9, 0x55,
+ 0x6f, 0xa0, 0xb4, 0x72, 0x54, 0x9d, 0x1d, 0x5a, 0x3c, 0x3e, 0x2f, 0x81, 0xe6, 0x45, 0xc4, 0x1a,
+ 0x1e, 0x36, 0x08, 0x22, 0xf3, 0xfd, 0x24, 0x4c, 0x84, 0x50, 0x75, 0x1d, 0x92, 0x96, 0xd9, 0xc4,
+ 0x12, 0x95, 0xd9, 0x41, 0x83, 0x7c, 0xd6, 0xd3, 0x70, 0xa0, 0x65, 0x56, 0x1f, 0x37, 0xb7, 0x51,
+ 0x3a, 0x41, 0x86, 0xf9, 0x57, 0x7d, 0x1a, 0xa0, 0x86, 0x5a, 0xc8, 0xaa, 0x21, 0xab, 0xba, 0x9b,
+ 0x56, 0x8f, 0xaa, 0xb3, 0x83, 0x46, 0x60, 0x44, 0xbf, 0x17, 0xc6, 0x5b, 0x9d, 0xeb, 0x8d, 0x7a,
+ 0xb5, 0x12, 0x60, 0x83, 0xa3, 0xea, 0x6c, 0xbf, 0xa1, 0x51, 0x42, 0xd1, 0x67, 0xbe, 0x1b, 0xc6,
+ 0x9e, 0x44, 0xe6, 0xe3, 0x41, 0xd6, 0x21, 0xc2, 0x3a, 0x8a, 0x87, 0x03, 0x8c, 0x05, 0x18, 0x6e,
+ 0x22, 0xc7, 0x31, 0xb7, 0x51, 0xc5, 0xdd, 0x6d, 0xa1, 0x74, 0x92, 0xcc, 0xfe, 0x68, 0xd7, 0xec,
+ 0xe5, 0x99, 0x0f, 0x31, 0xd4, 0xc6, 0x6e, 0x0b, 0xe9, 0x39, 0x18, 0x44, 0x56, 0xa7, 0x49, 0x25,
+ 0xf4, 0xf7, 0xb0, 0x5f, 0xc9, 0xea, 0x34, 0x65, 0x29, 0x29, 0x0c, 0x63, 0x22, 0x0e, 0x38, 0xa8,
+ 0xfd, 0x44, 0xbd, 0x8a, 0xd2, 0x03, 0x44, 0xc0, 0xdd, 0x5d, 0x02, 0xd6, 0x29, 0x5d, 0x96, 0xc1,
+ 0x71, 0x7a, 0x01, 0x06, 0xd1, 0x53, 0x2e, 0xb2, 0x9c, 0xba, 0x6d, 0xa5, 0x0f, 0x10, 0x21, 0x77,
+ 0x85, 0x78, 0x11, 0x35, 0x6a, 0xb2, 0x08, 0x1f, 0xa7, 0x9f, 0x85, 0x03, 0x76, 0xcb, 0xad, 0xdb,
+ 0x96, 0x93, 0x4e, 0x1d, 0x55, 0x66, 0x87, 0x16, 0x8f, 0x84, 0x06, 0xc2, 0x2a, 0xe5, 0x31, 0x38,
+ 0xb3, 0xbe, 0x0c, 0x9a, 0x63, 0x77, 0xda, 0x55, 0x54, 0xa9, 0xda, 0x35, 0x54, 0xa9, 0x5b, 0x5b,
+ 0x76, 0x7a, 0x90, 0x08, 0x98, 0xe9, 0x9e, 0x08, 0x61, 0x2c, 0xd8, 0x35, 0xb4, 0x6c, 0x6d, 0xd9,
+ 0xc6, 0xa8, 0x23, 0x7c, 0xd7, 0x27, 0x61, 0xc0, 0xd9, 0xb5, 0x5c, 0xf3, 0xa9, 0xf4, 0x30, 0x89,
+ 0x10, 0xf6, 0x2d, 0xf3, 0x8d, 0x01, 0x18, 0x8b, 0x13, 0x62, 0x17, 0xa1, 0x7f, 0x0b, 0xcf, 0x32,
+ 0x9d, 0xd8, 0x8f, 0x0d, 0x28, 0x46, 0x34, 0xe2, 0xc0, 0x1b, 0x34, 0x62, 0x0e, 0x86, 0x2c, 0xe4,
+ 0xb8, 0xa8, 0x46, 0x23, 0x42, 0x8d, 0x19, 0x53, 0x40, 0x41, 0xdd, 0x21, 0x95, 0x7c, 0x43, 0x21,
+ 0xf5, 0x28, 0x8c, 0x79, 0x2a, 0x55, 0xda, 0xa6, 0xb5, 0xcd, 0x63, 0xf3, 0x64, 0x94, 0x26, 0xf3,
+ 0x25, 0x8e, 0x33, 0x30, 0xcc, 0x18, 0x45, 0xc2, 0x77, 0xbd, 0x08, 0x60, 0x5b, 0xc8, 0xde, 0xaa,
+ 0xd4, 0x50, 0xb5, 0x91, 0x4e, 0xf5, 0xb0, 0xd2, 0x2a, 0x66, 0xe9, 0xb2, 0x92, 0x4d, 0x47, 0xab,
+ 0x0d, 0xfd, 0x82, 0x1f, 0x6a, 0x07, 0x7a, 0x44, 0xca, 0x0a, 0x4d, 0xb2, 0xae, 0x68, 0xdb, 0x84,
+ 0xd1, 0x36, 0xc2, 0x71, 0x8f, 0x6a, 0x6c, 0x66, 0x83, 0x44, 0x89, 0xf9, 0xc8, 0x99, 0x19, 0x0c,
+ 0x46, 0x27, 0x36, 0xd2, 0x0e, 0x7e, 0xd5, 0xef, 0x04, 0x6f, 0xa0, 0x42, 0xc2, 0x0a, 0x48, 0x15,
+ 0x1a, 0xe6, 0x83, 0x65, 0xb3, 0x89, 0xa6, 0x9e, 0x86, 0x51, 0xd1, 0x3c, 0xfa, 0x41, 0xe8, 0x77,
+ 0x5c, 0xb3, 0xed, 0x92, 0x28, 0xec, 0x37, 0xe8, 0x17, 0x5d, 0x03, 0x15, 0x59, 0x35, 0x52, 0xe5,
+ 0xfa, 0x0d, 0xfc, 0x51, 0xff, 0x5f, 0xfe, 0x84, 0x55, 0x32, 0xe1, 0x13, 0xdd, 0x1e, 0x15, 0x24,
+ 0xcb, 0xf3, 0x9e, 0x3a, 0x07, 0x23, 0xc2, 0x04, 0xe2, 0x3e, 0x3a, 0xf3, 0x7f, 0xe1, 0x50, 0xa8,
+ 0x68, 0xfd, 0x51, 0x38, 0xd8, 0xb1, 0xea, 0x96, 0x8b, 0xda, 0xad, 0x36, 0xc2, 0x11, 0x4b, 0x1f,
+ 0x95, 0xfe, 0xa7, 0x03, 0x3d, 0x62, 0x6e, 0x33, 0xc8, 0x4d, 0xa5, 0x18, 0x13, 0x9d, 0xee, 0xc1,
+ 0xb9, 0xc1, 0xd4, 0x0f, 0x0e, 0x68, 0xcf, 0x3c, 0xf3, 0xcc, 0x33, 0x89, 0xcc, 0x47, 0x07, 0xe0,
+ 0x60, 0x58, 0xce, 0x84, 0xa6, 0xef, 0x24, 0x0c, 0x58, 0x9d, 0xe6, 0x75, 0xd4, 0x26, 0x46, 0xea,
+ 0x37, 0xd8, 0x37, 0x3d, 0x07, 0xfd, 0x0d, 0xf3, 0x3a, 0x6a, 0xa4, 0x93, 0x47, 0x95, 0xd9, 0xd1,
+ 0xc5, 0x7b, 0x63, 0x65, 0xe5, 0xfc, 0x55, 0x0c, 0x31, 0x28, 0x52, 0x7f, 0x10, 0x92, 0xac, 0x44,
+ 0x63, 0x09, 0x73, 0xf1, 0x24, 0xe0, 0x5c, 0x32, 0x08, 0x4e, 0xbf, 0x1d, 0x06, 0xf1, 0xff, 0x34,
+ 0x36, 0x06, 0x88, 0xce, 0x29, 0x3c, 0x80, 0xe3, 0x42, 0x9f, 0x82, 0x14, 0x49, 0x93, 0x1a, 0xe2,
+ 0x4b, 0x9b, 0xf7, 0x1d, 0x07, 0x56, 0x0d, 0x6d, 0x99, 0x9d, 0x86, 0x5b, 0x79, 0xc2, 0x6c, 0x74,
+ 0x10, 0x09, 0xf8, 0x41, 0x63, 0x98, 0x0d, 0xbe, 0x1b, 0x8f, 0xe9, 0x33, 0x30, 0x44, 0xb3, 0xaa,
+ 0x6e, 0xd5, 0xd0, 0x53, 0xa4, 0x7a, 0xf6, 0x1b, 0x34, 0xd1, 0x96, 0xf1, 0x08, 0x7e, 0xfc, 0x63,
+ 0x8e, 0x6d, 0xf1, 0xd0, 0x24, 0x8f, 0xc0, 0x03, 0xe4, 0xf1, 0xe7, 0xe4, 0xc2, 0x7d, 0x47, 0xf8,
+ 0xf4, 0xe4, 0x98, 0xca, 0x7c, 0x2d, 0x01, 0x49, 0x52, 0x2f, 0xc6, 0x60, 0x68, 0xe3, 0xda, 0x5a,
+ 0xa9, 0x52, 0x5c, 0xdd, 0xcc, 0x5f, 0x2d, 0x69, 0x8a, 0x3e, 0x0a, 0x40, 0x06, 0x2e, 0x5d, 0x5d,
+ 0xcd, 0x6d, 0x68, 0x09, 0xef, 0xfb, 0x72, 0x79, 0xe3, 0xec, 0x92, 0xa6, 0x7a, 0x80, 0x4d, 0x3a,
+ 0x90, 0x0c, 0x32, 0x9c, 0x5e, 0xd4, 0xfa, 0x75, 0x0d, 0x86, 0xa9, 0x80, 0xe5, 0x47, 0x4b, 0xc5,
+ 0xb3, 0x4b, 0xda, 0x80, 0x38, 0x72, 0x7a, 0x51, 0x3b, 0xa0, 0x8f, 0xc0, 0x20, 0x19, 0xc9, 0xaf,
+ 0xae, 0x5e, 0xd5, 0x52, 0x9e, 0xcc, 0xf5, 0x0d, 0x63, 0xb9, 0x7c, 0x59, 0x1b, 0xf4, 0x64, 0x5e,
+ 0x36, 0x56, 0x37, 0xd7, 0x34, 0xf0, 0x24, 0xac, 0x94, 0xd6, 0xd7, 0x73, 0x97, 0x4b, 0xda, 0x90,
+ 0xc7, 0x91, 0xbf, 0xb6, 0x51, 0x5a, 0xd7, 0x86, 0x05, 0xb5, 0x4e, 0x2f, 0x6a, 0x23, 0xde, 0x23,
+ 0x4a, 0xe5, 0xcd, 0x15, 0x6d, 0x54, 0x1f, 0x87, 0x11, 0xfa, 0x08, 0xae, 0xc4, 0x98, 0x34, 0x74,
+ 0x76, 0x49, 0xd3, 0x7c, 0x45, 0xa8, 0x94, 0x71, 0x61, 0xe0, 0xec, 0x92, 0xa6, 0x67, 0x0a, 0xd0,
+ 0x4f, 0xa2, 0x4b, 0xd7, 0x61, 0xf4, 0x6a, 0x2e, 0x5f, 0xba, 0x5a, 0x59, 0x5d, 0xdb, 0x58, 0x5e,
+ 0x2d, 0xe7, 0xae, 0x6a, 0x8a, 0x3f, 0x66, 0x94, 0xde, 0xb5, 0xb9, 0x6c, 0x94, 0x8a, 0x5a, 0x22,
+ 0x38, 0xb6, 0x56, 0xca, 0x6d, 0x94, 0x8a, 0x9a, 0x9a, 0xa9, 0xc2, 0xc1, 0xb0, 0x3a, 0x19, 0x9a,
+ 0x19, 0x01, 0x17, 0x27, 0x7a, 0xb8, 0x98, 0xc8, 0xea, 0x72, 0xf1, 0x2b, 0x09, 0x98, 0x08, 0x59,
+ 0x2b, 0x42, 0x1f, 0xf2, 0x10, 0xf4, 0xd3, 0x10, 0xa5, 0xab, 0xe7, 0x3d, 0xa1, 0x8b, 0x0e, 0x09,
+ 0xd8, 0xae, 0x15, 0x94, 0xe0, 0x82, 0x1d, 0x84, 0xda, 0xa3, 0x83, 0xc0, 0x22, 0xba, 0x6a, 0xfa,
+ 0xff, 0xe9, 0xaa, 0xe9, 0x74, 0xd9, 0x3b, 0x1b, 0x67, 0xd9, 0x23, 0x63, 0xfb, 0xab, 0xed, 0xfd,
+ 0x21, 0xb5, 0xfd, 0x22, 0x8c, 0x77, 0x09, 0x8a, 0x5d, 0x63, 0x3f, 0xa0, 0x40, 0xba, 0x97, 0x71,
+ 0x22, 0x2a, 0x5d, 0x42, 0xa8, 0x74, 0x17, 0x65, 0x0b, 0x1e, 0xeb, 0xed, 0x84, 0x2e, 0x5f, 0x7f,
+ 0x41, 0x81, 0xc9, 0xf0, 0x4e, 0x31, 0x54, 0x87, 0x07, 0x61, 0xa0, 0x89, 0xdc, 0x1d, 0x9b, 0x77,
+ 0x4b, 0x27, 0x42, 0xd6, 0x60, 0x4c, 0x96, 0x9d, 0xcd, 0x50, 0xc1, 0x45, 0x5c, 0xed, 0xd5, 0xee,
+ 0x51, 0x6d, 0xba, 0x34, 0xfd, 0x70, 0x02, 0x0e, 0x85, 0x0a, 0x0f, 0x55, 0xf4, 0x0e, 0x80, 0xba,
+ 0xd5, 0xea, 0xb8, 0xb4, 0x23, 0xa2, 0x05, 0x76, 0x90, 0x8c, 0x90, 0xe2, 0x85, 0x8b, 0x67, 0xc7,
+ 0xf5, 0xe8, 0x2a, 0xa1, 0x03, 0x1d, 0x22, 0x0c, 0xe7, 0x7d, 0x45, 0x93, 0x44, 0xd1, 0xe9, 0x1e,
+ 0x33, 0xed, 0x0a, 0xcc, 0x05, 0xd0, 0xaa, 0x8d, 0x3a, 0xb2, 0xdc, 0x8a, 0xe3, 0xb6, 0x91, 0xd9,
+ 0xac, 0x5b, 0xdb, 0x64, 0x05, 0x49, 0x65, 0xfb, 0xb7, 0xcc, 0x86, 0x83, 0x8c, 0x31, 0x4a, 0x5e,
+ 0xe7, 0x54, 0x8c, 0x20, 0x01, 0xd4, 0x0e, 0x20, 0x06, 0x04, 0x04, 0x25, 0x7b, 0x88, 0xcc, 0x2f,
+ 0x0f, 0xc2, 0x50, 0xa0, 0xaf, 0xd6, 0x8f, 0xc1, 0xf0, 0x63, 0xe6, 0x13, 0x66, 0x85, 0xbf, 0x2b,
+ 0x51, 0x4b, 0x0c, 0xe1, 0xb1, 0x35, 0xf6, 0xbe, 0xb4, 0x00, 0x07, 0x09, 0x8b, 0xdd, 0x71, 0x51,
+ 0xbb, 0x52, 0x6d, 0x98, 0x8e, 0x43, 0x8c, 0x96, 0x22, 0xac, 0x3a, 0xa6, 0xad, 0x62, 0x52, 0x81,
+ 0x53, 0xf4, 0x33, 0x30, 0x41, 0x10, 0xcd, 0x4e, 0xc3, 0xad, 0xb7, 0x1a, 0xa8, 0x82, 0xdf, 0xde,
+ 0x1c, 0xb2, 0x92, 0x78, 0x9a, 0x8d, 0x63, 0x8e, 0x15, 0xc6, 0x80, 0x35, 0x72, 0xf4, 0x22, 0xdc,
+ 0x41, 0x60, 0xdb, 0xc8, 0x42, 0x6d, 0xd3, 0x45, 0x15, 0xf4, 0xbe, 0x8e, 0xd9, 0x70, 0x2a, 0xa6,
+ 0x55, 0xab, 0xec, 0x98, 0xce, 0x4e, 0xfa, 0x20, 0x16, 0x90, 0x4f, 0xa4, 0x15, 0xe3, 0x36, 0xcc,
+ 0x78, 0x99, 0xf1, 0x95, 0x08, 0x5b, 0xce, 0xaa, 0x3d, 0x6c, 0x3a, 0x3b, 0x7a, 0x16, 0x26, 0x89,
+ 0x14, 0xc7, 0x6d, 0xd7, 0xad, 0xed, 0x4a, 0x75, 0x07, 0x55, 0x1f, 0xaf, 0x74, 0xdc, 0xad, 0xf3,
+ 0xe9, 0xdb, 0x83, 0xcf, 0x27, 0x1a, 0xae, 0x13, 0x9e, 0x02, 0x66, 0xd9, 0x74, 0xb7, 0xce, 0xeb,
+ 0xeb, 0x30, 0x8c, 0x9d, 0xd1, 0xac, 0x3f, 0x8d, 0x2a, 0x5b, 0x76, 0x9b, 0x2c, 0x8d, 0xa3, 0x21,
+ 0xa5, 0x29, 0x60, 0xc1, 0xf9, 0x55, 0x06, 0x58, 0xb1, 0x6b, 0x28, 0xdb, 0xbf, 0xbe, 0x56, 0x2a,
+ 0x15, 0x8d, 0x21, 0x2e, 0xe5, 0x92, 0xdd, 0xc6, 0x01, 0xb5, 0x6d, 0x7b, 0x06, 0x1e, 0xa2, 0x01,
+ 0xb5, 0x6d, 0x73, 0xf3, 0x9e, 0x81, 0x89, 0x6a, 0x95, 0xce, 0xb9, 0x5e, 0xad, 0xb0, 0x77, 0x2c,
+ 0x27, 0xad, 0x09, 0xc6, 0xaa, 0x56, 0x2f, 0x53, 0x06, 0x16, 0xe3, 0x8e, 0x7e, 0x01, 0x0e, 0xf9,
+ 0xc6, 0x0a, 0x02, 0xc7, 0xbb, 0x66, 0x29, 0x43, 0xcf, 0xc0, 0x44, 0x6b, 0xb7, 0x1b, 0xa8, 0x0b,
+ 0x4f, 0x6c, 0xed, 0xca, 0xb0, 0x73, 0x70, 0xb0, 0xb5, 0xd3, 0xea, 0xc6, 0xcd, 0x05, 0x71, 0x7a,
+ 0x6b, 0xa7, 0x25, 0x03, 0xef, 0x22, 0x2f, 0xdc, 0x6d, 0x54, 0x35, 0x5d, 0x54, 0x4b, 0x1f, 0x0e,
+ 0xb2, 0x07, 0x08, 0xfa, 0x49, 0xd0, 0xaa, 0xd5, 0x0a, 0xb2, 0xcc, 0xeb, 0x0d, 0x54, 0x31, 0xdb,
+ 0xc8, 0x32, 0x9d, 0xf4, 0x4c, 0x90, 0x79, 0xb4, 0x5a, 0x2d, 0x11, 0x6a, 0x8e, 0x10, 0xf5, 0x39,
+ 0x18, 0xb7, 0xaf, 0x3f, 0x56, 0xa5, 0x21, 0x59, 0x69, 0xb5, 0xd1, 0x56, 0xfd, 0xa9, 0xf4, 0x71,
+ 0x62, 0xdf, 0x31, 0x4c, 0x20, 0x01, 0xb9, 0x46, 0x86, 0xf5, 0x7b, 0x40, 0xab, 0x3a, 0x3b, 0x66,
+ 0xbb, 0x45, 0x6a, 0xb2, 0xd3, 0x32, 0xab, 0x28, 0x7d, 0x17, 0x65, 0xa5, 0xe3, 0x65, 0x3e, 0x8c,
+ 0x53, 0xc2, 0x79, 0xb2, 0xbe, 0xe5, 0x72, 0x89, 0x77, 0xd3, 0x94, 0x20, 0x63, 0x4c, 0xda, 0x2c,
+ 0x68, 0xd8, 0x14, 0xc2, 0x83, 0x67, 0x09, 0xdb, 0x68, 0x6b, 0xa7, 0x15, 0x7c, 0xee, 0x9d, 0x30,
+ 0x82, 0x39, 0xfd, 0x87, 0xde, 0x43, 0x1b, 0xb2, 0xd6, 0x4e, 0xe0, 0x89, 0x4b, 0x30, 0x89, 0x99,
+ 0x9a, 0xc8, 0x35, 0x6b, 0xa6, 0x6b, 0x06, 0xb8, 0xef, 0x23, 0xdc, 0xd8, 0xee, 0x2b, 0x8c, 0x28,
+ 0xe8, 0xd9, 0xee, 0x5c, 0xdf, 0xf5, 0x22, 0xeb, 0x7e, 0xaa, 0x27, 0x1e, 0xe3, 0xb1, 0xf5, 0x96,
+ 0x35, 0xdd, 0x99, 0x2c, 0x0c, 0x07, 0x03, 0x5f, 0x1f, 0x04, 0x1a, 0xfa, 0x9a, 0x82, 0xbb, 0xa0,
+ 0xc2, 0x6a, 0x11, 0xf7, 0x2f, 0xef, 0x29, 0x69, 0x09, 0xdc, 0x47, 0x5d, 0x5d, 0xde, 0x28, 0x55,
+ 0x8c, 0xcd, 0xf2, 0xc6, 0xf2, 0x4a, 0x49, 0x53, 0x83, 0x0d, 0xfb, 0xb7, 0x13, 0x30, 0x2a, 0xbe,
+ 0x7b, 0xe9, 0xef, 0x80, 0xc3, 0x7c, 0xa3, 0xc4, 0x41, 0x6e, 0xe5, 0xc9, 0x7a, 0x9b, 0xe4, 0x62,
+ 0xd3, 0xa4, 0xeb, 0xa2, 0x17, 0x0d, 0x07, 0x19, 0xd7, 0x3a, 0x72, 0x1f, 0xa9, 0xb7, 0x71, 0xa6,
+ 0x35, 0x4d, 0x57, 0xbf, 0x0a, 0x33, 0x96, 0x5d, 0x71, 0x5c, 0xd3, 0xaa, 0x99, 0xed, 0x5a, 0xc5,
+ 0xdf, 0xa2, 0xaa, 0x98, 0xd5, 0x2a, 0x72, 0x1c, 0x9b, 0xae, 0x81, 0x9e, 0x94, 0x23, 0x96, 0xbd,
+ 0xce, 0x98, 0xfd, 0xc5, 0x21, 0xc7, 0x58, 0xa5, 0xc8, 0x55, 0x7b, 0x45, 0xee, 0xed, 0x30, 0xd8,
+ 0x34, 0x5b, 0x15, 0x64, 0xb9, 0xed, 0x5d, 0xd2, 0x71, 0xa7, 0x8c, 0x54, 0xd3, 0x6c, 0x95, 0xf0,
+ 0xf7, 0xb7, 0xe7, 0xc5, 0xe7, 0x1f, 0x55, 0x18, 0x0e, 0x76, 0xdd, 0xf8, 0x25, 0xa6, 0x4a, 0x16,
+ 0x28, 0x85, 0x94, 0xb0, 0x3b, 0xf7, 0xec, 0xd1, 0xe7, 0x0b, 0x78, 0xe5, 0xca, 0x0e, 0xd0, 0x5e,
+ 0xd8, 0xa0, 0x48, 0xdc, 0x35, 0xe0, 0xd0, 0x42, 0xb4, 0xf7, 0x48, 0x19, 0xec, 0x9b, 0x7e, 0x19,
+ 0x06, 0x1e, 0x73, 0x88, 0xec, 0x01, 0x22, 0xfb, 0xf8, 0xde, 0xb2, 0xaf, 0xac, 0x13, 0xe1, 0x83,
+ 0x57, 0xd6, 0x2b, 0xe5, 0x55, 0x63, 0x25, 0x77, 0xd5, 0x60, 0x70, 0xfd, 0x36, 0x48, 0x36, 0xcc,
+ 0xa7, 0x77, 0xc5, 0x35, 0x8e, 0x0c, 0xc5, 0x35, 0xfc, 0x6d, 0x90, 0x7c, 0x12, 0x99, 0x8f, 0x8b,
+ 0x2b, 0x0b, 0x19, 0x7a, 0x0b, 0x43, 0xff, 0x24, 0xf4, 0x13, 0x7b, 0xe9, 0x00, 0xcc, 0x62, 0x5a,
+ 0x9f, 0x9e, 0x82, 0x64, 0x61, 0xd5, 0xc0, 0xe1, 0xaf, 0xc1, 0x30, 0x1d, 0xad, 0xac, 0x2d, 0x97,
+ 0x0a, 0x25, 0x2d, 0x91, 0x39, 0x03, 0x03, 0xd4, 0x08, 0x38, 0x35, 0x3c, 0x33, 0x68, 0x7d, 0xec,
+ 0x2b, 0x93, 0xa1, 0x70, 0xea, 0xe6, 0x4a, 0xbe, 0x64, 0x68, 0x89, 0xa0, 0x7b, 0x1d, 0x18, 0x0e,
+ 0x36, 0xdc, 0x6f, 0x4f, 0x4c, 0x7d, 0x53, 0x81, 0xa1, 0x40, 0x03, 0x8d, 0x3b, 0x1f, 0xb3, 0xd1,
+ 0xb0, 0x9f, 0xac, 0x98, 0x8d, 0xba, 0xe9, 0xb0, 0xa0, 0x00, 0x32, 0x94, 0xc3, 0x23, 0x71, 0x9d,
+ 0xf6, 0xb6, 0x28, 0xff, 0xac, 0x02, 0x9a, 0xdc, 0xbb, 0x4a, 0x0a, 0x2a, 0x3f, 0x55, 0x05, 0x3f,
+ 0xa1, 0xc0, 0xa8, 0xd8, 0xb0, 0x4a, 0xea, 0x1d, 0xfb, 0xa9, 0xaa, 0xf7, 0xbd, 0x04, 0x8c, 0x08,
+ 0x6d, 0x6a, 0x5c, 0xed, 0xde, 0x07, 0xe3, 0xf5, 0x1a, 0x6a, 0xb6, 0x6c, 0x17, 0x59, 0xd5, 0xdd,
+ 0x4a, 0x03, 0x3d, 0x81, 0x1a, 0xe9, 0x0c, 0x29, 0x14, 0x27, 0xf7, 0x6e, 0x84, 0xe7, 0x97, 0x7d,
+ 0xdc, 0x55, 0x0c, 0xcb, 0x4e, 0x2c, 0x17, 0x4b, 0x2b, 0x6b, 0xab, 0x1b, 0xa5, 0x72, 0xe1, 0x5a,
+ 0x65, 0xb3, 0xfc, 0xce, 0xf2, 0xea, 0x23, 0x65, 0x43, 0xab, 0x4b, 0x6c, 0x6f, 0x61, 0xaa, 0xaf,
+ 0x81, 0x26, 0x2b, 0xa5, 0x1f, 0x86, 0x30, 0xb5, 0xb4, 0x3e, 0x7d, 0x02, 0xc6, 0xca, 0xab, 0x95,
+ 0xf5, 0xe5, 0x62, 0xa9, 0x52, 0xba, 0x74, 0xa9, 0x54, 0xd8, 0x58, 0xa7, 0x5b, 0x1b, 0x1e, 0xf7,
+ 0x86, 0x98, 0xd4, 0x1f, 0x57, 0x61, 0x22, 0x44, 0x13, 0x3d, 0xc7, 0x5e, 0x4a, 0xe8, 0x7b, 0xd2,
+ 0xfd, 0x71, 0xb4, 0x9f, 0xc7, 0x5d, 0xc1, 0x9a, 0xd9, 0x76, 0xd9, 0x3b, 0xcc, 0x3d, 0x80, 0xad,
+ 0x64, 0xb9, 0xf5, 0xad, 0x3a, 0x6a, 0xb3, 0x9d, 0x20, 0xfa, 0xa6, 0x32, 0xe6, 0x8f, 0xd3, 0xcd,
+ 0xa0, 0xfb, 0x40, 0x6f, 0xd9, 0x4e, 0xdd, 0xad, 0x3f, 0x81, 0x2a, 0x75, 0x8b, 0x6f, 0x1b, 0xe1,
+ 0x37, 0x97, 0xa4, 0xa1, 0x71, 0xca, 0xb2, 0xe5, 0x7a, 0xdc, 0x16, 0xda, 0x36, 0x25, 0x6e, 0x5c,
+ 0xc0, 0x55, 0x43, 0xe3, 0x14, 0x8f, 0xfb, 0x18, 0x0c, 0xd7, 0xec, 0x0e, 0x6e, 0xe7, 0x28, 0x1f,
+ 0x5e, 0x2f, 0x14, 0x63, 0x88, 0x8e, 0x79, 0x2c, 0xac, 0x51, 0xf7, 0xf7, 0xab, 0x86, 0x8d, 0x21,
+ 0x3a, 0x46, 0x59, 0xee, 0x86, 0x31, 0x73, 0x7b, 0xbb, 0x8d, 0x85, 0x73, 0x41, 0xf4, 0xd5, 0x63,
+ 0xd4, 0x1b, 0x26, 0x8c, 0x53, 0x57, 0x20, 0xc5, 0xed, 0x80, 0x97, 0x64, 0x6c, 0x89, 0x4a, 0x8b,
+ 0xbe, 0x4f, 0x27, 0x66, 0x07, 0x8d, 0x94, 0xc5, 0x89, 0xc7, 0x60, 0xb8, 0xee, 0x54, 0xfc, 0xed,
+ 0xf7, 0xc4, 0xd1, 0xc4, 0x6c, 0xca, 0x18, 0xaa, 0x3b, 0xde, 0xd6, 0x65, 0xe6, 0x0b, 0x09, 0x18,
+ 0x15, 0x8f, 0x0f, 0xf4, 0x22, 0xa4, 0x1a, 0x76, 0xd5, 0x24, 0xa1, 0x45, 0xcf, 0xae, 0x66, 0x23,
+ 0x4e, 0x1c, 0xe6, 0xaf, 0x32, 0x7e, 0xc3, 0x43, 0x4e, 0xfd, 0x9d, 0x02, 0x29, 0x3e, 0xac, 0x4f,
+ 0x42, 0xb2, 0x65, 0xba, 0x3b, 0x44, 0x5c, 0x7f, 0x3e, 0xa1, 0x29, 0x06, 0xf9, 0x8e, 0xc7, 0x9d,
+ 0x96, 0x69, 0x91, 0x10, 0x60, 0xe3, 0xf8, 0x3b, 0xf6, 0x6b, 0x03, 0x99, 0x35, 0xf2, 0x5e, 0x63,
+ 0x37, 0x9b, 0xc8, 0x72, 0x1d, 0xee, 0x57, 0x36, 0x5e, 0x60, 0xc3, 0xfa, 0xbd, 0x30, 0xee, 0xb6,
+ 0xcd, 0x7a, 0x43, 0xe0, 0x4d, 0x12, 0x5e, 0x8d, 0x13, 0x3c, 0xe6, 0x2c, 0xdc, 0xc6, 0xe5, 0xd6,
+ 0x90, 0x6b, 0x56, 0x77, 0x50, 0xcd, 0x07, 0x0d, 0x90, 0xfd, 0x8b, 0xc3, 0x8c, 0xa1, 0xc8, 0xe8,
+ 0x1c, 0x9b, 0xf9, 0x8e, 0x02, 0xe3, 0xfc, 0x4d, 0xac, 0xe6, 0x19, 0x6b, 0x05, 0xc0, 0xb4, 0x2c,
+ 0xdb, 0x0d, 0x9a, 0xab, 0x3b, 0x94, 0xbb, 0x70, 0xf3, 0x39, 0x0f, 0x64, 0x04, 0x04, 0x4c, 0x35,
+ 0x01, 0x7c, 0x4a, 0x4f, 0xb3, 0xcd, 0xc0, 0x10, 0x3b, 0x1b, 0x22, 0x07, 0x8c, 0xf4, 0xdd, 0x1d,
+ 0xe8, 0x10, 0x7e, 0x65, 0xd3, 0x0f, 0x42, 0xff, 0x75, 0xb4, 0x5d, 0xb7, 0xd8, 0x8e, 0x2f, 0xfd,
+ 0xc2, 0x77, 0x58, 0x92, 0xde, 0x0e, 0x4b, 0xfe, 0xbd, 0x30, 0x51, 0xb5, 0x9b, 0xb2, 0xba, 0x79,
+ 0x4d, 0xda, 0x3f, 0x70, 0x1e, 0x56, 0xde, 0x03, 0x7e, 0x8b, 0xf9, 0x63, 0x45, 0xf9, 0x4c, 0x42,
+ 0xbd, 0xbc, 0x96, 0xff, 0x52, 0x62, 0xea, 0x32, 0x85, 0xae, 0xf1, 0x99, 0x1a, 0x68, 0xab, 0x81,
+ 0xaa, 0x58, 0x7b, 0xf8, 0xfc, 0xbd, 0x70, 0xff, 0x76, 0xdd, 0xdd, 0xe9, 0x5c, 0x9f, 0xaf, 0xda,
+ 0xcd, 0x93, 0xdb, 0xf6, 0xb6, 0xed, 0x9f, 0xa9, 0xe2, 0x6f, 0xe4, 0x0b, 0xf9, 0xc4, 0xce, 0x55,
+ 0x07, 0xbd, 0xd1, 0xa9, 0xc8, 0x43, 0xd8, 0x6c, 0x19, 0x26, 0x18, 0x73, 0x85, 0x1c, 0xec, 0xd0,
+ 0xd7, 0x13, 0x7d, 0xcf, 0xcd, 0xb1, 0xf4, 0x57, 0xbe, 0x4f, 0x96, 0x6b, 0x63, 0x9c, 0x41, 0x31,
+ 0x8d, 0xbe, 0xc1, 0x64, 0x0d, 0x38, 0x24, 0xc8, 0xa3, 0xa9, 0x89, 0xda, 0x11, 0x12, 0xbf, 0xcd,
+ 0x24, 0x4e, 0x04, 0x24, 0xae, 0x33, 0x68, 0xb6, 0x00, 0x23, 0xfb, 0x91, 0xf5, 0x57, 0x4c, 0xd6,
+ 0x30, 0x0a, 0x0a, 0xb9, 0x0c, 0x63, 0x44, 0x48, 0xb5, 0xe3, 0xb8, 0x76, 0x93, 0xd4, 0xbd, 0xbd,
+ 0xc5, 0xfc, 0xf5, 0xf7, 0x69, 0xae, 0x8c, 0x62, 0x58, 0xc1, 0x43, 0x65, 0xb3, 0x40, 0xce, 0xb2,
+ 0x6a, 0xa8, 0xda, 0x88, 0x90, 0x70, 0x83, 0x29, 0xe2, 0xf1, 0x67, 0xdf, 0x0d, 0x07, 0xf1, 0x67,
+ 0x52, 0x96, 0x82, 0x9a, 0x44, 0xef, 0xa4, 0xa5, 0xbf, 0xf3, 0x01, 0x9a, 0x8e, 0x13, 0x9e, 0x80,
+ 0x80, 0x4e, 0x01, 0x2f, 0x6e, 0x23, 0xd7, 0x45, 0x6d, 0xa7, 0x62, 0x36, 0xc2, 0xd4, 0x0b, 0x6c,
+ 0x45, 0xa4, 0x3f, 0xf6, 0xaa, 0xe8, 0xc5, 0xcb, 0x14, 0x99, 0x6b, 0x34, 0xb2, 0x9b, 0x70, 0x38,
+ 0x24, 0x2a, 0x62, 0xc8, 0xfc, 0x38, 0x93, 0x79, 0xb0, 0x2b, 0x32, 0xb0, 0xd8, 0x35, 0xe0, 0xe3,
+ 0x9e, 0x2f, 0x63, 0xc8, 0xfc, 0x5d, 0x26, 0x53, 0x67, 0x58, 0xee, 0x52, 0x2c, 0xf1, 0x0a, 0x8c,
+ 0x3f, 0x81, 0xda, 0xd7, 0x6d, 0x87, 0x6d, 0xff, 0xc4, 0x10, 0xf7, 0x09, 0x26, 0x6e, 0x8c, 0x01,
+ 0xc9, 0x7e, 0x10, 0x96, 0x75, 0x01, 0x52, 0x5b, 0x66, 0x15, 0xc5, 0x10, 0xf1, 0x49, 0x26, 0xe2,
+ 0x00, 0xe6, 0xc7, 0xd0, 0x1c, 0x0c, 0x6f, 0xdb, 0x6c, 0x65, 0x8a, 0x86, 0x3f, 0xcb, 0xe0, 0x43,
+ 0x1c, 0xc3, 0x44, 0xb4, 0xec, 0x56, 0xa7, 0x81, 0x97, 0xad, 0x68, 0x11, 0x9f, 0xe2, 0x22, 0x38,
+ 0x86, 0x89, 0xd8, 0x87, 0x59, 0x9f, 0xe3, 0x22, 0x9c, 0x80, 0x3d, 0x1f, 0x82, 0x21, 0xdb, 0x6a,
+ 0xec, 0xda, 0x56, 0x1c, 0x25, 0x3e, 0xcd, 0x24, 0x00, 0x83, 0x60, 0x01, 0x17, 0x61, 0x30, 0xae,
+ 0x23, 0x3e, 0xf7, 0x2a, 0x4f, 0x0f, 0xee, 0x81, 0xcb, 0x30, 0xc6, 0x0b, 0x54, 0xdd, 0xb6, 0x62,
+ 0x88, 0xf8, 0x3c, 0x13, 0x31, 0x1a, 0x80, 0xb1, 0x69, 0xb8, 0xc8, 0x71, 0xb7, 0x51, 0x1c, 0x21,
+ 0x5f, 0xe0, 0xd3, 0x60, 0x10, 0x66, 0xca, 0xeb, 0xc8, 0xaa, 0xee, 0xc4, 0x93, 0xf0, 0x3c, 0x37,
+ 0x25, 0xc7, 0x60, 0x11, 0x05, 0x18, 0x69, 0x9a, 0x6d, 0x67, 0xc7, 0x6c, 0xc4, 0x72, 0xc7, 0x17,
+ 0x99, 0x8c, 0x61, 0x0f, 0xc4, 0x2c, 0xd2, 0xb1, 0xf6, 0x23, 0xe6, 0x4b, 0xdc, 0x22, 0x01, 0x18,
+ 0x4b, 0x3d, 0xc7, 0x25, 0x7b, 0x65, 0xfb, 0x91, 0xf6, 0x7b, 0x3c, 0xf5, 0x28, 0x76, 0x25, 0x28,
+ 0xf1, 0x22, 0x0c, 0x3a, 0xf5, 0xa7, 0x63, 0x89, 0xf9, 0x7d, 0xee, 0x69, 0x02, 0xc0, 0xe0, 0x6b,
+ 0x70, 0x5b, 0xe8, 0x32, 0x11, 0x43, 0xd8, 0x1f, 0x30, 0x61, 0x93, 0x21, 0x4b, 0x05, 0x2b, 0x09,
+ 0xfb, 0x15, 0xf9, 0x87, 0xbc, 0x24, 0x20, 0x49, 0xd6, 0x1a, 0x7e, 0x57, 0x70, 0xcc, 0xad, 0xfd,
+ 0x59, 0xed, 0x8f, 0xb8, 0xd5, 0x28, 0x56, 0xb0, 0xda, 0x06, 0x4c, 0x32, 0x89, 0xfb, 0xf3, 0xeb,
+ 0x97, 0x79, 0x61, 0xa5, 0xe8, 0x4d, 0xd1, 0xbb, 0xef, 0x85, 0x29, 0xcf, 0x9c, 0xbc, 0x29, 0x75,
+ 0x2a, 0x4d, 0xb3, 0x15, 0x43, 0xf2, 0x57, 0x98, 0x64, 0x5e, 0xf1, 0xbd, 0xae, 0xd6, 0x59, 0x31,
+ 0x5b, 0x58, 0xf8, 0xa3, 0x90, 0xe6, 0xc2, 0x3b, 0x56, 0x1b, 0x55, 0xed, 0x6d, 0xab, 0xfe, 0x34,
+ 0xaa, 0xc5, 0x10, 0xfd, 0xc7, 0x92, 0xab, 0x36, 0x03, 0x70, 0x2c, 0x79, 0x19, 0x34, 0xaf, 0x57,
+ 0xa9, 0xd4, 0x9b, 0x2d, 0xbb, 0xed, 0x46, 0x48, 0xfc, 0x13, 0xee, 0x29, 0x0f, 0xb7, 0x4c, 0x60,
+ 0xd9, 0x12, 0x8c, 0x92, 0xaf, 0x71, 0x43, 0xf2, 0xab, 0x4c, 0xd0, 0x88, 0x8f, 0x62, 0x85, 0xa3,
+ 0x6a, 0x37, 0x5b, 0x66, 0x3b, 0x4e, 0xfd, 0xfb, 0x53, 0x5e, 0x38, 0x18, 0x84, 0x15, 0x0e, 0x77,
+ 0xb7, 0x85, 0xf0, 0x6a, 0x1f, 0x43, 0xc2, 0xd7, 0x78, 0xe1, 0xe0, 0x18, 0x26, 0x82, 0x37, 0x0c,
+ 0x31, 0x44, 0xfc, 0x19, 0x17, 0xc1, 0x31, 0x58, 0xc4, 0xbb, 0xfc, 0x85, 0xb6, 0x8d, 0xb6, 0xeb,
+ 0x8e, 0xdb, 0xa6, 0xad, 0xf0, 0xde, 0xa2, 0xbe, 0xfe, 0xaa, 0xd8, 0x84, 0x19, 0x01, 0x28, 0xae,
+ 0x44, 0x6c, 0x0b, 0x95, 0xbc, 0x29, 0x45, 0x2b, 0xf6, 0x0d, 0x5e, 0x89, 0x02, 0x30, 0xac, 0x5b,
+ 0xa0, 0x43, 0xc4, 0x66, 0xaf, 0xe2, 0xf7, 0x83, 0x18, 0xe2, 0xbe, 0x29, 0x29, 0xb7, 0xce, 0xb1,
+ 0x58, 0x66, 0xa0, 0xff, 0xe9, 0x58, 0x8f, 0xa3, 0xdd, 0x58, 0xd1, 0xf9, 0xe7, 0x52, 0xff, 0xb3,
+ 0x49, 0x91, 0xb4, 0x86, 0x8c, 0x49, 0xfd, 0x94, 0x1e, 0x75, 0x0b, 0x28, 0xfd, 0xff, 0x5f, 0x63,
+ 0xf3, 0x15, 0xdb, 0xa9, 0xec, 0x55, 0x1c, 0xe4, 0x62, 0xd3, 0x13, 0x2d, 0xec, 0x03, 0xaf, 0x79,
+ 0x71, 0x2e, 0xf4, 0x3c, 0xd9, 0x4b, 0x30, 0x22, 0x34, 0x3c, 0xd1, 0xa2, 0x7e, 0x8e, 0x89, 0x1a,
+ 0x0e, 0xf6, 0x3b, 0xd9, 0x33, 0x90, 0xc4, 0xcd, 0x4b, 0x34, 0xfc, 0xe7, 0x19, 0x9c, 0xb0, 0x67,
+ 0x1f, 0x80, 0x14, 0x6f, 0x5a, 0xa2, 0xa1, 0x1f, 0x64, 0x50, 0x0f, 0x82, 0xe1, 0xbc, 0x61, 0x89,
+ 0x86, 0xff, 0x02, 0x87, 0x73, 0x08, 0x86, 0xc7, 0x37, 0xe1, 0x0b, 0xbf, 0x94, 0x64, 0x8b, 0x0e,
+ 0xb7, 0xdd, 0x45, 0x38, 0xc0, 0x3a, 0x95, 0x68, 0xf4, 0x87, 0xd9, 0xc3, 0x39, 0x22, 0x7b, 0x0e,
+ 0xfa, 0x63, 0x1a, 0xfc, 0x57, 0x18, 0x94, 0xf2, 0x67, 0x0b, 0x30, 0x14, 0xe8, 0x4e, 0xa2, 0xe1,
+ 0xbf, 0xca, 0xe0, 0x41, 0x14, 0x56, 0x9d, 0x75, 0x27, 0xd1, 0x02, 0x7e, 0x8d, 0xab, 0xce, 0x10,
+ 0xd8, 0x6c, 0xbc, 0x31, 0x89, 0x46, 0xff, 0x3a, 0xb7, 0x3a, 0x87, 0x64, 0x1f, 0x82, 0x41, 0x6f,
+ 0xb1, 0x89, 0xc6, 0xff, 0x06, 0xc3, 0xfb, 0x18, 0x6c, 0x81, 0xc0, 0x62, 0x17, 0x2d, 0xe2, 0x37,
+ 0xb9, 0x05, 0x02, 0x28, 0x9c, 0x46, 0x72, 0x03, 0x13, 0x2d, 0xe9, 0x23, 0x3c, 0x8d, 0xa4, 0xfe,
+ 0x05, 0x7b, 0x93, 0xd4, 0xfc, 0x68, 0x11, 0xbf, 0xc5, 0xbd, 0x49, 0xf8, 0xb1, 0x1a, 0x72, 0x47,
+ 0x10, 0x2d, 0xe3, 0x77, 0xb8, 0x1a, 0x52, 0x43, 0x90, 0x5d, 0x03, 0xbd, 0xbb, 0x1b, 0x88, 0x96,
+ 0xf7, 0x51, 0x26, 0x6f, 0xbc, 0xab, 0x19, 0xc8, 0x3e, 0x02, 0x93, 0xe1, 0x9d, 0x40, 0xb4, 0xd4,
+ 0x8f, 0xbd, 0x26, 0xbd, 0xbb, 0x05, 0x1b, 0x81, 0xec, 0x86, 0xbf, 0xa4, 0x04, 0xbb, 0x80, 0x68,
+ 0xb1, 0x1f, 0x7f, 0x4d, 0x2c, 0xdc, 0xc1, 0x26, 0x20, 0x9b, 0x03, 0xf0, 0x17, 0xe0, 0x68, 0x59,
+ 0x9f, 0x60, 0xb2, 0x02, 0x20, 0x9c, 0x1a, 0x6c, 0xfd, 0x8d, 0xc6, 0x7f, 0x92, 0xa7, 0x06, 0x43,
+ 0xe0, 0xd4, 0xe0, 0x4b, 0x6f, 0x34, 0xfa, 0x59, 0x9e, 0x1a, 0x1c, 0x82, 0x23, 0x3b, 0xb0, 0xba,
+ 0x45, 0x4b, 0xf8, 0x34, 0x8f, 0xec, 0x00, 0x2a, 0x5b, 0x86, 0xf1, 0xae, 0x05, 0x31, 0x5a, 0xd4,
+ 0x67, 0x98, 0x28, 0x4d, 0x5e, 0x0f, 0x83, 0x8b, 0x17, 0x5b, 0x0c, 0xa3, 0xa5, 0x7d, 0x56, 0x5a,
+ 0xbc, 0xd8, 0x5a, 0x98, 0xbd, 0x08, 0x29, 0xab, 0xd3, 0x68, 0xe0, 0xe4, 0xd1, 0xf7, 0xbe, 0xb9,
+ 0x97, 0xfe, 0xe7, 0xd7, 0x99, 0x75, 0x38, 0x20, 0x7b, 0x06, 0xfa, 0x51, 0xf3, 0x3a, 0xaa, 0x45,
+ 0x21, 0xff, 0xe5, 0x75, 0x5e, 0x30, 0x31, 0x77, 0xf6, 0x21, 0x00, 0xba, 0x35, 0x42, 0x8e, 0xfd,
+ 0x22, 0xb0, 0xff, 0xfa, 0x3a, 0xbb, 0x53, 0xe3, 0x43, 0x7c, 0x01, 0xf4, 0x86, 0xce, 0xde, 0x02,
+ 0x5e, 0x15, 0x05, 0x10, 0x8f, 0x5c, 0x80, 0x03, 0x8f, 0x39, 0xb6, 0xe5, 0x9a, 0xdb, 0x51, 0xe8,
+ 0x7f, 0x63, 0x68, 0xce, 0x8f, 0x0d, 0xd6, 0xb4, 0xdb, 0xc8, 0x35, 0xb7, 0x9d, 0x28, 0xec, 0xbf,
+ 0x33, 0xac, 0x07, 0xc0, 0xe0, 0xaa, 0xe9, 0xb8, 0x71, 0xe6, 0xfd, 0x1f, 0x1c, 0xcc, 0x01, 0x58,
+ 0x69, 0xfc, 0xf9, 0x71, 0xb4, 0x1b, 0x85, 0xfd, 0x21, 0x57, 0x9a, 0xf1, 0x67, 0x1f, 0x80, 0x41,
+ 0xfc, 0x91, 0x5e, 0x94, 0x8b, 0x00, 0xff, 0x27, 0x03, 0xfb, 0x08, 0xfc, 0x64, 0xc7, 0xad, 0xb9,
+ 0xf5, 0x68, 0x63, 0xff, 0x88, 0x79, 0x9a, 0xf3, 0x67, 0x73, 0x30, 0xe4, 0xb8, 0xb5, 0x5a, 0x87,
+ 0xf5, 0xa7, 0x11, 0xf0, 0xff, 0x7a, 0xdd, 0xdb, 0xb2, 0xf0, 0x30, 0xd8, 0xdb, 0x4f, 0x3e, 0xee,
+ 0xb6, 0x6c, 0x72, 0xcc, 0x11, 0x25, 0xe1, 0x35, 0x26, 0x21, 0x00, 0xc9, 0x97, 0xc2, 0xb7, 0x6f,
+ 0xe1, 0xb2, 0x7d, 0xd9, 0xa6, 0x1b, 0xb7, 0xef, 0xc9, 0x44, 0xef, 0xc0, 0xc2, 0xdf, 0x36, 0x60,
+ 0xba, 0x6a, 0x37, 0xaf, 0xdb, 0xce, 0x49, 0xaf, 0x1c, 0x9f, 0x74, 0x77, 0x10, 0x5e, 0x85, 0xd9,
+ 0xce, 0x6c, 0x12, 0x7f, 0x9e, 0xda, 0xdf, 0x76, 0x2e, 0x39, 0xac, 0x2f, 0xd7, 0xf1, 0x0c, 0xca,
+ 0xe4, 0xbc, 0x44, 0x3f, 0x02, 0x03, 0x64, 0x4e, 0xa7, 0xc8, 0x99, 0xa4, 0x92, 0x4f, 0xde, 0x78,
+ 0x69, 0xa6, 0xcf, 0x60, 0x63, 0x1e, 0x75, 0x91, 0x6c, 0x68, 0x27, 0x04, 0xea, 0xa2, 0x47, 0x3d,
+ 0x4d, 0xf7, 0xb4, 0x05, 0xea, 0x69, 0x8f, 0xba, 0x44, 0x76, 0xb7, 0x55, 0x81, 0xba, 0xe4, 0x51,
+ 0xcf, 0x90, 0x13, 0x9c, 0x11, 0x81, 0x7a, 0xc6, 0xa3, 0x9e, 0x25, 0xe7, 0x36, 0x49, 0x81, 0x7a,
+ 0xd6, 0xa3, 0x9e, 0x23, 0x47, 0x36, 0xe3, 0x02, 0xf5, 0x9c, 0x47, 0x3d, 0x4f, 0x8e, 0x6a, 0x74,
+ 0x81, 0x7a, 0xde, 0xa3, 0x5e, 0x20, 0x17, 0xac, 0x0e, 0x08, 0xd4, 0x0b, 0xfa, 0x34, 0x1c, 0xa0,
+ 0x33, 0x5f, 0x20, 0xe7, 0xfa, 0x63, 0x8c, 0xcc, 0x07, 0x7d, 0xfa, 0x29, 0x72, 0x99, 0x6a, 0x40,
+ 0xa4, 0x9f, 0xf2, 0xe9, 0x8b, 0xe4, 0xef, 0x3a, 0x34, 0x91, 0xbe, 0xe8, 0xd3, 0x4f, 0xa7, 0x47,
+ 0xc8, 0x85, 0x32, 0x81, 0x7e, 0xda, 0xa7, 0x2f, 0xa5, 0x47, 0x71, 0x62, 0x88, 0xf4, 0x25, 0x9f,
+ 0x7e, 0x26, 0x3d, 0x76, 0x54, 0x99, 0x1d, 0x16, 0xe9, 0x67, 0x32, 0xef, 0x27, 0xee, 0xb5, 0x7c,
+ 0xf7, 0x4e, 0x8a, 0xee, 0xf5, 0x1c, 0x3b, 0x29, 0x3a, 0xd6, 0x73, 0xe9, 0xa4, 0xe8, 0x52, 0xcf,
+ 0x99, 0x93, 0xa2, 0x33, 0x3d, 0x37, 0x4e, 0x8a, 0x6e, 0xf4, 0x1c, 0x38, 0x29, 0x3a, 0xd0, 0x73,
+ 0xdd, 0xa4, 0xe8, 0x3a, 0xcf, 0x69, 0x93, 0xa2, 0xd3, 0x3c, 0x77, 0x4d, 0x8a, 0xee, 0xf2, 0x1c,
+ 0x95, 0x96, 0x1c, 0xe5, 0xbb, 0x28, 0x2d, 0xb9, 0xc8, 0x77, 0x4e, 0x5a, 0x72, 0x8e, 0xef, 0x96,
+ 0xb4, 0xe4, 0x16, 0xdf, 0x21, 0x69, 0xc9, 0x21, 0xbe, 0x2b, 0xd2, 0x92, 0x2b, 0x7c, 0x27, 0xb0,
+ 0x1c, 0x33, 0x50, 0x2b, 0x24, 0xc7, 0xd4, 0x3d, 0x73, 0x4c, 0xdd, 0x33, 0xc7, 0xd4, 0x3d, 0x73,
+ 0x4c, 0xdd, 0x33, 0xc7, 0xd4, 0x3d, 0x73, 0x4c, 0xdd, 0x33, 0xc7, 0xd4, 0x3d, 0x73, 0x4c, 0xdd,
+ 0x33, 0xc7, 0xd4, 0xbd, 0x73, 0x4c, 0x8d, 0xc8, 0x31, 0x35, 0x22, 0xc7, 0xd4, 0x88, 0x1c, 0x53,
+ 0x23, 0x72, 0x4c, 0x8d, 0xc8, 0x31, 0xb5, 0x67, 0x8e, 0xf9, 0xee, 0x9d, 0x14, 0xdd, 0x1b, 0x9a,
+ 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23, 0xc7, 0xd4, 0x1e, 0x39, 0xa6, 0xf6,
+ 0xc8, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x95, 0x63, 0x6a, 0xcf, 0x1c, 0x53,
+ 0x7b, 0xe6, 0x98, 0xda, 0x33, 0xc7, 0xd4, 0x9e, 0x39, 0xa6, 0xf6, 0xcc, 0x31, 0x35, 0x98, 0x63,
+ 0x7f, 0xa1, 0x82, 0x4e, 0x73, 0x6c, 0x8d, 0xdc, 0x0c, 0x63, 0xae, 0x98, 0x96, 0x32, 0x6d, 0x00,
+ 0xbb, 0x4e, 0xf3, 0x5d, 0x32, 0x2d, 0xe5, 0x9a, 0x48, 0x5f, 0xf4, 0xe8, 0x3c, 0xdb, 0x44, 0xfa,
+ 0x69, 0x8f, 0xce, 0xf3, 0x4d, 0xa4, 0x2f, 0x79, 0x74, 0x9e, 0x71, 0x22, 0xfd, 0x8c, 0x47, 0xe7,
+ 0x39, 0x27, 0xd2, 0xcf, 0x7a, 0x74, 0x9e, 0x75, 0x22, 0xfd, 0x9c, 0x47, 0xe7, 0x79, 0x27, 0xd2,
+ 0xcf, 0x7b, 0x74, 0x9e, 0x79, 0x22, 0xfd, 0x82, 0x7e, 0x54, 0xce, 0x3d, 0xce, 0xe0, 0xb9, 0xf6,
+ 0xa8, 0x9c, 0x7d, 0x12, 0xc7, 0x29, 0x9f, 0x83, 0xe7, 0x9f, 0xc4, 0xb1, 0xe8, 0x73, 0xf0, 0x0c,
+ 0x94, 0x38, 0x4e, 0x67, 0x3e, 0x44, 0xdc, 0x67, 0xc9, 0xee, 0x9b, 0x92, 0xdc, 0x97, 0x08, 0xb8,
+ 0x6e, 0x4a, 0x72, 0x5d, 0x22, 0xe0, 0xb6, 0x29, 0xc9, 0x6d, 0x89, 0x80, 0xcb, 0xa6, 0x24, 0x97,
+ 0x25, 0x02, 0xee, 0x9a, 0x92, 0xdc, 0x95, 0x08, 0xb8, 0x6a, 0x4a, 0x72, 0x55, 0x22, 0xe0, 0xa6,
+ 0x29, 0xc9, 0x4d, 0x89, 0x80, 0x8b, 0xa6, 0x24, 0x17, 0x25, 0x02, 0xee, 0x99, 0x92, 0xdc, 0x93,
+ 0x08, 0xb8, 0xe6, 0x88, 0xec, 0x9a, 0x44, 0xd0, 0x2d, 0x47, 0x64, 0xb7, 0x24, 0x82, 0x2e, 0x39,
+ 0x22, 0xbb, 0x24, 0x11, 0x74, 0xc7, 0x11, 0xd9, 0x1d, 0x89, 0xa0, 0x2b, 0x7e, 0x92, 0xe0, 0x1d,
+ 0xe1, 0xba, 0xdb, 0xee, 0x54, 0xdd, 0x5b, 0xea, 0x08, 0x17, 0x84, 0xf6, 0x61, 0x68, 0x51, 0x9f,
+ 0x27, 0x0d, 0x6b, 0xb0, 0xe3, 0x94, 0x56, 0xb0, 0x05, 0xa1, 0xb1, 0x08, 0x20, 0xac, 0x70, 0xc4,
+ 0xd2, 0x2d, 0xf5, 0x86, 0x0b, 0x42, 0x9b, 0x11, 0xad, 0xdf, 0xf9, 0xb7, 0xbc, 0x63, 0x7b, 0x21,
+ 0xc1, 0x3b, 0x36, 0x66, 0xfe, 0xfd, 0x76, 0x6c, 0x73, 0xd1, 0x26, 0xf7, 0x8c, 0x3d, 0x17, 0x6d,
+ 0xec, 0xae, 0x55, 0x27, 0x6e, 0x07, 0x37, 0x17, 0x6d, 0x5a, 0xcf, 0xa8, 0x6f, 0x6e, 0xbf, 0xc5,
+ 0x22, 0xd8, 0x40, 0xad, 0x90, 0x08, 0xde, 0x6f, 0xbf, 0xb5, 0x20, 0x94, 0x92, 0xfd, 0x46, 0xb0,
+ 0xba, 0xef, 0x08, 0xde, 0x6f, 0xe7, 0xb5, 0x20, 0x94, 0x97, 0x7d, 0x47, 0xf0, 0x5b, 0xd0, 0x0f,
+ 0xb1, 0x08, 0xf6, 0xcd, 0xbf, 0xdf, 0x7e, 0x68, 0x2e, 0xda, 0xe4, 0xa1, 0x11, 0xac, 0xee, 0x23,
+ 0x82, 0xe3, 0xf4, 0x47, 0x73, 0xd1, 0xa6, 0x0d, 0x8f, 0xe0, 0x5b, 0xee, 0x66, 0x3e, 0xa5, 0xc0,
+ 0x78, 0xb9, 0x5e, 0x2b, 0x35, 0xaf, 0xa3, 0x5a, 0x0d, 0xd5, 0x98, 0x1d, 0x17, 0x84, 0x4a, 0xd0,
+ 0xc3, 0xd5, 0x2f, 0xbe, 0x34, 0xe3, 0x5b, 0xf8, 0x0c, 0xa4, 0xa8, 0x4d, 0x17, 0x16, 0xd2, 0x37,
+ 0x94, 0x88, 0x0a, 0xe7, 0xb1, 0xea, 0xc7, 0x38, 0xec, 0xd4, 0x42, 0xfa, 0xef, 0x95, 0x40, 0x95,
+ 0xf3, 0x86, 0x33, 0x1f, 0x21, 0x1a, 0x5a, 0xb7, 0xac, 0xe1, 0xc9, 0x58, 0x1a, 0x06, 0x74, 0xbb,
+ 0xbd, 0x4b, 0xb7, 0x80, 0x56, 0x1d, 0x18, 0x2b, 0xd7, 0x6b, 0x65, 0xf2, 0x8b, 0x02, 0x71, 0x54,
+ 0xa2, 0x3c, 0x52, 0x3d, 0x58, 0x10, 0xc2, 0x32, 0x88, 0xf0, 0x42, 0x5a, 0xac, 0x11, 0x99, 0x3a,
+ 0x7e, 0xac, 0x25, 0x3c, 0x76, 0xae, 0xd7, 0x63, 0xfd, 0xca, 0xee, 0x3d, 0x70, 0xae, 0xd7, 0x03,
+ 0xfd, 0x1c, 0xf2, 0x1e, 0xf5, 0x14, 0x5f, 0x9c, 0xe9, 0xfd, 0x2c, 0xfd, 0x08, 0x24, 0x96, 0xe9,
+ 0xf5, 0xf1, 0xe1, 0xfc, 0x30, 0x56, 0xea, 0xbb, 0x2f, 0xcd, 0x24, 0x37, 0x3b, 0xf5, 0x9a, 0x91,
+ 0x58, 0xae, 0xe9, 0x57, 0xa0, 0xff, 0xdd, 0xec, 0xef, 0x5a, 0x31, 0xc3, 0x12, 0x63, 0xb8, 0xaf,
+ 0xe7, 0x1e, 0x11, 0x7e, 0xf0, 0x49, 0xba, 0x57, 0x39, 0xbf, 0x59, 0xb7, 0xdc, 0x53, 0x8b, 0xe7,
+ 0x0d, 0x2a, 0x22, 0xf3, 0xbf, 0x01, 0xe8, 0x33, 0x8b, 0xa6, 0xb3, 0xa3, 0x97, 0xb9, 0x64, 0xfa,
+ 0xe8, 0xf3, 0xdf, 0x7d, 0x69, 0x66, 0x29, 0x8e, 0xd4, 0xfb, 0x6b, 0xa6, 0xb3, 0x73, 0xbf, 0xbb,
+ 0xdb, 0x42, 0xf3, 0xf9, 0x5d, 0x17, 0x39, 0x5c, 0x7a, 0x8b, 0xaf, 0x7a, 0x6c, 0x5e, 0xe9, 0xc0,
+ 0xbc, 0x52, 0xc2, 0x9c, 0x2e, 0x89, 0x73, 0x5a, 0x78, 0xa3, 0xf3, 0x79, 0x8a, 0x2f, 0x12, 0x92,
+ 0x25, 0xd5, 0x28, 0x4b, 0xaa, 0xb7, 0x6a, 0xc9, 0x16, 0xaf, 0x8f, 0xd2, 0x5c, 0xd5, 0xbd, 0xe6,
+ 0xaa, 0xde, 0xca, 0x5c, 0xff, 0x9b, 0x66, 0xab, 0x97, 0x4f, 0x9b, 0x16, 0xbd, 0xba, 0xfa, 0xb3,
+ 0xb5, 0x17, 0xf4, 0xa6, 0x76, 0x01, 0xd9, 0xe4, 0x8d, 0xe7, 0x66, 0x94, 0xcc, 0xa7, 0x12, 0x7c,
+ 0xe6, 0x34, 0x91, 0xde, 0xd8, 0xcc, 0x7f, 0x56, 0x7a, 0xaa, 0xb7, 0xc2, 0x42, 0xcf, 0x2a, 0x30,
+ 0xd9, 0x55, 0xc9, 0xa9, 0x99, 0xde, 0xdc, 0x72, 0x6e, 0xed, 0xb7, 0x9c, 0x33, 0x05, 0xbf, 0xaa,
+ 0xc0, 0x41, 0xa9, 0xbc, 0x52, 0xf5, 0x4e, 0x4a, 0xea, 0x1d, 0xee, 0x7e, 0x12, 0x61, 0x0c, 0x68,
+ 0x17, 0x74, 0xaf, 0x04, 0x08, 0x48, 0xf6, 0xfc, 0xbe, 0x24, 0xf9, 0xfd, 0x88, 0x07, 0x08, 0x31,
+ 0x17, 0x8f, 0x00, 0xa6, 0xb6, 0x0d, 0xc9, 0x8d, 0x36, 0x42, 0xfa, 0x34, 0x24, 0x56, 0xdb, 0x4c,
+ 0xc3, 0x51, 0x8a, 0x5f, 0x6d, 0xe7, 0xdb, 0xa6, 0x55, 0xdd, 0x31, 0x12, 0xab, 0x6d, 0xfd, 0x18,
+ 0xa8, 0x39, 0xf6, 0x37, 0xf5, 0x43, 0x8b, 0x63, 0x94, 0x21, 0x67, 0xd5, 0x18, 0x07, 0xa6, 0xe9,
+ 0xd3, 0x90, 0xbc, 0x8a, 0xcc, 0x2d, 0xa6, 0x04, 0x50, 0x1e, 0x3c, 0x62, 0x90, 0x71, 0xf6, 0xc0,
+ 0x47, 0x21, 0xc5, 0x05, 0xeb, 0xc7, 0x31, 0x62, 0xcb, 0x65, 0x8f, 0x65, 0x08, 0xac, 0x0e, 0x5b,
+ 0xb9, 0x08, 0x55, 0x3f, 0x01, 0xfd, 0x46, 0x7d, 0x7b, 0xc7, 0x65, 0x0f, 0xef, 0x66, 0xa3, 0xe4,
+ 0xcc, 0x35, 0x18, 0xf4, 0x34, 0x7a, 0x93, 0x45, 0x17, 0xe9, 0xd4, 0xf4, 0xa9, 0xe0, 0x7a, 0xc2,
+ 0xf7, 0x2d, 0xe9, 0x90, 0x7e, 0x14, 0x52, 0xeb, 0x6e, 0xdb, 0x2f, 0xfa, 0xbc, 0x23, 0xf5, 0x46,
+ 0x33, 0xef, 0x57, 0x20, 0x55, 0x44, 0xa8, 0x45, 0x0c, 0x7e, 0x17, 0x24, 0x8b, 0xf6, 0x93, 0x16,
+ 0x53, 0x70, 0x9c, 0x59, 0x14, 0x93, 0x99, 0x4d, 0x09, 0x59, 0xbf, 0x2b, 0x68, 0xf7, 0x09, 0xcf,
+ 0xee, 0x01, 0x3e, 0x62, 0xfb, 0x8c, 0x60, 0x7b, 0xe6, 0x40, 0xcc, 0xd4, 0x65, 0xff, 0x73, 0x30,
+ 0x14, 0x78, 0x8a, 0x3e, 0xcb, 0xd4, 0x48, 0xc8, 0xc0, 0xa0, 0xad, 0x30, 0x47, 0x06, 0xc1, 0x88,
+ 0xf0, 0x60, 0x0c, 0x0d, 0x98, 0xb8, 0x07, 0x94, 0x98, 0x79, 0x4e, 0x34, 0x73, 0x38, 0x2b, 0x33,
+ 0xf5, 0x02, 0xb5, 0x11, 0x31, 0xf7, 0x71, 0x1a, 0x9c, 0xbd, 0x9d, 0x88, 0x3f, 0x67, 0xfa, 0x41,
+ 0x2d, 0xd7, 0x1b, 0x99, 0x07, 0x00, 0x68, 0xca, 0x97, 0xac, 0x4e, 0x53, 0xca, 0xba, 0x51, 0x6e,
+ 0xe0, 0x8d, 0x1d, 0xb4, 0x81, 0x1c, 0xc2, 0x22, 0xf6, 0x53, 0xb8, 0xc0, 0x00, 0x4d, 0x31, 0x82,
+ 0xbf, 0x27, 0x12, 0x1f, 0xda, 0x89, 0x61, 0xd6, 0x34, 0x65, 0xbd, 0x86, 0xdc, 0x9c, 0x65, 0xbb,
+ 0x3b, 0xa8, 0x2d, 0x21, 0x16, 0xf5, 0xd3, 0x42, 0xc2, 0x8e, 0x2e, 0xde, 0xee, 0x21, 0x7a, 0x82,
+ 0x4e, 0x67, 0xbe, 0x4c, 0x14, 0xc4, 0xad, 0x40, 0xd7, 0x04, 0xd5, 0x18, 0x13, 0xd4, 0xcf, 0x0a,
+ 0xfd, 0xdb, 0x1e, 0x6a, 0x4a, 0xaf, 0x96, 0x17, 0x84, 0xf7, 0x9c, 0xbd, 0x95, 0x15, 0xdf, 0x31,
+ 0xb9, 0x4d, 0xb9, 0xca, 0xf7, 0x44, 0xaa, 0xdc, 0xa3, 0xbb, 0xdd, 0xaf, 0x4d, 0xd5, 0xb8, 0x36,
+ 0xfd, 0xa6, 0xd7, 0x71, 0xd0, 0x1f, 0x2e, 0x21, 0x3f, 0xf9, 0xa3, 0xdf, 0x17, 0xe9, 0xfb, 0xac,
+ 0x52, 0xf0, 0x54, 0x5d, 0x8a, 0xeb, 0xfe, 0x6c, 0x22, 0x9f, 0xf7, 0xd4, 0x3d, 0xb7, 0x8f, 0x10,
+ 0xc8, 0x26, 0x0a, 0x05, 0xaf, 0x6c, 0xa7, 0x3e, 0xf4, 0xdc, 0x8c, 0xf2, 0xfc, 0x73, 0x33, 0x7d,
+ 0x99, 0x2f, 0x2a, 0x30, 0xce, 0x38, 0x03, 0x81, 0x7b, 0xbf, 0xa4, 0xfc, 0x21, 0x5e, 0x33, 0xc2,
+ 0x2c, 0xf0, 0xb6, 0x05, 0xef, 0xb7, 0x15, 0x48, 0x77, 0xe9, 0xca, 0xed, 0xbd, 0x10, 0x4b, 0xe5,
+ 0xac, 0x52, 0xfa, 0xe9, 0xdb, 0xfc, 0x1a, 0xf4, 0x6f, 0xd4, 0x9b, 0xa8, 0x8d, 0x57, 0x02, 0xfc,
+ 0x81, 0xaa, 0xcc, 0x0f, 0x73, 0xe8, 0x10, 0xa7, 0x51, 0xe5, 0x04, 0xda, 0xa2, 0x9e, 0x86, 0x64,
+ 0xd1, 0x74, 0x4d, 0xa2, 0xc1, 0xb0, 0x57, 0x5f, 0x4d, 0xd7, 0xcc, 0x9c, 0x86, 0xe1, 0x95, 0x5d,
+ 0x72, 0xdf, 0xa8, 0x46, 0xae, 0x9a, 0x88, 0xdd, 0x1f, 0xef, 0x57, 0x4f, 0xcd, 0xf5, 0xa7, 0x6a,
+ 0xda, 0x0d, 0x25, 0x9b, 0x24, 0xfa, 0x3c, 0x01, 0xa3, 0xab, 0x58, 0x6d, 0x82, 0x13, 0x60, 0xf4,
+ 0xe9, 0xaa, 0x37, 0x79, 0xa9, 0x29, 0x53, 0xfd, 0xa6, 0xec, 0x28, 0x28, 0x2b, 0x62, 0xeb, 0x14,
+ 0xd4, 0xc3, 0x50, 0x56, 0xe6, 0x92, 0xa9, 0x51, 0x6d, 0x7c, 0x2e, 0x99, 0x02, 0x6d, 0x84, 0x3d,
+ 0xf7, 0x6f, 0x54, 0xd0, 0x68, 0xab, 0x53, 0x44, 0x5b, 0x75, 0xab, 0xee, 0x76, 0xf7, 0xab, 0x9e,
+ 0xc6, 0xfa, 0x43, 0x30, 0x88, 0x4d, 0x7a, 0x89, 0xfd, 0xf2, 0x1f, 0x36, 0xfd, 0x31, 0xd6, 0xa2,
+ 0x48, 0x22, 0xd8, 0x00, 0x09, 0x1d, 0x1f, 0xa3, 0x5f, 0x02, 0xb5, 0x5c, 0x5e, 0x61, 0x8b, 0xdb,
+ 0xd2, 0x9e, 0x50, 0x76, 0xa7, 0x87, 0x7d, 0x63, 0x63, 0xce, 0xb6, 0x81, 0x05, 0xe8, 0x4b, 0x90,
+ 0x28, 0xaf, 0xb0, 0x86, 0xf7, 0x78, 0x1c, 0x31, 0x46, 0xa2, 0xbc, 0x32, 0xf5, 0x97, 0x0a, 0x8c,
+ 0x08, 0xa3, 0x7a, 0x06, 0x86, 0xe9, 0x40, 0x60, 0xba, 0x03, 0x86, 0x30, 0xc6, 0x75, 0x4e, 0xdc,
+ 0xa2, 0xce, 0x53, 0x39, 0x18, 0x93, 0xc6, 0xf5, 0x79, 0xd0, 0x83, 0x43, 0x4c, 0x09, 0xfa, 0xab,
+ 0x63, 0x21, 0x94, 0xcc, 0x1d, 0x00, 0xbe, 0x5d, 0xbd, 0x1f, 0xcb, 0x2a, 0x97, 0xd6, 0x37, 0x4a,
+ 0x45, 0x4d, 0xc9, 0x7c, 0x4d, 0x81, 0x21, 0xd6, 0xb6, 0x56, 0xed, 0x16, 0xd2, 0xf3, 0xa0, 0xe4,
+ 0x58, 0x3c, 0xbc, 0x31, 0xbd, 0x95, 0x9c, 0x7e, 0x12, 0x94, 0x7c, 0x7c, 0x57, 0x2b, 0x79, 0x7d,
+ 0x11, 0x94, 0x02, 0x73, 0x70, 0x3c, 0xcf, 0x28, 0x85, 0xcc, 0x8f, 0x54, 0x98, 0x08, 0xb6, 0xd1,
+ 0xbc, 0x9e, 0x1c, 0x13, 0xdf, 0x9b, 0xb2, 0x83, 0xa7, 0x16, 0x4f, 0x2f, 0xcd, 0xe3, 0x7f, 0xbc,
+ 0x90, 0xcc, 0x88, 0xaf, 0x50, 0x59, 0xf0, 0x58, 0x4e, 0xf5, 0xba, 0x27, 0x92, 0x4d, 0x06, 0x24,
+ 0x74, 0xdd, 0x13, 0x11, 0xa8, 0x5d, 0xf7, 0x44, 0x04, 0x6a, 0xd7, 0x3d, 0x11, 0x81, 0xda, 0x75,
+ 0x16, 0x20, 0x50, 0xbb, 0xee, 0x89, 0x08, 0xd4, 0xae, 0x7b, 0x22, 0x02, 0xb5, 0xfb, 0x9e, 0x08,
+ 0x23, 0xf7, 0xbc, 0x27, 0x22, 0xd2, 0xbb, 0xef, 0x89, 0x88, 0xf4, 0xee, 0x7b, 0x22, 0xd9, 0xa4,
+ 0xdb, 0xee, 0xa0, 0xde, 0xa7, 0x0e, 0x22, 0x7e, 0xaf, 0x97, 0x40, 0xbf, 0x02, 0xaf, 0xc2, 0x18,
+ 0xdd, 0x90, 0x28, 0xd8, 0x96, 0x6b, 0xd6, 0x2d, 0xd4, 0xd6, 0xdf, 0x01, 0xc3, 0x74, 0x88, 0xbe,
+ 0xe6, 0x84, 0xbd, 0x06, 0x52, 0x3a, 0xab, 0xb7, 0x02, 0x77, 0xe6, 0x27, 0x49, 0x98, 0xa4, 0x03,
+ 0x65, 0xb3, 0x89, 0x84, 0x5b, 0x46, 0x27, 0xa4, 0x33, 0xa5, 0x51, 0x0c, 0xbf, 0xf9, 0xd2, 0x0c,
+ 0x1d, 0xcd, 0x79, 0xd1, 0x74, 0x42, 0x3a, 0x5d, 0x12, 0xf9, 0xfc, 0x05, 0xe8, 0x84, 0x74, 0xf3,
+ 0x48, 0xe4, 0xf3, 0xd6, 0x1b, 0x8f, 0x8f, 0xdf, 0x41, 0x12, 0xf9, 0x8a, 0x5e, 0x94, 0x9d, 0x90,
+ 0x6e, 0x23, 0x89, 0x7c, 0x25, 0x2f, 0xde, 0x4e, 0x48, 0x67, 0x4f, 0x22, 0xdf, 0x25, 0x2f, 0xf2,
+ 0x4e, 0x48, 0xa7, 0x50, 0x22, 0xdf, 0x65, 0x2f, 0x06, 0x4f, 0x48, 0x77, 0x95, 0x44, 0xbe, 0x87,
+ 0xbd, 0x68, 0x3c, 0x21, 0xdd, 0x5a, 0x12, 0xf9, 0x96, 0xbd, 0xb8, 0x9c, 0x95, 0xef, 0x2f, 0x89,
+ 0x8c, 0x57, 0xfc, 0x08, 0x9d, 0x95, 0x6f, 0x32, 0x89, 0x9c, 0xef, 0xf4, 0x63, 0x75, 0x56, 0xbe,
+ 0xd3, 0x24, 0x72, 0x5e, 0xf5, 0xa3, 0x76, 0x56, 0x3e, 0x2b, 0x13, 0x39, 0x57, 0xfc, 0xf8, 0x9d,
+ 0x95, 0x4f, 0xcd, 0x44, 0xce, 0xb2, 0x1f, 0xc9, 0xb3, 0xf2, 0xf9, 0x99, 0xc8, 0xb9, 0xea, 0x6f,
+ 0xa2, 0x7f, 0x4b, 0x0a, 0xbf, 0xc0, 0x2d, 0xa8, 0x8c, 0x14, 0x7e, 0x10, 0x12, 0x7a, 0x52, 0x21,
+ 0x0b, 0xf0, 0xf8, 0x61, 0x97, 0x91, 0xc2, 0x0e, 0x42, 0x42, 0x2e, 0x23, 0x85, 0x1c, 0x84, 0x84,
+ 0x5b, 0x46, 0x0a, 0x37, 0x08, 0x09, 0xb5, 0x8c, 0x14, 0x6a, 0x10, 0x12, 0x66, 0x19, 0x29, 0xcc,
+ 0x20, 0x24, 0xc4, 0x32, 0x52, 0x88, 0x41, 0x48, 0x78, 0x65, 0xa4, 0xf0, 0x82, 0x90, 0xd0, 0x3a,
+ 0x2e, 0x87, 0x16, 0x84, 0x85, 0xd5, 0x71, 0x39, 0xac, 0x20, 0x2c, 0xa4, 0xee, 0x94, 0x43, 0x6a,
+ 0xf0, 0xe6, 0x4b, 0x33, 0xfd, 0x78, 0x28, 0x10, 0x4d, 0xc7, 0xe5, 0x68, 0x82, 0xb0, 0x48, 0x3a,
+ 0x2e, 0x47, 0x12, 0x84, 0x45, 0xd1, 0x71, 0x39, 0x8a, 0x20, 0x2c, 0x82, 0x5e, 0x90, 0x23, 0xc8,
+ 0xbf, 0xe3, 0x93, 0x91, 0x8e, 0x14, 0xa3, 0x22, 0x48, 0x8d, 0x11, 0x41, 0x6a, 0x8c, 0x08, 0x52,
+ 0x63, 0x44, 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x18, 0x11, 0xa4, 0xc6, 0x88, 0x20, 0x35, 0x46, 0x04,
+ 0xa9, 0x71, 0x22, 0x48, 0x8d, 0x15, 0x41, 0x6a, 0xaf, 0x08, 0x3a, 0x2e, 0xdf, 0x78, 0x80, 0xb0,
+ 0x82, 0x74, 0x5c, 0x3e, 0xfa, 0x8c, 0x0e, 0x21, 0x35, 0x56, 0x08, 0xa9, 0xbd, 0x42, 0xe8, 0x5b,
+ 0x2a, 0x4c, 0x08, 0x21, 0xc4, 0xce, 0x87, 0xde, 0xac, 0x0a, 0x74, 0x36, 0xc6, 0x05, 0x8b, 0xb0,
+ 0x98, 0x3a, 0x1b, 0xe3, 0x90, 0x7a, 0xaf, 0x38, 0xeb, 0xae, 0x42, 0xa5, 0x18, 0x55, 0xe8, 0x92,
+ 0x17, 0x43, 0x67, 0x63, 0x5c, 0xbc, 0xe8, 0x8e, 0xbd, 0xf3, 0x7b, 0x15, 0x81, 0x87, 0x63, 0x15,
+ 0x81, 0xe5, 0x58, 0x45, 0xe0, 0x8a, 0xef, 0xc1, 0x0f, 0x26, 0xe0, 0xa0, 0xef, 0x41, 0xfa, 0x89,
+ 0xfc, 0x80, 0x56, 0x26, 0x70, 0x44, 0xa5, 0xf3, 0x63, 0x9b, 0x80, 0x1b, 0x13, 0xcb, 0x35, 0x7d,
+ 0x4d, 0x3c, 0xac, 0xca, 0xee, 0xf7, 0x00, 0x27, 0xe0, 0x71, 0xb6, 0x19, 0x7a, 0x1c, 0xd4, 0xe5,
+ 0x9a, 0x43, 0xaa, 0x45, 0xd8, 0x63, 0x0b, 0x06, 0x26, 0xeb, 0x06, 0x0c, 0x10, 0x76, 0x87, 0xb8,
+ 0xf7, 0x56, 0x1e, 0x5c, 0x34, 0x98, 0xa4, 0xcc, 0x0b, 0x0a, 0x1c, 0x15, 0x42, 0xf9, 0xcd, 0x39,
+ 0x32, 0xb8, 0x18, 0xeb, 0xc8, 0x40, 0x48, 0x10, 0xff, 0xf8, 0xe0, 0xee, 0xee, 0x93, 0xea, 0x60,
+ 0x96, 0xc8, 0x47, 0x09, 0xff, 0x0f, 0x46, 0xfd, 0x19, 0x90, 0x77, 0xb6, 0x33, 0xd1, 0xbb, 0x99,
+ 0x61, 0xa9, 0x79, 0x46, 0xda, 0x45, 0xdb, 0x13, 0xe6, 0x65, 0x6b, 0x26, 0x0b, 0x63, 0x65, 0xf1,
+ 0x2f, 0x9f, 0xa2, 0x36, 0x23, 0x52, 0xb8, 0x35, 0xbf, 0xf1, 0xe9, 0x99, 0xbe, 0xcc, 0x7d, 0x30,
+ 0x1c, 0xfc, 0xe3, 0x26, 0x09, 0x38, 0xc8, 0x81, 0xd9, 0xe4, 0x8b, 0x98, 0xfb, 0xb7, 0x15, 0x38,
+ 0x14, 0x64, 0x7f, 0xa4, 0xee, 0xee, 0x2c, 0x5b, 0xb8, 0xa7, 0x7f, 0x00, 0x52, 0x88, 0x39, 0x8e,
+ 0xfd, 0x16, 0x0e, 0x7b, 0x8f, 0x0c, 0x65, 0x9f, 0x27, 0xff, 0x1a, 0x1e, 0x44, 0xda, 0x05, 0xe1,
+ 0x8f, 0x5d, 0x9c, 0xba, 0x0b, 0xfa, 0xa9, 0x7c, 0x51, 0xaf, 0x11, 0x49, 0xaf, 0xcf, 0x85, 0xe8,
+ 0x45, 0xe2, 0x48, 0xbf, 0x22, 0xe8, 0x15, 0x78, 0x5d, 0x0d, 0x65, 0x9f, 0xe7, 0xc1, 0x97, 0x4f,
+ 0xe1, 0xfe, 0x8f, 0x44, 0x54, 0xb4, 0x92, 0xb3, 0x90, 0x2a, 0xc9, 0x3c, 0xe1, 0x7a, 0x16, 0x21,
+ 0x59, 0xb6, 0x6b, 0xe4, 0x57, 0x7a, 0xc8, 0xef, 0x5d, 0x33, 0x23, 0xb3, 0x1f, 0xbf, 0x3e, 0x01,
+ 0xa9, 0xc2, 0x4e, 0xbd, 0x51, 0x6b, 0x23, 0x8b, 0x9d, 0xd9, 0xb3, 0x2d, 0x74, 0x8c, 0x31, 0x3c,
+ 0x5a, 0xa6, 0x00, 0xe3, 0x65, 0xdb, 0xca, 0xef, 0xba, 0xc1, 0xba, 0x31, 0x2f, 0xa5, 0x08, 0x3b,
+ 0xf3, 0x21, 0x7f, 0x0c, 0x82, 0x19, 0xf2, 0xfd, 0xdf, 0x7d, 0x69, 0x46, 0xd9, 0xf0, 0xf6, 0xcf,
+ 0x57, 0xe0, 0x30, 0x4b, 0x9f, 0x2e, 0x51, 0x8b, 0x51, 0xa2, 0x06, 0xd9, 0x39, 0x75, 0x40, 0xdc,
+ 0x32, 0x16, 0x67, 0x85, 0x8a, 0x7b, 0x63, 0x9a, 0xe1, 0xa6, 0x68, 0x4f, 0xcd, 0xd4, 0x7d, 0x69,
+ 0x16, 0x2a, 0x6e, 0x3e, 0x4a, 0x9c, 0xa4, 0xd9, 0x9d, 0x30, 0xe8, 0xd1, 0x02, 0xd1, 0x10, 0xcc,
+ 0x94, 0xc5, 0xb9, 0x0c, 0x0c, 0x05, 0x12, 0x56, 0xef, 0x07, 0x25, 0xa7, 0xf5, 0xe1, 0xff, 0xf2,
+ 0x9a, 0x82, 0xff, 0x2b, 0x68, 0x89, 0xb9, 0xbb, 0x60, 0x4c, 0xda, 0xbf, 0xc4, 0x94, 0xa2, 0x06,
+ 0xf8, 0xbf, 0x92, 0x36, 0x34, 0x95, 0xfc, 0xd0, 0x67, 0xa7, 0xfb, 0xe6, 0x2e, 0x82, 0xde, 0xbd,
+ 0xd3, 0xa9, 0x0f, 0x40, 0x22, 0x87, 0x45, 0x1e, 0x86, 0x44, 0x3e, 0xaf, 0x29, 0x53, 0x63, 0xbf,
+ 0xf8, 0xc9, 0xa3, 0x43, 0x79, 0xf2, 0x97, 0xdb, 0xd7, 0x90, 0x9b, 0xcf, 0x33, 0xf0, 0x83, 0x70,
+ 0x28, 0x74, 0xa7, 0x14, 0xe3, 0x0b, 0x05, 0x8a, 0x2f, 0x16, 0xbb, 0xf0, 0xc5, 0x22, 0xc1, 0x2b,
+ 0x59, 0x7e, 0xe2, 0x9c, 0xd3, 0x43, 0x76, 0x19, 0xd3, 0xb5, 0xc0, 0x09, 0x77, 0x2e, 0xfb, 0x20,
+ 0xe3, 0xcd, 0x87, 0xf2, 0xa2, 0x88, 0x13, 0xeb, 0x7c, 0xb6, 0xc0, 0xf0, 0x85, 0x50, 0xfc, 0x96,
+ 0x74, 0xac, 0x2a, 0xae, 0x10, 0x4c, 0x48, 0xc1, 0x53, 0xb8, 0x18, 0x2a, 0x64, 0x27, 0x70, 0xd9,
+ 0xbd, 0xe8, 0x29, 0x5c, 0x0a, 0xe5, 0xad, 0x47, 0x5c, 0xfa, 0x2a, 0x65, 0x4f, 0xb2, 0x45, 0x3e,
+ 0x77, 0x4a, 0x3f, 0xc4, 0x73, 0x54, 0xa8, 0xc0, 0xcc, 0x40, 0x9c, 0x2b, 0x5b, 0x60, 0x80, 0x7c,
+ 0x4f, 0x40, 0x6f, 0x2b, 0x71, 0x64, 0xf6, 0x61, 0x26, 0xa4, 0xd0, 0x53, 0x48, 0x84, 0xa9, 0x38,
+ 0x3c, 0xbf, 0x71, 0xe3, 0xe5, 0xe9, 0xbe, 0x17, 0x5f, 0x9e, 0xee, 0xfb, 0x87, 0x97, 0xa7, 0xfb,
+ 0xbe, 0xf7, 0xf2, 0xb4, 0xf2, 0x83, 0x97, 0xa7, 0x95, 0x1f, 0xbe, 0x3c, 0xad, 0xfc, 0xf8, 0xe5,
+ 0x69, 0xe5, 0x99, 0x9b, 0xd3, 0xca, 0xf3, 0x37, 0xa7, 0x95, 0x2f, 0xdf, 0x9c, 0x56, 0xbe, 0x7e,
+ 0x73, 0x5a, 0x79, 0xe1, 0xe6, 0xb4, 0x72, 0xe3, 0xe6, 0xb4, 0xf2, 0xe2, 0xcd, 0xe9, 0xbe, 0xef,
+ 0xdd, 0x9c, 0x56, 0x7e, 0x70, 0x73, 0xba, 0xef, 0x87, 0x37, 0xa7, 0x95, 0x1f, 0xdf, 0x9c, 0xee,
+ 0x7b, 0xe6, 0x95, 0xe9, 0xbe, 0xe7, 0x5e, 0x99, 0xee, 0x7b, 0xfe, 0x95, 0x69, 0xe5, 0x7f, 0x02,
+ 0x00, 0x00, 0xff, 0xff, 0xa0, 0x13, 0xdc, 0x9b, 0x43, 0x69, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -31481,204 +31702,3 @@ func (this *CustomNameNinEmbeddedStructUnion) SetValue(value interface{}) bool {
}
return true
}
-
-func init() {
- proto.RegisterFile("combos/marshaler/thetest.proto", fileDescriptor_thetest_0843136744e013f8)
-}
-
-var fileDescriptor_thetest_0843136744e013f8 = []byte{
- // 3086 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7,
- 0xd5, 0xe7, 0xec, 0x50, 0x0a, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0x16, 0x8c, 0xbe, 0x15, 0xbd,
- 0x91, 0xf5, 0x31, 0x44, 0x2c, 0x51, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0xe3, 0x46, 0x6e,
- 0x44, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x16, 0xd7, 0x22, 0x51, 0x69, 0x29, 0x90, 0xab,
- 0x34, 0xee, 0xa1, 0x08, 0x72, 0x28, 0x82, 0x5e, 0x8b, 0x1e, 0xdb, 0xb8, 0x28, 0x0a, 0xa4, 0xb7,
- 0x1c, 0x8a, 0xa2, 0x28, 0x8a, 0xc6, 0x97, 0x02, 0xea, 0xcd, 0xe8, 0xa9, 0x08, 0x0a, 0x21, 0x62,
- 0x2e, 0x39, 0x06, 0xbd, 0x34, 0x87, 0x1c, 0x8a, 0xdd, 0x9d, 0x9d, 0x9d, 0x19, 0xee, 0x72, 0x97,
- 0x96, 0xd2, 0xe6, 0x62, 0x8b, 0xf3, 0xde, 0x9b, 0x79, 0xfb, 0x7e, 0xbf, 0xf7, 0xf6, 0xed, 0xcc,
- 0x80, 0xba, 0xd7, 0x39, 0xbc, 0xdf, 0xe9, 0x2d, 0x1f, 0x36, 0xba, 0xbd, 0x56, 0xe3, 0x40, 0xef,
- 0x2e, 0x9b, 0x2d, 0xdd, 0xd4, 0x7b, 0xe6, 0xd2, 0x51, 0xb7, 0x63, 0x76, 0xe4, 0xb8, 0xf5, 0x77,
- 0xea, 0xfa, 0x7e, 0xdb, 0x6c, 0x1d, 0xdf, 0x5f, 0xda, 0xeb, 0x1c, 0x2e, 0xef, 0x77, 0xf6, 0x3b,
- 0xcb, 0xb6, 0xf0, 0xfe, 0xf1, 0x03, 0xfb, 0x97, 0xfd, 0xc3, 0xfe, 0xcb, 0x31, 0xd2, 0xfe, 0x89,
- 0x61, 0xaa, 0xd6, 0x6e, 0xee, 0x1c, 0x99, 0xb5, 0x86, 0xd9, 0x7e, 0x4b, 0x97, 0xe7, 0x60, 0xfc,
- 0x56, 0x5b, 0x3f, 0x68, 0xae, 0x28, 0x28, 0x8d, 0x32, 0xa8, 0x14, 0x3f, 0x39, 0x9d, 0x8f, 0xd5,
- 0xc9, 0x18, 0x95, 0xe6, 0x15, 0x29, 0x8d, 0x32, 0x12, 0x27, 0xcd, 0x53, 0xe9, 0xaa, 0x82, 0xd3,
- 0x28, 0x33, 0xc6, 0x49, 0x57, 0xa9, 0xb4, 0xa0, 0xc4, 0xd3, 0x28, 0x83, 0x39, 0x69, 0x81, 0x4a,
- 0xd7, 0x94, 0xb1, 0x34, 0xca, 0x5c, 0xe2, 0xa4, 0x6b, 0x54, 0xba, 0xae, 0x8c, 0xa7, 0x51, 0x26,
- 0xce, 0x49, 0xd7, 0xa9, 0xf4, 0x86, 0xf2, 0x4c, 0x1a, 0x65, 0x2e, 0x73, 0xd2, 0x1b, 0x54, 0xba,
- 0xa1, 0x24, 0xd2, 0x28, 0x23, 0x73, 0xd2, 0x0d, 0x2a, 0xbd, 0xa9, 0x4c, 0xa4, 0x51, 0xe6, 0x19,
- 0x4e, 0x7a, 0x53, 0x56, 0xe1, 0x19, 0xe7, 0xc9, 0x73, 0x0a, 0xa4, 0x51, 0x66, 0x86, 0x88, 0xdd,
- 0x41, 0x4f, 0xbe, 0xa2, 0x4c, 0xa6, 0x51, 0x66, 0x9c, 0x97, 0xaf, 0x78, 0xf2, 0xbc, 0x32, 0x95,
- 0x46, 0x99, 0x24, 0x2f, 0xcf, 0x7b, 0xf2, 0x55, 0xe5, 0x52, 0x1a, 0x65, 0x12, 0xbc, 0x7c, 0xd5,
- 0x93, 0x17, 0x94, 0xe9, 0x34, 0xca, 0x4c, 0xf0, 0xf2, 0x82, 0x27, 0x5f, 0x53, 0x66, 0xd2, 0x28,
- 0x33, 0xc5, 0xcb, 0xd7, 0xb4, 0x77, 0x6d, 0x78, 0x0d, 0x0f, 0xde, 0x59, 0x1e, 0x5e, 0x0a, 0xec,
- 0x2c, 0x0f, 0x2c, 0x85, 0x74, 0x96, 0x87, 0x94, 0x82, 0x39, 0xcb, 0x83, 0x49, 0x61, 0x9c, 0xe5,
- 0x61, 0xa4, 0x00, 0xce, 0xf2, 0x00, 0x52, 0xe8, 0x66, 0x79, 0xe8, 0x28, 0x68, 0xb3, 0x3c, 0x68,
- 0x14, 0xae, 0x59, 0x1e, 0x2e, 0x0a, 0x94, 0x22, 0x00, 0xe5, 0x41, 0xa4, 0x08, 0x10, 0x79, 0xe0,
- 0x28, 0x02, 0x38, 0x1e, 0x2c, 0x8a, 0x00, 0x8b, 0x07, 0x88, 0x22, 0x00, 0xe2, 0x41, 0xa1, 0x08,
- 0x50, 0x78, 0x20, 0x90, 0x1c, 0xab, 0xeb, 0x47, 0x3e, 0x39, 0x86, 0x87, 0xe6, 0x18, 0x1e, 0x9a,
- 0x63, 0x78, 0x68, 0x8e, 0xe1, 0xa1, 0x39, 0x86, 0x87, 0xe6, 0x18, 0x1e, 0x9a, 0x63, 0x78, 0x68,
- 0x8e, 0xe1, 0xa1, 0x39, 0x86, 0x87, 0xe7, 0x18, 0x0e, 0xc9, 0x31, 0x1c, 0x92, 0x63, 0x38, 0x24,
- 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0x90, 0x1c, 0xc3, 0x81, 0x39, 0xe6, 0xc1, 0x3b, 0xcb, 0xc3, 0xeb,
- 0x9b, 0x63, 0x38, 0x20, 0xc7, 0x70, 0x40, 0x8e, 0xe1, 0x80, 0x1c, 0xc3, 0x01, 0x39, 0x86, 0x03,
- 0x72, 0x0c, 0x07, 0xe4, 0x18, 0x0e, 0xc8, 0x31, 0x1c, 0x94, 0x63, 0x38, 0x30, 0xc7, 0x70, 0x60,
- 0x8e, 0xe1, 0xc0, 0x1c, 0xc3, 0x81, 0x39, 0x86, 0x03, 0x73, 0x0c, 0xb3, 0x39, 0xf6, 0x67, 0x0c,
- 0xb2, 0x93, 0x63, 0x77, 0x1a, 0x7b, 0x3f, 0xd4, 0x9b, 0x04, 0x0a, 0x55, 0xc8, 0xb4, 0x71, 0x0b,
- 0xba, 0xa4, 0x07, 0x89, 0x2a, 0xe4, 0x1a, 0x2f, 0xcf, 0x53, 0xb9, 0x9b, 0x6d, 0xbc, 0x7c, 0x95,
- 0xca, 0xdd, 0x7c, 0xe3, 0xe5, 0x05, 0x2a, 0x77, 0x33, 0x8e, 0x97, 0xaf, 0x51, 0xb9, 0x9b, 0x73,
- 0xbc, 0x7c, 0x9d, 0xca, 0xdd, 0xac, 0xe3, 0xe5, 0x37, 0xa8, 0xdc, 0xcd, 0x3b, 0x5e, 0xbe, 0x41,
- 0xe5, 0x6e, 0xe6, 0xf1, 0xf2, 0x9b, 0x72, 0x5a, 0xcc, 0x3d, 0x57, 0x81, 0x42, 0x9b, 0x16, 0xb3,
- 0x4f, 0xd0, 0x58, 0xf1, 0x34, 0xdc, 0xfc, 0x13, 0x34, 0xf2, 0x9e, 0x86, 0x9b, 0x81, 0x82, 0xc6,
- 0xaa, 0xf6, 0x9e, 0x0d, 0x9f, 0x21, 0xc2, 0x97, 0x12, 0xe0, 0x93, 0x18, 0xe8, 0x52, 0x02, 0x74,
- 0x12, 0x03, 0x5b, 0x4a, 0x80, 0x4d, 0x62, 0x20, 0x4b, 0x09, 0x90, 0x49, 0x0c, 0x5c, 0x29, 0x01,
- 0x2e, 0x89, 0x81, 0x2a, 0x25, 0x40, 0x25, 0x31, 0x30, 0xa5, 0x04, 0x98, 0x24, 0x06, 0xa2, 0x94,
- 0x00, 0x91, 0xc4, 0xc0, 0x93, 0x12, 0xe0, 0x91, 0x18, 0x68, 0xe6, 0x44, 0x68, 0x24, 0x16, 0x96,
- 0x39, 0x11, 0x16, 0x89, 0x85, 0x64, 0x4e, 0x84, 0x44, 0x62, 0xe1, 0x98, 0x13, 0xe1, 0x90, 0x58,
- 0x28, 0xbe, 0x94, 0xdc, 0x8e, 0xf0, 0x4d, 0xb3, 0x7b, 0xbc, 0x67, 0x9e, 0xab, 0x23, 0xcc, 0x71,
- 0xed, 0xc3, 0x64, 0x5e, 0x5e, 0xb2, 0x1b, 0x56, 0xb6, 0xe3, 0x14, 0xde, 0x60, 0x39, 0xae, 0xb1,
- 0x60, 0x2c, 0x0c, 0x7f, 0x8b, 0xc2, 0xb9, 0x7a, 0xc3, 0x1c, 0xd7, 0x66, 0x84, 0xfb, 0xb7, 0xf1,
- 0x95, 0x77, 0x6c, 0x8f, 0x25, 0xb7, 0x63, 0x23, 0xe1, 0x1f, 0xb5, 0x63, 0xcb, 0x86, 0x87, 0x9c,
- 0x06, 0x3b, 0x1b, 0x1e, 0xec, 0x81, 0xb7, 0x4e, 0xd4, 0x0e, 0x2e, 0x1b, 0x1e, 0x5a, 0x1a, 0xd4,
- 0x8b, 0xed, 0xb7, 0x08, 0x83, 0xeb, 0xfa, 0x91, 0x0f, 0x83, 0x47, 0xed, 0xb7, 0x72, 0x5c, 0x29,
- 0x19, 0x95, 0xc1, 0x78, 0x64, 0x06, 0x8f, 0xda, 0x79, 0xe5, 0xb8, 0xf2, 0x32, 0x32, 0x83, 0xbf,
- 0x82, 0x7e, 0x88, 0x30, 0xd8, 0x0b, 0xff, 0xa8, 0xfd, 0x50, 0x36, 0x3c, 0xe4, 0xbe, 0x0c, 0xc6,
- 0x23, 0x30, 0x38, 0x4a, 0x7f, 0x94, 0x0d, 0x0f, 0xad, 0x3f, 0x83, 0xcf, 0xdd, 0xcd, 0xbc, 0x8f,
- 0xe0, 0x72, 0xad, 0xdd, 0xac, 0x1e, 0xde, 0xd7, 0x9b, 0x4d, 0xbd, 0x49, 0xe2, 0x98, 0xe3, 0x2a,
- 0x41, 0x00, 0xd4, 0x4f, 0x4e, 0xe7, 0xbd, 0x08, 0xaf, 0x41, 0xc2, 0x89, 0x69, 0x2e, 0xa7, 0x9c,
- 0xa0, 0x90, 0x0a, 0x47, 0x55, 0xe5, 0xab, 0xae, 0xd9, 0x4a, 0x4e, 0xf9, 0x3b, 0x62, 0xaa, 0x1c,
- 0x1d, 0xd6, 0x7e, 0x6e, 0x7b, 0x68, 0x9c, 0xdb, 0xc3, 0xe5, 0x48, 0x1e, 0x32, 0xbe, 0xbd, 0x30,
- 0xe0, 0x1b, 0xe3, 0xd5, 0x31, 0xcc, 0xd4, 0xda, 0xcd, 0x9a, 0xde, 0x33, 0xa3, 0xb9, 0xe4, 0xe8,
- 0x08, 0xf5, 0x20, 0xc7, 0xd1, 0x92, 0xb5, 0xa0, 0x94, 0xe6, 0x6b, 0x84, 0xd6, 0xb6, 0x96, 0x35,
- 0xb8, 0x65, 0xb3, 0x41, 0xcb, 0x7a, 0x95, 0x9d, 0x2e, 0x98, 0x0d, 0x5a, 0xd0, 0xcb, 0x21, 0xba,
- 0xd4, 0xdb, 0xee, 0xcb, 0xb9, 0x7c, 0xdc, 0x33, 0x3b, 0x87, 0xf2, 0x1c, 0x48, 0x5b, 0x4d, 0x7b,
- 0x8d, 0xa9, 0xd2, 0x94, 0xe5, 0xd4, 0xc7, 0xa7, 0xf3, 0xf1, 0xbb, 0xc7, 0xed, 0x66, 0x5d, 0xda,
- 0x6a, 0xca, 0xb7, 0x61, 0xec, 0x3b, 0x8d, 0x83, 0x63, 0xdd, 0x7e, 0x45, 0x4c, 0x95, 0x0a, 0x44,
- 0xe1, 0xe5, 0xc0, 0x3d, 0x22, 0x6b, 0xe1, 0xe5, 0x3d, 0x7b, 0xea, 0xa5, 0xbb, 0x6d, 0xc3, 0x5c,
- 0xc9, 0x6f, 0xd4, 0x9d, 0x29, 0xb4, 0xef, 0x03, 0x38, 0x6b, 0x56, 0x1a, 0xbd, 0x96, 0x5c, 0x73,
- 0x67, 0x76, 0x96, 0xde, 0xf8, 0xf8, 0x74, 0xbe, 0x10, 0x65, 0xd6, 0xeb, 0xcd, 0x46, 0xaf, 0x75,
- 0xdd, 0x7c, 0x78, 0xa4, 0x2f, 0x95, 0x1e, 0x9a, 0x7a, 0xcf, 0x9d, 0xfd, 0xc8, 0x7d, 0xeb, 0x91,
- 0xe7, 0x52, 0x98, 0xe7, 0x4a, 0x70, 0xcf, 0x74, 0x8b, 0x7f, 0xa6, 0xdc, 0xd3, 0x3e, 0xcf, 0xdb,
- 0xee, 0x4b, 0x42, 0x88, 0x24, 0x0e, 0x8b, 0x24, 0x3e, 0x6f, 0x24, 0x8f, 0xdc, 0xfa, 0x28, 0x3c,
- 0x2b, 0x1e, 0xf6, 0xac, 0xf8, 0x3c, 0xcf, 0xfa, 0x6f, 0x27, 0x5b, 0x69, 0x3e, 0xdd, 0x35, 0xda,
- 0x1d, 0xe3, 0x6b, 0xb7, 0x17, 0x74, 0xa1, 0x5d, 0x40, 0x31, 0x7e, 0xf2, 0x68, 0x1e, 0x69, 0xef,
- 0x4b, 0xee, 0x93, 0x3b, 0x89, 0xf4, 0x74, 0x4f, 0xfe, 0x75, 0xe9, 0xa9, 0xbe, 0x8a, 0x08, 0xfd,
- 0x0a, 0xc1, 0xec, 0x40, 0x25, 0x77, 0xc2, 0x74, 0xb1, 0xe5, 0xdc, 0x18, 0xb5, 0x9c, 0x13, 0x07,
- 0x7f, 0x8f, 0xe0, 0x39, 0xa1, 0xbc, 0x3a, 0xee, 0x2d, 0x0b, 0xee, 0x3d, 0x3f, 0xb8, 0x92, 0xad,
- 0xc8, 0x78, 0xc7, 0xc2, 0x2b, 0x18, 0x30, 0x33, 0x53, 0xdc, 0x0b, 0x02, 0xee, 0x73, 0xd4, 0xc0,
- 0x27, 0x5c, 0x2e, 0x03, 0x88, 0xdb, 0x1d, 0x88, 0xef, 0x76, 0x75, 0x5d, 0x56, 0x41, 0xda, 0xe9,
- 0x12, 0x0f, 0xa7, 0x1d, 0xfb, 0x9d, 0x6e, 0xa9, 0xdb, 0x30, 0xf6, 0x5a, 0x75, 0x69, 0xa7, 0x2b,
- 0x5f, 0x05, 0xbc, 0x69, 0x34, 0x89, 0x47, 0x33, 0x8e, 0xc2, 0xa6, 0xd1, 0x24, 0x1a, 0x96, 0x4c,
- 0x56, 0x21, 0xfe, 0x86, 0xde, 0x78, 0x40, 0x9c, 0x00, 0x47, 0xc7, 0x1a, 0xa9, 0xdb, 0xe3, 0x64,
- 0xc1, 0xef, 0x41, 0xc2, 0x9d, 0x58, 0x5e, 0xb0, 0x2c, 0x1e, 0x98, 0x64, 0x59, 0x62, 0x61, 0xb9,
- 0x43, 0xde, 0x5c, 0xb6, 0x54, 0x5e, 0x84, 0xb1, 0x7a, 0x7b, 0xbf, 0x65, 0x92, 0xc5, 0x07, 0xd5,
- 0x1c, 0xb1, 0x76, 0x0f, 0x26, 0xa8, 0x47, 0x17, 0x3c, 0x75, 0xc5, 0x79, 0x34, 0x39, 0xc5, 0xbe,
- 0x4f, 0xdc, 0x7d, 0x4b, 0x67, 0x48, 0x4e, 0x43, 0xe2, 0x4d, 0xb3, 0xeb, 0x15, 0x7d, 0xb7, 0x23,
- 0xa5, 0xa3, 0xda, 0xbb, 0x08, 0x12, 0x15, 0x5d, 0x3f, 0xb2, 0x03, 0x7e, 0x0d, 0xe2, 0x95, 0xce,
- 0x8f, 0x0c, 0xe2, 0xe0, 0x65, 0x12, 0x51, 0x4b, 0x4c, 0x62, 0x6a, 0x8b, 0xe5, 0x6b, 0x6c, 0xdc,
- 0x9f, 0xa5, 0x71, 0x67, 0xf4, 0xec, 0xd8, 0x6b, 0x5c, 0xec, 0x09, 0x80, 0x96, 0xd2, 0x40, 0xfc,
- 0x6f, 0xc0, 0x24, 0xb3, 0x8a, 0x9c, 0x21, 0x6e, 0x48, 0xa2, 0x21, 0x1b, 0x2b, 0x4b, 0x43, 0xd3,
- 0xe1, 0x12, 0xb7, 0xb0, 0x65, 0xca, 0x84, 0x38, 0xc0, 0xd4, 0x0e, 0x73, 0x96, 0x0f, 0xb3, 0xbf,
- 0x2a, 0x09, 0x75, 0xce, 0x89, 0x91, 0x1d, 0xee, 0x05, 0x87, 0x9c, 0xc1, 0x20, 0x5a, 0x7f, 0x6b,
- 0x63, 0x80, 0x6b, 0xed, 0x03, 0xed, 0x55, 0x00, 0x27, 0xe5, 0xab, 0xc6, 0xf1, 0xa1, 0x90, 0x75,
- 0xd3, 0x6e, 0x80, 0x77, 0x5b, 0xfa, 0xae, 0xde, 0xb3, 0x55, 0xf8, 0x7e, 0xca, 0x2a, 0x30, 0xe0,
- 0xa4, 0x98, 0x6d, 0xff, 0x52, 0xa8, 0xbd, 0x6f, 0x27, 0x66, 0xa9, 0x2a, 0x8e, 0xea, 0x3d, 0xdd,
- 0xdc, 0x34, 0x3a, 0x66, 0x4b, 0xef, 0x0a, 0x16, 0x79, 0x79, 0x95, 0x4b, 0xd8, 0xe9, 0xfc, 0x0b,
- 0xd4, 0x22, 0xd0, 0x68, 0x55, 0xfb, 0xd0, 0x76, 0xd0, 0x6a, 0x05, 0x06, 0x1e, 0x10, 0x47, 0x78,
- 0x40, 0x79, 0x9d, 0xeb, 0xdf, 0x86, 0xb8, 0x29, 0x7c, 0x5a, 0xde, 0xe4, 0xbe, 0x73, 0x86, 0x3b,
- 0xcb, 0x7f, 0x63, 0xba, 0x31, 0x75, 0x5d, 0x7e, 0x29, 0xd4, 0xe5, 0x80, 0xee, 0x76, 0xd4, 0x98,
- 0xe2, 0xa8, 0x31, 0xfd, 0x13, 0xed, 0x38, 0xac, 0xe1, 0x8a, 0xfe, 0xa0, 0x71, 0x7c, 0x60, 0xca,
- 0x2f, 0x87, 0x62, 0x5f, 0x44, 0x65, 0xea, 0x6a, 0x21, 0x2a, 0xfc, 0x45, 0xa9, 0x54, 0xa2, 0xee,
- 0xde, 0x18, 0x81, 0x02, 0x45, 0xa9, 0x5c, 0xa6, 0x65, 0x3b, 0xf1, 0xde, 0xa3, 0x79, 0xf4, 0xc1,
- 0xa3, 0xf9, 0x98, 0xf6, 0x3b, 0x04, 0x97, 0x89, 0x26, 0x43, 0xdc, 0xeb, 0x82, 0xf3, 0x57, 0xdc,
- 0x9a, 0xe1, 0x17, 0x81, 0xff, 0x1a, 0x79, 0xff, 0x8a, 0x40, 0x19, 0xf0, 0xd5, 0x8d, 0x77, 0x2e,
- 0x92, 0xcb, 0x45, 0x54, 0xfd, 0xdf, 0xc7, 0xfc, 0x1e, 0x8c, 0xed, 0xb6, 0x0f, 0xf5, 0xae, 0xf5,
- 0x26, 0xb0, 0xfe, 0x70, 0x5c, 0x76, 0x0f, 0x73, 0x9c, 0x21, 0x57, 0xe6, 0x38, 0xc7, 0xc9, 0xf2,
- 0xb2, 0x02, 0xf1, 0x4a, 0xc3, 0x6c, 0xd8, 0x1e, 0x4c, 0xd1, 0xfa, 0xda, 0x30, 0x1b, 0xda, 0x2a,
- 0x4c, 0x6d, 0x3f, 0xac, 0xbe, 0x6d, 0xea, 0x46, 0xb3, 0x71, 0xff, 0x40, 0x3c, 0x03, 0x75, 0xfb,
- 0xd5, 0x95, 0xec, 0x58, 0xa2, 0x99, 0x3c, 0x41, 0xc5, 0xb8, 0xed, 0xcf, 0x5b, 0x30, 0xbd, 0x63,
- 0xb9, 0x6d, 0xdb, 0xd9, 0x66, 0x69, 0x40, 0xdb, 0x7c, 0x23, 0xc4, 0xce, 0x5a, 0x47, 0xdb, 0x42,
- 0xfb, 0x88, 0x69, 0x78, 0x84, 0xb6, 0x0d, 0xd3, 0xb6, 0x2d, 0x1b, 0x4f, 0x4c, 0x27, 0x2f, 0x67,
- 0xe3, 0x09, 0x48, 0x5e, 0x22, 0xeb, 0xfe, 0x0d, 0x43, 0xd2, 0x69, 0x75, 0x2a, 0xfa, 0x83, 0xb6,
- 0xd1, 0x36, 0x07, 0xfb, 0x55, 0xea, 0xb1, 0xfc, 0x4d, 0x98, 0xb0, 0x42, 0x6a, 0xff, 0x22, 0x80,
- 0x5d, 0x25, 0x2d, 0x8a, 0x30, 0x05, 0x19, 0xb0, 0xa9, 0xe3, 0xd9, 0xc8, 0xb7, 0x00, 0xd7, 0x6a,
- 0xdb, 0xe4, 0xe5, 0x56, 0x18, 0x6a, 0xba, 0xad, 0xf7, 0x7a, 0x8d, 0x7d, 0x9d, 0xfc, 0x22, 0x63,
- 0xbd, 0xfd, 0xba, 0x35, 0x81, 0x5c, 0x00, 0xa9, 0xb6, 0x4d, 0x1a, 0xde, 0x85, 0x28, 0xd3, 0xd4,
- 0xa5, 0xda, 0x76, 0xea, 0x2f, 0x08, 0x2e, 0x71, 0xa3, 0xb2, 0x06, 0x53, 0xce, 0x00, 0xf3, 0xb8,
- 0xe3, 0x75, 0x6e, 0xcc, 0xf5, 0x59, 0x3a, 0xa7, 0xcf, 0xa9, 0x4d, 0x98, 0x11, 0xc6, 0xe5, 0x25,
- 0x90, 0xd9, 0x21, 0xe2, 0x04, 0xd8, 0x0d, 0xb5, 0x8f, 0x44, 0xfb, 0x3f, 0x00, 0x2f, 0xae, 0xf2,
- 0x0c, 0x4c, 0xee, 0xde, 0xbb, 0x53, 0xfd, 0x41, 0xad, 0xfa, 0xe6, 0x6e, 0xb5, 0x92, 0x44, 0xda,
- 0x1f, 0x10, 0x4c, 0x92, 0xb6, 0x75, 0xaf, 0x73, 0xa4, 0xcb, 0x25, 0x40, 0x9b, 0x84, 0x41, 0x4f,
- 0xe7, 0x37, 0xda, 0x94, 0x97, 0x01, 0x95, 0xa2, 0x43, 0x8d, 0x4a, 0x72, 0x1e, 0x50, 0x99, 0x00,
- 0x1c, 0x0d, 0x19, 0x54, 0xd6, 0xfe, 0x85, 0xe1, 0x59, 0xb6, 0x8d, 0x76, 0xeb, 0xc9, 0x55, 0xfe,
- 0xbb, 0xa9, 0x38, 0xb1, 0x92, 0x5f, 0x2d, 0x2c, 0x59, 0xff, 0x50, 0x4a, 0x6a, 0xfc, 0x27, 0x54,
- 0x11, 0xa8, 0xca, 0x4a, 0xd0, 0x3d, 0x91, 0x62, 0x9c, 0x99, 0x61, 0xe0, 0x9e, 0x08, 0x27, 0x1d,
- 0xb8, 0x27, 0xc2, 0x49, 0x07, 0xee, 0x89, 0x70, 0xd2, 0x81, 0xb3, 0x00, 0x4e, 0x3a, 0x70, 0x4f,
- 0x84, 0x93, 0x0e, 0xdc, 0x13, 0xe1, 0xa4, 0x83, 0xf7, 0x44, 0x88, 0x38, 0xf0, 0x9e, 0x08, 0x2f,
- 0x1f, 0xbc, 0x27, 0xc2, 0xcb, 0x07, 0xef, 0x89, 0x14, 0xe3, 0x66, 0xf7, 0x58, 0x0f, 0x3e, 0x75,
- 0xe0, 0xed, 0x87, 0x7d, 0x04, 0x7a, 0x15, 0x78, 0x07, 0x66, 0x9c, 0x0d, 0x89, 0x72, 0xc7, 0x30,
- 0x1b, 0x6d, 0x43, 0xef, 0xca, 0xdf, 0x80, 0x29, 0x67, 0xc8, 0xf9, 0xcc, 0xf1, 0xfb, 0x0c, 0x74,
- 0xe4, 0xa4, 0xde, 0x72, 0xda, 0xda, 0x97, 0x71, 0x98, 0x75, 0x06, 0x6a, 0x8d, 0x43, 0x9d, 0xbb,
- 0x65, 0xb4, 0x28, 0x9c, 0x29, 0x4d, 0x5b, 0xe6, 0xfd, 0xd3, 0x79, 0x67, 0x74, 0x93, 0xb2, 0x69,
- 0x51, 0x38, 0x5d, 0xe2, 0xf5, 0xbc, 0x17, 0xd0, 0xa2, 0x70, 0xf3, 0x88, 0xd7, 0xa3, 0xef, 0x1b,
- 0xaa, 0xe7, 0xde, 0x41, 0xe2, 0xf5, 0x2a, 0x94, 0x65, 0x8b, 0xc2, 0x6d, 0x24, 0x5e, 0xaf, 0x4a,
- 0xf9, 0xb6, 0x28, 0x9c, 0x3d, 0xf1, 0x7a, 0xb7, 0x28, 0xf3, 0x16, 0x85, 0x53, 0x28, 0x5e, 0xef,
- 0x5b, 0x94, 0x83, 0x8b, 0xc2, 0x5d, 0x25, 0x5e, 0xef, 0x75, 0xca, 0xc6, 0x45, 0xe1, 0xd6, 0x12,
- 0xaf, 0xb7, 0x45, 0x79, 0x99, 0x11, 0xef, 0x2f, 0xf1, 0x8a, 0xb7, 0x3d, 0x86, 0x66, 0xc4, 0x9b,
- 0x4c, 0xbc, 0xe6, 0xb7, 0x3d, 0xae, 0x66, 0xc4, 0x3b, 0x4d, 0xbc, 0xe6, 0x1b, 0x1e, 0x6b, 0x33,
- 0xe2, 0x59, 0x19, 0xaf, 0xb9, 0xed, 0xf1, 0x37, 0x23, 0x9e, 0x9a, 0xf1, 0x9a, 0x35, 0x8f, 0xc9,
- 0x19, 0xf1, 0xfc, 0x8c, 0xd7, 0xdc, 0xf1, 0x36, 0xd1, 0x3f, 0x12, 0xe8, 0xc7, 0xdc, 0x82, 0xd2,
- 0x04, 0xfa, 0x81, 0x0f, 0xf5, 0x84, 0x42, 0xc6, 0xe8, 0x78, 0xb4, 0xd3, 0x04, 0xda, 0x81, 0x0f,
- 0xe5, 0x34, 0x81, 0x72, 0xe0, 0x43, 0x37, 0x4d, 0xa0, 0x1b, 0xf8, 0x50, 0x4d, 0x13, 0xa8, 0x06,
- 0x3e, 0x34, 0xd3, 0x04, 0x9a, 0x81, 0x0f, 0xc5, 0x34, 0x81, 0x62, 0xe0, 0x43, 0x2f, 0x4d, 0xa0,
- 0x17, 0xf8, 0x50, 0x6b, 0x41, 0xa4, 0x16, 0xf8, 0xd1, 0x6a, 0x41, 0xa4, 0x15, 0xf8, 0x51, 0xea,
- 0x45, 0x91, 0x52, 0x13, 0xfd, 0xd3, 0xf9, 0x31, 0x6b, 0x88, 0x61, 0xd3, 0x82, 0xc8, 0x26, 0xf0,
- 0x63, 0xd2, 0x82, 0xc8, 0x24, 0xf0, 0x63, 0xd1, 0x82, 0xc8, 0x22, 0xf0, 0x63, 0xd0, 0x63, 0x91,
- 0x41, 0xde, 0x1d, 0x1f, 0x4d, 0x38, 0x52, 0x0c, 0x63, 0x10, 0x8e, 0xc0, 0x20, 0x1c, 0x81, 0x41,
- 0x38, 0x02, 0x83, 0x70, 0x04, 0x06, 0xe1, 0x08, 0x0c, 0xc2, 0x11, 0x18, 0x84, 0x23, 0x30, 0x08,
- 0x47, 0x61, 0x10, 0x8e, 0xc4, 0x20, 0x1c, 0xc4, 0xa0, 0x05, 0xf1, 0xc6, 0x03, 0xf8, 0x15, 0xa4,
- 0x05, 0xf1, 0xe8, 0x33, 0x9c, 0x42, 0x38, 0x12, 0x85, 0x70, 0x10, 0x85, 0x3e, 0xc2, 0xf0, 0x2c,
- 0x47, 0x21, 0x72, 0x3e, 0x74, 0x51, 0x15, 0x68, 0x3d, 0xc2, 0x05, 0x0b, 0x3f, 0x4e, 0xad, 0x47,
- 0x38, 0xa4, 0x1e, 0xc6, 0xb3, 0xc1, 0x2a, 0x54, 0x8d, 0x50, 0x85, 0x6e, 0x51, 0x0e, 0xad, 0x47,
- 0xb8, 0x78, 0x31, 0xc8, 0xbd, 0x8d, 0x61, 0x45, 0xe0, 0xf5, 0x48, 0x45, 0x60, 0x2b, 0x52, 0x11,
- 0xb8, 0xed, 0x21, 0xf8, 0x53, 0x09, 0x9e, 0xf3, 0x10, 0x74, 0xfe, 0xda, 0x7d, 0x78, 0x64, 0x95,
- 0x00, 0xef, 0x88, 0x4a, 0x76, 0x8f, 0x6d, 0x18, 0x18, 0xa5, 0xad, 0xa6, 0x7c, 0x87, 0x3f, 0xac,
- 0x2a, 0x8e, 0x7a, 0x80, 0xc3, 0x20, 0x4e, 0x36, 0x43, 0x17, 0x00, 0x6f, 0x35, 0x7b, 0x76, 0xb5,
- 0xf0, 0x5b, 0xb6, 0x5c, 0xb7, 0xc4, 0x72, 0x1d, 0xc6, 0x6d, 0xf5, 0x9e, 0x0d, 0xef, 0x79, 0x16,
- 0xae, 0xd4, 0xc9, 0x4c, 0xda, 0x63, 0x04, 0x69, 0x8e, 0xca, 0x17, 0x73, 0x64, 0xf0, 0x4a, 0xa4,
- 0x23, 0x03, 0x2e, 0x41, 0xbc, 0xe3, 0x83, 0xff, 0x1f, 0x3c, 0xa9, 0x66, 0xb3, 0x44, 0x3c, 0x4a,
- 0xf8, 0x09, 0x4c, 0x7b, 0x4f, 0x60, 0x7f, 0xb3, 0xad, 0x85, 0xef, 0x66, 0xfa, 0xa5, 0xe6, 0x9a,
- 0xb0, 0x8b, 0x36, 0xd4, 0x8c, 0x66, 0xab, 0x56, 0x84, 0x99, 0x5a, 0xc7, 0xde, 0x33, 0xe8, 0xb5,
- 0x3b, 0x46, 0x6f, 0xbb, 0x71, 0x14, 0xb6, 0x19, 0x91, 0xb0, 0x5a, 0xf3, 0x93, 0x5f, 0xcf, 0xc7,
- 0xb4, 0x97, 0x61, 0xea, 0xae, 0xd1, 0xd5, 0xf7, 0x3a, 0xfb, 0x46, 0xfb, 0xc7, 0x7a, 0x53, 0x30,
- 0x9c, 0x70, 0x0d, 0x8b, 0xf1, 0x27, 0x96, 0xf6, 0x2f, 0x10, 0x5c, 0x61, 0xd5, 0xbf, 0xdb, 0x36,
- 0x5b, 0x5b, 0x86, 0xd5, 0xd3, 0xbf, 0x0a, 0x09, 0x9d, 0x00, 0x67, 0xbf, 0xbb, 0x26, 0xdd, 0xef,
- 0x48, 0x5f, 0xf5, 0x25, 0xfb, 0xdf, 0x3a, 0x35, 0x11, 0xf6, 0x38, 0xdc, 0x65, 0xf3, 0xa9, 0x6b,
- 0x30, 0xe6, 0xcc, 0xcf, 0xfb, 0x75, 0x49, 0xf0, 0xeb, 0xb7, 0x3e, 0x7e, 0xd9, 0x3c, 0x92, 0x6f,
- 0x73, 0x7e, 0x31, 0x9f, 0xab, 0xbe, 0xea, 0x4b, 0x2e, 0xf9, 0x4a, 0x09, 0xab, 0xff, 0xb3, 0x19,
- 0x15, 0xee, 0x64, 0x06, 0x12, 0x55, 0x51, 0xc7, 0xdf, 0xcf, 0x0a, 0xc4, 0x6b, 0x9d, 0xa6, 0x2e,
- 0x3f, 0x07, 0x63, 0x6f, 0x34, 0xee, 0xeb, 0x07, 0x24, 0xc8, 0xce, 0x0f, 0x79, 0x11, 0x12, 0xe5,
- 0x56, 0xfb, 0xa0, 0xd9, 0xd5, 0x0d, 0x72, 0x66, 0x4f, 0xb6, 0xd0, 0x2d, 0x9b, 0x3a, 0x95, 0x69,
- 0x65, 0xb8, 0x5c, 0xeb, 0x18, 0xa5, 0x87, 0x26, 0x5b, 0x37, 0x96, 0x84, 0x14, 0x21, 0x67, 0x3e,
- 0x77, 0xac, 0x6c, 0xb4, 0x14, 0x4a, 0x63, 0x1f, 0x9f, 0xce, 0xa3, 0x5d, 0xba, 0x7f, 0xbe, 0x0d,
- 0xcf, 0x93, 0xf4, 0x19, 0x98, 0x2a, 0x1f, 0x36, 0xd5, 0x04, 0x39, 0xa7, 0x66, 0xa6, 0xdb, 0xb2,
- 0xa6, 0x33, 0x7c, 0xa7, 0x7b, 0x3a, 0xcf, 0xac, 0xa6, 0x68, 0xa8, 0x67, 0x78, 0x24, 0xcf, 0x7c,
- 0xa7, 0x5b, 0x0a, 0x9b, 0x4e, 0xf0, 0xec, 0x45, 0x98, 0xa0, 0x32, 0x86, 0x0d, 0x6c, 0xa6, 0xe4,
- 0xb3, 0x1a, 0x4c, 0x32, 0x09, 0x2b, 0x8f, 0x01, 0xda, 0x4c, 0xc6, 0xac, 0xff, 0x4a, 0x49, 0x64,
- 0xfd, 0x57, 0x4e, 0x4a, 0xd9, 0x6b, 0x30, 0x23, 0xec, 0x5f, 0x5a, 0x92, 0x4a, 0x12, 0xac, 0xff,
- 0xaa, 0xc9, 0xc9, 0x54, 0xfc, 0xbd, 0xdf, 0xa8, 0xb1, 0xec, 0x2b, 0x20, 0x0f, 0xee, 0x74, 0xca,
- 0xe3, 0x20, 0x6d, 0x5a, 0x53, 0x3e, 0x0f, 0x52, 0xa9, 0x94, 0x44, 0xa9, 0x99, 0x9f, 0xfd, 0x32,
- 0x3d, 0x59, 0xd2, 0x4d, 0x53, 0xef, 0xde, 0xd3, 0xcd, 0x52, 0x89, 0x18, 0xbf, 0x06, 0x57, 0x7c,
- 0x77, 0x4a, 0x2d, 0xfb, 0x72, 0xd9, 0xb1, 0xaf, 0x54, 0x06, 0xec, 0x2b, 0x15, 0xdb, 0x1e, 0x15,
- 0xdd, 0x13, 0xe7, 0x4d, 0xd9, 0x67, 0x5f, 0x52, 0x69, 0x32, 0x27, 0xdc, 0x9b, 0xc5, 0xd7, 0x88,
- 0x6e, 0xc9, 0x57, 0x57, 0x0f, 0x39, 0xb1, 0x2e, 0x15, 0xcb, 0xc4, 0xbe, 0xec, 0x6b, 0xff, 0x40,
- 0x38, 0x56, 0xe5, 0xdf, 0x10, 0x64, 0x92, 0x32, 0x75, 0xb8, 0xe2, 0x3b, 0x49, 0x8b, 0xb9, 0xec,
- 0x5e, 0xa1, 0x0e, 0x57, 0x7d, 0x75, 0xdb, 0x21, 0x97, 0xbe, 0xaa, 0xc5, 0x65, 0xf2, 0x92, 0xdf,
- 0x5c, 0x91, 0xaf, 0xb8, 0x39, 0xca, 0x55, 0x60, 0x12, 0x20, 0x57, 0xab, 0x58, 0x26, 0x06, 0xa5,
- 0x40, 0x83, 0xe0, 0x28, 0xb9, 0x96, 0xc5, 0xd7, 0xc9, 0x24, 0xe5, 0xc0, 0x49, 0x42, 0x42, 0xe5,
- 0x9a, 0x97, 0x76, 0x4f, 0xce, 0xd4, 0xd8, 0x93, 0x33, 0x35, 0xf6, 0x8f, 0x33, 0x35, 0xf6, 0xc9,
- 0x99, 0x8a, 0x3e, 0x3b, 0x53, 0xd1, 0xe7, 0x67, 0x2a, 0xfa, 0xe2, 0x4c, 0x45, 0xef, 0xf4, 0x55,
- 0xf4, 0x41, 0x5f, 0x45, 0x1f, 0xf6, 0x55, 0xf4, 0xc7, 0xbe, 0x8a, 0x1e, 0xf7, 0x55, 0x74, 0xd2,
- 0x57, 0xd1, 0x93, 0xbe, 0x1a, 0xfb, 0xa4, 0xaf, 0xa2, 0xcf, 0xfa, 0x6a, 0xec, 0xf3, 0xbe, 0x8a,
- 0xbe, 0xe8, 0xab, 0xb1, 0x77, 0x3e, 0x55, 0x63, 0x8f, 0x3e, 0x55, 0x63, 0x1f, 0x7c, 0xaa, 0xa2,
- 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x3d, 0xd8, 0x02, 0x18, 0x4c, 0x36, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.pb.go b/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.pb.go
index 82d30bca79..5d79069250 100644
--- a/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.pb.go
@@ -3,30 +3,26 @@
package test
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
-import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/test/custom-dash-type"
-
-import bytes "bytes"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import compress_gzip "compress/gzip"
-import io_ioutil "io/ioutil"
-
-import strconv "strconv"
-
-import strings "strings"
-import sort "sort"
-import reflect "reflect"
-
-import io "io"
-import encoding_binary "encoding/binary"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
+ github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/test/custom-dash-type"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ sort "sort"
+ strconv "strconv"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -52,6 +48,7 @@ var TheTestEnum_name = map[int32]string{
1: "B",
2: "C",
}
+
var TheTestEnum_value = map[string]int32{
"A": 0,
"B": 1,
@@ -63,9 +60,11 @@ func (x TheTestEnum) Enum() *TheTestEnum {
*p = x
return p
}
+
func (x TheTestEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(TheTestEnum_name, int32(x))
}
+
func (x *TheTestEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(TheTestEnum_value, data, "TheTestEnum")
if err != nil {
@@ -74,8 +73,9 @@ func (x *TheTestEnum) UnmarshalJSON(data []byte) error {
*x = TheTestEnum(value)
return nil
}
+
func (TheTestEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{0}
+ return fileDescriptor_dd04c51887e896dd, []int{0}
}
type AnotherTestEnum int32
@@ -89,6 +89,7 @@ var AnotherTestEnum_name = map[int32]string{
10: "D",
11: "E",
}
+
var AnotherTestEnum_value = map[string]int32{
"D": 10,
"E": 11,
@@ -99,9 +100,11 @@ func (x AnotherTestEnum) Enum() *AnotherTestEnum {
*p = x
return p
}
+
func (x AnotherTestEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(AnotherTestEnum_name, int32(x))
}
+
func (x *AnotherTestEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(AnotherTestEnum_value, data, "AnotherTestEnum")
if err != nil {
@@ -110,8 +113,9 @@ func (x *AnotherTestEnum) UnmarshalJSON(data []byte) error {
*x = AnotherTestEnum(value)
return nil
}
+
func (AnotherTestEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{1}
+ return fileDescriptor_dd04c51887e896dd, []int{1}
}
// YetAnotherTestEnum is used to test cross-package import of custom name
@@ -127,6 +131,7 @@ var YetAnotherTestEnum_name = map[int32]string{
0: "AA",
1: "BB",
}
+
var YetAnotherTestEnum_value = map[string]int32{
"AA": 0,
"BB": 1,
@@ -137,9 +142,11 @@ func (x YetAnotherTestEnum) Enum() *YetAnotherTestEnum {
*p = x
return p
}
+
func (x YetAnotherTestEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(YetAnotherTestEnum_name, int32(x))
}
+
func (x *YetAnotherTestEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(YetAnotherTestEnum_value, data, "YetAnotherTestEnum")
if err != nil {
@@ -148,8 +155,9 @@ func (x *YetAnotherTestEnum) UnmarshalJSON(data []byte) error {
*x = YetAnotherTestEnum(value)
return nil
}
+
func (YetAnotherTestEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{2}
+ return fileDescriptor_dd04c51887e896dd, []int{2}
}
// YetAnotherTestEnum is used to test cross-package import of custom name
@@ -165,6 +173,7 @@ var YetYetAnotherTestEnum_name = map[int32]string{
0: "CC",
1: "DD",
}
+
var YetYetAnotherTestEnum_value = map[string]int32{
"CC": 0,
"DD": 1,
@@ -175,9 +184,11 @@ func (x YetYetAnotherTestEnum) Enum() *YetYetAnotherTestEnum {
*p = x
return p
}
+
func (x YetYetAnotherTestEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(YetYetAnotherTestEnum_name, int32(x))
}
+
func (x *YetYetAnotherTestEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(YetYetAnotherTestEnum_value, data, "YetYetAnotherTestEnum")
if err != nil {
@@ -186,8 +197,9 @@ func (x *YetYetAnotherTestEnum) UnmarshalJSON(data []byte) error {
*x = YetYetAnotherTestEnum(value)
return nil
}
+
func (YetYetAnotherTestEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{3}
+ return fileDescriptor_dd04c51887e896dd, []int{3}
}
type NestedDefinition_NestedEnum int32
@@ -199,6 +211,7 @@ const (
var NestedDefinition_NestedEnum_name = map[int32]string{
1: "TYPE_NESTED",
}
+
var NestedDefinition_NestedEnum_value = map[string]int32{
"TYPE_NESTED": 1,
}
@@ -208,9 +221,11 @@ func (x NestedDefinition_NestedEnum) Enum() *NestedDefinition_NestedEnum {
*p = x
return p
}
+
func (x NestedDefinition_NestedEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(NestedDefinition_NestedEnum_name, int32(x))
}
+
func (x *NestedDefinition_NestedEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(NestedDefinition_NestedEnum_value, data, "NestedDefinition_NestedEnum")
if err != nil {
@@ -219,8 +234,9 @@ func (x *NestedDefinition_NestedEnum) UnmarshalJSON(data []byte) error {
*x = NestedDefinition_NestedEnum(value)
return nil
}
+
func (NestedDefinition_NestedEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{42, 0}
+ return fileDescriptor_dd04c51887e896dd, []int{42, 0}
}
type NidOptNative struct {
@@ -247,7 +263,7 @@ type NidOptNative struct {
func (m *NidOptNative) Reset() { *m = NidOptNative{} }
func (*NidOptNative) ProtoMessage() {}
func (*NidOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{0}
+ return fileDescriptor_dd04c51887e896dd, []int{0}
}
func (m *NidOptNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -255,8 +271,8 @@ func (m *NidOptNative) XXX_Unmarshal(b []byte) error {
func (m *NidOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidOptNative.Marshal(b, m, deterministic)
}
-func (dst *NidOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptNative.Merge(dst, src)
+func (m *NidOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptNative.Merge(m, src)
}
func (m *NidOptNative) XXX_Size() int {
return xxx_messageInfo_NidOptNative.Size(m)
@@ -291,7 +307,7 @@ type NinOptNative struct {
func (m *NinOptNative) Reset() { *m = NinOptNative{} }
func (*NinOptNative) ProtoMessage() {}
func (*NinOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{1}
+ return fileDescriptor_dd04c51887e896dd, []int{1}
}
func (m *NinOptNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -299,8 +315,8 @@ func (m *NinOptNative) XXX_Unmarshal(b []byte) error {
func (m *NinOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptNative.Marshal(b, m, deterministic)
}
-func (dst *NinOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptNative.Merge(dst, src)
+func (m *NinOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptNative.Merge(m, src)
}
func (m *NinOptNative) XXX_Size() int {
return xxx_messageInfo_NinOptNative.Size(m)
@@ -335,7 +351,7 @@ type NidRepNative struct {
func (m *NidRepNative) Reset() { *m = NidRepNative{} }
func (*NidRepNative) ProtoMessage() {}
func (*NidRepNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{2}
+ return fileDescriptor_dd04c51887e896dd, []int{2}
}
func (m *NidRepNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -343,8 +359,8 @@ func (m *NidRepNative) XXX_Unmarshal(b []byte) error {
func (m *NidRepNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidRepNative.Marshal(b, m, deterministic)
}
-func (dst *NidRepNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepNative.Merge(dst, src)
+func (m *NidRepNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepNative.Merge(m, src)
}
func (m *NidRepNative) XXX_Size() int {
return xxx_messageInfo_NidRepNative.Size(m)
@@ -379,7 +395,7 @@ type NinRepNative struct {
func (m *NinRepNative) Reset() { *m = NinRepNative{} }
func (*NinRepNative) ProtoMessage() {}
func (*NinRepNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{3}
+ return fileDescriptor_dd04c51887e896dd, []int{3}
}
func (m *NinRepNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -387,8 +403,8 @@ func (m *NinRepNative) XXX_Unmarshal(b []byte) error {
func (m *NinRepNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinRepNative.Marshal(b, m, deterministic)
}
-func (dst *NinRepNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepNative.Merge(dst, src)
+func (m *NinRepNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepNative.Merge(m, src)
}
func (m *NinRepNative) XXX_Size() int {
return xxx_messageInfo_NinRepNative.Size(m)
@@ -421,7 +437,7 @@ type NidRepPackedNative struct {
func (m *NidRepPackedNative) Reset() { *m = NidRepPackedNative{} }
func (*NidRepPackedNative) ProtoMessage() {}
func (*NidRepPackedNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{4}
+ return fileDescriptor_dd04c51887e896dd, []int{4}
}
func (m *NidRepPackedNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -429,8 +445,8 @@ func (m *NidRepPackedNative) XXX_Unmarshal(b []byte) error {
func (m *NidRepPackedNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidRepPackedNative.Marshal(b, m, deterministic)
}
-func (dst *NidRepPackedNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepPackedNative.Merge(dst, src)
+func (m *NidRepPackedNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepPackedNative.Merge(m, src)
}
func (m *NidRepPackedNative) XXX_Size() int {
return xxx_messageInfo_NidRepPackedNative.Size(m)
@@ -463,7 +479,7 @@ type NinRepPackedNative struct {
func (m *NinRepPackedNative) Reset() { *m = NinRepPackedNative{} }
func (*NinRepPackedNative) ProtoMessage() {}
func (*NinRepPackedNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{5}
+ return fileDescriptor_dd04c51887e896dd, []int{5}
}
func (m *NinRepPackedNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -471,8 +487,8 @@ func (m *NinRepPackedNative) XXX_Unmarshal(b []byte) error {
func (m *NinRepPackedNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinRepPackedNative.Marshal(b, m, deterministic)
}
-func (dst *NinRepPackedNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepPackedNative.Merge(dst, src)
+func (m *NinRepPackedNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepPackedNative.Merge(m, src)
}
func (m *NinRepPackedNative) XXX_Size() int {
return xxx_messageInfo_NinRepPackedNative.Size(m)
@@ -502,7 +518,7 @@ type NidOptStruct struct {
func (m *NidOptStruct) Reset() { *m = NidOptStruct{} }
func (*NidOptStruct) ProtoMessage() {}
func (*NidOptStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{6}
+ return fileDescriptor_dd04c51887e896dd, []int{6}
}
func (m *NidOptStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -510,8 +526,8 @@ func (m *NidOptStruct) XXX_Unmarshal(b []byte) error {
func (m *NidOptStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidOptStruct.Marshal(b, m, deterministic)
}
-func (dst *NidOptStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptStruct.Merge(dst, src)
+func (m *NidOptStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptStruct.Merge(m, src)
}
func (m *NidOptStruct) XXX_Size() int {
return xxx_messageInfo_NidOptStruct.Size(m)
@@ -541,7 +557,7 @@ type NinOptStruct struct {
func (m *NinOptStruct) Reset() { *m = NinOptStruct{} }
func (*NinOptStruct) ProtoMessage() {}
func (*NinOptStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{7}
+ return fileDescriptor_dd04c51887e896dd, []int{7}
}
func (m *NinOptStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -549,8 +565,8 @@ func (m *NinOptStruct) XXX_Unmarshal(b []byte) error {
func (m *NinOptStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptStruct.Marshal(b, m, deterministic)
}
-func (dst *NinOptStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptStruct.Merge(dst, src)
+func (m *NinOptStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptStruct.Merge(m, src)
}
func (m *NinOptStruct) XXX_Size() int {
return xxx_messageInfo_NinOptStruct.Size(m)
@@ -580,7 +596,7 @@ type NidRepStruct struct {
func (m *NidRepStruct) Reset() { *m = NidRepStruct{} }
func (*NidRepStruct) ProtoMessage() {}
func (*NidRepStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{8}
+ return fileDescriptor_dd04c51887e896dd, []int{8}
}
func (m *NidRepStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -588,8 +604,8 @@ func (m *NidRepStruct) XXX_Unmarshal(b []byte) error {
func (m *NidRepStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidRepStruct.Marshal(b, m, deterministic)
}
-func (dst *NidRepStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepStruct.Merge(dst, src)
+func (m *NidRepStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepStruct.Merge(m, src)
}
func (m *NidRepStruct) XXX_Size() int {
return xxx_messageInfo_NidRepStruct.Size(m)
@@ -619,7 +635,7 @@ type NinRepStruct struct {
func (m *NinRepStruct) Reset() { *m = NinRepStruct{} }
func (*NinRepStruct) ProtoMessage() {}
func (*NinRepStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{9}
+ return fileDescriptor_dd04c51887e896dd, []int{9}
}
func (m *NinRepStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -627,8 +643,8 @@ func (m *NinRepStruct) XXX_Unmarshal(b []byte) error {
func (m *NinRepStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinRepStruct.Marshal(b, m, deterministic)
}
-func (dst *NinRepStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepStruct.Merge(dst, src)
+func (m *NinRepStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepStruct.Merge(m, src)
}
func (m *NinRepStruct) XXX_Size() int {
return xxx_messageInfo_NinRepStruct.Size(m)
@@ -651,7 +667,7 @@ type NidEmbeddedStruct struct {
func (m *NidEmbeddedStruct) Reset() { *m = NidEmbeddedStruct{} }
func (*NidEmbeddedStruct) ProtoMessage() {}
func (*NidEmbeddedStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{10}
+ return fileDescriptor_dd04c51887e896dd, []int{10}
}
func (m *NidEmbeddedStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -659,8 +675,8 @@ func (m *NidEmbeddedStruct) XXX_Unmarshal(b []byte) error {
func (m *NidEmbeddedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidEmbeddedStruct.Marshal(b, m, deterministic)
}
-func (dst *NidEmbeddedStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidEmbeddedStruct.Merge(dst, src)
+func (m *NidEmbeddedStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidEmbeddedStruct.Merge(m, src)
}
func (m *NidEmbeddedStruct) XXX_Size() int {
return xxx_messageInfo_NidEmbeddedStruct.Size(m)
@@ -683,7 +699,7 @@ type NinEmbeddedStruct struct {
func (m *NinEmbeddedStruct) Reset() { *m = NinEmbeddedStruct{} }
func (*NinEmbeddedStruct) ProtoMessage() {}
func (*NinEmbeddedStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{11}
+ return fileDescriptor_dd04c51887e896dd, []int{11}
}
func (m *NinEmbeddedStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -691,8 +707,8 @@ func (m *NinEmbeddedStruct) XXX_Unmarshal(b []byte) error {
func (m *NinEmbeddedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinEmbeddedStruct.Marshal(b, m, deterministic)
}
-func (dst *NinEmbeddedStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinEmbeddedStruct.Merge(dst, src)
+func (m *NinEmbeddedStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinEmbeddedStruct.Merge(m, src)
}
func (m *NinEmbeddedStruct) XXX_Size() int {
return xxx_messageInfo_NinEmbeddedStruct.Size(m)
@@ -714,7 +730,7 @@ type NidNestedStruct struct {
func (m *NidNestedStruct) Reset() { *m = NidNestedStruct{} }
func (*NidNestedStruct) ProtoMessage() {}
func (*NidNestedStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{12}
+ return fileDescriptor_dd04c51887e896dd, []int{12}
}
func (m *NidNestedStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -722,8 +738,8 @@ func (m *NidNestedStruct) XXX_Unmarshal(b []byte) error {
func (m *NidNestedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidNestedStruct.Marshal(b, m, deterministic)
}
-func (dst *NidNestedStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidNestedStruct.Merge(dst, src)
+func (m *NidNestedStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidNestedStruct.Merge(m, src)
}
func (m *NidNestedStruct) XXX_Size() int {
return xxx_messageInfo_NidNestedStruct.Size(m)
@@ -745,7 +761,7 @@ type NinNestedStruct struct {
func (m *NinNestedStruct) Reset() { *m = NinNestedStruct{} }
func (*NinNestedStruct) ProtoMessage() {}
func (*NinNestedStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{13}
+ return fileDescriptor_dd04c51887e896dd, []int{13}
}
func (m *NinNestedStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -753,8 +769,8 @@ func (m *NinNestedStruct) XXX_Unmarshal(b []byte) error {
func (m *NinNestedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinNestedStruct.Marshal(b, m, deterministic)
}
-func (dst *NinNestedStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinNestedStruct.Merge(dst, src)
+func (m *NinNestedStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinNestedStruct.Merge(m, src)
}
func (m *NinNestedStruct) XXX_Size() int {
return xxx_messageInfo_NinNestedStruct.Size(m)
@@ -776,7 +792,7 @@ type NidOptCustom struct {
func (m *NidOptCustom) Reset() { *m = NidOptCustom{} }
func (*NidOptCustom) ProtoMessage() {}
func (*NidOptCustom) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{14}
+ return fileDescriptor_dd04c51887e896dd, []int{14}
}
func (m *NidOptCustom) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -784,8 +800,8 @@ func (m *NidOptCustom) XXX_Unmarshal(b []byte) error {
func (m *NidOptCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidOptCustom.Marshal(b, m, deterministic)
}
-func (dst *NidOptCustom) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptCustom.Merge(dst, src)
+func (m *NidOptCustom) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptCustom.Merge(m, src)
}
func (m *NidOptCustom) XXX_Size() int {
return xxx_messageInfo_NidOptCustom.Size(m)
@@ -806,7 +822,7 @@ type CustomDash struct {
func (m *CustomDash) Reset() { *m = CustomDash{} }
func (*CustomDash) ProtoMessage() {}
func (*CustomDash) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{15}
+ return fileDescriptor_dd04c51887e896dd, []int{15}
}
func (m *CustomDash) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -814,8 +830,8 @@ func (m *CustomDash) XXX_Unmarshal(b []byte) error {
func (m *CustomDash) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomDash.Marshal(b, m, deterministic)
}
-func (dst *CustomDash) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomDash.Merge(dst, src)
+func (m *CustomDash) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomDash.Merge(m, src)
}
func (m *CustomDash) XXX_Size() int {
return xxx_messageInfo_CustomDash.Size(m)
@@ -837,7 +853,7 @@ type NinOptCustom struct {
func (m *NinOptCustom) Reset() { *m = NinOptCustom{} }
func (*NinOptCustom) ProtoMessage() {}
func (*NinOptCustom) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{16}
+ return fileDescriptor_dd04c51887e896dd, []int{16}
}
func (m *NinOptCustom) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -845,8 +861,8 @@ func (m *NinOptCustom) XXX_Unmarshal(b []byte) error {
func (m *NinOptCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptCustom.Marshal(b, m, deterministic)
}
-func (dst *NinOptCustom) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptCustom.Merge(dst, src)
+func (m *NinOptCustom) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptCustom.Merge(m, src)
}
func (m *NinOptCustom) XXX_Size() int {
return xxx_messageInfo_NinOptCustom.Size(m)
@@ -868,7 +884,7 @@ type NidRepCustom struct {
func (m *NidRepCustom) Reset() { *m = NidRepCustom{} }
func (*NidRepCustom) ProtoMessage() {}
func (*NidRepCustom) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{17}
+ return fileDescriptor_dd04c51887e896dd, []int{17}
}
func (m *NidRepCustom) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -876,8 +892,8 @@ func (m *NidRepCustom) XXX_Unmarshal(b []byte) error {
func (m *NidRepCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidRepCustom.Marshal(b, m, deterministic)
}
-func (dst *NidRepCustom) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepCustom.Merge(dst, src)
+func (m *NidRepCustom) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepCustom.Merge(m, src)
}
func (m *NidRepCustom) XXX_Size() int {
return xxx_messageInfo_NidRepCustom.Size(m)
@@ -899,7 +915,7 @@ type NinRepCustom struct {
func (m *NinRepCustom) Reset() { *m = NinRepCustom{} }
func (*NinRepCustom) ProtoMessage() {}
func (*NinRepCustom) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{18}
+ return fileDescriptor_dd04c51887e896dd, []int{18}
}
func (m *NinRepCustom) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -907,8 +923,8 @@ func (m *NinRepCustom) XXX_Unmarshal(b []byte) error {
func (m *NinRepCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinRepCustom.Marshal(b, m, deterministic)
}
-func (dst *NinRepCustom) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepCustom.Merge(dst, src)
+func (m *NinRepCustom) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepCustom.Merge(m, src)
}
func (m *NinRepCustom) XXX_Size() int {
return xxx_messageInfo_NinRepCustom.Size(m)
@@ -937,7 +953,7 @@ type NinOptNativeUnion struct {
func (m *NinOptNativeUnion) Reset() { *m = NinOptNativeUnion{} }
func (*NinOptNativeUnion) ProtoMessage() {}
func (*NinOptNativeUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{19}
+ return fileDescriptor_dd04c51887e896dd, []int{19}
}
func (m *NinOptNativeUnion) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -945,8 +961,8 @@ func (m *NinOptNativeUnion) XXX_Unmarshal(b []byte) error {
func (m *NinOptNativeUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptNativeUnion.Marshal(b, m, deterministic)
}
-func (dst *NinOptNativeUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptNativeUnion.Merge(dst, src)
+func (m *NinOptNativeUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptNativeUnion.Merge(m, src)
}
func (m *NinOptNativeUnion) XXX_Size() int {
return xxx_messageInfo_NinOptNativeUnion.Size(m)
@@ -975,7 +991,7 @@ type NinOptStructUnion struct {
func (m *NinOptStructUnion) Reset() { *m = NinOptStructUnion{} }
func (*NinOptStructUnion) ProtoMessage() {}
func (*NinOptStructUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{20}
+ return fileDescriptor_dd04c51887e896dd, []int{20}
}
func (m *NinOptStructUnion) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -983,8 +999,8 @@ func (m *NinOptStructUnion) XXX_Unmarshal(b []byte) error {
func (m *NinOptStructUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptStructUnion.Marshal(b, m, deterministic)
}
-func (dst *NinOptStructUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptStructUnion.Merge(dst, src)
+func (m *NinOptStructUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptStructUnion.Merge(m, src)
}
func (m *NinOptStructUnion) XXX_Size() int {
return xxx_messageInfo_NinOptStructUnion.Size(m)
@@ -1007,7 +1023,7 @@ type NinEmbeddedStructUnion struct {
func (m *NinEmbeddedStructUnion) Reset() { *m = NinEmbeddedStructUnion{} }
func (*NinEmbeddedStructUnion) ProtoMessage() {}
func (*NinEmbeddedStructUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{21}
+ return fileDescriptor_dd04c51887e896dd, []int{21}
}
func (m *NinEmbeddedStructUnion) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1015,8 +1031,8 @@ func (m *NinEmbeddedStructUnion) XXX_Unmarshal(b []byte) error {
func (m *NinEmbeddedStructUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinEmbeddedStructUnion.Marshal(b, m, deterministic)
}
-func (dst *NinEmbeddedStructUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinEmbeddedStructUnion.Merge(dst, src)
+func (m *NinEmbeddedStructUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinEmbeddedStructUnion.Merge(m, src)
}
func (m *NinEmbeddedStructUnion) XXX_Size() int {
return xxx_messageInfo_NinEmbeddedStructUnion.Size(m)
@@ -1039,7 +1055,7 @@ type NinNestedStructUnion struct {
func (m *NinNestedStructUnion) Reset() { *m = NinNestedStructUnion{} }
func (*NinNestedStructUnion) ProtoMessage() {}
func (*NinNestedStructUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{22}
+ return fileDescriptor_dd04c51887e896dd, []int{22}
}
func (m *NinNestedStructUnion) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1047,8 +1063,8 @@ func (m *NinNestedStructUnion) XXX_Unmarshal(b []byte) error {
func (m *NinNestedStructUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinNestedStructUnion.Marshal(b, m, deterministic)
}
-func (dst *NinNestedStructUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinNestedStructUnion.Merge(dst, src)
+func (m *NinNestedStructUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinNestedStructUnion.Merge(m, src)
}
func (m *NinNestedStructUnion) XXX_Size() int {
return xxx_messageInfo_NinNestedStructUnion.Size(m)
@@ -1071,7 +1087,7 @@ type Tree struct {
func (m *Tree) Reset() { *m = Tree{} }
func (*Tree) ProtoMessage() {}
func (*Tree) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{23}
+ return fileDescriptor_dd04c51887e896dd, []int{23}
}
func (m *Tree) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1079,8 +1095,8 @@ func (m *Tree) XXX_Unmarshal(b []byte) error {
func (m *Tree) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Tree.Marshal(b, m, deterministic)
}
-func (dst *Tree) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Tree.Merge(dst, src)
+func (m *Tree) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Tree.Merge(m, src)
}
func (m *Tree) XXX_Size() int {
return xxx_messageInfo_Tree.Size(m)
@@ -1102,7 +1118,7 @@ type OrBranch struct {
func (m *OrBranch) Reset() { *m = OrBranch{} }
func (*OrBranch) ProtoMessage() {}
func (*OrBranch) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{24}
+ return fileDescriptor_dd04c51887e896dd, []int{24}
}
func (m *OrBranch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1110,8 +1126,8 @@ func (m *OrBranch) XXX_Unmarshal(b []byte) error {
func (m *OrBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OrBranch.Marshal(b, m, deterministic)
}
-func (dst *OrBranch) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OrBranch.Merge(dst, src)
+func (m *OrBranch) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OrBranch.Merge(m, src)
}
func (m *OrBranch) XXX_Size() int {
return xxx_messageInfo_OrBranch.Size(m)
@@ -1133,7 +1149,7 @@ type AndBranch struct {
func (m *AndBranch) Reset() { *m = AndBranch{} }
func (*AndBranch) ProtoMessage() {}
func (*AndBranch) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{25}
+ return fileDescriptor_dd04c51887e896dd, []int{25}
}
func (m *AndBranch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1141,8 +1157,8 @@ func (m *AndBranch) XXX_Unmarshal(b []byte) error {
func (m *AndBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AndBranch.Marshal(b, m, deterministic)
}
-func (dst *AndBranch) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AndBranch.Merge(dst, src)
+func (m *AndBranch) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AndBranch.Merge(m, src)
}
func (m *AndBranch) XXX_Size() int {
return xxx_messageInfo_AndBranch.Size(m)
@@ -1164,7 +1180,7 @@ type Leaf struct {
func (m *Leaf) Reset() { *m = Leaf{} }
func (*Leaf) ProtoMessage() {}
func (*Leaf) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{26}
+ return fileDescriptor_dd04c51887e896dd, []int{26}
}
func (m *Leaf) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1172,8 +1188,8 @@ func (m *Leaf) XXX_Unmarshal(b []byte) error {
func (m *Leaf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Leaf.Marshal(b, m, deterministic)
}
-func (dst *Leaf) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Leaf.Merge(dst, src)
+func (m *Leaf) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Leaf.Merge(m, src)
}
func (m *Leaf) XXX_Size() int {
return xxx_messageInfo_Leaf.Size(m)
@@ -1196,7 +1212,7 @@ type DeepTree struct {
func (m *DeepTree) Reset() { *m = DeepTree{} }
func (*DeepTree) ProtoMessage() {}
func (*DeepTree) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{27}
+ return fileDescriptor_dd04c51887e896dd, []int{27}
}
func (m *DeepTree) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1204,8 +1220,8 @@ func (m *DeepTree) XXX_Unmarshal(b []byte) error {
func (m *DeepTree) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DeepTree.Marshal(b, m, deterministic)
}
-func (dst *DeepTree) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DeepTree.Merge(dst, src)
+func (m *DeepTree) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DeepTree.Merge(m, src)
}
func (m *DeepTree) XXX_Size() int {
return xxx_messageInfo_DeepTree.Size(m)
@@ -1226,7 +1242,7 @@ type ADeepBranch struct {
func (m *ADeepBranch) Reset() { *m = ADeepBranch{} }
func (*ADeepBranch) ProtoMessage() {}
func (*ADeepBranch) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{28}
+ return fileDescriptor_dd04c51887e896dd, []int{28}
}
func (m *ADeepBranch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1234,8 +1250,8 @@ func (m *ADeepBranch) XXX_Unmarshal(b []byte) error {
func (m *ADeepBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ADeepBranch.Marshal(b, m, deterministic)
}
-func (dst *ADeepBranch) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ADeepBranch.Merge(dst, src)
+func (m *ADeepBranch) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ADeepBranch.Merge(m, src)
}
func (m *ADeepBranch) XXX_Size() int {
return xxx_messageInfo_ADeepBranch.Size(m)
@@ -1257,7 +1273,7 @@ type AndDeepBranch struct {
func (m *AndDeepBranch) Reset() { *m = AndDeepBranch{} }
func (*AndDeepBranch) ProtoMessage() {}
func (*AndDeepBranch) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{29}
+ return fileDescriptor_dd04c51887e896dd, []int{29}
}
func (m *AndDeepBranch) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1265,8 +1281,8 @@ func (m *AndDeepBranch) XXX_Unmarshal(b []byte) error {
func (m *AndDeepBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AndDeepBranch.Marshal(b, m, deterministic)
}
-func (dst *AndDeepBranch) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AndDeepBranch.Merge(dst, src)
+func (m *AndDeepBranch) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AndDeepBranch.Merge(m, src)
}
func (m *AndDeepBranch) XXX_Size() int {
return xxx_messageInfo_AndDeepBranch.Size(m)
@@ -1287,7 +1303,7 @@ type DeepLeaf struct {
func (m *DeepLeaf) Reset() { *m = DeepLeaf{} }
func (*DeepLeaf) ProtoMessage() {}
func (*DeepLeaf) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{30}
+ return fileDescriptor_dd04c51887e896dd, []int{30}
}
func (m *DeepLeaf) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1295,8 +1311,8 @@ func (m *DeepLeaf) XXX_Unmarshal(b []byte) error {
func (m *DeepLeaf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DeepLeaf.Marshal(b, m, deterministic)
}
-func (dst *DeepLeaf) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DeepLeaf.Merge(dst, src)
+func (m *DeepLeaf) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DeepLeaf.Merge(m, src)
}
func (m *DeepLeaf) XXX_Size() int {
return xxx_messageInfo_DeepLeaf.Size(m)
@@ -1316,7 +1332,7 @@ type Nil struct {
func (m *Nil) Reset() { *m = Nil{} }
func (*Nil) ProtoMessage() {}
func (*Nil) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{31}
+ return fileDescriptor_dd04c51887e896dd, []int{31}
}
func (m *Nil) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1324,8 +1340,8 @@ func (m *Nil) XXX_Unmarshal(b []byte) error {
func (m *Nil) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Nil.Marshal(b, m, deterministic)
}
-func (dst *Nil) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Nil.Merge(dst, src)
+func (m *Nil) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Nil.Merge(m, src)
}
func (m *Nil) XXX_Size() int {
return xxx_messageInfo_Nil.Size(m)
@@ -1346,7 +1362,7 @@ type NidOptEnum struct {
func (m *NidOptEnum) Reset() { *m = NidOptEnum{} }
func (*NidOptEnum) ProtoMessage() {}
func (*NidOptEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{32}
+ return fileDescriptor_dd04c51887e896dd, []int{32}
}
func (m *NidOptEnum) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1354,8 +1370,8 @@ func (m *NidOptEnum) XXX_Unmarshal(b []byte) error {
func (m *NidOptEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidOptEnum.Marshal(b, m, deterministic)
}
-func (dst *NidOptEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptEnum.Merge(dst, src)
+func (m *NidOptEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptEnum.Merge(m, src)
}
func (m *NidOptEnum) XXX_Size() int {
return xxx_messageInfo_NidOptEnum.Size(m)
@@ -1378,7 +1394,7 @@ type NinOptEnum struct {
func (m *NinOptEnum) Reset() { *m = NinOptEnum{} }
func (*NinOptEnum) ProtoMessage() {}
func (*NinOptEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{33}
+ return fileDescriptor_dd04c51887e896dd, []int{33}
}
func (m *NinOptEnum) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1386,8 +1402,8 @@ func (m *NinOptEnum) XXX_Unmarshal(b []byte) error {
func (m *NinOptEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptEnum.Marshal(b, m, deterministic)
}
-func (dst *NinOptEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptEnum.Merge(dst, src)
+func (m *NinOptEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptEnum.Merge(m, src)
}
func (m *NinOptEnum) XXX_Size() int {
return xxx_messageInfo_NinOptEnum.Size(m)
@@ -1410,7 +1426,7 @@ type NidRepEnum struct {
func (m *NidRepEnum) Reset() { *m = NidRepEnum{} }
func (*NidRepEnum) ProtoMessage() {}
func (*NidRepEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{34}
+ return fileDescriptor_dd04c51887e896dd, []int{34}
}
func (m *NidRepEnum) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1418,8 +1434,8 @@ func (m *NidRepEnum) XXX_Unmarshal(b []byte) error {
func (m *NidRepEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidRepEnum.Marshal(b, m, deterministic)
}
-func (dst *NidRepEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepEnum.Merge(dst, src)
+func (m *NidRepEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepEnum.Merge(m, src)
}
func (m *NidRepEnum) XXX_Size() int {
return xxx_messageInfo_NidRepEnum.Size(m)
@@ -1442,7 +1458,7 @@ type NinRepEnum struct {
func (m *NinRepEnum) Reset() { *m = NinRepEnum{} }
func (*NinRepEnum) ProtoMessage() {}
func (*NinRepEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{35}
+ return fileDescriptor_dd04c51887e896dd, []int{35}
}
func (m *NinRepEnum) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1450,8 +1466,8 @@ func (m *NinRepEnum) XXX_Unmarshal(b []byte) error {
func (m *NinRepEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinRepEnum.Marshal(b, m, deterministic)
}
-func (dst *NinRepEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepEnum.Merge(dst, src)
+func (m *NinRepEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepEnum.Merge(m, src)
}
func (m *NinRepEnum) XXX_Size() int {
return xxx_messageInfo_NinRepEnum.Size(m)
@@ -1474,7 +1490,7 @@ type NinOptEnumDefault struct {
func (m *NinOptEnumDefault) Reset() { *m = NinOptEnumDefault{} }
func (*NinOptEnumDefault) ProtoMessage() {}
func (*NinOptEnumDefault) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{36}
+ return fileDescriptor_dd04c51887e896dd, []int{36}
}
func (m *NinOptEnumDefault) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1482,8 +1498,8 @@ func (m *NinOptEnumDefault) XXX_Unmarshal(b []byte) error {
func (m *NinOptEnumDefault) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptEnumDefault.Marshal(b, m, deterministic)
}
-func (dst *NinOptEnumDefault) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptEnumDefault.Merge(dst, src)
+func (m *NinOptEnumDefault) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptEnumDefault.Merge(m, src)
}
func (m *NinOptEnumDefault) XXX_Size() int {
return xxx_messageInfo_NinOptEnumDefault.Size(m)
@@ -1531,7 +1547,7 @@ type AnotherNinOptEnum struct {
func (m *AnotherNinOptEnum) Reset() { *m = AnotherNinOptEnum{} }
func (*AnotherNinOptEnum) ProtoMessage() {}
func (*AnotherNinOptEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{37}
+ return fileDescriptor_dd04c51887e896dd, []int{37}
}
func (m *AnotherNinOptEnum) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1539,8 +1555,8 @@ func (m *AnotherNinOptEnum) XXX_Unmarshal(b []byte) error {
func (m *AnotherNinOptEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AnotherNinOptEnum.Marshal(b, m, deterministic)
}
-func (dst *AnotherNinOptEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AnotherNinOptEnum.Merge(dst, src)
+func (m *AnotherNinOptEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AnotherNinOptEnum.Merge(m, src)
}
func (m *AnotherNinOptEnum) XXX_Size() int {
return xxx_messageInfo_AnotherNinOptEnum.Size(m)
@@ -1563,7 +1579,7 @@ type AnotherNinOptEnumDefault struct {
func (m *AnotherNinOptEnumDefault) Reset() { *m = AnotherNinOptEnumDefault{} }
func (*AnotherNinOptEnumDefault) ProtoMessage() {}
func (*AnotherNinOptEnumDefault) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{38}
+ return fileDescriptor_dd04c51887e896dd, []int{38}
}
func (m *AnotherNinOptEnumDefault) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1571,8 +1587,8 @@ func (m *AnotherNinOptEnumDefault) XXX_Unmarshal(b []byte) error {
func (m *AnotherNinOptEnumDefault) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AnotherNinOptEnumDefault.Marshal(b, m, deterministic)
}
-func (dst *AnotherNinOptEnumDefault) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AnotherNinOptEnumDefault.Merge(dst, src)
+func (m *AnotherNinOptEnumDefault) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AnotherNinOptEnumDefault.Merge(m, src)
}
func (m *AnotherNinOptEnumDefault) XXX_Size() int {
return xxx_messageInfo_AnotherNinOptEnumDefault.Size(m)
@@ -1620,7 +1636,7 @@ type Timer struct {
func (m *Timer) Reset() { *m = Timer{} }
func (*Timer) ProtoMessage() {}
func (*Timer) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{39}
+ return fileDescriptor_dd04c51887e896dd, []int{39}
}
func (m *Timer) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1628,8 +1644,8 @@ func (m *Timer) XXX_Unmarshal(b []byte) error {
func (m *Timer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Timer.Marshal(b, m, deterministic)
}
-func (dst *Timer) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Timer.Merge(dst, src)
+func (m *Timer) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Timer.Merge(m, src)
}
func (m *Timer) XXX_Size() int {
return xxx_messageInfo_Timer.Size(m)
@@ -1651,7 +1667,7 @@ type MyExtendable struct {
func (m *MyExtendable) Reset() { *m = MyExtendable{} }
func (*MyExtendable) ProtoMessage() {}
func (*MyExtendable) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{40}
+ return fileDescriptor_dd04c51887e896dd, []int{40}
}
var extRange_MyExtendable = []proto.ExtensionRange{
@@ -1661,14 +1677,15 @@ var extRange_MyExtendable = []proto.ExtensionRange{
func (*MyExtendable) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_MyExtendable
}
+
func (m *MyExtendable) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *MyExtendable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MyExtendable.Marshal(b, m, deterministic)
}
-func (dst *MyExtendable) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MyExtendable.Merge(dst, src)
+func (m *MyExtendable) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MyExtendable.Merge(m, src)
}
func (m *MyExtendable) XXX_Size() int {
return xxx_messageInfo_MyExtendable.Size(m)
@@ -1692,7 +1709,7 @@ type OtherExtenable struct {
func (m *OtherExtenable) Reset() { *m = OtherExtenable{} }
func (*OtherExtenable) ProtoMessage() {}
func (*OtherExtenable) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{41}
+ return fileDescriptor_dd04c51887e896dd, []int{41}
}
var extRange_OtherExtenable = []proto.ExtensionRange{
@@ -1703,14 +1720,15 @@ var extRange_OtherExtenable = []proto.ExtensionRange{
func (*OtherExtenable) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_OtherExtenable
}
+
func (m *OtherExtenable) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *OtherExtenable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OtherExtenable.Marshal(b, m, deterministic)
}
-func (dst *OtherExtenable) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OtherExtenable.Merge(dst, src)
+func (m *OtherExtenable) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OtherExtenable.Merge(m, src)
}
func (m *OtherExtenable) XXX_Size() int {
return xxx_messageInfo_OtherExtenable.Size(m)
@@ -1734,7 +1752,7 @@ type NestedDefinition struct {
func (m *NestedDefinition) Reset() { *m = NestedDefinition{} }
func (*NestedDefinition) ProtoMessage() {}
func (*NestedDefinition) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{42}
+ return fileDescriptor_dd04c51887e896dd, []int{42}
}
func (m *NestedDefinition) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1742,8 +1760,8 @@ func (m *NestedDefinition) XXX_Unmarshal(b []byte) error {
func (m *NestedDefinition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NestedDefinition.Marshal(b, m, deterministic)
}
-func (dst *NestedDefinition) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedDefinition.Merge(dst, src)
+func (m *NestedDefinition) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedDefinition.Merge(m, src)
}
func (m *NestedDefinition) XXX_Size() int {
return xxx_messageInfo_NestedDefinition.Size(m)
@@ -1765,7 +1783,7 @@ type NestedDefinition_NestedMessage struct {
func (m *NestedDefinition_NestedMessage) Reset() { *m = NestedDefinition_NestedMessage{} }
func (*NestedDefinition_NestedMessage) ProtoMessage() {}
func (*NestedDefinition_NestedMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{42, 0}
+ return fileDescriptor_dd04c51887e896dd, []int{42, 0}
}
func (m *NestedDefinition_NestedMessage) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1773,8 +1791,8 @@ func (m *NestedDefinition_NestedMessage) XXX_Unmarshal(b []byte) error {
func (m *NestedDefinition_NestedMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NestedDefinition_NestedMessage.Marshal(b, m, deterministic)
}
-func (dst *NestedDefinition_NestedMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedDefinition_NestedMessage.Merge(dst, src)
+func (m *NestedDefinition_NestedMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedDefinition_NestedMessage.Merge(m, src)
}
func (m *NestedDefinition_NestedMessage) XXX_Size() int {
return xxx_messageInfo_NestedDefinition_NestedMessage.Size(m)
@@ -1797,7 +1815,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Reset() {
}
func (*NestedDefinition_NestedMessage_NestedNestedMsg) ProtoMessage() {}
func (*NestedDefinition_NestedMessage_NestedNestedMsg) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{42, 0, 0}
+ return fileDescriptor_dd04c51887e896dd, []int{42, 0, 0}
}
func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1805,8 +1823,8 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Unmarshal(b []byte)
func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NestedDefinition_NestedMessage_NestedNestedMsg.Marshal(b, m, deterministic)
}
-func (dst *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedDefinition_NestedMessage_NestedNestedMsg.Merge(dst, src)
+func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedDefinition_NestedMessage_NestedNestedMsg.Merge(m, src)
}
func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Size() int {
return xxx_messageInfo_NestedDefinition_NestedMessage_NestedNestedMsg.Size(m)
@@ -1829,7 +1847,7 @@ type NestedScope struct {
func (m *NestedScope) Reset() { *m = NestedScope{} }
func (*NestedScope) ProtoMessage() {}
func (*NestedScope) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{43}
+ return fileDescriptor_dd04c51887e896dd, []int{43}
}
func (m *NestedScope) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1837,8 +1855,8 @@ func (m *NestedScope) XXX_Unmarshal(b []byte) error {
func (m *NestedScope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NestedScope.Marshal(b, m, deterministic)
}
-func (dst *NestedScope) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedScope.Merge(dst, src)
+func (m *NestedScope) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedScope.Merge(m, src)
}
func (m *NestedScope) XXX_Size() int {
return xxx_messageInfo_NestedScope.Size(m)
@@ -1851,7 +1869,7 @@ var xxx_messageInfo_NestedScope proto.InternalMessageInfo
type NinOptNativeDefault struct {
Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"`
- Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.12341" json:"Field2,omitempty"`
+ Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"`
Field3 *int32 `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"`
Field4 *int64 `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"`
Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"`
@@ -1873,7 +1891,7 @@ type NinOptNativeDefault struct {
func (m *NinOptNativeDefault) Reset() { *m = NinOptNativeDefault{} }
func (*NinOptNativeDefault) ProtoMessage() {}
func (*NinOptNativeDefault) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{44}
+ return fileDescriptor_dd04c51887e896dd, []int{44}
}
func (m *NinOptNativeDefault) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1881,8 +1899,8 @@ func (m *NinOptNativeDefault) XXX_Unmarshal(b []byte) error {
func (m *NinOptNativeDefault) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptNativeDefault.Marshal(b, m, deterministic)
}
-func (dst *NinOptNativeDefault) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptNativeDefault.Merge(dst, src)
+func (m *NinOptNativeDefault) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptNativeDefault.Merge(m, src)
}
func (m *NinOptNativeDefault) XXX_Size() int {
return xxx_messageInfo_NinOptNativeDefault.Size(m)
@@ -1894,7 +1912,7 @@ func (m *NinOptNativeDefault) XXX_DiscardUnknown() {
var xxx_messageInfo_NinOptNativeDefault proto.InternalMessageInfo
const Default_NinOptNativeDefault_Field1 float64 = 1234.1234
-const Default_NinOptNativeDefault_Field2 float32 = 1234.12341
+const Default_NinOptNativeDefault_Field2 float32 = 1234.1234
const Default_NinOptNativeDefault_Field3 int32 = 1234
const Default_NinOptNativeDefault_Field4 int64 = 1234
const Default_NinOptNativeDefault_Field5 uint32 = 1234
@@ -2023,7 +2041,7 @@ type CustomContainer struct {
func (m *CustomContainer) Reset() { *m = CustomContainer{} }
func (*CustomContainer) ProtoMessage() {}
func (*CustomContainer) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{45}
+ return fileDescriptor_dd04c51887e896dd, []int{45}
}
func (m *CustomContainer) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2031,8 +2049,8 @@ func (m *CustomContainer) XXX_Unmarshal(b []byte) error {
func (m *CustomContainer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomContainer.Marshal(b, m, deterministic)
}
-func (dst *CustomContainer) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomContainer.Merge(dst, src)
+func (m *CustomContainer) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomContainer.Merge(m, src)
}
func (m *CustomContainer) XXX_Size() int {
return xxx_messageInfo_CustomContainer.Size(m)
@@ -2067,7 +2085,7 @@ type CustomNameNidOptNative struct {
func (m *CustomNameNidOptNative) Reset() { *m = CustomNameNidOptNative{} }
func (*CustomNameNidOptNative) ProtoMessage() {}
func (*CustomNameNidOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{46}
+ return fileDescriptor_dd04c51887e896dd, []int{46}
}
func (m *CustomNameNidOptNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2075,8 +2093,8 @@ func (m *CustomNameNidOptNative) XXX_Unmarshal(b []byte) error {
func (m *CustomNameNidOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomNameNidOptNative.Marshal(b, m, deterministic)
}
-func (dst *CustomNameNidOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNidOptNative.Merge(dst, src)
+func (m *CustomNameNidOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNidOptNative.Merge(m, src)
}
func (m *CustomNameNidOptNative) XXX_Size() int {
return xxx_messageInfo_CustomNameNidOptNative.Size(m)
@@ -2111,7 +2129,7 @@ type CustomNameNinOptNative struct {
func (m *CustomNameNinOptNative) Reset() { *m = CustomNameNinOptNative{} }
func (*CustomNameNinOptNative) ProtoMessage() {}
func (*CustomNameNinOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{47}
+ return fileDescriptor_dd04c51887e896dd, []int{47}
}
func (m *CustomNameNinOptNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2119,8 +2137,8 @@ func (m *CustomNameNinOptNative) XXX_Unmarshal(b []byte) error {
func (m *CustomNameNinOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomNameNinOptNative.Marshal(b, m, deterministic)
}
-func (dst *CustomNameNinOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNinOptNative.Merge(dst, src)
+func (m *CustomNameNinOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNinOptNative.Merge(m, src)
}
func (m *CustomNameNinOptNative) XXX_Size() int {
return xxx_messageInfo_CustomNameNinOptNative.Size(m)
@@ -2155,7 +2173,7 @@ type CustomNameNinRepNative struct {
func (m *CustomNameNinRepNative) Reset() { *m = CustomNameNinRepNative{} }
func (*CustomNameNinRepNative) ProtoMessage() {}
func (*CustomNameNinRepNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{48}
+ return fileDescriptor_dd04c51887e896dd, []int{48}
}
func (m *CustomNameNinRepNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2163,8 +2181,8 @@ func (m *CustomNameNinRepNative) XXX_Unmarshal(b []byte) error {
func (m *CustomNameNinRepNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomNameNinRepNative.Marshal(b, m, deterministic)
}
-func (dst *CustomNameNinRepNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNinRepNative.Merge(dst, src)
+func (m *CustomNameNinRepNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNinRepNative.Merge(m, src)
}
func (m *CustomNameNinRepNative) XXX_Size() int {
return xxx_messageInfo_CustomNameNinRepNative.Size(m)
@@ -2194,7 +2212,7 @@ type CustomNameNinStruct struct {
func (m *CustomNameNinStruct) Reset() { *m = CustomNameNinStruct{} }
func (*CustomNameNinStruct) ProtoMessage() {}
func (*CustomNameNinStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{49}
+ return fileDescriptor_dd04c51887e896dd, []int{49}
}
func (m *CustomNameNinStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2202,8 +2220,8 @@ func (m *CustomNameNinStruct) XXX_Unmarshal(b []byte) error {
func (m *CustomNameNinStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomNameNinStruct.Marshal(b, m, deterministic)
}
-func (dst *CustomNameNinStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNinStruct.Merge(dst, src)
+func (m *CustomNameNinStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNinStruct.Merge(m, src)
}
func (m *CustomNameNinStruct) XXX_Size() int {
return xxx_messageInfo_CustomNameNinStruct.Size(m)
@@ -2227,7 +2245,7 @@ type CustomNameCustomType struct {
func (m *CustomNameCustomType) Reset() { *m = CustomNameCustomType{} }
func (*CustomNameCustomType) ProtoMessage() {}
func (*CustomNameCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{50}
+ return fileDescriptor_dd04c51887e896dd, []int{50}
}
func (m *CustomNameCustomType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2235,8 +2253,8 @@ func (m *CustomNameCustomType) XXX_Unmarshal(b []byte) error {
func (m *CustomNameCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomNameCustomType.Marshal(b, m, deterministic)
}
-func (dst *CustomNameCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameCustomType.Merge(dst, src)
+func (m *CustomNameCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameCustomType.Merge(m, src)
}
func (m *CustomNameCustomType) XXX_Size() int {
return xxx_messageInfo_CustomNameCustomType.Size(m)
@@ -2259,7 +2277,7 @@ type CustomNameNinEmbeddedStructUnion struct {
func (m *CustomNameNinEmbeddedStructUnion) Reset() { *m = CustomNameNinEmbeddedStructUnion{} }
func (*CustomNameNinEmbeddedStructUnion) ProtoMessage() {}
func (*CustomNameNinEmbeddedStructUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{51}
+ return fileDescriptor_dd04c51887e896dd, []int{51}
}
func (m *CustomNameNinEmbeddedStructUnion) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2267,8 +2285,8 @@ func (m *CustomNameNinEmbeddedStructUnion) XXX_Unmarshal(b []byte) error {
func (m *CustomNameNinEmbeddedStructUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomNameNinEmbeddedStructUnion.Marshal(b, m, deterministic)
}
-func (dst *CustomNameNinEmbeddedStructUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNinEmbeddedStructUnion.Merge(dst, src)
+func (m *CustomNameNinEmbeddedStructUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNinEmbeddedStructUnion.Merge(m, src)
}
func (m *CustomNameNinEmbeddedStructUnion) XXX_Size() int {
return xxx_messageInfo_CustomNameNinEmbeddedStructUnion.Size(m)
@@ -2290,7 +2308,7 @@ type CustomNameEnum struct {
func (m *CustomNameEnum) Reset() { *m = CustomNameEnum{} }
func (*CustomNameEnum) ProtoMessage() {}
func (*CustomNameEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{52}
+ return fileDescriptor_dd04c51887e896dd, []int{52}
}
func (m *CustomNameEnum) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2298,8 +2316,8 @@ func (m *CustomNameEnum) XXX_Unmarshal(b []byte) error {
func (m *CustomNameEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomNameEnum.Marshal(b, m, deterministic)
}
-func (dst *CustomNameEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameEnum.Merge(dst, src)
+func (m *CustomNameEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameEnum.Merge(m, src)
}
func (m *CustomNameEnum) XXX_Size() int {
return xxx_messageInfo_CustomNameEnum.Size(m)
@@ -2321,7 +2339,7 @@ type NoExtensionsMap struct {
func (m *NoExtensionsMap) Reset() { *m = NoExtensionsMap{} }
func (*NoExtensionsMap) ProtoMessage() {}
func (*NoExtensionsMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{53}
+ return fileDescriptor_dd04c51887e896dd, []int{53}
}
var extRange_NoExtensionsMap = []proto.ExtensionRange{
@@ -2331,6 +2349,7 @@ var extRange_NoExtensionsMap = []proto.ExtensionRange{
func (*NoExtensionsMap) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_NoExtensionsMap
}
+
func (m *NoExtensionsMap) GetExtensions() *[]byte {
if m.XXX_extensions == nil {
m.XXX_extensions = make([]byte, 0)
@@ -2343,8 +2362,8 @@ func (m *NoExtensionsMap) XXX_Unmarshal(b []byte) error {
func (m *NoExtensionsMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NoExtensionsMap.Marshal(b, m, deterministic)
}
-func (dst *NoExtensionsMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NoExtensionsMap.Merge(dst, src)
+func (m *NoExtensionsMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NoExtensionsMap.Merge(m, src)
}
func (m *NoExtensionsMap) XXX_Size() int {
return xxx_messageInfo_NoExtensionsMap.Size(m)
@@ -2364,7 +2383,7 @@ type Unrecognized struct {
func (m *Unrecognized) Reset() { *m = Unrecognized{} }
func (*Unrecognized) ProtoMessage() {}
func (*Unrecognized) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{54}
+ return fileDescriptor_dd04c51887e896dd, []int{54}
}
func (m *Unrecognized) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2372,8 +2391,8 @@ func (m *Unrecognized) XXX_Unmarshal(b []byte) error {
func (m *Unrecognized) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Unrecognized.Marshal(b, m, deterministic)
}
-func (dst *Unrecognized) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Unrecognized.Merge(dst, src)
+func (m *Unrecognized) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Unrecognized.Merge(m, src)
}
func (m *Unrecognized) XXX_Size() int {
return xxx_messageInfo_Unrecognized.Size(m)
@@ -2395,7 +2414,7 @@ type UnrecognizedWithInner struct {
func (m *UnrecognizedWithInner) Reset() { *m = UnrecognizedWithInner{} }
func (*UnrecognizedWithInner) ProtoMessage() {}
func (*UnrecognizedWithInner) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{55}
+ return fileDescriptor_dd04c51887e896dd, []int{55}
}
func (m *UnrecognizedWithInner) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2403,8 +2422,8 @@ func (m *UnrecognizedWithInner) XXX_Unmarshal(b []byte) error {
func (m *UnrecognizedWithInner) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_UnrecognizedWithInner.Marshal(b, m, deterministic)
}
-func (dst *UnrecognizedWithInner) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnrecognizedWithInner.Merge(dst, src)
+func (m *UnrecognizedWithInner) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnrecognizedWithInner.Merge(m, src)
}
func (m *UnrecognizedWithInner) XXX_Size() int {
return xxx_messageInfo_UnrecognizedWithInner.Size(m)
@@ -2424,7 +2443,7 @@ type UnrecognizedWithInner_Inner struct {
func (m *UnrecognizedWithInner_Inner) Reset() { *m = UnrecognizedWithInner_Inner{} }
func (*UnrecognizedWithInner_Inner) ProtoMessage() {}
func (*UnrecognizedWithInner_Inner) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{55, 0}
+ return fileDescriptor_dd04c51887e896dd, []int{55, 0}
}
func (m *UnrecognizedWithInner_Inner) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2432,8 +2451,8 @@ func (m *UnrecognizedWithInner_Inner) XXX_Unmarshal(b []byte) error {
func (m *UnrecognizedWithInner_Inner) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_UnrecognizedWithInner_Inner.Marshal(b, m, deterministic)
}
-func (dst *UnrecognizedWithInner_Inner) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnrecognizedWithInner_Inner.Merge(dst, src)
+func (m *UnrecognizedWithInner_Inner) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnrecognizedWithInner_Inner.Merge(m, src)
}
func (m *UnrecognizedWithInner_Inner) XXX_Size() int {
return xxx_messageInfo_UnrecognizedWithInner_Inner.Size(m)
@@ -2455,7 +2474,7 @@ type UnrecognizedWithEmbed struct {
func (m *UnrecognizedWithEmbed) Reset() { *m = UnrecognizedWithEmbed{} }
func (*UnrecognizedWithEmbed) ProtoMessage() {}
func (*UnrecognizedWithEmbed) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{56}
+ return fileDescriptor_dd04c51887e896dd, []int{56}
}
func (m *UnrecognizedWithEmbed) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2463,8 +2482,8 @@ func (m *UnrecognizedWithEmbed) XXX_Unmarshal(b []byte) error {
func (m *UnrecognizedWithEmbed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_UnrecognizedWithEmbed.Marshal(b, m, deterministic)
}
-func (dst *UnrecognizedWithEmbed) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnrecognizedWithEmbed.Merge(dst, src)
+func (m *UnrecognizedWithEmbed) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnrecognizedWithEmbed.Merge(m, src)
}
func (m *UnrecognizedWithEmbed) XXX_Size() int {
return xxx_messageInfo_UnrecognizedWithEmbed.Size(m)
@@ -2484,7 +2503,7 @@ type UnrecognizedWithEmbed_Embedded struct {
func (m *UnrecognizedWithEmbed_Embedded) Reset() { *m = UnrecognizedWithEmbed_Embedded{} }
func (*UnrecognizedWithEmbed_Embedded) ProtoMessage() {}
func (*UnrecognizedWithEmbed_Embedded) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{56, 0}
+ return fileDescriptor_dd04c51887e896dd, []int{56, 0}
}
func (m *UnrecognizedWithEmbed_Embedded) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2492,8 +2511,8 @@ func (m *UnrecognizedWithEmbed_Embedded) XXX_Unmarshal(b []byte) error {
func (m *UnrecognizedWithEmbed_Embedded) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_UnrecognizedWithEmbed_Embedded.Marshal(b, m, deterministic)
}
-func (dst *UnrecognizedWithEmbed_Embedded) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnrecognizedWithEmbed_Embedded.Merge(dst, src)
+func (m *UnrecognizedWithEmbed_Embedded) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnrecognizedWithEmbed_Embedded.Merge(m, src)
}
func (m *UnrecognizedWithEmbed_Embedded) XXX_Size() int {
return xxx_messageInfo_UnrecognizedWithEmbed_Embedded.Size(m)
@@ -2515,7 +2534,7 @@ type Node struct {
func (m *Node) Reset() { *m = Node{} }
func (*Node) ProtoMessage() {}
func (*Node) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{57}
+ return fileDescriptor_dd04c51887e896dd, []int{57}
}
func (m *Node) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2523,8 +2542,8 @@ func (m *Node) XXX_Unmarshal(b []byte) error {
func (m *Node) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Node.Marshal(b, m, deterministic)
}
-func (dst *Node) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Node.Merge(dst, src)
+func (m *Node) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Node.Merge(m, src)
}
func (m *Node) XXX_Size() int {
return xxx_messageInfo_Node.Size(m)
@@ -2545,7 +2564,7 @@ type NonByteCustomType struct {
func (m *NonByteCustomType) Reset() { *m = NonByteCustomType{} }
func (*NonByteCustomType) ProtoMessage() {}
func (*NonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{58}
+ return fileDescriptor_dd04c51887e896dd, []int{58}
}
func (m *NonByteCustomType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2553,8 +2572,8 @@ func (m *NonByteCustomType) XXX_Unmarshal(b []byte) error {
func (m *NonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NonByteCustomType.Marshal(b, m, deterministic)
}
-func (dst *NonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NonByteCustomType.Merge(dst, src)
+func (m *NonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NonByteCustomType.Merge(m, src)
}
func (m *NonByteCustomType) XXX_Size() int {
return xxx_messageInfo_NonByteCustomType.Size(m)
@@ -2575,7 +2594,7 @@ type NidOptNonByteCustomType struct {
func (m *NidOptNonByteCustomType) Reset() { *m = NidOptNonByteCustomType{} }
func (*NidOptNonByteCustomType) ProtoMessage() {}
func (*NidOptNonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{59}
+ return fileDescriptor_dd04c51887e896dd, []int{59}
}
func (m *NidOptNonByteCustomType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2583,8 +2602,8 @@ func (m *NidOptNonByteCustomType) XXX_Unmarshal(b []byte) error {
func (m *NidOptNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidOptNonByteCustomType.Marshal(b, m, deterministic)
}
-func (dst *NidOptNonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptNonByteCustomType.Merge(dst, src)
+func (m *NidOptNonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptNonByteCustomType.Merge(m, src)
}
func (m *NidOptNonByteCustomType) XXX_Size() int {
return xxx_messageInfo_NidOptNonByteCustomType.Size(m)
@@ -2605,7 +2624,7 @@ type NinOptNonByteCustomType struct {
func (m *NinOptNonByteCustomType) Reset() { *m = NinOptNonByteCustomType{} }
func (*NinOptNonByteCustomType) ProtoMessage() {}
func (*NinOptNonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{60}
+ return fileDescriptor_dd04c51887e896dd, []int{60}
}
func (m *NinOptNonByteCustomType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2613,8 +2632,8 @@ func (m *NinOptNonByteCustomType) XXX_Unmarshal(b []byte) error {
func (m *NinOptNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptNonByteCustomType.Marshal(b, m, deterministic)
}
-func (dst *NinOptNonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptNonByteCustomType.Merge(dst, src)
+func (m *NinOptNonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptNonByteCustomType.Merge(m, src)
}
func (m *NinOptNonByteCustomType) XXX_Size() int {
return xxx_messageInfo_NinOptNonByteCustomType.Size(m)
@@ -2635,7 +2654,7 @@ type NidRepNonByteCustomType struct {
func (m *NidRepNonByteCustomType) Reset() { *m = NidRepNonByteCustomType{} }
func (*NidRepNonByteCustomType) ProtoMessage() {}
func (*NidRepNonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{61}
+ return fileDescriptor_dd04c51887e896dd, []int{61}
}
func (m *NidRepNonByteCustomType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2643,8 +2662,8 @@ func (m *NidRepNonByteCustomType) XXX_Unmarshal(b []byte) error {
func (m *NidRepNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidRepNonByteCustomType.Marshal(b, m, deterministic)
}
-func (dst *NidRepNonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepNonByteCustomType.Merge(dst, src)
+func (m *NidRepNonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepNonByteCustomType.Merge(m, src)
}
func (m *NidRepNonByteCustomType) XXX_Size() int {
return xxx_messageInfo_NidRepNonByteCustomType.Size(m)
@@ -2665,7 +2684,7 @@ type NinRepNonByteCustomType struct {
func (m *NinRepNonByteCustomType) Reset() { *m = NinRepNonByteCustomType{} }
func (*NinRepNonByteCustomType) ProtoMessage() {}
func (*NinRepNonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{62}
+ return fileDescriptor_dd04c51887e896dd, []int{62}
}
func (m *NinRepNonByteCustomType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2673,8 +2692,8 @@ func (m *NinRepNonByteCustomType) XXX_Unmarshal(b []byte) error {
func (m *NinRepNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinRepNonByteCustomType.Marshal(b, m, deterministic)
}
-func (dst *NinRepNonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepNonByteCustomType.Merge(dst, src)
+func (m *NinRepNonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepNonByteCustomType.Merge(m, src)
}
func (m *NinRepNonByteCustomType) XXX_Size() int {
return xxx_messageInfo_NinRepNonByteCustomType.Size(m)
@@ -2695,7 +2714,7 @@ type ProtoType struct {
func (m *ProtoType) Reset() { *m = ProtoType{} }
func (*ProtoType) ProtoMessage() {}
func (*ProtoType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_4205beeb65ed6104, []int{63}
+ return fileDescriptor_dd04c51887e896dd, []int{63}
}
func (m *ProtoType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2703,8 +2722,8 @@ func (m *ProtoType) XXX_Unmarshal(b []byte) error {
func (m *ProtoType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ProtoType.Marshal(b, m, deterministic)
}
-func (dst *ProtoType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ProtoType.Merge(dst, src)
+func (m *ProtoType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ProtoType.Merge(m, src)
}
func (m *ProtoType) XXX_Size() int {
return xxx_messageInfo_ProtoType.Size(m)
@@ -2788,6 +2807,11 @@ var E_FieldC1 = &proto.ExtensionDesc{
}
func init() {
+ proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value)
+ proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value)
+ proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value)
+ proto.RegisterEnum("test.YetYetAnotherTestEnum", YetYetAnotherTestEnum_name, YetYetAnotherTestEnum_value)
+ proto.RegisterEnum("test.NestedDefinition_NestedEnum", NestedDefinition_NestedEnum_name, NestedDefinition_NestedEnum_value)
proto.RegisterType((*NidOptNative)(nil), "test.NidOptNative")
proto.RegisterType((*NinOptNative)(nil), "test.NinOptNative")
proto.RegisterType((*NidRepNative)(nil), "test.NidRepNative")
@@ -2856,11 +2880,6 @@ func init() {
proto.RegisterType((*NidRepNonByteCustomType)(nil), "test.NidRepNonByteCustomType")
proto.RegisterType((*NinRepNonByteCustomType)(nil), "test.NinRepNonByteCustomType")
proto.RegisterType((*ProtoType)(nil), "test.ProtoType")
- proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value)
- proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value)
- proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value)
- proto.RegisterEnum("test.YetYetAnotherTestEnum", YetYetAnotherTestEnum_name, YetYetAnotherTestEnum_value)
- proto.RegisterEnum("test.NestedDefinition_NestedEnum", NestedDefinition_NestedEnum_name, NestedDefinition_NestedEnum_value)
proto.RegisterExtension(E_FieldA)
proto.RegisterExtension(E_FieldB)
proto.RegisterExtension(E_FieldC)
@@ -2870,6 +2889,206 @@ func init() {
proto.RegisterExtension(E_FieldB1)
proto.RegisterExtension(E_FieldC1)
}
+
+func init() { proto.RegisterFile("combos/unmarshaler/thetest.proto", fileDescriptor_dd04c51887e896dd) }
+
+var fileDescriptor_dd04c51887e896dd = []byte{
+ // 3088 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7,
+ 0xd5, 0xe7, 0xec, 0x50, 0x0a, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0x16, 0x8c, 0xbe, 0x15, 0xbd,
+ 0x91, 0xf5, 0x31, 0x44, 0x2c, 0x51, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0xe3, 0x46, 0x6e,
+ 0x44, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x16, 0xd7, 0x22, 0x51, 0x69, 0x29, 0x90, 0xab,
+ 0x34, 0xee, 0xa1, 0x08, 0x72, 0x28, 0x82, 0x5e, 0x8b, 0x1e, 0xdb, 0xb8, 0x28, 0x0a, 0xa4, 0xb7,
+ 0x1c, 0x8a, 0xa2, 0x28, 0x8a, 0xc6, 0x97, 0x02, 0xea, 0xcd, 0xe8, 0xa9, 0x08, 0x0a, 0x21, 0x62,
+ 0x2e, 0x39, 0x06, 0xbd, 0x34, 0x87, 0x1c, 0x8a, 0xdd, 0x9d, 0x9d, 0x9d, 0x19, 0xee, 0x72, 0x97,
+ 0x96, 0xd2, 0xe6, 0x62, 0x8b, 0xf3, 0xde, 0x9b, 0x79, 0xfb, 0x7e, 0xbf, 0xf7, 0xf6, 0xed, 0xcc,
+ 0x40, 0x7a, 0xaf, 0x73, 0x78, 0xbf, 0xd3, 0x5b, 0x3e, 0x36, 0x0e, 0x1b, 0xdd, 0x5e, 0xab, 0x71,
+ 0xa0, 0x77, 0x97, 0xcd, 0x96, 0x6e, 0xea, 0x3d, 0x73, 0xe9, 0xa8, 0xdb, 0x31, 0x3b, 0x72, 0xdc,
+ 0xfa, 0x3b, 0x75, 0x7d, 0xbf, 0x6d, 0xb6, 0x8e, 0xef, 0x2f, 0xed, 0x75, 0x0e, 0x97, 0xf7, 0x3b,
+ 0xfb, 0x9d, 0x65, 0x5b, 0x78, 0xff, 0xf8, 0x81, 0xfd, 0xcb, 0xfe, 0x61, 0xff, 0xe5, 0x18, 0x69,
+ 0xff, 0xc4, 0x30, 0x55, 0x6b, 0x37, 0x77, 0x8e, 0xcc, 0x5a, 0xc3, 0x6c, 0xbf, 0xa5, 0xcb, 0x73,
+ 0x30, 0x7e, 0xab, 0xad, 0x1f, 0x34, 0x57, 0x14, 0x94, 0x46, 0x19, 0x54, 0x8a, 0x9f, 0x9c, 0xce,
+ 0xc7, 0xea, 0x64, 0x8c, 0x4a, 0xf3, 0x8a, 0x94, 0x46, 0x19, 0x89, 0x93, 0xe6, 0xa9, 0x74, 0x55,
+ 0xc1, 0x69, 0x94, 0x19, 0xe3, 0xa4, 0xab, 0x54, 0x5a, 0x50, 0xe2, 0x69, 0x94, 0xc1, 0x9c, 0xb4,
+ 0x40, 0xa5, 0x6b, 0xca, 0x58, 0x1a, 0x65, 0x2e, 0x71, 0xd2, 0x35, 0x2a, 0x5d, 0x57, 0xc6, 0xd3,
+ 0x28, 0x13, 0xe7, 0xa4, 0xeb, 0x54, 0x7a, 0x43, 0x79, 0x26, 0x8d, 0x32, 0x97, 0x39, 0xe9, 0x0d,
+ 0x2a, 0xdd, 0x50, 0x12, 0x69, 0x94, 0x91, 0x39, 0xe9, 0x06, 0x95, 0xde, 0x54, 0x26, 0xd2, 0x28,
+ 0xf3, 0x0c, 0x27, 0xbd, 0x29, 0xab, 0xf0, 0x8c, 0xf3, 0xe4, 0x39, 0x05, 0xd2, 0x28, 0x33, 0x43,
+ 0xc4, 0xee, 0xa0, 0x27, 0x5f, 0x51, 0x26, 0xd3, 0x28, 0x33, 0xce, 0xcb, 0x57, 0x3c, 0x79, 0x5e,
+ 0x99, 0x4a, 0xa3, 0x4c, 0x92, 0x97, 0xe7, 0x3d, 0xf9, 0xaa, 0x72, 0x29, 0x8d, 0x32, 0x09, 0x5e,
+ 0xbe, 0xea, 0xc9, 0x0b, 0xca, 0x74, 0x1a, 0x65, 0x26, 0x78, 0x79, 0xc1, 0x93, 0xaf, 0x29, 0x33,
+ 0x69, 0x94, 0x99, 0xe2, 0xe5, 0x6b, 0xda, 0xbb, 0x36, 0xbc, 0x86, 0x07, 0xef, 0x2c, 0x0f, 0x2f,
+ 0x05, 0x76, 0x96, 0x07, 0x96, 0x42, 0x3a, 0xcb, 0x43, 0x4a, 0xc1, 0x9c, 0xe5, 0xc1, 0xa4, 0x30,
+ 0xce, 0xf2, 0x30, 0x52, 0x00, 0x67, 0x79, 0x00, 0x29, 0x74, 0xb3, 0x3c, 0x74, 0x14, 0xb4, 0x59,
+ 0x1e, 0x34, 0x0a, 0xd7, 0x2c, 0x0f, 0x17, 0x05, 0x4a, 0x11, 0x80, 0xf2, 0x20, 0x52, 0x04, 0x88,
+ 0x3c, 0x70, 0x14, 0x01, 0x1c, 0x0f, 0x16, 0x45, 0x80, 0xc5, 0x03, 0x44, 0x11, 0x00, 0xf1, 0xa0,
+ 0x50, 0x04, 0x28, 0x3c, 0x10, 0x48, 0x8e, 0xd5, 0xf5, 0x23, 0x9f, 0x1c, 0xc3, 0x43, 0x73, 0x0c,
+ 0x0f, 0xcd, 0x31, 0x3c, 0x34, 0xc7, 0xf0, 0xd0, 0x1c, 0xc3, 0x43, 0x73, 0x0c, 0x0f, 0xcd, 0x31,
+ 0x3c, 0x34, 0xc7, 0xf0, 0xd0, 0x1c, 0xc3, 0xc3, 0x73, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31,
+ 0x1c, 0x92, 0x63, 0x38, 0x24, 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0xc0, 0x1c, 0xf3, 0xe0, 0x9d, 0xe5,
+ 0xe1, 0xf5, 0xcd, 0x31, 0x1c, 0x90, 0x63, 0x38, 0x20, 0xc7, 0x70, 0x40, 0x8e, 0xe1, 0x80, 0x1c,
+ 0xc3, 0x01, 0x39, 0x86, 0x03, 0x72, 0x0c, 0x07, 0xe4, 0x18, 0x0e, 0xca, 0x31, 0x1c, 0x98, 0x63,
+ 0x38, 0x30, 0xc7, 0x70, 0x60, 0x8e, 0xe1, 0xc0, 0x1c, 0xc3, 0x81, 0x39, 0x86, 0xd9, 0x1c, 0xfb,
+ 0x33, 0x06, 0xd9, 0xc9, 0xb1, 0x3b, 0x8d, 0xbd, 0x1f, 0xea, 0x4d, 0x02, 0x85, 0x2a, 0x64, 0xda,
+ 0xb8, 0x05, 0x5d, 0xd2, 0x83, 0x44, 0x15, 0x72, 0x8d, 0x97, 0xe7, 0xa9, 0xdc, 0xcd, 0x36, 0x5e,
+ 0xbe, 0x4a, 0xe5, 0x6e, 0xbe, 0xf1, 0xf2, 0x02, 0x95, 0xbb, 0x19, 0xc7, 0xcb, 0xd7, 0xa8, 0xdc,
+ 0xcd, 0x39, 0x5e, 0xbe, 0x4e, 0xe5, 0x6e, 0xd6, 0xf1, 0xf2, 0x1b, 0x54, 0xee, 0xe6, 0x1d, 0x2f,
+ 0xdf, 0xa0, 0x72, 0x37, 0xf3, 0x78, 0xf9, 0x4d, 0x39, 0x2d, 0xe6, 0x9e, 0xab, 0x40, 0xa1, 0x4d,
+ 0x8b, 0xd9, 0x27, 0x68, 0xac, 0x78, 0x1a, 0x6e, 0xfe, 0x09, 0x1a, 0x79, 0x4f, 0xc3, 0xcd, 0x40,
+ 0x41, 0x63, 0x55, 0x7b, 0xcf, 0x86, 0xcf, 0x10, 0xe1, 0x4b, 0x09, 0xf0, 0x49, 0x0c, 0x74, 0x29,
+ 0x01, 0x3a, 0x89, 0x81, 0x2d, 0x25, 0xc0, 0x26, 0x31, 0x90, 0xa5, 0x04, 0xc8, 0x24, 0x06, 0xae,
+ 0x94, 0x00, 0x97, 0xc4, 0x40, 0x95, 0x12, 0xa0, 0x92, 0x18, 0x98, 0x52, 0x02, 0x4c, 0x12, 0x03,
+ 0x51, 0x4a, 0x80, 0x48, 0x62, 0xe0, 0x49, 0x09, 0xf0, 0x48, 0x0c, 0x34, 0x73, 0x22, 0x34, 0x12,
+ 0x0b, 0xcb, 0x9c, 0x08, 0x8b, 0xc4, 0x42, 0x32, 0x27, 0x42, 0x22, 0xb1, 0x70, 0xcc, 0x89, 0x70,
+ 0x48, 0x2c, 0x14, 0x5f, 0x4a, 0x6e, 0x47, 0xf8, 0xa6, 0xd9, 0x3d, 0xde, 0x33, 0xcf, 0xd5, 0x11,
+ 0xe6, 0xb8, 0xf6, 0x61, 0x32, 0x2f, 0x2f, 0xd9, 0x0d, 0x2b, 0xdb, 0x71, 0x0a, 0x6f, 0xb0, 0x1c,
+ 0xd7, 0x58, 0x30, 0x16, 0x86, 0xbf, 0x45, 0xe1, 0x5c, 0xbd, 0x61, 0x8e, 0x6b, 0x33, 0xc2, 0xfd,
+ 0xdb, 0xf8, 0xca, 0x3b, 0xb6, 0xc7, 0x92, 0xdb, 0xb1, 0x91, 0xf0, 0x8f, 0xda, 0xb1, 0x65, 0xc3,
+ 0x43, 0x4e, 0x83, 0x9d, 0x0d, 0x0f, 0xf6, 0xc0, 0x5b, 0x27, 0x6a, 0x07, 0x97, 0x0d, 0x0f, 0x2d,
+ 0x0d, 0xea, 0xc5, 0xf6, 0x5b, 0x84, 0xc1, 0x75, 0xfd, 0xc8, 0x87, 0xc1, 0xa3, 0xf6, 0x5b, 0x39,
+ 0xae, 0x94, 0x8c, 0xca, 0x60, 0x3c, 0x32, 0x83, 0x47, 0xed, 0xbc, 0x72, 0x5c, 0x79, 0x19, 0x99,
+ 0xc1, 0x5f, 0x41, 0x3f, 0x44, 0x18, 0xec, 0x85, 0x7f, 0xd4, 0x7e, 0x28, 0x1b, 0x1e, 0x72, 0x5f,
+ 0x06, 0xe3, 0x11, 0x18, 0x1c, 0xa5, 0x3f, 0xca, 0x86, 0x87, 0xd6, 0x9f, 0xc1, 0xe7, 0xee, 0x66,
+ 0xde, 0x47, 0x70, 0xb9, 0xd6, 0x6e, 0x56, 0x0f, 0xef, 0xeb, 0xcd, 0xa6, 0xde, 0x24, 0x71, 0xcc,
+ 0x71, 0x95, 0x20, 0x00, 0xea, 0x27, 0xa7, 0xf3, 0x5e, 0x84, 0xd7, 0x20, 0xe1, 0xc4, 0x34, 0x97,
+ 0x53, 0x4e, 0x50, 0x48, 0x85, 0xa3, 0xaa, 0xf2, 0x55, 0xd7, 0x6c, 0x25, 0xa7, 0xfc, 0x1d, 0x31,
+ 0x55, 0x8e, 0x0e, 0x6b, 0x3f, 0xb7, 0x3d, 0x34, 0xce, 0xed, 0xe1, 0x72, 0x24, 0x0f, 0x19, 0xdf,
+ 0x5e, 0x18, 0xf0, 0x8d, 0xf1, 0xea, 0x18, 0x66, 0x6a, 0xed, 0x66, 0x4d, 0xef, 0x99, 0xd1, 0x5c,
+ 0x72, 0x74, 0x84, 0x7a, 0x90, 0xe3, 0x68, 0xc9, 0x5a, 0x50, 0x4a, 0xf3, 0x35, 0x42, 0x6b, 0x5b,
+ 0xcb, 0x1a, 0xdc, 0xb2, 0xd9, 0xa0, 0x65, 0xbd, 0xca, 0x4e, 0x17, 0xcc, 0x06, 0x2d, 0xe8, 0xe5,
+ 0x10, 0x5d, 0xea, 0x6d, 0xf7, 0xe5, 0x5c, 0x3e, 0xee, 0x99, 0x9d, 0x43, 0x79, 0x0e, 0xa4, 0xad,
+ 0xa6, 0xbd, 0xc6, 0x54, 0x69, 0xca, 0x72, 0xea, 0xe3, 0xd3, 0xf9, 0xf8, 0xdd, 0xe3, 0x76, 0xb3,
+ 0x2e, 0x6d, 0x35, 0xe5, 0xdb, 0x30, 0xf6, 0x9d, 0xc6, 0xc1, 0xb1, 0x6e, 0xbf, 0x22, 0xa6, 0x4a,
+ 0x05, 0xa2, 0xf0, 0x72, 0xe0, 0x1e, 0x91, 0xb5, 0xf0, 0xf2, 0x9e, 0x3d, 0xf5, 0xd2, 0xdd, 0xb6,
+ 0x61, 0xae, 0xe4, 0x37, 0xea, 0xce, 0x14, 0xda, 0xf7, 0x01, 0x9c, 0x35, 0x2b, 0x8d, 0x5e, 0x4b,
+ 0xae, 0xb9, 0x33, 0x3b, 0x4b, 0x6f, 0x7c, 0x7c, 0x3a, 0x5f, 0x88, 0x32, 0xeb, 0xf5, 0x66, 0xa3,
+ 0xd7, 0xba, 0x6e, 0x3e, 0x3c, 0xd2, 0x97, 0x4a, 0x0f, 0x4d, 0xbd, 0xe7, 0xce, 0x7e, 0xe4, 0xbe,
+ 0xf5, 0xc8, 0x73, 0x29, 0xcc, 0x73, 0x25, 0xb8, 0x67, 0xba, 0xc5, 0x3f, 0x53, 0xee, 0x69, 0x9f,
+ 0xe7, 0x6d, 0xf7, 0x25, 0x21, 0x44, 0x12, 0x87, 0x45, 0x12, 0x9f, 0x37, 0x92, 0x47, 0x6e, 0x7d,
+ 0x14, 0x9e, 0x15, 0x0f, 0x7b, 0x56, 0x7c, 0x9e, 0x67, 0xfd, 0xb7, 0x93, 0xad, 0x34, 0x9f, 0xee,
+ 0x1a, 0xed, 0x8e, 0xf1, 0xb5, 0xdb, 0x0b, 0xba, 0xd0, 0x2e, 0xa0, 0x18, 0x3f, 0x79, 0x34, 0x8f,
+ 0xb4, 0xf7, 0x25, 0xf7, 0xc9, 0x9d, 0x44, 0x7a, 0xba, 0x27, 0xff, 0xba, 0xf4, 0x54, 0x5f, 0x45,
+ 0x84, 0x7e, 0x85, 0x60, 0x76, 0xa0, 0x92, 0x3b, 0x61, 0xba, 0xd8, 0x72, 0x6e, 0x8c, 0x5a, 0xce,
+ 0x89, 0x83, 0xbf, 0x47, 0xf0, 0x9c, 0x50, 0x5e, 0x1d, 0xf7, 0x96, 0x05, 0xf7, 0x9e, 0x1f, 0x5c,
+ 0xc9, 0x56, 0x64, 0xbc, 0x63, 0xe1, 0x15, 0x0c, 0x98, 0x99, 0x29, 0xee, 0x05, 0x01, 0xf7, 0x39,
+ 0x6a, 0xe0, 0x13, 0x2e, 0x97, 0x01, 0xc4, 0xed, 0x0e, 0xc4, 0x77, 0xbb, 0xba, 0x2e, 0xab, 0x20,
+ 0xed, 0x74, 0x89, 0x87, 0xd3, 0x8e, 0xfd, 0x4e, 0xb7, 0xd4, 0x6d, 0x18, 0x7b, 0xad, 0xba, 0xb4,
+ 0xd3, 0x95, 0xaf, 0x02, 0xde, 0x34, 0x9a, 0xc4, 0xa3, 0x19, 0x47, 0x61, 0xd3, 0x68, 0x12, 0x0d,
+ 0x4b, 0x26, 0xab, 0x10, 0x7f, 0x43, 0x6f, 0x3c, 0x20, 0x4e, 0x80, 0xa3, 0x63, 0x8d, 0xd4, 0xed,
+ 0x71, 0xb2, 0xe0, 0xf7, 0x20, 0xe1, 0x4e, 0x2c, 0x2f, 0x58, 0x16, 0x0f, 0x4c, 0xb2, 0x2c, 0xb1,
+ 0xb0, 0xdc, 0x21, 0x6f, 0x2e, 0x5b, 0x2a, 0x2f, 0xc2, 0x58, 0xbd, 0xbd, 0xdf, 0x32, 0xc9, 0xe2,
+ 0x83, 0x6a, 0x8e, 0x58, 0xbb, 0x07, 0x13, 0xd4, 0xa3, 0x0b, 0x9e, 0xba, 0xe2, 0x3c, 0x9a, 0x9c,
+ 0x62, 0xdf, 0x27, 0xee, 0xbe, 0xa5, 0x33, 0x24, 0xa7, 0x21, 0xf1, 0xa6, 0xd9, 0xf5, 0x8a, 0xbe,
+ 0xdb, 0x91, 0xd2, 0x51, 0xed, 0x5d, 0x04, 0x89, 0x8a, 0xae, 0x1f, 0xd9, 0x01, 0xbf, 0x06, 0xf1,
+ 0x4a, 0xe7, 0x47, 0x06, 0x71, 0xf0, 0x32, 0x89, 0xa8, 0x25, 0x26, 0x31, 0xb5, 0xc5, 0xf2, 0x35,
+ 0x36, 0xee, 0xcf, 0xd2, 0xb8, 0x33, 0x7a, 0x76, 0xec, 0x35, 0x2e, 0xf6, 0x04, 0x40, 0x4b, 0x69,
+ 0x20, 0xfe, 0x37, 0x60, 0x92, 0x59, 0x45, 0xce, 0x10, 0x37, 0x24, 0xd1, 0x90, 0x8d, 0x95, 0xa5,
+ 0xa1, 0xe9, 0x70, 0x89, 0x5b, 0xd8, 0x32, 0x65, 0x42, 0x1c, 0x60, 0x6a, 0x87, 0x39, 0xcb, 0x87,
+ 0xd9, 0x5f, 0x95, 0x84, 0x3a, 0xe7, 0xc4, 0xc8, 0x0e, 0xf7, 0x82, 0x43, 0xce, 0x60, 0x10, 0xad,
+ 0xbf, 0xb5, 0x31, 0xc0, 0xb5, 0xf6, 0x81, 0xf6, 0x2a, 0x80, 0x93, 0xf2, 0x55, 0xe3, 0xf8, 0x50,
+ 0xc8, 0xba, 0x69, 0x37, 0xc0, 0xbb, 0x2d, 0x7d, 0x57, 0xef, 0xd9, 0x2a, 0x7c, 0x3f, 0x65, 0x15,
+ 0x18, 0x70, 0x52, 0xcc, 0xb6, 0x7f, 0x29, 0xd4, 0xde, 0xb7, 0x13, 0xb3, 0x54, 0x15, 0x47, 0xf5,
+ 0x9e, 0x6e, 0x6e, 0x1a, 0x1d, 0xb3, 0xa5, 0x77, 0x05, 0x8b, 0xbc, 0xbc, 0xca, 0x25, 0xec, 0x74,
+ 0xfe, 0x05, 0x6a, 0x11, 0x68, 0xb4, 0xaa, 0x7d, 0x68, 0x3b, 0x68, 0xb5, 0x02, 0x03, 0x0f, 0x88,
+ 0x23, 0x3c, 0xa0, 0xbc, 0xce, 0xf5, 0x6f, 0x43, 0xdc, 0x14, 0x3e, 0x2d, 0x6f, 0x72, 0xdf, 0x39,
+ 0xc3, 0x9d, 0xe5, 0xbf, 0x31, 0xdd, 0x98, 0xba, 0x2e, 0xbf, 0x14, 0xea, 0x72, 0x40, 0x77, 0x3b,
+ 0x6a, 0x4c, 0x71, 0xd4, 0x98, 0xfe, 0x89, 0x76, 0x1c, 0xd6, 0x70, 0x45, 0x7f, 0xd0, 0x38, 0x3e,
+ 0x30, 0xe5, 0x97, 0x43, 0xb1, 0x2f, 0xa2, 0x32, 0x75, 0xb5, 0x10, 0x15, 0xfe, 0xa2, 0x54, 0x2a,
+ 0x51, 0x77, 0x6f, 0x8c, 0x40, 0x81, 0xa2, 0x54, 0x2e, 0xd3, 0xb2, 0x9d, 0x78, 0xef, 0xd1, 0x3c,
+ 0xfa, 0xe0, 0xd1, 0x7c, 0x4c, 0xfb, 0x1d, 0x82, 0xcb, 0x44, 0x93, 0x21, 0xee, 0x75, 0xc1, 0xf9,
+ 0x2b, 0x6e, 0xcd, 0xf0, 0x8b, 0xc0, 0x7f, 0x8d, 0xbc, 0x7f, 0x45, 0xa0, 0x0c, 0xf8, 0xea, 0xc6,
+ 0x3b, 0x17, 0xc9, 0xe5, 0x22, 0xaa, 0xfe, 0xef, 0x63, 0x7e, 0x0f, 0xc6, 0x76, 0xdb, 0x87, 0x7a,
+ 0xd7, 0x7a, 0x13, 0x58, 0x7f, 0x38, 0x2e, 0xbb, 0x87, 0x39, 0xce, 0x90, 0x2b, 0x73, 0x9c, 0xe3,
+ 0x64, 0x79, 0x59, 0x81, 0x78, 0xa5, 0x61, 0x36, 0x6c, 0x0f, 0xa6, 0x68, 0x7d, 0x6d, 0x98, 0x0d,
+ 0x6d, 0x15, 0xa6, 0xb6, 0x1f, 0x56, 0xdf, 0x36, 0x75, 0xa3, 0xd9, 0xb8, 0x7f, 0x20, 0x9e, 0x81,
+ 0xba, 0xfd, 0xea, 0x4a, 0x76, 0x2c, 0xd1, 0x4c, 0x9e, 0xa0, 0x62, 0xdc, 0xf6, 0xe7, 0x2d, 0x98,
+ 0xde, 0xb1, 0xdc, 0xb6, 0xed, 0x38, 0x33, 0x67, 0x75, 0x4c, 0x1f, 0x5e, 0x68, 0xca, 0xb0, 0xd7,
+ 0x94, 0xa5, 0x01, 0x6d, 0xf3, 0xad, 0x13, 0xeb, 0x47, 0x1d, 0x6d, 0x67, 0xe3, 0x89, 0xe9, 0xe4,
+ 0xe5, 0x6c, 0x3c, 0x01, 0xc9, 0x4b, 0x64, 0xdd, 0xbf, 0x61, 0x48, 0x3a, 0xad, 0x4e, 0x45, 0x7f,
+ 0xd0, 0x36, 0xda, 0xe6, 0x60, 0xbf, 0x4a, 0x3d, 0x96, 0xbf, 0x09, 0x13, 0x56, 0x48, 0xed, 0x5f,
+ 0x04, 0xb0, 0xab, 0xa4, 0x45, 0x11, 0xa6, 0x20, 0x03, 0x36, 0x75, 0x3c, 0x1b, 0xf9, 0x16, 0xe0,
+ 0x5a, 0x6d, 0x9b, 0xbc, 0xdc, 0x0a, 0x43, 0x4d, 0xb7, 0xf5, 0x5e, 0xaf, 0xb1, 0xaf, 0x93, 0x5f,
+ 0x64, 0xac, 0xb7, 0x5f, 0xb7, 0x26, 0x90, 0x0b, 0x20, 0xd5, 0xb6, 0x49, 0xc3, 0xbb, 0x10, 0x65,
+ 0x9a, 0xba, 0x54, 0xdb, 0x4e, 0xfd, 0x05, 0xc1, 0x25, 0x6e, 0x54, 0xd6, 0x60, 0xca, 0x19, 0x60,
+ 0x1e, 0x77, 0xbc, 0xce, 0x8d, 0xb9, 0x3e, 0x4b, 0xe7, 0xf4, 0x39, 0xb5, 0x09, 0x33, 0xc2, 0xb8,
+ 0xbc, 0x04, 0x32, 0x3b, 0x44, 0x9c, 0x00, 0xbb, 0xa1, 0xf6, 0x91, 0x68, 0xff, 0x07, 0xe0, 0xc5,
+ 0x55, 0x9e, 0x81, 0xc9, 0xdd, 0x7b, 0x77, 0xaa, 0x3f, 0xa8, 0x55, 0xdf, 0xdc, 0xad, 0x56, 0x92,
+ 0x48, 0xfb, 0x03, 0x82, 0x49, 0xd2, 0xb6, 0xee, 0x75, 0x8e, 0x74, 0xb9, 0x04, 0x68, 0x93, 0xf0,
+ 0xe1, 0xe9, 0xfc, 0x46, 0x9b, 0xf2, 0x32, 0xa0, 0x52, 0x74, 0xa8, 0x51, 0x49, 0xce, 0x03, 0x2a,
+ 0x13, 0x80, 0xa3, 0x21, 0x83, 0xca, 0xda, 0xbf, 0x30, 0x3c, 0xcb, 0xb6, 0xd1, 0x6e, 0x3d, 0xb9,
+ 0xca, 0x7f, 0x37, 0x15, 0x27, 0x56, 0xf2, 0xab, 0x85, 0x25, 0xeb, 0x1f, 0x4a, 0x49, 0x8d, 0xff,
+ 0x84, 0x2a, 0x02, 0x55, 0x59, 0x09, 0xba, 0x27, 0x52, 0x8c, 0x33, 0x33, 0x0c, 0xdc, 0x13, 0xe1,
+ 0xa4, 0x03, 0xf7, 0x44, 0x38, 0xe9, 0xc0, 0x3d, 0x11, 0x4e, 0x3a, 0x70, 0x16, 0xc0, 0x49, 0x07,
+ 0xee, 0x89, 0x70, 0xd2, 0x81, 0x7b, 0x22, 0x9c, 0x74, 0xf0, 0x9e, 0x08, 0x11, 0x07, 0xde, 0x13,
+ 0xe1, 0xe5, 0x83, 0xf7, 0x44, 0x78, 0xf9, 0xe0, 0x3d, 0x91, 0x62, 0xdc, 0xec, 0x1e, 0xeb, 0xc1,
+ 0xa7, 0x0e, 0xbc, 0xfd, 0xb0, 0x8f, 0x40, 0xaf, 0x02, 0xef, 0xc0, 0x8c, 0xb3, 0x21, 0x51, 0xee,
+ 0x18, 0x66, 0xa3, 0x6d, 0xe8, 0x5d, 0xf9, 0x1b, 0x30, 0xe5, 0x0c, 0x39, 0x9f, 0x39, 0x7e, 0x9f,
+ 0x81, 0x8e, 0x9c, 0xd4, 0x5b, 0x4e, 0x5b, 0xfb, 0x32, 0x0e, 0xb3, 0xce, 0x40, 0xad, 0x71, 0xa8,
+ 0x73, 0xb7, 0x8c, 0x16, 0x85, 0x33, 0xa5, 0x69, 0xcb, 0xbc, 0x7f, 0x3a, 0xef, 0x8c, 0x6e, 0x52,
+ 0x36, 0x2d, 0x0a, 0xa7, 0x4b, 0xbc, 0x9e, 0xf7, 0x02, 0x5a, 0x14, 0x6e, 0x1e, 0xf1, 0x7a, 0xf4,
+ 0x7d, 0x43, 0xf5, 0xdc, 0x3b, 0x48, 0xbc, 0x5e, 0x85, 0xb2, 0x6c, 0x51, 0xb8, 0x8d, 0xc4, 0xeb,
+ 0x55, 0x29, 0xdf, 0x16, 0x85, 0xb3, 0x27, 0x5e, 0xef, 0x16, 0x65, 0xde, 0xa2, 0x70, 0x0a, 0xc5,
+ 0xeb, 0x7d, 0x8b, 0x72, 0x70, 0x51, 0xb8, 0xab, 0xc4, 0xeb, 0xbd, 0x4e, 0xd9, 0xb8, 0x28, 0xdc,
+ 0x5a, 0xe2, 0xf5, 0xb6, 0x28, 0x2f, 0x33, 0xe2, 0xfd, 0x25, 0x5e, 0xf1, 0xb6, 0xc7, 0xd0, 0x8c,
+ 0x78, 0x93, 0x89, 0xd7, 0xfc, 0xb6, 0xc7, 0xd5, 0x8c, 0x78, 0xa7, 0x89, 0xd7, 0x7c, 0xc3, 0x63,
+ 0x6d, 0x46, 0x3c, 0x2b, 0xe3, 0x35, 0xb7, 0x3d, 0xfe, 0x66, 0xc4, 0x53, 0x33, 0x5e, 0xb3, 0xe6,
+ 0x31, 0x39, 0x23, 0x9e, 0x9f, 0xf1, 0x9a, 0x3b, 0xde, 0x26, 0xfa, 0x47, 0x02, 0xfd, 0x98, 0x5b,
+ 0x50, 0x9a, 0x40, 0x3f, 0xf0, 0xa1, 0x9e, 0x50, 0xc8, 0x18, 0x1d, 0x8f, 0x76, 0x9a, 0x40, 0x3b,
+ 0xf0, 0xa1, 0x9c, 0x26, 0x50, 0x0e, 0x7c, 0xe8, 0xa6, 0x09, 0x74, 0x03, 0x1f, 0xaa, 0x69, 0x02,
+ 0xd5, 0xc0, 0x87, 0x66, 0x9a, 0x40, 0x33, 0xf0, 0xa1, 0x98, 0x26, 0x50, 0x0c, 0x7c, 0xe8, 0xa5,
+ 0x09, 0xf4, 0x02, 0x1f, 0x6a, 0x2d, 0x88, 0xd4, 0x02, 0x3f, 0x5a, 0x2d, 0x88, 0xb4, 0x02, 0x3f,
+ 0x4a, 0xbd, 0x28, 0x52, 0x6a, 0xa2, 0x7f, 0x3a, 0x3f, 0x66, 0x0d, 0x31, 0x6c, 0x5a, 0x10, 0xd9,
+ 0x04, 0x7e, 0x4c, 0x5a, 0x10, 0x99, 0x04, 0x7e, 0x2c, 0x5a, 0x10, 0x59, 0x04, 0x7e, 0x0c, 0x7a,
+ 0x2c, 0x32, 0xc8, 0xbb, 0xe3, 0xa3, 0x09, 0x47, 0x8a, 0x61, 0x0c, 0xc2, 0x11, 0x18, 0x84, 0x23,
+ 0x30, 0x08, 0x47, 0x60, 0x10, 0x8e, 0xc0, 0x20, 0x1c, 0x81, 0x41, 0x38, 0x02, 0x83, 0x70, 0x04,
+ 0x06, 0xe1, 0x28, 0x0c, 0xc2, 0x91, 0x18, 0x84, 0x83, 0x18, 0xb4, 0x20, 0xde, 0x78, 0x00, 0xbf,
+ 0x82, 0xb4, 0x20, 0x1e, 0x7d, 0x86, 0x53, 0x08, 0x47, 0xa2, 0x10, 0x0e, 0xa2, 0xd0, 0x47, 0x18,
+ 0x9e, 0xe5, 0x28, 0x44, 0xce, 0x87, 0x2e, 0xaa, 0x02, 0xad, 0x47, 0xb8, 0x60, 0xe1, 0xc7, 0xa9,
+ 0xf5, 0x08, 0x87, 0xd4, 0xc3, 0x78, 0x36, 0x58, 0x85, 0xaa, 0x11, 0xaa, 0xd0, 0x2d, 0xca, 0xa1,
+ 0xf5, 0x08, 0x17, 0x2f, 0x06, 0xb9, 0xb7, 0x31, 0xac, 0x08, 0xbc, 0x1e, 0xa9, 0x08, 0x6c, 0x45,
+ 0x2a, 0x02, 0xb7, 0x3d, 0x04, 0x7f, 0x2a, 0xc1, 0x73, 0x1e, 0x82, 0xce, 0x5f, 0xbb, 0x0f, 0x8f,
+ 0xac, 0x12, 0xe0, 0x1d, 0x51, 0xc9, 0xee, 0xb1, 0x0d, 0x03, 0xa3, 0xb4, 0xd5, 0x94, 0xef, 0xf0,
+ 0x87, 0x55, 0xc5, 0x51, 0x0f, 0x70, 0x18, 0xc4, 0xc9, 0x66, 0xe8, 0x02, 0xe0, 0xad, 0x66, 0xcf,
+ 0xae, 0x16, 0x7e, 0xcb, 0x96, 0xeb, 0x96, 0x58, 0xae, 0xc3, 0xb8, 0xad, 0xde, 0xb3, 0xe1, 0x3d,
+ 0xcf, 0xc2, 0x95, 0x3a, 0x99, 0x49, 0x7b, 0x8c, 0x20, 0xcd, 0x51, 0xf9, 0x62, 0x8e, 0x0c, 0x5e,
+ 0x89, 0x74, 0x64, 0xc0, 0x25, 0x88, 0x77, 0x7c, 0xf0, 0xff, 0x83, 0x27, 0xd5, 0x6c, 0x96, 0x88,
+ 0x47, 0x09, 0x3f, 0x81, 0x69, 0xef, 0x09, 0xec, 0x6f, 0xb6, 0xb5, 0xf0, 0xdd, 0x4c, 0xbf, 0xd4,
+ 0x5c, 0x13, 0x76, 0xd1, 0x86, 0x9a, 0xd1, 0x6c, 0xd5, 0x8a, 0x30, 0x53, 0xeb, 0xd8, 0x3b, 0x00,
+ 0xbd, 0x76, 0xc7, 0xe8, 0x6d, 0x37, 0x8e, 0xc2, 0x36, 0x23, 0x12, 0x56, 0x6b, 0x7e, 0xf2, 0xeb,
+ 0xf9, 0x98, 0xf6, 0x32, 0x4c, 0xdd, 0x35, 0xba, 0xfa, 0x5e, 0x67, 0xdf, 0x68, 0xff, 0x58, 0x6f,
+ 0x0a, 0x86, 0x13, 0xae, 0x61, 0x31, 0xfe, 0xc4, 0xd2, 0xfe, 0x05, 0x82, 0x2b, 0xac, 0xfa, 0x77,
+ 0xdb, 0x66, 0x6b, 0xcb, 0xb0, 0x7a, 0xfa, 0x57, 0x21, 0xa1, 0x13, 0xe0, 0xec, 0x77, 0xd7, 0xa4,
+ 0xfb, 0x1d, 0xe9, 0xab, 0xbe, 0x64, 0xff, 0x5b, 0xa7, 0x26, 0xc2, 0x2e, 0x88, 0xbb, 0x6c, 0x3e,
+ 0x75, 0x0d, 0xc6, 0x9c, 0xf9, 0x79, 0xbf, 0x2e, 0x09, 0x7e, 0xfd, 0xd6, 0xc7, 0x2f, 0x9b, 0x47,
+ 0xf2, 0x6d, 0xce, 0x2f, 0xe6, 0x73, 0xd5, 0x57, 0x7d, 0xc9, 0x25, 0x5f, 0x29, 0x61, 0xf5, 0x7f,
+ 0x36, 0xa3, 0xc2, 0x9d, 0xcc, 0x40, 0xa2, 0x2a, 0xea, 0xf8, 0xfb, 0x59, 0x81, 0x78, 0xad, 0xd3,
+ 0xd4, 0xe5, 0xe7, 0x60, 0xec, 0x8d, 0xc6, 0x7d, 0xfd, 0x80, 0x04, 0xd9, 0xf9, 0x21, 0x2f, 0x42,
+ 0xa2, 0xdc, 0x6a, 0x1f, 0x34, 0xbb, 0xba, 0x41, 0xce, 0xec, 0xc9, 0x16, 0xba, 0x65, 0x53, 0xa7,
+ 0x32, 0xad, 0x0c, 0x97, 0x6b, 0x1d, 0xa3, 0xf4, 0xd0, 0x64, 0xeb, 0xc6, 0x92, 0x90, 0x22, 0xe4,
+ 0xcc, 0xe7, 0x8e, 0x95, 0x8d, 0x96, 0x42, 0x69, 0xec, 0xe3, 0xd3, 0x79, 0xb4, 0x4b, 0xf7, 0xcf,
+ 0xb7, 0xe1, 0x79, 0x92, 0x3e, 0x03, 0x53, 0xe5, 0xc3, 0xa6, 0x9a, 0x20, 0xe7, 0xd4, 0xcc, 0x74,
+ 0x5b, 0xd6, 0x74, 0x86, 0xef, 0x74, 0x4f, 0xe7, 0x99, 0xd5, 0x14, 0x0d, 0xf5, 0x0c, 0x8f, 0xe4,
+ 0x99, 0xef, 0x74, 0x4b, 0x61, 0xd3, 0x09, 0x9e, 0xbd, 0x08, 0x13, 0x54, 0xc6, 0xb0, 0x81, 0xcd,
+ 0x94, 0x7c, 0x56, 0x83, 0x49, 0x26, 0x61, 0xe5, 0x31, 0x40, 0x9b, 0xc9, 0x98, 0xf5, 0x5f, 0x29,
+ 0x89, 0xac, 0xff, 0xca, 0x49, 0x29, 0x7b, 0x0d, 0x66, 0x84, 0xfd, 0x4b, 0x4b, 0x52, 0x49, 0x82,
+ 0xf5, 0x5f, 0x35, 0x39, 0x99, 0x8a, 0xbf, 0xf7, 0x1b, 0x35, 0x96, 0x7d, 0x05, 0xe4, 0xc1, 0x9d,
+ 0x4e, 0x79, 0x1c, 0xa4, 0x4d, 0x6b, 0xca, 0xe7, 0x41, 0x2a, 0x95, 0x92, 0x28, 0x35, 0xf3, 0xb3,
+ 0x5f, 0xa6, 0x27, 0x4b, 0xba, 0x69, 0xea, 0xdd, 0x7b, 0xba, 0x59, 0x2a, 0x11, 0xe3, 0xd7, 0xe0,
+ 0x8a, 0xef, 0x4e, 0xa9, 0x65, 0x5f, 0x2e, 0x3b, 0xf6, 0x95, 0xca, 0x80, 0x7d, 0xa5, 0x62, 0xdb,
+ 0xa3, 0xa2, 0x7b, 0xe2, 0xbc, 0x29, 0xfb, 0xec, 0x32, 0x2a, 0x4d, 0xe6, 0x84, 0x7b, 0xb3, 0xf8,
+ 0x1a, 0xd1, 0x2d, 0xf9, 0xea, 0xea, 0x21, 0x27, 0xd6, 0xa5, 0x62, 0x99, 0xd8, 0x97, 0x7d, 0xed,
+ 0x1f, 0x08, 0xc7, 0xaa, 0xfc, 0x1b, 0x82, 0x4c, 0x52, 0xa6, 0x0e, 0x57, 0x7c, 0x27, 0x69, 0x31,
+ 0x97, 0xdd, 0x2b, 0xd4, 0xe1, 0xaa, 0xaf, 0x6e, 0x3b, 0xe4, 0xd2, 0x57, 0xb5, 0xb8, 0x4c, 0x5e,
+ 0xf2, 0x9b, 0x2b, 0xf2, 0x15, 0x37, 0x47, 0xb9, 0x0a, 0x4c, 0x02, 0xe4, 0x6a, 0x15, 0xcb, 0xc4,
+ 0xa0, 0x14, 0x68, 0x10, 0x1c, 0x25, 0xd7, 0xb2, 0xf8, 0x3a, 0x99, 0xa4, 0x1c, 0x38, 0x49, 0x48,
+ 0xa8, 0x5c, 0xf3, 0xd2, 0xee, 0xc9, 0x99, 0x1a, 0x7b, 0x72, 0xa6, 0xc6, 0xfe, 0x71, 0xa6, 0xc6,
+ 0x3e, 0x39, 0x53, 0xd1, 0x67, 0x67, 0x2a, 0xfa, 0xfc, 0x4c, 0x45, 0x5f, 0x9c, 0xa9, 0xe8, 0x9d,
+ 0xbe, 0x8a, 0x3e, 0xe8, 0xab, 0xe8, 0xc3, 0xbe, 0x8a, 0xfe, 0xd8, 0x57, 0xd1, 0xe3, 0xbe, 0x8a,
+ 0x4e, 0xfa, 0x6a, 0xec, 0x49, 0x5f, 0x45, 0x9f, 0xf4, 0x55, 0xf4, 0x59, 0x5f, 0x8d, 0x7d, 0xde,
+ 0x57, 0xd1, 0x17, 0x7d, 0x35, 0xf6, 0xce, 0xa7, 0x6a, 0xec, 0xd1, 0xa7, 0x6a, 0xec, 0x83, 0x4f,
+ 0x55, 0xf4, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3b, 0xf6, 0x66, 0xae, 0x4e, 0x36, 0x00, 0x00,
+}
+
func (this *NidOptNative) Compare(that interface{}) int {
if that == nil {
if this == nil {
@@ -8323,428 +8542,430 @@ func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_
func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 6729 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x7b, 0x70, 0x24, 0x57,
- 0x79, 0xaf, 0x7a, 0x7a, 0xa4, 0x1d, 0x7d, 0x7a, 0xb5, 0x5a, 0xbb, 0xda, 0xb1, 0xbc, 0x96, 0xb4,
- 0xe3, 0xf5, 0x5a, 0x96, 0x6d, 0xad, 0x56, 0xab, 0x7d, 0xcd, 0x62, 0xfb, 0xce, 0x6b, 0xd7, 0x5a,
- 0xa4, 0x91, 0x68, 0x49, 0xd8, 0x0b, 0xf7, 0xd6, 0x54, 0xef, 0xcc, 0x91, 0x34, 0xf6, 0x4c, 0xf7,
- 0x30, 0xdd, 0xb2, 0x2d, 0xd7, 0xad, 0x5b, 0xbe, 0x70, 0x2f, 0x81, 0xa4, 0xf2, 0x24, 0xa9, 0x00,
- 0x01, 0x63, 0xa0, 0x00, 0x43, 0x5e, 0x10, 0x08, 0x01, 0x92, 0x0a, 0xfe, 0x87, 0x64, 0xf3, 0x0f,
- 0x65, 0xf2, 0x57, 0x8a, 0x4a, 0xb9, 0xf0, 0x9a, 0xaa, 0x90, 0xc4, 0x09, 0x84, 0xb8, 0x2a, 0x54,
- 0x99, 0x3f, 0x52, 0xe7, 0xd5, 0xdd, 0xe7, 0x4c, 0x8f, 0xba, 0xe5, 0xb5, 0x0d, 0xff, 0xec, 0xce,
- 0x9c, 0xef, 0xfb, 0x7d, 0xfd, 0x9d, 0xef, 0x75, 0xbe, 0x3e, 0xe7, 0x68, 0xe0, 0xc7, 0x17, 0x61,
- 0x7a, 0xdb, 0xb6, 0xb7, 0x1b, 0xe8, 0x54, 0xab, 0x6d, 0xbb, 0xf6, 0xf5, 0xdd, 0xad, 0x53, 0x35,
- 0xe4, 0x54, 0xdb, 0xf5, 0x96, 0x6b, 0xb7, 0xe7, 0xc8, 0x98, 0x3e, 0x42, 0x39, 0xe6, 0x38, 0x47,
- 0x66, 0x05, 0x46, 0x2f, 0xd7, 0x1b, 0xa8, 0xe8, 0x31, 0xae, 0x23, 0x57, 0xbf, 0x00, 0xc9, 0xad,
- 0x7a, 0x03, 0xa5, 0x95, 0x69, 0x75, 0x66, 0x60, 0xe1, 0xc4, 0x9c, 0x04, 0x9a, 0x13, 0x11, 0x6b,
- 0x78, 0xd8, 0x20, 0x88, 0xcc, 0x0f, 0x93, 0x30, 0x16, 0x42, 0xd5, 0x75, 0x48, 0x5a, 0x66, 0x13,
- 0x4b, 0x54, 0x66, 0xfa, 0x0d, 0xf2, 0x59, 0x4f, 0xc3, 0xa1, 0x96, 0x59, 0x7d, 0xdc, 0xdc, 0x46,
- 0xe9, 0x04, 0x19, 0xe6, 0x5f, 0xf5, 0x49, 0x80, 0x1a, 0x6a, 0x21, 0xab, 0x86, 0xac, 0xea, 0x5e,
- 0x5a, 0x9d, 0x56, 0x67, 0xfa, 0x8d, 0xc0, 0x88, 0x7e, 0x2f, 0x8c, 0xb6, 0x76, 0xaf, 0x37, 0xea,
- 0xd5, 0x4a, 0x80, 0x0d, 0xa6, 0xd5, 0x99, 0x5e, 0x43, 0xa3, 0x84, 0xa2, 0xcf, 0x7c, 0x37, 0x8c,
- 0x3c, 0x89, 0xcc, 0xc7, 0x83, 0xac, 0x03, 0x84, 0x75, 0x18, 0x0f, 0x07, 0x18, 0x0b, 0x30, 0xd8,
- 0x44, 0x8e, 0x63, 0x6e, 0xa3, 0x8a, 0xbb, 0xd7, 0x42, 0xe9, 0x24, 0x99, 0xfd, 0x74, 0xc7, 0xec,
- 0xe5, 0x99, 0x0f, 0x30, 0xd4, 0xc6, 0x5e, 0x0b, 0xe9, 0x39, 0xe8, 0x47, 0xd6, 0x6e, 0x93, 0x4a,
- 0xe8, 0xed, 0x62, 0xbf, 0x92, 0xb5, 0xdb, 0x94, 0xa5, 0xa4, 0x30, 0x8c, 0x89, 0x38, 0xe4, 0xa0,
- 0xf6, 0x13, 0xf5, 0x2a, 0x4a, 0xf7, 0x11, 0x01, 0x77, 0x77, 0x08, 0x58, 0xa7, 0x74, 0x59, 0x06,
- 0xc7, 0xe9, 0x05, 0xe8, 0x47, 0x4f, 0xb9, 0xc8, 0x72, 0xea, 0xb6, 0x95, 0x3e, 0x44, 0x84, 0xdc,
- 0x15, 0xe2, 0x45, 0xd4, 0xa8, 0xc9, 0x22, 0x7c, 0x9c, 0x7e, 0x0e, 0x0e, 0xd9, 0x2d, 0xb7, 0x6e,
- 0x5b, 0x4e, 0x3a, 0x35, 0xad, 0xcc, 0x0c, 0x2c, 0x1c, 0x0b, 0x0d, 0x84, 0x55, 0xca, 0x63, 0x70,
- 0x66, 0x7d, 0x09, 0x34, 0xc7, 0xde, 0x6d, 0x57, 0x51, 0xa5, 0x6a, 0xd7, 0x50, 0xa5, 0x6e, 0x6d,
- 0xd9, 0xe9, 0x7e, 0x22, 0x60, 0xaa, 0x73, 0x22, 0x84, 0xb1, 0x60, 0xd7, 0xd0, 0x92, 0xb5, 0x65,
- 0x1b, 0xc3, 0x8e, 0xf0, 0x5d, 0x1f, 0x87, 0x3e, 0x67, 0xcf, 0x72, 0xcd, 0xa7, 0xd2, 0x83, 0x24,
- 0x42, 0xd8, 0xb7, 0xcc, 0x37, 0xfb, 0x60, 0x24, 0x4e, 0x88, 0x5d, 0x82, 0xde, 0x2d, 0x3c, 0xcb,
- 0x74, 0xe2, 0x20, 0x36, 0xa0, 0x18, 0xd1, 0x88, 0x7d, 0x6f, 0xd0, 0x88, 0x39, 0x18, 0xb0, 0x90,
- 0xe3, 0xa2, 0x1a, 0x8d, 0x08, 0x35, 0x66, 0x4c, 0x01, 0x05, 0x75, 0x86, 0x54, 0xf2, 0x0d, 0x85,
- 0xd4, 0xa3, 0x30, 0xe2, 0xa9, 0x54, 0x69, 0x9b, 0xd6, 0x36, 0x8f, 0xcd, 0x53, 0x51, 0x9a, 0xcc,
- 0x95, 0x38, 0xce, 0xc0, 0x30, 0x63, 0x18, 0x09, 0xdf, 0xf5, 0x22, 0x80, 0x6d, 0x21, 0x7b, 0xab,
- 0x52, 0x43, 0xd5, 0x46, 0x3a, 0xd5, 0xc5, 0x4a, 0xab, 0x98, 0xa5, 0xc3, 0x4a, 0x36, 0x1d, 0xad,
- 0x36, 0xf4, 0x8b, 0x7e, 0xa8, 0x1d, 0xea, 0x12, 0x29, 0x2b, 0x34, 0xc9, 0x3a, 0xa2, 0x6d, 0x13,
- 0x86, 0xdb, 0x08, 0xc7, 0x3d, 0xaa, 0xb1, 0x99, 0xf5, 0x13, 0x25, 0xe6, 0x22, 0x67, 0x66, 0x30,
- 0x18, 0x9d, 0xd8, 0x50, 0x3b, 0xf8, 0x55, 0xbf, 0x13, 0xbc, 0x81, 0x0a, 0x09, 0x2b, 0x20, 0x55,
- 0x68, 0x90, 0x0f, 0x96, 0xcd, 0x26, 0x9a, 0x78, 0x1a, 0x86, 0x45, 0xf3, 0xe8, 0x87, 0xa1, 0xd7,
- 0x71, 0xcd, 0xb6, 0x4b, 0xa2, 0xb0, 0xd7, 0xa0, 0x5f, 0x74, 0x0d, 0x54, 0x64, 0xd5, 0x48, 0x95,
- 0xeb, 0x35, 0xf0, 0x47, 0xfd, 0x7f, 0xf8, 0x13, 0x56, 0xc9, 0x84, 0x4f, 0x76, 0x7a, 0x54, 0x90,
- 0x2c, 0xcf, 0x7b, 0xe2, 0x3c, 0x0c, 0x09, 0x13, 0x88, 0xfb, 0xe8, 0xcc, 0xff, 0x86, 0x23, 0xa1,
- 0xa2, 0xf5, 0x47, 0xe1, 0xf0, 0xae, 0x55, 0xb7, 0x5c, 0xd4, 0x6e, 0xb5, 0x11, 0x8e, 0x58, 0xfa,
- 0xa8, 0xf4, 0x3f, 0x1d, 0xea, 0x12, 0x73, 0x9b, 0x41, 0x6e, 0x2a, 0xc5, 0x18, 0xdb, 0xed, 0x1c,
- 0x9c, 0xed, 0x4f, 0xfd, 0xe8, 0x90, 0xf6, 0xcc, 0x33, 0xcf, 0x3c, 0x93, 0xc8, 0x7c, 0xb4, 0x0f,
- 0x0e, 0x87, 0xe5, 0x4c, 0x68, 0xfa, 0x8e, 0x43, 0x9f, 0xb5, 0xdb, 0xbc, 0x8e, 0xda, 0xc4, 0x48,
- 0xbd, 0x06, 0xfb, 0xa6, 0xe7, 0xa0, 0xb7, 0x61, 0x5e, 0x47, 0x8d, 0x74, 0x72, 0x5a, 0x99, 0x19,
- 0x5e, 0xb8, 0x37, 0x56, 0x56, 0xce, 0x2d, 0x63, 0x88, 0x41, 0x91, 0xfa, 0x83, 0x90, 0x64, 0x25,
- 0x1a, 0x4b, 0x98, 0x8d, 0x27, 0x01, 0xe7, 0x92, 0x41, 0x70, 0xfa, 0xed, 0xd0, 0x8f, 0xff, 0xa7,
- 0xb1, 0xd1, 0x47, 0x74, 0x4e, 0xe1, 0x01, 0x1c, 0x17, 0xfa, 0x04, 0xa4, 0x48, 0x9a, 0xd4, 0x10,
- 0x5f, 0xda, 0xbc, 0xef, 0x38, 0xb0, 0x6a, 0x68, 0xcb, 0xdc, 0x6d, 0xb8, 0x95, 0x27, 0xcc, 0xc6,
- 0x2e, 0x22, 0x01, 0xdf, 0x6f, 0x0c, 0xb2, 0xc1, 0x77, 0xe3, 0x31, 0x7d, 0x0a, 0x06, 0x68, 0x56,
- 0xd5, 0xad, 0x1a, 0x7a, 0x8a, 0x54, 0xcf, 0x5e, 0x83, 0x26, 0xda, 0x12, 0x1e, 0xc1, 0x8f, 0x7f,
- 0xcc, 0xb1, 0x2d, 0x1e, 0x9a, 0xe4, 0x11, 0x78, 0x80, 0x3c, 0xfe, 0xbc, 0x5c, 0xb8, 0xef, 0x08,
- 0x9f, 0x9e, 0x1c, 0x53, 0x99, 0xaf, 0x27, 0x20, 0x49, 0xea, 0xc5, 0x08, 0x0c, 0x6c, 0x5c, 0x5b,
- 0x2b, 0x55, 0x8a, 0xab, 0x9b, 0xf9, 0xe5, 0x92, 0xa6, 0xe8, 0xc3, 0x00, 0x64, 0xe0, 0xf2, 0xf2,
- 0x6a, 0x6e, 0x43, 0x4b, 0x78, 0xdf, 0x97, 0xca, 0x1b, 0xe7, 0x16, 0x35, 0xd5, 0x03, 0x6c, 0xd2,
- 0x81, 0x64, 0x90, 0xe1, 0xcc, 0x82, 0xd6, 0xab, 0x6b, 0x30, 0x48, 0x05, 0x2c, 0x3d, 0x5a, 0x2a,
- 0x9e, 0x5b, 0xd4, 0xfa, 0xc4, 0x91, 0x33, 0x0b, 0xda, 0x21, 0x7d, 0x08, 0xfa, 0xc9, 0x48, 0x7e,
- 0x75, 0x75, 0x59, 0x4b, 0x79, 0x32, 0xd7, 0x37, 0x8c, 0xa5, 0xf2, 0x15, 0xad, 0xdf, 0x93, 0x79,
- 0xc5, 0x58, 0xdd, 0x5c, 0xd3, 0xc0, 0x93, 0xb0, 0x52, 0x5a, 0x5f, 0xcf, 0x5d, 0x29, 0x69, 0x03,
- 0x1e, 0x47, 0xfe, 0xda, 0x46, 0x69, 0x5d, 0x1b, 0x14, 0xd4, 0x3a, 0xb3, 0xa0, 0x0d, 0x79, 0x8f,
- 0x28, 0x95, 0x37, 0x57, 0xb4, 0x61, 0x7d, 0x14, 0x86, 0xe8, 0x23, 0xb8, 0x12, 0x23, 0xd2, 0xd0,
- 0xb9, 0x45, 0x4d, 0xf3, 0x15, 0xa1, 0x52, 0x46, 0x85, 0x81, 0x73, 0x8b, 0x9a, 0x9e, 0x29, 0x40,
- 0x2f, 0x89, 0x2e, 0x5d, 0x87, 0xe1, 0xe5, 0x5c, 0xbe, 0xb4, 0x5c, 0x59, 0x5d, 0xdb, 0x58, 0x5a,
- 0x2d, 0xe7, 0x96, 0x35, 0xc5, 0x1f, 0x33, 0x4a, 0xef, 0xda, 0x5c, 0x32, 0x4a, 0x45, 0x2d, 0x11,
- 0x1c, 0x5b, 0x2b, 0xe5, 0x36, 0x4a, 0x45, 0x4d, 0xcd, 0x54, 0xe1, 0x70, 0x58, 0x9d, 0x0c, 0xcd,
- 0x8c, 0x80, 0x8b, 0x13, 0x5d, 0x5c, 0x4c, 0x64, 0x75, 0xb8, 0xf8, 0x95, 0x04, 0x8c, 0x85, 0xac,
- 0x15, 0xa1, 0x0f, 0x79, 0x08, 0x7a, 0x69, 0x88, 0xd2, 0xd5, 0xf3, 0x9e, 0xd0, 0x45, 0x87, 0x04,
- 0x6c, 0xc7, 0x0a, 0x4a, 0x70, 0xc1, 0x0e, 0x42, 0xed, 0xd2, 0x41, 0x60, 0x11, 0x1d, 0x35, 0xfd,
- 0x7f, 0x75, 0xd4, 0x74, 0xba, 0xec, 0x9d, 0x8b, 0xb3, 0xec, 0x91, 0xb1, 0x83, 0xd5, 0xf6, 0xde,
- 0x90, 0xda, 0x7e, 0x09, 0x46, 0x3b, 0x04, 0xc5, 0xae, 0xb1, 0x1f, 0x50, 0x20, 0xdd, 0xcd, 0x38,
- 0x11, 0x95, 0x2e, 0x21, 0x54, 0xba, 0x4b, 0xb2, 0x05, 0x8f, 0x77, 0x77, 0x42, 0x87, 0xaf, 0xbf,
- 0xa0, 0xc0, 0x78, 0x78, 0xa7, 0x18, 0xaa, 0xc3, 0x83, 0xd0, 0xd7, 0x44, 0xee, 0x8e, 0xcd, 0xbb,
- 0xa5, 0x93, 0x21, 0x6b, 0x30, 0x26, 0xcb, 0xce, 0x66, 0xa8, 0xe0, 0x22, 0xae, 0x76, 0x6b, 0xf7,
- 0xa8, 0x36, 0x1d, 0x9a, 0x7e, 0x38, 0x01, 0x47, 0x42, 0x85, 0x87, 0x2a, 0x7a, 0x07, 0x40, 0xdd,
- 0x6a, 0xed, 0xba, 0xb4, 0x23, 0xa2, 0x05, 0xb6, 0x9f, 0x8c, 0x90, 0xe2, 0x85, 0x8b, 0xe7, 0xae,
- 0xeb, 0xd1, 0x55, 0x42, 0x07, 0x3a, 0x44, 0x18, 0x2e, 0xf8, 0x8a, 0x26, 0x89, 0xa2, 0x93, 0x5d,
- 0x66, 0xda, 0x11, 0x98, 0xf3, 0xa0, 0x55, 0x1b, 0x75, 0x64, 0xb9, 0x15, 0xc7, 0x6d, 0x23, 0xb3,
- 0x59, 0xb7, 0xb6, 0xc9, 0x0a, 0x92, 0xca, 0xf6, 0x6e, 0x99, 0x0d, 0x07, 0x19, 0x23, 0x94, 0xbc,
- 0xce, 0xa9, 0x18, 0x41, 0x02, 0xa8, 0x1d, 0x40, 0xf4, 0x09, 0x08, 0x4a, 0xf6, 0x10, 0x99, 0xaf,
- 0xa6, 0x60, 0x20, 0xd0, 0x57, 0xeb, 0xc7, 0x61, 0xf0, 0x31, 0xf3, 0x09, 0xb3, 0xc2, 0xdf, 0x95,
- 0xa8, 0x25, 0x06, 0xf0, 0xd8, 0x1a, 0x7b, 0x5f, 0x9a, 0x87, 0xc3, 0x84, 0xc5, 0xde, 0x75, 0x51,
- 0xbb, 0x52, 0x6d, 0x98, 0x8e, 0x43, 0x8c, 0x96, 0x22, 0xac, 0x3a, 0xa6, 0xad, 0x62, 0x52, 0x81,
- 0x53, 0xf4, 0xb3, 0x30, 0x46, 0x10, 0xcd, 0xdd, 0x86, 0x5b, 0x6f, 0x35, 0x50, 0x05, 0xbf, 0xbd,
- 0x39, 0x64, 0x25, 0xf1, 0x34, 0x1b, 0xc5, 0x1c, 0x2b, 0x8c, 0x01, 0x6b, 0xe4, 0xe8, 0x45, 0xb8,
- 0x83, 0xc0, 0xb6, 0x91, 0x85, 0xda, 0xa6, 0x8b, 0x2a, 0xe8, 0x7d, 0xbb, 0x66, 0xc3, 0xa9, 0x98,
- 0x56, 0xad, 0xb2, 0x63, 0x3a, 0x3b, 0xe9, 0xc3, 0x58, 0x40, 0x3e, 0x91, 0x56, 0x8c, 0xdb, 0x30,
- 0xe3, 0x15, 0xc6, 0x57, 0x22, 0x6c, 0x39, 0xab, 0xf6, 0xb0, 0xe9, 0xec, 0xe8, 0x59, 0x18, 0x27,
- 0x52, 0x1c, 0xb7, 0x5d, 0xb7, 0xb6, 0x2b, 0xd5, 0x1d, 0x54, 0x7d, 0xbc, 0xb2, 0xeb, 0x6e, 0x5d,
- 0x48, 0xdf, 0x1e, 0x7c, 0x3e, 0xd1, 0x70, 0x9d, 0xf0, 0x14, 0x30, 0xcb, 0xa6, 0xbb, 0x75, 0x41,
- 0x5f, 0x87, 0x41, 0xec, 0x8c, 0x66, 0xfd, 0x69, 0x54, 0xd9, 0xb2, 0xdb, 0x64, 0x69, 0x1c, 0x0e,
- 0x29, 0x4d, 0x01, 0x0b, 0xce, 0xad, 0x32, 0xc0, 0x8a, 0x5d, 0x43, 0xd9, 0xde, 0xf5, 0xb5, 0x52,
- 0xa9, 0x68, 0x0c, 0x70, 0x29, 0x97, 0xed, 0x36, 0x0e, 0xa8, 0x6d, 0xdb, 0x33, 0xf0, 0x00, 0x0d,
- 0xa8, 0x6d, 0x9b, 0x9b, 0xf7, 0x2c, 0x8c, 0x55, 0xab, 0x74, 0xce, 0xf5, 0x6a, 0x85, 0xbd, 0x63,
- 0x39, 0x69, 0x4d, 0x30, 0x56, 0xb5, 0x7a, 0x85, 0x32, 0xb0, 0x18, 0x77, 0xf4, 0x8b, 0x70, 0xc4,
- 0x37, 0x56, 0x10, 0x38, 0xda, 0x31, 0x4b, 0x19, 0x7a, 0x16, 0xc6, 0x5a, 0x7b, 0x9d, 0x40, 0x5d,
- 0x78, 0x62, 0x6b, 0x4f, 0x86, 0x9d, 0x87, 0xc3, 0xad, 0x9d, 0x56, 0x27, 0x6e, 0x36, 0x88, 0xd3,
- 0x5b, 0x3b, 0x2d, 0x19, 0x78, 0x17, 0x79, 0xe1, 0x6e, 0xa3, 0xaa, 0xe9, 0xa2, 0x5a, 0xfa, 0x68,
- 0x90, 0x3d, 0x40, 0xd0, 0x4f, 0x81, 0x56, 0xad, 0x56, 0x90, 0x65, 0x5e, 0x6f, 0xa0, 0x8a, 0xd9,
- 0x46, 0x96, 0xe9, 0xa4, 0xa7, 0x82, 0xcc, 0xc3, 0xd5, 0x6a, 0x89, 0x50, 0x73, 0x84, 0xa8, 0xcf,
- 0xc2, 0xa8, 0x7d, 0xfd, 0xb1, 0x2a, 0x0d, 0xc9, 0x4a, 0xab, 0x8d, 0xb6, 0xea, 0x4f, 0xa5, 0x4f,
- 0x10, 0xfb, 0x8e, 0x60, 0x02, 0x09, 0xc8, 0x35, 0x32, 0xac, 0xdf, 0x03, 0x5a, 0xd5, 0xd9, 0x31,
- 0xdb, 0x2d, 0x52, 0x93, 0x9d, 0x96, 0x59, 0x45, 0xe9, 0xbb, 0x28, 0x2b, 0x1d, 0x2f, 0xf3, 0x61,
- 0x9c, 0x12, 0xce, 0x93, 0xf5, 0x2d, 0x97, 0x4b, 0xbc, 0x9b, 0xa6, 0x04, 0x19, 0x63, 0xd2, 0x66,
- 0x40, 0xc3, 0xa6, 0x10, 0x1e, 0x3c, 0x43, 0xd8, 0x86, 0x5b, 0x3b, 0xad, 0xe0, 0x73, 0xef, 0x84,
- 0x21, 0xcc, 0xe9, 0x3f, 0xf4, 0x1e, 0xda, 0x90, 0xb5, 0x76, 0x02, 0x4f, 0x7c, 0xcb, 0x7a, 0xe3,
- 0x4c, 0x16, 0x06, 0x83, 0xf1, 0xa9, 0xf7, 0x03, 0x8d, 0x50, 0x4d, 0xc1, 0xcd, 0x4a, 0x61, 0xb5,
- 0x88, 0xdb, 0x8c, 0xf7, 0x94, 0xb4, 0x04, 0x6e, 0x77, 0x96, 0x97, 0x36, 0x4a, 0x15, 0x63, 0xb3,
- 0xbc, 0xb1, 0xb4, 0x52, 0xd2, 0xd4, 0x60, 0x5f, 0xfd, 0x9d, 0x04, 0x0c, 0x8b, 0xaf, 0x48, 0xfa,
- 0x3b, 0xe0, 0x28, 0xdf, 0xcf, 0x70, 0x90, 0x5b, 0x79, 0xb2, 0xde, 0x26, 0x29, 0xd3, 0x34, 0xe9,
- 0xf2, 0xe5, 0x39, 0xed, 0x30, 0xe3, 0x5a, 0x47, 0xee, 0x23, 0xf5, 0x36, 0x4e, 0x88, 0xa6, 0xe9,
- 0xea, 0xcb, 0x30, 0x65, 0xd9, 0x15, 0xc7, 0x35, 0xad, 0x9a, 0xd9, 0xae, 0x55, 0xfc, 0x9d, 0xa4,
- 0x8a, 0x59, 0xad, 0x22, 0xc7, 0xb1, 0xe9, 0x52, 0xe5, 0x49, 0x39, 0x66, 0xd9, 0xeb, 0x8c, 0xd9,
- 0xaf, 0xe1, 0x39, 0xc6, 0x2a, 0x05, 0x98, 0xda, 0x2d, 0xc0, 0x6e, 0x87, 0xfe, 0xa6, 0xd9, 0xaa,
- 0x20, 0xcb, 0x6d, 0xef, 0x91, 0xc6, 0x38, 0x65, 0xa4, 0x9a, 0x66, 0xab, 0x84, 0xbf, 0xbf, 0x3d,
- 0xef, 0x27, 0xff, 0xa8, 0xc2, 0x60, 0xb0, 0x39, 0xc6, 0xef, 0x1a, 0x55, 0xb2, 0x8e, 0x28, 0xa4,
- 0xd2, 0xdc, 0xb9, 0x6f, 0x2b, 0x3d, 0x57, 0xc0, 0x0b, 0x4c, 0xb6, 0x8f, 0xb6, 0xac, 0x06, 0x45,
- 0xe2, 0xc5, 0x1d, 0xd7, 0x16, 0x44, 0x5b, 0x84, 0x94, 0xc1, 0xbe, 0xe9, 0x57, 0xa0, 0xef, 0x31,
- 0x87, 0xc8, 0xee, 0x23, 0xb2, 0x4f, 0xec, 0x2f, 0xfb, 0xea, 0x3a, 0x11, 0xde, 0x7f, 0x75, 0xbd,
- 0x52, 0x5e, 0x35, 0x56, 0x72, 0xcb, 0x06, 0x83, 0xeb, 0xb7, 0x41, 0xb2, 0x61, 0x3e, 0xbd, 0x27,
- 0x2e, 0x45, 0x64, 0x28, 0xae, 0xe1, 0x6f, 0x83, 0xe4, 0x93, 0xc8, 0x7c, 0x5c, 0x5c, 0x00, 0xc8,
- 0xd0, 0x5b, 0x18, 0xfa, 0xa7, 0xa0, 0x97, 0xd8, 0x4b, 0x07, 0x60, 0x16, 0xd3, 0x7a, 0xf4, 0x14,
- 0x24, 0x0b, 0xab, 0x06, 0x0e, 0x7f, 0x0d, 0x06, 0xe9, 0x68, 0x65, 0x6d, 0xa9, 0x54, 0x28, 0x69,
- 0x89, 0xcc, 0x59, 0xe8, 0xa3, 0x46, 0xc0, 0xa9, 0xe1, 0x99, 0x41, 0xeb, 0x61, 0x5f, 0x99, 0x0c,
- 0x85, 0x53, 0x37, 0x57, 0xf2, 0x25, 0x43, 0x4b, 0x04, 0xdd, 0xeb, 0xc0, 0x60, 0xb0, 0x2f, 0x7e,
- 0x7b, 0x62, 0xea, 0x5b, 0x0a, 0x0c, 0x04, 0xfa, 0x5c, 0xdc, 0xa0, 0x98, 0x8d, 0x86, 0xfd, 0x64,
- 0xc5, 0x6c, 0xd4, 0x4d, 0x87, 0x05, 0x05, 0x90, 0xa1, 0x1c, 0x1e, 0x89, 0xeb, 0xb4, 0xb7, 0x45,
- 0xf9, 0x67, 0x15, 0xd0, 0xe4, 0x16, 0x53, 0x52, 0x50, 0xf9, 0x85, 0x2a, 0xf8, 0x09, 0x05, 0x86,
- 0xc5, 0xbe, 0x52, 0x52, 0xef, 0xf8, 0x2f, 0x54, 0xbd, 0x1f, 0x24, 0x60, 0x48, 0xe8, 0x26, 0xe3,
- 0x6a, 0xf7, 0x3e, 0x18, 0xad, 0xd7, 0x50, 0xb3, 0x65, 0xbb, 0xc8, 0xaa, 0xee, 0x55, 0x1a, 0xe8,
- 0x09, 0xd4, 0x48, 0x67, 0x48, 0xa1, 0x38, 0xb5, 0x7f, 0xbf, 0x3a, 0xb7, 0xe4, 0xe3, 0x96, 0x31,
- 0x2c, 0x3b, 0xb6, 0x54, 0x2c, 0xad, 0xac, 0xad, 0x6e, 0x94, 0xca, 0x85, 0x6b, 0x95, 0xcd, 0xf2,
- 0x3b, 0xcb, 0xab, 0x8f, 0x94, 0x0d, 0xad, 0x2e, 0xb1, 0xbd, 0x85, 0xa9, 0xbe, 0x06, 0x9a, 0xac,
- 0x94, 0x7e, 0x14, 0xc2, 0xd4, 0xd2, 0x7a, 0xf4, 0x31, 0x18, 0x29, 0xaf, 0x56, 0xd6, 0x97, 0x8a,
- 0xa5, 0x4a, 0xe9, 0xf2, 0xe5, 0x52, 0x61, 0x63, 0x9d, 0xee, 0x40, 0x78, 0xdc, 0x1b, 0x62, 0x52,
- 0x7f, 0x5c, 0x85, 0xb1, 0x10, 0x4d, 0xf4, 0x1c, 0x7b, 0x77, 0xa0, 0xaf, 0x33, 0xf7, 0xc7, 0xd1,
- 0x7e, 0x0e, 0x2f, 0xf9, 0x6b, 0x66, 0xdb, 0x65, 0xaf, 0x1a, 0xf7, 0x00, 0xb6, 0x92, 0xe5, 0xd6,
- 0xb7, 0xea, 0xa8, 0xcd, 0x36, 0x6c, 0xe8, 0x0b, 0xc5, 0x88, 0x3f, 0x4e, 0xf7, 0x6c, 0xee, 0x03,
- 0xbd, 0x65, 0x3b, 0x75, 0xb7, 0xfe, 0x04, 0xaa, 0xd4, 0x2d, 0xbe, 0xbb, 0x83, 0x5f, 0x30, 0x92,
- 0x86, 0xc6, 0x29, 0x4b, 0x96, 0xeb, 0x71, 0x5b, 0x68, 0xdb, 0x94, 0xb8, 0x71, 0x01, 0x57, 0x0d,
- 0x8d, 0x53, 0x3c, 0xee, 0xe3, 0x30, 0x58, 0xb3, 0x77, 0x71, 0xd7, 0x45, 0xf9, 0xf0, 0x7a, 0xa1,
- 0x18, 0x03, 0x74, 0xcc, 0x63, 0x61, 0xfd, 0xb4, 0xbf, 0xad, 0x34, 0x68, 0x0c, 0xd0, 0x31, 0xca,
- 0x72, 0x37, 0x8c, 0x98, 0xdb, 0xdb, 0x6d, 0x2c, 0x9c, 0x0b, 0xa2, 0x6f, 0x08, 0xc3, 0xde, 0x30,
- 0x61, 0x9c, 0xb8, 0x0a, 0x29, 0x6e, 0x07, 0xbc, 0x24, 0x63, 0x4b, 0x54, 0x5a, 0xf4, 0xb5, 0x37,
- 0x31, 0xd3, 0x6f, 0xa4, 0x2c, 0x4e, 0x3c, 0x0e, 0x83, 0x75, 0xa7, 0xe2, 0xef, 0x92, 0x27, 0xa6,
- 0x13, 0x33, 0x29, 0x63, 0xa0, 0xee, 0x78, 0x3b, 0x8c, 0x99, 0x2f, 0x24, 0x60, 0x58, 0xdc, 0xe5,
- 0xd7, 0x8b, 0x90, 0x6a, 0xd8, 0x55, 0x93, 0x84, 0x16, 0x3d, 0x62, 0x9a, 0x89, 0x38, 0x18, 0x98,
- 0x5b, 0x66, 0xfc, 0x86, 0x87, 0x9c, 0xf8, 0xae, 0x02, 0x29, 0x3e, 0xac, 0x8f, 0x43, 0xb2, 0x65,
- 0xba, 0x3b, 0x44, 0x5c, 0x6f, 0x3e, 0xa1, 0x29, 0x06, 0xf9, 0x8e, 0xc7, 0x9d, 0x96, 0x69, 0x91,
- 0x10, 0x60, 0xe3, 0xf8, 0x3b, 0xf6, 0x6b, 0x03, 0x99, 0x35, 0xf2, 0xfa, 0x61, 0x37, 0x9b, 0xc8,
- 0x72, 0x1d, 0xee, 0x57, 0x36, 0x5e, 0x60, 0xc3, 0xfa, 0xbd, 0x30, 0xea, 0xb6, 0xcd, 0x7a, 0x43,
- 0xe0, 0x4d, 0x12, 0x5e, 0x8d, 0x13, 0x3c, 0xe6, 0x2c, 0xdc, 0xc6, 0xe5, 0xd6, 0x90, 0x6b, 0x56,
- 0x77, 0x50, 0xcd, 0x07, 0xf5, 0x91, 0x6d, 0x86, 0xa3, 0x8c, 0xa1, 0xc8, 0xe8, 0x1c, 0x9b, 0xf9,
- 0x9e, 0x02, 0xa3, 0xfc, 0x85, 0xa9, 0xe6, 0x19, 0x6b, 0x05, 0xc0, 0xb4, 0x2c, 0xdb, 0x0d, 0x9a,
- 0xab, 0x33, 0x94, 0x3b, 0x70, 0x73, 0x39, 0x0f, 0x64, 0x04, 0x04, 0x4c, 0x34, 0x01, 0x7c, 0x4a,
- 0x57, 0xb3, 0x4d, 0xc1, 0x00, 0x3b, 0xc2, 0x21, 0xe7, 0x80, 0xf4, 0x15, 0x1b, 0xe8, 0x10, 0x7e,
- 0xb3, 0xd2, 0x0f, 0x43, 0xef, 0x75, 0xb4, 0x5d, 0xb7, 0xd8, 0xc6, 0x2c, 0xfd, 0xc2, 0x37, 0x42,
- 0x92, 0xde, 0x46, 0x48, 0xfe, 0xbd, 0x30, 0x56, 0xb5, 0x9b, 0xb2, 0xba, 0x79, 0x4d, 0x7a, 0xcd,
- 0x77, 0x1e, 0x56, 0xde, 0x03, 0x7e, 0x8b, 0xf9, 0x33, 0x45, 0xf9, 0x4c, 0x42, 0xbd, 0xb2, 0x96,
- 0xff, 0x52, 0x62, 0xe2, 0x0a, 0x85, 0xae, 0xf1, 0x99, 0x1a, 0x68, 0xab, 0x81, 0xaa, 0x58, 0x7b,
- 0xf8, 0xfc, 0xbd, 0x70, 0xff, 0x76, 0xdd, 0xdd, 0xd9, 0xbd, 0x3e, 0x57, 0xb5, 0x9b, 0xa7, 0xb6,
- 0xed, 0x6d, 0xdb, 0x3f, 0xfa, 0xc4, 0xdf, 0xc8, 0x17, 0xf2, 0x89, 0x1d, 0x7f, 0xf6, 0x7b, 0xa3,
- 0x13, 0x91, 0x67, 0xa5, 0xd9, 0x32, 0x8c, 0x31, 0xe6, 0x0a, 0x39, 0x7f, 0xa1, 0x6f, 0x11, 0xfa,
- 0xbe, 0x7b, 0x58, 0xe9, 0xaf, 0xfc, 0x90, 0x2c, 0xd7, 0xc6, 0x28, 0x83, 0x62, 0x1a, 0x7d, 0xd1,
- 0xc8, 0x1a, 0x70, 0x44, 0x90, 0x47, 0x53, 0x13, 0xb5, 0x23, 0x24, 0x7e, 0x87, 0x49, 0x1c, 0x0b,
- 0x48, 0x5c, 0x67, 0xd0, 0x6c, 0x01, 0x86, 0x0e, 0x22, 0xeb, 0x6f, 0x98, 0xac, 0x41, 0x14, 0x14,
- 0x72, 0x05, 0x46, 0x88, 0x90, 0xea, 0xae, 0xe3, 0xda, 0x4d, 0x52, 0xf7, 0xf6, 0x17, 0xf3, 0xb7,
- 0x3f, 0xa4, 0xb9, 0x32, 0x8c, 0x61, 0x05, 0x0f, 0x95, 0xcd, 0x02, 0x39, 0x72, 0xaa, 0xa1, 0x6a,
- 0x23, 0x42, 0xc2, 0x0d, 0xa6, 0x88, 0xc7, 0x9f, 0x7d, 0x37, 0x1c, 0xc6, 0x9f, 0x49, 0x59, 0x0a,
- 0x6a, 0x12, 0xbd, 0xe1, 0x95, 0xfe, 0xde, 0x07, 0x68, 0x3a, 0x8e, 0x79, 0x02, 0x02, 0x3a, 0x05,
- 0xbc, 0xb8, 0x8d, 0x5c, 0x17, 0xb5, 0x9d, 0x8a, 0xd9, 0x08, 0x53, 0x2f, 0xb0, 0x63, 0x90, 0xfe,
- 0xd8, 0xab, 0xa2, 0x17, 0xaf, 0x50, 0x64, 0xae, 0xd1, 0xc8, 0x6e, 0xc2, 0xd1, 0x90, 0xa8, 0x88,
- 0x21, 0xf3, 0xe3, 0x4c, 0xe6, 0xe1, 0x8e, 0xc8, 0xc0, 0x62, 0xd7, 0x80, 0x8f, 0x7b, 0xbe, 0x8c,
- 0x21, 0xf3, 0x0f, 0x98, 0x4c, 0x9d, 0x61, 0xb9, 0x4b, 0xb1, 0xc4, 0xab, 0x30, 0xfa, 0x04, 0x6a,
- 0x5f, 0xb7, 0x1d, 0xb6, 0x4b, 0x13, 0x43, 0xdc, 0x27, 0x98, 0xb8, 0x11, 0x06, 0x24, 0xdb, 0x36,
- 0x58, 0xd6, 0x45, 0x48, 0x6d, 0x99, 0x55, 0x14, 0x43, 0xc4, 0x27, 0x99, 0x88, 0x43, 0x98, 0x1f,
- 0x43, 0x73, 0x30, 0xb8, 0x6d, 0xb3, 0x95, 0x29, 0x1a, 0xfe, 0x2c, 0x83, 0x0f, 0x70, 0x0c, 0x13,
- 0xd1, 0xb2, 0x5b, 0xbb, 0x0d, 0xbc, 0x6c, 0x45, 0x8b, 0xf8, 0x14, 0x17, 0xc1, 0x31, 0x4c, 0xc4,
- 0x01, 0xcc, 0xfa, 0x1c, 0x17, 0xe1, 0x04, 0xec, 0xf9, 0x10, 0x0c, 0xd8, 0x56, 0x63, 0xcf, 0xb6,
- 0xe2, 0x28, 0xf1, 0x69, 0x26, 0x01, 0x18, 0x04, 0x0b, 0xb8, 0x04, 0xfd, 0x71, 0x1d, 0xf1, 0xb9,
- 0x57, 0x79, 0x7a, 0x70, 0x0f, 0x5c, 0x81, 0x11, 0x5e, 0xa0, 0xea, 0xb6, 0x15, 0x43, 0xc4, 0xe7,
- 0x99, 0x88, 0xe1, 0x00, 0x8c, 0x4d, 0xc3, 0x45, 0x8e, 0xbb, 0x8d, 0xe2, 0x08, 0xf9, 0x02, 0x9f,
- 0x06, 0x83, 0x30, 0x53, 0x5e, 0x47, 0x56, 0x75, 0x27, 0x9e, 0x84, 0xe7, 0xb9, 0x29, 0x39, 0x06,
- 0x8b, 0x28, 0xc0, 0x50, 0xd3, 0x6c, 0x3b, 0x3b, 0x66, 0x23, 0x96, 0x3b, 0xbe, 0xc8, 0x64, 0x0c,
- 0x7a, 0x20, 0x66, 0x91, 0x5d, 0xeb, 0x20, 0x62, 0xbe, 0xc4, 0x2d, 0x12, 0x80, 0xb1, 0xd4, 0x73,
- 0x5c, 0xb2, 0xa5, 0x75, 0x10, 0x69, 0x7f, 0xc8, 0x53, 0x8f, 0x62, 0x57, 0x82, 0x12, 0x2f, 0x41,
- 0xbf, 0x53, 0x7f, 0x3a, 0x96, 0x98, 0x3f, 0xe2, 0x9e, 0x26, 0x00, 0x0c, 0xbe, 0x06, 0xb7, 0x85,
- 0x2e, 0x13, 0x31, 0x84, 0xfd, 0x31, 0x13, 0x36, 0x1e, 0xb2, 0x54, 0xb0, 0x92, 0x70, 0x50, 0x91,
- 0x7f, 0xc2, 0x4b, 0x02, 0x92, 0x64, 0xad, 0xe1, 0x77, 0x05, 0xc7, 0xdc, 0x3a, 0x98, 0xd5, 0xfe,
- 0x94, 0x5b, 0x8d, 0x62, 0x05, 0xab, 0x6d, 0xc0, 0x38, 0x93, 0x78, 0x30, 0xbf, 0x7e, 0x99, 0x17,
- 0x56, 0x8a, 0xde, 0x14, 0xbd, 0xfb, 0x5e, 0x98, 0xf0, 0xcc, 0xc9, 0x9b, 0x52, 0xa7, 0xd2, 0x34,
- 0x5b, 0x31, 0x24, 0x7f, 0x85, 0x49, 0xe6, 0x15, 0xdf, 0xeb, 0x6a, 0x9d, 0x15, 0xb3, 0x85, 0x85,
- 0x3f, 0x0a, 0x69, 0x2e, 0x7c, 0xd7, 0x6a, 0xa3, 0xaa, 0xbd, 0x6d, 0xd5, 0x9f, 0x46, 0xb5, 0x18,
- 0xa2, 0xff, 0x4c, 0x72, 0xd5, 0x66, 0x00, 0x8e, 0x25, 0x2f, 0x81, 0xe6, 0xf5, 0x2a, 0x95, 0x7a,
- 0xb3, 0x65, 0xb7, 0xdd, 0x08, 0x89, 0x5f, 0xe5, 0x9e, 0xf2, 0x70, 0x4b, 0x04, 0x96, 0x2d, 0xc1,
- 0x30, 0xf9, 0x1a, 0x37, 0x24, 0xbf, 0xc6, 0x04, 0x0d, 0xf9, 0x28, 0x56, 0x38, 0xaa, 0x76, 0xb3,
- 0x65, 0xb6, 0xe3, 0xd4, 0xbf, 0x3f, 0xe7, 0x85, 0x83, 0x41, 0x58, 0xe1, 0x70, 0xf7, 0x5a, 0x08,
- 0xaf, 0xf6, 0x31, 0x24, 0x7c, 0x9d, 0x17, 0x0e, 0x8e, 0x61, 0x22, 0x78, 0xc3, 0x10, 0x43, 0xc4,
- 0x5f, 0x70, 0x11, 0x1c, 0x83, 0x45, 0xbc, 0xcb, 0x5f, 0x68, 0xdb, 0x68, 0xbb, 0xee, 0xb8, 0x6d,
- 0xda, 0x0a, 0xef, 0x2f, 0xea, 0x1b, 0xaf, 0x8a, 0x4d, 0x98, 0x11, 0x80, 0xe2, 0x4a, 0xc4, 0xb6,
- 0x50, 0xc9, 0x9b, 0x52, 0xb4, 0x62, 0xdf, 0xe4, 0x95, 0x28, 0x00, 0xc3, 0xba, 0x05, 0x3a, 0x44,
- 0x6c, 0xf6, 0x2a, 0x7e, 0x3f, 0x88, 0x21, 0xee, 0x5b, 0x92, 0x72, 0xeb, 0x1c, 0x8b, 0x65, 0x06,
- 0xfa, 0x9f, 0x5d, 0xeb, 0x71, 0xb4, 0x17, 0x2b, 0x3a, 0xff, 0x52, 0xea, 0x7f, 0x36, 0x29, 0x92,
- 0xd6, 0x90, 0x11, 0xa9, 0x9f, 0xd2, 0xa3, 0x2e, 0xeb, 0xa4, 0xff, 0xef, 0x6b, 0x6c, 0xbe, 0x62,
- 0x3b, 0x95, 0x5d, 0xc6, 0x41, 0x2e, 0x36, 0x3d, 0xd1, 0xc2, 0x3e, 0xf0, 0x9a, 0x17, 0xe7, 0x42,
- 0xcf, 0x93, 0xbd, 0x0c, 0x43, 0x42, 0xc3, 0x13, 0x2d, 0xea, 0xff, 0x31, 0x51, 0x83, 0xc1, 0x7e,
- 0x27, 0x7b, 0x16, 0x92, 0xb8, 0x79, 0x89, 0x86, 0xff, 0x7f, 0x06, 0x27, 0xec, 0xd9, 0x07, 0x20,
- 0xc5, 0x9b, 0x96, 0x68, 0xe8, 0x07, 0x19, 0xd4, 0x83, 0x60, 0x38, 0x6f, 0x58, 0xa2, 0xe1, 0xbf,
- 0xc2, 0xe1, 0x1c, 0x82, 0xe1, 0xf1, 0x4d, 0xf8, 0xc2, 0xaf, 0x25, 0xd9, 0xa2, 0xc3, 0x6d, 0x77,
- 0x09, 0x0e, 0xb1, 0x4e, 0x25, 0x1a, 0xfd, 0x61, 0xf6, 0x70, 0x8e, 0xc8, 0x9e, 0x87, 0xde, 0x98,
- 0x06, 0xff, 0x75, 0x06, 0xa5, 0xfc, 0xd9, 0x02, 0x0c, 0x04, 0xba, 0x93, 0x68, 0xf8, 0x6f, 0x30,
- 0x78, 0x10, 0x85, 0x55, 0x67, 0xdd, 0x49, 0xb4, 0x80, 0xdf, 0xe4, 0xaa, 0x33, 0x04, 0x36, 0x1b,
- 0x6f, 0x4c, 0xa2, 0xd1, 0xbf, 0xc5, 0xad, 0xce, 0x21, 0xd9, 0x87, 0xa0, 0xdf, 0x5b, 0x6c, 0xa2,
- 0xf1, 0xbf, 0xcd, 0xf0, 0x3e, 0x06, 0x5b, 0x20, 0xb0, 0xd8, 0x45, 0x8b, 0xf8, 0x1d, 0x6e, 0x81,
- 0x00, 0x0a, 0xa7, 0x91, 0xdc, 0xc0, 0x44, 0x4b, 0xfa, 0x08, 0x4f, 0x23, 0xa9, 0x7f, 0xc1, 0xde,
- 0x24, 0x35, 0x3f, 0x5a, 0xc4, 0xef, 0x72, 0x6f, 0x12, 0x7e, 0xac, 0x86, 0xdc, 0x11, 0x44, 0xcb,
- 0xf8, 0x7d, 0xae, 0x86, 0xd4, 0x10, 0x64, 0xd7, 0x40, 0xef, 0xec, 0x06, 0xa2, 0xe5, 0x7d, 0x94,
- 0xc9, 0x1b, 0xed, 0x68, 0x06, 0xb2, 0x8f, 0xc0, 0x78, 0x78, 0x27, 0x10, 0x2d, 0xf5, 0x63, 0xaf,
- 0x49, 0xef, 0x6e, 0xc1, 0x46, 0x20, 0xbb, 0xe1, 0x2f, 0x29, 0xc1, 0x2e, 0x20, 0x5a, 0xec, 0xc7,
- 0x5f, 0x13, 0x0b, 0x77, 0xb0, 0x09, 0xc8, 0xe6, 0x00, 0xfc, 0x05, 0x38, 0x5a, 0xd6, 0x27, 0x98,
- 0xac, 0x00, 0x08, 0xa7, 0x06, 0x5b, 0x7f, 0xa3, 0xf1, 0x9f, 0xe4, 0xa9, 0xc1, 0x10, 0x38, 0x35,
- 0xf8, 0xd2, 0x1b, 0x8d, 0x7e, 0x96, 0xa7, 0x06, 0x87, 0xe0, 0xc8, 0x0e, 0xac, 0x6e, 0xd1, 0x12,
- 0x3e, 0xcd, 0x23, 0x3b, 0x80, 0xca, 0x96, 0x61, 0xb4, 0x63, 0x41, 0x8c, 0x16, 0xf5, 0x19, 0x26,
- 0x4a, 0x93, 0xd7, 0xc3, 0xe0, 0xe2, 0xc5, 0x16, 0xc3, 0x68, 0x69, 0x9f, 0x95, 0x16, 0x2f, 0xb6,
- 0x16, 0x66, 0x2f, 0x41, 0xca, 0xda, 0x6d, 0x34, 0x70, 0xf2, 0xe8, 0xfb, 0x5f, 0xb0, 0x4b, 0xff,
- 0xf3, 0xeb, 0xcc, 0x3a, 0x1c, 0x90, 0x3d, 0x0b, 0xbd, 0xa8, 0x79, 0x1d, 0xd5, 0xa2, 0x90, 0xff,
- 0xf2, 0x3a, 0x2f, 0x98, 0x98, 0x3b, 0xfb, 0x10, 0x00, 0xdd, 0x1a, 0x21, 0xc7, 0x7e, 0x11, 0xd8,
- 0x7f, 0x7d, 0x9d, 0x5d, 0x7d, 0xf1, 0x21, 0xbe, 0x00, 0x7a, 0x91, 0x66, 0x7f, 0x01, 0xaf, 0x8a,
- 0x02, 0x88, 0x47, 0x2e, 0xc2, 0xa1, 0xc7, 0x1c, 0xdb, 0x72, 0xcd, 0xed, 0x28, 0xf4, 0xbf, 0x31,
- 0x34, 0xe7, 0xc7, 0x06, 0x6b, 0xda, 0x6d, 0xe4, 0x9a, 0xdb, 0x4e, 0x14, 0xf6, 0xdf, 0x19, 0xd6,
- 0x03, 0x60, 0x70, 0xd5, 0x74, 0xdc, 0x38, 0xf3, 0xfe, 0x31, 0x07, 0x73, 0x00, 0x56, 0x1a, 0x7f,
- 0x7e, 0x1c, 0xed, 0x45, 0x61, 0x7f, 0xc2, 0x95, 0x66, 0xfc, 0xd9, 0x07, 0xa0, 0x1f, 0x7f, 0xa4,
- 0xf7, 0xd9, 0x22, 0xc0, 0xff, 0xc1, 0xc0, 0x3e, 0x02, 0x3f, 0xd9, 0x71, 0x6b, 0x6e, 0x3d, 0xda,
- 0xd8, 0x3f, 0x65, 0x9e, 0xe6, 0xfc, 0xd9, 0x1c, 0x0c, 0x38, 0x6e, 0xad, 0xb6, 0xcb, 0xfa, 0xd3,
- 0x08, 0xf8, 0x7f, 0xbe, 0xee, 0x6d, 0x59, 0x78, 0x18, 0xec, 0xed, 0x27, 0x1f, 0x77, 0x5b, 0x36,
- 0x39, 0xe6, 0x88, 0x92, 0xf0, 0x1a, 0x93, 0x10, 0x80, 0xe4, 0x4b, 0xe1, 0xdb, 0xb7, 0x70, 0xc5,
- 0xbe, 0x62, 0xd3, 0x8d, 0xdb, 0xf7, 0x64, 0xa2, 0x77, 0x60, 0xe1, 0xbb, 0x0d, 0x98, 0xae, 0xda,
- 0xcd, 0xeb, 0xb6, 0x73, 0x2a, 0x50, 0xcc, 0x4f, 0xb9, 0x3b, 0x08, 0xaf, 0xc3, 0x6c, 0x6f, 0x36,
- 0x89, 0x3f, 0x4f, 0x1c, 0x6c, 0x43, 0x97, 0x1c, 0xd7, 0x97, 0xeb, 0x78, 0x0e, 0x65, 0x72, 0x62,
- 0xa2, 0x1f, 0x83, 0x3e, 0x32, 0xab, 0xd3, 0xe4, 0x54, 0x52, 0xc9, 0x27, 0x6f, 0xbc, 0x34, 0xd5,
- 0x63, 0xb0, 0x31, 0x8f, 0xba, 0x40, 0xb6, 0xb4, 0x13, 0x02, 0x75, 0xc1, 0xa3, 0x9e, 0xa1, 0xbb,
- 0xda, 0x02, 0xf5, 0x8c, 0x47, 0x5d, 0x24, 0xfb, 0xdb, 0xaa, 0x40, 0x5d, 0xf4, 0xa8, 0x67, 0xc9,
- 0x19, 0xce, 0x90, 0x40, 0x3d, 0xeb, 0x51, 0xcf, 0x91, 0x93, 0x9b, 0xa4, 0x40, 0x3d, 0xe7, 0x51,
- 0xcf, 0x93, 0x43, 0x9b, 0x51, 0x81, 0x7a, 0xde, 0xa3, 0x5e, 0x20, 0x87, 0x35, 0xba, 0x40, 0xbd,
- 0xe0, 0x51, 0x2f, 0x92, 0x9b, 0x50, 0x87, 0x04, 0xea, 0x45, 0x7d, 0x12, 0x0e, 0xd1, 0x99, 0xcf,
- 0x93, 0x93, 0xfd, 0x11, 0x46, 0xe6, 0x83, 0x3e, 0xfd, 0x34, 0xb9, 0xf5, 0xd4, 0x27, 0xd2, 0x4f,
- 0xfb, 0xf4, 0x05, 0xf2, 0x07, 0x18, 0x9a, 0x48, 0x5f, 0xf0, 0xe9, 0x67, 0xd2, 0x43, 0xe4, 0xe6,
- 0x97, 0x40, 0x3f, 0xe3, 0xd3, 0x17, 0xd3, 0xc3, 0x38, 0x35, 0x44, 0xfa, 0xa2, 0x4f, 0x3f, 0x9b,
- 0x1e, 0x99, 0x56, 0x66, 0x06, 0x45, 0xfa, 0xd9, 0xcc, 0xfb, 0x89, 0x7b, 0x2d, 0xdf, 0xbd, 0xe3,
- 0xa2, 0x7b, 0x3d, 0xc7, 0x8e, 0x8b, 0x8e, 0xf5, 0x5c, 0x3a, 0x2e, 0xba, 0xd4, 0x73, 0xe6, 0xb8,
- 0xe8, 0x4c, 0xcf, 0x8d, 0xe3, 0xa2, 0x1b, 0x3d, 0x07, 0x8e, 0x8b, 0x0e, 0xf4, 0x5c, 0x37, 0x2e,
- 0xba, 0xce, 0x73, 0xda, 0xb8, 0xe8, 0x34, 0xcf, 0x5d, 0xe3, 0xa2, 0xbb, 0x3c, 0x47, 0xa5, 0x25,
- 0x47, 0xf9, 0x2e, 0x4a, 0x4b, 0x2e, 0xf2, 0x9d, 0x93, 0x96, 0x9c, 0xe3, 0xbb, 0x25, 0x2d, 0xb9,
- 0xc5, 0x77, 0x48, 0x5a, 0x72, 0x88, 0xef, 0x8a, 0xb4, 0xe4, 0x0a, 0xdf, 0x09, 0x2c, 0xc7, 0x0c,
- 0xd4, 0x0a, 0xc9, 0x31, 0x75, 0xdf, 0x1c, 0x53, 0xf7, 0xcd, 0x31, 0x75, 0xdf, 0x1c, 0x53, 0xf7,
- 0xcd, 0x31, 0x75, 0xdf, 0x1c, 0x53, 0xf7, 0xcd, 0x31, 0x75, 0xdf, 0x1c, 0x53, 0xf7, 0xcd, 0x31,
- 0x75, 0xff, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0x8d, 0xc8, 0x31, 0x35, 0x22, 0xc7, 0xd4, 0x88, 0x1c,
- 0x53, 0x23, 0x72, 0x4c, 0xed, 0x9a, 0x63, 0xbe, 0x7b, 0xc7, 0x45, 0xf7, 0x86, 0xe6, 0x98, 0xda,
- 0x25, 0xc7, 0xd4, 0x2e, 0x39, 0xa6, 0x76, 0xc9, 0x31, 0xb5, 0x4b, 0x8e, 0xa9, 0x5d, 0x72, 0x4c,
- 0xed, 0x92, 0x63, 0x6a, 0x97, 0x1c, 0x53, 0xbb, 0xe5, 0x98, 0xda, 0x35, 0xc7, 0xd4, 0xae, 0x39,
- 0xa6, 0x76, 0xcd, 0x31, 0xb5, 0x6b, 0x8e, 0xa9, 0x5d, 0x73, 0x4c, 0x0d, 0xe6, 0xd8, 0x5f, 0xa9,
- 0xa0, 0xd3, 0x1c, 0x5b, 0x23, 0x77, 0xc3, 0x98, 0x2b, 0x26, 0xa5, 0x4c, 0xeb, 0xc3, 0xae, 0xd3,
- 0x7c, 0x97, 0x4c, 0x4a, 0xb9, 0x26, 0xd2, 0x17, 0x3c, 0x3a, 0xcf, 0x36, 0x91, 0x7e, 0xc6, 0xa3,
- 0xf3, 0x7c, 0x13, 0xe9, 0x8b, 0x1e, 0x9d, 0x67, 0x9c, 0x48, 0x3f, 0xeb, 0xd1, 0x79, 0xce, 0x89,
- 0xf4, 0x73, 0x1e, 0x9d, 0x67, 0x9d, 0x48, 0x3f, 0xef, 0xd1, 0x79, 0xde, 0x89, 0xf4, 0x0b, 0x1e,
- 0x9d, 0x67, 0x9e, 0x48, 0xbf, 0xa8, 0x4f, 0xcb, 0xb9, 0xc7, 0x19, 0x3c, 0xd7, 0x4e, 0xcb, 0xd9,
- 0x27, 0x71, 0x9c, 0xf6, 0x39, 0x78, 0xfe, 0x49, 0x1c, 0x0b, 0x3e, 0x07, 0xcf, 0x40, 0x89, 0xe3,
- 0x4c, 0xe6, 0x43, 0xc4, 0x7d, 0x96, 0xec, 0xbe, 0x09, 0xc9, 0x7d, 0x89, 0x80, 0xeb, 0x26, 0x24,
- 0xd7, 0x25, 0x02, 0x6e, 0x9b, 0x90, 0xdc, 0x96, 0x08, 0xb8, 0x6c, 0x42, 0x72, 0x59, 0x22, 0xe0,
- 0xae, 0x09, 0xc9, 0x5d, 0x89, 0x80, 0xab, 0x26, 0x24, 0x57, 0x25, 0x02, 0x6e, 0x9a, 0x90, 0xdc,
- 0x94, 0x08, 0xb8, 0x68, 0x42, 0x72, 0x51, 0x22, 0xe0, 0x9e, 0x09, 0xc9, 0x3d, 0x89, 0x80, 0x6b,
- 0x8e, 0xc9, 0xae, 0x49, 0x04, 0xdd, 0x72, 0x4c, 0x76, 0x4b, 0x22, 0xe8, 0x92, 0x63, 0xb2, 0x4b,
- 0x12, 0x41, 0x77, 0x1c, 0x93, 0xdd, 0x91, 0x08, 0xba, 0xe2, 0xe7, 0x09, 0xde, 0x11, 0xae, 0xbb,
- 0xed, 0xdd, 0xaa, 0x7b, 0x4b, 0x1d, 0xe1, 0xbc, 0xd0, 0x3e, 0x0c, 0x2c, 0xe8, 0x73, 0xa4, 0x61,
- 0x0d, 0x76, 0x9c, 0xd2, 0x0a, 0x36, 0x2f, 0x34, 0x16, 0x01, 0x84, 0x15, 0x8e, 0x58, 0xbc, 0xa5,
- 0xde, 0x70, 0x5e, 0x68, 0x33, 0xa2, 0xf5, 0xbb, 0xf0, 0x96, 0x77, 0x6c, 0x2f, 0x24, 0x78, 0xc7,
- 0xc6, 0xcc, 0x7f, 0xd0, 0x8e, 0x6d, 0x36, 0xda, 0xe4, 0x9e, 0xb1, 0x67, 0xa3, 0x8d, 0xdd, 0xb1,
- 0xea, 0xc4, 0xed, 0xe0, 0x66, 0xa3, 0x4d, 0xeb, 0x19, 0xf5, 0xcd, 0xed, 0xb7, 0x58, 0x04, 0x1b,
- 0xa8, 0x15, 0x12, 0xc1, 0x07, 0xed, 0xb7, 0xe6, 0x85, 0x52, 0x72, 0xd0, 0x08, 0x56, 0x0f, 0x1c,
- 0xc1, 0x07, 0xed, 0xbc, 0xe6, 0x85, 0xf2, 0x72, 0xe0, 0x08, 0x7e, 0x0b, 0xfa, 0x21, 0x16, 0xc1,
- 0xbe, 0xf9, 0x0f, 0xda, 0x0f, 0xcd, 0x46, 0x9b, 0x3c, 0x34, 0x82, 0xd5, 0x03, 0x44, 0x70, 0x9c,
- 0xfe, 0x68, 0x36, 0xda, 0xb4, 0xe1, 0x11, 0x7c, 0xcb, 0xdd, 0xcc, 0xa7, 0x14, 0x18, 0x2d, 0xd7,
- 0x6b, 0xa5, 0xe6, 0x75, 0x54, 0xab, 0xa1, 0x1a, 0xb3, 0xe3, 0xbc, 0x50, 0x09, 0xba, 0xb8, 0xfa,
- 0xc5, 0x97, 0xa6, 0x7c, 0x0b, 0x9f, 0x85, 0x14, 0xb5, 0xe9, 0xfc, 0x7c, 0xfa, 0x86, 0x12, 0x51,
- 0xe1, 0x3c, 0x56, 0xfd, 0x38, 0x87, 0x9d, 0x9e, 0x4f, 0xff, 0xbd, 0x12, 0xa8, 0x72, 0xde, 0x70,
- 0xe6, 0x23, 0x44, 0x43, 0xeb, 0x96, 0x35, 0x3c, 0x15, 0x4b, 0xc3, 0x80, 0x6e, 0xb7, 0x77, 0xe8,
- 0x16, 0xd0, 0x6a, 0x17, 0x46, 0xca, 0xf5, 0x5a, 0x99, 0xfc, 0xe9, 0x7f, 0x1c, 0x95, 0x28, 0x8f,
- 0x54, 0x0f, 0xe6, 0x85, 0xb0, 0x0c, 0x22, 0xbc, 0x90, 0x16, 0x6b, 0x44, 0xa6, 0x8e, 0x1f, 0x6b,
- 0x09, 0x8f, 0x9d, 0xed, 0xf6, 0x58, 0xbf, 0xb2, 0x7b, 0x0f, 0x9c, 0xed, 0xf6, 0x40, 0x3f, 0x87,
- 0xbc, 0x47, 0x3d, 0xc5, 0x17, 0x67, 0x7a, 0x43, 0x4b, 0x3f, 0x06, 0x89, 0x25, 0x7a, 0x81, 0x7c,
- 0x30, 0x3f, 0x88, 0x95, 0xfa, 0xfe, 0x4b, 0x53, 0xc9, 0xcd, 0xdd, 0x7a, 0xcd, 0x48, 0x2c, 0xd5,
- 0xf4, 0xab, 0xd0, 0xfb, 0x6e, 0xf6, 0x07, 0xa8, 0x98, 0x61, 0x91, 0x31, 0xdc, 0xd7, 0x75, 0x8f,
- 0x08, 0x3f, 0xf8, 0x14, 0xdd, 0xad, 0x9c, 0xdb, 0xac, 0x5b, 0xee, 0xe9, 0x85, 0x0b, 0x06, 0x15,
- 0x91, 0xf9, 0x9f, 0x00, 0xf4, 0x99, 0x45, 0xd3, 0xd9, 0xd1, 0xcb, 0x5c, 0x32, 0x7d, 0xf4, 0x85,
- 0xef, 0xbf, 0x34, 0xb5, 0x18, 0x47, 0xea, 0xfd, 0x35, 0xd3, 0xd9, 0xb9, 0xdf, 0xdd, 0x6b, 0xa1,
- 0xb9, 0xfc, 0x9e, 0x8b, 0x1c, 0x2e, 0xbd, 0xc5, 0x57, 0x3d, 0x36, 0xaf, 0x74, 0x60, 0x5e, 0x29,
- 0x61, 0x4e, 0x97, 0xc5, 0x39, 0xcd, 0xbf, 0xd1, 0xf9, 0x3c, 0xc5, 0x17, 0x09, 0xc9, 0x92, 0x6a,
- 0x94, 0x25, 0xd5, 0x5b, 0xb5, 0x64, 0x8b, 0xd7, 0x47, 0x69, 0xae, 0xea, 0x7e, 0x73, 0x55, 0x6f,
- 0x65, 0xae, 0xff, 0x45, 0xb3, 0xd5, 0xcb, 0xa7, 0x4d, 0x8b, 0x5e, 0x5e, 0xfd, 0xe5, 0xda, 0x0b,
- 0x7a, 0x53, 0xbb, 0x80, 0x6c, 0xf2, 0xc6, 0x73, 0x53, 0x4a, 0xe6, 0x53, 0x09, 0x3e, 0x73, 0x9a,
- 0x48, 0x6f, 0x6c, 0xe6, 0xbf, 0x2c, 0x3d, 0xd5, 0x5b, 0x61, 0xa1, 0x67, 0x15, 0x18, 0xef, 0xa8,
- 0xe4, 0xd4, 0x4c, 0x6f, 0x6e, 0x39, 0xb7, 0x0e, 0x5a, 0xce, 0x99, 0x82, 0x5f, 0x53, 0xe0, 0xb0,
- 0x54, 0x5e, 0xa9, 0x7a, 0xa7, 0x24, 0xf5, 0x8e, 0x76, 0x3e, 0x89, 0x30, 0x06, 0xb4, 0x0b, 0xba,
- 0x57, 0x02, 0x04, 0x24, 0x7b, 0x7e, 0x5f, 0x94, 0xfc, 0x7e, 0xcc, 0x03, 0x84, 0x98, 0x8b, 0x47,
- 0x00, 0x53, 0xdb, 0x86, 0xe4, 0x46, 0x1b, 0x21, 0x7d, 0x12, 0x12, 0xab, 0x6d, 0xa6, 0xe1, 0x30,
- 0xc5, 0xaf, 0xb6, 0xf3, 0x6d, 0xd3, 0xaa, 0xee, 0x18, 0x89, 0xd5, 0xb6, 0x7e, 0x1c, 0xd4, 0x1c,
- 0xfb, 0xe3, 0xf7, 0x81, 0x85, 0x11, 0xca, 0x90, 0xb3, 0x6a, 0x8c, 0x03, 0xd3, 0xf4, 0x49, 0x48,
- 0x2e, 0x23, 0x73, 0x8b, 0x29, 0x01, 0x94, 0x07, 0x8f, 0x18, 0x64, 0x9c, 0x3d, 0xf0, 0x51, 0x48,
- 0x71, 0xc1, 0xfa, 0x09, 0x8c, 0xd8, 0x72, 0xd9, 0x63, 0x19, 0x02, 0xab, 0xc3, 0x56, 0x2e, 0x42,
- 0xd5, 0x4f, 0x42, 0xaf, 0x51, 0xdf, 0xde, 0x71, 0xd9, 0xc3, 0x3b, 0xd9, 0x28, 0x39, 0x73, 0x0d,
- 0xfa, 0x3d, 0x8d, 0xde, 0x64, 0xd1, 0x45, 0x3a, 0x35, 0x7d, 0x22, 0xb8, 0x9e, 0xf0, 0x7d, 0x4b,
- 0x3a, 0xa4, 0x4f, 0x43, 0x6a, 0xdd, 0x6d, 0xfb, 0x45, 0x9f, 0x77, 0xa4, 0xde, 0x68, 0xe6, 0xfd,
- 0x0a, 0xa4, 0x8a, 0x08, 0xb5, 0x88, 0xc1, 0xef, 0x82, 0x64, 0xd1, 0x7e, 0xd2, 0x62, 0x0a, 0x8e,
- 0x32, 0x8b, 0x62, 0x32, 0xb3, 0x29, 0x21, 0xeb, 0x77, 0x05, 0xed, 0x3e, 0xe6, 0xd9, 0x3d, 0xc0,
- 0x47, 0x6c, 0x9f, 0x11, 0x6c, 0xcf, 0x1c, 0x88, 0x99, 0x3a, 0xec, 0x7f, 0x1e, 0x06, 0x02, 0x4f,
- 0xd1, 0x67, 0x98, 0x1a, 0x09, 0x19, 0x18, 0xb4, 0x15, 0xe6, 0xc8, 0x20, 0x18, 0x12, 0x1e, 0x8c,
- 0xa1, 0x01, 0x13, 0x77, 0x81, 0x12, 0x33, 0xcf, 0x8a, 0x66, 0x0e, 0x67, 0x65, 0xa6, 0x9e, 0xa7,
- 0x36, 0x22, 0xe6, 0x3e, 0x41, 0x83, 0xb3, 0xbb, 0x13, 0xf1, 0xe7, 0x4c, 0x2f, 0xa8, 0xe5, 0x7a,
- 0x23, 0xf3, 0x00, 0x00, 0x4d, 0xf9, 0x92, 0xb5, 0xdb, 0x94, 0xb2, 0x6e, 0x98, 0x1b, 0x78, 0x63,
- 0x07, 0x6d, 0x20, 0x87, 0xb0, 0x88, 0xfd, 0x14, 0x2e, 0x30, 0x40, 0x53, 0x8c, 0xe0, 0xef, 0x89,
- 0xc4, 0x87, 0x76, 0x62, 0x98, 0x35, 0x4d, 0x59, 0xaf, 0x21, 0x37, 0x67, 0xd9, 0xee, 0x0e, 0x6a,
- 0x4b, 0x88, 0x05, 0xfd, 0x8c, 0x90, 0xb0, 0xc3, 0x0b, 0xb7, 0x7b, 0x88, 0xae, 0xa0, 0x33, 0x99,
- 0x2f, 0x13, 0x05, 0x71, 0x2b, 0xd0, 0x31, 0x41, 0x35, 0xc6, 0x04, 0xf5, 0x73, 0x42, 0xff, 0xb6,
- 0x8f, 0x9a, 0xd2, 0xab, 0xe5, 0x45, 0xe1, 0x3d, 0x67, 0x7f, 0x65, 0xc5, 0x77, 0x4c, 0x6e, 0x53,
- 0xae, 0xf2, 0x3d, 0x91, 0x2a, 0x77, 0xe9, 0x6e, 0x0f, 0x6a, 0x53, 0x35, 0xae, 0x4d, 0xbf, 0xe5,
- 0x75, 0x1c, 0xf4, 0x17, 0x46, 0xc8, 0x6f, 0xf3, 0xe8, 0xf7, 0x45, 0xfa, 0x3e, 0xab, 0x14, 0x3c,
- 0x55, 0x17, 0xe3, 0xba, 0x3f, 0x9b, 0xc8, 0xe7, 0x3d, 0x75, 0xcf, 0x1f, 0x20, 0x04, 0xb2, 0x89,
- 0x42, 0xc1, 0x2b, 0xdb, 0xa9, 0x0f, 0x3d, 0x37, 0xa5, 0x3c, 0xff, 0xdc, 0x54, 0x4f, 0xe6, 0x8b,
- 0x0a, 0x8c, 0x32, 0xce, 0x40, 0xe0, 0xde, 0x2f, 0x29, 0x7f, 0x84, 0xd7, 0x8c, 0x30, 0x0b, 0xbc,
- 0x6d, 0xc1, 0xfb, 0x1d, 0x05, 0xd2, 0x1d, 0xba, 0x72, 0x7b, 0xcf, 0xc7, 0x52, 0x39, 0xab, 0x94,
- 0x7e, 0xf1, 0x36, 0xbf, 0x06, 0xbd, 0x1b, 0xf5, 0x26, 0x6a, 0xe3, 0x95, 0x00, 0x7f, 0xa0, 0x2a,
- 0xf3, 0xc3, 0x1c, 0x3a, 0xc4, 0x69, 0x54, 0x39, 0x81, 0xb6, 0xa0, 0xa7, 0x21, 0x59, 0x34, 0x5d,
- 0x93, 0x68, 0x30, 0xe8, 0xd5, 0x57, 0xd3, 0x35, 0x33, 0x67, 0x60, 0x70, 0x65, 0x8f, 0xdc, 0x38,
- 0xaa, 0x91, 0xcb, 0x26, 0x62, 0xf7, 0xc7, 0xfb, 0xd5, 0xd3, 0xb3, 0xbd, 0xa9, 0x9a, 0x76, 0x43,
- 0xc9, 0x26, 0x89, 0x3e, 0x4f, 0xc0, 0xf0, 0x2a, 0x56, 0x9b, 0xe0, 0x04, 0x18, 0x7d, 0xba, 0xea,
- 0x4d, 0x5e, 0x6a, 0xca, 0x54, 0xbf, 0x29, 0x9b, 0x06, 0x65, 0x45, 0x6c, 0x9d, 0x82, 0x7a, 0x18,
- 0xca, 0xca, 0x6c, 0x32, 0x35, 0xac, 0x8d, 0xce, 0x26, 0x53, 0xa0, 0x0d, 0xb1, 0xe7, 0xfe, 0x9d,
- 0x0a, 0x1a, 0x6d, 0x75, 0x8a, 0x68, 0xab, 0x6e, 0xd5, 0xdd, 0xce, 0x7e, 0xd5, 0xd3, 0x58, 0x7f,
- 0x08, 0xfa, 0xb1, 0x49, 0x2f, 0xb3, 0x9f, 0xe8, 0xc3, 0xa6, 0x3f, 0xce, 0x5a, 0x14, 0x49, 0x04,
- 0x1b, 0x20, 0xa1, 0xe3, 0x63, 0xf4, 0xcb, 0xa0, 0x96, 0xcb, 0x2b, 0x6c, 0x71, 0x5b, 0xdc, 0x17,
- 0xca, 0x6e, 0xf5, 0xb0, 0x6f, 0x6c, 0xcc, 0xd9, 0x36, 0xb0, 0x00, 0x7d, 0x11, 0x12, 0xe5, 0x15,
- 0xd6, 0xf0, 0x9e, 0x88, 0x23, 0xc6, 0x48, 0x94, 0x57, 0x26, 0xfe, 0x5a, 0x81, 0x21, 0x61, 0x54,
- 0xcf, 0xc0, 0x20, 0x1d, 0x08, 0x4c, 0xb7, 0xcf, 0x10, 0xc6, 0xb8, 0xce, 0x89, 0x5b, 0xd4, 0x79,
- 0x22, 0x07, 0x23, 0xd2, 0xb8, 0x3e, 0x07, 0x7a, 0x70, 0x88, 0x29, 0x41, 0x7f, 0x1e, 0x2c, 0x84,
- 0x92, 0xb9, 0x03, 0xc0, 0xb7, 0xab, 0xf7, 0xab, 0x56, 0xe5, 0xd2, 0xfa, 0x46, 0xa9, 0xa8, 0x29,
- 0x99, 0xaf, 0x2b, 0x30, 0xc0, 0xda, 0xd6, 0xaa, 0xdd, 0x42, 0x7a, 0x1e, 0x94, 0x1c, 0x8b, 0x87,
- 0x37, 0xa6, 0xb7, 0x92, 0xd3, 0x4f, 0x81, 0x92, 0x8f, 0xef, 0x6a, 0x25, 0xaf, 0x2f, 0x80, 0x52,
- 0x60, 0x0e, 0x8e, 0xe7, 0x19, 0xa5, 0x90, 0xf9, 0xa9, 0x0a, 0x63, 0xc1, 0x36, 0x9a, 0xd7, 0x93,
- 0xe3, 0xe2, 0x7b, 0x53, 0xb6, 0xff, 0xf4, 0xc2, 0x99, 0xc5, 0x39, 0xfc, 0x8f, 0x17, 0x92, 0x19,
- 0xf1, 0x15, 0x2a, 0x0b, 0x1e, 0xcb, 0xe9, 0x6e, 0xf7, 0x44, 0xb2, 0xc9, 0x80, 0x84, 0x8e, 0x7b,
- 0x22, 0x02, 0xb5, 0xe3, 0x9e, 0x88, 0x40, 0xed, 0xb8, 0x27, 0x22, 0x50, 0x3b, 0xce, 0x02, 0x04,
- 0x6a, 0xc7, 0x3d, 0x11, 0x81, 0xda, 0x71, 0x4f, 0x44, 0xa0, 0x76, 0xde, 0x13, 0x61, 0xe4, 0xae,
- 0xf7, 0x44, 0x44, 0x7a, 0xe7, 0x3d, 0x11, 0x91, 0xde, 0x79, 0x4f, 0x24, 0x9b, 0x74, 0xdb, 0xbb,
- 0xa8, 0xfb, 0xa9, 0x83, 0x88, 0xdf, 0xef, 0x25, 0xd0, 0xaf, 0xc0, 0xab, 0x30, 0x42, 0x37, 0x24,
- 0x0a, 0xb6, 0xe5, 0x9a, 0x75, 0x0b, 0xb5, 0xf5, 0x77, 0xc0, 0x20, 0x1d, 0xa2, 0xaf, 0x39, 0x61,
- 0xaf, 0x81, 0x94, 0xce, 0xea, 0xad, 0xc0, 0x9d, 0xf9, 0x79, 0x12, 0xc6, 0xe9, 0x40, 0xd9, 0x6c,
- 0x22, 0xe1, 0x96, 0xd1, 0x49, 0xe9, 0x4c, 0x69, 0x18, 0xc3, 0x6f, 0xbe, 0x34, 0x45, 0x47, 0x73,
- 0x5e, 0x34, 0x9d, 0x94, 0x4e, 0x97, 0x44, 0x3e, 0x7f, 0x01, 0x3a, 0x29, 0xdd, 0x3c, 0x12, 0xf9,
- 0xbc, 0xf5, 0xc6, 0xe3, 0xe3, 0x77, 0x90, 0x44, 0xbe, 0xa2, 0x17, 0x65, 0x27, 0xa5, 0xdb, 0x48,
- 0x22, 0x5f, 0xc9, 0x8b, 0xb7, 0x93, 0xd2, 0xd9, 0x93, 0xc8, 0x77, 0xd9, 0x8b, 0xbc, 0x93, 0xd2,
- 0x29, 0x94, 0xc8, 0x77, 0xc5, 0x8b, 0xc1, 0x93, 0xd2, 0x5d, 0x25, 0x91, 0xef, 0x61, 0x2f, 0x1a,
- 0x4f, 0x4a, 0xb7, 0x96, 0x44, 0xbe, 0x25, 0x2f, 0x2e, 0x67, 0xe4, 0xfb, 0x4b, 0x22, 0xe3, 0x55,
- 0x3f, 0x42, 0x67, 0xe4, 0x9b, 0x4c, 0x22, 0xe7, 0x3b, 0xfd, 0x58, 0x9d, 0x91, 0xef, 0x34, 0x89,
- 0x9c, 0xcb, 0x7e, 0xd4, 0xce, 0xc8, 0x67, 0x65, 0x22, 0xe7, 0x8a, 0x1f, 0xbf, 0x33, 0xf2, 0xa9,
- 0x99, 0xc8, 0x59, 0xf6, 0x23, 0x79, 0x46, 0x3e, 0x3f, 0x13, 0x39, 0x57, 0xfd, 0x4d, 0xf4, 0x6f,
- 0x4b, 0xe1, 0x17, 0xb8, 0x05, 0x95, 0x91, 0xc2, 0x0f, 0x42, 0x42, 0x4f, 0x2a, 0x64, 0x01, 0x1e,
- 0x3f, 0xec, 0x32, 0x52, 0xd8, 0x41, 0x48, 0xc8, 0x65, 0xa4, 0x90, 0x83, 0x90, 0x70, 0xcb, 0x48,
- 0xe1, 0x06, 0x21, 0xa1, 0x96, 0x91, 0x42, 0x0d, 0x42, 0xc2, 0x2c, 0x23, 0x85, 0x19, 0x84, 0x84,
- 0x58, 0x46, 0x0a, 0x31, 0x08, 0x09, 0xaf, 0x8c, 0x14, 0x5e, 0x10, 0x12, 0x5a, 0x27, 0xe4, 0xd0,
- 0x82, 0xb0, 0xb0, 0x3a, 0x21, 0x87, 0x15, 0x84, 0x85, 0xd4, 0x9d, 0x72, 0x48, 0xf5, 0xdf, 0x7c,
- 0x69, 0xaa, 0x17, 0x0f, 0x05, 0xa2, 0xe9, 0x84, 0x1c, 0x4d, 0x10, 0x16, 0x49, 0x27, 0xe4, 0x48,
- 0x82, 0xb0, 0x28, 0x3a, 0x21, 0x47, 0x11, 0x84, 0x45, 0xd0, 0x0b, 0x72, 0x04, 0xf9, 0x77, 0x7c,
- 0x32, 0xd2, 0x91, 0x62, 0x54, 0x04, 0xa9, 0x31, 0x22, 0x48, 0x8d, 0x11, 0x41, 0x6a, 0x8c, 0x08,
- 0x52, 0x63, 0x44, 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x18, 0x11, 0xa4, 0xc6, 0x88, 0x20, 0x35, 0x4e,
- 0x04, 0xa9, 0xb1, 0x22, 0x48, 0xed, 0x16, 0x41, 0x27, 0xe4, 0x1b, 0x0f, 0x10, 0x56, 0x90, 0x4e,
- 0xc8, 0x47, 0x9f, 0xd1, 0x21, 0xa4, 0xc6, 0x0a, 0x21, 0xb5, 0x5b, 0x08, 0x7d, 0x5b, 0x85, 0x31,
- 0x21, 0x84, 0xd8, 0xf9, 0xd0, 0x9b, 0x55, 0x81, 0xce, 0xc5, 0xb8, 0x60, 0x11, 0x16, 0x53, 0xe7,
- 0x62, 0x1c, 0x52, 0xef, 0x17, 0x67, 0x9d, 0x55, 0xa8, 0x14, 0xa3, 0x0a, 0x5d, 0xf6, 0x62, 0xe8,
- 0x5c, 0x8c, 0x8b, 0x17, 0x9d, 0xb1, 0x77, 0x61, 0xbf, 0x22, 0xf0, 0x70, 0xac, 0x22, 0xb0, 0x14,
- 0xab, 0x08, 0x5c, 0xf5, 0x3d, 0xf8, 0xc1, 0x04, 0x1c, 0xf6, 0x3d, 0x48, 0x3f, 0x91, 0x9f, 0xd0,
- 0xca, 0x04, 0x8e, 0xa8, 0x74, 0x7e, 0x6c, 0x13, 0x70, 0x63, 0x62, 0xa9, 0xa6, 0xaf, 0x89, 0x87,
- 0x55, 0xd9, 0x83, 0x1e, 0xe0, 0x04, 0x3c, 0xce, 0x36, 0x43, 0x4f, 0x80, 0xba, 0x54, 0x73, 0x48,
- 0xb5, 0x08, 0x7b, 0x6c, 0xc1, 0xc0, 0x64, 0xdd, 0x80, 0x3e, 0xc2, 0xee, 0x10, 0xf7, 0xde, 0xca,
- 0x83, 0x8b, 0x06, 0x93, 0x94, 0x79, 0x41, 0x81, 0x69, 0x21, 0x94, 0xdf, 0x9c, 0x23, 0x83, 0x4b,
- 0xb1, 0x8e, 0x0c, 0x84, 0x04, 0xf1, 0x8f, 0x0f, 0xee, 0xee, 0x3c, 0xa9, 0x0e, 0x66, 0x89, 0x7c,
- 0x94, 0xf0, 0x7f, 0x60, 0xd8, 0x9f, 0x01, 0x79, 0x67, 0x3b, 0x1b, 0xbd, 0x9b, 0x19, 0x96, 0x9a,
- 0x67, 0xa5, 0x5d, 0xb4, 0x7d, 0x61, 0x5e, 0xb6, 0x66, 0xb2, 0x30, 0x52, 0x16, 0xff, 0xf6, 0x29,
- 0x6a, 0x33, 0x22, 0x85, 0x5b, 0xf3, 0x1b, 0x9f, 0x9e, 0xea, 0xc9, 0xdc, 0x07, 0x83, 0xc1, 0x3f,
- 0x6f, 0x92, 0x80, 0xfd, 0x1c, 0x98, 0x4d, 0xbe, 0x88, 0xb9, 0x7f, 0x4f, 0x81, 0x23, 0x41, 0xf6,
- 0x47, 0xea, 0xee, 0xce, 0x92, 0x85, 0x7b, 0xfa, 0x07, 0x20, 0x85, 0x98, 0xe3, 0xd8, 0xaf, 0xe1,
- 0xb0, 0xf7, 0xc8, 0x50, 0xf6, 0x39, 0xf2, 0xaf, 0xe1, 0x41, 0xa4, 0x5d, 0x10, 0xfe, 0xd8, 0x85,
- 0x89, 0xbb, 0xa0, 0x97, 0xca, 0x17, 0xf5, 0x1a, 0x92, 0xf4, 0xfa, 0x5c, 0x88, 0x5e, 0x24, 0x8e,
- 0xf4, 0xab, 0x82, 0x5e, 0x81, 0xd7, 0xd5, 0x50, 0xf6, 0x39, 0x1e, 0x7c, 0xf9, 0x14, 0xee, 0xff,
- 0x48, 0x44, 0x45, 0x2b, 0x39, 0x03, 0xa9, 0x92, 0xcc, 0x13, 0xae, 0x67, 0x11, 0x92, 0x65, 0xbb,
- 0x46, 0x7e, 0xa7, 0x87, 0xfc, 0x30, 0x35, 0x33, 0x32, 0xfb, 0x95, 0xea, 0x93, 0x90, 0x2a, 0xec,
- 0xd4, 0x1b, 0xb5, 0x36, 0xb2, 0xd8, 0x99, 0x3d, 0xdb, 0x42, 0xc7, 0x18, 0xc3, 0xa3, 0x65, 0x0a,
- 0x30, 0x5a, 0xb6, 0xad, 0xfc, 0x9e, 0x1b, 0xac, 0x1b, 0x73, 0x52, 0x8a, 0xb0, 0x33, 0x1f, 0xf2,
- 0xe7, 0x20, 0x98, 0x21, 0xdf, 0xfb, 0xfd, 0x97, 0xa6, 0x94, 0x0d, 0x6f, 0xff, 0x7c, 0x05, 0x8e,
- 0xb2, 0xf4, 0xe9, 0x10, 0xb5, 0x10, 0x25, 0xaa, 0x9f, 0x9d, 0x53, 0x07, 0xc4, 0x2d, 0x61, 0x71,
- 0x56, 0xa8, 0xb8, 0x37, 0xa6, 0x19, 0x6e, 0x8a, 0xf6, 0xd5, 0x4c, 0x3d, 0x90, 0x66, 0xa1, 0xe2,
- 0xe6, 0xa2, 0xc4, 0x49, 0x9a, 0xdd, 0x09, 0xfd, 0x1e, 0x2d, 0x10, 0x0d, 0xc1, 0x4c, 0x59, 0x98,
- 0xcd, 0xc0, 0x40, 0x20, 0x61, 0xf5, 0x5e, 0x50, 0x72, 0x5a, 0x0f, 0xfe, 0x2f, 0xaf, 0x29, 0xf8,
- 0xbf, 0x82, 0x96, 0x98, 0xbd, 0x0b, 0x46, 0xa4, 0xfd, 0x4b, 0x4c, 0x29, 0x6a, 0x80, 0xff, 0x2b,
- 0x69, 0x03, 0x13, 0xc9, 0x0f, 0x7d, 0x76, 0xb2, 0x67, 0xf6, 0x12, 0xe8, 0x9d, 0x3b, 0x9d, 0x7a,
- 0x1f, 0x24, 0x72, 0x58, 0xe4, 0x51, 0x48, 0xe4, 0xf3, 0x9a, 0x32, 0x31, 0xf2, 0xab, 0x9f, 0x9c,
- 0x1e, 0xc8, 0x93, 0xbf, 0xdd, 0xbe, 0x86, 0xdc, 0x7c, 0x9e, 0x81, 0x1f, 0x84, 0x23, 0xa1, 0x3b,
- 0xa5, 0x18, 0x5f, 0x28, 0x50, 0x7c, 0xb1, 0xd8, 0x81, 0x2f, 0x16, 0x09, 0x5e, 0xc9, 0xf2, 0x13,
- 0xe7, 0x9c, 0x1e, 0xb2, 0xcb, 0x98, 0xae, 0x05, 0x4e, 0xb8, 0x73, 0xd9, 0x07, 0x19, 0x6f, 0x3e,
- 0x94, 0x17, 0x45, 0x9c, 0x58, 0xe7, 0xb3, 0x05, 0x86, 0x2f, 0x84, 0xe2, 0xb7, 0xa4, 0x63, 0x55,
- 0x71, 0x85, 0x60, 0x42, 0x0a, 0x9e, 0xc2, 0xc5, 0x50, 0x21, 0x3b, 0x81, 0xcb, 0xee, 0x45, 0x4f,
- 0xe1, 0x52, 0x28, 0x6f, 0x3d, 0xe2, 0xd2, 0x57, 0x29, 0x7b, 0x8a, 0x2d, 0xf2, 0xb9, 0xd3, 0xfa,
- 0x11, 0x9e, 0xa3, 0x42, 0x05, 0x66, 0x06, 0xe2, 0x5c, 0xd9, 0x02, 0x03, 0xe4, 0xbb, 0x02, 0xba,
- 0x5b, 0x89, 0x23, 0xb3, 0x0f, 0x33, 0x21, 0x85, 0xae, 0x42, 0x22, 0x4c, 0xc5, 0xe1, 0xf9, 0x8d,
- 0x1b, 0x2f, 0x4f, 0xf6, 0xbc, 0xf8, 0xf2, 0x64, 0xcf, 0x3f, 0xbc, 0x3c, 0xd9, 0xf3, 0x83, 0x97,
- 0x27, 0x95, 0x1f, 0xbd, 0x3c, 0xa9, 0xfc, 0xe4, 0xe5, 0x49, 0xe5, 0x67, 0x2f, 0x4f, 0x2a, 0xcf,
- 0xdc, 0x9c, 0x54, 0x9e, 0xbf, 0x39, 0xa9, 0x7c, 0xf9, 0xe6, 0xa4, 0xf2, 0x8d, 0x9b, 0x93, 0xca,
- 0x0b, 0x37, 0x27, 0x95, 0x1b, 0x37, 0x27, 0x7b, 0x5e, 0xbc, 0x39, 0xa9, 0xfc, 0xe0, 0xe6, 0xa4,
- 0xf2, 0xa3, 0x9b, 0x93, 0x3d, 0x3f, 0xb9, 0x39, 0xa9, 0xfc, 0xec, 0xe6, 0x64, 0xcf, 0x33, 0xaf,
- 0x4c, 0xf6, 0x3c, 0xf7, 0xca, 0x64, 0xcf, 0xf3, 0xaf, 0x4c, 0x2a, 0xff, 0x1d, 0x00, 0x00, 0xff,
- 0xff, 0x63, 0x19, 0xdf, 0xae, 0xec, 0x68, 0x00, 0x00,
+ // 6765 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x6b, 0x70, 0x1c, 0xd7,
+ 0x75, 0x26, 0x7a, 0x7a, 0x00, 0x0e, 0x0e, 0x5e, 0x8d, 0x06, 0x09, 0x8e, 0x20, 0x0a, 0x00, 0x47,
+ 0x14, 0x05, 0x41, 0x12, 0x08, 0x82, 0xe0, 0x6b, 0x68, 0x49, 0x3b, 0x2f, 0x52, 0xa0, 0x89, 0x01,
+ 0xdc, 0x00, 0x2c, 0xd1, 0xde, 0xad, 0xa9, 0xe6, 0xcc, 0x05, 0x30, 0xd2, 0x4c, 0xf7, 0x78, 0xba,
+ 0x47, 0x12, 0x54, 0x5b, 0x5b, 0x5a, 0x7b, 0xd7, 0x6b, 0xef, 0x7b, 0xd7, 0xbb, 0xb5, 0xb6, 0xd7,
+ 0x96, 0x65, 0xbb, 0x6c, 0xcb, 0xce, 0xcb, 0x4e, 0x1c, 0xc7, 0x76, 0x52, 0xb1, 0xfe, 0x38, 0x61,
+ 0xfe, 0xb8, 0xe4, 0xfc, 0x4a, 0xb9, 0x52, 0x2a, 0x8b, 0x72, 0x55, 0x9c, 0x44, 0x49, 0x1c, 0x47,
+ 0x55, 0x71, 0x95, 0xfc, 0x23, 0x75, 0x5f, 0xdd, 0x7d, 0xef, 0xf4, 0xa0, 0x1b, 0xa2, 0x24, 0xfb,
+ 0x0f, 0x39, 0x73, 0xcf, 0xf9, 0x4e, 0x9f, 0x7b, 0x5e, 0xf7, 0xf4, 0xbd, 0x17, 0x03, 0x37, 0xb3,
+ 0x30, 0xbb, 0x63, 0xdb, 0x3b, 0x0d, 0x74, 0xaa, 0xd5, 0xb6, 0x5d, 0xfb, 0x46, 0x67, 0xfb, 0x54,
+ 0x0d, 0x39, 0xd5, 0x76, 0xbd, 0xe5, 0xda, 0xed, 0x05, 0x32, 0xa6, 0x8f, 0x51, 0x8e, 0x05, 0xce,
+ 0x91, 0x59, 0x85, 0xf1, 0xcb, 0xf5, 0x06, 0x2a, 0x7a, 0x8c, 0x1b, 0xc8, 0xd5, 0x2f, 0x40, 0x72,
+ 0xbb, 0xde, 0x40, 0x69, 0x65, 0x56, 0x9d, 0x1b, 0x5a, 0x3a, 0xb1, 0x20, 0x81, 0x16, 0x44, 0xc4,
+ 0x3a, 0x1e, 0x36, 0x08, 0x22, 0xf3, 0x93, 0x24, 0x4c, 0x84, 0x50, 0x75, 0x1d, 0x92, 0x96, 0xd9,
+ 0xc4, 0x12, 0x95, 0xb9, 0x41, 0x83, 0x7c, 0xd6, 0xd3, 0x70, 0xa8, 0x65, 0x56, 0x9f, 0x34, 0x77,
+ 0x50, 0x3a, 0x41, 0x86, 0xf9, 0x57, 0x7d, 0x1a, 0xa0, 0x86, 0x5a, 0xc8, 0xaa, 0x21, 0xab, 0xba,
+ 0x97, 0x56, 0x67, 0xd5, 0xb9, 0x41, 0x23, 0x30, 0xa2, 0xdf, 0x0f, 0xe3, 0xad, 0xce, 0x8d, 0x46,
+ 0xbd, 0x5a, 0x09, 0xb0, 0xc1, 0xac, 0x3a, 0xd7, 0x6f, 0x68, 0x94, 0x50, 0xf4, 0x99, 0xef, 0x85,
+ 0xb1, 0xa7, 0x91, 0xf9, 0x64, 0x90, 0x75, 0x88, 0xb0, 0x8e, 0xe2, 0xe1, 0x00, 0x63, 0x01, 0x86,
+ 0x9b, 0xc8, 0x71, 0xcc, 0x1d, 0x54, 0x71, 0xf7, 0x5a, 0x28, 0x9d, 0x24, 0xb3, 0x9f, 0xed, 0x9a,
+ 0xbd, 0x3c, 0xf3, 0x21, 0x86, 0xda, 0xdc, 0x6b, 0x21, 0x3d, 0x07, 0x83, 0xc8, 0xea, 0x34, 0xa9,
+ 0x84, 0xfe, 0x1e, 0xf6, 0x2b, 0x59, 0x9d, 0xa6, 0x2c, 0x25, 0x85, 0x61, 0x4c, 0xc4, 0x21, 0x07,
+ 0xb5, 0x9f, 0xaa, 0x57, 0x51, 0x7a, 0x80, 0x08, 0xb8, 0xb7, 0x4b, 0xc0, 0x06, 0xa5, 0xcb, 0x32,
+ 0x38, 0x4e, 0x2f, 0xc0, 0x20, 0x7a, 0xc6, 0x45, 0x96, 0x53, 0xb7, 0xad, 0xf4, 0x21, 0x22, 0xe4,
+ 0x9e, 0x10, 0x2f, 0xa2, 0x46, 0x4d, 0x16, 0xe1, 0xe3, 0xf4, 0x73, 0x70, 0xc8, 0x6e, 0xb9, 0x75,
+ 0xdb, 0x72, 0xd2, 0xa9, 0x59, 0x65, 0x6e, 0x68, 0xe9, 0x58, 0x68, 0x20, 0xac, 0x51, 0x1e, 0x83,
+ 0x33, 0xeb, 0x2b, 0xa0, 0x39, 0x76, 0xa7, 0x5d, 0x45, 0x95, 0xaa, 0x5d, 0x43, 0x95, 0xba, 0xb5,
+ 0x6d, 0xa7, 0x07, 0x89, 0x80, 0x99, 0xee, 0x89, 0x10, 0xc6, 0x82, 0x5d, 0x43, 0x2b, 0xd6, 0xb6,
+ 0x6d, 0x8c, 0x3a, 0xc2, 0x77, 0x7d, 0x12, 0x06, 0x9c, 0x3d, 0xcb, 0x35, 0x9f, 0x49, 0x0f, 0x93,
+ 0x08, 0x61, 0xdf, 0x32, 0xdf, 0x19, 0x80, 0xb1, 0x38, 0x21, 0x76, 0x09, 0xfa, 0xb7, 0xf1, 0x2c,
+ 0xd3, 0x89, 0x83, 0xd8, 0x80, 0x62, 0x44, 0x23, 0x0e, 0xbc, 0x45, 0x23, 0xe6, 0x60, 0xc8, 0x42,
+ 0x8e, 0x8b, 0x6a, 0x34, 0x22, 0xd4, 0x98, 0x31, 0x05, 0x14, 0xd4, 0x1d, 0x52, 0xc9, 0xb7, 0x14,
+ 0x52, 0x8f, 0xc3, 0x98, 0xa7, 0x52, 0xa5, 0x6d, 0x5a, 0x3b, 0x3c, 0x36, 0x4f, 0x45, 0x69, 0xb2,
+ 0x50, 0xe2, 0x38, 0x03, 0xc3, 0x8c, 0x51, 0x24, 0x7c, 0xd7, 0x8b, 0x00, 0xb6, 0x85, 0xec, 0xed,
+ 0x4a, 0x0d, 0x55, 0x1b, 0xe9, 0x54, 0x0f, 0x2b, 0xad, 0x61, 0x96, 0x2e, 0x2b, 0xd9, 0x74, 0xb4,
+ 0xda, 0xd0, 0x2f, 0xfa, 0xa1, 0x76, 0xa8, 0x47, 0xa4, 0xac, 0xd2, 0x24, 0xeb, 0x8a, 0xb6, 0x2d,
+ 0x18, 0x6d, 0x23, 0x1c, 0xf7, 0xa8, 0xc6, 0x66, 0x36, 0x48, 0x94, 0x58, 0x88, 0x9c, 0x99, 0xc1,
+ 0x60, 0x74, 0x62, 0x23, 0xed, 0xe0, 0x57, 0xfd, 0x6e, 0xf0, 0x06, 0x2a, 0x24, 0xac, 0x80, 0x54,
+ 0xa1, 0x61, 0x3e, 0x58, 0x36, 0x9b, 0x68, 0xea, 0x59, 0x18, 0x15, 0xcd, 0xa3, 0x1f, 0x86, 0x7e,
+ 0xc7, 0x35, 0xdb, 0x2e, 0x89, 0xc2, 0x7e, 0x83, 0x7e, 0xd1, 0x35, 0x50, 0x91, 0x55, 0x23, 0x55,
+ 0xae, 0xdf, 0xc0, 0x1f, 0xf5, 0x7f, 0xe5, 0x4f, 0x58, 0x25, 0x13, 0x3e, 0xd9, 0xed, 0x51, 0x41,
+ 0xb2, 0x3c, 0xef, 0xa9, 0xf3, 0x30, 0x22, 0x4c, 0x20, 0xee, 0xa3, 0x33, 0xff, 0x16, 0x8e, 0x84,
+ 0x8a, 0xd6, 0x1f, 0x87, 0xc3, 0x1d, 0xab, 0x6e, 0xb9, 0xa8, 0xdd, 0x6a, 0x23, 0x1c, 0xb1, 0xf4,
+ 0x51, 0xe9, 0xbf, 0x3a, 0xd4, 0x23, 0xe6, 0xb6, 0x82, 0xdc, 0x54, 0x8a, 0x31, 0xd1, 0xe9, 0x1e,
+ 0x9c, 0x1f, 0x4c, 0xfd, 0xf4, 0x90, 0xf6, 0xdc, 0x73, 0xcf, 0x3d, 0x97, 0xc8, 0x7c, 0x72, 0x00,
+ 0x0e, 0x87, 0xe5, 0x4c, 0x68, 0xfa, 0x4e, 0xc2, 0x80, 0xd5, 0x69, 0xde, 0x40, 0x6d, 0x62, 0xa4,
+ 0x7e, 0x83, 0x7d, 0xd3, 0x73, 0xd0, 0xdf, 0x30, 0x6f, 0xa0, 0x46, 0x3a, 0x39, 0xab, 0xcc, 0x8d,
+ 0x2e, 0xdd, 0x1f, 0x2b, 0x2b, 0x17, 0xae, 0x61, 0x88, 0x41, 0x91, 0xfa, 0xc3, 0x90, 0x64, 0x25,
+ 0x1a, 0x4b, 0x98, 0x8f, 0x27, 0x01, 0xe7, 0x92, 0x41, 0x70, 0xfa, 0x9d, 0x30, 0x88, 0xff, 0xa7,
+ 0xb1, 0x31, 0x40, 0x74, 0x4e, 0xe1, 0x01, 0x1c, 0x17, 0xfa, 0x14, 0xa4, 0x48, 0x9a, 0xd4, 0x10,
+ 0x5f, 0xda, 0xbc, 0xef, 0x38, 0xb0, 0x6a, 0x68, 0xdb, 0xec, 0x34, 0xdc, 0xca, 0x53, 0x66, 0xa3,
+ 0x83, 0x48, 0xc0, 0x0f, 0x1a, 0xc3, 0x6c, 0xf0, 0xfd, 0x78, 0x4c, 0x9f, 0x81, 0x21, 0x9a, 0x55,
+ 0x75, 0xab, 0x86, 0x9e, 0x21, 0xd5, 0xb3, 0xdf, 0xa0, 0x89, 0xb6, 0x82, 0x47, 0xf0, 0xe3, 0x9f,
+ 0x70, 0x6c, 0x8b, 0x87, 0x26, 0x79, 0x04, 0x1e, 0x20, 0x8f, 0x3f, 0x2f, 0x17, 0xee, 0xbb, 0xc2,
+ 0xa7, 0x27, 0xc7, 0x54, 0xe6, 0x5b, 0x09, 0x48, 0x92, 0x7a, 0x31, 0x06, 0x43, 0x9b, 0xd7, 0xd7,
+ 0x4b, 0x95, 0xe2, 0xda, 0x56, 0xfe, 0x5a, 0x49, 0x53, 0xf4, 0x51, 0x00, 0x32, 0x70, 0xf9, 0xda,
+ 0x5a, 0x6e, 0x53, 0x4b, 0x78, 0xdf, 0x57, 0xca, 0x9b, 0xe7, 0x96, 0x35, 0xd5, 0x03, 0x6c, 0xd1,
+ 0x81, 0x64, 0x90, 0xe1, 0xcc, 0x92, 0xd6, 0xaf, 0x6b, 0x30, 0x4c, 0x05, 0xac, 0x3c, 0x5e, 0x2a,
+ 0x9e, 0x5b, 0xd6, 0x06, 0xc4, 0x91, 0x33, 0x4b, 0xda, 0x21, 0x7d, 0x04, 0x06, 0xc9, 0x48, 0x7e,
+ 0x6d, 0xed, 0x9a, 0x96, 0xf2, 0x64, 0x6e, 0x6c, 0x1a, 0x2b, 0xe5, 0x2b, 0xda, 0xa0, 0x27, 0xf3,
+ 0x8a, 0xb1, 0xb6, 0xb5, 0xae, 0x81, 0x27, 0x61, 0xb5, 0xb4, 0xb1, 0x91, 0xbb, 0x52, 0xd2, 0x86,
+ 0x3c, 0x8e, 0xfc, 0xf5, 0xcd, 0xd2, 0x86, 0x36, 0x2c, 0xa8, 0x75, 0x66, 0x49, 0x1b, 0xf1, 0x1e,
+ 0x51, 0x2a, 0x6f, 0xad, 0x6a, 0xa3, 0xfa, 0x38, 0x8c, 0xd0, 0x47, 0x70, 0x25, 0xc6, 0xa4, 0xa1,
+ 0x73, 0xcb, 0x9a, 0xe6, 0x2b, 0x42, 0xa5, 0x8c, 0x0b, 0x03, 0xe7, 0x96, 0x35, 0x3d, 0x53, 0x80,
+ 0x7e, 0x12, 0x5d, 0xba, 0x0e, 0xa3, 0xd7, 0x72, 0xf9, 0xd2, 0xb5, 0xca, 0xda, 0xfa, 0xe6, 0xca,
+ 0x5a, 0x39, 0x77, 0x4d, 0x53, 0xfc, 0x31, 0xa3, 0xf4, 0xbe, 0xad, 0x15, 0xa3, 0x54, 0xd4, 0x12,
+ 0xc1, 0xb1, 0xf5, 0x52, 0x6e, 0xb3, 0x54, 0xd4, 0xd4, 0x4c, 0x15, 0x0e, 0x87, 0xd5, 0xc9, 0xd0,
+ 0xcc, 0x08, 0xb8, 0x38, 0xd1, 0xc3, 0xc5, 0x44, 0x56, 0x97, 0x8b, 0x5f, 0x4b, 0xc0, 0x44, 0xc8,
+ 0x5a, 0x11, 0xfa, 0x90, 0x47, 0xa0, 0x9f, 0x86, 0x28, 0x5d, 0x3d, 0xef, 0x0b, 0x5d, 0x74, 0x48,
+ 0xc0, 0x76, 0xad, 0xa0, 0x04, 0x17, 0xec, 0x20, 0xd4, 0x1e, 0x1d, 0x04, 0x16, 0xd1, 0x55, 0xd3,
+ 0xff, 0x4d, 0x57, 0x4d, 0xa7, 0xcb, 0xde, 0xb9, 0x38, 0xcb, 0x1e, 0x19, 0x3b, 0x58, 0x6d, 0xef,
+ 0x0f, 0xa9, 0xed, 0x97, 0x60, 0xbc, 0x4b, 0x50, 0xec, 0x1a, 0xfb, 0x11, 0x05, 0xd2, 0xbd, 0x8c,
+ 0x13, 0x51, 0xe9, 0x12, 0x42, 0xa5, 0xbb, 0x24, 0x5b, 0xf0, 0x78, 0x6f, 0x27, 0x74, 0xf9, 0xfa,
+ 0x2b, 0x0a, 0x4c, 0x86, 0x77, 0x8a, 0xa1, 0x3a, 0x3c, 0x0c, 0x03, 0x4d, 0xe4, 0xee, 0xda, 0xbc,
+ 0x5b, 0x3a, 0x19, 0xb2, 0x06, 0x63, 0xb2, 0xec, 0x6c, 0x86, 0x0a, 0x2e, 0xe2, 0x6a, 0xaf, 0x76,
+ 0x8f, 0x6a, 0xd3, 0xa5, 0xe9, 0xc7, 0x13, 0x70, 0x24, 0x54, 0x78, 0xa8, 0xa2, 0x77, 0x01, 0xd4,
+ 0xad, 0x56, 0xc7, 0xa5, 0x1d, 0x11, 0x2d, 0xb0, 0x83, 0x64, 0x84, 0x14, 0x2f, 0x5c, 0x3c, 0x3b,
+ 0xae, 0x47, 0x57, 0x09, 0x1d, 0xe8, 0x10, 0x61, 0xb8, 0xe0, 0x2b, 0x9a, 0x24, 0x8a, 0x4e, 0xf7,
+ 0x98, 0x69, 0x57, 0x60, 0x2e, 0x82, 0x56, 0x6d, 0xd4, 0x91, 0xe5, 0x56, 0x1c, 0xb7, 0x8d, 0xcc,
+ 0x66, 0xdd, 0xda, 0x21, 0x2b, 0x48, 0x2a, 0xdb, 0xbf, 0x6d, 0x36, 0x1c, 0x64, 0x8c, 0x51, 0xf2,
+ 0x06, 0xa7, 0x62, 0x04, 0x09, 0xa0, 0x76, 0x00, 0x31, 0x20, 0x20, 0x28, 0xd9, 0x43, 0x64, 0xfe,
+ 0xeb, 0x20, 0x0c, 0x05, 0xfa, 0x6a, 0xfd, 0x38, 0x0c, 0x3f, 0x61, 0x3e, 0x65, 0x56, 0xf8, 0xbb,
+ 0x12, 0xb5, 0xc4, 0x10, 0x1e, 0x5b, 0x67, 0xef, 0x4b, 0x8b, 0x70, 0x98, 0xb0, 0xd8, 0x1d, 0x17,
+ 0xb5, 0x2b, 0xd5, 0x86, 0xe9, 0x38, 0xc4, 0x68, 0x29, 0xc2, 0xaa, 0x63, 0xda, 0x1a, 0x26, 0x15,
+ 0x38, 0x45, 0x3f, 0x0b, 0x13, 0x04, 0xd1, 0xec, 0x34, 0xdc, 0x7a, 0xab, 0x81, 0x2a, 0xf8, 0xed,
+ 0xcd, 0x21, 0x2b, 0x89, 0xa7, 0xd9, 0x38, 0xe6, 0x58, 0x65, 0x0c, 0x58, 0x23, 0x47, 0x2f, 0xc2,
+ 0x5d, 0x04, 0xb6, 0x83, 0x2c, 0xd4, 0x36, 0x5d, 0x54, 0x41, 0x1f, 0xea, 0x98, 0x0d, 0xa7, 0x62,
+ 0x5a, 0xb5, 0xca, 0xae, 0xe9, 0xec, 0xa6, 0x0f, 0x63, 0x01, 0xf9, 0x44, 0x5a, 0x31, 0xee, 0xc0,
+ 0x8c, 0x57, 0x18, 0x5f, 0x89, 0xb0, 0xe5, 0xac, 0xda, 0xa3, 0xa6, 0xb3, 0xab, 0x67, 0x61, 0x92,
+ 0x48, 0x71, 0xdc, 0x76, 0xdd, 0xda, 0xa9, 0x54, 0x77, 0x51, 0xf5, 0xc9, 0x4a, 0xc7, 0xdd, 0xbe,
+ 0x90, 0xbe, 0x33, 0xf8, 0x7c, 0xa2, 0xe1, 0x06, 0xe1, 0x29, 0x60, 0x96, 0x2d, 0x77, 0xfb, 0x82,
+ 0xbe, 0x01, 0xc3, 0xd8, 0x19, 0xcd, 0xfa, 0xb3, 0xa8, 0xb2, 0x6d, 0xb7, 0xc9, 0xd2, 0x38, 0x1a,
+ 0x52, 0x9a, 0x02, 0x16, 0x5c, 0x58, 0x63, 0x80, 0x55, 0xbb, 0x86, 0xb2, 0xfd, 0x1b, 0xeb, 0xa5,
+ 0x52, 0xd1, 0x18, 0xe2, 0x52, 0x2e, 0xdb, 0x6d, 0x1c, 0x50, 0x3b, 0xb6, 0x67, 0xe0, 0x21, 0x1a,
+ 0x50, 0x3b, 0x36, 0x37, 0xef, 0x59, 0x98, 0xa8, 0x56, 0xe9, 0x9c, 0xeb, 0xd5, 0x0a, 0x7b, 0xc7,
+ 0x72, 0xd2, 0x9a, 0x60, 0xac, 0x6a, 0xf5, 0x0a, 0x65, 0x60, 0x31, 0xee, 0xe8, 0x17, 0xe1, 0x88,
+ 0x6f, 0xac, 0x20, 0x70, 0xbc, 0x6b, 0x96, 0x32, 0xf4, 0x2c, 0x4c, 0xb4, 0xf6, 0xba, 0x81, 0xba,
+ 0xf0, 0xc4, 0xd6, 0x9e, 0x0c, 0x3b, 0x0f, 0x87, 0x5b, 0xbb, 0xad, 0x6e, 0xdc, 0x7c, 0x10, 0xa7,
+ 0xb7, 0x76, 0x5b, 0x32, 0xf0, 0x1e, 0xf2, 0xc2, 0xdd, 0x46, 0x55, 0xd3, 0x45, 0xb5, 0xf4, 0xd1,
+ 0x20, 0x7b, 0x80, 0xa0, 0x9f, 0x02, 0xad, 0x5a, 0xad, 0x20, 0xcb, 0xbc, 0xd1, 0x40, 0x15, 0xb3,
+ 0x8d, 0x2c, 0xd3, 0x49, 0xcf, 0x04, 0x99, 0x47, 0xab, 0xd5, 0x12, 0xa1, 0xe6, 0x08, 0x51, 0x9f,
+ 0x87, 0x71, 0xfb, 0xc6, 0x13, 0x55, 0x1a, 0x92, 0x95, 0x56, 0x1b, 0x6d, 0xd7, 0x9f, 0x49, 0x9f,
+ 0x20, 0xf6, 0x1d, 0xc3, 0x04, 0x12, 0x90, 0xeb, 0x64, 0x58, 0xbf, 0x0f, 0xb4, 0xaa, 0xb3, 0x6b,
+ 0xb6, 0x5b, 0xa4, 0x26, 0x3b, 0x2d, 0xb3, 0x8a, 0xd2, 0xf7, 0x50, 0x56, 0x3a, 0x5e, 0xe6, 0xc3,
+ 0x38, 0x25, 0x9c, 0xa7, 0xeb, 0xdb, 0x2e, 0x97, 0x78, 0x2f, 0x4d, 0x09, 0x32, 0xc6, 0xa4, 0xcd,
+ 0x81, 0x86, 0x4d, 0x21, 0x3c, 0x78, 0x8e, 0xb0, 0x8d, 0xb6, 0x76, 0x5b, 0xc1, 0xe7, 0xde, 0x0d,
+ 0x23, 0x98, 0xd3, 0x7f, 0xe8, 0x7d, 0xb4, 0x21, 0x6b, 0xed, 0x06, 0x9e, 0xb8, 0x0c, 0x93, 0x98,
+ 0xa9, 0x89, 0x5c, 0xb3, 0x66, 0xba, 0x66, 0x80, 0xfb, 0x01, 0xc2, 0x8d, 0xed, 0xbe, 0xca, 0x88,
+ 0x82, 0x9e, 0xed, 0xce, 0x8d, 0x3d, 0x2f, 0xb2, 0x1e, 0xa4, 0x7a, 0xe2, 0x31, 0x1e, 0x5b, 0xef,
+ 0x58, 0xd3, 0x9d, 0xc9, 0xc2, 0x70, 0x30, 0xf0, 0xf5, 0x41, 0xa0, 0xa1, 0xaf, 0x29, 0xb8, 0x0b,
+ 0x2a, 0xac, 0x15, 0x71, 0xff, 0xf2, 0x81, 0x92, 0x96, 0xc0, 0x7d, 0xd4, 0xb5, 0x95, 0xcd, 0x52,
+ 0xc5, 0xd8, 0x2a, 0x6f, 0xae, 0xac, 0x96, 0x34, 0x35, 0xd8, 0xb0, 0x7f, 0x3f, 0x01, 0xa3, 0xe2,
+ 0xbb, 0x97, 0xfe, 0x1e, 0x38, 0xca, 0x37, 0x4a, 0x1c, 0xe4, 0x56, 0x9e, 0xae, 0xb7, 0x49, 0x2e,
+ 0x36, 0x4d, 0xba, 0x2e, 0x7a, 0xd1, 0x70, 0x98, 0x71, 0x6d, 0x20, 0xf7, 0xb1, 0x7a, 0x1b, 0x67,
+ 0x5a, 0xd3, 0x74, 0xf5, 0x6b, 0x30, 0x63, 0xd9, 0x15, 0xc7, 0x35, 0xad, 0x9a, 0xd9, 0xae, 0x55,
+ 0xfc, 0x2d, 0xaa, 0x8a, 0x59, 0xad, 0x22, 0xc7, 0xb1, 0xe9, 0x1a, 0xe8, 0x49, 0x39, 0x66, 0xd9,
+ 0x1b, 0x8c, 0xd9, 0x5f, 0x1c, 0x72, 0x8c, 0x55, 0x8a, 0x5c, 0xb5, 0x57, 0xe4, 0xde, 0x09, 0x83,
+ 0x4d, 0xb3, 0x55, 0x41, 0x96, 0xdb, 0xde, 0x23, 0x1d, 0x77, 0xca, 0x48, 0x35, 0xcd, 0x56, 0x09,
+ 0x7f, 0x7f, 0x77, 0x5e, 0x7c, 0xfe, 0x52, 0x85, 0xe1, 0x60, 0xd7, 0x8d, 0x5f, 0x62, 0xaa, 0x64,
+ 0x81, 0x52, 0x48, 0x09, 0xbb, 0x7b, 0xdf, 0x1e, 0x7d, 0xa1, 0x80, 0x57, 0xae, 0xec, 0x00, 0xed,
+ 0x85, 0x0d, 0x8a, 0xc4, 0x5d, 0x03, 0x0e, 0x2d, 0x44, 0x7b, 0x8f, 0x94, 0xc1, 0xbe, 0xe9, 0x57,
+ 0x60, 0xe0, 0x09, 0x87, 0xc8, 0x1e, 0x20, 0xb2, 0x4f, 0xec, 0x2f, 0xfb, 0xea, 0x06, 0x11, 0x3e,
+ 0x78, 0x75, 0xa3, 0x52, 0x5e, 0x33, 0x56, 0x73, 0xd7, 0x0c, 0x06, 0xd7, 0xef, 0x80, 0x64, 0xc3,
+ 0x7c, 0x76, 0x4f, 0x5c, 0xe3, 0xc8, 0x50, 0x5c, 0xc3, 0xdf, 0x01, 0xc9, 0xa7, 0x91, 0xf9, 0xa4,
+ 0xb8, 0xb2, 0x90, 0xa1, 0x77, 0x30, 0xf4, 0x4f, 0x41, 0x3f, 0xb1, 0x97, 0x0e, 0xc0, 0x2c, 0xa6,
+ 0xf5, 0xe9, 0x29, 0x48, 0x16, 0xd6, 0x0c, 0x1c, 0xfe, 0x1a, 0x0c, 0xd3, 0xd1, 0xca, 0xfa, 0x4a,
+ 0xa9, 0x50, 0xd2, 0x12, 0x99, 0xb3, 0x30, 0x40, 0x8d, 0x80, 0x53, 0xc3, 0x33, 0x83, 0xd6, 0xc7,
+ 0xbe, 0x32, 0x19, 0x0a, 0xa7, 0x6e, 0xad, 0xe6, 0x4b, 0x86, 0x96, 0x08, 0xba, 0xd7, 0x81, 0xe1,
+ 0x60, 0xc3, 0xfd, 0xee, 0xc4, 0xd4, 0x77, 0x15, 0x18, 0x0a, 0x34, 0xd0, 0xb8, 0xf3, 0x31, 0x1b,
+ 0x0d, 0xfb, 0xe9, 0x8a, 0xd9, 0xa8, 0x9b, 0x0e, 0x0b, 0x0a, 0x20, 0x43, 0x39, 0x3c, 0x12, 0xd7,
+ 0x69, 0xef, 0x8a, 0xf2, 0xcf, 0x2b, 0xa0, 0xc9, 0xbd, 0xab, 0xa4, 0xa0, 0xf2, 0x2b, 0x55, 0xf0,
+ 0x33, 0x0a, 0x8c, 0x8a, 0x0d, 0xab, 0xa4, 0xde, 0xf1, 0x5f, 0xa9, 0x7a, 0x3f, 0x4e, 0xc0, 0x88,
+ 0xd0, 0xa6, 0xc6, 0xd5, 0xee, 0x43, 0x30, 0x5e, 0xaf, 0xa1, 0x66, 0xcb, 0x76, 0x91, 0x55, 0xdd,
+ 0xab, 0x34, 0xd0, 0x53, 0xa8, 0x91, 0xce, 0x90, 0x42, 0x71, 0x6a, 0xff, 0x46, 0x78, 0x61, 0xc5,
+ 0xc7, 0x5d, 0xc3, 0xb0, 0xec, 0xc4, 0x4a, 0xb1, 0xb4, 0xba, 0xbe, 0xb6, 0x59, 0x2a, 0x17, 0xae,
+ 0x57, 0xb6, 0xca, 0xef, 0x2d, 0xaf, 0x3d, 0x56, 0x36, 0xb4, 0xba, 0xc4, 0xf6, 0x0e, 0xa6, 0xfa,
+ 0x3a, 0x68, 0xb2, 0x52, 0xfa, 0x51, 0x08, 0x53, 0x4b, 0xeb, 0xd3, 0x27, 0x60, 0xac, 0xbc, 0x56,
+ 0xd9, 0x58, 0x29, 0x96, 0x2a, 0xa5, 0xcb, 0x97, 0x4b, 0x85, 0xcd, 0x0d, 0xba, 0xb5, 0xe1, 0x71,
+ 0x6f, 0x8a, 0x49, 0xfd, 0x69, 0x15, 0x26, 0x42, 0x34, 0xd1, 0x73, 0xec, 0xa5, 0x84, 0xbe, 0x27,
+ 0x3d, 0x18, 0x47, 0xfb, 0x05, 0xdc, 0x15, 0xac, 0x9b, 0x6d, 0x97, 0xbd, 0xc3, 0xdc, 0x07, 0xd8,
+ 0x4a, 0x96, 0x5b, 0xdf, 0xae, 0xa3, 0x36, 0xdb, 0x09, 0xa2, 0x6f, 0x2a, 0x63, 0xfe, 0x38, 0xdd,
+ 0x0c, 0x7a, 0x00, 0xf4, 0x96, 0xed, 0xd4, 0xdd, 0xfa, 0x53, 0xa8, 0x52, 0xb7, 0xf8, 0xb6, 0x11,
+ 0x7e, 0x73, 0x49, 0x1a, 0x1a, 0xa7, 0xac, 0x58, 0xae, 0xc7, 0x6d, 0xa1, 0x1d, 0x53, 0xe2, 0xc6,
+ 0x05, 0x5c, 0x35, 0x34, 0x4e, 0xf1, 0xb8, 0x8f, 0xc3, 0x70, 0xcd, 0xee, 0xe0, 0x76, 0x8e, 0xf2,
+ 0xe1, 0xf5, 0x42, 0x31, 0x86, 0xe8, 0x98, 0xc7, 0xc2, 0x1a, 0x75, 0x7f, 0xbf, 0x6a, 0xd8, 0x18,
+ 0xa2, 0x63, 0x94, 0xe5, 0x5e, 0x18, 0x33, 0x77, 0x76, 0xda, 0x58, 0x38, 0x17, 0x44, 0x5f, 0x3d,
+ 0x46, 0xbd, 0x61, 0xc2, 0x38, 0x75, 0x15, 0x52, 0xdc, 0x0e, 0x78, 0x49, 0xc6, 0x96, 0xa8, 0xb4,
+ 0xe8, 0xfb, 0x74, 0x62, 0x6e, 0xd0, 0x48, 0x59, 0x9c, 0x78, 0x1c, 0x86, 0xeb, 0x4e, 0xc5, 0xdf,
+ 0x7e, 0x4f, 0xcc, 0x26, 0xe6, 0x52, 0xc6, 0x50, 0xdd, 0xf1, 0xb6, 0x2e, 0x33, 0x5f, 0x49, 0xc0,
+ 0xa8, 0x78, 0x7c, 0xa0, 0x17, 0x21, 0xd5, 0xb0, 0xab, 0x26, 0x09, 0x2d, 0x7a, 0x76, 0x35, 0x17,
+ 0x71, 0xe2, 0xb0, 0x70, 0x8d, 0xf1, 0x1b, 0x1e, 0x72, 0xea, 0x07, 0x0a, 0xa4, 0xf8, 0xb0, 0x3e,
+ 0x09, 0xc9, 0x96, 0xe9, 0xee, 0x12, 0x71, 0xfd, 0xf9, 0x84, 0xa6, 0x18, 0xe4, 0x3b, 0x1e, 0x77,
+ 0x5a, 0xa6, 0x45, 0x42, 0x80, 0x8d, 0xe3, 0xef, 0xd8, 0xaf, 0x0d, 0x64, 0xd6, 0xc8, 0x7b, 0x8d,
+ 0xdd, 0x6c, 0x22, 0xcb, 0x75, 0xb8, 0x5f, 0xd9, 0x78, 0x81, 0x0d, 0xeb, 0xf7, 0xc3, 0xb8, 0xdb,
+ 0x36, 0xeb, 0x0d, 0x81, 0x37, 0x49, 0x78, 0x35, 0x4e, 0xf0, 0x98, 0xb3, 0x70, 0x07, 0x97, 0x5b,
+ 0x43, 0xae, 0x59, 0xdd, 0x45, 0x35, 0x1f, 0x34, 0x40, 0xf6, 0x2f, 0x8e, 0x32, 0x86, 0x22, 0xa3,
+ 0x73, 0x6c, 0xe6, 0x87, 0x0a, 0x8c, 0xf3, 0x37, 0xb1, 0x9a, 0x67, 0xac, 0x55, 0x00, 0xd3, 0xb2,
+ 0x6c, 0x37, 0x68, 0xae, 0xee, 0x50, 0xee, 0xc2, 0x2d, 0xe4, 0x3c, 0x90, 0x11, 0x10, 0x30, 0xd5,
+ 0x04, 0xf0, 0x29, 0x3d, 0xcd, 0x36, 0x03, 0x43, 0xec, 0x6c, 0x88, 0x1c, 0x30, 0xd2, 0x77, 0x77,
+ 0xa0, 0x43, 0xf8, 0x95, 0x4d, 0x3f, 0x0c, 0xfd, 0x37, 0xd0, 0x4e, 0xdd, 0x62, 0x3b, 0xbe, 0xf4,
+ 0x0b, 0xdf, 0x61, 0x49, 0x7a, 0x3b, 0x2c, 0xf9, 0x0f, 0xc2, 0x44, 0xd5, 0x6e, 0xca, 0xea, 0xe6,
+ 0x35, 0x69, 0xff, 0xc0, 0x79, 0x54, 0xf9, 0x00, 0xf8, 0x2d, 0xe6, 0x2f, 0x14, 0xe5, 0x0b, 0x09,
+ 0xf5, 0xca, 0x7a, 0xfe, 0x6b, 0x89, 0xa9, 0x2b, 0x14, 0xba, 0xce, 0x67, 0x6a, 0xa0, 0xed, 0x06,
+ 0xaa, 0x62, 0xed, 0xe1, 0xcb, 0xf7, 0xc3, 0x83, 0x3b, 0x75, 0x77, 0xb7, 0x73, 0x63, 0xa1, 0x6a,
+ 0x37, 0x4f, 0xed, 0xd8, 0x3b, 0xb6, 0x7f, 0xa6, 0x8a, 0xbf, 0x91, 0x2f, 0xe4, 0x13, 0x3b, 0x57,
+ 0x1d, 0xf4, 0x46, 0xa7, 0x22, 0x0f, 0x61, 0xb3, 0x65, 0x98, 0x60, 0xcc, 0x15, 0x72, 0xb0, 0x43,
+ 0x5f, 0x4f, 0xf4, 0x7d, 0x37, 0xc7, 0xd2, 0xdf, 0xf8, 0x09, 0x59, 0xae, 0x8d, 0x71, 0x06, 0xc5,
+ 0x34, 0xfa, 0x06, 0x93, 0x35, 0xe0, 0x88, 0x20, 0x8f, 0xa6, 0x26, 0x6a, 0x47, 0x48, 0xfc, 0x3e,
+ 0x93, 0x38, 0x11, 0x90, 0xb8, 0xc1, 0xa0, 0xd9, 0x02, 0x8c, 0x1c, 0x44, 0xd6, 0x9f, 0x30, 0x59,
+ 0xc3, 0x28, 0x28, 0xe4, 0x0a, 0x8c, 0x11, 0x21, 0xd5, 0x8e, 0xe3, 0xda, 0x4d, 0x52, 0xf7, 0xf6,
+ 0x17, 0xf3, 0xa7, 0x3f, 0xa1, 0xb9, 0x32, 0x8a, 0x61, 0x05, 0x0f, 0x95, 0xcd, 0x02, 0x39, 0xcb,
+ 0xaa, 0xa1, 0x6a, 0x23, 0x42, 0xc2, 0x4d, 0xa6, 0x88, 0xc7, 0x9f, 0x7d, 0x3f, 0x1c, 0xc6, 0x9f,
+ 0x49, 0x59, 0x0a, 0x6a, 0x12, 0xbd, 0x93, 0x96, 0xfe, 0xe1, 0x47, 0x68, 0x3a, 0x4e, 0x78, 0x02,
+ 0x02, 0x3a, 0x05, 0xbc, 0xb8, 0x83, 0x5c, 0x17, 0xb5, 0x9d, 0x8a, 0xd9, 0x08, 0x53, 0x2f, 0xb0,
+ 0x15, 0x91, 0xfe, 0xd4, 0xeb, 0xa2, 0x17, 0xaf, 0x50, 0x64, 0xae, 0xd1, 0xc8, 0x6e, 0xc1, 0xd1,
+ 0x90, 0xa8, 0x88, 0x21, 0xf3, 0xd3, 0x4c, 0xe6, 0xe1, 0xae, 0xc8, 0xc0, 0x62, 0xd7, 0x81, 0x8f,
+ 0x7b, 0xbe, 0x8c, 0x21, 0xf3, 0xff, 0x33, 0x99, 0x3a, 0xc3, 0x72, 0x97, 0x62, 0x89, 0x57, 0x61,
+ 0xfc, 0x29, 0xd4, 0xbe, 0x61, 0x3b, 0x6c, 0xfb, 0x27, 0x86, 0xb8, 0xcf, 0x30, 0x71, 0x63, 0x0c,
+ 0x48, 0xf6, 0x83, 0xb0, 0xac, 0x8b, 0x90, 0xda, 0x36, 0xab, 0x28, 0x86, 0x88, 0xcf, 0x32, 0x11,
+ 0x87, 0x30, 0x3f, 0x86, 0xe6, 0x60, 0x78, 0xc7, 0x66, 0x2b, 0x53, 0x34, 0xfc, 0x79, 0x06, 0x1f,
+ 0xe2, 0x18, 0x26, 0xa2, 0x65, 0xb7, 0x3a, 0x0d, 0xbc, 0x6c, 0x45, 0x8b, 0xf8, 0x1c, 0x17, 0xc1,
+ 0x31, 0x4c, 0xc4, 0x01, 0xcc, 0xfa, 0x02, 0x17, 0xe1, 0x04, 0xec, 0xf9, 0x08, 0x0c, 0xd9, 0x56,
+ 0x63, 0xcf, 0xb6, 0xe2, 0x28, 0xf1, 0x79, 0x26, 0x01, 0x18, 0x04, 0x0b, 0xb8, 0x04, 0x83, 0x71,
+ 0x1d, 0xf1, 0xa5, 0xd7, 0x79, 0x7a, 0x70, 0x0f, 0x5c, 0x81, 0x31, 0x5e, 0xa0, 0xea, 0xb6, 0x15,
+ 0x43, 0xc4, 0x97, 0x99, 0x88, 0xd1, 0x00, 0x8c, 0x4d, 0xc3, 0x45, 0x8e, 0xbb, 0x83, 0xe2, 0x08,
+ 0xf9, 0x0a, 0x9f, 0x06, 0x83, 0x30, 0x53, 0xde, 0x40, 0x56, 0x75, 0x37, 0x9e, 0x84, 0x17, 0xb9,
+ 0x29, 0x39, 0x06, 0x8b, 0x28, 0xc0, 0x48, 0xd3, 0x6c, 0x3b, 0xbb, 0x66, 0x23, 0x96, 0x3b, 0xbe,
+ 0xca, 0x64, 0x0c, 0x7b, 0x20, 0x66, 0x91, 0x8e, 0x75, 0x10, 0x31, 0x5f, 0xe3, 0x16, 0x09, 0xc0,
+ 0x58, 0xea, 0x39, 0x2e, 0xd9, 0x2b, 0x3b, 0x88, 0xb4, 0xdf, 0xe0, 0xa9, 0x47, 0xb1, 0xab, 0x41,
+ 0x89, 0x97, 0x60, 0xd0, 0xa9, 0x3f, 0x1b, 0x4b, 0xcc, 0x6f, 0x72, 0x4f, 0x13, 0x00, 0x06, 0x5f,
+ 0x87, 0x3b, 0x42, 0x97, 0x89, 0x18, 0xc2, 0x7e, 0x8b, 0x09, 0x9b, 0x0c, 0x59, 0x2a, 0x58, 0x49,
+ 0x38, 0xa8, 0xc8, 0xdf, 0xe6, 0x25, 0x01, 0x49, 0xb2, 0xd6, 0xf1, 0xbb, 0x82, 0x63, 0x6e, 0x1f,
+ 0xcc, 0x6a, 0xbf, 0xc3, 0xad, 0x46, 0xb1, 0x82, 0xd5, 0x36, 0x61, 0x92, 0x49, 0x3c, 0x98, 0x5f,
+ 0xbf, 0xce, 0x0b, 0x2b, 0x45, 0x6f, 0x89, 0xde, 0xfd, 0x20, 0x4c, 0x79, 0xe6, 0xe4, 0x4d, 0xa9,
+ 0x53, 0x69, 0x9a, 0xad, 0x18, 0x92, 0xbf, 0xc1, 0x24, 0xf3, 0x8a, 0xef, 0x75, 0xb5, 0xce, 0xaa,
+ 0xd9, 0xc2, 0xc2, 0x1f, 0x87, 0x34, 0x17, 0xde, 0xb1, 0xda, 0xa8, 0x6a, 0xef, 0x58, 0xf5, 0x67,
+ 0x51, 0x2d, 0x86, 0xe8, 0xdf, 0x95, 0x5c, 0xb5, 0x15, 0x80, 0x63, 0xc9, 0x2b, 0xa0, 0x79, 0xbd,
+ 0x4a, 0xa5, 0xde, 0x6c, 0xd9, 0x6d, 0x37, 0x42, 0xe2, 0xef, 0x71, 0x4f, 0x79, 0xb8, 0x15, 0x02,
+ 0xcb, 0x96, 0x60, 0x94, 0x7c, 0x8d, 0x1b, 0x92, 0xdf, 0x64, 0x82, 0x46, 0x7c, 0x14, 0x2b, 0x1c,
+ 0x55, 0xbb, 0xd9, 0x32, 0xdb, 0x71, 0xea, 0xdf, 0xef, 0xf3, 0xc2, 0xc1, 0x20, 0xac, 0x70, 0xb8,
+ 0x7b, 0x2d, 0x84, 0x57, 0xfb, 0x18, 0x12, 0xbe, 0xc5, 0x0b, 0x07, 0xc7, 0x30, 0x11, 0xbc, 0x61,
+ 0x88, 0x21, 0xe2, 0x0f, 0xb8, 0x08, 0x8e, 0xc1, 0x22, 0xde, 0xe7, 0x2f, 0xb4, 0x6d, 0xb4, 0x53,
+ 0x77, 0xdc, 0x36, 0x6d, 0x85, 0xf7, 0x17, 0xf5, 0xed, 0xd7, 0xc5, 0x26, 0xcc, 0x08, 0x40, 0x71,
+ 0x25, 0x62, 0x5b, 0xa8, 0xe4, 0x4d, 0x29, 0x5a, 0xb1, 0xef, 0xf0, 0x4a, 0x14, 0x80, 0x61, 0xdd,
+ 0x02, 0x1d, 0x22, 0x36, 0x7b, 0x15, 0xbf, 0x1f, 0xc4, 0x10, 0xf7, 0x5d, 0x49, 0xb9, 0x0d, 0x8e,
+ 0xc5, 0x32, 0x03, 0xfd, 0x4f, 0xc7, 0x7a, 0x12, 0xed, 0xc5, 0x8a, 0xce, 0x3f, 0x94, 0xfa, 0x9f,
+ 0x2d, 0x8a, 0xa4, 0x35, 0x64, 0x4c, 0xea, 0xa7, 0xf4, 0xa8, 0x5b, 0x40, 0xe9, 0x7f, 0xff, 0x06,
+ 0x9b, 0xaf, 0xd8, 0x4e, 0x65, 0xaf, 0xe1, 0x20, 0x17, 0x9b, 0x9e, 0x68, 0x61, 0x1f, 0x79, 0xc3,
+ 0x8b, 0x73, 0xa1, 0xe7, 0xc9, 0x5e, 0x86, 0x11, 0xa1, 0xe1, 0x89, 0x16, 0xf5, 0x1f, 0x98, 0xa8,
+ 0xe1, 0x60, 0xbf, 0x93, 0x3d, 0x0b, 0x49, 0xdc, 0xbc, 0x44, 0xc3, 0xff, 0x23, 0x83, 0x13, 0xf6,
+ 0xec, 0x43, 0x90, 0xe2, 0x4d, 0x4b, 0x34, 0xf4, 0xa3, 0x0c, 0xea, 0x41, 0x30, 0x9c, 0x37, 0x2c,
+ 0xd1, 0xf0, 0xff, 0xc4, 0xe1, 0x1c, 0x82, 0xe1, 0xf1, 0x4d, 0xf8, 0xd2, 0x7f, 0x49, 0xb2, 0x45,
+ 0x87, 0xdb, 0xee, 0x12, 0x1c, 0x62, 0x9d, 0x4a, 0x34, 0xfa, 0xe3, 0xec, 0xe1, 0x1c, 0x91, 0x3d,
+ 0x0f, 0xfd, 0x31, 0x0d, 0xfe, 0xdf, 0x18, 0x94, 0xf2, 0x67, 0x0b, 0x30, 0x14, 0xe8, 0x4e, 0xa2,
+ 0xe1, 0xff, 0x9d, 0xc1, 0x83, 0x28, 0xac, 0x3a, 0xeb, 0x4e, 0xa2, 0x05, 0xfc, 0x0f, 0xae, 0x3a,
+ 0x43, 0x60, 0xb3, 0xf1, 0xc6, 0x24, 0x1a, 0xfd, 0x3f, 0xb9, 0xd5, 0x39, 0x24, 0xfb, 0x08, 0x0c,
+ 0x7a, 0x8b, 0x4d, 0x34, 0xfe, 0x7f, 0x31, 0xbc, 0x8f, 0xc1, 0x16, 0x08, 0x2c, 0x76, 0xd1, 0x22,
+ 0xfe, 0x37, 0xb7, 0x40, 0x00, 0x85, 0xd3, 0x48, 0x6e, 0x60, 0xa2, 0x25, 0x7d, 0x82, 0xa7, 0x91,
+ 0xd4, 0xbf, 0x60, 0x6f, 0x92, 0x9a, 0x1f, 0x2d, 0xe2, 0xff, 0x70, 0x6f, 0x12, 0x7e, 0xac, 0x86,
+ 0xdc, 0x11, 0x44, 0xcb, 0xf8, 0x7f, 0x5c, 0x0d, 0xa9, 0x21, 0xc8, 0xae, 0x83, 0xde, 0xdd, 0x0d,
+ 0x44, 0xcb, 0xfb, 0x24, 0x93, 0x37, 0xde, 0xd5, 0x0c, 0x64, 0x1f, 0x83, 0xc9, 0xf0, 0x4e, 0x20,
+ 0x5a, 0xea, 0xa7, 0xde, 0x90, 0xde, 0xdd, 0x82, 0x8d, 0x40, 0x76, 0xd3, 0x5f, 0x52, 0x82, 0x5d,
+ 0x40, 0xb4, 0xd8, 0x4f, 0xbf, 0x21, 0x16, 0xee, 0x60, 0x13, 0x90, 0xcd, 0x01, 0xf8, 0x0b, 0x70,
+ 0xb4, 0xac, 0xcf, 0x30, 0x59, 0x01, 0x10, 0x4e, 0x0d, 0xb6, 0xfe, 0x46, 0xe3, 0x3f, 0xcb, 0x53,
+ 0x83, 0x21, 0x70, 0x6a, 0xf0, 0xa5, 0x37, 0x1a, 0xfd, 0x3c, 0x4f, 0x0d, 0x0e, 0xc1, 0x91, 0x1d,
+ 0x58, 0xdd, 0xa2, 0x25, 0x7c, 0x9e, 0x47, 0x76, 0x00, 0x95, 0x2d, 0xc3, 0x78, 0xd7, 0x82, 0x18,
+ 0x2d, 0xea, 0x0b, 0x4c, 0x94, 0x26, 0xaf, 0x87, 0xc1, 0xc5, 0x8b, 0x2d, 0x86, 0xd1, 0xd2, 0xbe,
+ 0x28, 0x2d, 0x5e, 0x6c, 0x2d, 0xcc, 0x5e, 0x82, 0x94, 0xd5, 0x69, 0x34, 0x70, 0xf2, 0xe8, 0xfb,
+ 0xdf, 0xdc, 0x4b, 0xff, 0xf5, 0x9b, 0xcc, 0x3a, 0x1c, 0x90, 0x3d, 0x0b, 0xfd, 0xa8, 0x79, 0x03,
+ 0xd5, 0xa2, 0x90, 0x7f, 0xf3, 0x26, 0x2f, 0x98, 0x98, 0x3b, 0xfb, 0x08, 0x00, 0xdd, 0x1a, 0x21,
+ 0xc7, 0x7e, 0x11, 0xd8, 0xbf, 0x7d, 0x93, 0xdd, 0xa9, 0xf1, 0x21, 0xbe, 0x00, 0x7a, 0x43, 0x67,
+ 0x7f, 0x01, 0xaf, 0x8b, 0x02, 0x88, 0x47, 0x2e, 0xc2, 0xa1, 0x27, 0x1c, 0xdb, 0x72, 0xcd, 0x9d,
+ 0x28, 0xf4, 0xdf, 0x31, 0x34, 0xe7, 0xc7, 0x06, 0x6b, 0xda, 0x6d, 0xe4, 0x9a, 0x3b, 0x4e, 0x14,
+ 0xf6, 0xef, 0x19, 0xd6, 0x03, 0x60, 0x70, 0xd5, 0x74, 0xdc, 0x38, 0xf3, 0xfe, 0x07, 0x0e, 0xe6,
+ 0x00, 0xac, 0x34, 0xfe, 0xfc, 0x24, 0xda, 0x8b, 0xc2, 0xfe, 0x8c, 0x2b, 0xcd, 0xf8, 0xb3, 0x0f,
+ 0xc1, 0x20, 0xfe, 0x48, 0x2f, 0xca, 0x45, 0x80, 0xff, 0x91, 0x81, 0x7d, 0x04, 0x7e, 0xb2, 0xe3,
+ 0xd6, 0xdc, 0x7a, 0xb4, 0xb1, 0x7f, 0xce, 0x3c, 0xcd, 0xf9, 0xb3, 0x39, 0x18, 0x72, 0xdc, 0x5a,
+ 0xad, 0xc3, 0xfa, 0xd3, 0x08, 0xf8, 0x3f, 0xbd, 0xe9, 0x6d, 0x59, 0x78, 0x18, 0xec, 0xed, 0xa7,
+ 0x9f, 0x74, 0x5b, 0x36, 0x39, 0xe6, 0x88, 0x92, 0xf0, 0x06, 0x93, 0x10, 0x80, 0xe4, 0x4b, 0xe1,
+ 0xdb, 0xb7, 0x70, 0xc5, 0xbe, 0x62, 0xd3, 0x8d, 0xdb, 0x0f, 0x64, 0xa2, 0x77, 0x60, 0xe1, 0x07,
+ 0x0d, 0x98, 0xad, 0xda, 0xcd, 0x1b, 0xb6, 0x73, 0x2a, 0x50, 0xcc, 0x4f, 0xb9, 0xbb, 0x08, 0xaf,
+ 0xc3, 0x6c, 0x6f, 0x36, 0x89, 0x3f, 0x4f, 0x1d, 0x6c, 0x43, 0x97, 0x1c, 0xd7, 0x97, 0xeb, 0x78,
+ 0x0e, 0x65, 0x72, 0x62, 0xa2, 0x1f, 0x83, 0x01, 0x32, 0xab, 0xd3, 0xe4, 0x54, 0x52, 0xc9, 0x27,
+ 0x6f, 0xbe, 0x32, 0xd3, 0x67, 0xb0, 0x31, 0x8f, 0xba, 0x44, 0xb6, 0xb4, 0x13, 0x02, 0x75, 0xc9,
+ 0xa3, 0x9e, 0xa1, 0xbb, 0xda, 0x02, 0xf5, 0x8c, 0x47, 0x5d, 0x26, 0xfb, 0xdb, 0xaa, 0x40, 0x5d,
+ 0xf6, 0xa8, 0x67, 0xc9, 0x19, 0xce, 0x88, 0x40, 0x3d, 0xeb, 0x51, 0xcf, 0x91, 0x93, 0x9b, 0xa4,
+ 0x40, 0x3d, 0xe7, 0x51, 0xcf, 0x93, 0x43, 0x9b, 0x71, 0x81, 0x7a, 0xde, 0xa3, 0x5e, 0x20, 0x87,
+ 0x35, 0xba, 0x40, 0xbd, 0xe0, 0x51, 0x2f, 0x92, 0x2b, 0x56, 0x87, 0x04, 0xea, 0x45, 0x7d, 0x1a,
+ 0x0e, 0xd1, 0x99, 0x2f, 0x92, 0x93, 0xfd, 0x31, 0x46, 0xe6, 0x83, 0x3e, 0xfd, 0x34, 0xb9, 0x4e,
+ 0x35, 0x20, 0xd2, 0x4f, 0xfb, 0xf4, 0x25, 0xf2, 0x97, 0x1d, 0x9a, 0x48, 0x5f, 0xf2, 0xe9, 0x67,
+ 0xd2, 0x23, 0xe4, 0x4a, 0x99, 0x40, 0x3f, 0xe3, 0xd3, 0x97, 0xd3, 0xa3, 0x38, 0x35, 0x44, 0xfa,
+ 0xb2, 0x4f, 0x3f, 0x9b, 0x1e, 0x9b, 0x55, 0xe6, 0x86, 0x45, 0xfa, 0xd9, 0xcc, 0x87, 0x89, 0x7b,
+ 0x2d, 0xdf, 0xbd, 0x93, 0xa2, 0x7b, 0x3d, 0xc7, 0x4e, 0x8a, 0x8e, 0xf5, 0x5c, 0x3a, 0x29, 0xba,
+ 0xd4, 0x73, 0xe6, 0xa4, 0xe8, 0x4c, 0xcf, 0x8d, 0x93, 0xa2, 0x1b, 0x3d, 0x07, 0x4e, 0x8a, 0x0e,
+ 0xf4, 0x5c, 0x37, 0x29, 0xba, 0xce, 0x73, 0xda, 0xa4, 0xe8, 0x34, 0xcf, 0x5d, 0x93, 0xa2, 0xbb,
+ 0x3c, 0x47, 0xa5, 0x25, 0x47, 0xf9, 0x2e, 0x4a, 0x4b, 0x2e, 0xf2, 0x9d, 0x93, 0x96, 0x9c, 0xe3,
+ 0xbb, 0x25, 0x2d, 0xb9, 0xc5, 0x77, 0x48, 0x5a, 0x72, 0x88, 0xef, 0x8a, 0xb4, 0xe4, 0x0a, 0xdf,
+ 0x09, 0x2c, 0xc7, 0x0c, 0xd4, 0x0a, 0xc9, 0x31, 0x75, 0xdf, 0x1c, 0x53, 0xf7, 0xcd, 0x31, 0x75,
+ 0xdf, 0x1c, 0x53, 0xf7, 0xcd, 0x31, 0x75, 0xdf, 0x1c, 0x53, 0xf7, 0xcd, 0x31, 0x75, 0xdf, 0x1c,
+ 0x53, 0xf7, 0xcd, 0x31, 0x75, 0xff, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0x8d, 0xc8, 0x31, 0x35, 0x22,
+ 0xc7, 0xd4, 0x88, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0xed, 0x99, 0x63, 0xbe, 0x7b, 0x27, 0x45, 0xf7,
+ 0x86, 0xe6, 0x98, 0xda, 0x23, 0xc7, 0xd4, 0x1e, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5, 0x47, 0x8e,
+ 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe5, 0x98, 0xda, 0x33,
+ 0xc7, 0xd4, 0x9e, 0x39, 0xa6, 0xf6, 0xcc, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0x3d, 0x73, 0x4c, 0x0d,
+ 0xe6, 0xd8, 0x1f, 0xa9, 0xa0, 0xd3, 0x1c, 0x5b, 0x27, 0x77, 0xc3, 0x98, 0x2b, 0xa6, 0xa5, 0x4c,
+ 0x1b, 0xc0, 0xae, 0xd3, 0x7c, 0x97, 0x4c, 0x4b, 0xb9, 0x26, 0xd2, 0x97, 0x3c, 0x3a, 0xcf, 0x36,
+ 0x91, 0x7e, 0xc6, 0xa3, 0xf3, 0x7c, 0x13, 0xe9, 0xcb, 0x1e, 0x9d, 0x67, 0x9c, 0x48, 0x3f, 0xeb,
+ 0xd1, 0x79, 0xce, 0x89, 0xf4, 0x73, 0x1e, 0x9d, 0x67, 0x9d, 0x48, 0x3f, 0xef, 0xd1, 0x79, 0xde,
+ 0x89, 0xf4, 0x0b, 0x1e, 0x9d, 0x67, 0x9e, 0x48, 0xbf, 0xa8, 0xcf, 0xca, 0xb9, 0xc7, 0x19, 0x3c,
+ 0xd7, 0xce, 0xca, 0xd9, 0x27, 0x71, 0x9c, 0xf6, 0x39, 0x78, 0xfe, 0x49, 0x1c, 0x4b, 0x3e, 0x07,
+ 0xcf, 0x40, 0x89, 0xe3, 0x4c, 0xe6, 0x63, 0xc4, 0x7d, 0x96, 0xec, 0xbe, 0x29, 0xc9, 0x7d, 0x89,
+ 0x80, 0xeb, 0xa6, 0x24, 0xd7, 0x25, 0x02, 0x6e, 0x9b, 0x92, 0xdc, 0x96, 0x08, 0xb8, 0x6c, 0x4a,
+ 0x72, 0x59, 0x22, 0xe0, 0xae, 0x29, 0xc9, 0x5d, 0x89, 0x80, 0xab, 0xa6, 0x24, 0x57, 0x25, 0x02,
+ 0x6e, 0x9a, 0x92, 0xdc, 0x94, 0x08, 0xb8, 0x68, 0x4a, 0x72, 0x51, 0x22, 0xe0, 0x9e, 0x29, 0xc9,
+ 0x3d, 0x89, 0x80, 0x6b, 0x8e, 0xc9, 0xae, 0x49, 0x04, 0xdd, 0x72, 0x4c, 0x76, 0x4b, 0x22, 0xe8,
+ 0x92, 0x63, 0xb2, 0x4b, 0x12, 0x41, 0x77, 0x1c, 0x93, 0xdd, 0x91, 0x08, 0xba, 0xe2, 0x97, 0x09,
+ 0xde, 0x11, 0x6e, 0xb8, 0xed, 0x4e, 0xd5, 0xbd, 0xad, 0x8e, 0x70, 0x51, 0x68, 0x1f, 0x86, 0x96,
+ 0xf4, 0x05, 0xd2, 0xb0, 0x06, 0x3b, 0x4e, 0x69, 0x05, 0x5b, 0x14, 0x1a, 0x8b, 0x00, 0xc2, 0x0a,
+ 0x47, 0x2c, 0xdf, 0x56, 0x6f, 0xb8, 0x28, 0xb4, 0x19, 0xd1, 0xfa, 0x5d, 0x78, 0xc7, 0x3b, 0xb6,
+ 0x97, 0x12, 0xbc, 0x63, 0x63, 0xe6, 0x3f, 0x68, 0xc7, 0x36, 0x1f, 0x6d, 0x72, 0xcf, 0xd8, 0xf3,
+ 0xd1, 0xc6, 0xee, 0x5a, 0x75, 0xe2, 0x76, 0x70, 0xf3, 0xd1, 0xa6, 0xf5, 0x8c, 0xfa, 0xf6, 0xf6,
+ 0x5b, 0x2c, 0x82, 0x0d, 0xd4, 0x0a, 0x89, 0xe0, 0x83, 0xf6, 0x5b, 0x8b, 0x42, 0x29, 0x39, 0x68,
+ 0x04, 0xab, 0x07, 0x8e, 0xe0, 0x83, 0x76, 0x5e, 0x8b, 0x42, 0x79, 0x39, 0x70, 0x04, 0xbf, 0x03,
+ 0xfd, 0x10, 0x8b, 0x60, 0xdf, 0xfc, 0x07, 0xed, 0x87, 0xe6, 0xa3, 0x4d, 0x1e, 0x1a, 0xc1, 0xea,
+ 0x01, 0x22, 0x38, 0x4e, 0x7f, 0x34, 0x1f, 0x6d, 0xda, 0xf0, 0x08, 0xbe, 0xed, 0x6e, 0xe6, 0x73,
+ 0x0a, 0x8c, 0x97, 0xeb, 0xb5, 0x52, 0xf3, 0x06, 0xaa, 0xd5, 0x50, 0x8d, 0xd9, 0x71, 0x51, 0xa8,
+ 0x04, 0x3d, 0x5c, 0xfd, 0xf2, 0x2b, 0x33, 0xbe, 0x85, 0xcf, 0x42, 0x8a, 0xda, 0x74, 0x71, 0x31,
+ 0x7d, 0x53, 0x89, 0xa8, 0x70, 0x1e, 0xab, 0x7e, 0x9c, 0xc3, 0x4e, 0x2f, 0xa6, 0xff, 0x5c, 0x09,
+ 0x54, 0x39, 0x6f, 0x38, 0xf3, 0x09, 0xa2, 0xa1, 0x75, 0xdb, 0x1a, 0x9e, 0x8a, 0xa5, 0x61, 0x40,
+ 0xb7, 0x3b, 0xbb, 0x74, 0x0b, 0x68, 0xd5, 0x81, 0xb1, 0x72, 0xbd, 0x56, 0x26, 0xbf, 0x29, 0x10,
+ 0x47, 0x25, 0xca, 0x23, 0xd5, 0x83, 0x45, 0x21, 0x2c, 0x83, 0x08, 0x2f, 0xa4, 0xc5, 0x1a, 0x91,
+ 0xa9, 0xe3, 0xc7, 0x5a, 0xc2, 0x63, 0xe7, 0x7b, 0x3d, 0xd6, 0xaf, 0xec, 0xde, 0x03, 0xe7, 0x7b,
+ 0x3d, 0xd0, 0xcf, 0x21, 0xef, 0x51, 0xcf, 0xf0, 0xc5, 0x99, 0xde, 0xd0, 0xd2, 0x8f, 0x41, 0x62,
+ 0x85, 0x5e, 0x20, 0x1f, 0xce, 0x0f, 0x63, 0xa5, 0x7e, 0xf4, 0xca, 0x4c, 0x72, 0xab, 0x53, 0xaf,
+ 0x19, 0x89, 0x95, 0x9a, 0x7e, 0x15, 0xfa, 0xdf, 0xcf, 0xfe, 0xb2, 0x15, 0x33, 0x2c, 0x33, 0x86,
+ 0x07, 0x7a, 0xee, 0x11, 0xe1, 0x07, 0x9f, 0xa2, 0xbb, 0x95, 0x0b, 0x5b, 0x75, 0xcb, 0x3d, 0xbd,
+ 0x74, 0xc1, 0xa0, 0x22, 0x32, 0xff, 0x1a, 0x80, 0x3e, 0xb3, 0x68, 0x3a, 0xbb, 0x7a, 0x99, 0x4b,
+ 0xa6, 0x8f, 0xbe, 0xf0, 0xa3, 0x57, 0x66, 0x96, 0xe3, 0x48, 0x7d, 0xb0, 0x66, 0x3a, 0xbb, 0x0f,
+ 0xba, 0x7b, 0x2d, 0xb4, 0x90, 0xdf, 0x73, 0x91, 0xc3, 0xa5, 0xb7, 0xf8, 0xaa, 0xc7, 0xe6, 0x95,
+ 0x0e, 0xcc, 0x2b, 0x25, 0xcc, 0xe9, 0xb2, 0x38, 0xa7, 0xc5, 0xb7, 0x3a, 0x9f, 0x67, 0xf8, 0x22,
+ 0x21, 0x59, 0x52, 0x8d, 0xb2, 0xa4, 0x7a, 0xbb, 0x96, 0x6c, 0xf1, 0xfa, 0x28, 0xcd, 0x55, 0xdd,
+ 0x6f, 0xae, 0xea, 0xed, 0xcc, 0xf5, 0x9f, 0x69, 0xb6, 0x7a, 0xf9, 0xb4, 0x65, 0xd1, 0xcb, 0xab,
+ 0xbf, 0x5e, 0x7b, 0x41, 0x6f, 0x6b, 0x17, 0x90, 0x4d, 0xde, 0x7c, 0x61, 0x46, 0xc9, 0x7c, 0x2e,
+ 0xc1, 0x67, 0x4e, 0x13, 0xe9, 0xad, 0xcd, 0xfc, 0xd7, 0xa5, 0xa7, 0x7a, 0x27, 0x2c, 0xf4, 0xbc,
+ 0x02, 0x93, 0x5d, 0x95, 0x9c, 0x9a, 0xe9, 0xed, 0x2d, 0xe7, 0xd6, 0x41, 0xcb, 0x39, 0x53, 0xf0,
+ 0x9b, 0x0a, 0x1c, 0x96, 0xca, 0x2b, 0x55, 0xef, 0x94, 0xa4, 0xde, 0xd1, 0xee, 0x27, 0x11, 0xc6,
+ 0x80, 0x76, 0x41, 0xf7, 0x4a, 0x80, 0x80, 0x64, 0xcf, 0xef, 0xcb, 0x92, 0xdf, 0x8f, 0x79, 0x80,
+ 0x10, 0x73, 0xf1, 0x08, 0x60, 0x6a, 0xdb, 0x90, 0xdc, 0x6c, 0x23, 0xa4, 0x4f, 0x43, 0x62, 0xad,
+ 0xcd, 0x34, 0x1c, 0xa5, 0xf8, 0xb5, 0x76, 0xbe, 0x6d, 0x5a, 0xd5, 0x5d, 0x23, 0xb1, 0xd6, 0xd6,
+ 0x8f, 0x83, 0x9a, 0x63, 0x7f, 0x55, 0x3f, 0xb4, 0x34, 0x46, 0x19, 0x72, 0x56, 0x8d, 0x71, 0x60,
+ 0x9a, 0x3e, 0x0d, 0xc9, 0x6b, 0xc8, 0xdc, 0x66, 0x4a, 0x00, 0xe5, 0xc1, 0x23, 0x06, 0x19, 0x67,
+ 0x0f, 0x7c, 0x1c, 0x52, 0x5c, 0xb0, 0x7e, 0x02, 0x23, 0xb6, 0x5d, 0xf6, 0x58, 0x86, 0xc0, 0xea,
+ 0xb0, 0x95, 0x8b, 0x50, 0xf5, 0x93, 0xd0, 0x6f, 0xd4, 0x77, 0x76, 0x5d, 0xf6, 0xf0, 0x6e, 0x36,
+ 0x4a, 0xce, 0x5c, 0x87, 0x41, 0x4f, 0xa3, 0xb7, 0x59, 0x74, 0x91, 0x4e, 0x4d, 0x9f, 0x0a, 0xae,
+ 0x27, 0x7c, 0xdf, 0x92, 0x0e, 0xe9, 0xb3, 0x90, 0xda, 0x70, 0xdb, 0x7e, 0xd1, 0xe7, 0x1d, 0xa9,
+ 0x37, 0x9a, 0xf9, 0xb0, 0x02, 0xa9, 0x22, 0x42, 0x2d, 0x62, 0xf0, 0x7b, 0x20, 0x59, 0xb4, 0x9f,
+ 0xb6, 0x98, 0x82, 0xe3, 0xcc, 0xa2, 0x98, 0xcc, 0x6c, 0x4a, 0xc8, 0xfa, 0x3d, 0x41, 0xbb, 0x4f,
+ 0x78, 0x76, 0x0f, 0xf0, 0x11, 0xdb, 0x67, 0x04, 0xdb, 0x33, 0x07, 0x62, 0xa6, 0x2e, 0xfb, 0x9f,
+ 0x87, 0xa1, 0xc0, 0x53, 0xf4, 0x39, 0xa6, 0x46, 0x42, 0x06, 0x06, 0x6d, 0x85, 0x39, 0x32, 0x08,
+ 0x46, 0x84, 0x07, 0x63, 0x68, 0xc0, 0xc4, 0x3d, 0xa0, 0xc4, 0xcc, 0xf3, 0xa2, 0x99, 0xc3, 0x59,
+ 0x99, 0xa9, 0x17, 0xa9, 0x8d, 0x88, 0xb9, 0x4f, 0xd0, 0xe0, 0xec, 0xed, 0x44, 0xfc, 0x39, 0xd3,
+ 0x0f, 0x6a, 0xb9, 0xde, 0xc8, 0x3c, 0x04, 0x40, 0x53, 0xbe, 0x64, 0x75, 0x9a, 0x52, 0xd6, 0x8d,
+ 0x72, 0x03, 0x6f, 0xee, 0xa2, 0x4d, 0xe4, 0x10, 0x16, 0xb1, 0x9f, 0xc2, 0x05, 0x06, 0x68, 0x8a,
+ 0x11, 0xfc, 0x7d, 0x91, 0xf8, 0xd0, 0x4e, 0x0c, 0xb3, 0xa6, 0x29, 0xeb, 0x75, 0xe4, 0xe6, 0x2c,
+ 0xdb, 0xdd, 0x45, 0x6d, 0x09, 0xb1, 0xa4, 0x9f, 0x11, 0x12, 0x76, 0x74, 0xe9, 0x4e, 0x0f, 0xd1,
+ 0x13, 0x74, 0x26, 0xf3, 0x75, 0xa2, 0x20, 0x6e, 0x05, 0xba, 0x26, 0xa8, 0xc6, 0x98, 0xa0, 0x7e,
+ 0x4e, 0xe8, 0xdf, 0xf6, 0x51, 0x53, 0x7a, 0xb5, 0xbc, 0x28, 0xbc, 0xe7, 0xec, 0xaf, 0xac, 0xf8,
+ 0x8e, 0xc9, 0x6d, 0xca, 0x55, 0xbe, 0x2f, 0x52, 0xe5, 0x1e, 0xdd, 0xed, 0x41, 0x6d, 0xaa, 0xc6,
+ 0xb5, 0xe9, 0x77, 0xbd, 0x8e, 0x83, 0xfe, 0x74, 0x09, 0xf9, 0xd1, 0x1f, 0xfd, 0x81, 0x48, 0xdf,
+ 0x67, 0x95, 0x82, 0xa7, 0xea, 0x72, 0x5c, 0xf7, 0x67, 0x13, 0xf9, 0xbc, 0xa7, 0xee, 0xf9, 0x03,
+ 0x84, 0x40, 0x36, 0x51, 0x28, 0x78, 0x65, 0x3b, 0xf5, 0xb1, 0x17, 0x66, 0x94, 0x17, 0x5f, 0x98,
+ 0xe9, 0xcb, 0x7c, 0x55, 0x81, 0x71, 0xc6, 0x19, 0x08, 0xdc, 0x07, 0x25, 0xe5, 0x8f, 0xf0, 0x9a,
+ 0x11, 0x66, 0x81, 0x77, 0x2d, 0x78, 0xbf, 0xaf, 0x40, 0xba, 0x4b, 0x57, 0x6e, 0xef, 0xc5, 0x58,
+ 0x2a, 0x67, 0x95, 0xd2, 0xaf, 0xde, 0xe6, 0xd7, 0xa1, 0x7f, 0xb3, 0xde, 0x44, 0x6d, 0xbc, 0x12,
+ 0xe0, 0x0f, 0x54, 0x65, 0x7e, 0x98, 0x43, 0x87, 0x38, 0x8d, 0x2a, 0x27, 0xd0, 0x96, 0xf4, 0x34,
+ 0x24, 0x8b, 0xa6, 0x6b, 0x12, 0x0d, 0x86, 0xbd, 0xfa, 0x6a, 0xba, 0x66, 0xe6, 0x0c, 0x0c, 0xaf,
+ 0xee, 0x91, 0x1b, 0x47, 0x35, 0x72, 0xd9, 0x44, 0xec, 0xfe, 0x78, 0xbf, 0x7a, 0x7a, 0xbe, 0x3f,
+ 0x55, 0xd3, 0x6e, 0x2a, 0xd9, 0x24, 0xd1, 0xe7, 0x29, 0x18, 0x5d, 0xc3, 0x6a, 0x13, 0x9c, 0x00,
+ 0xa3, 0x4f, 0x57, 0xbd, 0xc9, 0x4b, 0x4d, 0x99, 0xea, 0x37, 0x65, 0xb3, 0xa0, 0xac, 0x8a, 0xad,
+ 0x53, 0x50, 0x0f, 0x43, 0x59, 0x9d, 0x4f, 0xa6, 0x46, 0xb5, 0xf1, 0xf9, 0x64, 0x0a, 0xb4, 0x11,
+ 0xf6, 0xdc, 0x3f, 0x53, 0x41, 0xa3, 0xad, 0x4e, 0x11, 0x6d, 0xd7, 0xad, 0xba, 0xdb, 0xdd, 0xaf,
+ 0x7a, 0x1a, 0xeb, 0x8f, 0xc0, 0x20, 0x36, 0xe9, 0x65, 0xf6, 0xdb, 0x7f, 0xd8, 0xf4, 0xc7, 0x59,
+ 0x8b, 0x22, 0x89, 0x60, 0x03, 0x24, 0x74, 0x7c, 0x8c, 0x7e, 0x19, 0xd4, 0x72, 0x79, 0x95, 0x2d,
+ 0x6e, 0xcb, 0xfb, 0x42, 0xd9, 0xad, 0x1e, 0xf6, 0x8d, 0x8d, 0x39, 0x3b, 0x06, 0x16, 0xa0, 0x2f,
+ 0x43, 0xa2, 0xbc, 0xca, 0x1a, 0xde, 0x13, 0x71, 0xc4, 0x18, 0x89, 0xf2, 0xea, 0xd4, 0x1f, 0x2b,
+ 0x30, 0x22, 0x8c, 0xea, 0x19, 0x18, 0xa6, 0x03, 0x81, 0xe9, 0x0e, 0x18, 0xc2, 0x18, 0xd7, 0x39,
+ 0x71, 0x9b, 0x3a, 0x4f, 0xe5, 0x60, 0x4c, 0x1a, 0xd7, 0x17, 0x40, 0x0f, 0x0e, 0x31, 0x25, 0xe8,
+ 0xef, 0x8e, 0x85, 0x50, 0x32, 0x77, 0x01, 0xf8, 0x76, 0xf5, 0x7e, 0x2e, 0xab, 0x5c, 0xda, 0xd8,
+ 0x2c, 0x15, 0x35, 0x25, 0xf3, 0x2d, 0x05, 0x86, 0x58, 0xdb, 0x5a, 0xb5, 0x5b, 0x48, 0xcf, 0x83,
+ 0x92, 0x63, 0xf1, 0xf0, 0xd6, 0xf4, 0x56, 0x72, 0xfa, 0x29, 0x50, 0xf2, 0xf1, 0x5d, 0xad, 0xe4,
+ 0xf5, 0x25, 0x50, 0x0a, 0xcc, 0xc1, 0xf1, 0x3c, 0xa3, 0x14, 0x32, 0x3f, 0x57, 0x61, 0x22, 0xd8,
+ 0x46, 0xf3, 0x7a, 0x72, 0x5c, 0x7c, 0x6f, 0xca, 0x0e, 0x9e, 0x5e, 0x3a, 0xb3, 0xbc, 0x80, 0xff,
+ 0xf1, 0x42, 0x32, 0x23, 0xbe, 0x42, 0x65, 0xc1, 0x63, 0x39, 0xdd, 0xeb, 0x9e, 0x48, 0x36, 0x19,
+ 0x90, 0xd0, 0x75, 0x4f, 0x44, 0xa0, 0x76, 0xdd, 0x13, 0x11, 0xa8, 0x5d, 0xf7, 0x44, 0x04, 0x6a,
+ 0xd7, 0x59, 0x80, 0x40, 0xed, 0xba, 0x27, 0x22, 0x50, 0xbb, 0xee, 0x89, 0x08, 0xd4, 0xee, 0x7b,
+ 0x22, 0x8c, 0xdc, 0xf3, 0x9e, 0x88, 0x48, 0xef, 0xbe, 0x27, 0x22, 0xd2, 0xbb, 0xef, 0x89, 0x64,
+ 0x93, 0x6e, 0xbb, 0x83, 0x7a, 0x9f, 0x3a, 0x88, 0xf8, 0xfd, 0x5e, 0x02, 0xfd, 0x0a, 0xbc, 0x06,
+ 0x63, 0x74, 0x43, 0xa2, 0x60, 0x5b, 0xae, 0x59, 0xb7, 0x50, 0x5b, 0x7f, 0x0f, 0x0c, 0xd3, 0x21,
+ 0xfa, 0x9a, 0x13, 0xf6, 0x1a, 0x48, 0xe9, 0xac, 0xde, 0x0a, 0xdc, 0x99, 0x5f, 0x26, 0x61, 0x92,
+ 0x0e, 0x94, 0xcd, 0x26, 0x12, 0x6e, 0x19, 0x9d, 0x94, 0xce, 0x94, 0x46, 0x31, 0xfc, 0xd6, 0x2b,
+ 0x33, 0x74, 0x34, 0xe7, 0x45, 0xd3, 0x49, 0xe9, 0x74, 0x49, 0xe4, 0xf3, 0x17, 0xa0, 0x93, 0xd2,
+ 0xcd, 0x23, 0x91, 0xcf, 0x5b, 0x6f, 0x3c, 0x3e, 0x7e, 0x07, 0x49, 0xe4, 0x2b, 0x7a, 0x51, 0x76,
+ 0x52, 0xba, 0x8d, 0x24, 0xf2, 0x95, 0xbc, 0x78, 0x3b, 0x29, 0x9d, 0x3d, 0x89, 0x7c, 0x97, 0xbd,
+ 0xc8, 0x3b, 0x29, 0x9d, 0x42, 0x89, 0x7c, 0x57, 0xbc, 0x18, 0x3c, 0x29, 0xdd, 0x55, 0x12, 0xf9,
+ 0x1e, 0xf5, 0xa2, 0xf1, 0xa4, 0x74, 0x6b, 0x49, 0xe4, 0x5b, 0xf1, 0xe2, 0x72, 0x4e, 0xbe, 0xbf,
+ 0x24, 0x32, 0x5e, 0xf5, 0x23, 0x74, 0x4e, 0xbe, 0xc9, 0x24, 0x72, 0xbe, 0xd7, 0x8f, 0xd5, 0x39,
+ 0xf9, 0x4e, 0x93, 0xc8, 0x79, 0xcd, 0x8f, 0xda, 0x39, 0xf9, 0xac, 0x4c, 0xe4, 0x5c, 0xf5, 0xe3,
+ 0x77, 0x4e, 0x3e, 0x35, 0x13, 0x39, 0xcb, 0x7e, 0x24, 0xcf, 0xc9, 0xe7, 0x67, 0x22, 0xe7, 0x9a,
+ 0xbf, 0x89, 0xfe, 0x3d, 0x29, 0xfc, 0x02, 0xb7, 0xa0, 0x32, 0x52, 0xf8, 0x41, 0x48, 0xe8, 0x49,
+ 0x85, 0x2c, 0xc0, 0xe3, 0x87, 0x5d, 0x46, 0x0a, 0x3b, 0x08, 0x09, 0xb9, 0x8c, 0x14, 0x72, 0x10,
+ 0x12, 0x6e, 0x19, 0x29, 0xdc, 0x20, 0x24, 0xd4, 0x32, 0x52, 0xa8, 0x41, 0x48, 0x98, 0x65, 0xa4,
+ 0x30, 0x83, 0x90, 0x10, 0xcb, 0x48, 0x21, 0x06, 0x21, 0xe1, 0x95, 0x91, 0xc2, 0x0b, 0x42, 0x42,
+ 0xeb, 0x84, 0x1c, 0x5a, 0x10, 0x16, 0x56, 0x27, 0xe4, 0xb0, 0x82, 0xb0, 0x90, 0xba, 0x5b, 0x0e,
+ 0xa9, 0xc1, 0x5b, 0xaf, 0xcc, 0xf4, 0xe3, 0xa1, 0x40, 0x34, 0x9d, 0x90, 0xa3, 0x09, 0xc2, 0x22,
+ 0xe9, 0x84, 0x1c, 0x49, 0x10, 0x16, 0x45, 0x27, 0xe4, 0x28, 0x82, 0xb0, 0x08, 0x7a, 0x49, 0x8e,
+ 0x20, 0xff, 0x8e, 0x4f, 0x46, 0x3a, 0x52, 0x8c, 0x8a, 0x20, 0x35, 0x46, 0x04, 0xa9, 0x31, 0x22,
+ 0x48, 0x8d, 0x11, 0x41, 0x6a, 0x8c, 0x08, 0x52, 0x63, 0x44, 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x18,
+ 0x11, 0xa4, 0xc6, 0x89, 0x20, 0x35, 0x56, 0x04, 0xa9, 0xbd, 0x22, 0xe8, 0x84, 0x7c, 0xe3, 0x01,
+ 0xc2, 0x0a, 0xd2, 0x09, 0xf9, 0xe8, 0x33, 0x3a, 0x84, 0xd4, 0x58, 0x21, 0xa4, 0xf6, 0x0a, 0xa1,
+ 0xef, 0xa9, 0x30, 0x21, 0x84, 0x10, 0x3b, 0x1f, 0x7a, 0xbb, 0x2a, 0xd0, 0xb9, 0x18, 0x17, 0x2c,
+ 0xc2, 0x62, 0xea, 0x5c, 0x8c, 0x43, 0xea, 0xfd, 0xe2, 0xac, 0xbb, 0x0a, 0x95, 0x62, 0x54, 0xa1,
+ 0xcb, 0x5e, 0x0c, 0x9d, 0x8b, 0x71, 0xf1, 0xa2, 0x3b, 0xf6, 0x2e, 0xec, 0x57, 0x04, 0x1e, 0x8d,
+ 0x55, 0x04, 0x56, 0x62, 0x15, 0x81, 0xab, 0xbe, 0x07, 0x3f, 0x9a, 0x80, 0xc3, 0xbe, 0x07, 0xe9,
+ 0x27, 0xf2, 0x13, 0x5a, 0x99, 0xc0, 0x11, 0x95, 0xce, 0x8f, 0x6d, 0x02, 0x6e, 0x4c, 0xac, 0xd4,
+ 0xf4, 0x75, 0xf1, 0xb0, 0x2a, 0x7b, 0xd0, 0x03, 0x9c, 0x80, 0xc7, 0xd9, 0x66, 0xe8, 0x09, 0x50,
+ 0x57, 0x6a, 0x0e, 0xa9, 0x16, 0x61, 0x8f, 0x2d, 0x18, 0x98, 0xac, 0x1b, 0x30, 0x40, 0xd8, 0x1d,
+ 0xe2, 0xde, 0xdb, 0x79, 0x70, 0xd1, 0x60, 0x92, 0x32, 0x2f, 0x29, 0x30, 0x2b, 0x84, 0xf2, 0xdb,
+ 0x73, 0x64, 0x70, 0x29, 0xd6, 0x91, 0x81, 0x90, 0x20, 0xfe, 0xf1, 0xc1, 0xbd, 0xdd, 0x27, 0xd5,
+ 0xc1, 0x2c, 0x91, 0x8f, 0x12, 0xfe, 0x1d, 0x8c, 0xfa, 0x33, 0x20, 0xef, 0x6c, 0x67, 0xa3, 0x77,
+ 0x33, 0xc3, 0x52, 0xf3, 0xac, 0xb4, 0x8b, 0xb6, 0x2f, 0xcc, 0xcb, 0xd6, 0x4c, 0x16, 0xc6, 0xca,
+ 0xe2, 0xdf, 0x3e, 0x45, 0x6d, 0x46, 0xa4, 0x70, 0x6b, 0x7e, 0xf3, 0xf3, 0x33, 0x7d, 0x99, 0x07,
+ 0x60, 0x38, 0xf8, 0xe7, 0x4d, 0x12, 0x70, 0x90, 0x03, 0xb3, 0xc9, 0x97, 0x31, 0xf7, 0xff, 0x55,
+ 0xe0, 0x48, 0x90, 0xfd, 0xb1, 0xba, 0xbb, 0xbb, 0x62, 0xe1, 0x9e, 0xfe, 0x21, 0x48, 0x21, 0xe6,
+ 0x38, 0xf6, 0x6b, 0x38, 0xec, 0x3d, 0x32, 0x94, 0x7d, 0x81, 0xfc, 0x6b, 0x78, 0x10, 0x69, 0x17,
+ 0x84, 0x3f, 0x76, 0x69, 0xea, 0x1e, 0xe8, 0xa7, 0xf2, 0x45, 0xbd, 0x46, 0x24, 0xbd, 0xbe, 0x14,
+ 0xa2, 0x17, 0x89, 0x23, 0xfd, 0xaa, 0xa0, 0x57, 0xe0, 0x75, 0x35, 0x94, 0x7d, 0x81, 0x07, 0x5f,
+ 0x3e, 0x85, 0xfb, 0x3f, 0x12, 0x51, 0xd1, 0x4a, 0xce, 0x41, 0xaa, 0x24, 0xf3, 0x84, 0xeb, 0x59,
+ 0x84, 0x64, 0xd9, 0xae, 0x91, 0xdf, 0xe9, 0x21, 0xbf, 0x78, 0xcd, 0x8c, 0xcc, 0x7e, 0xfe, 0xfa,
+ 0x24, 0xa4, 0x0a, 0xbb, 0xf5, 0x46, 0xad, 0x8d, 0x2c, 0x76, 0x66, 0xcf, 0xb6, 0xd0, 0x31, 0xc6,
+ 0xf0, 0x68, 0x99, 0x02, 0x8c, 0x97, 0x6d, 0x2b, 0xbf, 0xe7, 0x06, 0xeb, 0xc6, 0x82, 0x94, 0x22,
+ 0xec, 0xcc, 0x87, 0xfc, 0x39, 0x08, 0x66, 0xc8, 0xf7, 0xff, 0xe8, 0x95, 0x19, 0x65, 0xd3, 0xdb,
+ 0x3f, 0x5f, 0x85, 0xa3, 0x2c, 0x7d, 0xba, 0x44, 0x2d, 0x45, 0x89, 0x1a, 0x64, 0xe7, 0xd4, 0x01,
+ 0x71, 0x2b, 0x58, 0x9c, 0x15, 0x2a, 0xee, 0xad, 0x69, 0x86, 0x9b, 0xa2, 0x7d, 0x35, 0x53, 0x0f,
+ 0xa4, 0x59, 0xa8, 0xb8, 0x85, 0x28, 0x71, 0x92, 0x66, 0x77, 0xc3, 0xa0, 0x47, 0x0b, 0x44, 0x43,
+ 0x30, 0x53, 0x96, 0xe6, 0x33, 0x30, 0x14, 0x48, 0x58, 0xbd, 0x1f, 0x94, 0x9c, 0xd6, 0x87, 0xff,
+ 0xcb, 0x6b, 0x0a, 0xfe, 0xaf, 0xa0, 0x25, 0xe6, 0xef, 0x81, 0x31, 0x69, 0xff, 0x12, 0x53, 0x8a,
+ 0x1a, 0xe0, 0xff, 0x4a, 0xda, 0xd0, 0x54, 0xf2, 0x63, 0x5f, 0x9c, 0xee, 0x9b, 0xbf, 0x04, 0x7a,
+ 0xf7, 0x4e, 0xa7, 0x3e, 0x00, 0x89, 0x1c, 0x16, 0x79, 0x14, 0x12, 0xf9, 0xbc, 0xa6, 0x4c, 0x8d,
+ 0xfd, 0xe7, 0xcf, 0xce, 0x0e, 0xe5, 0xc9, 0xdf, 0x6e, 0x5f, 0x47, 0x6e, 0x3e, 0xcf, 0xc0, 0x0f,
+ 0xc3, 0x91, 0xd0, 0x9d, 0x52, 0x8c, 0x2f, 0x14, 0x28, 0xbe, 0x58, 0xec, 0xc2, 0x17, 0x8b, 0x04,
+ 0xaf, 0x64, 0xf9, 0x89, 0x73, 0x4e, 0x0f, 0xd9, 0x65, 0x4c, 0xd7, 0x02, 0x27, 0xdc, 0xb9, 0xec,
+ 0xc3, 0x8c, 0x37, 0x1f, 0xca, 0x8b, 0x22, 0x4e, 0xac, 0xf3, 0xd9, 0x02, 0xc3, 0x17, 0x42, 0xf1,
+ 0xdb, 0xd2, 0xb1, 0xaa, 0xb8, 0x42, 0x30, 0x21, 0x05, 0x4f, 0xe1, 0x62, 0xa8, 0x90, 0xdd, 0xc0,
+ 0x65, 0xf7, 0xa2, 0xa7, 0x70, 0x29, 0x94, 0xb7, 0x1e, 0x71, 0xe9, 0xab, 0x94, 0x3d, 0xc5, 0x16,
+ 0xf9, 0xdc, 0x69, 0xfd, 0x08, 0xcf, 0x51, 0xa1, 0x02, 0x33, 0x03, 0x71, 0xae, 0x6c, 0x81, 0x01,
+ 0xf2, 0x3d, 0x01, 0xbd, 0xad, 0xc4, 0x91, 0xd9, 0x47, 0x99, 0x90, 0x42, 0x4f, 0x21, 0x11, 0xa6,
+ 0xe2, 0xf0, 0xfc, 0xe6, 0xcd, 0x57, 0xa7, 0xfb, 0x5e, 0x7e, 0x75, 0xba, 0xef, 0x2f, 0x5e, 0x9d,
+ 0xee, 0xfb, 0xf1, 0xab, 0xd3, 0xca, 0x4f, 0x5f, 0x9d, 0x56, 0x7e, 0xf6, 0xea, 0xb4, 0xf2, 0x8b,
+ 0x57, 0xa7, 0x95, 0xe7, 0x6e, 0x4d, 0x2b, 0x2f, 0xde, 0x9a, 0x56, 0xbe, 0x7e, 0x6b, 0x5a, 0xf9,
+ 0xf6, 0xad, 0x69, 0xe5, 0xa5, 0x5b, 0xd3, 0xca, 0xcd, 0x5b, 0xd3, 0x7d, 0x2f, 0xdf, 0x9a, 0x56,
+ 0x7e, 0x7c, 0x6b, 0x5a, 0xf9, 0xe9, 0xad, 0xe9, 0xbe, 0x9f, 0xdd, 0x9a, 0x56, 0x7e, 0x71, 0x6b,
+ 0xba, 0xef, 0xb9, 0xd7, 0xa6, 0xfb, 0x5e, 0x78, 0x6d, 0xba, 0xef, 0xc5, 0xd7, 0xa6, 0x95, 0x7f,
+ 0x09, 0x00, 0x00, 0xff, 0xff, 0x93, 0x06, 0xaa, 0xbb, 0x45, 0x69, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -26900,7 +27121,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -26950,7 +27171,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Field3 |= (int32(b) & 0x7F) << shift
+ m.Field3 |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -26969,7 +27190,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Field4 |= (int64(b) & 0x7F) << shift
+ m.Field4 |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -26988,7 +27209,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Field5 |= (uint32(b) & 0x7F) << shift
+ m.Field5 |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27007,7 +27228,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Field6 |= (uint64(b) & 0x7F) << shift
+ m.Field6 |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27026,7 +27247,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27047,7 +27268,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27108,7 +27329,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27128,7 +27349,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27138,6 +27359,9 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -27157,7 +27381,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27166,6 +27390,9 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -27183,6 +27410,9 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -27211,7 +27441,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27263,7 +27493,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27283,7 +27513,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27303,7 +27533,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27323,7 +27553,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27343,7 +27573,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27364,7 +27594,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27430,7 +27660,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27451,7 +27681,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27461,6 +27691,9 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -27481,7 +27714,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27490,6 +27723,9 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -27507,6 +27743,9 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -27535,7 +27774,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27570,7 +27809,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27579,6 +27818,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -27621,7 +27863,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27630,6 +27872,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -27663,7 +27908,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27680,7 +27925,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27689,12 +27934,15 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -27714,7 +27962,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27736,7 +27984,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27753,7 +28001,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27762,12 +28010,15 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -27787,7 +28038,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27809,7 +28060,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27826,7 +28077,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27835,12 +28086,15 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -27860,7 +28114,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27882,7 +28136,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27899,7 +28153,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27908,12 +28162,15 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -27933,7 +28190,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27955,7 +28212,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27973,7 +28230,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -27982,12 +28239,15 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -28007,7 +28267,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28030,7 +28290,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28048,7 +28308,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28057,12 +28317,15 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -28082,7 +28345,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28113,7 +28376,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28122,6 +28385,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -28162,7 +28428,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28171,6 +28437,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -28211,7 +28480,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28220,6 +28489,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -28260,7 +28532,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28269,6 +28541,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -28301,7 +28576,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28318,7 +28593,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28327,6 +28602,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -28346,7 +28624,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28370,7 +28648,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28380,6 +28658,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -28399,7 +28680,7 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28408,6 +28689,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -28423,6 +28707,9 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -28451,7 +28738,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28486,7 +28773,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28495,6 +28782,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -28537,7 +28827,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28546,6 +28836,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -28579,7 +28872,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28596,7 +28889,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28605,12 +28898,15 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -28630,7 +28926,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28652,7 +28948,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28669,7 +28965,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28678,12 +28974,15 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -28703,7 +29002,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28725,7 +29024,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28742,7 +29041,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28751,12 +29050,15 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -28776,7 +29078,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28798,7 +29100,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28815,7 +29117,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28824,12 +29126,15 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -28849,7 +29154,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28871,7 +29176,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28889,7 +29194,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28898,12 +29203,15 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -28923,7 +29231,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28946,7 +29254,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28964,7 +29272,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -28973,12 +29281,15 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -28998,7 +29309,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29029,7 +29340,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29038,6 +29349,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -29078,7 +29392,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29087,6 +29401,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -29127,7 +29444,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29136,6 +29453,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -29176,7 +29496,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29185,6 +29505,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -29217,7 +29540,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29234,7 +29557,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29243,6 +29566,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -29262,7 +29588,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29286,7 +29612,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29296,6 +29622,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -29315,7 +29644,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29324,6 +29653,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -29339,6 +29671,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -29367,7 +29702,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29402,7 +29737,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29411,6 +29746,9 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -29453,7 +29791,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29462,6 +29800,9 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -29495,7 +29836,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29512,7 +29853,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29521,12 +29862,15 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -29546,7 +29890,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29568,7 +29912,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29585,7 +29929,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29594,12 +29938,15 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -29619,7 +29966,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29641,7 +29988,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29658,7 +30005,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29667,12 +30014,15 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -29692,7 +30042,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29714,7 +30064,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29731,7 +30081,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29740,12 +30090,15 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -29765,7 +30118,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29787,7 +30140,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29805,7 +30158,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29814,12 +30167,15 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -29839,7 +30195,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29862,7 +30218,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29880,7 +30236,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29889,12 +30245,15 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -29914,7 +30273,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29945,7 +30304,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -29954,6 +30313,9 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -29994,7 +30356,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30003,6 +30365,9 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -30043,7 +30408,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30052,6 +30417,9 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -30092,7 +30460,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30101,6 +30469,9 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -30133,7 +30504,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30150,7 +30521,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30159,6 +30530,9 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -30178,7 +30552,7 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30197,6 +30571,9 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -30225,7 +30602,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30260,7 +30637,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30269,6 +30646,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -30311,7 +30691,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30320,6 +30700,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -30353,7 +30736,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30370,7 +30753,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30379,12 +30762,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -30404,7 +30790,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30426,7 +30812,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30443,7 +30829,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30452,12 +30838,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -30477,7 +30866,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30499,7 +30888,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30516,7 +30905,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30525,12 +30914,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -30550,7 +30942,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30572,7 +30964,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30589,7 +30981,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30598,12 +30990,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -30623,7 +31018,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30645,7 +31040,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30663,7 +31058,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30672,12 +31067,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -30697,7 +31095,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30720,7 +31118,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30738,7 +31136,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30747,12 +31145,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -30772,7 +31173,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30803,7 +31204,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30812,6 +31213,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -30852,7 +31256,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30861,6 +31265,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -30901,7 +31308,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30910,6 +31317,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -30950,7 +31360,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -30959,6 +31369,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -30991,7 +31404,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31008,7 +31421,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31017,6 +31430,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -31036,7 +31452,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31055,6 +31471,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -31083,7 +31502,7 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31133,7 +31552,7 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31142,6 +31561,9 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -31163,7 +31585,7 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31172,6 +31594,9 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -31193,7 +31618,7 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Field6 |= (uint64(b) & 0x7F) << shift
+ m.Field6 |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31212,7 +31637,7 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31233,7 +31658,7 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31242,6 +31667,9 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -31263,7 +31691,7 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31283,7 +31711,7 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31293,6 +31721,9 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -31312,7 +31743,7 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31321,6 +31752,9 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -31338,6 +31772,9 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -31366,7 +31803,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31418,7 +31855,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31427,6 +31864,9 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -31451,7 +31891,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31460,6 +31900,9 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -31484,7 +31927,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31504,7 +31947,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31525,7 +31968,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31534,6 +31977,9 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -31558,7 +32004,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31579,7 +32025,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31589,6 +32035,9 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -31609,7 +32058,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31618,6 +32067,9 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -31635,6 +32087,9 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -31663,7 +32118,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31698,7 +32153,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31707,6 +32162,9 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -31749,7 +32207,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31758,6 +32216,9 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -31793,7 +32254,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31802,6 +32263,9 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -31824,7 +32288,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31833,6 +32297,9 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -31853,7 +32320,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31870,7 +32337,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31879,12 +32346,15 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -31904,7 +32374,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31926,7 +32396,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31944,7 +32414,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -31953,12 +32423,15 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -31978,7 +32451,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32003,7 +32476,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32012,6 +32485,9 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32032,7 +32508,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32049,7 +32525,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32058,6 +32534,9 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32077,7 +32556,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32101,7 +32580,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32111,6 +32590,9 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32130,7 +32612,7 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32139,6 +32621,9 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32154,6 +32639,9 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -32182,7 +32670,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32217,7 +32705,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32226,6 +32714,9 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32268,7 +32759,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32277,6 +32768,9 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32312,7 +32806,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32321,6 +32815,9 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32343,7 +32840,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32352,6 +32849,9 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32372,7 +32872,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32389,7 +32889,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32398,12 +32898,15 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -32423,7 +32926,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32445,7 +32948,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32463,7 +32966,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32472,12 +32975,15 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -32497,7 +33003,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32522,7 +33028,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32531,6 +33037,9 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32551,7 +33060,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32568,7 +33077,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32577,6 +33086,9 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32596,7 +33108,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32620,7 +33132,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32630,6 +33142,9 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32649,7 +33164,7 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32658,6 +33173,9 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32673,6 +33191,9 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -32701,7 +33222,7 @@ func (m *NidEmbeddedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32729,7 +33250,7 @@ func (m *NidEmbeddedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32738,6 +33259,9 @@ func (m *NidEmbeddedStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32762,7 +33286,7 @@ func (m *NidEmbeddedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32771,6 +33295,9 @@ func (m *NidEmbeddedStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32792,7 +33319,7 @@ func (m *NidEmbeddedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32807,6 +33334,9 @@ func (m *NidEmbeddedStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -32835,7 +33365,7 @@ func (m *NinEmbeddedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32863,7 +33393,7 @@ func (m *NinEmbeddedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32872,6 +33402,9 @@ func (m *NinEmbeddedStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32896,7 +33429,7 @@ func (m *NinEmbeddedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32905,6 +33438,9 @@ func (m *NinEmbeddedStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -32929,7 +33465,7 @@ func (m *NinEmbeddedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -32945,6 +33481,9 @@ func (m *NinEmbeddedStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -32973,7 +33512,7 @@ func (m *NidNestedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33001,7 +33540,7 @@ func (m *NidNestedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33010,6 +33549,9 @@ func (m *NidNestedStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33031,7 +33573,7 @@ func (m *NidNestedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33040,6 +33582,9 @@ func (m *NidNestedStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33057,6 +33602,9 @@ func (m *NidNestedStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -33085,7 +33633,7 @@ func (m *NinNestedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33113,7 +33661,7 @@ func (m *NinNestedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33122,6 +33670,9 @@ func (m *NinNestedStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33146,7 +33697,7 @@ func (m *NinNestedStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33155,6 +33706,9 @@ func (m *NinNestedStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33172,6 +33726,9 @@ func (m *NinNestedStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -33200,7 +33757,7 @@ func (m *NidOptCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33228,7 +33785,7 @@ func (m *NidOptCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33237,6 +33794,9 @@ func (m *NidOptCustom) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33258,7 +33818,7 @@ func (m *NidOptCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33267,6 +33827,9 @@ func (m *NidOptCustom) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33283,6 +33846,9 @@ func (m *NidOptCustom) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -33311,7 +33877,7 @@ func (m *CustomDash) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33339,7 +33905,7 @@ func (m *CustomDash) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33348,6 +33914,9 @@ func (m *CustomDash) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33366,6 +33935,9 @@ func (m *CustomDash) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -33394,7 +33966,7 @@ func (m *NinOptCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33422,7 +33994,7 @@ func (m *NinOptCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33431,6 +34003,9 @@ func (m *NinOptCustom) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33454,7 +34029,7 @@ func (m *NinOptCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33463,6 +34038,9 @@ func (m *NinOptCustom) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33481,6 +34059,9 @@ func (m *NinOptCustom) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -33509,7 +34090,7 @@ func (m *NidRepCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33537,7 +34118,7 @@ func (m *NidRepCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33546,6 +34127,9 @@ func (m *NidRepCustom) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33569,7 +34153,7 @@ func (m *NidRepCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33578,6 +34162,9 @@ func (m *NidRepCustom) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33596,6 +34183,9 @@ func (m *NidRepCustom) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -33624,7 +34214,7 @@ func (m *NinRepCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33652,7 +34242,7 @@ func (m *NinRepCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33661,6 +34251,9 @@ func (m *NinRepCustom) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33684,7 +34277,7 @@ func (m *NinRepCustom) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33693,6 +34286,9 @@ func (m *NinRepCustom) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33711,6 +34307,9 @@ func (m *NinRepCustom) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -33739,7 +34338,7 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33791,7 +34390,7 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33811,7 +34410,7 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33831,7 +34430,7 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33851,7 +34450,7 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33871,7 +34470,7 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33892,7 +34491,7 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33902,6 +34501,9 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33922,7 +34524,7 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -33931,6 +34533,9 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -33948,6 +34553,9 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -33976,7 +34584,7 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34028,7 +34636,7 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34037,6 +34645,9 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34061,7 +34672,7 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34070,6 +34681,9 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34094,7 +34708,7 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34114,7 +34728,7 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34135,7 +34749,7 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34156,7 +34770,7 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34166,6 +34780,9 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34186,7 +34803,7 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34195,6 +34812,9 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34212,6 +34832,9 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -34240,7 +34863,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34268,7 +34891,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34277,6 +34900,9 @@ func (m *NinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34301,7 +34927,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34310,6 +34936,9 @@ func (m *NinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34334,7 +34963,7 @@ func (m *NinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34350,6 +34979,9 @@ func (m *NinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -34378,7 +35010,7 @@ func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34406,7 +35038,7 @@ func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34415,6 +35047,9 @@ func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34439,7 +35074,7 @@ func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34448,6 +35083,9 @@ func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34472,7 +35110,7 @@ func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34481,6 +35119,9 @@ func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34500,6 +35141,9 @@ func (m *NinNestedStructUnion) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -34528,7 +35172,7 @@ func (m *Tree) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34556,7 +35200,7 @@ func (m *Tree) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34565,6 +35209,9 @@ func (m *Tree) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34589,7 +35236,7 @@ func (m *Tree) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34598,6 +35245,9 @@ func (m *Tree) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34622,7 +35272,7 @@ func (m *Tree) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34631,6 +35281,9 @@ func (m *Tree) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34650,6 +35303,9 @@ func (m *Tree) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -34678,7 +35334,7 @@ func (m *OrBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34706,7 +35362,7 @@ func (m *OrBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34715,6 +35371,9 @@ func (m *OrBranch) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34736,7 +35395,7 @@ func (m *OrBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34745,6 +35404,9 @@ func (m *OrBranch) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34761,6 +35423,9 @@ func (m *OrBranch) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -34789,7 +35454,7 @@ func (m *AndBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34817,7 +35482,7 @@ func (m *AndBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34826,6 +35491,9 @@ func (m *AndBranch) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34847,7 +35515,7 @@ func (m *AndBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34856,6 +35524,9 @@ func (m *AndBranch) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34872,6 +35543,9 @@ func (m *AndBranch) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -34900,7 +35574,7 @@ func (m *Leaf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34928,7 +35602,7 @@ func (m *Leaf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Value |= (int64(b) & 0x7F) << shift
+ m.Value |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34947,7 +35621,7 @@ func (m *Leaf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -34957,6 +35631,9 @@ func (m *Leaf) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -34971,6 +35648,9 @@ func (m *Leaf) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -34999,7 +35679,7 @@ func (m *DeepTree) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35027,7 +35707,7 @@ func (m *DeepTree) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35036,6 +35716,9 @@ func (m *DeepTree) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35060,7 +35743,7 @@ func (m *DeepTree) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35069,6 +35752,9 @@ func (m *DeepTree) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35093,7 +35779,7 @@ func (m *DeepTree) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35102,6 +35788,9 @@ func (m *DeepTree) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35121,6 +35810,9 @@ func (m *DeepTree) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -35149,7 +35841,7 @@ func (m *ADeepBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35177,7 +35869,7 @@ func (m *ADeepBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35186,6 +35878,9 @@ func (m *ADeepBranch) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35202,6 +35897,9 @@ func (m *ADeepBranch) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -35230,7 +35928,7 @@ func (m *AndDeepBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35258,7 +35956,7 @@ func (m *AndDeepBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35267,6 +35965,9 @@ func (m *AndDeepBranch) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35288,7 +35989,7 @@ func (m *AndDeepBranch) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35297,6 +35998,9 @@ func (m *AndDeepBranch) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35313,6 +36017,9 @@ func (m *AndDeepBranch) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -35341,7 +36048,7 @@ func (m *DeepLeaf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35369,7 +36076,7 @@ func (m *DeepLeaf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35378,6 +36085,9 @@ func (m *DeepLeaf) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35394,6 +36104,9 @@ func (m *DeepLeaf) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -35422,7 +36135,7 @@ func (m *Nil) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35445,6 +36158,9 @@ func (m *Nil) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -35473,7 +36189,7 @@ func (m *NidOptEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35501,7 +36217,7 @@ func (m *NidOptEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Field1 |= (TheTestEnum(b) & 0x7F) << shift
+ m.Field1 |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35515,6 +36231,9 @@ func (m *NidOptEnum) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -35543,7 +36262,7 @@ func (m *NinOptEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35571,7 +36290,7 @@ func (m *NinOptEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (TheTestEnum(b) & 0x7F) << shift
+ v |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35591,7 +36310,7 @@ func (m *NinOptEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35611,7 +36330,7 @@ func (m *NinOptEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetYetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35626,6 +36345,9 @@ func (m *NinOptEnum) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -35654,7 +36376,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35680,7 +36402,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (TheTestEnum(b) & 0x7F) << shift
+ v |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35697,7 +36419,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35706,6 +36428,9 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35724,7 +36449,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (TheTestEnum(b) & 0x7F) << shift
+ v |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35746,7 +36471,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35763,7 +36488,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35772,6 +36497,9 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35790,7 +36518,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35812,7 +36540,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetYetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35829,7 +36557,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35838,6 +36566,9 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35856,7 +36587,7 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetYetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35875,6 +36606,9 @@ func (m *NidRepEnum) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -35903,7 +36637,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35929,7 +36663,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (TheTestEnum(b) & 0x7F) << shift
+ v |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35946,7 +36680,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35955,6 +36689,9 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -35973,7 +36710,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (TheTestEnum(b) & 0x7F) << shift
+ v |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -35995,7 +36732,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36012,7 +36749,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36021,6 +36758,9 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36039,7 +36779,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36061,7 +36801,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetYetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36078,7 +36818,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36087,6 +36827,9 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36105,7 +36848,7 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetYetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36124,6 +36867,9 @@ func (m *NinRepEnum) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -36152,7 +36898,7 @@ func (m *NinOptEnumDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36180,7 +36926,121 @@ func (m *NinOptEnumDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (TheTestEnum(b) & 0x7F) << shift
+ v |= TheTestEnum(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Field1 = &v
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
+ }
+ var v YetAnotherTestEnum
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowThetest
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= YetAnotherTestEnum(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Field2 = &v
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
+ }
+ var v YetYetAnotherTestEnum
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowThetest
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= YetYetAnotherTestEnum(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Field3 = &v
+ default:
+ iNdEx = preIndex
+ skippy, err := skipThetest(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if skippy < 0 {
+ return ErrInvalidLengthThetest
+ }
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *AnotherNinOptEnum) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowThetest
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: AnotherNinOptEnum: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: AnotherNinOptEnum: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
+ }
+ var v AnotherTestEnum
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowThetest
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= AnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36200,7 +37060,7 @@ func (m *NinOptEnumDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36220,7 +37080,7 @@ func (m *NinOptEnumDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetYetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36235,115 +37095,7 @@ func (m *NinOptEnumDefault) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *AnotherNinOptEnum) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowThetest
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: AnotherNinOptEnum: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: AnotherNinOptEnum: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
- }
- var v AnotherTestEnum
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowThetest
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- v |= (AnotherTestEnum(b) & 0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- m.Field1 = &v
- case 2:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
- }
- var v YetAnotherTestEnum
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowThetest
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- v |= (YetAnotherTestEnum(b) & 0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- m.Field2 = &v
- case 3:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
- }
- var v YetYetAnotherTestEnum
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowThetest
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- m.Field3 = &v
- default:
- iNdEx = preIndex
- skippy, err := skipThetest(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if skippy < 0 {
+ if (iNdEx + skippy) < 0 {
return ErrInvalidLengthThetest
}
if (iNdEx + skippy) > l {
@@ -36374,7 +37126,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36402,7 +37154,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (AnotherTestEnum(b) & 0x7F) << shift
+ v |= AnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36422,7 +37174,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36442,7 +37194,7 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift
+ v |= YetYetAnotherTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36457,6 +37209,9 @@ func (m *AnotherNinOptEnumDefault) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -36485,7 +37240,7 @@ func (m *Timer) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36533,7 +37288,7 @@ func (m *Timer) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36542,6 +37297,9 @@ func (m *Timer) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36559,6 +37317,9 @@ func (m *Timer) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -36587,7 +37348,7 @@ func (m *MyExtendable) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36615,7 +37376,7 @@ func (m *MyExtendable) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36639,6 +37400,9 @@ func (m *MyExtendable) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -36653,6 +37417,9 @@ func (m *MyExtendable) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -36682,7 +37449,7 @@ func (m *OtherExtenable) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36710,7 +37477,7 @@ func (m *OtherExtenable) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36730,7 +37497,7 @@ func (m *OtherExtenable) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36750,7 +37517,7 @@ func (m *OtherExtenable) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36759,6 +37526,9 @@ func (m *OtherExtenable) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36787,6 +37557,9 @@ func (m *OtherExtenable) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -36801,6 +37574,9 @@ func (m *OtherExtenable) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -36830,7 +37606,7 @@ func (m *NestedDefinition) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36858,7 +37634,7 @@ func (m *NestedDefinition) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36878,7 +37654,7 @@ func (m *NestedDefinition) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (NestedDefinition_NestedEnum(b) & 0x7F) << shift
+ v |= NestedDefinition_NestedEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36898,7 +37674,7 @@ func (m *NestedDefinition) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36907,6 +37683,9 @@ func (m *NestedDefinition) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36931,7 +37710,7 @@ func (m *NestedDefinition) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -36940,6 +37719,9 @@ func (m *NestedDefinition) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -36959,6 +37741,9 @@ func (m *NestedDefinition) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -36987,7 +37772,7 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37026,7 +37811,7 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37035,6 +37820,9 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37054,6 +37842,9 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -37082,7 +37873,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(dAtA []byte)
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37110,7 +37901,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(dAtA []byte)
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37120,6 +37911,9 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(dAtA []byte)
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37135,6 +37929,9 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(dAtA []byte)
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -37163,7 +37960,7 @@ func (m *NestedScope) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37191,7 +37988,7 @@ func (m *NestedScope) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37200,6 +37997,9 @@ func (m *NestedScope) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37224,7 +38024,7 @@ func (m *NestedScope) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (NestedDefinition_NestedEnum(b) & 0x7F) << shift
+ v |= NestedDefinition_NestedEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37244,7 +38044,7 @@ func (m *NestedScope) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37253,6 +38053,9 @@ func (m *NestedScope) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37272,6 +38075,9 @@ func (m *NestedScope) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -37300,7 +38106,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37352,7 +38158,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37372,7 +38178,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37392,7 +38198,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37412,7 +38218,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37432,7 +38238,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37453,7 +38259,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37519,7 +38325,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37540,7 +38346,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37550,6 +38356,9 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37570,7 +38379,7 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37579,6 +38388,9 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37596,6 +38408,9 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -37624,7 +38439,7 @@ func (m *CustomContainer) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37652,7 +38467,7 @@ func (m *CustomContainer) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37661,6 +38476,9 @@ func (m *CustomContainer) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37677,6 +38495,9 @@ func (m *CustomContainer) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -37705,7 +38526,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37755,7 +38576,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.FieldC |= (int32(b) & 0x7F) << shift
+ m.FieldC |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37774,7 +38595,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.FieldD |= (int64(b) & 0x7F) << shift
+ m.FieldD |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37793,7 +38614,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.FieldE |= (uint32(b) & 0x7F) << shift
+ m.FieldE |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37812,7 +38633,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.FieldF |= (uint64(b) & 0x7F) << shift
+ m.FieldF |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37831,7 +38652,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37852,7 +38673,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37913,7 +38734,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37933,7 +38754,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37943,6 +38764,9 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37962,7 +38786,7 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -37971,6 +38795,9 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -37988,6 +38815,9 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -38016,7 +38846,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38068,7 +38898,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38088,7 +38918,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38108,7 +38938,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38128,7 +38958,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38148,7 +38978,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38169,7 +38999,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38235,7 +39065,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38256,7 +39086,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38266,6 +39096,9 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38286,7 +39119,7 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38295,6 +39128,9 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38312,6 +39148,9 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -38340,7 +39179,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38375,7 +39214,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38384,6 +39223,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38426,7 +39268,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38435,6 +39277,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38468,7 +39313,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38485,7 +39330,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38494,12 +39339,15 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -38519,7 +39367,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38541,7 +39389,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38558,7 +39406,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38567,12 +39415,15 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -38592,7 +39443,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38614,7 +39465,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38631,7 +39482,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38640,12 +39491,15 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -38665,7 +39519,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38687,7 +39541,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38704,7 +39558,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38713,12 +39567,15 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -38738,7 +39595,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38760,7 +39617,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38778,7 +39635,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38787,12 +39644,15 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -38812,7 +39672,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38835,7 +39695,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38853,7 +39713,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38862,12 +39722,15 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -38887,7 +39750,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38918,7 +39781,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38927,6 +39790,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -38967,7 +39833,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -38976,6 +39842,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39016,7 +39885,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39025,6 +39894,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39065,7 +39937,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39074,6 +39946,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39106,7 +39981,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39123,7 +39998,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39132,6 +40007,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39151,7 +40029,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39175,7 +40053,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39185,6 +40063,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39204,7 +40085,7 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39213,6 +40094,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39228,6 +40112,9 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -39256,7 +40143,7 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39308,7 +40195,7 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39317,6 +40204,9 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39341,7 +40231,7 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39350,6 +40240,9 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39372,7 +40265,7 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39392,7 +40285,7 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39413,7 +40306,7 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39422,6 +40315,9 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39446,7 +40342,7 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39467,7 +40363,7 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39477,6 +40373,9 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39497,7 +40396,7 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39506,6 +40405,9 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39523,6 +40425,9 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -39551,7 +40456,7 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39579,7 +40484,7 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39588,6 +40493,9 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39611,7 +40519,7 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39620,6 +40528,9 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39643,7 +40554,7 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39652,6 +40563,9 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39675,7 +40589,7 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39684,6 +40598,9 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39702,6 +40619,9 @@ func (m *CustomNameCustomType) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -39730,7 +40650,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39758,7 +40678,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39767,6 +40687,9 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39791,7 +40714,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39800,6 +40723,9 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39824,7 +40750,7 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39840,6 +40766,9 @@ func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -39868,7 +40797,7 @@ func (m *CustomNameEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39896,7 +40825,7 @@ func (m *CustomNameEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (TheTestEnum(b) & 0x7F) << shift
+ v |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39914,7 +40843,7 @@ func (m *CustomNameEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (TheTestEnum(b) & 0x7F) << shift
+ v |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39931,7 +40860,7 @@ func (m *CustomNameEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39940,6 +40869,9 @@ func (m *CustomNameEnum) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -39958,7 +40890,7 @@ func (m *CustomNameEnum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (TheTestEnum(b) & 0x7F) << shift
+ v |= TheTestEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -39977,6 +40909,9 @@ func (m *CustomNameEnum) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40005,7 +40940,7 @@ func (m *NoExtensionsMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40033,7 +40968,7 @@ func (m *NoExtensionsMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40057,6 +40992,9 @@ func (m *NoExtensionsMap) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40071,6 +41009,9 @@ func (m *NoExtensionsMap) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40100,7 +41041,7 @@ func (m *Unrecognized) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40128,7 +41069,7 @@ func (m *Unrecognized) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40138,6 +41079,9 @@ func (m *Unrecognized) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -40153,6 +41097,9 @@ func (m *Unrecognized) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40180,7 +41127,7 @@ func (m *UnrecognizedWithInner) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40208,7 +41155,7 @@ func (m *UnrecognizedWithInner) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40217,6 +41164,9 @@ func (m *UnrecognizedWithInner) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -40239,7 +41189,7 @@ func (m *UnrecognizedWithInner) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40249,6 +41199,9 @@ func (m *UnrecognizedWithInner) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -40264,6 +41217,9 @@ func (m *UnrecognizedWithInner) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40292,7 +41248,7 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40320,7 +41276,7 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40335,6 +41291,9 @@ func (m *UnrecognizedWithInner_Inner) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40362,7 +41321,7 @@ func (m *UnrecognizedWithEmbed) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40390,7 +41349,7 @@ func (m *UnrecognizedWithEmbed) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40399,6 +41358,9 @@ func (m *UnrecognizedWithEmbed) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -40420,7 +41382,7 @@ func (m *UnrecognizedWithEmbed) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40430,6 +41392,9 @@ func (m *UnrecognizedWithEmbed) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -40445,6 +41410,9 @@ func (m *UnrecognizedWithEmbed) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40473,7 +41441,7 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40501,7 +41469,7 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40516,6 +41484,9 @@ func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40543,7 +41514,7 @@ func (m *Node) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40571,7 +41542,7 @@ func (m *Node) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40581,6 +41552,9 @@ func (m *Node) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -40601,7 +41575,7 @@ func (m *Node) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40610,6 +41584,9 @@ func (m *Node) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -40627,6 +41604,9 @@ func (m *Node) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40655,7 +41635,7 @@ func (m *NonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40683,7 +41663,7 @@ func (m *NonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40692,6 +41672,9 @@ func (m *NonByteCustomType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -40711,6 +41694,9 @@ func (m *NonByteCustomType) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40739,7 +41725,7 @@ func (m *NidOptNonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40767,7 +41753,7 @@ func (m *NidOptNonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40776,6 +41762,9 @@ func (m *NidOptNonByteCustomType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -40792,6 +41781,9 @@ func (m *NidOptNonByteCustomType) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40820,7 +41812,7 @@ func (m *NinOptNonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40848,7 +41840,7 @@ func (m *NinOptNonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40857,6 +41849,9 @@ func (m *NinOptNonByteCustomType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -40876,6 +41871,9 @@ func (m *NinOptNonByteCustomType) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40904,7 +41902,7 @@ func (m *NidRepNonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40932,7 +41930,7 @@ func (m *NidRepNonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -40941,6 +41939,9 @@ func (m *NidRepNonByteCustomType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -40958,6 +41959,9 @@ func (m *NidRepNonByteCustomType) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -40986,7 +41990,7 @@ func (m *NinRepNonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41014,7 +42018,7 @@ func (m *NinRepNonByteCustomType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41023,6 +42027,9 @@ func (m *NinRepNonByteCustomType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -41040,6 +42047,9 @@ func (m *NinRepNonByteCustomType) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -41068,7 +42078,7 @@ func (m *ProtoType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41096,7 +42106,7 @@ func (m *ProtoType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -41106,6 +42116,9 @@ func (m *ProtoType) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthThetest
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthThetest
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -41121,6 +42134,9 @@ func (m *ProtoType) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthThetest
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthThetest
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -41188,10 +42204,13 @@ func skipThetest(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthThetest
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthThetest
+ }
return iNdEx, nil
case 3:
for {
@@ -41220,6 +42239,9 @@ func skipThetest(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthThetest
+ }
}
return iNdEx, nil
case 4:
@@ -41238,204 +42260,3 @@ var (
ErrInvalidLengthThetest = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowThetest = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("combos/unmarshaler/thetest.proto", fileDescriptor_thetest_4205beeb65ed6104)
-}
-
-var fileDescriptor_thetest_4205beeb65ed6104 = []byte{
- // 3088 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7,
- 0xd5, 0xe7, 0xec, 0x50, 0x0a, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0x16, 0x8c, 0xbe, 0x15, 0xbd,
- 0x91, 0xf5, 0x31, 0x44, 0x2c, 0x51, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0xe3, 0x46, 0x6e,
- 0x44, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x16, 0xd7, 0x22, 0x51, 0x69, 0x29, 0x90, 0xab,
- 0x34, 0xee, 0xa1, 0x08, 0x72, 0x28, 0x82, 0x5e, 0x8b, 0x1e, 0xdb, 0xb8, 0x28, 0x0a, 0xa4, 0xb7,
- 0x1c, 0x8a, 0xa2, 0x28, 0x8a, 0xc6, 0x97, 0x02, 0xea, 0xcd, 0xe8, 0xa9, 0x08, 0x0a, 0x21, 0x62,
- 0x2e, 0x39, 0x06, 0xbd, 0x34, 0x87, 0x1c, 0x8a, 0xdd, 0x9d, 0x9d, 0x9d, 0x19, 0xee, 0x72, 0x97,
- 0x96, 0xd2, 0xe6, 0x62, 0x8b, 0xf3, 0xde, 0x9b, 0x79, 0xfb, 0x7e, 0xbf, 0xf7, 0xf6, 0xed, 0xcc,
- 0x40, 0x7a, 0xaf, 0x73, 0x78, 0xbf, 0xd3, 0x5b, 0x3e, 0x36, 0x0e, 0x1b, 0xdd, 0x5e, 0xab, 0x71,
- 0xa0, 0x77, 0x97, 0xcd, 0x96, 0x6e, 0xea, 0x3d, 0x73, 0xe9, 0xa8, 0xdb, 0x31, 0x3b, 0x72, 0xdc,
- 0xfa, 0x3b, 0x75, 0x7d, 0xbf, 0x6d, 0xb6, 0x8e, 0xef, 0x2f, 0xed, 0x75, 0x0e, 0x97, 0xf7, 0x3b,
- 0xfb, 0x9d, 0x65, 0x5b, 0x78, 0xff, 0xf8, 0x81, 0xfd, 0xcb, 0xfe, 0x61, 0xff, 0xe5, 0x18, 0x69,
- 0xff, 0xc4, 0x30, 0x55, 0x6b, 0x37, 0x77, 0x8e, 0xcc, 0x5a, 0xc3, 0x6c, 0xbf, 0xa5, 0xcb, 0x73,
- 0x30, 0x7e, 0xab, 0xad, 0x1f, 0x34, 0x57, 0x14, 0x94, 0x46, 0x19, 0x54, 0x8a, 0x9f, 0x9c, 0xce,
- 0xc7, 0xea, 0x64, 0x8c, 0x4a, 0xf3, 0x8a, 0x94, 0x46, 0x19, 0x89, 0x93, 0xe6, 0xa9, 0x74, 0x55,
- 0xc1, 0x69, 0x94, 0x19, 0xe3, 0xa4, 0xab, 0x54, 0x5a, 0x50, 0xe2, 0x69, 0x94, 0xc1, 0x9c, 0xb4,
- 0x40, 0xa5, 0x6b, 0xca, 0x58, 0x1a, 0x65, 0x2e, 0x71, 0xd2, 0x35, 0x2a, 0x5d, 0x57, 0xc6, 0xd3,
- 0x28, 0x13, 0xe7, 0xa4, 0xeb, 0x54, 0x7a, 0x43, 0x79, 0x26, 0x8d, 0x32, 0x97, 0x39, 0xe9, 0x0d,
- 0x2a, 0xdd, 0x50, 0x12, 0x69, 0x94, 0x91, 0x39, 0xe9, 0x06, 0x95, 0xde, 0x54, 0x26, 0xd2, 0x28,
- 0xf3, 0x0c, 0x27, 0xbd, 0x29, 0xab, 0xf0, 0x8c, 0xf3, 0xe4, 0x39, 0x05, 0xd2, 0x28, 0x33, 0x43,
- 0xc4, 0xee, 0xa0, 0x27, 0x5f, 0x51, 0x26, 0xd3, 0x28, 0x33, 0xce, 0xcb, 0x57, 0x3c, 0x79, 0x5e,
- 0x99, 0x4a, 0xa3, 0x4c, 0x92, 0x97, 0xe7, 0x3d, 0xf9, 0xaa, 0x72, 0x29, 0x8d, 0x32, 0x09, 0x5e,
- 0xbe, 0xea, 0xc9, 0x0b, 0xca, 0x74, 0x1a, 0x65, 0x26, 0x78, 0x79, 0xc1, 0x93, 0xaf, 0x29, 0x33,
- 0x69, 0x94, 0x99, 0xe2, 0xe5, 0x6b, 0xda, 0xbb, 0x36, 0xbc, 0x86, 0x07, 0xef, 0x2c, 0x0f, 0x2f,
- 0x05, 0x76, 0x96, 0x07, 0x96, 0x42, 0x3a, 0xcb, 0x43, 0x4a, 0xc1, 0x9c, 0xe5, 0xc1, 0xa4, 0x30,
- 0xce, 0xf2, 0x30, 0x52, 0x00, 0x67, 0x79, 0x00, 0x29, 0x74, 0xb3, 0x3c, 0x74, 0x14, 0xb4, 0x59,
- 0x1e, 0x34, 0x0a, 0xd7, 0x2c, 0x0f, 0x17, 0x05, 0x4a, 0x11, 0x80, 0xf2, 0x20, 0x52, 0x04, 0x88,
- 0x3c, 0x70, 0x14, 0x01, 0x1c, 0x0f, 0x16, 0x45, 0x80, 0xc5, 0x03, 0x44, 0x11, 0x00, 0xf1, 0xa0,
- 0x50, 0x04, 0x28, 0x3c, 0x10, 0x48, 0x8e, 0xd5, 0xf5, 0x23, 0x9f, 0x1c, 0xc3, 0x43, 0x73, 0x0c,
- 0x0f, 0xcd, 0x31, 0x3c, 0x34, 0xc7, 0xf0, 0xd0, 0x1c, 0xc3, 0x43, 0x73, 0x0c, 0x0f, 0xcd, 0x31,
- 0x3c, 0x34, 0xc7, 0xf0, 0xd0, 0x1c, 0xc3, 0xc3, 0x73, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31,
- 0x1c, 0x92, 0x63, 0x38, 0x24, 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0xc0, 0x1c, 0xf3, 0xe0, 0x9d, 0xe5,
- 0xe1, 0xf5, 0xcd, 0x31, 0x1c, 0x90, 0x63, 0x38, 0x20, 0xc7, 0x70, 0x40, 0x8e, 0xe1, 0x80, 0x1c,
- 0xc3, 0x01, 0x39, 0x86, 0x03, 0x72, 0x0c, 0x07, 0xe4, 0x18, 0x0e, 0xca, 0x31, 0x1c, 0x98, 0x63,
- 0x38, 0x30, 0xc7, 0x70, 0x60, 0x8e, 0xe1, 0xc0, 0x1c, 0xc3, 0x81, 0x39, 0x86, 0xd9, 0x1c, 0xfb,
- 0x33, 0x06, 0xd9, 0xc9, 0xb1, 0x3b, 0x8d, 0xbd, 0x1f, 0xea, 0x4d, 0x02, 0x85, 0x2a, 0x64, 0xda,
- 0xb8, 0x05, 0x5d, 0xd2, 0x83, 0x44, 0x15, 0x72, 0x8d, 0x97, 0xe7, 0xa9, 0xdc, 0xcd, 0x36, 0x5e,
- 0xbe, 0x4a, 0xe5, 0x6e, 0xbe, 0xf1, 0xf2, 0x02, 0x95, 0xbb, 0x19, 0xc7, 0xcb, 0xd7, 0xa8, 0xdc,
- 0xcd, 0x39, 0x5e, 0xbe, 0x4e, 0xe5, 0x6e, 0xd6, 0xf1, 0xf2, 0x1b, 0x54, 0xee, 0xe6, 0x1d, 0x2f,
- 0xdf, 0xa0, 0x72, 0x37, 0xf3, 0x78, 0xf9, 0x4d, 0x39, 0x2d, 0xe6, 0x9e, 0xab, 0x40, 0xa1, 0x4d,
- 0x8b, 0xd9, 0x27, 0x68, 0xac, 0x78, 0x1a, 0x6e, 0xfe, 0x09, 0x1a, 0x79, 0x4f, 0xc3, 0xcd, 0x40,
- 0x41, 0x63, 0x55, 0x7b, 0xcf, 0x86, 0xcf, 0x10, 0xe1, 0x4b, 0x09, 0xf0, 0x49, 0x0c, 0x74, 0x29,
- 0x01, 0x3a, 0x89, 0x81, 0x2d, 0x25, 0xc0, 0x26, 0x31, 0x90, 0xa5, 0x04, 0xc8, 0x24, 0x06, 0xae,
- 0x94, 0x00, 0x97, 0xc4, 0x40, 0x95, 0x12, 0xa0, 0x92, 0x18, 0x98, 0x52, 0x02, 0x4c, 0x12, 0x03,
- 0x51, 0x4a, 0x80, 0x48, 0x62, 0xe0, 0x49, 0x09, 0xf0, 0x48, 0x0c, 0x34, 0x73, 0x22, 0x34, 0x12,
- 0x0b, 0xcb, 0x9c, 0x08, 0x8b, 0xc4, 0x42, 0x32, 0x27, 0x42, 0x22, 0xb1, 0x70, 0xcc, 0x89, 0x70,
- 0x48, 0x2c, 0x14, 0x5f, 0x4a, 0x6e, 0x47, 0xf8, 0xa6, 0xd9, 0x3d, 0xde, 0x33, 0xcf, 0xd5, 0x11,
- 0xe6, 0xb8, 0xf6, 0x61, 0x32, 0x2f, 0x2f, 0xd9, 0x0d, 0x2b, 0xdb, 0x71, 0x0a, 0x6f, 0xb0, 0x1c,
- 0xd7, 0x58, 0x30, 0x16, 0x86, 0xbf, 0x45, 0xe1, 0x5c, 0xbd, 0x61, 0x8e, 0x6b, 0x33, 0xc2, 0xfd,
- 0xdb, 0xf8, 0xca, 0x3b, 0xb6, 0xc7, 0x92, 0xdb, 0xb1, 0x91, 0xf0, 0x8f, 0xda, 0xb1, 0x65, 0xc3,
- 0x43, 0x4e, 0x83, 0x9d, 0x0d, 0x0f, 0xf6, 0xc0, 0x5b, 0x27, 0x6a, 0x07, 0x97, 0x0d, 0x0f, 0x2d,
- 0x0d, 0xea, 0xc5, 0xf6, 0x5b, 0x84, 0xc1, 0x75, 0xfd, 0xc8, 0x87, 0xc1, 0xa3, 0xf6, 0x5b, 0x39,
- 0xae, 0x94, 0x8c, 0xca, 0x60, 0x3c, 0x32, 0x83, 0x47, 0xed, 0xbc, 0x72, 0x5c, 0x79, 0x19, 0x99,
- 0xc1, 0x5f, 0x41, 0x3f, 0x44, 0x18, 0xec, 0x85, 0x7f, 0xd4, 0x7e, 0x28, 0x1b, 0x1e, 0x72, 0x5f,
- 0x06, 0xe3, 0x11, 0x18, 0x1c, 0xa5, 0x3f, 0xca, 0x86, 0x87, 0xd6, 0x9f, 0xc1, 0xe7, 0xee, 0x66,
- 0xde, 0x47, 0x70, 0xb9, 0xd6, 0x6e, 0x56, 0x0f, 0xef, 0xeb, 0xcd, 0xa6, 0xde, 0x24, 0x71, 0xcc,
- 0x71, 0x95, 0x20, 0x00, 0xea, 0x27, 0xa7, 0xf3, 0x5e, 0x84, 0xd7, 0x20, 0xe1, 0xc4, 0x34, 0x97,
- 0x53, 0x4e, 0x50, 0x48, 0x85, 0xa3, 0xaa, 0xf2, 0x55, 0xd7, 0x6c, 0x25, 0xa7, 0xfc, 0x1d, 0x31,
- 0x55, 0x8e, 0x0e, 0x6b, 0x3f, 0xb7, 0x3d, 0x34, 0xce, 0xed, 0xe1, 0x72, 0x24, 0x0f, 0x19, 0xdf,
- 0x5e, 0x18, 0xf0, 0x8d, 0xf1, 0xea, 0x18, 0x66, 0x6a, 0xed, 0x66, 0x4d, 0xef, 0x99, 0xd1, 0x5c,
- 0x72, 0x74, 0x84, 0x7a, 0x90, 0xe3, 0x68, 0xc9, 0x5a, 0x50, 0x4a, 0xf3, 0x35, 0x42, 0x6b, 0x5b,
- 0xcb, 0x1a, 0xdc, 0xb2, 0xd9, 0xa0, 0x65, 0xbd, 0xca, 0x4e, 0x17, 0xcc, 0x06, 0x2d, 0xe8, 0xe5,
- 0x10, 0x5d, 0xea, 0x6d, 0xf7, 0xe5, 0x5c, 0x3e, 0xee, 0x99, 0x9d, 0x43, 0x79, 0x0e, 0xa4, 0xad,
- 0xa6, 0xbd, 0xc6, 0x54, 0x69, 0xca, 0x72, 0xea, 0xe3, 0xd3, 0xf9, 0xf8, 0xdd, 0xe3, 0x76, 0xb3,
- 0x2e, 0x6d, 0x35, 0xe5, 0xdb, 0x30, 0xf6, 0x9d, 0xc6, 0xc1, 0xb1, 0x6e, 0xbf, 0x22, 0xa6, 0x4a,
- 0x05, 0xa2, 0xf0, 0x72, 0xe0, 0x1e, 0x91, 0xb5, 0xf0, 0xf2, 0x9e, 0x3d, 0xf5, 0xd2, 0xdd, 0xb6,
- 0x61, 0xae, 0xe4, 0x37, 0xea, 0xce, 0x14, 0xda, 0xf7, 0x01, 0x9c, 0x35, 0x2b, 0x8d, 0x5e, 0x4b,
- 0xae, 0xb9, 0x33, 0x3b, 0x4b, 0x6f, 0x7c, 0x7c, 0x3a, 0x5f, 0x88, 0x32, 0xeb, 0xf5, 0x66, 0xa3,
- 0xd7, 0xba, 0x6e, 0x3e, 0x3c, 0xd2, 0x97, 0x4a, 0x0f, 0x4d, 0xbd, 0xe7, 0xce, 0x7e, 0xe4, 0xbe,
- 0xf5, 0xc8, 0x73, 0x29, 0xcc, 0x73, 0x25, 0xb8, 0x67, 0xba, 0xc5, 0x3f, 0x53, 0xee, 0x69, 0x9f,
- 0xe7, 0x6d, 0xf7, 0x25, 0x21, 0x44, 0x12, 0x87, 0x45, 0x12, 0x9f, 0x37, 0x92, 0x47, 0x6e, 0x7d,
- 0x14, 0x9e, 0x15, 0x0f, 0x7b, 0x56, 0x7c, 0x9e, 0x67, 0xfd, 0xb7, 0x93, 0xad, 0x34, 0x9f, 0xee,
- 0x1a, 0xed, 0x8e, 0xf1, 0xb5, 0xdb, 0x0b, 0xba, 0xd0, 0x2e, 0xa0, 0x18, 0x3f, 0x79, 0x34, 0x8f,
- 0xb4, 0xf7, 0x25, 0xf7, 0xc9, 0x9d, 0x44, 0x7a, 0xba, 0x27, 0xff, 0xba, 0xf4, 0x54, 0x5f, 0x45,
- 0x84, 0x7e, 0x85, 0x60, 0x76, 0xa0, 0x92, 0x3b, 0x61, 0xba, 0xd8, 0x72, 0x6e, 0x8c, 0x5a, 0xce,
- 0x89, 0x83, 0xbf, 0x47, 0xf0, 0x9c, 0x50, 0x5e, 0x1d, 0xf7, 0x96, 0x05, 0xf7, 0x9e, 0x1f, 0x5c,
- 0xc9, 0x56, 0x64, 0xbc, 0x63, 0xe1, 0x15, 0x0c, 0x98, 0x99, 0x29, 0xee, 0x05, 0x01, 0xf7, 0x39,
- 0x6a, 0xe0, 0x13, 0x2e, 0x97, 0x01, 0xc4, 0xed, 0x0e, 0xc4, 0x77, 0xbb, 0xba, 0x2e, 0xab, 0x20,
- 0xed, 0x74, 0x89, 0x87, 0xd3, 0x8e, 0xfd, 0x4e, 0xb7, 0xd4, 0x6d, 0x18, 0x7b, 0xad, 0xba, 0xb4,
- 0xd3, 0x95, 0xaf, 0x02, 0xde, 0x34, 0x9a, 0xc4, 0xa3, 0x19, 0x47, 0x61, 0xd3, 0x68, 0x12, 0x0d,
- 0x4b, 0x26, 0xab, 0x10, 0x7f, 0x43, 0x6f, 0x3c, 0x20, 0x4e, 0x80, 0xa3, 0x63, 0x8d, 0xd4, 0xed,
- 0x71, 0xb2, 0xe0, 0xf7, 0x20, 0xe1, 0x4e, 0x2c, 0x2f, 0x58, 0x16, 0x0f, 0x4c, 0xb2, 0x2c, 0xb1,
- 0xb0, 0xdc, 0x21, 0x6f, 0x2e, 0x5b, 0x2a, 0x2f, 0xc2, 0x58, 0xbd, 0xbd, 0xdf, 0x32, 0xc9, 0xe2,
- 0x83, 0x6a, 0x8e, 0x58, 0xbb, 0x07, 0x13, 0xd4, 0xa3, 0x0b, 0x9e, 0xba, 0xe2, 0x3c, 0x9a, 0x9c,
- 0x62, 0xdf, 0x27, 0xee, 0xbe, 0xa5, 0x33, 0x24, 0xa7, 0x21, 0xf1, 0xa6, 0xd9, 0xf5, 0x8a, 0xbe,
- 0xdb, 0x91, 0xd2, 0x51, 0xed, 0x5d, 0x04, 0x89, 0x8a, 0xae, 0x1f, 0xd9, 0x01, 0xbf, 0x06, 0xf1,
- 0x4a, 0xe7, 0x47, 0x06, 0x71, 0xf0, 0x32, 0x89, 0xa8, 0x25, 0x26, 0x31, 0xb5, 0xc5, 0xf2, 0x35,
- 0x36, 0xee, 0xcf, 0xd2, 0xb8, 0x33, 0x7a, 0x76, 0xec, 0x35, 0x2e, 0xf6, 0x04, 0x40, 0x4b, 0x69,
- 0x20, 0xfe, 0x37, 0x60, 0x92, 0x59, 0x45, 0xce, 0x10, 0x37, 0x24, 0xd1, 0x90, 0x8d, 0x95, 0xa5,
- 0xa1, 0xe9, 0x70, 0x89, 0x5b, 0xd8, 0x32, 0x65, 0x42, 0x1c, 0x60, 0x6a, 0x87, 0x39, 0xcb, 0x87,
- 0xd9, 0x5f, 0x95, 0x84, 0x3a, 0xe7, 0xc4, 0xc8, 0x0e, 0xf7, 0x82, 0x43, 0xce, 0x60, 0x10, 0xad,
- 0xbf, 0xb5, 0x31, 0xc0, 0xb5, 0xf6, 0x81, 0xf6, 0x2a, 0x80, 0x93, 0xf2, 0x55, 0xe3, 0xf8, 0x50,
- 0xc8, 0xba, 0x69, 0x37, 0xc0, 0xbb, 0x2d, 0x7d, 0x57, 0xef, 0xd9, 0x2a, 0x7c, 0x3f, 0x65, 0x15,
- 0x18, 0x70, 0x52, 0xcc, 0xb6, 0x7f, 0x29, 0xd4, 0xde, 0xb7, 0x13, 0xb3, 0x54, 0x15, 0x47, 0xf5,
- 0x9e, 0x6e, 0x6e, 0x1a, 0x1d, 0xb3, 0xa5, 0x77, 0x05, 0x8b, 0xbc, 0xbc, 0xca, 0x25, 0xec, 0x74,
- 0xfe, 0x05, 0x6a, 0x11, 0x68, 0xb4, 0xaa, 0x7d, 0x68, 0x3b, 0x68, 0xb5, 0x02, 0x03, 0x0f, 0x88,
- 0x23, 0x3c, 0xa0, 0xbc, 0xce, 0xf5, 0x6f, 0x43, 0xdc, 0x14, 0x3e, 0x2d, 0x6f, 0x72, 0xdf, 0x39,
- 0xc3, 0x9d, 0xe5, 0xbf, 0x31, 0xdd, 0x98, 0xba, 0x2e, 0xbf, 0x14, 0xea, 0x72, 0x40, 0x77, 0x3b,
- 0x6a, 0x4c, 0x71, 0xd4, 0x98, 0xfe, 0x89, 0x76, 0x1c, 0xd6, 0x70, 0x45, 0x7f, 0xd0, 0x38, 0x3e,
- 0x30, 0xe5, 0x97, 0x43, 0xb1, 0x2f, 0xa2, 0x32, 0x75, 0xb5, 0x10, 0x15, 0xfe, 0xa2, 0x54, 0x2a,
- 0x51, 0x77, 0x6f, 0x8c, 0x40, 0x81, 0xa2, 0x54, 0x2e, 0xd3, 0xb2, 0x9d, 0x78, 0xef, 0xd1, 0x3c,
- 0xfa, 0xe0, 0xd1, 0x7c, 0x4c, 0xfb, 0x1d, 0x82, 0xcb, 0x44, 0x93, 0x21, 0xee, 0x75, 0xc1, 0xf9,
- 0x2b, 0x6e, 0xcd, 0xf0, 0x8b, 0xc0, 0x7f, 0x8d, 0xbc, 0x7f, 0x45, 0xa0, 0x0c, 0xf8, 0xea, 0xc6,
- 0x3b, 0x17, 0xc9, 0xe5, 0x22, 0xaa, 0xfe, 0xef, 0x63, 0x7e, 0x0f, 0xc6, 0x76, 0xdb, 0x87, 0x7a,
- 0xd7, 0x7a, 0x13, 0x58, 0x7f, 0x38, 0x2e, 0xbb, 0x87, 0x39, 0xce, 0x90, 0x2b, 0x73, 0x9c, 0xe3,
- 0x64, 0x79, 0x59, 0x81, 0x78, 0xa5, 0x61, 0x36, 0x6c, 0x0f, 0xa6, 0x68, 0x7d, 0x6d, 0x98, 0x0d,
- 0x6d, 0x15, 0xa6, 0xb6, 0x1f, 0x56, 0xdf, 0x36, 0x75, 0xa3, 0xd9, 0xb8, 0x7f, 0x20, 0x9e, 0x81,
- 0xba, 0xfd, 0xea, 0x4a, 0x76, 0x2c, 0xd1, 0x4c, 0x9e, 0xa0, 0x62, 0xdc, 0xf6, 0xe7, 0x2d, 0x98,
- 0xde, 0xb1, 0xdc, 0xb6, 0xed, 0x38, 0x33, 0x67, 0x75, 0x4c, 0x1f, 0x5e, 0x68, 0xca, 0xb0, 0xd7,
- 0x94, 0xa5, 0x01, 0x6d, 0xf3, 0xad, 0x13, 0xeb, 0x47, 0x1d, 0x6d, 0x67, 0xe3, 0x89, 0xe9, 0xe4,
- 0xe5, 0x6c, 0x3c, 0x01, 0xc9, 0x4b, 0x64, 0xdd, 0xbf, 0x61, 0x48, 0x3a, 0xad, 0x4e, 0x45, 0x7f,
- 0xd0, 0x36, 0xda, 0xe6, 0x60, 0xbf, 0x4a, 0x3d, 0x96, 0xbf, 0x09, 0x13, 0x56, 0x48, 0xed, 0x5f,
- 0x04, 0xb0, 0xab, 0xa4, 0x45, 0x11, 0xa6, 0x20, 0x03, 0x36, 0x75, 0x3c, 0x1b, 0xf9, 0x16, 0xe0,
- 0x5a, 0x6d, 0x9b, 0xbc, 0xdc, 0x0a, 0x43, 0x4d, 0xb7, 0xf5, 0x5e, 0xaf, 0xb1, 0xaf, 0x93, 0x5f,
- 0x64, 0xac, 0xb7, 0x5f, 0xb7, 0x26, 0x90, 0x0b, 0x20, 0xd5, 0xb6, 0x49, 0xc3, 0xbb, 0x10, 0x65,
- 0x9a, 0xba, 0x54, 0xdb, 0x4e, 0xfd, 0x05, 0xc1, 0x25, 0x6e, 0x54, 0xd6, 0x60, 0xca, 0x19, 0x60,
- 0x1e, 0x77, 0xbc, 0xce, 0x8d, 0xb9, 0x3e, 0x4b, 0xe7, 0xf4, 0x39, 0xb5, 0x09, 0x33, 0xc2, 0xb8,
- 0xbc, 0x04, 0x32, 0x3b, 0x44, 0x9c, 0x00, 0xbb, 0xa1, 0xf6, 0x91, 0x68, 0xff, 0x07, 0xe0, 0xc5,
- 0x55, 0x9e, 0x81, 0xc9, 0xdd, 0x7b, 0x77, 0xaa, 0x3f, 0xa8, 0x55, 0xdf, 0xdc, 0xad, 0x56, 0x92,
- 0x48, 0xfb, 0x03, 0x82, 0x49, 0xd2, 0xb6, 0xee, 0x75, 0x8e, 0x74, 0xb9, 0x04, 0x68, 0x93, 0xf0,
- 0xe1, 0xe9, 0xfc, 0x46, 0x9b, 0xf2, 0x32, 0xa0, 0x52, 0x74, 0xa8, 0x51, 0x49, 0xce, 0x03, 0x2a,
- 0x13, 0x80, 0xa3, 0x21, 0x83, 0xca, 0xda, 0xbf, 0x30, 0x3c, 0xcb, 0xb6, 0xd1, 0x6e, 0x3d, 0xb9,
- 0xca, 0x7f, 0x37, 0x15, 0x27, 0x56, 0xf2, 0xab, 0x85, 0x25, 0xeb, 0x1f, 0x4a, 0x49, 0x8d, 0xff,
- 0x84, 0x2a, 0x02, 0x55, 0x59, 0x09, 0xba, 0x27, 0x52, 0x8c, 0x33, 0x33, 0x0c, 0xdc, 0x13, 0xe1,
- 0xa4, 0x03, 0xf7, 0x44, 0x38, 0xe9, 0xc0, 0x3d, 0x11, 0x4e, 0x3a, 0x70, 0x16, 0xc0, 0x49, 0x07,
- 0xee, 0x89, 0x70, 0xd2, 0x81, 0x7b, 0x22, 0x9c, 0x74, 0xf0, 0x9e, 0x08, 0x11, 0x07, 0xde, 0x13,
- 0xe1, 0xe5, 0x83, 0xf7, 0x44, 0x78, 0xf9, 0xe0, 0x3d, 0x91, 0x62, 0xdc, 0xec, 0x1e, 0xeb, 0xc1,
- 0xa7, 0x0e, 0xbc, 0xfd, 0xb0, 0x8f, 0x40, 0xaf, 0x02, 0xef, 0xc0, 0x8c, 0xb3, 0x21, 0x51, 0xee,
- 0x18, 0x66, 0xa3, 0x6d, 0xe8, 0x5d, 0xf9, 0x1b, 0x30, 0xe5, 0x0c, 0x39, 0x9f, 0x39, 0x7e, 0x9f,
- 0x81, 0x8e, 0x9c, 0xd4, 0x5b, 0x4e, 0x5b, 0xfb, 0x32, 0x0e, 0xb3, 0xce, 0x40, 0xad, 0x71, 0xa8,
- 0x73, 0xb7, 0x8c, 0x16, 0x85, 0x33, 0xa5, 0x69, 0xcb, 0xbc, 0x7f, 0x3a, 0xef, 0x8c, 0x6e, 0x52,
- 0x36, 0x2d, 0x0a, 0xa7, 0x4b, 0xbc, 0x9e, 0xf7, 0x02, 0x5a, 0x14, 0x6e, 0x1e, 0xf1, 0x7a, 0xf4,
- 0x7d, 0x43, 0xf5, 0xdc, 0x3b, 0x48, 0xbc, 0x5e, 0x85, 0xb2, 0x6c, 0x51, 0xb8, 0x8d, 0xc4, 0xeb,
- 0x55, 0x29, 0xdf, 0x16, 0x85, 0xb3, 0x27, 0x5e, 0xef, 0x16, 0x65, 0xde, 0xa2, 0x70, 0x0a, 0xc5,
- 0xeb, 0x7d, 0x8b, 0x72, 0x70, 0x51, 0xb8, 0xab, 0xc4, 0xeb, 0xbd, 0x4e, 0xd9, 0xb8, 0x28, 0xdc,
- 0x5a, 0xe2, 0xf5, 0xb6, 0x28, 0x2f, 0x33, 0xe2, 0xfd, 0x25, 0x5e, 0xf1, 0xb6, 0xc7, 0xd0, 0x8c,
- 0x78, 0x93, 0x89, 0xd7, 0xfc, 0xb6, 0xc7, 0xd5, 0x8c, 0x78, 0xa7, 0x89, 0xd7, 0x7c, 0xc3, 0x63,
- 0x6d, 0x46, 0x3c, 0x2b, 0xe3, 0x35, 0xb7, 0x3d, 0xfe, 0x66, 0xc4, 0x53, 0x33, 0x5e, 0xb3, 0xe6,
- 0x31, 0x39, 0x23, 0x9e, 0x9f, 0xf1, 0x9a, 0x3b, 0xde, 0x26, 0xfa, 0x47, 0x02, 0xfd, 0x98, 0x5b,
- 0x50, 0x9a, 0x40, 0x3f, 0xf0, 0xa1, 0x9e, 0x50, 0xc8, 0x18, 0x1d, 0x8f, 0x76, 0x9a, 0x40, 0x3b,
- 0xf0, 0xa1, 0x9c, 0x26, 0x50, 0x0e, 0x7c, 0xe8, 0xa6, 0x09, 0x74, 0x03, 0x1f, 0xaa, 0x69, 0x02,
- 0xd5, 0xc0, 0x87, 0x66, 0x9a, 0x40, 0x33, 0xf0, 0xa1, 0x98, 0x26, 0x50, 0x0c, 0x7c, 0xe8, 0xa5,
- 0x09, 0xf4, 0x02, 0x1f, 0x6a, 0x2d, 0x88, 0xd4, 0x02, 0x3f, 0x5a, 0x2d, 0x88, 0xb4, 0x02, 0x3f,
- 0x4a, 0xbd, 0x28, 0x52, 0x6a, 0xa2, 0x7f, 0x3a, 0x3f, 0x66, 0x0d, 0x31, 0x6c, 0x5a, 0x10, 0xd9,
- 0x04, 0x7e, 0x4c, 0x5a, 0x10, 0x99, 0x04, 0x7e, 0x2c, 0x5a, 0x10, 0x59, 0x04, 0x7e, 0x0c, 0x7a,
- 0x2c, 0x32, 0xc8, 0xbb, 0xe3, 0xa3, 0x09, 0x47, 0x8a, 0x61, 0x0c, 0xc2, 0x11, 0x18, 0x84, 0x23,
- 0x30, 0x08, 0x47, 0x60, 0x10, 0x8e, 0xc0, 0x20, 0x1c, 0x81, 0x41, 0x38, 0x02, 0x83, 0x70, 0x04,
- 0x06, 0xe1, 0x28, 0x0c, 0xc2, 0x91, 0x18, 0x84, 0x83, 0x18, 0xb4, 0x20, 0xde, 0x78, 0x00, 0xbf,
- 0x82, 0xb4, 0x20, 0x1e, 0x7d, 0x86, 0x53, 0x08, 0x47, 0xa2, 0x10, 0x0e, 0xa2, 0xd0, 0x47, 0x18,
- 0x9e, 0xe5, 0x28, 0x44, 0xce, 0x87, 0x2e, 0xaa, 0x02, 0xad, 0x47, 0xb8, 0x60, 0xe1, 0xc7, 0xa9,
- 0xf5, 0x08, 0x87, 0xd4, 0xc3, 0x78, 0x36, 0x58, 0x85, 0xaa, 0x11, 0xaa, 0xd0, 0x2d, 0xca, 0xa1,
- 0xf5, 0x08, 0x17, 0x2f, 0x06, 0xb9, 0xb7, 0x31, 0xac, 0x08, 0xbc, 0x1e, 0xa9, 0x08, 0x6c, 0x45,
- 0x2a, 0x02, 0xb7, 0x3d, 0x04, 0x7f, 0x2a, 0xc1, 0x73, 0x1e, 0x82, 0xce, 0x5f, 0xbb, 0x0f, 0x8f,
- 0xac, 0x12, 0xe0, 0x1d, 0x51, 0xc9, 0xee, 0xb1, 0x0d, 0x03, 0xa3, 0xb4, 0xd5, 0x94, 0xef, 0xf0,
- 0x87, 0x55, 0xc5, 0x51, 0x0f, 0x70, 0x18, 0xc4, 0xc9, 0x66, 0xe8, 0x02, 0xe0, 0xad, 0x66, 0xcf,
- 0xae, 0x16, 0x7e, 0xcb, 0x96, 0xeb, 0x96, 0x58, 0xae, 0xc3, 0xb8, 0xad, 0xde, 0xb3, 0xe1, 0x3d,
- 0xcf, 0xc2, 0x95, 0x3a, 0x99, 0x49, 0x7b, 0x8c, 0x20, 0xcd, 0x51, 0xf9, 0x62, 0x8e, 0x0c, 0x5e,
- 0x89, 0x74, 0x64, 0xc0, 0x25, 0x88, 0x77, 0x7c, 0xf0, 0xff, 0x83, 0x27, 0xd5, 0x6c, 0x96, 0x88,
- 0x47, 0x09, 0x3f, 0x81, 0x69, 0xef, 0x09, 0xec, 0x6f, 0xb6, 0xb5, 0xf0, 0xdd, 0x4c, 0xbf, 0xd4,
- 0x5c, 0x13, 0x76, 0xd1, 0x86, 0x9a, 0xd1, 0x6c, 0xd5, 0x8a, 0x30, 0x53, 0xeb, 0xd8, 0x3b, 0x00,
- 0xbd, 0x76, 0xc7, 0xe8, 0x6d, 0x37, 0x8e, 0xc2, 0x36, 0x23, 0x12, 0x56, 0x6b, 0x7e, 0xf2, 0xeb,
- 0xf9, 0x98, 0xf6, 0x32, 0x4c, 0xdd, 0x35, 0xba, 0xfa, 0x5e, 0x67, 0xdf, 0x68, 0xff, 0x58, 0x6f,
- 0x0a, 0x86, 0x13, 0xae, 0x61, 0x31, 0xfe, 0xc4, 0xd2, 0xfe, 0x05, 0x82, 0x2b, 0xac, 0xfa, 0x77,
- 0xdb, 0x66, 0x6b, 0xcb, 0xb0, 0x7a, 0xfa, 0x57, 0x21, 0xa1, 0x13, 0xe0, 0xec, 0x77, 0xd7, 0xa4,
- 0xfb, 0x1d, 0xe9, 0xab, 0xbe, 0x64, 0xff, 0x5b, 0xa7, 0x26, 0xc2, 0x2e, 0x88, 0xbb, 0x6c, 0x3e,
- 0x75, 0x0d, 0xc6, 0x9c, 0xf9, 0x79, 0xbf, 0x2e, 0x09, 0x7e, 0xfd, 0xd6, 0xc7, 0x2f, 0x9b, 0x47,
- 0xf2, 0x6d, 0xce, 0x2f, 0xe6, 0x73, 0xd5, 0x57, 0x7d, 0xc9, 0x25, 0x5f, 0x29, 0x61, 0xf5, 0x7f,
- 0x36, 0xa3, 0xc2, 0x9d, 0xcc, 0x40, 0xa2, 0x2a, 0xea, 0xf8, 0xfb, 0x59, 0x81, 0x78, 0xad, 0xd3,
- 0xd4, 0xe5, 0xe7, 0x60, 0xec, 0x8d, 0xc6, 0x7d, 0xfd, 0x80, 0x04, 0xd9, 0xf9, 0x21, 0x2f, 0x42,
- 0xa2, 0xdc, 0x6a, 0x1f, 0x34, 0xbb, 0xba, 0x41, 0xce, 0xec, 0xc9, 0x16, 0xba, 0x65, 0x53, 0xa7,
- 0x32, 0xad, 0x0c, 0x97, 0x6b, 0x1d, 0xa3, 0xf4, 0xd0, 0x64, 0xeb, 0xc6, 0x92, 0x90, 0x22, 0xe4,
- 0xcc, 0xe7, 0x8e, 0x95, 0x8d, 0x96, 0x42, 0x69, 0xec, 0xe3, 0xd3, 0x79, 0xb4, 0x4b, 0xf7, 0xcf,
- 0xb7, 0xe1, 0x79, 0x92, 0x3e, 0x03, 0x53, 0xe5, 0xc3, 0xa6, 0x9a, 0x20, 0xe7, 0xd4, 0xcc, 0x74,
- 0x5b, 0xd6, 0x74, 0x86, 0xef, 0x74, 0x4f, 0xe7, 0x99, 0xd5, 0x14, 0x0d, 0xf5, 0x0c, 0x8f, 0xe4,
- 0x99, 0xef, 0x74, 0x4b, 0x61, 0xd3, 0x09, 0x9e, 0xbd, 0x08, 0x13, 0x54, 0xc6, 0xb0, 0x81, 0xcd,
- 0x94, 0x7c, 0x56, 0x83, 0x49, 0x26, 0x61, 0xe5, 0x31, 0x40, 0x9b, 0xc9, 0x98, 0xf5, 0x5f, 0x29,
- 0x89, 0xac, 0xff, 0xca, 0x49, 0x29, 0x7b, 0x0d, 0x66, 0x84, 0xfd, 0x4b, 0x4b, 0x52, 0x49, 0x82,
- 0xf5, 0x5f, 0x35, 0x39, 0x99, 0x8a, 0xbf, 0xf7, 0x1b, 0x35, 0x96, 0x7d, 0x05, 0xe4, 0xc1, 0x9d,
- 0x4e, 0x79, 0x1c, 0xa4, 0x4d, 0x6b, 0xca, 0xe7, 0x41, 0x2a, 0x95, 0x92, 0x28, 0x35, 0xf3, 0xb3,
- 0x5f, 0xa6, 0x27, 0x4b, 0xba, 0x69, 0xea, 0xdd, 0x7b, 0xba, 0x59, 0x2a, 0x11, 0xe3, 0xd7, 0xe0,
- 0x8a, 0xef, 0x4e, 0xa9, 0x65, 0x5f, 0x2e, 0x3b, 0xf6, 0x95, 0xca, 0x80, 0x7d, 0xa5, 0x62, 0xdb,
- 0xa3, 0xa2, 0x7b, 0xe2, 0xbc, 0x29, 0xfb, 0xec, 0x32, 0x2a, 0x4d, 0xe6, 0x84, 0x7b, 0xb3, 0xf8,
- 0x1a, 0xd1, 0x2d, 0xf9, 0xea, 0xea, 0x21, 0x27, 0xd6, 0xa5, 0x62, 0x99, 0xd8, 0x97, 0x7d, 0xed,
- 0x1f, 0x08, 0xc7, 0xaa, 0xfc, 0x1b, 0x82, 0x4c, 0x52, 0xa6, 0x0e, 0x57, 0x7c, 0x27, 0x69, 0x31,
- 0x97, 0xdd, 0x2b, 0xd4, 0xe1, 0xaa, 0xaf, 0x6e, 0x3b, 0xe4, 0xd2, 0x57, 0xb5, 0xb8, 0x4c, 0x5e,
- 0xf2, 0x9b, 0x2b, 0xf2, 0x15, 0x37, 0x47, 0xb9, 0x0a, 0x4c, 0x02, 0xe4, 0x6a, 0x15, 0xcb, 0xc4,
- 0xa0, 0x14, 0x68, 0x10, 0x1c, 0x25, 0xd7, 0xb2, 0xf8, 0x3a, 0x99, 0xa4, 0x1c, 0x38, 0x49, 0x48,
- 0xa8, 0x5c, 0xf3, 0xd2, 0xee, 0xc9, 0x99, 0x1a, 0x7b, 0x72, 0xa6, 0xc6, 0xfe, 0x71, 0xa6, 0xc6,
- 0x3e, 0x39, 0x53, 0xd1, 0x67, 0x67, 0x2a, 0xfa, 0xfc, 0x4c, 0x45, 0x5f, 0x9c, 0xa9, 0xe8, 0x9d,
- 0xbe, 0x8a, 0x3e, 0xe8, 0xab, 0xe8, 0xc3, 0xbe, 0x8a, 0xfe, 0xd8, 0x57, 0xd1, 0xe3, 0xbe, 0x8a,
- 0x4e, 0xfa, 0x6a, 0xec, 0x49, 0x5f, 0x45, 0x9f, 0xf4, 0x55, 0xf4, 0x59, 0x5f, 0x8d, 0x7d, 0xde,
- 0x57, 0xd1, 0x17, 0x7d, 0x35, 0xf6, 0xce, 0xa7, 0x6a, 0xec, 0xd1, 0xa7, 0x6a, 0xec, 0x83, 0x4f,
- 0x55, 0xf4, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3b, 0xf6, 0x66, 0xae, 0x4e, 0x36, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/proto.pb.go b/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/proto.pb.go
index 775bbfead1..dd54375b92 100644
--- a/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/proto.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/proto.pb.go
@@ -3,12 +3,13 @@
package custombytesnonstruct
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import io "io"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -33,7 +34,7 @@ func (m *Object) Reset() { *m = Object{} }
func (m *Object) String() string { return proto.CompactTextString(m) }
func (*Object) ProtoMessage() {}
func (*Object) Descriptor() ([]byte, []int) {
- return fileDescriptor_proto_ae179068cc9a7711, []int{0}
+ return fileDescriptor_2fcc84b9998d60d8, []int{0}
}
func (m *Object) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -41,8 +42,8 @@ func (m *Object) XXX_Unmarshal(b []byte) error {
func (m *Object) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Object.Marshal(b, m, deterministic)
}
-func (dst *Object) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Object.Merge(dst, src)
+func (m *Object) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Object.Merge(m, src)
}
func (m *Object) XXX_Size() int {
return xxx_messageInfo_Object.Size(m)
@@ -56,6 +57,23 @@ var xxx_messageInfo_Object proto.InternalMessageInfo
func init() {
proto.RegisterType((*Object)(nil), "custombytesnonstruct.Object")
}
+
+func init() { proto.RegisterFile("proto.proto", fileDescriptor_2fcc84b9998d60d8) }
+
+var fileDescriptor_2fcc84b9998d60d8 = []byte{
+ // 147 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2e, 0x28, 0xca, 0x2f,
+ 0xc9, 0xd7, 0x03, 0x93, 0x42, 0x22, 0xc9, 0xa5, 0xc5, 0x25, 0xf9, 0xb9, 0x49, 0x95, 0x25, 0xa9,
+ 0xc5, 0x79, 0xf9, 0x79, 0xc5, 0x25, 0x45, 0xa5, 0xc9, 0x25, 0x52, 0xba, 0xe9, 0x99, 0x25, 0x19,
+ 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0xe9, 0xf9, 0xe9, 0xf9, 0xfa, 0x60, 0xc5, 0x49, 0xa5,
+ 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x0c, 0x51, 0x2a, 0xe0, 0x62, 0xf3, 0x4f, 0xca, 0x4a,
+ 0x4d, 0x2e, 0x11, 0x32, 0xe2, 0xe2, 0x71, 0x06, 0x1b, 0xe8, 0x96, 0x99, 0x9a, 0x93, 0x62, 0x28,
+ 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0xe3, 0xc4, 0x77, 0xeb, 0x9e, 0x3c, 0x17, 0x44, 0x3c, 0xa4, 0xb2,
+ 0x20, 0x35, 0x08, 0x45, 0x0d, 0x9a, 0x1e, 0x23, 0x09, 0x26, 0x05, 0x66, 0x02, 0x7a, 0x8c, 0x9c,
+ 0x58, 0x2e, 0x3c, 0x92, 0x63, 0x04, 0x04, 0x00, 0x00, 0xff, 0xff, 0xdd, 0xc6, 0xf3, 0xe3, 0xca,
+ 0x00, 0x00, 0x00,
+}
+
func (m *Object) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -71,7 +89,7 @@ func (m *Object) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -99,7 +117,7 @@ func (m *Object) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -108,6 +126,9 @@ func (m *Object) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthProto
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthProto
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -131,7 +152,7 @@ func (m *Object) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -140,6 +161,9 @@ func (m *Object) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthProto
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthProto
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -158,6 +182,9 @@ func (m *Object) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthProto
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthProto
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -225,10 +252,13 @@ func skipProto(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthProto
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthProto
+ }
return iNdEx, nil
case 3:
for {
@@ -257,6 +287,9 @@ func skipProto(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthProto
+ }
}
return iNdEx, nil
case 4:
@@ -275,19 +308,3 @@ var (
ErrInvalidLengthProto = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowProto = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("proto.proto", fileDescriptor_proto_ae179068cc9a7711) }
-
-var fileDescriptor_proto_ae179068cc9a7711 = []byte{
- // 147 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2e, 0x28, 0xca, 0x2f,
- 0xc9, 0xd7, 0x03, 0x93, 0x42, 0x22, 0xc9, 0xa5, 0xc5, 0x25, 0xf9, 0xb9, 0x49, 0x95, 0x25, 0xa9,
- 0xc5, 0x79, 0xf9, 0x79, 0xc5, 0x25, 0x45, 0xa5, 0xc9, 0x25, 0x52, 0xba, 0xe9, 0x99, 0x25, 0x19,
- 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0xe9, 0xf9, 0xe9, 0xf9, 0xfa, 0x60, 0xc5, 0x49, 0xa5,
- 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x0c, 0x51, 0x2a, 0xe0, 0x62, 0xf3, 0x4f, 0xca, 0x4a,
- 0x4d, 0x2e, 0x11, 0x32, 0xe2, 0xe2, 0x71, 0x06, 0x1b, 0xe8, 0x96, 0x99, 0x9a, 0x93, 0x62, 0x28,
- 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0xe3, 0xc4, 0x77, 0xeb, 0x9e, 0x3c, 0x17, 0x44, 0x3c, 0xa4, 0xb2,
- 0x20, 0x35, 0x08, 0x45, 0x0d, 0x9a, 0x1e, 0x23, 0x09, 0x26, 0x05, 0x66, 0x02, 0x7a, 0x8c, 0x9c,
- 0x58, 0x2e, 0x3c, 0x92, 0x63, 0x04, 0x04, 0x00, 0x00, 0xff, 0xff, 0xdd, 0xc6, 0xf3, 0xe3, 0xca,
- 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/data/data.pb.go b/vendor/github.com/gogo/protobuf/test/data/data.pb.go
index 37b0528ccc..7b3616271c 100644
--- a/vendor/github.com/gogo/protobuf/test/data/data.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/data/data.pb.go
@@ -3,17 +3,16 @@
package data
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -36,7 +35,7 @@ type MyMessage struct {
func (m *MyMessage) Reset() { *m = MyMessage{} }
func (*MyMessage) ProtoMessage() {}
func (*MyMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_data_ad073f7719d49453, []int{0}
+ return fileDescriptor_871986018790d2fd, []int{0}
}
func (m *MyMessage) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -53,8 +52,8 @@ func (m *MyMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *MyMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MyMessage.Merge(dst, src)
+func (m *MyMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MyMessage.Merge(m, src)
}
func (m *MyMessage) XXX_Size() int {
return m.Size()
@@ -75,6 +74,23 @@ func (m *MyMessage) GetMyData() uint32 {
func init() {
proto.RegisterType((*MyMessage)(nil), "data.MyMessage")
}
+
+func init() { proto.RegisterFile("data.proto", fileDescriptor_871986018790d2fd) }
+
+var fileDescriptor_871986018790d2fd = []byte{
+ // 160 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4a, 0x49, 0x2c, 0x49,
+ 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x01, 0xb1, 0xa5, 0x74, 0xd3, 0x33, 0x4b, 0x32,
+ 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0x92, 0x49, 0xa5,
+ 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x34, 0x29, 0xa9, 0x70, 0x71, 0xfa, 0x56, 0xfa, 0xa6,
+ 0x16, 0x17, 0x27, 0xa6, 0xa7, 0x0a, 0x89, 0x73, 0xb1, 0xe7, 0x56, 0xc6, 0x83, 0x8c, 0x91, 0x60,
+ 0x54, 0x60, 0xd4, 0xe0, 0x0d, 0x62, 0xcb, 0xad, 0x74, 0x49, 0x2c, 0x49, 0x74, 0xd2, 0xb9, 0xf1,
+ 0x50, 0x8e, 0xe1, 0xc1, 0x43, 0x39, 0xc6, 0x0f, 0x0f, 0xe5, 0x18, 0x7f, 0x3c, 0x94, 0x63, 0x6c,
+ 0x78, 0x24, 0xc7, 0xb8, 0xe2, 0x91, 0x1c, 0xe3, 0x8e, 0x47, 0x72, 0x8c, 0x07, 0x1e, 0xc9, 0x31,
+ 0x9e, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x49, 0x6c, 0x60,
+ 0xa3, 0x8d, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x4f, 0xfb, 0xa7, 0x9d, 0x00, 0x00, 0x00,
+}
+
func (this *MyMessage) VerboseEqual(that interface{}) error {
if that == nil {
if this == nil {
@@ -334,7 +350,7 @@ func (m *MyMessage) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -362,7 +378,7 @@ func (m *MyMessage) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.MyData |= (uint32(b) & 0x7F) << shift
+ m.MyData |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -376,6 +392,9 @@ func (m *MyMessage) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthData
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthData
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -443,10 +462,13 @@ func skipData(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthData
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthData
+ }
return iNdEx, nil
case 3:
for {
@@ -475,6 +497,9 @@ func skipData(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthData
+ }
}
return iNdEx, nil
case 4:
@@ -493,19 +518,3 @@ var (
ErrInvalidLengthData = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowData = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("data.proto", fileDescriptor_data_ad073f7719d49453) }
-
-var fileDescriptor_data_ad073f7719d49453 = []byte{
- // 160 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4a, 0x49, 0x2c, 0x49,
- 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x01, 0xb1, 0xa5, 0x74, 0xd3, 0x33, 0x4b, 0x32,
- 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0x92, 0x49, 0xa5,
- 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x34, 0x29, 0xa9, 0x70, 0x71, 0xfa, 0x56, 0xfa, 0xa6,
- 0x16, 0x17, 0x27, 0xa6, 0xa7, 0x0a, 0x89, 0x73, 0xb1, 0xe7, 0x56, 0xc6, 0x83, 0x8c, 0x91, 0x60,
- 0x54, 0x60, 0xd4, 0xe0, 0x0d, 0x62, 0xcb, 0xad, 0x74, 0x49, 0x2c, 0x49, 0x74, 0xd2, 0xb9, 0xf1,
- 0x50, 0x8e, 0xe1, 0xc1, 0x43, 0x39, 0xc6, 0x0f, 0x0f, 0xe5, 0x18, 0x7f, 0x3c, 0x94, 0x63, 0x6c,
- 0x78, 0x24, 0xc7, 0xb8, 0xe2, 0x91, 0x1c, 0xe3, 0x8e, 0x47, 0x72, 0x8c, 0x07, 0x1e, 0xc9, 0x31,
- 0x9e, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x49, 0x6c, 0x60,
- 0xa3, 0x8d, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x4f, 0xfb, 0xa7, 0x9d, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/deterministic/deterministic.pb.go b/vendor/github.com/gogo/protobuf/test/deterministic/deterministic.pb.go
index 86e7b86438..6595dd366d 100644
--- a/vendor/github.com/gogo/protobuf/test/deterministic/deterministic.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/deterministic/deterministic.pb.go
@@ -3,14 +3,14 @@
package deterministic
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
-
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -34,7 +34,7 @@ func (m *OrderedMap) Reset() { *m = OrderedMap{} }
func (m *OrderedMap) String() string { return proto.CompactTextString(m) }
func (*OrderedMap) ProtoMessage() {}
func (*OrderedMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_deterministic_f6340fb8decdd007, []int{0}
+ return fileDescriptor_c4c11acb40b6bc2e, []int{0}
}
func (m *OrderedMap) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OrderedMap.Unmarshal(m, b)
@@ -47,8 +47,8 @@ func (m *OrderedMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
}
return b[:n], nil
}
-func (dst *OrderedMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OrderedMap.Merge(dst, src)
+func (m *OrderedMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OrderedMap.Merge(m, src)
}
func (m *OrderedMap) XXX_Size() int {
return m.Size()
@@ -77,7 +77,7 @@ func (m *UnorderedMap) Reset() { *m = UnorderedMap{} }
func (m *UnorderedMap) String() string { return proto.CompactTextString(m) }
func (*UnorderedMap) ProtoMessage() {}
func (*UnorderedMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_deterministic_f6340fb8decdd007, []int{1}
+ return fileDescriptor_c4c11acb40b6bc2e, []int{1}
}
func (m *UnorderedMap) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UnorderedMap.Unmarshal(m, b)
@@ -94,8 +94,8 @@ func (m *UnorderedMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *UnorderedMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnorderedMap.Merge(dst, src)
+func (m *UnorderedMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnorderedMap.Merge(m, src)
}
func (m *UnorderedMap) XXX_Size() int {
return m.Size()
@@ -124,7 +124,7 @@ func (m *MapNoMarshaler) Reset() { *m = MapNoMarshaler{} }
func (m *MapNoMarshaler) String() string { return proto.CompactTextString(m) }
func (*MapNoMarshaler) ProtoMessage() {}
func (*MapNoMarshaler) Descriptor() ([]byte, []int) {
- return fileDescriptor_deterministic_f6340fb8decdd007, []int{2}
+ return fileDescriptor_c4c11acb40b6bc2e, []int{2}
}
func (m *MapNoMarshaler) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MapNoMarshaler.Unmarshal(m, b)
@@ -132,8 +132,8 @@ func (m *MapNoMarshaler) XXX_Unmarshal(b []byte) error {
func (m *MapNoMarshaler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MapNoMarshaler.Marshal(b, m, deterministic)
}
-func (dst *MapNoMarshaler) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MapNoMarshaler.Merge(dst, src)
+func (m *MapNoMarshaler) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MapNoMarshaler.Merge(m, src)
}
func (m *MapNoMarshaler) XXX_Size() int {
return xxx_messageInfo_MapNoMarshaler.Size(m)
@@ -163,7 +163,7 @@ func (m *NestedOrderedMap) Reset() { *m = NestedOrderedMap{} }
func (m *NestedOrderedMap) String() string { return proto.CompactTextString(m) }
func (*NestedOrderedMap) ProtoMessage() {}
func (*NestedOrderedMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_deterministic_f6340fb8decdd007, []int{3}
+ return fileDescriptor_c4c11acb40b6bc2e, []int{3}
}
func (m *NestedOrderedMap) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NestedOrderedMap.Unmarshal(m, b)
@@ -176,8 +176,8 @@ func (m *NestedOrderedMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, er
}
return b[:n], nil
}
-func (dst *NestedOrderedMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedOrderedMap.Merge(dst, src)
+func (m *NestedOrderedMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedOrderedMap.Merge(m, src)
}
func (m *NestedOrderedMap) XXX_Size() int {
return m.Size()
@@ -213,7 +213,7 @@ func (m *NestedMap1) Reset() { *m = NestedMap1{} }
func (m *NestedMap1) String() string { return proto.CompactTextString(m) }
func (*NestedMap1) ProtoMessage() {}
func (*NestedMap1) Descriptor() ([]byte, []int) {
- return fileDescriptor_deterministic_f6340fb8decdd007, []int{4}
+ return fileDescriptor_c4c11acb40b6bc2e, []int{4}
}
func (m *NestedMap1) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NestedMap1.Unmarshal(m, b)
@@ -226,8 +226,8 @@ func (m *NestedMap1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
}
return b[:n], nil
}
-func (dst *NestedMap1) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedMap1.Merge(dst, src)
+func (m *NestedMap1) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedMap1.Merge(m, src)
}
func (m *NestedMap1) XXX_Size() int {
return m.Size()
@@ -257,7 +257,7 @@ func (m *NestedUnorderedMap) Reset() { *m = NestedUnorderedMap{} }
func (m *NestedUnorderedMap) String() string { return proto.CompactTextString(m) }
func (*NestedUnorderedMap) ProtoMessage() {}
func (*NestedUnorderedMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_deterministic_f6340fb8decdd007, []int{5}
+ return fileDescriptor_c4c11acb40b6bc2e, []int{5}
}
func (m *NestedUnorderedMap) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NestedUnorderedMap.Unmarshal(m, b)
@@ -274,8 +274,8 @@ func (m *NestedUnorderedMap) XXX_Marshal(b []byte, deterministic bool) ([]byte,
return b[:n], nil
}
}
-func (dst *NestedUnorderedMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedUnorderedMap.Merge(dst, src)
+func (m *NestedUnorderedMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedUnorderedMap.Merge(m, src)
}
func (m *NestedUnorderedMap) XXX_Size() int {
return m.Size()
@@ -311,7 +311,7 @@ func (m *NestedMap2) Reset() { *m = NestedMap2{} }
func (m *NestedMap2) String() string { return proto.CompactTextString(m) }
func (*NestedMap2) ProtoMessage() {}
func (*NestedMap2) Descriptor() ([]byte, []int) {
- return fileDescriptor_deterministic_f6340fb8decdd007, []int{6}
+ return fileDescriptor_c4c11acb40b6bc2e, []int{6}
}
func (m *NestedMap2) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NestedMap2.Unmarshal(m, b)
@@ -328,8 +328,8 @@ func (m *NestedMap2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *NestedMap2) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedMap2.Merge(dst, src)
+func (m *NestedMap2) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedMap2.Merge(m, src)
}
func (m *NestedMap2) XXX_Size() int {
return m.Size()
@@ -363,6 +363,38 @@ func init() {
proto.RegisterType((*NestedMap2)(nil), "deterministic.NestedMap2")
proto.RegisterMapType((map[string]string)(nil), "deterministic.NestedMap2.NestedStringMapEntry")
}
+
+func init() { proto.RegisterFile("deterministic.proto", fileDescriptor_c4c11acb40b6bc2e) }
+
+var fileDescriptor_c4c11acb40b6bc2e = []byte{
+ // 385 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4e, 0x49, 0x2d, 0x49,
+ 0x2d, 0xca, 0xcd, 0xcc, 0xcb, 0x2c, 0x2e, 0xc9, 0x4c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17,
+ 0xe2, 0x45, 0x11, 0x94, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5,
+ 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0xab, 0x4a, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b,
+ 0xa2, 0x5b, 0x69, 0x0e, 0x23, 0x17, 0x97, 0x7f, 0x51, 0x4a, 0x6a, 0x51, 0x6a, 0x8a, 0x6f, 0x62,
+ 0x81, 0x90, 0x1b, 0x17, 0x67, 0x70, 0x49, 0x51, 0x66, 0x5e, 0xba, 0x6f, 0x62, 0x81, 0x04, 0xa3,
+ 0x02, 0xb3, 0x06, 0xb7, 0x91, 0x86, 0x1e, 0xaa, 0xad, 0x08, 0xd5, 0x7a, 0x70, 0xa5, 0xae, 0x79,
+ 0x25, 0x45, 0x95, 0x41, 0x08, 0xad, 0x52, 0x36, 0x5c, 0x7c, 0xa8, 0x92, 0x42, 0x02, 0x5c, 0xcc,
+ 0xd9, 0xa9, 0x95, 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0x9c, 0x41, 0x20, 0xa6, 0x90, 0x08, 0x17, 0x6b,
+ 0x59, 0x62, 0x4e, 0x69, 0xaa, 0x04, 0x13, 0x58, 0x0c, 0xc2, 0xb1, 0x62, 0xb2, 0x60, 0xb4, 0xe2,
+ 0xe8, 0x58, 0x28, 0xcf, 0x38, 0x63, 0xa1, 0x3c, 0xa3, 0xd2, 0x02, 0x46, 0x2e, 0x9e, 0xd0, 0xbc,
+ 0x7c, 0x84, 0x03, 0x3d, 0x30, 0x1d, 0xa8, 0x85, 0xe6, 0x40, 0x64, 0xf5, 0x34, 0x77, 0x22, 0x03,
+ 0xc8, 0x89, 0x7c, 0xbe, 0x89, 0x05, 0x7e, 0xf9, 0xbe, 0x89, 0x45, 0xc5, 0x19, 0x89, 0x39, 0xa9,
+ 0x45, 0x42, 0x5e, 0x98, 0x8e, 0xd4, 0x41, 0x73, 0x24, 0xaa, 0x0e, 0x9a, 0x39, 0x93, 0xa5, 0x03,
+ 0xe4, 0xc4, 0x87, 0x8c, 0x5c, 0x02, 0x7e, 0xa9, 0xc5, 0x25, 0xa9, 0x29, 0x48, 0x51, 0xed, 0x83,
+ 0xe9, 0x48, 0x3d, 0x34, 0x47, 0xa2, 0xeb, 0xc1, 0xed, 0x4c, 0x21, 0x73, 0x2e, 0x4e, 0x88, 0x6a,
+ 0x90, 0x69, 0x20, 0x67, 0x70, 0x1b, 0x49, 0x62, 0x35, 0xcd, 0x37, 0xb1, 0xc0, 0x30, 0x08, 0xa1,
+ 0x96, 0x6a, 0x29, 0x65, 0x0b, 0x23, 0x17, 0x17, 0xc2, 0x06, 0xa1, 0x08, 0x2e, 0x7e, 0x08, 0x8f,
+ 0x38, 0x3f, 0x82, 0xf4, 0xe8, 0xa1, 0x69, 0x80, 0xf8, 0x11, 0xdd, 0x18, 0x29, 0x27, 0x2e, 0x11,
+ 0x6c, 0x0a, 0xc9, 0x74, 0xf6, 0x53, 0x46, 0x2e, 0x21, 0x88, 0x71, 0x28, 0xc9, 0xdc, 0x0f, 0x33,
+ 0x72, 0x0c, 0xb0, 0x3a, 0x9c, 0xb8, 0xc4, 0x4e, 0x52, 0xf4, 0x18, 0x51, 0x3f, 0x7a, 0x18, 0x50,
+ 0xa3, 0xc7, 0x88, 0x8c, 0xe8, 0x31, 0x1a, 0x80, 0xe8, 0x61, 0x70, 0x12, 0x78, 0xf0, 0x50, 0x8e,
+ 0x71, 0xc5, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x3f, 0x3c, 0x92, 0x63, 0x4c, 0x62, 0x03,
+ 0x97, 0x9b, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa0, 0xcf, 0x58, 0xa8, 0x8c, 0x05, 0x00,
+ 0x00,
+}
+
func (this *OrderedMap) VerboseEqual(that interface{}) error {
if that == nil {
if this == nil {
@@ -1298,34 +1330,3 @@ func sovDeterministic(x uint64) (n int) {
func sozDeterministic(x uint64) (n int) {
return sovDeterministic(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
-
-func init() { proto.RegisterFile("deterministic.proto", fileDescriptor_deterministic_f6340fb8decdd007) }
-
-var fileDescriptor_deterministic_f6340fb8decdd007 = []byte{
- // 385 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4e, 0x49, 0x2d, 0x49,
- 0x2d, 0xca, 0xcd, 0xcc, 0xcb, 0x2c, 0x2e, 0xc9, 0x4c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17,
- 0xe2, 0x45, 0x11, 0x94, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5,
- 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0xab, 0x4a, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b,
- 0xa2, 0x5b, 0x69, 0x0e, 0x23, 0x17, 0x97, 0x7f, 0x51, 0x4a, 0x6a, 0x51, 0x6a, 0x8a, 0x6f, 0x62,
- 0x81, 0x90, 0x1b, 0x17, 0x67, 0x70, 0x49, 0x51, 0x66, 0x5e, 0xba, 0x6f, 0x62, 0x81, 0x04, 0xa3,
- 0x02, 0xb3, 0x06, 0xb7, 0x91, 0x86, 0x1e, 0xaa, 0xad, 0x08, 0xd5, 0x7a, 0x70, 0xa5, 0xae, 0x79,
- 0x25, 0x45, 0x95, 0x41, 0x08, 0xad, 0x52, 0x36, 0x5c, 0x7c, 0xa8, 0x92, 0x42, 0x02, 0x5c, 0xcc,
- 0xd9, 0xa9, 0x95, 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0x9c, 0x41, 0x20, 0xa6, 0x90, 0x08, 0x17, 0x6b,
- 0x59, 0x62, 0x4e, 0x69, 0xaa, 0x04, 0x13, 0x58, 0x0c, 0xc2, 0xb1, 0x62, 0xb2, 0x60, 0xb4, 0xe2,
- 0xe8, 0x58, 0x28, 0xcf, 0x38, 0x63, 0xa1, 0x3c, 0xa3, 0xd2, 0x02, 0x46, 0x2e, 0x9e, 0xd0, 0xbc,
- 0x7c, 0x84, 0x03, 0x3d, 0x30, 0x1d, 0xa8, 0x85, 0xe6, 0x40, 0x64, 0xf5, 0x34, 0x77, 0x22, 0x03,
- 0xc8, 0x89, 0x7c, 0xbe, 0x89, 0x05, 0x7e, 0xf9, 0xbe, 0x89, 0x45, 0xc5, 0x19, 0x89, 0x39, 0xa9,
- 0x45, 0x42, 0x5e, 0x98, 0x8e, 0xd4, 0x41, 0x73, 0x24, 0xaa, 0x0e, 0x9a, 0x39, 0x93, 0xa5, 0x03,
- 0xe4, 0xc4, 0x87, 0x8c, 0x5c, 0x02, 0x7e, 0xa9, 0xc5, 0x25, 0xa9, 0x29, 0x48, 0x51, 0xed, 0x83,
- 0xe9, 0x48, 0x3d, 0x34, 0x47, 0xa2, 0xeb, 0xc1, 0xed, 0x4c, 0x21, 0x73, 0x2e, 0x4e, 0x88, 0x6a,
- 0x90, 0x69, 0x20, 0x67, 0x70, 0x1b, 0x49, 0x62, 0x35, 0xcd, 0x37, 0xb1, 0xc0, 0x30, 0x08, 0xa1,
- 0x96, 0x6a, 0x29, 0x65, 0x0b, 0x23, 0x17, 0x17, 0xc2, 0x06, 0xa1, 0x08, 0x2e, 0x7e, 0x08, 0x8f,
- 0x38, 0x3f, 0x82, 0xf4, 0xe8, 0xa1, 0x69, 0x80, 0xf8, 0x11, 0xdd, 0x18, 0x29, 0x27, 0x2e, 0x11,
- 0x6c, 0x0a, 0xc9, 0x74, 0xf6, 0x53, 0x46, 0x2e, 0x21, 0x88, 0x71, 0x28, 0xc9, 0xdc, 0x0f, 0x33,
- 0x72, 0x0c, 0xb0, 0x3a, 0x9c, 0xb8, 0xc4, 0x4e, 0x52, 0xf4, 0x18, 0x51, 0x3f, 0x7a, 0x18, 0x50,
- 0xa3, 0xc7, 0x88, 0x8c, 0xe8, 0x31, 0x1a, 0x80, 0xe8, 0x61, 0x70, 0x12, 0x78, 0xf0, 0x50, 0x8e,
- 0x71, 0xc5, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x3f, 0x3c, 0x92, 0x63, 0x4c, 0x62, 0x03,
- 0x97, 0x9b, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa0, 0xcf, 0x58, 0xa8, 0x8c, 0x05, 0x00,
- 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/empty-issue70/empty.pb.go b/vendor/github.com/gogo/protobuf/test/empty-issue70/empty.pb.go
index a1091b7625..948f16bf40 100644
--- a/vendor/github.com/gogo/protobuf/test/empty-issue70/empty.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/empty-issue70/empty.pb.go
@@ -3,12 +3,13 @@
package empty
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import io "io"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -31,7 +32,7 @@ func (m *TestRequest) Reset() { *m = TestRequest{} }
func (m *TestRequest) String() string { return proto.CompactTextString(m) }
func (*TestRequest) ProtoMessage() {}
func (*TestRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_empty_5bb98b2f7e13ce4b, []int{0}
+ return fileDescriptor_2b3147679766dcb8, []int{0}
}
func (m *TestRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -39,8 +40,8 @@ func (m *TestRequest) XXX_Unmarshal(b []byte) error {
func (m *TestRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_TestRequest.Marshal(b, m, deterministic)
}
-func (dst *TestRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_TestRequest.Merge(dst, src)
+func (m *TestRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_TestRequest.Merge(m, src)
}
func (m *TestRequest) XXX_Size() int {
return xxx_messageInfo_TestRequest.Size(m)
@@ -54,6 +55,19 @@ var xxx_messageInfo_TestRequest proto.InternalMessageInfo
func init() {
proto.RegisterType((*TestRequest)(nil), "empty.TestRequest")
}
+
+func init() { proto.RegisterFile("empty.proto", fileDescriptor_2b3147679766dcb8) }
+
+var fileDescriptor_2b3147679766dcb8 = []byte{
+ // 92 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4e, 0xcd, 0x2d, 0x28,
+ 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x05, 0x73, 0xa4, 0x74, 0xd3, 0x33, 0x4b,
+ 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0xb2, 0x49,
+ 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x74, 0x29, 0xf1, 0x72, 0x71, 0x87, 0xa4, 0x16,
+ 0x97, 0x04, 0xa5, 0x16, 0x96, 0xa6, 0x16, 0x97, 0x38, 0xb1, 0x5c, 0x78, 0x24, 0xc7, 0x08, 0x08,
+ 0x00, 0x00, 0xff, 0xff, 0x0e, 0xe3, 0x23, 0x3d, 0x58, 0x00, 0x00, 0x00,
+}
+
func (m *TestRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -69,7 +83,7 @@ func (m *TestRequest) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -92,6 +106,9 @@ func (m *TestRequest) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthEmpty
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthEmpty
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -159,10 +176,13 @@ func skipEmpty(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthEmpty
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthEmpty
+ }
return iNdEx, nil
case 3:
for {
@@ -191,6 +211,9 @@ func skipEmpty(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthEmpty
+ }
}
return iNdEx, nil
case 4:
@@ -209,15 +232,3 @@ var (
ErrInvalidLengthEmpty = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowEmpty = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("empty.proto", fileDescriptor_empty_5bb98b2f7e13ce4b) }
-
-var fileDescriptor_empty_5bb98b2f7e13ce4b = []byte{
- // 92 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4e, 0xcd, 0x2d, 0x28,
- 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x05, 0x73, 0xa4, 0x74, 0xd3, 0x33, 0x4b,
- 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0xb2, 0x49,
- 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x74, 0x29, 0xf1, 0x72, 0x71, 0x87, 0xa4, 0x16,
- 0x97, 0x04, 0xa5, 0x16, 0x96, 0xa6, 0x16, 0x97, 0x38, 0xb1, 0x5c, 0x78, 0x24, 0xc7, 0x08, 0x08,
- 0x00, 0x00, 0xff, 0xff, 0x0e, 0xe3, 0x23, 0x3d, 0x58, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.pb.go b/vendor/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.pb.go
index 6db9246684..1c3330f1e8 100644
--- a/vendor/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.pb.go
@@ -1,20 +1,19 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: enumcustomname.proto
-package enumcustomname
-
-/*
-Package enumcustomname tests the behavior of enum_customname and
-enumvalue_customname extensions.
-*/
+// Package enumcustomname tests the behavior of enum_customname and
+// enumvalue_customname extensions.
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import test "github.com/gogo/protobuf/test"
+package enumcustomname
-import strconv "strconv"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ test "github.com/gogo/protobuf/test"
+ math "math"
+ strconv "strconv"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -40,6 +39,7 @@ var MyCustomEnum_name = map[int32]string{
0: "A",
1: "B",
}
+
var MyCustomEnum_value = map[string]int32{
"A": 0,
"B": 1,
@@ -50,9 +50,11 @@ func (x MyCustomEnum) Enum() *MyCustomEnum {
*p = x
return p
}
+
func (x MyCustomEnum) String() string {
return proto.EnumName(MyCustomEnum_name, int32(x))
}
+
func (x *MyCustomEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(MyCustomEnum_value, data, "MyCustomEnum")
if err != nil {
@@ -61,8 +63,9 @@ func (x *MyCustomEnum) UnmarshalJSON(data []byte) error {
*x = MyCustomEnum(value)
return nil
}
+
func (MyCustomEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_enumcustomname_d428393be9e73607, []int{0}
+ return fileDescriptor_49eed3c955d68b51, []int{0}
}
type MyCustomUnprefixedEnum int32
@@ -76,6 +79,7 @@ var MyCustomUnprefixedEnum_name = map[int32]string{
0: "UNPREFIXED_A",
1: "UNPREFIXED_B",
}
+
var MyCustomUnprefixedEnum_value = map[string]int32{
"UNPREFIXED_A": 0,
"UNPREFIXED_B": 1,
@@ -86,9 +90,11 @@ func (x MyCustomUnprefixedEnum) Enum() *MyCustomUnprefixedEnum {
*p = x
return p
}
+
func (x MyCustomUnprefixedEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(MyCustomUnprefixedEnum_name, int32(x))
}
+
func (x *MyCustomUnprefixedEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(MyCustomUnprefixedEnum_value, data, "MyCustomUnprefixedEnum")
if err != nil {
@@ -97,8 +103,9 @@ func (x *MyCustomUnprefixedEnum) UnmarshalJSON(data []byte) error {
*x = MyCustomUnprefixedEnum(value)
return nil
}
+
func (MyCustomUnprefixedEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_enumcustomname_d428393be9e73607, []int{1}
+ return fileDescriptor_49eed3c955d68b51, []int{1}
}
type MyEnumWithEnumStringer int32
@@ -112,6 +119,7 @@ var MyEnumWithEnumStringer_name = map[int32]string{
0: "STRINGER_A",
1: "STRINGER_B",
}
+
var MyEnumWithEnumStringer_value = map[string]int32{
"STRINGER_A": 0,
"STRINGER_B": 1,
@@ -122,9 +130,11 @@ func (x MyEnumWithEnumStringer) Enum() *MyEnumWithEnumStringer {
*p = x
return p
}
+
func (x MyEnumWithEnumStringer) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(MyEnumWithEnumStringer_name, int32(x))
}
+
func (x *MyEnumWithEnumStringer) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(MyEnumWithEnumStringer_value, data, "MyEnumWithEnumStringer")
if err != nil {
@@ -133,8 +143,9 @@ func (x *MyEnumWithEnumStringer) UnmarshalJSON(data []byte) error {
*x = MyEnumWithEnumStringer(value)
return nil
}
+
func (MyEnumWithEnumStringer) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_enumcustomname_d428393be9e73607, []int{2}
+ return fileDescriptor_49eed3c955d68b51, []int{2}
}
type OnlyEnums struct {
@@ -159,7 +170,7 @@ func (m *OnlyEnums) Reset() { *m = OnlyEnums{} }
func (m *OnlyEnums) String() string { return proto.CompactTextString(m) }
func (*OnlyEnums) ProtoMessage() {}
func (*OnlyEnums) Descriptor() ([]byte, []int) {
- return fileDescriptor_enumcustomname_d428393be9e73607, []int{0}
+ return fileDescriptor_49eed3c955d68b51, []int{0}
}
func (m *OnlyEnums) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OnlyEnums.Unmarshal(m, b)
@@ -167,8 +178,8 @@ func (m *OnlyEnums) XXX_Unmarshal(b []byte) error {
func (m *OnlyEnums) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OnlyEnums.Marshal(b, m, deterministic)
}
-func (dst *OnlyEnums) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OnlyEnums.Merge(dst, src)
+func (m *OnlyEnums) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OnlyEnums.Merge(m, src)
}
func (m *OnlyEnums) XXX_Size() int {
return xxx_messageInfo_OnlyEnums.Size(m)
@@ -273,24 +284,15 @@ func (m *OnlyEnums) GetYetYetAnotherTestEnumDefaultDd() test.YetYetAnotherTestEn
}
func init() {
- proto.RegisterType((*OnlyEnums)(nil), "enumcustomname.OnlyEnums")
proto.RegisterEnum("enumcustomname.MyCustomEnum", MyCustomEnum_name, MyCustomEnum_value)
proto.RegisterEnum("enumcustomname.MyCustomUnprefixedEnum", MyCustomUnprefixedEnum_name, MyCustomUnprefixedEnum_value)
proto.RegisterEnum("enumcustomname.MyEnumWithEnumStringer", MyEnumWithEnumStringer_name, MyEnumWithEnumStringer_value)
-}
-func (x MyEnumWithEnumStringer) String() string {
- s, ok := MyEnumWithEnumStringer_name[int32(x)]
- if ok {
- return s
- }
- return strconv.Itoa(int(x))
+ proto.RegisterType((*OnlyEnums)(nil), "enumcustomname.OnlyEnums")
}
-func init() {
- proto.RegisterFile("enumcustomname.proto", fileDescriptor_enumcustomname_d428393be9e73607)
-}
+func init() { proto.RegisterFile("enumcustomname.proto", fileDescriptor_49eed3c955d68b51) }
-var fileDescriptor_enumcustomname_d428393be9e73607 = []byte{
+var fileDescriptor_49eed3c955d68b51 = []byte{
// 551 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x93, 0x4f, 0x8f, 0xd2, 0x40,
0x18, 0xc6, 0x29, 0xba, 0x2c, 0x3b, 0x22, 0xe9, 0x4e, 0x14, 0x47, 0x30, 0x4d, 0xb3, 0x31, 0xc6,
@@ -328,3 +330,11 @@ var fileDescriptor_enumcustomname_d428393be9e73607 = []byte{
0xd0, 0x71, 0x6a, 0x91, 0x13, 0xff, 0x2c, 0x15, 0xe9, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xbe,
0x65, 0x55, 0xe7, 0xdb, 0x05, 0x00, 0x00,
}
+
+func (x MyEnumWithEnumStringer) String() string {
+ s, ok := MyEnumWithEnumStringer_name[int32(x)]
+ if ok {
+ return s
+ }
+ return strconv.Itoa(int(x))
+}
diff --git a/vendor/github.com/gogo/protobuf/test/enumdecl/enumdecl.pb.go b/vendor/github.com/gogo/protobuf/test/enumdecl/enumdecl.pb.go
index 047cb045a0..765d59ecec 100644
--- a/vendor/github.com/gogo/protobuf/test/enumdecl/enumdecl.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/enumdecl/enumdecl.pb.go
@@ -3,14 +3,14 @@
package enumdecl
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -27,6 +27,7 @@ var MyEnum_name = map[int32]string{
0: "A",
1: "B",
}
+
var MyEnum_value = map[string]int32{
"A": 0,
"B": 1,
@@ -35,8 +36,9 @@ var MyEnum_value = map[string]int32{
func (x MyEnum) String() string {
return proto.EnumName(MyEnum_name, int32(x))
}
+
func (MyEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_enumdecl_b298d32d6f1455f8, []int{0}
+ return fileDescriptor_869e4edba7b1e4e3, []int{0}
}
type Message struct {
@@ -50,7 +52,7 @@ func (m *Message) Reset() { *m = Message{} }
func (m *Message) String() string { return proto.CompactTextString(m) }
func (*Message) ProtoMessage() {}
func (*Message) Descriptor() ([]byte, []int) {
- return fileDescriptor_enumdecl_b298d32d6f1455f8, []int{0}
+ return fileDescriptor_869e4edba7b1e4e3, []int{0}
}
func (m *Message) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -67,8 +69,8 @@ func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Message) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Message.Merge(dst, src)
+func (m *Message) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Message.Merge(m, src)
}
func (m *Message) XXX_Size() int {
return m.Size()
@@ -87,9 +89,29 @@ func (m *Message) GetEnumeratedField() MyEnum {
}
func init() {
- proto.RegisterType((*Message)(nil), "enumdecl.Message")
proto.RegisterEnum("enumdecl.MyEnum", MyEnum_name, MyEnum_value)
+ proto.RegisterType((*Message)(nil), "enumdecl.Message")
}
+
+func init() { proto.RegisterFile("enumdecl.proto", fileDescriptor_869e4edba7b1e4e3) }
+
+var fileDescriptor_869e4edba7b1e4e3 = []byte{
+ // 205 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4b, 0xcd, 0x2b, 0xcd,
+ 0x4d, 0x49, 0x4d, 0xce, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
+ 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5,
+ 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x54, 0x72, 0xe3, 0x62,
+ 0xf7, 0x4d, 0x2d, 0x2e, 0x4e, 0x4c, 0x4f, 0x15, 0xb2, 0xe6, 0x12, 0x00, 0x99, 0x92, 0x5a, 0x94,
+ 0x58, 0x92, 0x9a, 0x12, 0x9f, 0x96, 0x99, 0x9a, 0x93, 0x22, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x67,
+ 0x24, 0xa0, 0x07, 0xb7, 0xce, 0xb7, 0xd2, 0x35, 0xaf, 0x34, 0x37, 0x88, 0x1f, 0xa1, 0xd2, 0x0d,
+ 0xa4, 0x50, 0x4b, 0x81, 0x8b, 0x0d, 0x22, 0x25, 0xc4, 0xca, 0xc5, 0xe8, 0x28, 0xc0, 0x00, 0xa2,
+ 0x9c, 0x04, 0x18, 0xa5, 0x38, 0x3a, 0x16, 0xcb, 0x31, 0x1c, 0x58, 0x22, 0xc7, 0xe0, 0xa4, 0xf1,
+ 0xe0, 0xa1, 0x1c, 0xe3, 0x8f, 0x87, 0x72, 0x8c, 0x2b, 0x1e, 0xc9, 0x31, 0xee, 0x78, 0x24, 0xc7,
+ 0x78, 0xe0, 0x91, 0x1c, 0xe3, 0x89, 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24,
+ 0xc7, 0xf8, 0xe3, 0x91, 0x1c, 0x43, 0xc3, 0x63, 0x39, 0x86, 0x24, 0x36, 0xb0, 0xd3, 0x8c, 0x01,
+ 0x01, 0x00, 0x00, 0xff, 0xff, 0x76, 0x04, 0x55, 0xb7, 0xe5, 0x00, 0x00, 0x00,
+}
+
func (this *Message) VerboseEqual(that interface{}) error {
if that == nil {
if this == nil {
@@ -309,7 +331,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -337,7 +359,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.EnumeratedField |= (MyEnum(b) & 0x7F) << shift
+ m.EnumeratedField |= MyEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -351,6 +373,9 @@ func (m *Message) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthEnumdecl
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthEnumdecl
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -418,10 +443,13 @@ func skipEnumdecl(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthEnumdecl
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthEnumdecl
+ }
return iNdEx, nil
case 3:
for {
@@ -450,6 +478,9 @@ func skipEnumdecl(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthEnumdecl
+ }
}
return iNdEx, nil
case 4:
@@ -468,22 +499,3 @@ var (
ErrInvalidLengthEnumdecl = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowEnumdecl = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("enumdecl.proto", fileDescriptor_enumdecl_b298d32d6f1455f8) }
-
-var fileDescriptor_enumdecl_b298d32d6f1455f8 = []byte{
- // 205 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4b, 0xcd, 0x2b, 0xcd,
- 0x4d, 0x49, 0x4d, 0xce, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
- 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5,
- 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x54, 0x72, 0xe3, 0x62,
- 0xf7, 0x4d, 0x2d, 0x2e, 0x4e, 0x4c, 0x4f, 0x15, 0xb2, 0xe6, 0x12, 0x00, 0x99, 0x92, 0x5a, 0x94,
- 0x58, 0x92, 0x9a, 0x12, 0x9f, 0x96, 0x99, 0x9a, 0x93, 0x22, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x67,
- 0x24, 0xa0, 0x07, 0xb7, 0xce, 0xb7, 0xd2, 0x35, 0xaf, 0x34, 0x37, 0x88, 0x1f, 0xa1, 0xd2, 0x0d,
- 0xa4, 0x50, 0x4b, 0x81, 0x8b, 0x0d, 0x22, 0x25, 0xc4, 0xca, 0xc5, 0xe8, 0x28, 0xc0, 0x00, 0xa2,
- 0x9c, 0x04, 0x18, 0xa5, 0x38, 0x3a, 0x16, 0xcb, 0x31, 0x1c, 0x58, 0x22, 0xc7, 0xe0, 0xa4, 0xf1,
- 0xe0, 0xa1, 0x1c, 0xe3, 0x8f, 0x87, 0x72, 0x8c, 0x2b, 0x1e, 0xc9, 0x31, 0xee, 0x78, 0x24, 0xc7,
- 0x78, 0xe0, 0x91, 0x1c, 0xe3, 0x89, 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24,
- 0xc7, 0xf8, 0xe3, 0x91, 0x1c, 0x43, 0xc3, 0x63, 0x39, 0x86, 0x24, 0x36, 0xb0, 0xd3, 0x8c, 0x01,
- 0x01, 0x00, 0x00, 0xff, 0xff, 0x76, 0x04, 0x55, 0xb7, 0xe5, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.pb.go b/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.pb.go
index 6c41c9497f..7f18e65e51 100644
--- a/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.pb.go
@@ -3,14 +3,14 @@
package enumdeclall
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -27,6 +27,7 @@ var MyEnum_name = map[int32]string{
0: "A",
1: "B",
}
+
var MyEnum_value = map[string]int32{
"A": 0,
"B": 1,
@@ -35,8 +36,9 @@ var MyEnum_value = map[string]int32{
func (x MyEnum) String() string {
return proto.EnumName(MyEnum_name, int32(x))
}
+
func (MyEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_enumdeclall_97762bd47095d695, []int{0}
+ return fileDescriptor_d9b5f61a7b003e8e, []int{0}
}
type MyOtherEnum int32
@@ -50,6 +52,7 @@ var MyOtherEnum_name = map[int32]string{
0: "C",
1: "D",
}
+
var MyOtherEnum_value = map[string]int32{
"C": 0,
"D": 1,
@@ -58,8 +61,9 @@ var MyOtherEnum_value = map[string]int32{
func (x MyOtherEnum) String() string {
return proto.EnumName(MyOtherEnum_name, int32(x))
}
+
func (MyOtherEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_enumdeclall_97762bd47095d695, []int{1}
+ return fileDescriptor_d9b5f61a7b003e8e, []int{1}
}
type Message struct {
@@ -74,7 +78,7 @@ func (m *Message) Reset() { *m = Message{} }
func (m *Message) String() string { return proto.CompactTextString(m) }
func (*Message) ProtoMessage() {}
func (*Message) Descriptor() ([]byte, []int) {
- return fileDescriptor_enumdeclall_97762bd47095d695, []int{0}
+ return fileDescriptor_d9b5f61a7b003e8e, []int{0}
}
func (m *Message) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -91,8 +95,8 @@ func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Message) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Message.Merge(dst, src)
+func (m *Message) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Message.Merge(m, src)
}
func (m *Message) XXX_Size() int {
return m.Size()
@@ -118,10 +122,34 @@ func (m *Message) GetOtherenumeratedField() MyOtherEnum {
}
func init() {
- proto.RegisterType((*Message)(nil), "enumdeclall.Message")
proto.RegisterEnum("enumdeclall.MyEnum", MyEnum_name, MyEnum_value)
proto.RegisterEnum("enumdeclall.MyOtherEnum", MyOtherEnum_name, MyOtherEnum_value)
+ proto.RegisterType((*Message)(nil), "enumdeclall.Message")
+}
+
+func init() { proto.RegisterFile("enumdeclall.proto", fileDescriptor_d9b5f61a7b003e8e) }
+
+var fileDescriptor_d9b5f61a7b003e8e = []byte{
+ // 260 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4c, 0xcd, 0x2b, 0xcd,
+ 0x4d, 0x49, 0x4d, 0xce, 0x49, 0xcc, 0xc9, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x46,
+ 0x12, 0x92, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf,
+ 0x4f, 0xcf, 0xd7, 0x07, 0xab, 0x49, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2, 0x57,
+ 0x69, 0x06, 0x23, 0x17, 0xbb, 0x6f, 0x6a, 0x71, 0x71, 0x62, 0x7a, 0xaa, 0x90, 0x1d, 0x97, 0x00,
+ 0xc8, 0xa4, 0xd4, 0xa2, 0xc4, 0x92, 0xd4, 0x94, 0xf8, 0xb4, 0xcc, 0xd4, 0x9c, 0x14, 0x09, 0x46,
+ 0x05, 0x46, 0x0d, 0x3e, 0x23, 0x61, 0x3d, 0x64, 0x5b, 0x7d, 0x2b, 0x5d, 0xf3, 0x4a, 0x73, 0x83,
+ 0xf8, 0x11, 0x8a, 0xdd, 0x40, 0x6a, 0x85, 0x7c, 0xb9, 0x44, 0xf3, 0x4b, 0x32, 0x52, 0x8b, 0x30,
+ 0x0c, 0x61, 0x02, 0x1b, 0x22, 0x81, 0x66, 0x88, 0x3f, 0x48, 0x2d, 0xd8, 0x24, 0x11, 0x34, 0x6d,
+ 0x60, 0xe3, 0xb4, 0x64, 0xb8, 0xd8, 0x20, 0x36, 0x09, 0xb1, 0x72, 0x31, 0x3a, 0x0a, 0x30, 0x80,
+ 0x28, 0x27, 0x01, 0x46, 0x29, 0x96, 0x8e, 0xc5, 0x72, 0x0c, 0x5a, 0xaa, 0x5c, 0xdc, 0x48, 0x46,
+ 0x80, 0xe4, 0x9c, 0x21, 0x4a, 0x5c, 0x04, 0x18, 0xa5, 0x38, 0x40, 0x4a, 0x0e, 0x2c, 0x91, 0x63,
+ 0x74, 0xd2, 0x79, 0xf0, 0x50, 0x8e, 0xf1, 0xc7, 0x43, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x77,
+ 0x3c, 0x92, 0x63, 0x3c, 0xf0, 0x48, 0x8e, 0xf1, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18,
+ 0x1f, 0x3c, 0x92, 0x63, 0xfc, 0xf1, 0x48, 0x8e, 0xa1, 0xe1, 0xb1, 0x1c, 0xc3, 0x8e, 0xc7, 0x72,
+ 0x0c, 0x49, 0x6c, 0xe0, 0x40, 0x31, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x4e, 0x91, 0xd9, 0xaf,
+ 0x65, 0x01, 0x00, 0x00,
}
+
func (this *Message) VerboseEqual(that interface{}) error {
if that == nil {
if this == nil {
@@ -356,7 +384,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -384,7 +412,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.EnumeratedField |= (MyEnum(b) & 0x7F) << shift
+ m.EnumeratedField |= MyEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -403,7 +431,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.OtherenumeratedField |= (MyOtherEnum(b) & 0x7F) << shift
+ m.OtherenumeratedField |= MyOtherEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -417,6 +445,9 @@ func (m *Message) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthEnumdeclall
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthEnumdeclall
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -484,10 +515,13 @@ func skipEnumdeclall(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthEnumdeclall
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthEnumdeclall
+ }
return iNdEx, nil
case 3:
for {
@@ -516,6 +550,9 @@ func skipEnumdeclall(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthEnumdeclall
+ }
}
return iNdEx, nil
case 4:
@@ -534,26 +571,3 @@ var (
ErrInvalidLengthEnumdeclall = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowEnumdeclall = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("enumdeclall.proto", fileDescriptor_enumdeclall_97762bd47095d695) }
-
-var fileDescriptor_enumdeclall_97762bd47095d695 = []byte{
- // 260 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4c, 0xcd, 0x2b, 0xcd,
- 0x4d, 0x49, 0x4d, 0xce, 0x49, 0xcc, 0xc9, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x46,
- 0x12, 0x92, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf,
- 0x4f, 0xcf, 0xd7, 0x07, 0xab, 0x49, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2, 0x57,
- 0x69, 0x06, 0x23, 0x17, 0xbb, 0x6f, 0x6a, 0x71, 0x71, 0x62, 0x7a, 0xaa, 0x90, 0x1d, 0x97, 0x00,
- 0xc8, 0xa4, 0xd4, 0xa2, 0xc4, 0x92, 0xd4, 0x94, 0xf8, 0xb4, 0xcc, 0xd4, 0x9c, 0x14, 0x09, 0x46,
- 0x05, 0x46, 0x0d, 0x3e, 0x23, 0x61, 0x3d, 0x64, 0x5b, 0x7d, 0x2b, 0x5d, 0xf3, 0x4a, 0x73, 0x83,
- 0xf8, 0x11, 0x8a, 0xdd, 0x40, 0x6a, 0x85, 0x7c, 0xb9, 0x44, 0xf3, 0x4b, 0x32, 0x52, 0x8b, 0x30,
- 0x0c, 0x61, 0x02, 0x1b, 0x22, 0x81, 0x66, 0x88, 0x3f, 0x48, 0x2d, 0xd8, 0x24, 0x11, 0x34, 0x6d,
- 0x60, 0xe3, 0xb4, 0x64, 0xb8, 0xd8, 0x20, 0x36, 0x09, 0xb1, 0x72, 0x31, 0x3a, 0x0a, 0x30, 0x80,
- 0x28, 0x27, 0x01, 0x46, 0x29, 0x96, 0x8e, 0xc5, 0x72, 0x0c, 0x5a, 0xaa, 0x5c, 0xdc, 0x48, 0x46,
- 0x80, 0xe4, 0x9c, 0x21, 0x4a, 0x5c, 0x04, 0x18, 0xa5, 0x38, 0x40, 0x4a, 0x0e, 0x2c, 0x91, 0x63,
- 0x74, 0xd2, 0x79, 0xf0, 0x50, 0x8e, 0xf1, 0xc7, 0x43, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x77,
- 0x3c, 0x92, 0x63, 0x3c, 0xf0, 0x48, 0x8e, 0xf1, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18,
- 0x1f, 0x3c, 0x92, 0x63, 0xfc, 0xf1, 0x48, 0x8e, 0xa1, 0xe1, 0xb1, 0x1c, 0xc3, 0x8e, 0xc7, 0x72,
- 0x0c, 0x49, 0x6c, 0xe0, 0x40, 0x31, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x4e, 0x91, 0xd9, 0xaf,
- 0x65, 0x01, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/enumprefix/enumprefix.pb.go b/vendor/github.com/gogo/protobuf/test/enumprefix/enumprefix.pb.go
index 7f883261a8..7361d7d38c 100644
--- a/vendor/github.com/gogo/protobuf/test/enumprefix/enumprefix.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/enumprefix/enumprefix.pb.go
@@ -3,11 +3,13 @@
package enumprefix
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import test "github.com/gogo/protobuf/test"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ test "github.com/gogo/protobuf/test"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -31,7 +33,7 @@ func (m *MyMessage) Reset() { *m = MyMessage{} }
func (m *MyMessage) String() string { return proto.CompactTextString(m) }
func (*MyMessage) ProtoMessage() {}
func (*MyMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_enumprefix_6ff751a3ee38216f, []int{0}
+ return fileDescriptor_d0d23e6cb4323eb3, []int{0}
}
func (m *MyMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MyMessage.Unmarshal(m, b)
@@ -39,8 +41,8 @@ func (m *MyMessage) XXX_Unmarshal(b []byte) error {
func (m *MyMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MyMessage.Marshal(b, m, deterministic)
}
-func (dst *MyMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MyMessage.Merge(dst, src)
+func (m *MyMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MyMessage.Merge(m, src)
}
func (m *MyMessage) XXX_Size() int {
return xxx_messageInfo_MyMessage.Size(m)
@@ -62,9 +64,9 @@ func init() {
proto.RegisterType((*MyMessage)(nil), "enumprefix.MyMessage")
}
-func init() { proto.RegisterFile("enumprefix.proto", fileDescriptor_enumprefix_6ff751a3ee38216f) }
+func init() { proto.RegisterFile("enumprefix.proto", fileDescriptor_d0d23e6cb4323eb3) }
-var fileDescriptor_enumprefix_6ff751a3ee38216f = []byte{
+var fileDescriptor_d0d23e6cb4323eb3 = []byte{
// 149 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x48, 0xcd, 0x2b, 0xcd,
0x2d, 0x28, 0x4a, 0x4d, 0xcb, 0xac, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x42, 0x88,
diff --git a/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringer.pb.go b/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringer.pb.go
index dae302e2c5..639ab72e3a 100644
--- a/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringer.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringer.pb.go
@@ -3,12 +3,13 @@
package enumstringer
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -34,6 +35,7 @@ var TheTestEnum_name = map[int32]string{
1: "B",
2: "C",
}
+
var TheTestEnum_value = map[string]int32{
"A": 0,
"B": 1,
@@ -45,9 +47,11 @@ func (x TheTestEnum) Enum() *TheTestEnum {
*p = x
return p
}
+
func (x TheTestEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(TheTestEnum_name, int32(x))
}
+
func (x *TheTestEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(TheTestEnum_value, data, "TheTestEnum")
if err != nil {
@@ -56,8 +60,9 @@ func (x *TheTestEnum) UnmarshalJSON(data []byte) error {
*x = TheTestEnum(value)
return nil
}
+
func (TheTestEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_enumstringer_cc4e1499449a36f3, []int{0}
+ return fileDescriptor_59d933db60b09d07, []int{0}
}
type NidOptEnum struct {
@@ -71,7 +76,7 @@ func (m *NidOptEnum) Reset() { *m = NidOptEnum{} }
func (m *NidOptEnum) String() string { return proto.CompactTextString(m) }
func (*NidOptEnum) ProtoMessage() {}
func (*NidOptEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_enumstringer_cc4e1499449a36f3, []int{0}
+ return fileDescriptor_59d933db60b09d07, []int{0}
}
func (m *NidOptEnum) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidOptEnum.Unmarshal(m, b)
@@ -79,8 +84,8 @@ func (m *NidOptEnum) XXX_Unmarshal(b []byte) error {
func (m *NidOptEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidOptEnum.Marshal(b, m, deterministic)
}
-func (dst *NidOptEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptEnum.Merge(dst, src)
+func (m *NidOptEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptEnum.Merge(m, src)
}
func (m *NidOptEnum) XXX_Size() int {
return xxx_messageInfo_NidOptEnum.Size(m)
@@ -109,7 +114,7 @@ func (m *NinOptEnum) Reset() { *m = NinOptEnum{} }
func (m *NinOptEnum) String() string { return proto.CompactTextString(m) }
func (*NinOptEnum) ProtoMessage() {}
func (*NinOptEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_enumstringer_cc4e1499449a36f3, []int{1}
+ return fileDescriptor_59d933db60b09d07, []int{1}
}
func (m *NinOptEnum) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptEnum.Unmarshal(m, b)
@@ -117,8 +122,8 @@ func (m *NinOptEnum) XXX_Unmarshal(b []byte) error {
func (m *NinOptEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptEnum.Marshal(b, m, deterministic)
}
-func (dst *NinOptEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptEnum.Merge(dst, src)
+func (m *NinOptEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptEnum.Merge(m, src)
}
func (m *NinOptEnum) XXX_Size() int {
return xxx_messageInfo_NinOptEnum.Size(m)
@@ -147,7 +152,7 @@ func (m *NidRepEnum) Reset() { *m = NidRepEnum{} }
func (m *NidRepEnum) String() string { return proto.CompactTextString(m) }
func (*NidRepEnum) ProtoMessage() {}
func (*NidRepEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_enumstringer_cc4e1499449a36f3, []int{2}
+ return fileDescriptor_59d933db60b09d07, []int{2}
}
func (m *NidRepEnum) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidRepEnum.Unmarshal(m, b)
@@ -155,8 +160,8 @@ func (m *NidRepEnum) XXX_Unmarshal(b []byte) error {
func (m *NidRepEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidRepEnum.Marshal(b, m, deterministic)
}
-func (dst *NidRepEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepEnum.Merge(dst, src)
+func (m *NidRepEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepEnum.Merge(m, src)
}
func (m *NidRepEnum) XXX_Size() int {
return xxx_messageInfo_NidRepEnum.Size(m)
@@ -185,7 +190,7 @@ func (m *NinRepEnum) Reset() { *m = NinRepEnum{} }
func (m *NinRepEnum) String() string { return proto.CompactTextString(m) }
func (*NinRepEnum) ProtoMessage() {}
func (*NinRepEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_enumstringer_cc4e1499449a36f3, []int{3}
+ return fileDescriptor_59d933db60b09d07, []int{3}
}
func (m *NinRepEnum) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinRepEnum.Unmarshal(m, b)
@@ -193,8 +198,8 @@ func (m *NinRepEnum) XXX_Unmarshal(b []byte) error {
func (m *NinRepEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinRepEnum.Marshal(b, m, deterministic)
}
-func (dst *NinRepEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepEnum.Merge(dst, src)
+func (m *NinRepEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepEnum.Merge(m, src)
}
func (m *NinRepEnum) XXX_Size() int {
return xxx_messageInfo_NinRepEnum.Size(m)
@@ -213,12 +218,32 @@ func (m *NinRepEnum) GetField1() []TheTestEnum {
}
func init() {
+ proto.RegisterEnum("enumstringer.TheTestEnum", TheTestEnum_name, TheTestEnum_value)
proto.RegisterType((*NidOptEnum)(nil), "enumstringer.NidOptEnum")
proto.RegisterType((*NinOptEnum)(nil), "enumstringer.NinOptEnum")
proto.RegisterType((*NidRepEnum)(nil), "enumstringer.NidRepEnum")
proto.RegisterType((*NinRepEnum)(nil), "enumstringer.NinRepEnum")
- proto.RegisterEnum("enumstringer.TheTestEnum", TheTestEnum_name, TheTestEnum_value)
}
+
+func init() { proto.RegisterFile("enumstringer.proto", fileDescriptor_59d933db60b09d07) }
+
+var fileDescriptor_59d933db60b09d07 = []byte{
+ // 208 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4a, 0xcd, 0x2b, 0xcd,
+ 0x2d, 0x2e, 0x29, 0xca, 0xcc, 0x4b, 0x4f, 0x2d, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2,
+ 0x41, 0x16, 0x93, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f,
+ 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0x2b, 0x4a, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2,
+ 0x59, 0xc9, 0x95, 0x8b, 0xcb, 0x2f, 0x33, 0xc5, 0xbf, 0xa0, 0xc4, 0x35, 0xaf, 0x34, 0x57, 0xc8,
+ 0x9c, 0x8b, 0xcd, 0x2d, 0x33, 0x35, 0x27, 0xc5, 0x50, 0x82, 0x51, 0x81, 0x51, 0x83, 0xcf, 0x48,
+ 0x52, 0x0f, 0xc5, 0xbe, 0x90, 0x8c, 0xd4, 0x90, 0xd4, 0x62, 0xb0, 0x52, 0x27, 0x96, 0x13, 0xf7,
+ 0xe4, 0x19, 0x82, 0xa0, 0xca, 0x95, 0xec, 0x41, 0xc6, 0xe4, 0xc1, 0x8c, 0x31, 0x24, 0xda, 0x18,
+ 0xb8, 0x01, 0x10, 0x77, 0x04, 0xa5, 0x16, 0x60, 0xb8, 0x83, 0x99, 0x74, 0x77, 0xc0, 0x8c, 0x31,
+ 0x24, 0xda, 0x18, 0x98, 0x01, 0x5a, 0x4a, 0x5c, 0xdc, 0x48, 0xc2, 0x42, 0xac, 0x5c, 0x8c, 0x8e,
+ 0x02, 0x0c, 0x20, 0xca, 0x49, 0x80, 0x11, 0x44, 0x39, 0x0b, 0x30, 0x39, 0x89, 0x3c, 0x78, 0x28,
+ 0xc7, 0xf8, 0xe3, 0xa1, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x1e, 0xc9, 0x31, 0xbe, 0x78,
+ 0x24, 0xc7, 0x00, 0x08, 0x00, 0x00, 0xff, 0xff, 0x2c, 0xb2, 0x8f, 0xc2, 0x9b, 0x01, 0x00, 0x00,
+}
+
func (this *NidOptEnum) VerboseEqual(that interface{}) error {
if that == nil {
if this == nil {
@@ -614,22 +639,3 @@ func encodeVarintPopulateEnumstringer(dAtA []byte, v uint64) []byte {
dAtA = append(dAtA, uint8(v))
return dAtA
}
-
-func init() { proto.RegisterFile("enumstringer.proto", fileDescriptor_enumstringer_cc4e1499449a36f3) }
-
-var fileDescriptor_enumstringer_cc4e1499449a36f3 = []byte{
- // 208 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4a, 0xcd, 0x2b, 0xcd,
- 0x2d, 0x2e, 0x29, 0xca, 0xcc, 0x4b, 0x4f, 0x2d, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2,
- 0x41, 0x16, 0x93, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f,
- 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0x2b, 0x4a, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2,
- 0x59, 0xc9, 0x95, 0x8b, 0xcb, 0x2f, 0x33, 0xc5, 0xbf, 0xa0, 0xc4, 0x35, 0xaf, 0x34, 0x57, 0xc8,
- 0x9c, 0x8b, 0xcd, 0x2d, 0x33, 0x35, 0x27, 0xc5, 0x50, 0x82, 0x51, 0x81, 0x51, 0x83, 0xcf, 0x48,
- 0x52, 0x0f, 0xc5, 0xbe, 0x90, 0x8c, 0xd4, 0x90, 0xd4, 0x62, 0xb0, 0x52, 0x27, 0x96, 0x13, 0xf7,
- 0xe4, 0x19, 0x82, 0xa0, 0xca, 0x95, 0xec, 0x41, 0xc6, 0xe4, 0xc1, 0x8c, 0x31, 0x24, 0xda, 0x18,
- 0xb8, 0x01, 0x10, 0x77, 0x04, 0xa5, 0x16, 0x60, 0xb8, 0x83, 0x99, 0x74, 0x77, 0xc0, 0x8c, 0x31,
- 0x24, 0xda, 0x18, 0x98, 0x01, 0x5a, 0x4a, 0x5c, 0xdc, 0x48, 0xc2, 0x42, 0xac, 0x5c, 0x8c, 0x8e,
- 0x02, 0x0c, 0x20, 0xca, 0x49, 0x80, 0x11, 0x44, 0x39, 0x0b, 0x30, 0x39, 0x89, 0x3c, 0x78, 0x28,
- 0xc7, 0xf8, 0xe3, 0xa1, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x1e, 0xc9, 0x31, 0xbe, 0x78,
- 0x24, 0xc7, 0x00, 0x08, 0x00, 0x00, 0xff, 0xff, 0x2c, 0xb2, 0x8f, 0xc2, 0x9b, 0x01, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/example/example.pb.go b/vendor/github.com/gogo/protobuf/test/example/example.pb.go
index efd798ac95..474ad890c2 100644
--- a/vendor/github.com/gogo/protobuf/test/example/example.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/example/example.pb.go
@@ -3,24 +3,22 @@
package test
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test"
-import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_test "github.com/gogo/protobuf/test"
+ github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -45,7 +43,7 @@ type A struct {
func (m *A) Reset() { *m = A{} }
func (*A) ProtoMessage() {}
func (*A) Descriptor() ([]byte, []int) {
- return fileDescriptor_example_32f420a2a58e4270, []int{0}
+ return fileDescriptor_15a1dc8d40dadaa6, []int{0}
}
func (m *A) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -62,8 +60,8 @@ func (m *A) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *A) XXX_Merge(src proto.Message) {
- xxx_messageInfo_A.Merge(dst, src)
+func (m *A) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_A.Merge(m, src)
}
func (m *A) XXX_Size() int {
return m.Size()
@@ -85,7 +83,7 @@ type B struct {
func (m *B) Reset() { *m = B{} }
func (*B) ProtoMessage() {}
func (*B) Descriptor() ([]byte, []int) {
- return fileDescriptor_example_32f420a2a58e4270, []int{1}
+ return fileDescriptor_15a1dc8d40dadaa6, []int{1}
}
func (m *B) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -102,8 +100,8 @@ func (m *B) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *B) XXX_Merge(src proto.Message) {
- xxx_messageInfo_B.Merge(dst, src)
+func (m *B) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_B.Merge(m, src)
}
func (m *B) XXX_Size() int {
return m.Size()
@@ -124,7 +122,7 @@ type C struct {
func (m *C) Reset() { *m = C{} }
func (*C) ProtoMessage() {}
func (*C) Descriptor() ([]byte, []int) {
- return fileDescriptor_example_32f420a2a58e4270, []int{2}
+ return fileDescriptor_15a1dc8d40dadaa6, []int{2}
}
func (m *C) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -141,8 +139,8 @@ func (m *C) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *C) XXX_Merge(src proto.Message) {
- xxx_messageInfo_C.Merge(dst, src)
+func (m *C) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_C.Merge(m, src)
}
func (m *C) XXX_Size() int {
return m.Size()
@@ -171,7 +169,7 @@ type U struct {
func (m *U) Reset() { *m = U{} }
func (*U) ProtoMessage() {}
func (*U) Descriptor() ([]byte, []int) {
- return fileDescriptor_example_32f420a2a58e4270, []int{3}
+ return fileDescriptor_15a1dc8d40dadaa6, []int{3}
}
func (m *U) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -188,8 +186,8 @@ func (m *U) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *U) XXX_Merge(src proto.Message) {
- xxx_messageInfo_U.Merge(dst, src)
+func (m *U) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_U.Merge(m, src)
}
func (m *U) XXX_Size() int {
return m.Size()
@@ -224,7 +222,7 @@ type E struct {
func (m *E) Reset() { *m = E{} }
func (*E) ProtoMessage() {}
func (*E) Descriptor() ([]byte, []int) {
- return fileDescriptor_example_32f420a2a58e4270, []int{4}
+ return fileDescriptor_15a1dc8d40dadaa6, []int{4}
}
var extRange_E = []proto.ExtensionRange{
@@ -234,6 +232,7 @@ var extRange_E = []proto.ExtensionRange{
func (*E) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_E
}
+
func (m *E) GetExtensions() *[]byte {
if m.XXX_extensions == nil {
m.XXX_extensions = make([]byte, 0)
@@ -255,8 +254,8 @@ func (m *E) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *E) XXX_Merge(src proto.Message) {
- xxx_messageInfo_E.Merge(dst, src)
+func (m *E) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_E.Merge(m, src)
}
func (m *E) XXX_Size() int {
return m.Size()
@@ -276,7 +275,7 @@ type R struct {
func (m *R) Reset() { *m = R{} }
func (*R) ProtoMessage() {}
func (*R) Descriptor() ([]byte, []int) {
- return fileDescriptor_example_32f420a2a58e4270, []int{5}
+ return fileDescriptor_15a1dc8d40dadaa6, []int{5}
}
func (m *R) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -293,8 +292,8 @@ func (m *R) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *R) XXX_Merge(src proto.Message) {
- xxx_messageInfo_R.Merge(dst, src)
+func (m *R) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_R.Merge(m, src)
}
func (m *R) XXX_Size() int {
return m.Size()
@@ -322,7 +321,7 @@ type CastType struct {
func (m *CastType) Reset() { *m = CastType{} }
func (*CastType) ProtoMessage() {}
func (*CastType) Descriptor() ([]byte, []int) {
- return fileDescriptor_example_32f420a2a58e4270, []int{6}
+ return fileDescriptor_15a1dc8d40dadaa6, []int{6}
}
func (m *CastType) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -339,8 +338,8 @@ func (m *CastType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *CastType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CastType.Merge(dst, src)
+func (m *CastType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CastType.Merge(m, src)
}
func (m *CastType) XXX_Size() int {
return m.Size()
@@ -367,268 +366,304 @@ func init() {
proto.RegisterType((*R)(nil), "test.R")
proto.RegisterType((*CastType)(nil), "test.CastType")
}
+
+func init() { proto.RegisterFile("example.proto", fileDescriptor_15a1dc8d40dadaa6) }
+
+var fileDescriptor_15a1dc8d40dadaa6 = []byte{
+ // 425 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x41, 0x6b, 0x13, 0x41,
+ 0x14, 0xc7, 0xf3, 0x36, 0xdb, 0xba, 0x7d, 0x6d, 0x41, 0x46, 0x0a, 0x41, 0x64, 0x26, 0xac, 0x20,
+ 0xb1, 0xd6, 0x0d, 0x46, 0x41, 0xd9, 0x5b, 0xa6, 0x4a, 0xc9, 0x41, 0x0f, 0xa3, 0xf9, 0x00, 0x4d,
+ 0x32, 0xc6, 0x01, 0xb3, 0x13, 0xb2, 0xb3, 0x60, 0x73, 0xda, 0xa3, 0x37, 0xbf, 0x42, 0xbd, 0xf5,
+ 0x23, 0x78, 0xf4, 0x98, 0x63, 0x8e, 0xe2, 0x61, 0x69, 0xe6, 0x13, 0xf4, 0x28, 0x9e, 0x64, 0xa6,
+ 0x41, 0x02, 0x62, 0x6f, 0xfb, 0x7e, 0xef, 0xed, 0xff, 0xff, 0x63, 0x70, 0x5f, 0x7e, 0x3a, 0x9d,
+ 0x4c, 0x3f, 0xca, 0x64, 0x3a, 0xd3, 0x46, 0x93, 0xd0, 0xc8, 0xdc, 0xdc, 0x7d, 0x3c, 0x56, 0xe6,
+ 0x43, 0x31, 0x48, 0x86, 0x7a, 0xd2, 0x1e, 0xeb, 0xb1, 0x6e, 0xfb, 0xe5, 0xa0, 0x78, 0xef, 0x27,
+ 0x3f, 0xf8, 0xaf, 0xeb, 0x9f, 0xe2, 0x2f, 0x80, 0xd0, 0x25, 0x0f, 0x70, 0xf7, 0xa5, 0xcc, 0x87,
+ 0x33, 0x35, 0x35, 0x4a, 0x67, 0x0d, 0x68, 0x42, 0x6b, 0x87, 0x87, 0x8b, 0x8a, 0xd5, 0xc4, 0xe6,
+ 0x82, 0xdc, 0xc3, 0xed, 0x37, 0xc5, 0x64, 0x20, 0x67, 0x8d, 0xa0, 0x09, 0xad, 0xfa, 0xfa, 0x64,
+ 0xcd, 0x48, 0x8a, 0x41, 0x6f, 0xd4, 0xa8, 0x37, 0xa1, 0xb5, 0xc7, 0x0f, 0xdd, 0xe6, 0x67, 0xc5,
+ 0xe2, 0xff, 0xea, 0x38, 0xdb, 0xa4, 0x5f, 0xa8, 0x91, 0x08, 0x7a, 0xa3, 0x34, 0xfa, 0x7c, 0xce,
+ 0x6a, 0x17, 0xe7, 0x0c, 0xe2, 0x0c, 0x81, 0x13, 0x86, 0xd0, 0xf5, 0x1a, 0xbb, 0x9d, 0x5b, 0x89,
+ 0xbf, 0xec, 0xf2, 0xc8, 0x45, 0x2e, 0x2b, 0x06, 0x02, 0xba, 0x84, 0x23, 0x9c, 0x34, 0x82, 0x66,
+ 0xbd, 0xb5, 0xc7, 0x9f, 0xad, 0xab, 0x8e, 0x6e, 0xac, 0x6a, 0x0f, 0x8b, 0xdc, 0xe8, 0x49, 0xd2,
+ 0x57, 0x99, 0x79, 0xd2, 0x79, 0x21, 0xe0, 0x24, 0x0d, 0xaf, 0x5c, 0xdf, 0x7d, 0x84, 0x63, 0x42,
+ 0x31, 0xcc, 0xd5, 0x5c, 0xfa, 0xca, 0x3a, 0x47, 0x5b, 0xb1, 0xed, 0xd7, 0x67, 0x6f, 0xd5, 0x5c,
+ 0x0a, 0xcf, 0xe3, 0xe7, 0x08, 0x7d, 0x72, 0xf0, 0xaf, 0x94, 0x53, 0x39, 0x40, 0xe0, 0xfe, 0x3d,
+ 0xfe, 0x62, 0x2e, 0x80, 0xa7, 0xe1, 0xc2, 0xa5, 0xdf, 0x41, 0x78, 0x75, 0x18, 0x45, 0x70, 0xbb,
+ 0x2c, 0xcb, 0x32, 0x48, 0xc3, 0xc5, 0x57, 0x56, 0x8b, 0x1f, 0x22, 0x08, 0x42, 0x11, 0x67, 0x72,
+ 0xa8, 0xc7, 0x99, 0x9a, 0xcb, 0x91, 0x8f, 0xdd, 0x17, 0x1b, 0x24, 0x0d, 0x97, 0xee, 0xf4, 0x11,
+ 0x46, 0xc7, 0xa7, 0xb9, 0x79, 0x77, 0x36, 0x95, 0x84, 0xe1, 0x56, 0x2f, 0x33, 0x4f, 0x3b, 0x6b,
+ 0xcb, 0x9d, 0xdf, 0x15, 0xdb, 0x52, 0x0e, 0x88, 0x6b, 0xce, 0x8f, 0x7e, 0xac, 0x68, 0xed, 0x72,
+ 0x45, 0xe1, 0x6a, 0x45, 0xe1, 0xd7, 0x8a, 0x42, 0x69, 0x29, 0x5c, 0x58, 0x0a, 0xdf, 0x2c, 0x85,
+ 0xef, 0x96, 0xc2, 0xc2, 0x52, 0x58, 0x5a, 0x0a, 0x97, 0x96, 0xc2, 0x9f, 0x00, 0x00, 0x00, 0xff,
+ 0xff, 0x71, 0x9d, 0xd3, 0x01, 0x3f, 0x02, 0x00, 0x00,
+}
+
func (this *B) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return ExampleDescription()
}
func ExampleDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4068 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7a, 0x59, 0x70, 0x1c, 0xd7,
- 0x75, 0x36, 0x7b, 0x16, 0x60, 0xe6, 0xcc, 0x60, 0xd0, 0xb8, 0x00, 0xc9, 0x21, 0x24, 0x01, 0xe4,
- 0x68, 0x03, 0x49, 0x19, 0xf4, 0x4f, 0x71, 0x6d, 0xfe, 0xb6, 0x32, 0x33, 0x18, 0xc2, 0xa3, 0x60,
- 0x73, 0x03, 0xb0, 0x16, 0x57, 0xaa, 0xab, 0xd1, 0x73, 0x31, 0x68, 0xb2, 0xa7, 0xbb, 0xdd, 0xdd,
- 0x43, 0x12, 0xac, 0x3c, 0x30, 0xa5, 0x6c, 0xae, 0x54, 0xe2, 0x6c, 0x55, 0xb1, 0x15, 0x59, 0x91,
- 0x9c, 0x8a, 0xa5, 0x38, 0xab, 0xe3, 0xc4, 0xb1, 0x9d, 0x87, 0xf8, 0xc5, 0x09, 0x9f, 0x52, 0xf2,
- 0x5b, 0x2a, 0x95, 0x62, 0x49, 0x8c, 0xaa, 0xb2, 0x29, 0xb1, 0x92, 0xf0, 0xc1, 0x15, 0xbd, 0xa4,
- 0xee, 0xd6, 0xd3, 0xb3, 0x00, 0x3d, 0x70, 0x95, 0xe4, 0x27, 0xa0, 0xcf, 0x3d, 0xdf, 0xd7, 0xe7,
- 0x9e, 0x7b, 0xee, 0x39, 0xe7, 0xde, 0x1e, 0xf8, 0xc1, 0x65, 0x38, 0xde, 0x74, 0x9c, 0xa6, 0x85,
- 0xcf, 0xb8, 0x9e, 0x13, 0x38, 0x5b, 0xed, 0xed, 0x33, 0x0d, 0xec, 0x1b, 0x9e, 0xe9, 0x06, 0x8e,
- 0x37, 0x4f, 0x65, 0x68, 0x9c, 0x69, 0xcc, 0x0b, 0x8d, 0xd2, 0x32, 0x4c, 0x5c, 0x35, 0x2d, 0xbc,
- 0x10, 0x2a, 0xae, 0xe3, 0x00, 0x5d, 0x82, 0xd4, 0xb6, 0x69, 0xe1, 0xa2, 0x74, 0x3c, 0x39, 0x97,
- 0x3b, 0xfb, 0xd8, 0x7c, 0x0f, 0x68, 0xbe, 0x1b, 0xb1, 0x46, 0xc4, 0x2a, 0x45, 0x94, 0xde, 0x4d,
- 0xc1, 0xe4, 0x80, 0x51, 0x84, 0x20, 0x65, 0xeb, 0x2d, 0xc2, 0x28, 0xcd, 0x65, 0x55, 0xfa, 0x3f,
- 0x2a, 0xc2, 0xa8, 0xab, 0x1b, 0xd7, 0xf5, 0x26, 0x2e, 0x26, 0xa8, 0x58, 0x3c, 0xa2, 0x19, 0x80,
- 0x06, 0x76, 0xb1, 0xdd, 0xc0, 0xb6, 0xb1, 0x5b, 0x4c, 0x1e, 0x4f, 0xce, 0x65, 0xd5, 0x88, 0x04,
- 0x9d, 0x86, 0x09, 0xb7, 0xbd, 0x65, 0x99, 0x86, 0x16, 0x51, 0x83, 0xe3, 0xc9, 0xb9, 0xb4, 0x2a,
- 0xb3, 0x81, 0x85, 0x8e, 0xf2, 0x93, 0x30, 0x7e, 0x13, 0xeb, 0xd7, 0xa3, 0xaa, 0x39, 0xaa, 0x5a,
- 0x20, 0xe2, 0x88, 0x62, 0x15, 0xf2, 0x2d, 0xec, 0xfb, 0x7a, 0x13, 0x6b, 0xc1, 0xae, 0x8b, 0x8b,
- 0x29, 0x3a, 0xfb, 0xe3, 0x7d, 0xb3, 0xef, 0x9d, 0x79, 0x8e, 0xa3, 0x36, 0x76, 0x5d, 0x8c, 0xca,
- 0x90, 0xc5, 0x76, 0xbb, 0xc5, 0x18, 0xd2, 0x7b, 0xf8, 0xaf, 0x66, 0xb7, 0x5b, 0xbd, 0x2c, 0x19,
- 0x02, 0xe3, 0x14, 0xa3, 0x3e, 0xf6, 0x6e, 0x98, 0x06, 0x2e, 0x8e, 0x50, 0x82, 0x27, 0xfb, 0x08,
- 0xd6, 0xd9, 0x78, 0x2f, 0x87, 0xc0, 0xa1, 0x2a, 0x64, 0xf1, 0xad, 0x00, 0xdb, 0xbe, 0xe9, 0xd8,
- 0xc5, 0x51, 0x4a, 0xf2, 0xf8, 0x80, 0x55, 0xc4, 0x56, 0xa3, 0x97, 0xa2, 0x83, 0x43, 0x17, 0x60,
- 0xd4, 0x71, 0x03, 0xd3, 0xb1, 0xfd, 0x62, 0xe6, 0xb8, 0x34, 0x97, 0x3b, 0xfb, 0xf0, 0xc0, 0x40,
- 0x58, 0x65, 0x3a, 0xaa, 0x50, 0x46, 0x75, 0x90, 0x7d, 0xa7, 0xed, 0x19, 0x58, 0x33, 0x9c, 0x06,
- 0xd6, 0x4c, 0x7b, 0xdb, 0x29, 0x66, 0x29, 0xc1, 0x6c, 0xff, 0x44, 0xa8, 0x62, 0xd5, 0x69, 0xe0,
- 0xba, 0xbd, 0xed, 0xa8, 0x05, 0xbf, 0xeb, 0x19, 0x1d, 0x81, 0x11, 0x7f, 0xd7, 0x0e, 0xf4, 0x5b,
- 0xc5, 0x3c, 0x8d, 0x10, 0xfe, 0x54, 0xfa, 0xf6, 0x08, 0x8c, 0x0f, 0x13, 0x62, 0x57, 0x20, 0xbd,
- 0x4d, 0x66, 0x59, 0x4c, 0x1c, 0xc4, 0x07, 0x0c, 0xd3, 0xed, 0xc4, 0x91, 0x1f, 0xd1, 0x89, 0x65,
- 0xc8, 0xd9, 0xd8, 0x0f, 0x70, 0x83, 0x45, 0x44, 0x72, 0xc8, 0x98, 0x02, 0x06, 0xea, 0x0f, 0xa9,
- 0xd4, 0x8f, 0x14, 0x52, 0xcf, 0xc3, 0x78, 0x68, 0x92, 0xe6, 0xe9, 0x76, 0x53, 0xc4, 0xe6, 0x99,
- 0x38, 0x4b, 0xe6, 0x6b, 0x02, 0xa7, 0x12, 0x98, 0x5a, 0xc0, 0x5d, 0xcf, 0x68, 0x01, 0xc0, 0xb1,
- 0xb1, 0xb3, 0xad, 0x35, 0xb0, 0x61, 0x15, 0x33, 0x7b, 0x78, 0x69, 0x95, 0xa8, 0xf4, 0x79, 0xc9,
- 0x61, 0x52, 0xc3, 0x42, 0x97, 0x3b, 0xa1, 0x36, 0xba, 0x47, 0xa4, 0x2c, 0xb3, 0x4d, 0xd6, 0x17,
- 0x6d, 0x9b, 0x50, 0xf0, 0x30, 0x89, 0x7b, 0xdc, 0xe0, 0x33, 0xcb, 0x52, 0x23, 0xe6, 0x63, 0x67,
- 0xa6, 0x72, 0x18, 0x9b, 0xd8, 0x98, 0x17, 0x7d, 0x44, 0x8f, 0x42, 0x28, 0xd0, 0x68, 0x58, 0x01,
- 0xcd, 0x42, 0x79, 0x21, 0x5c, 0xd1, 0x5b, 0x78, 0xfa, 0x36, 0x14, 0xba, 0xdd, 0x83, 0xa6, 0x20,
- 0xed, 0x07, 0xba, 0x17, 0xd0, 0x28, 0x4c, 0xab, 0xec, 0x01, 0xc9, 0x90, 0xc4, 0x76, 0x83, 0x66,
- 0xb9, 0xb4, 0x4a, 0xfe, 0x45, 0x3f, 0xd1, 0x99, 0x70, 0x92, 0x4e, 0xf8, 0x89, 0xfe, 0x15, 0xed,
- 0x62, 0xee, 0x9d, 0xf7, 0xf4, 0x45, 0x18, 0xeb, 0x9a, 0xc0, 0xb0, 0xaf, 0x2e, 0xfd, 0x34, 0x1c,
- 0x1e, 0x48, 0x8d, 0x9e, 0x87, 0xa9, 0xb6, 0x6d, 0xda, 0x01, 0xf6, 0x5c, 0x0f, 0x93, 0x88, 0x65,
- 0xaf, 0x2a, 0xfe, 0xf3, 0xe8, 0x1e, 0x31, 0xb7, 0x19, 0xd5, 0x66, 0x2c, 0xea, 0x64, 0xbb, 0x5f,
- 0x78, 0x2a, 0x9b, 0xf9, 0x97, 0x51, 0xf9, 0xce, 0x9d, 0x3b, 0x77, 0x12, 0xa5, 0x2f, 0x8e, 0xc0,
- 0xd4, 0xa0, 0x3d, 0x33, 0x70, 0xfb, 0x1e, 0x81, 0x11, 0xbb, 0xdd, 0xda, 0xc2, 0x1e, 0x75, 0x52,
- 0x5a, 0xe5, 0x4f, 0xa8, 0x0c, 0x69, 0x4b, 0xdf, 0xc2, 0x56, 0x31, 0x75, 0x5c, 0x9a, 0x2b, 0x9c,
- 0x3d, 0x3d, 0xd4, 0xae, 0x9c, 0x5f, 0x22, 0x10, 0x95, 0x21, 0xd1, 0x27, 0x21, 0xc5, 0x53, 0x34,
- 0x61, 0x38, 0x35, 0x1c, 0x03, 0xd9, 0x4b, 0x2a, 0xc5, 0xa1, 0x87, 0x20, 0x4b, 0xfe, 0xb2, 0xd8,
- 0x18, 0xa1, 0x36, 0x67, 0x88, 0x80, 0xc4, 0x05, 0x9a, 0x86, 0x0c, 0xdd, 0x26, 0x0d, 0x2c, 0x4a,
- 0x5b, 0xf8, 0x4c, 0x02, 0xab, 0x81, 0xb7, 0xf5, 0xb6, 0x15, 0x68, 0x37, 0x74, 0xab, 0x8d, 0x69,
- 0xc0, 0x67, 0xd5, 0x3c, 0x17, 0x7e, 0x86, 0xc8, 0xd0, 0x2c, 0xe4, 0xd8, 0xae, 0x32, 0xed, 0x06,
- 0xbe, 0x45, 0xb3, 0x67, 0x5a, 0x65, 0x1b, 0xad, 0x4e, 0x24, 0xe4, 0xf5, 0xd7, 0x7c, 0xc7, 0x16,
- 0xa1, 0x49, 0x5f, 0x41, 0x04, 0xf4, 0xf5, 0x17, 0x7b, 0x13, 0xf7, 0x23, 0x83, 0xa7, 0xd7, 0x1b,
- 0x53, 0xa5, 0x6f, 0x26, 0x20, 0x45, 0xf3, 0xc5, 0x38, 0xe4, 0x36, 0x5e, 0x58, 0xab, 0x69, 0x0b,
- 0xab, 0x9b, 0x95, 0xa5, 0x9a, 0x2c, 0xa1, 0x02, 0x00, 0x15, 0x5c, 0x5d, 0x5a, 0x2d, 0x6f, 0xc8,
- 0x89, 0xf0, 0xb9, 0xbe, 0xb2, 0x71, 0xe1, 0x9c, 0x9c, 0x0c, 0x01, 0x9b, 0x4c, 0x90, 0x8a, 0x2a,
- 0x3c, 0x7d, 0x56, 0x4e, 0x23, 0x19, 0xf2, 0x8c, 0xa0, 0xfe, 0x7c, 0x6d, 0xe1, 0xc2, 0x39, 0x79,
- 0xa4, 0x5b, 0xf2, 0xf4, 0x59, 0x79, 0x14, 0x8d, 0x41, 0x96, 0x4a, 0x2a, 0xab, 0xab, 0x4b, 0x72,
- 0x26, 0xe4, 0x5c, 0xdf, 0x50, 0xeb, 0x2b, 0x8b, 0x72, 0x36, 0xe4, 0x5c, 0x54, 0x57, 0x37, 0xd7,
- 0x64, 0x08, 0x19, 0x96, 0x6b, 0xeb, 0xeb, 0xe5, 0xc5, 0x9a, 0x9c, 0x0b, 0x35, 0x2a, 0x2f, 0x6c,
- 0xd4, 0xd6, 0xe5, 0x7c, 0x97, 0x59, 0x4f, 0x9f, 0x95, 0xc7, 0xc2, 0x57, 0xd4, 0x56, 0x36, 0x97,
- 0xe5, 0x02, 0x9a, 0x80, 0x31, 0xf6, 0x0a, 0x61, 0xc4, 0x78, 0x8f, 0xe8, 0xc2, 0x39, 0x59, 0xee,
- 0x18, 0xc2, 0x58, 0x26, 0xba, 0x04, 0x17, 0xce, 0xc9, 0xa8, 0x54, 0x85, 0x34, 0x8d, 0x2e, 0x84,
- 0xa0, 0xb0, 0x54, 0xae, 0xd4, 0x96, 0xb4, 0xd5, 0xb5, 0x8d, 0xfa, 0xea, 0x4a, 0x79, 0x49, 0x96,
- 0x3a, 0x32, 0xb5, 0xf6, 0xe9, 0xcd, 0xba, 0x5a, 0x5b, 0x90, 0x13, 0x51, 0xd9, 0x5a, 0xad, 0xbc,
- 0x51, 0x5b, 0x90, 0x93, 0x25, 0x03, 0xa6, 0x06, 0xe5, 0xc9, 0x81, 0x3b, 0x23, 0xb2, 0xc4, 0x89,
- 0x3d, 0x96, 0x98, 0x72, 0xf5, 0x2d, 0xf1, 0x3f, 0x25, 0x60, 0x72, 0x40, 0xad, 0x18, 0xf8, 0x92,
- 0x67, 0x20, 0xcd, 0x42, 0x94, 0x55, 0xcf, 0x93, 0x03, 0x8b, 0x0e, 0x0d, 0xd8, 0xbe, 0x0a, 0x4a,
- 0x71, 0xd1, 0x0e, 0x22, 0xb9, 0x47, 0x07, 0x41, 0x28, 0xfa, 0x72, 0xfa, 0x4f, 0xf5, 0xe5, 0x74,
- 0x56, 0xf6, 0x2e, 0x0c, 0x53, 0xf6, 0xa8, 0xec, 0x60, 0xb9, 0x3d, 0x3d, 0x20, 0xb7, 0x5f, 0x81,
- 0x89, 0x3e, 0xa2, 0xa1, 0x73, 0xec, 0x4b, 0x12, 0x14, 0xf7, 0x72, 0x4e, 0x4c, 0xa6, 0x4b, 0x74,
- 0x65, 0xba, 0x2b, 0xbd, 0x1e, 0x3c, 0xb1, 0xf7, 0x22, 0xf4, 0xad, 0xf5, 0x1b, 0x12, 0x1c, 0x19,
- 0xdc, 0x29, 0x0e, 0xb4, 0xe1, 0x93, 0x30, 0xd2, 0xc2, 0xc1, 0x8e, 0x23, 0xba, 0xa5, 0x27, 0x06,
- 0xd4, 0x60, 0x32, 0xdc, 0xbb, 0xd8, 0x1c, 0x15, 0x2d, 0xe2, 0xc9, 0xbd, 0xda, 0x3d, 0x66, 0x4d,
- 0x9f, 0xa5, 0x9f, 0x4f, 0xc0, 0xe1, 0x81, 0xe4, 0x03, 0x0d, 0x7d, 0x04, 0xc0, 0xb4, 0xdd, 0x76,
- 0xc0, 0x3a, 0x22, 0x96, 0x60, 0xb3, 0x54, 0x42, 0x93, 0x17, 0x49, 0x9e, 0xed, 0x20, 0x1c, 0x4f,
- 0xd2, 0x71, 0x60, 0x22, 0xaa, 0x70, 0xa9, 0x63, 0x68, 0x8a, 0x1a, 0x3a, 0xb3, 0xc7, 0x4c, 0xfb,
- 0x02, 0xf3, 0xe3, 0x20, 0x1b, 0x96, 0x89, 0xed, 0x40, 0xf3, 0x03, 0x0f, 0xeb, 0x2d, 0xd3, 0x6e,
- 0xd2, 0x0a, 0x92, 0x51, 0xd2, 0xdb, 0xba, 0xe5, 0x63, 0x75, 0x9c, 0x0d, 0xaf, 0x8b, 0x51, 0x82,
- 0xa0, 0x01, 0xe4, 0x45, 0x10, 0x23, 0x5d, 0x08, 0x36, 0x1c, 0x22, 0x4a, 0xdf, 0xc8, 0x40, 0x2e,
- 0xd2, 0x57, 0xa3, 0x13, 0x90, 0xbf, 0xa6, 0xdf, 0xd0, 0x35, 0x71, 0x56, 0x62, 0x9e, 0xc8, 0x11,
- 0xd9, 0x1a, 0x3f, 0x2f, 0x7d, 0x1c, 0xa6, 0xa8, 0x8a, 0xd3, 0x0e, 0xb0, 0xa7, 0x19, 0x96, 0xee,
- 0xfb, 0xd4, 0x69, 0x19, 0xaa, 0x8a, 0xc8, 0xd8, 0x2a, 0x19, 0xaa, 0x8a, 0x11, 0x74, 0x1e, 0x26,
- 0x29, 0xa2, 0xd5, 0xb6, 0x02, 0xd3, 0xb5, 0xb0, 0x46, 0x4e, 0x6f, 0x3e, 0xad, 0x24, 0xa1, 0x65,
- 0x13, 0x44, 0x63, 0x99, 0x2b, 0x10, 0x8b, 0x7c, 0xb4, 0x00, 0x8f, 0x50, 0x58, 0x13, 0xdb, 0xd8,
- 0xd3, 0x03, 0xac, 0xe1, 0xcf, 0xb5, 0x75, 0xcb, 0xd7, 0x74, 0xbb, 0xa1, 0xed, 0xe8, 0xfe, 0x4e,
- 0x71, 0x8a, 0x10, 0x54, 0x12, 0x45, 0x49, 0x3d, 0x46, 0x14, 0x17, 0xb9, 0x5e, 0x8d, 0xaa, 0x95,
- 0xed, 0xc6, 0xa7, 0x74, 0x7f, 0x07, 0x29, 0x70, 0x84, 0xb2, 0xf8, 0x81, 0x67, 0xda, 0x4d, 0xcd,
- 0xd8, 0xc1, 0xc6, 0x75, 0xad, 0x1d, 0x6c, 0x5f, 0x2a, 0x3e, 0x14, 0x7d, 0x3f, 0xb5, 0x70, 0x9d,
- 0xea, 0x54, 0x89, 0xca, 0x66, 0xb0, 0x7d, 0x09, 0xad, 0x43, 0x9e, 0x2c, 0x46, 0xcb, 0xbc, 0x8d,
- 0xb5, 0x6d, 0xc7, 0xa3, 0xa5, 0xb1, 0x30, 0x20, 0x35, 0x45, 0x3c, 0x38, 0xbf, 0xca, 0x01, 0xcb,
- 0x4e, 0x03, 0x2b, 0xe9, 0xf5, 0xb5, 0x5a, 0x6d, 0x41, 0xcd, 0x09, 0x96, 0xab, 0x8e, 0x47, 0x02,
- 0xaa, 0xe9, 0x84, 0x0e, 0xce, 0xb1, 0x80, 0x6a, 0x3a, 0xc2, 0xbd, 0xe7, 0x61, 0xd2, 0x30, 0xd8,
- 0x9c, 0x4d, 0x43, 0xe3, 0x67, 0x2c, 0xbf, 0x28, 0x77, 0x39, 0xcb, 0x30, 0x16, 0x99, 0x02, 0x8f,
- 0x71, 0x1f, 0x5d, 0x86, 0xc3, 0x1d, 0x67, 0x45, 0x81, 0x13, 0x7d, 0xb3, 0xec, 0x85, 0x9e, 0x87,
- 0x49, 0x77, 0xb7, 0x1f, 0x88, 0xba, 0xde, 0xe8, 0xee, 0xf6, 0xc2, 0x2e, 0xc2, 0x94, 0xbb, 0xe3,
- 0xf6, 0xe3, 0x4e, 0x45, 0x71, 0xc8, 0xdd, 0x71, 0x7b, 0x81, 0x8f, 0xd3, 0x03, 0xb7, 0x87, 0x0d,
- 0x3d, 0xc0, 0x8d, 0xe2, 0xd1, 0xa8, 0x7a, 0x64, 0x00, 0x9d, 0x01, 0xd9, 0x30, 0x34, 0x6c, 0xeb,
- 0x5b, 0x16, 0xd6, 0x74, 0x0f, 0xdb, 0xba, 0x5f, 0x9c, 0x8d, 0x2a, 0x17, 0x0c, 0xa3, 0x46, 0x47,
- 0xcb, 0x74, 0x10, 0x9d, 0x82, 0x09, 0x67, 0xeb, 0x9a, 0xc1, 0x42, 0x52, 0x73, 0x3d, 0xbc, 0x6d,
- 0xde, 0x2a, 0x3e, 0x46, 0xfd, 0x3b, 0x4e, 0x06, 0x68, 0x40, 0xae, 0x51, 0x31, 0x3a, 0x09, 0xb2,
- 0xe1, 0xef, 0xe8, 0x9e, 0x4b, 0x73, 0xb2, 0xef, 0xea, 0x06, 0x2e, 0x3e, 0xce, 0x54, 0x99, 0x7c,
- 0x45, 0x88, 0xc9, 0x96, 0xf0, 0x6f, 0x9a, 0xdb, 0x81, 0x60, 0x7c, 0x92, 0x6d, 0x09, 0x2a, 0xe3,
- 0x6c, 0x73, 0x20, 0x13, 0x57, 0x74, 0xbd, 0x78, 0x8e, 0xaa, 0x15, 0xdc, 0x1d, 0x37, 0xfa, 0xde,
- 0x47, 0x61, 0x8c, 0x68, 0x76, 0x5e, 0x7a, 0x92, 0x35, 0x64, 0xee, 0x4e, 0xe4, 0x8d, 0x1f, 0x5a,
- 0x6f, 0x5c, 0x52, 0x20, 0x1f, 0x8d, 0x4f, 0x94, 0x05, 0x16, 0xa1, 0xb2, 0x44, 0x9a, 0x95, 0xea,
- 0xea, 0x02, 0x69, 0x33, 0x5e, 0xac, 0xc9, 0x09, 0xd2, 0xee, 0x2c, 0xd5, 0x37, 0x6a, 0x9a, 0xba,
- 0xb9, 0xb2, 0x51, 0x5f, 0xae, 0xc9, 0xc9, 0x68, 0x5f, 0xfd, 0xbd, 0x04, 0x14, 0xba, 0x8f, 0x48,
- 0xe8, 0xff, 0xc3, 0x51, 0x71, 0x9f, 0xe1, 0xe3, 0x40, 0xbb, 0x69, 0x7a, 0x74, 0xcb, 0xb4, 0x74,
- 0x56, 0xbe, 0xc2, 0x45, 0x9b, 0xe2, 0x5a, 0xeb, 0x38, 0x78, 0xce, 0xf4, 0xc8, 0x86, 0x68, 0xe9,
- 0x01, 0x5a, 0x82, 0x59, 0xdb, 0xd1, 0xfc, 0x40, 0xb7, 0x1b, 0xba, 0xd7, 0xd0, 0x3a, 0x37, 0x49,
- 0x9a, 0x6e, 0x18, 0xd8, 0xf7, 0x1d, 0x56, 0xaa, 0x42, 0x96, 0x87, 0x6d, 0x67, 0x9d, 0x2b, 0x77,
- 0x72, 0x78, 0x99, 0xab, 0xf6, 0x04, 0x58, 0x72, 0xaf, 0x00, 0x7b, 0x08, 0xb2, 0x2d, 0xdd, 0xd5,
- 0xb0, 0x1d, 0x78, 0xbb, 0xb4, 0x31, 0xce, 0xa8, 0x99, 0x96, 0xee, 0xd6, 0xc8, 0xf3, 0x47, 0x73,
- 0x3e, 0xf9, 0xc7, 0x24, 0xe4, 0xa3, 0xcd, 0x31, 0x39, 0x6b, 0x18, 0xb4, 0x8e, 0x48, 0x34, 0xd3,
- 0x3c, 0xba, 0x6f, 0x2b, 0x3d, 0x5f, 0x25, 0x05, 0x46, 0x19, 0x61, 0x2d, 0xab, 0xca, 0x90, 0xa4,
- 0xb8, 0x93, 0xdc, 0x82, 0x59, 0x8b, 0x90, 0x51, 0xf9, 0x13, 0x5a, 0x84, 0x91, 0x6b, 0x3e, 0xe5,
- 0x1e, 0xa1, 0xdc, 0x8f, 0xed, 0xcf, 0xfd, 0xec, 0x3a, 0x25, 0xcf, 0x3e, 0xbb, 0xae, 0xad, 0xac,
- 0xaa, 0xcb, 0xe5, 0x25, 0x95, 0xc3, 0xd1, 0x31, 0x48, 0x59, 0xfa, 0xed, 0xdd, 0xee, 0x52, 0x44,
- 0x45, 0xc3, 0x3a, 0xfe, 0x18, 0xa4, 0x6e, 0x62, 0xfd, 0x7a, 0x77, 0x01, 0xa0, 0xa2, 0x0f, 0x31,
- 0xf4, 0xcf, 0x40, 0x9a, 0xfa, 0x0b, 0x01, 0x70, 0x8f, 0xc9, 0x87, 0x50, 0x06, 0x52, 0xd5, 0x55,
- 0x95, 0x84, 0xbf, 0x0c, 0x79, 0x26, 0xd5, 0xd6, 0xea, 0xb5, 0x6a, 0x4d, 0x4e, 0x94, 0xce, 0xc3,
- 0x08, 0x73, 0x02, 0xd9, 0x1a, 0xa1, 0x1b, 0xe4, 0x43, 0xfc, 0x91, 0x73, 0x48, 0x62, 0x74, 0x73,
- 0xb9, 0x52, 0x53, 0xe5, 0x44, 0x74, 0x79, 0x7d, 0xc8, 0x47, 0xfb, 0xe2, 0x8f, 0x26, 0xa6, 0xbe,
- 0x23, 0x41, 0x2e, 0xd2, 0xe7, 0x92, 0x06, 0x45, 0xb7, 0x2c, 0xe7, 0xa6, 0xa6, 0x5b, 0xa6, 0xee,
- 0xf3, 0xa0, 0x00, 0x2a, 0x2a, 0x13, 0xc9, 0xb0, 0x8b, 0xf6, 0x91, 0x18, 0xff, 0xaa, 0x04, 0x72,
- 0x6f, 0x8b, 0xd9, 0x63, 0xa0, 0xf4, 0x63, 0x35, 0xf0, 0x15, 0x09, 0x0a, 0xdd, 0x7d, 0x65, 0x8f,
- 0x79, 0x27, 0x7e, 0xac, 0xe6, 0xbd, 0x9d, 0x80, 0xb1, 0xae, 0x6e, 0x72, 0x58, 0xeb, 0x3e, 0x07,
- 0x13, 0x66, 0x03, 0xb7, 0x5c, 0x27, 0xc0, 0xb6, 0xb1, 0xab, 0x59, 0xf8, 0x06, 0xb6, 0x8a, 0x25,
- 0x9a, 0x28, 0xce, 0xec, 0xdf, 0xaf, 0xce, 0xd7, 0x3b, 0xb8, 0x25, 0x02, 0x53, 0x26, 0xeb, 0x0b,
- 0xb5, 0xe5, 0xb5, 0xd5, 0x8d, 0xda, 0x4a, 0xf5, 0x05, 0x6d, 0x73, 0xe5, 0x27, 0x57, 0x56, 0x9f,
- 0x5b, 0x51, 0x65, 0xb3, 0x47, 0xed, 0x43, 0xdc, 0xea, 0x6b, 0x20, 0xf7, 0x1a, 0x85, 0x8e, 0xc2,
- 0x20, 0xb3, 0xe4, 0x43, 0x68, 0x12, 0xc6, 0x57, 0x56, 0xb5, 0xf5, 0xfa, 0x42, 0x4d, 0xab, 0x5d,
- 0xbd, 0x5a, 0xab, 0x6e, 0xac, 0xb3, 0x1b, 0x88, 0x50, 0x7b, 0xa3, 0x7b, 0x53, 0xbf, 0x9c, 0x84,
- 0xc9, 0x01, 0x96, 0xa0, 0x32, 0x3f, 0x3b, 0xb0, 0xe3, 0xcc, 0xc7, 0x86, 0xb1, 0x7e, 0x9e, 0x94,
- 0xfc, 0x35, 0xdd, 0x0b, 0xf8, 0x51, 0xe3, 0x24, 0x10, 0x2f, 0xd9, 0x81, 0xb9, 0x6d, 0x62, 0x8f,
- 0x5f, 0xd8, 0xb0, 0x03, 0xc5, 0x78, 0x47, 0xce, 0xee, 0x6c, 0x9e, 0x02, 0xe4, 0x3a, 0xbe, 0x19,
- 0x98, 0x37, 0xb0, 0x66, 0xda, 0xe2, 0x76, 0x87, 0x1c, 0x30, 0x52, 0xaa, 0x2c, 0x46, 0xea, 0x76,
- 0x10, 0x6a, 0xdb, 0xb8, 0xa9, 0xf7, 0x68, 0x93, 0x04, 0x9e, 0x54, 0x65, 0x31, 0x12, 0x6a, 0x9f,
- 0x80, 0x7c, 0xc3, 0x69, 0x93, 0xae, 0x8b, 0xe9, 0x91, 0x7a, 0x21, 0xa9, 0x39, 0x26, 0x0b, 0x55,
- 0x78, 0x3f, 0xdd, 0xb9, 0x56, 0xca, 0xab, 0x39, 0x26, 0x63, 0x2a, 0x4f, 0xc2, 0xb8, 0xde, 0x6c,
- 0x7a, 0x84, 0x5c, 0x10, 0xb1, 0x13, 0x42, 0x21, 0x14, 0x53, 0xc5, 0xe9, 0x67, 0x21, 0x23, 0xfc,
- 0x40, 0x4a, 0x32, 0xf1, 0x84, 0xe6, 0xb2, 0x63, 0x6f, 0x62, 0x2e, 0xab, 0x66, 0x6c, 0x31, 0x78,
- 0x02, 0xf2, 0xa6, 0xaf, 0x75, 0x6e, 0xc9, 0x13, 0xc7, 0x13, 0x73, 0x19, 0x35, 0x67, 0xfa, 0xe1,
- 0x0d, 0x63, 0xe9, 0x8d, 0x04, 0x14, 0xba, 0x6f, 0xf9, 0xd1, 0x02, 0x64, 0x2c, 0xc7, 0xd0, 0x69,
- 0x68, 0xb1, 0x4f, 0x4c, 0x73, 0x31, 0x1f, 0x06, 0xe6, 0x97, 0xb8, 0xbe, 0x1a, 0x22, 0xa7, 0xff,
- 0x4e, 0x82, 0x8c, 0x10, 0xa3, 0x23, 0x90, 0x72, 0xf5, 0x60, 0x87, 0xd2, 0xa5, 0x2b, 0x09, 0x59,
- 0x52, 0xe9, 0x33, 0x91, 0xfb, 0xae, 0x6e, 0xd3, 0x10, 0xe0, 0x72, 0xf2, 0x4c, 0xd6, 0xd5, 0xc2,
- 0x7a, 0x83, 0x1e, 0x3f, 0x9c, 0x56, 0x0b, 0xdb, 0x81, 0x2f, 0xd6, 0x95, 0xcb, 0xab, 0x5c, 0x8c,
- 0x4e, 0xc3, 0x44, 0xe0, 0xe9, 0xa6, 0xd5, 0xa5, 0x9b, 0xa2, 0xba, 0xb2, 0x18, 0x08, 0x95, 0x15,
- 0x38, 0x26, 0x78, 0x1b, 0x38, 0xd0, 0x8d, 0x1d, 0xdc, 0xe8, 0x80, 0x46, 0xe8, 0x35, 0xc3, 0x51,
- 0xae, 0xb0, 0xc0, 0xc7, 0x05, 0xb6, 0xf4, 0x7d, 0x09, 0x26, 0xc4, 0x81, 0xa9, 0x11, 0x3a, 0x6b,
- 0x19, 0x40, 0xb7, 0x6d, 0x27, 0x88, 0xba, 0xab, 0x3f, 0x94, 0xfb, 0x70, 0xf3, 0xe5, 0x10, 0xa4,
- 0x46, 0x08, 0xa6, 0x5b, 0x00, 0x9d, 0x91, 0x3d, 0xdd, 0x36, 0x0b, 0x39, 0xfe, 0x09, 0x87, 0x7e,
- 0x07, 0x64, 0x47, 0x6c, 0x60, 0x22, 0x72, 0xb2, 0x42, 0x53, 0x90, 0xde, 0xc2, 0x4d, 0xd3, 0xe6,
- 0x17, 0xb3, 0xec, 0x41, 0x5c, 0x84, 0xa4, 0xc2, 0x8b, 0x90, 0xca, 0x67, 0x61, 0xd2, 0x70, 0x5a,
- 0xbd, 0xe6, 0x56, 0xe4, 0x9e, 0x63, 0xbe, 0xff, 0x29, 0xe9, 0x45, 0xe8, 0xb4, 0x98, 0x3f, 0x94,
- 0xa4, 0xaf, 0x24, 0x92, 0x8b, 0x6b, 0x95, 0xaf, 0x25, 0xa6, 0x17, 0x19, 0x74, 0x4d, 0xcc, 0x54,
- 0xc5, 0xdb, 0x16, 0x36, 0x88, 0xf5, 0xf0, 0xd5, 0xd3, 0xf0, 0xb1, 0xa6, 0x19, 0xec, 0xb4, 0xb7,
- 0xe6, 0x0d, 0xa7, 0x75, 0xa6, 0xe9, 0x34, 0x9d, 0xce, 0xa7, 0x4f, 0xf2, 0x44, 0x1f, 0xe8, 0x7f,
- 0xfc, 0xf3, 0x67, 0x36, 0x94, 0x4e, 0xc7, 0x7e, 0x2b, 0x55, 0x56, 0x60, 0x92, 0x2b, 0x6b, 0xf4,
- 0xfb, 0x0b, 0x3b, 0x45, 0xa0, 0x7d, 0xef, 0xb0, 0x8a, 0x5f, 0x7f, 0x97, 0x96, 0x6b, 0x75, 0x82,
- 0x43, 0xc9, 0x18, 0x3b, 0x68, 0x28, 0x2a, 0x1c, 0xee, 0xe2, 0x63, 0x5b, 0x13, 0x7b, 0x31, 0x8c,
- 0xdf, 0xe3, 0x8c, 0x93, 0x11, 0xc6, 0x75, 0x0e, 0x55, 0xaa, 0x30, 0x76, 0x10, 0xae, 0xbf, 0xe1,
- 0x5c, 0x79, 0x1c, 0x25, 0x59, 0x84, 0x71, 0x4a, 0x62, 0xb4, 0xfd, 0xc0, 0x69, 0xd1, 0xbc, 0xb7,
- 0x3f, 0xcd, 0xdf, 0xbe, 0xcb, 0xf6, 0x4a, 0x81, 0xc0, 0xaa, 0x21, 0x4a, 0x51, 0x80, 0x7e, 0x72,
- 0x6a, 0x60, 0xc3, 0x8a, 0x61, 0xb8, 0xcb, 0x0d, 0x09, 0xf5, 0x95, 0xcf, 0xc0, 0x14, 0xf9, 0x9f,
- 0xa6, 0xa5, 0xa8, 0x25, 0xf1, 0x17, 0x5e, 0xc5, 0xef, 0xbf, 0xc4, 0xb6, 0xe3, 0x64, 0x48, 0x10,
- 0xb1, 0x29, 0xb2, 0x8a, 0x4d, 0x1c, 0x04, 0xd8, 0xf3, 0x35, 0xdd, 0x1a, 0x64, 0x5e, 0xe4, 0xc6,
- 0xa0, 0xf8, 0xa5, 0xf7, 0xba, 0x57, 0x71, 0x91, 0x21, 0xcb, 0x96, 0xa5, 0x6c, 0xc2, 0xd1, 0x01,
- 0x51, 0x31, 0x04, 0xe7, 0xcb, 0x9c, 0x73, 0xaa, 0x2f, 0x32, 0x08, 0xed, 0x1a, 0x08, 0x79, 0xb8,
- 0x96, 0x43, 0x70, 0xfe, 0x36, 0xe7, 0x44, 0x1c, 0x2b, 0x96, 0x94, 0x30, 0x3e, 0x0b, 0x13, 0x37,
- 0xb0, 0xb7, 0xe5, 0xf8, 0xfc, 0x96, 0x66, 0x08, 0xba, 0x57, 0x38, 0xdd, 0x38, 0x07, 0xd2, 0x6b,
- 0x1b, 0xc2, 0x75, 0x19, 0x32, 0xdb, 0xba, 0x81, 0x87, 0xa0, 0xf8, 0x32, 0xa7, 0x18, 0x25, 0xfa,
- 0x04, 0x5a, 0x86, 0x7c, 0xd3, 0xe1, 0x95, 0x29, 0x1e, 0xfe, 0x2a, 0x87, 0xe7, 0x04, 0x86, 0x53,
- 0xb8, 0x8e, 0xdb, 0xb6, 0x48, 0xd9, 0x8a, 0xa7, 0xf8, 0x1d, 0x41, 0x21, 0x30, 0x9c, 0xe2, 0x00,
- 0x6e, 0x7d, 0x4d, 0x50, 0xf8, 0x11, 0x7f, 0x3e, 0x03, 0x39, 0xc7, 0xb6, 0x76, 0x1d, 0x7b, 0x18,
- 0x23, 0x5e, 0xe7, 0x0c, 0xc0, 0x21, 0x84, 0xe0, 0x0a, 0x64, 0x87, 0x5d, 0x88, 0xdf, 0x7b, 0x4f,
- 0x6c, 0x0f, 0xb1, 0x02, 0x8b, 0x30, 0x2e, 0x12, 0x94, 0xe9, 0xd8, 0x43, 0x50, 0x7c, 0x95, 0x53,
- 0x14, 0x22, 0x30, 0x3e, 0x8d, 0x00, 0xfb, 0x41, 0x13, 0x0f, 0x43, 0xf2, 0x86, 0x98, 0x06, 0x87,
- 0x70, 0x57, 0x6e, 0x61, 0xdb, 0xd8, 0x19, 0x8e, 0xe1, 0x4d, 0xe1, 0x4a, 0x81, 0x21, 0x14, 0x55,
- 0x18, 0x6b, 0xe9, 0x9e, 0xbf, 0xa3, 0x5b, 0x43, 0x2d, 0xc7, 0xef, 0x73, 0x8e, 0x7c, 0x08, 0xe2,
- 0x1e, 0x69, 0xdb, 0x07, 0xa1, 0xf9, 0x9a, 0xf0, 0x48, 0x04, 0xc6, 0xb7, 0x9e, 0x1f, 0xd0, 0x2b,
- 0xad, 0x83, 0xb0, 0xfd, 0x81, 0xd8, 0x7a, 0x0c, 0xbb, 0x1c, 0x65, 0xbc, 0x02, 0x59, 0xdf, 0xbc,
- 0x3d, 0x14, 0xcd, 0x1f, 0x8a, 0x95, 0xa6, 0x00, 0x02, 0x7e, 0x01, 0x8e, 0x0d, 0x2c, 0x13, 0x43,
- 0x90, 0xfd, 0x11, 0x27, 0x3b, 0x32, 0xa0, 0x54, 0xf0, 0x94, 0x70, 0x50, 0xca, 0x3f, 0x16, 0x29,
- 0x01, 0xf7, 0x70, 0xad, 0x91, 0xb3, 0x82, 0xaf, 0x6f, 0x1f, 0xcc, 0x6b, 0x7f, 0x22, 0xbc, 0xc6,
- 0xb0, 0x5d, 0x5e, 0xdb, 0x80, 0x23, 0x9c, 0xf1, 0x60, 0xeb, 0xfa, 0xa7, 0x22, 0xb1, 0x32, 0xf4,
- 0x66, 0xf7, 0xea, 0x7e, 0x16, 0xa6, 0x43, 0x77, 0x8a, 0xa6, 0xd4, 0xd7, 0x5a, 0xba, 0x3b, 0x04,
- 0xf3, 0xd7, 0x39, 0xb3, 0xc8, 0xf8, 0x61, 0x57, 0xeb, 0x2f, 0xeb, 0x2e, 0x21, 0x7f, 0x1e, 0x8a,
- 0x82, 0xbc, 0x6d, 0x7b, 0xd8, 0x70, 0x9a, 0xb6, 0x79, 0x1b, 0x37, 0x86, 0xa0, 0xfe, 0xb3, 0x9e,
- 0xa5, 0xda, 0x8c, 0xc0, 0x09, 0x73, 0x1d, 0xe4, 0xb0, 0x57, 0xd1, 0xcc, 0x96, 0xeb, 0x78, 0x41,
- 0x0c, 0xe3, 0x37, 0xc4, 0x4a, 0x85, 0xb8, 0x3a, 0x85, 0x29, 0x35, 0x28, 0xd0, 0xc7, 0x61, 0x43,
- 0xf2, 0xcf, 0x39, 0xd1, 0x58, 0x07, 0xc5, 0x13, 0x87, 0xe1, 0xb4, 0x5c, 0xdd, 0x1b, 0x26, 0xff,
- 0xfd, 0x85, 0x48, 0x1c, 0x1c, 0xc2, 0x13, 0x47, 0xb0, 0xeb, 0x62, 0x52, 0xed, 0x87, 0x60, 0xf8,
- 0xa6, 0x48, 0x1c, 0x02, 0xc3, 0x29, 0x44, 0xc3, 0x30, 0x04, 0xc5, 0x5f, 0x0a, 0x0a, 0x81, 0x21,
- 0x14, 0x9f, 0xee, 0x14, 0x5a, 0x0f, 0x37, 0x4d, 0x3f, 0xf0, 0x58, 0x2b, 0xbc, 0x3f, 0xd5, 0xb7,
- 0xde, 0xeb, 0x6e, 0xc2, 0xd4, 0x08, 0x94, 0x64, 0x22, 0x7e, 0x85, 0x4a, 0x4f, 0x4a, 0xf1, 0x86,
- 0x7d, 0x5b, 0x64, 0xa2, 0x08, 0x8c, 0xd8, 0x16, 0xe9, 0x10, 0x89, 0xdb, 0x0d, 0x72, 0x3e, 0x18,
- 0x82, 0xee, 0x3b, 0x3d, 0xc6, 0xad, 0x0b, 0x2c, 0xe1, 0x8c, 0xf4, 0x3f, 0x6d, 0xfb, 0x3a, 0xde,
- 0x1d, 0x2a, 0x3a, 0xff, 0xaa, 0xa7, 0xff, 0xd9, 0x64, 0x48, 0x96, 0x43, 0xc6, 0x7b, 0xfa, 0x29,
- 0x14, 0xf7, 0x63, 0x9d, 0xe2, 0xcf, 0x3c, 0xe0, 0xf3, 0xed, 0x6e, 0xa7, 0x94, 0x25, 0x12, 0xe4,
- 0xdd, 0x4d, 0x4f, 0x3c, 0xd9, 0x4b, 0x0f, 0xc2, 0x38, 0xef, 0xea, 0x79, 0x94, 0xab, 0x30, 0xd6,
- 0xd5, 0xf0, 0xc4, 0x53, 0xfd, 0x2c, 0xa7, 0xca, 0x47, 0xfb, 0x1d, 0xe5, 0x3c, 0xa4, 0x48, 0xf3,
- 0x12, 0x0f, 0xff, 0x39, 0x0e, 0xa7, 0xea, 0xca, 0x27, 0x20, 0x23, 0x9a, 0x96, 0x78, 0xe8, 0xcf,
- 0x73, 0x68, 0x08, 0x21, 0x70, 0xd1, 0xb0, 0xc4, 0xc3, 0x7f, 0x41, 0xc0, 0x05, 0x84, 0xc0, 0x87,
- 0x77, 0xe1, 0x77, 0x7f, 0x29, 0xc5, 0x8b, 0x8e, 0xf0, 0xdd, 0x15, 0x18, 0xe5, 0x9d, 0x4a, 0x3c,
- 0xfa, 0xf3, 0xfc, 0xe5, 0x02, 0xa1, 0x5c, 0x84, 0xf4, 0x90, 0x0e, 0xff, 0x65, 0x0e, 0x65, 0xfa,
- 0x4a, 0x15, 0x72, 0x91, 0xee, 0x24, 0x1e, 0xfe, 0x2b, 0x1c, 0x1e, 0x45, 0x11, 0xd3, 0x79, 0x77,
- 0x12, 0x4f, 0xf0, 0x05, 0x61, 0x3a, 0x47, 0x10, 0xb7, 0x89, 0xc6, 0x24, 0x1e, 0xfd, 0xab, 0xc2,
- 0xeb, 0x02, 0xa2, 0x3c, 0x03, 0xd9, 0xb0, 0xd8, 0xc4, 0xe3, 0x7f, 0x8d, 0xe3, 0x3b, 0x18, 0xe2,
- 0x81, 0x48, 0xb1, 0x8b, 0xa7, 0xf8, 0x75, 0xe1, 0x81, 0x08, 0x8a, 0x6c, 0xa3, 0xde, 0x06, 0x26,
- 0x9e, 0xe9, 0x37, 0xc4, 0x36, 0xea, 0xe9, 0x5f, 0xc8, 0x6a, 0xd2, 0x9c, 0x1f, 0x4f, 0xf1, 0x9b,
- 0x62, 0x35, 0xa9, 0x3e, 0x31, 0xa3, 0xb7, 0x23, 0x88, 0xe7, 0xf8, 0x2d, 0x61, 0x46, 0x4f, 0x43,
- 0xa0, 0xac, 0x01, 0xea, 0xef, 0x06, 0xe2, 0xf9, 0xbe, 0xc8, 0xf9, 0x26, 0xfa, 0x9a, 0x01, 0xe5,
- 0x39, 0x38, 0x32, 0xb8, 0x13, 0x88, 0x67, 0xfd, 0xd2, 0x83, 0x9e, 0xb3, 0x5b, 0xb4, 0x11, 0x50,
- 0x36, 0x3a, 0x25, 0x25, 0xda, 0x05, 0xc4, 0xd3, 0xbe, 0xfc, 0xa0, 0x3b, 0x71, 0x47, 0x9b, 0x00,
- 0xa5, 0x0c, 0xd0, 0x29, 0xc0, 0xf1, 0x5c, 0xaf, 0x70, 0xae, 0x08, 0x88, 0x6c, 0x0d, 0x5e, 0x7f,
- 0xe3, 0xf1, 0x5f, 0x16, 0x5b, 0x83, 0x23, 0xc8, 0xd6, 0x10, 0xa5, 0x37, 0x1e, 0xfd, 0xaa, 0xd8,
- 0x1a, 0x02, 0x42, 0x22, 0x3b, 0x52, 0xdd, 0xe2, 0x19, 0x5e, 0x17, 0x91, 0x1d, 0x41, 0x29, 0x2b,
- 0x30, 0xd1, 0x57, 0x10, 0xe3, 0xa9, 0xbe, 0xc2, 0xa9, 0xe4, 0xde, 0x7a, 0x18, 0x2d, 0x5e, 0xbc,
- 0x18, 0xc6, 0xb3, 0xfd, 0x6e, 0x4f, 0xf1, 0xe2, 0xb5, 0x50, 0xb9, 0x02, 0x19, 0xbb, 0x6d, 0x59,
- 0x64, 0xf3, 0xa0, 0xfd, 0x7f, 0x60, 0x57, 0xfc, 0xd7, 0x0f, 0xb8, 0x77, 0x04, 0x40, 0x39, 0x0f,
- 0x69, 0xdc, 0xda, 0xc2, 0x8d, 0x38, 0xe4, 0xbf, 0x7d, 0x20, 0x12, 0x26, 0xd1, 0x56, 0x9e, 0x01,
- 0x60, 0x57, 0x23, 0xf4, 0xb3, 0x5f, 0x0c, 0xf6, 0xdf, 0x3f, 0xe0, 0x3f, 0x7d, 0xe9, 0x40, 0x3a,
- 0x04, 0xec, 0x87, 0x34, 0xfb, 0x13, 0xbc, 0xd7, 0x4d, 0x40, 0x57, 0xe4, 0x32, 0x8c, 0x5e, 0xf3,
- 0x1d, 0x3b, 0xd0, 0x9b, 0x71, 0xe8, 0xff, 0xe0, 0x68, 0xa1, 0x4f, 0x1c, 0xd6, 0x72, 0x3c, 0x1c,
- 0xe8, 0x4d, 0x3f, 0x0e, 0xfb, 0x9f, 0x1c, 0x1b, 0x02, 0x08, 0xd8, 0xd0, 0xfd, 0x60, 0x98, 0x79,
- 0xff, 0x40, 0x80, 0x05, 0x80, 0x18, 0x4d, 0xfe, 0xbf, 0x8e, 0x77, 0xe3, 0xb0, 0xef, 0x0b, 0xa3,
- 0xb9, 0xbe, 0xf2, 0x09, 0xc8, 0x92, 0x7f, 0xd9, 0xef, 0xd9, 0x62, 0xc0, 0xff, 0xc5, 0xc1, 0x1d,
- 0x04, 0x79, 0xb3, 0x1f, 0x34, 0x02, 0x33, 0xde, 0xd9, 0xff, 0xcd, 0x57, 0x5a, 0xe8, 0x2b, 0x65,
- 0xc8, 0xf9, 0x41, 0xa3, 0xd1, 0xe6, 0xfd, 0x69, 0x0c, 0xfc, 0x7f, 0x3e, 0x08, 0xaf, 0x2c, 0x42,
- 0x0c, 0x59, 0xed, 0x9b, 0xd7, 0x03, 0xd7, 0xa1, 0x9f, 0x39, 0xe2, 0x18, 0x1e, 0x70, 0x86, 0x08,
- 0xa4, 0x52, 0x1b, 0x7c, 0x7d, 0x0b, 0x8b, 0xce, 0xa2, 0xc3, 0x2e, 0x6e, 0x5f, 0x2c, 0xc5, 0xdf,
- 0xc0, 0xc2, 0x5f, 0xa7, 0x60, 0x0c, 0xdf, 0xd2, 0x5b, 0xae, 0x20, 0x41, 0x29, 0x52, 0x80, 0xa7,
- 0x0f, 0x76, 0x7b, 0x5b, 0xfa, 0x82, 0x04, 0x52, 0x19, 0x3d, 0x01, 0xb9, 0x85, 0x4e, 0xf9, 0x67,
- 0x3f, 0x87, 0xaa, 0xa4, 0xee, 0xde, 0x9b, 0x3d, 0xa4, 0x46, 0x07, 0xd0, 0xc3, 0x30, 0xb2, 0xd2,
- 0xf9, 0x49, 0x5d, 0x92, 0xab, 0x70, 0x19, 0x52, 0x20, 0x51, 0x67, 0x9f, 0x56, 0xf3, 0x95, 0x53,
- 0x64, 0xe4, 0x1f, 0xee, 0xcd, 0xee, 0x3d, 0x15, 0x62, 0xed, 0xfc, 0x66, 0xdb, 0x6c, 0xa8, 0x89,
- 0x7a, 0x43, 0xc9, 0xfc, 0xe2, 0x6b, 0xb3, 0x87, 0xde, 0x7c, 0x6d, 0x56, 0x2a, 0xd9, 0x20, 0x55,
- 0xd0, 0x2c, 0x48, 0x65, 0x6a, 0x46, 0xee, 0xec, 0xe8, 0x3c, 0xd5, 0x2c, 0x57, 0x32, 0x84, 0xf2,
- 0xad, 0x7b, 0xb3, 0x92, 0x2a, 0x95, 0x51, 0x05, 0xa4, 0x45, 0xfa, 0x05, 0x22, 0x5f, 0x39, 0xc7,
- 0x5f, 0xf5, 0xd4, 0xbe, 0xaf, 0x3a, 0xc3, 0x36, 0xdc, 0xfc, 0xa6, 0x69, 0x07, 0xff, 0xef, 0xec,
- 0x25, 0x55, 0x5a, 0x54, 0x52, 0xef, 0x93, 0xf7, 0x3d, 0x0a, 0x52, 0x15, 0xcd, 0x40, 0x8a, 0x24,
- 0x43, 0xfa, 0xca, 0x64, 0x05, 0xee, 0xdf, 0x9b, 0x1d, 0x59, 0xde, 0x25, 0x39, 0x4e, 0xa5, 0xf2,
- 0xd2, 0x45, 0x90, 0x36, 0xd1, 0xe1, 0x7e, 0xa3, 0x88, 0x29, 0x87, 0x41, 0xaa, 0xf0, 0x5f, 0x8c,
- 0x72, 0x71, 0x45, 0x95, 0x2a, 0x4a, 0xea, 0x2e, 0x61, 0x9f, 0x04, 0xa9, 0x76, 0x2a, 0x93, 0x91,
- 0xd8, 0x67, 0x35, 0x25, 0x75, 0xf7, 0xf5, 0xd9, 0x43, 0xa5, 0x93, 0x20, 0xa9, 0x68, 0x06, 0xa0,
- 0x53, 0x99, 0x28, 0xed, 0x98, 0x1a, 0x91, 0x28, 0xa9, 0xb7, 0x88, 0xea, 0x69, 0xc8, 0x54, 0x75,
- 0x5f, 0xfc, 0x08, 0x2f, 0x5d, 0xb7, 0x83, 0xa7, 0xcf, 0x72, 0x2b, 0xb3, 0xff, 0x7b, 0x6f, 0x36,
- 0x6d, 0x12, 0x81, 0xca, 0xe4, 0x95, 0xa7, 0xfe, 0xfe, 0x9d, 0x99, 0x43, 0x6f, 0xbf, 0x33, 0x23,
- 0xbd, 0xff, 0xce, 0x8c, 0xf4, 0xc3, 0x77, 0x66, 0xa4, 0x3b, 0xf7, 0x67, 0xa4, 0x37, 0xef, 0xcf,
- 0x48, 0xdf, 0xba, 0x3f, 0x23, 0x7d, 0xf7, 0xfe, 0x8c, 0x74, 0xf7, 0xfe, 0x8c, 0xf4, 0xd6, 0xfd,
- 0x19, 0xe9, 0xed, 0xfb, 0x33, 0xd2, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x4b, 0x26, 0x51, 0x9d,
- 0xdd, 0x34, 0x00, 0x00,
+ // 4101 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x59, 0x70, 0x1c, 0xd7,
+ 0x75, 0x65, 0xcf, 0x02, 0xcc, 0xdc, 0x19, 0x0c, 0x1a, 0x0f, 0x20, 0x39, 0x84, 0x24, 0x80, 0x1c,
+ 0x6d, 0x20, 0x29, 0x81, 0x0e, 0xc5, 0x4d, 0xcd, 0xd8, 0xca, 0xcc, 0x60, 0x08, 0x8f, 0x82, 0xcd,
+ 0x0d, 0xc0, 0x5a, 0x5c, 0xa9, 0xae, 0x46, 0xcf, 0xc3, 0xa0, 0xc9, 0x9e, 0xee, 0x76, 0x77, 0x0f,
+ 0x49, 0xb0, 0xf2, 0xc1, 0x94, 0xb2, 0xb9, 0xb2, 0x38, 0x5b, 0x55, 0x6c, 0x45, 0x56, 0x24, 0xa7,
+ 0x62, 0x29, 0xce, 0xea, 0x2c, 0x8e, 0xed, 0x7c, 0xc4, 0x3f, 0x4e, 0xf8, 0x95, 0x92, 0xff, 0x52,
+ 0xa9, 0x14, 0x4b, 0x62, 0x54, 0x95, 0x4d, 0x49, 0x94, 0x84, 0x1f, 0xae, 0xe8, 0x27, 0xf5, 0xb6,
+ 0x9e, 0x9e, 0x05, 0xe8, 0x81, 0xab, 0x24, 0x7d, 0x01, 0x7d, 0xdf, 0x3d, 0xa7, 0xef, 0xbb, 0xef,
+ 0xbe, 0x7b, 0xef, 0x7b, 0x3d, 0x70, 0x47, 0x81, 0xe3, 0x4d, 0xc7, 0x69, 0x5a, 0xf8, 0x8c, 0xeb,
+ 0x39, 0x81, 0xb3, 0xd5, 0xde, 0x3e, 0xd3, 0xc0, 0xbe, 0xe1, 0x99, 0x6e, 0xe0, 0x78, 0xf3, 0x54,
+ 0x86, 0xc6, 0x99, 0xc6, 0xbc, 0xd0, 0x28, 0x2d, 0xc3, 0xc4, 0x15, 0xd3, 0xc2, 0x0b, 0xa1, 0xe2,
+ 0x3a, 0x0e, 0xd0, 0x25, 0x48, 0x6d, 0x9b, 0x16, 0x2e, 0x4a, 0xc7, 0x93, 0x73, 0xb9, 0xb3, 0x8f,
+ 0xcc, 0xf7, 0x80, 0xe6, 0xbb, 0x11, 0x6b, 0x44, 0xac, 0x52, 0x44, 0xe9, 0xdd, 0x14, 0x4c, 0x0e,
+ 0x18, 0x45, 0x08, 0x52, 0xb6, 0xde, 0x22, 0x8c, 0xd2, 0x5c, 0x56, 0xa5, 0xff, 0xa3, 0x22, 0x8c,
+ 0xba, 0xba, 0x71, 0x4d, 0x6f, 0xe2, 0x62, 0x82, 0x8a, 0xc5, 0x23, 0x9a, 0x01, 0x68, 0x60, 0x17,
+ 0xdb, 0x0d, 0x6c, 0x1b, 0xbb, 0xc5, 0xe4, 0xf1, 0xe4, 0x5c, 0x56, 0x8d, 0x48, 0xd0, 0x69, 0x98,
+ 0x70, 0xdb, 0x5b, 0x96, 0x69, 0x68, 0x11, 0x35, 0x38, 0x9e, 0x9c, 0x4b, 0xab, 0x32, 0x1b, 0x58,
+ 0xe8, 0x28, 0x3f, 0x0e, 0xe3, 0x37, 0xb0, 0x7e, 0x2d, 0xaa, 0x9a, 0xa3, 0xaa, 0x05, 0x22, 0x8e,
+ 0x28, 0x56, 0x21, 0xdf, 0xc2, 0xbe, 0xaf, 0x37, 0xb1, 0x16, 0xec, 0xba, 0xb8, 0x98, 0xa2, 0xb3,
+ 0x3f, 0xde, 0x37, 0xfb, 0xde, 0x99, 0xe7, 0x38, 0x6a, 0x63, 0xd7, 0xc5, 0xa8, 0x0c, 0x59, 0x6c,
+ 0xb7, 0x5b, 0x8c, 0x21, 0xbd, 0x87, 0xff, 0x6a, 0x76, 0xbb, 0xd5, 0xcb, 0x92, 0x21, 0x30, 0x4e,
+ 0x31, 0xea, 0x63, 0xef, 0xba, 0x69, 0xe0, 0xe2, 0x08, 0x25, 0x78, 0xbc, 0x8f, 0x60, 0x9d, 0x8d,
+ 0xf7, 0x72, 0x08, 0x1c, 0xaa, 0x42, 0x16, 0xdf, 0x0c, 0xb0, 0xed, 0x9b, 0x8e, 0x5d, 0x1c, 0xa5,
+ 0x24, 0x8f, 0x0e, 0x58, 0x45, 0x6c, 0x35, 0x7a, 0x29, 0x3a, 0x38, 0x74, 0x01, 0x46, 0x1d, 0x37,
+ 0x30, 0x1d, 0xdb, 0x2f, 0x66, 0x8e, 0x4b, 0x73, 0xb9, 0xb3, 0x0f, 0x0e, 0x0c, 0x84, 0x55, 0xa6,
+ 0xa3, 0x0a, 0x65, 0x54, 0x07, 0xd9, 0x77, 0xda, 0x9e, 0x81, 0x35, 0xc3, 0x69, 0x60, 0xcd, 0xb4,
+ 0xb7, 0x9d, 0x62, 0x96, 0x12, 0xcc, 0xf6, 0x4f, 0x84, 0x2a, 0x56, 0x9d, 0x06, 0xae, 0xdb, 0xdb,
+ 0x8e, 0x5a, 0xf0, 0xbb, 0x9e, 0xd1, 0x11, 0x18, 0xf1, 0x77, 0xed, 0x40, 0xbf, 0x59, 0xcc, 0xd3,
+ 0x08, 0xe1, 0x4f, 0xa5, 0x6f, 0x8f, 0xc0, 0xf8, 0x30, 0x21, 0x76, 0x19, 0xd2, 0xdb, 0x64, 0x96,
+ 0xc5, 0xc4, 0x41, 0x7c, 0xc0, 0x30, 0xdd, 0x4e, 0x1c, 0xf9, 0x21, 0x9d, 0x58, 0x86, 0x9c, 0x8d,
+ 0xfd, 0x00, 0x37, 0x58, 0x44, 0x24, 0x87, 0x8c, 0x29, 0x60, 0xa0, 0xfe, 0x90, 0x4a, 0xfd, 0x50,
+ 0x21, 0xf5, 0x3c, 0x8c, 0x87, 0x26, 0x69, 0x9e, 0x6e, 0x37, 0x45, 0x6c, 0x9e, 0x89, 0xb3, 0x64,
+ 0xbe, 0x26, 0x70, 0x2a, 0x81, 0xa9, 0x05, 0xdc, 0xf5, 0x8c, 0x16, 0x00, 0x1c, 0x1b, 0x3b, 0xdb,
+ 0x5a, 0x03, 0x1b, 0x56, 0x31, 0xb3, 0x87, 0x97, 0x56, 0x89, 0x4a, 0x9f, 0x97, 0x1c, 0x26, 0x35,
+ 0x2c, 0xf4, 0x74, 0x27, 0xd4, 0x46, 0xf7, 0x88, 0x94, 0x65, 0xb6, 0xc9, 0xfa, 0xa2, 0x6d, 0x13,
+ 0x0a, 0x1e, 0x26, 0x71, 0x8f, 0x1b, 0x7c, 0x66, 0x59, 0x6a, 0xc4, 0x7c, 0xec, 0xcc, 0x54, 0x0e,
+ 0x63, 0x13, 0x1b, 0xf3, 0xa2, 0x8f, 0xe8, 0x61, 0x08, 0x05, 0x1a, 0x0d, 0x2b, 0xa0, 0x59, 0x28,
+ 0x2f, 0x84, 0x2b, 0x7a, 0x0b, 0x4f, 0xdf, 0x82, 0x42, 0xb7, 0x7b, 0xd0, 0x14, 0xa4, 0xfd, 0x40,
+ 0xf7, 0x02, 0x1a, 0x85, 0x69, 0x95, 0x3d, 0x20, 0x19, 0x92, 0xd8, 0x6e, 0xd0, 0x2c, 0x97, 0x56,
+ 0xc9, 0xbf, 0xe8, 0xc7, 0x3a, 0x13, 0x4e, 0xd2, 0x09, 0x3f, 0xd6, 0xbf, 0xa2, 0x5d, 0xcc, 0xbd,
+ 0xf3, 0x9e, 0xbe, 0x08, 0x63, 0x5d, 0x13, 0x18, 0xf6, 0xd5, 0xa5, 0x9f, 0x84, 0xc3, 0x03, 0xa9,
+ 0xd1, 0xf3, 0x30, 0xd5, 0xb6, 0x4d, 0x3b, 0xc0, 0x9e, 0xeb, 0x61, 0x12, 0xb1, 0xec, 0x55, 0xc5,
+ 0x7f, 0x1e, 0xdd, 0x23, 0xe6, 0x36, 0xa3, 0xda, 0x8c, 0x45, 0x9d, 0x6c, 0xf7, 0x0b, 0x4f, 0x65,
+ 0x33, 0xff, 0x32, 0x2a, 0xdf, 0xbe, 0x7d, 0xfb, 0x76, 0xa2, 0xf4, 0xa5, 0x11, 0x98, 0x1a, 0xb4,
+ 0x67, 0x06, 0x6e, 0xdf, 0x23, 0x30, 0x62, 0xb7, 0x5b, 0x5b, 0xd8, 0xa3, 0x4e, 0x4a, 0xab, 0xfc,
+ 0x09, 0x95, 0x21, 0x6d, 0xe9, 0x5b, 0xd8, 0x2a, 0xa6, 0x8e, 0x4b, 0x73, 0x85, 0xb3, 0xa7, 0x87,
+ 0xda, 0x95, 0xf3, 0x4b, 0x04, 0xa2, 0x32, 0x24, 0xfa, 0x14, 0xa4, 0x78, 0x8a, 0x26, 0x0c, 0xa7,
+ 0x86, 0x63, 0x20, 0x7b, 0x49, 0xa5, 0x38, 0xf4, 0x00, 0x64, 0xc9, 0x5f, 0x16, 0x1b, 0x23, 0xd4,
+ 0xe6, 0x0c, 0x11, 0x90, 0xb8, 0x40, 0xd3, 0x90, 0xa1, 0xdb, 0xa4, 0x81, 0x45, 0x69, 0x0b, 0x9f,
+ 0x49, 0x60, 0x35, 0xf0, 0xb6, 0xde, 0xb6, 0x02, 0xed, 0xba, 0x6e, 0xb5, 0x31, 0x0d, 0xf8, 0xac,
+ 0x9a, 0xe7, 0xc2, 0xcf, 0x12, 0x19, 0x9a, 0x85, 0x1c, 0xdb, 0x55, 0xa6, 0xdd, 0xc0, 0x37, 0x69,
+ 0xf6, 0x4c, 0xab, 0x6c, 0xa3, 0xd5, 0x89, 0x84, 0xbc, 0xfe, 0xaa, 0xef, 0xd8, 0x22, 0x34, 0xe9,
+ 0x2b, 0x88, 0x80, 0xbe, 0xfe, 0x62, 0x6f, 0xe2, 0x7e, 0x68, 0xf0, 0xf4, 0x7a, 0x63, 0xaa, 0xf4,
+ 0xcd, 0x04, 0xa4, 0x68, 0xbe, 0x18, 0x87, 0xdc, 0xc6, 0x0b, 0x6b, 0x35, 0x6d, 0x61, 0x75, 0xb3,
+ 0xb2, 0x54, 0x93, 0x25, 0x54, 0x00, 0xa0, 0x82, 0x2b, 0x4b, 0xab, 0xe5, 0x0d, 0x39, 0x11, 0x3e,
+ 0xd7, 0x57, 0x36, 0x2e, 0x9c, 0x93, 0x93, 0x21, 0x60, 0x93, 0x09, 0x52, 0x51, 0x85, 0xa7, 0xce,
+ 0xca, 0x69, 0x24, 0x43, 0x9e, 0x11, 0xd4, 0x9f, 0xaf, 0x2d, 0x5c, 0x38, 0x27, 0x8f, 0x74, 0x4b,
+ 0x9e, 0x3a, 0x2b, 0x8f, 0xa2, 0x31, 0xc8, 0x52, 0x49, 0x65, 0x75, 0x75, 0x49, 0xce, 0x84, 0x9c,
+ 0xeb, 0x1b, 0x6a, 0x7d, 0x65, 0x51, 0xce, 0x86, 0x9c, 0x8b, 0xea, 0xea, 0xe6, 0x9a, 0x0c, 0x21,
+ 0xc3, 0x72, 0x6d, 0x7d, 0xbd, 0xbc, 0x58, 0x93, 0x73, 0xa1, 0x46, 0xe5, 0x85, 0x8d, 0xda, 0xba,
+ 0x9c, 0xef, 0x32, 0xeb, 0xa9, 0xb3, 0xf2, 0x58, 0xf8, 0x8a, 0xda, 0xca, 0xe6, 0xb2, 0x5c, 0x40,
+ 0x13, 0x30, 0xc6, 0x5e, 0x21, 0x8c, 0x18, 0xef, 0x11, 0x5d, 0x38, 0x27, 0xcb, 0x1d, 0x43, 0x18,
+ 0xcb, 0x44, 0x97, 0xe0, 0xc2, 0x39, 0x19, 0x95, 0xaa, 0x90, 0xa6, 0xd1, 0x85, 0x10, 0x14, 0x96,
+ 0xca, 0x95, 0xda, 0x92, 0xb6, 0xba, 0xb6, 0x51, 0x5f, 0x5d, 0x29, 0x2f, 0xc9, 0x52, 0x47, 0xa6,
+ 0xd6, 0x3e, 0xb3, 0x59, 0x57, 0x6b, 0x0b, 0x72, 0x22, 0x2a, 0x5b, 0xab, 0x95, 0x37, 0x6a, 0x0b,
+ 0x72, 0xb2, 0x64, 0xc0, 0xd4, 0xa0, 0x3c, 0x39, 0x70, 0x67, 0x44, 0x96, 0x38, 0xb1, 0xc7, 0x12,
+ 0x53, 0xae, 0xbe, 0x25, 0xfe, 0xa7, 0x04, 0x4c, 0x0e, 0xa8, 0x15, 0x03, 0x5f, 0xf2, 0x0c, 0xa4,
+ 0x59, 0x88, 0xb2, 0xea, 0x79, 0x72, 0x60, 0xd1, 0xa1, 0x01, 0xdb, 0x57, 0x41, 0x29, 0x2e, 0xda,
+ 0x41, 0x24, 0xf7, 0xe8, 0x20, 0x08, 0x45, 0x5f, 0x4e, 0xff, 0x89, 0xbe, 0x9c, 0xce, 0xca, 0xde,
+ 0x85, 0x61, 0xca, 0x1e, 0x95, 0x1d, 0x2c, 0xb7, 0xa7, 0x07, 0xe4, 0xf6, 0xcb, 0x30, 0xd1, 0x47,
+ 0x34, 0x74, 0x8e, 0x7d, 0x49, 0x82, 0xe2, 0x5e, 0xce, 0x89, 0xc9, 0x74, 0x89, 0xae, 0x4c, 0x77,
+ 0xb9, 0xd7, 0x83, 0x27, 0xf6, 0x5e, 0x84, 0xbe, 0xb5, 0x7e, 0x43, 0x82, 0x23, 0x83, 0x3b, 0xc5,
+ 0x81, 0x36, 0x7c, 0x0a, 0x46, 0x5a, 0x38, 0xd8, 0x71, 0x44, 0xb7, 0xf4, 0xd8, 0x80, 0x1a, 0x4c,
+ 0x86, 0x7b, 0x17, 0x9b, 0xa3, 0xa2, 0x45, 0x3c, 0xb9, 0x57, 0xbb, 0xc7, 0xac, 0xe9, 0xb3, 0xf4,
+ 0x0b, 0x09, 0x38, 0x3c, 0x90, 0x7c, 0xa0, 0xa1, 0x0f, 0x01, 0x98, 0xb6, 0xdb, 0x0e, 0x58, 0x47,
+ 0xc4, 0x12, 0x6c, 0x96, 0x4a, 0x68, 0xf2, 0x22, 0xc9, 0xb3, 0x1d, 0x84, 0xe3, 0x49, 0x3a, 0x0e,
+ 0x4c, 0x44, 0x15, 0x2e, 0x75, 0x0c, 0x4d, 0x51, 0x43, 0x67, 0xf6, 0x98, 0x69, 0x5f, 0x60, 0x7e,
+ 0x02, 0x64, 0xc3, 0x32, 0xb1, 0x1d, 0x68, 0x7e, 0xe0, 0x61, 0xbd, 0x65, 0xda, 0x4d, 0x5a, 0x41,
+ 0x32, 0x4a, 0x7a, 0x5b, 0xb7, 0x7c, 0xac, 0x8e, 0xb3, 0xe1, 0x75, 0x31, 0x4a, 0x10, 0x34, 0x80,
+ 0xbc, 0x08, 0x62, 0xa4, 0x0b, 0xc1, 0x86, 0x43, 0x44, 0xe9, 0x17, 0xb3, 0x90, 0x8b, 0xf4, 0xd5,
+ 0xe8, 0x04, 0xe4, 0xaf, 0xea, 0xd7, 0x75, 0x4d, 0x9c, 0x95, 0x98, 0x27, 0x72, 0x44, 0xb6, 0xc6,
+ 0xcf, 0x4b, 0x9f, 0x80, 0x29, 0xaa, 0xe2, 0xb4, 0x03, 0xec, 0x69, 0x86, 0xa5, 0xfb, 0x3e, 0x75,
+ 0x5a, 0x86, 0xaa, 0x22, 0x32, 0xb6, 0x4a, 0x86, 0xaa, 0x62, 0x04, 0x9d, 0x87, 0x49, 0x8a, 0x68,
+ 0xb5, 0xad, 0xc0, 0x74, 0x2d, 0xac, 0x91, 0xd3, 0x9b, 0x4f, 0x2b, 0x49, 0x68, 0xd9, 0x04, 0xd1,
+ 0x58, 0xe6, 0x0a, 0xc4, 0x22, 0x1f, 0x2d, 0xc0, 0x43, 0x14, 0xd6, 0xc4, 0x36, 0xf6, 0xf4, 0x00,
+ 0x6b, 0xf8, 0xf3, 0x6d, 0xdd, 0xf2, 0x35, 0xdd, 0x6e, 0x68, 0x3b, 0xba, 0xbf, 0x53, 0x9c, 0x22,
+ 0x04, 0x95, 0x44, 0x51, 0x52, 0x8f, 0x11, 0xc5, 0x45, 0xae, 0x57, 0xa3, 0x6a, 0x65, 0xbb, 0xf1,
+ 0x69, 0xdd, 0xdf, 0x41, 0x0a, 0x1c, 0xa1, 0x2c, 0x7e, 0xe0, 0x99, 0x76, 0x53, 0x33, 0x76, 0xb0,
+ 0x71, 0x4d, 0x6b, 0x07, 0xdb, 0x97, 0x8a, 0x0f, 0x44, 0xdf, 0x4f, 0x2d, 0x5c, 0xa7, 0x3a, 0x55,
+ 0xa2, 0xb2, 0x19, 0x6c, 0x5f, 0x42, 0xeb, 0x90, 0x27, 0x8b, 0xd1, 0x32, 0x6f, 0x61, 0x6d, 0xdb,
+ 0xf1, 0x68, 0x69, 0x2c, 0x0c, 0x48, 0x4d, 0x11, 0x0f, 0xce, 0xaf, 0x72, 0xc0, 0xb2, 0xd3, 0xc0,
+ 0x4a, 0x7a, 0x7d, 0xad, 0x56, 0x5b, 0x50, 0x73, 0x82, 0xe5, 0x8a, 0xe3, 0x91, 0x80, 0x6a, 0x3a,
+ 0xa1, 0x83, 0x73, 0x2c, 0xa0, 0x9a, 0x8e, 0x70, 0xef, 0x79, 0x98, 0x34, 0x0c, 0x36, 0x67, 0xd3,
+ 0xd0, 0xf8, 0x19, 0xcb, 0x2f, 0xca, 0x5d, 0xce, 0x32, 0x8c, 0x45, 0xa6, 0xc0, 0x63, 0xdc, 0x47,
+ 0x4f, 0xc3, 0xe1, 0x8e, 0xb3, 0xa2, 0xc0, 0x89, 0xbe, 0x59, 0xf6, 0x42, 0xcf, 0xc3, 0xa4, 0xbb,
+ 0xdb, 0x0f, 0x44, 0x5d, 0x6f, 0x74, 0x77, 0x7b, 0x61, 0x17, 0x61, 0xca, 0xdd, 0x71, 0xfb, 0x71,
+ 0xa7, 0xa2, 0x38, 0xe4, 0xee, 0xb8, 0xbd, 0xc0, 0x47, 0xe9, 0x81, 0xdb, 0xc3, 0x86, 0x1e, 0xe0,
+ 0x46, 0xf1, 0x68, 0x54, 0x3d, 0x32, 0x80, 0xce, 0x80, 0x6c, 0x18, 0x1a, 0xb6, 0xf5, 0x2d, 0x0b,
+ 0x6b, 0xba, 0x87, 0x6d, 0xdd, 0x2f, 0xce, 0x46, 0x95, 0x0b, 0x86, 0x51, 0xa3, 0xa3, 0x65, 0x3a,
+ 0x88, 0x4e, 0xc1, 0x84, 0xb3, 0x75, 0xd5, 0x60, 0x21, 0xa9, 0xb9, 0x1e, 0xde, 0x36, 0x6f, 0x16,
+ 0x1f, 0xa1, 0xfe, 0x1d, 0x27, 0x03, 0x34, 0x20, 0xd7, 0xa8, 0x18, 0x9d, 0x04, 0xd9, 0xf0, 0x77,
+ 0x74, 0xcf, 0xa5, 0x39, 0xd9, 0x77, 0x75, 0x03, 0x17, 0x1f, 0x65, 0xaa, 0x4c, 0xbe, 0x22, 0xc4,
+ 0x64, 0x4b, 0xf8, 0x37, 0xcc, 0xed, 0x40, 0x30, 0x3e, 0xce, 0xb6, 0x04, 0x95, 0x71, 0xb6, 0x39,
+ 0x90, 0x89, 0x2b, 0xba, 0x5e, 0x3c, 0x47, 0xd5, 0x0a, 0xee, 0x8e, 0x1b, 0x7d, 0xef, 0xc3, 0x30,
+ 0x46, 0x34, 0x3b, 0x2f, 0x3d, 0xc9, 0x1a, 0x32, 0x77, 0x27, 0xf2, 0xc6, 0x73, 0x70, 0x84, 0x28,
+ 0xb5, 0x70, 0xa0, 0x37, 0xf4, 0x40, 0x8f, 0x68, 0x3f, 0x41, 0xb5, 0x89, 0xdf, 0x97, 0xf9, 0x60,
+ 0x97, 0x9d, 0x5e, 0x7b, 0x6b, 0x37, 0x8c, 0xac, 0x27, 0x99, 0x9d, 0x44, 0x26, 0x62, 0xeb, 0x43,
+ 0x6b, 0xba, 0x4b, 0x0a, 0xe4, 0xa3, 0x81, 0x8f, 0xb2, 0xc0, 0x42, 0x5f, 0x96, 0x48, 0x17, 0x54,
+ 0x5d, 0x5d, 0x20, 0xfd, 0xcb, 0x8b, 0x35, 0x39, 0x41, 0xfa, 0xa8, 0xa5, 0xfa, 0x46, 0x4d, 0x53,
+ 0x37, 0x57, 0x36, 0xea, 0xcb, 0x35, 0x39, 0x19, 0x6d, 0xd8, 0xbf, 0x97, 0x80, 0x42, 0xf7, 0xd9,
+ 0x0b, 0xfd, 0x28, 0x1c, 0x15, 0x17, 0x25, 0x3e, 0x0e, 0xb4, 0x1b, 0xa6, 0x47, 0xf7, 0x62, 0x4b,
+ 0x67, 0x75, 0x31, 0x8c, 0x86, 0x29, 0xae, 0xb5, 0x8e, 0x83, 0xe7, 0x4c, 0x8f, 0xec, 0xb4, 0x96,
+ 0x1e, 0xa0, 0x25, 0x98, 0xb5, 0x1d, 0xcd, 0x0f, 0x74, 0xbb, 0xa1, 0x7b, 0x0d, 0xad, 0x73, 0x45,
+ 0xa5, 0xe9, 0x86, 0x81, 0x7d, 0xdf, 0x61, 0x35, 0x30, 0x64, 0x79, 0xd0, 0x76, 0xd6, 0xb9, 0x72,
+ 0xa7, 0x38, 0x94, 0xb9, 0x6a, 0x4f, 0xe4, 0x26, 0xf7, 0x8a, 0xdc, 0x07, 0x20, 0xdb, 0xd2, 0x5d,
+ 0x0d, 0xdb, 0x81, 0xb7, 0x4b, 0x3b, 0xee, 0x8c, 0x9a, 0x69, 0xe9, 0x6e, 0x8d, 0x3c, 0x7f, 0x34,
+ 0x07, 0x9f, 0x7f, 0x4c, 0x42, 0x3e, 0xda, 0x75, 0x93, 0x43, 0x8c, 0x41, 0x0b, 0x94, 0x44, 0x53,
+ 0xd8, 0xc3, 0xfb, 0xf6, 0xe8, 0xf3, 0x55, 0x52, 0xb9, 0x94, 0x11, 0xd6, 0x0b, 0xab, 0x0c, 0x49,
+ 0xba, 0x06, 0x12, 0x5a, 0x98, 0xf5, 0x1e, 0x19, 0x95, 0x3f, 0xa1, 0x45, 0x18, 0xb9, 0xea, 0x53,
+ 0xee, 0x11, 0xca, 0xfd, 0xc8, 0xfe, 0xdc, 0xcf, 0xae, 0x53, 0xf2, 0xec, 0xb3, 0xeb, 0xda, 0xca,
+ 0xaa, 0xba, 0x5c, 0x5e, 0x52, 0x39, 0x1c, 0x1d, 0x83, 0x94, 0xa5, 0xdf, 0xda, 0xed, 0xae, 0x71,
+ 0x54, 0x34, 0xac, 0xe3, 0x8f, 0x41, 0xea, 0x06, 0xd6, 0xaf, 0x75, 0x57, 0x16, 0x2a, 0xfa, 0x10,
+ 0x43, 0xff, 0x0c, 0xa4, 0xa9, 0xbf, 0x10, 0x00, 0xf7, 0x98, 0x7c, 0x08, 0x65, 0x20, 0x55, 0x5d,
+ 0x55, 0x49, 0xf8, 0xcb, 0x90, 0x67, 0x52, 0x6d, 0xad, 0x5e, 0xab, 0xd6, 0xe4, 0x44, 0xe9, 0x3c,
+ 0x8c, 0x30, 0x27, 0x90, 0xad, 0x11, 0xba, 0x41, 0x3e, 0xc4, 0x1f, 0x39, 0x87, 0x24, 0x46, 0x37,
+ 0x97, 0x2b, 0x35, 0x55, 0x4e, 0x44, 0x97, 0xd7, 0x87, 0x7c, 0xb4, 0xe1, 0xfe, 0x68, 0x62, 0xea,
+ 0x3b, 0x12, 0xe4, 0x22, 0x0d, 0x34, 0xe9, 0x7c, 0x74, 0xcb, 0x72, 0x6e, 0x68, 0xba, 0x65, 0xea,
+ 0x3e, 0x0f, 0x0a, 0xa0, 0xa2, 0x32, 0x91, 0x0c, 0xbb, 0x68, 0x1f, 0x89, 0xf1, 0xaf, 0x4a, 0x20,
+ 0xf7, 0xf6, 0xae, 0x3d, 0x06, 0x4a, 0x1f, 0xab, 0x81, 0xaf, 0x48, 0x50, 0xe8, 0x6e, 0x58, 0x7b,
+ 0xcc, 0x3b, 0xf1, 0xb1, 0x9a, 0xf7, 0x76, 0x02, 0xc6, 0xba, 0xda, 0xd4, 0x61, 0xad, 0xfb, 0x3c,
+ 0x4c, 0x98, 0x0d, 0xdc, 0x72, 0x9d, 0x00, 0xdb, 0xc6, 0xae, 0x66, 0xe1, 0xeb, 0xd8, 0x2a, 0x96,
+ 0x68, 0xa2, 0x38, 0xb3, 0x7f, 0x23, 0x3c, 0x5f, 0xef, 0xe0, 0x96, 0x08, 0x4c, 0x99, 0xac, 0x2f,
+ 0xd4, 0x96, 0xd7, 0x56, 0x37, 0x6a, 0x2b, 0xd5, 0x17, 0xb4, 0xcd, 0x95, 0x1f, 0x5f, 0x59, 0x7d,
+ 0x6e, 0x45, 0x95, 0xcd, 0x1e, 0xb5, 0x0f, 0x71, 0xab, 0xaf, 0x81, 0xdc, 0x6b, 0x14, 0x3a, 0x0a,
+ 0x83, 0xcc, 0x92, 0x0f, 0xa1, 0x49, 0x18, 0x5f, 0x59, 0xd5, 0xd6, 0xeb, 0x0b, 0x35, 0xad, 0x76,
+ 0xe5, 0x4a, 0xad, 0xba, 0xb1, 0xce, 0xae, 0x36, 0x42, 0xed, 0x8d, 0xee, 0x4d, 0xfd, 0x72, 0x12,
+ 0x26, 0x07, 0x58, 0x82, 0xca, 0xfc, 0x50, 0xc2, 0xce, 0x49, 0x4f, 0x0e, 0x63, 0xfd, 0x3c, 0xe9,
+ 0x0a, 0xd6, 0x74, 0x2f, 0xe0, 0x67, 0x98, 0x93, 0x40, 0xbc, 0x64, 0x07, 0xe6, 0xb6, 0x89, 0x3d,
+ 0x7e, 0x13, 0xc4, 0x4e, 0x2a, 0xe3, 0x1d, 0x39, 0xbb, 0x0c, 0x7a, 0x02, 0x90, 0xeb, 0xf8, 0x66,
+ 0x60, 0x5e, 0xc7, 0x9a, 0x69, 0x8b, 0x6b, 0x23, 0x72, 0x72, 0x49, 0xa9, 0xb2, 0x18, 0xa9, 0xdb,
+ 0x41, 0xa8, 0x6d, 0xe3, 0xa6, 0xde, 0xa3, 0x4d, 0x12, 0x78, 0x52, 0x95, 0xc5, 0x48, 0xa8, 0x7d,
+ 0x02, 0xf2, 0x0d, 0xa7, 0x4d, 0xda, 0x39, 0xa6, 0x47, 0xea, 0x85, 0xa4, 0xe6, 0x98, 0x2c, 0x54,
+ 0xe1, 0x8d, 0x7a, 0xe7, 0xbe, 0x2a, 0xaf, 0xe6, 0x98, 0x8c, 0xa9, 0x3c, 0x0e, 0xe3, 0x7a, 0xb3,
+ 0xe9, 0x11, 0x72, 0x41, 0xc4, 0x8e, 0x1e, 0x85, 0x50, 0x4c, 0x15, 0xa7, 0x9f, 0x85, 0x8c, 0xf0,
+ 0x03, 0x29, 0xc9, 0xc4, 0x13, 0x9a, 0xcb, 0xce, 0xd3, 0x89, 0xb9, 0xac, 0x9a, 0xb1, 0xc5, 0xe0,
+ 0x09, 0xc8, 0x9b, 0xbe, 0xd6, 0xb9, 0x7e, 0x4f, 0x1c, 0x4f, 0xcc, 0x65, 0xd4, 0x9c, 0xe9, 0x87,
+ 0x57, 0x97, 0xa5, 0x37, 0x12, 0x50, 0xe8, 0xfe, 0x7c, 0x80, 0x16, 0x20, 0x63, 0x39, 0x86, 0x4e,
+ 0x43, 0x8b, 0x7d, 0xbb, 0x9a, 0x8b, 0xf9, 0xe2, 0x30, 0xbf, 0xc4, 0xf5, 0xd5, 0x10, 0x39, 0xfd,
+ 0x77, 0x12, 0x64, 0x84, 0x18, 0x1d, 0x81, 0x94, 0xab, 0x07, 0x3b, 0x94, 0x2e, 0x5d, 0x49, 0xc8,
+ 0x92, 0x4a, 0x9f, 0x89, 0xdc, 0x77, 0x75, 0x9b, 0x86, 0x00, 0x97, 0x93, 0x67, 0xb2, 0xae, 0x16,
+ 0xd6, 0x1b, 0xf4, 0x5c, 0xe3, 0xb4, 0x5a, 0xd8, 0x0e, 0x7c, 0xb1, 0xae, 0x5c, 0x5e, 0xe5, 0x62,
+ 0x74, 0x1a, 0x26, 0x02, 0x4f, 0x37, 0xad, 0x2e, 0xdd, 0x14, 0xd5, 0x95, 0xc5, 0x40, 0xa8, 0xac,
+ 0xc0, 0x31, 0xc1, 0xdb, 0xc0, 0x81, 0x6e, 0xec, 0xe0, 0x46, 0x07, 0x34, 0x42, 0xef, 0x2f, 0x8e,
+ 0x72, 0x85, 0x05, 0x3e, 0x2e, 0xb0, 0xa5, 0xef, 0x4b, 0x30, 0x21, 0x4e, 0x62, 0x8d, 0xd0, 0x59,
+ 0xcb, 0x00, 0xba, 0x6d, 0x3b, 0x41, 0xd4, 0x5d, 0xfd, 0xa1, 0xdc, 0x87, 0x9b, 0x2f, 0x87, 0x20,
+ 0x35, 0x42, 0x30, 0xdd, 0x02, 0xe8, 0x8c, 0xec, 0xe9, 0xb6, 0x59, 0xc8, 0xf1, 0x6f, 0x43, 0xf4,
+ 0x03, 0x23, 0x3b, 0xbb, 0x03, 0x13, 0x91, 0x23, 0x1b, 0x9a, 0x82, 0xf4, 0x16, 0x6e, 0x9a, 0x36,
+ 0xbf, 0xf1, 0x65, 0x0f, 0xe2, 0x86, 0x25, 0x15, 0xde, 0xb0, 0x54, 0x3e, 0x07, 0x93, 0x86, 0xd3,
+ 0xea, 0x35, 0xb7, 0x22, 0xf7, 0xdc, 0x1f, 0xf8, 0x9f, 0x96, 0x5e, 0x84, 0x4e, 0x8b, 0xf9, 0x03,
+ 0x49, 0xfa, 0x6a, 0x22, 0xb9, 0xb8, 0x56, 0xf9, 0x7a, 0x62, 0x7a, 0x91, 0x41, 0xd7, 0xc4, 0x4c,
+ 0x55, 0xbc, 0x6d, 0x61, 0x83, 0x58, 0x0f, 0x5f, 0x3b, 0x0d, 0x4f, 0x36, 0xcd, 0x60, 0xa7, 0xbd,
+ 0x35, 0x6f, 0x38, 0xad, 0x33, 0x4d, 0xa7, 0xe9, 0x74, 0xbe, 0xa9, 0x92, 0x27, 0xfa, 0x40, 0xff,
+ 0xe3, 0xdf, 0x55, 0xb3, 0xa1, 0x74, 0x3a, 0xf6, 0x23, 0xac, 0xb2, 0x02, 0x93, 0x5c, 0x59, 0xa3,
+ 0x1f, 0x76, 0xd8, 0xf1, 0x04, 0xed, 0x7b, 0x39, 0x56, 0xfc, 0xc6, 0xbb, 0xb4, 0x5c, 0xab, 0x13,
+ 0x1c, 0x4a, 0xc6, 0xd8, 0x09, 0x46, 0x51, 0xe1, 0x70, 0x17, 0x1f, 0xdb, 0x9a, 0xd8, 0x8b, 0x61,
+ 0xfc, 0x1e, 0x67, 0x9c, 0x8c, 0x30, 0xae, 0x73, 0xa8, 0x52, 0x85, 0xb1, 0x83, 0x70, 0xfd, 0x0d,
+ 0xe7, 0xca, 0xe3, 0x28, 0xc9, 0x22, 0x8c, 0x53, 0x12, 0xa3, 0xed, 0x07, 0x4e, 0x8b, 0xe6, 0xbd,
+ 0xfd, 0x69, 0xfe, 0xf6, 0x5d, 0xb6, 0x57, 0x0a, 0x04, 0x56, 0x0d, 0x51, 0x8a, 0x02, 0xf4, 0x5b,
+ 0x56, 0x03, 0x1b, 0x56, 0x0c, 0xc3, 0x1d, 0x6e, 0x48, 0xa8, 0xaf, 0x7c, 0x16, 0xa6, 0xc8, 0xff,
+ 0x34, 0x2d, 0x45, 0x2d, 0x89, 0xbf, 0x49, 0x2b, 0x7e, 0xff, 0x25, 0xb6, 0x1d, 0x27, 0x43, 0x82,
+ 0x88, 0x4d, 0x91, 0x55, 0x6c, 0xe2, 0x20, 0xc0, 0x9e, 0xaf, 0xe9, 0xd6, 0x20, 0xf3, 0x22, 0x57,
+ 0x11, 0xc5, 0x2f, 0xbf, 0xd7, 0xbd, 0x8a, 0x8b, 0x0c, 0x59, 0xb6, 0x2c, 0x65, 0x13, 0x8e, 0x0e,
+ 0x88, 0x8a, 0x21, 0x38, 0x5f, 0xe6, 0x9c, 0x53, 0x7d, 0x91, 0x41, 0x68, 0xd7, 0x40, 0xc8, 0xc3,
+ 0xb5, 0x1c, 0x82, 0xf3, 0xb7, 0x38, 0x27, 0xe2, 0x58, 0xb1, 0xa4, 0x84, 0xf1, 0x59, 0x98, 0xb8,
+ 0x8e, 0xbd, 0x2d, 0xc7, 0xe7, 0xd7, 0x3f, 0x43, 0xd0, 0xbd, 0xc2, 0xe9, 0xc6, 0x39, 0x90, 0xde,
+ 0x07, 0x11, 0xae, 0xa7, 0x21, 0xb3, 0xad, 0x1b, 0x78, 0x08, 0x8a, 0xaf, 0x70, 0x8a, 0x51, 0xa2,
+ 0x4f, 0xa0, 0x65, 0xc8, 0x37, 0x1d, 0x5e, 0x99, 0xe2, 0xe1, 0xaf, 0x72, 0x78, 0x4e, 0x60, 0x38,
+ 0x85, 0xeb, 0xb8, 0x6d, 0x8b, 0x94, 0xad, 0x78, 0x8a, 0xdf, 0x16, 0x14, 0x02, 0xc3, 0x29, 0x0e,
+ 0xe0, 0xd6, 0xd7, 0x04, 0x85, 0x1f, 0xf1, 0xe7, 0x33, 0x90, 0x73, 0x6c, 0x6b, 0xd7, 0xb1, 0x87,
+ 0x31, 0xe2, 0x75, 0xce, 0x00, 0x1c, 0x42, 0x08, 0x2e, 0x43, 0x76, 0xd8, 0x85, 0xf8, 0xdd, 0xf7,
+ 0xc4, 0xf6, 0x10, 0x2b, 0xb0, 0x08, 0xe3, 0x22, 0x41, 0x99, 0x8e, 0x3d, 0x04, 0xc5, 0xd7, 0x38,
+ 0x45, 0x21, 0x02, 0xe3, 0xd3, 0x08, 0xb0, 0x1f, 0x34, 0xf1, 0x30, 0x24, 0x6f, 0x88, 0x69, 0x70,
+ 0x08, 0x77, 0xe5, 0x16, 0xb6, 0x8d, 0x9d, 0xe1, 0x18, 0xde, 0x14, 0xae, 0x14, 0x18, 0x42, 0x51,
+ 0x85, 0xb1, 0x96, 0xee, 0xf9, 0x3b, 0xba, 0x35, 0xd4, 0x72, 0xfc, 0x1e, 0xe7, 0xc8, 0x87, 0x20,
+ 0xee, 0x91, 0xb6, 0x7d, 0x10, 0x9a, 0xaf, 0x0b, 0x8f, 0x44, 0x60, 0x7c, 0xeb, 0xf9, 0x01, 0xbd,
+ 0x2b, 0x3b, 0x08, 0xdb, 0xef, 0x8b, 0xad, 0xc7, 0xb0, 0xcb, 0x51, 0xc6, 0xcb, 0x90, 0xf5, 0xcd,
+ 0x5b, 0x43, 0xd1, 0xfc, 0x81, 0x58, 0x69, 0x0a, 0x20, 0xe0, 0x17, 0xe0, 0xd8, 0xc0, 0x32, 0x31,
+ 0x04, 0xd9, 0x1f, 0x72, 0xb2, 0x23, 0x03, 0x4a, 0x05, 0x4f, 0x09, 0x07, 0xa5, 0xfc, 0x23, 0x91,
+ 0x12, 0x70, 0x0f, 0xd7, 0x1a, 0x39, 0x2b, 0xf8, 0xfa, 0xf6, 0xc1, 0xbc, 0xf6, 0xc7, 0xc2, 0x6b,
+ 0x0c, 0xdb, 0xe5, 0xb5, 0x0d, 0x38, 0xc2, 0x19, 0x0f, 0xb6, 0xae, 0x7f, 0x22, 0x12, 0x2b, 0x43,
+ 0x6f, 0x76, 0xaf, 0xee, 0xe7, 0x60, 0x3a, 0x74, 0xa7, 0x68, 0x4a, 0x7d, 0xad, 0xa5, 0xbb, 0x43,
+ 0x30, 0x7f, 0x83, 0x33, 0x8b, 0x8c, 0x1f, 0x76, 0xb5, 0xfe, 0xb2, 0xee, 0x12, 0xf2, 0xe7, 0xa1,
+ 0x28, 0xc8, 0xdb, 0xb6, 0x87, 0x0d, 0xa7, 0x69, 0x9b, 0xb7, 0x70, 0x63, 0x08, 0xea, 0x3f, 0xed,
+ 0x59, 0xaa, 0xcd, 0x08, 0x9c, 0x30, 0xd7, 0x41, 0x0e, 0x7b, 0x15, 0xcd, 0x6c, 0xb9, 0x8e, 0x17,
+ 0xc4, 0x30, 0xfe, 0x99, 0x58, 0xa9, 0x10, 0x57, 0xa7, 0x30, 0xa5, 0x06, 0x05, 0xfa, 0x38, 0x6c,
+ 0x48, 0xfe, 0x39, 0x27, 0x1a, 0xeb, 0xa0, 0x78, 0xe2, 0x30, 0x9c, 0x96, 0xab, 0x7b, 0xc3, 0xe4,
+ 0xbf, 0xbf, 0x10, 0x89, 0x83, 0x43, 0x78, 0xe2, 0x08, 0x76, 0x5d, 0x4c, 0xaa, 0xfd, 0x10, 0x0c,
+ 0xdf, 0x14, 0x89, 0x43, 0x60, 0x38, 0x85, 0x68, 0x18, 0x86, 0xa0, 0xf8, 0x4b, 0x41, 0x21, 0x30,
+ 0x84, 0xe2, 0x33, 0x9d, 0x42, 0xeb, 0xe1, 0xa6, 0xe9, 0x07, 0x1e, 0x6b, 0x85, 0xf7, 0xa7, 0xfa,
+ 0xd6, 0x7b, 0xdd, 0x4d, 0x98, 0x1a, 0x81, 0x92, 0x4c, 0xc4, 0xaf, 0x50, 0xe9, 0x49, 0x29, 0xde,
+ 0xb0, 0x6f, 0x8b, 0x4c, 0x14, 0x81, 0x11, 0xdb, 0x22, 0x1d, 0x22, 0x71, 0xbb, 0x41, 0xce, 0x07,
+ 0x43, 0xd0, 0x7d, 0xa7, 0xc7, 0xb8, 0x75, 0x81, 0x25, 0x9c, 0x91, 0xfe, 0xa7, 0x6d, 0x5f, 0xc3,
+ 0xbb, 0x43, 0x45, 0xe7, 0x5f, 0xf5, 0xf4, 0x3f, 0x9b, 0x0c, 0xc9, 0x72, 0xc8, 0x78, 0x4f, 0x3f,
+ 0x85, 0xe2, 0x7e, 0x05, 0x54, 0xfc, 0xa9, 0xfb, 0x7c, 0xbe, 0xdd, 0xed, 0x94, 0xb2, 0x44, 0x82,
+ 0xbc, 0xbb, 0xe9, 0x89, 0x27, 0x7b, 0xe9, 0x7e, 0x18, 0xe7, 0x5d, 0x3d, 0x8f, 0x72, 0x05, 0xc6,
+ 0xba, 0x1a, 0x9e, 0x78, 0xaa, 0x9f, 0xe6, 0x54, 0xf9, 0x68, 0xbf, 0xa3, 0x9c, 0x87, 0x14, 0x69,
+ 0x5e, 0xe2, 0xe1, 0x3f, 0xc3, 0xe1, 0x54, 0x5d, 0xf9, 0x24, 0x64, 0x44, 0xd3, 0x12, 0x0f, 0xfd,
+ 0x59, 0x0e, 0x0d, 0x21, 0x04, 0x2e, 0x1a, 0x96, 0x78, 0xf8, 0xcf, 0x09, 0xb8, 0x80, 0x10, 0xf8,
+ 0xf0, 0x2e, 0xfc, 0xee, 0x2f, 0xa4, 0x78, 0xd1, 0x11, 0xbe, 0xbb, 0x0c, 0xa3, 0xbc, 0x53, 0x89,
+ 0x47, 0x7f, 0x81, 0xbf, 0x5c, 0x20, 0x94, 0x8b, 0x90, 0x1e, 0xd2, 0xe1, 0xbf, 0xc4, 0xa1, 0x4c,
+ 0x5f, 0xa9, 0x42, 0x2e, 0xd2, 0x9d, 0xc4, 0xc3, 0x7f, 0x99, 0xc3, 0xa3, 0x28, 0x62, 0x3a, 0xef,
+ 0x4e, 0xe2, 0x09, 0xbe, 0x28, 0x4c, 0xe7, 0x08, 0xe2, 0x36, 0xd1, 0x98, 0xc4, 0xa3, 0x7f, 0x45,
+ 0x78, 0x5d, 0x40, 0x94, 0x67, 0x20, 0x1b, 0x16, 0x9b, 0x78, 0xfc, 0xaf, 0x72, 0x7c, 0x07, 0x43,
+ 0x3c, 0x10, 0x29, 0x76, 0xf1, 0x14, 0xbf, 0x26, 0x3c, 0x10, 0x41, 0x91, 0x6d, 0xd4, 0xdb, 0xc0,
+ 0xc4, 0x33, 0xfd, 0xba, 0xd8, 0x46, 0x3d, 0xfd, 0x0b, 0x59, 0x4d, 0x9a, 0xf3, 0xe3, 0x29, 0x7e,
+ 0x43, 0xac, 0x26, 0xd5, 0x27, 0x66, 0xf4, 0x76, 0x04, 0xf1, 0x1c, 0xbf, 0x29, 0xcc, 0xe8, 0x69,
+ 0x08, 0x94, 0x35, 0x40, 0xfd, 0xdd, 0x40, 0x3c, 0xdf, 0x97, 0x38, 0xdf, 0x44, 0x5f, 0x33, 0xa0,
+ 0x3c, 0x07, 0x47, 0x06, 0x77, 0x02, 0xf1, 0xac, 0x5f, 0xbe, 0xdf, 0x73, 0x76, 0x8b, 0x36, 0x02,
+ 0xca, 0x46, 0xa7, 0xa4, 0x44, 0xbb, 0x80, 0x78, 0xda, 0x97, 0xef, 0x77, 0x27, 0xee, 0x68, 0x13,
+ 0xa0, 0x94, 0x01, 0x3a, 0x05, 0x38, 0x9e, 0xeb, 0x15, 0xce, 0x15, 0x01, 0x91, 0xad, 0xc1, 0xeb,
+ 0x6f, 0x3c, 0xfe, 0x2b, 0x62, 0x6b, 0x70, 0x04, 0xd9, 0x1a, 0xa2, 0xf4, 0xc6, 0xa3, 0x5f, 0x15,
+ 0x5b, 0x43, 0x40, 0x48, 0x64, 0x47, 0xaa, 0x5b, 0x3c, 0xc3, 0xeb, 0x22, 0xb2, 0x23, 0x28, 0x65,
+ 0x05, 0x26, 0xfa, 0x0a, 0x62, 0x3c, 0xd5, 0x57, 0x39, 0x95, 0xdc, 0x5b, 0x0f, 0xa3, 0xc5, 0x8b,
+ 0x17, 0xc3, 0x78, 0xb6, 0xdf, 0xe9, 0x29, 0x5e, 0xbc, 0x16, 0x2a, 0x97, 0x21, 0x63, 0xb7, 0x2d,
+ 0x8b, 0x6c, 0x1e, 0xb4, 0xff, 0x2f, 0xf7, 0x8a, 0xff, 0xfa, 0x01, 0xf7, 0x8e, 0x00, 0x28, 0xe7,
+ 0x21, 0x8d, 0x5b, 0x5b, 0xb8, 0x11, 0x87, 0xfc, 0xb7, 0x0f, 0x44, 0xc2, 0x24, 0xda, 0xca, 0x33,
+ 0x00, 0xec, 0x6a, 0x84, 0x7e, 0xf6, 0x8b, 0xc1, 0xfe, 0xfb, 0x07, 0xfc, 0x37, 0x35, 0x1d, 0x48,
+ 0x87, 0x80, 0xfd, 0x42, 0x67, 0x7f, 0x82, 0xf7, 0xba, 0x09, 0xe8, 0x8a, 0x3c, 0x0d, 0xa3, 0x57,
+ 0x7d, 0xc7, 0x0e, 0xf4, 0x66, 0x1c, 0xfa, 0x3f, 0x38, 0x5a, 0xe8, 0x13, 0x87, 0xb5, 0x1c, 0x0f,
+ 0x07, 0x7a, 0xd3, 0x8f, 0xc3, 0xfe, 0x27, 0xc7, 0x86, 0x00, 0x02, 0x36, 0x74, 0x3f, 0x18, 0x66,
+ 0xde, 0xff, 0x25, 0xc0, 0x02, 0x40, 0x8c, 0x26, 0xff, 0x5f, 0xc3, 0xbb, 0x71, 0xd8, 0xf7, 0x85,
+ 0xd1, 0x5c, 0x5f, 0xf9, 0x24, 0x64, 0xc9, 0xbf, 0xec, 0x87, 0x72, 0x31, 0xe0, 0xff, 0xe6, 0xe0,
+ 0x0e, 0x82, 0xbc, 0xd9, 0x0f, 0x1a, 0x81, 0x19, 0xef, 0xec, 0xff, 0xe1, 0x2b, 0x2d, 0xf4, 0x95,
+ 0x32, 0xe4, 0xfc, 0xa0, 0xd1, 0x68, 0xf3, 0xfe, 0x34, 0x06, 0xfe, 0xbf, 0x1f, 0x84, 0x57, 0x16,
+ 0x21, 0x86, 0xac, 0xf6, 0x8d, 0x6b, 0x81, 0xeb, 0xd0, 0xcf, 0x1c, 0x71, 0x0c, 0xf7, 0x39, 0x43,
+ 0x04, 0x52, 0xa9, 0x0d, 0xbe, 0xbe, 0x85, 0x45, 0x67, 0xd1, 0x61, 0x17, 0xb7, 0x2f, 0x96, 0xe2,
+ 0x6f, 0x60, 0xe1, 0xaf, 0x53, 0x30, 0x86, 0x6f, 0xea, 0x2d, 0x57, 0x90, 0xa0, 0x14, 0x29, 0xc0,
+ 0xd3, 0x07, 0xbb, 0xbd, 0x2d, 0x7d, 0x51, 0x02, 0xa9, 0x8c, 0x1e, 0x83, 0xdc, 0x42, 0xa7, 0xfc,
+ 0xb3, 0xdf, 0x59, 0x55, 0x52, 0x77, 0xee, 0xce, 0x1e, 0x52, 0xa3, 0x03, 0xe8, 0x41, 0x18, 0x59,
+ 0xe9, 0xfc, 0x56, 0x2f, 0xc9, 0x55, 0xb8, 0x0c, 0x29, 0x90, 0xa8, 0xb3, 0x4f, 0xab, 0xf9, 0xca,
+ 0x29, 0x32, 0xf2, 0x0f, 0x77, 0x67, 0xf7, 0x9e, 0x0a, 0xb1, 0x76, 0x7e, 0xb3, 0x6d, 0x36, 0xd4,
+ 0x44, 0xbd, 0xa1, 0x64, 0x7e, 0xfe, 0xb5, 0xd9, 0x43, 0x6f, 0xbe, 0x36, 0x2b, 0x95, 0x6c, 0x90,
+ 0x2a, 0x68, 0x16, 0xa4, 0x32, 0x35, 0x23, 0x77, 0x76, 0x74, 0x9e, 0x6a, 0x96, 0x2b, 0x19, 0x42,
+ 0xf9, 0xd6, 0xdd, 0x59, 0x49, 0x95, 0xca, 0xa8, 0x02, 0xd2, 0x22, 0xfd, 0x02, 0x91, 0xaf, 0x9c,
+ 0xe3, 0xaf, 0x7a, 0x62, 0xdf, 0x57, 0x9d, 0x61, 0x1b, 0x6e, 0x7e, 0xd3, 0xb4, 0x83, 0x1f, 0x39,
+ 0x7b, 0x49, 0x95, 0x16, 0x95, 0xd4, 0xfb, 0xe4, 0x7d, 0x0f, 0x83, 0x54, 0x45, 0x33, 0x90, 0x22,
+ 0xc9, 0x90, 0xbe, 0x32, 0x59, 0x81, 0x7b, 0x77, 0x67, 0x47, 0x96, 0x77, 0x49, 0x8e, 0x53, 0xa9,
+ 0xbc, 0x74, 0x11, 0xa4, 0x4d, 0x74, 0xb8, 0xdf, 0x28, 0x62, 0xca, 0x61, 0x90, 0x2a, 0xfc, 0xa7,
+ 0xa8, 0x5c, 0x5c, 0x51, 0xa5, 0x8a, 0x92, 0xba, 0x43, 0xd8, 0x27, 0x41, 0xaa, 0x9d, 0xca, 0x64,
+ 0x24, 0xf6, 0x59, 0x4d, 0x49, 0xdd, 0x79, 0x7d, 0xf6, 0x50, 0xe9, 0x24, 0x48, 0x2a, 0x9a, 0x01,
+ 0xe8, 0x54, 0x26, 0x4a, 0x3b, 0xa6, 0x46, 0x24, 0x4a, 0xea, 0x2d, 0xa2, 0x7a, 0x1a, 0x32, 0x55,
+ 0xdd, 0x17, 0xbf, 0xee, 0x4b, 0xd7, 0xed, 0xe0, 0xa9, 0xb3, 0xdc, 0xca, 0xec, 0xff, 0xdd, 0x9d,
+ 0x4d, 0x9b, 0x44, 0xa0, 0x32, 0x79, 0xe5, 0x89, 0xbf, 0x7f, 0x67, 0xe6, 0xd0, 0xdb, 0xef, 0xcc,
+ 0x48, 0xef, 0xbf, 0x33, 0x23, 0xfd, 0xe0, 0x9d, 0x19, 0xe9, 0xf6, 0xbd, 0x19, 0xe9, 0xcd, 0x7b,
+ 0x33, 0xd2, 0xb7, 0xee, 0xcd, 0x48, 0xdf, 0xbd, 0x37, 0x23, 0xdd, 0xb9, 0x37, 0x23, 0xbd, 0x75,
+ 0x6f, 0x46, 0x7a, 0xfb, 0xde, 0x8c, 0xf4, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x67, 0x48, 0x0f,
+ 0x02, 0x36, 0x35, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -1930,7 +1965,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1958,7 +1993,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1968,6 +2003,9 @@ func (m *A) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthExample
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthExample
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1987,7 +2025,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Number |= (int64(b) & 0x7F) << shift
+ m.Number |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2006,7 +2044,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2015,6 +2053,9 @@ func (m *A) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthExample
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthExample
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2031,6 +2072,9 @@ func (m *A) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthExample
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthExample
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2059,7 +2103,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2087,7 +2131,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2096,6 +2140,9 @@ func (m *B) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthExample
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthExample
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2117,7 +2164,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2126,6 +2173,9 @@ func (m *B) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthExample
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthExample
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2144,6 +2194,9 @@ func (m *B) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthExample
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthExample
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2172,7 +2225,7 @@ func (m *C) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2200,7 +2253,7 @@ func (m *C) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2215,6 +2268,9 @@ func (m *C) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthExample
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthExample
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2243,7 +2299,7 @@ func (m *U) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2271,7 +2327,7 @@ func (m *U) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2280,6 +2336,9 @@ func (m *U) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthExample
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthExample
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2304,7 +2363,7 @@ func (m *U) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2313,6 +2372,9 @@ func (m *U) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthExample
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthExample
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2332,6 +2394,9 @@ func (m *U) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthExample
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthExample
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2360,7 +2425,7 @@ func (m *E) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2392,6 +2457,9 @@ func (m *E) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthExample
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthExample
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2406,6 +2474,9 @@ func (m *E) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthExample
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthExample
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2435,7 +2506,7 @@ func (m *R) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2463,7 +2534,7 @@ func (m *R) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2478,6 +2549,9 @@ func (m *R) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthExample
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthExample
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2505,7 +2579,7 @@ func (m *CastType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2533,7 +2607,7 @@ func (m *CastType) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2548,6 +2622,9 @@ func (m *CastType) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthExample
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthExample
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2615,10 +2692,13 @@ func skipExample(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthExample
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthExample
+ }
return iNdEx, nil
case 3:
for {
@@ -2647,6 +2727,9 @@ func skipExample(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthExample
+ }
}
return iNdEx, nil
case 4:
@@ -2665,36 +2748,3 @@ var (
ErrInvalidLengthExample = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowExample = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("example.proto", fileDescriptor_example_32f420a2a58e4270) }
-
-var fileDescriptor_example_32f420a2a58e4270 = []byte{
- // 425 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x41, 0x6b, 0x13, 0x41,
- 0x14, 0xc7, 0xf3, 0x36, 0xdb, 0xba, 0x7d, 0x6d, 0x41, 0x46, 0x0a, 0x41, 0x64, 0x26, 0xac, 0x20,
- 0xb1, 0xd6, 0x0d, 0x46, 0x41, 0xd9, 0x5b, 0xa6, 0x4a, 0xc9, 0x41, 0x0f, 0xa3, 0xf9, 0x00, 0x4d,
- 0x32, 0xc6, 0x01, 0xb3, 0x13, 0xb2, 0xb3, 0x60, 0x73, 0xda, 0xa3, 0x37, 0xbf, 0x42, 0xbd, 0xf5,
- 0x23, 0x78, 0xf4, 0x98, 0x63, 0x8e, 0xe2, 0x61, 0x69, 0xe6, 0x13, 0xf4, 0x28, 0x9e, 0x64, 0xa6,
- 0x41, 0x02, 0x62, 0x6f, 0xfb, 0x7e, 0xef, 0xed, 0xff, 0xff, 0x63, 0x70, 0x5f, 0x7e, 0x3a, 0x9d,
- 0x4c, 0x3f, 0xca, 0x64, 0x3a, 0xd3, 0x46, 0x93, 0xd0, 0xc8, 0xdc, 0xdc, 0x7d, 0x3c, 0x56, 0xe6,
- 0x43, 0x31, 0x48, 0x86, 0x7a, 0xd2, 0x1e, 0xeb, 0xb1, 0x6e, 0xfb, 0xe5, 0xa0, 0x78, 0xef, 0x27,
- 0x3f, 0xf8, 0xaf, 0xeb, 0x9f, 0xe2, 0x2f, 0x80, 0xd0, 0x25, 0x0f, 0x70, 0xf7, 0xa5, 0xcc, 0x87,
- 0x33, 0x35, 0x35, 0x4a, 0x67, 0x0d, 0x68, 0x42, 0x6b, 0x87, 0x87, 0x8b, 0x8a, 0xd5, 0xc4, 0xe6,
- 0x82, 0xdc, 0xc3, 0xed, 0x37, 0xc5, 0x64, 0x20, 0x67, 0x8d, 0xa0, 0x09, 0xad, 0xfa, 0xfa, 0x64,
- 0xcd, 0x48, 0x8a, 0x41, 0x6f, 0xd4, 0xa8, 0x37, 0xa1, 0xb5, 0xc7, 0x0f, 0xdd, 0xe6, 0x67, 0xc5,
- 0xe2, 0xff, 0xea, 0x38, 0xdb, 0xa4, 0x5f, 0xa8, 0x91, 0x08, 0x7a, 0xa3, 0x34, 0xfa, 0x7c, 0xce,
- 0x6a, 0x17, 0xe7, 0x0c, 0xe2, 0x0c, 0x81, 0x13, 0x86, 0xd0, 0xf5, 0x1a, 0xbb, 0x9d, 0x5b, 0x89,
- 0xbf, 0xec, 0xf2, 0xc8, 0x45, 0x2e, 0x2b, 0x06, 0x02, 0xba, 0x84, 0x23, 0x9c, 0x34, 0x82, 0x66,
- 0xbd, 0xb5, 0xc7, 0x9f, 0xad, 0xab, 0x8e, 0x6e, 0xac, 0x6a, 0x0f, 0x8b, 0xdc, 0xe8, 0x49, 0xd2,
- 0x57, 0x99, 0x79, 0xd2, 0x79, 0x21, 0xe0, 0x24, 0x0d, 0xaf, 0x5c, 0xdf, 0x7d, 0x84, 0x63, 0x42,
- 0x31, 0xcc, 0xd5, 0x5c, 0xfa, 0xca, 0x3a, 0x47, 0x5b, 0xb1, 0xed, 0xd7, 0x67, 0x6f, 0xd5, 0x5c,
- 0x0a, 0xcf, 0xe3, 0xe7, 0x08, 0x7d, 0x72, 0xf0, 0xaf, 0x94, 0x53, 0x39, 0x40, 0xe0, 0xfe, 0x3d,
- 0xfe, 0x62, 0x2e, 0x80, 0xa7, 0xe1, 0xc2, 0xa5, 0xdf, 0x41, 0x78, 0x75, 0x18, 0x45, 0x70, 0xbb,
- 0x2c, 0xcb, 0x32, 0x48, 0xc3, 0xc5, 0x57, 0x56, 0x8b, 0x1f, 0x22, 0x08, 0x42, 0x11, 0x67, 0x72,
- 0xa8, 0xc7, 0x99, 0x9a, 0xcb, 0x91, 0x8f, 0xdd, 0x17, 0x1b, 0x24, 0x0d, 0x97, 0xee, 0xf4, 0x11,
- 0x46, 0xc7, 0xa7, 0xb9, 0x79, 0x77, 0x36, 0x95, 0x84, 0xe1, 0x56, 0x2f, 0x33, 0x4f, 0x3b, 0x6b,
- 0xcb, 0x9d, 0xdf, 0x15, 0xdb, 0x52, 0x0e, 0x88, 0x6b, 0xce, 0x8f, 0x7e, 0xac, 0x68, 0xed, 0x72,
- 0x45, 0xe1, 0x6a, 0x45, 0xe1, 0xd7, 0x8a, 0x42, 0x69, 0x29, 0x5c, 0x58, 0x0a, 0xdf, 0x2c, 0x85,
- 0xef, 0x96, 0xc2, 0xc2, 0x52, 0x58, 0x5a, 0x0a, 0x97, 0x96, 0xc2, 0x9f, 0x00, 0x00, 0x00, 0xff,
- 0xff, 0x71, 0x9d, 0xd3, 0x01, 0x3f, 0x02, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/filedotname/file.dot.pb.go b/vendor/github.com/gogo/protobuf/test/filedotname/file.dot.pb.go
index a19783a802..86733377ce 100644
--- a/vendor/github.com/gogo/protobuf/test/filedotname/file.dot.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/filedotname/file.dot.pb.go
@@ -3,19 +3,19 @@
package filedotname
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -38,7 +38,7 @@ type M struct {
func (m *M) Reset() { *m = M{} }
func (*M) ProtoMessage() {}
func (*M) Descriptor() ([]byte, []int) {
- return fileDescriptor_file_dot_75a42d5db4a044f0, []int{0}
+ return fileDescriptor_76fff35a382d4826, []int{0}
}
func (m *M) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_M.Unmarshal(m, b)
@@ -46,8 +46,8 @@ func (m *M) XXX_Unmarshal(b []byte) error {
func (m *M) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_M.Marshal(b, m, deterministic)
}
-func (dst *M) XXX_Merge(src proto.Message) {
- xxx_messageInfo_M.Merge(dst, src)
+func (m *M) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_M.Merge(m, src)
}
func (m *M) XXX_Size() int {
return xxx_messageInfo_M.Size(m)
@@ -61,256 +61,277 @@ var xxx_messageInfo_M proto.InternalMessageInfo
func init() {
proto.RegisterType((*M)(nil), "filedotname.M")
}
+
+func init() { proto.RegisterFile("file.dot.proto", fileDescriptor_76fff35a382d4826) }
+
+var fileDescriptor_76fff35a382d4826 = []byte{
+ // 179 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x24, 0xcb, 0xaf, 0x6e, 0xc2, 0x50,
+ 0x1c, 0xc5, 0xf1, 0xdf, 0x91, 0xeb, 0x96, 0x25, 0xab, 0x5a, 0x26, 0x4e, 0x96, 0xa9, 0x99, 0xb5,
+ 0xef, 0x30, 0x0d, 0x86, 0x37, 0x68, 0xe9, 0x1f, 0x9a, 0x50, 0x2e, 0x21, 0xb7, 0xbe, 0x8f, 0x83,
+ 0x44, 0x22, 0x91, 0x95, 0x95, 0xc8, 0xde, 0x1f, 0xa6, 0xb2, 0xb2, 0x92, 0x70, 0x71, 0xe7, 0x93,
+ 0x9c, 0x6f, 0xf0, 0x5e, 0x54, 0xdb, 0x3c, 0xca, 0x8c, 0x8d, 0xf6, 0x07, 0x63, 0x4d, 0xf8, 0xfa,
+ 0x70, 0x66, 0xec, 0x2e, 0xa9, 0xf3, 0xaf, 0xbf, 0xb2, 0xb2, 0x9b, 0x26, 0x8d, 0xd6, 0xa6, 0x8e,
+ 0x4b, 0x53, 0x9a, 0xd8, 0x7f, 0xd2, 0xa6, 0xf0, 0xf2, 0xf0, 0xeb, 0xd9, 0xfe, 0x7c, 0x04, 0x58,
+ 0x86, 0x6f, 0x01, 0x92, 0x4f, 0x7c, 0xe3, 0xf7, 0x65, 0x85, 0xe4, 0x7f, 0xd1, 0x39, 0x4a, 0xef,
+ 0x28, 0x57, 0x47, 0x19, 0x1c, 0x31, 0x3a, 0x62, 0x72, 0xc4, 0xec, 0x88, 0x56, 0x89, 0xa3, 0x12,
+ 0x27, 0x25, 0xce, 0x4a, 0x5c, 0x94, 0xe8, 0x94, 0xd2, 0x2b, 0x65, 0x50, 0x62, 0x54, 0xca, 0xa4,
+ 0xc4, 0xac, 0x94, 0xf6, 0x46, 0xb9, 0x07, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x59, 0x32, 0x8a, 0xad,
+ 0x00, 0x00, 0x00,
+}
+
func (this *M) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return FileDotDescription()
}
func FileDotDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 3876 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0xe3, 0xd6,
- 0x75, 0x16, 0xf8, 0x23, 0x91, 0x87, 0x14, 0x05, 0x41, 0xf2, 0x2e, 0x57, 0x8e, 0xb9, 0xbb, 0xb2,
- 0x1d, 0xcb, 0x76, 0xa3, 0xcd, 0xac, 0xbd, 0x6b, 0x2f, 0xb7, 0x89, 0x4b, 0x51, 0x5c, 0x85, 0xae,
- 0x24, 0x32, 0xa0, 0x14, 0xff, 0x64, 0x3a, 0x18, 0x08, 0xbc, 0xa4, 0xb0, 0x0b, 0x02, 0x08, 0x00,
- 0xee, 0x5a, 0x3b, 0x7d, 0xd8, 0x8e, 0xfb, 0x33, 0x99, 0x4e, 0xff, 0x3b, 0xd3, 0xc4, 0x75, 0xdc,
- 0x26, 0x9d, 0xc6, 0x69, 0xda, 0xb4, 0x49, 0xd3, 0xa6, 0x49, 0xfa, 0x92, 0x97, 0xb4, 0x7e, 0xea,
- 0x24, 0x6f, 0x7d, 0xe8, 0x83, 0x57, 0xf1, 0x4c, 0xdd, 0xd6, 0x6d, 0xdc, 0x76, 0x1f, 0x3c, 0xb3,
- 0x2f, 0x99, 0xfb, 0x07, 0x02, 0x20, 0xb5, 0x80, 0x32, 0x63, 0xe7, 0x49, 0xc2, 0xb9, 0xe7, 0xfb,
- 0x70, 0xee, 0xb9, 0xe7, 0x9e, 0x73, 0xee, 0x05, 0xe1, 0xc7, 0x97, 0xe0, 0x4c, 0xdf, 0xb2, 0xfa,
- 0x06, 0x3a, 0x67, 0x3b, 0x96, 0x67, 0xed, 0x0d, 0x7b, 0xe7, 0xba, 0xc8, 0xd5, 0x1c, 0xdd, 0xf6,
- 0x2c, 0x67, 0x95, 0xc8, 0xa4, 0x39, 0xaa, 0xb1, 0xca, 0x35, 0x96, 0xb7, 0x60, 0xfe, 0x8a, 0x6e,
- 0xa0, 0x75, 0x5f, 0xb1, 0x83, 0x3c, 0xe9, 0x69, 0xc8, 0xf4, 0x74, 0x03, 0x95, 0x85, 0x33, 0xe9,
- 0x95, 0xc2, 0xf9, 0x87, 0x56, 0x23, 0xa0, 0xd5, 0x30, 0xa2, 0x8d, 0xc5, 0x32, 0x41, 0x2c, 0xbf,
- 0x95, 0x81, 0x85, 0x09, 0xa3, 0x92, 0x04, 0x19, 0x53, 0x1d, 0x60, 0x46, 0x61, 0x25, 0x2f, 0x93,
- 0xff, 0xa5, 0x32, 0xcc, 0xd8, 0xaa, 0x76, 0x4d, 0xed, 0xa3, 0x72, 0x8a, 0x88, 0xf9, 0xa3, 0x54,
- 0x01, 0xe8, 0x22, 0x1b, 0x99, 0x5d, 0x64, 0x6a, 0x07, 0xe5, 0xf4, 0x99, 0xf4, 0x4a, 0x5e, 0x0e,
- 0x48, 0xa4, 0xc7, 0x61, 0xde, 0x1e, 0xee, 0x19, 0xba, 0xa6, 0x04, 0xd4, 0xe0, 0x4c, 0x7a, 0x25,
- 0x2b, 0x8b, 0x74, 0x60, 0x7d, 0xa4, 0xfc, 0x08, 0xcc, 0xdd, 0x40, 0xea, 0xb5, 0xa0, 0x6a, 0x81,
- 0xa8, 0x96, 0xb0, 0x38, 0xa0, 0x58, 0x87, 0xe2, 0x00, 0xb9, 0xae, 0xda, 0x47, 0x8a, 0x77, 0x60,
- 0xa3, 0x72, 0x86, 0xcc, 0xfe, 0xcc, 0xd8, 0xec, 0xa3, 0x33, 0x2f, 0x30, 0xd4, 0xce, 0x81, 0x8d,
- 0xa4, 0x1a, 0xe4, 0x91, 0x39, 0x1c, 0x50, 0x86, 0xec, 0x11, 0xfe, 0x6b, 0x98, 0xc3, 0x41, 0x94,
- 0x25, 0x87, 0x61, 0x8c, 0x62, 0xc6, 0x45, 0xce, 0x75, 0x5d, 0x43, 0xe5, 0x69, 0x42, 0xf0, 0xc8,
- 0x18, 0x41, 0x87, 0x8e, 0x47, 0x39, 0x38, 0x4e, 0xaa, 0x43, 0x1e, 0xbd, 0xe4, 0x21, 0xd3, 0xd5,
- 0x2d, 0xb3, 0x3c, 0x43, 0x48, 0x1e, 0x9e, 0xb0, 0x8a, 0xc8, 0xe8, 0x46, 0x29, 0x46, 0x38, 0xe9,
- 0x22, 0xcc, 0x58, 0xb6, 0xa7, 0x5b, 0xa6, 0x5b, 0xce, 0x9d, 0x11, 0x56, 0x0a, 0xe7, 0x3f, 0x34,
- 0x31, 0x10, 0x5a, 0x54, 0x47, 0xe6, 0xca, 0x52, 0x13, 0x44, 0xd7, 0x1a, 0x3a, 0x1a, 0x52, 0x34,
- 0xab, 0x8b, 0x14, 0xdd, 0xec, 0x59, 0xe5, 0x3c, 0x21, 0x38, 0x3d, 0x3e, 0x11, 0xa2, 0x58, 0xb7,
- 0xba, 0xa8, 0x69, 0xf6, 0x2c, 0xb9, 0xe4, 0x86, 0x9e, 0xa5, 0x13, 0x30, 0xed, 0x1e, 0x98, 0x9e,
- 0xfa, 0x52, 0xb9, 0x48, 0x22, 0x84, 0x3d, 0x2d, 0x7f, 0x67, 0x1a, 0xe6, 0x92, 0x84, 0xd8, 0x65,
- 0xc8, 0xf6, 0xf0, 0x2c, 0xcb, 0xa9, 0xe3, 0xf8, 0x80, 0x62, 0xc2, 0x4e, 0x9c, 0xfe, 0x29, 0x9d,
- 0x58, 0x83, 0x82, 0x89, 0x5c, 0x0f, 0x75, 0x69, 0x44, 0xa4, 0x13, 0xc6, 0x14, 0x50, 0xd0, 0x78,
- 0x48, 0x65, 0x7e, 0xaa, 0x90, 0x7a, 0x1e, 0xe6, 0x7c, 0x93, 0x14, 0x47, 0x35, 0xfb, 0x3c, 0x36,
- 0xcf, 0xc5, 0x59, 0xb2, 0xda, 0xe0, 0x38, 0x19, 0xc3, 0xe4, 0x12, 0x0a, 0x3d, 0x4b, 0xeb, 0x00,
- 0x96, 0x89, 0xac, 0x9e, 0xd2, 0x45, 0x9a, 0x51, 0xce, 0x1d, 0xe1, 0xa5, 0x16, 0x56, 0x19, 0xf3,
- 0x92, 0x45, 0xa5, 0x9a, 0x21, 0x5d, 0x1a, 0x85, 0xda, 0xcc, 0x11, 0x91, 0xb2, 0x45, 0x37, 0xd9,
- 0x58, 0xb4, 0xed, 0x42, 0xc9, 0x41, 0x38, 0xee, 0x51, 0x97, 0xcd, 0x2c, 0x4f, 0x8c, 0x58, 0x8d,
- 0x9d, 0x99, 0xcc, 0x60, 0x74, 0x62, 0xb3, 0x4e, 0xf0, 0x51, 0x7a, 0x10, 0x7c, 0x81, 0x42, 0xc2,
- 0x0a, 0x48, 0x16, 0x2a, 0x72, 0xe1, 0xb6, 0x3a, 0x40, 0x4b, 0x37, 0xa1, 0x14, 0x76, 0x8f, 0xb4,
- 0x08, 0x59, 0xd7, 0x53, 0x1d, 0x8f, 0x44, 0x61, 0x56, 0xa6, 0x0f, 0x92, 0x08, 0x69, 0x64, 0x76,
- 0x49, 0x96, 0xcb, 0xca, 0xf8, 0x5f, 0xe9, 0x17, 0x46, 0x13, 0x4e, 0x93, 0x09, 0x7f, 0x78, 0x7c,
- 0x45, 0x43, 0xcc, 0xd1, 0x79, 0x2f, 0x3d, 0x05, 0xb3, 0xa1, 0x09, 0x24, 0x7d, 0xf5, 0xf2, 0x2f,
- 0xc3, 0x7d, 0x13, 0xa9, 0xa5, 0xe7, 0x61, 0x71, 0x68, 0xea, 0xa6, 0x87, 0x1c, 0xdb, 0x41, 0x38,
- 0x62, 0xe9, 0xab, 0xca, 0xff, 0x3e, 0x73, 0x44, 0xcc, 0xed, 0x06, 0xb5, 0x29, 0x8b, 0xbc, 0x30,
- 0x1c, 0x17, 0x3e, 0x96, 0xcf, 0xbd, 0x3d, 0x23, 0xde, 0xba, 0x75, 0xeb, 0x56, 0x6a, 0xf9, 0x73,
- 0xd3, 0xb0, 0x38, 0x69, 0xcf, 0x4c, 0xdc, 0xbe, 0x27, 0x60, 0xda, 0x1c, 0x0e, 0xf6, 0x90, 0x43,
- 0x9c, 0x94, 0x95, 0xd9, 0x93, 0x54, 0x83, 0xac, 0xa1, 0xee, 0x21, 0xa3, 0x9c, 0x39, 0x23, 0xac,
- 0x94, 0xce, 0x3f, 0x9e, 0x68, 0x57, 0xae, 0x6e, 0x62, 0x88, 0x4c, 0x91, 0xd2, 0xc7, 0x21, 0xc3,
- 0x52, 0x34, 0x66, 0x78, 0x2c, 0x19, 0x03, 0xde, 0x4b, 0x32, 0xc1, 0x49, 0xf7, 0x43, 0x1e, 0xff,
- 0xa5, 0xb1, 0x31, 0x4d, 0x6c, 0xce, 0x61, 0x01, 0x8e, 0x0b, 0x69, 0x09, 0x72, 0x64, 0x9b, 0x74,
- 0x11, 0x2f, 0x6d, 0xfe, 0x33, 0x0e, 0xac, 0x2e, 0xea, 0xa9, 0x43, 0xc3, 0x53, 0xae, 0xab, 0xc6,
- 0x10, 0x91, 0x80, 0xcf, 0xcb, 0x45, 0x26, 0xfc, 0x14, 0x96, 0x49, 0xa7, 0xa1, 0x40, 0x77, 0x95,
- 0x6e, 0x76, 0xd1, 0x4b, 0x24, 0x7b, 0x66, 0x65, 0xba, 0xd1, 0x9a, 0x58, 0x82, 0x5f, 0x7f, 0xd5,
- 0xb5, 0x4c, 0x1e, 0x9a, 0xe4, 0x15, 0x58, 0x40, 0x5e, 0xff, 0x54, 0x34, 0x71, 0x3f, 0x30, 0x79,
- 0x7a, 0xd1, 0x98, 0x5a, 0xfe, 0x56, 0x0a, 0x32, 0x24, 0x5f, 0xcc, 0x41, 0x61, 0xe7, 0x85, 0x76,
- 0x43, 0x59, 0x6f, 0xed, 0xae, 0x6d, 0x36, 0x44, 0x41, 0x2a, 0x01, 0x10, 0xc1, 0x95, 0xcd, 0x56,
- 0x6d, 0x47, 0x4c, 0xf9, 0xcf, 0xcd, 0xed, 0x9d, 0x8b, 0x4f, 0x8a, 0x69, 0x1f, 0xb0, 0x4b, 0x05,
- 0x99, 0xa0, 0xc2, 0x13, 0xe7, 0xc5, 0xac, 0x24, 0x42, 0x91, 0x12, 0x34, 0x9f, 0x6f, 0xac, 0x5f,
- 0x7c, 0x52, 0x9c, 0x0e, 0x4b, 0x9e, 0x38, 0x2f, 0xce, 0x48, 0xb3, 0x90, 0x27, 0x92, 0xb5, 0x56,
- 0x6b, 0x53, 0xcc, 0xf9, 0x9c, 0x9d, 0x1d, 0xb9, 0xb9, 0xbd, 0x21, 0xe6, 0x7d, 0xce, 0x0d, 0xb9,
- 0xb5, 0xdb, 0x16, 0xc1, 0x67, 0xd8, 0x6a, 0x74, 0x3a, 0xb5, 0x8d, 0x86, 0x58, 0xf0, 0x35, 0xd6,
- 0x5e, 0xd8, 0x69, 0x74, 0xc4, 0x62, 0xc8, 0xac, 0x27, 0xce, 0x8b, 0xb3, 0xfe, 0x2b, 0x1a, 0xdb,
- 0xbb, 0x5b, 0x62, 0x49, 0x9a, 0x87, 0x59, 0xfa, 0x0a, 0x6e, 0xc4, 0x5c, 0x44, 0x74, 0xf1, 0x49,
- 0x51, 0x1c, 0x19, 0x42, 0x59, 0xe6, 0x43, 0x82, 0x8b, 0x4f, 0x8a, 0xd2, 0x72, 0x1d, 0xb2, 0x24,
- 0xba, 0x24, 0x09, 0x4a, 0x9b, 0xb5, 0xb5, 0xc6, 0xa6, 0xd2, 0x6a, 0xef, 0x34, 0x5b, 0xdb, 0xb5,
- 0x4d, 0x51, 0x18, 0xc9, 0xe4, 0xc6, 0x27, 0x77, 0x9b, 0x72, 0x63, 0x5d, 0x4c, 0x05, 0x65, 0xed,
- 0x46, 0x6d, 0xa7, 0xb1, 0x2e, 0xa6, 0x97, 0x35, 0x58, 0x9c, 0x94, 0x27, 0x27, 0xee, 0x8c, 0xc0,
- 0x12, 0xa7, 0x8e, 0x58, 0x62, 0xc2, 0x35, 0xb6, 0xc4, 0x3f, 0x4a, 0xc1, 0xc2, 0x84, 0x5a, 0x31,
- 0xf1, 0x25, 0xcf, 0x40, 0x96, 0x86, 0x28, 0xad, 0x9e, 0x8f, 0x4e, 0x2c, 0x3a, 0x24, 0x60, 0xc7,
- 0x2a, 0x28, 0xc1, 0x05, 0x3b, 0x88, 0xf4, 0x11, 0x1d, 0x04, 0xa6, 0x18, 0xcb, 0xe9, 0xbf, 0x34,
- 0x96, 0xd3, 0x69, 0xd9, 0xbb, 0x98, 0xa4, 0xec, 0x11, 0xd9, 0xf1, 0x72, 0x7b, 0x76, 0x42, 0x6e,
- 0xbf, 0x0c, 0xf3, 0x63, 0x44, 0x89, 0x73, 0xec, 0xcb, 0x02, 0x94, 0x8f, 0x72, 0x4e, 0x4c, 0xa6,
- 0x4b, 0x85, 0x32, 0xdd, 0xe5, 0xa8, 0x07, 0xcf, 0x1e, 0xbd, 0x08, 0x63, 0x6b, 0xfd, 0xba, 0x00,
- 0x27, 0x26, 0x77, 0x8a, 0x13, 0x6d, 0xf8, 0x38, 0x4c, 0x0f, 0x90, 0xb7, 0x6f, 0xf1, 0x6e, 0xe9,
- 0xc3, 0x13, 0x6a, 0x30, 0x1e, 0x8e, 0x2e, 0x36, 0x43, 0x05, 0x8b, 0x78, 0xfa, 0xa8, 0x76, 0x8f,
- 0x5a, 0x33, 0x66, 0xe9, 0x67, 0x53, 0x70, 0xdf, 0x44, 0xf2, 0x89, 0x86, 0x3e, 0x00, 0xa0, 0x9b,
- 0xf6, 0xd0, 0xa3, 0x1d, 0x11, 0x4d, 0xb0, 0x79, 0x22, 0x21, 0xc9, 0x0b, 0x27, 0xcf, 0xa1, 0xe7,
- 0x8f, 0xa7, 0xc9, 0x38, 0x50, 0x11, 0x51, 0x78, 0x7a, 0x64, 0x68, 0x86, 0x18, 0x5a, 0x39, 0x62,
- 0xa6, 0x63, 0x81, 0xf9, 0x51, 0x10, 0x35, 0x43, 0x47, 0xa6, 0xa7, 0xb8, 0x9e, 0x83, 0xd4, 0x81,
- 0x6e, 0xf6, 0x49, 0x05, 0xc9, 0x55, 0xb3, 0x3d, 0xd5, 0x70, 0x91, 0x3c, 0x47, 0x87, 0x3b, 0x7c,
- 0x14, 0x23, 0x48, 0x00, 0x39, 0x01, 0xc4, 0x74, 0x08, 0x41, 0x87, 0x7d, 0xc4, 0xf2, 0x37, 0x73,
- 0x50, 0x08, 0xf4, 0xd5, 0xd2, 0x59, 0x28, 0x5e, 0x55, 0xaf, 0xab, 0x0a, 0x3f, 0x2b, 0x51, 0x4f,
- 0x14, 0xb0, 0xac, 0xcd, 0xce, 0x4b, 0x1f, 0x85, 0x45, 0xa2, 0x62, 0x0d, 0x3d, 0xe4, 0x28, 0x9a,
- 0xa1, 0xba, 0x2e, 0x71, 0x5a, 0x8e, 0xa8, 0x4a, 0x78, 0xac, 0x85, 0x87, 0xea, 0x7c, 0x44, 0xba,
- 0x00, 0x0b, 0x04, 0x31, 0x18, 0x1a, 0x9e, 0x6e, 0x1b, 0x48, 0xc1, 0xa7, 0x37, 0x97, 0x54, 0x12,
- 0xdf, 0xb2, 0x79, 0xac, 0xb1, 0xc5, 0x14, 0xb0, 0x45, 0xae, 0xb4, 0x0e, 0x0f, 0x10, 0x58, 0x1f,
- 0x99, 0xc8, 0x51, 0x3d, 0xa4, 0xa0, 0xcf, 0x0c, 0x55, 0xc3, 0x55, 0x54, 0xb3, 0xab, 0xec, 0xab,
- 0xee, 0x7e, 0x79, 0x11, 0x13, 0xac, 0xa5, 0xca, 0x82, 0x7c, 0x0a, 0x2b, 0x6e, 0x30, 0xbd, 0x06,
- 0x51, 0xab, 0x99, 0xdd, 0x4f, 0xa8, 0xee, 0xbe, 0x54, 0x85, 0x13, 0x84, 0xc5, 0xf5, 0x1c, 0xdd,
- 0xec, 0x2b, 0xda, 0x3e, 0xd2, 0xae, 0x29, 0x43, 0xaf, 0xf7, 0x74, 0xf9, 0xfe, 0xe0, 0xfb, 0x89,
- 0x85, 0x1d, 0xa2, 0x53, 0xc7, 0x2a, 0xbb, 0x5e, 0xef, 0x69, 0xa9, 0x03, 0x45, 0xbc, 0x18, 0x03,
- 0xfd, 0x26, 0x52, 0x7a, 0x96, 0x43, 0x4a, 0x63, 0x69, 0x42, 0x6a, 0x0a, 0x78, 0x70, 0xb5, 0xc5,
- 0x00, 0x5b, 0x56, 0x17, 0x55, 0xb3, 0x9d, 0x76, 0xa3, 0xb1, 0x2e, 0x17, 0x38, 0xcb, 0x15, 0xcb,
- 0xc1, 0x01, 0xd5, 0xb7, 0x7c, 0x07, 0x17, 0x68, 0x40, 0xf5, 0x2d, 0xee, 0xde, 0x0b, 0xb0, 0xa0,
- 0x69, 0x74, 0xce, 0xba, 0xa6, 0xb0, 0x33, 0x96, 0x5b, 0x16, 0x43, 0xce, 0xd2, 0xb4, 0x0d, 0xaa,
- 0xc0, 0x62, 0xdc, 0x95, 0x2e, 0xc1, 0x7d, 0x23, 0x67, 0x05, 0x81, 0xf3, 0x63, 0xb3, 0x8c, 0x42,
- 0x2f, 0xc0, 0x82, 0x7d, 0x30, 0x0e, 0x94, 0x42, 0x6f, 0xb4, 0x0f, 0xa2, 0xb0, 0xa7, 0x60, 0xd1,
- 0xde, 0xb7, 0xc7, 0x71, 0x8f, 0x05, 0x71, 0x92, 0xbd, 0x6f, 0x47, 0x81, 0x0f, 0x93, 0x03, 0xb7,
- 0x83, 0x34, 0xd5, 0x43, 0xdd, 0xf2, 0xc9, 0xa0, 0x7a, 0x60, 0x40, 0x3a, 0x07, 0xa2, 0xa6, 0x29,
- 0xc8, 0x54, 0xf7, 0x0c, 0xa4, 0xa8, 0x0e, 0x32, 0x55, 0xb7, 0x7c, 0x3a, 0xa8, 0x5c, 0xd2, 0xb4,
- 0x06, 0x19, 0xad, 0x91, 0x41, 0xe9, 0x31, 0x98, 0xb7, 0xf6, 0xae, 0x6a, 0x34, 0x24, 0x15, 0xdb,
- 0x41, 0x3d, 0xfd, 0xa5, 0xf2, 0x43, 0xc4, 0xbf, 0x73, 0x78, 0x80, 0x04, 0x64, 0x9b, 0x88, 0xa5,
- 0x47, 0x41, 0xd4, 0xdc, 0x7d, 0xd5, 0xb1, 0x49, 0x4e, 0x76, 0x6d, 0x55, 0x43, 0xe5, 0x87, 0xa9,
- 0x2a, 0x95, 0x6f, 0x73, 0x31, 0xde, 0x12, 0xee, 0x0d, 0xbd, 0xe7, 0x71, 0xc6, 0x47, 0xe8, 0x96,
- 0x20, 0x32, 0xc6, 0xb6, 0x02, 0x22, 0x76, 0x45, 0xe8, 0xc5, 0x2b, 0x44, 0xad, 0x64, 0xef, 0xdb,
- 0xc1, 0xf7, 0x3e, 0x08, 0xb3, 0x58, 0x73, 0xf4, 0xd2, 0x47, 0x69, 0x43, 0x66, 0xef, 0x07, 0xde,
- 0xf8, 0xbe, 0xf5, 0xc6, 0xcb, 0x55, 0x28, 0x06, 0xe3, 0x53, 0xca, 0x03, 0x8d, 0x50, 0x51, 0xc0,
- 0xcd, 0x4a, 0xbd, 0xb5, 0x8e, 0xdb, 0x8c, 0x17, 0x1b, 0x62, 0x0a, 0xb7, 0x3b, 0x9b, 0xcd, 0x9d,
- 0x86, 0x22, 0xef, 0x6e, 0xef, 0x34, 0xb7, 0x1a, 0x62, 0x3a, 0xd8, 0x57, 0x7f, 0x3f, 0x05, 0xa5,
- 0xf0, 0x11, 0x49, 0xfa, 0x79, 0x38, 0xc9, 0xef, 0x33, 0x5c, 0xe4, 0x29, 0x37, 0x74, 0x87, 0x6c,
- 0x99, 0x81, 0x4a, 0xcb, 0x97, 0xbf, 0x68, 0x8b, 0x4c, 0xab, 0x83, 0xbc, 0xe7, 0x74, 0x07, 0x6f,
- 0x88, 0x81, 0xea, 0x49, 0x9b, 0x70, 0xda, 0xb4, 0x14, 0xd7, 0x53, 0xcd, 0xae, 0xea, 0x74, 0x95,
- 0xd1, 0x4d, 0x92, 0xa2, 0x6a, 0x1a, 0x72, 0x5d, 0x8b, 0x96, 0x2a, 0x9f, 0xe5, 0x43, 0xa6, 0xd5,
- 0x61, 0xca, 0xa3, 0x1c, 0x5e, 0x63, 0xaa, 0x91, 0x00, 0x4b, 0x1f, 0x15, 0x60, 0xf7, 0x43, 0x7e,
- 0xa0, 0xda, 0x0a, 0x32, 0x3d, 0xe7, 0x80, 0x34, 0xc6, 0x39, 0x39, 0x37, 0x50, 0xed, 0x06, 0x7e,
- 0xfe, 0x60, 0xce, 0x27, 0xff, 0x96, 0x86, 0x62, 0xb0, 0x39, 0xc6, 0x67, 0x0d, 0x8d, 0xd4, 0x11,
- 0x81, 0x64, 0x9a, 0x07, 0xef, 0xd9, 0x4a, 0xaf, 0xd6, 0x71, 0x81, 0xa9, 0x4e, 0xd3, 0x96, 0x55,
- 0xa6, 0x48, 0x5c, 0xdc, 0x71, 0x6e, 0x41, 0xb4, 0x45, 0xc8, 0xc9, 0xec, 0x49, 0xda, 0x80, 0xe9,
- 0xab, 0x2e, 0xe1, 0x9e, 0x26, 0xdc, 0x0f, 0xdd, 0x9b, 0xfb, 0xd9, 0x0e, 0x21, 0xcf, 0x3f, 0xdb,
- 0x51, 0xb6, 0x5b, 0xf2, 0x56, 0x6d, 0x53, 0x66, 0x70, 0xe9, 0x14, 0x64, 0x0c, 0xf5, 0xe6, 0x41,
- 0xb8, 0x14, 0x11, 0x51, 0x52, 0xc7, 0x9f, 0x82, 0xcc, 0x0d, 0xa4, 0x5e, 0x0b, 0x17, 0x00, 0x22,
- 0x7a, 0x1f, 0x43, 0xff, 0x1c, 0x64, 0x89, 0xbf, 0x24, 0x00, 0xe6, 0x31, 0x71, 0x4a, 0xca, 0x41,
- 0xa6, 0xde, 0x92, 0x71, 0xf8, 0x8b, 0x50, 0xa4, 0x52, 0xa5, 0xdd, 0x6c, 0xd4, 0x1b, 0x62, 0x6a,
- 0xf9, 0x02, 0x4c, 0x53, 0x27, 0xe0, 0xad, 0xe1, 0xbb, 0x41, 0x9c, 0x62, 0x8f, 0x8c, 0x43, 0xe0,
- 0xa3, 0xbb, 0x5b, 0x6b, 0x0d, 0x59, 0x4c, 0x05, 0x97, 0xd7, 0x85, 0x62, 0xb0, 0x2f, 0xfe, 0x60,
- 0x62, 0xea, 0xbb, 0x02, 0x14, 0x02, 0x7d, 0x2e, 0x6e, 0x50, 0x54, 0xc3, 0xb0, 0x6e, 0x28, 0xaa,
- 0xa1, 0xab, 0x2e, 0x0b, 0x0a, 0x20, 0xa2, 0x1a, 0x96, 0x24, 0x5d, 0xb4, 0x0f, 0xc4, 0xf8, 0xd7,
- 0x04, 0x10, 0xa3, 0x2d, 0x66, 0xc4, 0x40, 0xe1, 0x67, 0x6a, 0xe0, 0xab, 0x02, 0x94, 0xc2, 0x7d,
- 0x65, 0xc4, 0xbc, 0xb3, 0x3f, 0x53, 0xf3, 0xde, 0x4c, 0xc1, 0x6c, 0xa8, 0x9b, 0x4c, 0x6a, 0xdd,
- 0x67, 0x60, 0x5e, 0xef, 0xa2, 0x81, 0x6d, 0x79, 0xc8, 0xd4, 0x0e, 0x14, 0x03, 0x5d, 0x47, 0x46,
- 0x79, 0x99, 0x24, 0x8a, 0x73, 0xf7, 0xee, 0x57, 0x57, 0x9b, 0x23, 0xdc, 0x26, 0x86, 0x55, 0x17,
- 0x9a, 0xeb, 0x8d, 0xad, 0x76, 0x6b, 0xa7, 0xb1, 0x5d, 0x7f, 0x41, 0xd9, 0xdd, 0xfe, 0xc5, 0xed,
- 0xd6, 0x73, 0xdb, 0xb2, 0xa8, 0x47, 0xd4, 0xde, 0xc7, 0xad, 0xde, 0x06, 0x31, 0x6a, 0x94, 0x74,
- 0x12, 0x26, 0x99, 0x25, 0x4e, 0x49, 0x0b, 0x30, 0xb7, 0xdd, 0x52, 0x3a, 0xcd, 0xf5, 0x86, 0xd2,
- 0xb8, 0x72, 0xa5, 0x51, 0xdf, 0xe9, 0xd0, 0x1b, 0x08, 0x5f, 0x7b, 0x27, 0xbc, 0xa9, 0x5f, 0x49,
- 0xc3, 0xc2, 0x04, 0x4b, 0xa4, 0x1a, 0x3b, 0x3b, 0xd0, 0xe3, 0xcc, 0x47, 0x92, 0x58, 0xbf, 0x8a,
- 0x4b, 0x7e, 0x5b, 0x75, 0x3c, 0x76, 0xd4, 0x78, 0x14, 0xb0, 0x97, 0x4c, 0x4f, 0xef, 0xe9, 0xc8,
- 0x61, 0x17, 0x36, 0xf4, 0x40, 0x31, 0x37, 0x92, 0xd3, 0x3b, 0x9b, 0x9f, 0x03, 0xc9, 0xb6, 0x5c,
- 0xdd, 0xd3, 0xaf, 0x23, 0x45, 0x37, 0xf9, 0xed, 0x0e, 0x3e, 0x60, 0x64, 0x64, 0x91, 0x8f, 0x34,
- 0x4d, 0xcf, 0xd7, 0x36, 0x51, 0x5f, 0x8d, 0x68, 0xe3, 0x04, 0x9e, 0x96, 0x45, 0x3e, 0xe2, 0x6b,
- 0x9f, 0x85, 0x62, 0xd7, 0x1a, 0xe2, 0xae, 0x8b, 0xea, 0xe1, 0x7a, 0x21, 0xc8, 0x05, 0x2a, 0xf3,
- 0x55, 0x58, 0x3f, 0x3d, 0xba, 0x56, 0x2a, 0xca, 0x05, 0x2a, 0xa3, 0x2a, 0x8f, 0xc0, 0x9c, 0xda,
- 0xef, 0x3b, 0x98, 0x9c, 0x13, 0xd1, 0x13, 0x42, 0xc9, 0x17, 0x13, 0xc5, 0xa5, 0x67, 0x21, 0xc7,
- 0xfd, 0x80, 0x4b, 0x32, 0xf6, 0x84, 0x62, 0xd3, 0x63, 0x6f, 0x6a, 0x25, 0x2f, 0xe7, 0x4c, 0x3e,
- 0x78, 0x16, 0x8a, 0xba, 0xab, 0x8c, 0x6e, 0xc9, 0x53, 0x67, 0x52, 0x2b, 0x39, 0xb9, 0xa0, 0xbb,
- 0xfe, 0x0d, 0xe3, 0xf2, 0xeb, 0x29, 0x28, 0x85, 0x6f, 0xf9, 0xa5, 0x75, 0xc8, 0x19, 0x96, 0xa6,
- 0x92, 0xd0, 0xa2, 0x9f, 0x98, 0x56, 0x62, 0x3e, 0x0c, 0xac, 0x6e, 0x32, 0x7d, 0xd9, 0x47, 0x2e,
- 0xfd, 0x8b, 0x00, 0x39, 0x2e, 0x96, 0x4e, 0x40, 0xc6, 0x56, 0xbd, 0x7d, 0x42, 0x97, 0x5d, 0x4b,
- 0x89, 0x82, 0x4c, 0x9e, 0xb1, 0xdc, 0xb5, 0x55, 0x93, 0x84, 0x00, 0x93, 0xe3, 0x67, 0xbc, 0xae,
- 0x06, 0x52, 0xbb, 0xe4, 0xf8, 0x61, 0x0d, 0x06, 0xc8, 0xf4, 0x5c, 0xbe, 0xae, 0x4c, 0x5e, 0x67,
- 0x62, 0xe9, 0x71, 0x98, 0xf7, 0x1c, 0x55, 0x37, 0x42, 0xba, 0x19, 0xa2, 0x2b, 0xf2, 0x01, 0x5f,
- 0xb9, 0x0a, 0xa7, 0x38, 0x6f, 0x17, 0x79, 0xaa, 0xb6, 0x8f, 0xba, 0x23, 0xd0, 0x34, 0xb9, 0x66,
- 0x38, 0xc9, 0x14, 0xd6, 0xd9, 0x38, 0xc7, 0x2e, 0xff, 0x50, 0x80, 0x79, 0x7e, 0x60, 0xea, 0xfa,
- 0xce, 0xda, 0x02, 0x50, 0x4d, 0xd3, 0xf2, 0x82, 0xee, 0x1a, 0x0f, 0xe5, 0x31, 0xdc, 0x6a, 0xcd,
- 0x07, 0xc9, 0x01, 0x82, 0xa5, 0x01, 0xc0, 0x68, 0xe4, 0x48, 0xb7, 0x9d, 0x86, 0x02, 0xfb, 0x84,
- 0x43, 0xbe, 0x03, 0xd2, 0x23, 0x36, 0x50, 0x11, 0x3e, 0x59, 0x49, 0x8b, 0x90, 0xdd, 0x43, 0x7d,
- 0xdd, 0x64, 0x17, 0xb3, 0xf4, 0x81, 0x5f, 0x84, 0x64, 0xfc, 0x8b, 0x90, 0xb5, 0x4f, 0xc3, 0x82,
- 0x66, 0x0d, 0xa2, 0xe6, 0xae, 0x89, 0x91, 0x63, 0xbe, 0xfb, 0x09, 0xe1, 0x45, 0x18, 0xb5, 0x98,
- 0xef, 0x09, 0xc2, 0x97, 0x52, 0xe9, 0x8d, 0xf6, 0xda, 0x57, 0x53, 0x4b, 0x1b, 0x14, 0xda, 0xe6,
- 0x33, 0x95, 0x51, 0xcf, 0x40, 0x1a, 0xb6, 0x1e, 0xbe, 0xfc, 0x38, 0x7c, 0xa4, 0xaf, 0x7b, 0xfb,
- 0xc3, 0xbd, 0x55, 0xcd, 0x1a, 0x9c, 0xeb, 0x5b, 0x7d, 0x6b, 0xf4, 0xe9, 0x13, 0x3f, 0x91, 0x07,
- 0xf2, 0x1f, 0xfb, 0xfc, 0x99, 0xf7, 0xa5, 0x4b, 0xb1, 0xdf, 0x4a, 0xab, 0xdb, 0xb0, 0xc0, 0x94,
- 0x15, 0xf2, 0xfd, 0x85, 0x9e, 0x22, 0xa4, 0x7b, 0xde, 0x61, 0x95, 0xbf, 0xf1, 0x16, 0x29, 0xd7,
- 0xf2, 0x3c, 0x83, 0xe2, 0x31, 0x7a, 0xd0, 0xa8, 0xca, 0x70, 0x5f, 0x88, 0x8f, 0x6e, 0x4d, 0xe4,
- 0xc4, 0x30, 0x7e, 0x9f, 0x31, 0x2e, 0x04, 0x18, 0x3b, 0x0c, 0x5a, 0xad, 0xc3, 0xec, 0x71, 0xb8,
- 0xfe, 0x89, 0x71, 0x15, 0x51, 0x90, 0x64, 0x03, 0xe6, 0x08, 0x89, 0x36, 0x74, 0x3d, 0x6b, 0x40,
- 0xf2, 0xde, 0xbd, 0x69, 0xfe, 0xf9, 0x2d, 0xba, 0x57, 0x4a, 0x18, 0x56, 0xf7, 0x51, 0xd5, 0x2a,
- 0x90, 0x4f, 0x4e, 0x5d, 0xa4, 0x19, 0x31, 0x0c, 0x6f, 0x30, 0x43, 0x7c, 0xfd, 0xea, 0xa7, 0x60,
- 0x11, 0xff, 0x4f, 0xd2, 0x52, 0xd0, 0x92, 0xf8, 0x0b, 0xaf, 0xf2, 0x0f, 0x5f, 0xa6, 0xdb, 0x71,
- 0xc1, 0x27, 0x08, 0xd8, 0x14, 0x58, 0xc5, 0x3e, 0xf2, 0x3c, 0xe4, 0xb8, 0x8a, 0x6a, 0x4c, 0x32,
- 0x2f, 0x70, 0x63, 0x50, 0xfe, 0xfc, 0x3b, 0xe1, 0x55, 0xdc, 0xa0, 0xc8, 0x9a, 0x61, 0x54, 0x77,
- 0xe1, 0xe4, 0x84, 0xa8, 0x48, 0xc0, 0xf9, 0x0a, 0xe3, 0x5c, 0x1c, 0x8b, 0x0c, 0x4c, 0xdb, 0x06,
- 0x2e, 0xf7, 0xd7, 0x32, 0x01, 0xe7, 0x1f, 0x33, 0x4e, 0x89, 0x61, 0xf9, 0x92, 0x62, 0xc6, 0x67,
- 0x61, 0xfe, 0x3a, 0x72, 0xf6, 0x2c, 0x97, 0xdd, 0xd2, 0x24, 0xa0, 0x7b, 0x95, 0xd1, 0xcd, 0x31,
- 0x20, 0xb9, 0xb6, 0xc1, 0x5c, 0x97, 0x20, 0xd7, 0x53, 0x35, 0x94, 0x80, 0xe2, 0x0b, 0x8c, 0x62,
- 0x06, 0xeb, 0x63, 0x68, 0x0d, 0x8a, 0x7d, 0x8b, 0x55, 0xa6, 0x78, 0xf8, 0x6b, 0x0c, 0x5e, 0xe0,
- 0x18, 0x46, 0x61, 0x5b, 0xf6, 0xd0, 0xc0, 0x65, 0x2b, 0x9e, 0xe2, 0x4f, 0x38, 0x05, 0xc7, 0x30,
- 0x8a, 0x63, 0xb8, 0xf5, 0x4f, 0x39, 0x85, 0x1b, 0xf0, 0xe7, 0x33, 0x50, 0xb0, 0x4c, 0xe3, 0xc0,
- 0x32, 0x93, 0x18, 0xf1, 0x45, 0xc6, 0x00, 0x0c, 0x82, 0x09, 0x2e, 0x43, 0x3e, 0xe9, 0x42, 0xfc,
- 0xf9, 0x3b, 0x7c, 0x7b, 0xf0, 0x15, 0xd8, 0x80, 0x39, 0x9e, 0xa0, 0x74, 0xcb, 0x4c, 0x40, 0xf1,
- 0x65, 0x46, 0x51, 0x0a, 0xc0, 0xd8, 0x34, 0x3c, 0xe4, 0x7a, 0x7d, 0x94, 0x84, 0xe4, 0x75, 0x3e,
- 0x0d, 0x06, 0x61, 0xae, 0xdc, 0x43, 0xa6, 0xb6, 0x9f, 0x8c, 0xe1, 0x2b, 0xdc, 0x95, 0x1c, 0x83,
- 0x29, 0xea, 0x30, 0x3b, 0x50, 0x1d, 0x77, 0x5f, 0x35, 0x12, 0x2d, 0xc7, 0x5f, 0x30, 0x8e, 0xa2,
- 0x0f, 0x62, 0x1e, 0x19, 0x9a, 0xc7, 0xa1, 0xf9, 0x2a, 0xf7, 0x48, 0x00, 0xc6, 0xb6, 0x9e, 0xeb,
- 0x91, 0x2b, 0xad, 0xe3, 0xb0, 0xfd, 0x25, 0xdf, 0x7a, 0x14, 0xbb, 0x15, 0x64, 0xbc, 0x0c, 0x79,
- 0x57, 0xbf, 0x99, 0x88, 0xe6, 0xaf, 0xf8, 0x4a, 0x13, 0x00, 0x06, 0xbf, 0x00, 0xa7, 0x26, 0x96,
- 0x89, 0x04, 0x64, 0x5f, 0x63, 0x64, 0x27, 0x26, 0x94, 0x0a, 0x96, 0x12, 0x8e, 0x4b, 0xf9, 0xd7,
- 0x3c, 0x25, 0xa0, 0x08, 0x57, 0x1b, 0x9f, 0x15, 0x5c, 0xb5, 0x77, 0x3c, 0xaf, 0xfd, 0x0d, 0xf7,
- 0x1a, 0xc5, 0x86, 0xbc, 0xb6, 0x03, 0x27, 0x18, 0xe3, 0xf1, 0xd6, 0xf5, 0xeb, 0x3c, 0xb1, 0x52,
- 0xf4, 0x6e, 0x78, 0x75, 0x3f, 0x0d, 0x4b, 0xbe, 0x3b, 0x79, 0x53, 0xea, 0x2a, 0x03, 0xd5, 0x4e,
- 0xc0, 0xfc, 0x0d, 0xc6, 0xcc, 0x33, 0xbe, 0xdf, 0xd5, 0xba, 0x5b, 0xaa, 0x8d, 0xc9, 0x9f, 0x87,
- 0x32, 0x27, 0x1f, 0x9a, 0x0e, 0xd2, 0xac, 0xbe, 0xa9, 0xdf, 0x44, 0xdd, 0x04, 0xd4, 0x7f, 0x1b,
- 0x59, 0xaa, 0xdd, 0x00, 0x1c, 0x33, 0x37, 0x41, 0xf4, 0x7b, 0x15, 0x45, 0x1f, 0xd8, 0x96, 0xe3,
- 0xc5, 0x30, 0x7e, 0x93, 0xaf, 0x94, 0x8f, 0x6b, 0x12, 0x58, 0xb5, 0x01, 0x25, 0xf2, 0x98, 0x34,
- 0x24, 0xff, 0x8e, 0x11, 0xcd, 0x8e, 0x50, 0x2c, 0x71, 0x68, 0xd6, 0xc0, 0x56, 0x9d, 0x24, 0xf9,
- 0xef, 0xef, 0x79, 0xe2, 0x60, 0x10, 0x96, 0x38, 0xbc, 0x03, 0x1b, 0xe1, 0x6a, 0x9f, 0x80, 0xe1,
- 0x5b, 0x3c, 0x71, 0x70, 0x0c, 0xa3, 0xe0, 0x0d, 0x43, 0x02, 0x8a, 0x7f, 0xe0, 0x14, 0x1c, 0x83,
- 0x29, 0x3e, 0x39, 0x2a, 0xb4, 0x0e, 0xea, 0xeb, 0xae, 0xe7, 0xd0, 0x56, 0xf8, 0xde, 0x54, 0xdf,
- 0x7e, 0x27, 0xdc, 0x84, 0xc9, 0x01, 0x28, 0xce, 0x44, 0xec, 0x0a, 0x95, 0x9c, 0x94, 0xe2, 0x0d,
- 0xfb, 0x0e, 0xcf, 0x44, 0x01, 0x18, 0xb6, 0x2d, 0xd0, 0x21, 0x62, 0xb7, 0x6b, 0xf8, 0x7c, 0x90,
- 0x80, 0xee, 0xbb, 0x11, 0xe3, 0x3a, 0x1c, 0x8b, 0x39, 0x03, 0xfd, 0xcf, 0xd0, 0xbc, 0x86, 0x0e,
- 0x12, 0x45, 0xe7, 0x3f, 0x46, 0xfa, 0x9f, 0x5d, 0x8a, 0xa4, 0x39, 0x64, 0x2e, 0xd2, 0x4f, 0x49,
- 0x71, 0x3f, 0xd6, 0x29, 0xff, 0xca, 0x1d, 0x36, 0xdf, 0x70, 0x3b, 0x55, 0xdd, 0xc4, 0x41, 0x1e,
- 0x6e, 0x7a, 0xe2, 0xc9, 0x5e, 0xbe, 0xe3, 0xc7, 0x79, 0xa8, 0xe7, 0xa9, 0x5e, 0x81, 0xd9, 0x50,
- 0xc3, 0x13, 0x4f, 0xf5, 0xab, 0x8c, 0xaa, 0x18, 0xec, 0x77, 0xaa, 0x17, 0x20, 0x83, 0x9b, 0x97,
- 0x78, 0xf8, 0xaf, 0x31, 0x38, 0x51, 0xaf, 0x7e, 0x0c, 0x72, 0xbc, 0x69, 0x89, 0x87, 0xfe, 0x3a,
- 0x83, 0xfa, 0x10, 0x0c, 0xe7, 0x0d, 0x4b, 0x3c, 0xfc, 0x37, 0x38, 0x9c, 0x43, 0x30, 0x3c, 0xb9,
- 0x0b, 0xbf, 0xf7, 0x9b, 0x19, 0x56, 0x74, 0xb8, 0xef, 0x2e, 0xc3, 0x0c, 0xeb, 0x54, 0xe2, 0xd1,
- 0x9f, 0x65, 0x2f, 0xe7, 0x88, 0xea, 0x53, 0x90, 0x4d, 0xe8, 0xf0, 0xdf, 0x62, 0x50, 0xaa, 0x5f,
- 0xad, 0x43, 0x21, 0xd0, 0x9d, 0xc4, 0xc3, 0x7f, 0x9b, 0xc1, 0x83, 0x28, 0x6c, 0x3a, 0xeb, 0x4e,
- 0xe2, 0x09, 0x7e, 0x87, 0x9b, 0xce, 0x10, 0xd8, 0x6d, 0xbc, 0x31, 0x89, 0x47, 0xff, 0x2e, 0xf7,
- 0x3a, 0x87, 0x54, 0x9f, 0x81, 0xbc, 0x5f, 0x6c, 0xe2, 0xf1, 0xbf, 0xc7, 0xf0, 0x23, 0x0c, 0xf6,
- 0x40, 0xa0, 0xd8, 0xc5, 0x53, 0xfc, 0x3e, 0xf7, 0x40, 0x00, 0x85, 0xb7, 0x51, 0xb4, 0x81, 0x89,
- 0x67, 0xfa, 0x03, 0xbe, 0x8d, 0x22, 0xfd, 0x0b, 0x5e, 0x4d, 0x92, 0xf3, 0xe3, 0x29, 0xfe, 0x90,
- 0xaf, 0x26, 0xd1, 0xc7, 0x66, 0x44, 0x3b, 0x82, 0x78, 0x8e, 0x3f, 0xe2, 0x66, 0x44, 0x1a, 0x82,
- 0x6a, 0x1b, 0xa4, 0xf1, 0x6e, 0x20, 0x9e, 0xef, 0x73, 0x8c, 0x6f, 0x7e, 0xac, 0x19, 0xa8, 0x3e,
- 0x07, 0x27, 0x26, 0x77, 0x02, 0xf1, 0xac, 0x9f, 0xbf, 0x13, 0x39, 0xbb, 0x05, 0x1b, 0x81, 0xea,
- 0xce, 0xa8, 0xa4, 0x04, 0xbb, 0x80, 0x78, 0xda, 0x57, 0xee, 0x84, 0x13, 0x77, 0xb0, 0x09, 0xa8,
- 0xd6, 0x00, 0x46, 0x05, 0x38, 0x9e, 0xeb, 0x55, 0xc6, 0x15, 0x00, 0xe1, 0xad, 0xc1, 0xea, 0x6f,
- 0x3c, 0xfe, 0x0b, 0x7c, 0x6b, 0x30, 0x04, 0xde, 0x1a, 0xbc, 0xf4, 0xc6, 0xa3, 0x5f, 0xe3, 0x5b,
- 0x83, 0x43, 0x70, 0x64, 0x07, 0xaa, 0x5b, 0x3c, 0xc3, 0x17, 0x79, 0x64, 0x07, 0x50, 0xd5, 0x6d,
- 0x98, 0x1f, 0x2b, 0x88, 0xf1, 0x54, 0x5f, 0x62, 0x54, 0x62, 0xb4, 0x1e, 0x06, 0x8b, 0x17, 0x2b,
- 0x86, 0xf1, 0x6c, 0x7f, 0x16, 0x29, 0x5e, 0xac, 0x16, 0x56, 0x2f, 0x43, 0xce, 0x1c, 0x1a, 0x06,
- 0xde, 0x3c, 0xd2, 0xbd, 0x7f, 0x60, 0x57, 0xfe, 0x8f, 0xbb, 0xcc, 0x3b, 0x1c, 0x50, 0xbd, 0x00,
- 0x59, 0x34, 0xd8, 0x43, 0xdd, 0x38, 0xe4, 0x7f, 0xde, 0xe5, 0x09, 0x13, 0x6b, 0x57, 0x9f, 0x01,
- 0xa0, 0x57, 0x23, 0xe4, 0xb3, 0x5f, 0x0c, 0xf6, 0xbf, 0xee, 0xb2, 0x9f, 0xbe, 0x8c, 0x20, 0x23,
- 0x02, 0xfa, 0x43, 0x9a, 0x7b, 0x13, 0xbc, 0x13, 0x26, 0x20, 0x2b, 0x72, 0x09, 0x66, 0xae, 0xba,
- 0x96, 0xe9, 0xa9, 0xfd, 0x38, 0xf4, 0x7f, 0x33, 0x34, 0xd7, 0xc7, 0x0e, 0x1b, 0x58, 0x0e, 0xf2,
- 0xd4, 0xbe, 0x1b, 0x87, 0xfd, 0x1f, 0x86, 0xf5, 0x01, 0x18, 0xac, 0xa9, 0xae, 0x97, 0x64, 0xde,
- 0x3f, 0xe6, 0x60, 0x0e, 0xc0, 0x46, 0xe3, 0xff, 0xaf, 0xa1, 0x83, 0x38, 0xec, 0xbb, 0xdc, 0x68,
- 0xa6, 0x5f, 0xfd, 0x18, 0xe4, 0xf1, 0xbf, 0xf4, 0xf7, 0x6c, 0x31, 0xe0, 0xff, 0x65, 0xe0, 0x11,
- 0x02, 0xbf, 0xd9, 0xf5, 0xba, 0x9e, 0x1e, 0xef, 0xec, 0xff, 0x63, 0x2b, 0xcd, 0xf5, 0xab, 0x35,
- 0x28, 0xb8, 0x5e, 0xb7, 0x3b, 0x64, 0xfd, 0x69, 0x0c, 0xfc, 0xff, 0xef, 0xfa, 0x57, 0x16, 0x3e,
- 0x06, 0xaf, 0xf6, 0x8d, 0x6b, 0x9e, 0x6d, 0x91, 0xcf, 0x1c, 0x71, 0x0c, 0x77, 0x18, 0x43, 0x00,
- 0xb2, 0xd6, 0x98, 0x7c, 0x7d, 0x0b, 0x1b, 0xd6, 0x86, 0x45, 0x2f, 0x6e, 0x5f, 0x5c, 0x8e, 0xbf,
- 0x81, 0x85, 0xaf, 0x09, 0x50, 0xea, 0xe9, 0x06, 0x5a, 0xed, 0x5a, 0x1e, 0xbb, 0x89, 0x2d, 0xe0,
- 0xe7, 0xae, 0xe5, 0xe1, 0xa0, 0x5a, 0x3a, 0xde, 0x2d, 0xee, 0xf2, 0x3c, 0x08, 0x5b, 0x52, 0x11,
- 0x04, 0x95, 0xfd, 0x16, 0x4a, 0x50, 0xd7, 0x36, 0xdf, 0xb8, 0x5d, 0x99, 0xfa, 0xc1, 0xed, 0xca,
- 0xd4, 0xbf, 0xde, 0xae, 0x4c, 0xbd, 0x79, 0xbb, 0x22, 0xbc, 0x7d, 0xbb, 0x22, 0xbc, 0x7b, 0xbb,
- 0x22, 0xbc, 0x77, 0xbb, 0x22, 0xdc, 0x3a, 0xac, 0x08, 0x5f, 0x39, 0xac, 0x08, 0x5f, 0x3f, 0xac,
- 0x08, 0xdf, 0x3e, 0xac, 0x08, 0xdf, 0x3b, 0xac, 0x08, 0x6f, 0x1c, 0x56, 0xa6, 0x7e, 0x70, 0x58,
- 0x99, 0x7a, 0xf3, 0xb0, 0x22, 0xbc, 0x7d, 0x58, 0x99, 0x7a, 0xf7, 0xb0, 0x22, 0xbc, 0x77, 0x58,
- 0x99, 0xba, 0xf5, 0xa3, 0xca, 0xd4, 0x4f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xf4, 0xfc, 0x3b, 0xbe,
- 0x4b, 0x33, 0x00, 0x00,
+ // 3910 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0xdc, 0xd6,
+ 0x75, 0x26, 0xf6, 0x87, 0xdc, 0x3d, 0xbb, 0x5c, 0x82, 0x20, 0x2d, 0xad, 0xe8, 0x78, 0x25, 0xd1,
+ 0x76, 0x4c, 0xdb, 0x31, 0x95, 0x91, 0x25, 0xd9, 0x5e, 0x35, 0x71, 0x97, 0xe4, 0x8a, 0xa1, 0x4b,
+ 0x72, 0x37, 0x58, 0x32, 0xfe, 0xc9, 0x74, 0x30, 0x20, 0x70, 0x77, 0x09, 0x09, 0x0b, 0x20, 0x00,
+ 0x56, 0x32, 0x35, 0x7d, 0x50, 0xc7, 0xfd, 0x99, 0x4c, 0xff, 0x7f, 0x66, 0x9a, 0xb8, 0x8e, 0xdb,
+ 0xa4, 0xd3, 0x38, 0x4d, 0x9b, 0x36, 0xe9, 0x4f, 0x9a, 0xa4, 0x2f, 0x79, 0x49, 0xeb, 0xa7, 0x4e,
+ 0xf2, 0xd6, 0x87, 0x3e, 0x58, 0x8c, 0x67, 0xea, 0xb6, 0x6e, 0xeb, 0xb6, 0x7a, 0xf0, 0x8c, 0x5f,
+ 0x32, 0xf7, 0x0f, 0x0b, 0x60, 0x97, 0x02, 0x98, 0x19, 0xdb, 0x4f, 0x24, 0xce, 0x3d, 0xdf, 0x87,
+ 0x73, 0xcf, 0x3d, 0xf7, 0x9c, 0x73, 0x2f, 0x16, 0x5e, 0xaf, 0xc3, 0x99, 0x9e, 0x6d, 0xf7, 0x4c,
+ 0x74, 0xce, 0x71, 0x6d, 0xdf, 0xde, 0x1b, 0x74, 0xcf, 0xe9, 0xc8, 0xd3, 0x5c, 0xc3, 0xf1, 0x6d,
+ 0x77, 0x99, 0xc8, 0xa4, 0x19, 0xaa, 0xb1, 0xcc, 0x35, 0x16, 0xb7, 0x60, 0xf6, 0x8a, 0x61, 0xa2,
+ 0xb5, 0x40, 0xb1, 0x83, 0x7c, 0xe9, 0x49, 0xc8, 0x75, 0x0d, 0x13, 0x55, 0x85, 0x33, 0xd9, 0xa5,
+ 0xd2, 0xf9, 0x07, 0x96, 0x63, 0xa0, 0xe5, 0x28, 0xa2, 0x8d, 0xc5, 0x32, 0x41, 0x2c, 0xbe, 0x99,
+ 0x83, 0xb9, 0x31, 0xa3, 0x92, 0x04, 0x39, 0x4b, 0xed, 0x63, 0x46, 0x61, 0xa9, 0x28, 0x93, 0xff,
+ 0xa5, 0x2a, 0x4c, 0x39, 0xaa, 0x76, 0x4d, 0xed, 0xa1, 0x6a, 0x86, 0x88, 0xf9, 0xa3, 0x54, 0x03,
+ 0xd0, 0x91, 0x83, 0x2c, 0x1d, 0x59, 0xda, 0x41, 0x35, 0x7b, 0x26, 0xbb, 0x54, 0x94, 0x43, 0x12,
+ 0xe9, 0x51, 0x98, 0x75, 0x06, 0x7b, 0xa6, 0xa1, 0x29, 0x21, 0x35, 0x38, 0x93, 0x5d, 0xca, 0xcb,
+ 0x22, 0x1d, 0x58, 0x1b, 0x2a, 0x3f, 0x04, 0x33, 0x37, 0x90, 0x7a, 0x2d, 0xac, 0x5a, 0x22, 0xaa,
+ 0x15, 0x2c, 0x0e, 0x29, 0xae, 0x42, 0xb9, 0x8f, 0x3c, 0x4f, 0xed, 0x21, 0xc5, 0x3f, 0x70, 0x50,
+ 0x35, 0x47, 0x66, 0x7f, 0x66, 0x64, 0xf6, 0xf1, 0x99, 0x97, 0x18, 0x6a, 0xe7, 0xc0, 0x41, 0x52,
+ 0x03, 0x8a, 0xc8, 0x1a, 0xf4, 0x29, 0x43, 0xfe, 0x08, 0xff, 0x35, 0xad, 0x41, 0x3f, 0xce, 0x52,
+ 0xc0, 0x30, 0x46, 0x31, 0xe5, 0x21, 0xf7, 0xba, 0xa1, 0xa1, 0xea, 0x24, 0x21, 0x78, 0x68, 0x84,
+ 0xa0, 0x43, 0xc7, 0xe3, 0x1c, 0x1c, 0x27, 0xad, 0x42, 0x11, 0xbd, 0xe8, 0x23, 0xcb, 0x33, 0x6c,
+ 0xab, 0x3a, 0x45, 0x48, 0x1e, 0x1c, 0xb3, 0x8a, 0xc8, 0xd4, 0xe3, 0x14, 0x43, 0x9c, 0x74, 0x09,
+ 0xa6, 0x6c, 0xc7, 0x37, 0x6c, 0xcb, 0xab, 0x16, 0xce, 0x08, 0x4b, 0xa5, 0xf3, 0x1f, 0x19, 0x1b,
+ 0x08, 0x2d, 0xaa, 0x23, 0x73, 0x65, 0x69, 0x03, 0x44, 0xcf, 0x1e, 0xb8, 0x1a, 0x52, 0x34, 0x5b,
+ 0x47, 0x8a, 0x61, 0x75, 0xed, 0x6a, 0x91, 0x10, 0x9c, 0x1e, 0x9d, 0x08, 0x51, 0x5c, 0xb5, 0x75,
+ 0xb4, 0x61, 0x75, 0x6d, 0xb9, 0xe2, 0x45, 0x9e, 0xa5, 0x13, 0x30, 0xe9, 0x1d, 0x58, 0xbe, 0xfa,
+ 0x62, 0xb5, 0x4c, 0x22, 0x84, 0x3d, 0x2d, 0x7e, 0x77, 0x12, 0x66, 0xd2, 0x84, 0xd8, 0x65, 0xc8,
+ 0x77, 0xf1, 0x2c, 0xab, 0x99, 0xe3, 0xf8, 0x80, 0x62, 0xa2, 0x4e, 0x9c, 0xfc, 0x29, 0x9d, 0xd8,
+ 0x80, 0x92, 0x85, 0x3c, 0x1f, 0xe9, 0x34, 0x22, 0xb2, 0x29, 0x63, 0x0a, 0x28, 0x68, 0x34, 0xa4,
+ 0x72, 0x3f, 0x55, 0x48, 0x3d, 0x07, 0x33, 0x81, 0x49, 0x8a, 0xab, 0x5a, 0x3d, 0x1e, 0x9b, 0xe7,
+ 0x92, 0x2c, 0x59, 0x6e, 0x72, 0x9c, 0x8c, 0x61, 0x72, 0x05, 0x45, 0x9e, 0xa5, 0x35, 0x00, 0xdb,
+ 0x42, 0x76, 0x57, 0xd1, 0x91, 0x66, 0x56, 0x0b, 0x47, 0x78, 0xa9, 0x85, 0x55, 0x46, 0xbc, 0x64,
+ 0x53, 0xa9, 0x66, 0x4a, 0x4f, 0x0d, 0x43, 0x6d, 0xea, 0x88, 0x48, 0xd9, 0xa2, 0x9b, 0x6c, 0x24,
+ 0xda, 0x76, 0xa1, 0xe2, 0x22, 0x1c, 0xf7, 0x48, 0x67, 0x33, 0x2b, 0x12, 0x23, 0x96, 0x13, 0x67,
+ 0x26, 0x33, 0x18, 0x9d, 0xd8, 0xb4, 0x1b, 0x7e, 0x94, 0xee, 0x87, 0x40, 0xa0, 0x90, 0xb0, 0x02,
+ 0x92, 0x85, 0xca, 0x5c, 0xb8, 0xad, 0xf6, 0xd1, 0xc2, 0x4d, 0xa8, 0x44, 0xdd, 0x23, 0xcd, 0x43,
+ 0xde, 0xf3, 0x55, 0xd7, 0x27, 0x51, 0x98, 0x97, 0xe9, 0x83, 0x24, 0x42, 0x16, 0x59, 0x3a, 0xc9,
+ 0x72, 0x79, 0x19, 0xff, 0x2b, 0xfd, 0xec, 0x70, 0xc2, 0x59, 0x32, 0xe1, 0x8f, 0x8e, 0xae, 0x68,
+ 0x84, 0x39, 0x3e, 0xef, 0x85, 0x27, 0x60, 0x3a, 0x32, 0x81, 0xb4, 0xaf, 0x5e, 0xfc, 0x05, 0xb8,
+ 0x67, 0x2c, 0xb5, 0xf4, 0x1c, 0xcc, 0x0f, 0x2c, 0xc3, 0xf2, 0x91, 0xeb, 0xb8, 0x08, 0x47, 0x2c,
+ 0x7d, 0x55, 0xf5, 0xdf, 0xa6, 0x8e, 0x88, 0xb9, 0xdd, 0xb0, 0x36, 0x65, 0x91, 0xe7, 0x06, 0xa3,
+ 0xc2, 0x47, 0x8a, 0x85, 0xb7, 0xa6, 0xc4, 0x5b, 0xb7, 0x6e, 0xdd, 0xca, 0x2c, 0x7e, 0x61, 0x12,
+ 0xe6, 0xc7, 0xed, 0x99, 0xb1, 0xdb, 0xf7, 0x04, 0x4c, 0x5a, 0x83, 0xfe, 0x1e, 0x72, 0x89, 0x93,
+ 0xf2, 0x32, 0x7b, 0x92, 0x1a, 0x90, 0x37, 0xd5, 0x3d, 0x64, 0x56, 0x73, 0x67, 0x84, 0xa5, 0xca,
+ 0xf9, 0x47, 0x53, 0xed, 0xca, 0xe5, 0x4d, 0x0c, 0x91, 0x29, 0x52, 0xfa, 0x24, 0xe4, 0x58, 0x8a,
+ 0xc6, 0x0c, 0x8f, 0xa4, 0x63, 0xc0, 0x7b, 0x49, 0x26, 0x38, 0xe9, 0x5e, 0x28, 0xe2, 0xbf, 0x34,
+ 0x36, 0x26, 0x89, 0xcd, 0x05, 0x2c, 0xc0, 0x71, 0x21, 0x2d, 0x40, 0x81, 0x6c, 0x13, 0x1d, 0xf1,
+ 0xd2, 0x16, 0x3c, 0xe3, 0xc0, 0xd2, 0x51, 0x57, 0x1d, 0x98, 0xbe, 0x72, 0x5d, 0x35, 0x07, 0x88,
+ 0x04, 0x7c, 0x51, 0x2e, 0x33, 0xe1, 0x67, 0xb0, 0x4c, 0x3a, 0x0d, 0x25, 0xba, 0xab, 0x0c, 0x4b,
+ 0x47, 0x2f, 0x92, 0xec, 0x99, 0x97, 0xe9, 0x46, 0xdb, 0xc0, 0x12, 0xfc, 0xfa, 0xab, 0x9e, 0x6d,
+ 0xf1, 0xd0, 0x24, 0xaf, 0xc0, 0x02, 0xf2, 0xfa, 0x27, 0xe2, 0x89, 0xfb, 0xbe, 0xf1, 0xd3, 0x8b,
+ 0xc7, 0xd4, 0xe2, 0xb7, 0x33, 0x90, 0x23, 0xf9, 0x62, 0x06, 0x4a, 0x3b, 0xcf, 0xb7, 0x9b, 0xca,
+ 0x5a, 0x6b, 0x77, 0x65, 0xb3, 0x29, 0x0a, 0x52, 0x05, 0x80, 0x08, 0xae, 0x6c, 0xb6, 0x1a, 0x3b,
+ 0x62, 0x26, 0x78, 0xde, 0xd8, 0xde, 0xb9, 0x74, 0x41, 0xcc, 0x06, 0x80, 0x5d, 0x2a, 0xc8, 0x85,
+ 0x15, 0x1e, 0x3f, 0x2f, 0xe6, 0x25, 0x11, 0xca, 0x94, 0x60, 0xe3, 0xb9, 0xe6, 0xda, 0xa5, 0x0b,
+ 0xe2, 0x64, 0x54, 0xf2, 0xf8, 0x79, 0x71, 0x4a, 0x9a, 0x86, 0x22, 0x91, 0xac, 0xb4, 0x5a, 0x9b,
+ 0x62, 0x21, 0xe0, 0xec, 0xec, 0xc8, 0x1b, 0xdb, 0xeb, 0x62, 0x31, 0xe0, 0x5c, 0x97, 0x5b, 0xbb,
+ 0x6d, 0x11, 0x02, 0x86, 0xad, 0x66, 0xa7, 0xd3, 0x58, 0x6f, 0x8a, 0xa5, 0x40, 0x63, 0xe5, 0xf9,
+ 0x9d, 0x66, 0x47, 0x2c, 0x47, 0xcc, 0x7a, 0xfc, 0xbc, 0x38, 0x1d, 0xbc, 0xa2, 0xb9, 0xbd, 0xbb,
+ 0x25, 0x56, 0xa4, 0x59, 0x98, 0xa6, 0xaf, 0xe0, 0x46, 0xcc, 0xc4, 0x44, 0x97, 0x2e, 0x88, 0xe2,
+ 0xd0, 0x10, 0xca, 0x32, 0x1b, 0x11, 0x5c, 0xba, 0x20, 0x4a, 0x8b, 0xab, 0x90, 0x27, 0xd1, 0x25,
+ 0x49, 0x50, 0xd9, 0x6c, 0xac, 0x34, 0x37, 0x95, 0x56, 0x7b, 0x67, 0xa3, 0xb5, 0xdd, 0xd8, 0x14,
+ 0x85, 0xa1, 0x4c, 0x6e, 0x7e, 0x7a, 0x77, 0x43, 0x6e, 0xae, 0x89, 0x99, 0xb0, 0xac, 0xdd, 0x6c,
+ 0xec, 0x34, 0xd7, 0xc4, 0xec, 0xa2, 0x06, 0xf3, 0xe3, 0xf2, 0xe4, 0xd8, 0x9d, 0x11, 0x5a, 0xe2,
+ 0xcc, 0x11, 0x4b, 0x4c, 0xb8, 0x46, 0x96, 0xf8, 0xc7, 0x19, 0x98, 0x1b, 0x53, 0x2b, 0xc6, 0xbe,
+ 0xe4, 0x69, 0xc8, 0xd3, 0x10, 0xa5, 0xd5, 0xf3, 0xe1, 0xb1, 0x45, 0x87, 0x04, 0xec, 0x48, 0x05,
+ 0x25, 0xb8, 0x70, 0x07, 0x91, 0x3d, 0xa2, 0x83, 0xc0, 0x14, 0x23, 0x39, 0xfd, 0xe7, 0x47, 0x72,
+ 0x3a, 0x2d, 0x7b, 0x97, 0xd2, 0x94, 0x3d, 0x22, 0x3b, 0x5e, 0x6e, 0xcf, 0x8f, 0xc9, 0xed, 0x97,
+ 0x61, 0x76, 0x84, 0x28, 0x75, 0x8e, 0x7d, 0x49, 0x80, 0xea, 0x51, 0xce, 0x49, 0xc8, 0x74, 0x99,
+ 0x48, 0xa6, 0xbb, 0x1c, 0xf7, 0xe0, 0xd9, 0xa3, 0x17, 0x61, 0x64, 0xad, 0x5f, 0x13, 0xe0, 0xc4,
+ 0xf8, 0x4e, 0x71, 0xac, 0x0d, 0x9f, 0x84, 0xc9, 0x3e, 0xf2, 0xf7, 0x6d, 0xde, 0x2d, 0x7d, 0x74,
+ 0x4c, 0x0d, 0xc6, 0xc3, 0xf1, 0xc5, 0x66, 0xa8, 0x70, 0x11, 0xcf, 0x1e, 0xd5, 0xee, 0x51, 0x6b,
+ 0x46, 0x2c, 0xfd, 0x7c, 0x06, 0xee, 0x19, 0x4b, 0x3e, 0xd6, 0xd0, 0xfb, 0x00, 0x0c, 0xcb, 0x19,
+ 0xf8, 0xb4, 0x23, 0xa2, 0x09, 0xb6, 0x48, 0x24, 0x24, 0x79, 0xe1, 0xe4, 0x39, 0xf0, 0x83, 0xf1,
+ 0x2c, 0x19, 0x07, 0x2a, 0x22, 0x0a, 0x4f, 0x0e, 0x0d, 0xcd, 0x11, 0x43, 0x6b, 0x47, 0xcc, 0x74,
+ 0x24, 0x30, 0x3f, 0x0e, 0xa2, 0x66, 0x1a, 0xc8, 0xf2, 0x15, 0xcf, 0x77, 0x91, 0xda, 0x37, 0xac,
+ 0x1e, 0xa9, 0x20, 0x85, 0x7a, 0xbe, 0xab, 0x9a, 0x1e, 0x92, 0x67, 0xe8, 0x70, 0x87, 0x8f, 0x62,
+ 0x04, 0x09, 0x20, 0x37, 0x84, 0x98, 0x8c, 0x20, 0xe8, 0x70, 0x80, 0x58, 0xfc, 0xf5, 0x22, 0x94,
+ 0x42, 0x7d, 0xb5, 0x74, 0x16, 0xca, 0x57, 0xd5, 0xeb, 0xaa, 0xc2, 0xcf, 0x4a, 0xd4, 0x13, 0x25,
+ 0x2c, 0x6b, 0xb3, 0xf3, 0xd2, 0xc7, 0x61, 0x9e, 0xa8, 0xd8, 0x03, 0x1f, 0xb9, 0x8a, 0x66, 0xaa,
+ 0x9e, 0x47, 0x9c, 0x56, 0x20, 0xaa, 0x12, 0x1e, 0x6b, 0xe1, 0xa1, 0x55, 0x3e, 0x22, 0x5d, 0x84,
+ 0x39, 0x82, 0xe8, 0x0f, 0x4c, 0xdf, 0x70, 0x4c, 0xa4, 0xe0, 0xd3, 0x9b, 0x47, 0x2a, 0x49, 0x60,
+ 0xd9, 0x2c, 0xd6, 0xd8, 0x62, 0x0a, 0xd8, 0x22, 0x4f, 0x5a, 0x83, 0xfb, 0x08, 0xac, 0x87, 0x2c,
+ 0xe4, 0xaa, 0x3e, 0x52, 0xd0, 0xe7, 0x06, 0xaa, 0xe9, 0x29, 0xaa, 0xa5, 0x2b, 0xfb, 0xaa, 0xb7,
+ 0x5f, 0x9d, 0xc7, 0x04, 0x2b, 0x99, 0xaa, 0x20, 0x9f, 0xc2, 0x8a, 0xeb, 0x4c, 0xaf, 0x49, 0xd4,
+ 0x1a, 0x96, 0xfe, 0x29, 0xd5, 0xdb, 0x97, 0xea, 0x70, 0x82, 0xb0, 0x78, 0xbe, 0x6b, 0x58, 0x3d,
+ 0x45, 0xdb, 0x47, 0xda, 0x35, 0x65, 0xe0, 0x77, 0x9f, 0xac, 0xde, 0x1b, 0x7e, 0x3f, 0xb1, 0xb0,
+ 0x43, 0x74, 0x56, 0xb1, 0xca, 0xae, 0xdf, 0x7d, 0x52, 0xea, 0x40, 0x19, 0x2f, 0x46, 0xdf, 0xb8,
+ 0x89, 0x94, 0xae, 0xed, 0x92, 0xd2, 0x58, 0x19, 0x93, 0x9a, 0x42, 0x1e, 0x5c, 0x6e, 0x31, 0xc0,
+ 0x96, 0xad, 0xa3, 0x7a, 0xbe, 0xd3, 0x6e, 0x36, 0xd7, 0xe4, 0x12, 0x67, 0xb9, 0x62, 0xbb, 0x38,
+ 0xa0, 0x7a, 0x76, 0xe0, 0xe0, 0x12, 0x0d, 0xa8, 0x9e, 0xcd, 0xdd, 0x7b, 0x11, 0xe6, 0x34, 0x8d,
+ 0xce, 0xd9, 0xd0, 0x14, 0x76, 0xc6, 0xf2, 0xaa, 0x62, 0xc4, 0x59, 0x9a, 0xb6, 0x4e, 0x15, 0x58,
+ 0x8c, 0x7b, 0xd2, 0x53, 0x70, 0xcf, 0xd0, 0x59, 0x61, 0xe0, 0xec, 0xc8, 0x2c, 0xe3, 0xd0, 0x8b,
+ 0x30, 0xe7, 0x1c, 0x8c, 0x02, 0xa5, 0xc8, 0x1b, 0x9d, 0x83, 0x38, 0xec, 0x09, 0x98, 0x77, 0xf6,
+ 0x9d, 0x51, 0xdc, 0x23, 0x61, 0x9c, 0xe4, 0xec, 0x3b, 0x71, 0xe0, 0x83, 0xe4, 0xc0, 0xed, 0x22,
+ 0x4d, 0xf5, 0x91, 0x5e, 0x3d, 0x19, 0x56, 0x0f, 0x0d, 0x48, 0xe7, 0x40, 0xd4, 0x34, 0x05, 0x59,
+ 0xea, 0x9e, 0x89, 0x14, 0xd5, 0x45, 0x96, 0xea, 0x55, 0x4f, 0x87, 0x95, 0x2b, 0x9a, 0xd6, 0x24,
+ 0xa3, 0x0d, 0x32, 0x28, 0x3d, 0x02, 0xb3, 0xf6, 0xde, 0x55, 0x8d, 0x86, 0xa4, 0xe2, 0xb8, 0xa8,
+ 0x6b, 0xbc, 0x58, 0x7d, 0x80, 0xf8, 0x77, 0x06, 0x0f, 0x90, 0x80, 0x6c, 0x13, 0xb1, 0xf4, 0x30,
+ 0x88, 0x9a, 0xb7, 0xaf, 0xba, 0x0e, 0xc9, 0xc9, 0x9e, 0xa3, 0x6a, 0xa8, 0xfa, 0x20, 0x55, 0xa5,
+ 0xf2, 0x6d, 0x2e, 0xc6, 0x5b, 0xc2, 0xbb, 0x61, 0x74, 0x7d, 0xce, 0xf8, 0x10, 0xdd, 0x12, 0x44,
+ 0xc6, 0xd8, 0x96, 0x40, 0xc4, 0xae, 0x88, 0xbc, 0x78, 0x89, 0xa8, 0x55, 0x9c, 0x7d, 0x27, 0xfc,
+ 0xde, 0xfb, 0x61, 0x1a, 0x6b, 0x0e, 0x5f, 0xfa, 0x30, 0x6d, 0xc8, 0x9c, 0xfd, 0xd0, 0x1b, 0x2f,
+ 0xc0, 0x09, 0xac, 0xd4, 0x47, 0xbe, 0xaa, 0xab, 0xbe, 0x1a, 0xd2, 0xfe, 0x18, 0xd1, 0xc6, 0x7e,
+ 0xdf, 0x62, 0x83, 0x11, 0x3b, 0xdd, 0xc1, 0xde, 0x41, 0x10, 0x59, 0x8f, 0x51, 0x3b, 0xb1, 0x8c,
+ 0xc7, 0xd6, 0xfb, 0xd6, 0x74, 0x2f, 0xd6, 0xa1, 0x1c, 0x0e, 0x7c, 0xa9, 0x08, 0x34, 0xf4, 0x45,
+ 0x01, 0x77, 0x41, 0xab, 0xad, 0x35, 0xdc, 0xbf, 0xbc, 0xd0, 0x14, 0x33, 0xb8, 0x8f, 0xda, 0xdc,
+ 0xd8, 0x69, 0x2a, 0xf2, 0xee, 0xf6, 0xce, 0xc6, 0x56, 0x53, 0xcc, 0x86, 0x1b, 0xf6, 0x1f, 0x64,
+ 0xa0, 0x12, 0x3d, 0x7b, 0x49, 0x3f, 0x03, 0x27, 0xf9, 0x45, 0x89, 0x87, 0x7c, 0xe5, 0x86, 0xe1,
+ 0x92, 0xbd, 0xd8, 0x57, 0x69, 0x5d, 0x0c, 0xa2, 0x61, 0x9e, 0x69, 0x75, 0x90, 0xff, 0xac, 0xe1,
+ 0xe2, 0x9d, 0xd6, 0x57, 0x7d, 0x69, 0x13, 0x4e, 0x5b, 0xb6, 0xe2, 0xf9, 0xaa, 0xa5, 0xab, 0xae,
+ 0xae, 0x0c, 0xaf, 0xa8, 0x14, 0x55, 0xd3, 0x90, 0xe7, 0xd9, 0xb4, 0x06, 0x06, 0x2c, 0x1f, 0xb1,
+ 0xec, 0x0e, 0x53, 0x1e, 0x16, 0x87, 0x06, 0x53, 0x8d, 0x45, 0x6e, 0xf6, 0xa8, 0xc8, 0xbd, 0x17,
+ 0x8a, 0x7d, 0xd5, 0x51, 0x90, 0xe5, 0xbb, 0x07, 0xa4, 0xe3, 0x2e, 0xc8, 0x85, 0xbe, 0xea, 0x34,
+ 0xf1, 0xf3, 0x07, 0x73, 0xf0, 0xf9, 0xd7, 0x2c, 0x94, 0xc3, 0x5d, 0x37, 0x3e, 0xc4, 0x68, 0xa4,
+ 0x40, 0x09, 0x24, 0x85, 0xdd, 0x7f, 0xd7, 0x1e, 0x7d, 0x79, 0x15, 0x57, 0xae, 0xfa, 0x24, 0xed,
+ 0x85, 0x65, 0x8a, 0xc4, 0x5d, 0x03, 0x0e, 0x2d, 0x44, 0x7b, 0x8f, 0x82, 0xcc, 0x9e, 0xa4, 0x75,
+ 0x98, 0xbc, 0xea, 0x11, 0xee, 0x49, 0xc2, 0xfd, 0xc0, 0xdd, 0xb9, 0x9f, 0xe9, 0x10, 0xf2, 0xe2,
+ 0x33, 0x1d, 0x65, 0xbb, 0x25, 0x6f, 0x35, 0x36, 0x65, 0x06, 0x97, 0x4e, 0x41, 0xce, 0x54, 0x6f,
+ 0x1e, 0x44, 0x6b, 0x1c, 0x11, 0xa5, 0x75, 0xfc, 0x29, 0xc8, 0xdd, 0x40, 0xea, 0xb5, 0x68, 0x65,
+ 0x21, 0xa2, 0xf7, 0x31, 0xf4, 0xcf, 0x41, 0x9e, 0xf8, 0x4b, 0x02, 0x60, 0x1e, 0x13, 0x27, 0xa4,
+ 0x02, 0xe4, 0x56, 0x5b, 0x32, 0x0e, 0x7f, 0x11, 0xca, 0x54, 0xaa, 0xb4, 0x37, 0x9a, 0xab, 0x4d,
+ 0x31, 0xb3, 0x78, 0x11, 0x26, 0xa9, 0x13, 0xf0, 0xd6, 0x08, 0xdc, 0x20, 0x4e, 0xb0, 0x47, 0xc6,
+ 0x21, 0xf0, 0xd1, 0xdd, 0xad, 0x95, 0xa6, 0x2c, 0x66, 0xc2, 0xcb, 0xeb, 0x41, 0x39, 0xdc, 0x70,
+ 0x7f, 0x30, 0x31, 0xf5, 0x3d, 0x01, 0x4a, 0xa1, 0x06, 0x1a, 0x77, 0x3e, 0xaa, 0x69, 0xda, 0x37,
+ 0x14, 0xd5, 0x34, 0x54, 0x8f, 0x05, 0x05, 0x10, 0x51, 0x03, 0x4b, 0xd2, 0x2e, 0xda, 0x07, 0x62,
+ 0xfc, 0xab, 0x02, 0x88, 0xf1, 0xde, 0x35, 0x66, 0xa0, 0xf0, 0xa1, 0x1a, 0xf8, 0x8a, 0x00, 0x95,
+ 0x68, 0xc3, 0x1a, 0x33, 0xef, 0xec, 0x87, 0x6a, 0xde, 0x1b, 0x19, 0x98, 0x8e, 0xb4, 0xa9, 0x69,
+ 0xad, 0xfb, 0x1c, 0xcc, 0x1a, 0x3a, 0xea, 0x3b, 0xb6, 0x8f, 0x2c, 0xed, 0x40, 0x31, 0xd1, 0x75,
+ 0x64, 0x56, 0x17, 0x49, 0xa2, 0x38, 0x77, 0xf7, 0x46, 0x78, 0x79, 0x63, 0x88, 0xdb, 0xc4, 0xb0,
+ 0xfa, 0xdc, 0xc6, 0x5a, 0x73, 0xab, 0xdd, 0xda, 0x69, 0x6e, 0xaf, 0x3e, 0xaf, 0xec, 0x6e, 0xff,
+ 0xdc, 0x76, 0xeb, 0xd9, 0x6d, 0x59, 0x34, 0x62, 0x6a, 0xef, 0xe3, 0x56, 0x6f, 0x83, 0x18, 0x37,
+ 0x4a, 0x3a, 0x09, 0xe3, 0xcc, 0x12, 0x27, 0xa4, 0x39, 0x98, 0xd9, 0x6e, 0x29, 0x9d, 0x8d, 0xb5,
+ 0xa6, 0xd2, 0xbc, 0x72, 0xa5, 0xb9, 0xba, 0xd3, 0xa1, 0x57, 0x1b, 0x81, 0xf6, 0x4e, 0x74, 0x53,
+ 0xbf, 0x9c, 0x85, 0xb9, 0x31, 0x96, 0x48, 0x0d, 0x76, 0x28, 0xa1, 0xe7, 0xa4, 0xc7, 0xd2, 0x58,
+ 0xbf, 0x8c, 0xbb, 0x82, 0xb6, 0xea, 0xfa, 0xec, 0x0c, 0xf3, 0x30, 0x60, 0x2f, 0x59, 0xbe, 0xd1,
+ 0x35, 0x90, 0xcb, 0x6e, 0x82, 0xe8, 0x49, 0x65, 0x66, 0x28, 0xa7, 0x97, 0x41, 0x1f, 0x03, 0xc9,
+ 0xb1, 0x3d, 0xc3, 0x37, 0xae, 0x23, 0xc5, 0xb0, 0xf8, 0xb5, 0x11, 0x3e, 0xb9, 0xe4, 0x64, 0x91,
+ 0x8f, 0x6c, 0x58, 0x7e, 0xa0, 0x6d, 0xa1, 0x9e, 0x1a, 0xd3, 0xc6, 0x09, 0x3c, 0x2b, 0x8b, 0x7c,
+ 0x24, 0xd0, 0x3e, 0x0b, 0x65, 0xdd, 0x1e, 0xe0, 0x76, 0x8e, 0xea, 0xe1, 0x7a, 0x21, 0xc8, 0x25,
+ 0x2a, 0x0b, 0x54, 0x58, 0xa3, 0x3e, 0xbc, 0xaf, 0x2a, 0xcb, 0x25, 0x2a, 0xa3, 0x2a, 0x0f, 0xc1,
+ 0x8c, 0xda, 0xeb, 0xb9, 0x98, 0x9c, 0x13, 0xd1, 0xa3, 0x47, 0x25, 0x10, 0x13, 0xc5, 0x85, 0x67,
+ 0xa0, 0xc0, 0xfd, 0x80, 0x4b, 0x32, 0xf6, 0x84, 0xe2, 0xd0, 0xf3, 0x74, 0x66, 0xa9, 0x28, 0x17,
+ 0x2c, 0x3e, 0x78, 0x16, 0xca, 0x86, 0xa7, 0x0c, 0xaf, 0xdf, 0x33, 0x67, 0x32, 0x4b, 0x05, 0xb9,
+ 0x64, 0x78, 0xc1, 0xd5, 0xe5, 0xe2, 0x6b, 0x19, 0xa8, 0x44, 0x3f, 0x1f, 0x48, 0x6b, 0x50, 0x30,
+ 0x6d, 0x4d, 0x25, 0xa1, 0x45, 0xbf, 0x5d, 0x2d, 0x25, 0x7c, 0x71, 0x58, 0xde, 0x64, 0xfa, 0x72,
+ 0x80, 0x5c, 0xf8, 0x67, 0x01, 0x0a, 0x5c, 0x2c, 0x9d, 0x80, 0x9c, 0xa3, 0xfa, 0xfb, 0x84, 0x2e,
+ 0xbf, 0x92, 0x11, 0x05, 0x99, 0x3c, 0x63, 0xb9, 0xe7, 0xa8, 0x16, 0x09, 0x01, 0x26, 0xc7, 0xcf,
+ 0x78, 0x5d, 0x4d, 0xa4, 0xea, 0xe4, 0x5c, 0x63, 0xf7, 0xfb, 0xc8, 0xf2, 0x3d, 0xbe, 0xae, 0x4c,
+ 0xbe, 0xca, 0xc4, 0xd2, 0xa3, 0x30, 0xeb, 0xbb, 0xaa, 0x61, 0x46, 0x74, 0x73, 0x44, 0x57, 0xe4,
+ 0x03, 0x81, 0x72, 0x1d, 0x4e, 0x71, 0x5e, 0x1d, 0xf9, 0xaa, 0xb6, 0x8f, 0xf4, 0x21, 0x68, 0x92,
+ 0xdc, 0x5f, 0x9c, 0x64, 0x0a, 0x6b, 0x6c, 0x9c, 0x63, 0x17, 0x7f, 0x24, 0xc0, 0x2c, 0x3f, 0x89,
+ 0xe9, 0x81, 0xb3, 0xb6, 0x00, 0x54, 0xcb, 0xb2, 0xfd, 0xb0, 0xbb, 0x46, 0x43, 0x79, 0x04, 0xb7,
+ 0xdc, 0x08, 0x40, 0x72, 0x88, 0x60, 0xa1, 0x0f, 0x30, 0x1c, 0x39, 0xd2, 0x6d, 0xa7, 0xa1, 0xc4,
+ 0xbe, 0x0d, 0x91, 0x0f, 0x8c, 0xf4, 0xec, 0x0e, 0x54, 0x84, 0x8f, 0x6c, 0xd2, 0x3c, 0xe4, 0xf7,
+ 0x50, 0xcf, 0xb0, 0xd8, 0x8d, 0x2f, 0x7d, 0xe0, 0x37, 0x2c, 0xb9, 0xe0, 0x86, 0x65, 0xe5, 0xb3,
+ 0x30, 0xa7, 0xd9, 0xfd, 0xb8, 0xb9, 0x2b, 0x62, 0xec, 0xfe, 0xc0, 0xfb, 0x94, 0xf0, 0x02, 0x0c,
+ 0x5b, 0xcc, 0x77, 0x05, 0xe1, 0x2b, 0x99, 0xec, 0x7a, 0x7b, 0xe5, 0xeb, 0x99, 0x85, 0x75, 0x0a,
+ 0x6d, 0xf3, 0x99, 0xca, 0xa8, 0x6b, 0x22, 0x0d, 0x5b, 0x0f, 0x5f, 0x7d, 0x14, 0x1e, 0xeb, 0x19,
+ 0xfe, 0xfe, 0x60, 0x6f, 0x59, 0xb3, 0xfb, 0xe7, 0x7a, 0x76, 0xcf, 0x1e, 0x7e, 0x53, 0xc5, 0x4f,
+ 0xe4, 0x81, 0xfc, 0xc7, 0xbe, 0xab, 0x16, 0x03, 0xe9, 0x42, 0xe2, 0x47, 0xd8, 0xfa, 0x36, 0xcc,
+ 0x31, 0x65, 0x85, 0x7c, 0xd8, 0xa1, 0xc7, 0x13, 0xe9, 0xae, 0x97, 0x63, 0xd5, 0x6f, 0xbd, 0x49,
+ 0xca, 0xb5, 0x3c, 0xcb, 0xa0, 0x78, 0x8c, 0x9e, 0x60, 0xea, 0x32, 0xdc, 0x13, 0xe1, 0xa3, 0x5b,
+ 0x13, 0xb9, 0x09, 0x8c, 0x3f, 0x60, 0x8c, 0x73, 0x21, 0xc6, 0x0e, 0x83, 0xd6, 0x57, 0x61, 0xfa,
+ 0x38, 0x5c, 0xff, 0xc8, 0xb8, 0xca, 0x28, 0x4c, 0xb2, 0x0e, 0x33, 0x84, 0x44, 0x1b, 0x78, 0xbe,
+ 0xdd, 0x27, 0x79, 0xef, 0xee, 0x34, 0xff, 0xf4, 0x26, 0xdd, 0x2b, 0x15, 0x0c, 0x5b, 0x0d, 0x50,
+ 0xf5, 0x3a, 0x90, 0x6f, 0x59, 0x3a, 0xd2, 0xcc, 0x04, 0x86, 0xd7, 0x99, 0x21, 0x81, 0x7e, 0xfd,
+ 0x33, 0x30, 0x8f, 0xff, 0x27, 0x69, 0x29, 0x6c, 0x49, 0xf2, 0x4d, 0x5a, 0xf5, 0x47, 0x2f, 0xd1,
+ 0xed, 0x38, 0x17, 0x10, 0x84, 0x6c, 0x0a, 0xad, 0x62, 0x0f, 0xf9, 0x3e, 0x72, 0x3d, 0x45, 0x35,
+ 0xc7, 0x99, 0x17, 0xba, 0x8a, 0xa8, 0x7e, 0xf1, 0xed, 0xe8, 0x2a, 0xae, 0x53, 0x64, 0xc3, 0x34,
+ 0xeb, 0xbb, 0x70, 0x72, 0x4c, 0x54, 0xa4, 0xe0, 0x7c, 0x99, 0x71, 0xce, 0x8f, 0x44, 0x06, 0xa6,
+ 0x6d, 0x03, 0x97, 0x07, 0x6b, 0x99, 0x82, 0xf3, 0x0f, 0x19, 0xa7, 0xc4, 0xb0, 0x7c, 0x49, 0x31,
+ 0xe3, 0x33, 0x30, 0x7b, 0x1d, 0xb9, 0x7b, 0xb6, 0xc7, 0xae, 0x7f, 0x52, 0xd0, 0xbd, 0xc2, 0xe8,
+ 0x66, 0x18, 0x90, 0xdc, 0x07, 0x61, 0xae, 0xa7, 0xa0, 0xd0, 0x55, 0x35, 0x94, 0x82, 0xe2, 0x4b,
+ 0x8c, 0x62, 0x0a, 0xeb, 0x63, 0x68, 0x03, 0xca, 0x3d, 0x9b, 0x55, 0xa6, 0x64, 0xf8, 0xab, 0x0c,
+ 0x5e, 0xe2, 0x18, 0x46, 0xe1, 0xd8, 0xce, 0xc0, 0xc4, 0x65, 0x2b, 0x99, 0xe2, 0x8f, 0x38, 0x05,
+ 0xc7, 0x30, 0x8a, 0x63, 0xb8, 0xf5, 0x8f, 0x39, 0x85, 0x17, 0xf2, 0xe7, 0xd3, 0x50, 0xb2, 0x2d,
+ 0xf3, 0xc0, 0xb6, 0xd2, 0x18, 0xf1, 0x65, 0xc6, 0x00, 0x0c, 0x82, 0x09, 0x2e, 0x43, 0x31, 0xed,
+ 0x42, 0xfc, 0xe9, 0xdb, 0x7c, 0x7b, 0xf0, 0x15, 0x58, 0x87, 0x19, 0x9e, 0xa0, 0x0c, 0xdb, 0x4a,
+ 0x41, 0xf1, 0x55, 0x46, 0x51, 0x09, 0xc1, 0xd8, 0x34, 0x7c, 0xe4, 0xf9, 0x3d, 0x94, 0x86, 0xe4,
+ 0x35, 0x3e, 0x0d, 0x06, 0x61, 0xae, 0xdc, 0x43, 0x96, 0xb6, 0x9f, 0x8e, 0xe1, 0x6b, 0xdc, 0x95,
+ 0x1c, 0x83, 0x29, 0x56, 0x61, 0xba, 0xaf, 0xba, 0xde, 0xbe, 0x6a, 0xa6, 0x5a, 0x8e, 0x3f, 0x63,
+ 0x1c, 0xe5, 0x00, 0xc4, 0x3c, 0x32, 0xb0, 0x8e, 0x43, 0xf3, 0x75, 0xee, 0x91, 0x10, 0x8c, 0x6d,
+ 0x3d, 0xcf, 0x27, 0x77, 0x65, 0xc7, 0x61, 0xfb, 0x73, 0xbe, 0xf5, 0x28, 0x76, 0x2b, 0xcc, 0x78,
+ 0x19, 0x8a, 0x9e, 0x71, 0x33, 0x15, 0xcd, 0x5f, 0xf0, 0x95, 0x26, 0x00, 0x0c, 0x7e, 0x1e, 0x4e,
+ 0x8d, 0x2d, 0x13, 0x29, 0xc8, 0xbe, 0xc1, 0xc8, 0x4e, 0x8c, 0x29, 0x15, 0x2c, 0x25, 0x1c, 0x97,
+ 0xf2, 0x2f, 0x79, 0x4a, 0x40, 0x31, 0xae, 0x36, 0x3e, 0x2b, 0x78, 0x6a, 0xf7, 0x78, 0x5e, 0xfb,
+ 0x2b, 0xee, 0x35, 0x8a, 0x8d, 0x78, 0x6d, 0x07, 0x4e, 0x30, 0xc6, 0xe3, 0xad, 0xeb, 0x37, 0x79,
+ 0x62, 0xa5, 0xe8, 0xdd, 0xe8, 0xea, 0x7e, 0x16, 0x16, 0x02, 0x77, 0xf2, 0xa6, 0xd4, 0x53, 0xfa,
+ 0xaa, 0x93, 0x82, 0xf9, 0x5b, 0x8c, 0x99, 0x67, 0xfc, 0xa0, 0xab, 0xf5, 0xb6, 0x54, 0x07, 0x93,
+ 0x3f, 0x07, 0x55, 0x4e, 0x3e, 0xb0, 0x5c, 0xa4, 0xd9, 0x3d, 0xcb, 0xb8, 0x89, 0xf4, 0x14, 0xd4,
+ 0x7f, 0x1d, 0x5b, 0xaa, 0xdd, 0x10, 0x1c, 0x33, 0x6f, 0x80, 0x18, 0xf4, 0x2a, 0x8a, 0xd1, 0x77,
+ 0x6c, 0xd7, 0x4f, 0x60, 0xfc, 0x1b, 0xbe, 0x52, 0x01, 0x6e, 0x83, 0xc0, 0xea, 0x4d, 0xa8, 0x90,
+ 0xc7, 0xb4, 0x21, 0xf9, 0xb7, 0x8c, 0x68, 0x7a, 0x88, 0x62, 0x89, 0x43, 0xb3, 0xfb, 0x8e, 0xea,
+ 0xa6, 0xc9, 0x7f, 0x7f, 0xc7, 0x13, 0x07, 0x83, 0xb0, 0xc4, 0xe1, 0x1f, 0x38, 0x08, 0x57, 0xfb,
+ 0x14, 0x0c, 0xdf, 0xe6, 0x89, 0x83, 0x63, 0x18, 0x05, 0x6f, 0x18, 0x52, 0x50, 0xfc, 0x3d, 0xa7,
+ 0xe0, 0x18, 0x4c, 0xf1, 0xe9, 0x61, 0xa1, 0x75, 0x51, 0xcf, 0xf0, 0x7c, 0x97, 0xb6, 0xc2, 0x77,
+ 0xa7, 0xfa, 0xce, 0xdb, 0xd1, 0x26, 0x4c, 0x0e, 0x41, 0x71, 0x26, 0x62, 0x57, 0xa8, 0xe4, 0xa4,
+ 0x94, 0x6c, 0xd8, 0x77, 0x79, 0x26, 0x0a, 0xc1, 0xb0, 0x6d, 0xa1, 0x0e, 0x11, 0xbb, 0x5d, 0xc3,
+ 0xe7, 0x83, 0x14, 0x74, 0xdf, 0x8b, 0x19, 0xd7, 0xe1, 0x58, 0xcc, 0x19, 0xea, 0x7f, 0x06, 0xd6,
+ 0x35, 0x74, 0x90, 0x2a, 0x3a, 0xff, 0x21, 0xd6, 0xff, 0xec, 0x52, 0x24, 0xcd, 0x21, 0x33, 0xb1,
+ 0x7e, 0x4a, 0x4a, 0xfa, 0x15, 0x50, 0xf5, 0x17, 0xef, 0xb0, 0xf9, 0x46, 0xdb, 0xa9, 0xfa, 0x26,
+ 0x0e, 0xf2, 0x68, 0xd3, 0x93, 0x4c, 0xf6, 0xd2, 0x9d, 0x20, 0xce, 0x23, 0x3d, 0x4f, 0xfd, 0x0a,
+ 0x4c, 0x47, 0x1a, 0x9e, 0x64, 0xaa, 0x5f, 0x62, 0x54, 0xe5, 0x70, 0xbf, 0x53, 0xbf, 0x08, 0x39,
+ 0xdc, 0xbc, 0x24, 0xc3, 0x7f, 0x99, 0xc1, 0x89, 0x7a, 0xfd, 0x13, 0x50, 0xe0, 0x4d, 0x4b, 0x32,
+ 0xf4, 0x57, 0x18, 0x34, 0x80, 0x60, 0x38, 0x6f, 0x58, 0x92, 0xe1, 0xbf, 0xca, 0xe1, 0x1c, 0x82,
+ 0xe1, 0xe9, 0x5d, 0xf8, 0xfd, 0x5f, 0xcb, 0xb1, 0xa2, 0xc3, 0x7d, 0x77, 0x19, 0xa6, 0x58, 0xa7,
+ 0x92, 0x8c, 0xfe, 0x3c, 0x7b, 0x39, 0x47, 0xd4, 0x9f, 0x80, 0x7c, 0x4a, 0x87, 0xff, 0x06, 0x83,
+ 0x52, 0xfd, 0xfa, 0x2a, 0x94, 0x42, 0xdd, 0x49, 0x32, 0xfc, 0x37, 0x19, 0x3c, 0x8c, 0xc2, 0xa6,
+ 0xb3, 0xee, 0x24, 0x99, 0xe0, 0xb7, 0xb8, 0xe9, 0x0c, 0x81, 0xdd, 0xc6, 0x1b, 0x93, 0x64, 0xf4,
+ 0x6f, 0x73, 0xaf, 0x73, 0x48, 0xfd, 0x69, 0x28, 0x06, 0xc5, 0x26, 0x19, 0xff, 0x3b, 0x0c, 0x3f,
+ 0xc4, 0x60, 0x0f, 0x84, 0x8a, 0x5d, 0x32, 0xc5, 0xef, 0x72, 0x0f, 0x84, 0x50, 0x78, 0x1b, 0xc5,
+ 0x1b, 0x98, 0x64, 0xa6, 0xdf, 0xe3, 0xdb, 0x28, 0xd6, 0xbf, 0xe0, 0xd5, 0x24, 0x39, 0x3f, 0x99,
+ 0xe2, 0xf7, 0xf9, 0x6a, 0x12, 0x7d, 0x6c, 0x46, 0xbc, 0x23, 0x48, 0xe6, 0xf8, 0x03, 0x6e, 0x46,
+ 0xac, 0x21, 0xa8, 0xb7, 0x41, 0x1a, 0xed, 0x06, 0x92, 0xf9, 0xbe, 0xc0, 0xf8, 0x66, 0x47, 0x9a,
+ 0x81, 0xfa, 0xb3, 0x70, 0x62, 0x7c, 0x27, 0x90, 0xcc, 0xfa, 0xc5, 0x3b, 0xb1, 0xb3, 0x5b, 0xb8,
+ 0x11, 0xa8, 0xef, 0x0c, 0x4b, 0x4a, 0xb8, 0x0b, 0x48, 0xa6, 0x7d, 0xf9, 0x4e, 0x34, 0x71, 0x87,
+ 0x9b, 0x80, 0x7a, 0x03, 0x60, 0x58, 0x80, 0x93, 0xb9, 0x5e, 0x61, 0x5c, 0x21, 0x10, 0xde, 0x1a,
+ 0xac, 0xfe, 0x26, 0xe3, 0xbf, 0xc4, 0xb7, 0x06, 0x43, 0xe0, 0xad, 0xc1, 0x4b, 0x6f, 0x32, 0xfa,
+ 0x55, 0xbe, 0x35, 0x38, 0x04, 0x47, 0x76, 0xa8, 0xba, 0x25, 0x33, 0x7c, 0x99, 0x47, 0x76, 0x08,
+ 0x55, 0xdf, 0x86, 0xd9, 0x91, 0x82, 0x98, 0x4c, 0xf5, 0x15, 0x46, 0x25, 0xc6, 0xeb, 0x61, 0xb8,
+ 0x78, 0xb1, 0x62, 0x98, 0xcc, 0xf6, 0x27, 0xb1, 0xe2, 0xc5, 0x6a, 0x61, 0xfd, 0x32, 0x14, 0xac,
+ 0x81, 0x69, 0xe2, 0xcd, 0x23, 0xdd, 0xfd, 0x97, 0x7b, 0xd5, 0x7f, 0x7f, 0x8f, 0x79, 0x87, 0x03,
+ 0xea, 0x17, 0x21, 0x8f, 0xfa, 0x7b, 0x48, 0x4f, 0x42, 0xfe, 0xc7, 0x7b, 0x3c, 0x61, 0x62, 0xed,
+ 0xfa, 0xd3, 0x00, 0xf4, 0x6a, 0x84, 0x7c, 0xf6, 0x4b, 0xc0, 0xfe, 0xe7, 0x7b, 0xec, 0x37, 0x35,
+ 0x43, 0xc8, 0x90, 0x80, 0xfe, 0x42, 0xe7, 0xee, 0x04, 0x6f, 0x47, 0x09, 0xc8, 0x8a, 0x3c, 0x05,
+ 0x53, 0x57, 0x3d, 0xdb, 0xf2, 0xd5, 0x5e, 0x12, 0xfa, 0xbf, 0x18, 0x9a, 0xeb, 0x63, 0x87, 0xf5,
+ 0x6d, 0x17, 0xf9, 0x6a, 0xcf, 0x4b, 0xc2, 0xfe, 0x37, 0xc3, 0x06, 0x00, 0x0c, 0xd6, 0x54, 0xcf,
+ 0x4f, 0x33, 0xef, 0xff, 0xe1, 0x60, 0x0e, 0xc0, 0x46, 0xe3, 0xff, 0xaf, 0xa1, 0x83, 0x24, 0xec,
+ 0x3b, 0xdc, 0x68, 0xa6, 0x5f, 0xff, 0x04, 0x14, 0xf1, 0xbf, 0xf4, 0x87, 0x72, 0x09, 0xe0, 0xff,
+ 0x65, 0xe0, 0x21, 0x02, 0xbf, 0xd9, 0xf3, 0x75, 0xdf, 0x48, 0x76, 0xf6, 0xff, 0xb1, 0x95, 0xe6,
+ 0xfa, 0xf5, 0x06, 0x94, 0x3c, 0x5f, 0xd7, 0x07, 0xac, 0x3f, 0x4d, 0x80, 0xff, 0xff, 0x7b, 0xc1,
+ 0x95, 0x45, 0x80, 0xc1, 0xab, 0x7d, 0xe3, 0x9a, 0xef, 0xd8, 0xe4, 0x33, 0x47, 0x12, 0xc3, 0x1d,
+ 0xc6, 0x10, 0x82, 0xac, 0x34, 0xc7, 0x5f, 0xdf, 0xc2, 0xba, 0xbd, 0x6e, 0xd3, 0x8b, 0xdb, 0x17,
+ 0x16, 0x93, 0x6f, 0x60, 0xe1, 0x1b, 0x02, 0x54, 0xba, 0x86, 0x89, 0x96, 0x75, 0xdb, 0x67, 0x37,
+ 0xb1, 0x25, 0xfc, 0xac, 0xdb, 0x3e, 0x0e, 0xaa, 0x85, 0xe3, 0xdd, 0xe2, 0x2e, 0xce, 0x82, 0xb0,
+ 0x25, 0x95, 0x41, 0x50, 0xd9, 0x8f, 0xac, 0x04, 0x75, 0x65, 0xf3, 0xf5, 0xdb, 0xb5, 0x89, 0x1f,
+ 0xde, 0xae, 0x4d, 0xfc, 0xcb, 0xed, 0xda, 0xc4, 0x1b, 0xb7, 0x6b, 0xc2, 0x5b, 0xb7, 0x6b, 0xc2,
+ 0x3b, 0xb7, 0x6b, 0xc2, 0xbb, 0xb7, 0x6b, 0xc2, 0xad, 0xc3, 0x9a, 0xf0, 0xb5, 0xc3, 0x9a, 0xf0,
+ 0xcd, 0xc3, 0x9a, 0xf0, 0x9d, 0xc3, 0x9a, 0xf0, 0xfd, 0xc3, 0x9a, 0xf0, 0xfa, 0x61, 0x6d, 0xe2,
+ 0x87, 0x87, 0xb5, 0x89, 0x37, 0x0e, 0x6b, 0xc2, 0x5b, 0x87, 0xb5, 0x89, 0x77, 0x0e, 0x6b, 0xc2,
+ 0xbb, 0x87, 0xb5, 0x89, 0x5b, 0x3f, 0xae, 0x4d, 0xfc, 0x24, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x47,
+ 0xfd, 0xb6, 0xa4, 0x33, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -577,21 +598,3 @@ func valueToStringFileDot(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
-
-func init() { proto.RegisterFile("file.dot.proto", fileDescriptor_file_dot_75a42d5db4a044f0) }
-
-var fileDescriptor_file_dot_75a42d5db4a044f0 = []byte{
- // 179 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x24, 0xcb, 0xaf, 0x6e, 0xc2, 0x50,
- 0x1c, 0xc5, 0xf1, 0xdf, 0x91, 0xeb, 0x96, 0x25, 0xab, 0x5a, 0x26, 0x4e, 0x96, 0xa9, 0x99, 0xb5,
- 0xef, 0x30, 0x0d, 0x86, 0x37, 0x68, 0xe9, 0x1f, 0x9a, 0x50, 0x2e, 0x21, 0xb7, 0xbe, 0x8f, 0x83,
- 0x44, 0x22, 0x91, 0x95, 0x95, 0xc8, 0xde, 0x1f, 0xa6, 0xb2, 0xb2, 0x92, 0x70, 0x71, 0xe7, 0x93,
- 0x9c, 0x6f, 0xf0, 0x5e, 0x54, 0xdb, 0x3c, 0xca, 0x8c, 0x8d, 0xf6, 0x07, 0x63, 0x4d, 0xf8, 0xfa,
- 0x70, 0x66, 0xec, 0x2e, 0xa9, 0xf3, 0xaf, 0xbf, 0xb2, 0xb2, 0x9b, 0x26, 0x8d, 0xd6, 0xa6, 0x8e,
- 0x4b, 0x53, 0x9a, 0xd8, 0x7f, 0xd2, 0xa6, 0xf0, 0xf2, 0xf0, 0xeb, 0xd9, 0xfe, 0x7c, 0x04, 0x58,
- 0x86, 0x6f, 0x01, 0x92, 0x4f, 0x7c, 0xe3, 0xf7, 0x65, 0x85, 0xe4, 0x7f, 0xd1, 0x39, 0x4a, 0xef,
- 0x28, 0x57, 0x47, 0x19, 0x1c, 0x31, 0x3a, 0x62, 0x72, 0xc4, 0xec, 0x88, 0x56, 0x89, 0xa3, 0x12,
- 0x27, 0x25, 0xce, 0x4a, 0x5c, 0x94, 0xe8, 0x94, 0xd2, 0x2b, 0x65, 0x50, 0x62, 0x54, 0xca, 0xa4,
- 0xc4, 0xac, 0x94, 0xf6, 0x46, 0xb9, 0x07, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x59, 0x32, 0x8a, 0xad,
- 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz.pb.go b/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz.pb.go
index 0c5c0baf36..bfc68406bd 100644
--- a/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz.pb.go
@@ -3,17 +3,16 @@
package fuzztests
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import strings "strings"
-import reflect "reflect"
-
-import encoding_binary "encoding/binary"
-
-import io "io"
+import (
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -36,7 +35,7 @@ func (m *Nil) Reset() { *m = Nil{} }
func (m *Nil) String() string { return proto.CompactTextString(m) }
func (*Nil) ProtoMessage() {}
func (*Nil) Descriptor() ([]byte, []int) {
- return fileDescriptor_fuzz_a9783a48f1b0a0f4, []int{0}
+ return fileDescriptor_9e61ff73369f13d2, []int{0}
}
func (m *Nil) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -53,8 +52,8 @@ func (m *Nil) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Nil) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Nil.Merge(dst, src)
+func (m *Nil) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Nil.Merge(m, src)
}
func (m *Nil) XXX_Size() int {
return m.Size()
@@ -88,7 +87,7 @@ func (m *NinRepPackedNative) Reset() { *m = NinRepPackedNative{} }
func (m *NinRepPackedNative) String() string { return proto.CompactTextString(m) }
func (*NinRepPackedNative) ProtoMessage() {}
func (*NinRepPackedNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_fuzz_a9783a48f1b0a0f4, []int{1}
+ return fileDescriptor_9e61ff73369f13d2, []int{1}
}
func (m *NinRepPackedNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -105,8 +104,8 @@ func (m *NinRepPackedNative) XXX_Marshal(b []byte, deterministic bool) ([]byte,
return b[:n], nil
}
}
-func (dst *NinRepPackedNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepPackedNative.Merge(dst, src)
+func (m *NinRepPackedNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepPackedNative.Merge(m, src)
}
func (m *NinRepPackedNative) XXX_Size() int {
return m.Size()
@@ -233,7 +232,7 @@ func (m *NinOptNative) Reset() { *m = NinOptNative{} }
func (m *NinOptNative) String() string { return proto.CompactTextString(m) }
func (*NinOptNative) ProtoMessage() {}
func (*NinOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_fuzz_a9783a48f1b0a0f4, []int{2}
+ return fileDescriptor_9e61ff73369f13d2, []int{2}
}
func (m *NinOptNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -250,8 +249,8 @@ func (m *NinOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NinOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptNative.Merge(dst, src)
+func (m *NinOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptNative.Merge(m, src)
}
func (m *NinOptNative) XXX_Size() int {
return m.Size()
@@ -387,7 +386,7 @@ func (m *NinOptStruct) Reset() { *m = NinOptStruct{} }
func (m *NinOptStruct) String() string { return proto.CompactTextString(m) }
func (*NinOptStruct) ProtoMessage() {}
func (*NinOptStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_fuzz_a9783a48f1b0a0f4, []int{3}
+ return fileDescriptor_9e61ff73369f13d2, []int{3}
}
func (m *NinOptStruct) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -404,8 +403,8 @@ func (m *NinOptStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NinOptStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptStruct.Merge(dst, src)
+func (m *NinOptStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptStruct.Merge(m, src)
}
func (m *NinOptStruct) XXX_Size() int {
return m.Size()
@@ -492,6 +491,41 @@ func init() {
proto.RegisterType((*NinOptNative)(nil), "fuzztests.NinOptNative")
proto.RegisterType((*NinOptStruct)(nil), "fuzztests.NinOptStruct")
}
+
+func init() { proto.RegisterFile("fuzz.proto", fileDescriptor_9e61ff73369f13d2) }
+
+var fileDescriptor_9e61ff73369f13d2 = []byte{
+ // 445 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0xbf, 0x6e, 0x1a, 0x41,
+ 0x10, 0xc7, 0x71, 0xcd, 0x0d, 0x7f, 0xd7, 0x10, 0xf0, 0x15, 0x9b, 0x91, 0x15, 0xa1, 0x15, 0xd5,
+ 0x34, 0xe1, 0xc2, 0x71, 0xd8, 0xb8, 0x75, 0x91, 0x92, 0x44, 0xce, 0x13, 0xd8, 0xf8, 0x4c, 0x4e,
+ 0x71, 0x7c, 0xc8, 0x5e, 0x52, 0xb8, 0x4c, 0x95, 0x47, 0x4b, 0x97, 0x3c, 0x42, 0xc2, 0x13, 0xe4,
+ 0x11, 0xa2, 0x9c, 0xcd, 0xec, 0x50, 0x59, 0x48, 0xe9, 0xee, 0xf6, 0xc3, 0x0a, 0xf1, 0xfd, 0x09,
+ 0x63, 0xae, 0xd7, 0x0f, 0x0f, 0xa3, 0xd5, 0x5d, 0xe9, 0xcb, 0xb8, 0xfd, 0xef, 0xd9, 0xe7, 0xf7,
+ 0xfe, 0xfe, 0xe8, 0xf5, 0xb2, 0xf0, 0x1f, 0xd7, 0x97, 0xa3, 0x45, 0xf9, 0x39, 0x59, 0x96, 0xcb,
+ 0x32, 0xa9, 0x3e, 0x71, 0xb9, 0xbe, 0xae, 0xde, 0xaa, 0x97, 0xea, 0xe9, 0xf1, 0xe6, 0xb0, 0x6e,
+ 0x70, 0x5e, 0xdc, 0x0c, 0xbf, 0xa1, 0x89, 0xe7, 0xc5, 0xed, 0x79, 0xbe, 0x7a, 0x7f, 0xb1, 0xf8,
+ 0x94, 0x5f, 0xcd, 0x2f, 0x7c, 0xf1, 0x25, 0x8f, 0x8f, 0x4c, 0xe3, 0x6d, 0x91, 0xdf, 0x5c, 0x8d,
+ 0x09, 0x1c, 0x32, 0x9c, 0x45, 0x7d, 0x38, 0x7f, 0x3a, 0x11, 0x4b, 0x29, 0x72, 0xc8, 0x91, 0xb2,
+ 0x54, 0x6c, 0x42, 0xe8, 0x90, 0xeb, 0xca, 0x26, 0x62, 0x19, 0xd5, 0x1c, 0x32, 0x2a, 0xcb, 0xc4,
+ 0xa6, 0x54, 0x77, 0xc8, 0x5d, 0x65, 0x53, 0xb1, 0x63, 0x6a, 0x38, 0xe4, 0x9a, 0xb2, 0x63, 0xb1,
+ 0x13, 0x6a, 0x3a, 0xe4, 0x43, 0x65, 0x27, 0x62, 0x33, 0x6a, 0x39, 0xe4, 0x58, 0xd9, 0x4c, 0xec,
+ 0x94, 0xda, 0x0e, 0xb9, 0xa9, 0xec, 0x34, 0x7e, 0x65, 0x9a, 0x8f, 0xbf, 0xf4, 0x0d, 0x19, 0x87,
+ 0xdc, 0xab, 0x70, 0x7b, 0x14, 0x74, 0x4c, 0x07, 0x0e, 0xb9, 0xa1, 0x75, 0x1c, 0x34, 0xa5, 0x8e,
+ 0x43, 0xee, 0x6b, 0x4d, 0x83, 0x4e, 0xa8, 0xeb, 0x90, 0x5b, 0x5a, 0x27, 0xc3, 0xaf, 0x68, 0x3a,
+ 0xf3, 0xe2, 0xf6, 0xdd, 0xca, 0x3f, 0x8d, 0x60, 0xd5, 0x08, 0xc0, 0x61, 0x00, 0xab, 0x06, 0x00,
+ 0x8e, 0x24, 0xbe, 0x55, 0xf1, 0x81, 0xeb, 0x12, 0xde, 0xaa, 0xf0, 0xc0, 0x28, 0xd1, 0xad, 0x8a,
+ 0x0e, 0xdc, 0x95, 0xe0, 0x56, 0x05, 0x07, 0xae, 0x49, 0x6c, 0xab, 0x62, 0x03, 0x1f, 0x4a, 0x68,
+ 0xab, 0x42, 0x03, 0xc7, 0x12, 0xd9, 0xaa, 0xc8, 0xc0, 0x4d, 0x09, 0x4c, 0x3a, 0x30, 0x70, 0x2f,
+ 0xc4, 0x25, 0x1d, 0x17, 0xb8, 0x11, 0xc2, 0x92, 0x0e, 0x0b, 0xdc, 0x0f, 0x51, 0x49, 0x47, 0x05,
+ 0x6e, 0x49, 0xd0, 0x20, 0x19, 0xbd, 0x70, 0xc0, 0xed, 0xad, 0x64, 0x41, 0xa6, 0xd4, 0x73, 0xc0,
+ 0x9d, 0xad, 0x4c, 0x87, 0x3f, 0xa2, 0xed, 0x08, 0x1f, 0xfc, 0xdd, 0x7a, 0xe1, 0xf7, 0x1e, 0x21,
+ 0xd9, 0x19, 0xe1, 0x20, 0x7d, 0x39, 0x92, 0xbf, 0xe8, 0x48, 0xaf, 0x2b, 0xeb, 0x24, 0x3b, 0xeb,
+ 0x3c, 0x7b, 0x21, 0xdb, 0x7b, 0x9e, 0x64, 0x67, 0x9e, 0x67, 0xbf, 0x60, 0xf6, 0x7f, 0x8b, 0x9e,
+ 0xf5, 0xff, 0xfc, 0x1e, 0xc0, 0xf7, 0xcd, 0x00, 0x7e, 0x6e, 0x06, 0xf0, 0x6b, 0x33, 0x80, 0xbf,
+ 0x01, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x67, 0xe2, 0xa2, 0xc1, 0x04, 0x00, 0x00,
+}
+
func (this *Nil) GoString() string {
if this == nil {
return "nil"
@@ -1313,7 +1347,7 @@ func (m *Nil) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1336,6 +1370,9 @@ func (m *Nil) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthFuzz
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthFuzz
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1364,7 +1401,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1399,7 +1436,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1408,6 +1445,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1450,7 +1490,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1459,6 +1499,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1492,7 +1535,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1509,7 +1552,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1518,12 +1561,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -1543,7 +1589,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1565,7 +1611,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1582,7 +1628,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1591,12 +1637,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -1616,7 +1665,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1638,7 +1687,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1655,7 +1704,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1664,12 +1713,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -1689,7 +1741,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1711,7 +1763,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1728,7 +1780,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1737,12 +1789,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -1762,7 +1817,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1784,7 +1839,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1802,7 +1857,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1811,12 +1866,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -1836,7 +1894,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1859,7 +1917,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1877,7 +1935,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1886,12 +1944,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -1911,7 +1972,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1942,7 +2003,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1951,6 +2012,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1991,7 +2055,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2000,6 +2064,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2040,7 +2107,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2049,6 +2116,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2089,7 +2159,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2098,6 +2168,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2130,7 +2203,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2147,7 +2220,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2156,6 +2229,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2175,7 +2251,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2194,6 +2270,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthFuzz
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthFuzz
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2222,7 +2301,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2274,7 +2353,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2294,7 +2373,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2314,7 +2393,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2334,7 +2413,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2354,7 +2433,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2375,7 +2454,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2441,7 +2520,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2462,7 +2541,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2472,6 +2551,9 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2492,7 +2574,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2501,6 +2583,9 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2518,6 +2603,9 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthFuzz
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthFuzz
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2546,7 +2634,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2598,7 +2686,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2607,6 +2695,9 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2631,7 +2722,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2640,6 +2731,9 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2664,7 +2758,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2684,7 +2778,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2705,7 +2799,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2714,6 +2808,9 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2738,7 +2835,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2759,7 +2856,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2769,6 +2866,9 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2789,7 +2889,7 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2798,6 +2898,9 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFuzz
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFuzz
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2815,6 +2918,9 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthFuzz
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthFuzz
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2882,10 +2988,13 @@ func skipFuzz(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthFuzz
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthFuzz
+ }
return iNdEx, nil
case 3:
for {
@@ -2914,6 +3023,9 @@ func skipFuzz(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthFuzz
+ }
}
return iNdEx, nil
case 4:
@@ -2932,37 +3044,3 @@ var (
ErrInvalidLengthFuzz = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowFuzz = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("fuzz.proto", fileDescriptor_fuzz_a9783a48f1b0a0f4) }
-
-var fileDescriptor_fuzz_a9783a48f1b0a0f4 = []byte{
- // 445 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0xbf, 0x6e, 0x1a, 0x41,
- 0x10, 0xc7, 0x71, 0xcd, 0x0d, 0x7f, 0xd7, 0x10, 0xf0, 0x15, 0x9b, 0x91, 0x15, 0xa1, 0x15, 0xd5,
- 0x34, 0xe1, 0xc2, 0x71, 0xd8, 0xb8, 0x75, 0x91, 0x92, 0x44, 0xce, 0x13, 0xd8, 0xf8, 0x4c, 0x4e,
- 0x71, 0x7c, 0xc8, 0x5e, 0x52, 0xb8, 0x4c, 0x95, 0x47, 0x4b, 0x97, 0x3c, 0x42, 0xc2, 0x13, 0xe4,
- 0x11, 0xa2, 0x9c, 0xcd, 0xec, 0x50, 0x59, 0x48, 0xe9, 0xee, 0xf6, 0xc3, 0x0a, 0xf1, 0xfd, 0x09,
- 0x63, 0xae, 0xd7, 0x0f, 0x0f, 0xa3, 0xd5, 0x5d, 0xe9, 0xcb, 0xb8, 0xfd, 0xef, 0xd9, 0xe7, 0xf7,
- 0xfe, 0xfe, 0xe8, 0xf5, 0xb2, 0xf0, 0x1f, 0xd7, 0x97, 0xa3, 0x45, 0xf9, 0x39, 0x59, 0x96, 0xcb,
- 0x32, 0xa9, 0x3e, 0x71, 0xb9, 0xbe, 0xae, 0xde, 0xaa, 0x97, 0xea, 0xe9, 0xf1, 0xe6, 0xb0, 0x6e,
- 0x70, 0x5e, 0xdc, 0x0c, 0xbf, 0xa1, 0x89, 0xe7, 0xc5, 0xed, 0x79, 0xbe, 0x7a, 0x7f, 0xb1, 0xf8,
- 0x94, 0x5f, 0xcd, 0x2f, 0x7c, 0xf1, 0x25, 0x8f, 0x8f, 0x4c, 0xe3, 0x6d, 0x91, 0xdf, 0x5c, 0x8d,
- 0x09, 0x1c, 0x32, 0x9c, 0x45, 0x7d, 0x38, 0x7f, 0x3a, 0x11, 0x4b, 0x29, 0x72, 0xc8, 0x91, 0xb2,
- 0x54, 0x6c, 0x42, 0xe8, 0x90, 0xeb, 0xca, 0x26, 0x62, 0x19, 0xd5, 0x1c, 0x32, 0x2a, 0xcb, 0xc4,
- 0xa6, 0x54, 0x77, 0xc8, 0x5d, 0x65, 0x53, 0xb1, 0x63, 0x6a, 0x38, 0xe4, 0x9a, 0xb2, 0x63, 0xb1,
- 0x13, 0x6a, 0x3a, 0xe4, 0x43, 0x65, 0x27, 0x62, 0x33, 0x6a, 0x39, 0xe4, 0x58, 0xd9, 0x4c, 0xec,
- 0x94, 0xda, 0x0e, 0xb9, 0xa9, 0xec, 0x34, 0x7e, 0x65, 0x9a, 0x8f, 0xbf, 0xf4, 0x0d, 0x19, 0x87,
- 0xdc, 0xab, 0x70, 0x7b, 0x14, 0x74, 0x4c, 0x07, 0x0e, 0xb9, 0xa1, 0x75, 0x1c, 0x34, 0xa5, 0x8e,
- 0x43, 0xee, 0x6b, 0x4d, 0x83, 0x4e, 0xa8, 0xeb, 0x90, 0x5b, 0x5a, 0x27, 0xc3, 0xaf, 0x68, 0x3a,
- 0xf3, 0xe2, 0xf6, 0xdd, 0xca, 0x3f, 0x8d, 0x60, 0xd5, 0x08, 0xc0, 0x61, 0x00, 0xab, 0x06, 0x00,
- 0x8e, 0x24, 0xbe, 0x55, 0xf1, 0x81, 0xeb, 0x12, 0xde, 0xaa, 0xf0, 0xc0, 0x28, 0xd1, 0xad, 0x8a,
- 0x0e, 0xdc, 0x95, 0xe0, 0x56, 0x05, 0x07, 0xae, 0x49, 0x6c, 0xab, 0x62, 0x03, 0x1f, 0x4a, 0x68,
- 0xab, 0x42, 0x03, 0xc7, 0x12, 0xd9, 0xaa, 0xc8, 0xc0, 0x4d, 0x09, 0x4c, 0x3a, 0x30, 0x70, 0x2f,
- 0xc4, 0x25, 0x1d, 0x17, 0xb8, 0x11, 0xc2, 0x92, 0x0e, 0x0b, 0xdc, 0x0f, 0x51, 0x49, 0x47, 0x05,
- 0x6e, 0x49, 0xd0, 0x20, 0x19, 0xbd, 0x70, 0xc0, 0xed, 0xad, 0x64, 0x41, 0xa6, 0xd4, 0x73, 0xc0,
- 0x9d, 0xad, 0x4c, 0x87, 0x3f, 0xa2, 0xed, 0x08, 0x1f, 0xfc, 0xdd, 0x7a, 0xe1, 0xf7, 0x1e, 0x21,
- 0xd9, 0x19, 0xe1, 0x20, 0x7d, 0x39, 0x92, 0xbf, 0xe8, 0x48, 0xaf, 0x2b, 0xeb, 0x24, 0x3b, 0xeb,
- 0x3c, 0x7b, 0x21, 0xdb, 0x7b, 0x9e, 0x64, 0x67, 0x9e, 0x67, 0xbf, 0x60, 0xf6, 0x7f, 0x8b, 0x9e,
- 0xf5, 0xff, 0xfc, 0x1e, 0xc0, 0xf7, 0xcd, 0x00, 0x7e, 0x6e, 0x06, 0xf0, 0x6b, 0x33, 0x80, 0xbf,
- 0x01, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x67, 0xe2, 0xa2, 0xc1, 0x04, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/group/group.pb.go b/vendor/github.com/gogo/protobuf/test/group/group.pb.go
index 56160de3a6..0028bf953c 100644
--- a/vendor/github.com/gogo/protobuf/test/group/group.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/group/group.pb.go
@@ -3,19 +3,19 @@
package group
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -38,7 +38,7 @@ type Groups1 struct {
func (m *Groups1) Reset() { *m = Groups1{} }
func (*Groups1) ProtoMessage() {}
func (*Groups1) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_3742ba72ecbfc017, []int{0}
+ return fileDescriptor_e10f4c9b19ad8eee, []int{0}
}
func (m *Groups1) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Groups1.Unmarshal(m, b)
@@ -46,8 +46,8 @@ func (m *Groups1) XXX_Unmarshal(b []byte) error {
func (m *Groups1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Groups1.Marshal(b, m, deterministic)
}
-func (dst *Groups1) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Groups1.Merge(dst, src)
+func (m *Groups1) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Groups1.Merge(m, src)
}
func (m *Groups1) XXX_Size() int {
return xxx_messageInfo_Groups1.Size(m)
@@ -69,7 +69,7 @@ type Groups1_G struct {
func (m *Groups1_G) Reset() { *m = Groups1_G{} }
func (*Groups1_G) ProtoMessage() {}
func (*Groups1_G) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_3742ba72ecbfc017, []int{0, 0}
+ return fileDescriptor_e10f4c9b19ad8eee, []int{0, 0}
}
func (m *Groups1_G) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Groups1_G.Unmarshal(m, b)
@@ -77,8 +77,8 @@ func (m *Groups1_G) XXX_Unmarshal(b []byte) error {
func (m *Groups1_G) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Groups1_G.Marshal(b, m, deterministic)
}
-func (dst *Groups1_G) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Groups1_G.Merge(dst, src)
+func (m *Groups1_G) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Groups1_G.Merge(m, src)
}
func (m *Groups1_G) XXX_Size() int {
return xxx_messageInfo_Groups1_G.Size(m)
@@ -99,7 +99,7 @@ type Groups2 struct {
func (m *Groups2) Reset() { *m = Groups2{} }
func (*Groups2) ProtoMessage() {}
func (*Groups2) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_3742ba72ecbfc017, []int{1}
+ return fileDescriptor_e10f4c9b19ad8eee, []int{1}
}
func (m *Groups2) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Groups2.Unmarshal(m, b)
@@ -107,8 +107,8 @@ func (m *Groups2) XXX_Unmarshal(b []byte) error {
func (m *Groups2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Groups2.Marshal(b, m, deterministic)
}
-func (dst *Groups2) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Groups2.Merge(dst, src)
+func (m *Groups2) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Groups2.Merge(m, src)
}
func (m *Groups2) XXX_Size() int {
return xxx_messageInfo_Groups2.Size(m)
@@ -130,7 +130,7 @@ type Groups2_G struct {
func (m *Groups2_G) Reset() { *m = Groups2_G{} }
func (*Groups2_G) ProtoMessage() {}
func (*Groups2_G) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_3742ba72ecbfc017, []int{1, 0}
+ return fileDescriptor_e10f4c9b19ad8eee, []int{1, 0}
}
func (m *Groups2_G) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Groups2_G.Unmarshal(m, b)
@@ -138,8 +138,8 @@ func (m *Groups2_G) XXX_Unmarshal(b []byte) error {
func (m *Groups2_G) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Groups2_G.Marshal(b, m, deterministic)
}
-func (dst *Groups2_G) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Groups2_G.Merge(dst, src)
+func (m *Groups2_G) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Groups2_G.Merge(m, src)
}
func (m *Groups2_G) XXX_Size() int {
return xxx_messageInfo_Groups2_G.Size(m)
@@ -156,6 +156,27 @@ func init() {
proto.RegisterType((*Groups2)(nil), "group.Groups2")
proto.RegisterType((*Groups2_G)(nil), "group.Groups2.G")
}
+
+func init() { proto.RegisterFile("group.proto", fileDescriptor_e10f4c9b19ad8eee) }
+
+var fileDescriptor_e10f4c9b19ad8eee = []byte{
+ // 211 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4e, 0x2f, 0xca, 0x2f,
+ 0x2d, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x05, 0x73, 0xa4, 0x74, 0xd3, 0x33, 0x4b,
+ 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0xb2, 0x49,
+ 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x74, 0x29, 0xc5, 0x71, 0xb1, 0xbb, 0x83, 0xf4,
+ 0x15, 0x1b, 0x0a, 0xc9, 0x71, 0x31, 0xa6, 0x4b, 0x30, 0x2a, 0x30, 0x6b, 0x70, 0x19, 0x09, 0xe8,
+ 0x41, 0x4c, 0x86, 0x4a, 0xe9, 0xb9, 0x07, 0x31, 0xa6, 0x4b, 0x19, 0x73, 0x31, 0xba, 0x0b, 0x89,
+ 0x71, 0xb1, 0xb9, 0x65, 0xa6, 0xe6, 0xa4, 0x18, 0x4a, 0x30, 0x2a, 0x30, 0x6a, 0x30, 0x07, 0x41,
+ 0x79, 0x70, 0x71, 0x23, 0x09, 0x26, 0x05, 0x46, 0x0d, 0x46, 0xa8, 0xb8, 0x11, 0xc2, 0x7c, 0x23,
+ 0x98, 0xf9, 0x8c, 0x18, 0xe6, 0x1b, 0x91, 0x68, 0x3e, 0x33, 0xc2, 0x7c, 0x27, 0x93, 0x13, 0x0f,
+ 0xe5, 0x18, 0x2e, 0x3c, 0x94, 0x63, 0xb8, 0xf1, 0x50, 0x8e, 0xe1, 0xc1, 0x43, 0x39, 0xc6, 0x0f,
+ 0x0f, 0xe5, 0x18, 0x7f, 0x3c, 0x94, 0x63, 0x6c, 0x78, 0x24, 0xc7, 0xb8, 0xe2, 0x91, 0x1c, 0xe3,
+ 0x86, 0x47, 0x72, 0x8c, 0x3b, 0x1e, 0xc9, 0x31, 0x9e, 0x78, 0x24, 0xc7, 0x70, 0xe1, 0x91, 0x1c,
+ 0xc3, 0x83, 0x47, 0x72, 0x0c, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3c, 0xd8, 0xef, 0x2c, 0x39,
+ 0x01, 0x00, 0x00,
+}
+
func (this *Groups1) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return GroupDescription()
}
@@ -171,251 +192,253 @@ func (this *Groups2_G) Description() (desc *github_com_gogo_protobuf_protoc_gen_
func GroupDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 3896 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0xe3, 0xd6,
- 0x75, 0x16, 0xf8, 0x23, 0x91, 0x87, 0x14, 0x05, 0x41, 0xb2, 0x96, 0x2b, 0xc7, 0xda, 0x5d, 0xd9,
- 0x8e, 0x65, 0xbb, 0xd1, 0x26, 0xf2, 0xee, 0xda, 0xcb, 0x6d, 0xe2, 0x52, 0x14, 0x57, 0xa1, 0x2b,
- 0x89, 0x0c, 0x28, 0xc5, 0x3f, 0x99, 0x16, 0x03, 0x81, 0x97, 0x14, 0x76, 0x41, 0x00, 0x01, 0xc0,
- 0x5d, 0x6b, 0xa7, 0x0f, 0xdb, 0x71, 0x7f, 0x26, 0xd3, 0xe9, 0x7f, 0x67, 0x9a, 0xb8, 0x8e, 0xdb,
- 0xa4, 0xd3, 0x38, 0x4d, 0xff, 0x92, 0xa6, 0x4d, 0xe3, 0xf4, 0xa5, 0x2f, 0x69, 0xfd, 0xd4, 0x49,
- 0xde, 0xfa, 0xd0, 0x07, 0xef, 0xd6, 0x33, 0xfd, 0x73, 0x9b, 0xb4, 0xdd, 0x87, 0xcc, 0xec, 0x4b,
- 0xe7, 0xfe, 0x81, 0x00, 0x48, 0x09, 0x50, 0x66, 0x6c, 0x3f, 0x89, 0x38, 0xf7, 0x7c, 0x1f, 0xce,
- 0x3d, 0xf7, 0xdc, 0x73, 0xce, 0xbd, 0x10, 0xfc, 0xe0, 0x32, 0x9c, 0xed, 0x59, 0x56, 0xcf, 0x40,
- 0xe7, 0x6d, 0xc7, 0xf2, 0xac, 0xfd, 0x41, 0xf7, 0x7c, 0x07, 0xb9, 0x9a, 0xa3, 0xdb, 0x9e, 0xe5,
- 0xac, 0x12, 0x99, 0x34, 0x43, 0x35, 0x56, 0xb9, 0xc6, 0xf2, 0x36, 0xcc, 0x5e, 0xd5, 0x0d, 0xb4,
- 0xe1, 0x2b, 0xb6, 0x91, 0x27, 0x3d, 0x03, 0x99, 0xae, 0x6e, 0xa0, 0xb2, 0x70, 0x36, 0xbd, 0x52,
- 0x58, 0x7b, 0x64, 0x35, 0x02, 0x5a, 0x0d, 0x23, 0x5a, 0x58, 0x2c, 0x13, 0xc4, 0xf2, 0x3b, 0x19,
- 0x98, 0x1b, 0x33, 0x2a, 0x49, 0x90, 0x31, 0xd5, 0x3e, 0x66, 0x14, 0x56, 0xf2, 0x32, 0xf9, 0x2d,
- 0x95, 0x61, 0xca, 0x56, 0xb5, 0xeb, 0x6a, 0x0f, 0x95, 0x53, 0x44, 0xcc, 0x1f, 0xa5, 0x25, 0x80,
- 0x0e, 0xb2, 0x91, 0xd9, 0x41, 0xa6, 0x76, 0x58, 0x4e, 0x9f, 0x4d, 0xaf, 0xe4, 0xe5, 0x80, 0x44,
- 0x7a, 0x12, 0x66, 0xed, 0xc1, 0xbe, 0xa1, 0x6b, 0x4a, 0x40, 0x0d, 0xce, 0xa6, 0x57, 0xb2, 0xb2,
- 0x48, 0x07, 0x36, 0x86, 0xca, 0x8f, 0xc1, 0xcc, 0x4d, 0xa4, 0x5e, 0x0f, 0xaa, 0x16, 0x88, 0x6a,
- 0x09, 0x8b, 0x03, 0x8a, 0x35, 0x28, 0xf6, 0x91, 0xeb, 0xaa, 0x3d, 0xa4, 0x78, 0x87, 0x36, 0x2a,
- 0x67, 0xc8, 0xec, 0xcf, 0x8e, 0xcc, 0x3e, 0x3a, 0xf3, 0x02, 0x43, 0xed, 0x1e, 0xda, 0x48, 0xaa,
- 0x42, 0x1e, 0x99, 0x83, 0x3e, 0x65, 0xc8, 0x1e, 0xe1, 0xbf, 0xba, 0x39, 0xe8, 0x47, 0x59, 0x72,
- 0x18, 0xc6, 0x28, 0xa6, 0x5c, 0xe4, 0xdc, 0xd0, 0x35, 0x54, 0x9e, 0x24, 0x04, 0x8f, 0x8d, 0x10,
- 0xb4, 0xe9, 0x78, 0x94, 0x83, 0xe3, 0xa4, 0x1a, 0xe4, 0xd1, 0xcb, 0x1e, 0x32, 0x5d, 0xdd, 0x32,
- 0xcb, 0x53, 0x84, 0xe4, 0xd1, 0x31, 0xab, 0x88, 0x8c, 0x4e, 0x94, 0x62, 0x88, 0x93, 0x2e, 0xc1,
- 0x94, 0x65, 0x7b, 0xba, 0x65, 0xba, 0xe5, 0xdc, 0x59, 0x61, 0xa5, 0xb0, 0xf6, 0xa1, 0xb1, 0x81,
- 0xd0, 0xa4, 0x3a, 0x32, 0x57, 0x96, 0x1a, 0x20, 0xba, 0xd6, 0xc0, 0xd1, 0x90, 0xa2, 0x59, 0x1d,
- 0xa4, 0xe8, 0x66, 0xd7, 0x2a, 0xe7, 0x09, 0xc1, 0x99, 0xd1, 0x89, 0x10, 0xc5, 0x9a, 0xd5, 0x41,
- 0x0d, 0xb3, 0x6b, 0xc9, 0x25, 0x37, 0xf4, 0x2c, 0x2d, 0xc0, 0xa4, 0x7b, 0x68, 0x7a, 0xea, 0xcb,
- 0xe5, 0x22, 0x89, 0x10, 0xf6, 0xb4, 0xfc, 0xe6, 0x24, 0xcc, 0x24, 0x09, 0xb1, 0x2b, 0x90, 0xed,
- 0xe2, 0x59, 0x96, 0x53, 0x27, 0xf1, 0x01, 0xc5, 0x84, 0x9d, 0x38, 0xf9, 0x63, 0x3a, 0xb1, 0x0a,
- 0x05, 0x13, 0xb9, 0x1e, 0xea, 0xd0, 0x88, 0x48, 0x27, 0x8c, 0x29, 0xa0, 0xa0, 0xd1, 0x90, 0xca,
- 0xfc, 0x58, 0x21, 0xf5, 0x02, 0xcc, 0xf8, 0x26, 0x29, 0x8e, 0x6a, 0xf6, 0x78, 0x6c, 0x9e, 0x8f,
- 0xb3, 0x64, 0xb5, 0xce, 0x71, 0x32, 0x86, 0xc9, 0x25, 0x14, 0x7a, 0x96, 0x36, 0x00, 0x2c, 0x13,
- 0x59, 0x5d, 0xa5, 0x83, 0x34, 0xa3, 0x9c, 0x3b, 0xc2, 0x4b, 0x4d, 0xac, 0x32, 0xe2, 0x25, 0x8b,
- 0x4a, 0x35, 0x43, 0xba, 0x3c, 0x0c, 0xb5, 0xa9, 0x23, 0x22, 0x65, 0x9b, 0x6e, 0xb2, 0x91, 0x68,
- 0xdb, 0x83, 0x92, 0x83, 0x70, 0xdc, 0xa3, 0x0e, 0x9b, 0x59, 0x9e, 0x18, 0xb1, 0x1a, 0x3b, 0x33,
- 0x99, 0xc1, 0xe8, 0xc4, 0xa6, 0x9d, 0xe0, 0xa3, 0xf4, 0x30, 0xf8, 0x02, 0x85, 0x84, 0x15, 0x90,
- 0x2c, 0x54, 0xe4, 0xc2, 0x1d, 0xb5, 0x8f, 0x16, 0x6f, 0x41, 0x29, 0xec, 0x1e, 0x69, 0x1e, 0xb2,
- 0xae, 0xa7, 0x3a, 0x1e, 0x89, 0xc2, 0xac, 0x4c, 0x1f, 0x24, 0x11, 0xd2, 0xc8, 0xec, 0x90, 0x2c,
- 0x97, 0x95, 0xf1, 0x4f, 0xe9, 0xa7, 0x86, 0x13, 0x4e, 0x93, 0x09, 0x7f, 0x78, 0x74, 0x45, 0x43,
- 0xcc, 0xd1, 0x79, 0x2f, 0x3e, 0x0d, 0xd3, 0xa1, 0x09, 0x24, 0x7d, 0xf5, 0xf2, 0xcf, 0xc1, 0x03,
- 0x63, 0xa9, 0xa5, 0x17, 0x60, 0x7e, 0x60, 0xea, 0xa6, 0x87, 0x1c, 0xdb, 0x41, 0x38, 0x62, 0xe9,
- 0xab, 0xca, 0xff, 0x3a, 0x75, 0x44, 0xcc, 0xed, 0x05, 0xb5, 0x29, 0x8b, 0x3c, 0x37, 0x18, 0x15,
- 0x3e, 0x91, 0xcf, 0xfd, 0xdb, 0x94, 0x78, 0xfb, 0xf6, 0xed, 0xdb, 0xa9, 0xe5, 0xcf, 0x4f, 0xc2,
- 0xfc, 0xb8, 0x3d, 0x33, 0x76, 0xfb, 0x2e, 0xc0, 0xa4, 0x39, 0xe8, 0xef, 0x23, 0x87, 0x38, 0x29,
- 0x2b, 0xb3, 0x27, 0xa9, 0x0a, 0x59, 0x43, 0xdd, 0x47, 0x46, 0x39, 0x73, 0x56, 0x58, 0x29, 0xad,
- 0x3d, 0x99, 0x68, 0x57, 0xae, 0x6e, 0x61, 0x88, 0x4c, 0x91, 0xd2, 0x27, 0x20, 0xc3, 0x52, 0x34,
- 0x66, 0x78, 0x22, 0x19, 0x03, 0xde, 0x4b, 0x32, 0xc1, 0x49, 0x0f, 0x42, 0x1e, 0xff, 0xa5, 0xb1,
- 0x31, 0x49, 0x6c, 0xce, 0x61, 0x01, 0x8e, 0x0b, 0x69, 0x11, 0x72, 0x64, 0x9b, 0x74, 0x10, 0x2f,
- 0x6d, 0xfe, 0x33, 0x0e, 0xac, 0x0e, 0xea, 0xaa, 0x03, 0xc3, 0x53, 0x6e, 0xa8, 0xc6, 0x00, 0x91,
- 0x80, 0xcf, 0xcb, 0x45, 0x26, 0xfc, 0x34, 0x96, 0x49, 0x67, 0xa0, 0x40, 0x77, 0x95, 0x6e, 0x76,
- 0xd0, 0xcb, 0x24, 0x7b, 0x66, 0x65, 0xba, 0xd1, 0x1a, 0x58, 0x82, 0x5f, 0x7f, 0xcd, 0xb5, 0x4c,
- 0x1e, 0x9a, 0xe4, 0x15, 0x58, 0x40, 0x5e, 0xff, 0x74, 0x34, 0x71, 0x3f, 0x34, 0x7e, 0x7a, 0xd1,
- 0x98, 0x5a, 0xfe, 0x56, 0x0a, 0x32, 0x24, 0x5f, 0xcc, 0x40, 0x61, 0xf7, 0xc5, 0x56, 0x5d, 0xd9,
- 0x68, 0xee, 0xad, 0x6f, 0xd5, 0x45, 0x41, 0x2a, 0x01, 0x10, 0xc1, 0xd5, 0xad, 0x66, 0x75, 0x57,
- 0x4c, 0xf9, 0xcf, 0x8d, 0x9d, 0xdd, 0x4b, 0x17, 0xc4, 0xb4, 0x0f, 0xd8, 0xa3, 0x82, 0x4c, 0x50,
- 0xe1, 0xa9, 0x35, 0x31, 0x2b, 0x89, 0x50, 0xa4, 0x04, 0x8d, 0x17, 0xea, 0x1b, 0x97, 0x2e, 0x88,
- 0x93, 0x61, 0xc9, 0x53, 0x6b, 0xe2, 0x94, 0x34, 0x0d, 0x79, 0x22, 0x59, 0x6f, 0x36, 0xb7, 0xc4,
- 0x9c, 0xcf, 0xd9, 0xde, 0x95, 0x1b, 0x3b, 0x9b, 0x62, 0xde, 0xe7, 0xdc, 0x94, 0x9b, 0x7b, 0x2d,
- 0x11, 0x7c, 0x86, 0xed, 0x7a, 0xbb, 0x5d, 0xdd, 0xac, 0x8b, 0x05, 0x5f, 0x63, 0xfd, 0xc5, 0xdd,
- 0x7a, 0x5b, 0x2c, 0x86, 0xcc, 0x7a, 0x6a, 0x4d, 0x9c, 0xf6, 0x5f, 0x51, 0xdf, 0xd9, 0xdb, 0x16,
- 0x4b, 0xd2, 0x2c, 0x4c, 0xd3, 0x57, 0x70, 0x23, 0x66, 0x22, 0xa2, 0x4b, 0x17, 0x44, 0x71, 0x68,
- 0x08, 0x65, 0x99, 0x0d, 0x09, 0x2e, 0x5d, 0x10, 0xa5, 0xe5, 0x1a, 0x64, 0x49, 0x74, 0x49, 0x12,
- 0x94, 0xb6, 0xaa, 0xeb, 0xf5, 0x2d, 0xa5, 0xd9, 0xda, 0x6d, 0x34, 0x77, 0xaa, 0x5b, 0xa2, 0x30,
- 0x94, 0xc9, 0xf5, 0x4f, 0xed, 0x35, 0xe4, 0xfa, 0x86, 0x98, 0x0a, 0xca, 0x5a, 0xf5, 0xea, 0x6e,
- 0x7d, 0x43, 0x4c, 0x2f, 0x6b, 0x30, 0x3f, 0x2e, 0x4f, 0x8e, 0xdd, 0x19, 0x81, 0x25, 0x4e, 0x1d,
- 0xb1, 0xc4, 0x84, 0x6b, 0x64, 0x89, 0xff, 0x25, 0x05, 0x73, 0x63, 0x6a, 0xc5, 0xd8, 0x97, 0x3c,
- 0x0b, 0x59, 0x1a, 0xa2, 0xb4, 0x7a, 0x3e, 0x3e, 0xb6, 0xe8, 0x90, 0x80, 0x1d, 0xa9, 0xa0, 0x04,
- 0x17, 0xec, 0x20, 0xd2, 0x47, 0x74, 0x10, 0x98, 0x62, 0x24, 0xa7, 0xff, 0xcc, 0x48, 0x4e, 0xa7,
- 0x65, 0xef, 0x52, 0x92, 0xb2, 0x47, 0x64, 0x27, 0xcb, 0xed, 0xd9, 0x31, 0xb9, 0xfd, 0x0a, 0xcc,
- 0x8e, 0x10, 0x25, 0xce, 0xb1, 0xaf, 0x08, 0x50, 0x3e, 0xca, 0x39, 0x31, 0x99, 0x2e, 0x15, 0xca,
- 0x74, 0x57, 0xa2, 0x1e, 0x3c, 0x77, 0xf4, 0x22, 0x8c, 0xac, 0xf5, 0x1b, 0x02, 0x2c, 0x8c, 0xef,
- 0x14, 0xc7, 0xda, 0xf0, 0x09, 0x98, 0xec, 0x23, 0xef, 0xc0, 0xe2, 0xdd, 0xd2, 0x87, 0xc7, 0xd4,
- 0x60, 0x3c, 0x1c, 0x5d, 0x6c, 0x86, 0x0a, 0x16, 0xf1, 0xf4, 0x51, 0xed, 0x1e, 0xb5, 0x66, 0xc4,
- 0xd2, 0xcf, 0xa5, 0xe0, 0x81, 0xb1, 0xe4, 0x63, 0x0d, 0x7d, 0x08, 0x40, 0x37, 0xed, 0x81, 0x47,
- 0x3b, 0x22, 0x9a, 0x60, 0xf3, 0x44, 0x42, 0x92, 0x17, 0x4e, 0x9e, 0x03, 0xcf, 0x1f, 0x4f, 0x93,
- 0x71, 0xa0, 0x22, 0xa2, 0xf0, 0xcc, 0xd0, 0xd0, 0x0c, 0x31, 0x74, 0xe9, 0x88, 0x99, 0x8e, 0x04,
- 0xe6, 0x47, 0x41, 0xd4, 0x0c, 0x1d, 0x99, 0x9e, 0xe2, 0x7a, 0x0e, 0x52, 0xfb, 0xba, 0xd9, 0x23,
- 0x15, 0x24, 0x57, 0xc9, 0x76, 0x55, 0xc3, 0x45, 0xf2, 0x0c, 0x1d, 0x6e, 0xf3, 0x51, 0x8c, 0x20,
- 0x01, 0xe4, 0x04, 0x10, 0x93, 0x21, 0x04, 0x1d, 0xf6, 0x11, 0xcb, 0xdf, 0xcc, 0x41, 0x21, 0xd0,
- 0x57, 0x4b, 0xe7, 0xa0, 0x78, 0x4d, 0xbd, 0xa1, 0x2a, 0xfc, 0xac, 0x44, 0x3d, 0x51, 0xc0, 0xb2,
- 0x16, 0x3b, 0x2f, 0x7d, 0x14, 0xe6, 0x89, 0x8a, 0x35, 0xf0, 0x90, 0xa3, 0x68, 0x86, 0xea, 0xba,
- 0xc4, 0x69, 0x39, 0xa2, 0x2a, 0xe1, 0xb1, 0x26, 0x1e, 0xaa, 0xf1, 0x11, 0xe9, 0x22, 0xcc, 0x11,
- 0x44, 0x7f, 0x60, 0x78, 0xba, 0x6d, 0x20, 0x05, 0x9f, 0xde, 0x5c, 0x52, 0x49, 0x7c, 0xcb, 0x66,
- 0xb1, 0xc6, 0x36, 0x53, 0xc0, 0x16, 0xb9, 0xd2, 0x06, 0x3c, 0x44, 0x60, 0x3d, 0x64, 0x22, 0x47,
- 0xf5, 0x90, 0x82, 0x3e, 0x3b, 0x50, 0x0d, 0x57, 0x51, 0xcd, 0x8e, 0x72, 0xa0, 0xba, 0x07, 0xe5,
- 0x79, 0x4c, 0xb0, 0x9e, 0x2a, 0x0b, 0xf2, 0x69, 0xac, 0xb8, 0xc9, 0xf4, 0xea, 0x44, 0xad, 0x6a,
- 0x76, 0x3e, 0xa9, 0xba, 0x07, 0x52, 0x05, 0x16, 0x08, 0x8b, 0xeb, 0x39, 0xba, 0xd9, 0x53, 0xb4,
- 0x03, 0xa4, 0x5d, 0x57, 0x06, 0x5e, 0xf7, 0x99, 0xf2, 0x83, 0xc1, 0xf7, 0x13, 0x0b, 0xdb, 0x44,
- 0xa7, 0x86, 0x55, 0xf6, 0xbc, 0xee, 0x33, 0x52, 0x1b, 0x8a, 0x78, 0x31, 0xfa, 0xfa, 0x2d, 0xa4,
- 0x74, 0x2d, 0x87, 0x94, 0xc6, 0xd2, 0x98, 0xd4, 0x14, 0xf0, 0xe0, 0x6a, 0x93, 0x01, 0xb6, 0xad,
- 0x0e, 0xaa, 0x64, 0xdb, 0xad, 0x7a, 0x7d, 0x43, 0x2e, 0x70, 0x96, 0xab, 0x96, 0x83, 0x03, 0xaa,
- 0x67, 0xf9, 0x0e, 0x2e, 0xd0, 0x80, 0xea, 0x59, 0xdc, 0xbd, 0x17, 0x61, 0x4e, 0xd3, 0xe8, 0x9c,
- 0x75, 0x4d, 0x61, 0x67, 0x2c, 0xb7, 0x2c, 0x86, 0x9c, 0xa5, 0x69, 0x9b, 0x54, 0x81, 0xc5, 0xb8,
- 0x2b, 0x5d, 0x86, 0x07, 0x86, 0xce, 0x0a, 0x02, 0x67, 0x47, 0x66, 0x19, 0x85, 0x5e, 0x84, 0x39,
- 0xfb, 0x70, 0x14, 0x28, 0x85, 0xde, 0x68, 0x1f, 0x46, 0x61, 0x4f, 0xc3, 0xbc, 0x7d, 0x60, 0x8f,
- 0xe2, 0x9e, 0x08, 0xe2, 0x24, 0xfb, 0xc0, 0x8e, 0x02, 0x1f, 0x25, 0x07, 0x6e, 0x07, 0x69, 0xaa,
- 0x87, 0x3a, 0xe5, 0x53, 0x41, 0xf5, 0xc0, 0x80, 0x74, 0x1e, 0x44, 0x4d, 0x53, 0x90, 0xa9, 0xee,
- 0x1b, 0x48, 0x51, 0x1d, 0x64, 0xaa, 0x6e, 0xf9, 0x4c, 0x50, 0xb9, 0xa4, 0x69, 0x75, 0x32, 0x5a,
- 0x25, 0x83, 0xd2, 0x13, 0x30, 0x6b, 0xed, 0x5f, 0xd3, 0x68, 0x48, 0x2a, 0xb6, 0x83, 0xba, 0xfa,
- 0xcb, 0xe5, 0x47, 0x88, 0x7f, 0x67, 0xf0, 0x00, 0x09, 0xc8, 0x16, 0x11, 0x4b, 0x8f, 0x83, 0xa8,
- 0xb9, 0x07, 0xaa, 0x63, 0x93, 0x9c, 0xec, 0xda, 0xaa, 0x86, 0xca, 0x8f, 0x52, 0x55, 0x2a, 0xdf,
- 0xe1, 0x62, 0xbc, 0x25, 0xdc, 0x9b, 0x7a, 0xd7, 0xe3, 0x8c, 0x8f, 0xd1, 0x2d, 0x41, 0x64, 0x8c,
- 0x6d, 0x05, 0x44, 0xec, 0x8a, 0xd0, 0x8b, 0x57, 0x88, 0x5a, 0xc9, 0x3e, 0xb0, 0x83, 0xef, 0x7d,
- 0x18, 0xa6, 0xb1, 0xe6, 0xf0, 0xa5, 0x8f, 0xd3, 0x86, 0xcc, 0x3e, 0x08, 0xbc, 0xf1, 0x3d, 0xeb,
- 0x8d, 0x97, 0x2b, 0x50, 0x0c, 0xc6, 0xa7, 0x94, 0x07, 0x1a, 0xa1, 0xa2, 0x80, 0x9b, 0x95, 0x5a,
- 0x73, 0x03, 0xb7, 0x19, 0x2f, 0xd5, 0xc5, 0x14, 0x6e, 0x77, 0xb6, 0x1a, 0xbb, 0x75, 0x45, 0xde,
- 0xdb, 0xd9, 0x6d, 0x6c, 0xd7, 0xc5, 0x74, 0xb0, 0xaf, 0xfe, 0x6e, 0x0a, 0x4a, 0xe1, 0x23, 0x92,
- 0xf4, 0x93, 0x70, 0x8a, 0xdf, 0x67, 0xb8, 0xc8, 0x53, 0x6e, 0xea, 0x0e, 0xd9, 0x32, 0x7d, 0x95,
- 0x96, 0x2f, 0x7f, 0xd1, 0xe6, 0x99, 0x56, 0x1b, 0x79, 0xcf, 0xeb, 0x0e, 0xde, 0x10, 0x7d, 0xd5,
- 0x93, 0xb6, 0xe0, 0x8c, 0x69, 0x29, 0xae, 0xa7, 0x9a, 0x1d, 0xd5, 0xe9, 0x28, 0xc3, 0x9b, 0x24,
- 0x45, 0xd5, 0x34, 0xe4, 0xba, 0x16, 0x2d, 0x55, 0x3e, 0xcb, 0x87, 0x4c, 0xab, 0xcd, 0x94, 0x87,
- 0x39, 0xbc, 0xca, 0x54, 0x23, 0x01, 0x96, 0x3e, 0x2a, 0xc0, 0x1e, 0x84, 0x7c, 0x5f, 0xb5, 0x15,
- 0x64, 0x7a, 0xce, 0x21, 0x69, 0x8c, 0x73, 0x72, 0xae, 0xaf, 0xda, 0x75, 0xfc, 0xfc, 0xfe, 0x9c,
- 0x4f, 0xfe, 0x39, 0x0d, 0xc5, 0x60, 0x73, 0x8c, 0xcf, 0x1a, 0x1a, 0xa9, 0x23, 0x02, 0xc9, 0x34,
- 0x0f, 0x1f, 0xdb, 0x4a, 0xaf, 0xd6, 0x70, 0x81, 0xa9, 0x4c, 0xd2, 0x96, 0x55, 0xa6, 0x48, 0x5c,
- 0xdc, 0x71, 0x6e, 0x41, 0xb4, 0x45, 0xc8, 0xc9, 0xec, 0x49, 0xda, 0x84, 0xc9, 0x6b, 0x2e, 0xe1,
- 0x9e, 0x24, 0xdc, 0x8f, 0x1c, 0xcf, 0xfd, 0x5c, 0x9b, 0x90, 0xe7, 0x9f, 0x6b, 0x2b, 0x3b, 0x4d,
- 0x79, 0xbb, 0xba, 0x25, 0x33, 0xb8, 0x74, 0x1a, 0x32, 0x86, 0x7a, 0xeb, 0x30, 0x5c, 0x8a, 0x88,
- 0x28, 0xa9, 0xe3, 0x4f, 0x43, 0xe6, 0x26, 0x52, 0xaf, 0x87, 0x0b, 0x00, 0x11, 0xbd, 0x87, 0xa1,
- 0x7f, 0x1e, 0xb2, 0xc4, 0x5f, 0x12, 0x00, 0xf3, 0x98, 0x38, 0x21, 0xe5, 0x20, 0x53, 0x6b, 0xca,
- 0x38, 0xfc, 0x45, 0x28, 0x52, 0xa9, 0xd2, 0x6a, 0xd4, 0x6b, 0x75, 0x31, 0xb5, 0x7c, 0x11, 0x26,
- 0xa9, 0x13, 0xf0, 0xd6, 0xf0, 0xdd, 0x20, 0x4e, 0xb0, 0x47, 0xc6, 0x21, 0xf0, 0xd1, 0xbd, 0xed,
- 0xf5, 0xba, 0x2c, 0xa6, 0x82, 0xcb, 0xeb, 0x42, 0x31, 0xd8, 0x17, 0xbf, 0x3f, 0x31, 0xf5, 0x1d,
- 0x01, 0x0a, 0x81, 0x3e, 0x17, 0x37, 0x28, 0xaa, 0x61, 0x58, 0x37, 0x15, 0xd5, 0xd0, 0x55, 0x97,
- 0x05, 0x05, 0x10, 0x51, 0x15, 0x4b, 0x92, 0x2e, 0xda, 0xfb, 0x62, 0xfc, 0xeb, 0x02, 0x88, 0xd1,
- 0x16, 0x33, 0x62, 0xa0, 0xf0, 0x81, 0x1a, 0xf8, 0x9a, 0x00, 0xa5, 0x70, 0x5f, 0x19, 0x31, 0xef,
- 0xdc, 0x07, 0x6a, 0xde, 0xdb, 0x29, 0x98, 0x0e, 0x75, 0x93, 0x49, 0xad, 0xfb, 0x2c, 0xcc, 0xea,
- 0x1d, 0xd4, 0xb7, 0x2d, 0x0f, 0x99, 0xda, 0xa1, 0x62, 0xa0, 0x1b, 0xc8, 0x28, 0x2f, 0x93, 0x44,
- 0x71, 0xfe, 0xf8, 0x7e, 0x75, 0xb5, 0x31, 0xc4, 0x6d, 0x61, 0x58, 0x65, 0xae, 0xb1, 0x51, 0xdf,
- 0x6e, 0x35, 0x77, 0xeb, 0x3b, 0xb5, 0x17, 0x95, 0xbd, 0x9d, 0x9f, 0xde, 0x69, 0x3e, 0xbf, 0x23,
- 0x8b, 0x7a, 0x44, 0xed, 0x3d, 0xdc, 0xea, 0x2d, 0x10, 0xa3, 0x46, 0x49, 0xa7, 0x60, 0x9c, 0x59,
- 0xe2, 0x84, 0x34, 0x07, 0x33, 0x3b, 0x4d, 0xa5, 0xdd, 0xd8, 0xa8, 0x2b, 0xf5, 0xab, 0x57, 0xeb,
- 0xb5, 0xdd, 0x36, 0xbd, 0x81, 0xf0, 0xb5, 0x77, 0xc3, 0x9b, 0xfa, 0xd5, 0x34, 0xcc, 0x8d, 0xb1,
- 0x44, 0xaa, 0xb2, 0xb3, 0x03, 0x3d, 0xce, 0x7c, 0x24, 0x89, 0xf5, 0xab, 0xb8, 0xe4, 0xb7, 0x54,
- 0xc7, 0x63, 0x47, 0x8d, 0xc7, 0x01, 0x7b, 0xc9, 0xf4, 0xf4, 0xae, 0x8e, 0x1c, 0x76, 0x61, 0x43,
- 0x0f, 0x14, 0x33, 0x43, 0x39, 0xbd, 0xb3, 0xf9, 0x09, 0x90, 0x6c, 0xcb, 0xd5, 0x3d, 0xfd, 0x06,
- 0x52, 0x74, 0x93, 0xdf, 0xee, 0xe0, 0x03, 0x46, 0x46, 0x16, 0xf9, 0x48, 0xc3, 0xf4, 0x7c, 0x6d,
- 0x13, 0xf5, 0xd4, 0x88, 0x36, 0x4e, 0xe0, 0x69, 0x59, 0xe4, 0x23, 0xbe, 0xf6, 0x39, 0x28, 0x76,
- 0xac, 0x01, 0xee, 0xba, 0xa8, 0x1e, 0xae, 0x17, 0x82, 0x5c, 0xa0, 0x32, 0x5f, 0x85, 0xf5, 0xd3,
- 0xc3, 0x6b, 0xa5, 0xa2, 0x5c, 0xa0, 0x32, 0xaa, 0xf2, 0x18, 0xcc, 0xa8, 0xbd, 0x9e, 0x83, 0xc9,
- 0x39, 0x11, 0x3d, 0x21, 0x94, 0x7c, 0x31, 0x51, 0x5c, 0x7c, 0x0e, 0x72, 0xdc, 0x0f, 0xb8, 0x24,
- 0x63, 0x4f, 0x28, 0x36, 0x3d, 0xf6, 0xa6, 0x56, 0xf2, 0x72, 0xce, 0xe4, 0x83, 0xe7, 0xa0, 0xa8,
- 0xbb, 0xca, 0xf0, 0x96, 0x3c, 0x75, 0x36, 0xb5, 0x92, 0x93, 0x0b, 0xba, 0xeb, 0xdf, 0x30, 0x2e,
- 0xbf, 0x91, 0x82, 0x52, 0xf8, 0x96, 0x5f, 0xda, 0x80, 0x9c, 0x61, 0x69, 0x2a, 0x09, 0x2d, 0xfa,
- 0x89, 0x69, 0x25, 0xe6, 0xc3, 0xc0, 0xea, 0x16, 0xd3, 0x97, 0x7d, 0xe4, 0xe2, 0x3f, 0x0a, 0x90,
- 0xe3, 0x62, 0x69, 0x01, 0x32, 0xb6, 0xea, 0x1d, 0x10, 0xba, 0xec, 0x7a, 0x4a, 0x14, 0x64, 0xf2,
- 0x8c, 0xe5, 0xae, 0xad, 0x9a, 0x24, 0x04, 0x98, 0x1c, 0x3f, 0xe3, 0x75, 0x35, 0x90, 0xda, 0x21,
- 0xc7, 0x0f, 0xab, 0xdf, 0x47, 0xa6, 0xe7, 0xf2, 0x75, 0x65, 0xf2, 0x1a, 0x13, 0x4b, 0x4f, 0xc2,
- 0xac, 0xe7, 0xa8, 0xba, 0x11, 0xd2, 0xcd, 0x10, 0x5d, 0x91, 0x0f, 0xf8, 0xca, 0x15, 0x38, 0xcd,
- 0x79, 0x3b, 0xc8, 0x53, 0xb5, 0x03, 0xd4, 0x19, 0x82, 0x26, 0xc9, 0x35, 0xc3, 0x29, 0xa6, 0xb0,
- 0xc1, 0xc6, 0x39, 0x76, 0xf9, 0xfb, 0x02, 0xcc, 0xf2, 0x03, 0x53, 0xc7, 0x77, 0xd6, 0x36, 0x80,
- 0x6a, 0x9a, 0x96, 0x17, 0x74, 0xd7, 0x68, 0x28, 0x8f, 0xe0, 0x56, 0xab, 0x3e, 0x48, 0x0e, 0x10,
- 0x2c, 0xf6, 0x01, 0x86, 0x23, 0x47, 0xba, 0xed, 0x0c, 0x14, 0xd8, 0x27, 0x1c, 0xf2, 0x1d, 0x90,
- 0x1e, 0xb1, 0x81, 0x8a, 0xf0, 0xc9, 0x4a, 0x9a, 0x87, 0xec, 0x3e, 0xea, 0xe9, 0x26, 0xbb, 0x98,
- 0xa5, 0x0f, 0xfc, 0x22, 0x24, 0xe3, 0x5f, 0x84, 0xac, 0x7f, 0x06, 0xe6, 0x34, 0xab, 0x1f, 0x35,
- 0x77, 0x5d, 0x8c, 0x1c, 0xf3, 0xdd, 0x4f, 0x0a, 0x2f, 0xc1, 0xb0, 0xc5, 0xfc, 0x91, 0x20, 0x7c,
- 0x39, 0x95, 0xde, 0x6c, 0xad, 0x7f, 0x2d, 0xb5, 0xb8, 0x49, 0xa1, 0x2d, 0x3e, 0x53, 0x19, 0x75,
- 0x0d, 0xa4, 0x61, 0xeb, 0xe1, 0x2b, 0x4f, 0xc2, 0x47, 0x7a, 0xba, 0x77, 0x30, 0xd8, 0x5f, 0xd5,
- 0xac, 0xfe, 0xf9, 0x9e, 0xd5, 0xb3, 0x86, 0x9f, 0x3e, 0xf1, 0x13, 0x79, 0x20, 0xbf, 0xd8, 0xe7,
- 0xcf, 0xbc, 0x2f, 0x5d, 0x8c, 0xfd, 0x56, 0x5a, 0xd9, 0x81, 0x39, 0xa6, 0xac, 0x90, 0xef, 0x2f,
- 0xf4, 0x14, 0x21, 0x1d, 0x7b, 0x87, 0x55, 0xfe, 0xc6, 0x3b, 0xa4, 0x5c, 0xcb, 0xb3, 0x0c, 0x8a,
- 0xc7, 0xe8, 0x41, 0xa3, 0x22, 0xc3, 0x03, 0x21, 0x3e, 0xba, 0x35, 0x91, 0x13, 0xc3, 0xf8, 0x5d,
- 0xc6, 0x38, 0x17, 0x60, 0x6c, 0x33, 0x68, 0xa5, 0x06, 0xd3, 0x27, 0xe1, 0xfa, 0x7b, 0xc6, 0x55,
- 0x44, 0x41, 0x92, 0x4d, 0x98, 0x21, 0x24, 0xda, 0xc0, 0xf5, 0xac, 0x3e, 0xc9, 0x7b, 0xc7, 0xd3,
- 0xfc, 0xc3, 0x3b, 0x74, 0xaf, 0x94, 0x30, 0xac, 0xe6, 0xa3, 0x2a, 0x15, 0x20, 0x9f, 0x9c, 0x3a,
- 0x48, 0x33, 0x62, 0x18, 0xde, 0x62, 0x86, 0xf8, 0xfa, 0x95, 0x4f, 0xc3, 0x3c, 0xfe, 0x4d, 0xd2,
- 0x52, 0xd0, 0x92, 0xf8, 0x0b, 0xaf, 0xf2, 0xf7, 0x5f, 0xa1, 0xdb, 0x71, 0xce, 0x27, 0x08, 0xd8,
- 0x14, 0x58, 0xc5, 0x1e, 0xf2, 0x3c, 0xe4, 0xb8, 0x8a, 0x6a, 0x8c, 0x33, 0x2f, 0x70, 0x63, 0x50,
- 0xfe, 0xc2, 0xbb, 0xe1, 0x55, 0xdc, 0xa4, 0xc8, 0xaa, 0x61, 0x54, 0xf6, 0xe0, 0xd4, 0x98, 0xa8,
- 0x48, 0xc0, 0xf9, 0x2a, 0xe3, 0x9c, 0x1f, 0x89, 0x0c, 0x4c, 0xdb, 0x02, 0x2e, 0xf7, 0xd7, 0x32,
- 0x01, 0xe7, 0xef, 0x31, 0x4e, 0x89, 0x61, 0xf9, 0x92, 0x62, 0xc6, 0xe7, 0x60, 0xf6, 0x06, 0x72,
- 0xf6, 0x2d, 0x97, 0xdd, 0xd2, 0x24, 0xa0, 0x7b, 0x8d, 0xd1, 0xcd, 0x30, 0x20, 0xb9, 0xb6, 0xc1,
- 0x5c, 0x97, 0x21, 0xd7, 0x55, 0x35, 0x94, 0x80, 0xe2, 0x8b, 0x8c, 0x62, 0x0a, 0xeb, 0x63, 0x68,
- 0x15, 0x8a, 0x3d, 0x8b, 0x55, 0xa6, 0x78, 0xf8, 0xeb, 0x0c, 0x5e, 0xe0, 0x18, 0x46, 0x61, 0x5b,
- 0xf6, 0xc0, 0xc0, 0x65, 0x2b, 0x9e, 0xe2, 0xf7, 0x39, 0x05, 0xc7, 0x30, 0x8a, 0x13, 0xb8, 0xf5,
- 0x0f, 0x38, 0x85, 0x1b, 0xf0, 0xe7, 0xb3, 0x50, 0xb0, 0x4c, 0xe3, 0xd0, 0x32, 0x93, 0x18, 0xf1,
- 0x25, 0xc6, 0x00, 0x0c, 0x82, 0x09, 0xae, 0x40, 0x3e, 0xe9, 0x42, 0xfc, 0xd1, 0xbb, 0x7c, 0x7b,
- 0xf0, 0x15, 0xd8, 0x84, 0x19, 0x9e, 0xa0, 0x74, 0xcb, 0x4c, 0x40, 0xf1, 0x15, 0x46, 0x51, 0x0a,
- 0xc0, 0xd8, 0x34, 0x3c, 0xe4, 0x7a, 0x3d, 0x94, 0x84, 0xe4, 0x0d, 0x3e, 0x0d, 0x06, 0x61, 0xae,
- 0xdc, 0x47, 0xa6, 0x76, 0x90, 0x8c, 0xe1, 0xab, 0xdc, 0x95, 0x1c, 0x83, 0x29, 0x6a, 0x30, 0xdd,
- 0x57, 0x1d, 0xf7, 0x40, 0x35, 0x12, 0x2d, 0xc7, 0x1f, 0x33, 0x8e, 0xa2, 0x0f, 0x62, 0x1e, 0x19,
- 0x98, 0x27, 0xa1, 0xf9, 0x1a, 0xf7, 0x48, 0x00, 0xc6, 0xb6, 0x9e, 0xeb, 0x91, 0x2b, 0xad, 0x93,
- 0xb0, 0xfd, 0x09, 0xdf, 0x7a, 0x14, 0xbb, 0x1d, 0x64, 0xbc, 0x02, 0x79, 0x57, 0xbf, 0x95, 0x88,
- 0xe6, 0x4f, 0xf9, 0x4a, 0x13, 0x00, 0x06, 0xbf, 0x08, 0xa7, 0xc7, 0x96, 0x89, 0x04, 0x64, 0x7f,
- 0xc6, 0xc8, 0x16, 0xc6, 0x94, 0x0a, 0x96, 0x12, 0x4e, 0x4a, 0xf9, 0xe7, 0x3c, 0x25, 0xa0, 0x08,
- 0x57, 0x0b, 0x9f, 0x15, 0x5c, 0xb5, 0x7b, 0x32, 0xaf, 0xfd, 0x05, 0xf7, 0x1a, 0xc5, 0x86, 0xbc,
- 0xb6, 0x0b, 0x0b, 0x8c, 0xf1, 0x64, 0xeb, 0xfa, 0x75, 0x9e, 0x58, 0x29, 0x7a, 0x2f, 0xbc, 0xba,
- 0x9f, 0x81, 0x45, 0xdf, 0x9d, 0xbc, 0x29, 0x75, 0x95, 0xbe, 0x6a, 0x27, 0x60, 0xfe, 0x06, 0x63,
- 0xe6, 0x19, 0xdf, 0xef, 0x6a, 0xdd, 0x6d, 0xd5, 0xc6, 0xe4, 0x2f, 0x40, 0x99, 0x93, 0x0f, 0x4c,
- 0x07, 0x69, 0x56, 0xcf, 0xd4, 0x6f, 0xa1, 0x4e, 0x02, 0xea, 0xbf, 0x8c, 0x2c, 0xd5, 0x5e, 0x00,
- 0x8e, 0x99, 0x1b, 0x20, 0xfa, 0xbd, 0x8a, 0xa2, 0xf7, 0x6d, 0xcb, 0xf1, 0x62, 0x18, 0xbf, 0xc9,
- 0x57, 0xca, 0xc7, 0x35, 0x08, 0xac, 0x52, 0x87, 0x12, 0x79, 0x4c, 0x1a, 0x92, 0x7f, 0xc5, 0x88,
- 0xa6, 0x87, 0x28, 0x96, 0x38, 0x34, 0xab, 0x6f, 0xab, 0x4e, 0x92, 0xfc, 0xf7, 0xd7, 0x3c, 0x71,
- 0x30, 0x08, 0x4b, 0x1c, 0xde, 0xa1, 0x8d, 0x70, 0xb5, 0x4f, 0xc0, 0xf0, 0x2d, 0x9e, 0x38, 0x38,
- 0x86, 0x51, 0xf0, 0x86, 0x21, 0x01, 0xc5, 0xdf, 0x70, 0x0a, 0x8e, 0xc1, 0x14, 0x9f, 0x1a, 0x16,
- 0x5a, 0x07, 0xf5, 0x74, 0xd7, 0x73, 0x68, 0x2b, 0x7c, 0x3c, 0xd5, 0xb7, 0xdf, 0x0d, 0x37, 0x61,
- 0x72, 0x00, 0x8a, 0x33, 0x11, 0xbb, 0x42, 0x25, 0x27, 0xa5, 0x78, 0xc3, 0xde, 0xe4, 0x99, 0x28,
- 0x00, 0xc3, 0xb6, 0x05, 0x3a, 0x44, 0xec, 0x76, 0x0d, 0x9f, 0x0f, 0x12, 0xd0, 0x7d, 0x27, 0x62,
- 0x5c, 0x9b, 0x63, 0x31, 0x67, 0xa0, 0xff, 0x19, 0x98, 0xd7, 0xd1, 0x61, 0xa2, 0xe8, 0xfc, 0xdb,
- 0x48, 0xff, 0xb3, 0x47, 0x91, 0x34, 0x87, 0xcc, 0x44, 0xfa, 0x29, 0x29, 0xee, 0x9f, 0x75, 0xca,
- 0x3f, 0x7f, 0x8f, 0xcd, 0x37, 0xdc, 0x4e, 0x55, 0xb6, 0x70, 0x90, 0x87, 0x9b, 0x9e, 0x78, 0xb2,
- 0x57, 0xee, 0xf9, 0x71, 0x1e, 0xea, 0x79, 0x2a, 0x57, 0x61, 0x3a, 0xd4, 0xf0, 0xc4, 0x53, 0xfd,
- 0x02, 0xa3, 0x2a, 0x06, 0xfb, 0x9d, 0xca, 0x45, 0xc8, 0xe0, 0xe6, 0x25, 0x1e, 0xfe, 0x8b, 0x0c,
- 0x4e, 0xd4, 0x2b, 0x1f, 0x87, 0x1c, 0x6f, 0x5a, 0xe2, 0xa1, 0xbf, 0xc4, 0xa0, 0x3e, 0x04, 0xc3,
- 0x79, 0xc3, 0x12, 0x0f, 0xff, 0x65, 0x0e, 0xe7, 0x10, 0x0c, 0x4f, 0xee, 0xc2, 0xbf, 0xfb, 0x95,
- 0x0c, 0x2b, 0x3a, 0xdc, 0x77, 0x57, 0x60, 0x8a, 0x75, 0x2a, 0xf1, 0xe8, 0xcf, 0xb1, 0x97, 0x73,
- 0x44, 0xe5, 0x69, 0xc8, 0x26, 0x74, 0xf8, 0xaf, 0x32, 0x28, 0xd5, 0xaf, 0xd4, 0xa0, 0x10, 0xe8,
- 0x4e, 0xe2, 0xe1, 0xbf, 0xc6, 0xe0, 0x41, 0x14, 0x36, 0x9d, 0x75, 0x27, 0xf1, 0x04, 0xbf, 0xce,
- 0x4d, 0x67, 0x08, 0xec, 0x36, 0xde, 0x98, 0xc4, 0xa3, 0x7f, 0x83, 0x7b, 0x9d, 0x43, 0x2a, 0xcf,
- 0x42, 0xde, 0x2f, 0x36, 0xf1, 0xf8, 0xdf, 0x64, 0xf8, 0x21, 0x06, 0x7b, 0x20, 0x50, 0xec, 0xe2,
- 0x29, 0x7e, 0x8b, 0x7b, 0x20, 0x80, 0xc2, 0xdb, 0x28, 0xda, 0xc0, 0xc4, 0x33, 0xfd, 0x36, 0xdf,
- 0x46, 0x91, 0xfe, 0x05, 0xaf, 0x26, 0xc9, 0xf9, 0xf1, 0x14, 0xbf, 0xc3, 0x57, 0x93, 0xe8, 0x63,
- 0x33, 0xa2, 0x1d, 0x41, 0x3c, 0xc7, 0xef, 0x72, 0x33, 0x22, 0x0d, 0x41, 0xa5, 0x05, 0xd2, 0x68,
- 0x37, 0x10, 0xcf, 0xf7, 0x79, 0xc6, 0x37, 0x3b, 0xd2, 0x0c, 0x54, 0x9e, 0x87, 0x85, 0xf1, 0x9d,
- 0x40, 0x3c, 0xeb, 0x17, 0xee, 0x45, 0xce, 0x6e, 0xc1, 0x46, 0xa0, 0xb2, 0x3b, 0x2c, 0x29, 0xc1,
- 0x2e, 0x20, 0x9e, 0xf6, 0xd5, 0x7b, 0xe1, 0xc4, 0x1d, 0x6c, 0x02, 0x2a, 0x55, 0x80, 0x61, 0x01,
- 0x8e, 0xe7, 0x7a, 0x8d, 0x71, 0x05, 0x40, 0x78, 0x6b, 0xb0, 0xfa, 0x1b, 0x8f, 0xff, 0x22, 0xdf,
- 0x1a, 0x0c, 0x81, 0xb7, 0x06, 0x2f, 0xbd, 0xf1, 0xe8, 0xd7, 0xf9, 0xd6, 0xe0, 0x10, 0x1c, 0xd9,
- 0x81, 0xea, 0x16, 0xcf, 0xf0, 0x25, 0x1e, 0xd9, 0x01, 0x54, 0x65, 0x07, 0x66, 0x47, 0x0a, 0x62,
- 0x3c, 0xd5, 0x97, 0x19, 0x95, 0x18, 0xad, 0x87, 0xc1, 0xe2, 0xc5, 0x8a, 0x61, 0x3c, 0xdb, 0x1f,
- 0x46, 0x8a, 0x17, 0xab, 0x85, 0x95, 0x2b, 0x90, 0x33, 0x07, 0x86, 0x81, 0x37, 0x8f, 0x74, 0xfc,
- 0x3f, 0xd8, 0x95, 0xff, 0xfd, 0x3e, 0xf3, 0x0e, 0x07, 0x54, 0x2e, 0x42, 0x16, 0xf5, 0xf7, 0x51,
- 0x27, 0x0e, 0xf9, 0x1f, 0xf7, 0x79, 0xc2, 0xc4, 0xda, 0x95, 0x67, 0x01, 0xe8, 0xd5, 0x08, 0xf9,
- 0xec, 0x17, 0x83, 0xfd, 0xcf, 0xfb, 0xec, 0x5f, 0x5f, 0x86, 0x90, 0x21, 0x01, 0xfd, 0x47, 0x9a,
- 0xe3, 0x09, 0xde, 0x0d, 0x13, 0x90, 0x15, 0xb9, 0x0c, 0x53, 0xd7, 0x5c, 0xcb, 0xf4, 0xd4, 0x5e,
- 0x1c, 0xfa, 0xbf, 0x18, 0x9a, 0xeb, 0x63, 0x87, 0xf5, 0x2d, 0x07, 0x79, 0x6a, 0xcf, 0x8d, 0xc3,
- 0xfe, 0x37, 0xc3, 0xfa, 0x00, 0x0c, 0xd6, 0x54, 0xd7, 0x4b, 0x32, 0xef, 0x1f, 0x70, 0x30, 0x07,
- 0x60, 0xa3, 0xf1, 0xef, 0xeb, 0xe8, 0x30, 0x0e, 0xfb, 0x43, 0x6e, 0x34, 0xd3, 0xaf, 0x7c, 0x1c,
- 0xf2, 0xf8, 0x27, 0xfd, 0x7f, 0xb6, 0x18, 0xf0, 0xff, 0x30, 0xf0, 0x10, 0x81, 0xdf, 0xec, 0x7a,
- 0x1d, 0x4f, 0x8f, 0x77, 0xf6, 0xff, 0xb2, 0x95, 0xe6, 0xfa, 0x95, 0x2a, 0x14, 0x5c, 0xaf, 0xd3,
- 0x19, 0xb0, 0xfe, 0x34, 0x06, 0xfe, 0x7f, 0xf7, 0xfd, 0x2b, 0x0b, 0x1f, 0x83, 0x57, 0xfb, 0xe6,
- 0x75, 0xcf, 0xb6, 0xc8, 0x67, 0x8e, 0x38, 0x86, 0x7b, 0x8c, 0x21, 0x00, 0x59, 0xaf, 0x8f, 0xbf,
- 0xbe, 0x85, 0x4d, 0x6b, 0xd3, 0xa2, 0x17, 0xb7, 0x2f, 0x2d, 0xc7, 0xdf, 0xc0, 0xc2, 0x9b, 0x29,
- 0x28, 0xf4, 0x1c, 0x6b, 0x60, 0xb3, 0x6b, 0xd8, 0x2c, 0x79, 0x58, 0x3c, 0xd9, 0xe5, 0xed, 0xf2,
- 0xcf, 0xc2, 0xd4, 0x26, 0xc6, 0xb9, 0x1f, 0x93, 0x96, 0x40, 0xe8, 0x91, 0x4b, 0x6b, 0x58, 0x13,
- 0x57, 0x29, 0x33, 0x1b, 0x5a, 0xdd, 0x94, 0x85, 0xde, 0xe2, 0x53, 0x20, 0x6c, 0x4a, 0x0b, 0x30,
- 0x49, 0x26, 0xf8, 0x31, 0xf2, 0x81, 0x32, 0x2d, 0xb3, 0x27, 0x5f, 0xbe, 0x46, 0xee, 0xb5, 0x05,
- 0x26, 0x5f, 0x1b, 0xf2, 0xaf, 0x71, 0x7e, 0x61, 0x84, 0x7f, 0xed, 0x84, 0xfc, 0xe9, 0x21, 0xff,
- 0xfa, 0x85, 0xb7, 0xee, 0x2c, 0x4d, 0x7c, 0xef, 0xce, 0xd2, 0xc4, 0x3f, 0xdd, 0x59, 0x9a, 0x78,
- 0xfb, 0xce, 0x92, 0xf0, 0xc3, 0x3b, 0x4b, 0xc2, 0x8f, 0xee, 0x2c, 0x09, 0xb7, 0xef, 0x2e, 0x09,
- 0x5f, 0xbd, 0xbb, 0x24, 0x7c, 0xfd, 0xee, 0x92, 0xf0, 0xed, 0xbb, 0x4b, 0xc2, 0x5b, 0x77, 0x97,
- 0x26, 0xbe, 0x77, 0x77, 0x69, 0xe2, 0xed, 0xbb, 0x4b, 0x13, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff,
- 0x46, 0xda, 0x48, 0xe6, 0xd7, 0x33, 0x00, 0x00,
+ // 3931 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6,
+ 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x82, 0x20, 0x59, 0xcb, 0x95, 0x63, 0xed, 0xae, 0x6c,
+ 0xc7, 0xb2, 0x1d, 0x6b, 0x13, 0x79, 0x77, 0x6d, 0x63, 0x9b, 0xb8, 0x94, 0xc4, 0x55, 0xe8, 0x4a,
+ 0x22, 0x03, 0x4a, 0xf1, 0x25, 0xd3, 0x62, 0x20, 0xf0, 0x27, 0x85, 0x5d, 0x10, 0x40, 0x00, 0x70,
+ 0xd7, 0xda, 0xe9, 0xc3, 0x76, 0xdc, 0xcb, 0x64, 0x7a, 0xbf, 0xcc, 0x34, 0x71, 0x1d, 0xb7, 0x49,
+ 0xa7, 0x71, 0x9a, 0xde, 0x92, 0x5e, 0xd2, 0x38, 0x7d, 0xe9, 0x4b, 0x5a, 0x3f, 0x75, 0x92, 0xb7,
+ 0x3e, 0xf4, 0xc1, 0xbb, 0xf5, 0x4c, 0x6f, 0x6e, 0x9b, 0xb6, 0xfb, 0x90, 0x19, 0xbf, 0x74, 0xfe,
+ 0x1b, 0x08, 0x80, 0xd4, 0x02, 0xca, 0x8c, 0x9d, 0x27, 0x11, 0xe7, 0x3f, 0xdf, 0x87, 0xf3, 0x9f,
+ 0xff, 0xfc, 0xe7, 0x9c, 0xff, 0x87, 0xe0, 0x2d, 0x19, 0xce, 0xf6, 0x6c, 0xbb, 0x67, 0xa2, 0xf3,
+ 0x8e, 0x6b, 0xfb, 0xf6, 0xc1, 0xa0, 0x7b, 0xbe, 0x83, 0x3c, 0xdd, 0x35, 0x1c, 0xdf, 0x76, 0x57,
+ 0x89, 0x4c, 0x9a, 0xa1, 0x1a, 0xab, 0x5c, 0x63, 0x79, 0x07, 0x66, 0xaf, 0x18, 0x26, 0xda, 0x0c,
+ 0x14, 0xdb, 0xc8, 0x97, 0x9e, 0x86, 0x5c, 0xd7, 0x30, 0x51, 0x55, 0x38, 0x9b, 0x5d, 0x29, 0xad,
+ 0x3d, 0xb4, 0x1a, 0x03, 0xad, 0x46, 0x11, 0x2d, 0x2c, 0x56, 0x08, 0x62, 0xf9, 0x9d, 0x1c, 0xcc,
+ 0x8d, 0x19, 0x95, 0x24, 0xc8, 0x59, 0x5a, 0x1f, 0x33, 0x0a, 0x2b, 0x45, 0x85, 0xfc, 0x96, 0xaa,
+ 0x30, 0xe5, 0x68, 0xfa, 0x35, 0xad, 0x87, 0xaa, 0x19, 0x22, 0xe6, 0x8f, 0xd2, 0x12, 0x40, 0x07,
+ 0x39, 0xc8, 0xea, 0x20, 0x4b, 0x3f, 0xaa, 0x66, 0xcf, 0x66, 0x57, 0x8a, 0x4a, 0x48, 0x22, 0x3d,
+ 0x0e, 0xb3, 0xce, 0xe0, 0xc0, 0x34, 0x74, 0x35, 0xa4, 0x06, 0x67, 0xb3, 0x2b, 0x79, 0x45, 0xa4,
+ 0x03, 0x9b, 0x43, 0xe5, 0x47, 0x60, 0xe6, 0x06, 0xd2, 0xae, 0x85, 0x55, 0x4b, 0x44, 0xb5, 0x82,
+ 0xc5, 0x21, 0xc5, 0x0d, 0x28, 0xf7, 0x91, 0xe7, 0x69, 0x3d, 0xa4, 0xfa, 0x47, 0x0e, 0xaa, 0xe6,
+ 0xc8, 0xec, 0xcf, 0x8e, 0xcc, 0x3e, 0x3e, 0xf3, 0x12, 0x43, 0xed, 0x1d, 0x39, 0x48, 0xaa, 0x41,
+ 0x11, 0x59, 0x83, 0x3e, 0x65, 0xc8, 0x1f, 0xe3, 0xbf, 0xba, 0x35, 0xe8, 0xc7, 0x59, 0x0a, 0x18,
+ 0xc6, 0x28, 0xa6, 0x3c, 0xe4, 0x5e, 0x37, 0x74, 0x54, 0x9d, 0x24, 0x04, 0x8f, 0x8c, 0x10, 0xb4,
+ 0xe9, 0x78, 0x9c, 0x83, 0xe3, 0xa4, 0x0d, 0x28, 0xa2, 0x97, 0x7d, 0x64, 0x79, 0x86, 0x6d, 0x55,
+ 0xa7, 0x08, 0xc9, 0xc3, 0x63, 0x56, 0x11, 0x99, 0x9d, 0x38, 0xc5, 0x10, 0x27, 0x5d, 0x82, 0x29,
+ 0xdb, 0xf1, 0x0d, 0xdb, 0xf2, 0xaa, 0x85, 0xb3, 0xc2, 0x4a, 0x69, 0xed, 0x43, 0x63, 0x03, 0xa1,
+ 0x49, 0x75, 0x14, 0xae, 0x2c, 0x35, 0x40, 0xf4, 0xec, 0x81, 0xab, 0x23, 0x55, 0xb7, 0x3b, 0x48,
+ 0x35, 0xac, 0xae, 0x5d, 0x2d, 0x12, 0x82, 0x33, 0xa3, 0x13, 0x21, 0x8a, 0x1b, 0x76, 0x07, 0x35,
+ 0xac, 0xae, 0xad, 0x54, 0xbc, 0xc8, 0xb3, 0xb4, 0x00, 0x93, 0xde, 0x91, 0xe5, 0x6b, 0x2f, 0x57,
+ 0xcb, 0x24, 0x42, 0xd8, 0xd3, 0xf2, 0x9b, 0x93, 0x30, 0x93, 0x26, 0xc4, 0x2e, 0x43, 0xbe, 0x8b,
+ 0x67, 0x59, 0xcd, 0x9c, 0xc4, 0x07, 0x14, 0x13, 0x75, 0xe2, 0xe4, 0x0f, 0xe9, 0xc4, 0x1a, 0x94,
+ 0x2c, 0xe4, 0xf9, 0xa8, 0x43, 0x23, 0x22, 0x9b, 0x32, 0xa6, 0x80, 0x82, 0x46, 0x43, 0x2a, 0xf7,
+ 0x43, 0x85, 0xd4, 0x0b, 0x30, 0x13, 0x98, 0xa4, 0xba, 0x9a, 0xd5, 0xe3, 0xb1, 0x79, 0x3e, 0xc9,
+ 0x92, 0xd5, 0x3a, 0xc7, 0x29, 0x18, 0xa6, 0x54, 0x50, 0xe4, 0x59, 0xda, 0x04, 0xb0, 0x2d, 0x64,
+ 0x77, 0xd5, 0x0e, 0xd2, 0xcd, 0x6a, 0xe1, 0x18, 0x2f, 0x35, 0xb1, 0xca, 0x88, 0x97, 0x6c, 0x2a,
+ 0xd5, 0x4d, 0xe9, 0x99, 0x61, 0xa8, 0x4d, 0x1d, 0x13, 0x29, 0x3b, 0x74, 0x93, 0x8d, 0x44, 0xdb,
+ 0x3e, 0x54, 0x5c, 0x84, 0xe3, 0x1e, 0x75, 0xd8, 0xcc, 0x8a, 0xc4, 0x88, 0xd5, 0xc4, 0x99, 0x29,
+ 0x0c, 0x46, 0x27, 0x36, 0xed, 0x86, 0x1f, 0xa5, 0x07, 0x21, 0x10, 0xa8, 0x24, 0xac, 0x80, 0x64,
+ 0xa1, 0x32, 0x17, 0xee, 0x6a, 0x7d, 0xb4, 0x78, 0x13, 0x2a, 0x51, 0xf7, 0x48, 0xf3, 0x90, 0xf7,
+ 0x7c, 0xcd, 0xf5, 0x49, 0x14, 0xe6, 0x15, 0xfa, 0x20, 0x89, 0x90, 0x45, 0x56, 0x87, 0x64, 0xb9,
+ 0xbc, 0x82, 0x7f, 0x4a, 0x3f, 0x3e, 0x9c, 0x70, 0x96, 0x4c, 0xf8, 0xc3, 0xa3, 0x2b, 0x1a, 0x61,
+ 0x8e, 0xcf, 0x7b, 0xf1, 0x29, 0x98, 0x8e, 0x4c, 0x20, 0xed, 0xab, 0x97, 0x7f, 0x1a, 0xee, 0x1b,
+ 0x4b, 0x2d, 0xbd, 0x00, 0xf3, 0x03, 0xcb, 0xb0, 0x7c, 0xe4, 0x3a, 0x2e, 0xc2, 0x11, 0x4b, 0x5f,
+ 0x55, 0xfd, 0x97, 0xa9, 0x63, 0x62, 0x6e, 0x3f, 0xac, 0x4d, 0x59, 0x94, 0xb9, 0xc1, 0xa8, 0xf0,
+ 0xb1, 0x62, 0xe1, 0x5f, 0xa7, 0xc4, 0x5b, 0xb7, 0x6e, 0xdd, 0xca, 0x2c, 0x7f, 0x7e, 0x12, 0xe6,
+ 0xc7, 0xed, 0x99, 0xb1, 0xdb, 0x77, 0x01, 0x26, 0xad, 0x41, 0xff, 0x00, 0xb9, 0xc4, 0x49, 0x79,
+ 0x85, 0x3d, 0x49, 0x35, 0xc8, 0x9b, 0xda, 0x01, 0x32, 0xab, 0xb9, 0xb3, 0xc2, 0x4a, 0x65, 0xed,
+ 0xf1, 0x54, 0xbb, 0x72, 0x75, 0x1b, 0x43, 0x14, 0x8a, 0x94, 0x3e, 0x01, 0x39, 0x96, 0xa2, 0x31,
+ 0xc3, 0x63, 0xe9, 0x18, 0xf0, 0x5e, 0x52, 0x08, 0x4e, 0xba, 0x1f, 0x8a, 0xf8, 0x2f, 0x8d, 0x8d,
+ 0x49, 0x62, 0x73, 0x01, 0x0b, 0x70, 0x5c, 0x48, 0x8b, 0x50, 0x20, 0xdb, 0xa4, 0x83, 0x78, 0x69,
+ 0x0b, 0x9e, 0x71, 0x60, 0x75, 0x50, 0x57, 0x1b, 0x98, 0xbe, 0x7a, 0x5d, 0x33, 0x07, 0x88, 0x04,
+ 0x7c, 0x51, 0x29, 0x33, 0xe1, 0xa7, 0xb1, 0x4c, 0x3a, 0x03, 0x25, 0xba, 0xab, 0x0c, 0xab, 0x83,
+ 0x5e, 0x26, 0xd9, 0x33, 0xaf, 0xd0, 0x8d, 0xd6, 0xc0, 0x12, 0xfc, 0xfa, 0xab, 0x9e, 0x6d, 0xf1,
+ 0xd0, 0x24, 0xaf, 0xc0, 0x02, 0xf2, 0xfa, 0xa7, 0xe2, 0x89, 0xfb, 0x81, 0xf1, 0xd3, 0x8b, 0xc7,
+ 0xd4, 0xf2, 0x37, 0x33, 0x90, 0x23, 0xf9, 0x62, 0x06, 0x4a, 0x7b, 0x2f, 0xb6, 0xea, 0xea, 0x66,
+ 0x73, 0x7f, 0x7d, 0xbb, 0x2e, 0x0a, 0x52, 0x05, 0x80, 0x08, 0xae, 0x6c, 0x37, 0x6b, 0x7b, 0x62,
+ 0x26, 0x78, 0x6e, 0xec, 0xee, 0x5d, 0xba, 0x20, 0x66, 0x03, 0xc0, 0x3e, 0x15, 0xe4, 0xc2, 0x0a,
+ 0x4f, 0xae, 0x89, 0x79, 0x49, 0x84, 0x32, 0x25, 0x68, 0xbc, 0x50, 0xdf, 0xbc, 0x74, 0x41, 0x9c,
+ 0x8c, 0x4a, 0x9e, 0x5c, 0x13, 0xa7, 0xa4, 0x69, 0x28, 0x12, 0xc9, 0x7a, 0xb3, 0xb9, 0x2d, 0x16,
+ 0x02, 0xce, 0xf6, 0x9e, 0xd2, 0xd8, 0xdd, 0x12, 0x8b, 0x01, 0xe7, 0x96, 0xd2, 0xdc, 0x6f, 0x89,
+ 0x10, 0x30, 0xec, 0xd4, 0xdb, 0xed, 0xda, 0x56, 0x5d, 0x2c, 0x05, 0x1a, 0xeb, 0x2f, 0xee, 0xd5,
+ 0xdb, 0x62, 0x39, 0x62, 0xd6, 0x93, 0x6b, 0xe2, 0x74, 0xf0, 0x8a, 0xfa, 0xee, 0xfe, 0x8e, 0x58,
+ 0x91, 0x66, 0x61, 0x9a, 0xbe, 0x82, 0x1b, 0x31, 0x13, 0x13, 0x5d, 0xba, 0x20, 0x8a, 0x43, 0x43,
+ 0x28, 0xcb, 0x6c, 0x44, 0x70, 0xe9, 0x82, 0x28, 0x2d, 0x6f, 0x40, 0x9e, 0x44, 0x97, 0x24, 0x41,
+ 0x65, 0xbb, 0xb6, 0x5e, 0xdf, 0x56, 0x9b, 0xad, 0xbd, 0x46, 0x73, 0xb7, 0xb6, 0x2d, 0x0a, 0x43,
+ 0x99, 0x52, 0xff, 0xd4, 0x7e, 0x43, 0xa9, 0x6f, 0x8a, 0x99, 0xb0, 0xac, 0x55, 0xaf, 0xed, 0xd5,
+ 0x37, 0xc5, 0xec, 0xb2, 0x0e, 0xf3, 0xe3, 0xf2, 0xe4, 0xd8, 0x9d, 0x11, 0x5a, 0xe2, 0xcc, 0x31,
+ 0x4b, 0x4c, 0xb8, 0x46, 0x96, 0xf8, 0x9f, 0x33, 0x30, 0x37, 0xa6, 0x56, 0x8c, 0x7d, 0xc9, 0xb3,
+ 0x90, 0xa7, 0x21, 0x4a, 0xab, 0xe7, 0xa3, 0x63, 0x8b, 0x0e, 0x09, 0xd8, 0x91, 0x0a, 0x4a, 0x70,
+ 0xe1, 0x0e, 0x22, 0x7b, 0x4c, 0x07, 0x81, 0x29, 0x46, 0x72, 0xfa, 0x4f, 0x8e, 0xe4, 0x74, 0x5a,
+ 0xf6, 0x2e, 0xa5, 0x29, 0x7b, 0x44, 0x76, 0xb2, 0xdc, 0x9e, 0x1f, 0x93, 0xdb, 0x2f, 0xc3, 0xec,
+ 0x08, 0x51, 0xea, 0x1c, 0xfb, 0x8a, 0x00, 0xd5, 0xe3, 0x9c, 0x93, 0x90, 0xe9, 0x32, 0x91, 0x4c,
+ 0x77, 0x39, 0xee, 0xc1, 0x73, 0xc7, 0x2f, 0xc2, 0xc8, 0x5a, 0xbf, 0x21, 0xc0, 0xc2, 0xf8, 0x4e,
+ 0x71, 0xac, 0x0d, 0x9f, 0x80, 0xc9, 0x3e, 0xf2, 0x0f, 0x6d, 0xde, 0x2d, 0x7d, 0x78, 0x4c, 0x0d,
+ 0xc6, 0xc3, 0xf1, 0xc5, 0x66, 0xa8, 0x70, 0x11, 0xcf, 0x1e, 0xd7, 0xee, 0x51, 0x6b, 0x46, 0x2c,
+ 0xfd, 0x5c, 0x06, 0xee, 0x1b, 0x4b, 0x3e, 0xd6, 0xd0, 0x07, 0x00, 0x0c, 0xcb, 0x19, 0xf8, 0xb4,
+ 0x23, 0xa2, 0x09, 0xb6, 0x48, 0x24, 0x24, 0x79, 0xe1, 0xe4, 0x39, 0xf0, 0x83, 0xf1, 0x2c, 0x19,
+ 0x07, 0x2a, 0x22, 0x0a, 0x4f, 0x0f, 0x0d, 0xcd, 0x11, 0x43, 0x97, 0x8e, 0x99, 0xe9, 0x48, 0x60,
+ 0x7e, 0x14, 0x44, 0xdd, 0x34, 0x90, 0xe5, 0xab, 0x9e, 0xef, 0x22, 0xad, 0x6f, 0x58, 0x3d, 0x52,
+ 0x41, 0x0a, 0x72, 0xbe, 0xab, 0x99, 0x1e, 0x52, 0x66, 0xe8, 0x70, 0x9b, 0x8f, 0x62, 0x04, 0x09,
+ 0x20, 0x37, 0x84, 0x98, 0x8c, 0x20, 0xe8, 0x70, 0x80, 0x58, 0xfe, 0xa5, 0x22, 0x94, 0x42, 0x7d,
+ 0xb5, 0x74, 0x0e, 0xca, 0x57, 0xb5, 0xeb, 0x9a, 0xca, 0xcf, 0x4a, 0xd4, 0x13, 0x25, 0x2c, 0x6b,
+ 0xb1, 0xf3, 0xd2, 0x47, 0x61, 0x9e, 0xa8, 0xd8, 0x03, 0x1f, 0xb9, 0xaa, 0x6e, 0x6a, 0x9e, 0x47,
+ 0x9c, 0x56, 0x20, 0xaa, 0x12, 0x1e, 0x6b, 0xe2, 0xa1, 0x0d, 0x3e, 0x22, 0x5d, 0x84, 0x39, 0x82,
+ 0xe8, 0x0f, 0x4c, 0xdf, 0x70, 0x4c, 0xa4, 0xe2, 0xd3, 0x9b, 0x47, 0x2a, 0x49, 0x60, 0xd9, 0x2c,
+ 0xd6, 0xd8, 0x61, 0x0a, 0xd8, 0x22, 0x4f, 0xda, 0x84, 0x07, 0x08, 0xac, 0x87, 0x2c, 0xe4, 0x6a,
+ 0x3e, 0x52, 0xd1, 0x67, 0x07, 0x9a, 0xe9, 0xa9, 0x9a, 0xd5, 0x51, 0x0f, 0x35, 0xef, 0xb0, 0x3a,
+ 0x8f, 0x09, 0xd6, 0x33, 0x55, 0x41, 0x39, 0x8d, 0x15, 0xb7, 0x98, 0x5e, 0x9d, 0xa8, 0xd5, 0xac,
+ 0xce, 0x27, 0x35, 0xef, 0x50, 0x92, 0x61, 0x81, 0xb0, 0x78, 0xbe, 0x6b, 0x58, 0x3d, 0x55, 0x3f,
+ 0x44, 0xfa, 0x35, 0x75, 0xe0, 0x77, 0x9f, 0xae, 0xde, 0x1f, 0x7e, 0x3f, 0xb1, 0xb0, 0x4d, 0x74,
+ 0x36, 0xb0, 0xca, 0xbe, 0xdf, 0x7d, 0x5a, 0x6a, 0x43, 0x19, 0x2f, 0x46, 0xdf, 0xb8, 0x89, 0xd4,
+ 0xae, 0xed, 0x92, 0xd2, 0x58, 0x19, 0x93, 0x9a, 0x42, 0x1e, 0x5c, 0x6d, 0x32, 0xc0, 0x8e, 0xdd,
+ 0x41, 0x72, 0xbe, 0xdd, 0xaa, 0xd7, 0x37, 0x95, 0x12, 0x67, 0xb9, 0x62, 0xbb, 0x38, 0xa0, 0x7a,
+ 0x76, 0xe0, 0xe0, 0x12, 0x0d, 0xa8, 0x9e, 0xcd, 0xdd, 0x7b, 0x11, 0xe6, 0x74, 0x9d, 0xce, 0xd9,
+ 0xd0, 0x55, 0x76, 0xc6, 0xf2, 0xaa, 0x62, 0xc4, 0x59, 0xba, 0xbe, 0x45, 0x15, 0x58, 0x8c, 0x7b,
+ 0xd2, 0x33, 0x70, 0xdf, 0xd0, 0x59, 0x61, 0xe0, 0xec, 0xc8, 0x2c, 0xe3, 0xd0, 0x8b, 0x30, 0xe7,
+ 0x1c, 0x8d, 0x02, 0xa5, 0xc8, 0x1b, 0x9d, 0xa3, 0x38, 0xec, 0x29, 0x98, 0x77, 0x0e, 0x9d, 0x51,
+ 0xdc, 0x63, 0x61, 0x9c, 0xe4, 0x1c, 0x3a, 0x71, 0xe0, 0xc3, 0xe4, 0xc0, 0xed, 0x22, 0x5d, 0xf3,
+ 0x51, 0xa7, 0x7a, 0x2a, 0xac, 0x1e, 0x1a, 0x90, 0xce, 0x83, 0xa8, 0xeb, 0x2a, 0xb2, 0xb4, 0x03,
+ 0x13, 0xa9, 0x9a, 0x8b, 0x2c, 0xcd, 0xab, 0x9e, 0x09, 0x2b, 0x57, 0x74, 0xbd, 0x4e, 0x46, 0x6b,
+ 0x64, 0x50, 0x7a, 0x0c, 0x66, 0xed, 0x83, 0xab, 0x3a, 0x0d, 0x49, 0xd5, 0x71, 0x51, 0xd7, 0x78,
+ 0xb9, 0xfa, 0x10, 0xf1, 0xef, 0x0c, 0x1e, 0x20, 0x01, 0xd9, 0x22, 0x62, 0xe9, 0x51, 0x10, 0x75,
+ 0xef, 0x50, 0x73, 0x1d, 0x92, 0x93, 0x3d, 0x47, 0xd3, 0x51, 0xf5, 0x61, 0xaa, 0x4a, 0xe5, 0xbb,
+ 0x5c, 0x8c, 0xb7, 0x84, 0x77, 0xc3, 0xe8, 0xfa, 0x9c, 0xf1, 0x11, 0xba, 0x25, 0x88, 0x8c, 0xb1,
+ 0xad, 0x80, 0x88, 0x5d, 0x11, 0x79, 0xf1, 0x0a, 0x51, 0xab, 0x38, 0x87, 0x4e, 0xf8, 0xbd, 0x0f,
+ 0xc2, 0x34, 0xd6, 0x1c, 0xbe, 0xf4, 0x51, 0xda, 0x90, 0x39, 0x87, 0xa1, 0x37, 0x5e, 0x80, 0x05,
+ 0xac, 0xd4, 0x47, 0xbe, 0xd6, 0xd1, 0x7c, 0x2d, 0xa4, 0xfd, 0x11, 0xa2, 0x8d, 0xfd, 0xbe, 0xc3,
+ 0x06, 0x23, 0x76, 0xba, 0x83, 0x83, 0xa3, 0x20, 0xb2, 0x9e, 0xa0, 0x76, 0x62, 0x19, 0x8f, 0xad,
+ 0xf7, 0xad, 0xe9, 0x5e, 0x96, 0xa1, 0x1c, 0x0e, 0x7c, 0xa9, 0x08, 0x34, 0xf4, 0x45, 0x01, 0x77,
+ 0x41, 0x1b, 0xcd, 0x4d, 0xdc, 0xbf, 0xbc, 0x54, 0x17, 0x33, 0xb8, 0x8f, 0xda, 0x6e, 0xec, 0xd5,
+ 0x55, 0x65, 0x7f, 0x77, 0xaf, 0xb1, 0x53, 0x17, 0xb3, 0xe1, 0x86, 0xfd, 0x3b, 0x19, 0xa8, 0x44,
+ 0xcf, 0x5e, 0xd2, 0x8f, 0xc1, 0x29, 0x7e, 0x51, 0xe2, 0x21, 0x5f, 0xbd, 0x61, 0xb8, 0x64, 0x2f,
+ 0xf6, 0x35, 0x5a, 0x17, 0x83, 0x68, 0x98, 0x67, 0x5a, 0x6d, 0xe4, 0x3f, 0x6f, 0xb8, 0x78, 0xa7,
+ 0xf5, 0x35, 0x5f, 0xda, 0x86, 0x33, 0x96, 0xad, 0x7a, 0xbe, 0x66, 0x75, 0x34, 0xb7, 0xa3, 0x0e,
+ 0xaf, 0xa8, 0x54, 0x4d, 0xd7, 0x91, 0xe7, 0xd9, 0xb4, 0x06, 0x06, 0x2c, 0x1f, 0xb2, 0xec, 0x36,
+ 0x53, 0x1e, 0x16, 0x87, 0x1a, 0x53, 0x8d, 0x45, 0x6e, 0xf6, 0xb8, 0xc8, 0xbd, 0x1f, 0x8a, 0x7d,
+ 0xcd, 0x51, 0x91, 0xe5, 0xbb, 0x47, 0xa4, 0xe3, 0x2e, 0x28, 0x85, 0xbe, 0xe6, 0xd4, 0xf1, 0xf3,
+ 0x07, 0x73, 0xf0, 0xf9, 0xa7, 0x2c, 0x94, 0xc3, 0x5d, 0x37, 0x3e, 0xc4, 0xe8, 0xa4, 0x40, 0x09,
+ 0x24, 0x85, 0x3d, 0x78, 0xcf, 0x1e, 0x7d, 0x75, 0x03, 0x57, 0x2e, 0x79, 0x92, 0xf6, 0xc2, 0x0a,
+ 0x45, 0xe2, 0xae, 0x01, 0x87, 0x16, 0xa2, 0xbd, 0x47, 0x41, 0x61, 0x4f, 0xd2, 0x16, 0x4c, 0x5e,
+ 0xf5, 0x08, 0xf7, 0x24, 0xe1, 0x7e, 0xe8, 0xde, 0xdc, 0xcf, 0xb5, 0x09, 0x79, 0xf1, 0xb9, 0xb6,
+ 0xba, 0xdb, 0x54, 0x76, 0x6a, 0xdb, 0x0a, 0x83, 0x4b, 0xa7, 0x21, 0x67, 0x6a, 0x37, 0x8f, 0xa2,
+ 0x35, 0x8e, 0x88, 0xd2, 0x3a, 0xfe, 0x34, 0xe4, 0x6e, 0x20, 0xed, 0x5a, 0xb4, 0xb2, 0x10, 0xd1,
+ 0xfb, 0x18, 0xfa, 0xe7, 0x21, 0x4f, 0xfc, 0x25, 0x01, 0x30, 0x8f, 0x89, 0x13, 0x52, 0x01, 0x72,
+ 0x1b, 0x4d, 0x05, 0x87, 0xbf, 0x08, 0x65, 0x2a, 0x55, 0x5b, 0x8d, 0xfa, 0x46, 0x5d, 0xcc, 0x2c,
+ 0x5f, 0x84, 0x49, 0xea, 0x04, 0xbc, 0x35, 0x02, 0x37, 0x88, 0x13, 0xec, 0x91, 0x71, 0x08, 0x7c,
+ 0x74, 0x7f, 0x67, 0xbd, 0xae, 0x88, 0x99, 0xf0, 0xf2, 0x7a, 0x50, 0x0e, 0x37, 0xdc, 0x1f, 0x4c,
+ 0x4c, 0x7d, 0x5b, 0x80, 0x52, 0xa8, 0x81, 0xc6, 0x9d, 0x8f, 0x66, 0x9a, 0xf6, 0x0d, 0x55, 0x33,
+ 0x0d, 0xcd, 0x63, 0x41, 0x01, 0x44, 0x54, 0xc3, 0x92, 0xb4, 0x8b, 0xf6, 0x81, 0x18, 0xff, 0xba,
+ 0x00, 0x62, 0xbc, 0x77, 0x8d, 0x19, 0x28, 0xfc, 0x48, 0x0d, 0x7c, 0x4d, 0x80, 0x4a, 0xb4, 0x61,
+ 0x8d, 0x99, 0x77, 0xee, 0x47, 0x6a, 0xde, 0xdb, 0x19, 0x98, 0x8e, 0xb4, 0xa9, 0x69, 0xad, 0xfb,
+ 0x2c, 0xcc, 0x1a, 0x1d, 0xd4, 0x77, 0x6c, 0x1f, 0x59, 0xfa, 0x91, 0x6a, 0xa2, 0xeb, 0xc8, 0xac,
+ 0x2e, 0x93, 0x44, 0x71, 0xfe, 0xde, 0x8d, 0xf0, 0x6a, 0x63, 0x88, 0xdb, 0xc6, 0x30, 0x79, 0xae,
+ 0xb1, 0x59, 0xdf, 0x69, 0x35, 0xf7, 0xea, 0xbb, 0x1b, 0x2f, 0xaa, 0xfb, 0xbb, 0x3f, 0xb1, 0xdb,
+ 0x7c, 0x7e, 0x57, 0x11, 0x8d, 0x98, 0xda, 0xfb, 0xb8, 0xd5, 0x5b, 0x20, 0xc6, 0x8d, 0x92, 0x4e,
+ 0xc1, 0x38, 0xb3, 0xc4, 0x09, 0x69, 0x0e, 0x66, 0x76, 0x9b, 0x6a, 0xbb, 0xb1, 0x59, 0x57, 0xeb,
+ 0x57, 0xae, 0xd4, 0x37, 0xf6, 0xda, 0xf4, 0x6a, 0x23, 0xd0, 0xde, 0x8b, 0x6e, 0xea, 0x57, 0xb3,
+ 0x30, 0x37, 0xc6, 0x12, 0xa9, 0xc6, 0x0e, 0x25, 0xf4, 0x9c, 0xf4, 0x44, 0x1a, 0xeb, 0x57, 0x71,
+ 0x57, 0xd0, 0xd2, 0x5c, 0x9f, 0x9d, 0x61, 0x1e, 0x05, 0xec, 0x25, 0xcb, 0x37, 0xba, 0x06, 0x72,
+ 0xd9, 0x4d, 0x10, 0x3d, 0xa9, 0xcc, 0x0c, 0xe5, 0xf4, 0x32, 0xe8, 0x23, 0x20, 0x39, 0xb6, 0x67,
+ 0xf8, 0xc6, 0x75, 0xa4, 0x1a, 0x16, 0xbf, 0x36, 0xc2, 0x27, 0x97, 0x9c, 0x22, 0xf2, 0x91, 0x86,
+ 0xe5, 0x07, 0xda, 0x16, 0xea, 0x69, 0x31, 0x6d, 0x9c, 0xc0, 0xb3, 0x8a, 0xc8, 0x47, 0x02, 0xed,
+ 0x73, 0x50, 0xee, 0xd8, 0x03, 0xdc, 0xce, 0x51, 0x3d, 0x5c, 0x2f, 0x04, 0xa5, 0x44, 0x65, 0x81,
+ 0x0a, 0x6b, 0xd4, 0x87, 0xf7, 0x55, 0x65, 0xa5, 0x44, 0x65, 0x54, 0xe5, 0x11, 0x98, 0xd1, 0x7a,
+ 0x3d, 0x17, 0x93, 0x73, 0x22, 0x7a, 0xf4, 0xa8, 0x04, 0x62, 0xa2, 0xb8, 0xf8, 0x1c, 0x14, 0xb8,
+ 0x1f, 0x70, 0x49, 0xc6, 0x9e, 0x50, 0x1d, 0x7a, 0x9e, 0xce, 0xac, 0x14, 0x95, 0x82, 0xc5, 0x07,
+ 0xcf, 0x41, 0xd9, 0xf0, 0xd4, 0xe1, 0xf5, 0x7b, 0xe6, 0x6c, 0x66, 0xa5, 0xa0, 0x94, 0x0c, 0x2f,
+ 0xb8, 0xba, 0x5c, 0x7e, 0x23, 0x03, 0x95, 0xe8, 0xe7, 0x03, 0x69, 0x13, 0x0a, 0xa6, 0xad, 0x6b,
+ 0x24, 0xb4, 0xe8, 0xb7, 0xab, 0x95, 0x84, 0x2f, 0x0e, 0xab, 0xdb, 0x4c, 0x5f, 0x09, 0x90, 0x8b,
+ 0xff, 0x20, 0x40, 0x81, 0x8b, 0xa5, 0x05, 0xc8, 0x39, 0x9a, 0x7f, 0x48, 0xe8, 0xf2, 0xeb, 0x19,
+ 0x51, 0x50, 0xc8, 0x33, 0x96, 0x7b, 0x8e, 0x66, 0x91, 0x10, 0x60, 0x72, 0xfc, 0x8c, 0xd7, 0xd5,
+ 0x44, 0x5a, 0x87, 0x9c, 0x6b, 0xec, 0x7e, 0x1f, 0x59, 0xbe, 0xc7, 0xd7, 0x95, 0xc9, 0x37, 0x98,
+ 0x58, 0x7a, 0x1c, 0x66, 0x7d, 0x57, 0x33, 0xcc, 0x88, 0x6e, 0x8e, 0xe8, 0x8a, 0x7c, 0x20, 0x50,
+ 0x96, 0xe1, 0x34, 0xe7, 0xed, 0x20, 0x5f, 0xd3, 0x0f, 0x51, 0x67, 0x08, 0x9a, 0x24, 0xf7, 0x17,
+ 0xa7, 0x98, 0xc2, 0x26, 0x1b, 0xe7, 0xd8, 0xe5, 0xef, 0x09, 0x30, 0xcb, 0x4f, 0x62, 0x9d, 0xc0,
+ 0x59, 0x3b, 0x00, 0x9a, 0x65, 0xd9, 0x7e, 0xd8, 0x5d, 0xa3, 0xa1, 0x3c, 0x82, 0x5b, 0xad, 0x05,
+ 0x20, 0x25, 0x44, 0xb0, 0xd8, 0x07, 0x18, 0x8e, 0x1c, 0xeb, 0xb6, 0x33, 0x50, 0x62, 0xdf, 0x86,
+ 0xc8, 0x07, 0x46, 0x7a, 0x76, 0x07, 0x2a, 0xc2, 0x47, 0x36, 0x69, 0x1e, 0xf2, 0x07, 0xa8, 0x67,
+ 0x58, 0xec, 0xc6, 0x97, 0x3e, 0xf0, 0x1b, 0x96, 0x5c, 0x70, 0xc3, 0xb2, 0xfe, 0x19, 0x98, 0xd3,
+ 0xed, 0x7e, 0xdc, 0xdc, 0x75, 0x31, 0x76, 0x7f, 0xe0, 0x7d, 0x52, 0x78, 0x09, 0x86, 0x2d, 0xe6,
+ 0x0f, 0x04, 0xe1, 0xcb, 0x99, 0xec, 0x56, 0x6b, 0xfd, 0x6b, 0x99, 0xc5, 0x2d, 0x0a, 0x6d, 0xf1,
+ 0x99, 0x2a, 0xa8, 0x6b, 0x22, 0x1d, 0x5b, 0x0f, 0x5f, 0x79, 0x1c, 0x9e, 0xe8, 0x19, 0xfe, 0xe1,
+ 0xe0, 0x60, 0x55, 0xb7, 0xfb, 0xe7, 0x7b, 0x76, 0xcf, 0x1e, 0x7e, 0x53, 0xc5, 0x4f, 0xe4, 0x81,
+ 0xfc, 0x62, 0xdf, 0x55, 0x8b, 0x81, 0x74, 0x31, 0xf1, 0x23, 0xac, 0xbc, 0x0b, 0x73, 0x4c, 0x59,
+ 0x25, 0x1f, 0x76, 0xe8, 0xf1, 0x44, 0xba, 0xe7, 0xe5, 0x58, 0xf5, 0x1b, 0xef, 0x90, 0x72, 0xad,
+ 0xcc, 0x32, 0x28, 0x1e, 0xa3, 0x27, 0x18, 0x59, 0x81, 0xfb, 0x22, 0x7c, 0x74, 0x6b, 0x22, 0x37,
+ 0x81, 0xf1, 0x3b, 0x8c, 0x71, 0x2e, 0xc4, 0xd8, 0x66, 0x50, 0x79, 0x03, 0xa6, 0x4f, 0xc2, 0xf5,
+ 0x77, 0x8c, 0xab, 0x8c, 0xc2, 0x24, 0x5b, 0x30, 0x43, 0x48, 0xf4, 0x81, 0xe7, 0xdb, 0x7d, 0x92,
+ 0xf7, 0xee, 0x4d, 0xf3, 0xf7, 0xef, 0xd0, 0xbd, 0x52, 0xc1, 0xb0, 0x8d, 0x00, 0x25, 0xcb, 0x40,
+ 0xbe, 0x65, 0x75, 0x90, 0x6e, 0x26, 0x30, 0xbc, 0xc5, 0x0c, 0x09, 0xf4, 0xe5, 0x4f, 0xc3, 0x3c,
+ 0xfe, 0x4d, 0xd2, 0x52, 0xd8, 0x92, 0xe4, 0x9b, 0xb4, 0xea, 0xf7, 0x5e, 0xa1, 0xdb, 0x71, 0x2e,
+ 0x20, 0x08, 0xd9, 0x14, 0x5a, 0xc5, 0x1e, 0xf2, 0x7d, 0xe4, 0x7a, 0xaa, 0x66, 0x8e, 0x33, 0x2f,
+ 0x74, 0x15, 0x51, 0xfd, 0xc2, 0xbb, 0xd1, 0x55, 0xdc, 0xa2, 0xc8, 0x9a, 0x69, 0xca, 0xfb, 0x70,
+ 0x6a, 0x4c, 0x54, 0xa4, 0xe0, 0x7c, 0x95, 0x71, 0xce, 0x8f, 0x44, 0x06, 0xa6, 0x6d, 0x01, 0x97,
+ 0x07, 0x6b, 0x99, 0x82, 0xf3, 0x77, 0x18, 0xa7, 0xc4, 0xb0, 0x7c, 0x49, 0x31, 0xe3, 0x73, 0x30,
+ 0x7b, 0x1d, 0xb9, 0x07, 0xb6, 0xc7, 0xae, 0x7f, 0x52, 0xd0, 0xbd, 0xc6, 0xe8, 0x66, 0x18, 0x90,
+ 0xdc, 0x07, 0x61, 0xae, 0x67, 0xa0, 0xd0, 0xd5, 0x74, 0x94, 0x82, 0xe2, 0x8b, 0x8c, 0x62, 0x0a,
+ 0xeb, 0x63, 0x68, 0x0d, 0xca, 0x3d, 0x9b, 0x55, 0xa6, 0x64, 0xf8, 0xeb, 0x0c, 0x5e, 0xe2, 0x18,
+ 0x46, 0xe1, 0xd8, 0xce, 0xc0, 0xc4, 0x65, 0x2b, 0x99, 0xe2, 0x77, 0x39, 0x05, 0xc7, 0x30, 0x8a,
+ 0x13, 0xb8, 0xf5, 0xf7, 0x38, 0x85, 0x17, 0xf2, 0xe7, 0xb3, 0x50, 0xb2, 0x2d, 0xf3, 0xc8, 0xb6,
+ 0xd2, 0x18, 0xf1, 0x25, 0xc6, 0x00, 0x0c, 0x82, 0x09, 0x2e, 0x43, 0x31, 0xed, 0x42, 0xfc, 0xc1,
+ 0xbb, 0x7c, 0x7b, 0xf0, 0x15, 0xd8, 0x82, 0x19, 0x9e, 0xa0, 0x0c, 0xdb, 0x4a, 0x41, 0xf1, 0x15,
+ 0x46, 0x51, 0x09, 0xc1, 0xd8, 0x34, 0x7c, 0xe4, 0xf9, 0x3d, 0x94, 0x86, 0xe4, 0x0d, 0x3e, 0x0d,
+ 0x06, 0x61, 0xae, 0x3c, 0x40, 0x96, 0x7e, 0x98, 0x8e, 0xe1, 0xab, 0xdc, 0x95, 0x1c, 0x83, 0x29,
+ 0x36, 0x60, 0xba, 0xaf, 0xb9, 0xde, 0xa1, 0x66, 0xa6, 0x5a, 0x8e, 0x3f, 0x64, 0x1c, 0xe5, 0x00,
+ 0xc4, 0x3c, 0x32, 0xb0, 0x4e, 0x42, 0xf3, 0x35, 0xee, 0x91, 0x10, 0x8c, 0x6d, 0x3d, 0xcf, 0x27,
+ 0x77, 0x65, 0x27, 0x61, 0xfb, 0x23, 0xbe, 0xf5, 0x28, 0x76, 0x27, 0xcc, 0x78, 0x19, 0x8a, 0x9e,
+ 0x71, 0x33, 0x15, 0xcd, 0x1f, 0xf3, 0x95, 0x26, 0x00, 0x0c, 0x7e, 0x11, 0x4e, 0x8f, 0x2d, 0x13,
+ 0x29, 0xc8, 0xfe, 0x84, 0x91, 0x2d, 0x8c, 0x29, 0x15, 0x2c, 0x25, 0x9c, 0x94, 0xf2, 0x4f, 0x79,
+ 0x4a, 0x40, 0x31, 0xae, 0x16, 0x3e, 0x2b, 0x78, 0x5a, 0xf7, 0x64, 0x5e, 0xfb, 0x33, 0xee, 0x35,
+ 0x8a, 0x8d, 0x78, 0x6d, 0x0f, 0x16, 0x18, 0xe3, 0xc9, 0xd6, 0xf5, 0xeb, 0x3c, 0xb1, 0x52, 0xf4,
+ 0x7e, 0x74, 0x75, 0x3f, 0x03, 0x8b, 0x81, 0x3b, 0x79, 0x53, 0xea, 0xa9, 0x7d, 0xcd, 0x49, 0xc1,
+ 0xfc, 0x0d, 0xc6, 0xcc, 0x33, 0x7e, 0xd0, 0xd5, 0x7a, 0x3b, 0x9a, 0x83, 0xc9, 0x5f, 0x80, 0x2a,
+ 0x27, 0x1f, 0x58, 0x2e, 0xd2, 0xed, 0x9e, 0x65, 0xdc, 0x44, 0x9d, 0x14, 0xd4, 0x7f, 0x1e, 0x5b,
+ 0xaa, 0xfd, 0x10, 0x1c, 0x33, 0x37, 0x40, 0x0c, 0x7a, 0x15, 0xd5, 0xe8, 0x3b, 0xb6, 0xeb, 0x27,
+ 0x30, 0xfe, 0x05, 0x5f, 0xa9, 0x00, 0xd7, 0x20, 0x30, 0xb9, 0x0e, 0x15, 0xf2, 0x98, 0x36, 0x24,
+ 0xff, 0x92, 0x11, 0x4d, 0x0f, 0x51, 0x2c, 0x71, 0xe8, 0x76, 0xdf, 0xd1, 0xdc, 0x34, 0xf9, 0xef,
+ 0xaf, 0x78, 0xe2, 0x60, 0x10, 0x96, 0x38, 0xfc, 0x23, 0x07, 0xe1, 0x6a, 0x9f, 0x82, 0xe1, 0x9b,
+ 0x3c, 0x71, 0x70, 0x0c, 0xa3, 0xe0, 0x0d, 0x43, 0x0a, 0x8a, 0xbf, 0xe6, 0x14, 0x1c, 0x83, 0x29,
+ 0x3e, 0x35, 0x2c, 0xb4, 0x2e, 0xea, 0x19, 0x9e, 0xef, 0xd2, 0x56, 0xf8, 0xde, 0x54, 0xdf, 0x7a,
+ 0x37, 0xda, 0x84, 0x29, 0x21, 0x28, 0xce, 0x44, 0xec, 0x0a, 0x95, 0x9c, 0x94, 0x92, 0x0d, 0x7b,
+ 0x93, 0x67, 0xa2, 0x10, 0x0c, 0xdb, 0x16, 0xea, 0x10, 0xb1, 0xdb, 0x75, 0x7c, 0x3e, 0x48, 0x41,
+ 0xf7, 0xed, 0x98, 0x71, 0x6d, 0x8e, 0xc5, 0x9c, 0xa1, 0xfe, 0x67, 0x60, 0x5d, 0x43, 0x47, 0xa9,
+ 0xa2, 0xf3, 0x6f, 0x62, 0xfd, 0xcf, 0x3e, 0x45, 0xd2, 0x1c, 0x32, 0x13, 0xeb, 0xa7, 0xa4, 0xa4,
+ 0xff, 0x02, 0xaa, 0xfe, 0xcc, 0x5d, 0x36, 0xdf, 0x68, 0x3b, 0x25, 0x6f, 0xe3, 0x20, 0x8f, 0x36,
+ 0x3d, 0xc9, 0x64, 0xaf, 0xdc, 0x0d, 0xe2, 0x3c, 0xd2, 0xf3, 0xc8, 0x57, 0x60, 0x3a, 0xd2, 0xf0,
+ 0x24, 0x53, 0xfd, 0x2c, 0xa3, 0x2a, 0x87, 0xfb, 0x1d, 0xf9, 0x22, 0xe4, 0x70, 0xf3, 0x92, 0x0c,
+ 0xff, 0x39, 0x06, 0x27, 0xea, 0xf2, 0xc7, 0xa1, 0xc0, 0x9b, 0x96, 0x64, 0xe8, 0xcf, 0x33, 0x68,
+ 0x00, 0xc1, 0x70, 0xde, 0xb0, 0x24, 0xc3, 0x7f, 0x81, 0xc3, 0x39, 0x04, 0xc3, 0xd3, 0xbb, 0xf0,
+ 0x6f, 0x7f, 0x31, 0xc7, 0x8a, 0x0e, 0xf7, 0xdd, 0x65, 0x98, 0x62, 0x9d, 0x4a, 0x32, 0xfa, 0x73,
+ 0xec, 0xe5, 0x1c, 0x21, 0x3f, 0x05, 0xf9, 0x94, 0x0e, 0xff, 0x65, 0x06, 0xa5, 0xfa, 0xf2, 0x06,
+ 0x94, 0x42, 0xdd, 0x49, 0x32, 0xfc, 0x57, 0x18, 0x3c, 0x8c, 0xc2, 0xa6, 0xb3, 0xee, 0x24, 0x99,
+ 0xe0, 0x57, 0xb9, 0xe9, 0x0c, 0x81, 0xdd, 0xc6, 0x1b, 0x93, 0x64, 0xf4, 0xaf, 0x71, 0xaf, 0x73,
+ 0x88, 0xfc, 0x2c, 0x14, 0x83, 0x62, 0x93, 0x8c, 0xff, 0x75, 0x86, 0x1f, 0x62, 0xb0, 0x07, 0x42,
+ 0xc5, 0x2e, 0x99, 0xe2, 0x37, 0xb8, 0x07, 0x42, 0x28, 0xbc, 0x8d, 0xe2, 0x0d, 0x4c, 0x32, 0xd3,
+ 0x6f, 0xf2, 0x6d, 0x14, 0xeb, 0x5f, 0xf0, 0x6a, 0x92, 0x9c, 0x9f, 0x4c, 0xf1, 0x5b, 0x7c, 0x35,
+ 0x89, 0x3e, 0x36, 0x23, 0xde, 0x11, 0x24, 0x73, 0xfc, 0x36, 0x37, 0x23, 0xd6, 0x10, 0xc8, 0x2d,
+ 0x90, 0x46, 0xbb, 0x81, 0x64, 0xbe, 0xcf, 0x33, 0xbe, 0xd9, 0x91, 0x66, 0x40, 0x7e, 0x1e, 0x16,
+ 0xc6, 0x77, 0x02, 0xc9, 0xac, 0x5f, 0xb8, 0x1b, 0x3b, 0xbb, 0x85, 0x1b, 0x01, 0x79, 0x6f, 0x58,
+ 0x52, 0xc2, 0x5d, 0x40, 0x32, 0xed, 0xab, 0x77, 0xa3, 0x89, 0x3b, 0xdc, 0x04, 0xc8, 0x35, 0x80,
+ 0x61, 0x01, 0x4e, 0xe6, 0x7a, 0x8d, 0x71, 0x85, 0x40, 0x78, 0x6b, 0xb0, 0xfa, 0x9b, 0x8c, 0xff,
+ 0x22, 0xdf, 0x1a, 0x0c, 0x81, 0xb7, 0x06, 0x2f, 0xbd, 0xc9, 0xe8, 0xd7, 0xf9, 0xd6, 0xe0, 0x10,
+ 0x1c, 0xd9, 0xa1, 0xea, 0x96, 0xcc, 0xf0, 0x25, 0x1e, 0xd9, 0x21, 0x94, 0xbc, 0x0b, 0xb3, 0x23,
+ 0x05, 0x31, 0x99, 0xea, 0xcb, 0x8c, 0x4a, 0x8c, 0xd7, 0xc3, 0x70, 0xf1, 0x62, 0xc5, 0x30, 0x99,
+ 0xed, 0xf7, 0x63, 0xc5, 0x8b, 0xd5, 0x42, 0xf9, 0x32, 0x14, 0xac, 0x81, 0x69, 0xe2, 0xcd, 0x23,
+ 0xdd, 0xfb, 0x3f, 0xf7, 0xaa, 0xff, 0xf6, 0x1e, 0xf3, 0x0e, 0x07, 0xc8, 0x17, 0x21, 0x8f, 0xfa,
+ 0x07, 0xa8, 0x93, 0x84, 0xfc, 0xf7, 0xf7, 0x78, 0xc2, 0xc4, 0xda, 0xf2, 0xb3, 0x00, 0xf4, 0x6a,
+ 0x84, 0x7c, 0xf6, 0x4b, 0xc0, 0xfe, 0xc7, 0x7b, 0xec, 0x7f, 0x6a, 0x86, 0x90, 0x21, 0x01, 0xfd,
+ 0x0f, 0x9d, 0x7b, 0x13, 0xbc, 0x1b, 0x25, 0x20, 0x2b, 0xf2, 0x0c, 0x4c, 0x5d, 0xf5, 0x6c, 0xcb,
+ 0xd7, 0x7a, 0x49, 0xe8, 0xff, 0x64, 0x68, 0xae, 0x8f, 0x1d, 0xd6, 0xb7, 0x5d, 0xe4, 0x6b, 0x3d,
+ 0x2f, 0x09, 0xfb, 0x5f, 0x0c, 0x1b, 0x00, 0x30, 0x58, 0xd7, 0x3c, 0x3f, 0xcd, 0xbc, 0xff, 0x9b,
+ 0x83, 0x39, 0x00, 0x1b, 0x8d, 0x7f, 0x5f, 0x43, 0x47, 0x49, 0xd8, 0xef, 0x73, 0xa3, 0x99, 0xbe,
+ 0xfc, 0x71, 0x28, 0xe2, 0x9f, 0xf4, 0x1f, 0xe5, 0x12, 0xc0, 0xff, 0xc3, 0xc0, 0x43, 0x04, 0x7e,
+ 0xb3, 0xe7, 0x77, 0x7c, 0x23, 0xd9, 0xd9, 0xff, 0xcb, 0x56, 0x9a, 0xeb, 0xcb, 0x35, 0x28, 0x79,
+ 0x7e, 0xa7, 0x33, 0x60, 0xfd, 0x69, 0x02, 0xfc, 0xff, 0xde, 0x0b, 0xae, 0x2c, 0x02, 0x0c, 0x5e,
+ 0xed, 0x1b, 0xd7, 0x7c, 0xc7, 0x26, 0x9f, 0x39, 0x92, 0x18, 0xee, 0x32, 0x86, 0x10, 0x64, 0xbd,
+ 0x3e, 0xfe, 0xfa, 0x16, 0xb6, 0xec, 0x2d, 0x9b, 0x5e, 0xdc, 0xbe, 0xb4, 0x9c, 0x7c, 0x03, 0x0b,
+ 0x6f, 0x66, 0xa0, 0xd4, 0x73, 0xed, 0x81, 0xc3, 0xae, 0x61, 0xf3, 0xe4, 0x61, 0xf1, 0x64, 0x97,
+ 0xb7, 0xcb, 0x3f, 0x05, 0x53, 0x5b, 0x18, 0xe7, 0x7d, 0x4c, 0x5a, 0x02, 0xa1, 0x47, 0x2e, 0xad,
+ 0x61, 0x4d, 0x5c, 0xa5, 0xcc, 0x6c, 0x68, 0x75, 0x4b, 0x11, 0x7a, 0x8b, 0x4f, 0x82, 0xb0, 0x25,
+ 0x2d, 0xc0, 0x24, 0x99, 0xe0, 0xc7, 0xc8, 0x07, 0xca, 0xac, 0xc2, 0x9e, 0x02, 0xf9, 0x1a, 0xb9,
+ 0xd7, 0x16, 0x98, 0x7c, 0x6d, 0xc8, 0xbf, 0xc6, 0xf9, 0x85, 0x11, 0xfe, 0xb5, 0x13, 0xf2, 0x67,
+ 0x87, 0xfc, 0xeb, 0x17, 0xde, 0xba, 0xbd, 0x34, 0xf1, 0xdd, 0xdb, 0x4b, 0x13, 0xff, 0x78, 0x7b,
+ 0x69, 0xe2, 0xed, 0xdb, 0x4b, 0xc2, 0xf7, 0x6f, 0x2f, 0x09, 0x3f, 0xb8, 0xbd, 0x24, 0xdc, 0xba,
+ 0xb3, 0x24, 0x7c, 0xf5, 0xce, 0x92, 0xf0, 0xf5, 0x3b, 0x4b, 0xc2, 0xb7, 0xee, 0x2c, 0x09, 0x6f,
+ 0xdd, 0x59, 0x9a, 0xf8, 0xee, 0x9d, 0xa5, 0x89, 0xb7, 0xef, 0x2c, 0x4d, 0xfc, 0x7f, 0x00, 0x00,
+ 0x00, 0xff, 0xff, 0x8a, 0xed, 0x42, 0xee, 0x30, 0x34, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -1012,23 +1035,3 @@ func valueToStringGroup(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
-
-func init() { proto.RegisterFile("group.proto", fileDescriptor_group_3742ba72ecbfc017) }
-
-var fileDescriptor_group_3742ba72ecbfc017 = []byte{
- // 211 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4e, 0x2f, 0xca, 0x2f,
- 0x2d, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x05, 0x73, 0xa4, 0x74, 0xd3, 0x33, 0x4b,
- 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0xb2, 0x49,
- 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x74, 0x29, 0xc5, 0x71, 0xb1, 0xbb, 0x83, 0xf4,
- 0x15, 0x1b, 0x0a, 0xc9, 0x71, 0x31, 0xa6, 0x4b, 0x30, 0x2a, 0x30, 0x6b, 0x70, 0x19, 0x09, 0xe8,
- 0x41, 0x4c, 0x86, 0x4a, 0xe9, 0xb9, 0x07, 0x31, 0xa6, 0x4b, 0x19, 0x73, 0x31, 0xba, 0x0b, 0x89,
- 0x71, 0xb1, 0xb9, 0x65, 0xa6, 0xe6, 0xa4, 0x18, 0x4a, 0x30, 0x2a, 0x30, 0x6a, 0x30, 0x07, 0x41,
- 0x79, 0x70, 0x71, 0x23, 0x09, 0x26, 0x05, 0x46, 0x0d, 0x46, 0xa8, 0xb8, 0x11, 0xc2, 0x7c, 0x23,
- 0x98, 0xf9, 0x8c, 0x18, 0xe6, 0x1b, 0x91, 0x68, 0x3e, 0x33, 0xc2, 0x7c, 0x27, 0x93, 0x13, 0x0f,
- 0xe5, 0x18, 0x2e, 0x3c, 0x94, 0x63, 0xb8, 0xf1, 0x50, 0x8e, 0xe1, 0xc1, 0x43, 0x39, 0xc6, 0x0f,
- 0x0f, 0xe5, 0x18, 0x7f, 0x3c, 0x94, 0x63, 0x6c, 0x78, 0x24, 0xc7, 0xb8, 0xe2, 0x91, 0x1c, 0xe3,
- 0x86, 0x47, 0x72, 0x8c, 0x3b, 0x1e, 0xc9, 0x31, 0x9e, 0x78, 0x24, 0xc7, 0x70, 0xe1, 0x91, 0x1c,
- 0xc3, 0x83, 0x47, 0x72, 0x0c, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3c, 0xd8, 0xef, 0x2c, 0x39,
- 0x01, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/importcustom-issue389/imported/a.pb.go b/vendor/github.com/gogo/protobuf/test/importcustom-issue389/imported/a.pb.go
index e12b0cf184..7fb0166968 100644
--- a/vendor/github.com/gogo/protobuf/test/importcustom-issue389/imported/a.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/importcustom-issue389/imported/a.pb.go
@@ -3,14 +3,14 @@
package imported
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -34,7 +34,7 @@ func (m *A) Reset() { *m = A{} }
func (m *A) String() string { return proto.CompactTextString(m) }
func (*A) ProtoMessage() {}
func (*A) Descriptor() ([]byte, []int) {
- return fileDescriptor_a_b3350f4009dfb5d2, []int{0}
+ return fileDescriptor_44591ff926c61195, []int{0}
}
func (m *A) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -51,8 +51,8 @@ func (m *A) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *A) XXX_Merge(src proto.Message) {
- xxx_messageInfo_A.Merge(dst, src)
+func (m *A) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_A.Merge(m, src)
}
func (m *A) XXX_Size() int {
return m.Size()
@@ -73,6 +73,21 @@ func (m *A) GetF1() string {
func init() {
proto.RegisterType((*A)(nil), "imported.A")
}
+
+func init() { proto.RegisterFile("a.proto", fileDescriptor_44591ff926c61195) }
+
+var fileDescriptor_44591ff926c61195 = []byte{
+ // 127 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x62, 0x4f, 0xd4, 0x2b, 0x28,
+ 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xc8, 0xcc, 0x2d, 0xc8, 0x2f, 0x2a, 0x49, 0x4d, 0x91, 0xd2, 0x4d,
+ 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07,
+ 0x2b, 0x48, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2, 0x51, 0x49, 0x98, 0x8b, 0xd1,
+ 0x51, 0x88, 0x8f, 0x8b, 0x29, 0xcd, 0x50, 0x82, 0x51, 0x81, 0x51, 0x83, 0x33, 0x88, 0x29, 0xcd,
+ 0xd0, 0x49, 0xe2, 0xc7, 0x43, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x77, 0x3c, 0x92, 0x63, 0x3c,
+ 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x93, 0xd8, 0xc0, 0xba,
+ 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x70, 0x12, 0x2a, 0xca, 0x79, 0x00, 0x00, 0x00,
+}
+
func (this *A) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -261,7 +276,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -289,7 +304,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -299,6 +314,9 @@ func (m *A) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthA
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthA
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -313,6 +331,9 @@ func (m *A) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthA
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthA
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -380,10 +401,13 @@ func skipA(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthA
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthA
+ }
return iNdEx, nil
case 3:
for {
@@ -412,6 +436,9 @@ func skipA(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthA
+ }
}
return iNdEx, nil
case 4:
@@ -430,17 +457,3 @@ var (
ErrInvalidLengthA = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowA = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("a.proto", fileDescriptor_a_b3350f4009dfb5d2) }
-
-var fileDescriptor_a_b3350f4009dfb5d2 = []byte{
- // 127 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x62, 0x4f, 0xd4, 0x2b, 0x28,
- 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xc8, 0xcc, 0x2d, 0xc8, 0x2f, 0x2a, 0x49, 0x4d, 0x91, 0xd2, 0x4d,
- 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07,
- 0x2b, 0x48, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2, 0x51, 0x49, 0x98, 0x8b, 0xd1,
- 0x51, 0x88, 0x8f, 0x8b, 0x29, 0xcd, 0x50, 0x82, 0x51, 0x81, 0x51, 0x83, 0x33, 0x88, 0x29, 0xcd,
- 0xd0, 0x49, 0xe2, 0xc7, 0x43, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x77, 0x3c, 0x92, 0x63, 0x3c,
- 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x93, 0xd8, 0xc0, 0xba,
- 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x70, 0x12, 0x2a, 0xca, 0x79, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/importcustom-issue389/importing/c.pb.go b/vendor/github.com/gogo/protobuf/test/importcustom-issue389/importing/c.pb.go
index b6a2973f61..ebb18859ac 100644
--- a/vendor/github.com/gogo/protobuf/test/importcustom-issue389/importing/c.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/importcustom-issue389/importing/c.pb.go
@@ -3,17 +3,16 @@
package importing
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import _ "github.com/gogo/protobuf/test/importcustom-issue389/imported"
-
-import github_com_gogo_protobuf_test_importcustom_issue389_imported "github.com/gogo/protobuf/test/importcustom-issue389/imported"
-
-import bytes "bytes"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ _ "github.com/gogo/protobuf/test/importcustom-issue389/imported"
+ github_com_gogo_protobuf_test_importcustom_issue389_imported "github.com/gogo/protobuf/test/importcustom-issue389/imported"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -37,7 +36,7 @@ func (m *C) Reset() { *m = C{} }
func (m *C) String() string { return proto.CompactTextString(m) }
func (*C) ProtoMessage() {}
func (*C) Descriptor() ([]byte, []int) {
- return fileDescriptor_c_081b796ebd2c7433, []int{0}
+ return fileDescriptor_7086c139101e99ef, []int{0}
}
func (m *C) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -54,8 +53,8 @@ func (m *C) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *C) XXX_Merge(src proto.Message) {
- xxx_messageInfo_C.Merge(dst, src)
+func (m *C) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_C.Merge(m, src)
}
func (m *C) XXX_Size() int {
return m.Size()
@@ -69,6 +68,25 @@ var xxx_messageInfo_C proto.InternalMessageInfo
func init() {
proto.RegisterType((*C)(nil), "importing.C")
}
+
+func init() { proto.RegisterFile("c.proto", fileDescriptor_7086c139101e99ef) }
+
+var fileDescriptor_7086c139101e99ef = []byte{
+ // 180 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x62, 0x4f, 0xd6, 0x2b, 0x28,
+ 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xcc, 0xcc, 0x2d, 0xc8, 0x2f, 0x2a, 0xc9, 0xcc, 0x4b, 0x97, 0xd2,
+ 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7,
+ 0x07, 0xab, 0x48, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2, 0x53, 0xca, 0x05, 0xa7,
+ 0xf2, 0x92, 0xd4, 0xe2, 0x12, 0x7d, 0x88, 0xb9, 0xc9, 0xa5, 0xc5, 0x25, 0xf9, 0xb9, 0xba, 0x99,
+ 0xc5, 0xc5, 0xa5, 0xa9, 0xc6, 0x16, 0x96, 0x50, 0xd1, 0xd4, 0x14, 0xfd, 0x44, 0x88, 0x29, 0x4a,
+ 0x29, 0x5c, 0x8c, 0xce, 0x42, 0xf1, 0x5c, 0x4c, 0x69, 0x46, 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0xdc,
+ 0x46, 0xdc, 0x7a, 0x30, 0x35, 0x7a, 0x8e, 0x4e, 0x4e, 0xb7, 0xee, 0xc9, 0xdb, 0x51, 0x62, 0x8f,
+ 0x9e, 0x53, 0x10, 0x53, 0x9a, 0x91, 0x93, 0xc4, 0x8f, 0x87, 0x72, 0x8c, 0x2b, 0x1e, 0xc9, 0x31,
+ 0xee, 0x78, 0x24, 0xc7, 0x78, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9,
+ 0x31, 0x26, 0xb1, 0x81, 0x4d, 0x33, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x06, 0x70, 0x86, 0x94,
+ 0x11, 0x01, 0x00, 0x00,
+}
+
func (this *C) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -267,7 +285,7 @@ func (m *C) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -295,7 +313,7 @@ func (m *C) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -304,6 +322,9 @@ func (m *C) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthC
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthC
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -323,6 +344,9 @@ func (m *C) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthC
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthC
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -390,10 +414,13 @@ func skipC(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthC
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthC
+ }
return iNdEx, nil
case 3:
for {
@@ -422,6 +449,9 @@ func skipC(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthC
+ }
}
return iNdEx, nil
case 4:
@@ -440,21 +470,3 @@ var (
ErrInvalidLengthC = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowC = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("c.proto", fileDescriptor_c_081b796ebd2c7433) }
-
-var fileDescriptor_c_081b796ebd2c7433 = []byte{
- // 180 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x62, 0x4f, 0xd6, 0x2b, 0x28,
- 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xcc, 0xcc, 0x2d, 0xc8, 0x2f, 0x2a, 0xc9, 0xcc, 0x4b, 0x97, 0xd2,
- 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7,
- 0x07, 0xab, 0x48, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2, 0x53, 0xca, 0x05, 0xa7,
- 0xf2, 0x92, 0xd4, 0xe2, 0x12, 0x7d, 0x88, 0xb9, 0xc9, 0xa5, 0xc5, 0x25, 0xf9, 0xb9, 0xba, 0x99,
- 0xc5, 0xc5, 0xa5, 0xa9, 0xc6, 0x16, 0x96, 0x50, 0xd1, 0xd4, 0x14, 0xfd, 0x44, 0x88, 0x29, 0x4a,
- 0x29, 0x5c, 0x8c, 0xce, 0x42, 0xf1, 0x5c, 0x4c, 0x69, 0x46, 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0xdc,
- 0x46, 0xdc, 0x7a, 0x30, 0x35, 0x7a, 0x8e, 0x4e, 0x4e, 0xb7, 0xee, 0xc9, 0xdb, 0x51, 0x62, 0x8f,
- 0x9e, 0x53, 0x10, 0x53, 0x9a, 0x91, 0x93, 0xc4, 0x8f, 0x87, 0x72, 0x8c, 0x2b, 0x1e, 0xc9, 0x31,
- 0xee, 0x78, 0x24, 0xc7, 0x78, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9,
- 0x31, 0x26, 0xb1, 0x81, 0x4d, 0x33, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x06, 0x70, 0x86, 0x94,
- 0x11, 0x01, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/importdedup/proto.pb.go b/vendor/github.com/gogo/protobuf/test/importdedup/proto.pb.go
index d12d869741..229c2a2690 100644
--- a/vendor/github.com/gogo/protobuf/test/importdedup/proto.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/importdedup/proto.pb.go
@@ -3,13 +3,14 @@
package importdedup
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import subpkg "github.com/gogo/protobuf/test/importdedup/subpkg"
-
-import github_com_gogo_protobuf_test_importdedup_subpkg "github.com/gogo/protobuf/test/importdedup/subpkg"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_test_importdedup_subpkg "github.com/gogo/protobuf/test/importdedup/subpkg"
+ subpkg "github.com/gogo/protobuf/test/importdedup/subpkg"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -34,7 +35,7 @@ func (m *Object) Reset() { *m = Object{} }
func (m *Object) String() string { return proto.CompactTextString(m) }
func (*Object) ProtoMessage() {}
func (*Object) Descriptor() ([]byte, []int) {
- return fileDescriptor_proto_38d4f6a4f3773b6e, []int{0}
+ return fileDescriptor_2fcc84b9998d60d8, []int{0}
}
func (m *Object) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Object.Unmarshal(m, b)
@@ -42,8 +43,8 @@ func (m *Object) XXX_Unmarshal(b []byte) error {
func (m *Object) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Object.Marshal(b, m, deterministic)
}
-func (dst *Object) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Object.Merge(dst, src)
+func (m *Object) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Object.Merge(m, src)
}
func (m *Object) XXX_Size() int {
return xxx_messageInfo_Object.Size(m)
@@ -65,9 +66,9 @@ func init() {
proto.RegisterType((*Object)(nil), "importdedup.Object")
}
-func init() { proto.RegisterFile("proto.proto", fileDescriptor_proto_38d4f6a4f3773b6e) }
+func init() { proto.RegisterFile("proto.proto", fileDescriptor_2fcc84b9998d60d8) }
-var fileDescriptor_proto_38d4f6a4f3773b6e = []byte{
+var fileDescriptor_2fcc84b9998d60d8 = []byte{
// 175 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2e, 0x28, 0xca, 0x2f,
0xc9, 0xd7, 0x03, 0x93, 0x42, 0xdc, 0x99, 0xb9, 0x05, 0xf9, 0x45, 0x25, 0x29, 0xa9, 0x29, 0xa5,
diff --git a/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.pb.go b/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.pb.go
index c8666c5b09..6d1e775df9 100644
--- a/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.pb.go
@@ -3,10 +3,12 @@
package subpkg
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -29,7 +31,7 @@ func (m *SubObject) Reset() { *m = SubObject{} }
func (m *SubObject) String() string { return proto.CompactTextString(m) }
func (*SubObject) ProtoMessage() {}
func (*SubObject) Descriptor() ([]byte, []int) {
- return fileDescriptor_subproto_094c5f22e1aecb1e, []int{0}
+ return fileDescriptor_896c12f092e0b025, []int{0}
}
func (m *SubObject) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SubObject.Unmarshal(m, b)
@@ -37,8 +39,8 @@ func (m *SubObject) XXX_Unmarshal(b []byte) error {
func (m *SubObject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SubObject.Marshal(b, m, deterministic)
}
-func (dst *SubObject) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SubObject.Merge(dst, src)
+func (m *SubObject) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SubObject.Merge(m, src)
}
func (m *SubObject) XXX_Size() int {
return xxx_messageInfo_SubObject.Size(m)
@@ -53,9 +55,9 @@ func init() {
proto.RegisterType((*SubObject)(nil), "subpkg.SubObject")
}
-func init() { proto.RegisterFile("subpkg/subproto.proto", fileDescriptor_subproto_094c5f22e1aecb1e) }
+func init() { proto.RegisterFile("subpkg/subproto.proto", fileDescriptor_896c12f092e0b025) }
-var fileDescriptor_subproto_094c5f22e1aecb1e = []byte{
+var fileDescriptor_896c12f092e0b025 = []byte{
// 88 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2d, 0x2e, 0x4d, 0x2a,
0xc8, 0x4e, 0xd7, 0x07, 0x51, 0x45, 0xf9, 0x25, 0xf9, 0x7a, 0x60, 0x52, 0x88, 0x0d, 0x22, 0x2c,
diff --git a/vendor/github.com/gogo/protobuf/test/importduplicate/importduplicate.pb.go b/vendor/github.com/gogo/protobuf/test/importduplicate/importduplicate.pb.go
index e633c90492..26347ecf4c 100644
--- a/vendor/github.com/gogo/protobuf/test/importduplicate/importduplicate.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/importduplicate/importduplicate.pb.go
@@ -3,18 +3,18 @@
package importduplicate
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import proto1 "github.com/gogo/protobuf/test/importduplicate/proto"
-import sortkeys "github.com/gogo/protobuf/test/importduplicate/sortkeys"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ proto1 "github.com/gogo/protobuf/test/importduplicate/proto"
+ sortkeys "github.com/gogo/protobuf/test/importduplicate/sortkeys"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -40,7 +40,7 @@ func (m *MapAndSortKeys) Reset() { *m = MapAndSortKeys{} }
func (m *MapAndSortKeys) String() string { return proto.CompactTextString(m) }
func (*MapAndSortKeys) ProtoMessage() {}
func (*MapAndSortKeys) Descriptor() ([]byte, []int) {
- return fileDescriptor_importduplicate_e9d46e93914bce47, []int{0}
+ return fileDescriptor_f3b420b76fd5209f, []int{0}
}
func (m *MapAndSortKeys) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MapAndSortKeys.Unmarshal(m, b)
@@ -48,8 +48,8 @@ func (m *MapAndSortKeys) XXX_Unmarshal(b []byte) error {
func (m *MapAndSortKeys) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MapAndSortKeys.Marshal(b, m, deterministic)
}
-func (dst *MapAndSortKeys) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MapAndSortKeys.Merge(dst, src)
+func (m *MapAndSortKeys) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MapAndSortKeys.Merge(m, src)
}
func (m *MapAndSortKeys) XXX_Size() int {
return xxx_messageInfo_MapAndSortKeys.Size(m)
@@ -85,6 +85,31 @@ func init() {
proto.RegisterType((*MapAndSortKeys)(nil), "importduplicate.MapAndSortKeys")
proto.RegisterMapType((map[int32]string)(nil), "importduplicate.MapAndSortKeys.KeyValueEntry")
}
+
+func init() { proto.RegisterFile("importduplicate.proto", fileDescriptor_f3b420b76fd5209f) }
+
+var fileDescriptor_f3b420b76fd5209f = []byte{
+ // 277 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xcd, 0xcc, 0x2d, 0xc8,
+ 0x2f, 0x2a, 0x49, 0x29, 0x2d, 0xc8, 0xc9, 0x4c, 0x4e, 0x2c, 0x49, 0xd5, 0x2b, 0x28, 0xca, 0x2f,
+ 0xc9, 0x17, 0xe2, 0x47, 0x13, 0x96, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce,
+ 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0xab, 0x4b, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c,
+ 0x30, 0x0b, 0xa2, 0x5f, 0xca, 0x15, 0xa7, 0xf2, 0x92, 0xd4, 0xe2, 0x12, 0x7d, 0x34, 0xd3, 0xf5,
+ 0x8b, 0xf3, 0x8b, 0x4a, 0xb2, 0x53, 0x2b, 0x8b, 0xc1, 0x8c, 0xc4, 0xa4, 0x1c, 0xa8, 0x33, 0xa4,
+ 0xec, 0x49, 0x33, 0x06, 0xe2, 0x0c, 0x30, 0x09, 0x31, 0x40, 0xe9, 0x11, 0x23, 0x17, 0x9f, 0x6f,
+ 0x62, 0x81, 0x63, 0x5e, 0x4a, 0x70, 0x7e, 0x51, 0x89, 0x77, 0x6a, 0x65, 0xb1, 0x90, 0x12, 0x17,
+ 0x73, 0x76, 0x6a, 0xa5, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0xb7, 0x91, 0x80, 0x1e, 0xcc, 0x6a, 0x3d,
+ 0xff, 0xa4, 0xac, 0xd4, 0xe4, 0x92, 0x20, 0x90, 0xa4, 0x90, 0x27, 0x17, 0x47, 0x76, 0x6a, 0x65,
+ 0x58, 0x62, 0x4e, 0x69, 0xaa, 0x04, 0x93, 0x02, 0xb3, 0x06, 0xb7, 0x91, 0xae, 0x1e, 0x7a, 0x40,
+ 0xa1, 0x1a, 0xab, 0xe7, 0x0d, 0x55, 0xef, 0x9a, 0x57, 0x52, 0x54, 0x19, 0x04, 0xd7, 0x2e, 0xa4,
+ 0xc2, 0xc5, 0x5a, 0x06, 0x36, 0x87, 0x19, 0x6c, 0x21, 0x1f, 0xc4, 0x61, 0x7a, 0xc1, 0xa5, 0x10,
+ 0xeb, 0x20, 0x92, 0x52, 0xd6, 0x5c, 0xbc, 0x28, 0x06, 0x08, 0x09, 0x20, 0x5c, 0xc9, 0x0a, 0x71,
+ 0x93, 0x08, 0xcc, 0x20, 0x26, 0x05, 0x46, 0x0d, 0x4e, 0xa8, 0x46, 0x2b, 0x26, 0x0b, 0x46, 0x27,
+ 0x81, 0x0f, 0x0f, 0xe5, 0x18, 0x7f, 0x3c, 0x94, 0x63, 0x5c, 0xf1, 0x48, 0x8e, 0x71, 0xc7, 0x23,
+ 0x39, 0xc6, 0x24, 0x36, 0xb0, 0x25, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x50, 0xcc, 0xec,
+ 0x38, 0xde, 0x01, 0x00, 0x00,
+}
+
func (this *MapAndSortKeys) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -255,29 +280,3 @@ func encodeVarintPopulateImportduplicate(dAtA []byte, v uint64) []byte {
dAtA = append(dAtA, uint8(v))
return dAtA
}
-
-func init() {
- proto.RegisterFile("importduplicate.proto", fileDescriptor_importduplicate_e9d46e93914bce47)
-}
-
-var fileDescriptor_importduplicate_e9d46e93914bce47 = []byte{
- // 277 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xcd, 0xcc, 0x2d, 0xc8,
- 0x2f, 0x2a, 0x49, 0x29, 0x2d, 0xc8, 0xc9, 0x4c, 0x4e, 0x2c, 0x49, 0xd5, 0x2b, 0x28, 0xca, 0x2f,
- 0xc9, 0x17, 0xe2, 0x47, 0x13, 0x96, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce,
- 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0xab, 0x4b, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c,
- 0x30, 0x0b, 0xa2, 0x5f, 0xca, 0x15, 0xa7, 0xf2, 0x92, 0xd4, 0xe2, 0x12, 0x7d, 0x34, 0xd3, 0xf5,
- 0x8b, 0xf3, 0x8b, 0x4a, 0xb2, 0x53, 0x2b, 0x8b, 0xc1, 0x8c, 0xc4, 0xa4, 0x1c, 0xa8, 0x33, 0xa4,
- 0xec, 0x49, 0x33, 0x06, 0xe2, 0x0c, 0x30, 0x09, 0x31, 0x40, 0xe9, 0x11, 0x23, 0x17, 0x9f, 0x6f,
- 0x62, 0x81, 0x63, 0x5e, 0x4a, 0x70, 0x7e, 0x51, 0x89, 0x77, 0x6a, 0x65, 0xb1, 0x90, 0x12, 0x17,
- 0x73, 0x76, 0x6a, 0xa5, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0xb7, 0x91, 0x80, 0x1e, 0xcc, 0x6a, 0x3d,
- 0xff, 0xa4, 0xac, 0xd4, 0xe4, 0x92, 0x20, 0x90, 0xa4, 0x90, 0x27, 0x17, 0x47, 0x76, 0x6a, 0x65,
- 0x58, 0x62, 0x4e, 0x69, 0xaa, 0x04, 0x93, 0x02, 0xb3, 0x06, 0xb7, 0x91, 0xae, 0x1e, 0x7a, 0x40,
- 0xa1, 0x1a, 0xab, 0xe7, 0x0d, 0x55, 0xef, 0x9a, 0x57, 0x52, 0x54, 0x19, 0x04, 0xd7, 0x2e, 0xa4,
- 0xc2, 0xc5, 0x5a, 0x06, 0x36, 0x87, 0x19, 0x6c, 0x21, 0x1f, 0xc4, 0x61, 0x7a, 0xc1, 0xa5, 0x10,
- 0xeb, 0x20, 0x92, 0x52, 0xd6, 0x5c, 0xbc, 0x28, 0x06, 0x08, 0x09, 0x20, 0x5c, 0xc9, 0x0a, 0x71,
- 0x93, 0x08, 0xcc, 0x20, 0x26, 0x05, 0x46, 0x0d, 0x4e, 0xa8, 0x46, 0x2b, 0x26, 0x0b, 0x46, 0x27,
- 0x81, 0x0f, 0x0f, 0xe5, 0x18, 0x7f, 0x3c, 0x94, 0x63, 0x5c, 0xf1, 0x48, 0x8e, 0x71, 0xc7, 0x23,
- 0x39, 0xc6, 0x24, 0x36, 0xb0, 0x25, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x50, 0xcc, 0xec,
- 0x38, 0xde, 0x01, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/importduplicate/proto/proto.pb.go b/vendor/github.com/gogo/protobuf/test/importduplicate/proto/proto.pb.go
index f9691630f1..9e90377af7 100644
--- a/vendor/github.com/gogo/protobuf/test/importduplicate/proto/proto.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/importduplicate/proto/proto.pb.go
@@ -3,15 +3,15 @@
package proto
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -34,7 +34,7 @@ func (m *Subject) Reset() { *m = Subject{} }
func (m *Subject) String() string { return proto.CompactTextString(m) }
func (*Subject) ProtoMessage() {}
func (*Subject) Descriptor() ([]byte, []int) {
- return fileDescriptor_proto_2eb405ba8c57e5a9, []int{0}
+ return fileDescriptor_9897619deba694d0, []int{0}
}
func (m *Subject) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Subject.Unmarshal(m, b)
@@ -42,8 +42,8 @@ func (m *Subject) XXX_Unmarshal(b []byte) error {
func (m *Subject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Subject.Marshal(b, m, deterministic)
}
-func (dst *Subject) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Subject.Merge(dst, src)
+func (m *Subject) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Subject.Merge(m, src)
}
func (m *Subject) XXX_Size() int {
return xxx_messageInfo_Subject.Size(m)
@@ -57,6 +57,20 @@ var xxx_messageInfo_Subject proto.InternalMessageInfo
func init() {
proto.RegisterType((*Subject)(nil), "proto.Subject")
}
+
+func init() { proto.RegisterFile("proto/proto.proto", fileDescriptor_9897619deba694d0) }
+
+var fileDescriptor_9897619deba694d0 = []byte{
+ // 103 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2c, 0x28, 0xca, 0x2f,
+ 0xc9, 0xd7, 0x07, 0x93, 0x7a, 0x60, 0x52, 0x88, 0x15, 0x4c, 0x49, 0xe9, 0xa6, 0x67, 0x96, 0x64,
+ 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0xa7, 0xe7, 0xa7, 0x43, 0xd5, 0x24, 0x95, 0xa6, 0x81,
+ 0x79, 0x10, 0x6d, 0x20, 0x16, 0x44, 0x97, 0x12, 0x27, 0x17, 0x7b, 0x70, 0x69, 0x52, 0x56, 0x6a,
+ 0x72, 0x89, 0x93, 0xc0, 0x87, 0x87, 0x72, 0x8c, 0x3f, 0x1e, 0xca, 0x31, 0xae, 0x78, 0x24, 0xc7,
+ 0xb8, 0xe3, 0x91, 0x1c, 0x63, 0x12, 0x1b, 0x58, 0x8d, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0xf0,
+ 0xc4, 0xe7, 0x73, 0x6e, 0x00, 0x00, 0x00,
+}
+
func (this *Subject) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -181,16 +195,3 @@ func encodeVarintPopulateProto(dAtA []byte, v uint64) []byte {
dAtA = append(dAtA, uint8(v))
return dAtA
}
-
-func init() { proto.RegisterFile("proto/proto.proto", fileDescriptor_proto_2eb405ba8c57e5a9) }
-
-var fileDescriptor_proto_2eb405ba8c57e5a9 = []byte{
- // 103 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2c, 0x28, 0xca, 0x2f,
- 0xc9, 0xd7, 0x07, 0x93, 0x7a, 0x60, 0x52, 0x88, 0x15, 0x4c, 0x49, 0xe9, 0xa6, 0x67, 0x96, 0x64,
- 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0xa7, 0xe7, 0xa7, 0x43, 0xd5, 0x24, 0x95, 0xa6, 0x81,
- 0x79, 0x10, 0x6d, 0x20, 0x16, 0x44, 0x97, 0x12, 0x27, 0x17, 0x7b, 0x70, 0x69, 0x52, 0x56, 0x6a,
- 0x72, 0x89, 0x93, 0xc0, 0x87, 0x87, 0x72, 0x8c, 0x3f, 0x1e, 0xca, 0x31, 0xae, 0x78, 0x24, 0xc7,
- 0xb8, 0xe3, 0x91, 0x1c, 0x63, 0x12, 0x1b, 0x58, 0x8d, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0xf0,
- 0xc4, 0xe7, 0x73, 0x6e, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortable.pb.go b/vendor/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortable.pb.go
index cb6b8d31ba..1d1b48b464 100644
--- a/vendor/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortable.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortable.pb.go
@@ -3,15 +3,15 @@
package sortkeys
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -34,7 +34,7 @@ func (m *Object) Reset() { *m = Object{} }
func (m *Object) String() string { return proto.CompactTextString(m) }
func (*Object) ProtoMessage() {}
func (*Object) Descriptor() ([]byte, []int) {
- return fileDescriptor_sortable_d1adc3e2593f24f3, []int{0}
+ return fileDescriptor_facf4ffffcc1013f, []int{0}
}
func (m *Object) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Object.Unmarshal(m, b)
@@ -42,8 +42,8 @@ func (m *Object) XXX_Unmarshal(b []byte) error {
func (m *Object) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Object.Marshal(b, m, deterministic)
}
-func (dst *Object) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Object.Merge(dst, src)
+func (m *Object) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Object.Merge(m, src)
}
func (m *Object) XXX_Size() int {
return xxx_messageInfo_Object.Size(m)
@@ -57,6 +57,21 @@ var xxx_messageInfo_Object proto.InternalMessageInfo
func init() {
proto.RegisterType((*Object)(nil), "sortkeys.Object")
}
+
+func init() { proto.RegisterFile("sortkeys/sortable.proto", fileDescriptor_facf4ffffcc1013f) }
+
+var fileDescriptor_facf4ffffcc1013f = []byte{
+ // 115 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2f, 0xce, 0x2f, 0x2a,
+ 0xc9, 0x4e, 0xad, 0x2c, 0xd6, 0x07, 0x31, 0x12, 0x93, 0x72, 0x52, 0xf5, 0x0a, 0x8a, 0xf2, 0x4b,
+ 0xf2, 0x85, 0x38, 0x60, 0x12, 0x52, 0xba, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9,
+ 0xb9, 0xfa, 0xe9, 0xf9, 0xe9, 0xf9, 0xfa, 0x60, 0x05, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03,
+ 0x66, 0x41, 0x34, 0x2a, 0x71, 0x70, 0xb1, 0xf9, 0x27, 0x65, 0xa5, 0x26, 0x97, 0x38, 0x09, 0x7c,
+ 0x78, 0x28, 0xc7, 0xf8, 0xe3, 0xa1, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x1e, 0xc9, 0x31,
+ 0x26, 0xb1, 0x81, 0x95, 0x18, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0xd5, 0x1b, 0xba, 0xd6, 0x76,
+ 0x00, 0x00, 0x00,
+}
+
func (this *Object) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -181,17 +196,3 @@ func encodeVarintPopulateSortable(dAtA []byte, v uint64) []byte {
dAtA = append(dAtA, uint8(v))
return dAtA
}
-
-func init() { proto.RegisterFile("sortkeys/sortable.proto", fileDescriptor_sortable_d1adc3e2593f24f3) }
-
-var fileDescriptor_sortable_d1adc3e2593f24f3 = []byte{
- // 115 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2f, 0xce, 0x2f, 0x2a,
- 0xc9, 0x4e, 0xad, 0x2c, 0xd6, 0x07, 0x31, 0x12, 0x93, 0x72, 0x52, 0xf5, 0x0a, 0x8a, 0xf2, 0x4b,
- 0xf2, 0x85, 0x38, 0x60, 0x12, 0x52, 0xba, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9,
- 0xb9, 0xfa, 0xe9, 0xf9, 0xe9, 0xf9, 0xfa, 0x60, 0x05, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03,
- 0x66, 0x41, 0x34, 0x2a, 0x71, 0x70, 0xb1, 0xf9, 0x27, 0x65, 0xa5, 0x26, 0x97, 0x38, 0x09, 0x7c,
- 0x78, 0x28, 0xc7, 0xf8, 0xe3, 0xa1, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x1e, 0xc9, 0x31,
- 0x26, 0xb1, 0x81, 0x95, 0x18, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0xd5, 0x1b, 0xba, 0xd6, 0x76,
- 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/index.pb.go b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/index.pb.go
index 343c85beda..7058b990d6 100644
--- a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/index.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/index.pb.go
@@ -3,14 +3,14 @@
package index
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -35,7 +35,7 @@ func (m *IndexQuery) Reset() { *m = IndexQuery{} }
func (m *IndexQuery) String() string { return proto.CompactTextString(m) }
func (*IndexQuery) ProtoMessage() {}
func (*IndexQuery) Descriptor() ([]byte, []int) {
- return fileDescriptor_index_5bc64712555c00b6, []int{0}
+ return fileDescriptor_f750e0f7889345b5, []int{0}
}
func (m *IndexQuery) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -52,8 +52,8 @@ func (m *IndexQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *IndexQuery) XXX_Merge(src proto.Message) {
- xxx_messageInfo_IndexQuery.Merge(dst, src)
+func (m *IndexQuery) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_IndexQuery.Merge(m, src)
}
func (m *IndexQuery) XXX_Size() int {
return m.Size()
@@ -81,6 +81,22 @@ func (m *IndexQuery) GetValue() string {
func init() {
proto.RegisterType((*IndexQuery)(nil), "index.IndexQuery")
}
+
+func init() { proto.RegisterFile("index.proto", fileDescriptor_f750e0f7889345b5) }
+
+var fileDescriptor_f750e0f7889345b5 = []byte{
+ // 141 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xce, 0xcc, 0x4b, 0x49,
+ 0xad, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x05, 0x73, 0xa4, 0x74, 0xd3, 0x33, 0x4b,
+ 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0xb2, 0x49,
+ 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x74, 0x29, 0x99, 0x70, 0x71, 0x79, 0x82, 0xf4,
+ 0x05, 0x96, 0xa6, 0x16, 0x55, 0x0a, 0x09, 0x70, 0x31, 0x7b, 0xa7, 0x56, 0x4a, 0x30, 0x2a, 0x30,
+ 0x6a, 0x70, 0x06, 0x81, 0x98, 0x42, 0x22, 0x5c, 0xac, 0x61, 0x89, 0x39, 0xa5, 0xa9, 0x12, 0x4c,
+ 0x60, 0x31, 0x08, 0xc7, 0x49, 0xe2, 0xc7, 0x43, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x77, 0x3c,
+ 0x92, 0x63, 0x3c, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x01,
+ 0x01, 0x00, 0x00, 0xff, 0xff, 0x7a, 0x3d, 0x8f, 0x44, 0x93, 0x00, 0x00, 0x00,
+}
+
func (this *IndexQuery) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -301,7 +317,7 @@ func (m *IndexQuery) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -329,7 +345,7 @@ func (m *IndexQuery) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -339,6 +355,9 @@ func (m *IndexQuery) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthIndex
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthIndex
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -359,7 +378,7 @@ func (m *IndexQuery) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -369,6 +388,9 @@ func (m *IndexQuery) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthIndex
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthIndex
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -384,6 +406,9 @@ func (m *IndexQuery) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthIndex
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthIndex
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -451,10 +476,13 @@ func skipIndex(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthIndex
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthIndex
+ }
return iNdEx, nil
case 3:
for {
@@ -483,6 +511,9 @@ func skipIndex(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthIndex
+ }
}
return iNdEx, nil
case 4:
@@ -501,18 +532,3 @@ var (
ErrInvalidLengthIndex = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowIndex = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("index.proto", fileDescriptor_index_5bc64712555c00b6) }
-
-var fileDescriptor_index_5bc64712555c00b6 = []byte{
- // 141 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xce, 0xcc, 0x4b, 0x49,
- 0xad, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x05, 0x73, 0xa4, 0x74, 0xd3, 0x33, 0x4b,
- 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0xb2, 0x49,
- 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0x74, 0x29, 0x99, 0x70, 0x71, 0x79, 0x82, 0xf4,
- 0x05, 0x96, 0xa6, 0x16, 0x55, 0x0a, 0x09, 0x70, 0x31, 0x7b, 0xa7, 0x56, 0x4a, 0x30, 0x2a, 0x30,
- 0x6a, 0x70, 0x06, 0x81, 0x98, 0x42, 0x22, 0x5c, 0xac, 0x61, 0x89, 0x39, 0xa5, 0xa9, 0x12, 0x4c,
- 0x60, 0x31, 0x08, 0xc7, 0x49, 0xe2, 0xc7, 0x43, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x77, 0x3c,
- 0x92, 0x63, 0x3c, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x01,
- 0x01, 0x00, 0x00, 0xff, 0xff, 0x7a, 0x3d, 0x8f, 0x44, 0x93, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.pb.go b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.pb.go
index 1307f5ab2a..16227a19eb 100644
--- a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.pb.go
@@ -3,15 +3,15 @@
package indeximport
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import index "github.com/gogo/protobuf/test/indeximport-issue72/index"
-
-import bytes "bytes"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ index "github.com/gogo/protobuf/test/indeximport-issue72/index"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -35,7 +35,7 @@ func (m *IndexQueries) Reset() { *m = IndexQueries{} }
func (m *IndexQueries) String() string { return proto.CompactTextString(m) }
func (*IndexQueries) ProtoMessage() {}
func (*IndexQueries) Descriptor() ([]byte, []int) {
- return fileDescriptor_indeximport_e35abb03a00df740, []int{0}
+ return fileDescriptor_86f07d240f84eb2d, []int{0}
}
func (m *IndexQueries) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -52,8 +52,8 @@ func (m *IndexQueries) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *IndexQueries) XXX_Merge(src proto.Message) {
- xxx_messageInfo_IndexQueries.Merge(dst, src)
+func (m *IndexQueries) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_IndexQueries.Merge(m, src)
}
func (m *IndexQueries) XXX_Size() int {
return m.Size()
@@ -74,6 +74,24 @@ func (m *IndexQueries) GetQueries() []*index.IndexQuery {
func init() {
proto.RegisterType((*IndexQueries)(nil), "indeximport.IndexQueries")
}
+
+func init() { proto.RegisterFile("indeximport.proto", fileDescriptor_86f07d240f84eb2d) }
+
+var fileDescriptor_86f07d240f84eb2d = []byte{
+ // 168 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xcc, 0xcc, 0x4b, 0x49,
+ 0xad, 0xc8, 0xcc, 0x2d, 0xc8, 0x2f, 0x2a, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x46,
+ 0x12, 0x92, 0x72, 0x4e, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf,
+ 0x4f, 0xcf, 0xd7, 0x07, 0xab, 0x49, 0x2a, 0x4d, 0xd3, 0x2f, 0x49, 0x2d, 0x2e, 0xd1, 0x47, 0x52,
+ 0xaa, 0x9b, 0x59, 0x5c, 0x5c, 0x9a, 0x6a, 0x6e, 0x04, 0x11, 0x83, 0x90, 0x10, 0x13, 0xa5, 0x74,
+ 0x71, 0x1a, 0x02, 0xe2, 0x81, 0x39, 0x60, 0x16, 0x44, 0xb9, 0x92, 0x35, 0x17, 0x8f, 0x27, 0x48,
+ 0x77, 0x60, 0x69, 0x6a, 0x51, 0x66, 0x6a, 0xb1, 0x90, 0x36, 0x17, 0x3b, 0x94, 0x29, 0xc1, 0xa8,
+ 0xc0, 0xac, 0xc1, 0x6d, 0x24, 0xa8, 0x07, 0x31, 0x1d, 0xae, 0xaa, 0x32, 0x08, 0xa6, 0xc2, 0x49,
+ 0xe2, 0xc7, 0x43, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x77, 0x3c, 0x92, 0x63, 0x3c, 0xf1, 0x48,
+ 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff,
+ 0xd4, 0x50, 0x15, 0x6f, 0xeb, 0x00, 0x00, 0x00,
+}
+
func (this *IndexQueries) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -281,7 +299,7 @@ func (m *IndexQueries) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -309,7 +327,7 @@ func (m *IndexQueries) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -318,6 +336,9 @@ func (m *IndexQueries) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthIndeximport
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthIndeximport
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -335,6 +356,9 @@ func (m *IndexQueries) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthIndeximport
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthIndeximport
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -402,10 +426,13 @@ func skipIndeximport(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthIndeximport
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthIndeximport
+ }
return iNdEx, nil
case 3:
for {
@@ -434,6 +461,9 @@ func skipIndeximport(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthIndeximport
+ }
}
return iNdEx, nil
case 4:
@@ -452,20 +482,3 @@ var (
ErrInvalidLengthIndeximport = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowIndeximport = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("indeximport.proto", fileDescriptor_indeximport_e35abb03a00df740) }
-
-var fileDescriptor_indeximport_e35abb03a00df740 = []byte{
- // 168 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xcc, 0xcc, 0x4b, 0x49,
- 0xad, 0xc8, 0xcc, 0x2d, 0xc8, 0x2f, 0x2a, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x46,
- 0x12, 0x92, 0x72, 0x4e, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf,
- 0x4f, 0xcf, 0xd7, 0x07, 0xab, 0x49, 0x2a, 0x4d, 0xd3, 0x2f, 0x49, 0x2d, 0x2e, 0xd1, 0x47, 0x52,
- 0xaa, 0x9b, 0x59, 0x5c, 0x5c, 0x9a, 0x6a, 0x6e, 0x04, 0x11, 0x83, 0x90, 0x10, 0x13, 0xa5, 0x74,
- 0x71, 0x1a, 0x02, 0xe2, 0x81, 0x39, 0x60, 0x16, 0x44, 0xb9, 0x92, 0x35, 0x17, 0x8f, 0x27, 0x48,
- 0x77, 0x60, 0x69, 0x6a, 0x51, 0x66, 0x6a, 0xb1, 0x90, 0x36, 0x17, 0x3b, 0x94, 0x29, 0xc1, 0xa8,
- 0xc0, 0xac, 0xc1, 0x6d, 0x24, 0xa8, 0x07, 0x31, 0x1d, 0xae, 0xaa, 0x32, 0x08, 0xa6, 0xc2, 0x49,
- 0xe2, 0xc7, 0x43, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x77, 0x3c, 0x92, 0x63, 0x3c, 0xf1, 0x48,
- 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff,
- 0xd4, 0x50, 0x15, 0x6f, 0xeb, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/int64support/object.pb.go b/vendor/github.com/gogo/protobuf/test/int64support/object.pb.go
index 52e9a5632f..52f7946528 100644
--- a/vendor/github.com/gogo/protobuf/test/int64support/object.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/int64support/object.pb.go
@@ -3,15 +3,15 @@
package int64support
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -33,7 +33,7 @@ type Object struct {
func (m *Object) Reset() { *m = Object{} }
func (*Object) ProtoMessage() {}
func (*Object) Descriptor() ([]byte, []int) {
- return fileDescriptor_object_9a4b0c2b004c02f9, []int{0}
+ return fileDescriptor_41d48463eef19a5f, []int{0}
}
func (m *Object) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -50,8 +50,8 @@ func (m *Object) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Object) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Object.Merge(dst, src)
+func (m *Object) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Object.Merge(m, src)
}
func (m *Object) XXX_Size() int {
return m.Size()
@@ -72,6 +72,25 @@ func (m *Object) GetOptionalNumber() int64 {
func init() {
proto.RegisterType((*Object)(nil), "int64support.Object")
}
+
+func init() { proto.RegisterFile("object.proto", fileDescriptor_41d48463eef19a5f) }
+
+var fileDescriptor_41d48463eef19a5f = []byte{
+ // 190 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xc9, 0x4f, 0xca, 0x4a,
+ 0x4d, 0x2e, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xc9, 0xcc, 0x2b, 0x31, 0x33, 0x29,
+ 0x2e, 0x2d, 0x28, 0xc8, 0x2f, 0x2a, 0x91, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b,
+ 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0x2b, 0x4a, 0x2a, 0x4d, 0x03, 0xf3, 0xc0,
+ 0x1c, 0x30, 0x0b, 0xa2, 0x59, 0xc9, 0x90, 0x8b, 0xcd, 0x1f, 0x6c, 0x98, 0x90, 0x3a, 0x17, 0x7f,
+ 0x7e, 0x41, 0x49, 0x66, 0x7e, 0x5e, 0x62, 0x4e, 0x7c, 0x5e, 0x69, 0x6e, 0x52, 0x6a, 0x91, 0x04,
+ 0xa3, 0x02, 0xa3, 0x06, 0x73, 0x10, 0x1f, 0x4c, 0xd8, 0x0f, 0x2c, 0xea, 0xe4, 0x75, 0xe1, 0xa1,
+ 0x1c, 0xc3, 0x8d, 0x87, 0x72, 0x0c, 0x0f, 0x1e, 0xca, 0x31, 0x7e, 0x78, 0x28, 0xc7, 0xf8, 0xe3,
+ 0xa1, 0x1c, 0x63, 0xc3, 0x23, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x77, 0x3c, 0x92, 0x63, 0x3c,
+ 0xf0, 0x48, 0x8e, 0xf1, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f, 0x3c, 0x92, 0x63,
+ 0x7c, 0xf1, 0x48, 0x8e, 0xe1, 0xc3, 0x23, 0x39, 0xc6, 0x09, 0x8f, 0xe5, 0x18, 0xa2, 0x50, 0x5c,
+ 0x0b, 0x08, 0x00, 0x00, 0xff, 0xff, 0x73, 0x60, 0x3c, 0xd6, 0xca, 0x00, 0x00, 0x00,
+}
+
func (this *Object) VerboseEqual(that interface{}) error {
if that == nil {
if this == nil {
@@ -334,7 +353,7 @@ func (m *Object) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -362,7 +381,7 @@ func (m *Object) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -377,6 +396,9 @@ func (m *Object) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthObject
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthObject
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -443,10 +465,13 @@ func skipObject(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthObject
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthObject
+ }
return iNdEx, nil
case 3:
for {
@@ -475,6 +500,9 @@ func skipObject(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthObject
+ }
}
return iNdEx, nil
case 4:
@@ -493,21 +521,3 @@ var (
ErrInvalidLengthObject = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowObject = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("object.proto", fileDescriptor_object_9a4b0c2b004c02f9) }
-
-var fileDescriptor_object_9a4b0c2b004c02f9 = []byte{
- // 190 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xc9, 0x4f, 0xca, 0x4a,
- 0x4d, 0x2e, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xc9, 0xcc, 0x2b, 0x31, 0x33, 0x29,
- 0x2e, 0x2d, 0x28, 0xc8, 0x2f, 0x2a, 0x91, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b,
- 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0x2b, 0x4a, 0x2a, 0x4d, 0x03, 0xf3, 0xc0,
- 0x1c, 0x30, 0x0b, 0xa2, 0x59, 0xc9, 0x90, 0x8b, 0xcd, 0x1f, 0x6c, 0x98, 0x90, 0x3a, 0x17, 0x7f,
- 0x7e, 0x41, 0x49, 0x66, 0x7e, 0x5e, 0x62, 0x4e, 0x7c, 0x5e, 0x69, 0x6e, 0x52, 0x6a, 0x91, 0x04,
- 0xa3, 0x02, 0xa3, 0x06, 0x73, 0x10, 0x1f, 0x4c, 0xd8, 0x0f, 0x2c, 0xea, 0xe4, 0x75, 0xe1, 0xa1,
- 0x1c, 0xc3, 0x8d, 0x87, 0x72, 0x0c, 0x0f, 0x1e, 0xca, 0x31, 0x7e, 0x78, 0x28, 0xc7, 0xf8, 0xe3,
- 0xa1, 0x1c, 0x63, 0xc3, 0x23, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x77, 0x3c, 0x92, 0x63, 0x3c,
- 0xf0, 0x48, 0x8e, 0xf1, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f, 0x3c, 0x92, 0x63,
- 0x7c, 0xf1, 0x48, 0x8e, 0xe1, 0xc3, 0x23, 0x39, 0xc6, 0x09, 0x8f, 0xe5, 0x18, 0xa2, 0x50, 0x5c,
- 0x0b, 0x08, 0x00, 0x00, 0xff, 0xff, 0x73, 0x60, 0x3c, 0xd6, 0xca, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/issue260/issue260.pb.go b/vendor/github.com/gogo/protobuf/test/issue260/issue260.pb.go
index 67968b307a..eb9fd560cf 100644
--- a/vendor/github.com/gogo/protobuf/test/issue260/issue260.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/issue260/issue260.pb.go
@@ -3,17 +3,16 @@
package issue260
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import _ "github.com/gogo/protobuf/types"
-
-import time "time"
-
-import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
-
-import io "io"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ _ "github.com/gogo/protobuf/types"
+ github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
+ io "io"
+ math "math"
+ time "time"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -31,7 +30,7 @@ func (m *Dropped) Reset() { *m = Dropped{} }
func (m *Dropped) String() string { return proto.CompactTextString(m) }
func (*Dropped) ProtoMessage() {}
func (*Dropped) Descriptor() ([]byte, []int) {
- return fileDescriptor_issue260_6a5b9ffe9baf64cb, []int{0}
+ return fileDescriptor_750763c054810c1d, []int{0}
}
func (m *Dropped) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -48,8 +47,8 @@ func (m *Dropped) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Dropped) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Dropped.Merge(dst, src)
+func (m *Dropped) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Dropped.Merge(m, src)
}
func (m *Dropped) XXX_Size() int {
return m.Size()
@@ -78,7 +77,7 @@ func (m *DroppedWithoutGetters) Reset() { *m = DroppedWithoutGetters{} }
func (m *DroppedWithoutGetters) String() string { return proto.CompactTextString(m) }
func (*DroppedWithoutGetters) ProtoMessage() {}
func (*DroppedWithoutGetters) Descriptor() ([]byte, []int) {
- return fileDescriptor_issue260_6a5b9ffe9baf64cb, []int{1}
+ return fileDescriptor_750763c054810c1d, []int{1}
}
func (m *DroppedWithoutGetters) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -95,8 +94,8 @@ func (m *DroppedWithoutGetters) XXX_Marshal(b []byte, deterministic bool) ([]byt
return b[:n], nil
}
}
-func (dst *DroppedWithoutGetters) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DroppedWithoutGetters.Merge(dst, src)
+func (m *DroppedWithoutGetters) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DroppedWithoutGetters.Merge(m, src)
}
func (m *DroppedWithoutGetters) XXX_Size() int {
return m.Size()
@@ -118,7 +117,7 @@ func (m *Kept) Reset() { *m = Kept{} }
func (m *Kept) String() string { return proto.CompactTextString(m) }
func (*Kept) ProtoMessage() {}
func (*Kept) Descriptor() ([]byte, []int) {
- return fileDescriptor_issue260_6a5b9ffe9baf64cb, []int{2}
+ return fileDescriptor_750763c054810c1d, []int{2}
}
func (m *Kept) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -135,8 +134,8 @@ func (m *Kept) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Kept) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Kept.Merge(dst, src)
+func (m *Kept) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Kept.Merge(m, src)
}
func (m *Kept) XXX_Size() int {
return m.Size()
@@ -166,6 +165,33 @@ func init() {
proto.RegisterType((*DroppedWithoutGetters)(nil), "issue260.DroppedWithoutGetters")
proto.RegisterType((*Kept)(nil), "issue260.Kept")
}
+
+func init() { proto.RegisterFile("issue260.proto", fileDescriptor_750763c054810c1d) }
+
+var fileDescriptor_750763c054810c1d = []byte{
+ // 307 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e,
+ 0x4d, 0x35, 0x32, 0x33, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
+ 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5,
+ 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x94, 0x92, 0x4f, 0xcf,
+ 0xcf, 0x4f, 0xcf, 0x49, 0x45, 0xa8, 0x2a, 0xc9, 0xcc, 0x4d, 0x2d, 0x2e, 0x49, 0xcc, 0x2d, 0x80,
+ 0x28, 0x50, 0x32, 0xe5, 0x62, 0x77, 0x29, 0xca, 0x2f, 0x28, 0x48, 0x4d, 0x11, 0x12, 0xe2, 0x62,
+ 0xc9, 0x4b, 0xcc, 0x4d, 0x95, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x0c, 0x02, 0xb3, 0x85, 0x04, 0xb8,
+ 0x98, 0x13, 0xd3, 0x53, 0x25, 0x98, 0x14, 0x18, 0x35, 0x58, 0x83, 0x40, 0x4c, 0x2b, 0x96, 0x0f,
+ 0x0b, 0xe5, 0x19, 0x94, 0x26, 0x33, 0x72, 0x89, 0x42, 0xf5, 0x85, 0x67, 0x96, 0x64, 0xe4, 0x97,
+ 0x96, 0xb8, 0xa7, 0x96, 0x94, 0xa4, 0x16, 0x15, 0x0b, 0x89, 0x71, 0xb1, 0x65, 0xa4, 0x66, 0xa6,
+ 0x67, 0x94, 0x80, 0xcd, 0x61, 0x0e, 0x82, 0xf2, 0x84, 0x44, 0xb8, 0x58, 0xcb, 0x33, 0x53, 0x4a,
+ 0x32, 0xc0, 0x66, 0x31, 0x07, 0x41, 0x38, 0x42, 0x4e, 0x5c, 0x9c, 0x70, 0x17, 0x49, 0x30, 0x2b,
+ 0x30, 0x6a, 0x70, 0x1b, 0x49, 0xe9, 0x41, 0xdc, 0xac, 0x07, 0x73, 0xb3, 0x5e, 0x08, 0x4c, 0x85,
+ 0x13, 0xc7, 0x89, 0x7b, 0xf2, 0x0c, 0x13, 0xee, 0xcb, 0x33, 0x06, 0x21, 0xb4, 0x59, 0x71, 0x74,
+ 0x2c, 0x90, 0x67, 0x00, 0xbb, 0x4a, 0x87, 0x8b, 0xc5, 0x3b, 0xb5, 0xa0, 0x84, 0x38, 0x9f, 0x38,
+ 0xe9, 0x3c, 0x78, 0x28, 0xc7, 0xf8, 0xe3, 0xa1, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x1e,
+ 0xc9, 0x31, 0x1e, 0x78, 0x24, 0xc7, 0x78, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f,
+ 0x1e, 0xc9, 0x31, 0xfe, 0x78, 0x24, 0xc7, 0xd0, 0xf0, 0x58, 0x8e, 0x61, 0xc2, 0x63, 0x39, 0x86,
+ 0x24, 0x36, 0xb0, 0x73, 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x3e, 0x88, 0xbf, 0x62, 0x9b,
+ 0x01, 0x00, 0x00,
+}
+
func (this *Dropped) VerboseEqual(that interface{}) error {
if that == nil {
if this == nil {
@@ -645,7 +671,7 @@ func (m *Dropped) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -673,7 +699,7 @@ func (m *Dropped) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -683,6 +709,9 @@ func (m *Dropped) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthIssue260
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthIssue260
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -702,7 +731,7 @@ func (m *Dropped) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Age |= (int32(b) & 0x7F) << shift
+ m.Age |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -716,6 +745,9 @@ func (m *Dropped) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthIssue260
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthIssue260
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -743,7 +775,7 @@ func (m *DroppedWithoutGetters) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -771,7 +803,7 @@ func (m *DroppedWithoutGetters) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Height |= (int64(b) & 0x7F) << shift
+ m.Height |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -790,7 +822,7 @@ func (m *DroppedWithoutGetters) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Width |= (int64(b) & 0x7F) << shift
+ m.Width |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -809,7 +841,7 @@ func (m *DroppedWithoutGetters) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -818,6 +850,9 @@ func (m *DroppedWithoutGetters) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthIssue260
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthIssue260
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -834,6 +869,9 @@ func (m *DroppedWithoutGetters) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthIssue260
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthIssue260
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -861,7 +899,7 @@ func (m *Kept) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -889,7 +927,7 @@ func (m *Kept) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -899,6 +937,9 @@ func (m *Kept) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthIssue260
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthIssue260
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -918,7 +959,7 @@ func (m *Kept) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Age |= (int32(b) & 0x7F) << shift
+ m.Age |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -932,6 +973,9 @@ func (m *Kept) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthIssue260
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthIssue260
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -998,10 +1042,13 @@ func skipIssue260(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthIssue260
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthIssue260
+ }
return iNdEx, nil
case 3:
for {
@@ -1030,6 +1077,9 @@ func skipIssue260(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthIssue260
+ }
}
return iNdEx, nil
case 4:
@@ -1048,29 +1098,3 @@ var (
ErrInvalidLengthIssue260 = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowIssue260 = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("issue260.proto", fileDescriptor_issue260_6a5b9ffe9baf64cb) }
-
-var fileDescriptor_issue260_6a5b9ffe9baf64cb = []byte{
- // 307 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e,
- 0x4d, 0x35, 0x32, 0x33, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
- 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5,
- 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x94, 0x92, 0x4f, 0xcf,
- 0xcf, 0x4f, 0xcf, 0x49, 0x45, 0xa8, 0x2a, 0xc9, 0xcc, 0x4d, 0x2d, 0x2e, 0x49, 0xcc, 0x2d, 0x80,
- 0x28, 0x50, 0x32, 0xe5, 0x62, 0x77, 0x29, 0xca, 0x2f, 0x28, 0x48, 0x4d, 0x11, 0x12, 0xe2, 0x62,
- 0xc9, 0x4b, 0xcc, 0x4d, 0x95, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x0c, 0x02, 0xb3, 0x85, 0x04, 0xb8,
- 0x98, 0x13, 0xd3, 0x53, 0x25, 0x98, 0x14, 0x18, 0x35, 0x58, 0x83, 0x40, 0x4c, 0x2b, 0x96, 0x0f,
- 0x0b, 0xe5, 0x19, 0x94, 0x26, 0x33, 0x72, 0x89, 0x42, 0xf5, 0x85, 0x67, 0x96, 0x64, 0xe4, 0x97,
- 0x96, 0xb8, 0xa7, 0x96, 0x94, 0xa4, 0x16, 0x15, 0x0b, 0x89, 0x71, 0xb1, 0x65, 0xa4, 0x66, 0xa6,
- 0x67, 0x94, 0x80, 0xcd, 0x61, 0x0e, 0x82, 0xf2, 0x84, 0x44, 0xb8, 0x58, 0xcb, 0x33, 0x53, 0x4a,
- 0x32, 0xc0, 0x66, 0x31, 0x07, 0x41, 0x38, 0x42, 0x4e, 0x5c, 0x9c, 0x70, 0x17, 0x49, 0x30, 0x2b,
- 0x30, 0x6a, 0x70, 0x1b, 0x49, 0xe9, 0x41, 0xdc, 0xac, 0x07, 0x73, 0xb3, 0x5e, 0x08, 0x4c, 0x85,
- 0x13, 0xc7, 0x89, 0x7b, 0xf2, 0x0c, 0x13, 0xee, 0xcb, 0x33, 0x06, 0x21, 0xb4, 0x59, 0x71, 0x74,
- 0x2c, 0x90, 0x67, 0x00, 0xbb, 0x4a, 0x87, 0x8b, 0xc5, 0x3b, 0xb5, 0xa0, 0x84, 0x38, 0x9f, 0x38,
- 0xe9, 0x3c, 0x78, 0x28, 0xc7, 0xf8, 0xe3, 0xa1, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x1e,
- 0xc9, 0x31, 0x1e, 0x78, 0x24, 0xc7, 0x78, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f,
- 0x1e, 0xc9, 0x31, 0xfe, 0x78, 0x24, 0xc7, 0xd0, 0xf0, 0x58, 0x8e, 0x61, 0xc2, 0x63, 0x39, 0x86,
- 0x24, 0x36, 0xb0, 0x73, 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x3e, 0x88, 0xbf, 0x62, 0x9b,
- 0x01, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/issue261/issue261.pb.go b/vendor/github.com/gogo/protobuf/test/issue261/issue261.pb.go
index 187a7841d5..71a2c07ac1 100644
--- a/vendor/github.com/gogo/protobuf/test/issue261/issue261.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/issue261/issue261.pb.go
@@ -3,21 +3,19 @@
package issue261
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import _ "github.com/gogo/protobuf/types"
-
-import time "time"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-
-import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
-
-import io "io"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ _ "github.com/gogo/protobuf/types"
+ github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+ time "time"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -38,7 +36,7 @@ type MapStdTypes struct {
func (m *MapStdTypes) Reset() { *m = MapStdTypes{} }
func (*MapStdTypes) ProtoMessage() {}
func (*MapStdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_issue261_73ccdf10d7017cb8, []int{0}
+ return fileDescriptor_35fa31fa2023935a, []int{0}
}
func (m *MapStdTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -55,8 +53,8 @@ func (m *MapStdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *MapStdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MapStdTypes.Merge(dst, src)
+func (m *MapStdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MapStdTypes.Merge(m, src)
}
func (m *MapStdTypes) XXX_Size() int {
return m.Size()
@@ -78,6 +76,31 @@ func init() {
proto.RegisterType((*MapStdTypes)(nil), "issue261.MapStdTypes")
proto.RegisterMapType((map[int32]*time.Duration)(nil), "issue261.MapStdTypes.NullableDurationEntry")
}
+
+func init() { proto.RegisterFile("issue261.proto", fileDescriptor_35fa31fa2023935a) }
+
+var fileDescriptor_35fa31fa2023935a = []byte{
+ // 275 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e,
+ 0x4d, 0x35, 0x32, 0x33, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
+ 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5,
+ 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x94, 0x92, 0x4b, 0xcf,
+ 0xcf, 0x4f, 0xcf, 0x49, 0x45, 0xa8, 0x4a, 0x29, 0x2d, 0x4a, 0x2c, 0xc9, 0xcc, 0xcf, 0x83, 0xc8,
+ 0x2b, 0x9d, 0x61, 0xe4, 0xe2, 0xf6, 0x4d, 0x2c, 0x08, 0x2e, 0x49, 0x09, 0xa9, 0x2c, 0x48, 0x2d,
+ 0x16, 0x8a, 0xe5, 0x12, 0xc8, 0x2b, 0xcd, 0xc9, 0x49, 0x4c, 0xca, 0x49, 0x75, 0x81, 0xaa, 0x94,
+ 0x60, 0x56, 0x60, 0xd6, 0xe0, 0x36, 0xd2, 0xd6, 0x83, 0xbb, 0x09, 0x49, 0x83, 0x9e, 0x1f, 0x9a,
+ 0x6a, 0xd7, 0xbc, 0x92, 0xa2, 0x4a, 0x27, 0x96, 0x19, 0xf7, 0xe5, 0x19, 0x83, 0x30, 0x8c, 0x92,
+ 0x8a, 0xe3, 0x12, 0xc5, 0xaa, 0x41, 0x48, 0x80, 0x8b, 0x39, 0x3b, 0xb5, 0x52, 0x82, 0x51, 0x81,
+ 0x51, 0x83, 0x35, 0x08, 0xc4, 0x14, 0xd2, 0xe7, 0x62, 0x2d, 0x4b, 0xcc, 0x29, 0x4d, 0x95, 0x60,
+ 0x52, 0x60, 0xd4, 0xe0, 0x36, 0x92, 0xd4, 0x83, 0xf8, 0x44, 0x0f, 0xe6, 0x13, 0x3d, 0x98, 0x01,
+ 0x41, 0x10, 0x75, 0x56, 0x4c, 0x16, 0x8c, 0x4e, 0x26, 0x17, 0x1e, 0xca, 0x31, 0xdc, 0x78, 0x28,
+ 0xc7, 0xf0, 0xe1, 0xa1, 0x1c, 0x63, 0xc3, 0x23, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x4f, 0x3c,
+ 0x92, 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, 0x17, 0x8f, 0xe4, 0x18, 0x3e,
+ 0x3c, 0x92, 0x63, 0x9c, 0xf0, 0x58, 0x8e, 0xe1, 0xc2, 0x63, 0x39, 0x86, 0x1b, 0x8f, 0xe5, 0x18,
+ 0x92, 0xd8, 0xc0, 0x66, 0x1a, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0xa0, 0x4d, 0xcb, 0xf5, 0x76,
+ 0x01, 0x00, 0x00,
+}
+
func (this *MapStdTypes) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -269,7 +292,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -297,7 +320,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -306,6 +329,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthIssue261
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthIssue261
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -326,7 +352,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -342,7 +368,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -358,7 +384,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -367,7 +393,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthIssue261
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthIssue261
}
if postmsgIndex > l {
@@ -403,6 +429,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthIssue261
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthIssue261
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -469,10 +498,13 @@ func skipIssue261(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthIssue261
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthIssue261
+ }
return iNdEx, nil
case 3:
for {
@@ -501,6 +533,9 @@ func skipIssue261(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthIssue261
+ }
}
return iNdEx, nil
case 4:
@@ -519,27 +554,3 @@ var (
ErrInvalidLengthIssue261 = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowIssue261 = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("issue261.proto", fileDescriptor_issue261_73ccdf10d7017cb8) }
-
-var fileDescriptor_issue261_73ccdf10d7017cb8 = []byte{
- // 275 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e,
- 0x4d, 0x35, 0x32, 0x33, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
- 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5,
- 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x94, 0x92, 0x4b, 0xcf,
- 0xcf, 0x4f, 0xcf, 0x49, 0x45, 0xa8, 0x4a, 0x29, 0x2d, 0x4a, 0x2c, 0xc9, 0xcc, 0xcf, 0x83, 0xc8,
- 0x2b, 0x9d, 0x61, 0xe4, 0xe2, 0xf6, 0x4d, 0x2c, 0x08, 0x2e, 0x49, 0x09, 0xa9, 0x2c, 0x48, 0x2d,
- 0x16, 0x8a, 0xe5, 0x12, 0xc8, 0x2b, 0xcd, 0xc9, 0x49, 0x4c, 0xca, 0x49, 0x75, 0x81, 0xaa, 0x94,
- 0x60, 0x56, 0x60, 0xd6, 0xe0, 0x36, 0xd2, 0xd6, 0x83, 0xbb, 0x09, 0x49, 0x83, 0x9e, 0x1f, 0x9a,
- 0x6a, 0xd7, 0xbc, 0x92, 0xa2, 0x4a, 0x27, 0x96, 0x19, 0xf7, 0xe5, 0x19, 0x83, 0x30, 0x8c, 0x92,
- 0x8a, 0xe3, 0x12, 0xc5, 0xaa, 0x41, 0x48, 0x80, 0x8b, 0x39, 0x3b, 0xb5, 0x52, 0x82, 0x51, 0x81,
- 0x51, 0x83, 0x35, 0x08, 0xc4, 0x14, 0xd2, 0xe7, 0x62, 0x2d, 0x4b, 0xcc, 0x29, 0x4d, 0x95, 0x60,
- 0x52, 0x60, 0xd4, 0xe0, 0x36, 0x92, 0xd4, 0x83, 0xf8, 0x44, 0x0f, 0xe6, 0x13, 0x3d, 0x98, 0x01,
- 0x41, 0x10, 0x75, 0x56, 0x4c, 0x16, 0x8c, 0x4e, 0x26, 0x17, 0x1e, 0xca, 0x31, 0xdc, 0x78, 0x28,
- 0xc7, 0xf0, 0xe1, 0xa1, 0x1c, 0x63, 0xc3, 0x23, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x4f, 0x3c,
- 0x92, 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, 0x17, 0x8f, 0xe4, 0x18, 0x3e,
- 0x3c, 0x92, 0x63, 0x9c, 0xf0, 0x58, 0x8e, 0xe1, 0xc2, 0x63, 0x39, 0x86, 0x1b, 0x8f, 0xe5, 0x18,
- 0x92, 0xd8, 0xc0, 0x66, 0x1a, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0xa0, 0x4d, 0xcb, 0xf5, 0x76,
- 0x01, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/issue262/timefail.pb.go b/vendor/github.com/gogo/protobuf/test/issue262/timefail.pb.go
index d7459d8da7..e15b3f23c9 100644
--- a/vendor/github.com/gogo/protobuf/test/issue262/timefail.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/issue262/timefail.pb.go
@@ -3,20 +3,18 @@
package timefail
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import _ "github.com/gogo/protobuf/types"
-
-import time "time"
-
-import strings "strings"
-import reflect "reflect"
-
-import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
-
-import io "io"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ _ "github.com/gogo/protobuf/types"
+ github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+ time "time"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -37,7 +35,7 @@ type TimeFail struct {
func (m *TimeFail) Reset() { *m = TimeFail{} }
func (*TimeFail) ProtoMessage() {}
func (*TimeFail) Descriptor() ([]byte, []int) {
- return fileDescriptor_timefail_9e133aed3973196e, []int{0}
+ return fileDescriptor_395e61815f86626a, []int{0}
}
func (m *TimeFail) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -54,8 +52,8 @@ func (m *TimeFail) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *TimeFail) XXX_Merge(src proto.Message) {
- xxx_messageInfo_TimeFail.Merge(dst, src)
+func (m *TimeFail) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_TimeFail.Merge(m, src)
}
func (m *TimeFail) XXX_Size() int {
return m.Size()
@@ -76,6 +74,27 @@ func (m *TimeFail) GetTimeTest() *time.Time {
func init() {
proto.RegisterType((*TimeFail)(nil), "timefail.TimeFail")
}
+
+func init() { proto.RegisterFile("timefail.proto", fileDescriptor_395e61815f86626a) }
+
+var fileDescriptor_395e61815f86626a = []byte{
+ // 210 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2b, 0xc9, 0xcc, 0x4d,
+ 0x4d, 0x4b, 0xcc, 0xcc, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
+ 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5,
+ 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x94, 0x92, 0x4f, 0xcf,
+ 0xcf, 0x4f, 0xcf, 0x49, 0x45, 0xa8, 0x02, 0x19, 0x54, 0x5c, 0x92, 0x98, 0x5b, 0x00, 0x51, 0xa0,
+ 0xe4, 0xc9, 0xc5, 0x11, 0x92, 0x99, 0x9b, 0xea, 0x96, 0x98, 0x99, 0x23, 0x64, 0xcb, 0xc5, 0x09,
+ 0x92, 0x8e, 0x2f, 0x49, 0x2d, 0x2e, 0x91, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x36, 0x92, 0xd2, 0x83,
+ 0x18, 0xa0, 0x07, 0x33, 0x40, 0x2f, 0x04, 0x66, 0x80, 0x13, 0xcb, 0x84, 0xfb, 0xf2, 0x8c, 0x41,
+ 0x60, 0xa7, 0x85, 0xa4, 0x16, 0x97, 0x38, 0x99, 0x5c, 0x78, 0x28, 0xc7, 0x70, 0xe3, 0xa1, 0x1c,
+ 0xc3, 0x87, 0x87, 0x72, 0x8c, 0x0d, 0x8f, 0xe4, 0x18, 0x57, 0x3c, 0x92, 0x63, 0x3c, 0xf1, 0x48,
+ 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x5f, 0x3c, 0x92, 0x63, 0xf8, 0xf0,
+ 0x48, 0x8e, 0x71, 0xc2, 0x63, 0x39, 0x86, 0x0b, 0x8f, 0xe5, 0x18, 0x6e, 0x3c, 0x96, 0x63, 0x48,
+ 0x62, 0x03, 0x9b, 0x6c, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x43, 0x63, 0x18, 0x5f, 0xf3, 0x00,
+ 0x00, 0x00,
+}
+
func (this *TimeFail) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -218,7 +237,7 @@ func (m *TimeFail) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -246,7 +265,7 @@ func (m *TimeFail) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -255,6 +274,9 @@ func (m *TimeFail) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTimefail
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTimefail
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -274,6 +296,9 @@ func (m *TimeFail) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTimefail
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTimefail
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -340,10 +365,13 @@ func skipTimefail(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthTimefail
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthTimefail
+ }
return iNdEx, nil
case 3:
for {
@@ -372,6 +400,9 @@ func skipTimefail(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthTimefail
+ }
}
return iNdEx, nil
case 4:
@@ -390,23 +421,3 @@ var (
ErrInvalidLengthTimefail = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowTimefail = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("timefail.proto", fileDescriptor_timefail_9e133aed3973196e) }
-
-var fileDescriptor_timefail_9e133aed3973196e = []byte{
- // 210 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2b, 0xc9, 0xcc, 0x4d,
- 0x4d, 0x4b, 0xcc, 0xcc, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
- 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5,
- 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x94, 0x92, 0x4f, 0xcf,
- 0xcf, 0x4f, 0xcf, 0x49, 0x45, 0xa8, 0x02, 0x19, 0x54, 0x5c, 0x92, 0x98, 0x5b, 0x00, 0x51, 0xa0,
- 0xe4, 0xc9, 0xc5, 0x11, 0x92, 0x99, 0x9b, 0xea, 0x96, 0x98, 0x99, 0x23, 0x64, 0xcb, 0xc5, 0x09,
- 0x92, 0x8e, 0x2f, 0x49, 0x2d, 0x2e, 0x91, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x36, 0x92, 0xd2, 0x83,
- 0x18, 0xa0, 0x07, 0x33, 0x40, 0x2f, 0x04, 0x66, 0x80, 0x13, 0xcb, 0x84, 0xfb, 0xf2, 0x8c, 0x41,
- 0x60, 0xa7, 0x85, 0xa4, 0x16, 0x97, 0x38, 0x99, 0x5c, 0x78, 0x28, 0xc7, 0x70, 0xe3, 0xa1, 0x1c,
- 0xc3, 0x87, 0x87, 0x72, 0x8c, 0x0d, 0x8f, 0xe4, 0x18, 0x57, 0x3c, 0x92, 0x63, 0x3c, 0xf1, 0x48,
- 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x5f, 0x3c, 0x92, 0x63, 0xf8, 0xf0,
- 0x48, 0x8e, 0x71, 0xc2, 0x63, 0x39, 0x86, 0x0b, 0x8f, 0xe5, 0x18, 0x6e, 0x3c, 0x96, 0x63, 0x48,
- 0x62, 0x03, 0x9b, 0x6c, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x43, 0x63, 0x18, 0x5f, 0xf3, 0x00,
- 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/issue312/events/events.pb.go b/vendor/github.com/gogo/protobuf/test/issue312/events/events.pb.go
index 9f4abb12b3..7cef7b9efc 100644
--- a/vendor/github.com/gogo/protobuf/test/issue312/events/events.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/issue312/events/events.pb.go
@@ -3,16 +3,16 @@
package events
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import issue312 "github.com/gogo/protobuf/test/issue312"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ issue312 "github.com/gogo/protobuf/test/issue312"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -36,7 +36,7 @@ func (m *Subtype) Reset() { *m = Subtype{} }
func (m *Subtype) String() string { return proto.CompactTextString(m) }
func (*Subtype) ProtoMessage() {}
func (*Subtype) Descriptor() ([]byte, []int) {
- return fileDescriptor_events_4681b5f19350f6a9, []int{0}
+ return fileDescriptor_8f22242cb04491f9, []int{0}
}
func (m *Subtype) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Subtype.Unmarshal(m, b)
@@ -44,8 +44,8 @@ func (m *Subtype) XXX_Unmarshal(b []byte) error {
func (m *Subtype) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Subtype.Marshal(b, m, deterministic)
}
-func (dst *Subtype) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Subtype.Merge(dst, src)
+func (m *Subtype) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Subtype.Merge(m, src)
}
func (m *Subtype) XXX_Size() int {
return xxx_messageInfo_Subtype.Size(m)
@@ -66,6 +66,24 @@ func (m *Subtype) GetState() issue312.TaskState {
func init() {
proto.RegisterType((*Subtype)(nil), "issue312.events.Subtype")
}
+
+func init() { proto.RegisterFile("events.proto", fileDescriptor_8f22242cb04491f9) }
+
+var fileDescriptor_8f22242cb04491f9 = []byte{
+ // 162 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x49, 0x2d, 0x4b, 0xcd,
+ 0x2b, 0x29, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xcf, 0x2c, 0x2e, 0x2e, 0x4d, 0x35,
+ 0x36, 0x34, 0xd2, 0x83, 0x08, 0x4b, 0x99, 0xa6, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7,
+ 0xe7, 0xea, 0xa7, 0xe7, 0xa7, 0xe7, 0xeb, 0x83, 0xd5, 0x25, 0x95, 0xa6, 0xe9, 0x97, 0xa4, 0x16,
+ 0x97, 0xe8, 0xc3, 0x94, 0xc3, 0x19, 0x10, 0x73, 0xa4, 0x74, 0x71, 0x6a, 0x03, 0xf1, 0xc0, 0x1c,
+ 0x30, 0x0b, 0xa2, 0x5c, 0xc9, 0x84, 0x8b, 0x3d, 0xb8, 0x34, 0xa9, 0xa4, 0xb2, 0x20, 0x55, 0x48,
+ 0x93, 0x8b, 0xb5, 0xb8, 0x24, 0xb1, 0x24, 0x55, 0x82, 0x45, 0x81, 0x51, 0x83, 0xcf, 0x48, 0x58,
+ 0x0f, 0x6e, 0x72, 0x48, 0x62, 0x71, 0x76, 0x30, 0x48, 0x2a, 0x08, 0xa2, 0xc2, 0x49, 0xe2, 0xc3,
+ 0x43, 0x39, 0xc6, 0x1f, 0x0f, 0xe5, 0x18, 0x57, 0x3c, 0x92, 0x63, 0xdc, 0xf1, 0x48, 0x8e, 0x31,
+ 0x8a, 0x0d, 0xe2, 0x6a, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x99, 0x76, 0xdc, 0x82, 0xd5, 0x00,
+ 0x00, 0x00,
+}
+
func (this *Subtype) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -206,20 +224,3 @@ func encodeVarintPopulateEvents(dAtA []byte, v uint64) []byte {
dAtA = append(dAtA, uint8(v))
return dAtA
}
-
-func init() { proto.RegisterFile("events.proto", fileDescriptor_events_4681b5f19350f6a9) }
-
-var fileDescriptor_events_4681b5f19350f6a9 = []byte{
- // 162 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x49, 0x2d, 0x4b, 0xcd,
- 0x2b, 0x29, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xcf, 0x2c, 0x2e, 0x2e, 0x4d, 0x35,
- 0x36, 0x34, 0xd2, 0x83, 0x08, 0x4b, 0x99, 0xa6, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7,
- 0xe7, 0xea, 0xa7, 0xe7, 0xa7, 0xe7, 0xeb, 0x83, 0xd5, 0x25, 0x95, 0xa6, 0xe9, 0x97, 0xa4, 0x16,
- 0x97, 0xe8, 0xc3, 0x94, 0xc3, 0x19, 0x10, 0x73, 0xa4, 0x74, 0x71, 0x6a, 0x03, 0xf1, 0xc0, 0x1c,
- 0x30, 0x0b, 0xa2, 0x5c, 0xc9, 0x84, 0x8b, 0x3d, 0xb8, 0x34, 0xa9, 0xa4, 0xb2, 0x20, 0x55, 0x48,
- 0x93, 0x8b, 0xb5, 0xb8, 0x24, 0xb1, 0x24, 0x55, 0x82, 0x45, 0x81, 0x51, 0x83, 0xcf, 0x48, 0x58,
- 0x0f, 0x6e, 0x72, 0x48, 0x62, 0x71, 0x76, 0x30, 0x48, 0x2a, 0x08, 0xa2, 0xc2, 0x49, 0xe2, 0xc3,
- 0x43, 0x39, 0xc6, 0x1f, 0x0f, 0xe5, 0x18, 0x57, 0x3c, 0x92, 0x63, 0xdc, 0xf1, 0x48, 0x8e, 0x31,
- 0x8a, 0x0d, 0xe2, 0x6a, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x99, 0x76, 0xdc, 0x82, 0xd5, 0x00,
- 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/issue312/issue312.pb.go b/vendor/github.com/gogo/protobuf/test/issue312/issue312.pb.go
index 98b0142c44..b8673d907a 100644
--- a/vendor/github.com/gogo/protobuf/test/issue312/issue312.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/issue312/issue312.pb.go
@@ -3,10 +3,12 @@
package issue312
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -32,6 +34,7 @@ var TaskState_name = map[int32]string{
0: "TASK_STARTING",
1: "TASK_RUNNING",
}
+
var TaskState_value = map[string]int32{
"TASK_STAGING": 6,
"TASK_STARTING": 0,
@@ -43,9 +46,11 @@ func (x TaskState) Enum() *TaskState {
*p = x
return p
}
+
func (x TaskState) String() string {
return proto.EnumName(TaskState_name, int32(x))
}
+
func (x *TaskState) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(TaskState_value, data, "TaskState")
if err != nil {
@@ -54,17 +59,18 @@ func (x *TaskState) UnmarshalJSON(data []byte) error {
*x = TaskState(value)
return nil
}
+
func (TaskState) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_issue312_ffe23d3d41bbbf36, []int{0}
+ return fileDescriptor_8a64932ccacef062, []int{0}
}
func init() {
proto.RegisterEnum("issue312.TaskState", TaskState_name, TaskState_value)
}
-func init() { proto.RegisterFile("issue312.proto", fileDescriptor_issue312_ffe23d3d41bbbf36) }
+func init() { proto.RegisterFile("issue312.proto", fileDescriptor_8a64932ccacef062) }
-var fileDescriptor_issue312_ffe23d3d41bbbf36 = []byte{
+var fileDescriptor_8a64932ccacef062 = []byte{
// 147 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e,
0x4d, 0x35, 0x36, 0x34, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
diff --git a/vendor/github.com/gogo/protobuf/test/issue322/issue322.pb.go b/vendor/github.com/gogo/protobuf/test/issue322/issue322.pb.go
index 1ea35a479f..8da5d80187 100644
--- a/vendor/github.com/gogo/protobuf/test/issue322/issue322.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/issue322/issue322.pb.go
@@ -3,17 +3,16 @@
package test
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -39,7 +38,7 @@ func (m *OneofTest) Reset() { *m = OneofTest{} }
func (m *OneofTest) String() string { return proto.CompactTextString(m) }
func (*OneofTest) ProtoMessage() {}
func (*OneofTest) Descriptor() ([]byte, []int) {
- return fileDescriptor_issue322_3e2db2f0d45a9027, []int{0}
+ return fileDescriptor_fbf4e8d164dccde1, []int{0}
}
func (m *OneofTest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -56,8 +55,8 @@ func (m *OneofTest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *OneofTest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OneofTest.Merge(dst, src)
+func (m *OneofTest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OneofTest.Merge(m, src)
}
func (m *OneofTest) XXX_Size() int {
return m.Size()
@@ -150,6 +149,23 @@ func _OneofTest_OneofSizer(msg proto.Message) (n int) {
func init() {
proto.RegisterType((*OneofTest)(nil), "test.OneofTest")
}
+
+func init() { proto.RegisterFile("issue322.proto", fileDescriptor_fbf4e8d164dccde1) }
+
+var fileDescriptor_fbf4e8d164dccde1 = []byte{
+ // 149 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e,
+ 0x4d, 0x35, 0x36, 0x32, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x29, 0x49, 0x2d, 0x2e,
+ 0x91, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f,
+ 0xcf, 0xd7, 0x07, 0x4b, 0x26, 0x95, 0xa6, 0x81, 0x79, 0x60, 0x0e, 0x98, 0x05, 0xd1, 0xa4, 0xa4,
+ 0xce, 0xc5, 0xe9, 0x9f, 0x97, 0x9a, 0x9f, 0x16, 0x92, 0x5a, 0x5c, 0x22, 0x24, 0xc8, 0xc5, 0x98,
+ 0x29, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x6a, 0xc5, 0x68, 0xe2, 0xc1, 0x10, 0xc4, 0x98, 0xe9, 0xc4,
+ 0xce, 0xc5, 0x5a, 0x9a, 0x97, 0x99, 0x9f, 0xe7, 0x24, 0xf3, 0xe1, 0xa1, 0x1c, 0xe3, 0x8f, 0x87,
+ 0x72, 0x8c, 0x2b, 0x1e, 0xc9, 0x31, 0xee, 0x78, 0x24, 0xc7, 0x78, 0xe2, 0x91, 0x1c, 0xe3, 0x85,
+ 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x02, 0x02, 0x00, 0x00, 0xff, 0xff, 0xe6, 0x64, 0xd7,
+ 0x6a, 0x8c, 0x00, 0x00, 0x00,
+}
+
func (this *OneofTest) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -429,7 +445,7 @@ func (m *OneofTest) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -457,7 +473,7 @@ func (m *OneofTest) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -472,6 +488,9 @@ func (m *OneofTest) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthIssue322
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthIssue322
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -539,10 +558,13 @@ func skipIssue322(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthIssue322
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthIssue322
+ }
return iNdEx, nil
case 3:
for {
@@ -571,6 +593,9 @@ func skipIssue322(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthIssue322
+ }
}
return iNdEx, nil
case 4:
@@ -589,19 +614,3 @@ var (
ErrInvalidLengthIssue322 = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowIssue322 = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("issue322.proto", fileDescriptor_issue322_3e2db2f0d45a9027) }
-
-var fileDescriptor_issue322_3e2db2f0d45a9027 = []byte{
- // 149 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e,
- 0x4d, 0x35, 0x36, 0x32, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x29, 0x49, 0x2d, 0x2e,
- 0x91, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f,
- 0xcf, 0xd7, 0x07, 0x4b, 0x26, 0x95, 0xa6, 0x81, 0x79, 0x60, 0x0e, 0x98, 0x05, 0xd1, 0xa4, 0xa4,
- 0xce, 0xc5, 0xe9, 0x9f, 0x97, 0x9a, 0x9f, 0x16, 0x92, 0x5a, 0x5c, 0x22, 0x24, 0xc8, 0xc5, 0x98,
- 0x29, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x6a, 0xc5, 0x68, 0xe2, 0xc1, 0x10, 0xc4, 0x98, 0xe9, 0xc4,
- 0xce, 0xc5, 0x5a, 0x9a, 0x97, 0x99, 0x9f, 0xe7, 0x24, 0xf3, 0xe1, 0xa1, 0x1c, 0xe3, 0x8f, 0x87,
- 0x72, 0x8c, 0x2b, 0x1e, 0xc9, 0x31, 0xee, 0x78, 0x24, 0xc7, 0x78, 0xe2, 0x91, 0x1c, 0xe3, 0x85,
- 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x02, 0x02, 0x00, 0x00, 0xff, 0xff, 0xe6, 0x64, 0xd7,
- 0x6a, 0x8c, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/issue330/issue330.pb.go b/vendor/github.com/gogo/protobuf/test/issue330/issue330.pb.go
index beb1107de7..c590b313e5 100644
--- a/vendor/github.com/gogo/protobuf/test/issue330/issue330.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/issue330/issue330.pb.go
@@ -3,14 +3,14 @@
package issue330
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -34,7 +34,7 @@ func (m *Object) Reset() { *m = Object{} }
func (m *Object) String() string { return proto.CompactTextString(m) }
func (*Object) ProtoMessage() {}
func (*Object) Descriptor() ([]byte, []int) {
- return fileDescriptor_issue330_8ac709e024292525, []int{0}
+ return fileDescriptor_30faa33a004e0218, []int{0}
}
func (m *Object) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -51,8 +51,8 @@ func (m *Object) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Object) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Object.Merge(dst, src)
+func (m *Object) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Object.Merge(m, src)
}
func (m *Object) XXX_Size() int {
return m.Size()
@@ -73,6 +73,23 @@ func (m *Object) GetType() TypeIdentifier {
func init() {
proto.RegisterType((*Object)(nil), "issue330.Object")
}
+
+func init() { proto.RegisterFile("issue330.proto", fileDescriptor_30faa33a004e0218) }
+
+var fileDescriptor_30faa33a004e0218 = []byte{
+ // 158 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e,
+ 0x4d, 0x35, 0x36, 0x36, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
+ 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5,
+ 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x54, 0x32, 0xe0, 0x62,
+ 0xf3, 0x4f, 0xca, 0x4a, 0x4d, 0x2e, 0x11, 0x52, 0xe3, 0x62, 0x29, 0xa9, 0x2c, 0x48, 0x95, 0x60,
+ 0x54, 0x60, 0xd4, 0xe0, 0x75, 0x12, 0xfa, 0x75, 0x4f, 0x9e, 0x2f, 0xa4, 0xb2, 0x20, 0xd5, 0x33,
+ 0x25, 0x35, 0xaf, 0x24, 0x33, 0x2d, 0x33, 0xb5, 0x28, 0x08, 0x2c, 0xef, 0x24, 0xf3, 0xe3, 0xa1,
+ 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x1e, 0xc9, 0x31, 0x1e, 0x78, 0x24, 0xc7, 0x78, 0xe2,
+ 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x26, 0xb1, 0x81, 0x8d, 0x35,
+ 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x8f, 0x41, 0xc2, 0x37, 0xa1, 0x00, 0x00, 0x00,
+}
+
func (this *Object) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -259,7 +276,7 @@ func (m *Object) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -287,7 +304,7 @@ func (m *Object) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Type |= (TypeIdentifier(b) & 0x7F) << shift
+ m.Type |= TypeIdentifier(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -301,6 +318,9 @@ func (m *Object) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthIssue330
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthIssue330
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -368,10 +388,13 @@ func skipIssue330(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthIssue330
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthIssue330
+ }
return iNdEx, nil
case 3:
for {
@@ -400,6 +423,9 @@ func skipIssue330(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthIssue330
+ }
}
return iNdEx, nil
case 4:
@@ -418,19 +444,3 @@ var (
ErrInvalidLengthIssue330 = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowIssue330 = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("issue330.proto", fileDescriptor_issue330_8ac709e024292525) }
-
-var fileDescriptor_issue330_8ac709e024292525 = []byte{
- // 158 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e,
- 0x4d, 0x35, 0x36, 0x36, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
- 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5,
- 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x54, 0x32, 0xe0, 0x62,
- 0xf3, 0x4f, 0xca, 0x4a, 0x4d, 0x2e, 0x11, 0x52, 0xe3, 0x62, 0x29, 0xa9, 0x2c, 0x48, 0x95, 0x60,
- 0x54, 0x60, 0xd4, 0xe0, 0x75, 0x12, 0xfa, 0x75, 0x4f, 0x9e, 0x2f, 0xa4, 0xb2, 0x20, 0xd5, 0x33,
- 0x25, 0x35, 0xaf, 0x24, 0x33, 0x2d, 0x33, 0xb5, 0x28, 0x08, 0x2c, 0xef, 0x24, 0xf3, 0xe3, 0xa1,
- 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x1e, 0xc9, 0x31, 0x1e, 0x78, 0x24, 0xc7, 0x78, 0xe2,
- 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x26, 0xb1, 0x81, 0x8d, 0x35,
- 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x8f, 0x41, 0xc2, 0x37, 0xa1, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/issue34/proto.pb.go b/vendor/github.com/gogo/protobuf/test/issue34/proto.pb.go
index 56e05a4574..77f71542ef 100644
--- a/vendor/github.com/gogo/protobuf/test/issue34/proto.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/issue34/proto.pb.go
@@ -3,12 +3,13 @@
package issue34
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import io "io"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -32,7 +33,7 @@ func (m *Foo) Reset() { *m = Foo{} }
func (m *Foo) String() string { return proto.CompactTextString(m) }
func (*Foo) ProtoMessage() {}
func (*Foo) Descriptor() ([]byte, []int) {
- return fileDescriptor_proto_9c2649a35ed336bb, []int{0}
+ return fileDescriptor_2fcc84b9998d60d8, []int{0}
}
func (m *Foo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -40,8 +41,8 @@ func (m *Foo) XXX_Unmarshal(b []byte) error {
func (m *Foo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Foo.Marshal(b, m, deterministic)
}
-func (dst *Foo) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Foo.Merge(dst, src)
+func (m *Foo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Foo.Merge(m, src)
}
func (m *Foo) XXX_Size() int {
return xxx_messageInfo_Foo.Size(m)
@@ -70,7 +71,7 @@ func (m *FooWithRepeated) Reset() { *m = FooWithRepeated{} }
func (m *FooWithRepeated) String() string { return proto.CompactTextString(m) }
func (*FooWithRepeated) ProtoMessage() {}
func (*FooWithRepeated) Descriptor() ([]byte, []int) {
- return fileDescriptor_proto_9c2649a35ed336bb, []int{1}
+ return fileDescriptor_2fcc84b9998d60d8, []int{1}
}
func (m *FooWithRepeated) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -78,8 +79,8 @@ func (m *FooWithRepeated) XXX_Unmarshal(b []byte) error {
func (m *FooWithRepeated) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FooWithRepeated.Marshal(b, m, deterministic)
}
-func (dst *FooWithRepeated) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FooWithRepeated.Merge(dst, src)
+func (m *FooWithRepeated) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FooWithRepeated.Merge(m, src)
}
func (m *FooWithRepeated) XXX_Size() int {
return xxx_messageInfo_FooWithRepeated.Size(m)
@@ -101,6 +102,21 @@ func init() {
proto.RegisterType((*Foo)(nil), "issue34.Foo")
proto.RegisterType((*FooWithRepeated)(nil), "issue34.FooWithRepeated")
}
+
+func init() { proto.RegisterFile("proto.proto", fileDescriptor_2fcc84b9998d60d8) }
+
+var fileDescriptor_2fcc84b9998d60d8 = []byte{
+ // 126 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2e, 0x28, 0xca, 0x2f,
+ 0xc9, 0xd7, 0x03, 0x93, 0x42, 0xec, 0x99, 0xc5, 0xc5, 0xa5, 0xa9, 0xc6, 0x26, 0x52, 0xba, 0xe9,
+ 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0xe9, 0xf9, 0xe9, 0xf9, 0xfa, 0x60,
+ 0xf9, 0xa4, 0xd2, 0x34, 0x30, 0x0f, 0xcc, 0x01, 0xb3, 0x20, 0xfa, 0x94, 0xc4, 0xb9, 0x98, 0xdd,
+ 0xf2, 0xf3, 0x85, 0x04, 0xb8, 0x98, 0x93, 0x12, 0x8b, 0x24, 0x18, 0x15, 0x18, 0x35, 0x78, 0x82,
+ 0x40, 0x4c, 0x25, 0x65, 0x2e, 0x7e, 0xb7, 0xfc, 0xfc, 0xf0, 0xcc, 0x92, 0x8c, 0xa0, 0xd4, 0x82,
+ 0xd4, 0xc4, 0x92, 0xd4, 0x14, 0x84, 0x22, 0x66, 0xa8, 0x22, 0x27, 0x96, 0x0b, 0x8f, 0xe4, 0x18,
+ 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb2, 0x1b, 0xef, 0x89, 0x00, 0x00, 0x00,
+}
+
func (m *Foo) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -116,7 +132,7 @@ func (m *Foo) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -144,7 +160,7 @@ func (m *Foo) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -153,6 +169,9 @@ func (m *Foo) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthProto
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthProto
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -170,6 +189,9 @@ func (m *Foo) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthProto
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthProto
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -198,7 +220,7 @@ func (m *FooWithRepeated) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -226,7 +248,7 @@ func (m *FooWithRepeated) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -235,6 +257,9 @@ func (m *FooWithRepeated) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthProto
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthProto
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -250,6 +275,9 @@ func (m *FooWithRepeated) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthProto
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthProto
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -317,10 +345,13 @@ func skipProto(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthProto
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthProto
+ }
return iNdEx, nil
case 3:
for {
@@ -349,6 +380,9 @@ func skipProto(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthProto
+ }
}
return iNdEx, nil
case 4:
@@ -367,17 +401,3 @@ var (
ErrInvalidLengthProto = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowProto = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("proto.proto", fileDescriptor_proto_9c2649a35ed336bb) }
-
-var fileDescriptor_proto_9c2649a35ed336bb = []byte{
- // 126 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2e, 0x28, 0xca, 0x2f,
- 0xc9, 0xd7, 0x03, 0x93, 0x42, 0xec, 0x99, 0xc5, 0xc5, 0xa5, 0xa9, 0xc6, 0x26, 0x52, 0xba, 0xe9,
- 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0xe9, 0xf9, 0xe9, 0xf9, 0xfa, 0x60,
- 0xf9, 0xa4, 0xd2, 0x34, 0x30, 0x0f, 0xcc, 0x01, 0xb3, 0x20, 0xfa, 0x94, 0xc4, 0xb9, 0x98, 0xdd,
- 0xf2, 0xf3, 0x85, 0x04, 0xb8, 0x98, 0x93, 0x12, 0x8b, 0x24, 0x18, 0x15, 0x18, 0x35, 0x78, 0x82,
- 0x40, 0x4c, 0x25, 0x65, 0x2e, 0x7e, 0xb7, 0xfc, 0xfc, 0xf0, 0xcc, 0x92, 0x8c, 0xa0, 0xd4, 0x82,
- 0xd4, 0xc4, 0x92, 0xd4, 0x14, 0x84, 0x22, 0x66, 0xa8, 0x22, 0x27, 0x96, 0x0b, 0x8f, 0xe4, 0x18,
- 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb2, 0x1b, 0xef, 0x89, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/issue411/issue411.pb.go b/vendor/github.com/gogo/protobuf/test/issue411/issue411.pb.go
index 6a31ecedaf..19657bc07f 100644
--- a/vendor/github.com/gogo/protobuf/test/issue411/issue411.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/issue411/issue411.pb.go
@@ -3,10 +3,12 @@
package issue411
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -31,7 +33,7 @@ func (m *Span) Reset() { *m = Span{} }
func (m *Span) String() string { return proto.CompactTextString(m) }
func (*Span) ProtoMessage() {}
func (*Span) Descriptor() ([]byte, []int) {
- return fileDescriptor_issue411_3de9ea40a93d370b, []int{0}
+ return fileDescriptor_7e1ed5cde895f96f, []int{0}
}
func (m *Span) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Span.Unmarshal(m, b)
@@ -39,8 +41,8 @@ func (m *Span) XXX_Unmarshal(b []byte) error {
func (m *Span) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Span.Marshal(b, m, deterministic)
}
-func (dst *Span) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Span.Merge(dst, src)
+func (m *Span) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Span.Merge(m, src)
}
func (m *Span) XXX_Size() int {
return xxx_messageInfo_Span.Size(m)
@@ -55,9 +57,9 @@ func init() {
proto.RegisterType((*Span)(nil), "issue411.Span")
}
-func init() { proto.RegisterFile("issue411.proto", fileDescriptor_issue411_3de9ea40a93d370b) }
+func init() { proto.RegisterFile("issue411.proto", fileDescriptor_7e1ed5cde895f96f) }
-var fileDescriptor_issue411_3de9ea40a93d370b = []byte{
+var fileDescriptor_7e1ed5cde895f96f = []byte{
// 158 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e,
0x4d, 0x35, 0x31, 0x34, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
diff --git a/vendor/github.com/gogo/protobuf/test/issue42order/issue42.pb.go b/vendor/github.com/gogo/protobuf/test/issue42order/issue42.pb.go
index dbc5bfa226..1785e2f600 100644
--- a/vendor/github.com/gogo/protobuf/test/issue42order/issue42.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/issue42order/issue42.pb.go
@@ -3,14 +3,14 @@
package issue42
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import encoding_binary "encoding/binary"
-
-import io "io"
+import (
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -35,7 +35,7 @@ func (m *UnorderedFields) Reset() { *m = UnorderedFields{} }
func (m *UnorderedFields) String() string { return proto.CompactTextString(m) }
func (*UnorderedFields) ProtoMessage() {}
func (*UnorderedFields) Descriptor() ([]byte, []int) {
- return fileDescriptor_issue42_6157ac17a2848d4f, []int{0}
+ return fileDescriptor_fb4aafed97be2033, []int{0}
}
func (m *UnorderedFields) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -52,8 +52,8 @@ func (m *UnorderedFields) XXX_Marshal(b []byte, deterministic bool) ([]byte, err
return b[:n], nil
}
}
-func (dst *UnorderedFields) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnorderedFields.Merge(dst, src)
+func (m *UnorderedFields) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnorderedFields.Merge(m, src)
}
func (m *UnorderedFields) XXX_Size() int {
return m.Size()
@@ -90,7 +90,7 @@ func (m *OrderedFields) Reset() { *m = OrderedFields{} }
func (m *OrderedFields) String() string { return proto.CompactTextString(m) }
func (*OrderedFields) ProtoMessage() {}
func (*OrderedFields) Descriptor() ([]byte, []int) {
- return fileDescriptor_issue42_6157ac17a2848d4f, []int{1}
+ return fileDescriptor_fb4aafed97be2033, []int{1}
}
func (m *OrderedFields) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -107,8 +107,8 @@ func (m *OrderedFields) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
return b[:n], nil
}
}
-func (dst *OrderedFields) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OrderedFields.Merge(dst, src)
+func (m *OrderedFields) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OrderedFields.Merge(m, src)
}
func (m *OrderedFields) XXX_Size() int {
return m.Size()
@@ -137,6 +137,23 @@ func init() {
proto.RegisterType((*UnorderedFields)(nil), "issue42.UnorderedFields")
proto.RegisterType((*OrderedFields)(nil), "issue42.OrderedFields")
}
+
+func init() { proto.RegisterFile("issue42.proto", fileDescriptor_fb4aafed97be2033) }
+
+var fileDescriptor_fb4aafed97be2033 = []byte{
+ // 148 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcd, 0x2c, 0x2e, 0x2e,
+ 0x4d, 0x35, 0x31, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x87, 0x72, 0xa5, 0x74, 0xd3,
+ 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1,
+ 0xf2, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0xf4, 0x29, 0xe9, 0x72, 0xf1, 0x87,
+ 0xe6, 0xe5, 0x17, 0xa5, 0xa4, 0x16, 0xa5, 0xa6, 0xb8, 0x65, 0xa6, 0xe6, 0xa4, 0x14, 0x0b, 0xf1,
+ 0x70, 0x31, 0x3a, 0x4a, 0x70, 0x29, 0x30, 0x6a, 0x30, 0x07, 0x31, 0x3a, 0x82, 0x78, 0x4e, 0x12,
+ 0x8c, 0x0a, 0x8c, 0x1a, 0x6c, 0x41, 0x8c, 0x4e, 0x4a, 0xda, 0x5c, 0xbc, 0xfe, 0xe8, 0x8a, 0x11,
+ 0xd2, 0xa8, 0x5a, 0x9d, 0x04, 0x7e, 0x3c, 0x94, 0x63, 0x3c, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23,
+ 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x38, 0xfe, 0xba, 0xa3,
+ 0xb5, 0x00, 0x00, 0x00,
+}
+
func (m *UnorderedFields) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -384,7 +401,7 @@ func (m *UnorderedFields) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -423,7 +440,7 @@ func (m *UnorderedFields) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -438,6 +455,9 @@ func (m *UnorderedFields) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthIssue42
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthIssue42
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -466,7 +486,7 @@ func (m *OrderedFields) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -505,7 +525,7 @@ func (m *OrderedFields) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -520,6 +540,9 @@ func (m *OrderedFields) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthIssue42
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthIssue42
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -587,10 +610,13 @@ func skipIssue42(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthIssue42
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthIssue42
+ }
return iNdEx, nil
case 3:
for {
@@ -619,6 +645,9 @@ func skipIssue42(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthIssue42
+ }
}
return iNdEx, nil
case 4:
@@ -637,18 +666,3 @@ var (
ErrInvalidLengthIssue42 = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowIssue42 = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("issue42.proto", fileDescriptor_issue42_6157ac17a2848d4f) }
-
-var fileDescriptor_issue42_6157ac17a2848d4f = []byte{
- // 144 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcd, 0x2c, 0x2e, 0x2e,
- 0x4d, 0x35, 0x31, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x87, 0x72, 0xa5, 0x74, 0xd3,
- 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, 0xc1,
- 0xf2, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0xf4, 0x29, 0xe9, 0x72, 0xf1, 0x87,
- 0xe6, 0xe5, 0x17, 0xa5, 0xa4, 0x16, 0xa5, 0xa6, 0xb8, 0x65, 0xa6, 0xe6, 0xa4, 0x14, 0x0b, 0xf1,
- 0x70, 0x31, 0x3a, 0x49, 0x30, 0x2a, 0x30, 0x6a, 0xb0, 0x05, 0x31, 0x3a, 0x81, 0x78, 0x8e, 0x12,
- 0x5c, 0x0a, 0x8c, 0x1a, 0xcc, 0x41, 0x8c, 0x8e, 0x4a, 0xda, 0x5c, 0xbc, 0xfe, 0xc4, 0x2a, 0x76,
- 0x12, 0xf8, 0xf1, 0x50, 0x8e, 0xf1, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f, 0x3c,
- 0x92, 0x63, 0x04, 0x04, 0x00, 0x00, 0xff, 0xff, 0x94, 0xa9, 0xfd, 0x9c, 0xb5, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/issue435/issue435.pb.go b/vendor/github.com/gogo/protobuf/test/issue435/issue435.pb.go
index e6be2e6b38..4d3c7f3e62 100644
--- a/vendor/github.com/gogo/protobuf/test/issue435/issue435.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/issue435/issue435.pb.go
@@ -3,10 +3,12 @@
package issue435
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -31,7 +33,7 @@ func (m *Message) Reset() { *m = Message{} }
func (m *Message) String() string { return proto.CompactTextString(m) }
func (*Message) ProtoMessage() {}
func (*Message) Descriptor() ([]byte, []int) {
- return fileDescriptor_issue435_f2d026e765e48290, []int{0}
+ return fileDescriptor_dba67e55f800df0d, []int{0}
}
func (m *Message) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Message.Unmarshal(m, b)
@@ -39,8 +41,8 @@ func (m *Message) XXX_Unmarshal(b []byte) error {
func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Message.Marshal(b, m, deterministic)
}
-func (dst *Message) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Message.Merge(dst, src)
+func (m *Message) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Message.Merge(m, src)
}
func (m *Message) XXX_Size() int {
return xxx_messageInfo_Message.Size(m)
@@ -76,7 +78,7 @@ func (m *SubMessage) Reset() { *m = SubMessage{} }
func (m *SubMessage) String() string { return proto.CompactTextString(m) }
func (*SubMessage) ProtoMessage() {}
func (*SubMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_issue435_f2d026e765e48290, []int{1}
+ return fileDescriptor_dba67e55f800df0d, []int{1}
}
func (m *SubMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SubMessage.Unmarshal(m, b)
@@ -84,8 +86,8 @@ func (m *SubMessage) XXX_Unmarshal(b []byte) error {
func (m *SubMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SubMessage.Marshal(b, m, deterministic)
}
-func (dst *SubMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SubMessage.Merge(dst, src)
+func (m *SubMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SubMessage.Merge(m, src)
}
func (m *SubMessage) XXX_Size() int {
return xxx_messageInfo_SubMessage.Size(m)
@@ -110,9 +112,9 @@ func init() {
proto.RegisterType((*SubMessage)(nil), "issue435.SubMessage")
}
-func init() { proto.RegisterFile("issue435.proto", fileDescriptor_issue435_f2d026e765e48290) }
+func init() { proto.RegisterFile("issue435.proto", fileDescriptor_dba67e55f800df0d) }
-var fileDescriptor_issue435_f2d026e765e48290 = []byte{
+var fileDescriptor_dba67e55f800df0d = []byte{
// 189 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e,
0x4d, 0x35, 0x31, 0x36, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
diff --git a/vendor/github.com/gogo/protobuf/test/issue438/issue438.pb.go b/vendor/github.com/gogo/protobuf/test/issue438/issue438.pb.go
index bcc1a78327..4252614c3e 100644
--- a/vendor/github.com/gogo/protobuf/test/issue438/issue438.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/issue438/issue438.pb.go
@@ -3,11 +3,13 @@
package issue438
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import types "github.com/gogo/protobuf/types"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ types "github.com/gogo/protobuf/types"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -60,7 +62,7 @@ func (m *Types) Reset() { *m = Types{} }
func (m *Types) String() string { return proto.CompactTextString(m) }
func (*Types) ProtoMessage() {}
func (*Types) Descriptor() ([]byte, []int) {
- return fileDescriptor_issue438_0fea1881269710af, []int{0}
+ return fileDescriptor_43147f0c8dedbac4, []int{0}
}
func (m *Types) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Types.Unmarshal(m, b)
@@ -68,8 +70,8 @@ func (m *Types) XXX_Unmarshal(b []byte) error {
func (m *Types) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Types.Marshal(b, m, deterministic)
}
-func (dst *Types) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Types.Merge(dst, src)
+func (m *Types) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Types.Merge(m, src)
}
func (m *Types) XXX_Size() int {
return xxx_messageInfo_Types.Size(m)
@@ -293,6 +295,56 @@ func (m *Types) GetBytes() *types.BytesValue {
func init() {
proto.RegisterType((*Types)(nil), "issue438.Types")
}
+
+func init() { proto.RegisterFile("issue438.proto", fileDescriptor_43147f0c8dedbac4) }
+
+var fileDescriptor_43147f0c8dedbac4 = []byte{
+ // 682 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0xd3, 0xef, 0x4e, 0x14, 0x3b,
+ 0x14, 0x00, 0xf0, 0x3b, 0x33, 0x2c, 0x97, 0x5b, 0xae, 0xa8, 0x95, 0x3f, 0x65, 0xc1, 0x95, 0x28,
+ 0x22, 0x6a, 0x18, 0x74, 0x77, 0xb3, 0xf1, 0xab, 0x08, 0x26, 0x26, 0xa2, 0x49, 0x41, 0xbf, 0x92,
+ 0x99, 0xdd, 0xce, 0xd2, 0xd0, 0x99, 0x36, 0xd3, 0x16, 0x77, 0xde, 0xc6, 0x47, 0xf2, 0x11, 0x8c,
+ 0xbe, 0x88, 0x69, 0xa7, 0xab, 0x66, 0x87, 0x12, 0xbe, 0xcd, 0xe4, 0xfc, 0xce, 0x69, 0x7b, 0x4e,
+ 0x0b, 0x96, 0xa8, 0x94, 0x9a, 0xf4, 0x7b, 0xaf, 0x62, 0x51, 0x72, 0xc5, 0xe1, 0xc2, 0xf4, 0xbf,
+ 0xbd, 0x37, 0xa6, 0xea, 0x5c, 0xa7, 0xf1, 0x90, 0xe7, 0xfb, 0x63, 0x3e, 0xe6, 0xfb, 0x16, 0xa4,
+ 0x3a, 0xb3, 0x7f, 0xf6, 0xc7, 0x7e, 0xd5, 0x89, 0xed, 0xf5, 0x31, 0xe7, 0x63, 0x46, 0xfe, 0xa8,
+ 0xa4, 0xa8, 0xbc, 0x21, 0x41, 0x5d, 0xa8, 0x33, 0x1b, 0x1a, 0xe9, 0x32, 0x51, 0x94, 0x17, 0x2e,
+ 0xbe, 0x31, 0x1b, 0x27, 0xb9, 0x50, 0xd3, 0xba, 0x5b, 0xb3, 0xc1, 0x8c, 0x12, 0x36, 0x3a, 0xcb,
+ 0x13, 0x79, 0xe1, 0xc4, 0xf6, 0xac, 0x90, 0x5c, 0x97, 0x43, 0x72, 0x36, 0xe4, 0x85, 0x22, 0x13,
+ 0xe5, 0xd4, 0x66, 0x43, 0xa9, 0x52, 0x0f, 0xa7, 0xd1, 0x07, 0xb3, 0x51, 0x45, 0x73, 0x22, 0x55,
+ 0x92, 0x0b, 0x07, 0xda, 0x0d, 0x50, 0x09, 0xe2, 0x3b, 0xdf, 0x97, 0x32, 0x11, 0x82, 0x94, 0xb2,
+ 0x8e, 0x3f, 0xfc, 0x06, 0x40, 0xeb, 0xb4, 0x12, 0x44, 0xc2, 0x1d, 0x10, 0x25, 0x45, 0x85, 0x82,
+ 0xad, 0x60, 0x77, 0xb1, 0xbb, 0x1c, 0xd7, 0x79, 0xf1, 0x34, 0x2f, 0x7e, 0x5d, 0x54, 0xd8, 0x00,
+ 0xeb, 0x04, 0x45, 0xa1, 0xcf, 0x09, 0x8a, 0x0d, 0x80, 0x4f, 0x41, 0x94, 0x13, 0x85, 0x22, 0xeb,
+ 0xd6, 0x1a, 0xee, 0x98, 0xa8, 0x73, 0x3e, 0xc2, 0xc6, 0xc0, 0x1d, 0x10, 0xe6, 0x13, 0x34, 0x67,
+ 0xe5, 0x6a, 0x53, 0xd2, 0x09, 0x2d, 0x70, 0x98, 0x4f, 0xe0, 0x73, 0x10, 0x8d, 0x74, 0x89, 0x5a,
+ 0x16, 0xae, 0x37, 0xe0, 0xa1, 0x1b, 0x1d, 0x36, 0xca, 0x14, 0x25, 0x39, 0x9a, 0xf7, 0x14, 0x3d,
+ 0x32, 0x63, 0xc4, 0x21, 0xc9, 0xe1, 0x33, 0x10, 0x66, 0x39, 0xfa, 0xd7, 0xba, 0x76, 0xc3, 0xbd,
+ 0x35, 0x13, 0x3d, 0x4e, 0xe4, 0x05, 0x0e, 0xb3, 0x1c, 0xc6, 0x20, 0x94, 0x43, 0xb4, 0x60, 0x6d,
+ 0xa7, 0x61, 0x4f, 0xec, 0x6c, 0xdf, 0xd4, 0xa3, 0xc5, 0xa1, 0x1c, 0xc2, 0x27, 0x20, 0x94, 0x0a,
+ 0xfd, 0xe7, 0x69, 0xc1, 0x89, 0x9d, 0x32, 0x0e, 0xa5, 0x82, 0xbb, 0x20, 0xba, 0x4c, 0x18, 0x02,
+ 0x9e, 0xdd, 0x7e, 0x4e, 0x98, 0x26, 0xd8, 0x10, 0xf8, 0x02, 0xb4, 0x0a, 0x66, 0xec, 0xe2, 0x56,
+ 0xb0, 0xbb, 0x74, 0xc5, 0x8e, 0x3f, 0x68, 0xc6, 0x6a, 0x5f, 0x43, 0xd8, 0x05, 0x2d, 0xa9, 0x4c,
+ 0xc6, 0xff, 0xb6, 0xfa, 0xe6, 0x55, 0xfb, 0xa0, 0xc5, 0xd8, 0xe5, 0x58, 0x0a, 0x63, 0x30, 0x97,
+ 0x9a, 0x94, 0x5b, 0x9e, 0xb6, 0x1c, 0x70, 0xee, 0x16, 0xb1, 0x0e, 0xee, 0x83, 0x79, 0xa9, 0x4a,
+ 0x93, 0xb1, 0x74, 0xfd, 0x61, 0x1d, 0x33, 0x0b, 0x30, 0xa9, 0x2e, 0xd1, 0x6d, 0xcf, 0x02, 0xef,
+ 0xa9, 0x54, 0x6e, 0x01, 0xe3, 0xcc, 0x94, 0x94, 0x44, 0x77, 0x3c, 0xfa, 0x74, 0xfa, 0x22, 0x70,
+ 0xa8, 0x24, 0x7c, 0x04, 0x02, 0x85, 0xee, 0x5a, 0xba, 0xd2, 0xa4, 0x95, 0x20, 0x38, 0x50, 0x70,
+ 0x1b, 0x04, 0x19, 0x82, 0x9e, 0x7e, 0xdb, 0xa9, 0xe3, 0x20, 0x83, 0x8f, 0x41, 0x48, 0x0a, 0x74,
+ 0xcf, 0x53, 0xeb, 0xa8, 0xd0, 0x39, 0x0e, 0x49, 0x61, 0x86, 0x42, 0x0a, 0x73, 0xfa, 0x65, 0xcf,
+ 0x06, 0x8d, 0x74, 0x0d, 0xb6, 0xd0, 0xbc, 0x0e, 0x2e, 0x14, 0x5a, 0xf1, 0x74, 0xeb, 0xa3, 0xa8,
+ 0x2f, 0x32, 0x17, 0x0a, 0xc6, 0x20, 0x1a, 0xa5, 0x0c, 0xad, 0x7a, 0xa6, 0x77, 0xc8, 0x75, 0xca,
+ 0x88, 0xbb, 0x21, 0xa3, 0x94, 0xc1, 0x3d, 0x10, 0x65, 0x4c, 0xa1, 0x35, 0xeb, 0x37, 0x9a, 0x67,
+ 0x63, 0x3c, 0x71, 0xad, 0x35, 0xce, 0x70, 0x3a, 0xe8, 0x23, 0xe4, 0xe1, 0xef, 0x0a, 0x35, 0xe8,
+ 0x3b, 0x4e, 0x07, 0x7d, 0xb3, 0x1b, 0x3d, 0xe8, 0xa3, 0x75, 0xcf, 0x6e, 0x3e, 0xfd, 0xed, 0xf5,
+ 0xa0, 0x6f, 0xcb, 0xf7, 0xba, 0xa8, 0xed, 0x2f, 0xdf, 0xeb, 0x4e, 0xcb, 0xf7, 0xba, 0xb6, 0x7c,
+ 0xaf, 0x8b, 0x36, 0xae, 0x29, 0xff, 0xdb, 0x6b, 0xeb, 0xe7, 0x52, 0xce, 0x19, 0xda, 0xbc, 0xc1,
+ 0x45, 0xe5, 0xdc, 0xdc, 0xbb, 0x48, 0xaa, 0x12, 0xdd, 0xbf, 0xc1, 0x53, 0x30, 0x10, 0xbe, 0x04,
+ 0xad, 0xb4, 0x52, 0x44, 0xa2, 0x8e, 0xe7, 0x00, 0x07, 0x26, 0xea, 0x46, 0x6b, 0xe5, 0xc1, 0xc2,
+ 0xf7, 0x1f, 0x9d, 0x7f, 0xbe, 0xfe, 0xec, 0x04, 0xe9, 0xbc, 0x55, 0xbd, 0x5f, 0x01, 0x00, 0x00,
+ 0xff, 0xff, 0x99, 0xa8, 0x9a, 0xae, 0xe4, 0x06, 0x00, 0x00,
+}
+
func (m *Types) ProtoSize() (n int) {
if m == nil {
return 0
@@ -437,52 +489,3 @@ func sovIssue438(x uint64) (n int) {
func sozIssue438(x uint64) (n int) {
return sovIssue438(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
-
-func init() { proto.RegisterFile("issue438.proto", fileDescriptor_issue438_0fea1881269710af) }
-
-var fileDescriptor_issue438_0fea1881269710af = []byte{
- // 682 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0xd3, 0xef, 0x4e, 0x14, 0x3b,
- 0x14, 0x00, 0xf0, 0x3b, 0x33, 0x2c, 0x97, 0x5b, 0xae, 0xa8, 0x95, 0x3f, 0x65, 0xc1, 0x95, 0x28,
- 0x22, 0x6a, 0x18, 0x74, 0x77, 0xb3, 0xf1, 0xab, 0x08, 0x26, 0x26, 0xa2, 0x49, 0x41, 0xbf, 0x92,
- 0x99, 0xdd, 0xce, 0xd2, 0xd0, 0x99, 0x36, 0xd3, 0x16, 0x77, 0xde, 0xc6, 0x47, 0xf2, 0x11, 0x8c,
- 0xbe, 0x88, 0x69, 0xa7, 0xab, 0x66, 0x87, 0x12, 0xbe, 0xcd, 0xe4, 0xfc, 0xce, 0x69, 0x7b, 0x4e,
- 0x0b, 0x96, 0xa8, 0x94, 0x9a, 0xf4, 0x7b, 0xaf, 0x62, 0x51, 0x72, 0xc5, 0xe1, 0xc2, 0xf4, 0xbf,
- 0xbd, 0x37, 0xa6, 0xea, 0x5c, 0xa7, 0xf1, 0x90, 0xe7, 0xfb, 0x63, 0x3e, 0xe6, 0xfb, 0x16, 0xa4,
- 0x3a, 0xb3, 0x7f, 0xf6, 0xc7, 0x7e, 0xd5, 0x89, 0xed, 0xf5, 0x31, 0xe7, 0x63, 0x46, 0xfe, 0xa8,
- 0xa4, 0xa8, 0xbc, 0x21, 0x41, 0x5d, 0xa8, 0x33, 0x1b, 0x1a, 0xe9, 0x32, 0x51, 0x94, 0x17, 0x2e,
- 0xbe, 0x31, 0x1b, 0x27, 0xb9, 0x50, 0xd3, 0xba, 0x5b, 0xb3, 0xc1, 0x8c, 0x12, 0x36, 0x3a, 0xcb,
- 0x13, 0x79, 0xe1, 0xc4, 0xf6, 0xac, 0x90, 0x5c, 0x97, 0x43, 0x72, 0x36, 0xe4, 0x85, 0x22, 0x13,
- 0xe5, 0xd4, 0x66, 0x43, 0xa9, 0x52, 0x0f, 0xa7, 0xd1, 0x07, 0xb3, 0x51, 0x45, 0x73, 0x22, 0x55,
- 0x92, 0x0b, 0x07, 0xda, 0x0d, 0x50, 0x09, 0xe2, 0x3b, 0xdf, 0x97, 0x32, 0x11, 0x82, 0x94, 0xb2,
- 0x8e, 0x3f, 0xfc, 0x06, 0x40, 0xeb, 0xb4, 0x12, 0x44, 0xc2, 0x1d, 0x10, 0x25, 0x45, 0x85, 0x82,
- 0xad, 0x60, 0x77, 0xb1, 0xbb, 0x1c, 0xd7, 0x79, 0xf1, 0x34, 0x2f, 0x7e, 0x5d, 0x54, 0xd8, 0x00,
- 0xeb, 0x04, 0x45, 0xa1, 0xcf, 0x09, 0x8a, 0x0d, 0x80, 0x4f, 0x41, 0x94, 0x13, 0x85, 0x22, 0xeb,
- 0xd6, 0x1a, 0xee, 0x98, 0xa8, 0x73, 0x3e, 0xc2, 0xc6, 0xc0, 0x1d, 0x10, 0xe6, 0x13, 0x34, 0x67,
- 0xe5, 0x6a, 0x53, 0xd2, 0x09, 0x2d, 0x70, 0x98, 0x4f, 0xe0, 0x73, 0x10, 0x8d, 0x74, 0x89, 0x5a,
- 0x16, 0xae, 0x37, 0xe0, 0xa1, 0x1b, 0x1d, 0x36, 0xca, 0x14, 0x25, 0x39, 0x9a, 0xf7, 0x14, 0x3d,
- 0x32, 0x63, 0xc4, 0x21, 0xc9, 0xe1, 0x33, 0x10, 0x66, 0x39, 0xfa, 0xd7, 0xba, 0x76, 0xc3, 0xbd,
- 0x35, 0x13, 0x3d, 0x4e, 0xe4, 0x05, 0x0e, 0xb3, 0x1c, 0xc6, 0x20, 0x94, 0x43, 0xb4, 0x60, 0x6d,
- 0xa7, 0x61, 0x4f, 0xec, 0x6c, 0xdf, 0xd4, 0xa3, 0xc5, 0xa1, 0x1c, 0xc2, 0x27, 0x20, 0x94, 0x0a,
- 0xfd, 0xe7, 0x69, 0xc1, 0x89, 0x9d, 0x32, 0x0e, 0xa5, 0x82, 0xbb, 0x20, 0xba, 0x4c, 0x18, 0x02,
- 0x9e, 0xdd, 0x7e, 0x4e, 0x98, 0x26, 0xd8, 0x10, 0xf8, 0x02, 0xb4, 0x0a, 0x66, 0xec, 0xe2, 0x56,
- 0xb0, 0xbb, 0x74, 0xc5, 0x8e, 0x3f, 0x68, 0xc6, 0x6a, 0x5f, 0x43, 0xd8, 0x05, 0x2d, 0xa9, 0x4c,
- 0xc6, 0xff, 0xb6, 0xfa, 0xe6, 0x55, 0xfb, 0xa0, 0xc5, 0xd8, 0xe5, 0x58, 0x0a, 0x63, 0x30, 0x97,
- 0x9a, 0x94, 0x5b, 0x9e, 0xb6, 0x1c, 0x70, 0xee, 0x16, 0xb1, 0x0e, 0xee, 0x83, 0x79, 0xa9, 0x4a,
- 0x93, 0xb1, 0x74, 0xfd, 0x61, 0x1d, 0x33, 0x0b, 0x30, 0xa9, 0x2e, 0xd1, 0x6d, 0xcf, 0x02, 0xef,
- 0xa9, 0x54, 0x6e, 0x01, 0xe3, 0xcc, 0x94, 0x94, 0x44, 0x77, 0x3c, 0xfa, 0x74, 0xfa, 0x22, 0x70,
- 0xa8, 0x24, 0x7c, 0x04, 0x02, 0x85, 0xee, 0x5a, 0xba, 0xd2, 0xa4, 0x95, 0x20, 0x38, 0x50, 0x70,
- 0x1b, 0x04, 0x19, 0x82, 0x9e, 0x7e, 0xdb, 0xa9, 0xe3, 0x20, 0x83, 0x8f, 0x41, 0x48, 0x0a, 0x74,
- 0xcf, 0x53, 0xeb, 0xa8, 0xd0, 0x39, 0x0e, 0x49, 0x61, 0x86, 0x42, 0x0a, 0x73, 0xfa, 0x65, 0xcf,
- 0x06, 0x8d, 0x74, 0x0d, 0xb6, 0xd0, 0xbc, 0x0e, 0x2e, 0x14, 0x5a, 0xf1, 0x74, 0xeb, 0xa3, 0xa8,
- 0x2f, 0x32, 0x17, 0x0a, 0xc6, 0x20, 0x1a, 0xa5, 0x0c, 0xad, 0x7a, 0xa6, 0x77, 0xc8, 0x75, 0xca,
- 0x88, 0xbb, 0x21, 0xa3, 0x94, 0xc1, 0x3d, 0x10, 0x65, 0x4c, 0xa1, 0x35, 0xeb, 0x37, 0x9a, 0x67,
- 0x63, 0x3c, 0x71, 0xad, 0x35, 0xce, 0x70, 0x3a, 0xe8, 0x23, 0xe4, 0xe1, 0xef, 0x0a, 0x35, 0xe8,
- 0x3b, 0x4e, 0x07, 0x7d, 0xb3, 0x1b, 0x3d, 0xe8, 0xa3, 0x75, 0xcf, 0x6e, 0x3e, 0xfd, 0xed, 0xf5,
- 0xa0, 0x6f, 0xcb, 0xf7, 0xba, 0xa8, 0xed, 0x2f, 0xdf, 0xeb, 0x4e, 0xcb, 0xf7, 0xba, 0xb6, 0x7c,
- 0xaf, 0x8b, 0x36, 0xae, 0x29, 0xff, 0xdb, 0x6b, 0xeb, 0xe7, 0x52, 0xce, 0x19, 0xda, 0xbc, 0xc1,
- 0x45, 0xe5, 0xdc, 0xdc, 0xbb, 0x48, 0xaa, 0x12, 0xdd, 0xbf, 0xc1, 0x53, 0x30, 0x10, 0xbe, 0x04,
- 0xad, 0xb4, 0x52, 0x44, 0xa2, 0x8e, 0xe7, 0x00, 0x07, 0x26, 0xea, 0x46, 0x6b, 0xe5, 0xc1, 0xc2,
- 0xf7, 0x1f, 0x9d, 0x7f, 0xbe, 0xfe, 0xec, 0x04, 0xe9, 0xbc, 0x55, 0xbd, 0x5f, 0x01, 0x00, 0x00,
- 0xff, 0xff, 0x99, 0xa8, 0x9a, 0xae, 0xe4, 0x06, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/issue444/issue444.pb.go b/vendor/github.com/gogo/protobuf/test/issue444/issue444.pb.go
index a4bacee5f9..fb10a41c3c 100644
--- a/vendor/github.com/gogo/protobuf/test/issue444/issue444.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/issue444/issue444.pb.go
@@ -3,10 +3,12 @@
package issue444
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -30,7 +32,7 @@ func (m *SizeMe) Reset() { *m = SizeMe{} }
func (m *SizeMe) String() string { return proto.CompactTextString(m) }
func (*SizeMe) ProtoMessage() {}
func (*SizeMe) Descriptor() ([]byte, []int) {
- return fileDescriptor_issue444_3dcd5c81d21eac70, []int{0}
+ return fileDescriptor_e39b8ab75bd9d8cd, []int{0}
}
func (m *SizeMe) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SizeMe.Unmarshal(m, b)
@@ -38,8 +40,8 @@ func (m *SizeMe) XXX_Unmarshal(b []byte) error {
func (m *SizeMe) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SizeMe.Marshal(b, m, deterministic)
}
-func (dst *SizeMe) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SizeMe.Merge(dst, src)
+func (m *SizeMe) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SizeMe.Merge(m, src)
}
func (m *SizeMe) XXX_Size() int {
return xxx_messageInfo_SizeMe.Size(m)
@@ -60,6 +62,20 @@ func (m *SizeMe) GetFoo() string {
func init() {
proto.RegisterType((*SizeMe)(nil), "issue444.SizeMe")
}
+
+func init() { proto.RegisterFile("issue444.proto", fileDescriptor_e39b8ab75bd9d8cd) }
+
+var fileDescriptor_e39b8ab75bd9d8cd = []byte{
+ // 111 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e,
+ 0x4d, 0x35, 0x31, 0x31, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
+ 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5,
+ 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x54, 0x92, 0xe2, 0x62,
+ 0x0b, 0xce, 0xac, 0x4a, 0xf5, 0x4d, 0x15, 0x12, 0xe0, 0x62, 0x4e, 0xcb, 0xcf, 0x97, 0x60, 0x54,
+ 0x60, 0xd4, 0xe0, 0x0c, 0x02, 0x31, 0x9d, 0x58, 0x1e, 0x3c, 0x92, 0x63, 0x4c, 0x62, 0x03, 0x2b,
+ 0x34, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x9a, 0xe0, 0xfa, 0x18, 0x73, 0x00, 0x00, 0x00,
+}
+
func (m *SizeMe) Size() (n int) {
if m == nil {
return 0
@@ -89,16 +105,3 @@ func sovIssue444(x uint64) (n int) {
func sozIssue444(x uint64) (n int) {
return sovIssue444(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
-
-func init() { proto.RegisterFile("issue444.proto", fileDescriptor_issue444_3dcd5c81d21eac70) }
-
-var fileDescriptor_issue444_3dcd5c81d21eac70 = []byte{
- // 111 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e,
- 0x4d, 0x35, 0x31, 0x31, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
- 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5,
- 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x54, 0x92, 0xe2, 0x62,
- 0x0b, 0xce, 0xac, 0x4a, 0xf5, 0x4d, 0x15, 0x12, 0xe0, 0x62, 0x4e, 0xcb, 0xcf, 0x97, 0x60, 0x54,
- 0x60, 0xd4, 0xe0, 0x0c, 0x02, 0x31, 0x9d, 0x58, 0x1e, 0x3c, 0x92, 0x63, 0x4c, 0x62, 0x03, 0x2b,
- 0x34, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x9a, 0xe0, 0xfa, 0x18, 0x73, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/issue449/issue449.pb.go b/vendor/github.com/gogo/protobuf/test/issue449/issue449.pb.go
index 3e363be6b5..8fdb34d899 100644
--- a/vendor/github.com/gogo/protobuf/test/issue449/issue449.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/issue449/issue449.pb.go
@@ -3,16 +3,15 @@
package issue449
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
-
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -39,7 +38,7 @@ func (m *CodeGenMsg) Reset() { *m = CodeGenMsg{} }
func (m *CodeGenMsg) String() string { return proto.CompactTextString(m) }
func (*CodeGenMsg) ProtoMessage() {}
func (*CodeGenMsg) Descriptor() ([]byte, []int) {
- return fileDescriptor_issue449_65778f0ef21a6515, []int{0}
+ return fileDescriptor_dece653619274e1d, []int{0}
}
func (m *CodeGenMsg) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -56,8 +55,8 @@ func (m *CodeGenMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *CodeGenMsg) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CodeGenMsg.Merge(dst, src)
+func (m *CodeGenMsg) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CodeGenMsg.Merge(m, src)
}
func (m *CodeGenMsg) XXX_Size() int {
return m.Size()
@@ -110,7 +109,7 @@ func (m *NonCodeGenMsg) Reset() { *m = NonCodeGenMsg{} }
func (m *NonCodeGenMsg) String() string { return proto.CompactTextString(m) }
func (*NonCodeGenMsg) ProtoMessage() {}
func (*NonCodeGenMsg) Descriptor() ([]byte, []int) {
- return fileDescriptor_issue449_65778f0ef21a6515, []int{1}
+ return fileDescriptor_dece653619274e1d, []int{1}
}
func (m *NonCodeGenMsg) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NonCodeGenMsg.Unmarshal(m, b)
@@ -118,8 +117,8 @@ func (m *NonCodeGenMsg) XXX_Unmarshal(b []byte) error {
func (m *NonCodeGenMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NonCodeGenMsg.Marshal(b, m, deterministic)
}
-func (dst *NonCodeGenMsg) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NonCodeGenMsg.Merge(dst, src)
+func (m *NonCodeGenMsg) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NonCodeGenMsg.Merge(m, src)
}
func (m *NonCodeGenMsg) XXX_Size() int {
return xxx_messageInfo_NonCodeGenMsg.Size(m)
@@ -162,6 +161,26 @@ func init() {
proto.RegisterType((*CodeGenMsg)(nil), "issue449.CodeGenMsg")
proto.RegisterType((*NonCodeGenMsg)(nil), "issue449.NonCodeGenMsg")
}
+
+func init() { proto.RegisterFile("issue449.proto", fileDescriptor_dece653619274e1d) }
+
+var fileDescriptor_dece653619274e1d = []byte{
+ // 203 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e,
+ 0x4d, 0x35, 0x31, 0xb1, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
+ 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5,
+ 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x54, 0x5a, 0xc4, 0xc8,
+ 0xc5, 0xe5, 0x9c, 0x9f, 0x92, 0xea, 0x9e, 0x9a, 0xe7, 0x5b, 0x9c, 0x2e, 0xa4, 0xc0, 0xc5, 0xed,
+ 0x99, 0x57, 0x62, 0x66, 0x12, 0x94, 0x5a, 0x18, 0x50, 0x52, 0x24, 0xc1, 0xa8, 0xc0, 0xa4, 0xc1,
+ 0x1c, 0x84, 0x2c, 0x04, 0x55, 0x61, 0x6c, 0xe4, 0x5f, 0x50, 0x02, 0x52, 0xc1, 0xa4, 0xc0, 0xa8,
+ 0xc1, 0x1a, 0x84, 0x2c, 0x24, 0xa4, 0xc0, 0xc5, 0x01, 0xd3, 0x20, 0xc1, 0x0c, 0x32, 0xc0, 0x89,
+ 0xe5, 0xc4, 0x3d, 0x79, 0x86, 0x20, 0xb8, 0x28, 0x54, 0x05, 0x58, 0x83, 0x04, 0x0b, 0xc8, 0x00,
+ 0x24, 0x15, 0x60, 0x51, 0x2b, 0x9e, 0x8e, 0x85, 0xf2, 0x8c, 0x13, 0x16, 0xca, 0x33, 0x2e, 0x58,
+ 0x28, 0xcf, 0xa8, 0xb4, 0x94, 0x91, 0x8b, 0xd7, 0x2f, 0x3f, 0x6f, 0x90, 0xba, 0x93, 0x61, 0xc2,
+ 0x42, 0x79, 0x86, 0x05, 0x0b, 0xe5, 0x19, 0x9c, 0x58, 0x56, 0x3c, 0x92, 0x63, 0x04, 0x04, 0x00,
+ 0x00, 0xff, 0xff, 0xfd, 0x5a, 0xe2, 0x72, 0x9c, 0x01, 0x00, 0x00,
+}
+
func (this *CodeGenMsg) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -355,7 +374,7 @@ func (m *CodeGenMsg) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -383,7 +402,7 @@ func (m *CodeGenMsg) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -404,7 +423,7 @@ func (m *CodeGenMsg) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -424,7 +443,7 @@ func (m *CodeGenMsg) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Int64Req |= (int64(b) & 0x7F) << shift
+ m.Int64Req |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -444,7 +463,7 @@ func (m *CodeGenMsg) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Int32Opt |= (int32(b) & 0x7F) << shift
+ m.Int32Opt |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -458,6 +477,9 @@ func (m *CodeGenMsg) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthIssue449
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthIssue449
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -531,10 +553,13 @@ func skipIssue449(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthIssue449
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthIssue449
+ }
return iNdEx, nil
case 3:
for {
@@ -563,6 +588,9 @@ func skipIssue449(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthIssue449
+ }
}
return iNdEx, nil
case 4:
@@ -581,22 +609,3 @@ var (
ErrInvalidLengthIssue449 = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowIssue449 = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("issue449.proto", fileDescriptor_issue449_65778f0ef21a6515) }
-
-var fileDescriptor_issue449_65778f0ef21a6515 = []byte{
- // 203 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e,
- 0x4d, 0x35, 0x31, 0xb1, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
- 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5,
- 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x54, 0x5a, 0xc4, 0xc8,
- 0xc5, 0xe5, 0x9c, 0x9f, 0x92, 0xea, 0x9e, 0x9a, 0xe7, 0x5b, 0x9c, 0x2e, 0xa4, 0xc0, 0xc5, 0xed,
- 0x99, 0x57, 0x62, 0x66, 0x12, 0x94, 0x5a, 0x18, 0x50, 0x52, 0x24, 0xc1, 0xa8, 0xc0, 0xa4, 0xc1,
- 0x1c, 0x84, 0x2c, 0x04, 0x55, 0x61, 0x6c, 0xe4, 0x5f, 0x50, 0x02, 0x52, 0xc1, 0xa4, 0xc0, 0xa8,
- 0xc1, 0x1a, 0x84, 0x2c, 0x24, 0xa4, 0xc0, 0xc5, 0x01, 0xd3, 0x20, 0xc1, 0x0c, 0x32, 0xc0, 0x89,
- 0xe5, 0xc4, 0x3d, 0x79, 0x86, 0x20, 0xb8, 0x28, 0x54, 0x05, 0x58, 0x83, 0x04, 0x0b, 0xc8, 0x00,
- 0x24, 0x15, 0x60, 0x51, 0x2b, 0x9e, 0x8e, 0x85, 0xf2, 0x8c, 0x13, 0x16, 0xca, 0x33, 0x2e, 0x58,
- 0x28, 0xcf, 0xa8, 0xb4, 0x94, 0x91, 0x8b, 0xd7, 0x2f, 0x3f, 0x6f, 0x90, 0xba, 0x93, 0x61, 0xc2,
- 0x42, 0x79, 0x86, 0x05, 0x0b, 0xe5, 0x19, 0x9c, 0x58, 0x56, 0x3c, 0x92, 0x63, 0x04, 0x04, 0x00,
- 0x00, 0xff, 0xff, 0xfd, 0x5a, 0xe2, 0x72, 0x9c, 0x01, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/issue503/issue503.pb.go b/vendor/github.com/gogo/protobuf/test/issue503/issue503.pb.go
new file mode 100644
index 0000000000..b3833d69bd
--- /dev/null
+++ b/vendor/github.com/gogo/protobuf/test/issue503/issue503.pb.go
@@ -0,0 +1,865 @@
+// Code generated by protoc-gen-gogo. DO NOT EDIT.
+// source: issue503.proto
+
+package issue503
+
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
+
+type Foo struct {
+ Num1 []int64 `protobuf:"varint,1,rep,packed,name=num1,proto3" json:"num1,omitempty"`
+ Num2 []int32 `protobuf:"varint,2,rep,packed,name=num2,proto3" json:"num2,omitempty"`
+ Str1 []string `protobuf:"bytes,3,rep,name=str1,proto3" json:"str1,omitempty"`
+ Dat1 [][]byte `protobuf:"bytes,4,rep,name=dat1,proto3" json:"dat1,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Foo) Reset() { *m = Foo{} }
+func (m *Foo) String() string { return proto.CompactTextString(m) }
+func (*Foo) ProtoMessage() {}
+func (*Foo) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8886d01c7a4b3fa8, []int{0}
+}
+func (m *Foo) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *Foo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_Foo.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalTo(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *Foo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Foo.Merge(m, src)
+}
+func (m *Foo) XXX_Size() int {
+ return m.Size()
+}
+func (m *Foo) XXX_DiscardUnknown() {
+ xxx_messageInfo_Foo.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Foo proto.InternalMessageInfo
+
+func (m *Foo) GetNum1() []int64 {
+ if m != nil {
+ return m.Num1
+ }
+ return nil
+}
+
+func (m *Foo) GetNum2() []int32 {
+ if m != nil {
+ return m.Num2
+ }
+ return nil
+}
+
+func (m *Foo) GetStr1() []string {
+ if m != nil {
+ return m.Str1
+ }
+ return nil
+}
+
+func (m *Foo) GetDat1() [][]byte {
+ if m != nil {
+ return m.Dat1
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterType((*Foo)(nil), "issue503.Foo")
+}
+
+func init() { proto.RegisterFile("issue503.proto", fileDescriptor_8886d01c7a4b3fa8) }
+
+var fileDescriptor_8886d01c7a4b3fa8 = []byte{
+ // 171 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e,
+ 0x4d, 0x35, 0x35, 0x30, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
+ 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5,
+ 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x54, 0x0a, 0xe5, 0x62,
+ 0x76, 0xcb, 0xcf, 0x17, 0x12, 0xe2, 0x62, 0xc9, 0x2b, 0xcd, 0x35, 0x94, 0x60, 0x54, 0x60, 0xd6,
+ 0x60, 0x0e, 0x02, 0xb3, 0xa1, 0x62, 0x46, 0x12, 0x4c, 0x0a, 0xcc, 0x1a, 0xac, 0x60, 0x31, 0x23,
+ 0x90, 0x58, 0x71, 0x49, 0x91, 0xa1, 0x04, 0xb3, 0x02, 0xb3, 0x06, 0x67, 0x10, 0x98, 0x0d, 0x12,
+ 0x4b, 0x49, 0x2c, 0x31, 0x94, 0x60, 0x51, 0x60, 0xd6, 0xe0, 0x09, 0x02, 0xb3, 0x9d, 0x24, 0x1e,
+ 0x3c, 0x94, 0x63, 0xfc, 0xf1, 0x50, 0x8e, 0x71, 0xc5, 0x23, 0x39, 0xc6, 0x13, 0x8f, 0xe4, 0x18,
+ 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0x31, 0x89, 0x0d, 0x6c, 0xaf, 0x31, 0x20, 0x00,
+ 0x00, 0xff, 0xff, 0xe2, 0xf0, 0x54, 0xb4, 0xc2, 0x00, 0x00, 0x00,
+}
+
+func (this *Foo) VerboseEqual(that interface{}) error {
+ if that == nil {
+ if this == nil {
+ return nil
+ }
+ return fmt.Errorf("that == nil && this != nil")
+ }
+
+ that1, ok := that.(*Foo)
+ if !ok {
+ that2, ok := that.(Foo)
+ if ok {
+ that1 = &that2
+ } else {
+ return fmt.Errorf("that is not of type *Foo")
+ }
+ }
+ if that1 == nil {
+ if this == nil {
+ return nil
+ }
+ return fmt.Errorf("that is type *Foo but is nil && this != nil")
+ } else if this == nil {
+ return fmt.Errorf("that is type *Foo but is not nil && this == nil")
+ }
+ if len(this.Num1) != len(that1.Num1) {
+ return fmt.Errorf("Num1 this(%v) Not Equal that(%v)", len(this.Num1), len(that1.Num1))
+ }
+ for i := range this.Num1 {
+ if this.Num1[i] != that1.Num1[i] {
+ return fmt.Errorf("Num1 this[%v](%v) Not Equal that[%v](%v)", i, this.Num1[i], i, that1.Num1[i])
+ }
+ }
+ if len(this.Num2) != len(that1.Num2) {
+ return fmt.Errorf("Num2 this(%v) Not Equal that(%v)", len(this.Num2), len(that1.Num2))
+ }
+ for i := range this.Num2 {
+ if this.Num2[i] != that1.Num2[i] {
+ return fmt.Errorf("Num2 this[%v](%v) Not Equal that[%v](%v)", i, this.Num2[i], i, that1.Num2[i])
+ }
+ }
+ if len(this.Str1) != len(that1.Str1) {
+ return fmt.Errorf("Str1 this(%v) Not Equal that(%v)", len(this.Str1), len(that1.Str1))
+ }
+ for i := range this.Str1 {
+ if this.Str1[i] != that1.Str1[i] {
+ return fmt.Errorf("Str1 this[%v](%v) Not Equal that[%v](%v)", i, this.Str1[i], i, that1.Str1[i])
+ }
+ }
+ if len(this.Dat1) != len(that1.Dat1) {
+ return fmt.Errorf("Dat1 this(%v) Not Equal that(%v)", len(this.Dat1), len(that1.Dat1))
+ }
+ for i := range this.Dat1 {
+ if !bytes.Equal(this.Dat1[i], that1.Dat1[i]) {
+ return fmt.Errorf("Dat1 this[%v](%v) Not Equal that[%v](%v)", i, this.Dat1[i], i, that1.Dat1[i])
+ }
+ }
+ if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
+ return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
+ }
+ return nil
+}
+func (this *Foo) Equal(that interface{}) bool {
+ if that == nil {
+ return this == nil
+ }
+
+ that1, ok := that.(*Foo)
+ if !ok {
+ that2, ok := that.(Foo)
+ if ok {
+ that1 = &that2
+ } else {
+ return false
+ }
+ }
+ if that1 == nil {
+ return this == nil
+ } else if this == nil {
+ return false
+ }
+ if len(this.Num1) != len(that1.Num1) {
+ return false
+ }
+ for i := range this.Num1 {
+ if this.Num1[i] != that1.Num1[i] {
+ return false
+ }
+ }
+ if len(this.Num2) != len(that1.Num2) {
+ return false
+ }
+ for i := range this.Num2 {
+ if this.Num2[i] != that1.Num2[i] {
+ return false
+ }
+ }
+ if len(this.Str1) != len(that1.Str1) {
+ return false
+ }
+ for i := range this.Str1 {
+ if this.Str1[i] != that1.Str1[i] {
+ return false
+ }
+ }
+ if len(this.Dat1) != len(that1.Dat1) {
+ return false
+ }
+ for i := range this.Dat1 {
+ if !bytes.Equal(this.Dat1[i], that1.Dat1[i]) {
+ return false
+ }
+ }
+ if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
+ return false
+ }
+ return true
+}
+func (m *Foo) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalTo(dAtA)
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *Foo) MarshalTo(dAtA []byte) (int, error) {
+ var i int
+ _ = i
+ var l int
+ _ = l
+ if len(m.Num1) > 0 {
+ dAtA2 := make([]byte, len(m.Num1)*10)
+ var j1 int
+ for _, num1 := range m.Num1 {
+ num := uint64(num1)
+ for num >= 1<<7 {
+ dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80)
+ num >>= 7
+ j1++
+ }
+ dAtA2[j1] = uint8(num)
+ j1++
+ }
+ dAtA[i] = 0xa
+ i++
+ i = encodeVarintIssue503(dAtA, i, uint64(j1))
+ i += copy(dAtA[i:], dAtA2[:j1])
+ }
+ if len(m.Num2) > 0 {
+ dAtA4 := make([]byte, len(m.Num2)*10)
+ var j3 int
+ for _, num1 := range m.Num2 {
+ num := uint64(num1)
+ for num >= 1<<7 {
+ dAtA4[j3] = uint8(uint64(num)&0x7f | 0x80)
+ num >>= 7
+ j3++
+ }
+ dAtA4[j3] = uint8(num)
+ j3++
+ }
+ dAtA[i] = 0x12
+ i++
+ i = encodeVarintIssue503(dAtA, i, uint64(j3))
+ i += copy(dAtA[i:], dAtA4[:j3])
+ }
+ if len(m.Str1) > 0 {
+ for _, s := range m.Str1 {
+ dAtA[i] = 0x1a
+ i++
+ l = len(s)
+ for l >= 1<<7 {
+ dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
+ l >>= 7
+ i++
+ }
+ dAtA[i] = uint8(l)
+ i++
+ i += copy(dAtA[i:], s)
+ }
+ }
+ if len(m.Dat1) > 0 {
+ for _, b := range m.Dat1 {
+ dAtA[i] = 0x22
+ i++
+ i = encodeVarintIssue503(dAtA, i, uint64(len(b)))
+ i += copy(dAtA[i:], b)
+ }
+ }
+ if m.XXX_unrecognized != nil {
+ i += copy(dAtA[i:], m.XXX_unrecognized)
+ }
+ return i, nil
+}
+
+func encodeVarintIssue503(dAtA []byte, offset int, v uint64) int {
+ for v >= 1<<7 {
+ dAtA[offset] = uint8(v&0x7f | 0x80)
+ v >>= 7
+ offset++
+ }
+ dAtA[offset] = uint8(v)
+ return offset + 1
+}
+func NewPopulatedFoo(r randyIssue503, easy bool) *Foo {
+ this := &Foo{}
+ v1 := r.Intn(10)
+ this.Num1 = make([]int64, v1)
+ for i := 0; i < v1; i++ {
+ this.Num1[i] = int64(r.Int63())
+ if r.Intn(2) == 0 {
+ this.Num1[i] *= -1
+ }
+ }
+ v2 := r.Intn(10)
+ this.Num2 = make([]int32, v2)
+ for i := 0; i < v2; i++ {
+ this.Num2[i] = int32(r.Int31())
+ if r.Intn(2) == 0 {
+ this.Num2[i] *= -1
+ }
+ }
+ v3 := r.Intn(10)
+ this.Str1 = make([]string, v3)
+ for i := 0; i < v3; i++ {
+ this.Str1[i] = string(randStringIssue503(r))
+ }
+ v4 := r.Intn(10)
+ this.Dat1 = make([][]byte, v4)
+ for i := 0; i < v4; i++ {
+ v5 := r.Intn(100)
+ this.Dat1[i] = make([]byte, v5)
+ for j := 0; j < v5; j++ {
+ this.Dat1[i][j] = byte(r.Intn(256))
+ }
+ }
+ if !easy && r.Intn(10) != 0 {
+ this.XXX_unrecognized = randUnrecognizedIssue503(r, 5)
+ }
+ return this
+}
+
+type randyIssue503 interface {
+ Float32() float32
+ Float64() float64
+ Int63() int64
+ Int31() int32
+ Uint32() uint32
+ Intn(n int) int
+}
+
+func randUTF8RuneIssue503(r randyIssue503) rune {
+ ru := r.Intn(62)
+ if ru < 10 {
+ return rune(ru + 48)
+ } else if ru < 36 {
+ return rune(ru + 55)
+ }
+ return rune(ru + 61)
+}
+func randStringIssue503(r randyIssue503) string {
+ v6 := r.Intn(100)
+ tmps := make([]rune, v6)
+ for i := 0; i < v6; i++ {
+ tmps[i] = randUTF8RuneIssue503(r)
+ }
+ return string(tmps)
+}
+func randUnrecognizedIssue503(r randyIssue503, maxFieldNumber int) (dAtA []byte) {
+ l := r.Intn(5)
+ for i := 0; i < l; i++ {
+ wire := r.Intn(4)
+ if wire == 3 {
+ wire = 5
+ }
+ fieldNumber := maxFieldNumber + r.Intn(100)
+ dAtA = randFieldIssue503(dAtA, r, fieldNumber, wire)
+ }
+ return dAtA
+}
+func randFieldIssue503(dAtA []byte, r randyIssue503, fieldNumber int, wire int) []byte {
+ key := uint32(fieldNumber)<<3 | uint32(wire)
+ switch wire {
+ case 0:
+ dAtA = encodeVarintPopulateIssue503(dAtA, uint64(key))
+ v7 := r.Int63()
+ if r.Intn(2) == 0 {
+ v7 *= -1
+ }
+ dAtA = encodeVarintPopulateIssue503(dAtA, uint64(v7))
+ case 1:
+ dAtA = encodeVarintPopulateIssue503(dAtA, uint64(key))
+ dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
+ case 2:
+ dAtA = encodeVarintPopulateIssue503(dAtA, uint64(key))
+ ll := r.Intn(100)
+ dAtA = encodeVarintPopulateIssue503(dAtA, uint64(ll))
+ for j := 0; j < ll; j++ {
+ dAtA = append(dAtA, byte(r.Intn(256)))
+ }
+ default:
+ dAtA = encodeVarintPopulateIssue503(dAtA, uint64(key))
+ dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
+ }
+ return dAtA
+}
+func encodeVarintPopulateIssue503(dAtA []byte, v uint64) []byte {
+ for v >= 1<<7 {
+ dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80))
+ v >>= 7
+ }
+ dAtA = append(dAtA, uint8(v))
+ return dAtA
+}
+func (m *Foo) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.Num1) > 0 {
+ l = 0
+ for _, e := range m.Num1 {
+ l += sovIssue503(uint64(e))
+ }
+ n += 1 + sovIssue503(uint64(l)) + l
+ }
+ if len(m.Num2) > 0 {
+ l = 0
+ for _, e := range m.Num2 {
+ l += sovIssue503(uint64(e))
+ }
+ n += 1 + sovIssue503(uint64(l)) + l
+ }
+ if len(m.Str1) > 0 {
+ for _, s := range m.Str1 {
+ l = len(s)
+ n += 1 + l + sovIssue503(uint64(l))
+ }
+ }
+ if len(m.Dat1) > 0 {
+ for _, b := range m.Dat1 {
+ l = len(b)
+ n += 1 + l + sovIssue503(uint64(l))
+ }
+ }
+ if m.XXX_unrecognized != nil {
+ n += len(m.XXX_unrecognized)
+ }
+ return n
+}
+
+func sovIssue503(x uint64) (n int) {
+ for {
+ n++
+ x >>= 7
+ if x == 0 {
+ break
+ }
+ }
+ return n
+}
+func sozIssue503(x uint64) (n int) {
+ return sovIssue503(uint64((x << 1) ^ uint64((int64(x) >> 63))))
+}
+func (m *Foo) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowIssue503
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= (uint64(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Foo: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Foo: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType == 0 {
+ var v int64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowIssue503
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= (int64(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Num1 = append(m.Num1, v)
+ } else if wireType == 2 {
+ var packedLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowIssue503
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ packedLen |= (int(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if packedLen < 0 {
+ return ErrInvalidLengthIssue503
+ }
+ postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthIssue503
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var elementCount int
+ var count int
+ for _, integer := range dAtA[iNdEx:postIndex] {
+ if integer < 128 {
+ count++
+ }
+ }
+ elementCount = count
+ if elementCount != 0 && len(m.Num1) == 0 {
+ m.Num1 = make([]int64, 0, elementCount)
+ }
+ for iNdEx < postIndex {
+ var v int64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowIssue503
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= (int64(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Num1 = append(m.Num1, v)
+ }
+ } else {
+ return fmt.Errorf("proto: wrong wireType = %d for field Num1", wireType)
+ }
+ case 2:
+ if wireType == 0 {
+ var v int32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowIssue503
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= (int32(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Num2 = append(m.Num2, v)
+ } else if wireType == 2 {
+ var packedLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowIssue503
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ packedLen |= (int(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if packedLen < 0 {
+ return ErrInvalidLengthIssue503
+ }
+ postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthIssue503
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var elementCount int
+ var count int
+ for _, integer := range dAtA[iNdEx:postIndex] {
+ if integer < 128 {
+ count++
+ }
+ }
+ elementCount = count
+ if elementCount != 0 && len(m.Num2) == 0 {
+ m.Num2 = make([]int32, 0, elementCount)
+ }
+ for iNdEx < postIndex {
+ var v int32
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowIssue503
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= (int32(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Num2 = append(m.Num2, v)
+ }
+ } else {
+ return fmt.Errorf("proto: wrong wireType = %d for field Num2", wireType)
+ }
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Str1", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowIssue503
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= (uint64(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthIssue503
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthIssue503
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Str1 = append(m.Str1, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Dat1", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowIssue503
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= (int(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return ErrInvalidLengthIssue503
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthIssue503
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Dat1 = append(m.Dat1, make([]byte, postIndex-iNdEx))
+ copy(m.Dat1[len(m.Dat1)-1], dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipIssue503(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if skippy < 0 {
+ return ErrInvalidLengthIssue503
+ }
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthIssue503
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func skipIssue503(dAtA []byte) (n int, err error) {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return 0, ErrIntOverflowIssue503
+ }
+ if iNdEx >= l {
+ return 0, io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= (uint64(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ wireType := int(wire & 0x7)
+ switch wireType {
+ case 0:
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return 0, ErrIntOverflowIssue503
+ }
+ if iNdEx >= l {
+ return 0, io.ErrUnexpectedEOF
+ }
+ iNdEx++
+ if dAtA[iNdEx-1] < 0x80 {
+ break
+ }
+ }
+ return iNdEx, nil
+ case 1:
+ iNdEx += 8
+ return iNdEx, nil
+ case 2:
+ var length int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return 0, ErrIntOverflowIssue503
+ }
+ if iNdEx >= l {
+ return 0, io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ length |= (int(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if length < 0 {
+ return 0, ErrInvalidLengthIssue503
+ }
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthIssue503
+ }
+ return iNdEx, nil
+ case 3:
+ for {
+ var innerWire uint64
+ var start int = iNdEx
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return 0, ErrIntOverflowIssue503
+ }
+ if iNdEx >= l {
+ return 0, io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ innerWire |= (uint64(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ innerWireType := int(innerWire & 0x7)
+ if innerWireType == 4 {
+ break
+ }
+ next, err := skipIssue503(dAtA[start:])
+ if err != nil {
+ return 0, err
+ }
+ iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthIssue503
+ }
+ }
+ return iNdEx, nil
+ case 4:
+ return iNdEx, nil
+ case 5:
+ iNdEx += 4
+ return iNdEx, nil
+ default:
+ return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
+ }
+ }
+ panic("unreachable")
+}
+
+var (
+ ErrInvalidLengthIssue503 = fmt.Errorf("proto: negative length found during unmarshaling")
+ ErrIntOverflowIssue503 = fmt.Errorf("proto: integer overflow")
+)
diff --git a/vendor/github.com/gogo/protobuf/test/issue8/proto.pb.go b/vendor/github.com/gogo/protobuf/test/issue8/proto.pb.go
index 9493218197..457a3ef2a9 100644
--- a/vendor/github.com/gogo/protobuf/test/issue8/proto.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/issue8/proto.pb.go
@@ -3,15 +3,15 @@
package proto
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
-
-import io "io"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -35,7 +35,7 @@ func (m *Foo) Reset() { *m = Foo{} }
func (m *Foo) String() string { return proto.CompactTextString(m) }
func (*Foo) ProtoMessage() {}
func (*Foo) Descriptor() ([]byte, []int) {
- return fileDescriptor_proto_77f3bd346fa75d17, []int{0}
+ return fileDescriptor_2fcc84b9998d60d8, []int{0}
}
func (m *Foo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -43,8 +43,8 @@ func (m *Foo) XXX_Unmarshal(b []byte) error {
func (m *Foo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Foo.Marshal(b, m, deterministic)
}
-func (dst *Foo) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Foo.Merge(dst, src)
+func (m *Foo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Foo.Merge(m, src)
}
func (m *Foo) XXX_Size() int {
return xxx_messageInfo_Foo.Size(m)
@@ -65,6 +65,20 @@ func (m *Foo) GetBar() uint64 {
func init() {
proto.RegisterType((*Foo)(nil), "proto.Foo")
}
+
+func init() { proto.RegisterFile("proto.proto", fileDescriptor_2fcc84b9998d60d8) }
+
+var fileDescriptor_2fcc84b9998d60d8 = []byte{
+ // 109 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2e, 0x28, 0xca, 0x2f,
+ 0xc9, 0xd7, 0x03, 0x93, 0x42, 0xac, 0x60, 0x4a, 0x4a, 0x37, 0x3d, 0xb3, 0x24, 0xa3, 0x34, 0x49,
+ 0x2f, 0x39, 0x3f, 0x57, 0x3f, 0x3d, 0x3f, 0x3d, 0x5f, 0x1f, 0x2c, 0x9c, 0x54, 0x9a, 0x06, 0xe6,
+ 0x81, 0x39, 0x60, 0x16, 0x44, 0x97, 0x92, 0x38, 0x17, 0xb3, 0x5b, 0x7e, 0xbe, 0x90, 0x00, 0x17,
+ 0x73, 0x52, 0x62, 0x91, 0x04, 0xa3, 0x02, 0x93, 0x06, 0x4b, 0x10, 0x88, 0xe9, 0x24, 0xf0, 0xe3,
+ 0xa1, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0x08,
+ 0x08, 0x00, 0x00, 0xff, 0xff, 0x54, 0x06, 0x1b, 0x76, 0x6e, 0x00, 0x00, 0x00,
+}
+
func (this *Foo) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -196,7 +210,7 @@ func (m *Foo) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -224,7 +238,7 @@ func (m *Foo) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -240,6 +254,9 @@ func (m *Foo) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthProto
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthProto
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -310,10 +327,13 @@ func skipProto(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthProto
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthProto
+ }
return iNdEx, nil
case 3:
for {
@@ -342,6 +362,9 @@ func skipProto(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthProto
+ }
}
return iNdEx, nil
case 4:
@@ -360,16 +383,3 @@ var (
ErrInvalidLengthProto = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowProto = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("proto.proto", fileDescriptor_proto_77f3bd346fa75d17) }
-
-var fileDescriptor_proto_77f3bd346fa75d17 = []byte{
- // 109 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2e, 0x28, 0xca, 0x2f,
- 0xc9, 0xd7, 0x03, 0x93, 0x42, 0xac, 0x60, 0x4a, 0x4a, 0x37, 0x3d, 0xb3, 0x24, 0xa3, 0x34, 0x49,
- 0x2f, 0x39, 0x3f, 0x57, 0x3f, 0x3d, 0x3f, 0x3d, 0x5f, 0x1f, 0x2c, 0x9c, 0x54, 0x9a, 0x06, 0xe6,
- 0x81, 0x39, 0x60, 0x16, 0x44, 0x97, 0x92, 0x38, 0x17, 0xb3, 0x5b, 0x7e, 0xbe, 0x90, 0x00, 0x17,
- 0x73, 0x52, 0x62, 0x91, 0x04, 0xa3, 0x02, 0x93, 0x06, 0x4b, 0x10, 0x88, 0xe9, 0x24, 0xf0, 0xe3,
- 0xa1, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0x08,
- 0x08, 0x00, 0x00, 0xff, 0xff, 0x54, 0x06, 0x1b, 0x76, 0x6e, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/map.pb.go b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/map.pb.go
index d27e963f51..f527f75d16 100644
--- a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/map.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/map.pb.go
@@ -3,22 +3,21 @@
package mapdefaults
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-
-import io "io"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -41,7 +40,7 @@ type MapTest struct {
func (m *MapTest) Reset() { *m = MapTest{} }
func (*MapTest) ProtoMessage() {}
func (*MapTest) Descriptor() ([]byte, []int) {
- return fileDescriptor_map_746b24fd53d0701f, []int{0}
+ return fileDescriptor_b8f2a09ffeba7c12, []int{0}
}
func (m *MapTest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -58,8 +57,8 @@ func (m *MapTest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *MapTest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MapTest.Merge(dst, src)
+func (m *MapTest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MapTest.Merge(m, src)
}
func (m *MapTest) XXX_Size() int {
return m.Size()
@@ -80,7 +79,7 @@ type FakeMap struct {
func (m *FakeMap) Reset() { *m = FakeMap{} }
func (*FakeMap) ProtoMessage() {}
func (*FakeMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_map_746b24fd53d0701f, []int{1}
+ return fileDescriptor_b8f2a09ffeba7c12, []int{1}
}
func (m *FakeMap) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -97,8 +96,8 @@ func (m *FakeMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *FakeMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FakeMap.Merge(dst, src)
+func (m *FakeMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FakeMap.Merge(m, src)
}
func (m *FakeMap) XXX_Size() int {
return m.Size()
@@ -121,7 +120,7 @@ type FakeMapEntry struct {
func (m *FakeMapEntry) Reset() { *m = FakeMapEntry{} }
func (*FakeMapEntry) ProtoMessage() {}
func (*FakeMapEntry) Descriptor() ([]byte, []int) {
- return fileDescriptor_map_746b24fd53d0701f, []int{2}
+ return fileDescriptor_b8f2a09ffeba7c12, []int{2}
}
func (m *FakeMapEntry) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -138,8 +137,8 @@ func (m *FakeMapEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *FakeMapEntry) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FakeMapEntry.Merge(dst, src)
+func (m *FakeMapEntry) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FakeMapEntry.Merge(m, src)
}
func (m *FakeMapEntry) XXX_Size() int {
return m.Size()
@@ -156,6 +155,33 @@ func init() {
proto.RegisterType((*FakeMap)(nil), "mapdefaults.FakeMap")
proto.RegisterType((*FakeMapEntry)(nil), "mapdefaults.FakeMapEntry")
}
+
+func init() { proto.RegisterFile("combos/both/map.proto", fileDescriptor_b8f2a09ffeba7c12) }
+
+var fileDescriptor_b8f2a09ffeba7c12 = []byte{
+ // 310 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0xbf, 0x4f, 0xc2, 0x40,
+ 0x14, 0xc7, 0xfb, 0x20, 0xd2, 0x78, 0x38, 0x98, 0x46, 0x93, 0xca, 0xf0, 0x42, 0x98, 0x58, 0x6c,
+ 0x13, 0x59, 0xc4, 0xc1, 0xc1, 0xa8, 0x93, 0x2c, 0xe0, 0x6e, 0xae, 0x78, 0xfc, 0x08, 0x94, 0x6b,
+ 0xee, 0x5e, 0x4d, 0x98, 0xe4, 0xcf, 0x71, 0x74, 0xf4, 0x4f, 0x60, 0x64, 0x74, 0xa4, 0xe7, 0xe2,
+ 0xc8, 0xc8, 0x68, 0xb8, 0x62, 0x52, 0x37, 0xb7, 0xf7, 0xf9, 0xde, 0xe7, 0xee, 0x7d, 0x73, 0xec,
+ 0xb4, 0x2f, 0xe3, 0x48, 0xea, 0x30, 0x92, 0x34, 0x0a, 0x63, 0x9e, 0x04, 0x89, 0x92, 0x24, 0xbd,
+ 0x6a, 0xcc, 0x93, 0x67, 0x31, 0xe0, 0xe9, 0x94, 0x74, 0xed, 0x7c, 0x38, 0xa6, 0x51, 0x1a, 0x05,
+ 0x7d, 0x19, 0x87, 0x43, 0x39, 0x94, 0xa1, 0x75, 0xa2, 0x74, 0x60, 0xc9, 0x82, 0x9d, 0xf2, 0xbb,
+ 0x8d, 0x57, 0xe6, 0x76, 0x78, 0xf2, 0x28, 0x34, 0x79, 0x6d, 0xe6, 0x6a, 0x52, 0x4f, 0x9a, 0x94,
+ 0x0f, 0xf5, 0x72, 0xb3, 0x7a, 0x51, 0x0f, 0x0a, 0x0f, 0x07, 0x7b, 0x2d, 0xe8, 0x91, 0xea, 0x91,
+ 0xba, 0x9b, 0x91, 0x9a, 0x77, 0x2b, 0xda, 0x42, 0xad, 0xcd, 0xaa, 0x85, 0xd8, 0x3b, 0x66, 0xe5,
+ 0x89, 0x98, 0xfb, 0x50, 0x87, 0xe6, 0x61, 0x77, 0x37, 0x7a, 0x27, 0xec, 0xe0, 0x85, 0x4f, 0x53,
+ 0xe1, 0x97, 0x6c, 0x96, 0xc3, 0x55, 0xe9, 0x12, 0x1a, 0xd7, 0xcc, 0xbd, 0xe7, 0x13, 0xd1, 0xe1,
+ 0x89, 0xd7, 0x62, 0xae, 0x98, 0x91, 0x1a, 0x0b, 0xbd, 0x2f, 0x70, 0xf6, 0xa7, 0xc0, 0x5e, 0xcb,
+ 0x37, 0xff, 0x9a, 0x8d, 0x07, 0x76, 0x54, 0x3c, 0xf8, 0xef, 0xee, 0x5d, 0x2a, 0x69, 0x24, 0x94,
+ 0x5f, 0xce, 0x53, 0x0b, 0x37, 0xb7, 0xcb, 0x0c, 0x9d, 0x55, 0x86, 0xce, 0x67, 0x86, 0xce, 0x3a,
+ 0x43, 0xd8, 0x64, 0x08, 0xdb, 0x0c, 0x61, 0x61, 0x10, 0xde, 0x0c, 0xc2, 0xbb, 0x41, 0xf8, 0x30,
+ 0x08, 0x4b, 0x83, 0xb0, 0x32, 0x08, 0x6b, 0x83, 0xf0, 0x6d, 0xd0, 0xd9, 0x18, 0x84, 0xad, 0x41,
+ 0x67, 0xf1, 0x85, 0x4e, 0x54, 0xb1, 0x7f, 0xdb, 0xfa, 0x09, 0x00, 0x00, 0xff, 0xff, 0x11, 0xc9,
+ 0x76, 0xfa, 0xb0, 0x01, 0x00, 0x00,
+}
+
func (this *MapTest) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return MapDescription()
}
@@ -168,256 +194,258 @@ func (this *FakeMapEntry) Description() (desc *github_com_gogo_protobuf_protoc_g
func MapDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 3978 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0xe3, 0xd6,
- 0x75, 0x16, 0xf8, 0x23, 0x91, 0x87, 0x14, 0x05, 0x41, 0xda, 0x5d, 0xae, 0x1c, 0x73, 0xb5, 0xb4,
- 0x1d, 0xcb, 0x76, 0x23, 0x65, 0x76, 0xbd, 0xeb, 0x5d, 0x6e, 0x63, 0x97, 0x92, 0xb8, 0x8a, 0x5c,
- 0xfd, 0x05, 0x94, 0xe2, 0x9f, 0x4c, 0x07, 0x03, 0x81, 0x97, 0x24, 0x56, 0x20, 0x80, 0x00, 0xe0,
- 0xae, 0xb5, 0xd3, 0x99, 0x6e, 0xc7, 0xfd, 0x99, 0x4c, 0xa7, 0xff, 0x9d, 0x69, 0xe2, 0x3a, 0x6e,
- 0x93, 0x4e, 0xe3, 0x34, 0xfd, 0x73, 0x9a, 0x36, 0x4d, 0xd2, 0x97, 0xbe, 0xa4, 0xf5, 0x53, 0x27,
- 0x79, 0xeb, 0x43, 0x1f, 0xbc, 0x8a, 0x67, 0x9a, 0xb6, 0x6e, 0xe3, 0xb6, 0xfb, 0xe0, 0x19, 0xbf,
- 0x74, 0xee, 0x1f, 0x08, 0x80, 0xd4, 0x02, 0xca, 0x8c, 0x9d, 0x27, 0x09, 0xe7, 0x9e, 0xef, 0xc3,
- 0xb9, 0xe7, 0x9e, 0x7b, 0xce, 0xb9, 0x97, 0x80, 0x1f, 0x5d, 0x85, 0xf9, 0x8e, 0x65, 0x75, 0x0c,
- 0xb4, 0x64, 0x3b, 0x96, 0x67, 0xed, 0xf7, 0xdb, 0x4b, 0x2d, 0xe4, 0x6a, 0x8e, 0x6e, 0x7b, 0x96,
- 0xb3, 0x48, 0x64, 0xd2, 0x14, 0xd5, 0x58, 0xe4, 0x1a, 0xd5, 0x4d, 0x98, 0xbe, 0xae, 0x1b, 0x68,
- 0xd5, 0x57, 0x6c, 0x22, 0x4f, 0xba, 0x02, 0x99, 0xb6, 0x6e, 0xa0, 0xb2, 0x30, 0x9f, 0x5e, 0x28,
- 0x5c, 0x78, 0x78, 0x31, 0x02, 0x5a, 0x0c, 0x23, 0x76, 0xb0, 0x58, 0x26, 0x88, 0xea, 0xdb, 0x19,
- 0x98, 0x19, 0x31, 0x2a, 0x49, 0x90, 0x31, 0xd5, 0x1e, 0x66, 0x14, 0x16, 0xf2, 0x32, 0xf9, 0x5f,
- 0x2a, 0xc3, 0x84, 0xad, 0x6a, 0x07, 0x6a, 0x07, 0x95, 0x53, 0x44, 0xcc, 0x1f, 0xa5, 0x0a, 0x40,
- 0x0b, 0xd9, 0xc8, 0x6c, 0x21, 0x53, 0x3b, 0x2c, 0xa7, 0xe7, 0xd3, 0x0b, 0x79, 0x39, 0x20, 0x91,
- 0x9e, 0x80, 0x69, 0xbb, 0xbf, 0x6f, 0xe8, 0x9a, 0x12, 0x50, 0x83, 0xf9, 0xf4, 0x42, 0x56, 0x16,
- 0xe9, 0xc0, 0xea, 0x40, 0xf9, 0x51, 0x98, 0xba, 0x85, 0xd4, 0x83, 0xa0, 0x6a, 0x81, 0xa8, 0x96,
- 0xb0, 0x38, 0xa0, 0xb8, 0x02, 0xc5, 0x1e, 0x72, 0x5d, 0xb5, 0x83, 0x14, 0xef, 0xd0, 0x46, 0xe5,
- 0x0c, 0x99, 0xfd, 0xfc, 0xd0, 0xec, 0xa3, 0x33, 0x2f, 0x30, 0xd4, 0xee, 0xa1, 0x8d, 0xa4, 0x3a,
- 0xe4, 0x91, 0xd9, 0xef, 0x51, 0x86, 0xec, 0x31, 0xfe, 0x6b, 0x98, 0xfd, 0x5e, 0x94, 0x25, 0x87,
- 0x61, 0x8c, 0x62, 0xc2, 0x45, 0xce, 0x4d, 0x5d, 0x43, 0xe5, 0x71, 0x42, 0xf0, 0xe8, 0x10, 0x41,
- 0x93, 0x8e, 0x47, 0x39, 0x38, 0x4e, 0x5a, 0x81, 0x3c, 0x7a, 0xc9, 0x43, 0xa6, 0xab, 0x5b, 0x66,
- 0x79, 0x82, 0x90, 0x3c, 0x32, 0x62, 0x15, 0x91, 0xd1, 0x8a, 0x52, 0x0c, 0x70, 0xd2, 0x65, 0x98,
- 0xb0, 0x6c, 0x4f, 0xb7, 0x4c, 0xb7, 0x9c, 0x9b, 0x17, 0x16, 0x0a, 0x17, 0x3e, 0x32, 0x32, 0x10,
- 0xb6, 0xa9, 0x8e, 0xcc, 0x95, 0xa5, 0x75, 0x10, 0x5d, 0xab, 0xef, 0x68, 0x48, 0xd1, 0xac, 0x16,
- 0x52, 0x74, 0xb3, 0x6d, 0x95, 0xf3, 0x84, 0xe0, 0xdc, 0xf0, 0x44, 0x88, 0xe2, 0x8a, 0xd5, 0x42,
- 0xeb, 0x66, 0xdb, 0x92, 0x4b, 0x6e, 0xe8, 0x59, 0x3a, 0x0d, 0xe3, 0xee, 0xa1, 0xe9, 0xa9, 0x2f,
- 0x95, 0x8b, 0x24, 0x42, 0xd8, 0x53, 0xf5, 0xdb, 0xe3, 0x30, 0x95, 0x24, 0xc4, 0xae, 0x41, 0xb6,
- 0x8d, 0x67, 0x59, 0x4e, 0x9d, 0xc4, 0x07, 0x14, 0x13, 0x76, 0xe2, 0xf8, 0x8f, 0xe9, 0xc4, 0x3a,
- 0x14, 0x4c, 0xe4, 0x7a, 0xa8, 0x45, 0x23, 0x22, 0x9d, 0x30, 0xa6, 0x80, 0x82, 0x86, 0x43, 0x2a,
- 0xf3, 0x63, 0x85, 0xd4, 0xf3, 0x30, 0xe5, 0x9b, 0xa4, 0x38, 0xaa, 0xd9, 0xe1, 0xb1, 0xb9, 0x14,
- 0x67, 0xc9, 0x62, 0x83, 0xe3, 0x64, 0x0c, 0x93, 0x4b, 0x28, 0xf4, 0x2c, 0xad, 0x02, 0x58, 0x26,
- 0xb2, 0xda, 0x4a, 0x0b, 0x69, 0x46, 0x39, 0x77, 0x8c, 0x97, 0xb6, 0xb1, 0xca, 0x90, 0x97, 0x2c,
- 0x2a, 0xd5, 0x0c, 0xe9, 0xea, 0x20, 0xd4, 0x26, 0x8e, 0x89, 0x94, 0x4d, 0xba, 0xc9, 0x86, 0xa2,
- 0x6d, 0x0f, 0x4a, 0x0e, 0xc2, 0x71, 0x8f, 0x5a, 0x6c, 0x66, 0x79, 0x62, 0xc4, 0x62, 0xec, 0xcc,
- 0x64, 0x06, 0xa3, 0x13, 0x9b, 0x74, 0x82, 0x8f, 0xd2, 0x43, 0xe0, 0x0b, 0x14, 0x12, 0x56, 0x40,
- 0xb2, 0x50, 0x91, 0x0b, 0xb7, 0xd4, 0x1e, 0x9a, 0xbb, 0x0d, 0xa5, 0xb0, 0x7b, 0xa4, 0x59, 0xc8,
- 0xba, 0x9e, 0xea, 0x78, 0x24, 0x0a, 0xb3, 0x32, 0x7d, 0x90, 0x44, 0x48, 0x23, 0xb3, 0x45, 0xb2,
- 0x5c, 0x56, 0xc6, 0xff, 0x4a, 0x3f, 0x33, 0x98, 0x70, 0x9a, 0x4c, 0xf8, 0xa3, 0xc3, 0x2b, 0x1a,
- 0x62, 0x8e, 0xce, 0x7b, 0xee, 0x29, 0x98, 0x0c, 0x4d, 0x20, 0xe9, 0xab, 0xab, 0x3f, 0x0f, 0xa7,
- 0x46, 0x52, 0x4b, 0xcf, 0xc3, 0x6c, 0xdf, 0xd4, 0x4d, 0x0f, 0x39, 0xb6, 0x83, 0x70, 0xc4, 0xd2,
- 0x57, 0x95, 0xff, 0x6d, 0xe2, 0x98, 0x98, 0xdb, 0x0b, 0x6a, 0x53, 0x16, 0x79, 0xa6, 0x3f, 0x2c,
- 0x7c, 0x3c, 0x9f, 0xfb, 0xe1, 0x84, 0x78, 0xe7, 0xce, 0x9d, 0x3b, 0xa9, 0xea, 0xe7, 0xc7, 0x61,
- 0x76, 0xd4, 0x9e, 0x19, 0xb9, 0x7d, 0x4f, 0xc3, 0xb8, 0xd9, 0xef, 0xed, 0x23, 0x87, 0x38, 0x29,
- 0x2b, 0xb3, 0x27, 0xa9, 0x0e, 0x59, 0x43, 0xdd, 0x47, 0x46, 0x39, 0x33, 0x2f, 0x2c, 0x94, 0x2e,
- 0x3c, 0x91, 0x68, 0x57, 0x2e, 0x6e, 0x60, 0x88, 0x4c, 0x91, 0xd2, 0xd3, 0x90, 0x61, 0x29, 0x1a,
- 0x33, 0x3c, 0x9e, 0x8c, 0x01, 0xef, 0x25, 0x99, 0xe0, 0xa4, 0x07, 0x20, 0x8f, 0xff, 0xd2, 0xd8,
- 0x18, 0x27, 0x36, 0xe7, 0xb0, 0x00, 0xc7, 0x85, 0x34, 0x07, 0x39, 0xb2, 0x4d, 0x5a, 0x88, 0x97,
- 0x36, 0xff, 0x19, 0x07, 0x56, 0x0b, 0xb5, 0xd5, 0xbe, 0xe1, 0x29, 0x37, 0x55, 0xa3, 0x8f, 0x48,
- 0xc0, 0xe7, 0xe5, 0x22, 0x13, 0x7e, 0x1a, 0xcb, 0xa4, 0x73, 0x50, 0xa0, 0xbb, 0x4a, 0x37, 0x5b,
- 0xe8, 0x25, 0x92, 0x3d, 0xb3, 0x32, 0xdd, 0x68, 0xeb, 0x58, 0x82, 0x5f, 0x7f, 0xc3, 0xb5, 0x4c,
- 0x1e, 0x9a, 0xe4, 0x15, 0x58, 0x40, 0x5e, 0xff, 0x54, 0x34, 0x71, 0x3f, 0x38, 0x7a, 0x7a, 0xd1,
- 0x98, 0xaa, 0x7e, 0x33, 0x05, 0x19, 0x92, 0x2f, 0xa6, 0xa0, 0xb0, 0xfb, 0xc2, 0x4e, 0x43, 0x59,
- 0xdd, 0xde, 0x5b, 0xde, 0x68, 0x88, 0x82, 0x54, 0x02, 0x20, 0x82, 0xeb, 0x1b, 0xdb, 0xf5, 0x5d,
- 0x31, 0xe5, 0x3f, 0xaf, 0x6f, 0xed, 0x5e, 0x7e, 0x52, 0x4c, 0xfb, 0x80, 0x3d, 0x2a, 0xc8, 0x04,
- 0x15, 0x2e, 0x5e, 0x10, 0xb3, 0x92, 0x08, 0x45, 0x4a, 0xb0, 0xfe, 0x7c, 0x63, 0xf5, 0xf2, 0x93,
- 0xe2, 0x78, 0x58, 0x72, 0xf1, 0x82, 0x38, 0x21, 0x4d, 0x42, 0x9e, 0x48, 0x96, 0xb7, 0xb7, 0x37,
- 0xc4, 0x9c, 0xcf, 0xd9, 0xdc, 0x95, 0xd7, 0xb7, 0xd6, 0xc4, 0xbc, 0xcf, 0xb9, 0x26, 0x6f, 0xef,
- 0xed, 0x88, 0xe0, 0x33, 0x6c, 0x36, 0x9a, 0xcd, 0xfa, 0x5a, 0x43, 0x2c, 0xf8, 0x1a, 0xcb, 0x2f,
- 0xec, 0x36, 0x9a, 0x62, 0x31, 0x64, 0xd6, 0xc5, 0x0b, 0xe2, 0xa4, 0xff, 0x8a, 0xc6, 0xd6, 0xde,
- 0xa6, 0x58, 0x92, 0xa6, 0x61, 0x92, 0xbe, 0x82, 0x1b, 0x31, 0x15, 0x11, 0x5d, 0x7e, 0x52, 0x14,
- 0x07, 0x86, 0x50, 0x96, 0xe9, 0x90, 0xe0, 0xf2, 0x93, 0xa2, 0x54, 0x5d, 0x81, 0x2c, 0x89, 0x2e,
- 0x49, 0x82, 0xd2, 0x46, 0x7d, 0xb9, 0xb1, 0xa1, 0x6c, 0xef, 0xec, 0xae, 0x6f, 0x6f, 0xd5, 0x37,
- 0x44, 0x61, 0x20, 0x93, 0x1b, 0x9f, 0xda, 0x5b, 0x97, 0x1b, 0xab, 0x62, 0x2a, 0x28, 0xdb, 0x69,
- 0xd4, 0x77, 0x1b, 0xab, 0x62, 0xba, 0xaa, 0xc1, 0xec, 0xa8, 0x3c, 0x39, 0x72, 0x67, 0x04, 0x96,
- 0x38, 0x75, 0xcc, 0x12, 0x13, 0xae, 0xa1, 0x25, 0xfe, 0x41, 0x0a, 0x66, 0x46, 0xd4, 0x8a, 0x91,
- 0x2f, 0x79, 0x06, 0xb2, 0x34, 0x44, 0x69, 0xf5, 0x7c, 0x6c, 0x64, 0xd1, 0x21, 0x01, 0x3b, 0x54,
- 0x41, 0x09, 0x2e, 0xd8, 0x41, 0xa4, 0x8f, 0xe9, 0x20, 0x30, 0xc5, 0x50, 0x4e, 0xff, 0xb9, 0xa1,
- 0x9c, 0x4e, 0xcb, 0xde, 0xe5, 0x24, 0x65, 0x8f, 0xc8, 0x4e, 0x96, 0xdb, 0xb3, 0x23, 0x72, 0xfb,
- 0x35, 0x98, 0x1e, 0x22, 0x4a, 0x9c, 0x63, 0x5f, 0x16, 0xa0, 0x7c, 0x9c, 0x73, 0x62, 0x32, 0x5d,
- 0x2a, 0x94, 0xe9, 0xae, 0x45, 0x3d, 0x78, 0xfe, 0xf8, 0x45, 0x18, 0x5a, 0xeb, 0xd7, 0x05, 0x38,
- 0x3d, 0xba, 0x53, 0x1c, 0x69, 0xc3, 0xd3, 0x30, 0xde, 0x43, 0x5e, 0xd7, 0xe2, 0xdd, 0xd2, 0x47,
- 0x47, 0xd4, 0x60, 0x3c, 0x1c, 0x5d, 0x6c, 0x86, 0x0a, 0x16, 0xf1, 0xf4, 0x71, 0xed, 0x1e, 0xb5,
- 0x66, 0xc8, 0xd2, 0xcf, 0xa5, 0xe0, 0xd4, 0x48, 0xf2, 0x91, 0x86, 0x3e, 0x08, 0xa0, 0x9b, 0x76,
- 0xdf, 0xa3, 0x1d, 0x11, 0x4d, 0xb0, 0x79, 0x22, 0x21, 0xc9, 0x0b, 0x27, 0xcf, 0xbe, 0xe7, 0x8f,
- 0xa7, 0xc9, 0x38, 0x50, 0x11, 0x51, 0xb8, 0x32, 0x30, 0x34, 0x43, 0x0c, 0xad, 0x1c, 0x33, 0xd3,
- 0xa1, 0xc0, 0xfc, 0x38, 0x88, 0x9a, 0xa1, 0x23, 0xd3, 0x53, 0x5c, 0xcf, 0x41, 0x6a, 0x4f, 0x37,
- 0x3b, 0xa4, 0x82, 0xe4, 0x6a, 0xd9, 0xb6, 0x6a, 0xb8, 0x48, 0x9e, 0xa2, 0xc3, 0x4d, 0x3e, 0x8a,
- 0x11, 0x24, 0x80, 0x9c, 0x00, 0x62, 0x3c, 0x84, 0xa0, 0xc3, 0x3e, 0xa2, 0xfa, 0x8d, 0x1c, 0x14,
- 0x02, 0x7d, 0xb5, 0x74, 0x1e, 0x8a, 0x37, 0xd4, 0x9b, 0xaa, 0xc2, 0xcf, 0x4a, 0xd4, 0x13, 0x05,
- 0x2c, 0xdb, 0x61, 0xe7, 0xa5, 0x8f, 0xc3, 0x2c, 0x51, 0xb1, 0xfa, 0x1e, 0x72, 0x14, 0xcd, 0x50,
- 0x5d, 0x97, 0x38, 0x2d, 0x47, 0x54, 0x25, 0x3c, 0xb6, 0x8d, 0x87, 0x56, 0xf8, 0x88, 0x74, 0x09,
- 0x66, 0x08, 0xa2, 0xd7, 0x37, 0x3c, 0xdd, 0x36, 0x90, 0x82, 0x4f, 0x6f, 0x2e, 0xa9, 0x24, 0xbe,
- 0x65, 0xd3, 0x58, 0x63, 0x93, 0x29, 0x60, 0x8b, 0x5c, 0x69, 0x15, 0x1e, 0x24, 0xb0, 0x0e, 0x32,
- 0x91, 0xa3, 0x7a, 0x48, 0x41, 0x9f, 0xed, 0xab, 0x86, 0xab, 0xa8, 0x66, 0x4b, 0xe9, 0xaa, 0x6e,
- 0xb7, 0x3c, 0x8b, 0x09, 0x96, 0x53, 0x65, 0x41, 0x3e, 0x8b, 0x15, 0xd7, 0x98, 0x5e, 0x83, 0xa8,
- 0xd5, 0xcd, 0xd6, 0x27, 0x55, 0xb7, 0x2b, 0xd5, 0xe0, 0x34, 0x61, 0x71, 0x3d, 0x47, 0x37, 0x3b,
- 0x8a, 0xd6, 0x45, 0xda, 0x81, 0xd2, 0xf7, 0xda, 0x57, 0xca, 0x0f, 0x04, 0xdf, 0x4f, 0x2c, 0x6c,
- 0x12, 0x9d, 0x15, 0xac, 0xb2, 0xe7, 0xb5, 0xaf, 0x48, 0x4d, 0x28, 0xe2, 0xc5, 0xe8, 0xe9, 0xb7,
- 0x91, 0xd2, 0xb6, 0x1c, 0x52, 0x1a, 0x4b, 0x23, 0x52, 0x53, 0xc0, 0x83, 0x8b, 0xdb, 0x0c, 0xb0,
- 0x69, 0xb5, 0x50, 0x2d, 0xdb, 0xdc, 0x69, 0x34, 0x56, 0xe5, 0x02, 0x67, 0xb9, 0x6e, 0x39, 0x38,
- 0xa0, 0x3a, 0x96, 0xef, 0xe0, 0x02, 0x0d, 0xa8, 0x8e, 0xc5, 0xdd, 0x7b, 0x09, 0x66, 0x34, 0x8d,
- 0xce, 0x59, 0xd7, 0x14, 0x76, 0xc6, 0x72, 0xcb, 0x62, 0xc8, 0x59, 0x9a, 0xb6, 0x46, 0x15, 0x58,
- 0x8c, 0xbb, 0xd2, 0x55, 0x38, 0x35, 0x70, 0x56, 0x10, 0x38, 0x3d, 0x34, 0xcb, 0x28, 0xf4, 0x12,
- 0xcc, 0xd8, 0x87, 0xc3, 0x40, 0x29, 0xf4, 0x46, 0xfb, 0x30, 0x0a, 0x7b, 0x0a, 0x66, 0xed, 0xae,
- 0x3d, 0x8c, 0x7b, 0x3c, 0x88, 0x93, 0xec, 0xae, 0x1d, 0x05, 0x3e, 0x42, 0x0e, 0xdc, 0x0e, 0xd2,
- 0x54, 0x0f, 0xb5, 0xca, 0x67, 0x82, 0xea, 0x81, 0x01, 0x69, 0x09, 0x44, 0x4d, 0x53, 0x90, 0xa9,
- 0xee, 0x1b, 0x48, 0x51, 0x1d, 0x64, 0xaa, 0x6e, 0xf9, 0x5c, 0x50, 0xb9, 0xa4, 0x69, 0x0d, 0x32,
- 0x5a, 0x27, 0x83, 0xd2, 0xe3, 0x30, 0x6d, 0xed, 0xdf, 0xd0, 0x68, 0x48, 0x2a, 0xb6, 0x83, 0xda,
- 0xfa, 0x4b, 0xe5, 0x87, 0x89, 0x7f, 0xa7, 0xf0, 0x00, 0x09, 0xc8, 0x1d, 0x22, 0x96, 0x1e, 0x03,
- 0x51, 0x73, 0xbb, 0xaa, 0x63, 0x93, 0x9c, 0xec, 0xda, 0xaa, 0x86, 0xca, 0x8f, 0x50, 0x55, 0x2a,
- 0xdf, 0xe2, 0x62, 0xbc, 0x25, 0xdc, 0x5b, 0x7a, 0xdb, 0xe3, 0x8c, 0x8f, 0xd2, 0x2d, 0x41, 0x64,
- 0x8c, 0x6d, 0x01, 0x44, 0xec, 0x8a, 0xd0, 0x8b, 0x17, 0x88, 0x5a, 0xc9, 0xee, 0xda, 0xc1, 0xf7,
- 0x3e, 0x04, 0x93, 0x58, 0x73, 0xf0, 0xd2, 0xc7, 0x68, 0x43, 0x66, 0x77, 0x03, 0x6f, 0xfc, 0xc0,
- 0x7a, 0xe3, 0x6a, 0x0d, 0x8a, 0xc1, 0xf8, 0x94, 0xf2, 0x40, 0x23, 0x54, 0x14, 0x70, 0xb3, 0xb2,
- 0xb2, 0xbd, 0x8a, 0xdb, 0x8c, 0x17, 0x1b, 0x62, 0x0a, 0xb7, 0x3b, 0x1b, 0xeb, 0xbb, 0x0d, 0x45,
- 0xde, 0xdb, 0xda, 0x5d, 0xdf, 0x6c, 0x88, 0xe9, 0x60, 0x5f, 0xfd, 0xdd, 0x14, 0x94, 0xc2, 0x47,
- 0x24, 0xe9, 0xa7, 0xe1, 0x0c, 0xbf, 0xcf, 0x70, 0x91, 0xa7, 0xdc, 0xd2, 0x1d, 0xb2, 0x65, 0x7a,
- 0x2a, 0x2d, 0x5f, 0xfe, 0xa2, 0xcd, 0x32, 0xad, 0x26, 0xf2, 0x9e, 0xd3, 0x1d, 0xbc, 0x21, 0x7a,
- 0xaa, 0x27, 0x6d, 0xc0, 0x39, 0xd3, 0x52, 0x5c, 0x4f, 0x35, 0x5b, 0xaa, 0xd3, 0x52, 0x06, 0x37,
- 0x49, 0x8a, 0xaa, 0x69, 0xc8, 0x75, 0x2d, 0x5a, 0xaa, 0x7c, 0x96, 0x8f, 0x98, 0x56, 0x93, 0x29,
- 0x0f, 0x72, 0x78, 0x9d, 0xa9, 0x46, 0x02, 0x2c, 0x7d, 0x5c, 0x80, 0x3d, 0x00, 0xf9, 0x9e, 0x6a,
- 0x2b, 0xc8, 0xf4, 0x9c, 0x43, 0xd2, 0x18, 0xe7, 0xe4, 0x5c, 0x4f, 0xb5, 0x1b, 0xf8, 0xf9, 0xc3,
- 0x39, 0x9f, 0xfc, 0x6b, 0x1a, 0x8a, 0xc1, 0xe6, 0x18, 0x9f, 0x35, 0x34, 0x52, 0x47, 0x04, 0x92,
- 0x69, 0x1e, 0xba, 0x6f, 0x2b, 0xbd, 0xb8, 0x82, 0x0b, 0x4c, 0x6d, 0x9c, 0xb6, 0xac, 0x32, 0x45,
- 0xe2, 0xe2, 0x8e, 0x73, 0x0b, 0xa2, 0x2d, 0x42, 0x4e, 0x66, 0x4f, 0xd2, 0x1a, 0x8c, 0xdf, 0x70,
- 0x09, 0xf7, 0x38, 0xe1, 0x7e, 0xf8, 0xfe, 0xdc, 0xcf, 0x36, 0x09, 0x79, 0xfe, 0xd9, 0xa6, 0xb2,
- 0xb5, 0x2d, 0x6f, 0xd6, 0x37, 0x64, 0x06, 0x97, 0xce, 0x42, 0xc6, 0x50, 0x6f, 0x1f, 0x86, 0x4b,
- 0x11, 0x11, 0x25, 0x75, 0xfc, 0x59, 0xc8, 0xdc, 0x42, 0xea, 0x41, 0xb8, 0x00, 0x10, 0xd1, 0x07,
- 0x18, 0xfa, 0x4b, 0x90, 0x25, 0xfe, 0x92, 0x00, 0x98, 0xc7, 0xc4, 0x31, 0x29, 0x07, 0x99, 0x95,
- 0x6d, 0x19, 0x87, 0xbf, 0x08, 0x45, 0x2a, 0x55, 0x76, 0xd6, 0x1b, 0x2b, 0x0d, 0x31, 0x55, 0xbd,
- 0x04, 0xe3, 0xd4, 0x09, 0x78, 0x6b, 0xf8, 0x6e, 0x10, 0xc7, 0xd8, 0x23, 0xe3, 0x10, 0xf8, 0xe8,
- 0xde, 0xe6, 0x72, 0x43, 0x16, 0x53, 0xc1, 0xe5, 0x75, 0xa1, 0x18, 0xec, 0x8b, 0x3f, 0x9c, 0x98,
- 0xfa, 0x8e, 0x00, 0x85, 0x40, 0x9f, 0x8b, 0x1b, 0x14, 0xd5, 0x30, 0xac, 0x5b, 0x8a, 0x6a, 0xe8,
- 0xaa, 0xcb, 0x82, 0x02, 0x88, 0xa8, 0x8e, 0x25, 0x49, 0x17, 0xed, 0x43, 0x31, 0xfe, 0x35, 0x01,
- 0xc4, 0x68, 0x8b, 0x19, 0x31, 0x50, 0xf8, 0x89, 0x1a, 0xf8, 0xaa, 0x00, 0xa5, 0x70, 0x5f, 0x19,
- 0x31, 0xef, 0xfc, 0x4f, 0xd4, 0xbc, 0xb7, 0x52, 0x30, 0x19, 0xea, 0x26, 0x93, 0x5a, 0xf7, 0x59,
- 0x98, 0xd6, 0x5b, 0xa8, 0x67, 0x5b, 0x1e, 0x32, 0xb5, 0x43, 0xc5, 0x40, 0x37, 0x91, 0x51, 0xae,
- 0x92, 0x44, 0xb1, 0x74, 0xff, 0x7e, 0x75, 0x71, 0x7d, 0x80, 0xdb, 0xc0, 0xb0, 0xda, 0xcc, 0xfa,
- 0x6a, 0x63, 0x73, 0x67, 0x7b, 0xb7, 0xb1, 0xb5, 0xf2, 0x82, 0xb2, 0xb7, 0xf5, 0xb3, 0x5b, 0xdb,
- 0xcf, 0x6d, 0xc9, 0xa2, 0x1e, 0x51, 0xfb, 0x00, 0xb7, 0xfa, 0x0e, 0x88, 0x51, 0xa3, 0xa4, 0x33,
- 0x30, 0xca, 0x2c, 0x71, 0x4c, 0x9a, 0x81, 0xa9, 0xad, 0x6d, 0xa5, 0xb9, 0xbe, 0xda, 0x50, 0x1a,
- 0xd7, 0xaf, 0x37, 0x56, 0x76, 0x9b, 0xf4, 0x06, 0xc2, 0xd7, 0xde, 0x0d, 0x6f, 0xea, 0x57, 0xd2,
- 0x30, 0x33, 0xc2, 0x12, 0xa9, 0xce, 0xce, 0x0e, 0xf4, 0x38, 0xf3, 0xb1, 0x24, 0xd6, 0x2f, 0xe2,
- 0x92, 0xbf, 0xa3, 0x3a, 0x1e, 0x3b, 0x6a, 0x3c, 0x06, 0xd8, 0x4b, 0xa6, 0xa7, 0xb7, 0x75, 0xe4,
- 0xb0, 0x0b, 0x1b, 0x7a, 0xa0, 0x98, 0x1a, 0xc8, 0xe9, 0x9d, 0xcd, 0x4f, 0x81, 0x64, 0x5b, 0xae,
- 0xee, 0xe9, 0x37, 0x91, 0xa2, 0x9b, 0xfc, 0x76, 0x07, 0x1f, 0x30, 0x32, 0xb2, 0xc8, 0x47, 0xd6,
- 0x4d, 0xcf, 0xd7, 0x36, 0x51, 0x47, 0x8d, 0x68, 0xe3, 0x04, 0x9e, 0x96, 0x45, 0x3e, 0xe2, 0x6b,
- 0x9f, 0x87, 0x62, 0xcb, 0xea, 0xe3, 0xae, 0x8b, 0xea, 0xe1, 0x7a, 0x21, 0xc8, 0x05, 0x2a, 0xf3,
- 0x55, 0x58, 0x3f, 0x3d, 0xb8, 0x56, 0x2a, 0xca, 0x05, 0x2a, 0xa3, 0x2a, 0x8f, 0xc2, 0x94, 0xda,
- 0xe9, 0x38, 0x98, 0x9c, 0x13, 0xd1, 0x13, 0x42, 0xc9, 0x17, 0x13, 0xc5, 0xb9, 0x67, 0x21, 0xc7,
- 0xfd, 0x80, 0x4b, 0x32, 0xf6, 0x84, 0x62, 0xd3, 0x63, 0x6f, 0x6a, 0x21, 0x2f, 0xe7, 0x4c, 0x3e,
- 0x78, 0x1e, 0x8a, 0xba, 0xab, 0x0c, 0x6e, 0xc9, 0x53, 0xf3, 0xa9, 0x85, 0x9c, 0x5c, 0xd0, 0x5d,
- 0xff, 0x86, 0xb1, 0xfa, 0x7a, 0x0a, 0x4a, 0xe1, 0x5b, 0x7e, 0x69, 0x15, 0x72, 0x86, 0xa5, 0xa9,
- 0x24, 0xb4, 0xe8, 0x4f, 0x4c, 0x0b, 0x31, 0x3f, 0x0c, 0x2c, 0x6e, 0x30, 0x7d, 0xd9, 0x47, 0xce,
- 0xfd, 0xb3, 0x00, 0x39, 0x2e, 0x96, 0x4e, 0x43, 0xc6, 0x56, 0xbd, 0x2e, 0xa1, 0xcb, 0x2e, 0xa7,
- 0x44, 0x41, 0x26, 0xcf, 0x58, 0xee, 0xda, 0xaa, 0x49, 0x42, 0x80, 0xc9, 0xf1, 0x33, 0x5e, 0x57,
- 0x03, 0xa9, 0x2d, 0x72, 0xfc, 0xb0, 0x7a, 0x3d, 0x64, 0x7a, 0x2e, 0x5f, 0x57, 0x26, 0x5f, 0x61,
- 0x62, 0xe9, 0x09, 0x98, 0xf6, 0x1c, 0x55, 0x37, 0x42, 0xba, 0x19, 0xa2, 0x2b, 0xf2, 0x01, 0x5f,
- 0xb9, 0x06, 0x67, 0x39, 0x6f, 0x0b, 0x79, 0xaa, 0xd6, 0x45, 0xad, 0x01, 0x68, 0x9c, 0x5c, 0x33,
- 0x9c, 0x61, 0x0a, 0xab, 0x6c, 0x9c, 0x63, 0xab, 0xdf, 0x17, 0x60, 0x9a, 0x1f, 0x98, 0x5a, 0xbe,
- 0xb3, 0x36, 0x01, 0x54, 0xd3, 0xb4, 0xbc, 0xa0, 0xbb, 0x86, 0x43, 0x79, 0x08, 0xb7, 0x58, 0xf7,
- 0x41, 0x72, 0x80, 0x60, 0xae, 0x07, 0x30, 0x18, 0x39, 0xd6, 0x6d, 0xe7, 0xa0, 0xc0, 0x7e, 0xc2,
- 0x21, 0xbf, 0x03, 0xd2, 0x23, 0x36, 0x50, 0x11, 0x3e, 0x59, 0x49, 0xb3, 0x90, 0xdd, 0x47, 0x1d,
- 0xdd, 0x64, 0x17, 0xb3, 0xf4, 0x81, 0x5f, 0x84, 0x64, 0xfc, 0x8b, 0x90, 0xe5, 0xcf, 0xc0, 0x8c,
- 0x66, 0xf5, 0xa2, 0xe6, 0x2e, 0x8b, 0x91, 0x63, 0xbe, 0xfb, 0x49, 0xe1, 0x45, 0x18, 0xb4, 0x98,
- 0xef, 0x09, 0xc2, 0x97, 0x53, 0xe9, 0xb5, 0x9d, 0xe5, 0xaf, 0xa5, 0xe6, 0xd6, 0x28, 0x74, 0x87,
- 0xcf, 0x54, 0x46, 0x6d, 0x03, 0x69, 0xd8, 0x7a, 0xf8, 0xca, 0x13, 0xf0, 0xb1, 0x8e, 0xee, 0x75,
- 0xfb, 0xfb, 0x8b, 0x9a, 0xd5, 0x5b, 0xea, 0x58, 0x1d, 0x6b, 0xf0, 0xd3, 0x27, 0x7e, 0x22, 0x0f,
- 0xe4, 0x3f, 0xf6, 0xf3, 0x67, 0xde, 0x97, 0xce, 0xc5, 0xfe, 0x56, 0x5a, 0xdb, 0x82, 0x19, 0xa6,
- 0xac, 0x90, 0xdf, 0x5f, 0xe8, 0x29, 0x42, 0xba, 0xef, 0x1d, 0x56, 0xf9, 0xeb, 0x6f, 0x93, 0x72,
- 0x2d, 0x4f, 0x33, 0x28, 0x1e, 0xa3, 0x07, 0x8d, 0x9a, 0x0c, 0xa7, 0x42, 0x7c, 0x74, 0x6b, 0x22,
- 0x27, 0x86, 0xf1, 0xbb, 0x8c, 0x71, 0x26, 0xc0, 0xd8, 0x64, 0xd0, 0xda, 0x0a, 0x4c, 0x9e, 0x84,
- 0xeb, 0x1f, 0x19, 0x57, 0x11, 0x05, 0x49, 0xd6, 0x60, 0x8a, 0x90, 0x68, 0x7d, 0xd7, 0xb3, 0x7a,
- 0x24, 0xef, 0xdd, 0x9f, 0xe6, 0x9f, 0xde, 0xa6, 0x7b, 0xa5, 0x84, 0x61, 0x2b, 0x3e, 0xaa, 0x56,
- 0x03, 0xf2, 0x93, 0x53, 0x0b, 0x69, 0x46, 0x0c, 0xc3, 0x9b, 0xcc, 0x10, 0x5f, 0xbf, 0xf6, 0x69,
- 0x98, 0xc5, 0xff, 0x93, 0xb4, 0x14, 0xb4, 0x24, 0xfe, 0xc2, 0xab, 0xfc, 0xfd, 0x97, 0xe9, 0x76,
- 0x9c, 0xf1, 0x09, 0x02, 0x36, 0x05, 0x56, 0xb1, 0x83, 0x3c, 0x0f, 0x39, 0xae, 0xa2, 0x1a, 0xa3,
- 0xcc, 0x0b, 0xdc, 0x18, 0x94, 0xbf, 0xf0, 0x4e, 0x78, 0x15, 0xd7, 0x28, 0xb2, 0x6e, 0x18, 0xb5,
- 0x3d, 0x38, 0x33, 0x22, 0x2a, 0x12, 0x70, 0xbe, 0xc2, 0x38, 0x67, 0x87, 0x22, 0x03, 0xd3, 0xee,
- 0x00, 0x97, 0xfb, 0x6b, 0x99, 0x80, 0xf3, 0x0f, 0x18, 0xa7, 0xc4, 0xb0, 0x7c, 0x49, 0x31, 0xe3,
- 0xb3, 0x30, 0x7d, 0x13, 0x39, 0xfb, 0x96, 0xcb, 0x6e, 0x69, 0x12, 0xd0, 0xbd, 0xca, 0xe8, 0xa6,
- 0x18, 0x90, 0x5c, 0xdb, 0x60, 0xae, 0xab, 0x90, 0x6b, 0xab, 0x1a, 0x4a, 0x40, 0xf1, 0x45, 0x46,
- 0x31, 0x81, 0xf5, 0x31, 0xb4, 0x0e, 0xc5, 0x8e, 0xc5, 0x2a, 0x53, 0x3c, 0xfc, 0x35, 0x06, 0x2f,
- 0x70, 0x0c, 0xa3, 0xb0, 0x2d, 0xbb, 0x6f, 0xe0, 0xb2, 0x15, 0x4f, 0xf1, 0x87, 0x9c, 0x82, 0x63,
- 0x18, 0xc5, 0x09, 0xdc, 0xfa, 0x47, 0x9c, 0xc2, 0x0d, 0xf8, 0xf3, 0x19, 0x28, 0x58, 0xa6, 0x71,
- 0x68, 0x99, 0x49, 0x8c, 0xf8, 0x12, 0x63, 0x00, 0x06, 0xc1, 0x04, 0xd7, 0x20, 0x9f, 0x74, 0x21,
- 0xfe, 0xe4, 0x1d, 0xbe, 0x3d, 0xf8, 0x0a, 0xac, 0xc1, 0x14, 0x4f, 0x50, 0xba, 0x65, 0x26, 0xa0,
- 0xf8, 0x0a, 0xa3, 0x28, 0x05, 0x60, 0x6c, 0x1a, 0x1e, 0x72, 0xbd, 0x0e, 0x4a, 0x42, 0xf2, 0x3a,
- 0x9f, 0x06, 0x83, 0x30, 0x57, 0xee, 0x23, 0x53, 0xeb, 0x26, 0x63, 0xf8, 0x2a, 0x77, 0x25, 0xc7,
- 0x60, 0x8a, 0x15, 0x98, 0xec, 0xa9, 0x8e, 0xdb, 0x55, 0x8d, 0x44, 0xcb, 0xf1, 0xa7, 0x8c, 0xa3,
- 0xe8, 0x83, 0x98, 0x47, 0xfa, 0xe6, 0x49, 0x68, 0xbe, 0xc6, 0x3d, 0x12, 0x80, 0xb1, 0xad, 0xe7,
- 0x7a, 0xe4, 0x4a, 0xeb, 0x24, 0x6c, 0x7f, 0xc6, 0xb7, 0x1e, 0xc5, 0x6e, 0x06, 0x19, 0xaf, 0x41,
- 0xde, 0xd5, 0x6f, 0x27, 0xa2, 0xf9, 0x73, 0xbe, 0xd2, 0x04, 0x80, 0xc1, 0x2f, 0xc0, 0xd9, 0x91,
- 0x65, 0x22, 0x01, 0xd9, 0x5f, 0x30, 0xb2, 0xd3, 0x23, 0x4a, 0x05, 0x4b, 0x09, 0x27, 0xa5, 0xfc,
- 0x4b, 0x9e, 0x12, 0x50, 0x84, 0x6b, 0x07, 0x9f, 0x15, 0x5c, 0xb5, 0x7d, 0x32, 0xaf, 0xfd, 0x15,
- 0xf7, 0x1a, 0xc5, 0x86, 0xbc, 0xb6, 0x0b, 0xa7, 0x19, 0xe3, 0xc9, 0xd6, 0xf5, 0x0d, 0x9e, 0x58,
- 0x29, 0x7a, 0x2f, 0xbc, 0xba, 0x9f, 0x81, 0x39, 0xdf, 0x9d, 0xbc, 0x29, 0x75, 0x95, 0x9e, 0x6a,
- 0x27, 0x60, 0xfe, 0x3a, 0x63, 0xe6, 0x19, 0xdf, 0xef, 0x6a, 0xdd, 0x4d, 0xd5, 0xc6, 0xe4, 0xcf,
- 0x43, 0x99, 0x93, 0xf7, 0x4d, 0x07, 0x69, 0x56, 0xc7, 0xd4, 0x6f, 0xa3, 0x56, 0x02, 0xea, 0xbf,
- 0x8e, 0x2c, 0xd5, 0x5e, 0x00, 0x8e, 0x99, 0xd7, 0x41, 0xf4, 0x7b, 0x15, 0x45, 0xef, 0xd9, 0x96,
- 0xe3, 0xc5, 0x30, 0x7e, 0x83, 0xaf, 0x94, 0x8f, 0x5b, 0x27, 0xb0, 0x5a, 0x03, 0x4a, 0xe4, 0x31,
- 0x69, 0x48, 0xfe, 0x0d, 0x23, 0x9a, 0x1c, 0xa0, 0x58, 0xe2, 0xd0, 0xac, 0x9e, 0xad, 0x3a, 0x49,
- 0xf2, 0xdf, 0xdf, 0xf2, 0xc4, 0xc1, 0x20, 0x2c, 0x71, 0x78, 0x87, 0x36, 0xc2, 0xd5, 0x3e, 0x01,
- 0xc3, 0x37, 0x79, 0xe2, 0xe0, 0x18, 0x46, 0xc1, 0x1b, 0x86, 0x04, 0x14, 0x7f, 0xc7, 0x29, 0x38,
- 0x06, 0x53, 0x7c, 0x6a, 0x50, 0x68, 0x1d, 0xd4, 0xd1, 0x5d, 0xcf, 0xa1, 0xad, 0xf0, 0xfd, 0xa9,
- 0xbe, 0xf5, 0x4e, 0xb8, 0x09, 0x93, 0x03, 0x50, 0x9c, 0x89, 0xd8, 0x15, 0x2a, 0x39, 0x29, 0xc5,
- 0x1b, 0xf6, 0x6d, 0x9e, 0x89, 0x02, 0x30, 0x6c, 0x5b, 0xa0, 0x43, 0xc4, 0x6e, 0xd7, 0xf0, 0xf9,
- 0x20, 0x01, 0xdd, 0x77, 0x22, 0xc6, 0x35, 0x39, 0x16, 0x73, 0x06, 0xfa, 0x9f, 0xbe, 0x79, 0x80,
- 0x0e, 0x13, 0x45, 0xe7, 0xdf, 0x47, 0xfa, 0x9f, 0x3d, 0x8a, 0xa4, 0x39, 0x64, 0x2a, 0xd2, 0x4f,
- 0x49, 0x71, 0x1f, 0xeb, 0x94, 0x7f, 0xf1, 0x1e, 0x9b, 0x6f, 0xb8, 0x9d, 0xaa, 0x6d, 0xe0, 0x20,
- 0x0f, 0x37, 0x3d, 0xf1, 0x64, 0x2f, 0xdf, 0xf3, 0xe3, 0x3c, 0xd4, 0xf3, 0xd4, 0xae, 0xc3, 0x64,
- 0xa8, 0xe1, 0x89, 0xa7, 0xfa, 0x25, 0x46, 0x55, 0x0c, 0xf6, 0x3b, 0xb5, 0x4b, 0x90, 0xc1, 0xcd,
- 0x4b, 0x3c, 0xfc, 0x97, 0x19, 0x9c, 0xa8, 0xd7, 0x3e, 0x01, 0x39, 0xde, 0xb4, 0xc4, 0x43, 0x7f,
- 0x85, 0x41, 0x7d, 0x08, 0x86, 0xf3, 0x86, 0x25, 0x1e, 0xfe, 0xab, 0x1c, 0xce, 0x21, 0x18, 0x9e,
- 0xdc, 0x85, 0xff, 0xf0, 0x6b, 0x19, 0x56, 0x74, 0xb8, 0xef, 0xae, 0xc1, 0x04, 0xeb, 0x54, 0xe2,
- 0xd1, 0x9f, 0x63, 0x2f, 0xe7, 0x88, 0xda, 0x53, 0x90, 0x4d, 0xe8, 0xf0, 0x5f, 0x67, 0x50, 0xaa,
- 0x5f, 0x5b, 0x81, 0x42, 0xa0, 0x3b, 0x89, 0x87, 0xff, 0x06, 0x83, 0x07, 0x51, 0xd8, 0x74, 0xd6,
- 0x9d, 0xc4, 0x13, 0xfc, 0x26, 0x37, 0x9d, 0x21, 0xb0, 0xdb, 0x78, 0x63, 0x12, 0x8f, 0xfe, 0x2d,
- 0xee, 0x75, 0x0e, 0xa9, 0x3d, 0x03, 0x79, 0xbf, 0xd8, 0xc4, 0xe3, 0x7f, 0x9b, 0xe1, 0x07, 0x18,
- 0xec, 0x81, 0x40, 0xb1, 0x8b, 0xa7, 0xf8, 0x1d, 0xee, 0x81, 0x00, 0x0a, 0x6f, 0xa3, 0x68, 0x03,
- 0x13, 0xcf, 0xf4, 0xbb, 0x7c, 0x1b, 0x45, 0xfa, 0x17, 0xbc, 0x9a, 0x24, 0xe7, 0xc7, 0x53, 0xfc,
- 0x1e, 0x5f, 0x4d, 0xa2, 0x8f, 0xcd, 0x88, 0x76, 0x04, 0xf1, 0x1c, 0xbf, 0xcf, 0xcd, 0x88, 0x34,
- 0x04, 0xb5, 0x1d, 0x90, 0x86, 0xbb, 0x81, 0x78, 0xbe, 0xcf, 0x33, 0xbe, 0xe9, 0xa1, 0x66, 0xa0,
- 0xf6, 0x1c, 0x9c, 0x1e, 0xdd, 0x09, 0xc4, 0xb3, 0x7e, 0xe1, 0x5e, 0xe4, 0xec, 0x16, 0x6c, 0x04,
- 0x6a, 0xbb, 0x83, 0x92, 0x12, 0xec, 0x02, 0xe2, 0x69, 0x5f, 0xb9, 0x17, 0x4e, 0xdc, 0xc1, 0x26,
- 0xa0, 0x56, 0x07, 0x18, 0x14, 0xe0, 0x78, 0xae, 0x57, 0x19, 0x57, 0x00, 0x84, 0xb7, 0x06, 0xab,
- 0xbf, 0xf1, 0xf8, 0x2f, 0xf2, 0xad, 0xc1, 0x10, 0x78, 0x6b, 0xf0, 0xd2, 0x1b, 0x8f, 0x7e, 0x8d,
- 0x6f, 0x0d, 0x0e, 0xc1, 0x91, 0x1d, 0xa8, 0x6e, 0xf1, 0x0c, 0x5f, 0xe2, 0x91, 0x1d, 0x40, 0xd5,
- 0xb6, 0x60, 0x7a, 0xa8, 0x20, 0xc6, 0x53, 0x7d, 0x99, 0x51, 0x89, 0xd1, 0x7a, 0x18, 0x2c, 0x5e,
- 0xac, 0x18, 0xc6, 0xb3, 0xfd, 0x71, 0xa4, 0x78, 0xb1, 0x5a, 0x58, 0xbb, 0x06, 0x39, 0xb3, 0x6f,
- 0x18, 0x78, 0xf3, 0x48, 0xf7, 0xff, 0xc0, 0xae, 0xfc, 0xef, 0xef, 0x33, 0xef, 0x70, 0x40, 0xed,
- 0x12, 0x64, 0x51, 0x6f, 0x1f, 0xb5, 0xe2, 0x90, 0xff, 0xf1, 0x3e, 0x4f, 0x98, 0x58, 0xbb, 0xf6,
- 0x0c, 0x00, 0xbd, 0x1a, 0x21, 0x3f, 0xfb, 0xc5, 0x60, 0xff, 0xf3, 0x7d, 0xf6, 0xe9, 0xcb, 0x00,
- 0x32, 0x20, 0xa0, 0x1f, 0xd2, 0xdc, 0x9f, 0xe0, 0x9d, 0x30, 0x01, 0x59, 0x91, 0xab, 0x30, 0x71,
- 0xc3, 0xb5, 0x4c, 0x4f, 0xed, 0xc4, 0xa1, 0xff, 0x8b, 0xa1, 0xb9, 0x3e, 0x76, 0x58, 0xcf, 0x72,
- 0x90, 0xa7, 0x76, 0xdc, 0x38, 0xec, 0x7f, 0x33, 0xac, 0x0f, 0xc0, 0x60, 0x4d, 0x75, 0xbd, 0x24,
- 0xf3, 0xfe, 0x11, 0x07, 0x73, 0x00, 0x36, 0x1a, 0xff, 0x7f, 0x80, 0x0e, 0xe3, 0xb0, 0xef, 0x72,
- 0xa3, 0x99, 0x7e, 0xed, 0x13, 0x90, 0xc7, 0xff, 0xd2, 0xef, 0xd9, 0x62, 0xc0, 0xff, 0xc3, 0xc0,
- 0x03, 0x04, 0x7e, 0xb3, 0xeb, 0xb5, 0x3c, 0x3d, 0xde, 0xd9, 0xff, 0xcb, 0x56, 0x9a, 0xeb, 0xd7,
- 0xea, 0x50, 0x70, 0xbd, 0x56, 0xab, 0xcf, 0xfa, 0xd3, 0x18, 0xf8, 0xff, 0xbd, 0xef, 0x5f, 0x59,
- 0xf8, 0x18, 0xbc, 0xda, 0xb7, 0x0e, 0x3c, 0xdb, 0x22, 0x3f, 0x73, 0xc4, 0x31, 0xdc, 0x63, 0x0c,
- 0x01, 0xc8, 0x72, 0x63, 0xf4, 0xf5, 0x2d, 0xac, 0x59, 0x6b, 0x16, 0xbd, 0xb8, 0x7d, 0xb1, 0x1a,
- 0x7f, 0x03, 0x0b, 0x6f, 0xa4, 0xe1, 0x94, 0x66, 0xf5, 0xf6, 0x2d, 0x77, 0x69, 0xdf, 0xf2, 0xba,
- 0x4b, 0x3d, 0xd5, 0x66, 0x17, 0xb2, 0x85, 0x9e, 0x6a, 0xb3, 0x2f, 0x5f, 0xdd, 0xb9, 0x93, 0x5d,
- 0xe6, 0x56, 0x7f, 0x01, 0x26, 0x36, 0x55, 0x7b, 0x17, 0xb9, 0x9e, 0x44, 0xdc, 0x4c, 0x3e, 0xb1,
- 0x62, 0x37, 0xe4, 0xf3, 0x8b, 0x01, 0xe2, 0x45, 0xa6, 0xb6, 0xd8, 0xf4, 0x9c, 0xa6, 0xe7, 0x90,
- 0xaf, 0x09, 0xe4, 0x71, 0x97, 0x3c, 0xcc, 0x5d, 0x85, 0x42, 0x40, 0x2c, 0x89, 0x90, 0x3e, 0x40,
- 0x87, 0xec, 0x23, 0x2b, 0xfc, 0xaf, 0x34, 0x3b, 0xf8, 0x0a, 0x12, 0xcb, 0xe8, 0x43, 0x2d, 0x75,
- 0x45, 0xa8, 0x3e, 0x0d, 0x13, 0xd7, 0xd5, 0x03, 0xb4, 0xa9, 0xda, 0xd2, 0x45, 0x98, 0x40, 0xa6,
- 0xe7, 0xe8, 0xc8, 0x65, 0x06, 0x9c, 0x0d, 0x19, 0xc0, 0xd4, 0xe8, 0x9b, 0xb9, 0x66, 0x75, 0x03,
- 0x8a, 0xc1, 0x81, 0xa4, 0xef, 0xc6, 0x52, 0xcb, 0xeb, 0xb2, 0xaf, 0xa2, 0xf3, 0x32, 0x7d, 0x58,
- 0x5e, 0x7d, 0xf3, 0x6e, 0x65, 0xec, 0x7b, 0x77, 0x2b, 0x63, 0xff, 0x72, 0xb7, 0x32, 0xf6, 0xd6,
- 0xdd, 0x8a, 0xf0, 0xee, 0xdd, 0x8a, 0xf0, 0xde, 0xdd, 0x8a, 0x70, 0xe7, 0xa8, 0x22, 0x7c, 0xf5,
- 0xa8, 0x22, 0xbc, 0x71, 0x54, 0x11, 0xbe, 0x75, 0x54, 0x11, 0xde, 0x3c, 0xaa, 0x08, 0xdf, 0x3b,
- 0xaa, 0x08, 0x6f, 0x1d, 0x55, 0x84, 0x1f, 0x1e, 0x55, 0xc6, 0xde, 0x3d, 0xaa, 0x08, 0xef, 0x1d,
- 0x55, 0xc6, 0xee, 0xfc, 0xa0, 0x32, 0xb6, 0x3f, 0x4e, 0x7c, 0x7b, 0xf1, 0xff, 0x03, 0x00, 0x00,
- 0xff, 0xff, 0xc7, 0x48, 0xca, 0xd1, 0x4e, 0x34, 0x00, 0x00,
+ // 4011 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6,
+ 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x82, 0x20, 0xad, 0x96, 0x2b, 0xc7, 0x5c, 0x2d, 0x6d,
+ 0xc7, 0xb2, 0x1d, 0x4b, 0x99, 0xbd, 0x79, 0x97, 0xdb, 0xd8, 0xa5, 0x24, 0xae, 0x22, 0x57, 0xb7,
+ 0x80, 0x52, 0x7c, 0xc9, 0x74, 0x30, 0x10, 0xf8, 0x8b, 0xc4, 0x0a, 0x04, 0x10, 0x00, 0xdc, 0xb5,
+ 0x76, 0x3a, 0xd3, 0xed, 0xb8, 0x97, 0xc9, 0xf4, 0x7e, 0x99, 0x69, 0xe2, 0x3a, 0x6e, 0x93, 0x4e,
+ 0xe3, 0x34, 0xbd, 0x39, 0xbd, 0xa4, 0x49, 0xfa, 0xd2, 0x97, 0xb4, 0x7e, 0xea, 0x24, 0x6f, 0x7d,
+ 0xe8, 0x83, 0x57, 0xf1, 0x4c, 0xd3, 0xd6, 0x6d, 0xdd, 0x76, 0x1f, 0x3c, 0xe3, 0x97, 0xce, 0x7f,
+ 0x03, 0x01, 0x90, 0x5a, 0x40, 0x99, 0xb1, 0xfd, 0x24, 0xe1, 0xfc, 0xe7, 0xfb, 0x70, 0xfe, 0xf3,
+ 0x9f, 0xff, 0x9c, 0xf3, 0xff, 0x20, 0xbc, 0x59, 0x83, 0xb9, 0xb6, 0x65, 0xb5, 0x0d, 0xb4, 0x68,
+ 0x3b, 0x96, 0x67, 0xed, 0xf5, 0xf6, 0x17, 0x5b, 0xc8, 0xd5, 0x1c, 0xdd, 0xf6, 0x2c, 0x67, 0x81,
+ 0xc8, 0xa4, 0x09, 0xaa, 0xb1, 0xc0, 0x35, 0xaa, 0x1b, 0x30, 0x79, 0x5d, 0x37, 0xd0, 0x8a, 0xaf,
+ 0xd8, 0x44, 0x9e, 0x74, 0x05, 0x32, 0xfb, 0xba, 0x81, 0xca, 0xc2, 0x5c, 0x7a, 0xbe, 0x70, 0xfe,
+ 0xe1, 0x85, 0x08, 0x68, 0x21, 0x8c, 0xd8, 0xc6, 0x62, 0x99, 0x20, 0xaa, 0x6f, 0x67, 0x60, 0x6a,
+ 0xc8, 0xa8, 0x24, 0x41, 0xc6, 0x54, 0xbb, 0x98, 0x51, 0x98, 0xcf, 0xcb, 0xe4, 0x7f, 0xa9, 0x0c,
+ 0x63, 0xb6, 0xaa, 0x1d, 0xa8, 0x6d, 0x54, 0x4e, 0x11, 0x31, 0x7f, 0x94, 0x2a, 0x00, 0x2d, 0x64,
+ 0x23, 0xb3, 0x85, 0x4c, 0xed, 0xb0, 0x9c, 0x9e, 0x4b, 0xcf, 0xe7, 0xe5, 0x80, 0x44, 0x7a, 0x02,
+ 0x26, 0xed, 0xde, 0x9e, 0xa1, 0x6b, 0x4a, 0x40, 0x0d, 0xe6, 0xd2, 0xf3, 0x59, 0x59, 0xa4, 0x03,
+ 0x2b, 0x7d, 0xe5, 0x47, 0x61, 0xe2, 0x16, 0x52, 0x0f, 0x82, 0xaa, 0x05, 0xa2, 0x5a, 0xc2, 0xe2,
+ 0x80, 0xe2, 0x32, 0x14, 0xbb, 0xc8, 0x75, 0xd5, 0x36, 0x52, 0xbc, 0x43, 0x1b, 0x95, 0x33, 0x64,
+ 0xf6, 0x73, 0x03, 0xb3, 0x8f, 0xce, 0xbc, 0xc0, 0x50, 0x3b, 0x87, 0x36, 0x92, 0xea, 0x90, 0x47,
+ 0x66, 0xaf, 0x4b, 0x19, 0xb2, 0xc7, 0xf8, 0xaf, 0x61, 0xf6, 0xba, 0x51, 0x96, 0x1c, 0x86, 0x31,
+ 0x8a, 0x31, 0x17, 0x39, 0x37, 0x75, 0x0d, 0x95, 0x47, 0x09, 0xc1, 0xa3, 0x03, 0x04, 0x4d, 0x3a,
+ 0x1e, 0xe5, 0xe0, 0x38, 0x69, 0x19, 0xf2, 0xe8, 0x25, 0x0f, 0x99, 0xae, 0x6e, 0x99, 0xe5, 0x31,
+ 0x42, 0xf2, 0xc8, 0x90, 0x55, 0x44, 0x46, 0x2b, 0x4a, 0xd1, 0xc7, 0x49, 0x97, 0x61, 0xcc, 0xb2,
+ 0x3d, 0xdd, 0x32, 0xdd, 0x72, 0x6e, 0x4e, 0x98, 0x2f, 0x9c, 0xff, 0xd8, 0xd0, 0x40, 0xd8, 0xa2,
+ 0x3a, 0x32, 0x57, 0x96, 0xd6, 0x40, 0x74, 0xad, 0x9e, 0xa3, 0x21, 0x45, 0xb3, 0x5a, 0x48, 0xd1,
+ 0xcd, 0x7d, 0xab, 0x9c, 0x27, 0x04, 0x67, 0x07, 0x27, 0x42, 0x14, 0x97, 0xad, 0x16, 0x5a, 0x33,
+ 0xf7, 0x2d, 0xb9, 0xe4, 0x86, 0x9e, 0xa5, 0x19, 0x18, 0x75, 0x0f, 0x4d, 0x4f, 0x7d, 0xa9, 0x5c,
+ 0x24, 0x11, 0xc2, 0x9e, 0xaa, 0xdf, 0x19, 0x85, 0x89, 0x24, 0x21, 0x76, 0x0d, 0xb2, 0xfb, 0x78,
+ 0x96, 0xe5, 0xd4, 0x49, 0x7c, 0x40, 0x31, 0x61, 0x27, 0x8e, 0xfe, 0x98, 0x4e, 0xac, 0x43, 0xc1,
+ 0x44, 0xae, 0x87, 0x5a, 0x34, 0x22, 0xd2, 0x09, 0x63, 0x0a, 0x28, 0x68, 0x30, 0xa4, 0x32, 0x3f,
+ 0x56, 0x48, 0x3d, 0x0f, 0x13, 0xbe, 0x49, 0x8a, 0xa3, 0x9a, 0x6d, 0x1e, 0x9b, 0x8b, 0x71, 0x96,
+ 0x2c, 0x34, 0x38, 0x4e, 0xc6, 0x30, 0xb9, 0x84, 0x42, 0xcf, 0xd2, 0x0a, 0x80, 0x65, 0x22, 0x6b,
+ 0x5f, 0x69, 0x21, 0xcd, 0x28, 0xe7, 0x8e, 0xf1, 0xd2, 0x16, 0x56, 0x19, 0xf0, 0x92, 0x45, 0xa5,
+ 0x9a, 0x21, 0x5d, 0xed, 0x87, 0xda, 0xd8, 0x31, 0x91, 0xb2, 0x41, 0x37, 0xd9, 0x40, 0xb4, 0xed,
+ 0x42, 0xc9, 0x41, 0x38, 0xee, 0x51, 0x8b, 0xcd, 0x2c, 0x4f, 0x8c, 0x58, 0x88, 0x9d, 0x99, 0xcc,
+ 0x60, 0x74, 0x62, 0xe3, 0x4e, 0xf0, 0x51, 0x7a, 0x08, 0x7c, 0x81, 0x42, 0xc2, 0x0a, 0x48, 0x16,
+ 0x2a, 0x72, 0xe1, 0xa6, 0xda, 0x45, 0xb3, 0xb7, 0xa1, 0x14, 0x76, 0x8f, 0x34, 0x0d, 0x59, 0xd7,
+ 0x53, 0x1d, 0x8f, 0x44, 0x61, 0x56, 0xa6, 0x0f, 0x92, 0x08, 0x69, 0x64, 0xb6, 0x48, 0x96, 0xcb,
+ 0xca, 0xf8, 0x5f, 0xe9, 0x27, 0xfb, 0x13, 0x4e, 0x93, 0x09, 0x7f, 0x7c, 0x70, 0x45, 0x43, 0xcc,
+ 0xd1, 0x79, 0xcf, 0x3e, 0x05, 0xe3, 0xa1, 0x09, 0x24, 0x7d, 0x75, 0xf5, 0x67, 0xe0, 0xd4, 0x50,
+ 0x6a, 0xe9, 0x79, 0x98, 0xee, 0x99, 0xba, 0xe9, 0x21, 0xc7, 0x76, 0x10, 0x8e, 0x58, 0xfa, 0xaa,
+ 0xf2, 0xbf, 0x8e, 0x1d, 0x13, 0x73, 0xbb, 0x41, 0x6d, 0xca, 0x22, 0x4f, 0xf5, 0x06, 0x85, 0x8f,
+ 0xe7, 0x73, 0x3f, 0x1a, 0x13, 0xef, 0xdc, 0xb9, 0x73, 0x27, 0x55, 0xfd, 0xe2, 0x28, 0x4c, 0x0f,
+ 0xdb, 0x33, 0x43, 0xb7, 0xef, 0x0c, 0x8c, 0x9a, 0xbd, 0xee, 0x1e, 0x72, 0x88, 0x93, 0xb2, 0x32,
+ 0x7b, 0x92, 0xea, 0x90, 0x35, 0xd4, 0x3d, 0x64, 0x94, 0x33, 0x73, 0xc2, 0x7c, 0xe9, 0xfc, 0x13,
+ 0x89, 0x76, 0xe5, 0xc2, 0x3a, 0x86, 0xc8, 0x14, 0x29, 0x3d, 0x0d, 0x19, 0x96, 0xa2, 0x31, 0xc3,
+ 0xe3, 0xc9, 0x18, 0xf0, 0x5e, 0x92, 0x09, 0x4e, 0x7a, 0x00, 0xf2, 0xf8, 0x2f, 0x8d, 0x8d, 0x51,
+ 0x62, 0x73, 0x0e, 0x0b, 0x70, 0x5c, 0x48, 0xb3, 0x90, 0x23, 0xdb, 0xa4, 0x85, 0x78, 0x69, 0xf3,
+ 0x9f, 0x71, 0x60, 0xb5, 0xd0, 0xbe, 0xda, 0x33, 0x3c, 0xe5, 0xa6, 0x6a, 0xf4, 0x10, 0x09, 0xf8,
+ 0xbc, 0x5c, 0x64, 0xc2, 0xcf, 0x62, 0x99, 0x74, 0x16, 0x0a, 0x74, 0x57, 0xe9, 0x66, 0x0b, 0xbd,
+ 0x44, 0xb2, 0x67, 0x56, 0xa6, 0x1b, 0x6d, 0x0d, 0x4b, 0xf0, 0xeb, 0x6f, 0xb8, 0x96, 0xc9, 0x43,
+ 0x93, 0xbc, 0x02, 0x0b, 0xc8, 0xeb, 0x9f, 0x8a, 0x26, 0xee, 0x07, 0x87, 0x4f, 0x2f, 0x1a, 0x53,
+ 0xd5, 0x6f, 0xa5, 0x20, 0x43, 0xf2, 0xc5, 0x04, 0x14, 0x76, 0x5e, 0xd8, 0x6e, 0x28, 0x2b, 0x5b,
+ 0xbb, 0x4b, 0xeb, 0x0d, 0x51, 0x90, 0x4a, 0x00, 0x44, 0x70, 0x7d, 0x7d, 0xab, 0xbe, 0x23, 0xa6,
+ 0xfc, 0xe7, 0xb5, 0xcd, 0x9d, 0xcb, 0x17, 0xc5, 0xb4, 0x0f, 0xd8, 0xa5, 0x82, 0x4c, 0x50, 0xe1,
+ 0xc2, 0x79, 0x31, 0x2b, 0x89, 0x50, 0xa4, 0x04, 0x6b, 0xcf, 0x37, 0x56, 0x2e, 0x5f, 0x14, 0x47,
+ 0xc3, 0x92, 0x0b, 0xe7, 0xc5, 0x31, 0x69, 0x1c, 0xf2, 0x44, 0xb2, 0xb4, 0xb5, 0xb5, 0x2e, 0xe6,
+ 0x7c, 0xce, 0xe6, 0x8e, 0xbc, 0xb6, 0xb9, 0x2a, 0xe6, 0x7d, 0xce, 0x55, 0x79, 0x6b, 0x77, 0x5b,
+ 0x04, 0x9f, 0x61, 0xa3, 0xd1, 0x6c, 0xd6, 0x57, 0x1b, 0x62, 0xc1, 0xd7, 0x58, 0x7a, 0x61, 0xa7,
+ 0xd1, 0x14, 0x8b, 0x21, 0xb3, 0x2e, 0x9c, 0x17, 0xc7, 0xfd, 0x57, 0x34, 0x36, 0x77, 0x37, 0xc4,
+ 0x92, 0x34, 0x09, 0xe3, 0xf4, 0x15, 0xdc, 0x88, 0x89, 0x88, 0xe8, 0xf2, 0x45, 0x51, 0xec, 0x1b,
+ 0x42, 0x59, 0x26, 0x43, 0x82, 0xcb, 0x17, 0x45, 0xa9, 0xba, 0x0c, 0x59, 0x12, 0x5d, 0x92, 0x04,
+ 0xa5, 0xf5, 0xfa, 0x52, 0x63, 0x5d, 0xd9, 0xda, 0xde, 0x59, 0xdb, 0xda, 0xac, 0xaf, 0x8b, 0x42,
+ 0x5f, 0x26, 0x37, 0x3e, 0xb3, 0xbb, 0x26, 0x37, 0x56, 0xc4, 0x54, 0x50, 0xb6, 0xdd, 0xa8, 0xef,
+ 0x34, 0x56, 0xc4, 0x74, 0x55, 0x83, 0xe9, 0x61, 0x79, 0x72, 0xe8, 0xce, 0x08, 0x2c, 0x71, 0xea,
+ 0x98, 0x25, 0x26, 0x5c, 0x03, 0x4b, 0xfc, 0xc3, 0x14, 0x4c, 0x0d, 0xa9, 0x15, 0x43, 0x5f, 0xf2,
+ 0x0c, 0x64, 0x69, 0x88, 0xd2, 0xea, 0xf9, 0xd8, 0xd0, 0xa2, 0x43, 0x02, 0x76, 0xa0, 0x82, 0x12,
+ 0x5c, 0xb0, 0x83, 0x48, 0x1f, 0xd3, 0x41, 0x60, 0x8a, 0x81, 0x9c, 0xfe, 0xd3, 0x03, 0x39, 0x9d,
+ 0x96, 0xbd, 0xcb, 0x49, 0xca, 0x1e, 0x91, 0x9d, 0x2c, 0xb7, 0x67, 0x87, 0xe4, 0xf6, 0x6b, 0x30,
+ 0x39, 0x40, 0x94, 0x38, 0xc7, 0xbe, 0x2c, 0x40, 0xf9, 0x38, 0xe7, 0xc4, 0x64, 0xba, 0x54, 0x28,
+ 0xd3, 0x5d, 0x8b, 0x7a, 0xf0, 0xdc, 0xf1, 0x8b, 0x30, 0xb0, 0xd6, 0xaf, 0x0b, 0x30, 0x33, 0xbc,
+ 0x53, 0x1c, 0x6a, 0xc3, 0xd3, 0x30, 0xda, 0x45, 0x5e, 0xc7, 0xe2, 0xdd, 0xd2, 0xc7, 0x87, 0xd4,
+ 0x60, 0x3c, 0x1c, 0x5d, 0x6c, 0x86, 0x0a, 0x16, 0xf1, 0xf4, 0x71, 0xed, 0x1e, 0xb5, 0x66, 0xc0,
+ 0xd2, 0x2f, 0xa4, 0xe0, 0xd4, 0x50, 0xf2, 0xa1, 0x86, 0x3e, 0x08, 0xa0, 0x9b, 0x76, 0xcf, 0xa3,
+ 0x1d, 0x11, 0x4d, 0xb0, 0x79, 0x22, 0x21, 0xc9, 0x0b, 0x27, 0xcf, 0x9e, 0xe7, 0x8f, 0xa7, 0xc9,
+ 0x38, 0x50, 0x11, 0x51, 0xb8, 0xd2, 0x37, 0x34, 0x43, 0x0c, 0xad, 0x1c, 0x33, 0xd3, 0x81, 0xc0,
+ 0xfc, 0x24, 0x88, 0x9a, 0xa1, 0x23, 0xd3, 0x53, 0x5c, 0xcf, 0x41, 0x6a, 0x57, 0x37, 0xdb, 0xa4,
+ 0x82, 0xe4, 0x6a, 0xd9, 0x7d, 0xd5, 0x70, 0x91, 0x3c, 0x41, 0x87, 0x9b, 0x7c, 0x14, 0x23, 0x48,
+ 0x00, 0x39, 0x01, 0xc4, 0x68, 0x08, 0x41, 0x87, 0x7d, 0x44, 0xf5, 0x57, 0xf2, 0x50, 0x08, 0xf4,
+ 0xd5, 0xd2, 0x39, 0x28, 0xde, 0x50, 0x6f, 0xaa, 0x0a, 0x3f, 0x2b, 0x51, 0x4f, 0x14, 0xb0, 0x6c,
+ 0x9b, 0x9d, 0x97, 0x3e, 0x09, 0xd3, 0x44, 0xc5, 0xea, 0x79, 0xc8, 0x51, 0x34, 0x43, 0x75, 0x5d,
+ 0xe2, 0xb4, 0x1c, 0x51, 0x95, 0xf0, 0xd8, 0x16, 0x1e, 0x5a, 0xe6, 0x23, 0xd2, 0x25, 0x98, 0x22,
+ 0x88, 0x6e, 0xcf, 0xf0, 0x74, 0xdb, 0x40, 0x0a, 0x3e, 0xbd, 0xb9, 0xa4, 0x92, 0xf8, 0x96, 0x4d,
+ 0x62, 0x8d, 0x0d, 0xa6, 0x80, 0x2d, 0x72, 0xa5, 0x15, 0x78, 0x90, 0xc0, 0xda, 0xc8, 0x44, 0x8e,
+ 0xea, 0x21, 0x05, 0x7d, 0xbe, 0xa7, 0x1a, 0xae, 0xa2, 0x9a, 0x2d, 0xa5, 0xa3, 0xba, 0x9d, 0xf2,
+ 0x34, 0x26, 0x58, 0x4a, 0x95, 0x05, 0xf9, 0x0c, 0x56, 0x5c, 0x65, 0x7a, 0x0d, 0xa2, 0x56, 0x37,
+ 0x5b, 0x9f, 0x56, 0xdd, 0x8e, 0x54, 0x83, 0x19, 0xc2, 0xe2, 0x7a, 0x8e, 0x6e, 0xb6, 0x15, 0xad,
+ 0x83, 0xb4, 0x03, 0xa5, 0xe7, 0xed, 0x5f, 0x29, 0x3f, 0x10, 0x7c, 0x3f, 0xb1, 0xb0, 0x49, 0x74,
+ 0x96, 0xb1, 0xca, 0xae, 0xb7, 0x7f, 0x45, 0x6a, 0x42, 0x11, 0x2f, 0x46, 0x57, 0xbf, 0x8d, 0x94,
+ 0x7d, 0xcb, 0x21, 0xa5, 0xb1, 0x34, 0x24, 0x35, 0x05, 0x3c, 0xb8, 0xb0, 0xc5, 0x00, 0x1b, 0x56,
+ 0x0b, 0xd5, 0xb2, 0xcd, 0xed, 0x46, 0x63, 0x45, 0x2e, 0x70, 0x96, 0xeb, 0x96, 0x83, 0x03, 0xaa,
+ 0x6d, 0xf9, 0x0e, 0x2e, 0xd0, 0x80, 0x6a, 0x5b, 0xdc, 0xbd, 0x97, 0x60, 0x4a, 0xd3, 0xe8, 0x9c,
+ 0x75, 0x4d, 0x61, 0x67, 0x2c, 0xb7, 0x2c, 0x86, 0x9c, 0xa5, 0x69, 0xab, 0x54, 0x81, 0xc5, 0xb8,
+ 0x2b, 0x5d, 0x85, 0x53, 0x7d, 0x67, 0x05, 0x81, 0x93, 0x03, 0xb3, 0x8c, 0x42, 0x2f, 0xc1, 0x94,
+ 0x7d, 0x38, 0x08, 0x94, 0x42, 0x6f, 0xb4, 0x0f, 0xa3, 0xb0, 0xa7, 0x60, 0xda, 0xee, 0xd8, 0x83,
+ 0xb8, 0xc7, 0x83, 0x38, 0xc9, 0xee, 0xd8, 0x51, 0xe0, 0x23, 0xe4, 0xc0, 0xed, 0x20, 0x4d, 0xf5,
+ 0x50, 0xab, 0x7c, 0x3a, 0xa8, 0x1e, 0x18, 0x90, 0x16, 0x41, 0xd4, 0x34, 0x05, 0x99, 0xea, 0x9e,
+ 0x81, 0x14, 0xd5, 0x41, 0xa6, 0xea, 0x96, 0xcf, 0x06, 0x95, 0x4b, 0x9a, 0xd6, 0x20, 0xa3, 0x75,
+ 0x32, 0x28, 0x3d, 0x0e, 0x93, 0xd6, 0xde, 0x0d, 0x8d, 0x86, 0xa4, 0x62, 0x3b, 0x68, 0x5f, 0x7f,
+ 0xa9, 0xfc, 0x30, 0xf1, 0xef, 0x04, 0x1e, 0x20, 0x01, 0xb9, 0x4d, 0xc4, 0xd2, 0x63, 0x20, 0x6a,
+ 0x6e, 0x47, 0x75, 0x6c, 0x92, 0x93, 0x5d, 0x5b, 0xd5, 0x50, 0xf9, 0x11, 0xaa, 0x4a, 0xe5, 0x9b,
+ 0x5c, 0x8c, 0xb7, 0x84, 0x7b, 0x4b, 0xdf, 0xf7, 0x38, 0xe3, 0xa3, 0x74, 0x4b, 0x10, 0x19, 0x63,
+ 0x9b, 0x07, 0x11, 0xbb, 0x22, 0xf4, 0xe2, 0x79, 0xa2, 0x56, 0xb2, 0x3b, 0x76, 0xf0, 0xbd, 0x0f,
+ 0xc1, 0x38, 0xd6, 0xec, 0xbf, 0xf4, 0x31, 0xda, 0x90, 0xd9, 0x9d, 0xc0, 0x1b, 0x2f, 0xc2, 0x0c,
+ 0x56, 0xea, 0x22, 0x4f, 0x6d, 0xa9, 0x9e, 0x1a, 0xd0, 0xfe, 0x04, 0xd1, 0xc6, 0x7e, 0xdf, 0x60,
+ 0x83, 0x21, 0x3b, 0x9d, 0xde, 0xde, 0xa1, 0x1f, 0x59, 0x4f, 0x52, 0x3b, 0xb1, 0x8c, 0xc7, 0xd6,
+ 0x07, 0xd6, 0x74, 0x57, 0x6b, 0x50, 0x0c, 0x06, 0xbe, 0x94, 0x07, 0x1a, 0xfa, 0xa2, 0x80, 0xbb,
+ 0xa0, 0xe5, 0xad, 0x15, 0xdc, 0xbf, 0xbc, 0xd8, 0x10, 0x53, 0xb8, 0x8f, 0x5a, 0x5f, 0xdb, 0x69,
+ 0x28, 0xf2, 0xee, 0xe6, 0xce, 0xda, 0x46, 0x43, 0x4c, 0x07, 0x1b, 0xf6, 0xef, 0xa5, 0xa0, 0x14,
+ 0x3e, 0x7b, 0x49, 0x3f, 0x01, 0xa7, 0xf9, 0x45, 0x89, 0x8b, 0x3c, 0xe5, 0x96, 0xee, 0x90, 0xbd,
+ 0xd8, 0x55, 0x69, 0x5d, 0xf4, 0xa3, 0x61, 0x9a, 0x69, 0x35, 0x91, 0xf7, 0x9c, 0xee, 0xe0, 0x9d,
+ 0xd6, 0x55, 0x3d, 0x69, 0x1d, 0xce, 0x9a, 0x96, 0xe2, 0x7a, 0xaa, 0xd9, 0x52, 0x9d, 0x96, 0xd2,
+ 0xbf, 0xa2, 0x52, 0x54, 0x4d, 0x43, 0xae, 0x6b, 0xd1, 0x1a, 0xe8, 0xb3, 0x7c, 0xcc, 0xb4, 0x9a,
+ 0x4c, 0xb9, 0x5f, 0x1c, 0xea, 0x4c, 0x35, 0x12, 0xb9, 0xe9, 0xe3, 0x22, 0xf7, 0x01, 0xc8, 0x77,
+ 0x55, 0x5b, 0x41, 0xa6, 0xe7, 0x1c, 0x92, 0x8e, 0x3b, 0x27, 0xe7, 0xba, 0xaa, 0xdd, 0xc0, 0xcf,
+ 0x1f, 0xce, 0xc1, 0xe7, 0x5f, 0xd2, 0x50, 0x0c, 0x76, 0xdd, 0xf8, 0x10, 0xa3, 0x91, 0x02, 0x25,
+ 0x90, 0x14, 0xf6, 0xd0, 0x7d, 0x7b, 0xf4, 0x85, 0x65, 0x5c, 0xb9, 0x6a, 0xa3, 0xb4, 0x17, 0x96,
+ 0x29, 0x12, 0x77, 0x0d, 0x38, 0xb4, 0x10, 0xed, 0x3d, 0x72, 0x32, 0x7b, 0x92, 0x56, 0x61, 0xf4,
+ 0x86, 0x4b, 0xb8, 0x47, 0x09, 0xf7, 0xc3, 0xf7, 0xe7, 0x7e, 0xb6, 0x49, 0xc8, 0xf3, 0xcf, 0x36,
+ 0x95, 0xcd, 0x2d, 0x79, 0xa3, 0xbe, 0x2e, 0x33, 0xb8, 0x74, 0x06, 0x32, 0x86, 0x7a, 0xfb, 0x30,
+ 0x5c, 0xe3, 0x88, 0x28, 0xa9, 0xe3, 0xcf, 0x40, 0xe6, 0x16, 0x52, 0x0f, 0xc2, 0x95, 0x85, 0x88,
+ 0x3e, 0xc0, 0xd0, 0x5f, 0x84, 0x2c, 0xf1, 0x97, 0x04, 0xc0, 0x3c, 0x26, 0x8e, 0x48, 0x39, 0xc8,
+ 0x2c, 0x6f, 0xc9, 0x38, 0xfc, 0x45, 0x28, 0x52, 0xa9, 0xb2, 0xbd, 0xd6, 0x58, 0x6e, 0x88, 0xa9,
+ 0xea, 0x25, 0x18, 0xa5, 0x4e, 0xc0, 0x5b, 0xc3, 0x77, 0x83, 0x38, 0xc2, 0x1e, 0x19, 0x87, 0xc0,
+ 0x47, 0x77, 0x37, 0x96, 0x1a, 0xb2, 0x98, 0x0a, 0x2e, 0xaf, 0x0b, 0xc5, 0x60, 0xc3, 0xfd, 0xe1,
+ 0xc4, 0xd4, 0x77, 0x05, 0x28, 0x04, 0x1a, 0x68, 0xdc, 0xf9, 0xa8, 0x86, 0x61, 0xdd, 0x52, 0x54,
+ 0x43, 0x57, 0x5d, 0x16, 0x14, 0x40, 0x44, 0x75, 0x2c, 0x49, 0xba, 0x68, 0x1f, 0x8a, 0xf1, 0xaf,
+ 0x09, 0x20, 0x46, 0x7b, 0xd7, 0x88, 0x81, 0xc2, 0x47, 0x6a, 0xe0, 0xab, 0x02, 0x94, 0xc2, 0x0d,
+ 0x6b, 0xc4, 0xbc, 0x73, 0x1f, 0xa9, 0x79, 0x6f, 0xa5, 0x60, 0x3c, 0xd4, 0xa6, 0x26, 0xb5, 0xee,
+ 0xf3, 0x30, 0xa9, 0xb7, 0x50, 0xd7, 0xb6, 0x3c, 0x64, 0x6a, 0x87, 0x8a, 0x81, 0x6e, 0x22, 0xa3,
+ 0x5c, 0x25, 0x89, 0x62, 0xf1, 0xfe, 0x8d, 0xf0, 0xc2, 0x5a, 0x1f, 0xb7, 0x8e, 0x61, 0xb5, 0xa9,
+ 0xb5, 0x95, 0xc6, 0xc6, 0xf6, 0xd6, 0x4e, 0x63, 0x73, 0xf9, 0x05, 0x65, 0x77, 0xf3, 0xa7, 0x36,
+ 0xb7, 0x9e, 0xdb, 0x94, 0x45, 0x3d, 0xa2, 0xf6, 0x01, 0x6e, 0xf5, 0x6d, 0x10, 0xa3, 0x46, 0x49,
+ 0xa7, 0x61, 0x98, 0x59, 0xe2, 0x88, 0x34, 0x05, 0x13, 0x9b, 0x5b, 0x4a, 0x73, 0x6d, 0xa5, 0xa1,
+ 0x34, 0xae, 0x5f, 0x6f, 0x2c, 0xef, 0x34, 0xe9, 0xd5, 0x86, 0xaf, 0xbd, 0x13, 0xde, 0xd4, 0xaf,
+ 0xa4, 0x61, 0x6a, 0x88, 0x25, 0x52, 0x9d, 0x1d, 0x4a, 0xe8, 0x39, 0xe9, 0xc9, 0x24, 0xd6, 0x2f,
+ 0xe0, 0xae, 0x60, 0x5b, 0x75, 0x3c, 0x76, 0x86, 0x79, 0x0c, 0xb0, 0x97, 0x4c, 0x4f, 0xdf, 0xd7,
+ 0x91, 0xc3, 0x6e, 0x82, 0xe8, 0x49, 0x65, 0xa2, 0x2f, 0xa7, 0x97, 0x41, 0x9f, 0x00, 0xc9, 0xb6,
+ 0x5c, 0xdd, 0xd3, 0x6f, 0x22, 0x45, 0x37, 0xf9, 0xb5, 0x11, 0x3e, 0xb9, 0x64, 0x64, 0x91, 0x8f,
+ 0xac, 0x99, 0x9e, 0xaf, 0x6d, 0xa2, 0xb6, 0x1a, 0xd1, 0xc6, 0x09, 0x3c, 0x2d, 0x8b, 0x7c, 0xc4,
+ 0xd7, 0x3e, 0x07, 0xc5, 0x96, 0xd5, 0xc3, 0xed, 0x1c, 0xd5, 0xc3, 0xf5, 0x42, 0x90, 0x0b, 0x54,
+ 0xe6, 0xab, 0xb0, 0x46, 0xbd, 0x7f, 0x5f, 0x55, 0x94, 0x0b, 0x54, 0x46, 0x55, 0x1e, 0x85, 0x09,
+ 0xb5, 0xdd, 0x76, 0x30, 0x39, 0x27, 0xa2, 0x47, 0x8f, 0x92, 0x2f, 0x26, 0x8a, 0xb3, 0xcf, 0x42,
+ 0x8e, 0xfb, 0x01, 0x97, 0x64, 0xec, 0x09, 0xc5, 0xa6, 0xe7, 0xe9, 0xd4, 0x7c, 0x5e, 0xce, 0x99,
+ 0x7c, 0xf0, 0x1c, 0x14, 0x75, 0x57, 0xe9, 0x5f, 0xbf, 0xa7, 0xe6, 0x52, 0xf3, 0x39, 0xb9, 0xa0,
+ 0xbb, 0xfe, 0xd5, 0x65, 0xf5, 0xf5, 0x14, 0x94, 0xc2, 0x9f, 0x0f, 0xa4, 0x15, 0xc8, 0x19, 0x96,
+ 0xa6, 0x92, 0xd0, 0xa2, 0xdf, 0xae, 0xe6, 0x63, 0xbe, 0x38, 0x2c, 0xac, 0x33, 0x7d, 0xd9, 0x47,
+ 0xce, 0xfe, 0x93, 0x00, 0x39, 0x2e, 0x96, 0x66, 0x20, 0x63, 0xab, 0x5e, 0x87, 0xd0, 0x65, 0x97,
+ 0x52, 0xa2, 0x20, 0x93, 0x67, 0x2c, 0x77, 0x6d, 0xd5, 0x24, 0x21, 0xc0, 0xe4, 0xf8, 0x19, 0xaf,
+ 0xab, 0x81, 0xd4, 0x16, 0x39, 0xd7, 0x58, 0xdd, 0x2e, 0x32, 0x3d, 0x97, 0xaf, 0x2b, 0x93, 0x2f,
+ 0x33, 0xb1, 0xf4, 0x04, 0x4c, 0x7a, 0x8e, 0xaa, 0x1b, 0x21, 0xdd, 0x0c, 0xd1, 0x15, 0xf9, 0x80,
+ 0xaf, 0x5c, 0x83, 0x33, 0x9c, 0xb7, 0x85, 0x3c, 0x55, 0xeb, 0xa0, 0x56, 0x1f, 0x34, 0x4a, 0xee,
+ 0x2f, 0x4e, 0x33, 0x85, 0x15, 0x36, 0xce, 0xb1, 0xd5, 0x1f, 0x08, 0x30, 0xc9, 0x4f, 0x62, 0x2d,
+ 0xdf, 0x59, 0x1b, 0x00, 0xaa, 0x69, 0x5a, 0x5e, 0xd0, 0x5d, 0x83, 0xa1, 0x3c, 0x80, 0x5b, 0xa8,
+ 0xfb, 0x20, 0x39, 0x40, 0x30, 0xdb, 0x05, 0xe8, 0x8f, 0x1c, 0xeb, 0xb6, 0xb3, 0x50, 0x60, 0xdf,
+ 0x86, 0xc8, 0x07, 0x46, 0x7a, 0x76, 0x07, 0x2a, 0xc2, 0x47, 0x36, 0x69, 0x1a, 0xb2, 0x7b, 0xa8,
+ 0xad, 0x9b, 0xec, 0xc6, 0x97, 0x3e, 0xf0, 0x1b, 0x96, 0x8c, 0x7f, 0xc3, 0xb2, 0xf4, 0x39, 0x98,
+ 0xd2, 0xac, 0x6e, 0xd4, 0xdc, 0x25, 0x31, 0x72, 0x7f, 0xe0, 0x7e, 0x5a, 0x78, 0x11, 0xfa, 0x2d,
+ 0xe6, 0x7b, 0x82, 0xf0, 0xd5, 0x54, 0x7a, 0x75, 0x7b, 0xe9, 0x1b, 0xa9, 0xd9, 0x55, 0x0a, 0xdd,
+ 0xe6, 0x33, 0x95, 0xd1, 0xbe, 0x81, 0x34, 0x6c, 0x3d, 0x7c, 0xed, 0x09, 0x78, 0xb2, 0xad, 0x7b,
+ 0x9d, 0xde, 0xde, 0x82, 0x66, 0x75, 0x17, 0xdb, 0x56, 0xdb, 0xea, 0x7f, 0x53, 0xc5, 0x4f, 0xe4,
+ 0x81, 0xfc, 0xc7, 0xbe, 0xab, 0xe6, 0x7d, 0xe9, 0x6c, 0xec, 0x47, 0xd8, 0xda, 0x26, 0x4c, 0x31,
+ 0x65, 0x85, 0x7c, 0xd8, 0xa1, 0xc7, 0x13, 0xe9, 0xbe, 0x97, 0x63, 0xe5, 0x6f, 0xbe, 0x4d, 0xca,
+ 0xb5, 0x3c, 0xc9, 0xa0, 0x78, 0x8c, 0x9e, 0x60, 0x6a, 0x32, 0x9c, 0x0a, 0xf1, 0xd1, 0xad, 0x89,
+ 0x9c, 0x18, 0xc6, 0xef, 0x31, 0xc6, 0xa9, 0x00, 0x63, 0x93, 0x41, 0x6b, 0xcb, 0x30, 0x7e, 0x12,
+ 0xae, 0x7f, 0x60, 0x5c, 0x45, 0x14, 0x24, 0x59, 0x85, 0x09, 0x42, 0xa2, 0xf5, 0x5c, 0xcf, 0xea,
+ 0x92, 0xbc, 0x77, 0x7f, 0x9a, 0x7f, 0x7c, 0x9b, 0xee, 0x95, 0x12, 0x86, 0x2d, 0xfb, 0xa8, 0x5a,
+ 0x0d, 0xc8, 0xb7, 0xac, 0x16, 0xd2, 0x8c, 0x18, 0x86, 0x37, 0x99, 0x21, 0xbe, 0x7e, 0xed, 0xb3,
+ 0x30, 0x8d, 0xff, 0x27, 0x69, 0x29, 0x68, 0x49, 0xfc, 0x4d, 0x5a, 0xf9, 0x07, 0x2f, 0xd3, 0xed,
+ 0x38, 0xe5, 0x13, 0x04, 0x6c, 0x0a, 0xac, 0x62, 0x1b, 0x79, 0x1e, 0x72, 0x5c, 0x45, 0x35, 0x86,
+ 0x99, 0x17, 0xb8, 0x8a, 0x28, 0x7f, 0xe9, 0x9d, 0xf0, 0x2a, 0xae, 0x52, 0x64, 0xdd, 0x30, 0x6a,
+ 0xbb, 0x70, 0x7a, 0x48, 0x54, 0x24, 0xe0, 0x7c, 0x85, 0x71, 0x4e, 0x0f, 0x44, 0x06, 0xa6, 0xdd,
+ 0x06, 0x2e, 0xf7, 0xd7, 0x32, 0x01, 0xe7, 0xef, 0x31, 0x4e, 0x89, 0x61, 0xf9, 0x92, 0x62, 0xc6,
+ 0x67, 0x61, 0xf2, 0x26, 0x72, 0xf6, 0x2c, 0x97, 0x5d, 0xff, 0x24, 0xa0, 0x7b, 0x95, 0xd1, 0x4d,
+ 0x30, 0x20, 0xb9, 0x0f, 0xc2, 0x5c, 0x57, 0x21, 0xb7, 0xaf, 0x6a, 0x28, 0x01, 0xc5, 0x97, 0x19,
+ 0xc5, 0x18, 0xd6, 0xc7, 0xd0, 0x3a, 0x14, 0xdb, 0x16, 0xab, 0x4c, 0xf1, 0xf0, 0xd7, 0x18, 0xbc,
+ 0xc0, 0x31, 0x8c, 0xc2, 0xb6, 0xec, 0x9e, 0x81, 0xcb, 0x56, 0x3c, 0xc5, 0xef, 0x73, 0x0a, 0x8e,
+ 0x61, 0x14, 0x27, 0x70, 0xeb, 0x1f, 0x70, 0x0a, 0x37, 0xe0, 0xcf, 0x67, 0xa0, 0x60, 0x99, 0xc6,
+ 0xa1, 0x65, 0x26, 0x31, 0xe2, 0x2b, 0x8c, 0x01, 0x18, 0x04, 0x13, 0x5c, 0x83, 0x7c, 0xd2, 0x85,
+ 0xf8, 0xa3, 0x77, 0xf8, 0xf6, 0xe0, 0x2b, 0xb0, 0x0a, 0x13, 0x3c, 0x41, 0xe9, 0x96, 0x99, 0x80,
+ 0xe2, 0x6b, 0x8c, 0xa2, 0x14, 0x80, 0xb1, 0x69, 0x78, 0xc8, 0xf5, 0xda, 0x28, 0x09, 0xc9, 0xeb,
+ 0x7c, 0x1a, 0x0c, 0xc2, 0x5c, 0xb9, 0x87, 0x4c, 0xad, 0x93, 0x8c, 0xe1, 0xeb, 0xdc, 0x95, 0x1c,
+ 0x83, 0x29, 0x96, 0x61, 0xbc, 0xab, 0x3a, 0x6e, 0x47, 0x35, 0x12, 0x2d, 0xc7, 0x1f, 0x33, 0x8e,
+ 0xa2, 0x0f, 0x62, 0x1e, 0xe9, 0x99, 0x27, 0xa1, 0xf9, 0x06, 0xf7, 0x48, 0x00, 0xc6, 0xb6, 0x9e,
+ 0xeb, 0x91, 0xbb, 0xb2, 0x93, 0xb0, 0xfd, 0x09, 0xdf, 0x7a, 0x14, 0xbb, 0x11, 0x64, 0xbc, 0x06,
+ 0x79, 0x57, 0xbf, 0x9d, 0x88, 0xe6, 0x4f, 0xf9, 0x4a, 0x13, 0x00, 0x06, 0xbf, 0x00, 0x67, 0x86,
+ 0x96, 0x89, 0x04, 0x64, 0x7f, 0xc6, 0xc8, 0x66, 0x86, 0x94, 0x0a, 0x96, 0x12, 0x4e, 0x4a, 0xf9,
+ 0xe7, 0x3c, 0x25, 0xa0, 0x08, 0xd7, 0x36, 0x3e, 0x2b, 0xb8, 0xea, 0xfe, 0xc9, 0xbc, 0xf6, 0x17,
+ 0xdc, 0x6b, 0x14, 0x1b, 0xf2, 0xda, 0x0e, 0xcc, 0x30, 0xc6, 0x93, 0xad, 0xeb, 0x1b, 0x3c, 0xb1,
+ 0x52, 0xf4, 0x6e, 0x78, 0x75, 0x3f, 0x07, 0xb3, 0xbe, 0x3b, 0x79, 0x53, 0xea, 0x2a, 0x5d, 0xd5,
+ 0x4e, 0xc0, 0xfc, 0x4d, 0xc6, 0xcc, 0x33, 0xbe, 0xdf, 0xd5, 0xba, 0x1b, 0xaa, 0x8d, 0xc9, 0x9f,
+ 0x87, 0x32, 0x27, 0xef, 0x99, 0x0e, 0xd2, 0xac, 0xb6, 0xa9, 0xdf, 0x46, 0xad, 0x04, 0xd4, 0x7f,
+ 0x19, 0x59, 0xaa, 0xdd, 0x00, 0x1c, 0x33, 0xaf, 0x81, 0xe8, 0xf7, 0x2a, 0x8a, 0xde, 0xb5, 0x2d,
+ 0xc7, 0x8b, 0x61, 0xfc, 0x2b, 0xbe, 0x52, 0x3e, 0x6e, 0x8d, 0xc0, 0x6a, 0x0d, 0x28, 0x91, 0xc7,
+ 0xa4, 0x21, 0xf9, 0xd7, 0x8c, 0x68, 0xbc, 0x8f, 0x62, 0x89, 0x43, 0xb3, 0xba, 0xb6, 0xea, 0x24,
+ 0xc9, 0x7f, 0x7f, 0xc3, 0x13, 0x07, 0x83, 0xb0, 0xc4, 0xe1, 0x1d, 0xda, 0x08, 0x57, 0xfb, 0x04,
+ 0x0c, 0xdf, 0xe2, 0x89, 0x83, 0x63, 0x18, 0x05, 0x6f, 0x18, 0x12, 0x50, 0xfc, 0x2d, 0xa7, 0xe0,
+ 0x18, 0x4c, 0xf1, 0x99, 0x7e, 0xa1, 0x75, 0x50, 0x5b, 0x77, 0x3d, 0x87, 0xb6, 0xc2, 0xf7, 0xa7,
+ 0xfa, 0xf6, 0x3b, 0xe1, 0x26, 0x4c, 0x0e, 0x40, 0x71, 0x26, 0x62, 0x57, 0xa8, 0xe4, 0xa4, 0x14,
+ 0x6f, 0xd8, 0x77, 0x78, 0x26, 0x0a, 0xc0, 0xb0, 0x6d, 0x81, 0x0e, 0x11, 0xbb, 0x5d, 0xc3, 0xe7,
+ 0x83, 0x04, 0x74, 0xdf, 0x8d, 0x18, 0xd7, 0xe4, 0x58, 0xcc, 0x19, 0xe8, 0x7f, 0x7a, 0xe6, 0x01,
+ 0x3a, 0x4c, 0x14, 0x9d, 0x7f, 0x17, 0xe9, 0x7f, 0x76, 0x29, 0x92, 0xe6, 0x90, 0x89, 0x48, 0x3f,
+ 0x25, 0xc5, 0xfd, 0x0a, 0xa8, 0xfc, 0x73, 0xf7, 0xd8, 0x7c, 0xc3, 0xed, 0x54, 0x6d, 0x1d, 0x07,
+ 0x79, 0xb8, 0xe9, 0x89, 0x27, 0x7b, 0xf9, 0x9e, 0x1f, 0xe7, 0xa1, 0x9e, 0xa7, 0x76, 0x1d, 0xc6,
+ 0x43, 0x0d, 0x4f, 0x3c, 0xd5, 0xcf, 0x33, 0xaa, 0x62, 0xb0, 0xdf, 0xa9, 0x5d, 0x82, 0x0c, 0x6e,
+ 0x5e, 0xe2, 0xe1, 0xbf, 0xc0, 0xe0, 0x44, 0xbd, 0xf6, 0x29, 0xc8, 0xf1, 0xa6, 0x25, 0x1e, 0xfa,
+ 0x8b, 0x0c, 0xea, 0x43, 0x30, 0x9c, 0x37, 0x2c, 0xf1, 0xf0, 0x5f, 0xe2, 0x70, 0x0e, 0xc1, 0xf0,
+ 0xe4, 0x2e, 0xfc, 0xfb, 0x5f, 0xce, 0xb0, 0xa2, 0xc3, 0x7d, 0x77, 0x0d, 0xc6, 0x58, 0xa7, 0x12,
+ 0x8f, 0xfe, 0x02, 0x7b, 0x39, 0x47, 0xd4, 0x9e, 0x82, 0x6c, 0x42, 0x87, 0xff, 0x2a, 0x83, 0x52,
+ 0xfd, 0xda, 0x32, 0x14, 0x02, 0xdd, 0x49, 0x3c, 0xfc, 0xd7, 0x18, 0x3c, 0x88, 0xc2, 0xa6, 0xb3,
+ 0xee, 0x24, 0x9e, 0xe0, 0xd7, 0xb9, 0xe9, 0x0c, 0x81, 0xdd, 0xc6, 0x1b, 0x93, 0x78, 0xf4, 0x6f,
+ 0x70, 0xaf, 0x73, 0x48, 0xed, 0x19, 0xc8, 0xfb, 0xc5, 0x26, 0x1e, 0xff, 0x9b, 0x0c, 0xdf, 0xc7,
+ 0x60, 0x0f, 0x04, 0x8a, 0x5d, 0x3c, 0xc5, 0x6f, 0x71, 0x0f, 0x04, 0x50, 0x78, 0x1b, 0x45, 0x1b,
+ 0x98, 0x78, 0xa6, 0xdf, 0xe6, 0xdb, 0x28, 0xd2, 0xbf, 0xe0, 0xd5, 0x24, 0x39, 0x3f, 0x9e, 0xe2,
+ 0x77, 0xf8, 0x6a, 0x12, 0x7d, 0x6c, 0x46, 0xb4, 0x23, 0x88, 0xe7, 0xf8, 0x5d, 0x6e, 0x46, 0xa4,
+ 0x21, 0xa8, 0x6d, 0x83, 0x34, 0xd8, 0x0d, 0xc4, 0xf3, 0x7d, 0x91, 0xf1, 0x4d, 0x0e, 0x34, 0x03,
+ 0xb5, 0xe7, 0x60, 0x66, 0x78, 0x27, 0x10, 0xcf, 0xfa, 0xa5, 0x7b, 0x91, 0xb3, 0x5b, 0xb0, 0x11,
+ 0xa8, 0xed, 0xf4, 0x4b, 0x4a, 0xb0, 0x0b, 0x88, 0xa7, 0x7d, 0xe5, 0x5e, 0x38, 0x71, 0x07, 0x9b,
+ 0x80, 0x5a, 0x1d, 0xa0, 0x5f, 0x80, 0xe3, 0xb9, 0x5e, 0x65, 0x5c, 0x01, 0x10, 0xde, 0x1a, 0xac,
+ 0xfe, 0xc6, 0xe3, 0xbf, 0xcc, 0xb7, 0x06, 0x43, 0xe0, 0xad, 0xc1, 0x4b, 0x6f, 0x3c, 0xfa, 0x35,
+ 0xbe, 0x35, 0x38, 0x04, 0x47, 0x76, 0xa0, 0xba, 0xc5, 0x33, 0x7c, 0x85, 0x47, 0x76, 0x00, 0x55,
+ 0xdb, 0x84, 0xc9, 0x81, 0x82, 0x18, 0x4f, 0xf5, 0x55, 0x46, 0x25, 0x46, 0xeb, 0x61, 0xb0, 0x78,
+ 0xb1, 0x62, 0x18, 0xcf, 0xf6, 0x87, 0x91, 0xe2, 0xc5, 0x6a, 0x61, 0xed, 0x1a, 0xe4, 0xcc, 0x9e,
+ 0x61, 0xe0, 0xcd, 0x23, 0xdd, 0xff, 0x97, 0x7b, 0xe5, 0x7f, 0x7b, 0x9f, 0x79, 0x87, 0x03, 0x6a,
+ 0x97, 0x20, 0x8b, 0xba, 0x7b, 0xa8, 0x15, 0x87, 0xfc, 0xf7, 0xf7, 0x79, 0xc2, 0xc4, 0xda, 0xb5,
+ 0x67, 0x00, 0xe8, 0xd5, 0x08, 0xf9, 0xec, 0x17, 0x83, 0xfd, 0x8f, 0xf7, 0xd9, 0x6f, 0x6a, 0xfa,
+ 0x90, 0x3e, 0x01, 0xfd, 0x85, 0xce, 0xfd, 0x09, 0xde, 0x09, 0x13, 0x90, 0x15, 0xb9, 0x0a, 0x63,
+ 0x37, 0x5c, 0xcb, 0xf4, 0xd4, 0x76, 0x1c, 0xfa, 0x3f, 0x19, 0x9a, 0xeb, 0x63, 0x87, 0x75, 0x2d,
+ 0x07, 0x79, 0x6a, 0xdb, 0x8d, 0xc3, 0xfe, 0x17, 0xc3, 0xfa, 0x00, 0x0c, 0xd6, 0x54, 0xd7, 0x4b,
+ 0x32, 0xef, 0xff, 0xe6, 0x60, 0x0e, 0xc0, 0x46, 0xe3, 0xff, 0x0f, 0xd0, 0x61, 0x1c, 0xf6, 0x5d,
+ 0x6e, 0x34, 0xd3, 0xaf, 0x7d, 0x0a, 0xf2, 0xf8, 0x5f, 0xfa, 0x43, 0xb9, 0x18, 0xf0, 0xff, 0x30,
+ 0x70, 0x1f, 0x81, 0xdf, 0xec, 0x7a, 0x2d, 0x4f, 0x8f, 0x77, 0xf6, 0xff, 0xb2, 0x95, 0xe6, 0xfa,
+ 0xb5, 0x3a, 0x14, 0x5c, 0xaf, 0xd5, 0xea, 0xb1, 0xfe, 0x34, 0x06, 0xfe, 0x7f, 0xef, 0xfb, 0x57,
+ 0x16, 0x3e, 0x06, 0xaf, 0xf6, 0xad, 0x03, 0xcf, 0xb6, 0xc8, 0x67, 0x8e, 0x38, 0x86, 0x7b, 0x8c,
+ 0x21, 0x00, 0x59, 0x6a, 0x0c, 0xbf, 0xbe, 0x85, 0x55, 0x6b, 0xd5, 0xa2, 0x17, 0xb7, 0x2f, 0x56,
+ 0xe3, 0x6f, 0x60, 0xe1, 0x8d, 0x34, 0x9c, 0xd2, 0xac, 0xee, 0x9e, 0xe5, 0x2e, 0xee, 0x59, 0x5e,
+ 0x67, 0xb1, 0xab, 0xda, 0xec, 0x42, 0xb6, 0xd0, 0x55, 0x6d, 0xf6, 0x93, 0x5a, 0x77, 0xf6, 0x64,
+ 0x97, 0xb9, 0xd5, 0x9f, 0x85, 0xb1, 0x0d, 0xd5, 0xde, 0x41, 0xae, 0x27, 0x11, 0x37, 0x93, 0xdf,
+ 0x6e, 0xb1, 0x1b, 0xf2, 0xb9, 0x85, 0x00, 0xf1, 0x02, 0x53, 0x5b, 0x68, 0x7a, 0x4e, 0xd3, 0x73,
+ 0xc8, 0xaf, 0x09, 0xe4, 0x51, 0x97, 0x3c, 0xcc, 0x5e, 0x85, 0x42, 0x40, 0x2c, 0x89, 0x90, 0x3e,
+ 0x40, 0x87, 0xec, 0xd7, 0x5b, 0xf8, 0x5f, 0x69, 0xba, 0xff, 0xf3, 0x4a, 0x2c, 0xa3, 0x0f, 0xb5,
+ 0xd4, 0x15, 0xa1, 0xfa, 0x34, 0x8c, 0x5d, 0x57, 0x0f, 0xd0, 0x86, 0x6a, 0x4b, 0x17, 0x60, 0x0c,
+ 0x99, 0x9e, 0xa3, 0x23, 0x97, 0x19, 0x70, 0x26, 0x64, 0x00, 0x53, 0xa3, 0x6f, 0xe6, 0x9a, 0xd5,
+ 0x75, 0x28, 0x06, 0x07, 0x92, 0xbe, 0x1b, 0x4b, 0x2d, 0xaf, 0xc3, 0x7e, 0x6e, 0x9d, 0x97, 0xe9,
+ 0xc3, 0xd2, 0xca, 0x9b, 0x77, 0x2b, 0x23, 0xdf, 0xbf, 0x5b, 0x19, 0xf9, 0xe7, 0xbb, 0x95, 0x91,
+ 0xb7, 0xee, 0x56, 0x84, 0x77, 0xef, 0x56, 0x84, 0xf7, 0xee, 0x56, 0x84, 0x3b, 0x47, 0x15, 0xe1,
+ 0xeb, 0x47, 0x15, 0xe1, 0x8d, 0xa3, 0x8a, 0xf0, 0xed, 0xa3, 0x8a, 0xf0, 0xe6, 0x51, 0x45, 0xf8,
+ 0xfe, 0x51, 0x45, 0x78, 0xeb, 0xa8, 0x22, 0xfc, 0xe8, 0xa8, 0x32, 0xf2, 0xee, 0x51, 0x45, 0x78,
+ 0xef, 0xa8, 0x32, 0x72, 0xe7, 0x87, 0x95, 0x91, 0xbd, 0x51, 0xe2, 0xdb, 0x0b, 0xff, 0x1f, 0x00,
+ 0x00, 0xff, 0xff, 0x8e, 0xa9, 0xe9, 0xc6, 0xa7, 0x34, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -1083,7 +1111,7 @@ func (m *MapTest) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1111,7 +1139,7 @@ func (m *MapTest) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1120,6 +1148,9 @@ func (m *MapTest) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMap
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMap
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1140,7 +1171,7 @@ func (m *MapTest) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1157,7 +1188,7 @@ func (m *MapTest) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1167,6 +1198,9 @@ func (m *MapTest) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMap
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMap
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -1183,7 +1217,7 @@ func (m *MapTest) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapvalue |= (uint64(b) & 0x7F) << shift
+ stringLenmapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1193,6 +1227,9 @@ func (m *MapTest) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMap
}
postStringIndexmapvalue := iNdEx + intStringLenmapvalue
+ if postStringIndexmapvalue < 0 {
+ return ErrInvalidLengthMap
+ }
if postStringIndexmapvalue > l {
return io.ErrUnexpectedEOF
}
@@ -1224,6 +1261,9 @@ func (m *MapTest) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthMap
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthMap
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1252,7 +1292,7 @@ func (m *FakeMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1280,7 +1320,7 @@ func (m *FakeMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1289,6 +1329,9 @@ func (m *FakeMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMap
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMap
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1306,6 +1349,9 @@ func (m *FakeMap) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthMap
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthMap
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1334,7 +1380,7 @@ func (m *FakeMapEntry) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1362,7 +1408,7 @@ func (m *FakeMapEntry) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1372,6 +1418,9 @@ func (m *FakeMapEntry) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMap
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthMap
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1391,7 +1440,7 @@ func (m *FakeMapEntry) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1401,6 +1450,9 @@ func (m *FakeMapEntry) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMap
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthMap
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1420,7 +1472,7 @@ func (m *FakeMapEntry) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1430,6 +1482,9 @@ func (m *FakeMapEntry) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMap
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthMap
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1444,6 +1499,9 @@ func (m *FakeMapEntry) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthMap
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthMap
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1511,10 +1569,13 @@ func skipMap(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthMap
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthMap
+ }
return iNdEx, nil
case 3:
for {
@@ -1543,6 +1604,9 @@ func skipMap(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthMap
+ }
}
return iNdEx, nil
case 4:
@@ -1561,29 +1625,3 @@ var (
ErrInvalidLengthMap = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowMap = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("combos/both/map.proto", fileDescriptor_map_746b24fd53d0701f) }
-
-var fileDescriptor_map_746b24fd53d0701f = []byte{
- // 310 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0xbf, 0x4f, 0xc2, 0x40,
- 0x14, 0xc7, 0xfb, 0x20, 0xd2, 0x78, 0x38, 0x98, 0x46, 0x93, 0xca, 0xf0, 0x42, 0x98, 0x58, 0x6c,
- 0x13, 0x59, 0xc4, 0xc1, 0xc1, 0xa8, 0x93, 0x2c, 0xe0, 0x6e, 0xae, 0x78, 0xfc, 0x08, 0x94, 0x6b,
- 0xee, 0x5e, 0x4d, 0x98, 0xe4, 0xcf, 0x71, 0x74, 0xf4, 0x4f, 0x60, 0x64, 0x74, 0xa4, 0xe7, 0xe2,
- 0xc8, 0xc8, 0x68, 0xb8, 0x62, 0x52, 0x37, 0xb7, 0xf7, 0xf9, 0xde, 0xe7, 0xee, 0x7d, 0x73, 0xec,
- 0xb4, 0x2f, 0xe3, 0x48, 0xea, 0x30, 0x92, 0x34, 0x0a, 0x63, 0x9e, 0x04, 0x89, 0x92, 0x24, 0xbd,
- 0x6a, 0xcc, 0x93, 0x67, 0x31, 0xe0, 0xe9, 0x94, 0x74, 0xed, 0x7c, 0x38, 0xa6, 0x51, 0x1a, 0x05,
- 0x7d, 0x19, 0x87, 0x43, 0x39, 0x94, 0xa1, 0x75, 0xa2, 0x74, 0x60, 0xc9, 0x82, 0x9d, 0xf2, 0xbb,
- 0x8d, 0x57, 0xe6, 0x76, 0x78, 0xf2, 0x28, 0x34, 0x79, 0x6d, 0xe6, 0x6a, 0x52, 0x4f, 0x9a, 0x94,
- 0x0f, 0xf5, 0x72, 0xb3, 0x7a, 0x51, 0x0f, 0x0a, 0x0f, 0x07, 0x7b, 0x2d, 0xe8, 0x91, 0xea, 0x91,
- 0xba, 0x9b, 0x91, 0x9a, 0x77, 0x2b, 0xda, 0x42, 0xad, 0xcd, 0xaa, 0x85, 0xd8, 0x3b, 0x66, 0xe5,
- 0x89, 0x98, 0xfb, 0x50, 0x87, 0xe6, 0x61, 0x77, 0x37, 0x7a, 0x27, 0xec, 0xe0, 0x85, 0x4f, 0x53,
- 0xe1, 0x97, 0x6c, 0x96, 0xc3, 0x55, 0xe9, 0x12, 0x1a, 0xd7, 0xcc, 0xbd, 0xe7, 0x13, 0xd1, 0xe1,
- 0x89, 0xd7, 0x62, 0xae, 0x98, 0x91, 0x1a, 0x0b, 0xbd, 0x2f, 0x70, 0xf6, 0xa7, 0xc0, 0x5e, 0xcb,
- 0x37, 0xff, 0x9a, 0x8d, 0x07, 0x76, 0x54, 0x3c, 0xf8, 0xef, 0xee, 0x5d, 0x2a, 0x69, 0x24, 0x94,
- 0x5f, 0xce, 0x53, 0x0b, 0x37, 0xb7, 0xcb, 0x0c, 0x9d, 0x55, 0x86, 0xce, 0x67, 0x86, 0xce, 0x3a,
- 0x43, 0xd8, 0x64, 0x08, 0xdb, 0x0c, 0x61, 0x61, 0x10, 0xde, 0x0c, 0xc2, 0xbb, 0x41, 0xf8, 0x30,
- 0x08, 0x4b, 0x83, 0xb0, 0x32, 0x08, 0x6b, 0x83, 0xf0, 0x6d, 0xd0, 0xd9, 0x18, 0x84, 0xad, 0x41,
- 0x67, 0xf1, 0x85, 0x4e, 0x54, 0xb1, 0x7f, 0xdb, 0xfa, 0x09, 0x00, 0x00, 0xff, 0xff, 0x11, 0xc9,
- 0x76, 0xfa, 0xb0, 0x01, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map.pb.go b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map.pb.go
index 064cd76bdf..abbf4ad1e8 100644
--- a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map.pb.go
@@ -3,20 +3,20 @@
package mapdefaults
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -39,7 +39,7 @@ type MapTest struct {
func (m *MapTest) Reset() { *m = MapTest{} }
func (*MapTest) ProtoMessage() {}
func (*MapTest) Descriptor() ([]byte, []int) {
- return fileDescriptor_map_65406068076b05e6, []int{0}
+ return fileDescriptor_7fb639ea48e3594a, []int{0}
}
func (m *MapTest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MapTest.Unmarshal(m, b)
@@ -56,8 +56,8 @@ func (m *MapTest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *MapTest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MapTest.Merge(dst, src)
+func (m *MapTest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MapTest.Merge(m, src)
}
func (m *MapTest) XXX_Size() int {
return m.Size()
@@ -78,7 +78,7 @@ type FakeMap struct {
func (m *FakeMap) Reset() { *m = FakeMap{} }
func (*FakeMap) ProtoMessage() {}
func (*FakeMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_map_65406068076b05e6, []int{1}
+ return fileDescriptor_7fb639ea48e3594a, []int{1}
}
func (m *FakeMap) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FakeMap.Unmarshal(m, b)
@@ -95,8 +95,8 @@ func (m *FakeMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *FakeMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FakeMap.Merge(dst, src)
+func (m *FakeMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FakeMap.Merge(m, src)
}
func (m *FakeMap) XXX_Size() int {
return m.Size()
@@ -119,7 +119,7 @@ type FakeMapEntry struct {
func (m *FakeMapEntry) Reset() { *m = FakeMapEntry{} }
func (*FakeMapEntry) ProtoMessage() {}
func (*FakeMapEntry) Descriptor() ([]byte, []int) {
- return fileDescriptor_map_65406068076b05e6, []int{2}
+ return fileDescriptor_7fb639ea48e3594a, []int{2}
}
func (m *FakeMapEntry) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FakeMapEntry.Unmarshal(m, b)
@@ -136,8 +136,8 @@ func (m *FakeMapEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *FakeMapEntry) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FakeMapEntry.Merge(dst, src)
+func (m *FakeMapEntry) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FakeMapEntry.Merge(m, src)
}
func (m *FakeMapEntry) XXX_Size() int {
return m.Size()
@@ -154,6 +154,33 @@ func init() {
proto.RegisterType((*FakeMap)(nil), "mapdefaults.FakeMap")
proto.RegisterType((*FakeMapEntry)(nil), "mapdefaults.FakeMapEntry")
}
+
+func init() { proto.RegisterFile("combos/marshaler/map.proto", fileDescriptor_7fb639ea48e3594a) }
+
+var fileDescriptor_7fb639ea48e3594a = []byte{
+ // 315 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0x3f, 0x4f, 0x3a, 0x31,
+ 0x18, 0xc7, 0xfb, 0x40, 0x7e, 0x5c, 0x7e, 0xc5, 0xc1, 0x5c, 0x1c, 0x4e, 0x86, 0x27, 0x84, 0x89,
+ 0xc5, 0xbb, 0x44, 0x16, 0x71, 0x70, 0x30, 0xea, 0x24, 0x0b, 0xb8, 0x9b, 0x1e, 0x96, 0x3f, 0x81,
+ 0xa3, 0x97, 0xb6, 0x67, 0xc2, 0x24, 0x2f, 0xc7, 0xd1, 0xd1, 0x97, 0xc0, 0xc8, 0xe8, 0x48, 0xeb,
+ 0xe2, 0xc8, 0xc8, 0x68, 0xe8, 0x9d, 0xc9, 0xb9, 0xb9, 0x3d, 0x9f, 0x6f, 0x3f, 0xed, 0xf3, 0x4d,
+ 0x69, 0x63, 0x28, 0x92, 0x58, 0xa8, 0x28, 0x61, 0x52, 0x4d, 0xd8, 0x9c, 0xcb, 0x28, 0x61, 0x69,
+ 0x98, 0x4a, 0xa1, 0x85, 0x5f, 0x4f, 0x58, 0xfa, 0xc4, 0x47, 0x2c, 0x9b, 0x6b, 0xd5, 0x38, 0x1b,
+ 0x4f, 0xf5, 0x24, 0x8b, 0xc3, 0xa1, 0x48, 0xa2, 0xb1, 0x18, 0x8b, 0xc8, 0x39, 0x71, 0x36, 0x72,
+ 0xe4, 0xc0, 0x4d, 0xf9, 0xdd, 0xd6, 0x0b, 0xf5, 0x7a, 0x2c, 0x7d, 0xe0, 0x4a, 0xfb, 0x5d, 0xea,
+ 0x29, 0x2d, 0x1f, 0x95, 0x96, 0x01, 0x34, 0xab, 0xed, 0xfa, 0x79, 0x33, 0x2c, 0x3d, 0x1c, 0x16,
+ 0x5a, 0x38, 0xd0, 0x72, 0xa0, 0xe5, 0xed, 0x42, 0xcb, 0x65, 0xbf, 0xa6, 0x1c, 0x34, 0xba, 0xb4,
+ 0x5e, 0x8a, 0xfd, 0x63, 0x5a, 0x9d, 0xf1, 0x65, 0x00, 0x4d, 0x68, 0xff, 0xef, 0x1f, 0x46, 0xff,
+ 0x84, 0xfe, 0x7b, 0x66, 0xf3, 0x8c, 0x07, 0x15, 0x97, 0xe5, 0x70, 0x59, 0xb9, 0x80, 0xd6, 0x15,
+ 0xf5, 0xee, 0xd8, 0x8c, 0xf7, 0x58, 0xea, 0x77, 0xa8, 0xc7, 0x17, 0x5a, 0x4e, 0xb9, 0x2a, 0x0a,
+ 0x9c, 0xfe, 0x2a, 0x50, 0x68, 0xf9, 0xe6, 0x1f, 0xb3, 0x75, 0x4f, 0x8f, 0xca, 0x07, 0x7f, 0xdd,
+ 0x7d, 0x48, 0x85, 0x9e, 0x70, 0x19, 0x54, 0xf3, 0xd4, 0xc1, 0xf5, 0xcd, 0xda, 0x20, 0xd9, 0x18,
+ 0x24, 0x1f, 0x06, 0xc9, 0xd6, 0x20, 0xec, 0x0c, 0xc2, 0xde, 0x20, 0xac, 0x2c, 0xc2, 0xab, 0x45,
+ 0x78, 0xb3, 0x08, 0xef, 0x16, 0x61, 0x6d, 0x11, 0x36, 0x16, 0xc9, 0xd6, 0x22, 0x7c, 0x59, 0x24,
+ 0x3b, 0x8b, 0xb0, 0xb7, 0x48, 0x56, 0x9f, 0x48, 0xe2, 0x9a, 0xfb, 0xdb, 0xce, 0x77, 0x00, 0x00,
+ 0x00, 0xff, 0xff, 0xde, 0x50, 0x18, 0x62, 0xb5, 0x01, 0x00, 0x00,
+}
+
func (this *MapTest) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return MapDescription()
}
@@ -166,256 +193,258 @@ func (this *FakeMapEntry) Description() (desc *github_com_gogo_protobuf_protoc_g
func MapDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 3977 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0xe3, 0xd6,
- 0x75, 0x16, 0xf8, 0x23, 0x91, 0x87, 0x14, 0x05, 0x41, 0xf2, 0x2e, 0x57, 0x8e, 0xb9, 0x5a, 0xda,
- 0x8e, 0x65, 0xbb, 0x91, 0x32, 0xbb, 0xde, 0xf5, 0x2e, 0xb7, 0xb1, 0x4b, 0x49, 0x5c, 0x45, 0xae,
- 0x7e, 0x18, 0x50, 0x8a, 0x7f, 0x32, 0x1d, 0x0c, 0x04, 0x5e, 0x52, 0x58, 0x81, 0x00, 0x02, 0x80,
- 0xbb, 0xd6, 0x4e, 0x67, 0xba, 0x1d, 0xf7, 0x67, 0x32, 0x9d, 0xfe, 0x77, 0xa6, 0x89, 0xeb, 0xb8,
- 0x4d, 0x3a, 0x8d, 0xd3, 0xf4, 0x2f, 0x69, 0x9a, 0x34, 0x49, 0x5f, 0xfa, 0x92, 0xd6, 0x4f, 0x9d,
- 0xe4, 0xad, 0x0f, 0x7d, 0xf0, 0x2a, 0x9e, 0x69, 0xda, 0xba, 0x8d, 0xdb, 0xee, 0x83, 0x67, 0xf6,
- 0x25, 0x73, 0xff, 0x40, 0x00, 0xa4, 0x16, 0x50, 0x66, 0xec, 0x3c, 0x49, 0x38, 0xf7, 0x7c, 0x1f,
- 0xce, 0x3d, 0xf7, 0xdc, 0x73, 0xce, 0xbd, 0x04, 0xfc, 0xe8, 0x0a, 0xcc, 0x77, 0x2d, 0xab, 0x6b,
- 0xa0, 0x25, 0xdb, 0xb1, 0x3c, 0x6b, 0xaf, 0xdf, 0x59, 0x6a, 0x23, 0x57, 0x73, 0x74, 0xdb, 0xb3,
- 0x9c, 0x45, 0x22, 0x93, 0xa6, 0xa8, 0xc6, 0x22, 0xd7, 0xa8, 0x6e, 0xc2, 0xf4, 0x35, 0xdd, 0x40,
- 0xab, 0xbe, 0x62, 0x0b, 0x79, 0xd2, 0x65, 0xc8, 0x74, 0x74, 0x03, 0x95, 0x85, 0xf9, 0xf4, 0x42,
- 0xe1, 0xfc, 0x23, 0x8b, 0x11, 0xd0, 0x62, 0x18, 0xd1, 0xc4, 0x62, 0x99, 0x20, 0xaa, 0x6f, 0x67,
- 0x60, 0x66, 0xc4, 0xa8, 0x24, 0x41, 0xc6, 0x54, 0x7b, 0x98, 0x51, 0x58, 0xc8, 0xcb, 0xe4, 0x7f,
- 0xa9, 0x0c, 0x13, 0xb6, 0xaa, 0x1d, 0xa8, 0x5d, 0x54, 0x4e, 0x11, 0x31, 0x7f, 0x94, 0x2a, 0x00,
- 0x6d, 0x64, 0x23, 0xb3, 0x8d, 0x4c, 0xed, 0xb0, 0x9c, 0x9e, 0x4f, 0x2f, 0xe4, 0xe5, 0x80, 0x44,
- 0x7a, 0x12, 0xa6, 0xed, 0xfe, 0x9e, 0xa1, 0x6b, 0x4a, 0x40, 0x0d, 0xe6, 0xd3, 0x0b, 0x59, 0x59,
- 0xa4, 0x03, 0xab, 0x03, 0xe5, 0xc7, 0x60, 0xea, 0x26, 0x52, 0x0f, 0x82, 0xaa, 0x05, 0xa2, 0x5a,
- 0xc2, 0xe2, 0x80, 0xe2, 0x0a, 0x14, 0x7b, 0xc8, 0x75, 0xd5, 0x2e, 0x52, 0xbc, 0x43, 0x1b, 0x95,
- 0x33, 0x64, 0xf6, 0xf3, 0x43, 0xb3, 0x8f, 0xce, 0xbc, 0xc0, 0x50, 0x3b, 0x87, 0x36, 0x92, 0xea,
- 0x90, 0x47, 0x66, 0xbf, 0x47, 0x19, 0xb2, 0xc7, 0xf8, 0xaf, 0x61, 0xf6, 0x7b, 0x51, 0x96, 0x1c,
- 0x86, 0x31, 0x8a, 0x09, 0x17, 0x39, 0x37, 0x74, 0x0d, 0x95, 0xc7, 0x09, 0xc1, 0x63, 0x43, 0x04,
- 0x2d, 0x3a, 0x1e, 0xe5, 0xe0, 0x38, 0x69, 0x05, 0xf2, 0xe8, 0x65, 0x0f, 0x99, 0xae, 0x6e, 0x99,
- 0xe5, 0x09, 0x42, 0xf2, 0xe8, 0x88, 0x55, 0x44, 0x46, 0x3b, 0x4a, 0x31, 0xc0, 0x49, 0x97, 0x60,
- 0xc2, 0xb2, 0x3d, 0xdd, 0x32, 0xdd, 0x72, 0x6e, 0x5e, 0x58, 0x28, 0x9c, 0xff, 0xd0, 0xc8, 0x40,
- 0xd8, 0xa6, 0x3a, 0x32, 0x57, 0x96, 0xd6, 0x41, 0x74, 0xad, 0xbe, 0xa3, 0x21, 0x45, 0xb3, 0xda,
- 0x48, 0xd1, 0xcd, 0x8e, 0x55, 0xce, 0x13, 0x82, 0xb3, 0xc3, 0x13, 0x21, 0x8a, 0x2b, 0x56, 0x1b,
- 0xad, 0x9b, 0x1d, 0x4b, 0x2e, 0xb9, 0xa1, 0x67, 0xe9, 0x14, 0x8c, 0xbb, 0x87, 0xa6, 0xa7, 0xbe,
- 0x5c, 0x2e, 0x92, 0x08, 0x61, 0x4f, 0xd5, 0x6f, 0x8f, 0xc3, 0x54, 0x92, 0x10, 0xbb, 0x0a, 0xd9,
- 0x0e, 0x9e, 0x65, 0x39, 0x75, 0x12, 0x1f, 0x50, 0x4c, 0xd8, 0x89, 0xe3, 0x3f, 0xa1, 0x13, 0xeb,
- 0x50, 0x30, 0x91, 0xeb, 0xa1, 0x36, 0x8d, 0x88, 0x74, 0xc2, 0x98, 0x02, 0x0a, 0x1a, 0x0e, 0xa9,
- 0xcc, 0x4f, 0x14, 0x52, 0x2f, 0xc0, 0x94, 0x6f, 0x92, 0xe2, 0xa8, 0x66, 0x97, 0xc7, 0xe6, 0x52,
- 0x9c, 0x25, 0x8b, 0x0d, 0x8e, 0x93, 0x31, 0x4c, 0x2e, 0xa1, 0xd0, 0xb3, 0xb4, 0x0a, 0x60, 0x99,
- 0xc8, 0xea, 0x28, 0x6d, 0xa4, 0x19, 0xe5, 0xdc, 0x31, 0x5e, 0xda, 0xc6, 0x2a, 0x43, 0x5e, 0xb2,
- 0xa8, 0x54, 0x33, 0xa4, 0x2b, 0x83, 0x50, 0x9b, 0x38, 0x26, 0x52, 0x36, 0xe9, 0x26, 0x1b, 0x8a,
- 0xb6, 0x5d, 0x28, 0x39, 0x08, 0xc7, 0x3d, 0x6a, 0xb3, 0x99, 0xe5, 0x89, 0x11, 0x8b, 0xb1, 0x33,
- 0x93, 0x19, 0x8c, 0x4e, 0x6c, 0xd2, 0x09, 0x3e, 0x4a, 0x0f, 0x83, 0x2f, 0x50, 0x48, 0x58, 0x01,
- 0xc9, 0x42, 0x45, 0x2e, 0xdc, 0x52, 0x7b, 0x68, 0xee, 0x16, 0x94, 0xc2, 0xee, 0x91, 0x66, 0x21,
- 0xeb, 0x7a, 0xaa, 0xe3, 0x91, 0x28, 0xcc, 0xca, 0xf4, 0x41, 0x12, 0x21, 0x8d, 0xcc, 0x36, 0xc9,
- 0x72, 0x59, 0x19, 0xff, 0x2b, 0xfd, 0xdc, 0x60, 0xc2, 0x69, 0x32, 0xe1, 0x0f, 0x0f, 0xaf, 0x68,
- 0x88, 0x39, 0x3a, 0xef, 0xb9, 0xa7, 0x61, 0x32, 0x34, 0x81, 0xa4, 0xaf, 0xae, 0xfe, 0x22, 0x3c,
- 0x30, 0x92, 0x5a, 0x7a, 0x01, 0x66, 0xfb, 0xa6, 0x6e, 0x7a, 0xc8, 0xb1, 0x1d, 0x84, 0x23, 0x96,
- 0xbe, 0xaa, 0xfc, 0xef, 0x13, 0xc7, 0xc4, 0xdc, 0x6e, 0x50, 0x9b, 0xb2, 0xc8, 0x33, 0xfd, 0x61,
- 0xe1, 0x13, 0xf9, 0xdc, 0x0f, 0x27, 0xc4, 0xdb, 0xb7, 0x6f, 0xdf, 0x4e, 0x55, 0x3f, 0x3b, 0x0e,
- 0xb3, 0xa3, 0xf6, 0xcc, 0xc8, 0xed, 0x7b, 0x0a, 0xc6, 0xcd, 0x7e, 0x6f, 0x0f, 0x39, 0xc4, 0x49,
- 0x59, 0x99, 0x3d, 0x49, 0x75, 0xc8, 0x1a, 0xea, 0x1e, 0x32, 0xca, 0x99, 0x79, 0x61, 0xa1, 0x74,
- 0xfe, 0xc9, 0x44, 0xbb, 0x72, 0x71, 0x03, 0x43, 0x64, 0x8a, 0x94, 0x9e, 0x81, 0x0c, 0x4b, 0xd1,
- 0x98, 0xe1, 0x89, 0x64, 0x0c, 0x78, 0x2f, 0xc9, 0x04, 0x27, 0x3d, 0x08, 0x79, 0xfc, 0x97, 0xc6,
- 0xc6, 0x38, 0xb1, 0x39, 0x87, 0x05, 0x38, 0x2e, 0xa4, 0x39, 0xc8, 0x91, 0x6d, 0xd2, 0x46, 0xbc,
- 0xb4, 0xf9, 0xcf, 0x38, 0xb0, 0xda, 0xa8, 0xa3, 0xf6, 0x0d, 0x4f, 0xb9, 0xa1, 0x1a, 0x7d, 0x44,
- 0x02, 0x3e, 0x2f, 0x17, 0x99, 0xf0, 0x93, 0x58, 0x26, 0x9d, 0x85, 0x02, 0xdd, 0x55, 0xba, 0xd9,
- 0x46, 0x2f, 0x93, 0xec, 0x99, 0x95, 0xe9, 0x46, 0x5b, 0xc7, 0x12, 0xfc, 0xfa, 0xeb, 0xae, 0x65,
- 0xf2, 0xd0, 0x24, 0xaf, 0xc0, 0x02, 0xf2, 0xfa, 0xa7, 0xa3, 0x89, 0xfb, 0xa1, 0xd1, 0xd3, 0x8b,
- 0xc6, 0x54, 0xf5, 0x9b, 0x29, 0xc8, 0x90, 0x7c, 0x31, 0x05, 0x85, 0x9d, 0x17, 0x9b, 0x0d, 0x65,
- 0x75, 0x7b, 0x77, 0x79, 0xa3, 0x21, 0x0a, 0x52, 0x09, 0x80, 0x08, 0xae, 0x6d, 0x6c, 0xd7, 0x77,
- 0xc4, 0x94, 0xff, 0xbc, 0xbe, 0xb5, 0x73, 0xe9, 0x29, 0x31, 0xed, 0x03, 0x76, 0xa9, 0x20, 0x13,
- 0x54, 0xb8, 0x70, 0x5e, 0xcc, 0x4a, 0x22, 0x14, 0x29, 0xc1, 0xfa, 0x0b, 0x8d, 0xd5, 0x4b, 0x4f,
- 0x89, 0xe3, 0x61, 0xc9, 0x85, 0xf3, 0xe2, 0x84, 0x34, 0x09, 0x79, 0x22, 0x59, 0xde, 0xde, 0xde,
- 0x10, 0x73, 0x3e, 0x67, 0x6b, 0x47, 0x5e, 0xdf, 0x5a, 0x13, 0xf3, 0x3e, 0xe7, 0x9a, 0xbc, 0xbd,
- 0xdb, 0x14, 0xc1, 0x67, 0xd8, 0x6c, 0xb4, 0x5a, 0xf5, 0xb5, 0x86, 0x58, 0xf0, 0x35, 0x96, 0x5f,
- 0xdc, 0x69, 0xb4, 0xc4, 0x62, 0xc8, 0xac, 0x0b, 0xe7, 0xc5, 0x49, 0xff, 0x15, 0x8d, 0xad, 0xdd,
- 0x4d, 0xb1, 0x24, 0x4d, 0xc3, 0x24, 0x7d, 0x05, 0x37, 0x62, 0x2a, 0x22, 0xba, 0xf4, 0x94, 0x28,
- 0x0e, 0x0c, 0xa1, 0x2c, 0xd3, 0x21, 0xc1, 0xa5, 0xa7, 0x44, 0xa9, 0xba, 0x02, 0x59, 0x12, 0x5d,
- 0x92, 0x04, 0xa5, 0x8d, 0xfa, 0x72, 0x63, 0x43, 0xd9, 0x6e, 0xee, 0xac, 0x6f, 0x6f, 0xd5, 0x37,
- 0x44, 0x61, 0x20, 0x93, 0x1b, 0x9f, 0xd8, 0x5d, 0x97, 0x1b, 0xab, 0x62, 0x2a, 0x28, 0x6b, 0x36,
- 0xea, 0x3b, 0x8d, 0x55, 0x31, 0x5d, 0xd5, 0x60, 0x76, 0x54, 0x9e, 0x1c, 0xb9, 0x33, 0x02, 0x4b,
- 0x9c, 0x3a, 0x66, 0x89, 0x09, 0xd7, 0xd0, 0x12, 0xff, 0x20, 0x05, 0x33, 0x23, 0x6a, 0xc5, 0xc8,
- 0x97, 0x3c, 0x0b, 0x59, 0x1a, 0xa2, 0xb4, 0x7a, 0x3e, 0x3e, 0xb2, 0xe8, 0x90, 0x80, 0x1d, 0xaa,
- 0xa0, 0x04, 0x17, 0xec, 0x20, 0xd2, 0xc7, 0x74, 0x10, 0x98, 0x62, 0x28, 0xa7, 0xff, 0xc2, 0x50,
- 0x4e, 0xa7, 0x65, 0xef, 0x52, 0x92, 0xb2, 0x47, 0x64, 0x27, 0xcb, 0xed, 0xd9, 0x11, 0xb9, 0xfd,
- 0x2a, 0x4c, 0x0f, 0x11, 0x25, 0xce, 0xb1, 0xaf, 0x08, 0x50, 0x3e, 0xce, 0x39, 0x31, 0x99, 0x2e,
- 0x15, 0xca, 0x74, 0x57, 0xa3, 0x1e, 0x3c, 0x77, 0xfc, 0x22, 0x0c, 0xad, 0xf5, 0x1b, 0x02, 0x9c,
- 0x1a, 0xdd, 0x29, 0x8e, 0xb4, 0xe1, 0x19, 0x18, 0xef, 0x21, 0x6f, 0xdf, 0xe2, 0xdd, 0xd2, 0x87,
- 0x47, 0xd4, 0x60, 0x3c, 0x1c, 0x5d, 0x6c, 0x86, 0x0a, 0x16, 0xf1, 0xf4, 0x71, 0xed, 0x1e, 0xb5,
- 0x66, 0xc8, 0xd2, 0xcf, 0xa4, 0xe0, 0x81, 0x91, 0xe4, 0x23, 0x0d, 0x7d, 0x08, 0x40, 0x37, 0xed,
- 0xbe, 0x47, 0x3b, 0x22, 0x9a, 0x60, 0xf3, 0x44, 0x42, 0x92, 0x17, 0x4e, 0x9e, 0x7d, 0xcf, 0x1f,
- 0x4f, 0x93, 0x71, 0xa0, 0x22, 0xa2, 0x70, 0x79, 0x60, 0x68, 0x86, 0x18, 0x5a, 0x39, 0x66, 0xa6,
- 0x43, 0x81, 0xf9, 0x51, 0x10, 0x35, 0x43, 0x47, 0xa6, 0xa7, 0xb8, 0x9e, 0x83, 0xd4, 0x9e, 0x6e,
- 0x76, 0x49, 0x05, 0xc9, 0xd5, 0xb2, 0x1d, 0xd5, 0x70, 0x91, 0x3c, 0x45, 0x87, 0x5b, 0x7c, 0x14,
- 0x23, 0x48, 0x00, 0x39, 0x01, 0xc4, 0x78, 0x08, 0x41, 0x87, 0x7d, 0x44, 0xf5, 0xeb, 0x39, 0x28,
- 0x04, 0xfa, 0x6a, 0xe9, 0x1c, 0x14, 0xaf, 0xab, 0x37, 0x54, 0x85, 0x9f, 0x95, 0xa8, 0x27, 0x0a,
- 0x58, 0xd6, 0x64, 0xe7, 0xa5, 0x8f, 0xc2, 0x2c, 0x51, 0xb1, 0xfa, 0x1e, 0x72, 0x14, 0xcd, 0x50,
- 0x5d, 0x97, 0x38, 0x2d, 0x47, 0x54, 0x25, 0x3c, 0xb6, 0x8d, 0x87, 0x56, 0xf8, 0x88, 0x74, 0x11,
- 0x66, 0x08, 0xa2, 0xd7, 0x37, 0x3c, 0xdd, 0x36, 0x90, 0x82, 0x4f, 0x6f, 0x2e, 0xa9, 0x24, 0xbe,
- 0x65, 0xd3, 0x58, 0x63, 0x93, 0x29, 0x60, 0x8b, 0x5c, 0x69, 0x15, 0x1e, 0x22, 0xb0, 0x2e, 0x32,
- 0x91, 0xa3, 0x7a, 0x48, 0x41, 0x9f, 0xee, 0xab, 0x86, 0xab, 0xa8, 0x66, 0x5b, 0xd9, 0x57, 0xdd,
- 0xfd, 0xf2, 0x2c, 0x26, 0x58, 0x4e, 0x95, 0x05, 0xf9, 0x0c, 0x56, 0x5c, 0x63, 0x7a, 0x0d, 0xa2,
- 0x56, 0x37, 0xdb, 0x1f, 0x57, 0xdd, 0x7d, 0xa9, 0x06, 0xa7, 0x08, 0x8b, 0xeb, 0x39, 0xba, 0xd9,
- 0x55, 0xb4, 0x7d, 0xa4, 0x1d, 0x28, 0x7d, 0xaf, 0x73, 0xb9, 0xfc, 0x60, 0xf0, 0xfd, 0xc4, 0xc2,
- 0x16, 0xd1, 0x59, 0xc1, 0x2a, 0xbb, 0x5e, 0xe7, 0xb2, 0xd4, 0x82, 0x22, 0x5e, 0x8c, 0x9e, 0x7e,
- 0x0b, 0x29, 0x1d, 0xcb, 0x21, 0xa5, 0xb1, 0x34, 0x22, 0x35, 0x05, 0x3c, 0xb8, 0xb8, 0xcd, 0x00,
- 0x9b, 0x56, 0x1b, 0xd5, 0xb2, 0xad, 0x66, 0xa3, 0xb1, 0x2a, 0x17, 0x38, 0xcb, 0x35, 0xcb, 0xc1,
- 0x01, 0xd5, 0xb5, 0x7c, 0x07, 0x17, 0x68, 0x40, 0x75, 0x2d, 0xee, 0xde, 0x8b, 0x30, 0xa3, 0x69,
- 0x74, 0xce, 0xba, 0xa6, 0xb0, 0x33, 0x96, 0x5b, 0x16, 0x43, 0xce, 0xd2, 0xb4, 0x35, 0xaa, 0xc0,
- 0x62, 0xdc, 0x95, 0xae, 0xc0, 0x03, 0x03, 0x67, 0x05, 0x81, 0xd3, 0x43, 0xb3, 0x8c, 0x42, 0x2f,
- 0xc2, 0x8c, 0x7d, 0x38, 0x0c, 0x94, 0x42, 0x6f, 0xb4, 0x0f, 0xa3, 0xb0, 0xa7, 0x61, 0xd6, 0xde,
- 0xb7, 0x87, 0x71, 0x4f, 0x04, 0x71, 0x92, 0xbd, 0x6f, 0x47, 0x81, 0x8f, 0x92, 0x03, 0xb7, 0x83,
- 0x34, 0xd5, 0x43, 0xed, 0xf2, 0xe9, 0xa0, 0x7a, 0x60, 0x40, 0x5a, 0x02, 0x51, 0xd3, 0x14, 0x64,
- 0xaa, 0x7b, 0x06, 0x52, 0x54, 0x07, 0x99, 0xaa, 0x5b, 0x3e, 0x1b, 0x54, 0x2e, 0x69, 0x5a, 0x83,
- 0x8c, 0xd6, 0xc9, 0xa0, 0xf4, 0x04, 0x4c, 0x5b, 0x7b, 0xd7, 0x35, 0x1a, 0x92, 0x8a, 0xed, 0xa0,
- 0x8e, 0xfe, 0x72, 0xf9, 0x11, 0xe2, 0xdf, 0x29, 0x3c, 0x40, 0x02, 0xb2, 0x49, 0xc4, 0xd2, 0xe3,
- 0x20, 0x6a, 0xee, 0xbe, 0xea, 0xd8, 0x24, 0x27, 0xbb, 0xb6, 0xaa, 0xa1, 0xf2, 0xa3, 0x54, 0x95,
- 0xca, 0xb7, 0xb8, 0x18, 0x6f, 0x09, 0xf7, 0xa6, 0xde, 0xf1, 0x38, 0xe3, 0x63, 0x74, 0x4b, 0x10,
- 0x19, 0x63, 0x5b, 0x00, 0x11, 0xbb, 0x22, 0xf4, 0xe2, 0x05, 0xa2, 0x56, 0xb2, 0xf7, 0xed, 0xe0,
- 0x7b, 0x1f, 0x86, 0x49, 0xac, 0x39, 0x78, 0xe9, 0xe3, 0xb4, 0x21, 0xb3, 0xf7, 0x03, 0x6f, 0x7c,
- 0xdf, 0x7a, 0xe3, 0x6a, 0x0d, 0x8a, 0xc1, 0xf8, 0x94, 0xf2, 0x40, 0x23, 0x54, 0x14, 0x70, 0xb3,
- 0xb2, 0xb2, 0xbd, 0x8a, 0xdb, 0x8c, 0x97, 0x1a, 0x62, 0x0a, 0xb7, 0x3b, 0x1b, 0xeb, 0x3b, 0x0d,
- 0x45, 0xde, 0xdd, 0xda, 0x59, 0xdf, 0x6c, 0x88, 0xe9, 0x60, 0x5f, 0xfd, 0xdd, 0x14, 0x94, 0xc2,
- 0x47, 0x24, 0xe9, 0x67, 0xe1, 0x34, 0xbf, 0xcf, 0x70, 0x91, 0xa7, 0xdc, 0xd4, 0x1d, 0xb2, 0x65,
- 0x7a, 0x2a, 0x2d, 0x5f, 0xfe, 0xa2, 0xcd, 0x32, 0xad, 0x16, 0xf2, 0x9e, 0xd7, 0x1d, 0xbc, 0x21,
- 0x7a, 0xaa, 0x27, 0x6d, 0xc0, 0x59, 0xd3, 0x52, 0x5c, 0x4f, 0x35, 0xdb, 0xaa, 0xd3, 0x56, 0x06,
- 0x37, 0x49, 0x8a, 0xaa, 0x69, 0xc8, 0x75, 0x2d, 0x5a, 0xaa, 0x7c, 0x96, 0x0f, 0x99, 0x56, 0x8b,
- 0x29, 0x0f, 0x72, 0x78, 0x9d, 0xa9, 0x46, 0x02, 0x2c, 0x7d, 0x5c, 0x80, 0x3d, 0x08, 0xf9, 0x9e,
- 0x6a, 0x2b, 0xc8, 0xf4, 0x9c, 0x43, 0xd2, 0x18, 0xe7, 0xe4, 0x5c, 0x4f, 0xb5, 0x1b, 0xf8, 0xf9,
- 0x83, 0x39, 0x9f, 0xfc, 0x5b, 0x1a, 0x8a, 0xc1, 0xe6, 0x18, 0x9f, 0x35, 0x34, 0x52, 0x47, 0x04,
- 0x92, 0x69, 0x1e, 0xbe, 0x6f, 0x2b, 0xbd, 0xb8, 0x82, 0x0b, 0x4c, 0x6d, 0x9c, 0xb6, 0xac, 0x32,
- 0x45, 0xe2, 0xe2, 0x8e, 0x73, 0x0b, 0xa2, 0x2d, 0x42, 0x4e, 0x66, 0x4f, 0xd2, 0x1a, 0x8c, 0x5f,
- 0x77, 0x09, 0xf7, 0x38, 0xe1, 0x7e, 0xe4, 0xfe, 0xdc, 0xcf, 0xb5, 0x08, 0x79, 0xfe, 0xb9, 0x96,
- 0xb2, 0xb5, 0x2d, 0x6f, 0xd6, 0x37, 0x64, 0x06, 0x97, 0xce, 0x40, 0xc6, 0x50, 0x6f, 0x1d, 0x86,
- 0x4b, 0x11, 0x11, 0x25, 0x75, 0xfc, 0x19, 0xc8, 0xdc, 0x44, 0xea, 0x41, 0xb8, 0x00, 0x10, 0xd1,
- 0xfb, 0x18, 0xfa, 0x4b, 0x90, 0x25, 0xfe, 0x92, 0x00, 0x98, 0xc7, 0xc4, 0x31, 0x29, 0x07, 0x99,
- 0x95, 0x6d, 0x19, 0x87, 0xbf, 0x08, 0x45, 0x2a, 0x55, 0x9a, 0xeb, 0x8d, 0x95, 0x86, 0x98, 0xaa,
- 0x5e, 0x84, 0x71, 0xea, 0x04, 0xbc, 0x35, 0x7c, 0x37, 0x88, 0x63, 0xec, 0x91, 0x71, 0x08, 0x7c,
- 0x74, 0x77, 0x73, 0xb9, 0x21, 0x8b, 0xa9, 0xe0, 0xf2, 0xba, 0x50, 0x0c, 0xf6, 0xc5, 0x1f, 0x4c,
- 0x4c, 0x7d, 0x47, 0x80, 0x42, 0xa0, 0xcf, 0xc5, 0x0d, 0x8a, 0x6a, 0x18, 0xd6, 0x4d, 0x45, 0x35,
- 0x74, 0xd5, 0x65, 0x41, 0x01, 0x44, 0x54, 0xc7, 0x92, 0xa4, 0x8b, 0xf6, 0x81, 0x18, 0xff, 0xba,
- 0x00, 0x62, 0xb4, 0xc5, 0x8c, 0x18, 0x28, 0xfc, 0x54, 0x0d, 0x7c, 0x4d, 0x80, 0x52, 0xb8, 0xaf,
- 0x8c, 0x98, 0x77, 0xee, 0xa7, 0x6a, 0xde, 0x5b, 0x29, 0x98, 0x0c, 0x75, 0x93, 0x49, 0xad, 0xfb,
- 0x34, 0x4c, 0xeb, 0x6d, 0xd4, 0xb3, 0x2d, 0x0f, 0x99, 0xda, 0xa1, 0x62, 0xa0, 0x1b, 0xc8, 0x28,
- 0x57, 0x49, 0xa2, 0x58, 0xba, 0x7f, 0xbf, 0xba, 0xb8, 0x3e, 0xc0, 0x6d, 0x60, 0x58, 0x6d, 0x66,
- 0x7d, 0xb5, 0xb1, 0xd9, 0xdc, 0xde, 0x69, 0x6c, 0xad, 0xbc, 0xa8, 0xec, 0x6e, 0xfd, 0xfc, 0xd6,
- 0xf6, 0xf3, 0x5b, 0xb2, 0xa8, 0x47, 0xd4, 0xde, 0xc7, 0xad, 0xde, 0x04, 0x31, 0x6a, 0x94, 0x74,
- 0x1a, 0x46, 0x99, 0x25, 0x8e, 0x49, 0x33, 0x30, 0xb5, 0xb5, 0xad, 0xb4, 0xd6, 0x57, 0x1b, 0x4a,
- 0xe3, 0xda, 0xb5, 0xc6, 0xca, 0x4e, 0x8b, 0xde, 0x40, 0xf8, 0xda, 0x3b, 0xe1, 0x4d, 0xfd, 0x6a,
- 0x1a, 0x66, 0x46, 0x58, 0x22, 0xd5, 0xd9, 0xd9, 0x81, 0x1e, 0x67, 0x3e, 0x92, 0xc4, 0xfa, 0x45,
- 0x5c, 0xf2, 0x9b, 0xaa, 0xe3, 0xb1, 0xa3, 0xc6, 0xe3, 0x80, 0xbd, 0x64, 0x7a, 0x7a, 0x47, 0x47,
- 0x0e, 0xbb, 0xb0, 0xa1, 0x07, 0x8a, 0xa9, 0x81, 0x9c, 0xde, 0xd9, 0xfc, 0x0c, 0x48, 0xb6, 0xe5,
- 0xea, 0x9e, 0x7e, 0x03, 0x29, 0xba, 0xc9, 0x6f, 0x77, 0xf0, 0x01, 0x23, 0x23, 0x8b, 0x7c, 0x64,
- 0xdd, 0xf4, 0x7c, 0x6d, 0x13, 0x75, 0xd5, 0x88, 0x36, 0x4e, 0xe0, 0x69, 0x59, 0xe4, 0x23, 0xbe,
- 0xf6, 0x39, 0x28, 0xb6, 0xad, 0x3e, 0xee, 0xba, 0xa8, 0x1e, 0xae, 0x17, 0x82, 0x5c, 0xa0, 0x32,
- 0x5f, 0x85, 0xf5, 0xd3, 0x83, 0x6b, 0xa5, 0xa2, 0x5c, 0xa0, 0x32, 0xaa, 0xf2, 0x18, 0x4c, 0xa9,
- 0xdd, 0xae, 0x83, 0xc9, 0x39, 0x11, 0x3d, 0x21, 0x94, 0x7c, 0x31, 0x51, 0x9c, 0x7b, 0x0e, 0x72,
- 0xdc, 0x0f, 0xb8, 0x24, 0x63, 0x4f, 0x28, 0x36, 0x3d, 0xf6, 0xa6, 0x16, 0xf2, 0x72, 0xce, 0xe4,
- 0x83, 0xe7, 0xa0, 0xa8, 0xbb, 0xca, 0xe0, 0x96, 0x3c, 0x35, 0x9f, 0x5a, 0xc8, 0xc9, 0x05, 0xdd,
- 0xf5, 0x6f, 0x18, 0xab, 0x6f, 0xa4, 0xa0, 0x14, 0xbe, 0xe5, 0x97, 0x56, 0x21, 0x67, 0x58, 0x9a,
- 0x4a, 0x42, 0x8b, 0xfe, 0xc4, 0xb4, 0x10, 0xf3, 0xc3, 0xc0, 0xe2, 0x06, 0xd3, 0x97, 0x7d, 0xe4,
- 0xdc, 0xbf, 0x08, 0x90, 0xe3, 0x62, 0xe9, 0x14, 0x64, 0x6c, 0xd5, 0xdb, 0x27, 0x74, 0xd9, 0xe5,
- 0x94, 0x28, 0xc8, 0xe4, 0x19, 0xcb, 0x5d, 0x5b, 0x35, 0x49, 0x08, 0x30, 0x39, 0x7e, 0xc6, 0xeb,
- 0x6a, 0x20, 0xb5, 0x4d, 0x8e, 0x1f, 0x56, 0xaf, 0x87, 0x4c, 0xcf, 0xe5, 0xeb, 0xca, 0xe4, 0x2b,
- 0x4c, 0x2c, 0x3d, 0x09, 0xd3, 0x9e, 0xa3, 0xea, 0x46, 0x48, 0x37, 0x43, 0x74, 0x45, 0x3e, 0xe0,
- 0x2b, 0xd7, 0xe0, 0x0c, 0xe7, 0x6d, 0x23, 0x4f, 0xd5, 0xf6, 0x51, 0x7b, 0x00, 0x1a, 0x27, 0xd7,
- 0x0c, 0xa7, 0x99, 0xc2, 0x2a, 0x1b, 0xe7, 0xd8, 0xea, 0xf7, 0x05, 0x98, 0xe6, 0x07, 0xa6, 0xb6,
- 0xef, 0xac, 0x4d, 0x00, 0xd5, 0x34, 0x2d, 0x2f, 0xe8, 0xae, 0xe1, 0x50, 0x1e, 0xc2, 0x2d, 0xd6,
- 0x7d, 0x90, 0x1c, 0x20, 0x98, 0xeb, 0x01, 0x0c, 0x46, 0x8e, 0x75, 0xdb, 0x59, 0x28, 0xb0, 0x9f,
- 0x70, 0xc8, 0xef, 0x80, 0xf4, 0x88, 0x0d, 0x54, 0x84, 0x4f, 0x56, 0xd2, 0x2c, 0x64, 0xf7, 0x50,
- 0x57, 0x37, 0xd9, 0xc5, 0x2c, 0x7d, 0xe0, 0x17, 0x21, 0x19, 0xff, 0x22, 0x64, 0xf9, 0x53, 0x30,
- 0xa3, 0x59, 0xbd, 0xa8, 0xb9, 0xcb, 0x62, 0xe4, 0x98, 0xef, 0x7e, 0x5c, 0x78, 0x09, 0x06, 0x2d,
- 0xe6, 0x7b, 0x82, 0xf0, 0xc5, 0x54, 0x7a, 0xad, 0xb9, 0xfc, 0x95, 0xd4, 0xdc, 0x1a, 0x85, 0x36,
- 0xf9, 0x4c, 0x65, 0xd4, 0x31, 0x90, 0x86, 0xad, 0x87, 0x2f, 0x3d, 0x09, 0x1f, 0xe9, 0xea, 0xde,
- 0x7e, 0x7f, 0x6f, 0x51, 0xb3, 0x7a, 0x4b, 0x5d, 0xab, 0x6b, 0x0d, 0x7e, 0xfa, 0xc4, 0x4f, 0xe4,
- 0x81, 0xfc, 0xc7, 0x7e, 0xfe, 0xcc, 0xfb, 0xd2, 0xb9, 0xd8, 0xdf, 0x4a, 0x6b, 0x5b, 0x30, 0xc3,
- 0x94, 0x15, 0xf2, 0xfb, 0x0b, 0x3d, 0x45, 0x48, 0xf7, 0xbd, 0xc3, 0x2a, 0x7f, 0xed, 0x6d, 0x52,
- 0xae, 0xe5, 0x69, 0x06, 0xc5, 0x63, 0xf4, 0xa0, 0x51, 0x93, 0xe1, 0x81, 0x10, 0x1f, 0xdd, 0x9a,
- 0xc8, 0x89, 0x61, 0xfc, 0x2e, 0x63, 0x9c, 0x09, 0x30, 0xb6, 0x18, 0xb4, 0xb6, 0x02, 0x93, 0x27,
- 0xe1, 0xfa, 0x27, 0xc6, 0x55, 0x44, 0x41, 0x92, 0x35, 0x98, 0x22, 0x24, 0x5a, 0xdf, 0xf5, 0xac,
- 0x1e, 0xc9, 0x7b, 0xf7, 0xa7, 0xf9, 0xe7, 0xb7, 0xe9, 0x5e, 0x29, 0x61, 0xd8, 0x8a, 0x8f, 0xaa,
- 0xd5, 0x80, 0xfc, 0xe4, 0xd4, 0x46, 0x9a, 0x11, 0xc3, 0xf0, 0x26, 0x33, 0xc4, 0xd7, 0xaf, 0x7d,
- 0x12, 0x66, 0xf1, 0xff, 0x24, 0x2d, 0x05, 0x2d, 0x89, 0xbf, 0xf0, 0x2a, 0x7f, 0xff, 0x15, 0xba,
- 0x1d, 0x67, 0x7c, 0x82, 0x80, 0x4d, 0x81, 0x55, 0xec, 0x22, 0xcf, 0x43, 0x8e, 0xab, 0xa8, 0xc6,
- 0x28, 0xf3, 0x02, 0x37, 0x06, 0xe5, 0xcf, 0xbd, 0x13, 0x5e, 0xc5, 0x35, 0x8a, 0xac, 0x1b, 0x46,
- 0x6d, 0x17, 0x4e, 0x8f, 0x88, 0x8a, 0x04, 0x9c, 0xaf, 0x32, 0xce, 0xd9, 0xa1, 0xc8, 0xc0, 0xb4,
- 0x4d, 0xe0, 0x72, 0x7f, 0x2d, 0x13, 0x70, 0xfe, 0x11, 0xe3, 0x94, 0x18, 0x96, 0x2f, 0x29, 0x66,
- 0x7c, 0x0e, 0xa6, 0x6f, 0x20, 0x67, 0xcf, 0x72, 0xd9, 0x2d, 0x4d, 0x02, 0xba, 0xd7, 0x18, 0xdd,
- 0x14, 0x03, 0x92, 0x6b, 0x1b, 0xcc, 0x75, 0x05, 0x72, 0x1d, 0x55, 0x43, 0x09, 0x28, 0x3e, 0xcf,
- 0x28, 0x26, 0xb0, 0x3e, 0x86, 0xd6, 0xa1, 0xd8, 0xb5, 0x58, 0x65, 0x8a, 0x87, 0xbf, 0xce, 0xe0,
- 0x05, 0x8e, 0x61, 0x14, 0xb6, 0x65, 0xf7, 0x0d, 0x5c, 0xb6, 0xe2, 0x29, 0xfe, 0x98, 0x53, 0x70,
- 0x0c, 0xa3, 0x38, 0x81, 0x5b, 0xff, 0x84, 0x53, 0xb8, 0x01, 0x7f, 0x3e, 0x0b, 0x05, 0xcb, 0x34,
- 0x0e, 0x2d, 0x33, 0x89, 0x11, 0x5f, 0x60, 0x0c, 0xc0, 0x20, 0x98, 0xe0, 0x2a, 0xe4, 0x93, 0x2e,
- 0xc4, 0x9f, 0xbd, 0xc3, 0xb7, 0x07, 0x5f, 0x81, 0x35, 0x98, 0xe2, 0x09, 0x4a, 0xb7, 0xcc, 0x04,
- 0x14, 0x5f, 0x62, 0x14, 0xa5, 0x00, 0x8c, 0x4d, 0xc3, 0x43, 0xae, 0xd7, 0x45, 0x49, 0x48, 0xde,
- 0xe0, 0xd3, 0x60, 0x10, 0xe6, 0xca, 0x3d, 0x64, 0x6a, 0xfb, 0xc9, 0x18, 0xbe, 0xcc, 0x5d, 0xc9,
- 0x31, 0x98, 0x62, 0x05, 0x26, 0x7b, 0xaa, 0xe3, 0xee, 0xab, 0x46, 0xa2, 0xe5, 0xf8, 0x73, 0xc6,
- 0x51, 0xf4, 0x41, 0xcc, 0x23, 0x7d, 0xf3, 0x24, 0x34, 0x5f, 0xe1, 0x1e, 0x09, 0xc0, 0xd8, 0xd6,
- 0x73, 0x3d, 0x72, 0xa5, 0x75, 0x12, 0xb6, 0xbf, 0xe0, 0x5b, 0x8f, 0x62, 0x37, 0x83, 0x8c, 0x57,
- 0x21, 0xef, 0xea, 0xb7, 0x12, 0xd1, 0xfc, 0x25, 0x5f, 0x69, 0x02, 0xc0, 0xe0, 0x17, 0xe1, 0xcc,
- 0xc8, 0x32, 0x91, 0x80, 0xec, 0xaf, 0x18, 0xd9, 0xa9, 0x11, 0xa5, 0x82, 0xa5, 0x84, 0x93, 0x52,
- 0xfe, 0x35, 0x4f, 0x09, 0x28, 0xc2, 0xd5, 0xc4, 0x67, 0x05, 0x57, 0xed, 0x9c, 0xcc, 0x6b, 0x7f,
- 0xc3, 0xbd, 0x46, 0xb1, 0x21, 0xaf, 0xed, 0xc0, 0x29, 0xc6, 0x78, 0xb2, 0x75, 0xfd, 0x2a, 0x4f,
- 0xac, 0x14, 0xbd, 0x1b, 0x5e, 0xdd, 0x4f, 0xc1, 0x9c, 0xef, 0x4e, 0xde, 0x94, 0xba, 0x4a, 0x4f,
- 0xb5, 0x13, 0x30, 0x7f, 0x8d, 0x31, 0xf3, 0x8c, 0xef, 0x77, 0xb5, 0xee, 0xa6, 0x6a, 0x63, 0xf2,
- 0x17, 0xa0, 0xcc, 0xc9, 0xfb, 0xa6, 0x83, 0x34, 0xab, 0x6b, 0xea, 0xb7, 0x50, 0x3b, 0x01, 0xf5,
- 0xdf, 0x46, 0x96, 0x6a, 0x37, 0x00, 0xc7, 0xcc, 0xeb, 0x20, 0xfa, 0xbd, 0x8a, 0xa2, 0xf7, 0x6c,
- 0xcb, 0xf1, 0x62, 0x18, 0xbf, 0xce, 0x57, 0xca, 0xc7, 0xad, 0x13, 0x58, 0xad, 0x01, 0x25, 0xf2,
- 0x98, 0x34, 0x24, 0xff, 0x8e, 0x11, 0x4d, 0x0e, 0x50, 0x2c, 0x71, 0x68, 0x56, 0xcf, 0x56, 0x9d,
- 0x24, 0xf9, 0xef, 0x1b, 0x3c, 0x71, 0x30, 0x08, 0x4b, 0x1c, 0xde, 0xa1, 0x8d, 0x70, 0xb5, 0x4f,
- 0xc0, 0xf0, 0x4d, 0x9e, 0x38, 0x38, 0x86, 0x51, 0xf0, 0x86, 0x21, 0x01, 0xc5, 0xdf, 0x73, 0x0a,
- 0x8e, 0xc1, 0x14, 0x9f, 0x18, 0x14, 0x5a, 0x07, 0x75, 0x75, 0xd7, 0x73, 0x68, 0x2b, 0x7c, 0x7f,
- 0xaa, 0x6f, 0xbd, 0x13, 0x6e, 0xc2, 0xe4, 0x00, 0x14, 0x67, 0x22, 0x76, 0x85, 0x4a, 0x4e, 0x4a,
- 0xf1, 0x86, 0x7d, 0x9b, 0x67, 0xa2, 0x00, 0x0c, 0xdb, 0x16, 0xe8, 0x10, 0xb1, 0xdb, 0x35, 0x7c,
- 0x3e, 0x48, 0x40, 0xf7, 0x9d, 0x88, 0x71, 0x2d, 0x8e, 0xc5, 0x9c, 0x81, 0xfe, 0xa7, 0x6f, 0x1e,
- 0xa0, 0xc3, 0x44, 0xd1, 0xf9, 0x0f, 0x91, 0xfe, 0x67, 0x97, 0x22, 0x69, 0x0e, 0x99, 0x8a, 0xf4,
- 0x53, 0x52, 0xdc, 0xc7, 0x3a, 0xe5, 0x5f, 0xbe, 0xcb, 0xe6, 0x1b, 0x6e, 0xa7, 0x6a, 0x1b, 0x38,
- 0xc8, 0xc3, 0x4d, 0x4f, 0x3c, 0xd9, 0x2b, 0x77, 0xfd, 0x38, 0x0f, 0xf5, 0x3c, 0xb5, 0x6b, 0x30,
- 0x19, 0x6a, 0x78, 0xe2, 0xa9, 0x7e, 0x85, 0x51, 0x15, 0x83, 0xfd, 0x4e, 0xed, 0x22, 0x64, 0x70,
- 0xf3, 0x12, 0x0f, 0xff, 0x55, 0x06, 0x27, 0xea, 0xb5, 0x8f, 0x41, 0x8e, 0x37, 0x2d, 0xf1, 0xd0,
- 0x5f, 0x63, 0x50, 0x1f, 0x82, 0xe1, 0xbc, 0x61, 0x89, 0x87, 0xff, 0x3a, 0x87, 0x73, 0x08, 0x86,
- 0x27, 0x77, 0xe1, 0x3f, 0xfe, 0x46, 0x86, 0x15, 0x1d, 0xee, 0xbb, 0xab, 0x30, 0xc1, 0x3a, 0x95,
- 0x78, 0xf4, 0x67, 0xd8, 0xcb, 0x39, 0xa2, 0xf6, 0x34, 0x64, 0x13, 0x3a, 0xfc, 0x37, 0x19, 0x94,
- 0xea, 0xd7, 0x56, 0xa0, 0x10, 0xe8, 0x4e, 0xe2, 0xe1, 0xbf, 0xc5, 0xe0, 0x41, 0x14, 0x36, 0x9d,
- 0x75, 0x27, 0xf1, 0x04, 0xbf, 0xcd, 0x4d, 0x67, 0x08, 0xec, 0x36, 0xde, 0x98, 0xc4, 0xa3, 0x7f,
- 0x87, 0x7b, 0x9d, 0x43, 0x6a, 0xcf, 0x42, 0xde, 0x2f, 0x36, 0xf1, 0xf8, 0xdf, 0x65, 0xf8, 0x01,
- 0x06, 0x7b, 0x20, 0x50, 0xec, 0xe2, 0x29, 0x7e, 0x8f, 0x7b, 0x20, 0x80, 0xc2, 0xdb, 0x28, 0xda,
- 0xc0, 0xc4, 0x33, 0xfd, 0x3e, 0xdf, 0x46, 0x91, 0xfe, 0x05, 0xaf, 0x26, 0xc9, 0xf9, 0xf1, 0x14,
- 0x7f, 0xc0, 0x57, 0x93, 0xe8, 0x63, 0x33, 0xa2, 0x1d, 0x41, 0x3c, 0xc7, 0x1f, 0x72, 0x33, 0x22,
- 0x0d, 0x41, 0xad, 0x09, 0xd2, 0x70, 0x37, 0x10, 0xcf, 0xf7, 0x59, 0xc6, 0x37, 0x3d, 0xd4, 0x0c,
- 0xd4, 0x9e, 0x87, 0x53, 0xa3, 0x3b, 0x81, 0x78, 0xd6, 0xcf, 0xdd, 0x8d, 0x9c, 0xdd, 0x82, 0x8d,
- 0x40, 0x6d, 0x67, 0x50, 0x52, 0x82, 0x5d, 0x40, 0x3c, 0xed, 0xab, 0x77, 0xc3, 0x89, 0x3b, 0xd8,
- 0x04, 0xd4, 0xea, 0x00, 0x83, 0x02, 0x1c, 0xcf, 0xf5, 0x1a, 0xe3, 0x0a, 0x80, 0xf0, 0xd6, 0x60,
- 0xf5, 0x37, 0x1e, 0xff, 0x79, 0xbe, 0x35, 0x18, 0x02, 0x6f, 0x0d, 0x5e, 0x7a, 0xe3, 0xd1, 0xaf,
- 0xf3, 0xad, 0xc1, 0x21, 0x38, 0xb2, 0x03, 0xd5, 0x2d, 0x9e, 0xe1, 0x0b, 0x3c, 0xb2, 0x03, 0xa8,
- 0xda, 0x16, 0x4c, 0x0f, 0x15, 0xc4, 0x78, 0xaa, 0x2f, 0x32, 0x2a, 0x31, 0x5a, 0x0f, 0x83, 0xc5,
- 0x8b, 0x15, 0xc3, 0x78, 0xb6, 0x3f, 0x8d, 0x14, 0x2f, 0x56, 0x0b, 0x6b, 0x57, 0x21, 0x67, 0xf6,
- 0x0d, 0x03, 0x6f, 0x1e, 0xe9, 0xfe, 0x1f, 0xd8, 0x95, 0xff, 0xe3, 0x1e, 0xf3, 0x0e, 0x07, 0xd4,
- 0x2e, 0x42, 0x16, 0xf5, 0xf6, 0x50, 0x3b, 0x0e, 0xf9, 0x9f, 0xf7, 0x78, 0xc2, 0xc4, 0xda, 0xb5,
- 0x67, 0x01, 0xe8, 0xd5, 0x08, 0xf9, 0xd9, 0x2f, 0x06, 0xfb, 0x5f, 0xf7, 0xd8, 0xa7, 0x2f, 0x03,
- 0xc8, 0x80, 0x80, 0x7e, 0x48, 0x73, 0x7f, 0x82, 0x77, 0xc2, 0x04, 0x64, 0x45, 0xae, 0xc0, 0xc4,
- 0x75, 0xd7, 0x32, 0x3d, 0xb5, 0x1b, 0x87, 0xfe, 0x6f, 0x86, 0xe6, 0xfa, 0xd8, 0x61, 0x3d, 0xcb,
- 0x41, 0x9e, 0xda, 0x75, 0xe3, 0xb0, 0xff, 0xc3, 0xb0, 0x3e, 0x00, 0x83, 0x35, 0xd5, 0xf5, 0x92,
- 0xcc, 0xfb, 0x47, 0x1c, 0xcc, 0x01, 0xd8, 0x68, 0xfc, 0xff, 0x01, 0x3a, 0x8c, 0xc3, 0xbe, 0xcb,
- 0x8d, 0x66, 0xfa, 0xb5, 0x8f, 0x41, 0x1e, 0xff, 0x4b, 0xbf, 0x67, 0x8b, 0x01, 0xff, 0x2f, 0x03,
- 0x0f, 0x10, 0xf8, 0xcd, 0xae, 0xd7, 0xf6, 0xf4, 0x78, 0x67, 0xff, 0x1f, 0x5b, 0x69, 0xae, 0x5f,
- 0xab, 0x43, 0xc1, 0xf5, 0xda, 0xed, 0x3e, 0xeb, 0x4f, 0x63, 0xe0, 0xff, 0x7f, 0xcf, 0xbf, 0xb2,
- 0xf0, 0x31, 0x78, 0xb5, 0x6f, 0x1e, 0x78, 0xb6, 0x45, 0x7e, 0xe6, 0x88, 0x63, 0xb8, 0xcb, 0x18,
- 0x02, 0x90, 0xe5, 0xc6, 0xe8, 0xeb, 0x5b, 0x58, 0xb3, 0xd6, 0x2c, 0x7a, 0x71, 0xfb, 0x52, 0x35,
- 0xfe, 0x06, 0x16, 0xbe, 0x91, 0x86, 0x39, 0xcd, 0xea, 0xed, 0x59, 0xee, 0x92, 0x9f, 0x8e, 0x97,
- 0x7a, 0xaa, 0xcd, 0x6e, 0x65, 0x0b, 0x3d, 0xd5, 0x66, 0x9f, 0xbf, 0xba, 0x73, 0x27, 0xbb, 0xd1,
- 0xad, 0xfe, 0x12, 0x4c, 0x6c, 0xaa, 0xf6, 0x0e, 0x72, 0x3d, 0x89, 0xf8, 0x9a, 0x7c, 0x67, 0xc5,
- 0xae, 0xc9, 0xe7, 0x17, 0x03, 0xc4, 0x8b, 0x4c, 0x6d, 0xb1, 0xe5, 0x39, 0x2d, 0xcf, 0x21, 0x9f,
- 0x14, 0xc8, 0xe3, 0x2e, 0x79, 0x98, 0xbb, 0x02, 0x85, 0x80, 0x58, 0x12, 0x21, 0x7d, 0x80, 0x0e,
- 0xd9, 0x97, 0x56, 0xf8, 0x5f, 0x69, 0x76, 0xf0, 0x29, 0x24, 0x96, 0xd1, 0x87, 0x5a, 0xea, 0xb2,
- 0x50, 0x7d, 0x06, 0x26, 0xae, 0xa9, 0x07, 0x68, 0x53, 0xb5, 0xa5, 0x0b, 0x30, 0x81, 0x4c, 0xcf,
- 0xd1, 0x91, 0xcb, 0x0c, 0x38, 0x13, 0x32, 0x80, 0xa9, 0xd1, 0x37, 0x73, 0xcd, 0xea, 0x06, 0x14,
- 0x83, 0x03, 0x49, 0xdf, 0x8d, 0xa5, 0x96, 0xb7, 0xcf, 0x3e, 0x8d, 0xce, 0xcb, 0xf4, 0x61, 0x79,
- 0xf5, 0xcd, 0x3b, 0x95, 0xb1, 0xef, 0xdd, 0xa9, 0x8c, 0xfd, 0xeb, 0x9d, 0xca, 0xd8, 0x5b, 0x77,
- 0x2a, 0xc2, 0xbb, 0x77, 0x2a, 0xc2, 0x7b, 0x77, 0x2a, 0xc2, 0xed, 0xa3, 0x8a, 0xf0, 0xe5, 0xa3,
- 0x8a, 0xf0, 0xd5, 0xa3, 0x8a, 0xf0, 0xad, 0xa3, 0x8a, 0xf0, 0xe6, 0x51, 0x45, 0xf8, 0xde, 0x51,
- 0x65, 0xec, 0xad, 0xa3, 0x8a, 0xf0, 0xc3, 0xa3, 0xca, 0xd8, 0xbb, 0x47, 0x15, 0xe1, 0xbd, 0xa3,
- 0xca, 0xd8, 0xed, 0x1f, 0x54, 0xc6, 0xf6, 0xc6, 0x89, 0x6f, 0x2f, 0xfc, 0x38, 0x00, 0x00, 0xff,
- 0xff, 0x86, 0x67, 0x00, 0x91, 0x53, 0x34, 0x00, 0x00,
+ // 4012 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7a, 0x4b, 0x70, 0xe4, 0xd6,
+ 0x75, 0x36, 0xfb, 0x45, 0x76, 0x9f, 0x6e, 0x36, 0x41, 0x90, 0x9a, 0xe9, 0xa1, 0xac, 0x1e, 0x4e,
+ 0x4b, 0xb2, 0x28, 0xc9, 0x22, 0x5d, 0xf3, 0xd2, 0x4c, 0xcf, 0x6f, 0xe9, 0x6f, 0x92, 0x3d, 0x34,
+ 0x15, 0xbe, 0x8c, 0x26, 0xad, 0x87, 0x2b, 0x85, 0xba, 0x44, 0x5f, 0x36, 0x31, 0x44, 0x03, 0x30,
+ 0x80, 0x9e, 0x11, 0xa7, 0x52, 0x95, 0x49, 0x29, 0x8f, 0x72, 0xe5, 0xfd, 0xa8, 0x8a, 0xad, 0xc8,
+ 0x4a, 0xec, 0x54, 0x2c, 0xc7, 0x79, 0xd9, 0x49, 0xec, 0xd8, 0xce, 0x26, 0x1b, 0x27, 0x5a, 0xa5,
+ 0xec, 0x5d, 0x16, 0x59, 0x68, 0x68, 0x55, 0xc5, 0x49, 0x94, 0x44, 0x49, 0x66, 0xa1, 0x2a, 0x6d,
+ 0x52, 0xf7, 0x85, 0x06, 0xd0, 0xcd, 0x01, 0xe8, 0x2a, 0xc9, 0x2b, 0x12, 0xe7, 0x9e, 0xef, 0xc3,
+ 0xb9, 0xe7, 0x9e, 0x7b, 0xce, 0xb9, 0x17, 0x0d, 0x6f, 0xd6, 0x61, 0xb6, 0x63, 0x59, 0x1d, 0x03,
+ 0x2f, 0xd8, 0x8e, 0xe5, 0x59, 0xbb, 0xbd, 0xbd, 0x85, 0x36, 0x76, 0x35, 0x47, 0xb7, 0x3d, 0xcb,
+ 0x99, 0xa7, 0x32, 0x79, 0x82, 0x69, 0xcc, 0x0b, 0x8d, 0xda, 0x3a, 0x4c, 0x5e, 0xd7, 0x0d, 0xbc,
+ 0xec, 0x2b, 0xb6, 0xb0, 0x27, 0x5f, 0x81, 0xec, 0x9e, 0x6e, 0xe0, 0x4a, 0x6a, 0x36, 0x33, 0x57,
+ 0x3c, 0xff, 0xc8, 0x7c, 0x04, 0x34, 0x1f, 0x46, 0x6c, 0x11, 0xb1, 0x42, 0x11, 0xb5, 0xb7, 0xb3,
+ 0x30, 0x35, 0x64, 0x54, 0x96, 0x21, 0x6b, 0xa2, 0x2e, 0x61, 0x4c, 0xcd, 0x15, 0x14, 0xfa, 0xbf,
+ 0x5c, 0x81, 0x31, 0x1b, 0x69, 0x07, 0xa8, 0x83, 0x2b, 0x69, 0x2a, 0x16, 0x8f, 0x72, 0x15, 0xa0,
+ 0x8d, 0x6d, 0x6c, 0xb6, 0xb1, 0xa9, 0x1d, 0x56, 0x32, 0xb3, 0x99, 0xb9, 0x82, 0x12, 0x90, 0xc8,
+ 0x4f, 0xc2, 0xa4, 0xdd, 0xdb, 0x35, 0x74, 0x4d, 0x0d, 0xa8, 0xc1, 0x6c, 0x66, 0x2e, 0xa7, 0x48,
+ 0x6c, 0x60, 0xb9, 0xaf, 0xfc, 0x18, 0x4c, 0xdc, 0xc2, 0xe8, 0x20, 0xa8, 0x5a, 0xa4, 0xaa, 0x65,
+ 0x22, 0x0e, 0x28, 0x2e, 0x41, 0xa9, 0x8b, 0x5d, 0x17, 0x75, 0xb0, 0xea, 0x1d, 0xda, 0xb8, 0x92,
+ 0xa5, 0xb3, 0x9f, 0x1d, 0x98, 0x7d, 0x74, 0xe6, 0x45, 0x8e, 0xda, 0x3e, 0xb4, 0xb1, 0xdc, 0x80,
+ 0x02, 0x36, 0x7b, 0x5d, 0xc6, 0x90, 0x3b, 0xc6, 0x7f, 0x4d, 0xb3, 0xd7, 0x8d, 0xb2, 0xe4, 0x09,
+ 0x8c, 0x53, 0x8c, 0xb9, 0xd8, 0xb9, 0xa9, 0x6b, 0xb8, 0x32, 0x4a, 0x09, 0x1e, 0x1b, 0x20, 0x68,
+ 0xb1, 0xf1, 0x28, 0x87, 0xc0, 0xc9, 0x4b, 0x50, 0xc0, 0x2f, 0x7b, 0xd8, 0x74, 0x75, 0xcb, 0xac,
+ 0x8c, 0x51, 0x92, 0x47, 0x87, 0xac, 0x22, 0x36, 0xda, 0x51, 0x8a, 0x3e, 0x4e, 0xbe, 0x0c, 0x63,
+ 0x96, 0xed, 0xe9, 0x96, 0xe9, 0x56, 0xf2, 0xb3, 0xa9, 0xb9, 0xe2, 0xf9, 0x8f, 0x0c, 0x0d, 0x84,
+ 0x4d, 0xa6, 0xa3, 0x08, 0x65, 0x79, 0x15, 0x24, 0xd7, 0xea, 0x39, 0x1a, 0x56, 0x35, 0xab, 0x8d,
+ 0x55, 0xdd, 0xdc, 0xb3, 0x2a, 0x05, 0x4a, 0x70, 0x76, 0x70, 0x22, 0x54, 0x71, 0xc9, 0x6a, 0xe3,
+ 0x55, 0x73, 0xcf, 0x52, 0xca, 0x6e, 0xe8, 0x59, 0x3e, 0x05, 0xa3, 0xee, 0xa1, 0xe9, 0xa1, 0x97,
+ 0x2b, 0x25, 0x1a, 0x21, 0xfc, 0xa9, 0xf6, 0x9d, 0x51, 0x98, 0x48, 0x12, 0x62, 0xd7, 0x20, 0xb7,
+ 0x47, 0x66, 0x59, 0x49, 0x9f, 0xc4, 0x07, 0x0c, 0x13, 0x76, 0xe2, 0xe8, 0x8f, 0xe9, 0xc4, 0x06,
+ 0x14, 0x4d, 0xec, 0x7a, 0xb8, 0xcd, 0x22, 0x22, 0x93, 0x30, 0xa6, 0x80, 0x81, 0x06, 0x43, 0x2a,
+ 0xfb, 0x63, 0x85, 0xd4, 0x0b, 0x30, 0xe1, 0x9b, 0xa4, 0x3a, 0xc8, 0xec, 0x88, 0xd8, 0x5c, 0x88,
+ 0xb3, 0x64, 0xbe, 0x29, 0x70, 0x0a, 0x81, 0x29, 0x65, 0x1c, 0x7a, 0x96, 0x97, 0x01, 0x2c, 0x13,
+ 0x5b, 0x7b, 0x6a, 0x1b, 0x6b, 0x46, 0x25, 0x7f, 0x8c, 0x97, 0x36, 0x89, 0xca, 0x80, 0x97, 0x2c,
+ 0x26, 0xd5, 0x0c, 0xf9, 0x6a, 0x3f, 0xd4, 0xc6, 0x8e, 0x89, 0x94, 0x75, 0xb6, 0xc9, 0x06, 0xa2,
+ 0x6d, 0x07, 0xca, 0x0e, 0x26, 0x71, 0x8f, 0xdb, 0x7c, 0x66, 0x05, 0x6a, 0xc4, 0x7c, 0xec, 0xcc,
+ 0x14, 0x0e, 0x63, 0x13, 0x1b, 0x77, 0x82, 0x8f, 0xf2, 0xc3, 0xe0, 0x0b, 0x54, 0x1a, 0x56, 0x40,
+ 0xb3, 0x50, 0x49, 0x08, 0x37, 0x50, 0x17, 0xcf, 0xdc, 0x86, 0x72, 0xd8, 0x3d, 0xf2, 0x34, 0xe4,
+ 0x5c, 0x0f, 0x39, 0x1e, 0x8d, 0xc2, 0x9c, 0xc2, 0x1e, 0x64, 0x09, 0x32, 0xd8, 0x6c, 0xd3, 0x2c,
+ 0x97, 0x53, 0xc8, 0xbf, 0xf2, 0xff, 0xef, 0x4f, 0x38, 0x43, 0x27, 0xfc, 0xd1, 0xc1, 0x15, 0x0d,
+ 0x31, 0x47, 0xe7, 0x3d, 0xf3, 0x34, 0x8c, 0x87, 0x26, 0x90, 0xf4, 0xd5, 0xb5, 0x9f, 0x81, 0x07,
+ 0x86, 0x52, 0xcb, 0x2f, 0xc0, 0x74, 0xcf, 0xd4, 0x4d, 0x0f, 0x3b, 0xb6, 0x83, 0x49, 0xc4, 0xb2,
+ 0x57, 0x55, 0xfe, 0x65, 0xec, 0x98, 0x98, 0xdb, 0x09, 0x6a, 0x33, 0x16, 0x65, 0xaa, 0x37, 0x28,
+ 0x7c, 0xa2, 0x90, 0xff, 0xd1, 0x98, 0x74, 0xe7, 0xce, 0x9d, 0x3b, 0xe9, 0xda, 0xe7, 0x47, 0x61,
+ 0x7a, 0xd8, 0x9e, 0x19, 0xba, 0x7d, 0x4f, 0xc1, 0xa8, 0xd9, 0xeb, 0xee, 0x62, 0x87, 0x3a, 0x29,
+ 0xa7, 0xf0, 0x27, 0xb9, 0x01, 0x39, 0x03, 0xed, 0x62, 0xa3, 0x92, 0x9d, 0x4d, 0xcd, 0x95, 0xcf,
+ 0x3f, 0x99, 0x68, 0x57, 0xce, 0xaf, 0x11, 0x88, 0xc2, 0x90, 0xf2, 0x33, 0x90, 0xe5, 0x29, 0x9a,
+ 0x30, 0x3c, 0x91, 0x8c, 0x81, 0xec, 0x25, 0x85, 0xe2, 0xe4, 0x07, 0xa1, 0x40, 0xfe, 0xb2, 0xd8,
+ 0x18, 0xa5, 0x36, 0xe7, 0x89, 0x80, 0xc4, 0x85, 0x3c, 0x03, 0x79, 0xba, 0x4d, 0xda, 0x58, 0x94,
+ 0x36, 0xff, 0x99, 0x04, 0x56, 0x1b, 0xef, 0xa1, 0x9e, 0xe1, 0xa9, 0x37, 0x91, 0xd1, 0xc3, 0x34,
+ 0xe0, 0x0b, 0x4a, 0x89, 0x0b, 0x3f, 0x4d, 0x64, 0xf2, 0x59, 0x28, 0xb2, 0x5d, 0xa5, 0x9b, 0x6d,
+ 0xfc, 0x32, 0xcd, 0x9e, 0x39, 0x85, 0x6d, 0xb4, 0x55, 0x22, 0x21, 0xaf, 0xbf, 0xe1, 0x5a, 0xa6,
+ 0x08, 0x4d, 0xfa, 0x0a, 0x22, 0xa0, 0xaf, 0x7f, 0x3a, 0x9a, 0xb8, 0x1f, 0x1a, 0x3e, 0xbd, 0x68,
+ 0x4c, 0xd5, 0xbe, 0x95, 0x86, 0x2c, 0xcd, 0x17, 0x13, 0x50, 0xdc, 0x7e, 0x71, 0xab, 0xa9, 0x2e,
+ 0x6f, 0xee, 0x2c, 0xae, 0x35, 0xa5, 0x94, 0x5c, 0x06, 0xa0, 0x82, 0xeb, 0x6b, 0x9b, 0x8d, 0x6d,
+ 0x29, 0xed, 0x3f, 0xaf, 0x6e, 0x6c, 0x5f, 0xbe, 0x28, 0x65, 0x7c, 0xc0, 0x0e, 0x13, 0x64, 0x83,
+ 0x0a, 0x17, 0xce, 0x4b, 0x39, 0x59, 0x82, 0x12, 0x23, 0x58, 0x7d, 0xa1, 0xb9, 0x7c, 0xf9, 0xa2,
+ 0x34, 0x1a, 0x96, 0x5c, 0x38, 0x2f, 0x8d, 0xc9, 0xe3, 0x50, 0xa0, 0x92, 0xc5, 0xcd, 0xcd, 0x35,
+ 0x29, 0xef, 0x73, 0xb6, 0xb6, 0x95, 0xd5, 0x8d, 0x15, 0xa9, 0xe0, 0x73, 0xae, 0x28, 0x9b, 0x3b,
+ 0x5b, 0x12, 0xf8, 0x0c, 0xeb, 0xcd, 0x56, 0xab, 0xb1, 0xd2, 0x94, 0x8a, 0xbe, 0xc6, 0xe2, 0x8b,
+ 0xdb, 0xcd, 0x96, 0x54, 0x0a, 0x99, 0x75, 0xe1, 0xbc, 0x34, 0xee, 0xbf, 0xa2, 0xb9, 0xb1, 0xb3,
+ 0x2e, 0x95, 0xe5, 0x49, 0x18, 0x67, 0xaf, 0x10, 0x46, 0x4c, 0x44, 0x44, 0x97, 0x2f, 0x4a, 0x52,
+ 0xdf, 0x10, 0xc6, 0x32, 0x19, 0x12, 0x5c, 0xbe, 0x28, 0xc9, 0xb5, 0x25, 0xc8, 0xd1, 0xe8, 0x92,
+ 0x65, 0x28, 0xaf, 0x35, 0x16, 0x9b, 0x6b, 0xea, 0xe6, 0xd6, 0xf6, 0xea, 0xe6, 0x46, 0x63, 0x4d,
+ 0x4a, 0xf5, 0x65, 0x4a, 0xf3, 0x53, 0x3b, 0xab, 0x4a, 0x73, 0x59, 0x4a, 0x07, 0x65, 0x5b, 0xcd,
+ 0xc6, 0x76, 0x73, 0x59, 0xca, 0xd4, 0x34, 0x98, 0x1e, 0x96, 0x27, 0x87, 0xee, 0x8c, 0xc0, 0x12,
+ 0xa7, 0x8f, 0x59, 0x62, 0xca, 0x35, 0xb0, 0xc4, 0x3f, 0x4c, 0xc3, 0xd4, 0x90, 0x5a, 0x31, 0xf4,
+ 0x25, 0xcf, 0x42, 0x8e, 0x85, 0x28, 0xab, 0x9e, 0x8f, 0x0f, 0x2d, 0x3a, 0x34, 0x60, 0x07, 0x2a,
+ 0x28, 0xc5, 0x05, 0x3b, 0x88, 0xcc, 0x31, 0x1d, 0x04, 0xa1, 0x18, 0xc8, 0xe9, 0x3f, 0x3d, 0x90,
+ 0xd3, 0x59, 0xd9, 0xbb, 0x9c, 0xa4, 0xec, 0x51, 0xd9, 0xc9, 0x72, 0x7b, 0x6e, 0x48, 0x6e, 0xbf,
+ 0x06, 0x93, 0x03, 0x44, 0x89, 0x73, 0xec, 0x2b, 0x29, 0xa8, 0x1c, 0xe7, 0x9c, 0x98, 0x4c, 0x97,
+ 0x0e, 0x65, 0xba, 0x6b, 0x51, 0x0f, 0x9e, 0x3b, 0x7e, 0x11, 0x06, 0xd6, 0xfa, 0x8d, 0x14, 0x9c,
+ 0x1a, 0xde, 0x29, 0x0e, 0xb5, 0xe1, 0x19, 0x18, 0xed, 0x62, 0x6f, 0xdf, 0x12, 0xdd, 0xd2, 0x47,
+ 0x87, 0xd4, 0x60, 0x32, 0x1c, 0x5d, 0x6c, 0x8e, 0x0a, 0x16, 0xf1, 0xcc, 0x71, 0xed, 0x1e, 0xb3,
+ 0x66, 0xc0, 0xd2, 0xcf, 0xa5, 0xe1, 0x81, 0xa1, 0xe4, 0x43, 0x0d, 0x7d, 0x08, 0x40, 0x37, 0xed,
+ 0x9e, 0xc7, 0x3a, 0x22, 0x96, 0x60, 0x0b, 0x54, 0x42, 0x93, 0x17, 0x49, 0x9e, 0x3d, 0xcf, 0x1f,
+ 0xcf, 0xd0, 0x71, 0x60, 0x22, 0xaa, 0x70, 0xa5, 0x6f, 0x68, 0x96, 0x1a, 0x5a, 0x3d, 0x66, 0xa6,
+ 0x03, 0x81, 0xf9, 0x71, 0x90, 0x34, 0x43, 0xc7, 0xa6, 0xa7, 0xba, 0x9e, 0x83, 0x51, 0x57, 0x37,
+ 0x3b, 0xb4, 0x82, 0xe4, 0xeb, 0xb9, 0x3d, 0x64, 0xb8, 0x58, 0x99, 0x60, 0xc3, 0x2d, 0x31, 0x4a,
+ 0x10, 0x34, 0x80, 0x9c, 0x00, 0x62, 0x34, 0x84, 0x60, 0xc3, 0x3e, 0xa2, 0xf6, 0x2b, 0x05, 0x28,
+ 0x06, 0xfa, 0x6a, 0xf9, 0x1c, 0x94, 0x6e, 0xa0, 0x9b, 0x48, 0x15, 0x67, 0x25, 0xe6, 0x89, 0x22,
+ 0x91, 0x6d, 0xf1, 0xf3, 0xd2, 0xc7, 0x61, 0x9a, 0xaa, 0x58, 0x3d, 0x0f, 0x3b, 0xaa, 0x66, 0x20,
+ 0xd7, 0xa5, 0x4e, 0xcb, 0x53, 0x55, 0x99, 0x8c, 0x6d, 0x92, 0xa1, 0x25, 0x31, 0x22, 0x5f, 0x82,
+ 0x29, 0x8a, 0xe8, 0xf6, 0x0c, 0x4f, 0xb7, 0x0d, 0xac, 0x92, 0xd3, 0x9b, 0x4b, 0x2b, 0x89, 0x6f,
+ 0xd9, 0x24, 0xd1, 0x58, 0xe7, 0x0a, 0xc4, 0x22, 0x57, 0x5e, 0x86, 0x87, 0x28, 0xac, 0x83, 0x4d,
+ 0xec, 0x20, 0x0f, 0xab, 0xf8, 0xb3, 0x3d, 0x64, 0xb8, 0x2a, 0x32, 0xdb, 0xea, 0x3e, 0x72, 0xf7,
+ 0x2b, 0xd3, 0x84, 0x60, 0x31, 0x5d, 0x49, 0x29, 0x67, 0x88, 0xe2, 0x0a, 0xd7, 0x6b, 0x52, 0xb5,
+ 0x86, 0xd9, 0xfe, 0x24, 0x72, 0xf7, 0xe5, 0x3a, 0x9c, 0xa2, 0x2c, 0xae, 0xe7, 0xe8, 0x66, 0x47,
+ 0xd5, 0xf6, 0xb1, 0x76, 0xa0, 0xf6, 0xbc, 0xbd, 0x2b, 0x95, 0x07, 0x83, 0xef, 0xa7, 0x16, 0xb6,
+ 0xa8, 0xce, 0x12, 0x51, 0xd9, 0xf1, 0xf6, 0xae, 0xc8, 0x2d, 0x28, 0x91, 0xc5, 0xe8, 0xea, 0xb7,
+ 0xb1, 0xba, 0x67, 0x39, 0xb4, 0x34, 0x96, 0x87, 0xa4, 0xa6, 0x80, 0x07, 0xe7, 0x37, 0x39, 0x60,
+ 0xdd, 0x6a, 0xe3, 0x7a, 0xae, 0xb5, 0xd5, 0x6c, 0x2e, 0x2b, 0x45, 0xc1, 0x72, 0xdd, 0x72, 0x48,
+ 0x40, 0x75, 0x2c, 0xdf, 0xc1, 0x45, 0x16, 0x50, 0x1d, 0x4b, 0xb8, 0xf7, 0x12, 0x4c, 0x69, 0x1a,
+ 0x9b, 0xb3, 0xae, 0xa9, 0xfc, 0x8c, 0xe5, 0x56, 0xa4, 0x90, 0xb3, 0x34, 0x6d, 0x85, 0x29, 0xf0,
+ 0x18, 0x77, 0xe5, 0xab, 0xf0, 0x40, 0xdf, 0x59, 0x41, 0xe0, 0xe4, 0xc0, 0x2c, 0xa3, 0xd0, 0x4b,
+ 0x30, 0x65, 0x1f, 0x0e, 0x02, 0xe5, 0xd0, 0x1b, 0xed, 0xc3, 0x28, 0xec, 0x69, 0x98, 0xb6, 0xf7,
+ 0xed, 0x41, 0xdc, 0x13, 0x41, 0x9c, 0x6c, 0xef, 0xdb, 0x51, 0xe0, 0xa3, 0xf4, 0xc0, 0xed, 0x60,
+ 0x0d, 0x79, 0xb8, 0x5d, 0x39, 0x1d, 0x54, 0x0f, 0x0c, 0xc8, 0x0b, 0x20, 0x69, 0x9a, 0x8a, 0x4d,
+ 0xb4, 0x6b, 0x60, 0x15, 0x39, 0xd8, 0x44, 0x6e, 0xe5, 0x6c, 0x50, 0xb9, 0xac, 0x69, 0x4d, 0x3a,
+ 0xda, 0xa0, 0x83, 0xf2, 0x13, 0x30, 0x69, 0xed, 0xde, 0xd0, 0x58, 0x48, 0xaa, 0xb6, 0x83, 0xf7,
+ 0xf4, 0x97, 0x2b, 0x8f, 0x50, 0xff, 0x4e, 0x90, 0x01, 0x1a, 0x90, 0x5b, 0x54, 0x2c, 0x3f, 0x0e,
+ 0x92, 0xe6, 0xee, 0x23, 0xc7, 0xa6, 0x39, 0xd9, 0xb5, 0x91, 0x86, 0x2b, 0x8f, 0x32, 0x55, 0x26,
+ 0xdf, 0x10, 0x62, 0xb2, 0x25, 0xdc, 0x5b, 0xfa, 0x9e, 0x27, 0x18, 0x1f, 0x63, 0x5b, 0x82, 0xca,
+ 0x38, 0xdb, 0x1c, 0x48, 0xc4, 0x15, 0xa1, 0x17, 0xcf, 0x51, 0xb5, 0xb2, 0xbd, 0x6f, 0x07, 0xdf,
+ 0xfb, 0x30, 0x8c, 0x13, 0xcd, 0xfe, 0x4b, 0x1f, 0x67, 0x0d, 0x99, 0xbd, 0x1f, 0x78, 0xe3, 0x45,
+ 0x38, 0x45, 0x94, 0xba, 0xd8, 0x43, 0x6d, 0xe4, 0xa1, 0x80, 0xf6, 0xc7, 0xa8, 0x36, 0xf1, 0xfb,
+ 0x3a, 0x1f, 0x0c, 0xd9, 0xe9, 0xf4, 0x76, 0x0f, 0xfd, 0xc8, 0x7a, 0x8a, 0xd9, 0x49, 0x64, 0x22,
+ 0xb6, 0x3e, 0xb0, 0xa6, 0xbb, 0x56, 0x87, 0x52, 0x30, 0xf0, 0xe5, 0x02, 0xb0, 0xd0, 0x97, 0x52,
+ 0xa4, 0x0b, 0x5a, 0xda, 0x5c, 0x26, 0xfd, 0xcb, 0x4b, 0x4d, 0x29, 0x4d, 0xfa, 0xa8, 0xb5, 0xd5,
+ 0xed, 0xa6, 0xaa, 0xec, 0x6c, 0x6c, 0xaf, 0xae, 0x37, 0xa5, 0x4c, 0xb0, 0x61, 0xff, 0x5e, 0x1a,
+ 0xca, 0xe1, 0xb3, 0x97, 0xfc, 0xff, 0xe0, 0xb4, 0xb8, 0x28, 0x71, 0xb1, 0xa7, 0xde, 0xd2, 0x1d,
+ 0xba, 0x17, 0xbb, 0x88, 0xd5, 0x45, 0x3f, 0x1a, 0xa6, 0xb9, 0x56, 0x0b, 0x7b, 0xcf, 0xeb, 0x0e,
+ 0xd9, 0x69, 0x5d, 0xe4, 0xc9, 0x6b, 0x70, 0xd6, 0xb4, 0x54, 0xd7, 0x43, 0x66, 0x1b, 0x39, 0x6d,
+ 0xb5, 0x7f, 0x45, 0xa5, 0x22, 0x4d, 0xc3, 0xae, 0x6b, 0xb1, 0x1a, 0xe8, 0xb3, 0x7c, 0xc4, 0xb4,
+ 0x5a, 0x5c, 0xb9, 0x5f, 0x1c, 0x1a, 0x5c, 0x35, 0x12, 0xb9, 0x99, 0xe3, 0x22, 0xf7, 0x41, 0x28,
+ 0x74, 0x91, 0xad, 0x62, 0xd3, 0x73, 0x0e, 0x69, 0xc7, 0x9d, 0x57, 0xf2, 0x5d, 0x64, 0x37, 0xc9,
+ 0xf3, 0x87, 0x73, 0xf0, 0xf9, 0xe7, 0x0c, 0x94, 0x82, 0x5d, 0x37, 0x39, 0xc4, 0x68, 0xb4, 0x40,
+ 0xa5, 0x68, 0x0a, 0x7b, 0xf8, 0xbe, 0x3d, 0xfa, 0xfc, 0x12, 0xa9, 0x5c, 0xf5, 0x51, 0xd6, 0x0b,
+ 0x2b, 0x0c, 0x49, 0xba, 0x06, 0x12, 0x5a, 0x98, 0xf5, 0x1e, 0x79, 0x85, 0x3f, 0xc9, 0x2b, 0x30,
+ 0x7a, 0xc3, 0xa5, 0xdc, 0xa3, 0x94, 0xfb, 0x91, 0xfb, 0x73, 0x3f, 0xd7, 0xa2, 0xe4, 0x85, 0xe7,
+ 0x5a, 0xea, 0xc6, 0xa6, 0xb2, 0xde, 0x58, 0x53, 0x38, 0x5c, 0x3e, 0x03, 0x59, 0x03, 0xdd, 0x3e,
+ 0x0c, 0xd7, 0x38, 0x2a, 0x4a, 0xea, 0xf8, 0x33, 0x90, 0xbd, 0x85, 0xd1, 0x41, 0xb8, 0xb2, 0x50,
+ 0xd1, 0x07, 0x18, 0xfa, 0x0b, 0x90, 0xa3, 0xfe, 0x92, 0x01, 0xb8, 0xc7, 0xa4, 0x11, 0x39, 0x0f,
+ 0xd9, 0xa5, 0x4d, 0x85, 0x84, 0xbf, 0x04, 0x25, 0x26, 0x55, 0xb7, 0x56, 0x9b, 0x4b, 0x4d, 0x29,
+ 0x5d, 0xbb, 0x04, 0xa3, 0xcc, 0x09, 0x64, 0x6b, 0xf8, 0x6e, 0x90, 0x46, 0xf8, 0x23, 0xe7, 0x48,
+ 0x89, 0xd1, 0x9d, 0xf5, 0xc5, 0xa6, 0x22, 0xa5, 0x83, 0xcb, 0xeb, 0x42, 0x29, 0xd8, 0x70, 0x7f,
+ 0x38, 0x31, 0xf5, 0xdd, 0x14, 0x14, 0x03, 0x0d, 0x34, 0xe9, 0x7c, 0x90, 0x61, 0x58, 0xb7, 0x54,
+ 0x64, 0xe8, 0xc8, 0xe5, 0x41, 0x01, 0x54, 0xd4, 0x20, 0x92, 0xa4, 0x8b, 0xf6, 0xa1, 0x18, 0xff,
+ 0x7a, 0x0a, 0xa4, 0x68, 0xef, 0x1a, 0x31, 0x30, 0xf5, 0x13, 0x35, 0xf0, 0xb5, 0x14, 0x94, 0xc3,
+ 0x0d, 0x6b, 0xc4, 0xbc, 0x73, 0x3f, 0x51, 0xf3, 0xde, 0x4a, 0xc3, 0x78, 0xa8, 0x4d, 0x4d, 0x6a,
+ 0xdd, 0x67, 0x61, 0x52, 0x6f, 0xe3, 0xae, 0x6d, 0x79, 0xd8, 0xd4, 0x0e, 0x55, 0x03, 0xdf, 0xc4,
+ 0x46, 0xa5, 0x46, 0x13, 0xc5, 0xc2, 0xfd, 0x1b, 0xe1, 0xf9, 0xd5, 0x3e, 0x6e, 0x8d, 0xc0, 0xea,
+ 0x53, 0xab, 0xcb, 0xcd, 0xf5, 0xad, 0xcd, 0xed, 0xe6, 0xc6, 0xd2, 0x8b, 0xea, 0xce, 0xc6, 0x4f,
+ 0x6d, 0x6c, 0x3e, 0xbf, 0xa1, 0x48, 0x7a, 0x44, 0xed, 0x03, 0xdc, 0xea, 0x5b, 0x20, 0x45, 0x8d,
+ 0x92, 0x4f, 0xc3, 0x30, 0xb3, 0xa4, 0x11, 0x79, 0x0a, 0x26, 0x36, 0x36, 0xd5, 0xd6, 0xea, 0x72,
+ 0x53, 0x6d, 0x5e, 0xbf, 0xde, 0x5c, 0xda, 0x6e, 0xb1, 0xab, 0x0d, 0x5f, 0x7b, 0x3b, 0xbc, 0xa9,
+ 0x5f, 0xcd, 0xc0, 0xd4, 0x10, 0x4b, 0xe4, 0x06, 0x3f, 0x94, 0xb0, 0x73, 0xd2, 0x53, 0x49, 0xac,
+ 0x9f, 0x27, 0x5d, 0xc1, 0x16, 0x72, 0x3c, 0x7e, 0x86, 0x79, 0x1c, 0x88, 0x97, 0x4c, 0x4f, 0xdf,
+ 0xd3, 0xb1, 0xc3, 0x6f, 0x82, 0xd8, 0x49, 0x65, 0xa2, 0x2f, 0x67, 0x97, 0x41, 0x1f, 0x03, 0xd9,
+ 0xb6, 0x5c, 0xdd, 0xd3, 0x6f, 0x62, 0x55, 0x37, 0xc5, 0xb5, 0x11, 0x39, 0xb9, 0x64, 0x15, 0x49,
+ 0x8c, 0xac, 0x9a, 0x9e, 0xaf, 0x6d, 0xe2, 0x0e, 0x8a, 0x68, 0x93, 0x04, 0x9e, 0x51, 0x24, 0x31,
+ 0xe2, 0x6b, 0x9f, 0x83, 0x52, 0xdb, 0xea, 0x91, 0x76, 0x8e, 0xe9, 0x91, 0x7a, 0x91, 0x52, 0x8a,
+ 0x4c, 0xe6, 0xab, 0xf0, 0x46, 0xbd, 0x7f, 0x5f, 0x55, 0x52, 0x8a, 0x4c, 0xc6, 0x54, 0x1e, 0x83,
+ 0x09, 0xd4, 0xe9, 0x38, 0x84, 0x5c, 0x10, 0xb1, 0xa3, 0x47, 0xd9, 0x17, 0x53, 0xc5, 0x99, 0xe7,
+ 0x20, 0x2f, 0xfc, 0x40, 0x4a, 0x32, 0xf1, 0x84, 0x6a, 0xb3, 0xf3, 0x74, 0x7a, 0xae, 0xa0, 0xe4,
+ 0x4d, 0x31, 0x78, 0x0e, 0x4a, 0xba, 0xab, 0xf6, 0xaf, 0xdf, 0xd3, 0xb3, 0xe9, 0xb9, 0xbc, 0x52,
+ 0xd4, 0x5d, 0xff, 0xea, 0xb2, 0xf6, 0x46, 0x1a, 0xca, 0xe1, 0xcf, 0x07, 0xf2, 0x32, 0xe4, 0x0d,
+ 0x4b, 0x43, 0x34, 0xb4, 0xd8, 0xb7, 0xab, 0xb9, 0x98, 0x2f, 0x0e, 0xf3, 0x6b, 0x5c, 0x5f, 0xf1,
+ 0x91, 0x33, 0xff, 0x98, 0x82, 0xbc, 0x10, 0xcb, 0xa7, 0x20, 0x6b, 0x23, 0x6f, 0x9f, 0xd2, 0xe5,
+ 0x16, 0xd3, 0x52, 0x4a, 0xa1, 0xcf, 0x44, 0xee, 0xda, 0xc8, 0xa4, 0x21, 0xc0, 0xe5, 0xe4, 0x99,
+ 0xac, 0xab, 0x81, 0x51, 0x9b, 0x9e, 0x6b, 0xac, 0x6e, 0x17, 0x9b, 0x9e, 0x2b, 0xd6, 0x95, 0xcb,
+ 0x97, 0xb8, 0x58, 0x7e, 0x12, 0x26, 0x3d, 0x07, 0xe9, 0x46, 0x48, 0x37, 0x4b, 0x75, 0x25, 0x31,
+ 0xe0, 0x2b, 0xd7, 0xe1, 0x8c, 0xe0, 0x6d, 0x63, 0x0f, 0x69, 0xfb, 0xb8, 0xdd, 0x07, 0x8d, 0xd2,
+ 0xfb, 0x8b, 0xd3, 0x5c, 0x61, 0x99, 0x8f, 0x0b, 0x6c, 0xed, 0x07, 0x29, 0x98, 0x14, 0x27, 0xb1,
+ 0xb6, 0xef, 0xac, 0x75, 0x00, 0x64, 0x9a, 0x96, 0x17, 0x74, 0xd7, 0x60, 0x28, 0x0f, 0xe0, 0xe6,
+ 0x1b, 0x3e, 0x48, 0x09, 0x10, 0xcc, 0x74, 0x01, 0xfa, 0x23, 0xc7, 0xba, 0xed, 0x2c, 0x14, 0xf9,
+ 0xb7, 0x21, 0xfa, 0x81, 0x91, 0x9d, 0xdd, 0x81, 0x89, 0xc8, 0x91, 0x4d, 0x9e, 0x86, 0xdc, 0x2e,
+ 0xee, 0xe8, 0x26, 0xbf, 0xf1, 0x65, 0x0f, 0xe2, 0x86, 0x25, 0xeb, 0xdf, 0xb0, 0x2c, 0x7e, 0x06,
+ 0xa6, 0x34, 0xab, 0x1b, 0x35, 0x77, 0x51, 0x8a, 0xdc, 0x1f, 0xb8, 0x9f, 0x4c, 0xbd, 0x04, 0xfd,
+ 0x16, 0xf3, 0xbd, 0x54, 0xea, 0xcb, 0xe9, 0xcc, 0xca, 0xd6, 0xe2, 0xd7, 0xd2, 0x33, 0x2b, 0x0c,
+ 0xba, 0x25, 0x66, 0xaa, 0xe0, 0x3d, 0x03, 0x6b, 0xc4, 0x7a, 0xf8, 0xca, 0x93, 0xf0, 0x54, 0x47,
+ 0xf7, 0xf6, 0x7b, 0xbb, 0xf3, 0x9a, 0xd5, 0x5d, 0xe8, 0x58, 0x1d, 0xab, 0xff, 0x4d, 0x95, 0x3c,
+ 0xd1, 0x07, 0xfa, 0x1f, 0xff, 0xae, 0x5a, 0xf0, 0xa5, 0x33, 0xb1, 0x1f, 0x61, 0xeb, 0x1b, 0x30,
+ 0xc5, 0x95, 0x55, 0xfa, 0x61, 0x87, 0x1d, 0x4f, 0xe4, 0xfb, 0x5e, 0x8e, 0x55, 0xbe, 0xf1, 0x36,
+ 0x2d, 0xd7, 0xca, 0x24, 0x87, 0x92, 0x31, 0x76, 0x82, 0xa9, 0x2b, 0xf0, 0x40, 0x88, 0x8f, 0x6d,
+ 0x4d, 0xec, 0xc4, 0x30, 0x7e, 0x8f, 0x33, 0x4e, 0x05, 0x18, 0x5b, 0x1c, 0x5a, 0x5f, 0x82, 0xf1,
+ 0x93, 0x70, 0xfd, 0x3d, 0xe7, 0x2a, 0xe1, 0x20, 0xc9, 0x0a, 0x4c, 0x50, 0x12, 0xad, 0xe7, 0x7a,
+ 0x56, 0x97, 0xe6, 0xbd, 0xfb, 0xd3, 0xfc, 0xc3, 0xdb, 0x6c, 0xaf, 0x94, 0x09, 0x6c, 0xc9, 0x47,
+ 0xd5, 0xeb, 0x40, 0xbf, 0x65, 0xb5, 0xb1, 0x66, 0xc4, 0x30, 0xbc, 0xc9, 0x0d, 0xf1, 0xf5, 0xeb,
+ 0x9f, 0x86, 0x69, 0xf2, 0x3f, 0x4d, 0x4b, 0x41, 0x4b, 0xe2, 0x6f, 0xd2, 0x2a, 0x3f, 0x78, 0x85,
+ 0x6d, 0xc7, 0x29, 0x9f, 0x20, 0x60, 0x53, 0x60, 0x15, 0x3b, 0xd8, 0xf3, 0xb0, 0xe3, 0xaa, 0xc8,
+ 0x18, 0x66, 0x5e, 0xe0, 0x2a, 0xa2, 0xf2, 0x85, 0x77, 0xc2, 0xab, 0xb8, 0xc2, 0x90, 0x0d, 0xc3,
+ 0xa8, 0xef, 0xc0, 0xe9, 0x21, 0x51, 0x91, 0x80, 0xf3, 0x55, 0xce, 0x39, 0x3d, 0x10, 0x19, 0x84,
+ 0x76, 0x0b, 0x84, 0xdc, 0x5f, 0xcb, 0x04, 0x9c, 0xbf, 0xc7, 0x39, 0x65, 0x8e, 0x15, 0x4b, 0x4a,
+ 0x18, 0x9f, 0x83, 0xc9, 0x9b, 0xd8, 0xd9, 0xb5, 0x5c, 0x7e, 0xfd, 0x93, 0x80, 0xee, 0x35, 0x4e,
+ 0x37, 0xc1, 0x81, 0xf4, 0x3e, 0x88, 0x70, 0x5d, 0x85, 0xfc, 0x1e, 0xd2, 0x70, 0x02, 0x8a, 0x2f,
+ 0x72, 0x8a, 0x31, 0xa2, 0x4f, 0xa0, 0x0d, 0x28, 0x75, 0x2c, 0x5e, 0x99, 0xe2, 0xe1, 0xaf, 0x73,
+ 0x78, 0x51, 0x60, 0x38, 0x85, 0x6d, 0xd9, 0x3d, 0x83, 0x94, 0xad, 0x78, 0x8a, 0xdf, 0x17, 0x14,
+ 0x02, 0xc3, 0x29, 0x4e, 0xe0, 0xd6, 0x3f, 0x10, 0x14, 0x6e, 0xc0, 0x9f, 0xcf, 0x42, 0xd1, 0x32,
+ 0x8d, 0x43, 0xcb, 0x4c, 0x62, 0xc4, 0x97, 0x38, 0x03, 0x70, 0x08, 0x21, 0xb8, 0x06, 0x85, 0xa4,
+ 0x0b, 0xf1, 0x47, 0xef, 0x88, 0xed, 0x21, 0x56, 0x60, 0x05, 0x26, 0x44, 0x82, 0xd2, 0x2d, 0x33,
+ 0x01, 0xc5, 0x57, 0x38, 0x45, 0x39, 0x00, 0xe3, 0xd3, 0xf0, 0xb0, 0xeb, 0x75, 0x70, 0x12, 0x92,
+ 0x37, 0xc4, 0x34, 0x38, 0x84, 0xbb, 0x72, 0x17, 0x9b, 0xda, 0x7e, 0x32, 0x86, 0xaf, 0x0a, 0x57,
+ 0x0a, 0x0c, 0xa1, 0x58, 0x82, 0xf1, 0x2e, 0x72, 0xdc, 0x7d, 0x64, 0x24, 0x5a, 0x8e, 0x3f, 0xe6,
+ 0x1c, 0x25, 0x1f, 0xc4, 0x3d, 0xd2, 0x33, 0x4f, 0x42, 0xf3, 0x35, 0xe1, 0x91, 0x00, 0x8c, 0x6f,
+ 0x3d, 0xd7, 0xa3, 0x77, 0x65, 0x27, 0x61, 0xfb, 0x13, 0xb1, 0xf5, 0x18, 0x76, 0x3d, 0xc8, 0x78,
+ 0x0d, 0x0a, 0xae, 0x7e, 0x3b, 0x11, 0xcd, 0x9f, 0x8a, 0x95, 0xa6, 0x00, 0x02, 0x7e, 0x11, 0xce,
+ 0x0c, 0x2d, 0x13, 0x09, 0xc8, 0xfe, 0x8c, 0x93, 0x9d, 0x1a, 0x52, 0x2a, 0x78, 0x4a, 0x38, 0x29,
+ 0xe5, 0x9f, 0x8b, 0x94, 0x80, 0x23, 0x5c, 0x5b, 0xe4, 0xac, 0xe0, 0xa2, 0xbd, 0x93, 0x79, 0xed,
+ 0x2f, 0x84, 0xd7, 0x18, 0x36, 0xe4, 0xb5, 0x6d, 0x38, 0xc5, 0x19, 0x4f, 0xb6, 0xae, 0x5f, 0x17,
+ 0x89, 0x95, 0xa1, 0x77, 0xc2, 0xab, 0xfb, 0x19, 0x98, 0xf1, 0xdd, 0x29, 0x9a, 0x52, 0x57, 0xed,
+ 0x22, 0x3b, 0x01, 0xf3, 0x37, 0x38, 0xb3, 0xc8, 0xf8, 0x7e, 0x57, 0xeb, 0xae, 0x23, 0x9b, 0x90,
+ 0xbf, 0x00, 0x15, 0x41, 0xde, 0x33, 0x1d, 0xac, 0x59, 0x1d, 0x53, 0xbf, 0x8d, 0xdb, 0x09, 0xa8,
+ 0xff, 0x32, 0xb2, 0x54, 0x3b, 0x01, 0x38, 0x61, 0x5e, 0x05, 0xc9, 0xef, 0x55, 0x54, 0xbd, 0x6b,
+ 0x5b, 0x8e, 0x17, 0xc3, 0xf8, 0x57, 0x62, 0xa5, 0x7c, 0xdc, 0x2a, 0x85, 0xd5, 0x9b, 0x50, 0xa6,
+ 0x8f, 0x49, 0x43, 0xf2, 0xaf, 0x39, 0xd1, 0x78, 0x1f, 0xc5, 0x13, 0x87, 0x66, 0x75, 0x6d, 0xe4,
+ 0x24, 0xc9, 0x7f, 0xdf, 0x14, 0x89, 0x83, 0x43, 0x78, 0xe2, 0xf0, 0x0e, 0x6d, 0x4c, 0xaa, 0x7d,
+ 0x02, 0x86, 0x6f, 0x89, 0xc4, 0x21, 0x30, 0x9c, 0x42, 0x34, 0x0c, 0x09, 0x28, 0xfe, 0x46, 0x50,
+ 0x08, 0x0c, 0xa1, 0xf8, 0x54, 0xbf, 0xd0, 0x3a, 0xb8, 0xa3, 0xbb, 0x9e, 0xc3, 0x5a, 0xe1, 0xfb,
+ 0x53, 0x7d, 0xfb, 0x9d, 0x70, 0x13, 0xa6, 0x04, 0xa0, 0x24, 0x13, 0xf1, 0x2b, 0x54, 0x7a, 0x52,
+ 0x8a, 0x37, 0xec, 0x3b, 0x22, 0x13, 0x05, 0x60, 0xc4, 0xb6, 0x40, 0x87, 0x48, 0xdc, 0xae, 0x91,
+ 0xf3, 0x41, 0x02, 0xba, 0xef, 0x46, 0x8c, 0x6b, 0x09, 0x2c, 0xe1, 0x0c, 0xf4, 0x3f, 0x3d, 0xf3,
+ 0x00, 0x1f, 0x26, 0x8a, 0xce, 0xbf, 0x8d, 0xf4, 0x3f, 0x3b, 0x0c, 0xc9, 0x72, 0xc8, 0x44, 0xa4,
+ 0x9f, 0x92, 0xe3, 0x7e, 0x05, 0x54, 0xf9, 0xb9, 0x7b, 0x7c, 0xbe, 0xe1, 0x76, 0xaa, 0xbe, 0x46,
+ 0x82, 0x3c, 0xdc, 0xf4, 0xc4, 0x93, 0xbd, 0x72, 0xcf, 0x8f, 0xf3, 0x50, 0xcf, 0x53, 0xbf, 0x0e,
+ 0xe3, 0xa1, 0x86, 0x27, 0x9e, 0xea, 0xe7, 0x39, 0x55, 0x29, 0xd8, 0xef, 0xd4, 0x2f, 0x41, 0x96,
+ 0x34, 0x2f, 0xf1, 0xf0, 0x5f, 0xe0, 0x70, 0xaa, 0x5e, 0xff, 0x04, 0xe4, 0x45, 0xd3, 0x12, 0x0f,
+ 0xfd, 0x45, 0x0e, 0xf5, 0x21, 0x04, 0x2e, 0x1a, 0x96, 0x78, 0xf8, 0x2f, 0x09, 0xb8, 0x80, 0x10,
+ 0x78, 0x72, 0x17, 0xfe, 0xdd, 0x2f, 0x67, 0x79, 0xd1, 0x11, 0xbe, 0xbb, 0x06, 0x63, 0xbc, 0x53,
+ 0x89, 0x47, 0x7f, 0x8e, 0xbf, 0x5c, 0x20, 0xea, 0x4f, 0x43, 0x2e, 0xa1, 0xc3, 0x7f, 0x95, 0x43,
+ 0x99, 0x7e, 0x7d, 0x09, 0x8a, 0x81, 0xee, 0x24, 0x1e, 0xfe, 0x6b, 0x1c, 0x1e, 0x44, 0x11, 0xd3,
+ 0x79, 0x77, 0x12, 0x4f, 0xf0, 0xeb, 0xc2, 0x74, 0x8e, 0x20, 0x6e, 0x13, 0x8d, 0x49, 0x3c, 0xfa,
+ 0x37, 0x84, 0xd7, 0x05, 0xa4, 0xfe, 0x2c, 0x14, 0xfc, 0x62, 0x13, 0x8f, 0xff, 0x4d, 0x8e, 0xef,
+ 0x63, 0x88, 0x07, 0x02, 0xc5, 0x2e, 0x9e, 0xe2, 0xb7, 0x84, 0x07, 0x02, 0x28, 0xb2, 0x8d, 0xa2,
+ 0x0d, 0x4c, 0x3c, 0xd3, 0x6f, 0x8b, 0x6d, 0x14, 0xe9, 0x5f, 0xc8, 0x6a, 0xd2, 0x9c, 0x1f, 0x4f,
+ 0xf1, 0x3b, 0x62, 0x35, 0xa9, 0x3e, 0x31, 0x23, 0xda, 0x11, 0xc4, 0x73, 0xfc, 0xae, 0x30, 0x23,
+ 0xd2, 0x10, 0xd4, 0xb7, 0x40, 0x1e, 0xec, 0x06, 0xe2, 0xf9, 0x3e, 0xcf, 0xf9, 0x26, 0x07, 0x9a,
+ 0x81, 0xfa, 0xf3, 0x70, 0x6a, 0x78, 0x27, 0x10, 0xcf, 0xfa, 0x85, 0x7b, 0x91, 0xb3, 0x5b, 0xb0,
+ 0x11, 0xa8, 0x6f, 0xf7, 0x4b, 0x4a, 0xb0, 0x0b, 0x88, 0xa7, 0x7d, 0xf5, 0x5e, 0x38, 0x71, 0x07,
+ 0x9b, 0x80, 0x7a, 0x03, 0xa0, 0x5f, 0x80, 0xe3, 0xb9, 0x5e, 0xe3, 0x5c, 0x01, 0x10, 0xd9, 0x1a,
+ 0xbc, 0xfe, 0xc6, 0xe3, 0xbf, 0x28, 0xb6, 0x06, 0x47, 0x90, 0xad, 0x21, 0x4a, 0x6f, 0x3c, 0xfa,
+ 0x75, 0xb1, 0x35, 0x04, 0x84, 0x44, 0x76, 0xa0, 0xba, 0xc5, 0x33, 0x7c, 0x49, 0x44, 0x76, 0x00,
+ 0x55, 0xdf, 0x80, 0xc9, 0x81, 0x82, 0x18, 0x4f, 0xf5, 0x65, 0x4e, 0x25, 0x45, 0xeb, 0x61, 0xb0,
+ 0x78, 0xf1, 0x62, 0x18, 0xcf, 0xf6, 0x87, 0x91, 0xe2, 0xc5, 0x6b, 0x61, 0xfd, 0x1a, 0xe4, 0xcd,
+ 0x9e, 0x61, 0x90, 0xcd, 0x23, 0xdf, 0xff, 0x97, 0x7b, 0x95, 0x7f, 0x7d, 0x9f, 0x7b, 0x47, 0x00,
+ 0xea, 0x97, 0x20, 0x87, 0xbb, 0xbb, 0xb8, 0x1d, 0x87, 0xfc, 0xb7, 0xf7, 0x45, 0xc2, 0x24, 0xda,
+ 0xf5, 0x67, 0x01, 0xd8, 0xd5, 0x08, 0xfd, 0xec, 0x17, 0x83, 0xfd, 0xf7, 0xf7, 0xf9, 0x6f, 0x6a,
+ 0xfa, 0x90, 0x3e, 0x01, 0xfb, 0x85, 0xce, 0xfd, 0x09, 0xde, 0x09, 0x13, 0xd0, 0x15, 0xb9, 0x0a,
+ 0x63, 0x37, 0x5c, 0xcb, 0xf4, 0x50, 0x27, 0x0e, 0xfd, 0x1f, 0x1c, 0x2d, 0xf4, 0x89, 0xc3, 0xba,
+ 0x96, 0x83, 0x3d, 0xd4, 0x71, 0xe3, 0xb0, 0xff, 0xc9, 0xb1, 0x3e, 0x80, 0x80, 0x35, 0xe4, 0x7a,
+ 0x49, 0xe6, 0xfd, 0x5f, 0x02, 0x2c, 0x00, 0xc4, 0x68, 0xf2, 0xff, 0x01, 0x3e, 0x8c, 0xc3, 0xbe,
+ 0x2b, 0x8c, 0xe6, 0xfa, 0xf5, 0x4f, 0x40, 0x81, 0xfc, 0xcb, 0x7e, 0x28, 0x17, 0x03, 0xfe, 0x6f,
+ 0x0e, 0xee, 0x23, 0xc8, 0x9b, 0x5d, 0xaf, 0xed, 0xe9, 0xf1, 0xce, 0xfe, 0x1f, 0xbe, 0xd2, 0x42,
+ 0xbf, 0xde, 0x80, 0xa2, 0xeb, 0xb5, 0xdb, 0x3d, 0xde, 0x9f, 0xc6, 0xc0, 0xff, 0xf7, 0x7d, 0xff,
+ 0xca, 0xc2, 0xc7, 0x90, 0xd5, 0xbe, 0x75, 0xe0, 0xd9, 0x16, 0xfd, 0xcc, 0x11, 0xc7, 0x70, 0x8f,
+ 0x33, 0x04, 0x20, 0x8b, 0xcd, 0xe1, 0xd7, 0xb7, 0xb0, 0x62, 0xad, 0x58, 0xec, 0xe2, 0xf6, 0xa5,
+ 0x5a, 0xfc, 0x0d, 0x2c, 0x7c, 0x33, 0x03, 0x33, 0x9a, 0xd5, 0xdd, 0xb5, 0xdc, 0x05, 0x3f, 0x1d,
+ 0x2f, 0x74, 0x91, 0xcd, 0x6f, 0x65, 0x8b, 0x5d, 0x64, 0xf3, 0xdf, 0xd5, 0xba, 0x33, 0x27, 0xbb,
+ 0xd1, 0xad, 0xfd, 0x2c, 0x8c, 0xad, 0x23, 0x7b, 0x1b, 0xbb, 0x9e, 0x4c, 0x7d, 0x4d, 0x7f, 0xc0,
+ 0xc5, 0xaf, 0xc9, 0x67, 0xe7, 0x03, 0xc4, 0xf3, 0x5c, 0x6d, 0xbe, 0xe5, 0x39, 0x2d, 0xcf, 0xa1,
+ 0x3f, 0x29, 0x50, 0x46, 0x5d, 0xfa, 0x30, 0x73, 0x15, 0x8a, 0x01, 0xb1, 0x2c, 0x41, 0xe6, 0x00,
+ 0x1f, 0xf2, 0x9f, 0x70, 0x91, 0x7f, 0xe5, 0xe9, 0xfe, 0x6f, 0x2c, 0x89, 0x8c, 0x3d, 0xd4, 0xd3,
+ 0x57, 0x52, 0xb5, 0x67, 0x60, 0xec, 0x3a, 0x3a, 0xc0, 0xeb, 0xc8, 0x96, 0x2f, 0xc0, 0x18, 0x36,
+ 0x3d, 0x47, 0xc7, 0x2e, 0x37, 0xe0, 0x4c, 0xc8, 0x00, 0xae, 0xc6, 0xde, 0x2c, 0x34, 0x6b, 0x6b,
+ 0x50, 0x0a, 0x0e, 0x24, 0x7d, 0x37, 0x91, 0x5a, 0xde, 0x3e, 0xff, 0xcd, 0x75, 0x41, 0x61, 0x0f,
+ 0x8b, 0xcb, 0x6f, 0xde, 0xad, 0x8e, 0x7c, 0xff, 0x6e, 0x75, 0xe4, 0x9f, 0xee, 0x56, 0x47, 0xde,
+ 0xba, 0x5b, 0x4d, 0xbd, 0x7b, 0xb7, 0x9a, 0x7a, 0xef, 0x6e, 0x35, 0x75, 0xe7, 0xa8, 0x9a, 0xfa,
+ 0xea, 0x51, 0x35, 0xf5, 0xf5, 0xa3, 0x6a, 0xea, 0xdb, 0x47, 0xd5, 0xd4, 0x9b, 0x47, 0xd5, 0xd4,
+ 0xf7, 0x8f, 0xaa, 0x23, 0x6f, 0x1d, 0x55, 0x53, 0x3f, 0x3a, 0xaa, 0x8e, 0xbc, 0x7b, 0x54, 0x4d,
+ 0xbd, 0x77, 0x54, 0x1d, 0xb9, 0xf3, 0xc3, 0xea, 0xc8, 0xee, 0x28, 0xf5, 0xed, 0x85, 0xff, 0x0b,
+ 0x00, 0x00, 0xff, 0xff, 0xcc, 0x07, 0xa8, 0x95, 0xac, 0x34, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -1066,29 +1095,3 @@ func valueToStringMap(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
-
-func init() { proto.RegisterFile("combos/marshaler/map.proto", fileDescriptor_map_65406068076b05e6) }
-
-var fileDescriptor_map_65406068076b05e6 = []byte{
- // 315 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0x3f, 0x4f, 0x3a, 0x31,
- 0x18, 0xc7, 0xfb, 0x40, 0x7e, 0x5c, 0x7e, 0xc5, 0xc1, 0x5c, 0x1c, 0x4e, 0x86, 0x27, 0x84, 0x89,
- 0xc5, 0xbb, 0x44, 0x16, 0x71, 0x70, 0x30, 0xea, 0x24, 0x0b, 0xb8, 0x9b, 0x1e, 0x96, 0x3f, 0x81,
- 0xa3, 0x97, 0xb6, 0x67, 0xc2, 0x24, 0x2f, 0xc7, 0xd1, 0xd1, 0x97, 0xc0, 0xc8, 0xe8, 0x48, 0xeb,
- 0xe2, 0xc8, 0xc8, 0x68, 0xe8, 0x9d, 0xc9, 0xb9, 0xb9, 0x3d, 0x9f, 0x6f, 0x3f, 0xed, 0xf3, 0x4d,
- 0x69, 0x63, 0x28, 0x92, 0x58, 0xa8, 0x28, 0x61, 0x52, 0x4d, 0xd8, 0x9c, 0xcb, 0x28, 0x61, 0x69,
- 0x98, 0x4a, 0xa1, 0x85, 0x5f, 0x4f, 0x58, 0xfa, 0xc4, 0x47, 0x2c, 0x9b, 0x6b, 0xd5, 0x38, 0x1b,
- 0x4f, 0xf5, 0x24, 0x8b, 0xc3, 0xa1, 0x48, 0xa2, 0xb1, 0x18, 0x8b, 0xc8, 0x39, 0x71, 0x36, 0x72,
- 0xe4, 0xc0, 0x4d, 0xf9, 0xdd, 0xd6, 0x0b, 0xf5, 0x7a, 0x2c, 0x7d, 0xe0, 0x4a, 0xfb, 0x5d, 0xea,
- 0x29, 0x2d, 0x1f, 0x95, 0x96, 0x01, 0x34, 0xab, 0xed, 0xfa, 0x79, 0x33, 0x2c, 0x3d, 0x1c, 0x16,
- 0x5a, 0x38, 0xd0, 0x72, 0xa0, 0xe5, 0xed, 0x42, 0xcb, 0x65, 0xbf, 0xa6, 0x1c, 0x34, 0xba, 0xb4,
- 0x5e, 0x8a, 0xfd, 0x63, 0x5a, 0x9d, 0xf1, 0x65, 0x00, 0x4d, 0x68, 0xff, 0xef, 0x1f, 0x46, 0xff,
- 0x84, 0xfe, 0x7b, 0x66, 0xf3, 0x8c, 0x07, 0x15, 0x97, 0xe5, 0x70, 0x59, 0xb9, 0x80, 0xd6, 0x15,
- 0xf5, 0xee, 0xd8, 0x8c, 0xf7, 0x58, 0xea, 0x77, 0xa8, 0xc7, 0x17, 0x5a, 0x4e, 0xb9, 0x2a, 0x0a,
- 0x9c, 0xfe, 0x2a, 0x50, 0x68, 0xf9, 0xe6, 0x1f, 0xb3, 0x75, 0x4f, 0x8f, 0xca, 0x07, 0x7f, 0xdd,
- 0x7d, 0x48, 0x85, 0x9e, 0x70, 0x19, 0x54, 0xf3, 0xd4, 0xc1, 0xf5, 0xcd, 0xda, 0x20, 0xd9, 0x18,
- 0x24, 0x1f, 0x06, 0xc9, 0xd6, 0x20, 0xec, 0x0c, 0xc2, 0xde, 0x20, 0xac, 0x2c, 0xc2, 0xab, 0x45,
- 0x78, 0xb3, 0x08, 0xef, 0x16, 0x61, 0x6d, 0x11, 0x36, 0x16, 0xc9, 0xd6, 0x22, 0x7c, 0x59, 0x24,
- 0x3b, 0x8b, 0xb0, 0xb7, 0x48, 0x56, 0x9f, 0x48, 0xe2, 0x9a, 0xfb, 0xdb, 0xce, 0x77, 0x00, 0x00,
- 0x00, 0xff, 0xff, 0xde, 0x50, 0x18, 0x62, 0xb5, 0x01, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map.pb.go b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map.pb.go
index 3a6cd46dc7..57bbf669c0 100644
--- a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map.pb.go
@@ -3,20 +3,20 @@
package mapdefaults
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -39,7 +39,7 @@ type MapTest struct {
func (m *MapTest) Reset() { *m = MapTest{} }
func (*MapTest) ProtoMessage() {}
func (*MapTest) Descriptor() ([]byte, []int) {
- return fileDescriptor_map_f8afe0c559a577e0, []int{0}
+ return fileDescriptor_8cd5e5326d33da91, []int{0}
}
func (m *MapTest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MapTest.Unmarshal(m, b)
@@ -47,8 +47,8 @@ func (m *MapTest) XXX_Unmarshal(b []byte) error {
func (m *MapTest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MapTest.Marshal(b, m, deterministic)
}
-func (dst *MapTest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MapTest.Merge(dst, src)
+func (m *MapTest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MapTest.Merge(m, src)
}
func (m *MapTest) XXX_Size() int {
return xxx_messageInfo_MapTest.Size(m)
@@ -69,7 +69,7 @@ type FakeMap struct {
func (m *FakeMap) Reset() { *m = FakeMap{} }
func (*FakeMap) ProtoMessage() {}
func (*FakeMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_map_f8afe0c559a577e0, []int{1}
+ return fileDescriptor_8cd5e5326d33da91, []int{1}
}
func (m *FakeMap) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FakeMap.Unmarshal(m, b)
@@ -77,8 +77,8 @@ func (m *FakeMap) XXX_Unmarshal(b []byte) error {
func (m *FakeMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FakeMap.Marshal(b, m, deterministic)
}
-func (dst *FakeMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FakeMap.Merge(dst, src)
+func (m *FakeMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FakeMap.Merge(m, src)
}
func (m *FakeMap) XXX_Size() int {
return xxx_messageInfo_FakeMap.Size(m)
@@ -101,7 +101,7 @@ type FakeMapEntry struct {
func (m *FakeMapEntry) Reset() { *m = FakeMapEntry{} }
func (*FakeMapEntry) ProtoMessage() {}
func (*FakeMapEntry) Descriptor() ([]byte, []int) {
- return fileDescriptor_map_f8afe0c559a577e0, []int{2}
+ return fileDescriptor_8cd5e5326d33da91, []int{2}
}
func (m *FakeMapEntry) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FakeMapEntry.Unmarshal(m, b)
@@ -109,8 +109,8 @@ func (m *FakeMapEntry) XXX_Unmarshal(b []byte) error {
func (m *FakeMapEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FakeMapEntry.Marshal(b, m, deterministic)
}
-func (dst *FakeMapEntry) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FakeMapEntry.Merge(dst, src)
+func (m *FakeMapEntry) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FakeMapEntry.Merge(m, src)
}
func (m *FakeMapEntry) XXX_Size() int {
return xxx_messageInfo_FakeMapEntry.Size(m)
@@ -127,6 +127,33 @@ func init() {
proto.RegisterType((*FakeMap)(nil), "mapdefaults.FakeMap")
proto.RegisterType((*FakeMapEntry)(nil), "mapdefaults.FakeMapEntry")
}
+
+func init() { proto.RegisterFile("combos/neither/map.proto", fileDescriptor_8cd5e5326d33da91) }
+
+var fileDescriptor_8cd5e5326d33da91 = []byte{
+ // 313 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0x3f, 0x4f, 0x32, 0x41,
+ 0x10, 0x87, 0x77, 0x20, 0x2f, 0x97, 0x77, 0xb1, 0x30, 0x17, 0x8b, 0x93, 0x62, 0x42, 0xa8, 0x68,
+ 0xbc, 0x4b, 0xa4, 0x11, 0x0b, 0x0b, 0xa3, 0x56, 0xd2, 0x80, 0xbd, 0xd9, 0xc3, 0xe5, 0x4f, 0xe0,
+ 0xd8, 0xcb, 0xee, 0x9e, 0x09, 0x95, 0x7c, 0x1c, 0x4b, 0x4b, 0x3f, 0x02, 0x25, 0xa5, 0x25, 0xbb,
+ 0x36, 0x96, 0x94, 0x94, 0x86, 0xbd, 0x33, 0x39, 0x3b, 0xbb, 0x79, 0x7e, 0xfb, 0xec, 0xcc, 0x64,
+ 0x68, 0x30, 0x14, 0x49, 0x2c, 0x54, 0xb4, 0xe0, 0x53, 0x3d, 0xe1, 0x32, 0x4a, 0x58, 0x1a, 0xa6,
+ 0x52, 0x68, 0xe1, 0xd7, 0x13, 0x96, 0x3e, 0xf1, 0x11, 0xcb, 0xe6, 0x5a, 0x35, 0xce, 0xc6, 0x53,
+ 0x3d, 0xc9, 0xe2, 0x70, 0x28, 0x92, 0x68, 0x2c, 0xc6, 0x22, 0x72, 0x4e, 0x9c, 0x8d, 0x1c, 0x39,
+ 0x70, 0x55, 0xfe, 0xb7, 0xf5, 0x42, 0xbd, 0x1e, 0x4b, 0x1f, 0xb8, 0xd2, 0x7e, 0x97, 0x7a, 0x4a,
+ 0xcb, 0x47, 0xa5, 0x65, 0x00, 0xcd, 0x6a, 0xbb, 0x7e, 0xde, 0x0c, 0x4b, 0x8d, 0xc3, 0x42, 0x0b,
+ 0x07, 0x5a, 0x0e, 0xb4, 0xbc, 0x5d, 0x68, 0xb9, 0xec, 0xd7, 0x94, 0x83, 0x46, 0x97, 0xd6, 0x4b,
+ 0xb1, 0x7f, 0x4c, 0xab, 0x33, 0xbe, 0x0c, 0xa0, 0x09, 0xed, 0xff, 0xfd, 0x43, 0xe9, 0x9f, 0xd0,
+ 0x7f, 0xcf, 0x6c, 0x9e, 0xf1, 0xa0, 0xe2, 0xb2, 0x1c, 0x2e, 0x2b, 0x17, 0xd0, 0xba, 0xa2, 0xde,
+ 0x1d, 0x9b, 0xf1, 0x1e, 0x4b, 0xfd, 0x0e, 0xf5, 0xf8, 0x42, 0xcb, 0x29, 0x57, 0xc5, 0x02, 0xa7,
+ 0xbf, 0x16, 0x28, 0xb4, 0x7c, 0xf2, 0x8f, 0xd9, 0xba, 0xa7, 0x47, 0xe5, 0x87, 0xbf, 0xce, 0x3e,
+ 0xa4, 0xe2, 0x70, 0xc7, 0xa0, 0x9a, 0xa7, 0x0e, 0xae, 0x6f, 0xd6, 0x06, 0xc9, 0xc6, 0x20, 0xf9,
+ 0x30, 0x48, 0xb6, 0x06, 0x61, 0x67, 0x10, 0xf6, 0x06, 0x61, 0x65, 0x11, 0x5e, 0x2d, 0xc2, 0x9b,
+ 0x45, 0x78, 0xb7, 0x08, 0x6b, 0x8b, 0x64, 0x63, 0x91, 0x6c, 0x2d, 0xc2, 0x97, 0x45, 0xb2, 0xb3,
+ 0x08, 0x7b, 0x8b, 0x64, 0xf5, 0x89, 0x24, 0xae, 0xb9, 0xdb, 0x76, 0xbe, 0x03, 0x00, 0x00, 0xff,
+ 0xff, 0x9d, 0x34, 0x83, 0xd1, 0xb3, 0x01, 0x00, 0x00,
+}
+
func (this *MapTest) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return MapDescription()
}
@@ -139,256 +166,258 @@ func (this *FakeMapEntry) Description() (desc *github_com_gogo_protobuf_protoc_g
func MapDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 3978 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0xe3, 0xd6,
- 0x75, 0x16, 0xff, 0x24, 0xf2, 0x90, 0xa2, 0x20, 0x48, 0xde, 0xe5, 0xca, 0x31, 0x57, 0x4b, 0xdb,
- 0xb1, 0x6c, 0x37, 0x52, 0x66, 0xd7, 0xbb, 0xde, 0xe5, 0x36, 0x76, 0x29, 0x89, 0xab, 0xd0, 0x95,
- 0x44, 0x06, 0x94, 0xe2, 0x9f, 0x4c, 0x07, 0x03, 0x81, 0x97, 0x14, 0x56, 0x20, 0x80, 0x00, 0xe0,
- 0xae, 0xb5, 0xd3, 0x99, 0x6e, 0xc7, 0xfd, 0x99, 0x4c, 0xa7, 0xff, 0x9d, 0x69, 0xe2, 0x3a, 0x6e,
- 0x93, 0x4e, 0xe3, 0x34, 0xfd, 0x4b, 0xea, 0x36, 0x4d, 0xd2, 0x97, 0xbe, 0xa4, 0xf5, 0x53, 0x27,
- 0x79, 0xeb, 0x43, 0x1f, 0xbc, 0x8a, 0x67, 0x9a, 0xb6, 0x6e, 0xe3, 0xb6, 0xfb, 0xe0, 0x99, 0x7d,
- 0xe9, 0xdc, 0x3f, 0x10, 0x00, 0xa9, 0x05, 0x94, 0x19, 0x3b, 0x4f, 0x12, 0xce, 0x3d, 0xdf, 0x87,
- 0x73, 0xcf, 0x3d, 0xf7, 0x9c, 0x73, 0x2f, 0x08, 0x3f, 0xba, 0x02, 0x8b, 0x3d, 0xd3, 0xec, 0xe9,
- 0x68, 0xc5, 0xb2, 0x4d, 0xd7, 0xdc, 0x1b, 0x74, 0x57, 0x3a, 0xc8, 0x51, 0x6d, 0xcd, 0x72, 0x4d,
- 0x7b, 0x99, 0xc8, 0xc4, 0x19, 0xaa, 0xb1, 0xcc, 0x35, 0x2a, 0x5b, 0x30, 0x7b, 0x4d, 0xd3, 0xd1,
- 0xba, 0xa7, 0xd8, 0x46, 0xae, 0x78, 0x19, 0xd2, 0x5d, 0x4d, 0x47, 0xa5, 0xc4, 0x62, 0x6a, 0x29,
- 0x7f, 0xfe, 0x91, 0xe5, 0x10, 0x68, 0x39, 0x88, 0x68, 0x61, 0xb1, 0x44, 0x10, 0x95, 0x77, 0xd2,
- 0x30, 0x37, 0x66, 0x54, 0x14, 0x21, 0x6d, 0x28, 0x7d, 0xcc, 0x98, 0x58, 0xca, 0x49, 0xe4, 0x7f,
- 0xb1, 0x04, 0x53, 0x96, 0xa2, 0x1e, 0x28, 0x3d, 0x54, 0x4a, 0x12, 0x31, 0x7f, 0x14, 0xcb, 0x00,
- 0x1d, 0x64, 0x21, 0xa3, 0x83, 0x0c, 0xf5, 0xb0, 0x94, 0x5a, 0x4c, 0x2d, 0xe5, 0x24, 0x9f, 0x44,
- 0x7c, 0x12, 0x66, 0xad, 0xc1, 0x9e, 0xae, 0xa9, 0xb2, 0x4f, 0x0d, 0x16, 0x53, 0x4b, 0x19, 0x49,
- 0xa0, 0x03, 0xeb, 0x43, 0xe5, 0xc7, 0x60, 0xe6, 0x26, 0x52, 0x0e, 0xfc, 0xaa, 0x79, 0xa2, 0x5a,
- 0xc4, 0x62, 0x9f, 0xe2, 0x1a, 0x14, 0xfa, 0xc8, 0x71, 0x94, 0x1e, 0x92, 0xdd, 0x43, 0x0b, 0x95,
- 0xd2, 0x64, 0xf6, 0x8b, 0x23, 0xb3, 0x0f, 0xcf, 0x3c, 0xcf, 0x50, 0x3b, 0x87, 0x16, 0x12, 0x6b,
- 0x90, 0x43, 0xc6, 0xa0, 0x4f, 0x19, 0x32, 0xc7, 0xf8, 0xaf, 0x6e, 0x0c, 0xfa, 0x61, 0x96, 0x2c,
- 0x86, 0x31, 0x8a, 0x29, 0x07, 0xd9, 0x37, 0x34, 0x15, 0x95, 0x26, 0x09, 0xc1, 0x63, 0x23, 0x04,
- 0x6d, 0x3a, 0x1e, 0xe6, 0xe0, 0x38, 0x71, 0x0d, 0x72, 0xe8, 0x65, 0x17, 0x19, 0x8e, 0x66, 0x1a,
- 0xa5, 0x29, 0x42, 0xf2, 0xe8, 0x98, 0x55, 0x44, 0x7a, 0x27, 0x4c, 0x31, 0xc4, 0x89, 0x97, 0x60,
- 0xca, 0xb4, 0x5c, 0xcd, 0x34, 0x9c, 0x52, 0x76, 0x31, 0xb1, 0x94, 0x3f, 0xff, 0x91, 0xb1, 0x81,
- 0xd0, 0xa4, 0x3a, 0x12, 0x57, 0x16, 0x1b, 0x20, 0x38, 0xe6, 0xc0, 0x56, 0x91, 0xac, 0x9a, 0x1d,
- 0x24, 0x6b, 0x46, 0xd7, 0x2c, 0xe5, 0x08, 0xc1, 0xd9, 0xd1, 0x89, 0x10, 0xc5, 0x35, 0xb3, 0x83,
- 0x1a, 0x46, 0xd7, 0x94, 0x8a, 0x4e, 0xe0, 0x59, 0x3c, 0x05, 0x93, 0xce, 0xa1, 0xe1, 0x2a, 0x2f,
- 0x97, 0x0a, 0x24, 0x42, 0xd8, 0x53, 0xe5, 0xdb, 0x93, 0x30, 0x13, 0x27, 0xc4, 0xae, 0x42, 0xa6,
- 0x8b, 0x67, 0x59, 0x4a, 0x9e, 0xc4, 0x07, 0x14, 0x13, 0x74, 0xe2, 0xe4, 0x8f, 0xe9, 0xc4, 0x1a,
- 0xe4, 0x0d, 0xe4, 0xb8, 0xa8, 0x43, 0x23, 0x22, 0x15, 0x33, 0xa6, 0x80, 0x82, 0x46, 0x43, 0x2a,
- 0xfd, 0x63, 0x85, 0xd4, 0x0b, 0x30, 0xe3, 0x99, 0x24, 0xdb, 0x8a, 0xd1, 0xe3, 0xb1, 0xb9, 0x12,
- 0x65, 0xc9, 0x72, 0x9d, 0xe3, 0x24, 0x0c, 0x93, 0x8a, 0x28, 0xf0, 0x2c, 0xae, 0x03, 0x98, 0x06,
- 0x32, 0xbb, 0x72, 0x07, 0xa9, 0x7a, 0x29, 0x7b, 0x8c, 0x97, 0x9a, 0x58, 0x65, 0xc4, 0x4b, 0x26,
- 0x95, 0xaa, 0xba, 0x78, 0x65, 0x18, 0x6a, 0x53, 0xc7, 0x44, 0xca, 0x16, 0xdd, 0x64, 0x23, 0xd1,
- 0xb6, 0x0b, 0x45, 0x1b, 0xe1, 0xb8, 0x47, 0x1d, 0x36, 0xb3, 0x1c, 0x31, 0x62, 0x39, 0x72, 0x66,
- 0x12, 0x83, 0xd1, 0x89, 0x4d, 0xdb, 0xfe, 0x47, 0xf1, 0x61, 0xf0, 0x04, 0x32, 0x09, 0x2b, 0x20,
- 0x59, 0xa8, 0xc0, 0x85, 0xdb, 0x4a, 0x1f, 0x2d, 0xdc, 0x82, 0x62, 0xd0, 0x3d, 0xe2, 0x3c, 0x64,
- 0x1c, 0x57, 0xb1, 0x5d, 0x12, 0x85, 0x19, 0x89, 0x3e, 0x88, 0x02, 0xa4, 0x90, 0xd1, 0x21, 0x59,
- 0x2e, 0x23, 0xe1, 0x7f, 0xc5, 0x9f, 0x19, 0x4e, 0x38, 0x45, 0x26, 0xfc, 0xd1, 0xd1, 0x15, 0x0d,
- 0x30, 0x87, 0xe7, 0xbd, 0xf0, 0x34, 0x4c, 0x07, 0x26, 0x10, 0xf7, 0xd5, 0x95, 0x9f, 0x87, 0x07,
- 0xc6, 0x52, 0x8b, 0x2f, 0xc0, 0xfc, 0xc0, 0xd0, 0x0c, 0x17, 0xd9, 0x96, 0x8d, 0x70, 0xc4, 0xd2,
- 0x57, 0x95, 0xfe, 0x6d, 0xea, 0x98, 0x98, 0xdb, 0xf5, 0x6b, 0x53, 0x16, 0x69, 0x6e, 0x30, 0x2a,
- 0x7c, 0x22, 0x97, 0xfd, 0xe1, 0x94, 0x70, 0xfb, 0xf6, 0xed, 0xdb, 0xc9, 0xca, 0xe7, 0x27, 0x61,
- 0x7e, 0xdc, 0x9e, 0x19, 0xbb, 0x7d, 0x4f, 0xc1, 0xa4, 0x31, 0xe8, 0xef, 0x21, 0x9b, 0x38, 0x29,
- 0x23, 0xb1, 0x27, 0xb1, 0x06, 0x19, 0x5d, 0xd9, 0x43, 0x7a, 0x29, 0xbd, 0x98, 0x58, 0x2a, 0x9e,
- 0x7f, 0x32, 0xd6, 0xae, 0x5c, 0xde, 0xc4, 0x10, 0x89, 0x22, 0xc5, 0x67, 0x20, 0xcd, 0x52, 0x34,
- 0x66, 0x78, 0x22, 0x1e, 0x03, 0xde, 0x4b, 0x12, 0xc1, 0x89, 0x0f, 0x42, 0x0e, 0xff, 0xa5, 0xb1,
- 0x31, 0x49, 0x6c, 0xce, 0x62, 0x01, 0x8e, 0x0b, 0x71, 0x01, 0xb2, 0x64, 0x9b, 0x74, 0x10, 0x2f,
- 0x6d, 0xde, 0x33, 0x0e, 0xac, 0x0e, 0xea, 0x2a, 0x03, 0xdd, 0x95, 0x6f, 0x28, 0xfa, 0x00, 0x91,
- 0x80, 0xcf, 0x49, 0x05, 0x26, 0xfc, 0x34, 0x96, 0x89, 0x67, 0x21, 0x4f, 0x77, 0x95, 0x66, 0x74,
- 0xd0, 0xcb, 0x24, 0x7b, 0x66, 0x24, 0xba, 0xd1, 0x1a, 0x58, 0x82, 0x5f, 0x7f, 0xdd, 0x31, 0x0d,
- 0x1e, 0x9a, 0xe4, 0x15, 0x58, 0x40, 0x5e, 0xff, 0x74, 0x38, 0x71, 0x3f, 0x34, 0x7e, 0x7a, 0xe1,
- 0x98, 0xaa, 0x7c, 0x33, 0x09, 0x69, 0x92, 0x2f, 0x66, 0x20, 0xbf, 0xf3, 0x62, 0xab, 0x2e, 0xaf,
- 0x37, 0x77, 0x57, 0x37, 0xeb, 0x42, 0x42, 0x2c, 0x02, 0x10, 0xc1, 0xb5, 0xcd, 0x66, 0x6d, 0x47,
- 0x48, 0x7a, 0xcf, 0x8d, 0xed, 0x9d, 0x4b, 0x4f, 0x09, 0x29, 0x0f, 0xb0, 0x4b, 0x05, 0x69, 0xbf,
- 0xc2, 0x85, 0xf3, 0x42, 0x46, 0x14, 0xa0, 0x40, 0x09, 0x1a, 0x2f, 0xd4, 0xd7, 0x2f, 0x3d, 0x25,
- 0x4c, 0x06, 0x25, 0x17, 0xce, 0x0b, 0x53, 0xe2, 0x34, 0xe4, 0x88, 0x64, 0xb5, 0xd9, 0xdc, 0x14,
- 0xb2, 0x1e, 0x67, 0x7b, 0x47, 0x6a, 0x6c, 0x6f, 0x08, 0x39, 0x8f, 0x73, 0x43, 0x6a, 0xee, 0xb6,
- 0x04, 0xf0, 0x18, 0xb6, 0xea, 0xed, 0x76, 0x6d, 0xa3, 0x2e, 0xe4, 0x3d, 0x8d, 0xd5, 0x17, 0x77,
- 0xea, 0x6d, 0xa1, 0x10, 0x30, 0xeb, 0xc2, 0x79, 0x61, 0xda, 0x7b, 0x45, 0x7d, 0x7b, 0x77, 0x4b,
- 0x28, 0x8a, 0xb3, 0x30, 0x4d, 0x5f, 0xc1, 0x8d, 0x98, 0x09, 0x89, 0x2e, 0x3d, 0x25, 0x08, 0x43,
- 0x43, 0x28, 0xcb, 0x6c, 0x40, 0x70, 0xe9, 0x29, 0x41, 0xac, 0xac, 0x41, 0x86, 0x44, 0x97, 0x28,
- 0x42, 0x71, 0xb3, 0xb6, 0x5a, 0xdf, 0x94, 0x9b, 0xad, 0x9d, 0x46, 0x73, 0xbb, 0xb6, 0x29, 0x24,
- 0x86, 0x32, 0xa9, 0xfe, 0xa9, 0xdd, 0x86, 0x54, 0x5f, 0x17, 0x92, 0x7e, 0x59, 0xab, 0x5e, 0xdb,
- 0xa9, 0xaf, 0x0b, 0xa9, 0x8a, 0x0a, 0xf3, 0xe3, 0xf2, 0xe4, 0xd8, 0x9d, 0xe1, 0x5b, 0xe2, 0xe4,
- 0x31, 0x4b, 0x4c, 0xb8, 0x46, 0x96, 0xf8, 0x07, 0x49, 0x98, 0x1b, 0x53, 0x2b, 0xc6, 0xbe, 0xe4,
- 0x59, 0xc8, 0xd0, 0x10, 0xa5, 0xd5, 0xf3, 0xf1, 0xb1, 0x45, 0x87, 0x04, 0xec, 0x48, 0x05, 0x25,
- 0x38, 0x7f, 0x07, 0x91, 0x3a, 0xa6, 0x83, 0xc0, 0x14, 0x23, 0x39, 0xfd, 0xe7, 0x46, 0x72, 0x3a,
- 0x2d, 0x7b, 0x97, 0xe2, 0x94, 0x3d, 0x22, 0x3b, 0x59, 0x6e, 0xcf, 0x8c, 0xc9, 0xed, 0x57, 0x61,
- 0x76, 0x84, 0x28, 0x76, 0x8e, 0x7d, 0x25, 0x01, 0xa5, 0xe3, 0x9c, 0x13, 0x91, 0xe9, 0x92, 0x81,
- 0x4c, 0x77, 0x35, 0xec, 0xc1, 0x73, 0xc7, 0x2f, 0xc2, 0xc8, 0x5a, 0xbf, 0x91, 0x80, 0x53, 0xe3,
- 0x3b, 0xc5, 0xb1, 0x36, 0x3c, 0x03, 0x93, 0x7d, 0xe4, 0xee, 0x9b, 0xbc, 0x5b, 0xfa, 0xe8, 0x98,
- 0x1a, 0x8c, 0x87, 0xc3, 0x8b, 0xcd, 0x50, 0xfe, 0x22, 0x9e, 0x3a, 0xae, 0xdd, 0xa3, 0xd6, 0x8c,
- 0x58, 0xfa, 0xb9, 0x24, 0x3c, 0x30, 0x96, 0x7c, 0xac, 0xa1, 0x0f, 0x01, 0x68, 0x86, 0x35, 0x70,
- 0x69, 0x47, 0x44, 0x13, 0x6c, 0x8e, 0x48, 0x48, 0xf2, 0xc2, 0xc9, 0x73, 0xe0, 0x7a, 0xe3, 0x29,
- 0x32, 0x0e, 0x54, 0x44, 0x14, 0x2e, 0x0f, 0x0d, 0x4d, 0x13, 0x43, 0xcb, 0xc7, 0xcc, 0x74, 0x24,
- 0x30, 0x3f, 0x0e, 0x82, 0xaa, 0x6b, 0xc8, 0x70, 0x65, 0xc7, 0xb5, 0x91, 0xd2, 0xd7, 0x8c, 0x1e,
- 0xa9, 0x20, 0xd9, 0x6a, 0xa6, 0xab, 0xe8, 0x0e, 0x92, 0x66, 0xe8, 0x70, 0x9b, 0x8f, 0x62, 0x04,
- 0x09, 0x20, 0xdb, 0x87, 0x98, 0x0c, 0x20, 0xe8, 0xb0, 0x87, 0xa8, 0xbc, 0x99, 0x85, 0xbc, 0xaf,
- 0xaf, 0x16, 0xcf, 0x41, 0xe1, 0xba, 0x72, 0x43, 0x91, 0xf9, 0x59, 0x89, 0x7a, 0x22, 0x8f, 0x65,
- 0x2d, 0x76, 0x5e, 0xfa, 0x38, 0xcc, 0x13, 0x15, 0x73, 0xe0, 0x22, 0x5b, 0x56, 0x75, 0xc5, 0x71,
- 0x88, 0xd3, 0xb2, 0x44, 0x55, 0xc4, 0x63, 0x4d, 0x3c, 0xb4, 0xc6, 0x47, 0xc4, 0x8b, 0x30, 0x47,
- 0x10, 0xfd, 0x81, 0xee, 0x6a, 0x96, 0x8e, 0x64, 0x7c, 0x7a, 0x73, 0x48, 0x25, 0xf1, 0x2c, 0x9b,
- 0xc5, 0x1a, 0x5b, 0x4c, 0x01, 0x5b, 0xe4, 0x88, 0xeb, 0xf0, 0x10, 0x81, 0xf5, 0x90, 0x81, 0x6c,
- 0xc5, 0x45, 0x32, 0xfa, 0xec, 0x40, 0xd1, 0x1d, 0x59, 0x31, 0x3a, 0xf2, 0xbe, 0xe2, 0xec, 0x97,
- 0xe6, 0x31, 0xc1, 0x6a, 0xb2, 0x94, 0x90, 0xce, 0x60, 0xc5, 0x0d, 0xa6, 0x57, 0x27, 0x6a, 0x35,
- 0xa3, 0xf3, 0x49, 0xc5, 0xd9, 0x17, 0xab, 0x70, 0x8a, 0xb0, 0x38, 0xae, 0xad, 0x19, 0x3d, 0x59,
- 0xdd, 0x47, 0xea, 0x81, 0x3c, 0x70, 0xbb, 0x97, 0x4b, 0x0f, 0xfa, 0xdf, 0x4f, 0x2c, 0x6c, 0x13,
- 0x9d, 0x35, 0xac, 0xb2, 0xeb, 0x76, 0x2f, 0x8b, 0x6d, 0x28, 0xe0, 0xc5, 0xe8, 0x6b, 0xb7, 0x90,
- 0xdc, 0x35, 0x6d, 0x52, 0x1a, 0x8b, 0x63, 0x52, 0x93, 0xcf, 0x83, 0xcb, 0x4d, 0x06, 0xd8, 0x32,
- 0x3b, 0xa8, 0x9a, 0x69, 0xb7, 0xea, 0xf5, 0x75, 0x29, 0xcf, 0x59, 0xae, 0x99, 0x36, 0x0e, 0xa8,
- 0x9e, 0xe9, 0x39, 0x38, 0x4f, 0x03, 0xaa, 0x67, 0x72, 0xf7, 0x5e, 0x84, 0x39, 0x55, 0xa5, 0x73,
- 0xd6, 0x54, 0x99, 0x9d, 0xb1, 0x9c, 0x92, 0x10, 0x70, 0x96, 0xaa, 0x6e, 0x50, 0x05, 0x16, 0xe3,
- 0x8e, 0x78, 0x05, 0x1e, 0x18, 0x3a, 0xcb, 0x0f, 0x9c, 0x1d, 0x99, 0x65, 0x18, 0x7a, 0x11, 0xe6,
- 0xac, 0xc3, 0x51, 0xa0, 0x18, 0x78, 0xa3, 0x75, 0x18, 0x86, 0x3d, 0x0d, 0xf3, 0xd6, 0xbe, 0x35,
- 0x8a, 0x7b, 0xc2, 0x8f, 0x13, 0xad, 0x7d, 0x2b, 0x0c, 0x7c, 0x94, 0x1c, 0xb8, 0x6d, 0xa4, 0x2a,
- 0x2e, 0xea, 0x94, 0x4e, 0xfb, 0xd5, 0x7d, 0x03, 0xe2, 0x0a, 0x08, 0xaa, 0x2a, 0x23, 0x43, 0xd9,
- 0xd3, 0x91, 0xac, 0xd8, 0xc8, 0x50, 0x9c, 0xd2, 0x59, 0xbf, 0x72, 0x51, 0x55, 0xeb, 0x64, 0xb4,
- 0x46, 0x06, 0xc5, 0x27, 0x60, 0xd6, 0xdc, 0xbb, 0xae, 0xd2, 0x90, 0x94, 0x2d, 0x1b, 0x75, 0xb5,
- 0x97, 0x4b, 0x8f, 0x10, 0xff, 0xce, 0xe0, 0x01, 0x12, 0x90, 0x2d, 0x22, 0x16, 0x1f, 0x07, 0x41,
- 0x75, 0xf6, 0x15, 0xdb, 0x22, 0x39, 0xd9, 0xb1, 0x14, 0x15, 0x95, 0x1e, 0xa5, 0xaa, 0x54, 0xbe,
- 0xcd, 0xc5, 0x78, 0x4b, 0x38, 0x37, 0xb5, 0xae, 0xcb, 0x19, 0x1f, 0xa3, 0x5b, 0x82, 0xc8, 0x18,
- 0xdb, 0x12, 0x08, 0xd8, 0x15, 0x81, 0x17, 0x2f, 0x11, 0xb5, 0xa2, 0xb5, 0x6f, 0xf9, 0xdf, 0xfb,
- 0x30, 0x4c, 0x63, 0xcd, 0xe1, 0x4b, 0x1f, 0xa7, 0x0d, 0x99, 0xb5, 0xef, 0x7b, 0xe3, 0x07, 0xd6,
- 0x1b, 0x57, 0xaa, 0x50, 0xf0, 0xc7, 0xa7, 0x98, 0x03, 0x1a, 0xa1, 0x42, 0x02, 0x37, 0x2b, 0x6b,
- 0xcd, 0x75, 0xdc, 0x66, 0xbc, 0x54, 0x17, 0x92, 0xb8, 0xdd, 0xd9, 0x6c, 0xec, 0xd4, 0x65, 0x69,
- 0x77, 0x7b, 0xa7, 0xb1, 0x55, 0x17, 0x52, 0xfe, 0xbe, 0xfa, 0xbb, 0x49, 0x28, 0x06, 0x8f, 0x48,
- 0xe2, 0x4f, 0xc3, 0x69, 0x7e, 0x9f, 0xe1, 0x20, 0x57, 0xbe, 0xa9, 0xd9, 0x64, 0xcb, 0xf4, 0x15,
- 0x5a, 0xbe, 0xbc, 0x45, 0x9b, 0x67, 0x5a, 0x6d, 0xe4, 0x3e, 0xaf, 0xd9, 0x78, 0x43, 0xf4, 0x15,
- 0x57, 0xdc, 0x84, 0xb3, 0x86, 0x29, 0x3b, 0xae, 0x62, 0x74, 0x14, 0xbb, 0x23, 0x0f, 0x6f, 0x92,
- 0x64, 0x45, 0x55, 0x91, 0xe3, 0x98, 0xb4, 0x54, 0x79, 0x2c, 0x1f, 0x31, 0xcc, 0x36, 0x53, 0x1e,
- 0xe6, 0xf0, 0x1a, 0x53, 0x0d, 0x05, 0x58, 0xea, 0xb8, 0x00, 0x7b, 0x10, 0x72, 0x7d, 0xc5, 0x92,
- 0x91, 0xe1, 0xda, 0x87, 0xa4, 0x31, 0xce, 0x4a, 0xd9, 0xbe, 0x62, 0xd5, 0xf1, 0xf3, 0x87, 0x73,
- 0x3e, 0xf9, 0xd7, 0x14, 0x14, 0xfc, 0xcd, 0x31, 0x3e, 0x6b, 0xa8, 0xa4, 0x8e, 0x24, 0x48, 0xa6,
- 0x79, 0xf8, 0xbe, 0xad, 0xf4, 0xf2, 0x1a, 0x2e, 0x30, 0xd5, 0x49, 0xda, 0xb2, 0x4a, 0x14, 0x89,
- 0x8b, 0x3b, 0xce, 0x2d, 0x88, 0xb6, 0x08, 0x59, 0x89, 0x3d, 0x89, 0x1b, 0x30, 0x79, 0xdd, 0x21,
- 0xdc, 0x93, 0x84, 0xfb, 0x91, 0xfb, 0x73, 0x3f, 0xd7, 0x26, 0xe4, 0xb9, 0xe7, 0xda, 0xf2, 0x76,
- 0x53, 0xda, 0xaa, 0x6d, 0x4a, 0x0c, 0x2e, 0x9e, 0x81, 0xb4, 0xae, 0xdc, 0x3a, 0x0c, 0x96, 0x22,
- 0x22, 0x8a, 0xeb, 0xf8, 0x33, 0x90, 0xbe, 0x89, 0x94, 0x83, 0x60, 0x01, 0x20, 0xa2, 0x0f, 0x30,
- 0xf4, 0x57, 0x20, 0x43, 0xfc, 0x25, 0x02, 0x30, 0x8f, 0x09, 0x13, 0x62, 0x16, 0xd2, 0x6b, 0x4d,
- 0x09, 0x87, 0xbf, 0x00, 0x05, 0x2a, 0x95, 0x5b, 0x8d, 0xfa, 0x5a, 0x5d, 0x48, 0x56, 0x2e, 0xc2,
- 0x24, 0x75, 0x02, 0xde, 0x1a, 0x9e, 0x1b, 0x84, 0x09, 0xf6, 0xc8, 0x38, 0x12, 0x7c, 0x74, 0x77,
- 0x6b, 0xb5, 0x2e, 0x09, 0x49, 0xff, 0xf2, 0x3a, 0x50, 0xf0, 0xf7, 0xc5, 0x1f, 0x4e, 0x4c, 0x7d,
- 0x27, 0x01, 0x79, 0x5f, 0x9f, 0x8b, 0x1b, 0x14, 0x45, 0xd7, 0xcd, 0x9b, 0xb2, 0xa2, 0x6b, 0x8a,
- 0xc3, 0x82, 0x02, 0x88, 0xa8, 0x86, 0x25, 0x71, 0x17, 0xed, 0x43, 0x31, 0xfe, 0xf5, 0x04, 0x08,
- 0xe1, 0x16, 0x33, 0x64, 0x60, 0xe2, 0x27, 0x6a, 0xe0, 0x6b, 0x09, 0x28, 0x06, 0xfb, 0xca, 0x90,
- 0x79, 0xe7, 0x7e, 0xa2, 0xe6, 0xbd, 0x9d, 0x84, 0xe9, 0x40, 0x37, 0x19, 0xd7, 0xba, 0xcf, 0xc2,
- 0xac, 0xd6, 0x41, 0x7d, 0xcb, 0x74, 0x91, 0xa1, 0x1e, 0xca, 0x3a, 0xba, 0x81, 0xf4, 0x52, 0x85,
- 0x24, 0x8a, 0x95, 0xfb, 0xf7, 0xab, 0xcb, 0x8d, 0x21, 0x6e, 0x13, 0xc3, 0xaa, 0x73, 0x8d, 0xf5,
- 0xfa, 0x56, 0xab, 0xb9, 0x53, 0xdf, 0x5e, 0x7b, 0x51, 0xde, 0xdd, 0xfe, 0xd9, 0xed, 0xe6, 0xf3,
- 0xdb, 0x92, 0xa0, 0x85, 0xd4, 0x3e, 0xc0, 0xad, 0xde, 0x02, 0x21, 0x6c, 0x94, 0x78, 0x1a, 0xc6,
- 0x99, 0x25, 0x4c, 0x88, 0x73, 0x30, 0xb3, 0xdd, 0x94, 0xdb, 0x8d, 0xf5, 0xba, 0x5c, 0xbf, 0x76,
- 0xad, 0xbe, 0xb6, 0xd3, 0xa6, 0x37, 0x10, 0x9e, 0xf6, 0x4e, 0x70, 0x53, 0xbf, 0x9a, 0x82, 0xb9,
- 0x31, 0x96, 0x88, 0x35, 0x76, 0x76, 0xa0, 0xc7, 0x99, 0x8f, 0xc5, 0xb1, 0x7e, 0x19, 0x97, 0xfc,
- 0x96, 0x62, 0xbb, 0xec, 0xa8, 0xf1, 0x38, 0x60, 0x2f, 0x19, 0xae, 0xd6, 0xd5, 0x90, 0xcd, 0x2e,
- 0x6c, 0xe8, 0x81, 0x62, 0x66, 0x28, 0xa7, 0x77, 0x36, 0x3f, 0x05, 0xa2, 0x65, 0x3a, 0x9a, 0xab,
- 0xdd, 0x40, 0xb2, 0x66, 0xf0, 0xdb, 0x1d, 0x7c, 0xc0, 0x48, 0x4b, 0x02, 0x1f, 0x69, 0x18, 0xae,
- 0xa7, 0x6d, 0xa0, 0x9e, 0x12, 0xd2, 0xc6, 0x09, 0x3c, 0x25, 0x09, 0x7c, 0xc4, 0xd3, 0x3e, 0x07,
- 0x85, 0x8e, 0x39, 0xc0, 0x5d, 0x17, 0xd5, 0xc3, 0xf5, 0x22, 0x21, 0xe5, 0xa9, 0xcc, 0x53, 0x61,
- 0xfd, 0xf4, 0xf0, 0x5a, 0xa9, 0x20, 0xe5, 0xa9, 0x8c, 0xaa, 0x3c, 0x06, 0x33, 0x4a, 0xaf, 0x67,
- 0x63, 0x72, 0x4e, 0x44, 0x4f, 0x08, 0x45, 0x4f, 0x4c, 0x14, 0x17, 0x9e, 0x83, 0x2c, 0xf7, 0x03,
- 0x2e, 0xc9, 0xd8, 0x13, 0xb2, 0x45, 0x8f, 0xbd, 0xc9, 0xa5, 0x9c, 0x94, 0x35, 0xf8, 0xe0, 0x39,
- 0x28, 0x68, 0x8e, 0x3c, 0xbc, 0x25, 0x4f, 0x2e, 0x26, 0x97, 0xb2, 0x52, 0x5e, 0x73, 0xbc, 0x1b,
- 0xc6, 0xca, 0x1b, 0x49, 0x28, 0x06, 0x6f, 0xf9, 0xc5, 0x75, 0xc8, 0xea, 0xa6, 0xaa, 0x90, 0xd0,
- 0xa2, 0x9f, 0x98, 0x96, 0x22, 0x3e, 0x0c, 0x2c, 0x6f, 0x32, 0x7d, 0xc9, 0x43, 0x2e, 0xfc, 0x73,
- 0x02, 0xb2, 0x5c, 0x2c, 0x9e, 0x82, 0xb4, 0xa5, 0xb8, 0xfb, 0x84, 0x2e, 0xb3, 0x9a, 0x14, 0x12,
- 0x12, 0x79, 0xc6, 0x72, 0xc7, 0x52, 0x0c, 0x12, 0x02, 0x4c, 0x8e, 0x9f, 0xf1, 0xba, 0xea, 0x48,
- 0xe9, 0x90, 0xe3, 0x87, 0xd9, 0xef, 0x23, 0xc3, 0x75, 0xf8, 0xba, 0x32, 0xf9, 0x1a, 0x13, 0x8b,
- 0x4f, 0xc2, 0xac, 0x6b, 0x2b, 0x9a, 0x1e, 0xd0, 0x4d, 0x13, 0x5d, 0x81, 0x0f, 0x78, 0xca, 0x55,
- 0x38, 0xc3, 0x79, 0x3b, 0xc8, 0x55, 0xd4, 0x7d, 0xd4, 0x19, 0x82, 0x26, 0xc9, 0x35, 0xc3, 0x69,
- 0xa6, 0xb0, 0xce, 0xc6, 0x39, 0xb6, 0xf2, 0xfd, 0x04, 0xcc, 0xf2, 0x03, 0x53, 0xc7, 0x73, 0xd6,
- 0x16, 0x80, 0x62, 0x18, 0xa6, 0xeb, 0x77, 0xd7, 0x68, 0x28, 0x8f, 0xe0, 0x96, 0x6b, 0x1e, 0x48,
- 0xf2, 0x11, 0x2c, 0xf4, 0x01, 0x86, 0x23, 0xc7, 0xba, 0xed, 0x2c, 0xe4, 0xd9, 0x27, 0x1c, 0xf2,
- 0x1d, 0x90, 0x1e, 0xb1, 0x81, 0x8a, 0xf0, 0xc9, 0x4a, 0x9c, 0x87, 0xcc, 0x1e, 0xea, 0x69, 0x06,
- 0xbb, 0x98, 0xa5, 0x0f, 0xfc, 0x22, 0x24, 0xed, 0x5d, 0x84, 0xac, 0x7e, 0x06, 0xe6, 0x54, 0xb3,
- 0x1f, 0x36, 0x77, 0x55, 0x08, 0x1d, 0xf3, 0x9d, 0x4f, 0x26, 0x5e, 0x82, 0x61, 0x8b, 0xf9, 0x7e,
- 0x22, 0xf1, 0xe5, 0x64, 0x6a, 0xa3, 0xb5, 0xfa, 0xb5, 0xe4, 0xc2, 0x06, 0x85, 0xb6, 0xf8, 0x4c,
- 0x25, 0xd4, 0xd5, 0x91, 0x8a, 0xad, 0x87, 0xaf, 0x3c, 0x09, 0x1f, 0xeb, 0x69, 0xee, 0xfe, 0x60,
- 0x6f, 0x59, 0x35, 0xfb, 0x2b, 0x3d, 0xb3, 0x67, 0x0e, 0x3f, 0x7d, 0xe2, 0x27, 0xf2, 0x40, 0xfe,
- 0x63, 0x9f, 0x3f, 0x73, 0x9e, 0x74, 0x21, 0xf2, 0x5b, 0x69, 0x75, 0x1b, 0xe6, 0x98, 0xb2, 0x4c,
- 0xbe, 0xbf, 0xd0, 0x53, 0x84, 0x78, 0xdf, 0x3b, 0xac, 0xd2, 0x37, 0xde, 0x21, 0xe5, 0x5a, 0x9a,
- 0x65, 0x50, 0x3c, 0x46, 0x0f, 0x1a, 0x55, 0x09, 0x1e, 0x08, 0xf0, 0xd1, 0xad, 0x89, 0xec, 0x08,
- 0xc6, 0xef, 0x32, 0xc6, 0x39, 0x1f, 0x63, 0x9b, 0x41, 0xab, 0x6b, 0x30, 0x7d, 0x12, 0xae, 0x7f,
- 0x64, 0x5c, 0x05, 0xe4, 0x27, 0xd9, 0x80, 0x19, 0x42, 0xa2, 0x0e, 0x1c, 0xd7, 0xec, 0x93, 0xbc,
- 0x77, 0x7f, 0x9a, 0x7f, 0x7a, 0x87, 0xee, 0x95, 0x22, 0x86, 0xad, 0x79, 0xa8, 0x6a, 0x15, 0xc8,
- 0x27, 0xa7, 0x0e, 0x52, 0xf5, 0x08, 0x86, 0xb7, 0x98, 0x21, 0x9e, 0x7e, 0xf5, 0xd3, 0x30, 0x8f,
- 0xff, 0x27, 0x69, 0xc9, 0x6f, 0x49, 0xf4, 0x85, 0x57, 0xe9, 0xfb, 0xaf, 0xd0, 0xed, 0x38, 0xe7,
- 0x11, 0xf8, 0x6c, 0xf2, 0xad, 0x62, 0x0f, 0xb9, 0x2e, 0xb2, 0x1d, 0x59, 0xd1, 0xc7, 0x99, 0xe7,
- 0xbb, 0x31, 0x28, 0x7d, 0xe1, 0xdd, 0xe0, 0x2a, 0x6e, 0x50, 0x64, 0x4d, 0xd7, 0xab, 0xbb, 0x70,
- 0x7a, 0x4c, 0x54, 0xc4, 0xe0, 0x7c, 0x95, 0x71, 0xce, 0x8f, 0x44, 0x06, 0xa6, 0x6d, 0x01, 0x97,
- 0x7b, 0x6b, 0x19, 0x83, 0xf3, 0x0f, 0x18, 0xa7, 0xc8, 0xb0, 0x7c, 0x49, 0x31, 0xe3, 0x73, 0x30,
- 0x7b, 0x03, 0xd9, 0x7b, 0xa6, 0xc3, 0x6e, 0x69, 0x62, 0xd0, 0xbd, 0xc6, 0xe8, 0x66, 0x18, 0x90,
- 0x5c, 0xdb, 0x60, 0xae, 0x2b, 0x90, 0xed, 0x2a, 0x2a, 0x8a, 0x41, 0xf1, 0x45, 0x46, 0x31, 0x85,
- 0xf5, 0x31, 0xb4, 0x06, 0x85, 0x9e, 0xc9, 0x2a, 0x53, 0x34, 0xfc, 0x75, 0x06, 0xcf, 0x73, 0x0c,
- 0xa3, 0xb0, 0x4c, 0x6b, 0xa0, 0xe3, 0xb2, 0x15, 0x4d, 0xf1, 0x87, 0x9c, 0x82, 0x63, 0x18, 0xc5,
- 0x09, 0xdc, 0xfa, 0x47, 0x9c, 0xc2, 0xf1, 0xf9, 0xf3, 0x59, 0xc8, 0x9b, 0x86, 0x7e, 0x68, 0x1a,
- 0x71, 0x8c, 0xf8, 0x12, 0x63, 0x00, 0x06, 0xc1, 0x04, 0x57, 0x21, 0x17, 0x77, 0x21, 0xfe, 0xe4,
- 0x5d, 0xbe, 0x3d, 0xf8, 0x0a, 0x6c, 0xc0, 0x0c, 0x4f, 0x50, 0x9a, 0x69, 0xc4, 0xa0, 0xf8, 0x0a,
- 0xa3, 0x28, 0xfa, 0x60, 0x6c, 0x1a, 0x2e, 0x72, 0xdc, 0x1e, 0x8a, 0x43, 0xf2, 0x06, 0x9f, 0x06,
- 0x83, 0x30, 0x57, 0xee, 0x21, 0x43, 0xdd, 0x8f, 0xc7, 0xf0, 0x55, 0xee, 0x4a, 0x8e, 0xc1, 0x14,
- 0x6b, 0x30, 0xdd, 0x57, 0x6c, 0x67, 0x5f, 0xd1, 0x63, 0x2d, 0xc7, 0x9f, 0x32, 0x8e, 0x82, 0x07,
- 0x62, 0x1e, 0x19, 0x18, 0x27, 0xa1, 0xf9, 0x1a, 0xf7, 0x88, 0x0f, 0xc6, 0xb6, 0x9e, 0xe3, 0x92,
- 0x2b, 0xad, 0x93, 0xb0, 0xfd, 0x19, 0xdf, 0x7a, 0x14, 0xbb, 0xe5, 0x67, 0xbc, 0x0a, 0x39, 0x47,
- 0xbb, 0x15, 0x8b, 0xe6, 0xcf, 0xf9, 0x4a, 0x13, 0x00, 0x06, 0xbf, 0x08, 0x67, 0xc6, 0x96, 0x89,
- 0x18, 0x64, 0x7f, 0xc1, 0xc8, 0x4e, 0x8d, 0x29, 0x15, 0x2c, 0x25, 0x9c, 0x94, 0xf2, 0x2f, 0x79,
- 0x4a, 0x40, 0x21, 0xae, 0x16, 0x3e, 0x2b, 0x38, 0x4a, 0xf7, 0x64, 0x5e, 0xfb, 0x2b, 0xee, 0x35,
- 0x8a, 0x0d, 0x78, 0x6d, 0x07, 0x4e, 0x31, 0xc6, 0x93, 0xad, 0xeb, 0xd7, 0x79, 0x62, 0xa5, 0xe8,
- 0xdd, 0xe0, 0xea, 0x7e, 0x06, 0x16, 0x3c, 0x77, 0xf2, 0xa6, 0xd4, 0x91, 0xfb, 0x8a, 0x15, 0x83,
- 0xf9, 0x1b, 0x8c, 0x99, 0x67, 0x7c, 0xaf, 0xab, 0x75, 0xb6, 0x14, 0x0b, 0x93, 0xbf, 0x00, 0x25,
- 0x4e, 0x3e, 0x30, 0x6c, 0xa4, 0x9a, 0x3d, 0x43, 0xbb, 0x85, 0x3a, 0x31, 0xa8, 0xff, 0x3a, 0xb4,
- 0x54, 0xbb, 0x3e, 0x38, 0x66, 0x6e, 0x80, 0xe0, 0xf5, 0x2a, 0xb2, 0xd6, 0xb7, 0x4c, 0xdb, 0x8d,
- 0x60, 0x7c, 0x93, 0xaf, 0x94, 0x87, 0x6b, 0x10, 0x58, 0xb5, 0x0e, 0x45, 0xf2, 0x18, 0x37, 0x24,
- 0xff, 0x86, 0x11, 0x4d, 0x0f, 0x51, 0x2c, 0x71, 0xa8, 0x66, 0xdf, 0x52, 0xec, 0x38, 0xf9, 0xef,
- 0x6f, 0x79, 0xe2, 0x60, 0x10, 0x96, 0x38, 0xdc, 0x43, 0x0b, 0xe1, 0x6a, 0x1f, 0x83, 0xe1, 0x9b,
- 0x3c, 0x71, 0x70, 0x0c, 0xa3, 0xe0, 0x0d, 0x43, 0x0c, 0x8a, 0xbf, 0xe3, 0x14, 0x1c, 0x83, 0x29,
- 0x3e, 0x35, 0x2c, 0xb4, 0x36, 0xea, 0x69, 0x8e, 0x6b, 0xd3, 0x56, 0xf8, 0xfe, 0x54, 0xdf, 0x7a,
- 0x37, 0xd8, 0x84, 0x49, 0x3e, 0x28, 0xce, 0x44, 0xec, 0x0a, 0x95, 0x9c, 0x94, 0xa2, 0x0d, 0xfb,
- 0x36, 0xcf, 0x44, 0x3e, 0x18, 0xb6, 0xcd, 0xd7, 0x21, 0x62, 0xb7, 0xab, 0xf8, 0x7c, 0x10, 0x83,
- 0xee, 0x3b, 0x21, 0xe3, 0xda, 0x1c, 0x8b, 0x39, 0x7d, 0xfd, 0xcf, 0xc0, 0x38, 0x40, 0x87, 0xb1,
- 0xa2, 0xf3, 0xef, 0x43, 0xfd, 0xcf, 0x2e, 0x45, 0xd2, 0x1c, 0x32, 0x13, 0xea, 0xa7, 0xc4, 0xa8,
- 0x1f, 0xeb, 0x94, 0x7e, 0xf1, 0x2e, 0x9b, 0x6f, 0xb0, 0x9d, 0xaa, 0x6e, 0xe2, 0x20, 0x0f, 0x36,
- 0x3d, 0xd1, 0x64, 0xaf, 0xdc, 0xf5, 0xe2, 0x3c, 0xd0, 0xf3, 0x54, 0xaf, 0xc1, 0x74, 0xa0, 0xe1,
- 0x89, 0xa6, 0xfa, 0x25, 0x46, 0x55, 0xf0, 0xf7, 0x3b, 0xd5, 0x8b, 0x90, 0xc6, 0xcd, 0x4b, 0x34,
- 0xfc, 0x97, 0x19, 0x9c, 0xa8, 0x57, 0x3f, 0x01, 0x59, 0xde, 0xb4, 0x44, 0x43, 0x7f, 0x85, 0x41,
- 0x3d, 0x08, 0x86, 0xf3, 0x86, 0x25, 0x1a, 0xfe, 0xab, 0x1c, 0xce, 0x21, 0x18, 0x1e, 0xdf, 0x85,
- 0xff, 0xf0, 0x6b, 0x69, 0x56, 0x74, 0xb8, 0xef, 0xae, 0xc2, 0x14, 0xeb, 0x54, 0xa2, 0xd1, 0x9f,
- 0x63, 0x2f, 0xe7, 0x88, 0xea, 0xd3, 0x90, 0x89, 0xe9, 0xf0, 0x5f, 0x67, 0x50, 0xaa, 0x5f, 0x5d,
- 0x83, 0xbc, 0xaf, 0x3b, 0x89, 0x86, 0xff, 0x06, 0x83, 0xfb, 0x51, 0xd8, 0x74, 0xd6, 0x9d, 0x44,
- 0x13, 0xfc, 0x26, 0x37, 0x9d, 0x21, 0xb0, 0xdb, 0x78, 0x63, 0x12, 0x8d, 0xfe, 0x2d, 0xee, 0x75,
- 0x0e, 0xa9, 0x3e, 0x0b, 0x39, 0xaf, 0xd8, 0x44, 0xe3, 0x7f, 0x9b, 0xe1, 0x87, 0x18, 0xec, 0x01,
- 0x5f, 0xb1, 0x8b, 0xa6, 0xf8, 0x1d, 0xee, 0x01, 0x1f, 0x0a, 0x6f, 0xa3, 0x70, 0x03, 0x13, 0xcd,
- 0xf4, 0xbb, 0x7c, 0x1b, 0x85, 0xfa, 0x17, 0xbc, 0x9a, 0x24, 0xe7, 0x47, 0x53, 0xfc, 0x1e, 0x5f,
- 0x4d, 0xa2, 0x8f, 0xcd, 0x08, 0x77, 0x04, 0xd1, 0x1c, 0xbf, 0xcf, 0xcd, 0x08, 0x35, 0x04, 0xd5,
- 0x16, 0x88, 0xa3, 0xdd, 0x40, 0x34, 0xdf, 0xe7, 0x19, 0xdf, 0xec, 0x48, 0x33, 0x50, 0x7d, 0x1e,
- 0x4e, 0x8d, 0xef, 0x04, 0xa2, 0x59, 0xbf, 0x70, 0x37, 0x74, 0x76, 0xf3, 0x37, 0x02, 0xd5, 0x9d,
- 0x61, 0x49, 0xf1, 0x77, 0x01, 0xd1, 0xb4, 0xaf, 0xde, 0x0d, 0x26, 0x6e, 0x7f, 0x13, 0x50, 0xad,
- 0x01, 0x0c, 0x0b, 0x70, 0x34, 0xd7, 0x6b, 0x8c, 0xcb, 0x07, 0xc2, 0x5b, 0x83, 0xd5, 0xdf, 0x68,
- 0xfc, 0x17, 0xf9, 0xd6, 0x60, 0x08, 0xbc, 0x35, 0x78, 0xe9, 0x8d, 0x46, 0xbf, 0xce, 0xb7, 0x06,
- 0x87, 0xe0, 0xc8, 0xf6, 0x55, 0xb7, 0x68, 0x86, 0x2f, 0xf1, 0xc8, 0xf6, 0xa1, 0xaa, 0xdb, 0x30,
- 0x3b, 0x52, 0x10, 0xa3, 0xa9, 0xbe, 0xcc, 0xa8, 0x84, 0x70, 0x3d, 0xf4, 0x17, 0x2f, 0x56, 0x0c,
- 0xa3, 0xd9, 0xfe, 0x38, 0x54, 0xbc, 0x58, 0x2d, 0xac, 0x5e, 0x85, 0xac, 0x31, 0xd0, 0x75, 0xbc,
- 0x79, 0xc4, 0xfb, 0xff, 0xc0, 0xae, 0xf4, 0xef, 0xf7, 0x98, 0x77, 0x38, 0xa0, 0x7a, 0x11, 0x32,
- 0xa8, 0xbf, 0x87, 0x3a, 0x51, 0xc8, 0xff, 0xb8, 0xc7, 0x13, 0x26, 0xd6, 0xae, 0x3e, 0x0b, 0x40,
- 0xaf, 0x46, 0xc8, 0x67, 0xbf, 0x08, 0xec, 0x7f, 0xde, 0x63, 0x3f, 0x7d, 0x19, 0x42, 0x86, 0x04,
- 0xf4, 0x87, 0x34, 0xf7, 0x27, 0x78, 0x37, 0x48, 0x40, 0x56, 0xe4, 0x0a, 0x4c, 0x5d, 0x77, 0x4c,
- 0xc3, 0x55, 0x7a, 0x51, 0xe8, 0xff, 0x62, 0x68, 0xae, 0x8f, 0x1d, 0xd6, 0x37, 0x6d, 0xe4, 0x2a,
- 0x3d, 0x27, 0x0a, 0xfb, 0xdf, 0x0c, 0xeb, 0x01, 0x30, 0x58, 0x55, 0x1c, 0x37, 0xce, 0xbc, 0x7f,
- 0xc4, 0xc1, 0x1c, 0x80, 0x8d, 0xc6, 0xff, 0x1f, 0xa0, 0xc3, 0x28, 0xec, 0x7b, 0xdc, 0x68, 0xa6,
- 0x5f, 0xfd, 0x04, 0xe4, 0xf0, 0xbf, 0xf4, 0xf7, 0x6c, 0x11, 0xe0, 0xff, 0x61, 0xe0, 0x21, 0x02,
- 0xbf, 0xd9, 0x71, 0x3b, 0xae, 0x16, 0xed, 0xec, 0xff, 0x65, 0x2b, 0xcd, 0xf5, 0xab, 0x35, 0xc8,
- 0x3b, 0x6e, 0xa7, 0x33, 0x60, 0xfd, 0x69, 0x04, 0xfc, 0xff, 0xee, 0x79, 0x57, 0x16, 0x1e, 0x06,
- 0xaf, 0xf6, 0xcd, 0x03, 0xd7, 0x32, 0xc9, 0x67, 0x8e, 0x28, 0x86, 0xbb, 0x8c, 0xc1, 0x07, 0x59,
- 0xad, 0x8f, 0xbf, 0xbe, 0x85, 0x0d, 0x73, 0xc3, 0xa4, 0x17, 0xb7, 0x2f, 0x55, 0xa2, 0x6f, 0x60,
- 0xe1, 0xcd, 0x14, 0x94, 0x54, 0xb3, 0xbf, 0x67, 0x3a, 0x2b, 0x06, 0xd2, 0xdc, 0x7d, 0x64, 0xaf,
- 0xf4, 0x15, 0x8b, 0xdd, 0xc9, 0xe6, 0xfb, 0x8a, 0xc5, 0x7e, 0xfc, 0xea, 0x2c, 0x9c, 0xec, 0x3e,
- 0xb7, 0xf2, 0x0b, 0x30, 0xb5, 0xa5, 0x58, 0x3b, 0xc8, 0x71, 0x45, 0xe2, 0x69, 0xf2, 0x2b, 0x2b,
- 0x76, 0x49, 0xbe, 0xb8, 0xec, 0x23, 0x5e, 0x66, 0x6a, 0xcb, 0x6d, 0xd7, 0x6e, 0xbb, 0x36, 0xf9,
- 0x41, 0x81, 0x34, 0xe9, 0x90, 0x87, 0x85, 0x2b, 0x90, 0xf7, 0x89, 0x45, 0x01, 0x52, 0x07, 0xe8,
- 0x90, 0xfd, 0xce, 0x0a, 0xff, 0x2b, 0xce, 0x0f, 0x7f, 0x08, 0x89, 0x65, 0xf4, 0xa1, 0x9a, 0xbc,
- 0x9c, 0xa8, 0x3c, 0x03, 0x53, 0xd7, 0x94, 0x03, 0xb4, 0xa5, 0x58, 0xe2, 0x05, 0x98, 0x42, 0x86,
- 0x6b, 0x6b, 0xc8, 0x61, 0x06, 0x9c, 0x09, 0x18, 0xc0, 0xd4, 0xe8, 0x9b, 0xb9, 0x66, 0x65, 0x13,
- 0x0a, 0xfe, 0x81, 0xb8, 0xef, 0xc6, 0x52, 0x13, 0xfb, 0x91, 0x7d, 0xb4, 0xa0, 0x0f, 0xab, 0xeb,
- 0x6f, 0xdd, 0x29, 0x4f, 0x7c, 0xef, 0x4e, 0x79, 0xe2, 0x5f, 0xee, 0x94, 0x27, 0xde, 0xbe, 0x53,
- 0x4e, 0xbc, 0x77, 0xa7, 0x9c, 0x78, 0xff, 0x4e, 0x39, 0x71, 0xfb, 0xa8, 0x9c, 0xf8, 0xea, 0x51,
- 0x39, 0xf1, 0xf5, 0xa3, 0x72, 0xe2, 0x5b, 0x47, 0xe5, 0xc4, 0x5b, 0x47, 0xe5, 0x89, 0xef, 0x1d,
- 0x95, 0x27, 0xde, 0x3e, 0x2a, 0x27, 0x7e, 0x78, 0x54, 0x9e, 0x78, 0xef, 0xa8, 0x9c, 0x78, 0xff,
- 0xa8, 0x3c, 0x71, 0xfb, 0x07, 0xe5, 0x89, 0xbd, 0x49, 0xe2, 0xdb, 0x0b, 0xff, 0x1f, 0x00, 0x00,
- 0xff, 0xff, 0xc5, 0xf8, 0xa0, 0x5b, 0x51, 0x34, 0x00, 0x00,
+ // 4013 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7a, 0x4b, 0x70, 0xe4, 0xd6,
+ 0x75, 0x36, 0xfb, 0x45, 0x76, 0x9f, 0x6e, 0x36, 0x41, 0x90, 0x9a, 0xe9, 0xa1, 0xac, 0x1e, 0x4e,
+ 0x4b, 0xb2, 0x28, 0xc9, 0x22, 0x5d, 0xf3, 0xd2, 0x4c, 0xcf, 0x6f, 0xe9, 0x6f, 0x92, 0x3d, 0x34,
+ 0x15, 0xbe, 0x8c, 0x26, 0xad, 0x87, 0x2b, 0x85, 0xba, 0x44, 0x5f, 0x36, 0x31, 0x44, 0x03, 0x30,
+ 0x80, 0x9e, 0x11, 0xa7, 0x52, 0x95, 0x49, 0x29, 0x8f, 0x72, 0xe5, 0xfd, 0xa8, 0x8a, 0xad, 0xc8,
+ 0x4a, 0xec, 0x54, 0x2c, 0xc7, 0x79, 0xd9, 0x71, 0xe2, 0xd8, 0xce, 0x26, 0x1b, 0x27, 0x5a, 0xa5,
+ 0xec, 0x5d, 0x16, 0x59, 0x68, 0x68, 0x55, 0xc5, 0x49, 0x94, 0x44, 0x49, 0x66, 0xa1, 0x2a, 0x6d,
+ 0x52, 0xf7, 0x85, 0x06, 0xd0, 0xcd, 0x01, 0xe8, 0x2a, 0xc9, 0x2b, 0x12, 0xe7, 0x9e, 0xef, 0xc3,
+ 0xb9, 0xe7, 0x9e, 0x7b, 0xce, 0xb9, 0x17, 0x0d, 0x6f, 0xd6, 0x61, 0xb6, 0x63, 0x59, 0x1d, 0x03,
+ 0x2f, 0xd8, 0x8e, 0xe5, 0x59, 0xbb, 0xbd, 0xbd, 0x85, 0x36, 0x76, 0x35, 0x47, 0xb7, 0x3d, 0xcb,
+ 0x99, 0xa7, 0x32, 0x79, 0x82, 0x69, 0xcc, 0x0b, 0x8d, 0xda, 0x3a, 0x4c, 0x5e, 0xd7, 0x0d, 0xbc,
+ 0xec, 0x2b, 0xb6, 0xb0, 0x27, 0x5f, 0x81, 0xec, 0x9e, 0x6e, 0xe0, 0x4a, 0x6a, 0x36, 0x33, 0x57,
+ 0x3c, 0xff, 0xc8, 0x7c, 0x04, 0x34, 0x1f, 0x46, 0x6c, 0x11, 0xb1, 0x42, 0x11, 0xb5, 0xb7, 0xb3,
+ 0x30, 0x35, 0x64, 0x54, 0x96, 0x21, 0x6b, 0xa2, 0x2e, 0x61, 0x4c, 0xcd, 0x15, 0x14, 0xfa, 0xbf,
+ 0x5c, 0x81, 0x31, 0x1b, 0x69, 0x07, 0xa8, 0x83, 0x2b, 0x69, 0x2a, 0x16, 0x8f, 0x72, 0x15, 0xa0,
+ 0x8d, 0x6d, 0x6c, 0xb6, 0xb1, 0xa9, 0x1d, 0x56, 0x32, 0xb3, 0x99, 0xb9, 0x82, 0x12, 0x90, 0xc8,
+ 0x4f, 0xc2, 0xa4, 0xdd, 0xdb, 0x35, 0x74, 0x4d, 0x0d, 0xa8, 0xc1, 0x6c, 0x66, 0x2e, 0xa7, 0x48,
+ 0x6c, 0x60, 0xb9, 0xaf, 0xfc, 0x18, 0x4c, 0xdc, 0xc2, 0xe8, 0x20, 0xa8, 0x5a, 0xa4, 0xaa, 0x65,
+ 0x22, 0x0e, 0x28, 0x2e, 0x41, 0xa9, 0x8b, 0x5d, 0x17, 0x75, 0xb0, 0xea, 0x1d, 0xda, 0xb8, 0x92,
+ 0xa5, 0xb3, 0x9f, 0x1d, 0x98, 0x7d, 0x74, 0xe6, 0x45, 0x8e, 0xda, 0x3e, 0xb4, 0xb1, 0xdc, 0x80,
+ 0x02, 0x36, 0x7b, 0x5d, 0xc6, 0x90, 0x3b, 0xc6, 0x7f, 0x4d, 0xb3, 0xd7, 0x8d, 0xb2, 0xe4, 0x09,
+ 0x8c, 0x53, 0x8c, 0xb9, 0xd8, 0xb9, 0xa9, 0x6b, 0xb8, 0x32, 0x4a, 0x09, 0x1e, 0x1b, 0x20, 0x68,
+ 0xb1, 0xf1, 0x28, 0x87, 0xc0, 0xc9, 0x4b, 0x50, 0xc0, 0x2f, 0x7b, 0xd8, 0x74, 0x75, 0xcb, 0xac,
+ 0x8c, 0x51, 0x92, 0x47, 0x87, 0xac, 0x22, 0x36, 0xda, 0x51, 0x8a, 0x3e, 0x4e, 0xbe, 0x0c, 0x63,
+ 0x96, 0xed, 0xe9, 0x96, 0xe9, 0x56, 0xf2, 0xb3, 0xa9, 0xb9, 0xe2, 0xf9, 0x8f, 0x0c, 0x0d, 0x84,
+ 0x4d, 0xa6, 0xa3, 0x08, 0x65, 0x79, 0x15, 0x24, 0xd7, 0xea, 0x39, 0x1a, 0x56, 0x35, 0xab, 0x8d,
+ 0x55, 0xdd, 0xdc, 0xb3, 0x2a, 0x05, 0x4a, 0x70, 0x76, 0x70, 0x22, 0x54, 0x71, 0xc9, 0x6a, 0xe3,
+ 0x55, 0x73, 0xcf, 0x52, 0xca, 0x6e, 0xe8, 0x59, 0x3e, 0x05, 0xa3, 0xee, 0xa1, 0xe9, 0xa1, 0x97,
+ 0x2b, 0x25, 0x1a, 0x21, 0xfc, 0xa9, 0xf6, 0x9d, 0x51, 0x98, 0x48, 0x12, 0x62, 0xd7, 0x20, 0xb7,
+ 0x47, 0x66, 0x59, 0x49, 0x9f, 0xc4, 0x07, 0x0c, 0x13, 0x76, 0xe2, 0xe8, 0x8f, 0xe9, 0xc4, 0x06,
+ 0x14, 0x4d, 0xec, 0x7a, 0xb8, 0xcd, 0x22, 0x22, 0x93, 0x30, 0xa6, 0x80, 0x81, 0x06, 0x43, 0x2a,
+ 0xfb, 0x63, 0x85, 0xd4, 0x0b, 0x30, 0xe1, 0x9b, 0xa4, 0x3a, 0xc8, 0xec, 0x88, 0xd8, 0x5c, 0x88,
+ 0xb3, 0x64, 0xbe, 0x29, 0x70, 0x0a, 0x81, 0x29, 0x65, 0x1c, 0x7a, 0x96, 0x97, 0x01, 0x2c, 0x13,
+ 0x5b, 0x7b, 0x6a, 0x1b, 0x6b, 0x46, 0x25, 0x7f, 0x8c, 0x97, 0x36, 0x89, 0xca, 0x80, 0x97, 0x2c,
+ 0x26, 0xd5, 0x0c, 0xf9, 0x6a, 0x3f, 0xd4, 0xc6, 0x8e, 0x89, 0x94, 0x75, 0xb6, 0xc9, 0x06, 0xa2,
+ 0x6d, 0x07, 0xca, 0x0e, 0x26, 0x71, 0x8f, 0xdb, 0x7c, 0x66, 0x05, 0x6a, 0xc4, 0x7c, 0xec, 0xcc,
+ 0x14, 0x0e, 0x63, 0x13, 0x1b, 0x77, 0x82, 0x8f, 0xf2, 0xc3, 0xe0, 0x0b, 0x54, 0x1a, 0x56, 0x40,
+ 0xb3, 0x50, 0x49, 0x08, 0x37, 0x50, 0x17, 0xcf, 0xdc, 0x86, 0x72, 0xd8, 0x3d, 0xf2, 0x34, 0xe4,
+ 0x5c, 0x0f, 0x39, 0x1e, 0x8d, 0xc2, 0x9c, 0xc2, 0x1e, 0x64, 0x09, 0x32, 0xd8, 0x6c, 0xd3, 0x2c,
+ 0x97, 0x53, 0xc8, 0xbf, 0xf2, 0xff, 0xef, 0x4f, 0x38, 0x43, 0x27, 0xfc, 0xd1, 0xc1, 0x15, 0x0d,
+ 0x31, 0x47, 0xe7, 0x3d, 0xf3, 0x34, 0x8c, 0x87, 0x26, 0x90, 0xf4, 0xd5, 0xb5, 0x9f, 0x81, 0x07,
+ 0x86, 0x52, 0xcb, 0x2f, 0xc0, 0x74, 0xcf, 0xd4, 0x4d, 0x0f, 0x3b, 0xb6, 0x83, 0x49, 0xc4, 0xb2,
+ 0x57, 0x55, 0xfe, 0x65, 0xec, 0x98, 0x98, 0xdb, 0x09, 0x6a, 0x33, 0x16, 0x65, 0xaa, 0x37, 0x28,
+ 0x7c, 0xa2, 0x90, 0xff, 0xd1, 0x98, 0x74, 0xe7, 0xce, 0x9d, 0x3b, 0xe9, 0xda, 0xe7, 0x47, 0x61,
+ 0x7a, 0xd8, 0x9e, 0x19, 0xba, 0x7d, 0x4f, 0xc1, 0xa8, 0xd9, 0xeb, 0xee, 0x62, 0x87, 0x3a, 0x29,
+ 0xa7, 0xf0, 0x27, 0xb9, 0x01, 0x39, 0x03, 0xed, 0x62, 0xa3, 0x92, 0x9d, 0x4d, 0xcd, 0x95, 0xcf,
+ 0x3f, 0x99, 0x68, 0x57, 0xce, 0xaf, 0x11, 0x88, 0xc2, 0x90, 0xf2, 0x33, 0x90, 0xe5, 0x29, 0x9a,
+ 0x30, 0x3c, 0x91, 0x8c, 0x81, 0xec, 0x25, 0x85, 0xe2, 0xe4, 0x07, 0xa1, 0x40, 0xfe, 0xb2, 0xd8,
+ 0x18, 0xa5, 0x36, 0xe7, 0x89, 0x80, 0xc4, 0x85, 0x3c, 0x03, 0x79, 0xba, 0x4d, 0xda, 0x58, 0x94,
+ 0x36, 0xff, 0x99, 0x04, 0x56, 0x1b, 0xef, 0xa1, 0x9e, 0xe1, 0xa9, 0x37, 0x91, 0xd1, 0xc3, 0x34,
+ 0xe0, 0x0b, 0x4a, 0x89, 0x0b, 0x3f, 0x4d, 0x64, 0xf2, 0x59, 0x28, 0xb2, 0x5d, 0xa5, 0x9b, 0x6d,
+ 0xfc, 0x32, 0xcd, 0x9e, 0x39, 0x85, 0x6d, 0xb4, 0x55, 0x22, 0x21, 0xaf, 0xbf, 0xe1, 0x5a, 0xa6,
+ 0x08, 0x4d, 0xfa, 0x0a, 0x22, 0xa0, 0xaf, 0x7f, 0x3a, 0x9a, 0xb8, 0x1f, 0x1a, 0x3e, 0xbd, 0x68,
+ 0x4c, 0xd5, 0xbe, 0x95, 0x86, 0x2c, 0xcd, 0x17, 0x13, 0x50, 0xdc, 0x7e, 0x71, 0xab, 0xa9, 0x2e,
+ 0x6f, 0xee, 0x2c, 0xae, 0x35, 0xa5, 0x94, 0x5c, 0x06, 0xa0, 0x82, 0xeb, 0x6b, 0x9b, 0x8d, 0x6d,
+ 0x29, 0xed, 0x3f, 0xaf, 0x6e, 0x6c, 0x5f, 0xbe, 0x28, 0x65, 0x7c, 0xc0, 0x0e, 0x13, 0x64, 0x83,
+ 0x0a, 0x17, 0xce, 0x4b, 0x39, 0x59, 0x82, 0x12, 0x23, 0x58, 0x7d, 0xa1, 0xb9, 0x7c, 0xf9, 0xa2,
+ 0x34, 0x1a, 0x96, 0x5c, 0x38, 0x2f, 0x8d, 0xc9, 0xe3, 0x50, 0xa0, 0x92, 0xc5, 0xcd, 0xcd, 0x35,
+ 0x29, 0xef, 0x73, 0xb6, 0xb6, 0x95, 0xd5, 0x8d, 0x15, 0xa9, 0xe0, 0x73, 0xae, 0x28, 0x9b, 0x3b,
+ 0x5b, 0x12, 0xf8, 0x0c, 0xeb, 0xcd, 0x56, 0xab, 0xb1, 0xd2, 0x94, 0x8a, 0xbe, 0xc6, 0xe2, 0x8b,
+ 0xdb, 0xcd, 0x96, 0x54, 0x0a, 0x99, 0x75, 0xe1, 0xbc, 0x34, 0xee, 0xbf, 0xa2, 0xb9, 0xb1, 0xb3,
+ 0x2e, 0x95, 0xe5, 0x49, 0x18, 0x67, 0xaf, 0x10, 0x46, 0x4c, 0x44, 0x44, 0x97, 0x2f, 0x4a, 0x52,
+ 0xdf, 0x10, 0xc6, 0x32, 0x19, 0x12, 0x5c, 0xbe, 0x28, 0xc9, 0xb5, 0x25, 0xc8, 0xd1, 0xe8, 0x92,
+ 0x65, 0x28, 0xaf, 0x35, 0x16, 0x9b, 0x6b, 0xea, 0xe6, 0xd6, 0xf6, 0xea, 0xe6, 0x46, 0x63, 0x4d,
+ 0x4a, 0xf5, 0x65, 0x4a, 0xf3, 0x53, 0x3b, 0xab, 0x4a, 0x73, 0x59, 0x4a, 0x07, 0x65, 0x5b, 0xcd,
+ 0xc6, 0x76, 0x73, 0x59, 0xca, 0xd4, 0x34, 0x98, 0x1e, 0x96, 0x27, 0x87, 0xee, 0x8c, 0xc0, 0x12,
+ 0xa7, 0x8f, 0x59, 0x62, 0xca, 0x35, 0xb0, 0xc4, 0x3f, 0x4c, 0xc3, 0xd4, 0x90, 0x5a, 0x31, 0xf4,
+ 0x25, 0xcf, 0x42, 0x8e, 0x85, 0x28, 0xab, 0x9e, 0x8f, 0x0f, 0x2d, 0x3a, 0x34, 0x60, 0x07, 0x2a,
+ 0x28, 0xc5, 0x05, 0x3b, 0x88, 0xcc, 0x31, 0x1d, 0x04, 0xa1, 0x18, 0xc8, 0xe9, 0x3f, 0x3d, 0x90,
+ 0xd3, 0x59, 0xd9, 0xbb, 0x9c, 0xa4, 0xec, 0x51, 0xd9, 0xc9, 0x72, 0x7b, 0x6e, 0x48, 0x6e, 0xbf,
+ 0x06, 0x93, 0x03, 0x44, 0x89, 0x73, 0xec, 0x2b, 0x29, 0xa8, 0x1c, 0xe7, 0x9c, 0x98, 0x4c, 0x97,
+ 0x0e, 0x65, 0xba, 0x6b, 0x51, 0x0f, 0x9e, 0x3b, 0x7e, 0x11, 0x06, 0xd6, 0xfa, 0x8d, 0x14, 0x9c,
+ 0x1a, 0xde, 0x29, 0x0e, 0xb5, 0xe1, 0x19, 0x18, 0xed, 0x62, 0x6f, 0xdf, 0x12, 0xdd, 0xd2, 0x47,
+ 0x87, 0xd4, 0x60, 0x32, 0x1c, 0x5d, 0x6c, 0x8e, 0x0a, 0x16, 0xf1, 0xcc, 0x71, 0xed, 0x1e, 0xb3,
+ 0x66, 0xc0, 0xd2, 0xcf, 0xa5, 0xe1, 0x81, 0xa1, 0xe4, 0x43, 0x0d, 0x7d, 0x08, 0x40, 0x37, 0xed,
+ 0x9e, 0xc7, 0x3a, 0x22, 0x96, 0x60, 0x0b, 0x54, 0x42, 0x93, 0x17, 0x49, 0x9e, 0x3d, 0xcf, 0x1f,
+ 0xcf, 0xd0, 0x71, 0x60, 0x22, 0xaa, 0x70, 0xa5, 0x6f, 0x68, 0x96, 0x1a, 0x5a, 0x3d, 0x66, 0xa6,
+ 0x03, 0x81, 0xf9, 0x71, 0x90, 0x34, 0x43, 0xc7, 0xa6, 0xa7, 0xba, 0x9e, 0x83, 0x51, 0x57, 0x37,
+ 0x3b, 0xb4, 0x82, 0xe4, 0xeb, 0xb9, 0x3d, 0x64, 0xb8, 0x58, 0x99, 0x60, 0xc3, 0x2d, 0x31, 0x4a,
+ 0x10, 0x34, 0x80, 0x9c, 0x00, 0x62, 0x34, 0x84, 0x60, 0xc3, 0x3e, 0xa2, 0xf6, 0x2b, 0x05, 0x28,
+ 0x06, 0xfa, 0x6a, 0xf9, 0x1c, 0x94, 0x6e, 0xa0, 0x9b, 0x48, 0x15, 0x67, 0x25, 0xe6, 0x89, 0x22,
+ 0x91, 0x6d, 0xf1, 0xf3, 0xd2, 0xc7, 0x61, 0x9a, 0xaa, 0x58, 0x3d, 0x0f, 0x3b, 0xaa, 0x66, 0x20,
+ 0xd7, 0xa5, 0x4e, 0xcb, 0x53, 0x55, 0x99, 0x8c, 0x6d, 0x92, 0xa1, 0x25, 0x31, 0x22, 0x5f, 0x82,
+ 0x29, 0x8a, 0xe8, 0xf6, 0x0c, 0x4f, 0xb7, 0x0d, 0xac, 0x92, 0xd3, 0x9b, 0x4b, 0x2b, 0x89, 0x6f,
+ 0xd9, 0x24, 0xd1, 0x58, 0xe7, 0x0a, 0xc4, 0x22, 0x57, 0x5e, 0x86, 0x87, 0x28, 0xac, 0x83, 0x4d,
+ 0xec, 0x20, 0x0f, 0xab, 0xf8, 0xb3, 0x3d, 0x64, 0xb8, 0x2a, 0x32, 0xdb, 0xea, 0x3e, 0x72, 0xf7,
+ 0x2b, 0xd3, 0x84, 0x60, 0x31, 0x5d, 0x49, 0x29, 0x67, 0x88, 0xe2, 0x0a, 0xd7, 0x6b, 0x52, 0xb5,
+ 0x86, 0xd9, 0xfe, 0x24, 0x72, 0xf7, 0xe5, 0x3a, 0x9c, 0xa2, 0x2c, 0xae, 0xe7, 0xe8, 0x66, 0x47,
+ 0xd5, 0xf6, 0xb1, 0x76, 0xa0, 0xf6, 0xbc, 0xbd, 0x2b, 0x95, 0x07, 0x83, 0xef, 0xa7, 0x16, 0xb6,
+ 0xa8, 0xce, 0x12, 0x51, 0xd9, 0xf1, 0xf6, 0xae, 0xc8, 0x2d, 0x28, 0x91, 0xc5, 0xe8, 0xea, 0xb7,
+ 0xb1, 0xba, 0x67, 0x39, 0xb4, 0x34, 0x96, 0x87, 0xa4, 0xa6, 0x80, 0x07, 0xe7, 0x37, 0x39, 0x60,
+ 0xdd, 0x6a, 0xe3, 0x7a, 0xae, 0xb5, 0xd5, 0x6c, 0x2e, 0x2b, 0x45, 0xc1, 0x72, 0xdd, 0x72, 0x48,
+ 0x40, 0x75, 0x2c, 0xdf, 0xc1, 0x45, 0x16, 0x50, 0x1d, 0x4b, 0xb8, 0xf7, 0x12, 0x4c, 0x69, 0x1a,
+ 0x9b, 0xb3, 0xae, 0xa9, 0xfc, 0x8c, 0xe5, 0x56, 0xa4, 0x90, 0xb3, 0x34, 0x6d, 0x85, 0x29, 0xf0,
+ 0x18, 0x77, 0xe5, 0xab, 0xf0, 0x40, 0xdf, 0x59, 0x41, 0xe0, 0xe4, 0xc0, 0x2c, 0xa3, 0xd0, 0x4b,
+ 0x30, 0x65, 0x1f, 0x0e, 0x02, 0xe5, 0xd0, 0x1b, 0xed, 0xc3, 0x28, 0xec, 0x69, 0x98, 0xb6, 0xf7,
+ 0xed, 0x41, 0xdc, 0x13, 0x41, 0x9c, 0x6c, 0xef, 0xdb, 0x51, 0xe0, 0xa3, 0xf4, 0xc0, 0xed, 0x60,
+ 0x0d, 0x79, 0xb8, 0x5d, 0x39, 0x1d, 0x54, 0x0f, 0x0c, 0xc8, 0x0b, 0x20, 0x69, 0x9a, 0x8a, 0x4d,
+ 0xb4, 0x6b, 0x60, 0x15, 0x39, 0xd8, 0x44, 0x6e, 0xe5, 0x6c, 0x50, 0xb9, 0xac, 0x69, 0x4d, 0x3a,
+ 0xda, 0xa0, 0x83, 0xf2, 0x13, 0x30, 0x69, 0xed, 0xde, 0xd0, 0x58, 0x48, 0xaa, 0xb6, 0x83, 0xf7,
+ 0xf4, 0x97, 0x2b, 0x8f, 0x50, 0xff, 0x4e, 0x90, 0x01, 0x1a, 0x90, 0x5b, 0x54, 0x2c, 0x3f, 0x0e,
+ 0x92, 0xe6, 0xee, 0x23, 0xc7, 0xa6, 0x39, 0xd9, 0xb5, 0x91, 0x86, 0x2b, 0x8f, 0x32, 0x55, 0x26,
+ 0xdf, 0x10, 0x62, 0xb2, 0x25, 0xdc, 0x5b, 0xfa, 0x9e, 0x27, 0x18, 0x1f, 0x63, 0x5b, 0x82, 0xca,
+ 0x38, 0xdb, 0x1c, 0x48, 0xc4, 0x15, 0xa1, 0x17, 0xcf, 0x51, 0xb5, 0xb2, 0xbd, 0x6f, 0x07, 0xdf,
+ 0xfb, 0x30, 0x8c, 0x13, 0xcd, 0xfe, 0x4b, 0x1f, 0x67, 0x0d, 0x99, 0xbd, 0x1f, 0x78, 0xe3, 0x45,
+ 0x38, 0x45, 0x94, 0xba, 0xd8, 0x43, 0x6d, 0xe4, 0xa1, 0x80, 0xf6, 0xc7, 0xa8, 0x36, 0xf1, 0xfb,
+ 0x3a, 0x1f, 0x0c, 0xd9, 0xe9, 0xf4, 0x76, 0x0f, 0xfd, 0xc8, 0x7a, 0x8a, 0xd9, 0x49, 0x64, 0x22,
+ 0xb6, 0x3e, 0xb0, 0xa6, 0xbb, 0x56, 0x87, 0x52, 0x30, 0xf0, 0xe5, 0x02, 0xb0, 0xd0, 0x97, 0x52,
+ 0xa4, 0x0b, 0x5a, 0xda, 0x5c, 0x26, 0xfd, 0xcb, 0x4b, 0x4d, 0x29, 0x4d, 0xfa, 0xa8, 0xb5, 0xd5,
+ 0xed, 0xa6, 0xaa, 0xec, 0x6c, 0x6c, 0xaf, 0xae, 0x37, 0xa5, 0x4c, 0xb0, 0x61, 0xff, 0x5e, 0x1a,
+ 0xca, 0xe1, 0xb3, 0x97, 0xfc, 0xff, 0xe0, 0xb4, 0xb8, 0x28, 0x71, 0xb1, 0xa7, 0xde, 0xd2, 0x1d,
+ 0xba, 0x17, 0xbb, 0x88, 0xd5, 0x45, 0x3f, 0x1a, 0xa6, 0xb9, 0x56, 0x0b, 0x7b, 0xcf, 0xeb, 0x0e,
+ 0xd9, 0x69, 0x5d, 0xe4, 0xc9, 0x6b, 0x70, 0xd6, 0xb4, 0x54, 0xd7, 0x43, 0x66, 0x1b, 0x39, 0x6d,
+ 0xb5, 0x7f, 0x45, 0xa5, 0x22, 0x4d, 0xc3, 0xae, 0x6b, 0xb1, 0x1a, 0xe8, 0xb3, 0x7c, 0xc4, 0xb4,
+ 0x5a, 0x5c, 0xb9, 0x5f, 0x1c, 0x1a, 0x5c, 0x35, 0x12, 0xb9, 0x99, 0xe3, 0x22, 0xf7, 0x41, 0x28,
+ 0x74, 0x91, 0xad, 0x62, 0xd3, 0x73, 0x0e, 0x69, 0xc7, 0x9d, 0x57, 0xf2, 0x5d, 0x64, 0x37, 0xc9,
+ 0xf3, 0x87, 0x73, 0xf0, 0xf9, 0xe7, 0x0c, 0x94, 0x82, 0x5d, 0x37, 0x39, 0xc4, 0x68, 0xb4, 0x40,
+ 0xa5, 0x68, 0x0a, 0x7b, 0xf8, 0xbe, 0x3d, 0xfa, 0xfc, 0x12, 0xa9, 0x5c, 0xf5, 0x51, 0xd6, 0x0b,
+ 0x2b, 0x0c, 0x49, 0xba, 0x06, 0x12, 0x5a, 0x98, 0xf5, 0x1e, 0x79, 0x85, 0x3f, 0xc9, 0x2b, 0x30,
+ 0x7a, 0xc3, 0xa5, 0xdc, 0xa3, 0x94, 0xfb, 0x91, 0xfb, 0x73, 0x3f, 0xd7, 0xa2, 0xe4, 0x85, 0xe7,
+ 0x5a, 0xea, 0xc6, 0xa6, 0xb2, 0xde, 0x58, 0x53, 0x38, 0x5c, 0x3e, 0x03, 0x59, 0x03, 0xdd, 0x3e,
+ 0x0c, 0xd7, 0x38, 0x2a, 0x4a, 0xea, 0xf8, 0x33, 0x90, 0xbd, 0x85, 0xd1, 0x41, 0xb8, 0xb2, 0x50,
+ 0xd1, 0x07, 0x18, 0xfa, 0x0b, 0x90, 0xa3, 0xfe, 0x92, 0x01, 0xb8, 0xc7, 0xa4, 0x11, 0x39, 0x0f,
+ 0xd9, 0xa5, 0x4d, 0x85, 0x84, 0xbf, 0x04, 0x25, 0x26, 0x55, 0xb7, 0x56, 0x9b, 0x4b, 0x4d, 0x29,
+ 0x5d, 0xbb, 0x04, 0xa3, 0xcc, 0x09, 0x64, 0x6b, 0xf8, 0x6e, 0x90, 0x46, 0xf8, 0x23, 0xe7, 0x48,
+ 0x89, 0xd1, 0x9d, 0xf5, 0xc5, 0xa6, 0x22, 0xa5, 0x83, 0xcb, 0xeb, 0x42, 0x29, 0xd8, 0x70, 0x7f,
+ 0x38, 0x31, 0xf5, 0xdd, 0x14, 0x14, 0x03, 0x0d, 0x34, 0xe9, 0x7c, 0x90, 0x61, 0x58, 0xb7, 0x54,
+ 0x64, 0xe8, 0xc8, 0xe5, 0x41, 0x01, 0x54, 0xd4, 0x20, 0x92, 0xa4, 0x8b, 0xf6, 0xa1, 0x18, 0xff,
+ 0x7a, 0x0a, 0xa4, 0x68, 0xef, 0x1a, 0x31, 0x30, 0xf5, 0x13, 0x35, 0xf0, 0xb5, 0x14, 0x94, 0xc3,
+ 0x0d, 0x6b, 0xc4, 0xbc, 0x73, 0x3f, 0x51, 0xf3, 0xde, 0x4a, 0xc3, 0x78, 0xa8, 0x4d, 0x4d, 0x6a,
+ 0xdd, 0x67, 0x61, 0x52, 0x6f, 0xe3, 0xae, 0x6d, 0x79, 0xd8, 0xd4, 0x0e, 0x55, 0x03, 0xdf, 0xc4,
+ 0x46, 0xa5, 0x46, 0x13, 0xc5, 0xc2, 0xfd, 0x1b, 0xe1, 0xf9, 0xd5, 0x3e, 0x6e, 0x8d, 0xc0, 0xea,
+ 0x53, 0xab, 0xcb, 0xcd, 0xf5, 0xad, 0xcd, 0xed, 0xe6, 0xc6, 0xd2, 0x8b, 0xea, 0xce, 0xc6, 0x4f,
+ 0x6d, 0x6c, 0x3e, 0xbf, 0xa1, 0x48, 0x7a, 0x44, 0xed, 0x03, 0xdc, 0xea, 0x5b, 0x20, 0x45, 0x8d,
+ 0x92, 0x4f, 0xc3, 0x30, 0xb3, 0xa4, 0x11, 0x79, 0x0a, 0x26, 0x36, 0x36, 0xd5, 0xd6, 0xea, 0x72,
+ 0x53, 0x6d, 0x5e, 0xbf, 0xde, 0x5c, 0xda, 0x6e, 0xb1, 0xab, 0x0d, 0x5f, 0x7b, 0x3b, 0xbc, 0xa9,
+ 0x5f, 0xcd, 0xc0, 0xd4, 0x10, 0x4b, 0xe4, 0x06, 0x3f, 0x94, 0xb0, 0x73, 0xd2, 0x53, 0x49, 0xac,
+ 0x9f, 0x27, 0x5d, 0xc1, 0x16, 0x72, 0x3c, 0x7e, 0x86, 0x79, 0x1c, 0x88, 0x97, 0x4c, 0x4f, 0xdf,
+ 0xd3, 0xb1, 0xc3, 0x6f, 0x82, 0xd8, 0x49, 0x65, 0xa2, 0x2f, 0x67, 0x97, 0x41, 0x1f, 0x03, 0xd9,
+ 0xb6, 0x5c, 0xdd, 0xd3, 0x6f, 0x62, 0x55, 0x37, 0xc5, 0xb5, 0x11, 0x39, 0xb9, 0x64, 0x15, 0x49,
+ 0x8c, 0xac, 0x9a, 0x9e, 0xaf, 0x6d, 0xe2, 0x0e, 0x8a, 0x68, 0x93, 0x04, 0x9e, 0x51, 0x24, 0x31,
+ 0xe2, 0x6b, 0x9f, 0x83, 0x52, 0xdb, 0xea, 0x91, 0x76, 0x8e, 0xe9, 0x91, 0x7a, 0x91, 0x52, 0x8a,
+ 0x4c, 0xe6, 0xab, 0xf0, 0x46, 0xbd, 0x7f, 0x5f, 0x55, 0x52, 0x8a, 0x4c, 0xc6, 0x54, 0x1e, 0x83,
+ 0x09, 0xd4, 0xe9, 0x38, 0x84, 0x5c, 0x10, 0xb1, 0xa3, 0x47, 0xd9, 0x17, 0x53, 0xc5, 0x99, 0xe7,
+ 0x20, 0x2f, 0xfc, 0x40, 0x4a, 0x32, 0xf1, 0x84, 0x6a, 0xb3, 0xf3, 0x74, 0x7a, 0xae, 0xa0, 0xe4,
+ 0x4d, 0x31, 0x78, 0x0e, 0x4a, 0xba, 0xab, 0xf6, 0xaf, 0xdf, 0xd3, 0xb3, 0xe9, 0xb9, 0xbc, 0x52,
+ 0xd4, 0x5d, 0xff, 0xea, 0xb2, 0xf6, 0x46, 0x1a, 0xca, 0xe1, 0xcf, 0x07, 0xf2, 0x32, 0xe4, 0x0d,
+ 0x4b, 0x43, 0x34, 0xb4, 0xd8, 0xb7, 0xab, 0xb9, 0x98, 0x2f, 0x0e, 0xf3, 0x6b, 0x5c, 0x5f, 0xf1,
+ 0x91, 0x33, 0xff, 0x98, 0x82, 0xbc, 0x10, 0xcb, 0xa7, 0x20, 0x6b, 0x23, 0x6f, 0x9f, 0xd2, 0xe5,
+ 0x16, 0xd3, 0x52, 0x4a, 0xa1, 0xcf, 0x44, 0xee, 0xda, 0xc8, 0xa4, 0x21, 0xc0, 0xe5, 0xe4, 0x99,
+ 0xac, 0xab, 0x81, 0x51, 0x9b, 0x9e, 0x6b, 0xac, 0x6e, 0x17, 0x9b, 0x9e, 0x2b, 0xd6, 0x95, 0xcb,
+ 0x97, 0xb8, 0x58, 0x7e, 0x12, 0x26, 0x3d, 0x07, 0xe9, 0x46, 0x48, 0x37, 0x4b, 0x75, 0x25, 0x31,
+ 0xe0, 0x2b, 0xd7, 0xe1, 0x8c, 0xe0, 0x6d, 0x63, 0x0f, 0x69, 0xfb, 0xb8, 0xdd, 0x07, 0x8d, 0xd2,
+ 0xfb, 0x8b, 0xd3, 0x5c, 0x61, 0x99, 0x8f, 0x0b, 0x6c, 0xed, 0x07, 0x29, 0x98, 0x14, 0x27, 0xb1,
+ 0xb6, 0xef, 0xac, 0x75, 0x00, 0x64, 0x9a, 0x96, 0x17, 0x74, 0xd7, 0x60, 0x28, 0x0f, 0xe0, 0xe6,
+ 0x1b, 0x3e, 0x48, 0x09, 0x10, 0xcc, 0x74, 0x01, 0xfa, 0x23, 0xc7, 0xba, 0xed, 0x2c, 0x14, 0xf9,
+ 0xb7, 0x21, 0xfa, 0x81, 0x91, 0x9d, 0xdd, 0x81, 0x89, 0xc8, 0x91, 0x4d, 0x9e, 0x86, 0xdc, 0x2e,
+ 0xee, 0xe8, 0x26, 0xbf, 0xf1, 0x65, 0x0f, 0xe2, 0x86, 0x25, 0xeb, 0xdf, 0xb0, 0x2c, 0x7e, 0x06,
+ 0xa6, 0x34, 0xab, 0x1b, 0x35, 0x77, 0x51, 0x8a, 0xdc, 0x1f, 0xb8, 0x9f, 0x4c, 0xbd, 0x04, 0xfd,
+ 0x16, 0xf3, 0xbd, 0x54, 0xea, 0xcb, 0xe9, 0xcc, 0xca, 0xd6, 0xe2, 0xd7, 0xd2, 0x33, 0x2b, 0x0c,
+ 0xba, 0x25, 0x66, 0xaa, 0xe0, 0x3d, 0x03, 0x6b, 0xc4, 0x7a, 0xf8, 0xca, 0x93, 0xf0, 0x54, 0x47,
+ 0xf7, 0xf6, 0x7b, 0xbb, 0xf3, 0x9a, 0xd5, 0x5d, 0xe8, 0x58, 0x1d, 0xab, 0xff, 0x4d, 0x95, 0x3c,
+ 0xd1, 0x07, 0xfa, 0x1f, 0xff, 0xae, 0x5a, 0xf0, 0xa5, 0x33, 0xb1, 0x1f, 0x61, 0xeb, 0x1b, 0x30,
+ 0xc5, 0x95, 0x55, 0xfa, 0x61, 0x87, 0x1d, 0x4f, 0xe4, 0xfb, 0x5e, 0x8e, 0x55, 0xbe, 0xf1, 0x36,
+ 0x2d, 0xd7, 0xca, 0x24, 0x87, 0x92, 0x31, 0x76, 0x82, 0xa9, 0x2b, 0xf0, 0x40, 0x88, 0x8f, 0x6d,
+ 0x4d, 0xec, 0xc4, 0x30, 0x7e, 0x8f, 0x33, 0x4e, 0x05, 0x18, 0x5b, 0x1c, 0x5a, 0x5f, 0x82, 0xf1,
+ 0x93, 0x70, 0xfd, 0x3d, 0xe7, 0x2a, 0xe1, 0x20, 0xc9, 0x0a, 0x4c, 0x50, 0x12, 0xad, 0xe7, 0x7a,
+ 0x56, 0x97, 0xe6, 0xbd, 0xfb, 0xd3, 0xfc, 0xc3, 0xdb, 0x6c, 0xaf, 0x94, 0x09, 0x6c, 0xc9, 0x47,
+ 0xd5, 0xeb, 0x40, 0xbf, 0x65, 0xb5, 0xb1, 0x66, 0xc4, 0x30, 0xbc, 0xc9, 0x0d, 0xf1, 0xf5, 0xeb,
+ 0x9f, 0x86, 0x69, 0xf2, 0x3f, 0x4d, 0x4b, 0x41, 0x4b, 0xe2, 0x6f, 0xd2, 0x2a, 0x3f, 0x78, 0x85,
+ 0x6d, 0xc7, 0x29, 0x9f, 0x20, 0x60, 0x53, 0x60, 0x15, 0x3b, 0xd8, 0xf3, 0xb0, 0xe3, 0xaa, 0xc8,
+ 0x18, 0x66, 0x5e, 0xe0, 0x2a, 0xa2, 0xf2, 0x85, 0x77, 0xc2, 0xab, 0xb8, 0xc2, 0x90, 0x0d, 0xc3,
+ 0xa8, 0xef, 0xc0, 0xe9, 0x21, 0x51, 0x91, 0x80, 0xf3, 0x55, 0xce, 0x39, 0x3d, 0x10, 0x19, 0x84,
+ 0x76, 0x0b, 0x84, 0xdc, 0x5f, 0xcb, 0x04, 0x9c, 0xbf, 0xc7, 0x39, 0x65, 0x8e, 0x15, 0x4b, 0x4a,
+ 0x18, 0x9f, 0x83, 0xc9, 0x9b, 0xd8, 0xd9, 0xb5, 0x5c, 0x7e, 0xfd, 0x93, 0x80, 0xee, 0x35, 0x4e,
+ 0x37, 0xc1, 0x81, 0xf4, 0x3e, 0x88, 0x70, 0x5d, 0x85, 0xfc, 0x1e, 0xd2, 0x70, 0x02, 0x8a, 0x2f,
+ 0x72, 0x8a, 0x31, 0xa2, 0x4f, 0xa0, 0x0d, 0x28, 0x75, 0x2c, 0x5e, 0x99, 0xe2, 0xe1, 0xaf, 0x73,
+ 0x78, 0x51, 0x60, 0x38, 0x85, 0x6d, 0xd9, 0x3d, 0x83, 0x94, 0xad, 0x78, 0x8a, 0xdf, 0x17, 0x14,
+ 0x02, 0xc3, 0x29, 0x4e, 0xe0, 0xd6, 0x3f, 0x10, 0x14, 0x6e, 0xc0, 0x9f, 0xcf, 0x42, 0xd1, 0x32,
+ 0x8d, 0x43, 0xcb, 0x4c, 0x62, 0xc4, 0x97, 0x38, 0x03, 0x70, 0x08, 0x21, 0xb8, 0x06, 0x85, 0xa4,
+ 0x0b, 0xf1, 0x47, 0xef, 0x88, 0xed, 0x21, 0x56, 0x60, 0x05, 0x26, 0x44, 0x82, 0xd2, 0x2d, 0x33,
+ 0x01, 0xc5, 0x57, 0x38, 0x45, 0x39, 0x00, 0xe3, 0xd3, 0xf0, 0xb0, 0xeb, 0x75, 0x70, 0x12, 0x92,
+ 0x37, 0xc4, 0x34, 0x38, 0x84, 0xbb, 0x72, 0x17, 0x9b, 0xda, 0x7e, 0x32, 0x86, 0xaf, 0x0a, 0x57,
+ 0x0a, 0x0c, 0xa1, 0x58, 0x82, 0xf1, 0x2e, 0x72, 0xdc, 0x7d, 0x64, 0x24, 0x5a, 0x8e, 0x3f, 0xe6,
+ 0x1c, 0x25, 0x1f, 0xc4, 0x3d, 0xd2, 0x33, 0x4f, 0x42, 0xf3, 0x35, 0xe1, 0x91, 0x00, 0x8c, 0x6f,
+ 0x3d, 0xd7, 0xa3, 0x77, 0x65, 0x27, 0x61, 0xfb, 0x13, 0xb1, 0xf5, 0x18, 0x76, 0x3d, 0xc8, 0x78,
+ 0x0d, 0x0a, 0xae, 0x7e, 0x3b, 0x11, 0xcd, 0x9f, 0x8a, 0x95, 0xa6, 0x00, 0x02, 0x7e, 0x11, 0xce,
+ 0x0c, 0x2d, 0x13, 0x09, 0xc8, 0xfe, 0x8c, 0x93, 0x9d, 0x1a, 0x52, 0x2a, 0x78, 0x4a, 0x38, 0x29,
+ 0xe5, 0x9f, 0x8b, 0x94, 0x80, 0x23, 0x5c, 0x5b, 0xe4, 0xac, 0xe0, 0xa2, 0xbd, 0x93, 0x79, 0xed,
+ 0x2f, 0x84, 0xd7, 0x18, 0x36, 0xe4, 0xb5, 0x6d, 0x38, 0xc5, 0x19, 0x4f, 0xb6, 0xae, 0x5f, 0x17,
+ 0x89, 0x95, 0xa1, 0x77, 0xc2, 0xab, 0xfb, 0x19, 0x98, 0xf1, 0xdd, 0x29, 0x9a, 0x52, 0x57, 0xed,
+ 0x22, 0x3b, 0x01, 0xf3, 0x37, 0x38, 0xb3, 0xc8, 0xf8, 0x7e, 0x57, 0xeb, 0xae, 0x23, 0x9b, 0x90,
+ 0xbf, 0x00, 0x15, 0x41, 0xde, 0x33, 0x1d, 0xac, 0x59, 0x1d, 0x53, 0xbf, 0x8d, 0xdb, 0x09, 0xa8,
+ 0xff, 0x32, 0xb2, 0x54, 0x3b, 0x01, 0x38, 0x61, 0x5e, 0x05, 0xc9, 0xef, 0x55, 0x54, 0xbd, 0x6b,
+ 0x5b, 0x8e, 0x17, 0xc3, 0xf8, 0x4d, 0xb1, 0x52, 0x3e, 0x6e, 0x95, 0xc2, 0xea, 0x4d, 0x28, 0xd3,
+ 0xc7, 0xa4, 0x21, 0xf9, 0x57, 0x9c, 0x68, 0xbc, 0x8f, 0xe2, 0x89, 0x43, 0xb3, 0xba, 0x36, 0x72,
+ 0x92, 0xe4, 0xbf, 0xbf, 0x16, 0x89, 0x83, 0x43, 0x78, 0xe2, 0xf0, 0x0e, 0x6d, 0x4c, 0xaa, 0x7d,
+ 0x02, 0x86, 0x6f, 0x89, 0xc4, 0x21, 0x30, 0x9c, 0x42, 0x34, 0x0c, 0x09, 0x28, 0xfe, 0x46, 0x50,
+ 0x08, 0x0c, 0xa1, 0xf8, 0x54, 0xbf, 0xd0, 0x3a, 0xb8, 0xa3, 0xbb, 0x9e, 0xc3, 0x5a, 0xe1, 0xfb,
+ 0x53, 0x7d, 0xfb, 0x9d, 0x70, 0x13, 0xa6, 0x04, 0xa0, 0x24, 0x13, 0xf1, 0x2b, 0x54, 0x7a, 0x52,
+ 0x8a, 0x37, 0xec, 0x3b, 0x22, 0x13, 0x05, 0x60, 0xc4, 0xb6, 0x40, 0x87, 0x48, 0xdc, 0xae, 0x91,
+ 0xf3, 0x41, 0x02, 0xba, 0xef, 0x46, 0x8c, 0x6b, 0x09, 0x2c, 0xe1, 0x0c, 0xf4, 0x3f, 0x3d, 0xf3,
+ 0x00, 0x1f, 0x26, 0x8a, 0xce, 0xbf, 0x8d, 0xf4, 0x3f, 0x3b, 0x0c, 0xc9, 0x72, 0xc8, 0x44, 0xa4,
+ 0x9f, 0x92, 0xe3, 0x7e, 0x05, 0x54, 0xf9, 0xb9, 0x7b, 0x7c, 0xbe, 0xe1, 0x76, 0xaa, 0xbe, 0x46,
+ 0x82, 0x3c, 0xdc, 0xf4, 0xc4, 0x93, 0xbd, 0x72, 0xcf, 0x8f, 0xf3, 0x50, 0xcf, 0x53, 0xbf, 0x0e,
+ 0xe3, 0xa1, 0x86, 0x27, 0x9e, 0xea, 0xe7, 0x39, 0x55, 0x29, 0xd8, 0xef, 0xd4, 0x2f, 0x41, 0x96,
+ 0x34, 0x2f, 0xf1, 0xf0, 0x5f, 0xe0, 0x70, 0xaa, 0x5e, 0xff, 0x04, 0xe4, 0x45, 0xd3, 0x12, 0x0f,
+ 0xfd, 0x45, 0x0e, 0xf5, 0x21, 0x04, 0x2e, 0x1a, 0x96, 0x78, 0xf8, 0x2f, 0x09, 0xb8, 0x80, 0x10,
+ 0x78, 0x72, 0x17, 0xfe, 0xdd, 0x2f, 0x67, 0x79, 0xd1, 0x11, 0xbe, 0xbb, 0x06, 0x63, 0xbc, 0x53,
+ 0x89, 0x47, 0x7f, 0x8e, 0xbf, 0x5c, 0x20, 0xea, 0x4f, 0x43, 0x2e, 0xa1, 0xc3, 0x7f, 0x95, 0x43,
+ 0x99, 0x7e, 0x7d, 0x09, 0x8a, 0x81, 0xee, 0x24, 0x1e, 0xfe, 0x6b, 0x1c, 0x1e, 0x44, 0x11, 0xd3,
+ 0x79, 0x77, 0x12, 0x4f, 0xf0, 0xeb, 0xc2, 0x74, 0x8e, 0x20, 0x6e, 0x13, 0x8d, 0x49, 0x3c, 0xfa,
+ 0x37, 0x84, 0xd7, 0x05, 0xa4, 0xfe, 0x2c, 0x14, 0xfc, 0x62, 0x13, 0x8f, 0xff, 0x4d, 0x8e, 0xef,
+ 0x63, 0x88, 0x07, 0x02, 0xc5, 0x2e, 0x9e, 0xe2, 0xb7, 0x84, 0x07, 0x02, 0x28, 0xb2, 0x8d, 0xa2,
+ 0x0d, 0x4c, 0x3c, 0xd3, 0x6f, 0x8b, 0x6d, 0x14, 0xe9, 0x5f, 0xc8, 0x6a, 0xd2, 0x9c, 0x1f, 0x4f,
+ 0xf1, 0x3b, 0x62, 0x35, 0xa9, 0x3e, 0x31, 0x23, 0xda, 0x11, 0xc4, 0x73, 0xfc, 0xae, 0x30, 0x23,
+ 0xd2, 0x10, 0xd4, 0xb7, 0x40, 0x1e, 0xec, 0x06, 0xe2, 0xf9, 0x3e, 0xcf, 0xf9, 0x26, 0x07, 0x9a,
+ 0x81, 0xfa, 0xf3, 0x70, 0x6a, 0x78, 0x27, 0x10, 0xcf, 0xfa, 0x85, 0x7b, 0x91, 0xb3, 0x5b, 0xb0,
+ 0x11, 0xa8, 0x6f, 0xf7, 0x4b, 0x4a, 0xb0, 0x0b, 0x88, 0xa7, 0x7d, 0xf5, 0x5e, 0x38, 0x71, 0x07,
+ 0x9b, 0x80, 0x7a, 0x03, 0xa0, 0x5f, 0x80, 0xe3, 0xb9, 0x5e, 0xe3, 0x5c, 0x01, 0x10, 0xd9, 0x1a,
+ 0xbc, 0xfe, 0xc6, 0xe3, 0xbf, 0x28, 0xb6, 0x06, 0x47, 0x90, 0xad, 0x21, 0x4a, 0x6f, 0x3c, 0xfa,
+ 0x75, 0xb1, 0x35, 0x04, 0x84, 0x44, 0x76, 0xa0, 0xba, 0xc5, 0x33, 0x7c, 0x49, 0x44, 0x76, 0x00,
+ 0x55, 0xdf, 0x80, 0xc9, 0x81, 0x82, 0x18, 0x4f, 0xf5, 0x65, 0x4e, 0x25, 0x45, 0xeb, 0x61, 0xb0,
+ 0x78, 0xf1, 0x62, 0x18, 0xcf, 0xf6, 0x87, 0x91, 0xe2, 0xc5, 0x6b, 0x61, 0xfd, 0x1a, 0xe4, 0xcd,
+ 0x9e, 0x61, 0x90, 0xcd, 0x23, 0xdf, 0xff, 0x97, 0x7b, 0x95, 0x7f, 0x7d, 0x9f, 0x7b, 0x47, 0x00,
+ 0xea, 0x97, 0x20, 0x87, 0xbb, 0xbb, 0xb8, 0x1d, 0x87, 0xfc, 0xb7, 0xf7, 0x45, 0xc2, 0x24, 0xda,
+ 0xf5, 0x67, 0x01, 0xd8, 0xd5, 0x08, 0xfd, 0xec, 0x17, 0x83, 0xfd, 0xf7, 0xf7, 0xf9, 0x6f, 0x6a,
+ 0xfa, 0x90, 0x3e, 0x01, 0xfb, 0x85, 0xce, 0xfd, 0x09, 0xde, 0x09, 0x13, 0xd0, 0x15, 0xb9, 0x0a,
+ 0x63, 0x37, 0x5c, 0xcb, 0xf4, 0x50, 0x27, 0x0e, 0xfd, 0x1f, 0x1c, 0x2d, 0xf4, 0x89, 0xc3, 0xba,
+ 0x96, 0x83, 0x3d, 0xd4, 0x71, 0xe3, 0xb0, 0xff, 0xc9, 0xb1, 0x3e, 0x80, 0x80, 0x35, 0xe4, 0x7a,
+ 0x49, 0xe6, 0xfd, 0x5f, 0x02, 0x2c, 0x00, 0xc4, 0x68, 0xf2, 0xff, 0x01, 0x3e, 0x8c, 0xc3, 0xbe,
+ 0x2b, 0x8c, 0xe6, 0xfa, 0xf5, 0x4f, 0x40, 0x81, 0xfc, 0xcb, 0x7e, 0x28, 0x17, 0x03, 0xfe, 0x6f,
+ 0x0e, 0xee, 0x23, 0xc8, 0x9b, 0x5d, 0xaf, 0xed, 0xe9, 0xf1, 0xce, 0xfe, 0x1f, 0xbe, 0xd2, 0x42,
+ 0xbf, 0xde, 0x80, 0xa2, 0xeb, 0xb5, 0xdb, 0x3d, 0xde, 0x9f, 0xc6, 0xc0, 0xff, 0xf7, 0x7d, 0xff,
+ 0xca, 0xc2, 0xc7, 0x90, 0xd5, 0xbe, 0x75, 0xe0, 0xd9, 0x16, 0xfd, 0xcc, 0x11, 0xc7, 0x70, 0x8f,
+ 0x33, 0x04, 0x20, 0x8b, 0xcd, 0xe1, 0xd7, 0xb7, 0xb0, 0x62, 0xad, 0x58, 0xec, 0xe2, 0xf6, 0xa5,
+ 0x5a, 0xfc, 0x0d, 0x2c, 0x7c, 0x33, 0x03, 0x15, 0xcd, 0xea, 0xee, 0x5a, 0xee, 0x82, 0x89, 0x75,
+ 0x6f, 0x1f, 0x3b, 0x0b, 0x5d, 0x64, 0xf3, 0x3b, 0xd9, 0x62, 0x17, 0xd9, 0xfc, 0x57, 0xb5, 0xee,
+ 0xcc, 0xc9, 0xee, 0x73, 0x6b, 0x3f, 0x0b, 0x63, 0xeb, 0xc8, 0xde, 0xc6, 0xae, 0x27, 0x53, 0x4f,
+ 0xd3, 0x9f, 0x6f, 0xf1, 0x4b, 0xf2, 0xd9, 0xf9, 0x00, 0xf1, 0x3c, 0x57, 0x9b, 0x6f, 0x79, 0x4e,
+ 0xcb, 0x73, 0xe8, 0x0f, 0x0a, 0x94, 0x51, 0x97, 0x3e, 0xcc, 0x5c, 0x85, 0x62, 0x40, 0x2c, 0x4b,
+ 0x90, 0x39, 0xc0, 0x87, 0xfc, 0x07, 0x5c, 0xe4, 0x5f, 0x79, 0xba, 0xff, 0x0b, 0x4b, 0x22, 0x63,
+ 0x0f, 0xf5, 0xf4, 0x95, 0x54, 0xed, 0x19, 0x18, 0xbb, 0x8e, 0x0e, 0xf0, 0x3a, 0xb2, 0xe5, 0x0b,
+ 0x30, 0x86, 0x4d, 0xcf, 0xd1, 0xb1, 0xcb, 0x0d, 0x38, 0x13, 0x32, 0x80, 0xab, 0xb1, 0x37, 0x0b,
+ 0xcd, 0xda, 0x1a, 0x94, 0x82, 0x03, 0x49, 0xdf, 0x4d, 0xa4, 0x16, 0xf1, 0x23, 0xff, 0x68, 0xc1,
+ 0x1e, 0x16, 0x97, 0xdf, 0xbc, 0x5b, 0x1d, 0xf9, 0xfe, 0xdd, 0xea, 0xc8, 0x3f, 0xdd, 0xad, 0x8e,
+ 0xbc, 0x75, 0xb7, 0x9a, 0x7a, 0xf7, 0x6e, 0x35, 0xf5, 0xde, 0xdd, 0x6a, 0xea, 0xce, 0x51, 0x35,
+ 0xf5, 0xd5, 0xa3, 0x6a, 0xea, 0xeb, 0x47, 0xd5, 0xd4, 0xb7, 0x8f, 0xaa, 0xa9, 0x37, 0x8f, 0xaa,
+ 0x23, 0xdf, 0x3f, 0xaa, 0x8e, 0xbc, 0x75, 0x54, 0x4d, 0xfd, 0xe8, 0xa8, 0x3a, 0xf2, 0xee, 0x51,
+ 0x35, 0xf5, 0xde, 0x51, 0x75, 0xe4, 0xce, 0x0f, 0xab, 0x23, 0xbb, 0xa3, 0xd4, 0xb7, 0x17, 0xfe,
+ 0x2f, 0x00, 0x00, 0xff, 0xff, 0x42, 0xfd, 0xe9, 0xc1, 0xaa, 0x34, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -920,29 +949,3 @@ func valueToStringMap(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
-
-func init() { proto.RegisterFile("combos/neither/map.proto", fileDescriptor_map_f8afe0c559a577e0) }
-
-var fileDescriptor_map_f8afe0c559a577e0 = []byte{
- // 313 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0x3f, 0x4f, 0x32, 0x41,
- 0x10, 0x87, 0x77, 0x20, 0x2f, 0x97, 0x77, 0xb1, 0x30, 0x17, 0x8b, 0x93, 0x62, 0x42, 0xa8, 0x68,
- 0xbc, 0x4b, 0xa4, 0x11, 0x0b, 0x0b, 0xa3, 0x56, 0xd2, 0x80, 0xbd, 0xd9, 0xc3, 0xe5, 0x4f, 0xe0,
- 0xd8, 0xcb, 0xee, 0x9e, 0x09, 0x95, 0x7c, 0x1c, 0x4b, 0x4b, 0x3f, 0x02, 0x25, 0xa5, 0x25, 0xbb,
- 0x36, 0x96, 0x94, 0x94, 0x86, 0xbd, 0x33, 0x39, 0x3b, 0xbb, 0x79, 0x7e, 0xfb, 0xec, 0xcc, 0x64,
- 0x68, 0x30, 0x14, 0x49, 0x2c, 0x54, 0xb4, 0xe0, 0x53, 0x3d, 0xe1, 0x32, 0x4a, 0x58, 0x1a, 0xa6,
- 0x52, 0x68, 0xe1, 0xd7, 0x13, 0x96, 0x3e, 0xf1, 0x11, 0xcb, 0xe6, 0x5a, 0x35, 0xce, 0xc6, 0x53,
- 0x3d, 0xc9, 0xe2, 0x70, 0x28, 0x92, 0x68, 0x2c, 0xc6, 0x22, 0x72, 0x4e, 0x9c, 0x8d, 0x1c, 0x39,
- 0x70, 0x55, 0xfe, 0xb7, 0xf5, 0x42, 0xbd, 0x1e, 0x4b, 0x1f, 0xb8, 0xd2, 0x7e, 0x97, 0x7a, 0x4a,
- 0xcb, 0x47, 0xa5, 0x65, 0x00, 0xcd, 0x6a, 0xbb, 0x7e, 0xde, 0x0c, 0x4b, 0x8d, 0xc3, 0x42, 0x0b,
- 0x07, 0x5a, 0x0e, 0xb4, 0xbc, 0x5d, 0x68, 0xb9, 0xec, 0xd7, 0x94, 0x83, 0x46, 0x97, 0xd6, 0x4b,
- 0xb1, 0x7f, 0x4c, 0xab, 0x33, 0xbe, 0x0c, 0xa0, 0x09, 0xed, 0xff, 0xfd, 0x43, 0xe9, 0x9f, 0xd0,
- 0x7f, 0xcf, 0x6c, 0x9e, 0xf1, 0xa0, 0xe2, 0xb2, 0x1c, 0x2e, 0x2b, 0x17, 0xd0, 0xba, 0xa2, 0xde,
- 0x1d, 0x9b, 0xf1, 0x1e, 0x4b, 0xfd, 0x0e, 0xf5, 0xf8, 0x42, 0xcb, 0x29, 0x57, 0xc5, 0x02, 0xa7,
- 0xbf, 0x16, 0x28, 0xb4, 0x7c, 0xf2, 0x8f, 0xd9, 0xba, 0xa7, 0x47, 0xe5, 0x87, 0xbf, 0xce, 0x3e,
- 0xa4, 0xe2, 0x70, 0xc7, 0xa0, 0x9a, 0xa7, 0x0e, 0xae, 0x6f, 0xd6, 0x06, 0xc9, 0xc6, 0x20, 0xf9,
- 0x30, 0x48, 0xb6, 0x06, 0x61, 0x67, 0x10, 0xf6, 0x06, 0x61, 0x65, 0x11, 0x5e, 0x2d, 0xc2, 0x9b,
- 0x45, 0x78, 0xb7, 0x08, 0x6b, 0x8b, 0x64, 0x63, 0x91, 0x6c, 0x2d, 0xc2, 0x97, 0x45, 0xb2, 0xb3,
- 0x08, 0x7b, 0x8b, 0x64, 0xf5, 0x89, 0x24, 0xae, 0xb9, 0xdb, 0x76, 0xbe, 0x03, 0x00, 0x00, 0xff,
- 0xff, 0x9d, 0x34, 0x83, 0xd1, 0xb3, 0x01, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map.pb.go b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map.pb.go
index 4553399f4f..eeb2ff1ce6 100644
--- a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map.pb.go
@@ -3,22 +3,21 @@
package mapdefaults
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-
-import io "io"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -41,7 +40,7 @@ type MapTest struct {
func (m *MapTest) Reset() { *m = MapTest{} }
func (*MapTest) ProtoMessage() {}
func (*MapTest) Descriptor() ([]byte, []int) {
- return fileDescriptor_map_c5bc2daa9ca30987, []int{0}
+ return fileDescriptor_5846b82278d94871, []int{0}
}
func (m *MapTest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -49,8 +48,8 @@ func (m *MapTest) XXX_Unmarshal(b []byte) error {
func (m *MapTest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MapTest.Marshal(b, m, deterministic)
}
-func (dst *MapTest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MapTest.Merge(dst, src)
+func (m *MapTest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MapTest.Merge(m, src)
}
func (m *MapTest) XXX_Size() int {
return xxx_messageInfo_MapTest.Size(m)
@@ -71,7 +70,7 @@ type FakeMap struct {
func (m *FakeMap) Reset() { *m = FakeMap{} }
func (*FakeMap) ProtoMessage() {}
func (*FakeMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_map_c5bc2daa9ca30987, []int{1}
+ return fileDescriptor_5846b82278d94871, []int{1}
}
func (m *FakeMap) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -79,8 +78,8 @@ func (m *FakeMap) XXX_Unmarshal(b []byte) error {
func (m *FakeMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FakeMap.Marshal(b, m, deterministic)
}
-func (dst *FakeMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FakeMap.Merge(dst, src)
+func (m *FakeMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FakeMap.Merge(m, src)
}
func (m *FakeMap) XXX_Size() int {
return xxx_messageInfo_FakeMap.Size(m)
@@ -103,7 +102,7 @@ type FakeMapEntry struct {
func (m *FakeMapEntry) Reset() { *m = FakeMapEntry{} }
func (*FakeMapEntry) ProtoMessage() {}
func (*FakeMapEntry) Descriptor() ([]byte, []int) {
- return fileDescriptor_map_c5bc2daa9ca30987, []int{2}
+ return fileDescriptor_5846b82278d94871, []int{2}
}
func (m *FakeMapEntry) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -111,8 +110,8 @@ func (m *FakeMapEntry) XXX_Unmarshal(b []byte) error {
func (m *FakeMapEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FakeMapEntry.Marshal(b, m, deterministic)
}
-func (dst *FakeMapEntry) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FakeMapEntry.Merge(dst, src)
+func (m *FakeMapEntry) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FakeMapEntry.Merge(m, src)
}
func (m *FakeMapEntry) XXX_Size() int {
return xxx_messageInfo_FakeMapEntry.Size(m)
@@ -129,6 +128,33 @@ func init() {
proto.RegisterType((*FakeMap)(nil), "mapdefaults.FakeMap")
proto.RegisterType((*FakeMapEntry)(nil), "mapdefaults.FakeMapEntry")
}
+
+func init() { proto.RegisterFile("combos/unmarshaler/map.proto", fileDescriptor_5846b82278d94871) }
+
+var fileDescriptor_5846b82278d94871 = []byte{
+ // 315 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0xbf, 0x4f, 0x02, 0x31,
+ 0x14, 0xc7, 0xfb, 0x20, 0x72, 0xb1, 0x38, 0x98, 0x8b, 0xc3, 0x49, 0xcc, 0x0b, 0x61, 0x62, 0xf1,
+ 0x2e, 0x91, 0x45, 0x1c, 0x1c, 0x8c, 0x3a, 0xc9, 0x02, 0xee, 0xa6, 0x87, 0xe5, 0x47, 0xe0, 0xe8,
+ 0xa5, 0xed, 0x99, 0x30, 0xc9, 0x9f, 0xe3, 0xe8, 0xe8, 0x9f, 0xc0, 0xc8, 0xe8, 0x48, 0xeb, 0xe2,
+ 0xc8, 0xc8, 0x68, 0xe8, 0x61, 0x72, 0x6e, 0x6e, 0xef, 0xf3, 0xed, 0xa7, 0x7d, 0xdf, 0x94, 0x9e,
+ 0xf5, 0x45, 0x12, 0x0b, 0x15, 0x65, 0xb3, 0x84, 0x49, 0x35, 0x62, 0x53, 0x2e, 0xa3, 0x84, 0xa5,
+ 0x61, 0x2a, 0x85, 0x16, 0x7e, 0x35, 0x61, 0xe9, 0x33, 0x1f, 0xb0, 0x6c, 0xaa, 0x55, 0xed, 0x7c,
+ 0x38, 0xd6, 0xa3, 0x2c, 0x0e, 0xfb, 0x22, 0x89, 0x86, 0x62, 0x28, 0x22, 0xe7, 0xc4, 0xd9, 0xc0,
+ 0x91, 0x03, 0x37, 0xe5, 0x77, 0x1b, 0xaf, 0xd4, 0xeb, 0xb0, 0xf4, 0x91, 0x2b, 0xed, 0xb7, 0xa9,
+ 0xa7, 0xb4, 0x7c, 0x52, 0x5a, 0x06, 0x50, 0x2f, 0x37, 0xab, 0x17, 0xf5, 0xb0, 0xf0, 0x70, 0xb8,
+ 0xd7, 0xc2, 0x9e, 0x96, 0x3d, 0x2d, 0xef, 0x66, 0x5a, 0xce, 0xbb, 0x15, 0xe5, 0xa0, 0xd6, 0xa6,
+ 0xd5, 0x42, 0xec, 0x1f, 0xd3, 0xf2, 0x84, 0xcf, 0x03, 0xa8, 0x43, 0xf3, 0xb0, 0xbb, 0x1b, 0xfd,
+ 0x13, 0x7a, 0xf0, 0xc2, 0xa6, 0x19, 0x0f, 0x4a, 0x2e, 0xcb, 0xe1, 0xaa, 0x74, 0x09, 0x8d, 0x6b,
+ 0xea, 0xdd, 0xb3, 0x09, 0xef, 0xb0, 0xd4, 0x6f, 0x51, 0x8f, 0xcf, 0xb4, 0x1c, 0x73, 0xb5, 0x2f,
+ 0x70, 0xfa, 0xa7, 0xc0, 0x5e, 0xcb, 0x37, 0xff, 0x9a, 0x8d, 0x07, 0x7a, 0x54, 0x3c, 0xf8, 0xef,
+ 0xee, 0x5d, 0x2a, 0xf4, 0x88, 0xcb, 0xa0, 0x9c, 0xa7, 0x0e, 0x6e, 0x6e, 0x97, 0x06, 0xc9, 0xca,
+ 0x20, 0xf9, 0x34, 0x48, 0xd6, 0x06, 0x61, 0x63, 0x10, 0xb6, 0x06, 0x61, 0x61, 0x11, 0xde, 0x2c,
+ 0xc2, 0xbb, 0x45, 0xf8, 0xb0, 0x08, 0x4b, 0x8b, 0x64, 0x65, 0x11, 0xd6, 0x16, 0xe1, 0xdb, 0x22,
+ 0xd9, 0x58, 0x84, 0xad, 0x45, 0xb2, 0xf8, 0x42, 0x12, 0x57, 0xdc, 0xdf, 0xb6, 0x7e, 0x02, 0x00,
+ 0x00, 0xff, 0xff, 0x44, 0xd1, 0x73, 0x81, 0xb7, 0x01, 0x00, 0x00,
+}
+
func (this *MapTest) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return MapDescription()
}
@@ -141,256 +167,258 @@ func (this *FakeMapEntry) Description() (desc *github_com_gogo_protobuf_protoc_g
func MapDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 3977 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6,
- 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x82, 0x20, 0x79, 0x97, 0x2b, 0xdb, 0x5c, 0x2d, 0x6d,
- 0xc7, 0xb2, 0xdd, 0x48, 0x99, 0x5d, 0xef, 0x7a, 0x97, 0xdb, 0xd8, 0xa5, 0x24, 0xae, 0x22, 0x57,
- 0x17, 0x06, 0x94, 0xe2, 0x4b, 0xa6, 0x83, 0x81, 0xc0, 0x9f, 0x14, 0x56, 0x20, 0x80, 0x00, 0xe0,
- 0xae, 0xb5, 0xd3, 0x99, 0x6e, 0xc7, 0xbd, 0x4c, 0xa6, 0xd3, 0x7b, 0x67, 0x9a, 0xb8, 0x8e, 0xdb,
- 0xa4, 0xd3, 0x38, 0x4d, 0x6f, 0x49, 0xd3, 0xe6, 0xd6, 0x97, 0xbe, 0xa4, 0xf5, 0x53, 0x27, 0x79,
- 0xeb, 0x43, 0x1f, 0xbc, 0x8a, 0x67, 0x9a, 0xb6, 0x6e, 0xe3, 0xb6, 0xfb, 0xe0, 0x19, 0xbf, 0x64,
- 0xfe, 0x1b, 0x08, 0x80, 0xd4, 0x02, 0xca, 0x8c, 0xed, 0x27, 0x09, 0xe7, 0x3f, 0xdf, 0x87, 0xf3,
- 0x9f, 0xff, 0xfc, 0xe7, 0x9c, 0xff, 0x27, 0xe0, 0xc7, 0x57, 0x60, 0xbe, 0x6b, 0x59, 0x5d, 0x03,
- 0x2d, 0xd9, 0x8e, 0xe5, 0x59, 0x7b, 0xfd, 0xce, 0x52, 0x1b, 0xb9, 0x9a, 0xa3, 0xdb, 0x9e, 0xe5,
- 0x2c, 0x12, 0x99, 0x34, 0x45, 0x35, 0x16, 0xb9, 0x46, 0x75, 0x13, 0xa6, 0xaf, 0xe9, 0x06, 0x5a,
- 0xf5, 0x15, 0x5b, 0xc8, 0x93, 0x2e, 0x43, 0xa6, 0xa3, 0x1b, 0xa8, 0x2c, 0xcc, 0xa7, 0x17, 0x0a,
- 0xe7, 0x1f, 0x5e, 0x8c, 0x80, 0x16, 0xc3, 0x88, 0x26, 0x16, 0xcb, 0x04, 0x51, 0x7d, 0x2b, 0x03,
- 0x33, 0x23, 0x46, 0x25, 0x09, 0x32, 0xa6, 0xda, 0xc3, 0x8c, 0xc2, 0x42, 0x5e, 0x26, 0xff, 0x4b,
- 0x65, 0x98, 0xb0, 0x55, 0xed, 0x40, 0xed, 0xa2, 0x72, 0x8a, 0x88, 0xf9, 0xa3, 0x54, 0x01, 0x68,
- 0x23, 0x1b, 0x99, 0x6d, 0x64, 0x6a, 0x87, 0xe5, 0xf4, 0x7c, 0x7a, 0x21, 0x2f, 0x07, 0x24, 0xd2,
- 0x13, 0x30, 0x6d, 0xf7, 0xf7, 0x0c, 0x5d, 0x53, 0x02, 0x6a, 0x30, 0x9f, 0x5e, 0xc8, 0xca, 0x22,
- 0x1d, 0x58, 0x1d, 0x28, 0x3f, 0x0a, 0x53, 0x37, 0x91, 0x7a, 0x10, 0x54, 0x2d, 0x10, 0xd5, 0x12,
- 0x16, 0x07, 0x14, 0x57, 0xa0, 0xd8, 0x43, 0xae, 0xab, 0x76, 0x91, 0xe2, 0x1d, 0xda, 0xa8, 0x9c,
- 0x21, 0xb3, 0x9f, 0x1f, 0x9a, 0x7d, 0x74, 0xe6, 0x05, 0x86, 0xda, 0x39, 0xb4, 0x91, 0x54, 0x87,
- 0x3c, 0x32, 0xfb, 0x3d, 0xca, 0x90, 0x3d, 0xc6, 0x7f, 0x0d, 0xb3, 0xdf, 0x8b, 0xb2, 0xe4, 0x30,
- 0x8c, 0x51, 0x4c, 0xb8, 0xc8, 0xb9, 0xa1, 0x6b, 0xa8, 0x3c, 0x4e, 0x08, 0x1e, 0x1d, 0x22, 0x68,
- 0xd1, 0xf1, 0x28, 0x07, 0xc7, 0x49, 0x2b, 0x90, 0x47, 0x2f, 0x79, 0xc8, 0x74, 0x75, 0xcb, 0x2c,
- 0x4f, 0x10, 0x92, 0x47, 0x46, 0xac, 0x22, 0x32, 0xda, 0x51, 0x8a, 0x01, 0x4e, 0xba, 0x04, 0x13,
- 0x96, 0xed, 0xe9, 0x96, 0xe9, 0x96, 0x73, 0xf3, 0xc2, 0x42, 0xe1, 0xfc, 0x03, 0x23, 0x03, 0x61,
- 0x9b, 0xea, 0xc8, 0x5c, 0x59, 0x5a, 0x07, 0xd1, 0xb5, 0xfa, 0x8e, 0x86, 0x14, 0xcd, 0x6a, 0x23,
- 0x45, 0x37, 0x3b, 0x56, 0x39, 0x4f, 0x08, 0xce, 0x0e, 0x4f, 0x84, 0x28, 0xae, 0x58, 0x6d, 0xb4,
- 0x6e, 0x76, 0x2c, 0xb9, 0xe4, 0x86, 0x9e, 0xa5, 0x53, 0x30, 0xee, 0x1e, 0x9a, 0x9e, 0xfa, 0x52,
- 0xb9, 0x48, 0x22, 0x84, 0x3d, 0x55, 0xbf, 0x33, 0x0e, 0x53, 0x49, 0x42, 0xec, 0x2a, 0x64, 0x3b,
- 0x78, 0x96, 0xe5, 0xd4, 0x49, 0x7c, 0x40, 0x31, 0x61, 0x27, 0x8e, 0xff, 0x94, 0x4e, 0xac, 0x43,
- 0xc1, 0x44, 0xae, 0x87, 0xda, 0x34, 0x22, 0xd2, 0x09, 0x63, 0x0a, 0x28, 0x68, 0x38, 0xa4, 0x32,
- 0x3f, 0x55, 0x48, 0x3d, 0x0f, 0x53, 0xbe, 0x49, 0x8a, 0xa3, 0x9a, 0x5d, 0x1e, 0x9b, 0x4b, 0x71,
- 0x96, 0x2c, 0x36, 0x38, 0x4e, 0xc6, 0x30, 0xb9, 0x84, 0x42, 0xcf, 0xd2, 0x2a, 0x80, 0x65, 0x22,
- 0xab, 0xa3, 0xb4, 0x91, 0x66, 0x94, 0x73, 0xc7, 0x78, 0x69, 0x1b, 0xab, 0x0c, 0x79, 0xc9, 0xa2,
- 0x52, 0xcd, 0x90, 0xae, 0x0c, 0x42, 0x6d, 0xe2, 0x98, 0x48, 0xd9, 0xa4, 0x9b, 0x6c, 0x28, 0xda,
- 0x76, 0xa1, 0xe4, 0x20, 0x1c, 0xf7, 0xa8, 0xcd, 0x66, 0x96, 0x27, 0x46, 0x2c, 0xc6, 0xce, 0x4c,
- 0x66, 0x30, 0x3a, 0xb1, 0x49, 0x27, 0xf8, 0x28, 0x3d, 0x04, 0xbe, 0x40, 0x21, 0x61, 0x05, 0x24,
- 0x0b, 0x15, 0xb9, 0x70, 0x4b, 0xed, 0xa1, 0xb9, 0x5b, 0x50, 0x0a, 0xbb, 0x47, 0x9a, 0x85, 0xac,
- 0xeb, 0xa9, 0x8e, 0x47, 0xa2, 0x30, 0x2b, 0xd3, 0x07, 0x49, 0x84, 0x34, 0x32, 0xdb, 0x24, 0xcb,
- 0x65, 0x65, 0xfc, 0xaf, 0xf4, 0x73, 0x83, 0x09, 0xa7, 0xc9, 0x84, 0x3f, 0x32, 0xbc, 0xa2, 0x21,
- 0xe6, 0xe8, 0xbc, 0xe7, 0x9e, 0x82, 0xc9, 0xd0, 0x04, 0x92, 0xbe, 0xba, 0xfa, 0x8b, 0x70, 0xdf,
- 0x48, 0x6a, 0xe9, 0x79, 0x98, 0xed, 0x9b, 0xba, 0xe9, 0x21, 0xc7, 0x76, 0x10, 0x8e, 0x58, 0xfa,
- 0xaa, 0xf2, 0xbf, 0x4f, 0x1c, 0x13, 0x73, 0xbb, 0x41, 0x6d, 0xca, 0x22, 0xcf, 0xf4, 0x87, 0x85,
- 0x8f, 0xe7, 0x73, 0x3f, 0x9a, 0x10, 0x6f, 0xdf, 0xbe, 0x7d, 0x3b, 0x55, 0xfd, 0xdc, 0x38, 0xcc,
- 0x8e, 0xda, 0x33, 0x23, 0xb7, 0xef, 0x29, 0x18, 0x37, 0xfb, 0xbd, 0x3d, 0xe4, 0x10, 0x27, 0x65,
- 0x65, 0xf6, 0x24, 0xd5, 0x21, 0x6b, 0xa8, 0x7b, 0xc8, 0x28, 0x67, 0xe6, 0x85, 0x85, 0xd2, 0xf9,
- 0x27, 0x12, 0xed, 0xca, 0xc5, 0x0d, 0x0c, 0x91, 0x29, 0x52, 0x7a, 0x1a, 0x32, 0x2c, 0x45, 0x63,
- 0x86, 0xc7, 0x93, 0x31, 0xe0, 0xbd, 0x24, 0x13, 0x9c, 0x74, 0x3f, 0xe4, 0xf1, 0x5f, 0x1a, 0x1b,
- 0xe3, 0xc4, 0xe6, 0x1c, 0x16, 0xe0, 0xb8, 0x90, 0xe6, 0x20, 0x47, 0xb6, 0x49, 0x1b, 0xf1, 0xd2,
- 0xe6, 0x3f, 0xe3, 0xc0, 0x6a, 0xa3, 0x8e, 0xda, 0x37, 0x3c, 0xe5, 0x86, 0x6a, 0xf4, 0x11, 0x09,
- 0xf8, 0xbc, 0x5c, 0x64, 0xc2, 0x4f, 0x61, 0x99, 0x74, 0x16, 0x0a, 0x74, 0x57, 0xe9, 0x66, 0x1b,
- 0xbd, 0x44, 0xb2, 0x67, 0x56, 0xa6, 0x1b, 0x6d, 0x1d, 0x4b, 0xf0, 0xeb, 0xaf, 0xbb, 0x96, 0xc9,
- 0x43, 0x93, 0xbc, 0x02, 0x0b, 0xc8, 0xeb, 0x9f, 0x8a, 0x26, 0xee, 0x07, 0x47, 0x4f, 0x2f, 0x1a,
- 0x53, 0xd5, 0x6f, 0xa6, 0x20, 0x43, 0xf2, 0xc5, 0x14, 0x14, 0x76, 0x5e, 0x68, 0x36, 0x94, 0xd5,
- 0xed, 0xdd, 0xe5, 0x8d, 0x86, 0x28, 0x48, 0x25, 0x00, 0x22, 0xb8, 0xb6, 0xb1, 0x5d, 0xdf, 0x11,
- 0x53, 0xfe, 0xf3, 0xfa, 0xd6, 0xce, 0xa5, 0x27, 0xc5, 0xb4, 0x0f, 0xd8, 0xa5, 0x82, 0x4c, 0x50,
- 0xe1, 0xc2, 0x79, 0x31, 0x2b, 0x89, 0x50, 0xa4, 0x04, 0xeb, 0xcf, 0x37, 0x56, 0x2f, 0x3d, 0x29,
- 0x8e, 0x87, 0x25, 0x17, 0xce, 0x8b, 0x13, 0xd2, 0x24, 0xe4, 0x89, 0x64, 0x79, 0x7b, 0x7b, 0x43,
- 0xcc, 0xf9, 0x9c, 0xad, 0x1d, 0x79, 0x7d, 0x6b, 0x4d, 0xcc, 0xfb, 0x9c, 0x6b, 0xf2, 0xf6, 0x6e,
- 0x53, 0x04, 0x9f, 0x61, 0xb3, 0xd1, 0x6a, 0xd5, 0xd7, 0x1a, 0x62, 0xc1, 0xd7, 0x58, 0x7e, 0x61,
- 0xa7, 0xd1, 0x12, 0x8b, 0x21, 0xb3, 0x2e, 0x9c, 0x17, 0x27, 0xfd, 0x57, 0x34, 0xb6, 0x76, 0x37,
- 0xc5, 0x92, 0x34, 0x0d, 0x93, 0xf4, 0x15, 0xdc, 0x88, 0xa9, 0x88, 0xe8, 0xd2, 0x93, 0xa2, 0x38,
- 0x30, 0x84, 0xb2, 0x4c, 0x87, 0x04, 0x97, 0x9e, 0x14, 0xa5, 0xea, 0x0a, 0x64, 0x49, 0x74, 0x49,
- 0x12, 0x94, 0x36, 0xea, 0xcb, 0x8d, 0x0d, 0x65, 0xbb, 0xb9, 0xb3, 0xbe, 0xbd, 0x55, 0xdf, 0x10,
- 0x85, 0x81, 0x4c, 0x6e, 0x7c, 0x72, 0x77, 0x5d, 0x6e, 0xac, 0x8a, 0xa9, 0xa0, 0xac, 0xd9, 0xa8,
- 0xef, 0x34, 0x56, 0xc5, 0x74, 0x55, 0x83, 0xd9, 0x51, 0x79, 0x72, 0xe4, 0xce, 0x08, 0x2c, 0x71,
- 0xea, 0x98, 0x25, 0x26, 0x5c, 0x43, 0x4b, 0xfc, 0xc3, 0x14, 0xcc, 0x8c, 0xa8, 0x15, 0x23, 0x5f,
- 0xf2, 0x0c, 0x64, 0x69, 0x88, 0xd2, 0xea, 0xf9, 0xd8, 0xc8, 0xa2, 0x43, 0x02, 0x76, 0xa8, 0x82,
- 0x12, 0x5c, 0xb0, 0x83, 0x48, 0x1f, 0xd3, 0x41, 0x60, 0x8a, 0xa1, 0x9c, 0xfe, 0x0b, 0x43, 0x39,
- 0x9d, 0x96, 0xbd, 0x4b, 0x49, 0xca, 0x1e, 0x91, 0x9d, 0x2c, 0xb7, 0x67, 0x47, 0xe4, 0xf6, 0xab,
- 0x30, 0x3d, 0x44, 0x94, 0x38, 0xc7, 0xbe, 0x2c, 0x40, 0xf9, 0x38, 0xe7, 0xc4, 0x64, 0xba, 0x54,
- 0x28, 0xd3, 0x5d, 0x8d, 0x7a, 0xf0, 0xdc, 0xf1, 0x8b, 0x30, 0xb4, 0xd6, 0xaf, 0x0b, 0x70, 0x6a,
- 0x74, 0xa7, 0x38, 0xd2, 0x86, 0xa7, 0x61, 0xbc, 0x87, 0xbc, 0x7d, 0x8b, 0x77, 0x4b, 0x1f, 0x19,
- 0x51, 0x83, 0xf1, 0x70, 0x74, 0xb1, 0x19, 0x2a, 0x58, 0xc4, 0xd3, 0xc7, 0xb5, 0x7b, 0xd4, 0x9a,
- 0x21, 0x4b, 0x3f, 0x9b, 0x82, 0xfb, 0x46, 0x92, 0x8f, 0x34, 0xf4, 0x41, 0x00, 0xdd, 0xb4, 0xfb,
- 0x1e, 0xed, 0x88, 0x68, 0x82, 0xcd, 0x13, 0x09, 0x49, 0x5e, 0x38, 0x79, 0xf6, 0x3d, 0x7f, 0x3c,
- 0x4d, 0xc6, 0x81, 0x8a, 0x88, 0xc2, 0xe5, 0x81, 0xa1, 0x19, 0x62, 0x68, 0xe5, 0x98, 0x99, 0x0e,
- 0x05, 0xe6, 0xc7, 0x40, 0xd4, 0x0c, 0x1d, 0x99, 0x9e, 0xe2, 0x7a, 0x0e, 0x52, 0x7b, 0xba, 0xd9,
- 0x25, 0x15, 0x24, 0x57, 0xcb, 0x76, 0x54, 0xc3, 0x45, 0xf2, 0x14, 0x1d, 0x6e, 0xf1, 0x51, 0x8c,
- 0x20, 0x01, 0xe4, 0x04, 0x10, 0xe3, 0x21, 0x04, 0x1d, 0xf6, 0x11, 0xd5, 0x6f, 0xe4, 0xa0, 0x10,
- 0xe8, 0xab, 0xa5, 0x73, 0x50, 0xbc, 0xae, 0xde, 0x50, 0x15, 0x7e, 0x56, 0xa2, 0x9e, 0x28, 0x60,
- 0x59, 0x93, 0x9d, 0x97, 0x3e, 0x06, 0xb3, 0x44, 0xc5, 0xea, 0x7b, 0xc8, 0x51, 0x34, 0x43, 0x75,
- 0x5d, 0xe2, 0xb4, 0x1c, 0x51, 0x95, 0xf0, 0xd8, 0x36, 0x1e, 0x5a, 0xe1, 0x23, 0xd2, 0x45, 0x98,
- 0x21, 0x88, 0x5e, 0xdf, 0xf0, 0x74, 0xdb, 0x40, 0x0a, 0x3e, 0xbd, 0xb9, 0xa4, 0x92, 0xf8, 0x96,
- 0x4d, 0x63, 0x8d, 0x4d, 0xa6, 0x80, 0x2d, 0x72, 0xa5, 0x55, 0x78, 0x90, 0xc0, 0xba, 0xc8, 0x44,
- 0x8e, 0xea, 0x21, 0x05, 0x7d, 0xa6, 0xaf, 0x1a, 0xae, 0xa2, 0x9a, 0x6d, 0x65, 0x5f, 0x75, 0xf7,
- 0xcb, 0xb3, 0x98, 0x60, 0x39, 0x55, 0x16, 0xe4, 0x33, 0x58, 0x71, 0x8d, 0xe9, 0x35, 0x88, 0x5a,
- 0xdd, 0x6c, 0x7f, 0x42, 0x75, 0xf7, 0xa5, 0x1a, 0x9c, 0x22, 0x2c, 0xae, 0xe7, 0xe8, 0x66, 0x57,
- 0xd1, 0xf6, 0x91, 0x76, 0xa0, 0xf4, 0xbd, 0xce, 0xe5, 0xf2, 0xfd, 0xc1, 0xf7, 0x13, 0x0b, 0x5b,
- 0x44, 0x67, 0x05, 0xab, 0xec, 0x7a, 0x9d, 0xcb, 0x52, 0x0b, 0x8a, 0x78, 0x31, 0x7a, 0xfa, 0x2d,
- 0xa4, 0x74, 0x2c, 0x87, 0x94, 0xc6, 0xd2, 0x88, 0xd4, 0x14, 0xf0, 0xe0, 0xe2, 0x36, 0x03, 0x6c,
- 0x5a, 0x6d, 0x54, 0xcb, 0xb6, 0x9a, 0x8d, 0xc6, 0xaa, 0x5c, 0xe0, 0x2c, 0xd7, 0x2c, 0x07, 0x07,
- 0x54, 0xd7, 0xf2, 0x1d, 0x5c, 0xa0, 0x01, 0xd5, 0xb5, 0xb8, 0x7b, 0x2f, 0xc2, 0x8c, 0xa6, 0xd1,
- 0x39, 0xeb, 0x9a, 0xc2, 0xce, 0x58, 0x6e, 0x59, 0x0c, 0x39, 0x4b, 0xd3, 0xd6, 0xa8, 0x02, 0x8b,
- 0x71, 0x57, 0xba, 0x02, 0xf7, 0x0d, 0x9c, 0x15, 0x04, 0x4e, 0x0f, 0xcd, 0x32, 0x0a, 0xbd, 0x08,
- 0x33, 0xf6, 0xe1, 0x30, 0x50, 0x0a, 0xbd, 0xd1, 0x3e, 0x8c, 0xc2, 0x9e, 0x82, 0x59, 0x7b, 0xdf,
- 0x1e, 0xc6, 0x3d, 0x1e, 0xc4, 0x49, 0xf6, 0xbe, 0x1d, 0x05, 0x3e, 0x42, 0x0e, 0xdc, 0x0e, 0xd2,
- 0x54, 0x0f, 0xb5, 0xcb, 0xa7, 0x83, 0xea, 0x81, 0x01, 0x69, 0x09, 0x44, 0x4d, 0x53, 0x90, 0xa9,
- 0xee, 0x19, 0x48, 0x51, 0x1d, 0x64, 0xaa, 0x6e, 0xf9, 0x6c, 0x50, 0xb9, 0xa4, 0x69, 0x0d, 0x32,
- 0x5a, 0x27, 0x83, 0xd2, 0xe3, 0x30, 0x6d, 0xed, 0x5d, 0xd7, 0x68, 0x48, 0x2a, 0xb6, 0x83, 0x3a,
- 0xfa, 0x4b, 0xe5, 0x87, 0x89, 0x7f, 0xa7, 0xf0, 0x00, 0x09, 0xc8, 0x26, 0x11, 0x4b, 0x8f, 0x81,
- 0xa8, 0xb9, 0xfb, 0xaa, 0x63, 0x93, 0x9c, 0xec, 0xda, 0xaa, 0x86, 0xca, 0x8f, 0x50, 0x55, 0x2a,
- 0xdf, 0xe2, 0x62, 0xbc, 0x25, 0xdc, 0x9b, 0x7a, 0xc7, 0xe3, 0x8c, 0x8f, 0xd2, 0x2d, 0x41, 0x64,
- 0x8c, 0x6d, 0x01, 0x44, 0xec, 0x8a, 0xd0, 0x8b, 0x17, 0x88, 0x5a, 0xc9, 0xde, 0xb7, 0x83, 0xef,
- 0x7d, 0x08, 0x26, 0xb1, 0xe6, 0xe0, 0xa5, 0x8f, 0xd1, 0x86, 0xcc, 0xde, 0x0f, 0xbc, 0xf1, 0x7d,
- 0xeb, 0x8d, 0xab, 0x35, 0x28, 0x06, 0xe3, 0x53, 0xca, 0x03, 0x8d, 0x50, 0x51, 0xc0, 0xcd, 0xca,
- 0xca, 0xf6, 0x2a, 0x6e, 0x33, 0x5e, 0x6c, 0x88, 0x29, 0xdc, 0xee, 0x6c, 0xac, 0xef, 0x34, 0x14,
- 0x79, 0x77, 0x6b, 0x67, 0x7d, 0xb3, 0x21, 0xa6, 0x83, 0x7d, 0xf5, 0xf7, 0x52, 0x50, 0x0a, 0x1f,
- 0x91, 0xa4, 0x9f, 0x85, 0xd3, 0xfc, 0x3e, 0xc3, 0x45, 0x9e, 0x72, 0x53, 0x77, 0xc8, 0x96, 0xe9,
- 0xa9, 0xb4, 0x7c, 0xf9, 0x8b, 0x36, 0xcb, 0xb4, 0x5a, 0xc8, 0x7b, 0x4e, 0x77, 0xf0, 0x86, 0xe8,
- 0xa9, 0x9e, 0xb4, 0x01, 0x67, 0x4d, 0x4b, 0x71, 0x3d, 0xd5, 0x6c, 0xab, 0x4e, 0x5b, 0x19, 0xdc,
- 0x24, 0x29, 0xaa, 0xa6, 0x21, 0xd7, 0xb5, 0x68, 0xa9, 0xf2, 0x59, 0x1e, 0x30, 0xad, 0x16, 0x53,
- 0x1e, 0xe4, 0xf0, 0x3a, 0x53, 0x8d, 0x04, 0x58, 0xfa, 0xb8, 0x00, 0xbb, 0x1f, 0xf2, 0x3d, 0xd5,
- 0x56, 0x90, 0xe9, 0x39, 0x87, 0xa4, 0x31, 0xce, 0xc9, 0xb9, 0x9e, 0x6a, 0x37, 0xf0, 0xf3, 0x07,
- 0x73, 0x3e, 0xf9, 0xb7, 0x34, 0x14, 0x83, 0xcd, 0x31, 0x3e, 0x6b, 0x68, 0xa4, 0x8e, 0x08, 0x24,
- 0xd3, 0x3c, 0x74, 0xcf, 0x56, 0x7a, 0x71, 0x05, 0x17, 0x98, 0xda, 0x38, 0x6d, 0x59, 0x65, 0x8a,
- 0xc4, 0xc5, 0x1d, 0xe7, 0x16, 0x44, 0x5b, 0x84, 0x9c, 0xcc, 0x9e, 0xa4, 0x35, 0x18, 0xbf, 0xee,
- 0x12, 0xee, 0x71, 0xc2, 0xfd, 0xf0, 0xbd, 0xb9, 0x9f, 0x6d, 0x11, 0xf2, 0xfc, 0xb3, 0x2d, 0x65,
- 0x6b, 0x5b, 0xde, 0xac, 0x6f, 0xc8, 0x0c, 0x2e, 0x9d, 0x81, 0x8c, 0xa1, 0xde, 0x3a, 0x0c, 0x97,
- 0x22, 0x22, 0x4a, 0xea, 0xf8, 0x33, 0x90, 0xb9, 0x89, 0xd4, 0x83, 0x70, 0x01, 0x20, 0xa2, 0xf7,
- 0x31, 0xf4, 0x97, 0x20, 0x4b, 0xfc, 0x25, 0x01, 0x30, 0x8f, 0x89, 0x63, 0x52, 0x0e, 0x32, 0x2b,
- 0xdb, 0x32, 0x0e, 0x7f, 0x11, 0x8a, 0x54, 0xaa, 0x34, 0xd7, 0x1b, 0x2b, 0x0d, 0x31, 0x55, 0xbd,
- 0x08, 0xe3, 0xd4, 0x09, 0x78, 0x6b, 0xf8, 0x6e, 0x10, 0xc7, 0xd8, 0x23, 0xe3, 0x10, 0xf8, 0xe8,
- 0xee, 0xe6, 0x72, 0x43, 0x16, 0x53, 0xc1, 0xe5, 0x75, 0xa1, 0x18, 0xec, 0x8b, 0x3f, 0x98, 0x98,
- 0xfa, 0xae, 0x00, 0x85, 0x40, 0x9f, 0x8b, 0x1b, 0x14, 0xd5, 0x30, 0xac, 0x9b, 0x8a, 0x6a, 0xe8,
- 0xaa, 0xcb, 0x82, 0x02, 0x88, 0xa8, 0x8e, 0x25, 0x49, 0x17, 0xed, 0x03, 0x31, 0xfe, 0x35, 0x01,
- 0xc4, 0x68, 0x8b, 0x19, 0x31, 0x50, 0xf8, 0x50, 0x0d, 0x7c, 0x55, 0x80, 0x52, 0xb8, 0xaf, 0x8c,
- 0x98, 0x77, 0xee, 0x43, 0x35, 0xef, 0xcd, 0x14, 0x4c, 0x86, 0xba, 0xc9, 0xa4, 0xd6, 0x7d, 0x06,
- 0xa6, 0xf5, 0x36, 0xea, 0xd9, 0x96, 0x87, 0x4c, 0xed, 0x50, 0x31, 0xd0, 0x0d, 0x64, 0x94, 0xab,
- 0x24, 0x51, 0x2c, 0xdd, 0xbb, 0x5f, 0x5d, 0x5c, 0x1f, 0xe0, 0x36, 0x30, 0xac, 0x36, 0xb3, 0xbe,
- 0xda, 0xd8, 0x6c, 0x6e, 0xef, 0x34, 0xb6, 0x56, 0x5e, 0x50, 0x76, 0xb7, 0x7e, 0x7e, 0x6b, 0xfb,
- 0xb9, 0x2d, 0x59, 0xd4, 0x23, 0x6a, 0xef, 0xe3, 0x56, 0x6f, 0x82, 0x18, 0x35, 0x4a, 0x3a, 0x0d,
- 0xa3, 0xcc, 0x12, 0xc7, 0xa4, 0x19, 0x98, 0xda, 0xda, 0x56, 0x5a, 0xeb, 0xab, 0x0d, 0xa5, 0x71,
- 0xed, 0x5a, 0x63, 0x65, 0xa7, 0x45, 0x6f, 0x20, 0x7c, 0xed, 0x9d, 0xf0, 0xa6, 0x7e, 0x25, 0x0d,
- 0x33, 0x23, 0x2c, 0x91, 0xea, 0xec, 0xec, 0x40, 0x8f, 0x33, 0x1f, 0x4d, 0x62, 0xfd, 0x22, 0x2e,
- 0xf9, 0x4d, 0xd5, 0xf1, 0xd8, 0x51, 0xe3, 0x31, 0xc0, 0x5e, 0x32, 0x3d, 0xbd, 0xa3, 0x23, 0x87,
- 0x5d, 0xd8, 0xd0, 0x03, 0xc5, 0xd4, 0x40, 0x4e, 0xef, 0x6c, 0x7e, 0x06, 0x24, 0xdb, 0x72, 0x75,
- 0x4f, 0xbf, 0x81, 0x14, 0xdd, 0xe4, 0xb7, 0x3b, 0xf8, 0x80, 0x91, 0x91, 0x45, 0x3e, 0xb2, 0x6e,
- 0x7a, 0xbe, 0xb6, 0x89, 0xba, 0x6a, 0x44, 0x1b, 0x27, 0xf0, 0xb4, 0x2c, 0xf2, 0x11, 0x5f, 0xfb,
- 0x1c, 0x14, 0xdb, 0x56, 0x1f, 0x77, 0x5d, 0x54, 0x0f, 0xd7, 0x0b, 0x41, 0x2e, 0x50, 0x99, 0xaf,
- 0xc2, 0xfa, 0xe9, 0xc1, 0xb5, 0x52, 0x51, 0x2e, 0x50, 0x19, 0x55, 0x79, 0x14, 0xa6, 0xd4, 0x6e,
- 0xd7, 0xc1, 0xe4, 0x9c, 0x88, 0x9e, 0x10, 0x4a, 0xbe, 0x98, 0x28, 0xce, 0x3d, 0x0b, 0x39, 0xee,
- 0x07, 0x5c, 0x92, 0xb1, 0x27, 0x14, 0x9b, 0x1e, 0x7b, 0x53, 0x0b, 0x79, 0x39, 0x67, 0xf2, 0xc1,
- 0x73, 0x50, 0xd4, 0x5d, 0x65, 0x70, 0x4b, 0x9e, 0x9a, 0x4f, 0x2d, 0xe4, 0xe4, 0x82, 0xee, 0xfa,
- 0x37, 0x8c, 0xd5, 0xd7, 0x53, 0x50, 0x0a, 0xdf, 0xf2, 0x4b, 0xab, 0x90, 0x33, 0x2c, 0x4d, 0x25,
- 0xa1, 0x45, 0x7f, 0x62, 0x5a, 0x88, 0xf9, 0x61, 0x60, 0x71, 0x83, 0xe9, 0xcb, 0x3e, 0x72, 0xee,
- 0x5f, 0x04, 0xc8, 0x71, 0xb1, 0x74, 0x0a, 0x32, 0xb6, 0xea, 0xed, 0x13, 0xba, 0xec, 0x72, 0x4a,
- 0x14, 0x64, 0xf2, 0x8c, 0xe5, 0xae, 0xad, 0x9a, 0x24, 0x04, 0x98, 0x1c, 0x3f, 0xe3, 0x75, 0x35,
- 0x90, 0xda, 0x26, 0xc7, 0x0f, 0xab, 0xd7, 0x43, 0xa6, 0xe7, 0xf2, 0x75, 0x65, 0xf2, 0x15, 0x26,
- 0x96, 0x9e, 0x80, 0x69, 0xcf, 0x51, 0x75, 0x23, 0xa4, 0x9b, 0x21, 0xba, 0x22, 0x1f, 0xf0, 0x95,
- 0x6b, 0x70, 0x86, 0xf3, 0xb6, 0x91, 0xa7, 0x6a, 0xfb, 0xa8, 0x3d, 0x00, 0x8d, 0x93, 0x6b, 0x86,
- 0xd3, 0x4c, 0x61, 0x95, 0x8d, 0x73, 0x6c, 0xf5, 0x07, 0x02, 0x4c, 0xf3, 0x03, 0x53, 0xdb, 0x77,
- 0xd6, 0x26, 0x80, 0x6a, 0x9a, 0x96, 0x17, 0x74, 0xd7, 0x70, 0x28, 0x0f, 0xe1, 0x16, 0xeb, 0x3e,
- 0x48, 0x0e, 0x10, 0xcc, 0xf5, 0x00, 0x06, 0x23, 0xc7, 0xba, 0xed, 0x2c, 0x14, 0xd8, 0x4f, 0x38,
- 0xe4, 0x77, 0x40, 0x7a, 0xc4, 0x06, 0x2a, 0xc2, 0x27, 0x2b, 0x69, 0x16, 0xb2, 0x7b, 0xa8, 0xab,
- 0x9b, 0xec, 0x62, 0x96, 0x3e, 0xf0, 0x8b, 0x90, 0x8c, 0x7f, 0x11, 0xb2, 0xfc, 0x69, 0x98, 0xd1,
- 0xac, 0x5e, 0xd4, 0xdc, 0x65, 0x31, 0x72, 0xcc, 0x77, 0x3f, 0x21, 0xbc, 0x08, 0x83, 0x16, 0xf3,
- 0x5d, 0x41, 0xf8, 0x52, 0x2a, 0xbd, 0xd6, 0x5c, 0xfe, 0x6a, 0x6a, 0x6e, 0x8d, 0x42, 0x9b, 0x7c,
- 0xa6, 0x32, 0xea, 0x18, 0x48, 0xc3, 0xd6, 0xc3, 0x97, 0x9f, 0x80, 0x8f, 0x76, 0x75, 0x6f, 0xbf,
- 0xbf, 0xb7, 0xa8, 0x59, 0xbd, 0xa5, 0xae, 0xd5, 0xb5, 0x06, 0x3f, 0x7d, 0xe2, 0x27, 0xf2, 0x40,
- 0xfe, 0x63, 0x3f, 0x7f, 0xe6, 0x7d, 0xe9, 0x5c, 0xec, 0x6f, 0xa5, 0xb5, 0x2d, 0x98, 0x61, 0xca,
- 0x0a, 0xf9, 0xfd, 0x85, 0x9e, 0x22, 0xa4, 0x7b, 0xde, 0x61, 0x95, 0xbf, 0xfe, 0x16, 0x29, 0xd7,
- 0xf2, 0x34, 0x83, 0xe2, 0x31, 0x7a, 0xd0, 0xa8, 0xc9, 0x70, 0x5f, 0x88, 0x8f, 0x6e, 0x4d, 0xe4,
- 0xc4, 0x30, 0x7e, 0x8f, 0x31, 0xce, 0x04, 0x18, 0x5b, 0x0c, 0x5a, 0x5b, 0x81, 0xc9, 0x93, 0x70,
- 0xfd, 0x13, 0xe3, 0x2a, 0xa2, 0x20, 0xc9, 0x1a, 0x4c, 0x11, 0x12, 0xad, 0xef, 0x7a, 0x56, 0x8f,
- 0xe4, 0xbd, 0x7b, 0xd3, 0xfc, 0xf3, 0x5b, 0x74, 0xaf, 0x94, 0x30, 0x6c, 0xc5, 0x47, 0xd5, 0x6a,
- 0x40, 0x7e, 0x72, 0x6a, 0x23, 0xcd, 0x88, 0x61, 0x78, 0x83, 0x19, 0xe2, 0xeb, 0xd7, 0x3e, 0x05,
- 0xb3, 0xf8, 0x7f, 0x92, 0x96, 0x82, 0x96, 0xc4, 0x5f, 0x78, 0x95, 0x7f, 0xf0, 0x32, 0xdd, 0x8e,
- 0x33, 0x3e, 0x41, 0xc0, 0xa6, 0xc0, 0x2a, 0x76, 0x91, 0xe7, 0x21, 0xc7, 0x55, 0x54, 0x63, 0x94,
- 0x79, 0x81, 0x1b, 0x83, 0xf2, 0xe7, 0xdf, 0x0e, 0xaf, 0xe2, 0x1a, 0x45, 0xd6, 0x0d, 0xa3, 0xb6,
- 0x0b, 0xa7, 0x47, 0x44, 0x45, 0x02, 0xce, 0x57, 0x18, 0xe7, 0xec, 0x50, 0x64, 0x60, 0xda, 0x26,
- 0x70, 0xb9, 0xbf, 0x96, 0x09, 0x38, 0xff, 0x88, 0x71, 0x4a, 0x0c, 0xcb, 0x97, 0x14, 0x33, 0x3e,
- 0x0b, 0xd3, 0x37, 0x90, 0xb3, 0x67, 0xb9, 0xec, 0x96, 0x26, 0x01, 0xdd, 0xab, 0x8c, 0x6e, 0x8a,
- 0x01, 0xc9, 0xb5, 0x0d, 0xe6, 0xba, 0x02, 0xb9, 0x8e, 0xaa, 0xa1, 0x04, 0x14, 0x5f, 0x60, 0x14,
- 0x13, 0x58, 0x1f, 0x43, 0xeb, 0x50, 0xec, 0x5a, 0xac, 0x32, 0xc5, 0xc3, 0x5f, 0x63, 0xf0, 0x02,
- 0xc7, 0x30, 0x0a, 0xdb, 0xb2, 0xfb, 0x06, 0x2e, 0x5b, 0xf1, 0x14, 0x7f, 0xcc, 0x29, 0x38, 0x86,
- 0x51, 0x9c, 0xc0, 0xad, 0x7f, 0xc2, 0x29, 0xdc, 0x80, 0x3f, 0x9f, 0x81, 0x82, 0x65, 0x1a, 0x87,
- 0x96, 0x99, 0xc4, 0x88, 0x2f, 0x32, 0x06, 0x60, 0x10, 0x4c, 0x70, 0x15, 0xf2, 0x49, 0x17, 0xe2,
- 0xcf, 0xde, 0xe6, 0xdb, 0x83, 0xaf, 0xc0, 0x1a, 0x4c, 0xf1, 0x04, 0xa5, 0x5b, 0x66, 0x02, 0x8a,
- 0x2f, 0x33, 0x8a, 0x52, 0x00, 0xc6, 0xa6, 0xe1, 0x21, 0xd7, 0xeb, 0xa2, 0x24, 0x24, 0xaf, 0xf3,
- 0x69, 0x30, 0x08, 0x73, 0xe5, 0x1e, 0x32, 0xb5, 0xfd, 0x64, 0x0c, 0x5f, 0xe1, 0xae, 0xe4, 0x18,
- 0x4c, 0xb1, 0x02, 0x93, 0x3d, 0xd5, 0x71, 0xf7, 0x55, 0x23, 0xd1, 0x72, 0xfc, 0x39, 0xe3, 0x28,
- 0xfa, 0x20, 0xe6, 0x91, 0xbe, 0x79, 0x12, 0x9a, 0xaf, 0x72, 0x8f, 0x04, 0x60, 0x6c, 0xeb, 0xb9,
- 0x1e, 0xb9, 0xd2, 0x3a, 0x09, 0xdb, 0x5f, 0xf0, 0xad, 0x47, 0xb1, 0x9b, 0x41, 0xc6, 0xab, 0x90,
- 0x77, 0xf5, 0x5b, 0x89, 0x68, 0xfe, 0x92, 0xaf, 0x34, 0x01, 0x60, 0xf0, 0x0b, 0x70, 0x66, 0x64,
- 0x99, 0x48, 0x40, 0xf6, 0x57, 0x8c, 0xec, 0xd4, 0x88, 0x52, 0xc1, 0x52, 0xc2, 0x49, 0x29, 0xff,
- 0x9a, 0xa7, 0x04, 0x14, 0xe1, 0x6a, 0xe2, 0xb3, 0x82, 0xab, 0x76, 0x4e, 0xe6, 0xb5, 0xbf, 0xe1,
- 0x5e, 0xa3, 0xd8, 0x90, 0xd7, 0x76, 0xe0, 0x14, 0x63, 0x3c, 0xd9, 0xba, 0x7e, 0x8d, 0x27, 0x56,
- 0x8a, 0xde, 0x0d, 0xaf, 0xee, 0xa7, 0x61, 0xce, 0x77, 0x27, 0x6f, 0x4a, 0x5d, 0xa5, 0xa7, 0xda,
- 0x09, 0x98, 0xbf, 0xce, 0x98, 0x79, 0xc6, 0xf7, 0xbb, 0x5a, 0x77, 0x53, 0xb5, 0x31, 0xf9, 0xf3,
- 0x50, 0xe6, 0xe4, 0x7d, 0xd3, 0x41, 0x9a, 0xd5, 0x35, 0xf5, 0x5b, 0xa8, 0x9d, 0x80, 0xfa, 0x6f,
- 0x23, 0x4b, 0xb5, 0x1b, 0x80, 0x63, 0xe6, 0x75, 0x10, 0xfd, 0x5e, 0x45, 0xd1, 0x7b, 0xb6, 0xe5,
- 0x78, 0x31, 0x8c, 0xdf, 0xe0, 0x2b, 0xe5, 0xe3, 0xd6, 0x09, 0xac, 0xd6, 0x80, 0x12, 0x79, 0x4c,
- 0x1a, 0x92, 0x7f, 0xc7, 0x88, 0x26, 0x07, 0x28, 0x96, 0x38, 0x34, 0xab, 0x67, 0xab, 0x4e, 0x92,
- 0xfc, 0xf7, 0xf7, 0x3c, 0x71, 0x30, 0x08, 0x4b, 0x1c, 0xde, 0xa1, 0x8d, 0x70, 0xb5, 0x4f, 0xc0,
- 0xf0, 0x4d, 0x9e, 0x38, 0x38, 0x86, 0x51, 0xf0, 0x86, 0x21, 0x01, 0xc5, 0xb7, 0x38, 0x05, 0xc7,
- 0x60, 0x8a, 0x4f, 0x0e, 0x0a, 0xad, 0x83, 0xba, 0xba, 0xeb, 0x39, 0xb4, 0x15, 0xbe, 0x37, 0xd5,
- 0xb7, 0xdf, 0x0e, 0x37, 0x61, 0x72, 0x00, 0x8a, 0x33, 0x11, 0xbb, 0x42, 0x25, 0x27, 0xa5, 0x78,
- 0xc3, 0xbe, 0xc3, 0x33, 0x51, 0x00, 0x86, 0x6d, 0x0b, 0x74, 0x88, 0xd8, 0xed, 0x1a, 0x3e, 0x1f,
- 0x24, 0xa0, 0xfb, 0x6e, 0xc4, 0xb8, 0x16, 0xc7, 0x62, 0xce, 0x40, 0xff, 0xd3, 0x37, 0x0f, 0xd0,
- 0x61, 0xa2, 0xe8, 0xfc, 0x87, 0x48, 0xff, 0xb3, 0x4b, 0x91, 0x34, 0x87, 0x4c, 0x45, 0xfa, 0x29,
- 0x29, 0xee, 0x63, 0x9d, 0xf2, 0x2f, 0xdf, 0x65, 0xf3, 0x0d, 0xb7, 0x53, 0xb5, 0x0d, 0x1c, 0xe4,
- 0xe1, 0xa6, 0x27, 0x9e, 0xec, 0xe5, 0xbb, 0x7e, 0x9c, 0x87, 0x7a, 0x9e, 0xda, 0x35, 0x98, 0x0c,
- 0x35, 0x3c, 0xf1, 0x54, 0xbf, 0xc2, 0xa8, 0x8a, 0xc1, 0x7e, 0xa7, 0x76, 0x11, 0x32, 0xb8, 0x79,
- 0x89, 0x87, 0xff, 0x2a, 0x83, 0x13, 0xf5, 0xda, 0xc7, 0x21, 0xc7, 0x9b, 0x96, 0x78, 0xe8, 0xaf,
- 0x31, 0xa8, 0x0f, 0xc1, 0x70, 0xde, 0xb0, 0xc4, 0xc3, 0x7f, 0x9d, 0xc3, 0x39, 0x04, 0xc3, 0x93,
- 0xbb, 0xf0, 0x1f, 0x7f, 0x23, 0xc3, 0x8a, 0x0e, 0xf7, 0xdd, 0x55, 0x98, 0x60, 0x9d, 0x4a, 0x3c,
- 0xfa, 0xb3, 0xec, 0xe5, 0x1c, 0x51, 0x7b, 0x0a, 0xb2, 0x09, 0x1d, 0xfe, 0x9b, 0x0c, 0x4a, 0xf5,
- 0x6b, 0x2b, 0x50, 0x08, 0x74, 0x27, 0xf1, 0xf0, 0xdf, 0x62, 0xf0, 0x20, 0x0a, 0x9b, 0xce, 0xba,
- 0x93, 0x78, 0x82, 0xdf, 0xe6, 0xa6, 0x33, 0x04, 0x76, 0x1b, 0x6f, 0x4c, 0xe2, 0xd1, 0xbf, 0xc3,
- 0xbd, 0xce, 0x21, 0xb5, 0x67, 0x20, 0xef, 0x17, 0x9b, 0x78, 0xfc, 0xef, 0x32, 0xfc, 0x00, 0x83,
- 0x3d, 0x10, 0x28, 0x76, 0xf1, 0x14, 0xbf, 0xc7, 0x3d, 0x10, 0x40, 0xe1, 0x6d, 0x14, 0x6d, 0x60,
- 0xe2, 0x99, 0x7e, 0x9f, 0x6f, 0xa3, 0x48, 0xff, 0x82, 0x57, 0x93, 0xe4, 0xfc, 0x78, 0x8a, 0x3f,
- 0xe0, 0xab, 0x49, 0xf4, 0xb1, 0x19, 0xd1, 0x8e, 0x20, 0x9e, 0xe3, 0x0f, 0xb9, 0x19, 0x91, 0x86,
- 0xa0, 0xd6, 0x04, 0x69, 0xb8, 0x1b, 0x88, 0xe7, 0xfb, 0x1c, 0xe3, 0x9b, 0x1e, 0x6a, 0x06, 0x6a,
- 0xcf, 0xc1, 0xa9, 0xd1, 0x9d, 0x40, 0x3c, 0xeb, 0xe7, 0xef, 0x46, 0xce, 0x6e, 0xc1, 0x46, 0xa0,
- 0xb6, 0x33, 0x28, 0x29, 0xc1, 0x2e, 0x20, 0x9e, 0xf6, 0x95, 0xbb, 0xe1, 0xc4, 0x1d, 0x6c, 0x02,
- 0x6a, 0x75, 0x80, 0x41, 0x01, 0x8e, 0xe7, 0x7a, 0x95, 0x71, 0x05, 0x40, 0x78, 0x6b, 0xb0, 0xfa,
- 0x1b, 0x8f, 0xff, 0x02, 0xdf, 0x1a, 0x0c, 0x81, 0xb7, 0x06, 0x2f, 0xbd, 0xf1, 0xe8, 0xd7, 0xf8,
- 0xd6, 0xe0, 0x10, 0x1c, 0xd9, 0x81, 0xea, 0x16, 0xcf, 0xf0, 0x45, 0x1e, 0xd9, 0x01, 0x54, 0x6d,
- 0x0b, 0xa6, 0x87, 0x0a, 0x62, 0x3c, 0xd5, 0x97, 0x18, 0x95, 0x18, 0xad, 0x87, 0xc1, 0xe2, 0xc5,
- 0x8a, 0x61, 0x3c, 0xdb, 0x9f, 0x46, 0x8a, 0x17, 0xab, 0x85, 0xb5, 0xab, 0x90, 0x33, 0xfb, 0x86,
- 0x81, 0x37, 0x8f, 0x74, 0xef, 0x0f, 0xec, 0xca, 0xff, 0xf1, 0x1e, 0xf3, 0x0e, 0x07, 0xd4, 0x2e,
- 0x42, 0x16, 0xf5, 0xf6, 0x50, 0x3b, 0x0e, 0xf9, 0x9f, 0xef, 0xf1, 0x84, 0x89, 0xb5, 0x6b, 0xcf,
- 0x00, 0xd0, 0xab, 0x11, 0xf2, 0xb3, 0x5f, 0x0c, 0xf6, 0xbf, 0xde, 0x63, 0x9f, 0xbe, 0x0c, 0x20,
- 0x03, 0x02, 0xfa, 0x21, 0xcd, 0xbd, 0x09, 0xde, 0x0e, 0x13, 0x90, 0x15, 0xb9, 0x02, 0x13, 0xd7,
- 0x5d, 0xcb, 0xf4, 0xd4, 0x6e, 0x1c, 0xfa, 0xbf, 0x19, 0x9a, 0xeb, 0x63, 0x87, 0xf5, 0x2c, 0x07,
- 0x79, 0x6a, 0xd7, 0x8d, 0xc3, 0xfe, 0x0f, 0xc3, 0xfa, 0x00, 0x0c, 0xd6, 0x54, 0xd7, 0x4b, 0x32,
- 0xef, 0x1f, 0x73, 0x30, 0x07, 0x60, 0xa3, 0xf1, 0xff, 0x07, 0xe8, 0x30, 0x0e, 0xfb, 0x0e, 0x37,
- 0x9a, 0xe9, 0xd7, 0x3e, 0x0e, 0x79, 0xfc, 0x2f, 0xfd, 0x9e, 0x2d, 0x06, 0xfc, 0xbf, 0x0c, 0x3c,
- 0x40, 0xe0, 0x37, 0xbb, 0x5e, 0xdb, 0xd3, 0xe3, 0x9d, 0xfd, 0x7f, 0x6c, 0xa5, 0xb9, 0x7e, 0xad,
- 0x0e, 0x05, 0xd7, 0x6b, 0xb7, 0xfb, 0xac, 0x3f, 0x8d, 0x81, 0xff, 0xff, 0x7b, 0xfe, 0x95, 0x85,
- 0x8f, 0xc1, 0xab, 0x7d, 0xf3, 0xc0, 0xb3, 0x2d, 0xf2, 0x33, 0x47, 0x1c, 0xc3, 0x5d, 0xc6, 0x10,
- 0x80, 0x2c, 0x37, 0x46, 0x5f, 0xdf, 0xc2, 0x9a, 0xb5, 0x66, 0xd1, 0x8b, 0xdb, 0x17, 0xab, 0xf1,
- 0x37, 0xb0, 0xf0, 0xad, 0x34, 0x3c, 0xa0, 0x59, 0xbd, 0x3d, 0xcb, 0x5d, 0x0a, 0x24, 0xf3, 0xa5,
- 0x9e, 0x6a, 0xb3, 0x7b, 0xd9, 0x42, 0x4f, 0xb5, 0xd9, 0x07, 0xb0, 0xee, 0xdc, 0xc9, 0xee, 0x74,
- 0xab, 0xbf, 0x04, 0x13, 0x9b, 0xaa, 0xbd, 0x83, 0x5c, 0x4f, 0x22, 0xde, 0x26, 0x5f, 0x5a, 0xb1,
- 0x8b, 0xf2, 0xf9, 0xc5, 0x00, 0xf1, 0x22, 0x53, 0x5b, 0x6c, 0x79, 0x4e, 0xcb, 0x73, 0xc8, 0x47,
- 0x05, 0xf2, 0xb8, 0x4b, 0x1e, 0xe6, 0xae, 0x40, 0x21, 0x20, 0x96, 0x44, 0x48, 0x1f, 0xa0, 0x43,
- 0xf6, 0xad, 0x15, 0xfe, 0x57, 0x9a, 0x1d, 0x7c, 0x0c, 0x89, 0x65, 0xf4, 0xa1, 0x96, 0xba, 0x2c,
- 0x54, 0x9f, 0x86, 0x89, 0x6b, 0xea, 0x01, 0xda, 0x54, 0x6d, 0xe9, 0x02, 0x4c, 0x20, 0xd3, 0x73,
- 0x74, 0xe4, 0x32, 0x03, 0xce, 0x84, 0x0c, 0x60, 0x6a, 0xf4, 0xcd, 0x5c, 0xb3, 0xba, 0x01, 0xc5,
- 0xe0, 0x40, 0xd2, 0x77, 0x63, 0xa9, 0xe5, 0xed, 0xb3, 0x8f, 0xa3, 0xf3, 0x32, 0x7d, 0x58, 0x5e,
- 0x7d, 0xe3, 0x4e, 0x65, 0xec, 0xfb, 0x77, 0x2a, 0x63, 0xff, 0x7a, 0xa7, 0x32, 0xf6, 0xe6, 0x9d,
- 0x8a, 0xf0, 0xce, 0x9d, 0x8a, 0xf0, 0xee, 0x9d, 0x8a, 0x70, 0xfb, 0xa8, 0x22, 0x7c, 0xe5, 0xa8,
- 0x22, 0x7c, 0xed, 0xa8, 0x22, 0x7c, 0xfb, 0xa8, 0x22, 0xbc, 0x71, 0x54, 0x19, 0xfb, 0xfe, 0x51,
- 0x45, 0x78, 0xf3, 0xa8, 0x22, 0xfc, 0xe8, 0xa8, 0x32, 0xf6, 0xce, 0x51, 0x45, 0x78, 0xf7, 0xa8,
- 0x32, 0x76, 0xfb, 0x87, 0x95, 0xb1, 0xbd, 0x71, 0xe2, 0xdb, 0x0b, 0x3f, 0x09, 0x00, 0x00, 0xff,
- 0xff, 0x1b, 0x1e, 0x8e, 0xa7, 0x55, 0x34, 0x00, 0x00,
+ // 4010 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x59, 0x70, 0xe4, 0xd6,
+ 0x75, 0x65, 0x6f, 0x64, 0xf7, 0xed, 0x66, 0x13, 0x04, 0xa9, 0x51, 0x0f, 0x25, 0xf5, 0x70, 0x5a,
+ 0x92, 0x45, 0x49, 0x16, 0xe9, 0x9a, 0x4d, 0x33, 0x3d, 0xb1, 0x94, 0x26, 0xd9, 0x43, 0x53, 0xe1,
+ 0x66, 0x34, 0x69, 0x2d, 0xae, 0x14, 0xea, 0x11, 0xfd, 0xd8, 0xc4, 0x10, 0x0d, 0xc0, 0x00, 0x7a,
+ 0x46, 0x9c, 0x4a, 0x55, 0x26, 0xa5, 0x2c, 0xe5, 0xca, 0xbe, 0x54, 0xc5, 0x56, 0x64, 0x25, 0x76,
+ 0x2a, 0x96, 0xe3, 0x6c, 0x76, 0x16, 0x6f, 0xf9, 0xc9, 0x8f, 0x13, 0x7d, 0xa5, 0xec, 0xbf, 0x7c,
+ 0xe4, 0x43, 0x43, 0xab, 0x2a, 0x4e, 0xa2, 0x24, 0x4a, 0x32, 0x1f, 0xaa, 0xd2, 0x8f, 0xeb, 0x6d,
+ 0x68, 0x00, 0xdd, 0x1c, 0x80, 0xae, 0x92, 0xfc, 0x45, 0xe2, 0xbe, 0x7b, 0x0e, 0xee, 0xbb, 0xef,
+ 0xbe, 0x7b, 0xef, 0x7b, 0x68, 0x78, 0xb3, 0x0e, 0xb3, 0x1d, 0xcb, 0xea, 0x18, 0x78, 0xc1, 0x76,
+ 0x2c, 0xcf, 0xda, 0xed, 0xed, 0x2d, 0xb4, 0xb1, 0xab, 0x39, 0xba, 0xed, 0x59, 0xce, 0x3c, 0x95,
+ 0xc9, 0x13, 0x4c, 0x63, 0x5e, 0x68, 0xd4, 0xd6, 0x61, 0xf2, 0x9a, 0x6e, 0xe0, 0x65, 0x5f, 0xb1,
+ 0x85, 0x3d, 0xf9, 0x32, 0x64, 0xf7, 0x74, 0x03, 0x57, 0x52, 0xb3, 0x99, 0xb9, 0xe2, 0xb9, 0x47,
+ 0xe6, 0x23, 0xa0, 0xf9, 0x30, 0x62, 0x8b, 0x88, 0x15, 0x8a, 0xa8, 0xbd, 0x9d, 0x85, 0xa9, 0x21,
+ 0xa3, 0xb2, 0x0c, 0x59, 0x13, 0x75, 0x09, 0x63, 0x6a, 0xae, 0xa0, 0xd0, 0xff, 0xe5, 0x0a, 0x8c,
+ 0xd9, 0x48, 0x3b, 0x40, 0x1d, 0x5c, 0x49, 0x53, 0xb1, 0x78, 0x94, 0xab, 0x00, 0x6d, 0x6c, 0x63,
+ 0xb3, 0x8d, 0x4d, 0xed, 0xb0, 0x92, 0x99, 0xcd, 0xcc, 0x15, 0x94, 0x80, 0x44, 0x7e, 0x12, 0x26,
+ 0xed, 0xde, 0xae, 0xa1, 0x6b, 0x6a, 0x40, 0x0d, 0x66, 0x33, 0x73, 0x39, 0x45, 0x62, 0x03, 0xcb,
+ 0x7d, 0xe5, 0xc7, 0x60, 0xe2, 0x26, 0x46, 0x07, 0x41, 0xd5, 0x22, 0x55, 0x2d, 0x13, 0x71, 0x40,
+ 0x71, 0x09, 0x4a, 0x5d, 0xec, 0xba, 0xa8, 0x83, 0x55, 0xef, 0xd0, 0xc6, 0x95, 0x2c, 0x9d, 0xfd,
+ 0xec, 0xc0, 0xec, 0xa3, 0x33, 0x2f, 0x72, 0xd4, 0xf6, 0xa1, 0x8d, 0xe5, 0x06, 0x14, 0xb0, 0xd9,
+ 0xeb, 0x32, 0x86, 0xdc, 0x31, 0xfe, 0x6b, 0x9a, 0xbd, 0x6e, 0x94, 0x25, 0x4f, 0x60, 0x9c, 0x62,
+ 0xcc, 0xc5, 0xce, 0x0d, 0x5d, 0xc3, 0x95, 0x51, 0x4a, 0xf0, 0xd8, 0x00, 0x41, 0x8b, 0x8d, 0x47,
+ 0x39, 0x04, 0x4e, 0x5e, 0x82, 0x02, 0x7e, 0xd9, 0xc3, 0xa6, 0xab, 0x5b, 0x66, 0x65, 0x8c, 0x92,
+ 0x3c, 0x3a, 0x64, 0x15, 0xb1, 0xd1, 0x8e, 0x52, 0xf4, 0x71, 0xf2, 0x25, 0x18, 0xb3, 0x6c, 0x4f,
+ 0xb7, 0x4c, 0xb7, 0x92, 0x9f, 0x4d, 0xcd, 0x15, 0xcf, 0x3d, 0x38, 0x34, 0x10, 0x36, 0x99, 0x8e,
+ 0x22, 0x94, 0xe5, 0x55, 0x90, 0x5c, 0xab, 0xe7, 0x68, 0x58, 0xd5, 0xac, 0x36, 0x56, 0x75, 0x73,
+ 0xcf, 0xaa, 0x14, 0x28, 0xc1, 0x99, 0xc1, 0x89, 0x50, 0xc5, 0x25, 0xab, 0x8d, 0x57, 0xcd, 0x3d,
+ 0x4b, 0x29, 0xbb, 0xa1, 0x67, 0xf9, 0x14, 0x8c, 0xba, 0x87, 0xa6, 0x87, 0x5e, 0xae, 0x94, 0x68,
+ 0x84, 0xf0, 0xa7, 0xda, 0xb7, 0x47, 0x61, 0x22, 0x49, 0x88, 0x5d, 0x85, 0xdc, 0x1e, 0x99, 0x65,
+ 0x25, 0x7d, 0x12, 0x1f, 0x30, 0x4c, 0xd8, 0x89, 0xa3, 0x3f, 0xa6, 0x13, 0x1b, 0x50, 0x34, 0xb1,
+ 0xeb, 0xe1, 0x36, 0x8b, 0x88, 0x4c, 0xc2, 0x98, 0x02, 0x06, 0x1a, 0x0c, 0xa9, 0xec, 0x8f, 0x15,
+ 0x52, 0x2f, 0xc0, 0x84, 0x6f, 0x92, 0xea, 0x20, 0xb3, 0x23, 0x62, 0x73, 0x21, 0xce, 0x92, 0xf9,
+ 0xa6, 0xc0, 0x29, 0x04, 0xa6, 0x94, 0x71, 0xe8, 0x59, 0x5e, 0x06, 0xb0, 0x4c, 0x6c, 0xed, 0xa9,
+ 0x6d, 0xac, 0x19, 0x95, 0xfc, 0x31, 0x5e, 0xda, 0x24, 0x2a, 0x03, 0x5e, 0xb2, 0x98, 0x54, 0x33,
+ 0xe4, 0x2b, 0xfd, 0x50, 0x1b, 0x3b, 0x26, 0x52, 0xd6, 0xd9, 0x26, 0x1b, 0x88, 0xb6, 0x1d, 0x28,
+ 0x3b, 0x98, 0xc4, 0x3d, 0x6e, 0xf3, 0x99, 0x15, 0xa8, 0x11, 0xf3, 0xb1, 0x33, 0x53, 0x38, 0x8c,
+ 0x4d, 0x6c, 0xdc, 0x09, 0x3e, 0xca, 0x0f, 0x83, 0x2f, 0x50, 0x69, 0x58, 0x01, 0xcd, 0x42, 0x25,
+ 0x21, 0xdc, 0x40, 0x5d, 0x3c, 0x73, 0x0b, 0xca, 0x61, 0xf7, 0xc8, 0xd3, 0x90, 0x73, 0x3d, 0xe4,
+ 0x78, 0x34, 0x0a, 0x73, 0x0a, 0x7b, 0x90, 0x25, 0xc8, 0x60, 0xb3, 0x4d, 0xb3, 0x5c, 0x4e, 0x21,
+ 0xff, 0xca, 0x3f, 0xdd, 0x9f, 0x70, 0x86, 0x4e, 0xf8, 0x23, 0x83, 0x2b, 0x1a, 0x62, 0x8e, 0xce,
+ 0x7b, 0xe6, 0x69, 0x18, 0x0f, 0x4d, 0x20, 0xe9, 0xab, 0x6b, 0x3f, 0x07, 0xf7, 0x0d, 0xa5, 0x96,
+ 0x5f, 0x80, 0xe9, 0x9e, 0xa9, 0x9b, 0x1e, 0x76, 0x6c, 0x07, 0x93, 0x88, 0x65, 0xaf, 0xaa, 0xfc,
+ 0xdb, 0xd8, 0x31, 0x31, 0xb7, 0x13, 0xd4, 0x66, 0x2c, 0xca, 0x54, 0x6f, 0x50, 0xf8, 0x44, 0x21,
+ 0xff, 0xc3, 0x31, 0xe9, 0xf6, 0xed, 0xdb, 0xb7, 0xd3, 0xb5, 0xcf, 0x8d, 0xc2, 0xf4, 0xb0, 0x3d,
+ 0x33, 0x74, 0xfb, 0x9e, 0x82, 0x51, 0xb3, 0xd7, 0xdd, 0xc5, 0x0e, 0x75, 0x52, 0x4e, 0xe1, 0x4f,
+ 0x72, 0x03, 0x72, 0x06, 0xda, 0xc5, 0x46, 0x25, 0x3b, 0x9b, 0x9a, 0x2b, 0x9f, 0x7b, 0x32, 0xd1,
+ 0xae, 0x9c, 0x5f, 0x23, 0x10, 0x85, 0x21, 0xe5, 0x67, 0x20, 0xcb, 0x53, 0x34, 0x61, 0x78, 0x22,
+ 0x19, 0x03, 0xd9, 0x4b, 0x0a, 0xc5, 0xc9, 0x0f, 0x40, 0x81, 0xfc, 0x65, 0xb1, 0x31, 0x4a, 0x6d,
+ 0xce, 0x13, 0x01, 0x89, 0x0b, 0x79, 0x06, 0xf2, 0x74, 0x9b, 0xb4, 0xb1, 0x28, 0x6d, 0xfe, 0x33,
+ 0x09, 0xac, 0x36, 0xde, 0x43, 0x3d, 0xc3, 0x53, 0x6f, 0x20, 0xa3, 0x87, 0x69, 0xc0, 0x17, 0x94,
+ 0x12, 0x17, 0x7e, 0x8a, 0xc8, 0xe4, 0x33, 0x50, 0x64, 0xbb, 0x4a, 0x37, 0xdb, 0xf8, 0x65, 0x9a,
+ 0x3d, 0x73, 0x0a, 0xdb, 0x68, 0xab, 0x44, 0x42, 0x5e, 0x7f, 0xdd, 0xb5, 0x4c, 0x11, 0x9a, 0xf4,
+ 0x15, 0x44, 0x40, 0x5f, 0xff, 0x74, 0x34, 0x71, 0x3f, 0x34, 0x7c, 0x7a, 0xd1, 0x98, 0xaa, 0x7d,
+ 0x23, 0x0d, 0x59, 0x9a, 0x2f, 0x26, 0xa0, 0xb8, 0xfd, 0xe2, 0x56, 0x53, 0x5d, 0xde, 0xdc, 0x59,
+ 0x5c, 0x6b, 0x4a, 0x29, 0xb9, 0x0c, 0x40, 0x05, 0xd7, 0xd6, 0x36, 0x1b, 0xdb, 0x52, 0xda, 0x7f,
+ 0x5e, 0xdd, 0xd8, 0xbe, 0x74, 0x41, 0xca, 0xf8, 0x80, 0x1d, 0x26, 0xc8, 0x06, 0x15, 0xce, 0x9f,
+ 0x93, 0x72, 0xb2, 0x04, 0x25, 0x46, 0xb0, 0xfa, 0x42, 0x73, 0xf9, 0xd2, 0x05, 0x69, 0x34, 0x2c,
+ 0x39, 0x7f, 0x4e, 0x1a, 0x93, 0xc7, 0xa1, 0x40, 0x25, 0x8b, 0x9b, 0x9b, 0x6b, 0x52, 0xde, 0xe7,
+ 0x6c, 0x6d, 0x2b, 0xab, 0x1b, 0x2b, 0x52, 0xc1, 0xe7, 0x5c, 0x51, 0x36, 0x77, 0xb6, 0x24, 0xf0,
+ 0x19, 0xd6, 0x9b, 0xad, 0x56, 0x63, 0xa5, 0x29, 0x15, 0x7d, 0x8d, 0xc5, 0x17, 0xb7, 0x9b, 0x2d,
+ 0xa9, 0x14, 0x32, 0xeb, 0xfc, 0x39, 0x69, 0xdc, 0x7f, 0x45, 0x73, 0x63, 0x67, 0x5d, 0x2a, 0xcb,
+ 0x93, 0x30, 0xce, 0x5e, 0x21, 0x8c, 0x98, 0x88, 0x88, 0x2e, 0x5d, 0x90, 0xa4, 0xbe, 0x21, 0x8c,
+ 0x65, 0x32, 0x24, 0xb8, 0x74, 0x41, 0x92, 0x6b, 0x4b, 0x90, 0xa3, 0xd1, 0x25, 0xcb, 0x50, 0x5e,
+ 0x6b, 0x2c, 0x36, 0xd7, 0xd4, 0xcd, 0xad, 0xed, 0xd5, 0xcd, 0x8d, 0xc6, 0x9a, 0x94, 0xea, 0xcb,
+ 0x94, 0xe6, 0x27, 0x77, 0x56, 0x95, 0xe6, 0xb2, 0x94, 0x0e, 0xca, 0xb6, 0x9a, 0x8d, 0xed, 0xe6,
+ 0xb2, 0x94, 0xa9, 0x69, 0x30, 0x3d, 0x2c, 0x4f, 0x0e, 0xdd, 0x19, 0x81, 0x25, 0x4e, 0x1f, 0xb3,
+ 0xc4, 0x94, 0x6b, 0x60, 0x89, 0x7f, 0x90, 0x86, 0xa9, 0x21, 0xb5, 0x62, 0xe8, 0x4b, 0x9e, 0x85,
+ 0x1c, 0x0b, 0x51, 0x56, 0x3d, 0x1f, 0x1f, 0x5a, 0x74, 0x68, 0xc0, 0x0e, 0x54, 0x50, 0x8a, 0x0b,
+ 0x76, 0x10, 0x99, 0x63, 0x3a, 0x08, 0x42, 0x31, 0x90, 0xd3, 0x7f, 0x76, 0x20, 0xa7, 0xb3, 0xb2,
+ 0x77, 0x29, 0x49, 0xd9, 0xa3, 0xb2, 0x93, 0xe5, 0xf6, 0xdc, 0x90, 0xdc, 0x7e, 0x15, 0x26, 0x07,
+ 0x88, 0x12, 0xe7, 0xd8, 0x57, 0x52, 0x50, 0x39, 0xce, 0x39, 0x31, 0x99, 0x2e, 0x1d, 0xca, 0x74,
+ 0x57, 0xa3, 0x1e, 0x3c, 0x7b, 0xfc, 0x22, 0x0c, 0xac, 0xf5, 0x1b, 0x29, 0x38, 0x35, 0xbc, 0x53,
+ 0x1c, 0x6a, 0xc3, 0x33, 0x30, 0xda, 0xc5, 0xde, 0xbe, 0x25, 0xba, 0xa5, 0x8f, 0x0c, 0xa9, 0xc1,
+ 0x64, 0x38, 0xba, 0xd8, 0x1c, 0x15, 0x2c, 0xe2, 0x99, 0xe3, 0xda, 0x3d, 0x66, 0xcd, 0x80, 0xa5,
+ 0x9f, 0x4d, 0xc3, 0x7d, 0x43, 0xc9, 0x87, 0x1a, 0xfa, 0x10, 0x80, 0x6e, 0xda, 0x3d, 0x8f, 0x75,
+ 0x44, 0x2c, 0xc1, 0x16, 0xa8, 0x84, 0x26, 0x2f, 0x92, 0x3c, 0x7b, 0x9e, 0x3f, 0x9e, 0xa1, 0xe3,
+ 0xc0, 0x44, 0x54, 0xe1, 0x72, 0xdf, 0xd0, 0x2c, 0x35, 0xb4, 0x7a, 0xcc, 0x4c, 0x07, 0x02, 0xf3,
+ 0x63, 0x20, 0x69, 0x86, 0x8e, 0x4d, 0x4f, 0x75, 0x3d, 0x07, 0xa3, 0xae, 0x6e, 0x76, 0x68, 0x05,
+ 0xc9, 0xd7, 0x73, 0x7b, 0xc8, 0x70, 0xb1, 0x32, 0xc1, 0x86, 0x5b, 0x62, 0x94, 0x20, 0x68, 0x00,
+ 0x39, 0x01, 0xc4, 0x68, 0x08, 0xc1, 0x86, 0x7d, 0x44, 0xed, 0xd7, 0x0a, 0x50, 0x0c, 0xf4, 0xd5,
+ 0xf2, 0x59, 0x28, 0x5d, 0x47, 0x37, 0x90, 0x2a, 0xce, 0x4a, 0xcc, 0x13, 0x45, 0x22, 0xdb, 0xe2,
+ 0xe7, 0xa5, 0x8f, 0xc1, 0x34, 0x55, 0xb1, 0x7a, 0x1e, 0x76, 0x54, 0xcd, 0x40, 0xae, 0x4b, 0x9d,
+ 0x96, 0xa7, 0xaa, 0x32, 0x19, 0xdb, 0x24, 0x43, 0x4b, 0x62, 0x44, 0xbe, 0x08, 0x53, 0x14, 0xd1,
+ 0xed, 0x19, 0x9e, 0x6e, 0x1b, 0x58, 0x25, 0xa7, 0x37, 0x97, 0x56, 0x12, 0xdf, 0xb2, 0x49, 0xa2,
+ 0xb1, 0xce, 0x15, 0x88, 0x45, 0xae, 0xbc, 0x0c, 0x0f, 0x51, 0x58, 0x07, 0x9b, 0xd8, 0x41, 0x1e,
+ 0x56, 0xf1, 0x67, 0x7a, 0xc8, 0x70, 0x55, 0x64, 0xb6, 0xd5, 0x7d, 0xe4, 0xee, 0x57, 0xa6, 0x09,
+ 0xc1, 0x62, 0xba, 0x92, 0x52, 0x4e, 0x13, 0xc5, 0x15, 0xae, 0xd7, 0xa4, 0x6a, 0x0d, 0xb3, 0xfd,
+ 0x09, 0xe4, 0xee, 0xcb, 0x75, 0x38, 0x45, 0x59, 0x5c, 0xcf, 0xd1, 0xcd, 0x8e, 0xaa, 0xed, 0x63,
+ 0xed, 0x40, 0xed, 0x79, 0x7b, 0x97, 0x2b, 0x0f, 0x04, 0xdf, 0x4f, 0x2d, 0x6c, 0x51, 0x9d, 0x25,
+ 0xa2, 0xb2, 0xe3, 0xed, 0x5d, 0x96, 0x5b, 0x50, 0x22, 0x8b, 0xd1, 0xd5, 0x6f, 0x61, 0x75, 0xcf,
+ 0x72, 0x68, 0x69, 0x2c, 0x0f, 0x49, 0x4d, 0x01, 0x0f, 0xce, 0x6f, 0x72, 0xc0, 0xba, 0xd5, 0xc6,
+ 0xf5, 0x5c, 0x6b, 0xab, 0xd9, 0x5c, 0x56, 0x8a, 0x82, 0xe5, 0x9a, 0xe5, 0x90, 0x80, 0xea, 0x58,
+ 0xbe, 0x83, 0x8b, 0x2c, 0xa0, 0x3a, 0x96, 0x70, 0xef, 0x45, 0x98, 0xd2, 0x34, 0x36, 0x67, 0x5d,
+ 0x53, 0xf9, 0x19, 0xcb, 0xad, 0x48, 0x21, 0x67, 0x69, 0xda, 0x0a, 0x53, 0xe0, 0x31, 0xee, 0xca,
+ 0x57, 0xe0, 0xbe, 0xbe, 0xb3, 0x82, 0xc0, 0xc9, 0x81, 0x59, 0x46, 0xa1, 0x17, 0x61, 0xca, 0x3e,
+ 0x1c, 0x04, 0xca, 0xa1, 0x37, 0xda, 0x87, 0x51, 0xd8, 0xd3, 0x30, 0x6d, 0xef, 0xdb, 0x83, 0xb8,
+ 0x27, 0x82, 0x38, 0xd9, 0xde, 0xb7, 0xa3, 0xc0, 0x47, 0xe9, 0x81, 0xdb, 0xc1, 0x1a, 0xf2, 0x70,
+ 0xbb, 0x72, 0x7f, 0x50, 0x3d, 0x30, 0x20, 0x2f, 0x80, 0xa4, 0x69, 0x2a, 0x36, 0xd1, 0xae, 0x81,
+ 0x55, 0xe4, 0x60, 0x13, 0xb9, 0x95, 0x33, 0x41, 0xe5, 0xb2, 0xa6, 0x35, 0xe9, 0x68, 0x83, 0x0e,
+ 0xca, 0x4f, 0xc0, 0xa4, 0xb5, 0x7b, 0x5d, 0x63, 0x21, 0xa9, 0xda, 0x0e, 0xde, 0xd3, 0x5f, 0xae,
+ 0x3c, 0x42, 0xfd, 0x3b, 0x41, 0x06, 0x68, 0x40, 0x6e, 0x51, 0xb1, 0xfc, 0x38, 0x48, 0x9a, 0xbb,
+ 0x8f, 0x1c, 0x9b, 0xe6, 0x64, 0xd7, 0x46, 0x1a, 0xae, 0x3c, 0xca, 0x54, 0x99, 0x7c, 0x43, 0x88,
+ 0xc9, 0x96, 0x70, 0x6f, 0xea, 0x7b, 0x9e, 0x60, 0x7c, 0x8c, 0x6d, 0x09, 0x2a, 0xe3, 0x6c, 0x73,
+ 0x20, 0x11, 0x57, 0x84, 0x5e, 0x3c, 0x47, 0xd5, 0xca, 0xf6, 0xbe, 0x1d, 0x7c, 0xef, 0xc3, 0x30,
+ 0x4e, 0x34, 0xfb, 0x2f, 0x7d, 0x9c, 0x35, 0x64, 0xf6, 0x7e, 0xe0, 0x8d, 0x17, 0xe0, 0x14, 0x51,
+ 0xea, 0x62, 0x0f, 0xb5, 0x91, 0x87, 0x02, 0xda, 0x1f, 0xa5, 0xda, 0xc4, 0xef, 0xeb, 0x7c, 0x30,
+ 0x64, 0xa7, 0xd3, 0xdb, 0x3d, 0xf4, 0x23, 0xeb, 0x29, 0x66, 0x27, 0x91, 0x89, 0xd8, 0xfa, 0xc0,
+ 0x9a, 0xee, 0x5a, 0x1d, 0x4a, 0xc1, 0xc0, 0x97, 0x0b, 0xc0, 0x42, 0x5f, 0x4a, 0x91, 0x2e, 0x68,
+ 0x69, 0x73, 0x99, 0xf4, 0x2f, 0x2f, 0x35, 0xa5, 0x34, 0xe9, 0xa3, 0xd6, 0x56, 0xb7, 0x9b, 0xaa,
+ 0xb2, 0xb3, 0xb1, 0xbd, 0xba, 0xde, 0x94, 0x32, 0xc1, 0x86, 0xfd, 0xbb, 0x69, 0x28, 0x87, 0xcf,
+ 0x5e, 0xf2, 0x4f, 0xc1, 0xfd, 0xe2, 0xa2, 0xc4, 0xc5, 0x9e, 0x7a, 0x53, 0x77, 0xe8, 0x5e, 0xec,
+ 0x22, 0x56, 0x17, 0xfd, 0x68, 0x98, 0xe6, 0x5a, 0x2d, 0xec, 0x3d, 0xaf, 0x3b, 0x64, 0xa7, 0x75,
+ 0x91, 0x27, 0xaf, 0xc1, 0x19, 0xd3, 0x52, 0x5d, 0x0f, 0x99, 0x6d, 0xe4, 0xb4, 0xd5, 0xfe, 0x15,
+ 0x95, 0x8a, 0x34, 0x0d, 0xbb, 0xae, 0xc5, 0x6a, 0xa0, 0xcf, 0xf2, 0xa0, 0x69, 0xb5, 0xb8, 0x72,
+ 0xbf, 0x38, 0x34, 0xb8, 0x6a, 0x24, 0x72, 0x33, 0xc7, 0x45, 0xee, 0x03, 0x50, 0xe8, 0x22, 0x5b,
+ 0xc5, 0xa6, 0xe7, 0x1c, 0xd2, 0x8e, 0x3b, 0xaf, 0xe4, 0xbb, 0xc8, 0x6e, 0x92, 0xe7, 0x0f, 0xe7,
+ 0xe0, 0xf3, 0xaf, 0x19, 0x28, 0x05, 0xbb, 0x6e, 0x72, 0x88, 0xd1, 0x68, 0x81, 0x4a, 0xd1, 0x14,
+ 0xf6, 0xf0, 0x3d, 0x7b, 0xf4, 0xf9, 0x25, 0x52, 0xb9, 0xea, 0xa3, 0xac, 0x17, 0x56, 0x18, 0x92,
+ 0x74, 0x0d, 0x24, 0xb4, 0x30, 0xeb, 0x3d, 0xf2, 0x0a, 0x7f, 0x92, 0x57, 0x60, 0xf4, 0xba, 0x4b,
+ 0xb9, 0x47, 0x29, 0xf7, 0x23, 0xf7, 0xe6, 0x7e, 0xae, 0x45, 0xc9, 0x0b, 0xcf, 0xb5, 0xd4, 0x8d,
+ 0x4d, 0x65, 0xbd, 0xb1, 0xa6, 0x70, 0xb8, 0x7c, 0x1a, 0xb2, 0x06, 0xba, 0x75, 0x18, 0xae, 0x71,
+ 0x54, 0x94, 0xd4, 0xf1, 0xa7, 0x21, 0x7b, 0x13, 0xa3, 0x83, 0x70, 0x65, 0xa1, 0xa2, 0x0f, 0x30,
+ 0xf4, 0x17, 0x20, 0x47, 0xfd, 0x25, 0x03, 0x70, 0x8f, 0x49, 0x23, 0x72, 0x1e, 0xb2, 0x4b, 0x9b,
+ 0x0a, 0x09, 0x7f, 0x09, 0x4a, 0x4c, 0xaa, 0x6e, 0xad, 0x36, 0x97, 0x9a, 0x52, 0xba, 0x76, 0x11,
+ 0x46, 0x99, 0x13, 0xc8, 0xd6, 0xf0, 0xdd, 0x20, 0x8d, 0xf0, 0x47, 0xce, 0x91, 0x12, 0xa3, 0x3b,
+ 0xeb, 0x8b, 0x4d, 0x45, 0x4a, 0x07, 0x97, 0xd7, 0x85, 0x52, 0xb0, 0xe1, 0xfe, 0x70, 0x62, 0xea,
+ 0x3b, 0x29, 0x28, 0x06, 0x1a, 0x68, 0xd2, 0xf9, 0x20, 0xc3, 0xb0, 0x6e, 0xaa, 0xc8, 0xd0, 0x91,
+ 0xcb, 0x83, 0x02, 0xa8, 0xa8, 0x41, 0x24, 0x49, 0x17, 0xed, 0x43, 0x31, 0xfe, 0xf5, 0x14, 0x48,
+ 0xd1, 0xde, 0x35, 0x62, 0x60, 0xea, 0x27, 0x6a, 0xe0, 0x6b, 0x29, 0x28, 0x87, 0x1b, 0xd6, 0x88,
+ 0x79, 0x67, 0x7f, 0xa2, 0xe6, 0xbd, 0x95, 0x86, 0xf1, 0x50, 0x9b, 0x9a, 0xd4, 0xba, 0xcf, 0xc0,
+ 0xa4, 0xde, 0xc6, 0x5d, 0xdb, 0xf2, 0xb0, 0xa9, 0x1d, 0xaa, 0x06, 0xbe, 0x81, 0x8d, 0x4a, 0x8d,
+ 0x26, 0x8a, 0x85, 0x7b, 0x37, 0xc2, 0xf3, 0xab, 0x7d, 0xdc, 0x1a, 0x81, 0xd5, 0xa7, 0x56, 0x97,
+ 0x9b, 0xeb, 0x5b, 0x9b, 0xdb, 0xcd, 0x8d, 0xa5, 0x17, 0xd5, 0x9d, 0x8d, 0x9f, 0xd9, 0xd8, 0x7c,
+ 0x7e, 0x43, 0x91, 0xf4, 0x88, 0xda, 0x07, 0xb8, 0xd5, 0xb7, 0x40, 0x8a, 0x1a, 0x25, 0xdf, 0x0f,
+ 0xc3, 0xcc, 0x92, 0x46, 0xe4, 0x29, 0x98, 0xd8, 0xd8, 0x54, 0x5b, 0xab, 0xcb, 0x4d, 0xb5, 0x79,
+ 0xed, 0x5a, 0x73, 0x69, 0xbb, 0xc5, 0xae, 0x36, 0x7c, 0xed, 0xed, 0xf0, 0xa6, 0x7e, 0x35, 0x03,
+ 0x53, 0x43, 0x2c, 0x91, 0x1b, 0xfc, 0x50, 0xc2, 0xce, 0x49, 0x4f, 0x25, 0xb1, 0x7e, 0x9e, 0x74,
+ 0x05, 0x5b, 0xc8, 0xf1, 0xf8, 0x19, 0xe6, 0x71, 0x20, 0x5e, 0x32, 0x3d, 0x7d, 0x4f, 0xc7, 0x0e,
+ 0xbf, 0x09, 0x62, 0x27, 0x95, 0x89, 0xbe, 0x9c, 0x5d, 0x06, 0x7d, 0x14, 0x64, 0xdb, 0x72, 0x75,
+ 0x4f, 0xbf, 0x81, 0x55, 0xdd, 0x14, 0xd7, 0x46, 0xe4, 0xe4, 0x92, 0x55, 0x24, 0x31, 0xb2, 0x6a,
+ 0x7a, 0xbe, 0xb6, 0x89, 0x3b, 0x28, 0xa2, 0x4d, 0x12, 0x78, 0x46, 0x91, 0xc4, 0x88, 0xaf, 0x7d,
+ 0x16, 0x4a, 0x6d, 0xab, 0x47, 0xda, 0x39, 0xa6, 0x47, 0xea, 0x45, 0x4a, 0x29, 0x32, 0x99, 0xaf,
+ 0xc2, 0x1b, 0xf5, 0xfe, 0x7d, 0x55, 0x49, 0x29, 0x32, 0x19, 0x53, 0x79, 0x0c, 0x26, 0x50, 0xa7,
+ 0xe3, 0x10, 0x72, 0x41, 0xc4, 0x8e, 0x1e, 0x65, 0x5f, 0x4c, 0x15, 0x67, 0x9e, 0x83, 0xbc, 0xf0,
+ 0x03, 0x29, 0xc9, 0xc4, 0x13, 0xaa, 0xcd, 0xce, 0xd3, 0xe9, 0xb9, 0x82, 0x92, 0x37, 0xc5, 0xe0,
+ 0x59, 0x28, 0xe9, 0xae, 0xda, 0xbf, 0x7e, 0x4f, 0xcf, 0xa6, 0xe7, 0xf2, 0x4a, 0x51, 0x77, 0xfd,
+ 0xab, 0xcb, 0xda, 0x1b, 0x69, 0x28, 0x87, 0x3f, 0x1f, 0xc8, 0xcb, 0x90, 0x37, 0x2c, 0x0d, 0xd1,
+ 0xd0, 0x62, 0xdf, 0xae, 0xe6, 0x62, 0xbe, 0x38, 0xcc, 0xaf, 0x71, 0x7d, 0xc5, 0x47, 0xce, 0xfc,
+ 0x73, 0x0a, 0xf2, 0x42, 0x2c, 0x9f, 0x82, 0xac, 0x8d, 0xbc, 0x7d, 0x4a, 0x97, 0x5b, 0x4c, 0x4b,
+ 0x29, 0x85, 0x3e, 0x13, 0xb9, 0x6b, 0x23, 0x93, 0x86, 0x00, 0x97, 0x93, 0x67, 0xb2, 0xae, 0x06,
+ 0x46, 0x6d, 0x7a, 0xae, 0xb1, 0xba, 0x5d, 0x6c, 0x7a, 0xae, 0x58, 0x57, 0x2e, 0x5f, 0xe2, 0x62,
+ 0xf9, 0x49, 0x98, 0xf4, 0x1c, 0xa4, 0x1b, 0x21, 0xdd, 0x2c, 0xd5, 0x95, 0xc4, 0x80, 0xaf, 0x5c,
+ 0x87, 0xd3, 0x82, 0xb7, 0x8d, 0x3d, 0xa4, 0xed, 0xe3, 0x76, 0x1f, 0x34, 0x4a, 0xef, 0x2f, 0xee,
+ 0xe7, 0x0a, 0xcb, 0x7c, 0x5c, 0x60, 0x6b, 0xdf, 0x4f, 0xc1, 0xa4, 0x38, 0x89, 0xb5, 0x7d, 0x67,
+ 0xad, 0x03, 0x20, 0xd3, 0xb4, 0xbc, 0xa0, 0xbb, 0x06, 0x43, 0x79, 0x00, 0x37, 0xdf, 0xf0, 0x41,
+ 0x4a, 0x80, 0x60, 0xa6, 0x0b, 0xd0, 0x1f, 0x39, 0xd6, 0x6d, 0x67, 0xa0, 0xc8, 0xbf, 0x0d, 0xd1,
+ 0x0f, 0x8c, 0xec, 0xec, 0x0e, 0x4c, 0x44, 0x8e, 0x6c, 0xf2, 0x34, 0xe4, 0x76, 0x71, 0x47, 0x37,
+ 0xf9, 0x8d, 0x2f, 0x7b, 0x10, 0x37, 0x2c, 0x59, 0xff, 0x86, 0x65, 0xf1, 0xd3, 0x30, 0xa5, 0x59,
+ 0xdd, 0xa8, 0xb9, 0x8b, 0x52, 0xe4, 0xfe, 0xc0, 0xfd, 0x44, 0xea, 0x25, 0xe8, 0xb7, 0x98, 0xef,
+ 0xa5, 0x52, 0x5f, 0x4a, 0x67, 0x56, 0xb6, 0x16, 0xbf, 0x9a, 0x9e, 0x59, 0x61, 0xd0, 0x2d, 0x31,
+ 0x53, 0x05, 0xef, 0x19, 0x58, 0x23, 0xd6, 0xc3, 0x97, 0x9f, 0x84, 0xa7, 0x3a, 0xba, 0xb7, 0xdf,
+ 0xdb, 0x9d, 0xd7, 0xac, 0xee, 0x42, 0xc7, 0xea, 0x58, 0xfd, 0x6f, 0xaa, 0xe4, 0x89, 0x3e, 0xd0,
+ 0xff, 0xf8, 0x77, 0xd5, 0x82, 0x2f, 0x9d, 0x89, 0xfd, 0x08, 0x5b, 0xdf, 0x80, 0x29, 0xae, 0xac,
+ 0xd2, 0x0f, 0x3b, 0xec, 0x78, 0x22, 0xdf, 0xf3, 0x72, 0xac, 0xf2, 0xf5, 0xb7, 0x69, 0xb9, 0x56,
+ 0x26, 0x39, 0x94, 0x8c, 0xb1, 0x13, 0x4c, 0x5d, 0x81, 0xfb, 0x42, 0x7c, 0x6c, 0x6b, 0x62, 0x27,
+ 0x86, 0xf1, 0xbb, 0x9c, 0x71, 0x2a, 0xc0, 0xd8, 0xe2, 0xd0, 0xfa, 0x12, 0x8c, 0x9f, 0x84, 0xeb,
+ 0x1f, 0x39, 0x57, 0x09, 0x07, 0x49, 0x56, 0x60, 0x82, 0x92, 0x68, 0x3d, 0xd7, 0xb3, 0xba, 0x34,
+ 0xef, 0xdd, 0x9b, 0xe6, 0x9f, 0xde, 0x66, 0x7b, 0xa5, 0x4c, 0x60, 0x4b, 0x3e, 0xaa, 0x5e, 0x07,
+ 0xfa, 0x2d, 0xab, 0x8d, 0x35, 0x23, 0x86, 0xe1, 0x4d, 0x6e, 0x88, 0xaf, 0x5f, 0xff, 0x14, 0x4c,
+ 0x93, 0xff, 0x69, 0x5a, 0x0a, 0x5a, 0x12, 0x7f, 0x93, 0x56, 0xf9, 0xfe, 0x2b, 0x6c, 0x3b, 0x4e,
+ 0xf9, 0x04, 0x01, 0x9b, 0x02, 0xab, 0xd8, 0xc1, 0x9e, 0x87, 0x1d, 0x57, 0x45, 0xc6, 0x30, 0xf3,
+ 0x02, 0x57, 0x11, 0x95, 0xcf, 0xbf, 0x13, 0x5e, 0xc5, 0x15, 0x86, 0x6c, 0x18, 0x46, 0x7d, 0x07,
+ 0xee, 0x1f, 0x12, 0x15, 0x09, 0x38, 0x5f, 0xe5, 0x9c, 0xd3, 0x03, 0x91, 0x41, 0x68, 0xb7, 0x40,
+ 0xc8, 0xfd, 0xb5, 0x4c, 0xc0, 0xf9, 0x07, 0x9c, 0x53, 0xe6, 0x58, 0xb1, 0xa4, 0x84, 0xf1, 0x39,
+ 0x98, 0xbc, 0x81, 0x9d, 0x5d, 0xcb, 0xe5, 0xd7, 0x3f, 0x09, 0xe8, 0x5e, 0xe3, 0x74, 0x13, 0x1c,
+ 0x48, 0xef, 0x83, 0x08, 0xd7, 0x15, 0xc8, 0xef, 0x21, 0x0d, 0x27, 0xa0, 0xf8, 0x02, 0xa7, 0x18,
+ 0x23, 0xfa, 0x04, 0xda, 0x80, 0x52, 0xc7, 0xe2, 0x95, 0x29, 0x1e, 0xfe, 0x3a, 0x87, 0x17, 0x05,
+ 0x86, 0x53, 0xd8, 0x96, 0xdd, 0x33, 0x48, 0xd9, 0x8a, 0xa7, 0xf8, 0x43, 0x41, 0x21, 0x30, 0x9c,
+ 0xe2, 0x04, 0x6e, 0xfd, 0x23, 0x41, 0xe1, 0x06, 0xfc, 0xf9, 0x2c, 0x14, 0x2d, 0xd3, 0x38, 0xb4,
+ 0xcc, 0x24, 0x46, 0x7c, 0x91, 0x33, 0x00, 0x87, 0x10, 0x82, 0xab, 0x50, 0x48, 0xba, 0x10, 0x7f,
+ 0xf2, 0x8e, 0xd8, 0x1e, 0x62, 0x05, 0x56, 0x60, 0x42, 0x24, 0x28, 0xdd, 0x32, 0x13, 0x50, 0x7c,
+ 0x99, 0x53, 0x94, 0x03, 0x30, 0x3e, 0x0d, 0x0f, 0xbb, 0x5e, 0x07, 0x27, 0x21, 0x79, 0x43, 0x4c,
+ 0x83, 0x43, 0xb8, 0x2b, 0x77, 0xb1, 0xa9, 0xed, 0x27, 0x63, 0xf8, 0x8a, 0x70, 0xa5, 0xc0, 0x10,
+ 0x8a, 0x25, 0x18, 0xef, 0x22, 0xc7, 0xdd, 0x47, 0x46, 0xa2, 0xe5, 0xf8, 0x53, 0xce, 0x51, 0xf2,
+ 0x41, 0xdc, 0x23, 0x3d, 0xf3, 0x24, 0x34, 0x5f, 0x15, 0x1e, 0x09, 0xc0, 0xf8, 0xd6, 0x73, 0x3d,
+ 0x7a, 0x57, 0x76, 0x12, 0xb6, 0x3f, 0x13, 0x5b, 0x8f, 0x61, 0xd7, 0x83, 0x8c, 0x57, 0xa1, 0xe0,
+ 0xea, 0xb7, 0x12, 0xd1, 0xfc, 0xb9, 0x58, 0x69, 0x0a, 0x20, 0xe0, 0x17, 0xe1, 0xf4, 0xd0, 0x32,
+ 0x91, 0x80, 0xec, 0x2f, 0x38, 0xd9, 0xa9, 0x21, 0xa5, 0x82, 0xa7, 0x84, 0x93, 0x52, 0xfe, 0xa5,
+ 0x48, 0x09, 0x38, 0xc2, 0xb5, 0x45, 0xce, 0x0a, 0x2e, 0xda, 0x3b, 0x99, 0xd7, 0xfe, 0x4a, 0x78,
+ 0x8d, 0x61, 0x43, 0x5e, 0xdb, 0x86, 0x53, 0x9c, 0xf1, 0x64, 0xeb, 0xfa, 0x35, 0x91, 0x58, 0x19,
+ 0x7a, 0x27, 0xbc, 0xba, 0x9f, 0x86, 0x19, 0xdf, 0x9d, 0xa2, 0x29, 0x75, 0xd5, 0x2e, 0xb2, 0x13,
+ 0x30, 0x7f, 0x9d, 0x33, 0x8b, 0x8c, 0xef, 0x77, 0xb5, 0xee, 0x3a, 0xb2, 0x09, 0xf9, 0x0b, 0x50,
+ 0x11, 0xe4, 0x3d, 0xd3, 0xc1, 0x9a, 0xd5, 0x31, 0xf5, 0x5b, 0xb8, 0x9d, 0x80, 0xfa, 0xaf, 0x23,
+ 0x4b, 0xb5, 0x13, 0x80, 0x13, 0xe6, 0x55, 0x90, 0xfc, 0x5e, 0x45, 0xd5, 0xbb, 0xb6, 0xe5, 0x78,
+ 0x31, 0x8c, 0x7f, 0x23, 0x56, 0xca, 0xc7, 0xad, 0x52, 0x58, 0xbd, 0x09, 0x65, 0xfa, 0x98, 0x34,
+ 0x24, 0xff, 0x96, 0x13, 0x8d, 0xf7, 0x51, 0x3c, 0x71, 0x68, 0x56, 0xd7, 0x46, 0x4e, 0x92, 0xfc,
+ 0xf7, 0x77, 0x22, 0x71, 0x70, 0x08, 0x4f, 0x1c, 0xde, 0xa1, 0x8d, 0x49, 0xb5, 0x4f, 0xc0, 0xf0,
+ 0x0d, 0x91, 0x38, 0x04, 0x86, 0x53, 0x88, 0x86, 0x21, 0x01, 0xc5, 0x37, 0x05, 0x85, 0xc0, 0x10,
+ 0x8a, 0x4f, 0xf6, 0x0b, 0xad, 0x83, 0x3b, 0xba, 0xeb, 0x39, 0xac, 0x15, 0xbe, 0x37, 0xd5, 0xb7,
+ 0xde, 0x09, 0x37, 0x61, 0x4a, 0x00, 0x4a, 0x32, 0x11, 0xbf, 0x42, 0xa5, 0x27, 0xa5, 0x78, 0xc3,
+ 0xbe, 0x2d, 0x32, 0x51, 0x00, 0x46, 0x6c, 0x0b, 0x74, 0x88, 0xc4, 0xed, 0x1a, 0x39, 0x1f, 0x24,
+ 0xa0, 0xfb, 0x4e, 0xc4, 0xb8, 0x96, 0xc0, 0x12, 0xce, 0x40, 0xff, 0xd3, 0x33, 0x0f, 0xf0, 0x61,
+ 0xa2, 0xe8, 0xfc, 0xfb, 0x48, 0xff, 0xb3, 0xc3, 0x90, 0x2c, 0x87, 0x4c, 0x44, 0xfa, 0x29, 0x39,
+ 0xee, 0x57, 0x40, 0x95, 0x5f, 0xb8, 0xcb, 0xe7, 0x1b, 0x6e, 0xa7, 0xea, 0x6b, 0x24, 0xc8, 0xc3,
+ 0x4d, 0x4f, 0x3c, 0xd9, 0x2b, 0x77, 0xfd, 0x38, 0x0f, 0xf5, 0x3c, 0xf5, 0x6b, 0x30, 0x1e, 0x6a,
+ 0x78, 0xe2, 0xa9, 0x7e, 0x91, 0x53, 0x95, 0x82, 0xfd, 0x4e, 0xfd, 0x22, 0x64, 0x49, 0xf3, 0x12,
+ 0x0f, 0xff, 0x25, 0x0e, 0xa7, 0xea, 0xf5, 0x8f, 0x43, 0x5e, 0x34, 0x2d, 0xf1, 0xd0, 0x5f, 0xe6,
+ 0x50, 0x1f, 0x42, 0xe0, 0xa2, 0x61, 0x89, 0x87, 0xff, 0x8a, 0x80, 0x0b, 0x08, 0x81, 0x27, 0x77,
+ 0xe1, 0x3f, 0xfc, 0x6a, 0x96, 0x17, 0x1d, 0xe1, 0xbb, 0xab, 0x30, 0xc6, 0x3b, 0x95, 0x78, 0xf4,
+ 0x67, 0xf9, 0xcb, 0x05, 0xa2, 0xfe, 0x34, 0xe4, 0x12, 0x3a, 0xfc, 0xd7, 0x39, 0x94, 0xe9, 0xd7,
+ 0x97, 0xa0, 0x18, 0xe8, 0x4e, 0xe2, 0xe1, 0xbf, 0xc1, 0xe1, 0x41, 0x14, 0x31, 0x9d, 0x77, 0x27,
+ 0xf1, 0x04, 0xbf, 0x29, 0x4c, 0xe7, 0x08, 0xe2, 0x36, 0xd1, 0x98, 0xc4, 0xa3, 0x7f, 0x4b, 0x78,
+ 0x5d, 0x40, 0xea, 0xcf, 0x42, 0xc1, 0x2f, 0x36, 0xf1, 0xf8, 0xdf, 0xe6, 0xf8, 0x3e, 0x86, 0x78,
+ 0x20, 0x50, 0xec, 0xe2, 0x29, 0x7e, 0x47, 0x78, 0x20, 0x80, 0x22, 0xdb, 0x28, 0xda, 0xc0, 0xc4,
+ 0x33, 0xfd, 0xae, 0xd8, 0x46, 0x91, 0xfe, 0x85, 0xac, 0x26, 0xcd, 0xf9, 0xf1, 0x14, 0xbf, 0x27,
+ 0x56, 0x93, 0xea, 0x13, 0x33, 0xa2, 0x1d, 0x41, 0x3c, 0xc7, 0xef, 0x0b, 0x33, 0x22, 0x0d, 0x41,
+ 0x7d, 0x0b, 0xe4, 0xc1, 0x6e, 0x20, 0x9e, 0xef, 0x73, 0x9c, 0x6f, 0x72, 0xa0, 0x19, 0xa8, 0x3f,
+ 0x0f, 0xa7, 0x86, 0x77, 0x02, 0xf1, 0xac, 0x9f, 0xbf, 0x1b, 0x39, 0xbb, 0x05, 0x1b, 0x81, 0xfa,
+ 0x76, 0xbf, 0xa4, 0x04, 0xbb, 0x80, 0x78, 0xda, 0x57, 0xef, 0x86, 0x13, 0x77, 0xb0, 0x09, 0xa8,
+ 0x37, 0x00, 0xfa, 0x05, 0x38, 0x9e, 0xeb, 0x35, 0xce, 0x15, 0x00, 0x91, 0xad, 0xc1, 0xeb, 0x6f,
+ 0x3c, 0xfe, 0x0b, 0x62, 0x6b, 0x70, 0x04, 0xd9, 0x1a, 0xa2, 0xf4, 0xc6, 0xa3, 0x5f, 0x17, 0x5b,
+ 0x43, 0x40, 0x48, 0x64, 0x07, 0xaa, 0x5b, 0x3c, 0xc3, 0x17, 0x45, 0x64, 0x07, 0x50, 0xf5, 0x0d,
+ 0x98, 0x1c, 0x28, 0x88, 0xf1, 0x54, 0x5f, 0xe2, 0x54, 0x52, 0xb4, 0x1e, 0x06, 0x8b, 0x17, 0x2f,
+ 0x86, 0xf1, 0x6c, 0x7f, 0x1c, 0x29, 0x5e, 0xbc, 0x16, 0xd6, 0xaf, 0x42, 0xde, 0xec, 0x19, 0x06,
+ 0xd9, 0x3c, 0xf2, 0xbd, 0x7f, 0xb9, 0x57, 0xf9, 0xf7, 0xf7, 0xb9, 0x77, 0x04, 0xa0, 0x7e, 0x11,
+ 0x72, 0xb8, 0xbb, 0x8b, 0xdb, 0x71, 0xc8, 0xff, 0x78, 0x5f, 0x24, 0x4c, 0xa2, 0x5d, 0x7f, 0x16,
+ 0x80, 0x5d, 0x8d, 0xd0, 0xcf, 0x7e, 0x31, 0xd8, 0xff, 0x7c, 0x9f, 0xff, 0xa6, 0xa6, 0x0f, 0xe9,
+ 0x13, 0xb0, 0x5f, 0xe8, 0xdc, 0x9b, 0xe0, 0x9d, 0x30, 0x01, 0x5d, 0x91, 0x2b, 0x30, 0x76, 0xdd,
+ 0xb5, 0x4c, 0x0f, 0x75, 0xe2, 0xd0, 0xff, 0xc5, 0xd1, 0x42, 0x9f, 0x38, 0xac, 0x6b, 0x39, 0xd8,
+ 0x43, 0x1d, 0x37, 0x0e, 0xfb, 0xdf, 0x1c, 0xeb, 0x03, 0x08, 0x58, 0x43, 0xae, 0x97, 0x64, 0xde,
+ 0xff, 0x23, 0xc0, 0x02, 0x40, 0x8c, 0x26, 0xff, 0x1f, 0xe0, 0xc3, 0x38, 0xec, 0xbb, 0xc2, 0x68,
+ 0xae, 0x5f, 0xff, 0x38, 0x14, 0xc8, 0xbf, 0xec, 0x87, 0x72, 0x31, 0xe0, 0xff, 0xe5, 0xe0, 0x3e,
+ 0x82, 0xbc, 0xd9, 0xf5, 0xda, 0x9e, 0x1e, 0xef, 0xec, 0xff, 0xe3, 0x2b, 0x2d, 0xf4, 0xeb, 0x0d,
+ 0x28, 0xba, 0x5e, 0xbb, 0xdd, 0xe3, 0xfd, 0x69, 0x0c, 0xfc, 0xff, 0xdf, 0xf7, 0xaf, 0x2c, 0x7c,
+ 0x0c, 0x59, 0xed, 0x9b, 0x07, 0x9e, 0x6d, 0xd1, 0xcf, 0x1c, 0x71, 0x0c, 0x77, 0x39, 0x43, 0x00,
+ 0xb2, 0xd8, 0x1c, 0x7e, 0x7d, 0x0b, 0x2b, 0xd6, 0x8a, 0xc5, 0x2e, 0x6e, 0x5f, 0xaa, 0xc5, 0xdf,
+ 0xc0, 0xc2, 0x37, 0x33, 0xf0, 0xa0, 0x66, 0x75, 0x77, 0x2d, 0x77, 0x21, 0x90, 0xcc, 0x17, 0xba,
+ 0xc8, 0xe6, 0xf7, 0xb2, 0xc5, 0x2e, 0xb2, 0xf9, 0x2f, 0x6b, 0xdd, 0x99, 0x93, 0xdd, 0xe9, 0xd6,
+ 0x7e, 0x1e, 0xc6, 0xd6, 0x91, 0xbd, 0x8d, 0x5d, 0x4f, 0xa6, 0xde, 0xa6, 0x3f, 0xe1, 0xe2, 0x17,
+ 0xe5, 0xb3, 0xf3, 0x01, 0xe2, 0x79, 0xae, 0x36, 0xdf, 0xf2, 0x9c, 0x96, 0xe7, 0xd0, 0x1f, 0x15,
+ 0x28, 0xa3, 0x2e, 0x7d, 0x98, 0xb9, 0x02, 0xc5, 0x80, 0x58, 0x96, 0x20, 0x73, 0x80, 0x0f, 0xf9,
+ 0x8f, 0xb8, 0xc8, 0xbf, 0xf2, 0x74, 0xff, 0x57, 0x96, 0x44, 0xc6, 0x1e, 0xea, 0xe9, 0xcb, 0xa9,
+ 0xda, 0x33, 0x30, 0x76, 0x0d, 0x1d, 0xe0, 0x75, 0x64, 0xcb, 0xe7, 0x61, 0x0c, 0x9b, 0x9e, 0xa3,
+ 0x63, 0x97, 0x1b, 0x70, 0x3a, 0x64, 0x00, 0x57, 0x63, 0x6f, 0x16, 0x9a, 0xb5, 0x35, 0x28, 0x05,
+ 0x07, 0x92, 0xbe, 0x9b, 0x48, 0x2d, 0x6f, 0x9f, 0xff, 0xea, 0xba, 0xa0, 0xb0, 0x87, 0xc5, 0xe5,
+ 0x37, 0xef, 0x54, 0x47, 0xbe, 0x77, 0xa7, 0x3a, 0xf2, 0x2f, 0x77, 0xaa, 0x23, 0x6f, 0xdd, 0xa9,
+ 0xa6, 0xde, 0xbd, 0x53, 0x4d, 0xbd, 0x77, 0xa7, 0x9a, 0xba, 0x7d, 0x54, 0x4d, 0x7d, 0xe5, 0xa8,
+ 0x9a, 0xfa, 0xda, 0x51, 0x35, 0xf5, 0xad, 0xa3, 0x6a, 0xea, 0xcd, 0xa3, 0xea, 0xc8, 0xf7, 0x8e,
+ 0xaa, 0xa9, 0xb7, 0x8e, 0xaa, 0xa9, 0x1f, 0x1e, 0x55, 0x47, 0xde, 0x3d, 0xaa, 0xa6, 0xde, 0x3b,
+ 0xaa, 0x8e, 0xdc, 0xfe, 0x41, 0x75, 0x64, 0x77, 0x94, 0xfa, 0xf6, 0xfc, 0x8f, 0x02, 0x00, 0x00,
+ 0xff, 0xff, 0x64, 0xdc, 0xaa, 0xe0, 0xae, 0x34, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -937,7 +965,7 @@ func (m *MapTest) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -965,7 +993,7 @@ func (m *MapTest) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -974,6 +1002,9 @@ func (m *MapTest) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMap
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMap
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -994,7 +1025,7 @@ func (m *MapTest) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1011,7 +1042,7 @@ func (m *MapTest) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1021,6 +1052,9 @@ func (m *MapTest) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMap
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMap
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -1037,7 +1071,7 @@ func (m *MapTest) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapvalue |= (uint64(b) & 0x7F) << shift
+ stringLenmapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1047,6 +1081,9 @@ func (m *MapTest) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMap
}
postStringIndexmapvalue := iNdEx + intStringLenmapvalue
+ if postStringIndexmapvalue < 0 {
+ return ErrInvalidLengthMap
+ }
if postStringIndexmapvalue > l {
return io.ErrUnexpectedEOF
}
@@ -1078,6 +1115,9 @@ func (m *MapTest) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthMap
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthMap
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1106,7 +1146,7 @@ func (m *FakeMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1134,7 +1174,7 @@ func (m *FakeMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1143,6 +1183,9 @@ func (m *FakeMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMap
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMap
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1160,6 +1203,9 @@ func (m *FakeMap) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthMap
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthMap
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1188,7 +1234,7 @@ func (m *FakeMapEntry) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1216,7 +1262,7 @@ func (m *FakeMapEntry) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1226,6 +1272,9 @@ func (m *FakeMapEntry) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMap
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthMap
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1245,7 +1294,7 @@ func (m *FakeMapEntry) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1255,6 +1304,9 @@ func (m *FakeMapEntry) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMap
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthMap
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1274,7 +1326,7 @@ func (m *FakeMapEntry) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1284,6 +1336,9 @@ func (m *FakeMapEntry) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMap
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthMap
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1298,6 +1353,9 @@ func (m *FakeMapEntry) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthMap
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthMap
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1365,10 +1423,13 @@ func skipMap(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthMap
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthMap
+ }
return iNdEx, nil
case 3:
for {
@@ -1397,6 +1458,9 @@ func skipMap(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthMap
+ }
}
return iNdEx, nil
case 4:
@@ -1415,29 +1479,3 @@ var (
ErrInvalidLengthMap = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowMap = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("combos/unmarshaler/map.proto", fileDescriptor_map_c5bc2daa9ca30987) }
-
-var fileDescriptor_map_c5bc2daa9ca30987 = []byte{
- // 315 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0xbf, 0x4f, 0x02, 0x31,
- 0x14, 0xc7, 0xfb, 0x20, 0x72, 0xb1, 0x38, 0x98, 0x8b, 0xc3, 0x49, 0xcc, 0x0b, 0x61, 0x62, 0xf1,
- 0x2e, 0x91, 0x45, 0x1c, 0x1c, 0x8c, 0x3a, 0xc9, 0x02, 0xee, 0xa6, 0x87, 0xe5, 0x47, 0xe0, 0xe8,
- 0xa5, 0xed, 0x99, 0x30, 0xc9, 0x9f, 0xe3, 0xe8, 0xe8, 0x9f, 0xc0, 0xc8, 0xe8, 0x48, 0xeb, 0xe2,
- 0xc8, 0xc8, 0x68, 0xe8, 0x61, 0x72, 0x6e, 0x6e, 0xef, 0xf3, 0xed, 0xa7, 0x7d, 0xdf, 0x94, 0x9e,
- 0xf5, 0x45, 0x12, 0x0b, 0x15, 0x65, 0xb3, 0x84, 0x49, 0x35, 0x62, 0x53, 0x2e, 0xa3, 0x84, 0xa5,
- 0x61, 0x2a, 0x85, 0x16, 0x7e, 0x35, 0x61, 0xe9, 0x33, 0x1f, 0xb0, 0x6c, 0xaa, 0x55, 0xed, 0x7c,
- 0x38, 0xd6, 0xa3, 0x2c, 0x0e, 0xfb, 0x22, 0x89, 0x86, 0x62, 0x28, 0x22, 0xe7, 0xc4, 0xd9, 0xc0,
- 0x91, 0x03, 0x37, 0xe5, 0x77, 0x1b, 0xaf, 0xd4, 0xeb, 0xb0, 0xf4, 0x91, 0x2b, 0xed, 0xb7, 0xa9,
- 0xa7, 0xb4, 0x7c, 0x52, 0x5a, 0x06, 0x50, 0x2f, 0x37, 0xab, 0x17, 0xf5, 0xb0, 0xf0, 0x70, 0xb8,
- 0xd7, 0xc2, 0x9e, 0x96, 0x3d, 0x2d, 0xef, 0x66, 0x5a, 0xce, 0xbb, 0x15, 0xe5, 0xa0, 0xd6, 0xa6,
- 0xd5, 0x42, 0xec, 0x1f, 0xd3, 0xf2, 0x84, 0xcf, 0x03, 0xa8, 0x43, 0xf3, 0xb0, 0xbb, 0x1b, 0xfd,
- 0x13, 0x7a, 0xf0, 0xc2, 0xa6, 0x19, 0x0f, 0x4a, 0x2e, 0xcb, 0xe1, 0xaa, 0x74, 0x09, 0x8d, 0x6b,
- 0xea, 0xdd, 0xb3, 0x09, 0xef, 0xb0, 0xd4, 0x6f, 0x51, 0x8f, 0xcf, 0xb4, 0x1c, 0x73, 0xb5, 0x2f,
- 0x70, 0xfa, 0xa7, 0xc0, 0x5e, 0xcb, 0x37, 0xff, 0x9a, 0x8d, 0x07, 0x7a, 0x54, 0x3c, 0xf8, 0xef,
- 0xee, 0x5d, 0x2a, 0xf4, 0x88, 0xcb, 0xa0, 0x9c, 0xa7, 0x0e, 0x6e, 0x6e, 0x97, 0x06, 0xc9, 0xca,
- 0x20, 0xf9, 0x34, 0x48, 0xd6, 0x06, 0x61, 0x63, 0x10, 0xb6, 0x06, 0x61, 0x61, 0x11, 0xde, 0x2c,
- 0xc2, 0xbb, 0x45, 0xf8, 0xb0, 0x08, 0x4b, 0x8b, 0x64, 0x65, 0x11, 0xd6, 0x16, 0xe1, 0xdb, 0x22,
- 0xd9, 0x58, 0x84, 0xad, 0x45, 0xb2, 0xf8, 0x42, 0x12, 0x57, 0xdc, 0xdf, 0xb6, 0x7e, 0x02, 0x00,
- 0x00, 0xff, 0xff, 0x44, 0xd1, 0x73, 0x81, 0xb7, 0x01, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.pb.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.pb.go
index fbeee989c1..dac2a98db1 100644
--- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.pb.go
@@ -3,29 +3,25 @@
package proto2_maps
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
-import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strconv "strconv"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-
-import encoding_binary "encoding/binary"
-
-import io "io"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ github_com_gogo_protobuf_test "github.com/gogo/protobuf/test"
+ github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strconv "strconv"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -51,6 +47,7 @@ var MapEnum_name = map[int32]string{
1: "MB",
2: "MC",
}
+
var MapEnum_value = map[string]int32{
"MA": 0,
"MB": 1,
@@ -62,9 +59,11 @@ func (x MapEnum) Enum() *MapEnum {
*p = x
return p
}
+
func (x MapEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(MapEnum_name, int32(x))
}
+
func (x *MapEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(MapEnum_value, data, "MapEnum")
if err != nil {
@@ -73,8 +72,9 @@ func (x *MapEnum) UnmarshalJSON(data []byte) error {
*x = MapEnum(value)
return nil
}
+
func (MapEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_7bd3336f77331b84, []int{0}
+ return fileDescriptor_0549d724f3f4db02, []int{0}
}
type FloatingPoint struct {
@@ -87,7 +87,7 @@ type FloatingPoint struct {
func (m *FloatingPoint) Reset() { *m = FloatingPoint{} }
func (*FloatingPoint) ProtoMessage() {}
func (*FloatingPoint) Descriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_7bd3336f77331b84, []int{0}
+ return fileDescriptor_0549d724f3f4db02, []int{0}
}
func (m *FloatingPoint) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -104,8 +104,8 @@ func (m *FloatingPoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
return b[:n], nil
}
}
-func (dst *FloatingPoint) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FloatingPoint.Merge(dst, src)
+func (m *FloatingPoint) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FloatingPoint.Merge(m, src)
}
func (m *FloatingPoint) XXX_Size() int {
return m.Size()
@@ -129,7 +129,7 @@ type CustomMap struct {
func (m *CustomMap) Reset() { *m = CustomMap{} }
func (*CustomMap) ProtoMessage() {}
func (*CustomMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_7bd3336f77331b84, []int{1}
+ return fileDescriptor_0549d724f3f4db02, []int{1}
}
func (m *CustomMap) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -146,8 +146,8 @@ func (m *CustomMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *CustomMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomMap.Merge(dst, src)
+func (m *CustomMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomMap.Merge(m, src)
}
func (m *CustomMap) XXX_Size() int {
return m.Size()
@@ -184,7 +184,7 @@ type AllMaps struct {
func (m *AllMaps) Reset() { *m = AllMaps{} }
func (*AllMaps) ProtoMessage() {}
func (*AllMaps) Descriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_7bd3336f77331b84, []int{2}
+ return fileDescriptor_0549d724f3f4db02, []int{2}
}
func (m *AllMaps) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -201,8 +201,8 @@ func (m *AllMaps) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *AllMaps) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllMaps.Merge(dst, src)
+func (m *AllMaps) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllMaps.Merge(m, src)
}
func (m *AllMaps) XXX_Size() int {
return m.Size()
@@ -239,7 +239,7 @@ type AllMapsOrdered struct {
func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} }
func (*AllMapsOrdered) ProtoMessage() {}
func (*AllMapsOrdered) Descriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_7bd3336f77331b84, []int{3}
+ return fileDescriptor_0549d724f3f4db02, []int{3}
}
func (m *AllMapsOrdered) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -252,8 +252,8 @@ func (m *AllMapsOrdered) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro
}
return b[:n], nil
}
-func (dst *AllMapsOrdered) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllMapsOrdered.Merge(dst, src)
+func (m *AllMapsOrdered) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllMapsOrdered.Merge(m, src)
}
func (m *AllMapsOrdered) XXX_Size() int {
return m.Size()
@@ -265,6 +265,7 @@ func (m *AllMapsOrdered) XXX_DiscardUnknown() {
var xxx_messageInfo_AllMapsOrdered proto.InternalMessageInfo
func init() {
+ proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value)
proto.RegisterType((*FloatingPoint)(nil), "proto2.maps.FloatingPoint")
proto.RegisterType((*CustomMap)(nil), "proto2.maps.CustomMap")
proto.RegisterMapType((map[string]github_com_gogo_protobuf_test.Uuid)(nil), "proto2.maps.CustomMap.IdsEntry")
@@ -307,8 +308,86 @@ func init() {
proto.RegisterMapType((map[string]*FloatingPoint)(nil), "proto2.maps.AllMapsOrdered.StringToMsgMapEntry")
proto.RegisterMapType((map[uint32]uint32)(nil), "proto2.maps.AllMapsOrdered.Uint32MapEntry")
proto.RegisterMapType((map[uint64]uint64)(nil), "proto2.maps.AllMapsOrdered.Uint64MapEntry")
- proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value)
}
+
+func init() { proto.RegisterFile("combos/both/mapsproto2.proto", fileDescriptor_0549d724f3f4db02) }
+
+var fileDescriptor_0549d724f3f4db02 = []byte{
+ // 1143 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x97, 0xcb, 0x6f, 0x1a, 0x57,
+ 0x14, 0xc6, 0xb9, 0x3c, 0x0c, 0x5c, 0xde, 0x37, 0x69, 0x85, 0x50, 0x7b, 0x71, 0xe8, 0x8b, 0x90,
+ 0x14, 0x6c, 0x1a, 0x45, 0x96, 0xd3, 0xa6, 0x32, 0xb6, 0x53, 0xac, 0x14, 0x37, 0x82, 0xa6, 0x2f,
+ 0xc9, 0x52, 0xc1, 0x3c, 0x82, 0x0a, 0x0c, 0x65, 0x86, 0xa8, 0xde, 0x54, 0xf9, 0x33, 0xba, 0xed,
+ 0xae, 0xcb, 0x2e, 0xbb, 0xec, 0xd2, 0x52, 0x37, 0x59, 0x46, 0x51, 0x65, 0x85, 0xe9, 0x26, 0xcb,
+ 0x2c, 0xb3, 0xac, 0xe6, 0xce, 0x83, 0x3b, 0x33, 0x67, 0x66, 0xa0, 0xab, 0x2e, 0xbc, 0xc2, 0x77,
+ 0x38, 0xdf, 0xef, 0x3b, 0x33, 0x73, 0xef, 0xe1, 0x33, 0x7e, 0xeb, 0x54, 0x18, 0x77, 0x04, 0xb1,
+ 0xd2, 0x11, 0xa4, 0x47, 0x95, 0x71, 0x7b, 0x2a, 0x4e, 0x67, 0x82, 0x24, 0x54, 0xcb, 0xec, 0x83,
+ 0xc4, 0xb4, 0x95, 0xf2, 0x45, 0xee, 0xc3, 0xc1, 0x50, 0x7a, 0x34, 0xef, 0x94, 0x4f, 0x85, 0x71,
+ 0x65, 0x20, 0x0c, 0x84, 0x0a, 0xfb, 0xb2, 0x33, 0xef, 0xb3, 0x15, 0x5b, 0xb0, 0xbf, 0x54, 0x6d,
+ 0xe1, 0x6d, 0x9c, 0xb8, 0x37, 0x12, 0xda, 0xd2, 0x70, 0x32, 0x78, 0x20, 0x0c, 0x27, 0x12, 0x89,
+ 0x63, 0xd4, 0xcf, 0xa2, 0x4d, 0x54, 0x44, 0x4d, 0xd4, 0x2f, 0xfc, 0x15, 0xc2, 0xd1, 0xfd, 0xb9,
+ 0x28, 0x09, 0xe3, 0x46, 0x7b, 0x4a, 0x7e, 0xc6, 0xf1, 0xe3, 0xf9, 0x68, 0xd4, 0xee, 0x8c, 0x7a,
+ 0xdb, 0xd5, 0x1d, 0x31, 0x8b, 0x36, 0x03, 0xc5, 0x58, 0xb5, 0x58, 0xe6, 0xfc, 0xcb, 0x46, 0x75,
+ 0x99, 0x2f, 0x3d, 0x9c, 0x48, 0xb3, 0xb3, 0xda, 0xd6, 0xf3, 0x8b, 0xfc, 0x4d, 0xc7, 0xfe, 0xa4,
+ 0x9e, 0x28, 0x55, 0x4e, 0x99, 0xbc, 0xfc, 0x70, 0x38, 0x91, 0xb6, 0xab, 0x3b, 0x4d, 0x93, 0x1f,
+ 0x79, 0x8c, 0x23, 0xda, 0x17, 0x62, 0xd6, 0xcf, 0xbc, 0xdf, 0x75, 0xf0, 0xd6, 0xcb, 0x54, 0xdf,
+ 0x5b, 0xe7, 0x17, 0x79, 0xdf, 0xda, 0xde, 0x86, 0x17, 0xf9, 0x11, 0xc7, 0xf4, 0x3e, 0x8e, 0xba,
+ 0x62, 0x36, 0xc0, 0xac, 0x3f, 0xf0, 0xb8, 0xed, 0xa3, 0xae, 0xe6, 0xfe, 0xfe, 0xf3, 0x8b, 0x7c,
+ 0xc1, 0xd5, 0xb9, 0xfc, 0x70, 0x3e, 0xec, 0x36, 0x79, 0x0f, 0x72, 0x82, 0x03, 0x8a, 0x55, 0x90,
+ 0x59, 0xe5, 0x1d, 0xac, 0x0c, 0x8b, 0x92, 0x76, 0x83, 0xab, 0xd8, 0x28, 0xdc, 0xdc, 0xa7, 0x38,
+ 0x63, 0x7b, 0x3d, 0x24, 0x8d, 0x03, 0x3f, 0xf4, 0xce, 0xd8, 0xcb, 0x8f, 0x36, 0x95, 0x3f, 0xc9,
+ 0x55, 0x1c, 0x7a, 0xdc, 0x1e, 0xcd, 0x7b, 0x59, 0xff, 0x26, 0x2a, 0xc6, 0x9b, 0xea, 0x62, 0xd7,
+ 0xbf, 0x83, 0x72, 0x77, 0x70, 0xc2, 0xf4, 0x8c, 0xd7, 0x12, 0xdf, 0xc5, 0x69, 0xeb, 0x53, 0x5a,
+ 0x4b, 0x7f, 0x1b, 0x47, 0xfe, 0x8b, 0xae, 0xf0, 0x8c, 0xe0, 0xf0, 0xde, 0x68, 0xd4, 0x68, 0x4f,
+ 0x45, 0xf2, 0x2d, 0xce, 0xb4, 0xa4, 0xd9, 0x70, 0x32, 0xf8, 0x52, 0x38, 0x10, 0xe6, 0x9d, 0x51,
+ 0xaf, 0xd1, 0x9e, 0x6a, 0x1b, 0xfa, 0x86, 0xe9, 0x71, 0x6b, 0x82, 0xb2, 0xad, 0x9a, 0xf9, 0x37,
+ 0xed, 0x14, 0xf2, 0x15, 0x4e, 0xeb, 0x17, 0xd9, 0xd9, 0x52, 0xc8, 0xea, 0x76, 0x2d, 0xb9, 0x92,
+ 0xf5, 0x62, 0x15, 0x6c, 0x63, 0x90, 0xbb, 0x38, 0x72, 0x34, 0x91, 0x3e, 0xaa, 0x2a, 0x3c, 0x75,
+ 0x0f, 0x16, 0x40, 0x9e, 0x5e, 0xa4, 0x72, 0x0c, 0x8d, 0xa6, 0xbf, 0x7d, 0x4b, 0xd1, 0x07, 0xdd,
+ 0xf5, 0xac, 0x68, 0xa9, 0x67, 0x4b, 0xb2, 0x87, 0xa3, 0xca, 0x3b, 0x57, 0x1b, 0x08, 0x31, 0xc0,
+ 0x3b, 0x20, 0xc0, 0xa8, 0x52, 0x09, 0x4b, 0x95, 0x8e, 0x50, 0x7b, 0xd8, 0xf0, 0x40, 0x70, 0x4d,
+ 0x2c, 0x55, 0x0a, 0xa2, 0x65, 0x74, 0x11, 0x76, 0x41, 0xb4, 0x2c, 0x5d, 0xb4, 0xf8, 0x2e, 0x5a,
+ 0x46, 0x17, 0x11, 0x0f, 0x04, 0xdf, 0x85, 0xb1, 0x26, 0x07, 0x18, 0xdf, 0x1b, 0xfe, 0xd4, 0xeb,
+ 0xaa, 0x6d, 0x44, 0x81, 0x61, 0xa4, 0x33, 0x96, 0x65, 0x2a, 0x84, 0xd3, 0x91, 0xcf, 0x70, 0xac,
+ 0xd5, 0x5f, 0x62, 0x30, 0xc3, 0xbc, 0x07, 0xb7, 0xd2, 0xb7, 0x70, 0x78, 0xa5, 0xd1, 0x8e, 0x7a,
+ 0x4b, 0x31, 0xaf, 0x76, 0xb8, 0x7b, 0xe2, 0x74, 0xcb, 0x76, 0x54, 0x4c, 0xdc, 0xb3, 0x1d, 0x8e,
+ 0xc3, 0x2b, 0xc9, 0x1d, 0x1c, 0xae, 0x09, 0x82, 0x52, 0x99, 0x4d, 0x30, 0xc8, 0x35, 0x10, 0xa2,
+ 0xd5, 0xa8, 0x00, 0x5d, 0xc1, 0xde, 0x0e, 0xdb, 0xfa, 0x8a, 0x3c, 0xe9, 0xf6, 0x76, 0xf4, 0x2a,
+ 0xfd, 0xed, 0xe8, 0x6b, 0xfe, 0x04, 0xd6, 0xce, 0xa4, 0x9e, 0xa8, 0x90, 0x52, 0x2b, 0x9c, 0x40,
+ 0xbd, 0xd8, 0x72, 0x02, 0xf5, 0xcb, 0xa4, 0x85, 0x53, 0xfa, 0xb5, 0xc3, 0xc9, 0x5c, 0x99, 0xc1,
+ 0xd9, 0x34, 0xc3, 0x5e, 0x77, 0xc5, 0x6a, 0xb5, 0x2a, 0xd5, 0x4a, 0x20, 0x0f, 0x70, 0x52, 0xbf,
+ 0xd4, 0x10, 0xd9, 0x4d, 0x67, 0x80, 0xdf, 0x55, 0x2b, 0x53, 0x2d, 0x55, 0x91, 0x16, 0x7d, 0xee,
+ 0x00, 0xbf, 0x09, 0x4f, 0x2b, 0xaf, 0x69, 0x89, 0xf8, 0x29, 0xbb, 0x8f, 0xdf, 0x00, 0x27, 0x93,
+ 0x17, 0xc4, 0x6f, 0xf9, 0x9d, 0x30, 0x8d, 0x23, 0x5e, 0x1c, 0x02, 0xc4, 0x21, 0xbb, 0x78, 0xb9,
+ 0xc9, 0x78, 0x71, 0x00, 0x10, 0x07, 0x78, 0xf1, 0xc7, 0x38, 0x69, 0x9e, 0x43, 0xbc, 0x3a, 0x01,
+ 0xa8, 0x13, 0x80, 0x1a, 0xf6, 0x0e, 0x02, 0xea, 0xa0, 0x45, 0xdd, 0x72, 0xf4, 0xce, 0x00, 0xea,
+ 0x0c, 0xa0, 0x86, 0xbd, 0x09, 0xa0, 0x26, 0xbc, 0xfa, 0x13, 0x9c, 0xb2, 0x8c, 0x1c, 0x5e, 0x1e,
+ 0x06, 0xe4, 0x61, 0xcb, 0x6f, 0xb3, 0x75, 0xd4, 0xf0, 0xfa, 0x14, 0xa0, 0x4f, 0x41, 0xf6, 0x70,
+ 0xf7, 0x1b, 0x80, 0x7c, 0x03, 0xb4, 0x87, 0xf5, 0x69, 0x40, 0x9f, 0xe6, 0xf5, 0xbb, 0x38, 0xce,
+ 0x4f, 0x15, 0x5e, 0x1b, 0x01, 0xb4, 0x11, 0xeb, 0x73, 0x37, 0x8d, 0x14, 0xaf, 0x9d, 0x1e, 0x75,
+ 0x38, 0x2e, 0xa6, 0x31, 0xb2, 0x56, 0xb2, 0xf9, 0x06, 0x5f, 0x85, 0x86, 0x06, 0xc0, 0x28, 0xf1,
+ 0x8c, 0x64, 0xf5, 0xaa, 0x69, 0x58, 0x30, 0xdd, 0x7c, 0xcc, 0x93, 0x4f, 0xf0, 0x15, 0x60, 0x74,
+ 0x00, 0xe0, 0x2d, 0x1e, 0x1c, 0xab, 0xe6, 0x4c, 0x60, 0xd3, 0xff, 0x0a, 0x7c, 0xb4, 0xfa, 0xfb,
+ 0x0a, 0x4e, 0x6a, 0x23, 0xea, 0x8b, 0x59, 0xb7, 0x37, 0xeb, 0x75, 0xc9, 0xf7, 0xce, 0x09, 0xab,
+ 0x0a, 0x8d, 0x36, 0x4d, 0xb7, 0x46, 0xd0, 0x3a, 0x71, 0x0c, 0x5a, 0xdb, 0xab, 0x18, 0x78, 0xe5,
+ 0xad, 0x43, 0x5b, 0xde, 0xba, 0xee, 0x86, 0x75, 0x8a, 0x5d, 0x87, 0xb6, 0xd8, 0xe5, 0x85, 0x01,
+ 0xd3, 0x57, 0xdd, 0x9e, 0xbe, 0x4a, 0x6e, 0x1c, 0xe7, 0x10, 0x56, 0xb7, 0x87, 0x30, 0x4f, 0x12,
+ 0x9c, 0xc5, 0xea, 0xf6, 0x2c, 0xe6, 0x4a, 0x72, 0x8e, 0x64, 0x75, 0x7b, 0x24, 0xf3, 0x24, 0xc1,
+ 0xc9, 0xec, 0x3e, 0x90, 0xcc, 0x6e, 0xb8, 0xa1, 0xdc, 0x02, 0xda, 0x31, 0x14, 0xd0, 0x6e, 0xba,
+ 0x36, 0xe6, 0x9a, 0xd3, 0xee, 0x03, 0x39, 0xcd, 0xbb, 0x39, 0x87, 0xb8, 0x76, 0x0c, 0xc5, 0xb5,
+ 0x15, 0x9a, 0x73, 0x4a, 0x6d, 0x35, 0x6b, 0x6a, 0x2b, 0xba, 0xb1, 0xe0, 0xf0, 0x56, 0xb7, 0x87,
+ 0xb7, 0x92, 0xf7, 0x59, 0x84, 0x32, 0xdc, 0x89, 0x63, 0x86, 0x5b, 0xe9, 0x70, 0x7b, 0x45, 0xb9,
+ 0xef, 0x9c, 0xa2, 0xdc, 0xd6, 0x2a, 0x74, 0xf7, 0x44, 0xf7, 0xb5, 0x43, 0xa2, 0xab, 0xac, 0x82,
+ 0xbe, 0x0c, 0x76, 0x97, 0xc1, 0xee, 0x32, 0xd8, 0x5d, 0x06, 0xbb, 0xff, 0x47, 0xb0, 0xdb, 0x0d,
+ 0xfe, 0xf2, 0x6b, 0x1e, 0x95, 0xae, 0xe1, 0xb0, 0x66, 0x4d, 0x36, 0xb0, 0xbf, 0xb1, 0x97, 0xf6,
+ 0xb1, 0xcf, 0x5a, 0x1a, 0xb1, 0xcf, 0xfd, 0xb4, 0xbf, 0xf6, 0xf9, 0xf9, 0x82, 0xfa, 0x9e, 0x2e,
+ 0xa8, 0xef, 0xd9, 0x82, 0xfa, 0x5e, 0x2c, 0x28, 0x7a, 0xb9, 0xa0, 0xe8, 0xd5, 0x82, 0xa2, 0xd7,
+ 0x0b, 0x8a, 0x9e, 0xc8, 0x14, 0xfd, 0x26, 0x53, 0xf4, 0xbb, 0x4c, 0xd1, 0x1f, 0x32, 0x45, 0x7f,
+ 0xca, 0x14, 0x9d, 0xcb, 0x14, 0x3d, 0x95, 0x29, 0x7a, 0x21, 0x53, 0xf4, 0x52, 0xa6, 0xbe, 0x57,
+ 0x32, 0x45, 0xaf, 0x65, 0xea, 0x7b, 0xf2, 0x0f, 0xf5, 0xfd, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xfa,
+ 0x87, 0xd5, 0x9e, 0xf2, 0x16, 0x00, 0x00,
+}
+
func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return Mapsproto2Description()
}
@@ -324,222 +403,224 @@ func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc
func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4797 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7b, 0x5b, 0x6c, 0x23, 0xd7,
- 0x79, 0xbf, 0x86, 0x17, 0x89, 0xfc, 0x48, 0x51, 0xa3, 0x91, 0xbc, 0xa6, 0x95, 0x58, 0xbb, 0x2b,
- 0xdf, 0xe4, 0x5d, 0x5b, 0xb2, 0xe5, 0xdd, 0xf5, 0x9a, 0x1b, 0xdb, 0x7f, 0x4a, 0xe2, 0x6a, 0x65,
- 0xeb, 0x96, 0xa1, 0xe4, 0x5b, 0x60, 0xcc, 0x7f, 0x34, 0x3c, 0xa2, 0xc6, 0x4b, 0xce, 0xd0, 0x33,
- 0xc3, 0x5d, 0xcb, 0x28, 0x8a, 0x2d, 0xdc, 0x0b, 0x82, 0xa2, 0xf7, 0x02, 0x75, 0x5c, 0xc7, 0xad,
- 0x53, 0x34, 0x4e, 0xd3, 0x5b, 0xd2, 0xb4, 0x69, 0x92, 0xbe, 0xe4, 0x25, 0xad, 0x81, 0x02, 0x45,
- 0xf2, 0x16, 0x04, 0x81, 0xe1, 0x55, 0x0c, 0xd4, 0x6d, 0xdd, 0xc6, 0x4d, 0xfd, 0x60, 0xc0, 0x2f,
- 0xc5, 0xb9, 0x0d, 0xcf, 0x0c, 0x87, 0x1c, 0xca, 0x80, 0x9d, 0x3e, 0xf8, 0x69, 0x35, 0xe7, 0x7c,
- 0xbf, 0xdf, 0xf9, 0xe6, 0x3b, 0xdf, 0xf9, 0xce, 0xef, 0x9c, 0xe1, 0xc2, 0x4f, 0x1f, 0x80, 0x13,
- 0x75, 0xdb, 0xae, 0x37, 0xd0, 0x7c, 0xcb, 0xb1, 0x3d, 0x7b, 0xb7, 0xbd, 0x37, 0x5f, 0x43, 0xae,
- 0xe1, 0x98, 0x2d, 0xcf, 0x76, 0xe6, 0x48, 0x9b, 0x32, 0x46, 0x2d, 0xe6, 0xb8, 0xc5, 0xcc, 0x3a,
- 0x8c, 0x5f, 0x34, 0x1b, 0x68, 0xd9, 0x37, 0xac, 0x22, 0x4f, 0x39, 0x0f, 0xa9, 0x3d, 0xb3, 0x81,
- 0x8a, 0xd2, 0x89, 0xe4, 0x6c, 0x6e, 0xe1, 0xd6, 0xb9, 0x10, 0x68, 0x2e, 0x88, 0xd8, 0xc2, 0xcd,
- 0x2a, 0x41, 0xcc, 0xbc, 0x95, 0x82, 0x89, 0x88, 0x5e, 0x45, 0x81, 0x94, 0xa5, 0x37, 0x31, 0xa3,
- 0x34, 0x9b, 0x55, 0xc9, 0xdf, 0x4a, 0x11, 0x46, 0x5a, 0xba, 0x71, 0x59, 0xaf, 0xa3, 0x62, 0x82,
- 0x34, 0xf3, 0x47, 0x65, 0x1a, 0xa0, 0x86, 0x5a, 0xc8, 0xaa, 0x21, 0xcb, 0x38, 0x28, 0x26, 0x4f,
- 0x24, 0x67, 0xb3, 0xaa, 0xd0, 0xa2, 0x9c, 0x86, 0xf1, 0x56, 0x7b, 0xb7, 0x61, 0x1a, 0x9a, 0x60,
- 0x06, 0x27, 0x92, 0xb3, 0x69, 0x55, 0xa6, 0x1d, 0xcb, 0x1d, 0xe3, 0x3b, 0x60, 0xec, 0x2a, 0xd2,
- 0x2f, 0x8b, 0xa6, 0x39, 0x62, 0x5a, 0xc0, 0xcd, 0x82, 0xe1, 0x12, 0xe4, 0x9b, 0xc8, 0x75, 0xf5,
- 0x3a, 0xd2, 0xbc, 0x83, 0x16, 0x2a, 0xa6, 0xc8, 0xdb, 0x9f, 0xe8, 0x7a, 0xfb, 0xf0, 0x9b, 0xe7,
- 0x18, 0x6a, 0xfb, 0xa0, 0x85, 0x94, 0x32, 0x64, 0x91, 0xd5, 0x6e, 0x52, 0x86, 0x74, 0x8f, 0xf8,
- 0x55, 0xac, 0x76, 0x33, 0xcc, 0x92, 0xc1, 0x30, 0x46, 0x31, 0xe2, 0x22, 0xe7, 0x8a, 0x69, 0xa0,
- 0xe2, 0x30, 0x21, 0xb8, 0xa3, 0x8b, 0xa0, 0x4a, 0xfb, 0xc3, 0x1c, 0x1c, 0xa7, 0x2c, 0x41, 0x16,
- 0x3d, 0xe7, 0x21, 0xcb, 0x35, 0x6d, 0xab, 0x38, 0x42, 0x48, 0x6e, 0x8b, 0x98, 0x45, 0xd4, 0xa8,
- 0x85, 0x29, 0x3a, 0x38, 0xe5, 0x1c, 0x8c, 0xd8, 0x2d, 0xcf, 0xb4, 0x2d, 0xb7, 0x98, 0x39, 0x21,
- 0xcd, 0xe6, 0x16, 0x3e, 0x1d, 0x99, 0x08, 0x9b, 0xd4, 0x46, 0xe5, 0xc6, 0xca, 0x2a, 0xc8, 0xae,
- 0xdd, 0x76, 0x0c, 0xa4, 0x19, 0x76, 0x0d, 0x69, 0xa6, 0xb5, 0x67, 0x17, 0xb3, 0x84, 0xe0, 0x78,
- 0xf7, 0x8b, 0x10, 0xc3, 0x25, 0xbb, 0x86, 0x56, 0xad, 0x3d, 0x5b, 0x2d, 0xb8, 0x81, 0x67, 0xe5,
- 0x18, 0x0c, 0xbb, 0x07, 0x96, 0xa7, 0x3f, 0x57, 0xcc, 0x93, 0x0c, 0x61, 0x4f, 0x33, 0xdf, 0x1e,
- 0x86, 0xb1, 0x41, 0x52, 0xec, 0x02, 0xa4, 0xf7, 0xf0, 0x5b, 0x16, 0x13, 0x47, 0x89, 0x01, 0xc5,
- 0x04, 0x83, 0x38, 0xfc, 0x21, 0x83, 0x58, 0x86, 0x9c, 0x85, 0x5c, 0x0f, 0xd5, 0x68, 0x46, 0x24,
- 0x07, 0xcc, 0x29, 0xa0, 0xa0, 0xee, 0x94, 0x4a, 0x7d, 0xa8, 0x94, 0x7a, 0x02, 0xc6, 0x7c, 0x97,
- 0x34, 0x47, 0xb7, 0xea, 0x3c, 0x37, 0xe7, 0xe3, 0x3c, 0x99, 0xab, 0x70, 0x9c, 0x8a, 0x61, 0x6a,
- 0x01, 0x05, 0x9e, 0x95, 0x65, 0x00, 0xdb, 0x42, 0xf6, 0x9e, 0x56, 0x43, 0x46, 0xa3, 0x98, 0xe9,
- 0x11, 0xa5, 0x4d, 0x6c, 0xd2, 0x15, 0x25, 0x9b, 0xb6, 0x1a, 0x0d, 0xe5, 0x81, 0x4e, 0xaa, 0x8d,
- 0xf4, 0xc8, 0x94, 0x75, 0xba, 0xc8, 0xba, 0xb2, 0x6d, 0x07, 0x0a, 0x0e, 0xc2, 0x79, 0x8f, 0x6a,
- 0xec, 0xcd, 0xb2, 0xc4, 0x89, 0xb9, 0xd8, 0x37, 0x53, 0x19, 0x8c, 0xbe, 0xd8, 0xa8, 0x23, 0x3e,
- 0x2a, 0xb7, 0x80, 0xdf, 0xa0, 0x91, 0xb4, 0x02, 0x52, 0x85, 0xf2, 0xbc, 0x71, 0x43, 0x6f, 0xa2,
- 0xa9, 0xe7, 0xa1, 0x10, 0x0c, 0x8f, 0x32, 0x09, 0x69, 0xd7, 0xd3, 0x1d, 0x8f, 0x64, 0x61, 0x5a,
- 0xa5, 0x0f, 0x8a, 0x0c, 0x49, 0x64, 0xd5, 0x48, 0x95, 0x4b, 0xab, 0xf8, 0x4f, 0xe5, 0xff, 0x75,
- 0x5e, 0x38, 0x49, 0x5e, 0xf8, 0xf6, 0xee, 0x19, 0x0d, 0x30, 0x87, 0xdf, 0x7b, 0xea, 0x7e, 0x18,
- 0x0d, 0xbc, 0xc0, 0xa0, 0x43, 0xcf, 0xfc, 0x02, 0xdc, 0x10, 0x49, 0xad, 0x3c, 0x01, 0x93, 0x6d,
- 0xcb, 0xb4, 0x3c, 0xe4, 0xb4, 0x1c, 0x84, 0x33, 0x96, 0x0e, 0x55, 0xfc, 0xd7, 0x91, 0x1e, 0x39,
- 0xb7, 0x23, 0x5a, 0x53, 0x16, 0x75, 0xa2, 0xdd, 0xdd, 0x78, 0x2a, 0x9b, 0x79, 0x7b, 0x44, 0xbe,
- 0x76, 0xed, 0xda, 0xb5, 0xc4, 0xcc, 0x8b, 0xc3, 0x30, 0x19, 0xb5, 0x66, 0x22, 0x97, 0xef, 0x31,
- 0x18, 0xb6, 0xda, 0xcd, 0x5d, 0xe4, 0x90, 0x20, 0xa5, 0x55, 0xf6, 0xa4, 0x94, 0x21, 0xdd, 0xd0,
- 0x77, 0x51, 0xa3, 0x98, 0x3a, 0x21, 0xcd, 0x16, 0x16, 0x4e, 0x0f, 0xb4, 0x2a, 0xe7, 0xd6, 0x30,
- 0x44, 0xa5, 0x48, 0xe5, 0x21, 0x48, 0xb1, 0x12, 0x8d, 0x19, 0x4e, 0x0d, 0xc6, 0x80, 0xd7, 0x92,
- 0x4a, 0x70, 0xca, 0xa7, 0x20, 0x8b, 0xff, 0xa5, 0xb9, 0x31, 0x4c, 0x7c, 0xce, 0xe0, 0x06, 0x9c,
- 0x17, 0xca, 0x14, 0x64, 0xc8, 0x32, 0xa9, 0x21, 0xbe, 0xb5, 0xf9, 0xcf, 0x38, 0xb1, 0x6a, 0x68,
- 0x4f, 0x6f, 0x37, 0x3c, 0xed, 0x8a, 0xde, 0x68, 0x23, 0x92, 0xf0, 0x59, 0x35, 0xcf, 0x1a, 0x1f,
- 0xc3, 0x6d, 0xca, 0x71, 0xc8, 0xd1, 0x55, 0x65, 0x5a, 0x35, 0xf4, 0x1c, 0xa9, 0x9e, 0x69, 0x95,
- 0x2e, 0xb4, 0x55, 0xdc, 0x82, 0x87, 0x7f, 0xc6, 0xb5, 0x2d, 0x9e, 0x9a, 0x64, 0x08, 0xdc, 0x40,
- 0x86, 0xbf, 0x3f, 0x5c, 0xb8, 0x6f, 0x8e, 0x7e, 0xbd, 0x70, 0x4e, 0xcd, 0x7c, 0x33, 0x01, 0x29,
- 0x52, 0x2f, 0xc6, 0x20, 0xb7, 0xfd, 0xe4, 0x56, 0x45, 0x5b, 0xde, 0xdc, 0x59, 0x5c, 0xab, 0xc8,
- 0x92, 0x52, 0x00, 0x20, 0x0d, 0x17, 0xd7, 0x36, 0xcb, 0xdb, 0x72, 0xc2, 0x7f, 0x5e, 0xdd, 0xd8,
- 0x3e, 0x77, 0x46, 0x4e, 0xfa, 0x80, 0x1d, 0xda, 0x90, 0x12, 0x0d, 0xee, 0x5b, 0x90, 0xd3, 0x8a,
- 0x0c, 0x79, 0x4a, 0xb0, 0xfa, 0x44, 0x65, 0xf9, 0xdc, 0x19, 0x79, 0x38, 0xd8, 0x72, 0xdf, 0x82,
- 0x3c, 0xa2, 0x8c, 0x42, 0x96, 0xb4, 0x2c, 0x6e, 0x6e, 0xae, 0xc9, 0x19, 0x9f, 0xb3, 0xba, 0xad,
- 0xae, 0x6e, 0xac, 0xc8, 0x59, 0x9f, 0x73, 0x45, 0xdd, 0xdc, 0xd9, 0x92, 0xc1, 0x67, 0x58, 0xaf,
- 0x54, 0xab, 0xe5, 0x95, 0x8a, 0x9c, 0xf3, 0x2d, 0x16, 0x9f, 0xdc, 0xae, 0x54, 0xe5, 0x7c, 0xc0,
- 0xad, 0xfb, 0x16, 0xe4, 0x51, 0x7f, 0x88, 0xca, 0xc6, 0xce, 0xba, 0x5c, 0x50, 0xc6, 0x61, 0x94,
- 0x0e, 0xc1, 0x9d, 0x18, 0x0b, 0x35, 0x9d, 0x3b, 0x23, 0xcb, 0x1d, 0x47, 0x28, 0xcb, 0x78, 0xa0,
- 0xe1, 0xdc, 0x19, 0x59, 0x99, 0x59, 0x82, 0x34, 0xc9, 0x2e, 0x45, 0x81, 0xc2, 0x5a, 0x79, 0xb1,
- 0xb2, 0xa6, 0x6d, 0x6e, 0x6d, 0xaf, 0x6e, 0x6e, 0x94, 0xd7, 0x64, 0xa9, 0xd3, 0xa6, 0x56, 0x3e,
- 0xbb, 0xb3, 0xaa, 0x56, 0x96, 0xe5, 0x84, 0xd8, 0xb6, 0x55, 0x29, 0x6f, 0x57, 0x96, 0xe5, 0xe4,
- 0x8c, 0x01, 0x93, 0x51, 0x75, 0x32, 0x72, 0x65, 0x08, 0x53, 0x9c, 0xe8, 0x31, 0xc5, 0x84, 0xab,
- 0x6b, 0x8a, 0x7f, 0x92, 0x80, 0x89, 0x88, 0xbd, 0x22, 0x72, 0x90, 0x87, 0x21, 0x4d, 0x53, 0x94,
- 0xee, 0x9e, 0x77, 0x46, 0x6e, 0x3a, 0x24, 0x61, 0xbb, 0x76, 0x50, 0x82, 0x13, 0x15, 0x44, 0xb2,
- 0x87, 0x82, 0xc0, 0x14, 0x5d, 0x35, 0xfd, 0xe9, 0xae, 0x9a, 0x4e, 0xb7, 0xbd, 0x73, 0x83, 0x6c,
- 0x7b, 0xa4, 0xed, 0x68, 0xb5, 0x3d, 0x1d, 0x51, 0xdb, 0x2f, 0xc0, 0x78, 0x17, 0xd1, 0xc0, 0x35,
- 0xf6, 0x05, 0x09, 0x8a, 0xbd, 0x82, 0x13, 0x53, 0xe9, 0x12, 0x81, 0x4a, 0x77, 0x21, 0x1c, 0xc1,
- 0x93, 0xbd, 0x27, 0xa1, 0x6b, 0xae, 0x5f, 0x93, 0xe0, 0x58, 0xb4, 0x52, 0x8c, 0xf4, 0xe1, 0x21,
- 0x18, 0x6e, 0x22, 0x6f, 0xdf, 0xe6, 0x6a, 0xe9, 0xf6, 0x88, 0x3d, 0x18, 0x77, 0x87, 0x27, 0x9b,
- 0xa1, 0xc4, 0x4d, 0x3c, 0xd9, 0x4b, 0xee, 0x51, 0x6f, 0xba, 0x3c, 0xfd, 0x7c, 0x02, 0x6e, 0x88,
- 0x24, 0x8f, 0x74, 0xf4, 0x66, 0x00, 0xd3, 0x6a, 0xb5, 0x3d, 0xaa, 0x88, 0x68, 0x81, 0xcd, 0x92,
- 0x16, 0x52, 0xbc, 0x70, 0xf1, 0x6c, 0x7b, 0x7e, 0x7f, 0x92, 0xf4, 0x03, 0x6d, 0x22, 0x06, 0xe7,
- 0x3b, 0x8e, 0xa6, 0x88, 0xa3, 0xd3, 0x3d, 0xde, 0xb4, 0x2b, 0x31, 0xef, 0x01, 0xd9, 0x68, 0x98,
- 0xc8, 0xf2, 0x34, 0xd7, 0x73, 0x90, 0xde, 0x34, 0xad, 0x3a, 0xd9, 0x41, 0x32, 0xa5, 0xf4, 0x9e,
- 0xde, 0x70, 0x91, 0x3a, 0x46, 0xbb, 0xab, 0xbc, 0x17, 0x23, 0x48, 0x02, 0x39, 0x02, 0x62, 0x38,
- 0x80, 0xa0, 0xdd, 0x3e, 0x62, 0xe6, 0x1b, 0x19, 0xc8, 0x09, 0xba, 0x5a, 0x39, 0x09, 0xf9, 0x67,
- 0xf4, 0x2b, 0xba, 0xc6, 0xcf, 0x4a, 0x34, 0x12, 0x39, 0xdc, 0xb6, 0xc5, 0xce, 0x4b, 0xf7, 0xc0,
- 0x24, 0x31, 0xb1, 0xdb, 0x1e, 0x72, 0x34, 0xa3, 0xa1, 0xbb, 0x2e, 0x09, 0x5a, 0x86, 0x98, 0x2a,
- 0xb8, 0x6f, 0x13, 0x77, 0x2d, 0xf1, 0x1e, 0xe5, 0x2c, 0x4c, 0x10, 0x44, 0xb3, 0xdd, 0xf0, 0xcc,
- 0x56, 0x03, 0x69, 0xf8, 0xf4, 0xe6, 0x92, 0x9d, 0xc4, 0xf7, 0x6c, 0x1c, 0x5b, 0xac, 0x33, 0x03,
- 0xec, 0x91, 0xab, 0x2c, 0xc3, 0xcd, 0x04, 0x56, 0x47, 0x16, 0x72, 0x74, 0x0f, 0x69, 0xe8, 0xd9,
- 0xb6, 0xde, 0x70, 0x35, 0xdd, 0xaa, 0x69, 0xfb, 0xba, 0xbb, 0x5f, 0x9c, 0xc4, 0x04, 0x8b, 0x89,
- 0xa2, 0xa4, 0xde, 0x84, 0x0d, 0x57, 0x98, 0x5d, 0x85, 0x98, 0x95, 0xad, 0xda, 0x25, 0xdd, 0xdd,
- 0x57, 0x4a, 0x70, 0x8c, 0xb0, 0xb8, 0x9e, 0x63, 0x5a, 0x75, 0xcd, 0xd8, 0x47, 0xc6, 0x65, 0xad,
- 0xed, 0xed, 0x9d, 0x2f, 0x7e, 0x4a, 0x1c, 0x9f, 0x78, 0x58, 0x25, 0x36, 0x4b, 0xd8, 0x64, 0xc7,
- 0xdb, 0x3b, 0xaf, 0x54, 0x21, 0x8f, 0x27, 0xa3, 0x69, 0x3e, 0x8f, 0xb4, 0x3d, 0xdb, 0x21, 0x5b,
- 0x63, 0x21, 0xa2, 0x34, 0x09, 0x11, 0x9c, 0xdb, 0x64, 0x80, 0x75, 0xbb, 0x86, 0x4a, 0xe9, 0xea,
- 0x56, 0xa5, 0xb2, 0xac, 0xe6, 0x38, 0xcb, 0x45, 0xdb, 0xc1, 0x09, 0x55, 0xb7, 0xfd, 0x00, 0xe7,
- 0x68, 0x42, 0xd5, 0x6d, 0x1e, 0xde, 0xb3, 0x30, 0x61, 0x18, 0xf4, 0x9d, 0x4d, 0x43, 0x63, 0x67,
- 0x2c, 0xb7, 0x28, 0x07, 0x82, 0x65, 0x18, 0x2b, 0xd4, 0x80, 0xe5, 0xb8, 0xab, 0x3c, 0x00, 0x37,
- 0x74, 0x82, 0x25, 0x02, 0xc7, 0xbb, 0xde, 0x32, 0x0c, 0x3d, 0x0b, 0x13, 0xad, 0x83, 0x6e, 0xa0,
- 0x12, 0x18, 0xb1, 0x75, 0x10, 0x86, 0xdd, 0x0f, 0x93, 0xad, 0xfd, 0x56, 0x37, 0xee, 0x94, 0x88,
- 0x53, 0x5a, 0xfb, 0xad, 0x30, 0xf0, 0x36, 0x72, 0xe0, 0x76, 0x90, 0xa1, 0x7b, 0xa8, 0x56, 0xbc,
- 0x51, 0x34, 0x17, 0x3a, 0x94, 0x79, 0x90, 0x0d, 0x43, 0x43, 0x96, 0xbe, 0xdb, 0x40, 0x9a, 0xee,
- 0x20, 0x4b, 0x77, 0x8b, 0xc7, 0x45, 0xe3, 0x82, 0x61, 0x54, 0x48, 0x6f, 0x99, 0x74, 0x2a, 0xa7,
- 0x60, 0xdc, 0xde, 0x7d, 0xc6, 0xa0, 0x29, 0xa9, 0xb5, 0x1c, 0xb4, 0x67, 0x3e, 0x57, 0xbc, 0x95,
- 0xc4, 0x77, 0x0c, 0x77, 0x90, 0x84, 0xdc, 0x22, 0xcd, 0xca, 0x9d, 0x20, 0x1b, 0xee, 0xbe, 0xee,
- 0xb4, 0x48, 0x4d, 0x76, 0x5b, 0xba, 0x81, 0x8a, 0xb7, 0x51, 0x53, 0xda, 0xbe, 0xc1, 0x9b, 0xf1,
- 0x92, 0x70, 0xaf, 0x9a, 0x7b, 0x1e, 0x67, 0xbc, 0x83, 0x2e, 0x09, 0xd2, 0xc6, 0xd8, 0x66, 0x41,
- 0xc6, 0xa1, 0x08, 0x0c, 0x3c, 0x4b, 0xcc, 0x0a, 0xad, 0xfd, 0x96, 0x38, 0xee, 0x2d, 0x30, 0x8a,
- 0x2d, 0x3b, 0x83, 0xde, 0x49, 0x05, 0x59, 0x6b, 0x5f, 0x18, 0xf1, 0x23, 0xd3, 0xc6, 0x33, 0x25,
- 0xc8, 0x8b, 0xf9, 0xa9, 0x64, 0x81, 0x66, 0xa8, 0x2c, 0x61, 0xb1, 0xb2, 0xb4, 0xb9, 0x8c, 0x65,
- 0xc6, 0x53, 0x15, 0x39, 0x81, 0xe5, 0xce, 0xda, 0xea, 0x76, 0x45, 0x53, 0x77, 0x36, 0xb6, 0x57,
- 0xd7, 0x2b, 0x72, 0x52, 0xd4, 0xd5, 0xdf, 0x4b, 0x40, 0x21, 0x78, 0x44, 0x52, 0x3e, 0x03, 0x37,
- 0xf2, 0xfb, 0x0c, 0x17, 0x79, 0xda, 0x55, 0xd3, 0x21, 0x4b, 0xa6, 0xa9, 0xd3, 0xed, 0xcb, 0x9f,
- 0xb4, 0x49, 0x66, 0x55, 0x45, 0xde, 0xe3, 0xa6, 0x83, 0x17, 0x44, 0x53, 0xf7, 0x94, 0x35, 0x38,
- 0x6e, 0xd9, 0x9a, 0xeb, 0xe9, 0x56, 0x4d, 0x77, 0x6a, 0x5a, 0xe7, 0x26, 0x49, 0xd3, 0x0d, 0x03,
- 0xb9, 0xae, 0x4d, 0xb7, 0x2a, 0x9f, 0xe5, 0xd3, 0x96, 0x5d, 0x65, 0xc6, 0x9d, 0x1a, 0x5e, 0x66,
- 0xa6, 0xa1, 0x04, 0x4b, 0xf6, 0x4a, 0xb0, 0x4f, 0x41, 0xb6, 0xa9, 0xb7, 0x34, 0x64, 0x79, 0xce,
- 0x01, 0x11, 0xc6, 0x19, 0x35, 0xd3, 0xd4, 0x5b, 0x15, 0xfc, 0xfc, 0xf1, 0x9c, 0x4f, 0x7e, 0x9c,
- 0x84, 0xbc, 0x28, 0x8e, 0xf1, 0x59, 0xc3, 0x20, 0xfb, 0x88, 0x44, 0x2a, 0xcd, 0x2d, 0x7d, 0xa5,
- 0xf4, 0xdc, 0x12, 0xde, 0x60, 0x4a, 0xc3, 0x54, 0xb2, 0xaa, 0x14, 0x89, 0x37, 0x77, 0x5c, 0x5b,
- 0x10, 0x95, 0x08, 0x19, 0x95, 0x3d, 0x29, 0x2b, 0x30, 0xfc, 0x8c, 0x4b, 0xb8, 0x87, 0x09, 0xf7,
- 0xad, 0xfd, 0xb9, 0x1f, 0xa9, 0x12, 0xf2, 0xec, 0x23, 0x55, 0x6d, 0x63, 0x53, 0x5d, 0x2f, 0xaf,
- 0xa9, 0x0c, 0xae, 0xdc, 0x04, 0xa9, 0x86, 0xfe, 0xfc, 0x41, 0x70, 0x2b, 0x22, 0x4d, 0x83, 0x06,
- 0xfe, 0x26, 0x48, 0x5d, 0x45, 0xfa, 0xe5, 0xe0, 0x06, 0x40, 0x9a, 0x3e, 0xc2, 0xd4, 0x9f, 0x87,
- 0x34, 0x89, 0x97, 0x02, 0xc0, 0x22, 0x26, 0x0f, 0x29, 0x19, 0x48, 0x2d, 0x6d, 0xaa, 0x38, 0xfd,
- 0x65, 0xc8, 0xd3, 0x56, 0x6d, 0x6b, 0xb5, 0xb2, 0x54, 0x91, 0x13, 0x33, 0x67, 0x61, 0x98, 0x06,
- 0x01, 0x2f, 0x0d, 0x3f, 0x0c, 0xf2, 0x10, 0x7b, 0x64, 0x1c, 0x12, 0xef, 0xdd, 0x59, 0x5f, 0xac,
- 0xa8, 0x72, 0x42, 0x9c, 0x5e, 0x17, 0xf2, 0xa2, 0x2e, 0xfe, 0x78, 0x72, 0xea, 0x3b, 0x12, 0xe4,
- 0x04, 0x9d, 0x8b, 0x05, 0x8a, 0xde, 0x68, 0xd8, 0x57, 0x35, 0xbd, 0x61, 0xea, 0x2e, 0x4b, 0x0a,
- 0x20, 0x4d, 0x65, 0xdc, 0x32, 0xe8, 0xa4, 0x7d, 0x2c, 0xce, 0xbf, 0x22, 0x81, 0x1c, 0x96, 0x98,
- 0x21, 0x07, 0xa5, 0x9f, 0xab, 0x83, 0x2f, 0x4b, 0x50, 0x08, 0xea, 0xca, 0x90, 0x7b, 0x27, 0x7f,
- 0xae, 0xee, 0xbd, 0x99, 0x80, 0xd1, 0x80, 0x9a, 0x1c, 0xd4, 0xbb, 0x67, 0x61, 0xdc, 0xac, 0xa1,
- 0x66, 0xcb, 0xf6, 0x90, 0x65, 0x1c, 0x68, 0x0d, 0x74, 0x05, 0x35, 0x8a, 0x33, 0xa4, 0x50, 0xcc,
- 0xf7, 0xd7, 0xab, 0x73, 0xab, 0x1d, 0xdc, 0x1a, 0x86, 0x95, 0x26, 0x56, 0x97, 0x2b, 0xeb, 0x5b,
- 0x9b, 0xdb, 0x95, 0x8d, 0xa5, 0x27, 0xb5, 0x9d, 0x8d, 0x47, 0x37, 0x36, 0x1f, 0xdf, 0x50, 0x65,
- 0x33, 0x64, 0xf6, 0x11, 0x2e, 0xf5, 0x2d, 0x90, 0xc3, 0x4e, 0x29, 0x37, 0x42, 0x94, 0x5b, 0xf2,
- 0x90, 0x32, 0x01, 0x63, 0x1b, 0x9b, 0x5a, 0x75, 0x75, 0xb9, 0xa2, 0x55, 0x2e, 0x5e, 0xac, 0x2c,
- 0x6d, 0x57, 0xe9, 0x0d, 0x84, 0x6f, 0xbd, 0x1d, 0x5c, 0xd4, 0x2f, 0x25, 0x61, 0x22, 0xc2, 0x13,
- 0xa5, 0xcc, 0xce, 0x0e, 0xf4, 0x38, 0x73, 0xf7, 0x20, 0xde, 0xcf, 0xe1, 0x2d, 0x7f, 0x4b, 0x77,
- 0x3c, 0x76, 0xd4, 0xb8, 0x13, 0x70, 0x94, 0x2c, 0xcf, 0xdc, 0x33, 0x91, 0xc3, 0x2e, 0x6c, 0xe8,
- 0x81, 0x62, 0xac, 0xd3, 0x4e, 0xef, 0x6c, 0xee, 0x02, 0xa5, 0x65, 0xbb, 0xa6, 0x67, 0x5e, 0x41,
- 0x9a, 0x69, 0xf1, 0xdb, 0x1d, 0x7c, 0xc0, 0x48, 0xa9, 0x32, 0xef, 0x59, 0xb5, 0x3c, 0xdf, 0xda,
- 0x42, 0x75, 0x3d, 0x64, 0x8d, 0x0b, 0x78, 0x52, 0x95, 0x79, 0x8f, 0x6f, 0x7d, 0x12, 0xf2, 0x35,
- 0xbb, 0x8d, 0x55, 0x17, 0xb5, 0xc3, 0xfb, 0x85, 0xa4, 0xe6, 0x68, 0x9b, 0x6f, 0xc2, 0xf4, 0x74,
- 0xe7, 0x5a, 0x29, 0xaf, 0xe6, 0x68, 0x1b, 0x35, 0xb9, 0x03, 0xc6, 0xf4, 0x7a, 0xdd, 0xc1, 0xe4,
- 0x9c, 0x88, 0x9e, 0x10, 0x0a, 0x7e, 0x33, 0x31, 0x9c, 0x7a, 0x04, 0x32, 0x3c, 0x0e, 0x78, 0x4b,
- 0xc6, 0x91, 0xd0, 0x5a, 0xf4, 0xd8, 0x9b, 0x98, 0xcd, 0xaa, 0x19, 0x8b, 0x77, 0x9e, 0x84, 0xbc,
- 0xe9, 0x6a, 0x9d, 0x5b, 0xf2, 0xc4, 0x89, 0xc4, 0x6c, 0x46, 0xcd, 0x99, 0xae, 0x7f, 0xc3, 0x38,
- 0xf3, 0x5a, 0x02, 0x0a, 0xc1, 0x5b, 0x7e, 0x65, 0x19, 0x32, 0x0d, 0xdb, 0xd0, 0x49, 0x6a, 0xd1,
- 0x4f, 0x4c, 0xb3, 0x31, 0x1f, 0x06, 0xe6, 0xd6, 0x98, 0xbd, 0xea, 0x23, 0xa7, 0xfe, 0x45, 0x82,
- 0x0c, 0x6f, 0x56, 0x8e, 0x41, 0xaa, 0xa5, 0x7b, 0xfb, 0x84, 0x2e, 0xbd, 0x98, 0x90, 0x25, 0x95,
- 0x3c, 0xe3, 0x76, 0xb7, 0xa5, 0x5b, 0x24, 0x05, 0x58, 0x3b, 0x7e, 0xc6, 0xf3, 0xda, 0x40, 0x7a,
- 0x8d, 0x1c, 0x3f, 0xec, 0x66, 0x13, 0x59, 0x9e, 0xcb, 0xe7, 0x95, 0xb5, 0x2f, 0xb1, 0x66, 0xe5,
- 0x34, 0x8c, 0x7b, 0x8e, 0x6e, 0x36, 0x02, 0xb6, 0x29, 0x62, 0x2b, 0xf3, 0x0e, 0xdf, 0xb8, 0x04,
- 0x37, 0x71, 0xde, 0x1a, 0xf2, 0x74, 0x63, 0x1f, 0xd5, 0x3a, 0xa0, 0x61, 0x72, 0xcd, 0x70, 0x23,
- 0x33, 0x58, 0x66, 0xfd, 0x1c, 0x3b, 0xf3, 0x03, 0x09, 0xc6, 0xf9, 0x81, 0xa9, 0xe6, 0x07, 0x6b,
- 0x1d, 0x40, 0xb7, 0x2c, 0xdb, 0x13, 0xc3, 0xd5, 0x9d, 0xca, 0x5d, 0xb8, 0xb9, 0xb2, 0x0f, 0x52,
- 0x05, 0x82, 0xa9, 0x26, 0x40, 0xa7, 0xa7, 0x67, 0xd8, 0x8e, 0x43, 0x8e, 0x7d, 0xc2, 0x21, 0xdf,
- 0x01, 0xe9, 0x11, 0x1b, 0x68, 0x13, 0x3e, 0x59, 0x29, 0x93, 0x90, 0xde, 0x45, 0x75, 0xd3, 0x62,
- 0x17, 0xb3, 0xf4, 0x81, 0x5f, 0x84, 0xa4, 0xfc, 0x8b, 0x90, 0xc5, 0xcf, 0xc1, 0x84, 0x61, 0x37,
- 0xc3, 0xee, 0x2e, 0xca, 0xa1, 0x63, 0xbe, 0x7b, 0x49, 0x7a, 0x0a, 0x3a, 0x12, 0xf3, 0x7d, 0x49,
- 0xfa, 0x52, 0x22, 0xb9, 0xb2, 0xb5, 0xf8, 0xd5, 0xc4, 0xd4, 0x0a, 0x85, 0x6e, 0xf1, 0x37, 0x55,
- 0xd1, 0x5e, 0x03, 0x19, 0xd8, 0x7b, 0xf8, 0xf2, 0x69, 0xb8, 0xbb, 0x6e, 0x7a, 0xfb, 0xed, 0xdd,
- 0x39, 0xc3, 0x6e, 0xce, 0xd7, 0xed, 0xba, 0xdd, 0xf9, 0xf4, 0x89, 0x9f, 0xc8, 0x03, 0xf9, 0x8b,
- 0x7d, 0xfe, 0xcc, 0xfa, 0xad, 0x53, 0xb1, 0xdf, 0x4a, 0x4b, 0x1b, 0x30, 0xc1, 0x8c, 0x35, 0xf2,
- 0xfd, 0x85, 0x9e, 0x22, 0x94, 0xbe, 0x77, 0x58, 0xc5, 0xaf, 0xbf, 0x45, 0xb6, 0x6b, 0x75, 0x9c,
- 0x41, 0x71, 0x1f, 0x3d, 0x68, 0x94, 0x54, 0xb8, 0x21, 0xc0, 0x47, 0x97, 0x26, 0x72, 0x62, 0x18,
- 0xbf, 0xc7, 0x18, 0x27, 0x04, 0xc6, 0x2a, 0x83, 0x96, 0x96, 0x60, 0xf4, 0x28, 0x5c, 0xff, 0xc8,
- 0xb8, 0xf2, 0x48, 0x24, 0x59, 0x81, 0x31, 0x42, 0x62, 0xb4, 0x5d, 0xcf, 0x6e, 0x92, 0xba, 0xd7,
- 0x9f, 0xe6, 0x9f, 0xde, 0xa2, 0x6b, 0xa5, 0x80, 0x61, 0x4b, 0x3e, 0xaa, 0x54, 0x02, 0xf2, 0xc9,
- 0xa9, 0x86, 0x8c, 0x46, 0x0c, 0xc3, 0xeb, 0xcc, 0x11, 0xdf, 0xbe, 0xf4, 0x18, 0x4c, 0xe2, 0xbf,
- 0x49, 0x59, 0x12, 0x3d, 0x89, 0xbf, 0xf0, 0x2a, 0xfe, 0xe0, 0x05, 0xba, 0x1c, 0x27, 0x7c, 0x02,
- 0xc1, 0x27, 0x61, 0x16, 0xeb, 0xc8, 0xf3, 0x90, 0xe3, 0x6a, 0x7a, 0x23, 0xca, 0x3d, 0xe1, 0xc6,
- 0xa0, 0xf8, 0x85, 0x77, 0x82, 0xb3, 0xb8, 0x42, 0x91, 0xe5, 0x46, 0xa3, 0xb4, 0x03, 0x37, 0x46,
- 0x64, 0xc5, 0x00, 0x9c, 0x2f, 0x31, 0xce, 0xc9, 0xae, 0xcc, 0xc0, 0xb4, 0x5b, 0xc0, 0xdb, 0xfd,
- 0xb9, 0x1c, 0x80, 0xf3, 0x0f, 0x19, 0xa7, 0xc2, 0xb0, 0x7c, 0x4a, 0x31, 0xe3, 0x23, 0x30, 0x7e,
- 0x05, 0x39, 0xbb, 0xb6, 0xcb, 0x6e, 0x69, 0x06, 0xa0, 0x7b, 0x99, 0xd1, 0x8d, 0x31, 0x20, 0xb9,
- 0xb6, 0xc1, 0x5c, 0x0f, 0x40, 0x66, 0x4f, 0x37, 0xd0, 0x00, 0x14, 0x5f, 0x64, 0x14, 0x23, 0xd8,
- 0x1e, 0x43, 0xcb, 0x90, 0xaf, 0xdb, 0x6c, 0x67, 0x8a, 0x87, 0xbf, 0xc2, 0xe0, 0x39, 0x8e, 0x61,
- 0x14, 0x2d, 0xbb, 0xd5, 0x6e, 0xe0, 0x6d, 0x2b, 0x9e, 0xe2, 0x8f, 0x38, 0x05, 0xc7, 0x30, 0x8a,
- 0x23, 0x84, 0xf5, 0x8f, 0x39, 0x85, 0x2b, 0xc4, 0xf3, 0x61, 0xc8, 0xd9, 0x56, 0xe3, 0xc0, 0xb6,
- 0x06, 0x71, 0xe2, 0x55, 0xc6, 0x00, 0x0c, 0x82, 0x09, 0x2e, 0x40, 0x76, 0xd0, 0x89, 0xf8, 0xd3,
- 0x77, 0xf8, 0xf2, 0xe0, 0x33, 0xb0, 0x02, 0x63, 0xbc, 0x40, 0x99, 0xb6, 0x35, 0x00, 0xc5, 0x97,
- 0x19, 0x45, 0x41, 0x80, 0xb1, 0xd7, 0xf0, 0x90, 0xeb, 0xd5, 0xd1, 0x20, 0x24, 0xaf, 0xf1, 0xd7,
- 0x60, 0x10, 0x16, 0xca, 0x5d, 0x64, 0x19, 0xfb, 0x83, 0x31, 0x7c, 0x85, 0x87, 0x92, 0x63, 0x30,
- 0xc5, 0x12, 0x8c, 0x36, 0x75, 0xc7, 0xdd, 0xd7, 0x1b, 0x03, 0x4d, 0xc7, 0x9f, 0x31, 0x8e, 0xbc,
- 0x0f, 0x62, 0x11, 0x69, 0x5b, 0x47, 0xa1, 0xf9, 0x2a, 0x8f, 0x88, 0x00, 0x63, 0x4b, 0xcf, 0xf5,
- 0xc8, 0x95, 0xd6, 0x51, 0xd8, 0xfe, 0x9c, 0x2f, 0x3d, 0x8a, 0x5d, 0x17, 0x19, 0x2f, 0x40, 0xd6,
- 0x35, 0x9f, 0x1f, 0x88, 0xe6, 0x2f, 0xf8, 0x4c, 0x13, 0x00, 0x06, 0x3f, 0x09, 0x37, 0x45, 0x6e,
- 0x13, 0x03, 0x90, 0xfd, 0x25, 0x23, 0x3b, 0x16, 0xb1, 0x55, 0xb0, 0x92, 0x70, 0x54, 0xca, 0xbf,
- 0xe2, 0x25, 0x01, 0x85, 0xb8, 0xb6, 0xf0, 0x59, 0xc1, 0xd5, 0xf7, 0x8e, 0x16, 0xb5, 0xbf, 0xe6,
- 0x51, 0xa3, 0xd8, 0x40, 0xd4, 0xb6, 0xe1, 0x18, 0x63, 0x3c, 0xda, 0xbc, 0x7e, 0x8d, 0x17, 0x56,
- 0x8a, 0xde, 0x09, 0xce, 0xee, 0xe7, 0x60, 0xca, 0x0f, 0x27, 0x17, 0xa5, 0xae, 0xd6, 0xd4, 0x5b,
- 0x03, 0x30, 0x7f, 0x9d, 0x31, 0xf3, 0x8a, 0xef, 0xab, 0x5a, 0x77, 0x5d, 0x6f, 0x61, 0xf2, 0x27,
- 0xa0, 0xc8, 0xc9, 0xdb, 0x96, 0x83, 0x0c, 0xbb, 0x6e, 0x99, 0xcf, 0xa3, 0xda, 0x00, 0xd4, 0x7f,
- 0x13, 0x9a, 0xaa, 0x1d, 0x01, 0x8e, 0x99, 0x57, 0x41, 0xf6, 0xb5, 0x8a, 0x66, 0x36, 0x5b, 0xb6,
- 0xe3, 0xc5, 0x30, 0x7e, 0x83, 0xcf, 0x94, 0x8f, 0x5b, 0x25, 0xb0, 0x52, 0x05, 0x0a, 0xe4, 0x71,
+ // 4830 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x5b, 0x6c, 0x23, 0xd7,
+ 0x79, 0xd6, 0xf0, 0x22, 0x91, 0x3f, 0x29, 0x6a, 0x34, 0x92, 0xd7, 0xb4, 0x12, 0x6b, 0x77, 0xe5,
+ 0x9b, 0xbc, 0x6b, 0x4b, 0xb6, 0xbc, 0xbb, 0x5e, 0x73, 0x63, 0xbb, 0x94, 0xc4, 0xd5, 0xca, 0xd6,
+ 0x2d, 0x43, 0xc9, 0xb7, 0xc0, 0x98, 0x8e, 0x86, 0x47, 0xd4, 0x78, 0xc9, 0x19, 0x7a, 0x66, 0xb8,
+ 0x6b, 0x19, 0x45, 0xb1, 0x85, 0x7b, 0x41, 0xd0, 0xfb, 0x05, 0xa8, 0xe3, 0x3a, 0x6e, 0x9d, 0xa2,
+ 0x71, 0x9a, 0xde, 0x92, 0x5e, 0xd2, 0x24, 0x7d, 0xc9, 0x4b, 0x5a, 0x03, 0x05, 0x8a, 0xe4, 0x2d,
+ 0x08, 0x02, 0xc3, 0xab, 0x18, 0xa8, 0xdb, 0xba, 0xad, 0x9b, 0xfa, 0xc1, 0x80, 0x5f, 0x8a, 0x73,
+ 0x1b, 0x9e, 0x19, 0x0e, 0x39, 0x94, 0x01, 0x3b, 0x7d, 0xf0, 0xd3, 0x6a, 0xce, 0xf9, 0xbf, 0xef,
+ 0xfc, 0xf3, 0x9f, 0xff, 0xfc, 0xe7, 0x3b, 0x67, 0xb8, 0xf0, 0x7a, 0x09, 0x4e, 0xd4, 0x6d, 0xbb,
+ 0xde, 0x40, 0xf3, 0x2d, 0xc7, 0xf6, 0xec, 0xdd, 0xf6, 0xde, 0x7c, 0x0d, 0xb9, 0x86, 0x63, 0xb6,
+ 0x3c, 0xdb, 0x99, 0x23, 0x6d, 0xca, 0x18, 0xb5, 0x98, 0xe3, 0x16, 0x33, 0xeb, 0x30, 0x7e, 0xd1,
+ 0x6c, 0xa0, 0x65, 0xdf, 0xb0, 0x8a, 0x3c, 0xe5, 0x3c, 0xa4, 0xf6, 0xcc, 0x06, 0x2a, 0x4a, 0x27,
+ 0x92, 0xb3, 0xb9, 0x85, 0x5b, 0xe7, 0x42, 0xa0, 0xb9, 0x20, 0x62, 0x0b, 0x37, 0xab, 0x04, 0x31,
+ 0xf3, 0x56, 0x0a, 0x26, 0x22, 0x7a, 0x15, 0x05, 0x52, 0x96, 0xde, 0xc4, 0x8c, 0xd2, 0x6c, 0x56,
+ 0x25, 0x7f, 0x2b, 0x45, 0x18, 0x69, 0xe9, 0xc6, 0x65, 0xbd, 0x8e, 0x8a, 0x09, 0xd2, 0xcc, 0x1f,
+ 0x95, 0x69, 0x80, 0x1a, 0x6a, 0x21, 0xab, 0x86, 0x2c, 0xe3, 0xa0, 0x98, 0x3c, 0x91, 0x9c, 0xcd,
+ 0xaa, 0x42, 0x8b, 0x72, 0x1a, 0xc6, 0x5b, 0xed, 0xdd, 0x86, 0x69, 0x68, 0x82, 0x19, 0x9c, 0x48,
+ 0xce, 0xa6, 0x55, 0x99, 0x76, 0x2c, 0x77, 0x8c, 0xef, 0x80, 0xb1, 0xab, 0x48, 0xbf, 0x2c, 0x9a,
+ 0xe6, 0x88, 0x69, 0x01, 0x37, 0x0b, 0x86, 0x4b, 0x90, 0x6f, 0x22, 0xd7, 0xd5, 0xeb, 0x48, 0xf3,
+ 0x0e, 0x5a, 0xa8, 0x98, 0x22, 0x6f, 0x7f, 0xa2, 0xeb, 0xed, 0xc3, 0x6f, 0x9e, 0x63, 0xa8, 0xed,
+ 0x83, 0x16, 0x52, 0xca, 0x90, 0x45, 0x56, 0xbb, 0x49, 0x19, 0xd2, 0x3d, 0xe2, 0x57, 0xb1, 0xda,
+ 0xcd, 0x30, 0x4b, 0x06, 0xc3, 0x18, 0xc5, 0x88, 0x8b, 0x9c, 0x2b, 0xa6, 0x81, 0x8a, 0xc3, 0x84,
+ 0xe0, 0x8e, 0x2e, 0x82, 0x2a, 0xed, 0x0f, 0x73, 0x70, 0x9c, 0xb2, 0x04, 0x59, 0xf4, 0x9c, 0x87,
+ 0x2c, 0xd7, 0xb4, 0xad, 0xe2, 0x08, 0x21, 0xb9, 0x2d, 0x62, 0x16, 0x51, 0xa3, 0x16, 0xa6, 0xe8,
+ 0xe0, 0x94, 0x73, 0x30, 0x62, 0xb7, 0x3c, 0xd3, 0xb6, 0xdc, 0x62, 0xe6, 0x84, 0x34, 0x9b, 0x5b,
+ 0xf8, 0x74, 0x64, 0x22, 0x6c, 0x52, 0x1b, 0x95, 0x1b, 0x2b, 0xab, 0x20, 0xbb, 0x76, 0xdb, 0x31,
+ 0x90, 0x66, 0xd8, 0x35, 0xa4, 0x99, 0xd6, 0x9e, 0x5d, 0xcc, 0x12, 0x82, 0xe3, 0xdd, 0x2f, 0x42,
+ 0x0c, 0x97, 0xec, 0x1a, 0x5a, 0xb5, 0xf6, 0x6c, 0xb5, 0xe0, 0x06, 0x9e, 0x95, 0x63, 0x30, 0xec,
+ 0x1e, 0x58, 0x9e, 0xfe, 0x5c, 0x31, 0x4f, 0x32, 0x84, 0x3d, 0xcd, 0x7c, 0x6b, 0x18, 0xc6, 0x06,
+ 0x49, 0xb1, 0x0b, 0x90, 0xde, 0xc3, 0x6f, 0x59, 0x4c, 0x1c, 0x25, 0x06, 0x14, 0x13, 0x0c, 0xe2,
+ 0xf0, 0x87, 0x0c, 0x62, 0x19, 0x72, 0x16, 0x72, 0x3d, 0x54, 0xa3, 0x19, 0x91, 0x1c, 0x30, 0xa7,
+ 0x80, 0x82, 0xba, 0x53, 0x2a, 0xf5, 0xa1, 0x52, 0xea, 0x09, 0x18, 0xf3, 0x5d, 0xd2, 0x1c, 0xdd,
+ 0xaa, 0xf3, 0xdc, 0x9c, 0x8f, 0xf3, 0x64, 0xae, 0xc2, 0x71, 0x2a, 0x86, 0xa9, 0x05, 0x14, 0x78,
+ 0x56, 0x96, 0x01, 0x6c, 0x0b, 0xd9, 0x7b, 0x5a, 0x0d, 0x19, 0x8d, 0x62, 0xa6, 0x47, 0x94, 0x36,
+ 0xb1, 0x49, 0x57, 0x94, 0x6c, 0xda, 0x6a, 0x34, 0x94, 0x07, 0x3a, 0xa9, 0x36, 0xd2, 0x23, 0x53,
+ 0xd6, 0xe9, 0x22, 0xeb, 0xca, 0xb6, 0x1d, 0x28, 0x38, 0x08, 0xe7, 0x3d, 0xaa, 0xb1, 0x37, 0xcb,
+ 0x12, 0x27, 0xe6, 0x62, 0xdf, 0x4c, 0x65, 0x30, 0xfa, 0x62, 0xa3, 0x8e, 0xf8, 0xa8, 0xdc, 0x02,
+ 0x7e, 0x83, 0x46, 0xd2, 0x0a, 0x48, 0x15, 0xca, 0xf3, 0xc6, 0x0d, 0xbd, 0x89, 0xa6, 0x9e, 0x87,
+ 0x42, 0x30, 0x3c, 0xca, 0x24, 0xa4, 0x5d, 0x4f, 0x77, 0x3c, 0x92, 0x85, 0x69, 0x95, 0x3e, 0x28,
+ 0x32, 0x24, 0x91, 0x55, 0x23, 0x55, 0x2e, 0xad, 0xe2, 0x3f, 0x95, 0x9f, 0xe9, 0xbc, 0x70, 0x92,
+ 0xbc, 0xf0, 0xed, 0xdd, 0x33, 0x1a, 0x60, 0x0e, 0xbf, 0xf7, 0xd4, 0xfd, 0x30, 0x1a, 0x78, 0x81,
+ 0x41, 0x87, 0x9e, 0xf9, 0x39, 0xb8, 0x21, 0x92, 0x5a, 0x79, 0x02, 0x26, 0xdb, 0x96, 0x69, 0x79,
+ 0xc8, 0x69, 0x39, 0x08, 0x67, 0x2c, 0x1d, 0xaa, 0xf8, 0xaf, 0x23, 0x3d, 0x72, 0x6e, 0x47, 0xb4,
+ 0xa6, 0x2c, 0xea, 0x44, 0xbb, 0xbb, 0xf1, 0x54, 0x36, 0xf3, 0xf6, 0x88, 0x7c, 0xed, 0xda, 0xb5,
+ 0x6b, 0x89, 0x99, 0x17, 0x87, 0x61, 0x32, 0x6a, 0xcd, 0x44, 0x2e, 0xdf, 0x63, 0x30, 0x6c, 0xb5,
+ 0x9b, 0xbb, 0xc8, 0x21, 0x41, 0x4a, 0xab, 0xec, 0x49, 0x29, 0x43, 0xba, 0xa1, 0xef, 0xa2, 0x46,
+ 0x31, 0x75, 0x42, 0x9a, 0x2d, 0x2c, 0x9c, 0x1e, 0x68, 0x55, 0xce, 0xad, 0x61, 0x88, 0x4a, 0x91,
+ 0xca, 0x43, 0x90, 0x62, 0x25, 0x1a, 0x33, 0x9c, 0x1a, 0x8c, 0x01, 0xaf, 0x25, 0x95, 0xe0, 0x94,
+ 0x4f, 0x41, 0x16, 0xff, 0x4b, 0x73, 0x63, 0x98, 0xf8, 0x9c, 0xc1, 0x0d, 0x38, 0x2f, 0x94, 0x29,
+ 0xc8, 0x90, 0x65, 0x52, 0x43, 0x7c, 0x6b, 0xf3, 0x9f, 0x71, 0x62, 0xd5, 0xd0, 0x9e, 0xde, 0x6e,
+ 0x78, 0xda, 0x15, 0xbd, 0xd1, 0x46, 0x24, 0xe1, 0xb3, 0x6a, 0x9e, 0x35, 0x3e, 0x86, 0xdb, 0x94,
+ 0xe3, 0x90, 0xa3, 0xab, 0xca, 0xb4, 0x6a, 0xe8, 0x39, 0x52, 0x3d, 0xd3, 0x2a, 0x5d, 0x68, 0xab,
+ 0xb8, 0x05, 0x0f, 0xff, 0x8c, 0x6b, 0x5b, 0x3c, 0x35, 0xc9, 0x10, 0xb8, 0x81, 0x0c, 0x7f, 0x7f,
+ 0xb8, 0x70, 0xdf, 0x1c, 0xfd, 0x7a, 0xe1, 0x9c, 0x9a, 0xf9, 0x46, 0x02, 0x52, 0xa4, 0x5e, 0x8c,
+ 0x41, 0x6e, 0xfb, 0xc9, 0xad, 0x8a, 0xb6, 0xbc, 0xb9, 0xb3, 0xb8, 0x56, 0x91, 0x25, 0xa5, 0x00,
+ 0x40, 0x1a, 0x2e, 0xae, 0x6d, 0x96, 0xb7, 0xe5, 0x84, 0xff, 0xbc, 0xba, 0xb1, 0x7d, 0xee, 0x8c,
+ 0x9c, 0xf4, 0x01, 0x3b, 0xb4, 0x21, 0x25, 0x1a, 0xdc, 0xb7, 0x20, 0xa7, 0x15, 0x19, 0xf2, 0x94,
+ 0x60, 0xf5, 0x89, 0xca, 0xf2, 0xb9, 0x33, 0xf2, 0x70, 0xb0, 0xe5, 0xbe, 0x05, 0x79, 0x44, 0x19,
+ 0x85, 0x2c, 0x69, 0x59, 0xdc, 0xdc, 0x5c, 0x93, 0x33, 0x3e, 0x67, 0x75, 0x5b, 0x5d, 0xdd, 0x58,
+ 0x91, 0xb3, 0x3e, 0xe7, 0x8a, 0xba, 0xb9, 0xb3, 0x25, 0x83, 0xcf, 0xb0, 0x5e, 0xa9, 0x56, 0xcb,
+ 0x2b, 0x15, 0x39, 0xe7, 0x5b, 0x2c, 0x3e, 0xb9, 0x5d, 0xa9, 0xca, 0xf9, 0x80, 0x5b, 0xf7, 0x2d,
+ 0xc8, 0xa3, 0xfe, 0x10, 0x95, 0x8d, 0x9d, 0x75, 0xb9, 0xa0, 0x8c, 0xc3, 0x28, 0x1d, 0x82, 0x3b,
+ 0x31, 0x16, 0x6a, 0x3a, 0x77, 0x46, 0x96, 0x3b, 0x8e, 0x50, 0x96, 0xf1, 0x40, 0xc3, 0xb9, 0x33,
+ 0xb2, 0x32, 0xb3, 0x04, 0x69, 0x92, 0x5d, 0x8a, 0x02, 0x85, 0xb5, 0xf2, 0x62, 0x65, 0x4d, 0xdb,
+ 0xdc, 0xda, 0x5e, 0xdd, 0xdc, 0x28, 0xaf, 0xc9, 0x52, 0xa7, 0x4d, 0xad, 0x7c, 0x76, 0x67, 0x55,
+ 0xad, 0x2c, 0xcb, 0x09, 0xb1, 0x6d, 0xab, 0x52, 0xde, 0xae, 0x2c, 0xcb, 0xc9, 0x19, 0x03, 0x26,
+ 0xa3, 0xea, 0x64, 0xe4, 0xca, 0x10, 0xa6, 0x38, 0xd1, 0x63, 0x8a, 0x09, 0x57, 0xd7, 0x14, 0xff,
+ 0x38, 0x01, 0x13, 0x11, 0x7b, 0x45, 0xe4, 0x20, 0x0f, 0x43, 0x9a, 0xa6, 0x28, 0xdd, 0x3d, 0xef,
+ 0x8c, 0xdc, 0x74, 0x48, 0xc2, 0x76, 0xed, 0xa0, 0x04, 0x27, 0x2a, 0x88, 0x64, 0x0f, 0x05, 0x81,
+ 0x29, 0xba, 0x6a, 0xfa, 0xd3, 0x5d, 0x35, 0x9d, 0x6e, 0x7b, 0xe7, 0x06, 0xd9, 0xf6, 0x48, 0xdb,
+ 0xd1, 0x6a, 0x7b, 0x3a, 0xa2, 0xb6, 0x5f, 0x80, 0xf1, 0x2e, 0xa2, 0x81, 0x6b, 0xec, 0x0b, 0x12,
+ 0x14, 0x7b, 0x05, 0x27, 0xa6, 0xd2, 0x25, 0x02, 0x95, 0xee, 0x42, 0x38, 0x82, 0x27, 0x7b, 0x4f,
+ 0x42, 0xd7, 0x5c, 0xbf, 0x26, 0xc1, 0xb1, 0x68, 0xa5, 0x18, 0xe9, 0xc3, 0x43, 0x30, 0xdc, 0x44,
+ 0xde, 0xbe, 0xcd, 0xd5, 0xd2, 0xed, 0x11, 0x7b, 0x30, 0xee, 0x0e, 0x4f, 0x36, 0x43, 0x89, 0x9b,
+ 0x78, 0xb2, 0x97, 0xdc, 0xa3, 0xde, 0x74, 0x79, 0xfa, 0xf9, 0x04, 0xdc, 0x10, 0x49, 0x1e, 0xe9,
+ 0xe8, 0xcd, 0x00, 0xa6, 0xd5, 0x6a, 0x7b, 0x54, 0x11, 0xd1, 0x02, 0x9b, 0x25, 0x2d, 0xa4, 0x78,
+ 0xe1, 0xe2, 0xd9, 0xf6, 0xfc, 0xfe, 0x24, 0xe9, 0x07, 0xda, 0x44, 0x0c, 0xce, 0x77, 0x1c, 0x4d,
+ 0x11, 0x47, 0xa7, 0x7b, 0xbc, 0x69, 0x57, 0x62, 0xde, 0x03, 0xb2, 0xd1, 0x30, 0x91, 0xe5, 0x69,
+ 0xae, 0xe7, 0x20, 0xbd, 0x69, 0x5a, 0x75, 0xb2, 0x83, 0x64, 0x4a, 0xe9, 0x3d, 0xbd, 0xe1, 0x22,
+ 0x75, 0x8c, 0x76, 0x57, 0x79, 0x2f, 0x46, 0x90, 0x04, 0x72, 0x04, 0xc4, 0x70, 0x00, 0x41, 0xbb,
+ 0x7d, 0xc4, 0xcc, 0xaf, 0x65, 0x21, 0x27, 0xe8, 0x6a, 0xe5, 0x24, 0xe4, 0x9f, 0xd1, 0xaf, 0xe8,
+ 0x1a, 0x3f, 0x2b, 0xd1, 0x48, 0xe4, 0x70, 0xdb, 0x16, 0x3b, 0x2f, 0xdd, 0x03, 0x93, 0xc4, 0xc4,
+ 0x6e, 0x7b, 0xc8, 0xd1, 0x8c, 0x86, 0xee, 0xba, 0x24, 0x68, 0x19, 0x62, 0xaa, 0xe0, 0xbe, 0x4d,
+ 0xdc, 0xb5, 0xc4, 0x7b, 0x94, 0xb3, 0x30, 0x41, 0x10, 0xcd, 0x76, 0xc3, 0x33, 0x5b, 0x0d, 0xa4,
+ 0xe1, 0xd3, 0x9b, 0x4b, 0x76, 0x12, 0xdf, 0xb3, 0x71, 0x6c, 0xb1, 0xce, 0x0c, 0xb0, 0x47, 0xae,
+ 0xb2, 0x0c, 0x37, 0x13, 0x58, 0x1d, 0x59, 0xc8, 0xd1, 0x3d, 0xa4, 0xa1, 0x67, 0xdb, 0x7a, 0xc3,
+ 0xd5, 0x74, 0xab, 0xa6, 0xed, 0xeb, 0xee, 0x7e, 0x71, 0x12, 0x13, 0x2c, 0x26, 0x8a, 0x92, 0x7a,
+ 0x13, 0x36, 0x5c, 0x61, 0x76, 0x15, 0x62, 0x56, 0xb6, 0x6a, 0x97, 0x74, 0x77, 0x5f, 0x29, 0xc1,
+ 0x31, 0xc2, 0xe2, 0x7a, 0x8e, 0x69, 0xd5, 0x35, 0x63, 0x1f, 0x19, 0x97, 0xb5, 0xb6, 0xb7, 0x77,
+ 0xbe, 0xf8, 0x29, 0x71, 0x7c, 0xe2, 0x61, 0x95, 0xd8, 0x2c, 0x61, 0x93, 0x1d, 0x6f, 0xef, 0xbc,
+ 0x52, 0x85, 0x3c, 0x9e, 0x8c, 0xa6, 0xf9, 0x3c, 0xd2, 0xf6, 0x6c, 0x87, 0x6c, 0x8d, 0x85, 0x88,
+ 0xd2, 0x24, 0x44, 0x70, 0x6e, 0x93, 0x01, 0xd6, 0xed, 0x1a, 0x2a, 0xa5, 0xab, 0x5b, 0x95, 0xca,
+ 0xb2, 0x9a, 0xe3, 0x2c, 0x17, 0x6d, 0x07, 0x27, 0x54, 0xdd, 0xf6, 0x03, 0x9c, 0xa3, 0x09, 0x55,
+ 0xb7, 0x79, 0x78, 0xcf, 0xc2, 0x84, 0x61, 0xd0, 0x77, 0x36, 0x0d, 0x8d, 0x9d, 0xb1, 0xdc, 0xa2,
+ 0x1c, 0x08, 0x96, 0x61, 0xac, 0x50, 0x03, 0x96, 0xe3, 0xae, 0xf2, 0x00, 0xdc, 0xd0, 0x09, 0x96,
+ 0x08, 0x1c, 0xef, 0x7a, 0xcb, 0x30, 0xf4, 0x2c, 0x4c, 0xb4, 0x0e, 0xba, 0x81, 0x4a, 0x60, 0xc4,
+ 0xd6, 0x41, 0x18, 0x76, 0x3f, 0x4c, 0xb6, 0xf6, 0x5b, 0xdd, 0xb8, 0x53, 0x22, 0x4e, 0x69, 0xed,
+ 0xb7, 0xc2, 0xc0, 0xdb, 0xc8, 0x81, 0xdb, 0x41, 0x86, 0xee, 0xa1, 0x5a, 0xf1, 0x46, 0xd1, 0x5c,
+ 0xe8, 0x50, 0xe6, 0x41, 0x36, 0x0c, 0x0d, 0x59, 0xfa, 0x6e, 0x03, 0x69, 0xba, 0x83, 0x2c, 0xdd,
+ 0x2d, 0x1e, 0x17, 0x8d, 0x0b, 0x86, 0x51, 0x21, 0xbd, 0x65, 0xd2, 0xa9, 0x9c, 0x82, 0x71, 0x7b,
+ 0xf7, 0x19, 0x83, 0xa6, 0xa4, 0xd6, 0x72, 0xd0, 0x9e, 0xf9, 0x5c, 0xf1, 0x56, 0x12, 0xdf, 0x31,
+ 0xdc, 0x41, 0x12, 0x72, 0x8b, 0x34, 0x2b, 0x77, 0x82, 0x6c, 0xb8, 0xfb, 0xba, 0xd3, 0x22, 0x35,
+ 0xd9, 0x6d, 0xe9, 0x06, 0x2a, 0xde, 0x46, 0x4d, 0x69, 0xfb, 0x06, 0x6f, 0xc6, 0x4b, 0xc2, 0xbd,
+ 0x6a, 0xee, 0x79, 0x9c, 0xf1, 0x0e, 0xba, 0x24, 0x48, 0x1b, 0x63, 0x9b, 0x05, 0x19, 0x87, 0x22,
+ 0x30, 0xf0, 0x2c, 0x31, 0x2b, 0xb4, 0xf6, 0x5b, 0xe2, 0xb8, 0xb7, 0xc0, 0x28, 0xb6, 0xec, 0x0c,
+ 0x7a, 0x27, 0x15, 0x64, 0xad, 0x7d, 0x61, 0xc4, 0x33, 0x70, 0x0c, 0x1b, 0x35, 0x91, 0xa7, 0xd7,
+ 0x74, 0x4f, 0x17, 0xac, 0xef, 0x22, 0xd6, 0x38, 0xee, 0xeb, 0xac, 0x33, 0xe0, 0xa7, 0xd3, 0xde,
+ 0x3d, 0xf0, 0x33, 0xeb, 0x6e, 0xea, 0x27, 0x6e, 0xe3, 0xb9, 0xf5, 0x91, 0x89, 0xee, 0x99, 0x12,
+ 0xe4, 0xc5, 0xc4, 0x57, 0xb2, 0x40, 0x53, 0x5f, 0x96, 0xb0, 0x0a, 0x5a, 0xda, 0x5c, 0xc6, 0xfa,
+ 0xe5, 0xa9, 0x8a, 0x9c, 0xc0, 0x3a, 0x6a, 0x6d, 0x75, 0xbb, 0xa2, 0xa9, 0x3b, 0x1b, 0xdb, 0xab,
+ 0xeb, 0x15, 0x39, 0x29, 0x0a, 0xf6, 0xef, 0x26, 0xa0, 0x10, 0x3c, 0x7b, 0x29, 0x9f, 0x81, 0x1b,
+ 0xf9, 0x45, 0x89, 0x8b, 0x3c, 0xed, 0xaa, 0xe9, 0x90, 0xb5, 0xd8, 0xd4, 0xe9, 0xbe, 0xe8, 0x67,
+ 0xc3, 0x24, 0xb3, 0xaa, 0x22, 0xef, 0x71, 0xd3, 0xc1, 0x2b, 0xad, 0xa9, 0x7b, 0xca, 0x1a, 0x1c,
+ 0xb7, 0x6c, 0xcd, 0xf5, 0x74, 0xab, 0xa6, 0x3b, 0x35, 0xad, 0x73, 0x45, 0xa5, 0xe9, 0x86, 0x81,
+ 0x5c, 0xd7, 0xa6, 0x7b, 0xa0, 0xcf, 0xf2, 0x69, 0xcb, 0xae, 0x32, 0xe3, 0xce, 0xe6, 0x50, 0x66,
+ 0xa6, 0xa1, 0xcc, 0x4d, 0xf6, 0xca, 0xdc, 0x4f, 0x41, 0xb6, 0xa9, 0xb7, 0x34, 0x64, 0x79, 0xce,
+ 0x01, 0x51, 0xdc, 0x19, 0x35, 0xd3, 0xd4, 0x5b, 0x15, 0xfc, 0xfc, 0xf1, 0x1c, 0x7c, 0x7e, 0x94,
+ 0x84, 0xbc, 0xa8, 0xba, 0xf1, 0x21, 0xc6, 0x20, 0x1b, 0x94, 0x44, 0x4a, 0xd8, 0x2d, 0x7d, 0x35,
+ 0xfa, 0xdc, 0x12, 0xde, 0xb9, 0x4a, 0xc3, 0x54, 0x0b, 0xab, 0x14, 0x89, 0x55, 0x03, 0x4e, 0x2d,
+ 0x44, 0xb5, 0x47, 0x46, 0x65, 0x4f, 0xca, 0x0a, 0x0c, 0x3f, 0xe3, 0x12, 0xee, 0x61, 0xc2, 0x7d,
+ 0x6b, 0x7f, 0xee, 0x47, 0xaa, 0x84, 0x3c, 0xfb, 0x48, 0x55, 0xdb, 0xd8, 0x54, 0xd7, 0xcb, 0x6b,
+ 0x2a, 0x83, 0x2b, 0x37, 0x41, 0xaa, 0xa1, 0x3f, 0x7f, 0x10, 0xdc, 0xe3, 0x48, 0xd3, 0xa0, 0x81,
+ 0xbf, 0x09, 0x52, 0x57, 0x91, 0x7e, 0x39, 0xb8, 0xb3, 0x90, 0xa6, 0x8f, 0x30, 0xf5, 0xe7, 0x21,
+ 0x4d, 0xe2, 0xa5, 0x00, 0xb0, 0x88, 0xc9, 0x43, 0x4a, 0x06, 0x52, 0x4b, 0x9b, 0x2a, 0x4e, 0x7f,
+ 0x19, 0xf2, 0xb4, 0x55, 0xdb, 0x5a, 0xad, 0x2c, 0x55, 0xe4, 0xc4, 0xcc, 0x59, 0x18, 0xa6, 0x41,
+ 0xc0, 0x4b, 0xc3, 0x0f, 0x83, 0x3c, 0xc4, 0x1e, 0x19, 0x87, 0xc4, 0x7b, 0x77, 0xd6, 0x17, 0x2b,
+ 0xaa, 0x9c, 0x10, 0xa7, 0xd7, 0x85, 0xbc, 0x28, 0xb8, 0x3f, 0x9e, 0x9c, 0xfa, 0xb6, 0x04, 0x39,
+ 0x41, 0x40, 0x63, 0xe5, 0xa3, 0x37, 0x1a, 0xf6, 0x55, 0x4d, 0x6f, 0x98, 0xba, 0xcb, 0x92, 0x02,
+ 0x48, 0x53, 0x19, 0xb7, 0x0c, 0x3a, 0x69, 0x1f, 0x8b, 0xf3, 0xaf, 0x48, 0x20, 0x87, 0xb5, 0x6b,
+ 0xc8, 0x41, 0xe9, 0xa7, 0xea, 0xe0, 0xcb, 0x12, 0x14, 0x82, 0x82, 0x35, 0xe4, 0xde, 0xc9, 0x9f,
+ 0xaa, 0x7b, 0x6f, 0x26, 0x60, 0x34, 0x20, 0x53, 0x07, 0xf5, 0xee, 0x59, 0x18, 0x37, 0x6b, 0xa8,
+ 0xd9, 0xb2, 0x3d, 0x64, 0x19, 0x07, 0x5a, 0x03, 0x5d, 0x41, 0x8d, 0xe2, 0x0c, 0x29, 0x14, 0xf3,
+ 0xfd, 0x85, 0xf0, 0xdc, 0x6a, 0x07, 0xb7, 0x86, 0x61, 0xa5, 0x89, 0xd5, 0xe5, 0xca, 0xfa, 0xd6,
+ 0xe6, 0x76, 0x65, 0x63, 0xe9, 0x49, 0x6d, 0x67, 0xe3, 0xd1, 0x8d, 0xcd, 0xc7, 0x37, 0x54, 0xd9,
+ 0x0c, 0x99, 0x7d, 0x84, 0x4b, 0x7d, 0x0b, 0xe4, 0xb0, 0x53, 0xca, 0x8d, 0x10, 0xe5, 0x96, 0x3c,
+ 0xa4, 0x4c, 0xc0, 0xd8, 0xc6, 0xa6, 0x56, 0x5d, 0x5d, 0xae, 0x68, 0x95, 0x8b, 0x17, 0x2b, 0x4b,
+ 0xdb, 0x55, 0x7a, 0xb5, 0xe1, 0x5b, 0x6f, 0x07, 0x17, 0xf5, 0x4b, 0x49, 0x98, 0x88, 0xf0, 0x44,
+ 0x29, 0xb3, 0x43, 0x09, 0x3d, 0x27, 0xdd, 0x3d, 0x88, 0xf7, 0x73, 0x58, 0x15, 0x6c, 0xe9, 0x8e,
+ 0xc7, 0xce, 0x30, 0x77, 0x02, 0x8e, 0x92, 0xe5, 0x99, 0x7b, 0x26, 0x72, 0xd8, 0x4d, 0x10, 0x3d,
+ 0xa9, 0x8c, 0x75, 0xda, 0xe9, 0x65, 0xd0, 0x5d, 0xa0, 0xb4, 0x6c, 0xd7, 0xf4, 0xcc, 0x2b, 0x48,
+ 0x33, 0x2d, 0x7e, 0x6d, 0x84, 0x4f, 0x2e, 0x29, 0x55, 0xe6, 0x3d, 0xab, 0x96, 0xe7, 0x5b, 0x5b,
+ 0xa8, 0xae, 0x87, 0xac, 0x71, 0x01, 0x4f, 0xaa, 0x32, 0xef, 0xf1, 0xad, 0x4f, 0x42, 0xbe, 0x66,
+ 0xb7, 0xb1, 0x9c, 0xa3, 0x76, 0x78, 0xbf, 0x90, 0xd4, 0x1c, 0x6d, 0xf3, 0x4d, 0x98, 0x50, 0xef,
+ 0xdc, 0x57, 0xe5, 0xd5, 0x1c, 0x6d, 0xa3, 0x26, 0x77, 0xc0, 0x98, 0x5e, 0xaf, 0x3b, 0x98, 0x9c,
+ 0x13, 0xd1, 0xa3, 0x47, 0xc1, 0x6f, 0x26, 0x86, 0x53, 0x8f, 0x40, 0x86, 0xc7, 0x01, 0x6f, 0xc9,
+ 0x38, 0x12, 0x5a, 0x8b, 0x9e, 0xa7, 0x13, 0xb3, 0x59, 0x35, 0x63, 0xf1, 0xce, 0x93, 0x90, 0x37,
+ 0x5d, 0xad, 0x73, 0xfd, 0x9e, 0x38, 0x91, 0x98, 0xcd, 0xa8, 0x39, 0xd3, 0xf5, 0xaf, 0x2e, 0x67,
+ 0x5e, 0x4b, 0x40, 0x21, 0xf8, 0xf9, 0x40, 0x59, 0x86, 0x4c, 0xc3, 0x36, 0x74, 0x92, 0x5a, 0xf4,
+ 0xdb, 0xd5, 0x6c, 0xcc, 0x17, 0x87, 0xb9, 0x35, 0x66, 0xaf, 0xfa, 0xc8, 0xa9, 0x7f, 0x91, 0x20,
+ 0xc3, 0x9b, 0x95, 0x63, 0x90, 0x6a, 0xe9, 0xde, 0x3e, 0xa1, 0x4b, 0x2f, 0x26, 0x64, 0x49, 0x25,
+ 0xcf, 0xb8, 0xdd, 0x6d, 0xe9, 0x16, 0x49, 0x01, 0xd6, 0x8e, 0x9f, 0xf1, 0xbc, 0x36, 0x90, 0x5e,
+ 0x23, 0xe7, 0x1a, 0xbb, 0xd9, 0x44, 0x96, 0xe7, 0xf2, 0x79, 0x65, 0xed, 0x4b, 0xac, 0x59, 0x39,
+ 0x0d, 0xe3, 0x9e, 0xa3, 0x9b, 0x8d, 0x80, 0x6d, 0x8a, 0xd8, 0xca, 0xbc, 0xc3, 0x37, 0x2e, 0xc1,
+ 0x4d, 0x9c, 0xb7, 0x86, 0x3c, 0xdd, 0xd8, 0x47, 0xb5, 0x0e, 0x68, 0x98, 0xdc, 0x5f, 0xdc, 0xc8,
+ 0x0c, 0x96, 0x59, 0x3f, 0xc7, 0xce, 0x7c, 0x5f, 0x82, 0x71, 0x7e, 0x12, 0xab, 0xf9, 0xc1, 0x5a,
+ 0x07, 0xd0, 0x2d, 0xcb, 0xf6, 0xc4, 0x70, 0x75, 0xa7, 0x72, 0x17, 0x6e, 0xae, 0xec, 0x83, 0x54,
+ 0x81, 0x60, 0xaa, 0x09, 0xd0, 0xe9, 0xe9, 0x19, 0xb6, 0xe3, 0x90, 0x63, 0xdf, 0x86, 0xc8, 0x07,
+ 0x46, 0x7a, 0x76, 0x07, 0xda, 0x84, 0x8f, 0x6c, 0xca, 0x24, 0xa4, 0x77, 0x51, 0xdd, 0xb4, 0xd8,
+ 0x8d, 0x2f, 0x7d, 0xe0, 0x37, 0x2c, 0x29, 0xff, 0x86, 0x65, 0xf1, 0x73, 0x30, 0x61, 0xd8, 0xcd,
+ 0xb0, 0xbb, 0x8b, 0x72, 0xe8, 0xfe, 0xc0, 0xbd, 0x24, 0x3d, 0x05, 0x1d, 0x89, 0xf9, 0xbe, 0x24,
+ 0x7d, 0x29, 0x91, 0x5c, 0xd9, 0x5a, 0xfc, 0x6a, 0x62, 0x6a, 0x85, 0x42, 0xb7, 0xf8, 0x9b, 0xaa,
+ 0x68, 0xaf, 0x81, 0x0c, 0xec, 0x3d, 0x7c, 0xf9, 0x34, 0xdc, 0x5d, 0x37, 0xbd, 0xfd, 0xf6, 0xee,
+ 0x9c, 0x61, 0x37, 0xe7, 0xeb, 0x76, 0xdd, 0xee, 0x7c, 0x53, 0xc5, 0x4f, 0xe4, 0x81, 0xfc, 0xc5,
+ 0xbe, 0xab, 0x66, 0xfd, 0xd6, 0xa9, 0xd8, 0x8f, 0xb0, 0xa5, 0x0d, 0x98, 0x60, 0xc6, 0x1a, 0xf9,
+ 0xb0, 0x43, 0x8f, 0x27, 0x4a, 0xdf, 0xcb, 0xb1, 0xe2, 0xd7, 0xdf, 0x22, 0xdb, 0xb5, 0x3a, 0xce,
+ 0xa0, 0xb8, 0x8f, 0x9e, 0x60, 0x4a, 0x2a, 0xdc, 0x10, 0xe0, 0xa3, 0x4b, 0x13, 0x39, 0x31, 0x8c,
+ 0xdf, 0x65, 0x8c, 0x13, 0x02, 0x63, 0x95, 0x41, 0x4b, 0x4b, 0x30, 0x7a, 0x14, 0xae, 0x7f, 0x64,
+ 0x5c, 0x79, 0x24, 0x92, 0xac, 0xc0, 0x18, 0x21, 0x31, 0xda, 0xae, 0x67, 0x37, 0x49, 0xdd, 0xeb,
+ 0x4f, 0xf3, 0x4f, 0x6f, 0xd1, 0xb5, 0x52, 0xc0, 0xb0, 0x25, 0x1f, 0x55, 0x2a, 0x01, 0xf9, 0x96,
+ 0x55, 0x43, 0x46, 0x23, 0x86, 0xe1, 0x75, 0xe6, 0x88, 0x6f, 0x5f, 0x7a, 0x0c, 0x26, 0xf1, 0xdf,
+ 0xa4, 0x2c, 0x89, 0x9e, 0xc4, 0xdf, 0xa4, 0x15, 0xbf, 0xff, 0x02, 0x5d, 0x8e, 0x13, 0x3e, 0x81,
+ 0xe0, 0x93, 0x30, 0x8b, 0x75, 0xe4, 0x79, 0xc8, 0x71, 0x35, 0xbd, 0x11, 0xe5, 0x9e, 0x70, 0x15,
+ 0x51, 0xfc, 0xc2, 0x3b, 0xc1, 0x59, 0x5c, 0xa1, 0xc8, 0x72, 0xa3, 0x51, 0xda, 0x81, 0x1b, 0x23,
+ 0xb2, 0x62, 0x00, 0xce, 0x97, 0x18, 0xe7, 0x64, 0x57, 0x66, 0x60, 0xda, 0x2d, 0xe0, 0xed, 0xfe,
+ 0x5c, 0x0e, 0xc0, 0xf9, 0x07, 0x8c, 0x53, 0x61, 0x58, 0x3e, 0xa5, 0x98, 0xf1, 0x11, 0x18, 0xbf,
+ 0x82, 0x9c, 0x5d, 0xdb, 0x65, 0xd7, 0x3f, 0x03, 0xd0, 0xbd, 0xcc, 0xe8, 0xc6, 0x18, 0x90, 0xdc,
+ 0x07, 0x61, 0xae, 0x07, 0x20, 0xb3, 0xa7, 0x1b, 0x68, 0x00, 0x8a, 0x2f, 0x32, 0x8a, 0x11, 0x6c,
+ 0x8f, 0xa1, 0x65, 0xc8, 0xd7, 0x6d, 0xb6, 0x33, 0xc5, 0xc3, 0x5f, 0x61, 0xf0, 0x1c, 0xc7, 0x30,
+ 0x8a, 0x96, 0xdd, 0x6a, 0x37, 0xf0, 0xb6, 0x15, 0x4f, 0xf1, 0x87, 0x9c, 0x82, 0x63, 0x18, 0xc5,
+ 0x11, 0xc2, 0xfa, 0x47, 0x9c, 0xc2, 0x15, 0xe2, 0xf9, 0x30, 0xe4, 0x6c, 0xab, 0x71, 0x60, 0x5b,
+ 0x83, 0x38, 0xf1, 0x2a, 0x63, 0x00, 0x06, 0xc1, 0x04, 0x17, 0x20, 0x3b, 0xe8, 0x44, 0xfc, 0xc9,
+ 0x3b, 0x7c, 0x79, 0xf0, 0x19, 0x58, 0x81, 0x31, 0x5e, 0xa0, 0x4c, 0xdb, 0x1a, 0x80, 0xe2, 0xcb,
+ 0x8c, 0xa2, 0x20, 0xc0, 0xd8, 0x6b, 0x78, 0xc8, 0xf5, 0xea, 0x68, 0x10, 0x92, 0xd7, 0xf8, 0x6b,
+ 0x30, 0x08, 0x0b, 0xe5, 0x2e, 0xb2, 0x8c, 0xfd, 0xc1, 0x18, 0xbe, 0xc2, 0x43, 0xc9, 0x31, 0x98,
+ 0x62, 0x09, 0x46, 0x9b, 0xba, 0xe3, 0xee, 0xeb, 0x8d, 0x81, 0xa6, 0xe3, 0x4f, 0x19, 0x47, 0xde,
+ 0x07, 0xb1, 0x88, 0xb4, 0xad, 0xa3, 0xd0, 0x7c, 0x95, 0x47, 0x44, 0x80, 0xb1, 0xa5, 0xe7, 0x7a,
+ 0xe4, 0xae, 0xec, 0x28, 0x6c, 0x7f, 0xc6, 0x97, 0x1e, 0xc5, 0xae, 0x8b, 0x8c, 0x17, 0x20, 0xeb,
+ 0x9a, 0xcf, 0x0f, 0x44, 0xf3, 0xe7, 0x7c, 0xa6, 0x09, 0x00, 0x83, 0x9f, 0x84, 0x9b, 0x22, 0xb7,
+ 0x89, 0x01, 0xc8, 0xfe, 0x82, 0x91, 0x1d, 0x8b, 0xd8, 0x2a, 0x58, 0x49, 0x38, 0x2a, 0xe5, 0x5f,
+ 0xf2, 0x92, 0x80, 0x42, 0x5c, 0x5b, 0xf8, 0xac, 0xe0, 0xea, 0x7b, 0x47, 0x8b, 0xda, 0x5f, 0xf1,
+ 0xa8, 0x51, 0x6c, 0x20, 0x6a, 0xdb, 0x70, 0x8c, 0x31, 0x1e, 0x6d, 0x5e, 0xbf, 0xc6, 0x0b, 0x2b,
+ 0x45, 0xef, 0x04, 0x67, 0xf7, 0x73, 0x30, 0xe5, 0x87, 0x93, 0x8b, 0x52, 0x57, 0x6b, 0xea, 0xad,
+ 0x01, 0x98, 0xbf, 0xce, 0x98, 0x79, 0xc5, 0xf7, 0x55, 0xad, 0xbb, 0xae, 0xb7, 0x30, 0xf9, 0x13,
+ 0x50, 0xe4, 0xe4, 0x6d, 0xcb, 0x41, 0x86, 0x5d, 0xb7, 0xcc, 0xe7, 0x51, 0x6d, 0x00, 0xea, 0xbf,
+ 0x0e, 0x4d, 0xd5, 0x8e, 0x00, 0xc7, 0xcc, 0xab, 0x20, 0xfb, 0x5a, 0x45, 0x33, 0x9b, 0x2d, 0xdb,
+ 0xf1, 0x62, 0x18, 0xff, 0x86, 0xcf, 0x94, 0x8f, 0x5b, 0x25, 0xb0, 0x52, 0x05, 0x0a, 0xe4, 0x71,
0xd0, 0x94, 0xfc, 0x5b, 0x46, 0x34, 0xda, 0x41, 0xb1, 0xc2, 0x61, 0xd8, 0xcd, 0x96, 0xee, 0x0c,
0x52, 0xff, 0xfe, 0x8e, 0x17, 0x0e, 0x06, 0x61, 0x85, 0xc3, 0x3b, 0x68, 0x21, 0xbc, 0xdb, 0x0f,
- 0xc0, 0xf0, 0x4d, 0x5e, 0x38, 0x38, 0x86, 0x51, 0x70, 0xc1, 0x30, 0x00, 0xc5, 0xdf, 0x73, 0x0a,
+ 0xc0, 0xf0, 0x0d, 0x5e, 0x38, 0x38, 0x86, 0x51, 0x70, 0xc1, 0x30, 0x00, 0xc5, 0xdf, 0x73, 0x0a,
0x8e, 0xc1, 0x14, 0x9f, 0xed, 0x6c, 0xb4, 0x0e, 0xaa, 0x9b, 0xae, 0xe7, 0x50, 0x29, 0xdc, 0x9f,
- 0xea, 0x5b, 0xef, 0x04, 0x45, 0x98, 0x2a, 0x40, 0x71, 0x25, 0x62, 0x57, 0xa8, 0xe4, 0xa4, 0x14,
- 0xef, 0xd8, 0xb7, 0x79, 0x25, 0x12, 0x60, 0xd8, 0x37, 0x41, 0x21, 0xe2, 0xb0, 0x1b, 0xf8, 0x7c,
- 0x30, 0x00, 0xdd, 0x77, 0x42, 0xce, 0x55, 0x39, 0x16, 0x73, 0x0a, 0xfa, 0xa7, 0x6d, 0x5d, 0x46,
+ 0xea, 0x9b, 0xef, 0x04, 0x45, 0x98, 0x2a, 0x40, 0x71, 0x25, 0x62, 0x57, 0xa8, 0xe4, 0xa4, 0x14,
+ 0xef, 0xd8, 0xb7, 0x78, 0x25, 0x12, 0x60, 0xd8, 0x37, 0x41, 0x21, 0xe2, 0xb0, 0x1b, 0xf8, 0x7c,
+ 0x30, 0x00, 0xdd, 0xb7, 0x43, 0xce, 0x55, 0x39, 0x16, 0x73, 0x0a, 0xfa, 0xa7, 0x6d, 0x5d, 0x46,
0x07, 0x03, 0x65, 0xe7, 0x3f, 0x84, 0xf4, 0xcf, 0x0e, 0x45, 0xd2, 0x1a, 0x32, 0x16, 0xd2, 0x53,
- 0x4a, 0xdc, 0x8f, 0x75, 0x8a, 0xbf, 0xf4, 0x1e, 0x7b, 0xdf, 0xa0, 0x9c, 0x2a, 0xad, 0xe1, 0x24,
+ 0x4a, 0xdc, 0xaf, 0x80, 0x8a, 0xbf, 0xf0, 0x1e, 0x7b, 0xdf, 0xa0, 0x9c, 0x2a, 0xad, 0xe1, 0x24,
0x0f, 0x8a, 0x9e, 0x78, 0xb2, 0x17, 0xde, 0xf3, 0xf3, 0x3c, 0xa0, 0x79, 0x4a, 0x17, 0x61, 0x34,
- 0x20, 0x78, 0xe2, 0xa9, 0x7e, 0x99, 0x51, 0xe5, 0x45, 0xbd, 0x53, 0x3a, 0x0b, 0x29, 0x2c, 0x5e,
- 0xe2, 0xe1, 0xbf, 0xc2, 0xe0, 0xc4, 0xbc, 0xf4, 0x20, 0x64, 0xb8, 0x68, 0x89, 0x87, 0xfe, 0x2a,
- 0x83, 0xfa, 0x10, 0x0c, 0xe7, 0x82, 0x25, 0x1e, 0xfe, 0x6b, 0x1c, 0xce, 0x21, 0x18, 0x3e, 0x78,
- 0x08, 0xbf, 0xfb, 0xeb, 0x29, 0xb6, 0xe9, 0xf0, 0xd8, 0x5d, 0x80, 0x11, 0xa6, 0x54, 0xe2, 0xd1,
- 0x9f, 0x67, 0x83, 0x73, 0x44, 0xe9, 0x7e, 0x48, 0x0f, 0x18, 0xf0, 0xdf, 0x60, 0x50, 0x6a, 0x5f,
- 0x5a, 0x82, 0x9c, 0xa0, 0x4e, 0xe2, 0xe1, 0xbf, 0xc9, 0xe0, 0x22, 0x0a, 0xbb, 0xce, 0xd4, 0x49,
- 0x3c, 0xc1, 0x6f, 0x71, 0xd7, 0x19, 0x02, 0x87, 0x8d, 0x0b, 0x93, 0x78, 0xf4, 0x6f, 0xf3, 0xa8,
- 0x73, 0x48, 0xe9, 0x61, 0xc8, 0xfa, 0x9b, 0x4d, 0x3c, 0xfe, 0x77, 0x18, 0xbe, 0x83, 0xc1, 0x11,
- 0x10, 0x36, 0xbb, 0x78, 0x8a, 0xdf, 0xe5, 0x11, 0x10, 0x50, 0x78, 0x19, 0x85, 0x05, 0x4c, 0x3c,
- 0xd3, 0xef, 0xf1, 0x65, 0x14, 0xd2, 0x2f, 0x78, 0x36, 0x49, 0xcd, 0x8f, 0xa7, 0xf8, 0x7d, 0x3e,
- 0x9b, 0xc4, 0x1e, 0xbb, 0x11, 0x56, 0x04, 0xf1, 0x1c, 0x7f, 0xc0, 0xdd, 0x08, 0x09, 0x82, 0xd2,
+ 0x20, 0x78, 0xe2, 0xa9, 0x7e, 0x91, 0x51, 0xe5, 0x45, 0xbd, 0x53, 0x3a, 0x0b, 0x29, 0x2c, 0x5e,
+ 0xe2, 0xe1, 0xbf, 0xc4, 0xe0, 0xc4, 0xbc, 0xf4, 0x20, 0x64, 0xb8, 0x68, 0x89, 0x87, 0xfe, 0x32,
+ 0x83, 0xfa, 0x10, 0x0c, 0xe7, 0x82, 0x25, 0x1e, 0xfe, 0x2b, 0x1c, 0xce, 0x21, 0x18, 0x3e, 0x78,
+ 0x08, 0xbf, 0xf3, 0xab, 0x29, 0xb6, 0xe9, 0xf0, 0xd8, 0x5d, 0x80, 0x11, 0xa6, 0x54, 0xe2, 0xd1,
+ 0x9f, 0x67, 0x83, 0x73, 0x44, 0xe9, 0x7e, 0x48, 0x0f, 0x18, 0xf0, 0x5f, 0x67, 0x50, 0x6a, 0x5f,
+ 0x5a, 0x82, 0x9c, 0xa0, 0x4e, 0xe2, 0xe1, 0xbf, 0xc1, 0xe0, 0x22, 0x0a, 0xbb, 0xce, 0xd4, 0x49,
+ 0x3c, 0xc1, 0x6f, 0x72, 0xd7, 0x19, 0x02, 0x87, 0x8d, 0x0b, 0x93, 0x78, 0xf4, 0x6f, 0xf1, 0xa8,
+ 0x73, 0x48, 0xe9, 0x61, 0xc8, 0xfa, 0x9b, 0x4d, 0x3c, 0xfe, 0xb7, 0x19, 0xbe, 0x83, 0xc1, 0x11,
+ 0x10, 0x36, 0xbb, 0x78, 0x8a, 0xdf, 0xe1, 0x11, 0x10, 0x50, 0x78, 0x19, 0x85, 0x05, 0x4c, 0x3c,
+ 0xd3, 0xef, 0xf2, 0x65, 0x14, 0xd2, 0x2f, 0x78, 0x36, 0x49, 0xcd, 0x8f, 0xa7, 0xf8, 0x3d, 0x3e,
+ 0x9b, 0xc4, 0x1e, 0xbb, 0x11, 0x56, 0x04, 0xf1, 0x1c, 0xbf, 0xcf, 0xdd, 0x08, 0x09, 0x82, 0xd2,
0x16, 0x28, 0xdd, 0x6a, 0x20, 0x9e, 0xef, 0x45, 0xc6, 0x37, 0xde, 0x25, 0x06, 0x4a, 0x8f, 0xc3,
0xb1, 0x68, 0x25, 0x10, 0xcf, 0xfa, 0x85, 0xf7, 0x42, 0x67, 0x37, 0x51, 0x08, 0x94, 0xb6, 0x3b,
0x5b, 0x8a, 0xa8, 0x02, 0xe2, 0x69, 0x5f, 0x7a, 0x2f, 0x58, 0xb8, 0x45, 0x11, 0x50, 0x2a, 0x03,
@@ -547,84 +628,84 @@ func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_des
0x2f, 0xf2, 0xa5, 0xc1, 0x10, 0x78, 0x69, 0xf0, 0xad, 0x37, 0x1e, 0xfd, 0x0a, 0x5f, 0x1a, 0x1c,
0x82, 0x33, 0x5b, 0xd8, 0xdd, 0xe2, 0x19, 0x5e, 0xe5, 0x99, 0x2d, 0xa0, 0x4a, 0x1b, 0x30, 0xde,
0xb5, 0x21, 0xc6, 0x53, 0x7d, 0x89, 0x51, 0xc9, 0xe1, 0xfd, 0x50, 0xdc, 0xbc, 0xd8, 0x66, 0x18,
- 0xcf, 0xf6, 0x27, 0xa1, 0xcd, 0x8b, 0xed, 0x85, 0xa5, 0x0b, 0x90, 0xb1, 0xda, 0x8d, 0x06, 0x5e,
- 0x3c, 0x4a, 0xff, 0x1f, 0xd8, 0x15, 0xff, 0xed, 0x03, 0x16, 0x1d, 0x0e, 0x28, 0x9d, 0x85, 0x34,
+ 0xcf, 0xf6, 0xc7, 0xa1, 0xcd, 0x8b, 0xed, 0x85, 0xa5, 0x0b, 0x90, 0xb1, 0xda, 0x8d, 0x06, 0x5e,
+ 0x3c, 0x4a, 0xff, 0x5f, 0xee, 0x15, 0xff, 0xed, 0x03, 0x16, 0x1d, 0x0e, 0x28, 0x9d, 0x85, 0x34,
0x6a, 0xee, 0xa2, 0x5a, 0x1c, 0xf2, 0xdf, 0x3f, 0xe0, 0x05, 0x13, 0x5b, 0x97, 0x1e, 0x06, 0xa0,
- 0x57, 0x23, 0xe4, 0xb3, 0x5f, 0x0c, 0xf6, 0x3f, 0x3e, 0x60, 0x3f, 0x7d, 0xe9, 0x40, 0x3a, 0x04,
- 0xf4, 0x87, 0x34, 0xfd, 0x09, 0xde, 0x09, 0x12, 0x90, 0x19, 0x79, 0x00, 0x46, 0x9e, 0x71, 0x6d,
+ 0x57, 0x23, 0xe4, 0xb3, 0x5f, 0x0c, 0xf6, 0x3f, 0x3e, 0x60, 0xbf, 0xa9, 0xe9, 0x40, 0x3a, 0x04,
+ 0xf4, 0x17, 0x3a, 0xfd, 0x09, 0xde, 0x09, 0x12, 0x90, 0x19, 0x79, 0x00, 0x46, 0x9e, 0x71, 0x6d,
0xcb, 0xd3, 0xeb, 0x71, 0xe8, 0xff, 0x64, 0x68, 0x6e, 0x8f, 0x03, 0xd6, 0xb4, 0x1d, 0xe4, 0xe9,
0x75, 0x37, 0x0e, 0xfb, 0x5f, 0x0c, 0xeb, 0x03, 0x30, 0xd8, 0xd0, 0x5d, 0x6f, 0x90, 0xf7, 0xfe,
- 0x29, 0x07, 0x73, 0x00, 0x76, 0x1a, 0xff, 0x7d, 0x19, 0x1d, 0xc4, 0x61, 0xdf, 0xe5, 0x4e, 0x33,
- 0xfb, 0xd2, 0x83, 0x90, 0xc5, 0x7f, 0xd2, 0xdf, 0xb3, 0xc5, 0x80, 0xff, 0x9b, 0x81, 0x3b, 0x08,
- 0x3c, 0xb2, 0xeb, 0xd5, 0x3c, 0x33, 0x3e, 0xd8, 0x3f, 0x63, 0x33, 0xcd, 0xed, 0x4b, 0x65, 0xc8,
- 0xb9, 0x5e, 0xad, 0xd6, 0x66, 0xfa, 0x34, 0x06, 0xfe, 0x3f, 0x1f, 0xf8, 0x57, 0x16, 0x3e, 0x06,
- 0xcf, 0xf6, 0xd5, 0xcb, 0x5e, 0xcb, 0x26, 0x9f, 0x39, 0xe2, 0x18, 0xde, 0x63, 0x0c, 0x02, 0x64,
- 0xb1, 0x12, 0x7d, 0x7d, 0x0b, 0x2b, 0xf6, 0x8a, 0x4d, 0x2f, 0x6e, 0x9f, 0x9a, 0x89, 0xbf, 0x81,
- 0x85, 0x9f, 0xdd, 0x0d, 0x9f, 0x36, 0xec, 0xe6, 0xae, 0xed, 0xce, 0xef, 0xda, 0xde, 0xfe, 0x7c,
- 0x53, 0x6f, 0xb9, 0xa4, 0x67, 0x81, 0xdd, 0xcb, 0xe6, 0xd8, 0x13, 0xee, 0x98, 0x3a, 0xda, 0x9d,
- 0xee, 0xcc, 0xcd, 0x30, 0x7a, 0xb1, 0x61, 0xeb, 0x9e, 0x69, 0xd5, 0xb7, 0xb0, 0xdb, 0x4a, 0x1e,
- 0xa4, 0x3d, 0xf2, 0x4d, 0x52, 0x52, 0xa5, 0xbd, 0x99, 0x7f, 0x4e, 0x43, 0x96, 0x5e, 0x07, 0xae,
- 0xeb, 0x2d, 0xe5, 0x17, 0x21, 0xbf, 0xc1, 0xd6, 0xe0, 0xbd, 0x0b, 0xe7, 0x5d, 0xff, 0xf3, 0x83,
- 0x30, 0xfe, 0x9c, 0x6f, 0x3d, 0x27, 0x9a, 0x92, 0xdf, 0x20, 0x2c, 0xde, 0xf3, 0xa3, 0x37, 0x8e,
- 0xdf, 0xd5, 0xd3, 0x3f, 0xac, 0x2a, 0xe6, 0xe9, 0x62, 0x99, 0xdb, 0x31, 0x2d, 0xef, 0xde, 0x85,
- 0xf3, 0x6a, 0x60, 0x3c, 0xe5, 0x0a, 0x64, 0x58, 0x87, 0xcb, 0x3e, 0x4b, 0xdd, 0xda, 0x63, 0x6c,
- 0x6e, 0x46, 0xc7, 0x3d, 0xf3, 0xfa, 0x1b, 0xc7, 0x87, 0x8e, 0x3c, 0xb6, 0x3f, 0x96, 0xf2, 0x2c,
- 0xe4, 0xb8, 0x1f, 0xab, 0x35, 0x97, 0xfd, 0x37, 0x84, 0x3b, 0x62, 0x5e, 0x7b, 0xb5, 0xc6, 0x46,
- 0xbf, 0xfd, 0x47, 0x6f, 0x1c, 0x9f, 0xe9, 0x3b, 0xf2, 0xdc, 0x4e, 0xdb, 0xac, 0xa9, 0xe2, 0x18,
- 0xca, 0xd3, 0x90, 0xc4, 0x43, 0xd1, 0x5f, 0x6e, 0x1e, 0xef, 0x31, 0x94, 0x3f, 0xc4, 0x29, 0xf6,
- 0x82, 0x83, 0x0c, 0x83, 0x79, 0xa7, 0x1e, 0x86, 0xf1, 0xae, 0xe9, 0x51, 0x64, 0x48, 0x5e, 0x46,
- 0x07, 0xec, 0x27, 0x72, 0xf8, 0x4f, 0x65, 0xb2, 0xf3, 0x1b, 0x56, 0x69, 0x36, 0xcf, 0x7e, 0x98,
- 0x5a, 0x4a, 0x9c, 0x97, 0xa6, 0x2e, 0xc0, 0x68, 0x20, 0xc6, 0x47, 0x02, 0x3f, 0x04, 0x72, 0x38,
- 0x4a, 0x47, 0xc2, 0x9f, 0x83, 0xcc, 0x87, 0xc1, 0xcd, 0xfc, 0x50, 0x81, 0x91, 0x72, 0xa3, 0xb1,
- 0xae, 0xb7, 0x5c, 0xe5, 0x49, 0x18, 0xa7, 0x67, 0x9f, 0x6d, 0x7b, 0x99, 0x7c, 0x08, 0x5c, 0xd7,
- 0x5b, 0x2c, 0xa1, 0x4f, 0x07, 0xc2, 0xcd, 0x00, 0x73, 0x5d, 0xd6, 0x64, 0x7c, 0xb5, 0x9b, 0x45,
- 0x79, 0x0c, 0x64, 0xde, 0x48, 0xd6, 0x16, 0x66, 0xa6, 0xe9, 0x7a, 0xaa, 0x2f, 0x33, 0x37, 0xa6,
- 0xc4, 0x5d, 0x1c, 0xca, 0x43, 0x90, 0x59, 0xb5, 0xbc, 0xfb, 0x16, 0x30, 0x1f, 0xcd, 0xc1, 0x99,
- 0x48, 0x3e, 0x6e, 0x44, 0x79, 0x7c, 0x0c, 0xc3, 0x9f, 0x3b, 0x83, 0xf1, 0xa9, 0xfe, 0x78, 0x62,
- 0xd4, 0xc1, 0x93, 0x47, 0xa5, 0x0c, 0x59, 0x3c, 0xe7, 0xd4, 0x01, 0xfa, 0x3f, 0x60, 0x6e, 0x89,
- 0x24, 0xf0, 0xad, 0x28, 0x43, 0x07, 0xc5, 0x29, 0xa8, 0x0f, 0xc3, 0x31, 0x14, 0x82, 0x13, 0x1d,
- 0x14, 0xa6, 0xa8, 0xfa, 0x5e, 0x8c, 0xf4, 0xa1, 0xa8, 0x86, 0xbc, 0xa8, 0x8a, 0x5e, 0x54, 0x7d,
- 0x2f, 0x32, 0x31, 0x14, 0xa2, 0x17, 0xfe, 0xb3, 0xb2, 0x0c, 0x70, 0xd1, 0x7c, 0x0e, 0xd5, 0xa8,
- 0x1b, 0xd9, 0x88, 0x62, 0xc4, 0x39, 0x3a, 0x66, 0x94, 0x44, 0xc0, 0x29, 0x2b, 0x90, 0xab, 0xee,
- 0x75, 0x68, 0x80, 0xfd, 0x07, 0xa0, 0x48, 0x57, 0xf6, 0x42, 0x3c, 0x22, 0xd2, 0x77, 0x87, 0xbe,
- 0x52, 0x2e, 0xce, 0x1d, 0xe1, 0x9d, 0x04, 0x5c, 0xc7, 0x1d, 0x4a, 0x93, 0x8f, 0x75, 0x47, 0xe0,
- 0x11, 0x91, 0xca, 0x05, 0x18, 0x59, 0xb4, 0x6d, 0x6c, 0x59, 0x1c, 0x25, 0x24, 0x27, 0x23, 0x49,
- 0x98, 0x0d, 0x25, 0xe0, 0x08, 0x32, 0x3b, 0x24, 0xf5, 0x31, 0xbc, 0xd0, 0x6f, 0x76, 0xb8, 0x15,
- 0x9f, 0x1d, 0xfe, 0x2c, 0xae, 0xc0, 0xc5, 0x03, 0x0f, 0xe1, 0x73, 0x46, 0x71, 0x6c, 0x80, 0x15,
- 0xc8, 0x8d, 0x43, 0x2b, 0x90, 0x37, 0x2b, 0x55, 0x18, 0xe3, 0x6d, 0x15, 0xab, 0x8d, 0x6b, 0x70,
- 0x51, 0x66, 0xbf, 0xee, 0xef, 0x47, 0xcb, 0x6c, 0x29, 0x6b, 0x98, 0x41, 0xd9, 0x82, 0x02, 0x6f,
- 0x5a, 0x77, 0xc9, 0x4b, 0x8f, 0x47, 0xec, 0xab, 0x61, 0x4e, 0x6a, 0x4a, 0x29, 0x43, 0xf8, 0xa9,
- 0x65, 0x38, 0x16, 0x5d, 0xad, 0xe2, 0xaa, 0xa5, 0x24, 0x56, 0xd9, 0x25, 0xb8, 0x21, 0xb2, 0x32,
- 0xc5, 0x91, 0x24, 0x42, 0xfb, 0x44, 0xa0, 0x1c, 0x89, 0xe0, 0x74, 0x04, 0x38, 0xdd, 0x0d, 0xee,
- 0x24, 0x99, 0x08, 0x4e, 0x46, 0x80, 0x93, 0x22, 0xf8, 0x33, 0x50, 0x08, 0xd6, 0x21, 0x11, 0x3d,
- 0x1a, 0x81, 0x1e, 0x8d, 0x40, 0x47, 0x8f, 0x9d, 0x8a, 0x40, 0xa7, 0x42, 0xe8, 0x6a, 0xcf, 0xb1,
- 0xc7, 0x23, 0xd0, 0xe3, 0x11, 0xe8, 0xe8, 0xb1, 0x95, 0x08, 0xb4, 0x22, 0xa2, 0x1f, 0x84, 0xb1,
- 0x50, 0xc9, 0x11, 0xe1, 0x23, 0x11, 0xf0, 0x91, 0xd0, 0xde, 0x1c, 0x2e, 0x35, 0x22, 0x7e, 0x2c,
- 0x02, 0x3f, 0x16, 0x35, 0x7c, 0xb4, 0xf7, 0xc3, 0x11, 0xf0, 0xe1, 0xc8, 0xe1, 0xa3, 0xf1, 0x72,
- 0x04, 0x5e, 0x16, 0xf1, 0x25, 0xc8, 0x8b, 0x55, 0x45, 0xc4, 0x66, 0x22, 0xb0, 0x99, 0x70, 0xdc,
- 0x03, 0x25, 0x25, 0x2e, 0xd3, 0xb3, 0x3d, 0x96, 0x4b, 0xa0, 0x8c, 0x1c, 0x49, 0xd9, 0x3c, 0x01,
- 0x93, 0x51, 0x45, 0x23, 0x82, 0xe3, 0x94, 0xc8, 0x51, 0x58, 0x98, 0x0c, 0x14, 0x0b, 0x82, 0x6b,
- 0x37, 0x45, 0xe6, 0xa7, 0x61, 0x22, 0xa2, 0x74, 0x44, 0x10, 0xdf, 0x23, 0x12, 0xe7, 0x16, 0xa6,
- 0x02, 0xc4, 0x81, 0xb3, 0x82, 0x28, 0xad, 0x7e, 0x3c, 0x01, 0x05, 0x56, 0xa2, 0x36, 0x9d, 0x1a,
- 0x72, 0x50, 0x4d, 0xf9, 0xff, 0xbd, 0x15, 0xd6, 0x42, 0x54, 0x69, 0x63, 0xb8, 0x23, 0x08, 0xad,
- 0xa7, 0x7b, 0x0a, 0xad, 0x7b, 0x07, 0x19, 0x20, 0x4e, 0x6f, 0x55, 0xba, 0xf4, 0xd6, 0x9d, 0xfd,
- 0x68, 0x7b, 0xc9, 0xae, 0x4a, 0x97, 0xec, 0x8a, 0xa3, 0x89, 0x54, 0x5f, 0x97, 0xba, 0xd5, 0xd7,
- 0xa9, 0x7e, 0x3c, 0xbd, 0x45, 0xd8, 0xa5, 0x6e, 0x11, 0x16, 0xcb, 0x14, 0xad, 0xc5, 0x2e, 0x75,
- 0x6b, 0xb1, 0xbe, 0x4c, 0xbd, 0x25, 0xd9, 0xa5, 0x6e, 0x49, 0x16, 0xcb, 0x14, 0xad, 0xcc, 0x1e,
- 0x8d, 0x50, 0x66, 0xa7, 0xfb, 0x51, 0xf5, 0x13, 0x68, 0x1b, 0x51, 0x02, 0xed, 0xae, 0xbe, 0x8e,
- 0xf5, 0xd5, 0x69, 0x8f, 0x46, 0xe8, 0xb4, 0x78, 0xe7, 0x7a, 0xc8, 0xb5, 0x8d, 0x28, 0xb9, 0x36,
- 0x80, 0x73, 0xbd, 0x54, 0xdb, 0x62, 0x58, 0xb5, 0xcd, 0xf6, 0xe3, 0x8a, 0x16, 0x6f, 0x97, 0xba,
- 0xc5, 0xdb, 0xa9, 0xf8, 0xb5, 0x18, 0xa5, 0xe1, 0x9e, 0xee, 0xa9, 0xe1, 0x06, 0x5a, 0xdc, 0x71,
- 0x52, 0xee, 0xa9, 0x5e, 0x52, 0xee, 0x9e, 0x41, 0xd8, 0xfb, 0x2b, 0xba, 0xc7, 0x7b, 0x28, 0xba,
- 0xf9, 0x41, 0xa8, 0x3f, 0x11, 0x76, 0x9f, 0x08, 0xbb, 0x4f, 0x84, 0xdd, 0x27, 0xc2, 0xee, 0xff,
- 0x86, 0xb0, 0x2b, 0xa5, 0x5e, 0x7c, 0xf5, 0xb8, 0x74, 0xea, 0x24, 0x8c, 0xb0, 0xa1, 0x95, 0x61,
- 0x48, 0xac, 0x97, 0xe5, 0x21, 0xf2, 0xef, 0xa2, 0x2c, 0x91, 0x7f, 0x97, 0xe4, 0xc4, 0xe2, 0xda,
- 0xeb, 0xd7, 0xa7, 0x87, 0xbe, 0x7f, 0x7d, 0x7a, 0xe8, 0x87, 0xd7, 0xa7, 0x87, 0xde, 0xbc, 0x3e,
- 0x2d, 0xbd, 0x7d, 0x7d, 0x5a, 0x7a, 0xf7, 0xfa, 0xb4, 0xf4, 0xfe, 0xf5, 0x69, 0xe9, 0xda, 0xe1,
- 0xb4, 0xf4, 0x95, 0xc3, 0x69, 0xe9, 0x6b, 0x87, 0xd3, 0xd2, 0xb7, 0x0e, 0xa7, 0xa5, 0xef, 0x1e,
- 0x4e, 0x4b, 0xaf, 0x1f, 0x4e, 0x4b, 0xdf, 0x3f, 0x9c, 0x96, 0xde, 0x3c, 0x9c, 0x96, 0xde, 0x3e,
- 0x9c, 0x1e, 0x7a, 0xf7, 0x70, 0x5a, 0x7a, 0xff, 0x70, 0x7a, 0xe8, 0xda, 0x4f, 0xa6, 0x87, 0xfe,
- 0x37, 0x00, 0x00, 0xff, 0xff, 0x71, 0xf1, 0x7d, 0x92, 0x90, 0x49, 0x00, 0x00,
+ 0x6f, 0x0e, 0xe6, 0x00, 0xec, 0x34, 0xfe, 0xfb, 0x32, 0x3a, 0x88, 0xc3, 0xbe, 0xcb, 0x9d, 0x66,
+ 0xf6, 0xa5, 0x07, 0x21, 0x8b, 0xff, 0xa4, 0x3f, 0x94, 0x8b, 0x01, 0xff, 0x0f, 0x03, 0x77, 0x10,
+ 0x78, 0x64, 0xd7, 0xab, 0x79, 0x66, 0x7c, 0xb0, 0x7f, 0xc2, 0x66, 0x9a, 0xdb, 0x97, 0xca, 0x90,
+ 0x73, 0xbd, 0x5a, 0xad, 0xcd, 0xf4, 0x69, 0x0c, 0xfc, 0x7f, 0x3f, 0xf0, 0xaf, 0x2c, 0x7c, 0x0c,
+ 0x9e, 0xed, 0xab, 0x97, 0xbd, 0x96, 0x4d, 0x3e, 0x73, 0xc4, 0x31, 0xbc, 0xc7, 0x18, 0x04, 0xc8,
+ 0x62, 0x25, 0xfa, 0xfa, 0x16, 0x56, 0xec, 0x15, 0x9b, 0x5e, 0xdc, 0x3e, 0x35, 0x13, 0x7f, 0x03,
+ 0x0b, 0x3f, 0xb9, 0x1b, 0x3e, 0x6d, 0xd8, 0xcd, 0x5d, 0xdb, 0x9d, 0xdf, 0xb5, 0xbd, 0xfd, 0xf9,
+ 0xa6, 0xde, 0x72, 0x49, 0xcf, 0x02, 0xbb, 0x97, 0xcd, 0xb1, 0x27, 0xdc, 0x31, 0x75, 0xb4, 0x3b,
+ 0xdd, 0x99, 0x9b, 0x61, 0xf4, 0x62, 0xc3, 0xd6, 0x3d, 0xd3, 0xaa, 0x6f, 0x61, 0xb7, 0x95, 0x3c,
+ 0x48, 0x7b, 0xe4, 0x9b, 0xa4, 0xa4, 0x4a, 0x7b, 0x33, 0xff, 0x9c, 0x86, 0x2c, 0xbd, 0x0e, 0x5c,
+ 0xd7, 0x5b, 0xca, 0xcf, 0x43, 0x7e, 0x83, 0xad, 0xc1, 0x7b, 0x17, 0xce, 0xbb, 0xfe, 0xe7, 0x07,
+ 0x61, 0xfc, 0x39, 0xdf, 0x7a, 0x4e, 0x34, 0x25, 0xbf, 0x41, 0x58, 0xbc, 0xe7, 0x87, 0x6f, 0x1c,
+ 0xbf, 0xab, 0xa7, 0x7f, 0x58, 0x55, 0xcc, 0xd3, 0xc5, 0x32, 0xb7, 0x63, 0x5a, 0xde, 0xbd, 0x0b,
+ 0xe7, 0xd5, 0xc0, 0x78, 0xca, 0x15, 0xc8, 0xb0, 0x0e, 0x97, 0x7d, 0x96, 0xba, 0xb5, 0xc7, 0xd8,
+ 0xdc, 0x8c, 0x8e, 0x7b, 0xe6, 0xf5, 0x37, 0x8e, 0x0f, 0x1d, 0x79, 0x6c, 0x7f, 0x2c, 0xe5, 0x59,
+ 0xc8, 0x71, 0x3f, 0x56, 0x6b, 0x2e, 0xfb, 0xff, 0x0d, 0x77, 0xc4, 0xbc, 0xf6, 0x6a, 0x8d, 0x8d,
+ 0x7e, 0xfb, 0x0f, 0xdf, 0x38, 0x3e, 0xd3, 0x77, 0xe4, 0xb9, 0x9d, 0xb6, 0x59, 0x53, 0xc5, 0x31,
+ 0x94, 0xa7, 0x21, 0x89, 0x87, 0xa2, 0x3f, 0x09, 0x3d, 0xde, 0x63, 0x28, 0x7f, 0x88, 0x53, 0xec,
+ 0x05, 0x07, 0x19, 0x06, 0xf3, 0x4e, 0x3d, 0x0c, 0xe3, 0x5d, 0xd3, 0xa3, 0xc8, 0x90, 0xbc, 0x8c,
+ 0x0e, 0xd8, 0x6f, 0xef, 0xf0, 0x9f, 0xca, 0x64, 0xe7, 0xc7, 0xb1, 0xd2, 0x6c, 0x9e, 0xfd, 0xe2,
+ 0xb5, 0x94, 0x38, 0x2f, 0x4d, 0x5d, 0x80, 0xd1, 0x40, 0x8c, 0x8f, 0x04, 0x7e, 0x08, 0xe4, 0x70,
+ 0x94, 0x8e, 0x84, 0x3f, 0x07, 0x99, 0x0f, 0x83, 0x9b, 0xf9, 0x81, 0x02, 0x23, 0xe5, 0x46, 0x63,
+ 0x5d, 0x6f, 0xb9, 0xca, 0x93, 0x30, 0x4e, 0xcf, 0x3e, 0xdb, 0xf6, 0x32, 0xf9, 0x10, 0xb8, 0xae,
+ 0xb7, 0x58, 0x42, 0x9f, 0x0e, 0x84, 0x9b, 0x01, 0xe6, 0xba, 0xac, 0xc9, 0xf8, 0x6a, 0x37, 0x8b,
+ 0xf2, 0x18, 0xc8, 0xbc, 0x91, 0xac, 0x2d, 0xcc, 0x4c, 0xd3, 0xf5, 0x54, 0x5f, 0x66, 0x6e, 0x4c,
+ 0x89, 0xbb, 0x38, 0x94, 0x87, 0x20, 0xb3, 0x6a, 0x79, 0xf7, 0x2d, 0x60, 0x3e, 0x9a, 0x83, 0x33,
+ 0x91, 0x7c, 0xdc, 0x88, 0xf2, 0xf8, 0x18, 0x86, 0x3f, 0x77, 0x06, 0xe3, 0x53, 0xfd, 0xf1, 0xc4,
+ 0xa8, 0x83, 0x27, 0x8f, 0x4a, 0x19, 0xb2, 0x78, 0xce, 0xa9, 0x03, 0xf4, 0xbf, 0xd6, 0xdc, 0x12,
+ 0x49, 0xe0, 0x5b, 0x51, 0x86, 0x0e, 0x8a, 0x53, 0x50, 0x1f, 0x86, 0x63, 0x28, 0x04, 0x27, 0x3a,
+ 0x28, 0x4c, 0x51, 0xf5, 0xbd, 0x18, 0xe9, 0x43, 0x51, 0x0d, 0x79, 0x51, 0x15, 0xbd, 0xa8, 0xfa,
+ 0x5e, 0x64, 0x62, 0x28, 0x44, 0x2f, 0xfc, 0x67, 0x65, 0x19, 0xe0, 0xa2, 0xf9, 0x1c, 0xaa, 0x51,
+ 0x37, 0xb2, 0x11, 0xc5, 0x88, 0x73, 0x74, 0xcc, 0x28, 0x89, 0x80, 0x53, 0x56, 0x20, 0x57, 0xdd,
+ 0xeb, 0xd0, 0x00, 0xfb, 0x9f, 0x45, 0x91, 0xae, 0xec, 0x85, 0x78, 0x44, 0xa4, 0xef, 0x0e, 0x7d,
+ 0xa5, 0x5c, 0x9c, 0x3b, 0xc2, 0x3b, 0x09, 0xb8, 0x8e, 0x3b, 0x94, 0x26, 0x1f, 0xeb, 0x8e, 0xc0,
+ 0x23, 0x22, 0x95, 0x0b, 0x30, 0xb2, 0x68, 0xdb, 0xd8, 0xb2, 0x38, 0x4a, 0x48, 0x4e, 0x46, 0x92,
+ 0x30, 0x1b, 0x4a, 0xc0, 0x11, 0x64, 0x76, 0x48, 0xea, 0x63, 0x78, 0xa1, 0xdf, 0xec, 0x70, 0x2b,
+ 0x3e, 0x3b, 0xfc, 0x59, 0x5c, 0x81, 0x8b, 0x07, 0x1e, 0xc2, 0xe7, 0x8c, 0xe2, 0xd8, 0x00, 0x2b,
+ 0x90, 0x1b, 0x87, 0x56, 0x20, 0x6f, 0x56, 0xaa, 0x30, 0xc6, 0xdb, 0x2a, 0x56, 0x1b, 0xd7, 0xe0,
+ 0xa2, 0xcc, 0xfe, 0xdb, 0x40, 0x3f, 0x5a, 0x66, 0x4b, 0x59, 0xc3, 0x0c, 0xca, 0x16, 0x14, 0x78,
+ 0xd3, 0xba, 0x4b, 0x5e, 0x7a, 0x3c, 0x62, 0x5f, 0x0d, 0x73, 0x52, 0x53, 0x4a, 0x19, 0xc2, 0x4f,
+ 0x2d, 0xc3, 0xb1, 0xe8, 0x6a, 0x15, 0x57, 0x2d, 0x25, 0xb1, 0xca, 0x2e, 0xc1, 0x0d, 0x91, 0x95,
+ 0x29, 0x8e, 0x24, 0x11, 0xda, 0x27, 0x02, 0xe5, 0x48, 0x04, 0xa7, 0x23, 0xc0, 0xe9, 0x6e, 0x70,
+ 0x27, 0xc9, 0x44, 0x70, 0x32, 0x02, 0x9c, 0x14, 0xc1, 0x9f, 0x81, 0x42, 0xb0, 0x0e, 0x89, 0xe8,
+ 0xd1, 0x08, 0xf4, 0x68, 0x04, 0x3a, 0x7a, 0xec, 0x54, 0x04, 0x3a, 0x15, 0x42, 0x57, 0x7b, 0x8e,
+ 0x3d, 0x1e, 0x81, 0x1e, 0x8f, 0x40, 0x47, 0x8f, 0xad, 0x44, 0xa0, 0x15, 0x11, 0xfd, 0x20, 0x8c,
+ 0x85, 0x4a, 0x8e, 0x08, 0x1f, 0x89, 0x80, 0x8f, 0x84, 0xf6, 0xe6, 0x70, 0xa9, 0x11, 0xf1, 0x63,
+ 0x11, 0xf8, 0xb1, 0xa8, 0xe1, 0xa3, 0xbd, 0x1f, 0x8e, 0x80, 0x0f, 0x47, 0x0e, 0x1f, 0x8d, 0x97,
+ 0x23, 0xf0, 0xb2, 0x88, 0x2f, 0x41, 0x5e, 0xac, 0x2a, 0x22, 0x36, 0x13, 0x81, 0xcd, 0x84, 0xe3,
+ 0x1e, 0x28, 0x29, 0x71, 0x99, 0x9e, 0xed, 0xb1, 0x5c, 0x02, 0x65, 0xe4, 0x48, 0xca, 0xe6, 0x09,
+ 0x98, 0x8c, 0x2a, 0x1a, 0x11, 0x1c, 0xa7, 0x44, 0x8e, 0xc2, 0xc2, 0x64, 0xa0, 0x58, 0x10, 0x5c,
+ 0xbb, 0x29, 0x32, 0x3f, 0x0d, 0x13, 0x11, 0xa5, 0x23, 0x82, 0xf8, 0x1e, 0x91, 0x38, 0xb7, 0x30,
+ 0x15, 0x20, 0x0e, 0x9c, 0x15, 0x44, 0x69, 0xf5, 0xa3, 0x09, 0x28, 0xb0, 0x12, 0xb5, 0xe9, 0xd4,
+ 0x90, 0x83, 0x6a, 0xca, 0xcf, 0xf6, 0x56, 0x58, 0x0b, 0x51, 0xa5, 0x8d, 0xe1, 0x8e, 0x20, 0xb4,
+ 0x9e, 0xee, 0x29, 0xb4, 0xee, 0x1d, 0x64, 0x80, 0x38, 0xbd, 0x55, 0xe9, 0xd2, 0x5b, 0x77, 0xf6,
+ 0xa3, 0xed, 0x25, 0xbb, 0x2a, 0x5d, 0xb2, 0x2b, 0x8e, 0x26, 0x52, 0x7d, 0x5d, 0xea, 0x56, 0x5f,
+ 0xa7, 0xfa, 0xf1, 0xf4, 0x16, 0x61, 0x97, 0xba, 0x45, 0x58, 0x2c, 0x53, 0xb4, 0x16, 0xbb, 0xd4,
+ 0xad, 0xc5, 0xfa, 0x32, 0xf5, 0x96, 0x64, 0x97, 0xba, 0x25, 0x59, 0x2c, 0x53, 0xb4, 0x32, 0x7b,
+ 0x34, 0x42, 0x99, 0x9d, 0xee, 0x47, 0xd5, 0x4f, 0xa0, 0x6d, 0x44, 0x09, 0xb4, 0xbb, 0xfa, 0x3a,
+ 0xd6, 0x57, 0xa7, 0x3d, 0x1a, 0xa1, 0xd3, 0xe2, 0x9d, 0xeb, 0x21, 0xd7, 0x36, 0xa2, 0xe4, 0xda,
+ 0x00, 0xce, 0xf5, 0x52, 0x6d, 0x8b, 0x61, 0xd5, 0x36, 0xdb, 0x8f, 0x2b, 0x5a, 0xbc, 0x5d, 0xea,
+ 0x16, 0x6f, 0xa7, 0xe2, 0xd7, 0x62, 0x94, 0x86, 0x7b, 0xba, 0xa7, 0x86, 0x1b, 0x68, 0x71, 0xc7,
+ 0x49, 0xb9, 0xa7, 0x7a, 0x49, 0xb9, 0x7b, 0x06, 0x61, 0xef, 0xaf, 0xe8, 0x1e, 0xef, 0xa1, 0xe8,
+ 0xe6, 0x07, 0xa1, 0xfe, 0x44, 0xd8, 0x7d, 0x22, 0xec, 0x3e, 0x11, 0x76, 0x9f, 0x08, 0xbb, 0xff,
+ 0x1f, 0xc2, 0xae, 0x94, 0x7a, 0xf1, 0xd5, 0xe3, 0xd2, 0xa9, 0x93, 0x30, 0xc2, 0x86, 0x56, 0x86,
+ 0x21, 0xb1, 0x5e, 0x96, 0x87, 0xc8, 0xbf, 0x8b, 0xb2, 0x44, 0xfe, 0x5d, 0x92, 0x13, 0x8b, 0x6b,
+ 0xaf, 0x5f, 0x9f, 0x1e, 0xfa, 0xde, 0xf5, 0xe9, 0xa1, 0x1f, 0x5c, 0x9f, 0x1e, 0x7a, 0xf3, 0xfa,
+ 0xb4, 0xf4, 0xf6, 0xf5, 0x69, 0xe9, 0xdd, 0xeb, 0xd3, 0xd2, 0xfb, 0xd7, 0xa7, 0xa5, 0x6b, 0x87,
+ 0xd3, 0xd2, 0x57, 0x0e, 0xa7, 0xa5, 0xaf, 0x1d, 0x4e, 0x4b, 0xdf, 0x3c, 0x9c, 0x96, 0xbe, 0x73,
+ 0x38, 0x2d, 0xbd, 0x7e, 0x38, 0x2d, 0x7d, 0xef, 0x70, 0x5a, 0x7a, 0xf3, 0x70, 0x5a, 0x7a, 0xfb,
+ 0x70, 0x7a, 0xe8, 0xdd, 0xc3, 0x69, 0xe9, 0xfd, 0xc3, 0xe9, 0xa1, 0x6b, 0x3f, 0x9e, 0x1e, 0xfa,
+ 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd1, 0x2a, 0xe1, 0x89, 0xe9, 0x49, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -4588,7 +4669,7 @@ func (m *FloatingPoint) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4623,6 +4704,9 @@ func (m *FloatingPoint) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthMapsproto2
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -4651,7 +4735,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4679,7 +4763,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4688,6 +4772,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4709,7 +4796,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4726,7 +4813,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4736,6 +4823,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -4752,7 +4842,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapbyteLen |= (uint64(b) & 0x7F) << shift
+ mapbyteLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4762,6 +4852,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postbytesIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4800,7 +4893,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4809,6 +4902,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4830,7 +4926,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4847,7 +4943,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4857,6 +4953,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -4873,7 +4972,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapbyteLen |= (uint64(b) & 0x7F) << shift
+ mapbyteLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4883,6 +4982,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postbytesIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4921,7 +5023,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4930,6 +5032,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4951,7 +5056,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4968,7 +5073,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4978,6 +5083,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -4994,7 +5102,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapbyteLen |= (uint64(b) & 0x7F) << shift
+ mapbyteLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5004,6 +5112,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postbytesIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5042,7 +5153,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5051,6 +5162,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5072,7 +5186,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5089,7 +5203,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5099,6 +5213,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -5115,7 +5232,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapbyteLen |= (uint64(b) & 0x7F) << shift
+ mapbyteLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5125,6 +5242,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postbytesIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5158,6 +5278,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthMapsproto2
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -5186,7 +5309,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5214,7 +5337,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5223,6 +5346,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5243,7 +5369,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5260,7 +5386,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5270,6 +5396,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -5314,7 +5443,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5323,6 +5452,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5343,7 +5475,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5360,7 +5492,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5370,6 +5502,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -5414,7 +5549,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5423,6 +5558,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5443,7 +5581,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5459,7 +5597,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5474,7 +5612,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (int32(b) & 0x7F) << shift
+ mapvalue |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5510,7 +5648,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5519,6 +5657,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5539,7 +5680,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5555,7 +5696,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int64(b) & 0x7F) << shift
+ mapkey |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5570,7 +5711,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (int64(b) & 0x7F) << shift
+ mapvalue |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5606,7 +5747,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5615,6 +5756,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5635,7 +5779,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5651,7 +5795,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (uint32(b) & 0x7F) << shift
+ mapkey |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5666,7 +5810,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint32(b) & 0x7F) << shift
+ mapvalue |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5702,7 +5846,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5711,6 +5855,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5731,7 +5878,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5747,7 +5894,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (uint64(b) & 0x7F) << shift
+ mapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5762,7 +5909,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint64(b) & 0x7F) << shift
+ mapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5798,7 +5945,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5807,6 +5954,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5827,7 +5977,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5844,7 +5994,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (int32(b) & 0x7F) << shift
+ mapkeytemp |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5862,7 +6012,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (int32(b) & 0x7F) << shift
+ mapvaluetemp |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5900,7 +6050,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5909,6 +6059,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5929,7 +6082,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5946,7 +6099,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (uint64(b) & 0x7F) << shift
+ mapkeytemp |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5964,7 +6117,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (uint64(b) & 0x7F) << shift
+ mapvaluetemp |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6002,7 +6155,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6011,6 +6164,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6031,7 +6187,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6080,7 +6236,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6089,6 +6245,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6109,7 +6268,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6158,7 +6317,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6167,6 +6326,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6187,7 +6349,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6236,7 +6398,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6245,6 +6407,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6265,7 +6430,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6314,7 +6479,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6323,6 +6488,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6343,7 +6511,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6360,7 +6528,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (int(b) & 0x7F) << shift
+ mapkeytemp |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6377,7 +6545,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (int(b) & 0x7F) << shift
+ mapvaluetemp |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6414,7 +6582,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6423,6 +6591,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6443,7 +6614,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6460,7 +6631,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6470,6 +6641,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -6486,7 +6660,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapvalue |= (uint64(b) & 0x7F) << shift
+ stringLenmapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6496,6 +6670,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapvalue := iNdEx + intStringLenmapvalue
+ if postStringIndexmapvalue < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapvalue > l {
return io.ErrUnexpectedEOF
}
@@ -6532,7 +6709,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6541,6 +6718,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6561,7 +6741,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6578,7 +6758,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6588,6 +6768,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -6604,7 +6787,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapbyteLen |= (uint64(b) & 0x7F) << shift
+ mapbyteLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6614,6 +6797,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postbytesIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6651,7 +6837,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6660,6 +6846,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6680,7 +6869,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6697,7 +6886,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6707,6 +6896,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -6722,7 +6914,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (MapEnum(b) & 0x7F) << shift
+ mapvalue |= MapEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6758,7 +6950,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6767,6 +6959,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6787,7 +6982,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6804,7 +6999,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6814,6 +7009,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -6830,7 +7028,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6839,7 +7037,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthMapsproto2
}
if postmsgIndex > l {
@@ -6876,6 +7074,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthMapsproto2
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -6904,7 +7105,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6932,7 +7133,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6941,6 +7142,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6961,7 +7165,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6978,7 +7182,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6988,6 +7192,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -7032,7 +7239,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7041,6 +7248,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7061,7 +7271,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7078,7 +7288,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7088,6 +7298,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -7132,7 +7345,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7141,6 +7354,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7161,7 +7377,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7177,7 +7393,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7192,7 +7408,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (int32(b) & 0x7F) << shift
+ mapvalue |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7228,7 +7444,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7237,6 +7453,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7257,7 +7476,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7273,7 +7492,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int64(b) & 0x7F) << shift
+ mapkey |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7288,7 +7507,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (int64(b) & 0x7F) << shift
+ mapvalue |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7324,7 +7543,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7333,6 +7552,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7353,7 +7575,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7369,7 +7591,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (uint32(b) & 0x7F) << shift
+ mapkey |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7384,7 +7606,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint32(b) & 0x7F) << shift
+ mapvalue |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7420,7 +7642,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7429,6 +7651,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7449,7 +7674,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7465,7 +7690,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (uint64(b) & 0x7F) << shift
+ mapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7480,7 +7705,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint64(b) & 0x7F) << shift
+ mapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7516,7 +7741,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7525,6 +7750,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7545,7 +7773,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7562,7 +7790,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (int32(b) & 0x7F) << shift
+ mapkeytemp |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7580,7 +7808,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (int32(b) & 0x7F) << shift
+ mapvaluetemp |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7618,7 +7846,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7627,6 +7855,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7647,7 +7878,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7664,7 +7895,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (uint64(b) & 0x7F) << shift
+ mapkeytemp |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7682,7 +7913,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (uint64(b) & 0x7F) << shift
+ mapvaluetemp |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7720,7 +7951,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7729,6 +7960,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7749,7 +7983,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7798,7 +8032,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7807,6 +8041,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7827,7 +8064,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7876,7 +8113,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7885,6 +8122,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7905,7 +8145,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7954,7 +8194,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7963,6 +8203,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7983,7 +8226,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8032,7 +8275,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8041,6 +8284,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8061,7 +8307,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8078,7 +8324,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (int(b) & 0x7F) << shift
+ mapkeytemp |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8095,7 +8341,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (int(b) & 0x7F) << shift
+ mapvaluetemp |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8132,7 +8378,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8141,6 +8387,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8161,7 +8410,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8178,7 +8427,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8188,6 +8437,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -8204,7 +8456,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapvalue |= (uint64(b) & 0x7F) << shift
+ stringLenmapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8214,6 +8466,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapvalue := iNdEx + intStringLenmapvalue
+ if postStringIndexmapvalue < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapvalue > l {
return io.ErrUnexpectedEOF
}
@@ -8250,7 +8505,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8259,6 +8514,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8279,7 +8537,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8296,7 +8554,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8306,6 +8564,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -8322,7 +8583,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapbyteLen |= (uint64(b) & 0x7F) << shift
+ mapbyteLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8332,6 +8593,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postbytesIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8369,7 +8633,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8378,6 +8642,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8398,7 +8665,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8415,7 +8682,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8425,6 +8692,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -8440,7 +8710,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (MapEnum(b) & 0x7F) << shift
+ mapvalue |= MapEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8476,7 +8746,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8485,6 +8755,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8505,7 +8778,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8522,7 +8795,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8532,6 +8805,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -8548,7 +8824,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8557,7 +8833,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthMapsproto2
}
if postmsgIndex > l {
@@ -8594,6 +8870,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthMapsproto2
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -8661,10 +8940,13 @@ func skipMapsproto2(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthMapsproto2
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthMapsproto2
+ }
return iNdEx, nil
case 3:
for {
@@ -8693,6 +8975,9 @@ func skipMapsproto2(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthMapsproto2
+ }
}
return iNdEx, nil
case 4:
@@ -8711,83 +8996,3 @@ var (
ErrInvalidLengthMapsproto2 = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowMapsproto2 = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("combos/both/mapsproto2.proto", fileDescriptor_mapsproto2_7bd3336f77331b84)
-}
-
-var fileDescriptor_mapsproto2_7bd3336f77331b84 = []byte{
- // 1143 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x97, 0xcb, 0x6f, 0x1a, 0x57,
- 0x14, 0xc6, 0xb9, 0x3c, 0x0c, 0x5c, 0xde, 0x37, 0x69, 0x85, 0x50, 0x7b, 0x71, 0xe8, 0x8b, 0x90,
- 0x14, 0x6c, 0x1a, 0x45, 0x96, 0xd3, 0xa6, 0x32, 0xb6, 0x53, 0xac, 0x14, 0x37, 0x82, 0xa6, 0x2f,
- 0xc9, 0x52, 0xc1, 0x3c, 0x82, 0x0a, 0x0c, 0x65, 0x86, 0xa8, 0xde, 0x54, 0xf9, 0x33, 0xba, 0xed,
- 0xae, 0xcb, 0x2e, 0xbb, 0xec, 0xd2, 0x52, 0x37, 0x59, 0x46, 0x51, 0x65, 0x85, 0xe9, 0x26, 0xcb,
- 0x2c, 0xb3, 0xac, 0xe6, 0xce, 0x83, 0x3b, 0x33, 0x67, 0x66, 0xa0, 0xab, 0x2e, 0xbc, 0xc2, 0x77,
- 0x38, 0xdf, 0xef, 0x3b, 0x33, 0x73, 0xef, 0xe1, 0x33, 0x7e, 0xeb, 0x54, 0x18, 0x77, 0x04, 0xb1,
- 0xd2, 0x11, 0xa4, 0x47, 0x95, 0x71, 0x7b, 0x2a, 0x4e, 0x67, 0x82, 0x24, 0x54, 0xcb, 0xec, 0x83,
- 0xc4, 0xb4, 0x95, 0xf2, 0x45, 0xee, 0xc3, 0xc1, 0x50, 0x7a, 0x34, 0xef, 0x94, 0x4f, 0x85, 0x71,
- 0x65, 0x20, 0x0c, 0x84, 0x0a, 0xfb, 0xb2, 0x33, 0xef, 0xb3, 0x15, 0x5b, 0xb0, 0xbf, 0x54, 0x6d,
- 0xe1, 0x6d, 0x9c, 0xb8, 0x37, 0x12, 0xda, 0xd2, 0x70, 0x32, 0x78, 0x20, 0x0c, 0x27, 0x12, 0x89,
- 0x63, 0xd4, 0xcf, 0xa2, 0x4d, 0x54, 0x44, 0x4d, 0xd4, 0x2f, 0xfc, 0x15, 0xc2, 0xd1, 0xfd, 0xb9,
- 0x28, 0x09, 0xe3, 0x46, 0x7b, 0x4a, 0x7e, 0xc6, 0xf1, 0xe3, 0xf9, 0x68, 0xd4, 0xee, 0x8c, 0x7a,
- 0xdb, 0xd5, 0x1d, 0x31, 0x8b, 0x36, 0x03, 0xc5, 0x58, 0xb5, 0x58, 0xe6, 0xfc, 0xcb, 0x46, 0x75,
- 0x99, 0x2f, 0x3d, 0x9c, 0x48, 0xb3, 0xb3, 0xda, 0xd6, 0xf3, 0x8b, 0xfc, 0x4d, 0xc7, 0xfe, 0xa4,
- 0x9e, 0x28, 0x55, 0x4e, 0x99, 0xbc, 0xfc, 0x70, 0x38, 0x91, 0xb6, 0xab, 0x3b, 0x4d, 0x93, 0x1f,
- 0x79, 0x8c, 0x23, 0xda, 0x17, 0x62, 0xd6, 0xcf, 0xbc, 0xdf, 0x75, 0xf0, 0xd6, 0xcb, 0x54, 0xdf,
- 0x5b, 0xe7, 0x17, 0x79, 0xdf, 0xda, 0xde, 0x86, 0x17, 0xf9, 0x11, 0xc7, 0xf4, 0x3e, 0x8e, 0xba,
- 0x62, 0x36, 0xc0, 0xac, 0x3f, 0xf0, 0xb8, 0xed, 0xa3, 0xae, 0xe6, 0xfe, 0xfe, 0xf3, 0x8b, 0x7c,
- 0xc1, 0xd5, 0xb9, 0xfc, 0x70, 0x3e, 0xec, 0x36, 0x79, 0x0f, 0x72, 0x82, 0x03, 0x8a, 0x55, 0x90,
- 0x59, 0xe5, 0x1d, 0xac, 0x0c, 0x8b, 0x92, 0x76, 0x83, 0xab, 0xd8, 0x28, 0xdc, 0xdc, 0xa7, 0x38,
- 0x63, 0x7b, 0x3d, 0x24, 0x8d, 0x03, 0x3f, 0xf4, 0xce, 0xd8, 0xcb, 0x8f, 0x36, 0x95, 0x3f, 0xc9,
- 0x55, 0x1c, 0x7a, 0xdc, 0x1e, 0xcd, 0x7b, 0x59, 0xff, 0x26, 0x2a, 0xc6, 0x9b, 0xea, 0x62, 0xd7,
- 0xbf, 0x83, 0x72, 0x77, 0x70, 0xc2, 0xf4, 0x8c, 0xd7, 0x12, 0xdf, 0xc5, 0x69, 0xeb, 0x53, 0x5a,
- 0x4b, 0x7f, 0x1b, 0x47, 0xfe, 0x8b, 0xae, 0xf0, 0x8c, 0xe0, 0xf0, 0xde, 0x68, 0xd4, 0x68, 0x4f,
- 0x45, 0xf2, 0x2d, 0xce, 0xb4, 0xa4, 0xd9, 0x70, 0x32, 0xf8, 0x52, 0x38, 0x10, 0xe6, 0x9d, 0x51,
- 0xaf, 0xd1, 0x9e, 0x6a, 0x1b, 0xfa, 0x86, 0xe9, 0x71, 0x6b, 0x82, 0xb2, 0xad, 0x9a, 0xf9, 0x37,
- 0xed, 0x14, 0xf2, 0x15, 0x4e, 0xeb, 0x17, 0xd9, 0xd9, 0x52, 0xc8, 0xea, 0x76, 0x2d, 0xb9, 0x92,
- 0xf5, 0x62, 0x15, 0x6c, 0x63, 0x90, 0xbb, 0x38, 0x72, 0x34, 0x91, 0x3e, 0xaa, 0x2a, 0x3c, 0x75,
- 0x0f, 0x16, 0x40, 0x9e, 0x5e, 0xa4, 0x72, 0x0c, 0x8d, 0xa6, 0xbf, 0x7d, 0x4b, 0xd1, 0x07, 0xdd,
- 0xf5, 0xac, 0x68, 0xa9, 0x67, 0x4b, 0xb2, 0x87, 0xa3, 0xca, 0x3b, 0x57, 0x1b, 0x08, 0x31, 0xc0,
- 0x3b, 0x20, 0xc0, 0xa8, 0x52, 0x09, 0x4b, 0x95, 0x8e, 0x50, 0x7b, 0xd8, 0xf0, 0x40, 0x70, 0x4d,
- 0x2c, 0x55, 0x0a, 0xa2, 0x65, 0x74, 0x11, 0x76, 0x41, 0xb4, 0x2c, 0x5d, 0xb4, 0xf8, 0x2e, 0x5a,
- 0x46, 0x17, 0x11, 0x0f, 0x04, 0xdf, 0x85, 0xb1, 0x26, 0x07, 0x18, 0xdf, 0x1b, 0xfe, 0xd4, 0xeb,
- 0xaa, 0x6d, 0x44, 0x81, 0x61, 0xa4, 0x33, 0x96, 0x65, 0x2a, 0x84, 0xd3, 0x91, 0xcf, 0x70, 0xac,
- 0xd5, 0x5f, 0x62, 0x30, 0xc3, 0xbc, 0x07, 0xb7, 0xd2, 0xb7, 0x70, 0x78, 0xa5, 0xd1, 0x8e, 0x7a,
- 0x4b, 0x31, 0xaf, 0x76, 0xb8, 0x7b, 0xe2, 0x74, 0xcb, 0x76, 0x54, 0x4c, 0xdc, 0xb3, 0x1d, 0x8e,
- 0xc3, 0x2b, 0xc9, 0x1d, 0x1c, 0xae, 0x09, 0x82, 0x52, 0x99, 0x4d, 0x30, 0xc8, 0x35, 0x10, 0xa2,
- 0xd5, 0xa8, 0x00, 0x5d, 0xc1, 0xde, 0x0e, 0xdb, 0xfa, 0x8a, 0x3c, 0xe9, 0xf6, 0x76, 0xf4, 0x2a,
- 0xfd, 0xed, 0xe8, 0x6b, 0xfe, 0x04, 0xd6, 0xce, 0xa4, 0x9e, 0xa8, 0x90, 0x52, 0x2b, 0x9c, 0x40,
- 0xbd, 0xd8, 0x72, 0x02, 0xf5, 0xcb, 0xa4, 0x85, 0x53, 0xfa, 0xb5, 0xc3, 0xc9, 0x5c, 0x99, 0xc1,
- 0xd9, 0x34, 0xc3, 0x5e, 0x77, 0xc5, 0x6a, 0xb5, 0x2a, 0xd5, 0x4a, 0x20, 0x0f, 0x70, 0x52, 0xbf,
- 0xd4, 0x10, 0xd9, 0x4d, 0x67, 0x80, 0xdf, 0x55, 0x2b, 0x53, 0x2d, 0x55, 0x91, 0x16, 0x7d, 0xee,
- 0x00, 0xbf, 0x09, 0x4f, 0x2b, 0xaf, 0x69, 0x89, 0xf8, 0x29, 0xbb, 0x8f, 0xdf, 0x00, 0x27, 0x93,
- 0x17, 0xc4, 0x6f, 0xf9, 0x9d, 0x30, 0x8d, 0x23, 0x5e, 0x1c, 0x02, 0xc4, 0x21, 0xbb, 0x78, 0xb9,
- 0xc9, 0x78, 0x71, 0x00, 0x10, 0x07, 0x78, 0xf1, 0xc7, 0x38, 0x69, 0x9e, 0x43, 0xbc, 0x3a, 0x01,
- 0xa8, 0x13, 0x80, 0x1a, 0xf6, 0x0e, 0x02, 0xea, 0xa0, 0x45, 0xdd, 0x72, 0xf4, 0xce, 0x00, 0xea,
- 0x0c, 0xa0, 0x86, 0xbd, 0x09, 0xa0, 0x26, 0xbc, 0xfa, 0x13, 0x9c, 0xb2, 0x8c, 0x1c, 0x5e, 0x1e,
- 0x06, 0xe4, 0x61, 0xcb, 0x6f, 0xb3, 0x75, 0xd4, 0xf0, 0xfa, 0x14, 0xa0, 0x4f, 0x41, 0xf6, 0x70,
- 0xf7, 0x1b, 0x80, 0x7c, 0x03, 0xb4, 0x87, 0xf5, 0x69, 0x40, 0x9f, 0xe6, 0xf5, 0xbb, 0x38, 0xce,
- 0x4f, 0x15, 0x5e, 0x1b, 0x01, 0xb4, 0x11, 0xeb, 0x73, 0x37, 0x8d, 0x14, 0xaf, 0x9d, 0x1e, 0x75,
- 0x38, 0x2e, 0xa6, 0x31, 0xb2, 0x56, 0xb2, 0xf9, 0x06, 0x5f, 0x85, 0x86, 0x06, 0xc0, 0x28, 0xf1,
- 0x8c, 0x64, 0xf5, 0xaa, 0x69, 0x58, 0x30, 0xdd, 0x7c, 0xcc, 0x93, 0x4f, 0xf0, 0x15, 0x60, 0x74,
- 0x00, 0xe0, 0x2d, 0x1e, 0x1c, 0xab, 0xe6, 0x4c, 0x60, 0xd3, 0xff, 0x0a, 0x7c, 0xb4, 0xfa, 0xfb,
- 0x0a, 0x4e, 0x6a, 0x23, 0xea, 0x8b, 0x59, 0xb7, 0x37, 0xeb, 0x75, 0xc9, 0xf7, 0xce, 0x09, 0xab,
- 0x0a, 0x8d, 0x36, 0x4d, 0xb7, 0x46, 0xd0, 0x3a, 0x71, 0x0c, 0x5a, 0xdb, 0xab, 0x18, 0x78, 0xe5,
- 0xad, 0x43, 0x5b, 0xde, 0xba, 0xee, 0x86, 0x75, 0x8a, 0x5d, 0x87, 0xb6, 0xd8, 0xe5, 0x85, 0x01,
- 0xd3, 0x57, 0xdd, 0x9e, 0xbe, 0x4a, 0x6e, 0x1c, 0xe7, 0x10, 0x56, 0xb7, 0x87, 0x30, 0x4f, 0x12,
- 0x9c, 0xc5, 0xea, 0xf6, 0x2c, 0xe6, 0x4a, 0x72, 0x8e, 0x64, 0x75, 0x7b, 0x24, 0xf3, 0x24, 0xc1,
- 0xc9, 0xec, 0x3e, 0x90, 0xcc, 0x6e, 0xb8, 0xa1, 0xdc, 0x02, 0xda, 0x31, 0x14, 0xd0, 0x6e, 0xba,
- 0x36, 0xe6, 0x9a, 0xd3, 0xee, 0x03, 0x39, 0xcd, 0xbb, 0x39, 0x87, 0xb8, 0x76, 0x0c, 0xc5, 0xb5,
- 0x15, 0x9a, 0x73, 0x4a, 0x6d, 0x35, 0x6b, 0x6a, 0x2b, 0xba, 0xb1, 0xe0, 0xf0, 0x56, 0xb7, 0x87,
- 0xb7, 0x92, 0xf7, 0x59, 0x84, 0x32, 0xdc, 0x89, 0x63, 0x86, 0x5b, 0xe9, 0x70, 0x7b, 0x45, 0xb9,
- 0xef, 0x9c, 0xa2, 0xdc, 0xd6, 0x2a, 0x74, 0xf7, 0x44, 0xf7, 0xb5, 0x43, 0xa2, 0xab, 0xac, 0x82,
- 0xbe, 0x0c, 0x76, 0x97, 0xc1, 0xee, 0x32, 0xd8, 0x5d, 0x06, 0xbb, 0xff, 0x47, 0xb0, 0xdb, 0x0d,
- 0xfe, 0xf2, 0x6b, 0x1e, 0x95, 0xae, 0xe1, 0xb0, 0x66, 0x4d, 0x36, 0xb0, 0xbf, 0xb1, 0x97, 0xf6,
- 0xb1, 0xcf, 0x5a, 0x1a, 0xb1, 0xcf, 0xfd, 0xb4, 0xbf, 0xf6, 0xf9, 0xf9, 0x82, 0xfa, 0x9e, 0x2e,
- 0xa8, 0xef, 0xd9, 0x82, 0xfa, 0x5e, 0x2c, 0x28, 0x7a, 0xb9, 0xa0, 0xe8, 0xd5, 0x82, 0xa2, 0xd7,
- 0x0b, 0x8a, 0x9e, 0xc8, 0x14, 0xfd, 0x26, 0x53, 0xf4, 0xbb, 0x4c, 0xd1, 0x1f, 0x32, 0x45, 0x7f,
- 0xca, 0x14, 0x9d, 0xcb, 0x14, 0x3d, 0x95, 0x29, 0x7a, 0x21, 0x53, 0xf4, 0x52, 0xa6, 0xbe, 0x57,
- 0x32, 0x45, 0xaf, 0x65, 0xea, 0x7b, 0xf2, 0x0f, 0xf5, 0xfd, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xfa,
- 0x87, 0xd5, 0x9e, 0xf2, 0x16, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.pb.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.pb.go
index de7aaa19e8..0c4d6e7a37 100644
--- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.pb.go
@@ -3,27 +3,24 @@
package proto2_maps
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
-import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strconv "strconv"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-
-import encoding_binary "encoding/binary"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ github_com_gogo_protobuf_test "github.com/gogo/protobuf/test"
+ github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strconv "strconv"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -49,6 +46,7 @@ var MapEnum_name = map[int32]string{
1: "MB",
2: "MC",
}
+
var MapEnum_value = map[string]int32{
"MA": 0,
"MB": 1,
@@ -60,9 +58,11 @@ func (x MapEnum) Enum() *MapEnum {
*p = x
return p
}
+
func (x MapEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(MapEnum_name, int32(x))
}
+
func (x *MapEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(MapEnum_value, data, "MapEnum")
if err != nil {
@@ -71,8 +71,9 @@ func (x *MapEnum) UnmarshalJSON(data []byte) error {
*x = MapEnum(value)
return nil
}
+
func (MapEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_9bd23591ad6768d5, []int{0}
+ return fileDescriptor_67f0f1497f401c3f, []int{0}
}
type FloatingPoint struct {
@@ -85,7 +86,7 @@ type FloatingPoint struct {
func (m *FloatingPoint) Reset() { *m = FloatingPoint{} }
func (*FloatingPoint) ProtoMessage() {}
func (*FloatingPoint) Descriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_9bd23591ad6768d5, []int{0}
+ return fileDescriptor_67f0f1497f401c3f, []int{0}
}
func (m *FloatingPoint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FloatingPoint.Unmarshal(m, b)
@@ -102,8 +103,8 @@ func (m *FloatingPoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
return b[:n], nil
}
}
-func (dst *FloatingPoint) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FloatingPoint.Merge(dst, src)
+func (m *FloatingPoint) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FloatingPoint.Merge(m, src)
}
func (m *FloatingPoint) XXX_Size() int {
return m.Size()
@@ -127,7 +128,7 @@ type CustomMap struct {
func (m *CustomMap) Reset() { *m = CustomMap{} }
func (*CustomMap) ProtoMessage() {}
func (*CustomMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_9bd23591ad6768d5, []int{1}
+ return fileDescriptor_67f0f1497f401c3f, []int{1}
}
func (m *CustomMap) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomMap.Unmarshal(m, b)
@@ -144,8 +145,8 @@ func (m *CustomMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *CustomMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomMap.Merge(dst, src)
+func (m *CustomMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomMap.Merge(m, src)
}
func (m *CustomMap) XXX_Size() int {
return m.Size()
@@ -182,7 +183,7 @@ type AllMaps struct {
func (m *AllMaps) Reset() { *m = AllMaps{} }
func (*AllMaps) ProtoMessage() {}
func (*AllMaps) Descriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_9bd23591ad6768d5, []int{2}
+ return fileDescriptor_67f0f1497f401c3f, []int{2}
}
func (m *AllMaps) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AllMaps.Unmarshal(m, b)
@@ -199,8 +200,8 @@ func (m *AllMaps) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *AllMaps) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllMaps.Merge(dst, src)
+func (m *AllMaps) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllMaps.Merge(m, src)
}
func (m *AllMaps) XXX_Size() int {
return m.Size()
@@ -237,7 +238,7 @@ type AllMapsOrdered struct {
func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} }
func (*AllMapsOrdered) ProtoMessage() {}
func (*AllMapsOrdered) Descriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_9bd23591ad6768d5, []int{3}
+ return fileDescriptor_67f0f1497f401c3f, []int{3}
}
func (m *AllMapsOrdered) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AllMapsOrdered.Unmarshal(m, b)
@@ -250,8 +251,8 @@ func (m *AllMapsOrdered) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro
}
return b[:n], nil
}
-func (dst *AllMapsOrdered) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllMapsOrdered.Merge(dst, src)
+func (m *AllMapsOrdered) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllMapsOrdered.Merge(m, src)
}
func (m *AllMapsOrdered) XXX_Size() int {
return m.Size()
@@ -263,6 +264,7 @@ func (m *AllMapsOrdered) XXX_DiscardUnknown() {
var xxx_messageInfo_AllMapsOrdered proto.InternalMessageInfo
func init() {
+ proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value)
proto.RegisterType((*FloatingPoint)(nil), "proto2.maps.FloatingPoint")
proto.RegisterType((*CustomMap)(nil), "proto2.maps.CustomMap")
proto.RegisterMapType((map[string]github_com_gogo_protobuf_test.Uuid)(nil), "proto2.maps.CustomMap.IdsEntry")
@@ -305,8 +307,86 @@ func init() {
proto.RegisterMapType((map[string]*FloatingPoint)(nil), "proto2.maps.AllMapsOrdered.StringToMsgMapEntry")
proto.RegisterMapType((map[uint32]uint32)(nil), "proto2.maps.AllMapsOrdered.Uint32MapEntry")
proto.RegisterMapType((map[uint64]uint64)(nil), "proto2.maps.AllMapsOrdered.Uint64MapEntry")
- proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value)
}
+
+func init() { proto.RegisterFile("combos/marshaler/mapsproto2.proto", fileDescriptor_67f0f1497f401c3f) }
+
+var fileDescriptor_67f0f1497f401c3f = []byte{
+ // 1148 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x97, 0xcd, 0x6f, 0x1a, 0x47,
+ 0x18, 0xc6, 0x19, 0x30, 0x06, 0x86, 0xef, 0x89, 0x5b, 0x21, 0xa4, 0x0e, 0x36, 0xfd, 0x22, 0x24,
+ 0x05, 0x9b, 0x46, 0x91, 0xe5, 0xb4, 0xa9, 0x8c, 0xed, 0x14, 0x2b, 0xc5, 0x8d, 0xa0, 0xe9, 0x97,
+ 0x64, 0xa9, 0x60, 0x16, 0x82, 0x0a, 0x2c, 0x65, 0x97, 0xa8, 0xbe, 0x54, 0xf9, 0x33, 0x7a, 0xed,
+ 0xad, 0xc7, 0x1e, 0x7b, 0xec, 0xd1, 0x52, 0x2f, 0x39, 0x46, 0x51, 0x65, 0x85, 0xed, 0x25, 0xc7,
+ 0x1c, 0x73, 0xac, 0x76, 0x76, 0x17, 0x66, 0x77, 0xdf, 0xdd, 0x85, 0x9e, 0x72, 0xf0, 0x09, 0xcf,
+ 0xf2, 0x3e, 0xbf, 0xe7, 0xdd, 0xdd, 0x99, 0x97, 0xc7, 0x78, 0xeb, 0x4c, 0x1c, 0xb6, 0x45, 0xa9,
+ 0x3c, 0x6c, 0x4d, 0xa4, 0x47, 0xad, 0x81, 0x30, 0x29, 0x0f, 0x5b, 0x63, 0x69, 0x3c, 0x11, 0x65,
+ 0xb1, 0x52, 0x62, 0x1f, 0x24, 0xaa, 0xaf, 0xd4, 0x2f, 0xb2, 0x1f, 0xf5, 0xfa, 0xf2, 0xa3, 0x69,
+ 0xbb, 0x74, 0x26, 0x0e, 0xcb, 0x3d, 0xb1, 0x27, 0x96, 0xd9, 0x97, 0xed, 0x69, 0x97, 0xad, 0xd8,
+ 0x82, 0xfd, 0xa5, 0x69, 0xf3, 0xef, 0xe0, 0xf8, 0xbd, 0x81, 0xd8, 0x92, 0xfb, 0xa3, 0xde, 0x03,
+ 0xb1, 0x3f, 0x92, 0x49, 0x0c, 0xa3, 0x6e, 0x06, 0x6d, 0xa2, 0x02, 0x6a, 0xa0, 0x6e, 0xfe, 0xef,
+ 0x20, 0x8e, 0x1c, 0x4c, 0x25, 0x59, 0x1c, 0xd6, 0x5b, 0x63, 0xf2, 0x0b, 0x8e, 0x9d, 0x4c, 0x07,
+ 0x83, 0x56, 0x7b, 0x20, 0xec, 0x54, 0x76, 0xa5, 0x0c, 0xda, 0x0c, 0x14, 0xa2, 0x95, 0x42, 0x89,
+ 0xf3, 0x2f, 0xcd, 0xab, 0x4b, 0x7c, 0xe9, 0xd1, 0x48, 0x9e, 0x9c, 0x57, 0xb7, 0x9f, 0x5f, 0xe6,
+ 0x6e, 0x3a, 0xf6, 0x27, 0x0b, 0x92, 0x5c, 0x3e, 0x63, 0xf2, 0xd2, 0xc3, 0xfe, 0x48, 0xde, 0xa9,
+ 0xec, 0x36, 0x4c, 0x7e, 0xe4, 0x31, 0x0e, 0xeb, 0x5f, 0x48, 0x19, 0x3f, 0xf3, 0x7e, 0xcf, 0xc1,
+ 0xdb, 0x28, 0xd3, 0x7c, 0x6f, 0x5d, 0x5c, 0xe6, 0x7c, 0x2b, 0x7b, 0xcf, 0xbd, 0xc8, 0x4f, 0x38,
+ 0x6a, 0xf4, 0x71, 0xdc, 0x91, 0x32, 0x01, 0x66, 0xfd, 0xa1, 0xc7, 0x6d, 0x1f, 0x77, 0x74, 0xf7,
+ 0x0f, 0x9e, 0x5f, 0xe6, 0xf2, 0xae, 0xce, 0xa5, 0x87, 0xd3, 0x7e, 0xa7, 0xc1, 0x7b, 0x90, 0x53,
+ 0x1c, 0x50, 0xad, 0xd6, 0x98, 0x55, 0xce, 0xc1, 0x6a, 0x6e, 0x51, 0xd4, 0x6f, 0x70, 0x19, 0x1b,
+ 0x95, 0x9b, 0xfd, 0x0c, 0xa7, 0x6d, 0xaf, 0x87, 0xa4, 0x70, 0xe0, 0x47, 0xe1, 0x9c, 0xbd, 0xfc,
+ 0x48, 0x43, 0xfd, 0x93, 0x6c, 0xe0, 0xe0, 0xe3, 0xd6, 0x60, 0x2a, 0x64, 0xfc, 0x9b, 0xa8, 0x10,
+ 0x6b, 0x68, 0x8b, 0x3d, 0xff, 0x2e, 0xca, 0xde, 0xc1, 0x71, 0xd3, 0x33, 0x5e, 0x49, 0x7c, 0x17,
+ 0xa7, 0xac, 0x4f, 0x69, 0x25, 0xfd, 0x6d, 0x1c, 0xfe, 0x3f, 0xba, 0xfc, 0x33, 0x82, 0x43, 0xfb,
+ 0x83, 0x41, 0xbd, 0x35, 0x96, 0xc8, 0x77, 0x38, 0xdd, 0x94, 0x27, 0xfd, 0x51, 0xef, 0x2b, 0xf1,
+ 0x50, 0x9c, 0xb6, 0x07, 0x42, 0xbd, 0x35, 0xd6, 0x37, 0xf4, 0x0d, 0xd3, 0xe3, 0xd6, 0x05, 0x25,
+ 0x5b, 0x35, 0xf3, 0x6f, 0xd8, 0x29, 0xe4, 0x6b, 0x9c, 0x32, 0x2e, 0xb2, 0xb3, 0xa5, 0x92, 0xb5,
+ 0xed, 0x5a, 0x74, 0x25, 0x1b, 0xc5, 0x1a, 0xd8, 0xc6, 0x20, 0x77, 0x71, 0xf8, 0x78, 0x24, 0x7f,
+ 0x5c, 0x51, 0x79, 0xda, 0x1e, 0xcc, 0x83, 0x3c, 0xa3, 0x48, 0xe3, 0xcc, 0x35, 0xba, 0xfe, 0xf6,
+ 0x2d, 0x55, 0xbf, 0xe6, 0xae, 0x67, 0x45, 0x0b, 0x3d, 0x5b, 0x92, 0x7d, 0x1c, 0x51, 0xdf, 0xb9,
+ 0xd6, 0x40, 0x90, 0x01, 0xde, 0x05, 0x01, 0xf3, 0x2a, 0x8d, 0xb0, 0x50, 0x19, 0x08, 0xad, 0x87,
+ 0x75, 0x0f, 0x04, 0xd7, 0xc4, 0x42, 0xa5, 0x22, 0x9a, 0xf3, 0x2e, 0x42, 0x2e, 0x88, 0xa6, 0xa5,
+ 0x8b, 0x26, 0xdf, 0x45, 0x73, 0xde, 0x45, 0xd8, 0x03, 0xc1, 0x77, 0x31, 0x5f, 0x93, 0x43, 0x8c,
+ 0xef, 0xf5, 0x7f, 0x16, 0x3a, 0x5a, 0x1b, 0x11, 0x60, 0x18, 0x19, 0x8c, 0x45, 0x99, 0x06, 0xe1,
+ 0x74, 0xe4, 0x73, 0x1c, 0x6d, 0x76, 0x17, 0x18, 0xcc, 0x30, 0xef, 0xc3, 0xad, 0x74, 0x2d, 0x1c,
+ 0x5e, 0x39, 0x6f, 0x47, 0xbb, 0xa5, 0xa8, 0x57, 0x3b, 0xdc, 0x3d, 0x71, 0xba, 0x45, 0x3b, 0x1a,
+ 0x26, 0xe6, 0xd9, 0x0e, 0xc7, 0xe1, 0x95, 0xe4, 0x0e, 0x0e, 0x55, 0x45, 0x51, 0xad, 0xcc, 0xc4,
+ 0x19, 0x64, 0x0b, 0x84, 0xe8, 0x35, 0x1a, 0xc0, 0x50, 0xb0, 0xb7, 0xc3, 0xb6, 0xbe, 0x2a, 0x4f,
+ 0xb8, 0xbd, 0x1d, 0xa3, 0xca, 0x78, 0x3b, 0xc6, 0x9a, 0x3f, 0x81, 0xd5, 0x73, 0x59, 0x90, 0x54,
+ 0x52, 0x72, 0x89, 0x13, 0x68, 0x14, 0x5b, 0x4e, 0xa0, 0x71, 0x99, 0x34, 0x71, 0xd2, 0xb8, 0x76,
+ 0x34, 0x9a, 0xaa, 0x33, 0x38, 0x93, 0x62, 0xd8, 0xeb, 0xae, 0x58, 0xbd, 0x56, 0xa3, 0x5a, 0x09,
+ 0xe4, 0x01, 0x4e, 0x18, 0x97, 0xea, 0x12, 0xbb, 0xe9, 0x34, 0xf0, 0xbb, 0x6a, 0x65, 0x6a, 0xa5,
+ 0x1a, 0xd2, 0xa2, 0xcf, 0x1e, 0xe2, 0xb7, 0xe1, 0x69, 0xe5, 0x35, 0x2d, 0x11, 0x3f, 0x65, 0x0f,
+ 0xf0, 0x5b, 0xe0, 0x64, 0xf2, 0x82, 0xf8, 0x2d, 0xbf, 0x13, 0xa6, 0x71, 0xc4, 0x8b, 0x83, 0x80,
+ 0x38, 0x68, 0x17, 0x2f, 0x36, 0x19, 0x2f, 0x0e, 0x00, 0xe2, 0x00, 0x2f, 0xfe, 0x04, 0x27, 0xcc,
+ 0x73, 0x88, 0x57, 0xc7, 0x01, 0x75, 0x1c, 0x50, 0xc3, 0xde, 0x6b, 0x80, 0x7a, 0xcd, 0xa2, 0x6e,
+ 0x3a, 0x7a, 0xa7, 0x01, 0x75, 0x1a, 0x50, 0xc3, 0xde, 0x04, 0x50, 0x13, 0x5e, 0xfd, 0x29, 0x4e,
+ 0x5a, 0x46, 0x0e, 0x2f, 0x0f, 0x01, 0xf2, 0x90, 0xe5, 0xb7, 0xd9, 0x3a, 0x6a, 0x78, 0x7d, 0x12,
+ 0xd0, 0x27, 0x21, 0x7b, 0xb8, 0xfb, 0x75, 0x40, 0xbe, 0x0e, 0xda, 0xc3, 0xfa, 0x14, 0xa0, 0x4f,
+ 0xf1, 0xfa, 0x3d, 0x1c, 0xe3, 0xa7, 0x0a, 0xaf, 0x0d, 0x03, 0xda, 0xb0, 0xf5, 0xb9, 0x9b, 0x46,
+ 0x8a, 0xd7, 0x4e, 0x8f, 0x38, 0x1c, 0x17, 0xd3, 0x18, 0x59, 0x29, 0xd9, 0x7c, 0x8b, 0x37, 0xa0,
+ 0xa1, 0x01, 0x30, 0x8a, 0x3c, 0x23, 0x51, 0xd9, 0x30, 0x0d, 0x0b, 0xa6, 0x9b, 0x0e, 0x79, 0xf2,
+ 0x29, 0xbe, 0x06, 0x8c, 0x0e, 0x00, 0xbc, 0xcd, 0x83, 0xa3, 0x95, 0xac, 0x09, 0x6c, 0xfa, 0x5f,
+ 0x81, 0x8f, 0x56, 0xff, 0x5c, 0xc3, 0x09, 0x7d, 0x44, 0x7d, 0x39, 0xe9, 0x08, 0x13, 0xa1, 0x43,
+ 0x7e, 0x70, 0x4e, 0x58, 0x15, 0x68, 0xb4, 0xe9, 0xba, 0x15, 0x82, 0xd6, 0xa9, 0x63, 0xd0, 0xda,
+ 0x59, 0xc6, 0xc0, 0x2b, 0x6f, 0x1d, 0xd9, 0xf2, 0xd6, 0x75, 0x37, 0xac, 0x53, 0xec, 0x3a, 0xb2,
+ 0xc5, 0x2e, 0x2f, 0x0c, 0x98, 0xbe, 0x6a, 0xf6, 0xf4, 0x55, 0x74, 0xe3, 0x38, 0x87, 0xb0, 0x9a,
+ 0x3d, 0x84, 0x79, 0x92, 0xe0, 0x2c, 0x56, 0xb3, 0x67, 0x31, 0x57, 0x92, 0x73, 0x24, 0xab, 0xd9,
+ 0x23, 0x99, 0x27, 0x09, 0x4e, 0x66, 0xf7, 0x81, 0x64, 0x76, 0xc3, 0x0d, 0xe5, 0x16, 0xd0, 0x4e,
+ 0xa0, 0x80, 0x76, 0xd3, 0xb5, 0x31, 0xd7, 0x9c, 0x76, 0x1f, 0xc8, 0x69, 0xde, 0xcd, 0x39, 0xc4,
+ 0xb5, 0x13, 0x28, 0xae, 0x2d, 0xd1, 0x9c, 0x53, 0x6a, 0xab, 0x5a, 0x53, 0x5b, 0xc1, 0x8d, 0x05,
+ 0x87, 0xb7, 0x9a, 0x3d, 0xbc, 0x15, 0xbd, 0xcf, 0x22, 0x94, 0xe1, 0x4e, 0x1d, 0x33, 0xdc, 0x52,
+ 0x87, 0xdb, 0x2b, 0xca, 0x7d, 0xef, 0x14, 0xe5, 0xb6, 0x97, 0xa1, 0xbb, 0x27, 0xba, 0x6f, 0x1c,
+ 0x12, 0x5d, 0x79, 0x19, 0xf4, 0x55, 0xb0, 0xbb, 0x0a, 0x76, 0x57, 0xc1, 0xee, 0x2a, 0xd8, 0xbd,
+ 0x19, 0xc1, 0x6e, 0x6f, 0xed, 0xd7, 0xdf, 0x72, 0xa8, 0xb8, 0x85, 0x43, 0xba, 0x35, 0x59, 0xc7,
+ 0xfe, 0xfa, 0x7e, 0xca, 0xc7, 0x3e, 0xab, 0x29, 0xc4, 0x3e, 0x0f, 0x52, 0xfe, 0xea, 0x17, 0x17,
+ 0x33, 0xea, 0x7b, 0x3a, 0xa3, 0xbe, 0x67, 0x33, 0xea, 0x7b, 0x31, 0xa3, 0xe8, 0xe5, 0x8c, 0xa2,
+ 0x57, 0x33, 0x8a, 0x5e, 0xcf, 0x28, 0x7a, 0xa2, 0x50, 0xf4, 0xbb, 0x42, 0xd1, 0x1f, 0x0a, 0x45,
+ 0x7f, 0x2a, 0x14, 0xfd, 0xa5, 0x50, 0x74, 0xa1, 0x50, 0xf4, 0x54, 0xa1, 0xbe, 0x17, 0x0a, 0x45,
+ 0x2f, 0x15, 0xea, 0x7b, 0xa5, 0x50, 0xf4, 0x5a, 0xa1, 0xbe, 0x27, 0xff, 0x52, 0xdf, 0x7f, 0x01,
+ 0x00, 0x00, 0xff, 0xff, 0xec, 0x4e, 0x18, 0x12, 0xf7, 0x16, 0x00, 0x00,
+}
+
func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return Mapsproto2Description()
}
@@ -322,222 +402,224 @@ func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc
func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4797 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7b, 0x5b, 0x6c, 0x23, 0xd7,
- 0x79, 0xbf, 0x86, 0x17, 0x89, 0xfc, 0x48, 0x51, 0xa3, 0x91, 0xbc, 0xa6, 0x95, 0x58, 0xbb, 0x2b,
- 0xdf, 0xe4, 0x5d, 0x5b, 0xb2, 0xe5, 0xdd, 0xf5, 0x9a, 0x1b, 0xdb, 0x7f, 0x4a, 0xe2, 0x6a, 0x65,
- 0xeb, 0x96, 0xa1, 0xe4, 0x5b, 0x60, 0xcc, 0x7f, 0x34, 0x3c, 0xa2, 0xc6, 0x4b, 0xce, 0xd0, 0x33,
- 0xc3, 0x5d, 0xcb, 0x28, 0x8a, 0x2d, 0xdc, 0x0b, 0x82, 0xa2, 0xf7, 0x02, 0x75, 0x5c, 0xc7, 0xad,
- 0x53, 0x34, 0x4e, 0xd3, 0x5b, 0xd2, 0xb4, 0x69, 0x92, 0xbe, 0xe4, 0x25, 0xad, 0x81, 0x02, 0x45,
- 0xf2, 0x16, 0x04, 0x81, 0xe1, 0x55, 0x0c, 0xd4, 0x6d, 0xdd, 0xc6, 0x6d, 0x0d, 0xd4, 0x80, 0x5f,
- 0x8a, 0x73, 0x1b, 0x9e, 0x19, 0x0e, 0x39, 0x94, 0x01, 0x3b, 0x7d, 0xf0, 0xd3, 0x6a, 0xce, 0xf9,
- 0x7e, 0xbf, 0xf3, 0xcd, 0x77, 0xbe, 0xf3, 0x9d, 0xdf, 0x39, 0xc3, 0x85, 0x9f, 0x3e, 0x00, 0x27,
- 0xea, 0xb6, 0x5d, 0x6f, 0xa0, 0xf9, 0x96, 0x63, 0x7b, 0xf6, 0x6e, 0x7b, 0x6f, 0xbe, 0x86, 0x5c,
- 0xc3, 0x31, 0x5b, 0x9e, 0xed, 0xcc, 0x91, 0x36, 0x65, 0x8c, 0x5a, 0xcc, 0x71, 0x8b, 0x99, 0x75,
- 0x18, 0xbf, 0x68, 0x36, 0xd0, 0xb2, 0x6f, 0x58, 0x45, 0x9e, 0x72, 0x1e, 0x52, 0x7b, 0x66, 0x03,
- 0x15, 0xa5, 0x13, 0xc9, 0xd9, 0xdc, 0xc2, 0xad, 0x73, 0x21, 0xd0, 0x5c, 0x10, 0xb1, 0x85, 0x9b,
- 0x55, 0x82, 0x98, 0x79, 0x2b, 0x05, 0x13, 0x11, 0xbd, 0x8a, 0x02, 0x29, 0x4b, 0x6f, 0x62, 0x46,
- 0x69, 0x36, 0xab, 0x92, 0xbf, 0x95, 0x22, 0x8c, 0xb4, 0x74, 0xe3, 0xb2, 0x5e, 0x47, 0xc5, 0x04,
- 0x69, 0xe6, 0x8f, 0xca, 0x34, 0x40, 0x0d, 0xb5, 0x90, 0x55, 0x43, 0x96, 0x71, 0x50, 0x4c, 0x9e,
- 0x48, 0xce, 0x66, 0x55, 0xa1, 0x45, 0x39, 0x0d, 0xe3, 0xad, 0xf6, 0x6e, 0xc3, 0x34, 0x34, 0xc1,
- 0x0c, 0x4e, 0x24, 0x67, 0xd3, 0xaa, 0x4c, 0x3b, 0x96, 0x3b, 0xc6, 0x77, 0xc0, 0xd8, 0x55, 0xa4,
- 0x5f, 0x16, 0x4d, 0x73, 0xc4, 0xb4, 0x80, 0x9b, 0x05, 0xc3, 0x25, 0xc8, 0x37, 0x91, 0xeb, 0xea,
- 0x75, 0xa4, 0x79, 0x07, 0x2d, 0x54, 0x4c, 0x91, 0xb7, 0x3f, 0xd1, 0xf5, 0xf6, 0xe1, 0x37, 0xcf,
- 0x31, 0xd4, 0xf6, 0x41, 0x0b, 0x29, 0x65, 0xc8, 0x22, 0xab, 0xdd, 0xa4, 0x0c, 0xe9, 0x1e, 0xf1,
- 0xab, 0x58, 0xed, 0x66, 0x98, 0x25, 0x83, 0x61, 0x8c, 0x62, 0xc4, 0x45, 0xce, 0x15, 0xd3, 0x40,
- 0xc5, 0x61, 0x42, 0x70, 0x47, 0x17, 0x41, 0x95, 0xf6, 0x87, 0x39, 0x38, 0x4e, 0x59, 0x82, 0x2c,
- 0x7a, 0xce, 0x43, 0x96, 0x6b, 0xda, 0x56, 0x71, 0x84, 0x90, 0xdc, 0x16, 0x31, 0x8b, 0xa8, 0x51,
- 0x0b, 0x53, 0x74, 0x70, 0xca, 0x39, 0x18, 0xb1, 0x5b, 0x9e, 0x69, 0x5b, 0x6e, 0x31, 0x73, 0x42,
- 0x9a, 0xcd, 0x2d, 0x7c, 0x3a, 0x32, 0x11, 0x36, 0xa9, 0x8d, 0xca, 0x8d, 0x95, 0x55, 0x90, 0x5d,
- 0xbb, 0xed, 0x18, 0x48, 0x33, 0xec, 0x1a, 0xd2, 0x4c, 0x6b, 0xcf, 0x2e, 0x66, 0x09, 0xc1, 0xf1,
- 0xee, 0x17, 0x21, 0x86, 0x4b, 0x76, 0x0d, 0xad, 0x5a, 0x7b, 0xb6, 0x5a, 0x70, 0x03, 0xcf, 0xca,
- 0x31, 0x18, 0x76, 0x0f, 0x2c, 0x4f, 0x7f, 0xae, 0x98, 0x27, 0x19, 0xc2, 0x9e, 0x66, 0xbe, 0x3d,
- 0x0c, 0x63, 0x83, 0xa4, 0xd8, 0x05, 0x48, 0xef, 0xe1, 0xb7, 0x2c, 0x26, 0x8e, 0x12, 0x03, 0x8a,
- 0x09, 0x06, 0x71, 0xf8, 0x43, 0x06, 0xb1, 0x0c, 0x39, 0x0b, 0xb9, 0x1e, 0xaa, 0xd1, 0x8c, 0x48,
- 0x0e, 0x98, 0x53, 0x40, 0x41, 0xdd, 0x29, 0x95, 0xfa, 0x50, 0x29, 0xf5, 0x04, 0x8c, 0xf9, 0x2e,
- 0x69, 0x8e, 0x6e, 0xd5, 0x79, 0x6e, 0xce, 0xc7, 0x79, 0x32, 0x57, 0xe1, 0x38, 0x15, 0xc3, 0xd4,
- 0x02, 0x0a, 0x3c, 0x2b, 0xcb, 0x00, 0xb6, 0x85, 0xec, 0x3d, 0xad, 0x86, 0x8c, 0x46, 0x31, 0xd3,
- 0x23, 0x4a, 0x9b, 0xd8, 0xa4, 0x2b, 0x4a, 0x36, 0x6d, 0x35, 0x1a, 0xca, 0x03, 0x9d, 0x54, 0x1b,
- 0xe9, 0x91, 0x29, 0xeb, 0x74, 0x91, 0x75, 0x65, 0xdb, 0x0e, 0x14, 0x1c, 0x84, 0xf3, 0x1e, 0xd5,
- 0xd8, 0x9b, 0x65, 0x89, 0x13, 0x73, 0xb1, 0x6f, 0xa6, 0x32, 0x18, 0x7d, 0xb1, 0x51, 0x47, 0x7c,
- 0x54, 0x6e, 0x01, 0xbf, 0x41, 0x23, 0x69, 0x05, 0xa4, 0x0a, 0xe5, 0x79, 0xe3, 0x86, 0xde, 0x44,
- 0x53, 0xcf, 0x43, 0x21, 0x18, 0x1e, 0x65, 0x12, 0xd2, 0xae, 0xa7, 0x3b, 0x1e, 0xc9, 0xc2, 0xb4,
- 0x4a, 0x1f, 0x14, 0x19, 0x92, 0xc8, 0xaa, 0x91, 0x2a, 0x97, 0x56, 0xf1, 0x9f, 0xca, 0xff, 0xeb,
- 0xbc, 0x70, 0x92, 0xbc, 0xf0, 0xed, 0xdd, 0x33, 0x1a, 0x60, 0x0e, 0xbf, 0xf7, 0xd4, 0xfd, 0x30,
- 0x1a, 0x78, 0x81, 0x41, 0x87, 0x9e, 0xf9, 0x39, 0xb8, 0x21, 0x92, 0x5a, 0x79, 0x02, 0x26, 0xdb,
- 0x96, 0x69, 0x79, 0xc8, 0x69, 0x39, 0x08, 0x67, 0x2c, 0x1d, 0xaa, 0xf8, 0xcf, 0x23, 0x3d, 0x72,
- 0x6e, 0x47, 0xb4, 0xa6, 0x2c, 0xea, 0x44, 0xbb, 0xbb, 0xf1, 0x54, 0x36, 0xf3, 0xf6, 0x88, 0x7c,
- 0xed, 0xda, 0xb5, 0x6b, 0x89, 0x99, 0x17, 0x87, 0x61, 0x32, 0x6a, 0xcd, 0x44, 0x2e, 0xdf, 0x63,
- 0x30, 0x6c, 0xb5, 0x9b, 0xbb, 0xc8, 0x21, 0x41, 0x4a, 0xab, 0xec, 0x49, 0x29, 0x43, 0xba, 0xa1,
- 0xef, 0xa2, 0x46, 0x31, 0x75, 0x42, 0x9a, 0x2d, 0x2c, 0x9c, 0x1e, 0x68, 0x55, 0xce, 0xad, 0x61,
- 0x88, 0x4a, 0x91, 0xca, 0x43, 0x90, 0x62, 0x25, 0x1a, 0x33, 0x9c, 0x1a, 0x8c, 0x01, 0xaf, 0x25,
- 0x95, 0xe0, 0x94, 0x4f, 0x41, 0x16, 0xff, 0x4b, 0x73, 0x63, 0x98, 0xf8, 0x9c, 0xc1, 0x0d, 0x38,
- 0x2f, 0x94, 0x29, 0xc8, 0x90, 0x65, 0x52, 0x43, 0x7c, 0x6b, 0xf3, 0x9f, 0x71, 0x62, 0xd5, 0xd0,
- 0x9e, 0xde, 0x6e, 0x78, 0xda, 0x15, 0xbd, 0xd1, 0x46, 0x24, 0xe1, 0xb3, 0x6a, 0x9e, 0x35, 0x3e,
- 0x86, 0xdb, 0x94, 0xe3, 0x90, 0xa3, 0xab, 0xca, 0xb4, 0x6a, 0xe8, 0x39, 0x52, 0x3d, 0xd3, 0x2a,
- 0x5d, 0x68, 0xab, 0xb8, 0x05, 0x0f, 0xff, 0x8c, 0x6b, 0x5b, 0x3c, 0x35, 0xc9, 0x10, 0xb8, 0x81,
- 0x0c, 0x7f, 0x7f, 0xb8, 0x70, 0xdf, 0x1c, 0xfd, 0x7a, 0xe1, 0x9c, 0x9a, 0xf9, 0x66, 0x02, 0x52,
- 0xa4, 0x5e, 0x8c, 0x41, 0x6e, 0xfb, 0xc9, 0xad, 0x8a, 0xb6, 0xbc, 0xb9, 0xb3, 0xb8, 0x56, 0x91,
- 0x25, 0xa5, 0x00, 0x40, 0x1a, 0x2e, 0xae, 0x6d, 0x96, 0xb7, 0xe5, 0x84, 0xff, 0xbc, 0xba, 0xb1,
- 0x7d, 0xee, 0x8c, 0x9c, 0xf4, 0x01, 0x3b, 0xb4, 0x21, 0x25, 0x1a, 0xdc, 0xb7, 0x20, 0xa7, 0x15,
- 0x19, 0xf2, 0x94, 0x60, 0xf5, 0x89, 0xca, 0xf2, 0xb9, 0x33, 0xf2, 0x70, 0xb0, 0xe5, 0xbe, 0x05,
- 0x79, 0x44, 0x19, 0x85, 0x2c, 0x69, 0x59, 0xdc, 0xdc, 0x5c, 0x93, 0x33, 0x3e, 0x67, 0x75, 0x5b,
- 0x5d, 0xdd, 0x58, 0x91, 0xb3, 0x3e, 0xe7, 0x8a, 0xba, 0xb9, 0xb3, 0x25, 0x83, 0xcf, 0xb0, 0x5e,
- 0xa9, 0x56, 0xcb, 0x2b, 0x15, 0x39, 0xe7, 0x5b, 0x2c, 0x3e, 0xb9, 0x5d, 0xa9, 0xca, 0xf9, 0x80,
- 0x5b, 0xf7, 0x2d, 0xc8, 0xa3, 0xfe, 0x10, 0x95, 0x8d, 0x9d, 0x75, 0xb9, 0xa0, 0x8c, 0xc3, 0x28,
- 0x1d, 0x82, 0x3b, 0x31, 0x16, 0x6a, 0x3a, 0x77, 0x46, 0x96, 0x3b, 0x8e, 0x50, 0x96, 0xf1, 0x40,
- 0xc3, 0xb9, 0x33, 0xb2, 0x32, 0xb3, 0x04, 0x69, 0x92, 0x5d, 0x8a, 0x02, 0x85, 0xb5, 0xf2, 0x62,
- 0x65, 0x4d, 0xdb, 0xdc, 0xda, 0x5e, 0xdd, 0xdc, 0x28, 0xaf, 0xc9, 0x52, 0xa7, 0x4d, 0xad, 0x7c,
- 0x76, 0x67, 0x55, 0xad, 0x2c, 0xcb, 0x09, 0xb1, 0x6d, 0xab, 0x52, 0xde, 0xae, 0x2c, 0xcb, 0xc9,
- 0x19, 0x03, 0x26, 0xa3, 0xea, 0x64, 0xe4, 0xca, 0x10, 0xa6, 0x38, 0xd1, 0x63, 0x8a, 0x09, 0x57,
- 0xd7, 0x14, 0xff, 0x24, 0x01, 0x13, 0x11, 0x7b, 0x45, 0xe4, 0x20, 0x0f, 0x43, 0x9a, 0xa6, 0x28,
- 0xdd, 0x3d, 0xef, 0x8c, 0xdc, 0x74, 0x48, 0xc2, 0x76, 0xed, 0xa0, 0x04, 0x27, 0x2a, 0x88, 0x64,
- 0x0f, 0x05, 0x81, 0x29, 0xba, 0x6a, 0xfa, 0xd3, 0x5d, 0x35, 0x9d, 0x6e, 0x7b, 0xe7, 0x06, 0xd9,
- 0xf6, 0x48, 0xdb, 0xd1, 0x6a, 0x7b, 0x3a, 0xa2, 0xb6, 0x5f, 0x80, 0xf1, 0x2e, 0xa2, 0x81, 0x6b,
- 0xec, 0x0b, 0x12, 0x14, 0x7b, 0x05, 0x27, 0xa6, 0xd2, 0x25, 0x02, 0x95, 0xee, 0x42, 0x38, 0x82,
- 0x27, 0x7b, 0x4f, 0x42, 0xd7, 0x5c, 0xbf, 0x26, 0xc1, 0xb1, 0x68, 0xa5, 0x18, 0xe9, 0xc3, 0x43,
- 0x30, 0xdc, 0x44, 0xde, 0xbe, 0xcd, 0xd5, 0xd2, 0xed, 0x11, 0x7b, 0x30, 0xee, 0x0e, 0x4f, 0x36,
- 0x43, 0x89, 0x9b, 0x78, 0xb2, 0x97, 0xdc, 0xa3, 0xde, 0x74, 0x79, 0xfa, 0xf9, 0x04, 0xdc, 0x10,
- 0x49, 0x1e, 0xe9, 0xe8, 0xcd, 0x00, 0xa6, 0xd5, 0x6a, 0x7b, 0x54, 0x11, 0xd1, 0x02, 0x9b, 0x25,
- 0x2d, 0xa4, 0x78, 0xe1, 0xe2, 0xd9, 0xf6, 0xfc, 0xfe, 0x24, 0xe9, 0x07, 0xda, 0x44, 0x0c, 0xce,
- 0x77, 0x1c, 0x4d, 0x11, 0x47, 0xa7, 0x7b, 0xbc, 0x69, 0x57, 0x62, 0xde, 0x03, 0xb2, 0xd1, 0x30,
- 0x91, 0xe5, 0x69, 0xae, 0xe7, 0x20, 0xbd, 0x69, 0x5a, 0x75, 0xb2, 0x83, 0x64, 0x4a, 0xe9, 0x3d,
- 0xbd, 0xe1, 0x22, 0x75, 0x8c, 0x76, 0x57, 0x79, 0x2f, 0x46, 0x90, 0x04, 0x72, 0x04, 0xc4, 0x70,
- 0x00, 0x41, 0xbb, 0x7d, 0xc4, 0xcc, 0x37, 0x32, 0x90, 0x13, 0x74, 0xb5, 0x72, 0x12, 0xf2, 0xcf,
- 0xe8, 0x57, 0x74, 0x8d, 0x9f, 0x95, 0x68, 0x24, 0x72, 0xb8, 0x6d, 0x8b, 0x9d, 0x97, 0xee, 0x81,
- 0x49, 0x62, 0x62, 0xb7, 0x3d, 0xe4, 0x68, 0x46, 0x43, 0x77, 0x5d, 0x12, 0xb4, 0x0c, 0x31, 0x55,
- 0x70, 0xdf, 0x26, 0xee, 0x5a, 0xe2, 0x3d, 0xca, 0x59, 0x98, 0x20, 0x88, 0x66, 0xbb, 0xe1, 0x99,
- 0xad, 0x06, 0xd2, 0xf0, 0xe9, 0xcd, 0x25, 0x3b, 0x89, 0xef, 0xd9, 0x38, 0xb6, 0x58, 0x67, 0x06,
- 0xd8, 0x23, 0x57, 0x59, 0x86, 0x9b, 0x09, 0xac, 0x8e, 0x2c, 0xe4, 0xe8, 0x1e, 0xd2, 0xd0, 0xb3,
- 0x6d, 0xbd, 0xe1, 0x6a, 0xba, 0x55, 0xd3, 0xf6, 0x75, 0x77, 0xbf, 0x38, 0x89, 0x09, 0x16, 0x13,
- 0x45, 0x49, 0xbd, 0x09, 0x1b, 0xae, 0x30, 0xbb, 0x0a, 0x31, 0x2b, 0x5b, 0xb5, 0x4b, 0xba, 0xbb,
- 0xaf, 0x94, 0xe0, 0x18, 0x61, 0x71, 0x3d, 0xc7, 0xb4, 0xea, 0x9a, 0xb1, 0x8f, 0x8c, 0xcb, 0x5a,
- 0xdb, 0xdb, 0x3b, 0x5f, 0xfc, 0x94, 0x38, 0x3e, 0xf1, 0xb0, 0x4a, 0x6c, 0x96, 0xb0, 0xc9, 0x8e,
- 0xb7, 0x77, 0x5e, 0xa9, 0x42, 0x1e, 0x4f, 0x46, 0xd3, 0x7c, 0x1e, 0x69, 0x7b, 0xb6, 0x43, 0xb6,
- 0xc6, 0x42, 0x44, 0x69, 0x12, 0x22, 0x38, 0xb7, 0xc9, 0x00, 0xeb, 0x76, 0x0d, 0x95, 0xd2, 0xd5,
- 0xad, 0x4a, 0x65, 0x59, 0xcd, 0x71, 0x96, 0x8b, 0xb6, 0x83, 0x13, 0xaa, 0x6e, 0xfb, 0x01, 0xce,
- 0xd1, 0x84, 0xaa, 0xdb, 0x3c, 0xbc, 0x67, 0x61, 0xc2, 0x30, 0xe8, 0x3b, 0x9b, 0x86, 0xc6, 0xce,
- 0x58, 0x6e, 0x51, 0x0e, 0x04, 0xcb, 0x30, 0x56, 0xa8, 0x01, 0xcb, 0x71, 0x57, 0x79, 0x00, 0x6e,
- 0xe8, 0x04, 0x4b, 0x04, 0x8e, 0x77, 0xbd, 0x65, 0x18, 0x7a, 0x16, 0x26, 0x5a, 0x07, 0xdd, 0x40,
- 0x25, 0x30, 0x62, 0xeb, 0x20, 0x0c, 0xbb, 0x1f, 0x26, 0x5b, 0xfb, 0xad, 0x6e, 0xdc, 0x29, 0x11,
- 0xa7, 0xb4, 0xf6, 0x5b, 0x61, 0xe0, 0x6d, 0xe4, 0xc0, 0xed, 0x20, 0x43, 0xf7, 0x50, 0xad, 0x78,
- 0xa3, 0x68, 0x2e, 0x74, 0x28, 0xf3, 0x20, 0x1b, 0x86, 0x86, 0x2c, 0x7d, 0xb7, 0x81, 0x34, 0xdd,
- 0x41, 0x96, 0xee, 0x16, 0x8f, 0x8b, 0xc6, 0x05, 0xc3, 0xa8, 0x90, 0xde, 0x32, 0xe9, 0x54, 0x4e,
- 0xc1, 0xb8, 0xbd, 0xfb, 0x8c, 0x41, 0x53, 0x52, 0x6b, 0x39, 0x68, 0xcf, 0x7c, 0xae, 0x78, 0x2b,
- 0x89, 0xef, 0x18, 0xee, 0x20, 0x09, 0xb9, 0x45, 0x9a, 0x95, 0x3b, 0x41, 0x36, 0xdc, 0x7d, 0xdd,
- 0x69, 0x91, 0x9a, 0xec, 0xb6, 0x74, 0x03, 0x15, 0x6f, 0xa3, 0xa6, 0xb4, 0x7d, 0x83, 0x37, 0xe3,
- 0x25, 0xe1, 0x5e, 0x35, 0xf7, 0x3c, 0xce, 0x78, 0x07, 0x5d, 0x12, 0xa4, 0x8d, 0xb1, 0xcd, 0x82,
- 0x8c, 0x43, 0x11, 0x18, 0x78, 0x96, 0x98, 0x15, 0x5a, 0xfb, 0x2d, 0x71, 0xdc, 0x5b, 0x60, 0x14,
- 0x5b, 0x76, 0x06, 0xbd, 0x93, 0x0a, 0xb2, 0xd6, 0xbe, 0x30, 0xe2, 0x47, 0xa6, 0x8d, 0x67, 0x4a,
- 0x90, 0x17, 0xf3, 0x53, 0xc9, 0x02, 0xcd, 0x50, 0x59, 0xc2, 0x62, 0x65, 0x69, 0x73, 0x19, 0xcb,
- 0x8c, 0xa7, 0x2a, 0x72, 0x02, 0xcb, 0x9d, 0xb5, 0xd5, 0xed, 0x8a, 0xa6, 0xee, 0x6c, 0x6c, 0xaf,
- 0xae, 0x57, 0xe4, 0xa4, 0xa8, 0xab, 0xbf, 0x97, 0x80, 0x42, 0xf0, 0x88, 0xa4, 0x7c, 0x06, 0x6e,
- 0xe4, 0xf7, 0x19, 0x2e, 0xf2, 0xb4, 0xab, 0xa6, 0x43, 0x96, 0x4c, 0x53, 0xa7, 0xdb, 0x97, 0x3f,
- 0x69, 0x93, 0xcc, 0xaa, 0x8a, 0xbc, 0xc7, 0x4d, 0x07, 0x2f, 0x88, 0xa6, 0xee, 0x29, 0x6b, 0x70,
- 0xdc, 0xb2, 0x35, 0xd7, 0xd3, 0xad, 0x9a, 0xee, 0xd4, 0xb4, 0xce, 0x4d, 0x92, 0xa6, 0x1b, 0x06,
- 0x72, 0x5d, 0x9b, 0x6e, 0x55, 0x3e, 0xcb, 0xa7, 0x2d, 0xbb, 0xca, 0x8c, 0x3b, 0x35, 0xbc, 0xcc,
- 0x4c, 0x43, 0x09, 0x96, 0xec, 0x95, 0x60, 0x9f, 0x82, 0x6c, 0x53, 0x6f, 0x69, 0xc8, 0xf2, 0x9c,
- 0x03, 0x22, 0x8c, 0x33, 0x6a, 0xa6, 0xa9, 0xb7, 0x2a, 0xf8, 0xf9, 0xe3, 0x39, 0x9f, 0xfc, 0x38,
- 0x09, 0x79, 0x51, 0x1c, 0xe3, 0xb3, 0x86, 0x41, 0xf6, 0x11, 0x89, 0x54, 0x9a, 0x5b, 0xfa, 0x4a,
- 0xe9, 0xb9, 0x25, 0xbc, 0xc1, 0x94, 0x86, 0xa9, 0x64, 0x55, 0x29, 0x12, 0x6f, 0xee, 0xb8, 0xb6,
- 0x20, 0x2a, 0x11, 0x32, 0x2a, 0x7b, 0x52, 0x56, 0x60, 0xf8, 0x19, 0x97, 0x70, 0x0f, 0x13, 0xee,
- 0x5b, 0xfb, 0x73, 0x3f, 0x52, 0x25, 0xe4, 0xd9, 0x47, 0xaa, 0xda, 0xc6, 0xa6, 0xba, 0x5e, 0x5e,
- 0x53, 0x19, 0x5c, 0xb9, 0x09, 0x52, 0x0d, 0xfd, 0xf9, 0x83, 0xe0, 0x56, 0x44, 0x9a, 0x06, 0x0d,
- 0xfc, 0x4d, 0x90, 0xba, 0x8a, 0xf4, 0xcb, 0xc1, 0x0d, 0x80, 0x34, 0x7d, 0x84, 0xa9, 0x3f, 0x0f,
- 0x69, 0x12, 0x2f, 0x05, 0x80, 0x45, 0x4c, 0x1e, 0x52, 0x32, 0x90, 0x5a, 0xda, 0x54, 0x71, 0xfa,
- 0xcb, 0x90, 0xa7, 0xad, 0xda, 0xd6, 0x6a, 0x65, 0xa9, 0x22, 0x27, 0x66, 0xce, 0xc2, 0x30, 0x0d,
- 0x02, 0x5e, 0x1a, 0x7e, 0x18, 0xe4, 0x21, 0xf6, 0xc8, 0x38, 0x24, 0xde, 0xbb, 0xb3, 0xbe, 0x58,
- 0x51, 0xe5, 0x84, 0x38, 0xbd, 0x2e, 0xe4, 0x45, 0x5d, 0xfc, 0xf1, 0xe4, 0xd4, 0x77, 0x24, 0xc8,
- 0x09, 0x3a, 0x17, 0x0b, 0x14, 0xbd, 0xd1, 0xb0, 0xaf, 0x6a, 0x7a, 0xc3, 0xd4, 0x5d, 0x96, 0x14,
- 0x40, 0x9a, 0xca, 0xb8, 0x65, 0xd0, 0x49, 0xfb, 0x58, 0x9c, 0x7f, 0x45, 0x02, 0x39, 0x2c, 0x31,
- 0x43, 0x0e, 0x4a, 0x3f, 0x53, 0x07, 0x5f, 0x96, 0xa0, 0x10, 0xd4, 0x95, 0x21, 0xf7, 0x4e, 0xfe,
- 0x4c, 0xdd, 0x7b, 0x33, 0x01, 0xa3, 0x01, 0x35, 0x39, 0xa8, 0x77, 0xcf, 0xc2, 0xb8, 0x59, 0x43,
- 0xcd, 0x96, 0xed, 0x21, 0xcb, 0x38, 0xd0, 0x1a, 0xe8, 0x0a, 0x6a, 0x14, 0x67, 0x48, 0xa1, 0x98,
- 0xef, 0xaf, 0x57, 0xe7, 0x56, 0x3b, 0xb8, 0x35, 0x0c, 0x2b, 0x4d, 0xac, 0x2e, 0x57, 0xd6, 0xb7,
- 0x36, 0xb7, 0x2b, 0x1b, 0x4b, 0x4f, 0x6a, 0x3b, 0x1b, 0x8f, 0x6e, 0x6c, 0x3e, 0xbe, 0xa1, 0xca,
- 0x66, 0xc8, 0xec, 0x23, 0x5c, 0xea, 0x5b, 0x20, 0x87, 0x9d, 0x52, 0x6e, 0x84, 0x28, 0xb7, 0xe4,
- 0x21, 0x65, 0x02, 0xc6, 0x36, 0x36, 0xb5, 0xea, 0xea, 0x72, 0x45, 0xab, 0x5c, 0xbc, 0x58, 0x59,
- 0xda, 0xae, 0xd2, 0x1b, 0x08, 0xdf, 0x7a, 0x3b, 0xb8, 0xa8, 0x5f, 0x4a, 0xc2, 0x44, 0x84, 0x27,
- 0x4a, 0x99, 0x9d, 0x1d, 0xe8, 0x71, 0xe6, 0xee, 0x41, 0xbc, 0x9f, 0xc3, 0x5b, 0xfe, 0x96, 0xee,
- 0x78, 0xec, 0xa8, 0x71, 0x27, 0xe0, 0x28, 0x59, 0x9e, 0xb9, 0x67, 0x22, 0x87, 0x5d, 0xd8, 0xd0,
- 0x03, 0xc5, 0x58, 0xa7, 0x9d, 0xde, 0xd9, 0xdc, 0x05, 0x4a, 0xcb, 0x76, 0x4d, 0xcf, 0xbc, 0x82,
- 0x34, 0xd3, 0xe2, 0xb7, 0x3b, 0xf8, 0x80, 0x91, 0x52, 0x65, 0xde, 0xb3, 0x6a, 0x79, 0xbe, 0xb5,
- 0x85, 0xea, 0x7a, 0xc8, 0x1a, 0x17, 0xf0, 0xa4, 0x2a, 0xf3, 0x1e, 0xdf, 0xfa, 0x24, 0xe4, 0x6b,
- 0x76, 0x1b, 0xab, 0x2e, 0x6a, 0x87, 0xf7, 0x0b, 0x49, 0xcd, 0xd1, 0x36, 0xdf, 0x84, 0xe9, 0xe9,
- 0xce, 0xb5, 0x52, 0x5e, 0xcd, 0xd1, 0x36, 0x6a, 0x72, 0x07, 0x8c, 0xe9, 0xf5, 0xba, 0x83, 0xc9,
- 0x39, 0x11, 0x3d, 0x21, 0x14, 0xfc, 0x66, 0x62, 0x38, 0xf5, 0x08, 0x64, 0x78, 0x1c, 0xf0, 0x96,
- 0x8c, 0x23, 0xa1, 0xb5, 0xe8, 0xb1, 0x37, 0x31, 0x9b, 0x55, 0x33, 0x16, 0xef, 0x3c, 0x09, 0x79,
- 0xd3, 0xd5, 0x3a, 0xb7, 0xe4, 0x89, 0x13, 0x89, 0xd9, 0x8c, 0x9a, 0x33, 0x5d, 0xff, 0x86, 0x71,
- 0xe6, 0xb5, 0x04, 0x14, 0x82, 0xb7, 0xfc, 0xca, 0x32, 0x64, 0x1a, 0xb6, 0xa1, 0x93, 0xd4, 0xa2,
- 0x9f, 0x98, 0x66, 0x63, 0x3e, 0x0c, 0xcc, 0xad, 0x31, 0x7b, 0xd5, 0x47, 0x4e, 0xfd, 0x93, 0x04,
- 0x19, 0xde, 0xac, 0x1c, 0x83, 0x54, 0x4b, 0xf7, 0xf6, 0x09, 0x5d, 0x7a, 0x31, 0x21, 0x4b, 0x2a,
- 0x79, 0xc6, 0xed, 0x6e, 0x4b, 0xb7, 0x48, 0x0a, 0xb0, 0x76, 0xfc, 0x8c, 0xe7, 0xb5, 0x81, 0xf4,
- 0x1a, 0x39, 0x7e, 0xd8, 0xcd, 0x26, 0xb2, 0x3c, 0x97, 0xcf, 0x2b, 0x6b, 0x5f, 0x62, 0xcd, 0xca,
- 0x69, 0x18, 0xf7, 0x1c, 0xdd, 0x6c, 0x04, 0x6c, 0x53, 0xc4, 0x56, 0xe6, 0x1d, 0xbe, 0x71, 0x09,
- 0x6e, 0xe2, 0xbc, 0x35, 0xe4, 0xe9, 0xc6, 0x3e, 0xaa, 0x75, 0x40, 0xc3, 0xe4, 0x9a, 0xe1, 0x46,
- 0x66, 0xb0, 0xcc, 0xfa, 0x39, 0x76, 0xe6, 0x07, 0x12, 0x8c, 0xf3, 0x03, 0x53, 0xcd, 0x0f, 0xd6,
- 0x3a, 0x80, 0x6e, 0x59, 0xb6, 0x27, 0x86, 0xab, 0x3b, 0x95, 0xbb, 0x70, 0x73, 0x65, 0x1f, 0xa4,
- 0x0a, 0x04, 0x53, 0x4d, 0x80, 0x4e, 0x4f, 0xcf, 0xb0, 0x1d, 0x87, 0x1c, 0xfb, 0x84, 0x43, 0xbe,
- 0x03, 0xd2, 0x23, 0x36, 0xd0, 0x26, 0x7c, 0xb2, 0x52, 0x26, 0x21, 0xbd, 0x8b, 0xea, 0xa6, 0xc5,
- 0x2e, 0x66, 0xe9, 0x03, 0xbf, 0x08, 0x49, 0xf9, 0x17, 0x21, 0x8b, 0x9f, 0x83, 0x09, 0xc3, 0x6e,
- 0x86, 0xdd, 0x5d, 0x94, 0x43, 0xc7, 0x7c, 0xf7, 0x92, 0xf4, 0x14, 0x74, 0x24, 0xe6, 0xfb, 0x92,
- 0xf4, 0xa5, 0x44, 0x72, 0x65, 0x6b, 0xf1, 0xab, 0x89, 0xa9, 0x15, 0x0a, 0xdd, 0xe2, 0x6f, 0xaa,
- 0xa2, 0xbd, 0x06, 0x32, 0xb0, 0xf7, 0xf0, 0xe5, 0xd3, 0x70, 0x77, 0xdd, 0xf4, 0xf6, 0xdb, 0xbb,
- 0x73, 0x86, 0xdd, 0x9c, 0xaf, 0xdb, 0x75, 0xbb, 0xf3, 0xe9, 0x13, 0x3f, 0x91, 0x07, 0xf2, 0x17,
- 0xfb, 0xfc, 0x99, 0xf5, 0x5b, 0xa7, 0x62, 0xbf, 0x95, 0x96, 0x36, 0x60, 0x82, 0x19, 0x6b, 0xe4,
- 0xfb, 0x0b, 0x3d, 0x45, 0x28, 0x7d, 0xef, 0xb0, 0x8a, 0x5f, 0x7f, 0x8b, 0x6c, 0xd7, 0xea, 0x38,
- 0x83, 0xe2, 0x3e, 0x7a, 0xd0, 0x28, 0xa9, 0x70, 0x43, 0x80, 0x8f, 0x2e, 0x4d, 0xe4, 0xc4, 0x30,
- 0x7e, 0x8f, 0x31, 0x4e, 0x08, 0x8c, 0x55, 0x06, 0x2d, 0x2d, 0xc1, 0xe8, 0x51, 0xb8, 0xfe, 0x9e,
- 0x71, 0xe5, 0x91, 0x48, 0xb2, 0x02, 0x63, 0x84, 0xc4, 0x68, 0xbb, 0x9e, 0xdd, 0x24, 0x75, 0xaf,
- 0x3f, 0xcd, 0x3f, 0xbc, 0x45, 0xd7, 0x4a, 0x01, 0xc3, 0x96, 0x7c, 0x54, 0xa9, 0x04, 0xe4, 0x93,
- 0x53, 0x0d, 0x19, 0x8d, 0x18, 0x86, 0xd7, 0x99, 0x23, 0xbe, 0x7d, 0xe9, 0x31, 0x98, 0xc4, 0x7f,
- 0x93, 0xb2, 0x24, 0x7a, 0x12, 0x7f, 0xe1, 0x55, 0xfc, 0xc1, 0x0b, 0x74, 0x39, 0x4e, 0xf8, 0x04,
- 0x82, 0x4f, 0xc2, 0x2c, 0xd6, 0x91, 0xe7, 0x21, 0xc7, 0xd5, 0xf4, 0x46, 0x94, 0x7b, 0xc2, 0x8d,
- 0x41, 0xf1, 0x0b, 0xef, 0x04, 0x67, 0x71, 0x85, 0x22, 0xcb, 0x8d, 0x46, 0x69, 0x07, 0x6e, 0x8c,
- 0xc8, 0x8a, 0x01, 0x38, 0x5f, 0x62, 0x9c, 0x93, 0x5d, 0x99, 0x81, 0x69, 0xb7, 0x80, 0xb7, 0xfb,
- 0x73, 0x39, 0x00, 0xe7, 0xef, 0x33, 0x4e, 0x85, 0x61, 0xf9, 0x94, 0x62, 0xc6, 0x47, 0x60, 0xfc,
- 0x0a, 0x72, 0x76, 0x6d, 0x97, 0xdd, 0xd2, 0x0c, 0x40, 0xf7, 0x32, 0xa3, 0x1b, 0x63, 0x40, 0x72,
- 0x6d, 0x83, 0xb9, 0x1e, 0x80, 0xcc, 0x9e, 0x6e, 0xa0, 0x01, 0x28, 0xbe, 0xc8, 0x28, 0x46, 0xb0,
- 0x3d, 0x86, 0x96, 0x21, 0x5f, 0xb7, 0xd9, 0xce, 0x14, 0x0f, 0x7f, 0x85, 0xc1, 0x73, 0x1c, 0xc3,
- 0x28, 0x5a, 0x76, 0xab, 0xdd, 0xc0, 0xdb, 0x56, 0x3c, 0xc5, 0x1f, 0x70, 0x0a, 0x8e, 0x61, 0x14,
- 0x47, 0x08, 0xeb, 0x1f, 0x72, 0x0a, 0x57, 0x88, 0xe7, 0xc3, 0x90, 0xb3, 0xad, 0xc6, 0x81, 0x6d,
- 0x0d, 0xe2, 0xc4, 0xab, 0x8c, 0x01, 0x18, 0x04, 0x13, 0x5c, 0x80, 0xec, 0xa0, 0x13, 0xf1, 0xc7,
- 0xef, 0xf0, 0xe5, 0xc1, 0x67, 0x60, 0x05, 0xc6, 0x78, 0x81, 0x32, 0x6d, 0x6b, 0x00, 0x8a, 0x2f,
- 0x33, 0x8a, 0x82, 0x00, 0x63, 0xaf, 0xe1, 0x21, 0xd7, 0xab, 0xa3, 0x41, 0x48, 0x5e, 0xe3, 0xaf,
- 0xc1, 0x20, 0x2c, 0x94, 0xbb, 0xc8, 0x32, 0xf6, 0x07, 0x63, 0xf8, 0x0a, 0x0f, 0x25, 0xc7, 0x60,
- 0x8a, 0x25, 0x18, 0x6d, 0xea, 0x8e, 0xbb, 0xaf, 0x37, 0x06, 0x9a, 0x8e, 0x3f, 0x61, 0x1c, 0x79,
- 0x1f, 0xc4, 0x22, 0xd2, 0xb6, 0x8e, 0x42, 0xf3, 0x55, 0x1e, 0x11, 0x01, 0xc6, 0x96, 0x9e, 0xeb,
- 0x91, 0x2b, 0xad, 0xa3, 0xb0, 0xfd, 0x29, 0x5f, 0x7a, 0x14, 0xbb, 0x2e, 0x32, 0x5e, 0x80, 0xac,
- 0x6b, 0x3e, 0x3f, 0x10, 0xcd, 0x9f, 0xf1, 0x99, 0x26, 0x00, 0x0c, 0x7e, 0x12, 0x6e, 0x8a, 0xdc,
- 0x26, 0x06, 0x20, 0xfb, 0x73, 0x46, 0x76, 0x2c, 0x62, 0xab, 0x60, 0x25, 0xe1, 0xa8, 0x94, 0x7f,
- 0xc1, 0x4b, 0x02, 0x0a, 0x71, 0x6d, 0xe1, 0xb3, 0x82, 0xab, 0xef, 0x1d, 0x2d, 0x6a, 0x7f, 0xc9,
- 0xa3, 0x46, 0xb1, 0x81, 0xa8, 0x6d, 0xc3, 0x31, 0xc6, 0x78, 0xb4, 0x79, 0xfd, 0x1a, 0x2f, 0xac,
- 0x14, 0xbd, 0x13, 0x9c, 0xdd, 0xcf, 0xc1, 0x94, 0x1f, 0x4e, 0x2e, 0x4a, 0x5d, 0xad, 0xa9, 0xb7,
- 0x06, 0x60, 0xfe, 0x3a, 0x63, 0xe6, 0x15, 0xdf, 0x57, 0xb5, 0xee, 0xba, 0xde, 0xc2, 0xe4, 0x4f,
- 0x40, 0x91, 0x93, 0xb7, 0x2d, 0x07, 0x19, 0x76, 0xdd, 0x32, 0x9f, 0x47, 0xb5, 0x01, 0xa8, 0xff,
- 0x2a, 0x34, 0x55, 0x3b, 0x02, 0x1c, 0x33, 0xaf, 0x82, 0xec, 0x6b, 0x15, 0xcd, 0x6c, 0xb6, 0x6c,
- 0xc7, 0x8b, 0x61, 0xfc, 0x06, 0x9f, 0x29, 0x1f, 0xb7, 0x4a, 0x60, 0xa5, 0x0a, 0x14, 0xc8, 0xe3,
+ // 4829 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x5b, 0x6c, 0x23, 0xd7,
+ 0x79, 0xd6, 0xf0, 0x22, 0x91, 0x3f, 0x29, 0x6a, 0x34, 0x92, 0xd7, 0xb4, 0x12, 0x6b, 0x77, 0xe5,
+ 0x9b, 0xbc, 0x6b, 0x4b, 0xb6, 0xbc, 0xbb, 0x5e, 0x73, 0x63, 0xbb, 0x94, 0xc4, 0xd5, 0xca, 0xd6,
+ 0x2d, 0x43, 0xc9, 0xb7, 0xc0, 0x98, 0x8e, 0x86, 0x47, 0xd4, 0x78, 0xc9, 0x19, 0x7a, 0x66, 0xb8,
+ 0x6b, 0x19, 0x45, 0xb1, 0x85, 0x7b, 0x41, 0xd0, 0xfb, 0x05, 0xa8, 0xe3, 0x3a, 0x6e, 0x9d, 0xa2,
+ 0x71, 0x9a, 0xde, 0x92, 0x5e, 0xd2, 0x24, 0x7d, 0xc9, 0x4b, 0x5a, 0x03, 0x05, 0x8a, 0xe4, 0x2d,
+ 0x08, 0x02, 0xc3, 0xab, 0x18, 0xa8, 0xdb, 0xba, 0xad, 0xdb, 0x1a, 0xa8, 0x01, 0xbf, 0x14, 0xe7,
+ 0x36, 0x3c, 0x33, 0x1c, 0x72, 0x28, 0x03, 0x76, 0xfa, 0xe0, 0xa7, 0xd5, 0x9c, 0xf3, 0x7f, 0xdf,
+ 0xf9, 0xe7, 0x3f, 0xff, 0xf9, 0xcf, 0x77, 0xce, 0x70, 0xe1, 0xf5, 0x12, 0x9c, 0xa8, 0xdb, 0x76,
+ 0xbd, 0x81, 0xe6, 0x5b, 0x8e, 0xed, 0xd9, 0xbb, 0xed, 0xbd, 0xf9, 0x1a, 0x72, 0x0d, 0xc7, 0x6c,
+ 0x79, 0xb6, 0x33, 0x47, 0xda, 0x94, 0x31, 0x6a, 0x31, 0xc7, 0x2d, 0x66, 0xd6, 0x61, 0xfc, 0xa2,
+ 0xd9, 0x40, 0xcb, 0xbe, 0x61, 0x15, 0x79, 0xca, 0x79, 0x48, 0xed, 0x99, 0x0d, 0x54, 0x94, 0x4e,
+ 0x24, 0x67, 0x73, 0x0b, 0xb7, 0xce, 0x85, 0x40, 0x73, 0x41, 0xc4, 0x16, 0x6e, 0x56, 0x09, 0x62,
+ 0xe6, 0xad, 0x14, 0x4c, 0x44, 0xf4, 0x2a, 0x0a, 0xa4, 0x2c, 0xbd, 0x89, 0x19, 0xa5, 0xd9, 0xac,
+ 0x4a, 0xfe, 0x56, 0x8a, 0x30, 0xd2, 0xd2, 0x8d, 0xcb, 0x7a, 0x1d, 0x15, 0x13, 0xa4, 0x99, 0x3f,
+ 0x2a, 0xd3, 0x00, 0x35, 0xd4, 0x42, 0x56, 0x0d, 0x59, 0xc6, 0x41, 0x31, 0x79, 0x22, 0x39, 0x9b,
+ 0x55, 0x85, 0x16, 0xe5, 0x34, 0x8c, 0xb7, 0xda, 0xbb, 0x0d, 0xd3, 0xd0, 0x04, 0x33, 0x38, 0x91,
+ 0x9c, 0x4d, 0xab, 0x32, 0xed, 0x58, 0xee, 0x18, 0xdf, 0x01, 0x63, 0x57, 0x91, 0x7e, 0x59, 0x34,
+ 0xcd, 0x11, 0xd3, 0x02, 0x6e, 0x16, 0x0c, 0x97, 0x20, 0xdf, 0x44, 0xae, 0xab, 0xd7, 0x91, 0xe6,
+ 0x1d, 0xb4, 0x50, 0x31, 0x45, 0xde, 0xfe, 0x44, 0xd7, 0xdb, 0x87, 0xdf, 0x3c, 0xc7, 0x50, 0xdb,
+ 0x07, 0x2d, 0xa4, 0x94, 0x21, 0x8b, 0xac, 0x76, 0x93, 0x32, 0xa4, 0x7b, 0xc4, 0xaf, 0x62, 0xb5,
+ 0x9b, 0x61, 0x96, 0x0c, 0x86, 0x31, 0x8a, 0x11, 0x17, 0x39, 0x57, 0x4c, 0x03, 0x15, 0x87, 0x09,
+ 0xc1, 0x1d, 0x5d, 0x04, 0x55, 0xda, 0x1f, 0xe6, 0xe0, 0x38, 0x65, 0x09, 0xb2, 0xe8, 0x39, 0x0f,
+ 0x59, 0xae, 0x69, 0x5b, 0xc5, 0x11, 0x42, 0x72, 0x5b, 0xc4, 0x2c, 0xa2, 0x46, 0x2d, 0x4c, 0xd1,
+ 0xc1, 0x29, 0xe7, 0x60, 0xc4, 0x6e, 0x79, 0xa6, 0x6d, 0xb9, 0xc5, 0xcc, 0x09, 0x69, 0x36, 0xb7,
+ 0xf0, 0xe9, 0xc8, 0x44, 0xd8, 0xa4, 0x36, 0x2a, 0x37, 0x56, 0x56, 0x41, 0x76, 0xed, 0xb6, 0x63,
+ 0x20, 0xcd, 0xb0, 0x6b, 0x48, 0x33, 0xad, 0x3d, 0xbb, 0x98, 0x25, 0x04, 0xc7, 0xbb, 0x5f, 0x84,
+ 0x18, 0x2e, 0xd9, 0x35, 0xb4, 0x6a, 0xed, 0xd9, 0x6a, 0xc1, 0x0d, 0x3c, 0x2b, 0xc7, 0x60, 0xd8,
+ 0x3d, 0xb0, 0x3c, 0xfd, 0xb9, 0x62, 0x9e, 0x64, 0x08, 0x7b, 0x9a, 0xf9, 0xd6, 0x30, 0x8c, 0x0d,
+ 0x92, 0x62, 0x17, 0x20, 0xbd, 0x87, 0xdf, 0xb2, 0x98, 0x38, 0x4a, 0x0c, 0x28, 0x26, 0x18, 0xc4,
+ 0xe1, 0x0f, 0x19, 0xc4, 0x32, 0xe4, 0x2c, 0xe4, 0x7a, 0xa8, 0x46, 0x33, 0x22, 0x39, 0x60, 0x4e,
+ 0x01, 0x05, 0x75, 0xa7, 0x54, 0xea, 0x43, 0xa5, 0xd4, 0x13, 0x30, 0xe6, 0xbb, 0xa4, 0x39, 0xba,
+ 0x55, 0xe7, 0xb9, 0x39, 0x1f, 0xe7, 0xc9, 0x5c, 0x85, 0xe3, 0x54, 0x0c, 0x53, 0x0b, 0x28, 0xf0,
+ 0xac, 0x2c, 0x03, 0xd8, 0x16, 0xb2, 0xf7, 0xb4, 0x1a, 0x32, 0x1a, 0xc5, 0x4c, 0x8f, 0x28, 0x6d,
+ 0x62, 0x93, 0xae, 0x28, 0xd9, 0xb4, 0xd5, 0x68, 0x28, 0x0f, 0x74, 0x52, 0x6d, 0xa4, 0x47, 0xa6,
+ 0xac, 0xd3, 0x45, 0xd6, 0x95, 0x6d, 0x3b, 0x50, 0x70, 0x10, 0xce, 0x7b, 0x54, 0x63, 0x6f, 0x96,
+ 0x25, 0x4e, 0xcc, 0xc5, 0xbe, 0x99, 0xca, 0x60, 0xf4, 0xc5, 0x46, 0x1d, 0xf1, 0x51, 0xb9, 0x05,
+ 0xfc, 0x06, 0x8d, 0xa4, 0x15, 0x90, 0x2a, 0x94, 0xe7, 0x8d, 0x1b, 0x7a, 0x13, 0x4d, 0x3d, 0x0f,
+ 0x85, 0x60, 0x78, 0x94, 0x49, 0x48, 0xbb, 0x9e, 0xee, 0x78, 0x24, 0x0b, 0xd3, 0x2a, 0x7d, 0x50,
+ 0x64, 0x48, 0x22, 0xab, 0x46, 0xaa, 0x5c, 0x5a, 0xc5, 0x7f, 0x2a, 0x3f, 0xd5, 0x79, 0xe1, 0x24,
+ 0x79, 0xe1, 0xdb, 0xbb, 0x67, 0x34, 0xc0, 0x1c, 0x7e, 0xef, 0xa9, 0xfb, 0x61, 0x34, 0xf0, 0x02,
+ 0x83, 0x0e, 0x3d, 0xf3, 0x33, 0x70, 0x43, 0x24, 0xb5, 0xf2, 0x04, 0x4c, 0xb6, 0x2d, 0xd3, 0xf2,
+ 0x90, 0xd3, 0x72, 0x10, 0xce, 0x58, 0x3a, 0x54, 0xf1, 0x9f, 0x47, 0x7a, 0xe4, 0xdc, 0x8e, 0x68,
+ 0x4d, 0x59, 0xd4, 0x89, 0x76, 0x77, 0xe3, 0xa9, 0x6c, 0xe6, 0xed, 0x11, 0xf9, 0xda, 0xb5, 0x6b,
+ 0xd7, 0x12, 0x33, 0x2f, 0x0e, 0xc3, 0x64, 0xd4, 0x9a, 0x89, 0x5c, 0xbe, 0xc7, 0x60, 0xd8, 0x6a,
+ 0x37, 0x77, 0x91, 0x43, 0x82, 0x94, 0x56, 0xd9, 0x93, 0x52, 0x86, 0x74, 0x43, 0xdf, 0x45, 0x8d,
+ 0x62, 0xea, 0x84, 0x34, 0x5b, 0x58, 0x38, 0x3d, 0xd0, 0xaa, 0x9c, 0x5b, 0xc3, 0x10, 0x95, 0x22,
+ 0x95, 0x87, 0x20, 0xc5, 0x4a, 0x34, 0x66, 0x38, 0x35, 0x18, 0x03, 0x5e, 0x4b, 0x2a, 0xc1, 0x29,
+ 0x9f, 0x82, 0x2c, 0xfe, 0x97, 0xe6, 0xc6, 0x30, 0xf1, 0x39, 0x83, 0x1b, 0x70, 0x5e, 0x28, 0x53,
+ 0x90, 0x21, 0xcb, 0xa4, 0x86, 0xf8, 0xd6, 0xe6, 0x3f, 0xe3, 0xc4, 0xaa, 0xa1, 0x3d, 0xbd, 0xdd,
+ 0xf0, 0xb4, 0x2b, 0x7a, 0xa3, 0x8d, 0x48, 0xc2, 0x67, 0xd5, 0x3c, 0x6b, 0x7c, 0x0c, 0xb7, 0x29,
+ 0xc7, 0x21, 0x47, 0x57, 0x95, 0x69, 0xd5, 0xd0, 0x73, 0xa4, 0x7a, 0xa6, 0x55, 0xba, 0xd0, 0x56,
+ 0x71, 0x0b, 0x1e, 0xfe, 0x19, 0xd7, 0xb6, 0x78, 0x6a, 0x92, 0x21, 0x70, 0x03, 0x19, 0xfe, 0xfe,
+ 0x70, 0xe1, 0xbe, 0x39, 0xfa, 0xf5, 0xc2, 0x39, 0x35, 0xf3, 0x8d, 0x04, 0xa4, 0x48, 0xbd, 0x18,
+ 0x83, 0xdc, 0xf6, 0x93, 0x5b, 0x15, 0x6d, 0x79, 0x73, 0x67, 0x71, 0xad, 0x22, 0x4b, 0x4a, 0x01,
+ 0x80, 0x34, 0x5c, 0x5c, 0xdb, 0x2c, 0x6f, 0xcb, 0x09, 0xff, 0x79, 0x75, 0x63, 0xfb, 0xdc, 0x19,
+ 0x39, 0xe9, 0x03, 0x76, 0x68, 0x43, 0x4a, 0x34, 0xb8, 0x6f, 0x41, 0x4e, 0x2b, 0x32, 0xe4, 0x29,
+ 0xc1, 0xea, 0x13, 0x95, 0xe5, 0x73, 0x67, 0xe4, 0xe1, 0x60, 0xcb, 0x7d, 0x0b, 0xf2, 0x88, 0x32,
+ 0x0a, 0x59, 0xd2, 0xb2, 0xb8, 0xb9, 0xb9, 0x26, 0x67, 0x7c, 0xce, 0xea, 0xb6, 0xba, 0xba, 0xb1,
+ 0x22, 0x67, 0x7d, 0xce, 0x15, 0x75, 0x73, 0x67, 0x4b, 0x06, 0x9f, 0x61, 0xbd, 0x52, 0xad, 0x96,
+ 0x57, 0x2a, 0x72, 0xce, 0xb7, 0x58, 0x7c, 0x72, 0xbb, 0x52, 0x95, 0xf3, 0x01, 0xb7, 0xee, 0x5b,
+ 0x90, 0x47, 0xfd, 0x21, 0x2a, 0x1b, 0x3b, 0xeb, 0x72, 0x41, 0x19, 0x87, 0x51, 0x3a, 0x04, 0x77,
+ 0x62, 0x2c, 0xd4, 0x74, 0xee, 0x8c, 0x2c, 0x77, 0x1c, 0xa1, 0x2c, 0xe3, 0x81, 0x86, 0x73, 0x67,
+ 0x64, 0x65, 0x66, 0x09, 0xd2, 0x24, 0xbb, 0x14, 0x05, 0x0a, 0x6b, 0xe5, 0xc5, 0xca, 0x9a, 0xb6,
+ 0xb9, 0xb5, 0xbd, 0xba, 0xb9, 0x51, 0x5e, 0x93, 0xa5, 0x4e, 0x9b, 0x5a, 0xf9, 0xec, 0xce, 0xaa,
+ 0x5a, 0x59, 0x96, 0x13, 0x62, 0xdb, 0x56, 0xa5, 0xbc, 0x5d, 0x59, 0x96, 0x93, 0x33, 0x06, 0x4c,
+ 0x46, 0xd5, 0xc9, 0xc8, 0x95, 0x21, 0x4c, 0x71, 0xa2, 0xc7, 0x14, 0x13, 0xae, 0xae, 0x29, 0xfe,
+ 0x71, 0x02, 0x26, 0x22, 0xf6, 0x8a, 0xc8, 0x41, 0x1e, 0x86, 0x34, 0x4d, 0x51, 0xba, 0x7b, 0xde,
+ 0x19, 0xb9, 0xe9, 0x90, 0x84, 0xed, 0xda, 0x41, 0x09, 0x4e, 0x54, 0x10, 0xc9, 0x1e, 0x0a, 0x02,
+ 0x53, 0x74, 0xd5, 0xf4, 0xa7, 0xbb, 0x6a, 0x3a, 0xdd, 0xf6, 0xce, 0x0d, 0xb2, 0xed, 0x91, 0xb6,
+ 0xa3, 0xd5, 0xf6, 0x74, 0x44, 0x6d, 0xbf, 0x00, 0xe3, 0x5d, 0x44, 0x03, 0xd7, 0xd8, 0x17, 0x24,
+ 0x28, 0xf6, 0x0a, 0x4e, 0x4c, 0xa5, 0x4b, 0x04, 0x2a, 0xdd, 0x85, 0x70, 0x04, 0x4f, 0xf6, 0x9e,
+ 0x84, 0xae, 0xb9, 0x7e, 0x4d, 0x82, 0x63, 0xd1, 0x4a, 0x31, 0xd2, 0x87, 0x87, 0x60, 0xb8, 0x89,
+ 0xbc, 0x7d, 0x9b, 0xab, 0xa5, 0xdb, 0x23, 0xf6, 0x60, 0xdc, 0x1d, 0x9e, 0x6c, 0x86, 0x12, 0x37,
+ 0xf1, 0x64, 0x2f, 0xb9, 0x47, 0xbd, 0xe9, 0xf2, 0xf4, 0xf3, 0x09, 0xb8, 0x21, 0x92, 0x3c, 0xd2,
+ 0xd1, 0x9b, 0x01, 0x4c, 0xab, 0xd5, 0xf6, 0xa8, 0x22, 0xa2, 0x05, 0x36, 0x4b, 0x5a, 0x48, 0xf1,
+ 0xc2, 0xc5, 0xb3, 0xed, 0xf9, 0xfd, 0x49, 0xd2, 0x0f, 0xb4, 0x89, 0x18, 0x9c, 0xef, 0x38, 0x9a,
+ 0x22, 0x8e, 0x4e, 0xf7, 0x78, 0xd3, 0xae, 0xc4, 0xbc, 0x07, 0x64, 0xa3, 0x61, 0x22, 0xcb, 0xd3,
+ 0x5c, 0xcf, 0x41, 0x7a, 0xd3, 0xb4, 0xea, 0x64, 0x07, 0xc9, 0x94, 0xd2, 0x7b, 0x7a, 0xc3, 0x45,
+ 0xea, 0x18, 0xed, 0xae, 0xf2, 0x5e, 0x8c, 0x20, 0x09, 0xe4, 0x08, 0x88, 0xe1, 0x00, 0x82, 0x76,
+ 0xfb, 0x88, 0x99, 0x5f, 0xc9, 0x42, 0x4e, 0xd0, 0xd5, 0xca, 0x49, 0xc8, 0x3f, 0xa3, 0x5f, 0xd1,
+ 0x35, 0x7e, 0x56, 0xa2, 0x91, 0xc8, 0xe1, 0xb6, 0x2d, 0x76, 0x5e, 0xba, 0x07, 0x26, 0x89, 0x89,
+ 0xdd, 0xf6, 0x90, 0xa3, 0x19, 0x0d, 0xdd, 0x75, 0x49, 0xd0, 0x32, 0xc4, 0x54, 0xc1, 0x7d, 0x9b,
+ 0xb8, 0x6b, 0x89, 0xf7, 0x28, 0x67, 0x61, 0x82, 0x20, 0x9a, 0xed, 0x86, 0x67, 0xb6, 0x1a, 0x48,
+ 0xc3, 0xa7, 0x37, 0x97, 0xec, 0x24, 0xbe, 0x67, 0xe3, 0xd8, 0x62, 0x9d, 0x19, 0x60, 0x8f, 0x5c,
+ 0x65, 0x19, 0x6e, 0x26, 0xb0, 0x3a, 0xb2, 0x90, 0xa3, 0x7b, 0x48, 0x43, 0xcf, 0xb6, 0xf5, 0x86,
+ 0xab, 0xe9, 0x56, 0x4d, 0xdb, 0xd7, 0xdd, 0xfd, 0xe2, 0x24, 0x26, 0x58, 0x4c, 0x14, 0x25, 0xf5,
+ 0x26, 0x6c, 0xb8, 0xc2, 0xec, 0x2a, 0xc4, 0xac, 0x6c, 0xd5, 0x2e, 0xe9, 0xee, 0xbe, 0x52, 0x82,
+ 0x63, 0x84, 0xc5, 0xf5, 0x1c, 0xd3, 0xaa, 0x6b, 0xc6, 0x3e, 0x32, 0x2e, 0x6b, 0x6d, 0x6f, 0xef,
+ 0x7c, 0xf1, 0x53, 0xe2, 0xf8, 0xc4, 0xc3, 0x2a, 0xb1, 0x59, 0xc2, 0x26, 0x3b, 0xde, 0xde, 0x79,
+ 0xa5, 0x0a, 0x79, 0x3c, 0x19, 0x4d, 0xf3, 0x79, 0xa4, 0xed, 0xd9, 0x0e, 0xd9, 0x1a, 0x0b, 0x11,
+ 0xa5, 0x49, 0x88, 0xe0, 0xdc, 0x26, 0x03, 0xac, 0xdb, 0x35, 0x54, 0x4a, 0x57, 0xb7, 0x2a, 0x95,
+ 0x65, 0x35, 0xc7, 0x59, 0x2e, 0xda, 0x0e, 0x4e, 0xa8, 0xba, 0xed, 0x07, 0x38, 0x47, 0x13, 0xaa,
+ 0x6e, 0xf3, 0xf0, 0x9e, 0x85, 0x09, 0xc3, 0xa0, 0xef, 0x6c, 0x1a, 0x1a, 0x3b, 0x63, 0xb9, 0x45,
+ 0x39, 0x10, 0x2c, 0xc3, 0x58, 0xa1, 0x06, 0x2c, 0xc7, 0x5d, 0xe5, 0x01, 0xb8, 0xa1, 0x13, 0x2c,
+ 0x11, 0x38, 0xde, 0xf5, 0x96, 0x61, 0xe8, 0x59, 0x98, 0x68, 0x1d, 0x74, 0x03, 0x95, 0xc0, 0x88,
+ 0xad, 0x83, 0x30, 0xec, 0x7e, 0x98, 0x6c, 0xed, 0xb7, 0xba, 0x71, 0xa7, 0x44, 0x9c, 0xd2, 0xda,
+ 0x6f, 0x85, 0x81, 0xb7, 0x91, 0x03, 0xb7, 0x83, 0x0c, 0xdd, 0x43, 0xb5, 0xe2, 0x8d, 0xa2, 0xb9,
+ 0xd0, 0xa1, 0xcc, 0x83, 0x6c, 0x18, 0x1a, 0xb2, 0xf4, 0xdd, 0x06, 0xd2, 0x74, 0x07, 0x59, 0xba,
+ 0x5b, 0x3c, 0x2e, 0x1a, 0x17, 0x0c, 0xa3, 0x42, 0x7a, 0xcb, 0xa4, 0x53, 0x39, 0x05, 0xe3, 0xf6,
+ 0xee, 0x33, 0x06, 0x4d, 0x49, 0xad, 0xe5, 0xa0, 0x3d, 0xf3, 0xb9, 0xe2, 0xad, 0x24, 0xbe, 0x63,
+ 0xb8, 0x83, 0x24, 0xe4, 0x16, 0x69, 0x56, 0xee, 0x04, 0xd9, 0x70, 0xf7, 0x75, 0xa7, 0x45, 0x6a,
+ 0xb2, 0xdb, 0xd2, 0x0d, 0x54, 0xbc, 0x8d, 0x9a, 0xd2, 0xf6, 0x0d, 0xde, 0x8c, 0x97, 0x84, 0x7b,
+ 0xd5, 0xdc, 0xf3, 0x38, 0xe3, 0x1d, 0x74, 0x49, 0x90, 0x36, 0xc6, 0x36, 0x0b, 0x32, 0x0e, 0x45,
+ 0x60, 0xe0, 0x59, 0x62, 0x56, 0x68, 0xed, 0xb7, 0xc4, 0x71, 0x6f, 0x81, 0x51, 0x6c, 0xd9, 0x19,
+ 0xf4, 0x4e, 0x2a, 0xc8, 0x5a, 0xfb, 0xc2, 0x88, 0x67, 0xe0, 0x18, 0x36, 0x6a, 0x22, 0x4f, 0xaf,
+ 0xe9, 0x9e, 0x2e, 0x58, 0xdf, 0x45, 0xac, 0x71, 0xdc, 0xd7, 0x59, 0x67, 0xc0, 0x4f, 0xa7, 0xbd,
+ 0x7b, 0xe0, 0x67, 0xd6, 0xdd, 0xd4, 0x4f, 0xdc, 0xc6, 0x73, 0xeb, 0x23, 0x13, 0xdd, 0x33, 0x25,
+ 0xc8, 0x8b, 0x89, 0xaf, 0x64, 0x81, 0xa6, 0xbe, 0x2c, 0x61, 0x15, 0xb4, 0xb4, 0xb9, 0x8c, 0xf5,
+ 0xcb, 0x53, 0x15, 0x39, 0x81, 0x75, 0xd4, 0xda, 0xea, 0x76, 0x45, 0x53, 0x77, 0x36, 0xb6, 0x57,
+ 0xd7, 0x2b, 0x72, 0x52, 0x14, 0xec, 0xdf, 0x4d, 0x40, 0x21, 0x78, 0xf6, 0x52, 0x3e, 0x03, 0x37,
+ 0xf2, 0x8b, 0x12, 0x17, 0x79, 0xda, 0x55, 0xd3, 0x21, 0x6b, 0xb1, 0xa9, 0xd3, 0x7d, 0xd1, 0xcf,
+ 0x86, 0x49, 0x66, 0x55, 0x45, 0xde, 0xe3, 0xa6, 0x83, 0x57, 0x5a, 0x53, 0xf7, 0x94, 0x35, 0x38,
+ 0x6e, 0xd9, 0x9a, 0xeb, 0xe9, 0x56, 0x4d, 0x77, 0x6a, 0x5a, 0xe7, 0x8a, 0x4a, 0xd3, 0x0d, 0x03,
+ 0xb9, 0xae, 0x4d, 0xf7, 0x40, 0x9f, 0xe5, 0xd3, 0x96, 0x5d, 0x65, 0xc6, 0x9d, 0xcd, 0xa1, 0xcc,
+ 0x4c, 0x43, 0x99, 0x9b, 0xec, 0x95, 0xb9, 0x9f, 0x82, 0x6c, 0x53, 0x6f, 0x69, 0xc8, 0xf2, 0x9c,
+ 0x03, 0xa2, 0xb8, 0x33, 0x6a, 0xa6, 0xa9, 0xb7, 0x2a, 0xf8, 0xf9, 0xe3, 0x39, 0xf8, 0xfc, 0x28,
+ 0x09, 0x79, 0x51, 0x75, 0xe3, 0x43, 0x8c, 0x41, 0x36, 0x28, 0x89, 0x94, 0xb0, 0x5b, 0xfa, 0x6a,
+ 0xf4, 0xb9, 0x25, 0xbc, 0x73, 0x95, 0x86, 0xa9, 0x16, 0x56, 0x29, 0x12, 0xab, 0x06, 0x9c, 0x5a,
+ 0x88, 0x6a, 0x8f, 0x8c, 0xca, 0x9e, 0x94, 0x15, 0x18, 0x7e, 0xc6, 0x25, 0xdc, 0xc3, 0x84, 0xfb,
+ 0xd6, 0xfe, 0xdc, 0x8f, 0x54, 0x09, 0x79, 0xf6, 0x91, 0xaa, 0xb6, 0xb1, 0xa9, 0xae, 0x97, 0xd7,
+ 0x54, 0x06, 0x57, 0x6e, 0x82, 0x54, 0x43, 0x7f, 0xfe, 0x20, 0xb8, 0xc7, 0x91, 0xa6, 0x41, 0x03,
+ 0x7f, 0x13, 0xa4, 0xae, 0x22, 0xfd, 0x72, 0x70, 0x67, 0x21, 0x4d, 0x1f, 0x61, 0xea, 0xcf, 0x43,
+ 0x9a, 0xc4, 0x4b, 0x01, 0x60, 0x11, 0x93, 0x87, 0x94, 0x0c, 0xa4, 0x96, 0x36, 0x55, 0x9c, 0xfe,
+ 0x32, 0xe4, 0x69, 0xab, 0xb6, 0xb5, 0x5a, 0x59, 0xaa, 0xc8, 0x89, 0x99, 0xb3, 0x30, 0x4c, 0x83,
+ 0x80, 0x97, 0x86, 0x1f, 0x06, 0x79, 0x88, 0x3d, 0x32, 0x0e, 0x89, 0xf7, 0xee, 0xac, 0x2f, 0x56,
+ 0x54, 0x39, 0x21, 0x4e, 0xaf, 0x0b, 0x79, 0x51, 0x70, 0x7f, 0x3c, 0x39, 0xf5, 0x6d, 0x09, 0x72,
+ 0x82, 0x80, 0xc6, 0xca, 0x47, 0x6f, 0x34, 0xec, 0xab, 0x9a, 0xde, 0x30, 0x75, 0x97, 0x25, 0x05,
+ 0x90, 0xa6, 0x32, 0x6e, 0x19, 0x74, 0xd2, 0x3e, 0x16, 0xe7, 0x5f, 0x91, 0x40, 0x0e, 0x6b, 0xd7,
+ 0x90, 0x83, 0xd2, 0x4f, 0xd4, 0xc1, 0x97, 0x25, 0x28, 0x04, 0x05, 0x6b, 0xc8, 0xbd, 0x93, 0x3f,
+ 0x51, 0xf7, 0xde, 0x4c, 0xc0, 0x68, 0x40, 0xa6, 0x0e, 0xea, 0xdd, 0xb3, 0x30, 0x6e, 0xd6, 0x50,
+ 0xb3, 0x65, 0x7b, 0xc8, 0x32, 0x0e, 0xb4, 0x06, 0xba, 0x82, 0x1a, 0xc5, 0x19, 0x52, 0x28, 0xe6,
+ 0xfb, 0x0b, 0xe1, 0xb9, 0xd5, 0x0e, 0x6e, 0x0d, 0xc3, 0x4a, 0x13, 0xab, 0xcb, 0x95, 0xf5, 0xad,
+ 0xcd, 0xed, 0xca, 0xc6, 0xd2, 0x93, 0xda, 0xce, 0xc6, 0xa3, 0x1b, 0x9b, 0x8f, 0x6f, 0xa8, 0xb2,
+ 0x19, 0x32, 0xfb, 0x08, 0x97, 0xfa, 0x16, 0xc8, 0x61, 0xa7, 0x94, 0x1b, 0x21, 0xca, 0x2d, 0x79,
+ 0x48, 0x99, 0x80, 0xb1, 0x8d, 0x4d, 0xad, 0xba, 0xba, 0x5c, 0xd1, 0x2a, 0x17, 0x2f, 0x56, 0x96,
+ 0xb6, 0xab, 0xf4, 0x6a, 0xc3, 0xb7, 0xde, 0x0e, 0x2e, 0xea, 0x97, 0x92, 0x30, 0x11, 0xe1, 0x89,
+ 0x52, 0x66, 0x87, 0x12, 0x7a, 0x4e, 0xba, 0x7b, 0x10, 0xef, 0xe7, 0xb0, 0x2a, 0xd8, 0xd2, 0x1d,
+ 0x8f, 0x9d, 0x61, 0xee, 0x04, 0x1c, 0x25, 0xcb, 0x33, 0xf7, 0x4c, 0xe4, 0xb0, 0x9b, 0x20, 0x7a,
+ 0x52, 0x19, 0xeb, 0xb4, 0xd3, 0xcb, 0xa0, 0xbb, 0x40, 0x69, 0xd9, 0xae, 0xe9, 0x99, 0x57, 0x90,
+ 0x66, 0x5a, 0xfc, 0xda, 0x08, 0x9f, 0x5c, 0x52, 0xaa, 0xcc, 0x7b, 0x56, 0x2d, 0xcf, 0xb7, 0xb6,
+ 0x50, 0x5d, 0x0f, 0x59, 0xe3, 0x02, 0x9e, 0x54, 0x65, 0xde, 0xe3, 0x5b, 0x9f, 0x84, 0x7c, 0xcd,
+ 0x6e, 0x63, 0x39, 0x47, 0xed, 0xf0, 0x7e, 0x21, 0xa9, 0x39, 0xda, 0xe6, 0x9b, 0x30, 0xa1, 0xde,
+ 0xb9, 0xaf, 0xca, 0xab, 0x39, 0xda, 0x46, 0x4d, 0xee, 0x80, 0x31, 0xbd, 0x5e, 0x77, 0x30, 0x39,
+ 0x27, 0xa2, 0x47, 0x8f, 0x82, 0xdf, 0x4c, 0x0c, 0xa7, 0x1e, 0x81, 0x0c, 0x8f, 0x03, 0xde, 0x92,
+ 0x71, 0x24, 0xb4, 0x16, 0x3d, 0x4f, 0x27, 0x66, 0xb3, 0x6a, 0xc6, 0xe2, 0x9d, 0x27, 0x21, 0x6f,
+ 0xba, 0x5a, 0xe7, 0xfa, 0x3d, 0x71, 0x22, 0x31, 0x9b, 0x51, 0x73, 0xa6, 0xeb, 0x5f, 0x5d, 0xce,
+ 0xbc, 0x96, 0x80, 0x42, 0xf0, 0xf3, 0x81, 0xb2, 0x0c, 0x99, 0x86, 0x6d, 0xe8, 0x24, 0xb5, 0xe8,
+ 0xb7, 0xab, 0xd9, 0x98, 0x2f, 0x0e, 0x73, 0x6b, 0xcc, 0x5e, 0xf5, 0x91, 0x53, 0xff, 0x24, 0x41,
+ 0x86, 0x37, 0x2b, 0xc7, 0x20, 0xd5, 0xd2, 0xbd, 0x7d, 0x42, 0x97, 0x5e, 0x4c, 0xc8, 0x92, 0x4a,
+ 0x9e, 0x71, 0xbb, 0xdb, 0xd2, 0x2d, 0x92, 0x02, 0xac, 0x1d, 0x3f, 0xe3, 0x79, 0x6d, 0x20, 0xbd,
+ 0x46, 0xce, 0x35, 0x76, 0xb3, 0x89, 0x2c, 0xcf, 0xe5, 0xf3, 0xca, 0xda, 0x97, 0x58, 0xb3, 0x72,
+ 0x1a, 0xc6, 0x3d, 0x47, 0x37, 0x1b, 0x01, 0xdb, 0x14, 0xb1, 0x95, 0x79, 0x87, 0x6f, 0x5c, 0x82,
+ 0x9b, 0x38, 0x6f, 0x0d, 0x79, 0xba, 0xb1, 0x8f, 0x6a, 0x1d, 0xd0, 0x30, 0xb9, 0xbf, 0xb8, 0x91,
+ 0x19, 0x2c, 0xb3, 0x7e, 0x8e, 0x9d, 0xf9, 0xbe, 0x04, 0xe3, 0xfc, 0x24, 0x56, 0xf3, 0x83, 0xb5,
+ 0x0e, 0xa0, 0x5b, 0x96, 0xed, 0x89, 0xe1, 0xea, 0x4e, 0xe5, 0x2e, 0xdc, 0x5c, 0xd9, 0x07, 0xa9,
+ 0x02, 0xc1, 0x54, 0x13, 0xa0, 0xd3, 0xd3, 0x33, 0x6c, 0xc7, 0x21, 0xc7, 0xbe, 0x0d, 0x91, 0x0f,
+ 0x8c, 0xf4, 0xec, 0x0e, 0xb4, 0x09, 0x1f, 0xd9, 0x94, 0x49, 0x48, 0xef, 0xa2, 0xba, 0x69, 0xb1,
+ 0x1b, 0x5f, 0xfa, 0xc0, 0x6f, 0x58, 0x52, 0xfe, 0x0d, 0xcb, 0xe2, 0xe7, 0x60, 0xc2, 0xb0, 0x9b,
+ 0x61, 0x77, 0x17, 0xe5, 0xd0, 0xfd, 0x81, 0x7b, 0x49, 0x7a, 0x0a, 0x3a, 0x12, 0xf3, 0x7d, 0x49,
+ 0xfa, 0x52, 0x22, 0xb9, 0xb2, 0xb5, 0xf8, 0xd5, 0xc4, 0xd4, 0x0a, 0x85, 0x6e, 0xf1, 0x37, 0x55,
+ 0xd1, 0x5e, 0x03, 0x19, 0xd8, 0x7b, 0xf8, 0xf2, 0x69, 0xb8, 0xbb, 0x6e, 0x7a, 0xfb, 0xed, 0xdd,
+ 0x39, 0xc3, 0x6e, 0xce, 0xd7, 0xed, 0xba, 0xdd, 0xf9, 0xa6, 0x8a, 0x9f, 0xc8, 0x03, 0xf9, 0x8b,
+ 0x7d, 0x57, 0xcd, 0xfa, 0xad, 0x53, 0xb1, 0x1f, 0x61, 0x4b, 0x1b, 0x30, 0xc1, 0x8c, 0x35, 0xf2,
+ 0x61, 0x87, 0x1e, 0x4f, 0x94, 0xbe, 0x97, 0x63, 0xc5, 0xaf, 0xbf, 0x45, 0xb6, 0x6b, 0x75, 0x9c,
+ 0x41, 0x71, 0x1f, 0x3d, 0xc1, 0x94, 0x54, 0xb8, 0x21, 0xc0, 0x47, 0x97, 0x26, 0x72, 0x62, 0x18,
+ 0xbf, 0xcb, 0x18, 0x27, 0x04, 0xc6, 0x2a, 0x83, 0x96, 0x96, 0x60, 0xf4, 0x28, 0x5c, 0x7f, 0xcf,
+ 0xb8, 0xf2, 0x48, 0x24, 0x59, 0x81, 0x31, 0x42, 0x62, 0xb4, 0x5d, 0xcf, 0x6e, 0x92, 0xba, 0xd7,
+ 0x9f, 0xe6, 0x1f, 0xde, 0xa2, 0x6b, 0xa5, 0x80, 0x61, 0x4b, 0x3e, 0xaa, 0x54, 0x02, 0xf2, 0x2d,
+ 0xab, 0x86, 0x8c, 0x46, 0x0c, 0xc3, 0xeb, 0xcc, 0x11, 0xdf, 0xbe, 0xf4, 0x18, 0x4c, 0xe2, 0xbf,
+ 0x49, 0x59, 0x12, 0x3d, 0x89, 0xbf, 0x49, 0x2b, 0x7e, 0xff, 0x05, 0xba, 0x1c, 0x27, 0x7c, 0x02,
+ 0xc1, 0x27, 0x61, 0x16, 0xeb, 0xc8, 0xf3, 0x90, 0xe3, 0x6a, 0x7a, 0x23, 0xca, 0x3d, 0xe1, 0x2a,
+ 0xa2, 0xf8, 0x85, 0x77, 0x82, 0xb3, 0xb8, 0x42, 0x91, 0xe5, 0x46, 0xa3, 0xb4, 0x03, 0x37, 0x46,
+ 0x64, 0xc5, 0x00, 0x9c, 0x2f, 0x31, 0xce, 0xc9, 0xae, 0xcc, 0xc0, 0xb4, 0x5b, 0xc0, 0xdb, 0xfd,
+ 0xb9, 0x1c, 0x80, 0xf3, 0xf7, 0x18, 0xa7, 0xc2, 0xb0, 0x7c, 0x4a, 0x31, 0xe3, 0x23, 0x30, 0x7e,
+ 0x05, 0x39, 0xbb, 0xb6, 0xcb, 0xae, 0x7f, 0x06, 0xa0, 0x7b, 0x99, 0xd1, 0x8d, 0x31, 0x20, 0xb9,
+ 0x0f, 0xc2, 0x5c, 0x0f, 0x40, 0x66, 0x4f, 0x37, 0xd0, 0x00, 0x14, 0x5f, 0x64, 0x14, 0x23, 0xd8,
+ 0x1e, 0x43, 0xcb, 0x90, 0xaf, 0xdb, 0x6c, 0x67, 0x8a, 0x87, 0xbf, 0xc2, 0xe0, 0x39, 0x8e, 0x61,
+ 0x14, 0x2d, 0xbb, 0xd5, 0x6e, 0xe0, 0x6d, 0x2b, 0x9e, 0xe2, 0xf7, 0x39, 0x05, 0xc7, 0x30, 0x8a,
+ 0x23, 0x84, 0xf5, 0x0f, 0x38, 0x85, 0x2b, 0xc4, 0xf3, 0x61, 0xc8, 0xd9, 0x56, 0xe3, 0xc0, 0xb6,
+ 0x06, 0x71, 0xe2, 0x55, 0xc6, 0x00, 0x0c, 0x82, 0x09, 0x2e, 0x40, 0x76, 0xd0, 0x89, 0xf8, 0xa3,
+ 0x77, 0xf8, 0xf2, 0xe0, 0x33, 0xb0, 0x02, 0x63, 0xbc, 0x40, 0x99, 0xb6, 0x35, 0x00, 0xc5, 0x97,
+ 0x19, 0x45, 0x41, 0x80, 0xb1, 0xd7, 0xf0, 0x90, 0xeb, 0xd5, 0xd1, 0x20, 0x24, 0xaf, 0xf1, 0xd7,
+ 0x60, 0x10, 0x16, 0xca, 0x5d, 0x64, 0x19, 0xfb, 0x83, 0x31, 0x7c, 0x85, 0x87, 0x92, 0x63, 0x30,
+ 0xc5, 0x12, 0x8c, 0x36, 0x75, 0xc7, 0xdd, 0xd7, 0x1b, 0x03, 0x4d, 0xc7, 0x1f, 0x33, 0x8e, 0xbc,
+ 0x0f, 0x62, 0x11, 0x69, 0x5b, 0x47, 0xa1, 0xf9, 0x2a, 0x8f, 0x88, 0x00, 0x63, 0x4b, 0xcf, 0xf5,
+ 0xc8, 0x5d, 0xd9, 0x51, 0xd8, 0xfe, 0x84, 0x2f, 0x3d, 0x8a, 0x5d, 0x17, 0x19, 0x2f, 0x40, 0xd6,
+ 0x35, 0x9f, 0x1f, 0x88, 0xe6, 0x4f, 0xf9, 0x4c, 0x13, 0x00, 0x06, 0x3f, 0x09, 0x37, 0x45, 0x6e,
+ 0x13, 0x03, 0x90, 0xfd, 0x19, 0x23, 0x3b, 0x16, 0xb1, 0x55, 0xb0, 0x92, 0x70, 0x54, 0xca, 0x3f,
+ 0xe7, 0x25, 0x01, 0x85, 0xb8, 0xb6, 0xf0, 0x59, 0xc1, 0xd5, 0xf7, 0x8e, 0x16, 0xb5, 0xbf, 0xe0,
+ 0x51, 0xa3, 0xd8, 0x40, 0xd4, 0xb6, 0xe1, 0x18, 0x63, 0x3c, 0xda, 0xbc, 0x7e, 0x8d, 0x17, 0x56,
+ 0x8a, 0xde, 0x09, 0xce, 0xee, 0xe7, 0x60, 0xca, 0x0f, 0x27, 0x17, 0xa5, 0xae, 0xd6, 0xd4, 0x5b,
+ 0x03, 0x30, 0x7f, 0x9d, 0x31, 0xf3, 0x8a, 0xef, 0xab, 0x5a, 0x77, 0x5d, 0x6f, 0x61, 0xf2, 0x27,
+ 0xa0, 0xc8, 0xc9, 0xdb, 0x96, 0x83, 0x0c, 0xbb, 0x6e, 0x99, 0xcf, 0xa3, 0xda, 0x00, 0xd4, 0x7f,
+ 0x19, 0x9a, 0xaa, 0x1d, 0x01, 0x8e, 0x99, 0x57, 0x41, 0xf6, 0xb5, 0x8a, 0x66, 0x36, 0x5b, 0xb6,
+ 0xe3, 0xc5, 0x30, 0xfe, 0x15, 0x9f, 0x29, 0x1f, 0xb7, 0x4a, 0x60, 0xa5, 0x0a, 0x14, 0xc8, 0xe3,
0xa0, 0x29, 0xf9, 0xd7, 0x8c, 0x68, 0xb4, 0x83, 0x62, 0x85, 0xc3, 0xb0, 0x9b, 0x2d, 0xdd, 0x19,
0xa4, 0xfe, 0xfd, 0x0d, 0x2f, 0x1c, 0x0c, 0xc2, 0x0a, 0x87, 0x77, 0xd0, 0x42, 0x78, 0xb7, 0x1f,
- 0x80, 0xe1, 0x9b, 0xbc, 0x70, 0x70, 0x0c, 0xa3, 0xe0, 0x82, 0x61, 0x00, 0x8a, 0xbf, 0xe5, 0x14,
+ 0x80, 0xe1, 0x1b, 0xbc, 0x70, 0x70, 0x0c, 0xa3, 0xe0, 0x82, 0x61, 0x00, 0x8a, 0xbf, 0xe5, 0x14,
0x1c, 0x83, 0x29, 0x3e, 0xdb, 0xd9, 0x68, 0x1d, 0x54, 0x37, 0x5d, 0xcf, 0xa1, 0x52, 0xb8, 0x3f,
- 0xd5, 0xb7, 0xde, 0x09, 0x8a, 0x30, 0x55, 0x80, 0xe2, 0x4a, 0xc4, 0xae, 0x50, 0xc9, 0x49, 0x29,
- 0xde, 0xb1, 0x6f, 0xf3, 0x4a, 0x24, 0xc0, 0xb0, 0x6f, 0x82, 0x42, 0xc4, 0x61, 0x37, 0xf0, 0xf9,
- 0x60, 0x00, 0xba, 0xef, 0x84, 0x9c, 0xab, 0x72, 0x2c, 0xe6, 0x14, 0xf4, 0x4f, 0xdb, 0xba, 0x8c,
+ 0xd5, 0x37, 0xdf, 0x09, 0x8a, 0x30, 0x55, 0x80, 0xe2, 0x4a, 0xc4, 0xae, 0x50, 0xc9, 0x49, 0x29,
+ 0xde, 0xb1, 0x6f, 0xf1, 0x4a, 0x24, 0xc0, 0xb0, 0x6f, 0x82, 0x42, 0xc4, 0x61, 0x37, 0xf0, 0xf9,
+ 0x60, 0x00, 0xba, 0x6f, 0x87, 0x9c, 0xab, 0x72, 0x2c, 0xe6, 0x14, 0xf4, 0x4f, 0xdb, 0xba, 0x8c,
0x0e, 0x06, 0xca, 0xce, 0xbf, 0x0b, 0xe9, 0x9f, 0x1d, 0x8a, 0xa4, 0x35, 0x64, 0x2c, 0xa4, 0xa7,
- 0x94, 0xb8, 0x1f, 0xeb, 0x14, 0x7f, 0xe1, 0x3d, 0xf6, 0xbe, 0x41, 0x39, 0x55, 0x5a, 0xc3, 0x49,
+ 0x94, 0xb8, 0x5f, 0x01, 0x15, 0x7f, 0xee, 0x3d, 0xf6, 0xbe, 0x41, 0x39, 0x55, 0x5a, 0xc3, 0x49,
0x1e, 0x14, 0x3d, 0xf1, 0x64, 0x2f, 0xbc, 0xe7, 0xe7, 0x79, 0x40, 0xf3, 0x94, 0x2e, 0xc2, 0x68,
- 0x40, 0xf0, 0xc4, 0x53, 0xfd, 0x22, 0xa3, 0xca, 0x8b, 0x7a, 0xa7, 0x74, 0x16, 0x52, 0x58, 0xbc,
- 0xc4, 0xc3, 0x7f, 0x89, 0xc1, 0x89, 0x79, 0xe9, 0x41, 0xc8, 0x70, 0xd1, 0x12, 0x0f, 0xfd, 0x65,
- 0x06, 0xf5, 0x21, 0x18, 0xce, 0x05, 0x4b, 0x3c, 0xfc, 0x57, 0x38, 0x9c, 0x43, 0x30, 0x7c, 0xf0,
- 0x10, 0x7e, 0xf7, 0x57, 0x53, 0x6c, 0xd3, 0xe1, 0xb1, 0xbb, 0x00, 0x23, 0x4c, 0xa9, 0xc4, 0xa3,
- 0x3f, 0xcf, 0x06, 0xe7, 0x88, 0xd2, 0xfd, 0x90, 0x1e, 0x30, 0xe0, 0xbf, 0xc6, 0xa0, 0xd4, 0xbe,
- 0xb4, 0x04, 0x39, 0x41, 0x9d, 0xc4, 0xc3, 0x7f, 0x9d, 0xc1, 0x45, 0x14, 0x76, 0x9d, 0xa9, 0x93,
- 0x78, 0x82, 0xdf, 0xe0, 0xae, 0x33, 0x04, 0x0e, 0x1b, 0x17, 0x26, 0xf1, 0xe8, 0xdf, 0xe4, 0x51,
- 0xe7, 0x90, 0xd2, 0xc3, 0x90, 0xf5, 0x37, 0x9b, 0x78, 0xfc, 0x6f, 0x31, 0x7c, 0x07, 0x83, 0x23,
- 0x20, 0x6c, 0x76, 0xf1, 0x14, 0xbf, 0xcd, 0x23, 0x20, 0xa0, 0xf0, 0x32, 0x0a, 0x0b, 0x98, 0x78,
- 0xa6, 0xdf, 0xe1, 0xcb, 0x28, 0xa4, 0x5f, 0xf0, 0x6c, 0x92, 0x9a, 0x1f, 0x4f, 0xf1, 0xbb, 0x7c,
- 0x36, 0x89, 0x3d, 0x76, 0x23, 0xac, 0x08, 0xe2, 0x39, 0x7e, 0x8f, 0xbb, 0x11, 0x12, 0x04, 0xa5,
+ 0x40, 0xf0, 0xc4, 0x53, 0xfd, 0x3c, 0xa3, 0xca, 0x8b, 0x7a, 0xa7, 0x74, 0x16, 0x52, 0x58, 0xbc,
+ 0xc4, 0xc3, 0x7f, 0x81, 0xc1, 0x89, 0x79, 0xe9, 0x41, 0xc8, 0x70, 0xd1, 0x12, 0x0f, 0xfd, 0x45,
+ 0x06, 0xf5, 0x21, 0x18, 0xce, 0x05, 0x4b, 0x3c, 0xfc, 0x97, 0x38, 0x9c, 0x43, 0x30, 0x7c, 0xf0,
+ 0x10, 0x7e, 0xe7, 0x97, 0x53, 0x6c, 0xd3, 0xe1, 0xb1, 0xbb, 0x00, 0x23, 0x4c, 0xa9, 0xc4, 0xa3,
+ 0x3f, 0xcf, 0x06, 0xe7, 0x88, 0xd2, 0xfd, 0x90, 0x1e, 0x30, 0xe0, 0xbf, 0xca, 0xa0, 0xd4, 0xbe,
+ 0xb4, 0x04, 0x39, 0x41, 0x9d, 0xc4, 0xc3, 0x7f, 0x8d, 0xc1, 0x45, 0x14, 0x76, 0x9d, 0xa9, 0x93,
+ 0x78, 0x82, 0x5f, 0xe7, 0xae, 0x33, 0x04, 0x0e, 0x1b, 0x17, 0x26, 0xf1, 0xe8, 0xdf, 0xe0, 0x51,
+ 0xe7, 0x90, 0xd2, 0xc3, 0x90, 0xf5, 0x37, 0x9b, 0x78, 0xfc, 0x6f, 0x32, 0x7c, 0x07, 0x83, 0x23,
+ 0x20, 0x6c, 0x76, 0xf1, 0x14, 0xbf, 0xc5, 0x23, 0x20, 0xa0, 0xf0, 0x32, 0x0a, 0x0b, 0x98, 0x78,
+ 0xa6, 0xdf, 0xe6, 0xcb, 0x28, 0xa4, 0x5f, 0xf0, 0x6c, 0x92, 0x9a, 0x1f, 0x4f, 0xf1, 0x3b, 0x7c,
+ 0x36, 0x89, 0x3d, 0x76, 0x23, 0xac, 0x08, 0xe2, 0x39, 0x7e, 0x97, 0xbb, 0x11, 0x12, 0x04, 0xa5,
0x2d, 0x50, 0xba, 0xd5, 0x40, 0x3c, 0xdf, 0x8b, 0x8c, 0x6f, 0xbc, 0x4b, 0x0c, 0x94, 0x1e, 0x87,
0x63, 0xd1, 0x4a, 0x20, 0x9e, 0xf5, 0x0b, 0xef, 0x85, 0xce, 0x6e, 0xa2, 0x10, 0x28, 0x6d, 0x77,
0xb6, 0x14, 0x51, 0x05, 0xc4, 0xd3, 0xbe, 0xf4, 0x5e, 0xb0, 0x70, 0x8b, 0x22, 0xa0, 0x54, 0x06,
@@ -545,84 +627,84 @@ func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_des
0x5f, 0xe4, 0x4b, 0x83, 0x21, 0xf0, 0xd2, 0xe0, 0x5b, 0x6f, 0x3c, 0xfa, 0x15, 0xbe, 0x34, 0x38,
0x04, 0x67, 0xb6, 0xb0, 0xbb, 0xc5, 0x33, 0xbc, 0xca, 0x33, 0x5b, 0x40, 0x95, 0x36, 0x60, 0xbc,
0x6b, 0x43, 0x8c, 0xa7, 0xfa, 0x12, 0xa3, 0x92, 0xc3, 0xfb, 0xa1, 0xb8, 0x79, 0xb1, 0xcd, 0x30,
- 0x9e, 0xed, 0x8f, 0x42, 0x9b, 0x17, 0xdb, 0x0b, 0x4b, 0x17, 0x20, 0x63, 0xb5, 0x1b, 0x0d, 0xbc,
- 0x78, 0x94, 0xfe, 0x3f, 0xb0, 0x2b, 0xfe, 0xcb, 0x07, 0x2c, 0x3a, 0x1c, 0x50, 0x3a, 0x0b, 0x69,
+ 0x9e, 0xed, 0x0f, 0x43, 0x9b, 0x17, 0xdb, 0x0b, 0x4b, 0x17, 0x20, 0x63, 0xb5, 0x1b, 0x0d, 0xbc,
+ 0x78, 0x94, 0xfe, 0xbf, 0xdc, 0x2b, 0xfe, 0xcb, 0x07, 0x2c, 0x3a, 0x1c, 0x50, 0x3a, 0x0b, 0x69,
0xd4, 0xdc, 0x45, 0xb5, 0x38, 0xe4, 0xbf, 0x7e, 0xc0, 0x0b, 0x26, 0xb6, 0x2e, 0x3d, 0x0c, 0x40,
- 0xaf, 0x46, 0xc8, 0x67, 0xbf, 0x18, 0xec, 0xbf, 0x7d, 0xc0, 0x7e, 0xfa, 0xd2, 0x81, 0x74, 0x08,
- 0xe8, 0x0f, 0x69, 0xfa, 0x13, 0xbc, 0x13, 0x24, 0x20, 0x33, 0xf2, 0x00, 0x8c, 0x3c, 0xe3, 0xda,
+ 0xaf, 0x46, 0xc8, 0x67, 0xbf, 0x18, 0xec, 0xbf, 0x7d, 0xc0, 0x7e, 0x53, 0xd3, 0x81, 0x74, 0x08,
+ 0xe8, 0x2f, 0x74, 0xfa, 0x13, 0xbc, 0x13, 0x24, 0x20, 0x33, 0xf2, 0x00, 0x8c, 0x3c, 0xe3, 0xda,
0x96, 0xa7, 0xd7, 0xe3, 0xd0, 0xff, 0xce, 0xd0, 0xdc, 0x1e, 0x07, 0xac, 0x69, 0x3b, 0xc8, 0xd3,
0xeb, 0x6e, 0x1c, 0xf6, 0x3f, 0x18, 0xd6, 0x07, 0x60, 0xb0, 0xa1, 0xbb, 0xde, 0x20, 0xef, 0xfd,
- 0x53, 0x0e, 0xe6, 0x00, 0xec, 0x34, 0xfe, 0xfb, 0x32, 0x3a, 0x88, 0xc3, 0xbe, 0xcb, 0x9d, 0x66,
- 0xf6, 0xa5, 0x07, 0x21, 0x8b, 0xff, 0xa4, 0xbf, 0x67, 0x8b, 0x01, 0xff, 0x27, 0x03, 0x77, 0x10,
- 0x78, 0x64, 0xd7, 0xab, 0x79, 0x66, 0x7c, 0xb0, 0xff, 0x8b, 0xcd, 0x34, 0xb7, 0x2f, 0x95, 0x21,
- 0xe7, 0x7a, 0xb5, 0x5a, 0x9b, 0xe9, 0xd3, 0x18, 0xf8, 0x7f, 0x7f, 0xe0, 0x5f, 0x59, 0xf8, 0x18,
- 0x3c, 0xdb, 0x57, 0x2f, 0x7b, 0x2d, 0x9b, 0x7c, 0xe6, 0x88, 0x63, 0x78, 0x8f, 0x31, 0x08, 0x90,
- 0xc5, 0x4a, 0xf4, 0xf5, 0x2d, 0xac, 0xd8, 0x2b, 0x36, 0xbd, 0xb8, 0x7d, 0x6a, 0x26, 0xfe, 0x06,
- 0x16, 0xfe, 0xe7, 0x6e, 0x38, 0x69, 0xd8, 0xcd, 0x5d, 0xdb, 0x9d, 0xf7, 0xcb, 0xf1, 0x7c, 0x53,
- 0x6f, 0xb9, 0xa4, 0x7b, 0x81, 0x5d, 0xce, 0xe6, 0xd8, 0x13, 0xee, 0x98, 0x3a, 0xda, 0xc5, 0xee,
- 0xcc, 0xcd, 0x30, 0x7a, 0xb1, 0x61, 0xeb, 0x9e, 0x69, 0xd5, 0xb7, 0xb0, 0xef, 0x4a, 0x1e, 0xa4,
- 0x3d, 0xf2, 0x61, 0x52, 0x52, 0xa5, 0xbd, 0x99, 0x7f, 0x4c, 0x43, 0x96, 0xde, 0x09, 0xae, 0xeb,
- 0x2d, 0xe5, 0xe7, 0x21, 0xbf, 0xc1, 0x16, 0xe2, 0xbd, 0x0b, 0xe7, 0x5d, 0xff, 0x1b, 0x84, 0x30,
- 0xfe, 0x9c, 0x6f, 0x3d, 0x27, 0x9a, 0x92, 0x1f, 0x22, 0x2c, 0xde, 0xf3, 0xa3, 0x37, 0x8e, 0xdf,
- 0xd5, 0xd3, 0x3f, 0x2c, 0x2d, 0xe6, 0xe9, 0x8a, 0x99, 0xdb, 0x31, 0x2d, 0xef, 0xde, 0x85, 0xf3,
- 0x6a, 0x60, 0x3c, 0xe5, 0x0a, 0x64, 0x58, 0x87, 0xcb, 0xbe, 0x4d, 0xdd, 0xda, 0x63, 0x6c, 0x6e,
- 0x46, 0xc7, 0x3d, 0xf3, 0xfa, 0x1b, 0xc7, 0x87, 0x8e, 0x3c, 0xb6, 0x3f, 0x96, 0xf2, 0x2c, 0xe4,
- 0xb8, 0x1f, 0xab, 0x35, 0x97, 0xfd, 0x5f, 0x84, 0x3b, 0x62, 0x5e, 0x7b, 0xb5, 0xc6, 0x46, 0xbf,
- 0xfd, 0x47, 0x6f, 0x1c, 0x9f, 0xe9, 0x3b, 0xf2, 0xdc, 0x4e, 0xdb, 0xac, 0xa9, 0xe2, 0x18, 0xca,
- 0xd3, 0x90, 0xc4, 0x43, 0xd1, 0x9f, 0x6f, 0x1e, 0xef, 0x31, 0x94, 0x3f, 0xc4, 0x29, 0xf6, 0x82,
- 0x83, 0x0c, 0x83, 0x79, 0xa7, 0x1e, 0x86, 0xf1, 0xae, 0xe9, 0x51, 0x64, 0x48, 0x5e, 0x46, 0x07,
- 0xec, 0x77, 0x72, 0xf8, 0x4f, 0x65, 0xb2, 0xf3, 0x43, 0x56, 0x69, 0x36, 0xcf, 0x7e, 0x9d, 0x5a,
- 0x4a, 0x9c, 0x97, 0xa6, 0x2e, 0xc0, 0x68, 0x20, 0xc6, 0x47, 0x02, 0x3f, 0x04, 0x72, 0x38, 0x4a,
- 0x47, 0xc2, 0x9f, 0x83, 0xcc, 0x87, 0xc1, 0xcd, 0xfc, 0x50, 0x81, 0x91, 0x72, 0xa3, 0xb1, 0xae,
- 0xb7, 0x5c, 0xe5, 0x49, 0x18, 0xa7, 0x07, 0xa0, 0x6d, 0x7b, 0x99, 0x7c, 0x0d, 0x5c, 0xd7, 0x5b,
- 0x2c, 0xa1, 0x4f, 0x07, 0xc2, 0xcd, 0x00, 0x73, 0x5d, 0xd6, 0x64, 0x7c, 0xb5, 0x9b, 0x45, 0x79,
- 0x0c, 0x64, 0xde, 0x48, 0xd6, 0x16, 0x66, 0xa6, 0xe9, 0x7a, 0xaa, 0x2f, 0x33, 0x37, 0xa6, 0xc4,
- 0x5d, 0x1c, 0xca, 0x43, 0x90, 0x59, 0xb5, 0xbc, 0xfb, 0x16, 0x30, 0x1f, 0xcd, 0xc1, 0x99, 0x48,
- 0x3e, 0x6e, 0x44, 0x79, 0x7c, 0x0c, 0xc3, 0x9f, 0x3b, 0x83, 0xf1, 0xa9, 0xfe, 0x78, 0x62, 0xd4,
- 0xc1, 0x93, 0x47, 0xa5, 0x0c, 0x59, 0x3c, 0xe7, 0xd4, 0x01, 0xfa, 0xdf, 0x60, 0x6e, 0x89, 0x24,
- 0xf0, 0xad, 0x28, 0x43, 0x07, 0xc5, 0x29, 0xa8, 0x0f, 0xc3, 0x31, 0x14, 0x82, 0x13, 0x1d, 0x14,
- 0xa6, 0xa8, 0xfa, 0x5e, 0x8c, 0xf4, 0xa1, 0xa8, 0x86, 0xbc, 0xa8, 0x8a, 0x5e, 0x54, 0x7d, 0x2f,
- 0x32, 0x31, 0x14, 0xa2, 0x17, 0xfe, 0xb3, 0xb2, 0x0c, 0x70, 0xd1, 0x7c, 0x0e, 0xd5, 0xa8, 0x1b,
- 0xd9, 0x88, 0x62, 0xc4, 0x39, 0x3a, 0x66, 0x94, 0x44, 0xc0, 0x29, 0x2b, 0x90, 0xab, 0xee, 0x75,
- 0x68, 0x80, 0xfd, 0x2f, 0xa0, 0x48, 0x57, 0xf6, 0x42, 0x3c, 0x22, 0xd2, 0x77, 0x87, 0xbe, 0x52,
- 0x2e, 0xce, 0x1d, 0xe1, 0x9d, 0x04, 0x5c, 0xc7, 0x1d, 0x4a, 0x93, 0x8f, 0x75, 0x47, 0xe0, 0x11,
- 0x91, 0xca, 0x05, 0x18, 0x59, 0xb4, 0x6d, 0x6c, 0x59, 0x1c, 0x25, 0x24, 0x27, 0x23, 0x49, 0x98,
- 0x0d, 0x25, 0xe0, 0x08, 0x32, 0x3b, 0x24, 0xf5, 0x31, 0xbc, 0xd0, 0x6f, 0x76, 0xb8, 0x15, 0x9f,
- 0x1d, 0xfe, 0x2c, 0xae, 0xc0, 0xc5, 0x03, 0x0f, 0xe1, 0xc3, 0x46, 0x71, 0x6c, 0x80, 0x15, 0xc8,
- 0x8d, 0x43, 0x2b, 0x90, 0x37, 0x2b, 0x55, 0x18, 0xe3, 0x6d, 0x15, 0xab, 0x8d, 0x6b, 0x70, 0x51,
- 0x66, 0x3f, 0xf1, 0xef, 0x47, 0xcb, 0x6c, 0x29, 0x6b, 0x98, 0x41, 0xd9, 0x82, 0x02, 0x6f, 0x5a,
- 0x77, 0xc9, 0x4b, 0x8f, 0x47, 0xec, 0xab, 0x61, 0x4e, 0x6a, 0x4a, 0x29, 0x43, 0xf8, 0xa9, 0x65,
- 0x38, 0x16, 0x5d, 0xad, 0xe2, 0xaa, 0xa5, 0x24, 0x56, 0xd9, 0x25, 0xb8, 0x21, 0xb2, 0x32, 0xc5,
- 0x91, 0x24, 0x42, 0xfb, 0x44, 0xa0, 0x1c, 0x89, 0xe0, 0x74, 0x04, 0x38, 0xdd, 0x0d, 0xee, 0x24,
- 0x99, 0x08, 0x4e, 0x46, 0x80, 0x93, 0x22, 0xf8, 0x33, 0x50, 0x08, 0xd6, 0x21, 0x11, 0x3d, 0x1a,
- 0x81, 0x1e, 0x8d, 0x40, 0x47, 0x8f, 0x9d, 0x8a, 0x40, 0xa7, 0x42, 0xe8, 0x6a, 0xcf, 0xb1, 0xc7,
- 0x23, 0xd0, 0xe3, 0x11, 0xe8, 0xe8, 0xb1, 0x95, 0x08, 0xb4, 0x22, 0xa2, 0x1f, 0x84, 0xb1, 0x50,
- 0xc9, 0x11, 0xe1, 0x23, 0x11, 0xf0, 0x91, 0xd0, 0xde, 0x1c, 0x2e, 0x35, 0x22, 0x7e, 0x2c, 0x02,
- 0x3f, 0x16, 0x35, 0x7c, 0xb4, 0xf7, 0xc3, 0x11, 0xf0, 0xe1, 0xc8, 0xe1, 0xa3, 0xf1, 0x72, 0x04,
- 0x5e, 0x16, 0xf1, 0x25, 0xc8, 0x8b, 0x55, 0x45, 0xc4, 0x66, 0x22, 0xb0, 0x99, 0x70, 0xdc, 0x03,
- 0x25, 0x25, 0x2e, 0xd3, 0xb3, 0x3d, 0x96, 0x4b, 0xa0, 0x8c, 0x1c, 0x49, 0xd9, 0x3c, 0x01, 0x93,
- 0x51, 0x45, 0x23, 0x82, 0xe3, 0x94, 0xc8, 0x51, 0x58, 0x98, 0x0c, 0x14, 0x0b, 0x82, 0x6b, 0x37,
- 0x45, 0xe6, 0xa7, 0x61, 0x22, 0xa2, 0x74, 0x44, 0x10, 0xdf, 0x23, 0x12, 0xe7, 0x16, 0xa6, 0x02,
- 0xc4, 0x81, 0xb3, 0x82, 0x28, 0xad, 0x7e, 0x3c, 0x01, 0x05, 0x56, 0xa2, 0x36, 0x9d, 0x1a, 0x72,
- 0x50, 0x4d, 0xf9, 0xff, 0xbd, 0x15, 0xd6, 0x42, 0x54, 0x69, 0x63, 0xb8, 0x23, 0x08, 0xad, 0xa7,
- 0x7b, 0x0a, 0xad, 0x7b, 0x07, 0x19, 0x20, 0x4e, 0x6f, 0x55, 0xba, 0xf4, 0xd6, 0x9d, 0xfd, 0x68,
- 0x7b, 0xc9, 0xae, 0x4a, 0x97, 0xec, 0x8a, 0xa3, 0x89, 0x54, 0x5f, 0x97, 0xba, 0xd5, 0xd7, 0xa9,
- 0x7e, 0x3c, 0xbd, 0x45, 0xd8, 0xa5, 0x6e, 0x11, 0x16, 0xcb, 0x14, 0xad, 0xc5, 0x2e, 0x75, 0x6b,
- 0xb1, 0xbe, 0x4c, 0xbd, 0x25, 0xd9, 0xa5, 0x6e, 0x49, 0x16, 0xcb, 0x14, 0xad, 0xcc, 0x1e, 0x8d,
- 0x50, 0x66, 0xa7, 0xfb, 0x51, 0xf5, 0x13, 0x68, 0x1b, 0x51, 0x02, 0xed, 0xae, 0xbe, 0x8e, 0xf5,
- 0xd5, 0x69, 0x8f, 0x46, 0xe8, 0xb4, 0x78, 0xe7, 0x7a, 0xc8, 0xb5, 0x8d, 0x28, 0xb9, 0x36, 0x80,
- 0x73, 0xbd, 0x54, 0xdb, 0x62, 0x58, 0xb5, 0xcd, 0xf6, 0xe3, 0x8a, 0x16, 0x6f, 0x97, 0xba, 0xc5,
- 0xdb, 0xa9, 0xf8, 0xb5, 0x18, 0xa5, 0xe1, 0x9e, 0xee, 0xa9, 0xe1, 0x06, 0x5a, 0xdc, 0x71, 0x52,
- 0xee, 0xa9, 0x5e, 0x52, 0xee, 0x9e, 0x41, 0xd8, 0xfb, 0x2b, 0xba, 0xc7, 0x7b, 0x28, 0xba, 0xf9,
- 0x41, 0xa8, 0x3f, 0x11, 0x76, 0x9f, 0x08, 0xbb, 0x4f, 0x84, 0xdd, 0x27, 0xc2, 0xee, 0xff, 0x86,
- 0xb0, 0x2b, 0xa5, 0x5e, 0x7c, 0xf5, 0xb8, 0x74, 0xea, 0x24, 0x8c, 0xb0, 0xa1, 0x95, 0x61, 0x48,
- 0xac, 0x97, 0xe5, 0x21, 0xf2, 0xef, 0xa2, 0x2c, 0x91, 0x7f, 0x97, 0xe4, 0xc4, 0xe2, 0xda, 0xeb,
- 0xd7, 0xa7, 0x87, 0xbe, 0x7f, 0x7d, 0x7a, 0xe8, 0x87, 0xd7, 0xa7, 0x87, 0xde, 0xbc, 0x3e, 0x2d,
- 0xbd, 0x7d, 0x7d, 0x5a, 0x7a, 0xf7, 0xfa, 0xb4, 0xf4, 0xfe, 0xf5, 0x69, 0xe9, 0xda, 0xe1, 0xb4,
- 0xf4, 0x95, 0xc3, 0x69, 0xe9, 0x6b, 0x87, 0xd3, 0xd2, 0xb7, 0x0e, 0xa7, 0xa5, 0xef, 0x1e, 0x4e,
- 0x4b, 0xaf, 0x1f, 0x4e, 0x4b, 0xdf, 0x3f, 0x9c, 0x1e, 0x7a, 0xf3, 0x70, 0x5a, 0x7a, 0xfb, 0x70,
- 0x7a, 0xe8, 0xdd, 0xc3, 0x69, 0xe9, 0xfd, 0xc3, 0xe9, 0xa1, 0x6b, 0x3f, 0x99, 0x1e, 0xfa, 0xdf,
- 0x00, 0x00, 0x00, 0xff, 0xff, 0xa3, 0xbb, 0xc4, 0x26, 0x95, 0x49, 0x00, 0x00,
+ 0x9f, 0x1c, 0xcc, 0x01, 0xd8, 0x69, 0xfc, 0xf7, 0x65, 0x74, 0x10, 0x87, 0x7d, 0x97, 0x3b, 0xcd,
+ 0xec, 0x4b, 0x0f, 0x42, 0x16, 0xff, 0x49, 0x7f, 0x28, 0x17, 0x03, 0xfe, 0x2f, 0x06, 0xee, 0x20,
+ 0xf0, 0xc8, 0xae, 0x57, 0xf3, 0xcc, 0xf8, 0x60, 0xff, 0x37, 0x9b, 0x69, 0x6e, 0x5f, 0x2a, 0x43,
+ 0xce, 0xf5, 0x6a, 0xb5, 0x36, 0xd3, 0xa7, 0x31, 0xf0, 0xff, 0xf9, 0xc0, 0xbf, 0xb2, 0xf0, 0x31,
+ 0x78, 0xb6, 0xaf, 0x5e, 0xf6, 0x5a, 0x36, 0xf9, 0xcc, 0x11, 0xc7, 0xf0, 0x1e, 0x63, 0x10, 0x20,
+ 0x8b, 0x95, 0xe8, 0xeb, 0x5b, 0x58, 0xb1, 0x57, 0x6c, 0x7a, 0x71, 0xfb, 0xd4, 0x4c, 0xfc, 0x0d,
+ 0x2c, 0xfc, 0xef, 0xdd, 0x70, 0xd2, 0xb0, 0x9b, 0xbb, 0xb6, 0x3b, 0xef, 0x97, 0xe3, 0xf9, 0xa6,
+ 0xde, 0x72, 0x49, 0xf7, 0x02, 0xbb, 0x9c, 0xcd, 0xb1, 0x27, 0xdc, 0x31, 0x75, 0xb4, 0x8b, 0xdd,
+ 0x99, 0x9b, 0x61, 0xf4, 0x62, 0xc3, 0xd6, 0x3d, 0xd3, 0xaa, 0x6f, 0x61, 0xdf, 0x95, 0x3c, 0x48,
+ 0x7b, 0xe4, 0xc3, 0xa4, 0xa4, 0x4a, 0x7b, 0x33, 0xff, 0x98, 0x86, 0x2c, 0xbd, 0x13, 0x5c, 0xd7,
+ 0x5b, 0xca, 0xcf, 0x42, 0x7e, 0x83, 0x2d, 0xc4, 0x7b, 0x17, 0xce, 0xbb, 0xfe, 0x37, 0x08, 0x61,
+ 0xfc, 0x39, 0xdf, 0x7a, 0x4e, 0x34, 0x25, 0x3f, 0x44, 0x58, 0xbc, 0xe7, 0x87, 0x6f, 0x1c, 0xbf,
+ 0xab, 0xa7, 0x7f, 0x58, 0x5a, 0xcc, 0xd3, 0x15, 0x33, 0xb7, 0x63, 0x5a, 0xde, 0xbd, 0x0b, 0xe7,
+ 0xd5, 0xc0, 0x78, 0xca, 0x15, 0xc8, 0xb0, 0x0e, 0x97, 0x7d, 0x9b, 0xba, 0xb5, 0xc7, 0xd8, 0xdc,
+ 0x8c, 0x8e, 0x7b, 0xe6, 0xf5, 0x37, 0x8e, 0x0f, 0x1d, 0x79, 0x6c, 0x7f, 0x2c, 0xe5, 0x59, 0xc8,
+ 0x71, 0x3f, 0x56, 0x6b, 0x2e, 0xfb, 0x4f, 0x0e, 0x77, 0xc4, 0xbc, 0xf6, 0x6a, 0x8d, 0x8d, 0x7e,
+ 0xfb, 0x0f, 0xdf, 0x38, 0x3e, 0xd3, 0x77, 0xe4, 0xb9, 0x9d, 0xb6, 0x59, 0x53, 0xc5, 0x31, 0x94,
+ 0xa7, 0x21, 0x89, 0x87, 0xa2, 0xbf, 0x0b, 0x3d, 0xde, 0x63, 0x28, 0x7f, 0x88, 0x53, 0xec, 0x05,
+ 0x07, 0x19, 0x06, 0xf3, 0x4e, 0x3d, 0x0c, 0xe3, 0x5d, 0xd3, 0xa3, 0xc8, 0x90, 0xbc, 0x8c, 0x0e,
+ 0xd8, 0x0f, 0xf0, 0xf0, 0x9f, 0xca, 0x64, 0xe7, 0x17, 0xb2, 0xd2, 0x6c, 0x9e, 0xfd, 0xec, 0xb5,
+ 0x94, 0x38, 0x2f, 0x4d, 0x5d, 0x80, 0xd1, 0x40, 0x8c, 0x8f, 0x04, 0x7e, 0x08, 0xe4, 0x70, 0x94,
+ 0x8e, 0x84, 0x3f, 0x07, 0x99, 0x0f, 0x83, 0x9b, 0xf9, 0x81, 0x02, 0x23, 0xe5, 0x46, 0x63, 0x5d,
+ 0x6f, 0xb9, 0xca, 0x93, 0x30, 0x4e, 0x0f, 0x40, 0xdb, 0xf6, 0x32, 0xf9, 0x1a, 0xb8, 0xae, 0xb7,
+ 0x58, 0x42, 0x9f, 0x0e, 0x84, 0x9b, 0x01, 0xe6, 0xba, 0xac, 0xc9, 0xf8, 0x6a, 0x37, 0x8b, 0xf2,
+ 0x18, 0xc8, 0xbc, 0x91, 0xac, 0x2d, 0xcc, 0x4c, 0xd3, 0xf5, 0x54, 0x5f, 0x66, 0x6e, 0x4c, 0x89,
+ 0xbb, 0x38, 0x94, 0x87, 0x20, 0xb3, 0x6a, 0x79, 0xf7, 0x2d, 0x60, 0x3e, 0x9a, 0x83, 0x33, 0x91,
+ 0x7c, 0xdc, 0x88, 0xf2, 0xf8, 0x18, 0x86, 0x3f, 0x77, 0x06, 0xe3, 0x53, 0xfd, 0xf1, 0xc4, 0xa8,
+ 0x83, 0x27, 0x8f, 0x4a, 0x19, 0xb2, 0x78, 0xce, 0xa9, 0x03, 0xf4, 0xff, 0xd7, 0xdc, 0x12, 0x49,
+ 0xe0, 0x5b, 0x51, 0x86, 0x0e, 0x8a, 0x53, 0x50, 0x1f, 0x86, 0x63, 0x28, 0x04, 0x27, 0x3a, 0x28,
+ 0x4c, 0x51, 0xf5, 0xbd, 0x18, 0xe9, 0x43, 0x51, 0x0d, 0x79, 0x51, 0x15, 0xbd, 0xa8, 0xfa, 0x5e,
+ 0x64, 0x62, 0x28, 0x44, 0x2f, 0xfc, 0x67, 0x65, 0x19, 0xe0, 0xa2, 0xf9, 0x1c, 0xaa, 0x51, 0x37,
+ 0xb2, 0x11, 0xc5, 0x88, 0x73, 0x74, 0xcc, 0x28, 0x89, 0x80, 0x53, 0x56, 0x20, 0x57, 0xdd, 0xeb,
+ 0xd0, 0x00, 0xfb, 0xef, 0x45, 0x91, 0xae, 0xec, 0x85, 0x78, 0x44, 0xa4, 0xef, 0x0e, 0x7d, 0xa5,
+ 0x5c, 0x9c, 0x3b, 0xc2, 0x3b, 0x09, 0xb8, 0x8e, 0x3b, 0x94, 0x26, 0x1f, 0xeb, 0x8e, 0xc0, 0x23,
+ 0x22, 0x95, 0x0b, 0x30, 0xb2, 0x68, 0xdb, 0xd8, 0xb2, 0x38, 0x4a, 0x48, 0x4e, 0x46, 0x92, 0x30,
+ 0x1b, 0x4a, 0xc0, 0x11, 0x64, 0x76, 0x48, 0xea, 0x63, 0x78, 0xa1, 0xdf, 0xec, 0x70, 0x2b, 0x3e,
+ 0x3b, 0xfc, 0x59, 0x5c, 0x81, 0x8b, 0x07, 0x1e, 0xc2, 0x87, 0x8d, 0xe2, 0xd8, 0x00, 0x2b, 0x90,
+ 0x1b, 0x87, 0x56, 0x20, 0x6f, 0x56, 0xaa, 0x30, 0xc6, 0xdb, 0x2a, 0x56, 0x1b, 0xd7, 0xe0, 0xa2,
+ 0xcc, 0xfe, 0xef, 0x40, 0x3f, 0x5a, 0x66, 0x4b, 0x59, 0xc3, 0x0c, 0xca, 0x16, 0x14, 0x78, 0xd3,
+ 0xba, 0x4b, 0x5e, 0x7a, 0x3c, 0x62, 0x5f, 0x0d, 0x73, 0x52, 0x53, 0x4a, 0x19, 0xc2, 0x4f, 0x2d,
+ 0xc3, 0xb1, 0xe8, 0x6a, 0x15, 0x57, 0x2d, 0x25, 0xb1, 0xca, 0x2e, 0xc1, 0x0d, 0x91, 0x95, 0x29,
+ 0x8e, 0x24, 0x11, 0xda, 0x27, 0x02, 0xe5, 0x48, 0x04, 0xa7, 0x23, 0xc0, 0xe9, 0x6e, 0x70, 0x27,
+ 0xc9, 0x44, 0x70, 0x32, 0x02, 0x9c, 0x14, 0xc1, 0x9f, 0x81, 0x42, 0xb0, 0x0e, 0x89, 0xe8, 0xd1,
+ 0x08, 0xf4, 0x68, 0x04, 0x3a, 0x7a, 0xec, 0x54, 0x04, 0x3a, 0x15, 0x42, 0x57, 0x7b, 0x8e, 0x3d,
+ 0x1e, 0x81, 0x1e, 0x8f, 0x40, 0x47, 0x8f, 0xad, 0x44, 0xa0, 0x15, 0x11, 0xfd, 0x20, 0x8c, 0x85,
+ 0x4a, 0x8e, 0x08, 0x1f, 0x89, 0x80, 0x8f, 0x84, 0xf6, 0xe6, 0x70, 0xa9, 0x11, 0xf1, 0x63, 0x11,
+ 0xf8, 0xb1, 0xa8, 0xe1, 0xa3, 0xbd, 0x1f, 0x8e, 0x80, 0x0f, 0x47, 0x0e, 0x1f, 0x8d, 0x97, 0x23,
+ 0xf0, 0xb2, 0x88, 0x2f, 0x41, 0x5e, 0xac, 0x2a, 0x22, 0x36, 0x13, 0x81, 0xcd, 0x84, 0xe3, 0x1e,
+ 0x28, 0x29, 0x71, 0x99, 0x9e, 0xed, 0xb1, 0x5c, 0x02, 0x65, 0xe4, 0x48, 0xca, 0xe6, 0x09, 0x98,
+ 0x8c, 0x2a, 0x1a, 0x11, 0x1c, 0xa7, 0x44, 0x8e, 0xc2, 0xc2, 0x64, 0xa0, 0x58, 0x10, 0x5c, 0xbb,
+ 0x29, 0x32, 0x3f, 0x0d, 0x13, 0x11, 0xa5, 0x23, 0x82, 0xf8, 0x1e, 0x91, 0x38, 0xb7, 0x30, 0x15,
+ 0x20, 0x0e, 0x9c, 0x15, 0x44, 0x69, 0xf5, 0xa3, 0x09, 0x28, 0xb0, 0x12, 0xb5, 0xe9, 0xd4, 0x90,
+ 0x83, 0x6a, 0xca, 0x4f, 0xf7, 0x56, 0x58, 0x0b, 0x51, 0xa5, 0x8d, 0xe1, 0x8e, 0x20, 0xb4, 0x9e,
+ 0xee, 0x29, 0xb4, 0xee, 0x1d, 0x64, 0x80, 0x38, 0xbd, 0x55, 0xe9, 0xd2, 0x5b, 0x77, 0xf6, 0xa3,
+ 0xed, 0x25, 0xbb, 0x2a, 0x5d, 0xb2, 0x2b, 0x8e, 0x26, 0x52, 0x7d, 0x5d, 0xea, 0x56, 0x5f, 0xa7,
+ 0xfa, 0xf1, 0xf4, 0x16, 0x61, 0x97, 0xba, 0x45, 0x58, 0x2c, 0x53, 0xb4, 0x16, 0xbb, 0xd4, 0xad,
+ 0xc5, 0xfa, 0x32, 0xf5, 0x96, 0x64, 0x97, 0xba, 0x25, 0x59, 0x2c, 0x53, 0xb4, 0x32, 0x7b, 0x34,
+ 0x42, 0x99, 0x9d, 0xee, 0x47, 0xd5, 0x4f, 0xa0, 0x6d, 0x44, 0x09, 0xb4, 0xbb, 0xfa, 0x3a, 0xd6,
+ 0x57, 0xa7, 0x3d, 0x1a, 0xa1, 0xd3, 0xe2, 0x9d, 0xeb, 0x21, 0xd7, 0x36, 0xa2, 0xe4, 0xda, 0x00,
+ 0xce, 0xf5, 0x52, 0x6d, 0x8b, 0x61, 0xd5, 0x36, 0xdb, 0x8f, 0x2b, 0x5a, 0xbc, 0x5d, 0xea, 0x16,
+ 0x6f, 0xa7, 0xe2, 0xd7, 0x62, 0x94, 0x86, 0x7b, 0xba, 0xa7, 0x86, 0x1b, 0x68, 0x71, 0xc7, 0x49,
+ 0xb9, 0xa7, 0x7a, 0x49, 0xb9, 0x7b, 0x06, 0x61, 0xef, 0xaf, 0xe8, 0x1e, 0xef, 0xa1, 0xe8, 0xe6,
+ 0x07, 0xa1, 0xfe, 0x44, 0xd8, 0x7d, 0x22, 0xec, 0x3e, 0x11, 0x76, 0x9f, 0x08, 0xbb, 0xff, 0x1f,
+ 0xc2, 0xae, 0x94, 0x7a, 0xf1, 0xd5, 0xe3, 0xd2, 0xa9, 0x93, 0x30, 0xc2, 0x86, 0x56, 0x86, 0x21,
+ 0xb1, 0x5e, 0x96, 0x87, 0xc8, 0xbf, 0x8b, 0xb2, 0x44, 0xfe, 0x5d, 0x92, 0x13, 0x8b, 0x6b, 0xaf,
+ 0x5f, 0x9f, 0x1e, 0xfa, 0xde, 0xf5, 0xe9, 0xa1, 0x1f, 0x5c, 0x9f, 0x1e, 0x7a, 0xf3, 0xfa, 0xb4,
+ 0xf4, 0xf6, 0xf5, 0x69, 0xe9, 0xdd, 0xeb, 0xd3, 0xd2, 0xfb, 0xd7, 0xa7, 0xa5, 0x6b, 0x87, 0xd3,
+ 0xd2, 0x57, 0x0e, 0xa7, 0xa5, 0xaf, 0x1d, 0x4e, 0x4b, 0xdf, 0x3c, 0x9c, 0x96, 0xbe, 0x73, 0x38,
+ 0x2d, 0xbd, 0x7e, 0x38, 0x2d, 0x7d, 0xef, 0x70, 0x7a, 0xe8, 0xcd, 0xc3, 0x69, 0xe9, 0xed, 0xc3,
+ 0xe9, 0xa1, 0x77, 0x0f, 0xa7, 0xa5, 0xf7, 0x0f, 0xa7, 0x87, 0xae, 0xfd, 0x78, 0x7a, 0xe8, 0xff,
+ 0x02, 0x00, 0x00, 0xff, 0xff, 0xa3, 0x90, 0x89, 0xfa, 0xee, 0x49, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -4571,83 +4653,3 @@ func valueToStringMapsproto2(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
-
-func init() {
- proto.RegisterFile("combos/marshaler/mapsproto2.proto", fileDescriptor_mapsproto2_9bd23591ad6768d5)
-}
-
-var fileDescriptor_mapsproto2_9bd23591ad6768d5 = []byte{
- // 1148 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x97, 0xcd, 0x6f, 0x1a, 0x47,
- 0x18, 0xc6, 0x19, 0x30, 0x06, 0x86, 0xef, 0x89, 0x5b, 0x21, 0xa4, 0x0e, 0x36, 0xfd, 0x22, 0x24,
- 0x05, 0x9b, 0x46, 0x91, 0xe5, 0xb4, 0xa9, 0x8c, 0xed, 0x14, 0x2b, 0xc5, 0x8d, 0xa0, 0xe9, 0x97,
- 0x64, 0xa9, 0x60, 0x16, 0x82, 0x0a, 0x2c, 0x65, 0x97, 0xa8, 0xbe, 0x54, 0xf9, 0x33, 0x7a, 0xed,
- 0xad, 0xc7, 0x1e, 0x7b, 0xec, 0xd1, 0x52, 0x2f, 0x39, 0x46, 0x51, 0x65, 0x85, 0xed, 0x25, 0xc7,
- 0x1c, 0x73, 0xac, 0x76, 0x76, 0x17, 0x66, 0x77, 0xdf, 0xdd, 0x85, 0x9e, 0x72, 0xf0, 0x09, 0xcf,
- 0xf2, 0x3e, 0xbf, 0xe7, 0xdd, 0xdd, 0x99, 0x97, 0xc7, 0x78, 0xeb, 0x4c, 0x1c, 0xb6, 0x45, 0xa9,
- 0x3c, 0x6c, 0x4d, 0xa4, 0x47, 0xad, 0x81, 0x30, 0x29, 0x0f, 0x5b, 0x63, 0x69, 0x3c, 0x11, 0x65,
- 0xb1, 0x52, 0x62, 0x1f, 0x24, 0xaa, 0xaf, 0xd4, 0x2f, 0xb2, 0x1f, 0xf5, 0xfa, 0xf2, 0xa3, 0x69,
- 0xbb, 0x74, 0x26, 0x0e, 0xcb, 0x3d, 0xb1, 0x27, 0x96, 0xd9, 0x97, 0xed, 0x69, 0x97, 0xad, 0xd8,
- 0x82, 0xfd, 0xa5, 0x69, 0xf3, 0xef, 0xe0, 0xf8, 0xbd, 0x81, 0xd8, 0x92, 0xfb, 0xa3, 0xde, 0x03,
- 0xb1, 0x3f, 0x92, 0x49, 0x0c, 0xa3, 0x6e, 0x06, 0x6d, 0xa2, 0x02, 0x6a, 0xa0, 0x6e, 0xfe, 0xef,
- 0x20, 0x8e, 0x1c, 0x4c, 0x25, 0x59, 0x1c, 0xd6, 0x5b, 0x63, 0xf2, 0x0b, 0x8e, 0x9d, 0x4c, 0x07,
- 0x83, 0x56, 0x7b, 0x20, 0xec, 0x54, 0x76, 0xa5, 0x0c, 0xda, 0x0c, 0x14, 0xa2, 0x95, 0x42, 0x89,
- 0xf3, 0x2f, 0xcd, 0xab, 0x4b, 0x7c, 0xe9, 0xd1, 0x48, 0x9e, 0x9c, 0x57, 0xb7, 0x9f, 0x5f, 0xe6,
- 0x6e, 0x3a, 0xf6, 0x27, 0x0b, 0x92, 0x5c, 0x3e, 0x63, 0xf2, 0xd2, 0xc3, 0xfe, 0x48, 0xde, 0xa9,
- 0xec, 0x36, 0x4c, 0x7e, 0xe4, 0x31, 0x0e, 0xeb, 0x5f, 0x48, 0x19, 0x3f, 0xf3, 0x7e, 0xcf, 0xc1,
- 0xdb, 0x28, 0xd3, 0x7c, 0x6f, 0x5d, 0x5c, 0xe6, 0x7c, 0x2b, 0x7b, 0xcf, 0xbd, 0xc8, 0x4f, 0x38,
- 0x6a, 0xf4, 0x71, 0xdc, 0x91, 0x32, 0x01, 0x66, 0xfd, 0xa1, 0xc7, 0x6d, 0x1f, 0x77, 0x74, 0xf7,
- 0x0f, 0x9e, 0x5f, 0xe6, 0xf2, 0xae, 0xce, 0xa5, 0x87, 0xd3, 0x7e, 0xa7, 0xc1, 0x7b, 0x90, 0x53,
- 0x1c, 0x50, 0xad, 0xd6, 0x98, 0x55, 0xce, 0xc1, 0x6a, 0x6e, 0x51, 0xd4, 0x6f, 0x70, 0x19, 0x1b,
- 0x95, 0x9b, 0xfd, 0x0c, 0xa7, 0x6d, 0xaf, 0x87, 0xa4, 0x70, 0xe0, 0x47, 0xe1, 0x9c, 0xbd, 0xfc,
- 0x48, 0x43, 0xfd, 0x93, 0x6c, 0xe0, 0xe0, 0xe3, 0xd6, 0x60, 0x2a, 0x64, 0xfc, 0x9b, 0xa8, 0x10,
- 0x6b, 0x68, 0x8b, 0x3d, 0xff, 0x2e, 0xca, 0xde, 0xc1, 0x71, 0xd3, 0x33, 0x5e, 0x49, 0x7c, 0x17,
- 0xa7, 0xac, 0x4f, 0x69, 0x25, 0xfd, 0x6d, 0x1c, 0xfe, 0x3f, 0xba, 0xfc, 0x33, 0x82, 0x43, 0xfb,
- 0x83, 0x41, 0xbd, 0x35, 0x96, 0xc8, 0x77, 0x38, 0xdd, 0x94, 0x27, 0xfd, 0x51, 0xef, 0x2b, 0xf1,
- 0x50, 0x9c, 0xb6, 0x07, 0x42, 0xbd, 0x35, 0xd6, 0x37, 0xf4, 0x0d, 0xd3, 0xe3, 0xd6, 0x05, 0x25,
- 0x5b, 0x35, 0xf3, 0x6f, 0xd8, 0x29, 0xe4, 0x6b, 0x9c, 0x32, 0x2e, 0xb2, 0xb3, 0xa5, 0x92, 0xb5,
- 0xed, 0x5a, 0x74, 0x25, 0x1b, 0xc5, 0x1a, 0xd8, 0xc6, 0x20, 0x77, 0x71, 0xf8, 0x78, 0x24, 0x7f,
- 0x5c, 0x51, 0x79, 0xda, 0x1e, 0xcc, 0x83, 0x3c, 0xa3, 0x48, 0xe3, 0xcc, 0x35, 0xba, 0xfe, 0xf6,
- 0x2d, 0x55, 0xbf, 0xe6, 0xae, 0x67, 0x45, 0x0b, 0x3d, 0x5b, 0x92, 0x7d, 0x1c, 0x51, 0xdf, 0xb9,
- 0xd6, 0x40, 0x90, 0x01, 0xde, 0x05, 0x01, 0xf3, 0x2a, 0x8d, 0xb0, 0x50, 0x19, 0x08, 0xad, 0x87,
- 0x75, 0x0f, 0x04, 0xd7, 0xc4, 0x42, 0xa5, 0x22, 0x9a, 0xf3, 0x2e, 0x42, 0x2e, 0x88, 0xa6, 0xa5,
- 0x8b, 0x26, 0xdf, 0x45, 0x73, 0xde, 0x45, 0xd8, 0x03, 0xc1, 0x77, 0x31, 0x5f, 0x93, 0x43, 0x8c,
- 0xef, 0xf5, 0x7f, 0x16, 0x3a, 0x5a, 0x1b, 0x11, 0x60, 0x18, 0x19, 0x8c, 0x45, 0x99, 0x06, 0xe1,
- 0x74, 0xe4, 0x73, 0x1c, 0x6d, 0x76, 0x17, 0x18, 0xcc, 0x30, 0xef, 0xc3, 0xad, 0x74, 0x2d, 0x1c,
- 0x5e, 0x39, 0x6f, 0x47, 0xbb, 0xa5, 0xa8, 0x57, 0x3b, 0xdc, 0x3d, 0x71, 0xba, 0x45, 0x3b, 0x1a,
- 0x26, 0xe6, 0xd9, 0x0e, 0xc7, 0xe1, 0x95, 0xe4, 0x0e, 0x0e, 0x55, 0x45, 0x51, 0xad, 0xcc, 0xc4,
- 0x19, 0x64, 0x0b, 0x84, 0xe8, 0x35, 0x1a, 0xc0, 0x50, 0xb0, 0xb7, 0xc3, 0xb6, 0xbe, 0x2a, 0x4f,
- 0xb8, 0xbd, 0x1d, 0xa3, 0xca, 0x78, 0x3b, 0xc6, 0x9a, 0x3f, 0x81, 0xd5, 0x73, 0x59, 0x90, 0x54,
- 0x52, 0x72, 0x89, 0x13, 0x68, 0x14, 0x5b, 0x4e, 0xa0, 0x71, 0x99, 0x34, 0x71, 0xd2, 0xb8, 0x76,
- 0x34, 0x9a, 0xaa, 0x33, 0x38, 0x93, 0x62, 0xd8, 0xeb, 0xae, 0x58, 0xbd, 0x56, 0xa3, 0x5a, 0x09,
- 0xe4, 0x01, 0x4e, 0x18, 0x97, 0xea, 0x12, 0xbb, 0xe9, 0x34, 0xf0, 0xbb, 0x6a, 0x65, 0x6a, 0xa5,
- 0x1a, 0xd2, 0xa2, 0xcf, 0x1e, 0xe2, 0xb7, 0xe1, 0x69, 0xe5, 0x35, 0x2d, 0x11, 0x3f, 0x65, 0x0f,
- 0xf0, 0x5b, 0xe0, 0x64, 0xf2, 0x82, 0xf8, 0x2d, 0xbf, 0x13, 0xa6, 0x71, 0xc4, 0x8b, 0x83, 0x80,
- 0x38, 0x68, 0x17, 0x2f, 0x36, 0x19, 0x2f, 0x0e, 0x00, 0xe2, 0x00, 0x2f, 0xfe, 0x04, 0x27, 0xcc,
- 0x73, 0x88, 0x57, 0xc7, 0x01, 0x75, 0x1c, 0x50, 0xc3, 0xde, 0x6b, 0x80, 0x7a, 0xcd, 0xa2, 0x6e,
- 0x3a, 0x7a, 0xa7, 0x01, 0x75, 0x1a, 0x50, 0xc3, 0xde, 0x04, 0x50, 0x13, 0x5e, 0xfd, 0x29, 0x4e,
- 0x5a, 0x46, 0x0e, 0x2f, 0x0f, 0x01, 0xf2, 0x90, 0xe5, 0xb7, 0xd9, 0x3a, 0x6a, 0x78, 0x7d, 0x12,
- 0xd0, 0x27, 0x21, 0x7b, 0xb8, 0xfb, 0x75, 0x40, 0xbe, 0x0e, 0xda, 0xc3, 0xfa, 0x14, 0xa0, 0x4f,
- 0xf1, 0xfa, 0x3d, 0x1c, 0xe3, 0xa7, 0x0a, 0xaf, 0x0d, 0x03, 0xda, 0xb0, 0xf5, 0xb9, 0x9b, 0x46,
- 0x8a, 0xd7, 0x4e, 0x8f, 0x38, 0x1c, 0x17, 0xd3, 0x18, 0x59, 0x29, 0xd9, 0x7c, 0x8b, 0x37, 0xa0,
- 0xa1, 0x01, 0x30, 0x8a, 0x3c, 0x23, 0x51, 0xd9, 0x30, 0x0d, 0x0b, 0xa6, 0x9b, 0x0e, 0x79, 0xf2,
- 0x29, 0xbe, 0x06, 0x8c, 0x0e, 0x00, 0xbc, 0xcd, 0x83, 0xa3, 0x95, 0xac, 0x09, 0x6c, 0xfa, 0x5f,
- 0x81, 0x8f, 0x56, 0xff, 0x5c, 0xc3, 0x09, 0x7d, 0x44, 0x7d, 0x39, 0xe9, 0x08, 0x13, 0xa1, 0x43,
- 0x7e, 0x70, 0x4e, 0x58, 0x15, 0x68, 0xb4, 0xe9, 0xba, 0x15, 0x82, 0xd6, 0xa9, 0x63, 0xd0, 0xda,
- 0x59, 0xc6, 0xc0, 0x2b, 0x6f, 0x1d, 0xd9, 0xf2, 0xd6, 0x75, 0x37, 0xac, 0x53, 0xec, 0x3a, 0xb2,
- 0xc5, 0x2e, 0x2f, 0x0c, 0x98, 0xbe, 0x6a, 0xf6, 0xf4, 0x55, 0x74, 0xe3, 0x38, 0x87, 0xb0, 0x9a,
- 0x3d, 0x84, 0x79, 0x92, 0xe0, 0x2c, 0x56, 0xb3, 0x67, 0x31, 0x57, 0x92, 0x73, 0x24, 0xab, 0xd9,
- 0x23, 0x99, 0x27, 0x09, 0x4e, 0x66, 0xf7, 0x81, 0x64, 0x76, 0xc3, 0x0d, 0xe5, 0x16, 0xd0, 0x4e,
- 0xa0, 0x80, 0x76, 0xd3, 0xb5, 0x31, 0xd7, 0x9c, 0x76, 0x1f, 0xc8, 0x69, 0xde, 0xcd, 0x39, 0xc4,
- 0xb5, 0x13, 0x28, 0xae, 0x2d, 0xd1, 0x9c, 0x53, 0x6a, 0xab, 0x5a, 0x53, 0x5b, 0xc1, 0x8d, 0x05,
- 0x87, 0xb7, 0x9a, 0x3d, 0xbc, 0x15, 0xbd, 0xcf, 0x22, 0x94, 0xe1, 0x4e, 0x1d, 0x33, 0xdc, 0x52,
- 0x87, 0xdb, 0x2b, 0xca, 0x7d, 0xef, 0x14, 0xe5, 0xb6, 0x97, 0xa1, 0xbb, 0x27, 0xba, 0x6f, 0x1c,
- 0x12, 0x5d, 0x79, 0x19, 0xf4, 0x55, 0xb0, 0xbb, 0x0a, 0x76, 0x57, 0xc1, 0xee, 0x2a, 0xd8, 0xbd,
- 0x19, 0xc1, 0x6e, 0x6f, 0xed, 0xd7, 0xdf, 0x72, 0xa8, 0xb8, 0x85, 0x43, 0xba, 0x35, 0x59, 0xc7,
- 0xfe, 0xfa, 0x7e, 0xca, 0xc7, 0x3e, 0xab, 0x29, 0xc4, 0x3e, 0x0f, 0x52, 0xfe, 0xea, 0x17, 0x17,
- 0x33, 0xea, 0x7b, 0x3a, 0xa3, 0xbe, 0x67, 0x33, 0xea, 0x7b, 0x31, 0xa3, 0xe8, 0xe5, 0x8c, 0xa2,
- 0x57, 0x33, 0x8a, 0x5e, 0xcf, 0x28, 0x7a, 0xa2, 0x50, 0xf4, 0xbb, 0x42, 0xd1, 0x1f, 0x0a, 0x45,
- 0x7f, 0x2a, 0x14, 0xfd, 0xa5, 0x50, 0x74, 0xa1, 0x50, 0xf4, 0x54, 0xa1, 0xbe, 0x17, 0x0a, 0x45,
- 0x2f, 0x15, 0xea, 0x7b, 0xa5, 0x50, 0xf4, 0x5a, 0xa1, 0xbe, 0x27, 0xff, 0x52, 0xdf, 0x7f, 0x01,
- 0x00, 0x00, 0xff, 0xff, 0xec, 0x4e, 0x18, 0x12, 0xf7, 0x16, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.pb.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.pb.go
index db99ea19d0..239618f0a7 100644
--- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.pb.go
@@ -3,25 +3,23 @@
package proto2_maps
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
-import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strconv "strconv"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ github_com_gogo_protobuf_test "github.com/gogo/protobuf/test"
+ github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strconv "strconv"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -47,6 +45,7 @@ var MapEnum_name = map[int32]string{
1: "MB",
2: "MC",
}
+
var MapEnum_value = map[string]int32{
"MA": 0,
"MB": 1,
@@ -58,9 +57,11 @@ func (x MapEnum) Enum() *MapEnum {
*p = x
return p
}
+
func (x MapEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(MapEnum_name, int32(x))
}
+
func (x *MapEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(MapEnum_value, data, "MapEnum")
if err != nil {
@@ -69,8 +70,9 @@ func (x *MapEnum) UnmarshalJSON(data []byte) error {
*x = MapEnum(value)
return nil
}
+
func (MapEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_62fb8c1076af60e4, []int{0}
+ return fileDescriptor_8fa67a1e07543f1e, []int{0}
}
type FloatingPoint struct {
@@ -83,7 +85,7 @@ type FloatingPoint struct {
func (m *FloatingPoint) Reset() { *m = FloatingPoint{} }
func (*FloatingPoint) ProtoMessage() {}
func (*FloatingPoint) Descriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_62fb8c1076af60e4, []int{0}
+ return fileDescriptor_8fa67a1e07543f1e, []int{0}
}
func (m *FloatingPoint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FloatingPoint.Unmarshal(m, b)
@@ -91,8 +93,8 @@ func (m *FloatingPoint) XXX_Unmarshal(b []byte) error {
func (m *FloatingPoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FloatingPoint.Marshal(b, m, deterministic)
}
-func (dst *FloatingPoint) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FloatingPoint.Merge(dst, src)
+func (m *FloatingPoint) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FloatingPoint.Merge(m, src)
}
func (m *FloatingPoint) XXX_Size() int {
return xxx_messageInfo_FloatingPoint.Size(m)
@@ -116,7 +118,7 @@ type CustomMap struct {
func (m *CustomMap) Reset() { *m = CustomMap{} }
func (*CustomMap) ProtoMessage() {}
func (*CustomMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_62fb8c1076af60e4, []int{1}
+ return fileDescriptor_8fa67a1e07543f1e, []int{1}
}
func (m *CustomMap) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomMap.Unmarshal(m, b)
@@ -124,8 +126,8 @@ func (m *CustomMap) XXX_Unmarshal(b []byte) error {
func (m *CustomMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomMap.Marshal(b, m, deterministic)
}
-func (dst *CustomMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomMap.Merge(dst, src)
+func (m *CustomMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomMap.Merge(m, src)
}
func (m *CustomMap) XXX_Size() int {
return xxx_messageInfo_CustomMap.Size(m)
@@ -162,7 +164,7 @@ type AllMaps struct {
func (m *AllMaps) Reset() { *m = AllMaps{} }
func (*AllMaps) ProtoMessage() {}
func (*AllMaps) Descriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_62fb8c1076af60e4, []int{2}
+ return fileDescriptor_8fa67a1e07543f1e, []int{2}
}
func (m *AllMaps) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AllMaps.Unmarshal(m, b)
@@ -170,8 +172,8 @@ func (m *AllMaps) XXX_Unmarshal(b []byte) error {
func (m *AllMaps) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AllMaps.Marshal(b, m, deterministic)
}
-func (dst *AllMaps) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllMaps.Merge(dst, src)
+func (m *AllMaps) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllMaps.Merge(m, src)
}
func (m *AllMaps) XXX_Size() int {
return xxx_messageInfo_AllMaps.Size(m)
@@ -208,7 +210,7 @@ type AllMapsOrdered struct {
func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} }
func (*AllMapsOrdered) ProtoMessage() {}
func (*AllMapsOrdered) Descriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_62fb8c1076af60e4, []int{3}
+ return fileDescriptor_8fa67a1e07543f1e, []int{3}
}
func (m *AllMapsOrdered) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AllMapsOrdered.Unmarshal(m, b)
@@ -216,8 +218,8 @@ func (m *AllMapsOrdered) XXX_Unmarshal(b []byte) error {
func (m *AllMapsOrdered) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AllMapsOrdered.Marshal(b, m, deterministic)
}
-func (dst *AllMapsOrdered) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllMapsOrdered.Merge(dst, src)
+func (m *AllMapsOrdered) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllMapsOrdered.Merge(m, src)
}
func (m *AllMapsOrdered) XXX_Size() int {
return xxx_messageInfo_AllMapsOrdered.Size(m)
@@ -229,6 +231,7 @@ func (m *AllMapsOrdered) XXX_DiscardUnknown() {
var xxx_messageInfo_AllMapsOrdered proto.InternalMessageInfo
func init() {
+ proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value)
proto.RegisterType((*FloatingPoint)(nil), "proto2.maps.FloatingPoint")
proto.RegisterType((*CustomMap)(nil), "proto2.maps.CustomMap")
proto.RegisterMapType((map[string]github_com_gogo_protobuf_test.Uuid)(nil), "proto2.maps.CustomMap.IdsEntry")
@@ -271,8 +274,86 @@ func init() {
proto.RegisterMapType((map[string]*FloatingPoint)(nil), "proto2.maps.AllMapsOrdered.StringToMsgMapEntry")
proto.RegisterMapType((map[uint32]uint32)(nil), "proto2.maps.AllMapsOrdered.Uint32MapEntry")
proto.RegisterMapType((map[uint64]uint64)(nil), "proto2.maps.AllMapsOrdered.Uint64MapEntry")
- proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value)
}
+
+func init() { proto.RegisterFile("combos/neither/mapsproto2.proto", fileDescriptor_8fa67a1e07543f1e) }
+
+var fileDescriptor_8fa67a1e07543f1e = []byte{
+ // 1148 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x97, 0xcd, 0x6f, 0x1a, 0xc7,
+ 0x1b, 0xc7, 0x77, 0xc0, 0x36, 0x30, 0xbc, 0x4f, 0xfc, 0xfb, 0x09, 0x21, 0x75, 0x70, 0xe8, 0x1b,
+ 0x21, 0x29, 0xd8, 0x34, 0x8a, 0x2c, 0xa7, 0x4d, 0x65, 0x6c, 0xa7, 0x58, 0x29, 0x6e, 0x04, 0x4d,
+ 0xdf, 0x24, 0x4b, 0x05, 0xb3, 0x10, 0x54, 0x60, 0x29, 0xbb, 0x44, 0xf5, 0xa5, 0xca, 0x9f, 0xd1,
+ 0x6b, 0x6f, 0x3d, 0xf6, 0xd8, 0x63, 0x8f, 0x96, 0x7a, 0xc9, 0x31, 0x8a, 0x2a, 0x2b, 0x6c, 0x2f,
+ 0x39, 0xe6, 0x98, 0x63, 0xb5, 0xb3, 0xbb, 0x30, 0xbb, 0xfb, 0xec, 0x2e, 0xf4, 0xd4, 0x83, 0x4f,
+ 0x78, 0x96, 0xe7, 0xfb, 0xf9, 0x3e, 0xbb, 0x3b, 0xf3, 0xf0, 0x35, 0xce, 0x9d, 0x49, 0xc3, 0xb6,
+ 0x24, 0x97, 0x47, 0x62, 0x5f, 0x79, 0x2c, 0x4e, 0xca, 0xc3, 0xd6, 0x58, 0x1e, 0x4f, 0x24, 0x45,
+ 0xaa, 0x94, 0xd8, 0x07, 0x89, 0x1a, 0x2b, 0xed, 0x8b, 0xec, 0x07, 0xbd, 0xbe, 0xf2, 0x78, 0xda,
+ 0x2e, 0x9d, 0x49, 0xc3, 0x72, 0x4f, 0xea, 0x49, 0x65, 0xf6, 0x65, 0x7b, 0xda, 0x65, 0x2b, 0xb6,
+ 0x60, 0x7f, 0xe9, 0xda, 0xfc, 0x5b, 0x38, 0x7e, 0x7f, 0x20, 0xb5, 0x94, 0xfe, 0xa8, 0xf7, 0x50,
+ 0xea, 0x8f, 0x14, 0x12, 0xc3, 0xa8, 0x9b, 0x41, 0x5b, 0xa8, 0x80, 0x1a, 0xa8, 0x9b, 0xff, 0x73,
+ 0x1d, 0x47, 0x0e, 0xa6, 0xb2, 0x22, 0x0d, 0xeb, 0xad, 0x31, 0xf9, 0x09, 0xc7, 0x4e, 0xa6, 0x83,
+ 0x41, 0xab, 0x3d, 0x10, 0x77, 0x2a, 0xbb, 0x72, 0x06, 0x6d, 0x05, 0x0b, 0xd1, 0x4a, 0xa1, 0xc4,
+ 0xf9, 0x97, 0xe6, 0xd5, 0x25, 0xbe, 0xf4, 0x68, 0xa4, 0x4c, 0xce, 0xab, 0xdb, 0x2f, 0x2e, 0x73,
+ 0xb7, 0x5c, 0xfb, 0x53, 0x44, 0x59, 0x29, 0x9f, 0x31, 0x79, 0xe9, 0x51, 0x7f, 0xa4, 0xec, 0x54,
+ 0x76, 0x1b, 0x16, 0x3f, 0xf2, 0x04, 0x87, 0x8d, 0x2f, 0xe4, 0x4c, 0x80, 0x79, 0xbf, 0xe3, 0xe2,
+ 0x6d, 0x96, 0xe9, 0xbe, 0xb7, 0x2f, 0x2e, 0x73, 0xc2, 0xca, 0xde, 0x73, 0x2f, 0xf2, 0x03, 0x8e,
+ 0x9a, 0x7d, 0x1c, 0x77, 0xe4, 0x4c, 0x90, 0x59, 0xbf, 0xef, 0x73, 0xdb, 0xc7, 0x1d, 0xc3, 0xfd,
+ 0xbd, 0x17, 0x97, 0xb9, 0xbc, 0xa7, 0x73, 0xe9, 0xd1, 0xb4, 0xdf, 0x69, 0xf0, 0x1e, 0xe4, 0x14,
+ 0x07, 0x35, 0xab, 0x35, 0x66, 0x95, 0x73, 0xb1, 0x9a, 0x5b, 0x14, 0x8d, 0x1b, 0x5c, 0xc6, 0x46,
+ 0xe3, 0x66, 0x3f, 0xc1, 0x69, 0xc7, 0xeb, 0x21, 0x29, 0x1c, 0xfc, 0x5e, 0x3c, 0x67, 0x2f, 0x3f,
+ 0xd2, 0xd0, 0xfe, 0x24, 0x9b, 0x78, 0xfd, 0x49, 0x6b, 0x30, 0x15, 0x33, 0x81, 0x2d, 0x54, 0x88,
+ 0x35, 0xf4, 0xc5, 0x5e, 0x60, 0x17, 0x65, 0xef, 0xe2, 0xb8, 0xe5, 0x19, 0xaf, 0x24, 0xbe, 0x87,
+ 0x53, 0xf6, 0xa7, 0xb4, 0x92, 0xfe, 0x0e, 0x0e, 0xff, 0x1b, 0x5d, 0xfe, 0x39, 0xc1, 0xa1, 0xfd,
+ 0xc1, 0xa0, 0xde, 0x1a, 0xcb, 0xe4, 0x1b, 0x9c, 0x6e, 0x2a, 0x93, 0xfe, 0xa8, 0xf7, 0x85, 0x74,
+ 0x28, 0x4d, 0xdb, 0x03, 0xb1, 0xde, 0x1a, 0x1b, 0x1b, 0xfa, 0xa6, 0xe5, 0x71, 0x1b, 0x82, 0x92,
+ 0xa3, 0x9a, 0xf9, 0x37, 0x9c, 0x14, 0xf2, 0x25, 0x4e, 0x99, 0x17, 0xd9, 0xd9, 0xd2, 0xc8, 0xfa,
+ 0x76, 0x2d, 0x7a, 0x92, 0xcd, 0x62, 0x1d, 0xec, 0x60, 0x90, 0x7b, 0x38, 0x7c, 0x3c, 0x52, 0x3e,
+ 0xac, 0x68, 0x3c, 0x7d, 0x0f, 0xe6, 0x41, 0x9e, 0x59, 0xa4, 0x73, 0xe6, 0x1a, 0x43, 0x7f, 0xe7,
+ 0xb6, 0xa6, 0x5f, 0xf3, 0xd6, 0xb3, 0xa2, 0x85, 0x9e, 0x2d, 0xc9, 0x3e, 0x8e, 0x68, 0xef, 0x5c,
+ 0x6f, 0x60, 0x9d, 0x01, 0xde, 0x06, 0x01, 0xf3, 0x2a, 0x9d, 0xb0, 0x50, 0x99, 0x08, 0xbd, 0x87,
+ 0x0d, 0x1f, 0x04, 0xd7, 0xc4, 0x42, 0xa5, 0x21, 0x9a, 0xf3, 0x2e, 0x42, 0x1e, 0x88, 0xa6, 0xad,
+ 0x8b, 0x26, 0xdf, 0x45, 0x73, 0xde, 0x45, 0xd8, 0x07, 0xc1, 0x77, 0x31, 0x5f, 0x93, 0x43, 0x8c,
+ 0xef, 0xf7, 0x7f, 0x14, 0x3b, 0x7a, 0x1b, 0x11, 0x60, 0x18, 0x99, 0x8c, 0x45, 0x99, 0x0e, 0xe1,
+ 0x74, 0xe4, 0x53, 0x1c, 0x6d, 0x76, 0x17, 0x18, 0xcc, 0x30, 0xef, 0xc2, 0xad, 0x74, 0x6d, 0x1c,
+ 0x5e, 0x39, 0x6f, 0x47, 0xbf, 0xa5, 0xa8, 0x5f, 0x3b, 0xdc, 0x3d, 0x71, 0xba, 0x45, 0x3b, 0x3a,
+ 0x26, 0xe6, 0xdb, 0x0e, 0xc7, 0xe1, 0x95, 0xe4, 0x2e, 0x0e, 0x55, 0x25, 0x49, 0xab, 0xcc, 0xc4,
+ 0x19, 0xe4, 0x3a, 0x08, 0x31, 0x6a, 0x74, 0x80, 0xa9, 0x60, 0x6f, 0x87, 0x6d, 0x7d, 0x4d, 0x9e,
+ 0xf0, 0x7a, 0x3b, 0x66, 0x95, 0xf9, 0x76, 0xcc, 0x35, 0x7f, 0x02, 0xab, 0xe7, 0x8a, 0x28, 0x6b,
+ 0xa4, 0xe4, 0x12, 0x27, 0xd0, 0x2c, 0xb6, 0x9d, 0x40, 0xf3, 0x32, 0x69, 0xe2, 0xa4, 0x79, 0xed,
+ 0x68, 0x34, 0xd5, 0x66, 0x70, 0x26, 0xc5, 0xb0, 0x37, 0x3c, 0xb1, 0x46, 0xad, 0x4e, 0xb5, 0x13,
+ 0xc8, 0x43, 0x9c, 0x30, 0x2f, 0xd5, 0x65, 0x76, 0xd3, 0x69, 0xe0, 0x77, 0xd5, 0xce, 0xd4, 0x4b,
+ 0x75, 0xa4, 0x4d, 0x9f, 0x3d, 0xc4, 0xff, 0x87, 0xa7, 0x95, 0xdf, 0xb4, 0x44, 0xfc, 0x94, 0x3d,
+ 0xc0, 0xff, 0x03, 0x27, 0x93, 0x1f, 0x24, 0x60, 0xfb, 0x9d, 0xb0, 0x8c, 0x23, 0x5e, 0xbc, 0x0e,
+ 0x88, 0xd7, 0x9d, 0xe2, 0xc5, 0x26, 0xe3, 0xc5, 0x41, 0x40, 0x1c, 0xe4, 0xc5, 0x1f, 0xe1, 0x84,
+ 0x75, 0x0e, 0xf1, 0xea, 0x38, 0xa0, 0x8e, 0x03, 0x6a, 0xd8, 0x7b, 0x0d, 0x50, 0xaf, 0xd9, 0xd4,
+ 0x4d, 0x57, 0xef, 0x34, 0xa0, 0x4e, 0x03, 0x6a, 0xd8, 0x9b, 0x00, 0x6a, 0xc2, 0xab, 0x3f, 0xc6,
+ 0x49, 0xdb, 0xc8, 0xe1, 0xe5, 0x21, 0x40, 0x1e, 0xb2, 0xfd, 0x36, 0xdb, 0x47, 0x0d, 0xaf, 0x4f,
+ 0x02, 0xfa, 0x24, 0x64, 0x0f, 0x77, 0xbf, 0x01, 0xc8, 0x37, 0x40, 0x7b, 0x58, 0x9f, 0x02, 0xf4,
+ 0x29, 0x5e, 0xbf, 0x87, 0x63, 0xfc, 0x54, 0xe1, 0xb5, 0x61, 0x40, 0x1b, 0xb6, 0x3f, 0x77, 0xcb,
+ 0x48, 0xf1, 0xdb, 0xe9, 0x11, 0x97, 0xe3, 0x62, 0x19, 0x23, 0x2b, 0x25, 0x9b, 0xaf, 0xf1, 0x26,
+ 0x34, 0x34, 0x00, 0x46, 0x91, 0x67, 0x24, 0x2a, 0x9b, 0x96, 0x61, 0xc1, 0x74, 0xd3, 0x21, 0x4f,
+ 0x3e, 0xc5, 0xd7, 0x80, 0xd1, 0x01, 0x80, 0xb7, 0x79, 0x70, 0xb4, 0x92, 0xb5, 0x80, 0x2d, 0xff,
+ 0x2b, 0xf0, 0xd1, 0xea, 0xaf, 0x6b, 0x38, 0x61, 0x8c, 0xa8, 0xcf, 0x27, 0x1d, 0x71, 0x22, 0x76,
+ 0xc8, 0x77, 0xee, 0x09, 0xab, 0x02, 0x8d, 0x36, 0x43, 0xb7, 0x42, 0xd0, 0x3a, 0x75, 0x0d, 0x5a,
+ 0x3b, 0xcb, 0x18, 0xf8, 0xe5, 0xad, 0x23, 0x47, 0xde, 0xba, 0xe1, 0x85, 0x75, 0x8b, 0x5d, 0x47,
+ 0x8e, 0xd8, 0xe5, 0x87, 0x01, 0xd3, 0x57, 0xcd, 0x99, 0xbe, 0x8a, 0x5e, 0x1c, 0xf7, 0x10, 0x56,
+ 0x73, 0x86, 0x30, 0x5f, 0x12, 0x9c, 0xc5, 0x6a, 0xce, 0x2c, 0xe6, 0x49, 0x72, 0x8f, 0x64, 0x35,
+ 0x67, 0x24, 0xf3, 0x25, 0xc1, 0xc9, 0xec, 0x01, 0x90, 0xcc, 0x6e, 0x7a, 0xa1, 0xbc, 0x02, 0xda,
+ 0x09, 0x14, 0xd0, 0x6e, 0x79, 0x36, 0xe6, 0x99, 0xd3, 0x1e, 0x00, 0x39, 0xcd, 0xbf, 0x39, 0x97,
+ 0xb8, 0x76, 0x02, 0xc5, 0xb5, 0x25, 0x9a, 0x73, 0x4b, 0x6d, 0x55, 0x7b, 0x6a, 0x2b, 0x78, 0xb1,
+ 0xe0, 0xf0, 0x56, 0x73, 0x86, 0xb7, 0xa2, 0xff, 0x59, 0x84, 0x32, 0xdc, 0xa9, 0x6b, 0x86, 0x5b,
+ 0xea, 0x70, 0xfb, 0x45, 0xb9, 0x6f, 0xdd, 0xa2, 0xdc, 0xf6, 0x32, 0x74, 0xef, 0x44, 0xf7, 0x95,
+ 0x4b, 0xa2, 0x2b, 0x2f, 0x83, 0xbe, 0x0a, 0x76, 0x57, 0xc1, 0xee, 0x2a, 0xd8, 0x5d, 0x05, 0xbb,
+ 0xff, 0x46, 0xb0, 0xdb, 0x5b, 0xfb, 0xf9, 0x97, 0x1c, 0x2a, 0x5e, 0xc7, 0x21, 0xc3, 0x9a, 0x6c,
+ 0xe0, 0x40, 0x7d, 0x3f, 0x25, 0xb0, 0xcf, 0x6a, 0x0a, 0xb1, 0xcf, 0x83, 0x54, 0xa0, 0xfa, 0xd9,
+ 0xc5, 0x8c, 0x0a, 0xcf, 0x66, 0x54, 0x78, 0x3e, 0xa3, 0xc2, 0xcb, 0x19, 0x45, 0xaf, 0x66, 0x14,
+ 0xbd, 0x9e, 0x51, 0xf4, 0x66, 0x46, 0xd1, 0x53, 0x95, 0xa2, 0x5f, 0x55, 0x8a, 0x7e, 0x53, 0x29,
+ 0xfa, 0x5d, 0xa5, 0xe8, 0x0f, 0x95, 0xa2, 0x0b, 0x95, 0x0a, 0xcf, 0x54, 0x2a, 0xbc, 0x54, 0x29,
+ 0x7a, 0xa5, 0x52, 0xe1, 0xb5, 0x4a, 0xd1, 0x1b, 0x95, 0x0a, 0x4f, 0xff, 0xa6, 0xc2, 0x3f, 0x01,
+ 0x00, 0x00, 0xff, 0xff, 0x3c, 0x2b, 0x76, 0x8f, 0xf5, 0x16, 0x00, 0x00,
+}
+
func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return Mapsproto2Description()
}
@@ -288,307 +369,309 @@ func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc
func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4797 bytes of a gzipped FileDescriptorSet
+ // 4832 bytes of a gzipped FileDescriptorSet
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x5b, 0x6c, 0x23, 0xd7,
- 0x79, 0x16, 0x6f, 0x12, 0xf9, 0x93, 0xa2, 0x46, 0x23, 0x79, 0x4d, 0xcb, 0xb1, 0xb4, 0x2b, 0xdf,
- 0xe4, 0x5d, 0x5b, 0xb2, 0xe5, 0xdd, 0xf5, 0x9a, 0x1b, 0xdb, 0xa5, 0x24, 0xae, 0x56, 0xb6, 0x6e,
- 0x19, 0x4a, 0xbe, 0x05, 0xc6, 0x74, 0x34, 0x3c, 0xa4, 0xc6, 0x4b, 0xce, 0xd0, 0x33, 0xc3, 0x5d,
- 0xcb, 0x28, 0x8a, 0x2d, 0xdc, 0x0b, 0x82, 0xa2, 0xf7, 0x02, 0x75, 0x5c, 0xc7, 0xad, 0x53, 0x34,
- 0x4e, 0xd3, 0x5b, 0xd2, 0xb4, 0x69, 0x92, 0xbe, 0xe4, 0x25, 0xad, 0x81, 0x02, 0x45, 0xf2, 0x16,
- 0x04, 0x81, 0xe1, 0x55, 0x0c, 0xd4, 0x6d, 0xdd, 0xc6, 0x6d, 0xb7, 0x80, 0x01, 0xbf, 0x14, 0xe7,
- 0x36, 0x3c, 0x33, 0x1c, 0x72, 0x28, 0x03, 0x76, 0xf2, 0xe0, 0xa7, 0xd5, 0x9c, 0xf3, 0x7f, 0xdf,
- 0xf9, 0xe7, 0x3f, 0xff, 0xf9, 0xcf, 0x77, 0xce, 0x70, 0xe1, 0x27, 0x0f, 0xc2, 0xf1, 0xba, 0x65,
- 0xd5, 0x1b, 0x68, 0xa1, 0x65, 0x5b, 0xae, 0xb5, 0xd7, 0xae, 0x2d, 0x54, 0x91, 0xa3, 0xdb, 0x46,
- 0xcb, 0xb5, 0xec, 0x79, 0xd2, 0x26, 0x8f, 0x51, 0x8b, 0x79, 0x6e, 0x31, 0xbb, 0x01, 0xe3, 0x17,
- 0x8c, 0x06, 0x5a, 0xf1, 0x0c, 0x2b, 0xc8, 0x95, 0xcf, 0x41, 0xb2, 0x66, 0x34, 0x50, 0x21, 0x76,
- 0x3c, 0x31, 0x97, 0x5d, 0xbc, 0x6d, 0x3e, 0x00, 0x9a, 0xf7, 0x23, 0xb6, 0x71, 0xb3, 0x42, 0x10,
- 0xb3, 0x6f, 0x27, 0x61, 0x22, 0xa4, 0x57, 0x96, 0x21, 0x69, 0x6a, 0x4d, 0xcc, 0x18, 0x9b, 0xcb,
- 0x28, 0xe4, 0x6f, 0xb9, 0x00, 0x23, 0x2d, 0x4d, 0xbf, 0xa4, 0xd5, 0x51, 0x21, 0x4e, 0x9a, 0xf9,
- 0xa3, 0x3c, 0x0d, 0x50, 0x45, 0x2d, 0x64, 0x56, 0x91, 0xa9, 0x1f, 0x14, 0x12, 0xc7, 0x13, 0x73,
- 0x19, 0x45, 0x68, 0x91, 0x4f, 0xc1, 0x78, 0xab, 0xbd, 0xd7, 0x30, 0x74, 0x55, 0x30, 0x83, 0xe3,
- 0x89, 0xb9, 0x94, 0x22, 0xd1, 0x8e, 0x95, 0x8e, 0xf1, 0x9d, 0x30, 0x76, 0x05, 0x69, 0x97, 0x44,
- 0xd3, 0x2c, 0x31, 0xcd, 0xe3, 0x66, 0xc1, 0x70, 0x19, 0x72, 0x4d, 0xe4, 0x38, 0x5a, 0x1d, 0xa9,
- 0xee, 0x41, 0x0b, 0x15, 0x92, 0xe4, 0xed, 0x8f, 0x77, 0xbd, 0x7d, 0xf0, 0xcd, 0xb3, 0x0c, 0xb5,
- 0x73, 0xd0, 0x42, 0x72, 0x09, 0x32, 0xc8, 0x6c, 0x37, 0x29, 0x43, 0xaa, 0x47, 0xfc, 0xca, 0x66,
- 0xbb, 0x19, 0x64, 0x49, 0x63, 0x18, 0xa3, 0x18, 0x71, 0x90, 0x7d, 0xd9, 0xd0, 0x51, 0x61, 0x98,
- 0x10, 0xdc, 0xd9, 0x45, 0x50, 0xa1, 0xfd, 0x41, 0x0e, 0x8e, 0x93, 0x97, 0x21, 0x83, 0x9e, 0x77,
- 0x91, 0xe9, 0x18, 0x96, 0x59, 0x18, 0x21, 0x24, 0xb7, 0x87, 0xcc, 0x22, 0x6a, 0x54, 0x83, 0x14,
- 0x1d, 0x9c, 0x7c, 0x16, 0x46, 0xac, 0x96, 0x6b, 0x58, 0xa6, 0x53, 0x48, 0x1f, 0x8f, 0xcd, 0x65,
- 0x17, 0x3f, 0x15, 0x9a, 0x08, 0x5b, 0xd4, 0x46, 0xe1, 0xc6, 0xf2, 0x1a, 0x48, 0x8e, 0xd5, 0xb6,
- 0x75, 0xa4, 0xea, 0x56, 0x15, 0xa9, 0x86, 0x59, 0xb3, 0x0a, 0x19, 0x42, 0x30, 0xd3, 0xfd, 0x22,
- 0xc4, 0x70, 0xd9, 0xaa, 0xa2, 0x35, 0xb3, 0x66, 0x29, 0x79, 0xc7, 0xf7, 0x2c, 0x1f, 0x83, 0x61,
- 0xe7, 0xc0, 0x74, 0xb5, 0xe7, 0x0b, 0x39, 0x92, 0x21, 0xec, 0x69, 0xf6, 0x5b, 0xc3, 0x30, 0x36,
- 0x48, 0x8a, 0x9d, 0x87, 0x54, 0x0d, 0xbf, 0x65, 0x21, 0x7e, 0x94, 0x18, 0x50, 0x8c, 0x3f, 0x88,
- 0xc3, 0x1f, 0x32, 0x88, 0x25, 0xc8, 0x9a, 0xc8, 0x71, 0x51, 0x95, 0x66, 0x44, 0x62, 0xc0, 0x9c,
- 0x02, 0x0a, 0xea, 0x4e, 0xa9, 0xe4, 0x87, 0x4a, 0xa9, 0x27, 0x61, 0xcc, 0x73, 0x49, 0xb5, 0x35,
- 0xb3, 0xce, 0x73, 0x73, 0x21, 0xca, 0x93, 0xf9, 0x32, 0xc7, 0x29, 0x18, 0xa6, 0xe4, 0x91, 0xef,
- 0x59, 0x5e, 0x01, 0xb0, 0x4c, 0x64, 0xd5, 0xd4, 0x2a, 0xd2, 0x1b, 0x85, 0x74, 0x8f, 0x28, 0x6d,
- 0x61, 0x93, 0xae, 0x28, 0x59, 0xb4, 0x55, 0x6f, 0xc8, 0x0f, 0x76, 0x52, 0x6d, 0xa4, 0x47, 0xa6,
- 0x6c, 0xd0, 0x45, 0xd6, 0x95, 0x6d, 0xbb, 0x90, 0xb7, 0x11, 0xce, 0x7b, 0x54, 0x65, 0x6f, 0x96,
- 0x21, 0x4e, 0xcc, 0x47, 0xbe, 0x99, 0xc2, 0x60, 0xf4, 0xc5, 0x46, 0x6d, 0xf1, 0x51, 0xbe, 0x15,
- 0xbc, 0x06, 0x95, 0xa4, 0x15, 0x90, 0x2a, 0x94, 0xe3, 0x8d, 0x9b, 0x5a, 0x13, 0x4d, 0xbd, 0x00,
- 0x79, 0x7f, 0x78, 0xe4, 0x49, 0x48, 0x39, 0xae, 0x66, 0xbb, 0x24, 0x0b, 0x53, 0x0a, 0x7d, 0x90,
- 0x25, 0x48, 0x20, 0xb3, 0x4a, 0xaa, 0x5c, 0x4a, 0xc1, 0x7f, 0xca, 0x3f, 0xd7, 0x79, 0xe1, 0x04,
- 0x79, 0xe1, 0x3b, 0xba, 0x67, 0xd4, 0xc7, 0x1c, 0x7c, 0xef, 0xa9, 0x07, 0x60, 0xd4, 0xf7, 0x02,
- 0x83, 0x0e, 0x3d, 0xfb, 0x0b, 0x70, 0x43, 0x28, 0xb5, 0xfc, 0x24, 0x4c, 0xb6, 0x4d, 0xc3, 0x74,
- 0x91, 0xdd, 0xb2, 0x11, 0xce, 0x58, 0x3a, 0x54, 0xe1, 0x5f, 0x47, 0x7a, 0xe4, 0xdc, 0xae, 0x68,
- 0x4d, 0x59, 0x94, 0x89, 0x76, 0x77, 0xe3, 0xc9, 0x4c, 0xfa, 0x9d, 0x11, 0xe9, 0xea, 0xd5, 0xab,
- 0x57, 0xe3, 0xb3, 0x2f, 0x0d, 0xc3, 0x64, 0xd8, 0x9a, 0x09, 0x5d, 0xbe, 0xc7, 0x60, 0xd8, 0x6c,
- 0x37, 0xf7, 0x90, 0x4d, 0x82, 0x94, 0x52, 0xd8, 0x93, 0x5c, 0x82, 0x54, 0x43, 0xdb, 0x43, 0x8d,
- 0x42, 0xf2, 0x78, 0x6c, 0x2e, 0xbf, 0x78, 0x6a, 0xa0, 0x55, 0x39, 0xbf, 0x8e, 0x21, 0x0a, 0x45,
- 0xca, 0x0f, 0x43, 0x92, 0x95, 0x68, 0xcc, 0x70, 0x72, 0x30, 0x06, 0xbc, 0x96, 0x14, 0x82, 0x93,
- 0x6f, 0x86, 0x0c, 0xfe, 0x97, 0xe6, 0xc6, 0x30, 0xf1, 0x39, 0x8d, 0x1b, 0x70, 0x5e, 0xc8, 0x53,
- 0x90, 0x26, 0xcb, 0xa4, 0x8a, 0xf8, 0xd6, 0xe6, 0x3d, 0xe3, 0xc4, 0xaa, 0xa2, 0x9a, 0xd6, 0x6e,
- 0xb8, 0xea, 0x65, 0xad, 0xd1, 0x46, 0x24, 0xe1, 0x33, 0x4a, 0x8e, 0x35, 0x3e, 0x8e, 0xdb, 0xe4,
- 0x19, 0xc8, 0xd2, 0x55, 0x65, 0x98, 0x55, 0xf4, 0x3c, 0xa9, 0x9e, 0x29, 0x85, 0x2e, 0xb4, 0x35,
- 0xdc, 0x82, 0x87, 0x7f, 0xd6, 0xb1, 0x4c, 0x9e, 0x9a, 0x64, 0x08, 0xdc, 0x40, 0x86, 0x7f, 0x20,
- 0x58, 0xb8, 0x6f, 0x09, 0x7f, 0xbd, 0x60, 0x4e, 0xcd, 0x7e, 0x23, 0x0e, 0x49, 0x52, 0x2f, 0xc6,
- 0x20, 0xbb, 0xf3, 0xd4, 0x76, 0x59, 0x5d, 0xd9, 0xda, 0x5d, 0x5a, 0x2f, 0x4b, 0x31, 0x39, 0x0f,
- 0x40, 0x1a, 0x2e, 0xac, 0x6f, 0x95, 0x76, 0xa4, 0xb8, 0xf7, 0xbc, 0xb6, 0xb9, 0x73, 0xf6, 0xb4,
- 0x94, 0xf0, 0x00, 0xbb, 0xb4, 0x21, 0x29, 0x1a, 0xdc, 0xbf, 0x28, 0xa5, 0x64, 0x09, 0x72, 0x94,
- 0x60, 0xed, 0xc9, 0xf2, 0xca, 0xd9, 0xd3, 0xd2, 0xb0, 0xbf, 0xe5, 0xfe, 0x45, 0x69, 0x44, 0x1e,
- 0x85, 0x0c, 0x69, 0x59, 0xda, 0xda, 0x5a, 0x97, 0xd2, 0x1e, 0x67, 0x65, 0x47, 0x59, 0xdb, 0x5c,
- 0x95, 0x32, 0x1e, 0xe7, 0xaa, 0xb2, 0xb5, 0xbb, 0x2d, 0x81, 0xc7, 0xb0, 0x51, 0xae, 0x54, 0x4a,
- 0xab, 0x65, 0x29, 0xeb, 0x59, 0x2c, 0x3d, 0xb5, 0x53, 0xae, 0x48, 0x39, 0x9f, 0x5b, 0xf7, 0x2f,
- 0x4a, 0xa3, 0xde, 0x10, 0xe5, 0xcd, 0xdd, 0x0d, 0x29, 0x2f, 0x8f, 0xc3, 0x28, 0x1d, 0x82, 0x3b,
- 0x31, 0x16, 0x68, 0x3a, 0x7b, 0x5a, 0x92, 0x3a, 0x8e, 0x50, 0x96, 0x71, 0x5f, 0xc3, 0xd9, 0xd3,
- 0x92, 0x3c, 0xbb, 0x0c, 0x29, 0x92, 0x5d, 0xb2, 0x0c, 0xf9, 0xf5, 0xd2, 0x52, 0x79, 0x5d, 0xdd,
- 0xda, 0xde, 0x59, 0xdb, 0xda, 0x2c, 0xad, 0x4b, 0xb1, 0x4e, 0x9b, 0x52, 0xfe, 0xcc, 0xee, 0x9a,
- 0x52, 0x5e, 0x91, 0xe2, 0x62, 0xdb, 0x76, 0xb9, 0xb4, 0x53, 0x5e, 0x91, 0x12, 0xb3, 0x3a, 0x4c,
- 0x86, 0xd5, 0xc9, 0xd0, 0x95, 0x21, 0x4c, 0x71, 0xbc, 0xc7, 0x14, 0x13, 0xae, 0xae, 0x29, 0xfe,
- 0x71, 0x1c, 0x26, 0x42, 0xf6, 0x8a, 0xd0, 0x41, 0x1e, 0x81, 0x14, 0x4d, 0x51, 0xba, 0x7b, 0xde,
- 0x15, 0xba, 0xe9, 0x90, 0x84, 0xed, 0xda, 0x41, 0x09, 0x4e, 0x54, 0x10, 0x89, 0x1e, 0x0a, 0x02,
- 0x53, 0x74, 0xd5, 0xf4, 0x67, 0xba, 0x6a, 0x3a, 0xdd, 0xf6, 0xce, 0x0e, 0xb2, 0xed, 0x91, 0xb6,
- 0xa3, 0xd5, 0xf6, 0x54, 0x48, 0x6d, 0x3f, 0x0f, 0xe3, 0x5d, 0x44, 0x03, 0xd7, 0xd8, 0x17, 0x63,
- 0x50, 0xe8, 0x15, 0x9c, 0x88, 0x4a, 0x17, 0xf7, 0x55, 0xba, 0xf3, 0xc1, 0x08, 0x9e, 0xe8, 0x3d,
- 0x09, 0x5d, 0x73, 0xfd, 0x7a, 0x0c, 0x8e, 0x85, 0x2b, 0xc5, 0x50, 0x1f, 0x1e, 0x86, 0xe1, 0x26,
- 0x72, 0xf7, 0x2d, 0xae, 0x96, 0xee, 0x08, 0xd9, 0x83, 0x71, 0x77, 0x70, 0xb2, 0x19, 0x4a, 0xdc,
- 0xc4, 0x13, 0xbd, 0xe4, 0x1e, 0xf5, 0xa6, 0xcb, 0xd3, 0xcf, 0xc5, 0xe1, 0x86, 0x50, 0xf2, 0x50,
- 0x47, 0x6f, 0x01, 0x30, 0xcc, 0x56, 0xdb, 0xa5, 0x8a, 0x88, 0x16, 0xd8, 0x0c, 0x69, 0x21, 0xc5,
- 0x0b, 0x17, 0xcf, 0xb6, 0xeb, 0xf5, 0x27, 0x48, 0x3f, 0xd0, 0x26, 0x62, 0x70, 0xae, 0xe3, 0x68,
- 0x92, 0x38, 0x3a, 0xdd, 0xe3, 0x4d, 0xbb, 0x12, 0xf3, 0x5e, 0x90, 0xf4, 0x86, 0x81, 0x4c, 0x57,
- 0x75, 0x5c, 0x1b, 0x69, 0x4d, 0xc3, 0xac, 0x93, 0x1d, 0x24, 0x5d, 0x4c, 0xd5, 0xb4, 0x86, 0x83,
- 0x94, 0x31, 0xda, 0x5d, 0xe1, 0xbd, 0x18, 0x41, 0x12, 0xc8, 0x16, 0x10, 0xc3, 0x3e, 0x04, 0xed,
- 0xf6, 0x10, 0xb3, 0x5f, 0x4f, 0x43, 0x56, 0xd0, 0xd5, 0xf2, 0x09, 0xc8, 0x3d, 0xab, 0x5d, 0xd6,
- 0x54, 0x7e, 0x56, 0xa2, 0x91, 0xc8, 0xe2, 0xb6, 0x6d, 0x76, 0x5e, 0xba, 0x17, 0x26, 0x89, 0x89,
- 0xd5, 0x76, 0x91, 0xad, 0xea, 0x0d, 0xcd, 0x71, 0x48, 0xd0, 0xd2, 0xc4, 0x54, 0xc6, 0x7d, 0x5b,
- 0xb8, 0x6b, 0x99, 0xf7, 0xc8, 0x67, 0x60, 0x82, 0x20, 0x9a, 0xed, 0x86, 0x6b, 0xb4, 0x1a, 0x48,
- 0xc5, 0xa7, 0x37, 0x87, 0xec, 0x24, 0x9e, 0x67, 0xe3, 0xd8, 0x62, 0x83, 0x19, 0x60, 0x8f, 0x1c,
- 0x79, 0x05, 0x6e, 0x21, 0xb0, 0x3a, 0x32, 0x91, 0xad, 0xb9, 0x48, 0x45, 0xcf, 0xb5, 0xb5, 0x86,
- 0xa3, 0x6a, 0x66, 0x55, 0xdd, 0xd7, 0x9c, 0xfd, 0xc2, 0x24, 0x26, 0x58, 0x8a, 0x17, 0x62, 0xca,
- 0x4d, 0xd8, 0x70, 0x95, 0xd9, 0x95, 0x89, 0x59, 0xc9, 0xac, 0x5e, 0xd4, 0x9c, 0x7d, 0xb9, 0x08,
- 0xc7, 0x08, 0x8b, 0xe3, 0xda, 0x86, 0x59, 0x57, 0xf5, 0x7d, 0xa4, 0x5f, 0x52, 0xdb, 0x6e, 0xed,
- 0x5c, 0xe1, 0x66, 0x71, 0x7c, 0xe2, 0x61, 0x85, 0xd8, 0x2c, 0x63, 0x93, 0x5d, 0xb7, 0x76, 0x4e,
- 0xae, 0x40, 0x0e, 0x4f, 0x46, 0xd3, 0x78, 0x01, 0xa9, 0x35, 0xcb, 0x26, 0x5b, 0x63, 0x3e, 0xa4,
- 0x34, 0x09, 0x11, 0x9c, 0xdf, 0x62, 0x80, 0x0d, 0xab, 0x8a, 0x8a, 0xa9, 0xca, 0x76, 0xb9, 0xbc,
- 0xa2, 0x64, 0x39, 0xcb, 0x05, 0xcb, 0xc6, 0x09, 0x55, 0xb7, 0xbc, 0x00, 0x67, 0x69, 0x42, 0xd5,
- 0x2d, 0x1e, 0xde, 0x33, 0x30, 0xa1, 0xeb, 0xf4, 0x9d, 0x0d, 0x5d, 0x65, 0x67, 0x2c, 0xa7, 0x20,
- 0xf9, 0x82, 0xa5, 0xeb, 0xab, 0xd4, 0x80, 0xe5, 0xb8, 0x23, 0x3f, 0x08, 0x37, 0x74, 0x82, 0x25,
- 0x02, 0xc7, 0xbb, 0xde, 0x32, 0x08, 0x3d, 0x03, 0x13, 0xad, 0x83, 0x6e, 0xa0, 0xec, 0x1b, 0xb1,
- 0x75, 0x10, 0x84, 0x3d, 0x00, 0x93, 0xad, 0xfd, 0x56, 0x37, 0xee, 0xa4, 0x88, 0x93, 0x5b, 0xfb,
- 0xad, 0x20, 0xf0, 0x76, 0x72, 0xe0, 0xb6, 0x91, 0xae, 0xb9, 0xa8, 0x5a, 0xb8, 0x51, 0x34, 0x17,
- 0x3a, 0xe4, 0x05, 0x90, 0x74, 0x5d, 0x45, 0xa6, 0xb6, 0xd7, 0x40, 0xaa, 0x66, 0x23, 0x53, 0x73,
- 0x0a, 0x33, 0xa2, 0x71, 0x5e, 0xd7, 0xcb, 0xa4, 0xb7, 0x44, 0x3a, 0xe5, 0x93, 0x30, 0x6e, 0xed,
- 0x3d, 0xab, 0xd3, 0x94, 0x54, 0x5b, 0x36, 0xaa, 0x19, 0xcf, 0x17, 0x6e, 0x23, 0xf1, 0x1d, 0xc3,
- 0x1d, 0x24, 0x21, 0xb7, 0x49, 0xb3, 0x7c, 0x17, 0x48, 0xba, 0xb3, 0xaf, 0xd9, 0x2d, 0x52, 0x93,
- 0x9d, 0x96, 0xa6, 0xa3, 0xc2, 0xed, 0xd4, 0x94, 0xb6, 0x6f, 0xf2, 0x66, 0xbc, 0x24, 0x9c, 0x2b,
- 0x46, 0xcd, 0xe5, 0x8c, 0x77, 0xd2, 0x25, 0x41, 0xda, 0x18, 0xdb, 0x1c, 0x48, 0x38, 0x14, 0xbe,
- 0x81, 0xe7, 0x88, 0x59, 0xbe, 0xb5, 0xdf, 0x12, 0xc7, 0xbd, 0x15, 0x46, 0xb1, 0x65, 0x67, 0xd0,
- 0xbb, 0xa8, 0x20, 0x6b, 0xed, 0x0b, 0x23, 0x7e, 0x64, 0xda, 0x78, 0xb6, 0x08, 0x39, 0x31, 0x3f,
- 0xe5, 0x0c, 0xd0, 0x0c, 0x95, 0x62, 0x58, 0xac, 0x2c, 0x6f, 0xad, 0x60, 0x99, 0xf1, 0x74, 0x59,
- 0x8a, 0x63, 0xb9, 0xb3, 0xbe, 0xb6, 0x53, 0x56, 0x95, 0xdd, 0xcd, 0x9d, 0xb5, 0x8d, 0xb2, 0x94,
- 0x10, 0x75, 0xf5, 0x77, 0xe3, 0x90, 0xf7, 0x1f, 0x91, 0xe4, 0x4f, 0xc3, 0x8d, 0xfc, 0x3e, 0xc3,
- 0x41, 0xae, 0x7a, 0xc5, 0xb0, 0xc9, 0x92, 0x69, 0x6a, 0x74, 0xfb, 0xf2, 0x26, 0x6d, 0x92, 0x59,
- 0x55, 0x90, 0xfb, 0x84, 0x61, 0xe3, 0x05, 0xd1, 0xd4, 0x5c, 0x79, 0x1d, 0x66, 0x4c, 0x4b, 0x75,
- 0x5c, 0xcd, 0xac, 0x6a, 0x76, 0x55, 0xed, 0xdc, 0x24, 0xa9, 0x9a, 0xae, 0x23, 0xc7, 0xb1, 0xe8,
- 0x56, 0xe5, 0xb1, 0x7c, 0xca, 0xb4, 0x2a, 0xcc, 0xb8, 0x53, 0xc3, 0x4b, 0xcc, 0x34, 0x90, 0x60,
- 0x89, 0x5e, 0x09, 0x76, 0x33, 0x64, 0x9a, 0x5a, 0x4b, 0x45, 0xa6, 0x6b, 0x1f, 0x10, 0x61, 0x9c,
- 0x56, 0xd2, 0x4d, 0xad, 0x55, 0xc6, 0xcf, 0x1f, 0xcf, 0xf9, 0xe4, 0x47, 0x09, 0xc8, 0x89, 0xe2,
- 0x18, 0x9f, 0x35, 0x74, 0xb2, 0x8f, 0xc4, 0x48, 0xa5, 0xb9, 0xb5, 0xaf, 0x94, 0x9e, 0x5f, 0xc6,
- 0x1b, 0x4c, 0x71, 0x98, 0x4a, 0x56, 0x85, 0x22, 0xf1, 0xe6, 0x8e, 0x6b, 0x0b, 0xa2, 0x12, 0x21,
- 0xad, 0xb0, 0x27, 0x79, 0x15, 0x86, 0x9f, 0x75, 0x08, 0xf7, 0x30, 0xe1, 0xbe, 0xad, 0x3f, 0xf7,
- 0xa3, 0x15, 0x42, 0x9e, 0x79, 0xb4, 0xa2, 0x6e, 0x6e, 0x29, 0x1b, 0xa5, 0x75, 0x85, 0xc1, 0xe5,
- 0x9b, 0x20, 0xd9, 0xd0, 0x5e, 0x38, 0xf0, 0x6f, 0x45, 0xa4, 0x69, 0xd0, 0xc0, 0xdf, 0x04, 0xc9,
- 0x2b, 0x48, 0xbb, 0xe4, 0xdf, 0x00, 0x48, 0xd3, 0x47, 0x98, 0xfa, 0x0b, 0x90, 0x22, 0xf1, 0x92,
- 0x01, 0x58, 0xc4, 0xa4, 0x21, 0x39, 0x0d, 0xc9, 0xe5, 0x2d, 0x05, 0xa7, 0xbf, 0x04, 0x39, 0xda,
- 0xaa, 0x6e, 0xaf, 0x95, 0x97, 0xcb, 0x52, 0x7c, 0xf6, 0x0c, 0x0c, 0xd3, 0x20, 0xe0, 0xa5, 0xe1,
- 0x85, 0x41, 0x1a, 0x62, 0x8f, 0x8c, 0x23, 0xc6, 0x7b, 0x77, 0x37, 0x96, 0xca, 0x8a, 0x14, 0x17,
- 0xa7, 0xd7, 0x81, 0x9c, 0xa8, 0x8b, 0x3f, 0x9e, 0x9c, 0xfa, 0x76, 0x0c, 0xb2, 0x82, 0xce, 0xc5,
- 0x02, 0x45, 0x6b, 0x34, 0xac, 0x2b, 0xaa, 0xd6, 0x30, 0x34, 0x87, 0x25, 0x05, 0x90, 0xa6, 0x12,
- 0x6e, 0x19, 0x74, 0xd2, 0x3e, 0x16, 0xe7, 0x5f, 0x8d, 0x81, 0x14, 0x94, 0x98, 0x01, 0x07, 0x63,
- 0x3f, 0x55, 0x07, 0x5f, 0x89, 0x41, 0xde, 0xaf, 0x2b, 0x03, 0xee, 0x9d, 0xf8, 0xa9, 0xba, 0xf7,
- 0x56, 0x1c, 0x46, 0x7d, 0x6a, 0x72, 0x50, 0xef, 0x9e, 0x83, 0x71, 0xa3, 0x8a, 0x9a, 0x2d, 0xcb,
- 0x45, 0xa6, 0x7e, 0xa0, 0x36, 0xd0, 0x65, 0xd4, 0x28, 0xcc, 0x92, 0x42, 0xb1, 0xd0, 0x5f, 0xaf,
- 0xce, 0xaf, 0x75, 0x70, 0xeb, 0x18, 0x56, 0x9c, 0x58, 0x5b, 0x29, 0x6f, 0x6c, 0x6f, 0xed, 0x94,
- 0x37, 0x97, 0x9f, 0x52, 0x77, 0x37, 0x1f, 0xdb, 0xdc, 0x7a, 0x62, 0x53, 0x91, 0x8c, 0x80, 0xd9,
- 0x47, 0xb8, 0xd4, 0xb7, 0x41, 0x0a, 0x3a, 0x25, 0xdf, 0x08, 0x61, 0x6e, 0x49, 0x43, 0xf2, 0x04,
- 0x8c, 0x6d, 0x6e, 0xa9, 0x95, 0xb5, 0x95, 0xb2, 0x5a, 0xbe, 0x70, 0xa1, 0xbc, 0xbc, 0x53, 0xa1,
- 0x37, 0x10, 0x9e, 0xf5, 0x8e, 0x7f, 0x51, 0xbf, 0x9c, 0x80, 0x89, 0x10, 0x4f, 0xe4, 0x12, 0x3b,
- 0x3b, 0xd0, 0xe3, 0xcc, 0x3d, 0x83, 0x78, 0x3f, 0x8f, 0xb7, 0xfc, 0x6d, 0xcd, 0x76, 0xd9, 0x51,
- 0xe3, 0x2e, 0xc0, 0x51, 0x32, 0x5d, 0xa3, 0x66, 0x20, 0x9b, 0x5d, 0xd8, 0xd0, 0x03, 0xc5, 0x58,
- 0xa7, 0x9d, 0xde, 0xd9, 0xdc, 0x0d, 0x72, 0xcb, 0x72, 0x0c, 0xd7, 0xb8, 0x8c, 0x54, 0xc3, 0xe4,
- 0xb7, 0x3b, 0xf8, 0x80, 0x91, 0x54, 0x24, 0xde, 0xb3, 0x66, 0xba, 0x9e, 0xb5, 0x89, 0xea, 0x5a,
- 0xc0, 0x1a, 0x17, 0xf0, 0x84, 0x22, 0xf1, 0x1e, 0xcf, 0xfa, 0x04, 0xe4, 0xaa, 0x56, 0x1b, 0xab,
- 0x2e, 0x6a, 0x87, 0xf7, 0x8b, 0x98, 0x92, 0xa5, 0x6d, 0x9e, 0x09, 0xd3, 0xd3, 0x9d, 0x6b, 0xa5,
- 0x9c, 0x92, 0xa5, 0x6d, 0xd4, 0xe4, 0x4e, 0x18, 0xd3, 0xea, 0x75, 0x1b, 0x93, 0x73, 0x22, 0x7a,
- 0x42, 0xc8, 0x7b, 0xcd, 0xc4, 0x70, 0xea, 0x51, 0x48, 0xf3, 0x38, 0xe0, 0x2d, 0x19, 0x47, 0x42,
- 0x6d, 0xd1, 0x63, 0x6f, 0x7c, 0x2e, 0xa3, 0xa4, 0x4d, 0xde, 0x79, 0x02, 0x72, 0x86, 0xa3, 0x76,
- 0x6e, 0xc9, 0xe3, 0xc7, 0xe3, 0x73, 0x69, 0x25, 0x6b, 0x38, 0xde, 0x0d, 0xe3, 0xec, 0xeb, 0x71,
- 0xc8, 0xfb, 0x6f, 0xf9, 0xe5, 0x15, 0x48, 0x37, 0x2c, 0x5d, 0x23, 0xa9, 0x45, 0x3f, 0x31, 0xcd,
- 0x45, 0x7c, 0x18, 0x98, 0x5f, 0x67, 0xf6, 0x8a, 0x87, 0x9c, 0xfa, 0x97, 0x18, 0xa4, 0x79, 0xb3,
- 0x7c, 0x0c, 0x92, 0x2d, 0xcd, 0xdd, 0x27, 0x74, 0xa9, 0xa5, 0xb8, 0x14, 0x53, 0xc8, 0x33, 0x6e,
- 0x77, 0x5a, 0x9a, 0x49, 0x52, 0x80, 0xb5, 0xe3, 0x67, 0x3c, 0xaf, 0x0d, 0xa4, 0x55, 0xc9, 0xf1,
- 0xc3, 0x6a, 0x36, 0x91, 0xe9, 0x3a, 0x7c, 0x5e, 0x59, 0xfb, 0x32, 0x6b, 0x96, 0x4f, 0xc1, 0xb8,
- 0x6b, 0x6b, 0x46, 0xc3, 0x67, 0x9b, 0x24, 0xb6, 0x12, 0xef, 0xf0, 0x8c, 0x8b, 0x70, 0x13, 0xe7,
- 0xad, 0x22, 0x57, 0xd3, 0xf7, 0x51, 0xb5, 0x03, 0x1a, 0x26, 0xd7, 0x0c, 0x37, 0x32, 0x83, 0x15,
- 0xd6, 0xcf, 0xb1, 0xb3, 0xdf, 0x8f, 0xc1, 0x38, 0x3f, 0x30, 0x55, 0xbd, 0x60, 0x6d, 0x00, 0x68,
- 0xa6, 0x69, 0xb9, 0x62, 0xb8, 0xba, 0x53, 0xb9, 0x0b, 0x37, 0x5f, 0xf2, 0x40, 0x8a, 0x40, 0x30,
- 0xd5, 0x04, 0xe8, 0xf4, 0xf4, 0x0c, 0xdb, 0x0c, 0x64, 0xd9, 0x27, 0x1c, 0xf2, 0x1d, 0x90, 0x1e,
- 0xb1, 0x81, 0x36, 0xe1, 0x93, 0x95, 0x3c, 0x09, 0xa9, 0x3d, 0x54, 0x37, 0x4c, 0x76, 0x31, 0x4b,
- 0x1f, 0xf8, 0x45, 0x48, 0xd2, 0xbb, 0x08, 0x59, 0xfa, 0x2c, 0x4c, 0xe8, 0x56, 0x33, 0xe8, 0xee,
- 0x92, 0x14, 0x38, 0xe6, 0x3b, 0x17, 0x63, 0x4f, 0x43, 0x47, 0x62, 0xbe, 0x1f, 0x8b, 0x7d, 0x31,
- 0x9e, 0x58, 0xdd, 0x5e, 0xfa, 0x4a, 0x7c, 0x6a, 0x95, 0x42, 0xb7, 0xf9, 0x9b, 0x2a, 0xa8, 0xd6,
- 0x40, 0x3a, 0xf6, 0x1e, 0xbe, 0x74, 0x0a, 0xee, 0xa9, 0x1b, 0xee, 0x7e, 0x7b, 0x6f, 0x5e, 0xb7,
- 0x9a, 0x0b, 0x75, 0xab, 0x6e, 0x75, 0x3e, 0x7d, 0xe2, 0x27, 0xf2, 0x40, 0xfe, 0x62, 0x9f, 0x3f,
- 0x33, 0x5e, 0xeb, 0x54, 0xe4, 0xb7, 0xd2, 0xe2, 0x26, 0x4c, 0x30, 0x63, 0x95, 0x7c, 0x7f, 0xa1,
- 0xa7, 0x08, 0xb9, 0xef, 0x1d, 0x56, 0xe1, 0x6b, 0x6f, 0x93, 0xed, 0x5a, 0x19, 0x67, 0x50, 0xdc,
- 0x47, 0x0f, 0x1a, 0x45, 0x05, 0x6e, 0xf0, 0xf1, 0xd1, 0xa5, 0x89, 0xec, 0x08, 0xc6, 0xef, 0x32,
- 0xc6, 0x09, 0x81, 0xb1, 0xc2, 0xa0, 0xc5, 0x65, 0x18, 0x3d, 0x0a, 0xd7, 0x3f, 0x32, 0xae, 0x1c,
- 0x12, 0x49, 0x56, 0x61, 0x8c, 0x90, 0xe8, 0x6d, 0xc7, 0xb5, 0x9a, 0xa4, 0xee, 0xf5, 0xa7, 0xf9,
- 0xa7, 0xb7, 0xe9, 0x5a, 0xc9, 0x63, 0xd8, 0xb2, 0x87, 0x2a, 0x16, 0x81, 0x7c, 0x72, 0xaa, 0x22,
- 0xbd, 0x11, 0xc1, 0xf0, 0x06, 0x73, 0xc4, 0xb3, 0x2f, 0x3e, 0x0e, 0x93, 0xf8, 0x6f, 0x52, 0x96,
- 0x44, 0x4f, 0xa2, 0x2f, 0xbc, 0x0a, 0xdf, 0x7f, 0x91, 0x2e, 0xc7, 0x09, 0x8f, 0x40, 0xf0, 0x49,
- 0x98, 0xc5, 0x3a, 0x72, 0x5d, 0x64, 0x3b, 0xaa, 0xd6, 0x08, 0x73, 0x4f, 0xb8, 0x31, 0x28, 0x7c,
- 0xfe, 0x5d, 0xff, 0x2c, 0xae, 0x52, 0x64, 0xa9, 0xd1, 0x28, 0xee, 0xc2, 0x8d, 0x21, 0x59, 0x31,
- 0x00, 0xe7, 0xcb, 0x8c, 0x73, 0xb2, 0x2b, 0x33, 0x30, 0xed, 0x36, 0xf0, 0x76, 0x6f, 0x2e, 0x07,
- 0xe0, 0xfc, 0x43, 0xc6, 0x29, 0x33, 0x2c, 0x9f, 0x52, 0xcc, 0xf8, 0x28, 0x8c, 0x5f, 0x46, 0xf6,
- 0x9e, 0xe5, 0xb0, 0x5b, 0x9a, 0x01, 0xe8, 0x5e, 0x61, 0x74, 0x63, 0x0c, 0x48, 0xae, 0x6d, 0x30,
- 0xd7, 0x83, 0x90, 0xae, 0x69, 0x3a, 0x1a, 0x80, 0xe2, 0x0b, 0x8c, 0x62, 0x04, 0xdb, 0x63, 0x68,
- 0x09, 0x72, 0x75, 0x8b, 0xed, 0x4c, 0xd1, 0xf0, 0x57, 0x19, 0x3c, 0xcb, 0x31, 0x8c, 0xa2, 0x65,
- 0xb5, 0xda, 0x0d, 0xbc, 0x6d, 0x45, 0x53, 0xfc, 0x11, 0xa7, 0xe0, 0x18, 0x46, 0x71, 0x84, 0xb0,
- 0xfe, 0x31, 0xa7, 0x70, 0x84, 0x78, 0x3e, 0x02, 0x59, 0xcb, 0x6c, 0x1c, 0x58, 0xe6, 0x20, 0x4e,
- 0xbc, 0xc6, 0x18, 0x80, 0x41, 0x30, 0xc1, 0x79, 0xc8, 0x0c, 0x3a, 0x11, 0x7f, 0xfa, 0x2e, 0x5f,
- 0x1e, 0x7c, 0x06, 0x56, 0x61, 0x8c, 0x17, 0x28, 0xc3, 0x32, 0x07, 0xa0, 0xf8, 0x12, 0xa3, 0xc8,
- 0x0b, 0x30, 0xf6, 0x1a, 0x2e, 0x72, 0xdc, 0x3a, 0x1a, 0x84, 0xe4, 0x75, 0xfe, 0x1a, 0x0c, 0xc2,
- 0x42, 0xb9, 0x87, 0x4c, 0x7d, 0x7f, 0x30, 0x86, 0x2f, 0xf3, 0x50, 0x72, 0x0c, 0xa6, 0x58, 0x86,
- 0xd1, 0xa6, 0x66, 0x3b, 0xfb, 0x5a, 0x63, 0xa0, 0xe9, 0xf8, 0x33, 0xc6, 0x91, 0xf3, 0x40, 0x2c,
- 0x22, 0x6d, 0xf3, 0x28, 0x34, 0x5f, 0xe1, 0x11, 0x11, 0x60, 0x6c, 0xe9, 0x39, 0x2e, 0xb9, 0xd2,
- 0x3a, 0x0a, 0xdb, 0x9f, 0xf3, 0xa5, 0x47, 0xb1, 0x1b, 0x22, 0xe3, 0x79, 0xc8, 0x38, 0xc6, 0x0b,
- 0x03, 0xd1, 0xfc, 0x05, 0x9f, 0x69, 0x02, 0xc0, 0xe0, 0xa7, 0xe0, 0xa6, 0xd0, 0x6d, 0x62, 0x00,
- 0xb2, 0xbf, 0x64, 0x64, 0xc7, 0x42, 0xb6, 0x0a, 0x56, 0x12, 0x8e, 0x4a, 0xf9, 0x57, 0xbc, 0x24,
- 0xa0, 0x00, 0xd7, 0x36, 0x3e, 0x2b, 0x38, 0x5a, 0xed, 0x68, 0x51, 0xfb, 0x6b, 0x1e, 0x35, 0x8a,
- 0xf5, 0x45, 0x6d, 0x07, 0x8e, 0x31, 0xc6, 0xa3, 0xcd, 0xeb, 0x57, 0x79, 0x61, 0xa5, 0xe8, 0x5d,
- 0xff, 0xec, 0x7e, 0x16, 0xa6, 0xbc, 0x70, 0x72, 0x51, 0xea, 0xa8, 0x4d, 0xad, 0x35, 0x00, 0xf3,
- 0xd7, 0x18, 0x33, 0xaf, 0xf8, 0x9e, 0xaa, 0x75, 0x36, 0xb4, 0x16, 0x26, 0x7f, 0x12, 0x0a, 0x9c,
- 0xbc, 0x6d, 0xda, 0x48, 0xb7, 0xea, 0xa6, 0xf1, 0x02, 0xaa, 0x0e, 0x40, 0xfd, 0x37, 0x81, 0xa9,
- 0xda, 0x15, 0xe0, 0x98, 0x79, 0x0d, 0x24, 0x4f, 0xab, 0xa8, 0x46, 0xb3, 0x65, 0xd9, 0x6e, 0x04,
- 0xe3, 0xd7, 0xf9, 0x4c, 0x79, 0xb8, 0x35, 0x02, 0x2b, 0x96, 0x21, 0x4f, 0x1e, 0x07, 0x4d, 0xc9,
- 0xbf, 0x65, 0x44, 0xa3, 0x1d, 0x14, 0x2b, 0x1c, 0xba, 0xd5, 0x6c, 0x69, 0xf6, 0x20, 0xf5, 0xef,
- 0xef, 0x78, 0xe1, 0x60, 0x10, 0x56, 0x38, 0xdc, 0x83, 0x16, 0xc2, 0xbb, 0xfd, 0x00, 0x0c, 0xdf,
- 0xe0, 0x85, 0x83, 0x63, 0x18, 0x05, 0x17, 0x0c, 0x03, 0x50, 0xfc, 0x3d, 0xa7, 0xe0, 0x18, 0x4c,
- 0xf1, 0x99, 0xce, 0x46, 0x6b, 0xa3, 0xba, 0xe1, 0xb8, 0x36, 0x95, 0xc2, 0xfd, 0xa9, 0xbe, 0xf9,
- 0xae, 0x5f, 0x84, 0x29, 0x02, 0x14, 0x57, 0x22, 0x76, 0x85, 0x4a, 0x4e, 0x4a, 0xd1, 0x8e, 0x7d,
- 0x8b, 0x57, 0x22, 0x01, 0x86, 0x7d, 0x13, 0x14, 0x22, 0x0e, 0xbb, 0x8e, 0xcf, 0x07, 0x03, 0xd0,
- 0x7d, 0x3b, 0xe0, 0x5c, 0x85, 0x63, 0x31, 0xa7, 0xa0, 0x7f, 0xda, 0xe6, 0x25, 0x74, 0x30, 0x50,
- 0x76, 0xfe, 0x43, 0x40, 0xff, 0xec, 0x52, 0x24, 0xad, 0x21, 0x63, 0x01, 0x3d, 0x25, 0x47, 0xfd,
- 0x58, 0xa7, 0xf0, 0x4b, 0xd7, 0xd9, 0xfb, 0xfa, 0xe5, 0x54, 0x71, 0x1d, 0x27, 0xb9, 0x5f, 0xf4,
- 0x44, 0x93, 0xbd, 0x78, 0xdd, 0xcb, 0x73, 0x9f, 0xe6, 0x29, 0x5e, 0x80, 0x51, 0x9f, 0xe0, 0x89,
- 0xa6, 0xfa, 0x65, 0x46, 0x95, 0x13, 0xf5, 0x4e, 0xf1, 0x0c, 0x24, 0xb1, 0x78, 0x89, 0x86, 0xff,
- 0x0a, 0x83, 0x13, 0xf3, 0xe2, 0x43, 0x90, 0xe6, 0xa2, 0x25, 0x1a, 0xfa, 0xab, 0x0c, 0xea, 0x41,
- 0x30, 0x9c, 0x0b, 0x96, 0x68, 0xf8, 0xaf, 0x71, 0x38, 0x87, 0x60, 0xf8, 0xe0, 0x21, 0xfc, 0xce,
- 0xaf, 0x27, 0xd9, 0xa6, 0xc3, 0x63, 0x77, 0x1e, 0x46, 0x98, 0x52, 0x89, 0x46, 0x7f, 0x8e, 0x0d,
- 0xce, 0x11, 0xc5, 0x07, 0x20, 0x35, 0x60, 0xc0, 0x7f, 0x83, 0x41, 0xa9, 0x7d, 0x71, 0x19, 0xb2,
- 0x82, 0x3a, 0x89, 0x86, 0xff, 0x26, 0x83, 0x8b, 0x28, 0xec, 0x3a, 0x53, 0x27, 0xd1, 0x04, 0xbf,
- 0xc5, 0x5d, 0x67, 0x08, 0x1c, 0x36, 0x2e, 0x4c, 0xa2, 0xd1, 0xbf, 0xcd, 0xa3, 0xce, 0x21, 0xc5,
- 0x47, 0x20, 0xe3, 0x6d, 0x36, 0xd1, 0xf8, 0xdf, 0x61, 0xf8, 0x0e, 0x06, 0x47, 0x40, 0xd8, 0xec,
- 0xa2, 0x29, 0x7e, 0x97, 0x47, 0x40, 0x40, 0xe1, 0x65, 0x14, 0x14, 0x30, 0xd1, 0x4c, 0xbf, 0xc7,
- 0x97, 0x51, 0x40, 0xbf, 0xe0, 0xd9, 0x24, 0x35, 0x3f, 0x9a, 0xe2, 0xf7, 0xf9, 0x6c, 0x12, 0x7b,
- 0xec, 0x46, 0x50, 0x11, 0x44, 0x73, 0xfc, 0x01, 0x77, 0x23, 0x20, 0x08, 0x8a, 0xdb, 0x20, 0x77,
- 0xab, 0x81, 0x68, 0xbe, 0x97, 0x18, 0xdf, 0x78, 0x97, 0x18, 0x28, 0x3e, 0x01, 0xc7, 0xc2, 0x95,
- 0x40, 0x34, 0xeb, 0xe7, 0xaf, 0x07, 0xce, 0x6e, 0xa2, 0x10, 0x28, 0xee, 0x74, 0xb6, 0x14, 0x51,
- 0x05, 0x44, 0xd3, 0xbe, 0x7c, 0xdd, 0x5f, 0xb8, 0x45, 0x11, 0x50, 0x2c, 0x01, 0x74, 0x36, 0xe0,
- 0x68, 0xae, 0x57, 0x18, 0x97, 0x00, 0xc2, 0x4b, 0x83, 0xed, 0xbf, 0xd1, 0xf8, 0x2f, 0xf0, 0xa5,
- 0xc1, 0x10, 0x78, 0x69, 0xf0, 0xad, 0x37, 0x1a, 0xfd, 0x2a, 0x5f, 0x1a, 0x1c, 0x82, 0x33, 0x5b,
- 0xd8, 0xdd, 0xa2, 0x19, 0x5e, 0xe3, 0x99, 0x2d, 0xa0, 0x8a, 0x9b, 0x30, 0xde, 0xb5, 0x21, 0x46,
- 0x53, 0x7d, 0x91, 0x51, 0x49, 0xc1, 0xfd, 0x50, 0xdc, 0xbc, 0xd8, 0x66, 0x18, 0xcd, 0xf6, 0x27,
- 0x81, 0xcd, 0x8b, 0xed, 0x85, 0xc5, 0xf3, 0x90, 0x36, 0xdb, 0x8d, 0x06, 0x5e, 0x3c, 0x72, 0xff,
- 0x1f, 0xd8, 0x15, 0xfe, 0xed, 0x03, 0x16, 0x1d, 0x0e, 0x28, 0x9e, 0x81, 0x14, 0x6a, 0xee, 0xa1,
- 0x6a, 0x14, 0xf2, 0xdf, 0x3f, 0xe0, 0x05, 0x13, 0x5b, 0x17, 0x1f, 0x01, 0xa0, 0x57, 0x23, 0xe4,
- 0xb3, 0x5f, 0x04, 0xf6, 0x3f, 0x3e, 0x60, 0x3f, 0x7d, 0xe9, 0x40, 0x3a, 0x04, 0xf4, 0x87, 0x34,
- 0xfd, 0x09, 0xde, 0xf5, 0x13, 0x90, 0x19, 0x79, 0x10, 0x46, 0x9e, 0x75, 0x2c, 0xd3, 0xd5, 0xea,
- 0x51, 0xe8, 0xff, 0x64, 0x68, 0x6e, 0x8f, 0x03, 0xd6, 0xb4, 0x6c, 0xe4, 0x6a, 0x75, 0x27, 0x0a,
- 0xfb, 0x5f, 0x0c, 0xeb, 0x01, 0x30, 0x58, 0xd7, 0x1c, 0x77, 0x90, 0xf7, 0xfe, 0x09, 0x07, 0x73,
- 0x00, 0x76, 0x1a, 0xff, 0x7d, 0x09, 0x1d, 0x44, 0x61, 0xdf, 0xe3, 0x4e, 0x33, 0xfb, 0xe2, 0x43,
- 0x90, 0xc1, 0x7f, 0xd2, 0xdf, 0xb3, 0x45, 0x80, 0xff, 0x9b, 0x81, 0x3b, 0x08, 0x3c, 0xb2, 0xe3,
- 0x56, 0x5d, 0x23, 0x3a, 0xd8, 0xff, 0xc3, 0x66, 0x9a, 0xdb, 0x17, 0x4b, 0x90, 0x75, 0xdc, 0x6a,
- 0xb5, 0xcd, 0xf4, 0x69, 0x04, 0xfc, 0x7f, 0x3f, 0xf0, 0xae, 0x2c, 0x3c, 0x0c, 0x9e, 0xed, 0x2b,
- 0x97, 0xdc, 0x96, 0x45, 0x3e, 0x73, 0x44, 0x31, 0x5c, 0x67, 0x0c, 0x02, 0x64, 0xa9, 0x1c, 0x7e,
- 0x7d, 0x0b, 0xab, 0xd6, 0xaa, 0x45, 0x2f, 0x6e, 0x9f, 0x9e, 0x8d, 0xbe, 0x81, 0x85, 0xff, 0xbb,
- 0x07, 0x66, 0x74, 0xab, 0xb9, 0x67, 0x39, 0x0b, 0x26, 0x32, 0xdc, 0x7d, 0x64, 0x2f, 0x34, 0xb5,
- 0x96, 0x43, 0x3a, 0x17, 0xd9, 0xd5, 0x6c, 0x96, 0x3d, 0xe1, 0x8e, 0xa9, 0xa3, 0x5d, 0xeb, 0xce,
- 0xde, 0x02, 0xa3, 0x17, 0x1a, 0x96, 0xe6, 0x1a, 0x66, 0x7d, 0x1b, 0x7b, 0x2e, 0xe7, 0x20, 0x56,
- 0x23, 0x9f, 0x25, 0x63, 0x4a, 0xac, 0x36, 0xfb, 0xcf, 0x29, 0xc8, 0xd0, 0x1b, 0xc1, 0x0d, 0xad,
- 0x25, 0xff, 0x22, 0xe4, 0x36, 0xd9, 0x32, 0xbc, 0x6f, 0xf1, 0x9c, 0xe3, 0x7d, 0x81, 0x10, 0xc6,
- 0x9f, 0xf7, 0xac, 0xe7, 0x45, 0x53, 0xf2, 0x33, 0x84, 0xa5, 0x7b, 0x7f, 0xf8, 0xe6, 0xcc, 0xdd,
- 0x3d, 0xfd, 0xc3, 0xc2, 0x62, 0x81, 0xae, 0x97, 0xf9, 0x5d, 0xc3, 0x74, 0xef, 0x5b, 0x3c, 0xa7,
- 0xf8, 0xc6, 0x93, 0x2f, 0x43, 0x9a, 0x75, 0x38, 0xec, 0xcb, 0xd4, 0x6d, 0x3d, 0xc6, 0xe6, 0x66,
- 0x74, 0xdc, 0xd3, 0x6f, 0xbc, 0x39, 0x33, 0x74, 0xe4, 0xb1, 0xbd, 0xb1, 0xe4, 0xe7, 0x20, 0xcb,
- 0xfd, 0x58, 0xab, 0x3a, 0xec, 0x7f, 0x22, 0xdc, 0x19, 0xf1, 0xda, 0x6b, 0x55, 0x36, 0xfa, 0x1d,
- 0x3f, 0x7c, 0x73, 0x66, 0xb6, 0xef, 0xc8, 0xf3, 0xbb, 0x6d, 0xa3, 0xaa, 0x88, 0x63, 0xc8, 0xcf,
- 0x40, 0x02, 0x0f, 0x45, 0x7f, 0xbc, 0x39, 0xd3, 0x63, 0x28, 0x6f, 0x88, 0x93, 0xec, 0x05, 0x07,
- 0x19, 0x06, 0xf3, 0x4e, 0x3d, 0x02, 0xe3, 0x5d, 0xd3, 0x23, 0x4b, 0x90, 0xb8, 0x84, 0x0e, 0xd8,
- 0xaf, 0xe4, 0xf0, 0x9f, 0xf2, 0x64, 0xe7, 0x67, 0xac, 0xb1, 0xb9, 0x1c, 0xfb, 0x6d, 0x6a, 0x31,
- 0x7e, 0x2e, 0x36, 0x75, 0x1e, 0x46, 0x7d, 0x31, 0x3e, 0x12, 0xf8, 0x61, 0x90, 0x82, 0x51, 0x3a,
- 0x12, 0xfe, 0x2c, 0xa4, 0x3f, 0x0c, 0x6e, 0xf6, 0x07, 0x32, 0x8c, 0x94, 0x1a, 0x8d, 0x0d, 0xad,
- 0xe5, 0xc8, 0x4f, 0xc1, 0x38, 0x3d, 0xfe, 0xec, 0x58, 0x2b, 0xe4, 0x5b, 0xe0, 0x86, 0xd6, 0x62,
- 0x09, 0x7d, 0xca, 0x17, 0x6e, 0x06, 0x98, 0xef, 0xb2, 0x26, 0xe3, 0x2b, 0xdd, 0x2c, 0xf2, 0xe3,
- 0x20, 0xf1, 0x46, 0xb2, 0xb6, 0x30, 0x33, 0x4d, 0xd7, 0x93, 0x7d, 0x99, 0xb9, 0x31, 0x25, 0xee,
- 0xe2, 0x90, 0x1f, 0x86, 0xf4, 0x9a, 0xe9, 0xde, 0xbf, 0x88, 0xf9, 0x68, 0x0e, 0xce, 0x86, 0xf2,
- 0x71, 0x23, 0xca, 0xe3, 0x61, 0x18, 0xfe, 0xec, 0x69, 0x8c, 0x4f, 0xf6, 0xc7, 0x13, 0xa3, 0x0e,
- 0x9e, 0x3c, 0xca, 0x25, 0xc8, 0xe0, 0x39, 0xa7, 0x0e, 0xd0, 0xff, 0x04, 0x73, 0x6b, 0x28, 0x81,
- 0x67, 0x45, 0x19, 0x3a, 0x28, 0x4e, 0x41, 0x7d, 0x18, 0x8e, 0xa0, 0x10, 0x9c, 0xe8, 0xa0, 0x30,
- 0x45, 0xc5, 0xf3, 0x62, 0xa4, 0x0f, 0x45, 0x25, 0xe0, 0x45, 0x45, 0xf4, 0xa2, 0xe2, 0x79, 0x91,
- 0x8e, 0xa0, 0x10, 0xbd, 0xf0, 0x9e, 0xe5, 0x15, 0x80, 0x0b, 0xc6, 0xf3, 0xa8, 0x4a, 0xdd, 0xc8,
- 0x84, 0x14, 0x23, 0xce, 0xd1, 0x31, 0xa3, 0x24, 0x02, 0x4e, 0x5e, 0x85, 0x6c, 0xa5, 0xd6, 0xa1,
- 0x01, 0xf6, 0x7f, 0x80, 0x42, 0x5d, 0xa9, 0x05, 0x78, 0x44, 0xa4, 0xe7, 0x0e, 0x7d, 0xa5, 0x6c,
- 0x94, 0x3b, 0xc2, 0x3b, 0x09, 0xb8, 0x8e, 0x3b, 0x94, 0x26, 0x17, 0xe9, 0x8e, 0xc0, 0x23, 0x22,
- 0xe5, 0xf3, 0x30, 0xb2, 0x64, 0x59, 0xd8, 0xb2, 0x30, 0x4a, 0x48, 0x4e, 0x84, 0x92, 0x30, 0x1b,
- 0x4a, 0xc0, 0x11, 0x64, 0x76, 0x48, 0xea, 0x63, 0x78, 0xbe, 0xdf, 0xec, 0x70, 0x2b, 0x3e, 0x3b,
- 0xfc, 0x59, 0x5c, 0x81, 0x4b, 0x07, 0x2e, 0xc2, 0x47, 0x8d, 0xc2, 0xd8, 0x00, 0x2b, 0x90, 0x1b,
- 0x07, 0x56, 0x20, 0x6f, 0x96, 0x2b, 0x30, 0xc6, 0xdb, 0xca, 0x66, 0x1b, 0xd7, 0xe0, 0x82, 0xc4,
- 0x7e, 0xe0, 0xdf, 0x8f, 0x96, 0xd9, 0x52, 0xd6, 0x20, 0x83, 0xbc, 0x0d, 0x79, 0xde, 0xb4, 0xe1,
- 0x90, 0x97, 0x1e, 0x0f, 0xd9, 0x57, 0x83, 0x9c, 0xd4, 0x94, 0x52, 0x06, 0xf0, 0x53, 0x2b, 0x70,
- 0x2c, 0xbc, 0x5a, 0x45, 0x55, 0xcb, 0x98, 0x58, 0x65, 0x97, 0xe1, 0x86, 0xd0, 0xca, 0x14, 0x45,
- 0x12, 0x0f, 0xec, 0x13, 0xbe, 0x72, 0x24, 0x82, 0x53, 0x21, 0xe0, 0x54, 0x37, 0xb8, 0x93, 0x64,
- 0x22, 0x38, 0x11, 0x02, 0x4e, 0x88, 0xe0, 0x4f, 0x43, 0xde, 0x5f, 0x87, 0x44, 0xf4, 0x68, 0x08,
- 0x7a, 0x34, 0x04, 0x1d, 0x3e, 0x76, 0x32, 0x04, 0x9d, 0x0c, 0xa0, 0x2b, 0x3d, 0xc7, 0x1e, 0x0f,
- 0x41, 0x8f, 0x87, 0xa0, 0xc3, 0xc7, 0x96, 0x43, 0xd0, 0xb2, 0x88, 0x7e, 0x08, 0xc6, 0x02, 0x25,
- 0x47, 0x84, 0x8f, 0x84, 0xc0, 0x47, 0x02, 0x7b, 0x73, 0xb0, 0xd4, 0x88, 0xf8, 0xb1, 0x10, 0xfc,
- 0x58, 0xd8, 0xf0, 0xe1, 0xde, 0x0f, 0x87, 0xc0, 0x87, 0x43, 0x87, 0x0f, 0xc7, 0x4b, 0x21, 0x78,
- 0x49, 0xc4, 0x17, 0x21, 0x27, 0x56, 0x15, 0x11, 0x9b, 0x0e, 0xc1, 0xa6, 0x83, 0x71, 0xf7, 0x95,
- 0x94, 0xa8, 0x4c, 0xcf, 0xf4, 0x58, 0x2e, 0xbe, 0x32, 0x72, 0x24, 0x65, 0xf3, 0x24, 0x4c, 0x86,
- 0x15, 0x8d, 0x10, 0x8e, 0x93, 0x22, 0x47, 0x7e, 0x71, 0xd2, 0x57, 0x2c, 0x08, 0xae, 0xdd, 0x14,
- 0x99, 0x9f, 0x81, 0x89, 0x90, 0xd2, 0x11, 0x42, 0x7c, 0xaf, 0x48, 0x9c, 0x5d, 0x9c, 0xf2, 0x11,
- 0xfb, 0xce, 0x0a, 0xa2, 0xb4, 0xfa, 0xd1, 0x04, 0xe4, 0x59, 0x89, 0xda, 0xb2, 0xab, 0xc8, 0x46,
- 0x55, 0xf9, 0xe7, 0x7b, 0x2b, 0xac, 0xc5, 0xb0, 0xd2, 0xc6, 0x70, 0x47, 0x10, 0x5a, 0xcf, 0xf4,
- 0x14, 0x5a, 0xf7, 0x0d, 0x32, 0x40, 0x94, 0xde, 0x2a, 0x77, 0xe9, 0xad, 0xbb, 0xfa, 0xd1, 0xf6,
- 0x92, 0x5d, 0xe5, 0x2e, 0xd9, 0x15, 0x45, 0x13, 0xaa, 0xbe, 0x2e, 0x76, 0xab, 0xaf, 0x93, 0xfd,
- 0x78, 0x7a, 0x8b, 0xb0, 0x8b, 0xdd, 0x22, 0x2c, 0x92, 0x29, 0x5c, 0x8b, 0x5d, 0xec, 0xd6, 0x62,
- 0x7d, 0x99, 0x7a, 0x4b, 0xb2, 0x8b, 0xdd, 0x92, 0x2c, 0x92, 0x29, 0x5c, 0x99, 0x3d, 0x16, 0xa2,
- 0xcc, 0x4e, 0xf5, 0xa3, 0xea, 0x27, 0xd0, 0x36, 0xc3, 0x04, 0xda, 0xdd, 0x7d, 0x1d, 0xeb, 0xab,
- 0xd3, 0x1e, 0x0b, 0xd1, 0x69, 0xd1, 0xce, 0xf5, 0x90, 0x6b, 0x9b, 0x61, 0x72, 0x6d, 0x00, 0xe7,
- 0x7a, 0xa9, 0xb6, 0xa5, 0xa0, 0x6a, 0x9b, 0xeb, 0xc7, 0x15, 0x2e, 0xde, 0x2e, 0x76, 0x8b, 0xb7,
- 0x93, 0xd1, 0x6b, 0x31, 0x4c, 0xc3, 0x3d, 0xd3, 0x53, 0xc3, 0x0d, 0xb4, 0xb8, 0xa3, 0xa4, 0xdc,
- 0xd3, 0xbd, 0xa4, 0xdc, 0xbd, 0x83, 0xb0, 0xf7, 0x57, 0x74, 0x4f, 0xf4, 0x50, 0x74, 0x0b, 0x83,
- 0x50, 0x7f, 0x22, 0xec, 0x3e, 0x11, 0x76, 0x9f, 0x08, 0xbb, 0x4f, 0x84, 0xdd, 0xcf, 0x86, 0xb0,
- 0x2b, 0x26, 0x5f, 0x7a, 0x6d, 0x26, 0x76, 0xf2, 0x04, 0x8c, 0xb0, 0xa1, 0xe5, 0x61, 0x88, 0x6f,
- 0x94, 0xa4, 0x21, 0xf2, 0xef, 0x92, 0x14, 0x23, 0xff, 0x2e, 0x4b, 0xf1, 0xa5, 0xf5, 0x37, 0xae,
- 0x4d, 0x0f, 0x7d, 0xef, 0xda, 0xf4, 0xd0, 0x0f, 0xae, 0x4d, 0x0f, 0xbd, 0x75, 0x6d, 0x3a, 0xf6,
- 0xce, 0xb5, 0xe9, 0xd8, 0x7b, 0xd7, 0xa6, 0x63, 0xef, 0x5f, 0x9b, 0x8e, 0x5d, 0x3d, 0x9c, 0x8e,
- 0x7d, 0xf9, 0x70, 0x3a, 0xf6, 0xd5, 0xc3, 0xe9, 0xd8, 0x37, 0x0f, 0xa7, 0x63, 0xdf, 0x39, 0x9c,
- 0x8e, 0xbd, 0x71, 0x38, 0x3d, 0xf4, 0xbd, 0xc3, 0xe9, 0xa1, 0xb7, 0x0e, 0xa7, 0x63, 0xef, 0x1c,
- 0x4e, 0x0f, 0xbd, 0x77, 0x38, 0x1d, 0x7b, 0xff, 0x70, 0x7a, 0xe8, 0xea, 0x8f, 0xa7, 0x87, 0xfe,
- 0x3f, 0x00, 0x00, 0xff, 0xff, 0x76, 0x17, 0x54, 0xda, 0x93, 0x49, 0x00, 0x00,
+ 0x79, 0x16, 0x6f, 0x12, 0xf9, 0x93, 0xa2, 0x46, 0x23, 0x79, 0x4d, 0x2b, 0xb1, 0x76, 0x57, 0xbe,
+ 0xc9, 0xbb, 0xb6, 0x64, 0xcb, 0xbb, 0xeb, 0x35, 0x37, 0xb6, 0x4b, 0x49, 0x5c, 0xad, 0x6c, 0xdd,
+ 0x32, 0x94, 0x7c, 0x0b, 0x8c, 0xe9, 0x68, 0x78, 0x44, 0x8d, 0x97, 0x9c, 0x19, 0xcf, 0x0c, 0x77,
+ 0x2d, 0xa3, 0x28, 0xb6, 0x70, 0x2f, 0x08, 0x7a, 0xbf, 0x00, 0x75, 0x5c, 0xc7, 0xad, 0x53, 0x34,
+ 0x4e, 0xd3, 0x5b, 0xd2, 0x4b, 0x9a, 0xa4, 0x2f, 0x79, 0x49, 0x6b, 0xa0, 0x40, 0x91, 0xbc, 0x05,
+ 0x41, 0x60, 0x78, 0x15, 0x03, 0x75, 0x5b, 0xb7, 0x75, 0x5b, 0x17, 0x30, 0xe0, 0x97, 0xe2, 0xdc,
+ 0x86, 0x67, 0x86, 0x43, 0x0e, 0x65, 0xc0, 0x4e, 0x1f, 0xfc, 0xb4, 0x9a, 0x73, 0xfe, 0xef, 0x3b,
+ 0xff, 0xfc, 0xe7, 0x3f, 0xff, 0xf9, 0xce, 0x19, 0x2e, 0xbc, 0x5e, 0x86, 0x13, 0x0d, 0xcb, 0x6a,
+ 0x34, 0xd1, 0xbc, 0xed, 0x58, 0x9e, 0xb5, 0xdb, 0xde, 0x9b, 0xaf, 0x23, 0x57, 0x77, 0x0c, 0xdb,
+ 0xb3, 0x9c, 0x39, 0xd2, 0x26, 0x8f, 0x51, 0x8b, 0x39, 0x6e, 0x31, 0xb3, 0x0e, 0xe3, 0x17, 0x8d,
+ 0x26, 0x5a, 0xf6, 0x0d, 0x6b, 0xc8, 0x93, 0xcf, 0x43, 0x7a, 0xcf, 0x68, 0xa2, 0x52, 0xe2, 0x44,
+ 0x6a, 0x36, 0xbf, 0x70, 0xeb, 0x5c, 0x08, 0x34, 0x17, 0x44, 0x6c, 0xe1, 0x66, 0x85, 0x20, 0x66,
+ 0xde, 0x4a, 0xc3, 0x44, 0x44, 0xaf, 0x2c, 0x43, 0xda, 0xd4, 0x5a, 0x98, 0x31, 0x31, 0x9b, 0x53,
+ 0xc8, 0xdf, 0x72, 0x09, 0x46, 0x6c, 0x4d, 0xbf, 0xac, 0x35, 0x50, 0x29, 0x49, 0x9a, 0xf9, 0xa3,
+ 0x3c, 0x0d, 0x50, 0x47, 0x36, 0x32, 0xeb, 0xc8, 0xd4, 0x0f, 0x4a, 0xa9, 0x13, 0xa9, 0xd9, 0x9c,
+ 0x22, 0xb4, 0xc8, 0xa7, 0x61, 0xdc, 0x6e, 0xef, 0x36, 0x0d, 0x5d, 0x15, 0xcc, 0xe0, 0x44, 0x6a,
+ 0x36, 0xa3, 0x48, 0xb4, 0x63, 0xb9, 0x63, 0x7c, 0x07, 0x8c, 0x5d, 0x45, 0xda, 0x65, 0xd1, 0x34,
+ 0x4f, 0x4c, 0x8b, 0xb8, 0x59, 0x30, 0x5c, 0x82, 0x42, 0x0b, 0xb9, 0xae, 0xd6, 0x40, 0xaa, 0x77,
+ 0x60, 0xa3, 0x52, 0x9a, 0xbc, 0xfd, 0x89, 0xae, 0xb7, 0x0f, 0xbf, 0x79, 0x9e, 0xa1, 0xb6, 0x0f,
+ 0x6c, 0x24, 0x57, 0x20, 0x87, 0xcc, 0x76, 0x8b, 0x32, 0x64, 0x7a, 0xc4, 0xaf, 0x6a, 0xb6, 0x5b,
+ 0x61, 0x96, 0x2c, 0x86, 0x31, 0x8a, 0x11, 0x17, 0x39, 0x57, 0x0c, 0x1d, 0x95, 0x86, 0x09, 0xc1,
+ 0x1d, 0x5d, 0x04, 0x35, 0xda, 0x1f, 0xe6, 0xe0, 0x38, 0x79, 0x09, 0x72, 0xe8, 0x39, 0x0f, 0x99,
+ 0xae, 0x61, 0x99, 0xa5, 0x11, 0x42, 0x72, 0x5b, 0xc4, 0x2c, 0xa2, 0x66, 0x3d, 0x4c, 0xd1, 0xc1,
+ 0xc9, 0xe7, 0x60, 0xc4, 0xb2, 0x3d, 0xc3, 0x32, 0xdd, 0x52, 0xf6, 0x44, 0x62, 0x36, 0xbf, 0xf0,
+ 0xe9, 0xc8, 0x44, 0xd8, 0xa4, 0x36, 0x0a, 0x37, 0x96, 0x57, 0x41, 0x72, 0xad, 0xb6, 0xa3, 0x23,
+ 0x55, 0xb7, 0xea, 0x48, 0x35, 0xcc, 0x3d, 0xab, 0x94, 0x23, 0x04, 0xc7, 0xbb, 0x5f, 0x84, 0x18,
+ 0x2e, 0x59, 0x75, 0xb4, 0x6a, 0xee, 0x59, 0x4a, 0xd1, 0x0d, 0x3c, 0xcb, 0xc7, 0x60, 0xd8, 0x3d,
+ 0x30, 0x3d, 0xed, 0xb9, 0x52, 0x81, 0x64, 0x08, 0x7b, 0x9a, 0xf9, 0xd6, 0x30, 0x8c, 0x0d, 0x92,
+ 0x62, 0x17, 0x20, 0xb3, 0x87, 0xdf, 0xb2, 0x94, 0x3c, 0x4a, 0x0c, 0x28, 0x26, 0x18, 0xc4, 0xe1,
+ 0x0f, 0x19, 0xc4, 0x0a, 0xe4, 0x4d, 0xe4, 0x7a, 0xa8, 0x4e, 0x33, 0x22, 0x35, 0x60, 0x4e, 0x01,
+ 0x05, 0x75, 0xa7, 0x54, 0xfa, 0x43, 0xa5, 0xd4, 0x13, 0x30, 0xe6, 0xbb, 0xa4, 0x3a, 0x9a, 0xd9,
+ 0xe0, 0xb9, 0x39, 0x1f, 0xe7, 0xc9, 0x5c, 0x95, 0xe3, 0x14, 0x0c, 0x53, 0x8a, 0x28, 0xf0, 0x2c,
+ 0x2f, 0x03, 0x58, 0x26, 0xb2, 0xf6, 0xd4, 0x3a, 0xd2, 0x9b, 0xa5, 0x6c, 0x8f, 0x28, 0x6d, 0x62,
+ 0x93, 0xae, 0x28, 0x59, 0xb4, 0x55, 0x6f, 0xca, 0x0f, 0x74, 0x52, 0x6d, 0xa4, 0x47, 0xa6, 0xac,
+ 0xd3, 0x45, 0xd6, 0x95, 0x6d, 0x3b, 0x50, 0x74, 0x10, 0xce, 0x7b, 0x54, 0x67, 0x6f, 0x96, 0x23,
+ 0x4e, 0xcc, 0xc5, 0xbe, 0x99, 0xc2, 0x60, 0xf4, 0xc5, 0x46, 0x1d, 0xf1, 0x51, 0xbe, 0x05, 0xfc,
+ 0x06, 0x95, 0xa4, 0x15, 0x90, 0x2a, 0x54, 0xe0, 0x8d, 0x1b, 0x5a, 0x0b, 0x4d, 0x3d, 0x0f, 0xc5,
+ 0x60, 0x78, 0xe4, 0x49, 0xc8, 0xb8, 0x9e, 0xe6, 0x78, 0x24, 0x0b, 0x33, 0x0a, 0x7d, 0x90, 0x25,
+ 0x48, 0x21, 0xb3, 0x4e, 0xaa, 0x5c, 0x46, 0xc1, 0x7f, 0xca, 0x3f, 0xd5, 0x79, 0xe1, 0x14, 0x79,
+ 0xe1, 0xdb, 0xbb, 0x67, 0x34, 0xc0, 0x1c, 0x7e, 0xef, 0xa9, 0xfb, 0x61, 0x34, 0xf0, 0x02, 0x83,
+ 0x0e, 0x3d, 0xf3, 0x33, 0x70, 0x43, 0x24, 0xb5, 0xfc, 0x04, 0x4c, 0xb6, 0x4d, 0xc3, 0xf4, 0x90,
+ 0x63, 0x3b, 0x08, 0x67, 0x2c, 0x1d, 0xaa, 0xf4, 0xcf, 0x23, 0x3d, 0x72, 0x6e, 0x47, 0xb4, 0xa6,
+ 0x2c, 0xca, 0x44, 0xbb, 0xbb, 0xf1, 0x54, 0x2e, 0xfb, 0xf6, 0x88, 0x74, 0xed, 0xda, 0xb5, 0x6b,
+ 0xc9, 0x99, 0x17, 0x87, 0x61, 0x32, 0x6a, 0xcd, 0x44, 0x2e, 0xdf, 0x63, 0x30, 0x6c, 0xb6, 0x5b,
+ 0xbb, 0xc8, 0x21, 0x41, 0xca, 0x28, 0xec, 0x49, 0xae, 0x40, 0xa6, 0xa9, 0xed, 0xa2, 0x66, 0x29,
+ 0x7d, 0x22, 0x31, 0x5b, 0x5c, 0x38, 0x3d, 0xd0, 0xaa, 0x9c, 0x5b, 0xc3, 0x10, 0x85, 0x22, 0xe5,
+ 0x87, 0x20, 0xcd, 0x4a, 0x34, 0x66, 0x38, 0x35, 0x18, 0x03, 0x5e, 0x4b, 0x0a, 0xc1, 0xc9, 0x9f,
+ 0x82, 0x1c, 0xfe, 0x97, 0xe6, 0xc6, 0x30, 0xf1, 0x39, 0x8b, 0x1b, 0x70, 0x5e, 0xc8, 0x53, 0x90,
+ 0x25, 0xcb, 0xa4, 0x8e, 0xf8, 0xd6, 0xe6, 0x3f, 0xe3, 0xc4, 0xaa, 0xa3, 0x3d, 0xad, 0xdd, 0xf4,
+ 0xd4, 0x2b, 0x5a, 0xb3, 0x8d, 0x48, 0xc2, 0xe7, 0x94, 0x02, 0x6b, 0x7c, 0x0c, 0xb7, 0xc9, 0xc7,
+ 0x21, 0x4f, 0x57, 0x95, 0x61, 0xd6, 0xd1, 0x73, 0xa4, 0x7a, 0x66, 0x14, 0xba, 0xd0, 0x56, 0x71,
+ 0x0b, 0x1e, 0xfe, 0x19, 0xd7, 0x32, 0x79, 0x6a, 0x92, 0x21, 0x70, 0x03, 0x19, 0xfe, 0xfe, 0x70,
+ 0xe1, 0xbe, 0x39, 0xfa, 0xf5, 0xc2, 0x39, 0x35, 0xf3, 0x8d, 0x24, 0xa4, 0x49, 0xbd, 0x18, 0x83,
+ 0xfc, 0xf6, 0x93, 0x5b, 0x55, 0x75, 0x79, 0x73, 0x67, 0x71, 0xad, 0x2a, 0x25, 0xe4, 0x22, 0x00,
+ 0x69, 0xb8, 0xb8, 0xb6, 0x59, 0xd9, 0x96, 0x92, 0xfe, 0xf3, 0xea, 0xc6, 0xf6, 0xb9, 0x33, 0x52,
+ 0xca, 0x07, 0xec, 0xd0, 0x86, 0xb4, 0x68, 0x70, 0xdf, 0x82, 0x94, 0x91, 0x25, 0x28, 0x50, 0x82,
+ 0xd5, 0x27, 0xaa, 0xcb, 0xe7, 0xce, 0x48, 0xc3, 0xc1, 0x96, 0xfb, 0x16, 0xa4, 0x11, 0x79, 0x14,
+ 0x72, 0xa4, 0x65, 0x71, 0x73, 0x73, 0x4d, 0xca, 0xfa, 0x9c, 0xb5, 0x6d, 0x65, 0x75, 0x63, 0x45,
+ 0xca, 0xf9, 0x9c, 0x2b, 0xca, 0xe6, 0xce, 0x96, 0x04, 0x3e, 0xc3, 0x7a, 0xb5, 0x56, 0xab, 0xac,
+ 0x54, 0xa5, 0xbc, 0x6f, 0xb1, 0xf8, 0xe4, 0x76, 0xb5, 0x26, 0x15, 0x02, 0x6e, 0xdd, 0xb7, 0x20,
+ 0x8d, 0xfa, 0x43, 0x54, 0x37, 0x76, 0xd6, 0xa5, 0xa2, 0x3c, 0x0e, 0xa3, 0x74, 0x08, 0xee, 0xc4,
+ 0x58, 0xa8, 0xe9, 0xdc, 0x19, 0x49, 0xea, 0x38, 0x42, 0x59, 0xc6, 0x03, 0x0d, 0xe7, 0xce, 0x48,
+ 0xf2, 0xcc, 0x12, 0x64, 0x48, 0x76, 0xc9, 0x32, 0x14, 0xd7, 0x2a, 0x8b, 0xd5, 0x35, 0x75, 0x73,
+ 0x6b, 0x7b, 0x75, 0x73, 0xa3, 0xb2, 0x26, 0x25, 0x3a, 0x6d, 0x4a, 0xf5, 0xb3, 0x3b, 0xab, 0x4a,
+ 0x75, 0x59, 0x4a, 0x8a, 0x6d, 0x5b, 0xd5, 0xca, 0x76, 0x75, 0x59, 0x4a, 0xcd, 0xe8, 0x30, 0x19,
+ 0x55, 0x27, 0x23, 0x57, 0x86, 0x30, 0xc5, 0xc9, 0x1e, 0x53, 0x4c, 0xb8, 0xba, 0xa6, 0xf8, 0xc7,
+ 0x49, 0x98, 0x88, 0xd8, 0x2b, 0x22, 0x07, 0x79, 0x18, 0x32, 0x34, 0x45, 0xe9, 0xee, 0x79, 0x67,
+ 0xe4, 0xa6, 0x43, 0x12, 0xb6, 0x6b, 0x07, 0x25, 0x38, 0x51, 0x41, 0xa4, 0x7a, 0x28, 0x08, 0x4c,
+ 0xd1, 0x55, 0xd3, 0x9f, 0xee, 0xaa, 0xe9, 0x74, 0xdb, 0x3b, 0x37, 0xc8, 0xb6, 0x47, 0xda, 0x8e,
+ 0x56, 0xdb, 0x33, 0x11, 0xb5, 0xfd, 0x02, 0x8c, 0x77, 0x11, 0x0d, 0x5c, 0x63, 0x5f, 0x48, 0x40,
+ 0xa9, 0x57, 0x70, 0x62, 0x2a, 0x5d, 0x32, 0x50, 0xe9, 0x2e, 0x84, 0x23, 0x78, 0xb2, 0xf7, 0x24,
+ 0x74, 0xcd, 0xf5, 0x6b, 0x09, 0x38, 0x16, 0xad, 0x14, 0x23, 0x7d, 0x78, 0x08, 0x86, 0x5b, 0xc8,
+ 0xdb, 0xb7, 0xb8, 0x5a, 0xba, 0x3d, 0x62, 0x0f, 0xc6, 0xdd, 0xe1, 0xc9, 0x66, 0x28, 0x71, 0x13,
+ 0x4f, 0xf5, 0x92, 0x7b, 0xd4, 0x9b, 0x2e, 0x4f, 0x3f, 0x9f, 0x84, 0x1b, 0x22, 0xc9, 0x23, 0x1d,
+ 0xbd, 0x19, 0xc0, 0x30, 0xed, 0xb6, 0x47, 0x15, 0x11, 0x2d, 0xb0, 0x39, 0xd2, 0x42, 0x8a, 0x17,
+ 0x2e, 0x9e, 0x6d, 0xcf, 0xef, 0x4f, 0x91, 0x7e, 0xa0, 0x4d, 0xc4, 0xe0, 0x7c, 0xc7, 0xd1, 0x34,
+ 0x71, 0x74, 0xba, 0xc7, 0x9b, 0x76, 0x25, 0xe6, 0x3d, 0x20, 0xe9, 0x4d, 0x03, 0x99, 0x9e, 0xea,
+ 0x7a, 0x0e, 0xd2, 0x5a, 0x86, 0xd9, 0x20, 0x3b, 0x48, 0xb6, 0x9c, 0xd9, 0xd3, 0x9a, 0x2e, 0x52,
+ 0xc6, 0x68, 0x77, 0x8d, 0xf7, 0x62, 0x04, 0x49, 0x20, 0x47, 0x40, 0x0c, 0x07, 0x10, 0xb4, 0xdb,
+ 0x47, 0xcc, 0xfc, 0x4a, 0x0e, 0xf2, 0x82, 0xae, 0x96, 0x4f, 0x42, 0xe1, 0x19, 0xed, 0x8a, 0xa6,
+ 0xf2, 0xb3, 0x12, 0x8d, 0x44, 0x1e, 0xb7, 0x6d, 0xb1, 0xf3, 0xd2, 0x3d, 0x30, 0x49, 0x4c, 0xac,
+ 0xb6, 0x87, 0x1c, 0x55, 0x6f, 0x6a, 0xae, 0x4b, 0x82, 0x96, 0x25, 0xa6, 0x32, 0xee, 0xdb, 0xc4,
+ 0x5d, 0x4b, 0xbc, 0x47, 0x3e, 0x0b, 0x13, 0x04, 0xd1, 0x6a, 0x37, 0x3d, 0xc3, 0x6e, 0x22, 0x15,
+ 0x9f, 0xde, 0x5c, 0xb2, 0x93, 0xf8, 0x9e, 0x8d, 0x63, 0x8b, 0x75, 0x66, 0x80, 0x3d, 0x72, 0xe5,
+ 0x65, 0xb8, 0x99, 0xc0, 0x1a, 0xc8, 0x44, 0x8e, 0xe6, 0x21, 0x15, 0x3d, 0xdb, 0xd6, 0x9a, 0xae,
+ 0xaa, 0x99, 0x75, 0x75, 0x5f, 0x73, 0xf7, 0x4b, 0x93, 0x98, 0x60, 0x31, 0x59, 0x4a, 0x28, 0x37,
+ 0x61, 0xc3, 0x15, 0x66, 0x57, 0x25, 0x66, 0x15, 0xb3, 0x7e, 0x49, 0x73, 0xf7, 0xe5, 0x32, 0x1c,
+ 0x23, 0x2c, 0xae, 0xe7, 0x18, 0x66, 0x43, 0xd5, 0xf7, 0x91, 0x7e, 0x59, 0x6d, 0x7b, 0x7b, 0xe7,
+ 0x4b, 0x9f, 0x12, 0xc7, 0x27, 0x1e, 0xd6, 0x88, 0xcd, 0x12, 0x36, 0xd9, 0xf1, 0xf6, 0xce, 0xcb,
+ 0x35, 0x28, 0xe0, 0xc9, 0x68, 0x19, 0xcf, 0x23, 0x75, 0xcf, 0x72, 0xc8, 0xd6, 0x58, 0x8c, 0x28,
+ 0x4d, 0x42, 0x04, 0xe7, 0x36, 0x19, 0x60, 0xdd, 0xaa, 0xa3, 0x72, 0xa6, 0xb6, 0x55, 0xad, 0x2e,
+ 0x2b, 0x79, 0xce, 0x72, 0xd1, 0x72, 0x70, 0x42, 0x35, 0x2c, 0x3f, 0xc0, 0x79, 0x9a, 0x50, 0x0d,
+ 0x8b, 0x87, 0xf7, 0x2c, 0x4c, 0xe8, 0x3a, 0x7d, 0x67, 0x43, 0x57, 0xd9, 0x19, 0xcb, 0x2d, 0x49,
+ 0x81, 0x60, 0xe9, 0xfa, 0x0a, 0x35, 0x60, 0x39, 0xee, 0xca, 0x0f, 0xc0, 0x0d, 0x9d, 0x60, 0x89,
+ 0xc0, 0xf1, 0xae, 0xb7, 0x0c, 0x43, 0xcf, 0xc2, 0x84, 0x7d, 0xd0, 0x0d, 0x94, 0x03, 0x23, 0xda,
+ 0x07, 0x61, 0xd8, 0xfd, 0x30, 0x69, 0xef, 0xdb, 0xdd, 0xb8, 0x53, 0x22, 0x4e, 0xb6, 0xf7, 0xed,
+ 0x30, 0xf0, 0x36, 0x72, 0xe0, 0x76, 0x90, 0xae, 0x79, 0xa8, 0x5e, 0xba, 0x51, 0x34, 0x17, 0x3a,
+ 0xe4, 0x79, 0x90, 0x74, 0x5d, 0x45, 0xa6, 0xb6, 0xdb, 0x44, 0xaa, 0xe6, 0x20, 0x53, 0x73, 0x4b,
+ 0xc7, 0x45, 0xe3, 0xa2, 0xae, 0x57, 0x49, 0x6f, 0x85, 0x74, 0xca, 0xa7, 0x60, 0xdc, 0xda, 0x7d,
+ 0x46, 0xa7, 0x29, 0xa9, 0xda, 0x0e, 0xda, 0x33, 0x9e, 0x2b, 0xdd, 0x4a, 0xe2, 0x3b, 0x86, 0x3b,
+ 0x48, 0x42, 0x6e, 0x91, 0x66, 0xf9, 0x4e, 0x90, 0x74, 0x77, 0x5f, 0x73, 0x6c, 0x52, 0x93, 0x5d,
+ 0x5b, 0xd3, 0x51, 0xe9, 0x36, 0x6a, 0x4a, 0xdb, 0x37, 0x78, 0x33, 0x5e, 0x12, 0xee, 0x55, 0x63,
+ 0xcf, 0xe3, 0x8c, 0x77, 0xd0, 0x25, 0x41, 0xda, 0x18, 0xdb, 0x2c, 0x48, 0x38, 0x14, 0x81, 0x81,
+ 0x67, 0x89, 0x59, 0xd1, 0xde, 0xb7, 0xc5, 0x71, 0x6f, 0x81, 0x51, 0x6c, 0xd9, 0x19, 0xf4, 0x4e,
+ 0x2a, 0xc8, 0xec, 0x7d, 0x61, 0xc4, 0x33, 0x70, 0x0c, 0x1b, 0xb5, 0x90, 0xa7, 0xd5, 0x35, 0x4f,
+ 0x13, 0xac, 0xef, 0x22, 0xd6, 0x38, 0xee, 0xeb, 0xac, 0x33, 0xe0, 0xa7, 0xd3, 0xde, 0x3d, 0xf0,
+ 0x33, 0xeb, 0x6e, 0xea, 0x27, 0x6e, 0xe3, 0xb9, 0xf5, 0x91, 0x89, 0xee, 0x99, 0x32, 0x14, 0xc4,
+ 0xc4, 0x97, 0x73, 0x40, 0x53, 0x5f, 0x4a, 0x60, 0x15, 0xb4, 0xb4, 0xb9, 0x8c, 0xf5, 0xcb, 0x53,
+ 0x55, 0x29, 0x89, 0x75, 0xd4, 0xda, 0xea, 0x76, 0x55, 0x55, 0x76, 0x36, 0xb6, 0x57, 0xd7, 0xab,
+ 0x52, 0x4a, 0x14, 0xec, 0xdf, 0x4d, 0x42, 0x31, 0x78, 0xf6, 0x92, 0x3f, 0x03, 0x37, 0xf2, 0x8b,
+ 0x12, 0x17, 0x79, 0xea, 0x55, 0xc3, 0x21, 0x6b, 0xb1, 0xa5, 0xd1, 0x7d, 0xd1, 0xcf, 0x86, 0x49,
+ 0x66, 0x55, 0x43, 0xde, 0xe3, 0x86, 0x83, 0x57, 0x5a, 0x4b, 0xf3, 0xe4, 0x35, 0x38, 0x6e, 0x5a,
+ 0xaa, 0xeb, 0x69, 0x66, 0x5d, 0x73, 0xea, 0x6a, 0xe7, 0x8a, 0x4a, 0xd5, 0x74, 0x1d, 0xb9, 0xae,
+ 0x45, 0xf7, 0x40, 0x9f, 0xe5, 0xd3, 0xa6, 0x55, 0x63, 0xc6, 0x9d, 0xcd, 0xa1, 0xc2, 0x4c, 0x43,
+ 0x99, 0x9b, 0xea, 0x95, 0xb9, 0x9f, 0x82, 0x5c, 0x4b, 0xb3, 0x55, 0x64, 0x7a, 0xce, 0x01, 0x51,
+ 0xdc, 0x59, 0x25, 0xdb, 0xd2, 0xec, 0x2a, 0x7e, 0xfe, 0x78, 0x0e, 0x3e, 0x3f, 0x4a, 0x41, 0x41,
+ 0x54, 0xdd, 0xf8, 0x10, 0xa3, 0x93, 0x0d, 0x2a, 0x41, 0x4a, 0xd8, 0x2d, 0x7d, 0x35, 0xfa, 0xdc,
+ 0x12, 0xde, 0xb9, 0xca, 0xc3, 0x54, 0x0b, 0x2b, 0x14, 0x89, 0x55, 0x03, 0x4e, 0x2d, 0x44, 0xb5,
+ 0x47, 0x56, 0x61, 0x4f, 0xf2, 0x0a, 0x0c, 0x3f, 0xe3, 0x12, 0xee, 0x61, 0xc2, 0x7d, 0x6b, 0x7f,
+ 0xee, 0x47, 0x6a, 0x84, 0x3c, 0xf7, 0x48, 0x4d, 0xdd, 0xd8, 0x54, 0xd6, 0x2b, 0x6b, 0x0a, 0x83,
+ 0xcb, 0x37, 0x41, 0xba, 0xa9, 0x3d, 0x7f, 0x10, 0xdc, 0xe3, 0x48, 0xd3, 0xa0, 0x81, 0xbf, 0x09,
+ 0xd2, 0x57, 0x91, 0x76, 0x39, 0xb8, 0xb3, 0x90, 0xa6, 0x8f, 0x30, 0xf5, 0xe7, 0x21, 0x43, 0xe2,
+ 0x25, 0x03, 0xb0, 0x88, 0x49, 0x43, 0x72, 0x16, 0xd2, 0x4b, 0x9b, 0x0a, 0x4e, 0x7f, 0x09, 0x0a,
+ 0xb4, 0x55, 0xdd, 0x5a, 0xad, 0x2e, 0x55, 0xa5, 0xe4, 0xcc, 0x59, 0x18, 0xa6, 0x41, 0xc0, 0x4b,
+ 0xc3, 0x0f, 0x83, 0x34, 0xc4, 0x1e, 0x19, 0x47, 0x82, 0xf7, 0xee, 0xac, 0x2f, 0x56, 0x15, 0x29,
+ 0x29, 0x4e, 0xaf, 0x0b, 0x05, 0x51, 0x70, 0x7f, 0x3c, 0x39, 0xf5, 0xed, 0x04, 0xe4, 0x05, 0x01,
+ 0x8d, 0x95, 0x8f, 0xd6, 0x6c, 0x5a, 0x57, 0x55, 0xad, 0x69, 0x68, 0x2e, 0x4b, 0x0a, 0x20, 0x4d,
+ 0x15, 0xdc, 0x32, 0xe8, 0xa4, 0x7d, 0x2c, 0xce, 0xbf, 0x92, 0x00, 0x29, 0xac, 0x5d, 0x43, 0x0e,
+ 0x26, 0x7e, 0xa2, 0x0e, 0xbe, 0x9c, 0x80, 0x62, 0x50, 0xb0, 0x86, 0xdc, 0x3b, 0xf9, 0x13, 0x75,
+ 0xef, 0xcd, 0x24, 0x8c, 0x06, 0x64, 0xea, 0xa0, 0xde, 0x3d, 0x0b, 0xe3, 0x46, 0x1d, 0xb5, 0x6c,
+ 0xcb, 0x43, 0xa6, 0x7e, 0xa0, 0x36, 0xd1, 0x15, 0xd4, 0x2c, 0xcd, 0x90, 0x42, 0x31, 0xdf, 0x5f,
+ 0x08, 0xcf, 0xad, 0x76, 0x70, 0x6b, 0x18, 0x56, 0x9e, 0x58, 0x5d, 0xae, 0xae, 0x6f, 0x6d, 0x6e,
+ 0x57, 0x37, 0x96, 0x9e, 0x54, 0x77, 0x36, 0x1e, 0xdd, 0xd8, 0x7c, 0x7c, 0x43, 0x91, 0x8c, 0x90,
+ 0xd9, 0x47, 0xb8, 0xd4, 0xb7, 0x40, 0x0a, 0x3b, 0x25, 0xdf, 0x08, 0x51, 0x6e, 0x49, 0x43, 0xf2,
+ 0x04, 0x8c, 0x6d, 0x6c, 0xaa, 0xb5, 0xd5, 0xe5, 0xaa, 0x5a, 0xbd, 0x78, 0xb1, 0xba, 0xb4, 0x5d,
+ 0xa3, 0x57, 0x1b, 0xbe, 0xf5, 0x76, 0x70, 0x51, 0xbf, 0x94, 0x82, 0x89, 0x08, 0x4f, 0xe4, 0x0a,
+ 0x3b, 0x94, 0xd0, 0x73, 0xd2, 0xdd, 0x83, 0x78, 0x3f, 0x87, 0x55, 0xc1, 0x96, 0xe6, 0x78, 0xec,
+ 0x0c, 0x73, 0x27, 0xe0, 0x28, 0x99, 0x9e, 0xb1, 0x67, 0x20, 0x87, 0xdd, 0x04, 0xd1, 0x93, 0xca,
+ 0x58, 0xa7, 0x9d, 0x5e, 0x06, 0xdd, 0x05, 0xb2, 0x6d, 0xb9, 0x86, 0x67, 0x5c, 0x41, 0xaa, 0x61,
+ 0xf2, 0x6b, 0x23, 0x7c, 0x72, 0x49, 0x2b, 0x12, 0xef, 0x59, 0x35, 0x3d, 0xdf, 0xda, 0x44, 0x0d,
+ 0x2d, 0x64, 0x8d, 0x0b, 0x78, 0x4a, 0x91, 0x78, 0x8f, 0x6f, 0x7d, 0x12, 0x0a, 0x75, 0xab, 0x8d,
+ 0xe5, 0x1c, 0xb5, 0xc3, 0xfb, 0x45, 0x42, 0xc9, 0xd3, 0x36, 0xdf, 0x84, 0x09, 0xf5, 0xce, 0x7d,
+ 0x55, 0x41, 0xc9, 0xd3, 0x36, 0x6a, 0x72, 0x07, 0x8c, 0x69, 0x8d, 0x86, 0x83, 0xc9, 0x39, 0x11,
+ 0x3d, 0x7a, 0x14, 0xfd, 0x66, 0x62, 0x38, 0xf5, 0x08, 0x64, 0x79, 0x1c, 0xf0, 0x96, 0x8c, 0x23,
+ 0xa1, 0xda, 0xf4, 0x3c, 0x9d, 0x9c, 0xcd, 0x29, 0x59, 0x93, 0x77, 0x9e, 0x84, 0x82, 0xe1, 0xaa,
+ 0x9d, 0xeb, 0xf7, 0xe4, 0x89, 0xe4, 0x6c, 0x56, 0xc9, 0x1b, 0xae, 0x7f, 0x75, 0x39, 0xf3, 0x5a,
+ 0x12, 0x8a, 0xc1, 0xcf, 0x07, 0xf2, 0x32, 0x64, 0x9b, 0x96, 0xae, 0x91, 0xd4, 0xa2, 0xdf, 0xae,
+ 0x66, 0x63, 0xbe, 0x38, 0xcc, 0xad, 0x31, 0x7b, 0xc5, 0x47, 0x4e, 0xfd, 0x53, 0x02, 0xb2, 0xbc,
+ 0x59, 0x3e, 0x06, 0x69, 0x5b, 0xf3, 0xf6, 0x09, 0x5d, 0x66, 0x31, 0x29, 0x25, 0x14, 0xf2, 0x8c,
+ 0xdb, 0x5d, 0x5b, 0x33, 0x49, 0x0a, 0xb0, 0x76, 0xfc, 0x8c, 0xe7, 0xb5, 0x89, 0xb4, 0x3a, 0x39,
+ 0xd7, 0x58, 0xad, 0x16, 0x32, 0x3d, 0x97, 0xcf, 0x2b, 0x6b, 0x5f, 0x62, 0xcd, 0xf2, 0x69, 0x18,
+ 0xf7, 0x1c, 0xcd, 0x68, 0x06, 0x6c, 0xd3, 0xc4, 0x56, 0xe2, 0x1d, 0xbe, 0x71, 0x19, 0x6e, 0xe2,
+ 0xbc, 0x75, 0xe4, 0x69, 0xfa, 0x3e, 0xaa, 0x77, 0x40, 0xc3, 0xe4, 0xfe, 0xe2, 0x46, 0x66, 0xb0,
+ 0xcc, 0xfa, 0x39, 0x76, 0xe6, 0xfb, 0x09, 0x18, 0xe7, 0x27, 0xb1, 0xba, 0x1f, 0xac, 0x75, 0x00,
+ 0xcd, 0x34, 0x2d, 0x4f, 0x0c, 0x57, 0x77, 0x2a, 0x77, 0xe1, 0xe6, 0x2a, 0x3e, 0x48, 0x11, 0x08,
+ 0xa6, 0x5a, 0x00, 0x9d, 0x9e, 0x9e, 0x61, 0x3b, 0x0e, 0x79, 0xf6, 0x6d, 0x88, 0x7c, 0x60, 0xa4,
+ 0x67, 0x77, 0xa0, 0x4d, 0xf8, 0xc8, 0x26, 0x4f, 0x42, 0x66, 0x17, 0x35, 0x0c, 0x93, 0xdd, 0xf8,
+ 0xd2, 0x07, 0x7e, 0xc3, 0x92, 0xf6, 0x6f, 0x58, 0x16, 0x3f, 0x07, 0x13, 0xba, 0xd5, 0x0a, 0xbb,
+ 0xbb, 0x28, 0x85, 0xee, 0x0f, 0xdc, 0x4b, 0x89, 0xa7, 0xa0, 0x23, 0x31, 0xdf, 0x4f, 0x24, 0xbe,
+ 0x94, 0x4c, 0xad, 0x6c, 0x2d, 0x7e, 0x35, 0x39, 0xb5, 0x42, 0xa1, 0x5b, 0xfc, 0x4d, 0x15, 0xb4,
+ 0xd7, 0x44, 0x3a, 0xf6, 0x1e, 0xbe, 0x7c, 0x1a, 0xee, 0x6e, 0x18, 0xde, 0x7e, 0x7b, 0x77, 0x4e,
+ 0xb7, 0x5a, 0xf3, 0x0d, 0xab, 0x61, 0x75, 0xbe, 0xa9, 0xe2, 0x27, 0xf2, 0x40, 0xfe, 0x62, 0xdf,
+ 0x55, 0x73, 0x7e, 0xeb, 0x54, 0xec, 0x47, 0xd8, 0xf2, 0x06, 0x4c, 0x30, 0x63, 0x95, 0x7c, 0xd8,
+ 0xa1, 0xc7, 0x13, 0xb9, 0xef, 0xe5, 0x58, 0xe9, 0xeb, 0x6f, 0x91, 0xed, 0x5a, 0x19, 0x67, 0x50,
+ 0xdc, 0x47, 0x4f, 0x30, 0x65, 0x05, 0x6e, 0x08, 0xf0, 0xd1, 0xa5, 0x89, 0x9c, 0x18, 0xc6, 0xef,
+ 0x32, 0xc6, 0x09, 0x81, 0xb1, 0xc6, 0xa0, 0xe5, 0x25, 0x18, 0x3d, 0x0a, 0xd7, 0xdf, 0x33, 0xae,
+ 0x02, 0x12, 0x49, 0x56, 0x60, 0x8c, 0x90, 0xe8, 0x6d, 0xd7, 0xb3, 0x5a, 0xa4, 0xee, 0xf5, 0xa7,
+ 0xf9, 0x87, 0xb7, 0xe8, 0x5a, 0x29, 0x62, 0xd8, 0x92, 0x8f, 0x2a, 0x97, 0x81, 0x7c, 0xcb, 0xaa,
+ 0x23, 0xbd, 0x19, 0xc3, 0xf0, 0x3a, 0x73, 0xc4, 0xb7, 0x2f, 0x3f, 0x06, 0x93, 0xf8, 0x6f, 0x52,
+ 0x96, 0x44, 0x4f, 0xe2, 0x6f, 0xd2, 0x4a, 0xdf, 0x7f, 0x81, 0x2e, 0xc7, 0x09, 0x9f, 0x40, 0xf0,
+ 0x49, 0x98, 0xc5, 0x06, 0xf2, 0x3c, 0xe4, 0xb8, 0xaa, 0xd6, 0x8c, 0x72, 0x4f, 0xb8, 0x8a, 0x28,
+ 0x7d, 0xe1, 0x9d, 0xe0, 0x2c, 0xae, 0x50, 0x64, 0xa5, 0xd9, 0x2c, 0xef, 0xc0, 0x8d, 0x11, 0x59,
+ 0x31, 0x00, 0xe7, 0x4b, 0x8c, 0x73, 0xb2, 0x2b, 0x33, 0x30, 0xed, 0x16, 0xf0, 0x76, 0x7f, 0x2e,
+ 0x07, 0xe0, 0xfc, 0x3d, 0xc6, 0x29, 0x33, 0x2c, 0x9f, 0x52, 0xcc, 0xf8, 0x08, 0x8c, 0x5f, 0x41,
+ 0xce, 0xae, 0xe5, 0xb2, 0xeb, 0x9f, 0x01, 0xe8, 0x5e, 0x66, 0x74, 0x63, 0x0c, 0x48, 0xee, 0x83,
+ 0x30, 0xd7, 0x03, 0x90, 0xdd, 0xd3, 0x74, 0x34, 0x00, 0xc5, 0x17, 0x19, 0xc5, 0x08, 0xb6, 0xc7,
+ 0xd0, 0x0a, 0x14, 0x1a, 0x16, 0xdb, 0x99, 0xe2, 0xe1, 0xaf, 0x30, 0x78, 0x9e, 0x63, 0x18, 0x85,
+ 0x6d, 0xd9, 0xed, 0x26, 0xde, 0xb6, 0xe2, 0x29, 0x7e, 0x9f, 0x53, 0x70, 0x0c, 0xa3, 0x38, 0x42,
+ 0x58, 0xff, 0x80, 0x53, 0xb8, 0x42, 0x3c, 0x1f, 0x86, 0xbc, 0x65, 0x36, 0x0f, 0x2c, 0x73, 0x10,
+ 0x27, 0x5e, 0x65, 0x0c, 0xc0, 0x20, 0x98, 0xe0, 0x02, 0xe4, 0x06, 0x9d, 0x88, 0x3f, 0x7a, 0x87,
+ 0x2f, 0x0f, 0x3e, 0x03, 0x2b, 0x30, 0xc6, 0x0b, 0x94, 0x61, 0x99, 0x03, 0x50, 0x7c, 0x99, 0x51,
+ 0x14, 0x05, 0x18, 0x7b, 0x0d, 0x0f, 0xb9, 0x5e, 0x03, 0x0d, 0x42, 0xf2, 0x1a, 0x7f, 0x0d, 0x06,
+ 0x61, 0xa1, 0xdc, 0x45, 0xa6, 0xbe, 0x3f, 0x18, 0xc3, 0x57, 0x78, 0x28, 0x39, 0x06, 0x53, 0x2c,
+ 0xc1, 0x68, 0x4b, 0x73, 0xdc, 0x7d, 0xad, 0x39, 0xd0, 0x74, 0xfc, 0x31, 0xe3, 0x28, 0xf8, 0x20,
+ 0x16, 0x91, 0xb6, 0x79, 0x14, 0x9a, 0xaf, 0xf2, 0x88, 0x08, 0x30, 0xb6, 0xf4, 0x5c, 0x8f, 0xdc,
+ 0x95, 0x1d, 0x85, 0xed, 0x4f, 0xf8, 0xd2, 0xa3, 0xd8, 0x75, 0x91, 0xf1, 0x02, 0xe4, 0x5c, 0xe3,
+ 0xf9, 0x81, 0x68, 0xfe, 0x94, 0xcf, 0x34, 0x01, 0x60, 0xf0, 0x93, 0x70, 0x53, 0xe4, 0x36, 0x31,
+ 0x00, 0xd9, 0x9f, 0x31, 0xb2, 0x63, 0x11, 0x5b, 0x05, 0x2b, 0x09, 0x47, 0xa5, 0xfc, 0x73, 0x5e,
+ 0x12, 0x50, 0x88, 0x6b, 0x0b, 0x9f, 0x15, 0x5c, 0x6d, 0xef, 0x68, 0x51, 0xfb, 0x0b, 0x1e, 0x35,
+ 0x8a, 0x0d, 0x44, 0x6d, 0x1b, 0x8e, 0x31, 0xc6, 0xa3, 0xcd, 0xeb, 0xd7, 0x78, 0x61, 0xa5, 0xe8,
+ 0x9d, 0xe0, 0xec, 0x7e, 0x0e, 0xa6, 0xfc, 0x70, 0x72, 0x51, 0xea, 0xaa, 0x2d, 0xcd, 0x1e, 0x80,
+ 0xf9, 0xeb, 0x8c, 0x99, 0x57, 0x7c, 0x5f, 0xd5, 0xba, 0xeb, 0x9a, 0x8d, 0xc9, 0x9f, 0x80, 0x12,
+ 0x27, 0x6f, 0x9b, 0x0e, 0xd2, 0xad, 0x86, 0x69, 0x3c, 0x8f, 0xea, 0x03, 0x50, 0xff, 0x65, 0x68,
+ 0xaa, 0x76, 0x04, 0x38, 0x66, 0x5e, 0x05, 0xc9, 0xd7, 0x2a, 0xaa, 0xd1, 0xb2, 0x2d, 0xc7, 0x8b,
+ 0x61, 0xfc, 0x2b, 0x3e, 0x53, 0x3e, 0x6e, 0x95, 0xc0, 0xca, 0x55, 0x28, 0x92, 0xc7, 0x41, 0x53,
+ 0xf2, 0xaf, 0x19, 0xd1, 0x68, 0x07, 0xc5, 0x0a, 0x87, 0x6e, 0xb5, 0x6c, 0xcd, 0x19, 0xa4, 0xfe,
+ 0xfd, 0x0d, 0x2f, 0x1c, 0x0c, 0xc2, 0x0a, 0x87, 0x77, 0x60, 0x23, 0xbc, 0xdb, 0x0f, 0xc0, 0xf0,
+ 0x0d, 0x5e, 0x38, 0x38, 0x86, 0x51, 0x70, 0xc1, 0x30, 0x00, 0xc5, 0xdf, 0x72, 0x0a, 0x8e, 0xc1,
+ 0x14, 0x9f, 0xed, 0x6c, 0xb4, 0x0e, 0x6a, 0x18, 0xae, 0xe7, 0x50, 0x29, 0xdc, 0x9f, 0xea, 0x9b,
+ 0xef, 0x04, 0x45, 0x98, 0x22, 0x40, 0x71, 0x25, 0x62, 0x57, 0xa8, 0xe4, 0xa4, 0x14, 0xef, 0xd8,
+ 0xb7, 0x78, 0x25, 0x12, 0x60, 0xd8, 0x37, 0x41, 0x21, 0xe2, 0xb0, 0xeb, 0xf8, 0x7c, 0x30, 0x00,
+ 0xdd, 0xb7, 0x43, 0xce, 0xd5, 0x38, 0x16, 0x73, 0x0a, 0xfa, 0xa7, 0x6d, 0x5e, 0x46, 0x07, 0x03,
+ 0x65, 0xe7, 0xdf, 0x85, 0xf4, 0xcf, 0x0e, 0x45, 0xd2, 0x1a, 0x32, 0x16, 0xd2, 0x53, 0x72, 0xdc,
+ 0xaf, 0x80, 0x4a, 0x3f, 0xf7, 0x1e, 0x7b, 0xdf, 0xa0, 0x9c, 0x2a, 0xaf, 0xe1, 0x24, 0x0f, 0x8a,
+ 0x9e, 0x78, 0xb2, 0x17, 0xde, 0xf3, 0xf3, 0x3c, 0xa0, 0x79, 0xca, 0x17, 0x61, 0x34, 0x20, 0x78,
+ 0xe2, 0xa9, 0x7e, 0x9e, 0x51, 0x15, 0x44, 0xbd, 0x53, 0x3e, 0x0b, 0x69, 0x2c, 0x5e, 0xe2, 0xe1,
+ 0xbf, 0xc0, 0xe0, 0xc4, 0xbc, 0xfc, 0x20, 0x64, 0xb9, 0x68, 0x89, 0x87, 0xfe, 0x22, 0x83, 0xfa,
+ 0x10, 0x0c, 0xe7, 0x82, 0x25, 0x1e, 0xfe, 0x4b, 0x1c, 0xce, 0x21, 0x18, 0x3e, 0x78, 0x08, 0xbf,
+ 0xf3, 0xcb, 0x69, 0xb6, 0xe9, 0xf0, 0xd8, 0x5d, 0x80, 0x11, 0xa6, 0x54, 0xe2, 0xd1, 0x9f, 0x67,
+ 0x83, 0x73, 0x44, 0xf9, 0x7e, 0xc8, 0x0c, 0x18, 0xf0, 0x5f, 0x65, 0x50, 0x6a, 0x5f, 0x5e, 0x82,
+ 0xbc, 0xa0, 0x4e, 0xe2, 0xe1, 0xbf, 0xc6, 0xe0, 0x22, 0x0a, 0xbb, 0xce, 0xd4, 0x49, 0x3c, 0xc1,
+ 0xaf, 0x73, 0xd7, 0x19, 0x02, 0x87, 0x8d, 0x0b, 0x93, 0x78, 0xf4, 0x6f, 0xf0, 0xa8, 0x73, 0x48,
+ 0xf9, 0x61, 0xc8, 0xf9, 0x9b, 0x4d, 0x3c, 0xfe, 0x37, 0x19, 0xbe, 0x83, 0xc1, 0x11, 0x10, 0x36,
+ 0xbb, 0x78, 0x8a, 0xdf, 0xe2, 0x11, 0x10, 0x50, 0x78, 0x19, 0x85, 0x05, 0x4c, 0x3c, 0xd3, 0x6f,
+ 0xf3, 0x65, 0x14, 0xd2, 0x2f, 0x78, 0x36, 0x49, 0xcd, 0x8f, 0xa7, 0xf8, 0x1d, 0x3e, 0x9b, 0xc4,
+ 0x1e, 0xbb, 0x11, 0x56, 0x04, 0xf1, 0x1c, 0xbf, 0xcb, 0xdd, 0x08, 0x09, 0x82, 0xf2, 0x16, 0xc8,
+ 0xdd, 0x6a, 0x20, 0x9e, 0xef, 0x45, 0xc6, 0x37, 0xde, 0x25, 0x06, 0xca, 0x8f, 0xc3, 0xb1, 0x68,
+ 0x25, 0x10, 0xcf, 0xfa, 0x85, 0xf7, 0x42, 0x67, 0x37, 0x51, 0x08, 0x94, 0xb7, 0x3b, 0x5b, 0x8a,
+ 0xa8, 0x02, 0xe2, 0x69, 0x5f, 0x7a, 0x2f, 0x58, 0xb8, 0x45, 0x11, 0x50, 0xae, 0x00, 0x74, 0x36,
+ 0xe0, 0x78, 0xae, 0x97, 0x19, 0x97, 0x00, 0xc2, 0x4b, 0x83, 0xed, 0xbf, 0xf1, 0xf8, 0x2f, 0xf2,
+ 0xa5, 0xc1, 0x10, 0x78, 0x69, 0xf0, 0xad, 0x37, 0x1e, 0xfd, 0x0a, 0x5f, 0x1a, 0x1c, 0x82, 0x33,
+ 0x5b, 0xd8, 0xdd, 0xe2, 0x19, 0x5e, 0xe5, 0x99, 0x2d, 0xa0, 0xca, 0x1b, 0x30, 0xde, 0xb5, 0x21,
+ 0xc6, 0x53, 0x7d, 0x89, 0x51, 0x49, 0xe1, 0xfd, 0x50, 0xdc, 0xbc, 0xd8, 0x66, 0x18, 0xcf, 0xf6,
+ 0x87, 0xa1, 0xcd, 0x8b, 0xed, 0x85, 0xe5, 0x0b, 0x90, 0x35, 0xdb, 0xcd, 0x26, 0x5e, 0x3c, 0x72,
+ 0xff, 0x5f, 0xee, 0x95, 0xfe, 0xe5, 0x03, 0x16, 0x1d, 0x0e, 0x28, 0x9f, 0x85, 0x0c, 0x6a, 0xed,
+ 0xa2, 0x7a, 0x1c, 0xf2, 0x5f, 0x3f, 0xe0, 0x05, 0x13, 0x5b, 0x97, 0x1f, 0x06, 0xa0, 0x57, 0x23,
+ 0xe4, 0xb3, 0x5f, 0x0c, 0xf6, 0xdf, 0x3e, 0x60, 0xbf, 0xa9, 0xe9, 0x40, 0x3a, 0x04, 0xf4, 0x17,
+ 0x3a, 0xfd, 0x09, 0xde, 0x09, 0x12, 0x90, 0x19, 0x79, 0x00, 0x46, 0x9e, 0x71, 0x2d, 0xd3, 0xd3,
+ 0x1a, 0x71, 0xe8, 0x7f, 0x67, 0x68, 0x6e, 0x8f, 0x03, 0xd6, 0xb2, 0x1c, 0xe4, 0x69, 0x0d, 0x37,
+ 0x0e, 0xfb, 0x1f, 0x0c, 0xeb, 0x03, 0x30, 0x58, 0xd7, 0x5c, 0x6f, 0x90, 0xf7, 0xfe, 0x4f, 0x0e,
+ 0xe6, 0x00, 0xec, 0x34, 0xfe, 0xfb, 0x32, 0x3a, 0x88, 0xc3, 0xbe, 0xcb, 0x9d, 0x66, 0xf6, 0xe5,
+ 0x07, 0x21, 0x87, 0xff, 0xa4, 0x3f, 0x94, 0x8b, 0x01, 0xff, 0x17, 0x03, 0x77, 0x10, 0x78, 0x64,
+ 0xd7, 0xab, 0x7b, 0x46, 0x7c, 0xb0, 0xff, 0x9b, 0xcd, 0x34, 0xb7, 0x2f, 0x57, 0x20, 0xef, 0x7a,
+ 0xf5, 0x7a, 0x9b, 0xe9, 0xd3, 0x18, 0xf8, 0xff, 0x7c, 0xe0, 0x5f, 0x59, 0xf8, 0x18, 0x3c, 0xdb,
+ 0x57, 0x2f, 0x7b, 0xb6, 0x45, 0x3e, 0x73, 0xc4, 0x31, 0xbc, 0xc7, 0x18, 0x04, 0xc8, 0x62, 0x35,
+ 0xfa, 0xfa, 0x16, 0x56, 0xac, 0x15, 0x8b, 0x5e, 0xdc, 0x3e, 0x35, 0x13, 0x7f, 0x03, 0x0b, 0xff,
+ 0x7b, 0x37, 0x1c, 0xd7, 0xad, 0xd6, 0xae, 0xe5, 0xce, 0x9b, 0xc8, 0xf0, 0xf6, 0x91, 0x33, 0xdf,
+ 0xd2, 0x6c, 0x97, 0x74, 0x2e, 0xb0, 0xab, 0xd9, 0x3c, 0x7b, 0xc2, 0x1d, 0x53, 0x47, 0xbb, 0xd6,
+ 0x9d, 0xb9, 0x19, 0x46, 0x2f, 0x36, 0x2d, 0xcd, 0x33, 0xcc, 0xc6, 0x16, 0xf6, 0x5c, 0x2e, 0x40,
+ 0x62, 0x8f, 0x7c, 0x96, 0x4c, 0x28, 0x89, 0xbd, 0x99, 0x7f, 0xcc, 0x40, 0x8e, 0xde, 0x08, 0xae,
+ 0x6b, 0xb6, 0xfc, 0xb3, 0x50, 0xd8, 0x60, 0xcb, 0xf0, 0xde, 0x85, 0xf3, 0xae, 0xff, 0x05, 0x42,
+ 0x18, 0x7f, 0xce, 0xb7, 0x9e, 0x13, 0x4d, 0xc9, 0xcf, 0x10, 0x16, 0xef, 0xf9, 0xe1, 0x1b, 0xc7,
+ 0xef, 0xea, 0xe9, 0x1f, 0x16, 0x16, 0xf3, 0x74, 0xbd, 0xcc, 0xed, 0x18, 0xa6, 0x77, 0xef, 0xc2,
+ 0x79, 0x25, 0x30, 0x9e, 0x7c, 0x05, 0xb2, 0xac, 0xc3, 0x65, 0x5f, 0xa6, 0x6e, 0xed, 0x31, 0x36,
+ 0x37, 0xa3, 0xe3, 0x9e, 0x79, 0xfd, 0x8d, 0xe3, 0x43, 0x47, 0x1e, 0xdb, 0x1f, 0x4b, 0x7e, 0x16,
+ 0xf2, 0xdc, 0x8f, 0xd5, 0xba, 0xcb, 0xfe, 0x8b, 0xc3, 0x1d, 0x31, 0xaf, 0xbd, 0x5a, 0x67, 0xa3,
+ 0xdf, 0xfe, 0xc3, 0x37, 0x8e, 0xcf, 0xf4, 0x1d, 0x79, 0x6e, 0xa7, 0x6d, 0xd4, 0x15, 0x71, 0x0c,
+ 0xf9, 0x69, 0x48, 0xe1, 0xa1, 0xe8, 0xaf, 0x42, 0x8f, 0xf7, 0x18, 0xca, 0x1f, 0xe2, 0x14, 0x7b,
+ 0xc1, 0x41, 0x86, 0xc1, 0xbc, 0x53, 0x0f, 0xc3, 0x78, 0xd7, 0xf4, 0xc8, 0x12, 0xa4, 0x2e, 0xa3,
+ 0x03, 0xf6, 0xf3, 0x3b, 0xfc, 0xa7, 0x3c, 0xd9, 0xf9, 0x7d, 0x6c, 0x62, 0xb6, 0xc0, 0x7e, 0xf4,
+ 0x5a, 0x4e, 0x9e, 0x4f, 0x4c, 0x5d, 0x80, 0xd1, 0x40, 0x8c, 0x8f, 0x04, 0x7e, 0x08, 0xa4, 0x70,
+ 0x94, 0x8e, 0x84, 0x3f, 0x07, 0xd9, 0x0f, 0x83, 0x9b, 0xf9, 0x81, 0x0c, 0x23, 0x95, 0x66, 0x73,
+ 0x5d, 0xb3, 0x5d, 0xf9, 0x49, 0x18, 0xa7, 0xc7, 0x9f, 0x6d, 0x6b, 0x99, 0x7c, 0x0b, 0x5c, 0xd7,
+ 0x6c, 0x96, 0xd0, 0xa7, 0x03, 0xe1, 0x66, 0x80, 0xb9, 0x2e, 0x6b, 0x32, 0xbe, 0xd2, 0xcd, 0x22,
+ 0x3f, 0x06, 0x12, 0x6f, 0x24, 0x6b, 0x0b, 0x33, 0xd3, 0x74, 0x3d, 0xd5, 0x97, 0x99, 0x1b, 0x53,
+ 0xe2, 0x2e, 0x0e, 0xf9, 0x21, 0xc8, 0xae, 0x9a, 0xde, 0x7d, 0x0b, 0x98, 0x8f, 0xe6, 0xe0, 0x4c,
+ 0x24, 0x1f, 0x37, 0xa2, 0x3c, 0x3e, 0x86, 0xe1, 0xcf, 0x9d, 0xc1, 0xf8, 0x74, 0x7f, 0x3c, 0x31,
+ 0xea, 0xe0, 0xc9, 0xa3, 0x5c, 0x81, 0x1c, 0x9e, 0x73, 0xea, 0x00, 0xfd, 0xdf, 0x35, 0xb7, 0x44,
+ 0x12, 0xf8, 0x56, 0x94, 0xa1, 0x83, 0xe2, 0x14, 0xd4, 0x87, 0xe1, 0x18, 0x0a, 0xc1, 0x89, 0x0e,
+ 0x0a, 0x53, 0xd4, 0x7c, 0x2f, 0x46, 0xfa, 0x50, 0xd4, 0x42, 0x5e, 0xd4, 0x44, 0x2f, 0x6a, 0xbe,
+ 0x17, 0xd9, 0x18, 0x0a, 0xd1, 0x0b, 0xff, 0x59, 0x5e, 0x06, 0xb8, 0x68, 0x3c, 0x87, 0xea, 0xd4,
+ 0x8d, 0x5c, 0x44, 0x31, 0xe2, 0x1c, 0x1d, 0x33, 0x4a, 0x22, 0xe0, 0xe4, 0x15, 0xc8, 0xd7, 0xf6,
+ 0x3a, 0x34, 0xc0, 0xfe, 0x73, 0x51, 0xa4, 0x2b, 0x7b, 0x21, 0x1e, 0x11, 0xe9, 0xbb, 0x43, 0x5f,
+ 0x29, 0x1f, 0xe7, 0x8e, 0xf0, 0x4e, 0x02, 0xae, 0xe3, 0x0e, 0xa5, 0x29, 0xc4, 0xba, 0x23, 0xf0,
+ 0x88, 0x48, 0xf9, 0x02, 0x8c, 0x2c, 0x5a, 0x16, 0xb6, 0x2c, 0x8d, 0x12, 0x92, 0x93, 0x91, 0x24,
+ 0xcc, 0x86, 0x12, 0x70, 0x04, 0x99, 0x1d, 0x92, 0xfa, 0x18, 0x5e, 0xec, 0x37, 0x3b, 0xdc, 0x8a,
+ 0xcf, 0x0e, 0x7f, 0x16, 0x57, 0xe0, 0xe2, 0x81, 0x87, 0xf0, 0x51, 0xa3, 0x34, 0x36, 0xc0, 0x0a,
+ 0xe4, 0xc6, 0xa1, 0x15, 0xc8, 0x9b, 0xe5, 0x1a, 0x8c, 0xf1, 0xb6, 0xaa, 0xd9, 0xc6, 0x35, 0xb8,
+ 0x24, 0xb1, 0xff, 0x39, 0xd0, 0x8f, 0x96, 0xd9, 0x52, 0xd6, 0x30, 0x83, 0xbc, 0x05, 0x45, 0xde,
+ 0xb4, 0xee, 0x92, 0x97, 0x1e, 0x8f, 0xd8, 0x57, 0xc3, 0x9c, 0xd4, 0x94, 0x52, 0x86, 0xf0, 0x53,
+ 0xcb, 0x70, 0x2c, 0xba, 0x5a, 0xc5, 0x55, 0xcb, 0x84, 0x58, 0x65, 0x97, 0xe0, 0x86, 0xc8, 0xca,
+ 0x14, 0x47, 0x92, 0x0c, 0xed, 0x13, 0x81, 0x72, 0x24, 0x82, 0x33, 0x11, 0xe0, 0x4c, 0x37, 0xb8,
+ 0x93, 0x64, 0x22, 0x38, 0x15, 0x01, 0x4e, 0x89, 0xe0, 0xcf, 0x40, 0x31, 0x58, 0x87, 0x44, 0xf4,
+ 0x68, 0x04, 0x7a, 0x34, 0x02, 0x1d, 0x3d, 0x76, 0x3a, 0x02, 0x9d, 0x0e, 0xa1, 0x6b, 0x3d, 0xc7,
+ 0x1e, 0x8f, 0x40, 0x8f, 0x47, 0xa0, 0xa3, 0xc7, 0x96, 0x23, 0xd0, 0xb2, 0x88, 0x7e, 0x10, 0xc6,
+ 0x42, 0x25, 0x47, 0x84, 0x8f, 0x44, 0xc0, 0x47, 0x42, 0x7b, 0x73, 0xb8, 0xd4, 0x88, 0xf8, 0xb1,
+ 0x08, 0xfc, 0x58, 0xd4, 0xf0, 0xd1, 0xde, 0x0f, 0x47, 0xc0, 0x87, 0x23, 0x87, 0x8f, 0xc6, 0x4b,
+ 0x11, 0x78, 0x49, 0xc4, 0x97, 0xa1, 0x20, 0x56, 0x15, 0x11, 0x9b, 0x8d, 0xc0, 0x66, 0xc3, 0x71,
+ 0x0f, 0x94, 0x94, 0xb8, 0x4c, 0xcf, 0xf5, 0x58, 0x2e, 0x81, 0x32, 0x72, 0x24, 0x65, 0xf3, 0x04,
+ 0x4c, 0x46, 0x15, 0x8d, 0x08, 0x8e, 0x53, 0x22, 0x47, 0x71, 0x61, 0x32, 0x50, 0x2c, 0x08, 0xae,
+ 0xdd, 0x12, 0x99, 0x9f, 0x86, 0x89, 0x88, 0xd2, 0x11, 0x41, 0x7c, 0x8f, 0x48, 0x9c, 0x5f, 0x98,
+ 0x0a, 0x10, 0x07, 0xce, 0x0a, 0xa2, 0xb4, 0xfa, 0xd1, 0x04, 0x14, 0x59, 0x89, 0xda, 0x74, 0xea,
+ 0xc8, 0x41, 0x75, 0xf9, 0xa7, 0x7b, 0x2b, 0xac, 0x85, 0xa8, 0xd2, 0xc6, 0x70, 0x47, 0x10, 0x5a,
+ 0x4f, 0xf7, 0x14, 0x5a, 0xf7, 0x0e, 0x32, 0x40, 0x9c, 0xde, 0xaa, 0x76, 0xe9, 0xad, 0x3b, 0xfb,
+ 0xd1, 0xf6, 0x92, 0x5d, 0xd5, 0x2e, 0xd9, 0x15, 0x47, 0x13, 0xa9, 0xbe, 0x2e, 0x75, 0xab, 0xaf,
+ 0x53, 0xfd, 0x78, 0x7a, 0x8b, 0xb0, 0x4b, 0xdd, 0x22, 0x2c, 0x96, 0x29, 0x5a, 0x8b, 0x5d, 0xea,
+ 0xd6, 0x62, 0x7d, 0x99, 0x7a, 0x4b, 0xb2, 0x4b, 0xdd, 0x92, 0x2c, 0x96, 0x29, 0x5a, 0x99, 0x3d,
+ 0x1a, 0xa1, 0xcc, 0x4e, 0xf7, 0xa3, 0xea, 0x27, 0xd0, 0x36, 0xa2, 0x04, 0xda, 0x5d, 0x7d, 0x1d,
+ 0xeb, 0xab, 0xd3, 0x1e, 0x8d, 0xd0, 0x69, 0xf1, 0xce, 0xf5, 0x90, 0x6b, 0x1b, 0x51, 0x72, 0x6d,
+ 0x00, 0xe7, 0x7a, 0xa9, 0xb6, 0xc5, 0xb0, 0x6a, 0x9b, 0xed, 0xc7, 0x15, 0x2d, 0xde, 0x2e, 0x75,
+ 0x8b, 0xb7, 0x53, 0xf1, 0x6b, 0x31, 0x4a, 0xc3, 0x3d, 0xdd, 0x53, 0xc3, 0x0d, 0xb4, 0xb8, 0xe3,
+ 0xa4, 0xdc, 0x53, 0xbd, 0xa4, 0xdc, 0x3d, 0x83, 0xb0, 0xf7, 0x57, 0x74, 0x8f, 0xf7, 0x50, 0x74,
+ 0xf3, 0x83, 0x50, 0x7f, 0x22, 0xec, 0x3e, 0x11, 0x76, 0x9f, 0x08, 0xbb, 0x4f, 0x84, 0xdd, 0xff,
+ 0x0f, 0x61, 0x57, 0x4e, 0xbf, 0xf8, 0xea, 0xf1, 0xc4, 0xa9, 0x93, 0x30, 0xc2, 0x86, 0x96, 0x87,
+ 0x21, 0xb9, 0x5e, 0x91, 0x86, 0xc8, 0xbf, 0x8b, 0x52, 0x82, 0xfc, 0xbb, 0x24, 0x25, 0x17, 0xd7,
+ 0x5e, 0xbf, 0x3e, 0x3d, 0xf4, 0xbd, 0xeb, 0xd3, 0x43, 0x3f, 0xb8, 0x3e, 0x3d, 0xf4, 0xe6, 0xf5,
+ 0xe9, 0xc4, 0xdb, 0xd7, 0xa7, 0x13, 0xef, 0x5e, 0x9f, 0x4e, 0xbc, 0x7f, 0x7d, 0x3a, 0x71, 0xed,
+ 0x70, 0x3a, 0xf1, 0x95, 0xc3, 0xe9, 0xc4, 0xd7, 0x0e, 0xa7, 0x13, 0xdf, 0x3c, 0x9c, 0x4e, 0x7c,
+ 0xe7, 0x70, 0x3a, 0xf1, 0xfa, 0xe1, 0xf4, 0xd0, 0xf7, 0x0e, 0xa7, 0x87, 0xde, 0x3c, 0x9c, 0x4e,
+ 0xbc, 0x7d, 0x38, 0x3d, 0xf4, 0xee, 0xe1, 0x74, 0xe2, 0xfd, 0xc3, 0xe9, 0xa1, 0x6b, 0x3f, 0x9e,
+ 0x1e, 0xfa, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb6, 0x89, 0x59, 0x98, 0xec, 0x49, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -3639,83 +3722,3 @@ func valueToStringMapsproto2(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
-
-func init() {
- proto.RegisterFile("combos/neither/mapsproto2.proto", fileDescriptor_mapsproto2_62fb8c1076af60e4)
-}
-
-var fileDescriptor_mapsproto2_62fb8c1076af60e4 = []byte{
- // 1148 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x97, 0xcd, 0x6f, 0x1a, 0xc7,
- 0x1b, 0xc7, 0x77, 0xc0, 0x36, 0x30, 0xbc, 0x4f, 0xfc, 0xfb, 0x09, 0x21, 0x75, 0x70, 0xe8, 0x1b,
- 0x21, 0x29, 0xd8, 0x34, 0x8a, 0x2c, 0xa7, 0x4d, 0x65, 0x6c, 0xa7, 0x58, 0x29, 0x6e, 0x04, 0x4d,
- 0xdf, 0x24, 0x4b, 0x05, 0xb3, 0x10, 0x54, 0x60, 0x29, 0xbb, 0x44, 0xf5, 0xa5, 0xca, 0x9f, 0xd1,
- 0x6b, 0x6f, 0x3d, 0xf6, 0xd8, 0x63, 0x8f, 0x96, 0x7a, 0xc9, 0x31, 0x8a, 0x2a, 0x2b, 0x6c, 0x2f,
- 0x39, 0xe6, 0x98, 0x63, 0xb5, 0xb3, 0xbb, 0x30, 0xbb, 0xfb, 0xec, 0x2e, 0xf4, 0xd4, 0x83, 0x4f,
- 0x78, 0x96, 0xe7, 0xfb, 0xf9, 0x3e, 0xbb, 0x3b, 0xf3, 0xf0, 0x35, 0xce, 0x9d, 0x49, 0xc3, 0xb6,
- 0x24, 0x97, 0x47, 0x62, 0x5f, 0x79, 0x2c, 0x4e, 0xca, 0xc3, 0xd6, 0x58, 0x1e, 0x4f, 0x24, 0x45,
- 0xaa, 0x94, 0xd8, 0x07, 0x89, 0x1a, 0x2b, 0xed, 0x8b, 0xec, 0x07, 0xbd, 0xbe, 0xf2, 0x78, 0xda,
- 0x2e, 0x9d, 0x49, 0xc3, 0x72, 0x4f, 0xea, 0x49, 0x65, 0xf6, 0x65, 0x7b, 0xda, 0x65, 0x2b, 0xb6,
- 0x60, 0x7f, 0xe9, 0xda, 0xfc, 0x5b, 0x38, 0x7e, 0x7f, 0x20, 0xb5, 0x94, 0xfe, 0xa8, 0xf7, 0x50,
- 0xea, 0x8f, 0x14, 0x12, 0xc3, 0xa8, 0x9b, 0x41, 0x5b, 0xa8, 0x80, 0x1a, 0xa8, 0x9b, 0xff, 0x73,
- 0x1d, 0x47, 0x0e, 0xa6, 0xb2, 0x22, 0x0d, 0xeb, 0xad, 0x31, 0xf9, 0x09, 0xc7, 0x4e, 0xa6, 0x83,
- 0x41, 0xab, 0x3d, 0x10, 0x77, 0x2a, 0xbb, 0x72, 0x06, 0x6d, 0x05, 0x0b, 0xd1, 0x4a, 0xa1, 0xc4,
- 0xf9, 0x97, 0xe6, 0xd5, 0x25, 0xbe, 0xf4, 0x68, 0xa4, 0x4c, 0xce, 0xab, 0xdb, 0x2f, 0x2e, 0x73,
- 0xb7, 0x5c, 0xfb, 0x53, 0x44, 0x59, 0x29, 0x9f, 0x31, 0x79, 0xe9, 0x51, 0x7f, 0xa4, 0xec, 0x54,
- 0x76, 0x1b, 0x16, 0x3f, 0xf2, 0x04, 0x87, 0x8d, 0x2f, 0xe4, 0x4c, 0x80, 0x79, 0xbf, 0xe3, 0xe2,
- 0x6d, 0x96, 0xe9, 0xbe, 0xb7, 0x2f, 0x2e, 0x73, 0xc2, 0xca, 0xde, 0x73, 0x2f, 0xf2, 0x03, 0x8e,
- 0x9a, 0x7d, 0x1c, 0x77, 0xe4, 0x4c, 0x90, 0x59, 0xbf, 0xef, 0x73, 0xdb, 0xc7, 0x1d, 0xc3, 0xfd,
- 0xbd, 0x17, 0x97, 0xb9, 0xbc, 0xa7, 0x73, 0xe9, 0xd1, 0xb4, 0xdf, 0x69, 0xf0, 0x1e, 0xe4, 0x14,
- 0x07, 0x35, 0xab, 0x35, 0x66, 0x95, 0x73, 0xb1, 0x9a, 0x5b, 0x14, 0x8d, 0x1b, 0x5c, 0xc6, 0x46,
- 0xe3, 0x66, 0x3f, 0xc1, 0x69, 0xc7, 0xeb, 0x21, 0x29, 0x1c, 0xfc, 0x5e, 0x3c, 0x67, 0x2f, 0x3f,
- 0xd2, 0xd0, 0xfe, 0x24, 0x9b, 0x78, 0xfd, 0x49, 0x6b, 0x30, 0x15, 0x33, 0x81, 0x2d, 0x54, 0x88,
- 0x35, 0xf4, 0xc5, 0x5e, 0x60, 0x17, 0x65, 0xef, 0xe2, 0xb8, 0xe5, 0x19, 0xaf, 0x24, 0xbe, 0x87,
- 0x53, 0xf6, 0xa7, 0xb4, 0x92, 0xfe, 0x0e, 0x0e, 0xff, 0x1b, 0x5d, 0xfe, 0x39, 0xc1, 0xa1, 0xfd,
- 0xc1, 0xa0, 0xde, 0x1a, 0xcb, 0xe4, 0x1b, 0x9c, 0x6e, 0x2a, 0x93, 0xfe, 0xa8, 0xf7, 0x85, 0x74,
- 0x28, 0x4d, 0xdb, 0x03, 0xb1, 0xde, 0x1a, 0x1b, 0x1b, 0xfa, 0xa6, 0xe5, 0x71, 0x1b, 0x82, 0x92,
- 0xa3, 0x9a, 0xf9, 0x37, 0x9c, 0x14, 0xf2, 0x25, 0x4e, 0x99, 0x17, 0xd9, 0xd9, 0xd2, 0xc8, 0xfa,
- 0x76, 0x2d, 0x7a, 0x92, 0xcd, 0x62, 0x1d, 0xec, 0x60, 0x90, 0x7b, 0x38, 0x7c, 0x3c, 0x52, 0x3e,
- 0xac, 0x68, 0x3c, 0x7d, 0x0f, 0xe6, 0x41, 0x9e, 0x59, 0xa4, 0x73, 0xe6, 0x1a, 0x43, 0x7f, 0xe7,
- 0xb6, 0xa6, 0x5f, 0xf3, 0xd6, 0xb3, 0xa2, 0x85, 0x9e, 0x2d, 0xc9, 0x3e, 0x8e, 0x68, 0xef, 0x5c,
- 0x6f, 0x60, 0x9d, 0x01, 0xde, 0x06, 0x01, 0xf3, 0x2a, 0x9d, 0xb0, 0x50, 0x99, 0x08, 0xbd, 0x87,
- 0x0d, 0x1f, 0x04, 0xd7, 0xc4, 0x42, 0xa5, 0x21, 0x9a, 0xf3, 0x2e, 0x42, 0x1e, 0x88, 0xa6, 0xad,
- 0x8b, 0x26, 0xdf, 0x45, 0x73, 0xde, 0x45, 0xd8, 0x07, 0xc1, 0x77, 0x31, 0x5f, 0x93, 0x43, 0x8c,
- 0xef, 0xf7, 0x7f, 0x14, 0x3b, 0x7a, 0x1b, 0x11, 0x60, 0x18, 0x99, 0x8c, 0x45, 0x99, 0x0e, 0xe1,
- 0x74, 0xe4, 0x53, 0x1c, 0x6d, 0x76, 0x17, 0x18, 0xcc, 0x30, 0xef, 0xc2, 0xad, 0x74, 0x6d, 0x1c,
- 0x5e, 0x39, 0x6f, 0x47, 0xbf, 0xa5, 0xa8, 0x5f, 0x3b, 0xdc, 0x3d, 0x71, 0xba, 0x45, 0x3b, 0x3a,
- 0x26, 0xe6, 0xdb, 0x0e, 0xc7, 0xe1, 0x95, 0xe4, 0x2e, 0x0e, 0x55, 0x25, 0x49, 0xab, 0xcc, 0xc4,
- 0x19, 0xe4, 0x3a, 0x08, 0x31, 0x6a, 0x74, 0x80, 0xa9, 0x60, 0x6f, 0x87, 0x6d, 0x7d, 0x4d, 0x9e,
- 0xf0, 0x7a, 0x3b, 0x66, 0x95, 0xf9, 0x76, 0xcc, 0x35, 0x7f, 0x02, 0xab, 0xe7, 0x8a, 0x28, 0x6b,
- 0xa4, 0xe4, 0x12, 0x27, 0xd0, 0x2c, 0xb6, 0x9d, 0x40, 0xf3, 0x32, 0x69, 0xe2, 0xa4, 0x79, 0xed,
- 0x68, 0x34, 0xd5, 0x66, 0x70, 0x26, 0xc5, 0xb0, 0x37, 0x3c, 0xb1, 0x46, 0xad, 0x4e, 0xb5, 0x13,
- 0xc8, 0x43, 0x9c, 0x30, 0x2f, 0xd5, 0x65, 0x76, 0xd3, 0x69, 0xe0, 0x77, 0xd5, 0xce, 0xd4, 0x4b,
- 0x75, 0xa4, 0x4d, 0x9f, 0x3d, 0xc4, 0xff, 0x87, 0xa7, 0x95, 0xdf, 0xb4, 0x44, 0xfc, 0x94, 0x3d,
- 0xc0, 0xff, 0x03, 0x27, 0x93, 0x1f, 0x24, 0x60, 0xfb, 0x9d, 0xb0, 0x8c, 0x23, 0x5e, 0xbc, 0x0e,
- 0x88, 0xd7, 0x9d, 0xe2, 0xc5, 0x26, 0xe3, 0xc5, 0x41, 0x40, 0x1c, 0xe4, 0xc5, 0x1f, 0xe1, 0x84,
- 0x75, 0x0e, 0xf1, 0xea, 0x38, 0xa0, 0x8e, 0x03, 0x6a, 0xd8, 0x7b, 0x0d, 0x50, 0xaf, 0xd9, 0xd4,
- 0x4d, 0x57, 0xef, 0x34, 0xa0, 0x4e, 0x03, 0x6a, 0xd8, 0x9b, 0x00, 0x6a, 0xc2, 0xab, 0x3f, 0xc6,
- 0x49, 0xdb, 0xc8, 0xe1, 0xe5, 0x21, 0x40, 0x1e, 0xb2, 0xfd, 0x36, 0xdb, 0x47, 0x0d, 0xaf, 0x4f,
- 0x02, 0xfa, 0x24, 0x64, 0x0f, 0x77, 0xbf, 0x01, 0xc8, 0x37, 0x40, 0x7b, 0x58, 0x9f, 0x02, 0xf4,
- 0x29, 0x5e, 0xbf, 0x87, 0x63, 0xfc, 0x54, 0xe1, 0xb5, 0x61, 0x40, 0x1b, 0xb6, 0x3f, 0x77, 0xcb,
- 0x48, 0xf1, 0xdb, 0xe9, 0x11, 0x97, 0xe3, 0x62, 0x19, 0x23, 0x2b, 0x25, 0x9b, 0xaf, 0xf1, 0x26,
- 0x34, 0x34, 0x00, 0x46, 0x91, 0x67, 0x24, 0x2a, 0x9b, 0x96, 0x61, 0xc1, 0x74, 0xd3, 0x21, 0x4f,
- 0x3e, 0xc5, 0xd7, 0x80, 0xd1, 0x01, 0x80, 0xb7, 0x79, 0x70, 0xb4, 0x92, 0xb5, 0x80, 0x2d, 0xff,
- 0x2b, 0xf0, 0xd1, 0xea, 0xaf, 0x6b, 0x38, 0x61, 0x8c, 0xa8, 0xcf, 0x27, 0x1d, 0x71, 0x22, 0x76,
- 0xc8, 0x77, 0xee, 0x09, 0xab, 0x02, 0x8d, 0x36, 0x43, 0xb7, 0x42, 0xd0, 0x3a, 0x75, 0x0d, 0x5a,
- 0x3b, 0xcb, 0x18, 0xf8, 0xe5, 0xad, 0x23, 0x47, 0xde, 0xba, 0xe1, 0x85, 0x75, 0x8b, 0x5d, 0x47,
- 0x8e, 0xd8, 0xe5, 0x87, 0x01, 0xd3, 0x57, 0xcd, 0x99, 0xbe, 0x8a, 0x5e, 0x1c, 0xf7, 0x10, 0x56,
- 0x73, 0x86, 0x30, 0x5f, 0x12, 0x9c, 0xc5, 0x6a, 0xce, 0x2c, 0xe6, 0x49, 0x72, 0x8f, 0x64, 0x35,
- 0x67, 0x24, 0xf3, 0x25, 0xc1, 0xc9, 0xec, 0x01, 0x90, 0xcc, 0x6e, 0x7a, 0xa1, 0xbc, 0x02, 0xda,
- 0x09, 0x14, 0xd0, 0x6e, 0x79, 0x36, 0xe6, 0x99, 0xd3, 0x1e, 0x00, 0x39, 0xcd, 0xbf, 0x39, 0x97,
- 0xb8, 0x76, 0x02, 0xc5, 0xb5, 0x25, 0x9a, 0x73, 0x4b, 0x6d, 0x55, 0x7b, 0x6a, 0x2b, 0x78, 0xb1,
- 0xe0, 0xf0, 0x56, 0x73, 0x86, 0xb7, 0xa2, 0xff, 0x59, 0x84, 0x32, 0xdc, 0xa9, 0x6b, 0x86, 0x5b,
- 0xea, 0x70, 0xfb, 0x45, 0xb9, 0x6f, 0xdd, 0xa2, 0xdc, 0xf6, 0x32, 0x74, 0xef, 0x44, 0xf7, 0x95,
- 0x4b, 0xa2, 0x2b, 0x2f, 0x83, 0xbe, 0x0a, 0x76, 0x57, 0xc1, 0xee, 0x2a, 0xd8, 0x5d, 0x05, 0xbb,
- 0xff, 0x46, 0xb0, 0xdb, 0x5b, 0xfb, 0xf9, 0x97, 0x1c, 0x2a, 0x5e, 0xc7, 0x21, 0xc3, 0x9a, 0x6c,
- 0xe0, 0x40, 0x7d, 0x3f, 0x25, 0xb0, 0xcf, 0x6a, 0x0a, 0xb1, 0xcf, 0x83, 0x54, 0xa0, 0xfa, 0xd9,
- 0xc5, 0x8c, 0x0a, 0xcf, 0x66, 0x54, 0x78, 0x3e, 0xa3, 0xc2, 0xcb, 0x19, 0x45, 0xaf, 0x66, 0x14,
- 0xbd, 0x9e, 0x51, 0xf4, 0x66, 0x46, 0xd1, 0x53, 0x95, 0xa2, 0x5f, 0x55, 0x8a, 0x7e, 0x53, 0x29,
- 0xfa, 0x5d, 0xa5, 0xe8, 0x0f, 0x95, 0xa2, 0x0b, 0x95, 0x0a, 0xcf, 0x54, 0x2a, 0xbc, 0x54, 0x29,
- 0x7a, 0xa5, 0x52, 0xe1, 0xb5, 0x4a, 0xd1, 0x1b, 0x95, 0x0a, 0x4f, 0xff, 0xa6, 0xc2, 0x3f, 0x01,
- 0x00, 0x00, 0xff, 0xff, 0x3c, 0x2b, 0x76, 0x8f, 0xf5, 0x16, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.pb.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.pb.go
index ed1224dfd3..cba816d46d 100644
--- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.pb.go
@@ -3,28 +3,25 @@
package proto2_maps
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
-import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strconv "strconv"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-
-import io "io"
-import encoding_binary "encoding/binary"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ github_com_gogo_protobuf_test "github.com/gogo/protobuf/test"
+ github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strconv "strconv"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -50,6 +47,7 @@ var MapEnum_name = map[int32]string{
1: "MB",
2: "MC",
}
+
var MapEnum_value = map[string]int32{
"MA": 0,
"MB": 1,
@@ -61,9 +59,11 @@ func (x MapEnum) Enum() *MapEnum {
*p = x
return p
}
+
func (x MapEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(MapEnum_name, int32(x))
}
+
func (x *MapEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(MapEnum_value, data, "MapEnum")
if err != nil {
@@ -72,8 +72,9 @@ func (x *MapEnum) UnmarshalJSON(data []byte) error {
*x = MapEnum(value)
return nil
}
+
func (MapEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_4a77fadeb5c37480, []int{0}
+ return fileDescriptor_6f53681484260870, []int{0}
}
type FloatingPoint struct {
@@ -86,7 +87,7 @@ type FloatingPoint struct {
func (m *FloatingPoint) Reset() { *m = FloatingPoint{} }
func (*FloatingPoint) ProtoMessage() {}
func (*FloatingPoint) Descriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_4a77fadeb5c37480, []int{0}
+ return fileDescriptor_6f53681484260870, []int{0}
}
func (m *FloatingPoint) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -94,8 +95,8 @@ func (m *FloatingPoint) XXX_Unmarshal(b []byte) error {
func (m *FloatingPoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FloatingPoint.Marshal(b, m, deterministic)
}
-func (dst *FloatingPoint) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FloatingPoint.Merge(dst, src)
+func (m *FloatingPoint) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FloatingPoint.Merge(m, src)
}
func (m *FloatingPoint) XXX_Size() int {
return xxx_messageInfo_FloatingPoint.Size(m)
@@ -119,7 +120,7 @@ type CustomMap struct {
func (m *CustomMap) Reset() { *m = CustomMap{} }
func (*CustomMap) ProtoMessage() {}
func (*CustomMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_4a77fadeb5c37480, []int{1}
+ return fileDescriptor_6f53681484260870, []int{1}
}
func (m *CustomMap) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -127,8 +128,8 @@ func (m *CustomMap) XXX_Unmarshal(b []byte) error {
func (m *CustomMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomMap.Marshal(b, m, deterministic)
}
-func (dst *CustomMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomMap.Merge(dst, src)
+func (m *CustomMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomMap.Merge(m, src)
}
func (m *CustomMap) XXX_Size() int {
return xxx_messageInfo_CustomMap.Size(m)
@@ -165,7 +166,7 @@ type AllMaps struct {
func (m *AllMaps) Reset() { *m = AllMaps{} }
func (*AllMaps) ProtoMessage() {}
func (*AllMaps) Descriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_4a77fadeb5c37480, []int{2}
+ return fileDescriptor_6f53681484260870, []int{2}
}
func (m *AllMaps) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -173,8 +174,8 @@ func (m *AllMaps) XXX_Unmarshal(b []byte) error {
func (m *AllMaps) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AllMaps.Marshal(b, m, deterministic)
}
-func (dst *AllMaps) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllMaps.Merge(dst, src)
+func (m *AllMaps) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllMaps.Merge(m, src)
}
func (m *AllMaps) XXX_Size() int {
return xxx_messageInfo_AllMaps.Size(m)
@@ -211,7 +212,7 @@ type AllMapsOrdered struct {
func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} }
func (*AllMapsOrdered) ProtoMessage() {}
func (*AllMapsOrdered) Descriptor() ([]byte, []int) {
- return fileDescriptor_mapsproto2_4a77fadeb5c37480, []int{3}
+ return fileDescriptor_6f53681484260870, []int{3}
}
func (m *AllMapsOrdered) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -219,8 +220,8 @@ func (m *AllMapsOrdered) XXX_Unmarshal(b []byte) error {
func (m *AllMapsOrdered) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AllMapsOrdered.Marshal(b, m, deterministic)
}
-func (dst *AllMapsOrdered) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllMapsOrdered.Merge(dst, src)
+func (m *AllMapsOrdered) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllMapsOrdered.Merge(m, src)
}
func (m *AllMapsOrdered) XXX_Size() int {
return xxx_messageInfo_AllMapsOrdered.Size(m)
@@ -232,6 +233,7 @@ func (m *AllMapsOrdered) XXX_DiscardUnknown() {
var xxx_messageInfo_AllMapsOrdered proto.InternalMessageInfo
func init() {
+ proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value)
proto.RegisterType((*FloatingPoint)(nil), "proto2.maps.FloatingPoint")
proto.RegisterType((*CustomMap)(nil), "proto2.maps.CustomMap")
proto.RegisterMapType((map[string]github_com_gogo_protobuf_test.Uuid)(nil), "proto2.maps.CustomMap.IdsEntry")
@@ -274,8 +276,88 @@ func init() {
proto.RegisterMapType((map[string]*FloatingPoint)(nil), "proto2.maps.AllMapsOrdered.StringToMsgMapEntry")
proto.RegisterMapType((map[uint32]uint32)(nil), "proto2.maps.AllMapsOrdered.Uint32MapEntry")
proto.RegisterMapType((map[uint64]uint64)(nil), "proto2.maps.AllMapsOrdered.Uint64MapEntry")
- proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value)
}
+
+func init() {
+ proto.RegisterFile("combos/unmarshaler/mapsproto2.proto", fileDescriptor_6f53681484260870)
+}
+
+var fileDescriptor_6f53681484260870 = []byte{
+ // 1150 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x97, 0xcd, 0x6f, 0x1a, 0x47,
+ 0x18, 0xc6, 0x19, 0xb0, 0x0d, 0x0c, 0xdf, 0x93, 0xb4, 0x42, 0x48, 0x1d, 0x1c, 0xd2, 0x0f, 0x42,
+ 0x52, 0xb0, 0x69, 0x14, 0x59, 0x4e, 0x9b, 0xca, 0xd8, 0x4e, 0xb1, 0x52, 0xdc, 0x08, 0x9a, 0x7e,
+ 0x49, 0x96, 0x0a, 0x66, 0x21, 0xa8, 0xc0, 0x52, 0x76, 0x37, 0xaa, 0x2f, 0x55, 0xfe, 0x8c, 0x5e,
+ 0x7b, 0xeb, 0xb1, 0xc7, 0x1e, 0x7b, 0xb4, 0xd4, 0x4b, 0x8e, 0x51, 0x54, 0x59, 0x61, 0x7b, 0xc9,
+ 0x31, 0xc7, 0x1c, 0xab, 0x9d, 0xdd, 0x85, 0xd9, 0xdd, 0x77, 0x77, 0xa1, 0xa7, 0x1e, 0x7c, 0xc2,
+ 0xb3, 0xbc, 0xcf, 0xef, 0x79, 0x77, 0x77, 0xe6, 0xe5, 0x31, 0xbe, 0x7e, 0x2a, 0x8e, 0x3a, 0xa2,
+ 0x54, 0x51, 0xc6, 0xa3, 0xf6, 0x54, 0x7a, 0xdc, 0x1e, 0x0a, 0xd3, 0xca, 0xa8, 0x3d, 0x91, 0x26,
+ 0x53, 0x51, 0x16, 0xab, 0x65, 0xf6, 0x41, 0x62, 0xc6, 0x4a, 0xfb, 0x22, 0xf7, 0x61, 0x7f, 0x20,
+ 0x3f, 0x56, 0x3a, 0xe5, 0x53, 0x71, 0x54, 0xe9, 0x8b, 0x7d, 0xb1, 0xc2, 0xbe, 0xec, 0x28, 0x3d,
+ 0xb6, 0x62, 0x0b, 0xf6, 0x97, 0xae, 0x2d, 0xbc, 0x83, 0x13, 0xf7, 0x87, 0x62, 0x5b, 0x1e, 0x8c,
+ 0xfb, 0x0f, 0xc5, 0xc1, 0x58, 0x26, 0x71, 0x8c, 0x7a, 0x59, 0xb4, 0x89, 0x8a, 0xa8, 0x89, 0x7a,
+ 0x85, 0xbf, 0xd6, 0x71, 0x74, 0x5f, 0x91, 0x64, 0x71, 0xd4, 0x68, 0x4f, 0xc8, 0xcf, 0x38, 0x7e,
+ 0xac, 0x0c, 0x87, 0xed, 0xce, 0x50, 0xd8, 0xae, 0xee, 0x48, 0x59, 0xb4, 0x19, 0x2a, 0xc6, 0xaa,
+ 0xc5, 0x32, 0xe7, 0x5f, 0x9e, 0x57, 0x97, 0xf9, 0xd2, 0xc3, 0xb1, 0x3c, 0x3d, 0xab, 0x6d, 0xbd,
+ 0xb8, 0xc8, 0xdf, 0x72, 0xed, 0x4f, 0x16, 0x24, 0xb9, 0x72, 0xca, 0xe4, 0xe5, 0x47, 0x83, 0xb1,
+ 0xbc, 0x5d, 0xdd, 0x69, 0x5a, 0xfc, 0xc8, 0x13, 0x1c, 0x31, 0xbe, 0x90, 0xb2, 0x41, 0xe6, 0xfd,
+ 0xae, 0x8b, 0xb7, 0x59, 0xa6, 0xfb, 0xde, 0x3e, 0xbf, 0xc8, 0x07, 0x56, 0xf6, 0x9e, 0x7b, 0x91,
+ 0x1f, 0x71, 0xcc, 0xec, 0xe3, 0xa8, 0x2b, 0x65, 0x43, 0xcc, 0xfa, 0x03, 0x9f, 0xdb, 0x3e, 0xea,
+ 0x1a, 0xee, 0xef, 0xbf, 0xb8, 0xc8, 0x17, 0x3c, 0x9d, 0xcb, 0x8f, 0x94, 0x41, 0xb7, 0xc9, 0x7b,
+ 0x90, 0x13, 0x1c, 0xd2, 0xac, 0xd6, 0x98, 0x55, 0xde, 0xc5, 0x6a, 0x6e, 0x51, 0x32, 0x6e, 0x70,
+ 0x19, 0x1b, 0x8d, 0x9b, 0xfb, 0x14, 0x67, 0x1c, 0xaf, 0x87, 0xa4, 0x71, 0xe8, 0x07, 0xe1, 0x8c,
+ 0xbd, 0xfc, 0x68, 0x53, 0xfb, 0x93, 0x5c, 0xc5, 0xeb, 0x4f, 0xda, 0x43, 0x45, 0xc8, 0x06, 0x37,
+ 0x51, 0x31, 0xde, 0xd4, 0x17, 0xbb, 0xc1, 0x1d, 0x94, 0xbb, 0x8b, 0x13, 0x96, 0x67, 0xbc, 0x92,
+ 0xf8, 0x1e, 0x4e, 0xdb, 0x9f, 0xd2, 0x4a, 0xfa, 0x3b, 0x38, 0xf2, 0x5f, 0x74, 0x85, 0xe7, 0x04,
+ 0x87, 0xf7, 0x86, 0xc3, 0x46, 0x7b, 0x22, 0x91, 0x6f, 0x71, 0xa6, 0x25, 0x4f, 0x07, 0xe3, 0xfe,
+ 0x97, 0xe2, 0x81, 0xa8, 0x74, 0x86, 0x42, 0xa3, 0x3d, 0x31, 0x36, 0xf4, 0x4d, 0xcb, 0xe3, 0x36,
+ 0x04, 0x65, 0x47, 0x35, 0xf3, 0x6f, 0x3a, 0x29, 0xe4, 0x2b, 0x9c, 0x36, 0x2f, 0xb2, 0xb3, 0xa5,
+ 0x91, 0xf5, 0xed, 0x5a, 0xf2, 0x24, 0x9b, 0xc5, 0x3a, 0xd8, 0xc1, 0x20, 0xf7, 0x70, 0xe4, 0x68,
+ 0x2c, 0x7f, 0x54, 0xd5, 0x78, 0xfa, 0x1e, 0x2c, 0x80, 0x3c, 0xb3, 0x48, 0xe7, 0xcc, 0x35, 0x86,
+ 0xfe, 0xce, 0x6d, 0x4d, 0xbf, 0xe6, 0xad, 0x67, 0x45, 0x0b, 0x3d, 0x5b, 0x92, 0x3d, 0x1c, 0xd5,
+ 0xde, 0xb9, 0xde, 0xc0, 0x3a, 0x03, 0x5c, 0x07, 0x01, 0xf3, 0x2a, 0x9d, 0xb0, 0x50, 0x99, 0x08,
+ 0xbd, 0x87, 0x0d, 0x1f, 0x04, 0xd7, 0xc4, 0x42, 0xa5, 0x21, 0x5a, 0xf3, 0x2e, 0xc2, 0x1e, 0x88,
+ 0x96, 0xad, 0x8b, 0x16, 0xdf, 0x45, 0x6b, 0xde, 0x45, 0xc4, 0x07, 0xc1, 0x77, 0x31, 0x5f, 0x93,
+ 0x03, 0x8c, 0xef, 0x0f, 0x7e, 0x12, 0xba, 0x7a, 0x1b, 0x51, 0x60, 0x18, 0x99, 0x8c, 0x45, 0x99,
+ 0x0e, 0xe1, 0x74, 0xe4, 0x33, 0x1c, 0x6b, 0xf5, 0x16, 0x18, 0xcc, 0x30, 0xef, 0xc1, 0xad, 0xf4,
+ 0x6c, 0x1c, 0x5e, 0x39, 0x6f, 0x47, 0xbf, 0xa5, 0x98, 0x5f, 0x3b, 0xdc, 0x3d, 0x71, 0xba, 0x45,
+ 0x3b, 0x3a, 0x26, 0xee, 0xdb, 0x0e, 0xc7, 0xe1, 0x95, 0xe4, 0x2e, 0x0e, 0xd7, 0x44, 0x51, 0xab,
+ 0xcc, 0x26, 0x18, 0xe4, 0x1a, 0x08, 0x31, 0x6a, 0x74, 0x80, 0xa9, 0x60, 0x6f, 0x87, 0x6d, 0x7d,
+ 0x4d, 0x9e, 0xf4, 0x7a, 0x3b, 0x66, 0x95, 0xf9, 0x76, 0xcc, 0x35, 0x7f, 0x02, 0x6b, 0x67, 0xb2,
+ 0x20, 0x69, 0xa4, 0xd4, 0x12, 0x27, 0xd0, 0x2c, 0xb6, 0x9d, 0x40, 0xf3, 0x32, 0x69, 0xe1, 0x94,
+ 0x79, 0xed, 0x70, 0xac, 0x68, 0x33, 0x38, 0x9b, 0x66, 0xd8, 0x1b, 0x9e, 0x58, 0xa3, 0x56, 0xa7,
+ 0xda, 0x09, 0xe4, 0x21, 0x4e, 0x9a, 0x97, 0x1a, 0x12, 0xbb, 0xe9, 0x0c, 0xf0, 0xbb, 0x6a, 0x67,
+ 0xea, 0xa5, 0x3a, 0xd2, 0xa6, 0xcf, 0x1d, 0xe0, 0xb7, 0xe1, 0x69, 0xe5, 0x37, 0x2d, 0x11, 0x3f,
+ 0x65, 0xf7, 0xf1, 0x5b, 0xe0, 0x64, 0xf2, 0x83, 0x04, 0x6d, 0xbf, 0x13, 0x96, 0x71, 0xc4, 0x8b,
+ 0xd7, 0x01, 0xf1, 0xba, 0x53, 0xbc, 0xd8, 0x64, 0xbc, 0x38, 0x04, 0x88, 0x43, 0xbc, 0xf8, 0x63,
+ 0x9c, 0xb4, 0xce, 0x21, 0x5e, 0x9d, 0x00, 0xd4, 0x09, 0x40, 0x0d, 0x7b, 0xaf, 0x01, 0xea, 0x35,
+ 0x9b, 0xba, 0xe5, 0xea, 0x9d, 0x01, 0xd4, 0x19, 0x40, 0x0d, 0x7b, 0x13, 0x40, 0x4d, 0x78, 0xf5,
+ 0x27, 0x38, 0x65, 0x1b, 0x39, 0xbc, 0x3c, 0x0c, 0xc8, 0xc3, 0xb6, 0xdf, 0x66, 0xfb, 0xa8, 0xe1,
+ 0xf5, 0x29, 0x40, 0x9f, 0x82, 0xec, 0xe1, 0xee, 0x37, 0x00, 0xf9, 0x06, 0x68, 0x0f, 0xeb, 0xd3,
+ 0x80, 0x3e, 0xcd, 0xeb, 0x77, 0x71, 0x9c, 0x9f, 0x2a, 0xbc, 0x36, 0x02, 0x68, 0x23, 0xf6, 0xe7,
+ 0x6e, 0x19, 0x29, 0x7e, 0x3b, 0x3d, 0xea, 0x72, 0x5c, 0x2c, 0x63, 0x64, 0xa5, 0x64, 0xf3, 0x0d,
+ 0xbe, 0x0a, 0x0d, 0x0d, 0x80, 0x51, 0xe2, 0x19, 0xc9, 0xea, 0x55, 0xcb, 0xb0, 0x60, 0x3a, 0x65,
+ 0xc4, 0x93, 0x4f, 0xf0, 0x15, 0x60, 0x74, 0x00, 0xe0, 0x2d, 0x1e, 0x1c, 0xab, 0xe6, 0x2c, 0x60,
+ 0xcb, 0xff, 0x0a, 0x7c, 0xb4, 0xfa, 0xfb, 0x0a, 0x4e, 0x1a, 0x23, 0xea, 0x8b, 0x69, 0x57, 0x98,
+ 0x0a, 0x5d, 0xf2, 0xbd, 0x7b, 0xc2, 0xaa, 0x42, 0xa3, 0xcd, 0xd0, 0xad, 0x10, 0xb4, 0x4e, 0x5c,
+ 0x83, 0xd6, 0xf6, 0x32, 0x06, 0x7e, 0x79, 0xeb, 0xd0, 0x91, 0xb7, 0x6e, 0x78, 0x61, 0xdd, 0x62,
+ 0xd7, 0xa1, 0x23, 0x76, 0xf9, 0x61, 0xc0, 0xf4, 0x55, 0x77, 0xa6, 0xaf, 0x92, 0x17, 0xc7, 0x3d,
+ 0x84, 0xd5, 0x9d, 0x21, 0xcc, 0x97, 0x04, 0x67, 0xb1, 0xba, 0x33, 0x8b, 0x79, 0x92, 0xdc, 0x23,
+ 0x59, 0xdd, 0x19, 0xc9, 0x7c, 0x49, 0x70, 0x32, 0x7b, 0x00, 0x24, 0xb3, 0x9b, 0x5e, 0x28, 0xaf,
+ 0x80, 0x76, 0x0c, 0x05, 0xb4, 0x5b, 0x9e, 0x8d, 0x79, 0xe6, 0xb4, 0x07, 0x40, 0x4e, 0xf3, 0x6f,
+ 0xce, 0x25, 0xae, 0x1d, 0x43, 0x71, 0x6d, 0x89, 0xe6, 0xdc, 0x52, 0x5b, 0xcd, 0x9e, 0xda, 0x8a,
+ 0x5e, 0x2c, 0x38, 0xbc, 0xd5, 0x9d, 0xe1, 0xad, 0xe4, 0x7f, 0x16, 0xa1, 0x0c, 0x77, 0xe2, 0x9a,
+ 0xe1, 0x96, 0x3a, 0xdc, 0x7e, 0x51, 0xee, 0x3b, 0xb7, 0x28, 0xb7, 0xb5, 0x0c, 0xdd, 0x3b, 0xd1,
+ 0x7d, 0xed, 0x92, 0xe8, 0x2a, 0xcb, 0xa0, 0x2f, 0x83, 0xdd, 0x65, 0xb0, 0xbb, 0x0c, 0x76, 0x97,
+ 0xc1, 0xee, 0xff, 0x11, 0xec, 0x76, 0xd7, 0x7e, 0xf9, 0x35, 0x8f, 0x4a, 0xd7, 0x70, 0xd8, 0xb0,
+ 0x26, 0x1b, 0x38, 0xd8, 0xd8, 0x4b, 0x07, 0xd8, 0x67, 0x2d, 0x8d, 0xd8, 0xe7, 0x7e, 0x3a, 0x58,
+ 0xfb, 0xfc, 0x7c, 0x46, 0x03, 0xcf, 0x66, 0x34, 0xf0, 0x7c, 0x46, 0x03, 0x2f, 0x67, 0x14, 0xbd,
+ 0x9a, 0x51, 0xf4, 0x7a, 0x46, 0xd1, 0x9b, 0x19, 0x45, 0x4f, 0x55, 0x8a, 0x7e, 0x53, 0x29, 0xfa,
+ 0x5d, 0xa5, 0xe8, 0x0f, 0x95, 0xa2, 0x3f, 0x55, 0x8a, 0xce, 0x55, 0x1a, 0x78, 0xa6, 0x52, 0xf4,
+ 0x52, 0xa5, 0xe8, 0x95, 0x4a, 0x03, 0xaf, 0x55, 0x8a, 0xde, 0xa8, 0x34, 0xf0, 0xf4, 0x1f, 0x1a,
+ 0xf8, 0x37, 0x00, 0x00, 0xff, 0xff, 0x1b, 0xc4, 0xd5, 0x8e, 0xf9, 0x16, 0x00, 0x00,
+}
+
func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return Mapsproto2Description()
}
@@ -291,307 +373,309 @@ func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc
func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4797 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7b, 0x5b, 0x6c, 0x23, 0xd7,
- 0x79, 0xbf, 0x86, 0x17, 0x89, 0xfc, 0x48, 0x51, 0xa3, 0x91, 0xbc, 0xa6, 0x95, 0x58, 0xbb, 0x2b,
- 0xdf, 0xe4, 0x5d, 0x5b, 0xb2, 0xe5, 0xdd, 0xf5, 0x9a, 0x1b, 0xdb, 0x7f, 0x4a, 0xe2, 0x6a, 0x65,
- 0xeb, 0x96, 0xa1, 0xe4, 0x5b, 0x60, 0xcc, 0x7f, 0x34, 0x3c, 0xa2, 0xc6, 0x4b, 0xce, 0xd0, 0x33,
- 0xc3, 0x5d, 0xcb, 0x28, 0x8a, 0x2d, 0xdc, 0x0b, 0x82, 0xa2, 0xf7, 0x02, 0x75, 0x5c, 0xc7, 0xad,
- 0x53, 0x34, 0x4e, 0xd3, 0x5b, 0xd2, 0xb4, 0x69, 0x92, 0xbe, 0xe4, 0x25, 0xad, 0x81, 0x02, 0x45,
- 0xf2, 0x16, 0x04, 0x81, 0xe1, 0x55, 0x0c, 0xd4, 0x6d, 0xdd, 0xc6, 0x6d, 0xfd, 0xe0, 0xc2, 0x2f,
- 0xc5, 0xb9, 0x0d, 0xcf, 0x0c, 0x87, 0x1c, 0xca, 0x80, 0x9d, 0x3e, 0xf8, 0x69, 0x35, 0x67, 0xbe,
- 0xdf, 0xef, 0x7c, 0xe7, 0x3b, 0xdf, 0xf9, 0xce, 0xef, 0x9c, 0xe1, 0xc2, 0x4f, 0x1f, 0x80, 0x13,
- 0x75, 0xdb, 0xae, 0x37, 0xd0, 0x7c, 0xcb, 0xb1, 0x3d, 0x7b, 0xb7, 0xbd, 0x37, 0x5f, 0x43, 0xae,
- 0xe1, 0x98, 0x2d, 0xcf, 0x76, 0xe6, 0x48, 0x9b, 0x32, 0x46, 0x2d, 0xe6, 0xb8, 0xc5, 0xcc, 0x3a,
- 0x8c, 0x5f, 0x34, 0x1b, 0x68, 0xd9, 0x37, 0xac, 0x22, 0x4f, 0x39, 0x0f, 0xa9, 0x3d, 0xb3, 0x81,
- 0x8a, 0xd2, 0x89, 0xe4, 0x6c, 0x6e, 0xe1, 0xd6, 0xb9, 0x10, 0x68, 0x2e, 0x88, 0xd8, 0xc2, 0xcd,
- 0x2a, 0x41, 0xcc, 0xbc, 0x95, 0x82, 0x89, 0x88, 0xb7, 0x8a, 0x02, 0x29, 0x4b, 0x6f, 0x62, 0x46,
- 0x69, 0x36, 0xab, 0x92, 0xbf, 0x95, 0x22, 0x8c, 0xb4, 0x74, 0xe3, 0xb2, 0x5e, 0x47, 0xc5, 0x04,
- 0x69, 0xe6, 0x8f, 0xca, 0x34, 0x40, 0x0d, 0xb5, 0x90, 0x55, 0x43, 0x96, 0x71, 0x50, 0x4c, 0x9e,
- 0x48, 0xce, 0x66, 0x55, 0xa1, 0x45, 0x39, 0x0d, 0xe3, 0xad, 0xf6, 0x6e, 0xc3, 0x34, 0x34, 0xc1,
- 0x0c, 0x4e, 0x24, 0x67, 0xd3, 0xaa, 0x4c, 0x5f, 0x2c, 0x77, 0x8c, 0xef, 0x80, 0xb1, 0xab, 0x48,
- 0xbf, 0x2c, 0x9a, 0xe6, 0x88, 0x69, 0x01, 0x37, 0x0b, 0x86, 0x4b, 0x90, 0x6f, 0x22, 0xd7, 0xd5,
- 0xeb, 0x48, 0xf3, 0x0e, 0x5a, 0xa8, 0x98, 0x22, 0xa3, 0x3f, 0xd1, 0x35, 0xfa, 0xf0, 0xc8, 0x73,
- 0x0c, 0xb5, 0x7d, 0xd0, 0x42, 0x4a, 0x19, 0xb2, 0xc8, 0x6a, 0x37, 0x29, 0x43, 0xba, 0x47, 0xfc,
- 0x2a, 0x56, 0xbb, 0x19, 0x66, 0xc9, 0x60, 0x18, 0xa3, 0x18, 0x71, 0x91, 0x73, 0xc5, 0x34, 0x50,
- 0x71, 0x98, 0x10, 0xdc, 0xd1, 0x45, 0x50, 0xa5, 0xef, 0xc3, 0x1c, 0x1c, 0xa7, 0x2c, 0x41, 0x16,
- 0x3d, 0xe7, 0x21, 0xcb, 0x35, 0x6d, 0xab, 0x38, 0x42, 0x48, 0x6e, 0x8b, 0x98, 0x45, 0xd4, 0xa8,
- 0x85, 0x29, 0x3a, 0x38, 0xe5, 0x1c, 0x8c, 0xd8, 0x2d, 0xcf, 0xb4, 0x2d, 0xb7, 0x98, 0x39, 0x21,
- 0xcd, 0xe6, 0x16, 0x3e, 0x1d, 0x99, 0x08, 0x9b, 0xd4, 0x46, 0xe5, 0xc6, 0xca, 0x2a, 0xc8, 0xae,
- 0xdd, 0x76, 0x0c, 0xa4, 0x19, 0x76, 0x0d, 0x69, 0xa6, 0xb5, 0x67, 0x17, 0xb3, 0x84, 0xe0, 0x78,
- 0xf7, 0x40, 0x88, 0xe1, 0x92, 0x5d, 0x43, 0xab, 0xd6, 0x9e, 0xad, 0x16, 0xdc, 0xc0, 0xb3, 0x72,
- 0x0c, 0x86, 0xdd, 0x03, 0xcb, 0xd3, 0x9f, 0x2b, 0xe6, 0x49, 0x86, 0xb0, 0xa7, 0x99, 0x6f, 0x0f,
- 0xc3, 0xd8, 0x20, 0x29, 0x76, 0x01, 0xd2, 0x7b, 0x78, 0x94, 0xc5, 0xc4, 0x51, 0x62, 0x40, 0x31,
- 0xc1, 0x20, 0x0e, 0x7f, 0xc8, 0x20, 0x96, 0x21, 0x67, 0x21, 0xd7, 0x43, 0x35, 0x9a, 0x11, 0xc9,
- 0x01, 0x73, 0x0a, 0x28, 0xa8, 0x3b, 0xa5, 0x52, 0x1f, 0x2a, 0xa5, 0x9e, 0x80, 0x31, 0xdf, 0x25,
- 0xcd, 0xd1, 0xad, 0x3a, 0xcf, 0xcd, 0xf9, 0x38, 0x4f, 0xe6, 0x2a, 0x1c, 0xa7, 0x62, 0x98, 0x5a,
- 0x40, 0x81, 0x67, 0x65, 0x19, 0xc0, 0xb6, 0x90, 0xbd, 0xa7, 0xd5, 0x90, 0xd1, 0x28, 0x66, 0x7a,
- 0x44, 0x69, 0x13, 0x9b, 0x74, 0x45, 0xc9, 0xa6, 0xad, 0x46, 0x43, 0x79, 0xa0, 0x93, 0x6a, 0x23,
- 0x3d, 0x32, 0x65, 0x9d, 0x2e, 0xb2, 0xae, 0x6c, 0xdb, 0x81, 0x82, 0x83, 0x70, 0xde, 0xa3, 0x1a,
- 0x1b, 0x59, 0x96, 0x38, 0x31, 0x17, 0x3b, 0x32, 0x95, 0xc1, 0xe8, 0xc0, 0x46, 0x1d, 0xf1, 0x51,
- 0xb9, 0x05, 0xfc, 0x06, 0x8d, 0xa4, 0x15, 0x90, 0x2a, 0x94, 0xe7, 0x8d, 0x1b, 0x7a, 0x13, 0x4d,
- 0x3d, 0x0f, 0x85, 0x60, 0x78, 0x94, 0x49, 0x48, 0xbb, 0x9e, 0xee, 0x78, 0x24, 0x0b, 0xd3, 0x2a,
- 0x7d, 0x50, 0x64, 0x48, 0x22, 0xab, 0x46, 0xaa, 0x5c, 0x5a, 0xc5, 0x7f, 0x2a, 0xff, 0xaf, 0x33,
- 0xe0, 0x24, 0x19, 0xf0, 0xed, 0xdd, 0x33, 0x1a, 0x60, 0x0e, 0x8f, 0x7b, 0xea, 0x7e, 0x18, 0x0d,
- 0x0c, 0x60, 0xd0, 0xae, 0x67, 0x7e, 0x0e, 0x6e, 0x88, 0xa4, 0x56, 0x9e, 0x80, 0xc9, 0xb6, 0x65,
- 0x5a, 0x1e, 0x72, 0x5a, 0x0e, 0xc2, 0x19, 0x4b, 0xbb, 0x2a, 0xfe, 0xf3, 0x48, 0x8f, 0x9c, 0xdb,
- 0x11, 0xad, 0x29, 0x8b, 0x3a, 0xd1, 0xee, 0x6e, 0x3c, 0x95, 0xcd, 0xbc, 0x3d, 0x22, 0x5f, 0xbb,
- 0x76, 0xed, 0x5a, 0x62, 0xe6, 0xc5, 0x61, 0x98, 0x8c, 0x5a, 0x33, 0x91, 0xcb, 0xf7, 0x18, 0x0c,
- 0x5b, 0xed, 0xe6, 0x2e, 0x72, 0x48, 0x90, 0xd2, 0x2a, 0x7b, 0x52, 0xca, 0x90, 0x6e, 0xe8, 0xbb,
- 0xa8, 0x51, 0x4c, 0x9d, 0x90, 0x66, 0x0b, 0x0b, 0xa7, 0x07, 0x5a, 0x95, 0x73, 0x6b, 0x18, 0xa2,
- 0x52, 0xa4, 0xf2, 0x10, 0xa4, 0x58, 0x89, 0xc6, 0x0c, 0xa7, 0x06, 0x63, 0xc0, 0x6b, 0x49, 0x25,
- 0x38, 0xe5, 0x53, 0x90, 0xc5, 0xff, 0xd2, 0xdc, 0x18, 0x26, 0x3e, 0x67, 0x70, 0x03, 0xce, 0x0b,
- 0x65, 0x0a, 0x32, 0x64, 0x99, 0xd4, 0x10, 0xdf, 0xda, 0xfc, 0x67, 0x9c, 0x58, 0x35, 0xb4, 0xa7,
- 0xb7, 0x1b, 0x9e, 0x76, 0x45, 0x6f, 0xb4, 0x11, 0x49, 0xf8, 0xac, 0x9a, 0x67, 0x8d, 0x8f, 0xe1,
- 0x36, 0xe5, 0x38, 0xe4, 0xe8, 0xaa, 0x32, 0xad, 0x1a, 0x7a, 0x8e, 0x54, 0xcf, 0xb4, 0x4a, 0x17,
- 0xda, 0x2a, 0x6e, 0xc1, 0xdd, 0x3f, 0xe3, 0xda, 0x16, 0x4f, 0x4d, 0xd2, 0x05, 0x6e, 0x20, 0xdd,
- 0xdf, 0x1f, 0x2e, 0xdc, 0x37, 0x47, 0x0f, 0x2f, 0x9c, 0x53, 0x33, 0xdf, 0x4c, 0x40, 0x8a, 0xd4,
- 0x8b, 0x31, 0xc8, 0x6d, 0x3f, 0xb9, 0x55, 0xd1, 0x96, 0x37, 0x77, 0x16, 0xd7, 0x2a, 0xb2, 0xa4,
- 0x14, 0x00, 0x48, 0xc3, 0xc5, 0xb5, 0xcd, 0xf2, 0xb6, 0x9c, 0xf0, 0x9f, 0x57, 0x37, 0xb6, 0xcf,
- 0x9d, 0x91, 0x93, 0x3e, 0x60, 0x87, 0x36, 0xa4, 0x44, 0x83, 0xfb, 0x16, 0xe4, 0xb4, 0x22, 0x43,
- 0x9e, 0x12, 0xac, 0x3e, 0x51, 0x59, 0x3e, 0x77, 0x46, 0x1e, 0x0e, 0xb6, 0xdc, 0xb7, 0x20, 0x8f,
- 0x28, 0xa3, 0x90, 0x25, 0x2d, 0x8b, 0x9b, 0x9b, 0x6b, 0x72, 0xc6, 0xe7, 0xac, 0x6e, 0xab, 0xab,
- 0x1b, 0x2b, 0x72, 0xd6, 0xe7, 0x5c, 0x51, 0x37, 0x77, 0xb6, 0x64, 0xf0, 0x19, 0xd6, 0x2b, 0xd5,
- 0x6a, 0x79, 0xa5, 0x22, 0xe7, 0x7c, 0x8b, 0xc5, 0x27, 0xb7, 0x2b, 0x55, 0x39, 0x1f, 0x70, 0xeb,
- 0xbe, 0x05, 0x79, 0xd4, 0xef, 0xa2, 0xb2, 0xb1, 0xb3, 0x2e, 0x17, 0x94, 0x71, 0x18, 0xa5, 0x5d,
- 0x70, 0x27, 0xc6, 0x42, 0x4d, 0xe7, 0xce, 0xc8, 0x72, 0xc7, 0x11, 0xca, 0x32, 0x1e, 0x68, 0x38,
- 0x77, 0x46, 0x56, 0x66, 0x96, 0x20, 0x4d, 0xb2, 0x4b, 0x51, 0xa0, 0xb0, 0x56, 0x5e, 0xac, 0xac,
- 0x69, 0x9b, 0x5b, 0xdb, 0xab, 0x9b, 0x1b, 0xe5, 0x35, 0x59, 0xea, 0xb4, 0xa9, 0x95, 0xcf, 0xee,
- 0xac, 0xaa, 0x95, 0x65, 0x39, 0x21, 0xb6, 0x6d, 0x55, 0xca, 0xdb, 0x95, 0x65, 0x39, 0x39, 0x63,
- 0xc0, 0x64, 0x54, 0x9d, 0x8c, 0x5c, 0x19, 0xc2, 0x14, 0x27, 0x7a, 0x4c, 0x31, 0xe1, 0xea, 0x9a,
- 0xe2, 0x9f, 0x24, 0x60, 0x22, 0x62, 0xaf, 0x88, 0xec, 0xe4, 0x61, 0x48, 0xd3, 0x14, 0xa5, 0xbb,
- 0xe7, 0x9d, 0x91, 0x9b, 0x0e, 0x49, 0xd8, 0xae, 0x1d, 0x94, 0xe0, 0x44, 0x05, 0x91, 0xec, 0xa1,
- 0x20, 0x30, 0x45, 0x57, 0x4d, 0x7f, 0xba, 0xab, 0xa6, 0xd3, 0x6d, 0xef, 0xdc, 0x20, 0xdb, 0x1e,
- 0x69, 0x3b, 0x5a, 0x6d, 0x4f, 0x47, 0xd4, 0xf6, 0x0b, 0x30, 0xde, 0x45, 0x34, 0x70, 0x8d, 0x7d,
- 0x41, 0x82, 0x62, 0xaf, 0xe0, 0xc4, 0x54, 0xba, 0x44, 0xa0, 0xd2, 0x5d, 0x08, 0x47, 0xf0, 0x64,
- 0xef, 0x49, 0xe8, 0x9a, 0xeb, 0xd7, 0x24, 0x38, 0x16, 0xad, 0x14, 0x23, 0x7d, 0x78, 0x08, 0x86,
- 0x9b, 0xc8, 0xdb, 0xb7, 0xb9, 0x5a, 0xba, 0x3d, 0x62, 0x0f, 0xc6, 0xaf, 0xc3, 0x93, 0xcd, 0x50,
- 0xe2, 0x26, 0x9e, 0xec, 0x25, 0xf7, 0xa8, 0x37, 0x5d, 0x9e, 0x7e, 0x3e, 0x01, 0x37, 0x44, 0x92,
- 0x47, 0x3a, 0x7a, 0x33, 0x80, 0x69, 0xb5, 0xda, 0x1e, 0x55, 0x44, 0xb4, 0xc0, 0x66, 0x49, 0x0b,
- 0x29, 0x5e, 0xb8, 0x78, 0xb6, 0x3d, 0xff, 0x7d, 0x92, 0xbc, 0x07, 0xda, 0x44, 0x0c, 0xce, 0x77,
- 0x1c, 0x4d, 0x11, 0x47, 0xa7, 0x7b, 0x8c, 0xb4, 0x2b, 0x31, 0xef, 0x01, 0xd9, 0x68, 0x98, 0xc8,
- 0xf2, 0x34, 0xd7, 0x73, 0x90, 0xde, 0x34, 0xad, 0x3a, 0xd9, 0x41, 0x32, 0xa5, 0xf4, 0x9e, 0xde,
- 0x70, 0x91, 0x3a, 0x46, 0x5f, 0x57, 0xf9, 0x5b, 0x8c, 0x20, 0x09, 0xe4, 0x08, 0x88, 0xe1, 0x00,
- 0x82, 0xbe, 0xf6, 0x11, 0x33, 0xdf, 0xc8, 0x40, 0x4e, 0xd0, 0xd5, 0xca, 0x49, 0xc8, 0x3f, 0xa3,
- 0x5f, 0xd1, 0x35, 0x7e, 0x56, 0xa2, 0x91, 0xc8, 0xe1, 0xb6, 0x2d, 0x76, 0x5e, 0xba, 0x07, 0x26,
- 0x89, 0x89, 0xdd, 0xf6, 0x90, 0xa3, 0x19, 0x0d, 0xdd, 0x75, 0x49, 0xd0, 0x32, 0xc4, 0x54, 0xc1,
- 0xef, 0x36, 0xf1, 0xab, 0x25, 0xfe, 0x46, 0x39, 0x0b, 0x13, 0x04, 0xd1, 0x6c, 0x37, 0x3c, 0xb3,
- 0xd5, 0x40, 0x1a, 0x3e, 0xbd, 0xb9, 0x64, 0x27, 0xf1, 0x3d, 0x1b, 0xc7, 0x16, 0xeb, 0xcc, 0x00,
- 0x7b, 0xe4, 0x2a, 0xcb, 0x70, 0x33, 0x81, 0xd5, 0x91, 0x85, 0x1c, 0xdd, 0x43, 0x1a, 0x7a, 0xb6,
- 0xad, 0x37, 0x5c, 0x4d, 0xb7, 0x6a, 0xda, 0xbe, 0xee, 0xee, 0x17, 0x27, 0x31, 0xc1, 0x62, 0xa2,
- 0x28, 0xa9, 0x37, 0x61, 0xc3, 0x15, 0x66, 0x57, 0x21, 0x66, 0x65, 0xab, 0x76, 0x49, 0x77, 0xf7,
- 0x95, 0x12, 0x1c, 0x23, 0x2c, 0xae, 0xe7, 0x98, 0x56, 0x5d, 0x33, 0xf6, 0x91, 0x71, 0x59, 0x6b,
- 0x7b, 0x7b, 0xe7, 0x8b, 0x9f, 0x12, 0xfb, 0x27, 0x1e, 0x56, 0x89, 0xcd, 0x12, 0x36, 0xd9, 0xf1,
- 0xf6, 0xce, 0x2b, 0x55, 0xc8, 0xe3, 0xc9, 0x68, 0x9a, 0xcf, 0x23, 0x6d, 0xcf, 0x76, 0xc8, 0xd6,
- 0x58, 0x88, 0x28, 0x4d, 0x42, 0x04, 0xe7, 0x36, 0x19, 0x60, 0xdd, 0xae, 0xa1, 0x52, 0xba, 0xba,
- 0x55, 0xa9, 0x2c, 0xab, 0x39, 0xce, 0x72, 0xd1, 0x76, 0x70, 0x42, 0xd5, 0x6d, 0x3f, 0xc0, 0x39,
- 0x9a, 0x50, 0x75, 0x9b, 0x87, 0xf7, 0x2c, 0x4c, 0x18, 0x06, 0x1d, 0xb3, 0x69, 0x68, 0xec, 0x8c,
- 0xe5, 0x16, 0xe5, 0x40, 0xb0, 0x0c, 0x63, 0x85, 0x1a, 0xb0, 0x1c, 0x77, 0x95, 0x07, 0xe0, 0x86,
- 0x4e, 0xb0, 0x44, 0xe0, 0x78, 0xd7, 0x28, 0xc3, 0xd0, 0xb3, 0x30, 0xd1, 0x3a, 0xe8, 0x06, 0x2a,
- 0x81, 0x1e, 0x5b, 0x07, 0x61, 0xd8, 0xfd, 0x30, 0xd9, 0xda, 0x6f, 0x75, 0xe3, 0x4e, 0x89, 0x38,
- 0xa5, 0xb5, 0xdf, 0x0a, 0x03, 0x6f, 0x23, 0x07, 0x6e, 0x07, 0x19, 0xba, 0x87, 0x6a, 0xc5, 0x1b,
- 0x45, 0x73, 0xe1, 0x85, 0x32, 0x0f, 0xb2, 0x61, 0x68, 0xc8, 0xd2, 0x77, 0x1b, 0x48, 0xd3, 0x1d,
- 0x64, 0xe9, 0x6e, 0xf1, 0xb8, 0x68, 0x5c, 0x30, 0x8c, 0x0a, 0x79, 0x5b, 0x26, 0x2f, 0x95, 0x53,
- 0x30, 0x6e, 0xef, 0x3e, 0x63, 0xd0, 0x94, 0xd4, 0x5a, 0x0e, 0xda, 0x33, 0x9f, 0x2b, 0xde, 0x4a,
- 0xe2, 0x3b, 0x86, 0x5f, 0x90, 0x84, 0xdc, 0x22, 0xcd, 0xca, 0x9d, 0x20, 0x1b, 0xee, 0xbe, 0xee,
- 0xb4, 0x48, 0x4d, 0x76, 0x5b, 0xba, 0x81, 0x8a, 0xb7, 0x51, 0x53, 0xda, 0xbe, 0xc1, 0x9b, 0xf1,
- 0x92, 0x70, 0xaf, 0x9a, 0x7b, 0x1e, 0x67, 0xbc, 0x83, 0x2e, 0x09, 0xd2, 0xc6, 0xd8, 0x66, 0x41,
- 0xc6, 0xa1, 0x08, 0x74, 0x3c, 0x4b, 0xcc, 0x0a, 0xad, 0xfd, 0x96, 0xd8, 0xef, 0x2d, 0x30, 0x8a,
- 0x2d, 0x3b, 0x9d, 0xde, 0x49, 0x05, 0x59, 0x6b, 0x5f, 0xe8, 0xf1, 0x23, 0xd3, 0xc6, 0x33, 0x25,
- 0xc8, 0x8b, 0xf9, 0xa9, 0x64, 0x81, 0x66, 0xa8, 0x2c, 0x61, 0xb1, 0xb2, 0xb4, 0xb9, 0x8c, 0x65,
- 0xc6, 0x53, 0x15, 0x39, 0x81, 0xe5, 0xce, 0xda, 0xea, 0x76, 0x45, 0x53, 0x77, 0x36, 0xb6, 0x57,
- 0xd7, 0x2b, 0x72, 0x52, 0xd4, 0xd5, 0xdf, 0x4b, 0x40, 0x21, 0x78, 0x44, 0x52, 0x3e, 0x03, 0x37,
- 0xf2, 0xfb, 0x0c, 0x17, 0x79, 0xda, 0x55, 0xd3, 0x21, 0x4b, 0xa6, 0xa9, 0xd3, 0xed, 0xcb, 0x9f,
- 0xb4, 0x49, 0x66, 0x55, 0x45, 0xde, 0xe3, 0xa6, 0x83, 0x17, 0x44, 0x53, 0xf7, 0x94, 0x35, 0x38,
- 0x6e, 0xd9, 0x9a, 0xeb, 0xe9, 0x56, 0x4d, 0x77, 0x6a, 0x5a, 0xe7, 0x26, 0x49, 0xd3, 0x0d, 0x03,
- 0xb9, 0xae, 0x4d, 0xb7, 0x2a, 0x9f, 0xe5, 0xd3, 0x96, 0x5d, 0x65, 0xc6, 0x9d, 0x1a, 0x5e, 0x66,
- 0xa6, 0xa1, 0x04, 0x4b, 0xf6, 0x4a, 0xb0, 0x4f, 0x41, 0xb6, 0xa9, 0xb7, 0x34, 0x64, 0x79, 0xce,
- 0x01, 0x11, 0xc6, 0x19, 0x35, 0xd3, 0xd4, 0x5b, 0x15, 0xfc, 0xfc, 0xf1, 0x9c, 0x4f, 0x7e, 0x9c,
- 0x84, 0xbc, 0x28, 0x8e, 0xf1, 0x59, 0xc3, 0x20, 0xfb, 0x88, 0x44, 0x2a, 0xcd, 0x2d, 0x7d, 0xa5,
- 0xf4, 0xdc, 0x12, 0xde, 0x60, 0x4a, 0xc3, 0x54, 0xb2, 0xaa, 0x14, 0x89, 0x37, 0x77, 0x5c, 0x5b,
- 0x10, 0x95, 0x08, 0x19, 0x95, 0x3d, 0x29, 0x2b, 0x30, 0xfc, 0x8c, 0x4b, 0xb8, 0x87, 0x09, 0xf7,
- 0xad, 0xfd, 0xb9, 0x1f, 0xa9, 0x12, 0xf2, 0xec, 0x23, 0x55, 0x6d, 0x63, 0x53, 0x5d, 0x2f, 0xaf,
- 0xa9, 0x0c, 0xae, 0xdc, 0x04, 0xa9, 0x86, 0xfe, 0xfc, 0x41, 0x70, 0x2b, 0x22, 0x4d, 0x83, 0x06,
- 0xfe, 0x26, 0x48, 0x5d, 0x45, 0xfa, 0xe5, 0xe0, 0x06, 0x40, 0x9a, 0x3e, 0xc2, 0xd4, 0x9f, 0x87,
- 0x34, 0x89, 0x97, 0x02, 0xc0, 0x22, 0x26, 0x0f, 0x29, 0x19, 0x48, 0x2d, 0x6d, 0xaa, 0x38, 0xfd,
- 0x65, 0xc8, 0xd3, 0x56, 0x6d, 0x6b, 0xb5, 0xb2, 0x54, 0x91, 0x13, 0x33, 0x67, 0x61, 0x98, 0x06,
- 0x01, 0x2f, 0x0d, 0x3f, 0x0c, 0xf2, 0x10, 0x7b, 0x64, 0x1c, 0x12, 0x7f, 0xbb, 0xb3, 0xbe, 0x58,
- 0x51, 0xe5, 0x84, 0x38, 0xbd, 0x2e, 0xe4, 0x45, 0x5d, 0xfc, 0xf1, 0xe4, 0xd4, 0x77, 0x24, 0xc8,
- 0x09, 0x3a, 0x17, 0x0b, 0x14, 0xbd, 0xd1, 0xb0, 0xaf, 0x6a, 0x7a, 0xc3, 0xd4, 0x5d, 0x96, 0x14,
- 0x40, 0x9a, 0xca, 0xb8, 0x65, 0xd0, 0x49, 0xfb, 0x58, 0x9c, 0x7f, 0x45, 0x02, 0x39, 0x2c, 0x31,
- 0x43, 0x0e, 0x4a, 0x3f, 0x53, 0x07, 0x5f, 0x96, 0xa0, 0x10, 0xd4, 0x95, 0x21, 0xf7, 0x4e, 0xfe,
- 0x4c, 0xdd, 0x7b, 0x33, 0x01, 0xa3, 0x01, 0x35, 0x39, 0xa8, 0x77, 0xcf, 0xc2, 0xb8, 0x59, 0x43,
- 0xcd, 0x96, 0xed, 0x21, 0xcb, 0x38, 0xd0, 0x1a, 0xe8, 0x0a, 0x6a, 0x14, 0x67, 0x48, 0xa1, 0x98,
- 0xef, 0xaf, 0x57, 0xe7, 0x56, 0x3b, 0xb8, 0x35, 0x0c, 0x2b, 0x4d, 0xac, 0x2e, 0x57, 0xd6, 0xb7,
- 0x36, 0xb7, 0x2b, 0x1b, 0x4b, 0x4f, 0x6a, 0x3b, 0x1b, 0x8f, 0x6e, 0x6c, 0x3e, 0xbe, 0xa1, 0xca,
- 0x66, 0xc8, 0xec, 0x23, 0x5c, 0xea, 0x5b, 0x20, 0x87, 0x9d, 0x52, 0x6e, 0x84, 0x28, 0xb7, 0xe4,
- 0x21, 0x65, 0x02, 0xc6, 0x36, 0x36, 0xb5, 0xea, 0xea, 0x72, 0x45, 0xab, 0x5c, 0xbc, 0x58, 0x59,
- 0xda, 0xae, 0xd2, 0x1b, 0x08, 0xdf, 0x7a, 0x3b, 0xb8, 0xa8, 0x5f, 0x4a, 0xc2, 0x44, 0x84, 0x27,
- 0x4a, 0x99, 0x9d, 0x1d, 0xe8, 0x71, 0xe6, 0xee, 0x41, 0xbc, 0x9f, 0xc3, 0x5b, 0xfe, 0x96, 0xee,
- 0x78, 0xec, 0xa8, 0x71, 0x27, 0xe0, 0x28, 0x59, 0x9e, 0xb9, 0x67, 0x22, 0x87, 0x5d, 0xd8, 0xd0,
- 0x03, 0xc5, 0x58, 0xa7, 0x9d, 0xde, 0xd9, 0xdc, 0x05, 0x4a, 0xcb, 0x76, 0x4d, 0xcf, 0xbc, 0x82,
- 0x34, 0xd3, 0xe2, 0xb7, 0x3b, 0xf8, 0x80, 0x91, 0x52, 0x65, 0xfe, 0x66, 0xd5, 0xf2, 0x7c, 0x6b,
- 0x0b, 0xd5, 0xf5, 0x90, 0x35, 0x2e, 0xe0, 0x49, 0x55, 0xe6, 0x6f, 0x7c, 0xeb, 0x93, 0x90, 0xaf,
- 0xd9, 0x6d, 0xac, 0xba, 0xa8, 0x1d, 0xde, 0x2f, 0x24, 0x35, 0x47, 0xdb, 0x7c, 0x13, 0xa6, 0xa7,
- 0x3b, 0xd7, 0x4a, 0x79, 0x35, 0x47, 0xdb, 0xa8, 0xc9, 0x1d, 0x30, 0xa6, 0xd7, 0xeb, 0x0e, 0x26,
- 0xe7, 0x44, 0xf4, 0x84, 0x50, 0xf0, 0x9b, 0x89, 0xe1, 0xd4, 0x23, 0x90, 0xe1, 0x71, 0xc0, 0x5b,
- 0x32, 0x8e, 0x84, 0xd6, 0xa2, 0xc7, 0xde, 0xc4, 0x6c, 0x56, 0xcd, 0x58, 0xfc, 0xe5, 0x49, 0xc8,
- 0x9b, 0xae, 0xd6, 0xb9, 0x25, 0x4f, 0x9c, 0x48, 0xcc, 0x66, 0xd4, 0x9c, 0xe9, 0xfa, 0x37, 0x8c,
- 0x33, 0xaf, 0x25, 0xa0, 0x10, 0xbc, 0xe5, 0x57, 0x96, 0x21, 0xd3, 0xb0, 0x0d, 0x9d, 0xa4, 0x16,
- 0xfd, 0xc4, 0x34, 0x1b, 0xf3, 0x61, 0x60, 0x6e, 0x8d, 0xd9, 0xab, 0x3e, 0x72, 0xea, 0x9f, 0x24,
- 0xc8, 0xf0, 0x66, 0xe5, 0x18, 0xa4, 0x5a, 0xba, 0xb7, 0x4f, 0xe8, 0xd2, 0x8b, 0x09, 0x59, 0x52,
- 0xc9, 0x33, 0x6e, 0x77, 0x5b, 0xba, 0x45, 0x52, 0x80, 0xb5, 0xe3, 0x67, 0x3c, 0xaf, 0x0d, 0xa4,
- 0xd7, 0xc8, 0xf1, 0xc3, 0x6e, 0x36, 0x91, 0xe5, 0xb9, 0x7c, 0x5e, 0x59, 0xfb, 0x12, 0x6b, 0x56,
- 0x4e, 0xc3, 0xb8, 0xe7, 0xe8, 0x66, 0x23, 0x60, 0x9b, 0x22, 0xb6, 0x32, 0x7f, 0xe1, 0x1b, 0x97,
- 0xe0, 0x26, 0xce, 0x5b, 0x43, 0x9e, 0x6e, 0xec, 0xa3, 0x5a, 0x07, 0x34, 0x4c, 0xae, 0x19, 0x6e,
- 0x64, 0x06, 0xcb, 0xec, 0x3d, 0xc7, 0xce, 0xfc, 0x40, 0x82, 0x71, 0x7e, 0x60, 0xaa, 0xf9, 0xc1,
- 0x5a, 0x07, 0xd0, 0x2d, 0xcb, 0xf6, 0xc4, 0x70, 0x75, 0xa7, 0x72, 0x17, 0x6e, 0xae, 0xec, 0x83,
- 0x54, 0x81, 0x60, 0xaa, 0x09, 0xd0, 0x79, 0xd3, 0x33, 0x6c, 0xc7, 0x21, 0xc7, 0x3e, 0xe1, 0x90,
- 0xef, 0x80, 0xf4, 0x88, 0x0d, 0xb4, 0x09, 0x9f, 0xac, 0x94, 0x49, 0x48, 0xef, 0xa2, 0xba, 0x69,
- 0xb1, 0x8b, 0x59, 0xfa, 0xc0, 0x2f, 0x42, 0x52, 0xfe, 0x45, 0xc8, 0xe2, 0xe7, 0x60, 0xc2, 0xb0,
- 0x9b, 0x61, 0x77, 0x17, 0xe5, 0xd0, 0x31, 0xdf, 0xbd, 0x24, 0x3d, 0x05, 0x1d, 0x89, 0xf9, 0xbe,
- 0x24, 0x7d, 0x29, 0x91, 0x5c, 0xd9, 0x5a, 0xfc, 0x6a, 0x62, 0x6a, 0x85, 0x42, 0xb7, 0xf8, 0x48,
- 0x55, 0xb4, 0xd7, 0x40, 0x06, 0xf6, 0x1e, 0xbe, 0x7c, 0x1a, 0xee, 0xae, 0x9b, 0xde, 0x7e, 0x7b,
- 0x77, 0xce, 0xb0, 0x9b, 0xf3, 0x75, 0xbb, 0x6e, 0x77, 0x3e, 0x7d, 0xe2, 0x27, 0xf2, 0x40, 0xfe,
- 0x62, 0x9f, 0x3f, 0xb3, 0x7e, 0xeb, 0x54, 0xec, 0xb7, 0xd2, 0xd2, 0x06, 0x4c, 0x30, 0x63, 0x8d,
- 0x7c, 0x7f, 0xa1, 0xa7, 0x08, 0xa5, 0xef, 0x1d, 0x56, 0xf1, 0xeb, 0x6f, 0x91, 0xed, 0x5a, 0x1d,
- 0x67, 0x50, 0xfc, 0x8e, 0x1e, 0x34, 0x4a, 0x2a, 0xdc, 0x10, 0xe0, 0xa3, 0x4b, 0x13, 0x39, 0x31,
- 0x8c, 0xdf, 0x63, 0x8c, 0x13, 0x02, 0x63, 0x95, 0x41, 0x4b, 0x4b, 0x30, 0x7a, 0x14, 0xae, 0xbf,
- 0x67, 0x5c, 0x79, 0x24, 0x92, 0xac, 0xc0, 0x18, 0x21, 0x31, 0xda, 0xae, 0x67, 0x37, 0x49, 0xdd,
- 0xeb, 0x4f, 0xf3, 0x0f, 0x6f, 0xd1, 0xb5, 0x52, 0xc0, 0xb0, 0x25, 0x1f, 0x55, 0x2a, 0x01, 0xf9,
- 0xe4, 0x54, 0x43, 0x46, 0x23, 0x86, 0xe1, 0x75, 0xe6, 0x88, 0x6f, 0x5f, 0x7a, 0x0c, 0x26, 0xf1,
- 0xdf, 0xa4, 0x2c, 0x89, 0x9e, 0xc4, 0x5f, 0x78, 0x15, 0x7f, 0xf0, 0x02, 0x5d, 0x8e, 0x13, 0x3e,
- 0x81, 0xe0, 0x93, 0x30, 0x8b, 0x75, 0xe4, 0x79, 0xc8, 0x71, 0x35, 0xbd, 0x11, 0xe5, 0x9e, 0x70,
- 0x63, 0x50, 0xfc, 0xc2, 0x3b, 0xc1, 0x59, 0x5c, 0xa1, 0xc8, 0x72, 0xa3, 0x51, 0xda, 0x81, 0x1b,
- 0x23, 0xb2, 0x62, 0x00, 0xce, 0x97, 0x18, 0xe7, 0x64, 0x57, 0x66, 0x60, 0xda, 0x2d, 0xe0, 0xed,
- 0xfe, 0x5c, 0x0e, 0xc0, 0xf9, 0xfb, 0x8c, 0x53, 0x61, 0x58, 0x3e, 0xa5, 0x98, 0xf1, 0x11, 0x18,
- 0xbf, 0x82, 0x9c, 0x5d, 0xdb, 0x65, 0xb7, 0x34, 0x03, 0xd0, 0xbd, 0xcc, 0xe8, 0xc6, 0x18, 0x90,
- 0x5c, 0xdb, 0x60, 0xae, 0x07, 0x20, 0xb3, 0xa7, 0x1b, 0x68, 0x00, 0x8a, 0x2f, 0x32, 0x8a, 0x11,
- 0x6c, 0x8f, 0xa1, 0x65, 0xc8, 0xd7, 0x6d, 0xb6, 0x33, 0xc5, 0xc3, 0x5f, 0x61, 0xf0, 0x1c, 0xc7,
- 0x30, 0x8a, 0x96, 0xdd, 0x6a, 0x37, 0xf0, 0xb6, 0x15, 0x4f, 0xf1, 0x07, 0x9c, 0x82, 0x63, 0x18,
- 0xc5, 0x11, 0xc2, 0xfa, 0x87, 0x9c, 0xc2, 0x15, 0xe2, 0xf9, 0x30, 0xe4, 0x6c, 0xab, 0x71, 0x60,
- 0x5b, 0x83, 0x38, 0xf1, 0x2a, 0x63, 0x00, 0x06, 0xc1, 0x04, 0x17, 0x20, 0x3b, 0xe8, 0x44, 0xfc,
- 0xf1, 0x3b, 0x7c, 0x79, 0xf0, 0x19, 0x58, 0x81, 0x31, 0x5e, 0xa0, 0x4c, 0xdb, 0x1a, 0x80, 0xe2,
- 0xcb, 0x8c, 0xa2, 0x20, 0xc0, 0xd8, 0x30, 0x3c, 0xe4, 0x7a, 0x75, 0x34, 0x08, 0xc9, 0x6b, 0x7c,
- 0x18, 0x0c, 0xc2, 0x42, 0xb9, 0x8b, 0x2c, 0x63, 0x7f, 0x30, 0x86, 0xaf, 0xf0, 0x50, 0x72, 0x0c,
- 0xa6, 0x58, 0x82, 0xd1, 0xa6, 0xee, 0xb8, 0xfb, 0x7a, 0x63, 0xa0, 0xe9, 0xf8, 0x13, 0xc6, 0x91,
- 0xf7, 0x41, 0x2c, 0x22, 0x6d, 0xeb, 0x28, 0x34, 0x5f, 0xe5, 0x11, 0x11, 0x60, 0x6c, 0xe9, 0xb9,
- 0x1e, 0xb9, 0xd2, 0x3a, 0x0a, 0xdb, 0x9f, 0xf2, 0xa5, 0x47, 0xb1, 0xeb, 0x22, 0xe3, 0x05, 0xc8,
- 0xba, 0xe6, 0xf3, 0x03, 0xd1, 0xfc, 0x19, 0x9f, 0x69, 0x02, 0xc0, 0xe0, 0x27, 0xe1, 0xa6, 0xc8,
- 0x6d, 0x62, 0x00, 0xb2, 0x3f, 0x67, 0x64, 0xc7, 0x22, 0xb6, 0x0a, 0x56, 0x12, 0x8e, 0x4a, 0xf9,
- 0x17, 0xbc, 0x24, 0xa0, 0x10, 0xd7, 0x16, 0x3e, 0x2b, 0xb8, 0xfa, 0xde, 0xd1, 0xa2, 0xf6, 0x97,
- 0x3c, 0x6a, 0x14, 0x1b, 0x88, 0xda, 0x36, 0x1c, 0x63, 0x8c, 0x47, 0x9b, 0xd7, 0xaf, 0xf1, 0xc2,
- 0x4a, 0xd1, 0x3b, 0xc1, 0xd9, 0xfd, 0x1c, 0x4c, 0xf9, 0xe1, 0xe4, 0xa2, 0xd4, 0xd5, 0x9a, 0x7a,
- 0x6b, 0x00, 0xe6, 0xaf, 0x33, 0x66, 0x5e, 0xf1, 0x7d, 0x55, 0xeb, 0xae, 0xeb, 0x2d, 0x4c, 0xfe,
- 0x04, 0x14, 0x39, 0x79, 0xdb, 0x72, 0x90, 0x61, 0xd7, 0x2d, 0xf3, 0x79, 0x54, 0x1b, 0x80, 0xfa,
- 0xaf, 0x42, 0x53, 0xb5, 0x23, 0xc0, 0x31, 0xf3, 0x2a, 0xc8, 0xbe, 0x56, 0xd1, 0xcc, 0x66, 0xcb,
- 0x76, 0xbc, 0x18, 0xc6, 0x6f, 0xf0, 0x99, 0xf2, 0x71, 0xab, 0x04, 0x56, 0xaa, 0x40, 0x81, 0x3c,
- 0x0e, 0x9a, 0x92, 0x7f, 0xcd, 0x88, 0x46, 0x3b, 0x28, 0x56, 0x38, 0x0c, 0xbb, 0xd9, 0xd2, 0x9d,
- 0x41, 0xea, 0xdf, 0xdf, 0xf0, 0xc2, 0xc1, 0x20, 0xac, 0x70, 0x78, 0x07, 0x2d, 0x84, 0x77, 0xfb,
- 0x01, 0x18, 0xbe, 0xc9, 0x0b, 0x07, 0xc7, 0x30, 0x0a, 0x2e, 0x18, 0x06, 0xa0, 0xf8, 0x5b, 0x4e,
- 0xc1, 0x31, 0x98, 0xe2, 0xb3, 0x9d, 0x8d, 0xd6, 0x41, 0x75, 0xd3, 0xf5, 0x1c, 0x2a, 0x85, 0xfb,
- 0x53, 0x7d, 0xeb, 0x9d, 0xa0, 0x08, 0x53, 0x05, 0x28, 0xae, 0x44, 0xec, 0x0a, 0x95, 0x9c, 0x94,
- 0xe2, 0x1d, 0xfb, 0x36, 0xaf, 0x44, 0x02, 0x0c, 0xfb, 0x26, 0x28, 0x44, 0x1c, 0x76, 0x03, 0x9f,
- 0x0f, 0x06, 0xa0, 0xfb, 0x4e, 0xc8, 0xb9, 0x2a, 0xc7, 0x62, 0x4e, 0x41, 0xff, 0xb4, 0xad, 0xcb,
- 0xe8, 0x60, 0xa0, 0xec, 0xfc, 0xbb, 0x90, 0xfe, 0xd9, 0xa1, 0x48, 0x5a, 0x43, 0xc6, 0x42, 0x7a,
- 0x4a, 0x89, 0xfb, 0xb1, 0x4e, 0xf1, 0x17, 0xde, 0x63, 0xe3, 0x0d, 0xca, 0xa9, 0xd2, 0x1a, 0x4e,
- 0xf2, 0xa0, 0xe8, 0x89, 0x27, 0x7b, 0xe1, 0x3d, 0x3f, 0xcf, 0x03, 0x9a, 0xa7, 0x74, 0x11, 0x46,
- 0x03, 0x82, 0x27, 0x9e, 0xea, 0x17, 0x19, 0x55, 0x5e, 0xd4, 0x3b, 0xa5, 0xb3, 0x90, 0xc2, 0xe2,
- 0x25, 0x1e, 0xfe, 0x4b, 0x0c, 0x4e, 0xcc, 0x4b, 0x0f, 0x42, 0x86, 0x8b, 0x96, 0x78, 0xe8, 0x2f,
- 0x33, 0xa8, 0x0f, 0xc1, 0x70, 0x2e, 0x58, 0xe2, 0xe1, 0xbf, 0xc2, 0xe1, 0x1c, 0x82, 0xe1, 0x83,
- 0x87, 0xf0, 0xbb, 0xbf, 0x9a, 0x62, 0x9b, 0x0e, 0x8f, 0xdd, 0x05, 0x18, 0x61, 0x4a, 0x25, 0x1e,
- 0xfd, 0x79, 0xd6, 0x39, 0x47, 0x94, 0xee, 0x87, 0xf4, 0x80, 0x01, 0xff, 0x35, 0x06, 0xa5, 0xf6,
- 0xa5, 0x25, 0xc8, 0x09, 0xea, 0x24, 0x1e, 0xfe, 0xeb, 0x0c, 0x2e, 0xa2, 0xb0, 0xeb, 0x4c, 0x9d,
- 0xc4, 0x13, 0xfc, 0x06, 0x77, 0x9d, 0x21, 0x70, 0xd8, 0xb8, 0x30, 0x89, 0x47, 0xff, 0x26, 0x8f,
- 0x3a, 0x87, 0x94, 0x1e, 0x86, 0xac, 0xbf, 0xd9, 0xc4, 0xe3, 0x7f, 0x8b, 0xe1, 0x3b, 0x18, 0x1c,
- 0x01, 0x61, 0xb3, 0x8b, 0xa7, 0xf8, 0x6d, 0x1e, 0x01, 0x01, 0x85, 0x97, 0x51, 0x58, 0xc0, 0xc4,
- 0x33, 0xfd, 0x0e, 0x5f, 0x46, 0x21, 0xfd, 0x82, 0x67, 0x93, 0xd4, 0xfc, 0x78, 0x8a, 0xdf, 0xe5,
- 0xb3, 0x49, 0xec, 0xb1, 0x1b, 0x61, 0x45, 0x10, 0xcf, 0xf1, 0x7b, 0xdc, 0x8d, 0x90, 0x20, 0x28,
- 0x6d, 0x81, 0xd2, 0xad, 0x06, 0xe2, 0xf9, 0x5e, 0x64, 0x7c, 0xe3, 0x5d, 0x62, 0xa0, 0xf4, 0x38,
- 0x1c, 0x8b, 0x56, 0x02, 0xf1, 0xac, 0x5f, 0x78, 0x2f, 0x74, 0x76, 0x13, 0x85, 0x40, 0x69, 0xbb,
- 0xb3, 0xa5, 0x88, 0x2a, 0x20, 0x9e, 0xf6, 0xa5, 0xf7, 0x82, 0x85, 0x5b, 0x14, 0x01, 0xa5, 0x32,
- 0x40, 0x67, 0x03, 0x8e, 0xe7, 0x7a, 0x99, 0x71, 0x09, 0x20, 0xbc, 0x34, 0xd8, 0xfe, 0x1b, 0x8f,
- 0xff, 0x22, 0x5f, 0x1a, 0x0c, 0x81, 0x97, 0x06, 0xdf, 0x7a, 0xe3, 0xd1, 0xaf, 0xf0, 0xa5, 0xc1,
- 0x21, 0x38, 0xb3, 0x85, 0xdd, 0x2d, 0x9e, 0xe1, 0x55, 0x9e, 0xd9, 0x02, 0xaa, 0xb4, 0x01, 0xe3,
- 0x5d, 0x1b, 0x62, 0x3c, 0xd5, 0x97, 0x18, 0x95, 0x1c, 0xde, 0x0f, 0xc5, 0xcd, 0x8b, 0x6d, 0x86,
- 0xf1, 0x6c, 0x7f, 0x14, 0xda, 0xbc, 0xd8, 0x5e, 0x58, 0xba, 0x00, 0x19, 0xab, 0xdd, 0x68, 0xe0,
- 0xc5, 0xa3, 0xf4, 0xff, 0x81, 0x5d, 0xf1, 0x5f, 0x3e, 0x60, 0xd1, 0xe1, 0x80, 0xd2, 0x59, 0x48,
- 0xa3, 0xe6, 0x2e, 0xaa, 0xc5, 0x21, 0xff, 0xf5, 0x03, 0x5e, 0x30, 0xb1, 0x75, 0xe9, 0x61, 0x00,
- 0x7a, 0x35, 0x42, 0x3e, 0xfb, 0xc5, 0x60, 0xff, 0xed, 0x03, 0xf6, 0xd3, 0x97, 0x0e, 0xa4, 0x43,
- 0x40, 0x7f, 0x48, 0xd3, 0x9f, 0xe0, 0x9d, 0x20, 0x01, 0x99, 0x91, 0x07, 0x60, 0xe4, 0x19, 0xd7,
- 0xb6, 0x3c, 0xbd, 0x1e, 0x87, 0xfe, 0x77, 0x86, 0xe6, 0xf6, 0x38, 0x60, 0x4d, 0xdb, 0x41, 0x9e,
- 0x5e, 0x77, 0xe3, 0xb0, 0xff, 0xc1, 0xb0, 0x3e, 0x00, 0x83, 0x0d, 0xdd, 0xf5, 0x06, 0x19, 0xf7,
- 0x4f, 0x39, 0x98, 0x03, 0xb0, 0xd3, 0xf8, 0xef, 0xcb, 0xe8, 0x20, 0x0e, 0xfb, 0x2e, 0x77, 0x9a,
- 0xd9, 0x97, 0x1e, 0x84, 0x2c, 0xfe, 0x93, 0xfe, 0x9e, 0x2d, 0x06, 0xfc, 0x9f, 0x0c, 0xdc, 0x41,
- 0xe0, 0x9e, 0x5d, 0xaf, 0xe6, 0x99, 0xf1, 0xc1, 0xfe, 0x2f, 0x36, 0xd3, 0xdc, 0xbe, 0x54, 0x86,
- 0x9c, 0xeb, 0xd5, 0x6a, 0x6d, 0xa6, 0x4f, 0x63, 0xe0, 0xff, 0xfd, 0x81, 0x7f, 0x65, 0xe1, 0x63,
- 0xf0, 0x6c, 0x5f, 0xbd, 0xec, 0xb5, 0x6c, 0xf2, 0x99, 0x23, 0x8e, 0xe1, 0x3d, 0xc6, 0x20, 0x40,
- 0x16, 0x2b, 0xd1, 0xd7, 0xb7, 0xb0, 0x62, 0xaf, 0xd8, 0xf4, 0xe2, 0xf6, 0xa9, 0x99, 0xf8, 0x1b,
- 0x58, 0xf8, 0x9f, 0xbb, 0xe1, 0x16, 0xc3, 0x6e, 0xee, 0xda, 0xee, 0xbc, 0x50, 0xcc, 0xe7, 0x9b,
- 0x7a, 0xcb, 0x25, 0x06, 0x0b, 0xec, 0x7a, 0x36, 0xc7, 0x9e, 0xf0, 0x8b, 0xa9, 0xa3, 0x5d, 0xed,
- 0xce, 0xdc, 0x0c, 0xa3, 0x17, 0x1b, 0xb6, 0xee, 0x99, 0x56, 0x7d, 0x0b, 0x7b, 0xaf, 0xe4, 0x41,
- 0xda, 0x23, 0x9f, 0x26, 0x25, 0x55, 0xda, 0x9b, 0xf9, 0xc7, 0x34, 0x64, 0xe9, 0xad, 0xe0, 0xba,
- 0xde, 0x52, 0x7e, 0x1e, 0xf2, 0x1b, 0x6c, 0x29, 0xde, 0xbb, 0x70, 0xde, 0xf5, 0xbf, 0x42, 0x08,
- 0xfd, 0xcf, 0xf9, 0xd6, 0x73, 0xa2, 0x29, 0xf9, 0x29, 0xc2, 0xe2, 0x3d, 0x3f, 0x7a, 0xe3, 0xf8,
- 0x5d, 0x3d, 0xfd, 0xc3, 0xe2, 0x62, 0x9e, 0xae, 0x99, 0xb9, 0x1d, 0xd3, 0xf2, 0xee, 0x5d, 0x38,
- 0xaf, 0x06, 0xfa, 0x53, 0xae, 0x40, 0x86, 0xbd, 0x70, 0xd9, 0xd7, 0xa9, 0x5b, 0x7b, 0xf4, 0xcd,
- 0xcd, 0x68, 0xbf, 0x67, 0x5e, 0x7f, 0xe3, 0xf8, 0xd0, 0x91, 0xfb, 0xf6, 0xfb, 0x52, 0x9e, 0x85,
- 0x1c, 0xf7, 0x63, 0xb5, 0xe6, 0xb2, 0xff, 0x8d, 0x70, 0x47, 0xcc, 0xb0, 0x57, 0x6b, 0xac, 0xf7,
- 0xdb, 0x7f, 0xf4, 0xc6, 0xf1, 0x99, 0xbe, 0x3d, 0xcf, 0xed, 0xb4, 0xcd, 0x9a, 0x2a, 0xf6, 0xa1,
- 0x3c, 0x0d, 0x49, 0xdc, 0x15, 0xfd, 0x01, 0xe7, 0xf1, 0x1e, 0x5d, 0xf9, 0x5d, 0x9c, 0x62, 0x03,
- 0x1c, 0xa4, 0x1b, 0xcc, 0x3b, 0xf5, 0x30, 0x8c, 0x77, 0x4d, 0x8f, 0x22, 0x43, 0xf2, 0x32, 0x3a,
- 0x60, 0xbf, 0x94, 0xc3, 0x7f, 0x2a, 0x93, 0x9d, 0x9f, 0xb2, 0x4a, 0xb3, 0x79, 0xf6, 0xfb, 0xd4,
- 0x52, 0xe2, 0xbc, 0x34, 0x75, 0x01, 0x46, 0x03, 0x31, 0x3e, 0x12, 0xf8, 0x21, 0x90, 0xc3, 0x51,
- 0x3a, 0x12, 0xfe, 0x1c, 0x64, 0x3e, 0x0c, 0x6e, 0xe6, 0x87, 0x0a, 0x8c, 0x94, 0x1b, 0x8d, 0x75,
- 0xbd, 0xe5, 0x2a, 0x4f, 0xc2, 0x38, 0x3d, 0x02, 0x6d, 0xdb, 0xcb, 0xe4, 0x7b, 0xe0, 0xba, 0xde,
- 0x62, 0x09, 0x7d, 0x3a, 0x10, 0x6e, 0x06, 0x98, 0xeb, 0xb2, 0x26, 0xfd, 0xab, 0xdd, 0x2c, 0xca,
- 0x63, 0x20, 0xf3, 0x46, 0xb2, 0xb6, 0x30, 0x33, 0x4d, 0xd7, 0x53, 0x7d, 0x99, 0xb9, 0x31, 0x25,
- 0xee, 0xe2, 0x50, 0x1e, 0x82, 0xcc, 0xaa, 0xe5, 0xdd, 0xb7, 0x80, 0xf9, 0x68, 0x0e, 0xce, 0x44,
- 0xf2, 0x71, 0x23, 0xca, 0xe3, 0x63, 0x18, 0xfe, 0xdc, 0x19, 0x8c, 0x4f, 0xf5, 0xc7, 0x13, 0xa3,
- 0x0e, 0x9e, 0x3c, 0x2a, 0x65, 0xc8, 0xe2, 0x39, 0xa7, 0x0e, 0xd0, 0xff, 0x08, 0x73, 0x4b, 0x24,
- 0x81, 0x6f, 0x45, 0x19, 0x3a, 0x28, 0x4e, 0x41, 0x7d, 0x18, 0x8e, 0xa1, 0x10, 0x9c, 0xe8, 0xa0,
- 0x30, 0x45, 0xd5, 0xf7, 0x62, 0xa4, 0x0f, 0x45, 0x35, 0xe4, 0x45, 0x55, 0xf4, 0xa2, 0xea, 0x7b,
- 0x91, 0x89, 0xa1, 0x10, 0xbd, 0xf0, 0x9f, 0x95, 0x65, 0x80, 0x8b, 0xe6, 0x73, 0xa8, 0x46, 0xdd,
- 0xc8, 0x46, 0x14, 0x23, 0xce, 0xd1, 0x31, 0xa3, 0x24, 0x02, 0x4e, 0x59, 0x81, 0x5c, 0x75, 0xaf,
- 0x43, 0x03, 0xec, 0xff, 0x01, 0x45, 0xba, 0xb2, 0x17, 0xe2, 0x11, 0x91, 0xbe, 0x3b, 0x74, 0x48,
- 0xb9, 0x38, 0x77, 0x84, 0x31, 0x09, 0xb8, 0x8e, 0x3b, 0x94, 0x26, 0x1f, 0xeb, 0x8e, 0xc0, 0x23,
+ // 4829 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x5b, 0x6c, 0x23, 0xd7,
+ 0x79, 0xd6, 0xf0, 0x22, 0x91, 0x3f, 0x29, 0x6a, 0x34, 0x92, 0xd7, 0xb4, 0x12, 0x6b, 0x77, 0xe5,
+ 0x9b, 0xbc, 0x6b, 0x4b, 0xb6, 0xbc, 0xbb, 0x5e, 0x73, 0x63, 0xbb, 0x94, 0xc4, 0xd5, 0xca, 0xd6,
+ 0x2d, 0x43, 0xc9, 0xb7, 0xc0, 0x98, 0x8e, 0x86, 0x47, 0xd4, 0x78, 0xc9, 0x19, 0x7a, 0x66, 0xb8,
+ 0x6b, 0x19, 0x45, 0xb1, 0x85, 0x7b, 0x41, 0xd0, 0xfb, 0x05, 0xa8, 0xe3, 0x3a, 0x6e, 0x9d, 0xa2,
+ 0x71, 0x9a, 0xde, 0x92, 0x5e, 0xd2, 0x24, 0x7d, 0xc9, 0x4b, 0x5a, 0x03, 0x05, 0x8a, 0xe4, 0x2d,
+ 0x08, 0x02, 0xc3, 0xab, 0x18, 0xa8, 0xdb, 0xba, 0xad, 0xdb, 0xfa, 0xc1, 0x85, 0x5f, 0x8a, 0x73,
+ 0x1b, 0x9e, 0x19, 0x0e, 0x39, 0x94, 0x01, 0x3b, 0x7d, 0xf0, 0xd3, 0x6a, 0xce, 0xf9, 0xbf, 0xef,
+ 0xfc, 0xf3, 0x9f, 0xff, 0xfc, 0xe7, 0x3b, 0x67, 0xb8, 0xf0, 0x7a, 0x09, 0x4e, 0xd4, 0x6d, 0xbb,
+ 0xde, 0x40, 0xf3, 0x2d, 0xc7, 0xf6, 0xec, 0xdd, 0xf6, 0xde, 0x7c, 0x0d, 0xb9, 0x86, 0x63, 0xb6,
+ 0x3c, 0xdb, 0x99, 0x23, 0x6d, 0xca, 0x18, 0xb5, 0x98, 0xe3, 0x16, 0x33, 0xeb, 0x30, 0x7e, 0xd1,
+ 0x6c, 0xa0, 0x65, 0xdf, 0xb0, 0x8a, 0x3c, 0xe5, 0x3c, 0xa4, 0xf6, 0xcc, 0x06, 0x2a, 0x4a, 0x27,
+ 0x92, 0xb3, 0xb9, 0x85, 0x5b, 0xe7, 0x42, 0xa0, 0xb9, 0x20, 0x62, 0x0b, 0x37, 0xab, 0x04, 0x31,
+ 0xf3, 0x56, 0x0a, 0x26, 0x22, 0x7a, 0x15, 0x05, 0x52, 0x96, 0xde, 0xc4, 0x8c, 0xd2, 0x6c, 0x56,
+ 0x25, 0x7f, 0x2b, 0x45, 0x18, 0x69, 0xe9, 0xc6, 0x65, 0xbd, 0x8e, 0x8a, 0x09, 0xd2, 0xcc, 0x1f,
+ 0x95, 0x69, 0x80, 0x1a, 0x6a, 0x21, 0xab, 0x86, 0x2c, 0xe3, 0xa0, 0x98, 0x3c, 0x91, 0x9c, 0xcd,
+ 0xaa, 0x42, 0x8b, 0x72, 0x1a, 0xc6, 0x5b, 0xed, 0xdd, 0x86, 0x69, 0x68, 0x82, 0x19, 0x9c, 0x48,
+ 0xce, 0xa6, 0x55, 0x99, 0x76, 0x2c, 0x77, 0x8c, 0xef, 0x80, 0xb1, 0xab, 0x48, 0xbf, 0x2c, 0x9a,
+ 0xe6, 0x88, 0x69, 0x01, 0x37, 0x0b, 0x86, 0x4b, 0x90, 0x6f, 0x22, 0xd7, 0xd5, 0xeb, 0x48, 0xf3,
+ 0x0e, 0x5a, 0xa8, 0x98, 0x22, 0x6f, 0x7f, 0xa2, 0xeb, 0xed, 0xc3, 0x6f, 0x9e, 0x63, 0xa8, 0xed,
+ 0x83, 0x16, 0x52, 0xca, 0x90, 0x45, 0x56, 0xbb, 0x49, 0x19, 0xd2, 0x3d, 0xe2, 0x57, 0xb1, 0xda,
+ 0xcd, 0x30, 0x4b, 0x06, 0xc3, 0x18, 0xc5, 0x88, 0x8b, 0x9c, 0x2b, 0xa6, 0x81, 0x8a, 0xc3, 0x84,
+ 0xe0, 0x8e, 0x2e, 0x82, 0x2a, 0xed, 0x0f, 0x73, 0x70, 0x9c, 0xb2, 0x04, 0x59, 0xf4, 0x9c, 0x87,
+ 0x2c, 0xd7, 0xb4, 0xad, 0xe2, 0x08, 0x21, 0xb9, 0x2d, 0x62, 0x16, 0x51, 0xa3, 0x16, 0xa6, 0xe8,
+ 0xe0, 0x94, 0x73, 0x30, 0x62, 0xb7, 0x3c, 0xd3, 0xb6, 0xdc, 0x62, 0xe6, 0x84, 0x34, 0x9b, 0x5b,
+ 0xf8, 0x74, 0x64, 0x22, 0x6c, 0x52, 0x1b, 0x95, 0x1b, 0x2b, 0xab, 0x20, 0xbb, 0x76, 0xdb, 0x31,
+ 0x90, 0x66, 0xd8, 0x35, 0xa4, 0x99, 0xd6, 0x9e, 0x5d, 0xcc, 0x12, 0x82, 0xe3, 0xdd, 0x2f, 0x42,
+ 0x0c, 0x97, 0xec, 0x1a, 0x5a, 0xb5, 0xf6, 0x6c, 0xb5, 0xe0, 0x06, 0x9e, 0x95, 0x63, 0x30, 0xec,
+ 0x1e, 0x58, 0x9e, 0xfe, 0x5c, 0x31, 0x4f, 0x32, 0x84, 0x3d, 0xcd, 0x7c, 0x6b, 0x18, 0xc6, 0x06,
+ 0x49, 0xb1, 0x0b, 0x90, 0xde, 0xc3, 0x6f, 0x59, 0x4c, 0x1c, 0x25, 0x06, 0x14, 0x13, 0x0c, 0xe2,
+ 0xf0, 0x87, 0x0c, 0x62, 0x19, 0x72, 0x16, 0x72, 0x3d, 0x54, 0xa3, 0x19, 0x91, 0x1c, 0x30, 0xa7,
+ 0x80, 0x82, 0xba, 0x53, 0x2a, 0xf5, 0xa1, 0x52, 0xea, 0x09, 0x18, 0xf3, 0x5d, 0xd2, 0x1c, 0xdd,
+ 0xaa, 0xf3, 0xdc, 0x9c, 0x8f, 0xf3, 0x64, 0xae, 0xc2, 0x71, 0x2a, 0x86, 0xa9, 0x05, 0x14, 0x78,
+ 0x56, 0x96, 0x01, 0x6c, 0x0b, 0xd9, 0x7b, 0x5a, 0x0d, 0x19, 0x8d, 0x62, 0xa6, 0x47, 0x94, 0x36,
+ 0xb1, 0x49, 0x57, 0x94, 0x6c, 0xda, 0x6a, 0x34, 0x94, 0x07, 0x3a, 0xa9, 0x36, 0xd2, 0x23, 0x53,
+ 0xd6, 0xe9, 0x22, 0xeb, 0xca, 0xb6, 0x1d, 0x28, 0x38, 0x08, 0xe7, 0x3d, 0xaa, 0xb1, 0x37, 0xcb,
+ 0x12, 0x27, 0xe6, 0x62, 0xdf, 0x4c, 0x65, 0x30, 0xfa, 0x62, 0xa3, 0x8e, 0xf8, 0xa8, 0xdc, 0x02,
+ 0x7e, 0x83, 0x46, 0xd2, 0x0a, 0x48, 0x15, 0xca, 0xf3, 0xc6, 0x0d, 0xbd, 0x89, 0xa6, 0x9e, 0x87,
+ 0x42, 0x30, 0x3c, 0xca, 0x24, 0xa4, 0x5d, 0x4f, 0x77, 0x3c, 0x92, 0x85, 0x69, 0x95, 0x3e, 0x28,
+ 0x32, 0x24, 0x91, 0x55, 0x23, 0x55, 0x2e, 0xad, 0xe2, 0x3f, 0x95, 0x9f, 0xea, 0xbc, 0x70, 0x92,
+ 0xbc, 0xf0, 0xed, 0xdd, 0x33, 0x1a, 0x60, 0x0e, 0xbf, 0xf7, 0xd4, 0xfd, 0x30, 0x1a, 0x78, 0x81,
+ 0x41, 0x87, 0x9e, 0xf9, 0x19, 0xb8, 0x21, 0x92, 0x5a, 0x79, 0x02, 0x26, 0xdb, 0x96, 0x69, 0x79,
+ 0xc8, 0x69, 0x39, 0x08, 0x67, 0x2c, 0x1d, 0xaa, 0xf8, 0xcf, 0x23, 0x3d, 0x72, 0x6e, 0x47, 0xb4,
+ 0xa6, 0x2c, 0xea, 0x44, 0xbb, 0xbb, 0xf1, 0x54, 0x36, 0xf3, 0xf6, 0x88, 0x7c, 0xed, 0xda, 0xb5,
+ 0x6b, 0x89, 0x99, 0x17, 0x87, 0x61, 0x32, 0x6a, 0xcd, 0x44, 0x2e, 0xdf, 0x63, 0x30, 0x6c, 0xb5,
+ 0x9b, 0xbb, 0xc8, 0x21, 0x41, 0x4a, 0xab, 0xec, 0x49, 0x29, 0x43, 0xba, 0xa1, 0xef, 0xa2, 0x46,
+ 0x31, 0x75, 0x42, 0x9a, 0x2d, 0x2c, 0x9c, 0x1e, 0x68, 0x55, 0xce, 0xad, 0x61, 0x88, 0x4a, 0x91,
+ 0xca, 0x43, 0x90, 0x62, 0x25, 0x1a, 0x33, 0x9c, 0x1a, 0x8c, 0x01, 0xaf, 0x25, 0x95, 0xe0, 0x94,
+ 0x4f, 0x41, 0x16, 0xff, 0x4b, 0x73, 0x63, 0x98, 0xf8, 0x9c, 0xc1, 0x0d, 0x38, 0x2f, 0x94, 0x29,
+ 0xc8, 0x90, 0x65, 0x52, 0x43, 0x7c, 0x6b, 0xf3, 0x9f, 0x71, 0x62, 0xd5, 0xd0, 0x9e, 0xde, 0x6e,
+ 0x78, 0xda, 0x15, 0xbd, 0xd1, 0x46, 0x24, 0xe1, 0xb3, 0x6a, 0x9e, 0x35, 0x3e, 0x86, 0xdb, 0x94,
+ 0xe3, 0x90, 0xa3, 0xab, 0xca, 0xb4, 0x6a, 0xe8, 0x39, 0x52, 0x3d, 0xd3, 0x2a, 0x5d, 0x68, 0xab,
+ 0xb8, 0x05, 0x0f, 0xff, 0x8c, 0x6b, 0x5b, 0x3c, 0x35, 0xc9, 0x10, 0xb8, 0x81, 0x0c, 0x7f, 0x7f,
+ 0xb8, 0x70, 0xdf, 0x1c, 0xfd, 0x7a, 0xe1, 0x9c, 0x9a, 0xf9, 0x46, 0x02, 0x52, 0xa4, 0x5e, 0x8c,
+ 0x41, 0x6e, 0xfb, 0xc9, 0xad, 0x8a, 0xb6, 0xbc, 0xb9, 0xb3, 0xb8, 0x56, 0x91, 0x25, 0xa5, 0x00,
+ 0x40, 0x1a, 0x2e, 0xae, 0x6d, 0x96, 0xb7, 0xe5, 0x84, 0xff, 0xbc, 0xba, 0xb1, 0x7d, 0xee, 0x8c,
+ 0x9c, 0xf4, 0x01, 0x3b, 0xb4, 0x21, 0x25, 0x1a, 0xdc, 0xb7, 0x20, 0xa7, 0x15, 0x19, 0xf2, 0x94,
+ 0x60, 0xf5, 0x89, 0xca, 0xf2, 0xb9, 0x33, 0xf2, 0x70, 0xb0, 0xe5, 0xbe, 0x05, 0x79, 0x44, 0x19,
+ 0x85, 0x2c, 0x69, 0x59, 0xdc, 0xdc, 0x5c, 0x93, 0x33, 0x3e, 0x67, 0x75, 0x5b, 0x5d, 0xdd, 0x58,
+ 0x91, 0xb3, 0x3e, 0xe7, 0x8a, 0xba, 0xb9, 0xb3, 0x25, 0x83, 0xcf, 0xb0, 0x5e, 0xa9, 0x56, 0xcb,
+ 0x2b, 0x15, 0x39, 0xe7, 0x5b, 0x2c, 0x3e, 0xb9, 0x5d, 0xa9, 0xca, 0xf9, 0x80, 0x5b, 0xf7, 0x2d,
+ 0xc8, 0xa3, 0xfe, 0x10, 0x95, 0x8d, 0x9d, 0x75, 0xb9, 0xa0, 0x8c, 0xc3, 0x28, 0x1d, 0x82, 0x3b,
+ 0x31, 0x16, 0x6a, 0x3a, 0x77, 0x46, 0x96, 0x3b, 0x8e, 0x50, 0x96, 0xf1, 0x40, 0xc3, 0xb9, 0x33,
+ 0xb2, 0x32, 0xb3, 0x04, 0x69, 0x92, 0x5d, 0x8a, 0x02, 0x85, 0xb5, 0xf2, 0x62, 0x65, 0x4d, 0xdb,
+ 0xdc, 0xda, 0x5e, 0xdd, 0xdc, 0x28, 0xaf, 0xc9, 0x52, 0xa7, 0x4d, 0xad, 0x7c, 0x76, 0x67, 0x55,
+ 0xad, 0x2c, 0xcb, 0x09, 0xb1, 0x6d, 0xab, 0x52, 0xde, 0xae, 0x2c, 0xcb, 0xc9, 0x19, 0x03, 0x26,
+ 0xa3, 0xea, 0x64, 0xe4, 0xca, 0x10, 0xa6, 0x38, 0xd1, 0x63, 0x8a, 0x09, 0x57, 0xd7, 0x14, 0xff,
+ 0x38, 0x01, 0x13, 0x11, 0x7b, 0x45, 0xe4, 0x20, 0x0f, 0x43, 0x9a, 0xa6, 0x28, 0xdd, 0x3d, 0xef,
+ 0x8c, 0xdc, 0x74, 0x48, 0xc2, 0x76, 0xed, 0xa0, 0x04, 0x27, 0x2a, 0x88, 0x64, 0x0f, 0x05, 0x81,
+ 0x29, 0xba, 0x6a, 0xfa, 0xd3, 0x5d, 0x35, 0x9d, 0x6e, 0x7b, 0xe7, 0x06, 0xd9, 0xf6, 0x48, 0xdb,
+ 0xd1, 0x6a, 0x7b, 0x3a, 0xa2, 0xb6, 0x5f, 0x80, 0xf1, 0x2e, 0xa2, 0x81, 0x6b, 0xec, 0x0b, 0x12,
+ 0x14, 0x7b, 0x05, 0x27, 0xa6, 0xd2, 0x25, 0x02, 0x95, 0xee, 0x42, 0x38, 0x82, 0x27, 0x7b, 0x4f,
+ 0x42, 0xd7, 0x5c, 0xbf, 0x26, 0xc1, 0xb1, 0x68, 0xa5, 0x18, 0xe9, 0xc3, 0x43, 0x30, 0xdc, 0x44,
+ 0xde, 0xbe, 0xcd, 0xd5, 0xd2, 0xed, 0x11, 0x7b, 0x30, 0xee, 0x0e, 0x4f, 0x36, 0x43, 0x89, 0x9b,
+ 0x78, 0xb2, 0x97, 0xdc, 0xa3, 0xde, 0x74, 0x79, 0xfa, 0xf9, 0x04, 0xdc, 0x10, 0x49, 0x1e, 0xe9,
+ 0xe8, 0xcd, 0x00, 0xa6, 0xd5, 0x6a, 0x7b, 0x54, 0x11, 0xd1, 0x02, 0x9b, 0x25, 0x2d, 0xa4, 0x78,
+ 0xe1, 0xe2, 0xd9, 0xf6, 0xfc, 0xfe, 0x24, 0xe9, 0x07, 0xda, 0x44, 0x0c, 0xce, 0x77, 0x1c, 0x4d,
+ 0x11, 0x47, 0xa7, 0x7b, 0xbc, 0x69, 0x57, 0x62, 0xde, 0x03, 0xb2, 0xd1, 0x30, 0x91, 0xe5, 0x69,
+ 0xae, 0xe7, 0x20, 0xbd, 0x69, 0x5a, 0x75, 0xb2, 0x83, 0x64, 0x4a, 0xe9, 0x3d, 0xbd, 0xe1, 0x22,
+ 0x75, 0x8c, 0x76, 0x57, 0x79, 0x2f, 0x46, 0x90, 0x04, 0x72, 0x04, 0xc4, 0x70, 0x00, 0x41, 0xbb,
+ 0x7d, 0xc4, 0xcc, 0xaf, 0x64, 0x21, 0x27, 0xe8, 0x6a, 0xe5, 0x24, 0xe4, 0x9f, 0xd1, 0xaf, 0xe8,
+ 0x1a, 0x3f, 0x2b, 0xd1, 0x48, 0xe4, 0x70, 0xdb, 0x16, 0x3b, 0x2f, 0xdd, 0x03, 0x93, 0xc4, 0xc4,
+ 0x6e, 0x7b, 0xc8, 0xd1, 0x8c, 0x86, 0xee, 0xba, 0x24, 0x68, 0x19, 0x62, 0xaa, 0xe0, 0xbe, 0x4d,
+ 0xdc, 0xb5, 0xc4, 0x7b, 0x94, 0xb3, 0x30, 0x41, 0x10, 0xcd, 0x76, 0xc3, 0x33, 0x5b, 0x0d, 0xa4,
+ 0xe1, 0xd3, 0x9b, 0x4b, 0x76, 0x12, 0xdf, 0xb3, 0x71, 0x6c, 0xb1, 0xce, 0x0c, 0xb0, 0x47, 0xae,
+ 0xb2, 0x0c, 0x37, 0x13, 0x58, 0x1d, 0x59, 0xc8, 0xd1, 0x3d, 0xa4, 0xa1, 0x67, 0xdb, 0x7a, 0xc3,
+ 0xd5, 0x74, 0xab, 0xa6, 0xed, 0xeb, 0xee, 0x7e, 0x71, 0x12, 0x13, 0x2c, 0x26, 0x8a, 0x92, 0x7a,
+ 0x13, 0x36, 0x5c, 0x61, 0x76, 0x15, 0x62, 0x56, 0xb6, 0x6a, 0x97, 0x74, 0x77, 0x5f, 0x29, 0xc1,
+ 0x31, 0xc2, 0xe2, 0x7a, 0x8e, 0x69, 0xd5, 0x35, 0x63, 0x1f, 0x19, 0x97, 0xb5, 0xb6, 0xb7, 0x77,
+ 0xbe, 0xf8, 0x29, 0x71, 0x7c, 0xe2, 0x61, 0x95, 0xd8, 0x2c, 0x61, 0x93, 0x1d, 0x6f, 0xef, 0xbc,
+ 0x52, 0x85, 0x3c, 0x9e, 0x8c, 0xa6, 0xf9, 0x3c, 0xd2, 0xf6, 0x6c, 0x87, 0x6c, 0x8d, 0x85, 0x88,
+ 0xd2, 0x24, 0x44, 0x70, 0x6e, 0x93, 0x01, 0xd6, 0xed, 0x1a, 0x2a, 0xa5, 0xab, 0x5b, 0x95, 0xca,
+ 0xb2, 0x9a, 0xe3, 0x2c, 0x17, 0x6d, 0x07, 0x27, 0x54, 0xdd, 0xf6, 0x03, 0x9c, 0xa3, 0x09, 0x55,
+ 0xb7, 0x79, 0x78, 0xcf, 0xc2, 0x84, 0x61, 0xd0, 0x77, 0x36, 0x0d, 0x8d, 0x9d, 0xb1, 0xdc, 0xa2,
+ 0x1c, 0x08, 0x96, 0x61, 0xac, 0x50, 0x03, 0x96, 0xe3, 0xae, 0xf2, 0x00, 0xdc, 0xd0, 0x09, 0x96,
+ 0x08, 0x1c, 0xef, 0x7a, 0xcb, 0x30, 0xf4, 0x2c, 0x4c, 0xb4, 0x0e, 0xba, 0x81, 0x4a, 0x60, 0xc4,
+ 0xd6, 0x41, 0x18, 0x76, 0x3f, 0x4c, 0xb6, 0xf6, 0x5b, 0xdd, 0xb8, 0x53, 0x22, 0x4e, 0x69, 0xed,
+ 0xb7, 0xc2, 0xc0, 0xdb, 0xc8, 0x81, 0xdb, 0x41, 0x86, 0xee, 0xa1, 0x5a, 0xf1, 0x46, 0xd1, 0x5c,
+ 0xe8, 0x50, 0xe6, 0x41, 0x36, 0x0c, 0x0d, 0x59, 0xfa, 0x6e, 0x03, 0x69, 0xba, 0x83, 0x2c, 0xdd,
+ 0x2d, 0x1e, 0x17, 0x8d, 0x0b, 0x86, 0x51, 0x21, 0xbd, 0x65, 0xd2, 0xa9, 0x9c, 0x82, 0x71, 0x7b,
+ 0xf7, 0x19, 0x83, 0xa6, 0xa4, 0xd6, 0x72, 0xd0, 0x9e, 0xf9, 0x5c, 0xf1, 0x56, 0x12, 0xdf, 0x31,
+ 0xdc, 0x41, 0x12, 0x72, 0x8b, 0x34, 0x2b, 0x77, 0x82, 0x6c, 0xb8, 0xfb, 0xba, 0xd3, 0x22, 0x35,
+ 0xd9, 0x6d, 0xe9, 0x06, 0x2a, 0xde, 0x46, 0x4d, 0x69, 0xfb, 0x06, 0x6f, 0xc6, 0x4b, 0xc2, 0xbd,
+ 0x6a, 0xee, 0x79, 0x9c, 0xf1, 0x0e, 0xba, 0x24, 0x48, 0x1b, 0x63, 0x9b, 0x05, 0x19, 0x87, 0x22,
+ 0x30, 0xf0, 0x2c, 0x31, 0x2b, 0xb4, 0xf6, 0x5b, 0xe2, 0xb8, 0xb7, 0xc0, 0x28, 0xb6, 0xec, 0x0c,
+ 0x7a, 0x27, 0x15, 0x64, 0xad, 0x7d, 0x61, 0xc4, 0x33, 0x70, 0x0c, 0x1b, 0x35, 0x91, 0xa7, 0xd7,
+ 0x74, 0x4f, 0x17, 0xac, 0xef, 0x22, 0xd6, 0x38, 0xee, 0xeb, 0xac, 0x33, 0xe0, 0xa7, 0xd3, 0xde,
+ 0x3d, 0xf0, 0x33, 0xeb, 0x6e, 0xea, 0x27, 0x6e, 0xe3, 0xb9, 0xf5, 0x91, 0x89, 0xee, 0x99, 0x12,
+ 0xe4, 0xc5, 0xc4, 0x57, 0xb2, 0x40, 0x53, 0x5f, 0x96, 0xb0, 0x0a, 0x5a, 0xda, 0x5c, 0xc6, 0xfa,
+ 0xe5, 0xa9, 0x8a, 0x9c, 0xc0, 0x3a, 0x6a, 0x6d, 0x75, 0xbb, 0xa2, 0xa9, 0x3b, 0x1b, 0xdb, 0xab,
+ 0xeb, 0x15, 0x39, 0x29, 0x0a, 0xf6, 0xef, 0x26, 0xa0, 0x10, 0x3c, 0x7b, 0x29, 0x9f, 0x81, 0x1b,
+ 0xf9, 0x45, 0x89, 0x8b, 0x3c, 0xed, 0xaa, 0xe9, 0x90, 0xb5, 0xd8, 0xd4, 0xe9, 0xbe, 0xe8, 0x67,
+ 0xc3, 0x24, 0xb3, 0xaa, 0x22, 0xef, 0x71, 0xd3, 0xc1, 0x2b, 0xad, 0xa9, 0x7b, 0xca, 0x1a, 0x1c,
+ 0xb7, 0x6c, 0xcd, 0xf5, 0x74, 0xab, 0xa6, 0x3b, 0x35, 0xad, 0x73, 0x45, 0xa5, 0xe9, 0x86, 0x81,
+ 0x5c, 0xd7, 0xa6, 0x7b, 0xa0, 0xcf, 0xf2, 0x69, 0xcb, 0xae, 0x32, 0xe3, 0xce, 0xe6, 0x50, 0x66,
+ 0xa6, 0xa1, 0xcc, 0x4d, 0xf6, 0xca, 0xdc, 0x4f, 0x41, 0xb6, 0xa9, 0xb7, 0x34, 0x64, 0x79, 0xce,
+ 0x01, 0x51, 0xdc, 0x19, 0x35, 0xd3, 0xd4, 0x5b, 0x15, 0xfc, 0xfc, 0xf1, 0x1c, 0x7c, 0x7e, 0x94,
+ 0x84, 0xbc, 0xa8, 0xba, 0xf1, 0x21, 0xc6, 0x20, 0x1b, 0x94, 0x44, 0x4a, 0xd8, 0x2d, 0x7d, 0x35,
+ 0xfa, 0xdc, 0x12, 0xde, 0xb9, 0x4a, 0xc3, 0x54, 0x0b, 0xab, 0x14, 0x89, 0x55, 0x03, 0x4e, 0x2d,
+ 0x44, 0xb5, 0x47, 0x46, 0x65, 0x4f, 0xca, 0x0a, 0x0c, 0x3f, 0xe3, 0x12, 0xee, 0x61, 0xc2, 0x7d,
+ 0x6b, 0x7f, 0xee, 0x47, 0xaa, 0x84, 0x3c, 0xfb, 0x48, 0x55, 0xdb, 0xd8, 0x54, 0xd7, 0xcb, 0x6b,
+ 0x2a, 0x83, 0x2b, 0x37, 0x41, 0xaa, 0xa1, 0x3f, 0x7f, 0x10, 0xdc, 0xe3, 0x48, 0xd3, 0xa0, 0x81,
+ 0xbf, 0x09, 0x52, 0x57, 0x91, 0x7e, 0x39, 0xb8, 0xb3, 0x90, 0xa6, 0x8f, 0x30, 0xf5, 0xe7, 0x21,
+ 0x4d, 0xe2, 0xa5, 0x00, 0xb0, 0x88, 0xc9, 0x43, 0x4a, 0x06, 0x52, 0x4b, 0x9b, 0x2a, 0x4e, 0x7f,
+ 0x19, 0xf2, 0xb4, 0x55, 0xdb, 0x5a, 0xad, 0x2c, 0x55, 0xe4, 0xc4, 0xcc, 0x59, 0x18, 0xa6, 0x41,
+ 0xc0, 0x4b, 0xc3, 0x0f, 0x83, 0x3c, 0xc4, 0x1e, 0x19, 0x87, 0xc4, 0x7b, 0x77, 0xd6, 0x17, 0x2b,
+ 0xaa, 0x9c, 0x10, 0xa7, 0xd7, 0x85, 0xbc, 0x28, 0xb8, 0x3f, 0x9e, 0x9c, 0xfa, 0xb6, 0x04, 0x39,
+ 0x41, 0x40, 0x63, 0xe5, 0xa3, 0x37, 0x1a, 0xf6, 0x55, 0x4d, 0x6f, 0x98, 0xba, 0xcb, 0x92, 0x02,
+ 0x48, 0x53, 0x19, 0xb7, 0x0c, 0x3a, 0x69, 0x1f, 0x8b, 0xf3, 0xaf, 0x48, 0x20, 0x87, 0xb5, 0x6b,
+ 0xc8, 0x41, 0xe9, 0x27, 0xea, 0xe0, 0xcb, 0x12, 0x14, 0x82, 0x82, 0x35, 0xe4, 0xde, 0xc9, 0x9f,
+ 0xa8, 0x7b, 0x6f, 0x26, 0x60, 0x34, 0x20, 0x53, 0x07, 0xf5, 0xee, 0x59, 0x18, 0x37, 0x6b, 0xa8,
+ 0xd9, 0xb2, 0x3d, 0x64, 0x19, 0x07, 0x5a, 0x03, 0x5d, 0x41, 0x8d, 0xe2, 0x0c, 0x29, 0x14, 0xf3,
+ 0xfd, 0x85, 0xf0, 0xdc, 0x6a, 0x07, 0xb7, 0x86, 0x61, 0xa5, 0x89, 0xd5, 0xe5, 0xca, 0xfa, 0xd6,
+ 0xe6, 0x76, 0x65, 0x63, 0xe9, 0x49, 0x6d, 0x67, 0xe3, 0xd1, 0x8d, 0xcd, 0xc7, 0x37, 0x54, 0xd9,
+ 0x0c, 0x99, 0x7d, 0x84, 0x4b, 0x7d, 0x0b, 0xe4, 0xb0, 0x53, 0xca, 0x8d, 0x10, 0xe5, 0x96, 0x3c,
+ 0xa4, 0x4c, 0xc0, 0xd8, 0xc6, 0xa6, 0x56, 0x5d, 0x5d, 0xae, 0x68, 0x95, 0x8b, 0x17, 0x2b, 0x4b,
+ 0xdb, 0x55, 0x7a, 0xb5, 0xe1, 0x5b, 0x6f, 0x07, 0x17, 0xf5, 0x4b, 0x49, 0x98, 0x88, 0xf0, 0x44,
+ 0x29, 0xb3, 0x43, 0x09, 0x3d, 0x27, 0xdd, 0x3d, 0x88, 0xf7, 0x73, 0x58, 0x15, 0x6c, 0xe9, 0x8e,
+ 0xc7, 0xce, 0x30, 0x77, 0x02, 0x8e, 0x92, 0xe5, 0x99, 0x7b, 0x26, 0x72, 0xd8, 0x4d, 0x10, 0x3d,
+ 0xa9, 0x8c, 0x75, 0xda, 0xe9, 0x65, 0xd0, 0x5d, 0xa0, 0xb4, 0x6c, 0xd7, 0xf4, 0xcc, 0x2b, 0x48,
+ 0x33, 0x2d, 0x7e, 0x6d, 0x84, 0x4f, 0x2e, 0x29, 0x55, 0xe6, 0x3d, 0xab, 0x96, 0xe7, 0x5b, 0x5b,
+ 0xa8, 0xae, 0x87, 0xac, 0x71, 0x01, 0x4f, 0xaa, 0x32, 0xef, 0xf1, 0xad, 0x4f, 0x42, 0xbe, 0x66,
+ 0xb7, 0xb1, 0x9c, 0xa3, 0x76, 0x78, 0xbf, 0x90, 0xd4, 0x1c, 0x6d, 0xf3, 0x4d, 0x98, 0x50, 0xef,
+ 0xdc, 0x57, 0xe5, 0xd5, 0x1c, 0x6d, 0xa3, 0x26, 0x77, 0xc0, 0x98, 0x5e, 0xaf, 0x3b, 0x98, 0x9c,
+ 0x13, 0xd1, 0xa3, 0x47, 0xc1, 0x6f, 0x26, 0x86, 0x53, 0x8f, 0x40, 0x86, 0xc7, 0x01, 0x6f, 0xc9,
+ 0x38, 0x12, 0x5a, 0x8b, 0x9e, 0xa7, 0x13, 0xb3, 0x59, 0x35, 0x63, 0xf1, 0xce, 0x93, 0x90, 0x37,
+ 0x5d, 0xad, 0x73, 0xfd, 0x9e, 0x38, 0x91, 0x98, 0xcd, 0xa8, 0x39, 0xd3, 0xf5, 0xaf, 0x2e, 0x67,
+ 0x5e, 0x4b, 0x40, 0x21, 0xf8, 0xf9, 0x40, 0x59, 0x86, 0x4c, 0xc3, 0x36, 0x74, 0x92, 0x5a, 0xf4,
+ 0xdb, 0xd5, 0x6c, 0xcc, 0x17, 0x87, 0xb9, 0x35, 0x66, 0xaf, 0xfa, 0xc8, 0xa9, 0x7f, 0x92, 0x20,
+ 0xc3, 0x9b, 0x95, 0x63, 0x90, 0x6a, 0xe9, 0xde, 0x3e, 0xa1, 0x4b, 0x2f, 0x26, 0x64, 0x49, 0x25,
+ 0xcf, 0xb8, 0xdd, 0x6d, 0xe9, 0x16, 0x49, 0x01, 0xd6, 0x8e, 0x9f, 0xf1, 0xbc, 0x36, 0x90, 0x5e,
+ 0x23, 0xe7, 0x1a, 0xbb, 0xd9, 0x44, 0x96, 0xe7, 0xf2, 0x79, 0x65, 0xed, 0x4b, 0xac, 0x59, 0x39,
+ 0x0d, 0xe3, 0x9e, 0xa3, 0x9b, 0x8d, 0x80, 0x6d, 0x8a, 0xd8, 0xca, 0xbc, 0xc3, 0x37, 0x2e, 0xc1,
+ 0x4d, 0x9c, 0xb7, 0x86, 0x3c, 0xdd, 0xd8, 0x47, 0xb5, 0x0e, 0x68, 0x98, 0xdc, 0x5f, 0xdc, 0xc8,
+ 0x0c, 0x96, 0x59, 0x3f, 0xc7, 0xce, 0x7c, 0x5f, 0x82, 0x71, 0x7e, 0x12, 0xab, 0xf9, 0xc1, 0x5a,
+ 0x07, 0xd0, 0x2d, 0xcb, 0xf6, 0xc4, 0x70, 0x75, 0xa7, 0x72, 0x17, 0x6e, 0xae, 0xec, 0x83, 0x54,
+ 0x81, 0x60, 0xaa, 0x09, 0xd0, 0xe9, 0xe9, 0x19, 0xb6, 0xe3, 0x90, 0x63, 0xdf, 0x86, 0xc8, 0x07,
+ 0x46, 0x7a, 0x76, 0x07, 0xda, 0x84, 0x8f, 0x6c, 0xca, 0x24, 0xa4, 0x77, 0x51, 0xdd, 0xb4, 0xd8,
+ 0x8d, 0x2f, 0x7d, 0xe0, 0x37, 0x2c, 0x29, 0xff, 0x86, 0x65, 0xf1, 0x73, 0x30, 0x61, 0xd8, 0xcd,
+ 0xb0, 0xbb, 0x8b, 0x72, 0xe8, 0xfe, 0xc0, 0xbd, 0x24, 0x3d, 0x05, 0x1d, 0x89, 0xf9, 0xbe, 0x24,
+ 0x7d, 0x29, 0x91, 0x5c, 0xd9, 0x5a, 0xfc, 0x6a, 0x62, 0x6a, 0x85, 0x42, 0xb7, 0xf8, 0x9b, 0xaa,
+ 0x68, 0xaf, 0x81, 0x0c, 0xec, 0x3d, 0x7c, 0xf9, 0x34, 0xdc, 0x5d, 0x37, 0xbd, 0xfd, 0xf6, 0xee,
+ 0x9c, 0x61, 0x37, 0xe7, 0xeb, 0x76, 0xdd, 0xee, 0x7c, 0x53, 0xc5, 0x4f, 0xe4, 0x81, 0xfc, 0xc5,
+ 0xbe, 0xab, 0x66, 0xfd, 0xd6, 0xa9, 0xd8, 0x8f, 0xb0, 0xa5, 0x0d, 0x98, 0x60, 0xc6, 0x1a, 0xf9,
+ 0xb0, 0x43, 0x8f, 0x27, 0x4a, 0xdf, 0xcb, 0xb1, 0xe2, 0xd7, 0xdf, 0x22, 0xdb, 0xb5, 0x3a, 0xce,
+ 0xa0, 0xb8, 0x8f, 0x9e, 0x60, 0x4a, 0x2a, 0xdc, 0x10, 0xe0, 0xa3, 0x4b, 0x13, 0x39, 0x31, 0x8c,
+ 0xdf, 0x65, 0x8c, 0x13, 0x02, 0x63, 0x95, 0x41, 0x4b, 0x4b, 0x30, 0x7a, 0x14, 0xae, 0xbf, 0x67,
+ 0x5c, 0x79, 0x24, 0x92, 0xac, 0xc0, 0x18, 0x21, 0x31, 0xda, 0xae, 0x67, 0x37, 0x49, 0xdd, 0xeb,
+ 0x4f, 0xf3, 0x0f, 0x6f, 0xd1, 0xb5, 0x52, 0xc0, 0xb0, 0x25, 0x1f, 0x55, 0x2a, 0x01, 0xf9, 0x96,
+ 0x55, 0x43, 0x46, 0x23, 0x86, 0xe1, 0x75, 0xe6, 0x88, 0x6f, 0x5f, 0x7a, 0x0c, 0x26, 0xf1, 0xdf,
+ 0xa4, 0x2c, 0x89, 0x9e, 0xc4, 0xdf, 0xa4, 0x15, 0xbf, 0xff, 0x02, 0x5d, 0x8e, 0x13, 0x3e, 0x81,
+ 0xe0, 0x93, 0x30, 0x8b, 0x75, 0xe4, 0x79, 0xc8, 0x71, 0x35, 0xbd, 0x11, 0xe5, 0x9e, 0x70, 0x15,
+ 0x51, 0xfc, 0xc2, 0x3b, 0xc1, 0x59, 0x5c, 0xa1, 0xc8, 0x72, 0xa3, 0x51, 0xda, 0x81, 0x1b, 0x23,
+ 0xb2, 0x62, 0x00, 0xce, 0x97, 0x18, 0xe7, 0x64, 0x57, 0x66, 0x60, 0xda, 0x2d, 0xe0, 0xed, 0xfe,
+ 0x5c, 0x0e, 0xc0, 0xf9, 0x7b, 0x8c, 0x53, 0x61, 0x58, 0x3e, 0xa5, 0x98, 0xf1, 0x11, 0x18, 0xbf,
+ 0x82, 0x9c, 0x5d, 0xdb, 0x65, 0xd7, 0x3f, 0x03, 0xd0, 0xbd, 0xcc, 0xe8, 0xc6, 0x18, 0x90, 0xdc,
+ 0x07, 0x61, 0xae, 0x07, 0x20, 0xb3, 0xa7, 0x1b, 0x68, 0x00, 0x8a, 0x2f, 0x32, 0x8a, 0x11, 0x6c,
+ 0x8f, 0xa1, 0x65, 0xc8, 0xd7, 0x6d, 0xb6, 0x33, 0xc5, 0xc3, 0x5f, 0x61, 0xf0, 0x1c, 0xc7, 0x30,
+ 0x8a, 0x96, 0xdd, 0x6a, 0x37, 0xf0, 0xb6, 0x15, 0x4f, 0xf1, 0xfb, 0x9c, 0x82, 0x63, 0x18, 0xc5,
+ 0x11, 0xc2, 0xfa, 0x07, 0x9c, 0xc2, 0x15, 0xe2, 0xf9, 0x30, 0xe4, 0x6c, 0xab, 0x71, 0x60, 0x5b,
+ 0x83, 0x38, 0xf1, 0x2a, 0x63, 0x00, 0x06, 0xc1, 0x04, 0x17, 0x20, 0x3b, 0xe8, 0x44, 0xfc, 0xd1,
+ 0x3b, 0x7c, 0x79, 0xf0, 0x19, 0x58, 0x81, 0x31, 0x5e, 0xa0, 0x4c, 0xdb, 0x1a, 0x80, 0xe2, 0xcb,
+ 0x8c, 0xa2, 0x20, 0xc0, 0xd8, 0x6b, 0x78, 0xc8, 0xf5, 0xea, 0x68, 0x10, 0x92, 0xd7, 0xf8, 0x6b,
+ 0x30, 0x08, 0x0b, 0xe5, 0x2e, 0xb2, 0x8c, 0xfd, 0xc1, 0x18, 0xbe, 0xc2, 0x43, 0xc9, 0x31, 0x98,
+ 0x62, 0x09, 0x46, 0x9b, 0xba, 0xe3, 0xee, 0xeb, 0x8d, 0x81, 0xa6, 0xe3, 0x8f, 0x19, 0x47, 0xde,
+ 0x07, 0xb1, 0x88, 0xb4, 0xad, 0xa3, 0xd0, 0x7c, 0x95, 0x47, 0x44, 0x80, 0xb1, 0xa5, 0xe7, 0x7a,
+ 0xe4, 0xae, 0xec, 0x28, 0x6c, 0x7f, 0xc2, 0x97, 0x1e, 0xc5, 0xae, 0x8b, 0x8c, 0x17, 0x20, 0xeb,
+ 0x9a, 0xcf, 0x0f, 0x44, 0xf3, 0xa7, 0x7c, 0xa6, 0x09, 0x00, 0x83, 0x9f, 0x84, 0x9b, 0x22, 0xb7,
+ 0x89, 0x01, 0xc8, 0xfe, 0x8c, 0x91, 0x1d, 0x8b, 0xd8, 0x2a, 0x58, 0x49, 0x38, 0x2a, 0xe5, 0x9f,
+ 0xf3, 0x92, 0x80, 0x42, 0x5c, 0x5b, 0xf8, 0xac, 0xe0, 0xea, 0x7b, 0x47, 0x8b, 0xda, 0x5f, 0xf0,
+ 0xa8, 0x51, 0x6c, 0x20, 0x6a, 0xdb, 0x70, 0x8c, 0x31, 0x1e, 0x6d, 0x5e, 0xbf, 0xc6, 0x0b, 0x2b,
+ 0x45, 0xef, 0x04, 0x67, 0xf7, 0x73, 0x30, 0xe5, 0x87, 0x93, 0x8b, 0x52, 0x57, 0x6b, 0xea, 0xad,
+ 0x01, 0x98, 0xbf, 0xce, 0x98, 0x79, 0xc5, 0xf7, 0x55, 0xad, 0xbb, 0xae, 0xb7, 0x30, 0xf9, 0x13,
+ 0x50, 0xe4, 0xe4, 0x6d, 0xcb, 0x41, 0x86, 0x5d, 0xb7, 0xcc, 0xe7, 0x51, 0x6d, 0x00, 0xea, 0xbf,
+ 0x0c, 0x4d, 0xd5, 0x8e, 0x00, 0xc7, 0xcc, 0xab, 0x20, 0xfb, 0x5a, 0x45, 0x33, 0x9b, 0x2d, 0xdb,
+ 0xf1, 0x62, 0x18, 0xff, 0x8a, 0xcf, 0x94, 0x8f, 0x5b, 0x25, 0xb0, 0x52, 0x05, 0x0a, 0xe4, 0x71,
+ 0xd0, 0x94, 0xfc, 0x6b, 0x46, 0x34, 0xda, 0x41, 0xb1, 0xc2, 0x61, 0xd8, 0xcd, 0x96, 0xee, 0x0c,
+ 0x52, 0xff, 0xfe, 0x86, 0x17, 0x0e, 0x06, 0x61, 0x85, 0xc3, 0x3b, 0x68, 0x21, 0xbc, 0xdb, 0x0f,
+ 0xc0, 0xf0, 0x0d, 0x5e, 0x38, 0x38, 0x86, 0x51, 0x70, 0xc1, 0x30, 0x00, 0xc5, 0xdf, 0x72, 0x0a,
+ 0x8e, 0xc1, 0x14, 0x9f, 0xed, 0x6c, 0xb4, 0x0e, 0xaa, 0x9b, 0xae, 0xe7, 0x50, 0x29, 0xdc, 0x9f,
+ 0xea, 0x9b, 0xef, 0x04, 0x45, 0x98, 0x2a, 0x40, 0x71, 0x25, 0x62, 0x57, 0xa8, 0xe4, 0xa4, 0x14,
+ 0xef, 0xd8, 0xb7, 0x78, 0x25, 0x12, 0x60, 0xd8, 0x37, 0x41, 0x21, 0xe2, 0xb0, 0x1b, 0xf8, 0x7c,
+ 0x30, 0x00, 0xdd, 0xb7, 0x43, 0xce, 0x55, 0x39, 0x16, 0x73, 0x0a, 0xfa, 0xa7, 0x6d, 0x5d, 0x46,
+ 0x07, 0x03, 0x65, 0xe7, 0xdf, 0x85, 0xf4, 0xcf, 0x0e, 0x45, 0xd2, 0x1a, 0x32, 0x16, 0xd2, 0x53,
+ 0x4a, 0xdc, 0xaf, 0x80, 0x8a, 0x3f, 0xf7, 0x1e, 0x7b, 0xdf, 0xa0, 0x9c, 0x2a, 0xad, 0xe1, 0x24,
+ 0x0f, 0x8a, 0x9e, 0x78, 0xb2, 0x17, 0xde, 0xf3, 0xf3, 0x3c, 0xa0, 0x79, 0x4a, 0x17, 0x61, 0x34,
+ 0x20, 0x78, 0xe2, 0xa9, 0x7e, 0x9e, 0x51, 0xe5, 0x45, 0xbd, 0x53, 0x3a, 0x0b, 0x29, 0x2c, 0x5e,
+ 0xe2, 0xe1, 0xbf, 0xc0, 0xe0, 0xc4, 0xbc, 0xf4, 0x20, 0x64, 0xb8, 0x68, 0x89, 0x87, 0xfe, 0x22,
+ 0x83, 0xfa, 0x10, 0x0c, 0xe7, 0x82, 0x25, 0x1e, 0xfe, 0x4b, 0x1c, 0xce, 0x21, 0x18, 0x3e, 0x78,
+ 0x08, 0xbf, 0xf3, 0xcb, 0x29, 0xb6, 0xe9, 0xf0, 0xd8, 0x5d, 0x80, 0x11, 0xa6, 0x54, 0xe2, 0xd1,
+ 0x9f, 0x67, 0x83, 0x73, 0x44, 0xe9, 0x7e, 0x48, 0x0f, 0x18, 0xf0, 0x5f, 0x65, 0x50, 0x6a, 0x5f,
+ 0x5a, 0x82, 0x9c, 0xa0, 0x4e, 0xe2, 0xe1, 0xbf, 0xc6, 0xe0, 0x22, 0x0a, 0xbb, 0xce, 0xd4, 0x49,
+ 0x3c, 0xc1, 0xaf, 0x73, 0xd7, 0x19, 0x02, 0x87, 0x8d, 0x0b, 0x93, 0x78, 0xf4, 0x6f, 0xf0, 0xa8,
+ 0x73, 0x48, 0xe9, 0x61, 0xc8, 0xfa, 0x9b, 0x4d, 0x3c, 0xfe, 0x37, 0x19, 0xbe, 0x83, 0xc1, 0x11,
+ 0x10, 0x36, 0xbb, 0x78, 0x8a, 0xdf, 0xe2, 0x11, 0x10, 0x50, 0x78, 0x19, 0x85, 0x05, 0x4c, 0x3c,
+ 0xd3, 0x6f, 0xf3, 0x65, 0x14, 0xd2, 0x2f, 0x78, 0x36, 0x49, 0xcd, 0x8f, 0xa7, 0xf8, 0x1d, 0x3e,
+ 0x9b, 0xc4, 0x1e, 0xbb, 0x11, 0x56, 0x04, 0xf1, 0x1c, 0xbf, 0xcb, 0xdd, 0x08, 0x09, 0x82, 0xd2,
+ 0x16, 0x28, 0xdd, 0x6a, 0x20, 0x9e, 0xef, 0x45, 0xc6, 0x37, 0xde, 0x25, 0x06, 0x4a, 0x8f, 0xc3,
+ 0xb1, 0x68, 0x25, 0x10, 0xcf, 0xfa, 0x85, 0xf7, 0x42, 0x67, 0x37, 0x51, 0x08, 0x94, 0xb6, 0x3b,
+ 0x5b, 0x8a, 0xa8, 0x02, 0xe2, 0x69, 0x5f, 0x7a, 0x2f, 0x58, 0xb8, 0x45, 0x11, 0x50, 0x2a, 0x03,
+ 0x74, 0x36, 0xe0, 0x78, 0xae, 0x97, 0x19, 0x97, 0x00, 0xc2, 0x4b, 0x83, 0xed, 0xbf, 0xf1, 0xf8,
+ 0x2f, 0xf2, 0xa5, 0xc1, 0x10, 0x78, 0x69, 0xf0, 0xad, 0x37, 0x1e, 0xfd, 0x0a, 0x5f, 0x1a, 0x1c,
+ 0x82, 0x33, 0x5b, 0xd8, 0xdd, 0xe2, 0x19, 0x5e, 0xe5, 0x99, 0x2d, 0xa0, 0x4a, 0x1b, 0x30, 0xde,
+ 0xb5, 0x21, 0xc6, 0x53, 0x7d, 0x89, 0x51, 0xc9, 0xe1, 0xfd, 0x50, 0xdc, 0xbc, 0xd8, 0x66, 0x18,
+ 0xcf, 0xf6, 0x87, 0xa1, 0xcd, 0x8b, 0xed, 0x85, 0xa5, 0x0b, 0x90, 0xb1, 0xda, 0x8d, 0x06, 0x5e,
+ 0x3c, 0x4a, 0xff, 0x5f, 0xee, 0x15, 0xff, 0xe5, 0x03, 0x16, 0x1d, 0x0e, 0x28, 0x9d, 0x85, 0x34,
+ 0x6a, 0xee, 0xa2, 0x5a, 0x1c, 0xf2, 0x5f, 0x3f, 0xe0, 0x05, 0x13, 0x5b, 0x97, 0x1e, 0x06, 0xa0,
+ 0x57, 0x23, 0xe4, 0xb3, 0x5f, 0x0c, 0xf6, 0xdf, 0x3e, 0x60, 0xbf, 0xa9, 0xe9, 0x40, 0x3a, 0x04,
+ 0xf4, 0x17, 0x3a, 0xfd, 0x09, 0xde, 0x09, 0x12, 0x90, 0x19, 0x79, 0x00, 0x46, 0x9e, 0x71, 0x6d,
+ 0xcb, 0xd3, 0xeb, 0x71, 0xe8, 0x7f, 0x67, 0x68, 0x6e, 0x8f, 0x03, 0xd6, 0xb4, 0x1d, 0xe4, 0xe9,
+ 0x75, 0x37, 0x0e, 0xfb, 0x1f, 0x0c, 0xeb, 0x03, 0x30, 0xd8, 0xd0, 0x5d, 0x6f, 0x90, 0xf7, 0xfe,
+ 0x4f, 0x0e, 0xe6, 0x00, 0xec, 0x34, 0xfe, 0xfb, 0x32, 0x3a, 0x88, 0xc3, 0xbe, 0xcb, 0x9d, 0x66,
+ 0xf6, 0xa5, 0x07, 0x21, 0x8b, 0xff, 0xa4, 0x3f, 0x94, 0x8b, 0x01, 0xff, 0x17, 0x03, 0x77, 0x10,
+ 0x78, 0x64, 0xd7, 0xab, 0x79, 0x66, 0x7c, 0xb0, 0xff, 0x9b, 0xcd, 0x34, 0xb7, 0x2f, 0x95, 0x21,
+ 0xe7, 0x7a, 0xb5, 0x5a, 0x9b, 0xe9, 0xd3, 0x18, 0xf8, 0xff, 0x7c, 0xe0, 0x5f, 0x59, 0xf8, 0x18,
+ 0x3c, 0xdb, 0x57, 0x2f, 0x7b, 0x2d, 0x9b, 0x7c, 0xe6, 0x88, 0x63, 0x78, 0x8f, 0x31, 0x08, 0x90,
+ 0xc5, 0x4a, 0xf4, 0xf5, 0x2d, 0xac, 0xd8, 0x2b, 0x36, 0xbd, 0xb8, 0x7d, 0x6a, 0x26, 0xfe, 0x06,
+ 0x16, 0xfe, 0xf7, 0x6e, 0xb8, 0xc5, 0xb0, 0x9b, 0xbb, 0xb6, 0x3b, 0x2f, 0x14, 0xf3, 0xf9, 0xa6,
+ 0xde, 0x72, 0x89, 0xc1, 0x02, 0xbb, 0x9e, 0xcd, 0xb1, 0x27, 0xdc, 0x31, 0x75, 0xb4, 0xab, 0xdd,
+ 0x99, 0x9b, 0x61, 0xf4, 0x62, 0xc3, 0xd6, 0x3d, 0xd3, 0xaa, 0x6f, 0x61, 0xef, 0x95, 0x3c, 0x48,
+ 0x7b, 0xe4, 0xd3, 0xa4, 0xa4, 0x4a, 0x7b, 0x33, 0xff, 0x98, 0x86, 0x2c, 0xbd, 0x15, 0x5c, 0xd7,
+ 0x5b, 0xca, 0xcf, 0x42, 0x7e, 0x83, 0x2d, 0xc5, 0x7b, 0x17, 0xce, 0xbb, 0xfe, 0x57, 0x08, 0x61,
+ 0xfc, 0x39, 0xdf, 0x7a, 0x4e, 0x34, 0x25, 0x3f, 0x45, 0x58, 0xbc, 0xe7, 0x87, 0x6f, 0x1c, 0xbf,
+ 0xab, 0xa7, 0x7f, 0x58, 0x5c, 0xcc, 0xd3, 0x35, 0x33, 0xb7, 0x63, 0x5a, 0xde, 0xbd, 0x0b, 0xe7,
+ 0xd5, 0xc0, 0x78, 0xca, 0x15, 0xc8, 0xb0, 0x0e, 0x97, 0x7d, 0x9d, 0xba, 0xb5, 0xc7, 0xd8, 0xdc,
+ 0x8c, 0x8e, 0x7b, 0xe6, 0xf5, 0x37, 0x8e, 0x0f, 0x1d, 0x79, 0x6c, 0x7f, 0x2c, 0xe5, 0x59, 0xc8,
+ 0x71, 0x3f, 0x56, 0x6b, 0x2e, 0xfb, 0x6f, 0x0e, 0x77, 0xc4, 0xbc, 0xf6, 0x6a, 0x8d, 0x8d, 0x7e,
+ 0xfb, 0x0f, 0xdf, 0x38, 0x3e, 0xd3, 0x77, 0xe4, 0xb9, 0x9d, 0xb6, 0x59, 0x53, 0xc5, 0x31, 0x94,
+ 0xa7, 0x21, 0x89, 0x87, 0xa2, 0xbf, 0x0c, 0x3d, 0xde, 0x63, 0x28, 0x7f, 0x88, 0x53, 0xec, 0x05,
+ 0x07, 0x19, 0x06, 0xf3, 0x4e, 0x3d, 0x0c, 0xe3, 0x5d, 0xd3, 0xa3, 0xc8, 0x90, 0xbc, 0x8c, 0x0e,
+ 0xd8, 0x4f, 0xf0, 0xf0, 0x9f, 0xca, 0x64, 0xe7, 0x37, 0xb2, 0xd2, 0x6c, 0x9e, 0xfd, 0xf0, 0xb5,
+ 0x94, 0x38, 0x2f, 0x4d, 0x5d, 0x80, 0xd1, 0x40, 0x8c, 0x8f, 0x04, 0x7e, 0x08, 0xe4, 0x70, 0x94,
+ 0x8e, 0x84, 0x3f, 0x07, 0x99, 0x0f, 0x83, 0x9b, 0xf9, 0x81, 0x02, 0x23, 0xe5, 0x46, 0x63, 0x5d,
+ 0x6f, 0xb9, 0xca, 0x93, 0x30, 0x4e, 0x8f, 0x40, 0xdb, 0xf6, 0x32, 0xf9, 0x1e, 0xb8, 0xae, 0xb7,
+ 0x58, 0x42, 0x9f, 0x0e, 0x84, 0x9b, 0x01, 0xe6, 0xba, 0xac, 0xc9, 0xf8, 0x6a, 0x37, 0x8b, 0xf2,
+ 0x18, 0xc8, 0xbc, 0x91, 0xac, 0x2d, 0xcc, 0x4c, 0xd3, 0xf5, 0x54, 0x5f, 0x66, 0x6e, 0x4c, 0x89,
+ 0xbb, 0x38, 0x94, 0x87, 0x20, 0xb3, 0x6a, 0x79, 0xf7, 0x2d, 0x60, 0x3e, 0x9a, 0x83, 0x33, 0x91,
+ 0x7c, 0xdc, 0x88, 0xf2, 0xf8, 0x18, 0x86, 0x3f, 0x77, 0x06, 0xe3, 0x53, 0xfd, 0xf1, 0xc4, 0xa8,
+ 0x83, 0x27, 0x8f, 0x4a, 0x19, 0xb2, 0x78, 0xce, 0xa9, 0x03, 0xf4, 0x7f, 0xd8, 0xdc, 0x12, 0x49,
+ 0xe0, 0x5b, 0x51, 0x86, 0x0e, 0x8a, 0x53, 0x50, 0x1f, 0x86, 0x63, 0x28, 0x04, 0x27, 0x3a, 0x28,
+ 0x4c, 0x51, 0xf5, 0xbd, 0x18, 0xe9, 0x43, 0x51, 0x0d, 0x79, 0x51, 0x15, 0xbd, 0xa8, 0xfa, 0x5e,
+ 0x64, 0x62, 0x28, 0x44, 0x2f, 0xfc, 0x67, 0x65, 0x19, 0xe0, 0xa2, 0xf9, 0x1c, 0xaa, 0x51, 0x37,
+ 0xb2, 0x11, 0xc5, 0x88, 0x73, 0x74, 0xcc, 0x28, 0x89, 0x80, 0x53, 0x56, 0x20, 0x57, 0xdd, 0xeb,
+ 0xd0, 0x00, 0xfb, 0x0f, 0x46, 0x91, 0xae, 0xec, 0x85, 0x78, 0x44, 0xa4, 0xef, 0x0e, 0x7d, 0xa5,
+ 0x5c, 0x9c, 0x3b, 0xc2, 0x3b, 0x09, 0xb8, 0x8e, 0x3b, 0x94, 0x26, 0x1f, 0xeb, 0x8e, 0xc0, 0x23,
0x22, 0x95, 0x0b, 0x30, 0xb2, 0x68, 0xdb, 0xd8, 0xb2, 0x38, 0x4a, 0x48, 0x4e, 0x46, 0x92, 0x30,
0x1b, 0x4a, 0xc0, 0x11, 0x64, 0x76, 0x48, 0xea, 0x63, 0x78, 0xa1, 0xdf, 0xec, 0x70, 0x2b, 0x3e,
0x3b, 0xfc, 0x59, 0x5c, 0x81, 0x8b, 0x07, 0x1e, 0xc2, 0xc7, 0x8d, 0xe2, 0xd8, 0x00, 0x2b, 0x90,
0x1b, 0x87, 0x56, 0x20, 0x6f, 0x56, 0xaa, 0x30, 0xc6, 0xdb, 0x2a, 0x56, 0x1b, 0xd7, 0xe0, 0xa2,
- 0xcc, 0x7e, 0xe4, 0xdf, 0x8f, 0x96, 0xd9, 0x52, 0xd6, 0x30, 0x83, 0xb2, 0x05, 0x05, 0xde, 0xb4,
- 0xee, 0x92, 0x41, 0x8f, 0x47, 0xec, 0xab, 0x61, 0x4e, 0x6a, 0x4a, 0x29, 0x43, 0xf8, 0xa9, 0x65,
- 0x38, 0x16, 0x5d, 0xad, 0xe2, 0xaa, 0xa5, 0x24, 0x56, 0xd9, 0x25, 0xb8, 0x21, 0xb2, 0x32, 0xc5,
- 0x91, 0x24, 0x42, 0xfb, 0x44, 0xa0, 0x1c, 0x89, 0xe0, 0x74, 0x04, 0x38, 0xdd, 0x0d, 0xee, 0x24,
- 0x99, 0x08, 0x4e, 0x46, 0x80, 0x93, 0x22, 0xf8, 0x33, 0x50, 0x08, 0xd6, 0x21, 0x11, 0x3d, 0x1a,
- 0x81, 0x1e, 0x8d, 0x40, 0x47, 0xf7, 0x9d, 0x8a, 0x40, 0xa7, 0x42, 0xe8, 0x6a, 0xcf, 0xbe, 0xc7,
- 0x23, 0xd0, 0xe3, 0x11, 0xe8, 0xe8, 0xbe, 0x95, 0x08, 0xb4, 0x22, 0xa2, 0x1f, 0x84, 0xb1, 0x50,
- 0xc9, 0x11, 0xe1, 0x23, 0x11, 0xf0, 0x91, 0xd0, 0xde, 0x1c, 0x2e, 0x35, 0x22, 0x7e, 0x2c, 0x02,
- 0x3f, 0x16, 0xd5, 0x7d, 0xb4, 0xf7, 0xc3, 0x11, 0xf0, 0xe1, 0xc8, 0xee, 0xa3, 0xf1, 0x72, 0x04,
- 0x5e, 0x16, 0xf1, 0x25, 0xc8, 0x8b, 0x55, 0x45, 0xc4, 0x66, 0x22, 0xb0, 0x99, 0x70, 0xdc, 0x03,
- 0x25, 0x25, 0x2e, 0xd3, 0xb3, 0x3d, 0x96, 0x4b, 0xa0, 0x8c, 0x1c, 0x49, 0xd9, 0x3c, 0x01, 0x93,
- 0x51, 0x45, 0x23, 0x82, 0xe3, 0x94, 0xc8, 0x51, 0x58, 0x98, 0x0c, 0x14, 0x0b, 0x82, 0x6b, 0x37,
- 0x45, 0xe6, 0xa7, 0x61, 0x22, 0xa2, 0x74, 0x44, 0x10, 0xdf, 0x23, 0x12, 0xe7, 0x16, 0xa6, 0x02,
- 0xc4, 0x81, 0xb3, 0x82, 0x28, 0xad, 0x7e, 0x3c, 0x01, 0x05, 0x56, 0xa2, 0x36, 0x9d, 0x1a, 0x72,
- 0x50, 0x4d, 0xf9, 0xff, 0xbd, 0x15, 0xd6, 0x42, 0x54, 0x69, 0x63, 0xb8, 0x23, 0x08, 0xad, 0xa7,
- 0x7b, 0x0a, 0xad, 0x7b, 0x07, 0xe9, 0x20, 0x4e, 0x6f, 0x55, 0xba, 0xf4, 0xd6, 0x9d, 0xfd, 0x68,
- 0x7b, 0xc9, 0xae, 0x4a, 0x97, 0xec, 0x8a, 0xa3, 0x89, 0x54, 0x5f, 0x97, 0xba, 0xd5, 0xd7, 0xa9,
- 0x7e, 0x3c, 0xbd, 0x45, 0xd8, 0xa5, 0x6e, 0x11, 0x16, 0xcb, 0x14, 0xad, 0xc5, 0x2e, 0x75, 0x6b,
- 0xb1, 0xbe, 0x4c, 0xbd, 0x25, 0xd9, 0xa5, 0x6e, 0x49, 0x16, 0xcb, 0x14, 0xad, 0xcc, 0x1e, 0x8d,
- 0x50, 0x66, 0xa7, 0xfb, 0x51, 0xf5, 0x13, 0x68, 0x1b, 0x51, 0x02, 0xed, 0xae, 0xbe, 0x8e, 0xf5,
- 0xd5, 0x69, 0x8f, 0x46, 0xe8, 0xb4, 0x78, 0xe7, 0x7a, 0xc8, 0xb5, 0x8d, 0x28, 0xb9, 0x36, 0x80,
- 0x73, 0xbd, 0x54, 0xdb, 0x62, 0x58, 0xb5, 0xcd, 0xf6, 0xe3, 0x8a, 0x16, 0x6f, 0x97, 0xba, 0xc5,
- 0xdb, 0xa9, 0xf8, 0xb5, 0x18, 0xa5, 0xe1, 0x9e, 0xee, 0xa9, 0xe1, 0x06, 0x5a, 0xdc, 0x71, 0x52,
- 0xee, 0xa9, 0x5e, 0x52, 0xee, 0x9e, 0x41, 0xd8, 0xfb, 0x2b, 0xba, 0xc7, 0x7b, 0x28, 0xba, 0xf9,
- 0x41, 0xa8, 0x3f, 0x11, 0x76, 0x9f, 0x08, 0xbb, 0x4f, 0x84, 0xdd, 0x27, 0xc2, 0xee, 0xff, 0x86,
- 0xb0, 0x2b, 0xa5, 0x5e, 0x7c, 0xf5, 0xb8, 0x74, 0xea, 0x24, 0x8c, 0xb0, 0xae, 0x95, 0x61, 0x48,
- 0xac, 0x97, 0xe5, 0x21, 0xf2, 0xef, 0xa2, 0x2c, 0x91, 0x7f, 0x97, 0xe4, 0xc4, 0xe2, 0xda, 0xeb,
- 0xd7, 0xa7, 0x87, 0xbe, 0x7f, 0x7d, 0x7a, 0xe8, 0x87, 0xd7, 0xa7, 0x87, 0xde, 0xbc, 0x3e, 0x2d,
- 0xbd, 0x7d, 0x7d, 0x5a, 0x7a, 0xf7, 0xfa, 0xb4, 0xf4, 0xfe, 0xf5, 0x69, 0xe9, 0xda, 0xe1, 0xb4,
- 0xf4, 0x95, 0xc3, 0x69, 0xe9, 0x6b, 0x87, 0xd3, 0xd2, 0xb7, 0x0e, 0xa7, 0xa5, 0xef, 0x1e, 0x4e,
- 0x4b, 0xaf, 0x1f, 0x4e, 0x0f, 0x7d, 0xff, 0x70, 0x5a, 0x7a, 0xf3, 0x70, 0x5a, 0x7a, 0xfb, 0x70,
- 0x7a, 0xe8, 0xdd, 0xc3, 0x69, 0xe9, 0xfd, 0xc3, 0xe9, 0xa1, 0x6b, 0x3f, 0x99, 0x1e, 0xfa, 0xdf,
- 0x00, 0x00, 0x00, 0xff, 0xff, 0x04, 0x5c, 0xe3, 0x45, 0x97, 0x49, 0x00, 0x00,
+ 0xcc, 0xfe, 0xf7, 0x40, 0x3f, 0x5a, 0x66, 0x4b, 0x59, 0xc3, 0x0c, 0xca, 0x16, 0x14, 0x78, 0xd3,
+ 0xba, 0x4b, 0x5e, 0x7a, 0x3c, 0x62, 0x5f, 0x0d, 0x73, 0x52, 0x53, 0x4a, 0x19, 0xc2, 0x4f, 0x2d,
+ 0xc3, 0xb1, 0xe8, 0x6a, 0x15, 0x57, 0x2d, 0x25, 0xb1, 0xca, 0x2e, 0xc1, 0x0d, 0x91, 0x95, 0x29,
+ 0x8e, 0x24, 0x11, 0xda, 0x27, 0x02, 0xe5, 0x48, 0x04, 0xa7, 0x23, 0xc0, 0xe9, 0x6e, 0x70, 0x27,
+ 0xc9, 0x44, 0x70, 0x32, 0x02, 0x9c, 0x14, 0xc1, 0x9f, 0x81, 0x42, 0xb0, 0x0e, 0x89, 0xe8, 0xd1,
+ 0x08, 0xf4, 0x68, 0x04, 0x3a, 0x7a, 0xec, 0x54, 0x04, 0x3a, 0x15, 0x42, 0x57, 0x7b, 0x8e, 0x3d,
+ 0x1e, 0x81, 0x1e, 0x8f, 0x40, 0x47, 0x8f, 0xad, 0x44, 0xa0, 0x15, 0x11, 0xfd, 0x20, 0x8c, 0x85,
+ 0x4a, 0x8e, 0x08, 0x1f, 0x89, 0x80, 0x8f, 0x84, 0xf6, 0xe6, 0x70, 0xa9, 0x11, 0xf1, 0x63, 0x11,
+ 0xf8, 0xb1, 0xa8, 0xe1, 0xa3, 0xbd, 0x1f, 0x8e, 0x80, 0x0f, 0x47, 0x0e, 0x1f, 0x8d, 0x97, 0x23,
+ 0xf0, 0xb2, 0x88, 0x2f, 0x41, 0x5e, 0xac, 0x2a, 0x22, 0x36, 0x13, 0x81, 0xcd, 0x84, 0xe3, 0x1e,
+ 0x28, 0x29, 0x71, 0x99, 0x9e, 0xed, 0xb1, 0x5c, 0x02, 0x65, 0xe4, 0x48, 0xca, 0xe6, 0x09, 0x98,
+ 0x8c, 0x2a, 0x1a, 0x11, 0x1c, 0xa7, 0x44, 0x8e, 0xc2, 0xc2, 0x64, 0xa0, 0x58, 0x10, 0x5c, 0xbb,
+ 0x29, 0x32, 0x3f, 0x0d, 0x13, 0x11, 0xa5, 0x23, 0x82, 0xf8, 0x1e, 0x91, 0x38, 0xb7, 0x30, 0x15,
+ 0x20, 0x0e, 0x9c, 0x15, 0x44, 0x69, 0xf5, 0xa3, 0x09, 0x28, 0xb0, 0x12, 0xb5, 0xe9, 0xd4, 0x90,
+ 0x83, 0x6a, 0xca, 0x4f, 0xf7, 0x56, 0x58, 0x0b, 0x51, 0xa5, 0x8d, 0xe1, 0x8e, 0x20, 0xb4, 0x9e,
+ 0xee, 0x29, 0xb4, 0xee, 0x1d, 0x64, 0x80, 0x38, 0xbd, 0x55, 0xe9, 0xd2, 0x5b, 0x77, 0xf6, 0xa3,
+ 0xed, 0x25, 0xbb, 0x2a, 0x5d, 0xb2, 0x2b, 0x8e, 0x26, 0x52, 0x7d, 0x5d, 0xea, 0x56, 0x5f, 0xa7,
+ 0xfa, 0xf1, 0xf4, 0x16, 0x61, 0x97, 0xba, 0x45, 0x58, 0x2c, 0x53, 0xb4, 0x16, 0xbb, 0xd4, 0xad,
+ 0xc5, 0xfa, 0x32, 0xf5, 0x96, 0x64, 0x97, 0xba, 0x25, 0x59, 0x2c, 0x53, 0xb4, 0x32, 0x7b, 0x34,
+ 0x42, 0x99, 0x9d, 0xee, 0x47, 0xd5, 0x4f, 0xa0, 0x6d, 0x44, 0x09, 0xb4, 0xbb, 0xfa, 0x3a, 0xd6,
+ 0x57, 0xa7, 0x3d, 0x1a, 0xa1, 0xd3, 0xe2, 0x9d, 0xeb, 0x21, 0xd7, 0x36, 0xa2, 0xe4, 0xda, 0x00,
+ 0xce, 0xf5, 0x52, 0x6d, 0x8b, 0x61, 0xd5, 0x36, 0xdb, 0x8f, 0x2b, 0x5a, 0xbc, 0x5d, 0xea, 0x16,
+ 0x6f, 0xa7, 0xe2, 0xd7, 0x62, 0x94, 0x86, 0x7b, 0xba, 0xa7, 0x86, 0x1b, 0x68, 0x71, 0xc7, 0x49,
+ 0xb9, 0xa7, 0x7a, 0x49, 0xb9, 0x7b, 0x06, 0x61, 0xef, 0xaf, 0xe8, 0x1e, 0xef, 0xa1, 0xe8, 0xe6,
+ 0x07, 0xa1, 0xfe, 0x44, 0xd8, 0x7d, 0x22, 0xec, 0x3e, 0x11, 0x76, 0x9f, 0x08, 0xbb, 0xff, 0x1f,
+ 0xc2, 0xae, 0x94, 0x7a, 0xf1, 0xd5, 0xe3, 0xd2, 0xa9, 0x93, 0x30, 0xc2, 0x86, 0x56, 0x86, 0x21,
+ 0xb1, 0x5e, 0x96, 0x87, 0xc8, 0xbf, 0x8b, 0xb2, 0x44, 0xfe, 0x5d, 0x92, 0x13, 0x8b, 0x6b, 0xaf,
+ 0x5f, 0x9f, 0x1e, 0xfa, 0xde, 0xf5, 0xe9, 0xa1, 0x1f, 0x5c, 0x9f, 0x1e, 0x7a, 0xf3, 0xfa, 0xb4,
+ 0xf4, 0xf6, 0xf5, 0x69, 0xe9, 0xdd, 0xeb, 0xd3, 0xd2, 0xfb, 0xd7, 0xa7, 0xa5, 0x6b, 0x87, 0xd3,
+ 0xd2, 0x57, 0x0e, 0xa7, 0xa5, 0xaf, 0x1d, 0x4e, 0x4b, 0xdf, 0x3c, 0x9c, 0x96, 0xbe, 0x73, 0x38,
+ 0x2d, 0xbd, 0x7e, 0x38, 0x3d, 0xf4, 0xbd, 0xc3, 0x69, 0xe9, 0xcd, 0xc3, 0x69, 0xe9, 0xed, 0xc3,
+ 0xe9, 0xa1, 0x77, 0x0f, 0xa7, 0xa5, 0xf7, 0x0f, 0xa7, 0x87, 0xae, 0xfd, 0x78, 0x7a, 0xe8, 0xff,
+ 0x02, 0x00, 0x00, 0xff, 0xff, 0x09, 0x79, 0x5f, 0xe9, 0xf0, 0x49, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -3657,7 +3741,7 @@ func (m *FloatingPoint) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3692,6 +3776,9 @@ func (m *FloatingPoint) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthMapsproto2
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3720,7 +3807,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3748,7 +3835,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3757,6 +3844,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3778,7 +3868,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3795,7 +3885,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3805,6 +3895,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -3821,7 +3914,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapbyteLen |= (uint64(b) & 0x7F) << shift
+ mapbyteLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3831,6 +3924,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postbytesIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3869,7 +3965,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3878,6 +3974,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3899,7 +3998,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3916,7 +4015,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3926,6 +4025,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -3942,7 +4044,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapbyteLen |= (uint64(b) & 0x7F) << shift
+ mapbyteLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3952,6 +4054,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postbytesIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3990,7 +4095,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3999,6 +4104,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4020,7 +4128,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4037,7 +4145,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4047,6 +4155,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -4063,7 +4174,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapbyteLen |= (uint64(b) & 0x7F) << shift
+ mapbyteLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4073,6 +4184,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postbytesIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4111,7 +4225,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4120,6 +4234,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4141,7 +4258,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4158,7 +4275,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4168,6 +4285,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -4184,7 +4304,7 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapbyteLen |= (uint64(b) & 0x7F) << shift
+ mapbyteLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4194,6 +4314,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postbytesIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4227,6 +4350,9 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthMapsproto2
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -4255,7 +4381,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4283,7 +4409,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4292,6 +4418,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4312,7 +4441,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4329,7 +4458,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4339,6 +4468,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -4383,7 +4515,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4392,6 +4524,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4412,7 +4547,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4429,7 +4564,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4439,6 +4574,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -4483,7 +4621,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4492,6 +4630,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4512,7 +4653,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4528,7 +4669,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4543,7 +4684,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (int32(b) & 0x7F) << shift
+ mapvalue |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4579,7 +4720,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4588,6 +4729,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4608,7 +4752,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4624,7 +4768,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int64(b) & 0x7F) << shift
+ mapkey |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4639,7 +4783,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (int64(b) & 0x7F) << shift
+ mapvalue |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4675,7 +4819,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4684,6 +4828,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4704,7 +4851,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4720,7 +4867,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (uint32(b) & 0x7F) << shift
+ mapkey |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4735,7 +4882,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint32(b) & 0x7F) << shift
+ mapvalue |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4771,7 +4918,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4780,6 +4927,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4800,7 +4950,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4816,7 +4966,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (uint64(b) & 0x7F) << shift
+ mapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4831,7 +4981,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint64(b) & 0x7F) << shift
+ mapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4867,7 +5017,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4876,6 +5026,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4896,7 +5049,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4913,7 +5066,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (int32(b) & 0x7F) << shift
+ mapkeytemp |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4931,7 +5084,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (int32(b) & 0x7F) << shift
+ mapvaluetemp |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4969,7 +5122,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4978,6 +5131,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4998,7 +5154,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5015,7 +5171,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (uint64(b) & 0x7F) << shift
+ mapkeytemp |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5033,7 +5189,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (uint64(b) & 0x7F) << shift
+ mapvaluetemp |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5071,7 +5227,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5080,6 +5236,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5100,7 +5259,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5149,7 +5308,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5158,6 +5317,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5178,7 +5340,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5227,7 +5389,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5236,6 +5398,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5256,7 +5421,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5305,7 +5470,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5314,6 +5479,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5334,7 +5502,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5383,7 +5551,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5392,6 +5560,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5412,7 +5583,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5429,7 +5600,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (int(b) & 0x7F) << shift
+ mapkeytemp |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5446,7 +5617,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (int(b) & 0x7F) << shift
+ mapvaluetemp |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5483,7 +5654,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5492,6 +5663,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5512,7 +5686,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5529,7 +5703,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5539,6 +5713,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -5555,7 +5732,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapvalue |= (uint64(b) & 0x7F) << shift
+ stringLenmapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5565,6 +5742,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapvalue := iNdEx + intStringLenmapvalue
+ if postStringIndexmapvalue < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapvalue > l {
return io.ErrUnexpectedEOF
}
@@ -5601,7 +5781,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5610,6 +5790,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5630,7 +5813,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5647,7 +5830,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5657,6 +5840,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -5673,7 +5859,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapbyteLen |= (uint64(b) & 0x7F) << shift
+ mapbyteLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5683,6 +5869,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postbytesIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5720,7 +5909,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5729,6 +5918,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5749,7 +5941,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5766,7 +5958,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5776,6 +5968,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -5791,7 +5986,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (MapEnum(b) & 0x7F) << shift
+ mapvalue |= MapEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5827,7 +6022,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5836,6 +6031,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5856,7 +6054,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5873,7 +6071,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5883,6 +6081,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -5899,7 +6100,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5908,7 +6109,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthMapsproto2
}
if postmsgIndex > l {
@@ -5945,6 +6146,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthMapsproto2
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -5973,7 +6177,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6001,7 +6205,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6010,6 +6214,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6030,7 +6237,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6047,7 +6254,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6057,6 +6264,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -6101,7 +6311,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6110,6 +6320,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6130,7 +6343,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6147,7 +6360,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6157,6 +6370,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -6201,7 +6417,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6210,6 +6426,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6230,7 +6449,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6246,7 +6465,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6261,7 +6480,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (int32(b) & 0x7F) << shift
+ mapvalue |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6297,7 +6516,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6306,6 +6525,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6326,7 +6548,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6342,7 +6564,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int64(b) & 0x7F) << shift
+ mapkey |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6357,7 +6579,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (int64(b) & 0x7F) << shift
+ mapvalue |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6393,7 +6615,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6402,6 +6624,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6422,7 +6647,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6438,7 +6663,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (uint32(b) & 0x7F) << shift
+ mapkey |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6453,7 +6678,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint32(b) & 0x7F) << shift
+ mapvalue |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6489,7 +6714,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6498,6 +6723,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6518,7 +6746,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6534,7 +6762,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (uint64(b) & 0x7F) << shift
+ mapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6549,7 +6777,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint64(b) & 0x7F) << shift
+ mapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6585,7 +6813,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6594,6 +6822,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6614,7 +6845,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6631,7 +6862,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (int32(b) & 0x7F) << shift
+ mapkeytemp |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6649,7 +6880,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (int32(b) & 0x7F) << shift
+ mapvaluetemp |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6687,7 +6918,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6696,6 +6927,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6716,7 +6950,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6733,7 +6967,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (uint64(b) & 0x7F) << shift
+ mapkeytemp |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6751,7 +6985,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (uint64(b) & 0x7F) << shift
+ mapvaluetemp |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6789,7 +7023,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6798,6 +7032,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6818,7 +7055,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6867,7 +7104,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6876,6 +7113,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6896,7 +7136,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6945,7 +7185,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6954,6 +7194,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6974,7 +7217,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7023,7 +7266,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7032,6 +7275,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7052,7 +7298,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7101,7 +7347,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7110,6 +7356,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7130,7 +7379,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7147,7 +7396,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (int(b) & 0x7F) << shift
+ mapkeytemp |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7164,7 +7413,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (int(b) & 0x7F) << shift
+ mapvaluetemp |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7201,7 +7450,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7210,6 +7459,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7230,7 +7482,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7247,7 +7499,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7257,6 +7509,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -7273,7 +7528,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapvalue |= (uint64(b) & 0x7F) << shift
+ stringLenmapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7283,6 +7538,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapvalue := iNdEx + intStringLenmapvalue
+ if postStringIndexmapvalue < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapvalue > l {
return io.ErrUnexpectedEOF
}
@@ -7319,7 +7577,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7328,6 +7586,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7348,7 +7609,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7365,7 +7626,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7375,6 +7636,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -7391,7 +7655,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapbyteLen |= (uint64(b) & 0x7F) << shift
+ mapbyteLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7401,6 +7665,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postbytesIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7438,7 +7705,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7447,6 +7714,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7467,7 +7737,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7484,7 +7754,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7494,6 +7764,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -7509,7 +7782,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (MapEnum(b) & 0x7F) << shift
+ mapvalue |= MapEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7545,7 +7818,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7554,6 +7827,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7574,7 +7850,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7591,7 +7867,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7601,6 +7877,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -7617,7 +7896,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7626,7 +7905,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthMapsproto2
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthMapsproto2
}
if postmsgIndex > l {
@@ -7663,6 +7942,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthMapsproto2
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthMapsproto2
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -7730,10 +8012,13 @@ func skipMapsproto2(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthMapsproto2
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthMapsproto2
+ }
return iNdEx, nil
case 3:
for {
@@ -7762,6 +8047,9 @@ func skipMapsproto2(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthMapsproto2
+ }
}
return iNdEx, nil
case 4:
@@ -7780,83 +8068,3 @@ var (
ErrInvalidLengthMapsproto2 = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowMapsproto2 = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("combos/unmarshaler/mapsproto2.proto", fileDescriptor_mapsproto2_4a77fadeb5c37480)
-}
-
-var fileDescriptor_mapsproto2_4a77fadeb5c37480 = []byte{
- // 1150 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x97, 0xcd, 0x6f, 0x1a, 0x47,
- 0x18, 0xc6, 0x19, 0xb0, 0x0d, 0x0c, 0xdf, 0x93, 0xb4, 0x42, 0x48, 0x1d, 0x1c, 0xd2, 0x0f, 0x42,
- 0x52, 0xb0, 0x69, 0x14, 0x59, 0x4e, 0x9b, 0xca, 0xd8, 0x4e, 0xb1, 0x52, 0xdc, 0x08, 0x9a, 0x7e,
- 0x49, 0x96, 0x0a, 0x66, 0x21, 0xa8, 0xc0, 0x52, 0x76, 0x37, 0xaa, 0x2f, 0x55, 0xfe, 0x8c, 0x5e,
- 0x7b, 0xeb, 0xb1, 0xc7, 0x1e, 0x7b, 0xb4, 0xd4, 0x4b, 0x8e, 0x51, 0x54, 0x59, 0x61, 0x7b, 0xc9,
- 0x31, 0xc7, 0x1c, 0xab, 0x9d, 0xdd, 0x85, 0xd9, 0xdd, 0x77, 0x77, 0xa1, 0xa7, 0x1e, 0x7c, 0xc2,
- 0xb3, 0xbc, 0xcf, 0xef, 0x79, 0x77, 0x77, 0xe6, 0xe5, 0x31, 0xbe, 0x7e, 0x2a, 0x8e, 0x3a, 0xa2,
- 0x54, 0x51, 0xc6, 0xa3, 0xf6, 0x54, 0x7a, 0xdc, 0x1e, 0x0a, 0xd3, 0xca, 0xa8, 0x3d, 0x91, 0x26,
- 0x53, 0x51, 0x16, 0xab, 0x65, 0xf6, 0x41, 0x62, 0xc6, 0x4a, 0xfb, 0x22, 0xf7, 0x61, 0x7f, 0x20,
- 0x3f, 0x56, 0x3a, 0xe5, 0x53, 0x71, 0x54, 0xe9, 0x8b, 0x7d, 0xb1, 0xc2, 0xbe, 0xec, 0x28, 0x3d,
- 0xb6, 0x62, 0x0b, 0xf6, 0x97, 0xae, 0x2d, 0xbc, 0x83, 0x13, 0xf7, 0x87, 0x62, 0x5b, 0x1e, 0x8c,
- 0xfb, 0x0f, 0xc5, 0xc1, 0x58, 0x26, 0x71, 0x8c, 0x7a, 0x59, 0xb4, 0x89, 0x8a, 0xa8, 0x89, 0x7a,
- 0x85, 0xbf, 0xd6, 0x71, 0x74, 0x5f, 0x91, 0x64, 0x71, 0xd4, 0x68, 0x4f, 0xc8, 0xcf, 0x38, 0x7e,
- 0xac, 0x0c, 0x87, 0xed, 0xce, 0x50, 0xd8, 0xae, 0xee, 0x48, 0x59, 0xb4, 0x19, 0x2a, 0xc6, 0xaa,
- 0xc5, 0x32, 0xe7, 0x5f, 0x9e, 0x57, 0x97, 0xf9, 0xd2, 0xc3, 0xb1, 0x3c, 0x3d, 0xab, 0x6d, 0xbd,
- 0xb8, 0xc8, 0xdf, 0x72, 0xed, 0x4f, 0x16, 0x24, 0xb9, 0x72, 0xca, 0xe4, 0xe5, 0x47, 0x83, 0xb1,
- 0xbc, 0x5d, 0xdd, 0x69, 0x5a, 0xfc, 0xc8, 0x13, 0x1c, 0x31, 0xbe, 0x90, 0xb2, 0x41, 0xe6, 0xfd,
- 0xae, 0x8b, 0xb7, 0x59, 0xa6, 0xfb, 0xde, 0x3e, 0xbf, 0xc8, 0x07, 0x56, 0xf6, 0x9e, 0x7b, 0x91,
- 0x1f, 0x71, 0xcc, 0xec, 0xe3, 0xa8, 0x2b, 0x65, 0x43, 0xcc, 0xfa, 0x03, 0x9f, 0xdb, 0x3e, 0xea,
- 0x1a, 0xee, 0xef, 0xbf, 0xb8, 0xc8, 0x17, 0x3c, 0x9d, 0xcb, 0x8f, 0x94, 0x41, 0xb7, 0xc9, 0x7b,
- 0x90, 0x13, 0x1c, 0xd2, 0xac, 0xd6, 0x98, 0x55, 0xde, 0xc5, 0x6a, 0x6e, 0x51, 0x32, 0x6e, 0x70,
- 0x19, 0x1b, 0x8d, 0x9b, 0xfb, 0x14, 0x67, 0x1c, 0xaf, 0x87, 0xa4, 0x71, 0xe8, 0x07, 0xe1, 0x8c,
- 0xbd, 0xfc, 0x68, 0x53, 0xfb, 0x93, 0x5c, 0xc5, 0xeb, 0x4f, 0xda, 0x43, 0x45, 0xc8, 0x06, 0x37,
- 0x51, 0x31, 0xde, 0xd4, 0x17, 0xbb, 0xc1, 0x1d, 0x94, 0xbb, 0x8b, 0x13, 0x96, 0x67, 0xbc, 0x92,
- 0xf8, 0x1e, 0x4e, 0xdb, 0x9f, 0xd2, 0x4a, 0xfa, 0x3b, 0x38, 0xf2, 0x5f, 0x74, 0x85, 0xe7, 0x04,
- 0x87, 0xf7, 0x86, 0xc3, 0x46, 0x7b, 0x22, 0x91, 0x6f, 0x71, 0xa6, 0x25, 0x4f, 0x07, 0xe3, 0xfe,
- 0x97, 0xe2, 0x81, 0xa8, 0x74, 0x86, 0x42, 0xa3, 0x3d, 0x31, 0x36, 0xf4, 0x4d, 0xcb, 0xe3, 0x36,
- 0x04, 0x65, 0x47, 0x35, 0xf3, 0x6f, 0x3a, 0x29, 0xe4, 0x2b, 0x9c, 0x36, 0x2f, 0xb2, 0xb3, 0xa5,
- 0x91, 0xf5, 0xed, 0x5a, 0xf2, 0x24, 0x9b, 0xc5, 0x3a, 0xd8, 0xc1, 0x20, 0xf7, 0x70, 0xe4, 0x68,
- 0x2c, 0x7f, 0x54, 0xd5, 0x78, 0xfa, 0x1e, 0x2c, 0x80, 0x3c, 0xb3, 0x48, 0xe7, 0xcc, 0x35, 0x86,
- 0xfe, 0xce, 0x6d, 0x4d, 0xbf, 0xe6, 0xad, 0x67, 0x45, 0x0b, 0x3d, 0x5b, 0x92, 0x3d, 0x1c, 0xd5,
- 0xde, 0xb9, 0xde, 0xc0, 0x3a, 0x03, 0x5c, 0x07, 0x01, 0xf3, 0x2a, 0x9d, 0xb0, 0x50, 0x99, 0x08,
- 0xbd, 0x87, 0x0d, 0x1f, 0x04, 0xd7, 0xc4, 0x42, 0xa5, 0x21, 0x5a, 0xf3, 0x2e, 0xc2, 0x1e, 0x88,
- 0x96, 0xad, 0x8b, 0x16, 0xdf, 0x45, 0x6b, 0xde, 0x45, 0xc4, 0x07, 0xc1, 0x77, 0x31, 0x5f, 0x93,
- 0x03, 0x8c, 0xef, 0x0f, 0x7e, 0x12, 0xba, 0x7a, 0x1b, 0x51, 0x60, 0x18, 0x99, 0x8c, 0x45, 0x99,
- 0x0e, 0xe1, 0x74, 0xe4, 0x33, 0x1c, 0x6b, 0xf5, 0x16, 0x18, 0xcc, 0x30, 0xef, 0xc1, 0xad, 0xf4,
- 0x6c, 0x1c, 0x5e, 0x39, 0x6f, 0x47, 0xbf, 0xa5, 0x98, 0x5f, 0x3b, 0xdc, 0x3d, 0x71, 0xba, 0x45,
- 0x3b, 0x3a, 0x26, 0xee, 0xdb, 0x0e, 0xc7, 0xe1, 0x95, 0xe4, 0x2e, 0x0e, 0xd7, 0x44, 0x51, 0xab,
- 0xcc, 0x26, 0x18, 0xe4, 0x1a, 0x08, 0x31, 0x6a, 0x74, 0x80, 0xa9, 0x60, 0x6f, 0x87, 0x6d, 0x7d,
- 0x4d, 0x9e, 0xf4, 0x7a, 0x3b, 0x66, 0x95, 0xf9, 0x76, 0xcc, 0x35, 0x7f, 0x02, 0x6b, 0x67, 0xb2,
- 0x20, 0x69, 0xa4, 0xd4, 0x12, 0x27, 0xd0, 0x2c, 0xb6, 0x9d, 0x40, 0xf3, 0x32, 0x69, 0xe1, 0x94,
- 0x79, 0xed, 0x70, 0xac, 0x68, 0x33, 0x38, 0x9b, 0x66, 0xd8, 0x1b, 0x9e, 0x58, 0xa3, 0x56, 0xa7,
- 0xda, 0x09, 0xe4, 0x21, 0x4e, 0x9a, 0x97, 0x1a, 0x12, 0xbb, 0xe9, 0x0c, 0xf0, 0xbb, 0x6a, 0x67,
- 0xea, 0xa5, 0x3a, 0xd2, 0xa6, 0xcf, 0x1d, 0xe0, 0xb7, 0xe1, 0x69, 0xe5, 0x37, 0x2d, 0x11, 0x3f,
- 0x65, 0xf7, 0xf1, 0x5b, 0xe0, 0x64, 0xf2, 0x83, 0x04, 0x6d, 0xbf, 0x13, 0x96, 0x71, 0xc4, 0x8b,
- 0xd7, 0x01, 0xf1, 0xba, 0x53, 0xbc, 0xd8, 0x64, 0xbc, 0x38, 0x04, 0x88, 0x43, 0xbc, 0xf8, 0x63,
- 0x9c, 0xb4, 0xce, 0x21, 0x5e, 0x9d, 0x00, 0xd4, 0x09, 0x40, 0x0d, 0x7b, 0xaf, 0x01, 0xea, 0x35,
- 0x9b, 0xba, 0xe5, 0xea, 0x9d, 0x01, 0xd4, 0x19, 0x40, 0x0d, 0x7b, 0x13, 0x40, 0x4d, 0x78, 0xf5,
- 0x27, 0x38, 0x65, 0x1b, 0x39, 0xbc, 0x3c, 0x0c, 0xc8, 0xc3, 0xb6, 0xdf, 0x66, 0xfb, 0xa8, 0xe1,
- 0xf5, 0x29, 0x40, 0x9f, 0x82, 0xec, 0xe1, 0xee, 0x37, 0x00, 0xf9, 0x06, 0x68, 0x0f, 0xeb, 0xd3,
- 0x80, 0x3e, 0xcd, 0xeb, 0x77, 0x71, 0x9c, 0x9f, 0x2a, 0xbc, 0x36, 0x02, 0x68, 0x23, 0xf6, 0xe7,
- 0x6e, 0x19, 0x29, 0x7e, 0x3b, 0x3d, 0xea, 0x72, 0x5c, 0x2c, 0x63, 0x64, 0xa5, 0x64, 0xf3, 0x0d,
- 0xbe, 0x0a, 0x0d, 0x0d, 0x80, 0x51, 0xe2, 0x19, 0xc9, 0xea, 0x55, 0xcb, 0xb0, 0x60, 0x3a, 0x65,
- 0xc4, 0x93, 0x4f, 0xf0, 0x15, 0x60, 0x74, 0x00, 0xe0, 0x2d, 0x1e, 0x1c, 0xab, 0xe6, 0x2c, 0x60,
- 0xcb, 0xff, 0x0a, 0x7c, 0xb4, 0xfa, 0xfb, 0x0a, 0x4e, 0x1a, 0x23, 0xea, 0x8b, 0x69, 0x57, 0x98,
- 0x0a, 0x5d, 0xf2, 0xbd, 0x7b, 0xc2, 0xaa, 0x42, 0xa3, 0xcd, 0xd0, 0xad, 0x10, 0xb4, 0x4e, 0x5c,
- 0x83, 0xd6, 0xf6, 0x32, 0x06, 0x7e, 0x79, 0xeb, 0xd0, 0x91, 0xb7, 0x6e, 0x78, 0x61, 0xdd, 0x62,
- 0xd7, 0xa1, 0x23, 0x76, 0xf9, 0x61, 0xc0, 0xf4, 0x55, 0x77, 0xa6, 0xaf, 0x92, 0x17, 0xc7, 0x3d,
- 0x84, 0xd5, 0x9d, 0x21, 0xcc, 0x97, 0x04, 0x67, 0xb1, 0xba, 0x33, 0x8b, 0x79, 0x92, 0xdc, 0x23,
- 0x59, 0xdd, 0x19, 0xc9, 0x7c, 0x49, 0x70, 0x32, 0x7b, 0x00, 0x24, 0xb3, 0x9b, 0x5e, 0x28, 0xaf,
- 0x80, 0x76, 0x0c, 0x05, 0xb4, 0x5b, 0x9e, 0x8d, 0x79, 0xe6, 0xb4, 0x07, 0x40, 0x4e, 0xf3, 0x6f,
- 0xce, 0x25, 0xae, 0x1d, 0x43, 0x71, 0x6d, 0x89, 0xe6, 0xdc, 0x52, 0x5b, 0xcd, 0x9e, 0xda, 0x8a,
- 0x5e, 0x2c, 0x38, 0xbc, 0xd5, 0x9d, 0xe1, 0xad, 0xe4, 0x7f, 0x16, 0xa1, 0x0c, 0x77, 0xe2, 0x9a,
- 0xe1, 0x96, 0x3a, 0xdc, 0x7e, 0x51, 0xee, 0x3b, 0xb7, 0x28, 0xb7, 0xb5, 0x0c, 0xdd, 0x3b, 0xd1,
- 0x7d, 0xed, 0x92, 0xe8, 0x2a, 0xcb, 0xa0, 0x2f, 0x83, 0xdd, 0x65, 0xb0, 0xbb, 0x0c, 0x76, 0x97,
- 0xc1, 0xee, 0xff, 0x11, 0xec, 0x76, 0xd7, 0x7e, 0xf9, 0x35, 0x8f, 0x4a, 0xd7, 0x70, 0xd8, 0xb0,
- 0x26, 0x1b, 0x38, 0xd8, 0xd8, 0x4b, 0x07, 0xd8, 0x67, 0x2d, 0x8d, 0xd8, 0xe7, 0x7e, 0x3a, 0x58,
- 0xfb, 0xfc, 0x7c, 0x46, 0x03, 0xcf, 0x66, 0x34, 0xf0, 0x7c, 0x46, 0x03, 0x2f, 0x67, 0x14, 0xbd,
- 0x9a, 0x51, 0xf4, 0x7a, 0x46, 0xd1, 0x9b, 0x19, 0x45, 0x4f, 0x55, 0x8a, 0x7e, 0x53, 0x29, 0xfa,
- 0x5d, 0xa5, 0xe8, 0x0f, 0x95, 0xa2, 0x3f, 0x55, 0x8a, 0xce, 0x55, 0x1a, 0x78, 0xa6, 0x52, 0xf4,
- 0x52, 0xa5, 0xe8, 0x95, 0x4a, 0x03, 0xaf, 0x55, 0x8a, 0xde, 0xa8, 0x34, 0xf0, 0xf4, 0x1f, 0x1a,
- 0xf8, 0x37, 0x00, 0x00, 0xff, 0xff, 0x1b, 0xc4, 0xd5, 0x8e, 0xf9, 0x16, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/merge/merge.pb.go b/vendor/github.com/gogo/protobuf/test/merge/merge.pb.go
index cfd3a098e6..789f72a0c3 100644
--- a/vendor/github.com/gogo/protobuf/test/merge/merge.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/merge/merge.pb.go
@@ -3,10 +3,12 @@
package merge
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -30,7 +32,7 @@ func (m *A) Reset() { *m = A{} }
func (m *A) String() string { return proto.CompactTextString(m) }
func (*A) ProtoMessage() {}
func (*A) Descriptor() ([]byte, []int) {
- return fileDescriptor_merge_7440dca413742023, []int{0}
+ return fileDescriptor_82caea6f5430298b, []int{0}
}
func (m *A) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_A.Unmarshal(m, b)
@@ -38,8 +40,8 @@ func (m *A) XXX_Unmarshal(b []byte) error {
func (m *A) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_A.Marshal(b, m, deterministic)
}
-func (dst *A) XXX_Merge(src proto.Message) {
- xxx_messageInfo_A.Merge(dst, src)
+func (m *A) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_A.Merge(m, src)
}
func (m *A) XXX_Size() int {
return xxx_messageInfo_A.Size(m)
@@ -68,7 +70,7 @@ func (m *B) Reset() { *m = B{} }
func (m *B) String() string { return proto.CompactTextString(m) }
func (*B) ProtoMessage() {}
func (*B) Descriptor() ([]byte, []int) {
- return fileDescriptor_merge_7440dca413742023, []int{1}
+ return fileDescriptor_82caea6f5430298b, []int{1}
}
func (m *B) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_B.Unmarshal(m, b)
@@ -76,8 +78,8 @@ func (m *B) XXX_Unmarshal(b []byte) error {
func (m *B) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_B.Marshal(b, m, deterministic)
}
-func (dst *B) XXX_Merge(src proto.Message) {
- xxx_messageInfo_B.Merge(dst, src)
+func (m *B) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_B.Merge(m, src)
}
func (m *B) XXX_Size() int {
return xxx_messageInfo_B.Size(m)
@@ -100,9 +102,9 @@ func init() {
proto.RegisterType((*B)(nil), "merge.B")
}
-func init() { proto.RegisterFile("merge.proto", fileDescriptor_merge_7440dca413742023) }
+func init() { proto.RegisterFile("merge.proto", fileDescriptor_82caea6f5430298b) }
-var fileDescriptor_merge_7440dca413742023 = []byte{
+var fileDescriptor_82caea6f5430298b = []byte{
// 123 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xce, 0x4d, 0x2d, 0x4a,
0x4f, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x05, 0x73, 0xa4, 0x74, 0xd3, 0x33, 0x4b,
diff --git a/vendor/github.com/gogo/protobuf/test/moredefaults/md.pb.go b/vendor/github.com/gogo/protobuf/test/moredefaults/md.pb.go
index 2abe65cb77..7f02b2e976 100644
--- a/vendor/github.com/gogo/protobuf/test/moredefaults/md.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/moredefaults/md.pb.go
@@ -3,13 +3,14 @@
package moredefaults
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import example "github.com/gogo/protobuf/test/example"
-
-import bytes "bytes"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ example "github.com/gogo/protobuf/test/example"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -33,7 +34,7 @@ func (m *MoreDefaultsB) Reset() { *m = MoreDefaultsB{} }
func (m *MoreDefaultsB) String() string { return proto.CompactTextString(m) }
func (*MoreDefaultsB) ProtoMessage() {}
func (*MoreDefaultsB) Descriptor() ([]byte, []int) {
- return fileDescriptor_md_dba3fb70ca5eb304, []int{0}
+ return fileDescriptor_e0e149d9fdc447d0, []int{0}
}
func (m *MoreDefaultsB) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MoreDefaultsB.Unmarshal(m, b)
@@ -41,8 +42,8 @@ func (m *MoreDefaultsB) XXX_Unmarshal(b []byte) error {
func (m *MoreDefaultsB) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MoreDefaultsB.Marshal(b, m, deterministic)
}
-func (dst *MoreDefaultsB) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MoreDefaultsB.Merge(dst, src)
+func (m *MoreDefaultsB) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MoreDefaultsB.Merge(m, src)
}
func (m *MoreDefaultsB) XXX_Size() int {
return xxx_messageInfo_MoreDefaultsB.Size(m)
@@ -76,7 +77,7 @@ func (m *MoreDefaultsA) Reset() { *m = MoreDefaultsA{} }
func (m *MoreDefaultsA) String() string { return proto.CompactTextString(m) }
func (*MoreDefaultsA) ProtoMessage() {}
func (*MoreDefaultsA) Descriptor() ([]byte, []int) {
- return fileDescriptor_md_dba3fb70ca5eb304, []int{1}
+ return fileDescriptor_e0e149d9fdc447d0, []int{1}
}
func (m *MoreDefaultsA) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MoreDefaultsA.Unmarshal(m, b)
@@ -84,8 +85,8 @@ func (m *MoreDefaultsA) XXX_Unmarshal(b []byte) error {
func (m *MoreDefaultsA) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MoreDefaultsA.Marshal(b, m, deterministic)
}
-func (dst *MoreDefaultsA) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MoreDefaultsA.Merge(dst, src)
+func (m *MoreDefaultsA) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MoreDefaultsA.Merge(m, src)
}
func (m *MoreDefaultsA) XXX_Size() int {
return xxx_messageInfo_MoreDefaultsA.Size(m)
@@ -144,6 +145,30 @@ func init() {
proto.RegisterType((*MoreDefaultsB)(nil), "moredefaults.MoreDefaultsB")
proto.RegisterType((*MoreDefaultsA)(nil), "moredefaults.MoreDefaultsA")
}
+
+func init() { proto.RegisterFile("md.proto", fileDescriptor_e0e149d9fdc447d0) }
+
+var fileDescriptor_e0e149d9fdc447d0 = []byte{
+ // 258 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xc8, 0x4d, 0xd1, 0x2b,
+ 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xc9, 0xcd, 0x2f, 0x4a, 0x4d, 0x49, 0x4d, 0x4b, 0x2c, 0xcd,
+ 0x29, 0x29, 0x96, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f,
+ 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0x2b, 0x4a, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2,
+ 0x59, 0xca, 0x18, 0xa7, 0xf2, 0x92, 0xd4, 0xe2, 0x12, 0xfd, 0xd4, 0x8a, 0xc4, 0xdc, 0x82, 0x9c,
+ 0x54, 0x18, 0x0d, 0xd1, 0xa4, 0xa4, 0xce, 0xc5, 0xeb, 0x9b, 0x5f, 0x94, 0xea, 0x02, 0xb5, 0xd3,
+ 0x49, 0x48, 0x8c, 0x8b, 0xcd, 0x2d, 0x33, 0x35, 0x27, 0xc5, 0x50, 0x82, 0x51, 0x81, 0x51, 0x83,
+ 0x33, 0x08, 0xca, 0x53, 0x7a, 0xcc, 0x88, 0xaa, 0xd2, 0x51, 0x48, 0x06, 0x45, 0x25, 0xb3, 0x15,
+ 0x8b, 0xa1, 0x91, 0xb1, 0x09, 0x4c, 0x3d, 0x5c, 0xd6, 0x48, 0x82, 0x09, 0x24, 0xeb, 0xc4, 0x72,
+ 0xe2, 0x9e, 0x3c, 0x03, 0x54, 0xd6, 0x48, 0x48, 0x9b, 0x8b, 0xc9, 0xc9, 0x50, 0x82, 0x59, 0x81,
+ 0x51, 0x83, 0xdb, 0x48, 0x5a, 0x0f, 0xd9, 0xd7, 0x7a, 0x28, 0xce, 0x09, 0x62, 0x72, 0x32, 0x14,
+ 0x32, 0xe4, 0x62, 0x72, 0x32, 0x92, 0x60, 0x21, 0xa8, 0x18, 0x6a, 0x07, 0x93, 0x93, 0x91, 0x90,
+ 0x38, 0x17, 0x93, 0xa3, 0xa1, 0x04, 0x2b, 0x58, 0x0b, 0xbb, 0x1e, 0xc8, 0xff, 0x7a, 0x8e, 0x41,
+ 0x4c, 0x8e, 0x86, 0x42, 0xb2, 0x5c, 0x4c, 0x8e, 0x46, 0x12, 0x6c, 0x28, 0x12, 0x30, 0x7d, 0x8e,
+ 0x46, 0x4e, 0x02, 0x27, 0x1e, 0xca, 0x31, 0xfe, 0x78, 0x28, 0xc7, 0xb8, 0xe2, 0x91, 0x1c, 0xe3,
+ 0x8e, 0x47, 0x72, 0x8c, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf2, 0xf0, 0x3f, 0xeb, 0x9d, 0x01,
+ 0x00, 0x00,
+}
+
func (this *MoreDefaultsB) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -338,26 +363,3 @@ func encodeVarintPopulateMd(dAtA []byte, v uint64) []byte {
dAtA = append(dAtA, uint8(v))
return dAtA
}
-
-func init() { proto.RegisterFile("md.proto", fileDescriptor_md_dba3fb70ca5eb304) }
-
-var fileDescriptor_md_dba3fb70ca5eb304 = []byte{
- // 258 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xc8, 0x4d, 0xd1, 0x2b,
- 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xc9, 0xcd, 0x2f, 0x4a, 0x4d, 0x49, 0x4d, 0x4b, 0x2c, 0xcd,
- 0x29, 0x29, 0x96, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f,
- 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0x2b, 0x4a, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2,
- 0x59, 0xca, 0x18, 0xa7, 0xf2, 0x92, 0xd4, 0xe2, 0x12, 0xfd, 0xd4, 0x8a, 0xc4, 0xdc, 0x82, 0x9c,
- 0x54, 0x18, 0x0d, 0xd1, 0xa4, 0xa4, 0xce, 0xc5, 0xeb, 0x9b, 0x5f, 0x94, 0xea, 0x02, 0xb5, 0xd3,
- 0x49, 0x48, 0x8c, 0x8b, 0xcd, 0x2d, 0x33, 0x35, 0x27, 0xc5, 0x50, 0x82, 0x51, 0x81, 0x51, 0x83,
- 0x33, 0x08, 0xca, 0x53, 0x7a, 0xcc, 0x88, 0xaa, 0xd2, 0x51, 0x48, 0x06, 0x45, 0x25, 0xb3, 0x15,
- 0x8b, 0xa1, 0x91, 0xb1, 0x09, 0x4c, 0x3d, 0x5c, 0xd6, 0x48, 0x82, 0x09, 0x24, 0xeb, 0xc4, 0x72,
- 0xe2, 0x9e, 0x3c, 0x03, 0x54, 0xd6, 0x48, 0x48, 0x9b, 0x8b, 0xc9, 0xc9, 0x50, 0x82, 0x59, 0x81,
- 0x51, 0x83, 0xdb, 0x48, 0x5a, 0x0f, 0xd9, 0xd7, 0x7a, 0x28, 0xce, 0x09, 0x62, 0x72, 0x32, 0x14,
- 0x32, 0xe4, 0x62, 0x72, 0x32, 0x92, 0x60, 0x21, 0xa8, 0x18, 0x6a, 0x07, 0x93, 0x93, 0x91, 0x90,
- 0x38, 0x17, 0x93, 0xa3, 0xa1, 0x04, 0x2b, 0x58, 0x0b, 0xbb, 0x1e, 0xc8, 0xff, 0x7a, 0x8e, 0x41,
- 0x4c, 0x8e, 0x86, 0x42, 0xb2, 0x5c, 0x4c, 0x8e, 0x46, 0x12, 0x6c, 0x28, 0x12, 0x30, 0x7d, 0x8e,
- 0x46, 0x4e, 0x02, 0x27, 0x1e, 0xca, 0x31, 0xfe, 0x78, 0x28, 0xc7, 0xb8, 0xe2, 0x91, 0x1c, 0xe3,
- 0x8e, 0x47, 0x72, 0x8c, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf2, 0xf0, 0x3f, 0xeb, 0x9d, 0x01,
- 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/nopackage/nopackage.pb.go b/vendor/github.com/gogo/protobuf/test/nopackage/nopackage.pb.go
index 0e583b795c..afac3097f3 100644
--- a/vendor/github.com/gogo/protobuf/test/nopackage/nopackage.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/nopackage/nopackage.pb.go
@@ -3,13 +3,13 @@
package nopackage
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import encoding_binary "encoding/binary"
-
-import io "io"
+import (
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -33,7 +33,7 @@ func (m *M) Reset() { *m = M{} }
func (m *M) String() string { return proto.CompactTextString(m) }
func (*M) ProtoMessage() {}
func (*M) Descriptor() ([]byte, []int) {
- return fileDescriptor_nopackage_085d7f4350f51d1d, []int{0}
+ return fileDescriptor_b1b32965c0afa91f, []int{0}
}
func (m *M) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -50,8 +50,8 @@ func (m *M) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *M) XXX_Merge(src proto.Message) {
- xxx_messageInfo_M.Merge(dst, src)
+func (m *M) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_M.Merge(m, src)
}
func (m *M) XXX_Size() int {
return m.Size()
@@ -73,6 +73,22 @@ func init() {
proto.RegisterType((*M)(nil), "M")
proto.RegisterMapType((map[string]float64)(nil), "M.FEntry")
}
+
+func init() { proto.RegisterFile("nopackage.proto", fileDescriptor_b1b32965c0afa91f) }
+
+var fileDescriptor_b1b32965c0afa91f = []byte{
+ // 134 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcf, 0xcb, 0x2f, 0x48,
+ 0x4c, 0xce, 0x4e, 0x4c, 0x4f, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x57, 0x0a, 0xe2, 0x62, 0xf4,
+ 0x15, 0x12, 0xe7, 0x62, 0x4c, 0x93, 0x60, 0x54, 0x60, 0xd6, 0xe0, 0x36, 0xe2, 0xd4, 0xf3, 0xd5,
+ 0x73, 0x73, 0xcd, 0x2b, 0x29, 0xaa, 0x0c, 0x62, 0x4c, 0x93, 0x32, 0xe1, 0x62, 0x83, 0x70, 0x84,
+ 0x04, 0xb8, 0x98, 0xb3, 0x53, 0x2b, 0x25, 0x18, 0x15, 0x18, 0x35, 0x38, 0x83, 0x40, 0x4c, 0x21,
+ 0x11, 0x2e, 0xd6, 0xb2, 0xc4, 0x9c, 0xd2, 0x54, 0x09, 0x26, 0x05, 0x46, 0x0d, 0xc6, 0x20, 0x08,
+ 0xc7, 0x8a, 0xc9, 0x82, 0xd1, 0x89, 0xe7, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f,
+ 0x3c, 0x92, 0x63, 0x4c, 0x62, 0x03, 0x5b, 0x64, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x62, 0x62,
+ 0xb2, 0xed, 0x7b, 0x00, 0x00, 0x00,
+}
+
func (m *M) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -168,7 +184,7 @@ func (m *M) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -196,7 +212,7 @@ func (m *M) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -205,6 +221,9 @@ func (m *M) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthNopackage
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthNopackage
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -225,7 +244,7 @@ func (m *M) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -242,7 +261,7 @@ func (m *M) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -252,6 +271,9 @@ func (m *M) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthNopackage
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthNopackage
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -291,6 +313,9 @@ func (m *M) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthNopackage
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthNopackage
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -358,10 +383,13 @@ func skipNopackage(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthNopackage
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthNopackage
+ }
return iNdEx, nil
case 3:
for {
@@ -390,6 +418,9 @@ func skipNopackage(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthNopackage
+ }
}
return iNdEx, nil
case 4:
@@ -408,18 +439,3 @@ var (
ErrInvalidLengthNopackage = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowNopackage = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("nopackage.proto", fileDescriptor_nopackage_085d7f4350f51d1d) }
-
-var fileDescriptor_nopackage_085d7f4350f51d1d = []byte{
- // 134 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcf, 0xcb, 0x2f, 0x48,
- 0x4c, 0xce, 0x4e, 0x4c, 0x4f, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x57, 0x0a, 0xe2, 0x62, 0xf4,
- 0x15, 0x12, 0xe7, 0x62, 0x4c, 0x93, 0x60, 0x54, 0x60, 0xd6, 0xe0, 0x36, 0xe2, 0xd4, 0xf3, 0xd5,
- 0x73, 0x73, 0xcd, 0x2b, 0x29, 0xaa, 0x0c, 0x62, 0x4c, 0x93, 0x32, 0xe1, 0x62, 0x83, 0x70, 0x84,
- 0x04, 0xb8, 0x98, 0xb3, 0x53, 0x2b, 0x25, 0x18, 0x15, 0x18, 0x35, 0x38, 0x83, 0x40, 0x4c, 0x21,
- 0x11, 0x2e, 0xd6, 0xb2, 0xc4, 0x9c, 0xd2, 0x54, 0x09, 0x26, 0x05, 0x46, 0x0d, 0xc6, 0x20, 0x08,
- 0xc7, 0x8a, 0xc9, 0x82, 0xd1, 0x89, 0xe7, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f,
- 0x3c, 0x92, 0x63, 0x4c, 0x62, 0x03, 0x5b, 0x64, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x62, 0x62,
- 0xb2, 0xed, 0x7b, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/both/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/both/one.pb.go
index 762811d22d..451d8d5ce2 100644
--- a/vendor/github.com/gogo/protobuf/test/oneof/combos/both/one.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/both/one.pb.go
@@ -3,26 +3,23 @@
package one
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
-import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-
-import encoding_binary "encoding/binary"
-
-import io "io"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype"
+ github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -45,7 +42,7 @@ type Subby struct {
func (m *Subby) Reset() { *m = Subby{} }
func (*Subby) ProtoMessage() {}
func (*Subby) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_1ca237849e17659c, []int{0}
+ return fileDescriptor_5ca5df6bbfd2f47d, []int{0}
}
func (m *Subby) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -62,8 +59,8 @@ func (m *Subby) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Subby) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Subby.Merge(dst, src)
+func (m *Subby) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Subby.Merge(m, src)
}
func (m *Subby) XXX_Size() int {
return m.Size()
@@ -101,7 +98,7 @@ type AllTypesOneOf struct {
func (m *AllTypesOneOf) Reset() { *m = AllTypesOneOf{} }
func (*AllTypesOneOf) ProtoMessage() {}
func (*AllTypesOneOf) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_1ca237849e17659c, []int{1}
+ return fileDescriptor_5ca5df6bbfd2f47d, []int{1}
}
func (m *AllTypesOneOf) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -118,8 +115,8 @@ func (m *AllTypesOneOf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
return b[:n], nil
}
}
-func (dst *AllTypesOneOf) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllTypesOneOf.Merge(dst, src)
+func (m *AllTypesOneOf) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllTypesOneOf.Merge(m, src)
}
func (m *AllTypesOneOf) XXX_Size() int {
return m.Size()
@@ -613,7 +610,7 @@ type TwoOneofs struct {
func (m *TwoOneofs) Reset() { *m = TwoOneofs{} }
func (*TwoOneofs) ProtoMessage() {}
func (*TwoOneofs) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_1ca237849e17659c, []int{2}
+ return fileDescriptor_5ca5df6bbfd2f47d, []int{2}
}
func (m *TwoOneofs) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -630,8 +627,8 @@ func (m *TwoOneofs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *TwoOneofs) XXX_Merge(src proto.Message) {
- xxx_messageInfo_TwoOneofs.Merge(dst, src)
+func (m *TwoOneofs) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_TwoOneofs.Merge(m, src)
}
func (m *TwoOneofs) XXX_Size() int {
return m.Size()
@@ -892,7 +889,7 @@ type CustomOneof struct {
func (m *CustomOneof) Reset() { *m = CustomOneof{} }
func (*CustomOneof) ProtoMessage() {}
func (*CustomOneof) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_1ca237849e17659c, []int{3}
+ return fileDescriptor_5ca5df6bbfd2f47d, []int{3}
}
func (m *CustomOneof) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -909,8 +906,8 @@ func (m *CustomOneof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *CustomOneof) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomOneof.Merge(dst, src)
+func (m *CustomOneof) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomOneof.Merge(m, src)
}
func (m *CustomOneof) XXX_Size() int {
return m.Size()
@@ -1085,6 +1082,51 @@ func init() {
proto.RegisterType((*TwoOneofs)(nil), "one.TwoOneofs")
proto.RegisterType((*CustomOneof)(nil), "one.CustomOneof")
}
+
+func init() { proto.RegisterFile("combos/both/one.proto", fileDescriptor_5ca5df6bbfd2f47d) }
+
+var fileDescriptor_5ca5df6bbfd2f47d = []byte{
+ // 596 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0x3f, 0x4f, 0xdb, 0x40,
+ 0x14, 0x00, 0x70, 0x3f, 0x42, 0x42, 0xb8, 0x84, 0x92, 0x5a, 0xaa, 0x74, 0x65, 0x38, 0x4e, 0x69,
+ 0x2b, 0xdd, 0x50, 0x12, 0xe2, 0xd8, 0xfc, 0x19, 0x6b, 0xaa, 0x2a, 0x0b, 0x45, 0x32, 0x30, 0xa3,
+ 0x98, 0x9a, 0x10, 0x89, 0xf8, 0x10, 0x77, 0x16, 0xf2, 0xc6, 0x67, 0xe8, 0xa7, 0xe8, 0xd8, 0xb1,
+ 0x1f, 0x81, 0x31, 0x63, 0xd5, 0x21, 0xc2, 0xee, 0xd2, 0x91, 0x11, 0x75, 0xaa, 0xce, 0x26, 0x77,
+ 0x95, 0xaa, 0xaa, 0x4b, 0xa7, 0xf8, 0xbd, 0x9f, 0xef, 0xe5, 0x3d, 0xdf, 0x1d, 0x7a, 0x76, 0xca,
+ 0x27, 0x21, 0x17, 0xdd, 0x90, 0xcb, 0xf3, 0x2e, 0x8f, 0xa3, 0xce, 0xe5, 0x15, 0x97, 0xdc, 0xae,
+ 0xf0, 0x38, 0x5a, 0xdb, 0x18, 0x8d, 0xe5, 0x79, 0x12, 0x76, 0x4e, 0xf9, 0xa4, 0x3b, 0xe2, 0x23,
+ 0xde, 0x2d, 0x2c, 0x4c, 0xce, 0x8a, 0xa8, 0x08, 0x8a, 0xa7, 0x72, 0x4d, 0xfb, 0x39, 0xaa, 0x1e,
+ 0x26, 0x61, 0x98, 0xda, 0x2d, 0x54, 0x11, 0x49, 0x88, 0x81, 0x02, 0x5b, 0x0e, 0xd4, 0x63, 0x7b,
+ 0x56, 0x41, 0x2b, 0x6f, 0x2e, 0x2e, 0x8e, 0xd2, 0xcb, 0x48, 0x1c, 0xc4, 0xd1, 0xc1, 0x99, 0x8d,
+ 0x51, 0xed, 0xdd, 0x38, 0xba, 0xf8, 0xd0, 0x2b, 0x5e, 0x83, 0x81, 0x15, 0x3c, 0xc6, 0x5a, 0x1c,
+ 0xbc, 0x40, 0x81, 0x2d, 0x68, 0x71, 0xb4, 0xf4, 0x71, 0x85, 0x02, 0xab, 0x6a, 0xe9, 0x6b, 0x71,
+ 0xf1, 0x22, 0x05, 0x56, 0xd1, 0xe2, 0x6a, 0xf1, 0x70, 0x95, 0x02, 0x5b, 0xd1, 0xe2, 0x69, 0xd9,
+ 0xc2, 0x35, 0x0a, 0x6c, 0x51, 0xcb, 0x96, 0x96, 0x6d, 0xbc, 0x44, 0x81, 0x3d, 0xd5, 0xb2, 0xad,
+ 0x65, 0x07, 0xd7, 0x29, 0x30, 0x5b, 0xcb, 0x8e, 0x96, 0x5d, 0xbc, 0x4c, 0x81, 0x2d, 0x69, 0xd9,
+ 0xb5, 0xd7, 0xd0, 0x52, 0x39, 0xd9, 0x26, 0x46, 0x14, 0xd8, 0xea, 0xc0, 0x0a, 0xe6, 0x09, 0x63,
+ 0x3d, 0xdc, 0xa0, 0xc0, 0x6a, 0xc6, 0x7a, 0xc6, 0x1c, 0xdc, 0xa4, 0xc0, 0x5a, 0xc6, 0x1c, 0x63,
+ 0x7d, 0xbc, 0x42, 0x81, 0xd5, 0x8d, 0xf5, 0x8d, 0xb9, 0xf8, 0x89, 0xda, 0x01, 0x63, 0xae, 0x31,
+ 0x0f, 0xaf, 0x52, 0x60, 0x4d, 0x63, 0x9e, 0xbd, 0x81, 0x1a, 0x22, 0x09, 0x4f, 0x26, 0x91, 0x10,
+ 0xc3, 0x51, 0x84, 0x5b, 0x14, 0x58, 0xc3, 0x41, 0x1d, 0x75, 0x26, 0x8a, 0x6d, 0x1d, 0x58, 0x01,
+ 0x12, 0x49, 0xb8, 0x5f, 0xba, 0xdf, 0x44, 0x48, 0x46, 0x42, 0x9e, 0xf0, 0x38, 0xe2, 0x67, 0xed,
+ 0x29, 0xa0, 0xe5, 0xa3, 0x6b, 0x7e, 0xa0, 0x02, 0xf1, 0x9f, 0x37, 0x77, 0xde, 0x74, 0xdf, 0xc5,
+ 0xed, 0x62, 0x20, 0x08, 0xe6, 0x09, 0x63, 0x1e, 0x7e, 0x51, 0x0c, 0xa4, 0xcd, 0xb3, 0xbb, 0xa8,
+ 0xf9, 0xdb, 0x40, 0x0e, 0x7e, 0xf9, 0xc7, 0x44, 0x10, 0x34, 0xcc, 0x44, 0x8e, 0x5f, 0x45, 0xea,
+ 0xd8, 0xab, 0x1f, 0x79, 0xcd, 0xdb, 0x1f, 0x17, 0x50, 0x63, 0x2f, 0x11, 0x92, 0x4f, 0x8a, 0xa9,
+ 0xd4, 0x5f, 0x1d, 0xca, 0xab, 0x71, 0x3c, 0x4a, 0x1f, 0xdb, 0xb0, 0x82, 0x79, 0xc2, 0x0e, 0x10,
+ 0x2a, 0x5f, 0x55, 0x27, 0xbc, 0xec, 0xc4, 0xdf, 0xfc, 0x36, 0x5b, 0x7f, 0xfd, 0xd7, 0x1b, 0xa4,
+ 0xbe, 0x5d, 0xf7, 0xb4, 0x58, 0xd3, 0x39, 0x1e, 0xc7, 0xb2, 0xe7, 0xec, 0xa8, 0x0f, 0x6c, 0xaa,
+ 0xd8, 0xc7, 0xa8, 0xbe, 0x37, 0x14, 0xb2, 0xa8, 0xa8, 0x5a, 0x5f, 0xf4, 0xb7, 0x7f, 0xce, 0xd6,
+ 0xfb, 0xff, 0xa8, 0x38, 0x14, 0x52, 0xa6, 0x97, 0x51, 0x67, 0x3f, 0x55, 0x55, 0xb7, 0x5c, 0xb5,
+ 0x7c, 0x60, 0x05, 0xba, 0x94, 0xed, 0xcc, 0x5b, 0x7d, 0x3f, 0x9c, 0x44, 0xf8, 0x95, 0xba, 0x2e,
+ 0x7e, 0x2b, 0x9f, 0xad, 0x37, 0xf7, 0x53, 0x93, 0x37, 0xad, 0xa8, 0xc8, 0xaf, 0xa3, 0x5a, 0xd9,
+ 0xaa, 0xff, 0xf6, 0x36, 0x23, 0xd6, 0x34, 0x23, 0xd6, 0xd7, 0x8c, 0x58, 0x77, 0x19, 0x81, 0xfb,
+ 0x8c, 0xc0, 0x43, 0x46, 0xe0, 0x26, 0x27, 0xf0, 0x29, 0x27, 0xf0, 0x39, 0x27, 0xf0, 0x25, 0x27,
+ 0x70, 0x9b, 0x13, 0x98, 0xe6, 0x04, 0xee, 0x72, 0x02, 0x3f, 0x72, 0x62, 0xdd, 0xe7, 0x04, 0x1e,
+ 0x72, 0x62, 0xdd, 0x7c, 0x27, 0xd6, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb8, 0x65, 0xb5, 0xca,
+ 0x75, 0x04, 0x00, 0x00,
+}
+
func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return OneDescription()
}
@@ -1100,274 +1142,276 @@ func (this *CustomOneof) Description() (desc *github_com_gogo_protobuf_protoc_ge
func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4264 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x1b, 0xd7,
- 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x24, 0x88, 0x8e, 0x21, 0x09, 0xb6,
- 0x63, 0xda, 0x8e, 0x49, 0x9b, 0x22, 0x29, 0x09, 0x6a, 0xe2, 0x82, 0x24, 0x44, 0xd1, 0x25, 0x09,
- 0x66, 0x41, 0xc6, 0x3f, 0x99, 0xce, 0xce, 0x72, 0x71, 0x01, 0xae, 0xb4, 0xd8, 0xdd, 0xec, 0x2e,
- 0x24, 0x43, 0xd3, 0x07, 0x75, 0xdc, 0x9f, 0xc9, 0x74, 0xfa, 0x97, 0x76, 0xa6, 0x89, 0xeb, 0xb8,
- 0x4d, 0x3a, 0x8d, 0xd3, 0xf4, 0x2f, 0x69, 0xda, 0x34, 0x49, 0x5f, 0xfa, 0x92, 0xd6, 0x4f, 0x1d,
- 0xe7, 0xad, 0xd3, 0xe9, 0x78, 0x2c, 0xc6, 0x33, 0x4d, 0x5b, 0xb7, 0x71, 0x5b, 0x75, 0xc6, 0x53,
- 0xbf, 0x74, 0xee, 0xdf, 0xee, 0xe2, 0x87, 0x5a, 0x30, 0x13, 0xdb, 0x4f, 0xe2, 0x9e, 0x73, 0xbe,
- 0x6f, 0xcf, 0x3d, 0xf7, 0xdc, 0x73, 0xcf, 0xbd, 0x0b, 0xc1, 0x8f, 0x2e, 0xc1, 0xd9, 0xa6, 0x65,
- 0x35, 0x0d, 0x34, 0x6f, 0x3b, 0x96, 0x67, 0xed, 0xb7, 0x1b, 0xf3, 0x75, 0xe4, 0x6a, 0x8e, 0x6e,
- 0x7b, 0x96, 0x33, 0x47, 0x64, 0xd2, 0x04, 0xb5, 0x98, 0xe3, 0x16, 0xc5, 0x2d, 0x98, 0xbc, 0xa2,
- 0x1b, 0x68, 0xcd, 0x37, 0xac, 0x21, 0x4f, 0xba, 0x08, 0x89, 0x86, 0x6e, 0xa0, 0xbc, 0x70, 0x36,
- 0x3e, 0x9b, 0x59, 0x78, 0x70, 0xae, 0x07, 0x34, 0xd7, 0x8d, 0xd8, 0xc1, 0x62, 0x99, 0x20, 0x8a,
- 0x6f, 0x25, 0x60, 0x6a, 0x80, 0x56, 0x92, 0x20, 0x61, 0xaa, 0x2d, 0xcc, 0x28, 0xcc, 0xa6, 0x65,
- 0xf2, 0xb7, 0x94, 0x87, 0x31, 0x5b, 0xd5, 0xae, 0xab, 0x4d, 0x94, 0x8f, 0x11, 0x31, 0x7f, 0x94,
- 0x0a, 0x00, 0x75, 0x64, 0x23, 0xb3, 0x8e, 0x4c, 0xad, 0x93, 0x8f, 0x9f, 0x8d, 0xcf, 0xa6, 0xe5,
- 0x90, 0x44, 0x7a, 0x0c, 0x26, 0xed, 0xf6, 0xbe, 0xa1, 0x6b, 0x4a, 0xc8, 0x0c, 0xce, 0xc6, 0x67,
- 0x93, 0xb2, 0x48, 0x15, 0x6b, 0x81, 0xf1, 0xc3, 0x30, 0x71, 0x13, 0xa9, 0xd7, 0xc3, 0xa6, 0x19,
- 0x62, 0x9a, 0xc3, 0xe2, 0x90, 0xe1, 0x2a, 0x64, 0x5b, 0xc8, 0x75, 0xd5, 0x26, 0x52, 0xbc, 0x8e,
- 0x8d, 0xf2, 0x09, 0x32, 0xfa, 0xb3, 0x7d, 0xa3, 0xef, 0x1d, 0x79, 0x86, 0xa1, 0x76, 0x3b, 0x36,
- 0x92, 0xca, 0x90, 0x46, 0x66, 0xbb, 0x45, 0x19, 0x92, 0x47, 0xc4, 0xaf, 0x62, 0xb6, 0x5b, 0xbd,
- 0x2c, 0x29, 0x0c, 0x63, 0x14, 0x63, 0x2e, 0x72, 0x6e, 0xe8, 0x1a, 0xca, 0x8f, 0x12, 0x82, 0x87,
- 0xfb, 0x08, 0x6a, 0x54, 0xdf, 0xcb, 0xc1, 0x71, 0xd2, 0x2a, 0xa4, 0xd1, 0x0b, 0x1e, 0x32, 0x5d,
- 0xdd, 0x32, 0xf3, 0x63, 0x84, 0xe4, 0xa1, 0x01, 0xb3, 0x88, 0x8c, 0x7a, 0x2f, 0x45, 0x80, 0x93,
- 0x96, 0x61, 0xcc, 0xb2, 0x3d, 0xdd, 0x32, 0xdd, 0x7c, 0xea, 0xac, 0x30, 0x9b, 0x59, 0xf8, 0xc8,
- 0xc0, 0x44, 0xa8, 0x52, 0x1b, 0x99, 0x1b, 0x4b, 0x1b, 0x20, 0xba, 0x56, 0xdb, 0xd1, 0x90, 0xa2,
- 0x59, 0x75, 0xa4, 0xe8, 0x66, 0xc3, 0xca, 0xa7, 0x09, 0xc1, 0x99, 0xfe, 0x81, 0x10, 0xc3, 0x55,
- 0xab, 0x8e, 0x36, 0xcc, 0x86, 0x25, 0xe7, 0xdc, 0xae, 0x67, 0xe9, 0x24, 0x8c, 0xba, 0x1d, 0xd3,
- 0x53, 0x5f, 0xc8, 0x67, 0x49, 0x86, 0xb0, 0xa7, 0xe2, 0x77, 0x46, 0x61, 0x62, 0x98, 0x14, 0xbb,
- 0x0c, 0xc9, 0x06, 0x1e, 0x65, 0x3e, 0x76, 0x9c, 0x18, 0x50, 0x4c, 0x77, 0x10, 0x47, 0x7f, 0xcc,
- 0x20, 0x96, 0x21, 0x63, 0x22, 0xd7, 0x43, 0x75, 0x9a, 0x11, 0xf1, 0x21, 0x73, 0x0a, 0x28, 0xa8,
- 0x3f, 0xa5, 0x12, 0x3f, 0x56, 0x4a, 0x3d, 0x0b, 0x13, 0xbe, 0x4b, 0x8a, 0xa3, 0x9a, 0x4d, 0x9e,
- 0x9b, 0xf3, 0x51, 0x9e, 0xcc, 0x55, 0x38, 0x4e, 0xc6, 0x30, 0x39, 0x87, 0xba, 0x9e, 0xa5, 0x35,
- 0x00, 0xcb, 0x44, 0x56, 0x43, 0xa9, 0x23, 0xcd, 0xc8, 0xa7, 0x8e, 0x88, 0x52, 0x15, 0x9b, 0xf4,
- 0x45, 0xc9, 0xa2, 0x52, 0xcd, 0x90, 0x2e, 0x05, 0xa9, 0x36, 0x76, 0x44, 0xa6, 0x6c, 0xd1, 0x45,
- 0xd6, 0x97, 0x6d, 0x7b, 0x90, 0x73, 0x10, 0xce, 0x7b, 0x54, 0x67, 0x23, 0x4b, 0x13, 0x27, 0xe6,
- 0x22, 0x47, 0x26, 0x33, 0x18, 0x1d, 0xd8, 0xb8, 0x13, 0x7e, 0x94, 0x1e, 0x00, 0x5f, 0xa0, 0x90,
- 0xb4, 0x02, 0x52, 0x85, 0xb2, 0x5c, 0xb8, 0xad, 0xb6, 0xd0, 0xcc, 0x2d, 0xc8, 0x75, 0x87, 0x47,
- 0x9a, 0x86, 0xa4, 0xeb, 0xa9, 0x8e, 0x47, 0xb2, 0x30, 0x29, 0xd3, 0x07, 0x49, 0x84, 0x38, 0x32,
- 0xeb, 0xa4, 0xca, 0x25, 0x65, 0xfc, 0xa7, 0xf4, 0xd3, 0xc1, 0x80, 0xe3, 0x64, 0xc0, 0x1f, 0xed,
- 0x9f, 0xd1, 0x2e, 0xe6, 0xde, 0x71, 0xcf, 0x5c, 0x80, 0xf1, 0xae, 0x01, 0x0c, 0xfb, 0xea, 0xe2,
- 0xcf, 0xc1, 0x89, 0x81, 0xd4, 0xd2, 0xb3, 0x30, 0xdd, 0x36, 0x75, 0xd3, 0x43, 0x8e, 0xed, 0x20,
- 0x9c, 0xb1, 0xf4, 0x55, 0xf9, 0x7f, 0x19, 0x3b, 0x22, 0xe7, 0xf6, 0xc2, 0xd6, 0x94, 0x45, 0x9e,
- 0x6a, 0xf7, 0x0b, 0x1f, 0x4d, 0xa7, 0x7e, 0x38, 0x26, 0xde, 0xbe, 0x7d, 0xfb, 0x76, 0xac, 0xf8,
- 0xf9, 0x51, 0x98, 0x1e, 0xb4, 0x66, 0x06, 0x2e, 0xdf, 0x93, 0x30, 0x6a, 0xb6, 0x5b, 0xfb, 0xc8,
- 0x21, 0x41, 0x4a, 0xca, 0xec, 0x49, 0x2a, 0x43, 0xd2, 0x50, 0xf7, 0x91, 0x91, 0x4f, 0x9c, 0x15,
- 0x66, 0x73, 0x0b, 0x8f, 0x0d, 0xb5, 0x2a, 0xe7, 0x36, 0x31, 0x44, 0xa6, 0x48, 0xe9, 0x13, 0x90,
- 0x60, 0x25, 0x1a, 0x33, 0x3c, 0x3a, 0x1c, 0x03, 0x5e, 0x4b, 0x32, 0xc1, 0x49, 0xf7, 0x41, 0x1a,
- 0xff, 0x4b, 0x73, 0x63, 0x94, 0xf8, 0x9c, 0xc2, 0x02, 0x9c, 0x17, 0xd2, 0x0c, 0xa4, 0xc8, 0x32,
- 0xa9, 0x23, 0xbe, 0xb5, 0xf9, 0xcf, 0x38, 0xb1, 0xea, 0xa8, 0xa1, 0xb6, 0x0d, 0x4f, 0xb9, 0xa1,
- 0x1a, 0x6d, 0x44, 0x12, 0x3e, 0x2d, 0x67, 0x99, 0xf0, 0x53, 0x58, 0x26, 0x9d, 0x81, 0x0c, 0x5d,
- 0x55, 0xba, 0x59, 0x47, 0x2f, 0x90, 0xea, 0x99, 0x94, 0xe9, 0x42, 0xdb, 0xc0, 0x12, 0xfc, 0xfa,
- 0x6b, 0xae, 0x65, 0xf2, 0xd4, 0x24, 0xaf, 0xc0, 0x02, 0xf2, 0xfa, 0x0b, 0xbd, 0x85, 0xfb, 0xfe,
- 0xc1, 0xc3, 0xeb, 0xcd, 0xa9, 0xe2, 0xb7, 0x62, 0x90, 0x20, 0xf5, 0x62, 0x02, 0x32, 0xbb, 0xcf,
- 0xed, 0x54, 0x94, 0xb5, 0xea, 0xde, 0xca, 0x66, 0x45, 0x14, 0xa4, 0x1c, 0x00, 0x11, 0x5c, 0xd9,
- 0xac, 0x96, 0x77, 0xc5, 0x98, 0xff, 0xbc, 0xb1, 0xbd, 0xbb, 0xbc, 0x28, 0xc6, 0x7d, 0xc0, 0x1e,
- 0x15, 0x24, 0xc2, 0x06, 0xe7, 0x17, 0xc4, 0xa4, 0x24, 0x42, 0x96, 0x12, 0x6c, 0x3c, 0x5b, 0x59,
- 0x5b, 0x5e, 0x14, 0x47, 0xbb, 0x25, 0xe7, 0x17, 0xc4, 0x31, 0x69, 0x1c, 0xd2, 0x44, 0xb2, 0x52,
- 0xad, 0x6e, 0x8a, 0x29, 0x9f, 0xb3, 0xb6, 0x2b, 0x6f, 0x6c, 0xaf, 0x8b, 0x69, 0x9f, 0x73, 0x5d,
- 0xae, 0xee, 0xed, 0x88, 0xe0, 0x33, 0x6c, 0x55, 0x6a, 0xb5, 0xf2, 0x7a, 0x45, 0xcc, 0xf8, 0x16,
- 0x2b, 0xcf, 0xed, 0x56, 0x6a, 0x62, 0xb6, 0xcb, 0xad, 0xf3, 0x0b, 0xe2, 0xb8, 0xff, 0x8a, 0xca,
- 0xf6, 0xde, 0x96, 0x98, 0x93, 0x26, 0x61, 0x9c, 0xbe, 0x82, 0x3b, 0x31, 0xd1, 0x23, 0x5a, 0x5e,
- 0x14, 0xc5, 0xc0, 0x11, 0xca, 0x32, 0xd9, 0x25, 0x58, 0x5e, 0x14, 0xa5, 0xe2, 0x2a, 0x24, 0x49,
- 0x76, 0x49, 0x12, 0xe4, 0x36, 0xcb, 0x2b, 0x95, 0x4d, 0xa5, 0xba, 0xb3, 0xbb, 0x51, 0xdd, 0x2e,
- 0x6f, 0x8a, 0x42, 0x20, 0x93, 0x2b, 0x9f, 0xdc, 0xdb, 0x90, 0x2b, 0x6b, 0x62, 0x2c, 0x2c, 0xdb,
- 0xa9, 0x94, 0x77, 0x2b, 0x6b, 0x62, 0xbc, 0xa8, 0xc1, 0xf4, 0xa0, 0x3a, 0x39, 0x70, 0x65, 0x84,
- 0xa6, 0x38, 0x76, 0xc4, 0x14, 0x13, 0xae, 0xbe, 0x29, 0xfe, 0x41, 0x0c, 0xa6, 0x06, 0xec, 0x15,
- 0x03, 0x5f, 0xf2, 0x14, 0x24, 0x69, 0x8a, 0xd2, 0xdd, 0xf3, 0x91, 0x81, 0x9b, 0x0e, 0x49, 0xd8,
- 0xbe, 0x1d, 0x94, 0xe0, 0xc2, 0x1d, 0x44, 0xfc, 0x88, 0x0e, 0x02, 0x53, 0xf4, 0xd5, 0xf4, 0x9f,
- 0xed, 0xab, 0xe9, 0x74, 0xdb, 0x5b, 0x1e, 0x66, 0xdb, 0x23, 0xb2, 0xe3, 0xd5, 0xf6, 0xe4, 0x80,
- 0xda, 0x7e, 0x19, 0x26, 0xfb, 0x88, 0x86, 0xae, 0xb1, 0x2f, 0x0a, 0x90, 0x3f, 0x2a, 0x38, 0x11,
- 0x95, 0x2e, 0xd6, 0x55, 0xe9, 0x2e, 0xf7, 0x46, 0xf0, 0xdc, 0xd1, 0x93, 0xd0, 0x37, 0xd7, 0xaf,
- 0x0a, 0x70, 0x72, 0x70, 0xa7, 0x38, 0xd0, 0x87, 0x4f, 0xc0, 0x68, 0x0b, 0x79, 0x07, 0x16, 0xef,
- 0x96, 0x3e, 0x3a, 0x60, 0x0f, 0xc6, 0xea, 0xde, 0xc9, 0x66, 0xa8, 0xf0, 0x26, 0x1e, 0x3f, 0xaa,
- 0xdd, 0xa3, 0xde, 0xf4, 0x79, 0xfa, 0xd9, 0x18, 0x9c, 0x18, 0x48, 0x3e, 0xd0, 0xd1, 0xfb, 0x01,
- 0x74, 0xd3, 0x6e, 0x7b, 0xb4, 0x23, 0xa2, 0x05, 0x36, 0x4d, 0x24, 0xa4, 0x78, 0xe1, 0xe2, 0xd9,
- 0xf6, 0x7c, 0x7d, 0x9c, 0xe8, 0x81, 0x8a, 0x88, 0xc1, 0xc5, 0xc0, 0xd1, 0x04, 0x71, 0xb4, 0x70,
- 0xc4, 0x48, 0xfb, 0x12, 0xf3, 0x09, 0x10, 0x35, 0x43, 0x47, 0xa6, 0xa7, 0xb8, 0x9e, 0x83, 0xd4,
- 0x96, 0x6e, 0x36, 0xc9, 0x0e, 0x92, 0x2a, 0x25, 0x1b, 0xaa, 0xe1, 0x22, 0x79, 0x82, 0xaa, 0x6b,
- 0x5c, 0x8b, 0x11, 0x24, 0x81, 0x9c, 0x10, 0x62, 0xb4, 0x0b, 0x41, 0xd5, 0x3e, 0xa2, 0xf8, 0xcd,
- 0x14, 0x64, 0x42, 0x7d, 0xb5, 0x74, 0x0e, 0xb2, 0xd7, 0xd4, 0x1b, 0xaa, 0xc2, 0xcf, 0x4a, 0x34,
- 0x12, 0x19, 0x2c, 0xdb, 0x61, 0xe7, 0xa5, 0x27, 0x60, 0x9a, 0x98, 0x58, 0x6d, 0x0f, 0x39, 0x8a,
- 0x66, 0xa8, 0xae, 0x4b, 0x82, 0x96, 0x22, 0xa6, 0x12, 0xd6, 0x55, 0xb1, 0x6a, 0x95, 0x6b, 0xa4,
- 0x25, 0x98, 0x22, 0x88, 0x56, 0xdb, 0xf0, 0x74, 0xdb, 0x40, 0x0a, 0x3e, 0xbd, 0xb9, 0x64, 0x27,
- 0xf1, 0x3d, 0x9b, 0xc4, 0x16, 0x5b, 0xcc, 0x00, 0x7b, 0xe4, 0x4a, 0x6b, 0x70, 0x3f, 0x81, 0x35,
- 0x91, 0x89, 0x1c, 0xd5, 0x43, 0x0a, 0xfa, 0x4c, 0x5b, 0x35, 0x5c, 0x45, 0x35, 0xeb, 0xca, 0x81,
- 0xea, 0x1e, 0xe4, 0xa7, 0x31, 0xc1, 0x4a, 0x2c, 0x2f, 0xc8, 0xa7, 0xb1, 0xe1, 0x3a, 0xb3, 0xab,
- 0x10, 0xb3, 0xb2, 0x59, 0xbf, 0xaa, 0xba, 0x07, 0x52, 0x09, 0x4e, 0x12, 0x16, 0xd7, 0x73, 0x74,
- 0xb3, 0xa9, 0x68, 0x07, 0x48, 0xbb, 0xae, 0xb4, 0xbd, 0xc6, 0xc5, 0xfc, 0x7d, 0xe1, 0xf7, 0x13,
- 0x0f, 0x6b, 0xc4, 0x66, 0x15, 0x9b, 0xec, 0x79, 0x8d, 0x8b, 0x52, 0x0d, 0xb2, 0x78, 0x32, 0x5a,
- 0xfa, 0x2d, 0xa4, 0x34, 0x2c, 0x87, 0x6c, 0x8d, 0xb9, 0x01, 0xa5, 0x29, 0x14, 0xc1, 0xb9, 0x2a,
- 0x03, 0x6c, 0x59, 0x75, 0x54, 0x4a, 0xd6, 0x76, 0x2a, 0x95, 0x35, 0x39, 0xc3, 0x59, 0xae, 0x58,
- 0x0e, 0x4e, 0xa8, 0xa6, 0xe5, 0x07, 0x38, 0x43, 0x13, 0xaa, 0x69, 0xf1, 0xf0, 0x2e, 0xc1, 0x94,
- 0xa6, 0xd1, 0x31, 0xeb, 0x9a, 0xc2, 0xce, 0x58, 0x6e, 0x5e, 0xec, 0x0a, 0x96, 0xa6, 0xad, 0x53,
- 0x03, 0x96, 0xe3, 0xae, 0x74, 0x09, 0x4e, 0x04, 0xc1, 0x0a, 0x03, 0x27, 0xfb, 0x46, 0xd9, 0x0b,
- 0x5d, 0x82, 0x29, 0xbb, 0xd3, 0x0f, 0x94, 0xba, 0xde, 0x68, 0x77, 0x7a, 0x61, 0x17, 0x60, 0xda,
- 0x3e, 0xb0, 0xfb, 0x71, 0x8f, 0x86, 0x71, 0x92, 0x7d, 0x60, 0xf7, 0x02, 0x1f, 0x22, 0x07, 0x6e,
- 0x07, 0x69, 0xaa, 0x87, 0xea, 0xf9, 0x53, 0x61, 0xf3, 0x90, 0x42, 0x9a, 0x07, 0x51, 0xd3, 0x14,
- 0x64, 0xaa, 0xfb, 0x06, 0x52, 0x54, 0x07, 0x99, 0xaa, 0x9b, 0x3f, 0x13, 0x36, 0xce, 0x69, 0x5a,
- 0x85, 0x68, 0xcb, 0x44, 0x29, 0x3d, 0x0a, 0x93, 0xd6, 0xfe, 0x35, 0x8d, 0xa6, 0xa4, 0x62, 0x3b,
- 0xa8, 0xa1, 0xbf, 0x90, 0x7f, 0x90, 0xc4, 0x77, 0x02, 0x2b, 0x48, 0x42, 0xee, 0x10, 0xb1, 0xf4,
- 0x08, 0x88, 0x9a, 0x7b, 0xa0, 0x3a, 0x36, 0xa9, 0xc9, 0xae, 0xad, 0x6a, 0x28, 0xff, 0x10, 0x35,
- 0xa5, 0xf2, 0x6d, 0x2e, 0xc6, 0x4b, 0xc2, 0xbd, 0xa9, 0x37, 0x3c, 0xce, 0xf8, 0x30, 0x5d, 0x12,
- 0x44, 0xc6, 0xd8, 0x66, 0x41, 0xc4, 0xa1, 0xe8, 0x7a, 0xf1, 0x2c, 0x31, 0xcb, 0xd9, 0x07, 0x76,
- 0xf8, 0xbd, 0x0f, 0xc0, 0x38, 0xb6, 0x0c, 0x5e, 0xfa, 0x08, 0x6d, 0xc8, 0xec, 0x83, 0xd0, 0x1b,
- 0xdf, 0xb7, 0xde, 0xb8, 0x58, 0x82, 0x6c, 0x38, 0x3f, 0xa5, 0x34, 0xd0, 0x0c, 0x15, 0x05, 0xdc,
- 0xac, 0xac, 0x56, 0xd7, 0x70, 0x9b, 0xf1, 0x7c, 0x45, 0x8c, 0xe1, 0x76, 0x67, 0x73, 0x63, 0xb7,
- 0xa2, 0xc8, 0x7b, 0xdb, 0xbb, 0x1b, 0x5b, 0x15, 0x31, 0x1e, 0xee, 0xab, 0xbf, 0x17, 0x83, 0x5c,
- 0xf7, 0x11, 0x49, 0xfa, 0x29, 0x38, 0xc5, 0xef, 0x33, 0x5c, 0xe4, 0x29, 0x37, 0x75, 0x87, 0x2c,
- 0x99, 0x96, 0x4a, 0xb7, 0x2f, 0x7f, 0xd2, 0xa6, 0x99, 0x55, 0x0d, 0x79, 0xcf, 0xe8, 0x0e, 0x5e,
- 0x10, 0x2d, 0xd5, 0x93, 0x36, 0xe1, 0x8c, 0x69, 0x29, 0xae, 0xa7, 0x9a, 0x75, 0xd5, 0xa9, 0x2b,
- 0xc1, 0x4d, 0x92, 0xa2, 0x6a, 0x1a, 0x72, 0x5d, 0x8b, 0x6e, 0x55, 0x3e, 0xcb, 0x47, 0x4c, 0xab,
- 0xc6, 0x8c, 0x83, 0x1a, 0x5e, 0x66, 0xa6, 0x3d, 0x09, 0x16, 0x3f, 0x2a, 0xc1, 0xee, 0x83, 0x74,
- 0x4b, 0xb5, 0x15, 0x64, 0x7a, 0x4e, 0x87, 0x34, 0xc6, 0x29, 0x39, 0xd5, 0x52, 0xed, 0x0a, 0x7e,
- 0xfe, 0x60, 0xce, 0x27, 0xff, 0x1c, 0x87, 0x6c, 0xb8, 0x39, 0xc6, 0x67, 0x0d, 0x8d, 0xec, 0x23,
- 0x02, 0xa9, 0x34, 0x0f, 0xdc, 0xb3, 0x95, 0x9e, 0x5b, 0xc5, 0x1b, 0x4c, 0x69, 0x94, 0xb6, 0xac,
- 0x32, 0x45, 0xe2, 0xcd, 0x1d, 0xd7, 0x16, 0x44, 0x5b, 0x84, 0x94, 0xcc, 0x9e, 0xa4, 0x75, 0x18,
- 0xbd, 0xe6, 0x12, 0xee, 0x51, 0xc2, 0xfd, 0xe0, 0xbd, 0xb9, 0x9f, 0xae, 0x11, 0xf2, 0xf4, 0xd3,
- 0x35, 0x65, 0xbb, 0x2a, 0x6f, 0x95, 0x37, 0x65, 0x06, 0x97, 0x4e, 0x43, 0xc2, 0x50, 0x6f, 0x75,
- 0xba, 0xb7, 0x22, 0x22, 0x1a, 0x36, 0xf0, 0xa7, 0x21, 0x71, 0x13, 0xa9, 0xd7, 0xbb, 0x37, 0x00,
- 0x22, 0x7a, 0x1f, 0x53, 0x7f, 0x1e, 0x92, 0x24, 0x5e, 0x12, 0x00, 0x8b, 0x98, 0x38, 0x22, 0xa5,
- 0x20, 0xb1, 0x5a, 0x95, 0x71, 0xfa, 0x8b, 0x90, 0xa5, 0x52, 0x65, 0x67, 0xa3, 0xb2, 0x5a, 0x11,
- 0x63, 0xc5, 0x25, 0x18, 0xa5, 0x41, 0xc0, 0x4b, 0xc3, 0x0f, 0x83, 0x38, 0xc2, 0x1e, 0x19, 0x87,
- 0xc0, 0xb5, 0x7b, 0x5b, 0x2b, 0x15, 0x59, 0x8c, 0x85, 0xa7, 0xd7, 0x85, 0x6c, 0xb8, 0x2f, 0xfe,
- 0x60, 0x72, 0xea, 0xbb, 0x02, 0x64, 0x42, 0x7d, 0x2e, 0x6e, 0x50, 0x54, 0xc3, 0xb0, 0x6e, 0x2a,
- 0xaa, 0xa1, 0xab, 0x2e, 0x4b, 0x0a, 0x20, 0xa2, 0x32, 0x96, 0x0c, 0x3b, 0x69, 0x1f, 0x88, 0xf3,
- 0xaf, 0x08, 0x20, 0xf6, 0xb6, 0x98, 0x3d, 0x0e, 0x0a, 0x1f, 0xaa, 0x83, 0x2f, 0x0b, 0x90, 0xeb,
- 0xee, 0x2b, 0x7b, 0xdc, 0x3b, 0xf7, 0xa1, 0xba, 0xf7, 0x66, 0x0c, 0xc6, 0xbb, 0xba, 0xc9, 0x61,
- 0xbd, 0xfb, 0x0c, 0x4c, 0xea, 0x75, 0xd4, 0xb2, 0x2d, 0x0f, 0x99, 0x5a, 0x47, 0x31, 0xd0, 0x0d,
- 0x64, 0xe4, 0x8b, 0xa4, 0x50, 0xcc, 0xdf, 0xbb, 0x5f, 0x9d, 0xdb, 0x08, 0x70, 0x9b, 0x18, 0x56,
- 0x9a, 0xda, 0x58, 0xab, 0x6c, 0xed, 0x54, 0x77, 0x2b, 0xdb, 0xab, 0xcf, 0x29, 0x7b, 0xdb, 0x3f,
- 0xb3, 0x5d, 0x7d, 0x66, 0x5b, 0x16, 0xf5, 0x1e, 0xb3, 0xf7, 0x71, 0xa9, 0xef, 0x80, 0xd8, 0xeb,
- 0x94, 0x74, 0x0a, 0x06, 0xb9, 0x25, 0x8e, 0x48, 0x53, 0x30, 0xb1, 0x5d, 0x55, 0x6a, 0x1b, 0x6b,
- 0x15, 0xa5, 0x72, 0xe5, 0x4a, 0x65, 0x75, 0xb7, 0x46, 0x6f, 0x20, 0x7c, 0xeb, 0xdd, 0xee, 0x45,
- 0xfd, 0x52, 0x1c, 0xa6, 0x06, 0x78, 0x22, 0x95, 0xd9, 0xd9, 0x81, 0x1e, 0x67, 0x1e, 0x1f, 0xc6,
- 0xfb, 0x39, 0xbc, 0xe5, 0xef, 0xa8, 0x8e, 0xc7, 0x8e, 0x1a, 0x8f, 0x00, 0x8e, 0x92, 0xe9, 0xe9,
- 0x0d, 0x1d, 0x39, 0xec, 0xc2, 0x86, 0x1e, 0x28, 0x26, 0x02, 0x39, 0xbd, 0xb3, 0xf9, 0x18, 0x48,
- 0xb6, 0xe5, 0xea, 0x9e, 0x7e, 0x03, 0x29, 0xba, 0xc9, 0x6f, 0x77, 0xf0, 0x01, 0x23, 0x21, 0x8b,
- 0x5c, 0xb3, 0x61, 0x7a, 0xbe, 0xb5, 0x89, 0x9a, 0x6a, 0x8f, 0x35, 0x2e, 0xe0, 0x71, 0x59, 0xe4,
- 0x1a, 0xdf, 0xfa, 0x1c, 0x64, 0xeb, 0x56, 0x1b, 0x77, 0x5d, 0xd4, 0x0e, 0xef, 0x17, 0x82, 0x9c,
- 0xa1, 0x32, 0xdf, 0x84, 0xf5, 0xd3, 0xc1, 0xb5, 0x52, 0x56, 0xce, 0x50, 0x19, 0x35, 0x79, 0x18,
- 0x26, 0xd4, 0x66, 0xd3, 0xc1, 0xe4, 0x9c, 0x88, 0x9e, 0x10, 0x72, 0xbe, 0x98, 0x18, 0xce, 0x3c,
- 0x0d, 0x29, 0x1e, 0x07, 0xbc, 0x25, 0xe3, 0x48, 0x28, 0x36, 0x3d, 0xf6, 0xc6, 0x66, 0xd3, 0x72,
- 0xca, 0xe4, 0xca, 0x73, 0x90, 0xd5, 0x5d, 0x25, 0xb8, 0x25, 0x8f, 0x9d, 0x8d, 0xcd, 0xa6, 0xe4,
- 0x8c, 0xee, 0xfa, 0x37, 0x8c, 0xc5, 0x57, 0x63, 0x90, 0xeb, 0xbe, 0xe5, 0x97, 0xd6, 0x20, 0x65,
- 0x58, 0x9a, 0x4a, 0x52, 0x8b, 0x7e, 0x62, 0x9a, 0x8d, 0xf8, 0x30, 0x30, 0xb7, 0xc9, 0xec, 0x65,
- 0x1f, 0x39, 0xf3, 0x0f, 0x02, 0xa4, 0xb8, 0x58, 0x3a, 0x09, 0x09, 0x5b, 0xf5, 0x0e, 0x08, 0x5d,
- 0x72, 0x25, 0x26, 0x0a, 0x32, 0x79, 0xc6, 0x72, 0xd7, 0x56, 0x4d, 0x92, 0x02, 0x4c, 0x8e, 0x9f,
- 0xf1, 0xbc, 0x1a, 0x48, 0xad, 0x93, 0xe3, 0x87, 0xd5, 0x6a, 0x21, 0xd3, 0x73, 0xf9, 0xbc, 0x32,
- 0xf9, 0x2a, 0x13, 0x4b, 0x8f, 0xc1, 0xa4, 0xe7, 0xa8, 0xba, 0xd1, 0x65, 0x9b, 0x20, 0xb6, 0x22,
- 0x57, 0xf8, 0xc6, 0x25, 0x38, 0xcd, 0x79, 0xeb, 0xc8, 0x53, 0xb5, 0x03, 0x54, 0x0f, 0x40, 0xa3,
- 0xe4, 0x9a, 0xe1, 0x14, 0x33, 0x58, 0x63, 0x7a, 0x8e, 0x2d, 0x7e, 0x5f, 0x80, 0x49, 0x7e, 0x60,
- 0xaa, 0xfb, 0xc1, 0xda, 0x02, 0x50, 0x4d, 0xd3, 0xf2, 0xc2, 0xe1, 0xea, 0x4f, 0xe5, 0x3e, 0xdc,
- 0x5c, 0xd9, 0x07, 0xc9, 0x21, 0x82, 0x99, 0x16, 0x40, 0xa0, 0x39, 0x32, 0x6c, 0x67, 0x20, 0xc3,
- 0x3e, 0xe1, 0x90, 0xef, 0x80, 0xf4, 0x88, 0x0d, 0x54, 0x84, 0x4f, 0x56, 0xd2, 0x34, 0x24, 0xf7,
- 0x51, 0x53, 0x37, 0xd9, 0xc5, 0x2c, 0x7d, 0xe0, 0x17, 0x21, 0x09, 0xff, 0x22, 0x64, 0xe5, 0xd3,
- 0x30, 0xa5, 0x59, 0xad, 0x5e, 0x77, 0x57, 0xc4, 0x9e, 0x63, 0xbe, 0x7b, 0x55, 0x78, 0x1e, 0x82,
- 0x16, 0xf3, 0x5d, 0x41, 0xf8, 0x72, 0x2c, 0xbe, 0xbe, 0xb3, 0xf2, 0xb5, 0xd8, 0xcc, 0x3a, 0x85,
- 0xee, 0xf0, 0x91, 0xca, 0xa8, 0x61, 0x20, 0x0d, 0x7b, 0x0f, 0x5f, 0x79, 0x0c, 0x1e, 0x6f, 0xea,
- 0xde, 0x41, 0x7b, 0x7f, 0x4e, 0xb3, 0x5a, 0xf3, 0x4d, 0xab, 0x69, 0x05, 0x9f, 0x3e, 0xf1, 0x13,
- 0x79, 0x20, 0x7f, 0xb1, 0xcf, 0x9f, 0x69, 0x5f, 0x3a, 0x13, 0xf9, 0xad, 0xb4, 0xb4, 0x0d, 0x53,
- 0xcc, 0x58, 0x21, 0xdf, 0x5f, 0xe8, 0x29, 0x42, 0xba, 0xe7, 0x1d, 0x56, 0xfe, 0x1b, 0x6f, 0x91,
- 0xed, 0x5a, 0x9e, 0x64, 0x50, 0xac, 0xa3, 0x07, 0x8d, 0x92, 0x0c, 0x27, 0xba, 0xf8, 0xe8, 0xd2,
- 0x44, 0x4e, 0x04, 0xe3, 0xf7, 0x18, 0xe3, 0x54, 0x88, 0xb1, 0xc6, 0xa0, 0xa5, 0x55, 0x18, 0x3f,
- 0x0e, 0xd7, 0xdf, 0x31, 0xae, 0x2c, 0x0a, 0x93, 0xac, 0xc3, 0x04, 0x21, 0xd1, 0xda, 0xae, 0x67,
- 0xb5, 0x48, 0xdd, 0xbb, 0x37, 0xcd, 0xdf, 0xbf, 0x45, 0xd7, 0x4a, 0x0e, 0xc3, 0x56, 0x7d, 0x54,
- 0xa9, 0x04, 0xe4, 0x93, 0x53, 0x1d, 0x69, 0x46, 0x04, 0xc3, 0x6b, 0xcc, 0x11, 0xdf, 0xbe, 0xf4,
- 0x29, 0x98, 0xc6, 0x7f, 0x93, 0xb2, 0x14, 0xf6, 0x24, 0xfa, 0xc2, 0x2b, 0xff, 0xfd, 0x17, 0xe9,
- 0x72, 0x9c, 0xf2, 0x09, 0x42, 0x3e, 0x85, 0x66, 0xb1, 0x89, 0x3c, 0x0f, 0x39, 0xae, 0xa2, 0x1a,
- 0x83, 0xdc, 0x0b, 0xdd, 0x18, 0xe4, 0xbf, 0xf0, 0x76, 0xf7, 0x2c, 0xae, 0x53, 0x64, 0xd9, 0x30,
- 0x4a, 0x7b, 0x70, 0x6a, 0x40, 0x56, 0x0c, 0xc1, 0xf9, 0x12, 0xe3, 0x9c, 0xee, 0xcb, 0x0c, 0x4c,
- 0xbb, 0x03, 0x5c, 0xee, 0xcf, 0xe5, 0x10, 0x9c, 0xbf, 0xcb, 0x38, 0x25, 0x86, 0xe5, 0x53, 0x8a,
- 0x19, 0x9f, 0x86, 0xc9, 0x1b, 0xc8, 0xd9, 0xb7, 0x5c, 0x76, 0x4b, 0x33, 0x04, 0xdd, 0xcb, 0x8c,
- 0x6e, 0x82, 0x01, 0xc9, 0xb5, 0x0d, 0xe6, 0xba, 0x04, 0xa9, 0x86, 0xaa, 0xa1, 0x21, 0x28, 0xbe,
- 0xc8, 0x28, 0xc6, 0xb0, 0x3d, 0x86, 0x96, 0x21, 0xdb, 0xb4, 0xd8, 0xce, 0x14, 0x0d, 0x7f, 0x85,
- 0xc1, 0x33, 0x1c, 0xc3, 0x28, 0x6c, 0xcb, 0x6e, 0x1b, 0x78, 0xdb, 0x8a, 0xa6, 0xf8, 0x3d, 0x4e,
- 0xc1, 0x31, 0x8c, 0xe2, 0x18, 0x61, 0xfd, 0x7d, 0x4e, 0xe1, 0x86, 0xe2, 0xf9, 0x14, 0x64, 0x2c,
- 0xd3, 0xe8, 0x58, 0xe6, 0x30, 0x4e, 0x7c, 0x89, 0x31, 0x00, 0x83, 0x60, 0x82, 0xcb, 0x90, 0x1e,
- 0x76, 0x22, 0xfe, 0xf0, 0x6d, 0xbe, 0x3c, 0xf8, 0x0c, 0xac, 0xc3, 0x04, 0x2f, 0x50, 0xba, 0x65,
- 0x0e, 0x41, 0xf1, 0x15, 0x46, 0x91, 0x0b, 0xc1, 0xd8, 0x30, 0x3c, 0xe4, 0x7a, 0x4d, 0x34, 0x0c,
- 0xc9, 0xab, 0x7c, 0x18, 0x0c, 0xc2, 0x42, 0xb9, 0x8f, 0x4c, 0xed, 0x60, 0x38, 0x86, 0xaf, 0xf2,
- 0x50, 0x72, 0x0c, 0xa6, 0x58, 0x85, 0xf1, 0x96, 0xea, 0xb8, 0x07, 0xaa, 0x31, 0xd4, 0x74, 0xfc,
- 0x11, 0xe3, 0xc8, 0xfa, 0x20, 0x16, 0x91, 0xb6, 0x79, 0x1c, 0x9a, 0xaf, 0xf1, 0x88, 0x84, 0x60,
- 0x6c, 0xe9, 0xb9, 0x1e, 0xb9, 0xd2, 0x3a, 0x0e, 0xdb, 0x1f, 0xf3, 0xa5, 0x47, 0xb1, 0x5b, 0x61,
- 0xc6, 0xcb, 0x90, 0x76, 0xf5, 0x5b, 0x43, 0xd1, 0xfc, 0x09, 0x9f, 0x69, 0x02, 0xc0, 0xe0, 0xe7,
- 0xe0, 0xf4, 0xc0, 0x6d, 0x62, 0x08, 0xb2, 0x3f, 0x65, 0x64, 0x27, 0x07, 0x6c, 0x15, 0xac, 0x24,
- 0x1c, 0x97, 0xf2, 0xcf, 0x78, 0x49, 0x40, 0x3d, 0x5c, 0x3b, 0xf8, 0xac, 0xe0, 0xaa, 0x8d, 0xe3,
- 0x45, 0xed, 0xcf, 0x79, 0xd4, 0x28, 0xb6, 0x2b, 0x6a, 0xbb, 0x70, 0x92, 0x31, 0x1e, 0x6f, 0x5e,
- 0xbf, 0xce, 0x0b, 0x2b, 0x45, 0xef, 0x75, 0xcf, 0xee, 0xa7, 0x61, 0xc6, 0x0f, 0x27, 0x6f, 0x4a,
- 0x5d, 0xa5, 0xa5, 0xda, 0x43, 0x30, 0x7f, 0x83, 0x31, 0xf3, 0x8a, 0xef, 0x77, 0xb5, 0xee, 0x96,
- 0x6a, 0x63, 0xf2, 0x67, 0x21, 0xcf, 0xc9, 0xdb, 0xa6, 0x83, 0x34, 0xab, 0x69, 0xea, 0xb7, 0x50,
- 0x7d, 0x08, 0xea, 0xbf, 0xe8, 0x99, 0xaa, 0xbd, 0x10, 0x1c, 0x33, 0x6f, 0x80, 0xe8, 0xf7, 0x2a,
- 0x8a, 0xde, 0xb2, 0x2d, 0xc7, 0x8b, 0x60, 0xfc, 0x26, 0x9f, 0x29, 0x1f, 0xb7, 0x41, 0x60, 0xa5,
- 0x0a, 0xe4, 0xc8, 0xe3, 0xb0, 0x29, 0xf9, 0x97, 0x8c, 0x68, 0x3c, 0x40, 0xb1, 0xc2, 0xa1, 0x59,
- 0x2d, 0x5b, 0x75, 0x86, 0xa9, 0x7f, 0x7f, 0xc5, 0x0b, 0x07, 0x83, 0xb0, 0xc2, 0xe1, 0x75, 0x6c,
- 0x84, 0x77, 0xfb, 0x21, 0x18, 0xbe, 0xc5, 0x0b, 0x07, 0xc7, 0x30, 0x0a, 0xde, 0x30, 0x0c, 0x41,
- 0xf1, 0xd7, 0x9c, 0x82, 0x63, 0x30, 0xc5, 0x27, 0x83, 0x8d, 0xd6, 0x41, 0x4d, 0xdd, 0xf5, 0x1c,
- 0xda, 0x0a, 0xdf, 0x9b, 0xea, 0xdb, 0x6f, 0x77, 0x37, 0x61, 0x72, 0x08, 0x8a, 0x2b, 0x11, 0xbb,
- 0x42, 0x25, 0x27, 0xa5, 0x68, 0xc7, 0xbe, 0xc3, 0x2b, 0x51, 0x08, 0x86, 0x7d, 0x0b, 0x75, 0x88,
- 0x38, 0xec, 0x1a, 0x3e, 0x1f, 0x0c, 0x41, 0xf7, 0xdd, 0x1e, 0xe7, 0x6a, 0x1c, 0x8b, 0x39, 0x43,
- 0xfd, 0x4f, 0xdb, 0xbc, 0x8e, 0x3a, 0x43, 0x65, 0xe7, 0xdf, 0xf4, 0xf4, 0x3f, 0x7b, 0x14, 0x49,
- 0x6b, 0xc8, 0x44, 0x4f, 0x3f, 0x25, 0x45, 0xfd, 0x58, 0x27, 0xff, 0xf3, 0x77, 0xd9, 0x78, 0xbb,
- 0xdb, 0xa9, 0xd2, 0x26, 0x4e, 0xf2, 0xee, 0xa6, 0x27, 0x9a, 0xec, 0xc5, 0xbb, 0x7e, 0x9e, 0x77,
- 0xf5, 0x3c, 0xa5, 0x2b, 0x30, 0xde, 0xd5, 0xf0, 0x44, 0x53, 0xfd, 0x02, 0xa3, 0xca, 0x86, 0xfb,
- 0x9d, 0xd2, 0x12, 0x24, 0x70, 0xf3, 0x12, 0x0d, 0xff, 0x45, 0x06, 0x27, 0xe6, 0xa5, 0x8f, 0x43,
- 0x8a, 0x37, 0x2d, 0xd1, 0xd0, 0x5f, 0x62, 0x50, 0x1f, 0x82, 0xe1, 0xbc, 0x61, 0x89, 0x86, 0xff,
- 0x32, 0x87, 0x73, 0x08, 0x86, 0x0f, 0x1f, 0xc2, 0xbf, 0xfd, 0x95, 0x04, 0xdb, 0x74, 0x78, 0xec,
- 0x2e, 0xc3, 0x18, 0xeb, 0x54, 0xa2, 0xd1, 0x9f, 0x65, 0x2f, 0xe7, 0x88, 0xd2, 0x05, 0x48, 0x0e,
- 0x19, 0xf0, 0x5f, 0x65, 0x50, 0x6a, 0x5f, 0x5a, 0x85, 0x4c, 0xa8, 0x3b, 0x89, 0x86, 0xff, 0x1a,
- 0x83, 0x87, 0x51, 0xd8, 0x75, 0xd6, 0x9d, 0x44, 0x13, 0xfc, 0x3a, 0x77, 0x9d, 0x21, 0x70, 0xd8,
- 0x78, 0x63, 0x12, 0x8d, 0xfe, 0x0d, 0x1e, 0x75, 0x0e, 0x29, 0x3d, 0x05, 0x69, 0x7f, 0xb3, 0x89,
- 0xc6, 0xff, 0x26, 0xc3, 0x07, 0x18, 0x1c, 0x81, 0xd0, 0x66, 0x17, 0x4d, 0xf1, 0x39, 0x1e, 0x81,
- 0x10, 0x0a, 0x2f, 0xa3, 0xde, 0x06, 0x26, 0x9a, 0xe9, 0xb7, 0xf8, 0x32, 0xea, 0xe9, 0x5f, 0xf0,
- 0x6c, 0x92, 0x9a, 0x1f, 0x4d, 0xf1, 0xdb, 0x7c, 0x36, 0x89, 0x3d, 0x76, 0xa3, 0xb7, 0x23, 0x88,
- 0xe6, 0xf8, 0x1d, 0xee, 0x46, 0x4f, 0x43, 0x50, 0xda, 0x01, 0xa9, 0xbf, 0x1b, 0x88, 0xe6, 0xfb,
- 0x3c, 0xe3, 0x9b, 0xec, 0x6b, 0x06, 0x4a, 0xcf, 0xc0, 0xc9, 0xc1, 0x9d, 0x40, 0x34, 0xeb, 0x17,
- 0xee, 0xf6, 0x9c, 0xdd, 0xc2, 0x8d, 0x40, 0x69, 0x37, 0xd8, 0x52, 0xc2, 0x5d, 0x40, 0x34, 0xed,
- 0x4b, 0x77, 0xbb, 0x0b, 0x77, 0xb8, 0x09, 0x28, 0x95, 0x01, 0x82, 0x0d, 0x38, 0x9a, 0xeb, 0x65,
- 0xc6, 0x15, 0x02, 0xe1, 0xa5, 0xc1, 0xf6, 0xdf, 0x68, 0xfc, 0x17, 0xf9, 0xd2, 0x60, 0x08, 0xbc,
- 0x34, 0xf8, 0xd6, 0x1b, 0x8d, 0x7e, 0x85, 0x2f, 0x0d, 0x0e, 0xc1, 0x99, 0x1d, 0xda, 0xdd, 0xa2,
- 0x19, 0xbe, 0xc4, 0x33, 0x3b, 0x84, 0x2a, 0x6d, 0xc3, 0x64, 0xdf, 0x86, 0x18, 0x4d, 0xf5, 0x65,
- 0x46, 0x25, 0xf6, 0xee, 0x87, 0xe1, 0xcd, 0x8b, 0x6d, 0x86, 0xd1, 0x6c, 0x7f, 0xd0, 0xb3, 0x79,
- 0xb1, 0xbd, 0xb0, 0x74, 0x19, 0x52, 0x66, 0xdb, 0x30, 0xf0, 0xe2, 0x91, 0xee, 0xfd, 0x03, 0xbb,
- 0xfc, 0xbf, 0xbe, 0xc7, 0xa2, 0xc3, 0x01, 0xa5, 0x25, 0x48, 0xa2, 0xd6, 0x3e, 0xaa, 0x47, 0x21,
- 0xff, 0xed, 0x3d, 0x5e, 0x30, 0xb1, 0x75, 0xe9, 0x29, 0x00, 0x7a, 0x35, 0x42, 0x3e, 0xfb, 0x45,
- 0x60, 0xff, 0xfd, 0x3d, 0xf6, 0xd3, 0x97, 0x00, 0x12, 0x10, 0xd0, 0x1f, 0xd2, 0xdc, 0x9b, 0xe0,
- 0xed, 0x6e, 0x02, 0x32, 0x23, 0x97, 0x60, 0xec, 0x9a, 0x6b, 0x99, 0x9e, 0xda, 0x8c, 0x42, 0xff,
- 0x07, 0x43, 0x73, 0x7b, 0x1c, 0xb0, 0x96, 0xe5, 0x20, 0x4f, 0x6d, 0xba, 0x51, 0xd8, 0xff, 0x64,
- 0x58, 0x1f, 0x80, 0xc1, 0x9a, 0xea, 0x7a, 0xc3, 0x8c, 0xfb, 0x47, 0x1c, 0xcc, 0x01, 0xd8, 0x69,
- 0xfc, 0xf7, 0x75, 0xd4, 0x89, 0xc2, 0xbe, 0xc3, 0x9d, 0x66, 0xf6, 0xa5, 0x8f, 0x43, 0x1a, 0xff,
- 0x49, 0x7f, 0xcf, 0x16, 0x01, 0xfe, 0x2f, 0x06, 0x0e, 0x10, 0xf8, 0xcd, 0xae, 0x57, 0xf7, 0xf4,
- 0xe8, 0x60, 0xff, 0x37, 0x9b, 0x69, 0x6e, 0x5f, 0x2a, 0x43, 0xc6, 0xf5, 0xea, 0xf5, 0x36, 0xeb,
- 0x4f, 0x23, 0xe0, 0xff, 0xf3, 0x9e, 0x7f, 0x65, 0xe1, 0x63, 0xf0, 0x6c, 0xdf, 0xbc, 0xee, 0xd9,
- 0x16, 0xf9, 0xcc, 0x11, 0xc5, 0x70, 0x97, 0x31, 0x84, 0x20, 0x2b, 0x95, 0xc1, 0xd7, 0xb7, 0xb0,
- 0x6e, 0xad, 0x5b, 0xf4, 0xe2, 0xf6, 0xf9, 0x62, 0xf4, 0x0d, 0x2c, 0xfc, 0x6f, 0x0a, 0x4e, 0x68,
- 0x56, 0x6b, 0xdf, 0x72, 0xe7, 0xf7, 0x2d, 0xef, 0x60, 0xde, 0x32, 0x19, 0x99, 0x14, 0xb7, 0x4c,
- 0x34, 0x73, 0xbc, 0x4b, 0xdc, 0xe2, 0x69, 0x48, 0xd6, 0xda, 0xfb, 0xfb, 0x1d, 0x49, 0x84, 0xb8,
- 0xdb, 0xde, 0x67, 0x3f, 0x88, 0xc2, 0x7f, 0x16, 0xdf, 0x88, 0xc3, 0x78, 0xd9, 0x30, 0x76, 0x3b,
- 0x36, 0x72, 0xab, 0x26, 0xaa, 0x36, 0xa4, 0x3c, 0x8c, 0x92, 0x51, 0x3e, 0x49, 0xcc, 0x84, 0xab,
- 0x23, 0x32, 0x7b, 0xf6, 0x35, 0x0b, 0xe4, 0x7a, 0x3b, 0xe6, 0x6b, 0x16, 0x7c, 0xcd, 0x79, 0x7a,
- 0xbb, 0xed, 0x6b, 0xce, 0xfb, 0x9a, 0x45, 0x72, 0xc7, 0x1d, 0xf7, 0x35, 0x8b, 0xbe, 0x66, 0x89,
- 0x7c, 0xc3, 0x19, 0xf7, 0x35, 0x4b, 0xbe, 0x66, 0x99, 0x7c, 0xb5, 0x49, 0xf8, 0x9a, 0x65, 0x5f,
- 0x73, 0x81, 0x7c, 0xac, 0x99, 0xf4, 0x35, 0x17, 0x7c, 0xcd, 0x45, 0xf2, 0x81, 0x46, 0xf2, 0x35,
- 0x17, 0x7d, 0xcd, 0x25, 0xf2, 0xcb, 0xa7, 0x31, 0x5f, 0x73, 0x49, 0x9a, 0x81, 0x31, 0x3a, 0xb2,
- 0x27, 0xc8, 0x57, 0xfc, 0x89, 0xab, 0x23, 0x32, 0x17, 0x04, 0xba, 0x27, 0xc9, 0xaf, 0x9b, 0x46,
- 0x03, 0xdd, 0x93, 0x81, 0x6e, 0x81, 0xfc, 0x27, 0x0b, 0x31, 0xd0, 0x2d, 0x04, 0xba, 0xf3, 0xf9,
- 0x71, 0x9c, 0x1c, 0x81, 0xee, 0x7c, 0xa0, 0x5b, 0xcc, 0xe7, 0xf0, 0x0c, 0x04, 0xba, 0xc5, 0x40,
- 0xb7, 0x94, 0x9f, 0x38, 0x2b, 0xcc, 0x66, 0x03, 0xdd, 0x92, 0xf4, 0x38, 0x64, 0xdc, 0xf6, 0xbe,
- 0xc2, 0xca, 0x3c, 0xf9, 0x15, 0x55, 0x66, 0x01, 0xe6, 0x70, 0x4e, 0x90, 0x69, 0xbd, 0x3a, 0x22,
- 0x83, 0xdb, 0xde, 0x67, 0x55, 0x78, 0x25, 0x0b, 0xe4, 0xf2, 0x49, 0x21, 0x3f, 0x7e, 0x2e, 0xbe,
- 0x2e, 0x40, 0x7a, 0xf7, 0xa6, 0x45, 0xbe, 0xe1, 0xbb, 0x3f, 0xe1, 0xc9, 0xe5, 0x4e, 0x9f, 0x5f,
- 0x24, 0x9f, 0x59, 0xd3, 0x57, 0x05, 0x99, 0x0b, 0x02, 0xdd, 0x52, 0xfe, 0x01, 0x32, 0x20, 0x5f,
- 0xb7, 0x24, 0xcd, 0x43, 0x36, 0x34, 0xa0, 0x05, 0xf2, 0xfb, 0xa6, 0xee, 0x11, 0x09, 0x72, 0x26,
- 0x18, 0xd1, 0xc2, 0x4a, 0x12, 0x70, 0xda, 0xe3, 0x7f, 0xbc, 0x9b, 0x56, 0xf1, 0x73, 0x31, 0xc8,
- 0xd0, 0xfb, 0x6a, 0x32, 0x2a, 0xfc, 0x2a, 0x7a, 0xa4, 0xe9, 0x30, 0x37, 0x46, 0x64, 0x2e, 0x90,
- 0x64, 0x00, 0x6a, 0x8a, 0x33, 0x9c, 0x7a, 0xb2, 0xf2, 0xc4, 0x3f, 0xbd, 0x71, 0xe6, 0x63, 0x47,
- 0xae, 0x20, 0x1c, 0xbb, 0x79, 0x5a, 0xbf, 0xe7, 0xf6, 0x74, 0xd3, 0x7b, 0x72, 0xe1, 0x22, 0x0e,
- 0x70, 0xc0, 0x22, 0xed, 0x41, 0x6a, 0x55, 0x75, 0xc9, 0x2f, 0x23, 0x89, 0xeb, 0x89, 0x95, 0x0b,
- 0xff, 0xf7, 0xc6, 0x99, 0xf3, 0x11, 0x8c, 0xac, 0xb4, 0xce, 0x6d, 0x75, 0x30, 0xeb, 0xf2, 0x22,
- 0x86, 0x5f, 0x1d, 0x91, 0x7d, 0x2a, 0x69, 0x81, 0xbb, 0xba, 0xad, 0xb6, 0xe8, 0x0f, 0xb9, 0xe2,
- 0x2b, 0xe2, 0xe1, 0x1b, 0x67, 0xb2, 0x5b, 0x9d, 0x40, 0x1e, 0xb8, 0x82, 0x9f, 0x56, 0x52, 0x30,
- 0x4a, 0x5d, 0x5d, 0x59, 0x7b, 0xed, 0x4e, 0x61, 0xe4, 0xf5, 0x3b, 0x85, 0x91, 0x7f, 0xbc, 0x53,
- 0x18, 0x79, 0xf3, 0x4e, 0x41, 0x78, 0xe7, 0x4e, 0x41, 0x78, 0xf7, 0x4e, 0x41, 0xb8, 0x7d, 0x58,
- 0x10, 0xbe, 0x7a, 0x58, 0x10, 0xbe, 0x7e, 0x58, 0x10, 0xbe, 0x7d, 0x58, 0x10, 0x5e, 0x3b, 0x2c,
- 0x08, 0xaf, 0x1f, 0x16, 0x84, 0x37, 0x0f, 0x0b, 0xc2, 0x0f, 0x0f, 0x0b, 0x23, 0xef, 0x1c, 0x16,
- 0x84, 0x77, 0x0f, 0x0b, 0x23, 0xb7, 0x7f, 0x50, 0x18, 0xf9, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff,
- 0x23, 0xf5, 0xf1, 0xb4, 0x13, 0x37, 0x00, 0x00,
+ // 4296 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x6b, 0x70, 0x1b, 0xd7,
+ 0x75, 0xe6, 0xe2, 0x41, 0x02, 0x07, 0x20, 0xb8, 0x5c, 0x52, 0x12, 0x44, 0xc7, 0x90, 0x04, 0xdb,
+ 0x31, 0xfd, 0x22, 0x6d, 0x8a, 0xa4, 0x24, 0xa8, 0x89, 0x0b, 0x92, 0x10, 0x45, 0x97, 0x24, 0x98,
+ 0x05, 0x19, 0x3f, 0x32, 0x9d, 0x9d, 0xc5, 0xe2, 0x12, 0x5c, 0x69, 0xb1, 0xbb, 0xd9, 0x5d, 0x48,
+ 0x86, 0xa6, 0x3f, 0xd4, 0x71, 0x1f, 0x93, 0xe9, 0x3b, 0xed, 0x4c, 0x13, 0xd7, 0x71, 0x9b, 0x74,
+ 0x1a, 0xa7, 0xe9, 0x2b, 0xe9, 0x23, 0x4d, 0xd2, 0x3f, 0xfd, 0x93, 0xd6, 0xbf, 0x3a, 0xce, 0xbf,
+ 0x4e, 0xa7, 0xe3, 0xb1, 0x18, 0xcf, 0x34, 0x6d, 0xdd, 0xd6, 0x6d, 0xd5, 0x19, 0x4f, 0xfd, 0xa7,
+ 0x73, 0x5f, 0xbb, 0x8b, 0x07, 0xb5, 0x60, 0xa6, 0xb6, 0x7f, 0x89, 0x7b, 0xce, 0xf9, 0xbe, 0x3d,
+ 0xf7, 0xdc, 0x73, 0xcf, 0x3d, 0xf7, 0x2e, 0x04, 0xaf, 0x97, 0xe0, 0x6c, 0xd3, 0xb2, 0x9a, 0x06,
+ 0x9a, 0xb7, 0x1d, 0xcb, 0xb3, 0xea, 0xed, 0xfd, 0xf9, 0x06, 0x72, 0x35, 0x47, 0xb7, 0x3d, 0xcb,
+ 0x99, 0x23, 0x32, 0x69, 0x82, 0x5a, 0xcc, 0x71, 0x8b, 0xe2, 0x16, 0x4c, 0x5e, 0xd1, 0x0d, 0xb4,
+ 0xe6, 0x1b, 0xd6, 0x90, 0x27, 0x5d, 0x84, 0xc4, 0xbe, 0x6e, 0xa0, 0xbc, 0x70, 0x36, 0x3e, 0x9b,
+ 0x59, 0x78, 0x70, 0xae, 0x07, 0x34, 0xd7, 0x8d, 0xd8, 0xc1, 0x62, 0x99, 0x20, 0x8a, 0x6f, 0x27,
+ 0x60, 0x6a, 0x80, 0x56, 0x92, 0x20, 0x61, 0xaa, 0x2d, 0xcc, 0x28, 0xcc, 0xa6, 0x65, 0xf2, 0xb7,
+ 0x94, 0x87, 0x31, 0x5b, 0xd5, 0xae, 0xab, 0x4d, 0x94, 0x8f, 0x11, 0x31, 0x7f, 0x94, 0x0a, 0x00,
+ 0x0d, 0x64, 0x23, 0xb3, 0x81, 0x4c, 0xad, 0x93, 0x8f, 0x9f, 0x8d, 0xcf, 0xa6, 0xe5, 0x90, 0x44,
+ 0x7a, 0x0c, 0x26, 0xed, 0x76, 0xdd, 0xd0, 0x35, 0x25, 0x64, 0x06, 0x67, 0xe3, 0xb3, 0x49, 0x59,
+ 0xa4, 0x8a, 0xb5, 0xc0, 0xf8, 0x61, 0x98, 0xb8, 0x89, 0xd4, 0xeb, 0x61, 0xd3, 0x0c, 0x31, 0xcd,
+ 0x61, 0x71, 0xc8, 0x70, 0x15, 0xb2, 0x2d, 0xe4, 0xba, 0x6a, 0x13, 0x29, 0x5e, 0xc7, 0x46, 0xf9,
+ 0x04, 0x19, 0xfd, 0xd9, 0xbe, 0xd1, 0xf7, 0x8e, 0x3c, 0xc3, 0x50, 0xbb, 0x1d, 0x1b, 0x49, 0x65,
+ 0x48, 0x23, 0xb3, 0xdd, 0xa2, 0x0c, 0xc9, 0x23, 0xe2, 0x57, 0x31, 0xdb, 0xad, 0x5e, 0x96, 0x14,
+ 0x86, 0x31, 0x8a, 0x31, 0x17, 0x39, 0x37, 0x74, 0x0d, 0xe5, 0x47, 0x09, 0xc1, 0xc3, 0x7d, 0x04,
+ 0x35, 0xaa, 0xef, 0xe5, 0xe0, 0x38, 0x69, 0x15, 0xd2, 0xe8, 0x45, 0x0f, 0x99, 0xae, 0x6e, 0x99,
+ 0xf9, 0x31, 0x42, 0xf2, 0xd0, 0x80, 0x59, 0x44, 0x46, 0xa3, 0x97, 0x22, 0xc0, 0x49, 0xcb, 0x30,
+ 0x66, 0xd9, 0x9e, 0x6e, 0x99, 0x6e, 0x3e, 0x75, 0x56, 0x98, 0xcd, 0x2c, 0x7c, 0x6c, 0x60, 0x22,
+ 0x54, 0xa9, 0x8d, 0xcc, 0x8d, 0xa5, 0x0d, 0x10, 0x5d, 0xab, 0xed, 0x68, 0x48, 0xd1, 0xac, 0x06,
+ 0x52, 0x74, 0x73, 0xdf, 0xca, 0xa7, 0x09, 0xc1, 0x99, 0xfe, 0x81, 0x10, 0xc3, 0x55, 0xab, 0x81,
+ 0x36, 0xcc, 0x7d, 0x4b, 0xce, 0xb9, 0x5d, 0xcf, 0xd2, 0x49, 0x18, 0x75, 0x3b, 0xa6, 0xa7, 0xbe,
+ 0x98, 0xcf, 0x92, 0x0c, 0x61, 0x4f, 0xc5, 0xef, 0x8c, 0xc2, 0xc4, 0x30, 0x29, 0x76, 0x19, 0x92,
+ 0xfb, 0x78, 0x94, 0xf9, 0xd8, 0x71, 0x62, 0x40, 0x31, 0xdd, 0x41, 0x1c, 0xfd, 0x11, 0x83, 0x58,
+ 0x86, 0x8c, 0x89, 0x5c, 0x0f, 0x35, 0x68, 0x46, 0xc4, 0x87, 0xcc, 0x29, 0xa0, 0xa0, 0xfe, 0x94,
+ 0x4a, 0xfc, 0x48, 0x29, 0xf5, 0x1c, 0x4c, 0xf8, 0x2e, 0x29, 0x8e, 0x6a, 0x36, 0x79, 0x6e, 0xce,
+ 0x47, 0x79, 0x32, 0x57, 0xe1, 0x38, 0x19, 0xc3, 0xe4, 0x1c, 0xea, 0x7a, 0x96, 0xd6, 0x00, 0x2c,
+ 0x13, 0x59, 0xfb, 0x4a, 0x03, 0x69, 0x46, 0x3e, 0x75, 0x44, 0x94, 0xaa, 0xd8, 0xa4, 0x2f, 0x4a,
+ 0x16, 0x95, 0x6a, 0x86, 0x74, 0x29, 0x48, 0xb5, 0xb1, 0x23, 0x32, 0x65, 0x8b, 0x2e, 0xb2, 0xbe,
+ 0x6c, 0xdb, 0x83, 0x9c, 0x83, 0x70, 0xde, 0xa3, 0x06, 0x1b, 0x59, 0x9a, 0x38, 0x31, 0x17, 0x39,
+ 0x32, 0x99, 0xc1, 0xe8, 0xc0, 0xc6, 0x9d, 0xf0, 0xa3, 0xf4, 0x00, 0xf8, 0x02, 0x85, 0xa4, 0x15,
+ 0x90, 0x2a, 0x94, 0xe5, 0xc2, 0x6d, 0xb5, 0x85, 0x66, 0x6e, 0x41, 0xae, 0x3b, 0x3c, 0xd2, 0x34,
+ 0x24, 0x5d, 0x4f, 0x75, 0x3c, 0x92, 0x85, 0x49, 0x99, 0x3e, 0x48, 0x22, 0xc4, 0x91, 0xd9, 0x20,
+ 0x55, 0x2e, 0x29, 0xe3, 0x3f, 0xa5, 0x1f, 0x0f, 0x06, 0x1c, 0x27, 0x03, 0xfe, 0x78, 0xff, 0x8c,
+ 0x76, 0x31, 0xf7, 0x8e, 0x7b, 0xe6, 0x02, 0x8c, 0x77, 0x0d, 0x60, 0xd8, 0x57, 0x17, 0x7f, 0x0a,
+ 0x4e, 0x0c, 0xa4, 0x96, 0x9e, 0x83, 0xe9, 0xb6, 0xa9, 0x9b, 0x1e, 0x72, 0x6c, 0x07, 0xe1, 0x8c,
+ 0xa5, 0xaf, 0xca, 0xff, 0xd3, 0xd8, 0x11, 0x39, 0xb7, 0x17, 0xb6, 0xa6, 0x2c, 0xf2, 0x54, 0xbb,
+ 0x5f, 0xf8, 0x68, 0x3a, 0xf5, 0xc3, 0x31, 0xf1, 0xf6, 0xed, 0xdb, 0xb7, 0x63, 0xc5, 0x2f, 0x8c,
+ 0xc2, 0xf4, 0xa0, 0x35, 0x33, 0x70, 0xf9, 0x9e, 0x84, 0x51, 0xb3, 0xdd, 0xaa, 0x23, 0x87, 0x04,
+ 0x29, 0x29, 0xb3, 0x27, 0xa9, 0x0c, 0x49, 0x43, 0xad, 0x23, 0x23, 0x9f, 0x38, 0x2b, 0xcc, 0xe6,
+ 0x16, 0x1e, 0x1b, 0x6a, 0x55, 0xce, 0x6d, 0x62, 0x88, 0x4c, 0x91, 0xd2, 0x27, 0x21, 0xc1, 0x4a,
+ 0x34, 0x66, 0x78, 0x74, 0x38, 0x06, 0xbc, 0x96, 0x64, 0x82, 0x93, 0xee, 0x83, 0x34, 0xfe, 0x97,
+ 0xe6, 0xc6, 0x28, 0xf1, 0x39, 0x85, 0x05, 0x38, 0x2f, 0xa4, 0x19, 0x48, 0x91, 0x65, 0xd2, 0x40,
+ 0x7c, 0x6b, 0xf3, 0x9f, 0x71, 0x62, 0x35, 0xd0, 0xbe, 0xda, 0x36, 0x3c, 0xe5, 0x86, 0x6a, 0xb4,
+ 0x11, 0x49, 0xf8, 0xb4, 0x9c, 0x65, 0xc2, 0x4f, 0x63, 0x99, 0x74, 0x06, 0x32, 0x74, 0x55, 0xe9,
+ 0x66, 0x03, 0xbd, 0x48, 0xaa, 0x67, 0x52, 0xa6, 0x0b, 0x6d, 0x03, 0x4b, 0xf0, 0xeb, 0xaf, 0xb9,
+ 0x96, 0xc9, 0x53, 0x93, 0xbc, 0x02, 0x0b, 0xc8, 0xeb, 0x2f, 0xf4, 0x16, 0xee, 0xfb, 0x07, 0x0f,
+ 0xaf, 0x37, 0xa7, 0x8a, 0xdf, 0x8a, 0x41, 0x82, 0xd4, 0x8b, 0x09, 0xc8, 0xec, 0x3e, 0xbf, 0x53,
+ 0x51, 0xd6, 0xaa, 0x7b, 0x2b, 0x9b, 0x15, 0x51, 0x90, 0x72, 0x00, 0x44, 0x70, 0x65, 0xb3, 0x5a,
+ 0xde, 0x15, 0x63, 0xfe, 0xf3, 0xc6, 0xf6, 0xee, 0xf2, 0xa2, 0x18, 0xf7, 0x01, 0x7b, 0x54, 0x90,
+ 0x08, 0x1b, 0x9c, 0x5f, 0x10, 0x93, 0x92, 0x08, 0x59, 0x4a, 0xb0, 0xf1, 0x5c, 0x65, 0x6d, 0x79,
+ 0x51, 0x1c, 0xed, 0x96, 0x9c, 0x5f, 0x10, 0xc7, 0xa4, 0x71, 0x48, 0x13, 0xc9, 0x4a, 0xb5, 0xba,
+ 0x29, 0xa6, 0x7c, 0xce, 0xda, 0xae, 0xbc, 0xb1, 0xbd, 0x2e, 0xa6, 0x7d, 0xce, 0x75, 0xb9, 0xba,
+ 0xb7, 0x23, 0x82, 0xcf, 0xb0, 0x55, 0xa9, 0xd5, 0xca, 0xeb, 0x15, 0x31, 0xe3, 0x5b, 0xac, 0x3c,
+ 0xbf, 0x5b, 0xa9, 0x89, 0xd9, 0x2e, 0xb7, 0xce, 0x2f, 0x88, 0xe3, 0xfe, 0x2b, 0x2a, 0xdb, 0x7b,
+ 0x5b, 0x62, 0x4e, 0x9a, 0x84, 0x71, 0xfa, 0x0a, 0xee, 0xc4, 0x44, 0x8f, 0x68, 0x79, 0x51, 0x14,
+ 0x03, 0x47, 0x28, 0xcb, 0x64, 0x97, 0x60, 0x79, 0x51, 0x94, 0x8a, 0xab, 0x90, 0x24, 0xd9, 0x25,
+ 0x49, 0x90, 0xdb, 0x2c, 0xaf, 0x54, 0x36, 0x95, 0xea, 0xce, 0xee, 0x46, 0x75, 0xbb, 0xbc, 0x29,
+ 0x0a, 0x81, 0x4c, 0xae, 0x7c, 0x6a, 0x6f, 0x43, 0xae, 0xac, 0x89, 0xb1, 0xb0, 0x6c, 0xa7, 0x52,
+ 0xde, 0xad, 0xac, 0x89, 0xf1, 0xa2, 0x06, 0xd3, 0x83, 0xea, 0xe4, 0xc0, 0x95, 0x11, 0x9a, 0xe2,
+ 0xd8, 0x11, 0x53, 0x4c, 0xb8, 0xfa, 0xa6, 0xf8, 0x07, 0x31, 0x98, 0x1a, 0xb0, 0x57, 0x0c, 0x7c,
+ 0xc9, 0xd3, 0x90, 0xa4, 0x29, 0x4a, 0x77, 0xcf, 0x47, 0x06, 0x6e, 0x3a, 0x24, 0x61, 0xfb, 0x76,
+ 0x50, 0x82, 0x0b, 0x77, 0x10, 0xf1, 0x23, 0x3a, 0x08, 0x4c, 0xd1, 0x57, 0xd3, 0x7f, 0xb2, 0xaf,
+ 0xa6, 0xd3, 0x6d, 0x6f, 0x79, 0x98, 0x6d, 0x8f, 0xc8, 0x8e, 0x57, 0xdb, 0x93, 0x03, 0x6a, 0xfb,
+ 0x65, 0x98, 0xec, 0x23, 0x1a, 0xba, 0xc6, 0xbe, 0x24, 0x40, 0xfe, 0xa8, 0xe0, 0x44, 0x54, 0xba,
+ 0x58, 0x57, 0xa5, 0xbb, 0xdc, 0x1b, 0xc1, 0x73, 0x47, 0x4f, 0x42, 0xdf, 0x5c, 0xbf, 0x26, 0xc0,
+ 0xc9, 0xc1, 0x9d, 0xe2, 0x40, 0x1f, 0x3e, 0x09, 0xa3, 0x2d, 0xe4, 0x1d, 0x58, 0xbc, 0x5b, 0xfa,
+ 0xf8, 0x80, 0x3d, 0x18, 0xab, 0x7b, 0x27, 0x9b, 0xa1, 0xc2, 0x9b, 0x78, 0xfc, 0xa8, 0x76, 0x8f,
+ 0x7a, 0xd3, 0xe7, 0xe9, 0xe7, 0x62, 0x70, 0x62, 0x20, 0xf9, 0x40, 0x47, 0xef, 0x07, 0xd0, 0x4d,
+ 0xbb, 0xed, 0xd1, 0x8e, 0x88, 0x16, 0xd8, 0x34, 0x91, 0x90, 0xe2, 0x85, 0x8b, 0x67, 0xdb, 0xf3,
+ 0xf5, 0x71, 0xa2, 0x07, 0x2a, 0x22, 0x06, 0x17, 0x03, 0x47, 0x13, 0xc4, 0xd1, 0xc2, 0x11, 0x23,
+ 0xed, 0x4b, 0xcc, 0x27, 0x41, 0xd4, 0x0c, 0x1d, 0x99, 0x9e, 0xe2, 0x7a, 0x0e, 0x52, 0x5b, 0xba,
+ 0xd9, 0x24, 0x3b, 0x48, 0xaa, 0x94, 0xdc, 0x57, 0x0d, 0x17, 0xc9, 0x13, 0x54, 0x5d, 0xe3, 0x5a,
+ 0x8c, 0x20, 0x09, 0xe4, 0x84, 0x10, 0xa3, 0x5d, 0x08, 0xaa, 0xf6, 0x11, 0xc5, 0x5f, 0x4c, 0x43,
+ 0x26, 0xd4, 0x57, 0x4b, 0xe7, 0x20, 0x7b, 0x4d, 0xbd, 0xa1, 0x2a, 0xfc, 0xac, 0x44, 0x23, 0x91,
+ 0xc1, 0xb2, 0x1d, 0x76, 0x5e, 0x7a, 0x12, 0xa6, 0x89, 0x89, 0xd5, 0xf6, 0x90, 0xa3, 0x68, 0x86,
+ 0xea, 0xba, 0x24, 0x68, 0x29, 0x62, 0x2a, 0x61, 0x5d, 0x15, 0xab, 0x56, 0xb9, 0x46, 0x5a, 0x82,
+ 0x29, 0x82, 0x68, 0xb5, 0x0d, 0x4f, 0xb7, 0x0d, 0xa4, 0xe0, 0xd3, 0x9b, 0x4b, 0x76, 0x12, 0xdf,
+ 0xb3, 0x49, 0x6c, 0xb1, 0xc5, 0x0c, 0xb0, 0x47, 0xae, 0xb4, 0x06, 0xf7, 0x13, 0x58, 0x13, 0x99,
+ 0xc8, 0x51, 0x3d, 0xa4, 0xa0, 0xcf, 0xb6, 0x55, 0xc3, 0x55, 0x54, 0xb3, 0xa1, 0x1c, 0xa8, 0xee,
+ 0x41, 0x7e, 0x1a, 0x13, 0xac, 0xc4, 0xf2, 0x82, 0x7c, 0x1a, 0x1b, 0xae, 0x33, 0xbb, 0x0a, 0x31,
+ 0x2b, 0x9b, 0x8d, 0xab, 0xaa, 0x7b, 0x20, 0x95, 0xe0, 0x24, 0x61, 0x71, 0x3d, 0x47, 0x37, 0x9b,
+ 0x8a, 0x76, 0x80, 0xb4, 0xeb, 0x4a, 0xdb, 0xdb, 0xbf, 0x98, 0xbf, 0x2f, 0xfc, 0x7e, 0xe2, 0x61,
+ 0x8d, 0xd8, 0xac, 0x62, 0x93, 0x3d, 0x6f, 0xff, 0xa2, 0x54, 0x83, 0x2c, 0x9e, 0x8c, 0x96, 0x7e,
+ 0x0b, 0x29, 0xfb, 0x96, 0x43, 0xb6, 0xc6, 0xdc, 0x80, 0xd2, 0x14, 0x8a, 0xe0, 0x5c, 0x95, 0x01,
+ 0xb6, 0xac, 0x06, 0x2a, 0x25, 0x6b, 0x3b, 0x95, 0xca, 0x9a, 0x9c, 0xe1, 0x2c, 0x57, 0x2c, 0x07,
+ 0x27, 0x54, 0xd3, 0xf2, 0x03, 0x9c, 0xa1, 0x09, 0xd5, 0xb4, 0x78, 0x78, 0x97, 0x60, 0x4a, 0xd3,
+ 0xe8, 0x98, 0x75, 0x4d, 0x61, 0x67, 0x2c, 0x37, 0x2f, 0x76, 0x05, 0x4b, 0xd3, 0xd6, 0xa9, 0x01,
+ 0xcb, 0x71, 0x57, 0xba, 0x04, 0x27, 0x82, 0x60, 0x85, 0x81, 0x93, 0x7d, 0xa3, 0xec, 0x85, 0x2e,
+ 0xc1, 0x94, 0xdd, 0xe9, 0x07, 0x4a, 0x5d, 0x6f, 0xb4, 0x3b, 0xbd, 0xb0, 0x0b, 0x30, 0x6d, 0x1f,
+ 0xd8, 0xfd, 0xb8, 0x47, 0xc3, 0x38, 0xc9, 0x3e, 0xb0, 0x7b, 0x81, 0x0f, 0x91, 0x03, 0xb7, 0x83,
+ 0x34, 0xd5, 0x43, 0x8d, 0xfc, 0xa9, 0xb0, 0x79, 0x48, 0x21, 0xcd, 0x83, 0xa8, 0x69, 0x0a, 0x32,
+ 0xd5, 0xba, 0x81, 0x14, 0xd5, 0x41, 0xa6, 0xea, 0xe6, 0xcf, 0x84, 0x8d, 0x73, 0x9a, 0x56, 0x21,
+ 0xda, 0x32, 0x51, 0x4a, 0x8f, 0xc2, 0xa4, 0x55, 0xbf, 0xa6, 0xd1, 0x94, 0x54, 0x6c, 0x07, 0xed,
+ 0xeb, 0x2f, 0xe6, 0x1f, 0x24, 0xf1, 0x9d, 0xc0, 0x0a, 0x92, 0x90, 0x3b, 0x44, 0x2c, 0x3d, 0x02,
+ 0xa2, 0xe6, 0x1e, 0xa8, 0x8e, 0x4d, 0x6a, 0xb2, 0x6b, 0xab, 0x1a, 0xca, 0x3f, 0x44, 0x4d, 0xa9,
+ 0x7c, 0x9b, 0x8b, 0xf1, 0x92, 0x70, 0x6f, 0xea, 0xfb, 0x1e, 0x67, 0x7c, 0x98, 0x2e, 0x09, 0x22,
+ 0x63, 0x6c, 0xb3, 0x20, 0xe2, 0x50, 0x74, 0xbd, 0x78, 0x96, 0x98, 0xe5, 0xec, 0x03, 0x3b, 0xfc,
+ 0xde, 0x07, 0x60, 0x1c, 0x5b, 0x06, 0x2f, 0x7d, 0x84, 0x36, 0x64, 0xf6, 0x41, 0xe8, 0x8d, 0x8b,
+ 0x70, 0x12, 0x1b, 0xb5, 0x90, 0xa7, 0x36, 0x54, 0x4f, 0x0d, 0x59, 0x3f, 0x4e, 0xac, 0x71, 0xdc,
+ 0xb7, 0x98, 0xb2, 0xcb, 0x4f, 0xa7, 0x5d, 0xef, 0xf8, 0x99, 0xf5, 0x04, 0xf5, 0x13, 0xcb, 0x78,
+ 0x6e, 0x7d, 0x60, 0x4d, 0x77, 0xb1, 0x04, 0xd9, 0x70, 0xe2, 0x4b, 0x69, 0xa0, 0xa9, 0x2f, 0x0a,
+ 0xb8, 0x0b, 0x5a, 0xad, 0xae, 0xe1, 0xfe, 0xe5, 0x85, 0x8a, 0x18, 0xc3, 0x7d, 0xd4, 0xe6, 0xc6,
+ 0x6e, 0x45, 0x91, 0xf7, 0xb6, 0x77, 0x37, 0xb6, 0x2a, 0x62, 0x3c, 0xdc, 0xb0, 0x7f, 0x2f, 0x06,
+ 0xb9, 0xee, 0xb3, 0x97, 0xf4, 0x63, 0x70, 0x8a, 0x5f, 0x94, 0xb8, 0xc8, 0x53, 0x6e, 0xea, 0x0e,
+ 0x59, 0x8b, 0x2d, 0x95, 0xee, 0x8b, 0x7e, 0x36, 0x4c, 0x33, 0xab, 0x1a, 0xf2, 0x9e, 0xd5, 0x1d,
+ 0xbc, 0xd2, 0x5a, 0xaa, 0x27, 0x6d, 0xc2, 0x19, 0xd3, 0x52, 0x5c, 0x4f, 0x35, 0x1b, 0xaa, 0xd3,
+ 0x50, 0x82, 0x2b, 0x2a, 0x45, 0xd5, 0x34, 0xe4, 0xba, 0x16, 0xdd, 0x03, 0x7d, 0x96, 0x8f, 0x99,
+ 0x56, 0x8d, 0x19, 0x07, 0x9b, 0x43, 0x99, 0x99, 0xf6, 0x64, 0x6e, 0xfc, 0xa8, 0xcc, 0xbd, 0x0f,
+ 0xd2, 0x2d, 0xd5, 0x56, 0x90, 0xe9, 0x39, 0x1d, 0xd2, 0x71, 0xa7, 0xe4, 0x54, 0x4b, 0xb5, 0x2b,
+ 0xf8, 0xf9, 0xc3, 0x39, 0xf8, 0xfc, 0x63, 0x1c, 0xb2, 0xe1, 0xae, 0x1b, 0x1f, 0x62, 0x34, 0xb2,
+ 0x41, 0x09, 0xa4, 0x84, 0x3d, 0x70, 0xcf, 0x1e, 0x7d, 0x6e, 0x15, 0xef, 0x5c, 0xa5, 0x51, 0xda,
+ 0x0b, 0xcb, 0x14, 0x89, 0xbb, 0x06, 0x9c, 0x5a, 0x88, 0xf6, 0x1e, 0x29, 0x99, 0x3d, 0x49, 0xeb,
+ 0x30, 0x7a, 0xcd, 0x25, 0xdc, 0xa3, 0x84, 0xfb, 0xc1, 0x7b, 0x73, 0x3f, 0x53, 0x23, 0xe4, 0xe9,
+ 0x67, 0x6a, 0xca, 0x76, 0x55, 0xde, 0x2a, 0x6f, 0xca, 0x0c, 0x2e, 0x9d, 0x86, 0x84, 0xa1, 0xde,
+ 0xea, 0x74, 0xef, 0x71, 0x44, 0x34, 0x6c, 0xe0, 0x4f, 0x43, 0xe2, 0x26, 0x52, 0xaf, 0x77, 0xef,
+ 0x2c, 0x44, 0xf4, 0x01, 0xa6, 0xfe, 0x3c, 0x24, 0x49, 0xbc, 0x24, 0x00, 0x16, 0x31, 0x71, 0x44,
+ 0x4a, 0x41, 0x62, 0xb5, 0x2a, 0xe3, 0xf4, 0x17, 0x21, 0x4b, 0xa5, 0xca, 0xce, 0x46, 0x65, 0xb5,
+ 0x22, 0xc6, 0x8a, 0x4b, 0x30, 0x4a, 0x83, 0x80, 0x97, 0x86, 0x1f, 0x06, 0x71, 0x84, 0x3d, 0x32,
+ 0x0e, 0x81, 0x6b, 0xf7, 0xb6, 0x56, 0x2a, 0xb2, 0x18, 0x0b, 0x4f, 0xaf, 0x0b, 0xd9, 0x70, 0xc3,
+ 0xfd, 0xe1, 0xe4, 0xd4, 0x77, 0x05, 0xc8, 0x84, 0x1a, 0x68, 0xdc, 0xf9, 0xa8, 0x86, 0x61, 0xdd,
+ 0x54, 0x54, 0x43, 0x57, 0x5d, 0x96, 0x14, 0x40, 0x44, 0x65, 0x2c, 0x19, 0x76, 0xd2, 0x3e, 0x14,
+ 0xe7, 0x5f, 0x15, 0x40, 0xec, 0xed, 0x5d, 0x7b, 0x1c, 0x14, 0x3e, 0x52, 0x07, 0x5f, 0x11, 0x20,
+ 0xd7, 0xdd, 0xb0, 0xf6, 0xb8, 0x77, 0xee, 0x23, 0x75, 0xef, 0xad, 0x18, 0x8c, 0x77, 0xb5, 0xa9,
+ 0xc3, 0x7a, 0xf7, 0x59, 0x98, 0xd4, 0x1b, 0xa8, 0x65, 0x5b, 0x1e, 0x32, 0xb5, 0x8e, 0x62, 0xa0,
+ 0x1b, 0xc8, 0xc8, 0x17, 0x49, 0xa1, 0x98, 0xbf, 0x77, 0x23, 0x3c, 0xb7, 0x11, 0xe0, 0x36, 0x31,
+ 0xac, 0x34, 0xb5, 0xb1, 0x56, 0xd9, 0xda, 0xa9, 0xee, 0x56, 0xb6, 0x57, 0x9f, 0x57, 0xf6, 0xb6,
+ 0x7f, 0x62, 0xbb, 0xfa, 0xec, 0xb6, 0x2c, 0xea, 0x3d, 0x66, 0x1f, 0xe0, 0x52, 0xdf, 0x01, 0xb1,
+ 0xd7, 0x29, 0xe9, 0x14, 0x0c, 0x72, 0x4b, 0x1c, 0x91, 0xa6, 0x60, 0x62, 0xbb, 0xaa, 0xd4, 0x36,
+ 0xd6, 0x2a, 0x4a, 0xe5, 0xca, 0x95, 0xca, 0xea, 0x6e, 0x8d, 0x5e, 0x6d, 0xf8, 0xd6, 0xbb, 0xdd,
+ 0x8b, 0xfa, 0xe5, 0x38, 0x4c, 0x0d, 0xf0, 0x44, 0x2a, 0xb3, 0x43, 0x09, 0x3d, 0x27, 0x3d, 0x31,
+ 0x8c, 0xf7, 0x73, 0xb8, 0x2b, 0xd8, 0x51, 0x1d, 0x8f, 0x9d, 0x61, 0x1e, 0x01, 0x1c, 0x25, 0xd3,
+ 0xd3, 0xf7, 0x75, 0xe4, 0xb0, 0x9b, 0x20, 0x7a, 0x52, 0x99, 0x08, 0xe4, 0xf4, 0x32, 0xe8, 0x71,
+ 0x90, 0x6c, 0xcb, 0xd5, 0x3d, 0xfd, 0x06, 0x52, 0x74, 0x93, 0x5f, 0x1b, 0xe1, 0x93, 0x4b, 0x42,
+ 0x16, 0xb9, 0x66, 0xc3, 0xf4, 0x7c, 0x6b, 0x13, 0x35, 0xd5, 0x1e, 0x6b, 0x5c, 0xc0, 0xe3, 0xb2,
+ 0xc8, 0x35, 0xbe, 0xf5, 0x39, 0xc8, 0x36, 0xac, 0x36, 0x6e, 0xe7, 0xa8, 0x1d, 0xde, 0x2f, 0x04,
+ 0x39, 0x43, 0x65, 0xbe, 0x09, 0x6b, 0xd4, 0x83, 0xfb, 0xaa, 0xac, 0x9c, 0xa1, 0x32, 0x6a, 0xf2,
+ 0x30, 0x4c, 0xa8, 0xcd, 0xa6, 0x83, 0xc9, 0x39, 0x11, 0x3d, 0x7a, 0xe4, 0x7c, 0x31, 0x31, 0x9c,
+ 0x79, 0x06, 0x52, 0x3c, 0x0e, 0x78, 0x4b, 0xc6, 0x91, 0x50, 0x6c, 0x7a, 0x9e, 0x8e, 0xcd, 0xa6,
+ 0xe5, 0x94, 0xc9, 0x95, 0xe7, 0x20, 0xab, 0xbb, 0x4a, 0x70, 0xfd, 0x1e, 0x3b, 0x1b, 0x9b, 0x4d,
+ 0xc9, 0x19, 0xdd, 0xf5, 0xaf, 0x2e, 0x8b, 0xaf, 0xc5, 0x20, 0xd7, 0xfd, 0xf9, 0x40, 0x5a, 0x83,
+ 0x94, 0x61, 0x69, 0x2a, 0x49, 0x2d, 0xfa, 0xed, 0x6a, 0x36, 0xe2, 0x8b, 0xc3, 0xdc, 0x26, 0xb3,
+ 0x97, 0x7d, 0xe4, 0xcc, 0xdf, 0x09, 0x90, 0xe2, 0x62, 0xe9, 0x24, 0x24, 0x6c, 0xd5, 0x3b, 0x20,
+ 0x74, 0xc9, 0x95, 0x98, 0x28, 0xc8, 0xe4, 0x19, 0xcb, 0x5d, 0x5b, 0x35, 0x49, 0x0a, 0x30, 0x39,
+ 0x7e, 0xc6, 0xf3, 0x6a, 0x20, 0xb5, 0x41, 0xce, 0x35, 0x56, 0xab, 0x85, 0x4c, 0xcf, 0xe5, 0xf3,
+ 0xca, 0xe4, 0xab, 0x4c, 0x2c, 0x3d, 0x06, 0x93, 0x9e, 0xa3, 0xea, 0x46, 0x97, 0x6d, 0x82, 0xd8,
+ 0x8a, 0x5c, 0xe1, 0x1b, 0x97, 0xe0, 0x34, 0xe7, 0x6d, 0x20, 0x4f, 0xd5, 0x0e, 0x50, 0x23, 0x00,
+ 0x8d, 0x92, 0xfb, 0x8b, 0x53, 0xcc, 0x60, 0x8d, 0xe9, 0x39, 0xb6, 0xf8, 0x7d, 0x01, 0x26, 0xf9,
+ 0x49, 0xac, 0xe1, 0x07, 0x6b, 0x0b, 0x40, 0x35, 0x4d, 0xcb, 0x0b, 0x87, 0xab, 0x3f, 0x95, 0xfb,
+ 0x70, 0x73, 0x65, 0x1f, 0x24, 0x87, 0x08, 0x66, 0x5a, 0x00, 0x81, 0xe6, 0xc8, 0xb0, 0x9d, 0x81,
+ 0x0c, 0xfb, 0x36, 0x44, 0x3e, 0x30, 0xd2, 0xb3, 0x3b, 0x50, 0x11, 0x3e, 0xb2, 0x49, 0xd3, 0x90,
+ 0xac, 0xa3, 0xa6, 0x6e, 0xb2, 0x1b, 0x5f, 0xfa, 0xc0, 0x6f, 0x58, 0x12, 0xfe, 0x0d, 0xcb, 0xca,
+ 0x67, 0x60, 0x4a, 0xb3, 0x5a, 0xbd, 0xee, 0xae, 0x88, 0x3d, 0xf7, 0x07, 0xee, 0x55, 0xe1, 0x05,
+ 0x08, 0x5a, 0xcc, 0xf7, 0x04, 0xe1, 0x2b, 0xb1, 0xf8, 0xfa, 0xce, 0xca, 0xd7, 0x63, 0x33, 0xeb,
+ 0x14, 0xba, 0xc3, 0x47, 0x2a, 0xa3, 0x7d, 0x03, 0x69, 0xd8, 0x7b, 0xf8, 0xea, 0x63, 0xf0, 0x44,
+ 0x53, 0xf7, 0x0e, 0xda, 0xf5, 0x39, 0xcd, 0x6a, 0xcd, 0x37, 0xad, 0xa6, 0x15, 0x7c, 0x53, 0xc5,
+ 0x4f, 0xe4, 0x81, 0xfc, 0xc5, 0xbe, 0xab, 0xa6, 0x7d, 0xe9, 0x4c, 0xe4, 0x47, 0xd8, 0xd2, 0x36,
+ 0x4c, 0x31, 0x63, 0x85, 0x7c, 0xd8, 0xa1, 0xc7, 0x13, 0xe9, 0x9e, 0x97, 0x63, 0xf9, 0x6f, 0xbe,
+ 0x4d, 0xb6, 0x6b, 0x79, 0x92, 0x41, 0xb1, 0x8e, 0x9e, 0x60, 0x4a, 0x32, 0x9c, 0xe8, 0xe2, 0xa3,
+ 0x4b, 0x13, 0x39, 0x11, 0x8c, 0xdf, 0x63, 0x8c, 0x53, 0x21, 0xc6, 0x1a, 0x83, 0x96, 0x56, 0x61,
+ 0xfc, 0x38, 0x5c, 0x7f, 0xc3, 0xb8, 0xb2, 0x28, 0x4c, 0xb2, 0x0e, 0x13, 0x84, 0x44, 0x6b, 0xbb,
+ 0x9e, 0xd5, 0x22, 0x75, 0xef, 0xde, 0x34, 0x7f, 0xfb, 0x36, 0x5d, 0x2b, 0x39, 0x0c, 0x5b, 0xf5,
+ 0x51, 0xa5, 0x12, 0x90, 0x6f, 0x59, 0x0d, 0xa4, 0x19, 0x11, 0x0c, 0xaf, 0x33, 0x47, 0x7c, 0xfb,
+ 0xd2, 0xa7, 0x61, 0x1a, 0xff, 0x4d, 0xca, 0x52, 0xd8, 0x93, 0xe8, 0x9b, 0xb4, 0xfc, 0xf7, 0x5f,
+ 0xa2, 0xcb, 0x71, 0xca, 0x27, 0x08, 0xf9, 0x14, 0x9a, 0xc5, 0x26, 0xf2, 0x3c, 0xe4, 0xb8, 0x8a,
+ 0x6a, 0x0c, 0x72, 0x2f, 0x74, 0x15, 0x91, 0xff, 0xe2, 0x3b, 0xdd, 0xb3, 0xb8, 0x4e, 0x91, 0x65,
+ 0xc3, 0x28, 0xed, 0xc1, 0xa9, 0x01, 0x59, 0x31, 0x04, 0xe7, 0xcb, 0x8c, 0x73, 0xba, 0x2f, 0x33,
+ 0x30, 0xed, 0x0e, 0x70, 0xb9, 0x3f, 0x97, 0x43, 0x70, 0xfe, 0x16, 0xe3, 0x94, 0x18, 0x96, 0x4f,
+ 0x29, 0x66, 0x7c, 0x06, 0x26, 0x6f, 0x20, 0xa7, 0x6e, 0xb9, 0xec, 0xfa, 0x67, 0x08, 0xba, 0x57,
+ 0x18, 0xdd, 0x04, 0x03, 0x92, 0xfb, 0x20, 0xcc, 0x75, 0x09, 0x52, 0xfb, 0xaa, 0x86, 0x86, 0xa0,
+ 0xf8, 0x12, 0xa3, 0x18, 0xc3, 0xf6, 0x18, 0x5a, 0x86, 0x6c, 0xd3, 0x62, 0x3b, 0x53, 0x34, 0xfc,
+ 0x55, 0x06, 0xcf, 0x70, 0x0c, 0xa3, 0xb0, 0x2d, 0xbb, 0x6d, 0xe0, 0x6d, 0x2b, 0x9a, 0xe2, 0xb7,
+ 0x39, 0x05, 0xc7, 0x30, 0x8a, 0x63, 0x84, 0xf5, 0x77, 0x38, 0x85, 0x1b, 0x8a, 0xe7, 0xd3, 0x90,
+ 0xb1, 0x4c, 0xa3, 0x63, 0x99, 0xc3, 0x38, 0xf1, 0x65, 0xc6, 0x00, 0x0c, 0x82, 0x09, 0x2e, 0x43,
+ 0x7a, 0xd8, 0x89, 0xf8, 0xbd, 0x77, 0xf8, 0xf2, 0xe0, 0x33, 0xb0, 0x0e, 0x13, 0xbc, 0x40, 0xe9,
+ 0x96, 0x39, 0x04, 0xc5, 0x57, 0x19, 0x45, 0x2e, 0x04, 0x63, 0xc3, 0xf0, 0x90, 0xeb, 0x35, 0xd1,
+ 0x30, 0x24, 0xaf, 0xf1, 0x61, 0x30, 0x08, 0x0b, 0x65, 0x1d, 0x99, 0xda, 0xc1, 0x70, 0x0c, 0x5f,
+ 0xe3, 0xa1, 0xe4, 0x18, 0x4c, 0xb1, 0x0a, 0xe3, 0x2d, 0xd5, 0x71, 0x0f, 0x54, 0x63, 0xa8, 0xe9,
+ 0xf8, 0x7d, 0xc6, 0x91, 0xf5, 0x41, 0x2c, 0x22, 0x6d, 0xf3, 0x38, 0x34, 0x5f, 0xe7, 0x11, 0x09,
+ 0xc1, 0xd8, 0xd2, 0x73, 0x3d, 0x72, 0x57, 0x76, 0x1c, 0xb6, 0x3f, 0xe0, 0x4b, 0x8f, 0x62, 0xb7,
+ 0xc2, 0x8c, 0x97, 0x21, 0xed, 0xea, 0xb7, 0x86, 0xa2, 0xf9, 0x43, 0x3e, 0xd3, 0x04, 0x80, 0xc1,
+ 0xcf, 0xc3, 0xe9, 0x81, 0xdb, 0xc4, 0x10, 0x64, 0x7f, 0xc4, 0xc8, 0x4e, 0x0e, 0xd8, 0x2a, 0x58,
+ 0x49, 0x38, 0x2e, 0xe5, 0x1f, 0xf3, 0x92, 0x80, 0x7a, 0xb8, 0x76, 0xf0, 0x59, 0xc1, 0x55, 0xf7,
+ 0x8f, 0x17, 0xb5, 0x3f, 0xe1, 0x51, 0xa3, 0xd8, 0xae, 0xa8, 0xed, 0xc2, 0x49, 0xc6, 0x78, 0xbc,
+ 0x79, 0xfd, 0x06, 0x2f, 0xac, 0x14, 0xbd, 0xd7, 0x3d, 0xbb, 0x9f, 0x81, 0x19, 0x3f, 0x9c, 0xbc,
+ 0x29, 0x75, 0x95, 0x96, 0x6a, 0x0f, 0xc1, 0xfc, 0x4d, 0xc6, 0xcc, 0x2b, 0xbe, 0xdf, 0xd5, 0xba,
+ 0x5b, 0xaa, 0x8d, 0xc9, 0x9f, 0x83, 0x3c, 0x27, 0x6f, 0x9b, 0x0e, 0xd2, 0xac, 0xa6, 0xa9, 0xdf,
+ 0x42, 0x8d, 0x21, 0xa8, 0xff, 0xb4, 0x67, 0xaa, 0xf6, 0x42, 0x70, 0xcc, 0xbc, 0x01, 0xa2, 0xdf,
+ 0xab, 0x28, 0x7a, 0xcb, 0xb6, 0x1c, 0x2f, 0x82, 0xf1, 0xcf, 0xf8, 0x4c, 0xf9, 0xb8, 0x0d, 0x02,
+ 0x2b, 0x55, 0x20, 0x47, 0x1e, 0x87, 0x4d, 0xc9, 0x3f, 0x67, 0x44, 0xe3, 0x01, 0x8a, 0x15, 0x0e,
+ 0xcd, 0x6a, 0xd9, 0xaa, 0x33, 0x4c, 0xfd, 0xfb, 0x0b, 0x5e, 0x38, 0x18, 0x84, 0x15, 0x0e, 0xaf,
+ 0x63, 0x23, 0xbc, 0xdb, 0x0f, 0xc1, 0xf0, 0x2d, 0x5e, 0x38, 0x38, 0x86, 0x51, 0xf0, 0x86, 0x61,
+ 0x08, 0x8a, 0xbf, 0xe4, 0x14, 0x1c, 0x83, 0x29, 0x3e, 0x15, 0x6c, 0xb4, 0x0e, 0x6a, 0xea, 0xae,
+ 0xe7, 0xd0, 0x56, 0xf8, 0xde, 0x54, 0xdf, 0x7e, 0xa7, 0xbb, 0x09, 0x93, 0x43, 0x50, 0x5c, 0x89,
+ 0xd8, 0x15, 0x2a, 0x39, 0x29, 0x45, 0x3b, 0xf6, 0x1d, 0x5e, 0x89, 0x42, 0x30, 0xec, 0x5b, 0xa8,
+ 0x43, 0xc4, 0x61, 0xd7, 0xf0, 0xf9, 0x60, 0x08, 0xba, 0xef, 0xf6, 0x38, 0x57, 0xe3, 0x58, 0xcc,
+ 0x19, 0xea, 0x7f, 0xda, 0xe6, 0x75, 0xd4, 0x19, 0x2a, 0x3b, 0xff, 0xaa, 0xa7, 0xff, 0xd9, 0xa3,
+ 0x48, 0x5a, 0x43, 0x26, 0x7a, 0xfa, 0x29, 0x29, 0xea, 0x57, 0x40, 0xf9, 0x9f, 0xbe, 0xcb, 0xc6,
+ 0xdb, 0xdd, 0x4e, 0x95, 0x36, 0x71, 0x92, 0x77, 0x37, 0x3d, 0xd1, 0x64, 0x2f, 0xdd, 0xf5, 0xf3,
+ 0xbc, 0xab, 0xe7, 0x29, 0x5d, 0x81, 0xf1, 0xae, 0x86, 0x27, 0x9a, 0xea, 0x67, 0x18, 0x55, 0x36,
+ 0xdc, 0xef, 0x94, 0x96, 0x20, 0x81, 0x9b, 0x97, 0x68, 0xf8, 0xcf, 0x32, 0x38, 0x31, 0x2f, 0x7d,
+ 0x02, 0x52, 0xbc, 0x69, 0x89, 0x86, 0xfe, 0x1c, 0x83, 0xfa, 0x10, 0x0c, 0xe7, 0x0d, 0x4b, 0x34,
+ 0xfc, 0xe7, 0x39, 0x9c, 0x43, 0x30, 0x7c, 0xf8, 0x10, 0xfe, 0xf5, 0x2f, 0x24, 0xd8, 0xa6, 0xc3,
+ 0x63, 0x77, 0x19, 0xc6, 0x58, 0xa7, 0x12, 0x8d, 0xfe, 0x1c, 0x7b, 0x39, 0x47, 0x94, 0x2e, 0x40,
+ 0x72, 0xc8, 0x80, 0xff, 0x12, 0x83, 0x52, 0xfb, 0xd2, 0x2a, 0x64, 0x42, 0xdd, 0x49, 0x34, 0xfc,
+ 0x97, 0x19, 0x3c, 0x8c, 0xc2, 0xae, 0xb3, 0xee, 0x24, 0x9a, 0xe0, 0x57, 0xb8, 0xeb, 0x0c, 0x81,
+ 0xc3, 0xc6, 0x1b, 0x93, 0x68, 0xf4, 0xaf, 0xf2, 0xa8, 0x73, 0x48, 0xe9, 0x69, 0x48, 0xfb, 0x9b,
+ 0x4d, 0x34, 0xfe, 0xd7, 0x18, 0x3e, 0xc0, 0xe0, 0x08, 0x84, 0x36, 0xbb, 0x68, 0x8a, 0xcf, 0xf3,
+ 0x08, 0x84, 0x50, 0x78, 0x19, 0xf5, 0x36, 0x30, 0xd1, 0x4c, 0xbf, 0xce, 0x97, 0x51, 0x4f, 0xff,
+ 0x82, 0x67, 0x93, 0xd4, 0xfc, 0x68, 0x8a, 0xdf, 0xe0, 0xb3, 0x49, 0xec, 0xb1, 0x1b, 0xbd, 0x1d,
+ 0x41, 0x34, 0xc7, 0x6f, 0x72, 0x37, 0x7a, 0x1a, 0x82, 0xd2, 0x0e, 0x48, 0xfd, 0xdd, 0x40, 0x34,
+ 0xdf, 0x17, 0x18, 0xdf, 0x64, 0x5f, 0x33, 0x50, 0x7a, 0x16, 0x4e, 0x0e, 0xee, 0x04, 0xa2, 0x59,
+ 0xbf, 0x78, 0xb7, 0xe7, 0xec, 0x16, 0x6e, 0x04, 0x4a, 0xbb, 0xc1, 0x96, 0x12, 0xee, 0x02, 0xa2,
+ 0x69, 0x5f, 0xbe, 0xdb, 0x5d, 0xb8, 0xc3, 0x4d, 0x40, 0xa9, 0x0c, 0x10, 0x6c, 0xc0, 0xd1, 0x5c,
+ 0xaf, 0x30, 0xae, 0x10, 0x08, 0x2f, 0x0d, 0xb6, 0xff, 0x46, 0xe3, 0xbf, 0xc4, 0x97, 0x06, 0x43,
+ 0xe0, 0xa5, 0xc1, 0xb7, 0xde, 0x68, 0xf4, 0xab, 0x7c, 0x69, 0x70, 0x08, 0xce, 0xec, 0xd0, 0xee,
+ 0x16, 0xcd, 0xf0, 0x65, 0x9e, 0xd9, 0x21, 0x54, 0x69, 0x1b, 0x26, 0xfb, 0x36, 0xc4, 0x68, 0xaa,
+ 0xaf, 0x30, 0x2a, 0xb1, 0x77, 0x3f, 0x0c, 0x6f, 0x5e, 0x6c, 0x33, 0x8c, 0x66, 0xfb, 0xdd, 0x9e,
+ 0xcd, 0x8b, 0xed, 0x85, 0xa5, 0xcb, 0x90, 0x32, 0xdb, 0x86, 0x81, 0x17, 0x8f, 0x74, 0xef, 0x5f,
+ 0xee, 0xe5, 0xff, 0xf9, 0x7d, 0x16, 0x1d, 0x0e, 0x28, 0x2d, 0x41, 0x12, 0xb5, 0xea, 0xa8, 0x11,
+ 0x85, 0xfc, 0x97, 0xf7, 0x79, 0xc1, 0xc4, 0xd6, 0xa5, 0xa7, 0x01, 0xe8, 0xd5, 0x08, 0xf9, 0xec,
+ 0x17, 0x81, 0xfd, 0xd7, 0xf7, 0xd9, 0x6f, 0x6a, 0x02, 0x48, 0x40, 0x40, 0x7f, 0xa1, 0x73, 0x6f,
+ 0x82, 0x77, 0xba, 0x09, 0xc8, 0x8c, 0x5c, 0x82, 0xb1, 0x6b, 0xae, 0x65, 0x7a, 0x6a, 0x33, 0x0a,
+ 0xfd, 0x6f, 0x0c, 0xcd, 0xed, 0x71, 0xc0, 0x5a, 0x96, 0x83, 0x3c, 0xb5, 0xe9, 0x46, 0x61, 0xff,
+ 0x9d, 0x61, 0x7d, 0x00, 0x06, 0x6b, 0xaa, 0xeb, 0x0d, 0x33, 0xee, 0xff, 0xe0, 0x60, 0x0e, 0xc0,
+ 0x4e, 0xe3, 0xbf, 0xaf, 0xa3, 0x4e, 0x14, 0xf6, 0x5d, 0xee, 0x34, 0xb3, 0x2f, 0x7d, 0x02, 0xd2,
+ 0xf8, 0x4f, 0xfa, 0x43, 0xb9, 0x08, 0xf0, 0x7f, 0x32, 0x70, 0x80, 0xc0, 0x6f, 0x76, 0xbd, 0x86,
+ 0xa7, 0x47, 0x07, 0xfb, 0xbf, 0xd8, 0x4c, 0x73, 0xfb, 0x52, 0x19, 0x32, 0xae, 0xd7, 0x68, 0xb4,
+ 0x59, 0x7f, 0x1a, 0x01, 0xff, 0xef, 0xf7, 0xfd, 0x2b, 0x0b, 0x1f, 0x83, 0x67, 0xfb, 0xe6, 0x75,
+ 0xcf, 0xb6, 0xc8, 0x67, 0x8e, 0x28, 0x86, 0xbb, 0x8c, 0x21, 0x04, 0x59, 0xa9, 0x0c, 0xbe, 0xbe,
+ 0x85, 0x75, 0x6b, 0xdd, 0xa2, 0x17, 0xb7, 0x2f, 0x14, 0xa3, 0x6f, 0x60, 0xe1, 0x7f, 0x52, 0x70,
+ 0x42, 0xb3, 0x5a, 0x75, 0xcb, 0x9d, 0xaf, 0x5b, 0xde, 0xc1, 0xbc, 0x65, 0x32, 0x32, 0x29, 0x6e,
+ 0x99, 0x68, 0xe6, 0x78, 0x97, 0xb8, 0xc5, 0xd3, 0x90, 0xac, 0xb5, 0xeb, 0xf5, 0x8e, 0x24, 0x42,
+ 0xdc, 0x6d, 0xd7, 0xd9, 0x2f, 0xad, 0xf0, 0x9f, 0xc5, 0x37, 0xe3, 0x30, 0x5e, 0x36, 0x8c, 0xdd,
+ 0x8e, 0x8d, 0xdc, 0xaa, 0x89, 0xaa, 0xfb, 0x52, 0x1e, 0x46, 0xc9, 0x28, 0x9f, 0x22, 0x66, 0xc2,
+ 0xd5, 0x11, 0x99, 0x3d, 0xfb, 0x9a, 0x05, 0x72, 0xbd, 0x1d, 0xf3, 0x35, 0x0b, 0xbe, 0xe6, 0x3c,
+ 0xbd, 0xdd, 0xf6, 0x35, 0xe7, 0x7d, 0xcd, 0x22, 0xb9, 0xe3, 0x8e, 0xfb, 0x9a, 0x45, 0x5f, 0xb3,
+ 0x44, 0xbe, 0xe1, 0x8c, 0xfb, 0x9a, 0x25, 0x5f, 0xb3, 0x4c, 0xbe, 0xda, 0x24, 0x7c, 0xcd, 0xb2,
+ 0xaf, 0xb9, 0x40, 0x3e, 0xd6, 0x4c, 0xfa, 0x9a, 0x0b, 0xbe, 0xe6, 0x22, 0xf9, 0x40, 0x23, 0xf9,
+ 0x9a, 0x8b, 0xbe, 0xe6, 0x12, 0xf9, 0x49, 0xd5, 0x98, 0xaf, 0xb9, 0x24, 0xcd, 0xc0, 0x18, 0x1d,
+ 0xd9, 0x93, 0xe4, 0x2b, 0xfe, 0xc4, 0xd5, 0x11, 0x99, 0x0b, 0x02, 0xdd, 0x53, 0xe4, 0x67, 0x53,
+ 0xa3, 0x81, 0xee, 0xa9, 0x40, 0xb7, 0x40, 0xfe, 0xf7, 0x86, 0x18, 0xe8, 0x16, 0x02, 0xdd, 0xf9,
+ 0xfc, 0x38, 0x4e, 0x8e, 0x40, 0x77, 0x3e, 0xd0, 0x2d, 0xe6, 0x73, 0x78, 0x06, 0x02, 0xdd, 0x62,
+ 0xa0, 0x5b, 0xca, 0x4f, 0x9c, 0x15, 0x66, 0xb3, 0x81, 0x6e, 0x49, 0x7a, 0x02, 0x32, 0x6e, 0xbb,
+ 0xae, 0xb0, 0x32, 0x4f, 0x7e, 0x9e, 0x95, 0x59, 0x80, 0x39, 0x9c, 0x13, 0x64, 0x5a, 0xaf, 0x8e,
+ 0xc8, 0xe0, 0xb6, 0xeb, 0xac, 0x0a, 0xaf, 0x64, 0x81, 0x5c, 0x3e, 0x29, 0xe4, 0x57, 0xd5, 0xc5,
+ 0x37, 0x04, 0x48, 0xef, 0xde, 0xb4, 0xc8, 0x37, 0x7c, 0xf7, 0xff, 0x79, 0x72, 0xb9, 0xd3, 0xe7,
+ 0x17, 0xc9, 0x67, 0xd6, 0xf4, 0x55, 0x41, 0xe6, 0x82, 0x40, 0xb7, 0x94, 0x7f, 0x80, 0x0c, 0xc8,
+ 0xd7, 0x2d, 0x49, 0xf3, 0x90, 0x0d, 0x0d, 0x68, 0x81, 0xfc, 0x70, 0xaa, 0x7b, 0x44, 0x82, 0x9c,
+ 0x09, 0x46, 0xb4, 0xb0, 0x92, 0x04, 0x9c, 0xf6, 0xf8, 0x1f, 0xef, 0xa6, 0x55, 0xfc, 0x7c, 0x0c,
+ 0x32, 0xf4, 0xbe, 0x9a, 0x8c, 0x0a, 0xbf, 0x8a, 0x1e, 0x69, 0x3a, 0xcc, 0x8d, 0x11, 0x99, 0x0b,
+ 0x24, 0x19, 0x80, 0x9a, 0xe2, 0x0c, 0xa7, 0x9e, 0xac, 0x3c, 0xf9, 0x0f, 0x6f, 0x9e, 0x79, 0xfc,
+ 0xc8, 0x15, 0x84, 0x63, 0x37, 0x4f, 0xeb, 0xf7, 0xdc, 0x9e, 0x6e, 0x7a, 0x4f, 0x2d, 0x5c, 0xc4,
+ 0x01, 0x0e, 0x58, 0xa4, 0x3d, 0x48, 0xad, 0xaa, 0x2e, 0xf9, 0xc9, 0x25, 0x71, 0x3d, 0xb1, 0x72,
+ 0xe1, 0x7f, 0xdf, 0x3c, 0x73, 0x3e, 0x82, 0x91, 0x95, 0xd6, 0xb9, 0xad, 0x0e, 0x66, 0x5d, 0x5e,
+ 0xc4, 0xf0, 0xab, 0x23, 0xb2, 0x4f, 0x25, 0x2d, 0x70, 0x57, 0xb7, 0xd5, 0x16, 0xfd, 0x85, 0x58,
+ 0x7c, 0x45, 0x3c, 0x7c, 0xf3, 0x4c, 0x76, 0xab, 0x13, 0xc8, 0x03, 0x57, 0xf0, 0xd3, 0x4a, 0x0a,
+ 0x46, 0xa9, 0xab, 0x2b, 0x6b, 0xaf, 0xdf, 0x29, 0x8c, 0xbc, 0x71, 0xa7, 0x30, 0xf2, 0xf7, 0x77,
+ 0x0a, 0x23, 0x6f, 0xdd, 0x29, 0x08, 0xef, 0xde, 0x29, 0x08, 0xef, 0xdd, 0x29, 0x08, 0xb7, 0x0f,
+ 0x0b, 0xc2, 0xd7, 0x0e, 0x0b, 0xc2, 0x37, 0x0e, 0x0b, 0xc2, 0xb7, 0x0f, 0x0b, 0xc2, 0xeb, 0x87,
+ 0x05, 0xe1, 0x8d, 0xc3, 0x82, 0xf0, 0xd6, 0x61, 0x41, 0xf8, 0xe1, 0x61, 0x61, 0xe4, 0xdd, 0xc3,
+ 0x82, 0xf0, 0xde, 0x61, 0x61, 0xe4, 0xf6, 0x0f, 0x0a, 0x23, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff,
+ 0x73, 0xc4, 0x37, 0x6f, 0x6c, 0x37, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -4742,7 +4786,7 @@ func (m *Subby) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4770,7 +4814,7 @@ func (m *Subby) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4780,6 +4824,9 @@ func (m *Subby) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4795,6 +4842,9 @@ func (m *Subby) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthOne
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthOne
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -4823,7 +4873,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4873,7 +4923,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4893,7 +4943,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4913,7 +4963,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4933,7 +4983,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4953,7 +5003,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4974,7 +5024,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5039,7 +5089,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5060,7 +5110,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5070,6 +5120,9 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5089,7 +5142,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5098,6 +5151,9 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5119,7 +5175,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5128,6 +5184,9 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5146,6 +5205,9 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthOne
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthOne
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -5174,7 +5236,7 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5224,7 +5286,7 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5244,7 +5306,7 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5254,6 +5316,9 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5273,7 +5338,7 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5282,6 +5347,9 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5303,7 +5371,7 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5312,6 +5380,9 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5330,6 +5401,9 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthOne
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthOne
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -5358,7 +5432,7 @@ func (m *CustomOneof) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5386,7 +5460,7 @@ func (m *CustomOneof) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5396,6 +5470,9 @@ func (m *CustomOneof) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5415,7 +5492,7 @@ func (m *CustomOneof) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5424,6 +5501,9 @@ func (m *CustomOneof) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5448,7 +5528,7 @@ func (m *CustomOneof) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift
+ v |= github_com_gogo_protobuf_test_casttype.MyUint64Type(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5468,7 +5548,7 @@ func (m *CustomOneof) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5483,6 +5563,9 @@ func (m *CustomOneof) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthOne
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthOne
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -5550,10 +5633,13 @@ func skipOne(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthOne
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthOne
+ }
return iNdEx, nil
case 3:
for {
@@ -5582,6 +5668,9 @@ func skipOne(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthOne
+ }
}
return iNdEx, nil
case 4:
@@ -5600,47 +5689,3 @@ var (
ErrInvalidLengthOne = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowOne = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("combos/both/one.proto", fileDescriptor_one_1ca237849e17659c) }
-
-var fileDescriptor_one_1ca237849e17659c = []byte{
- // 596 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0x3f, 0x4f, 0xdb, 0x40,
- 0x14, 0x00, 0x70, 0x3f, 0x42, 0x42, 0xb8, 0x84, 0x92, 0x5a, 0xaa, 0x74, 0x65, 0x38, 0x4e, 0x69,
- 0x2b, 0xdd, 0x50, 0x12, 0xe2, 0xd8, 0xfc, 0x19, 0x6b, 0xaa, 0x2a, 0x0b, 0x45, 0x32, 0x30, 0xa3,
- 0x98, 0x9a, 0x10, 0x89, 0xf8, 0x10, 0x77, 0x16, 0xf2, 0xc6, 0x67, 0xe8, 0xa7, 0xe8, 0xd8, 0xb1,
- 0x1f, 0x81, 0x31, 0x63, 0xd5, 0x21, 0xc2, 0xee, 0xd2, 0x91, 0x11, 0x75, 0xaa, 0xce, 0x26, 0x77,
- 0x95, 0xaa, 0xaa, 0x4b, 0xa7, 0xf8, 0xbd, 0x9f, 0xef, 0xe5, 0x3d, 0xdf, 0x1d, 0x7a, 0x76, 0xca,
- 0x27, 0x21, 0x17, 0xdd, 0x90, 0xcb, 0xf3, 0x2e, 0x8f, 0xa3, 0xce, 0xe5, 0x15, 0x97, 0xdc, 0xae,
- 0xf0, 0x38, 0x5a, 0xdb, 0x18, 0x8d, 0xe5, 0x79, 0x12, 0x76, 0x4e, 0xf9, 0xa4, 0x3b, 0xe2, 0x23,
- 0xde, 0x2d, 0x2c, 0x4c, 0xce, 0x8a, 0xa8, 0x08, 0x8a, 0xa7, 0x72, 0x4d, 0xfb, 0x39, 0xaa, 0x1e,
- 0x26, 0x61, 0x98, 0xda, 0x2d, 0x54, 0x11, 0x49, 0x88, 0x81, 0x02, 0x5b, 0x0e, 0xd4, 0x63, 0x7b,
- 0x56, 0x41, 0x2b, 0x6f, 0x2e, 0x2e, 0x8e, 0xd2, 0xcb, 0x48, 0x1c, 0xc4, 0xd1, 0xc1, 0x99, 0x8d,
- 0x51, 0xed, 0xdd, 0x38, 0xba, 0xf8, 0xd0, 0x2b, 0x5e, 0x83, 0x81, 0x15, 0x3c, 0xc6, 0x5a, 0x1c,
- 0xbc, 0x40, 0x81, 0x2d, 0x68, 0x71, 0xb4, 0xf4, 0x71, 0x85, 0x02, 0xab, 0x6a, 0xe9, 0x6b, 0x71,
- 0xf1, 0x22, 0x05, 0x56, 0xd1, 0xe2, 0x6a, 0xf1, 0x70, 0x95, 0x02, 0x5b, 0xd1, 0xe2, 0x69, 0xd9,
- 0xc2, 0x35, 0x0a, 0x6c, 0x51, 0xcb, 0x96, 0x96, 0x6d, 0xbc, 0x44, 0x81, 0x3d, 0xd5, 0xb2, 0xad,
- 0x65, 0x07, 0xd7, 0x29, 0x30, 0x5b, 0xcb, 0x8e, 0x96, 0x5d, 0xbc, 0x4c, 0x81, 0x2d, 0x69, 0xd9,
- 0xb5, 0xd7, 0xd0, 0x52, 0x39, 0xd9, 0x26, 0x46, 0x14, 0xd8, 0xea, 0xc0, 0x0a, 0xe6, 0x09, 0x63,
- 0x3d, 0xdc, 0xa0, 0xc0, 0x6a, 0xc6, 0x7a, 0xc6, 0x1c, 0xdc, 0xa4, 0xc0, 0x5a, 0xc6, 0x1c, 0x63,
- 0x7d, 0xbc, 0x42, 0x81, 0xd5, 0x8d, 0xf5, 0x8d, 0xb9, 0xf8, 0x89, 0xda, 0x01, 0x63, 0xae, 0x31,
- 0x0f, 0xaf, 0x52, 0x60, 0x4d, 0x63, 0x9e, 0xbd, 0x81, 0x1a, 0x22, 0x09, 0x4f, 0x26, 0x91, 0x10,
- 0xc3, 0x51, 0x84, 0x5b, 0x14, 0x58, 0xc3, 0x41, 0x1d, 0x75, 0x26, 0x8a, 0x6d, 0x1d, 0x58, 0x01,
- 0x12, 0x49, 0xb8, 0x5f, 0xba, 0xdf, 0x44, 0x48, 0x46, 0x42, 0x9e, 0xf0, 0x38, 0xe2, 0x67, 0xed,
- 0x29, 0xa0, 0xe5, 0xa3, 0x6b, 0x7e, 0xa0, 0x02, 0xf1, 0x9f, 0x37, 0x77, 0xde, 0x74, 0xdf, 0xc5,
- 0xed, 0x62, 0x20, 0x08, 0xe6, 0x09, 0x63, 0x1e, 0x7e, 0x51, 0x0c, 0xa4, 0xcd, 0xb3, 0xbb, 0xa8,
- 0xf9, 0xdb, 0x40, 0x0e, 0x7e, 0xf9, 0xc7, 0x44, 0x10, 0x34, 0xcc, 0x44, 0x8e, 0x5f, 0x45, 0xea,
- 0xd8, 0xab, 0x1f, 0x79, 0xcd, 0xdb, 0x1f, 0x17, 0x50, 0x63, 0x2f, 0x11, 0x92, 0x4f, 0x8a, 0xa9,
- 0xd4, 0x5f, 0x1d, 0xca, 0xab, 0x71, 0x3c, 0x4a, 0x1f, 0xdb, 0xb0, 0x82, 0x79, 0xc2, 0x0e, 0x10,
- 0x2a, 0x5f, 0x55, 0x27, 0xbc, 0xec, 0xc4, 0xdf, 0xfc, 0x36, 0x5b, 0x7f, 0xfd, 0xd7, 0x1b, 0xa4,
- 0xbe, 0x5d, 0xf7, 0xb4, 0x58, 0xd3, 0x39, 0x1e, 0xc7, 0xb2, 0xe7, 0xec, 0xa8, 0x0f, 0x6c, 0xaa,
- 0xd8, 0xc7, 0xa8, 0xbe, 0x37, 0x14, 0xb2, 0xa8, 0xa8, 0x5a, 0x5f, 0xf4, 0xb7, 0x7f, 0xce, 0xd6,
- 0xfb, 0xff, 0xa8, 0x38, 0x14, 0x52, 0xa6, 0x97, 0x51, 0x67, 0x3f, 0x55, 0x55, 0xb7, 0x5c, 0xb5,
- 0x7c, 0x60, 0x05, 0xba, 0x94, 0xed, 0xcc, 0x5b, 0x7d, 0x3f, 0x9c, 0x44, 0xf8, 0x95, 0xba, 0x2e,
- 0x7e, 0x2b, 0x9f, 0xad, 0x37, 0xf7, 0x53, 0x93, 0x37, 0xad, 0xa8, 0xc8, 0xaf, 0xa3, 0x5a, 0xd9,
- 0xaa, 0xff, 0xf6, 0x36, 0x23, 0xd6, 0x34, 0x23, 0xd6, 0xd7, 0x8c, 0x58, 0x77, 0x19, 0x81, 0xfb,
- 0x8c, 0xc0, 0x43, 0x46, 0xe0, 0x26, 0x27, 0xf0, 0x29, 0x27, 0xf0, 0x39, 0x27, 0xf0, 0x25, 0x27,
- 0x70, 0x9b, 0x13, 0x98, 0xe6, 0x04, 0xee, 0x72, 0x02, 0x3f, 0x72, 0x62, 0xdd, 0xe7, 0x04, 0x1e,
- 0x72, 0x62, 0xdd, 0x7c, 0x27, 0xd6, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb8, 0x65, 0xb5, 0xca,
- 0x75, 0x04, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.pb.go
index 33359d57b3..278df74406 100644
--- a/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.pb.go
@@ -3,24 +3,22 @@
package one
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
-import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-
-import encoding_binary "encoding/binary"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype"
+ github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -43,7 +41,7 @@ type Subby struct {
func (m *Subby) Reset() { *m = Subby{} }
func (*Subby) ProtoMessage() {}
func (*Subby) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_2f6d76776b72edfd, []int{0}
+ return fileDescriptor_f8ef4705d619eecc, []int{0}
}
func (m *Subby) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Subby.Unmarshal(m, b)
@@ -60,8 +58,8 @@ func (m *Subby) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Subby) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Subby.Merge(dst, src)
+func (m *Subby) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Subby.Merge(m, src)
}
func (m *Subby) XXX_Size() int {
return m.Size()
@@ -99,7 +97,7 @@ type AllTypesOneOf struct {
func (m *AllTypesOneOf) Reset() { *m = AllTypesOneOf{} }
func (*AllTypesOneOf) ProtoMessage() {}
func (*AllTypesOneOf) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_2f6d76776b72edfd, []int{1}
+ return fileDescriptor_f8ef4705d619eecc, []int{1}
}
func (m *AllTypesOneOf) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AllTypesOneOf.Unmarshal(m, b)
@@ -116,8 +114,8 @@ func (m *AllTypesOneOf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
return b[:n], nil
}
}
-func (dst *AllTypesOneOf) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllTypesOneOf.Merge(dst, src)
+func (m *AllTypesOneOf) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllTypesOneOf.Merge(m, src)
}
func (m *AllTypesOneOf) XXX_Size() int {
return m.Size()
@@ -611,7 +609,7 @@ type TwoOneofs struct {
func (m *TwoOneofs) Reset() { *m = TwoOneofs{} }
func (*TwoOneofs) ProtoMessage() {}
func (*TwoOneofs) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_2f6d76776b72edfd, []int{2}
+ return fileDescriptor_f8ef4705d619eecc, []int{2}
}
func (m *TwoOneofs) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TwoOneofs.Unmarshal(m, b)
@@ -628,8 +626,8 @@ func (m *TwoOneofs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *TwoOneofs) XXX_Merge(src proto.Message) {
- xxx_messageInfo_TwoOneofs.Merge(dst, src)
+func (m *TwoOneofs) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_TwoOneofs.Merge(m, src)
}
func (m *TwoOneofs) XXX_Size() int {
return m.Size()
@@ -890,7 +888,7 @@ type CustomOneof struct {
func (m *CustomOneof) Reset() { *m = CustomOneof{} }
func (*CustomOneof) ProtoMessage() {}
func (*CustomOneof) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_2f6d76776b72edfd, []int{3}
+ return fileDescriptor_f8ef4705d619eecc, []int{3}
}
func (m *CustomOneof) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomOneof.Unmarshal(m, b)
@@ -907,8 +905,8 @@ func (m *CustomOneof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *CustomOneof) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomOneof.Merge(dst, src)
+func (m *CustomOneof) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomOneof.Merge(m, src)
}
func (m *CustomOneof) XXX_Size() int {
return m.Size()
@@ -1083,6 +1081,51 @@ func init() {
proto.RegisterType((*TwoOneofs)(nil), "one.TwoOneofs")
proto.RegisterType((*CustomOneof)(nil), "one.CustomOneof")
}
+
+func init() { proto.RegisterFile("combos/marshaler/one.proto", fileDescriptor_f8ef4705d619eecc) }
+
+var fileDescriptor_f8ef4705d619eecc = []byte{
+ // 601 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0xbf, 0x4f, 0xdb, 0x4e,
+ 0x14, 0x00, 0xf0, 0x7b, 0x84, 0x84, 0x70, 0x09, 0x5f, 0xf2, 0xf5, 0x74, 0x65, 0x38, 0x4e, 0x69,
+ 0x2b, 0xdd, 0x50, 0x12, 0xe2, 0x24, 0xfc, 0x18, 0x6b, 0xaa, 0x2a, 0x0b, 0x45, 0x32, 0x30, 0xa3,
+ 0x98, 0x1e, 0x21, 0x52, 0xe2, 0x43, 0x39, 0x5b, 0xc8, 0x1b, 0x7f, 0x43, 0xff, 0x8a, 0x8e, 0x1d,
+ 0xfb, 0x27, 0x30, 0x32, 0x56, 0x1d, 0x22, 0xec, 0x2e, 0x1d, 0x19, 0x51, 0xa7, 0xea, 0x6c, 0x72,
+ 0x57, 0xa9, 0xaa, 0xba, 0x74, 0x8a, 0xdf, 0xfb, 0xf8, 0x5e, 0xde, 0xf3, 0xdd, 0xe1, 0x8d, 0x73,
+ 0x39, 0x0d, 0xa4, 0x6a, 0x4f, 0x87, 0x33, 0x75, 0x39, 0x9c, 0x88, 0x59, 0x5b, 0x86, 0xa2, 0x75,
+ 0x35, 0x93, 0x91, 0x74, 0x4a, 0x32, 0x14, 0x1b, 0x5b, 0xa3, 0x71, 0x74, 0x19, 0x07, 0xad, 0x73,
+ 0x39, 0x6d, 0x8f, 0xe4, 0x48, 0xb6, 0x73, 0x0b, 0xe2, 0x8b, 0x3c, 0xca, 0x83, 0xfc, 0xa9, 0x58,
+ 0xd3, 0x7c, 0x86, 0xcb, 0xc7, 0x71, 0x10, 0x24, 0x4e, 0x03, 0x97, 0x54, 0x1c, 0x10, 0x60, 0xc0,
+ 0x57, 0x7d, 0xfd, 0xd8, 0x9c, 0x97, 0xf0, 0xda, 0xeb, 0xc9, 0xe4, 0x24, 0xb9, 0x12, 0xea, 0x28,
+ 0x14, 0x47, 0x17, 0x0e, 0xc1, 0x95, 0xb7, 0x63, 0x31, 0x79, 0xdf, 0xc9, 0x5f, 0x83, 0x01, 0xf2,
+ 0x9f, 0x62, 0x23, 0x2e, 0x59, 0x62, 0xc0, 0x97, 0x8c, 0xb8, 0x46, 0xba, 0xa4, 0xc4, 0x80, 0x97,
+ 0x8d, 0x74, 0x8d, 0xf4, 0xc8, 0x32, 0x03, 0x5e, 0x32, 0xd2, 0x33, 0xd2, 0x27, 0x65, 0x06, 0x7c,
+ 0xcd, 0x48, 0xdf, 0xc8, 0x0e, 0xa9, 0x30, 0xe0, 0xcb, 0x46, 0x76, 0x8c, 0xec, 0x92, 0x15, 0x06,
+ 0xfc, 0x7f, 0x23, 0xbb, 0x46, 0xf6, 0x48, 0x95, 0x01, 0x77, 0x8c, 0xec, 0x19, 0xd9, 0x27, 0xab,
+ 0x0c, 0xf8, 0x8a, 0x91, 0x7d, 0x67, 0x03, 0xaf, 0x14, 0x93, 0x6d, 0x13, 0xcc, 0x80, 0xaf, 0x0f,
+ 0x90, 0xbf, 0x48, 0x58, 0xeb, 0x90, 0x1a, 0x03, 0x5e, 0xb1, 0xd6, 0xb1, 0xe6, 0x92, 0x3a, 0x03,
+ 0xde, 0xb0, 0xe6, 0x5a, 0xeb, 0x92, 0x35, 0x06, 0xbc, 0x6a, 0xad, 0x6b, 0xad, 0x47, 0xfe, 0xd3,
+ 0x3b, 0x60, 0xad, 0x67, 0xad, 0x4f, 0xd6, 0x19, 0xf0, 0xba, 0xb5, 0xbe, 0xb3, 0x85, 0x6b, 0x2a,
+ 0x0e, 0xce, 0xa6, 0x42, 0xa9, 0xe1, 0x48, 0x90, 0x06, 0x03, 0x5e, 0x73, 0x71, 0x4b, 0x9f, 0x89,
+ 0x7c, 0x5b, 0x07, 0xc8, 0xc7, 0x2a, 0x0e, 0x0e, 0x0b, 0xf7, 0xea, 0x18, 0x47, 0x42, 0x45, 0x67,
+ 0x32, 0x14, 0xf2, 0xa2, 0x79, 0x07, 0x78, 0xf5, 0xe4, 0x5a, 0x1e, 0xe9, 0x40, 0xfd, 0xe3, 0xcd,
+ 0x5d, 0x34, 0xdd, 0xed, 0x91, 0x66, 0x3e, 0x10, 0xf8, 0x8b, 0x84, 0xb5, 0x3e, 0x79, 0x9e, 0x0f,
+ 0x64, 0xac, 0xef, 0xb4, 0x71, 0xfd, 0x97, 0x81, 0x5c, 0xf2, 0xe2, 0xb7, 0x89, 0xc0, 0xaf, 0xd9,
+ 0x89, 0x5c, 0xaf, 0x8c, 0xf5, 0xb1, 0xd7, 0x3f, 0xd1, 0xb5, 0x6c, 0x7e, 0x58, 0xc2, 0xb5, 0x83,
+ 0x58, 0x45, 0x72, 0x9a, 0x4f, 0xa5, 0xff, 0xea, 0x38, 0x9a, 0x8d, 0xc3, 0x51, 0xf2, 0xd4, 0x06,
+ 0xf2, 0x17, 0x09, 0xc7, 0xc7, 0xb8, 0x78, 0x55, 0x9f, 0xf0, 0xa2, 0x13, 0x6f, 0xfb, 0xeb, 0x7c,
+ 0xf3, 0xd5, 0x1f, 0x6f, 0x90, 0xfe, 0x76, 0xed, 0xf3, 0x7c, 0x4d, 0xeb, 0x74, 0x1c, 0x46, 0x1d,
+ 0x77, 0x4f, 0x7f, 0x60, 0x5b, 0xc5, 0x39, 0xc5, 0xd5, 0x83, 0xa1, 0x8a, 0xf2, 0x8a, 0xba, 0xf5,
+ 0x65, 0x6f, 0xf7, 0xc7, 0x7c, 0xb3, 0xfb, 0x97, 0x8a, 0x43, 0x15, 0x45, 0xc9, 0x95, 0x68, 0x1d,
+ 0x26, 0xba, 0xea, 0x4e, 0x4f, 0x2f, 0x1f, 0x20, 0xdf, 0x94, 0x72, 0xdc, 0x45, 0xab, 0xef, 0x86,
+ 0x53, 0x41, 0x5e, 0xea, 0xeb, 0xe2, 0x35, 0xb2, 0xf9, 0x66, 0xfd, 0x30, 0xb1, 0x79, 0xdb, 0x8a,
+ 0x8e, 0xbc, 0x2a, 0xae, 0x14, 0xad, 0x7a, 0x6f, 0x6e, 0x53, 0x8a, 0xee, 0x52, 0x8a, 0xbe, 0xa4,
+ 0x14, 0xdd, 0xa7, 0x14, 0x1e, 0x52, 0x0a, 0x8f, 0x29, 0x85, 0x9b, 0x8c, 0xc2, 0xc7, 0x8c, 0xc2,
+ 0xa7, 0x8c, 0xc2, 0xe7, 0x8c, 0xc2, 0x6d, 0x46, 0xe1, 0x2e, 0xa3, 0xe8, 0x3e, 0xa3, 0xf0, 0x3d,
+ 0xa3, 0xe8, 0x21, 0xa3, 0xf0, 0x98, 0x51, 0x74, 0xf3, 0x8d, 0xa2, 0x9f, 0x01, 0x00, 0x00, 0xff,
+ 0xff, 0xcf, 0xa5, 0xfc, 0x33, 0x7a, 0x04, 0x00, 0x00,
+}
+
func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return OneDescription()
}
@@ -1098,274 +1141,276 @@ func (this *CustomOneof) Description() (desc *github_com_gogo_protobuf_protoc_ge
func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4264 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7b, 0x5d, 0x70, 0xdc, 0xd6,
- 0x75, 0x3f, 0xb1, 0x1f, 0xe4, 0xee, 0xd9, 0xe5, 0x12, 0xbc, 0xa4, 0xa5, 0x15, 0x1d, 0x53, 0xd2,
- 0xda, 0x8e, 0x69, 0x3b, 0x26, 0x6d, 0x8a, 0xd4, 0xc7, 0xea, 0x9f, 0xf8, 0xbf, 0x24, 0x57, 0x14,
- 0x5d, 0x92, 0xcb, 0x60, 0xc9, 0xf8, 0x23, 0xd3, 0xc1, 0x80, 0xd8, 0xcb, 0x25, 0x24, 0x2c, 0x80,
- 0x00, 0x58, 0xc9, 0xd4, 0xf4, 0x41, 0x1d, 0xf7, 0x63, 0x32, 0x9d, 0x7e, 0xa5, 0x9d, 0x69, 0xe2,
- 0x3a, 0x6e, 0x93, 0x4e, 0xe3, 0x34, 0xfd, 0x4a, 0x9a, 0x36, 0x4d, 0xd2, 0x97, 0xbe, 0xa4, 0xf5,
- 0x53, 0xc7, 0x79, 0xeb, 0x74, 0x3a, 0x1e, 0x8b, 0xf1, 0x4c, 0xd3, 0xd6, 0x6d, 0xdc, 0x56, 0x0f,
- 0x9e, 0xf8, 0xa5, 0x73, 0xbf, 0x00, 0xec, 0x07, 0x85, 0x65, 0xa6, 0x76, 0x9e, 0x44, 0x9c, 0x73,
- 0x7e, 0x3f, 0x9c, 0x7b, 0xee, 0xb9, 0xe7, 0x9e, 0x7b, 0xb1, 0x82, 0x1f, 0x5d, 0x82, 0x33, 0x4d,
- 0xdb, 0x6e, 0x9a, 0x78, 0xce, 0x71, 0x6d, 0xdf, 0xde, 0x6d, 0xef, 0xcd, 0x35, 0xb0, 0xa7, 0xbb,
- 0x86, 0xe3, 0xdb, 0xee, 0x2c, 0x95, 0xa1, 0x31, 0x66, 0x31, 0x2b, 0x2c, 0x4a, 0x1b, 0x30, 0x7e,
- 0xc5, 0x30, 0xf1, 0x4a, 0x60, 0x58, 0xc7, 0x3e, 0xba, 0x08, 0xa9, 0x3d, 0xc3, 0xc4, 0x45, 0xe9,
- 0x4c, 0x72, 0x26, 0x37, 0xff, 0xd0, 0x6c, 0x17, 0x68, 0xb6, 0x13, 0xb1, 0x45, 0xc4, 0x0a, 0x45,
- 0x94, 0xde, 0x4e, 0xc1, 0x44, 0x1f, 0x2d, 0x42, 0x90, 0xb2, 0xb4, 0x16, 0x61, 0x94, 0x66, 0xb2,
- 0x0a, 0xfd, 0x1b, 0x15, 0x61, 0xc4, 0xd1, 0xf4, 0xeb, 0x5a, 0x13, 0x17, 0x13, 0x54, 0x2c, 0x1e,
- 0xd1, 0x34, 0x40, 0x03, 0x3b, 0xd8, 0x6a, 0x60, 0x4b, 0x3f, 0x28, 0x26, 0xcf, 0x24, 0x67, 0xb2,
- 0x4a, 0x44, 0x82, 0x1e, 0x87, 0x71, 0xa7, 0xbd, 0x6b, 0x1a, 0xba, 0x1a, 0x31, 0x83, 0x33, 0xc9,
- 0x99, 0xb4, 0x22, 0x33, 0xc5, 0x4a, 0x68, 0xfc, 0x08, 0x8c, 0xdd, 0xc4, 0xda, 0xf5, 0xa8, 0x69,
- 0x8e, 0x9a, 0x16, 0x88, 0x38, 0x62, 0xb8, 0x0c, 0xf9, 0x16, 0xf6, 0x3c, 0xad, 0x89, 0x55, 0xff,
- 0xc0, 0xc1, 0xc5, 0x14, 0x1d, 0xfd, 0x99, 0x9e, 0xd1, 0x77, 0x8f, 0x3c, 0xc7, 0x51, 0xdb, 0x07,
- 0x0e, 0x46, 0x15, 0xc8, 0x62, 0xab, 0xdd, 0x62, 0x0c, 0xe9, 0x23, 0xe2, 0x57, 0xb5, 0xda, 0xad,
- 0x6e, 0x96, 0x0c, 0x81, 0x71, 0x8a, 0x11, 0x0f, 0xbb, 0x37, 0x0c, 0x1d, 0x17, 0x87, 0x29, 0xc1,
- 0x23, 0x3d, 0x04, 0x75, 0xa6, 0xef, 0xe6, 0x10, 0x38, 0xb4, 0x0c, 0x59, 0xfc, 0xa2, 0x8f, 0x2d,
- 0xcf, 0xb0, 0xad, 0xe2, 0x08, 0x25, 0x79, 0xb8, 0xcf, 0x2c, 0x62, 0xb3, 0xd1, 0x4d, 0x11, 0xe2,
- 0xd0, 0x79, 0x18, 0xb1, 0x1d, 0xdf, 0xb0, 0x2d, 0xaf, 0x98, 0x39, 0x23, 0xcd, 0xe4, 0xe6, 0x3f,
- 0xd2, 0x37, 0x11, 0x6a, 0xcc, 0x46, 0x11, 0xc6, 0x68, 0x0d, 0x64, 0xcf, 0x6e, 0xbb, 0x3a, 0x56,
- 0x75, 0xbb, 0x81, 0x55, 0xc3, 0xda, 0xb3, 0x8b, 0x59, 0x4a, 0x70, 0xba, 0x77, 0x20, 0xd4, 0x70,
- 0xd9, 0x6e, 0xe0, 0x35, 0x6b, 0xcf, 0x56, 0x0a, 0x5e, 0xc7, 0x33, 0x3a, 0x01, 0xc3, 0xde, 0x81,
- 0xe5, 0x6b, 0x2f, 0x16, 0xf3, 0x34, 0x43, 0xf8, 0x53, 0xe9, 0x3b, 0xc3, 0x30, 0x36, 0x48, 0x8a,
- 0x5d, 0x86, 0xf4, 0x1e, 0x19, 0x65, 0x31, 0x71, 0x9c, 0x18, 0x30, 0x4c, 0x67, 0x10, 0x87, 0x7f,
- 0xc2, 0x20, 0x56, 0x20, 0x67, 0x61, 0xcf, 0xc7, 0x0d, 0x96, 0x11, 0xc9, 0x01, 0x73, 0x0a, 0x18,
- 0xa8, 0x37, 0xa5, 0x52, 0x3f, 0x51, 0x4a, 0x3d, 0x07, 0x63, 0x81, 0x4b, 0xaa, 0xab, 0x59, 0x4d,
- 0x91, 0x9b, 0x73, 0x71, 0x9e, 0xcc, 0x56, 0x05, 0x4e, 0x21, 0x30, 0xa5, 0x80, 0x3b, 0x9e, 0xd1,
- 0x0a, 0x80, 0x6d, 0x61, 0x7b, 0x4f, 0x6d, 0x60, 0xdd, 0x2c, 0x66, 0x8e, 0x88, 0x52, 0x8d, 0x98,
- 0xf4, 0x44, 0xc9, 0x66, 0x52, 0xdd, 0x44, 0x97, 0xc2, 0x54, 0x1b, 0x39, 0x22, 0x53, 0x36, 0xd8,
- 0x22, 0xeb, 0xc9, 0xb6, 0x1d, 0x28, 0xb8, 0x98, 0xe4, 0x3d, 0x6e, 0xf0, 0x91, 0x65, 0xa9, 0x13,
- 0xb3, 0xb1, 0x23, 0x53, 0x38, 0x8c, 0x0d, 0x6c, 0xd4, 0x8d, 0x3e, 0xa2, 0x07, 0x21, 0x10, 0xa8,
- 0x34, 0xad, 0x80, 0x56, 0xa1, 0xbc, 0x10, 0x6e, 0x6a, 0x2d, 0x3c, 0x75, 0x0b, 0x0a, 0x9d, 0xe1,
- 0x41, 0x93, 0x90, 0xf6, 0x7c, 0xcd, 0xf5, 0x69, 0x16, 0xa6, 0x15, 0xf6, 0x80, 0x64, 0x48, 0x62,
- 0xab, 0x41, 0xab, 0x5c, 0x5a, 0x21, 0x7f, 0xa2, 0xff, 0x1f, 0x0e, 0x38, 0x49, 0x07, 0xfc, 0xd1,
- 0xde, 0x19, 0xed, 0x60, 0xee, 0x1e, 0xf7, 0xd4, 0x05, 0x18, 0xed, 0x18, 0xc0, 0xa0, 0xaf, 0x2e,
- 0xfd, 0x1c, 0xdc, 0xd7, 0x97, 0x1a, 0x3d, 0x07, 0x93, 0x6d, 0xcb, 0xb0, 0x7c, 0xec, 0x3a, 0x2e,
- 0x26, 0x19, 0xcb, 0x5e, 0x55, 0xfc, 0x97, 0x91, 0x23, 0x72, 0x6e, 0x27, 0x6a, 0xcd, 0x58, 0x94,
- 0x89, 0x76, 0xaf, 0xf0, 0xb1, 0x6c, 0xe6, 0x87, 0x23, 0xf2, 0xed, 0xdb, 0xb7, 0x6f, 0x27, 0x4a,
- 0x9f, 0x1f, 0x86, 0xc9, 0x7e, 0x6b, 0xa6, 0xef, 0xf2, 0x3d, 0x01, 0xc3, 0x56, 0xbb, 0xb5, 0x8b,
- 0x5d, 0x1a, 0xa4, 0xb4, 0xc2, 0x9f, 0x50, 0x05, 0xd2, 0xa6, 0xb6, 0x8b, 0xcd, 0x62, 0xea, 0x8c,
- 0x34, 0x53, 0x98, 0x7f, 0x7c, 0xa0, 0x55, 0x39, 0xbb, 0x4e, 0x20, 0x0a, 0x43, 0xa2, 0x4f, 0x40,
- 0x8a, 0x97, 0x68, 0xc2, 0xf0, 0xd8, 0x60, 0x0c, 0x64, 0x2d, 0x29, 0x14, 0x87, 0xee, 0x87, 0x2c,
- 0xf9, 0x97, 0xe5, 0xc6, 0x30, 0xf5, 0x39, 0x43, 0x04, 0x24, 0x2f, 0xd0, 0x14, 0x64, 0xe8, 0x32,
- 0x69, 0x60, 0xb1, 0xb5, 0x05, 0xcf, 0x24, 0xb1, 0x1a, 0x78, 0x4f, 0x6b, 0x9b, 0xbe, 0x7a, 0x43,
- 0x33, 0xdb, 0x98, 0x26, 0x7c, 0x56, 0xc9, 0x73, 0xe1, 0xa7, 0x88, 0x0c, 0x9d, 0x86, 0x1c, 0x5b,
- 0x55, 0x86, 0xd5, 0xc0, 0x2f, 0xd2, 0xea, 0x99, 0x56, 0xd8, 0x42, 0x5b, 0x23, 0x12, 0xf2, 0xfa,
- 0x6b, 0x9e, 0x6d, 0x89, 0xd4, 0xa4, 0xaf, 0x20, 0x02, 0xfa, 0xfa, 0x0b, 0xdd, 0x85, 0xfb, 0x81,
- 0xfe, 0xc3, 0xeb, 0xce, 0xa9, 0xd2, 0xb7, 0x12, 0x90, 0xa2, 0xf5, 0x62, 0x0c, 0x72, 0xdb, 0xcf,
- 0x6f, 0x55, 0xd5, 0x95, 0xda, 0xce, 0xd2, 0x7a, 0x55, 0x96, 0x50, 0x01, 0x80, 0x0a, 0xae, 0xac,
- 0xd7, 0x2a, 0xdb, 0x72, 0x22, 0x78, 0x5e, 0xdb, 0xdc, 0x3e, 0xbf, 0x20, 0x27, 0x03, 0xc0, 0x0e,
- 0x13, 0xa4, 0xa2, 0x06, 0xe7, 0xe6, 0xe5, 0x34, 0x92, 0x21, 0xcf, 0x08, 0xd6, 0x9e, 0xab, 0xae,
- 0x9c, 0x5f, 0x90, 0x87, 0x3b, 0x25, 0xe7, 0xe6, 0xe5, 0x11, 0x34, 0x0a, 0x59, 0x2a, 0x59, 0xaa,
- 0xd5, 0xd6, 0xe5, 0x4c, 0xc0, 0x59, 0xdf, 0x56, 0xd6, 0x36, 0x57, 0xe5, 0x6c, 0xc0, 0xb9, 0xaa,
- 0xd4, 0x76, 0xb6, 0x64, 0x08, 0x18, 0x36, 0xaa, 0xf5, 0x7a, 0x65, 0xb5, 0x2a, 0xe7, 0x02, 0x8b,
- 0xa5, 0xe7, 0xb7, 0xab, 0x75, 0x39, 0xdf, 0xe1, 0xd6, 0xb9, 0x79, 0x79, 0x34, 0x78, 0x45, 0x75,
- 0x73, 0x67, 0x43, 0x2e, 0xa0, 0x71, 0x18, 0x65, 0xaf, 0x10, 0x4e, 0x8c, 0x75, 0x89, 0xce, 0x2f,
- 0xc8, 0x72, 0xe8, 0x08, 0x63, 0x19, 0xef, 0x10, 0x9c, 0x5f, 0x90, 0x51, 0x69, 0x19, 0xd2, 0x34,
- 0xbb, 0x10, 0x82, 0xc2, 0x7a, 0x65, 0xa9, 0xba, 0xae, 0xd6, 0xb6, 0xb6, 0xd7, 0x6a, 0x9b, 0x95,
- 0x75, 0x59, 0x0a, 0x65, 0x4a, 0xf5, 0x93, 0x3b, 0x6b, 0x4a, 0x75, 0x45, 0x4e, 0x44, 0x65, 0x5b,
- 0xd5, 0xca, 0x76, 0x75, 0x45, 0x4e, 0x96, 0x74, 0x98, 0xec, 0x57, 0x27, 0xfb, 0xae, 0x8c, 0xc8,
- 0x14, 0x27, 0x8e, 0x98, 0x62, 0xca, 0xd5, 0x33, 0xc5, 0x3f, 0x48, 0xc0, 0x44, 0x9f, 0xbd, 0xa2,
- 0xef, 0x4b, 0x9e, 0x86, 0x34, 0x4b, 0x51, 0xb6, 0x7b, 0x3e, 0xda, 0x77, 0xd3, 0xa1, 0x09, 0xdb,
- 0xb3, 0x83, 0x52, 0x5c, 0xb4, 0x83, 0x48, 0x1e, 0xd1, 0x41, 0x10, 0x8a, 0x9e, 0x9a, 0xfe, 0xb3,
- 0x3d, 0x35, 0x9d, 0x6d, 0x7b, 0xe7, 0x07, 0xd9, 0xf6, 0xa8, 0xec, 0x78, 0xb5, 0x3d, 0xdd, 0xa7,
- 0xb6, 0x5f, 0x86, 0xf1, 0x1e, 0xa2, 0x81, 0x6b, 0xec, 0x4b, 0x12, 0x14, 0x8f, 0x0a, 0x4e, 0x4c,
- 0xa5, 0x4b, 0x74, 0x54, 0xba, 0xcb, 0xdd, 0x11, 0x3c, 0x7b, 0xf4, 0x24, 0xf4, 0xcc, 0xf5, 0x6b,
- 0x12, 0x9c, 0xe8, 0xdf, 0x29, 0xf6, 0xf5, 0xe1, 0x13, 0x30, 0xdc, 0xc2, 0xfe, 0xbe, 0x2d, 0xba,
- 0xa5, 0x8f, 0xf6, 0xd9, 0x83, 0x89, 0xba, 0x7b, 0xb2, 0x39, 0x2a, 0xba, 0x89, 0x27, 0x8f, 0x6a,
- 0xf7, 0x98, 0x37, 0x3d, 0x9e, 0x7e, 0x36, 0x01, 0xf7, 0xf5, 0x25, 0xef, 0xeb, 0xe8, 0x03, 0x00,
- 0x86, 0xe5, 0xb4, 0x7d, 0xd6, 0x11, 0xb1, 0x02, 0x9b, 0xa5, 0x12, 0x5a, 0xbc, 0x48, 0xf1, 0x6c,
- 0xfb, 0x81, 0x3e, 0x49, 0xf5, 0xc0, 0x44, 0xd4, 0xe0, 0x62, 0xe8, 0x68, 0x8a, 0x3a, 0x3a, 0x7d,
- 0xc4, 0x48, 0x7b, 0x12, 0xf3, 0x49, 0x90, 0x75, 0xd3, 0xc0, 0x96, 0xaf, 0x7a, 0xbe, 0x8b, 0xb5,
- 0x96, 0x61, 0x35, 0xe9, 0x0e, 0x92, 0x29, 0xa7, 0xf7, 0x34, 0xd3, 0xc3, 0xca, 0x18, 0x53, 0xd7,
- 0x85, 0x96, 0x20, 0x68, 0x02, 0xb9, 0x11, 0xc4, 0x70, 0x07, 0x82, 0xa9, 0x03, 0x44, 0xe9, 0x9b,
- 0x19, 0xc8, 0x45, 0xfa, 0x6a, 0x74, 0x16, 0xf2, 0xd7, 0xb4, 0x1b, 0x9a, 0x2a, 0xce, 0x4a, 0x2c,
- 0x12, 0x39, 0x22, 0xdb, 0xe2, 0xe7, 0xa5, 0x27, 0x61, 0x92, 0x9a, 0xd8, 0x6d, 0x1f, 0xbb, 0xaa,
- 0x6e, 0x6a, 0x9e, 0x47, 0x83, 0x96, 0xa1, 0xa6, 0x88, 0xe8, 0x6a, 0x44, 0xb5, 0x2c, 0x34, 0x68,
- 0x11, 0x26, 0x28, 0xa2, 0xd5, 0x36, 0x7d, 0xc3, 0x31, 0xb1, 0x4a, 0x4e, 0x6f, 0x1e, 0xdd, 0x49,
- 0x02, 0xcf, 0xc6, 0x89, 0xc5, 0x06, 0x37, 0x20, 0x1e, 0x79, 0x68, 0x05, 0x1e, 0xa0, 0xb0, 0x26,
- 0xb6, 0xb0, 0xab, 0xf9, 0x58, 0xc5, 0x9f, 0x69, 0x6b, 0xa6, 0xa7, 0x6a, 0x56, 0x43, 0xdd, 0xd7,
- 0xbc, 0xfd, 0xe2, 0x24, 0x21, 0x58, 0x4a, 0x14, 0x25, 0xe5, 0x14, 0x31, 0x5c, 0xe5, 0x76, 0x55,
- 0x6a, 0x56, 0xb1, 0x1a, 0x57, 0x35, 0x6f, 0x1f, 0x95, 0xe1, 0x04, 0x65, 0xf1, 0x7c, 0xd7, 0xb0,
- 0x9a, 0xaa, 0xbe, 0x8f, 0xf5, 0xeb, 0x6a, 0xdb, 0xdf, 0xbb, 0x58, 0xbc, 0x3f, 0xfa, 0x7e, 0xea,
- 0x61, 0x9d, 0xda, 0x2c, 0x13, 0x93, 0x1d, 0x7f, 0xef, 0x22, 0xaa, 0x43, 0x9e, 0x4c, 0x46, 0xcb,
- 0xb8, 0x85, 0xd5, 0x3d, 0xdb, 0xa5, 0x5b, 0x63, 0xa1, 0x4f, 0x69, 0x8a, 0x44, 0x70, 0xb6, 0xc6,
- 0x01, 0x1b, 0x76, 0x03, 0x97, 0xd3, 0xf5, 0xad, 0x6a, 0x75, 0x45, 0xc9, 0x09, 0x96, 0x2b, 0xb6,
- 0x4b, 0x12, 0xaa, 0x69, 0x07, 0x01, 0xce, 0xb1, 0x84, 0x6a, 0xda, 0x22, 0xbc, 0x8b, 0x30, 0xa1,
- 0xeb, 0x6c, 0xcc, 0x86, 0xae, 0xf2, 0x33, 0x96, 0x57, 0x94, 0x3b, 0x82, 0xa5, 0xeb, 0xab, 0xcc,
- 0x80, 0xe7, 0xb8, 0x87, 0x2e, 0xc1, 0x7d, 0x61, 0xb0, 0xa2, 0xc0, 0xf1, 0x9e, 0x51, 0x76, 0x43,
- 0x17, 0x61, 0xc2, 0x39, 0xe8, 0x05, 0xa2, 0x8e, 0x37, 0x3a, 0x07, 0xdd, 0xb0, 0x0b, 0x30, 0xe9,
- 0xec, 0x3b, 0xbd, 0xb8, 0xc7, 0xa2, 0x38, 0xe4, 0xec, 0x3b, 0xdd, 0xc0, 0x87, 0xe9, 0x81, 0xdb,
- 0xc5, 0xba, 0xe6, 0xe3, 0x46, 0xf1, 0x64, 0xd4, 0x3c, 0xa2, 0x40, 0x73, 0x20, 0xeb, 0xba, 0x8a,
- 0x2d, 0x6d, 0xd7, 0xc4, 0xaa, 0xe6, 0x62, 0x4b, 0xf3, 0x8a, 0xa7, 0xa3, 0xc6, 0x05, 0x5d, 0xaf,
- 0x52, 0x6d, 0x85, 0x2a, 0xd1, 0x63, 0x30, 0x6e, 0xef, 0x5e, 0xd3, 0x59, 0x4a, 0xaa, 0x8e, 0x8b,
- 0xf7, 0x8c, 0x17, 0x8b, 0x0f, 0xd1, 0xf8, 0x8e, 0x11, 0x05, 0x4d, 0xc8, 0x2d, 0x2a, 0x46, 0x8f,
- 0x82, 0xac, 0x7b, 0xfb, 0x9a, 0xeb, 0xd0, 0x9a, 0xec, 0x39, 0x9a, 0x8e, 0x8b, 0x0f, 0x33, 0x53,
- 0x26, 0xdf, 0x14, 0x62, 0xb2, 0x24, 0xbc, 0x9b, 0xc6, 0x9e, 0x2f, 0x18, 0x1f, 0x61, 0x4b, 0x82,
- 0xca, 0x38, 0xdb, 0x0c, 0xc8, 0x24, 0x14, 0x1d, 0x2f, 0x9e, 0xa1, 0x66, 0x05, 0x67, 0xdf, 0x89,
- 0xbe, 0xf7, 0x41, 0x18, 0x25, 0x96, 0xe1, 0x4b, 0x1f, 0x65, 0x0d, 0x99, 0xb3, 0x1f, 0x79, 0xe3,
- 0x07, 0xd6, 0x1b, 0x97, 0xca, 0x90, 0x8f, 0xe6, 0x27, 0xca, 0x02, 0xcb, 0x50, 0x59, 0x22, 0xcd,
- 0xca, 0x72, 0x6d, 0x85, 0xb4, 0x19, 0x2f, 0x54, 0xe5, 0x04, 0x69, 0x77, 0xd6, 0xd7, 0xb6, 0xab,
- 0xaa, 0xb2, 0xb3, 0xb9, 0xbd, 0xb6, 0x51, 0x95, 0x93, 0xd1, 0xbe, 0xfa, 0x7b, 0x09, 0x28, 0x74,
- 0x1e, 0x91, 0xd0, 0xff, 0x83, 0x93, 0xe2, 0x3e, 0xc3, 0xc3, 0xbe, 0x7a, 0xd3, 0x70, 0xe9, 0x92,
- 0x69, 0x69, 0x6c, 0xfb, 0x0a, 0x26, 0x6d, 0x92, 0x5b, 0xd5, 0xb1, 0xff, 0xac, 0xe1, 0x92, 0x05,
- 0xd1, 0xd2, 0x7c, 0xb4, 0x0e, 0xa7, 0x2d, 0x5b, 0xf5, 0x7c, 0xcd, 0x6a, 0x68, 0x6e, 0x43, 0x0d,
- 0x6f, 0x92, 0x54, 0x4d, 0xd7, 0xb1, 0xe7, 0xd9, 0x6c, 0xab, 0x0a, 0x58, 0x3e, 0x62, 0xd9, 0x75,
- 0x6e, 0x1c, 0xd6, 0xf0, 0x0a, 0x37, 0xed, 0x4a, 0xb0, 0xe4, 0x51, 0x09, 0x76, 0x3f, 0x64, 0x5b,
- 0x9a, 0xa3, 0x62, 0xcb, 0x77, 0x0f, 0x68, 0x63, 0x9c, 0x51, 0x32, 0x2d, 0xcd, 0xa9, 0x92, 0xe7,
- 0x0f, 0xe7, 0x7c, 0xf2, 0xcf, 0x49, 0xc8, 0x47, 0x9b, 0x63, 0x72, 0xd6, 0xd0, 0xe9, 0x3e, 0x22,
- 0xd1, 0x4a, 0xf3, 0xe0, 0x3d, 0x5b, 0xe9, 0xd9, 0x65, 0xb2, 0xc1, 0x94, 0x87, 0x59, 0xcb, 0xaa,
- 0x30, 0x24, 0xd9, 0xdc, 0x49, 0x6d, 0xc1, 0xac, 0x45, 0xc8, 0x28, 0xfc, 0x09, 0xad, 0xc2, 0xf0,
- 0x35, 0x8f, 0x72, 0x0f, 0x53, 0xee, 0x87, 0xee, 0xcd, 0xfd, 0x4c, 0x9d, 0x92, 0x67, 0x9f, 0xa9,
- 0xab, 0x9b, 0x35, 0x65, 0xa3, 0xb2, 0xae, 0x70, 0x38, 0x3a, 0x05, 0x29, 0x53, 0xbb, 0x75, 0xd0,
- 0xb9, 0x15, 0x51, 0xd1, 0xa0, 0x81, 0x3f, 0x05, 0xa9, 0x9b, 0x58, 0xbb, 0xde, 0xb9, 0x01, 0x50,
- 0xd1, 0x07, 0x98, 0xfa, 0x73, 0x90, 0xa6, 0xf1, 0x42, 0x00, 0x3c, 0x62, 0xf2, 0x10, 0xca, 0x40,
- 0x6a, 0xb9, 0xa6, 0x90, 0xf4, 0x97, 0x21, 0xcf, 0xa4, 0xea, 0xd6, 0x5a, 0x75, 0xb9, 0x2a, 0x27,
- 0x4a, 0x8b, 0x30, 0xcc, 0x82, 0x40, 0x96, 0x46, 0x10, 0x06, 0x79, 0x88, 0x3f, 0x72, 0x0e, 0x49,
- 0x68, 0x77, 0x36, 0x96, 0xaa, 0x8a, 0x9c, 0x88, 0x4e, 0xaf, 0x07, 0xf9, 0x68, 0x5f, 0xfc, 0xe1,
- 0xe4, 0xd4, 0x77, 0x25, 0xc8, 0x45, 0xfa, 0x5c, 0xd2, 0xa0, 0x68, 0xa6, 0x69, 0xdf, 0x54, 0x35,
- 0xd3, 0xd0, 0x3c, 0x9e, 0x14, 0x40, 0x45, 0x15, 0x22, 0x19, 0x74, 0xd2, 0x3e, 0x14, 0xe7, 0x5f,
- 0x95, 0x40, 0xee, 0x6e, 0x31, 0xbb, 0x1c, 0x94, 0x7e, 0xaa, 0x0e, 0xbe, 0x22, 0x41, 0xa1, 0xb3,
- 0xaf, 0xec, 0x72, 0xef, 0xec, 0x4f, 0xd5, 0xbd, 0xb7, 0x12, 0x30, 0xda, 0xd1, 0x4d, 0x0e, 0xea,
- 0xdd, 0x67, 0x60, 0xdc, 0x68, 0xe0, 0x96, 0x63, 0xfb, 0xd8, 0xd2, 0x0f, 0x54, 0x13, 0xdf, 0xc0,
- 0x66, 0xb1, 0x44, 0x0b, 0xc5, 0xdc, 0xbd, 0xfb, 0xd5, 0xd9, 0xb5, 0x10, 0xb7, 0x4e, 0x60, 0xe5,
- 0x89, 0xb5, 0x95, 0xea, 0xc6, 0x56, 0x6d, 0xbb, 0xba, 0xb9, 0xfc, 0xbc, 0xba, 0xb3, 0xf9, 0x33,
- 0x9b, 0xb5, 0x67, 0x37, 0x15, 0xd9, 0xe8, 0x32, 0xfb, 0x00, 0x97, 0xfa, 0x16, 0xc8, 0xdd, 0x4e,
- 0xa1, 0x93, 0xd0, 0xcf, 0x2d, 0x79, 0x08, 0x4d, 0xc0, 0xd8, 0x66, 0x4d, 0xad, 0xaf, 0xad, 0x54,
- 0xd5, 0xea, 0x95, 0x2b, 0xd5, 0xe5, 0xed, 0x3a, 0xbb, 0x81, 0x08, 0xac, 0xb7, 0x3b, 0x17, 0xf5,
- 0xcb, 0x49, 0x98, 0xe8, 0xe3, 0x09, 0xaa, 0xf0, 0xb3, 0x03, 0x3b, 0xce, 0x3c, 0x31, 0x88, 0xf7,
- 0xb3, 0x64, 0xcb, 0xdf, 0xd2, 0x5c, 0x9f, 0x1f, 0x35, 0x1e, 0x05, 0x12, 0x25, 0xcb, 0x37, 0xf6,
- 0x0c, 0xec, 0xf2, 0x0b, 0x1b, 0x76, 0xa0, 0x18, 0x0b, 0xe5, 0xec, 0xce, 0xe6, 0x63, 0x80, 0x1c,
- 0xdb, 0x33, 0x7c, 0xe3, 0x06, 0x56, 0x0d, 0x4b, 0xdc, 0xee, 0x90, 0x03, 0x46, 0x4a, 0x91, 0x85,
- 0x66, 0xcd, 0xf2, 0x03, 0x6b, 0x0b, 0x37, 0xb5, 0x2e, 0x6b, 0x52, 0xc0, 0x93, 0x8a, 0x2c, 0x34,
- 0x81, 0xf5, 0x59, 0xc8, 0x37, 0xec, 0x36, 0xe9, 0xba, 0x98, 0x1d, 0xd9, 0x2f, 0x24, 0x25, 0xc7,
- 0x64, 0x81, 0x09, 0xef, 0xa7, 0xc3, 0x6b, 0xa5, 0xbc, 0x92, 0x63, 0x32, 0x66, 0xf2, 0x08, 0x8c,
- 0x69, 0xcd, 0xa6, 0x4b, 0xc8, 0x05, 0x11, 0x3b, 0x21, 0x14, 0x02, 0x31, 0x35, 0x9c, 0x7a, 0x06,
- 0x32, 0x22, 0x0e, 0x64, 0x4b, 0x26, 0x91, 0x50, 0x1d, 0x76, 0xec, 0x4d, 0xcc, 0x64, 0x95, 0x8c,
- 0x25, 0x94, 0x67, 0x21, 0x6f, 0x78, 0x6a, 0x78, 0x4b, 0x9e, 0x38, 0x93, 0x98, 0xc9, 0x28, 0x39,
- 0xc3, 0x0b, 0x6e, 0x18, 0x4b, 0xaf, 0x25, 0xa0, 0xd0, 0x79, 0xcb, 0x8f, 0x56, 0x20, 0x63, 0xda,
- 0xba, 0x46, 0x53, 0x8b, 0x7d, 0x62, 0x9a, 0x89, 0xf9, 0x30, 0x30, 0xbb, 0xce, 0xed, 0x95, 0x00,
- 0x39, 0xf5, 0x0f, 0x12, 0x64, 0x84, 0x18, 0x9d, 0x80, 0x94, 0xa3, 0xf9, 0xfb, 0x94, 0x2e, 0xbd,
- 0x94, 0x90, 0x25, 0x85, 0x3e, 0x13, 0xb9, 0xe7, 0x68, 0x16, 0x4d, 0x01, 0x2e, 0x27, 0xcf, 0x64,
- 0x5e, 0x4d, 0xac, 0x35, 0xe8, 0xf1, 0xc3, 0x6e, 0xb5, 0xb0, 0xe5, 0x7b, 0x62, 0x5e, 0xb9, 0x7c,
- 0x99, 0x8b, 0xd1, 0xe3, 0x30, 0xee, 0xbb, 0x9a, 0x61, 0x76, 0xd8, 0xa6, 0xa8, 0xad, 0x2c, 0x14,
- 0x81, 0x71, 0x19, 0x4e, 0x09, 0xde, 0x06, 0xf6, 0x35, 0x7d, 0x1f, 0x37, 0x42, 0xd0, 0x30, 0xbd,
- 0x66, 0x38, 0xc9, 0x0d, 0x56, 0xb8, 0x5e, 0x60, 0x4b, 0xdf, 0x97, 0x60, 0x5c, 0x1c, 0x98, 0x1a,
- 0x41, 0xb0, 0x36, 0x00, 0x34, 0xcb, 0xb2, 0xfd, 0x68, 0xb8, 0x7a, 0x53, 0xb9, 0x07, 0x37, 0x5b,
- 0x09, 0x40, 0x4a, 0x84, 0x60, 0xaa, 0x05, 0x10, 0x6a, 0x8e, 0x0c, 0xdb, 0x69, 0xc8, 0xf1, 0x4f,
- 0x38, 0xf4, 0x3b, 0x20, 0x3b, 0x62, 0x03, 0x13, 0x91, 0x93, 0x15, 0x9a, 0x84, 0xf4, 0x2e, 0x6e,
- 0x1a, 0x16, 0xbf, 0x98, 0x65, 0x0f, 0xe2, 0x22, 0x24, 0x15, 0x5c, 0x84, 0x2c, 0x7d, 0x1a, 0x26,
- 0x74, 0xbb, 0xd5, 0xed, 0xee, 0x92, 0xdc, 0x75, 0xcc, 0xf7, 0xae, 0x4a, 0x2f, 0x40, 0xd8, 0x62,
- 0xbe, 0x27, 0x49, 0x5f, 0x4e, 0x24, 0x57, 0xb7, 0x96, 0xbe, 0x96, 0x98, 0x5a, 0x65, 0xd0, 0x2d,
- 0x31, 0x52, 0x05, 0xef, 0x99, 0x58, 0x27, 0xde, 0xc3, 0x57, 0x1e, 0x87, 0x27, 0x9a, 0x86, 0xbf,
- 0xdf, 0xde, 0x9d, 0xd5, 0xed, 0xd6, 0x5c, 0xd3, 0x6e, 0xda, 0xe1, 0xa7, 0x4f, 0xf2, 0x44, 0x1f,
- 0xe8, 0x5f, 0xfc, 0xf3, 0x67, 0x36, 0x90, 0x4e, 0xc5, 0x7e, 0x2b, 0x2d, 0x6f, 0xc2, 0x04, 0x37,
- 0x56, 0xe9, 0xf7, 0x17, 0x76, 0x8a, 0x40, 0xf7, 0xbc, 0xc3, 0x2a, 0x7e, 0xe3, 0x6d, 0xba, 0x5d,
- 0x2b, 0xe3, 0x1c, 0x4a, 0x74, 0xec, 0xa0, 0x51, 0x56, 0xe0, 0xbe, 0x0e, 0x3e, 0xb6, 0x34, 0xb1,
- 0x1b, 0xc3, 0xf8, 0x3d, 0xce, 0x38, 0x11, 0x61, 0xac, 0x73, 0x68, 0x79, 0x19, 0x46, 0x8f, 0xc3,
- 0xf5, 0x77, 0x9c, 0x2b, 0x8f, 0xa3, 0x24, 0xab, 0x30, 0x46, 0x49, 0xf4, 0xb6, 0xe7, 0xdb, 0x2d,
- 0x5a, 0xf7, 0xee, 0x4d, 0xf3, 0xf7, 0x6f, 0xb3, 0xb5, 0x52, 0x20, 0xb0, 0xe5, 0x00, 0x55, 0x2e,
- 0x03, 0xfd, 0xe4, 0xd4, 0xc0, 0xba, 0x19, 0xc3, 0xf0, 0x3a, 0x77, 0x24, 0xb0, 0x2f, 0x7f, 0x0a,
- 0x26, 0xc9, 0xdf, 0xb4, 0x2c, 0x45, 0x3d, 0x89, 0xbf, 0xf0, 0x2a, 0x7e, 0xff, 0x25, 0xb6, 0x1c,
- 0x27, 0x02, 0x82, 0x88, 0x4f, 0x91, 0x59, 0x6c, 0x62, 0xdf, 0xc7, 0xae, 0xa7, 0x6a, 0x66, 0x3f,
- 0xf7, 0x22, 0x37, 0x06, 0xc5, 0x2f, 0xbc, 0xd3, 0x39, 0x8b, 0xab, 0x0c, 0x59, 0x31, 0xcd, 0xf2,
- 0x0e, 0x9c, 0xec, 0x93, 0x15, 0x03, 0x70, 0xbe, 0xcc, 0x39, 0x27, 0x7b, 0x32, 0x83, 0xd0, 0x6e,
- 0x81, 0x90, 0x07, 0x73, 0x39, 0x00, 0xe7, 0xef, 0x72, 0x4e, 0xc4, 0xb1, 0x62, 0x4a, 0x09, 0xe3,
- 0x33, 0x30, 0x7e, 0x03, 0xbb, 0xbb, 0xb6, 0xc7, 0x6f, 0x69, 0x06, 0xa0, 0x7b, 0x85, 0xd3, 0x8d,
- 0x71, 0x20, 0xbd, 0xb6, 0x21, 0x5c, 0x97, 0x20, 0xb3, 0xa7, 0xe9, 0x78, 0x00, 0x8a, 0x2f, 0x72,
- 0x8a, 0x11, 0x62, 0x4f, 0xa0, 0x15, 0xc8, 0x37, 0x6d, 0xbe, 0x33, 0xc5, 0xc3, 0x5f, 0xe5, 0xf0,
- 0x9c, 0xc0, 0x70, 0x0a, 0xc7, 0x76, 0xda, 0x26, 0xd9, 0xb6, 0xe2, 0x29, 0x7e, 0x4f, 0x50, 0x08,
- 0x0c, 0xa7, 0x38, 0x46, 0x58, 0x7f, 0x5f, 0x50, 0x78, 0x91, 0x78, 0x3e, 0x0d, 0x39, 0xdb, 0x32,
- 0x0f, 0x6c, 0x6b, 0x10, 0x27, 0xbe, 0xc4, 0x19, 0x80, 0x43, 0x08, 0xc1, 0x65, 0xc8, 0x0e, 0x3a,
- 0x11, 0x7f, 0xf8, 0x8e, 0x58, 0x1e, 0x62, 0x06, 0x56, 0x61, 0x4c, 0x14, 0x28, 0xc3, 0xb6, 0x06,
- 0xa0, 0xf8, 0x0a, 0xa7, 0x28, 0x44, 0x60, 0x7c, 0x18, 0x3e, 0xf6, 0xfc, 0x26, 0x1e, 0x84, 0xe4,
- 0x35, 0x31, 0x0c, 0x0e, 0xe1, 0xa1, 0xdc, 0xc5, 0x96, 0xbe, 0x3f, 0x18, 0xc3, 0x57, 0x45, 0x28,
- 0x05, 0x86, 0x50, 0x2c, 0xc3, 0x68, 0x4b, 0x73, 0xbd, 0x7d, 0xcd, 0x1c, 0x68, 0x3a, 0xfe, 0x88,
- 0x73, 0xe4, 0x03, 0x10, 0x8f, 0x48, 0xdb, 0x3a, 0x0e, 0xcd, 0xd7, 0x44, 0x44, 0x22, 0x30, 0xbe,
- 0xf4, 0x3c, 0x9f, 0x5e, 0x69, 0x1d, 0x87, 0xed, 0x8f, 0xc5, 0xd2, 0x63, 0xd8, 0x8d, 0x28, 0xe3,
- 0x65, 0xc8, 0x7a, 0xc6, 0xad, 0x81, 0x68, 0xfe, 0x44, 0xcc, 0x34, 0x05, 0x10, 0xf0, 0xf3, 0x70,
- 0xaa, 0xef, 0x36, 0x31, 0x00, 0xd9, 0x9f, 0x72, 0xb2, 0x13, 0x7d, 0xb6, 0x0a, 0x5e, 0x12, 0x8e,
- 0x4b, 0xf9, 0x67, 0xa2, 0x24, 0xe0, 0x2e, 0xae, 0x2d, 0x72, 0x56, 0xf0, 0xb4, 0xbd, 0xe3, 0x45,
- 0xed, 0xcf, 0x45, 0xd4, 0x18, 0xb6, 0x23, 0x6a, 0xdb, 0x70, 0x82, 0x33, 0x1e, 0x6f, 0x5e, 0xbf,
- 0x2e, 0x0a, 0x2b, 0x43, 0xef, 0x74, 0xce, 0xee, 0xa7, 0x61, 0x2a, 0x08, 0xa7, 0x68, 0x4a, 0x3d,
- 0xb5, 0xa5, 0x39, 0x03, 0x30, 0x7f, 0x83, 0x33, 0x8b, 0x8a, 0x1f, 0x74, 0xb5, 0xde, 0x86, 0xe6,
- 0x10, 0xf2, 0xe7, 0xa0, 0x28, 0xc8, 0xdb, 0x96, 0x8b, 0x75, 0xbb, 0x69, 0x19, 0xb7, 0x70, 0x63,
- 0x00, 0xea, 0xbf, 0xe8, 0x9a, 0xaa, 0x9d, 0x08, 0x9c, 0x30, 0xaf, 0x81, 0x1c, 0xf4, 0x2a, 0xaa,
- 0xd1, 0x72, 0x6c, 0xd7, 0x8f, 0x61, 0xfc, 0xa6, 0x98, 0xa9, 0x00, 0xb7, 0x46, 0x61, 0xe5, 0x2a,
- 0x14, 0xe8, 0xe3, 0xa0, 0x29, 0xf9, 0x97, 0x9c, 0x68, 0x34, 0x44, 0xf1, 0xc2, 0xa1, 0xdb, 0x2d,
- 0x47, 0x73, 0x07, 0xa9, 0x7f, 0x7f, 0x25, 0x0a, 0x07, 0x87, 0xf0, 0xc2, 0xe1, 0x1f, 0x38, 0x98,
- 0xec, 0xf6, 0x03, 0x30, 0x7c, 0x4b, 0x14, 0x0e, 0x81, 0xe1, 0x14, 0xa2, 0x61, 0x18, 0x80, 0xe2,
- 0xaf, 0x05, 0x85, 0xc0, 0x10, 0x8a, 0x4f, 0x86, 0x1b, 0xad, 0x8b, 0x9b, 0x86, 0xe7, 0xbb, 0xac,
- 0x15, 0xbe, 0x37, 0xd5, 0xb7, 0xdf, 0xe9, 0x6c, 0xc2, 0x94, 0x08, 0x94, 0x54, 0x22, 0x7e, 0x85,
- 0x4a, 0x4f, 0x4a, 0xf1, 0x8e, 0x7d, 0x47, 0x54, 0xa2, 0x08, 0x8c, 0xf8, 0x16, 0xe9, 0x10, 0x49,
- 0xd8, 0x75, 0x72, 0x3e, 0x18, 0x80, 0xee, 0xbb, 0x5d, 0xce, 0xd5, 0x05, 0x96, 0x70, 0x46, 0xfa,
- 0x9f, 0xb6, 0x75, 0x1d, 0x1f, 0x0c, 0x94, 0x9d, 0x7f, 0xd3, 0xd5, 0xff, 0xec, 0x30, 0x24, 0xab,
- 0x21, 0x63, 0x5d, 0xfd, 0x14, 0x8a, 0xfb, 0xb1, 0x4e, 0xf1, 0xe7, 0xef, 0xf2, 0xf1, 0x76, 0xb6,
- 0x53, 0xe5, 0x75, 0x92, 0xe4, 0x9d, 0x4d, 0x4f, 0x3c, 0xd9, 0x4b, 0x77, 0x83, 0x3c, 0xef, 0xe8,
- 0x79, 0xca, 0x57, 0x60, 0xb4, 0xa3, 0xe1, 0x89, 0xa7, 0xfa, 0x05, 0x4e, 0x95, 0x8f, 0xf6, 0x3b,
- 0xe5, 0x45, 0x48, 0x91, 0xe6, 0x25, 0x1e, 0xfe, 0x8b, 0x1c, 0x4e, 0xcd, 0xcb, 0x1f, 0x87, 0x8c,
- 0x68, 0x5a, 0xe2, 0xa1, 0xbf, 0xc4, 0xa1, 0x01, 0x84, 0xc0, 0x45, 0xc3, 0x12, 0x0f, 0xff, 0x65,
- 0x01, 0x17, 0x10, 0x02, 0x1f, 0x3c, 0x84, 0x7f, 0xfb, 0x2b, 0x29, 0xbe, 0xe9, 0x88, 0xd8, 0x5d,
- 0x86, 0x11, 0xde, 0xa9, 0xc4, 0xa3, 0x3f, 0xcb, 0x5f, 0x2e, 0x10, 0xe5, 0x0b, 0x90, 0x1e, 0x30,
- 0xe0, 0xbf, 0xca, 0xa1, 0xcc, 0xbe, 0xbc, 0x0c, 0xb9, 0x48, 0x77, 0x12, 0x0f, 0xff, 0x35, 0x0e,
- 0x8f, 0xa2, 0x88, 0xeb, 0xbc, 0x3b, 0x89, 0x27, 0xf8, 0x75, 0xe1, 0x3a, 0x47, 0x90, 0xb0, 0x89,
- 0xc6, 0x24, 0x1e, 0xfd, 0x1b, 0x22, 0xea, 0x02, 0x52, 0x7e, 0x1a, 0xb2, 0xc1, 0x66, 0x13, 0x8f,
- 0xff, 0x4d, 0x8e, 0x0f, 0x31, 0x24, 0x02, 0x91, 0xcd, 0x2e, 0x9e, 0xe2, 0x73, 0x22, 0x02, 0x11,
- 0x14, 0x59, 0x46, 0xdd, 0x0d, 0x4c, 0x3c, 0xd3, 0x6f, 0x89, 0x65, 0xd4, 0xd5, 0xbf, 0x90, 0xd9,
- 0xa4, 0x35, 0x3f, 0x9e, 0xe2, 0xb7, 0xc5, 0x6c, 0x52, 0x7b, 0xe2, 0x46, 0x77, 0x47, 0x10, 0xcf,
- 0xf1, 0x3b, 0xc2, 0x8d, 0xae, 0x86, 0xa0, 0xbc, 0x05, 0xa8, 0xb7, 0x1b, 0x88, 0xe7, 0xfb, 0x3c,
- 0xe7, 0x1b, 0xef, 0x69, 0x06, 0xca, 0xcf, 0xc2, 0x89, 0xfe, 0x9d, 0x40, 0x3c, 0xeb, 0x17, 0xee,
- 0x76, 0x9d, 0xdd, 0xa2, 0x8d, 0x40, 0x79, 0x3b, 0xdc, 0x52, 0xa2, 0x5d, 0x40, 0x3c, 0xed, 0xcb,
- 0x77, 0x3b, 0x0b, 0x77, 0xb4, 0x09, 0x28, 0x57, 0x00, 0xc2, 0x0d, 0x38, 0x9e, 0xeb, 0x15, 0xce,
- 0x15, 0x01, 0x91, 0xa5, 0xc1, 0xf7, 0xdf, 0x78, 0xfc, 0x17, 0xc5, 0xd2, 0xe0, 0x08, 0xb2, 0x34,
- 0xc4, 0xd6, 0x1b, 0x8f, 0x7e, 0x55, 0x2c, 0x0d, 0x01, 0x21, 0x99, 0x1d, 0xd9, 0xdd, 0xe2, 0x19,
- 0xbe, 0x24, 0x32, 0x3b, 0x82, 0x2a, 0x6f, 0xc2, 0x78, 0xcf, 0x86, 0x18, 0x4f, 0xf5, 0x65, 0x4e,
- 0x25, 0x77, 0xef, 0x87, 0xd1, 0xcd, 0x8b, 0x6f, 0x86, 0xf1, 0x6c, 0x7f, 0xd0, 0xb5, 0x79, 0xf1,
- 0xbd, 0xb0, 0x7c, 0x19, 0x32, 0x56, 0xdb, 0x34, 0xc9, 0xe2, 0x41, 0xf7, 0xfe, 0x81, 0x5d, 0xf1,
- 0x5f, 0xdf, 0xe7, 0xd1, 0x11, 0x80, 0xf2, 0x22, 0xa4, 0x71, 0x6b, 0x17, 0x37, 0xe2, 0x90, 0xff,
- 0xf6, 0xbe, 0x28, 0x98, 0xc4, 0xba, 0xfc, 0x34, 0x00, 0xbb, 0x1a, 0xa1, 0x9f, 0xfd, 0x62, 0xb0,
- 0xff, 0xfe, 0x3e, 0xff, 0xe9, 0x4b, 0x08, 0x09, 0x09, 0xd8, 0x0f, 0x69, 0xee, 0x4d, 0xf0, 0x4e,
- 0x27, 0x01, 0x9d, 0x91, 0x4b, 0x30, 0x72, 0xcd, 0xb3, 0x2d, 0x5f, 0x6b, 0xc6, 0xa1, 0xff, 0x83,
- 0xa3, 0x85, 0x3d, 0x09, 0x58, 0xcb, 0x76, 0xb1, 0xaf, 0x35, 0xbd, 0x38, 0xec, 0x7f, 0x72, 0x6c,
- 0x00, 0x20, 0x60, 0x5d, 0xf3, 0xfc, 0x41, 0xc6, 0xfd, 0x23, 0x01, 0x16, 0x00, 0xe2, 0x34, 0xf9,
- 0xfb, 0x3a, 0x3e, 0x88, 0xc3, 0xbe, 0x2b, 0x9c, 0xe6, 0xf6, 0xe5, 0x8f, 0x43, 0x96, 0xfc, 0xc9,
- 0x7e, 0xcf, 0x16, 0x03, 0xfe, 0x2f, 0x0e, 0x0e, 0x11, 0xe4, 0xcd, 0x9e, 0xdf, 0xf0, 0x8d, 0xf8,
- 0x60, 0xff, 0x37, 0x9f, 0x69, 0x61, 0x5f, 0xae, 0x40, 0xce, 0xf3, 0x1b, 0x8d, 0x36, 0xef, 0x4f,
- 0x63, 0xe0, 0xff, 0xf3, 0x7e, 0x70, 0x65, 0x11, 0x60, 0xc8, 0x6c, 0xdf, 0xbc, 0xee, 0x3b, 0x36,
- 0xfd, 0xcc, 0x11, 0xc7, 0x70, 0x97, 0x33, 0x44, 0x20, 0x4b, 0xd5, 0xfe, 0xd7, 0xb7, 0xb0, 0x6a,
- 0xaf, 0xda, 0xec, 0xe2, 0xf6, 0x85, 0x52, 0xfc, 0x0d, 0x2c, 0xfc, 0x38, 0x03, 0x53, 0xba, 0xdd,
- 0xda, 0xb5, 0xbd, 0xb9, 0xa0, 0x1c, 0xcf, 0xd9, 0x16, 0x67, 0x44, 0x49, 0xdb, 0xc2, 0x53, 0xc7,
- 0xbb, 0xc9, 0x2d, 0x9d, 0x82, 0x74, 0xbd, 0xbd, 0xbb, 0x7b, 0x80, 0x64, 0x48, 0x7a, 0xed, 0x5d,
- 0xfe, 0xab, 0x28, 0xf2, 0x67, 0xe9, 0xcd, 0x24, 0x8c, 0x56, 0x4c, 0x73, 0xfb, 0xc0, 0xc1, 0x5e,
- 0xcd, 0xc2, 0xb5, 0x3d, 0x54, 0x84, 0x61, 0x3a, 0xd4, 0xa7, 0xa8, 0x99, 0x74, 0x75, 0x48, 0xe1,
- 0xcf, 0x81, 0x66, 0x9e, 0xde, 0x71, 0x27, 0x02, 0xcd, 0x7c, 0xa0, 0x39, 0xc7, 0xae, 0xb8, 0x03,
- 0xcd, 0xb9, 0x40, 0xb3, 0x40, 0x2f, 0xba, 0x93, 0x81, 0x66, 0x21, 0xd0, 0x2c, 0xd2, 0x0f, 0x39,
- 0xa3, 0x81, 0x66, 0x31, 0xd0, 0x9c, 0xa7, 0x9f, 0x6e, 0x52, 0x81, 0xe6, 0x7c, 0xa0, 0xb9, 0x40,
- 0xbf, 0xd8, 0x8c, 0x07, 0x9a, 0x0b, 0x81, 0xe6, 0x22, 0xfd, 0x4a, 0x83, 0x02, 0xcd, 0xc5, 0x40,
- 0x73, 0x89, 0xfe, 0xfc, 0x69, 0x24, 0xd0, 0x5c, 0x42, 0x53, 0x30, 0xc2, 0x46, 0xf6, 0x24, 0xfd,
- 0x94, 0x3f, 0x76, 0x75, 0x48, 0x11, 0x82, 0x50, 0xf7, 0x14, 0xfd, 0x89, 0xd3, 0x70, 0xa8, 0x7b,
- 0x2a, 0xd4, 0xcd, 0xd3, 0xff, 0x69, 0x21, 0x87, 0xba, 0xf9, 0x50, 0x77, 0xae, 0x38, 0x4a, 0x32,
- 0x24, 0xd4, 0x9d, 0x0b, 0x75, 0x0b, 0xc5, 0x02, 0x99, 0x81, 0x50, 0xb7, 0x10, 0xea, 0x16, 0x8b,
- 0x63, 0x67, 0xa4, 0x99, 0x7c, 0xa8, 0x5b, 0x44, 0x4f, 0x40, 0xce, 0x6b, 0xef, 0xaa, 0xbc, 0xd6,
- 0xd3, 0x9f, 0x52, 0xe5, 0xe6, 0x61, 0x96, 0xe4, 0x04, 0x9d, 0xd6, 0xab, 0x43, 0x0a, 0x78, 0xed,
- 0x5d, 0x5e, 0x8a, 0x97, 0xf2, 0x40, 0x6f, 0xa0, 0x54, 0xfa, 0x0b, 0xe8, 0xd2, 0x1b, 0x12, 0x64,
- 0xb7, 0x6f, 0xda, 0xf4, 0x43, 0xbe, 0xf7, 0x7f, 0x3c, 0xb9, 0xc2, 0xe9, 0x73, 0x0b, 0xf4, 0x5b,
- 0x6b, 0xf6, 0xaa, 0xa4, 0x08, 0x41, 0xa8, 0x5b, 0x2c, 0x3e, 0x48, 0x07, 0x14, 0xe8, 0x16, 0xd1,
- 0x1c, 0xe4, 0x23, 0x03, 0x9a, 0xa7, 0x3f, 0x72, 0xea, 0x1c, 0x91, 0xa4, 0xe4, 0xc2, 0x11, 0xcd,
- 0x2f, 0xa5, 0x81, 0xa4, 0x3d, 0xf9, 0xc7, 0xbf, 0x69, 0x97, 0x3e, 0x97, 0x80, 0x1c, 0xbb, 0xb4,
- 0xa6, 0xa3, 0x22, 0xaf, 0x62, 0xe7, 0x9a, 0x03, 0xee, 0xc6, 0x90, 0x22, 0x04, 0x48, 0x01, 0x60,
- 0xa6, 0x24, 0xc3, 0x99, 0x27, 0x4b, 0x4f, 0xfe, 0xd3, 0x9b, 0xa7, 0x3f, 0x76, 0xe4, 0x0a, 0x22,
- 0xb1, 0x9b, 0x63, 0x45, 0x7c, 0x76, 0xc7, 0xb0, 0xfc, 0xa7, 0xe6, 0x2f, 0x92, 0x00, 0x87, 0x2c,
- 0x68, 0x07, 0x32, 0xcb, 0x9a, 0x47, 0x7f, 0x1e, 0x49, 0x5d, 0x4f, 0x2d, 0x5d, 0xf8, 0xf1, 0x9b,
- 0xa7, 0xcf, 0xc5, 0x30, 0xf2, 0xfa, 0x3a, 0xbb, 0x71, 0x40, 0x58, 0xcf, 0x2f, 0x10, 0xf8, 0xd5,
- 0x21, 0x25, 0xa0, 0x42, 0xf3, 0xc2, 0xd5, 0x4d, 0xad, 0xc5, 0x7e, 0xcd, 0x95, 0x5c, 0x92, 0x0f,
- 0xdf, 0x3c, 0x9d, 0xdf, 0x38, 0x08, 0xe5, 0xa1, 0x2b, 0xe4, 0x69, 0x29, 0x03, 0xc3, 0xcc, 0xd5,
- 0xa5, 0x95, 0xd7, 0xef, 0x4c, 0x0f, 0xbd, 0x71, 0x67, 0x7a, 0xe8, 0x1f, 0xef, 0x4c, 0x0f, 0xbd,
- 0x75, 0x67, 0x5a, 0x7a, 0xf7, 0xce, 0xb4, 0xf4, 0xde, 0x9d, 0x69, 0xe9, 0xf6, 0xe1, 0xb4, 0xf4,
- 0xd5, 0xc3, 0x69, 0xe9, 0xeb, 0x87, 0xd3, 0xd2, 0xb7, 0x0f, 0xa7, 0xa5, 0xd7, 0x0f, 0xa7, 0xa5,
- 0x37, 0x0e, 0xa7, 0x87, 0xde, 0x3a, 0x9c, 0x96, 0x7e, 0x78, 0x38, 0x3d, 0xf4, 0xee, 0xe1, 0xb4,
- 0xf4, 0xde, 0xe1, 0xf4, 0xd0, 0xed, 0x1f, 0x4c, 0x0f, 0xfd, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff,
- 0x14, 0x89, 0x89, 0xba, 0x18, 0x37, 0x00, 0x00,
+ // 4294 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5b, 0x70, 0x1b, 0xe7,
+ 0x75, 0xe6, 0xe2, 0x42, 0x02, 0x07, 0x20, 0xb8, 0x5c, 0xd2, 0x12, 0xc4, 0xc4, 0x90, 0x04, 0xdb,
+ 0x31, 0x7d, 0x23, 0x6d, 0x8a, 0xd4, 0x05, 0x6a, 0xe2, 0x82, 0x24, 0x44, 0xd1, 0x25, 0x09, 0x66,
+ 0x41, 0xc6, 0x97, 0x4c, 0x67, 0x67, 0xb9, 0xf8, 0x09, 0xae, 0xb4, 0xd8, 0xdd, 0xec, 0x2e, 0x24,
+ 0x43, 0xd3, 0x07, 0x75, 0xdc, 0xcb, 0x64, 0x7a, 0x4f, 0x3b, 0xd3, 0xc4, 0x75, 0xdc, 0x26, 0x9d,
+ 0xc6, 0x69, 0x7a, 0x4b, 0x7a, 0x49, 0x93, 0xf4, 0xa5, 0x2f, 0x69, 0xfd, 0xd4, 0x71, 0xde, 0x3a,
+ 0x9d, 0x8e, 0xc7, 0x62, 0x3c, 0xd3, 0xb4, 0x75, 0x5b, 0xb7, 0xd5, 0x83, 0x27, 0x7e, 0xe9, 0xfc,
+ 0xb7, 0xbd, 0x00, 0xa0, 0x16, 0xcc, 0xd4, 0xce, 0x93, 0xb8, 0xe7, 0x9c, 0xef, 0xdb, 0xf3, 0x9f,
+ 0xff, 0xfc, 0xe7, 0x3f, 0xff, 0xbf, 0x10, 0xbc, 0x5e, 0x81, 0x33, 0x2d, 0xcb, 0x6a, 0x19, 0x68,
+ 0xde, 0x76, 0x2c, 0xcf, 0xda, 0xeb, 0xec, 0xcf, 0x37, 0x91, 0xab, 0x39, 0xba, 0xed, 0x59, 0xce,
+ 0x1c, 0x91, 0x49, 0x13, 0xd4, 0x62, 0x8e, 0x5b, 0x94, 0x37, 0x61, 0xf2, 0x8a, 0x6e, 0xa0, 0x55,
+ 0xdf, 0xb0, 0x81, 0x3c, 0xe9, 0x22, 0xa4, 0xf6, 0x75, 0x03, 0x15, 0x85, 0x33, 0xc9, 0xd9, 0xdc,
+ 0xc2, 0x83, 0x73, 0x3d, 0xa0, 0xb9, 0x28, 0x62, 0x1b, 0x8b, 0x65, 0x82, 0x28, 0xbf, 0x9d, 0x82,
+ 0xa9, 0x01, 0x5a, 0x49, 0x82, 0x94, 0xa9, 0xb6, 0x31, 0xa3, 0x30, 0x9b, 0x95, 0xc9, 0xdf, 0x52,
+ 0x11, 0xc6, 0x6c, 0x55, 0xbb, 0xae, 0xb6, 0x50, 0x31, 0x41, 0xc4, 0xfc, 0x51, 0x2a, 0x01, 0x34,
+ 0x91, 0x8d, 0xcc, 0x26, 0x32, 0xb5, 0x6e, 0x31, 0x79, 0x26, 0x39, 0x9b, 0x95, 0x43, 0x12, 0xe9,
+ 0x31, 0x98, 0xb4, 0x3b, 0x7b, 0x86, 0xae, 0x29, 0x21, 0x33, 0x38, 0x93, 0x9c, 0x4d, 0xcb, 0x22,
+ 0x55, 0xac, 0x06, 0xc6, 0x0f, 0xc3, 0xc4, 0x4d, 0xa4, 0x5e, 0x0f, 0x9b, 0xe6, 0x88, 0x69, 0x01,
+ 0x8b, 0x43, 0x86, 0x2b, 0x90, 0x6f, 0x23, 0xd7, 0x55, 0x5b, 0x48, 0xf1, 0xba, 0x36, 0x2a, 0xa6,
+ 0xc8, 0xe8, 0xcf, 0xf4, 0x8d, 0xbe, 0x77, 0xe4, 0x39, 0x86, 0xda, 0xe9, 0xda, 0x48, 0xaa, 0x42,
+ 0x16, 0x99, 0x9d, 0x36, 0x65, 0x48, 0x1f, 0x11, 0xbf, 0x9a, 0xd9, 0x69, 0xf7, 0xb2, 0x64, 0x30,
+ 0x8c, 0x51, 0x8c, 0xb9, 0xc8, 0xb9, 0xa1, 0x6b, 0xa8, 0x38, 0x4a, 0x08, 0x1e, 0xee, 0x23, 0x68,
+ 0x50, 0x7d, 0x2f, 0x07, 0xc7, 0x49, 0x2b, 0x90, 0x45, 0x2f, 0x7a, 0xc8, 0x74, 0x75, 0xcb, 0x2c,
+ 0x8e, 0x11, 0x92, 0x87, 0x06, 0xcc, 0x22, 0x32, 0x9a, 0xbd, 0x14, 0x01, 0x4e, 0x3a, 0x0f, 0x63,
+ 0x96, 0xed, 0xe9, 0x96, 0xe9, 0x16, 0x33, 0x67, 0x84, 0xd9, 0xdc, 0xc2, 0x47, 0x07, 0x26, 0x42,
+ 0x9d, 0xda, 0xc8, 0xdc, 0x58, 0x5a, 0x07, 0xd1, 0xb5, 0x3a, 0x8e, 0x86, 0x14, 0xcd, 0x6a, 0x22,
+ 0x45, 0x37, 0xf7, 0xad, 0x62, 0x96, 0x10, 0x9c, 0xee, 0x1f, 0x08, 0x31, 0x5c, 0xb1, 0x9a, 0x68,
+ 0xdd, 0xdc, 0xb7, 0xe4, 0x82, 0x1b, 0x79, 0x96, 0x4e, 0xc0, 0xa8, 0xdb, 0x35, 0x3d, 0xf5, 0xc5,
+ 0x62, 0x9e, 0x64, 0x08, 0x7b, 0x2a, 0x7f, 0x7b, 0x14, 0x26, 0x86, 0x49, 0xb1, 0xcb, 0x90, 0xde,
+ 0xc7, 0xa3, 0x2c, 0x26, 0x8e, 0x13, 0x03, 0x8a, 0x89, 0x06, 0x71, 0xf4, 0x47, 0x0c, 0x62, 0x15,
+ 0x72, 0x26, 0x72, 0x3d, 0xd4, 0xa4, 0x19, 0x91, 0x1c, 0x32, 0xa7, 0x80, 0x82, 0xfa, 0x53, 0x2a,
+ 0xf5, 0x23, 0xa5, 0xd4, 0x73, 0x30, 0xe1, 0xbb, 0xa4, 0x38, 0xaa, 0xd9, 0xe2, 0xb9, 0x39, 0x1f,
+ 0xe7, 0xc9, 0x5c, 0x8d, 0xe3, 0x64, 0x0c, 0x93, 0x0b, 0x28, 0xf2, 0x2c, 0xad, 0x02, 0x58, 0x26,
+ 0xb2, 0xf6, 0x95, 0x26, 0xd2, 0x8c, 0x62, 0xe6, 0x88, 0x28, 0xd5, 0xb1, 0x49, 0x5f, 0x94, 0x2c,
+ 0x2a, 0xd5, 0x0c, 0xe9, 0x52, 0x90, 0x6a, 0x63, 0x47, 0x64, 0xca, 0x26, 0x5d, 0x64, 0x7d, 0xd9,
+ 0xb6, 0x0b, 0x05, 0x07, 0xe1, 0xbc, 0x47, 0x4d, 0x36, 0xb2, 0x2c, 0x71, 0x62, 0x2e, 0x76, 0x64,
+ 0x32, 0x83, 0xd1, 0x81, 0x8d, 0x3b, 0xe1, 0x47, 0xe9, 0x01, 0xf0, 0x05, 0x0a, 0x49, 0x2b, 0x20,
+ 0x55, 0x28, 0xcf, 0x85, 0x5b, 0x6a, 0x1b, 0xcd, 0xdc, 0x82, 0x42, 0x34, 0x3c, 0xd2, 0x34, 0xa4,
+ 0x5d, 0x4f, 0x75, 0x3c, 0x92, 0x85, 0x69, 0x99, 0x3e, 0x48, 0x22, 0x24, 0x91, 0xd9, 0x24, 0x55,
+ 0x2e, 0x2d, 0xe3, 0x3f, 0xa5, 0x9f, 0x0c, 0x06, 0x9c, 0x24, 0x03, 0xfe, 0x58, 0xff, 0x8c, 0x46,
+ 0x98, 0x7b, 0xc7, 0x3d, 0x73, 0x01, 0xc6, 0x23, 0x03, 0x18, 0xf6, 0xd5, 0xe5, 0x9f, 0x81, 0xfb,
+ 0x06, 0x52, 0x4b, 0xcf, 0xc1, 0x74, 0xc7, 0xd4, 0x4d, 0x0f, 0x39, 0xb6, 0x83, 0x70, 0xc6, 0xd2,
+ 0x57, 0x15, 0xff, 0x65, 0xec, 0x88, 0x9c, 0xdb, 0x0d, 0x5b, 0x53, 0x16, 0x79, 0xaa, 0xd3, 0x2f,
+ 0x7c, 0x34, 0x9b, 0xf9, 0xc1, 0x98, 0x78, 0xfb, 0xf6, 0xed, 0xdb, 0x89, 0xf2, 0xe7, 0x47, 0x61,
+ 0x7a, 0xd0, 0x9a, 0x19, 0xb8, 0x7c, 0x4f, 0xc0, 0xa8, 0xd9, 0x69, 0xef, 0x21, 0x87, 0x04, 0x29,
+ 0x2d, 0xb3, 0x27, 0xa9, 0x0a, 0x69, 0x43, 0xdd, 0x43, 0x46, 0x31, 0x75, 0x46, 0x98, 0x2d, 0x2c,
+ 0x3c, 0x36, 0xd4, 0xaa, 0x9c, 0xdb, 0xc0, 0x10, 0x99, 0x22, 0xa5, 0x4f, 0x40, 0x8a, 0x95, 0x68,
+ 0xcc, 0xf0, 0xe8, 0x70, 0x0c, 0x78, 0x2d, 0xc9, 0x04, 0x27, 0x7d, 0x04, 0xb2, 0xf8, 0x5f, 0x9a,
+ 0x1b, 0xa3, 0xc4, 0xe7, 0x0c, 0x16, 0xe0, 0xbc, 0x90, 0x66, 0x20, 0x43, 0x96, 0x49, 0x13, 0xf1,
+ 0xad, 0xcd, 0x7f, 0xc6, 0x89, 0xd5, 0x44, 0xfb, 0x6a, 0xc7, 0xf0, 0x94, 0x1b, 0xaa, 0xd1, 0x41,
+ 0x24, 0xe1, 0xb3, 0x72, 0x9e, 0x09, 0x3f, 0x85, 0x65, 0xd2, 0x69, 0xc8, 0xd1, 0x55, 0xa5, 0x9b,
+ 0x4d, 0xf4, 0x22, 0xa9, 0x9e, 0x69, 0x99, 0x2e, 0xb4, 0x75, 0x2c, 0xc1, 0xaf, 0xbf, 0xe6, 0x5a,
+ 0x26, 0x4f, 0x4d, 0xf2, 0x0a, 0x2c, 0x20, 0xaf, 0xbf, 0xd0, 0x5b, 0xb8, 0xef, 0x1f, 0x3c, 0xbc,
+ 0xde, 0x9c, 0x2a, 0x7f, 0x33, 0x01, 0x29, 0x52, 0x2f, 0x26, 0x20, 0xb7, 0xf3, 0xfc, 0x76, 0x4d,
+ 0x59, 0xad, 0xef, 0x2e, 0x6f, 0xd4, 0x44, 0x41, 0x2a, 0x00, 0x10, 0xc1, 0x95, 0x8d, 0x7a, 0x75,
+ 0x47, 0x4c, 0xf8, 0xcf, 0xeb, 0x5b, 0x3b, 0xe7, 0x17, 0xc5, 0xa4, 0x0f, 0xd8, 0xa5, 0x82, 0x54,
+ 0xd8, 0xe0, 0xdc, 0x82, 0x98, 0x96, 0x44, 0xc8, 0x53, 0x82, 0xf5, 0xe7, 0x6a, 0xab, 0xe7, 0x17,
+ 0xc5, 0xd1, 0xa8, 0xe4, 0xdc, 0x82, 0x38, 0x26, 0x8d, 0x43, 0x96, 0x48, 0x96, 0xeb, 0xf5, 0x0d,
+ 0x31, 0xe3, 0x73, 0x36, 0x76, 0xe4, 0xf5, 0xad, 0x35, 0x31, 0xeb, 0x73, 0xae, 0xc9, 0xf5, 0xdd,
+ 0x6d, 0x11, 0x7c, 0x86, 0xcd, 0x5a, 0xa3, 0x51, 0x5d, 0xab, 0x89, 0x39, 0xdf, 0x62, 0xf9, 0xf9,
+ 0x9d, 0x5a, 0x43, 0xcc, 0x47, 0xdc, 0x3a, 0xb7, 0x20, 0x8e, 0xfb, 0xaf, 0xa8, 0x6d, 0xed, 0x6e,
+ 0x8a, 0x05, 0x69, 0x12, 0xc6, 0xe9, 0x2b, 0xb8, 0x13, 0x13, 0x3d, 0xa2, 0xf3, 0x8b, 0xa2, 0x18,
+ 0x38, 0x42, 0x59, 0x26, 0x23, 0x82, 0xf3, 0x8b, 0xa2, 0x54, 0x5e, 0x81, 0x34, 0xc9, 0x2e, 0x49,
+ 0x82, 0xc2, 0x46, 0x75, 0xb9, 0xb6, 0xa1, 0xd4, 0xb7, 0x77, 0xd6, 0xeb, 0x5b, 0xd5, 0x0d, 0x51,
+ 0x08, 0x64, 0x72, 0xed, 0x93, 0xbb, 0xeb, 0x72, 0x6d, 0x55, 0x4c, 0x84, 0x65, 0xdb, 0xb5, 0xea,
+ 0x4e, 0x6d, 0x55, 0x4c, 0x96, 0x35, 0x98, 0x1e, 0x54, 0x27, 0x07, 0xae, 0x8c, 0xd0, 0x14, 0x27,
+ 0x8e, 0x98, 0x62, 0xc2, 0xd5, 0x37, 0xc5, 0xdf, 0x4f, 0xc0, 0xd4, 0x80, 0xbd, 0x62, 0xe0, 0x4b,
+ 0x9e, 0x86, 0x34, 0x4d, 0x51, 0xba, 0x7b, 0x3e, 0x32, 0x70, 0xd3, 0x21, 0x09, 0xdb, 0xb7, 0x83,
+ 0x12, 0x5c, 0xb8, 0x83, 0x48, 0x1e, 0xd1, 0x41, 0x60, 0x8a, 0xbe, 0x9a, 0xfe, 0xd3, 0x7d, 0x35,
+ 0x9d, 0x6e, 0x7b, 0xe7, 0x87, 0xd9, 0xf6, 0x88, 0xec, 0x78, 0xb5, 0x3d, 0x3d, 0xa0, 0xb6, 0x5f,
+ 0x86, 0xc9, 0x3e, 0xa2, 0xa1, 0x6b, 0xec, 0x4b, 0x02, 0x14, 0x8f, 0x0a, 0x4e, 0x4c, 0xa5, 0x4b,
+ 0x44, 0x2a, 0xdd, 0xe5, 0xde, 0x08, 0x9e, 0x3d, 0x7a, 0x12, 0xfa, 0xe6, 0xfa, 0x35, 0x01, 0x4e,
+ 0x0c, 0xee, 0x14, 0x07, 0xfa, 0xf0, 0x09, 0x18, 0x6d, 0x23, 0xef, 0xc0, 0xe2, 0xdd, 0xd2, 0xc7,
+ 0x06, 0xec, 0xc1, 0x58, 0xdd, 0x3b, 0xd9, 0x0c, 0x15, 0xde, 0xc4, 0x93, 0x47, 0xb5, 0x7b, 0xd4,
+ 0x9b, 0x3e, 0x4f, 0x3f, 0x9b, 0x80, 0xfb, 0x06, 0x92, 0x0f, 0x74, 0xf4, 0x7e, 0x00, 0xdd, 0xb4,
+ 0x3b, 0x1e, 0xed, 0x88, 0x68, 0x81, 0xcd, 0x12, 0x09, 0x29, 0x5e, 0xb8, 0x78, 0x76, 0x3c, 0x5f,
+ 0x9f, 0x24, 0x7a, 0xa0, 0x22, 0x62, 0x70, 0x31, 0x70, 0x34, 0x45, 0x1c, 0x2d, 0x1d, 0x31, 0xd2,
+ 0xbe, 0xc4, 0x7c, 0x12, 0x44, 0xcd, 0xd0, 0x91, 0xe9, 0x29, 0xae, 0xe7, 0x20, 0xb5, 0xad, 0x9b,
+ 0x2d, 0xb2, 0x83, 0x64, 0x2a, 0xe9, 0x7d, 0xd5, 0x70, 0x91, 0x3c, 0x41, 0xd5, 0x0d, 0xae, 0xc5,
+ 0x08, 0x92, 0x40, 0x4e, 0x08, 0x31, 0x1a, 0x41, 0x50, 0xb5, 0x8f, 0x28, 0xff, 0x72, 0x16, 0x72,
+ 0xa1, 0xbe, 0x5a, 0x3a, 0x0b, 0xf9, 0x6b, 0xea, 0x0d, 0x55, 0xe1, 0x67, 0x25, 0x1a, 0x89, 0x1c,
+ 0x96, 0x6d, 0xb3, 0xf3, 0xd2, 0x93, 0x30, 0x4d, 0x4c, 0xac, 0x8e, 0x87, 0x1c, 0x45, 0x33, 0x54,
+ 0xd7, 0x25, 0x41, 0xcb, 0x10, 0x53, 0x09, 0xeb, 0xea, 0x58, 0xb5, 0xc2, 0x35, 0xd2, 0x12, 0x4c,
+ 0x11, 0x44, 0xbb, 0x63, 0x78, 0xba, 0x6d, 0x20, 0x05, 0x9f, 0xde, 0x5c, 0xb2, 0x93, 0xf8, 0x9e,
+ 0x4d, 0x62, 0x8b, 0x4d, 0x66, 0x80, 0x3d, 0x72, 0xa5, 0x55, 0xb8, 0x9f, 0xc0, 0x5a, 0xc8, 0x44,
+ 0x8e, 0xea, 0x21, 0x05, 0x7d, 0xa6, 0xa3, 0x1a, 0xae, 0xa2, 0x9a, 0x4d, 0xe5, 0x40, 0x75, 0x0f,
+ 0x8a, 0xd3, 0x98, 0x60, 0x39, 0x51, 0x14, 0xe4, 0x53, 0xd8, 0x70, 0x8d, 0xd9, 0xd5, 0x88, 0x59,
+ 0xd5, 0x6c, 0x5e, 0x55, 0xdd, 0x03, 0xa9, 0x02, 0x27, 0x08, 0x8b, 0xeb, 0x39, 0xba, 0xd9, 0x52,
+ 0xb4, 0x03, 0xa4, 0x5d, 0x57, 0x3a, 0xde, 0xfe, 0xc5, 0xe2, 0x47, 0xc2, 0xef, 0x27, 0x1e, 0x36,
+ 0x88, 0xcd, 0x0a, 0x36, 0xd9, 0xf5, 0xf6, 0x2f, 0x4a, 0x0d, 0xc8, 0xe3, 0xc9, 0x68, 0xeb, 0xb7,
+ 0x90, 0xb2, 0x6f, 0x39, 0x64, 0x6b, 0x2c, 0x0c, 0x28, 0x4d, 0xa1, 0x08, 0xce, 0xd5, 0x19, 0x60,
+ 0xd3, 0x6a, 0xa2, 0x4a, 0xba, 0xb1, 0x5d, 0xab, 0xad, 0xca, 0x39, 0xce, 0x72, 0xc5, 0x72, 0x70,
+ 0x42, 0xb5, 0x2c, 0x3f, 0xc0, 0x39, 0x9a, 0x50, 0x2d, 0x8b, 0x87, 0x77, 0x09, 0xa6, 0x34, 0x8d,
+ 0x8e, 0x59, 0xd7, 0x14, 0x76, 0xc6, 0x72, 0x8b, 0x62, 0x24, 0x58, 0x9a, 0xb6, 0x46, 0x0d, 0x58,
+ 0x8e, 0xbb, 0xd2, 0x25, 0xb8, 0x2f, 0x08, 0x56, 0x18, 0x38, 0xd9, 0x37, 0xca, 0x5e, 0xe8, 0x12,
+ 0x4c, 0xd9, 0xdd, 0x7e, 0xa0, 0x14, 0x79, 0xa3, 0xdd, 0xed, 0x85, 0x5d, 0x80, 0x69, 0xfb, 0xc0,
+ 0xee, 0xc7, 0x3d, 0x1a, 0xc6, 0x49, 0xf6, 0x81, 0xdd, 0x0b, 0x7c, 0x88, 0x1c, 0xb8, 0x1d, 0xa4,
+ 0xa9, 0x1e, 0x6a, 0x16, 0x4f, 0x86, 0xcd, 0x43, 0x0a, 0x69, 0x1e, 0x44, 0x4d, 0x53, 0x90, 0xa9,
+ 0xee, 0x19, 0x48, 0x51, 0x1d, 0x64, 0xaa, 0x6e, 0xf1, 0x74, 0xd8, 0xb8, 0xa0, 0x69, 0x35, 0xa2,
+ 0xad, 0x12, 0xa5, 0xf4, 0x28, 0x4c, 0x5a, 0x7b, 0xd7, 0x34, 0x9a, 0x92, 0x8a, 0xed, 0xa0, 0x7d,
+ 0xfd, 0xc5, 0xe2, 0x83, 0x24, 0xbe, 0x13, 0x58, 0x41, 0x12, 0x72, 0x9b, 0x88, 0xa5, 0x47, 0x40,
+ 0xd4, 0xdc, 0x03, 0xd5, 0xb1, 0x49, 0x4d, 0x76, 0x6d, 0x55, 0x43, 0xc5, 0x87, 0xa8, 0x29, 0x95,
+ 0x6f, 0x71, 0x31, 0x5e, 0x12, 0xee, 0x4d, 0x7d, 0xdf, 0xe3, 0x8c, 0x0f, 0xd3, 0x25, 0x41, 0x64,
+ 0x8c, 0x6d, 0x16, 0x44, 0x1c, 0x8a, 0xc8, 0x8b, 0x67, 0x89, 0x59, 0xc1, 0x3e, 0xb0, 0xc3, 0xef,
+ 0x7d, 0x00, 0xc6, 0xb1, 0x65, 0xf0, 0xd2, 0x47, 0x68, 0x43, 0x66, 0x1f, 0x84, 0xde, 0xb8, 0x08,
+ 0x27, 0xb0, 0x51, 0x1b, 0x79, 0x6a, 0x53, 0xf5, 0xd4, 0x90, 0xf5, 0xe3, 0xc4, 0x1a, 0xc7, 0x7d,
+ 0x93, 0x29, 0x23, 0x7e, 0x3a, 0x9d, 0xbd, 0xae, 0x9f, 0x59, 0x4f, 0x50, 0x3f, 0xb1, 0x8c, 0xe7,
+ 0xd6, 0x07, 0xd6, 0x74, 0x97, 0x2b, 0x90, 0x0f, 0x27, 0xbe, 0x94, 0x05, 0x9a, 0xfa, 0xa2, 0x80,
+ 0xbb, 0xa0, 0x95, 0xfa, 0x2a, 0xee, 0x5f, 0x5e, 0xa8, 0x89, 0x09, 0xdc, 0x47, 0x6d, 0xac, 0xef,
+ 0xd4, 0x14, 0x79, 0x77, 0x6b, 0x67, 0x7d, 0xb3, 0x26, 0x26, 0xc3, 0x0d, 0xfb, 0x77, 0x13, 0x50,
+ 0x88, 0x9e, 0xbd, 0xa4, 0x9f, 0x80, 0x93, 0xfc, 0xa2, 0xc4, 0x45, 0x9e, 0x72, 0x53, 0x77, 0xc8,
+ 0x5a, 0x6c, 0xab, 0x74, 0x5f, 0xf4, 0xb3, 0x61, 0x9a, 0x59, 0x35, 0x90, 0xf7, 0xac, 0xee, 0xe0,
+ 0x95, 0xd6, 0x56, 0x3d, 0x69, 0x03, 0x4e, 0x9b, 0x96, 0xe2, 0x7a, 0xaa, 0xd9, 0x54, 0x9d, 0xa6,
+ 0x12, 0x5c, 0x51, 0x29, 0xaa, 0xa6, 0x21, 0xd7, 0xb5, 0xe8, 0x1e, 0xe8, 0xb3, 0x7c, 0xd4, 0xb4,
+ 0x1a, 0xcc, 0x38, 0xd8, 0x1c, 0xaa, 0xcc, 0xb4, 0x27, 0x73, 0x93, 0x47, 0x65, 0xee, 0x47, 0x20,
+ 0xdb, 0x56, 0x6d, 0x05, 0x99, 0x9e, 0xd3, 0x25, 0x1d, 0x77, 0x46, 0xce, 0xb4, 0x55, 0xbb, 0x86,
+ 0x9f, 0x3f, 0x9c, 0x83, 0xcf, 0x3f, 0x27, 0x21, 0x1f, 0xee, 0xba, 0xf1, 0x21, 0x46, 0x23, 0x1b,
+ 0x94, 0x40, 0x4a, 0xd8, 0x03, 0xf7, 0xec, 0xd1, 0xe7, 0x56, 0xf0, 0xce, 0x55, 0x19, 0xa5, 0xbd,
+ 0xb0, 0x4c, 0x91, 0xb8, 0x6b, 0xc0, 0xa9, 0x85, 0x68, 0xef, 0x91, 0x91, 0xd9, 0x93, 0xb4, 0x06,
+ 0xa3, 0xd7, 0x5c, 0xc2, 0x3d, 0x4a, 0xb8, 0x1f, 0xbc, 0x37, 0xf7, 0x33, 0x0d, 0x42, 0x9e, 0x7d,
+ 0xa6, 0xa1, 0x6c, 0xd5, 0xe5, 0xcd, 0xea, 0x86, 0xcc, 0xe0, 0xd2, 0x29, 0x48, 0x19, 0xea, 0xad,
+ 0x6e, 0x74, 0x8f, 0x23, 0xa2, 0x61, 0x03, 0x7f, 0x0a, 0x52, 0x37, 0x91, 0x7a, 0x3d, 0xba, 0xb3,
+ 0x10, 0xd1, 0x07, 0x98, 0xfa, 0xf3, 0x90, 0x26, 0xf1, 0x92, 0x00, 0x58, 0xc4, 0xc4, 0x11, 0x29,
+ 0x03, 0xa9, 0x95, 0xba, 0x8c, 0xd3, 0x5f, 0x84, 0x3c, 0x95, 0x2a, 0xdb, 0xeb, 0xb5, 0x95, 0x9a,
+ 0x98, 0x28, 0x2f, 0xc1, 0x28, 0x0d, 0x02, 0x5e, 0x1a, 0x7e, 0x18, 0xc4, 0x11, 0xf6, 0xc8, 0x38,
+ 0x04, 0xae, 0xdd, 0xdd, 0x5c, 0xae, 0xc9, 0x62, 0x22, 0x3c, 0xbd, 0x2e, 0xe4, 0xc3, 0x0d, 0xf7,
+ 0x87, 0x93, 0x53, 0xdf, 0x11, 0x20, 0x17, 0x6a, 0xa0, 0x71, 0xe7, 0xa3, 0x1a, 0x86, 0x75, 0x53,
+ 0x51, 0x0d, 0x5d, 0x75, 0x59, 0x52, 0x00, 0x11, 0x55, 0xb1, 0x64, 0xd8, 0x49, 0xfb, 0x50, 0x9c,
+ 0x7f, 0x55, 0x00, 0xb1, 0xb7, 0x77, 0xed, 0x71, 0x50, 0xf8, 0xb1, 0x3a, 0xf8, 0x8a, 0x00, 0x85,
+ 0x68, 0xc3, 0xda, 0xe3, 0xde, 0xd9, 0x1f, 0xab, 0x7b, 0x6f, 0x25, 0x60, 0x3c, 0xd2, 0xa6, 0x0e,
+ 0xeb, 0xdd, 0x67, 0x60, 0x52, 0x6f, 0xa2, 0xb6, 0x6d, 0x79, 0xc8, 0xd4, 0xba, 0x8a, 0x81, 0x6e,
+ 0x20, 0xa3, 0x58, 0x26, 0x85, 0x62, 0xfe, 0xde, 0x8d, 0xf0, 0xdc, 0x7a, 0x80, 0xdb, 0xc0, 0xb0,
+ 0xca, 0xd4, 0xfa, 0x6a, 0x6d, 0x73, 0xbb, 0xbe, 0x53, 0xdb, 0x5a, 0x79, 0x5e, 0xd9, 0xdd, 0xfa,
+ 0xa9, 0xad, 0xfa, 0xb3, 0x5b, 0xb2, 0xa8, 0xf7, 0x98, 0x7d, 0x80, 0x4b, 0x7d, 0x1b, 0xc4, 0x5e,
+ 0xa7, 0xa4, 0x93, 0x30, 0xc8, 0x2d, 0x71, 0x44, 0x9a, 0x82, 0x89, 0xad, 0xba, 0xd2, 0x58, 0x5f,
+ 0xad, 0x29, 0xb5, 0x2b, 0x57, 0x6a, 0x2b, 0x3b, 0x0d, 0x7a, 0xb5, 0xe1, 0x5b, 0xef, 0x44, 0x17,
+ 0xf5, 0xcb, 0x49, 0x98, 0x1a, 0xe0, 0x89, 0x54, 0x65, 0x87, 0x12, 0x7a, 0x4e, 0x7a, 0x62, 0x18,
+ 0xef, 0xe7, 0x70, 0x57, 0xb0, 0xad, 0x3a, 0x1e, 0x3b, 0xc3, 0x3c, 0x02, 0x38, 0x4a, 0xa6, 0xa7,
+ 0xef, 0xeb, 0xc8, 0x61, 0x37, 0x41, 0xf4, 0xa4, 0x32, 0x11, 0xc8, 0xe9, 0x65, 0xd0, 0xe3, 0x20,
+ 0xd9, 0x96, 0xab, 0x7b, 0xfa, 0x0d, 0xa4, 0xe8, 0x26, 0xbf, 0x36, 0xc2, 0x27, 0x97, 0x94, 0x2c,
+ 0x72, 0xcd, 0xba, 0xe9, 0xf9, 0xd6, 0x26, 0x6a, 0xa9, 0x3d, 0xd6, 0xb8, 0x80, 0x27, 0x65, 0x91,
+ 0x6b, 0x7c, 0xeb, 0xb3, 0x90, 0x6f, 0x5a, 0x1d, 0xdc, 0xce, 0x51, 0x3b, 0xbc, 0x5f, 0x08, 0x72,
+ 0x8e, 0xca, 0x7c, 0x13, 0xd6, 0xa8, 0x07, 0xf7, 0x55, 0x79, 0x39, 0x47, 0x65, 0xd4, 0xe4, 0x61,
+ 0x98, 0x50, 0x5b, 0x2d, 0x07, 0x93, 0x73, 0x22, 0x7a, 0xf4, 0x28, 0xf8, 0x62, 0x62, 0x38, 0xf3,
+ 0x0c, 0x64, 0x78, 0x1c, 0xf0, 0x96, 0x8c, 0x23, 0xa1, 0xd8, 0xf4, 0x3c, 0x9d, 0x98, 0xcd, 0xca,
+ 0x19, 0x93, 0x2b, 0xcf, 0x42, 0x5e, 0x77, 0x95, 0xe0, 0xfa, 0x3d, 0x71, 0x26, 0x31, 0x9b, 0x91,
+ 0x73, 0xba, 0xeb, 0x5f, 0x5d, 0x96, 0x5f, 0x4b, 0x40, 0x21, 0xfa, 0xf9, 0x40, 0x5a, 0x85, 0x8c,
+ 0x61, 0x69, 0x2a, 0x49, 0x2d, 0xfa, 0xed, 0x6a, 0x36, 0xe6, 0x8b, 0xc3, 0xdc, 0x06, 0xb3, 0x97,
+ 0x7d, 0xe4, 0xcc, 0x3f, 0x08, 0x90, 0xe1, 0x62, 0xe9, 0x04, 0xa4, 0x6c, 0xd5, 0x3b, 0x20, 0x74,
+ 0xe9, 0xe5, 0x84, 0x28, 0xc8, 0xe4, 0x19, 0xcb, 0x5d, 0x5b, 0x35, 0x49, 0x0a, 0x30, 0x39, 0x7e,
+ 0xc6, 0xf3, 0x6a, 0x20, 0xb5, 0x49, 0xce, 0x35, 0x56, 0xbb, 0x8d, 0x4c, 0xcf, 0xe5, 0xf3, 0xca,
+ 0xe4, 0x2b, 0x4c, 0x2c, 0x3d, 0x06, 0x93, 0x9e, 0xa3, 0xea, 0x46, 0xc4, 0x36, 0x45, 0x6c, 0x45,
+ 0xae, 0xf0, 0x8d, 0x2b, 0x70, 0x8a, 0xf3, 0x36, 0x91, 0xa7, 0x6a, 0x07, 0xa8, 0x19, 0x80, 0x46,
+ 0xc9, 0xfd, 0xc5, 0x49, 0x66, 0xb0, 0xca, 0xf4, 0x1c, 0x5b, 0xfe, 0x9e, 0x00, 0x93, 0xfc, 0x24,
+ 0xd6, 0xf4, 0x83, 0xb5, 0x09, 0xa0, 0x9a, 0xa6, 0xe5, 0x85, 0xc3, 0xd5, 0x9f, 0xca, 0x7d, 0xb8,
+ 0xb9, 0xaa, 0x0f, 0x92, 0x43, 0x04, 0x33, 0x6d, 0x80, 0x40, 0x73, 0x64, 0xd8, 0x4e, 0x43, 0x8e,
+ 0x7d, 0x1b, 0x22, 0x1f, 0x18, 0xe9, 0xd9, 0x1d, 0xa8, 0x08, 0x1f, 0xd9, 0xa4, 0x69, 0x48, 0xef,
+ 0xa1, 0x96, 0x6e, 0xb2, 0x1b, 0x5f, 0xfa, 0xc0, 0x6f, 0x58, 0x52, 0xfe, 0x0d, 0xcb, 0xf2, 0xa7,
+ 0x61, 0x4a, 0xb3, 0xda, 0xbd, 0xee, 0x2e, 0x8b, 0x3d, 0xf7, 0x07, 0xee, 0x55, 0xe1, 0x05, 0x08,
+ 0x5a, 0xcc, 0xf7, 0x04, 0xe1, 0xcb, 0x89, 0xe4, 0xda, 0xf6, 0xf2, 0xd7, 0x12, 0x33, 0x6b, 0x14,
+ 0xba, 0xcd, 0x47, 0x2a, 0xa3, 0x7d, 0x03, 0x69, 0xd8, 0x7b, 0xf8, 0xca, 0x63, 0xf0, 0x44, 0x4b,
+ 0xf7, 0x0e, 0x3a, 0x7b, 0x73, 0x9a, 0xd5, 0x9e, 0x6f, 0x59, 0x2d, 0x2b, 0xf8, 0xa6, 0x8a, 0x9f,
+ 0xc8, 0x03, 0xf9, 0x8b, 0x7d, 0x57, 0xcd, 0xfa, 0xd2, 0x99, 0xd8, 0x8f, 0xb0, 0x95, 0x2d, 0x98,
+ 0x62, 0xc6, 0x0a, 0xf9, 0xb0, 0x43, 0x8f, 0x27, 0xd2, 0x3d, 0x2f, 0xc7, 0x8a, 0xdf, 0x78, 0x9b,
+ 0x6c, 0xd7, 0xf2, 0x24, 0x83, 0x62, 0x1d, 0x3d, 0xc1, 0x54, 0x64, 0xb8, 0x2f, 0xc2, 0x47, 0x97,
+ 0x26, 0x72, 0x62, 0x18, 0xbf, 0xcb, 0x18, 0xa7, 0x42, 0x8c, 0x0d, 0x06, 0xad, 0xac, 0xc0, 0xf8,
+ 0x71, 0xb8, 0xfe, 0x8e, 0x71, 0xe5, 0x51, 0x98, 0x64, 0x0d, 0x26, 0x08, 0x89, 0xd6, 0x71, 0x3d,
+ 0xab, 0x4d, 0xea, 0xde, 0xbd, 0x69, 0xfe, 0xfe, 0x6d, 0xba, 0x56, 0x0a, 0x18, 0xb6, 0xe2, 0xa3,
+ 0x2a, 0x15, 0x20, 0xdf, 0xb2, 0x9a, 0x48, 0x33, 0x62, 0x18, 0x5e, 0x67, 0x8e, 0xf8, 0xf6, 0x95,
+ 0x4f, 0xc1, 0x34, 0xfe, 0x9b, 0x94, 0xa5, 0xb0, 0x27, 0xf1, 0x37, 0x69, 0xc5, 0xef, 0xbd, 0x44,
+ 0x97, 0xe3, 0x94, 0x4f, 0x10, 0xf2, 0x29, 0x34, 0x8b, 0x2d, 0xe4, 0x79, 0xc8, 0x71, 0x15, 0xd5,
+ 0x18, 0xe4, 0x5e, 0xe8, 0x2a, 0xa2, 0xf8, 0x85, 0x77, 0xa2, 0xb3, 0xb8, 0x46, 0x91, 0x55, 0xc3,
+ 0xa8, 0xec, 0xc2, 0xc9, 0x01, 0x59, 0x31, 0x04, 0xe7, 0xcb, 0x8c, 0x73, 0xba, 0x2f, 0x33, 0x30,
+ 0xed, 0x36, 0x70, 0xb9, 0x3f, 0x97, 0x43, 0x70, 0xfe, 0x0e, 0xe3, 0x94, 0x18, 0x96, 0x4f, 0x29,
+ 0x66, 0x7c, 0x06, 0x26, 0x6f, 0x20, 0x67, 0xcf, 0x72, 0xd9, 0xf5, 0xcf, 0x10, 0x74, 0xaf, 0x30,
+ 0xba, 0x09, 0x06, 0x24, 0xf7, 0x41, 0x98, 0xeb, 0x12, 0x64, 0xf6, 0x55, 0x0d, 0x0d, 0x41, 0xf1,
+ 0x45, 0x46, 0x31, 0x86, 0xed, 0x31, 0xb4, 0x0a, 0xf9, 0x96, 0xc5, 0x76, 0xa6, 0x78, 0xf8, 0xab,
+ 0x0c, 0x9e, 0xe3, 0x18, 0x46, 0x61, 0x5b, 0x76, 0xc7, 0xc0, 0xdb, 0x56, 0x3c, 0xc5, 0xef, 0x72,
+ 0x0a, 0x8e, 0x61, 0x14, 0xc7, 0x08, 0xeb, 0xef, 0x71, 0x0a, 0x37, 0x14, 0xcf, 0xa7, 0x21, 0x67,
+ 0x99, 0x46, 0xd7, 0x32, 0x87, 0x71, 0xe2, 0x4b, 0x8c, 0x01, 0x18, 0x04, 0x13, 0x5c, 0x86, 0xec,
+ 0xb0, 0x13, 0xf1, 0x07, 0xef, 0xf0, 0xe5, 0xc1, 0x67, 0x60, 0x0d, 0x26, 0x78, 0x81, 0xd2, 0x2d,
+ 0x73, 0x08, 0x8a, 0xaf, 0x30, 0x8a, 0x42, 0x08, 0xc6, 0x86, 0xe1, 0x21, 0xd7, 0x6b, 0xa1, 0x61,
+ 0x48, 0x5e, 0xe3, 0xc3, 0x60, 0x10, 0x16, 0xca, 0x3d, 0x64, 0x6a, 0x07, 0xc3, 0x31, 0x7c, 0x95,
+ 0x87, 0x92, 0x63, 0x30, 0xc5, 0x0a, 0x8c, 0xb7, 0x55, 0xc7, 0x3d, 0x50, 0x8d, 0xa1, 0xa6, 0xe3,
+ 0x0f, 0x19, 0x47, 0xde, 0x07, 0xb1, 0x88, 0x74, 0xcc, 0xe3, 0xd0, 0x7c, 0x8d, 0x47, 0x24, 0x04,
+ 0x63, 0x4b, 0xcf, 0xf5, 0xc8, 0x5d, 0xd9, 0x71, 0xd8, 0xfe, 0x88, 0x2f, 0x3d, 0x8a, 0xdd, 0x0c,
+ 0x33, 0x5e, 0x86, 0xac, 0xab, 0xdf, 0x1a, 0x8a, 0xe6, 0x8f, 0xf9, 0x4c, 0x13, 0x00, 0x06, 0x3f,
+ 0x0f, 0xa7, 0x06, 0x6e, 0x13, 0x43, 0x90, 0xfd, 0x09, 0x23, 0x3b, 0x31, 0x60, 0xab, 0x60, 0x25,
+ 0xe1, 0xb8, 0x94, 0x7f, 0xca, 0x4b, 0x02, 0xea, 0xe1, 0xda, 0xc6, 0x67, 0x05, 0x57, 0xdd, 0x3f,
+ 0x5e, 0xd4, 0xfe, 0x8c, 0x47, 0x8d, 0x62, 0x23, 0x51, 0xdb, 0x81, 0x13, 0x8c, 0xf1, 0x78, 0xf3,
+ 0xfa, 0x75, 0x5e, 0x58, 0x29, 0x7a, 0x37, 0x3a, 0xbb, 0x9f, 0x86, 0x19, 0x3f, 0x9c, 0xbc, 0x29,
+ 0x75, 0x95, 0xb6, 0x6a, 0x0f, 0xc1, 0xfc, 0x0d, 0xc6, 0xcc, 0x2b, 0xbe, 0xdf, 0xd5, 0xba, 0x9b,
+ 0xaa, 0x8d, 0xc9, 0x9f, 0x83, 0x22, 0x27, 0xef, 0x98, 0x0e, 0xd2, 0xac, 0x96, 0xa9, 0xdf, 0x42,
+ 0xcd, 0x21, 0xa8, 0xff, 0xbc, 0x67, 0xaa, 0x76, 0x43, 0x70, 0xcc, 0xbc, 0x0e, 0xa2, 0xdf, 0xab,
+ 0x28, 0x7a, 0xdb, 0xb6, 0x1c, 0x2f, 0x86, 0xf1, 0x2f, 0xf8, 0x4c, 0xf9, 0xb8, 0x75, 0x02, 0xab,
+ 0xd4, 0xa0, 0x40, 0x1e, 0x87, 0x4d, 0xc9, 0xbf, 0x64, 0x44, 0xe3, 0x01, 0x8a, 0x15, 0x0e, 0xcd,
+ 0x6a, 0xdb, 0xaa, 0x33, 0x4c, 0xfd, 0xfb, 0x2b, 0x5e, 0x38, 0x18, 0x84, 0x15, 0x0e, 0xaf, 0x6b,
+ 0x23, 0xbc, 0xdb, 0x0f, 0xc1, 0xf0, 0x4d, 0x5e, 0x38, 0x38, 0x86, 0x51, 0xf0, 0x86, 0x61, 0x08,
+ 0x8a, 0xbf, 0xe6, 0x14, 0x1c, 0x83, 0x29, 0x3e, 0x19, 0x6c, 0xb4, 0x0e, 0x6a, 0xe9, 0xae, 0xe7,
+ 0xd0, 0x56, 0xf8, 0xde, 0x54, 0xdf, 0x7a, 0x27, 0xda, 0x84, 0xc9, 0x21, 0x28, 0xae, 0x44, 0xec,
+ 0x0a, 0x95, 0x9c, 0x94, 0xe2, 0x1d, 0xfb, 0x36, 0xaf, 0x44, 0x21, 0x18, 0xf6, 0x2d, 0xd4, 0x21,
+ 0xe2, 0xb0, 0x6b, 0xf8, 0x7c, 0x30, 0x04, 0xdd, 0x77, 0x7a, 0x9c, 0x6b, 0x70, 0x2c, 0xe6, 0x0c,
+ 0xf5, 0x3f, 0x1d, 0xf3, 0x3a, 0xea, 0x0e, 0x95, 0x9d, 0x7f, 0xd3, 0xd3, 0xff, 0xec, 0x52, 0x24,
+ 0xad, 0x21, 0x13, 0x3d, 0xfd, 0x94, 0x14, 0xf7, 0x2b, 0xa0, 0xe2, 0xcf, 0xde, 0x65, 0xe3, 0x8d,
+ 0xb6, 0x53, 0x95, 0x0d, 0x9c, 0xe4, 0xd1, 0xa6, 0x27, 0x9e, 0xec, 0xa5, 0xbb, 0x7e, 0x9e, 0x47,
+ 0x7a, 0x9e, 0xca, 0x15, 0x18, 0x8f, 0x34, 0x3c, 0xf1, 0x54, 0x3f, 0xc7, 0xa8, 0xf2, 0xe1, 0x7e,
+ 0xa7, 0xb2, 0x04, 0x29, 0xdc, 0xbc, 0xc4, 0xc3, 0x7f, 0x9e, 0xc1, 0x89, 0x79, 0xe5, 0xe3, 0x90,
+ 0xe1, 0x4d, 0x4b, 0x3c, 0xf4, 0x17, 0x18, 0xd4, 0x87, 0x60, 0x38, 0x6f, 0x58, 0xe2, 0xe1, 0xbf,
+ 0xc8, 0xe1, 0x1c, 0x82, 0xe1, 0xc3, 0x87, 0xf0, 0x6f, 0x7f, 0x29, 0xc5, 0x36, 0x1d, 0x1e, 0xbb,
+ 0xcb, 0x30, 0xc6, 0x3a, 0x95, 0x78, 0xf4, 0x67, 0xd9, 0xcb, 0x39, 0xa2, 0x72, 0x01, 0xd2, 0x43,
+ 0x06, 0xfc, 0x57, 0x18, 0x94, 0xda, 0x57, 0x56, 0x20, 0x17, 0xea, 0x4e, 0xe2, 0xe1, 0xbf, 0xca,
+ 0xe0, 0x61, 0x14, 0x76, 0x9d, 0x75, 0x27, 0xf1, 0x04, 0xbf, 0xc6, 0x5d, 0x67, 0x08, 0x1c, 0x36,
+ 0xde, 0x98, 0xc4, 0xa3, 0x7f, 0x9d, 0x47, 0x9d, 0x43, 0x2a, 0x4f, 0x43, 0xd6, 0xdf, 0x6c, 0xe2,
+ 0xf1, 0xbf, 0xc1, 0xf0, 0x01, 0x06, 0x47, 0x20, 0xb4, 0xd9, 0xc5, 0x53, 0x7c, 0x8e, 0x47, 0x20,
+ 0x84, 0xc2, 0xcb, 0xa8, 0xb7, 0x81, 0x89, 0x67, 0xfa, 0x4d, 0xbe, 0x8c, 0x7a, 0xfa, 0x17, 0x3c,
+ 0x9b, 0xa4, 0xe6, 0xc7, 0x53, 0xfc, 0x16, 0x9f, 0x4d, 0x62, 0x8f, 0xdd, 0xe8, 0xed, 0x08, 0xe2,
+ 0x39, 0x7e, 0x9b, 0xbb, 0xd1, 0xd3, 0x10, 0x54, 0xb6, 0x41, 0xea, 0xef, 0x06, 0xe2, 0xf9, 0x3e,
+ 0xcf, 0xf8, 0x26, 0xfb, 0x9a, 0x81, 0xca, 0xb3, 0x70, 0x62, 0x70, 0x27, 0x10, 0xcf, 0xfa, 0x85,
+ 0xbb, 0x3d, 0x67, 0xb7, 0x70, 0x23, 0x50, 0xd9, 0x09, 0xb6, 0x94, 0x70, 0x17, 0x10, 0x4f, 0xfb,
+ 0xf2, 0xdd, 0x68, 0xe1, 0x0e, 0x37, 0x01, 0x95, 0x2a, 0x40, 0xb0, 0x01, 0xc7, 0x73, 0xbd, 0xc2,
+ 0xb8, 0x42, 0x20, 0xbc, 0x34, 0xd8, 0xfe, 0x1b, 0x8f, 0xff, 0x22, 0x5f, 0x1a, 0x0c, 0x81, 0x97,
+ 0x06, 0xdf, 0x7a, 0xe3, 0xd1, 0xaf, 0xf2, 0xa5, 0xc1, 0x21, 0x38, 0xb3, 0x43, 0xbb, 0x5b, 0x3c,
+ 0xc3, 0x97, 0x78, 0x66, 0x87, 0x50, 0x95, 0x2d, 0x98, 0xec, 0xdb, 0x10, 0xe3, 0xa9, 0xbe, 0xcc,
+ 0xa8, 0xc4, 0xde, 0xfd, 0x30, 0xbc, 0x79, 0xb1, 0xcd, 0x30, 0x9e, 0xed, 0xf7, 0x7b, 0x36, 0x2f,
+ 0xb6, 0x17, 0x56, 0x2e, 0x43, 0xc6, 0xec, 0x18, 0x06, 0x5e, 0x3c, 0xd2, 0xbd, 0x7f, 0xb9, 0x57,
+ 0xfc, 0xd7, 0xf7, 0x59, 0x74, 0x38, 0xa0, 0xb2, 0x04, 0x69, 0xd4, 0xde, 0x43, 0xcd, 0x38, 0xe4,
+ 0xbf, 0xbd, 0xcf, 0x0b, 0x26, 0xb6, 0xae, 0x3c, 0x0d, 0x40, 0xaf, 0x46, 0xc8, 0x67, 0xbf, 0x18,
+ 0xec, 0xbf, 0xbf, 0xcf, 0x7e, 0x53, 0x13, 0x40, 0x02, 0x02, 0xfa, 0x0b, 0x9d, 0x7b, 0x13, 0xbc,
+ 0x13, 0x25, 0x20, 0x33, 0x72, 0x09, 0xc6, 0xae, 0xb9, 0x96, 0xe9, 0xa9, 0xad, 0x38, 0xf4, 0x7f,
+ 0x30, 0x34, 0xb7, 0xc7, 0x01, 0x6b, 0x5b, 0x0e, 0xf2, 0xd4, 0x96, 0x1b, 0x87, 0xfd, 0x4f, 0x86,
+ 0xf5, 0x01, 0x18, 0xac, 0xa9, 0xae, 0x37, 0xcc, 0xb8, 0xff, 0x8b, 0x83, 0x39, 0x00, 0x3b, 0x8d,
+ 0xff, 0xbe, 0x8e, 0xba, 0x71, 0xd8, 0x77, 0xb9, 0xd3, 0xcc, 0xbe, 0xf2, 0x71, 0xc8, 0xe2, 0x3f,
+ 0xe9, 0x0f, 0xe5, 0x62, 0xc0, 0xff, 0xcd, 0xc0, 0x01, 0x02, 0xbf, 0xd9, 0xf5, 0x9a, 0x9e, 0x1e,
+ 0x1f, 0xec, 0xff, 0x61, 0x33, 0xcd, 0xed, 0x2b, 0x55, 0xc8, 0xb9, 0x5e, 0xb3, 0xd9, 0x61, 0xfd,
+ 0x69, 0x0c, 0xfc, 0x7f, 0xdf, 0xf7, 0xaf, 0x2c, 0x7c, 0x0c, 0x9e, 0xed, 0x9b, 0xd7, 0x3d, 0xdb,
+ 0x22, 0x9f, 0x39, 0xe2, 0x18, 0xee, 0x32, 0x86, 0x10, 0x64, 0xb9, 0x36, 0xf8, 0xfa, 0x16, 0xd6,
+ 0xac, 0x35, 0x8b, 0x5e, 0xdc, 0xbe, 0x50, 0x8e, 0xbf, 0x81, 0x85, 0x1f, 0x66, 0x60, 0x46, 0xb3,
+ 0xda, 0x7b, 0x96, 0x3b, 0xef, 0x97, 0xe3, 0x79, 0xcb, 0x64, 0x8c, 0x52, 0xd2, 0x32, 0xd1, 0xcc,
+ 0xf1, 0x6e, 0x72, 0xcb, 0xa7, 0x20, 0xdd, 0xe8, 0xec, 0xed, 0x75, 0x25, 0x11, 0x92, 0x6e, 0x67,
+ 0x8f, 0xfd, 0xdc, 0x0a, 0xff, 0x59, 0x7e, 0x33, 0x09, 0xe3, 0x55, 0xc3, 0xd8, 0xe9, 0xda, 0xc8,
+ 0xad, 0x9b, 0xa8, 0xbe, 0x2f, 0x15, 0x61, 0x94, 0x0c, 0xf5, 0x29, 0x62, 0x26, 0x5c, 0x1d, 0x91,
+ 0xd9, 0xb3, 0xaf, 0x59, 0x20, 0x77, 0xdc, 0x09, 0x5f, 0xb3, 0xe0, 0x6b, 0xce, 0xd1, 0x2b, 0x6e,
+ 0x5f, 0x73, 0xce, 0xd7, 0x2c, 0x92, 0x8b, 0xee, 0xa4, 0xaf, 0x59, 0xf4, 0x35, 0x4b, 0xe4, 0x43,
+ 0xce, 0xb8, 0xaf, 0x59, 0xf2, 0x35, 0xe7, 0xc9, 0xa7, 0x9b, 0x94, 0xaf, 0x39, 0xef, 0x6b, 0x2e,
+ 0x90, 0x2f, 0x36, 0x93, 0xbe, 0xe6, 0x82, 0xaf, 0xb9, 0x48, 0xbe, 0xd2, 0x48, 0xbe, 0xe6, 0xa2,
+ 0xaf, 0xb9, 0x44, 0x7e, 0x57, 0x35, 0xe6, 0x6b, 0x2e, 0x49, 0x33, 0x30, 0x46, 0x47, 0xf6, 0x24,
+ 0xf9, 0x94, 0x3f, 0x71, 0x75, 0x44, 0xe6, 0x82, 0x40, 0xf7, 0x14, 0xf9, 0xed, 0xd4, 0x68, 0xa0,
+ 0x7b, 0x2a, 0xd0, 0x2d, 0x90, 0xff, 0xc2, 0x21, 0x06, 0xba, 0x85, 0x40, 0x77, 0xae, 0x38, 0x8e,
+ 0x33, 0x24, 0xd0, 0x9d, 0x0b, 0x74, 0x8b, 0xc5, 0x02, 0x9e, 0x81, 0x40, 0xb7, 0x18, 0xe8, 0x96,
+ 0x8a, 0x13, 0x67, 0x84, 0xd9, 0x7c, 0xa0, 0x5b, 0x92, 0x9e, 0x80, 0x9c, 0xdb, 0xd9, 0x53, 0x58,
+ 0xad, 0x27, 0xbf, 0xd1, 0xca, 0x2d, 0xc0, 0x1c, 0xce, 0x09, 0x32, 0xad, 0x57, 0x47, 0x64, 0x70,
+ 0x3b, 0x7b, 0xac, 0x14, 0x2f, 0xe7, 0x81, 0xdc, 0x40, 0x29, 0xe4, 0xa7, 0xd5, 0xe5, 0x37, 0x04,
+ 0xc8, 0xee, 0xdc, 0xb4, 0xc8, 0x87, 0x7c, 0xf7, 0xff, 0x79, 0x72, 0xb9, 0xd3, 0xe7, 0x16, 0xc9,
+ 0xb7, 0xd6, 0xec, 0x55, 0x41, 0xe6, 0x82, 0x40, 0xb7, 0x54, 0x7c, 0x80, 0x0c, 0xc8, 0xd7, 0x2d,
+ 0x49, 0xf3, 0x90, 0x0f, 0x0d, 0x68, 0x81, 0xfc, 0x7a, 0x2a, 0x3a, 0x22, 0x41, 0xce, 0x05, 0x23,
+ 0x5a, 0x58, 0x4e, 0x03, 0x4e, 0x7b, 0xfc, 0x8f, 0x77, 0xd3, 0x2a, 0x7f, 0x2e, 0x01, 0x39, 0x7a,
+ 0x69, 0x4d, 0x46, 0x85, 0x5f, 0x45, 0xcf, 0x35, 0x5d, 0xe6, 0xc6, 0x88, 0xcc, 0x05, 0x92, 0x0c,
+ 0x40, 0x4d, 0x71, 0x86, 0x53, 0x4f, 0x96, 0x9f, 0xfc, 0xa7, 0x37, 0x4f, 0x3f, 0x7e, 0xe4, 0x0a,
+ 0xc2, 0xb1, 0x9b, 0xa7, 0x45, 0x7c, 0x6e, 0x57, 0x37, 0xbd, 0xa7, 0x16, 0x2e, 0xe2, 0x00, 0x07,
+ 0x2c, 0xd2, 0x2e, 0x64, 0x56, 0x54, 0x97, 0xfc, 0xee, 0x92, 0xb8, 0x9e, 0x5a, 0xbe, 0xf0, 0xc3,
+ 0x37, 0x4f, 0x9f, 0x8b, 0x61, 0x64, 0xf5, 0x75, 0x6e, 0xb3, 0x8b, 0x59, 0xcf, 0x2f, 0x62, 0xf8,
+ 0xd5, 0x11, 0xd9, 0xa7, 0x92, 0x16, 0xb8, 0xab, 0x5b, 0x6a, 0x9b, 0xfe, 0x4c, 0x2c, 0xb9, 0x2c,
+ 0x1e, 0xbe, 0x79, 0x3a, 0xbf, 0xd9, 0x0d, 0xe4, 0x81, 0x2b, 0xf8, 0x69, 0x39, 0x03, 0xa3, 0xd4,
+ 0xd5, 0xe5, 0xd5, 0xd7, 0xef, 0x94, 0x46, 0xde, 0xb8, 0x53, 0x1a, 0xf9, 0xc7, 0x3b, 0xa5, 0x91,
+ 0xb7, 0xee, 0x94, 0x84, 0x77, 0xef, 0x94, 0x84, 0xf7, 0xee, 0x94, 0x84, 0xdb, 0x87, 0x25, 0xe1,
+ 0xab, 0x87, 0x25, 0xe1, 0xeb, 0x87, 0x25, 0xe1, 0x5b, 0x87, 0x25, 0xe1, 0xf5, 0xc3, 0x92, 0xf0,
+ 0xc6, 0x61, 0x69, 0xe4, 0xad, 0xc3, 0x92, 0xf0, 0x83, 0xc3, 0xd2, 0xc8, 0xbb, 0x87, 0x25, 0xe1,
+ 0xbd, 0xc3, 0xd2, 0xc8, 0xed, 0xef, 0x97, 0x46, 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x3d, 0x2f,
+ 0xe3, 0x3d, 0x71, 0x37, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -4725,47 +4770,3 @@ func valueToStringOne(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
-
-func init() { proto.RegisterFile("combos/marshaler/one.proto", fileDescriptor_one_2f6d76776b72edfd) }
-
-var fileDescriptor_one_2f6d76776b72edfd = []byte{
- // 601 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0xbf, 0x4f, 0xdb, 0x4e,
- 0x14, 0x00, 0xf0, 0x7b, 0x84, 0x84, 0x70, 0x09, 0x5f, 0xf2, 0xf5, 0x74, 0x65, 0x38, 0x4e, 0x69,
- 0x2b, 0xdd, 0x50, 0x12, 0xe2, 0x24, 0xfc, 0x18, 0x6b, 0xaa, 0x2a, 0x0b, 0x45, 0x32, 0x30, 0xa3,
- 0x98, 0x1e, 0x21, 0x52, 0xe2, 0x43, 0x39, 0x5b, 0xc8, 0x1b, 0x7f, 0x43, 0xff, 0x8a, 0x8e, 0x1d,
- 0xfb, 0x27, 0x30, 0x32, 0x56, 0x1d, 0x22, 0xec, 0x2e, 0x1d, 0x19, 0x51, 0xa7, 0xea, 0x6c, 0x72,
- 0x57, 0xa9, 0xaa, 0xba, 0x74, 0x8a, 0xdf, 0xfb, 0xf8, 0x5e, 0xde, 0xf3, 0xdd, 0xe1, 0x8d, 0x73,
- 0x39, 0x0d, 0xa4, 0x6a, 0x4f, 0x87, 0x33, 0x75, 0x39, 0x9c, 0x88, 0x59, 0x5b, 0x86, 0xa2, 0x75,
- 0x35, 0x93, 0x91, 0x74, 0x4a, 0x32, 0x14, 0x1b, 0x5b, 0xa3, 0x71, 0x74, 0x19, 0x07, 0xad, 0x73,
- 0x39, 0x6d, 0x8f, 0xe4, 0x48, 0xb6, 0x73, 0x0b, 0xe2, 0x8b, 0x3c, 0xca, 0x83, 0xfc, 0xa9, 0x58,
- 0xd3, 0x7c, 0x86, 0xcb, 0xc7, 0x71, 0x10, 0x24, 0x4e, 0x03, 0x97, 0x54, 0x1c, 0x10, 0x60, 0xc0,
- 0x57, 0x7d, 0xfd, 0xd8, 0x9c, 0x97, 0xf0, 0xda, 0xeb, 0xc9, 0xe4, 0x24, 0xb9, 0x12, 0xea, 0x28,
- 0x14, 0x47, 0x17, 0x0e, 0xc1, 0x95, 0xb7, 0x63, 0x31, 0x79, 0xdf, 0xc9, 0x5f, 0x83, 0x01, 0xf2,
- 0x9f, 0x62, 0x23, 0x2e, 0x59, 0x62, 0xc0, 0x97, 0x8c, 0xb8, 0x46, 0xba, 0xa4, 0xc4, 0x80, 0x97,
- 0x8d, 0x74, 0x8d, 0xf4, 0xc8, 0x32, 0x03, 0x5e, 0x32, 0xd2, 0x33, 0xd2, 0x27, 0x65, 0x06, 0x7c,
- 0xcd, 0x48, 0xdf, 0xc8, 0x0e, 0xa9, 0x30, 0xe0, 0xcb, 0x46, 0x76, 0x8c, 0xec, 0x92, 0x15, 0x06,
- 0xfc, 0x7f, 0x23, 0xbb, 0x46, 0xf6, 0x48, 0x95, 0x01, 0x77, 0x8c, 0xec, 0x19, 0xd9, 0x27, 0xab,
- 0x0c, 0xf8, 0x8a, 0x91, 0x7d, 0x67, 0x03, 0xaf, 0x14, 0x93, 0x6d, 0x13, 0xcc, 0x80, 0xaf, 0x0f,
- 0x90, 0xbf, 0x48, 0x58, 0xeb, 0x90, 0x1a, 0x03, 0x5e, 0xb1, 0xd6, 0xb1, 0xe6, 0x92, 0x3a, 0x03,
- 0xde, 0xb0, 0xe6, 0x5a, 0xeb, 0x92, 0x35, 0x06, 0xbc, 0x6a, 0xad, 0x6b, 0xad, 0x47, 0xfe, 0xd3,
- 0x3b, 0x60, 0xad, 0x67, 0xad, 0x4f, 0xd6, 0x19, 0xf0, 0xba, 0xb5, 0xbe, 0xb3, 0x85, 0x6b, 0x2a,
- 0x0e, 0xce, 0xa6, 0x42, 0xa9, 0xe1, 0x48, 0x90, 0x06, 0x03, 0x5e, 0x73, 0x71, 0x4b, 0x9f, 0x89,
- 0x7c, 0x5b, 0x07, 0xc8, 0xc7, 0x2a, 0x0e, 0x0e, 0x0b, 0xf7, 0xea, 0x18, 0x47, 0x42, 0x45, 0x67,
- 0x32, 0x14, 0xf2, 0xa2, 0x79, 0x07, 0x78, 0xf5, 0xe4, 0x5a, 0x1e, 0xe9, 0x40, 0xfd, 0xe3, 0xcd,
- 0x5d, 0x34, 0xdd, 0xed, 0x91, 0x66, 0x3e, 0x10, 0xf8, 0x8b, 0x84, 0xb5, 0x3e, 0x79, 0x9e, 0x0f,
- 0x64, 0xac, 0xef, 0xb4, 0x71, 0xfd, 0x97, 0x81, 0x5c, 0xf2, 0xe2, 0xb7, 0x89, 0xc0, 0xaf, 0xd9,
- 0x89, 0x5c, 0xaf, 0x8c, 0xf5, 0xb1, 0xd7, 0x3f, 0xd1, 0xb5, 0x6c, 0x7e, 0x58, 0xc2, 0xb5, 0x83,
- 0x58, 0x45, 0x72, 0x9a, 0x4f, 0xa5, 0xff, 0xea, 0x38, 0x9a, 0x8d, 0xc3, 0x51, 0xf2, 0xd4, 0x06,
- 0xf2, 0x17, 0x09, 0xc7, 0xc7, 0xb8, 0x78, 0x55, 0x9f, 0xf0, 0xa2, 0x13, 0x6f, 0xfb, 0xeb, 0x7c,
- 0xf3, 0xd5, 0x1f, 0x6f, 0x90, 0xfe, 0x76, 0xed, 0xf3, 0x7c, 0x4d, 0xeb, 0x74, 0x1c, 0x46, 0x1d,
- 0x77, 0x4f, 0x7f, 0x60, 0x5b, 0xc5, 0x39, 0xc5, 0xd5, 0x83, 0xa1, 0x8a, 0xf2, 0x8a, 0xba, 0xf5,
- 0x65, 0x6f, 0xf7, 0xc7, 0x7c, 0xb3, 0xfb, 0x97, 0x8a, 0x43, 0x15, 0x45, 0xc9, 0x95, 0x68, 0x1d,
- 0x26, 0xba, 0xea, 0x4e, 0x4f, 0x2f, 0x1f, 0x20, 0xdf, 0x94, 0x72, 0xdc, 0x45, 0xab, 0xef, 0x86,
- 0x53, 0x41, 0x5e, 0xea, 0xeb, 0xe2, 0x35, 0xb2, 0xf9, 0x66, 0xfd, 0x30, 0xb1, 0x79, 0xdb, 0x8a,
- 0x8e, 0xbc, 0x2a, 0xae, 0x14, 0xad, 0x7a, 0x6f, 0x6e, 0x53, 0x8a, 0xee, 0x52, 0x8a, 0xbe, 0xa4,
- 0x14, 0xdd, 0xa7, 0x14, 0x1e, 0x52, 0x0a, 0x8f, 0x29, 0x85, 0x9b, 0x8c, 0xc2, 0xc7, 0x8c, 0xc2,
- 0xa7, 0x8c, 0xc2, 0xe7, 0x8c, 0xc2, 0x6d, 0x46, 0xe1, 0x2e, 0xa3, 0xe8, 0x3e, 0xa3, 0xf0, 0x3d,
- 0xa3, 0xe8, 0x21, 0xa3, 0xf0, 0x98, 0x51, 0x74, 0xf3, 0x8d, 0xa2, 0x9f, 0x01, 0x00, 0x00, 0xff,
- 0xff, 0xcf, 0xa5, 0xfc, 0x33, 0x7a, 0x04, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/one.pb.go
index 39f4548eb7..0efc155801 100644
--- a/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/one.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/one.pb.go
@@ -3,22 +3,21 @@
package one
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
-import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype"
+ github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -41,7 +40,7 @@ type Subby struct {
func (m *Subby) Reset() { *m = Subby{} }
func (*Subby) ProtoMessage() {}
func (*Subby) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_1be15a5672864d55, []int{0}
+ return fileDescriptor_e4ee9759a7520144, []int{0}
}
func (m *Subby) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Subby.Unmarshal(m, b)
@@ -49,8 +48,8 @@ func (m *Subby) XXX_Unmarshal(b []byte) error {
func (m *Subby) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Subby.Marshal(b, m, deterministic)
}
-func (dst *Subby) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Subby.Merge(dst, src)
+func (m *Subby) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Subby.Merge(m, src)
}
func (m *Subby) XXX_Size() int {
return xxx_messageInfo_Subby.Size(m)
@@ -88,7 +87,7 @@ type AllTypesOneOf struct {
func (m *AllTypesOneOf) Reset() { *m = AllTypesOneOf{} }
func (*AllTypesOneOf) ProtoMessage() {}
func (*AllTypesOneOf) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_1be15a5672864d55, []int{1}
+ return fileDescriptor_e4ee9759a7520144, []int{1}
}
func (m *AllTypesOneOf) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AllTypesOneOf.Unmarshal(m, b)
@@ -96,8 +95,8 @@ func (m *AllTypesOneOf) XXX_Unmarshal(b []byte) error {
func (m *AllTypesOneOf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AllTypesOneOf.Marshal(b, m, deterministic)
}
-func (dst *AllTypesOneOf) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllTypesOneOf.Merge(dst, src)
+func (m *AllTypesOneOf) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllTypesOneOf.Merge(m, src)
}
func (m *AllTypesOneOf) XXX_Size() int {
return xxx_messageInfo_AllTypesOneOf.Size(m)
@@ -590,7 +589,7 @@ type TwoOneofs struct {
func (m *TwoOneofs) Reset() { *m = TwoOneofs{} }
func (*TwoOneofs) ProtoMessage() {}
func (*TwoOneofs) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_1be15a5672864d55, []int{2}
+ return fileDescriptor_e4ee9759a7520144, []int{2}
}
func (m *TwoOneofs) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TwoOneofs.Unmarshal(m, b)
@@ -598,8 +597,8 @@ func (m *TwoOneofs) XXX_Unmarshal(b []byte) error {
func (m *TwoOneofs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_TwoOneofs.Marshal(b, m, deterministic)
}
-func (dst *TwoOneofs) XXX_Merge(src proto.Message) {
- xxx_messageInfo_TwoOneofs.Merge(dst, src)
+func (m *TwoOneofs) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_TwoOneofs.Merge(m, src)
}
func (m *TwoOneofs) XXX_Size() int {
return xxx_messageInfo_TwoOneofs.Size(m)
@@ -858,7 +857,7 @@ type CustomOneof struct {
func (m *CustomOneof) Reset() { *m = CustomOneof{} }
func (*CustomOneof) ProtoMessage() {}
func (*CustomOneof) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_1be15a5672864d55, []int{3}
+ return fileDescriptor_e4ee9759a7520144, []int{3}
}
func (m *CustomOneof) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomOneof.Unmarshal(m, b)
@@ -866,8 +865,8 @@ func (m *CustomOneof) XXX_Unmarshal(b []byte) error {
func (m *CustomOneof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomOneof.Marshal(b, m, deterministic)
}
-func (dst *CustomOneof) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomOneof.Merge(dst, src)
+func (m *CustomOneof) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomOneof.Merge(m, src)
}
func (m *CustomOneof) XXX_Size() int {
return xxx_messageInfo_CustomOneof.Size(m)
@@ -1041,6 +1040,51 @@ func init() {
proto.RegisterType((*TwoOneofs)(nil), "one.TwoOneofs")
proto.RegisterType((*CustomOneof)(nil), "one.CustomOneof")
}
+
+func init() { proto.RegisterFile("combos/neither/one.proto", fileDescriptor_e4ee9759a7520144) }
+
+var fileDescriptor_e4ee9759a7520144 = []byte{
+ // 598 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0xbf, 0x4f, 0x1b, 0x3f,
+ 0x14, 0x00, 0x70, 0x3f, 0x42, 0x42, 0x70, 0xc2, 0x97, 0x7c, 0x6f, 0x72, 0x19, 0x8c, 0x95, 0xb6,
+ 0x92, 0x87, 0x92, 0x90, 0x4b, 0xc2, 0x8f, 0xb1, 0x47, 0x55, 0x65, 0xa1, 0x48, 0x07, 0xcc, 0x28,
+ 0x47, 0x4d, 0x88, 0x44, 0xce, 0x08, 0xfb, 0x84, 0xb2, 0xf1, 0x37, 0xf4, 0xaf, 0xe8, 0xd8, 0xb1,
+ 0x7f, 0x02, 0x23, 0x63, 0xd5, 0x21, 0xe2, 0xae, 0x4b, 0x47, 0x46, 0xd4, 0xa9, 0xf2, 0x1d, 0xb1,
+ 0x2b, 0x55, 0x55, 0x97, 0x4e, 0xb9, 0xf7, 0x3e, 0xe7, 0x97, 0xf7, 0xce, 0x36, 0x26, 0xa7, 0x72,
+ 0x12, 0x49, 0xd5, 0x8e, 0xc5, 0x58, 0x9f, 0x8b, 0xab, 0xb6, 0x8c, 0x45, 0xeb, 0xf2, 0x4a, 0x6a,
+ 0xe9, 0x95, 0x64, 0x2c, 0xd6, 0x36, 0x46, 0x63, 0x7d, 0x9e, 0x44, 0xad, 0x53, 0x39, 0x69, 0x8f,
+ 0xe4, 0x48, 0xb6, 0x73, 0x8b, 0x92, 0xb3, 0x3c, 0xca, 0x83, 0xfc, 0xa9, 0x58, 0xd3, 0x7c, 0x86,
+ 0xcb, 0x87, 0x49, 0x14, 0x4d, 0xbd, 0x06, 0x2e, 0xa9, 0x24, 0x22, 0xc0, 0x80, 0x2f, 0x87, 0xe6,
+ 0xb1, 0x39, 0x2b, 0xe1, 0x95, 0xd7, 0x17, 0x17, 0x47, 0xd3, 0x4b, 0xa1, 0x0e, 0x62, 0x71, 0x70,
+ 0xe6, 0x11, 0x5c, 0x79, 0x3b, 0x16, 0x17, 0xef, 0x3b, 0xf9, 0x6b, 0x30, 0x40, 0xe1, 0x53, 0x6c,
+ 0xc5, 0x27, 0x0b, 0x0c, 0xf8, 0x82, 0x15, 0xdf, 0x4a, 0x97, 0x94, 0x18, 0xf0, 0xb2, 0x95, 0xae,
+ 0x95, 0x1e, 0x59, 0x64, 0xc0, 0x4b, 0x56, 0x7a, 0x56, 0xfa, 0xa4, 0xcc, 0x80, 0xaf, 0x58, 0xe9,
+ 0x5b, 0xd9, 0x22, 0x15, 0x06, 0x7c, 0xd1, 0xca, 0x96, 0x95, 0x6d, 0xb2, 0xc4, 0x80, 0xff, 0x6f,
+ 0x65, 0xdb, 0xca, 0x0e, 0xa9, 0x32, 0xe0, 0x9e, 0x95, 0x1d, 0x2b, 0xbb, 0x64, 0x99, 0x01, 0x5f,
+ 0xb2, 0xb2, 0xeb, 0xad, 0xe1, 0xa5, 0x62, 0xb2, 0x4d, 0x82, 0x19, 0xf0, 0xd5, 0x01, 0x0a, 0xe7,
+ 0x09, 0x67, 0x1d, 0x52, 0x63, 0xc0, 0x2b, 0xce, 0x3a, 0xce, 0x7c, 0x52, 0x67, 0xc0, 0x1b, 0xce,
+ 0x7c, 0x67, 0x5d, 0xb2, 0xc2, 0x80, 0x57, 0x9d, 0x75, 0x9d, 0xf5, 0xc8, 0x7f, 0x66, 0x07, 0x9c,
+ 0xf5, 0x9c, 0xf5, 0xc9, 0x2a, 0x03, 0x5e, 0x77, 0xd6, 0xf7, 0x36, 0x70, 0x4d, 0x25, 0xd1, 0xc9,
+ 0x44, 0x28, 0x35, 0x1c, 0x09, 0xd2, 0x60, 0xc0, 0x6b, 0x3e, 0x6e, 0x99, 0x33, 0x91, 0x6f, 0xeb,
+ 0x00, 0x85, 0x58, 0x25, 0xd1, 0x7e, 0xe1, 0x41, 0x1d, 0x63, 0x2d, 0x94, 0x3e, 0x91, 0xb1, 0x90,
+ 0x67, 0xcd, 0x3b, 0xc0, 0xcb, 0x47, 0xd7, 0xf2, 0xc0, 0x04, 0xea, 0x1f, 0x6f, 0xee, 0xbc, 0xe9,
+ 0x6e, 0x8f, 0x34, 0xf3, 0x81, 0x20, 0x9c, 0x27, 0x9c, 0xf5, 0xc9, 0xf3, 0x7c, 0x20, 0x6b, 0x7d,
+ 0xaf, 0x8d, 0xeb, 0xbf, 0x0c, 0xe4, 0x93, 0x17, 0xbf, 0x4d, 0x04, 0x61, 0xcd, 0x4d, 0xe4, 0x07,
+ 0x65, 0x6c, 0x8e, 0xbd, 0xf9, 0xd1, 0xd7, 0xb2, 0xf9, 0x61, 0x01, 0xd7, 0xf6, 0x12, 0xa5, 0xe5,
+ 0x24, 0x9f, 0xca, 0xfc, 0xd5, 0xa1, 0xbe, 0x1a, 0xc7, 0xa3, 0xe9, 0x53, 0x1b, 0x28, 0x9c, 0x27,
+ 0xbc, 0x10, 0xe3, 0xe2, 0x55, 0x73, 0xc2, 0x8b, 0x4e, 0x82, 0xcd, 0xaf, 0xb3, 0xf5, 0x57, 0x7f,
+ 0xbc, 0x41, 0xe6, 0xdb, 0xb5, 0x4f, 0xf3, 0x35, 0xad, 0xe3, 0x71, 0xac, 0x3b, 0xfe, 0x8e, 0xf9,
+ 0xc0, 0xae, 0x8a, 0x77, 0x8c, 0xab, 0x7b, 0x43, 0xa5, 0xf3, 0x8a, 0xa6, 0xf5, 0xc5, 0x60, 0xfb,
+ 0xc7, 0x6c, 0xbd, 0xfb, 0x97, 0x8a, 0x43, 0xa5, 0xf5, 0xf4, 0x52, 0xb4, 0xf6, 0xa7, 0xa6, 0xea,
+ 0x56, 0xcf, 0x2c, 0x1f, 0xa0, 0xd0, 0x96, 0xf2, 0xfc, 0x79, 0xab, 0xef, 0x86, 0x13, 0x41, 0x5e,
+ 0x9a, 0xeb, 0x12, 0x34, 0xb2, 0xd9, 0x7a, 0x7d, 0x7f, 0xea, 0xf2, 0xae, 0x15, 0x13, 0x05, 0x55,
+ 0x5c, 0x29, 0x5a, 0x0d, 0xde, 0xdc, 0xa6, 0x14, 0xdd, 0xa5, 0x14, 0x7d, 0x49, 0x29, 0xba, 0x4f,
+ 0x29, 0x3c, 0xa4, 0x14, 0x1e, 0x53, 0x0a, 0x37, 0x19, 0x85, 0x8f, 0x19, 0x85, 0x4f, 0x19, 0x85,
+ 0xcf, 0x19, 0x85, 0xdb, 0x8c, 0xa2, 0xbb, 0x8c, 0xa2, 0xfb, 0x8c, 0xc2, 0xf7, 0x8c, 0xa2, 0x87,
+ 0x8c, 0xc2, 0x63, 0x46, 0xd1, 0xcd, 0x37, 0x8a, 0x7e, 0x06, 0x00, 0x00, 0xff, 0xff, 0x0e, 0x27,
+ 0x4d, 0xb9, 0x78, 0x04, 0x00, 0x00,
+}
+
func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return OneDescription()
}
@@ -1056,274 +1100,276 @@ func (this *CustomOneof) Description() (desc *github_com_gogo_protobuf_protoc_ge
func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4265 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x24, 0xd7,
- 0x55, 0x56, 0xcf, 0x8f, 0x34, 0x73, 0x66, 0x34, 0x6a, 0x5d, 0xc9, 0xbb, 0xb3, 0x72, 0xac, 0xdd,
- 0x1d, 0xdb, 0xb1, 0x6c, 0xc7, 0x92, 0xad, 0x95, 0xf6, 0x67, 0x96, 0xc4, 0x8c, 0xa4, 0x59, 0xad,
- 0x8c, 0xa4, 0x51, 0x7a, 0xa4, 0xf8, 0x27, 0x45, 0x75, 0xb5, 0x7a, 0xae, 0x46, 0xbd, 0xdb, 0xd3,
- 0xdd, 0xe9, 0xee, 0xd9, 0xb5, 0xb6, 0x78, 0x58, 0xca, 0xfc, 0x54, 0x8a, 0xe2, 0x2f, 0x50, 0x45,
- 0x62, 0x1c, 0x43, 0x42, 0x11, 0x87, 0xf0, 0x97, 0x10, 0x08, 0x49, 0x78, 0xe1, 0x25, 0xe0, 0x27,
- 0xca, 0x79, 0xa3, 0x28, 0xca, 0xe5, 0x55, 0x5c, 0x45, 0x00, 0x43, 0x0c, 0xec, 0x83, 0x0b, 0xbf,
- 0x50, 0xf7, 0xaf, 0xbb, 0xe7, 0x47, 0xdb, 0xa3, 0x14, 0x76, 0x9e, 0x56, 0x7d, 0xce, 0xf9, 0xbe,
- 0x3e, 0xf7, 0xdc, 0x73, 0xcf, 0x3d, 0xf7, 0xf6, 0x2c, 0xfc, 0xe8, 0x12, 0x9c, 0x69, 0xda, 0x76,
- 0xd3, 0xc4, 0x73, 0x8e, 0x6b, 0xfb, 0xf6, 0x6e, 0x7b, 0x6f, 0xae, 0x81, 0x3d, 0xdd, 0x35, 0x1c,
- 0xdf, 0x76, 0x67, 0xa9, 0x0c, 0x8d, 0x31, 0x8b, 0x59, 0x61, 0x51, 0xda, 0x80, 0xf1, 0x2b, 0x86,
- 0x89, 0x57, 0x02, 0xc3, 0x3a, 0xf6, 0xd1, 0x45, 0x48, 0xed, 0x19, 0x26, 0x2e, 0x4a, 0x67, 0x92,
- 0x33, 0xb9, 0xf9, 0x87, 0x66, 0xbb, 0x40, 0xb3, 0x9d, 0x88, 0x2d, 0x22, 0x56, 0x28, 0xa2, 0xf4,
- 0x76, 0x0a, 0x26, 0xfa, 0x68, 0x11, 0x82, 0x94, 0xa5, 0xb5, 0x08, 0xa3, 0x34, 0x93, 0x55, 0xe8,
- 0xdf, 0xa8, 0x08, 0x23, 0x8e, 0xa6, 0x5f, 0xd7, 0x9a, 0xb8, 0x98, 0xa0, 0x62, 0xf1, 0x88, 0xa6,
- 0x01, 0x1a, 0xd8, 0xc1, 0x56, 0x03, 0x5b, 0xfa, 0x41, 0x31, 0x79, 0x26, 0x39, 0x93, 0x55, 0x22,
- 0x12, 0xf4, 0x38, 0x8c, 0x3b, 0xed, 0x5d, 0xd3, 0xd0, 0xd5, 0x88, 0x19, 0x9c, 0x49, 0xce, 0xa4,
- 0x15, 0x99, 0x29, 0x56, 0x42, 0xe3, 0x47, 0x60, 0xec, 0x26, 0xd6, 0xae, 0x47, 0x4d, 0x73, 0xd4,
- 0xb4, 0x40, 0xc4, 0x11, 0xc3, 0x65, 0xc8, 0xb7, 0xb0, 0xe7, 0x69, 0x4d, 0xac, 0xfa, 0x07, 0x0e,
- 0x2e, 0xa6, 0xe8, 0xe8, 0xcf, 0xf4, 0x8c, 0xbe, 0x7b, 0xe4, 0x39, 0x8e, 0xda, 0x3e, 0x70, 0x30,
- 0xaa, 0x40, 0x16, 0x5b, 0xed, 0x16, 0x63, 0x48, 0x1f, 0x11, 0xbf, 0xaa, 0xd5, 0x6e, 0x75, 0xb3,
- 0x64, 0x08, 0x8c, 0x53, 0x8c, 0x78, 0xd8, 0xbd, 0x61, 0xe8, 0xb8, 0x38, 0x4c, 0x09, 0x1e, 0xe9,
- 0x21, 0xa8, 0x33, 0x7d, 0x37, 0x87, 0xc0, 0xa1, 0x65, 0xc8, 0xe2, 0x17, 0x7d, 0x6c, 0x79, 0x86,
- 0x6d, 0x15, 0x47, 0x28, 0xc9, 0xc3, 0x7d, 0x66, 0x11, 0x9b, 0x8d, 0x6e, 0x8a, 0x10, 0x87, 0xce,
- 0xc3, 0x88, 0xed, 0xf8, 0x86, 0x6d, 0x79, 0xc5, 0xcc, 0x19, 0x69, 0x26, 0x37, 0xff, 0x91, 0xbe,
- 0x89, 0x50, 0x63, 0x36, 0x8a, 0x30, 0x46, 0x6b, 0x20, 0x7b, 0x76, 0xdb, 0xd5, 0xb1, 0xaa, 0xdb,
- 0x0d, 0xac, 0x1a, 0xd6, 0x9e, 0x5d, 0xcc, 0x52, 0x82, 0xd3, 0xbd, 0x03, 0xa1, 0x86, 0xcb, 0x76,
- 0x03, 0xaf, 0x59, 0x7b, 0xb6, 0x52, 0xf0, 0x3a, 0x9e, 0xd1, 0x09, 0x18, 0xf6, 0x0e, 0x2c, 0x5f,
- 0x7b, 0xb1, 0x98, 0xa7, 0x19, 0xc2, 0x9f, 0x4a, 0xdf, 0x19, 0x86, 0xb1, 0x41, 0x52, 0xec, 0x32,
- 0xa4, 0xf7, 0xc8, 0x28, 0x8b, 0x89, 0xe3, 0xc4, 0x80, 0x61, 0x3a, 0x83, 0x38, 0xfc, 0x63, 0x06,
- 0xb1, 0x02, 0x39, 0x0b, 0x7b, 0x3e, 0x6e, 0xb0, 0x8c, 0x48, 0x0e, 0x98, 0x53, 0xc0, 0x40, 0xbd,
- 0x29, 0x95, 0xfa, 0xb1, 0x52, 0xea, 0x39, 0x18, 0x0b, 0x5c, 0x52, 0x5d, 0xcd, 0x6a, 0x8a, 0xdc,
- 0x9c, 0x8b, 0xf3, 0x64, 0xb6, 0x2a, 0x70, 0x0a, 0x81, 0x29, 0x05, 0xdc, 0xf1, 0x8c, 0x56, 0x00,
- 0x6c, 0x0b, 0xdb, 0x7b, 0x6a, 0x03, 0xeb, 0x66, 0x31, 0x73, 0x44, 0x94, 0x6a, 0xc4, 0xa4, 0x27,
- 0x4a, 0x36, 0x93, 0xea, 0x26, 0xba, 0x14, 0xa6, 0xda, 0xc8, 0x11, 0x99, 0xb2, 0xc1, 0x16, 0x59,
- 0x4f, 0xb6, 0xed, 0x40, 0xc1, 0xc5, 0x24, 0xef, 0x71, 0x83, 0x8f, 0x2c, 0x4b, 0x9d, 0x98, 0x8d,
- 0x1d, 0x99, 0xc2, 0x61, 0x6c, 0x60, 0xa3, 0x6e, 0xf4, 0x11, 0x3d, 0x08, 0x81, 0x40, 0xa5, 0x69,
- 0x05, 0xb4, 0x0a, 0xe5, 0x85, 0x70, 0x53, 0x6b, 0xe1, 0xa9, 0x5b, 0x50, 0xe8, 0x0c, 0x0f, 0x9a,
- 0x84, 0xb4, 0xe7, 0x6b, 0xae, 0x4f, 0xb3, 0x30, 0xad, 0xb0, 0x07, 0x24, 0x43, 0x12, 0x5b, 0x0d,
- 0x5a, 0xe5, 0xd2, 0x0a, 0xf9, 0x13, 0xfd, 0x74, 0x38, 0xe0, 0x24, 0x1d, 0xf0, 0x47, 0x7b, 0x67,
- 0xb4, 0x83, 0xb9, 0x7b, 0xdc, 0x53, 0x17, 0x60, 0xb4, 0x63, 0x00, 0x83, 0xbe, 0xba, 0xf4, 0x73,
- 0x70, 0x5f, 0x5f, 0x6a, 0xf4, 0x1c, 0x4c, 0xb6, 0x2d, 0xc3, 0xf2, 0xb1, 0xeb, 0xb8, 0x98, 0x64,
- 0x2c, 0x7b, 0x55, 0xf1, 0x5f, 0x46, 0x8e, 0xc8, 0xb9, 0x9d, 0xa8, 0x35, 0x63, 0x51, 0x26, 0xda,
- 0xbd, 0xc2, 0xc7, 0xb2, 0x99, 0x1f, 0x8e, 0xc8, 0xb7, 0x6f, 0xdf, 0xbe, 0x9d, 0x28, 0x7d, 0x7e,
- 0x18, 0x26, 0xfb, 0xad, 0x99, 0xbe, 0xcb, 0xf7, 0x04, 0x0c, 0x5b, 0xed, 0xd6, 0x2e, 0x76, 0x69,
- 0x90, 0xd2, 0x0a, 0x7f, 0x42, 0x15, 0x48, 0x9b, 0xda, 0x2e, 0x36, 0x8b, 0xa9, 0x33, 0xd2, 0x4c,
- 0x61, 0xfe, 0xf1, 0x81, 0x56, 0xe5, 0xec, 0x3a, 0x81, 0x28, 0x0c, 0x89, 0x3e, 0x01, 0x29, 0x5e,
- 0xa2, 0x09, 0xc3, 0x63, 0x83, 0x31, 0x90, 0xb5, 0xa4, 0x50, 0x1c, 0xba, 0x1f, 0xb2, 0xe4, 0x5f,
- 0x96, 0x1b, 0xc3, 0xd4, 0xe7, 0x0c, 0x11, 0x90, 0xbc, 0x40, 0x53, 0x90, 0xa1, 0xcb, 0xa4, 0x81,
- 0xc5, 0xd6, 0x16, 0x3c, 0x93, 0xc4, 0x6a, 0xe0, 0x3d, 0xad, 0x6d, 0xfa, 0xea, 0x0d, 0xcd, 0x6c,
- 0x63, 0x9a, 0xf0, 0x59, 0x25, 0xcf, 0x85, 0x9f, 0x22, 0x32, 0x74, 0x1a, 0x72, 0x6c, 0x55, 0x19,
- 0x56, 0x03, 0xbf, 0x48, 0xab, 0x67, 0x5a, 0x61, 0x0b, 0x6d, 0x8d, 0x48, 0xc8, 0xeb, 0xaf, 0x79,
- 0xb6, 0x25, 0x52, 0x93, 0xbe, 0x82, 0x08, 0xe8, 0xeb, 0x2f, 0x74, 0x17, 0xee, 0x07, 0xfa, 0x0f,
- 0xaf, 0x3b, 0xa7, 0x4a, 0xdf, 0x4a, 0x40, 0x8a, 0xd6, 0x8b, 0x31, 0xc8, 0x6d, 0x3f, 0xbf, 0x55,
- 0x55, 0x57, 0x6a, 0x3b, 0x4b, 0xeb, 0x55, 0x59, 0x42, 0x05, 0x00, 0x2a, 0xb8, 0xb2, 0x5e, 0xab,
- 0x6c, 0xcb, 0x89, 0xe0, 0x79, 0x6d, 0x73, 0xfb, 0xfc, 0x82, 0x9c, 0x0c, 0x00, 0x3b, 0x4c, 0x90,
- 0x8a, 0x1a, 0x9c, 0x9b, 0x97, 0xd3, 0x48, 0x86, 0x3c, 0x23, 0x58, 0x7b, 0xae, 0xba, 0x72, 0x7e,
- 0x41, 0x1e, 0xee, 0x94, 0x9c, 0x9b, 0x97, 0x47, 0xd0, 0x28, 0x64, 0xa9, 0x64, 0xa9, 0x56, 0x5b,
- 0x97, 0x33, 0x01, 0x67, 0x7d, 0x5b, 0x59, 0xdb, 0x5c, 0x95, 0xb3, 0x01, 0xe7, 0xaa, 0x52, 0xdb,
- 0xd9, 0x92, 0x21, 0x60, 0xd8, 0xa8, 0xd6, 0xeb, 0x95, 0xd5, 0xaa, 0x9c, 0x0b, 0x2c, 0x96, 0x9e,
- 0xdf, 0xae, 0xd6, 0xe5, 0x7c, 0x87, 0x5b, 0xe7, 0xe6, 0xe5, 0xd1, 0xe0, 0x15, 0xd5, 0xcd, 0x9d,
- 0x0d, 0xb9, 0x80, 0xc6, 0x61, 0x94, 0xbd, 0x42, 0x38, 0x31, 0xd6, 0x25, 0x3a, 0xbf, 0x20, 0xcb,
- 0xa1, 0x23, 0x8c, 0x65, 0xbc, 0x43, 0x70, 0x7e, 0x41, 0x46, 0xa5, 0x65, 0x48, 0xd3, 0xec, 0x42,
- 0x08, 0x0a, 0xeb, 0x95, 0xa5, 0xea, 0xba, 0x5a, 0xdb, 0xda, 0x5e, 0xab, 0x6d, 0x56, 0xd6, 0x65,
- 0x29, 0x94, 0x29, 0xd5, 0x4f, 0xee, 0xac, 0x29, 0xd5, 0x15, 0x39, 0x11, 0x95, 0x6d, 0x55, 0x2b,
- 0xdb, 0xd5, 0x15, 0x39, 0x59, 0xd2, 0x61, 0xb2, 0x5f, 0x9d, 0xec, 0xbb, 0x32, 0x22, 0x53, 0x9c,
- 0x38, 0x62, 0x8a, 0x29, 0x57, 0xcf, 0x14, 0xff, 0x20, 0x01, 0x13, 0x7d, 0xf6, 0x8a, 0xbe, 0x2f,
- 0x79, 0x1a, 0xd2, 0x2c, 0x45, 0xd9, 0xee, 0xf9, 0x68, 0xdf, 0x4d, 0x87, 0x26, 0x6c, 0xcf, 0x0e,
- 0x4a, 0x71, 0xd1, 0x0e, 0x22, 0x79, 0x44, 0x07, 0x41, 0x28, 0x7a, 0x6a, 0xfa, 0xcf, 0xf6, 0xd4,
- 0x74, 0xb6, 0xed, 0x9d, 0x1f, 0x64, 0xdb, 0xa3, 0xb2, 0xe3, 0xd5, 0xf6, 0x74, 0x9f, 0xda, 0x7e,
- 0x19, 0xc6, 0x7b, 0x88, 0x06, 0xae, 0xb1, 0x2f, 0x49, 0x50, 0x3c, 0x2a, 0x38, 0x31, 0x95, 0x2e,
- 0xd1, 0x51, 0xe9, 0x2e, 0x77, 0x47, 0xf0, 0xec, 0xd1, 0x93, 0xd0, 0x33, 0xd7, 0xaf, 0x49, 0x70,
- 0xa2, 0x7f, 0xa7, 0xd8, 0xd7, 0x87, 0x4f, 0xc0, 0x70, 0x0b, 0xfb, 0xfb, 0xb6, 0xe8, 0x96, 0x3e,
- 0xda, 0x67, 0x0f, 0x26, 0xea, 0xee, 0xc9, 0xe6, 0xa8, 0xe8, 0x26, 0x9e, 0x3c, 0xaa, 0xdd, 0x63,
- 0xde, 0xf4, 0x78, 0xfa, 0xd9, 0x04, 0xdc, 0xd7, 0x97, 0xbc, 0xaf, 0xa3, 0x0f, 0x00, 0x18, 0x96,
- 0xd3, 0xf6, 0x59, 0x47, 0xc4, 0x0a, 0x6c, 0x96, 0x4a, 0x68, 0xf1, 0x22, 0xc5, 0xb3, 0xed, 0x07,
- 0xfa, 0x24, 0xd5, 0x03, 0x13, 0x51, 0x83, 0x8b, 0xa1, 0xa3, 0x29, 0xea, 0xe8, 0xf4, 0x11, 0x23,
- 0xed, 0x49, 0xcc, 0x27, 0x41, 0xd6, 0x4d, 0x03, 0x5b, 0xbe, 0xea, 0xf9, 0x2e, 0xd6, 0x5a, 0x86,
- 0xd5, 0xa4, 0x3b, 0x48, 0xa6, 0x9c, 0xde, 0xd3, 0x4c, 0x0f, 0x2b, 0x63, 0x4c, 0x5d, 0x17, 0x5a,
- 0x82, 0xa0, 0x09, 0xe4, 0x46, 0x10, 0xc3, 0x1d, 0x08, 0xa6, 0x0e, 0x10, 0xa5, 0x6f, 0x66, 0x20,
- 0x17, 0xe9, 0xab, 0xd1, 0x59, 0xc8, 0x5f, 0xd3, 0x6e, 0x68, 0xaa, 0x38, 0x2b, 0xb1, 0x48, 0xe4,
- 0x88, 0x6c, 0x8b, 0x9f, 0x97, 0x9e, 0x84, 0x49, 0x6a, 0x62, 0xb7, 0x7d, 0xec, 0xaa, 0xba, 0xa9,
- 0x79, 0x1e, 0x0d, 0x5a, 0x86, 0x9a, 0x22, 0xa2, 0xab, 0x11, 0xd5, 0xb2, 0xd0, 0xa0, 0x45, 0x98,
- 0xa0, 0x88, 0x56, 0xdb, 0xf4, 0x0d, 0xc7, 0xc4, 0x2a, 0x39, 0xbd, 0x79, 0x74, 0x27, 0x09, 0x3c,
- 0x1b, 0x27, 0x16, 0x1b, 0xdc, 0x80, 0x78, 0xe4, 0xa1, 0x15, 0x78, 0x80, 0xc2, 0x9a, 0xd8, 0xc2,
- 0xae, 0xe6, 0x63, 0x15, 0x7f, 0xa6, 0xad, 0x99, 0x9e, 0xaa, 0x59, 0x0d, 0x75, 0x5f, 0xf3, 0xf6,
- 0x8b, 0x93, 0x84, 0x60, 0x29, 0x51, 0x94, 0x94, 0x53, 0xc4, 0x70, 0x95, 0xdb, 0x55, 0xa9, 0x59,
- 0xc5, 0x6a, 0x5c, 0xd5, 0xbc, 0x7d, 0x54, 0x86, 0x13, 0x94, 0xc5, 0xf3, 0x5d, 0xc3, 0x6a, 0xaa,
- 0xfa, 0x3e, 0xd6, 0xaf, 0xab, 0x6d, 0x7f, 0xef, 0x62, 0xf1, 0xfe, 0xe8, 0xfb, 0xa9, 0x87, 0x75,
- 0x6a, 0xb3, 0x4c, 0x4c, 0x76, 0xfc, 0xbd, 0x8b, 0xa8, 0x0e, 0x79, 0x32, 0x19, 0x2d, 0xe3, 0x16,
- 0x56, 0xf7, 0x6c, 0x97, 0x6e, 0x8d, 0x85, 0x3e, 0xa5, 0x29, 0x12, 0xc1, 0xd9, 0x1a, 0x07, 0x6c,
- 0xd8, 0x0d, 0x5c, 0x4e, 0xd7, 0xb7, 0xaa, 0xd5, 0x15, 0x25, 0x27, 0x58, 0xae, 0xd8, 0x2e, 0x49,
- 0xa8, 0xa6, 0x1d, 0x04, 0x38, 0xc7, 0x12, 0xaa, 0x69, 0x8b, 0xf0, 0x2e, 0xc2, 0x84, 0xae, 0xb3,
- 0x31, 0x1b, 0xba, 0xca, 0xcf, 0x58, 0x5e, 0x51, 0xee, 0x08, 0x96, 0xae, 0xaf, 0x32, 0x03, 0x9e,
- 0xe3, 0x1e, 0xba, 0x04, 0xf7, 0x85, 0xc1, 0x8a, 0x02, 0xc7, 0x7b, 0x46, 0xd9, 0x0d, 0x5d, 0x84,
- 0x09, 0xe7, 0xa0, 0x17, 0x88, 0x3a, 0xde, 0xe8, 0x1c, 0x74, 0xc3, 0x2e, 0xc0, 0xa4, 0xb3, 0xef,
- 0xf4, 0xe2, 0x1e, 0x8b, 0xe2, 0x90, 0xb3, 0xef, 0x74, 0x03, 0x1f, 0xa6, 0x07, 0x6e, 0x17, 0xeb,
- 0x9a, 0x8f, 0x1b, 0xc5, 0x93, 0x51, 0xf3, 0x88, 0x02, 0xcd, 0x81, 0xac, 0xeb, 0x2a, 0xb6, 0xb4,
- 0x5d, 0x13, 0xab, 0x9a, 0x8b, 0x2d, 0xcd, 0x2b, 0x9e, 0x8e, 0x1a, 0x17, 0x74, 0xbd, 0x4a, 0xb5,
- 0x15, 0xaa, 0x44, 0x8f, 0xc1, 0xb8, 0xbd, 0x7b, 0x4d, 0x67, 0x29, 0xa9, 0x3a, 0x2e, 0xde, 0x33,
- 0x5e, 0x2c, 0x3e, 0x44, 0xe3, 0x3b, 0x46, 0x14, 0x34, 0x21, 0xb7, 0xa8, 0x18, 0x3d, 0x0a, 0xb2,
- 0xee, 0xed, 0x6b, 0xae, 0x43, 0x6b, 0xb2, 0xe7, 0x68, 0x3a, 0x2e, 0x3e, 0xcc, 0x4c, 0x99, 0x7c,
- 0x53, 0x88, 0xc9, 0x92, 0xf0, 0x6e, 0x1a, 0x7b, 0xbe, 0x60, 0x7c, 0x84, 0x2d, 0x09, 0x2a, 0xe3,
- 0x6c, 0x33, 0x20, 0x93, 0x50, 0x74, 0xbc, 0x78, 0x86, 0x9a, 0x15, 0x9c, 0x7d, 0x27, 0xfa, 0xde,
- 0x07, 0x61, 0x94, 0x58, 0x86, 0x2f, 0x7d, 0x94, 0x35, 0x64, 0xce, 0x7e, 0xe4, 0x8d, 0x1f, 0x58,
- 0x6f, 0x5c, 0x2a, 0x43, 0x3e, 0x9a, 0x9f, 0x28, 0x0b, 0x2c, 0x43, 0x65, 0x89, 0x34, 0x2b, 0xcb,
- 0xb5, 0x15, 0xd2, 0x66, 0xbc, 0x50, 0x95, 0x13, 0xa4, 0xdd, 0x59, 0x5f, 0xdb, 0xae, 0xaa, 0xca,
- 0xce, 0xe6, 0xf6, 0xda, 0x46, 0x55, 0x4e, 0x46, 0xfb, 0xea, 0xef, 0x25, 0xa0, 0xd0, 0x79, 0x44,
- 0x42, 0x3f, 0x05, 0x27, 0xc5, 0x7d, 0x86, 0x87, 0x7d, 0xf5, 0xa6, 0xe1, 0xd2, 0x25, 0xd3, 0xd2,
- 0xd8, 0xf6, 0x15, 0x4c, 0xda, 0x24, 0xb7, 0xaa, 0x63, 0xff, 0x59, 0xc3, 0x25, 0x0b, 0xa2, 0xa5,
- 0xf9, 0x68, 0x1d, 0x4e, 0x5b, 0xb6, 0xea, 0xf9, 0x9a, 0xd5, 0xd0, 0xdc, 0x86, 0x1a, 0xde, 0x24,
- 0xa9, 0x9a, 0xae, 0x63, 0xcf, 0xb3, 0xd9, 0x56, 0x15, 0xb0, 0x7c, 0xc4, 0xb2, 0xeb, 0xdc, 0x38,
- 0xac, 0xe1, 0x15, 0x6e, 0xda, 0x95, 0x60, 0xc9, 0xa3, 0x12, 0xec, 0x7e, 0xc8, 0xb6, 0x34, 0x47,
- 0xc5, 0x96, 0xef, 0x1e, 0xd0, 0xc6, 0x38, 0xa3, 0x64, 0x5a, 0x9a, 0x53, 0x25, 0xcf, 0x1f, 0xce,
- 0xf9, 0xe4, 0x9f, 0x93, 0x90, 0x8f, 0x36, 0xc7, 0xe4, 0xac, 0xa1, 0xd3, 0x7d, 0x44, 0xa2, 0x95,
- 0xe6, 0xc1, 0x7b, 0xb6, 0xd2, 0xb3, 0xcb, 0x64, 0x83, 0x29, 0x0f, 0xb3, 0x96, 0x55, 0x61, 0x48,
- 0xb2, 0xb9, 0x93, 0xda, 0x82, 0x59, 0x8b, 0x90, 0x51, 0xf8, 0x13, 0x5a, 0x85, 0xe1, 0x6b, 0x1e,
- 0xe5, 0x1e, 0xa6, 0xdc, 0x0f, 0xdd, 0x9b, 0xfb, 0x99, 0x3a, 0x25, 0xcf, 0x3e, 0x53, 0x57, 0x37,
- 0x6b, 0xca, 0x46, 0x65, 0x5d, 0xe1, 0x70, 0x74, 0x0a, 0x52, 0xa6, 0x76, 0xeb, 0xa0, 0x73, 0x2b,
- 0xa2, 0xa2, 0x41, 0x03, 0x7f, 0x0a, 0x52, 0x37, 0xb1, 0x76, 0xbd, 0x73, 0x03, 0xa0, 0xa2, 0x0f,
- 0x30, 0xf5, 0xe7, 0x20, 0x4d, 0xe3, 0x85, 0x00, 0x78, 0xc4, 0xe4, 0x21, 0x94, 0x81, 0xd4, 0x72,
- 0x4d, 0x21, 0xe9, 0x2f, 0x43, 0x9e, 0x49, 0xd5, 0xad, 0xb5, 0xea, 0x72, 0x55, 0x4e, 0x94, 0x16,
- 0x61, 0x98, 0x05, 0x81, 0x2c, 0x8d, 0x20, 0x0c, 0xf2, 0x10, 0x7f, 0xe4, 0x1c, 0x92, 0xd0, 0xee,
- 0x6c, 0x2c, 0x55, 0x15, 0x39, 0x11, 0x9d, 0x5e, 0x0f, 0xf2, 0xd1, 0xbe, 0xf8, 0xc3, 0xc9, 0xa9,
- 0xef, 0x4a, 0x90, 0x8b, 0xf4, 0xb9, 0xa4, 0x41, 0xd1, 0x4c, 0xd3, 0xbe, 0xa9, 0x6a, 0xa6, 0xa1,
- 0x79, 0x3c, 0x29, 0x80, 0x8a, 0x2a, 0x44, 0x32, 0xe8, 0xa4, 0x7d, 0x28, 0xce, 0xbf, 0x2a, 0x81,
- 0xdc, 0xdd, 0x62, 0x76, 0x39, 0x28, 0xfd, 0x44, 0x1d, 0x7c, 0x45, 0x82, 0x42, 0x67, 0x5f, 0xd9,
- 0xe5, 0xde, 0xd9, 0x9f, 0xa8, 0x7b, 0x6f, 0x25, 0x60, 0xb4, 0xa3, 0x9b, 0x1c, 0xd4, 0xbb, 0xcf,
- 0xc0, 0xb8, 0xd1, 0xc0, 0x2d, 0xc7, 0xf6, 0xb1, 0xa5, 0x1f, 0xa8, 0x26, 0xbe, 0x81, 0xcd, 0x62,
- 0x89, 0x16, 0x8a, 0xb9, 0x7b, 0xf7, 0xab, 0xb3, 0x6b, 0x21, 0x6e, 0x9d, 0xc0, 0xca, 0x13, 0x6b,
- 0x2b, 0xd5, 0x8d, 0xad, 0xda, 0x76, 0x75, 0x73, 0xf9, 0x79, 0x75, 0x67, 0xf3, 0x67, 0x36, 0x6b,
- 0xcf, 0x6e, 0x2a, 0xb2, 0xd1, 0x65, 0xf6, 0x01, 0x2e, 0xf5, 0x2d, 0x90, 0xbb, 0x9d, 0x42, 0x27,
- 0xa1, 0x9f, 0x5b, 0xf2, 0x10, 0x9a, 0x80, 0xb1, 0xcd, 0x9a, 0x5a, 0x5f, 0x5b, 0xa9, 0xaa, 0xd5,
- 0x2b, 0x57, 0xaa, 0xcb, 0xdb, 0x75, 0x76, 0x03, 0x11, 0x58, 0x6f, 0x77, 0x2e, 0xea, 0x97, 0x93,
- 0x30, 0xd1, 0xc7, 0x13, 0x54, 0xe1, 0x67, 0x07, 0x76, 0x9c, 0x79, 0x62, 0x10, 0xef, 0x67, 0xc9,
- 0x96, 0xbf, 0xa5, 0xb9, 0x3e, 0x3f, 0x6a, 0x3c, 0x0a, 0x24, 0x4a, 0x96, 0x6f, 0xec, 0x19, 0xd8,
- 0xe5, 0x17, 0x36, 0xec, 0x40, 0x31, 0x16, 0xca, 0xd9, 0x9d, 0xcd, 0xc7, 0x00, 0x39, 0xb6, 0x67,
- 0xf8, 0xc6, 0x0d, 0xac, 0x1a, 0x96, 0xb8, 0xdd, 0x21, 0x07, 0x8c, 0x94, 0x22, 0x0b, 0xcd, 0x9a,
- 0xe5, 0x07, 0xd6, 0x16, 0x6e, 0x6a, 0x5d, 0xd6, 0xa4, 0x80, 0x27, 0x15, 0x59, 0x68, 0x02, 0xeb,
- 0xb3, 0x90, 0x6f, 0xd8, 0x6d, 0xd2, 0x75, 0x31, 0x3b, 0xb2, 0x5f, 0x48, 0x4a, 0x8e, 0xc9, 0x02,
- 0x13, 0xde, 0x4f, 0x87, 0xd7, 0x4a, 0x79, 0x25, 0xc7, 0x64, 0xcc, 0xe4, 0x11, 0x18, 0xd3, 0x9a,
- 0x4d, 0x97, 0x90, 0x0b, 0x22, 0x76, 0x42, 0x28, 0x04, 0x62, 0x6a, 0x38, 0xf5, 0x0c, 0x64, 0x44,
- 0x1c, 0xc8, 0x96, 0x4c, 0x22, 0xa1, 0x3a, 0xec, 0xd8, 0x9b, 0x98, 0xc9, 0x2a, 0x19, 0x4b, 0x28,
- 0xcf, 0x42, 0xde, 0xf0, 0xd4, 0xf0, 0x96, 0x3c, 0x71, 0x26, 0x31, 0x93, 0x51, 0x72, 0x86, 0x17,
- 0xdc, 0x30, 0x96, 0x5e, 0x4b, 0x40, 0xa1, 0xf3, 0x96, 0x1f, 0xad, 0x40, 0xc6, 0xb4, 0x75, 0x8d,
- 0xa6, 0x16, 0xfb, 0xc4, 0x34, 0x13, 0xf3, 0x61, 0x60, 0x76, 0x9d, 0xdb, 0x2b, 0x01, 0x72, 0xea,
- 0x1f, 0x24, 0xc8, 0x08, 0x31, 0x3a, 0x01, 0x29, 0x47, 0xf3, 0xf7, 0x29, 0x5d, 0x7a, 0x29, 0x21,
- 0x4b, 0x0a, 0x7d, 0x26, 0x72, 0xcf, 0xd1, 0x2c, 0x9a, 0x02, 0x5c, 0x4e, 0x9e, 0xc9, 0xbc, 0x9a,
- 0x58, 0x6b, 0xd0, 0xe3, 0x87, 0xdd, 0x6a, 0x61, 0xcb, 0xf7, 0xc4, 0xbc, 0x72, 0xf9, 0x32, 0x17,
- 0xa3, 0xc7, 0x61, 0xdc, 0x77, 0x35, 0xc3, 0xec, 0xb0, 0x4d, 0x51, 0x5b, 0x59, 0x28, 0x02, 0xe3,
- 0x32, 0x9c, 0x12, 0xbc, 0x0d, 0xec, 0x6b, 0xfa, 0x3e, 0x6e, 0x84, 0xa0, 0x61, 0x7a, 0xcd, 0x70,
- 0x92, 0x1b, 0xac, 0x70, 0xbd, 0xc0, 0x96, 0xbe, 0x2f, 0xc1, 0xb8, 0x38, 0x30, 0x35, 0x82, 0x60,
- 0x6d, 0x00, 0x68, 0x96, 0x65, 0xfb, 0xd1, 0x70, 0xf5, 0xa6, 0x72, 0x0f, 0x6e, 0xb6, 0x12, 0x80,
- 0x94, 0x08, 0xc1, 0x54, 0x0b, 0x20, 0xd4, 0x1c, 0x19, 0xb6, 0xd3, 0x90, 0xe3, 0x9f, 0x70, 0xe8,
- 0x77, 0x40, 0x76, 0xc4, 0x06, 0x26, 0x22, 0x27, 0x2b, 0x34, 0x09, 0xe9, 0x5d, 0xdc, 0x34, 0x2c,
- 0x7e, 0x31, 0xcb, 0x1e, 0xc4, 0x45, 0x48, 0x2a, 0xb8, 0x08, 0x59, 0xfa, 0x34, 0x4c, 0xe8, 0x76,
- 0xab, 0xdb, 0xdd, 0x25, 0xb9, 0xeb, 0x98, 0xef, 0x5d, 0x95, 0x5e, 0x80, 0xb0, 0xc5, 0x7c, 0x4f,
- 0x92, 0xbe, 0x9c, 0x48, 0xae, 0x6e, 0x2d, 0x7d, 0x2d, 0x31, 0xb5, 0xca, 0xa0, 0x5b, 0x62, 0xa4,
- 0x0a, 0xde, 0x33, 0xb1, 0x4e, 0xbc, 0x87, 0xaf, 0x3c, 0x0e, 0x4f, 0x34, 0x0d, 0x7f, 0xbf, 0xbd,
- 0x3b, 0xab, 0xdb, 0xad, 0xb9, 0xa6, 0xdd, 0xb4, 0xc3, 0x4f, 0x9f, 0xe4, 0x89, 0x3e, 0xd0, 0xbf,
- 0xf8, 0xe7, 0xcf, 0x6c, 0x20, 0x9d, 0x8a, 0xfd, 0x56, 0x5a, 0xde, 0x84, 0x09, 0x6e, 0xac, 0xd2,
- 0xef, 0x2f, 0xec, 0x14, 0x81, 0xee, 0x79, 0x87, 0x55, 0xfc, 0xc6, 0xdb, 0x74, 0xbb, 0x56, 0xc6,
- 0x39, 0x94, 0xe8, 0xd8, 0x41, 0xa3, 0xac, 0xc0, 0x7d, 0x1d, 0x7c, 0x6c, 0x69, 0x62, 0x37, 0x86,
- 0xf1, 0x7b, 0x9c, 0x71, 0x22, 0xc2, 0x58, 0xe7, 0xd0, 0xf2, 0x32, 0x8c, 0x1e, 0x87, 0xeb, 0xef,
- 0x38, 0x57, 0x1e, 0x47, 0x49, 0x56, 0x61, 0x8c, 0x92, 0xe8, 0x6d, 0xcf, 0xb7, 0x5b, 0xb4, 0xee,
- 0xdd, 0x9b, 0xe6, 0xef, 0xdf, 0x66, 0x6b, 0xa5, 0x40, 0x60, 0xcb, 0x01, 0xaa, 0x5c, 0x06, 0xfa,
- 0xc9, 0xa9, 0x81, 0x75, 0x33, 0x86, 0xe1, 0x75, 0xee, 0x48, 0x60, 0x5f, 0xfe, 0x14, 0x4c, 0x92,
- 0xbf, 0x69, 0x59, 0x8a, 0x7a, 0x12, 0x7f, 0xe1, 0x55, 0xfc, 0xfe, 0x4b, 0x6c, 0x39, 0x4e, 0x04,
- 0x04, 0x11, 0x9f, 0x22, 0xb3, 0xd8, 0xc4, 0xbe, 0x8f, 0x5d, 0x4f, 0xd5, 0xcc, 0x7e, 0xee, 0x45,
- 0x6e, 0x0c, 0x8a, 0x5f, 0x78, 0xa7, 0x73, 0x16, 0x57, 0x19, 0xb2, 0x62, 0x9a, 0xe5, 0x1d, 0x38,
- 0xd9, 0x27, 0x2b, 0x06, 0xe0, 0x7c, 0x99, 0x73, 0x4e, 0xf6, 0x64, 0x06, 0xa1, 0xdd, 0x02, 0x21,
- 0x0f, 0xe6, 0x72, 0x00, 0xce, 0xdf, 0xe5, 0x9c, 0x88, 0x63, 0xc5, 0x94, 0x12, 0xc6, 0x67, 0x60,
- 0xfc, 0x06, 0x76, 0x77, 0x6d, 0x8f, 0xdf, 0xd2, 0x0c, 0x40, 0xf7, 0x0a, 0xa7, 0x1b, 0xe3, 0x40,
- 0x7a, 0x6d, 0x43, 0xb8, 0x2e, 0x41, 0x66, 0x4f, 0xd3, 0xf1, 0x00, 0x14, 0x5f, 0xe4, 0x14, 0x23,
- 0xc4, 0x9e, 0x40, 0x2b, 0x90, 0x6f, 0xda, 0x7c, 0x67, 0x8a, 0x87, 0xbf, 0xca, 0xe1, 0x39, 0x81,
- 0xe1, 0x14, 0x8e, 0xed, 0xb4, 0x4d, 0xb2, 0x6d, 0xc5, 0x53, 0xfc, 0x9e, 0xa0, 0x10, 0x18, 0x4e,
- 0x71, 0x8c, 0xb0, 0xfe, 0xbe, 0xa0, 0xf0, 0x22, 0xf1, 0x7c, 0x1a, 0x72, 0xb6, 0x65, 0x1e, 0xd8,
- 0xd6, 0x20, 0x4e, 0x7c, 0x89, 0x33, 0x00, 0x87, 0x10, 0x82, 0xcb, 0x90, 0x1d, 0x74, 0x22, 0xfe,
- 0xf0, 0x1d, 0xb1, 0x3c, 0xc4, 0x0c, 0xac, 0xc2, 0x98, 0x28, 0x50, 0x86, 0x6d, 0x0d, 0x40, 0xf1,
- 0x15, 0x4e, 0x51, 0x88, 0xc0, 0xf8, 0x30, 0x7c, 0xec, 0xf9, 0x4d, 0x3c, 0x08, 0xc9, 0x6b, 0x62,
- 0x18, 0x1c, 0xc2, 0x43, 0xb9, 0x8b, 0x2d, 0x7d, 0x7f, 0x30, 0x86, 0xaf, 0x8a, 0x50, 0x0a, 0x0c,
- 0xa1, 0x58, 0x86, 0xd1, 0x96, 0xe6, 0x7a, 0xfb, 0x9a, 0x39, 0xd0, 0x74, 0xfc, 0x11, 0xe7, 0xc8,
- 0x07, 0x20, 0x1e, 0x91, 0xb6, 0x75, 0x1c, 0x9a, 0xaf, 0x89, 0x88, 0x44, 0x60, 0x7c, 0xe9, 0x79,
- 0x3e, 0xbd, 0xd2, 0x3a, 0x0e, 0xdb, 0x1f, 0x8b, 0xa5, 0xc7, 0xb0, 0x1b, 0x51, 0xc6, 0xcb, 0x90,
- 0xf5, 0x8c, 0x5b, 0x03, 0xd1, 0xfc, 0x89, 0x98, 0x69, 0x0a, 0x20, 0xe0, 0xe7, 0xe1, 0x54, 0xdf,
- 0x6d, 0x62, 0x00, 0xb2, 0x3f, 0xe5, 0x64, 0x27, 0xfa, 0x6c, 0x15, 0xbc, 0x24, 0x1c, 0x97, 0xf2,
- 0xcf, 0x44, 0x49, 0xc0, 0x5d, 0x5c, 0x5b, 0xe4, 0xac, 0xe0, 0x69, 0x7b, 0xc7, 0x8b, 0xda, 0x9f,
- 0x8b, 0xa8, 0x31, 0x6c, 0x47, 0xd4, 0xb6, 0xe1, 0x04, 0x67, 0x3c, 0xde, 0xbc, 0x7e, 0x5d, 0x14,
- 0x56, 0x86, 0xde, 0xe9, 0x9c, 0xdd, 0x4f, 0xc3, 0x54, 0x10, 0x4e, 0xd1, 0x94, 0x7a, 0x6a, 0x4b,
- 0x73, 0x06, 0x60, 0xfe, 0x06, 0x67, 0x16, 0x15, 0x3f, 0xe8, 0x6a, 0xbd, 0x0d, 0xcd, 0x21, 0xe4,
- 0xcf, 0x41, 0x51, 0x90, 0xb7, 0x2d, 0x17, 0xeb, 0x76, 0xd3, 0x32, 0x6e, 0xe1, 0xc6, 0x00, 0xd4,
- 0x7f, 0xd1, 0x35, 0x55, 0x3b, 0x11, 0x38, 0x61, 0x5e, 0x03, 0x39, 0xe8, 0x55, 0x54, 0xa3, 0xe5,
- 0xd8, 0xae, 0x1f, 0xc3, 0xf8, 0x4d, 0x31, 0x53, 0x01, 0x6e, 0x8d, 0xc2, 0xca, 0x55, 0x28, 0xd0,
- 0xc7, 0x41, 0x53, 0xf2, 0x2f, 0x39, 0xd1, 0x68, 0x88, 0xe2, 0x85, 0x43, 0xb7, 0x5b, 0x8e, 0xe6,
- 0x0e, 0x52, 0xff, 0xfe, 0x4a, 0x14, 0x0e, 0x0e, 0xe1, 0x85, 0xc3, 0x3f, 0x70, 0x30, 0xd9, 0xed,
- 0x07, 0x60, 0xf8, 0x96, 0x28, 0x1c, 0x02, 0xc3, 0x29, 0x44, 0xc3, 0x30, 0x00, 0xc5, 0x5f, 0x0b,
- 0x0a, 0x81, 0x21, 0x14, 0x9f, 0x0c, 0x37, 0x5a, 0x17, 0x37, 0x0d, 0xcf, 0x77, 0x59, 0x2b, 0x7c,
- 0x6f, 0xaa, 0x6f, 0xbf, 0xd3, 0xd9, 0x84, 0x29, 0x11, 0x28, 0xa9, 0x44, 0xfc, 0x0a, 0x95, 0x9e,
- 0x94, 0xe2, 0x1d, 0xfb, 0x8e, 0xa8, 0x44, 0x11, 0x18, 0xf1, 0x2d, 0xd2, 0x21, 0x92, 0xb0, 0xeb,
- 0xe4, 0x7c, 0x30, 0x00, 0xdd, 0x77, 0xbb, 0x9c, 0xab, 0x0b, 0x2c, 0xe1, 0x8c, 0xf4, 0x3f, 0x6d,
- 0xeb, 0x3a, 0x3e, 0x18, 0x28, 0x3b, 0xff, 0xa6, 0xab, 0xff, 0xd9, 0x61, 0x48, 0x56, 0x43, 0xc6,
- 0xba, 0xfa, 0x29, 0x14, 0xf7, 0x63, 0x9d, 0xe2, 0xcf, 0xdf, 0xe5, 0xe3, 0xed, 0x6c, 0xa7, 0xca,
- 0xeb, 0x24, 0xc9, 0x3b, 0x9b, 0x9e, 0x78, 0xb2, 0x97, 0xee, 0x06, 0x79, 0xde, 0xd1, 0xf3, 0x94,
- 0xaf, 0xc0, 0x68, 0x47, 0xc3, 0x13, 0x4f, 0xf5, 0x0b, 0x9c, 0x2a, 0x1f, 0xed, 0x77, 0xca, 0x8b,
- 0x90, 0x22, 0xcd, 0x4b, 0x3c, 0xfc, 0x17, 0x39, 0x9c, 0x9a, 0x97, 0x3f, 0x0e, 0x19, 0xd1, 0xb4,
- 0xc4, 0x43, 0x7f, 0x89, 0x43, 0x03, 0x08, 0x81, 0x8b, 0x86, 0x25, 0x1e, 0xfe, 0xcb, 0x02, 0x2e,
- 0x20, 0x04, 0x3e, 0x78, 0x08, 0xff, 0xf6, 0x57, 0x52, 0x7c, 0xd3, 0x11, 0xb1, 0xbb, 0x0c, 0x23,
- 0xbc, 0x53, 0x89, 0x47, 0x7f, 0x96, 0xbf, 0x5c, 0x20, 0xca, 0x17, 0x20, 0x3d, 0x60, 0xc0, 0x7f,
- 0x95, 0x43, 0x99, 0x7d, 0x79, 0x19, 0x72, 0x91, 0xee, 0x24, 0x1e, 0xfe, 0x6b, 0x1c, 0x1e, 0x45,
- 0x11, 0xd7, 0x79, 0x77, 0x12, 0x4f, 0xf0, 0xeb, 0xc2, 0x75, 0x8e, 0x20, 0x61, 0x13, 0x8d, 0x49,
- 0x3c, 0xfa, 0x37, 0x44, 0xd4, 0x05, 0xa4, 0xfc, 0x34, 0x64, 0x83, 0xcd, 0x26, 0x1e, 0xff, 0x9b,
- 0x1c, 0x1f, 0x62, 0x48, 0x04, 0x22, 0x9b, 0x5d, 0x3c, 0xc5, 0xe7, 0x44, 0x04, 0x22, 0x28, 0xb2,
- 0x8c, 0xba, 0x1b, 0x98, 0x78, 0xa6, 0xdf, 0x12, 0xcb, 0xa8, 0xab, 0x7f, 0x21, 0xb3, 0x49, 0x6b,
- 0x7e, 0x3c, 0xc5, 0x6f, 0x8b, 0xd9, 0xa4, 0xf6, 0xc4, 0x8d, 0xee, 0x8e, 0x20, 0x9e, 0xe3, 0x77,
- 0x84, 0x1b, 0x5d, 0x0d, 0x41, 0x79, 0x0b, 0x50, 0x6f, 0x37, 0x10, 0xcf, 0xf7, 0x79, 0xce, 0x37,
- 0xde, 0xd3, 0x0c, 0x94, 0x9f, 0x85, 0x13, 0xfd, 0x3b, 0x81, 0x78, 0xd6, 0x2f, 0xdc, 0xed, 0x3a,
- 0xbb, 0x45, 0x1b, 0x81, 0xf2, 0x76, 0xb8, 0xa5, 0x44, 0xbb, 0x80, 0x78, 0xda, 0x97, 0xef, 0x76,
- 0x16, 0xee, 0x68, 0x13, 0x50, 0xae, 0x00, 0x84, 0x1b, 0x70, 0x3c, 0xd7, 0x2b, 0x9c, 0x2b, 0x02,
- 0x22, 0x4b, 0x83, 0xef, 0xbf, 0xf1, 0xf8, 0x2f, 0x8a, 0xa5, 0xc1, 0x11, 0x64, 0x69, 0x88, 0xad,
- 0x37, 0x1e, 0xfd, 0xaa, 0x58, 0x1a, 0x02, 0x42, 0x32, 0x3b, 0xb2, 0xbb, 0xc5, 0x33, 0x7c, 0x49,
- 0x64, 0x76, 0x04, 0x55, 0xde, 0x84, 0xf1, 0x9e, 0x0d, 0x31, 0x9e, 0xea, 0xcb, 0x9c, 0x4a, 0xee,
- 0xde, 0x0f, 0xa3, 0x9b, 0x17, 0xdf, 0x0c, 0xe3, 0xd9, 0xfe, 0xa0, 0x6b, 0xf3, 0xe2, 0x7b, 0x61,
- 0xf9, 0x32, 0x64, 0xac, 0xb6, 0x69, 0x92, 0xc5, 0x83, 0xee, 0xfd, 0x03, 0xbb, 0xe2, 0xbf, 0xbe,
- 0xcf, 0xa3, 0x23, 0x00, 0xe5, 0x45, 0x48, 0xe3, 0xd6, 0x2e, 0x6e, 0xc4, 0x21, 0xff, 0xed, 0x7d,
- 0x51, 0x30, 0x89, 0x75, 0xf9, 0x69, 0x00, 0x76, 0x35, 0x42, 0x3f, 0xfb, 0xc5, 0x60, 0xff, 0xfd,
- 0x7d, 0xfe, 0xd3, 0x97, 0x10, 0x12, 0x12, 0xb0, 0x1f, 0xd2, 0xdc, 0x9b, 0xe0, 0x9d, 0x4e, 0x02,
- 0x3a, 0x23, 0x97, 0x60, 0xe4, 0x9a, 0x67, 0x5b, 0xbe, 0xd6, 0x8c, 0x43, 0xff, 0x07, 0x47, 0x0b,
- 0x7b, 0x12, 0xb0, 0x96, 0xed, 0x62, 0x5f, 0x6b, 0x7a, 0x71, 0xd8, 0xff, 0xe4, 0xd8, 0x00, 0x40,
- 0xc0, 0xba, 0xe6, 0xf9, 0x83, 0x8c, 0xfb, 0x47, 0x02, 0x2c, 0x00, 0xc4, 0x69, 0xf2, 0xf7, 0x75,
- 0x7c, 0x10, 0x87, 0x7d, 0x57, 0x38, 0xcd, 0xed, 0xcb, 0x1f, 0x87, 0x2c, 0xf9, 0x93, 0xfd, 0x9e,
- 0x2d, 0x06, 0xfc, 0x5f, 0x1c, 0x1c, 0x22, 0xc8, 0x9b, 0x3d, 0xbf, 0xe1, 0x1b, 0xf1, 0xc1, 0xfe,
- 0x6f, 0x3e, 0xd3, 0xc2, 0xbe, 0x5c, 0x81, 0x9c, 0xe7, 0x37, 0x1a, 0x6d, 0xde, 0x9f, 0xc6, 0xc0,
- 0xff, 0xe7, 0xfd, 0xe0, 0xca, 0x22, 0xc0, 0x90, 0xd9, 0xbe, 0x79, 0xdd, 0x77, 0x6c, 0xfa, 0x99,
- 0x23, 0x8e, 0xe1, 0x2e, 0x67, 0x88, 0x40, 0x96, 0xaa, 0xfd, 0xaf, 0x6f, 0x61, 0xd5, 0x5e, 0xb5,
- 0xd9, 0xc5, 0xed, 0x0b, 0xa5, 0xf8, 0x1b, 0x58, 0x78, 0x2f, 0x03, 0x45, 0xdd, 0x6e, 0xed, 0xda,
- 0xde, 0x9c, 0x85, 0x0d, 0x7f, 0x1f, 0xbb, 0x73, 0xb6, 0xc5, 0xf9, 0x50, 0xd2, 0xb6, 0xf0, 0xd4,
- 0xf1, 0xee, 0x71, 0x4b, 0xa7, 0x20, 0x5d, 0x6f, 0xef, 0xee, 0x1e, 0x20, 0x19, 0x92, 0x5e, 0x7b,
- 0x97, 0xff, 0x26, 0x8a, 0xfc, 0x59, 0x7a, 0x33, 0x09, 0xa3, 0x15, 0xd3, 0xdc, 0x3e, 0x70, 0xb0,
- 0x57, 0xb3, 0x70, 0x6d, 0x0f, 0x15, 0x61, 0x98, 0x0e, 0xf4, 0x29, 0x6a, 0x26, 0x5d, 0x1d, 0x52,
- 0xf8, 0x73, 0xa0, 0x99, 0xa7, 0x37, 0xdc, 0x89, 0x40, 0x33, 0x1f, 0x68, 0xce, 0xb1, 0x0b, 0xee,
- 0x40, 0x73, 0x2e, 0xd0, 0x2c, 0xd0, 0x6b, 0xee, 0x64, 0xa0, 0x59, 0x08, 0x34, 0x8b, 0xf4, 0x33,
- 0xce, 0x68, 0xa0, 0x59, 0x0c, 0x34, 0xe7, 0xe9, 0x87, 0x9b, 0x54, 0xa0, 0x39, 0x1f, 0x68, 0x2e,
- 0xd0, 0xef, 0x35, 0xe3, 0x81, 0xe6, 0x42, 0xa0, 0xb9, 0x48, 0xbf, 0xd1, 0xa0, 0x40, 0x73, 0x31,
- 0xd0, 0x5c, 0xa2, 0x3f, 0x7e, 0x1a, 0x09, 0x34, 0x97, 0xd0, 0x14, 0x8c, 0xb0, 0x91, 0x3d, 0x49,
- 0x3f, 0xe4, 0x8f, 0x5d, 0x1d, 0x52, 0x84, 0x20, 0xd4, 0x3d, 0x45, 0x7f, 0xe0, 0x34, 0x1c, 0xea,
- 0x9e, 0x0a, 0x75, 0xf3, 0xf4, 0xff, 0x59, 0xc8, 0xa1, 0x6e, 0x3e, 0xd4, 0x9d, 0x2b, 0x8e, 0x92,
- 0xfc, 0x08, 0x75, 0xe7, 0x42, 0xdd, 0x42, 0xb1, 0x40, 0x66, 0x20, 0xd4, 0x2d, 0x84, 0xba, 0xc5,
- 0xe2, 0xd8, 0x19, 0x69, 0x26, 0x1f, 0xea, 0x16, 0xd1, 0x13, 0x90, 0xf3, 0xda, 0xbb, 0x2a, 0xaf,
- 0xf4, 0xf4, 0x87, 0x54, 0xb9, 0x79, 0x98, 0x25, 0x39, 0x41, 0xa7, 0xf5, 0xea, 0x90, 0x02, 0x5e,
- 0x7b, 0x97, 0x17, 0xe2, 0xa5, 0x3c, 0xd0, 0xfb, 0x27, 0x95, 0xfe, 0xfe, 0xb9, 0xf4, 0x86, 0x04,
- 0xd9, 0xed, 0x9b, 0x36, 0xfd, 0x8c, 0xef, 0xfd, 0x3f, 0x4f, 0xae, 0x70, 0xfa, 0xdc, 0x02, 0xfd,
- 0xd2, 0x9a, 0xbd, 0x2a, 0x29, 0x42, 0x10, 0xea, 0x16, 0x8b, 0x0f, 0xd2, 0x01, 0x05, 0xba, 0x45,
- 0x34, 0x07, 0xf9, 0xc8, 0x80, 0xe6, 0xe9, 0x4f, 0x9c, 0x3a, 0x47, 0x24, 0x29, 0xb9, 0x70, 0x44,
- 0xf3, 0x4b, 0x69, 0x20, 0x69, 0x4f, 0xfe, 0xf1, 0x6f, 0xda, 0xa5, 0xcf, 0x25, 0x20, 0xc7, 0xae,
- 0xac, 0xe9, 0xa8, 0xc8, 0xab, 0xd8, 0xa9, 0xe6, 0x80, 0xbb, 0x31, 0xa4, 0x08, 0x01, 0x52, 0x00,
- 0x98, 0x29, 0xc9, 0x70, 0xe6, 0xc9, 0xd2, 0x93, 0xff, 0xf4, 0xe6, 0xe9, 0x8f, 0x1d, 0xb9, 0x82,
- 0x48, 0xec, 0xe6, 0x58, 0x09, 0x9f, 0xdd, 0x31, 0x2c, 0xff, 0xa9, 0xf9, 0x8b, 0x24, 0xc0, 0x21,
- 0x0b, 0xda, 0x81, 0xcc, 0xb2, 0xe6, 0xd1, 0x1f, 0x47, 0x52, 0xd7, 0x53, 0x4b, 0x17, 0xfe, 0xf7,
- 0xcd, 0xd3, 0xe7, 0x62, 0x18, 0x79, 0x75, 0x9d, 0xdd, 0x38, 0x20, 0xac, 0xe7, 0x17, 0x08, 0xfc,
- 0xea, 0x90, 0x12, 0x50, 0xa1, 0x79, 0xe1, 0xea, 0xa6, 0xd6, 0x62, 0xbf, 0xe5, 0x4a, 0x2e, 0xc9,
- 0x87, 0x6f, 0x9e, 0xce, 0x6f, 0x1c, 0x84, 0xf2, 0xd0, 0x15, 0xf2, 0xb4, 0x94, 0x81, 0x61, 0xe6,
- 0xea, 0xd2, 0xca, 0xeb, 0x77, 0xa6, 0x87, 0xde, 0xb8, 0x33, 0x3d, 0xf4, 0x8f, 0x77, 0xa6, 0x87,
- 0xde, 0xba, 0x33, 0x2d, 0xbd, 0x7b, 0x67, 0x5a, 0x7a, 0xef, 0xce, 0xb4, 0x74, 0xfb, 0x70, 0x5a,
- 0xfa, 0xea, 0xe1, 0xb4, 0xf4, 0xf5, 0xc3, 0x69, 0xe9, 0xdb, 0x87, 0xd3, 0xd2, 0xeb, 0x87, 0xd3,
- 0x43, 0x6f, 0x1c, 0x4e, 0x0f, 0xbd, 0x75, 0x38, 0x2d, 0xfd, 0xf0, 0x70, 0x7a, 0xe8, 0xdd, 0xc3,
- 0x69, 0xe9, 0xbd, 0xc3, 0xe9, 0xa1, 0xdb, 0x3f, 0x98, 0x1e, 0xfa, 0xbf, 0x00, 0x00, 0x00, 0xff,
- 0xff, 0x37, 0x1b, 0x08, 0xc3, 0x16, 0x37, 0x00, 0x00,
+ // 4299 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7b, 0x6b, 0x70, 0x1b, 0xd7,
+ 0x75, 0x3f, 0xf1, 0x22, 0x81, 0x03, 0x10, 0x5c, 0x5e, 0xd2, 0x12, 0x44, 0xc7, 0x90, 0x04, 0xdb,
+ 0x31, 0xfd, 0x22, 0x6d, 0x8a, 0xd4, 0x03, 0xfa, 0x27, 0xfe, 0x83, 0x24, 0x44, 0xd1, 0x25, 0x09,
+ 0x66, 0x41, 0xc6, 0x8f, 0x4c, 0x67, 0x67, 0xb9, 0xb8, 0x04, 0x57, 0x5a, 0xec, 0x6e, 0x76, 0x17,
+ 0x92, 0xa1, 0xe9, 0x07, 0x75, 0xdc, 0xc7, 0x64, 0xfa, 0x4e, 0x3b, 0xd3, 0xc4, 0x75, 0xdc, 0x26,
+ 0x9d, 0xc6, 0x69, 0xfa, 0x4a, 0xfa, 0x48, 0x93, 0xf4, 0x4b, 0xbf, 0xa4, 0xf5, 0xa7, 0x8e, 0xf3,
+ 0xad, 0xd3, 0xe9, 0x78, 0x2c, 0xc6, 0x33, 0x4d, 0x5b, 0xb7, 0x75, 0x5b, 0x7d, 0xf0, 0xd4, 0x5f,
+ 0x3a, 0xf7, 0xb5, 0xbb, 0x78, 0x50, 0x0b, 0x66, 0x6a, 0xe7, 0x93, 0xb8, 0xe7, 0x9c, 0xdf, 0x6f,
+ 0xcf, 0x3d, 0xf7, 0xdc, 0x73, 0xcf, 0xbd, 0x0b, 0xc1, 0x1b, 0x65, 0x38, 0xd3, 0xb4, 0xac, 0xa6,
+ 0x81, 0xe7, 0x6d, 0xc7, 0xf2, 0xac, 0xbd, 0xf6, 0xfe, 0x7c, 0x03, 0xbb, 0x9a, 0xa3, 0xdb, 0x9e,
+ 0xe5, 0xcc, 0x51, 0x19, 0x9a, 0x60, 0x16, 0x73, 0xc2, 0xa2, 0xb4, 0x09, 0x93, 0x57, 0x74, 0x03,
+ 0xaf, 0xfa, 0x86, 0x75, 0xec, 0xa1, 0x8b, 0x90, 0xdc, 0xd7, 0x0d, 0x5c, 0x88, 0x9d, 0x49, 0xcc,
+ 0x66, 0x17, 0x1e, 0x9a, 0xeb, 0x01, 0xcd, 0x75, 0x23, 0xb6, 0x89, 0x58, 0xa6, 0x88, 0xd2, 0x3b,
+ 0x49, 0x98, 0x1a, 0xa0, 0x45, 0x08, 0x92, 0xa6, 0xda, 0x22, 0x8c, 0xb1, 0xd9, 0x8c, 0x4c, 0xff,
+ 0x46, 0x05, 0x18, 0xb3, 0x55, 0xed, 0xba, 0xda, 0xc4, 0x85, 0x38, 0x15, 0x8b, 0x47, 0x54, 0x04,
+ 0x68, 0x60, 0x1b, 0x9b, 0x0d, 0x6c, 0x6a, 0x9d, 0x42, 0xe2, 0x4c, 0x62, 0x36, 0x23, 0x87, 0x24,
+ 0xe8, 0x71, 0x98, 0xb4, 0xdb, 0x7b, 0x86, 0xae, 0x29, 0x21, 0x33, 0x38, 0x93, 0x98, 0x4d, 0xc9,
+ 0x12, 0x53, 0xac, 0x06, 0xc6, 0x8f, 0xc0, 0xc4, 0x4d, 0xac, 0x5e, 0x0f, 0x9b, 0x66, 0xa9, 0x69,
+ 0x9e, 0x88, 0x43, 0x86, 0x2b, 0x90, 0x6b, 0x61, 0xd7, 0x55, 0x9b, 0x58, 0xf1, 0x3a, 0x36, 0x2e,
+ 0x24, 0xe9, 0xe8, 0xcf, 0xf4, 0x8d, 0xbe, 0x77, 0xe4, 0x59, 0x8e, 0xda, 0xe9, 0xd8, 0x18, 0x55,
+ 0x20, 0x83, 0xcd, 0x76, 0x8b, 0x31, 0xa4, 0x8e, 0x88, 0x5f, 0xd5, 0x6c, 0xb7, 0x7a, 0x59, 0xd2,
+ 0x04, 0xc6, 0x29, 0xc6, 0x5c, 0xec, 0xdc, 0xd0, 0x35, 0x5c, 0x18, 0xa5, 0x04, 0x8f, 0xf4, 0x11,
+ 0xd4, 0x99, 0xbe, 0x97, 0x43, 0xe0, 0xd0, 0x0a, 0x64, 0xf0, 0x4b, 0x1e, 0x36, 0x5d, 0xdd, 0x32,
+ 0x0b, 0x63, 0x94, 0xe4, 0xe1, 0x01, 0xb3, 0x88, 0x8d, 0x46, 0x2f, 0x45, 0x80, 0x43, 0xe7, 0x61,
+ 0xcc, 0xb2, 0x3d, 0xdd, 0x32, 0xdd, 0x42, 0xfa, 0x4c, 0x6c, 0x36, 0xbb, 0xf0, 0xb1, 0x81, 0x89,
+ 0x50, 0x63, 0x36, 0xb2, 0x30, 0x46, 0xeb, 0x20, 0xb9, 0x56, 0xdb, 0xd1, 0xb0, 0xa2, 0x59, 0x0d,
+ 0xac, 0xe8, 0xe6, 0xbe, 0x55, 0xc8, 0x50, 0x82, 0xd3, 0xfd, 0x03, 0xa1, 0x86, 0x2b, 0x56, 0x03,
+ 0xaf, 0x9b, 0xfb, 0x96, 0x9c, 0x77, 0xbb, 0x9e, 0xd1, 0x09, 0x18, 0x75, 0x3b, 0xa6, 0xa7, 0xbe,
+ 0x54, 0xc8, 0xd1, 0x0c, 0xe1, 0x4f, 0xa5, 0xef, 0x8c, 0xc2, 0xc4, 0x30, 0x29, 0x76, 0x19, 0x52,
+ 0xfb, 0x64, 0x94, 0x85, 0xf8, 0x71, 0x62, 0xc0, 0x30, 0xdd, 0x41, 0x1c, 0xfd, 0x11, 0x83, 0x58,
+ 0x81, 0xac, 0x89, 0x5d, 0x0f, 0x37, 0x58, 0x46, 0x24, 0x86, 0xcc, 0x29, 0x60, 0xa0, 0xfe, 0x94,
+ 0x4a, 0xfe, 0x48, 0x29, 0xf5, 0x3c, 0x4c, 0xf8, 0x2e, 0x29, 0x8e, 0x6a, 0x36, 0x45, 0x6e, 0xce,
+ 0x47, 0x79, 0x32, 0x57, 0x15, 0x38, 0x99, 0xc0, 0xe4, 0x3c, 0xee, 0x7a, 0x46, 0xab, 0x00, 0x96,
+ 0x89, 0xad, 0x7d, 0xa5, 0x81, 0x35, 0xa3, 0x90, 0x3e, 0x22, 0x4a, 0x35, 0x62, 0xd2, 0x17, 0x25,
+ 0x8b, 0x49, 0x35, 0x03, 0x5d, 0x0a, 0x52, 0x6d, 0xec, 0x88, 0x4c, 0xd9, 0x64, 0x8b, 0xac, 0x2f,
+ 0xdb, 0x76, 0x21, 0xef, 0x60, 0x92, 0xf7, 0xb8, 0xc1, 0x47, 0x96, 0xa1, 0x4e, 0xcc, 0x45, 0x8e,
+ 0x4c, 0xe6, 0x30, 0x36, 0xb0, 0x71, 0x27, 0xfc, 0x88, 0x1e, 0x04, 0x5f, 0xa0, 0xd0, 0xb4, 0x02,
+ 0x5a, 0x85, 0x72, 0x42, 0xb8, 0xa5, 0xb6, 0xf0, 0xcc, 0x2d, 0xc8, 0x77, 0x87, 0x07, 0x4d, 0x43,
+ 0xca, 0xf5, 0x54, 0xc7, 0xa3, 0x59, 0x98, 0x92, 0xd9, 0x03, 0x92, 0x20, 0x81, 0xcd, 0x06, 0xad,
+ 0x72, 0x29, 0x99, 0xfc, 0x89, 0xfe, 0x7f, 0x30, 0xe0, 0x04, 0x1d, 0xf0, 0xc7, 0xfb, 0x67, 0xb4,
+ 0x8b, 0xb9, 0x77, 0xdc, 0x33, 0x17, 0x60, 0xbc, 0x6b, 0x00, 0xc3, 0xbe, 0xba, 0xf4, 0x53, 0x70,
+ 0xdf, 0x40, 0x6a, 0xf4, 0x3c, 0x4c, 0xb7, 0x4d, 0xdd, 0xf4, 0xb0, 0x63, 0x3b, 0x98, 0x64, 0x2c,
+ 0x7b, 0x55, 0xe1, 0x9f, 0xc6, 0x8e, 0xc8, 0xb9, 0xdd, 0xb0, 0x35, 0x63, 0x91, 0xa7, 0xda, 0xfd,
+ 0xc2, 0xc7, 0x32, 0xe9, 0x1f, 0x8e, 0x49, 0xb7, 0x6f, 0xdf, 0xbe, 0x1d, 0x2f, 0x7d, 0x61, 0x14,
+ 0xa6, 0x07, 0xad, 0x99, 0x81, 0xcb, 0xf7, 0x04, 0x8c, 0x9a, 0xed, 0xd6, 0x1e, 0x76, 0x68, 0x90,
+ 0x52, 0x32, 0x7f, 0x42, 0x15, 0x48, 0x19, 0xea, 0x1e, 0x36, 0x0a, 0xc9, 0x33, 0xb1, 0xd9, 0xfc,
+ 0xc2, 0xe3, 0x43, 0xad, 0xca, 0xb9, 0x0d, 0x02, 0x91, 0x19, 0x12, 0x7d, 0x12, 0x92, 0xbc, 0x44,
+ 0x13, 0x86, 0xc7, 0x86, 0x63, 0x20, 0x6b, 0x49, 0xa6, 0x38, 0x74, 0x3f, 0x64, 0xc8, 0xbf, 0x2c,
+ 0x37, 0x46, 0xa9, 0xcf, 0x69, 0x22, 0x20, 0x79, 0x81, 0x66, 0x20, 0x4d, 0x97, 0x49, 0x03, 0x8b,
+ 0xad, 0xcd, 0x7f, 0x26, 0x89, 0xd5, 0xc0, 0xfb, 0x6a, 0xdb, 0xf0, 0x94, 0x1b, 0xaa, 0xd1, 0xc6,
+ 0x34, 0xe1, 0x33, 0x72, 0x8e, 0x0b, 0x3f, 0x4d, 0x64, 0xe8, 0x34, 0x64, 0xd9, 0xaa, 0xd2, 0xcd,
+ 0x06, 0x7e, 0x89, 0x56, 0xcf, 0x94, 0xcc, 0x16, 0xda, 0x3a, 0x91, 0x90, 0xd7, 0x5f, 0x73, 0x2d,
+ 0x53, 0xa4, 0x26, 0x7d, 0x05, 0x11, 0xd0, 0xd7, 0x5f, 0xe8, 0x2d, 0xdc, 0x0f, 0x0c, 0x1e, 0x5e,
+ 0x6f, 0x4e, 0x95, 0xbe, 0x15, 0x87, 0x24, 0xad, 0x17, 0x13, 0x90, 0xdd, 0x79, 0x61, 0xbb, 0xaa,
+ 0xac, 0xd6, 0x76, 0x97, 0x37, 0xaa, 0x52, 0x0c, 0xe5, 0x01, 0xa8, 0xe0, 0xca, 0x46, 0xad, 0xb2,
+ 0x23, 0xc5, 0xfd, 0xe7, 0xf5, 0xad, 0x9d, 0xf3, 0x8b, 0x52, 0xc2, 0x07, 0xec, 0x32, 0x41, 0x32,
+ 0x6c, 0x70, 0x6e, 0x41, 0x4a, 0x21, 0x09, 0x72, 0x8c, 0x60, 0xfd, 0xf9, 0xea, 0xea, 0xf9, 0x45,
+ 0x69, 0xb4, 0x5b, 0x72, 0x6e, 0x41, 0x1a, 0x43, 0xe3, 0x90, 0xa1, 0x92, 0xe5, 0x5a, 0x6d, 0x43,
+ 0x4a, 0xfb, 0x9c, 0xf5, 0x1d, 0x79, 0x7d, 0x6b, 0x4d, 0xca, 0xf8, 0x9c, 0x6b, 0x72, 0x6d, 0x77,
+ 0x5b, 0x02, 0x9f, 0x61, 0xb3, 0x5a, 0xaf, 0x57, 0xd6, 0xaa, 0x52, 0xd6, 0xb7, 0x58, 0x7e, 0x61,
+ 0xa7, 0x5a, 0x97, 0x72, 0x5d, 0x6e, 0x9d, 0x5b, 0x90, 0xc6, 0xfd, 0x57, 0x54, 0xb7, 0x76, 0x37,
+ 0xa5, 0x3c, 0x9a, 0x84, 0x71, 0xf6, 0x0a, 0xe1, 0xc4, 0x44, 0x8f, 0xe8, 0xfc, 0xa2, 0x24, 0x05,
+ 0x8e, 0x30, 0x96, 0xc9, 0x2e, 0xc1, 0xf9, 0x45, 0x09, 0x95, 0x56, 0x20, 0x45, 0xb3, 0x0b, 0x21,
+ 0xc8, 0x6f, 0x54, 0x96, 0xab, 0x1b, 0x4a, 0x6d, 0x7b, 0x67, 0xbd, 0xb6, 0x55, 0xd9, 0x90, 0x62,
+ 0x81, 0x4c, 0xae, 0x7e, 0x6a, 0x77, 0x5d, 0xae, 0xae, 0x4a, 0xf1, 0xb0, 0x6c, 0xbb, 0x5a, 0xd9,
+ 0xa9, 0xae, 0x4a, 0x89, 0x92, 0x06, 0xd3, 0x83, 0xea, 0xe4, 0xc0, 0x95, 0x11, 0x9a, 0xe2, 0xf8,
+ 0x11, 0x53, 0x4c, 0xb9, 0xfa, 0xa6, 0xf8, 0x07, 0x71, 0x98, 0x1a, 0xb0, 0x57, 0x0c, 0x7c, 0xc9,
+ 0x33, 0x90, 0x62, 0x29, 0xca, 0x76, 0xcf, 0x47, 0x07, 0x6e, 0x3a, 0x34, 0x61, 0xfb, 0x76, 0x50,
+ 0x8a, 0x0b, 0x77, 0x10, 0x89, 0x23, 0x3a, 0x08, 0x42, 0xd1, 0x57, 0xd3, 0x7f, 0xb2, 0xaf, 0xa6,
+ 0xb3, 0x6d, 0xef, 0xfc, 0x30, 0xdb, 0x1e, 0x95, 0x1d, 0xaf, 0xb6, 0xa7, 0x06, 0xd4, 0xf6, 0xcb,
+ 0x30, 0xd9, 0x47, 0x34, 0x74, 0x8d, 0x7d, 0x39, 0x06, 0x85, 0xa3, 0x82, 0x13, 0x51, 0xe9, 0xe2,
+ 0x5d, 0x95, 0xee, 0x72, 0x6f, 0x04, 0xcf, 0x1e, 0x3d, 0x09, 0x7d, 0x73, 0xfd, 0x7a, 0x0c, 0x4e,
+ 0x0c, 0xee, 0x14, 0x07, 0xfa, 0xf0, 0x49, 0x18, 0x6d, 0x61, 0xef, 0xc0, 0x12, 0xdd, 0xd2, 0xc7,
+ 0x07, 0xec, 0xc1, 0x44, 0xdd, 0x3b, 0xd9, 0x1c, 0x15, 0xde, 0xc4, 0x13, 0x47, 0xb5, 0x7b, 0xcc,
+ 0x9b, 0x3e, 0x4f, 0x3f, 0x17, 0x87, 0xfb, 0x06, 0x92, 0x0f, 0x74, 0xf4, 0x01, 0x00, 0xdd, 0xb4,
+ 0xdb, 0x1e, 0xeb, 0x88, 0x58, 0x81, 0xcd, 0x50, 0x09, 0x2d, 0x5e, 0xa4, 0x78, 0xb6, 0x3d, 0x5f,
+ 0x9f, 0xa0, 0x7a, 0x60, 0x22, 0x6a, 0x70, 0x31, 0x70, 0x34, 0x49, 0x1d, 0x2d, 0x1e, 0x31, 0xd2,
+ 0xbe, 0xc4, 0x7c, 0x0a, 0x24, 0xcd, 0xd0, 0xb1, 0xe9, 0x29, 0xae, 0xe7, 0x60, 0xb5, 0xa5, 0x9b,
+ 0x4d, 0xba, 0x83, 0xa4, 0xcb, 0xa9, 0x7d, 0xd5, 0x70, 0xb1, 0x3c, 0xc1, 0xd4, 0x75, 0xa1, 0x25,
+ 0x08, 0x9a, 0x40, 0x4e, 0x08, 0x31, 0xda, 0x85, 0x60, 0x6a, 0x1f, 0x51, 0xfa, 0xc5, 0x0c, 0x64,
+ 0x43, 0x7d, 0x35, 0x3a, 0x0b, 0xb9, 0x6b, 0xea, 0x0d, 0x55, 0x11, 0x67, 0x25, 0x16, 0x89, 0x2c,
+ 0x91, 0x6d, 0xf3, 0xf3, 0xd2, 0x53, 0x30, 0x4d, 0x4d, 0xac, 0xb6, 0x87, 0x1d, 0x45, 0x33, 0x54,
+ 0xd7, 0xa5, 0x41, 0x4b, 0x53, 0x53, 0x44, 0x74, 0x35, 0xa2, 0x5a, 0x11, 0x1a, 0xb4, 0x04, 0x53,
+ 0x14, 0xd1, 0x6a, 0x1b, 0x9e, 0x6e, 0x1b, 0x58, 0x21, 0xa7, 0x37, 0x97, 0xee, 0x24, 0xbe, 0x67,
+ 0x93, 0xc4, 0x62, 0x93, 0x1b, 0x10, 0x8f, 0x5c, 0xb4, 0x0a, 0x0f, 0x50, 0x58, 0x13, 0x9b, 0xd8,
+ 0x51, 0x3d, 0xac, 0xe0, 0xcf, 0xb6, 0x55, 0xc3, 0x55, 0x54, 0xb3, 0xa1, 0x1c, 0xa8, 0xee, 0x41,
+ 0x61, 0x9a, 0x10, 0x2c, 0xc7, 0x0b, 0x31, 0xf9, 0x14, 0x31, 0x5c, 0xe3, 0x76, 0x55, 0x6a, 0x56,
+ 0x31, 0x1b, 0x57, 0x55, 0xf7, 0x00, 0x95, 0xe1, 0x04, 0x65, 0x71, 0x3d, 0x47, 0x37, 0x9b, 0x8a,
+ 0x76, 0x80, 0xb5, 0xeb, 0x4a, 0xdb, 0xdb, 0xbf, 0x58, 0xb8, 0x3f, 0xfc, 0x7e, 0xea, 0x61, 0x9d,
+ 0xda, 0xac, 0x10, 0x93, 0x5d, 0x6f, 0xff, 0x22, 0xaa, 0x43, 0x8e, 0x4c, 0x46, 0x4b, 0xbf, 0x85,
+ 0x95, 0x7d, 0xcb, 0xa1, 0x5b, 0x63, 0x7e, 0x40, 0x69, 0x0a, 0x45, 0x70, 0xae, 0xc6, 0x01, 0x9b,
+ 0x56, 0x03, 0x97, 0x53, 0xf5, 0xed, 0x6a, 0x75, 0x55, 0xce, 0x0a, 0x96, 0x2b, 0x96, 0x43, 0x12,
+ 0xaa, 0x69, 0xf9, 0x01, 0xce, 0xb2, 0x84, 0x6a, 0x5a, 0x22, 0xbc, 0x4b, 0x30, 0xa5, 0x69, 0x6c,
+ 0xcc, 0xba, 0xa6, 0xf0, 0x33, 0x96, 0x5b, 0x90, 0xba, 0x82, 0xa5, 0x69, 0x6b, 0xcc, 0x80, 0xe7,
+ 0xb8, 0x8b, 0x2e, 0xc1, 0x7d, 0x41, 0xb0, 0xc2, 0xc0, 0xc9, 0xbe, 0x51, 0xf6, 0x42, 0x97, 0x60,
+ 0xca, 0xee, 0xf4, 0x03, 0x51, 0xd7, 0x1b, 0xed, 0x4e, 0x2f, 0xec, 0x02, 0x4c, 0xdb, 0x07, 0x76,
+ 0x3f, 0xee, 0xb1, 0x30, 0x0e, 0xd9, 0x07, 0x76, 0x2f, 0xf0, 0x61, 0x7a, 0xe0, 0x76, 0xb0, 0xa6,
+ 0x7a, 0xb8, 0x51, 0x38, 0x19, 0x36, 0x0f, 0x29, 0xd0, 0x3c, 0x48, 0x9a, 0xa6, 0x60, 0x53, 0xdd,
+ 0x33, 0xb0, 0xa2, 0x3a, 0xd8, 0x54, 0xdd, 0xc2, 0xe9, 0xb0, 0x71, 0x5e, 0xd3, 0xaa, 0x54, 0x5b,
+ 0xa1, 0x4a, 0xf4, 0x18, 0x4c, 0x5a, 0x7b, 0xd7, 0x34, 0x96, 0x92, 0x8a, 0xed, 0xe0, 0x7d, 0xfd,
+ 0xa5, 0xc2, 0x43, 0x34, 0xbe, 0x13, 0x44, 0x41, 0x13, 0x72, 0x9b, 0x8a, 0xd1, 0xa3, 0x20, 0x69,
+ 0xee, 0x81, 0xea, 0xd8, 0xb4, 0x26, 0xbb, 0xb6, 0xaa, 0xe1, 0xc2, 0xc3, 0xcc, 0x94, 0xc9, 0xb7,
+ 0x84, 0x98, 0x2c, 0x09, 0xf7, 0xa6, 0xbe, 0xef, 0x09, 0xc6, 0x47, 0xd8, 0x92, 0xa0, 0x32, 0xce,
+ 0x36, 0x0b, 0x12, 0x09, 0x45, 0xd7, 0x8b, 0x67, 0xa9, 0x59, 0xde, 0x3e, 0xb0, 0xc3, 0xef, 0x7d,
+ 0x10, 0xc6, 0x89, 0x65, 0xf0, 0xd2, 0x47, 0x59, 0x43, 0x66, 0x1f, 0x84, 0xde, 0xb8, 0x08, 0x27,
+ 0x88, 0x51, 0x0b, 0x7b, 0x6a, 0x43, 0xf5, 0xd4, 0x90, 0xf5, 0x13, 0xd4, 0x9a, 0xc4, 0x7d, 0x93,
+ 0x2b, 0xbb, 0xfc, 0x74, 0xda, 0x7b, 0x1d, 0x3f, 0xb3, 0x9e, 0x64, 0x7e, 0x12, 0x99, 0xc8, 0xad,
+ 0x0f, 0xad, 0xe9, 0x2e, 0x95, 0x21, 0x17, 0x4e, 0x7c, 0x94, 0x01, 0x96, 0xfa, 0x52, 0x8c, 0x74,
+ 0x41, 0x2b, 0xb5, 0x55, 0xd2, 0xbf, 0xbc, 0x58, 0x95, 0xe2, 0xa4, 0x8f, 0xda, 0x58, 0xdf, 0xa9,
+ 0x2a, 0xf2, 0xee, 0xd6, 0xce, 0xfa, 0x66, 0x55, 0x4a, 0x84, 0x1b, 0xf6, 0xef, 0xc5, 0x21, 0xdf,
+ 0x7d, 0xf6, 0x42, 0xff, 0x0f, 0x4e, 0x8a, 0x8b, 0x12, 0x17, 0x7b, 0xca, 0x4d, 0xdd, 0xa1, 0x6b,
+ 0xb1, 0xa5, 0xb2, 0x7d, 0xd1, 0xcf, 0x86, 0x69, 0x6e, 0x55, 0xc7, 0xde, 0x73, 0xba, 0x43, 0x56,
+ 0x5a, 0x4b, 0xf5, 0xd0, 0x06, 0x9c, 0x36, 0x2d, 0xc5, 0xf5, 0x54, 0xb3, 0xa1, 0x3a, 0x0d, 0x25,
+ 0xb8, 0xa2, 0x52, 0x54, 0x4d, 0xc3, 0xae, 0x6b, 0xb1, 0x3d, 0xd0, 0x67, 0xf9, 0x98, 0x69, 0xd5,
+ 0xb9, 0x71, 0xb0, 0x39, 0x54, 0xb8, 0x69, 0x4f, 0xe6, 0x26, 0x8e, 0xca, 0xdc, 0xfb, 0x21, 0xd3,
+ 0x52, 0x6d, 0x05, 0x9b, 0x9e, 0xd3, 0xa1, 0x1d, 0x77, 0x5a, 0x4e, 0xb7, 0x54, 0xbb, 0x4a, 0x9e,
+ 0x3f, 0x9a, 0x83, 0xcf, 0x3f, 0x26, 0x20, 0x17, 0xee, 0xba, 0xc9, 0x21, 0x46, 0xa3, 0x1b, 0x54,
+ 0x8c, 0x96, 0xb0, 0x07, 0xef, 0xd9, 0xa3, 0xcf, 0xad, 0x90, 0x9d, 0xab, 0x3c, 0xca, 0x7a, 0x61,
+ 0x99, 0x21, 0x49, 0xd7, 0x40, 0x52, 0x0b, 0xb3, 0xde, 0x23, 0x2d, 0xf3, 0x27, 0xb4, 0x06, 0xa3,
+ 0xd7, 0x5c, 0xca, 0x3d, 0x4a, 0xb9, 0x1f, 0xba, 0x37, 0xf7, 0xb3, 0x75, 0x4a, 0x9e, 0x79, 0xb6,
+ 0xae, 0x6c, 0xd5, 0xe4, 0xcd, 0xca, 0x86, 0xcc, 0xe1, 0xe8, 0x14, 0x24, 0x0d, 0xf5, 0x56, 0xa7,
+ 0x7b, 0x8f, 0xa3, 0xa2, 0x61, 0x03, 0x7f, 0x0a, 0x92, 0x37, 0xb1, 0x7a, 0xbd, 0x7b, 0x67, 0xa1,
+ 0xa2, 0x0f, 0x31, 0xf5, 0xe7, 0x21, 0x45, 0xe3, 0x85, 0x00, 0x78, 0xc4, 0xa4, 0x11, 0x94, 0x86,
+ 0xe4, 0x4a, 0x4d, 0x26, 0xe9, 0x2f, 0x41, 0x8e, 0x49, 0x95, 0xed, 0xf5, 0xea, 0x4a, 0x55, 0x8a,
+ 0x97, 0x96, 0x60, 0x94, 0x05, 0x81, 0x2c, 0x0d, 0x3f, 0x0c, 0xd2, 0x08, 0x7f, 0xe4, 0x1c, 0x31,
+ 0xa1, 0xdd, 0xdd, 0x5c, 0xae, 0xca, 0x52, 0x3c, 0x3c, 0xbd, 0x2e, 0xe4, 0xc2, 0x0d, 0xf7, 0x47,
+ 0x93, 0x53, 0xdf, 0x8d, 0x41, 0x36, 0xd4, 0x40, 0x93, 0xce, 0x47, 0x35, 0x0c, 0xeb, 0xa6, 0xa2,
+ 0x1a, 0xba, 0xea, 0xf2, 0xa4, 0x00, 0x2a, 0xaa, 0x10, 0xc9, 0xb0, 0x93, 0xf6, 0x91, 0x38, 0xff,
+ 0x5a, 0x0c, 0xa4, 0xde, 0xde, 0xb5, 0xc7, 0xc1, 0xd8, 0x8f, 0xd5, 0xc1, 0x57, 0x63, 0x90, 0xef,
+ 0x6e, 0x58, 0x7b, 0xdc, 0x3b, 0xfb, 0x63, 0x75, 0xef, 0xed, 0x38, 0x8c, 0x77, 0xb5, 0xa9, 0xc3,
+ 0x7a, 0xf7, 0x59, 0x98, 0xd4, 0x1b, 0xb8, 0x65, 0x5b, 0x1e, 0x36, 0xb5, 0x8e, 0x62, 0xe0, 0x1b,
+ 0xd8, 0x28, 0x94, 0x68, 0xa1, 0x98, 0xbf, 0x77, 0x23, 0x3c, 0xb7, 0x1e, 0xe0, 0x36, 0x08, 0xac,
+ 0x3c, 0xb5, 0xbe, 0x5a, 0xdd, 0xdc, 0xae, 0xed, 0x54, 0xb7, 0x56, 0x5e, 0x50, 0x76, 0xb7, 0x7e,
+ 0x62, 0xab, 0xf6, 0xdc, 0x96, 0x2c, 0xe9, 0x3d, 0x66, 0x1f, 0xe2, 0x52, 0xdf, 0x06, 0xa9, 0xd7,
+ 0x29, 0x74, 0x12, 0x06, 0xb9, 0x25, 0x8d, 0xa0, 0x29, 0x98, 0xd8, 0xaa, 0x29, 0xf5, 0xf5, 0xd5,
+ 0xaa, 0x52, 0xbd, 0x72, 0xa5, 0xba, 0xb2, 0x53, 0x67, 0x57, 0x1b, 0xbe, 0xf5, 0x4e, 0xf7, 0xa2,
+ 0x7e, 0x25, 0x01, 0x53, 0x03, 0x3c, 0x41, 0x15, 0x7e, 0x28, 0x61, 0xe7, 0xa4, 0x27, 0x87, 0xf1,
+ 0x7e, 0x8e, 0x74, 0x05, 0xdb, 0xaa, 0xe3, 0xf1, 0x33, 0xcc, 0xa3, 0x40, 0xa2, 0x64, 0x7a, 0xfa,
+ 0xbe, 0x8e, 0x1d, 0x7e, 0x13, 0xc4, 0x4e, 0x2a, 0x13, 0x81, 0x9c, 0x5d, 0x06, 0x3d, 0x01, 0xc8,
+ 0xb6, 0x5c, 0xdd, 0xd3, 0x6f, 0x60, 0x45, 0x37, 0xc5, 0xb5, 0x11, 0x39, 0xb9, 0x24, 0x65, 0x49,
+ 0x68, 0xd6, 0x4d, 0xcf, 0xb7, 0x36, 0x71, 0x53, 0xed, 0xb1, 0x26, 0x05, 0x3c, 0x21, 0x4b, 0x42,
+ 0xe3, 0x5b, 0x9f, 0x85, 0x5c, 0xc3, 0x6a, 0x93, 0x76, 0x8e, 0xd9, 0x91, 0xfd, 0x22, 0x26, 0x67,
+ 0x99, 0xcc, 0x37, 0xe1, 0x8d, 0x7a, 0x70, 0x5f, 0x95, 0x93, 0xb3, 0x4c, 0xc6, 0x4c, 0x1e, 0x81,
+ 0x09, 0xb5, 0xd9, 0x74, 0x08, 0xb9, 0x20, 0x62, 0x47, 0x8f, 0xbc, 0x2f, 0xa6, 0x86, 0x33, 0xcf,
+ 0x42, 0x5a, 0xc4, 0x81, 0x6c, 0xc9, 0x24, 0x12, 0x8a, 0xcd, 0xce, 0xd3, 0xf1, 0xd9, 0x8c, 0x9c,
+ 0x36, 0x85, 0xf2, 0x2c, 0xe4, 0x74, 0x57, 0x09, 0xae, 0xdf, 0xe3, 0x67, 0xe2, 0xb3, 0x69, 0x39,
+ 0xab, 0xbb, 0xfe, 0xd5, 0x65, 0xe9, 0xf5, 0x38, 0xe4, 0xbb, 0x3f, 0x1f, 0xa0, 0x55, 0x48, 0x1b,
+ 0x96, 0xa6, 0xd2, 0xd4, 0x62, 0xdf, 0xae, 0x66, 0x23, 0xbe, 0x38, 0xcc, 0x6d, 0x70, 0x7b, 0xd9,
+ 0x47, 0xce, 0xfc, 0x5d, 0x0c, 0xd2, 0x42, 0x8c, 0x4e, 0x40, 0xd2, 0x56, 0xbd, 0x03, 0x4a, 0x97,
+ 0x5a, 0x8e, 0x4b, 0x31, 0x99, 0x3e, 0x13, 0xb9, 0x6b, 0xab, 0x26, 0x4d, 0x01, 0x2e, 0x27, 0xcf,
+ 0x64, 0x5e, 0x0d, 0xac, 0x36, 0xe8, 0xb9, 0xc6, 0x6a, 0xb5, 0xb0, 0xe9, 0xb9, 0x62, 0x5e, 0xb9,
+ 0x7c, 0x85, 0x8b, 0xd1, 0xe3, 0x30, 0xe9, 0x39, 0xaa, 0x6e, 0x74, 0xd9, 0x26, 0xa9, 0xad, 0x24,
+ 0x14, 0xbe, 0x71, 0x19, 0x4e, 0x09, 0xde, 0x06, 0xf6, 0x54, 0xed, 0x00, 0x37, 0x02, 0xd0, 0x28,
+ 0xbd, 0xbf, 0x38, 0xc9, 0x0d, 0x56, 0xb9, 0x5e, 0x60, 0x4b, 0xdf, 0x8f, 0xc1, 0xa4, 0x38, 0x89,
+ 0x35, 0xfc, 0x60, 0x6d, 0x02, 0xa8, 0xa6, 0x69, 0x79, 0xe1, 0x70, 0xf5, 0xa7, 0x72, 0x1f, 0x6e,
+ 0xae, 0xe2, 0x83, 0xe4, 0x10, 0xc1, 0x4c, 0x0b, 0x20, 0xd0, 0x1c, 0x19, 0xb6, 0xd3, 0x90, 0xe5,
+ 0xdf, 0x86, 0xe8, 0x07, 0x46, 0x76, 0x76, 0x07, 0x26, 0x22, 0x47, 0x36, 0x34, 0x0d, 0xa9, 0x3d,
+ 0xdc, 0xd4, 0x4d, 0x7e, 0xe3, 0xcb, 0x1e, 0xc4, 0x0d, 0x4b, 0xd2, 0xbf, 0x61, 0x59, 0xfe, 0x0c,
+ 0x4c, 0x69, 0x56, 0xab, 0xd7, 0xdd, 0x65, 0xa9, 0xe7, 0xfe, 0xc0, 0xbd, 0x1a, 0x7b, 0x11, 0x82,
+ 0x16, 0xf3, 0xfd, 0x58, 0xec, 0x2b, 0xf1, 0xc4, 0xda, 0xf6, 0xf2, 0xd7, 0xe3, 0x33, 0x6b, 0x0c,
+ 0xba, 0x2d, 0x46, 0x2a, 0xe3, 0x7d, 0x03, 0x6b, 0xc4, 0x7b, 0xf8, 0xea, 0xe3, 0xf0, 0x64, 0x53,
+ 0xf7, 0x0e, 0xda, 0x7b, 0x73, 0x9a, 0xd5, 0x9a, 0x6f, 0x5a, 0x4d, 0x2b, 0xf8, 0xa6, 0x4a, 0x9e,
+ 0xe8, 0x03, 0xfd, 0x8b, 0x7f, 0x57, 0xcd, 0xf8, 0xd2, 0x99, 0xc8, 0x8f, 0xb0, 0xe5, 0x2d, 0x98,
+ 0xe2, 0xc6, 0x0a, 0xfd, 0xb0, 0xc3, 0x8e, 0x27, 0xe8, 0x9e, 0x97, 0x63, 0x85, 0x6f, 0xbe, 0x43,
+ 0xb7, 0x6b, 0x79, 0x92, 0x43, 0x89, 0x8e, 0x9d, 0x60, 0xca, 0x32, 0xdc, 0xd7, 0xc5, 0xc7, 0x96,
+ 0x26, 0x76, 0x22, 0x18, 0xbf, 0xc7, 0x19, 0xa7, 0x42, 0x8c, 0x75, 0x0e, 0x2d, 0xaf, 0xc0, 0xf8,
+ 0x71, 0xb8, 0xfe, 0x86, 0x73, 0xe5, 0x70, 0x98, 0x64, 0x0d, 0x26, 0x28, 0x89, 0xd6, 0x76, 0x3d,
+ 0xab, 0x45, 0xeb, 0xde, 0xbd, 0x69, 0xfe, 0xf6, 0x1d, 0xb6, 0x56, 0xf2, 0x04, 0xb6, 0xe2, 0xa3,
+ 0xca, 0x65, 0xa0, 0xdf, 0xb2, 0x1a, 0x58, 0x33, 0x22, 0x18, 0xde, 0xe0, 0x8e, 0xf8, 0xf6, 0xe5,
+ 0x4f, 0xc3, 0x34, 0xf9, 0x9b, 0x96, 0xa5, 0xb0, 0x27, 0xd1, 0x37, 0x69, 0x85, 0xef, 0xbf, 0xcc,
+ 0x96, 0xe3, 0x94, 0x4f, 0x10, 0xf2, 0x29, 0x34, 0x8b, 0x4d, 0xec, 0x79, 0xd8, 0x71, 0x15, 0xd5,
+ 0x18, 0xe4, 0x5e, 0xe8, 0x2a, 0xa2, 0xf0, 0xc5, 0x77, 0xbb, 0x67, 0x71, 0x8d, 0x21, 0x2b, 0x86,
+ 0x51, 0xde, 0x85, 0x93, 0x03, 0xb2, 0x62, 0x08, 0xce, 0x57, 0x38, 0xe7, 0x74, 0x5f, 0x66, 0x10,
+ 0xda, 0x6d, 0x10, 0x72, 0x7f, 0x2e, 0x87, 0xe0, 0xfc, 0x2d, 0xce, 0x89, 0x38, 0x56, 0x4c, 0x29,
+ 0x61, 0x7c, 0x16, 0x26, 0x6f, 0x60, 0x67, 0xcf, 0x72, 0xf9, 0xf5, 0xcf, 0x10, 0x74, 0xaf, 0x72,
+ 0xba, 0x09, 0x0e, 0xa4, 0xf7, 0x41, 0x84, 0xeb, 0x12, 0xa4, 0xf7, 0x55, 0x0d, 0x0f, 0x41, 0xf1,
+ 0x25, 0x4e, 0x31, 0x46, 0xec, 0x09, 0xb4, 0x02, 0xb9, 0xa6, 0xc5, 0x77, 0xa6, 0x68, 0xf8, 0x6b,
+ 0x1c, 0x9e, 0x15, 0x18, 0x4e, 0x61, 0x5b, 0x76, 0xdb, 0x20, 0xdb, 0x56, 0x34, 0xc5, 0x6f, 0x0b,
+ 0x0a, 0x81, 0xe1, 0x14, 0xc7, 0x08, 0xeb, 0xef, 0x08, 0x0a, 0x37, 0x14, 0xcf, 0x67, 0x20, 0x6b,
+ 0x99, 0x46, 0xc7, 0x32, 0x87, 0x71, 0xe2, 0xcb, 0x9c, 0x01, 0x38, 0x84, 0x10, 0x5c, 0x86, 0xcc,
+ 0xb0, 0x13, 0xf1, 0x7b, 0xef, 0x8a, 0xe5, 0x21, 0x66, 0x60, 0x0d, 0x26, 0x44, 0x81, 0xd2, 0x2d,
+ 0x73, 0x08, 0x8a, 0xaf, 0x72, 0x8a, 0x7c, 0x08, 0xc6, 0x87, 0xe1, 0x61, 0xd7, 0x6b, 0xe2, 0x61,
+ 0x48, 0x5e, 0x17, 0xc3, 0xe0, 0x10, 0x1e, 0xca, 0x3d, 0x6c, 0x6a, 0x07, 0xc3, 0x31, 0x7c, 0x4d,
+ 0x84, 0x52, 0x60, 0x08, 0xc5, 0x0a, 0x8c, 0xb7, 0x54, 0xc7, 0x3d, 0x50, 0x8d, 0xa1, 0xa6, 0xe3,
+ 0xf7, 0x39, 0x47, 0xce, 0x07, 0xf1, 0x88, 0xb4, 0xcd, 0xe3, 0xd0, 0x7c, 0x5d, 0x44, 0x24, 0x04,
+ 0xe3, 0x4b, 0xcf, 0xf5, 0xe8, 0x5d, 0xd9, 0x71, 0xd8, 0xfe, 0x40, 0x2c, 0x3d, 0x86, 0xdd, 0x0c,
+ 0x33, 0x5e, 0x86, 0x8c, 0xab, 0xdf, 0x1a, 0x8a, 0xe6, 0x0f, 0xc5, 0x4c, 0x53, 0x00, 0x01, 0xbf,
+ 0x00, 0xa7, 0x06, 0x6e, 0x13, 0x43, 0x90, 0xfd, 0x11, 0x27, 0x3b, 0x31, 0x60, 0xab, 0xe0, 0x25,
+ 0xe1, 0xb8, 0x94, 0x7f, 0x2c, 0x4a, 0x02, 0xee, 0xe1, 0xda, 0x26, 0x67, 0x05, 0x57, 0xdd, 0x3f,
+ 0x5e, 0xd4, 0xfe, 0x44, 0x44, 0x8d, 0x61, 0xbb, 0xa2, 0xb6, 0x03, 0x27, 0x38, 0xe3, 0xf1, 0xe6,
+ 0xf5, 0x1b, 0xa2, 0xb0, 0x32, 0xf4, 0x6e, 0xf7, 0xec, 0x7e, 0x06, 0x66, 0xfc, 0x70, 0x8a, 0xa6,
+ 0xd4, 0x55, 0x5a, 0xaa, 0x3d, 0x04, 0xf3, 0x37, 0x39, 0xb3, 0xa8, 0xf8, 0x7e, 0x57, 0xeb, 0x6e,
+ 0xaa, 0x36, 0x21, 0x7f, 0x1e, 0x0a, 0x82, 0xbc, 0x6d, 0x3a, 0x58, 0xb3, 0x9a, 0xa6, 0x7e, 0x0b,
+ 0x37, 0x86, 0xa0, 0xfe, 0xd3, 0x9e, 0xa9, 0xda, 0x0d, 0xc1, 0x09, 0xf3, 0x3a, 0x48, 0x7e, 0xaf,
+ 0xa2, 0xe8, 0x2d, 0xdb, 0x72, 0xbc, 0x08, 0xc6, 0x3f, 0x13, 0x33, 0xe5, 0xe3, 0xd6, 0x29, 0xac,
+ 0x5c, 0x85, 0x3c, 0x7d, 0x1c, 0x36, 0x25, 0xff, 0x9c, 0x13, 0x8d, 0x07, 0x28, 0x5e, 0x38, 0x34,
+ 0xab, 0x65, 0xab, 0xce, 0x30, 0xf5, 0xef, 0x2f, 0x44, 0xe1, 0xe0, 0x10, 0x5e, 0x38, 0xbc, 0x8e,
+ 0x8d, 0xc9, 0x6e, 0x3f, 0x04, 0xc3, 0xb7, 0x44, 0xe1, 0x10, 0x18, 0x4e, 0x21, 0x1a, 0x86, 0x21,
+ 0x28, 0xfe, 0x52, 0x50, 0x08, 0x0c, 0xa1, 0xf8, 0x54, 0xb0, 0xd1, 0x3a, 0xb8, 0xa9, 0xbb, 0x9e,
+ 0xc3, 0x5a, 0xe1, 0x7b, 0x53, 0x7d, 0xfb, 0xdd, 0xee, 0x26, 0x4c, 0x0e, 0x41, 0x49, 0x25, 0xe2,
+ 0x57, 0xa8, 0xf4, 0xa4, 0x14, 0xed, 0xd8, 0x77, 0x44, 0x25, 0x0a, 0xc1, 0x88, 0x6f, 0xa1, 0x0e,
+ 0x91, 0x84, 0x5d, 0x23, 0xe7, 0x83, 0x21, 0xe8, 0xbe, 0xdb, 0xe3, 0x5c, 0x5d, 0x60, 0x09, 0x67,
+ 0xa8, 0xff, 0x69, 0x9b, 0xd7, 0x71, 0x67, 0xa8, 0xec, 0xfc, 0xab, 0x9e, 0xfe, 0x67, 0x97, 0x21,
+ 0x59, 0x0d, 0x99, 0xe8, 0xe9, 0xa7, 0x50, 0xd4, 0xaf, 0x80, 0x0a, 0x3f, 0x7d, 0x97, 0x8f, 0xb7,
+ 0xbb, 0x9d, 0x2a, 0x6f, 0x90, 0x24, 0xef, 0x6e, 0x7a, 0xa2, 0xc9, 0x5e, 0xbe, 0xeb, 0xe7, 0x79,
+ 0x57, 0xcf, 0x53, 0xbe, 0x02, 0xe3, 0x5d, 0x0d, 0x4f, 0x34, 0xd5, 0xcf, 0x70, 0xaa, 0x5c, 0xb8,
+ 0xdf, 0x29, 0x2f, 0x41, 0x92, 0x34, 0x2f, 0xd1, 0xf0, 0x9f, 0xe5, 0x70, 0x6a, 0x5e, 0xfe, 0x04,
+ 0xa4, 0x45, 0xd3, 0x12, 0x0d, 0xfd, 0x39, 0x0e, 0xf5, 0x21, 0x04, 0x2e, 0x1a, 0x96, 0x68, 0xf8,
+ 0xcf, 0x0b, 0xb8, 0x80, 0x10, 0xf8, 0xf0, 0x21, 0xfc, 0xeb, 0x5f, 0x48, 0xf2, 0x4d, 0x47, 0xc4,
+ 0xee, 0x32, 0x8c, 0xf1, 0x4e, 0x25, 0x1a, 0xfd, 0x39, 0xfe, 0x72, 0x81, 0x28, 0x5f, 0x80, 0xd4,
+ 0x90, 0x01, 0xff, 0x25, 0x0e, 0x65, 0xf6, 0xe5, 0x15, 0xc8, 0x86, 0xba, 0x93, 0x68, 0xf8, 0x2f,
+ 0x73, 0x78, 0x18, 0x45, 0x5c, 0xe7, 0xdd, 0x49, 0x34, 0xc1, 0xaf, 0x08, 0xd7, 0x39, 0x82, 0x84,
+ 0x4d, 0x34, 0x26, 0xd1, 0xe8, 0x5f, 0x15, 0x51, 0x17, 0x90, 0xf2, 0x33, 0x90, 0xf1, 0x37, 0x9b,
+ 0x68, 0xfc, 0xaf, 0x71, 0x7c, 0x80, 0x21, 0x11, 0x08, 0x6d, 0x76, 0xd1, 0x14, 0x9f, 0x17, 0x11,
+ 0x08, 0xa1, 0xc8, 0x32, 0xea, 0x6d, 0x60, 0xa2, 0x99, 0x7e, 0x5d, 0x2c, 0xa3, 0x9e, 0xfe, 0x85,
+ 0xcc, 0x26, 0xad, 0xf9, 0xd1, 0x14, 0xbf, 0x21, 0x66, 0x93, 0xda, 0x13, 0x37, 0x7a, 0x3b, 0x82,
+ 0x68, 0x8e, 0xdf, 0x14, 0x6e, 0xf4, 0x34, 0x04, 0xe5, 0x6d, 0x40, 0xfd, 0xdd, 0x40, 0x34, 0xdf,
+ 0x17, 0x38, 0xdf, 0x64, 0x5f, 0x33, 0x50, 0x7e, 0x0e, 0x4e, 0x0c, 0xee, 0x04, 0xa2, 0x59, 0xbf,
+ 0x78, 0xb7, 0xe7, 0xec, 0x16, 0x6e, 0x04, 0xca, 0x3b, 0xc1, 0x96, 0x12, 0xee, 0x02, 0xa2, 0x69,
+ 0x5f, 0xb9, 0xdb, 0x5d, 0xb8, 0xc3, 0x4d, 0x40, 0xb9, 0x02, 0x10, 0x6c, 0xc0, 0xd1, 0x5c, 0xaf,
+ 0x72, 0xae, 0x10, 0x88, 0x2c, 0x0d, 0xbe, 0xff, 0x46, 0xe3, 0xbf, 0x24, 0x96, 0x06, 0x47, 0x90,
+ 0xa5, 0x21, 0xb6, 0xde, 0x68, 0xf4, 0x6b, 0x62, 0x69, 0x08, 0x08, 0xc9, 0xec, 0xd0, 0xee, 0x16,
+ 0xcd, 0xf0, 0x65, 0x91, 0xd9, 0x21, 0x54, 0x79, 0x0b, 0x26, 0xfb, 0x36, 0xc4, 0x68, 0xaa, 0xaf,
+ 0x70, 0x2a, 0xa9, 0x77, 0x3f, 0x0c, 0x6f, 0x5e, 0x7c, 0x33, 0x8c, 0x66, 0xfb, 0xdd, 0x9e, 0xcd,
+ 0x8b, 0xef, 0x85, 0xe5, 0xcb, 0x90, 0x36, 0xdb, 0x86, 0x41, 0x16, 0x0f, 0xba, 0xf7, 0x2f, 0xf7,
+ 0x0a, 0xff, 0xfc, 0x01, 0x8f, 0x8e, 0x00, 0x94, 0x97, 0x20, 0x85, 0x5b, 0x7b, 0xb8, 0x11, 0x85,
+ 0xfc, 0x97, 0x0f, 0x44, 0xc1, 0x24, 0xd6, 0xe5, 0x67, 0x00, 0xd8, 0xd5, 0x08, 0xfd, 0xec, 0x17,
+ 0x81, 0xfd, 0xd7, 0x0f, 0xf8, 0x6f, 0x6a, 0x02, 0x48, 0x40, 0xc0, 0x7e, 0xa1, 0x73, 0x6f, 0x82,
+ 0x77, 0xbb, 0x09, 0xe8, 0x8c, 0x5c, 0x82, 0xb1, 0x6b, 0xae, 0x65, 0x7a, 0x6a, 0x33, 0x0a, 0xfd,
+ 0x6f, 0x1c, 0x2d, 0xec, 0x49, 0xc0, 0x5a, 0x96, 0x83, 0x3d, 0xb5, 0xe9, 0x46, 0x61, 0xff, 0x9d,
+ 0x63, 0x7d, 0x00, 0x01, 0x6b, 0xaa, 0xeb, 0x0d, 0x33, 0xee, 0xff, 0x10, 0x60, 0x01, 0x20, 0x4e,
+ 0x93, 0xbf, 0xaf, 0xe3, 0x4e, 0x14, 0xf6, 0x3d, 0xe1, 0x34, 0xb7, 0x2f, 0x7f, 0x02, 0x32, 0xe4,
+ 0x4f, 0xf6, 0x43, 0xb9, 0x08, 0xf0, 0x7f, 0x72, 0x70, 0x80, 0x20, 0x6f, 0x76, 0xbd, 0x86, 0xa7,
+ 0x47, 0x07, 0xfb, 0xbf, 0xf8, 0x4c, 0x0b, 0xfb, 0x72, 0x05, 0xb2, 0xae, 0xd7, 0x68, 0xb4, 0x79,
+ 0x7f, 0x1a, 0x01, 0xff, 0xef, 0x0f, 0xfc, 0x2b, 0x0b, 0x1f, 0x43, 0x66, 0xfb, 0xe6, 0x75, 0xcf,
+ 0xb6, 0xe8, 0x67, 0x8e, 0x28, 0x86, 0xbb, 0x9c, 0x21, 0x04, 0x59, 0xae, 0x0e, 0xbe, 0xbe, 0x85,
+ 0x35, 0x6b, 0xcd, 0x62, 0x17, 0xb7, 0x2f, 0x96, 0xa2, 0x6f, 0x60, 0xe1, 0xfd, 0x34, 0x14, 0x34,
+ 0xab, 0xb5, 0x67, 0xb9, 0xf3, 0x26, 0xd6, 0xbd, 0x03, 0xec, 0xcc, 0x5b, 0x26, 0xe7, 0x43, 0x09,
+ 0xcb, 0xc4, 0x33, 0xc7, 0xbb, 0xc7, 0x2d, 0x9d, 0x82, 0x54, 0xbd, 0xbd, 0xb7, 0xd7, 0x41, 0x12,
+ 0x24, 0xdc, 0xf6, 0x1e, 0xff, 0xb1, 0x15, 0xf9, 0xb3, 0xf4, 0x56, 0x02, 0xc6, 0x2b, 0x86, 0xb1,
+ 0xd3, 0xb1, 0xb1, 0x5b, 0x33, 0x71, 0x6d, 0x1f, 0x15, 0x60, 0x94, 0x0e, 0xf4, 0x69, 0x6a, 0x16,
+ 0xbb, 0x3a, 0x22, 0xf3, 0x67, 0x5f, 0xb3, 0x40, 0x6f, 0xb8, 0xe3, 0xbe, 0x66, 0xc1, 0xd7, 0x9c,
+ 0x63, 0x17, 0xdc, 0xbe, 0xe6, 0x9c, 0xaf, 0x59, 0xa4, 0xd7, 0xdc, 0x09, 0x5f, 0xb3, 0xe8, 0x6b,
+ 0x96, 0xe8, 0x67, 0x9c, 0x71, 0x5f, 0xb3, 0xe4, 0x6b, 0xce, 0xd3, 0x0f, 0x37, 0x49, 0x5f, 0x73,
+ 0xde, 0xd7, 0x5c, 0xa0, 0xdf, 0x6b, 0x26, 0x7d, 0xcd, 0x05, 0x5f, 0x73, 0x91, 0x7e, 0xa3, 0x41,
+ 0xbe, 0xe6, 0xa2, 0xaf, 0xb9, 0x44, 0x7f, 0x55, 0x35, 0xe6, 0x6b, 0x2e, 0xa1, 0x19, 0x18, 0x63,
+ 0x23, 0x7b, 0x8a, 0x7e, 0xc8, 0x9f, 0xb8, 0x3a, 0x22, 0x0b, 0x41, 0xa0, 0x7b, 0x9a, 0xfe, 0x72,
+ 0x6a, 0x34, 0xd0, 0x3d, 0x1d, 0xe8, 0x16, 0xe8, 0x7f, 0xe0, 0x90, 0x02, 0xdd, 0x42, 0xa0, 0x3b,
+ 0x57, 0x18, 0x27, 0xf9, 0x11, 0xe8, 0xce, 0x05, 0xba, 0xc5, 0x42, 0x9e, 0xcc, 0x40, 0xa0, 0x5b,
+ 0x0c, 0x74, 0x4b, 0x85, 0x89, 0x33, 0xb1, 0xd9, 0x5c, 0xa0, 0x5b, 0x42, 0x4f, 0x42, 0xd6, 0x6d,
+ 0xef, 0x29, 0xbc, 0xd2, 0xd3, 0x5f, 0x68, 0x65, 0x17, 0x60, 0x8e, 0xe4, 0x04, 0x9d, 0xd6, 0xab,
+ 0x23, 0x32, 0xb8, 0xed, 0x3d, 0x5e, 0x88, 0x97, 0x73, 0x40, 0xef, 0x9f, 0x14, 0xfa, 0xc3, 0xea,
+ 0xd2, 0x9b, 0x31, 0xc8, 0xec, 0xdc, 0xb4, 0xe8, 0x67, 0x7c, 0xf7, 0xff, 0x78, 0x72, 0x85, 0xd3,
+ 0xe7, 0x16, 0xe9, 0x97, 0xd6, 0xcc, 0xd5, 0x98, 0x2c, 0x04, 0x81, 0x6e, 0xa9, 0xf0, 0x20, 0x1d,
+ 0x90, 0xaf, 0x5b, 0x42, 0xf3, 0x90, 0x0b, 0x0d, 0x68, 0x81, 0xfe, 0x76, 0xaa, 0x7b, 0x44, 0x31,
+ 0x39, 0x1b, 0x8c, 0x68, 0x61, 0x39, 0x05, 0x24, 0xed, 0xc9, 0x3f, 0xde, 0x4d, 0xab, 0xf4, 0xf9,
+ 0x38, 0x64, 0xd9, 0x95, 0x35, 0x1d, 0x15, 0x79, 0x15, 0x3b, 0xd5, 0x74, 0xb8, 0x1b, 0x23, 0xb2,
+ 0x10, 0x20, 0x19, 0x80, 0x99, 0x92, 0x0c, 0x67, 0x9e, 0x2c, 0x3f, 0xf5, 0x0f, 0x6f, 0x9d, 0x7e,
+ 0xe2, 0xc8, 0x15, 0x44, 0x62, 0x37, 0xcf, 0x4a, 0xf8, 0xdc, 0xae, 0x6e, 0x7a, 0x4f, 0x2f, 0x5c,
+ 0x24, 0x01, 0x0e, 0x58, 0xd0, 0x2e, 0xa4, 0x57, 0x54, 0x97, 0xfe, 0xea, 0x92, 0xba, 0x9e, 0x5c,
+ 0xbe, 0xf0, 0x3f, 0x6f, 0x9d, 0x3e, 0x17, 0xc1, 0xc8, 0xab, 0xeb, 0xdc, 0x66, 0x87, 0xb0, 0x9e,
+ 0x5f, 0x24, 0xf0, 0xab, 0x23, 0xb2, 0x4f, 0x85, 0x16, 0x84, 0xab, 0x5b, 0x6a, 0x8b, 0xfd, 0x48,
+ 0x2c, 0xb1, 0x2c, 0x1d, 0xbe, 0x75, 0x3a, 0xb7, 0xd9, 0x09, 0xe4, 0x81, 0x2b, 0xe4, 0x69, 0x39,
+ 0x0d, 0xa3, 0xcc, 0xd5, 0xe5, 0xd5, 0x37, 0xee, 0x14, 0x47, 0xde, 0xbc, 0x53, 0x1c, 0xf9, 0xfb,
+ 0x3b, 0xc5, 0x91, 0xb7, 0xef, 0x14, 0x63, 0xef, 0xdd, 0x29, 0xc6, 0xde, 0xbf, 0x53, 0x8c, 0xdd,
+ 0x3e, 0x2c, 0xc6, 0xbe, 0x76, 0x58, 0x8c, 0x7d, 0xe3, 0xb0, 0x18, 0xfb, 0xf6, 0x61, 0x31, 0xf6,
+ 0xc6, 0x61, 0x71, 0xe4, 0xcd, 0xc3, 0xe2, 0xc8, 0xdb, 0x87, 0xc5, 0xd8, 0x0f, 0x0f, 0x8b, 0x23,
+ 0xef, 0x1d, 0x16, 0x63, 0xef, 0x1f, 0x16, 0x47, 0x6e, 0xff, 0xa0, 0x38, 0xf2, 0xbf, 0x01, 0x00,
+ 0x00, 0xff, 0xff, 0x6b, 0x55, 0xee, 0x1b, 0x6f, 0x37, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -4317,47 +4363,3 @@ func valueToStringOne(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
-
-func init() { proto.RegisterFile("combos/neither/one.proto", fileDescriptor_one_1be15a5672864d55) }
-
-var fileDescriptor_one_1be15a5672864d55 = []byte{
- // 598 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0xbf, 0x4f, 0x1b, 0x3f,
- 0x14, 0x00, 0x70, 0x3f, 0x42, 0x42, 0x70, 0xc2, 0x97, 0x7c, 0x6f, 0x72, 0x19, 0x8c, 0x95, 0xb6,
- 0x92, 0x87, 0x92, 0x90, 0x4b, 0xc2, 0x8f, 0xb1, 0x47, 0x55, 0x65, 0xa1, 0x48, 0x07, 0xcc, 0x28,
- 0x47, 0x4d, 0x88, 0x44, 0xce, 0x08, 0xfb, 0x84, 0xb2, 0xf1, 0x37, 0xf4, 0xaf, 0xe8, 0xd8, 0xb1,
- 0x7f, 0x02, 0x23, 0x63, 0xd5, 0x21, 0xe2, 0xae, 0x4b, 0x47, 0x46, 0xd4, 0xa9, 0xf2, 0x1d, 0xb1,
- 0x2b, 0x55, 0x55, 0x97, 0x4e, 0xb9, 0xf7, 0x3e, 0xe7, 0x97, 0xf7, 0xce, 0x36, 0x26, 0xa7, 0x72,
- 0x12, 0x49, 0xd5, 0x8e, 0xc5, 0x58, 0x9f, 0x8b, 0xab, 0xb6, 0x8c, 0x45, 0xeb, 0xf2, 0x4a, 0x6a,
- 0xe9, 0x95, 0x64, 0x2c, 0xd6, 0x36, 0x46, 0x63, 0x7d, 0x9e, 0x44, 0xad, 0x53, 0x39, 0x69, 0x8f,
- 0xe4, 0x48, 0xb6, 0x73, 0x8b, 0x92, 0xb3, 0x3c, 0xca, 0x83, 0xfc, 0xa9, 0x58, 0xd3, 0x7c, 0x86,
- 0xcb, 0x87, 0x49, 0x14, 0x4d, 0xbd, 0x06, 0x2e, 0xa9, 0x24, 0x22, 0xc0, 0x80, 0x2f, 0x87, 0xe6,
- 0xb1, 0x39, 0x2b, 0xe1, 0x95, 0xd7, 0x17, 0x17, 0x47, 0xd3, 0x4b, 0xa1, 0x0e, 0x62, 0x71, 0x70,
- 0xe6, 0x11, 0x5c, 0x79, 0x3b, 0x16, 0x17, 0xef, 0x3b, 0xf9, 0x6b, 0x30, 0x40, 0xe1, 0x53, 0x6c,
- 0xc5, 0x27, 0x0b, 0x0c, 0xf8, 0x82, 0x15, 0xdf, 0x4a, 0x97, 0x94, 0x18, 0xf0, 0xb2, 0x95, 0xae,
- 0x95, 0x1e, 0x59, 0x64, 0xc0, 0x4b, 0x56, 0x7a, 0x56, 0xfa, 0xa4, 0xcc, 0x80, 0xaf, 0x58, 0xe9,
- 0x5b, 0xd9, 0x22, 0x15, 0x06, 0x7c, 0xd1, 0xca, 0x96, 0x95, 0x6d, 0xb2, 0xc4, 0x80, 0xff, 0x6f,
- 0x65, 0xdb, 0xca, 0x0e, 0xa9, 0x32, 0xe0, 0x9e, 0x95, 0x1d, 0x2b, 0xbb, 0x64, 0x99, 0x01, 0x5f,
- 0xb2, 0xb2, 0xeb, 0xad, 0xe1, 0xa5, 0x62, 0xb2, 0x4d, 0x82, 0x19, 0xf0, 0xd5, 0x01, 0x0a, 0xe7,
- 0x09, 0x67, 0x1d, 0x52, 0x63, 0xc0, 0x2b, 0xce, 0x3a, 0xce, 0x7c, 0x52, 0x67, 0xc0, 0x1b, 0xce,
- 0x7c, 0x67, 0x5d, 0xb2, 0xc2, 0x80, 0x57, 0x9d, 0x75, 0x9d, 0xf5, 0xc8, 0x7f, 0x66, 0x07, 0x9c,
- 0xf5, 0x9c, 0xf5, 0xc9, 0x2a, 0x03, 0x5e, 0x77, 0xd6, 0xf7, 0x36, 0x70, 0x4d, 0x25, 0xd1, 0xc9,
- 0x44, 0x28, 0x35, 0x1c, 0x09, 0xd2, 0x60, 0xc0, 0x6b, 0x3e, 0x6e, 0x99, 0x33, 0x91, 0x6f, 0xeb,
- 0x00, 0x85, 0x58, 0x25, 0xd1, 0x7e, 0xe1, 0x41, 0x1d, 0x63, 0x2d, 0x94, 0x3e, 0x91, 0xb1, 0x90,
- 0x67, 0xcd, 0x3b, 0xc0, 0xcb, 0x47, 0xd7, 0xf2, 0xc0, 0x04, 0xea, 0x1f, 0x6f, 0xee, 0xbc, 0xe9,
- 0x6e, 0x8f, 0x34, 0xf3, 0x81, 0x20, 0x9c, 0x27, 0x9c, 0xf5, 0xc9, 0xf3, 0x7c, 0x20, 0x6b, 0x7d,
- 0xaf, 0x8d, 0xeb, 0xbf, 0x0c, 0xe4, 0x93, 0x17, 0xbf, 0x4d, 0x04, 0x61, 0xcd, 0x4d, 0xe4, 0x07,
- 0x65, 0x6c, 0x8e, 0xbd, 0xf9, 0xd1, 0xd7, 0xb2, 0xf9, 0x61, 0x01, 0xd7, 0xf6, 0x12, 0xa5, 0xe5,
- 0x24, 0x9f, 0xca, 0xfc, 0xd5, 0xa1, 0xbe, 0x1a, 0xc7, 0xa3, 0xe9, 0x53, 0x1b, 0x28, 0x9c, 0x27,
- 0xbc, 0x10, 0xe3, 0xe2, 0x55, 0x73, 0xc2, 0x8b, 0x4e, 0x82, 0xcd, 0xaf, 0xb3, 0xf5, 0x57, 0x7f,
- 0xbc, 0x41, 0xe6, 0xdb, 0xb5, 0x4f, 0xf3, 0x35, 0xad, 0xe3, 0x71, 0xac, 0x3b, 0xfe, 0x8e, 0xf9,
- 0xc0, 0xae, 0x8a, 0x77, 0x8c, 0xab, 0x7b, 0x43, 0xa5, 0xf3, 0x8a, 0xa6, 0xf5, 0xc5, 0x60, 0xfb,
- 0xc7, 0x6c, 0xbd, 0xfb, 0x97, 0x8a, 0x43, 0xa5, 0xf5, 0xf4, 0x52, 0xb4, 0xf6, 0xa7, 0xa6, 0xea,
- 0x56, 0xcf, 0x2c, 0x1f, 0xa0, 0xd0, 0x96, 0xf2, 0xfc, 0x79, 0xab, 0xef, 0x86, 0x13, 0x41, 0x5e,
- 0x9a, 0xeb, 0x12, 0x34, 0xb2, 0xd9, 0x7a, 0x7d, 0x7f, 0xea, 0xf2, 0xae, 0x15, 0x13, 0x05, 0x55,
- 0x5c, 0x29, 0x5a, 0x0d, 0xde, 0xdc, 0xa6, 0x14, 0xdd, 0xa5, 0x14, 0x7d, 0x49, 0x29, 0xba, 0x4f,
- 0x29, 0x3c, 0xa4, 0x14, 0x1e, 0x53, 0x0a, 0x37, 0x19, 0x85, 0x8f, 0x19, 0x85, 0x4f, 0x19, 0x85,
- 0xcf, 0x19, 0x85, 0xdb, 0x8c, 0xa2, 0xbb, 0x8c, 0xa2, 0xfb, 0x8c, 0xc2, 0xf7, 0x8c, 0xa2, 0x87,
- 0x8c, 0xc2, 0x63, 0x46, 0xd1, 0xcd, 0x37, 0x8a, 0x7e, 0x06, 0x00, 0x00, 0xff, 0xff, 0x0e, 0x27,
- 0x4d, 0xb9, 0x78, 0x04, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.pb.go
index 9a7f268209..3c1c96edd2 100644
--- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.pb.go
@@ -3,25 +3,23 @@
package one
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
-import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
-import encoding_binary "encoding/binary"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype"
+ github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -44,7 +42,7 @@ type Subby struct {
func (m *Subby) Reset() { *m = Subby{} }
func (*Subby) ProtoMessage() {}
func (*Subby) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_539b073fce05cef9, []int{0}
+ return fileDescriptor_9eef12518f7c4f58, []int{0}
}
func (m *Subby) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -52,8 +50,8 @@ func (m *Subby) XXX_Unmarshal(b []byte) error {
func (m *Subby) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Subby.Marshal(b, m, deterministic)
}
-func (dst *Subby) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Subby.Merge(dst, src)
+func (m *Subby) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Subby.Merge(m, src)
}
func (m *Subby) XXX_Size() int {
return xxx_messageInfo_Subby.Size(m)
@@ -91,7 +89,7 @@ type AllTypesOneOf struct {
func (m *AllTypesOneOf) Reset() { *m = AllTypesOneOf{} }
func (*AllTypesOneOf) ProtoMessage() {}
func (*AllTypesOneOf) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_539b073fce05cef9, []int{1}
+ return fileDescriptor_9eef12518f7c4f58, []int{1}
}
func (m *AllTypesOneOf) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -99,8 +97,8 @@ func (m *AllTypesOneOf) XXX_Unmarshal(b []byte) error {
func (m *AllTypesOneOf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AllTypesOneOf.Marshal(b, m, deterministic)
}
-func (dst *AllTypesOneOf) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllTypesOneOf.Merge(dst, src)
+func (m *AllTypesOneOf) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllTypesOneOf.Merge(m, src)
}
func (m *AllTypesOneOf) XXX_Size() int {
return xxx_messageInfo_AllTypesOneOf.Size(m)
@@ -593,7 +591,7 @@ type TwoOneofs struct {
func (m *TwoOneofs) Reset() { *m = TwoOneofs{} }
func (*TwoOneofs) ProtoMessage() {}
func (*TwoOneofs) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_539b073fce05cef9, []int{2}
+ return fileDescriptor_9eef12518f7c4f58, []int{2}
}
func (m *TwoOneofs) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -601,8 +599,8 @@ func (m *TwoOneofs) XXX_Unmarshal(b []byte) error {
func (m *TwoOneofs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_TwoOneofs.Marshal(b, m, deterministic)
}
-func (dst *TwoOneofs) XXX_Merge(src proto.Message) {
- xxx_messageInfo_TwoOneofs.Merge(dst, src)
+func (m *TwoOneofs) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_TwoOneofs.Merge(m, src)
}
func (m *TwoOneofs) XXX_Size() int {
return xxx_messageInfo_TwoOneofs.Size(m)
@@ -861,7 +859,7 @@ type CustomOneof struct {
func (m *CustomOneof) Reset() { *m = CustomOneof{} }
func (*CustomOneof) ProtoMessage() {}
func (*CustomOneof) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_539b073fce05cef9, []int{3}
+ return fileDescriptor_9eef12518f7c4f58, []int{3}
}
func (m *CustomOneof) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -869,8 +867,8 @@ func (m *CustomOneof) XXX_Unmarshal(b []byte) error {
func (m *CustomOneof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomOneof.Marshal(b, m, deterministic)
}
-func (dst *CustomOneof) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomOneof.Merge(dst, src)
+func (m *CustomOneof) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomOneof.Merge(m, src)
}
func (m *CustomOneof) XXX_Size() int {
return xxx_messageInfo_CustomOneof.Size(m)
@@ -1044,6 +1042,51 @@ func init() {
proto.RegisterType((*TwoOneofs)(nil), "one.TwoOneofs")
proto.RegisterType((*CustomOneof)(nil), "one.CustomOneof")
}
+
+func init() { proto.RegisterFile("combos/unmarshaler/one.proto", fileDescriptor_9eef12518f7c4f58) }
+
+var fileDescriptor_9eef12518f7c4f58 = []byte{
+ // 602 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0x3f, 0x4f, 0x1b, 0x31,
+ 0x14, 0x00, 0x70, 0x3f, 0x42, 0x42, 0x70, 0x42, 0x49, 0x6f, 0x72, 0x51, 0x65, 0xac, 0xb4, 0x95,
+ 0x3c, 0x94, 0x84, 0x5c, 0x12, 0xfe, 0x8c, 0x3d, 0xaa, 0x2a, 0x0b, 0x45, 0x3a, 0x60, 0x46, 0x39,
+ 0x6a, 0x42, 0xa4, 0xe4, 0x8c, 0xe2, 0x3b, 0xa1, 0x6c, 0x7c, 0x86, 0x7e, 0x8a, 0x8e, 0x1d, 0xfb,
+ 0x11, 0x18, 0x33, 0x56, 0x1d, 0x22, 0xee, 0xba, 0x74, 0x64, 0x44, 0x9d, 0x2a, 0xdf, 0x11, 0xbb,
+ 0x52, 0x55, 0x75, 0xe9, 0x94, 0x7b, 0xef, 0x77, 0x7e, 0x79, 0xef, 0x6c, 0xe3, 0xe7, 0xe7, 0x72,
+ 0x1c, 0x48, 0xd5, 0x8c, 0xc3, 0x71, 0x7f, 0xa2, 0x2e, 0xfb, 0x23, 0x31, 0x69, 0xca, 0x50, 0x34,
+ 0xae, 0x26, 0x32, 0x92, 0x4e, 0x41, 0x86, 0x62, 0x63, 0x6b, 0x30, 0x8c, 0x2e, 0xe3, 0xa0, 0x71,
+ 0x2e, 0xc7, 0xcd, 0x81, 0x1c, 0xc8, 0x66, 0x66, 0x41, 0x7c, 0x91, 0x45, 0x59, 0x90, 0x3d, 0xe5,
+ 0x6b, 0xea, 0xcf, 0x70, 0xf1, 0x38, 0x0e, 0x82, 0xa9, 0x53, 0xc3, 0x05, 0x15, 0x07, 0x04, 0x18,
+ 0xf0, 0x55, 0x5f, 0x3f, 0xd6, 0xe7, 0x05, 0xbc, 0xf6, 0x66, 0x34, 0x3a, 0x99, 0x5e, 0x09, 0x75,
+ 0x14, 0x8a, 0xa3, 0x0b, 0x87, 0xe0, 0xd2, 0xbb, 0xa1, 0x18, 0x7d, 0x68, 0x65, 0xaf, 0x41, 0x0f,
+ 0xf9, 0x8f, 0xb1, 0x11, 0x97, 0x2c, 0x31, 0xe0, 0x4b, 0x46, 0x5c, 0x23, 0x6d, 0x52, 0x60, 0xc0,
+ 0x8b, 0x46, 0xda, 0x46, 0x3a, 0x64, 0x99, 0x01, 0x2f, 0x18, 0xe9, 0x18, 0xe9, 0x92, 0x22, 0x03,
+ 0xbe, 0x66, 0xa4, 0x6b, 0x64, 0x87, 0x94, 0x18, 0xf0, 0x65, 0x23, 0x3b, 0x46, 0x76, 0xc9, 0x0a,
+ 0x03, 0xfe, 0xd4, 0xc8, 0xae, 0x91, 0x3d, 0x52, 0x66, 0xc0, 0x1d, 0x23, 0x7b, 0x46, 0xf6, 0xc9,
+ 0x2a, 0x03, 0xbe, 0x62, 0x64, 0xdf, 0xd9, 0xc0, 0x2b, 0xf9, 0x64, 0xdb, 0x04, 0x33, 0xe0, 0xeb,
+ 0x3d, 0xe4, 0x2f, 0x12, 0xd6, 0x5a, 0xa4, 0xc2, 0x80, 0x97, 0xac, 0xb5, 0xac, 0xb9, 0xa4, 0xca,
+ 0x80, 0xd7, 0xac, 0xb9, 0xd6, 0xda, 0x64, 0x8d, 0x01, 0x2f, 0x5b, 0x6b, 0x5b, 0xeb, 0x90, 0x27,
+ 0x7a, 0x07, 0xac, 0x75, 0xac, 0x75, 0xc9, 0x3a, 0x03, 0x5e, 0xb5, 0xd6, 0x75, 0xb6, 0x70, 0x45,
+ 0xc5, 0xc1, 0xd9, 0x58, 0x28, 0xd5, 0x1f, 0x08, 0x52, 0x63, 0xc0, 0x2b, 0x2e, 0x6e, 0xe8, 0x33,
+ 0x91, 0x6d, 0x6b, 0x0f, 0xf9, 0x58, 0xc5, 0xc1, 0x61, 0xee, 0x5e, 0x15, 0xe3, 0x48, 0xa8, 0xe8,
+ 0x4c, 0x86, 0x42, 0x5e, 0xd4, 0x67, 0x80, 0x57, 0x4f, 0xae, 0xe5, 0x91, 0x0e, 0xd4, 0x7f, 0xde,
+ 0xdc, 0x45, 0xd3, 0xed, 0x0e, 0xa9, 0x67, 0x03, 0x81, 0xbf, 0x48, 0x58, 0xeb, 0x92, 0x17, 0xd9,
+ 0x40, 0xc6, 0xba, 0x4e, 0x13, 0x57, 0x7f, 0x1b, 0xc8, 0x25, 0x2f, 0xff, 0x98, 0x08, 0xfc, 0x8a,
+ 0x9d, 0xc8, 0xf5, 0x8a, 0x58, 0x1f, 0x7b, 0xfd, 0x13, 0x5d, 0xcb, 0xfa, 0xc7, 0x25, 0x5c, 0x39,
+ 0x88, 0x55, 0x24, 0xc7, 0xd9, 0x54, 0xfa, 0xaf, 0x8e, 0xa3, 0xc9, 0x30, 0x1c, 0x4c, 0x1f, 0xdb,
+ 0x40, 0xfe, 0x22, 0xe1, 0xf8, 0x18, 0xe7, 0xaf, 0xea, 0x13, 0x9e, 0x77, 0xe2, 0x6d, 0x7f, 0x9b,
+ 0x6f, 0xbe, 0xfe, 0xeb, 0x0d, 0xd2, 0xdf, 0xae, 0x79, 0x9e, 0xad, 0x69, 0x9c, 0x0e, 0xc3, 0xa8,
+ 0xe5, 0xee, 0xe9, 0x0f, 0x6c, 0xab, 0x38, 0xa7, 0xb8, 0x7c, 0xd0, 0x57, 0x51, 0x56, 0x51, 0xb7,
+ 0xbe, 0xec, 0xed, 0xfe, 0x9c, 0x6f, 0xb6, 0xff, 0x51, 0xb1, 0xaf, 0xa2, 0x68, 0x7a, 0x25, 0x1a,
+ 0x87, 0x53, 0x5d, 0x75, 0xa7, 0xa3, 0x97, 0xf7, 0x90, 0x6f, 0x4a, 0x39, 0xee, 0xa2, 0xd5, 0xf7,
+ 0xfd, 0xb1, 0x20, 0xaf, 0xf4, 0x75, 0xf1, 0x6a, 0xe9, 0x7c, 0xb3, 0x7a, 0x38, 0xb5, 0x79, 0xdb,
+ 0x8a, 0x8e, 0xbc, 0x32, 0x2e, 0xe5, 0xad, 0x7a, 0x6f, 0x6f, 0x13, 0x8a, 0x66, 0x09, 0x45, 0x5f,
+ 0x13, 0x8a, 0xee, 0x12, 0x0a, 0xf7, 0x09, 0x85, 0x87, 0x84, 0xc2, 0x4d, 0x4a, 0xe1, 0x53, 0x4a,
+ 0xe1, 0x73, 0x4a, 0xe1, 0x4b, 0x4a, 0xe1, 0x36, 0xa5, 0x68, 0x96, 0x52, 0xb8, 0x4b, 0x29, 0xfc,
+ 0x48, 0x29, 0xba, 0x4f, 0x29, 0x3c, 0xa4, 0x14, 0xdd, 0x7c, 0xa7, 0xe8, 0x57, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xdd, 0x1c, 0x58, 0x6c, 0x7c, 0x04, 0x00, 0x00,
+}
+
func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return OneDescription()
}
@@ -1059,274 +1102,276 @@ func (this *CustomOneof) Description() (desc *github_com_gogo_protobuf_protoc_ge
func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4263 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x24, 0xd7,
- 0x55, 0x56, 0xcf, 0x8f, 0x34, 0x73, 0x66, 0x34, 0x6a, 0x5d, 0xc9, 0xeb, 0x59, 0xd9, 0xd6, 0xee,
- 0x8e, 0xed, 0x58, 0xb6, 0x63, 0xc9, 0xd6, 0x4a, 0xfb, 0x33, 0x4b, 0x62, 0x46, 0xd2, 0xac, 0x56,
- 0x46, 0xd2, 0x28, 0x3d, 0x52, 0xfc, 0x93, 0xa2, 0xba, 0x5a, 0x3d, 0x57, 0xa3, 0xde, 0xed, 0xe9,
- 0xee, 0x74, 0xf7, 0xec, 0x5a, 0x5b, 0x3c, 0x2c, 0x65, 0x7e, 0x2a, 0x45, 0xf1, 0x17, 0xa8, 0x22,
- 0x31, 0x8e, 0x21, 0xa1, 0x88, 0x43, 0xf8, 0x4b, 0x08, 0x84, 0x24, 0xbc, 0xf0, 0x12, 0xf0, 0x13,
- 0xe5, 0xbc, 0x51, 0x14, 0xe5, 0xf2, 0x2a, 0xae, 0x22, 0x80, 0x21, 0x06, 0xf6, 0xc1, 0x85, 0x79,
- 0xa0, 0xee, 0x5f, 0x77, 0xcf, 0x8f, 0xb6, 0x47, 0xa9, 0xd8, 0x79, 0x5a, 0xf5, 0x39, 0xe7, 0xfb,
- 0xfa, 0xdc, 0x73, 0xcf, 0x3d, 0xf7, 0xdc, 0xdb, 0xb3, 0xf0, 0xc3, 0x8b, 0x70, 0xba, 0x69, 0xdb,
- 0x4d, 0x13, 0xcf, 0x39, 0xae, 0xed, 0xdb, 0xbb, 0xed, 0xbd, 0xb9, 0x06, 0xf6, 0x74, 0xd7, 0x70,
- 0x7c, 0xdb, 0x9d, 0xa5, 0x32, 0x34, 0xc6, 0x2c, 0x66, 0x85, 0x45, 0x69, 0x03, 0xc6, 0x2f, 0x1b,
- 0x26, 0x5e, 0x09, 0x0c, 0xeb, 0xd8, 0x47, 0x17, 0x20, 0xb5, 0x67, 0x98, 0xb8, 0x28, 0x9d, 0x4e,
- 0xce, 0xe4, 0xe6, 0x1f, 0x9a, 0xed, 0x02, 0xcd, 0x76, 0x22, 0xb6, 0x88, 0x58, 0xa1, 0x88, 0xd2,
- 0xdb, 0x29, 0x98, 0xe8, 0xa3, 0x45, 0x08, 0x52, 0x96, 0xd6, 0x22, 0x8c, 0xd2, 0x4c, 0x56, 0xa1,
- 0x7f, 0xa3, 0x22, 0x8c, 0x38, 0x9a, 0x7e, 0x4d, 0x6b, 0xe2, 0x62, 0x82, 0x8a, 0xc5, 0x23, 0x9a,
- 0x06, 0x68, 0x60, 0x07, 0x5b, 0x0d, 0x6c, 0xe9, 0x07, 0xc5, 0xe4, 0xe9, 0xe4, 0x4c, 0x56, 0x89,
- 0x48, 0xd0, 0xe3, 0x30, 0xee, 0xb4, 0x77, 0x4d, 0x43, 0x57, 0x23, 0x66, 0x70, 0x3a, 0x39, 0x93,
- 0x56, 0x64, 0xa6, 0x58, 0x09, 0x8d, 0x1f, 0x81, 0xb1, 0x1b, 0x58, 0xbb, 0x16, 0x35, 0xcd, 0x51,
- 0xd3, 0x02, 0x11, 0x47, 0x0c, 0x97, 0x21, 0xdf, 0xc2, 0x9e, 0xa7, 0x35, 0xb1, 0xea, 0x1f, 0x38,
- 0xb8, 0x98, 0xa2, 0xa3, 0x3f, 0xdd, 0x33, 0xfa, 0xee, 0x91, 0xe7, 0x38, 0x6a, 0xfb, 0xc0, 0xc1,
- 0xa8, 0x02, 0x59, 0x6c, 0xb5, 0x5b, 0x8c, 0x21, 0x7d, 0x44, 0xfc, 0xaa, 0x56, 0xbb, 0xd5, 0xcd,
- 0x92, 0x21, 0x30, 0x4e, 0x31, 0xe2, 0x61, 0xf7, 0xba, 0xa1, 0xe3, 0xe2, 0x30, 0x25, 0x78, 0xa4,
- 0x87, 0xa0, 0xce, 0xf4, 0xdd, 0x1c, 0x02, 0x87, 0x96, 0x21, 0x8b, 0x5f, 0xf4, 0xb1, 0xe5, 0x19,
- 0xb6, 0x55, 0x1c, 0xa1, 0x24, 0x0f, 0xf7, 0x99, 0x45, 0x6c, 0x36, 0xba, 0x29, 0x42, 0x1c, 0x3a,
- 0x07, 0x23, 0xb6, 0xe3, 0x1b, 0xb6, 0xe5, 0x15, 0x33, 0xa7, 0xa5, 0x99, 0xdc, 0xfc, 0xfd, 0x7d,
- 0x13, 0xa1, 0xc6, 0x6c, 0x14, 0x61, 0x8c, 0xd6, 0x40, 0xf6, 0xec, 0xb6, 0xab, 0x63, 0x55, 0xb7,
- 0x1b, 0x58, 0x35, 0xac, 0x3d, 0xbb, 0x98, 0xa5, 0x04, 0xa7, 0x7a, 0x07, 0x42, 0x0d, 0x97, 0xed,
- 0x06, 0x5e, 0xb3, 0xf6, 0x6c, 0xa5, 0xe0, 0x75, 0x3c, 0xa3, 0x13, 0x30, 0xec, 0x1d, 0x58, 0xbe,
- 0xf6, 0x62, 0x31, 0x4f, 0x33, 0x84, 0x3f, 0x95, 0xbe, 0x3d, 0x0c, 0x63, 0x83, 0xa4, 0xd8, 0x25,
- 0x48, 0xef, 0x91, 0x51, 0x16, 0x13, 0xc7, 0x89, 0x01, 0xc3, 0x74, 0x06, 0x71, 0xf8, 0x47, 0x0c,
- 0x62, 0x05, 0x72, 0x16, 0xf6, 0x7c, 0xdc, 0x60, 0x19, 0x91, 0x1c, 0x30, 0xa7, 0x80, 0x81, 0x7a,
- 0x53, 0x2a, 0xf5, 0x23, 0xa5, 0xd4, 0x73, 0x30, 0x16, 0xb8, 0xa4, 0xba, 0x9a, 0xd5, 0x14, 0xb9,
- 0x39, 0x17, 0xe7, 0xc9, 0x6c, 0x55, 0xe0, 0x14, 0x02, 0x53, 0x0a, 0xb8, 0xe3, 0x19, 0xad, 0x00,
- 0xd8, 0x16, 0xb6, 0xf7, 0xd4, 0x06, 0xd6, 0xcd, 0x62, 0xe6, 0x88, 0x28, 0xd5, 0x88, 0x49, 0x4f,
- 0x94, 0x6c, 0x26, 0xd5, 0x4d, 0x74, 0x31, 0x4c, 0xb5, 0x91, 0x23, 0x32, 0x65, 0x83, 0x2d, 0xb2,
- 0x9e, 0x6c, 0xdb, 0x81, 0x82, 0x8b, 0x49, 0xde, 0xe3, 0x06, 0x1f, 0x59, 0x96, 0x3a, 0x31, 0x1b,
- 0x3b, 0x32, 0x85, 0xc3, 0xd8, 0xc0, 0x46, 0xdd, 0xe8, 0x23, 0x7a, 0x10, 0x02, 0x81, 0x4a, 0xd3,
- 0x0a, 0x68, 0x15, 0xca, 0x0b, 0xe1, 0xa6, 0xd6, 0xc2, 0x53, 0x37, 0xa1, 0xd0, 0x19, 0x1e, 0x34,
- 0x09, 0x69, 0xcf, 0xd7, 0x5c, 0x9f, 0x66, 0x61, 0x5a, 0x61, 0x0f, 0x48, 0x86, 0x24, 0xb6, 0x1a,
- 0xb4, 0xca, 0xa5, 0x15, 0xf2, 0x27, 0xfa, 0xe9, 0x70, 0xc0, 0x49, 0x3a, 0xe0, 0x8f, 0xf4, 0xce,
- 0x68, 0x07, 0x73, 0xf7, 0xb8, 0xa7, 0xce, 0xc3, 0x68, 0xc7, 0x00, 0x06, 0x7d, 0x75, 0xe9, 0xe7,
- 0xe0, 0x9e, 0xbe, 0xd4, 0xe8, 0x39, 0x98, 0x6c, 0x5b, 0x86, 0xe5, 0x63, 0xd7, 0x71, 0x31, 0xc9,
- 0x58, 0xf6, 0xaa, 0xe2, 0xbf, 0x8c, 0x1c, 0x91, 0x73, 0x3b, 0x51, 0x6b, 0xc6, 0xa2, 0x4c, 0xb4,
- 0x7b, 0x85, 0x8f, 0x65, 0x33, 0x3f, 0x18, 0x91, 0x6f, 0xdd, 0xba, 0x75, 0x2b, 0x51, 0xfa, 0xdc,
- 0x30, 0x4c, 0xf6, 0x5b, 0x33, 0x7d, 0x97, 0xef, 0x09, 0x18, 0xb6, 0xda, 0xad, 0x5d, 0xec, 0xd2,
- 0x20, 0xa5, 0x15, 0xfe, 0x84, 0x2a, 0x90, 0x36, 0xb5, 0x5d, 0x6c, 0x16, 0x53, 0xa7, 0xa5, 0x99,
- 0xc2, 0xfc, 0xe3, 0x03, 0xad, 0xca, 0xd9, 0x75, 0x02, 0x51, 0x18, 0x12, 0x7d, 0x1c, 0x52, 0xbc,
- 0x44, 0x13, 0x86, 0xc7, 0x06, 0x63, 0x20, 0x6b, 0x49, 0xa1, 0x38, 0x74, 0x1f, 0x64, 0xc9, 0xbf,
- 0x2c, 0x37, 0x86, 0xa9, 0xcf, 0x19, 0x22, 0x20, 0x79, 0x81, 0xa6, 0x20, 0x43, 0x97, 0x49, 0x03,
- 0x8b, 0xad, 0x2d, 0x78, 0x26, 0x89, 0xd5, 0xc0, 0x7b, 0x5a, 0xdb, 0xf4, 0xd5, 0xeb, 0x9a, 0xd9,
- 0xc6, 0x34, 0xe1, 0xb3, 0x4a, 0x9e, 0x0b, 0x3f, 0x49, 0x64, 0xe8, 0x14, 0xe4, 0xd8, 0xaa, 0x32,
- 0xac, 0x06, 0x7e, 0x91, 0x56, 0xcf, 0xb4, 0xc2, 0x16, 0xda, 0x1a, 0x91, 0x90, 0xd7, 0x5f, 0xf5,
- 0x6c, 0x4b, 0xa4, 0x26, 0x7d, 0x05, 0x11, 0xd0, 0xd7, 0x9f, 0xef, 0x2e, 0xdc, 0x0f, 0xf4, 0x1f,
- 0x5e, 0x77, 0x4e, 0x95, 0xbe, 0x99, 0x80, 0x14, 0xad, 0x17, 0x63, 0x90, 0xdb, 0x7e, 0x7e, 0xab,
- 0xaa, 0xae, 0xd4, 0x76, 0x96, 0xd6, 0xab, 0xb2, 0x84, 0x0a, 0x00, 0x54, 0x70, 0x79, 0xbd, 0x56,
- 0xd9, 0x96, 0x13, 0xc1, 0xf3, 0xda, 0xe6, 0xf6, 0xb9, 0x05, 0x39, 0x19, 0x00, 0x76, 0x98, 0x20,
- 0x15, 0x35, 0x38, 0x3b, 0x2f, 0xa7, 0x91, 0x0c, 0x79, 0x46, 0xb0, 0xf6, 0x5c, 0x75, 0xe5, 0xdc,
- 0x82, 0x3c, 0xdc, 0x29, 0x39, 0x3b, 0x2f, 0x8f, 0xa0, 0x51, 0xc8, 0x52, 0xc9, 0x52, 0xad, 0xb6,
- 0x2e, 0x67, 0x02, 0xce, 0xfa, 0xb6, 0xb2, 0xb6, 0xb9, 0x2a, 0x67, 0x03, 0xce, 0x55, 0xa5, 0xb6,
- 0xb3, 0x25, 0x43, 0xc0, 0xb0, 0x51, 0xad, 0xd7, 0x2b, 0xab, 0x55, 0x39, 0x17, 0x58, 0x2c, 0x3d,
- 0xbf, 0x5d, 0xad, 0xcb, 0xf9, 0x0e, 0xb7, 0xce, 0xce, 0xcb, 0xa3, 0xc1, 0x2b, 0xaa, 0x9b, 0x3b,
- 0x1b, 0x72, 0x01, 0x8d, 0xc3, 0x28, 0x7b, 0x85, 0x70, 0x62, 0xac, 0x4b, 0x74, 0x6e, 0x41, 0x96,
- 0x43, 0x47, 0x18, 0xcb, 0x78, 0x87, 0xe0, 0xdc, 0x82, 0x8c, 0x4a, 0xcb, 0x90, 0xa6, 0xd9, 0x85,
- 0x10, 0x14, 0xd6, 0x2b, 0x4b, 0xd5, 0x75, 0xb5, 0xb6, 0xb5, 0xbd, 0x56, 0xdb, 0xac, 0xac, 0xcb,
- 0x52, 0x28, 0x53, 0xaa, 0x9f, 0xd8, 0x59, 0x53, 0xaa, 0x2b, 0x72, 0x22, 0x2a, 0xdb, 0xaa, 0x56,
- 0xb6, 0xab, 0x2b, 0x72, 0xb2, 0xa4, 0xc3, 0x64, 0xbf, 0x3a, 0xd9, 0x77, 0x65, 0x44, 0xa6, 0x38,
- 0x71, 0xc4, 0x14, 0x53, 0xae, 0x9e, 0x29, 0xfe, 0x7e, 0x02, 0x26, 0xfa, 0xec, 0x15, 0x7d, 0x5f,
- 0xf2, 0x34, 0xa4, 0x59, 0x8a, 0xb2, 0xdd, 0xf3, 0xd1, 0xbe, 0x9b, 0x0e, 0x4d, 0xd8, 0x9e, 0x1d,
- 0x94, 0xe2, 0xa2, 0x1d, 0x44, 0xf2, 0x88, 0x0e, 0x82, 0x50, 0xf4, 0xd4, 0xf4, 0x9f, 0xed, 0xa9,
- 0xe9, 0x6c, 0xdb, 0x3b, 0x37, 0xc8, 0xb6, 0x47, 0x65, 0xc7, 0xab, 0xed, 0xe9, 0x3e, 0xb5, 0xfd,
- 0x12, 0x8c, 0xf7, 0x10, 0x0d, 0x5c, 0x63, 0x5f, 0x92, 0xa0, 0x78, 0x54, 0x70, 0x62, 0x2a, 0x5d,
- 0xa2, 0xa3, 0xd2, 0x5d, 0xea, 0x8e, 0xe0, 0x99, 0xa3, 0x27, 0xa1, 0x67, 0xae, 0x5f, 0x93, 0xe0,
- 0x44, 0xff, 0x4e, 0xb1, 0xaf, 0x0f, 0x1f, 0x87, 0xe1, 0x16, 0xf6, 0xf7, 0x6d, 0xd1, 0x2d, 0x7d,
- 0xa4, 0xcf, 0x1e, 0x4c, 0xd4, 0xdd, 0x93, 0xcd, 0x51, 0xd1, 0x4d, 0x3c, 0x79, 0x54, 0xbb, 0xc7,
- 0xbc, 0xe9, 0xf1, 0xf4, 0x33, 0x09, 0xb8, 0xa7, 0x2f, 0x79, 0x5f, 0x47, 0x1f, 0x00, 0x30, 0x2c,
- 0xa7, 0xed, 0xb3, 0x8e, 0x88, 0x15, 0xd8, 0x2c, 0x95, 0xd0, 0xe2, 0x45, 0x8a, 0x67, 0xdb, 0x0f,
- 0xf4, 0x49, 0xaa, 0x07, 0x26, 0xa2, 0x06, 0x17, 0x42, 0x47, 0x53, 0xd4, 0xd1, 0xe9, 0x23, 0x46,
- 0xda, 0x93, 0x98, 0x4f, 0x82, 0xac, 0x9b, 0x06, 0xb6, 0x7c, 0xd5, 0xf3, 0x5d, 0xac, 0xb5, 0x0c,
- 0xab, 0x49, 0x77, 0x90, 0x4c, 0x39, 0xbd, 0xa7, 0x99, 0x1e, 0x56, 0xc6, 0x98, 0xba, 0x2e, 0xb4,
- 0x04, 0x41, 0x13, 0xc8, 0x8d, 0x20, 0x86, 0x3b, 0x10, 0x4c, 0x1d, 0x20, 0x4a, 0xdf, 0xc8, 0x40,
- 0x2e, 0xd2, 0x57, 0xa3, 0x33, 0x90, 0xbf, 0xaa, 0x5d, 0xd7, 0x54, 0x71, 0x56, 0x62, 0x91, 0xc8,
- 0x11, 0xd9, 0x16, 0x3f, 0x2f, 0x3d, 0x09, 0x93, 0xd4, 0xc4, 0x6e, 0xfb, 0xd8, 0x55, 0x75, 0x53,
- 0xf3, 0x3c, 0x1a, 0xb4, 0x0c, 0x35, 0x45, 0x44, 0x57, 0x23, 0xaa, 0x65, 0xa1, 0x41, 0x8b, 0x30,
- 0x41, 0x11, 0xad, 0xb6, 0xe9, 0x1b, 0x8e, 0x89, 0x55, 0x72, 0x7a, 0xf3, 0xe8, 0x4e, 0x12, 0x78,
- 0x36, 0x4e, 0x2c, 0x36, 0xb8, 0x01, 0xf1, 0xc8, 0x43, 0x2b, 0xf0, 0x00, 0x85, 0x35, 0xb1, 0x85,
- 0x5d, 0xcd, 0xc7, 0x2a, 0xfe, 0x74, 0x5b, 0x33, 0x3d, 0x55, 0xb3, 0x1a, 0xea, 0xbe, 0xe6, 0xed,
- 0x17, 0x27, 0x09, 0xc1, 0x52, 0xa2, 0x28, 0x29, 0x27, 0x89, 0xe1, 0x2a, 0xb7, 0xab, 0x52, 0xb3,
- 0x8a, 0xd5, 0xb8, 0xa2, 0x79, 0xfb, 0xa8, 0x0c, 0x27, 0x28, 0x8b, 0xe7, 0xbb, 0x86, 0xd5, 0x54,
- 0xf5, 0x7d, 0xac, 0x5f, 0x53, 0xdb, 0xfe, 0xde, 0x85, 0xe2, 0x7d, 0xd1, 0xf7, 0x53, 0x0f, 0xeb,
- 0xd4, 0x66, 0x99, 0x98, 0xec, 0xf8, 0x7b, 0x17, 0x50, 0x1d, 0xf2, 0x64, 0x32, 0x5a, 0xc6, 0x4d,
- 0xac, 0xee, 0xd9, 0x2e, 0xdd, 0x1a, 0x0b, 0x7d, 0x4a, 0x53, 0x24, 0x82, 0xb3, 0x35, 0x0e, 0xd8,
- 0xb0, 0x1b, 0xb8, 0x9c, 0xae, 0x6f, 0x55, 0xab, 0x2b, 0x4a, 0x4e, 0xb0, 0x5c, 0xb6, 0x5d, 0x92,
- 0x50, 0x4d, 0x3b, 0x08, 0x70, 0x8e, 0x25, 0x54, 0xd3, 0x16, 0xe1, 0x5d, 0x84, 0x09, 0x5d, 0x67,
- 0x63, 0x36, 0x74, 0x95, 0x9f, 0xb1, 0xbc, 0xa2, 0xdc, 0x11, 0x2c, 0x5d, 0x5f, 0x65, 0x06, 0x3c,
- 0xc7, 0x3d, 0x74, 0x11, 0xee, 0x09, 0x83, 0x15, 0x05, 0x8e, 0xf7, 0x8c, 0xb2, 0x1b, 0xba, 0x08,
- 0x13, 0xce, 0x41, 0x2f, 0x10, 0x75, 0xbc, 0xd1, 0x39, 0xe8, 0x86, 0x9d, 0x87, 0x49, 0x67, 0xdf,
- 0xe9, 0xc5, 0x3d, 0x16, 0xc5, 0x21, 0x67, 0xdf, 0xe9, 0x06, 0x3e, 0x4c, 0x0f, 0xdc, 0x2e, 0xd6,
- 0x35, 0x1f, 0x37, 0x8a, 0xf7, 0x46, 0xcd, 0x23, 0x0a, 0x34, 0x07, 0xb2, 0xae, 0xab, 0xd8, 0xd2,
- 0x76, 0x4d, 0xac, 0x6a, 0x2e, 0xb6, 0x34, 0xaf, 0x78, 0x2a, 0x6a, 0x5c, 0xd0, 0xf5, 0x2a, 0xd5,
- 0x56, 0xa8, 0x12, 0x3d, 0x06, 0xe3, 0xf6, 0xee, 0x55, 0x9d, 0xa5, 0xa4, 0xea, 0xb8, 0x78, 0xcf,
- 0x78, 0xb1, 0xf8, 0x10, 0x8d, 0xef, 0x18, 0x51, 0xd0, 0x84, 0xdc, 0xa2, 0x62, 0xf4, 0x28, 0xc8,
- 0xba, 0xb7, 0xaf, 0xb9, 0x0e, 0xad, 0xc9, 0x9e, 0xa3, 0xe9, 0xb8, 0xf8, 0x30, 0x33, 0x65, 0xf2,
- 0x4d, 0x21, 0x26, 0x4b, 0xc2, 0xbb, 0x61, 0xec, 0xf9, 0x82, 0xf1, 0x11, 0xb6, 0x24, 0xa8, 0x8c,
- 0xb3, 0xcd, 0x80, 0x4c, 0x42, 0xd1, 0xf1, 0xe2, 0x19, 0x6a, 0x56, 0x70, 0xf6, 0x9d, 0xe8, 0x7b,
- 0x1f, 0x84, 0x51, 0x62, 0x19, 0xbe, 0xf4, 0x51, 0xd6, 0x90, 0x39, 0xfb, 0x91, 0x37, 0x7e, 0x60,
- 0xbd, 0x71, 0xa9, 0x0c, 0xf9, 0x68, 0x7e, 0xa2, 0x2c, 0xb0, 0x0c, 0x95, 0x25, 0xd2, 0xac, 0x2c,
- 0xd7, 0x56, 0x48, 0x9b, 0xf1, 0x42, 0x55, 0x4e, 0x90, 0x76, 0x67, 0x7d, 0x6d, 0xbb, 0xaa, 0x2a,
- 0x3b, 0x9b, 0xdb, 0x6b, 0x1b, 0x55, 0x39, 0x19, 0xed, 0xab, 0xbf, 0x9b, 0x80, 0x42, 0xe7, 0x11,
- 0x09, 0xfd, 0x14, 0xdc, 0x2b, 0xee, 0x33, 0x3c, 0xec, 0xab, 0x37, 0x0c, 0x97, 0x2e, 0x99, 0x96,
- 0xc6, 0xb6, 0xaf, 0x60, 0xd2, 0x26, 0xb9, 0x55, 0x1d, 0xfb, 0xcf, 0x1a, 0x2e, 0x59, 0x10, 0x2d,
- 0xcd, 0x47, 0xeb, 0x70, 0xca, 0xb2, 0x55, 0xcf, 0xd7, 0xac, 0x86, 0xe6, 0x36, 0xd4, 0xf0, 0x26,
- 0x49, 0xd5, 0x74, 0x1d, 0x7b, 0x9e, 0xcd, 0xb6, 0xaa, 0x80, 0xe5, 0x7e, 0xcb, 0xae, 0x73, 0xe3,
- 0xb0, 0x86, 0x57, 0xb8, 0x69, 0x57, 0x82, 0x25, 0x8f, 0x4a, 0xb0, 0xfb, 0x20, 0xdb, 0xd2, 0x1c,
- 0x15, 0x5b, 0xbe, 0x7b, 0x40, 0x1b, 0xe3, 0x8c, 0x92, 0x69, 0x69, 0x4e, 0x95, 0x3c, 0x7f, 0x38,
- 0xe7, 0x93, 0x7f, 0x4e, 0x42, 0x3e, 0xda, 0x1c, 0x93, 0xb3, 0x86, 0x4e, 0xf7, 0x11, 0x89, 0x56,
- 0x9a, 0x07, 0xef, 0xda, 0x4a, 0xcf, 0x2e, 0x93, 0x0d, 0xa6, 0x3c, 0xcc, 0x5a, 0x56, 0x85, 0x21,
- 0xc9, 0xe6, 0x4e, 0x6a, 0x0b, 0x66, 0x2d, 0x42, 0x46, 0xe1, 0x4f, 0x68, 0x15, 0x86, 0xaf, 0x7a,
- 0x94, 0x7b, 0x98, 0x72, 0x3f, 0x74, 0x77, 0xee, 0x67, 0xea, 0x94, 0x3c, 0xfb, 0x4c, 0x5d, 0xdd,
- 0xac, 0x29, 0x1b, 0x95, 0x75, 0x85, 0xc3, 0xd1, 0x49, 0x48, 0x99, 0xda, 0xcd, 0x83, 0xce, 0xad,
- 0x88, 0x8a, 0x06, 0x0d, 0xfc, 0x49, 0x48, 0xdd, 0xc0, 0xda, 0xb5, 0xce, 0x0d, 0x80, 0x8a, 0x3e,
- 0xc0, 0xd4, 0x9f, 0x83, 0x34, 0x8d, 0x17, 0x02, 0xe0, 0x11, 0x93, 0x87, 0x50, 0x06, 0x52, 0xcb,
- 0x35, 0x85, 0xa4, 0xbf, 0x0c, 0x79, 0x26, 0x55, 0xb7, 0xd6, 0xaa, 0xcb, 0x55, 0x39, 0x51, 0x5a,
- 0x84, 0x61, 0x16, 0x04, 0xb2, 0x34, 0x82, 0x30, 0xc8, 0x43, 0xfc, 0x91, 0x73, 0x48, 0x42, 0xbb,
- 0xb3, 0xb1, 0x54, 0x55, 0xe4, 0x44, 0x74, 0x7a, 0x3d, 0xc8, 0x47, 0xfb, 0xe2, 0x0f, 0x27, 0xa7,
- 0xbe, 0x23, 0x41, 0x2e, 0xd2, 0xe7, 0x92, 0x06, 0x45, 0x33, 0x4d, 0xfb, 0x86, 0xaa, 0x99, 0x86,
- 0xe6, 0xf1, 0xa4, 0x00, 0x2a, 0xaa, 0x10, 0xc9, 0xa0, 0x93, 0xf6, 0xa1, 0x38, 0xff, 0xaa, 0x04,
- 0x72, 0x77, 0x8b, 0xd9, 0xe5, 0xa0, 0xf4, 0x13, 0x75, 0xf0, 0x15, 0x09, 0x0a, 0x9d, 0x7d, 0x65,
- 0x97, 0x7b, 0x67, 0x7e, 0xa2, 0xee, 0xbd, 0x95, 0x80, 0xd1, 0x8e, 0x6e, 0x72, 0x50, 0xef, 0x3e,
- 0x0d, 0xe3, 0x46, 0x03, 0xb7, 0x1c, 0xdb, 0xc7, 0x96, 0x7e, 0xa0, 0x9a, 0xf8, 0x3a, 0x36, 0x8b,
- 0x25, 0x5a, 0x28, 0xe6, 0xee, 0xde, 0xaf, 0xce, 0xae, 0x85, 0xb8, 0x75, 0x02, 0x2b, 0x4f, 0xac,
- 0xad, 0x54, 0x37, 0xb6, 0x6a, 0xdb, 0xd5, 0xcd, 0xe5, 0xe7, 0xd5, 0x9d, 0xcd, 0x9f, 0xd9, 0xac,
- 0x3d, 0xbb, 0xa9, 0xc8, 0x46, 0x97, 0xd9, 0x07, 0xb8, 0xd4, 0xb7, 0x40, 0xee, 0x76, 0x0a, 0xdd,
- 0x0b, 0xfd, 0xdc, 0x92, 0x87, 0xd0, 0x04, 0x8c, 0x6d, 0xd6, 0xd4, 0xfa, 0xda, 0x4a, 0x55, 0xad,
- 0x5e, 0xbe, 0x5c, 0x5d, 0xde, 0xae, 0xb3, 0x1b, 0x88, 0xc0, 0x7a, 0xbb, 0x73, 0x51, 0xbf, 0x9c,
- 0x84, 0x89, 0x3e, 0x9e, 0xa0, 0x0a, 0x3f, 0x3b, 0xb0, 0xe3, 0xcc, 0x13, 0x83, 0x78, 0x3f, 0x4b,
- 0xb6, 0xfc, 0x2d, 0xcd, 0xf5, 0xf9, 0x51, 0xe3, 0x51, 0x20, 0x51, 0xb2, 0x7c, 0x63, 0xcf, 0xc0,
- 0x2e, 0xbf, 0xb0, 0x61, 0x07, 0x8a, 0xb1, 0x50, 0xce, 0xee, 0x6c, 0x3e, 0x0a, 0xc8, 0xb1, 0x3d,
- 0xc3, 0x37, 0xae, 0x63, 0xd5, 0xb0, 0xc4, 0xed, 0x0e, 0x39, 0x60, 0xa4, 0x14, 0x59, 0x68, 0xd6,
- 0x2c, 0x3f, 0xb0, 0xb6, 0x70, 0x53, 0xeb, 0xb2, 0x26, 0x05, 0x3c, 0xa9, 0xc8, 0x42, 0x13, 0x58,
- 0x9f, 0x81, 0x7c, 0xc3, 0x6e, 0x93, 0xae, 0x8b, 0xd9, 0x91, 0xfd, 0x42, 0x52, 0x72, 0x4c, 0x16,
- 0x98, 0xf0, 0x7e, 0x3a, 0xbc, 0x56, 0xca, 0x2b, 0x39, 0x26, 0x63, 0x26, 0x8f, 0xc0, 0x98, 0xd6,
- 0x6c, 0xba, 0x84, 0x5c, 0x10, 0xb1, 0x13, 0x42, 0x21, 0x10, 0x53, 0xc3, 0xa9, 0x67, 0x20, 0x23,
- 0xe2, 0x40, 0xb6, 0x64, 0x12, 0x09, 0xd5, 0x61, 0xc7, 0xde, 0xc4, 0x4c, 0x56, 0xc9, 0x58, 0x42,
- 0x79, 0x06, 0xf2, 0x86, 0xa7, 0x86, 0xb7, 0xe4, 0x89, 0xd3, 0x89, 0x99, 0x8c, 0x92, 0x33, 0xbc,
- 0xe0, 0x86, 0xb1, 0xf4, 0x5a, 0x02, 0x0a, 0x9d, 0xb7, 0xfc, 0x68, 0x05, 0x32, 0xa6, 0xad, 0x6b,
- 0x34, 0xb5, 0xd8, 0x27, 0xa6, 0x99, 0x98, 0x0f, 0x03, 0xb3, 0xeb, 0xdc, 0x5e, 0x09, 0x90, 0x53,
- 0xff, 0x20, 0x41, 0x46, 0x88, 0xd1, 0x09, 0x48, 0x39, 0x9a, 0xbf, 0x4f, 0xe9, 0xd2, 0x4b, 0x09,
- 0x59, 0x52, 0xe8, 0x33, 0x91, 0x7b, 0x8e, 0x66, 0xd1, 0x14, 0xe0, 0x72, 0xf2, 0x4c, 0xe6, 0xd5,
- 0xc4, 0x5a, 0x83, 0x1e, 0x3f, 0xec, 0x56, 0x0b, 0x5b, 0xbe, 0x27, 0xe6, 0x95, 0xcb, 0x97, 0xb9,
- 0x18, 0x3d, 0x0e, 0xe3, 0xbe, 0xab, 0x19, 0x66, 0x87, 0x6d, 0x8a, 0xda, 0xca, 0x42, 0x11, 0x18,
- 0x97, 0xe1, 0xa4, 0xe0, 0x6d, 0x60, 0x5f, 0xd3, 0xf7, 0x71, 0x23, 0x04, 0x0d, 0xd3, 0x6b, 0x86,
- 0x7b, 0xb9, 0xc1, 0x0a, 0xd7, 0x0b, 0x6c, 0xe9, 0x7b, 0x12, 0x8c, 0x8b, 0x03, 0x53, 0x23, 0x08,
- 0xd6, 0x06, 0x80, 0x66, 0x59, 0xb6, 0x1f, 0x0d, 0x57, 0x6f, 0x2a, 0xf7, 0xe0, 0x66, 0x2b, 0x01,
- 0x48, 0x89, 0x10, 0x4c, 0xb5, 0x00, 0x42, 0xcd, 0x91, 0x61, 0x3b, 0x05, 0x39, 0xfe, 0x09, 0x87,
- 0x7e, 0x07, 0x64, 0x47, 0x6c, 0x60, 0x22, 0x72, 0xb2, 0x42, 0x93, 0x90, 0xde, 0xc5, 0x4d, 0xc3,
- 0xe2, 0x17, 0xb3, 0xec, 0x41, 0x5c, 0x84, 0xa4, 0x82, 0x8b, 0x90, 0xa5, 0x4f, 0xc1, 0x84, 0x6e,
- 0xb7, 0xba, 0xdd, 0x5d, 0x92, 0xbb, 0x8e, 0xf9, 0xde, 0x15, 0xe9, 0x05, 0x08, 0x5b, 0xcc, 0xf7,
- 0x24, 0xe9, 0x4b, 0x89, 0xe4, 0xea, 0xd6, 0xd2, 0x57, 0x13, 0x53, 0xab, 0x0c, 0xba, 0x25, 0x46,
- 0xaa, 0xe0, 0x3d, 0x13, 0xeb, 0xc4, 0x7b, 0xf8, 0xf2, 0xe3, 0xf0, 0x44, 0xd3, 0xf0, 0xf7, 0xdb,
- 0xbb, 0xb3, 0xba, 0xdd, 0x9a, 0x6b, 0xda, 0x4d, 0x3b, 0xfc, 0xf4, 0x49, 0x9e, 0xe8, 0x03, 0xfd,
- 0x8b, 0x7f, 0xfe, 0xcc, 0x06, 0xd2, 0xa9, 0xd8, 0x6f, 0xa5, 0xe5, 0x4d, 0x98, 0xe0, 0xc6, 0x2a,
- 0xfd, 0xfe, 0xc2, 0x4e, 0x11, 0xe8, 0xae, 0x77, 0x58, 0xc5, 0xaf, 0xbf, 0x4d, 0xb7, 0x6b, 0x65,
- 0x9c, 0x43, 0x89, 0x8e, 0x1d, 0x34, 0xca, 0x0a, 0xdc, 0xd3, 0xc1, 0xc7, 0x96, 0x26, 0x76, 0x63,
- 0x18, 0xbf, 0xcb, 0x19, 0x27, 0x22, 0x8c, 0x75, 0x0e, 0x2d, 0x2f, 0xc3, 0xe8, 0x71, 0xb8, 0xfe,
- 0x8e, 0x73, 0xe5, 0x71, 0x94, 0x64, 0x15, 0xc6, 0x28, 0x89, 0xde, 0xf6, 0x7c, 0xbb, 0x45, 0xeb,
- 0xde, 0xdd, 0x69, 0xfe, 0xfe, 0x6d, 0xb6, 0x56, 0x0a, 0x04, 0xb6, 0x1c, 0xa0, 0xca, 0x65, 0xa0,
- 0x9f, 0x9c, 0x1a, 0x58, 0x37, 0x63, 0x18, 0x5e, 0xe7, 0x8e, 0x04, 0xf6, 0xe5, 0x4f, 0xc2, 0x24,
- 0xf9, 0x9b, 0x96, 0xa5, 0xa8, 0x27, 0xf1, 0x17, 0x5e, 0xc5, 0xef, 0xbd, 0xc4, 0x96, 0xe3, 0x44,
- 0x40, 0x10, 0xf1, 0x29, 0x32, 0x8b, 0x4d, 0xec, 0xfb, 0xd8, 0xf5, 0x54, 0xcd, 0xec, 0xe7, 0x5e,
- 0xe4, 0xc6, 0xa0, 0xf8, 0xf9, 0x77, 0x3a, 0x67, 0x71, 0x95, 0x21, 0x2b, 0xa6, 0x59, 0xde, 0x81,
- 0x7b, 0xfb, 0x64, 0xc5, 0x00, 0x9c, 0x2f, 0x73, 0xce, 0xc9, 0x9e, 0xcc, 0x20, 0xb4, 0x5b, 0x20,
- 0xe4, 0xc1, 0x5c, 0x0e, 0xc0, 0xf9, 0xbb, 0x9c, 0x13, 0x71, 0xac, 0x98, 0x52, 0xc2, 0xf8, 0x0c,
- 0x8c, 0x5f, 0xc7, 0xee, 0xae, 0xed, 0xf1, 0x5b, 0x9a, 0x01, 0xe8, 0x5e, 0xe1, 0x74, 0x63, 0x1c,
- 0x48, 0xaf, 0x6d, 0x08, 0xd7, 0x45, 0xc8, 0xec, 0x69, 0x3a, 0x1e, 0x80, 0xe2, 0x0b, 0x9c, 0x62,
- 0x84, 0xd8, 0x13, 0x68, 0x05, 0xf2, 0x4d, 0x9b, 0xef, 0x4c, 0xf1, 0xf0, 0x57, 0x39, 0x3c, 0x27,
- 0x30, 0x9c, 0xc2, 0xb1, 0x9d, 0xb6, 0x49, 0xb6, 0xad, 0x78, 0x8a, 0xdf, 0x13, 0x14, 0x02, 0xc3,
- 0x29, 0x8e, 0x11, 0xd6, 0xdf, 0x17, 0x14, 0x5e, 0x24, 0x9e, 0x4f, 0x43, 0xce, 0xb6, 0xcc, 0x03,
- 0xdb, 0x1a, 0xc4, 0x89, 0x2f, 0x72, 0x06, 0xe0, 0x10, 0x42, 0x70, 0x09, 0xb2, 0x83, 0x4e, 0xc4,
- 0x1f, 0xbe, 0x23, 0x96, 0x87, 0x98, 0x81, 0x55, 0x18, 0x13, 0x05, 0xca, 0xb0, 0xad, 0x01, 0x28,
- 0xbe, 0xcc, 0x29, 0x0a, 0x11, 0x18, 0x1f, 0x86, 0x8f, 0x3d, 0xbf, 0x89, 0x07, 0x21, 0x79, 0x4d,
- 0x0c, 0x83, 0x43, 0x78, 0x28, 0x77, 0xb1, 0xa5, 0xef, 0x0f, 0xc6, 0xf0, 0x15, 0x11, 0x4a, 0x81,
- 0x21, 0x14, 0xcb, 0x30, 0xda, 0xd2, 0x5c, 0x6f, 0x5f, 0x33, 0x07, 0x9a, 0x8e, 0x3f, 0xe2, 0x1c,
- 0xf9, 0x00, 0xc4, 0x23, 0xd2, 0xb6, 0x8e, 0x43, 0xf3, 0x55, 0x11, 0x91, 0x08, 0x8c, 0x2f, 0x3d,
- 0xcf, 0xa7, 0x57, 0x5a, 0xc7, 0x61, 0xfb, 0x63, 0xb1, 0xf4, 0x18, 0x76, 0x23, 0xca, 0x78, 0x09,
- 0xb2, 0x9e, 0x71, 0x73, 0x20, 0x9a, 0x3f, 0x11, 0x33, 0x4d, 0x01, 0x04, 0xfc, 0x3c, 0x9c, 0xec,
- 0xbb, 0x4d, 0x0c, 0x40, 0xf6, 0xa7, 0x9c, 0xec, 0x44, 0x9f, 0xad, 0x82, 0x97, 0x84, 0xe3, 0x52,
- 0xfe, 0x99, 0x28, 0x09, 0xb8, 0x8b, 0x6b, 0x8b, 0x9c, 0x15, 0x3c, 0x6d, 0xef, 0x78, 0x51, 0xfb,
- 0x73, 0x11, 0x35, 0x86, 0xed, 0x88, 0xda, 0x36, 0x9c, 0xe0, 0x8c, 0xc7, 0x9b, 0xd7, 0xaf, 0x89,
- 0xc2, 0xca, 0xd0, 0x3b, 0x9d, 0xb3, 0xfb, 0x29, 0x98, 0x0a, 0xc2, 0x29, 0x9a, 0x52, 0x4f, 0x6d,
- 0x69, 0xce, 0x00, 0xcc, 0x5f, 0xe7, 0xcc, 0xa2, 0xe2, 0x07, 0x5d, 0xad, 0xb7, 0xa1, 0x39, 0x84,
- 0xfc, 0x39, 0x28, 0x0a, 0xf2, 0xb6, 0xe5, 0x62, 0xdd, 0x6e, 0x5a, 0xc6, 0x4d, 0xdc, 0x18, 0x80,
- 0xfa, 0x2f, 0xba, 0xa6, 0x6a, 0x27, 0x02, 0x27, 0xcc, 0x6b, 0x20, 0x07, 0xbd, 0x8a, 0x6a, 0xb4,
- 0x1c, 0xdb, 0xf5, 0x63, 0x18, 0xbf, 0x21, 0x66, 0x2a, 0xc0, 0xad, 0x51, 0x58, 0xb9, 0x0a, 0x05,
- 0xfa, 0x38, 0x68, 0x4a, 0xfe, 0x25, 0x27, 0x1a, 0x0d, 0x51, 0xbc, 0x70, 0xe8, 0x76, 0xcb, 0xd1,
- 0xdc, 0x41, 0xea, 0xdf, 0x5f, 0x89, 0xc2, 0xc1, 0x21, 0xbc, 0x70, 0xf8, 0x07, 0x0e, 0x26, 0xbb,
- 0xfd, 0x00, 0x0c, 0xdf, 0x14, 0x85, 0x43, 0x60, 0x38, 0x85, 0x68, 0x18, 0x06, 0xa0, 0xf8, 0x6b,
- 0x41, 0x21, 0x30, 0x84, 0xe2, 0x13, 0xe1, 0x46, 0xeb, 0xe2, 0xa6, 0xe1, 0xf9, 0x2e, 0x6b, 0x85,
- 0xef, 0x4e, 0xf5, 0xad, 0x77, 0x3a, 0x9b, 0x30, 0x25, 0x02, 0x25, 0x95, 0x88, 0x5f, 0xa1, 0xd2,
- 0x93, 0x52, 0xbc, 0x63, 0xdf, 0x16, 0x95, 0x28, 0x02, 0x23, 0xbe, 0x45, 0x3a, 0x44, 0x12, 0x76,
- 0x9d, 0x9c, 0x0f, 0x06, 0xa0, 0xfb, 0x4e, 0x97, 0x73, 0x75, 0x81, 0x25, 0x9c, 0x91, 0xfe, 0xa7,
- 0x6d, 0x5d, 0xc3, 0x07, 0x03, 0x65, 0xe7, 0xdf, 0x74, 0xf5, 0x3f, 0x3b, 0x0c, 0xc9, 0x6a, 0xc8,
- 0x58, 0x57, 0x3f, 0x85, 0xe2, 0x7e, 0xac, 0x53, 0xfc, 0xf9, 0x3b, 0x7c, 0xbc, 0x9d, 0xed, 0x54,
- 0x79, 0x9d, 0x24, 0x79, 0x67, 0xd3, 0x13, 0x4f, 0xf6, 0xd2, 0x9d, 0x20, 0xcf, 0x3b, 0x7a, 0x9e,
- 0xf2, 0x65, 0x18, 0xed, 0x68, 0x78, 0xe2, 0xa9, 0x7e, 0x81, 0x53, 0xe5, 0xa3, 0xfd, 0x4e, 0x79,
- 0x11, 0x52, 0xa4, 0x79, 0x89, 0x87, 0xff, 0x22, 0x87, 0x53, 0xf3, 0xf2, 0xc7, 0x20, 0x23, 0x9a,
- 0x96, 0x78, 0xe8, 0x2f, 0x71, 0x68, 0x00, 0x21, 0x70, 0xd1, 0xb0, 0xc4, 0xc3, 0x7f, 0x59, 0xc0,
- 0x05, 0x84, 0xc0, 0x07, 0x0f, 0xe1, 0xdf, 0xfe, 0x4a, 0x8a, 0x6f, 0x3a, 0x22, 0x76, 0x97, 0x60,
- 0x84, 0x77, 0x2a, 0xf1, 0xe8, 0xcf, 0xf0, 0x97, 0x0b, 0x44, 0xf9, 0x3c, 0xa4, 0x07, 0x0c, 0xf8,
- 0xaf, 0x72, 0x28, 0xb3, 0x2f, 0x2f, 0x43, 0x2e, 0xd2, 0x9d, 0xc4, 0xc3, 0x7f, 0x8d, 0xc3, 0xa3,
- 0x28, 0xe2, 0x3a, 0xef, 0x4e, 0xe2, 0x09, 0x7e, 0x5d, 0xb8, 0xce, 0x11, 0x24, 0x6c, 0xa2, 0x31,
- 0x89, 0x47, 0xff, 0x86, 0x88, 0xba, 0x80, 0x94, 0x9f, 0x86, 0x6c, 0xb0, 0xd9, 0xc4, 0xe3, 0x7f,
- 0x93, 0xe3, 0x43, 0x0c, 0x89, 0x40, 0x64, 0xb3, 0x8b, 0xa7, 0xf8, 0xac, 0x88, 0x40, 0x04, 0x45,
- 0x96, 0x51, 0x77, 0x03, 0x13, 0xcf, 0xf4, 0x5b, 0x62, 0x19, 0x75, 0xf5, 0x2f, 0x64, 0x36, 0x69,
- 0xcd, 0x8f, 0xa7, 0xf8, 0x6d, 0x31, 0x9b, 0xd4, 0x9e, 0xb8, 0xd1, 0xdd, 0x11, 0xc4, 0x73, 0xfc,
- 0x8e, 0x70, 0xa3, 0xab, 0x21, 0x28, 0x6f, 0x01, 0xea, 0xed, 0x06, 0xe2, 0xf9, 0x3e, 0xc7, 0xf9,
- 0xc6, 0x7b, 0x9a, 0x81, 0xf2, 0xb3, 0x70, 0xa2, 0x7f, 0x27, 0x10, 0xcf, 0xfa, 0xf9, 0x3b, 0x5d,
- 0x67, 0xb7, 0x68, 0x23, 0x50, 0xde, 0x0e, 0xb7, 0x94, 0x68, 0x17, 0x10, 0x4f, 0xfb, 0xf2, 0x9d,
- 0xce, 0xc2, 0x1d, 0x6d, 0x02, 0xca, 0x15, 0x80, 0x70, 0x03, 0x8e, 0xe7, 0x7a, 0x85, 0x73, 0x45,
- 0x40, 0x64, 0x69, 0xf0, 0xfd, 0x37, 0x1e, 0xff, 0x05, 0xb1, 0x34, 0x38, 0x82, 0x2c, 0x0d, 0xb1,
- 0xf5, 0xc6, 0xa3, 0x5f, 0x15, 0x4b, 0x43, 0x40, 0x48, 0x66, 0x47, 0x76, 0xb7, 0x78, 0x86, 0x2f,
- 0x8a, 0xcc, 0x8e, 0xa0, 0xca, 0x9b, 0x30, 0xde, 0xb3, 0x21, 0xc6, 0x53, 0x7d, 0x89, 0x53, 0xc9,
- 0xdd, 0xfb, 0x61, 0x74, 0xf3, 0xe2, 0x9b, 0x61, 0x3c, 0xdb, 0x1f, 0x74, 0x6d, 0x5e, 0x7c, 0x2f,
- 0x2c, 0x5f, 0x82, 0x8c, 0xd5, 0x36, 0x4d, 0xb2, 0x78, 0xd0, 0xdd, 0x7f, 0x60, 0x57, 0xfc, 0xd7,
- 0xf7, 0x79, 0x74, 0x04, 0xa0, 0xbc, 0x08, 0x69, 0xdc, 0xda, 0xc5, 0x8d, 0x38, 0xe4, 0xbf, 0xbd,
- 0x2f, 0x0a, 0x26, 0xb1, 0x2e, 0x3f, 0x0d, 0xc0, 0xae, 0x46, 0xe8, 0x67, 0xbf, 0x18, 0xec, 0xbf,
- 0xbf, 0xcf, 0x7f, 0xfa, 0x12, 0x42, 0x42, 0x02, 0xf6, 0x43, 0x9a, 0xbb, 0x13, 0xbc, 0xd3, 0x49,
- 0x40, 0x67, 0xe4, 0x22, 0x8c, 0x5c, 0xf5, 0x6c, 0xcb, 0xd7, 0x9a, 0x71, 0xe8, 0xff, 0xe0, 0x68,
- 0x61, 0x4f, 0x02, 0xd6, 0xb2, 0x5d, 0xec, 0x6b, 0x4d, 0x2f, 0x0e, 0xfb, 0x9f, 0x1c, 0x1b, 0x00,
- 0x08, 0x58, 0xd7, 0x3c, 0x7f, 0x90, 0x71, 0xff, 0x50, 0x80, 0x05, 0x80, 0x38, 0x4d, 0xfe, 0xbe,
- 0x86, 0x0f, 0xe2, 0xb0, 0xef, 0x0a, 0xa7, 0xb9, 0x7d, 0xf9, 0x63, 0x90, 0x25, 0x7f, 0xb2, 0xdf,
- 0xb3, 0xc5, 0x80, 0xff, 0x8b, 0x83, 0x43, 0x04, 0x79, 0xb3, 0xe7, 0x37, 0x7c, 0x23, 0x3e, 0xd8,
- 0xff, 0xcd, 0x67, 0x5a, 0xd8, 0x97, 0x2b, 0x90, 0xf3, 0xfc, 0x46, 0xa3, 0xcd, 0xfb, 0xd3, 0x18,
- 0xf8, 0xff, 0xbc, 0x1f, 0x5c, 0x59, 0x04, 0x18, 0x32, 0xdb, 0x37, 0xae, 0xf9, 0x8e, 0x4d, 0x3f,
- 0x73, 0xc4, 0x31, 0xdc, 0xe1, 0x0c, 0x11, 0xc8, 0x52, 0xb5, 0xff, 0xf5, 0x2d, 0xac, 0xda, 0xab,
- 0x36, 0xbb, 0xb8, 0x7d, 0xa1, 0x14, 0x7f, 0x03, 0x0b, 0xff, 0x97, 0x81, 0xfb, 0x75, 0xbb, 0xb5,
- 0x6b, 0x7b, 0x73, 0x91, 0x62, 0x3e, 0x67, 0x5b, 0x9c, 0x13, 0x25, 0x6d, 0x0b, 0x4f, 0x1d, 0xef,
- 0x2e, 0xb7, 0x74, 0x12, 0xd2, 0xf5, 0xf6, 0xee, 0xee, 0x01, 0x92, 0x21, 0xe9, 0xb5, 0x77, 0xf9,
- 0xef, 0xa2, 0xc8, 0x9f, 0xa5, 0x37, 0x93, 0x30, 0x5a, 0x31, 0xcd, 0xed, 0x03, 0x07, 0x7b, 0x35,
- 0x0b, 0xd7, 0xf6, 0x50, 0x11, 0x86, 0xe9, 0x60, 0x9f, 0xa2, 0x66, 0xd2, 0x95, 0x21, 0x85, 0x3f,
- 0x07, 0x9a, 0x79, 0x7a, 0xcb, 0x9d, 0x08, 0x34, 0xf3, 0x81, 0xe6, 0x2c, 0xbb, 0xe4, 0x0e, 0x34,
- 0x67, 0x03, 0xcd, 0x02, 0xbd, 0xea, 0x4e, 0x06, 0x9a, 0x85, 0x40, 0xb3, 0x48, 0x3f, 0xe5, 0x8c,
- 0x06, 0x9a, 0xc5, 0x40, 0x73, 0x8e, 0x7e, 0xbc, 0x49, 0x05, 0x9a, 0x73, 0x81, 0xe6, 0x3c, 0xfd,
- 0x66, 0x33, 0x1e, 0x68, 0xce, 0x07, 0x9a, 0x0b, 0xf4, 0x3b, 0x0d, 0x0a, 0x34, 0x17, 0x02, 0xcd,
- 0x45, 0xfa, 0x03, 0xa8, 0x91, 0x40, 0x73, 0x11, 0x4d, 0xc1, 0x08, 0x1b, 0xd9, 0x93, 0xf4, 0x63,
- 0xfe, 0xd8, 0x95, 0x21, 0x45, 0x08, 0x42, 0xdd, 0x53, 0xf4, 0x47, 0x4e, 0xc3, 0xa1, 0xee, 0xa9,
- 0x50, 0x37, 0x4f, 0xff, 0xaf, 0x85, 0x1c, 0xea, 0xe6, 0x43, 0xdd, 0xd9, 0xe2, 0x28, 0xc9, 0x91,
- 0x50, 0x77, 0x36, 0xd4, 0x2d, 0x14, 0x0b, 0x64, 0x06, 0x42, 0xdd, 0x42, 0xa8, 0x5b, 0x2c, 0x8e,
- 0x9d, 0x96, 0x66, 0xf2, 0xa1, 0x6e, 0x11, 0x3d, 0x01, 0x39, 0xaf, 0xbd, 0xab, 0xf2, 0x6a, 0x4f,
- 0x7f, 0x4c, 0x95, 0x9b, 0x87, 0x59, 0x92, 0x13, 0x74, 0x5a, 0xaf, 0x0c, 0x29, 0xe0, 0xb5, 0x77,
- 0x79, 0x31, 0x5e, 0xca, 0x03, 0xbd, 0x83, 0x52, 0xe9, 0x6f, 0xa0, 0x4b, 0x6f, 0x48, 0x90, 0xdd,
- 0xbe, 0x61, 0xd3, 0x4f, 0xf9, 0xde, 0x8f, 0x79, 0x72, 0x85, 0xd3, 0x67, 0x17, 0xe8, 0xd7, 0xd6,
- 0xec, 0x15, 0x49, 0x11, 0x82, 0x50, 0xb7, 0x58, 0x7c, 0x90, 0x0e, 0x28, 0xd0, 0x2d, 0xa2, 0x39,
- 0xc8, 0x47, 0x06, 0x34, 0x4f, 0x7f, 0xe6, 0xd4, 0x39, 0x22, 0x49, 0xc9, 0x85, 0x23, 0x9a, 0x5f,
- 0x4a, 0x03, 0x49, 0x7b, 0xf2, 0x8f, 0x7f, 0xc3, 0x2e, 0x7d, 0x36, 0x01, 0x39, 0x76, 0x6d, 0x4d,
- 0x47, 0x45, 0x5e, 0xc5, 0x4e, 0x36, 0x07, 0xdc, 0x8d, 0x21, 0x45, 0x08, 0x90, 0x02, 0xc0, 0x4c,
- 0x49, 0x86, 0x33, 0x4f, 0x96, 0x9e, 0xfc, 0xa7, 0x37, 0x4f, 0x7d, 0xf4, 0xc8, 0x15, 0x44, 0x62,
- 0x37, 0xc7, 0xca, 0xf8, 0xec, 0x8e, 0x61, 0xf9, 0x4f, 0xcd, 0x5f, 0x20, 0x01, 0x0e, 0x59, 0xd0,
- 0x0e, 0x64, 0x96, 0x35, 0x8f, 0xfe, 0x40, 0x92, 0xba, 0x9e, 0x5a, 0x3a, 0xff, 0xbf, 0x6f, 0x9e,
- 0x3a, 0x1b, 0xc3, 0xc8, 0x2b, 0xec, 0xec, 0xc6, 0x01, 0x61, 0x3d, 0xb7, 0x40, 0xe0, 0x57, 0x86,
- 0x94, 0x80, 0x0a, 0xcd, 0x0b, 0x57, 0x37, 0xb5, 0x16, 0xfb, 0x3d, 0x57, 0x72, 0x49, 0x3e, 0x7c,
- 0xf3, 0x54, 0x7e, 0xe3, 0x20, 0x94, 0x87, 0xae, 0x90, 0xa7, 0xa5, 0x0c, 0x0c, 0x33, 0x57, 0x97,
- 0x56, 0x5e, 0xbf, 0x3d, 0x3d, 0xf4, 0xc6, 0xed, 0xe9, 0xa1, 0x7f, 0xbc, 0x3d, 0x3d, 0xf4, 0xd6,
- 0xed, 0x69, 0xe9, 0xdd, 0xdb, 0xd3, 0xd2, 0x7b, 0xb7, 0xa7, 0xa5, 0x5b, 0x87, 0xd3, 0xd2, 0x57,
- 0x0e, 0xa7, 0xa5, 0xaf, 0x1d, 0x4e, 0x4b, 0xdf, 0x3a, 0x9c, 0x96, 0x5e, 0x3f, 0x9c, 0x1e, 0x7a,
- 0xe3, 0x70, 0x5a, 0x7a, 0xeb, 0x70, 0x5a, 0xfa, 0xc1, 0xe1, 0xf4, 0xd0, 0xbb, 0x87, 0xd3, 0xd2,
- 0x7b, 0x87, 0xd3, 0x43, 0xb7, 0xbe, 0x3f, 0x3d, 0xf4, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0xdf,
- 0x71, 0x95, 0xb1, 0x1a, 0x37, 0x00, 0x00,
+ // 4295 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5b, 0x70, 0x1b, 0xe7,
+ 0x75, 0xe6, 0xe2, 0x42, 0x02, 0x07, 0x20, 0xb8, 0x5c, 0xd2, 0x32, 0x44, 0xdb, 0x90, 0x04, 0xdb,
+ 0x31, 0x7d, 0x23, 0x6d, 0x8a, 0xd4, 0x05, 0x6a, 0xe2, 0x82, 0x24, 0x44, 0xd1, 0x25, 0x09, 0x66,
+ 0x41, 0xc6, 0x97, 0x4c, 0x67, 0x67, 0xb9, 0xf8, 0x09, 0xae, 0xb4, 0xd8, 0xdd, 0xec, 0x2e, 0x24,
+ 0x43, 0xd3, 0x07, 0x75, 0xdc, 0xcb, 0x64, 0x7a, 0x4f, 0x3b, 0xd3, 0xc4, 0x75, 0xdc, 0x26, 0x9d,
+ 0xc6, 0x69, 0x7a, 0x4b, 0x7a, 0x49, 0x93, 0xf4, 0xa5, 0x2f, 0x69, 0xfd, 0xd4, 0x71, 0xde, 0x3a,
+ 0x9d, 0x8e, 0xc7, 0x62, 0x3c, 0xd3, 0xb4, 0x75, 0x5b, 0xb7, 0xd5, 0x83, 0xa7, 0xee, 0x43, 0xe7,
+ 0xbf, 0xed, 0x05, 0x00, 0xb5, 0x60, 0xa6, 0x76, 0x9e, 0xc4, 0x3d, 0xe7, 0x7c, 0xdf, 0x9e, 0xff,
+ 0xfc, 0xe7, 0x3f, 0xff, 0xf9, 0xff, 0x85, 0xe0, 0x8d, 0x0a, 0x9c, 0x6e, 0x59, 0x56, 0xcb, 0x40,
+ 0xf3, 0xb6, 0x63, 0x79, 0xd6, 0x5e, 0x67, 0x7f, 0xbe, 0x89, 0x5c, 0xcd, 0xd1, 0x6d, 0xcf, 0x72,
+ 0xe6, 0x88, 0x4c, 0x9a, 0xa0, 0x16, 0x73, 0xdc, 0xa2, 0xbc, 0x09, 0x93, 0x97, 0x75, 0x03, 0xad,
+ 0xfa, 0x86, 0x0d, 0xe4, 0x49, 0x17, 0x20, 0xb5, 0xaf, 0x1b, 0xa8, 0x28, 0x9c, 0x4e, 0xce, 0xe6,
+ 0x16, 0x1e, 0x9a, 0xeb, 0x01, 0xcd, 0x45, 0x11, 0xdb, 0x58, 0x2c, 0x13, 0x44, 0xf9, 0x9d, 0x14,
+ 0x4c, 0x0d, 0xd0, 0x4a, 0x12, 0xa4, 0x4c, 0xb5, 0x8d, 0x19, 0x85, 0xd9, 0xac, 0x4c, 0xfe, 0x96,
+ 0x8a, 0x30, 0x66, 0xab, 0xda, 0x35, 0xb5, 0x85, 0x8a, 0x09, 0x22, 0xe6, 0x8f, 0x52, 0x09, 0xa0,
+ 0x89, 0x6c, 0x64, 0x36, 0x91, 0xa9, 0x75, 0x8b, 0xc9, 0xd3, 0xc9, 0xd9, 0xac, 0x1c, 0x92, 0x48,
+ 0x8f, 0xc3, 0xa4, 0xdd, 0xd9, 0x33, 0x74, 0x4d, 0x09, 0x99, 0xc1, 0xe9, 0xe4, 0x6c, 0x5a, 0x16,
+ 0xa9, 0x62, 0x35, 0x30, 0x7e, 0x04, 0x26, 0x6e, 0x20, 0xf5, 0x5a, 0xd8, 0x34, 0x47, 0x4c, 0x0b,
+ 0x58, 0x1c, 0x32, 0x5c, 0x81, 0x7c, 0x1b, 0xb9, 0xae, 0xda, 0x42, 0x8a, 0xd7, 0xb5, 0x51, 0x31,
+ 0x45, 0x46, 0x7f, 0xba, 0x6f, 0xf4, 0xbd, 0x23, 0xcf, 0x31, 0xd4, 0x4e, 0xd7, 0x46, 0x52, 0x15,
+ 0xb2, 0xc8, 0xec, 0xb4, 0x29, 0x43, 0xfa, 0x88, 0xf8, 0xd5, 0xcc, 0x4e, 0xbb, 0x97, 0x25, 0x83,
+ 0x61, 0x8c, 0x62, 0xcc, 0x45, 0xce, 0x75, 0x5d, 0x43, 0xc5, 0x51, 0x42, 0xf0, 0x48, 0x1f, 0x41,
+ 0x83, 0xea, 0x7b, 0x39, 0x38, 0x4e, 0x5a, 0x81, 0x2c, 0x7a, 0xc9, 0x43, 0xa6, 0xab, 0x5b, 0x66,
+ 0x71, 0x8c, 0x90, 0x3c, 0x3c, 0x60, 0x16, 0x91, 0xd1, 0xec, 0xa5, 0x08, 0x70, 0xd2, 0x39, 0x18,
+ 0xb3, 0x6c, 0x4f, 0xb7, 0x4c, 0xb7, 0x98, 0x39, 0x2d, 0xcc, 0xe6, 0x16, 0xee, 0x1f, 0x98, 0x08,
+ 0x75, 0x6a, 0x23, 0x73, 0x63, 0x69, 0x1d, 0x44, 0xd7, 0xea, 0x38, 0x1a, 0x52, 0x34, 0xab, 0x89,
+ 0x14, 0xdd, 0xdc, 0xb7, 0x8a, 0x59, 0x42, 0x70, 0xaa, 0x7f, 0x20, 0xc4, 0x70, 0xc5, 0x6a, 0xa2,
+ 0x75, 0x73, 0xdf, 0x92, 0x0b, 0x6e, 0xe4, 0x59, 0x3a, 0x01, 0xa3, 0x6e, 0xd7, 0xf4, 0xd4, 0x97,
+ 0x8a, 0x79, 0x92, 0x21, 0xec, 0xa9, 0xfc, 0xed, 0x51, 0x98, 0x18, 0x26, 0xc5, 0x2e, 0x41, 0x7a,
+ 0x1f, 0x8f, 0xb2, 0x98, 0x38, 0x4e, 0x0c, 0x28, 0x26, 0x1a, 0xc4, 0xd1, 0x1f, 0x32, 0x88, 0x55,
+ 0xc8, 0x99, 0xc8, 0xf5, 0x50, 0x93, 0x66, 0x44, 0x72, 0xc8, 0x9c, 0x02, 0x0a, 0xea, 0x4f, 0xa9,
+ 0xd4, 0x0f, 0x95, 0x52, 0xcf, 0xc3, 0x84, 0xef, 0x92, 0xe2, 0xa8, 0x66, 0x8b, 0xe7, 0xe6, 0x7c,
+ 0x9c, 0x27, 0x73, 0x35, 0x8e, 0x93, 0x31, 0x4c, 0x2e, 0xa0, 0xc8, 0xb3, 0xb4, 0x0a, 0x60, 0x99,
+ 0xc8, 0xda, 0x57, 0x9a, 0x48, 0x33, 0x8a, 0x99, 0x23, 0xa2, 0x54, 0xc7, 0x26, 0x7d, 0x51, 0xb2,
+ 0xa8, 0x54, 0x33, 0xa4, 0x8b, 0x41, 0xaa, 0x8d, 0x1d, 0x91, 0x29, 0x9b, 0x74, 0x91, 0xf5, 0x65,
+ 0xdb, 0x2e, 0x14, 0x1c, 0x84, 0xf3, 0x1e, 0x35, 0xd9, 0xc8, 0xb2, 0xc4, 0x89, 0xb9, 0xd8, 0x91,
+ 0xc9, 0x0c, 0x46, 0x07, 0x36, 0xee, 0x84, 0x1f, 0xa5, 0x07, 0xc1, 0x17, 0x28, 0x24, 0xad, 0x80,
+ 0x54, 0xa1, 0x3c, 0x17, 0x6e, 0xa9, 0x6d, 0x34, 0x73, 0x13, 0x0a, 0xd1, 0xf0, 0x48, 0xd3, 0x90,
+ 0x76, 0x3d, 0xd5, 0xf1, 0x48, 0x16, 0xa6, 0x65, 0xfa, 0x20, 0x89, 0x90, 0x44, 0x66, 0x93, 0x54,
+ 0xb9, 0xb4, 0x8c, 0xff, 0x94, 0x7e, 0x3c, 0x18, 0x70, 0x92, 0x0c, 0xf8, 0x63, 0xfd, 0x33, 0x1a,
+ 0x61, 0xee, 0x1d, 0xf7, 0xcc, 0x79, 0x18, 0x8f, 0x0c, 0x60, 0xd8, 0x57, 0x97, 0x7f, 0x0a, 0xee,
+ 0x19, 0x48, 0x2d, 0x3d, 0x0f, 0xd3, 0x1d, 0x53, 0x37, 0x3d, 0xe4, 0xd8, 0x0e, 0xc2, 0x19, 0x4b,
+ 0x5f, 0x55, 0xfc, 0xa7, 0xb1, 0x23, 0x72, 0x6e, 0x37, 0x6c, 0x4d, 0x59, 0xe4, 0xa9, 0x4e, 0xbf,
+ 0xf0, 0xb1, 0x6c, 0xe6, 0x07, 0x63, 0xe2, 0xad, 0x5b, 0xb7, 0x6e, 0x25, 0xca, 0x9f, 0x1f, 0x85,
+ 0xe9, 0x41, 0x6b, 0x66, 0xe0, 0xf2, 0x3d, 0x01, 0xa3, 0x66, 0xa7, 0xbd, 0x87, 0x1c, 0x12, 0xa4,
+ 0xb4, 0xcc, 0x9e, 0xa4, 0x2a, 0xa4, 0x0d, 0x75, 0x0f, 0x19, 0xc5, 0xd4, 0x69, 0x61, 0xb6, 0xb0,
+ 0xf0, 0xf8, 0x50, 0xab, 0x72, 0x6e, 0x03, 0x43, 0x64, 0x8a, 0x94, 0x3e, 0x01, 0x29, 0x56, 0xa2,
+ 0x31, 0xc3, 0x63, 0xc3, 0x31, 0xe0, 0xb5, 0x24, 0x13, 0x9c, 0x74, 0x1f, 0x64, 0xf1, 0xbf, 0x34,
+ 0x37, 0x46, 0x89, 0xcf, 0x19, 0x2c, 0xc0, 0x79, 0x21, 0xcd, 0x40, 0x86, 0x2c, 0x93, 0x26, 0xe2,
+ 0x5b, 0x9b, 0xff, 0x8c, 0x13, 0xab, 0x89, 0xf6, 0xd5, 0x8e, 0xe1, 0x29, 0xd7, 0x55, 0xa3, 0x83,
+ 0x48, 0xc2, 0x67, 0xe5, 0x3c, 0x13, 0x7e, 0x0a, 0xcb, 0xa4, 0x53, 0x90, 0xa3, 0xab, 0x4a, 0x37,
+ 0x9b, 0xe8, 0x25, 0x52, 0x3d, 0xd3, 0x32, 0x5d, 0x68, 0xeb, 0x58, 0x82, 0x5f, 0x7f, 0xd5, 0xb5,
+ 0x4c, 0x9e, 0x9a, 0xe4, 0x15, 0x58, 0x40, 0x5e, 0x7f, 0xbe, 0xb7, 0x70, 0x3f, 0x30, 0x78, 0x78,
+ 0xbd, 0x39, 0x55, 0xfe, 0x66, 0x02, 0x52, 0xa4, 0x5e, 0x4c, 0x40, 0x6e, 0xe7, 0x85, 0xed, 0x9a,
+ 0xb2, 0x5a, 0xdf, 0x5d, 0xde, 0xa8, 0x89, 0x82, 0x54, 0x00, 0x20, 0x82, 0xcb, 0x1b, 0xf5, 0xea,
+ 0x8e, 0x98, 0xf0, 0x9f, 0xd7, 0xb7, 0x76, 0xce, 0x2d, 0x8a, 0x49, 0x1f, 0xb0, 0x4b, 0x05, 0xa9,
+ 0xb0, 0xc1, 0xd9, 0x05, 0x31, 0x2d, 0x89, 0x90, 0xa7, 0x04, 0xeb, 0xcf, 0xd7, 0x56, 0xcf, 0x2d,
+ 0x8a, 0xa3, 0x51, 0xc9, 0xd9, 0x05, 0x71, 0x4c, 0x1a, 0x87, 0x2c, 0x91, 0x2c, 0xd7, 0xeb, 0x1b,
+ 0x62, 0xc6, 0xe7, 0x6c, 0xec, 0xc8, 0xeb, 0x5b, 0x6b, 0x62, 0xd6, 0xe7, 0x5c, 0x93, 0xeb, 0xbb,
+ 0xdb, 0x22, 0xf8, 0x0c, 0x9b, 0xb5, 0x46, 0xa3, 0xba, 0x56, 0x13, 0x73, 0xbe, 0xc5, 0xf2, 0x0b,
+ 0x3b, 0xb5, 0x86, 0x98, 0x8f, 0xb8, 0x75, 0x76, 0x41, 0x1c, 0xf7, 0x5f, 0x51, 0xdb, 0xda, 0xdd,
+ 0x14, 0x0b, 0xd2, 0x24, 0x8c, 0xd3, 0x57, 0x70, 0x27, 0x26, 0x7a, 0x44, 0xe7, 0x16, 0x45, 0x31,
+ 0x70, 0x84, 0xb2, 0x4c, 0x46, 0x04, 0xe7, 0x16, 0x45, 0xa9, 0xbc, 0x02, 0x69, 0x92, 0x5d, 0x92,
+ 0x04, 0x85, 0x8d, 0xea, 0x72, 0x6d, 0x43, 0xa9, 0x6f, 0xef, 0xac, 0xd7, 0xb7, 0xaa, 0x1b, 0xa2,
+ 0x10, 0xc8, 0xe4, 0xda, 0x27, 0x77, 0xd7, 0xe5, 0xda, 0xaa, 0x98, 0x08, 0xcb, 0xb6, 0x6b, 0xd5,
+ 0x9d, 0xda, 0xaa, 0x98, 0x2c, 0x6b, 0x30, 0x3d, 0xa8, 0x4e, 0x0e, 0x5c, 0x19, 0xa1, 0x29, 0x4e,
+ 0x1c, 0x31, 0xc5, 0x84, 0xab, 0x6f, 0x8a, 0xbf, 0x9f, 0x80, 0xa9, 0x01, 0x7b, 0xc5, 0xc0, 0x97,
+ 0x3c, 0x03, 0x69, 0x9a, 0xa2, 0x74, 0xf7, 0x7c, 0x74, 0xe0, 0xa6, 0x43, 0x12, 0xb6, 0x6f, 0x07,
+ 0x25, 0xb8, 0x70, 0x07, 0x91, 0x3c, 0xa2, 0x83, 0xc0, 0x14, 0x7d, 0x35, 0xfd, 0x27, 0xfb, 0x6a,
+ 0x3a, 0xdd, 0xf6, 0xce, 0x0d, 0xb3, 0xed, 0x11, 0xd9, 0xf1, 0x6a, 0x7b, 0x7a, 0x40, 0x6d, 0xbf,
+ 0x04, 0x93, 0x7d, 0x44, 0x43, 0xd7, 0xd8, 0x97, 0x05, 0x28, 0x1e, 0x15, 0x9c, 0x98, 0x4a, 0x97,
+ 0x88, 0x54, 0xba, 0x4b, 0xbd, 0x11, 0x3c, 0x73, 0xf4, 0x24, 0xf4, 0xcd, 0xf5, 0xeb, 0x02, 0x9c,
+ 0x18, 0xdc, 0x29, 0x0e, 0xf4, 0xe1, 0x13, 0x30, 0xda, 0x46, 0xde, 0x81, 0xc5, 0xbb, 0xa5, 0x8f,
+ 0x0d, 0xd8, 0x83, 0xb1, 0xba, 0x77, 0xb2, 0x19, 0x2a, 0xbc, 0x89, 0x27, 0x8f, 0x6a, 0xf7, 0xa8,
+ 0x37, 0x7d, 0x9e, 0x7e, 0x36, 0x01, 0xf7, 0x0c, 0x24, 0x1f, 0xe8, 0xe8, 0x03, 0x00, 0xba, 0x69,
+ 0x77, 0x3c, 0xda, 0x11, 0xd1, 0x02, 0x9b, 0x25, 0x12, 0x52, 0xbc, 0x70, 0xf1, 0xec, 0x78, 0xbe,
+ 0x3e, 0x49, 0xf4, 0x40, 0x45, 0xc4, 0xe0, 0x42, 0xe0, 0x68, 0x8a, 0x38, 0x5a, 0x3a, 0x62, 0xa4,
+ 0x7d, 0x89, 0xf9, 0x14, 0x88, 0x9a, 0xa1, 0x23, 0xd3, 0x53, 0x5c, 0xcf, 0x41, 0x6a, 0x5b, 0x37,
+ 0x5b, 0x64, 0x07, 0xc9, 0x54, 0xd2, 0xfb, 0xaa, 0xe1, 0x22, 0x79, 0x82, 0xaa, 0x1b, 0x5c, 0x8b,
+ 0x11, 0x24, 0x81, 0x9c, 0x10, 0x62, 0x34, 0x82, 0xa0, 0x6a, 0x1f, 0x51, 0xfe, 0xc5, 0x2c, 0xe4,
+ 0x42, 0x7d, 0xb5, 0x74, 0x06, 0xf2, 0x57, 0xd5, 0xeb, 0xaa, 0xc2, 0xcf, 0x4a, 0x34, 0x12, 0x39,
+ 0x2c, 0xdb, 0x66, 0xe7, 0xa5, 0xa7, 0x60, 0x9a, 0x98, 0x58, 0x1d, 0x0f, 0x39, 0x8a, 0x66, 0xa8,
+ 0xae, 0x4b, 0x82, 0x96, 0x21, 0xa6, 0x12, 0xd6, 0xd5, 0xb1, 0x6a, 0x85, 0x6b, 0xa4, 0x25, 0x98,
+ 0x22, 0x88, 0x76, 0xc7, 0xf0, 0x74, 0xdb, 0x40, 0x0a, 0x3e, 0xbd, 0xb9, 0x64, 0x27, 0xf1, 0x3d,
+ 0x9b, 0xc4, 0x16, 0x9b, 0xcc, 0x00, 0x7b, 0xe4, 0x4a, 0xab, 0xf0, 0x00, 0x81, 0xb5, 0x90, 0x89,
+ 0x1c, 0xd5, 0x43, 0x0a, 0xfa, 0x4c, 0x47, 0x35, 0x5c, 0x45, 0x35, 0x9b, 0xca, 0x81, 0xea, 0x1e,
+ 0x14, 0xa7, 0x31, 0xc1, 0x72, 0xa2, 0x28, 0xc8, 0x27, 0xb1, 0xe1, 0x1a, 0xb3, 0xab, 0x11, 0xb3,
+ 0xaa, 0xd9, 0xbc, 0xa2, 0xba, 0x07, 0x52, 0x05, 0x4e, 0x10, 0x16, 0xd7, 0x73, 0x74, 0xb3, 0xa5,
+ 0x68, 0x07, 0x48, 0xbb, 0xa6, 0x74, 0xbc, 0xfd, 0x0b, 0xc5, 0xfb, 0xc2, 0xef, 0x27, 0x1e, 0x36,
+ 0x88, 0xcd, 0x0a, 0x36, 0xd9, 0xf5, 0xf6, 0x2f, 0x48, 0x0d, 0xc8, 0xe3, 0xc9, 0x68, 0xeb, 0x37,
+ 0x91, 0xb2, 0x6f, 0x39, 0x64, 0x6b, 0x2c, 0x0c, 0x28, 0x4d, 0xa1, 0x08, 0xce, 0xd5, 0x19, 0x60,
+ 0xd3, 0x6a, 0xa2, 0x4a, 0xba, 0xb1, 0x5d, 0xab, 0xad, 0xca, 0x39, 0xce, 0x72, 0xd9, 0x72, 0x70,
+ 0x42, 0xb5, 0x2c, 0x3f, 0xc0, 0x39, 0x9a, 0x50, 0x2d, 0x8b, 0x87, 0x77, 0x09, 0xa6, 0x34, 0x8d,
+ 0x8e, 0x59, 0xd7, 0x14, 0x76, 0xc6, 0x72, 0x8b, 0x62, 0x24, 0x58, 0x9a, 0xb6, 0x46, 0x0d, 0x58,
+ 0x8e, 0xbb, 0xd2, 0x45, 0xb8, 0x27, 0x08, 0x56, 0x18, 0x38, 0xd9, 0x37, 0xca, 0x5e, 0xe8, 0x12,
+ 0x4c, 0xd9, 0xdd, 0x7e, 0xa0, 0x14, 0x79, 0xa3, 0xdd, 0xed, 0x85, 0x9d, 0x87, 0x69, 0xfb, 0xc0,
+ 0xee, 0xc7, 0x3d, 0x16, 0xc6, 0x49, 0xf6, 0x81, 0xdd, 0x0b, 0x7c, 0x98, 0x1c, 0xb8, 0x1d, 0xa4,
+ 0xa9, 0x1e, 0x6a, 0x16, 0xef, 0x0d, 0x9b, 0x87, 0x14, 0xd2, 0x3c, 0x88, 0x9a, 0xa6, 0x20, 0x53,
+ 0xdd, 0x33, 0x90, 0xa2, 0x3a, 0xc8, 0x54, 0xdd, 0xe2, 0xa9, 0xb0, 0x71, 0x41, 0xd3, 0x6a, 0x44,
+ 0x5b, 0x25, 0x4a, 0xe9, 0x31, 0x98, 0xb4, 0xf6, 0xae, 0x6a, 0x34, 0x25, 0x15, 0xdb, 0x41, 0xfb,
+ 0xfa, 0x4b, 0xc5, 0x87, 0x48, 0x7c, 0x27, 0xb0, 0x82, 0x24, 0xe4, 0x36, 0x11, 0x4b, 0x8f, 0x82,
+ 0xa8, 0xb9, 0x07, 0xaa, 0x63, 0x93, 0x9a, 0xec, 0xda, 0xaa, 0x86, 0x8a, 0x0f, 0x53, 0x53, 0x2a,
+ 0xdf, 0xe2, 0x62, 0xbc, 0x24, 0xdc, 0x1b, 0xfa, 0xbe, 0xc7, 0x19, 0x1f, 0xa1, 0x4b, 0x82, 0xc8,
+ 0x18, 0xdb, 0x2c, 0x88, 0x38, 0x14, 0x91, 0x17, 0xcf, 0x12, 0xb3, 0x82, 0x7d, 0x60, 0x87, 0xdf,
+ 0xfb, 0x20, 0x8c, 0x63, 0xcb, 0xe0, 0xa5, 0x8f, 0xd2, 0x86, 0xcc, 0x3e, 0x08, 0xbd, 0x71, 0x11,
+ 0x4e, 0x60, 0xa3, 0x36, 0xf2, 0xd4, 0xa6, 0xea, 0xa9, 0x21, 0xeb, 0x27, 0x88, 0x35, 0x8e, 0xfb,
+ 0x26, 0x53, 0x46, 0xfc, 0x74, 0x3a, 0x7b, 0x5d, 0x3f, 0xb3, 0x9e, 0xa4, 0x7e, 0x62, 0x19, 0xcf,
+ 0xad, 0x0f, 0xad, 0xe9, 0x2e, 0x57, 0x20, 0x1f, 0x4e, 0x7c, 0x29, 0x0b, 0x34, 0xf5, 0x45, 0x01,
+ 0x77, 0x41, 0x2b, 0xf5, 0x55, 0xdc, 0xbf, 0xbc, 0x58, 0x13, 0x13, 0xb8, 0x8f, 0xda, 0x58, 0xdf,
+ 0xa9, 0x29, 0xf2, 0xee, 0xd6, 0xce, 0xfa, 0x66, 0x4d, 0x4c, 0x86, 0x1b, 0xf6, 0xef, 0x26, 0xa0,
+ 0x10, 0x3d, 0x7b, 0x49, 0x3f, 0x06, 0xf7, 0xf2, 0x8b, 0x12, 0x17, 0x79, 0xca, 0x0d, 0xdd, 0x21,
+ 0x6b, 0xb1, 0xad, 0xd2, 0x7d, 0xd1, 0xcf, 0x86, 0x69, 0x66, 0xd5, 0x40, 0xde, 0x73, 0xba, 0x83,
+ 0x57, 0x5a, 0x5b, 0xf5, 0xa4, 0x0d, 0x38, 0x65, 0x5a, 0x8a, 0xeb, 0xa9, 0x66, 0x53, 0x75, 0x9a,
+ 0x4a, 0x70, 0x45, 0xa5, 0xa8, 0x9a, 0x86, 0x5c, 0xd7, 0xa2, 0x7b, 0xa0, 0xcf, 0x72, 0xbf, 0x69,
+ 0x35, 0x98, 0x71, 0xb0, 0x39, 0x54, 0x99, 0x69, 0x4f, 0xe6, 0x26, 0x8f, 0xca, 0xdc, 0xfb, 0x20,
+ 0xdb, 0x56, 0x6d, 0x05, 0x99, 0x9e, 0xd3, 0x25, 0x1d, 0x77, 0x46, 0xce, 0xb4, 0x55, 0xbb, 0x86,
+ 0x9f, 0x3f, 0x9a, 0x83, 0xcf, 0x3f, 0x26, 0x21, 0x1f, 0xee, 0xba, 0xf1, 0x21, 0x46, 0x23, 0x1b,
+ 0x94, 0x40, 0x4a, 0xd8, 0x83, 0x77, 0xed, 0xd1, 0xe7, 0x56, 0xf0, 0xce, 0x55, 0x19, 0xa5, 0xbd,
+ 0xb0, 0x4c, 0x91, 0xb8, 0x6b, 0xc0, 0xa9, 0x85, 0x68, 0xef, 0x91, 0x91, 0xd9, 0x93, 0xb4, 0x06,
+ 0xa3, 0x57, 0x5d, 0xc2, 0x3d, 0x4a, 0xb8, 0x1f, 0xba, 0x3b, 0xf7, 0xb3, 0x0d, 0x42, 0x9e, 0x7d,
+ 0xb6, 0xa1, 0x6c, 0xd5, 0xe5, 0xcd, 0xea, 0x86, 0xcc, 0xe0, 0xd2, 0x49, 0x48, 0x19, 0xea, 0xcd,
+ 0x6e, 0x74, 0x8f, 0x23, 0xa2, 0x61, 0x03, 0x7f, 0x12, 0x52, 0x37, 0x90, 0x7a, 0x2d, 0xba, 0xb3,
+ 0x10, 0xd1, 0x87, 0x98, 0xfa, 0xf3, 0x90, 0x26, 0xf1, 0x92, 0x00, 0x58, 0xc4, 0xc4, 0x11, 0x29,
+ 0x03, 0xa9, 0x95, 0xba, 0x8c, 0xd3, 0x5f, 0x84, 0x3c, 0x95, 0x2a, 0xdb, 0xeb, 0xb5, 0x95, 0x9a,
+ 0x98, 0x28, 0x2f, 0xc1, 0x28, 0x0d, 0x02, 0x5e, 0x1a, 0x7e, 0x18, 0xc4, 0x11, 0xf6, 0xc8, 0x38,
+ 0x04, 0xae, 0xdd, 0xdd, 0x5c, 0xae, 0xc9, 0x62, 0x22, 0x3c, 0xbd, 0x2e, 0xe4, 0xc3, 0x0d, 0xf7,
+ 0x47, 0x93, 0x53, 0xdf, 0x11, 0x20, 0x17, 0x6a, 0xa0, 0x71, 0xe7, 0xa3, 0x1a, 0x86, 0x75, 0x43,
+ 0x51, 0x0d, 0x5d, 0x75, 0x59, 0x52, 0x00, 0x11, 0x55, 0xb1, 0x64, 0xd8, 0x49, 0xfb, 0x48, 0x9c,
+ 0x7f, 0x4d, 0x00, 0xb1, 0xb7, 0x77, 0xed, 0x71, 0x50, 0xf8, 0x91, 0x3a, 0xf8, 0xaa, 0x00, 0x85,
+ 0x68, 0xc3, 0xda, 0xe3, 0xde, 0x99, 0x1f, 0xa9, 0x7b, 0x6f, 0x27, 0x60, 0x3c, 0xd2, 0xa6, 0x0e,
+ 0xeb, 0xdd, 0x67, 0x60, 0x52, 0x6f, 0xa2, 0xb6, 0x6d, 0x79, 0xc8, 0xd4, 0xba, 0x8a, 0x81, 0xae,
+ 0x23, 0xa3, 0x58, 0x26, 0x85, 0x62, 0xfe, 0xee, 0x8d, 0xf0, 0xdc, 0x7a, 0x80, 0xdb, 0xc0, 0xb0,
+ 0xca, 0xd4, 0xfa, 0x6a, 0x6d, 0x73, 0xbb, 0xbe, 0x53, 0xdb, 0x5a, 0x79, 0x41, 0xd9, 0xdd, 0xfa,
+ 0x89, 0xad, 0xfa, 0x73, 0x5b, 0xb2, 0xa8, 0xf7, 0x98, 0x7d, 0x88, 0x4b, 0x7d, 0x1b, 0xc4, 0x5e,
+ 0xa7, 0xa4, 0x7b, 0x61, 0x90, 0x5b, 0xe2, 0x88, 0x34, 0x05, 0x13, 0x5b, 0x75, 0xa5, 0xb1, 0xbe,
+ 0x5a, 0x53, 0x6a, 0x97, 0x2f, 0xd7, 0x56, 0x76, 0x1a, 0xf4, 0x6a, 0xc3, 0xb7, 0xde, 0x89, 0x2e,
+ 0xea, 0x57, 0x92, 0x30, 0x35, 0xc0, 0x13, 0xa9, 0xca, 0x0e, 0x25, 0xf4, 0x9c, 0xf4, 0xe4, 0x30,
+ 0xde, 0xcf, 0xe1, 0xae, 0x60, 0x5b, 0x75, 0x3c, 0x76, 0x86, 0x79, 0x14, 0x70, 0x94, 0x4c, 0x4f,
+ 0xdf, 0xd7, 0x91, 0xc3, 0x6e, 0x82, 0xe8, 0x49, 0x65, 0x22, 0x90, 0xd3, 0xcb, 0xa0, 0x27, 0x40,
+ 0xb2, 0x2d, 0x57, 0xf7, 0xf4, 0xeb, 0x48, 0xd1, 0x4d, 0x7e, 0x6d, 0x84, 0x4f, 0x2e, 0x29, 0x59,
+ 0xe4, 0x9a, 0x75, 0xd3, 0xf3, 0xad, 0x4d, 0xd4, 0x52, 0x7b, 0xac, 0x71, 0x01, 0x4f, 0xca, 0x22,
+ 0xd7, 0xf8, 0xd6, 0x67, 0x20, 0xdf, 0xb4, 0x3a, 0xb8, 0x9d, 0xa3, 0x76, 0x78, 0xbf, 0x10, 0xe4,
+ 0x1c, 0x95, 0xf9, 0x26, 0xac, 0x51, 0x0f, 0xee, 0xab, 0xf2, 0x72, 0x8e, 0xca, 0xa8, 0xc9, 0x23,
+ 0x30, 0xa1, 0xb6, 0x5a, 0x0e, 0x26, 0xe7, 0x44, 0xf4, 0xe8, 0x51, 0xf0, 0xc5, 0xc4, 0x70, 0xe6,
+ 0x59, 0xc8, 0xf0, 0x38, 0xe0, 0x2d, 0x19, 0x47, 0x42, 0xb1, 0xe9, 0x79, 0x3a, 0x31, 0x9b, 0x95,
+ 0x33, 0x26, 0x57, 0x9e, 0x81, 0xbc, 0xee, 0x2a, 0xc1, 0xf5, 0x7b, 0xe2, 0x74, 0x62, 0x36, 0x23,
+ 0xe7, 0x74, 0xd7, 0xbf, 0xba, 0x2c, 0xbf, 0x9e, 0x80, 0x42, 0xf4, 0xf3, 0x81, 0xb4, 0x0a, 0x19,
+ 0xc3, 0xd2, 0x54, 0x92, 0x5a, 0xf4, 0xdb, 0xd5, 0x6c, 0xcc, 0x17, 0x87, 0xb9, 0x0d, 0x66, 0x2f,
+ 0xfb, 0xc8, 0x99, 0xbf, 0x13, 0x20, 0xc3, 0xc5, 0xd2, 0x09, 0x48, 0xd9, 0xaa, 0x77, 0x40, 0xe8,
+ 0xd2, 0xcb, 0x09, 0x51, 0x90, 0xc9, 0x33, 0x96, 0xbb, 0xb6, 0x6a, 0x92, 0x14, 0x60, 0x72, 0xfc,
+ 0x8c, 0xe7, 0xd5, 0x40, 0x6a, 0x93, 0x9c, 0x6b, 0xac, 0x76, 0x1b, 0x99, 0x9e, 0xcb, 0xe7, 0x95,
+ 0xc9, 0x57, 0x98, 0x58, 0x7a, 0x1c, 0x26, 0x3d, 0x47, 0xd5, 0x8d, 0x88, 0x6d, 0x8a, 0xd8, 0x8a,
+ 0x5c, 0xe1, 0x1b, 0x57, 0xe0, 0x24, 0xe7, 0x6d, 0x22, 0x4f, 0xd5, 0x0e, 0x50, 0x33, 0x00, 0x8d,
+ 0x92, 0xfb, 0x8b, 0x7b, 0x99, 0xc1, 0x2a, 0xd3, 0x73, 0x6c, 0xf9, 0x7b, 0x02, 0x4c, 0xf2, 0x93,
+ 0x58, 0xd3, 0x0f, 0xd6, 0x26, 0x80, 0x6a, 0x9a, 0x96, 0x17, 0x0e, 0x57, 0x7f, 0x2a, 0xf7, 0xe1,
+ 0xe6, 0xaa, 0x3e, 0x48, 0x0e, 0x11, 0xcc, 0xb4, 0x01, 0x02, 0xcd, 0x91, 0x61, 0x3b, 0x05, 0x39,
+ 0xf6, 0x6d, 0x88, 0x7c, 0x60, 0xa4, 0x67, 0x77, 0xa0, 0x22, 0x7c, 0x64, 0x93, 0xa6, 0x21, 0xbd,
+ 0x87, 0x5a, 0xba, 0xc9, 0x6e, 0x7c, 0xe9, 0x03, 0xbf, 0x61, 0x49, 0xf9, 0x37, 0x2c, 0xcb, 0x9f,
+ 0x86, 0x29, 0xcd, 0x6a, 0xf7, 0xba, 0xbb, 0x2c, 0xf6, 0xdc, 0x1f, 0xb8, 0x57, 0x84, 0x17, 0x21,
+ 0x68, 0x31, 0xdf, 0x17, 0x84, 0x2f, 0x27, 0x92, 0x6b, 0xdb, 0xcb, 0x5f, 0x4b, 0xcc, 0xac, 0x51,
+ 0xe8, 0x36, 0x1f, 0xa9, 0x8c, 0xf6, 0x0d, 0xa4, 0x61, 0xef, 0xe1, 0x2b, 0x8f, 0xc3, 0x93, 0x2d,
+ 0xdd, 0x3b, 0xe8, 0xec, 0xcd, 0x69, 0x56, 0x7b, 0xbe, 0x65, 0xb5, 0xac, 0xe0, 0x9b, 0x2a, 0x7e,
+ 0x22, 0x0f, 0xe4, 0x2f, 0xf6, 0x5d, 0x35, 0xeb, 0x4b, 0x67, 0x62, 0x3f, 0xc2, 0x56, 0xb6, 0x60,
+ 0x8a, 0x19, 0x2b, 0xe4, 0xc3, 0x0e, 0x3d, 0x9e, 0x48, 0x77, 0xbd, 0x1c, 0x2b, 0x7e, 0xe3, 0x1d,
+ 0xb2, 0x5d, 0xcb, 0x93, 0x0c, 0x8a, 0x75, 0xf4, 0x04, 0x53, 0x91, 0xe1, 0x9e, 0x08, 0x1f, 0x5d,
+ 0x9a, 0xc8, 0x89, 0x61, 0xfc, 0x2e, 0x63, 0x9c, 0x0a, 0x31, 0x36, 0x18, 0xb4, 0xb2, 0x02, 0xe3,
+ 0xc7, 0xe1, 0xfa, 0x1b, 0xc6, 0x95, 0x47, 0x61, 0x92, 0x35, 0x98, 0x20, 0x24, 0x5a, 0xc7, 0xf5,
+ 0xac, 0x36, 0xa9, 0x7b, 0x77, 0xa7, 0xf9, 0xdb, 0x77, 0xe8, 0x5a, 0x29, 0x60, 0xd8, 0x8a, 0x8f,
+ 0xaa, 0x54, 0x80, 0x7c, 0xcb, 0x6a, 0x22, 0xcd, 0x88, 0x61, 0x78, 0x83, 0x39, 0xe2, 0xdb, 0x57,
+ 0x3e, 0x05, 0xd3, 0xf8, 0x6f, 0x52, 0x96, 0xc2, 0x9e, 0xc4, 0xdf, 0xa4, 0x15, 0xbf, 0xf7, 0x32,
+ 0x5d, 0x8e, 0x53, 0x3e, 0x41, 0xc8, 0xa7, 0xd0, 0x2c, 0xb6, 0x90, 0xe7, 0x21, 0xc7, 0x55, 0x54,
+ 0x63, 0x90, 0x7b, 0xa1, 0xab, 0x88, 0xe2, 0x17, 0xde, 0x8d, 0xce, 0xe2, 0x1a, 0x45, 0x56, 0x0d,
+ 0xa3, 0xb2, 0x0b, 0xf7, 0x0e, 0xc8, 0x8a, 0x21, 0x38, 0x5f, 0x61, 0x9c, 0xd3, 0x7d, 0x99, 0x81,
+ 0x69, 0xb7, 0x81, 0xcb, 0xfd, 0xb9, 0x1c, 0x82, 0xf3, 0xb7, 0x18, 0xa7, 0xc4, 0xb0, 0x7c, 0x4a,
+ 0x31, 0xe3, 0xb3, 0x30, 0x79, 0x1d, 0x39, 0x7b, 0x96, 0xcb, 0xae, 0x7f, 0x86, 0xa0, 0x7b, 0x95,
+ 0xd1, 0x4d, 0x30, 0x20, 0xb9, 0x0f, 0xc2, 0x5c, 0x17, 0x21, 0xb3, 0xaf, 0x6a, 0x68, 0x08, 0x8a,
+ 0x2f, 0x32, 0x8a, 0x31, 0x6c, 0x8f, 0xa1, 0x55, 0xc8, 0xb7, 0x2c, 0xb6, 0x33, 0xc5, 0xc3, 0x5f,
+ 0x63, 0xf0, 0x1c, 0xc7, 0x30, 0x0a, 0xdb, 0xb2, 0x3b, 0x06, 0xde, 0xb6, 0xe2, 0x29, 0x7e, 0x9b,
+ 0x53, 0x70, 0x0c, 0xa3, 0x38, 0x46, 0x58, 0x7f, 0x87, 0x53, 0xb8, 0xa1, 0x78, 0x3e, 0x03, 0x39,
+ 0xcb, 0x34, 0xba, 0x96, 0x39, 0x8c, 0x13, 0x5f, 0x62, 0x0c, 0xc0, 0x20, 0x98, 0xe0, 0x12, 0x64,
+ 0x87, 0x9d, 0x88, 0xdf, 0x7b, 0x97, 0x2f, 0x0f, 0x3e, 0x03, 0x6b, 0x30, 0xc1, 0x0b, 0x94, 0x6e,
+ 0x99, 0x43, 0x50, 0x7c, 0x85, 0x51, 0x14, 0x42, 0x30, 0x36, 0x0c, 0x0f, 0xb9, 0x5e, 0x0b, 0x0d,
+ 0x43, 0xf2, 0x3a, 0x1f, 0x06, 0x83, 0xb0, 0x50, 0xee, 0x21, 0x53, 0x3b, 0x18, 0x8e, 0xe1, 0xab,
+ 0x3c, 0x94, 0x1c, 0x83, 0x29, 0x56, 0x60, 0xbc, 0xad, 0x3a, 0xee, 0x81, 0x6a, 0x0c, 0x35, 0x1d,
+ 0xbf, 0xcf, 0x38, 0xf2, 0x3e, 0x88, 0x45, 0xa4, 0x63, 0x1e, 0x87, 0xe6, 0x6b, 0x3c, 0x22, 0x21,
+ 0x18, 0x5b, 0x7a, 0xae, 0x47, 0xee, 0xca, 0x8e, 0xc3, 0xf6, 0x07, 0x7c, 0xe9, 0x51, 0xec, 0x66,
+ 0x98, 0xf1, 0x12, 0x64, 0x5d, 0xfd, 0xe6, 0x50, 0x34, 0x7f, 0xc8, 0x67, 0x9a, 0x00, 0x30, 0xf8,
+ 0x05, 0x38, 0x39, 0x70, 0x9b, 0x18, 0x82, 0xec, 0x8f, 0x18, 0xd9, 0x89, 0x01, 0x5b, 0x05, 0x2b,
+ 0x09, 0xc7, 0xa5, 0xfc, 0x63, 0x5e, 0x12, 0x50, 0x0f, 0xd7, 0x36, 0x3e, 0x2b, 0xb8, 0xea, 0xfe,
+ 0xf1, 0xa2, 0xf6, 0x27, 0x3c, 0x6a, 0x14, 0x1b, 0x89, 0xda, 0x0e, 0x9c, 0x60, 0x8c, 0xc7, 0x9b,
+ 0xd7, 0xaf, 0xf3, 0xc2, 0x4a, 0xd1, 0xbb, 0xd1, 0xd9, 0xfd, 0x34, 0xcc, 0xf8, 0xe1, 0xe4, 0x4d,
+ 0xa9, 0xab, 0xb4, 0x55, 0x7b, 0x08, 0xe6, 0x6f, 0x30, 0x66, 0x5e, 0xf1, 0xfd, 0xae, 0xd6, 0xdd,
+ 0x54, 0x6d, 0x4c, 0xfe, 0x3c, 0x14, 0x39, 0x79, 0xc7, 0x74, 0x90, 0x66, 0xb5, 0x4c, 0xfd, 0x26,
+ 0x6a, 0x0e, 0x41, 0xfd, 0xa7, 0x3d, 0x53, 0xb5, 0x1b, 0x82, 0x63, 0xe6, 0x75, 0x10, 0xfd, 0x5e,
+ 0x45, 0xd1, 0xdb, 0xb6, 0xe5, 0x78, 0x31, 0x8c, 0x7f, 0xc6, 0x67, 0xca, 0xc7, 0xad, 0x13, 0x58,
+ 0xa5, 0x06, 0x05, 0xf2, 0x38, 0x6c, 0x4a, 0xfe, 0x39, 0x23, 0x1a, 0x0f, 0x50, 0xac, 0x70, 0x68,
+ 0x56, 0xdb, 0x56, 0x9d, 0x61, 0xea, 0xdf, 0x5f, 0xf0, 0xc2, 0xc1, 0x20, 0xac, 0x70, 0x78, 0x5d,
+ 0x1b, 0xe1, 0xdd, 0x7e, 0x08, 0x86, 0x6f, 0xf2, 0xc2, 0xc1, 0x31, 0x8c, 0x82, 0x37, 0x0c, 0x43,
+ 0x50, 0xfc, 0x25, 0xa7, 0xe0, 0x18, 0x4c, 0xf1, 0xc9, 0x60, 0xa3, 0x75, 0x50, 0x4b, 0x77, 0x3d,
+ 0x87, 0xb6, 0xc2, 0x77, 0xa7, 0xfa, 0xd6, 0xbb, 0xd1, 0x26, 0x4c, 0x0e, 0x41, 0x71, 0x25, 0x62,
+ 0x57, 0xa8, 0xe4, 0xa4, 0x14, 0xef, 0xd8, 0xb7, 0x79, 0x25, 0x0a, 0xc1, 0xb0, 0x6f, 0xa1, 0x0e,
+ 0x11, 0x87, 0x5d, 0xc3, 0xe7, 0x83, 0x21, 0xe8, 0xbe, 0xd3, 0xe3, 0x5c, 0x83, 0x63, 0x31, 0x67,
+ 0xa8, 0xff, 0xe9, 0x98, 0xd7, 0x50, 0x77, 0xa8, 0xec, 0xfc, 0xab, 0x9e, 0xfe, 0x67, 0x97, 0x22,
+ 0x69, 0x0d, 0x99, 0xe8, 0xe9, 0xa7, 0xa4, 0xb8, 0x5f, 0x01, 0x15, 0x7f, 0xfa, 0x0e, 0x1b, 0x6f,
+ 0xb4, 0x9d, 0xaa, 0x6c, 0xe0, 0x24, 0x8f, 0x36, 0x3d, 0xf1, 0x64, 0x2f, 0xdf, 0xf1, 0xf3, 0x3c,
+ 0xd2, 0xf3, 0x54, 0x2e, 0xc3, 0x78, 0xa4, 0xe1, 0x89, 0xa7, 0xfa, 0x19, 0x46, 0x95, 0x0f, 0xf7,
+ 0x3b, 0x95, 0x25, 0x48, 0xe1, 0xe6, 0x25, 0x1e, 0xfe, 0xb3, 0x0c, 0x4e, 0xcc, 0x2b, 0x1f, 0x87,
+ 0x0c, 0x6f, 0x5a, 0xe2, 0xa1, 0x3f, 0xc7, 0xa0, 0x3e, 0x04, 0xc3, 0x79, 0xc3, 0x12, 0x0f, 0xff,
+ 0x79, 0x0e, 0xe7, 0x10, 0x0c, 0x1f, 0x3e, 0x84, 0x7f, 0xfd, 0x0b, 0x29, 0xb6, 0xe9, 0xf0, 0xd8,
+ 0x5d, 0x82, 0x31, 0xd6, 0xa9, 0xc4, 0xa3, 0x3f, 0xcb, 0x5e, 0xce, 0x11, 0x95, 0xf3, 0x90, 0x1e,
+ 0x32, 0xe0, 0xbf, 0xc4, 0xa0, 0xd4, 0xbe, 0xb2, 0x02, 0xb9, 0x50, 0x77, 0x12, 0x0f, 0xff, 0x65,
+ 0x06, 0x0f, 0xa3, 0xb0, 0xeb, 0xac, 0x3b, 0x89, 0x27, 0xf8, 0x15, 0xee, 0x3a, 0x43, 0xe0, 0xb0,
+ 0xf1, 0xc6, 0x24, 0x1e, 0xfd, 0xab, 0x3c, 0xea, 0x1c, 0x52, 0x79, 0x06, 0xb2, 0xfe, 0x66, 0x13,
+ 0x8f, 0xff, 0x35, 0x86, 0x0f, 0x30, 0x38, 0x02, 0xa1, 0xcd, 0x2e, 0x9e, 0xe2, 0x73, 0x3c, 0x02,
+ 0x21, 0x14, 0x5e, 0x46, 0xbd, 0x0d, 0x4c, 0x3c, 0xd3, 0xaf, 0xf3, 0x65, 0xd4, 0xd3, 0xbf, 0xe0,
+ 0xd9, 0x24, 0x35, 0x3f, 0x9e, 0xe2, 0x37, 0xf8, 0x6c, 0x12, 0x7b, 0xec, 0x46, 0x6f, 0x47, 0x10,
+ 0xcf, 0xf1, 0x9b, 0xdc, 0x8d, 0x9e, 0x86, 0xa0, 0xb2, 0x0d, 0x52, 0x7f, 0x37, 0x10, 0xcf, 0xf7,
+ 0x79, 0xc6, 0x37, 0xd9, 0xd7, 0x0c, 0x54, 0x9e, 0x83, 0x13, 0x83, 0x3b, 0x81, 0x78, 0xd6, 0x2f,
+ 0xdc, 0xe9, 0x39, 0xbb, 0x85, 0x1b, 0x81, 0xca, 0x4e, 0xb0, 0xa5, 0x84, 0xbb, 0x80, 0x78, 0xda,
+ 0x57, 0xee, 0x44, 0x0b, 0x77, 0xb8, 0x09, 0xa8, 0x54, 0x01, 0x82, 0x0d, 0x38, 0x9e, 0xeb, 0x55,
+ 0xc6, 0x15, 0x02, 0xe1, 0xa5, 0xc1, 0xf6, 0xdf, 0x78, 0xfc, 0x17, 0xf9, 0xd2, 0x60, 0x08, 0xbc,
+ 0x34, 0xf8, 0xd6, 0x1b, 0x8f, 0x7e, 0x8d, 0x2f, 0x0d, 0x0e, 0xc1, 0x99, 0x1d, 0xda, 0xdd, 0xe2,
+ 0x19, 0xbe, 0xc4, 0x33, 0x3b, 0x84, 0xaa, 0x6c, 0xc1, 0x64, 0xdf, 0x86, 0x18, 0x4f, 0xf5, 0x65,
+ 0x46, 0x25, 0xf6, 0xee, 0x87, 0xe1, 0xcd, 0x8b, 0x6d, 0x86, 0xf1, 0x6c, 0xbf, 0xdb, 0xb3, 0x79,
+ 0xb1, 0xbd, 0xb0, 0x72, 0x09, 0x32, 0x66, 0xc7, 0x30, 0xf0, 0xe2, 0x91, 0xee, 0xfe, 0xcb, 0xbd,
+ 0xe2, 0x3f, 0x7f, 0xc0, 0xa2, 0xc3, 0x01, 0x95, 0x25, 0x48, 0xa3, 0xf6, 0x1e, 0x6a, 0xc6, 0x21,
+ 0xff, 0xe5, 0x03, 0x5e, 0x30, 0xb1, 0x75, 0xe5, 0x19, 0x00, 0x7a, 0x35, 0x42, 0x3e, 0xfb, 0xc5,
+ 0x60, 0xff, 0xf5, 0x03, 0xf6, 0x9b, 0x9a, 0x00, 0x12, 0x10, 0xd0, 0x5f, 0xe8, 0xdc, 0x9d, 0xe0,
+ 0xdd, 0x28, 0x01, 0x99, 0x91, 0x8b, 0x30, 0x76, 0xd5, 0xb5, 0x4c, 0x4f, 0x6d, 0xc5, 0xa1, 0xff,
+ 0x8d, 0xa1, 0xb9, 0x3d, 0x0e, 0x58, 0xdb, 0x72, 0x90, 0xa7, 0xb6, 0xdc, 0x38, 0xec, 0xbf, 0x33,
+ 0xac, 0x0f, 0xc0, 0x60, 0x4d, 0x75, 0xbd, 0x61, 0xc6, 0xfd, 0x1f, 0x1c, 0xcc, 0x01, 0xd8, 0x69,
+ 0xfc, 0xf7, 0x35, 0xd4, 0x8d, 0xc3, 0xbe, 0xc7, 0x9d, 0x66, 0xf6, 0x95, 0x8f, 0x43, 0x16, 0xff,
+ 0x49, 0x7f, 0x28, 0x17, 0x03, 0xfe, 0x4f, 0x06, 0x0e, 0x10, 0xf8, 0xcd, 0xae, 0xd7, 0xf4, 0xf4,
+ 0xf8, 0x60, 0xff, 0x17, 0x9b, 0x69, 0x6e, 0x5f, 0xa9, 0x42, 0xce, 0xf5, 0x9a, 0xcd, 0x0e, 0xeb,
+ 0x4f, 0x63, 0xe0, 0xff, 0xfd, 0x81, 0x7f, 0x65, 0xe1, 0x63, 0xf0, 0x6c, 0xdf, 0xb8, 0xe6, 0xd9,
+ 0x16, 0xf9, 0xcc, 0x11, 0xc7, 0x70, 0x87, 0x31, 0x84, 0x20, 0xcb, 0xb5, 0xc1, 0xd7, 0xb7, 0xb0,
+ 0x66, 0xad, 0x59, 0xf4, 0xe2, 0xf6, 0xc5, 0x72, 0xfc, 0x0d, 0x2c, 0xfc, 0x6f, 0x06, 0xee, 0xd7,
+ 0xac, 0xf6, 0x9e, 0xe5, 0xce, 0x87, 0x8a, 0xf9, 0xbc, 0x65, 0x32, 0x4e, 0x29, 0x69, 0x99, 0x68,
+ 0xe6, 0x78, 0x77, 0xb9, 0xe5, 0x93, 0x90, 0x6e, 0x74, 0xf6, 0xf6, 0xba, 0x92, 0x08, 0x49, 0xb7,
+ 0xb3, 0xc7, 0x7e, 0x70, 0x85, 0xff, 0x2c, 0xbf, 0x95, 0x84, 0xf1, 0xaa, 0x61, 0xec, 0x74, 0x6d,
+ 0xe4, 0xd6, 0x4d, 0x54, 0xdf, 0x97, 0x8a, 0x30, 0x4a, 0x06, 0xfb, 0x34, 0x31, 0x13, 0xae, 0x8c,
+ 0xc8, 0xec, 0xd9, 0xd7, 0x2c, 0x90, 0x5b, 0xee, 0x84, 0xaf, 0x59, 0xf0, 0x35, 0x67, 0xe9, 0x25,
+ 0xb7, 0xaf, 0x39, 0xeb, 0x6b, 0x16, 0xc9, 0x55, 0x77, 0xd2, 0xd7, 0x2c, 0xfa, 0x9a, 0x25, 0xf2,
+ 0x29, 0x67, 0xdc, 0xd7, 0x2c, 0xf9, 0x9a, 0x73, 0xe4, 0xe3, 0x4d, 0xca, 0xd7, 0x9c, 0xf3, 0x35,
+ 0xe7, 0xc9, 0x37, 0x9b, 0x49, 0x5f, 0x73, 0xde, 0xd7, 0x5c, 0x20, 0xdf, 0x69, 0x24, 0x5f, 0x73,
+ 0xc1, 0xd7, 0x5c, 0x24, 0xbf, 0xac, 0x1a, 0xf3, 0x35, 0x17, 0xa5, 0x19, 0x18, 0xa3, 0x23, 0x7b,
+ 0x8a, 0x7c, 0xcc, 0x9f, 0xb8, 0x32, 0x22, 0x73, 0x41, 0xa0, 0x7b, 0x9a, 0xfc, 0x7a, 0x6a, 0x34,
+ 0xd0, 0x3d, 0x1d, 0xe8, 0x16, 0xc8, 0x7f, 0xe2, 0x10, 0x03, 0xdd, 0x42, 0xa0, 0x3b, 0x5b, 0x1c,
+ 0xc7, 0x39, 0x12, 0xe8, 0xce, 0x06, 0xba, 0xc5, 0x62, 0x01, 0xcf, 0x40, 0xa0, 0x5b, 0x0c, 0x74,
+ 0x4b, 0xc5, 0x89, 0xd3, 0xc2, 0x6c, 0x3e, 0xd0, 0x2d, 0x49, 0x4f, 0x42, 0xce, 0xed, 0xec, 0x29,
+ 0xac, 0xda, 0x93, 0x5f, 0x69, 0xe5, 0x16, 0x60, 0x0e, 0xe7, 0x04, 0x99, 0xd6, 0x2b, 0x23, 0x32,
+ 0xb8, 0x9d, 0x3d, 0x56, 0x8c, 0x97, 0xf3, 0x40, 0xee, 0xa0, 0x14, 0xf2, 0xe3, 0xea, 0xf2, 0x9b,
+ 0x02, 0x64, 0x77, 0x6e, 0x58, 0xe4, 0x53, 0xbe, 0xfb, 0xff, 0x3c, 0xb9, 0xdc, 0xe9, 0xb3, 0x8b,
+ 0xe4, 0x6b, 0x6b, 0xf6, 0x8a, 0x20, 0x73, 0x41, 0xa0, 0x5b, 0x2a, 0x3e, 0x48, 0x06, 0xe4, 0xeb,
+ 0x96, 0xa4, 0x79, 0xc8, 0x87, 0x06, 0xb4, 0x40, 0x7e, 0x3f, 0x15, 0x1d, 0x91, 0x20, 0xe7, 0x82,
+ 0x11, 0x2d, 0x2c, 0xa7, 0x01, 0xa7, 0x3d, 0xfe, 0xc7, 0xbb, 0x61, 0x95, 0x3f, 0x97, 0x80, 0x1c,
+ 0xbd, 0xb6, 0x26, 0xa3, 0xc2, 0xaf, 0xa2, 0x27, 0x9b, 0x2e, 0x73, 0x63, 0x44, 0xe6, 0x02, 0x49,
+ 0x06, 0xa0, 0xa6, 0x38, 0xc3, 0xa9, 0x27, 0xcb, 0x4f, 0xfd, 0xc3, 0x5b, 0xa7, 0x9e, 0x38, 0x72,
+ 0x05, 0xe1, 0xd8, 0xcd, 0xd3, 0x32, 0x3e, 0xb7, 0xab, 0x9b, 0xde, 0xd3, 0x0b, 0x17, 0x70, 0x80,
+ 0x03, 0x16, 0x69, 0x17, 0x32, 0x2b, 0xaa, 0x4b, 0x7e, 0x79, 0x49, 0x5c, 0x4f, 0x2d, 0x9f, 0xff,
+ 0x9f, 0xb7, 0x4e, 0x9d, 0x8d, 0x61, 0x64, 0x15, 0x76, 0x6e, 0xb3, 0x8b, 0x59, 0xcf, 0x2d, 0x62,
+ 0xf8, 0x95, 0x11, 0xd9, 0xa7, 0x92, 0x16, 0xb8, 0xab, 0x5b, 0x6a, 0x9b, 0xfe, 0x50, 0x2c, 0xb9,
+ 0x2c, 0x1e, 0xbe, 0x75, 0x2a, 0xbf, 0xd9, 0x0d, 0xe4, 0x81, 0x2b, 0xf8, 0x69, 0x39, 0x03, 0xa3,
+ 0xd4, 0xd5, 0xe5, 0xd5, 0x37, 0x6e, 0x97, 0x46, 0xde, 0xbc, 0x5d, 0x1a, 0xf9, 0xfb, 0xdb, 0xa5,
+ 0x91, 0xb7, 0x6f, 0x97, 0x84, 0xf7, 0x6e, 0x97, 0x84, 0xf7, 0x6f, 0x97, 0x84, 0x5b, 0x87, 0x25,
+ 0xe1, 0xab, 0x87, 0x25, 0xe1, 0xeb, 0x87, 0x25, 0xe1, 0x5b, 0x87, 0x25, 0xe1, 0x8d, 0xc3, 0xd2,
+ 0xc8, 0x9b, 0x87, 0x25, 0xe1, 0xed, 0xc3, 0x92, 0xf0, 0x83, 0xc3, 0xd2, 0xc8, 0x7b, 0x87, 0x25,
+ 0xe1, 0xfd, 0xc3, 0xd2, 0xc8, 0xad, 0xef, 0x97, 0x46, 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x83,
+ 0x6f, 0x66, 0xca, 0x73, 0x37, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -4335,7 +4380,7 @@ func (m *Subby) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4363,7 +4408,7 @@ func (m *Subby) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4373,6 +4418,9 @@ func (m *Subby) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4388,6 +4436,9 @@ func (m *Subby) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthOne
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthOne
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -4416,7 +4467,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4466,7 +4517,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4486,7 +4537,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4506,7 +4557,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4526,7 +4577,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4546,7 +4597,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4567,7 +4618,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4632,7 +4683,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4653,7 +4704,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4663,6 +4714,9 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4682,7 +4736,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4691,6 +4745,9 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4712,7 +4769,7 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4721,6 +4778,9 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4739,6 +4799,9 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthOne
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthOne
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -4767,7 +4830,7 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4817,7 +4880,7 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4837,7 +4900,7 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4847,6 +4910,9 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4866,7 +4932,7 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4875,6 +4941,9 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4896,7 +4965,7 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4905,6 +4974,9 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4923,6 +4995,9 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthOne
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthOne
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -4951,7 +5026,7 @@ func (m *CustomOneof) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4979,7 +5054,7 @@ func (m *CustomOneof) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4989,6 +5064,9 @@ func (m *CustomOneof) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5008,7 +5086,7 @@ func (m *CustomOneof) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5017,6 +5095,9 @@ func (m *CustomOneof) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5041,7 +5122,7 @@ func (m *CustomOneof) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift
+ v |= github_com_gogo_protobuf_test_casttype.MyUint64Type(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5061,7 +5142,7 @@ func (m *CustomOneof) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5076,6 +5157,9 @@ func (m *CustomOneof) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthOne
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthOne
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -5143,10 +5227,13 @@ func skipOne(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthOne
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthOne
+ }
return iNdEx, nil
case 3:
for {
@@ -5175,6 +5262,9 @@ func skipOne(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthOne
+ }
}
return iNdEx, nil
case 4:
@@ -5193,47 +5283,3 @@ var (
ErrInvalidLengthOne = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowOne = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("combos/unmarshaler/one.proto", fileDescriptor_one_539b073fce05cef9) }
-
-var fileDescriptor_one_539b073fce05cef9 = []byte{
- // 602 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0x3f, 0x4f, 0x1b, 0x31,
- 0x14, 0x00, 0x70, 0x3f, 0x42, 0x42, 0x70, 0x42, 0x49, 0x6f, 0x72, 0x51, 0x65, 0xac, 0xb4, 0x95,
- 0x3c, 0x94, 0x84, 0x5c, 0x12, 0xfe, 0x8c, 0x3d, 0xaa, 0x2a, 0x0b, 0x45, 0x3a, 0x60, 0x46, 0x39,
- 0x6a, 0x42, 0xa4, 0xe4, 0x8c, 0xe2, 0x3b, 0xa1, 0x6c, 0x7c, 0x86, 0x7e, 0x8a, 0x8e, 0x1d, 0xfb,
- 0x11, 0x18, 0x33, 0x56, 0x1d, 0x22, 0xee, 0xba, 0x74, 0x64, 0x44, 0x9d, 0x2a, 0xdf, 0x11, 0xbb,
- 0x52, 0x55, 0x75, 0xe9, 0x94, 0x7b, 0xef, 0x77, 0x7e, 0x79, 0xef, 0x6c, 0xe3, 0xe7, 0xe7, 0x72,
- 0x1c, 0x48, 0xd5, 0x8c, 0xc3, 0x71, 0x7f, 0xa2, 0x2e, 0xfb, 0x23, 0x31, 0x69, 0xca, 0x50, 0x34,
- 0xae, 0x26, 0x32, 0x92, 0x4e, 0x41, 0x86, 0x62, 0x63, 0x6b, 0x30, 0x8c, 0x2e, 0xe3, 0xa0, 0x71,
- 0x2e, 0xc7, 0xcd, 0x81, 0x1c, 0xc8, 0x66, 0x66, 0x41, 0x7c, 0x91, 0x45, 0x59, 0x90, 0x3d, 0xe5,
- 0x6b, 0xea, 0xcf, 0x70, 0xf1, 0x38, 0x0e, 0x82, 0xa9, 0x53, 0xc3, 0x05, 0x15, 0x07, 0x04, 0x18,
- 0xf0, 0x55, 0x5f, 0x3f, 0xd6, 0xe7, 0x05, 0xbc, 0xf6, 0x66, 0x34, 0x3a, 0x99, 0x5e, 0x09, 0x75,
- 0x14, 0x8a, 0xa3, 0x0b, 0x87, 0xe0, 0xd2, 0xbb, 0xa1, 0x18, 0x7d, 0x68, 0x65, 0xaf, 0x41, 0x0f,
- 0xf9, 0x8f, 0xb1, 0x11, 0x97, 0x2c, 0x31, 0xe0, 0x4b, 0x46, 0x5c, 0x23, 0x6d, 0x52, 0x60, 0xc0,
- 0x8b, 0x46, 0xda, 0x46, 0x3a, 0x64, 0x99, 0x01, 0x2f, 0x18, 0xe9, 0x18, 0xe9, 0x92, 0x22, 0x03,
- 0xbe, 0x66, 0xa4, 0x6b, 0x64, 0x87, 0x94, 0x18, 0xf0, 0x65, 0x23, 0x3b, 0x46, 0x76, 0xc9, 0x0a,
- 0x03, 0xfe, 0xd4, 0xc8, 0xae, 0x91, 0x3d, 0x52, 0x66, 0xc0, 0x1d, 0x23, 0x7b, 0x46, 0xf6, 0xc9,
- 0x2a, 0x03, 0xbe, 0x62, 0x64, 0xdf, 0xd9, 0xc0, 0x2b, 0xf9, 0x64, 0xdb, 0x04, 0x33, 0xe0, 0xeb,
- 0x3d, 0xe4, 0x2f, 0x12, 0xd6, 0x5a, 0xa4, 0xc2, 0x80, 0x97, 0xac, 0xb5, 0xac, 0xb9, 0xa4, 0xca,
- 0x80, 0xd7, 0xac, 0xb9, 0xd6, 0xda, 0x64, 0x8d, 0x01, 0x2f, 0x5b, 0x6b, 0x5b, 0xeb, 0x90, 0x27,
- 0x7a, 0x07, 0xac, 0x75, 0xac, 0x75, 0xc9, 0x3a, 0x03, 0x5e, 0xb5, 0xd6, 0x75, 0xb6, 0x70, 0x45,
- 0xc5, 0xc1, 0xd9, 0x58, 0x28, 0xd5, 0x1f, 0x08, 0x52, 0x63, 0xc0, 0x2b, 0x2e, 0x6e, 0xe8, 0x33,
- 0x91, 0x6d, 0x6b, 0x0f, 0xf9, 0x58, 0xc5, 0xc1, 0x61, 0xee, 0x5e, 0x15, 0xe3, 0x48, 0xa8, 0xe8,
- 0x4c, 0x86, 0x42, 0x5e, 0xd4, 0x67, 0x80, 0x57, 0x4f, 0xae, 0xe5, 0x91, 0x0e, 0xd4, 0x7f, 0xde,
- 0xdc, 0x45, 0xd3, 0xed, 0x0e, 0xa9, 0x67, 0x03, 0x81, 0xbf, 0x48, 0x58, 0xeb, 0x92, 0x17, 0xd9,
- 0x40, 0xc6, 0xba, 0x4e, 0x13, 0x57, 0x7f, 0x1b, 0xc8, 0x25, 0x2f, 0xff, 0x98, 0x08, 0xfc, 0x8a,
- 0x9d, 0xc8, 0xf5, 0x8a, 0x58, 0x1f, 0x7b, 0xfd, 0x13, 0x5d, 0xcb, 0xfa, 0xc7, 0x25, 0x5c, 0x39,
- 0x88, 0x55, 0x24, 0xc7, 0xd9, 0x54, 0xfa, 0xaf, 0x8e, 0xa3, 0xc9, 0x30, 0x1c, 0x4c, 0x1f, 0xdb,
- 0x40, 0xfe, 0x22, 0xe1, 0xf8, 0x18, 0xe7, 0xaf, 0xea, 0x13, 0x9e, 0x77, 0xe2, 0x6d, 0x7f, 0x9b,
- 0x6f, 0xbe, 0xfe, 0xeb, 0x0d, 0xd2, 0xdf, 0xae, 0x79, 0x9e, 0xad, 0x69, 0x9c, 0x0e, 0xc3, 0xa8,
- 0xe5, 0xee, 0xe9, 0x0f, 0x6c, 0xab, 0x38, 0xa7, 0xb8, 0x7c, 0xd0, 0x57, 0x51, 0x56, 0x51, 0xb7,
- 0xbe, 0xec, 0xed, 0xfe, 0x9c, 0x6f, 0xb6, 0xff, 0x51, 0xb1, 0xaf, 0xa2, 0x68, 0x7a, 0x25, 0x1a,
- 0x87, 0x53, 0x5d, 0x75, 0xa7, 0xa3, 0x97, 0xf7, 0x90, 0x6f, 0x4a, 0x39, 0xee, 0xa2, 0xd5, 0xf7,
- 0xfd, 0xb1, 0x20, 0xaf, 0xf4, 0x75, 0xf1, 0x6a, 0xe9, 0x7c, 0xb3, 0x7a, 0x38, 0xb5, 0x79, 0xdb,
- 0x8a, 0x8e, 0xbc, 0x32, 0x2e, 0xe5, 0xad, 0x7a, 0x6f, 0x6f, 0x13, 0x8a, 0x66, 0x09, 0x45, 0x5f,
- 0x13, 0x8a, 0xee, 0x12, 0x0a, 0xf7, 0x09, 0x85, 0x87, 0x84, 0xc2, 0x4d, 0x4a, 0xe1, 0x53, 0x4a,
- 0xe1, 0x73, 0x4a, 0xe1, 0x4b, 0x4a, 0xe1, 0x36, 0xa5, 0x68, 0x96, 0x52, 0xb8, 0x4b, 0x29, 0xfc,
- 0x48, 0x29, 0xba, 0x4f, 0x29, 0x3c, 0xa4, 0x14, 0xdd, 0x7c, 0xa7, 0xe8, 0x57, 0x00, 0x00, 0x00,
- 0xff, 0xff, 0xdd, 0x1c, 0x58, 0x6c, 0x7c, 0x04, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/one.pb.go
index f406acc9cc..6975d64bf1 100644
--- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/one.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/one.pb.go
@@ -3,23 +3,21 @@
package one
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-
-import encoding_binary "encoding/binary"
-
-import io "io"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -42,7 +40,7 @@ type Subby struct {
func (m *Subby) Reset() { *m = Subby{} }
func (*Subby) ProtoMessage() {}
func (*Subby) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_475397b14a80232f, []int{0}
+ return fileDescriptor_5ca5df6bbfd2f47d, []int{0}
}
func (m *Subby) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -59,8 +57,8 @@ func (m *Subby) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Subby) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Subby.Merge(dst, src)
+func (m *Subby) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Subby.Merge(m, src)
}
func (m *Subby) XXX_Size() int {
return m.Size()
@@ -98,7 +96,7 @@ type SampleOneOf struct {
func (m *SampleOneOf) Reset() { *m = SampleOneOf{} }
func (*SampleOneOf) ProtoMessage() {}
func (*SampleOneOf) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_475397b14a80232f, []int{1}
+ return fileDescriptor_5ca5df6bbfd2f47d, []int{1}
}
func (m *SampleOneOf) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -115,8 +113,8 @@ func (m *SampleOneOf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *SampleOneOf) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SampleOneOf.Merge(dst, src)
+func (m *SampleOneOf) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SampleOneOf.Merge(m, src)
}
func (m *SampleOneOf) XXX_Size() int {
return m.Size()
@@ -595,6 +593,39 @@ func init() {
proto.RegisterType((*Subby)(nil), "one.Subby")
proto.RegisterType((*SampleOneOf)(nil), "one.SampleOneOf")
}
+
+func init() { proto.RegisterFile("combos/both/one.proto", fileDescriptor_5ca5df6bbfd2f47d) }
+
+var fileDescriptor_5ca5df6bbfd2f47d = []byte{
+ // 404 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0xbf, 0x4f, 0x1b, 0x31,
+ 0x14, 0x07, 0x70, 0x3f, 0x8e, 0x24, 0xe0, 0x84, 0x92, 0x9e, 0x54, 0xe9, 0x95, 0xe1, 0xc9, 0x62,
+ 0xf2, 0x42, 0xd2, 0xdc, 0x25, 0xfc, 0x58, 0x51, 0x55, 0x65, 0xa9, 0x90, 0xc2, 0x1f, 0x80, 0x30,
+ 0x75, 0x0e, 0x24, 0xee, 0x8c, 0x7a, 0x77, 0x43, 0x37, 0xfe, 0x9c, 0x8e, 0x1d, 0xfb, 0x27, 0x30,
+ 0x32, 0x76, 0xe8, 0xc0, 0xb9, 0x4b, 0x47, 0x46, 0xc6, 0x2a, 0x97, 0xf2, 0xbc, 0xbd, 0xaf, 0x3f,
+ 0xf6, 0x60, 0xfb, 0x2b, 0xdf, 0x5d, 0xb9, 0xdc, 0xb8, 0x72, 0x6c, 0x5c, 0x75, 0x3d, 0x76, 0x85,
+ 0x1d, 0xdd, 0x7d, 0x75, 0x95, 0x8b, 0x23, 0x57, 0xd8, 0xbd, 0x83, 0xec, 0xa6, 0xba, 0xae, 0xcd,
+ 0xe8, 0xca, 0xe5, 0xe3, 0xcc, 0x65, 0x6e, 0xdc, 0x9a, 0xa9, 0x97, 0x6d, 0x6a, 0x43, 0x3b, 0xad,
+ 0xcf, 0xec, 0xbf, 0x97, 0x9d, 0xf3, 0xda, 0x98, 0x6f, 0xf1, 0x50, 0x46, 0x65, 0x6d, 0x10, 0x14,
+ 0xe8, 0xed, 0xc5, 0x6a, 0xdc, 0xff, 0x1d, 0xc9, 0xfe, 0xf9, 0x65, 0x7e, 0x77, 0x6b, 0xcf, 0x0a,
+ 0x7b, 0xb6, 0x8c, 0x51, 0x76, 0x3f, 0xdd, 0xd8, 0xdb, 0x2f, 0x93, 0x76, 0x13, 0xcc, 0xc5, 0xe2,
+ 0x7f, 0x66, 0x49, 0x70, 0x43, 0x81, 0xde, 0x60, 0x49, 0x58, 0x52, 0x8c, 0x14, 0xe8, 0x0e, 0x4b,
+ 0xca, 0x32, 0xc5, 0x4d, 0x05, 0x3a, 0x62, 0x99, 0xb2, 0xcc, 0xb0, 0xa3, 0x40, 0xef, 0xb0, 0xcc,
+ 0x58, 0x0e, 0xb1, 0xab, 0x40, 0x6f, 0xb2, 0x1c, 0xb2, 0x1c, 0x61, 0x4f, 0x81, 0x7e, 0xcb, 0x72,
+ 0xc4, 0x72, 0x8c, 0x5b, 0x0a, 0x74, 0xcc, 0x72, 0xcc, 0x72, 0x82, 0xdb, 0x0a, 0x74, 0x8f, 0xe5,
+ 0x24, 0xde, 0x93, 0xbd, 0xf5, 0xcd, 0x3e, 0xa0, 0x54, 0xa0, 0x77, 0xe7, 0x62, 0xf1, 0xba, 0x10,
+ 0x6c, 0x82, 0x7d, 0x05, 0xba, 0x1b, 0x6c, 0x12, 0x2c, 0xc1, 0x81, 0x02, 0x3d, 0x0c, 0x96, 0x04,
+ 0x4b, 0x71, 0x47, 0x81, 0xde, 0x0a, 0x96, 0x06, 0x9b, 0xe2, 0x9b, 0xd5, 0xfb, 0x07, 0x9b, 0x06,
+ 0x9b, 0xe1, 0xae, 0x02, 0x3d, 0x08, 0x36, 0x8b, 0x0f, 0x64, 0xbf, 0xac, 0xcd, 0x45, 0x6e, 0xcb,
+ 0xf2, 0x32, 0xb3, 0x38, 0x54, 0xa0, 0xfb, 0x89, 0x1c, 0xad, 0x1a, 0xd1, 0x7e, 0xea, 0x5c, 0x2c,
+ 0x64, 0x59, 0x9b, 0xcf, 0x6b, 0x3f, 0x1d, 0x48, 0x59, 0xd9, 0xb2, 0xba, 0x70, 0x85, 0x75, 0xcb,
+ 0xd3, 0x8f, 0x0f, 0x0d, 0x89, 0xc7, 0x86, 0xc4, 0xaf, 0x86, 0xc4, 0x53, 0x43, 0xf0, 0xdc, 0x10,
+ 0xbc, 0x34, 0x04, 0xf7, 0x9e, 0xe0, 0xbb, 0x27, 0xf8, 0xe1, 0x09, 0x7e, 0x7a, 0x82, 0x07, 0x4f,
+ 0xf0, 0xe8, 0x09, 0x9e, 0x3c, 0xc1, 0x5f, 0x4f, 0xe2, 0xd9, 0x13, 0xbc, 0x78, 0x12, 0xf7, 0x7f,
+ 0x48, 0x98, 0x6e, 0x5b, 0xa3, 0xf4, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1e, 0x42, 0xd6, 0x88,
+ 0x93, 0x02, 0x00, 0x00,
+}
+
func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return OneDescription()
}
@@ -604,263 +635,265 @@ func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_ge
func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4083 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x1b, 0xd7,
- 0x75, 0xe6, 0xe2, 0x8f, 0xc0, 0x01, 0x08, 0x2e, 0x97, 0xb4, 0x04, 0xd1, 0x31, 0x24, 0xd1, 0x76,
- 0x4c, 0xdb, 0x35, 0x69, 0x53, 0xa2, 0x7e, 0xa0, 0x26, 0x2e, 0x48, 0x42, 0x14, 0x5d, 0x92, 0x60,
- 0x16, 0x64, 0xfc, 0x93, 0xe9, 0xec, 0x2c, 0x16, 0x17, 0xe0, 0x4a, 0x8b, 0xdd, 0xcd, 0xee, 0x42,
- 0x32, 0x35, 0x7d, 0x50, 0xc7, 0xfd, 0x99, 0x4c, 0xa7, 0xbf, 0xe9, 0x4c, 0x13, 0xd7, 0x71, 0x9b,
- 0x74, 0x1a, 0xa7, 0xe9, 0x5f, 0xd2, 0xb4, 0x69, 0x92, 0xbe, 0xf4, 0x25, 0xad, 0x9f, 0x3a, 0xc9,
- 0x5b, 0x1f, 0xf2, 0x60, 0x31, 0x9e, 0x69, 0xda, 0xba, 0x8d, 0xdb, 0xea, 0xc1, 0x33, 0x7e, 0xc9,
- 0xdc, 0xbf, 0xdd, 0xc5, 0x02, 0xd4, 0x82, 0x99, 0xb1, 0xf3, 0x24, 0xee, 0x39, 0xe7, 0xfb, 0xf6,
- 0xde, 0x73, 0xcf, 0x3d, 0xe7, 0xdc, 0xbb, 0x10, 0xfc, 0xf8, 0x32, 0x9c, 0xe9, 0x58, 0x56, 0xc7,
- 0x40, 0x8b, 0xb6, 0x63, 0x79, 0x56, 0xb3, 0xd7, 0x5e, 0x6c, 0x21, 0x57, 0x73, 0x74, 0xdb, 0xb3,
- 0x9c, 0x05, 0x22, 0x93, 0x26, 0xa9, 0xc5, 0x02, 0xb7, 0x98, 0xdb, 0x82, 0xa9, 0xab, 0xba, 0x81,
- 0xd6, 0x7c, 0xc3, 0x06, 0xf2, 0xa4, 0x4b, 0x90, 0x6a, 0xeb, 0x06, 0x2a, 0x09, 0x67, 0x92, 0xf3,
- 0xf9, 0xa5, 0x47, 0x16, 0x22, 0xa0, 0x85, 0x7e, 0xc4, 0x0e, 0x16, 0xcb, 0x04, 0x31, 0xf7, 0x76,
- 0x0a, 0xa6, 0x87, 0x68, 0x25, 0x09, 0x52, 0xa6, 0xda, 0xc5, 0x8c, 0xc2, 0x7c, 0x4e, 0x26, 0x7f,
- 0x4b, 0x25, 0x18, 0xb7, 0x55, 0xed, 0x86, 0xda, 0x41, 0xa5, 0x04, 0x11, 0xf3, 0x47, 0xa9, 0x0c,
- 0xd0, 0x42, 0x36, 0x32, 0x5b, 0xc8, 0xd4, 0x0e, 0x4a, 0xc9, 0x33, 0xc9, 0xf9, 0x9c, 0x1c, 0x92,
- 0x48, 0x4f, 0xc2, 0x94, 0xdd, 0x6b, 0x1a, 0xba, 0xa6, 0x84, 0xcc, 0xe0, 0x4c, 0x72, 0x3e, 0x2d,
- 0x8b, 0x54, 0xb1, 0x16, 0x18, 0x3f, 0x06, 0x93, 0xb7, 0x90, 0x7a, 0x23, 0x6c, 0x9a, 0x27, 0xa6,
- 0x45, 0x2c, 0x0e, 0x19, 0xae, 0x42, 0xa1, 0x8b, 0x5c, 0x57, 0xed, 0x20, 0xc5, 0x3b, 0xb0, 0x51,
- 0x29, 0x45, 0x66, 0x7f, 0x66, 0x60, 0xf6, 0xd1, 0x99, 0xe7, 0x19, 0x6a, 0xf7, 0xc0, 0x46, 0x52,
- 0x15, 0x72, 0xc8, 0xec, 0x75, 0x29, 0x43, 0xfa, 0x08, 0xff, 0xd5, 0xcc, 0x5e, 0x37, 0xca, 0x92,
- 0xc5, 0x30, 0x46, 0x31, 0xee, 0x22, 0xe7, 0xa6, 0xae, 0xa1, 0x52, 0x86, 0x10, 0x3c, 0x36, 0x40,
- 0xd0, 0xa0, 0xfa, 0x28, 0x07, 0xc7, 0x49, 0xab, 0x90, 0x43, 0x2f, 0x7b, 0xc8, 0x74, 0x75, 0xcb,
- 0x2c, 0x8d, 0x13, 0x92, 0x47, 0x87, 0xac, 0x22, 0x32, 0x5a, 0x51, 0x8a, 0x00, 0x27, 0x5d, 0x80,
- 0x71, 0xcb, 0xf6, 0x74, 0xcb, 0x74, 0x4b, 0xd9, 0x33, 0xc2, 0x7c, 0x7e, 0xe9, 0x23, 0x43, 0x03,
- 0xa1, 0x4e, 0x6d, 0x64, 0x6e, 0x2c, 0x6d, 0x80, 0xe8, 0x5a, 0x3d, 0x47, 0x43, 0x8a, 0x66, 0xb5,
- 0x90, 0xa2, 0x9b, 0x6d, 0xab, 0x94, 0x23, 0x04, 0xa7, 0x07, 0x27, 0x42, 0x0c, 0x57, 0xad, 0x16,
- 0xda, 0x30, 0xdb, 0x96, 0x5c, 0x74, 0xfb, 0x9e, 0xa5, 0x13, 0x90, 0x71, 0x0f, 0x4c, 0x4f, 0x7d,
- 0xb9, 0x54, 0x20, 0x11, 0xc2, 0x9e, 0xe6, 0xbe, 0x9d, 0x81, 0xc9, 0x51, 0x42, 0xec, 0x0a, 0xa4,
- 0xdb, 0x78, 0x96, 0xa5, 0xc4, 0x71, 0x7c, 0x40, 0x31, 0xfd, 0x4e, 0xcc, 0xfc, 0x94, 0x4e, 0xac,
- 0x42, 0xde, 0x44, 0xae, 0x87, 0x5a, 0x34, 0x22, 0x92, 0x23, 0xc6, 0x14, 0x50, 0xd0, 0x60, 0x48,
- 0xa5, 0x7e, 0xaa, 0x90, 0x7a, 0x01, 0x26, 0xfd, 0x21, 0x29, 0x8e, 0x6a, 0x76, 0x78, 0x6c, 0x2e,
- 0xc6, 0x8d, 0x64, 0xa1, 0xc6, 0x71, 0x32, 0x86, 0xc9, 0x45, 0xd4, 0xf7, 0x2c, 0xad, 0x01, 0x58,
- 0x26, 0xb2, 0xda, 0x4a, 0x0b, 0x69, 0x46, 0x29, 0x7b, 0x84, 0x97, 0xea, 0xd8, 0x64, 0xc0, 0x4b,
- 0x16, 0x95, 0x6a, 0x86, 0x74, 0x39, 0x08, 0xb5, 0xf1, 0x23, 0x22, 0x65, 0x8b, 0x6e, 0xb2, 0x81,
- 0x68, 0xdb, 0x83, 0xa2, 0x83, 0x70, 0xdc, 0xa3, 0x16, 0x9b, 0x59, 0x8e, 0x0c, 0x62, 0x21, 0x76,
- 0x66, 0x32, 0x83, 0xd1, 0x89, 0x4d, 0x38, 0xe1, 0x47, 0xe9, 0x61, 0xf0, 0x05, 0x0a, 0x09, 0x2b,
- 0x20, 0x59, 0xa8, 0xc0, 0x85, 0xdb, 0x6a, 0x17, 0xcd, 0xde, 0x86, 0x62, 0xbf, 0x7b, 0xa4, 0x19,
- 0x48, 0xbb, 0x9e, 0xea, 0x78, 0x24, 0x0a, 0xd3, 0x32, 0x7d, 0x90, 0x44, 0x48, 0x22, 0xb3, 0x45,
- 0xb2, 0x5c, 0x5a, 0xc6, 0x7f, 0x4a, 0xbf, 0x10, 0x4c, 0x38, 0x49, 0x26, 0xfc, 0xd1, 0xc1, 0x15,
- 0xed, 0x63, 0x8e, 0xce, 0x7b, 0xf6, 0x22, 0x4c, 0xf4, 0x4d, 0x60, 0xd4, 0x57, 0xcf, 0xfd, 0x32,
- 0x3c, 0x30, 0x94, 0x5a, 0x7a, 0x01, 0x66, 0x7a, 0xa6, 0x6e, 0x7a, 0xc8, 0xb1, 0x1d, 0x84, 0x23,
- 0x96, 0xbe, 0xaa, 0xf4, 0xef, 0xe3, 0x47, 0xc4, 0xdc, 0x5e, 0xd8, 0x9a, 0xb2, 0xc8, 0xd3, 0xbd,
- 0x41, 0xe1, 0x13, 0xb9, 0xec, 0x8f, 0xc6, 0xc5, 0x3b, 0x77, 0xee, 0xdc, 0x49, 0xcc, 0x7d, 0x2e,
- 0x03, 0x33, 0xc3, 0xf6, 0xcc, 0xd0, 0xed, 0x7b, 0x02, 0x32, 0x66, 0xaf, 0xdb, 0x44, 0x0e, 0x71,
- 0x52, 0x5a, 0x66, 0x4f, 0x52, 0x15, 0xd2, 0x86, 0xda, 0x44, 0x46, 0x29, 0x75, 0x46, 0x98, 0x2f,
- 0x2e, 0x3d, 0x39, 0xd2, 0xae, 0x5c, 0xd8, 0xc4, 0x10, 0x99, 0x22, 0xa5, 0x8f, 0x43, 0x8a, 0xa5,
- 0x68, 0xcc, 0xf0, 0xc4, 0x68, 0x0c, 0x78, 0x2f, 0xc9, 0x04, 0x27, 0x3d, 0x08, 0x39, 0xfc, 0x2f,
- 0x8d, 0x8d, 0x0c, 0x19, 0x73, 0x16, 0x0b, 0x70, 0x5c, 0x48, 0xb3, 0x90, 0x25, 0xdb, 0xa4, 0x85,
- 0x78, 0x69, 0xf3, 0x9f, 0x71, 0x60, 0xb5, 0x50, 0x5b, 0xed, 0x19, 0x9e, 0x72, 0x53, 0x35, 0x7a,
- 0x88, 0x04, 0x7c, 0x4e, 0x2e, 0x30, 0xe1, 0x27, 0xb1, 0x4c, 0x3a, 0x0d, 0x79, 0xba, 0xab, 0x74,
- 0xb3, 0x85, 0x5e, 0x26, 0xd9, 0x33, 0x2d, 0xd3, 0x8d, 0xb6, 0x81, 0x25, 0xf8, 0xf5, 0xd7, 0x5d,
- 0xcb, 0xe4, 0xa1, 0x49, 0x5e, 0x81, 0x05, 0xe4, 0xf5, 0x17, 0xa3, 0x89, 0xfb, 0xa1, 0xe1, 0xd3,
- 0x8b, 0xc6, 0xd4, 0xdc, 0x37, 0x13, 0x90, 0x22, 0xf9, 0x62, 0x12, 0xf2, 0xbb, 0x2f, 0xee, 0xd4,
- 0x94, 0xb5, 0xfa, 0xde, 0xca, 0x66, 0x4d, 0x14, 0xa4, 0x22, 0x00, 0x11, 0x5c, 0xdd, 0xac, 0x57,
- 0x77, 0xc5, 0x84, 0xff, 0xbc, 0xb1, 0xbd, 0x7b, 0xe1, 0xbc, 0x98, 0xf4, 0x01, 0x7b, 0x54, 0x90,
- 0x0a, 0x1b, 0x9c, 0x5b, 0x12, 0xd3, 0x92, 0x08, 0x05, 0x4a, 0xb0, 0xf1, 0x42, 0x6d, 0xed, 0xc2,
- 0x79, 0x31, 0xd3, 0x2f, 0x39, 0xb7, 0x24, 0x8e, 0x4b, 0x13, 0x90, 0x23, 0x92, 0x95, 0x7a, 0x7d,
- 0x53, 0xcc, 0xfa, 0x9c, 0x8d, 0x5d, 0x79, 0x63, 0x7b, 0x5d, 0xcc, 0xf9, 0x9c, 0xeb, 0x72, 0x7d,
- 0x6f, 0x47, 0x04, 0x9f, 0x61, 0xab, 0xd6, 0x68, 0x54, 0xd7, 0x6b, 0x62, 0xde, 0xb7, 0x58, 0x79,
- 0x71, 0xb7, 0xd6, 0x10, 0x0b, 0x7d, 0xc3, 0x3a, 0xb7, 0x24, 0x4e, 0xf8, 0xaf, 0xa8, 0x6d, 0xef,
- 0x6d, 0x89, 0x45, 0x69, 0x0a, 0x26, 0xe8, 0x2b, 0xf8, 0x20, 0x26, 0x23, 0xa2, 0x0b, 0xe7, 0x45,
- 0x31, 0x18, 0x08, 0x65, 0x99, 0xea, 0x13, 0x5c, 0x38, 0x2f, 0x4a, 0x73, 0xab, 0x90, 0x26, 0xd1,
- 0x25, 0x49, 0x50, 0xdc, 0xac, 0xae, 0xd4, 0x36, 0x95, 0xfa, 0xce, 0xee, 0x46, 0x7d, 0xbb, 0xba,
- 0x29, 0x0a, 0x81, 0x4c, 0xae, 0x7d, 0x62, 0x6f, 0x43, 0xae, 0xad, 0x89, 0x89, 0xb0, 0x6c, 0xa7,
- 0x56, 0xdd, 0xad, 0xad, 0x89, 0xc9, 0x39, 0x0d, 0x66, 0x86, 0xe5, 0xc9, 0xa1, 0x3b, 0x23, 0xb4,
- 0xc4, 0x89, 0x23, 0x96, 0x98, 0x70, 0x0d, 0x2c, 0xf1, 0x0f, 0x13, 0x30, 0x3d, 0xa4, 0x56, 0x0c,
- 0x7d, 0xc9, 0xb3, 0x90, 0xa6, 0x21, 0x4a, 0xab, 0xe7, 0xe3, 0x43, 0x8b, 0x0e, 0x09, 0xd8, 0x81,
- 0x0a, 0x4a, 0x70, 0xe1, 0x0e, 0x22, 0x79, 0x44, 0x07, 0x81, 0x29, 0x06, 0x72, 0xfa, 0x2f, 0x0d,
- 0xe4, 0x74, 0x5a, 0xf6, 0x2e, 0x8c, 0x52, 0xf6, 0x88, 0xec, 0x78, 0xb9, 0x3d, 0x3d, 0x24, 0xb7,
- 0x5f, 0x81, 0xa9, 0x01, 0xa2, 0x91, 0x73, 0xec, 0x2b, 0x02, 0x94, 0x8e, 0x72, 0x4e, 0x4c, 0xa6,
- 0x4b, 0xf4, 0x65, 0xba, 0x2b, 0x51, 0x0f, 0x9e, 0x3d, 0x7a, 0x11, 0x06, 0xd6, 0xfa, 0x0d, 0x01,
- 0x4e, 0x0c, 0xef, 0x14, 0x87, 0x8e, 0xe1, 0xe3, 0x90, 0xe9, 0x22, 0x6f, 0xdf, 0xe2, 0xdd, 0xd2,
- 0x47, 0x87, 0xd4, 0x60, 0xac, 0x8e, 0x2e, 0x36, 0x43, 0x85, 0x8b, 0x78, 0xf2, 0xa8, 0x76, 0x8f,
- 0x8e, 0x66, 0x60, 0xa4, 0x9f, 0x49, 0xc0, 0x03, 0x43, 0xc9, 0x87, 0x0e, 0xf4, 0x21, 0x00, 0xdd,
- 0xb4, 0x7b, 0x1e, 0xed, 0x88, 0x68, 0x82, 0xcd, 0x11, 0x09, 0x49, 0x5e, 0x38, 0x79, 0xf6, 0x3c,
- 0x5f, 0x9f, 0x24, 0x7a, 0xa0, 0x22, 0x62, 0x70, 0x29, 0x18, 0x68, 0x8a, 0x0c, 0xb4, 0x7c, 0xc4,
- 0x4c, 0x07, 0x02, 0xf3, 0x69, 0x10, 0x35, 0x43, 0x47, 0xa6, 0xa7, 0xb8, 0x9e, 0x83, 0xd4, 0xae,
- 0x6e, 0x76, 0x48, 0x05, 0xc9, 0x56, 0xd2, 0x6d, 0xd5, 0x70, 0x91, 0x3c, 0x49, 0xd5, 0x0d, 0xae,
- 0xc5, 0x08, 0x12, 0x40, 0x4e, 0x08, 0x91, 0xe9, 0x43, 0x50, 0xb5, 0x8f, 0x98, 0xfb, 0x46, 0x16,
- 0xf2, 0xa1, 0xbe, 0x5a, 0x3a, 0x0b, 0x85, 0xeb, 0xea, 0x4d, 0x55, 0xe1, 0x67, 0x25, 0xea, 0x89,
- 0x3c, 0x96, 0xed, 0xb0, 0xf3, 0xd2, 0xd3, 0x30, 0x43, 0x4c, 0xac, 0x9e, 0x87, 0x1c, 0x45, 0x33,
- 0x54, 0xd7, 0x25, 0x4e, 0xcb, 0x12, 0x53, 0x09, 0xeb, 0xea, 0x58, 0xb5, 0xca, 0x35, 0xd2, 0x32,
- 0x4c, 0x13, 0x44, 0xb7, 0x67, 0x78, 0xba, 0x6d, 0x20, 0x05, 0x9f, 0xde, 0x5c, 0x52, 0x49, 0xfc,
- 0x91, 0x4d, 0x61, 0x8b, 0x2d, 0x66, 0x80, 0x47, 0xe4, 0x4a, 0x6b, 0xf0, 0x10, 0x81, 0x75, 0x90,
- 0x89, 0x1c, 0xd5, 0x43, 0x0a, 0xfa, 0x74, 0x4f, 0x35, 0x5c, 0x45, 0x35, 0x5b, 0xca, 0xbe, 0xea,
- 0xee, 0x97, 0x66, 0x30, 0xc1, 0x4a, 0xa2, 0x24, 0xc8, 0xa7, 0xb0, 0xe1, 0x3a, 0xb3, 0xab, 0x11,
- 0xb3, 0xaa, 0xd9, 0xba, 0xa6, 0xba, 0xfb, 0x52, 0x05, 0x4e, 0x10, 0x16, 0xd7, 0x73, 0x74, 0xb3,
- 0xa3, 0x68, 0xfb, 0x48, 0xbb, 0xa1, 0xf4, 0xbc, 0xf6, 0xa5, 0xd2, 0x83, 0xe1, 0xf7, 0x93, 0x11,
- 0x36, 0x88, 0xcd, 0x2a, 0x36, 0xd9, 0xf3, 0xda, 0x97, 0xa4, 0x06, 0x14, 0xf0, 0x62, 0x74, 0xf5,
- 0xdb, 0x48, 0x69, 0x5b, 0x0e, 0x29, 0x8d, 0xc5, 0x21, 0xa9, 0x29, 0xe4, 0xc1, 0x85, 0x3a, 0x03,
- 0x6c, 0x59, 0x2d, 0x54, 0x49, 0x37, 0x76, 0x6a, 0xb5, 0x35, 0x39, 0xcf, 0x59, 0xae, 0x5a, 0x0e,
- 0x0e, 0xa8, 0x8e, 0xe5, 0x3b, 0x38, 0x4f, 0x03, 0xaa, 0x63, 0x71, 0xf7, 0x2e, 0xc3, 0xb4, 0xa6,
- 0xd1, 0x39, 0xeb, 0x9a, 0xc2, 0xce, 0x58, 0x6e, 0x49, 0xec, 0x73, 0x96, 0xa6, 0xad, 0x53, 0x03,
- 0x16, 0xe3, 0xae, 0x74, 0x19, 0x1e, 0x08, 0x9c, 0x15, 0x06, 0x4e, 0x0d, 0xcc, 0x32, 0x0a, 0x5d,
- 0x86, 0x69, 0xfb, 0x60, 0x10, 0x28, 0xf5, 0xbd, 0xd1, 0x3e, 0x88, 0xc2, 0x2e, 0xc2, 0x8c, 0xbd,
- 0x6f, 0x0f, 0xe2, 0x9e, 0x08, 0xe3, 0x24, 0x7b, 0xdf, 0x8e, 0x02, 0x1f, 0x25, 0x07, 0x6e, 0x07,
- 0x69, 0xaa, 0x87, 0x5a, 0xa5, 0x93, 0x61, 0xf3, 0x90, 0x42, 0x5a, 0x04, 0x51, 0xd3, 0x14, 0x64,
- 0xaa, 0x4d, 0x03, 0x29, 0xaa, 0x83, 0x4c, 0xd5, 0x2d, 0x9d, 0x0e, 0x1b, 0x17, 0x35, 0xad, 0x46,
- 0xb4, 0x55, 0xa2, 0x94, 0x9e, 0x80, 0x29, 0xab, 0x79, 0x5d, 0xa3, 0x21, 0xa9, 0xd8, 0x0e, 0x6a,
- 0xeb, 0x2f, 0x97, 0x1e, 0x21, 0xfe, 0x9d, 0xc4, 0x0a, 0x12, 0x90, 0x3b, 0x44, 0x2c, 0x3d, 0x0e,
- 0xa2, 0xe6, 0xee, 0xab, 0x8e, 0x4d, 0x72, 0xb2, 0x6b, 0xab, 0x1a, 0x2a, 0x3d, 0x4a, 0x4d, 0xa9,
- 0x7c, 0x9b, 0x8b, 0xf1, 0x96, 0x70, 0x6f, 0xe9, 0x6d, 0x8f, 0x33, 0x3e, 0x46, 0xb7, 0x04, 0x91,
- 0x31, 0xb6, 0x79, 0x10, 0xb1, 0x2b, 0xfa, 0x5e, 0x3c, 0x4f, 0xcc, 0x8a, 0xf6, 0xbe, 0x1d, 0x7e,
- 0xef, 0xc3, 0x30, 0x81, 0x2d, 0x83, 0x97, 0x3e, 0x4e, 0x1b, 0x32, 0x7b, 0x3f, 0xf4, 0xc6, 0x0f,
- 0xac, 0x37, 0x9e, 0xab, 0x40, 0x21, 0x1c, 0x9f, 0x52, 0x0e, 0x68, 0x84, 0x8a, 0x02, 0x6e, 0x56,
- 0x56, 0xeb, 0x6b, 0xb8, 0xcd, 0x78, 0xa9, 0x26, 0x26, 0x70, 0xbb, 0xb3, 0xb9, 0xb1, 0x5b, 0x53,
- 0xe4, 0xbd, 0xed, 0xdd, 0x8d, 0xad, 0x9a, 0x98, 0x0c, 0xf7, 0xd5, 0xdf, 0x4d, 0x40, 0xb1, 0xff,
- 0x88, 0x24, 0xfd, 0x3c, 0x9c, 0xe4, 0xf7, 0x19, 0x2e, 0xf2, 0x94, 0x5b, 0xba, 0x43, 0xb6, 0x4c,
- 0x57, 0xa5, 0xe5, 0xcb, 0x5f, 0xb4, 0x19, 0x66, 0xd5, 0x40, 0xde, 0xf3, 0xba, 0x83, 0x37, 0x44,
- 0x57, 0xf5, 0xa4, 0x4d, 0x38, 0x6d, 0x5a, 0x8a, 0xeb, 0xa9, 0x66, 0x4b, 0x75, 0x5a, 0x4a, 0x70,
- 0x93, 0xa4, 0xa8, 0x9a, 0x86, 0x5c, 0xd7, 0xa2, 0xa5, 0xca, 0x67, 0xf9, 0x88, 0x69, 0x35, 0x98,
- 0x71, 0x90, 0xc3, 0xab, 0xcc, 0x34, 0x12, 0x60, 0xc9, 0xa3, 0x02, 0xec, 0x41, 0xc8, 0x75, 0x55,
- 0x5b, 0x41, 0xa6, 0xe7, 0x1c, 0x90, 0xc6, 0x38, 0x2b, 0x67, 0xbb, 0xaa, 0x5d, 0xc3, 0xcf, 0x1f,
- 0xce, 0xf9, 0xe4, 0x07, 0x49, 0x28, 0x84, 0x9b, 0x63, 0x7c, 0xd6, 0xd0, 0x48, 0x1d, 0x11, 0x48,
- 0xa6, 0x79, 0xf8, 0xbe, 0xad, 0xf4, 0xc2, 0x2a, 0x2e, 0x30, 0x95, 0x0c, 0x6d, 0x59, 0x65, 0x8a,
- 0xc4, 0xc5, 0x1d, 0xe7, 0x16, 0x44, 0x5b, 0x84, 0xac, 0xcc, 0x9e, 0xa4, 0x75, 0xc8, 0x5c, 0x77,
- 0x09, 0x77, 0x86, 0x70, 0x3f, 0x72, 0x7f, 0xee, 0xe7, 0x1a, 0x84, 0x3c, 0xf7, 0x5c, 0x43, 0xd9,
- 0xae, 0xcb, 0x5b, 0xd5, 0x4d, 0x99, 0xc1, 0xa5, 0x53, 0x90, 0x32, 0xd4, 0xdb, 0x07, 0xfd, 0xa5,
- 0x88, 0x88, 0x46, 0x75, 0xfc, 0x29, 0x48, 0xdd, 0x42, 0xea, 0x8d, 0xfe, 0x02, 0x40, 0x44, 0x1f,
- 0x60, 0xe8, 0x2f, 0x42, 0x9a, 0xf8, 0x4b, 0x02, 0x60, 0x1e, 0x13, 0xc7, 0xa4, 0x2c, 0xa4, 0x56,
- 0xeb, 0x32, 0x0e, 0x7f, 0x11, 0x0a, 0x54, 0xaa, 0xec, 0x6c, 0xd4, 0x56, 0x6b, 0x62, 0x62, 0x6e,
- 0x19, 0x32, 0xd4, 0x09, 0x78, 0x6b, 0xf8, 0x6e, 0x10, 0xc7, 0xd8, 0x23, 0xe3, 0x10, 0xb8, 0x76,
- 0x6f, 0x6b, 0xa5, 0x26, 0x8b, 0x89, 0xf0, 0xf2, 0xba, 0x50, 0x08, 0xf7, 0xc5, 0x1f, 0x4e, 0x4c,
- 0x7d, 0x47, 0x80, 0x7c, 0xa8, 0xcf, 0xc5, 0x0d, 0x8a, 0x6a, 0x18, 0xd6, 0x2d, 0x45, 0x35, 0x74,
- 0xd5, 0x65, 0x41, 0x01, 0x44, 0x54, 0xc5, 0x92, 0x51, 0x17, 0xed, 0x43, 0x19, 0xfc, 0xeb, 0x02,
- 0x88, 0xd1, 0x16, 0x33, 0x32, 0x40, 0xe1, 0x67, 0x3a, 0xc0, 0xd7, 0x04, 0x28, 0xf6, 0xf7, 0x95,
- 0x91, 0xe1, 0x9d, 0xfd, 0x99, 0x0e, 0xef, 0xad, 0x04, 0x4c, 0xf4, 0x75, 0x93, 0xa3, 0x8e, 0xee,
- 0xd3, 0x30, 0xa5, 0xb7, 0x50, 0xd7, 0xb6, 0x3c, 0x64, 0x6a, 0x07, 0x8a, 0x81, 0x6e, 0x22, 0xa3,
- 0x34, 0x47, 0x12, 0xc5, 0xe2, 0xfd, 0xfb, 0xd5, 0x85, 0x8d, 0x00, 0xb7, 0x89, 0x61, 0x95, 0xe9,
- 0x8d, 0xb5, 0xda, 0xd6, 0x4e, 0x7d, 0xb7, 0xb6, 0xbd, 0xfa, 0xa2, 0xb2, 0xb7, 0xfd, 0x8b, 0xdb,
- 0xf5, 0xe7, 0xb7, 0x65, 0x51, 0x8f, 0x98, 0x7d, 0x80, 0x5b, 0x7d, 0x07, 0xc4, 0xe8, 0xa0, 0xa4,
- 0x93, 0x30, 0x6c, 0x58, 0xe2, 0x98, 0x34, 0x0d, 0x93, 0xdb, 0x75, 0xa5, 0xb1, 0xb1, 0x56, 0x53,
- 0x6a, 0x57, 0xaf, 0xd6, 0x56, 0x77, 0x1b, 0xf4, 0x06, 0xc2, 0xb7, 0xde, 0xed, 0xdf, 0xd4, 0xaf,
- 0x26, 0x61, 0x7a, 0xc8, 0x48, 0xa4, 0x2a, 0x3b, 0x3b, 0xd0, 0xe3, 0xcc, 0x53, 0xa3, 0x8c, 0x7e,
- 0x01, 0x97, 0xfc, 0x1d, 0xd5, 0xf1, 0xd8, 0x51, 0xe3, 0x71, 0xc0, 0x5e, 0x32, 0x3d, 0xbd, 0xad,
- 0x23, 0x87, 0x5d, 0xd8, 0xd0, 0x03, 0xc5, 0x64, 0x20, 0xa7, 0x77, 0x36, 0x3f, 0x07, 0x92, 0x6d,
- 0xb9, 0xba, 0xa7, 0xdf, 0x44, 0x8a, 0x6e, 0xf2, 0xdb, 0x1d, 0x7c, 0xc0, 0x48, 0xc9, 0x22, 0xd7,
- 0x6c, 0x98, 0x9e, 0x6f, 0x6d, 0xa2, 0x8e, 0x1a, 0xb1, 0xc6, 0x09, 0x3c, 0x29, 0x8b, 0x5c, 0xe3,
- 0x5b, 0x9f, 0x85, 0x42, 0xcb, 0xea, 0xe1, 0xae, 0x8b, 0xda, 0xe1, 0x7a, 0x21, 0xc8, 0x79, 0x2a,
- 0xf3, 0x4d, 0x58, 0x3f, 0x1d, 0x5c, 0x2b, 0x15, 0xe4, 0x3c, 0x95, 0x51, 0x93, 0xc7, 0x60, 0x52,
- 0xed, 0x74, 0x1c, 0x4c, 0xce, 0x89, 0xe8, 0x09, 0xa1, 0xe8, 0x8b, 0x89, 0xe1, 0xec, 0x73, 0x90,
- 0xe5, 0x7e, 0xc0, 0x25, 0x19, 0x7b, 0x42, 0xb1, 0xe9, 0xb1, 0x37, 0x31, 0x9f, 0x93, 0xb3, 0x26,
- 0x57, 0x9e, 0x85, 0x82, 0xee, 0x2a, 0xc1, 0x2d, 0x79, 0xe2, 0x4c, 0x62, 0x3e, 0x2b, 0xe7, 0x75,
- 0xd7, 0xbf, 0x61, 0x9c, 0x7b, 0x23, 0x01, 0xc5, 0xfe, 0x5b, 0x7e, 0x69, 0x0d, 0xb2, 0x86, 0xa5,
- 0xa9, 0x24, 0xb4, 0xe8, 0x27, 0xa6, 0xf9, 0x98, 0x0f, 0x03, 0x0b, 0x9b, 0xcc, 0x5e, 0xf6, 0x91,
- 0xb3, 0xff, 0x2a, 0x40, 0x96, 0x8b, 0xa5, 0x13, 0x90, 0xb2, 0x55, 0x6f, 0x9f, 0xd0, 0xa5, 0x57,
- 0x12, 0xa2, 0x20, 0x93, 0x67, 0x2c, 0x77, 0x6d, 0xd5, 0x24, 0x21, 0xc0, 0xe4, 0xf8, 0x19, 0xaf,
- 0xab, 0x81, 0xd4, 0x16, 0x39, 0x7e, 0x58, 0xdd, 0x2e, 0x32, 0x3d, 0x97, 0xaf, 0x2b, 0x93, 0xaf,
- 0x32, 0xb1, 0xf4, 0x24, 0x4c, 0x79, 0x8e, 0xaa, 0x1b, 0x7d, 0xb6, 0x29, 0x62, 0x2b, 0x72, 0x85,
- 0x6f, 0x5c, 0x81, 0x53, 0x9c, 0xb7, 0x85, 0x3c, 0x55, 0xdb, 0x47, 0xad, 0x00, 0x94, 0x21, 0xd7,
- 0x0c, 0x27, 0x99, 0xc1, 0x1a, 0xd3, 0x73, 0xec, 0xdc, 0xf7, 0x05, 0x98, 0xe2, 0x07, 0xa6, 0x96,
- 0xef, 0xac, 0x2d, 0x00, 0xd5, 0x34, 0x2d, 0x2f, 0xec, 0xae, 0xc1, 0x50, 0x1e, 0xc0, 0x2d, 0x54,
- 0x7d, 0x90, 0x1c, 0x22, 0x98, 0xed, 0x02, 0x04, 0x9a, 0x23, 0xdd, 0x76, 0x1a, 0xf2, 0xec, 0x13,
- 0x0e, 0xf9, 0x0e, 0x48, 0x8f, 0xd8, 0x40, 0x45, 0xf8, 0x64, 0x25, 0xcd, 0x40, 0xba, 0x89, 0x3a,
- 0xba, 0xc9, 0x2e, 0x66, 0xe9, 0x03, 0xbf, 0x08, 0x49, 0xf9, 0x17, 0x21, 0x2b, 0x9f, 0x82, 0x69,
- 0xcd, 0xea, 0x46, 0x87, 0xbb, 0x22, 0x46, 0x8e, 0xf9, 0xee, 0x35, 0xe1, 0x25, 0x08, 0x5a, 0xcc,
- 0xf7, 0x04, 0xe1, 0x4b, 0x89, 0xe4, 0xfa, 0xce, 0xca, 0x57, 0x13, 0xb3, 0xeb, 0x14, 0xba, 0xc3,
- 0x67, 0x2a, 0xa3, 0xb6, 0x81, 0x34, 0x3c, 0x7a, 0xf8, 0xf2, 0x93, 0xf0, 0x54, 0x47, 0xf7, 0xf6,
- 0x7b, 0xcd, 0x05, 0xcd, 0xea, 0x2e, 0x76, 0xac, 0x8e, 0x15, 0x7c, 0xfa, 0xc4, 0x4f, 0xe4, 0x81,
- 0xfc, 0xc5, 0x3e, 0x7f, 0xe6, 0x7c, 0xe9, 0x6c, 0xec, 0xb7, 0xd2, 0xca, 0x36, 0x4c, 0x33, 0x63,
- 0x85, 0x7c, 0x7f, 0xa1, 0xa7, 0x08, 0xe9, 0xbe, 0x77, 0x58, 0xa5, 0xaf, 0xbf, 0x4d, 0xca, 0xb5,
- 0x3c, 0xc5, 0xa0, 0x58, 0x47, 0x0f, 0x1a, 0x15, 0x19, 0x1e, 0xe8, 0xe3, 0xa3, 0x5b, 0x13, 0x39,
- 0x31, 0x8c, 0xdf, 0x65, 0x8c, 0xd3, 0x21, 0xc6, 0x06, 0x83, 0x56, 0x56, 0x61, 0xe2, 0x38, 0x5c,
- 0xff, 0xcc, 0xb8, 0x0a, 0x28, 0x4c, 0xb2, 0x0e, 0x93, 0x84, 0x44, 0xeb, 0xb9, 0x9e, 0xd5, 0x25,
- 0x79, 0xef, 0xfe, 0x34, 0xff, 0xf2, 0x36, 0xdd, 0x2b, 0x45, 0x0c, 0x5b, 0xf5, 0x51, 0x95, 0x0a,
- 0x90, 0x4f, 0x4e, 0x2d, 0xa4, 0x19, 0x31, 0x0c, 0x6f, 0xb2, 0x81, 0xf8, 0xf6, 0x95, 0x4f, 0xc2,
- 0x0c, 0xfe, 0x9b, 0xa4, 0xa5, 0xf0, 0x48, 0xe2, 0x2f, 0xbc, 0x4a, 0xdf, 0x7f, 0x85, 0x6e, 0xc7,
- 0x69, 0x9f, 0x20, 0x34, 0xa6, 0xd0, 0x2a, 0x76, 0x90, 0xe7, 0x21, 0xc7, 0x55, 0x54, 0x63, 0xd8,
- 0xf0, 0x42, 0x37, 0x06, 0xa5, 0xcf, 0xbf, 0xd3, 0xbf, 0x8a, 0xeb, 0x14, 0x59, 0x35, 0x8c, 0xca,
- 0x1e, 0x9c, 0x1c, 0x12, 0x15, 0x23, 0x70, 0xbe, 0xca, 0x38, 0x67, 0x06, 0x22, 0x03, 0xd3, 0xee,
- 0x00, 0x97, 0xfb, 0x6b, 0x39, 0x02, 0xe7, 0x1f, 0x31, 0x4e, 0x89, 0x61, 0xf9, 0x92, 0x62, 0xc6,
- 0xe7, 0x60, 0xea, 0x26, 0x72, 0x9a, 0x96, 0xcb, 0x6e, 0x69, 0x46, 0xa0, 0x7b, 0x8d, 0xd1, 0x4d,
- 0x32, 0x20, 0xb9, 0xb6, 0xc1, 0x5c, 0x97, 0x21, 0xdb, 0x56, 0x35, 0x34, 0x02, 0xc5, 0x17, 0x18,
- 0xc5, 0x38, 0xb6, 0xc7, 0xd0, 0x2a, 0x14, 0x3a, 0x16, 0xab, 0x4c, 0xf1, 0xf0, 0xd7, 0x19, 0x3c,
- 0xcf, 0x31, 0x8c, 0xc2, 0xb6, 0xec, 0x9e, 0x81, 0xcb, 0x56, 0x3c, 0xc5, 0x1f, 0x73, 0x0a, 0x8e,
- 0x61, 0x14, 0xc7, 0x70, 0xeb, 0x9f, 0x70, 0x0a, 0x37, 0xe4, 0xcf, 0x67, 0x21, 0x6f, 0x99, 0xc6,
- 0x81, 0x65, 0x8e, 0x32, 0x88, 0x2f, 0x32, 0x06, 0x60, 0x10, 0x4c, 0x70, 0x05, 0x72, 0xa3, 0x2e,
- 0xc4, 0x9f, 0xbd, 0xc3, 0xb7, 0x07, 0x5f, 0x81, 0x75, 0x98, 0xe4, 0x09, 0x4a, 0xb7, 0xcc, 0x11,
- 0x28, 0xbe, 0xcc, 0x28, 0x8a, 0x21, 0x18, 0x9b, 0x86, 0x87, 0x5c, 0xaf, 0x83, 0x46, 0x21, 0x79,
- 0x83, 0x4f, 0x83, 0x41, 0x98, 0x2b, 0x9b, 0xc8, 0xd4, 0xf6, 0x47, 0x63, 0xf8, 0x0a, 0x77, 0x25,
- 0xc7, 0x60, 0x8a, 0x55, 0x98, 0xe8, 0xaa, 0x8e, 0xbb, 0xaf, 0x1a, 0x23, 0x2d, 0xc7, 0x9f, 0x33,
- 0x8e, 0x82, 0x0f, 0x62, 0x1e, 0xe9, 0x99, 0xc7, 0xa1, 0xf9, 0x2a, 0xf7, 0x48, 0x08, 0xc6, 0xb6,
- 0x9e, 0xeb, 0x91, 0x2b, 0xad, 0xe3, 0xb0, 0xfd, 0x05, 0xdf, 0x7a, 0x14, 0xbb, 0x15, 0x66, 0xbc,
- 0x02, 0x39, 0x57, 0xbf, 0x3d, 0x12, 0xcd, 0x5f, 0xf2, 0x95, 0x26, 0x00, 0x0c, 0x7e, 0x11, 0x4e,
- 0x0d, 0x2d, 0x13, 0x23, 0x90, 0xfd, 0x15, 0x23, 0x3b, 0x31, 0xa4, 0x54, 0xb0, 0x94, 0x70, 0x5c,
- 0xca, 0xbf, 0xe6, 0x29, 0x01, 0x45, 0xb8, 0x76, 0xf0, 0x59, 0xc1, 0x55, 0xdb, 0xc7, 0xf3, 0xda,
- 0xdf, 0x70, 0xaf, 0x51, 0x6c, 0x9f, 0xd7, 0x76, 0xe1, 0x04, 0x63, 0x3c, 0xde, 0xba, 0x7e, 0x8d,
- 0x27, 0x56, 0x8a, 0xde, 0xeb, 0x5f, 0xdd, 0x4f, 0xc1, 0xac, 0xef, 0x4e, 0xde, 0x94, 0xba, 0x4a,
- 0x57, 0xb5, 0x47, 0x60, 0xfe, 0x3a, 0x63, 0xe6, 0x19, 0xdf, 0xef, 0x6a, 0xdd, 0x2d, 0xd5, 0xc6,
- 0xe4, 0x2f, 0x40, 0x89, 0x93, 0xf7, 0x4c, 0x07, 0x69, 0x56, 0xc7, 0xd4, 0x6f, 0xa3, 0xd6, 0x08,
- 0xd4, 0x7f, 0x1b, 0x59, 0xaa, 0xbd, 0x10, 0x1c, 0x33, 0x6f, 0x80, 0xe8, 0xf7, 0x2a, 0x8a, 0xde,
- 0xb5, 0x2d, 0xc7, 0x8b, 0x61, 0xfc, 0x06, 0x5f, 0x29, 0x1f, 0xb7, 0x41, 0x60, 0x95, 0x1a, 0x14,
- 0xc9, 0xe3, 0xa8, 0x21, 0xf9, 0x77, 0x8c, 0x68, 0x22, 0x40, 0xb1, 0xc4, 0xa1, 0x59, 0x5d, 0x5b,
- 0x75, 0x46, 0xc9, 0x7f, 0x7f, 0xcf, 0x13, 0x07, 0x83, 0xb0, 0xc4, 0xe1, 0x1d, 0xd8, 0x08, 0x57,
- 0xfb, 0x11, 0x18, 0xbe, 0xc9, 0x13, 0x07, 0xc7, 0x30, 0x0a, 0xde, 0x30, 0x8c, 0x40, 0xf1, 0x0f,
- 0x9c, 0x82, 0x63, 0x30, 0xc5, 0x27, 0x82, 0x42, 0xeb, 0xa0, 0x8e, 0xee, 0x7a, 0x0e, 0x6d, 0x85,
- 0xef, 0x4f, 0xf5, 0xad, 0x77, 0xfa, 0x9b, 0x30, 0x39, 0x04, 0xc5, 0x99, 0x88, 0x5d, 0xa1, 0x92,
- 0x93, 0x52, 0xfc, 0xc0, 0xbe, 0xcd, 0x33, 0x51, 0x08, 0x86, 0xc7, 0x16, 0xea, 0x10, 0xb1, 0xdb,
- 0x35, 0x7c, 0x3e, 0x18, 0x81, 0xee, 0x3b, 0x91, 0xc1, 0x35, 0x38, 0x16, 0x73, 0x86, 0xfa, 0x9f,
- 0x9e, 0x79, 0x03, 0x1d, 0x8c, 0x14, 0x9d, 0xff, 0x18, 0xe9, 0x7f, 0xf6, 0x28, 0x92, 0xe6, 0x90,
- 0xc9, 0x48, 0x3f, 0x25, 0xc5, 0xfd, 0x58, 0xa7, 0xf4, 0x2b, 0xf7, 0xd8, 0x7c, 0xfb, 0xdb, 0xa9,
- 0xca, 0x26, 0x0e, 0xf2, 0xfe, 0xa6, 0x27, 0x9e, 0xec, 0x95, 0x7b, 0x7e, 0x9c, 0xf7, 0xf5, 0x3c,
- 0x95, 0xab, 0x30, 0xd1, 0xd7, 0xf0, 0xc4, 0x53, 0xfd, 0x2a, 0xa3, 0x2a, 0x84, 0xfb, 0x9d, 0xca,
- 0x32, 0xa4, 0x70, 0xf3, 0x12, 0x0f, 0xff, 0x35, 0x06, 0x27, 0xe6, 0x95, 0x8f, 0x41, 0x96, 0x37,
- 0x2d, 0xf1, 0xd0, 0x5f, 0x67, 0x50, 0x1f, 0x82, 0xe1, 0xbc, 0x61, 0x89, 0x87, 0xff, 0x06, 0x87,
- 0x73, 0x08, 0x86, 0x8f, 0xee, 0xc2, 0x7f, 0xfa, 0xcd, 0x14, 0x2b, 0x3a, 0xdc, 0x77, 0x57, 0x60,
- 0x9c, 0x75, 0x2a, 0xf1, 0xe8, 0xcf, 0xb0, 0x97, 0x73, 0x44, 0xe5, 0x22, 0xa4, 0x47, 0x74, 0xf8,
- 0x6f, 0x31, 0x28, 0xb5, 0xaf, 0xac, 0x42, 0x3e, 0xd4, 0x9d, 0xc4, 0xc3, 0x7f, 0x9b, 0xc1, 0xc3,
- 0x28, 0x3c, 0x74, 0xd6, 0x9d, 0xc4, 0x13, 0xfc, 0x0e, 0x1f, 0x3a, 0x43, 0x60, 0xb7, 0xf1, 0xc6,
- 0x24, 0x1e, 0xfd, 0xbb, 0xdc, 0xeb, 0x1c, 0x52, 0x79, 0x16, 0x72, 0x7e, 0xb1, 0x89, 0xc7, 0xff,
- 0x1e, 0xc3, 0x07, 0x18, 0xec, 0x81, 0x50, 0xb1, 0x8b, 0xa7, 0xf8, 0x7d, 0xee, 0x81, 0x10, 0x0a,
- 0x6f, 0xa3, 0x68, 0x03, 0x13, 0xcf, 0xf4, 0x59, 0xbe, 0x8d, 0x22, 0xfd, 0x0b, 0x5e, 0x4d, 0x92,
- 0xf3, 0xe3, 0x29, 0xfe, 0x80, 0xaf, 0x26, 0xb1, 0xc7, 0xc3, 0x88, 0x76, 0x04, 0xf1, 0x1c, 0x7f,
- 0xc8, 0x87, 0x11, 0x69, 0x08, 0x2a, 0x3b, 0x20, 0x0d, 0x76, 0x03, 0xf1, 0x7c, 0x9f, 0x63, 0x7c,
- 0x53, 0x03, 0xcd, 0x40, 0xe5, 0x79, 0x38, 0x31, 0xbc, 0x13, 0x88, 0x67, 0xfd, 0xfc, 0xbd, 0xc8,
- 0xd9, 0x2d, 0xdc, 0x08, 0x54, 0x76, 0x83, 0x92, 0x12, 0xee, 0x02, 0xe2, 0x69, 0x5f, 0xbd, 0xd7,
- 0x9f, 0xb8, 0xc3, 0x4d, 0x40, 0xa5, 0x0a, 0x10, 0x14, 0xe0, 0x78, 0xae, 0xd7, 0x18, 0x57, 0x08,
- 0x84, 0xb7, 0x06, 0xab, 0xbf, 0xf1, 0xf8, 0x2f, 0xf0, 0xad, 0xc1, 0x10, 0x78, 0x6b, 0xf0, 0xd2,
- 0x1b, 0x8f, 0x7e, 0x9d, 0x6f, 0x0d, 0x0e, 0xc1, 0x91, 0x1d, 0xaa, 0x6e, 0xf1, 0x0c, 0x5f, 0xe4,
- 0x91, 0x1d, 0x42, 0x55, 0xb6, 0x61, 0x6a, 0xa0, 0x20, 0xc6, 0x53, 0x7d, 0x89, 0x51, 0x89, 0xd1,
- 0x7a, 0x18, 0x2e, 0x5e, 0xac, 0x18, 0xc6, 0xb3, 0xfd, 0x69, 0xa4, 0x78, 0xb1, 0x5a, 0x58, 0xb9,
- 0x02, 0x59, 0xb3, 0x67, 0x18, 0x78, 0xf3, 0x48, 0xf7, 0xff, 0x81, 0x5d, 0xe9, 0x3f, 0xde, 0x67,
- 0xde, 0xe1, 0x80, 0xca, 0x32, 0xa4, 0x51, 0xb7, 0x89, 0x5a, 0x71, 0xc8, 0xff, 0x7c, 0x9f, 0x27,
- 0x4c, 0x6c, 0x5d, 0x79, 0x16, 0x80, 0x5e, 0x8d, 0x90, 0xcf, 0x7e, 0x31, 0xd8, 0xff, 0x7a, 0x9f,
- 0xfd, 0xf4, 0x25, 0x80, 0x04, 0x04, 0xf4, 0x87, 0x34, 0xf7, 0x27, 0x78, 0xa7, 0x9f, 0x80, 0xac,
- 0xc8, 0x65, 0x18, 0xbf, 0xee, 0x5a, 0xa6, 0xa7, 0x76, 0xe2, 0xd0, 0xff, 0xcd, 0xd0, 0xdc, 0x1e,
- 0x3b, 0xac, 0x6b, 0x39, 0xc8, 0x53, 0x3b, 0x6e, 0x1c, 0xf6, 0x7f, 0x18, 0xd6, 0x07, 0x60, 0xb0,
- 0xa6, 0xba, 0xde, 0x28, 0xf3, 0xfe, 0x31, 0x07, 0x73, 0x00, 0x1e, 0x34, 0xfe, 0xfb, 0x06, 0x3a,
- 0x88, 0xc3, 0xbe, 0xcb, 0x07, 0xcd, 0xec, 0x2b, 0x1f, 0x83, 0x1c, 0xfe, 0x93, 0xfe, 0x9e, 0x2d,
- 0x06, 0xfc, 0xbf, 0x0c, 0x1c, 0x20, 0xf0, 0x9b, 0x5d, 0xaf, 0xe5, 0xe9, 0xf1, 0xce, 0xfe, 0x3f,
- 0xb6, 0xd2, 0xdc, 0xbe, 0x52, 0x85, 0xbc, 0xeb, 0xb5, 0x5a, 0x3d, 0xd6, 0x9f, 0xc6, 0xc0, 0xff,
- 0xff, 0x7d, 0xff, 0xca, 0xc2, 0xc7, 0xe0, 0xd5, 0xbe, 0x75, 0xc3, 0xb3, 0x2d, 0xf2, 0x99, 0x23,
- 0x8e, 0xe1, 0x1e, 0x63, 0x08, 0x41, 0x56, 0x6a, 0xc3, 0xaf, 0x6f, 0x61, 0xdd, 0x5a, 0xb7, 0xe8,
- 0xc5, 0xed, 0x4b, 0x73, 0xf1, 0x37, 0xb0, 0xf0, 0xd9, 0x34, 0x3c, 0xa0, 0x59, 0xdd, 0xa6, 0xe5,
- 0x2e, 0x36, 0x2d, 0x6f, 0x7f, 0xd1, 0x32, 0x19, 0x99, 0x94, 0xb4, 0x4c, 0x34, 0x7b, 0xbc, 0x4b,
- 0xdc, 0xb9, 0x53, 0x90, 0x6e, 0xf4, 0x9a, 0xcd, 0x03, 0x49, 0x84, 0xa4, 0xdb, 0x6b, 0xb2, 0x1f,
- 0x44, 0xe1, 0x3f, 0xe7, 0x7e, 0x90, 0x84, 0x7c, 0x43, 0xed, 0xda, 0x06, 0xaa, 0x9b, 0xa8, 0xde,
- 0x96, 0x4a, 0x90, 0x21, 0x73, 0x7c, 0x86, 0x18, 0x09, 0xd7, 0xc6, 0x64, 0xf6, 0xec, 0x6b, 0x96,
- 0xc8, 0xe5, 0x76, 0xc2, 0xd7, 0x2c, 0xf9, 0x9a, 0x73, 0xf4, 0x6e, 0xdb, 0xd7, 0x9c, 0xf3, 0x35,
- 0xe7, 0xc9, 0x0d, 0x77, 0xd2, 0xd7, 0x9c, 0xf7, 0x35, 0xcb, 0xe4, 0x0b, 0xce, 0x84, 0xaf, 0x59,
- 0xf6, 0x35, 0x17, 0xc8, 0x37, 0x9b, 0x94, 0xaf, 0xb9, 0xe0, 0x6b, 0x2e, 0x92, 0x4f, 0x35, 0x53,
- 0xbe, 0xe6, 0xa2, 0xaf, 0xb9, 0x44, 0x3e, 0xcf, 0x48, 0xbe, 0xe6, 0x92, 0xaf, 0xb9, 0x4c, 0x7e,
- 0xf7, 0x34, 0xee, 0x6b, 0x2e, 0x4b, 0xb3, 0x30, 0x4e, 0x67, 0xf6, 0x34, 0xf9, 0x86, 0x3f, 0x79,
- 0x6d, 0x4c, 0xe6, 0x82, 0x40, 0xf7, 0x0c, 0xf9, 0x6d, 0x53, 0x26, 0xd0, 0x3d, 0x13, 0xe8, 0x96,
- 0xc8, 0x7f, 0xb1, 0x10, 0x03, 0xdd, 0x52, 0xa0, 0x3b, 0x57, 0x9a, 0xc0, 0xa1, 0x11, 0xe8, 0xce,
- 0x05, 0xba, 0xf3, 0xa5, 0x22, 0xf6, 0x7f, 0xa0, 0x3b, 0x1f, 0xe8, 0x96, 0x4b, 0x93, 0x67, 0x84,
- 0xf9, 0x42, 0xa0, 0x5b, 0x96, 0x9e, 0x82, 0xbc, 0xdb, 0x6b, 0x2a, 0x2c, 0xc9, 0x93, 0xdf, 0x50,
- 0xe5, 0x97, 0x60, 0x01, 0x47, 0x04, 0x59, 0xd4, 0x6b, 0x63, 0x32, 0xb8, 0xbd, 0x26, 0xcb, 0xc1,
- 0x2b, 0x05, 0x20, 0x57, 0x4f, 0x0a, 0xf9, 0xe9, 0xf3, 0xca, 0xda, 0x9b, 0x77, 0xcb, 0x63, 0xdf,
- 0xbb, 0x5b, 0x1e, 0xfb, 0xb7, 0xbb, 0xe5, 0xb1, 0xb7, 0xee, 0x96, 0x85, 0x77, 0xef, 0x96, 0x85,
- 0xf7, 0xee, 0x96, 0x85, 0x3b, 0x87, 0x65, 0xe1, 0x2b, 0x87, 0x65, 0xe1, 0x6b, 0x87, 0x65, 0xe1,
- 0x5b, 0x87, 0x65, 0xe1, 0xcd, 0xc3, 0xb2, 0xf0, 0xbd, 0xc3, 0xb2, 0xf0, 0xd6, 0x61, 0x59, 0xf8,
- 0xd1, 0x61, 0x79, 0xec, 0xdd, 0xc3, 0xb2, 0xf0, 0xde, 0x61, 0x79, 0xec, 0xce, 0x0f, 0xcb, 0x63,
- 0xcd, 0x0c, 0x09, 0xa3, 0x73, 0x3f, 0x09, 0x00, 0x00, 0xff, 0xff, 0x25, 0xd2, 0x18, 0xa9, 0x31,
- 0x35, 0x00, 0x00,
+ // 4117 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5b, 0x70, 0x1b, 0xe7,
+ 0x75, 0xe6, 0xe2, 0x46, 0xe0, 0x00, 0x04, 0x97, 0x4b, 0x8a, 0x82, 0xe8, 0x18, 0xa2, 0x68, 0x3b,
+ 0xa6, 0xed, 0x98, 0xb4, 0x29, 0x52, 0x17, 0xa8, 0x89, 0x0b, 0x92, 0x10, 0x45, 0x97, 0x24, 0x98,
+ 0x05, 0x19, 0x5f, 0x32, 0x9d, 0x9d, 0xc5, 0xe2, 0x07, 0xb8, 0xd2, 0x62, 0x77, 0xb3, 0xbb, 0x90,
+ 0x4c, 0x4d, 0x1f, 0xd4, 0x71, 0x2f, 0x93, 0xe9, 0xbd, 0xe9, 0x4c, 0x13, 0xd7, 0x71, 0x9b, 0x74,
+ 0x1a, 0xa7, 0xe9, 0x2d, 0xe9, 0x25, 0x4d, 0xd2, 0x97, 0xbe, 0xa4, 0xf5, 0x53, 0x27, 0x79, 0xeb,
+ 0x43, 0x1e, 0x2c, 0xc6, 0x33, 0x4d, 0x5b, 0xb7, 0x75, 0x5b, 0x3d, 0x78, 0x46, 0x2f, 0x99, 0xff,
+ 0xb6, 0xbb, 0xb8, 0x50, 0x0b, 0x66, 0xc6, 0xce, 0x93, 0xb8, 0xe7, 0x9c, 0xef, 0xdb, 0xf3, 0x9f,
+ 0xff, 0xfc, 0xff, 0x39, 0xff, 0xbf, 0x10, 0xbc, 0x55, 0x82, 0xd9, 0x96, 0x65, 0xb5, 0x0c, 0xb4,
+ 0x68, 0x3b, 0x96, 0x67, 0xd5, 0x3b, 0xcd, 0xc5, 0x06, 0x72, 0x35, 0x47, 0xb7, 0x3d, 0xcb, 0x59,
+ 0x20, 0x32, 0x69, 0x9c, 0x5a, 0x2c, 0x70, 0x8b, 0xb9, 0x6d, 0x98, 0xb8, 0xaa, 0x1b, 0x68, 0xdd,
+ 0x37, 0xac, 0x21, 0x4f, 0xba, 0x04, 0x89, 0xa6, 0x6e, 0xa0, 0x82, 0x30, 0x1b, 0x9f, 0xcf, 0x2e,
+ 0x3d, 0xba, 0xd0, 0x03, 0x5a, 0xe8, 0x46, 0xec, 0x62, 0xb1, 0x4c, 0x10, 0x73, 0xef, 0x24, 0x60,
+ 0x72, 0x80, 0x56, 0x92, 0x20, 0x61, 0xaa, 0x6d, 0xcc, 0x28, 0xcc, 0x67, 0x64, 0xf2, 0xb7, 0x54,
+ 0x80, 0x51, 0x5b, 0xd5, 0x6e, 0xa8, 0x2d, 0x54, 0x88, 0x11, 0x31, 0x7f, 0x94, 0x8a, 0x00, 0x0d,
+ 0x64, 0x23, 0xb3, 0x81, 0x4c, 0xed, 0xb0, 0x10, 0x9f, 0x8d, 0xcf, 0x67, 0xe4, 0x90, 0x44, 0x7a,
+ 0x0a, 0x26, 0xec, 0x4e, 0xdd, 0xd0, 0x35, 0x25, 0x64, 0x06, 0xb3, 0xf1, 0xf9, 0xa4, 0x2c, 0x52,
+ 0xc5, 0x7a, 0x60, 0xfc, 0x38, 0x8c, 0xdf, 0x42, 0xea, 0x8d, 0xb0, 0x69, 0x96, 0x98, 0xe6, 0xb1,
+ 0x38, 0x64, 0xb8, 0x06, 0xb9, 0x36, 0x72, 0x5d, 0xb5, 0x85, 0x14, 0xef, 0xd0, 0x46, 0x85, 0x04,
+ 0x19, 0xfd, 0x6c, 0xdf, 0xe8, 0x7b, 0x47, 0x9e, 0x65, 0xa8, 0xbd, 0x43, 0x1b, 0x49, 0x65, 0xc8,
+ 0x20, 0xb3, 0xd3, 0xa6, 0x0c, 0xc9, 0x63, 0xe2, 0x57, 0x31, 0x3b, 0xed, 0x5e, 0x96, 0x34, 0x86,
+ 0x31, 0x8a, 0x51, 0x17, 0x39, 0x37, 0x75, 0x0d, 0x15, 0x52, 0x84, 0xe0, 0xf1, 0x3e, 0x82, 0x1a,
+ 0xd5, 0xf7, 0x72, 0x70, 0x9c, 0xb4, 0x06, 0x19, 0xf4, 0x8a, 0x87, 0x4c, 0x57, 0xb7, 0xcc, 0xc2,
+ 0x28, 0x21, 0x79, 0x6c, 0xc0, 0x2c, 0x22, 0xa3, 0xd1, 0x4b, 0x11, 0xe0, 0xa4, 0x0b, 0x30, 0x6a,
+ 0xd9, 0x9e, 0x6e, 0x99, 0x6e, 0x21, 0x3d, 0x2b, 0xcc, 0x67, 0x97, 0x3e, 0x32, 0x30, 0x11, 0xaa,
+ 0xd4, 0x46, 0xe6, 0xc6, 0xd2, 0x26, 0x88, 0xae, 0xd5, 0x71, 0x34, 0xa4, 0x68, 0x56, 0x03, 0x29,
+ 0xba, 0xd9, 0xb4, 0x0a, 0x19, 0x42, 0x70, 0xb6, 0x7f, 0x20, 0xc4, 0x70, 0xcd, 0x6a, 0xa0, 0x4d,
+ 0xb3, 0x69, 0xc9, 0x79, 0xb7, 0xeb, 0x59, 0x9a, 0x86, 0x94, 0x7b, 0x68, 0x7a, 0xea, 0x2b, 0x85,
+ 0x1c, 0xc9, 0x10, 0xf6, 0x34, 0xf7, 0xed, 0x14, 0x8c, 0x0f, 0x93, 0x62, 0x57, 0x20, 0xd9, 0xc4,
+ 0xa3, 0x2c, 0xc4, 0x4e, 0x12, 0x03, 0x8a, 0xe9, 0x0e, 0x62, 0xea, 0x27, 0x0c, 0x62, 0x19, 0xb2,
+ 0x26, 0x72, 0x3d, 0xd4, 0xa0, 0x19, 0x11, 0x1f, 0x32, 0xa7, 0x80, 0x82, 0xfa, 0x53, 0x2a, 0xf1,
+ 0x13, 0xa5, 0xd4, 0x8b, 0x30, 0xee, 0xbb, 0xa4, 0x38, 0xaa, 0xd9, 0xe2, 0xb9, 0xb9, 0x18, 0xe5,
+ 0xc9, 0x42, 0x85, 0xe3, 0x64, 0x0c, 0x93, 0xf3, 0xa8, 0xeb, 0x59, 0x5a, 0x07, 0xb0, 0x4c, 0x64,
+ 0x35, 0x95, 0x06, 0xd2, 0x8c, 0x42, 0xfa, 0x98, 0x28, 0x55, 0xb1, 0x49, 0x5f, 0x94, 0x2c, 0x2a,
+ 0xd5, 0x0c, 0xe9, 0x72, 0x90, 0x6a, 0xa3, 0xc7, 0x64, 0xca, 0x36, 0x5d, 0x64, 0x7d, 0xd9, 0xb6,
+ 0x0f, 0x79, 0x07, 0xe1, 0xbc, 0x47, 0x0d, 0x36, 0xb2, 0x0c, 0x71, 0x62, 0x21, 0x72, 0x64, 0x32,
+ 0x83, 0xd1, 0x81, 0x8d, 0x39, 0xe1, 0x47, 0xe9, 0x11, 0xf0, 0x05, 0x0a, 0x49, 0x2b, 0x20, 0xbb,
+ 0x50, 0x8e, 0x0b, 0x77, 0xd4, 0x36, 0x9a, 0xb9, 0x0d, 0xf9, 0xee, 0xf0, 0x48, 0x53, 0x90, 0x74,
+ 0x3d, 0xd5, 0xf1, 0x48, 0x16, 0x26, 0x65, 0xfa, 0x20, 0x89, 0x10, 0x47, 0x66, 0x83, 0xec, 0x72,
+ 0x49, 0x19, 0xff, 0x29, 0xfd, 0x6c, 0x30, 0xe0, 0x38, 0x19, 0xf0, 0x47, 0xfb, 0x67, 0xb4, 0x8b,
+ 0xb9, 0x77, 0xdc, 0x33, 0x17, 0x61, 0xac, 0x6b, 0x00, 0xc3, 0xbe, 0x7a, 0xee, 0x17, 0xe0, 0xd4,
+ 0x40, 0x6a, 0xe9, 0x45, 0x98, 0xea, 0x98, 0xba, 0xe9, 0x21, 0xc7, 0x76, 0x10, 0xce, 0x58, 0xfa,
+ 0xaa, 0xc2, 0xbf, 0x8d, 0x1e, 0x93, 0x73, 0xfb, 0x61, 0x6b, 0xca, 0x22, 0x4f, 0x76, 0xfa, 0x85,
+ 0x4f, 0x66, 0xd2, 0x3f, 0x1a, 0x15, 0xef, 0xdc, 0xb9, 0x73, 0x27, 0x36, 0xf7, 0xf9, 0x14, 0x4c,
+ 0x0d, 0x5a, 0x33, 0x03, 0x97, 0xef, 0x34, 0xa4, 0xcc, 0x4e, 0xbb, 0x8e, 0x1c, 0x12, 0xa4, 0xa4,
+ 0xcc, 0x9e, 0xa4, 0x32, 0x24, 0x0d, 0xb5, 0x8e, 0x8c, 0x42, 0x62, 0x56, 0x98, 0xcf, 0x2f, 0x3d,
+ 0x35, 0xd4, 0xaa, 0x5c, 0xd8, 0xc2, 0x10, 0x99, 0x22, 0xa5, 0x4f, 0x40, 0x82, 0x6d, 0xd1, 0x98,
+ 0xe1, 0xc9, 0xe1, 0x18, 0xf0, 0x5a, 0x92, 0x09, 0x4e, 0x7a, 0x08, 0x32, 0xf8, 0x5f, 0x9a, 0x1b,
+ 0x29, 0xe2, 0x73, 0x1a, 0x0b, 0x70, 0x5e, 0x48, 0x33, 0x90, 0x26, 0xcb, 0xa4, 0x81, 0x78, 0x69,
+ 0xf3, 0x9f, 0x71, 0x62, 0x35, 0x50, 0x53, 0xed, 0x18, 0x9e, 0x72, 0x53, 0x35, 0x3a, 0x88, 0x24,
+ 0x7c, 0x46, 0xce, 0x31, 0xe1, 0xa7, 0xb0, 0x4c, 0x3a, 0x0b, 0x59, 0xba, 0xaa, 0x74, 0xb3, 0x81,
+ 0x5e, 0x21, 0xbb, 0x67, 0x52, 0xa6, 0x0b, 0x6d, 0x13, 0x4b, 0xf0, 0xeb, 0xaf, 0xbb, 0x96, 0xc9,
+ 0x53, 0x93, 0xbc, 0x02, 0x0b, 0xc8, 0xeb, 0x2f, 0xf6, 0x6e, 0xdc, 0x0f, 0x0f, 0x1e, 0x5e, 0x6f,
+ 0x4e, 0xcd, 0x7d, 0x33, 0x06, 0x09, 0xb2, 0x5f, 0x8c, 0x43, 0x76, 0xef, 0xa5, 0xdd, 0x8a, 0xb2,
+ 0x5e, 0xdd, 0x5f, 0xdd, 0xaa, 0x88, 0x82, 0x94, 0x07, 0x20, 0x82, 0xab, 0x5b, 0xd5, 0xf2, 0x9e,
+ 0x18, 0xf3, 0x9f, 0x37, 0x77, 0xf6, 0x2e, 0x2c, 0x8b, 0x71, 0x1f, 0xb0, 0x4f, 0x05, 0x89, 0xb0,
+ 0xc1, 0xf9, 0x25, 0x31, 0x29, 0x89, 0x90, 0xa3, 0x04, 0x9b, 0x2f, 0x56, 0xd6, 0x2f, 0x2c, 0x8b,
+ 0xa9, 0x6e, 0xc9, 0xf9, 0x25, 0x71, 0x54, 0x1a, 0x83, 0x0c, 0x91, 0xac, 0x56, 0xab, 0x5b, 0x62,
+ 0xda, 0xe7, 0xac, 0xed, 0xc9, 0x9b, 0x3b, 0x1b, 0x62, 0xc6, 0xe7, 0xdc, 0x90, 0xab, 0xfb, 0xbb,
+ 0x22, 0xf8, 0x0c, 0xdb, 0x95, 0x5a, 0xad, 0xbc, 0x51, 0x11, 0xb3, 0xbe, 0xc5, 0xea, 0x4b, 0x7b,
+ 0x95, 0x9a, 0x98, 0xeb, 0x72, 0xeb, 0xfc, 0x92, 0x38, 0xe6, 0xbf, 0xa2, 0xb2, 0xb3, 0xbf, 0x2d,
+ 0xe6, 0xa5, 0x09, 0x18, 0xa3, 0xaf, 0xe0, 0x4e, 0x8c, 0xf7, 0x88, 0x2e, 0x2c, 0x8b, 0x62, 0xe0,
+ 0x08, 0x65, 0x99, 0xe8, 0x12, 0x5c, 0x58, 0x16, 0xa5, 0xb9, 0x35, 0x48, 0x92, 0xec, 0x92, 0x24,
+ 0xc8, 0x6f, 0x95, 0x57, 0x2b, 0x5b, 0x4a, 0x75, 0x77, 0x6f, 0xb3, 0xba, 0x53, 0xde, 0x12, 0x85,
+ 0x40, 0x26, 0x57, 0x3e, 0xb9, 0xbf, 0x29, 0x57, 0xd6, 0xc5, 0x58, 0x58, 0xb6, 0x5b, 0x29, 0xef,
+ 0x55, 0xd6, 0xc5, 0xf8, 0x9c, 0x06, 0x53, 0x83, 0xf6, 0xc9, 0x81, 0x2b, 0x23, 0x34, 0xc5, 0xb1,
+ 0x63, 0xa6, 0x98, 0x70, 0xf5, 0x4d, 0xf1, 0x0f, 0x63, 0x30, 0x39, 0xa0, 0x56, 0x0c, 0x7c, 0xc9,
+ 0x73, 0x90, 0xa4, 0x29, 0x4a, 0xab, 0xe7, 0x13, 0x03, 0x8b, 0x0e, 0x49, 0xd8, 0xbe, 0x0a, 0x4a,
+ 0x70, 0xe1, 0x0e, 0x22, 0x7e, 0x4c, 0x07, 0x81, 0x29, 0xfa, 0xf6, 0xf4, 0x9f, 0xef, 0xdb, 0xd3,
+ 0x69, 0xd9, 0xbb, 0x30, 0x4c, 0xd9, 0x23, 0xb2, 0x93, 0xed, 0xed, 0xc9, 0x01, 0x7b, 0xfb, 0x15,
+ 0x98, 0xe8, 0x23, 0x1a, 0x7a, 0x8f, 0x7d, 0x55, 0x80, 0xc2, 0x71, 0xc1, 0x89, 0xd8, 0xe9, 0x62,
+ 0x5d, 0x3b, 0xdd, 0x95, 0xde, 0x08, 0x9e, 0x3b, 0x7e, 0x12, 0xfa, 0xe6, 0xfa, 0x4d, 0x01, 0xa6,
+ 0x07, 0x77, 0x8a, 0x03, 0x7d, 0xf8, 0x04, 0xa4, 0xda, 0xc8, 0x3b, 0xb0, 0x78, 0xb7, 0xf4, 0xd1,
+ 0x01, 0x35, 0x18, 0xab, 0x7b, 0x27, 0x9b, 0xa1, 0xc2, 0x45, 0x3c, 0x7e, 0x5c, 0xbb, 0x47, 0xbd,
+ 0xe9, 0xf3, 0xf4, 0xb3, 0x31, 0x38, 0x35, 0x90, 0x7c, 0xa0, 0xa3, 0x0f, 0x03, 0xe8, 0xa6, 0xdd,
+ 0xf1, 0x68, 0x47, 0x44, 0x37, 0xd8, 0x0c, 0x91, 0x90, 0xcd, 0x0b, 0x6f, 0x9e, 0x1d, 0xcf, 0xd7,
+ 0xc7, 0x89, 0x1e, 0xa8, 0x88, 0x18, 0x5c, 0x0a, 0x1c, 0x4d, 0x10, 0x47, 0x8b, 0xc7, 0x8c, 0xb4,
+ 0x2f, 0x31, 0x9f, 0x01, 0x51, 0x33, 0x74, 0x64, 0x7a, 0x8a, 0xeb, 0x39, 0x48, 0x6d, 0xeb, 0x66,
+ 0x8b, 0x54, 0x90, 0x74, 0x29, 0xd9, 0x54, 0x0d, 0x17, 0xc9, 0xe3, 0x54, 0x5d, 0xe3, 0x5a, 0x8c,
+ 0x20, 0x09, 0xe4, 0x84, 0x10, 0xa9, 0x2e, 0x04, 0x55, 0xfb, 0x88, 0xb9, 0x5f, 0xcf, 0x40, 0x36,
+ 0xd4, 0x57, 0x4b, 0xe7, 0x20, 0x77, 0x5d, 0xbd, 0xa9, 0x2a, 0xfc, 0xac, 0x44, 0x23, 0x91, 0xc5,
+ 0xb2, 0x5d, 0x76, 0x5e, 0x7a, 0x06, 0xa6, 0x88, 0x89, 0xd5, 0xf1, 0x90, 0xa3, 0x68, 0x86, 0xea,
+ 0xba, 0x24, 0x68, 0x69, 0x62, 0x2a, 0x61, 0x5d, 0x15, 0xab, 0xd6, 0xb8, 0x46, 0x5a, 0x81, 0x49,
+ 0x82, 0x68, 0x77, 0x0c, 0x4f, 0xb7, 0x0d, 0xa4, 0xe0, 0xd3, 0x9b, 0x4b, 0x2a, 0x89, 0xef, 0xd9,
+ 0x04, 0xb6, 0xd8, 0x66, 0x06, 0xd8, 0x23, 0x57, 0x5a, 0x87, 0x87, 0x09, 0xac, 0x85, 0x4c, 0xe4,
+ 0xa8, 0x1e, 0x52, 0xd0, 0x67, 0x3a, 0xaa, 0xe1, 0x2a, 0xaa, 0xd9, 0x50, 0x0e, 0x54, 0xf7, 0xa0,
+ 0x30, 0x85, 0x09, 0x56, 0x63, 0x05, 0x41, 0x3e, 0x83, 0x0d, 0x37, 0x98, 0x5d, 0x85, 0x98, 0x95,
+ 0xcd, 0xc6, 0x35, 0xd5, 0x3d, 0x90, 0x4a, 0x30, 0x4d, 0x58, 0x5c, 0xcf, 0xd1, 0xcd, 0x96, 0xa2,
+ 0x1d, 0x20, 0xed, 0x86, 0xd2, 0xf1, 0x9a, 0x97, 0x0a, 0x0f, 0x85, 0xdf, 0x4f, 0x3c, 0xac, 0x11,
+ 0x9b, 0x35, 0x6c, 0xb2, 0xef, 0x35, 0x2f, 0x49, 0x35, 0xc8, 0xe1, 0xc9, 0x68, 0xeb, 0xb7, 0x91,
+ 0xd2, 0xb4, 0x1c, 0x52, 0x1a, 0xf3, 0x03, 0xb6, 0xa6, 0x50, 0x04, 0x17, 0xaa, 0x0c, 0xb0, 0x6d,
+ 0x35, 0x50, 0x29, 0x59, 0xdb, 0xad, 0x54, 0xd6, 0xe5, 0x2c, 0x67, 0xb9, 0x6a, 0x39, 0x38, 0xa1,
+ 0x5a, 0x96, 0x1f, 0xe0, 0x2c, 0x4d, 0xa8, 0x96, 0xc5, 0xc3, 0xbb, 0x02, 0x93, 0x9a, 0x46, 0xc7,
+ 0xac, 0x6b, 0x0a, 0x3b, 0x63, 0xb9, 0x05, 0xb1, 0x2b, 0x58, 0x9a, 0xb6, 0x41, 0x0d, 0x58, 0x8e,
+ 0xbb, 0xd2, 0x65, 0x38, 0x15, 0x04, 0x2b, 0x0c, 0x9c, 0xe8, 0x1b, 0x65, 0x2f, 0x74, 0x05, 0x26,
+ 0xed, 0xc3, 0x7e, 0xa0, 0xd4, 0xf5, 0x46, 0xfb, 0xb0, 0x17, 0x76, 0x11, 0xa6, 0xec, 0x03, 0xbb,
+ 0x1f, 0xf7, 0x64, 0x18, 0x27, 0xd9, 0x07, 0x76, 0x2f, 0xf0, 0x31, 0x72, 0xe0, 0x76, 0x90, 0xa6,
+ 0x7a, 0xa8, 0x51, 0x38, 0x1d, 0x36, 0x0f, 0x29, 0xa4, 0x45, 0x10, 0x35, 0x4d, 0x41, 0xa6, 0x5a,
+ 0x37, 0x90, 0xa2, 0x3a, 0xc8, 0x54, 0xdd, 0xc2, 0xd9, 0xb0, 0x71, 0x5e, 0xd3, 0x2a, 0x44, 0x5b,
+ 0x26, 0x4a, 0xe9, 0x49, 0x98, 0xb0, 0xea, 0xd7, 0x35, 0x9a, 0x92, 0x8a, 0xed, 0xa0, 0xa6, 0xfe,
+ 0x4a, 0xe1, 0x51, 0x12, 0xdf, 0x71, 0xac, 0x20, 0x09, 0xb9, 0x4b, 0xc4, 0xd2, 0x13, 0x20, 0x6a,
+ 0xee, 0x81, 0xea, 0xd8, 0x64, 0x4f, 0x76, 0x6d, 0x55, 0x43, 0x85, 0xc7, 0xa8, 0x29, 0x95, 0xef,
+ 0x70, 0x31, 0x5e, 0x12, 0xee, 0x2d, 0xbd, 0xe9, 0x71, 0xc6, 0xc7, 0xe9, 0x92, 0x20, 0x32, 0xc6,
+ 0x36, 0x0f, 0x22, 0x0e, 0x45, 0xd7, 0x8b, 0xe7, 0x89, 0x59, 0xde, 0x3e, 0xb0, 0xc3, 0xef, 0x7d,
+ 0x04, 0xc6, 0xb0, 0x65, 0xf0, 0xd2, 0x27, 0x68, 0x43, 0x66, 0x1f, 0x84, 0xde, 0xb8, 0x0c, 0xd3,
+ 0xd8, 0xa8, 0x8d, 0x3c, 0xb5, 0xa1, 0x7a, 0x6a, 0xc8, 0xfa, 0x63, 0xc4, 0x1a, 0xc7, 0x7d, 0x9b,
+ 0x29, 0xbb, 0xfc, 0x74, 0x3a, 0xf5, 0x43, 0x3f, 0xb3, 0x9e, 0xa6, 0x7e, 0x62, 0x19, 0xcf, 0xad,
+ 0x0f, 0xac, 0xe9, 0x9e, 0x2b, 0x41, 0x2e, 0x9c, 0xf8, 0x52, 0x06, 0x68, 0xea, 0x8b, 0x02, 0xee,
+ 0x82, 0xd6, 0xaa, 0xeb, 0xb8, 0x7f, 0x79, 0xb9, 0x22, 0xc6, 0x70, 0x1f, 0xb5, 0xb5, 0xb9, 0x57,
+ 0x51, 0xe4, 0xfd, 0x9d, 0xbd, 0xcd, 0xed, 0x8a, 0x18, 0x0f, 0x37, 0xec, 0xdf, 0x8d, 0x41, 0xbe,
+ 0xfb, 0xec, 0x25, 0xfd, 0x0c, 0x9c, 0xe6, 0x17, 0x25, 0x2e, 0xf2, 0x94, 0x5b, 0xba, 0x43, 0xd6,
+ 0x62, 0x5b, 0xa5, 0x75, 0xd1, 0xcf, 0x86, 0x29, 0x66, 0x55, 0x43, 0xde, 0x0b, 0xba, 0x83, 0x57,
+ 0x5a, 0x5b, 0xf5, 0xa4, 0x2d, 0x38, 0x6b, 0x5a, 0x8a, 0xeb, 0xa9, 0x66, 0x43, 0x75, 0x1a, 0x4a,
+ 0x70, 0x45, 0xa5, 0xa8, 0x9a, 0x86, 0x5c, 0xd7, 0xa2, 0x35, 0xd0, 0x67, 0xf9, 0x88, 0x69, 0xd5,
+ 0x98, 0x71, 0x50, 0x1c, 0xca, 0xcc, 0xb4, 0x27, 0x73, 0xe3, 0xc7, 0x65, 0xee, 0x43, 0x90, 0x69,
+ 0xab, 0xb6, 0x82, 0x4c, 0xcf, 0x39, 0x24, 0x1d, 0x77, 0x5a, 0x4e, 0xb7, 0x55, 0xbb, 0x82, 0x9f,
+ 0x3f, 0x9c, 0x83, 0xcf, 0x0f, 0xe2, 0x90, 0x0b, 0x77, 0xdd, 0xf8, 0x10, 0xa3, 0x91, 0x02, 0x25,
+ 0x90, 0x2d, 0xec, 0x91, 0x07, 0xf6, 0xe8, 0x0b, 0x6b, 0xb8, 0x72, 0x95, 0x52, 0xb4, 0x17, 0x96,
+ 0x29, 0x12, 0x77, 0x0d, 0x38, 0xb5, 0x10, 0xed, 0x3d, 0xd2, 0x32, 0x7b, 0x92, 0x36, 0x20, 0x75,
+ 0xdd, 0x25, 0xdc, 0x29, 0xc2, 0xfd, 0xe8, 0x83, 0xb9, 0x9f, 0xaf, 0x11, 0xf2, 0xcc, 0xf3, 0x35,
+ 0x65, 0xa7, 0x2a, 0x6f, 0x97, 0xb7, 0x64, 0x06, 0x97, 0xce, 0x40, 0xc2, 0x50, 0x6f, 0x1f, 0x76,
+ 0xd7, 0x38, 0x22, 0x1a, 0x36, 0xf0, 0x67, 0x20, 0x71, 0x0b, 0xa9, 0x37, 0xba, 0x2b, 0x0b, 0x11,
+ 0x7d, 0x80, 0xa9, 0xbf, 0x08, 0x49, 0x12, 0x2f, 0x09, 0x80, 0x45, 0x4c, 0x1c, 0x91, 0xd2, 0x90,
+ 0x58, 0xab, 0xca, 0x38, 0xfd, 0x45, 0xc8, 0x51, 0xa9, 0xb2, 0xbb, 0x59, 0x59, 0xab, 0x88, 0xb1,
+ 0xb9, 0x15, 0x48, 0xd1, 0x20, 0xe0, 0xa5, 0xe1, 0x87, 0x41, 0x1c, 0x61, 0x8f, 0x8c, 0x43, 0xe0,
+ 0xda, 0xfd, 0xed, 0xd5, 0x8a, 0x2c, 0xc6, 0xc2, 0xd3, 0xeb, 0x42, 0x2e, 0xdc, 0x70, 0x7f, 0x38,
+ 0x39, 0xf5, 0x1d, 0x01, 0xb2, 0xa1, 0x06, 0x1a, 0x77, 0x3e, 0xaa, 0x61, 0x58, 0xb7, 0x14, 0xd5,
+ 0xd0, 0x55, 0x97, 0x25, 0x05, 0x10, 0x51, 0x19, 0x4b, 0x86, 0x9d, 0xb4, 0x0f, 0xc5, 0xf9, 0x37,
+ 0x04, 0x10, 0x7b, 0x7b, 0xd7, 0x1e, 0x07, 0x85, 0x9f, 0xaa, 0x83, 0xaf, 0x0b, 0x90, 0xef, 0x6e,
+ 0x58, 0x7b, 0xdc, 0x3b, 0xf7, 0x53, 0x75, 0xef, 0xed, 0x18, 0x8c, 0x75, 0xb5, 0xa9, 0xc3, 0x7a,
+ 0xf7, 0x19, 0x98, 0xd0, 0x1b, 0xa8, 0x6d, 0x5b, 0x1e, 0x32, 0xb5, 0x43, 0xc5, 0x40, 0x37, 0x91,
+ 0x51, 0x98, 0x23, 0x1b, 0xc5, 0xe2, 0x83, 0x1b, 0xe1, 0x85, 0xcd, 0x00, 0xb7, 0x85, 0x61, 0xa5,
+ 0xc9, 0xcd, 0xf5, 0xca, 0xf6, 0x6e, 0x75, 0xaf, 0xb2, 0xb3, 0xf6, 0x92, 0xb2, 0xbf, 0xf3, 0x73,
+ 0x3b, 0xd5, 0x17, 0x76, 0x64, 0x51, 0xef, 0x31, 0xfb, 0x00, 0x97, 0xfa, 0x2e, 0x88, 0xbd, 0x4e,
+ 0x49, 0xa7, 0x61, 0x90, 0x5b, 0xe2, 0x88, 0x34, 0x09, 0xe3, 0x3b, 0x55, 0xa5, 0xb6, 0xb9, 0x5e,
+ 0x51, 0x2a, 0x57, 0xaf, 0x56, 0xd6, 0xf6, 0x6a, 0xf4, 0x6a, 0xc3, 0xb7, 0xde, 0xeb, 0x5e, 0xd4,
+ 0xaf, 0xc5, 0x61, 0x72, 0x80, 0x27, 0x52, 0x99, 0x1d, 0x4a, 0xe8, 0x39, 0xe9, 0xe9, 0x61, 0xbc,
+ 0x5f, 0xc0, 0x5d, 0xc1, 0xae, 0xea, 0x78, 0xec, 0x0c, 0xf3, 0x04, 0xe0, 0x28, 0x99, 0x9e, 0xde,
+ 0xd4, 0x91, 0xc3, 0x6e, 0x82, 0xe8, 0x49, 0x65, 0x3c, 0x90, 0xd3, 0xcb, 0xa0, 0x8f, 0x81, 0x64,
+ 0x5b, 0xae, 0xee, 0xe9, 0x37, 0x91, 0xa2, 0x9b, 0xfc, 0xda, 0x08, 0x9f, 0x5c, 0x12, 0xb2, 0xc8,
+ 0x35, 0x9b, 0xa6, 0xe7, 0x5b, 0x9b, 0xa8, 0xa5, 0xf6, 0x58, 0xe3, 0x0d, 0x3c, 0x2e, 0x8b, 0x5c,
+ 0xe3, 0x5b, 0x9f, 0x83, 0x5c, 0xc3, 0xea, 0xe0, 0x76, 0x8e, 0xda, 0xe1, 0x7a, 0x21, 0xc8, 0x59,
+ 0x2a, 0xf3, 0x4d, 0x58, 0xa3, 0x1e, 0xdc, 0x57, 0xe5, 0xe4, 0x2c, 0x95, 0x51, 0x93, 0xc7, 0x61,
+ 0x5c, 0x6d, 0xb5, 0x1c, 0x4c, 0xce, 0x89, 0xe8, 0xd1, 0x23, 0xef, 0x8b, 0x89, 0xe1, 0xcc, 0xf3,
+ 0x90, 0xe6, 0x71, 0xc0, 0x25, 0x19, 0x47, 0x42, 0xb1, 0xe9, 0x79, 0x3a, 0x36, 0x9f, 0x91, 0xd3,
+ 0x26, 0x57, 0x9e, 0x83, 0x9c, 0xee, 0x2a, 0xc1, 0xf5, 0x7b, 0x6c, 0x36, 0x36, 0x9f, 0x96, 0xb3,
+ 0xba, 0xeb, 0x5f, 0x5d, 0xce, 0xbd, 0x19, 0x83, 0x7c, 0xf7, 0xe7, 0x03, 0x69, 0x1d, 0xd2, 0x86,
+ 0xa5, 0xa9, 0x24, 0xb5, 0xe8, 0xb7, 0xab, 0xf9, 0x88, 0x2f, 0x0e, 0x0b, 0x5b, 0xcc, 0x5e, 0xf6,
+ 0x91, 0x33, 0xff, 0x22, 0x40, 0x9a, 0x8b, 0xa5, 0x69, 0x48, 0xd8, 0xaa, 0x77, 0x40, 0xe8, 0x92,
+ 0xab, 0x31, 0x51, 0x90, 0xc9, 0x33, 0x96, 0xbb, 0xb6, 0x6a, 0x92, 0x14, 0x60, 0x72, 0xfc, 0x8c,
+ 0xe7, 0xd5, 0x40, 0x6a, 0x83, 0x9c, 0x6b, 0xac, 0x76, 0x1b, 0x99, 0x9e, 0xcb, 0xe7, 0x95, 0xc9,
+ 0xd7, 0x98, 0x58, 0x7a, 0x0a, 0x26, 0x3c, 0x47, 0xd5, 0x8d, 0x2e, 0xdb, 0x04, 0xb1, 0x15, 0xb9,
+ 0xc2, 0x37, 0x2e, 0xc1, 0x19, 0xce, 0xdb, 0x40, 0x9e, 0xaa, 0x1d, 0xa0, 0x46, 0x00, 0x4a, 0x91,
+ 0xfb, 0x8b, 0xd3, 0xcc, 0x60, 0x9d, 0xe9, 0x39, 0x76, 0xee, 0xfb, 0x02, 0x4c, 0xf0, 0x93, 0x58,
+ 0xc3, 0x0f, 0xd6, 0x36, 0x80, 0x6a, 0x9a, 0x96, 0x17, 0x0e, 0x57, 0x7f, 0x2a, 0xf7, 0xe1, 0x16,
+ 0xca, 0x3e, 0x48, 0x0e, 0x11, 0xcc, 0xb4, 0x01, 0x02, 0xcd, 0xb1, 0x61, 0x3b, 0x0b, 0x59, 0xf6,
+ 0x6d, 0x88, 0x7c, 0x60, 0xa4, 0x67, 0x77, 0xa0, 0x22, 0x7c, 0x64, 0x93, 0xa6, 0x20, 0x59, 0x47,
+ 0x2d, 0xdd, 0x64, 0x37, 0xbe, 0xf4, 0x81, 0xdf, 0xb0, 0x24, 0xfc, 0x1b, 0x96, 0xd5, 0x4f, 0xc3,
+ 0xa4, 0x66, 0xb5, 0x7b, 0xdd, 0x5d, 0x15, 0x7b, 0xee, 0x0f, 0xdc, 0x6b, 0xc2, 0xcb, 0x10, 0xb4,
+ 0x98, 0xef, 0x0b, 0xc2, 0x97, 0x63, 0xf1, 0x8d, 0xdd, 0xd5, 0xaf, 0xc5, 0x66, 0x36, 0x28, 0x74,
+ 0x97, 0x8f, 0x54, 0x46, 0x4d, 0x03, 0x69, 0xd8, 0x7b, 0xf8, 0xca, 0x53, 0xf0, 0x74, 0x4b, 0xf7,
+ 0x0e, 0x3a, 0xf5, 0x05, 0xcd, 0x6a, 0x2f, 0xb6, 0xac, 0x96, 0x15, 0x7c, 0x53, 0xc5, 0x4f, 0xe4,
+ 0x81, 0xfc, 0xc5, 0xbe, 0xab, 0x66, 0x7c, 0xe9, 0x4c, 0xe4, 0x47, 0xd8, 0xd2, 0x0e, 0x4c, 0x32,
+ 0x63, 0x85, 0x7c, 0xd8, 0xa1, 0xc7, 0x13, 0xe9, 0x81, 0x97, 0x63, 0x85, 0x6f, 0xbc, 0x43, 0xca,
+ 0xb5, 0x3c, 0xc1, 0xa0, 0x58, 0x47, 0x4f, 0x30, 0x25, 0x19, 0x4e, 0x75, 0xf1, 0xd1, 0xa5, 0x89,
+ 0x9c, 0x08, 0xc6, 0xef, 0x32, 0xc6, 0xc9, 0x10, 0x63, 0x8d, 0x41, 0x4b, 0x6b, 0x30, 0x76, 0x12,
+ 0xae, 0x7f, 0x62, 0x5c, 0x39, 0x14, 0x26, 0xd9, 0x80, 0x71, 0x42, 0xa2, 0x75, 0x5c, 0xcf, 0x6a,
+ 0x93, 0x7d, 0xef, 0xc1, 0x34, 0xff, 0xfc, 0x0e, 0x5d, 0x2b, 0x79, 0x0c, 0x5b, 0xf3, 0x51, 0xa5,
+ 0x12, 0x90, 0x6f, 0x59, 0x0d, 0xa4, 0x19, 0x11, 0x0c, 0x6f, 0x31, 0x47, 0x7c, 0xfb, 0xd2, 0xa7,
+ 0x60, 0x0a, 0xff, 0x4d, 0xb6, 0xa5, 0xb0, 0x27, 0xd1, 0x37, 0x69, 0x85, 0xef, 0xbf, 0x4a, 0x97,
+ 0xe3, 0xa4, 0x4f, 0x10, 0xf2, 0x29, 0x34, 0x8b, 0x2d, 0xe4, 0x79, 0xc8, 0x71, 0x15, 0xd5, 0x18,
+ 0xe4, 0x5e, 0xe8, 0x2a, 0xa2, 0xf0, 0x85, 0x77, 0xbb, 0x67, 0x71, 0x83, 0x22, 0xcb, 0x86, 0x51,
+ 0xda, 0x87, 0xd3, 0x03, 0xb2, 0x62, 0x08, 0xce, 0xd7, 0x18, 0xe7, 0x54, 0x5f, 0x66, 0x60, 0xda,
+ 0x5d, 0xe0, 0x72, 0x7f, 0x2e, 0x87, 0xe0, 0xfc, 0x03, 0xc6, 0x29, 0x31, 0x2c, 0x9f, 0x52, 0xcc,
+ 0xf8, 0x3c, 0x4c, 0xdc, 0x44, 0x4e, 0xdd, 0x72, 0xd9, 0xf5, 0xcf, 0x10, 0x74, 0xaf, 0x33, 0xba,
+ 0x71, 0x06, 0x24, 0xf7, 0x41, 0x98, 0xeb, 0x32, 0xa4, 0x9b, 0xaa, 0x86, 0x86, 0xa0, 0xf8, 0x22,
+ 0xa3, 0x18, 0xc5, 0xf6, 0x18, 0x5a, 0x86, 0x5c, 0xcb, 0x62, 0x95, 0x29, 0x1a, 0xfe, 0x06, 0x83,
+ 0x67, 0x39, 0x86, 0x51, 0xd8, 0x96, 0xdd, 0x31, 0x70, 0xd9, 0x8a, 0xa6, 0xf8, 0x43, 0x4e, 0xc1,
+ 0x31, 0x8c, 0xe2, 0x04, 0x61, 0xfd, 0x23, 0x4e, 0xe1, 0x86, 0xe2, 0xf9, 0x1c, 0x64, 0x2d, 0xd3,
+ 0x38, 0xb4, 0xcc, 0x61, 0x9c, 0xf8, 0x12, 0x63, 0x00, 0x06, 0xc1, 0x04, 0x57, 0x20, 0x33, 0xec,
+ 0x44, 0xfc, 0xc9, 0xbb, 0x7c, 0x79, 0xf0, 0x19, 0xd8, 0x80, 0x71, 0xbe, 0x41, 0xe9, 0x96, 0x39,
+ 0x04, 0xc5, 0x57, 0x18, 0x45, 0x3e, 0x04, 0x63, 0xc3, 0xf0, 0x90, 0xeb, 0xb5, 0xd0, 0x30, 0x24,
+ 0x6f, 0xf2, 0x61, 0x30, 0x08, 0x0b, 0x65, 0x1d, 0x99, 0xda, 0xc1, 0x70, 0x0c, 0x5f, 0xe5, 0xa1,
+ 0xe4, 0x18, 0x4c, 0xb1, 0x06, 0x63, 0x6d, 0xd5, 0x71, 0x0f, 0x54, 0x63, 0xa8, 0xe9, 0xf8, 0x53,
+ 0xc6, 0x91, 0xf3, 0x41, 0x2c, 0x22, 0x1d, 0xf3, 0x24, 0x34, 0x5f, 0xe3, 0x11, 0x09, 0xc1, 0xd8,
+ 0xd2, 0x73, 0x3d, 0x72, 0x57, 0x76, 0x12, 0xb6, 0x3f, 0xe3, 0x4b, 0x8f, 0x62, 0xb7, 0xc3, 0x8c,
+ 0x57, 0x20, 0xe3, 0xea, 0xb7, 0x87, 0xa2, 0xf9, 0x73, 0x3e, 0xd3, 0x04, 0x80, 0xc1, 0x2f, 0xc1,
+ 0x99, 0x81, 0x65, 0x62, 0x08, 0xb2, 0xbf, 0x60, 0x64, 0xd3, 0x03, 0x4a, 0x05, 0xdb, 0x12, 0x4e,
+ 0x4a, 0xf9, 0x97, 0x7c, 0x4b, 0x40, 0x3d, 0x5c, 0xbb, 0xf8, 0xac, 0xe0, 0xaa, 0xcd, 0x93, 0x45,
+ 0xed, 0xaf, 0x78, 0xd4, 0x28, 0xb6, 0x2b, 0x6a, 0x7b, 0x30, 0xcd, 0x18, 0x4f, 0x36, 0xaf, 0x5f,
+ 0xe7, 0x1b, 0x2b, 0x45, 0xef, 0x77, 0xcf, 0xee, 0xa7, 0x61, 0xc6, 0x0f, 0x27, 0x6f, 0x4a, 0x5d,
+ 0xa5, 0xad, 0xda, 0x43, 0x30, 0x7f, 0x83, 0x31, 0xf3, 0x1d, 0xdf, 0xef, 0x6a, 0xdd, 0x6d, 0xd5,
+ 0xc6, 0xe4, 0x2f, 0x42, 0x81, 0x93, 0x77, 0x4c, 0x07, 0x69, 0x56, 0xcb, 0xd4, 0x6f, 0xa3, 0xc6,
+ 0x10, 0xd4, 0x7f, 0xdd, 0x33, 0x55, 0xfb, 0x21, 0x38, 0x66, 0xde, 0x04, 0xd1, 0xef, 0x55, 0x14,
+ 0xbd, 0x6d, 0x5b, 0x8e, 0x17, 0xc1, 0xf8, 0x37, 0x7c, 0xa6, 0x7c, 0xdc, 0x26, 0x81, 0x95, 0x2a,
+ 0x90, 0x27, 0x8f, 0xc3, 0xa6, 0xe4, 0xdf, 0x32, 0xa2, 0xb1, 0x00, 0xc5, 0x36, 0x0e, 0xcd, 0x6a,
+ 0xdb, 0xaa, 0x33, 0xcc, 0xfe, 0xf7, 0x77, 0x7c, 0xe3, 0x60, 0x10, 0xb6, 0x71, 0x78, 0x87, 0x36,
+ 0xc2, 0xd5, 0x7e, 0x08, 0x86, 0x6f, 0xf2, 0x8d, 0x83, 0x63, 0x18, 0x05, 0x6f, 0x18, 0x86, 0xa0,
+ 0xf8, 0x7b, 0x4e, 0xc1, 0x31, 0x98, 0xe2, 0x93, 0x41, 0xa1, 0x75, 0x50, 0x4b, 0x77, 0x3d, 0x87,
+ 0xb6, 0xc2, 0x0f, 0xa6, 0xfa, 0xd6, 0xbb, 0xdd, 0x4d, 0x98, 0x1c, 0x82, 0xe2, 0x9d, 0x88, 0x5d,
+ 0xa1, 0x92, 0x93, 0x52, 0xb4, 0x63, 0xdf, 0xe6, 0x3b, 0x51, 0x08, 0x86, 0x7d, 0x0b, 0x75, 0x88,
+ 0x38, 0xec, 0x1a, 0x3e, 0x1f, 0x0c, 0x41, 0xf7, 0x9d, 0x1e, 0xe7, 0x6a, 0x1c, 0x8b, 0x39, 0x43,
+ 0xfd, 0x4f, 0xc7, 0xbc, 0x81, 0x0e, 0x87, 0xca, 0xce, 0x7f, 0xe8, 0xe9, 0x7f, 0xf6, 0x29, 0x92,
+ 0xee, 0x21, 0xe3, 0x3d, 0xfd, 0x94, 0x14, 0xf5, 0x2b, 0xa0, 0xc2, 0x2f, 0xde, 0x63, 0xe3, 0xed,
+ 0x6e, 0xa7, 0x4a, 0x5b, 0x38, 0xc9, 0xbb, 0x9b, 0x9e, 0x68, 0xb2, 0x57, 0xef, 0xf9, 0x79, 0xde,
+ 0xd5, 0xf3, 0x94, 0xae, 0xc2, 0x58, 0x57, 0xc3, 0x13, 0x4d, 0xf5, 0x4b, 0x8c, 0x2a, 0x17, 0xee,
+ 0x77, 0x4a, 0x2b, 0x90, 0xc0, 0xcd, 0x4b, 0x34, 0xfc, 0x97, 0x19, 0x9c, 0x98, 0x97, 0x3e, 0x0e,
+ 0x69, 0xde, 0xb4, 0x44, 0x43, 0x7f, 0x85, 0x41, 0x7d, 0x08, 0x86, 0xf3, 0x86, 0x25, 0x1a, 0xfe,
+ 0xab, 0x1c, 0xce, 0x21, 0x18, 0x3e, 0x7c, 0x08, 0xff, 0xf1, 0xd7, 0x12, 0xac, 0xe8, 0xf0, 0xd8,
+ 0x5d, 0x81, 0x51, 0xd6, 0xa9, 0x44, 0xa3, 0x3f, 0xcb, 0x5e, 0xce, 0x11, 0xa5, 0x8b, 0x90, 0x1c,
+ 0x32, 0xe0, 0xbf, 0xc1, 0xa0, 0xd4, 0xbe, 0xb4, 0x06, 0xd9, 0x50, 0x77, 0x12, 0x0d, 0xff, 0x4d,
+ 0x06, 0x0f, 0xa3, 0xb0, 0xeb, 0xac, 0x3b, 0x89, 0x26, 0xf8, 0x2d, 0xee, 0x3a, 0x43, 0xe0, 0xb0,
+ 0xf1, 0xc6, 0x24, 0x1a, 0xfd, 0xdb, 0x3c, 0xea, 0x1c, 0x52, 0x7a, 0x0e, 0x32, 0x7e, 0xb1, 0x89,
+ 0xc6, 0xff, 0x0e, 0xc3, 0x07, 0x18, 0x1c, 0x81, 0x50, 0xb1, 0x8b, 0xa6, 0xf8, 0x5d, 0x1e, 0x81,
+ 0x10, 0x0a, 0x2f, 0xa3, 0xde, 0x06, 0x26, 0x9a, 0xe9, 0x73, 0x7c, 0x19, 0xf5, 0xf4, 0x2f, 0x78,
+ 0x36, 0xc9, 0x9e, 0x1f, 0x4d, 0xf1, 0x7b, 0x7c, 0x36, 0x89, 0x3d, 0x76, 0xa3, 0xb7, 0x23, 0x88,
+ 0xe6, 0xf8, 0x7d, 0xee, 0x46, 0x4f, 0x43, 0x50, 0xda, 0x05, 0xa9, 0xbf, 0x1b, 0x88, 0xe6, 0xfb,
+ 0x3c, 0xe3, 0x9b, 0xe8, 0x6b, 0x06, 0x4a, 0x2f, 0xc0, 0xf4, 0xe0, 0x4e, 0x20, 0x9a, 0xf5, 0x0b,
+ 0xf7, 0x7a, 0xce, 0x6e, 0xe1, 0x46, 0xa0, 0xb4, 0x17, 0x94, 0x94, 0x70, 0x17, 0x10, 0x4d, 0xfb,
+ 0xda, 0xbd, 0xee, 0x8d, 0x3b, 0xdc, 0x04, 0x94, 0xca, 0x00, 0x41, 0x01, 0x8e, 0xe6, 0x7a, 0x9d,
+ 0x71, 0x85, 0x40, 0x78, 0x69, 0xb0, 0xfa, 0x1b, 0x8d, 0xff, 0x22, 0x5f, 0x1a, 0x0c, 0x81, 0x97,
+ 0x06, 0x2f, 0xbd, 0xd1, 0xe8, 0x37, 0xf8, 0xd2, 0xe0, 0x10, 0x9c, 0xd9, 0xa1, 0xea, 0x16, 0xcd,
+ 0xf0, 0x25, 0x9e, 0xd9, 0x21, 0x54, 0x69, 0x07, 0x26, 0xfa, 0x0a, 0x62, 0x34, 0xd5, 0x97, 0x19,
+ 0x95, 0xd8, 0x5b, 0x0f, 0xc3, 0xc5, 0x8b, 0x15, 0xc3, 0x68, 0xb6, 0x3f, 0xee, 0x29, 0x5e, 0xac,
+ 0x16, 0x96, 0xae, 0x40, 0xda, 0xec, 0x18, 0x06, 0x5e, 0x3c, 0xd2, 0x83, 0x7f, 0xb9, 0x57, 0xf8,
+ 0xf7, 0xfb, 0x2c, 0x3a, 0x1c, 0x50, 0x5a, 0x81, 0x24, 0x6a, 0xd7, 0x51, 0x23, 0x0a, 0xf9, 0x1f,
+ 0xf7, 0xf9, 0x86, 0x89, 0xad, 0x4b, 0xcf, 0x01, 0xd0, 0xab, 0x11, 0xf2, 0xd9, 0x2f, 0x02, 0xfb,
+ 0x9f, 0xf7, 0xd9, 0x6f, 0x6a, 0x02, 0x48, 0x40, 0x40, 0x7f, 0xa1, 0xf3, 0x60, 0x82, 0x77, 0xbb,
+ 0x09, 0xc8, 0x8c, 0x5c, 0x86, 0xd1, 0xeb, 0xae, 0x65, 0x7a, 0x6a, 0x2b, 0x0a, 0xfd, 0x5f, 0x0c,
+ 0xcd, 0xed, 0x71, 0xc0, 0xda, 0x96, 0x83, 0x3c, 0xb5, 0xe5, 0x46, 0x61, 0xff, 0x9b, 0x61, 0x7d,
+ 0x00, 0x06, 0x6b, 0xaa, 0xeb, 0x0d, 0x33, 0xee, 0xff, 0xe1, 0x60, 0x0e, 0xc0, 0x4e, 0xe3, 0xbf,
+ 0x6f, 0xa0, 0xc3, 0x28, 0xec, 0x7b, 0xdc, 0x69, 0x66, 0x5f, 0xfa, 0x38, 0x64, 0xf0, 0x9f, 0xf4,
+ 0x87, 0x72, 0x11, 0xe0, 0xff, 0x65, 0xe0, 0x00, 0x81, 0xdf, 0xec, 0x7a, 0x0d, 0x4f, 0x8f, 0x0e,
+ 0xf6, 0xff, 0xb1, 0x99, 0xe6, 0xf6, 0xa5, 0x32, 0x64, 0x5d, 0xaf, 0xd1, 0xe8, 0xb0, 0xfe, 0x34,
+ 0x02, 0xfe, 0xff, 0xf7, 0xfd, 0x2b, 0x0b, 0x1f, 0x83, 0x67, 0xfb, 0xd6, 0x0d, 0xcf, 0xb6, 0xc8,
+ 0x67, 0x8e, 0x28, 0x86, 0x7b, 0x8c, 0x21, 0x04, 0x59, 0xad, 0x0c, 0xbe, 0xbe, 0x85, 0x0d, 0x6b,
+ 0xc3, 0xa2, 0x17, 0xb7, 0x2f, 0xcf, 0x45, 0xdf, 0xc0, 0xc2, 0xe7, 0x92, 0x70, 0x4a, 0xb3, 0xda,
+ 0x75, 0xcb, 0x5d, 0xac, 0x5b, 0xde, 0xc1, 0xa2, 0x65, 0x32, 0x32, 0x29, 0x6e, 0x99, 0x68, 0xe6,
+ 0x64, 0x97, 0xb8, 0x73, 0x67, 0x20, 0x59, 0xeb, 0xd4, 0xeb, 0x87, 0x92, 0x08, 0x71, 0xb7, 0x53,
+ 0x67, 0xbf, 0xb4, 0xc2, 0x7f, 0xce, 0xfd, 0x20, 0x0e, 0xd9, 0x9a, 0xda, 0xb6, 0x0d, 0x54, 0x35,
+ 0x51, 0xb5, 0x29, 0x15, 0x20, 0x45, 0xc6, 0xf8, 0x2c, 0x31, 0x12, 0xae, 0x8d, 0xc8, 0xec, 0xd9,
+ 0xd7, 0x2c, 0x91, 0xcb, 0xed, 0x98, 0xaf, 0x59, 0xf2, 0x35, 0xe7, 0xe9, 0xdd, 0xb6, 0xaf, 0x39,
+ 0xef, 0x6b, 0x96, 0xc9, 0x0d, 0x77, 0xdc, 0xd7, 0x2c, 0xfb, 0x9a, 0x15, 0xf2, 0x05, 0x67, 0xcc,
+ 0xd7, 0xac, 0xf8, 0x9a, 0x0b, 0xe4, 0x9b, 0x4d, 0xc2, 0xd7, 0x5c, 0xf0, 0x35, 0x17, 0xc9, 0xa7,
+ 0x9a, 0x09, 0x5f, 0x73, 0xd1, 0xd7, 0x5c, 0x22, 0x9f, 0x67, 0x24, 0x5f, 0x73, 0xc9, 0xd7, 0x5c,
+ 0x26, 0x3f, 0xa8, 0x1a, 0xf5, 0x35, 0x97, 0xa5, 0x19, 0x18, 0xa5, 0x23, 0x7b, 0x86, 0x7c, 0xc3,
+ 0x1f, 0xbf, 0x36, 0x22, 0x73, 0x41, 0xa0, 0x7b, 0x96, 0xfc, 0x68, 0x2a, 0x15, 0xe8, 0x9e, 0x0d,
+ 0x74, 0x4b, 0xe4, 0xff, 0x6e, 0x88, 0x81, 0x6e, 0x29, 0xd0, 0x9d, 0x2f, 0x8c, 0xe1, 0xd4, 0x08,
+ 0x74, 0xe7, 0x03, 0xdd, 0x72, 0x21, 0x8f, 0xe3, 0x1f, 0xe8, 0x96, 0x03, 0xdd, 0x4a, 0x61, 0x7c,
+ 0x56, 0x98, 0xcf, 0x05, 0xba, 0x15, 0xe9, 0x69, 0xc8, 0xba, 0x9d, 0xba, 0xc2, 0x36, 0x79, 0xf2,
+ 0xe3, 0xac, 0xec, 0x12, 0x2c, 0xe0, 0x8c, 0x20, 0x93, 0x7a, 0x6d, 0x44, 0x06, 0xb7, 0x53, 0x67,
+ 0x7b, 0xf0, 0x6a, 0x0e, 0xc8, 0xd5, 0x93, 0x42, 0x7e, 0x53, 0xbd, 0xba, 0xfe, 0xd6, 0xdd, 0xe2,
+ 0xc8, 0xf7, 0xee, 0x16, 0x47, 0xfe, 0xf5, 0x6e, 0x71, 0xe4, 0xed, 0xbb, 0x45, 0xe1, 0xbd, 0xbb,
+ 0x45, 0xe1, 0xfd, 0xbb, 0x45, 0xe1, 0xce, 0x51, 0x51, 0xf8, 0xea, 0x51, 0x51, 0xf8, 0xfa, 0x51,
+ 0x51, 0xf8, 0xd6, 0x51, 0x51, 0x78, 0xeb, 0xa8, 0x28, 0x7c, 0xef, 0xa8, 0x28, 0xbc, 0x7d, 0x54,
+ 0x14, 0x7e, 0x74, 0x54, 0x1c, 0x79, 0xef, 0xa8, 0x28, 0xbc, 0x7f, 0x54, 0x1c, 0xb9, 0xf3, 0xc3,
+ 0xe2, 0x48, 0x3d, 0x45, 0xd2, 0xe8, 0xfc, 0x8f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xa3, 0x60, 0x64,
+ 0x9d, 0x8a, 0x35, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -2870,7 +2903,7 @@ func (m *Subby) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2898,7 +2931,7 @@ func (m *Subby) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2908,6 +2941,9 @@ func (m *Subby) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2922,6 +2958,9 @@ func (m *Subby) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthOne
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthOne
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2950,7 +2989,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3000,7 +3039,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3020,7 +3059,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3040,7 +3079,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3060,7 +3099,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3080,7 +3119,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3101,7 +3140,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3166,7 +3205,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3187,7 +3226,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3197,6 +3236,9 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3216,7 +3258,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3225,6 +3267,9 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3246,7 +3291,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3255,6 +3300,9 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3273,6 +3321,9 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthOne
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthOne
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3340,10 +3391,13 @@ func skipOne(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthOne
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthOne
+ }
return iNdEx, nil
case 3:
for {
@@ -3372,6 +3426,9 @@ func skipOne(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthOne
+ }
}
return iNdEx, nil
case 4:
@@ -3390,35 +3447,3 @@ var (
ErrInvalidLengthOne = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowOne = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("combos/both/one.proto", fileDescriptor_one_475397b14a80232f) }
-
-var fileDescriptor_one_475397b14a80232f = []byte{
- // 404 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0xbf, 0x4f, 0x1b, 0x31,
- 0x14, 0x07, 0x70, 0x3f, 0x8e, 0x24, 0xe0, 0x84, 0x92, 0x9e, 0x54, 0xe9, 0x95, 0xe1, 0xc9, 0x62,
- 0xf2, 0x42, 0xd2, 0xdc, 0x25, 0xfc, 0x58, 0x51, 0x55, 0x65, 0xa9, 0x90, 0xc2, 0x1f, 0x80, 0x30,
- 0x75, 0x0e, 0x24, 0xee, 0x8c, 0x7a, 0x77, 0x43, 0x37, 0xfe, 0x9c, 0x8e, 0x1d, 0xfb, 0x27, 0x30,
- 0x32, 0x76, 0xe8, 0xc0, 0xb9, 0x4b, 0x47, 0x46, 0xc6, 0x2a, 0x97, 0xf2, 0xbc, 0xbd, 0xaf, 0x3f,
- 0xf6, 0x60, 0xfb, 0x2b, 0xdf, 0x5d, 0xb9, 0xdc, 0xb8, 0x72, 0x6c, 0x5c, 0x75, 0x3d, 0x76, 0x85,
- 0x1d, 0xdd, 0x7d, 0x75, 0x95, 0x8b, 0x23, 0x57, 0xd8, 0xbd, 0x83, 0xec, 0xa6, 0xba, 0xae, 0xcd,
- 0xe8, 0xca, 0xe5, 0xe3, 0xcc, 0x65, 0x6e, 0xdc, 0x9a, 0xa9, 0x97, 0x6d, 0x6a, 0x43, 0x3b, 0xad,
- 0xcf, 0xec, 0xbf, 0x97, 0x9d, 0xf3, 0xda, 0x98, 0x6f, 0xf1, 0x50, 0x46, 0x65, 0x6d, 0x10, 0x14,
- 0xe8, 0xed, 0xc5, 0x6a, 0xdc, 0xff, 0x1d, 0xc9, 0xfe, 0xf9, 0x65, 0x7e, 0x77, 0x6b, 0xcf, 0x0a,
- 0x7b, 0xb6, 0x8c, 0x51, 0x76, 0x3f, 0xdd, 0xd8, 0xdb, 0x2f, 0x93, 0x76, 0x13, 0xcc, 0xc5, 0xe2,
- 0x7f, 0x66, 0x49, 0x70, 0x43, 0x81, 0xde, 0x60, 0x49, 0x58, 0x52, 0x8c, 0x14, 0xe8, 0x0e, 0x4b,
- 0xca, 0x32, 0xc5, 0x4d, 0x05, 0x3a, 0x62, 0x99, 0xb2, 0xcc, 0xb0, 0xa3, 0x40, 0xef, 0xb0, 0xcc,
- 0x58, 0x0e, 0xb1, 0xab, 0x40, 0x6f, 0xb2, 0x1c, 0xb2, 0x1c, 0x61, 0x4f, 0x81, 0x7e, 0xcb, 0x72,
- 0xc4, 0x72, 0x8c, 0x5b, 0x0a, 0x74, 0xcc, 0x72, 0xcc, 0x72, 0x82, 0xdb, 0x0a, 0x74, 0x8f, 0xe5,
- 0x24, 0xde, 0x93, 0xbd, 0xf5, 0xcd, 0x3e, 0xa0, 0x54, 0xa0, 0x77, 0xe7, 0x62, 0xf1, 0xba, 0x10,
- 0x6c, 0x82, 0x7d, 0x05, 0xba, 0x1b, 0x6c, 0x12, 0x2c, 0xc1, 0x81, 0x02, 0x3d, 0x0c, 0x96, 0x04,
- 0x4b, 0x71, 0x47, 0x81, 0xde, 0x0a, 0x96, 0x06, 0x9b, 0xe2, 0x9b, 0xd5, 0xfb, 0x07, 0x9b, 0x06,
- 0x9b, 0xe1, 0xae, 0x02, 0x3d, 0x08, 0x36, 0x8b, 0x0f, 0x64, 0xbf, 0xac, 0xcd, 0x45, 0x6e, 0xcb,
- 0xf2, 0x32, 0xb3, 0x38, 0x54, 0xa0, 0xfb, 0x89, 0x1c, 0xad, 0x1a, 0xd1, 0x7e, 0xea, 0x5c, 0x2c,
- 0x64, 0x59, 0x9b, 0xcf, 0x6b, 0x3f, 0x1d, 0x48, 0x59, 0xd9, 0xb2, 0xba, 0x70, 0x85, 0x75, 0xcb,
- 0xd3, 0x8f, 0x0f, 0x0d, 0x89, 0xc7, 0x86, 0xc4, 0xaf, 0x86, 0xc4, 0x53, 0x43, 0xf0, 0xdc, 0x10,
- 0xbc, 0x34, 0x04, 0xf7, 0x9e, 0xe0, 0xbb, 0x27, 0xf8, 0xe1, 0x09, 0x7e, 0x7a, 0x82, 0x07, 0x4f,
- 0xf0, 0xe8, 0x09, 0x9e, 0x3c, 0xc1, 0x5f, 0x4f, 0xe2, 0xd9, 0x13, 0xbc, 0x78, 0x12, 0xf7, 0x7f,
- 0x48, 0x98, 0x6e, 0x5b, 0xa3, 0xf4, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1e, 0x42, 0xd6, 0x88,
- 0x93, 0x02, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.pb.go
index 15e3f83ffc..a5043c0c14 100644
--- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.pb.go
@@ -3,21 +3,20 @@
package one
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-
-import encoding_binary "encoding/binary"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -40,7 +39,7 @@ type Subby struct {
func (m *Subby) Reset() { *m = Subby{} }
func (*Subby) ProtoMessage() {}
func (*Subby) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_c146381302ae1a39, []int{0}
+ return fileDescriptor_f8ef4705d619eecc, []int{0}
}
func (m *Subby) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Subby.Unmarshal(m, b)
@@ -57,8 +56,8 @@ func (m *Subby) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Subby) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Subby.Merge(dst, src)
+func (m *Subby) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Subby.Merge(m, src)
}
func (m *Subby) XXX_Size() int {
return m.Size()
@@ -96,7 +95,7 @@ type SampleOneOf struct {
func (m *SampleOneOf) Reset() { *m = SampleOneOf{} }
func (*SampleOneOf) ProtoMessage() {}
func (*SampleOneOf) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_c146381302ae1a39, []int{1}
+ return fileDescriptor_f8ef4705d619eecc, []int{1}
}
func (m *SampleOneOf) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SampleOneOf.Unmarshal(m, b)
@@ -113,8 +112,8 @@ func (m *SampleOneOf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *SampleOneOf) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SampleOneOf.Merge(dst, src)
+func (m *SampleOneOf) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SampleOneOf.Merge(m, src)
}
func (m *SampleOneOf) XXX_Size() int {
return m.Size()
@@ -593,6 +592,39 @@ func init() {
proto.RegisterType((*Subby)(nil), "one.Subby")
proto.RegisterType((*SampleOneOf)(nil), "one.SampleOneOf")
}
+
+func init() { proto.RegisterFile("combos/marshaler/one.proto", fileDescriptor_f8ef4705d619eecc) }
+
+var fileDescriptor_f8ef4705d619eecc = []byte{
+ // 407 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0xbf, 0x4f, 0x1b, 0x31,
+ 0x14, 0x07, 0x70, 0x3f, 0x8e, 0x24, 0xe0, 0x84, 0x92, 0xde, 0xf4, 0x9a, 0xe1, 0xc9, 0x62, 0xf2,
+ 0x42, 0xd2, 0xdc, 0x25, 0xfc, 0x58, 0x51, 0x55, 0x65, 0xa9, 0x90, 0xc2, 0x1f, 0x80, 0x62, 0xea,
+ 0x04, 0xa4, 0x5c, 0x8c, 0x72, 0x77, 0x43, 0x37, 0xfe, 0x9c, 0x8e, 0x1d, 0xfb, 0x27, 0x30, 0x32,
+ 0x76, 0xe8, 0xc0, 0xb9, 0x4b, 0x47, 0x46, 0xc6, 0x2a, 0x97, 0xf2, 0xbc, 0xbd, 0xaf, 0x3f, 0xf6,
+ 0x60, 0xfb, 0x2b, 0x7b, 0x37, 0x2e, 0x33, 0x2e, 0x1f, 0x64, 0xb3, 0x75, 0x7e, 0x3b, 0x5b, 0xda,
+ 0xf5, 0xc0, 0xad, 0x6c, 0xff, 0x7e, 0xed, 0x0a, 0x17, 0x47, 0x6e, 0x65, 0x7b, 0xc7, 0x8b, 0xbb,
+ 0xe2, 0xb6, 0x34, 0xfd, 0x1b, 0x97, 0x0d, 0x16, 0x6e, 0xe1, 0x06, 0xb5, 0x99, 0x72, 0x5e, 0xa7,
+ 0x3a, 0xd4, 0xd3, 0xf6, 0xcc, 0xd1, 0x07, 0xd9, 0xb8, 0x2a, 0x8d, 0xf9, 0x16, 0x77, 0x65, 0x94,
+ 0x97, 0x06, 0x41, 0x81, 0xde, 0x9f, 0x6e, 0xc6, 0xa3, 0xdf, 0x91, 0x6c, 0x5f, 0xcd, 0xb2, 0xfb,
+ 0xa5, 0xbd, 0x5c, 0xd9, 0xcb, 0x79, 0x8c, 0xb2, 0xf9, 0xf9, 0xce, 0x2e, 0xbf, 0x0e, 0xeb, 0x4d,
+ 0x30, 0x11, 0xd3, 0xff, 0x99, 0x25, 0xc1, 0x1d, 0x05, 0x7a, 0x87, 0x25, 0x61, 0x49, 0x31, 0x52,
+ 0xa0, 0x1b, 0x2c, 0x29, 0xcb, 0x08, 0x77, 0x15, 0xe8, 0x88, 0x65, 0xc4, 0x32, 0xc6, 0x86, 0x02,
+ 0x7d, 0xc0, 0x32, 0x66, 0x39, 0xc1, 0xa6, 0x02, 0xbd, 0xcb, 0x72, 0xc2, 0x72, 0x8a, 0x2d, 0x05,
+ 0xfa, 0x3d, 0xcb, 0x29, 0xcb, 0x19, 0xee, 0x29, 0xd0, 0x31, 0xcb, 0x19, 0xcb, 0x39, 0xee, 0x2b,
+ 0xd0, 0x2d, 0x96, 0xf3, 0xb8, 0x27, 0x5b, 0xdb, 0x9b, 0x7d, 0x44, 0xa9, 0x40, 0x1f, 0x4e, 0xc4,
+ 0xf4, 0x6d, 0x21, 0xd8, 0x10, 0xdb, 0x0a, 0x74, 0x33, 0xd8, 0x30, 0x58, 0x82, 0x1d, 0x05, 0xba,
+ 0x1b, 0x2c, 0x09, 0x96, 0xe2, 0x81, 0x02, 0xbd, 0x17, 0x2c, 0x0d, 0x36, 0xc2, 0x77, 0x9b, 0xf7,
+ 0x0f, 0x36, 0x0a, 0x36, 0xc6, 0x43, 0x05, 0xba, 0x13, 0x6c, 0x1c, 0x1f, 0xcb, 0x76, 0x5e, 0x9a,
+ 0xeb, 0xcc, 0xe6, 0xf9, 0x6c, 0x61, 0xb1, 0xab, 0x40, 0xb7, 0x13, 0xd9, 0xdf, 0x34, 0xa2, 0xfe,
+ 0xd4, 0x89, 0x98, 0xca, 0xbc, 0x34, 0x5f, 0xb6, 0x7e, 0xd1, 0x91, 0xb2, 0xb0, 0x79, 0x71, 0xed,
+ 0x56, 0xd6, 0xcd, 0x2f, 0x3e, 0x3d, 0x56, 0x24, 0x9e, 0x2a, 0x12, 0xbf, 0x2a, 0x12, 0xcf, 0x15,
+ 0xc1, 0x4b, 0x45, 0xf0, 0x5a, 0x11, 0x3c, 0x78, 0x82, 0xef, 0x9e, 0xe0, 0x87, 0x27, 0xf8, 0xe9,
+ 0x09, 0x1e, 0x3d, 0xc1, 0x93, 0x27, 0xf1, 0xec, 0x09, 0xfe, 0x7a, 0x12, 0x2f, 0x9e, 0xe0, 0xd5,
+ 0x93, 0x78, 0xf8, 0x43, 0xc2, 0x34, 0xeb, 0x1a, 0xa5, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x34,
+ 0x55, 0x0b, 0x2b, 0x98, 0x02, 0x00, 0x00,
+}
+
func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return OneDescription()
}
@@ -602,263 +634,265 @@ func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_ge
func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4082 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x1b, 0xd7,
- 0x75, 0xe6, 0xe2, 0x8f, 0xc0, 0x01, 0x08, 0x2e, 0x97, 0xb4, 0x04, 0xd1, 0x31, 0x24, 0xd1, 0x76,
- 0x4c, 0xdb, 0x35, 0x69, 0x53, 0xa2, 0x7e, 0xa0, 0x26, 0x2e, 0x48, 0x42, 0x14, 0x5d, 0x92, 0x60,
- 0x16, 0x64, 0xfc, 0x93, 0xe9, 0xec, 0x2c, 0x16, 0x17, 0xe0, 0x4a, 0x8b, 0xdd, 0xcd, 0xee, 0x42,
- 0x32, 0x35, 0x7d, 0x50, 0xc7, 0xfd, 0x99, 0x4c, 0xa7, 0xff, 0x9d, 0xa9, 0xe3, 0x3a, 0x6e, 0x93,
- 0x4e, 0xe3, 0x34, 0xfd, 0x4b, 0x9a, 0x36, 0x4d, 0xd2, 0x97, 0xbe, 0xa4, 0xf5, 0x53, 0x27, 0x79,
- 0xeb, 0x43, 0x1e, 0x2c, 0xc6, 0x33, 0x4d, 0x5b, 0xb7, 0x71, 0x5b, 0x3d, 0x78, 0xc6, 0x2f, 0x9d,
- 0xfb, 0xb7, 0xbb, 0x58, 0x80, 0x5a, 0x30, 0x33, 0x76, 0x9e, 0xc4, 0x3d, 0xe7, 0x7c, 0xdf, 0xde,
- 0x7b, 0xee, 0xb9, 0xe7, 0x9c, 0x7b, 0x17, 0x82, 0x1f, 0x5f, 0x86, 0x33, 0x1d, 0xcb, 0xea, 0x18,
- 0x68, 0xd1, 0x76, 0x2c, 0xcf, 0x6a, 0xf6, 0xda, 0x8b, 0x2d, 0xe4, 0x6a, 0x8e, 0x6e, 0x7b, 0x96,
- 0xb3, 0x40, 0x64, 0xd2, 0x24, 0xb5, 0x58, 0xe0, 0x16, 0x73, 0x5b, 0x30, 0x75, 0x55, 0x37, 0xd0,
- 0x9a, 0x6f, 0xd8, 0x40, 0x9e, 0x74, 0x09, 0x52, 0x6d, 0xdd, 0x40, 0x25, 0xe1, 0x4c, 0x72, 0x3e,
- 0xbf, 0xf4, 0xc8, 0x42, 0x04, 0xb4, 0xd0, 0x8f, 0xd8, 0xc1, 0x62, 0x99, 0x20, 0xe6, 0xde, 0x49,
- 0xc1, 0xf4, 0x10, 0xad, 0x24, 0x41, 0xca, 0x54, 0xbb, 0x98, 0x51, 0x98, 0xcf, 0xc9, 0xe4, 0x6f,
- 0xa9, 0x04, 0xe3, 0xb6, 0xaa, 0xdd, 0x50, 0x3b, 0xa8, 0x94, 0x20, 0x62, 0xfe, 0x28, 0x95, 0x01,
- 0x5a, 0xc8, 0x46, 0x66, 0x0b, 0x99, 0xda, 0x41, 0x29, 0x79, 0x26, 0x39, 0x9f, 0x93, 0x43, 0x12,
- 0xe9, 0x49, 0x98, 0xb2, 0x7b, 0x4d, 0x43, 0xd7, 0x94, 0x90, 0x19, 0x9c, 0x49, 0xce, 0xa7, 0x65,
- 0x91, 0x2a, 0xd6, 0x02, 0xe3, 0xc7, 0x60, 0xf2, 0x16, 0x52, 0x6f, 0x84, 0x4d, 0xf3, 0xc4, 0xb4,
- 0x88, 0xc5, 0x21, 0xc3, 0x55, 0x28, 0x74, 0x91, 0xeb, 0xaa, 0x1d, 0xa4, 0x78, 0x07, 0x36, 0x2a,
- 0xa5, 0xc8, 0xec, 0xcf, 0x0c, 0xcc, 0x3e, 0x3a, 0xf3, 0x3c, 0x43, 0xed, 0x1e, 0xd8, 0x48, 0xaa,
- 0x42, 0x0e, 0x99, 0xbd, 0x2e, 0x65, 0x48, 0x1f, 0xe1, 0xbf, 0x9a, 0xd9, 0xeb, 0x46, 0x59, 0xb2,
- 0x18, 0xc6, 0x28, 0xc6, 0x5d, 0xe4, 0xdc, 0xd4, 0x35, 0x54, 0xca, 0x10, 0x82, 0xc7, 0x06, 0x08,
- 0x1a, 0x54, 0x1f, 0xe5, 0xe0, 0x38, 0x69, 0x15, 0x72, 0xe8, 0x65, 0x0f, 0x99, 0xae, 0x6e, 0x99,
- 0xa5, 0x71, 0x42, 0xf2, 0xe8, 0x90, 0x55, 0x44, 0x46, 0x2b, 0x4a, 0x11, 0xe0, 0xa4, 0x0b, 0x30,
- 0x6e, 0xd9, 0x9e, 0x6e, 0x99, 0x6e, 0x29, 0x7b, 0x46, 0x98, 0xcf, 0x2f, 0x7d, 0x6c, 0x68, 0x20,
- 0xd4, 0xa9, 0x8d, 0xcc, 0x8d, 0xa5, 0x0d, 0x10, 0x5d, 0xab, 0xe7, 0x68, 0x48, 0xd1, 0xac, 0x16,
- 0x52, 0x74, 0xb3, 0x6d, 0x95, 0x72, 0x84, 0xe0, 0xf4, 0xe0, 0x44, 0x88, 0xe1, 0xaa, 0xd5, 0x42,
- 0x1b, 0x66, 0xdb, 0x92, 0x8b, 0x6e, 0xdf, 0xb3, 0x74, 0x02, 0x32, 0xee, 0x81, 0xe9, 0xa9, 0x2f,
- 0x97, 0x0a, 0x24, 0x42, 0xd8, 0xd3, 0xdc, 0xb7, 0x33, 0x30, 0x39, 0x4a, 0x88, 0x5d, 0x81, 0x74,
- 0x1b, 0xcf, 0xb2, 0x94, 0x38, 0x8e, 0x0f, 0x28, 0xa6, 0xdf, 0x89, 0x99, 0x9f, 0xd0, 0x89, 0x55,
- 0xc8, 0x9b, 0xc8, 0xf5, 0x50, 0x8b, 0x46, 0x44, 0x72, 0xc4, 0x98, 0x02, 0x0a, 0x1a, 0x0c, 0xa9,
- 0xd4, 0x4f, 0x14, 0x52, 0x2f, 0xc0, 0xa4, 0x3f, 0x24, 0xc5, 0x51, 0xcd, 0x0e, 0x8f, 0xcd, 0xc5,
- 0xb8, 0x91, 0x2c, 0xd4, 0x38, 0x4e, 0xc6, 0x30, 0xb9, 0x88, 0xfa, 0x9e, 0xa5, 0x35, 0x00, 0xcb,
- 0x44, 0x56, 0x5b, 0x69, 0x21, 0xcd, 0x28, 0x65, 0x8f, 0xf0, 0x52, 0x1d, 0x9b, 0x0c, 0x78, 0xc9,
- 0xa2, 0x52, 0xcd, 0x90, 0x2e, 0x07, 0xa1, 0x36, 0x7e, 0x44, 0xa4, 0x6c, 0xd1, 0x4d, 0x36, 0x10,
- 0x6d, 0x7b, 0x50, 0x74, 0x10, 0x8e, 0x7b, 0xd4, 0x62, 0x33, 0xcb, 0x91, 0x41, 0x2c, 0xc4, 0xce,
- 0x4c, 0x66, 0x30, 0x3a, 0xb1, 0x09, 0x27, 0xfc, 0x28, 0x3d, 0x0c, 0xbe, 0x40, 0x21, 0x61, 0x05,
- 0x24, 0x0b, 0x15, 0xb8, 0x70, 0x5b, 0xed, 0xa2, 0xd9, 0xdb, 0x50, 0xec, 0x77, 0x8f, 0x34, 0x03,
- 0x69, 0xd7, 0x53, 0x1d, 0x8f, 0x44, 0x61, 0x5a, 0xa6, 0x0f, 0x92, 0x08, 0x49, 0x64, 0xb6, 0x48,
- 0x96, 0x4b, 0xcb, 0xf8, 0x4f, 0xe9, 0xe7, 0x82, 0x09, 0x27, 0xc9, 0x84, 0x3f, 0x3e, 0xb8, 0xa2,
- 0x7d, 0xcc, 0xd1, 0x79, 0xcf, 0x5e, 0x84, 0x89, 0xbe, 0x09, 0x8c, 0xfa, 0xea, 0xb9, 0x5f, 0x84,
- 0x07, 0x86, 0x52, 0x4b, 0x2f, 0xc0, 0x4c, 0xcf, 0xd4, 0x4d, 0x0f, 0x39, 0xb6, 0x83, 0x70, 0xc4,
- 0xd2, 0x57, 0x95, 0xfe, 0x6d, 0xfc, 0x88, 0x98, 0xdb, 0x0b, 0x5b, 0x53, 0x16, 0x79, 0xba, 0x37,
- 0x28, 0x7c, 0x22, 0x97, 0xfd, 0xd1, 0xb8, 0x78, 0xe7, 0xce, 0x9d, 0x3b, 0x89, 0xb9, 0x57, 0x33,
- 0x30, 0x33, 0x6c, 0xcf, 0x0c, 0xdd, 0xbe, 0x27, 0x20, 0x63, 0xf6, 0xba, 0x4d, 0xe4, 0x10, 0x27,
- 0xa5, 0x65, 0xf6, 0x24, 0x55, 0x21, 0x6d, 0xa8, 0x4d, 0x64, 0x94, 0x52, 0x67, 0x84, 0xf9, 0xe2,
- 0xd2, 0x93, 0x23, 0xed, 0xca, 0x85, 0x4d, 0x0c, 0x91, 0x29, 0x52, 0xfa, 0x24, 0xa4, 0x58, 0x8a,
- 0xc6, 0x0c, 0x4f, 0x8c, 0xc6, 0x80, 0xf7, 0x92, 0x4c, 0x70, 0xd2, 0x83, 0x90, 0xc3, 0xff, 0xd2,
- 0xd8, 0xc8, 0x90, 0x31, 0x67, 0xb1, 0x00, 0xc7, 0x85, 0x34, 0x0b, 0x59, 0xb2, 0x4d, 0x5a, 0x88,
- 0x97, 0x36, 0xff, 0x19, 0x07, 0x56, 0x0b, 0xb5, 0xd5, 0x9e, 0xe1, 0x29, 0x37, 0x55, 0xa3, 0x87,
- 0x48, 0xc0, 0xe7, 0xe4, 0x02, 0x13, 0x7e, 0x1a, 0xcb, 0xa4, 0xd3, 0x90, 0xa7, 0xbb, 0x4a, 0x37,
- 0x5b, 0xe8, 0x65, 0x92, 0x3d, 0xd3, 0x32, 0xdd, 0x68, 0x1b, 0x58, 0x82, 0x5f, 0x7f, 0xdd, 0xb5,
- 0x4c, 0x1e, 0x9a, 0xe4, 0x15, 0x58, 0x40, 0x5e, 0x7f, 0x31, 0x9a, 0xb8, 0x1f, 0x1a, 0x3e, 0xbd,
- 0x68, 0x4c, 0xcd, 0x7d, 0x33, 0x01, 0x29, 0x92, 0x2f, 0x26, 0x21, 0xbf, 0xfb, 0xe2, 0x4e, 0x4d,
- 0x59, 0xab, 0xef, 0xad, 0x6c, 0xd6, 0x44, 0x41, 0x2a, 0x02, 0x10, 0xc1, 0xd5, 0xcd, 0x7a, 0x75,
- 0x57, 0x4c, 0xf8, 0xcf, 0x1b, 0xdb, 0xbb, 0x17, 0xce, 0x8b, 0x49, 0x1f, 0xb0, 0x47, 0x05, 0xa9,
- 0xb0, 0xc1, 0xb9, 0x25, 0x31, 0x2d, 0x89, 0x50, 0xa0, 0x04, 0x1b, 0x2f, 0xd4, 0xd6, 0x2e, 0x9c,
- 0x17, 0x33, 0xfd, 0x92, 0x73, 0x4b, 0xe2, 0xb8, 0x34, 0x01, 0x39, 0x22, 0x59, 0xa9, 0xd7, 0x37,
- 0xc5, 0xac, 0xcf, 0xd9, 0xd8, 0x95, 0x37, 0xb6, 0xd7, 0xc5, 0x9c, 0xcf, 0xb9, 0x2e, 0xd7, 0xf7,
- 0x76, 0x44, 0xf0, 0x19, 0xb6, 0x6a, 0x8d, 0x46, 0x75, 0xbd, 0x26, 0xe6, 0x7d, 0x8b, 0x95, 0x17,
- 0x77, 0x6b, 0x0d, 0xb1, 0xd0, 0x37, 0xac, 0x73, 0x4b, 0xe2, 0x84, 0xff, 0x8a, 0xda, 0xf6, 0xde,
- 0x96, 0x58, 0x94, 0xa6, 0x60, 0x82, 0xbe, 0x82, 0x0f, 0x62, 0x32, 0x22, 0xba, 0x70, 0x5e, 0x14,
- 0x83, 0x81, 0x50, 0x96, 0xa9, 0x3e, 0xc1, 0x85, 0xf3, 0xa2, 0x34, 0xb7, 0x0a, 0x69, 0x12, 0x5d,
- 0x92, 0x04, 0xc5, 0xcd, 0xea, 0x4a, 0x6d, 0x53, 0xa9, 0xef, 0xec, 0x6e, 0xd4, 0xb7, 0xab, 0x9b,
- 0xa2, 0x10, 0xc8, 0xe4, 0xda, 0xa7, 0xf6, 0x36, 0xe4, 0xda, 0x9a, 0x98, 0x08, 0xcb, 0x76, 0x6a,
- 0xd5, 0xdd, 0xda, 0x9a, 0x98, 0x9c, 0xd3, 0x60, 0x66, 0x58, 0x9e, 0x1c, 0xba, 0x33, 0x42, 0x4b,
- 0x9c, 0x38, 0x62, 0x89, 0x09, 0xd7, 0xc0, 0x12, 0xff, 0x30, 0x01, 0xd3, 0x43, 0x6a, 0xc5, 0xd0,
- 0x97, 0x3c, 0x0b, 0x69, 0x1a, 0xa2, 0xb4, 0x7a, 0x3e, 0x3e, 0xb4, 0xe8, 0x90, 0x80, 0x1d, 0xa8,
- 0xa0, 0x04, 0x17, 0xee, 0x20, 0x92, 0x47, 0x74, 0x10, 0x98, 0x62, 0x20, 0xa7, 0xff, 0xc2, 0x40,
- 0x4e, 0xa7, 0x65, 0xef, 0xc2, 0x28, 0x65, 0x8f, 0xc8, 0x8e, 0x97, 0xdb, 0xd3, 0x43, 0x72, 0xfb,
- 0x15, 0x98, 0x1a, 0x20, 0x1a, 0x39, 0xc7, 0xbe, 0x22, 0x40, 0xe9, 0x28, 0xe7, 0xc4, 0x64, 0xba,
- 0x44, 0x5f, 0xa6, 0xbb, 0x12, 0xf5, 0xe0, 0xd9, 0xa3, 0x17, 0x61, 0x60, 0xad, 0xdf, 0x14, 0xe0,
- 0xc4, 0xf0, 0x4e, 0x71, 0xe8, 0x18, 0x3e, 0x09, 0x99, 0x2e, 0xf2, 0xf6, 0x2d, 0xde, 0x2d, 0x7d,
- 0x7c, 0x48, 0x0d, 0xc6, 0xea, 0xe8, 0x62, 0x33, 0x54, 0xb8, 0x88, 0x27, 0x8f, 0x6a, 0xf7, 0xe8,
- 0x68, 0x06, 0x46, 0xfa, 0xb9, 0x04, 0x3c, 0x30, 0x94, 0x7c, 0xe8, 0x40, 0x1f, 0x02, 0xd0, 0x4d,
- 0xbb, 0xe7, 0xd1, 0x8e, 0x88, 0x26, 0xd8, 0x1c, 0x91, 0x90, 0xe4, 0x85, 0x93, 0x67, 0xcf, 0xf3,
- 0xf5, 0x49, 0xa2, 0x07, 0x2a, 0x22, 0x06, 0x97, 0x82, 0x81, 0xa6, 0xc8, 0x40, 0xcb, 0x47, 0xcc,
- 0x74, 0x20, 0x30, 0x9f, 0x06, 0x51, 0x33, 0x74, 0x64, 0x7a, 0x8a, 0xeb, 0x39, 0x48, 0xed, 0xea,
- 0x66, 0x87, 0x54, 0x90, 0x6c, 0x25, 0xdd, 0x56, 0x0d, 0x17, 0xc9, 0x93, 0x54, 0xdd, 0xe0, 0x5a,
- 0x8c, 0x20, 0x01, 0xe4, 0x84, 0x10, 0x99, 0x3e, 0x04, 0x55, 0xfb, 0x88, 0xb9, 0x6f, 0x64, 0x21,
- 0x1f, 0xea, 0xab, 0xa5, 0xb3, 0x50, 0xb8, 0xae, 0xde, 0x54, 0x15, 0x7e, 0x56, 0xa2, 0x9e, 0xc8,
- 0x63, 0xd9, 0x0e, 0x3b, 0x2f, 0x3d, 0x0d, 0x33, 0xc4, 0xc4, 0xea, 0x79, 0xc8, 0x51, 0x34, 0x43,
- 0x75, 0x5d, 0xe2, 0xb4, 0x2c, 0x31, 0x95, 0xb0, 0xae, 0x8e, 0x55, 0xab, 0x5c, 0x23, 0x2d, 0xc3,
- 0x34, 0x41, 0x74, 0x7b, 0x86, 0xa7, 0xdb, 0x06, 0x52, 0xf0, 0xe9, 0xcd, 0x25, 0x95, 0xc4, 0x1f,
- 0xd9, 0x14, 0xb6, 0xd8, 0x62, 0x06, 0x78, 0x44, 0xae, 0xb4, 0x06, 0x0f, 0x11, 0x58, 0x07, 0x99,
- 0xc8, 0x51, 0x3d, 0xa4, 0xa0, 0xcf, 0xf6, 0x54, 0xc3, 0x55, 0x54, 0xb3, 0xa5, 0xec, 0xab, 0xee,
- 0x7e, 0x69, 0x06, 0x13, 0xac, 0x24, 0x4a, 0x82, 0x7c, 0x0a, 0x1b, 0xae, 0x33, 0xbb, 0x1a, 0x31,
- 0xab, 0x9a, 0xad, 0x6b, 0xaa, 0xbb, 0x2f, 0x55, 0xe0, 0x04, 0x61, 0x71, 0x3d, 0x47, 0x37, 0x3b,
- 0x8a, 0xb6, 0x8f, 0xb4, 0x1b, 0x4a, 0xcf, 0x6b, 0x5f, 0x2a, 0x3d, 0x18, 0x7e, 0x3f, 0x19, 0x61,
- 0x83, 0xd8, 0xac, 0x62, 0x93, 0x3d, 0xaf, 0x7d, 0x49, 0x6a, 0x40, 0x01, 0x2f, 0x46, 0x57, 0xbf,
- 0x8d, 0x94, 0xb6, 0xe5, 0x90, 0xd2, 0x58, 0x1c, 0x92, 0x9a, 0x42, 0x1e, 0x5c, 0xa8, 0x33, 0xc0,
- 0x96, 0xd5, 0x42, 0x95, 0x74, 0x63, 0xa7, 0x56, 0x5b, 0x93, 0xf3, 0x9c, 0xe5, 0xaa, 0xe5, 0xe0,
- 0x80, 0xea, 0x58, 0xbe, 0x83, 0xf3, 0x34, 0xa0, 0x3a, 0x16, 0x77, 0xef, 0x32, 0x4c, 0x6b, 0x1a,
- 0x9d, 0xb3, 0xae, 0x29, 0xec, 0x8c, 0xe5, 0x96, 0xc4, 0x3e, 0x67, 0x69, 0xda, 0x3a, 0x35, 0x60,
- 0x31, 0xee, 0x4a, 0x97, 0xe1, 0x81, 0xc0, 0x59, 0x61, 0xe0, 0xd4, 0xc0, 0x2c, 0xa3, 0xd0, 0x65,
- 0x98, 0xb6, 0x0f, 0x06, 0x81, 0x52, 0xdf, 0x1b, 0xed, 0x83, 0x28, 0xec, 0x22, 0xcc, 0xd8, 0xfb,
- 0xf6, 0x20, 0xee, 0x89, 0x30, 0x4e, 0xb2, 0xf7, 0xed, 0x28, 0xf0, 0x51, 0x72, 0xe0, 0x76, 0x90,
- 0xa6, 0x7a, 0xa8, 0x55, 0x3a, 0x19, 0x36, 0x0f, 0x29, 0xa4, 0x45, 0x10, 0x35, 0x4d, 0x41, 0xa6,
- 0xda, 0x34, 0x90, 0xa2, 0x3a, 0xc8, 0x54, 0xdd, 0xd2, 0xe9, 0xb0, 0x71, 0x51, 0xd3, 0x6a, 0x44,
- 0x5b, 0x25, 0x4a, 0xe9, 0x09, 0x98, 0xb2, 0x9a, 0xd7, 0x35, 0x1a, 0x92, 0x8a, 0xed, 0xa0, 0xb6,
- 0xfe, 0x72, 0xe9, 0x11, 0xe2, 0xdf, 0x49, 0xac, 0x20, 0x01, 0xb9, 0x43, 0xc4, 0xd2, 0xe3, 0x20,
- 0x6a, 0xee, 0xbe, 0xea, 0xd8, 0x24, 0x27, 0xbb, 0xb6, 0xaa, 0xa1, 0xd2, 0xa3, 0xd4, 0x94, 0xca,
- 0xb7, 0xb9, 0x18, 0x6f, 0x09, 0xf7, 0x96, 0xde, 0xf6, 0x38, 0xe3, 0x63, 0x74, 0x4b, 0x10, 0x19,
- 0x63, 0x9b, 0x07, 0x11, 0xbb, 0xa2, 0xef, 0xc5, 0xf3, 0xc4, 0xac, 0x68, 0xef, 0xdb, 0xe1, 0xf7,
- 0x3e, 0x0c, 0x13, 0xd8, 0x32, 0x78, 0xe9, 0xe3, 0xb4, 0x21, 0xb3, 0xf7, 0x43, 0x6f, 0xfc, 0xd0,
- 0x7a, 0xe3, 0xb9, 0x0a, 0x14, 0xc2, 0xf1, 0x29, 0xe5, 0x80, 0x46, 0xa8, 0x28, 0xe0, 0x66, 0x65,
- 0xb5, 0xbe, 0x86, 0xdb, 0x8c, 0x97, 0x6a, 0x62, 0x02, 0xb7, 0x3b, 0x9b, 0x1b, 0xbb, 0x35, 0x45,
- 0xde, 0xdb, 0xde, 0xdd, 0xd8, 0xaa, 0x89, 0xc9, 0x70, 0x5f, 0xfd, 0xdd, 0x04, 0x14, 0xfb, 0x8f,
- 0x48, 0xd2, 0xcf, 0xc2, 0x49, 0x7e, 0x9f, 0xe1, 0x22, 0x4f, 0xb9, 0xa5, 0x3b, 0x64, 0xcb, 0x74,
- 0x55, 0x5a, 0xbe, 0xfc, 0x45, 0x9b, 0x61, 0x56, 0x0d, 0xe4, 0x3d, 0xaf, 0x3b, 0x78, 0x43, 0x74,
- 0x55, 0x4f, 0xda, 0x84, 0xd3, 0xa6, 0xa5, 0xb8, 0x9e, 0x6a, 0xb6, 0x54, 0xa7, 0xa5, 0x04, 0x37,
- 0x49, 0x8a, 0xaa, 0x69, 0xc8, 0x75, 0x2d, 0x5a, 0xaa, 0x7c, 0x96, 0x8f, 0x99, 0x56, 0x83, 0x19,
- 0x07, 0x39, 0xbc, 0xca, 0x4c, 0x23, 0x01, 0x96, 0x3c, 0x2a, 0xc0, 0x1e, 0x84, 0x5c, 0x57, 0xb5,
- 0x15, 0x64, 0x7a, 0xce, 0x01, 0x69, 0x8c, 0xb3, 0x72, 0xb6, 0xab, 0xda, 0x35, 0xfc, 0xfc, 0xd1,
- 0x9c, 0x4f, 0x7e, 0x90, 0x84, 0x42, 0xb8, 0x39, 0xc6, 0x67, 0x0d, 0x8d, 0xd4, 0x11, 0x81, 0x64,
- 0x9a, 0x87, 0xef, 0xdb, 0x4a, 0x2f, 0xac, 0xe2, 0x02, 0x53, 0xc9, 0xd0, 0x96, 0x55, 0xa6, 0x48,
- 0x5c, 0xdc, 0x71, 0x6e, 0x41, 0xb4, 0x45, 0xc8, 0xca, 0xec, 0x49, 0x5a, 0x87, 0xcc, 0x75, 0x97,
- 0x70, 0x67, 0x08, 0xf7, 0x23, 0xf7, 0xe7, 0x7e, 0xae, 0x41, 0xc8, 0x73, 0xcf, 0x35, 0x94, 0xed,
- 0xba, 0xbc, 0x55, 0xdd, 0x94, 0x19, 0x5c, 0x3a, 0x05, 0x29, 0x43, 0xbd, 0x7d, 0xd0, 0x5f, 0x8a,
- 0x88, 0x68, 0x54, 0xc7, 0x9f, 0x82, 0xd4, 0x2d, 0xa4, 0xde, 0xe8, 0x2f, 0x00, 0x44, 0xf4, 0x21,
- 0x86, 0xfe, 0x22, 0xa4, 0x89, 0xbf, 0x24, 0x00, 0xe6, 0x31, 0x71, 0x4c, 0xca, 0x42, 0x6a, 0xb5,
- 0x2e, 0xe3, 0xf0, 0x17, 0xa1, 0x40, 0xa5, 0xca, 0xce, 0x46, 0x6d, 0xb5, 0x26, 0x26, 0xe6, 0x96,
- 0x21, 0x43, 0x9d, 0x80, 0xb7, 0x86, 0xef, 0x06, 0x71, 0x8c, 0x3d, 0x32, 0x0e, 0x81, 0x6b, 0xf7,
- 0xb6, 0x56, 0x6a, 0xb2, 0x98, 0x08, 0x2f, 0xaf, 0x0b, 0x85, 0x70, 0x5f, 0xfc, 0xd1, 0xc4, 0xd4,
- 0x77, 0x04, 0xc8, 0x87, 0xfa, 0x5c, 0xdc, 0xa0, 0xa8, 0x86, 0x61, 0xdd, 0x52, 0x54, 0x43, 0x57,
- 0x5d, 0x16, 0x14, 0x40, 0x44, 0x55, 0x2c, 0x19, 0x75, 0xd1, 0x3e, 0x92, 0xc1, 0xbf, 0x21, 0x80,
- 0x18, 0x6d, 0x31, 0x23, 0x03, 0x14, 0x7e, 0xaa, 0x03, 0x7c, 0x5d, 0x80, 0x62, 0x7f, 0x5f, 0x19,
- 0x19, 0xde, 0xd9, 0x9f, 0xea, 0xf0, 0xde, 0x4e, 0xc0, 0x44, 0x5f, 0x37, 0x39, 0xea, 0xe8, 0x3e,
- 0x0b, 0x53, 0x7a, 0x0b, 0x75, 0x6d, 0xcb, 0x43, 0xa6, 0x76, 0xa0, 0x18, 0xe8, 0x26, 0x32, 0x4a,
- 0x73, 0x24, 0x51, 0x2c, 0xde, 0xbf, 0x5f, 0x5d, 0xd8, 0x08, 0x70, 0x9b, 0x18, 0x56, 0x99, 0xde,
- 0x58, 0xab, 0x6d, 0xed, 0xd4, 0x77, 0x6b, 0xdb, 0xab, 0x2f, 0x2a, 0x7b, 0xdb, 0x3f, 0xbf, 0x5d,
- 0x7f, 0x7e, 0x5b, 0x16, 0xf5, 0x88, 0xd9, 0x87, 0xb8, 0xd5, 0x77, 0x40, 0x8c, 0x0e, 0x4a, 0x3a,
- 0x09, 0xc3, 0x86, 0x25, 0x8e, 0x49, 0xd3, 0x30, 0xb9, 0x5d, 0x57, 0x1a, 0x1b, 0x6b, 0x35, 0xa5,
- 0x76, 0xf5, 0x6a, 0x6d, 0x75, 0xb7, 0x41, 0x6f, 0x20, 0x7c, 0xeb, 0xdd, 0xfe, 0x4d, 0xfd, 0x5a,
- 0x12, 0xa6, 0x87, 0x8c, 0x44, 0xaa, 0xb2, 0xb3, 0x03, 0x3d, 0xce, 0x3c, 0x35, 0xca, 0xe8, 0x17,
- 0x70, 0xc9, 0xdf, 0x51, 0x1d, 0x8f, 0x1d, 0x35, 0x1e, 0x07, 0xec, 0x25, 0xd3, 0xd3, 0xdb, 0x3a,
- 0x72, 0xd8, 0x85, 0x0d, 0x3d, 0x50, 0x4c, 0x06, 0x72, 0x7a, 0x67, 0xf3, 0x33, 0x20, 0xd9, 0x96,
- 0xab, 0x7b, 0xfa, 0x4d, 0xa4, 0xe8, 0x26, 0xbf, 0xdd, 0xc1, 0x07, 0x8c, 0x94, 0x2c, 0x72, 0xcd,
- 0x86, 0xe9, 0xf9, 0xd6, 0x26, 0xea, 0xa8, 0x11, 0x6b, 0x9c, 0xc0, 0x93, 0xb2, 0xc8, 0x35, 0xbe,
- 0xf5, 0x59, 0x28, 0xb4, 0xac, 0x1e, 0xee, 0xba, 0xa8, 0x1d, 0xae, 0x17, 0x82, 0x9c, 0xa7, 0x32,
- 0xdf, 0x84, 0xf5, 0xd3, 0xc1, 0xb5, 0x52, 0x41, 0xce, 0x53, 0x19, 0x35, 0x79, 0x0c, 0x26, 0xd5,
- 0x4e, 0xc7, 0xc1, 0xe4, 0x9c, 0x88, 0x9e, 0x10, 0x8a, 0xbe, 0x98, 0x18, 0xce, 0x3e, 0x07, 0x59,
- 0xee, 0x07, 0x5c, 0x92, 0xb1, 0x27, 0x14, 0x9b, 0x1e, 0x7b, 0x13, 0xf3, 0x39, 0x39, 0x6b, 0x72,
- 0xe5, 0x59, 0x28, 0xe8, 0xae, 0x12, 0xdc, 0x92, 0x27, 0xce, 0x24, 0xe6, 0xb3, 0x72, 0x5e, 0x77,
- 0xfd, 0x1b, 0xc6, 0xb9, 0x37, 0x13, 0x50, 0xec, 0xbf, 0xe5, 0x97, 0xd6, 0x20, 0x6b, 0x58, 0x9a,
- 0x4a, 0x42, 0x8b, 0x7e, 0x62, 0x9a, 0x8f, 0xf9, 0x30, 0xb0, 0xb0, 0xc9, 0xec, 0x65, 0x1f, 0x39,
- 0xfb, 0x2f, 0x02, 0x64, 0xb9, 0x58, 0x3a, 0x01, 0x29, 0x5b, 0xf5, 0xf6, 0x09, 0x5d, 0x7a, 0x25,
- 0x21, 0x0a, 0x32, 0x79, 0xc6, 0x72, 0xd7, 0x56, 0x4d, 0x12, 0x02, 0x4c, 0x8e, 0x9f, 0xf1, 0xba,
- 0x1a, 0x48, 0x6d, 0x91, 0xe3, 0x87, 0xd5, 0xed, 0x22, 0xd3, 0x73, 0xf9, 0xba, 0x32, 0xf9, 0x2a,
- 0x13, 0x4b, 0x4f, 0xc2, 0x94, 0xe7, 0xa8, 0xba, 0xd1, 0x67, 0x9b, 0x22, 0xb6, 0x22, 0x57, 0xf8,
- 0xc6, 0x15, 0x38, 0xc5, 0x79, 0x5b, 0xc8, 0x53, 0xb5, 0x7d, 0xd4, 0x0a, 0x40, 0x19, 0x72, 0xcd,
- 0x70, 0x92, 0x19, 0xac, 0x31, 0x3d, 0xc7, 0xce, 0x7d, 0x5f, 0x80, 0x29, 0x7e, 0x60, 0x6a, 0xf9,
- 0xce, 0xda, 0x02, 0x50, 0x4d, 0xd3, 0xf2, 0xc2, 0xee, 0x1a, 0x0c, 0xe5, 0x01, 0xdc, 0x42, 0xd5,
- 0x07, 0xc9, 0x21, 0x82, 0xd9, 0x2e, 0x40, 0xa0, 0x39, 0xd2, 0x6d, 0xa7, 0x21, 0xcf, 0x3e, 0xe1,
- 0x90, 0xef, 0x80, 0xf4, 0x88, 0x0d, 0x54, 0x84, 0x4f, 0x56, 0xd2, 0x0c, 0xa4, 0x9b, 0xa8, 0xa3,
- 0x9b, 0xec, 0x62, 0x96, 0x3e, 0xf0, 0x8b, 0x90, 0x94, 0x7f, 0x11, 0xb2, 0xf2, 0x19, 0x98, 0xd6,
- 0xac, 0x6e, 0x74, 0xb8, 0x2b, 0x62, 0xe4, 0x98, 0xef, 0x5e, 0x13, 0x5e, 0x82, 0xa0, 0xc5, 0x7c,
- 0x5f, 0x10, 0xbe, 0x94, 0x48, 0xae, 0xef, 0xac, 0x7c, 0x35, 0x31, 0xbb, 0x4e, 0xa1, 0x3b, 0x7c,
- 0xa6, 0x32, 0x6a, 0x1b, 0x48, 0xc3, 0xa3, 0x87, 0x2f, 0x3f, 0x09, 0x4f, 0x75, 0x74, 0x6f, 0xbf,
- 0xd7, 0x5c, 0xd0, 0xac, 0xee, 0x62, 0xc7, 0xea, 0x58, 0xc1, 0xa7, 0x4f, 0xfc, 0x44, 0x1e, 0xc8,
- 0x5f, 0xec, 0xf3, 0x67, 0xce, 0x97, 0xce, 0xc6, 0x7e, 0x2b, 0xad, 0x6c, 0xc3, 0x34, 0x33, 0x56,
- 0xc8, 0xf7, 0x17, 0x7a, 0x8a, 0x90, 0xee, 0x7b, 0x87, 0x55, 0xfa, 0xfa, 0x3b, 0xa4, 0x5c, 0xcb,
- 0x53, 0x0c, 0x8a, 0x75, 0xf4, 0xa0, 0x51, 0x91, 0xe1, 0x81, 0x3e, 0x3e, 0xba, 0x35, 0x91, 0x13,
- 0xc3, 0xf8, 0x5d, 0xc6, 0x38, 0x1d, 0x62, 0x6c, 0x30, 0x68, 0x65, 0x15, 0x26, 0x8e, 0xc3, 0xf5,
- 0x4f, 0x8c, 0xab, 0x80, 0xc2, 0x24, 0xeb, 0x30, 0x49, 0x48, 0xb4, 0x9e, 0xeb, 0x59, 0x5d, 0x92,
- 0xf7, 0xee, 0x4f, 0xf3, 0xcf, 0xef, 0xd0, 0xbd, 0x52, 0xc4, 0xb0, 0x55, 0x1f, 0x55, 0xa9, 0x00,
- 0xf9, 0xe4, 0xd4, 0x42, 0x9a, 0x11, 0xc3, 0xf0, 0x16, 0x1b, 0x88, 0x6f, 0x5f, 0xf9, 0x34, 0xcc,
- 0xe0, 0xbf, 0x49, 0x5a, 0x0a, 0x8f, 0x24, 0xfe, 0xc2, 0xab, 0xf4, 0xfd, 0x57, 0xe8, 0x76, 0x9c,
- 0xf6, 0x09, 0x42, 0x63, 0x0a, 0xad, 0x62, 0x07, 0x79, 0x1e, 0x72, 0x5c, 0x45, 0x35, 0x86, 0x0d,
- 0x2f, 0x74, 0x63, 0x50, 0xfa, 0xfc, 0xbb, 0xfd, 0xab, 0xb8, 0x4e, 0x91, 0x55, 0xc3, 0xa8, 0xec,
- 0xc1, 0xc9, 0x21, 0x51, 0x31, 0x02, 0xe7, 0x6b, 0x8c, 0x73, 0x66, 0x20, 0x32, 0x30, 0xed, 0x0e,
- 0x70, 0xb9, 0xbf, 0x96, 0x23, 0x70, 0xfe, 0x21, 0xe3, 0x94, 0x18, 0x96, 0x2f, 0x29, 0x66, 0x7c,
- 0x0e, 0xa6, 0x6e, 0x22, 0xa7, 0x69, 0xb9, 0xec, 0x96, 0x66, 0x04, 0xba, 0xd7, 0x19, 0xdd, 0x24,
- 0x03, 0x92, 0x6b, 0x1b, 0xcc, 0x75, 0x19, 0xb2, 0x6d, 0x55, 0x43, 0x23, 0x50, 0x7c, 0x81, 0x51,
- 0x8c, 0x63, 0x7b, 0x0c, 0xad, 0x42, 0xa1, 0x63, 0xb1, 0xca, 0x14, 0x0f, 0x7f, 0x83, 0xc1, 0xf3,
- 0x1c, 0xc3, 0x28, 0x6c, 0xcb, 0xee, 0x19, 0xb8, 0x6c, 0xc5, 0x53, 0xfc, 0x11, 0xa7, 0xe0, 0x18,
- 0x46, 0x71, 0x0c, 0xb7, 0xfe, 0x31, 0xa7, 0x70, 0x43, 0xfe, 0x7c, 0x16, 0xf2, 0x96, 0x69, 0x1c,
- 0x58, 0xe6, 0x28, 0x83, 0xf8, 0x22, 0x63, 0x00, 0x06, 0xc1, 0x04, 0x57, 0x20, 0x37, 0xea, 0x42,
- 0xfc, 0xe9, 0xbb, 0x7c, 0x7b, 0xf0, 0x15, 0x58, 0x87, 0x49, 0x9e, 0xa0, 0x74, 0xcb, 0x1c, 0x81,
- 0xe2, 0xcb, 0x8c, 0xa2, 0x18, 0x82, 0xb1, 0x69, 0x78, 0xc8, 0xf5, 0x3a, 0x68, 0x14, 0x92, 0x37,
- 0xf9, 0x34, 0x18, 0x84, 0xb9, 0xb2, 0x89, 0x4c, 0x6d, 0x7f, 0x34, 0x86, 0xaf, 0x70, 0x57, 0x72,
- 0x0c, 0xa6, 0x58, 0x85, 0x89, 0xae, 0xea, 0xb8, 0xfb, 0xaa, 0x31, 0xd2, 0x72, 0xfc, 0x19, 0xe3,
- 0x28, 0xf8, 0x20, 0xe6, 0x91, 0x9e, 0x79, 0x1c, 0x9a, 0xaf, 0x72, 0x8f, 0x84, 0x60, 0x6c, 0xeb,
- 0xb9, 0x1e, 0xb9, 0xd2, 0x3a, 0x0e, 0xdb, 0x9f, 0xf3, 0xad, 0x47, 0xb1, 0x5b, 0x61, 0xc6, 0x2b,
- 0x90, 0x73, 0xf5, 0xdb, 0x23, 0xd1, 0xfc, 0x05, 0x5f, 0x69, 0x02, 0xc0, 0xe0, 0x17, 0xe1, 0xd4,
- 0xd0, 0x32, 0x31, 0x02, 0xd9, 0x5f, 0x32, 0xb2, 0x13, 0x43, 0x4a, 0x05, 0x4b, 0x09, 0xc7, 0xa5,
- 0xfc, 0x2b, 0x9e, 0x12, 0x50, 0x84, 0x6b, 0x07, 0x9f, 0x15, 0x5c, 0xb5, 0x7d, 0x3c, 0xaf, 0xfd,
- 0x35, 0xf7, 0x1a, 0xc5, 0xf6, 0x79, 0x6d, 0x17, 0x4e, 0x30, 0xc6, 0xe3, 0xad, 0xeb, 0xd7, 0x78,
- 0x62, 0xa5, 0xe8, 0xbd, 0xfe, 0xd5, 0xfd, 0x0c, 0xcc, 0xfa, 0xee, 0xe4, 0x4d, 0xa9, 0xab, 0x74,
- 0x55, 0x7b, 0x04, 0xe6, 0xaf, 0x33, 0x66, 0x9e, 0xf1, 0xfd, 0xae, 0xd6, 0xdd, 0x52, 0x6d, 0x4c,
- 0xfe, 0x02, 0x94, 0x38, 0x79, 0xcf, 0x74, 0x90, 0x66, 0x75, 0x4c, 0xfd, 0x36, 0x6a, 0x8d, 0x40,
- 0xfd, 0x37, 0x91, 0xa5, 0xda, 0x0b, 0xc1, 0x31, 0xf3, 0x06, 0x88, 0x7e, 0xaf, 0xa2, 0xe8, 0x5d,
- 0xdb, 0x72, 0xbc, 0x18, 0xc6, 0x6f, 0xf0, 0x95, 0xf2, 0x71, 0x1b, 0x04, 0x56, 0xa9, 0x41, 0x91,
- 0x3c, 0x8e, 0x1a, 0x92, 0x7f, 0xcb, 0x88, 0x26, 0x02, 0x14, 0x4b, 0x1c, 0x9a, 0xd5, 0xb5, 0x55,
- 0x67, 0x94, 0xfc, 0xf7, 0x77, 0x3c, 0x71, 0x30, 0x08, 0x4b, 0x1c, 0xde, 0x81, 0x8d, 0x70, 0xb5,
- 0x1f, 0x81, 0xe1, 0x9b, 0x3c, 0x71, 0x70, 0x0c, 0xa3, 0xe0, 0x0d, 0xc3, 0x08, 0x14, 0x7f, 0xcf,
- 0x29, 0x38, 0x06, 0x53, 0x7c, 0x2a, 0x28, 0xb4, 0x0e, 0xea, 0xe8, 0xae, 0xe7, 0xd0, 0x56, 0xf8,
- 0xfe, 0x54, 0xdf, 0x7a, 0xb7, 0xbf, 0x09, 0x93, 0x43, 0x50, 0x9c, 0x89, 0xd8, 0x15, 0x2a, 0x39,
- 0x29, 0xc5, 0x0f, 0xec, 0xdb, 0x3c, 0x13, 0x85, 0x60, 0x78, 0x6c, 0xa1, 0x0e, 0x11, 0xbb, 0x5d,
- 0xc3, 0xe7, 0x83, 0x11, 0xe8, 0xbe, 0x13, 0x19, 0x5c, 0x83, 0x63, 0x31, 0x67, 0xa8, 0xff, 0xe9,
- 0x99, 0x37, 0xd0, 0xc1, 0x48, 0xd1, 0xf9, 0x0f, 0x91, 0xfe, 0x67, 0x8f, 0x22, 0x69, 0x0e, 0x99,
- 0x8c, 0xf4, 0x53, 0x52, 0xdc, 0x8f, 0x75, 0x4a, 0xbf, 0x74, 0x8f, 0xcd, 0xb7, 0xbf, 0x9d, 0xaa,
- 0x6c, 0xe2, 0x20, 0xef, 0x6f, 0x7a, 0xe2, 0xc9, 0x5e, 0xb9, 0xe7, 0xc7, 0x79, 0x5f, 0xcf, 0x53,
- 0xb9, 0x0a, 0x13, 0x7d, 0x0d, 0x4f, 0x3c, 0xd5, 0x2f, 0x33, 0xaa, 0x42, 0xb8, 0xdf, 0xa9, 0x2c,
- 0x43, 0x0a, 0x37, 0x2f, 0xf1, 0xf0, 0x5f, 0x61, 0x70, 0x62, 0x5e, 0xf9, 0x04, 0x64, 0x79, 0xd3,
- 0x12, 0x0f, 0xfd, 0x55, 0x06, 0xf5, 0x21, 0x18, 0xce, 0x1b, 0x96, 0x78, 0xf8, 0xaf, 0x71, 0x38,
- 0x87, 0x60, 0xf8, 0xe8, 0x2e, 0xfc, 0xc7, 0x5f, 0x4f, 0xb1, 0xa2, 0xc3, 0x7d, 0x77, 0x05, 0xc6,
- 0x59, 0xa7, 0x12, 0x8f, 0xfe, 0x1c, 0x7b, 0x39, 0x47, 0x54, 0x2e, 0x42, 0x7a, 0x44, 0x87, 0xff,
- 0x06, 0x83, 0x52, 0xfb, 0xca, 0x2a, 0xe4, 0x43, 0xdd, 0x49, 0x3c, 0xfc, 0x37, 0x19, 0x3c, 0x8c,
- 0xc2, 0x43, 0x67, 0xdd, 0x49, 0x3c, 0xc1, 0x6f, 0xf1, 0xa1, 0x33, 0x04, 0x76, 0x1b, 0x6f, 0x4c,
- 0xe2, 0xd1, 0xbf, 0xcd, 0xbd, 0xce, 0x21, 0x95, 0x67, 0x21, 0xe7, 0x17, 0x9b, 0x78, 0xfc, 0xef,
- 0x30, 0x7c, 0x80, 0xc1, 0x1e, 0x08, 0x15, 0xbb, 0x78, 0x8a, 0xdf, 0xe5, 0x1e, 0x08, 0xa1, 0xf0,
- 0x36, 0x8a, 0x36, 0x30, 0xf1, 0x4c, 0xbf, 0xc7, 0xb7, 0x51, 0xa4, 0x7f, 0xc1, 0xab, 0x49, 0x72,
- 0x7e, 0x3c, 0xc5, 0xef, 0xf3, 0xd5, 0x24, 0xf6, 0x78, 0x18, 0xd1, 0x8e, 0x20, 0x9e, 0xe3, 0x0f,
- 0xf8, 0x30, 0x22, 0x0d, 0x41, 0x65, 0x07, 0xa4, 0xc1, 0x6e, 0x20, 0x9e, 0xef, 0x55, 0xc6, 0x37,
- 0x35, 0xd0, 0x0c, 0x54, 0x9e, 0x87, 0x13, 0xc3, 0x3b, 0x81, 0x78, 0xd6, 0xcf, 0xdf, 0x8b, 0x9c,
- 0xdd, 0xc2, 0x8d, 0x40, 0x65, 0x37, 0x28, 0x29, 0xe1, 0x2e, 0x20, 0x9e, 0xf6, 0xb5, 0x7b, 0xfd,
- 0x89, 0x3b, 0xdc, 0x04, 0x54, 0xaa, 0x00, 0x41, 0x01, 0x8e, 0xe7, 0x7a, 0x9d, 0x71, 0x85, 0x40,
- 0x78, 0x6b, 0xb0, 0xfa, 0x1b, 0x8f, 0xff, 0x02, 0xdf, 0x1a, 0x0c, 0x81, 0xb7, 0x06, 0x2f, 0xbd,
- 0xf1, 0xe8, 0x37, 0xf8, 0xd6, 0xe0, 0x10, 0x1c, 0xd9, 0xa1, 0xea, 0x16, 0xcf, 0xf0, 0x45, 0x1e,
- 0xd9, 0x21, 0x54, 0x65, 0x1b, 0xa6, 0x06, 0x0a, 0x62, 0x3c, 0xd5, 0x97, 0x18, 0x95, 0x18, 0xad,
- 0x87, 0xe1, 0xe2, 0xc5, 0x8a, 0x61, 0x3c, 0xdb, 0x9f, 0x44, 0x8a, 0x17, 0xab, 0x85, 0x95, 0x2b,
- 0x90, 0x35, 0x7b, 0x86, 0x81, 0x37, 0x8f, 0x74, 0xff, 0x1f, 0xd8, 0x95, 0xfe, 0xfd, 0x03, 0xe6,
- 0x1d, 0x0e, 0xa8, 0x2c, 0x43, 0x1a, 0x75, 0x9b, 0xa8, 0x15, 0x87, 0xfc, 0x8f, 0x0f, 0x78, 0xc2,
- 0xc4, 0xd6, 0x95, 0x67, 0x01, 0xe8, 0xd5, 0x08, 0xf9, 0xec, 0x17, 0x83, 0xfd, 0xcf, 0x0f, 0xd8,
- 0x4f, 0x5f, 0x02, 0x48, 0x40, 0x40, 0x7f, 0x48, 0x73, 0x7f, 0x82, 0x77, 0xfb, 0x09, 0xc8, 0x8a,
- 0x5c, 0x86, 0xf1, 0xeb, 0xae, 0x65, 0x7a, 0x6a, 0x27, 0x0e, 0xfd, 0x5f, 0x0c, 0xcd, 0xed, 0xb1,
- 0xc3, 0xba, 0x96, 0x83, 0x3c, 0xb5, 0xe3, 0xc6, 0x61, 0xff, 0x9b, 0x61, 0x7d, 0x00, 0x06, 0x6b,
- 0xaa, 0xeb, 0x8d, 0x32, 0xef, 0x1f, 0x73, 0x30, 0x07, 0xe0, 0x41, 0xe3, 0xbf, 0x6f, 0xa0, 0x83,
- 0x38, 0xec, 0x7b, 0x7c, 0xd0, 0xcc, 0xbe, 0xf2, 0x09, 0xc8, 0xe1, 0x3f, 0xe9, 0xef, 0xd9, 0x62,
- 0xc0, 0xff, 0xc3, 0xc0, 0x01, 0x02, 0xbf, 0xd9, 0xf5, 0x5a, 0x9e, 0x1e, 0xef, 0xec, 0xff, 0x65,
- 0x2b, 0xcd, 0xed, 0x2b, 0x55, 0xc8, 0xbb, 0x5e, 0xab, 0xd5, 0x63, 0xfd, 0x69, 0x0c, 0xfc, 0xff,
- 0x3e, 0xf0, 0xaf, 0x2c, 0x7c, 0x0c, 0x5e, 0xed, 0x5b, 0x37, 0x3c, 0xdb, 0x22, 0x9f, 0x39, 0xe2,
- 0x18, 0xee, 0x31, 0x86, 0x10, 0x64, 0xa5, 0x36, 0xfc, 0xfa, 0x16, 0xd6, 0xad, 0x75, 0x8b, 0x5e,
- 0xdc, 0xbe, 0x34, 0x17, 0x7f, 0x03, 0x0b, 0xaf, 0xa6, 0x61, 0x56, 0xb3, 0xba, 0x4d, 0xcb, 0x5d,
- 0xf4, 0xd3, 0xf1, 0xa2, 0x65, 0x32, 0x46, 0x29, 0x69, 0x99, 0x68, 0xf6, 0x78, 0x37, 0xb9, 0x73,
- 0xa7, 0x20, 0xdd, 0xe8, 0x35, 0x9b, 0x07, 0x92, 0x08, 0x49, 0xb7, 0xd7, 0x64, 0xbf, 0x8a, 0xc2,
- 0x7f, 0xce, 0xfd, 0x20, 0x09, 0xf9, 0x86, 0xda, 0xb5, 0x0d, 0x54, 0x37, 0x51, 0xbd, 0x2d, 0x95,
- 0x20, 0x43, 0x26, 0xfa, 0x0c, 0x31, 0x12, 0xae, 0x8d, 0xc9, 0xec, 0xd9, 0xd7, 0x2c, 0x91, 0x1b,
- 0xee, 0x84, 0xaf, 0x59, 0xf2, 0x35, 0xe7, 0xe8, 0x05, 0xb7, 0xaf, 0x39, 0xe7, 0x6b, 0xce, 0x93,
- 0x6b, 0xee, 0xa4, 0xaf, 0x39, 0xef, 0x6b, 0x96, 0xc9, 0x67, 0x9c, 0x09, 0x5f, 0xb3, 0xec, 0x6b,
- 0x2e, 0x90, 0x0f, 0x37, 0x29, 0x5f, 0x73, 0xc1, 0xd7, 0x5c, 0x24, 0xdf, 0x6b, 0xa6, 0x7c, 0xcd,
- 0x45, 0x5f, 0x73, 0x89, 0x7c, 0xa3, 0x91, 0x7c, 0xcd, 0x25, 0x5f, 0x73, 0x99, 0xfc, 0xf8, 0x69,
- 0xdc, 0xd7, 0x5c, 0x96, 0x66, 0x61, 0x9c, 0xce, 0xec, 0x69, 0xf2, 0x21, 0x7f, 0xf2, 0xda, 0x98,
- 0xcc, 0x05, 0x81, 0xee, 0x19, 0xf2, 0x03, 0xa7, 0x4c, 0xa0, 0x7b, 0x26, 0xd0, 0x2d, 0x91, 0xff,
- 0x67, 0x21, 0x06, 0xba, 0xa5, 0x40, 0x77, 0xae, 0x34, 0x81, 0xe3, 0x23, 0xd0, 0x9d, 0x0b, 0x74,
- 0xe7, 0x4b, 0x45, 0xec, 0xff, 0x40, 0x77, 0x3e, 0xd0, 0x2d, 0x97, 0x26, 0xcf, 0x08, 0xf3, 0x85,
- 0x40, 0xb7, 0x2c, 0x3d, 0x05, 0x79, 0xb7, 0xd7, 0x54, 0x58, 0xa6, 0x27, 0x3f, 0xa4, 0xca, 0x2f,
- 0xc1, 0x02, 0x8e, 0x08, 0xb2, 0xa8, 0xd7, 0xc6, 0x64, 0x70, 0x7b, 0x4d, 0x96, 0x88, 0x57, 0x0a,
- 0x40, 0xee, 0x9f, 0x14, 0xf2, 0xfb, 0xe7, 0x95, 0xb5, 0xb7, 0xee, 0x96, 0xc7, 0xbe, 0x77, 0xb7,
- 0x3c, 0xf6, 0xaf, 0x77, 0xcb, 0x63, 0x6f, 0xdf, 0x2d, 0x0b, 0xef, 0xdd, 0x2d, 0x0b, 0xef, 0xdf,
- 0x2d, 0x0b, 0x77, 0x0e, 0xcb, 0xc2, 0x57, 0x0e, 0xcb, 0xc2, 0xd7, 0x0e, 0xcb, 0xc2, 0xb7, 0x0e,
- 0xcb, 0xc2, 0x5b, 0x87, 0x65, 0xe1, 0x7b, 0x87, 0xe5, 0xb1, 0xb7, 0x0f, 0xcb, 0xc2, 0x8f, 0x0e,
- 0xcb, 0x63, 0xef, 0x1d, 0x96, 0x85, 0xf7, 0x0f, 0xcb, 0x63, 0x77, 0x7e, 0x58, 0x1e, 0x6b, 0x66,
- 0x48, 0x18, 0x9d, 0xfb, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0d, 0x14, 0xab, 0x18, 0x36, 0x35,
- 0x00, 0x00,
+ // 4115 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5b, 0x70, 0x1b, 0xe7,
+ 0x75, 0x26, 0xae, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x25, 0x88, 0x8e, 0x21, 0x89, 0xb6, 0x63,
+ 0xda, 0x8e, 0x29, 0x9b, 0x22, 0x75, 0x81, 0x9a, 0xb8, 0x20, 0x09, 0x51, 0x74, 0x49, 0x82, 0x59,
+ 0x90, 0xf1, 0x25, 0xd3, 0xd9, 0x59, 0x2c, 0x7e, 0x80, 0x2b, 0x2d, 0x76, 0x37, 0xbb, 0x0b, 0xc9,
+ 0xd4, 0xf4, 0x41, 0x1d, 0xf7, 0x32, 0x99, 0xde, 0x2f, 0x33, 0x75, 0x5c, 0xc7, 0x6d, 0xd2, 0x69,
+ 0x9c, 0xa6, 0xb7, 0xa4, 0x97, 0x34, 0x49, 0x5f, 0xfa, 0x92, 0xd6, 0x4f, 0x9d, 0xe4, 0xad, 0x0f,
+ 0x79, 0xb0, 0x18, 0xcf, 0x34, 0x6d, 0xdd, 0xd6, 0x6d, 0xf5, 0xe0, 0x19, 0xbf, 0x74, 0xfe, 0xdb,
+ 0xde, 0x00, 0x6a, 0xc1, 0xcc, 0xd8, 0x79, 0x12, 0xf7, 0x9c, 0xf3, 0x7d, 0x7b, 0xfe, 0xf3, 0x9f,
+ 0xff, 0xfc, 0xe7, 0xff, 0x17, 0x82, 0xb7, 0xaa, 0x70, 0xa6, 0x6b, 0x9a, 0x5d, 0x1d, 0x9d, 0xb3,
+ 0x6c, 0xd3, 0x35, 0x5b, 0xfd, 0xce, 0xb9, 0x36, 0x72, 0x54, 0x5b, 0xb3, 0x5c, 0xd3, 0x5e, 0x20,
+ 0x32, 0x71, 0x92, 0x5a, 0x2c, 0x70, 0x8b, 0xb9, 0x2d, 0x98, 0xba, 0xaa, 0xe9, 0x68, 0xcd, 0x33,
+ 0x6c, 0x22, 0x57, 0xbc, 0x04, 0xe9, 0x8e, 0xa6, 0xa3, 0x72, 0xe2, 0x4c, 0x6a, 0xbe, 0xb0, 0xf8,
+ 0xc8, 0x42, 0x04, 0xb4, 0x10, 0x46, 0xec, 0x60, 0xb1, 0x44, 0x10, 0x73, 0xef, 0xa4, 0x61, 0x7a,
+ 0x88, 0x56, 0x14, 0x21, 0x6d, 0x28, 0x3d, 0xcc, 0x98, 0x98, 0xcf, 0x4b, 0xe4, 0x6f, 0xb1, 0x0c,
+ 0xe3, 0x96, 0xa2, 0xde, 0x50, 0xba, 0xa8, 0x9c, 0x24, 0x62, 0xfe, 0x28, 0x56, 0x00, 0xda, 0xc8,
+ 0x42, 0x46, 0x1b, 0x19, 0xea, 0x41, 0x39, 0x75, 0x26, 0x35, 0x9f, 0x97, 0x02, 0x12, 0xf1, 0x49,
+ 0x98, 0xb2, 0xfa, 0x2d, 0x5d, 0x53, 0xe5, 0x80, 0x19, 0x9c, 0x49, 0xcd, 0x67, 0x24, 0x81, 0x2a,
+ 0xd6, 0x7c, 0xe3, 0xc7, 0x60, 0xf2, 0x16, 0x52, 0x6e, 0x04, 0x4d, 0x0b, 0xc4, 0xb4, 0x84, 0xc5,
+ 0x01, 0xc3, 0x55, 0x28, 0xf6, 0x90, 0xe3, 0x28, 0x5d, 0x24, 0xbb, 0x07, 0x16, 0x2a, 0xa7, 0xc9,
+ 0xe8, 0xcf, 0x0c, 0x8c, 0x3e, 0x3a, 0xf2, 0x02, 0x43, 0xed, 0x1e, 0x58, 0x48, 0xac, 0x41, 0x1e,
+ 0x19, 0xfd, 0x1e, 0x65, 0xc8, 0x1c, 0x11, 0xbf, 0xba, 0xd1, 0xef, 0x45, 0x59, 0x72, 0x18, 0xc6,
+ 0x28, 0xc6, 0x1d, 0x64, 0xdf, 0xd4, 0x54, 0x54, 0xce, 0x12, 0x82, 0xc7, 0x06, 0x08, 0x9a, 0x54,
+ 0x1f, 0xe5, 0xe0, 0x38, 0x71, 0x15, 0xf2, 0xe8, 0x65, 0x17, 0x19, 0x8e, 0x66, 0x1a, 0xe5, 0x71,
+ 0x42, 0xf2, 0xe8, 0x90, 0x59, 0x44, 0x7a, 0x3b, 0x4a, 0xe1, 0xe3, 0xc4, 0x0b, 0x30, 0x6e, 0x5a,
+ 0xae, 0x66, 0x1a, 0x4e, 0x39, 0x77, 0x26, 0x31, 0x5f, 0x58, 0xfc, 0xd8, 0xd0, 0x44, 0x68, 0x50,
+ 0x1b, 0x89, 0x1b, 0x8b, 0x1b, 0x20, 0x38, 0x66, 0xdf, 0x56, 0x91, 0xac, 0x9a, 0x6d, 0x24, 0x6b,
+ 0x46, 0xc7, 0x2c, 0xe7, 0x09, 0xc1, 0xe9, 0xc1, 0x81, 0x10, 0xc3, 0x55, 0xb3, 0x8d, 0x36, 0x8c,
+ 0x8e, 0x29, 0x95, 0x9c, 0xd0, 0xb3, 0x78, 0x02, 0xb2, 0xce, 0x81, 0xe1, 0x2a, 0x2f, 0x97, 0x8b,
+ 0x24, 0x43, 0xd8, 0xd3, 0xdc, 0xb7, 0xb3, 0x30, 0x39, 0x4a, 0x8a, 0x5d, 0x81, 0x4c, 0x07, 0x8f,
+ 0xb2, 0x9c, 0x3c, 0x4e, 0x0c, 0x28, 0x26, 0x1c, 0xc4, 0xec, 0x8f, 0x19, 0xc4, 0x1a, 0x14, 0x0c,
+ 0xe4, 0xb8, 0xa8, 0x4d, 0x33, 0x22, 0x35, 0x62, 0x4e, 0x01, 0x05, 0x0d, 0xa6, 0x54, 0xfa, 0xc7,
+ 0x4a, 0xa9, 0x17, 0x60, 0xd2, 0x73, 0x49, 0xb6, 0x15, 0xa3, 0xcb, 0x73, 0xf3, 0x5c, 0x9c, 0x27,
+ 0x0b, 0x75, 0x8e, 0x93, 0x30, 0x4c, 0x2a, 0xa1, 0xd0, 0xb3, 0xb8, 0x06, 0x60, 0x1a, 0xc8, 0xec,
+ 0xc8, 0x6d, 0xa4, 0xea, 0xe5, 0xdc, 0x11, 0x51, 0x6a, 0x60, 0x93, 0x81, 0x28, 0x99, 0x54, 0xaa,
+ 0xea, 0xe2, 0x65, 0x3f, 0xd5, 0xc6, 0x8f, 0xc8, 0x94, 0x2d, 0xba, 0xc8, 0x06, 0xb2, 0x6d, 0x0f,
+ 0x4a, 0x36, 0xc2, 0x79, 0x8f, 0xda, 0x6c, 0x64, 0x79, 0xe2, 0xc4, 0x42, 0xec, 0xc8, 0x24, 0x06,
+ 0xa3, 0x03, 0x9b, 0xb0, 0x83, 0x8f, 0xe2, 0xc3, 0xe0, 0x09, 0x64, 0x92, 0x56, 0x40, 0xaa, 0x50,
+ 0x91, 0x0b, 0xb7, 0x95, 0x1e, 0x9a, 0xbd, 0x0d, 0xa5, 0x70, 0x78, 0xc4, 0x19, 0xc8, 0x38, 0xae,
+ 0x62, 0xbb, 0x24, 0x0b, 0x33, 0x12, 0x7d, 0x10, 0x05, 0x48, 0x21, 0xa3, 0x4d, 0xaa, 0x5c, 0x46,
+ 0xc2, 0x7f, 0x8a, 0x3f, 0xed, 0x0f, 0x38, 0x45, 0x06, 0xfc, 0xf1, 0xc1, 0x19, 0x0d, 0x31, 0x47,
+ 0xc7, 0x3d, 0x7b, 0x11, 0x26, 0x42, 0x03, 0x18, 0xf5, 0xd5, 0x73, 0x3f, 0x07, 0x0f, 0x0c, 0xa5,
+ 0x16, 0x5f, 0x80, 0x99, 0xbe, 0xa1, 0x19, 0x2e, 0xb2, 0x2d, 0x1b, 0xe1, 0x8c, 0xa5, 0xaf, 0x2a,
+ 0xff, 0xeb, 0xf8, 0x11, 0x39, 0xb7, 0x17, 0xb4, 0xa6, 0x2c, 0xd2, 0x74, 0x7f, 0x50, 0xf8, 0x44,
+ 0x3e, 0xf7, 0xa3, 0x71, 0xe1, 0xce, 0x9d, 0x3b, 0x77, 0x92, 0x73, 0xaf, 0x66, 0x61, 0x66, 0xd8,
+ 0x9a, 0x19, 0xba, 0x7c, 0x4f, 0x40, 0xd6, 0xe8, 0xf7, 0x5a, 0xc8, 0x26, 0x41, 0xca, 0x48, 0xec,
+ 0x49, 0xac, 0x41, 0x46, 0x57, 0x5a, 0x48, 0x2f, 0xa7, 0xcf, 0x24, 0xe6, 0x4b, 0x8b, 0x4f, 0x8e,
+ 0xb4, 0x2a, 0x17, 0x36, 0x31, 0x44, 0xa2, 0x48, 0xf1, 0x53, 0x90, 0x66, 0x25, 0x1a, 0x33, 0x3c,
+ 0x31, 0x1a, 0x03, 0x5e, 0x4b, 0x12, 0xc1, 0x89, 0x0f, 0x42, 0x1e, 0xff, 0x4b, 0x73, 0x23, 0x4b,
+ 0x7c, 0xce, 0x61, 0x01, 0xce, 0x0b, 0x71, 0x16, 0x72, 0x64, 0x99, 0xb4, 0x11, 0xdf, 0xda, 0xbc,
+ 0x67, 0x9c, 0x58, 0x6d, 0xd4, 0x51, 0xfa, 0xba, 0x2b, 0xdf, 0x54, 0xf4, 0x3e, 0x22, 0x09, 0x9f,
+ 0x97, 0x8a, 0x4c, 0xf8, 0x19, 0x2c, 0x13, 0x4f, 0x43, 0x81, 0xae, 0x2a, 0xcd, 0x68, 0xa3, 0x97,
+ 0x49, 0xf5, 0xcc, 0x48, 0x74, 0xa1, 0x6d, 0x60, 0x09, 0x7e, 0xfd, 0x75, 0xc7, 0x34, 0x78, 0x6a,
+ 0x92, 0x57, 0x60, 0x01, 0x79, 0xfd, 0xc5, 0x68, 0xe1, 0x7e, 0x68, 0xf8, 0xf0, 0xa2, 0x39, 0x35,
+ 0xf7, 0xcd, 0x24, 0xa4, 0x49, 0xbd, 0x98, 0x84, 0xc2, 0xee, 0x8b, 0x3b, 0x75, 0x79, 0xad, 0xb1,
+ 0xb7, 0xb2, 0x59, 0x17, 0x12, 0x62, 0x09, 0x80, 0x08, 0xae, 0x6e, 0x36, 0x6a, 0xbb, 0x42, 0xd2,
+ 0x7b, 0xde, 0xd8, 0xde, 0xbd, 0xb0, 0x24, 0xa4, 0x3c, 0xc0, 0x1e, 0x15, 0xa4, 0x83, 0x06, 0xe7,
+ 0x17, 0x85, 0x8c, 0x28, 0x40, 0x91, 0x12, 0x6c, 0xbc, 0x50, 0x5f, 0xbb, 0xb0, 0x24, 0x64, 0xc3,
+ 0x92, 0xf3, 0x8b, 0xc2, 0xb8, 0x38, 0x01, 0x79, 0x22, 0x59, 0x69, 0x34, 0x36, 0x85, 0x9c, 0xc7,
+ 0xd9, 0xdc, 0x95, 0x36, 0xb6, 0xd7, 0x85, 0xbc, 0xc7, 0xb9, 0x2e, 0x35, 0xf6, 0x76, 0x04, 0xf0,
+ 0x18, 0xb6, 0xea, 0xcd, 0x66, 0x6d, 0xbd, 0x2e, 0x14, 0x3c, 0x8b, 0x95, 0x17, 0x77, 0xeb, 0x4d,
+ 0xa1, 0x18, 0x72, 0xeb, 0xfc, 0xa2, 0x30, 0xe1, 0xbd, 0xa2, 0xbe, 0xbd, 0xb7, 0x25, 0x94, 0xc4,
+ 0x29, 0x98, 0xa0, 0xaf, 0xe0, 0x4e, 0x4c, 0x46, 0x44, 0x17, 0x96, 0x04, 0xc1, 0x77, 0x84, 0xb2,
+ 0x4c, 0x85, 0x04, 0x17, 0x96, 0x04, 0x71, 0x6e, 0x15, 0x32, 0x24, 0xbb, 0x44, 0x11, 0x4a, 0x9b,
+ 0xb5, 0x95, 0xfa, 0xa6, 0xdc, 0xd8, 0xd9, 0xdd, 0x68, 0x6c, 0xd7, 0x36, 0x85, 0x84, 0x2f, 0x93,
+ 0xea, 0x9f, 0xde, 0xdb, 0x90, 0xea, 0x6b, 0x42, 0x32, 0x28, 0xdb, 0xa9, 0xd7, 0x76, 0xeb, 0x6b,
+ 0x42, 0x6a, 0x4e, 0x85, 0x99, 0x61, 0x75, 0x72, 0xe8, 0xca, 0x08, 0x4c, 0x71, 0xf2, 0x88, 0x29,
+ 0x26, 0x5c, 0x03, 0x53, 0xfc, 0xc3, 0x24, 0x4c, 0x0f, 0xd9, 0x2b, 0x86, 0xbe, 0xe4, 0x59, 0xc8,
+ 0xd0, 0x14, 0xa5, 0xbb, 0xe7, 0xe3, 0x43, 0x37, 0x1d, 0x92, 0xb0, 0x03, 0x3b, 0x28, 0xc1, 0x05,
+ 0x3b, 0x88, 0xd4, 0x11, 0x1d, 0x04, 0xa6, 0x18, 0xa8, 0xe9, 0x3f, 0x3b, 0x50, 0xd3, 0xe9, 0xb6,
+ 0x77, 0x61, 0x94, 0x6d, 0x8f, 0xc8, 0x8e, 0x57, 0xdb, 0x33, 0x43, 0x6a, 0xfb, 0x15, 0x98, 0x1a,
+ 0x20, 0x1a, 0xb9, 0xc6, 0xbe, 0x92, 0x80, 0xf2, 0x51, 0xc1, 0x89, 0xa9, 0x74, 0xc9, 0x50, 0xa5,
+ 0xbb, 0x12, 0x8d, 0xe0, 0xd9, 0xa3, 0x27, 0x61, 0x60, 0xae, 0xdf, 0x4c, 0xc0, 0x89, 0xe1, 0x9d,
+ 0xe2, 0x50, 0x1f, 0x3e, 0x05, 0xd9, 0x1e, 0x72, 0xf7, 0x4d, 0xde, 0x2d, 0x7d, 0x7c, 0xc8, 0x1e,
+ 0x8c, 0xd5, 0xd1, 0xc9, 0x66, 0xa8, 0xe0, 0x26, 0x9e, 0x3a, 0xaa, 0xdd, 0xa3, 0xde, 0x0c, 0x78,
+ 0xfa, 0xf9, 0x24, 0x3c, 0x30, 0x94, 0x7c, 0xa8, 0xa3, 0x0f, 0x01, 0x68, 0x86, 0xd5, 0x77, 0x69,
+ 0x47, 0x44, 0x0b, 0x6c, 0x9e, 0x48, 0x48, 0xf1, 0xc2, 0xc5, 0xb3, 0xef, 0x7a, 0xfa, 0x14, 0xd1,
+ 0x03, 0x15, 0x11, 0x83, 0x4b, 0xbe, 0xa3, 0x69, 0xe2, 0x68, 0xe5, 0x88, 0x91, 0x0e, 0x24, 0xe6,
+ 0xd3, 0x20, 0xa8, 0xba, 0x86, 0x0c, 0x57, 0x76, 0x5c, 0x1b, 0x29, 0x3d, 0xcd, 0xe8, 0x92, 0x1d,
+ 0x24, 0x57, 0xcd, 0x74, 0x14, 0xdd, 0x41, 0xd2, 0x24, 0x55, 0x37, 0xb9, 0x16, 0x23, 0x48, 0x02,
+ 0xd9, 0x01, 0x44, 0x36, 0x84, 0xa0, 0x6a, 0x0f, 0x31, 0xf7, 0xab, 0x79, 0x28, 0x04, 0xfa, 0x6a,
+ 0xf1, 0x2c, 0x14, 0xaf, 0x2b, 0x37, 0x15, 0x99, 0x9f, 0x95, 0x68, 0x24, 0x0a, 0x58, 0xb6, 0xc3,
+ 0xce, 0x4b, 0x4f, 0xc3, 0x0c, 0x31, 0x31, 0xfb, 0x2e, 0xb2, 0x65, 0x55, 0x57, 0x1c, 0x87, 0x04,
+ 0x2d, 0x47, 0x4c, 0x45, 0xac, 0x6b, 0x60, 0xd5, 0x2a, 0xd7, 0x88, 0xcb, 0x30, 0x4d, 0x10, 0xbd,
+ 0xbe, 0xee, 0x6a, 0x96, 0x8e, 0x64, 0x7c, 0x7a, 0x73, 0xc8, 0x4e, 0xe2, 0x79, 0x36, 0x85, 0x2d,
+ 0xb6, 0x98, 0x01, 0xf6, 0xc8, 0x11, 0xd7, 0xe0, 0x21, 0x02, 0xeb, 0x22, 0x03, 0xd9, 0x8a, 0x8b,
+ 0x64, 0xf4, 0xb9, 0xbe, 0xa2, 0x3b, 0xb2, 0x62, 0xb4, 0xe5, 0x7d, 0xc5, 0xd9, 0x2f, 0xcf, 0x60,
+ 0x82, 0x95, 0x64, 0x39, 0x21, 0x9d, 0xc2, 0x86, 0xeb, 0xcc, 0xae, 0x4e, 0xcc, 0x6a, 0x46, 0xfb,
+ 0x9a, 0xe2, 0xec, 0x8b, 0x55, 0x38, 0x41, 0x58, 0x1c, 0xd7, 0xd6, 0x8c, 0xae, 0xac, 0xee, 0x23,
+ 0xf5, 0x86, 0xdc, 0x77, 0x3b, 0x97, 0xca, 0x0f, 0x06, 0xdf, 0x4f, 0x3c, 0x6c, 0x12, 0x9b, 0x55,
+ 0x6c, 0xb2, 0xe7, 0x76, 0x2e, 0x89, 0x4d, 0x28, 0xe2, 0xc9, 0xe8, 0x69, 0xb7, 0x91, 0xdc, 0x31,
+ 0x6d, 0xb2, 0x35, 0x96, 0x86, 0x94, 0xa6, 0x40, 0x04, 0x17, 0x1a, 0x0c, 0xb0, 0x65, 0xb6, 0x51,
+ 0x35, 0xd3, 0xdc, 0xa9, 0xd7, 0xd7, 0xa4, 0x02, 0x67, 0xb9, 0x6a, 0xda, 0x38, 0xa1, 0xba, 0xa6,
+ 0x17, 0xe0, 0x02, 0x4d, 0xa8, 0xae, 0xc9, 0xc3, 0xbb, 0x0c, 0xd3, 0xaa, 0x4a, 0xc7, 0xac, 0xa9,
+ 0x32, 0x3b, 0x63, 0x39, 0x65, 0x21, 0x14, 0x2c, 0x55, 0x5d, 0xa7, 0x06, 0x2c, 0xc7, 0x1d, 0xf1,
+ 0x32, 0x3c, 0xe0, 0x07, 0x2b, 0x08, 0x9c, 0x1a, 0x18, 0x65, 0x14, 0xba, 0x0c, 0xd3, 0xd6, 0xc1,
+ 0x20, 0x50, 0x0c, 0xbd, 0xd1, 0x3a, 0x88, 0xc2, 0x2e, 0xc2, 0x8c, 0xb5, 0x6f, 0x0d, 0xe2, 0x9e,
+ 0x08, 0xe2, 0x44, 0x6b, 0xdf, 0x8a, 0x02, 0x1f, 0x25, 0x07, 0x6e, 0x1b, 0xa9, 0x8a, 0x8b, 0xda,
+ 0xe5, 0x93, 0x41, 0xf3, 0x80, 0x42, 0x3c, 0x07, 0x82, 0xaa, 0xca, 0xc8, 0x50, 0x5a, 0x3a, 0x92,
+ 0x15, 0x1b, 0x19, 0x8a, 0x53, 0x3e, 0x1d, 0x34, 0x2e, 0xa9, 0x6a, 0x9d, 0x68, 0x6b, 0x44, 0x29,
+ 0x3e, 0x01, 0x53, 0x66, 0xeb, 0xba, 0x4a, 0x53, 0x52, 0xb6, 0x6c, 0xd4, 0xd1, 0x5e, 0x2e, 0x3f,
+ 0x42, 0xe2, 0x3b, 0x89, 0x15, 0x24, 0x21, 0x77, 0x88, 0x58, 0x7c, 0x1c, 0x04, 0xd5, 0xd9, 0x57,
+ 0x6c, 0x8b, 0xd4, 0x64, 0xc7, 0x52, 0x54, 0x54, 0x7e, 0x94, 0x9a, 0x52, 0xf9, 0x36, 0x17, 0xe3,
+ 0x25, 0xe1, 0xdc, 0xd2, 0x3a, 0x2e, 0x67, 0x7c, 0x8c, 0x2e, 0x09, 0x22, 0x63, 0x6c, 0xf3, 0x20,
+ 0xe0, 0x50, 0x84, 0x5e, 0x3c, 0x4f, 0xcc, 0x4a, 0xd6, 0xbe, 0x15, 0x7c, 0xef, 0xc3, 0x30, 0x81,
+ 0x2d, 0xfd, 0x97, 0x3e, 0x4e, 0x1b, 0x32, 0x6b, 0x3f, 0xf0, 0xc6, 0x25, 0x38, 0x81, 0x8d, 0x7a,
+ 0xc8, 0x55, 0xda, 0x8a, 0xab, 0x04, 0xac, 0x3f, 0x41, 0xac, 0x71, 0xdc, 0xb7, 0x98, 0x32, 0xe4,
+ 0xa7, 0xdd, 0x6f, 0x1d, 0x78, 0x99, 0xf5, 0x14, 0xf5, 0x13, 0xcb, 0x78, 0x6e, 0x7d, 0x68, 0x4d,
+ 0xf7, 0x5c, 0x15, 0x8a, 0xc1, 0xc4, 0x17, 0xf3, 0x40, 0x53, 0x5f, 0x48, 0xe0, 0x2e, 0x68, 0xb5,
+ 0xb1, 0x86, 0xfb, 0x97, 0x97, 0xea, 0x42, 0x12, 0xf7, 0x51, 0x9b, 0x1b, 0xbb, 0x75, 0x59, 0xda,
+ 0xdb, 0xde, 0xdd, 0xd8, 0xaa, 0x0b, 0xa9, 0x60, 0xc3, 0xfe, 0xdd, 0x24, 0x94, 0xc2, 0x67, 0x2f,
+ 0xf1, 0xa7, 0xe0, 0x24, 0xbf, 0x28, 0x71, 0x90, 0x2b, 0xdf, 0xd2, 0x6c, 0xb2, 0x16, 0x7b, 0x0a,
+ 0xdd, 0x17, 0xbd, 0x6c, 0x98, 0x61, 0x56, 0x4d, 0xe4, 0x3e, 0xaf, 0xd9, 0x78, 0xa5, 0xf5, 0x14,
+ 0x57, 0xdc, 0x84, 0xd3, 0x86, 0x29, 0x3b, 0xae, 0x62, 0xb4, 0x15, 0xbb, 0x2d, 0xfb, 0x57, 0x54,
+ 0xb2, 0xa2, 0xaa, 0xc8, 0x71, 0x4c, 0xba, 0x07, 0x7a, 0x2c, 0x1f, 0x33, 0xcc, 0x26, 0x33, 0xf6,
+ 0x37, 0x87, 0x1a, 0x33, 0x8d, 0x64, 0x6e, 0xea, 0xa8, 0xcc, 0x7d, 0x10, 0xf2, 0x3d, 0xc5, 0x92,
+ 0x91, 0xe1, 0xda, 0x07, 0xa4, 0xe3, 0xce, 0x49, 0xb9, 0x9e, 0x62, 0xd5, 0xf1, 0xf3, 0x47, 0x73,
+ 0xf0, 0xf9, 0x41, 0x0a, 0x8a, 0xc1, 0xae, 0x1b, 0x1f, 0x62, 0x54, 0xb2, 0x41, 0x25, 0x48, 0x09,
+ 0x7b, 0xf8, 0xbe, 0x3d, 0xfa, 0xc2, 0x2a, 0xde, 0xb9, 0xaa, 0x59, 0xda, 0x0b, 0x4b, 0x14, 0x89,
+ 0xbb, 0x06, 0x9c, 0x5a, 0x88, 0xf6, 0x1e, 0x39, 0x89, 0x3d, 0x89, 0xeb, 0x90, 0xbd, 0xee, 0x10,
+ 0xee, 0x2c, 0xe1, 0x7e, 0xe4, 0xfe, 0xdc, 0xcf, 0x35, 0x09, 0x79, 0xfe, 0xb9, 0xa6, 0xbc, 0xdd,
+ 0x90, 0xb6, 0x6a, 0x9b, 0x12, 0x83, 0x8b, 0xa7, 0x20, 0xad, 0x2b, 0xb7, 0x0f, 0xc2, 0x7b, 0x1c,
+ 0x11, 0x8d, 0x1a, 0xf8, 0x53, 0x90, 0xbe, 0x85, 0x94, 0x1b, 0xe1, 0x9d, 0x85, 0x88, 0x3e, 0xc4,
+ 0xd4, 0x3f, 0x07, 0x19, 0x12, 0x2f, 0x11, 0x80, 0x45, 0x4c, 0x18, 0x13, 0x73, 0x90, 0x5e, 0x6d,
+ 0x48, 0x38, 0xfd, 0x05, 0x28, 0x52, 0xa9, 0xbc, 0xb3, 0x51, 0x5f, 0xad, 0x0b, 0xc9, 0xb9, 0x65,
+ 0xc8, 0xd2, 0x20, 0xe0, 0xa5, 0xe1, 0x85, 0x41, 0x18, 0x63, 0x8f, 0x8c, 0x23, 0xc1, 0xb5, 0x7b,
+ 0x5b, 0x2b, 0x75, 0x49, 0x48, 0x06, 0xa7, 0xd7, 0x81, 0x62, 0xb0, 0xe1, 0xfe, 0x68, 0x72, 0xea,
+ 0x3b, 0x09, 0x28, 0x04, 0x1a, 0x68, 0xdc, 0xf9, 0x28, 0xba, 0x6e, 0xde, 0x92, 0x15, 0x5d, 0x53,
+ 0x1c, 0x96, 0x14, 0x40, 0x44, 0x35, 0x2c, 0x19, 0x75, 0xd2, 0x3e, 0x12, 0xe7, 0xdf, 0x48, 0x80,
+ 0x10, 0xed, 0x5d, 0x23, 0x0e, 0x26, 0x7e, 0xa2, 0x0e, 0xbe, 0x9e, 0x80, 0x52, 0xb8, 0x61, 0x8d,
+ 0xb8, 0x77, 0xf6, 0x27, 0xea, 0xde, 0xdb, 0x49, 0x98, 0x08, 0xb5, 0xa9, 0xa3, 0x7a, 0xf7, 0x39,
+ 0x98, 0xd2, 0xda, 0xa8, 0x67, 0x99, 0x2e, 0x32, 0xd4, 0x03, 0x59, 0x47, 0x37, 0x91, 0x5e, 0x9e,
+ 0x23, 0x85, 0xe2, 0xdc, 0xfd, 0x1b, 0xe1, 0x85, 0x0d, 0x1f, 0xb7, 0x89, 0x61, 0xd5, 0xe9, 0x8d,
+ 0xb5, 0xfa, 0xd6, 0x4e, 0x63, 0xb7, 0xbe, 0xbd, 0xfa, 0xa2, 0xbc, 0xb7, 0xfd, 0x33, 0xdb, 0x8d,
+ 0xe7, 0xb7, 0x25, 0x41, 0x8b, 0x98, 0x7d, 0x88, 0x4b, 0x7d, 0x07, 0x84, 0xa8, 0x53, 0xe2, 0x49,
+ 0x18, 0xe6, 0x96, 0x30, 0x26, 0x4e, 0xc3, 0xe4, 0x76, 0x43, 0x6e, 0x6e, 0xac, 0xd5, 0xe5, 0xfa,
+ 0xd5, 0xab, 0xf5, 0xd5, 0xdd, 0x26, 0xbd, 0xda, 0xf0, 0xac, 0x77, 0xc3, 0x8b, 0xfa, 0xb5, 0x14,
+ 0x4c, 0x0f, 0xf1, 0x44, 0xac, 0xb1, 0x43, 0x09, 0x3d, 0x27, 0x3d, 0x35, 0x8a, 0xf7, 0x0b, 0xb8,
+ 0x2b, 0xd8, 0x51, 0x6c, 0x97, 0x9d, 0x61, 0x1e, 0x07, 0x1c, 0x25, 0xc3, 0xd5, 0x3a, 0x1a, 0xb2,
+ 0xd9, 0x4d, 0x10, 0x3d, 0xa9, 0x4c, 0xfa, 0x72, 0x7a, 0x19, 0xf4, 0x09, 0x10, 0x2d, 0xd3, 0xd1,
+ 0x5c, 0xed, 0x26, 0x92, 0x35, 0x83, 0x5f, 0x1b, 0xe1, 0x93, 0x4b, 0x5a, 0x12, 0xb8, 0x66, 0xc3,
+ 0x70, 0x3d, 0x6b, 0x03, 0x75, 0x95, 0x88, 0x35, 0x2e, 0xe0, 0x29, 0x49, 0xe0, 0x1a, 0xcf, 0xfa,
+ 0x2c, 0x14, 0xdb, 0x66, 0x1f, 0xb7, 0x73, 0xd4, 0x0e, 0xef, 0x17, 0x09, 0xa9, 0x40, 0x65, 0x9e,
+ 0x09, 0x6b, 0xd4, 0xfd, 0xfb, 0xaa, 0xa2, 0x54, 0xa0, 0x32, 0x6a, 0xf2, 0x18, 0x4c, 0x2a, 0xdd,
+ 0xae, 0x8d, 0xc9, 0x39, 0x11, 0x3d, 0x7a, 0x94, 0x3c, 0x31, 0x31, 0x9c, 0x7d, 0x0e, 0x72, 0x3c,
+ 0x0e, 0x78, 0x4b, 0xc6, 0x91, 0x90, 0x2d, 0x7a, 0x9e, 0x4e, 0xce, 0xe7, 0xa5, 0x9c, 0xc1, 0x95,
+ 0x67, 0xa1, 0xa8, 0x39, 0xb2, 0x7f, 0xfd, 0x9e, 0x3c, 0x93, 0x9c, 0xcf, 0x49, 0x05, 0xcd, 0xf1,
+ 0xae, 0x2e, 0xe7, 0xde, 0x4c, 0x42, 0x29, 0xfc, 0xf9, 0x40, 0x5c, 0x83, 0x9c, 0x6e, 0xaa, 0x0a,
+ 0x49, 0x2d, 0xfa, 0xed, 0x6a, 0x3e, 0xe6, 0x8b, 0xc3, 0xc2, 0x26, 0xb3, 0x97, 0x3c, 0xe4, 0xec,
+ 0x3f, 0x27, 0x20, 0xc7, 0xc5, 0xe2, 0x09, 0x48, 0x5b, 0x8a, 0xbb, 0x4f, 0xe8, 0x32, 0x2b, 0x49,
+ 0x21, 0x21, 0x91, 0x67, 0x2c, 0x77, 0x2c, 0xc5, 0x20, 0x29, 0xc0, 0xe4, 0xf8, 0x19, 0xcf, 0xab,
+ 0x8e, 0x94, 0x36, 0x39, 0xd7, 0x98, 0xbd, 0x1e, 0x32, 0x5c, 0x87, 0xcf, 0x2b, 0x93, 0xaf, 0x32,
+ 0xb1, 0xf8, 0x24, 0x4c, 0xb9, 0xb6, 0xa2, 0xe9, 0x21, 0xdb, 0x34, 0xb1, 0x15, 0xb8, 0xc2, 0x33,
+ 0xae, 0xc2, 0x29, 0xce, 0xdb, 0x46, 0xae, 0xa2, 0xee, 0xa3, 0xb6, 0x0f, 0xca, 0x92, 0xfb, 0x8b,
+ 0x93, 0xcc, 0x60, 0x8d, 0xe9, 0x39, 0x76, 0xee, 0xfb, 0x09, 0x98, 0xe2, 0x27, 0xb1, 0xb6, 0x17,
+ 0xac, 0x2d, 0x00, 0xc5, 0x30, 0x4c, 0x37, 0x18, 0xae, 0xc1, 0x54, 0x1e, 0xc0, 0x2d, 0xd4, 0x3c,
+ 0x90, 0x14, 0x20, 0x98, 0xed, 0x01, 0xf8, 0x9a, 0x23, 0xc3, 0x76, 0x1a, 0x0a, 0xec, 0xdb, 0x10,
+ 0xf9, 0xc0, 0x48, 0xcf, 0xee, 0x40, 0x45, 0xf8, 0xc8, 0x26, 0xce, 0x40, 0xa6, 0x85, 0xba, 0x9a,
+ 0xc1, 0x6e, 0x7c, 0xe9, 0x03, 0xbf, 0x61, 0x49, 0x7b, 0x37, 0x2c, 0x2b, 0x9f, 0x85, 0x69, 0xd5,
+ 0xec, 0x45, 0xdd, 0x5d, 0x11, 0x22, 0xf7, 0x07, 0xce, 0xb5, 0xc4, 0x4b, 0xe0, 0xb7, 0x98, 0xef,
+ 0x27, 0x12, 0x5f, 0x4e, 0xa6, 0xd6, 0x77, 0x56, 0xbe, 0x96, 0x9c, 0x5d, 0xa7, 0xd0, 0x1d, 0x3e,
+ 0x52, 0x09, 0x75, 0x74, 0xa4, 0x62, 0xef, 0xe1, 0x2b, 0x4f, 0xc2, 0x53, 0x5d, 0xcd, 0xdd, 0xef,
+ 0xb7, 0x16, 0x54, 0xb3, 0x77, 0xae, 0x6b, 0x76, 0x4d, 0xff, 0x9b, 0x2a, 0x7e, 0x22, 0x0f, 0xe4,
+ 0x2f, 0xf6, 0x5d, 0x35, 0xef, 0x49, 0x67, 0x63, 0x3f, 0xc2, 0x56, 0xb7, 0x61, 0x9a, 0x19, 0xcb,
+ 0xe4, 0xc3, 0x0e, 0x3d, 0x9e, 0x88, 0xf7, 0xbd, 0x1c, 0x2b, 0x7f, 0xe3, 0x1d, 0xb2, 0x5d, 0x4b,
+ 0x53, 0x0c, 0x8a, 0x75, 0xf4, 0x04, 0x53, 0x95, 0xe0, 0x81, 0x10, 0x1f, 0x5d, 0x9a, 0xc8, 0x8e,
+ 0x61, 0xfc, 0x2e, 0x63, 0x9c, 0x0e, 0x30, 0x36, 0x19, 0xb4, 0xba, 0x0a, 0x13, 0xc7, 0xe1, 0xfa,
+ 0x47, 0xc6, 0x55, 0x44, 0x41, 0x92, 0x75, 0x98, 0x24, 0x24, 0x6a, 0xdf, 0x71, 0xcd, 0x1e, 0xa9,
+ 0x7b, 0xf7, 0xa7, 0xf9, 0xa7, 0x77, 0xe8, 0x5a, 0x29, 0x61, 0xd8, 0xaa, 0x87, 0xaa, 0x56, 0x81,
+ 0x7c, 0xcb, 0x6a, 0x23, 0x55, 0x8f, 0x61, 0x78, 0x8b, 0x39, 0xe2, 0xd9, 0x57, 0x3f, 0x03, 0x33,
+ 0xf8, 0x6f, 0x52, 0x96, 0x82, 0x9e, 0xc4, 0xdf, 0xa4, 0x95, 0xbf, 0xff, 0x0a, 0x5d, 0x8e, 0xd3,
+ 0x1e, 0x41, 0xc0, 0xa7, 0xc0, 0x2c, 0x76, 0x91, 0xeb, 0x22, 0xdb, 0x91, 0x15, 0x7d, 0x98, 0x7b,
+ 0x81, 0xab, 0x88, 0xf2, 0x17, 0xde, 0x0d, 0xcf, 0xe2, 0x3a, 0x45, 0xd6, 0x74, 0xbd, 0xba, 0x07,
+ 0x27, 0x87, 0x64, 0xc5, 0x08, 0x9c, 0xaf, 0x31, 0xce, 0x99, 0x81, 0xcc, 0xc0, 0xb4, 0x3b, 0xc0,
+ 0xe5, 0xde, 0x5c, 0x8e, 0xc0, 0xf9, 0xfb, 0x8c, 0x53, 0x64, 0x58, 0x3e, 0xa5, 0x98, 0xf1, 0x39,
+ 0x98, 0xba, 0x89, 0xec, 0x96, 0xe9, 0xb0, 0xeb, 0x9f, 0x11, 0xe8, 0x5e, 0x67, 0x74, 0x93, 0x0c,
+ 0x48, 0xee, 0x83, 0x30, 0xd7, 0x65, 0xc8, 0x75, 0x14, 0x15, 0x8d, 0x40, 0xf1, 0x45, 0x46, 0x31,
+ 0x8e, 0xed, 0x31, 0xb4, 0x06, 0xc5, 0xae, 0xc9, 0x76, 0xa6, 0x78, 0xf8, 0x1b, 0x0c, 0x5e, 0xe0,
+ 0x18, 0x46, 0x61, 0x99, 0x56, 0x5f, 0xc7, 0xdb, 0x56, 0x3c, 0xc5, 0x1f, 0x70, 0x0a, 0x8e, 0x61,
+ 0x14, 0xc7, 0x08, 0xeb, 0x1f, 0x72, 0x0a, 0x27, 0x10, 0xcf, 0x67, 0xa1, 0x60, 0x1a, 0xfa, 0x81,
+ 0x69, 0x8c, 0xe2, 0xc4, 0x97, 0x18, 0x03, 0x30, 0x08, 0x26, 0xb8, 0x02, 0xf9, 0x51, 0x27, 0xe2,
+ 0x8f, 0xdf, 0xe5, 0xcb, 0x83, 0xcf, 0xc0, 0x3a, 0x4c, 0xf2, 0x02, 0xa5, 0x99, 0xc6, 0x08, 0x14,
+ 0x5f, 0x61, 0x14, 0xa5, 0x00, 0x8c, 0x0d, 0xc3, 0x45, 0x8e, 0xdb, 0x45, 0xa3, 0x90, 0xbc, 0xc9,
+ 0x87, 0xc1, 0x20, 0x2c, 0x94, 0x2d, 0x64, 0xa8, 0xfb, 0xa3, 0x31, 0x7c, 0x95, 0x87, 0x92, 0x63,
+ 0x30, 0xc5, 0x2a, 0x4c, 0xf4, 0x14, 0xdb, 0xd9, 0x57, 0xf4, 0x91, 0xa6, 0xe3, 0x4f, 0x18, 0x47,
+ 0xd1, 0x03, 0xb1, 0x88, 0xf4, 0x8d, 0xe3, 0xd0, 0x7c, 0x8d, 0x47, 0x24, 0x00, 0x63, 0x4b, 0xcf,
+ 0x71, 0xc9, 0x5d, 0xd9, 0x71, 0xd8, 0xfe, 0x94, 0x2f, 0x3d, 0x8a, 0xdd, 0x0a, 0x32, 0x5e, 0x81,
+ 0xbc, 0xa3, 0xdd, 0x1e, 0x89, 0xe6, 0xcf, 0xf8, 0x4c, 0x13, 0x00, 0x06, 0xbf, 0x08, 0xa7, 0x86,
+ 0x6e, 0x13, 0x23, 0x90, 0xfd, 0x39, 0x23, 0x3b, 0x31, 0x64, 0xab, 0x60, 0x25, 0xe1, 0xb8, 0x94,
+ 0x7f, 0xc1, 0x4b, 0x02, 0x8a, 0x70, 0xed, 0xe0, 0xb3, 0x82, 0xa3, 0x74, 0x8e, 0x17, 0xb5, 0xbf,
+ 0xe4, 0x51, 0xa3, 0xd8, 0x50, 0xd4, 0x76, 0xe1, 0x04, 0x63, 0x3c, 0xde, 0xbc, 0x7e, 0x9d, 0x17,
+ 0x56, 0x8a, 0xde, 0x0b, 0xcf, 0xee, 0x67, 0x61, 0xd6, 0x0b, 0x27, 0x6f, 0x4a, 0x1d, 0xb9, 0xa7,
+ 0x58, 0x23, 0x30, 0x7f, 0x83, 0x31, 0xf3, 0x8a, 0xef, 0x75, 0xb5, 0xce, 0x96, 0x62, 0x61, 0xf2,
+ 0x17, 0xa0, 0xcc, 0xc9, 0xfb, 0x86, 0x8d, 0x54, 0xb3, 0x6b, 0x68, 0xb7, 0x51, 0x7b, 0x04, 0xea,
+ 0xbf, 0x8a, 0x4c, 0xd5, 0x5e, 0x00, 0x8e, 0x99, 0x37, 0x40, 0xf0, 0x7a, 0x15, 0x59, 0xeb, 0x59,
+ 0xa6, 0xed, 0xc6, 0x30, 0xfe, 0x35, 0x9f, 0x29, 0x0f, 0xb7, 0x41, 0x60, 0xd5, 0x3a, 0x94, 0xc8,
+ 0xe3, 0xa8, 0x29, 0xf9, 0x37, 0x8c, 0x68, 0xc2, 0x47, 0xb1, 0xc2, 0xa1, 0x9a, 0x3d, 0x4b, 0xb1,
+ 0x47, 0xa9, 0x7f, 0x7f, 0xcb, 0x0b, 0x07, 0x83, 0xb0, 0xc2, 0xe1, 0x1e, 0x58, 0x08, 0xef, 0xf6,
+ 0x23, 0x30, 0x7c, 0x93, 0x17, 0x0e, 0x8e, 0x61, 0x14, 0xbc, 0x61, 0x18, 0x81, 0xe2, 0xef, 0x38,
+ 0x05, 0xc7, 0x60, 0x8a, 0x4f, 0xfb, 0x1b, 0xad, 0x8d, 0xba, 0x9a, 0xe3, 0xda, 0xb4, 0x15, 0xbe,
+ 0x3f, 0xd5, 0xb7, 0xde, 0x0d, 0x37, 0x61, 0x52, 0x00, 0x8a, 0x2b, 0x11, 0xbb, 0x42, 0x25, 0x27,
+ 0xa5, 0x78, 0xc7, 0xbe, 0xcd, 0x2b, 0x51, 0x00, 0x86, 0x7d, 0x0b, 0x74, 0x88, 0x38, 0xec, 0x2a,
+ 0x3e, 0x1f, 0x8c, 0x40, 0xf7, 0x9d, 0x88, 0x73, 0x4d, 0x8e, 0xc5, 0x9c, 0x81, 0xfe, 0xa7, 0x6f,
+ 0xdc, 0x40, 0x07, 0x23, 0x65, 0xe7, 0xdf, 0x47, 0xfa, 0x9f, 0x3d, 0x8a, 0xa4, 0x35, 0x64, 0x32,
+ 0xd2, 0x4f, 0x89, 0x71, 0xbf, 0x02, 0x2a, 0xff, 0xfc, 0x3d, 0x36, 0xde, 0x70, 0x3b, 0x55, 0xdd,
+ 0xc4, 0x49, 0x1e, 0x6e, 0x7a, 0xe2, 0xc9, 0x5e, 0xb9, 0xe7, 0xe5, 0x79, 0xa8, 0xe7, 0xa9, 0x5e,
+ 0x85, 0x89, 0x50, 0xc3, 0x13, 0x4f, 0xf5, 0x0b, 0x8c, 0xaa, 0x18, 0xec, 0x77, 0xaa, 0xcb, 0x90,
+ 0xc6, 0xcd, 0x4b, 0x3c, 0xfc, 0x17, 0x19, 0x9c, 0x98, 0x57, 0x3f, 0x09, 0x39, 0xde, 0xb4, 0xc4,
+ 0x43, 0x7f, 0x89, 0x41, 0x3d, 0x08, 0x86, 0xf3, 0x86, 0x25, 0x1e, 0xfe, 0xcb, 0x1c, 0xce, 0x21,
+ 0x18, 0x3e, 0x7a, 0x08, 0xff, 0xe1, 0x57, 0xd2, 0x6c, 0xd3, 0xe1, 0xb1, 0xbb, 0x02, 0xe3, 0xac,
+ 0x53, 0x89, 0x47, 0x7f, 0x9e, 0xbd, 0x9c, 0x23, 0xaa, 0x17, 0x21, 0x33, 0x62, 0xc0, 0x7f, 0x8d,
+ 0x41, 0xa9, 0x7d, 0x75, 0x15, 0x0a, 0x81, 0xee, 0x24, 0x1e, 0xfe, 0xeb, 0x0c, 0x1e, 0x44, 0x61,
+ 0xd7, 0x59, 0x77, 0x12, 0x4f, 0xf0, 0x1b, 0xdc, 0x75, 0x86, 0xc0, 0x61, 0xe3, 0x8d, 0x49, 0x3c,
+ 0xfa, 0x37, 0x79, 0xd4, 0x39, 0xa4, 0xfa, 0x2c, 0xe4, 0xbd, 0xcd, 0x26, 0x1e, 0xff, 0x5b, 0x0c,
+ 0xef, 0x63, 0x70, 0x04, 0x02, 0x9b, 0x5d, 0x3c, 0xc5, 0x6f, 0xf3, 0x08, 0x04, 0x50, 0x78, 0x19,
+ 0x45, 0x1b, 0x98, 0x78, 0xa6, 0xdf, 0xe1, 0xcb, 0x28, 0xd2, 0xbf, 0xe0, 0xd9, 0x24, 0x35, 0x3f,
+ 0x9e, 0xe2, 0x77, 0xf9, 0x6c, 0x12, 0x7b, 0xec, 0x46, 0xb4, 0x23, 0x88, 0xe7, 0xf8, 0x3d, 0xee,
+ 0x46, 0xa4, 0x21, 0xa8, 0xee, 0x80, 0x38, 0xd8, 0x0d, 0xc4, 0xf3, 0xbd, 0xca, 0xf8, 0xa6, 0x06,
+ 0x9a, 0x81, 0xea, 0xf3, 0x70, 0x62, 0x78, 0x27, 0x10, 0xcf, 0xfa, 0x85, 0x7b, 0x91, 0xb3, 0x5b,
+ 0xb0, 0x11, 0xa8, 0xee, 0xfa, 0x5b, 0x4a, 0xb0, 0x0b, 0x88, 0xa7, 0x7d, 0xed, 0x5e, 0xb8, 0x70,
+ 0x07, 0x9b, 0x80, 0x6a, 0x0d, 0xc0, 0xdf, 0x80, 0xe3, 0xb9, 0x5e, 0x67, 0x5c, 0x01, 0x10, 0x5e,
+ 0x1a, 0x6c, 0xff, 0x8d, 0xc7, 0x7f, 0x91, 0x2f, 0x0d, 0x86, 0xc0, 0x4b, 0x83, 0x6f, 0xbd, 0xf1,
+ 0xe8, 0x37, 0xf8, 0xd2, 0xe0, 0x10, 0x9c, 0xd9, 0x81, 0xdd, 0x2d, 0x9e, 0xe1, 0x4b, 0x3c, 0xb3,
+ 0x03, 0xa8, 0xea, 0x36, 0x4c, 0x0d, 0x6c, 0x88, 0xf1, 0x54, 0x5f, 0x66, 0x54, 0x42, 0x74, 0x3f,
+ 0x0c, 0x6e, 0x5e, 0x6c, 0x33, 0x8c, 0x67, 0xfb, 0xa3, 0xc8, 0xe6, 0xc5, 0xf6, 0xc2, 0xea, 0x15,
+ 0xc8, 0x19, 0x7d, 0x5d, 0xc7, 0x8b, 0x47, 0xbc, 0xff, 0x2f, 0xf7, 0xca, 0xff, 0xf6, 0x01, 0x8b,
+ 0x0e, 0x07, 0x54, 0x97, 0x21, 0x83, 0x7a, 0x2d, 0xd4, 0x8e, 0x43, 0xfe, 0xfb, 0x07, 0xbc, 0x60,
+ 0x62, 0xeb, 0xea, 0xb3, 0x00, 0xf4, 0x6a, 0x84, 0x7c, 0xf6, 0x8b, 0xc1, 0xfe, 0xc7, 0x07, 0xec,
+ 0x37, 0x35, 0x3e, 0xc4, 0x27, 0xa0, 0xbf, 0xd0, 0xb9, 0x3f, 0xc1, 0xbb, 0x61, 0x02, 0x32, 0x23,
+ 0x97, 0x61, 0xfc, 0xba, 0x63, 0x1a, 0xae, 0xd2, 0x8d, 0x43, 0xff, 0x27, 0x43, 0x73, 0x7b, 0x1c,
+ 0xb0, 0x9e, 0x69, 0x23, 0x57, 0xe9, 0x3a, 0x71, 0xd8, 0xff, 0x62, 0x58, 0x0f, 0x80, 0xc1, 0xaa,
+ 0xe2, 0xb8, 0xa3, 0x8c, 0xfb, 0xbf, 0x39, 0x98, 0x03, 0xb0, 0xd3, 0xf8, 0xef, 0x1b, 0xe8, 0x20,
+ 0x0e, 0xfb, 0x1e, 0x77, 0x9a, 0xd9, 0x57, 0x3f, 0x09, 0x79, 0xfc, 0x27, 0xfd, 0xa1, 0x5c, 0x0c,
+ 0xf8, 0x7f, 0x18, 0xd8, 0x47, 0xe0, 0x37, 0x3b, 0x6e, 0xdb, 0xd5, 0xe2, 0x83, 0xfd, 0xbf, 0x6c,
+ 0xa6, 0xb9, 0x7d, 0xb5, 0x06, 0x05, 0xc7, 0x6d, 0xb7, 0xfb, 0xac, 0x3f, 0x8d, 0x81, 0xff, 0xdf,
+ 0x07, 0xde, 0x95, 0x85, 0x87, 0xc1, 0xb3, 0x7d, 0xeb, 0x86, 0x6b, 0x99, 0xe4, 0x33, 0x47, 0x1c,
+ 0xc3, 0x3d, 0xc6, 0x10, 0x80, 0xac, 0xd4, 0x87, 0x5f, 0xdf, 0xc2, 0xba, 0xb9, 0x6e, 0xd2, 0x8b,
+ 0xdb, 0x97, 0xe6, 0xe2, 0x6f, 0x60, 0xe1, 0xd5, 0x0c, 0xcc, 0xaa, 0x66, 0xaf, 0x65, 0x3a, 0xe7,
+ 0xbc, 0x72, 0x7c, 0xce, 0x34, 0x18, 0xa3, 0x98, 0x32, 0x0d, 0x34, 0x7b, 0xbc, 0x9b, 0xdc, 0xb9,
+ 0x53, 0x90, 0x69, 0xf6, 0x5b, 0xad, 0x03, 0x51, 0x80, 0x94, 0xd3, 0x6f, 0xb1, 0x9f, 0x5b, 0xe1,
+ 0x3f, 0xe7, 0x7e, 0x90, 0x82, 0x42, 0x53, 0xe9, 0x59, 0x3a, 0x6a, 0x18, 0xa8, 0xd1, 0x11, 0xcb,
+ 0x90, 0x25, 0x03, 0x7d, 0x86, 0x18, 0x25, 0xae, 0x8d, 0x49, 0xec, 0xd9, 0xd3, 0x2c, 0x92, 0x1b,
+ 0xee, 0xa4, 0xa7, 0x59, 0xf4, 0x34, 0xe7, 0xe9, 0x05, 0xb7, 0xa7, 0x39, 0xef, 0x69, 0x96, 0xc8,
+ 0x35, 0x77, 0xca, 0xd3, 0x2c, 0x79, 0x9a, 0x65, 0xf2, 0x19, 0x67, 0xc2, 0xd3, 0x2c, 0x7b, 0x9a,
+ 0x0b, 0xe4, 0xc3, 0x4d, 0xda, 0xd3, 0x5c, 0xf0, 0x34, 0x17, 0xc9, 0xf7, 0x9a, 0x29, 0x4f, 0x73,
+ 0xd1, 0xd3, 0x5c, 0x22, 0xdf, 0x68, 0x44, 0x4f, 0x73, 0xc9, 0xd3, 0x5c, 0x26, 0xbf, 0xaa, 0x1a,
+ 0xf7, 0x34, 0x97, 0xc5, 0x59, 0x18, 0xa7, 0x23, 0x7b, 0x9a, 0x7c, 0xc8, 0x9f, 0xbc, 0x36, 0x26,
+ 0x71, 0x81, 0xaf, 0x7b, 0x86, 0xfc, 0x72, 0x2a, 0xeb, 0xeb, 0x9e, 0xf1, 0x75, 0x8b, 0xe4, 0x3f,
+ 0x70, 0x08, 0xbe, 0x6e, 0xd1, 0xd7, 0x9d, 0x2f, 0x4f, 0xe0, 0xfc, 0xf0, 0x75, 0xe7, 0x7d, 0xdd,
+ 0x52, 0xb9, 0x84, 0xe3, 0xef, 0xeb, 0x96, 0x7c, 0xdd, 0x72, 0x79, 0xf2, 0x4c, 0x62, 0xbe, 0xe8,
+ 0xeb, 0x96, 0xc5, 0xa7, 0xa0, 0xe0, 0xf4, 0x5b, 0x32, 0xab, 0xf4, 0xe4, 0x17, 0x5a, 0x85, 0x45,
+ 0x58, 0xc0, 0x19, 0x41, 0x26, 0xf5, 0xda, 0x98, 0x04, 0x4e, 0xbf, 0xc5, 0x0a, 0xf1, 0x4a, 0x11,
+ 0xc8, 0xfd, 0x93, 0x4c, 0x7e, 0x58, 0xbd, 0xb2, 0xf6, 0xd6, 0xdd, 0xca, 0xd8, 0xf7, 0xee, 0x56,
+ 0xc6, 0xfe, 0xe5, 0x6e, 0x65, 0xec, 0xed, 0xbb, 0x95, 0xc4, 0x7b, 0x77, 0x2b, 0x89, 0xf7, 0xef,
+ 0x56, 0x12, 0x77, 0x0e, 0x2b, 0x89, 0xaf, 0x1e, 0x56, 0x12, 0x5f, 0x3f, 0xac, 0x24, 0xbe, 0x75,
+ 0x58, 0x49, 0xbc, 0x75, 0x58, 0x49, 0x7c, 0xef, 0xb0, 0x32, 0xf6, 0xf6, 0x61, 0x25, 0xf1, 0xa3,
+ 0xc3, 0xca, 0xd8, 0x7b, 0x87, 0x95, 0xc4, 0xfb, 0x87, 0x95, 0xb1, 0x3b, 0x3f, 0xac, 0x8c, 0xb5,
+ 0xb2, 0x24, 0x8d, 0xce, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xed, 0xb5, 0xb7, 0x77, 0x8f,
+ 0x35, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -2853,35 +2887,3 @@ func valueToStringOne(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
-
-func init() { proto.RegisterFile("combos/marshaler/one.proto", fileDescriptor_one_c146381302ae1a39) }
-
-var fileDescriptor_one_c146381302ae1a39 = []byte{
- // 407 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0xbf, 0x4f, 0x1b, 0x31,
- 0x14, 0x07, 0x70, 0x3f, 0x8e, 0x24, 0xe0, 0x84, 0x92, 0xde, 0xf4, 0x9a, 0xe1, 0xc9, 0x62, 0xf2,
- 0x42, 0xd2, 0xdc, 0x25, 0xfc, 0x58, 0x51, 0x55, 0x65, 0xa9, 0x90, 0xc2, 0x1f, 0x80, 0x62, 0xea,
- 0x04, 0xa4, 0x5c, 0x8c, 0x72, 0x77, 0x43, 0x37, 0xfe, 0x9c, 0x8e, 0x1d, 0xfb, 0x27, 0x30, 0x32,
- 0x76, 0xe8, 0xc0, 0xb9, 0x4b, 0x47, 0x46, 0xc6, 0x2a, 0x97, 0xf2, 0xbc, 0xbd, 0xaf, 0x3f, 0xf6,
- 0x60, 0xfb, 0x2b, 0x7b, 0x37, 0x2e, 0x33, 0x2e, 0x1f, 0x64, 0xb3, 0x75, 0x7e, 0x3b, 0x5b, 0xda,
- 0xf5, 0xc0, 0xad, 0x6c, 0xff, 0x7e, 0xed, 0x0a, 0x17, 0x47, 0x6e, 0x65, 0x7b, 0xc7, 0x8b, 0xbb,
- 0xe2, 0xb6, 0x34, 0xfd, 0x1b, 0x97, 0x0d, 0x16, 0x6e, 0xe1, 0x06, 0xb5, 0x99, 0x72, 0x5e, 0xa7,
- 0x3a, 0xd4, 0xd3, 0xf6, 0xcc, 0xd1, 0x07, 0xd9, 0xb8, 0x2a, 0x8d, 0xf9, 0x16, 0x77, 0x65, 0x94,
- 0x97, 0x06, 0x41, 0x81, 0xde, 0x9f, 0x6e, 0xc6, 0xa3, 0xdf, 0x91, 0x6c, 0x5f, 0xcd, 0xb2, 0xfb,
- 0xa5, 0xbd, 0x5c, 0xd9, 0xcb, 0x79, 0x8c, 0xb2, 0xf9, 0xf9, 0xce, 0x2e, 0xbf, 0x0e, 0xeb, 0x4d,
- 0x30, 0x11, 0xd3, 0xff, 0x99, 0x25, 0xc1, 0x1d, 0x05, 0x7a, 0x87, 0x25, 0x61, 0x49, 0x31, 0x52,
- 0xa0, 0x1b, 0x2c, 0x29, 0xcb, 0x08, 0x77, 0x15, 0xe8, 0x88, 0x65, 0xc4, 0x32, 0xc6, 0x86, 0x02,
- 0x7d, 0xc0, 0x32, 0x66, 0x39, 0xc1, 0xa6, 0x02, 0xbd, 0xcb, 0x72, 0xc2, 0x72, 0x8a, 0x2d, 0x05,
- 0xfa, 0x3d, 0xcb, 0x29, 0xcb, 0x19, 0xee, 0x29, 0xd0, 0x31, 0xcb, 0x19, 0xcb, 0x39, 0xee, 0x2b,
- 0xd0, 0x2d, 0x96, 0xf3, 0xb8, 0x27, 0x5b, 0xdb, 0x9b, 0x7d, 0x44, 0xa9, 0x40, 0x1f, 0x4e, 0xc4,
- 0xf4, 0x6d, 0x21, 0xd8, 0x10, 0xdb, 0x0a, 0x74, 0x33, 0xd8, 0x30, 0x58, 0x82, 0x1d, 0x05, 0xba,
- 0x1b, 0x2c, 0x09, 0x96, 0xe2, 0x81, 0x02, 0xbd, 0x17, 0x2c, 0x0d, 0x36, 0xc2, 0x77, 0x9b, 0xf7,
- 0x0f, 0x36, 0x0a, 0x36, 0xc6, 0x43, 0x05, 0xba, 0x13, 0x6c, 0x1c, 0x1f, 0xcb, 0x76, 0x5e, 0x9a,
- 0xeb, 0xcc, 0xe6, 0xf9, 0x6c, 0x61, 0xb1, 0xab, 0x40, 0xb7, 0x13, 0xd9, 0xdf, 0x34, 0xa2, 0xfe,
- 0xd4, 0x89, 0x98, 0xca, 0xbc, 0x34, 0x5f, 0xb6, 0x7e, 0xd1, 0x91, 0xb2, 0xb0, 0x79, 0x71, 0xed,
- 0x56, 0xd6, 0xcd, 0x2f, 0x3e, 0x3d, 0x56, 0x24, 0x9e, 0x2a, 0x12, 0xbf, 0x2a, 0x12, 0xcf, 0x15,
- 0xc1, 0x4b, 0x45, 0xf0, 0x5a, 0x11, 0x3c, 0x78, 0x82, 0xef, 0x9e, 0xe0, 0x87, 0x27, 0xf8, 0xe9,
- 0x09, 0x1e, 0x3d, 0xc1, 0x93, 0x27, 0xf1, 0xec, 0x09, 0xfe, 0x7a, 0x12, 0x2f, 0x9e, 0xe0, 0xd5,
- 0x93, 0x78, 0xf8, 0x43, 0xc2, 0x34, 0xeb, 0x1a, 0xa5, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x34,
- 0x55, 0x0b, 0x2b, 0x98, 0x02, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/one.pb.go
index 04724111c8..93140da104 100644
--- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/one.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/one.pb.go
@@ -3,19 +3,19 @@
package one
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -38,7 +38,7 @@ type Subby struct {
func (m *Subby) Reset() { *m = Subby{} }
func (*Subby) ProtoMessage() {}
func (*Subby) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_827a0063df79db69, []int{0}
+ return fileDescriptor_e4ee9759a7520144, []int{0}
}
func (m *Subby) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Subby.Unmarshal(m, b)
@@ -46,8 +46,8 @@ func (m *Subby) XXX_Unmarshal(b []byte) error {
func (m *Subby) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Subby.Marshal(b, m, deterministic)
}
-func (dst *Subby) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Subby.Merge(dst, src)
+func (m *Subby) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Subby.Merge(m, src)
}
func (m *Subby) XXX_Size() int {
return xxx_messageInfo_Subby.Size(m)
@@ -85,7 +85,7 @@ type SampleOneOf struct {
func (m *SampleOneOf) Reset() { *m = SampleOneOf{} }
func (*SampleOneOf) ProtoMessage() {}
func (*SampleOneOf) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_827a0063df79db69, []int{1}
+ return fileDescriptor_e4ee9759a7520144, []int{1}
}
func (m *SampleOneOf) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SampleOneOf.Unmarshal(m, b)
@@ -93,8 +93,8 @@ func (m *SampleOneOf) XXX_Unmarshal(b []byte) error {
func (m *SampleOneOf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SampleOneOf.Marshal(b, m, deterministic)
}
-func (dst *SampleOneOf) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SampleOneOf.Merge(dst, src)
+func (m *SampleOneOf) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SampleOneOf.Merge(m, src)
}
func (m *SampleOneOf) XXX_Size() int {
return xxx_messageInfo_SampleOneOf.Size(m)
@@ -572,6 +572,39 @@ func init() {
proto.RegisterType((*Subby)(nil), "one.Subby")
proto.RegisterType((*SampleOneOf)(nil), "one.SampleOneOf")
}
+
+func init() { proto.RegisterFile("combos/neither/one.proto", fileDescriptor_e4ee9759a7520144) }
+
+var fileDescriptor_e4ee9759a7520144 = []byte{
+ // 405 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0xbf, 0x4f, 0x1b, 0x31,
+ 0x14, 0x07, 0x70, 0x3f, 0x8e, 0x24, 0xe0, 0x84, 0x92, 0xde, 0xf4, 0xca, 0xf0, 0x64, 0x31, 0x79,
+ 0x21, 0x69, 0xee, 0x12, 0x7e, 0xac, 0xa8, 0xaa, 0xb2, 0x54, 0x48, 0xe1, 0x0f, 0x40, 0x98, 0x3a,
+ 0x21, 0x12, 0x77, 0x46, 0xdc, 0xdd, 0xd0, 0x8d, 0x3f, 0xa7, 0x63, 0xc7, 0xfe, 0x09, 0x8c, 0x8c,
+ 0x1d, 0x3a, 0x70, 0xee, 0xd2, 0x91, 0x31, 0x63, 0x95, 0x4b, 0x79, 0xde, 0xde, 0xd7, 0x1f, 0x7b,
+ 0xb0, 0xfd, 0x95, 0x78, 0xe3, 0x32, 0xe3, 0x8a, 0x61, 0x6e, 0x97, 0xe5, 0xad, 0x7d, 0x18, 0xba,
+ 0xdc, 0x0e, 0xee, 0x1f, 0x5c, 0xe9, 0xe2, 0xc8, 0xe5, 0xf6, 0xe0, 0x68, 0xb1, 0x2c, 0x6f, 0x2b,
+ 0x33, 0xb8, 0x71, 0xd9, 0x70, 0xe1, 0x16, 0x6e, 0xd8, 0x98, 0xa9, 0xe6, 0x4d, 0x6a, 0x42, 0x33,
+ 0x6d, 0xce, 0x1c, 0x7e, 0x90, 0xad, 0xcb, 0xca, 0x98, 0x6f, 0x71, 0x5f, 0x46, 0x45, 0x65, 0x10,
+ 0x14, 0xe8, 0xdd, 0xd9, 0x7a, 0x3c, 0xfc, 0x1d, 0xc9, 0xee, 0xe5, 0x75, 0x76, 0x7f, 0x67, 0x2f,
+ 0x72, 0x7b, 0x31, 0x8f, 0x51, 0xb6, 0x3f, 0x2f, 0xed, 0xdd, 0xd7, 0x51, 0xb3, 0x09, 0xa6, 0x62,
+ 0xf6, 0x3f, 0xb3, 0x24, 0xb8, 0xa5, 0x40, 0x6f, 0xb1, 0x24, 0x2c, 0x29, 0x46, 0x0a, 0x74, 0x8b,
+ 0x25, 0x65, 0x19, 0xe3, 0xb6, 0x02, 0x1d, 0xb1, 0x8c, 0x59, 0x26, 0xd8, 0x52, 0xa0, 0xf7, 0x58,
+ 0x26, 0x2c, 0xc7, 0xd8, 0x56, 0xa0, 0xb7, 0x59, 0x8e, 0x59, 0x4e, 0xb0, 0xa3, 0x40, 0xbf, 0x67,
+ 0x39, 0x61, 0x39, 0xc5, 0x1d, 0x05, 0x3a, 0x66, 0x39, 0x65, 0x39, 0xc3, 0x5d, 0x05, 0xba, 0xc3,
+ 0x72, 0x16, 0x1f, 0xc8, 0xce, 0xe6, 0x66, 0x1f, 0x51, 0x2a, 0xd0, 0xfb, 0x53, 0x31, 0x7b, 0x5b,
+ 0x08, 0x36, 0xc2, 0xae, 0x02, 0xdd, 0x0e, 0x36, 0x0a, 0x96, 0x60, 0x4f, 0x81, 0xee, 0x07, 0x4b,
+ 0x82, 0xa5, 0xb8, 0xa7, 0x40, 0xef, 0x04, 0x4b, 0x83, 0x8d, 0xf1, 0xdd, 0xfa, 0xfd, 0x83, 0x8d,
+ 0x83, 0x4d, 0x70, 0x5f, 0x81, 0xee, 0x05, 0x9b, 0xc4, 0x47, 0xb2, 0x5b, 0x54, 0xe6, 0x2a, 0xb3,
+ 0x45, 0x71, 0xbd, 0xb0, 0xd8, 0x57, 0xa0, 0xbb, 0x89, 0x1c, 0xac, 0x1b, 0xd1, 0x7c, 0xea, 0x54,
+ 0xcc, 0x64, 0x51, 0x99, 0x2f, 0x1b, 0x3f, 0xef, 0x49, 0x59, 0xda, 0xa2, 0xbc, 0x72, 0xb9, 0x75,
+ 0xf3, 0xf3, 0x4f, 0x4f, 0x35, 0x89, 0xe7, 0x9a, 0xc4, 0xaf, 0x9a, 0xc4, 0x4b, 0x4d, 0xf0, 0x5a,
+ 0x13, 0xac, 0x6a, 0x82, 0x47, 0x4f, 0xf0, 0xdd, 0x13, 0xfc, 0xf0, 0x04, 0x3f, 0x3d, 0xc1, 0x93,
+ 0x27, 0xf1, 0xec, 0x49, 0xbc, 0x78, 0x82, 0xbf, 0x9e, 0xc4, 0xab, 0x27, 0x58, 0x79, 0x12, 0x8f,
+ 0x7f, 0x48, 0x98, 0x76, 0x53, 0xa3, 0xf4, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd1, 0x04, 0xd2,
+ 0x98, 0x96, 0x02, 0x00, 0x00,
+}
+
func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return OneDescription()
}
@@ -581,263 +614,265 @@ func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_ge
func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4084 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x1b, 0xd7,
- 0x75, 0x26, 0x7e, 0x09, 0x1c, 0x80, 0xe0, 0x72, 0x49, 0x4b, 0x2b, 0x3a, 0x86, 0x24, 0xda, 0x8e,
- 0x69, 0xbb, 0x26, 0x6d, 0x4a, 0xd4, 0x0f, 0xd4, 0xc4, 0x05, 0x49, 0x88, 0xa2, 0x4b, 0x12, 0xcc,
- 0x82, 0x8c, 0x7f, 0x32, 0x9d, 0x9d, 0xc5, 0xe2, 0x02, 0x5c, 0x69, 0xb1, 0xbb, 0xd9, 0x5d, 0x48,
- 0xa6, 0xa6, 0x0f, 0xea, 0xb8, 0x3f, 0x93, 0xe9, 0xf4, 0xbf, 0xd3, 0x26, 0xae, 0xe3, 0x36, 0xe9,
- 0x34, 0x4e, 0xd3, 0xbf, 0xa4, 0x69, 0xd3, 0x24, 0x7d, 0xe9, 0x4b, 0x5a, 0x3f, 0x75, 0x92, 0xb7,
- 0x3e, 0xe4, 0xc1, 0x62, 0x3c, 0xd3, 0xb4, 0x75, 0x1b, 0xb7, 0xd5, 0x83, 0x67, 0xfc, 0x92, 0xb9,
- 0x7f, 0xbb, 0x8b, 0x05, 0xa8, 0x05, 0x33, 0x63, 0xe7, 0x49, 0xdc, 0x73, 0xce, 0xf7, 0xed, 0xbd,
- 0xe7, 0x9e, 0x7b, 0xce, 0xb9, 0x77, 0x21, 0xf8, 0xd1, 0x65, 0x38, 0xd3, 0xb1, 0xac, 0x8e, 0x81,
- 0x16, 0x6d, 0xc7, 0xf2, 0xac, 0x66, 0xaf, 0xbd, 0xd8, 0x42, 0xae, 0xe6, 0xe8, 0xb6, 0x67, 0x39,
- 0x0b, 0x44, 0x26, 0x4e, 0x52, 0x8b, 0x05, 0x6e, 0x31, 0xb7, 0x05, 0x53, 0x57, 0x75, 0x03, 0xad,
- 0xf9, 0x86, 0x0d, 0xe4, 0x89, 0x97, 0x20, 0xdd, 0xd6, 0x0d, 0x24, 0x25, 0xce, 0xa4, 0xe6, 0x0b,
- 0x4b, 0x8f, 0x2c, 0x44, 0x40, 0x0b, 0xfd, 0x88, 0x1d, 0x2c, 0x96, 0x09, 0x62, 0xee, 0xed, 0x34,
- 0x4c, 0x0f, 0xd1, 0x8a, 0x22, 0xa4, 0x4d, 0xb5, 0x8b, 0x19, 0x13, 0xf3, 0x79, 0x99, 0xfc, 0x2d,
- 0x4a, 0x30, 0x6e, 0xab, 0xda, 0x0d, 0xb5, 0x83, 0xa4, 0x24, 0x11, 0xf3, 0x47, 0xb1, 0x0c, 0xd0,
- 0x42, 0x36, 0x32, 0x5b, 0xc8, 0xd4, 0x0e, 0xa4, 0xd4, 0x99, 0xd4, 0x7c, 0x5e, 0x0e, 0x49, 0xc4,
- 0x27, 0x61, 0xca, 0xee, 0x35, 0x0d, 0x5d, 0x53, 0x42, 0x66, 0x70, 0x26, 0x35, 0x9f, 0x91, 0x05,
- 0xaa, 0x58, 0x0b, 0x8c, 0x1f, 0x83, 0xc9, 0x5b, 0x48, 0xbd, 0x11, 0x36, 0x2d, 0x10, 0xd3, 0x12,
- 0x16, 0x87, 0x0c, 0x57, 0xa1, 0xd8, 0x45, 0xae, 0xab, 0x76, 0x90, 0xe2, 0x1d, 0xd8, 0x48, 0x4a,
- 0x93, 0xd9, 0x9f, 0x19, 0x98, 0x7d, 0x74, 0xe6, 0x05, 0x86, 0xda, 0x3d, 0xb0, 0x91, 0x58, 0x85,
- 0x3c, 0x32, 0x7b, 0x5d, 0xca, 0x90, 0x39, 0xc2, 0x7f, 0x35, 0xb3, 0xd7, 0x8d, 0xb2, 0xe4, 0x30,
- 0x8c, 0x51, 0x8c, 0xbb, 0xc8, 0xb9, 0xa9, 0x6b, 0x48, 0xca, 0x12, 0x82, 0xc7, 0x06, 0x08, 0x1a,
- 0x54, 0x1f, 0xe5, 0xe0, 0x38, 0x71, 0x15, 0xf2, 0xe8, 0x65, 0x0f, 0x99, 0xae, 0x6e, 0x99, 0xd2,
- 0x38, 0x21, 0x79, 0x74, 0xc8, 0x2a, 0x22, 0xa3, 0x15, 0xa5, 0x08, 0x70, 0xe2, 0x05, 0x18, 0xb7,
- 0x6c, 0x4f, 0xb7, 0x4c, 0x57, 0xca, 0x9d, 0x49, 0xcc, 0x17, 0x96, 0x3e, 0x32, 0x34, 0x10, 0xea,
- 0xd4, 0x46, 0xe6, 0xc6, 0xe2, 0x06, 0x08, 0xae, 0xd5, 0x73, 0x34, 0xa4, 0x68, 0x56, 0x0b, 0x29,
- 0xba, 0xd9, 0xb6, 0xa4, 0x3c, 0x21, 0x38, 0x3d, 0x38, 0x11, 0x62, 0xb8, 0x6a, 0xb5, 0xd0, 0x86,
- 0xd9, 0xb6, 0xe4, 0x92, 0xdb, 0xf7, 0x2c, 0x9e, 0x80, 0xac, 0x7b, 0x60, 0x7a, 0xea, 0xcb, 0x52,
- 0x91, 0x44, 0x08, 0x7b, 0x9a, 0xfb, 0x56, 0x16, 0x26, 0x47, 0x09, 0xb1, 0x2b, 0x90, 0x69, 0xe3,
- 0x59, 0x4a, 0xc9, 0xe3, 0xf8, 0x80, 0x62, 0xfa, 0x9d, 0x98, 0xfd, 0x09, 0x9d, 0x58, 0x85, 0x82,
- 0x89, 0x5c, 0x0f, 0xb5, 0x68, 0x44, 0xa4, 0x46, 0x8c, 0x29, 0xa0, 0xa0, 0xc1, 0x90, 0x4a, 0xff,
- 0x44, 0x21, 0xf5, 0x02, 0x4c, 0xfa, 0x43, 0x52, 0x1c, 0xd5, 0xec, 0xf0, 0xd8, 0x5c, 0x8c, 0x1b,
- 0xc9, 0x42, 0x8d, 0xe3, 0x64, 0x0c, 0x93, 0x4b, 0xa8, 0xef, 0x59, 0x5c, 0x03, 0xb0, 0x4c, 0x64,
- 0xb5, 0x95, 0x16, 0xd2, 0x0c, 0x29, 0x77, 0x84, 0x97, 0xea, 0xd8, 0x64, 0xc0, 0x4b, 0x16, 0x95,
- 0x6a, 0x86, 0x78, 0x39, 0x08, 0xb5, 0xf1, 0x23, 0x22, 0x65, 0x8b, 0x6e, 0xb2, 0x81, 0x68, 0xdb,
- 0x83, 0x92, 0x83, 0x70, 0xdc, 0xa3, 0x16, 0x9b, 0x59, 0x9e, 0x0c, 0x62, 0x21, 0x76, 0x66, 0x32,
- 0x83, 0xd1, 0x89, 0x4d, 0x38, 0xe1, 0x47, 0xf1, 0x61, 0xf0, 0x05, 0x0a, 0x09, 0x2b, 0x20, 0x59,
- 0xa8, 0xc8, 0x85, 0xdb, 0x6a, 0x17, 0xcd, 0xde, 0x86, 0x52, 0xbf, 0x7b, 0xc4, 0x19, 0xc8, 0xb8,
- 0x9e, 0xea, 0x78, 0x24, 0x0a, 0x33, 0x32, 0x7d, 0x10, 0x05, 0x48, 0x21, 0xb3, 0x45, 0xb2, 0x5c,
- 0x46, 0xc6, 0x7f, 0x8a, 0x3f, 0x17, 0x4c, 0x38, 0x45, 0x26, 0xfc, 0xd1, 0xc1, 0x15, 0xed, 0x63,
- 0x8e, 0xce, 0x7b, 0xf6, 0x22, 0x4c, 0xf4, 0x4d, 0x60, 0xd4, 0x57, 0xcf, 0xfd, 0x22, 0x3c, 0x30,
- 0x94, 0x5a, 0x7c, 0x01, 0x66, 0x7a, 0xa6, 0x6e, 0x7a, 0xc8, 0xb1, 0x1d, 0x84, 0x23, 0x96, 0xbe,
- 0x4a, 0xfa, 0xf7, 0xf1, 0x23, 0x62, 0x6e, 0x2f, 0x6c, 0x4d, 0x59, 0xe4, 0xe9, 0xde, 0xa0, 0xf0,
- 0x89, 0x7c, 0xee, 0x87, 0xe3, 0xc2, 0x9d, 0x3b, 0x77, 0xee, 0x24, 0xe7, 0x3e, 0x9b, 0x85, 0x99,
- 0x61, 0x7b, 0x66, 0xe8, 0xf6, 0x3d, 0x01, 0x59, 0xb3, 0xd7, 0x6d, 0x22, 0x87, 0x38, 0x29, 0x23,
- 0xb3, 0x27, 0xb1, 0x0a, 0x19, 0x43, 0x6d, 0x22, 0x43, 0x4a, 0x9f, 0x49, 0xcc, 0x97, 0x96, 0x9e,
- 0x1c, 0x69, 0x57, 0x2e, 0x6c, 0x62, 0x88, 0x4c, 0x91, 0xe2, 0xc7, 0x21, 0xcd, 0x52, 0x34, 0x66,
- 0x78, 0x62, 0x34, 0x06, 0xbc, 0x97, 0x64, 0x82, 0x13, 0x1f, 0x84, 0x3c, 0xfe, 0x97, 0xc6, 0x46,
- 0x96, 0x8c, 0x39, 0x87, 0x05, 0x38, 0x2e, 0xc4, 0x59, 0xc8, 0x91, 0x6d, 0xd2, 0x42, 0xbc, 0xb4,
- 0xf9, 0xcf, 0x38, 0xb0, 0x5a, 0xa8, 0xad, 0xf6, 0x0c, 0x4f, 0xb9, 0xa9, 0x1a, 0x3d, 0x44, 0x02,
- 0x3e, 0x2f, 0x17, 0x99, 0xf0, 0x93, 0x58, 0x26, 0x9e, 0x86, 0x02, 0xdd, 0x55, 0xba, 0xd9, 0x42,
- 0x2f, 0x93, 0xec, 0x99, 0x91, 0xe9, 0x46, 0xdb, 0xc0, 0x12, 0xfc, 0xfa, 0xeb, 0xae, 0x65, 0xf2,
- 0xd0, 0x24, 0xaf, 0xc0, 0x02, 0xf2, 0xfa, 0x8b, 0xd1, 0xc4, 0xfd, 0xd0, 0xf0, 0xe9, 0x45, 0x63,
- 0x6a, 0xee, 0x1b, 0x49, 0x48, 0x93, 0x7c, 0x31, 0x09, 0x85, 0xdd, 0x17, 0x77, 0x6a, 0xca, 0x5a,
- 0x7d, 0x6f, 0x65, 0xb3, 0x26, 0x24, 0xc4, 0x12, 0x00, 0x11, 0x5c, 0xdd, 0xac, 0x57, 0x77, 0x85,
- 0xa4, 0xff, 0xbc, 0xb1, 0xbd, 0x7b, 0xe1, 0xbc, 0x90, 0xf2, 0x01, 0x7b, 0x54, 0x90, 0x0e, 0x1b,
- 0x9c, 0x5b, 0x12, 0x32, 0xa2, 0x00, 0x45, 0x4a, 0xb0, 0xf1, 0x42, 0x6d, 0xed, 0xc2, 0x79, 0x21,
- 0xdb, 0x2f, 0x39, 0xb7, 0x24, 0x8c, 0x8b, 0x13, 0x90, 0x27, 0x92, 0x95, 0x7a, 0x7d, 0x53, 0xc8,
- 0xf9, 0x9c, 0x8d, 0x5d, 0x79, 0x63, 0x7b, 0x5d, 0xc8, 0xfb, 0x9c, 0xeb, 0x72, 0x7d, 0x6f, 0x47,
- 0x00, 0x9f, 0x61, 0xab, 0xd6, 0x68, 0x54, 0xd7, 0x6b, 0x42, 0xc1, 0xb7, 0x58, 0x79, 0x71, 0xb7,
- 0xd6, 0x10, 0x8a, 0x7d, 0xc3, 0x3a, 0xb7, 0x24, 0x4c, 0xf8, 0xaf, 0xa8, 0x6d, 0xef, 0x6d, 0x09,
- 0x25, 0x71, 0x0a, 0x26, 0xe8, 0x2b, 0xf8, 0x20, 0x26, 0x23, 0xa2, 0x0b, 0xe7, 0x05, 0x21, 0x18,
- 0x08, 0x65, 0x99, 0xea, 0x13, 0x5c, 0x38, 0x2f, 0x88, 0x73, 0xab, 0x90, 0x21, 0xd1, 0x25, 0x8a,
- 0x50, 0xda, 0xac, 0xae, 0xd4, 0x36, 0x95, 0xfa, 0xce, 0xee, 0x46, 0x7d, 0xbb, 0xba, 0x29, 0x24,
- 0x02, 0x99, 0x5c, 0xfb, 0xc4, 0xde, 0x86, 0x5c, 0x5b, 0x13, 0x92, 0x61, 0xd9, 0x4e, 0xad, 0xba,
- 0x5b, 0x5b, 0x13, 0x52, 0x73, 0x1a, 0xcc, 0x0c, 0xcb, 0x93, 0x43, 0x77, 0x46, 0x68, 0x89, 0x93,
- 0x47, 0x2c, 0x31, 0xe1, 0x1a, 0x58, 0xe2, 0x1f, 0x24, 0x61, 0x7a, 0x48, 0xad, 0x18, 0xfa, 0x92,
- 0x67, 0x21, 0x43, 0x43, 0x94, 0x56, 0xcf, 0xc7, 0x87, 0x16, 0x1d, 0x12, 0xb0, 0x03, 0x15, 0x94,
- 0xe0, 0xc2, 0x1d, 0x44, 0xea, 0x88, 0x0e, 0x02, 0x53, 0x0c, 0xe4, 0xf4, 0x5f, 0x18, 0xc8, 0xe9,
- 0xb4, 0xec, 0x5d, 0x18, 0xa5, 0xec, 0x11, 0xd9, 0xf1, 0x72, 0x7b, 0x66, 0x48, 0x6e, 0xbf, 0x02,
- 0x53, 0x03, 0x44, 0x23, 0xe7, 0xd8, 0x57, 0x12, 0x20, 0x1d, 0xe5, 0x9c, 0x98, 0x4c, 0x97, 0xec,
- 0xcb, 0x74, 0x57, 0xa2, 0x1e, 0x3c, 0x7b, 0xf4, 0x22, 0x0c, 0xac, 0xf5, 0x1b, 0x09, 0x38, 0x31,
- 0xbc, 0x53, 0x1c, 0x3a, 0x86, 0x8f, 0x43, 0xb6, 0x8b, 0xbc, 0x7d, 0x8b, 0x77, 0x4b, 0x1f, 0x1d,
- 0x52, 0x83, 0xb1, 0x3a, 0xba, 0xd8, 0x0c, 0x15, 0x2e, 0xe2, 0xa9, 0xa3, 0xda, 0x3d, 0x3a, 0x9a,
- 0x81, 0x91, 0x7e, 0x26, 0x09, 0x0f, 0x0c, 0x25, 0x1f, 0x3a, 0xd0, 0x87, 0x00, 0x74, 0xd3, 0xee,
- 0x79, 0xb4, 0x23, 0xa2, 0x09, 0x36, 0x4f, 0x24, 0x24, 0x79, 0xe1, 0xe4, 0xd9, 0xf3, 0x7c, 0x7d,
- 0x8a, 0xe8, 0x81, 0x8a, 0x88, 0xc1, 0xa5, 0x60, 0xa0, 0x69, 0x32, 0xd0, 0xf2, 0x11, 0x33, 0x1d,
- 0x08, 0xcc, 0xa7, 0x41, 0xd0, 0x0c, 0x1d, 0x99, 0x9e, 0xe2, 0x7a, 0x0e, 0x52, 0xbb, 0xba, 0xd9,
- 0x21, 0x15, 0x24, 0x57, 0xc9, 0xb4, 0x55, 0xc3, 0x45, 0xf2, 0x24, 0x55, 0x37, 0xb8, 0x16, 0x23,
- 0x48, 0x00, 0x39, 0x21, 0x44, 0xb6, 0x0f, 0x41, 0xd5, 0x3e, 0x62, 0xee, 0xeb, 0x39, 0x28, 0x84,
- 0xfa, 0x6a, 0xf1, 0x2c, 0x14, 0xaf, 0xab, 0x37, 0x55, 0x85, 0x9f, 0x95, 0xa8, 0x27, 0x0a, 0x58,
- 0xb6, 0xc3, 0xce, 0x4b, 0x4f, 0xc3, 0x0c, 0x31, 0xb1, 0x7a, 0x1e, 0x72, 0x14, 0xcd, 0x50, 0x5d,
- 0x97, 0x38, 0x2d, 0x47, 0x4c, 0x45, 0xac, 0xab, 0x63, 0xd5, 0x2a, 0xd7, 0x88, 0xcb, 0x30, 0x4d,
- 0x10, 0xdd, 0x9e, 0xe1, 0xe9, 0xb6, 0x81, 0x14, 0x7c, 0x7a, 0x73, 0x49, 0x25, 0xf1, 0x47, 0x36,
- 0x85, 0x2d, 0xb6, 0x98, 0x01, 0x1e, 0x91, 0x2b, 0xae, 0xc1, 0x43, 0x04, 0xd6, 0x41, 0x26, 0x72,
- 0x54, 0x0f, 0x29, 0xe8, 0xd3, 0x3d, 0xd5, 0x70, 0x15, 0xd5, 0x6c, 0x29, 0xfb, 0xaa, 0xbb, 0x2f,
- 0xcd, 0x60, 0x82, 0x95, 0xa4, 0x94, 0x90, 0x4f, 0x61, 0xc3, 0x75, 0x66, 0x57, 0x23, 0x66, 0x55,
- 0xb3, 0x75, 0x4d, 0x75, 0xf7, 0xc5, 0x0a, 0x9c, 0x20, 0x2c, 0xae, 0xe7, 0xe8, 0x66, 0x47, 0xd1,
- 0xf6, 0x91, 0x76, 0x43, 0xe9, 0x79, 0xed, 0x4b, 0xd2, 0x83, 0xe1, 0xf7, 0x93, 0x11, 0x36, 0x88,
- 0xcd, 0x2a, 0x36, 0xd9, 0xf3, 0xda, 0x97, 0xc4, 0x06, 0x14, 0xf1, 0x62, 0x74, 0xf5, 0xdb, 0x48,
- 0x69, 0x5b, 0x0e, 0x29, 0x8d, 0xa5, 0x21, 0xa9, 0x29, 0xe4, 0xc1, 0x85, 0x3a, 0x03, 0x6c, 0x59,
- 0x2d, 0x54, 0xc9, 0x34, 0x76, 0x6a, 0xb5, 0x35, 0xb9, 0xc0, 0x59, 0xae, 0x5a, 0x0e, 0x0e, 0xa8,
- 0x8e, 0xe5, 0x3b, 0xb8, 0x40, 0x03, 0xaa, 0x63, 0x71, 0xf7, 0x2e, 0xc3, 0xb4, 0xa6, 0xd1, 0x39,
- 0xeb, 0x9a, 0xc2, 0xce, 0x58, 0xae, 0x24, 0xf4, 0x39, 0x4b, 0xd3, 0xd6, 0xa9, 0x01, 0x8b, 0x71,
- 0x57, 0xbc, 0x0c, 0x0f, 0x04, 0xce, 0x0a, 0x03, 0xa7, 0x06, 0x66, 0x19, 0x85, 0x2e, 0xc3, 0xb4,
- 0x7d, 0x30, 0x08, 0x14, 0xfb, 0xde, 0x68, 0x1f, 0x44, 0x61, 0x17, 0x61, 0xc6, 0xde, 0xb7, 0x07,
- 0x71, 0x4f, 0x84, 0x71, 0xa2, 0xbd, 0x6f, 0x47, 0x81, 0x8f, 0x92, 0x03, 0xb7, 0x83, 0x34, 0xd5,
- 0x43, 0x2d, 0xe9, 0x64, 0xd8, 0x3c, 0xa4, 0x10, 0x17, 0x41, 0xd0, 0x34, 0x05, 0x99, 0x6a, 0xd3,
- 0x40, 0x8a, 0xea, 0x20, 0x53, 0x75, 0xa5, 0xd3, 0x61, 0xe3, 0x92, 0xa6, 0xd5, 0x88, 0xb6, 0x4a,
- 0x94, 0xe2, 0x13, 0x30, 0x65, 0x35, 0xaf, 0x6b, 0x34, 0x24, 0x15, 0xdb, 0x41, 0x6d, 0xfd, 0x65,
- 0xe9, 0x11, 0xe2, 0xdf, 0x49, 0xac, 0x20, 0x01, 0xb9, 0x43, 0xc4, 0xe2, 0xe3, 0x20, 0x68, 0xee,
- 0xbe, 0xea, 0xd8, 0x24, 0x27, 0xbb, 0xb6, 0xaa, 0x21, 0xe9, 0x51, 0x6a, 0x4a, 0xe5, 0xdb, 0x5c,
- 0x8c, 0xb7, 0x84, 0x7b, 0x4b, 0x6f, 0x7b, 0x9c, 0xf1, 0x31, 0xba, 0x25, 0x88, 0x8c, 0xb1, 0xcd,
- 0x83, 0x80, 0x5d, 0xd1, 0xf7, 0xe2, 0x79, 0x62, 0x56, 0xb2, 0xf7, 0xed, 0xf0, 0x7b, 0x1f, 0x86,
- 0x09, 0x6c, 0x19, 0xbc, 0xf4, 0x71, 0xda, 0x90, 0xd9, 0xfb, 0xa1, 0x37, 0x7e, 0x60, 0xbd, 0xf1,
- 0x5c, 0x05, 0x8a, 0xe1, 0xf8, 0x14, 0xf3, 0x40, 0x23, 0x54, 0x48, 0xe0, 0x66, 0x65, 0xb5, 0xbe,
- 0x86, 0xdb, 0x8c, 0x97, 0x6a, 0x42, 0x12, 0xb7, 0x3b, 0x9b, 0x1b, 0xbb, 0x35, 0x45, 0xde, 0xdb,
- 0xde, 0xdd, 0xd8, 0xaa, 0x09, 0xa9, 0x70, 0x5f, 0xfd, 0x9d, 0x24, 0x94, 0xfa, 0x8f, 0x48, 0xe2,
- 0xcf, 0xc2, 0x49, 0x7e, 0x9f, 0xe1, 0x22, 0x4f, 0xb9, 0xa5, 0x3b, 0x64, 0xcb, 0x74, 0x55, 0x5a,
- 0xbe, 0xfc, 0x45, 0x9b, 0x61, 0x56, 0x0d, 0xe4, 0x3d, 0xaf, 0x3b, 0x78, 0x43, 0x74, 0x55, 0x4f,
- 0xdc, 0x84, 0xd3, 0xa6, 0xa5, 0xb8, 0x9e, 0x6a, 0xb6, 0x54, 0xa7, 0xa5, 0x04, 0x37, 0x49, 0x8a,
- 0xaa, 0x69, 0xc8, 0x75, 0x2d, 0x5a, 0xaa, 0x7c, 0x96, 0x8f, 0x98, 0x56, 0x83, 0x19, 0x07, 0x39,
- 0xbc, 0xca, 0x4c, 0x23, 0x01, 0x96, 0x3a, 0x2a, 0xc0, 0x1e, 0x84, 0x7c, 0x57, 0xb5, 0x15, 0x64,
- 0x7a, 0xce, 0x01, 0x69, 0x8c, 0x73, 0x72, 0xae, 0xab, 0xda, 0x35, 0xfc, 0xfc, 0xe1, 0x9c, 0x4f,
- 0xbe, 0x9f, 0x82, 0x62, 0xb8, 0x39, 0xc6, 0x67, 0x0d, 0x8d, 0xd4, 0x91, 0x04, 0xc9, 0x34, 0x0f,
- 0xdf, 0xb7, 0x95, 0x5e, 0x58, 0xc5, 0x05, 0xa6, 0x92, 0xa5, 0x2d, 0xab, 0x4c, 0x91, 0xb8, 0xb8,
- 0xe3, 0xdc, 0x82, 0x68, 0x8b, 0x90, 0x93, 0xd9, 0x93, 0xb8, 0x0e, 0xd9, 0xeb, 0x2e, 0xe1, 0xce,
- 0x12, 0xee, 0x47, 0xee, 0xcf, 0xfd, 0x5c, 0x83, 0x90, 0xe7, 0x9f, 0x6b, 0x28, 0xdb, 0x75, 0x79,
- 0xab, 0xba, 0x29, 0x33, 0xb8, 0x78, 0x0a, 0xd2, 0x86, 0x7a, 0xfb, 0xa0, 0xbf, 0x14, 0x11, 0xd1,
- 0xa8, 0x8e, 0x3f, 0x05, 0xe9, 0x5b, 0x48, 0xbd, 0xd1, 0x5f, 0x00, 0x88, 0xe8, 0x03, 0x0c, 0xfd,
- 0x45, 0xc8, 0x10, 0x7f, 0x89, 0x00, 0xcc, 0x63, 0xc2, 0x98, 0x98, 0x83, 0xf4, 0x6a, 0x5d, 0xc6,
- 0xe1, 0x2f, 0x40, 0x91, 0x4a, 0x95, 0x9d, 0x8d, 0xda, 0x6a, 0x4d, 0x48, 0xce, 0x2d, 0x43, 0x96,
- 0x3a, 0x01, 0x6f, 0x0d, 0xdf, 0x0d, 0xc2, 0x18, 0x7b, 0x64, 0x1c, 0x09, 0xae, 0xdd, 0xdb, 0x5a,
- 0xa9, 0xc9, 0x42, 0x32, 0xbc, 0xbc, 0x2e, 0x14, 0xc3, 0x7d, 0xf1, 0x87, 0x13, 0x53, 0xdf, 0x4e,
- 0x40, 0x21, 0xd4, 0xe7, 0xe2, 0x06, 0x45, 0x35, 0x0c, 0xeb, 0x96, 0xa2, 0x1a, 0xba, 0xea, 0xb2,
- 0xa0, 0x00, 0x22, 0xaa, 0x62, 0xc9, 0xa8, 0x8b, 0xf6, 0xa1, 0x0c, 0xfe, 0xf5, 0x04, 0x08, 0xd1,
- 0x16, 0x33, 0x32, 0xc0, 0xc4, 0x4f, 0x75, 0x80, 0xaf, 0x25, 0xa0, 0xd4, 0xdf, 0x57, 0x46, 0x86,
- 0x77, 0xf6, 0xa7, 0x3a, 0xbc, 0xb7, 0x92, 0x30, 0xd1, 0xd7, 0x4d, 0x8e, 0x3a, 0xba, 0x4f, 0xc3,
- 0x94, 0xde, 0x42, 0x5d, 0xdb, 0xf2, 0x90, 0xa9, 0x1d, 0x28, 0x06, 0xba, 0x89, 0x0c, 0x69, 0x8e,
- 0x24, 0x8a, 0xc5, 0xfb, 0xf7, 0xab, 0x0b, 0x1b, 0x01, 0x6e, 0x13, 0xc3, 0x2a, 0xd3, 0x1b, 0x6b,
- 0xb5, 0xad, 0x9d, 0xfa, 0x6e, 0x6d, 0x7b, 0xf5, 0x45, 0x65, 0x6f, 0xfb, 0xe7, 0xb7, 0xeb, 0xcf,
- 0x6f, 0xcb, 0x82, 0x1e, 0x31, 0xfb, 0x00, 0xb7, 0xfa, 0x0e, 0x08, 0xd1, 0x41, 0x89, 0x27, 0x61,
- 0xd8, 0xb0, 0x84, 0x31, 0x71, 0x1a, 0x26, 0xb7, 0xeb, 0x4a, 0x63, 0x63, 0xad, 0xa6, 0xd4, 0xae,
- 0x5e, 0xad, 0xad, 0xee, 0x36, 0xe8, 0x0d, 0x84, 0x6f, 0xbd, 0xdb, 0xbf, 0xa9, 0x5f, 0x4d, 0xc1,
- 0xf4, 0x90, 0x91, 0x88, 0x55, 0x76, 0x76, 0xa0, 0xc7, 0x99, 0xa7, 0x46, 0x19, 0xfd, 0x02, 0x2e,
- 0xf9, 0x3b, 0xaa, 0xe3, 0xb1, 0xa3, 0xc6, 0xe3, 0x80, 0xbd, 0x64, 0x7a, 0x7a, 0x5b, 0x47, 0x0e,
- 0xbb, 0xb0, 0xa1, 0x07, 0x8a, 0xc9, 0x40, 0x4e, 0xef, 0x6c, 0x7e, 0x06, 0x44, 0xdb, 0x72, 0x75,
- 0x4f, 0xbf, 0x89, 0x14, 0xdd, 0xe4, 0xb7, 0x3b, 0xf8, 0x80, 0x91, 0x96, 0x05, 0xae, 0xd9, 0x30,
- 0x3d, 0xdf, 0xda, 0x44, 0x1d, 0x35, 0x62, 0x8d, 0x13, 0x78, 0x4a, 0x16, 0xb8, 0xc6, 0xb7, 0x3e,
- 0x0b, 0xc5, 0x96, 0xd5, 0xc3, 0x5d, 0x17, 0xb5, 0xc3, 0xf5, 0x22, 0x21, 0x17, 0xa8, 0xcc, 0x37,
- 0x61, 0xfd, 0x74, 0x70, 0xad, 0x54, 0x94, 0x0b, 0x54, 0x46, 0x4d, 0x1e, 0x83, 0x49, 0xb5, 0xd3,
- 0x71, 0x30, 0x39, 0x27, 0xa2, 0x27, 0x84, 0x92, 0x2f, 0x26, 0x86, 0xb3, 0xcf, 0x41, 0x8e, 0xfb,
- 0x01, 0x97, 0x64, 0xec, 0x09, 0xc5, 0xa6, 0xc7, 0xde, 0xe4, 0x7c, 0x5e, 0xce, 0x99, 0x5c, 0x79,
- 0x16, 0x8a, 0xba, 0xab, 0x04, 0xb7, 0xe4, 0xc9, 0x33, 0xc9, 0xf9, 0x9c, 0x5c, 0xd0, 0x5d, 0xff,
- 0x86, 0x71, 0xee, 0x8d, 0x24, 0x94, 0xfa, 0x6f, 0xf9, 0xc5, 0x35, 0xc8, 0x19, 0x96, 0xa6, 0x92,
- 0xd0, 0xa2, 0x9f, 0x98, 0xe6, 0x63, 0x3e, 0x0c, 0x2c, 0x6c, 0x32, 0x7b, 0xd9, 0x47, 0xce, 0xfe,
- 0x6b, 0x02, 0x72, 0x5c, 0x2c, 0x9e, 0x80, 0xb4, 0xad, 0x7a, 0xfb, 0x84, 0x2e, 0xb3, 0x92, 0x14,
- 0x12, 0x32, 0x79, 0xc6, 0x72, 0xd7, 0x56, 0x4d, 0x12, 0x02, 0x4c, 0x8e, 0x9f, 0xf1, 0xba, 0x1a,
- 0x48, 0x6d, 0x91, 0xe3, 0x87, 0xd5, 0xed, 0x22, 0xd3, 0x73, 0xf9, 0xba, 0x32, 0xf9, 0x2a, 0x13,
- 0x8b, 0x4f, 0xc2, 0x94, 0xe7, 0xa8, 0xba, 0xd1, 0x67, 0x9b, 0x26, 0xb6, 0x02, 0x57, 0xf8, 0xc6,
- 0x15, 0x38, 0xc5, 0x79, 0x5b, 0xc8, 0x53, 0xb5, 0x7d, 0xd4, 0x0a, 0x40, 0x59, 0x72, 0xcd, 0x70,
- 0x92, 0x19, 0xac, 0x31, 0x3d, 0xc7, 0xce, 0x7d, 0x2f, 0x01, 0x53, 0xfc, 0xc0, 0xd4, 0xf2, 0x9d,
- 0xb5, 0x05, 0xa0, 0x9a, 0xa6, 0xe5, 0x85, 0xdd, 0x35, 0x18, 0xca, 0x03, 0xb8, 0x85, 0xaa, 0x0f,
- 0x92, 0x43, 0x04, 0xb3, 0x5d, 0x80, 0x40, 0x73, 0xa4, 0xdb, 0x4e, 0x43, 0x81, 0x7d, 0xc2, 0x21,
- 0xdf, 0x01, 0xe9, 0x11, 0x1b, 0xa8, 0x08, 0x9f, 0xac, 0xc4, 0x19, 0xc8, 0x34, 0x51, 0x47, 0x37,
- 0xd9, 0xc5, 0x2c, 0x7d, 0xe0, 0x17, 0x21, 0x69, 0xff, 0x22, 0x64, 0xe5, 0x53, 0x30, 0xad, 0x59,
- 0xdd, 0xe8, 0x70, 0x57, 0x84, 0xc8, 0x31, 0xdf, 0xbd, 0x96, 0x78, 0x09, 0x82, 0x16, 0xf3, 0xbd,
- 0x44, 0xe2, 0x8b, 0xc9, 0xd4, 0xfa, 0xce, 0xca, 0x57, 0x92, 0xb3, 0xeb, 0x14, 0xba, 0xc3, 0x67,
- 0x2a, 0xa3, 0xb6, 0x81, 0x34, 0x3c, 0x7a, 0xf8, 0xd2, 0x93, 0xf0, 0x54, 0x47, 0xf7, 0xf6, 0x7b,
- 0xcd, 0x05, 0xcd, 0xea, 0x2e, 0x76, 0xac, 0x8e, 0x15, 0x7c, 0xfa, 0xc4, 0x4f, 0xe4, 0x81, 0xfc,
- 0xc5, 0x3e, 0x7f, 0xe6, 0x7d, 0xe9, 0x6c, 0xec, 0xb7, 0xd2, 0xca, 0x36, 0x4c, 0x33, 0x63, 0x85,
- 0x7c, 0x7f, 0xa1, 0xa7, 0x08, 0xf1, 0xbe, 0x77, 0x58, 0xd2, 0xd7, 0xde, 0x26, 0xe5, 0x5a, 0x9e,
- 0x62, 0x50, 0xac, 0xa3, 0x07, 0x8d, 0x8a, 0x0c, 0x0f, 0xf4, 0xf1, 0xd1, 0xad, 0x89, 0x9c, 0x18,
- 0xc6, 0xef, 0x30, 0xc6, 0xe9, 0x10, 0x63, 0x83, 0x41, 0x2b, 0xab, 0x30, 0x71, 0x1c, 0xae, 0x7f,
- 0x66, 0x5c, 0x45, 0x14, 0x26, 0x59, 0x87, 0x49, 0x42, 0xa2, 0xf5, 0x5c, 0xcf, 0xea, 0x92, 0xbc,
- 0x77, 0x7f, 0x9a, 0x7f, 0x79, 0x9b, 0xee, 0x95, 0x12, 0x86, 0xad, 0xfa, 0xa8, 0x4a, 0x05, 0xc8,
- 0x27, 0xa7, 0x16, 0xd2, 0x8c, 0x18, 0x86, 0x37, 0xd9, 0x40, 0x7c, 0xfb, 0xca, 0x27, 0x61, 0x06,
- 0xff, 0x4d, 0xd2, 0x52, 0x78, 0x24, 0xf1, 0x17, 0x5e, 0xd2, 0xf7, 0x5e, 0xa1, 0xdb, 0x71, 0xda,
- 0x27, 0x08, 0x8d, 0x29, 0xb4, 0x8a, 0x1d, 0xe4, 0x79, 0xc8, 0x71, 0x15, 0xd5, 0x18, 0x36, 0xbc,
- 0xd0, 0x8d, 0x81, 0xf4, 0xb9, 0x77, 0xfa, 0x57, 0x71, 0x9d, 0x22, 0xab, 0x86, 0x51, 0xd9, 0x83,
- 0x93, 0x43, 0xa2, 0x62, 0x04, 0xce, 0x57, 0x19, 0xe7, 0xcc, 0x40, 0x64, 0x60, 0xda, 0x1d, 0xe0,
- 0x72, 0x7f, 0x2d, 0x47, 0xe0, 0xfc, 0x23, 0xc6, 0x29, 0x32, 0x2c, 0x5f, 0x52, 0xcc, 0xf8, 0x1c,
- 0x4c, 0xdd, 0x44, 0x4e, 0xd3, 0x72, 0xd9, 0x2d, 0xcd, 0x08, 0x74, 0xaf, 0x31, 0xba, 0x49, 0x06,
- 0x24, 0xd7, 0x36, 0x98, 0xeb, 0x32, 0xe4, 0xda, 0xaa, 0x86, 0x46, 0xa0, 0xf8, 0x3c, 0xa3, 0x18,
- 0xc7, 0xf6, 0x18, 0x5a, 0x85, 0x62, 0xc7, 0x62, 0x95, 0x29, 0x1e, 0xfe, 0x3a, 0x83, 0x17, 0x38,
- 0x86, 0x51, 0xd8, 0x96, 0xdd, 0x33, 0x70, 0xd9, 0x8a, 0xa7, 0xf8, 0x63, 0x4e, 0xc1, 0x31, 0x8c,
- 0xe2, 0x18, 0x6e, 0xfd, 0x13, 0x4e, 0xe1, 0x86, 0xfc, 0xf9, 0x2c, 0x14, 0x2c, 0xd3, 0x38, 0xb0,
- 0xcc, 0x51, 0x06, 0xf1, 0x05, 0xc6, 0x00, 0x0c, 0x82, 0x09, 0xae, 0x40, 0x7e, 0xd4, 0x85, 0xf8,
- 0xb3, 0x77, 0xf8, 0xf6, 0xe0, 0x2b, 0xb0, 0x0e, 0x93, 0x3c, 0x41, 0xe9, 0x96, 0x39, 0x02, 0xc5,
- 0x97, 0x18, 0x45, 0x29, 0x04, 0x63, 0xd3, 0xf0, 0x90, 0xeb, 0x75, 0xd0, 0x28, 0x24, 0x6f, 0xf0,
- 0x69, 0x30, 0x08, 0x73, 0x65, 0x13, 0x99, 0xda, 0xfe, 0x68, 0x0c, 0x5f, 0xe6, 0xae, 0xe4, 0x18,
- 0x4c, 0xb1, 0x0a, 0x13, 0x5d, 0xd5, 0x71, 0xf7, 0x55, 0x63, 0xa4, 0xe5, 0xf8, 0x73, 0xc6, 0x51,
- 0xf4, 0x41, 0xcc, 0x23, 0x3d, 0xf3, 0x38, 0x34, 0x5f, 0xe1, 0x1e, 0x09, 0xc1, 0xd8, 0xd6, 0x73,
- 0x3d, 0x72, 0xa5, 0x75, 0x1c, 0xb6, 0xbf, 0xe0, 0x5b, 0x8f, 0x62, 0xb7, 0xc2, 0x8c, 0x57, 0x20,
- 0xef, 0xea, 0xb7, 0x47, 0xa2, 0xf9, 0x4b, 0xbe, 0xd2, 0x04, 0x80, 0xc1, 0x2f, 0xc2, 0xa9, 0xa1,
- 0x65, 0x62, 0x04, 0xb2, 0xbf, 0x62, 0x64, 0x27, 0x86, 0x94, 0x0a, 0x96, 0x12, 0x8e, 0x4b, 0xf9,
- 0xd7, 0x3c, 0x25, 0xa0, 0x08, 0xd7, 0x0e, 0x3e, 0x2b, 0xb8, 0x6a, 0xfb, 0x78, 0x5e, 0xfb, 0x1b,
- 0xee, 0x35, 0x8a, 0xed, 0xf3, 0xda, 0x2e, 0x9c, 0x60, 0x8c, 0xc7, 0x5b, 0xd7, 0xaf, 0xf2, 0xc4,
- 0x4a, 0xd1, 0x7b, 0xfd, 0xab, 0xfb, 0x29, 0x98, 0xf5, 0xdd, 0xc9, 0x9b, 0x52, 0x57, 0xe9, 0xaa,
- 0xf6, 0x08, 0xcc, 0x5f, 0x63, 0xcc, 0x3c, 0xe3, 0xfb, 0x5d, 0xad, 0xbb, 0xa5, 0xda, 0x98, 0xfc,
- 0x05, 0x90, 0x38, 0x79, 0xcf, 0x74, 0x90, 0x66, 0x75, 0x4c, 0xfd, 0x36, 0x6a, 0x8d, 0x40, 0xfd,
- 0xb7, 0x91, 0xa5, 0xda, 0x0b, 0xc1, 0x31, 0xf3, 0x06, 0x08, 0x7e, 0xaf, 0xa2, 0xe8, 0x5d, 0xdb,
- 0x72, 0xbc, 0x18, 0xc6, 0xaf, 0xf3, 0x95, 0xf2, 0x71, 0x1b, 0x04, 0x56, 0xa9, 0x41, 0x89, 0x3c,
- 0x8e, 0x1a, 0x92, 0x7f, 0xc7, 0x88, 0x26, 0x02, 0x14, 0x4b, 0x1c, 0x9a, 0xd5, 0xb5, 0x55, 0x67,
- 0x94, 0xfc, 0xf7, 0xf7, 0x3c, 0x71, 0x30, 0x08, 0x4b, 0x1c, 0xde, 0x81, 0x8d, 0x70, 0xb5, 0x1f,
- 0x81, 0xe1, 0x1b, 0x3c, 0x71, 0x70, 0x0c, 0xa3, 0xe0, 0x0d, 0xc3, 0x08, 0x14, 0xff, 0xc0, 0x29,
- 0x38, 0x06, 0x53, 0x7c, 0x22, 0x28, 0xb4, 0x0e, 0xea, 0xe8, 0xae, 0xe7, 0xd0, 0x56, 0xf8, 0xfe,
- 0x54, 0xdf, 0x7c, 0xa7, 0xbf, 0x09, 0x93, 0x43, 0x50, 0x9c, 0x89, 0xd8, 0x15, 0x2a, 0x39, 0x29,
- 0xc5, 0x0f, 0xec, 0x5b, 0x3c, 0x13, 0x85, 0x60, 0x78, 0x6c, 0xa1, 0x0e, 0x11, 0xbb, 0x5d, 0xc3,
- 0xe7, 0x83, 0x11, 0xe8, 0xbe, 0x1d, 0x19, 0x5c, 0x83, 0x63, 0x31, 0x67, 0xa8, 0xff, 0xe9, 0x99,
- 0x37, 0xd0, 0xc1, 0x48, 0xd1, 0xf9, 0x8f, 0x91, 0xfe, 0x67, 0x8f, 0x22, 0x69, 0x0e, 0x99, 0x8c,
- 0xf4, 0x53, 0x62, 0xdc, 0x8f, 0x75, 0xa4, 0x5f, 0xba, 0xc7, 0xe6, 0xdb, 0xdf, 0x4e, 0x55, 0x36,
- 0x71, 0x90, 0xf7, 0x37, 0x3d, 0xf1, 0x64, 0xaf, 0xdc, 0xf3, 0xe3, 0xbc, 0xaf, 0xe7, 0xa9, 0x5c,
- 0x85, 0x89, 0xbe, 0x86, 0x27, 0x9e, 0xea, 0x97, 0x19, 0x55, 0x31, 0xdc, 0xef, 0x54, 0x96, 0x21,
- 0x8d, 0x9b, 0x97, 0x78, 0xf8, 0xaf, 0x30, 0x38, 0x31, 0xaf, 0x7c, 0x0c, 0x72, 0xbc, 0x69, 0x89,
- 0x87, 0xfe, 0x2a, 0x83, 0xfa, 0x10, 0x0c, 0xe7, 0x0d, 0x4b, 0x3c, 0xfc, 0xd7, 0x38, 0x9c, 0x43,
- 0x30, 0x7c, 0x74, 0x17, 0xfe, 0xd3, 0xaf, 0xa7, 0x59, 0xd1, 0xe1, 0xbe, 0xbb, 0x02, 0xe3, 0xac,
- 0x53, 0x89, 0x47, 0x7f, 0x86, 0xbd, 0x9c, 0x23, 0x2a, 0x17, 0x21, 0x33, 0xa2, 0xc3, 0x7f, 0x83,
- 0x41, 0xa9, 0x7d, 0x65, 0x15, 0x0a, 0xa1, 0xee, 0x24, 0x1e, 0xfe, 0x9b, 0x0c, 0x1e, 0x46, 0xe1,
- 0xa1, 0xb3, 0xee, 0x24, 0x9e, 0xe0, 0xb7, 0xf8, 0xd0, 0x19, 0x02, 0xbb, 0x8d, 0x37, 0x26, 0xf1,
- 0xe8, 0xdf, 0xe6, 0x5e, 0xe7, 0x90, 0xca, 0xb3, 0x90, 0xf7, 0x8b, 0x4d, 0x3c, 0xfe, 0x77, 0x18,
- 0x3e, 0xc0, 0x60, 0x0f, 0x84, 0x8a, 0x5d, 0x3c, 0xc5, 0xef, 0x72, 0x0f, 0x84, 0x50, 0x78, 0x1b,
- 0x45, 0x1b, 0x98, 0x78, 0xa6, 0xdf, 0xe3, 0xdb, 0x28, 0xd2, 0xbf, 0xe0, 0xd5, 0x24, 0x39, 0x3f,
- 0x9e, 0xe2, 0xf7, 0xf9, 0x6a, 0x12, 0x7b, 0x3c, 0x8c, 0x68, 0x47, 0x10, 0xcf, 0xf1, 0x87, 0x7c,
- 0x18, 0x91, 0x86, 0xa0, 0xb2, 0x03, 0xe2, 0x60, 0x37, 0x10, 0xcf, 0xf7, 0x59, 0xc6, 0x37, 0x35,
- 0xd0, 0x0c, 0x54, 0x9e, 0x87, 0x13, 0xc3, 0x3b, 0x81, 0x78, 0xd6, 0xcf, 0xdd, 0x8b, 0x9c, 0xdd,
- 0xc2, 0x8d, 0x40, 0x65, 0x37, 0x28, 0x29, 0xe1, 0x2e, 0x20, 0x9e, 0xf6, 0xd5, 0x7b, 0xfd, 0x89,
- 0x3b, 0xdc, 0x04, 0x54, 0xaa, 0x00, 0x41, 0x01, 0x8e, 0xe7, 0x7a, 0x8d, 0x71, 0x85, 0x40, 0x78,
- 0x6b, 0xb0, 0xfa, 0x1b, 0x8f, 0xff, 0x3c, 0xdf, 0x1a, 0x0c, 0x81, 0xb7, 0x06, 0x2f, 0xbd, 0xf1,
- 0xe8, 0xd7, 0xf9, 0xd6, 0xe0, 0x10, 0x1c, 0xd9, 0xa1, 0xea, 0x16, 0xcf, 0xf0, 0x05, 0x1e, 0xd9,
- 0x21, 0x54, 0x65, 0x1b, 0xa6, 0x06, 0x0a, 0x62, 0x3c, 0xd5, 0x17, 0x19, 0x95, 0x10, 0xad, 0x87,
- 0xe1, 0xe2, 0xc5, 0x8a, 0x61, 0x3c, 0xdb, 0x9f, 0x46, 0x8a, 0x17, 0xab, 0x85, 0x95, 0x2b, 0x90,
- 0x33, 0x7b, 0x86, 0x81, 0x37, 0x8f, 0x78, 0xff, 0x1f, 0xd8, 0x49, 0xff, 0xf1, 0x3e, 0xf3, 0x0e,
- 0x07, 0x54, 0x96, 0x21, 0x83, 0xba, 0x4d, 0xd4, 0x8a, 0x43, 0xfe, 0xe7, 0xfb, 0x3c, 0x61, 0x62,
- 0xeb, 0xca, 0xb3, 0x00, 0xf4, 0x6a, 0x84, 0x7c, 0xf6, 0x8b, 0xc1, 0xfe, 0xd7, 0xfb, 0xec, 0xa7,
- 0x2f, 0x01, 0x24, 0x20, 0xa0, 0x3f, 0xa4, 0xb9, 0x3f, 0xc1, 0x3b, 0xfd, 0x04, 0x64, 0x45, 0x2e,
- 0xc3, 0xf8, 0x75, 0xd7, 0x32, 0x3d, 0xb5, 0x13, 0x87, 0xfe, 0x6f, 0x86, 0xe6, 0xf6, 0xd8, 0x61,
- 0x5d, 0xcb, 0x41, 0x9e, 0xda, 0x71, 0xe3, 0xb0, 0xff, 0xc3, 0xb0, 0x3e, 0x00, 0x83, 0x35, 0xd5,
- 0xf5, 0x46, 0x99, 0xf7, 0x8f, 0x38, 0x98, 0x03, 0xf0, 0xa0, 0xf1, 0xdf, 0x37, 0xd0, 0x41, 0x1c,
- 0xf6, 0x5d, 0x3e, 0x68, 0x66, 0x5f, 0xf9, 0x18, 0xe4, 0xf1, 0x9f, 0xf4, 0xf7, 0x6c, 0x31, 0xe0,
- 0xff, 0x65, 0xe0, 0x00, 0x81, 0xdf, 0xec, 0x7a, 0x2d, 0x4f, 0x8f, 0x77, 0xf6, 0xff, 0xb1, 0x95,
- 0xe6, 0xf6, 0x95, 0x2a, 0x14, 0x5c, 0xaf, 0xd5, 0xea, 0xb1, 0xfe, 0x34, 0x06, 0xfe, 0xff, 0xef,
- 0xfb, 0x57, 0x16, 0x3e, 0x06, 0xaf, 0xf6, 0xad, 0x1b, 0x9e, 0x6d, 0x91, 0xcf, 0x1c, 0x71, 0x0c,
- 0xf7, 0x18, 0x43, 0x08, 0xb2, 0x52, 0x1b, 0x7e, 0x7d, 0x0b, 0xeb, 0xd6, 0xba, 0x45, 0x2f, 0x6e,
- 0x5f, 0x9a, 0x8b, 0xbf, 0x81, 0x85, 0x3f, 0xc8, 0x80, 0xa4, 0x59, 0xdd, 0xa6, 0xe5, 0x2e, 0x9a,
- 0x48, 0xf7, 0xf6, 0x91, 0xb3, 0x68, 0x99, 0x8c, 0x4f, 0x4c, 0x59, 0x26, 0x9a, 0x3d, 0xde, 0x3d,
- 0xee, 0xdc, 0x29, 0xc8, 0x34, 0x7a, 0xcd, 0xe6, 0x81, 0x28, 0x40, 0xca, 0xed, 0x35, 0xd9, 0x6f,
- 0xa2, 0xf0, 0x9f, 0x73, 0xdf, 0x4f, 0x41, 0xa1, 0xa1, 0x76, 0x6d, 0x03, 0xd5, 0x4d, 0x54, 0x6f,
- 0x8b, 0x12, 0x64, 0xc9, 0x34, 0x9f, 0x21, 0x46, 0x89, 0x6b, 0x63, 0x32, 0x7b, 0xf6, 0x35, 0x4b,
- 0xe4, 0x7e, 0x3b, 0xe9, 0x6b, 0x96, 0x7c, 0xcd, 0x39, 0x7a, 0xbd, 0xed, 0x6b, 0xce, 0xf9, 0x9a,
- 0xf3, 0xe4, 0x92, 0x3b, 0xe5, 0x6b, 0xce, 0xfb, 0x9a, 0x65, 0xf2, 0x11, 0x67, 0xc2, 0xd7, 0x2c,
- 0xfb, 0x9a, 0x0b, 0xe4, 0xb3, 0x4d, 0xda, 0xd7, 0x5c, 0xf0, 0x35, 0x17, 0xc9, 0xd7, 0x9a, 0x29,
- 0x5f, 0x73, 0xd1, 0xd7, 0x5c, 0x22, 0x5f, 0x68, 0x44, 0x5f, 0x73, 0xc9, 0xd7, 0x5c, 0x26, 0x3f,
- 0x7d, 0x1a, 0xf7, 0x35, 0x97, 0xc5, 0x59, 0x18, 0xa7, 0x33, 0x7b, 0x9a, 0x7c, 0xc6, 0x9f, 0xbc,
- 0x36, 0x26, 0x73, 0x41, 0xa0, 0x7b, 0x86, 0xfc, 0xbc, 0x29, 0x1b, 0xe8, 0x9e, 0x09, 0x74, 0x4b,
- 0xe4, 0x7f, 0x59, 0x08, 0x81, 0x6e, 0x29, 0xd0, 0x9d, 0x93, 0x26, 0x70, 0x74, 0x04, 0xba, 0x73,
- 0x81, 0xee, 0xbc, 0x54, 0xc2, 0xfe, 0x0f, 0x74, 0xe7, 0x03, 0xdd, 0xb2, 0x34, 0x79, 0x26, 0x31,
- 0x5f, 0x0c, 0x74, 0xcb, 0xe2, 0x53, 0x50, 0x70, 0x7b, 0x4d, 0x85, 0xe5, 0x79, 0xf2, 0x33, 0xaa,
- 0xc2, 0x12, 0x2c, 0xe0, 0x88, 0x20, 0x8b, 0x7a, 0x6d, 0x4c, 0x06, 0xb7, 0xd7, 0x64, 0x69, 0x78,
- 0xa5, 0x08, 0xe4, 0xf6, 0x49, 0x21, 0xbf, 0x7e, 0x5e, 0x59, 0x7b, 0xf3, 0x6e, 0x79, 0xec, 0xbb,
- 0x77, 0xcb, 0x63, 0xff, 0x76, 0xb7, 0x3c, 0xf6, 0xd6, 0xdd, 0x72, 0xe2, 0xdd, 0xbb, 0xe5, 0xc4,
- 0x7b, 0x77, 0xcb, 0x89, 0x3b, 0x87, 0xe5, 0xc4, 0x97, 0x0f, 0xcb, 0x89, 0xaf, 0x1e, 0x96, 0x13,
- 0xdf, 0x3c, 0x2c, 0x27, 0xde, 0x3c, 0x2c, 0x8f, 0x7d, 0xf7, 0xb0, 0x3c, 0xf6, 0xd6, 0x61, 0x39,
- 0xf1, 0xc3, 0xc3, 0xf2, 0xd8, 0xbb, 0x87, 0xe5, 0xc4, 0x7b, 0x87, 0xe5, 0xb1, 0x3b, 0x3f, 0x28,
- 0x8f, 0x35, 0xb3, 0x24, 0x8c, 0xce, 0xfd, 0x38, 0x00, 0x00, 0xff, 0xff, 0x9b, 0x57, 0xc6, 0xb3,
- 0x34, 0x35, 0x00, 0x00,
+ // 4118 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5b, 0x70, 0x1b, 0xe7,
+ 0x75, 0x26, 0xae, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x25, 0x88, 0x8e, 0x21, 0x89, 0xb6, 0x63,
+ 0xda, 0x8e, 0x29, 0x9b, 0x22, 0x75, 0x81, 0x9a, 0xb8, 0x20, 0x09, 0x51, 0x74, 0x49, 0x82, 0x59,
+ 0x90, 0xf1, 0x25, 0xd3, 0xd9, 0x59, 0x2c, 0x7e, 0x80, 0x2b, 0x2d, 0x76, 0x37, 0xbb, 0x0b, 0xc9,
+ 0xd4, 0xf4, 0x41, 0x1d, 0xf7, 0x32, 0x99, 0xde, 0x2f, 0xd3, 0x26, 0xae, 0xe3, 0x36, 0xe9, 0x34,
+ 0x4e, 0xd3, 0x5b, 0xd2, 0x4b, 0x9a, 0xa4, 0x2f, 0x7d, 0x49, 0xeb, 0xa7, 0x4e, 0xf2, 0xd6, 0x87,
+ 0x3c, 0x58, 0x8c, 0x67, 0x9a, 0xb6, 0x6e, 0xeb, 0xb6, 0x7a, 0xf0, 0x8c, 0x5f, 0x32, 0xff, 0x6d,
+ 0x6f, 0x00, 0xb5, 0x60, 0x66, 0xec, 0x3c, 0x89, 0x7b, 0xce, 0xf9, 0xbe, 0x3d, 0xff, 0xf9, 0xcf,
+ 0xff, 0x9f, 0xf3, 0xff, 0x0b, 0xc1, 0x9b, 0x55, 0x38, 0xd3, 0x35, 0xcd, 0xae, 0x8e, 0xce, 0x59,
+ 0xb6, 0xe9, 0x9a, 0xad, 0x7e, 0xe7, 0x5c, 0x1b, 0x39, 0xaa, 0xad, 0x59, 0xae, 0x69, 0x2f, 0x10,
+ 0x99, 0x38, 0x49, 0x2d, 0x16, 0xb8, 0xc5, 0xdc, 0x16, 0x4c, 0x5d, 0xd5, 0x74, 0xb4, 0xe6, 0x19,
+ 0x36, 0x91, 0x2b, 0x5e, 0x82, 0x74, 0x47, 0xd3, 0x51, 0x39, 0x71, 0x26, 0x35, 0x5f, 0x58, 0x7c,
+ 0x64, 0x21, 0x02, 0x5a, 0x08, 0x23, 0x76, 0xb0, 0x58, 0x22, 0x88, 0xb9, 0xb7, 0xd3, 0x30, 0x3d,
+ 0x44, 0x2b, 0x8a, 0x90, 0x36, 0x94, 0x1e, 0x66, 0x4c, 0xcc, 0xe7, 0x25, 0xf2, 0xb7, 0x58, 0x86,
+ 0x71, 0x4b, 0x51, 0x6f, 0x28, 0x5d, 0x54, 0x4e, 0x12, 0x31, 0x7f, 0x14, 0x2b, 0x00, 0x6d, 0x64,
+ 0x21, 0xa3, 0x8d, 0x0c, 0xf5, 0xa0, 0x9c, 0x3a, 0x93, 0x9a, 0xcf, 0x4b, 0x01, 0x89, 0xf8, 0x24,
+ 0x4c, 0x59, 0xfd, 0x96, 0xae, 0xa9, 0x72, 0xc0, 0x0c, 0xce, 0xa4, 0xe6, 0x33, 0x92, 0x40, 0x15,
+ 0x6b, 0xbe, 0xf1, 0x63, 0x30, 0x79, 0x0b, 0x29, 0x37, 0x82, 0xa6, 0x05, 0x62, 0x5a, 0xc2, 0xe2,
+ 0x80, 0xe1, 0x2a, 0x14, 0x7b, 0xc8, 0x71, 0x94, 0x2e, 0x92, 0xdd, 0x03, 0x0b, 0x95, 0xd3, 0x64,
+ 0xf4, 0x67, 0x06, 0x46, 0x1f, 0x1d, 0x79, 0x81, 0xa1, 0x76, 0x0f, 0x2c, 0x24, 0xd6, 0x20, 0x8f,
+ 0x8c, 0x7e, 0x8f, 0x32, 0x64, 0x8e, 0x88, 0x5f, 0xdd, 0xe8, 0xf7, 0xa2, 0x2c, 0x39, 0x0c, 0x63,
+ 0x14, 0xe3, 0x0e, 0xb2, 0x6f, 0x6a, 0x2a, 0x2a, 0x67, 0x09, 0xc1, 0x63, 0x03, 0x04, 0x4d, 0xaa,
+ 0x8f, 0x72, 0x70, 0x9c, 0xb8, 0x0a, 0x79, 0xf4, 0xb2, 0x8b, 0x0c, 0x47, 0x33, 0x8d, 0xf2, 0x38,
+ 0x21, 0x79, 0x74, 0xc8, 0x2c, 0x22, 0xbd, 0x1d, 0xa5, 0xf0, 0x71, 0xe2, 0x05, 0x18, 0x37, 0x2d,
+ 0x57, 0x33, 0x0d, 0xa7, 0x9c, 0x3b, 0x93, 0x98, 0x2f, 0x2c, 0x7e, 0x64, 0x68, 0x22, 0x34, 0xa8,
+ 0x8d, 0xc4, 0x8d, 0xc5, 0x0d, 0x10, 0x1c, 0xb3, 0x6f, 0xab, 0x48, 0x56, 0xcd, 0x36, 0x92, 0x35,
+ 0xa3, 0x63, 0x96, 0xf3, 0x84, 0xe0, 0xf4, 0xe0, 0x40, 0x88, 0xe1, 0xaa, 0xd9, 0x46, 0x1b, 0x46,
+ 0xc7, 0x94, 0x4a, 0x4e, 0xe8, 0x59, 0x3c, 0x01, 0x59, 0xe7, 0xc0, 0x70, 0x95, 0x97, 0xcb, 0x45,
+ 0x92, 0x21, 0xec, 0x69, 0xee, 0x5b, 0x59, 0x98, 0x1c, 0x25, 0xc5, 0xae, 0x40, 0xa6, 0x83, 0x47,
+ 0x59, 0x4e, 0x1e, 0x27, 0x06, 0x14, 0x13, 0x0e, 0x62, 0xf6, 0xc7, 0x0c, 0x62, 0x0d, 0x0a, 0x06,
+ 0x72, 0x5c, 0xd4, 0xa6, 0x19, 0x91, 0x1a, 0x31, 0xa7, 0x80, 0x82, 0x06, 0x53, 0x2a, 0xfd, 0x63,
+ 0xa5, 0xd4, 0x0b, 0x30, 0xe9, 0xb9, 0x24, 0xdb, 0x8a, 0xd1, 0xe5, 0xb9, 0x79, 0x2e, 0xce, 0x93,
+ 0x85, 0x3a, 0xc7, 0x49, 0x18, 0x26, 0x95, 0x50, 0xe8, 0x59, 0x5c, 0x03, 0x30, 0x0d, 0x64, 0x76,
+ 0xe4, 0x36, 0x52, 0xf5, 0x72, 0xee, 0x88, 0x28, 0x35, 0xb0, 0xc9, 0x40, 0x94, 0x4c, 0x2a, 0x55,
+ 0x75, 0xf1, 0xb2, 0x9f, 0x6a, 0xe3, 0x47, 0x64, 0xca, 0x16, 0x5d, 0x64, 0x03, 0xd9, 0xb6, 0x07,
+ 0x25, 0x1b, 0xe1, 0xbc, 0x47, 0x6d, 0x36, 0xb2, 0x3c, 0x71, 0x62, 0x21, 0x76, 0x64, 0x12, 0x83,
+ 0xd1, 0x81, 0x4d, 0xd8, 0xc1, 0x47, 0xf1, 0x61, 0xf0, 0x04, 0x32, 0x49, 0x2b, 0x20, 0xbb, 0x50,
+ 0x91, 0x0b, 0xb7, 0x95, 0x1e, 0x9a, 0xbd, 0x0d, 0xa5, 0x70, 0x78, 0xc4, 0x19, 0xc8, 0x38, 0xae,
+ 0x62, 0xbb, 0x24, 0x0b, 0x33, 0x12, 0x7d, 0x10, 0x05, 0x48, 0x21, 0xa3, 0x4d, 0x76, 0xb9, 0x8c,
+ 0x84, 0xff, 0x14, 0x7f, 0xda, 0x1f, 0x70, 0x8a, 0x0c, 0xf8, 0xa3, 0x83, 0x33, 0x1a, 0x62, 0x8e,
+ 0x8e, 0x7b, 0xf6, 0x22, 0x4c, 0x84, 0x06, 0x30, 0xea, 0xab, 0xe7, 0x7e, 0x0e, 0x1e, 0x18, 0x4a,
+ 0x2d, 0xbe, 0x00, 0x33, 0x7d, 0x43, 0x33, 0x5c, 0x64, 0x5b, 0x36, 0xc2, 0x19, 0x4b, 0x5f, 0x55,
+ 0xfe, 0xb7, 0xf1, 0x23, 0x72, 0x6e, 0x2f, 0x68, 0x4d, 0x59, 0xa4, 0xe9, 0xfe, 0xa0, 0xf0, 0x89,
+ 0x7c, 0xee, 0x87, 0xe3, 0xc2, 0x9d, 0x3b, 0x77, 0xee, 0x24, 0xe7, 0x3e, 0x97, 0x85, 0x99, 0x61,
+ 0x6b, 0x66, 0xe8, 0xf2, 0x3d, 0x01, 0x59, 0xa3, 0xdf, 0x6b, 0x21, 0x9b, 0x04, 0x29, 0x23, 0xb1,
+ 0x27, 0xb1, 0x06, 0x19, 0x5d, 0x69, 0x21, 0xbd, 0x9c, 0x3e, 0x93, 0x98, 0x2f, 0x2d, 0x3e, 0x39,
+ 0xd2, 0xaa, 0x5c, 0xd8, 0xc4, 0x10, 0x89, 0x22, 0xc5, 0x4f, 0x40, 0x9a, 0x6d, 0xd1, 0x98, 0xe1,
+ 0x89, 0xd1, 0x18, 0xf0, 0x5a, 0x92, 0x08, 0x4e, 0x7c, 0x10, 0xf2, 0xf8, 0x5f, 0x9a, 0x1b, 0x59,
+ 0xe2, 0x73, 0x0e, 0x0b, 0x70, 0x5e, 0x88, 0xb3, 0x90, 0x23, 0xcb, 0xa4, 0x8d, 0x78, 0x69, 0xf3,
+ 0x9e, 0x71, 0x62, 0xb5, 0x51, 0x47, 0xe9, 0xeb, 0xae, 0x7c, 0x53, 0xd1, 0xfb, 0x88, 0x24, 0x7c,
+ 0x5e, 0x2a, 0x32, 0xe1, 0xa7, 0xb0, 0x4c, 0x3c, 0x0d, 0x05, 0xba, 0xaa, 0x34, 0xa3, 0x8d, 0x5e,
+ 0x26, 0xbb, 0x67, 0x46, 0xa2, 0x0b, 0x6d, 0x03, 0x4b, 0xf0, 0xeb, 0xaf, 0x3b, 0xa6, 0xc1, 0x53,
+ 0x93, 0xbc, 0x02, 0x0b, 0xc8, 0xeb, 0x2f, 0x46, 0x37, 0xee, 0x87, 0x86, 0x0f, 0x2f, 0x9a, 0x53,
+ 0x73, 0xdf, 0x48, 0x42, 0x9a, 0xec, 0x17, 0x93, 0x50, 0xd8, 0x7d, 0x71, 0xa7, 0x2e, 0xaf, 0x35,
+ 0xf6, 0x56, 0x36, 0xeb, 0x42, 0x42, 0x2c, 0x01, 0x10, 0xc1, 0xd5, 0xcd, 0x46, 0x6d, 0x57, 0x48,
+ 0x7a, 0xcf, 0x1b, 0xdb, 0xbb, 0x17, 0x96, 0x84, 0x94, 0x07, 0xd8, 0xa3, 0x82, 0x74, 0xd0, 0xe0,
+ 0xfc, 0xa2, 0x90, 0x11, 0x05, 0x28, 0x52, 0x82, 0x8d, 0x17, 0xea, 0x6b, 0x17, 0x96, 0x84, 0x6c,
+ 0x58, 0x72, 0x7e, 0x51, 0x18, 0x17, 0x27, 0x20, 0x4f, 0x24, 0x2b, 0x8d, 0xc6, 0xa6, 0x90, 0xf3,
+ 0x38, 0x9b, 0xbb, 0xd2, 0xc6, 0xf6, 0xba, 0x90, 0xf7, 0x38, 0xd7, 0xa5, 0xc6, 0xde, 0x8e, 0x00,
+ 0x1e, 0xc3, 0x56, 0xbd, 0xd9, 0xac, 0xad, 0xd7, 0x85, 0x82, 0x67, 0xb1, 0xf2, 0xe2, 0x6e, 0xbd,
+ 0x29, 0x14, 0x43, 0x6e, 0x9d, 0x5f, 0x14, 0x26, 0xbc, 0x57, 0xd4, 0xb7, 0xf7, 0xb6, 0x84, 0x92,
+ 0x38, 0x05, 0x13, 0xf4, 0x15, 0xdc, 0x89, 0xc9, 0x88, 0xe8, 0xc2, 0x92, 0x20, 0xf8, 0x8e, 0x50,
+ 0x96, 0xa9, 0x90, 0xe0, 0xc2, 0x92, 0x20, 0xce, 0xad, 0x42, 0x86, 0x64, 0x97, 0x28, 0x42, 0x69,
+ 0xb3, 0xb6, 0x52, 0xdf, 0x94, 0x1b, 0x3b, 0xbb, 0x1b, 0x8d, 0xed, 0xda, 0xa6, 0x90, 0xf0, 0x65,
+ 0x52, 0xfd, 0x93, 0x7b, 0x1b, 0x52, 0x7d, 0x4d, 0x48, 0x06, 0x65, 0x3b, 0xf5, 0xda, 0x6e, 0x7d,
+ 0x4d, 0x48, 0xcd, 0xa9, 0x30, 0x33, 0x6c, 0x9f, 0x1c, 0xba, 0x32, 0x02, 0x53, 0x9c, 0x3c, 0x62,
+ 0x8a, 0x09, 0xd7, 0xc0, 0x14, 0xff, 0x20, 0x09, 0xd3, 0x43, 0x6a, 0xc5, 0xd0, 0x97, 0x3c, 0x0b,
+ 0x19, 0x9a, 0xa2, 0xb4, 0x7a, 0x3e, 0x3e, 0xb4, 0xe8, 0x90, 0x84, 0x1d, 0xa8, 0xa0, 0x04, 0x17,
+ 0xec, 0x20, 0x52, 0x47, 0x74, 0x10, 0x98, 0x62, 0x60, 0x4f, 0xff, 0xd9, 0x81, 0x3d, 0x9d, 0x96,
+ 0xbd, 0x0b, 0xa3, 0x94, 0x3d, 0x22, 0x3b, 0xde, 0xde, 0x9e, 0x19, 0xb2, 0xb7, 0x5f, 0x81, 0xa9,
+ 0x01, 0xa2, 0x91, 0xf7, 0xd8, 0x57, 0x12, 0x50, 0x3e, 0x2a, 0x38, 0x31, 0x3b, 0x5d, 0x32, 0xb4,
+ 0xd3, 0x5d, 0x89, 0x46, 0xf0, 0xec, 0xd1, 0x93, 0x30, 0x30, 0xd7, 0x6f, 0x24, 0xe0, 0xc4, 0xf0,
+ 0x4e, 0x71, 0xa8, 0x0f, 0x9f, 0x80, 0x6c, 0x0f, 0xb9, 0xfb, 0x26, 0xef, 0x96, 0x3e, 0x3a, 0xa4,
+ 0x06, 0x63, 0x75, 0x74, 0xb2, 0x19, 0x2a, 0x58, 0xc4, 0x53, 0x47, 0xb5, 0x7b, 0xd4, 0x9b, 0x01,
+ 0x4f, 0x3f, 0x9b, 0x84, 0x07, 0x86, 0x92, 0x0f, 0x75, 0xf4, 0x21, 0x00, 0xcd, 0xb0, 0xfa, 0x2e,
+ 0xed, 0x88, 0xe8, 0x06, 0x9b, 0x27, 0x12, 0xb2, 0x79, 0xe1, 0xcd, 0xb3, 0xef, 0x7a, 0xfa, 0x14,
+ 0xd1, 0x03, 0x15, 0x11, 0x83, 0x4b, 0xbe, 0xa3, 0x69, 0xe2, 0x68, 0xe5, 0x88, 0x91, 0x0e, 0x24,
+ 0xe6, 0xd3, 0x20, 0xa8, 0xba, 0x86, 0x0c, 0x57, 0x76, 0x5c, 0x1b, 0x29, 0x3d, 0xcd, 0xe8, 0x92,
+ 0x0a, 0x92, 0xab, 0x66, 0x3a, 0x8a, 0xee, 0x20, 0x69, 0x92, 0xaa, 0x9b, 0x5c, 0x8b, 0x11, 0x24,
+ 0x81, 0xec, 0x00, 0x22, 0x1b, 0x42, 0x50, 0xb5, 0x87, 0x98, 0xfb, 0xd5, 0x3c, 0x14, 0x02, 0x7d,
+ 0xb5, 0x78, 0x16, 0x8a, 0xd7, 0x95, 0x9b, 0x8a, 0xcc, 0xcf, 0x4a, 0x34, 0x12, 0x05, 0x2c, 0xdb,
+ 0x61, 0xe7, 0xa5, 0xa7, 0x61, 0x86, 0x98, 0x98, 0x7d, 0x17, 0xd9, 0xb2, 0xaa, 0x2b, 0x8e, 0x43,
+ 0x82, 0x96, 0x23, 0xa6, 0x22, 0xd6, 0x35, 0xb0, 0x6a, 0x95, 0x6b, 0xc4, 0x65, 0x98, 0x26, 0x88,
+ 0x5e, 0x5f, 0x77, 0x35, 0x4b, 0x47, 0x32, 0x3e, 0xbd, 0x39, 0xa4, 0x92, 0x78, 0x9e, 0x4d, 0x61,
+ 0x8b, 0x2d, 0x66, 0x80, 0x3d, 0x72, 0xc4, 0x35, 0x78, 0x88, 0xc0, 0xba, 0xc8, 0x40, 0xb6, 0xe2,
+ 0x22, 0x19, 0x7d, 0xa6, 0xaf, 0xe8, 0x8e, 0xac, 0x18, 0x6d, 0x79, 0x5f, 0x71, 0xf6, 0xcb, 0x33,
+ 0x98, 0x60, 0x25, 0x59, 0x4e, 0x48, 0xa7, 0xb0, 0xe1, 0x3a, 0xb3, 0xab, 0x13, 0xb3, 0x9a, 0xd1,
+ 0xbe, 0xa6, 0x38, 0xfb, 0x62, 0x15, 0x4e, 0x10, 0x16, 0xc7, 0xb5, 0x35, 0xa3, 0x2b, 0xab, 0xfb,
+ 0x48, 0xbd, 0x21, 0xf7, 0xdd, 0xce, 0xa5, 0xf2, 0x83, 0xc1, 0xf7, 0x13, 0x0f, 0x9b, 0xc4, 0x66,
+ 0x15, 0x9b, 0xec, 0xb9, 0x9d, 0x4b, 0x62, 0x13, 0x8a, 0x78, 0x32, 0x7a, 0xda, 0x6d, 0x24, 0x77,
+ 0x4c, 0x9b, 0x94, 0xc6, 0xd2, 0x90, 0xad, 0x29, 0x10, 0xc1, 0x85, 0x06, 0x03, 0x6c, 0x99, 0x6d,
+ 0x54, 0xcd, 0x34, 0x77, 0xea, 0xf5, 0x35, 0xa9, 0xc0, 0x59, 0xae, 0x9a, 0x36, 0x4e, 0xa8, 0xae,
+ 0xe9, 0x05, 0xb8, 0x40, 0x13, 0xaa, 0x6b, 0xf2, 0xf0, 0x2e, 0xc3, 0xb4, 0xaa, 0xd2, 0x31, 0x6b,
+ 0xaa, 0xcc, 0xce, 0x58, 0x4e, 0x59, 0x08, 0x05, 0x4b, 0x55, 0xd7, 0xa9, 0x01, 0xcb, 0x71, 0x47,
+ 0xbc, 0x0c, 0x0f, 0xf8, 0xc1, 0x0a, 0x02, 0xa7, 0x06, 0x46, 0x19, 0x85, 0x2e, 0xc3, 0xb4, 0x75,
+ 0x30, 0x08, 0x14, 0x43, 0x6f, 0xb4, 0x0e, 0xa2, 0xb0, 0x8b, 0x30, 0x63, 0xed, 0x5b, 0x83, 0xb8,
+ 0x27, 0x82, 0x38, 0xd1, 0xda, 0xb7, 0xa2, 0xc0, 0x47, 0xc9, 0x81, 0xdb, 0x46, 0xaa, 0xe2, 0xa2,
+ 0x76, 0xf9, 0x64, 0xd0, 0x3c, 0xa0, 0x10, 0xcf, 0x81, 0xa0, 0xaa, 0x32, 0x32, 0x94, 0x96, 0x8e,
+ 0x64, 0xc5, 0x46, 0x86, 0xe2, 0x94, 0x4f, 0x07, 0x8d, 0x4b, 0xaa, 0x5a, 0x27, 0xda, 0x1a, 0x51,
+ 0x8a, 0x4f, 0xc0, 0x94, 0xd9, 0xba, 0xae, 0xd2, 0x94, 0x94, 0x2d, 0x1b, 0x75, 0xb4, 0x97, 0xcb,
+ 0x8f, 0x90, 0xf8, 0x4e, 0x62, 0x05, 0x49, 0xc8, 0x1d, 0x22, 0x16, 0x1f, 0x07, 0x41, 0x75, 0xf6,
+ 0x15, 0xdb, 0x22, 0x7b, 0xb2, 0x63, 0x29, 0x2a, 0x2a, 0x3f, 0x4a, 0x4d, 0xa9, 0x7c, 0x9b, 0x8b,
+ 0xf1, 0x92, 0x70, 0x6e, 0x69, 0x1d, 0x97, 0x33, 0x3e, 0x46, 0x97, 0x04, 0x91, 0x31, 0xb6, 0x79,
+ 0x10, 0x70, 0x28, 0x42, 0x2f, 0x9e, 0x27, 0x66, 0x25, 0x6b, 0xdf, 0x0a, 0xbe, 0xf7, 0x61, 0x98,
+ 0xc0, 0x96, 0xfe, 0x4b, 0x1f, 0xa7, 0x0d, 0x99, 0xb5, 0x1f, 0x78, 0xe3, 0x12, 0x9c, 0xc0, 0x46,
+ 0x3d, 0xe4, 0x2a, 0x6d, 0xc5, 0x55, 0x02, 0xd6, 0x1f, 0x23, 0xd6, 0x38, 0xee, 0x5b, 0x4c, 0x19,
+ 0xf2, 0xd3, 0xee, 0xb7, 0x0e, 0xbc, 0xcc, 0x7a, 0x8a, 0xfa, 0x89, 0x65, 0x3c, 0xb7, 0x3e, 0xb0,
+ 0xa6, 0x7b, 0xae, 0x0a, 0xc5, 0x60, 0xe2, 0x8b, 0x79, 0xa0, 0xa9, 0x2f, 0x24, 0x70, 0x17, 0xb4,
+ 0xda, 0x58, 0xc3, 0xfd, 0xcb, 0x4b, 0x75, 0x21, 0x89, 0xfb, 0xa8, 0xcd, 0x8d, 0xdd, 0xba, 0x2c,
+ 0xed, 0x6d, 0xef, 0x6e, 0x6c, 0xd5, 0x85, 0x54, 0xb0, 0x61, 0xff, 0x4e, 0x12, 0x4a, 0xe1, 0xb3,
+ 0x97, 0xf8, 0x53, 0x70, 0x92, 0x5f, 0x94, 0x38, 0xc8, 0x95, 0x6f, 0x69, 0x36, 0x59, 0x8b, 0x3d,
+ 0x85, 0xd6, 0x45, 0x2f, 0x1b, 0x66, 0x98, 0x55, 0x13, 0xb9, 0xcf, 0x6b, 0x36, 0x5e, 0x69, 0x3d,
+ 0xc5, 0x15, 0x37, 0xe1, 0xb4, 0x61, 0xca, 0x8e, 0xab, 0x18, 0x6d, 0xc5, 0x6e, 0xcb, 0xfe, 0x15,
+ 0x95, 0xac, 0xa8, 0x2a, 0x72, 0x1c, 0x93, 0xd6, 0x40, 0x8f, 0xe5, 0x23, 0x86, 0xd9, 0x64, 0xc6,
+ 0x7e, 0x71, 0xa8, 0x31, 0xd3, 0x48, 0xe6, 0xa6, 0x8e, 0xca, 0xdc, 0x07, 0x21, 0xdf, 0x53, 0x2c,
+ 0x19, 0x19, 0xae, 0x7d, 0x40, 0x3a, 0xee, 0x9c, 0x94, 0xeb, 0x29, 0x56, 0x1d, 0x3f, 0x7f, 0x38,
+ 0x07, 0x9f, 0xef, 0xa7, 0xa0, 0x18, 0xec, 0xba, 0xf1, 0x21, 0x46, 0x25, 0x05, 0x2a, 0x41, 0xb6,
+ 0xb0, 0x87, 0xef, 0xdb, 0xa3, 0x2f, 0xac, 0xe2, 0xca, 0x55, 0xcd, 0xd2, 0x5e, 0x58, 0xa2, 0x48,
+ 0xdc, 0x35, 0xe0, 0xd4, 0x42, 0xb4, 0xf7, 0xc8, 0x49, 0xec, 0x49, 0x5c, 0x87, 0xec, 0x75, 0x87,
+ 0x70, 0x67, 0x09, 0xf7, 0x23, 0xf7, 0xe7, 0x7e, 0xae, 0x49, 0xc8, 0xf3, 0xcf, 0x35, 0xe5, 0xed,
+ 0x86, 0xb4, 0x55, 0xdb, 0x94, 0x18, 0x5c, 0x3c, 0x05, 0x69, 0x5d, 0xb9, 0x7d, 0x10, 0xae, 0x71,
+ 0x44, 0x34, 0x6a, 0xe0, 0x4f, 0x41, 0xfa, 0x16, 0x52, 0x6e, 0x84, 0x2b, 0x0b, 0x11, 0x7d, 0x80,
+ 0xa9, 0x7f, 0x0e, 0x32, 0x24, 0x5e, 0x22, 0x00, 0x8b, 0x98, 0x30, 0x26, 0xe6, 0x20, 0xbd, 0xda,
+ 0x90, 0x70, 0xfa, 0x0b, 0x50, 0xa4, 0x52, 0x79, 0x67, 0xa3, 0xbe, 0x5a, 0x17, 0x92, 0x73, 0xcb,
+ 0x90, 0xa5, 0x41, 0xc0, 0x4b, 0xc3, 0x0b, 0x83, 0x30, 0xc6, 0x1e, 0x19, 0x47, 0x82, 0x6b, 0xf7,
+ 0xb6, 0x56, 0xea, 0x92, 0x90, 0x0c, 0x4e, 0xaf, 0x03, 0xc5, 0x60, 0xc3, 0xfd, 0xe1, 0xe4, 0xd4,
+ 0xb7, 0x13, 0x50, 0x08, 0x34, 0xd0, 0xb8, 0xf3, 0x51, 0x74, 0xdd, 0xbc, 0x25, 0x2b, 0xba, 0xa6,
+ 0x38, 0x2c, 0x29, 0x80, 0x88, 0x6a, 0x58, 0x32, 0xea, 0xa4, 0x7d, 0x28, 0xce, 0xbf, 0x9e, 0x00,
+ 0x21, 0xda, 0xbb, 0x46, 0x1c, 0x4c, 0xfc, 0x44, 0x1d, 0x7c, 0x2d, 0x01, 0xa5, 0x70, 0xc3, 0x1a,
+ 0x71, 0xef, 0xec, 0x4f, 0xd4, 0xbd, 0xb7, 0x92, 0x30, 0x11, 0x6a, 0x53, 0x47, 0xf5, 0xee, 0x33,
+ 0x30, 0xa5, 0xb5, 0x51, 0xcf, 0x32, 0x5d, 0x64, 0xa8, 0x07, 0xb2, 0x8e, 0x6e, 0x22, 0xbd, 0x3c,
+ 0x47, 0x36, 0x8a, 0x73, 0xf7, 0x6f, 0x84, 0x17, 0x36, 0x7c, 0xdc, 0x26, 0x86, 0x55, 0xa7, 0x37,
+ 0xd6, 0xea, 0x5b, 0x3b, 0x8d, 0xdd, 0xfa, 0xf6, 0xea, 0x8b, 0xf2, 0xde, 0xf6, 0xcf, 0x6c, 0x37,
+ 0x9e, 0xdf, 0x96, 0x04, 0x2d, 0x62, 0xf6, 0x01, 0x2e, 0xf5, 0x1d, 0x10, 0xa2, 0x4e, 0x89, 0x27,
+ 0x61, 0x98, 0x5b, 0xc2, 0x98, 0x38, 0x0d, 0x93, 0xdb, 0x0d, 0xb9, 0xb9, 0xb1, 0x56, 0x97, 0xeb,
+ 0x57, 0xaf, 0xd6, 0x57, 0x77, 0x9b, 0xf4, 0x6a, 0xc3, 0xb3, 0xde, 0x0d, 0x2f, 0xea, 0x57, 0x53,
+ 0x30, 0x3d, 0xc4, 0x13, 0xb1, 0xc6, 0x0e, 0x25, 0xf4, 0x9c, 0xf4, 0xd4, 0x28, 0xde, 0x2f, 0xe0,
+ 0xae, 0x60, 0x47, 0xb1, 0x5d, 0x76, 0x86, 0x79, 0x1c, 0x70, 0x94, 0x0c, 0x57, 0xeb, 0x68, 0xc8,
+ 0x66, 0x37, 0x41, 0xf4, 0xa4, 0x32, 0xe9, 0xcb, 0xe9, 0x65, 0xd0, 0xc7, 0x40, 0xb4, 0x4c, 0x47,
+ 0x73, 0xb5, 0x9b, 0x48, 0xd6, 0x0c, 0x7e, 0x6d, 0x84, 0x4f, 0x2e, 0x69, 0x49, 0xe0, 0x9a, 0x0d,
+ 0xc3, 0xf5, 0xac, 0x0d, 0xd4, 0x55, 0x22, 0xd6, 0x78, 0x03, 0x4f, 0x49, 0x02, 0xd7, 0x78, 0xd6,
+ 0x67, 0xa1, 0xd8, 0x36, 0xfb, 0xb8, 0x9d, 0xa3, 0x76, 0xb8, 0x5e, 0x24, 0xa4, 0x02, 0x95, 0x79,
+ 0x26, 0xac, 0x51, 0xf7, 0xef, 0xab, 0x8a, 0x52, 0x81, 0xca, 0xa8, 0xc9, 0x63, 0x30, 0xa9, 0x74,
+ 0xbb, 0x36, 0x26, 0xe7, 0x44, 0xf4, 0xe8, 0x51, 0xf2, 0xc4, 0xc4, 0x70, 0xf6, 0x39, 0xc8, 0xf1,
+ 0x38, 0xe0, 0x92, 0x8c, 0x23, 0x21, 0x5b, 0xf4, 0x3c, 0x9d, 0x9c, 0xcf, 0x4b, 0x39, 0x83, 0x2b,
+ 0xcf, 0x42, 0x51, 0x73, 0x64, 0xff, 0xfa, 0x3d, 0x79, 0x26, 0x39, 0x9f, 0x93, 0x0a, 0x9a, 0xe3,
+ 0x5d, 0x5d, 0xce, 0xbd, 0x91, 0x84, 0x52, 0xf8, 0xf3, 0x81, 0xb8, 0x06, 0x39, 0xdd, 0x54, 0x15,
+ 0x92, 0x5a, 0xf4, 0xdb, 0xd5, 0x7c, 0xcc, 0x17, 0x87, 0x85, 0x4d, 0x66, 0x2f, 0x79, 0xc8, 0xd9,
+ 0x7f, 0x49, 0x40, 0x8e, 0x8b, 0xc5, 0x13, 0x90, 0xb6, 0x14, 0x77, 0x9f, 0xd0, 0x65, 0x56, 0x92,
+ 0x42, 0x42, 0x22, 0xcf, 0x58, 0xee, 0x58, 0x8a, 0x41, 0x52, 0x80, 0xc9, 0xf1, 0x33, 0x9e, 0x57,
+ 0x1d, 0x29, 0x6d, 0x72, 0xae, 0x31, 0x7b, 0x3d, 0x64, 0xb8, 0x0e, 0x9f, 0x57, 0x26, 0x5f, 0x65,
+ 0x62, 0xf1, 0x49, 0x98, 0x72, 0x6d, 0x45, 0xd3, 0x43, 0xb6, 0x69, 0x62, 0x2b, 0x70, 0x85, 0x67,
+ 0x5c, 0x85, 0x53, 0x9c, 0xb7, 0x8d, 0x5c, 0x45, 0xdd, 0x47, 0x6d, 0x1f, 0x94, 0x25, 0xf7, 0x17,
+ 0x27, 0x99, 0xc1, 0x1a, 0xd3, 0x73, 0xec, 0xdc, 0xf7, 0x12, 0x30, 0xc5, 0x4f, 0x62, 0x6d, 0x2f,
+ 0x58, 0x5b, 0x00, 0x8a, 0x61, 0x98, 0x6e, 0x30, 0x5c, 0x83, 0xa9, 0x3c, 0x80, 0x5b, 0xa8, 0x79,
+ 0x20, 0x29, 0x40, 0x30, 0xdb, 0x03, 0xf0, 0x35, 0x47, 0x86, 0xed, 0x34, 0x14, 0xd8, 0xb7, 0x21,
+ 0xf2, 0x81, 0x91, 0x9e, 0xdd, 0x81, 0x8a, 0xf0, 0x91, 0x4d, 0x9c, 0x81, 0x4c, 0x0b, 0x75, 0x35,
+ 0x83, 0xdd, 0xf8, 0xd2, 0x07, 0x7e, 0xc3, 0x92, 0xf6, 0x6e, 0x58, 0x56, 0x3e, 0x0d, 0xd3, 0xaa,
+ 0xd9, 0x8b, 0xba, 0xbb, 0x22, 0x44, 0xee, 0x0f, 0x9c, 0x6b, 0x89, 0x97, 0xc0, 0x6f, 0x31, 0xdf,
+ 0x4b, 0x24, 0xbe, 0x94, 0x4c, 0xad, 0xef, 0xac, 0x7c, 0x35, 0x39, 0xbb, 0x4e, 0xa1, 0x3b, 0x7c,
+ 0xa4, 0x12, 0xea, 0xe8, 0x48, 0xc5, 0xde, 0xc3, 0x97, 0x9f, 0x84, 0xa7, 0xba, 0x9a, 0xbb, 0xdf,
+ 0x6f, 0x2d, 0xa8, 0x66, 0xef, 0x5c, 0xd7, 0xec, 0x9a, 0xfe, 0x37, 0x55, 0xfc, 0x44, 0x1e, 0xc8,
+ 0x5f, 0xec, 0xbb, 0x6a, 0xde, 0x93, 0xce, 0xc6, 0x7e, 0x84, 0xad, 0x6e, 0xc3, 0x34, 0x33, 0x96,
+ 0xc9, 0x87, 0x1d, 0x7a, 0x3c, 0x11, 0xef, 0x7b, 0x39, 0x56, 0xfe, 0xfa, 0xdb, 0xa4, 0x5c, 0x4b,
+ 0x53, 0x0c, 0x8a, 0x75, 0xf4, 0x04, 0x53, 0x95, 0xe0, 0x81, 0x10, 0x1f, 0x5d, 0x9a, 0xc8, 0x8e,
+ 0x61, 0xfc, 0x0e, 0x63, 0x9c, 0x0e, 0x30, 0x36, 0x19, 0xb4, 0xba, 0x0a, 0x13, 0xc7, 0xe1, 0xfa,
+ 0x27, 0xc6, 0x55, 0x44, 0x41, 0x92, 0x75, 0x98, 0x24, 0x24, 0x6a, 0xdf, 0x71, 0xcd, 0x1e, 0xd9,
+ 0xf7, 0xee, 0x4f, 0xf3, 0xcf, 0x6f, 0xd3, 0xb5, 0x52, 0xc2, 0xb0, 0x55, 0x0f, 0x55, 0xad, 0x02,
+ 0xf9, 0x96, 0xd5, 0x46, 0xaa, 0x1e, 0xc3, 0xf0, 0x26, 0x73, 0xc4, 0xb3, 0xaf, 0x7e, 0x0a, 0x66,
+ 0xf0, 0xdf, 0x64, 0x5b, 0x0a, 0x7a, 0x12, 0x7f, 0x93, 0x56, 0xfe, 0xde, 0x2b, 0x74, 0x39, 0x4e,
+ 0x7b, 0x04, 0x01, 0x9f, 0x02, 0xb3, 0xd8, 0x45, 0xae, 0x8b, 0x6c, 0x47, 0x56, 0xf4, 0x61, 0xee,
+ 0x05, 0xae, 0x22, 0xca, 0x9f, 0x7f, 0x27, 0x3c, 0x8b, 0xeb, 0x14, 0x59, 0xd3, 0xf5, 0xea, 0x1e,
+ 0x9c, 0x1c, 0x92, 0x15, 0x23, 0x70, 0xbe, 0xca, 0x38, 0x67, 0x06, 0x32, 0x03, 0xd3, 0xee, 0x00,
+ 0x97, 0x7b, 0x73, 0x39, 0x02, 0xe7, 0x1f, 0x30, 0x4e, 0x91, 0x61, 0xf9, 0x94, 0x62, 0xc6, 0xe7,
+ 0x60, 0xea, 0x26, 0xb2, 0x5b, 0xa6, 0xc3, 0xae, 0x7f, 0x46, 0xa0, 0x7b, 0x8d, 0xd1, 0x4d, 0x32,
+ 0x20, 0xb9, 0x0f, 0xc2, 0x5c, 0x97, 0x21, 0xd7, 0x51, 0x54, 0x34, 0x02, 0xc5, 0x17, 0x18, 0xc5,
+ 0x38, 0xb6, 0xc7, 0xd0, 0x1a, 0x14, 0xbb, 0x26, 0xab, 0x4c, 0xf1, 0xf0, 0xd7, 0x19, 0xbc, 0xc0,
+ 0x31, 0x8c, 0xc2, 0x32, 0xad, 0xbe, 0x8e, 0xcb, 0x56, 0x3c, 0xc5, 0x1f, 0x72, 0x0a, 0x8e, 0x61,
+ 0x14, 0xc7, 0x08, 0xeb, 0x1f, 0x71, 0x0a, 0x27, 0x10, 0xcf, 0x67, 0xa1, 0x60, 0x1a, 0xfa, 0x81,
+ 0x69, 0x8c, 0xe2, 0xc4, 0x17, 0x19, 0x03, 0x30, 0x08, 0x26, 0xb8, 0x02, 0xf9, 0x51, 0x27, 0xe2,
+ 0x4f, 0xde, 0xe1, 0xcb, 0x83, 0xcf, 0xc0, 0x3a, 0x4c, 0xf2, 0x0d, 0x4a, 0x33, 0x8d, 0x11, 0x28,
+ 0xbe, 0xcc, 0x28, 0x4a, 0x01, 0x18, 0x1b, 0x86, 0x8b, 0x1c, 0xb7, 0x8b, 0x46, 0x21, 0x79, 0x83,
+ 0x0f, 0x83, 0x41, 0x58, 0x28, 0x5b, 0xc8, 0x50, 0xf7, 0x47, 0x63, 0xf8, 0x0a, 0x0f, 0x25, 0xc7,
+ 0x60, 0x8a, 0x55, 0x98, 0xe8, 0x29, 0xb6, 0xb3, 0xaf, 0xe8, 0x23, 0x4d, 0xc7, 0x9f, 0x32, 0x8e,
+ 0xa2, 0x07, 0x62, 0x11, 0xe9, 0x1b, 0xc7, 0xa1, 0xf9, 0x2a, 0x8f, 0x48, 0x00, 0xc6, 0x96, 0x9e,
+ 0xe3, 0x92, 0xbb, 0xb2, 0xe3, 0xb0, 0xfd, 0x19, 0x5f, 0x7a, 0x14, 0xbb, 0x15, 0x64, 0xbc, 0x02,
+ 0x79, 0x47, 0xbb, 0x3d, 0x12, 0xcd, 0x9f, 0xf3, 0x99, 0x26, 0x00, 0x0c, 0x7e, 0x11, 0x4e, 0x0d,
+ 0x2d, 0x13, 0x23, 0x90, 0xfd, 0x05, 0x23, 0x3b, 0x31, 0xa4, 0x54, 0xb0, 0x2d, 0xe1, 0xb8, 0x94,
+ 0x7f, 0xc9, 0xb7, 0x04, 0x14, 0xe1, 0xda, 0xc1, 0x67, 0x05, 0x47, 0xe9, 0x1c, 0x2f, 0x6a, 0x7f,
+ 0xc5, 0xa3, 0x46, 0xb1, 0xa1, 0xa8, 0xed, 0xc2, 0x09, 0xc6, 0x78, 0xbc, 0x79, 0xfd, 0x1a, 0xdf,
+ 0x58, 0x29, 0x7a, 0x2f, 0x3c, 0xbb, 0x9f, 0x86, 0x59, 0x2f, 0x9c, 0xbc, 0x29, 0x75, 0xe4, 0x9e,
+ 0x62, 0x8d, 0xc0, 0xfc, 0x75, 0xc6, 0xcc, 0x77, 0x7c, 0xaf, 0xab, 0x75, 0xb6, 0x14, 0x0b, 0x93,
+ 0xbf, 0x00, 0x65, 0x4e, 0xde, 0x37, 0x6c, 0xa4, 0x9a, 0x5d, 0x43, 0xbb, 0x8d, 0xda, 0x23, 0x50,
+ 0xff, 0x75, 0x64, 0xaa, 0xf6, 0x02, 0x70, 0xcc, 0xbc, 0x01, 0x82, 0xd7, 0xab, 0xc8, 0x5a, 0xcf,
+ 0x32, 0x6d, 0x37, 0x86, 0xf1, 0x6f, 0xf8, 0x4c, 0x79, 0xb8, 0x0d, 0x02, 0xab, 0xd6, 0xa1, 0x44,
+ 0x1e, 0x47, 0x4d, 0xc9, 0xbf, 0x65, 0x44, 0x13, 0x3e, 0x8a, 0x6d, 0x1c, 0xaa, 0xd9, 0xb3, 0x14,
+ 0x7b, 0x94, 0xfd, 0xef, 0xef, 0xf8, 0xc6, 0xc1, 0x20, 0x6c, 0xe3, 0x70, 0x0f, 0x2c, 0x84, 0xab,
+ 0xfd, 0x08, 0x0c, 0xdf, 0xe0, 0x1b, 0x07, 0xc7, 0x30, 0x0a, 0xde, 0x30, 0x8c, 0x40, 0xf1, 0xf7,
+ 0x9c, 0x82, 0x63, 0x30, 0xc5, 0x27, 0xfd, 0x42, 0x6b, 0xa3, 0xae, 0xe6, 0xb8, 0x36, 0x6d, 0x85,
+ 0xef, 0x4f, 0xf5, 0xcd, 0x77, 0xc2, 0x4d, 0x98, 0x14, 0x80, 0xe2, 0x9d, 0x88, 0x5d, 0xa1, 0x92,
+ 0x93, 0x52, 0xbc, 0x63, 0xdf, 0xe2, 0x3b, 0x51, 0x00, 0x86, 0x7d, 0x0b, 0x74, 0x88, 0x38, 0xec,
+ 0x2a, 0x3e, 0x1f, 0x8c, 0x40, 0xf7, 0xed, 0x88, 0x73, 0x4d, 0x8e, 0xc5, 0x9c, 0x81, 0xfe, 0xa7,
+ 0x6f, 0xdc, 0x40, 0x07, 0x23, 0x65, 0xe7, 0x3f, 0x44, 0xfa, 0x9f, 0x3d, 0x8a, 0xa4, 0x7b, 0xc8,
+ 0x64, 0xa4, 0x9f, 0x12, 0xe3, 0x7e, 0x05, 0x54, 0xfe, 0xf9, 0x7b, 0x6c, 0xbc, 0xe1, 0x76, 0xaa,
+ 0xba, 0x89, 0x93, 0x3c, 0xdc, 0xf4, 0xc4, 0x93, 0xbd, 0x72, 0xcf, 0xcb, 0xf3, 0x50, 0xcf, 0x53,
+ 0xbd, 0x0a, 0x13, 0xa1, 0x86, 0x27, 0x9e, 0xea, 0x17, 0x18, 0x55, 0x31, 0xd8, 0xef, 0x54, 0x97,
+ 0x21, 0x8d, 0x9b, 0x97, 0x78, 0xf8, 0x2f, 0x32, 0x38, 0x31, 0xaf, 0x7e, 0x1c, 0x72, 0xbc, 0x69,
+ 0x89, 0x87, 0xfe, 0x12, 0x83, 0x7a, 0x10, 0x0c, 0xe7, 0x0d, 0x4b, 0x3c, 0xfc, 0x97, 0x39, 0x9c,
+ 0x43, 0x30, 0x7c, 0xf4, 0x10, 0xfe, 0xe3, 0xaf, 0xa4, 0x59, 0xd1, 0xe1, 0xb1, 0xbb, 0x02, 0xe3,
+ 0xac, 0x53, 0x89, 0x47, 0x7f, 0x96, 0xbd, 0x9c, 0x23, 0xaa, 0x17, 0x21, 0x33, 0x62, 0xc0, 0x7f,
+ 0x8d, 0x41, 0xa9, 0x7d, 0x75, 0x15, 0x0a, 0x81, 0xee, 0x24, 0x1e, 0xfe, 0xeb, 0x0c, 0x1e, 0x44,
+ 0x61, 0xd7, 0x59, 0x77, 0x12, 0x4f, 0xf0, 0x1b, 0xdc, 0x75, 0x86, 0xc0, 0x61, 0xe3, 0x8d, 0x49,
+ 0x3c, 0xfa, 0x37, 0x79, 0xd4, 0x39, 0xa4, 0xfa, 0x2c, 0xe4, 0xbd, 0x62, 0x13, 0x8f, 0xff, 0x2d,
+ 0x86, 0xf7, 0x31, 0x38, 0x02, 0x81, 0x62, 0x17, 0x4f, 0xf1, 0xdb, 0x3c, 0x02, 0x01, 0x14, 0x5e,
+ 0x46, 0xd1, 0x06, 0x26, 0x9e, 0xe9, 0x77, 0xf8, 0x32, 0x8a, 0xf4, 0x2f, 0x78, 0x36, 0xc9, 0x9e,
+ 0x1f, 0x4f, 0xf1, 0xbb, 0x7c, 0x36, 0x89, 0x3d, 0x76, 0x23, 0xda, 0x11, 0xc4, 0x73, 0xfc, 0x3e,
+ 0x77, 0x23, 0xd2, 0x10, 0x54, 0x77, 0x40, 0x1c, 0xec, 0x06, 0xe2, 0xf9, 0x3e, 0xc7, 0xf8, 0xa6,
+ 0x06, 0x9a, 0x81, 0xea, 0xf3, 0x70, 0x62, 0x78, 0x27, 0x10, 0xcf, 0xfa, 0xf9, 0x7b, 0x91, 0xb3,
+ 0x5b, 0xb0, 0x11, 0xa8, 0xee, 0xfa, 0x25, 0x25, 0xd8, 0x05, 0xc4, 0xd3, 0xbe, 0x7a, 0x2f, 0xbc,
+ 0x71, 0x07, 0x9b, 0x80, 0x6a, 0x0d, 0xc0, 0x2f, 0xc0, 0xf1, 0x5c, 0xaf, 0x31, 0xae, 0x00, 0x08,
+ 0x2f, 0x0d, 0x56, 0x7f, 0xe3, 0xf1, 0x5f, 0xe0, 0x4b, 0x83, 0x21, 0xf0, 0xd2, 0xe0, 0xa5, 0x37,
+ 0x1e, 0xfd, 0x3a, 0x5f, 0x1a, 0x1c, 0x82, 0x33, 0x3b, 0x50, 0xdd, 0xe2, 0x19, 0xbe, 0xc8, 0x33,
+ 0x3b, 0x80, 0xaa, 0x6e, 0xc3, 0xd4, 0x40, 0x41, 0x8c, 0xa7, 0xfa, 0x12, 0xa3, 0x12, 0xa2, 0xf5,
+ 0x30, 0x58, 0xbc, 0x58, 0x31, 0x8c, 0x67, 0xfb, 0xe3, 0x48, 0xf1, 0x62, 0xb5, 0xb0, 0x7a, 0x05,
+ 0x72, 0x46, 0x5f, 0xd7, 0xf1, 0xe2, 0x11, 0xef, 0xff, 0xcb, 0xbd, 0xf2, 0xbf, 0xbf, 0xcf, 0xa2,
+ 0xc3, 0x01, 0xd5, 0x65, 0xc8, 0xa0, 0x5e, 0x0b, 0xb5, 0xe3, 0x90, 0xff, 0xf1, 0x3e, 0xdf, 0x30,
+ 0xb1, 0x75, 0xf5, 0x59, 0x00, 0x7a, 0x35, 0x42, 0x3e, 0xfb, 0xc5, 0x60, 0xff, 0xf3, 0x7d, 0xf6,
+ 0x9b, 0x1a, 0x1f, 0xe2, 0x13, 0xd0, 0x5f, 0xe8, 0xdc, 0x9f, 0xe0, 0x9d, 0x30, 0x01, 0x99, 0x91,
+ 0xcb, 0x30, 0x7e, 0xdd, 0x31, 0x0d, 0x57, 0xe9, 0xc6, 0xa1, 0xff, 0x8b, 0xa1, 0xb9, 0x3d, 0x0e,
+ 0x58, 0xcf, 0xb4, 0x91, 0xab, 0x74, 0x9d, 0x38, 0xec, 0x7f, 0x33, 0xac, 0x07, 0xc0, 0x60, 0x55,
+ 0x71, 0xdc, 0x51, 0xc6, 0xfd, 0x3f, 0x1c, 0xcc, 0x01, 0xd8, 0x69, 0xfc, 0xf7, 0x0d, 0x74, 0x10,
+ 0x87, 0x7d, 0x97, 0x3b, 0xcd, 0xec, 0xab, 0x1f, 0x87, 0x3c, 0xfe, 0x93, 0xfe, 0x50, 0x2e, 0x06,
+ 0xfc, 0xbf, 0x0c, 0xec, 0x23, 0xf0, 0x9b, 0x1d, 0xb7, 0xed, 0x6a, 0xf1, 0xc1, 0xfe, 0x3f, 0x36,
+ 0xd3, 0xdc, 0xbe, 0x5a, 0x83, 0x82, 0xe3, 0xb6, 0xdb, 0x7d, 0xd6, 0x9f, 0xc6, 0xc0, 0xff, 0xff,
+ 0x7d, 0xef, 0xca, 0xc2, 0xc3, 0xe0, 0xd9, 0xbe, 0x75, 0xc3, 0xb5, 0x4c, 0xf2, 0x99, 0x23, 0x8e,
+ 0xe1, 0x1e, 0x63, 0x08, 0x40, 0x56, 0xea, 0xc3, 0xaf, 0x6f, 0x61, 0xdd, 0x5c, 0x37, 0xe9, 0xc5,
+ 0xed, 0x4b, 0x73, 0xf1, 0x37, 0xb0, 0xf0, 0x7b, 0x19, 0x28, 0xab, 0x66, 0xaf, 0x65, 0x3a, 0xe7,
+ 0x0c, 0xa4, 0xb9, 0xfb, 0xc8, 0x3e, 0x67, 0x1a, 0x8c, 0x4f, 0x4c, 0x99, 0x06, 0x9a, 0x3d, 0xde,
+ 0x3d, 0xee, 0xdc, 0x29, 0xc8, 0x34, 0xfb, 0xad, 0xd6, 0x81, 0x28, 0x40, 0xca, 0xe9, 0xb7, 0xd8,
+ 0x8f, 0xad, 0xf0, 0x9f, 0x73, 0xdf, 0x4f, 0x41, 0xa1, 0xa9, 0xf4, 0x2c, 0x1d, 0x35, 0x0c, 0xd4,
+ 0xe8, 0x88, 0x65, 0xc8, 0x92, 0x61, 0x3e, 0x43, 0x8c, 0x12, 0xd7, 0xc6, 0x24, 0xf6, 0xec, 0x69,
+ 0x16, 0xc9, 0xfd, 0x76, 0xd2, 0xd3, 0x2c, 0x7a, 0x9a, 0xf3, 0xf4, 0x7a, 0xdb, 0xd3, 0x9c, 0xf7,
+ 0x34, 0x4b, 0xe4, 0x92, 0x3b, 0xe5, 0x69, 0x96, 0x3c, 0xcd, 0x32, 0xf9, 0x88, 0x33, 0xe1, 0x69,
+ 0x96, 0x3d, 0xcd, 0x05, 0xf2, 0xd9, 0x26, 0xed, 0x69, 0x2e, 0x78, 0x9a, 0x8b, 0xe4, 0x6b, 0xcd,
+ 0x94, 0xa7, 0xb9, 0xe8, 0x69, 0x2e, 0x91, 0x2f, 0x34, 0xa2, 0xa7, 0xb9, 0xe4, 0x69, 0x2e, 0x93,
+ 0xdf, 0x54, 0x8d, 0x7b, 0x9a, 0xcb, 0xe2, 0x2c, 0x8c, 0xd3, 0x91, 0x3d, 0x4d, 0x3e, 0xe3, 0x4f,
+ 0x5e, 0x1b, 0x93, 0xb8, 0xc0, 0xd7, 0x3d, 0x43, 0x7e, 0x37, 0x95, 0xf5, 0x75, 0xcf, 0xf8, 0xba,
+ 0x45, 0xf2, 0xdf, 0x37, 0x04, 0x5f, 0xb7, 0xe8, 0xeb, 0xce, 0x97, 0x27, 0x70, 0x76, 0xf8, 0xba,
+ 0xf3, 0xbe, 0x6e, 0xa9, 0x5c, 0xc2, 0xf1, 0xf7, 0x75, 0x4b, 0xbe, 0x6e, 0xb9, 0x3c, 0x79, 0x26,
+ 0x31, 0x5f, 0xf4, 0x75, 0xcb, 0xe2, 0x53, 0x50, 0x70, 0xfa, 0x2d, 0x99, 0xed, 0xf3, 0xe4, 0xf7,
+ 0x59, 0x85, 0x45, 0x58, 0xc0, 0x19, 0x41, 0x26, 0xf5, 0xda, 0x98, 0x04, 0x4e, 0xbf, 0xc5, 0xb6,
+ 0xe1, 0x95, 0x22, 0x90, 0xdb, 0x27, 0x99, 0xfc, 0xac, 0x7a, 0x65, 0xed, 0xcd, 0xbb, 0x95, 0xb1,
+ 0xef, 0xde, 0xad, 0x8c, 0xfd, 0xeb, 0xdd, 0xca, 0xd8, 0x5b, 0x77, 0x2b, 0x89, 0x77, 0xef, 0x56,
+ 0x12, 0xef, 0xdd, 0xad, 0x24, 0xee, 0x1c, 0x56, 0x12, 0x5f, 0x39, 0xac, 0x24, 0xbe, 0x76, 0x58,
+ 0x49, 0x7c, 0xf3, 0xb0, 0x92, 0x78, 0xf3, 0xb0, 0x32, 0xf6, 0xdd, 0xc3, 0xca, 0xd8, 0x5b, 0x87,
+ 0x95, 0xc4, 0x0f, 0x0f, 0x2b, 0x63, 0xef, 0x1e, 0x56, 0x12, 0xef, 0x1d, 0x56, 0xc6, 0xee, 0xfc,
+ 0xa0, 0x32, 0xd6, 0xca, 0x92, 0x34, 0x3a, 0xff, 0xa3, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb0, 0xc1,
+ 0x3e, 0xd9, 0x8d, 0x35, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -2632,35 +2667,3 @@ func valueToStringOne(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
-
-func init() { proto.RegisterFile("combos/neither/one.proto", fileDescriptor_one_827a0063df79db69) }
-
-var fileDescriptor_one_827a0063df79db69 = []byte{
- // 405 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0xbf, 0x4f, 0x1b, 0x31,
- 0x14, 0x07, 0x70, 0x3f, 0x8e, 0x24, 0xe0, 0x84, 0x92, 0xde, 0xf4, 0xca, 0xf0, 0x64, 0x31, 0x79,
- 0x21, 0x69, 0xee, 0x12, 0x7e, 0xac, 0xa8, 0xaa, 0xb2, 0x54, 0x48, 0xe1, 0x0f, 0x40, 0x98, 0x3a,
- 0x21, 0x12, 0x77, 0x46, 0xdc, 0xdd, 0xd0, 0x8d, 0x3f, 0xa7, 0x63, 0xc7, 0xfe, 0x09, 0x8c, 0x8c,
- 0x1d, 0x3a, 0x70, 0xee, 0xd2, 0x91, 0x31, 0x63, 0x95, 0x4b, 0x79, 0xde, 0xde, 0xd7, 0x1f, 0x7b,
- 0xb0, 0xfd, 0x95, 0x78, 0xe3, 0x32, 0xe3, 0x8a, 0x61, 0x6e, 0x97, 0xe5, 0xad, 0x7d, 0x18, 0xba,
- 0xdc, 0x0e, 0xee, 0x1f, 0x5c, 0xe9, 0xe2, 0xc8, 0xe5, 0xf6, 0xe0, 0x68, 0xb1, 0x2c, 0x6f, 0x2b,
- 0x33, 0xb8, 0x71, 0xd9, 0x70, 0xe1, 0x16, 0x6e, 0xd8, 0x98, 0xa9, 0xe6, 0x4d, 0x6a, 0x42, 0x33,
- 0x6d, 0xce, 0x1c, 0x7e, 0x90, 0xad, 0xcb, 0xca, 0x98, 0x6f, 0x71, 0x5f, 0x46, 0x45, 0x65, 0x10,
- 0x14, 0xe8, 0xdd, 0xd9, 0x7a, 0x3c, 0xfc, 0x1d, 0xc9, 0xee, 0xe5, 0x75, 0x76, 0x7f, 0x67, 0x2f,
- 0x72, 0x7b, 0x31, 0x8f, 0x51, 0xb6, 0x3f, 0x2f, 0xed, 0xdd, 0xd7, 0x51, 0xb3, 0x09, 0xa6, 0x62,
- 0xf6, 0x3f, 0xb3, 0x24, 0xb8, 0xa5, 0x40, 0x6f, 0xb1, 0x24, 0x2c, 0x29, 0x46, 0x0a, 0x74, 0x8b,
- 0x25, 0x65, 0x19, 0xe3, 0xb6, 0x02, 0x1d, 0xb1, 0x8c, 0x59, 0x26, 0xd8, 0x52, 0xa0, 0xf7, 0x58,
- 0x26, 0x2c, 0xc7, 0xd8, 0x56, 0xa0, 0xb7, 0x59, 0x8e, 0x59, 0x4e, 0xb0, 0xa3, 0x40, 0xbf, 0x67,
- 0x39, 0x61, 0x39, 0xc5, 0x1d, 0x05, 0x3a, 0x66, 0x39, 0x65, 0x39, 0xc3, 0x5d, 0x05, 0xba, 0xc3,
- 0x72, 0x16, 0x1f, 0xc8, 0xce, 0xe6, 0x66, 0x1f, 0x51, 0x2a, 0xd0, 0xfb, 0x53, 0x31, 0x7b, 0x5b,
- 0x08, 0x36, 0xc2, 0xae, 0x02, 0xdd, 0x0e, 0x36, 0x0a, 0x96, 0x60, 0x4f, 0x81, 0xee, 0x07, 0x4b,
- 0x82, 0xa5, 0xb8, 0xa7, 0x40, 0xef, 0x04, 0x4b, 0x83, 0x8d, 0xf1, 0xdd, 0xfa, 0xfd, 0x83, 0x8d,
- 0x83, 0x4d, 0x70, 0x5f, 0x81, 0xee, 0x05, 0x9b, 0xc4, 0x47, 0xb2, 0x5b, 0x54, 0xe6, 0x2a, 0xb3,
- 0x45, 0x71, 0xbd, 0xb0, 0xd8, 0x57, 0xa0, 0xbb, 0x89, 0x1c, 0xac, 0x1b, 0xd1, 0x7c, 0xea, 0x54,
- 0xcc, 0x64, 0x51, 0x99, 0x2f, 0x1b, 0x3f, 0xef, 0x49, 0x59, 0xda, 0xa2, 0xbc, 0x72, 0xb9, 0x75,
- 0xf3, 0xf3, 0x4f, 0x4f, 0x35, 0x89, 0xe7, 0x9a, 0xc4, 0xaf, 0x9a, 0xc4, 0x4b, 0x4d, 0xf0, 0x5a,
- 0x13, 0xac, 0x6a, 0x82, 0x47, 0x4f, 0xf0, 0xdd, 0x13, 0xfc, 0xf0, 0x04, 0x3f, 0x3d, 0xc1, 0x93,
- 0x27, 0xf1, 0xec, 0x49, 0xbc, 0x78, 0x82, 0xbf, 0x9e, 0xc4, 0xab, 0x27, 0x58, 0x79, 0x12, 0x8f,
- 0x7f, 0x48, 0x98, 0x76, 0x53, 0xa3, 0xf4, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd1, 0x04, 0xd2,
- 0x98, 0x96, 0x02, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.pb.go
index 5f66e81cc0..0c8ad16e33 100644
--- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.pb.go
@@ -3,22 +3,21 @@
package one
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
-import encoding_binary "encoding/binary"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -41,7 +40,7 @@ type Subby struct {
func (m *Subby) Reset() { *m = Subby{} }
func (*Subby) ProtoMessage() {}
func (*Subby) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_2f1bc4354e19d7a9, []int{0}
+ return fileDescriptor_9eef12518f7c4f58, []int{0}
}
func (m *Subby) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -49,8 +48,8 @@ func (m *Subby) XXX_Unmarshal(b []byte) error {
func (m *Subby) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Subby.Marshal(b, m, deterministic)
}
-func (dst *Subby) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Subby.Merge(dst, src)
+func (m *Subby) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Subby.Merge(m, src)
}
func (m *Subby) XXX_Size() int {
return xxx_messageInfo_Subby.Size(m)
@@ -88,7 +87,7 @@ type SampleOneOf struct {
func (m *SampleOneOf) Reset() { *m = SampleOneOf{} }
func (*SampleOneOf) ProtoMessage() {}
func (*SampleOneOf) Descriptor() ([]byte, []int) {
- return fileDescriptor_one_2f1bc4354e19d7a9, []int{1}
+ return fileDescriptor_9eef12518f7c4f58, []int{1}
}
func (m *SampleOneOf) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -96,8 +95,8 @@ func (m *SampleOneOf) XXX_Unmarshal(b []byte) error {
func (m *SampleOneOf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SampleOneOf.Marshal(b, m, deterministic)
}
-func (dst *SampleOneOf) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SampleOneOf.Merge(dst, src)
+func (m *SampleOneOf) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SampleOneOf.Merge(m, src)
}
func (m *SampleOneOf) XXX_Size() int {
return xxx_messageInfo_SampleOneOf.Size(m)
@@ -575,6 +574,39 @@ func init() {
proto.RegisterType((*Subby)(nil), "one.Subby")
proto.RegisterType((*SampleOneOf)(nil), "one.SampleOneOf")
}
+
+func init() { proto.RegisterFile("combos/unmarshaler/one.proto", fileDescriptor_9eef12518f7c4f58) }
+
+var fileDescriptor_9eef12518f7c4f58 = []byte{
+ // 409 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0xbf, 0x4f, 0x1b, 0x31,
+ 0x14, 0x07, 0x70, 0x3f, 0x8e, 0x24, 0xe0, 0x84, 0x92, 0xde, 0xf4, 0x8a, 0xaa, 0x27, 0x8b, 0xc9,
+ 0x0b, 0x49, 0x73, 0x97, 0xf0, 0x63, 0x45, 0x55, 0x95, 0xa5, 0x42, 0x0a, 0x7f, 0x00, 0x8a, 0xa9,
+ 0x13, 0x90, 0x72, 0x67, 0x94, 0xcb, 0x0d, 0xdd, 0xf8, 0x73, 0x3a, 0x76, 0xec, 0x9f, 0xc0, 0xc8,
+ 0xd8, 0xa1, 0x03, 0xe7, 0x2e, 0x1d, 0x19, 0x33, 0x56, 0xb9, 0xb4, 0xcf, 0xdb, 0xfb, 0xfa, 0x63,
+ 0x0f, 0xb6, 0xbf, 0xf2, 0xfd, 0xad, 0xcb, 0x8c, 0x2b, 0xfa, 0x65, 0x9e, 0x4d, 0x97, 0xc5, 0xdd,
+ 0x74, 0x61, 0x97, 0x7d, 0x97, 0xdb, 0xde, 0xc3, 0xd2, 0xad, 0x5c, 0x1c, 0xb9, 0xdc, 0x1e, 0x9d,
+ 0xcc, 0xef, 0x57, 0x77, 0xa5, 0xe9, 0xdd, 0xba, 0xac, 0x3f, 0x77, 0x73, 0xd7, 0xaf, 0xcd, 0x94,
+ 0xb3, 0x3a, 0xd5, 0xa1, 0x9e, 0xb6, 0x67, 0x8e, 0xdf, 0xc9, 0xc6, 0x75, 0x69, 0xcc, 0xd7, 0xb8,
+ 0x2b, 0xa3, 0xa2, 0x34, 0x08, 0x0a, 0xf4, 0xfe, 0x64, 0x33, 0x1e, 0xff, 0x8a, 0x64, 0xfb, 0x7a,
+ 0x9a, 0x3d, 0x2c, 0xec, 0x55, 0x6e, 0xaf, 0x66, 0x31, 0xca, 0xe6, 0xa7, 0x7b, 0xbb, 0xf8, 0x32,
+ 0xa8, 0x37, 0xc1, 0x58, 0x4c, 0xfe, 0x65, 0x96, 0x04, 0x77, 0x14, 0xe8, 0x1d, 0x96, 0x84, 0x25,
+ 0xc5, 0x48, 0x81, 0x6e, 0xb0, 0xa4, 0x2c, 0x43, 0xdc, 0x55, 0xa0, 0x23, 0x96, 0x21, 0xcb, 0x08,
+ 0x1b, 0x0a, 0xf4, 0x01, 0xcb, 0x88, 0xe5, 0x14, 0x9b, 0x0a, 0xf4, 0x2e, 0xcb, 0x29, 0xcb, 0x19,
+ 0xb6, 0x14, 0xe8, 0xb7, 0x2c, 0x67, 0x2c, 0xe7, 0xb8, 0xa7, 0x40, 0xc7, 0x2c, 0xe7, 0x2c, 0x17,
+ 0xb8, 0xaf, 0x40, 0xb7, 0x58, 0x2e, 0xe2, 0x23, 0xd9, 0xda, 0xde, 0xec, 0x03, 0x4a, 0x05, 0xfa,
+ 0x70, 0x2c, 0x26, 0xff, 0x17, 0x82, 0x0d, 0xb0, 0xad, 0x40, 0x37, 0x83, 0x0d, 0x82, 0x25, 0xd8,
+ 0x51, 0xa0, 0xbb, 0xc1, 0x92, 0x60, 0x29, 0x1e, 0x28, 0xd0, 0x7b, 0xc1, 0xd2, 0x60, 0x43, 0x7c,
+ 0xb3, 0x79, 0xff, 0x60, 0xc3, 0x60, 0x23, 0x3c, 0x54, 0xa0, 0x3b, 0xc1, 0x46, 0xf1, 0x89, 0x6c,
+ 0x17, 0xa5, 0xb9, 0xc9, 0x6c, 0x51, 0x4c, 0xe7, 0x16, 0xbb, 0x0a, 0x74, 0x3b, 0x91, 0xbd, 0x4d,
+ 0x23, 0xea, 0x4f, 0x1d, 0x8b, 0x89, 0x2c, 0x4a, 0xf3, 0x79, 0xeb, 0x97, 0x1d, 0x29, 0x57, 0xb6,
+ 0x58, 0xdd, 0xb8, 0xdc, 0xba, 0xd9, 0xe5, 0xc7, 0xa7, 0x8a, 0xc4, 0x73, 0x45, 0xe2, 0x67, 0x45,
+ 0xe2, 0xa5, 0x22, 0x78, 0xad, 0x08, 0xd6, 0x15, 0xc1, 0xa3, 0x27, 0xf8, 0xe6, 0x09, 0xbe, 0x7b,
+ 0x82, 0x1f, 0x9e, 0xe0, 0xc9, 0x93, 0x78, 0xf6, 0x04, 0x2f, 0x9e, 0xe0, 0x8f, 0x27, 0xf1, 0xea,
+ 0x09, 0xd6, 0x9e, 0xc4, 0xe3, 0x6f, 0x12, 0xa6, 0x59, 0xd7, 0x28, 0xfd, 0x1b, 0x00, 0x00, 0xff,
+ 0xff, 0x3b, 0xfb, 0xd3, 0x99, 0x9a, 0x02, 0x00, 0x00,
+}
+
func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return OneDescription()
}
@@ -584,263 +616,265 @@ func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_ge
func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4082 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x1b, 0xd7,
- 0x75, 0xe6, 0xe2, 0x8f, 0xc0, 0x01, 0x08, 0x2e, 0x97, 0xb4, 0x04, 0xd1, 0x36, 0x24, 0xd1, 0x76,
- 0x4c, 0xdb, 0x35, 0x69, 0x53, 0xa2, 0x7e, 0xa0, 0x26, 0x2e, 0x48, 0x42, 0x14, 0x5d, 0x92, 0x60,
- 0x16, 0x64, 0xfc, 0x93, 0xe9, 0xec, 0x2c, 0x16, 0x17, 0xe0, 0x4a, 0x8b, 0xdd, 0xcd, 0xee, 0x42,
- 0x32, 0x35, 0x7d, 0x50, 0xc7, 0xfd, 0x99, 0x4c, 0xa7, 0xff, 0x9d, 0x69, 0xe2, 0x3a, 0x6e, 0x93,
- 0x4e, 0xe3, 0x34, 0xfd, 0x4b, 0x9a, 0x36, 0x4d, 0xd2, 0x97, 0xbe, 0xa4, 0xf5, 0x53, 0x27, 0x79,
- 0xeb, 0x43, 0x1e, 0x2c, 0xc6, 0x33, 0x4d, 0x5b, 0xb7, 0x71, 0x5b, 0x3d, 0x78, 0xc6, 0x2f, 0x9d,
- 0xfb, 0xb7, 0xbb, 0x58, 0x80, 0x5a, 0x30, 0x33, 0x76, 0x9e, 0xc4, 0x3d, 0xe7, 0x7c, 0xdf, 0xde,
- 0x7b, 0xee, 0xb9, 0xe7, 0x9c, 0x7b, 0x17, 0x82, 0x1f, 0x5f, 0x86, 0x33, 0x1d, 0xcb, 0xea, 0x18,
- 0x68, 0xd1, 0x76, 0x2c, 0xcf, 0x6a, 0xf6, 0xda, 0x8b, 0x2d, 0xe4, 0x6a, 0x8e, 0x6e, 0x7b, 0x96,
- 0xb3, 0x40, 0x64, 0xd2, 0x24, 0xb5, 0x58, 0xe0, 0x16, 0x73, 0x5b, 0x30, 0x75, 0x55, 0x37, 0xd0,
- 0x9a, 0x6f, 0xd8, 0x40, 0x9e, 0x74, 0x09, 0x52, 0x6d, 0xdd, 0x40, 0x25, 0xe1, 0x4c, 0x72, 0x3e,
- 0xbf, 0xf4, 0xe8, 0x42, 0x04, 0xb4, 0xd0, 0x8f, 0xd8, 0xc1, 0x62, 0x99, 0x20, 0xe6, 0xde, 0x49,
- 0xc1, 0xf4, 0x10, 0xad, 0x24, 0x41, 0xca, 0x54, 0xbb, 0x98, 0x51, 0x98, 0xcf, 0xc9, 0xe4, 0x6f,
- 0xa9, 0x04, 0xe3, 0xb6, 0xaa, 0xdd, 0x50, 0x3b, 0xa8, 0x94, 0x20, 0x62, 0xfe, 0x28, 0x95, 0x01,
- 0x5a, 0xc8, 0x46, 0x66, 0x0b, 0x99, 0xda, 0x41, 0x29, 0x79, 0x26, 0x39, 0x9f, 0x93, 0x43, 0x12,
- 0xe9, 0x29, 0x98, 0xb2, 0x7b, 0x4d, 0x43, 0xd7, 0x94, 0x90, 0x19, 0x9c, 0x49, 0xce, 0xa7, 0x65,
- 0x91, 0x2a, 0xd6, 0x02, 0xe3, 0xc7, 0x61, 0xf2, 0x16, 0x52, 0x6f, 0x84, 0x4d, 0xf3, 0xc4, 0xb4,
- 0x88, 0xc5, 0x21, 0xc3, 0x55, 0x28, 0x74, 0x91, 0xeb, 0xaa, 0x1d, 0xa4, 0x78, 0x07, 0x36, 0x2a,
- 0xa5, 0xc8, 0xec, 0xcf, 0x0c, 0xcc, 0x3e, 0x3a, 0xf3, 0x3c, 0x43, 0xed, 0x1e, 0xd8, 0x48, 0xaa,
- 0x42, 0x0e, 0x99, 0xbd, 0x2e, 0x65, 0x48, 0x1f, 0xe1, 0xbf, 0x9a, 0xd9, 0xeb, 0x46, 0x59, 0xb2,
- 0x18, 0xc6, 0x28, 0xc6, 0x5d, 0xe4, 0xdc, 0xd4, 0x35, 0x54, 0xca, 0x10, 0x82, 0xc7, 0x07, 0x08,
- 0x1a, 0x54, 0x1f, 0xe5, 0xe0, 0x38, 0x69, 0x15, 0x72, 0xe8, 0x15, 0x0f, 0x99, 0xae, 0x6e, 0x99,
- 0xa5, 0x71, 0x42, 0xf2, 0xd8, 0x90, 0x55, 0x44, 0x46, 0x2b, 0x4a, 0x11, 0xe0, 0xa4, 0x0b, 0x30,
- 0x6e, 0xd9, 0x9e, 0x6e, 0x99, 0x6e, 0x29, 0x7b, 0x46, 0x98, 0xcf, 0x2f, 0x3d, 0x34, 0x34, 0x10,
- 0xea, 0xd4, 0x46, 0xe6, 0xc6, 0xd2, 0x06, 0x88, 0xae, 0xd5, 0x73, 0x34, 0xa4, 0x68, 0x56, 0x0b,
- 0x29, 0xba, 0xd9, 0xb6, 0x4a, 0x39, 0x42, 0x70, 0x7a, 0x70, 0x22, 0xc4, 0x70, 0xd5, 0x6a, 0xa1,
- 0x0d, 0xb3, 0x6d, 0xc9, 0x45, 0xb7, 0xef, 0x59, 0x3a, 0x01, 0x19, 0xf7, 0xc0, 0xf4, 0xd4, 0x57,
- 0x4a, 0x05, 0x12, 0x21, 0xec, 0x69, 0xee, 0xdb, 0x19, 0x98, 0x1c, 0x25, 0xc4, 0xae, 0x40, 0xba,
- 0x8d, 0x67, 0x59, 0x4a, 0x1c, 0xc7, 0x07, 0x14, 0xd3, 0xef, 0xc4, 0xcc, 0x4f, 0xe8, 0xc4, 0x2a,
- 0xe4, 0x4d, 0xe4, 0x7a, 0xa8, 0x45, 0x23, 0x22, 0x39, 0x62, 0x4c, 0x01, 0x05, 0x0d, 0x86, 0x54,
- 0xea, 0x27, 0x0a, 0xa9, 0x17, 0x61, 0xd2, 0x1f, 0x92, 0xe2, 0xa8, 0x66, 0x87, 0xc7, 0xe6, 0x62,
- 0xdc, 0x48, 0x16, 0x6a, 0x1c, 0x27, 0x63, 0x98, 0x5c, 0x44, 0x7d, 0xcf, 0xd2, 0x1a, 0x80, 0x65,
- 0x22, 0xab, 0xad, 0xb4, 0x90, 0x66, 0x94, 0xb2, 0x47, 0x78, 0xa9, 0x8e, 0x4d, 0x06, 0xbc, 0x64,
- 0x51, 0xa9, 0x66, 0x48, 0x97, 0x83, 0x50, 0x1b, 0x3f, 0x22, 0x52, 0xb6, 0xe8, 0x26, 0x1b, 0x88,
- 0xb6, 0x3d, 0x28, 0x3a, 0x08, 0xc7, 0x3d, 0x6a, 0xb1, 0x99, 0xe5, 0xc8, 0x20, 0x16, 0x62, 0x67,
- 0x26, 0x33, 0x18, 0x9d, 0xd8, 0x84, 0x13, 0x7e, 0x94, 0x1e, 0x01, 0x5f, 0xa0, 0x90, 0xb0, 0x02,
- 0x92, 0x85, 0x0a, 0x5c, 0xb8, 0xad, 0x76, 0xd1, 0xec, 0x6d, 0x28, 0xf6, 0xbb, 0x47, 0x9a, 0x81,
- 0xb4, 0xeb, 0xa9, 0x8e, 0x47, 0xa2, 0x30, 0x2d, 0xd3, 0x07, 0x49, 0x84, 0x24, 0x32, 0x5b, 0x24,
- 0xcb, 0xa5, 0x65, 0xfc, 0xa7, 0xf4, 0x73, 0xc1, 0x84, 0x93, 0x64, 0xc2, 0x1f, 0x1b, 0x5c, 0xd1,
- 0x3e, 0xe6, 0xe8, 0xbc, 0x67, 0x2f, 0xc2, 0x44, 0xdf, 0x04, 0x46, 0x7d, 0xf5, 0xdc, 0x2f, 0xc2,
- 0x03, 0x43, 0xa9, 0xa5, 0x17, 0x61, 0xa6, 0x67, 0xea, 0xa6, 0x87, 0x1c, 0xdb, 0x41, 0x38, 0x62,
- 0xe9, 0xab, 0x4a, 0xff, 0x36, 0x7e, 0x44, 0xcc, 0xed, 0x85, 0xad, 0x29, 0x8b, 0x3c, 0xdd, 0x1b,
- 0x14, 0x3e, 0x99, 0xcb, 0xfe, 0x68, 0x5c, 0xbc, 0x73, 0xe7, 0xce, 0x9d, 0xc4, 0xdc, 0xe7, 0x32,
- 0x30, 0x33, 0x6c, 0xcf, 0x0c, 0xdd, 0xbe, 0x27, 0x20, 0x63, 0xf6, 0xba, 0x4d, 0xe4, 0x10, 0x27,
- 0xa5, 0x65, 0xf6, 0x24, 0x55, 0x21, 0x6d, 0xa8, 0x4d, 0x64, 0x94, 0x52, 0x67, 0x84, 0xf9, 0xe2,
- 0xd2, 0x53, 0x23, 0xed, 0xca, 0x85, 0x4d, 0x0c, 0x91, 0x29, 0x52, 0xfa, 0x04, 0xa4, 0x58, 0x8a,
- 0xc6, 0x0c, 0x4f, 0x8e, 0xc6, 0x80, 0xf7, 0x92, 0x4c, 0x70, 0xd2, 0x83, 0x90, 0xc3, 0xff, 0xd2,
- 0xd8, 0xc8, 0x90, 0x31, 0x67, 0xb1, 0x00, 0xc7, 0x85, 0x34, 0x0b, 0x59, 0xb2, 0x4d, 0x5a, 0x88,
- 0x97, 0x36, 0xff, 0x19, 0x07, 0x56, 0x0b, 0xb5, 0xd5, 0x9e, 0xe1, 0x29, 0x37, 0x55, 0xa3, 0x87,
- 0x48, 0xc0, 0xe7, 0xe4, 0x02, 0x13, 0x7e, 0x0a, 0xcb, 0xa4, 0xd3, 0x90, 0xa7, 0xbb, 0x4a, 0x37,
- 0x5b, 0xe8, 0x15, 0x92, 0x3d, 0xd3, 0x32, 0xdd, 0x68, 0x1b, 0x58, 0x82, 0x5f, 0x7f, 0xdd, 0xb5,
- 0x4c, 0x1e, 0x9a, 0xe4, 0x15, 0x58, 0x40, 0x5e, 0x7f, 0x31, 0x9a, 0xb8, 0x1f, 0x1e, 0x3e, 0xbd,
- 0x68, 0x4c, 0xcd, 0x7d, 0x33, 0x01, 0x29, 0x92, 0x2f, 0x26, 0x21, 0xbf, 0xfb, 0xd2, 0x4e, 0x4d,
- 0x59, 0xab, 0xef, 0xad, 0x6c, 0xd6, 0x44, 0x41, 0x2a, 0x02, 0x10, 0xc1, 0xd5, 0xcd, 0x7a, 0x75,
- 0x57, 0x4c, 0xf8, 0xcf, 0x1b, 0xdb, 0xbb, 0x17, 0xce, 0x8b, 0x49, 0x1f, 0xb0, 0x47, 0x05, 0xa9,
- 0xb0, 0xc1, 0xb9, 0x25, 0x31, 0x2d, 0x89, 0x50, 0xa0, 0x04, 0x1b, 0x2f, 0xd6, 0xd6, 0x2e, 0x9c,
- 0x17, 0x33, 0xfd, 0x92, 0x73, 0x4b, 0xe2, 0xb8, 0x34, 0x01, 0x39, 0x22, 0x59, 0xa9, 0xd7, 0x37,
- 0xc5, 0xac, 0xcf, 0xd9, 0xd8, 0x95, 0x37, 0xb6, 0xd7, 0xc5, 0x9c, 0xcf, 0xb9, 0x2e, 0xd7, 0xf7,
- 0x76, 0x44, 0xf0, 0x19, 0xb6, 0x6a, 0x8d, 0x46, 0x75, 0xbd, 0x26, 0xe6, 0x7d, 0x8b, 0x95, 0x97,
- 0x76, 0x6b, 0x0d, 0xb1, 0xd0, 0x37, 0xac, 0x73, 0x4b, 0xe2, 0x84, 0xff, 0x8a, 0xda, 0xf6, 0xde,
- 0x96, 0x58, 0x94, 0xa6, 0x60, 0x82, 0xbe, 0x82, 0x0f, 0x62, 0x32, 0x22, 0xba, 0x70, 0x5e, 0x14,
- 0x83, 0x81, 0x50, 0x96, 0xa9, 0x3e, 0xc1, 0x85, 0xf3, 0xa2, 0x34, 0xb7, 0x0a, 0x69, 0x12, 0x5d,
- 0x92, 0x04, 0xc5, 0xcd, 0xea, 0x4a, 0x6d, 0x53, 0xa9, 0xef, 0xec, 0x6e, 0xd4, 0xb7, 0xab, 0x9b,
- 0xa2, 0x10, 0xc8, 0xe4, 0xda, 0x27, 0xf7, 0x36, 0xe4, 0xda, 0x9a, 0x98, 0x08, 0xcb, 0x76, 0x6a,
- 0xd5, 0xdd, 0xda, 0x9a, 0x98, 0x9c, 0xd3, 0x60, 0x66, 0x58, 0x9e, 0x1c, 0xba, 0x33, 0x42, 0x4b,
- 0x9c, 0x38, 0x62, 0x89, 0x09, 0xd7, 0xc0, 0x12, 0xff, 0x30, 0x01, 0xd3, 0x43, 0x6a, 0xc5, 0xd0,
- 0x97, 0x3c, 0x07, 0x69, 0x1a, 0xa2, 0xb4, 0x7a, 0x3e, 0x31, 0xb4, 0xe8, 0x90, 0x80, 0x1d, 0xa8,
- 0xa0, 0x04, 0x17, 0xee, 0x20, 0x92, 0x47, 0x74, 0x10, 0x98, 0x62, 0x20, 0xa7, 0xff, 0xc2, 0x40,
- 0x4e, 0xa7, 0x65, 0xef, 0xc2, 0x28, 0x65, 0x8f, 0xc8, 0x8e, 0x97, 0xdb, 0xd3, 0x43, 0x72, 0xfb,
- 0x15, 0x98, 0x1a, 0x20, 0x1a, 0x39, 0xc7, 0xbe, 0x2a, 0x40, 0xe9, 0x28, 0xe7, 0xc4, 0x64, 0xba,
- 0x44, 0x5f, 0xa6, 0xbb, 0x12, 0xf5, 0xe0, 0xd9, 0xa3, 0x17, 0x61, 0x60, 0xad, 0xdf, 0x14, 0xe0,
- 0xc4, 0xf0, 0x4e, 0x71, 0xe8, 0x18, 0x3e, 0x01, 0x99, 0x2e, 0xf2, 0xf6, 0x2d, 0xde, 0x2d, 0x7d,
- 0x6c, 0x48, 0x0d, 0xc6, 0xea, 0xe8, 0x62, 0x33, 0x54, 0xb8, 0x88, 0x27, 0x8f, 0x6a, 0xf7, 0xe8,
- 0x68, 0x06, 0x46, 0xfa, 0xd9, 0x04, 0x3c, 0x30, 0x94, 0x7c, 0xe8, 0x40, 0x1f, 0x06, 0xd0, 0x4d,
- 0xbb, 0xe7, 0xd1, 0x8e, 0x88, 0x26, 0xd8, 0x1c, 0x91, 0x90, 0xe4, 0x85, 0x93, 0x67, 0xcf, 0xf3,
- 0xf5, 0x49, 0xa2, 0x07, 0x2a, 0x22, 0x06, 0x97, 0x82, 0x81, 0xa6, 0xc8, 0x40, 0xcb, 0x47, 0xcc,
- 0x74, 0x20, 0x30, 0x9f, 0x01, 0x51, 0x33, 0x74, 0x64, 0x7a, 0x8a, 0xeb, 0x39, 0x48, 0xed, 0xea,
- 0x66, 0x87, 0x54, 0x90, 0x6c, 0x25, 0xdd, 0x56, 0x0d, 0x17, 0xc9, 0x93, 0x54, 0xdd, 0xe0, 0x5a,
- 0x8c, 0x20, 0x01, 0xe4, 0x84, 0x10, 0x99, 0x3e, 0x04, 0x55, 0xfb, 0x88, 0xb9, 0x6f, 0x64, 0x21,
- 0x1f, 0xea, 0xab, 0xa5, 0xb3, 0x50, 0xb8, 0xae, 0xde, 0x54, 0x15, 0x7e, 0x56, 0xa2, 0x9e, 0xc8,
- 0x63, 0xd9, 0x0e, 0x3b, 0x2f, 0x3d, 0x03, 0x33, 0xc4, 0xc4, 0xea, 0x79, 0xc8, 0x51, 0x34, 0x43,
- 0x75, 0x5d, 0xe2, 0xb4, 0x2c, 0x31, 0x95, 0xb0, 0xae, 0x8e, 0x55, 0xab, 0x5c, 0x23, 0x2d, 0xc3,
- 0x34, 0x41, 0x74, 0x7b, 0x86, 0xa7, 0xdb, 0x06, 0x52, 0xf0, 0xe9, 0xcd, 0x25, 0x95, 0xc4, 0x1f,
- 0xd9, 0x14, 0xb6, 0xd8, 0x62, 0x06, 0x78, 0x44, 0xae, 0xb4, 0x06, 0x0f, 0x13, 0x58, 0x07, 0x99,
- 0xc8, 0x51, 0x3d, 0xa4, 0xa0, 0xcf, 0xf4, 0x54, 0xc3, 0x55, 0x54, 0xb3, 0xa5, 0xec, 0xab, 0xee,
- 0x7e, 0x69, 0x06, 0x13, 0xac, 0x24, 0x4a, 0x82, 0x7c, 0x0a, 0x1b, 0xae, 0x33, 0xbb, 0x1a, 0x31,
- 0xab, 0x9a, 0xad, 0x6b, 0xaa, 0xbb, 0x2f, 0x55, 0xe0, 0x04, 0x61, 0x71, 0x3d, 0x47, 0x37, 0x3b,
- 0x8a, 0xb6, 0x8f, 0xb4, 0x1b, 0x4a, 0xcf, 0x6b, 0x5f, 0x2a, 0x3d, 0x18, 0x7e, 0x3f, 0x19, 0x61,
- 0x83, 0xd8, 0xac, 0x62, 0x93, 0x3d, 0xaf, 0x7d, 0x49, 0x6a, 0x40, 0x01, 0x2f, 0x46, 0x57, 0xbf,
- 0x8d, 0x94, 0xb6, 0xe5, 0x90, 0xd2, 0x58, 0x1c, 0x92, 0x9a, 0x42, 0x1e, 0x5c, 0xa8, 0x33, 0xc0,
- 0x96, 0xd5, 0x42, 0x95, 0x74, 0x63, 0xa7, 0x56, 0x5b, 0x93, 0xf3, 0x9c, 0xe5, 0xaa, 0xe5, 0xe0,
- 0x80, 0xea, 0x58, 0xbe, 0x83, 0xf3, 0x34, 0xa0, 0x3a, 0x16, 0x77, 0xef, 0x32, 0x4c, 0x6b, 0x1a,
- 0x9d, 0xb3, 0xae, 0x29, 0xec, 0x8c, 0xe5, 0x96, 0xc4, 0x3e, 0x67, 0x69, 0xda, 0x3a, 0x35, 0x60,
- 0x31, 0xee, 0x4a, 0x97, 0xe1, 0x81, 0xc0, 0x59, 0x61, 0xe0, 0xd4, 0xc0, 0x2c, 0xa3, 0xd0, 0x65,
- 0x98, 0xb6, 0x0f, 0x06, 0x81, 0x52, 0xdf, 0x1b, 0xed, 0x83, 0x28, 0xec, 0x22, 0xcc, 0xd8, 0xfb,
- 0xf6, 0x20, 0xee, 0xc9, 0x30, 0x4e, 0xb2, 0xf7, 0xed, 0x28, 0xf0, 0x31, 0x72, 0xe0, 0x76, 0x90,
- 0xa6, 0x7a, 0xa8, 0x55, 0x3a, 0x19, 0x36, 0x0f, 0x29, 0xa4, 0x45, 0x10, 0x35, 0x4d, 0x41, 0xa6,
- 0xda, 0x34, 0x90, 0xa2, 0x3a, 0xc8, 0x54, 0xdd, 0xd2, 0xe9, 0xb0, 0x71, 0x51, 0xd3, 0x6a, 0x44,
- 0x5b, 0x25, 0x4a, 0xe9, 0x49, 0x98, 0xb2, 0x9a, 0xd7, 0x35, 0x1a, 0x92, 0x8a, 0xed, 0xa0, 0xb6,
- 0xfe, 0x4a, 0xe9, 0x51, 0xe2, 0xdf, 0x49, 0xac, 0x20, 0x01, 0xb9, 0x43, 0xc4, 0xd2, 0x13, 0x20,
- 0x6a, 0xee, 0xbe, 0xea, 0xd8, 0x24, 0x27, 0xbb, 0xb6, 0xaa, 0xa1, 0xd2, 0x63, 0xd4, 0x94, 0xca,
- 0xb7, 0xb9, 0x18, 0x6f, 0x09, 0xf7, 0x96, 0xde, 0xf6, 0x38, 0xe3, 0xe3, 0x74, 0x4b, 0x10, 0x19,
- 0x63, 0x9b, 0x07, 0x11, 0xbb, 0xa2, 0xef, 0xc5, 0xf3, 0xc4, 0xac, 0x68, 0xef, 0xdb, 0xe1, 0xf7,
- 0x3e, 0x02, 0x13, 0xd8, 0x32, 0x78, 0xe9, 0x13, 0xb4, 0x21, 0xb3, 0xf7, 0x43, 0x6f, 0xfc, 0xd0,
- 0x7a, 0xe3, 0xb9, 0x0a, 0x14, 0xc2, 0xf1, 0x29, 0xe5, 0x80, 0x46, 0xa8, 0x28, 0xe0, 0x66, 0x65,
- 0xb5, 0xbe, 0x86, 0xdb, 0x8c, 0x97, 0x6b, 0x62, 0x02, 0xb7, 0x3b, 0x9b, 0x1b, 0xbb, 0x35, 0x45,
- 0xde, 0xdb, 0xde, 0xdd, 0xd8, 0xaa, 0x89, 0xc9, 0x70, 0x5f, 0xfd, 0xdd, 0x04, 0x14, 0xfb, 0x8f,
- 0x48, 0xd2, 0xcf, 0xc2, 0x49, 0x7e, 0x9f, 0xe1, 0x22, 0x4f, 0xb9, 0xa5, 0x3b, 0x64, 0xcb, 0x74,
- 0x55, 0x5a, 0xbe, 0xfc, 0x45, 0x9b, 0x61, 0x56, 0x0d, 0xe4, 0xbd, 0xa0, 0x3b, 0x78, 0x43, 0x74,
- 0x55, 0x4f, 0xda, 0x84, 0xd3, 0xa6, 0xa5, 0xb8, 0x9e, 0x6a, 0xb6, 0x54, 0xa7, 0xa5, 0x04, 0x37,
- 0x49, 0x8a, 0xaa, 0x69, 0xc8, 0x75, 0x2d, 0x5a, 0xaa, 0x7c, 0x96, 0x87, 0x4c, 0xab, 0xc1, 0x8c,
- 0x83, 0x1c, 0x5e, 0x65, 0xa6, 0x91, 0x00, 0x4b, 0x1e, 0x15, 0x60, 0x0f, 0x42, 0xae, 0xab, 0xda,
- 0x0a, 0x32, 0x3d, 0xe7, 0x80, 0x34, 0xc6, 0x59, 0x39, 0xdb, 0x55, 0xed, 0x1a, 0x7e, 0xfe, 0x68,
- 0xce, 0x27, 0x3f, 0x48, 0x42, 0x21, 0xdc, 0x1c, 0xe3, 0xb3, 0x86, 0x46, 0xea, 0x88, 0x40, 0x32,
- 0xcd, 0x23, 0xf7, 0x6d, 0xa5, 0x17, 0x56, 0x71, 0x81, 0xa9, 0x64, 0x68, 0xcb, 0x2a, 0x53, 0x24,
- 0x2e, 0xee, 0x38, 0xb7, 0x20, 0xda, 0x22, 0x64, 0x65, 0xf6, 0x24, 0xad, 0x43, 0xe6, 0xba, 0x4b,
- 0xb8, 0x33, 0x84, 0xfb, 0xd1, 0xfb, 0x73, 0x3f, 0xdf, 0x20, 0xe4, 0xb9, 0xe7, 0x1b, 0xca, 0x76,
- 0x5d, 0xde, 0xaa, 0x6e, 0xca, 0x0c, 0x2e, 0x9d, 0x82, 0x94, 0xa1, 0xde, 0x3e, 0xe8, 0x2f, 0x45,
- 0x44, 0x34, 0xaa, 0xe3, 0x4f, 0x41, 0xea, 0x16, 0x52, 0x6f, 0xf4, 0x17, 0x00, 0x22, 0xfa, 0x10,
- 0x43, 0x7f, 0x11, 0xd2, 0xc4, 0x5f, 0x12, 0x00, 0xf3, 0x98, 0x38, 0x26, 0x65, 0x21, 0xb5, 0x5a,
- 0x97, 0x71, 0xf8, 0x8b, 0x50, 0xa0, 0x52, 0x65, 0x67, 0xa3, 0xb6, 0x5a, 0x13, 0x13, 0x73, 0xcb,
- 0x90, 0xa1, 0x4e, 0xc0, 0x5b, 0xc3, 0x77, 0x83, 0x38, 0xc6, 0x1e, 0x19, 0x87, 0xc0, 0xb5, 0x7b,
- 0x5b, 0x2b, 0x35, 0x59, 0x4c, 0x84, 0x97, 0xd7, 0x85, 0x42, 0xb8, 0x2f, 0xfe, 0x68, 0x62, 0xea,
- 0x3b, 0x02, 0xe4, 0x43, 0x7d, 0x2e, 0x6e, 0x50, 0x54, 0xc3, 0xb0, 0x6e, 0x29, 0xaa, 0xa1, 0xab,
- 0x2e, 0x0b, 0x0a, 0x20, 0xa2, 0x2a, 0x96, 0x8c, 0xba, 0x68, 0x1f, 0xc9, 0xe0, 0xdf, 0x10, 0x40,
- 0x8c, 0xb6, 0x98, 0x91, 0x01, 0x0a, 0x3f, 0xd5, 0x01, 0xbe, 0x2e, 0x40, 0xb1, 0xbf, 0xaf, 0x8c,
- 0x0c, 0xef, 0xec, 0x4f, 0x75, 0x78, 0x6f, 0x27, 0x60, 0xa2, 0xaf, 0x9b, 0x1c, 0x75, 0x74, 0x9f,
- 0x81, 0x29, 0xbd, 0x85, 0xba, 0xb6, 0xe5, 0x21, 0x53, 0x3b, 0x50, 0x0c, 0x74, 0x13, 0x19, 0xa5,
- 0x39, 0x92, 0x28, 0x16, 0xef, 0xdf, 0xaf, 0x2e, 0x6c, 0x04, 0xb8, 0x4d, 0x0c, 0xab, 0x4c, 0x6f,
- 0xac, 0xd5, 0xb6, 0x76, 0xea, 0xbb, 0xb5, 0xed, 0xd5, 0x97, 0x94, 0xbd, 0xed, 0x9f, 0xdf, 0xae,
- 0xbf, 0xb0, 0x2d, 0x8b, 0x7a, 0xc4, 0xec, 0x43, 0xdc, 0xea, 0x3b, 0x20, 0x46, 0x07, 0x25, 0x9d,
- 0x84, 0x61, 0xc3, 0x12, 0xc7, 0xa4, 0x69, 0x98, 0xdc, 0xae, 0x2b, 0x8d, 0x8d, 0xb5, 0x9a, 0x52,
- 0xbb, 0x7a, 0xb5, 0xb6, 0xba, 0xdb, 0xa0, 0x37, 0x10, 0xbe, 0xf5, 0x6e, 0xff, 0xa6, 0x7e, 0x2d,
- 0x09, 0xd3, 0x43, 0x46, 0x22, 0x55, 0xd9, 0xd9, 0x81, 0x1e, 0x67, 0x9e, 0x1e, 0x65, 0xf4, 0x0b,
- 0xb8, 0xe4, 0xef, 0xa8, 0x8e, 0xc7, 0x8e, 0x1a, 0x4f, 0x00, 0xf6, 0x92, 0xe9, 0xe9, 0x6d, 0x1d,
- 0x39, 0xec, 0xc2, 0x86, 0x1e, 0x28, 0x26, 0x03, 0x39, 0xbd, 0xb3, 0xf9, 0x19, 0x90, 0x6c, 0xcb,
- 0xd5, 0x3d, 0xfd, 0x26, 0x52, 0x74, 0x93, 0xdf, 0xee, 0xe0, 0x03, 0x46, 0x4a, 0x16, 0xb9, 0x66,
- 0xc3, 0xf4, 0x7c, 0x6b, 0x13, 0x75, 0xd4, 0x88, 0x35, 0x4e, 0xe0, 0x49, 0x59, 0xe4, 0x1a, 0xdf,
- 0xfa, 0x2c, 0x14, 0x5a, 0x56, 0x0f, 0x77, 0x5d, 0xd4, 0x0e, 0xd7, 0x0b, 0x41, 0xce, 0x53, 0x99,
- 0x6f, 0xc2, 0xfa, 0xe9, 0xe0, 0x5a, 0xa9, 0x20, 0xe7, 0xa9, 0x8c, 0x9a, 0x3c, 0x0e, 0x93, 0x6a,
- 0xa7, 0xe3, 0x60, 0x72, 0x4e, 0x44, 0x4f, 0x08, 0x45, 0x5f, 0x4c, 0x0c, 0x67, 0x9f, 0x87, 0x2c,
- 0xf7, 0x03, 0x2e, 0xc9, 0xd8, 0x13, 0x8a, 0x4d, 0x8f, 0xbd, 0x89, 0xf9, 0x9c, 0x9c, 0x35, 0xb9,
- 0xf2, 0x2c, 0x14, 0x74, 0x57, 0x09, 0x6e, 0xc9, 0x13, 0x67, 0x12, 0xf3, 0x59, 0x39, 0xaf, 0xbb,
- 0xfe, 0x0d, 0xe3, 0xdc, 0x9b, 0x09, 0x28, 0xf6, 0xdf, 0xf2, 0x4b, 0x6b, 0x90, 0x35, 0x2c, 0x4d,
- 0x25, 0xa1, 0x45, 0x3f, 0x31, 0xcd, 0xc7, 0x7c, 0x18, 0x58, 0xd8, 0x64, 0xf6, 0xb2, 0x8f, 0x9c,
- 0xfd, 0x17, 0x01, 0xb2, 0x5c, 0x2c, 0x9d, 0x80, 0x94, 0xad, 0x7a, 0xfb, 0x84, 0x2e, 0xbd, 0x92,
- 0x10, 0x05, 0x99, 0x3c, 0x63, 0xb9, 0x6b, 0xab, 0x26, 0x09, 0x01, 0x26, 0xc7, 0xcf, 0x78, 0x5d,
- 0x0d, 0xa4, 0xb6, 0xc8, 0xf1, 0xc3, 0xea, 0x76, 0x91, 0xe9, 0xb9, 0x7c, 0x5d, 0x99, 0x7c, 0x95,
- 0x89, 0xa5, 0xa7, 0x60, 0xca, 0x73, 0x54, 0xdd, 0xe8, 0xb3, 0x4d, 0x11, 0x5b, 0x91, 0x2b, 0x7c,
- 0xe3, 0x0a, 0x9c, 0xe2, 0xbc, 0x2d, 0xe4, 0xa9, 0xda, 0x3e, 0x6a, 0x05, 0xa0, 0x0c, 0xb9, 0x66,
- 0x38, 0xc9, 0x0c, 0xd6, 0x98, 0x9e, 0x63, 0xe7, 0xbe, 0x2f, 0xc0, 0x14, 0x3f, 0x30, 0xb5, 0x7c,
- 0x67, 0x6d, 0x01, 0xa8, 0xa6, 0x69, 0x79, 0x61, 0x77, 0x0d, 0x86, 0xf2, 0x00, 0x6e, 0xa1, 0xea,
- 0x83, 0xe4, 0x10, 0xc1, 0x6c, 0x17, 0x20, 0xd0, 0x1c, 0xe9, 0xb6, 0xd3, 0x90, 0x67, 0x9f, 0x70,
- 0xc8, 0x77, 0x40, 0x7a, 0xc4, 0x06, 0x2a, 0xc2, 0x27, 0x2b, 0x69, 0x06, 0xd2, 0x4d, 0xd4, 0xd1,
- 0x4d, 0x76, 0x31, 0x4b, 0x1f, 0xf8, 0x45, 0x48, 0xca, 0xbf, 0x08, 0x59, 0xf9, 0x34, 0x4c, 0x6b,
- 0x56, 0x37, 0x3a, 0xdc, 0x15, 0x31, 0x72, 0xcc, 0x77, 0xaf, 0x09, 0x2f, 0x43, 0xd0, 0x62, 0xbe,
- 0x2f, 0x08, 0x5f, 0x4a, 0x24, 0xd7, 0x77, 0x56, 0xbe, 0x9a, 0x98, 0x5d, 0xa7, 0xd0, 0x1d, 0x3e,
- 0x53, 0x19, 0xb5, 0x0d, 0xa4, 0xe1, 0xd1, 0xc3, 0x97, 0x9f, 0x82, 0xa7, 0x3b, 0xba, 0xb7, 0xdf,
- 0x6b, 0x2e, 0x68, 0x56, 0x77, 0xb1, 0x63, 0x75, 0xac, 0xe0, 0xd3, 0x27, 0x7e, 0x22, 0x0f, 0xe4,
- 0x2f, 0xf6, 0xf9, 0x33, 0xe7, 0x4b, 0x67, 0x63, 0xbf, 0x95, 0x56, 0xb6, 0x61, 0x9a, 0x19, 0x2b,
- 0xe4, 0xfb, 0x0b, 0x3d, 0x45, 0x48, 0xf7, 0xbd, 0xc3, 0x2a, 0x7d, 0xfd, 0x1d, 0x52, 0xae, 0xe5,
- 0x29, 0x06, 0xc5, 0x3a, 0x7a, 0xd0, 0xa8, 0xc8, 0xf0, 0x40, 0x1f, 0x1f, 0xdd, 0x9a, 0xc8, 0x89,
- 0x61, 0xfc, 0x2e, 0x63, 0x9c, 0x0e, 0x31, 0x36, 0x18, 0xb4, 0xb2, 0x0a, 0x13, 0xc7, 0xe1, 0xfa,
- 0x27, 0xc6, 0x55, 0x40, 0x61, 0x92, 0x75, 0x98, 0x24, 0x24, 0x5a, 0xcf, 0xf5, 0xac, 0x2e, 0xc9,
- 0x7b, 0xf7, 0xa7, 0xf9, 0xe7, 0x77, 0xe8, 0x5e, 0x29, 0x62, 0xd8, 0xaa, 0x8f, 0xaa, 0x54, 0x80,
- 0x7c, 0x72, 0x6a, 0x21, 0xcd, 0x88, 0x61, 0x78, 0x8b, 0x0d, 0xc4, 0xb7, 0xaf, 0x7c, 0x0a, 0x66,
- 0xf0, 0xdf, 0x24, 0x2d, 0x85, 0x47, 0x12, 0x7f, 0xe1, 0x55, 0xfa, 0xfe, 0xab, 0x74, 0x3b, 0x4e,
- 0xfb, 0x04, 0xa1, 0x31, 0x85, 0x56, 0xb1, 0x83, 0x3c, 0x0f, 0x39, 0xae, 0xa2, 0x1a, 0xc3, 0x86,
- 0x17, 0xba, 0x31, 0x28, 0x7d, 0xfe, 0xdd, 0xfe, 0x55, 0x5c, 0xa7, 0xc8, 0xaa, 0x61, 0x54, 0xf6,
- 0xe0, 0xe4, 0x90, 0xa8, 0x18, 0x81, 0xf3, 0x35, 0xc6, 0x39, 0x33, 0x10, 0x19, 0x98, 0x76, 0x07,
- 0xb8, 0xdc, 0x5f, 0xcb, 0x11, 0x38, 0xff, 0x90, 0x71, 0x4a, 0x0c, 0xcb, 0x97, 0x14, 0x33, 0x3e,
- 0x0f, 0x53, 0x37, 0x91, 0xd3, 0xb4, 0x5c, 0x76, 0x4b, 0x33, 0x02, 0xdd, 0xeb, 0x8c, 0x6e, 0x92,
- 0x01, 0xc9, 0xb5, 0x0d, 0xe6, 0xba, 0x0c, 0xd9, 0xb6, 0xaa, 0xa1, 0x11, 0x28, 0xbe, 0xc0, 0x28,
- 0xc6, 0xb1, 0x3d, 0x86, 0x56, 0xa1, 0xd0, 0xb1, 0x58, 0x65, 0x8a, 0x87, 0xbf, 0xc1, 0xe0, 0x79,
- 0x8e, 0x61, 0x14, 0xb6, 0x65, 0xf7, 0x0c, 0x5c, 0xb6, 0xe2, 0x29, 0xfe, 0x88, 0x53, 0x70, 0x0c,
- 0xa3, 0x38, 0x86, 0x5b, 0xff, 0x98, 0x53, 0xb8, 0x21, 0x7f, 0x3e, 0x07, 0x79, 0xcb, 0x34, 0x0e,
- 0x2c, 0x73, 0x94, 0x41, 0x7c, 0x91, 0x31, 0x00, 0x83, 0x60, 0x82, 0x2b, 0x90, 0x1b, 0x75, 0x21,
- 0xfe, 0xf4, 0x5d, 0xbe, 0x3d, 0xf8, 0x0a, 0xac, 0xc3, 0x24, 0x4f, 0x50, 0xba, 0x65, 0x8e, 0x40,
- 0xf1, 0x65, 0x46, 0x51, 0x0c, 0xc1, 0xd8, 0x34, 0x3c, 0xe4, 0x7a, 0x1d, 0x34, 0x0a, 0xc9, 0x9b,
- 0x7c, 0x1a, 0x0c, 0xc2, 0x5c, 0xd9, 0x44, 0xa6, 0xb6, 0x3f, 0x1a, 0xc3, 0x57, 0xb8, 0x2b, 0x39,
- 0x06, 0x53, 0xac, 0xc2, 0x44, 0x57, 0x75, 0xdc, 0x7d, 0xd5, 0x18, 0x69, 0x39, 0xfe, 0x8c, 0x71,
- 0x14, 0x7c, 0x10, 0xf3, 0x48, 0xcf, 0x3c, 0x0e, 0xcd, 0x57, 0xb9, 0x47, 0x42, 0x30, 0xb6, 0xf5,
- 0x5c, 0x8f, 0x5c, 0x69, 0x1d, 0x87, 0xed, 0xcf, 0xf9, 0xd6, 0xa3, 0xd8, 0xad, 0x30, 0xe3, 0x15,
- 0xc8, 0xb9, 0xfa, 0xed, 0x91, 0x68, 0xfe, 0x82, 0xaf, 0x34, 0x01, 0x60, 0xf0, 0x4b, 0x70, 0x6a,
- 0x68, 0x99, 0x18, 0x81, 0xec, 0x2f, 0x19, 0xd9, 0x89, 0x21, 0xa5, 0x82, 0xa5, 0x84, 0xe3, 0x52,
- 0xfe, 0x15, 0x4f, 0x09, 0x28, 0xc2, 0xb5, 0x83, 0xcf, 0x0a, 0xae, 0xda, 0x3e, 0x9e, 0xd7, 0xfe,
- 0x9a, 0x7b, 0x8d, 0x62, 0xfb, 0xbc, 0xb6, 0x0b, 0x27, 0x18, 0xe3, 0xf1, 0xd6, 0xf5, 0x6b, 0x3c,
- 0xb1, 0x52, 0xf4, 0x5e, 0xff, 0xea, 0x7e, 0x1a, 0x66, 0x7d, 0x77, 0xf2, 0xa6, 0xd4, 0x55, 0xba,
- 0xaa, 0x3d, 0x02, 0xf3, 0xd7, 0x19, 0x33, 0xcf, 0xf8, 0x7e, 0x57, 0xeb, 0x6e, 0xa9, 0x36, 0x26,
- 0x7f, 0x11, 0x4a, 0x9c, 0xbc, 0x67, 0x3a, 0x48, 0xb3, 0x3a, 0xa6, 0x7e, 0x1b, 0xb5, 0x46, 0xa0,
- 0xfe, 0x9b, 0xc8, 0x52, 0xed, 0x85, 0xe0, 0x98, 0x79, 0x03, 0x44, 0xbf, 0x57, 0x51, 0xf4, 0xae,
- 0x6d, 0x39, 0x5e, 0x0c, 0xe3, 0x37, 0xf8, 0x4a, 0xf9, 0xb8, 0x0d, 0x02, 0xab, 0xd4, 0xa0, 0x48,
- 0x1e, 0x47, 0x0d, 0xc9, 0xbf, 0x65, 0x44, 0x13, 0x01, 0x8a, 0x25, 0x0e, 0xcd, 0xea, 0xda, 0xaa,
- 0x33, 0x4a, 0xfe, 0xfb, 0x3b, 0x9e, 0x38, 0x18, 0x84, 0x25, 0x0e, 0xef, 0xc0, 0x46, 0xb8, 0xda,
- 0x8f, 0xc0, 0xf0, 0x4d, 0x9e, 0x38, 0x38, 0x86, 0x51, 0xf0, 0x86, 0x61, 0x04, 0x8a, 0xbf, 0xe7,
- 0x14, 0x1c, 0x83, 0x29, 0x3e, 0x19, 0x14, 0x5a, 0x07, 0x75, 0x74, 0xd7, 0x73, 0x68, 0x2b, 0x7c,
- 0x7f, 0xaa, 0x6f, 0xbd, 0xdb, 0xdf, 0x84, 0xc9, 0x21, 0x28, 0xce, 0x44, 0xec, 0x0a, 0x95, 0x9c,
- 0x94, 0xe2, 0x07, 0xf6, 0x6d, 0x9e, 0x89, 0x42, 0x30, 0x3c, 0xb6, 0x50, 0x87, 0x88, 0xdd, 0xae,
- 0xe1, 0xf3, 0xc1, 0x08, 0x74, 0xdf, 0x89, 0x0c, 0xae, 0xc1, 0xb1, 0x98, 0x33, 0xd4, 0xff, 0xf4,
- 0xcc, 0x1b, 0xe8, 0x60, 0xa4, 0xe8, 0xfc, 0x87, 0x48, 0xff, 0xb3, 0x47, 0x91, 0x34, 0x87, 0x4c,
- 0x46, 0xfa, 0x29, 0x29, 0xee, 0xc7, 0x3a, 0xa5, 0x5f, 0xba, 0xc7, 0xe6, 0xdb, 0xdf, 0x4e, 0x55,
- 0x36, 0x71, 0x90, 0xf7, 0x37, 0x3d, 0xf1, 0x64, 0xaf, 0xde, 0xf3, 0xe3, 0xbc, 0xaf, 0xe7, 0xa9,
- 0x5c, 0x85, 0x89, 0xbe, 0x86, 0x27, 0x9e, 0xea, 0x97, 0x19, 0x55, 0x21, 0xdc, 0xef, 0x54, 0x96,
- 0x21, 0x85, 0x9b, 0x97, 0x78, 0xf8, 0xaf, 0x30, 0x38, 0x31, 0xaf, 0x7c, 0x1c, 0xb2, 0xbc, 0x69,
- 0x89, 0x87, 0xfe, 0x2a, 0x83, 0xfa, 0x10, 0x0c, 0xe7, 0x0d, 0x4b, 0x3c, 0xfc, 0xd7, 0x38, 0x9c,
- 0x43, 0x30, 0x7c, 0x74, 0x17, 0xfe, 0xe3, 0xaf, 0xa7, 0x58, 0xd1, 0xe1, 0xbe, 0xbb, 0x02, 0xe3,
- 0xac, 0x53, 0x89, 0x47, 0x7f, 0x96, 0xbd, 0x9c, 0x23, 0x2a, 0x17, 0x21, 0x3d, 0xa2, 0xc3, 0x7f,
- 0x83, 0x41, 0xa9, 0x7d, 0x65, 0x15, 0xf2, 0xa1, 0xee, 0x24, 0x1e, 0xfe, 0x9b, 0x0c, 0x1e, 0x46,
- 0xe1, 0xa1, 0xb3, 0xee, 0x24, 0x9e, 0xe0, 0xb7, 0xf8, 0xd0, 0x19, 0x02, 0xbb, 0x8d, 0x37, 0x26,
- 0xf1, 0xe8, 0xdf, 0xe6, 0x5e, 0xe7, 0x90, 0xca, 0x73, 0x90, 0xf3, 0x8b, 0x4d, 0x3c, 0xfe, 0x77,
- 0x18, 0x3e, 0xc0, 0x60, 0x0f, 0x84, 0x8a, 0x5d, 0x3c, 0xc5, 0xef, 0x72, 0x0f, 0x84, 0x50, 0x78,
- 0x1b, 0x45, 0x1b, 0x98, 0x78, 0xa6, 0xdf, 0xe3, 0xdb, 0x28, 0xd2, 0xbf, 0xe0, 0xd5, 0x24, 0x39,
- 0x3f, 0x9e, 0xe2, 0xf7, 0xf9, 0x6a, 0x12, 0x7b, 0x3c, 0x8c, 0x68, 0x47, 0x10, 0xcf, 0xf1, 0x07,
- 0x7c, 0x18, 0x91, 0x86, 0xa0, 0xb2, 0x03, 0xd2, 0x60, 0x37, 0x10, 0xcf, 0xf7, 0x39, 0xc6, 0x37,
- 0x35, 0xd0, 0x0c, 0x54, 0x5e, 0x80, 0x13, 0xc3, 0x3b, 0x81, 0x78, 0xd6, 0xcf, 0xdf, 0x8b, 0x9c,
- 0xdd, 0xc2, 0x8d, 0x40, 0x65, 0x37, 0x28, 0x29, 0xe1, 0x2e, 0x20, 0x9e, 0xf6, 0xb5, 0x7b, 0xfd,
- 0x89, 0x3b, 0xdc, 0x04, 0x54, 0xaa, 0x00, 0x41, 0x01, 0x8e, 0xe7, 0x7a, 0x9d, 0x71, 0x85, 0x40,
- 0x78, 0x6b, 0xb0, 0xfa, 0x1b, 0x8f, 0xff, 0x02, 0xdf, 0x1a, 0x0c, 0x81, 0xb7, 0x06, 0x2f, 0xbd,
- 0xf1, 0xe8, 0x37, 0xf8, 0xd6, 0xe0, 0x10, 0x1c, 0xd9, 0xa1, 0xea, 0x16, 0xcf, 0xf0, 0x45, 0x1e,
- 0xd9, 0x21, 0x54, 0x65, 0x1b, 0xa6, 0x06, 0x0a, 0x62, 0x3c, 0xd5, 0x97, 0x18, 0x95, 0x18, 0xad,
- 0x87, 0xe1, 0xe2, 0xc5, 0x8a, 0x61, 0x3c, 0xdb, 0x9f, 0x44, 0x8a, 0x17, 0xab, 0x85, 0x95, 0x2b,
- 0x90, 0x35, 0x7b, 0x86, 0x81, 0x37, 0x8f, 0x74, 0xff, 0x1f, 0xd8, 0x95, 0xfe, 0xfd, 0x03, 0xe6,
- 0x1d, 0x0e, 0xa8, 0x2c, 0x43, 0x1a, 0x75, 0x9b, 0xa8, 0x15, 0x87, 0xfc, 0x8f, 0x0f, 0x78, 0xc2,
- 0xc4, 0xd6, 0x95, 0xe7, 0x00, 0xe8, 0xd5, 0x08, 0xf9, 0xec, 0x17, 0x83, 0xfd, 0xcf, 0x0f, 0xd8,
- 0x4f, 0x5f, 0x02, 0x48, 0x40, 0x40, 0x7f, 0x48, 0x73, 0x7f, 0x82, 0x77, 0xfb, 0x09, 0xc8, 0x8a,
- 0x5c, 0x86, 0xf1, 0xeb, 0xae, 0x65, 0x7a, 0x6a, 0x27, 0x0e, 0xfd, 0x5f, 0x0c, 0xcd, 0xed, 0xb1,
- 0xc3, 0xba, 0x96, 0x83, 0x3c, 0xb5, 0xe3, 0xc6, 0x61, 0xff, 0x9b, 0x61, 0x7d, 0x00, 0x06, 0x6b,
- 0xaa, 0xeb, 0x8d, 0x32, 0xef, 0x1f, 0x73, 0x30, 0x07, 0xe0, 0x41, 0xe3, 0xbf, 0x6f, 0xa0, 0x83,
- 0x38, 0xec, 0x7b, 0x7c, 0xd0, 0xcc, 0xbe, 0xf2, 0x71, 0xc8, 0xe1, 0x3f, 0xe9, 0xef, 0xd9, 0x62,
- 0xc0, 0xff, 0xc3, 0xc0, 0x01, 0x02, 0xbf, 0xd9, 0xf5, 0x5a, 0x9e, 0x1e, 0xef, 0xec, 0xff, 0x65,
- 0x2b, 0xcd, 0xed, 0x2b, 0x55, 0xc8, 0xbb, 0x5e, 0xab, 0xd5, 0x63, 0xfd, 0x69, 0x0c, 0xfc, 0xff,
- 0x3e, 0xf0, 0xaf, 0x2c, 0x7c, 0x0c, 0x5e, 0xed, 0x5b, 0x37, 0x3c, 0xdb, 0x22, 0x9f, 0x39, 0xe2,
- 0x18, 0xee, 0x31, 0x86, 0x10, 0x64, 0xa5, 0x36, 0xfc, 0xfa, 0x16, 0xd6, 0xad, 0x75, 0x8b, 0x5e,
- 0xdc, 0xbe, 0x3c, 0x17, 0x7f, 0x03, 0x0b, 0xaf, 0xa5, 0xe1, 0x21, 0xcd, 0xea, 0x36, 0x2d, 0x77,
- 0x31, 0x94, 0xcc, 0x17, 0x2d, 0x93, 0x71, 0x4a, 0x49, 0xcb, 0x44, 0xb3, 0xc7, 0xbb, 0xcb, 0x9d,
- 0x3b, 0x05, 0xe9, 0x46, 0xaf, 0xd9, 0x3c, 0x90, 0x44, 0x48, 0xba, 0xbd, 0x26, 0xfb, 0x5d, 0x14,
- 0xfe, 0x73, 0xee, 0x07, 0x49, 0xc8, 0x37, 0xd4, 0xae, 0x6d, 0xa0, 0xba, 0x89, 0xea, 0x6d, 0xa9,
- 0x04, 0x19, 0x32, 0xd5, 0x67, 0x89, 0x91, 0x70, 0x6d, 0x4c, 0x66, 0xcf, 0xbe, 0x66, 0x89, 0xdc,
- 0x71, 0x27, 0x7c, 0xcd, 0x92, 0xaf, 0x39, 0x47, 0xaf, 0xb8, 0x7d, 0xcd, 0x39, 0x5f, 0x73, 0x9e,
- 0x5c, 0x74, 0x27, 0x7d, 0xcd, 0x79, 0x5f, 0xb3, 0x4c, 0x3e, 0xe4, 0x4c, 0xf8, 0x9a, 0x65, 0x5f,
- 0x73, 0x81, 0x7c, 0xba, 0x49, 0xf9, 0x9a, 0x0b, 0xbe, 0xe6, 0x22, 0xf9, 0x62, 0x33, 0xe5, 0x6b,
- 0x2e, 0xfa, 0x9a, 0x4b, 0xe4, 0x2b, 0x8d, 0xe4, 0x6b, 0x2e, 0xf9, 0x9a, 0xcb, 0xe4, 0xe7, 0x4f,
- 0xe3, 0xbe, 0xe6, 0xb2, 0x34, 0x0b, 0xe3, 0x74, 0x66, 0xcf, 0x90, 0x4f, 0xf9, 0x93, 0xd7, 0xc6,
- 0x64, 0x2e, 0x08, 0x74, 0xcf, 0x92, 0x9f, 0x38, 0x65, 0x02, 0xdd, 0xb3, 0x81, 0x6e, 0x89, 0xfc,
- 0x4f, 0x0b, 0x31, 0xd0, 0x2d, 0x05, 0xba, 0x73, 0xa5, 0x09, 0x1c, 0x21, 0x81, 0xee, 0x5c, 0xa0,
- 0x3b, 0x5f, 0x2a, 0x62, 0xff, 0x07, 0xba, 0xf3, 0x81, 0x6e, 0xb9, 0x34, 0x79, 0x46, 0x98, 0x2f,
- 0x04, 0xba, 0x65, 0xe9, 0x69, 0xc8, 0xbb, 0xbd, 0xa6, 0xc2, 0x72, 0x3d, 0xf9, 0x29, 0x55, 0x7e,
- 0x09, 0x16, 0x70, 0x44, 0x90, 0x45, 0xbd, 0x36, 0x26, 0x83, 0xdb, 0x6b, 0xb2, 0x54, 0xbc, 0x52,
- 0x00, 0x72, 0x03, 0xa5, 0x90, 0x5f, 0x40, 0xaf, 0xac, 0xbd, 0x75, 0xb7, 0x3c, 0xf6, 0xbd, 0xbb,
- 0xe5, 0xb1, 0x7f, 0xbd, 0x5b, 0x1e, 0x7b, 0xfb, 0x6e, 0x59, 0x78, 0xef, 0x6e, 0x59, 0x78, 0xff,
- 0x6e, 0x59, 0xb8, 0x73, 0x58, 0x16, 0xbe, 0x72, 0x58, 0x16, 0xbe, 0x76, 0x58, 0x16, 0xbe, 0x75,
- 0x58, 0x16, 0xde, 0x3a, 0x2c, 0x8f, 0x7d, 0xef, 0xb0, 0x2c, 0xbc, 0x7d, 0x58, 0x16, 0x7e, 0x74,
- 0x58, 0x1e, 0x7b, 0xef, 0xb0, 0x2c, 0xbc, 0x7f, 0x58, 0x1e, 0xbb, 0xf3, 0xc3, 0xf2, 0x58, 0x33,
- 0x43, 0xc2, 0xe8, 0xdc, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x74, 0xac, 0x53, 0x91, 0x38, 0x35,
- 0x00, 0x00,
+ // 4115 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5b, 0x70, 0x1b, 0xe7,
+ 0x75, 0x26, 0xae, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x25, 0x88, 0xb6, 0x21, 0x89, 0xb6, 0x63,
+ 0xda, 0x8e, 0x29, 0x9b, 0x22, 0x75, 0x81, 0x9a, 0xb8, 0x20, 0x09, 0x51, 0x74, 0x49, 0x82, 0x59,
+ 0x90, 0xf1, 0x25, 0xd3, 0xd9, 0x59, 0x2c, 0x7e, 0x80, 0x2b, 0x2d, 0x76, 0x37, 0xbb, 0x0b, 0xc9,
+ 0xd4, 0xf4, 0x41, 0x1d, 0xf7, 0x32, 0x99, 0xde, 0x2f, 0x33, 0x4d, 0x5c, 0xc7, 0x6d, 0xd2, 0x69,
+ 0x9c, 0xa6, 0xb7, 0xa4, 0x97, 0x34, 0x49, 0x5f, 0xfa, 0x92, 0xd6, 0x4f, 0x9d, 0xe4, 0xad, 0x0f,
+ 0x79, 0xb0, 0x18, 0xcf, 0x34, 0x6d, 0xdd, 0xd6, 0x6d, 0xf5, 0xe0, 0x19, 0xbf, 0x74, 0xfe, 0xdb,
+ 0xde, 0x00, 0x6a, 0xc1, 0xcc, 0xd8, 0x79, 0x12, 0xf7, 0x9c, 0xf3, 0x7d, 0x7b, 0xfe, 0xf3, 0x9f,
+ 0xff, 0xfc, 0xe7, 0xff, 0x17, 0x82, 0xb7, 0xaa, 0x70, 0xa6, 0x6b, 0x9a, 0x5d, 0x1d, 0x9d, 0xb3,
+ 0x6c, 0xd3, 0x35, 0x5b, 0xfd, 0xce, 0xb9, 0x36, 0x72, 0x54, 0x5b, 0xb3, 0x5c, 0xd3, 0x5e, 0x20,
+ 0x32, 0x71, 0x92, 0x5a, 0x2c, 0x70, 0x8b, 0xb9, 0x2d, 0x98, 0xba, 0xaa, 0xe9, 0x68, 0xcd, 0x33,
+ 0x6c, 0x22, 0x57, 0xbc, 0x04, 0xe9, 0x8e, 0xa6, 0xa3, 0x72, 0xe2, 0x4c, 0x6a, 0xbe, 0xb0, 0xf8,
+ 0xe8, 0x42, 0x04, 0xb4, 0x10, 0x46, 0xec, 0x60, 0xb1, 0x44, 0x10, 0x73, 0xef, 0xa4, 0x61, 0x7a,
+ 0x88, 0x56, 0x14, 0x21, 0x6d, 0x28, 0x3d, 0xcc, 0x98, 0x98, 0xcf, 0x4b, 0xe4, 0x6f, 0xb1, 0x0c,
+ 0xe3, 0x96, 0xa2, 0xde, 0x50, 0xba, 0xa8, 0x9c, 0x24, 0x62, 0xfe, 0x28, 0x56, 0x00, 0xda, 0xc8,
+ 0x42, 0x46, 0x1b, 0x19, 0xea, 0x41, 0x39, 0x75, 0x26, 0x35, 0x9f, 0x97, 0x02, 0x12, 0xf1, 0x29,
+ 0x98, 0xb2, 0xfa, 0x2d, 0x5d, 0x53, 0xe5, 0x80, 0x19, 0x9c, 0x49, 0xcd, 0x67, 0x24, 0x81, 0x2a,
+ 0xd6, 0x7c, 0xe3, 0xc7, 0x61, 0xf2, 0x16, 0x52, 0x6e, 0x04, 0x4d, 0x0b, 0xc4, 0xb4, 0x84, 0xc5,
+ 0x01, 0xc3, 0x55, 0x28, 0xf6, 0x90, 0xe3, 0x28, 0x5d, 0x24, 0xbb, 0x07, 0x16, 0x2a, 0xa7, 0xc9,
+ 0xe8, 0xcf, 0x0c, 0x8c, 0x3e, 0x3a, 0xf2, 0x02, 0x43, 0xed, 0x1e, 0x58, 0x48, 0xac, 0x41, 0x1e,
+ 0x19, 0xfd, 0x1e, 0x65, 0xc8, 0x1c, 0x11, 0xbf, 0xba, 0xd1, 0xef, 0x45, 0x59, 0x72, 0x18, 0xc6,
+ 0x28, 0xc6, 0x1d, 0x64, 0xdf, 0xd4, 0x54, 0x54, 0xce, 0x12, 0x82, 0xc7, 0x07, 0x08, 0x9a, 0x54,
+ 0x1f, 0xe5, 0xe0, 0x38, 0x71, 0x15, 0xf2, 0xe8, 0x15, 0x17, 0x19, 0x8e, 0x66, 0x1a, 0xe5, 0x71,
+ 0x42, 0xf2, 0xd8, 0x90, 0x59, 0x44, 0x7a, 0x3b, 0x4a, 0xe1, 0xe3, 0xc4, 0x0b, 0x30, 0x6e, 0x5a,
+ 0xae, 0x66, 0x1a, 0x4e, 0x39, 0x77, 0x26, 0x31, 0x5f, 0x58, 0x7c, 0x68, 0x68, 0x22, 0x34, 0xa8,
+ 0x8d, 0xc4, 0x8d, 0xc5, 0x0d, 0x10, 0x1c, 0xb3, 0x6f, 0xab, 0x48, 0x56, 0xcd, 0x36, 0x92, 0x35,
+ 0xa3, 0x63, 0x96, 0xf3, 0x84, 0xe0, 0xf4, 0xe0, 0x40, 0x88, 0xe1, 0xaa, 0xd9, 0x46, 0x1b, 0x46,
+ 0xc7, 0x94, 0x4a, 0x4e, 0xe8, 0x59, 0x3c, 0x01, 0x59, 0xe7, 0xc0, 0x70, 0x95, 0x57, 0xca, 0x45,
+ 0x92, 0x21, 0xec, 0x69, 0xee, 0xdb, 0x59, 0x98, 0x1c, 0x25, 0xc5, 0xae, 0x40, 0xa6, 0x83, 0x47,
+ 0x59, 0x4e, 0x1e, 0x27, 0x06, 0x14, 0x13, 0x0e, 0x62, 0xf6, 0xc7, 0x0c, 0x62, 0x0d, 0x0a, 0x06,
+ 0x72, 0x5c, 0xd4, 0xa6, 0x19, 0x91, 0x1a, 0x31, 0xa7, 0x80, 0x82, 0x06, 0x53, 0x2a, 0xfd, 0x63,
+ 0xa5, 0xd4, 0x8b, 0x30, 0xe9, 0xb9, 0x24, 0xdb, 0x8a, 0xd1, 0xe5, 0xb9, 0x79, 0x2e, 0xce, 0x93,
+ 0x85, 0x3a, 0xc7, 0x49, 0x18, 0x26, 0x95, 0x50, 0xe8, 0x59, 0x5c, 0x03, 0x30, 0x0d, 0x64, 0x76,
+ 0xe4, 0x36, 0x52, 0xf5, 0x72, 0xee, 0x88, 0x28, 0x35, 0xb0, 0xc9, 0x40, 0x94, 0x4c, 0x2a, 0x55,
+ 0x75, 0xf1, 0xb2, 0x9f, 0x6a, 0xe3, 0x47, 0x64, 0xca, 0x16, 0x5d, 0x64, 0x03, 0xd9, 0xb6, 0x07,
+ 0x25, 0x1b, 0xe1, 0xbc, 0x47, 0x6d, 0x36, 0xb2, 0x3c, 0x71, 0x62, 0x21, 0x76, 0x64, 0x12, 0x83,
+ 0xd1, 0x81, 0x4d, 0xd8, 0xc1, 0x47, 0xf1, 0x11, 0xf0, 0x04, 0x32, 0x49, 0x2b, 0x20, 0x55, 0xa8,
+ 0xc8, 0x85, 0xdb, 0x4a, 0x0f, 0xcd, 0xde, 0x86, 0x52, 0x38, 0x3c, 0xe2, 0x0c, 0x64, 0x1c, 0x57,
+ 0xb1, 0x5d, 0x92, 0x85, 0x19, 0x89, 0x3e, 0x88, 0x02, 0xa4, 0x90, 0xd1, 0x26, 0x55, 0x2e, 0x23,
+ 0xe1, 0x3f, 0xc5, 0x9f, 0xf6, 0x07, 0x9c, 0x22, 0x03, 0xfe, 0xd8, 0xe0, 0x8c, 0x86, 0x98, 0xa3,
+ 0xe3, 0x9e, 0xbd, 0x08, 0x13, 0xa1, 0x01, 0x8c, 0xfa, 0xea, 0xb9, 0x9f, 0x83, 0x07, 0x86, 0x52,
+ 0x8b, 0x2f, 0xc2, 0x4c, 0xdf, 0xd0, 0x0c, 0x17, 0xd9, 0x96, 0x8d, 0x70, 0xc6, 0xd2, 0x57, 0x95,
+ 0xff, 0x75, 0xfc, 0x88, 0x9c, 0xdb, 0x0b, 0x5a, 0x53, 0x16, 0x69, 0xba, 0x3f, 0x28, 0x7c, 0x32,
+ 0x9f, 0xfb, 0xd1, 0xb8, 0x70, 0xe7, 0xce, 0x9d, 0x3b, 0xc9, 0xb9, 0xcf, 0x67, 0x61, 0x66, 0xd8,
+ 0x9a, 0x19, 0xba, 0x7c, 0x4f, 0x40, 0xd6, 0xe8, 0xf7, 0x5a, 0xc8, 0x26, 0x41, 0xca, 0x48, 0xec,
+ 0x49, 0xac, 0x41, 0x46, 0x57, 0x5a, 0x48, 0x2f, 0xa7, 0xcf, 0x24, 0xe6, 0x4b, 0x8b, 0x4f, 0x8d,
+ 0xb4, 0x2a, 0x17, 0x36, 0x31, 0x44, 0xa2, 0x48, 0xf1, 0x93, 0x90, 0x66, 0x25, 0x1a, 0x33, 0x3c,
+ 0x39, 0x1a, 0x03, 0x5e, 0x4b, 0x12, 0xc1, 0x89, 0x0f, 0x42, 0x1e, 0xff, 0x4b, 0x73, 0x23, 0x4b,
+ 0x7c, 0xce, 0x61, 0x01, 0xce, 0x0b, 0x71, 0x16, 0x72, 0x64, 0x99, 0xb4, 0x11, 0xdf, 0xda, 0xbc,
+ 0x67, 0x9c, 0x58, 0x6d, 0xd4, 0x51, 0xfa, 0xba, 0x2b, 0xdf, 0x54, 0xf4, 0x3e, 0x22, 0x09, 0x9f,
+ 0x97, 0x8a, 0x4c, 0xf8, 0x69, 0x2c, 0x13, 0x4f, 0x43, 0x81, 0xae, 0x2a, 0xcd, 0x68, 0xa3, 0x57,
+ 0x48, 0xf5, 0xcc, 0x48, 0x74, 0xa1, 0x6d, 0x60, 0x09, 0x7e, 0xfd, 0x75, 0xc7, 0x34, 0x78, 0x6a,
+ 0x92, 0x57, 0x60, 0x01, 0x79, 0xfd, 0xc5, 0x68, 0xe1, 0x7e, 0x78, 0xf8, 0xf0, 0xa2, 0x39, 0x35,
+ 0xf7, 0xcd, 0x24, 0xa4, 0x49, 0xbd, 0x98, 0x84, 0xc2, 0xee, 0x4b, 0x3b, 0x75, 0x79, 0xad, 0xb1,
+ 0xb7, 0xb2, 0x59, 0x17, 0x12, 0x62, 0x09, 0x80, 0x08, 0xae, 0x6e, 0x36, 0x6a, 0xbb, 0x42, 0xd2,
+ 0x7b, 0xde, 0xd8, 0xde, 0xbd, 0xb0, 0x24, 0xa4, 0x3c, 0xc0, 0x1e, 0x15, 0xa4, 0x83, 0x06, 0xe7,
+ 0x17, 0x85, 0x8c, 0x28, 0x40, 0x91, 0x12, 0x6c, 0xbc, 0x58, 0x5f, 0xbb, 0xb0, 0x24, 0x64, 0xc3,
+ 0x92, 0xf3, 0x8b, 0xc2, 0xb8, 0x38, 0x01, 0x79, 0x22, 0x59, 0x69, 0x34, 0x36, 0x85, 0x9c, 0xc7,
+ 0xd9, 0xdc, 0x95, 0x36, 0xb6, 0xd7, 0x85, 0xbc, 0xc7, 0xb9, 0x2e, 0x35, 0xf6, 0x76, 0x04, 0xf0,
+ 0x18, 0xb6, 0xea, 0xcd, 0x66, 0x6d, 0xbd, 0x2e, 0x14, 0x3c, 0x8b, 0x95, 0x97, 0x76, 0xeb, 0x4d,
+ 0xa1, 0x18, 0x72, 0xeb, 0xfc, 0xa2, 0x30, 0xe1, 0xbd, 0xa2, 0xbe, 0xbd, 0xb7, 0x25, 0x94, 0xc4,
+ 0x29, 0x98, 0xa0, 0xaf, 0xe0, 0x4e, 0x4c, 0x46, 0x44, 0x17, 0x96, 0x04, 0xc1, 0x77, 0x84, 0xb2,
+ 0x4c, 0x85, 0x04, 0x17, 0x96, 0x04, 0x71, 0x6e, 0x15, 0x32, 0x24, 0xbb, 0x44, 0x11, 0x4a, 0x9b,
+ 0xb5, 0x95, 0xfa, 0xa6, 0xdc, 0xd8, 0xd9, 0xdd, 0x68, 0x6c, 0xd7, 0x36, 0x85, 0x84, 0x2f, 0x93,
+ 0xea, 0x9f, 0xda, 0xdb, 0x90, 0xea, 0x6b, 0x42, 0x32, 0x28, 0xdb, 0xa9, 0xd7, 0x76, 0xeb, 0x6b,
+ 0x42, 0x6a, 0x4e, 0x85, 0x99, 0x61, 0x75, 0x72, 0xe8, 0xca, 0x08, 0x4c, 0x71, 0xf2, 0x88, 0x29,
+ 0x26, 0x5c, 0x03, 0x53, 0xfc, 0xc3, 0x24, 0x4c, 0x0f, 0xd9, 0x2b, 0x86, 0xbe, 0xe4, 0x39, 0xc8,
+ 0xd0, 0x14, 0xa5, 0xbb, 0xe7, 0x13, 0x43, 0x37, 0x1d, 0x92, 0xb0, 0x03, 0x3b, 0x28, 0xc1, 0x05,
+ 0x3b, 0x88, 0xd4, 0x11, 0x1d, 0x04, 0xa6, 0x18, 0xa8, 0xe9, 0x3f, 0x3b, 0x50, 0xd3, 0xe9, 0xb6,
+ 0x77, 0x61, 0x94, 0x6d, 0x8f, 0xc8, 0x8e, 0x57, 0xdb, 0x33, 0x43, 0x6a, 0xfb, 0x15, 0x98, 0x1a,
+ 0x20, 0x1a, 0xb9, 0xc6, 0xbe, 0x9a, 0x80, 0xf2, 0x51, 0xc1, 0x89, 0xa9, 0x74, 0xc9, 0x50, 0xa5,
+ 0xbb, 0x12, 0x8d, 0xe0, 0xd9, 0xa3, 0x27, 0x61, 0x60, 0xae, 0xdf, 0x4c, 0xc0, 0x89, 0xe1, 0x9d,
+ 0xe2, 0x50, 0x1f, 0x3e, 0x09, 0xd9, 0x1e, 0x72, 0xf7, 0x4d, 0xde, 0x2d, 0x7d, 0x6c, 0xc8, 0x1e,
+ 0x8c, 0xd5, 0xd1, 0xc9, 0x66, 0xa8, 0xe0, 0x26, 0x9e, 0x3a, 0xaa, 0xdd, 0xa3, 0xde, 0x0c, 0x78,
+ 0xfa, 0xb9, 0x24, 0x3c, 0x30, 0x94, 0x7c, 0xa8, 0xa3, 0x0f, 0x03, 0x68, 0x86, 0xd5, 0x77, 0x69,
+ 0x47, 0x44, 0x0b, 0x6c, 0x9e, 0x48, 0x48, 0xf1, 0xc2, 0xc5, 0xb3, 0xef, 0x7a, 0xfa, 0x14, 0xd1,
+ 0x03, 0x15, 0x11, 0x83, 0x4b, 0xbe, 0xa3, 0x69, 0xe2, 0x68, 0xe5, 0x88, 0x91, 0x0e, 0x24, 0xe6,
+ 0x33, 0x20, 0xa8, 0xba, 0x86, 0x0c, 0x57, 0x76, 0x5c, 0x1b, 0x29, 0x3d, 0xcd, 0xe8, 0x92, 0x1d,
+ 0x24, 0x57, 0xcd, 0x74, 0x14, 0xdd, 0x41, 0xd2, 0x24, 0x55, 0x37, 0xb9, 0x16, 0x23, 0x48, 0x02,
+ 0xd9, 0x01, 0x44, 0x36, 0x84, 0xa0, 0x6a, 0x0f, 0x31, 0xf7, 0xab, 0x79, 0x28, 0x04, 0xfa, 0x6a,
+ 0xf1, 0x2c, 0x14, 0xaf, 0x2b, 0x37, 0x15, 0x99, 0x9f, 0x95, 0x68, 0x24, 0x0a, 0x58, 0xb6, 0xc3,
+ 0xce, 0x4b, 0xcf, 0xc0, 0x0c, 0x31, 0x31, 0xfb, 0x2e, 0xb2, 0x65, 0x55, 0x57, 0x1c, 0x87, 0x04,
+ 0x2d, 0x47, 0x4c, 0x45, 0xac, 0x6b, 0x60, 0xd5, 0x2a, 0xd7, 0x88, 0xcb, 0x30, 0x4d, 0x10, 0xbd,
+ 0xbe, 0xee, 0x6a, 0x96, 0x8e, 0x64, 0x7c, 0x7a, 0x73, 0xc8, 0x4e, 0xe2, 0x79, 0x36, 0x85, 0x2d,
+ 0xb6, 0x98, 0x01, 0xf6, 0xc8, 0x11, 0xd7, 0xe0, 0x61, 0x02, 0xeb, 0x22, 0x03, 0xd9, 0x8a, 0x8b,
+ 0x64, 0xf4, 0xd9, 0xbe, 0xa2, 0x3b, 0xb2, 0x62, 0xb4, 0xe5, 0x7d, 0xc5, 0xd9, 0x2f, 0xcf, 0x60,
+ 0x82, 0x95, 0x64, 0x39, 0x21, 0x9d, 0xc2, 0x86, 0xeb, 0xcc, 0xae, 0x4e, 0xcc, 0x6a, 0x46, 0xfb,
+ 0x9a, 0xe2, 0xec, 0x8b, 0x55, 0x38, 0x41, 0x58, 0x1c, 0xd7, 0xd6, 0x8c, 0xae, 0xac, 0xee, 0x23,
+ 0xf5, 0x86, 0xdc, 0x77, 0x3b, 0x97, 0xca, 0x0f, 0x06, 0xdf, 0x4f, 0x3c, 0x6c, 0x12, 0x9b, 0x55,
+ 0x6c, 0xb2, 0xe7, 0x76, 0x2e, 0x89, 0x4d, 0x28, 0xe2, 0xc9, 0xe8, 0x69, 0xb7, 0x91, 0xdc, 0x31,
+ 0x6d, 0xb2, 0x35, 0x96, 0x86, 0x94, 0xa6, 0x40, 0x04, 0x17, 0x1a, 0x0c, 0xb0, 0x65, 0xb6, 0x51,
+ 0x35, 0xd3, 0xdc, 0xa9, 0xd7, 0xd7, 0xa4, 0x02, 0x67, 0xb9, 0x6a, 0xda, 0x38, 0xa1, 0xba, 0xa6,
+ 0x17, 0xe0, 0x02, 0x4d, 0xa8, 0xae, 0xc9, 0xc3, 0xbb, 0x0c, 0xd3, 0xaa, 0x4a, 0xc7, 0xac, 0xa9,
+ 0x32, 0x3b, 0x63, 0x39, 0x65, 0x21, 0x14, 0x2c, 0x55, 0x5d, 0xa7, 0x06, 0x2c, 0xc7, 0x1d, 0xf1,
+ 0x32, 0x3c, 0xe0, 0x07, 0x2b, 0x08, 0x9c, 0x1a, 0x18, 0x65, 0x14, 0xba, 0x0c, 0xd3, 0xd6, 0xc1,
+ 0x20, 0x50, 0x0c, 0xbd, 0xd1, 0x3a, 0x88, 0xc2, 0x2e, 0xc2, 0x8c, 0xb5, 0x6f, 0x0d, 0xe2, 0x9e,
+ 0x0c, 0xe2, 0x44, 0x6b, 0xdf, 0x8a, 0x02, 0x1f, 0x23, 0x07, 0x6e, 0x1b, 0xa9, 0x8a, 0x8b, 0xda,
+ 0xe5, 0x93, 0x41, 0xf3, 0x80, 0x42, 0x3c, 0x07, 0x82, 0xaa, 0xca, 0xc8, 0x50, 0x5a, 0x3a, 0x92,
+ 0x15, 0x1b, 0x19, 0x8a, 0x53, 0x3e, 0x1d, 0x34, 0x2e, 0xa9, 0x6a, 0x9d, 0x68, 0x6b, 0x44, 0x29,
+ 0x3e, 0x09, 0x53, 0x66, 0xeb, 0xba, 0x4a, 0x53, 0x52, 0xb6, 0x6c, 0xd4, 0xd1, 0x5e, 0x29, 0x3f,
+ 0x4a, 0xe2, 0x3b, 0x89, 0x15, 0x24, 0x21, 0x77, 0x88, 0x58, 0x7c, 0x02, 0x04, 0xd5, 0xd9, 0x57,
+ 0x6c, 0x8b, 0xd4, 0x64, 0xc7, 0x52, 0x54, 0x54, 0x7e, 0x8c, 0x9a, 0x52, 0xf9, 0x36, 0x17, 0xe3,
+ 0x25, 0xe1, 0xdc, 0xd2, 0x3a, 0x2e, 0x67, 0x7c, 0x9c, 0x2e, 0x09, 0x22, 0x63, 0x6c, 0xf3, 0x20,
+ 0xe0, 0x50, 0x84, 0x5e, 0x3c, 0x4f, 0xcc, 0x4a, 0xd6, 0xbe, 0x15, 0x7c, 0xef, 0x23, 0x30, 0x81,
+ 0x2d, 0xfd, 0x97, 0x3e, 0x41, 0x1b, 0x32, 0x6b, 0x3f, 0xf0, 0xc6, 0x25, 0x38, 0x81, 0x8d, 0x7a,
+ 0xc8, 0x55, 0xda, 0x8a, 0xab, 0x04, 0xac, 0x3f, 0x4e, 0xac, 0x71, 0xdc, 0xb7, 0x98, 0x32, 0xe4,
+ 0xa7, 0xdd, 0x6f, 0x1d, 0x78, 0x99, 0xf5, 0x34, 0xf5, 0x13, 0xcb, 0x78, 0x6e, 0x7d, 0x68, 0x4d,
+ 0xf7, 0x5c, 0x15, 0x8a, 0xc1, 0xc4, 0x17, 0xf3, 0x40, 0x53, 0x5f, 0x48, 0xe0, 0x2e, 0x68, 0xb5,
+ 0xb1, 0x86, 0xfb, 0x97, 0x97, 0xeb, 0x42, 0x12, 0xf7, 0x51, 0x9b, 0x1b, 0xbb, 0x75, 0x59, 0xda,
+ 0xdb, 0xde, 0xdd, 0xd8, 0xaa, 0x0b, 0xa9, 0x60, 0xc3, 0xfe, 0xdd, 0x24, 0x94, 0xc2, 0x67, 0x2f,
+ 0xf1, 0xa7, 0xe0, 0x24, 0xbf, 0x28, 0x71, 0x90, 0x2b, 0xdf, 0xd2, 0x6c, 0xb2, 0x16, 0x7b, 0x0a,
+ 0xdd, 0x17, 0xbd, 0x6c, 0x98, 0x61, 0x56, 0x4d, 0xe4, 0xbe, 0xa0, 0xd9, 0x78, 0xa5, 0xf5, 0x14,
+ 0x57, 0xdc, 0x84, 0xd3, 0x86, 0x29, 0x3b, 0xae, 0x62, 0xb4, 0x15, 0xbb, 0x2d, 0xfb, 0x57, 0x54,
+ 0xb2, 0xa2, 0xaa, 0xc8, 0x71, 0x4c, 0xba, 0x07, 0x7a, 0x2c, 0x0f, 0x19, 0x66, 0x93, 0x19, 0xfb,
+ 0x9b, 0x43, 0x8d, 0x99, 0x46, 0x32, 0x37, 0x75, 0x54, 0xe6, 0x3e, 0x08, 0xf9, 0x9e, 0x62, 0xc9,
+ 0xc8, 0x70, 0xed, 0x03, 0xd2, 0x71, 0xe7, 0xa4, 0x5c, 0x4f, 0xb1, 0xea, 0xf8, 0xf9, 0xa3, 0x39,
+ 0xf8, 0xfc, 0x20, 0x05, 0xc5, 0x60, 0xd7, 0x8d, 0x0f, 0x31, 0x2a, 0xd9, 0xa0, 0x12, 0xa4, 0x84,
+ 0x3d, 0x72, 0xdf, 0x1e, 0x7d, 0x61, 0x15, 0xef, 0x5c, 0xd5, 0x2c, 0xed, 0x85, 0x25, 0x8a, 0xc4,
+ 0x5d, 0x03, 0x4e, 0x2d, 0x44, 0x7b, 0x8f, 0x9c, 0xc4, 0x9e, 0xc4, 0x75, 0xc8, 0x5e, 0x77, 0x08,
+ 0x77, 0x96, 0x70, 0x3f, 0x7a, 0x7f, 0xee, 0xe7, 0x9b, 0x84, 0x3c, 0xff, 0x7c, 0x53, 0xde, 0x6e,
+ 0x48, 0x5b, 0xb5, 0x4d, 0x89, 0xc1, 0xc5, 0x53, 0x90, 0xd6, 0x95, 0xdb, 0x07, 0xe1, 0x3d, 0x8e,
+ 0x88, 0x46, 0x0d, 0xfc, 0x29, 0x48, 0xdf, 0x42, 0xca, 0x8d, 0xf0, 0xce, 0x42, 0x44, 0x1f, 0x62,
+ 0xea, 0x9f, 0x83, 0x0c, 0x89, 0x97, 0x08, 0xc0, 0x22, 0x26, 0x8c, 0x89, 0x39, 0x48, 0xaf, 0x36,
+ 0x24, 0x9c, 0xfe, 0x02, 0x14, 0xa9, 0x54, 0xde, 0xd9, 0xa8, 0xaf, 0xd6, 0x85, 0xe4, 0xdc, 0x32,
+ 0x64, 0x69, 0x10, 0xf0, 0xd2, 0xf0, 0xc2, 0x20, 0x8c, 0xb1, 0x47, 0xc6, 0x91, 0xe0, 0xda, 0xbd,
+ 0xad, 0x95, 0xba, 0x24, 0x24, 0x83, 0xd3, 0xeb, 0x40, 0x31, 0xd8, 0x70, 0x7f, 0x34, 0x39, 0xf5,
+ 0x9d, 0x04, 0x14, 0x02, 0x0d, 0x34, 0xee, 0x7c, 0x14, 0x5d, 0x37, 0x6f, 0xc9, 0x8a, 0xae, 0x29,
+ 0x0e, 0x4b, 0x0a, 0x20, 0xa2, 0x1a, 0x96, 0x8c, 0x3a, 0x69, 0x1f, 0x89, 0xf3, 0x6f, 0x24, 0x40,
+ 0x88, 0xf6, 0xae, 0x11, 0x07, 0x13, 0x3f, 0x51, 0x07, 0x5f, 0x4f, 0x40, 0x29, 0xdc, 0xb0, 0x46,
+ 0xdc, 0x3b, 0xfb, 0x13, 0x75, 0xef, 0xed, 0x24, 0x4c, 0x84, 0xda, 0xd4, 0x51, 0xbd, 0xfb, 0x2c,
+ 0x4c, 0x69, 0x6d, 0xd4, 0xb3, 0x4c, 0x17, 0x19, 0xea, 0x81, 0xac, 0xa3, 0x9b, 0x48, 0x2f, 0xcf,
+ 0x91, 0x42, 0x71, 0xee, 0xfe, 0x8d, 0xf0, 0xc2, 0x86, 0x8f, 0xdb, 0xc4, 0xb0, 0xea, 0xf4, 0xc6,
+ 0x5a, 0x7d, 0x6b, 0xa7, 0xb1, 0x5b, 0xdf, 0x5e, 0x7d, 0x49, 0xde, 0xdb, 0xfe, 0x99, 0xed, 0xc6,
+ 0x0b, 0xdb, 0x92, 0xa0, 0x45, 0xcc, 0x3e, 0xc4, 0xa5, 0xbe, 0x03, 0x42, 0xd4, 0x29, 0xf1, 0x24,
+ 0x0c, 0x73, 0x4b, 0x18, 0x13, 0xa7, 0x61, 0x72, 0xbb, 0x21, 0x37, 0x37, 0xd6, 0xea, 0x72, 0xfd,
+ 0xea, 0xd5, 0xfa, 0xea, 0x6e, 0x93, 0x5e, 0x6d, 0x78, 0xd6, 0xbb, 0xe1, 0x45, 0xfd, 0x5a, 0x0a,
+ 0xa6, 0x87, 0x78, 0x22, 0xd6, 0xd8, 0xa1, 0x84, 0x9e, 0x93, 0x9e, 0x1e, 0xc5, 0xfb, 0x05, 0xdc,
+ 0x15, 0xec, 0x28, 0xb6, 0xcb, 0xce, 0x30, 0x4f, 0x00, 0x8e, 0x92, 0xe1, 0x6a, 0x1d, 0x0d, 0xd9,
+ 0xec, 0x26, 0x88, 0x9e, 0x54, 0x26, 0x7d, 0x39, 0xbd, 0x0c, 0xfa, 0x38, 0x88, 0x96, 0xe9, 0x68,
+ 0xae, 0x76, 0x13, 0xc9, 0x9a, 0xc1, 0xaf, 0x8d, 0xf0, 0xc9, 0x25, 0x2d, 0x09, 0x5c, 0xb3, 0x61,
+ 0xb8, 0x9e, 0xb5, 0x81, 0xba, 0x4a, 0xc4, 0x1a, 0x17, 0xf0, 0x94, 0x24, 0x70, 0x8d, 0x67, 0x7d,
+ 0x16, 0x8a, 0x6d, 0xb3, 0x8f, 0xdb, 0x39, 0x6a, 0x87, 0xf7, 0x8b, 0x84, 0x54, 0xa0, 0x32, 0xcf,
+ 0x84, 0x35, 0xea, 0xfe, 0x7d, 0x55, 0x51, 0x2a, 0x50, 0x19, 0x35, 0x79, 0x1c, 0x26, 0x95, 0x6e,
+ 0xd7, 0xc6, 0xe4, 0x9c, 0x88, 0x1e, 0x3d, 0x4a, 0x9e, 0x98, 0x18, 0xce, 0x3e, 0x0f, 0x39, 0x1e,
+ 0x07, 0xbc, 0x25, 0xe3, 0x48, 0xc8, 0x16, 0x3d, 0x4f, 0x27, 0xe7, 0xf3, 0x52, 0xce, 0xe0, 0xca,
+ 0xb3, 0x50, 0xd4, 0x1c, 0xd9, 0xbf, 0x7e, 0x4f, 0x9e, 0x49, 0xce, 0xe7, 0xa4, 0x82, 0xe6, 0x78,
+ 0x57, 0x97, 0x73, 0x6f, 0x26, 0xa1, 0x14, 0xfe, 0x7c, 0x20, 0xae, 0x41, 0x4e, 0x37, 0x55, 0x85,
+ 0xa4, 0x16, 0xfd, 0x76, 0x35, 0x1f, 0xf3, 0xc5, 0x61, 0x61, 0x93, 0xd9, 0x4b, 0x1e, 0x72, 0xf6,
+ 0x9f, 0x13, 0x90, 0xe3, 0x62, 0xf1, 0x04, 0xa4, 0x2d, 0xc5, 0xdd, 0x27, 0x74, 0x99, 0x95, 0xa4,
+ 0x90, 0x90, 0xc8, 0x33, 0x96, 0x3b, 0x96, 0x62, 0x90, 0x14, 0x60, 0x72, 0xfc, 0x8c, 0xe7, 0x55,
+ 0x47, 0x4a, 0x9b, 0x9c, 0x6b, 0xcc, 0x5e, 0x0f, 0x19, 0xae, 0xc3, 0xe7, 0x95, 0xc9, 0x57, 0x99,
+ 0x58, 0x7c, 0x0a, 0xa6, 0x5c, 0x5b, 0xd1, 0xf4, 0x90, 0x6d, 0x9a, 0xd8, 0x0a, 0x5c, 0xe1, 0x19,
+ 0x57, 0xe1, 0x14, 0xe7, 0x6d, 0x23, 0x57, 0x51, 0xf7, 0x51, 0xdb, 0x07, 0x65, 0xc9, 0xfd, 0xc5,
+ 0x49, 0x66, 0xb0, 0xc6, 0xf4, 0x1c, 0x3b, 0xf7, 0xfd, 0x04, 0x4c, 0xf1, 0x93, 0x58, 0xdb, 0x0b,
+ 0xd6, 0x16, 0x80, 0x62, 0x18, 0xa6, 0x1b, 0x0c, 0xd7, 0x60, 0x2a, 0x0f, 0xe0, 0x16, 0x6a, 0x1e,
+ 0x48, 0x0a, 0x10, 0xcc, 0xf6, 0x00, 0x7c, 0xcd, 0x91, 0x61, 0x3b, 0x0d, 0x05, 0xf6, 0x6d, 0x88,
+ 0x7c, 0x60, 0xa4, 0x67, 0x77, 0xa0, 0x22, 0x7c, 0x64, 0x13, 0x67, 0x20, 0xd3, 0x42, 0x5d, 0xcd,
+ 0x60, 0x37, 0xbe, 0xf4, 0x81, 0xdf, 0xb0, 0xa4, 0xbd, 0x1b, 0x96, 0x95, 0xcf, 0xc0, 0xb4, 0x6a,
+ 0xf6, 0xa2, 0xee, 0xae, 0x08, 0x91, 0xfb, 0x03, 0xe7, 0x5a, 0xe2, 0x65, 0xf0, 0x5b, 0xcc, 0xf7,
+ 0x13, 0x89, 0x2f, 0x27, 0x53, 0xeb, 0x3b, 0x2b, 0x5f, 0x4b, 0xce, 0xae, 0x53, 0xe8, 0x0e, 0x1f,
+ 0xa9, 0x84, 0x3a, 0x3a, 0x52, 0xb1, 0xf7, 0xf0, 0x95, 0xa7, 0xe0, 0xe9, 0xae, 0xe6, 0xee, 0xf7,
+ 0x5b, 0x0b, 0xaa, 0xd9, 0x3b, 0xd7, 0x35, 0xbb, 0xa6, 0xff, 0x4d, 0x15, 0x3f, 0x91, 0x07, 0xf2,
+ 0x17, 0xfb, 0xae, 0x9a, 0xf7, 0xa4, 0xb3, 0xb1, 0x1f, 0x61, 0xab, 0xdb, 0x30, 0xcd, 0x8c, 0x65,
+ 0xf2, 0x61, 0x87, 0x1e, 0x4f, 0xc4, 0xfb, 0x5e, 0x8e, 0x95, 0xbf, 0xf1, 0x0e, 0xd9, 0xae, 0xa5,
+ 0x29, 0x06, 0xc5, 0x3a, 0x7a, 0x82, 0xa9, 0x4a, 0xf0, 0x40, 0x88, 0x8f, 0x2e, 0x4d, 0x64, 0xc7,
+ 0x30, 0x7e, 0x97, 0x31, 0x4e, 0x07, 0x18, 0x9b, 0x0c, 0x5a, 0x5d, 0x85, 0x89, 0xe3, 0x70, 0xfd,
+ 0x23, 0xe3, 0x2a, 0xa2, 0x20, 0xc9, 0x3a, 0x4c, 0x12, 0x12, 0xb5, 0xef, 0xb8, 0x66, 0x8f, 0xd4,
+ 0xbd, 0xfb, 0xd3, 0xfc, 0xd3, 0x3b, 0x74, 0xad, 0x94, 0x30, 0x6c, 0xd5, 0x43, 0x55, 0xab, 0x40,
+ 0xbe, 0x65, 0xb5, 0x91, 0xaa, 0xc7, 0x30, 0xbc, 0xc5, 0x1c, 0xf1, 0xec, 0xab, 0x9f, 0x86, 0x19,
+ 0xfc, 0x37, 0x29, 0x4b, 0x41, 0x4f, 0xe2, 0x6f, 0xd2, 0xca, 0xdf, 0x7f, 0x95, 0x2e, 0xc7, 0x69,
+ 0x8f, 0x20, 0xe0, 0x53, 0x60, 0x16, 0xbb, 0xc8, 0x75, 0x91, 0xed, 0xc8, 0x8a, 0x3e, 0xcc, 0xbd,
+ 0xc0, 0x55, 0x44, 0xf9, 0x0b, 0xef, 0x86, 0x67, 0x71, 0x9d, 0x22, 0x6b, 0xba, 0x5e, 0xdd, 0x83,
+ 0x93, 0x43, 0xb2, 0x62, 0x04, 0xce, 0xd7, 0x18, 0xe7, 0xcc, 0x40, 0x66, 0x60, 0xda, 0x1d, 0xe0,
+ 0x72, 0x6f, 0x2e, 0x47, 0xe0, 0xfc, 0x7d, 0xc6, 0x29, 0x32, 0x2c, 0x9f, 0x52, 0xcc, 0xf8, 0x3c,
+ 0x4c, 0xdd, 0x44, 0x76, 0xcb, 0x74, 0xd8, 0xf5, 0xcf, 0x08, 0x74, 0xaf, 0x33, 0xba, 0x49, 0x06,
+ 0x24, 0xf7, 0x41, 0x98, 0xeb, 0x32, 0xe4, 0x3a, 0x8a, 0x8a, 0x46, 0xa0, 0xf8, 0x22, 0xa3, 0x18,
+ 0xc7, 0xf6, 0x18, 0x5a, 0x83, 0x62, 0xd7, 0x64, 0x3b, 0x53, 0x3c, 0xfc, 0x0d, 0x06, 0x2f, 0x70,
+ 0x0c, 0xa3, 0xb0, 0x4c, 0xab, 0xaf, 0xe3, 0x6d, 0x2b, 0x9e, 0xe2, 0x0f, 0x38, 0x05, 0xc7, 0x30,
+ 0x8a, 0x63, 0x84, 0xf5, 0x0f, 0x39, 0x85, 0x13, 0x88, 0xe7, 0x73, 0x50, 0x30, 0x0d, 0xfd, 0xc0,
+ 0x34, 0x46, 0x71, 0xe2, 0x4b, 0x8c, 0x01, 0x18, 0x04, 0x13, 0x5c, 0x81, 0xfc, 0xa8, 0x13, 0xf1,
+ 0xc7, 0xef, 0xf2, 0xe5, 0xc1, 0x67, 0x60, 0x1d, 0x26, 0x79, 0x81, 0xd2, 0x4c, 0x63, 0x04, 0x8a,
+ 0xaf, 0x30, 0x8a, 0x52, 0x00, 0xc6, 0x86, 0xe1, 0x22, 0xc7, 0xed, 0xa2, 0x51, 0x48, 0xde, 0xe4,
+ 0xc3, 0x60, 0x10, 0x16, 0xca, 0x16, 0x32, 0xd4, 0xfd, 0xd1, 0x18, 0xbe, 0xca, 0x43, 0xc9, 0x31,
+ 0x98, 0x62, 0x15, 0x26, 0x7a, 0x8a, 0xed, 0xec, 0x2b, 0xfa, 0x48, 0xd3, 0xf1, 0x27, 0x8c, 0xa3,
+ 0xe8, 0x81, 0x58, 0x44, 0xfa, 0xc6, 0x71, 0x68, 0xbe, 0xc6, 0x23, 0x12, 0x80, 0xb1, 0xa5, 0xe7,
+ 0xb8, 0xe4, 0xae, 0xec, 0x38, 0x6c, 0x7f, 0xca, 0x97, 0x1e, 0xc5, 0x6e, 0x05, 0x19, 0xaf, 0x40,
+ 0xde, 0xd1, 0x6e, 0x8f, 0x44, 0xf3, 0x67, 0x7c, 0xa6, 0x09, 0x00, 0x83, 0x5f, 0x82, 0x53, 0x43,
+ 0xb7, 0x89, 0x11, 0xc8, 0xfe, 0x9c, 0x91, 0x9d, 0x18, 0xb2, 0x55, 0xb0, 0x92, 0x70, 0x5c, 0xca,
+ 0xbf, 0xe0, 0x25, 0x01, 0x45, 0xb8, 0x76, 0xf0, 0x59, 0xc1, 0x51, 0x3a, 0xc7, 0x8b, 0xda, 0x5f,
+ 0xf2, 0xa8, 0x51, 0x6c, 0x28, 0x6a, 0xbb, 0x70, 0x82, 0x31, 0x1e, 0x6f, 0x5e, 0xbf, 0xce, 0x0b,
+ 0x2b, 0x45, 0xef, 0x85, 0x67, 0xf7, 0x33, 0x30, 0xeb, 0x85, 0x93, 0x37, 0xa5, 0x8e, 0xdc, 0x53,
+ 0xac, 0x11, 0x98, 0xbf, 0xc1, 0x98, 0x79, 0xc5, 0xf7, 0xba, 0x5a, 0x67, 0x4b, 0xb1, 0x30, 0xf9,
+ 0x8b, 0x50, 0xe6, 0xe4, 0x7d, 0xc3, 0x46, 0xaa, 0xd9, 0x35, 0xb4, 0xdb, 0xa8, 0x3d, 0x02, 0xf5,
+ 0x5f, 0x45, 0xa6, 0x6a, 0x2f, 0x00, 0xc7, 0xcc, 0x1b, 0x20, 0x78, 0xbd, 0x8a, 0xac, 0xf5, 0x2c,
+ 0xd3, 0x76, 0x63, 0x18, 0xff, 0x9a, 0xcf, 0x94, 0x87, 0xdb, 0x20, 0xb0, 0x6a, 0x1d, 0x4a, 0xe4,
+ 0x71, 0xd4, 0x94, 0xfc, 0x1b, 0x46, 0x34, 0xe1, 0xa3, 0x58, 0xe1, 0x50, 0xcd, 0x9e, 0xa5, 0xd8,
+ 0xa3, 0xd4, 0xbf, 0xbf, 0xe5, 0x85, 0x83, 0x41, 0x58, 0xe1, 0x70, 0x0f, 0x2c, 0x84, 0x77, 0xfb,
+ 0x11, 0x18, 0xbe, 0xc9, 0x0b, 0x07, 0xc7, 0x30, 0x0a, 0xde, 0x30, 0x8c, 0x40, 0xf1, 0x77, 0x9c,
+ 0x82, 0x63, 0x30, 0xc5, 0xa7, 0xfc, 0x8d, 0xd6, 0x46, 0x5d, 0xcd, 0x71, 0x6d, 0xda, 0x0a, 0xdf,
+ 0x9f, 0xea, 0x5b, 0xef, 0x86, 0x9b, 0x30, 0x29, 0x00, 0xc5, 0x95, 0x88, 0x5d, 0xa1, 0x92, 0x93,
+ 0x52, 0xbc, 0x63, 0xdf, 0xe6, 0x95, 0x28, 0x00, 0xc3, 0xbe, 0x05, 0x3a, 0x44, 0x1c, 0x76, 0x15,
+ 0x9f, 0x0f, 0x46, 0xa0, 0xfb, 0x4e, 0xc4, 0xb9, 0x26, 0xc7, 0x62, 0xce, 0x40, 0xff, 0xd3, 0x37,
+ 0x6e, 0xa0, 0x83, 0x91, 0xb2, 0xf3, 0xef, 0x23, 0xfd, 0xcf, 0x1e, 0x45, 0xd2, 0x1a, 0x32, 0x19,
+ 0xe9, 0xa7, 0xc4, 0xb8, 0x5f, 0x01, 0x95, 0x7f, 0xfe, 0x1e, 0x1b, 0x6f, 0xb8, 0x9d, 0xaa, 0x6e,
+ 0xe2, 0x24, 0x0f, 0x37, 0x3d, 0xf1, 0x64, 0xaf, 0xde, 0xf3, 0xf2, 0x3c, 0xd4, 0xf3, 0x54, 0xaf,
+ 0xc2, 0x44, 0xa8, 0xe1, 0x89, 0xa7, 0xfa, 0x05, 0x46, 0x55, 0x0c, 0xf6, 0x3b, 0xd5, 0x65, 0x48,
+ 0xe3, 0xe6, 0x25, 0x1e, 0xfe, 0x8b, 0x0c, 0x4e, 0xcc, 0xab, 0x9f, 0x80, 0x1c, 0x6f, 0x5a, 0xe2,
+ 0xa1, 0xbf, 0xc4, 0xa0, 0x1e, 0x04, 0xc3, 0x79, 0xc3, 0x12, 0x0f, 0xff, 0x65, 0x0e, 0xe7, 0x10,
+ 0x0c, 0x1f, 0x3d, 0x84, 0xff, 0xf0, 0x2b, 0x69, 0xb6, 0xe9, 0xf0, 0xd8, 0x5d, 0x81, 0x71, 0xd6,
+ 0xa9, 0xc4, 0xa3, 0x3f, 0xc7, 0x5e, 0xce, 0x11, 0xd5, 0x8b, 0x90, 0x19, 0x31, 0xe0, 0xbf, 0xc6,
+ 0xa0, 0xd4, 0xbe, 0xba, 0x0a, 0x85, 0x40, 0x77, 0x12, 0x0f, 0xff, 0x75, 0x06, 0x0f, 0xa2, 0xb0,
+ 0xeb, 0xac, 0x3b, 0x89, 0x27, 0xf8, 0x0d, 0xee, 0x3a, 0x43, 0xe0, 0xb0, 0xf1, 0xc6, 0x24, 0x1e,
+ 0xfd, 0x9b, 0x3c, 0xea, 0x1c, 0x52, 0x7d, 0x0e, 0xf2, 0xde, 0x66, 0x13, 0x8f, 0xff, 0x2d, 0x86,
+ 0xf7, 0x31, 0x38, 0x02, 0x81, 0xcd, 0x2e, 0x9e, 0xe2, 0xb7, 0x79, 0x04, 0x02, 0x28, 0xbc, 0x8c,
+ 0xa2, 0x0d, 0x4c, 0x3c, 0xd3, 0xef, 0xf0, 0x65, 0x14, 0xe9, 0x5f, 0xf0, 0x6c, 0x92, 0x9a, 0x1f,
+ 0x4f, 0xf1, 0xbb, 0x7c, 0x36, 0x89, 0x3d, 0x76, 0x23, 0xda, 0x11, 0xc4, 0x73, 0xfc, 0x1e, 0x77,
+ 0x23, 0xd2, 0x10, 0x54, 0x77, 0x40, 0x1c, 0xec, 0x06, 0xe2, 0xf9, 0x3e, 0xcf, 0xf8, 0xa6, 0x06,
+ 0x9a, 0x81, 0xea, 0x0b, 0x70, 0x62, 0x78, 0x27, 0x10, 0xcf, 0xfa, 0x85, 0x7b, 0x91, 0xb3, 0x5b,
+ 0xb0, 0x11, 0xa8, 0xee, 0xfa, 0x5b, 0x4a, 0xb0, 0x0b, 0x88, 0xa7, 0x7d, 0xed, 0x5e, 0xb8, 0x70,
+ 0x07, 0x9b, 0x80, 0x6a, 0x0d, 0xc0, 0xdf, 0x80, 0xe3, 0xb9, 0x5e, 0x67, 0x5c, 0x01, 0x10, 0x5e,
+ 0x1a, 0x6c, 0xff, 0x8d, 0xc7, 0x7f, 0x91, 0x2f, 0x0d, 0x86, 0xc0, 0x4b, 0x83, 0x6f, 0xbd, 0xf1,
+ 0xe8, 0x37, 0xf8, 0xd2, 0xe0, 0x10, 0x9c, 0xd9, 0x81, 0xdd, 0x2d, 0x9e, 0xe1, 0x4b, 0x3c, 0xb3,
+ 0x03, 0xa8, 0xea, 0x36, 0x4c, 0x0d, 0x6c, 0x88, 0xf1, 0x54, 0x5f, 0x66, 0x54, 0x42, 0x74, 0x3f,
+ 0x0c, 0x6e, 0x5e, 0x6c, 0x33, 0x8c, 0x67, 0xfb, 0xa3, 0xc8, 0xe6, 0xc5, 0xf6, 0xc2, 0xea, 0x15,
+ 0xc8, 0x19, 0x7d, 0x5d, 0xc7, 0x8b, 0x47, 0xbc, 0xff, 0x2f, 0xf7, 0xca, 0xff, 0xf6, 0x01, 0x8b,
+ 0x0e, 0x07, 0x54, 0x97, 0x21, 0x83, 0x7a, 0x2d, 0xd4, 0x8e, 0x43, 0xfe, 0xfb, 0x07, 0xbc, 0x60,
+ 0x62, 0xeb, 0xea, 0x73, 0x00, 0xf4, 0x6a, 0x84, 0x7c, 0xf6, 0x8b, 0xc1, 0xfe, 0xc7, 0x07, 0xec,
+ 0x37, 0x35, 0x3e, 0xc4, 0x27, 0xa0, 0xbf, 0xd0, 0xb9, 0x3f, 0xc1, 0xbb, 0x61, 0x02, 0x32, 0x23,
+ 0x97, 0x61, 0xfc, 0xba, 0x63, 0x1a, 0xae, 0xd2, 0x8d, 0x43, 0xff, 0x27, 0x43, 0x73, 0x7b, 0x1c,
+ 0xb0, 0x9e, 0x69, 0x23, 0x57, 0xe9, 0x3a, 0x71, 0xd8, 0xff, 0x62, 0x58, 0x0f, 0x80, 0xc1, 0xaa,
+ 0xe2, 0xb8, 0xa3, 0x8c, 0xfb, 0xbf, 0x39, 0x98, 0x03, 0xb0, 0xd3, 0xf8, 0xef, 0x1b, 0xe8, 0x20,
+ 0x0e, 0xfb, 0x1e, 0x77, 0x9a, 0xd9, 0x57, 0x3f, 0x01, 0x79, 0xfc, 0x27, 0xfd, 0xa1, 0x5c, 0x0c,
+ 0xf8, 0x7f, 0x18, 0xd8, 0x47, 0xe0, 0x37, 0x3b, 0x6e, 0xdb, 0xd5, 0xe2, 0x83, 0xfd, 0xbf, 0x6c,
+ 0xa6, 0xb9, 0x7d, 0xb5, 0x06, 0x05, 0xc7, 0x6d, 0xb7, 0xfb, 0xac, 0x3f, 0x8d, 0x81, 0xff, 0xdf,
+ 0x07, 0xde, 0x95, 0x85, 0x87, 0xc1, 0xb3, 0x7d, 0xeb, 0x86, 0x6b, 0x99, 0xe4, 0x33, 0x47, 0x1c,
+ 0xc3, 0x3d, 0xc6, 0x10, 0x80, 0xac, 0xd4, 0x87, 0x5f, 0xdf, 0xc2, 0xba, 0xb9, 0x6e, 0xd2, 0x8b,
+ 0xdb, 0x97, 0xe7, 0xe2, 0x6f, 0x60, 0xe1, 0xb5, 0x0c, 0x3c, 0xa4, 0x9a, 0xbd, 0x96, 0xe9, 0x9c,
+ 0x0b, 0x14, 0xf3, 0x73, 0xa6, 0xc1, 0x38, 0xc5, 0x94, 0x69, 0xa0, 0xd9, 0xe3, 0xdd, 0xe5, 0xce,
+ 0x9d, 0x82, 0x4c, 0xb3, 0xdf, 0x6a, 0x1d, 0x88, 0x02, 0xa4, 0x9c, 0x7e, 0x8b, 0xfd, 0xe0, 0x0a,
+ 0xff, 0x39, 0xf7, 0x83, 0x14, 0x14, 0x9a, 0x4a, 0xcf, 0xd2, 0x51, 0xc3, 0x40, 0x8d, 0x8e, 0x58,
+ 0x86, 0x2c, 0x19, 0xea, 0xb3, 0xc4, 0x28, 0x71, 0x6d, 0x4c, 0x62, 0xcf, 0x9e, 0x66, 0x91, 0xdc,
+ 0x71, 0x27, 0x3d, 0xcd, 0xa2, 0xa7, 0x39, 0x4f, 0xaf, 0xb8, 0x3d, 0xcd, 0x79, 0x4f, 0xb3, 0x44,
+ 0x2e, 0xba, 0x53, 0x9e, 0x66, 0xc9, 0xd3, 0x2c, 0x93, 0x0f, 0x39, 0x13, 0x9e, 0x66, 0xd9, 0xd3,
+ 0x5c, 0x20, 0x9f, 0x6e, 0xd2, 0x9e, 0xe6, 0x82, 0xa7, 0xb9, 0x48, 0xbe, 0xd8, 0x4c, 0x79, 0x9a,
+ 0x8b, 0x9e, 0xe6, 0x12, 0xf9, 0x4a, 0x23, 0x7a, 0x9a, 0x4b, 0x9e, 0xe6, 0x32, 0xf9, 0x5d, 0xd5,
+ 0xb8, 0xa7, 0xb9, 0x2c, 0xce, 0xc2, 0x38, 0x1d, 0xd9, 0x33, 0xe4, 0x53, 0xfe, 0xe4, 0xb5, 0x31,
+ 0x89, 0x0b, 0x7c, 0xdd, 0xb3, 0xe4, 0xb7, 0x53, 0x59, 0x5f, 0xf7, 0xac, 0xaf, 0x5b, 0x24, 0xff,
+ 0x85, 0x43, 0xf0, 0x75, 0x8b, 0xbe, 0xee, 0x7c, 0x79, 0x02, 0x67, 0x88, 0xaf, 0x3b, 0xef, 0xeb,
+ 0x96, 0xca, 0x25, 0x1c, 0x7f, 0x5f, 0xb7, 0xe4, 0xeb, 0x96, 0xcb, 0x93, 0x67, 0x12, 0xf3, 0x45,
+ 0x5f, 0xb7, 0x2c, 0x3e, 0x0d, 0x05, 0xa7, 0xdf, 0x92, 0x59, 0xad, 0x27, 0xbf, 0xd1, 0x2a, 0x2c,
+ 0xc2, 0x02, 0xce, 0x08, 0x32, 0xa9, 0xd7, 0xc6, 0x24, 0x70, 0xfa, 0x2d, 0x56, 0x8a, 0x57, 0x8a,
+ 0x40, 0x6e, 0xa0, 0x64, 0xf2, 0xd3, 0xea, 0x95, 0xb5, 0xb7, 0xee, 0x56, 0xc6, 0xbe, 0x77, 0xb7,
+ 0x32, 0xf6, 0x2f, 0x77, 0x2b, 0x63, 0x6f, 0xdf, 0xad, 0x24, 0xde, 0xbb, 0x5b, 0x49, 0xbc, 0x7f,
+ 0xb7, 0x92, 0xb8, 0x73, 0x58, 0x49, 0x7c, 0xf5, 0xb0, 0x92, 0xf8, 0xfa, 0x61, 0x25, 0xf1, 0xad,
+ 0xc3, 0x4a, 0xe2, 0xad, 0xc3, 0xca, 0xd8, 0xf7, 0x0e, 0x2b, 0x89, 0xb7, 0x0f, 0x2b, 0x89, 0x1f,
+ 0x1d, 0x56, 0xc6, 0xde, 0x3b, 0xac, 0x24, 0xde, 0x3f, 0xac, 0x8c, 0xdd, 0xf9, 0x61, 0x65, 0xac,
+ 0x95, 0x25, 0x69, 0x74, 0xfe, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xfa, 0xa3, 0xfc, 0x6e, 0x91,
+ 0x35, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -2650,7 +2684,7 @@ func (m *Subby) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2678,7 +2712,7 @@ func (m *Subby) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2688,6 +2722,9 @@ func (m *Subby) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2702,6 +2739,9 @@ func (m *Subby) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthOne
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthOne
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2730,7 +2770,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2780,7 +2820,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2800,7 +2840,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2820,7 +2860,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2840,7 +2880,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2860,7 +2900,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2881,7 +2921,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2946,7 +2986,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2967,7 +3007,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2977,6 +3017,9 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2996,7 +3039,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3005,6 +3048,9 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3026,7 +3072,7 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3035,6 +3081,9 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthOne
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthOne
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3053,6 +3102,9 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthOne
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthOne
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3120,10 +3172,13 @@ func skipOne(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthOne
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthOne
+ }
return iNdEx, nil
case 3:
for {
@@ -3152,6 +3207,9 @@ func skipOne(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthOne
+ }
}
return iNdEx, nil
case 4:
@@ -3170,35 +3228,3 @@ var (
ErrInvalidLengthOne = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowOne = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("combos/unmarshaler/one.proto", fileDescriptor_one_2f1bc4354e19d7a9) }
-
-var fileDescriptor_one_2f1bc4354e19d7a9 = []byte{
- // 409 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0xbf, 0x4f, 0x1b, 0x31,
- 0x14, 0x07, 0x70, 0x3f, 0x8e, 0x24, 0xe0, 0x84, 0x92, 0xde, 0xf4, 0x8a, 0xaa, 0x27, 0x8b, 0xc9,
- 0x0b, 0x49, 0x73, 0x97, 0xf0, 0x63, 0x45, 0x55, 0x95, 0xa5, 0x42, 0x0a, 0x7f, 0x00, 0x8a, 0xa9,
- 0x13, 0x90, 0x72, 0x67, 0x94, 0xcb, 0x0d, 0xdd, 0xf8, 0x73, 0x3a, 0x76, 0xec, 0x9f, 0xc0, 0xc8,
- 0xd8, 0xa1, 0x03, 0xe7, 0x2e, 0x1d, 0x19, 0x33, 0x56, 0xb9, 0xb4, 0xcf, 0xdb, 0xfb, 0xfa, 0x63,
- 0x0f, 0xb6, 0xbf, 0xf2, 0xfd, 0xad, 0xcb, 0x8c, 0x2b, 0xfa, 0x65, 0x9e, 0x4d, 0x97, 0xc5, 0xdd,
- 0x74, 0x61, 0x97, 0x7d, 0x97, 0xdb, 0xde, 0xc3, 0xd2, 0xad, 0x5c, 0x1c, 0xb9, 0xdc, 0x1e, 0x9d,
- 0xcc, 0xef, 0x57, 0x77, 0xa5, 0xe9, 0xdd, 0xba, 0xac, 0x3f, 0x77, 0x73, 0xd7, 0xaf, 0xcd, 0x94,
- 0xb3, 0x3a, 0xd5, 0xa1, 0x9e, 0xb6, 0x67, 0x8e, 0xdf, 0xc9, 0xc6, 0x75, 0x69, 0xcc, 0xd7, 0xb8,
- 0x2b, 0xa3, 0xa2, 0x34, 0x08, 0x0a, 0xf4, 0xfe, 0x64, 0x33, 0x1e, 0xff, 0x8a, 0x64, 0xfb, 0x7a,
- 0x9a, 0x3d, 0x2c, 0xec, 0x55, 0x6e, 0xaf, 0x66, 0x31, 0xca, 0xe6, 0xa7, 0x7b, 0xbb, 0xf8, 0x32,
- 0xa8, 0x37, 0xc1, 0x58, 0x4c, 0xfe, 0x65, 0x96, 0x04, 0x77, 0x14, 0xe8, 0x1d, 0x96, 0x84, 0x25,
- 0xc5, 0x48, 0x81, 0x6e, 0xb0, 0xa4, 0x2c, 0x43, 0xdc, 0x55, 0xa0, 0x23, 0x96, 0x21, 0xcb, 0x08,
- 0x1b, 0x0a, 0xf4, 0x01, 0xcb, 0x88, 0xe5, 0x14, 0x9b, 0x0a, 0xf4, 0x2e, 0xcb, 0x29, 0xcb, 0x19,
- 0xb6, 0x14, 0xe8, 0xb7, 0x2c, 0x67, 0x2c, 0xe7, 0xb8, 0xa7, 0x40, 0xc7, 0x2c, 0xe7, 0x2c, 0x17,
- 0xb8, 0xaf, 0x40, 0xb7, 0x58, 0x2e, 0xe2, 0x23, 0xd9, 0xda, 0xde, 0xec, 0x03, 0x4a, 0x05, 0xfa,
- 0x70, 0x2c, 0x26, 0xff, 0x17, 0x82, 0x0d, 0xb0, 0xad, 0x40, 0x37, 0x83, 0x0d, 0x82, 0x25, 0xd8,
- 0x51, 0xa0, 0xbb, 0xc1, 0x92, 0x60, 0x29, 0x1e, 0x28, 0xd0, 0x7b, 0xc1, 0xd2, 0x60, 0x43, 0x7c,
- 0xb3, 0x79, 0xff, 0x60, 0xc3, 0x60, 0x23, 0x3c, 0x54, 0xa0, 0x3b, 0xc1, 0x46, 0xf1, 0x89, 0x6c,
- 0x17, 0xa5, 0xb9, 0xc9, 0x6c, 0x51, 0x4c, 0xe7, 0x16, 0xbb, 0x0a, 0x74, 0x3b, 0x91, 0xbd, 0x4d,
- 0x23, 0xea, 0x4f, 0x1d, 0x8b, 0x89, 0x2c, 0x4a, 0xf3, 0x79, 0xeb, 0x97, 0x1d, 0x29, 0x57, 0xb6,
- 0x58, 0xdd, 0xb8, 0xdc, 0xba, 0xd9, 0xe5, 0xc7, 0xa7, 0x8a, 0xc4, 0x73, 0x45, 0xe2, 0x67, 0x45,
- 0xe2, 0xa5, 0x22, 0x78, 0xad, 0x08, 0xd6, 0x15, 0xc1, 0xa3, 0x27, 0xf8, 0xe6, 0x09, 0xbe, 0x7b,
- 0x82, 0x1f, 0x9e, 0xe0, 0xc9, 0x93, 0x78, 0xf6, 0x04, 0x2f, 0x9e, 0xe0, 0x8f, 0x27, 0xf1, 0xea,
- 0x09, 0xd6, 0x9e, 0xc4, 0xe3, 0x6f, 0x12, 0xa6, 0x59, 0xd7, 0x28, 0xfd, 0x1b, 0x00, 0x00, 0xff,
- 0xff, 0x3b, 0xfb, 0xd3, 0x99, 0x9a, 0x02, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembed.pb.go b/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembed.pb.go
index 1a2408181d..f07132ac55 100644
--- a/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembed.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembed.pb.go
@@ -3,12 +3,13 @@
package proto
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -32,7 +33,7 @@ func (m *Foo) Reset() { *m = Foo{} }
func (m *Foo) String() string { return proto.CompactTextString(m) }
func (*Foo) ProtoMessage() {}
func (*Foo) Descriptor() ([]byte, []int) {
- return fileDescriptor_oneofembed_d85d6690bc6cfd92, []int{0}
+ return fileDescriptor_70b95aca3b5d76ed, []int{0}
}
func (m *Foo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Foo.Unmarshal(m, b)
@@ -40,8 +41,8 @@ func (m *Foo) XXX_Unmarshal(b []byte) error {
func (m *Foo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Foo.Marshal(b, m, deterministic)
}
-func (dst *Foo) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Foo.Merge(dst, src)
+func (m *Foo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Foo.Merge(m, src)
}
func (m *Foo) XXX_Size() int {
return xxx_messageInfo_Foo.Size(m)
@@ -66,7 +67,7 @@ func (m *Bar) Reset() { *m = Bar{} }
func (m *Bar) String() string { return proto.CompactTextString(m) }
func (*Bar) ProtoMessage() {}
func (*Bar) Descriptor() ([]byte, []int) {
- return fileDescriptor_oneofembed_d85d6690bc6cfd92, []int{1}
+ return fileDescriptor_70b95aca3b5d76ed, []int{1}
}
func (m *Bar) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Bar.Unmarshal(m, b)
@@ -74,8 +75,8 @@ func (m *Bar) XXX_Unmarshal(b []byte) error {
func (m *Bar) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Bar.Marshal(b, m, deterministic)
}
-func (dst *Bar) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Bar.Merge(dst, src)
+func (m *Bar) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Bar.Merge(m, src)
}
func (m *Bar) XXX_Size() int {
return xxx_messageInfo_Bar.Size(m)
@@ -198,6 +199,24 @@ func init() {
proto.RegisterType((*Foo)(nil), "proto.Foo")
proto.RegisterType((*Bar)(nil), "proto.Bar")
}
+
+func init() { proto.RegisterFile("oneofembed.proto", fileDescriptor_70b95aca3b5d76ed) }
+
+var fileDescriptor_70b95aca3b5d76ed = []byte{
+ // 171 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xc8, 0xcf, 0x4b, 0xcd,
+ 0x4f, 0x4b, 0xcd, 0x4d, 0x4a, 0x4d, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x05, 0x53,
+ 0x52, 0xba, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0xe9, 0xf9, 0xe9,
+ 0xf9, 0xfa, 0x60, 0xe1, 0xa4, 0xd2, 0x34, 0x30, 0x0f, 0xcc, 0x01, 0xb3, 0x20, 0xba, 0x94, 0x34,
+ 0xb9, 0x98, 0xdd, 0xf2, 0xf3, 0x85, 0x94, 0xb8, 0x98, 0x93, 0x12, 0x8b, 0x24, 0x18, 0x15, 0x18,
+ 0x35, 0xb8, 0x8d, 0xb8, 0x20, 0x72, 0x7a, 0x4e, 0x89, 0x45, 0x4e, 0x2c, 0x17, 0xee, 0xc9, 0x33,
+ 0x06, 0x81, 0x24, 0x95, 0x74, 0xb9, 0x98, 0x9d, 0x12, 0x8b, 0x84, 0xf8, 0xb8, 0x18, 0x13, 0x25,
+ 0xb8, 0x15, 0x18, 0x35, 0x38, 0x3c, 0x18, 0x82, 0x18, 0x13, 0x41, 0xfc, 0x24, 0x09, 0x1e, 0x18,
+ 0x3f, 0xc9, 0x89, 0x8d, 0x8b, 0xa5, 0x20, 0x33, 0x39, 0xdb, 0x89, 0xe7, 0xc7, 0x43, 0x39, 0xc6,
+ 0x15, 0x8f, 0xe4, 0x18, 0x77, 0x3c, 0x92, 0x63, 0x4c, 0x62, 0x03, 0x1b, 0x69, 0x0c, 0x08, 0x00,
+ 0x00, 0xff, 0xff, 0x56, 0x58, 0x05, 0x27, 0xb8, 0x00, 0x00, 0x00,
+}
+
func (this *Foo) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -415,20 +434,3 @@ func encodeVarintPopulateOneofembed(dAtA []byte, v uint64) []byte {
dAtA = append(dAtA, uint8(v))
return dAtA
}
-
-func init() { proto.RegisterFile("oneofembed.proto", fileDescriptor_oneofembed_d85d6690bc6cfd92) }
-
-var fileDescriptor_oneofembed_d85d6690bc6cfd92 = []byte{
- // 171 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xc8, 0xcf, 0x4b, 0xcd,
- 0x4f, 0x4b, 0xcd, 0x4d, 0x4a, 0x4d, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x05, 0x53,
- 0x52, 0xba, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0xe9, 0xf9, 0xe9,
- 0xf9, 0xfa, 0x60, 0xe1, 0xa4, 0xd2, 0x34, 0x30, 0x0f, 0xcc, 0x01, 0xb3, 0x20, 0xba, 0x94, 0x34,
- 0xb9, 0x98, 0xdd, 0xf2, 0xf3, 0x85, 0x94, 0xb8, 0x98, 0x93, 0x12, 0x8b, 0x24, 0x18, 0x15, 0x18,
- 0x35, 0xb8, 0x8d, 0xb8, 0x20, 0x72, 0x7a, 0x4e, 0x89, 0x45, 0x4e, 0x2c, 0x17, 0xee, 0xc9, 0x33,
- 0x06, 0x81, 0x24, 0x95, 0x74, 0xb9, 0x98, 0x9d, 0x12, 0x8b, 0x84, 0xf8, 0xb8, 0x18, 0x13, 0x25,
- 0xb8, 0x15, 0x18, 0x35, 0x38, 0x3c, 0x18, 0x82, 0x18, 0x13, 0x41, 0xfc, 0x24, 0x09, 0x1e, 0x18,
- 0x3f, 0xc9, 0x89, 0x8d, 0x8b, 0xa5, 0x20, 0x33, 0x39, 0xdb, 0x89, 0xe7, 0xc7, 0x43, 0x39, 0xc6,
- 0x15, 0x8f, 0xe4, 0x18, 0x77, 0x3c, 0x92, 0x63, 0x4c, 0x62, 0x03, 0x1b, 0x69, 0x0c, 0x08, 0x00,
- 0x00, 0xff, 0xff, 0x56, 0x58, 0x05, 0x27, 0xb8, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/packed/packed.pb.go b/vendor/github.com/gogo/protobuf/test/packed/packed.pb.go
index 5db9510009..d766dc1aa9 100644
--- a/vendor/github.com/gogo/protobuf/test/packed/packed.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/packed/packed.pb.go
@@ -3,13 +3,14 @@
package packed
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import io "io"
-import encoding_binary "encoding/binary"
+import (
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -45,7 +46,7 @@ func (m *NinRepNative) Reset() { *m = NinRepNative{} }
func (m *NinRepNative) String() string { return proto.CompactTextString(m) }
func (*NinRepNative) ProtoMessage() {}
func (*NinRepNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_packed_0c54be3753617b96, []int{0}
+ return fileDescriptor_2c9922eb15f14bbb, []int{0}
}
func (m *NinRepNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -53,8 +54,8 @@ func (m *NinRepNative) XXX_Unmarshal(b []byte) error {
func (m *NinRepNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinRepNative.Marshal(b, m, deterministic)
}
-func (dst *NinRepNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepNative.Merge(dst, src)
+func (m *NinRepNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepNative.Merge(m, src)
}
func (m *NinRepNative) XXX_Size() int {
return xxx_messageInfo_NinRepNative.Size(m)
@@ -179,7 +180,7 @@ func (m *NinRepPackedNative) Reset() { *m = NinRepPackedNative{} }
func (m *NinRepPackedNative) String() string { return proto.CompactTextString(m) }
func (*NinRepPackedNative) ProtoMessage() {}
func (*NinRepPackedNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_packed_0c54be3753617b96, []int{1}
+ return fileDescriptor_2c9922eb15f14bbb, []int{1}
}
func (m *NinRepPackedNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -187,8 +188,8 @@ func (m *NinRepPackedNative) XXX_Unmarshal(b []byte) error {
func (m *NinRepPackedNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinRepPackedNative.Marshal(b, m, deterministic)
}
-func (dst *NinRepPackedNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepPackedNative.Merge(dst, src)
+func (m *NinRepPackedNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepPackedNative.Merge(m, src)
}
func (m *NinRepPackedNative) XXX_Size() int {
return xxx_messageInfo_NinRepPackedNative.Size(m)
@@ -313,7 +314,7 @@ func (m *NinRepNativeUnsafe) Reset() { *m = NinRepNativeUnsafe{} }
func (m *NinRepNativeUnsafe) String() string { return proto.CompactTextString(m) }
func (*NinRepNativeUnsafe) ProtoMessage() {}
func (*NinRepNativeUnsafe) Descriptor() ([]byte, []int) {
- return fileDescriptor_packed_0c54be3753617b96, []int{2}
+ return fileDescriptor_2c9922eb15f14bbb, []int{2}
}
func (m *NinRepNativeUnsafe) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinRepNativeUnsafe.Unmarshal(m, b)
@@ -321,8 +322,8 @@ func (m *NinRepNativeUnsafe) XXX_Unmarshal(b []byte) error {
func (m *NinRepNativeUnsafe) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinRepNativeUnsafe.Marshal(b, m, deterministic)
}
-func (dst *NinRepNativeUnsafe) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepNativeUnsafe.Merge(dst, src)
+func (m *NinRepNativeUnsafe) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepNativeUnsafe.Merge(m, src)
}
func (m *NinRepNativeUnsafe) XXX_Size() int {
return xxx_messageInfo_NinRepNativeUnsafe.Size(m)
@@ -447,7 +448,7 @@ func (m *NinRepPackedNativeUnsafe) Reset() { *m = NinRepPackedNativeUnsa
func (m *NinRepPackedNativeUnsafe) String() string { return proto.CompactTextString(m) }
func (*NinRepPackedNativeUnsafe) ProtoMessage() {}
func (*NinRepPackedNativeUnsafe) Descriptor() ([]byte, []int) {
- return fileDescriptor_packed_0c54be3753617b96, []int{3}
+ return fileDescriptor_2c9922eb15f14bbb, []int{3}
}
func (m *NinRepPackedNativeUnsafe) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinRepPackedNativeUnsafe.Unmarshal(m, b)
@@ -455,8 +456,8 @@ func (m *NinRepPackedNativeUnsafe) XXX_Unmarshal(b []byte) error {
func (m *NinRepPackedNativeUnsafe) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinRepPackedNativeUnsafe.Marshal(b, m, deterministic)
}
-func (dst *NinRepPackedNativeUnsafe) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepPackedNativeUnsafe.Merge(dst, src)
+func (m *NinRepPackedNativeUnsafe) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepPackedNativeUnsafe.Merge(m, src)
}
func (m *NinRepPackedNativeUnsafe) XXX_Size() int {
return xxx_messageInfo_NinRepPackedNativeUnsafe.Size(m)
@@ -564,6 +565,38 @@ func init() {
proto.RegisterType((*NinRepNativeUnsafe)(nil), "packed.NinRepNativeUnsafe")
proto.RegisterType((*NinRepPackedNativeUnsafe)(nil), "packed.NinRepPackedNativeUnsafe")
}
+
+func init() { proto.RegisterFile("packed.proto", fileDescriptor_2c9922eb15f14bbb) }
+
+var fileDescriptor_2c9922eb15f14bbb = []byte{
+ // 388 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x92, 0xbf, 0x4e, 0xfa, 0x50,
+ 0x14, 0xc7, 0xd3, 0x9e, 0x52, 0xf8, 0xdd, 0x1f, 0x44, 0xec, 0x60, 0x4e, 0x08, 0xd1, 0x1b, 0xa6,
+ 0xbb, 0x08, 0xb6, 0xe5, 0xaf, 0x23, 0x83, 0x23, 0x31, 0x24, 0x3e, 0x00, 0x7f, 0x0a, 0x36, 0x2a,
+ 0x25, 0x0a, 0x3e, 0x86, 0x71, 0xf0, 0x05, 0x7c, 0x13, 0x1f, 0xc2, 0xc9, 0xcd, 0xb7, 0x70, 0x34,
+ 0xb4, 0xa7, 0xa7, 0x17, 0x1c, 0x1d, 0x5c, 0xd8, 0xb8, 0x9f, 0x4f, 0x18, 0xfa, 0xf9, 0x1e, 0x51,
+ 0x5c, 0x8e, 0x26, 0x37, 0xc1, 0xb4, 0xbe, 0xbc, 0x8f, 0x56, 0x91, 0x63, 0x27, 0xaf, 0xca, 0xe9,
+ 0x3c, 0x5c, 0x5d, 0xaf, 0xc7, 0xf5, 0x49, 0x74, 0xd7, 0x98, 0x47, 0xf3, 0xa8, 0x11, 0xeb, 0xf1,
+ 0x7a, 0x16, 0xbf, 0xe2, 0x47, 0xfc, 0x2b, 0xf9, 0x5b, 0xed, 0xdd, 0x14, 0xc5, 0x41, 0xb8, 0x18,
+ 0x06, 0xcb, 0xc1, 0x68, 0x15, 0x3e, 0x06, 0xce, 0x91, 0xb0, 0x2f, 0xc2, 0xe0, 0x76, 0xea, 0xa2,
+ 0x21, 0x41, 0x19, 0x43, 0x7a, 0x31, 0xf7, 0xd0, 0x94, 0xa0, 0x4c, 0xe2, 0x1e, 0x73, 0x1f, 0x41,
+ 0x82, 0xca, 0x11, 0xf7, 0x99, 0x37, 0xd1, 0x92, 0xa0, 0x80, 0x78, 0x93, 0x79, 0x0b, 0x73, 0x12,
+ 0x54, 0x89, 0x78, 0x8b, 0x79, 0x1b, 0x6d, 0x09, 0xca, 0x22, 0xde, 0x66, 0xde, 0xc1, 0xbc, 0x04,
+ 0x75, 0x48, 0xbc, 0xc3, 0xbc, 0x8b, 0x05, 0x09, 0xca, 0x21, 0xde, 0x65, 0xde, 0xc3, 0x7f, 0x12,
+ 0x54, 0x9e, 0x78, 0xcf, 0x41, 0x91, 0x4f, 0xbe, 0xe4, 0x0c, 0x85, 0x04, 0x75, 0x30, 0x4c, 0x9f,
+ 0x99, 0x71, 0xf1, 0xbf, 0x04, 0x65, 0xa7, 0xc6, 0xcd, 0x8c, 0x87, 0x45, 0x09, 0xaa, 0x9c, 0x1a,
+ 0x2f, 0x33, 0x3e, 0x96, 0x24, 0xa8, 0x42, 0x6a, 0xfc, 0x73, 0xeb, 0xf9, 0xf5, 0xc4, 0xa8, 0x3d,
+ 0x81, 0x70, 0x92, 0xac, 0x97, 0xf1, 0x2c, 0x14, 0xb7, 0xb2, 0x1d, 0xb7, 0x6f, 0x96, 0xb3, 0xc0,
+ 0x95, 0xed, 0xc0, 0x9a, 0xf3, 0xd8, 0x51, 0x64, 0xcd, 0xf9, 0xec, 0x28, 0xb4, 0xe6, 0x9a, 0xec,
+ 0x28, 0xb6, 0xe6, 0x5a, 0xec, 0x28, 0xb8, 0xe6, 0xda, 0xec, 0x28, 0xba, 0xe6, 0x3a, 0xec, 0x28,
+ 0xbc, 0xe6, 0xba, 0xec, 0x28, 0xbe, 0xe6, 0x7a, 0x4e, 0x75, 0x67, 0x80, 0x58, 0xf2, 0x08, 0xd5,
+ 0x9d, 0x11, 0x74, 0xeb, 0x66, 0x96, 0x86, 0xd0, 0xad, 0x97, 0x59, 0x1a, 0x43, 0xb7, 0xe9, 0x20,
+ 0x1f, 0x66, 0x3a, 0x48, 0x32, 0xc5, 0xd5, 0xe2, 0x61, 0x34, 0xdb, 0x5f, 0xfb, 0xaf, 0xaf, 0xfd,
+ 0x6d, 0x13, 0xf7, 0x05, 0x04, 0xfe, 0xbc, 0x76, 0x4a, 0xbc, 0xbf, 0xf9, 0x3f, 0xb8, 0xf9, 0xcd,
+ 0x2c, 0x7d, 0xeb, 0xeb, 0xf3, 0xd8, 0xf8, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x13, 0x20, 0xf1, 0x6c,
+ 0x27, 0x06, 0x00, 0x00,
+}
+
func NewPopulatedNinRepNative(r randyPacked, easy bool) *NinRepNative {
this := &NinRepNative{}
if r.Intn(10) != 0 {
@@ -1143,7 +1176,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1178,7 +1211,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1187,6 +1220,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1229,7 +1265,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1238,6 +1274,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1271,7 +1310,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1288,7 +1327,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1297,12 +1336,15 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -1322,7 +1364,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1344,7 +1386,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1361,7 +1403,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1370,12 +1412,15 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -1395,7 +1440,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1417,7 +1462,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1434,7 +1479,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1443,12 +1488,15 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -1468,7 +1516,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1490,7 +1538,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1507,7 +1555,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1516,12 +1564,15 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -1541,7 +1592,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1563,7 +1614,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1581,7 +1632,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1590,12 +1641,15 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -1615,7 +1669,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1638,7 +1692,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1656,7 +1710,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1665,12 +1719,15 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -1690,7 +1747,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1721,7 +1778,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1730,6 +1787,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1770,7 +1830,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1779,6 +1839,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1819,7 +1882,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1828,6 +1891,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1868,7 +1934,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1877,6 +1943,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1909,7 +1978,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1926,7 +1995,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1935,6 +2004,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1954,7 +2026,7 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1973,6 +2045,9 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthPacked
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthPacked
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2001,7 +2076,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2036,7 +2111,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2045,6 +2120,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2087,7 +2165,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2096,6 +2174,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2129,7 +2210,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2146,7 +2227,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2155,12 +2236,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -2180,7 +2264,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2202,7 +2286,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2219,7 +2303,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2228,12 +2312,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -2253,7 +2340,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2275,7 +2362,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2292,7 +2379,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2301,12 +2388,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -2326,7 +2416,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2348,7 +2438,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2365,7 +2455,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2374,12 +2464,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -2399,7 +2492,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2421,7 +2514,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2439,7 +2532,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2448,12 +2541,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -2473,7 +2569,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2496,7 +2592,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2514,7 +2610,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2523,12 +2619,15 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -2548,7 +2647,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2579,7 +2678,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2588,6 +2687,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2628,7 +2730,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2637,6 +2739,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2677,7 +2782,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2686,6 +2791,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2726,7 +2834,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2735,6 +2843,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2767,7 +2878,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2784,7 +2895,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2793,6 +2904,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2812,7 +2926,7 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2831,6 +2945,9 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthPacked
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthPacked
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2859,7 +2976,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2894,7 +3011,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2903,6 +3020,9 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2945,7 +3065,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2954,6 +3074,9 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2987,7 +3110,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3004,7 +3127,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3013,12 +3136,15 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -3038,7 +3164,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3060,7 +3186,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3077,7 +3203,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3086,12 +3212,15 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -3111,7 +3240,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3133,7 +3262,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3150,7 +3279,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3159,12 +3288,15 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -3184,7 +3316,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3206,7 +3338,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3223,7 +3355,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3232,12 +3364,15 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -3257,7 +3392,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3279,7 +3414,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3297,7 +3432,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3306,12 +3441,15 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -3331,7 +3469,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3354,7 +3492,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3372,7 +3510,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3381,12 +3519,15 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -3406,7 +3547,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3437,7 +3578,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3446,6 +3587,9 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3486,7 +3630,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3495,6 +3639,9 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3535,7 +3682,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3544,6 +3691,9 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3584,7 +3734,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3593,6 +3743,9 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3625,7 +3778,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3642,7 +3795,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3651,6 +3804,9 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3670,7 +3826,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3689,6 +3845,9 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthPacked
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthPacked
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3717,7 +3876,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3752,7 +3911,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3761,6 +3920,9 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3803,7 +3965,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3812,6 +3974,9 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3845,7 +4010,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3862,7 +4027,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3871,12 +4036,15 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -3896,7 +4064,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3918,7 +4086,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3935,7 +4103,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3944,12 +4112,15 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -3969,7 +4140,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3991,7 +4162,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4008,7 +4179,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4017,12 +4188,15 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -4042,7 +4216,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4064,7 +4238,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4081,7 +4255,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4090,12 +4264,15 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -4115,7 +4292,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4137,7 +4314,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4155,7 +4332,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4164,12 +4341,15 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -4189,7 +4369,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4212,7 +4392,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4230,7 +4410,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4239,12 +4419,15 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -4264,7 +4447,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4295,7 +4478,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4304,6 +4487,9 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4344,7 +4530,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4353,6 +4539,9 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4393,7 +4582,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4402,6 +4591,9 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4442,7 +4634,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4451,6 +4643,9 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4483,7 +4678,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4500,7 +4695,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4509,6 +4704,9 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthPacked
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPacked
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4528,7 +4726,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4547,6 +4745,9 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthPacked
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthPacked
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -4614,10 +4815,13 @@ func skipPacked(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthPacked
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthPacked
+ }
return iNdEx, nil
case 3:
for {
@@ -4646,6 +4850,9 @@ func skipPacked(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthPacked
+ }
}
return iNdEx, nil
case 4:
@@ -4664,34 +4871,3 @@ var (
ErrInvalidLengthPacked = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowPacked = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("packed.proto", fileDescriptor_packed_0c54be3753617b96) }
-
-var fileDescriptor_packed_0c54be3753617b96 = []byte{
- // 388 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x92, 0xbf, 0x4e, 0xfa, 0x50,
- 0x14, 0xc7, 0xd3, 0x9e, 0x52, 0xf8, 0xdd, 0x1f, 0x44, 0xec, 0x60, 0x4e, 0x08, 0xd1, 0x1b, 0xa6,
- 0xbb, 0x08, 0xb6, 0xe5, 0xaf, 0x23, 0x83, 0x23, 0x31, 0x24, 0x3e, 0x00, 0x7f, 0x0a, 0x36, 0x2a,
- 0x25, 0x0a, 0x3e, 0x86, 0x71, 0xf0, 0x05, 0x7c, 0x13, 0x1f, 0xc2, 0xc9, 0xcd, 0xb7, 0x70, 0x34,
- 0xb4, 0xa7, 0xa7, 0x17, 0x1c, 0x1d, 0x5c, 0xd8, 0xb8, 0x9f, 0x4f, 0x18, 0xfa, 0xf9, 0x1e, 0x51,
- 0x5c, 0x8e, 0x26, 0x37, 0xc1, 0xb4, 0xbe, 0xbc, 0x8f, 0x56, 0x91, 0x63, 0x27, 0xaf, 0xca, 0xe9,
- 0x3c, 0x5c, 0x5d, 0xaf, 0xc7, 0xf5, 0x49, 0x74, 0xd7, 0x98, 0x47, 0xf3, 0xa8, 0x11, 0xeb, 0xf1,
- 0x7a, 0x16, 0xbf, 0xe2, 0x47, 0xfc, 0x2b, 0xf9, 0x5b, 0xed, 0xdd, 0x14, 0xc5, 0x41, 0xb8, 0x18,
- 0x06, 0xcb, 0xc1, 0x68, 0x15, 0x3e, 0x06, 0xce, 0x91, 0xb0, 0x2f, 0xc2, 0xe0, 0x76, 0xea, 0xa2,
- 0x21, 0x41, 0x19, 0x43, 0x7a, 0x31, 0xf7, 0xd0, 0x94, 0xa0, 0x4c, 0xe2, 0x1e, 0x73, 0x1f, 0x41,
- 0x82, 0xca, 0x11, 0xf7, 0x99, 0x37, 0xd1, 0x92, 0xa0, 0x80, 0x78, 0x93, 0x79, 0x0b, 0x73, 0x12,
- 0x54, 0x89, 0x78, 0x8b, 0x79, 0x1b, 0x6d, 0x09, 0xca, 0x22, 0xde, 0x66, 0xde, 0xc1, 0xbc, 0x04,
- 0x75, 0x48, 0xbc, 0xc3, 0xbc, 0x8b, 0x05, 0x09, 0xca, 0x21, 0xde, 0x65, 0xde, 0xc3, 0x7f, 0x12,
- 0x54, 0x9e, 0x78, 0xcf, 0x41, 0x91, 0x4f, 0xbe, 0xe4, 0x0c, 0x85, 0x04, 0x75, 0x30, 0x4c, 0x9f,
- 0x99, 0x71, 0xf1, 0xbf, 0x04, 0x65, 0xa7, 0xc6, 0xcd, 0x8c, 0x87, 0x45, 0x09, 0xaa, 0x9c, 0x1a,
- 0x2f, 0x33, 0x3e, 0x96, 0x24, 0xa8, 0x42, 0x6a, 0xfc, 0x73, 0xeb, 0xf9, 0xf5, 0xc4, 0xa8, 0x3d,
- 0x81, 0x70, 0x92, 0xac, 0x97, 0xf1, 0x2c, 0x14, 0xb7, 0xb2, 0x1d, 0xb7, 0x6f, 0x96, 0xb3, 0xc0,
- 0x95, 0xed, 0xc0, 0x9a, 0xf3, 0xd8, 0x51, 0x64, 0xcd, 0xf9, 0xec, 0x28, 0xb4, 0xe6, 0x9a, 0xec,
- 0x28, 0xb6, 0xe6, 0x5a, 0xec, 0x28, 0xb8, 0xe6, 0xda, 0xec, 0x28, 0xba, 0xe6, 0x3a, 0xec, 0x28,
- 0xbc, 0xe6, 0xba, 0xec, 0x28, 0xbe, 0xe6, 0x7a, 0x4e, 0x75, 0x67, 0x80, 0x58, 0xf2, 0x08, 0xd5,
- 0x9d, 0x11, 0x74, 0xeb, 0x66, 0x96, 0x86, 0xd0, 0xad, 0x97, 0x59, 0x1a, 0x43, 0xb7, 0xe9, 0x20,
- 0x1f, 0x66, 0x3a, 0x48, 0x32, 0xc5, 0xd5, 0xe2, 0x61, 0x34, 0xdb, 0x5f, 0xfb, 0xaf, 0xaf, 0xfd,
- 0x6d, 0x13, 0xf7, 0x05, 0x04, 0xfe, 0xbc, 0x76, 0x4a, 0xbc, 0xbf, 0xf9, 0x3f, 0xb8, 0xf9, 0xcd,
- 0x2c, 0x7d, 0xeb, 0xeb, 0xf3, 0xd8, 0xf8, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x13, 0x20, 0xf1, 0x6c,
- 0x27, 0x06, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/proto3extension/proto3ext.pb.go b/vendor/github.com/gogo/protobuf/test/proto3extension/proto3ext.pb.go
index b158a0576c..66150d094a 100644
--- a/vendor/github.com/gogo/protobuf/test/proto3extension/proto3ext.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/proto3extension/proto3ext.pb.go
@@ -3,10 +3,12 @@
package proto3extension
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -42,9 +44,9 @@ func init() {
proto.RegisterExtension(E_Index)
}
-func init() { proto.RegisterFile("proto3ext.proto", fileDescriptor_proto3ext_326ff12b79dc1085) }
+func init() { proto.RegisterFile("proto3ext.proto", fileDescriptor_a399cd792699f40f) }
-var fileDescriptor_proto3ext_326ff12b79dc1085 = []byte{
+var fileDescriptor_a399cd792699f40f = []byte{
// 137 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2f, 0x28, 0xca, 0x2f,
0xc9, 0x37, 0x4e, 0xad, 0x28, 0xd1, 0x03, 0xb3, 0x84, 0x10, 0x02, 0xa9, 0x79, 0xc5, 0x99, 0xf9,
diff --git a/vendor/github.com/gogo/protobuf/test/protosize/protosize.pb.go b/vendor/github.com/gogo/protobuf/test/protosize/protosize.pb.go
index f5a0a3088f..369dfb3ec3 100644
--- a/vendor/github.com/gogo/protobuf/test/protosize/protosize.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/protosize/protosize.pb.go
@@ -3,14 +3,14 @@
package protosize
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -37,7 +37,7 @@ func (m *SizeMessage) Reset() { *m = SizeMessage{} }
func (m *SizeMessage) String() string { return proto.CompactTextString(m) }
func (*SizeMessage) ProtoMessage() {}
func (*SizeMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_protosize_06b2b18dea724cd1, []int{0}
+ return fileDescriptor_16520eec64ed25c4, []int{0}
}
func (m *SizeMessage) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -54,8 +54,8 @@ func (m *SizeMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *SizeMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SizeMessage.Merge(dst, src)
+func (m *SizeMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SizeMessage.Merge(m, src)
}
func (m *SizeMessage) XXX_Size() int {
return m.ProtoSize()
@@ -97,6 +97,25 @@ func (m *SizeMessage) GetString_() string {
func init() {
proto.RegisterType((*SizeMessage)(nil), "protosize.SizeMessage")
}
+
+func init() { proto.RegisterFile("protosize.proto", fileDescriptor_16520eec64ed25c4) }
+
+var fileDescriptor_16520eec64ed25c4 = []byte{
+ // 182 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2f, 0x28, 0xca, 0x2f,
+ 0xc9, 0x2f, 0xce, 0xac, 0x4a, 0xd5, 0x03, 0xb3, 0x84, 0x38, 0xe1, 0x02, 0x52, 0xba, 0xe9, 0x99,
+ 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0xe9, 0xf9, 0xe9, 0xf9, 0xfa, 0x60, 0xa9,
+ 0xa4, 0xd2, 0x34, 0x30, 0x0f, 0xcc, 0x01, 0xb3, 0x20, 0x3a, 0x95, 0xf2, 0xb8, 0xb8, 0x83, 0x33,
+ 0xab, 0x52, 0x7d, 0x53, 0x8b, 0x8b, 0x13, 0xd3, 0x53, 0x85, 0x84, 0xb8, 0x58, 0x40, 0xa6, 0x48,
+ 0x30, 0x2a, 0x30, 0x6a, 0x30, 0x07, 0x81, 0xd9, 0x42, 0xb2, 0x5c, 0x5c, 0x60, 0xb5, 0xf1, 0x60,
+ 0x19, 0x26, 0xb0, 0x0c, 0xc4, 0x42, 0x90, 0x4e, 0x21, 0x11, 0x2e, 0x56, 0xd7, 0xc2, 0xd2, 0xc4,
+ 0x1c, 0x09, 0x66, 0x05, 0x46, 0x0d, 0x8e, 0x20, 0x08, 0x47, 0x48, 0x8c, 0x8b, 0x2d, 0xb8, 0xa4,
+ 0x28, 0x33, 0x2f, 0x5d, 0x82, 0x45, 0x81, 0x51, 0x83, 0x33, 0x08, 0xca, 0x73, 0x92, 0xf8, 0xf1,
+ 0x50, 0x8e, 0x71, 0xc5, 0x23, 0x39, 0xc6, 0x1d, 0x8f, 0xe4, 0x18, 0x4f, 0x3c, 0x92, 0x63, 0xbc,
+ 0xf0, 0x48, 0x8e, 0x71, 0xc1, 0x63, 0x39, 0x46, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8b, 0xf7,
+ 0x87, 0xb3, 0xd5, 0x00, 0x00, 0x00,
+}
+
func (this *SizeMessage) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -368,7 +387,7 @@ func (m *SizeMessage) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -396,7 +415,7 @@ func (m *SizeMessage) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -416,7 +435,7 @@ func (m *SizeMessage) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -436,7 +455,7 @@ func (m *SizeMessage) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -457,7 +476,7 @@ func (m *SizeMessage) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -467,6 +486,9 @@ func (m *SizeMessage) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthProtosize
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthProtosize
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -482,6 +504,9 @@ func (m *SizeMessage) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthProtosize
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthProtosize
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -549,10 +574,13 @@ func skipProtosize(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthProtosize
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthProtosize
+ }
return iNdEx, nil
case 3:
for {
@@ -581,6 +609,9 @@ func skipProtosize(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthProtosize
+ }
}
return iNdEx, nil
case 4:
@@ -599,21 +630,3 @@ var (
ErrInvalidLengthProtosize = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowProtosize = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("protosize.proto", fileDescriptor_protosize_06b2b18dea724cd1) }
-
-var fileDescriptor_protosize_06b2b18dea724cd1 = []byte{
- // 182 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2f, 0x28, 0xca, 0x2f,
- 0xc9, 0x2f, 0xce, 0xac, 0x4a, 0xd5, 0x03, 0xb3, 0x84, 0x38, 0xe1, 0x02, 0x52, 0xba, 0xe9, 0x99,
- 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0xe9, 0xf9, 0xe9, 0xf9, 0xfa, 0x60, 0xa9,
- 0xa4, 0xd2, 0x34, 0x30, 0x0f, 0xcc, 0x01, 0xb3, 0x20, 0x3a, 0x95, 0xf2, 0xb8, 0xb8, 0x83, 0x33,
- 0xab, 0x52, 0x7d, 0x53, 0x8b, 0x8b, 0x13, 0xd3, 0x53, 0x85, 0x84, 0xb8, 0x58, 0x40, 0xa6, 0x48,
- 0x30, 0x2a, 0x30, 0x6a, 0x30, 0x07, 0x81, 0xd9, 0x42, 0xb2, 0x5c, 0x5c, 0x60, 0xb5, 0xf1, 0x60,
- 0x19, 0x26, 0xb0, 0x0c, 0xc4, 0x42, 0x90, 0x4e, 0x21, 0x11, 0x2e, 0x56, 0xd7, 0xc2, 0xd2, 0xc4,
- 0x1c, 0x09, 0x66, 0x05, 0x46, 0x0d, 0x8e, 0x20, 0x08, 0x47, 0x48, 0x8c, 0x8b, 0x2d, 0xb8, 0xa4,
- 0x28, 0x33, 0x2f, 0x5d, 0x82, 0x45, 0x81, 0x51, 0x83, 0x33, 0x08, 0xca, 0x73, 0x92, 0xf8, 0xf1,
- 0x50, 0x8e, 0x71, 0xc5, 0x23, 0x39, 0xc6, 0x1d, 0x8f, 0xe4, 0x18, 0x4f, 0x3c, 0x92, 0x63, 0xbc,
- 0xf0, 0x48, 0x8e, 0x71, 0xc1, 0x63, 0x39, 0x46, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8b, 0xf7,
- 0x87, 0xb3, 0xd5, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/required/requiredexample.pb.go b/vendor/github.com/gogo/protobuf/test/required/requiredexample.pb.go
index 49cb060d40..2085f79537 100644
--- a/vendor/github.com/gogo/protobuf/test/required/requiredexample.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/required/requiredexample.pb.go
@@ -3,15 +3,15 @@
package required
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import encoding_binary "encoding/binary"
-
-import io "io"
+import (
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -37,7 +37,7 @@ func (m *RequiredExample) Reset() { *m = RequiredExample{} }
func (m *RequiredExample) String() string { return proto.CompactTextString(m) }
func (*RequiredExample) ProtoMessage() {}
func (*RequiredExample) Descriptor() ([]byte, []int) {
- return fileDescriptor_requiredexample_2673f47f43fdf851, []int{0}
+ return fileDescriptor_96043524afb2ed2f, []int{0}
}
func (m *RequiredExample) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -54,8 +54,8 @@ func (m *RequiredExample) XXX_Marshal(b []byte, deterministic bool) ([]byte, err
return b[:n], nil
}
}
-func (dst *RequiredExample) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RequiredExample.Merge(dst, src)
+func (m *RequiredExample) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RequiredExample.Merge(m, src)
}
func (m *RequiredExample) XXX_Size() int {
return m.Size()
@@ -112,7 +112,7 @@ func (m *NidOptNative) Reset() { *m = NidOptNative{} }
func (m *NidOptNative) String() string { return proto.CompactTextString(m) }
func (*NidOptNative) ProtoMessage() {}
func (*NidOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_requiredexample_2673f47f43fdf851, []int{1}
+ return fileDescriptor_96043524afb2ed2f, []int{1}
}
func (m *NidOptNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -129,8 +129,8 @@ func (m *NidOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NidOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptNative.Merge(dst, src)
+func (m *NidOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptNative.Merge(m, src)
}
func (m *NidOptNative) XXX_Size() int {
return m.Size()
@@ -271,7 +271,7 @@ func (m *NinOptNative) Reset() { *m = NinOptNative{} }
func (m *NinOptNative) String() string { return proto.CompactTextString(m) }
func (*NinOptNative) ProtoMessage() {}
func (*NinOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_requiredexample_2673f47f43fdf851, []int{2}
+ return fileDescriptor_96043524afb2ed2f, []int{2}
}
func (m *NinOptNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -288,8 +288,8 @@ func (m *NinOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *NinOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptNative.Merge(dst, src)
+func (m *NinOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptNative.Merge(m, src)
}
func (m *NinOptNative) XXX_Size() int {
return m.Size()
@@ -416,7 +416,7 @@ func (m *NestedNinOptNative) Reset() { *m = NestedNinOptNative{} }
func (m *NestedNinOptNative) String() string { return proto.CompactTextString(m) }
func (*NestedNinOptNative) ProtoMessage() {}
func (*NestedNinOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_requiredexample_2673f47f43fdf851, []int{3}
+ return fileDescriptor_96043524afb2ed2f, []int{3}
}
func (m *NestedNinOptNative) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -433,8 +433,8 @@ func (m *NestedNinOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte,
return b[:n], nil
}
}
-func (dst *NestedNinOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedNinOptNative.Merge(dst, src)
+func (m *NestedNinOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedNinOptNative.Merge(m, src)
}
func (m *NestedNinOptNative) XXX_Size() int {
return m.Size()
@@ -458,6 +458,43 @@ func init() {
proto.RegisterType((*NinOptNative)(nil), "required.NinOptNative")
proto.RegisterType((*NestedNinOptNative)(nil), "required.NestedNinOptNative")
}
+
+func init() { proto.RegisterFile("requiredexample.proto", fileDescriptor_96043524afb2ed2f) }
+
+var fileDescriptor_96043524afb2ed2f = []byte{
+ // 469 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0xd4, 0xdd, 0x8e, 0xd2, 0x40,
+ 0x14, 0xc0, 0x71, 0x3b, 0x65, 0xf9, 0x98, 0x05, 0xd9, 0x6d, 0xe2, 0xe4, 0xc4, 0x98, 0x7a, 0xc2,
+ 0xd5, 0x5c, 0x68, 0x57, 0x0a, 0xec, 0x47, 0xe2, 0xd5, 0x26, 0x7a, 0xc9, 0x26, 0xf5, 0x09, 0x58,
+ 0x19, 0xd9, 0x26, 0x2c, 0xad, 0x30, 0x18, 0xaf, 0x7d, 0x0f, 0xdf, 0x67, 0x2f, 0x7d, 0x00, 0x63,
+ 0x94, 0xa7, 0xf0, 0xd2, 0x58, 0xda, 0x33, 0x9c, 0xea, 0x1d, 0x3d, 0xff, 0x33, 0x13, 0xc8, 0x8f,
+ 0x54, 0x3e, 0x59, 0x9b, 0x8f, 0xdb, 0x74, 0x6d, 0xe6, 0xe6, 0xf3, 0xec, 0x3e, 0x5f, 0x9a, 0x28,
+ 0x5f, 0x67, 0x36, 0x0b, 0xda, 0xd5, 0xf8, 0xe9, 0xcb, 0x45, 0x6a, 0xef, 0xb6, 0xb7, 0xd1, 0xfb,
+ 0xec, 0xfe, 0x6c, 0x91, 0x2d, 0xb2, 0xb3, 0x62, 0xe1, 0x76, 0xfb, 0xa1, 0x78, 0x2a, 0x1e, 0x8a,
+ 0x4f, 0xfb, 0x83, 0x83, 0xaf, 0x9e, 0xec, 0x27, 0xe5, 0xd9, 0x37, 0xfb, 0x2b, 0x83, 0x17, 0xf2,
+ 0xd4, 0xde, 0x99, 0x6a, 0xfa, 0xce, 0xae, 0xd3, 0xd5, 0x02, 0x3c, 0x14, 0xba, 0x93, 0xfc, 0x1b,
+ 0xca, 0xed, 0x9b, 0xdc, 0xa6, 0xd9, 0x6a, 0xb6, 0x2c, 0xb7, 0x05, 0x7a, 0xe5, 0x36, 0x0f, 0x41,
+ 0x24, 0x83, 0xe2, 0x8a, 0xdc, 0xcc, 0x6c, 0x75, 0xc5, 0x06, 0x7c, 0xf4, 0x75, 0x27, 0xf9, 0x4f,
+ 0x19, 0x7c, 0xf7, 0x65, 0x77, 0x9a, 0xce, 0x6f, 0x72, 0x3b, 0x9d, 0xd9, 0xf4, 0x93, 0x09, 0x9e,
+ 0xc9, 0xe6, 0xdb, 0xd4, 0x2c, 0xe7, 0xc3, 0xe2, 0x1b, 0x79, 0xd7, 0x8d, 0x87, 0x1f, 0xcf, 0x1f,
+ 0x25, 0xe5, 0x8c, 0x6a, 0x0c, 0x02, 0x85, 0x16, 0xac, 0xc6, 0x54, 0x47, 0xe0, 0xa3, 0xd0, 0x47,
+ 0xac, 0x8e, 0xa8, 0x8e, 0xa1, 0x81, 0x42, 0xfb, 0xac, 0x8e, 0xa9, 0x4e, 0xe0, 0x08, 0x85, 0xee,
+ 0xb1, 0x3a, 0xa1, 0x7a, 0x0e, 0x4d, 0x14, 0xba, 0xc1, 0xea, 0x39, 0xd5, 0x0b, 0x68, 0xa1, 0xd0,
+ 0xa7, 0xac, 0x5e, 0x50, 0xbd, 0x84, 0x36, 0x0a, 0x1d, 0xb0, 0x7a, 0x49, 0xf5, 0x0a, 0x3a, 0x28,
+ 0x74, 0x8b, 0xd5, 0xab, 0x20, 0x94, 0xad, 0xfd, 0x2f, 0x7f, 0x05, 0x12, 0x85, 0xee, 0x97, 0xb9,
+ 0x1a, 0xba, 0x3e, 0x84, 0x63, 0x14, 0xba, 0xc9, 0xfb, 0xd0, 0xf5, 0x18, 0xba, 0x28, 0xf4, 0x09,
+ 0xef, 0xb1, 0xeb, 0x23, 0xe8, 0xa1, 0xd0, 0x6d, 0xde, 0x47, 0xae, 0x8f, 0xe1, 0xf1, 0xdf, 0x3f,
+ 0x08, 0xef, 0x63, 0xd7, 0x27, 0xd0, 0x47, 0xa1, 0xbb, 0xbc, 0x4f, 0x06, 0x5f, 0x0a, 0xde, 0x95,
+ 0xe3, 0x55, 0x9c, 0x97, 0x60, 0x15, 0x87, 0x25, 0x52, 0xc5, 0x49, 0x09, 0x53, 0x71, 0x4c, 0x62,
+ 0x54, 0x9c, 0x91, 0x00, 0x15, 0x07, 0x24, 0x3a, 0xc5, 0xe9, 0x08, 0x4d, 0x71, 0x34, 0xe2, 0x52,
+ 0x9c, 0x8b, 0xa0, 0xa0, 0x06, 0xe5, 0x88, 0xa0, 0x46, 0xe4, 0x70, 0xa0, 0x86, 0xe3, 0x58, 0xa0,
+ 0xc6, 0xe2, 0x40, 0xa0, 0x06, 0xe2, 0x28, 0xa0, 0x46, 0xe1, 0x10, 0x12, 0x19, 0x4c, 0xcd, 0xc6,
+ 0x9a, 0x39, 0x93, 0x78, 0x2d, 0x7b, 0x87, 0xd3, 0x0d, 0x78, 0xe8, 0xeb, 0xe3, 0x58, 0x45, 0xd5,
+ 0xab, 0x26, 0x3a, 0x5c, 0x4f, 0xf8, 0xf2, 0xf5, 0xc9, 0xef, 0x5f, 0xa1, 0xf7, 0xb0, 0x0b, 0xbd,
+ 0x6f, 0xbb, 0xd0, 0xfb, 0xb9, 0x0b, 0xbd, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x03, 0x9e, 0xae,
+ 0x5f, 0xba, 0x04, 0x00, 0x00,
+}
+
func (m *RequiredExample) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -1157,7 +1194,7 @@ func (m *RequiredExample) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1185,7 +1222,7 @@ func (m *RequiredExample) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1195,6 +1232,9 @@ func (m *RequiredExample) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthRequiredexample
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthRequiredexample
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1216,7 +1256,7 @@ func (m *RequiredExample) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1226,6 +1266,9 @@ func (m *RequiredExample) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthRequiredexample
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthRequiredexample
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1246,7 +1289,7 @@ func (m *RequiredExample) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1256,6 +1299,9 @@ func (m *RequiredExample) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthRequiredexample
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthRequiredexample
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1270,6 +1316,9 @@ func (m *RequiredExample) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthRequiredexample
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthRequiredexample
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1302,7 +1351,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1354,7 +1403,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Field3 |= (int32(b) & 0x7F) << shift
+ m.Field3 |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1374,7 +1423,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Field4 |= (int64(b) & 0x7F) << shift
+ m.Field4 |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1394,7 +1443,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Field5 |= (uint32(b) & 0x7F) << shift
+ m.Field5 |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1414,7 +1463,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Field6 |= (uint64(b) & 0x7F) << shift
+ m.Field6 |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1434,7 +1483,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1456,7 +1505,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1522,7 +1571,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1543,7 +1592,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1553,6 +1602,9 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthRequiredexample
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthRequiredexample
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1573,7 +1625,7 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1582,6 +1634,9 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthRequiredexample
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthRequiredexample
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1600,6 +1655,9 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthRequiredexample
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthRequiredexample
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1674,7 +1732,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1728,7 +1786,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1749,7 +1807,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1770,7 +1828,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1791,7 +1849,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1812,7 +1870,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1834,7 +1892,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1905,7 +1963,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1927,7 +1985,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1937,6 +1995,9 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthRequiredexample
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthRequiredexample
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1958,7 +2019,7 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1967,6 +2028,9 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthRequiredexample
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthRequiredexample
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1985,6 +2049,9 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthRequiredexample
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthRequiredexample
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2058,7 +2125,7 @@ func (m *NestedNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2086,7 +2153,7 @@ func (m *NestedNinOptNative) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2095,6 +2162,9 @@ func (m *NestedNinOptNative) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthRequiredexample
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthRequiredexample
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2112,6 +2182,9 @@ func (m *NestedNinOptNative) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthRequiredexample
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthRequiredexample
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2179,10 +2252,13 @@ func skipRequiredexample(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthRequiredexample
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthRequiredexample
+ }
return iNdEx, nil
case 3:
for {
@@ -2211,6 +2287,9 @@ func skipRequiredexample(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthRequiredexample
+ }
}
return iNdEx, nil
case 4:
@@ -2229,41 +2308,3 @@ var (
ErrInvalidLengthRequiredexample = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowRequiredexample = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("requiredexample.proto", fileDescriptor_requiredexample_2673f47f43fdf851)
-}
-
-var fileDescriptor_requiredexample_2673f47f43fdf851 = []byte{
- // 469 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0xd4, 0xdd, 0x8e, 0xd2, 0x40,
- 0x14, 0xc0, 0x71, 0x3b, 0x65, 0xf9, 0x98, 0x05, 0xd9, 0x6d, 0xe2, 0xe4, 0xc4, 0x98, 0x7a, 0xc2,
- 0xd5, 0x5c, 0x68, 0x57, 0x0a, 0xec, 0x47, 0xe2, 0xd5, 0x26, 0x7a, 0xc9, 0x26, 0xf5, 0x09, 0x58,
- 0x19, 0xd9, 0x26, 0x2c, 0xad, 0x30, 0x18, 0xaf, 0x7d, 0x0f, 0xdf, 0x67, 0x2f, 0x7d, 0x00, 0x63,
- 0x94, 0xa7, 0xf0, 0xd2, 0x58, 0xda, 0x33, 0x9c, 0xea, 0x1d, 0x3d, 0xff, 0x33, 0x13, 0xc8, 0x8f,
- 0x54, 0x3e, 0x59, 0x9b, 0x8f, 0xdb, 0x74, 0x6d, 0xe6, 0xe6, 0xf3, 0xec, 0x3e, 0x5f, 0x9a, 0x28,
- 0x5f, 0x67, 0x36, 0x0b, 0xda, 0xd5, 0xf8, 0xe9, 0xcb, 0x45, 0x6a, 0xef, 0xb6, 0xb7, 0xd1, 0xfb,
- 0xec, 0xfe, 0x6c, 0x91, 0x2d, 0xb2, 0xb3, 0x62, 0xe1, 0x76, 0xfb, 0xa1, 0x78, 0x2a, 0x1e, 0x8a,
- 0x4f, 0xfb, 0x83, 0x83, 0xaf, 0x9e, 0xec, 0x27, 0xe5, 0xd9, 0x37, 0xfb, 0x2b, 0x83, 0x17, 0xf2,
- 0xd4, 0xde, 0x99, 0x6a, 0xfa, 0xce, 0xae, 0xd3, 0xd5, 0x02, 0x3c, 0x14, 0xba, 0x93, 0xfc, 0x1b,
- 0xca, 0xed, 0x9b, 0xdc, 0xa6, 0xd9, 0x6a, 0xb6, 0x2c, 0xb7, 0x05, 0x7a, 0xe5, 0x36, 0x0f, 0x41,
- 0x24, 0x83, 0xe2, 0x8a, 0xdc, 0xcc, 0x6c, 0x75, 0xc5, 0x06, 0x7c, 0xf4, 0x75, 0x27, 0xf9, 0x4f,
- 0x19, 0x7c, 0xf7, 0x65, 0x77, 0x9a, 0xce, 0x6f, 0x72, 0x3b, 0x9d, 0xd9, 0xf4, 0x93, 0x09, 0x9e,
- 0xc9, 0xe6, 0xdb, 0xd4, 0x2c, 0xe7, 0xc3, 0xe2, 0x1b, 0x79, 0xd7, 0x8d, 0x87, 0x1f, 0xcf, 0x1f,
- 0x25, 0xe5, 0x8c, 0x6a, 0x0c, 0x02, 0x85, 0x16, 0xac, 0xc6, 0x54, 0x47, 0xe0, 0xa3, 0xd0, 0x47,
- 0xac, 0x8e, 0xa8, 0x8e, 0xa1, 0x81, 0x42, 0xfb, 0xac, 0x8e, 0xa9, 0x4e, 0xe0, 0x08, 0x85, 0xee,
- 0xb1, 0x3a, 0xa1, 0x7a, 0x0e, 0x4d, 0x14, 0xba, 0xc1, 0xea, 0x39, 0xd5, 0x0b, 0x68, 0xa1, 0xd0,
- 0xa7, 0xac, 0x5e, 0x50, 0xbd, 0x84, 0x36, 0x0a, 0x1d, 0xb0, 0x7a, 0x49, 0xf5, 0x0a, 0x3a, 0x28,
- 0x74, 0x8b, 0xd5, 0xab, 0x20, 0x94, 0xad, 0xfd, 0x2f, 0x7f, 0x05, 0x12, 0x85, 0xee, 0x97, 0xb9,
- 0x1a, 0xba, 0x3e, 0x84, 0x63, 0x14, 0xba, 0xc9, 0xfb, 0xd0, 0xf5, 0x18, 0xba, 0x28, 0xf4, 0x09,
- 0xef, 0xb1, 0xeb, 0x23, 0xe8, 0xa1, 0xd0, 0x6d, 0xde, 0x47, 0xae, 0x8f, 0xe1, 0xf1, 0xdf, 0x3f,
- 0x08, 0xef, 0x63, 0xd7, 0x27, 0xd0, 0x47, 0xa1, 0xbb, 0xbc, 0x4f, 0x06, 0x5f, 0x0a, 0xde, 0x95,
- 0xe3, 0x55, 0x9c, 0x97, 0x60, 0x15, 0x87, 0x25, 0x52, 0xc5, 0x49, 0x09, 0x53, 0x71, 0x4c, 0x62,
- 0x54, 0x9c, 0x91, 0x00, 0x15, 0x07, 0x24, 0x3a, 0xc5, 0xe9, 0x08, 0x4d, 0x71, 0x34, 0xe2, 0x52,
- 0x9c, 0x8b, 0xa0, 0xa0, 0x06, 0xe5, 0x88, 0xa0, 0x46, 0xe4, 0x70, 0xa0, 0x86, 0xe3, 0x58, 0xa0,
- 0xc6, 0xe2, 0x40, 0xa0, 0x06, 0xe2, 0x28, 0xa0, 0x46, 0xe1, 0x10, 0x12, 0x19, 0x4c, 0xcd, 0xc6,
- 0x9a, 0x39, 0x93, 0x78, 0x2d, 0x7b, 0x87, 0xd3, 0x0d, 0x78, 0xe8, 0xeb, 0xe3, 0x58, 0x45, 0xd5,
- 0xab, 0x26, 0x3a, 0x5c, 0x4f, 0xf8, 0xf2, 0xf5, 0xc9, 0xef, 0x5f, 0xa1, 0xf7, 0xb0, 0x0b, 0xbd,
- 0x6f, 0xbb, 0xd0, 0xfb, 0xb9, 0x0b, 0xbd, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x03, 0x9e, 0xae,
- 0x5f, 0xba, 0x04, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.pb.go b/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.pb.go
index c319a9d2a7..01df0144a8 100644
--- a/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.pb.go
@@ -3,14 +3,14 @@
package sizeunderscore
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -36,7 +36,7 @@ func (m *SizeMessage) Reset() { *m = SizeMessage{} }
func (m *SizeMessage) String() string { return proto.CompactTextString(m) }
func (*SizeMessage) ProtoMessage() {}
func (*SizeMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_sizeunderscore_50ebf86ef0019e26, []int{0}
+ return fileDescriptor_4ba72c70f4572a8b, []int{0}
}
func (m *SizeMessage) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -53,8 +53,8 @@ func (m *SizeMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *SizeMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SizeMessage.Merge(dst, src)
+func (m *SizeMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SizeMessage.Merge(m, src)
}
func (m *SizeMessage) XXX_Size() int {
return m.Size()
@@ -89,6 +89,24 @@ func (m *SizeMessage) GetString_() string {
func init() {
proto.RegisterType((*SizeMessage)(nil), "sizeunderscore.SizeMessage")
}
+
+func init() { proto.RegisterFile("sizeunderscore.proto", fileDescriptor_4ba72c70f4572a8b) }
+
+var fileDescriptor_4ba72c70f4572a8b = []byte{
+ // 174 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x29, 0xce, 0xac, 0x4a,
+ 0x2d, 0xcd, 0x4b, 0x49, 0x2d, 0x2a, 0x4e, 0xce, 0x2f, 0x4a, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9,
+ 0x17, 0xe2, 0x43, 0x15, 0x95, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf,
+ 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0x2b, 0x4b, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30,
+ 0x0b, 0xa2, 0x5d, 0xc9, 0x9f, 0x8b, 0x3b, 0x38, 0xb3, 0x2a, 0xd5, 0x37, 0xb5, 0xb8, 0x38, 0x31,
+ 0x3d, 0x55, 0x48, 0x88, 0x8b, 0x05, 0x64, 0x9e, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x73, 0x10, 0x98,
+ 0x2d, 0x24, 0xc2, 0xc5, 0xea, 0x5a, 0x58, 0x9a, 0x98, 0x23, 0xc1, 0xa4, 0xc0, 0xa8, 0xc1, 0x11,
+ 0x04, 0xe1, 0x08, 0x89, 0x71, 0xb1, 0x05, 0x97, 0x14, 0x65, 0xe6, 0xa5, 0x4b, 0x30, 0x2b, 0x30,
+ 0x6a, 0x70, 0x06, 0x41, 0x79, 0x4e, 0x12, 0x3f, 0x1e, 0xca, 0x31, 0xae, 0x78, 0x24, 0xc7, 0xb8,
+ 0xe3, 0x91, 0x1c, 0xe3, 0x89, 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24, 0xc7,
+ 0x08, 0x08, 0x00, 0x00, 0xff, 0xff, 0x37, 0x1c, 0x48, 0xa4, 0xc0, 0x00, 0x00, 0x00,
+}
+
func (this *SizeMessage) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -336,7 +354,7 @@ func (m *SizeMessage) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -364,7 +382,7 @@ func (m *SizeMessage) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -384,7 +402,7 @@ func (m *SizeMessage) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -405,7 +423,7 @@ func (m *SizeMessage) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -415,6 +433,9 @@ func (m *SizeMessage) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthSizeunderscore
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthSizeunderscore
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -430,6 +451,9 @@ func (m *SizeMessage) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthSizeunderscore
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthSizeunderscore
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -497,10 +521,13 @@ func skipSizeunderscore(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthSizeunderscore
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthSizeunderscore
+ }
return iNdEx, nil
case 3:
for {
@@ -529,6 +556,9 @@ func skipSizeunderscore(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthSizeunderscore
+ }
}
return iNdEx, nil
case 4:
@@ -547,22 +577,3 @@ var (
ErrInvalidLengthSizeunderscore = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowSizeunderscore = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("sizeunderscore.proto", fileDescriptor_sizeunderscore_50ebf86ef0019e26)
-}
-
-var fileDescriptor_sizeunderscore_50ebf86ef0019e26 = []byte{
- // 174 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x29, 0xce, 0xac, 0x4a,
- 0x2d, 0xcd, 0x4b, 0x49, 0x2d, 0x2a, 0x4e, 0xce, 0x2f, 0x4a, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9,
- 0x17, 0xe2, 0x43, 0x15, 0x95, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf,
- 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0x2b, 0x4b, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30,
- 0x0b, 0xa2, 0x5d, 0xc9, 0x9f, 0x8b, 0x3b, 0x38, 0xb3, 0x2a, 0xd5, 0x37, 0xb5, 0xb8, 0x38, 0x31,
- 0x3d, 0x55, 0x48, 0x88, 0x8b, 0x05, 0x64, 0x9e, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x73, 0x10, 0x98,
- 0x2d, 0x24, 0xc2, 0xc5, 0xea, 0x5a, 0x58, 0x9a, 0x98, 0x23, 0xc1, 0xa4, 0xc0, 0xa8, 0xc1, 0x11,
- 0x04, 0xe1, 0x08, 0x89, 0x71, 0xb1, 0x05, 0x97, 0x14, 0x65, 0xe6, 0xa5, 0x4b, 0x30, 0x2b, 0x30,
- 0x6a, 0x70, 0x06, 0x41, 0x79, 0x4e, 0x12, 0x3f, 0x1e, 0xca, 0x31, 0xae, 0x78, 0x24, 0xc7, 0xb8,
- 0xe3, 0x91, 0x1c, 0xe3, 0x89, 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24, 0xc7,
- 0x08, 0x08, 0x00, 0x00, 0xff, 0xff, 0x37, 0x1c, 0x48, 0xa4, 0xc0, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypes.pb.go b/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypes.pb.go
index ec21e7574b..0b437e89af 100644
--- a/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypes.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypes.pb.go
@@ -3,20 +3,19 @@
package stdtypes
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import _ "github.com/gogo/protobuf/types"
-
-import time "time"
-import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ _ "github.com/gogo/protobuf/types"
+ github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+ time "time"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -62,7 +61,7 @@ func (m *StdTypes) Reset() { *m = StdTypes{} }
func (m *StdTypes) String() string { return proto.CompactTextString(m) }
func (*StdTypes) ProtoMessage() {}
func (*StdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_stdtypes_ce26a3b6156de25d, []int{0}
+ return fileDescriptor_fa784ced32c4280a, []int{0}
}
func (m *StdTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StdTypes.Unmarshal(m, b)
@@ -70,8 +69,8 @@ func (m *StdTypes) XXX_Unmarshal(b []byte) error {
func (m *StdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_StdTypes.Marshal(b, m, deterministic)
}
-func (dst *StdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_StdTypes.Merge(dst, src)
+func (m *StdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StdTypes.Merge(m, src)
}
func (m *StdTypes) XXX_Size() int {
return xxx_messageInfo_StdTypes.Size(m)
@@ -268,7 +267,7 @@ func (m *RepStdTypes) Reset() { *m = RepStdTypes{} }
func (m *RepStdTypes) String() string { return proto.CompactTextString(m) }
func (*RepStdTypes) ProtoMessage() {}
func (*RepStdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_stdtypes_ce26a3b6156de25d, []int{1}
+ return fileDescriptor_fa784ced32c4280a, []int{1}
}
func (m *RepStdTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepStdTypes.Unmarshal(m, b)
@@ -276,8 +275,8 @@ func (m *RepStdTypes) XXX_Unmarshal(b []byte) error {
func (m *RepStdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepStdTypes.Marshal(b, m, deterministic)
}
-func (dst *RepStdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RepStdTypes.Merge(dst, src)
+func (m *RepStdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RepStdTypes.Merge(m, src)
}
func (m *RepStdTypes) XXX_Size() int {
return xxx_messageInfo_RepStdTypes.Size(m)
@@ -474,7 +473,7 @@ func (m *MapStdTypes) Reset() { *m = MapStdTypes{} }
func (m *MapStdTypes) String() string { return proto.CompactTextString(m) }
func (*MapStdTypes) ProtoMessage() {}
func (*MapStdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_stdtypes_ce26a3b6156de25d, []int{2}
+ return fileDescriptor_fa784ced32c4280a, []int{2}
}
func (m *MapStdTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MapStdTypes.Unmarshal(m, b)
@@ -482,8 +481,8 @@ func (m *MapStdTypes) XXX_Unmarshal(b []byte) error {
func (m *MapStdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MapStdTypes.Marshal(b, m, deterministic)
}
-func (dst *MapStdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MapStdTypes.Merge(dst, src)
+func (m *MapStdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MapStdTypes.Merge(m, src)
}
func (m *MapStdTypes) XXX_Size() int {
return xxx_messageInfo_MapStdTypes.Size(m)
@@ -671,7 +670,7 @@ func (m *OneofStdTypes) Reset() { *m = OneofStdTypes{} }
func (m *OneofStdTypes) String() string { return proto.CompactTextString(m) }
func (*OneofStdTypes) ProtoMessage() {}
func (*OneofStdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_stdtypes_ce26a3b6156de25d, []int{3}
+ return fileDescriptor_fa784ced32c4280a, []int{3}
}
func (m *OneofStdTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OneofStdTypes.Unmarshal(m, b)
@@ -679,8 +678,8 @@ func (m *OneofStdTypes) XXX_Unmarshal(b []byte) error {
func (m *OneofStdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OneofStdTypes.Marshal(b, m, deterministic)
}
-func (dst *OneofStdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OneofStdTypes.Merge(dst, src)
+func (m *OneofStdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OneofStdTypes.Merge(m, src)
}
func (m *OneofStdTypes) XXX_Size() int {
return xxx_messageInfo_OneofStdTypes.Size(m)
@@ -1211,6 +1210,99 @@ func init() {
proto.RegisterMapType((map[int32]time.Time)(nil), "stdtypes.MapStdTypes.TimestampEntry")
proto.RegisterType((*OneofStdTypes)(nil), "stdtypes.OneofStdTypes")
}
+
+func init() { proto.RegisterFile("stdtypes.proto", fileDescriptor_fa784ced32c4280a) }
+
+var fileDescriptor_fa784ced32c4280a = []byte{
+ // 1372 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x99, 0x4f, 0x6f, 0x1b, 0xc5,
+ 0x1b, 0xc7, 0xbd, 0x19, 0x3b, 0xb5, 0xc7, 0x76, 0x9a, 0x4c, 0x7f, 0xad, 0xf6, 0x67, 0xd0, 0xa6,
+ 0x0a, 0x88, 0x06, 0x51, 0x1c, 0xd8, 0x45, 0x08, 0x21, 0x50, 0xc1, 0x0a, 0x25, 0x81, 0xfe, 0x01,
+ 0xd7, 0x6e, 0x2c, 0xa0, 0x50, 0x9b, 0x6c, 0x4d, 0x84, 0xe3, 0xb5, 0xec, 0x35, 0x28, 0x37, 0x5e,
+ 0x02, 0x47, 0x8e, 0x1c, 0xb9, 0x73, 0xe1, 0xc8, 0xb1, 0x47, 0x5e, 0x01, 0x34, 0xe6, 0x0d, 0x20,
+ 0xb8, 0xf4, 0x82, 0x84, 0x76, 0x66, 0x76, 0x77, 0x76, 0xf7, 0x99, 0xdd, 0x95, 0x35, 0xbe, 0x25,
+ 0x99, 0x79, 0x3e, 0xfe, 0xee, 0xe3, 0x51, 0x3e, 0x7e, 0x3c, 0x78, 0x63, 0xe6, 0x1e, 0xbb, 0x67,
+ 0x13, 0x7b, 0xd6, 0x9c, 0x4c, 0x1d, 0xd7, 0x21, 0x65, 0xff, 0xf7, 0xc6, 0xcb, 0xc3, 0x13, 0xf7,
+ 0xab, 0xf9, 0xa0, 0xf9, 0xa5, 0x73, 0xba, 0x37, 0x74, 0x86, 0xce, 0x1e, 0xdd, 0x30, 0x98, 0x3f,
+ 0xa2, 0xbf, 0xd1, 0x5f, 0xe8, 0x4f, 0xac, 0xb0, 0x61, 0x0c, 0x1d, 0x67, 0x38, 0xb2, 0xc3, 0x5d,
+ 0xc7, 0xf3, 0x69, 0xdf, 0x3d, 0x71, 0xc6, 0x7c, 0x7d, 0x3b, 0xbe, 0xee, 0x9e, 0x9c, 0xda, 0x33,
+ 0xb7, 0x7f, 0x3a, 0x91, 0x01, 0xbe, 0x9d, 0xf6, 0x27, 0x13, 0x7b, 0xca, 0x93, 0xed, 0xfc, 0x5d,
+ 0xc3, 0xe5, 0x7b, 0xee, 0x71, 0xc7, 0x0b, 0x47, 0xee, 0xe0, 0xad, 0xf1, 0x7c, 0x34, 0xea, 0x0f,
+ 0x46, 0x76, 0xc7, 0xe7, 0xe8, 0xda, 0x55, 0x6d, 0xb7, 0x6a, 0x36, 0x9a, 0x0c, 0xd4, 0xf4, 0x41,
+ 0xcd, 0x60, 0x47, 0xab, 0xf8, 0xfd, 0x1f, 0xdb, 0x5a, 0x3b, 0x59, 0x4a, 0x3e, 0xc4, 0x9b, 0xfe,
+ 0x1f, 0xf7, 0x79, 0x6e, 0x7d, 0x8d, 0xe2, 0xfe, 0x9f, 0xc0, 0xf9, 0x1b, 0x5a, 0xc5, 0x1f, 0x3c,
+ 0x5a, 0xa2, 0x90, 0xb4, 0x70, 0x25, 0x78, 0x38, 0x1d, 0x65, 0x86, 0x2a, 0x3f, 0xfe, 0x7d, 0xbb,
+ 0x40, 0x83, 0x85, 0x65, 0xe4, 0x06, 0x2e, 0xfb, 0x0d, 0xd4, 0x8b, 0x59, 0x41, 0x28, 0x81, 0x86,
+ 0x09, 0x8a, 0xc8, 0x07, 0x78, 0x23, 0x08, 0xe6, 0xcc, 0x07, 0x23, 0x5b, 0x2f, 0x51, 0xcc, 0xb3,
+ 0x49, 0x0c, 0x5d, 0xbe, 0xdf, 0x1f, 0xcd, 0xed, 0x56, 0xf1, 0x47, 0x8f, 0x12, 0xab, 0x24, 0xb7,
+ 0x70, 0x7d, 0xec, 0x8c, 0xbd, 0x3f, 0x72, 0xd4, 0x7a, 0x0e, 0x14, 0x0d, 0x45, 0x71, 0xd1, 0x62,
+ 0xf2, 0x3e, 0xae, 0xfb, 0xfc, 0x9b, 0x23, 0xa7, 0xef, 0xea, 0x17, 0x28, 0xed, 0x99, 0x04, 0x8d,
+ 0xae, 0x8a, 0xb9, 0xa2, 0x75, 0xe4, 0x10, 0xd7, 0x38, 0x99, 0x71, 0xca, 0xd9, 0x9c, 0x30, 0x54,
+ 0xa4, 0x54, 0xcc, 0x74, 0x38, 0x76, 0x5f, 0x7f, 0x4d, 0xaf, 0x48, 0x58, 0x74, 0x15, 0xcc, 0x44,
+ 0x57, 0x84, 0x4c, 0x8c, 0x83, 0xb3, 0x39, 0xc9, 0x4c, 0x0c, 0x25, 0xbc, 0x83, 0x5d, 0x06, 0xab,
+ 0x4a, 0xda, 0xde, 0x4d, 0xa4, 0x8a, 0x55, 0x0a, 0xef, 0x20, 0x47, 0xd5, 0x72, 0xa0, 0x92, 0xef,
+ 0x20, 0xa7, 0x45, 0xbb, 0x65, 0x99, 0x7a, 0x5d, 0xfe, 0x94, 0x96, 0x29, 0xeb, 0x96, 0x65, 0x46,
+ 0xbb, 0x65, 0x99, 0xfa, 0x46, 0x36, 0x07, 0xec, 0x96, 0x65, 0xc6, 0xbb, 0x65, 0x99, 0xfa, 0xc5,
+ 0x94, 0x47, 0x8c, 0xa6, 0x8a, 0x55, 0xc6, 0xba, 0x65, 0x99, 0xfa, 0x66, 0x0e, 0x14, 0xdc, 0x2d,
+ 0xcb, 0x24, 0xfb, 0xb8, 0xe6, 0xf3, 0x5b, 0x8e, 0x33, 0xd2, 0xb7, 0x24, 0xff, 0x11, 0xbc, 0x45,
+ 0x31, 0x55, 0xa4, 0x8a, 0xdc, 0xc4, 0x55, 0x8e, 0xa5, 0x10, 0x92, 0x09, 0x09, 0xf3, 0x88, 0x85,
+ 0x62, 0x9f, 0xee, 0xb9, 0xd3, 0x93, 0xf1, 0x50, 0xbf, 0x24, 0x79, 0x38, 0xb6, 0x0c, 0xf6, 0x89,
+ 0x2d, 0x09, 0x7d, 0xe2, 0xa8, 0xff, 0xe5, 0x40, 0x25, 0xfb, 0xc4, 0x69, 0xc2, 0xa9, 0x6a, 0x9d,
+ 0xb9, 0xf6, 0x4c, 0xbf, 0x2c, 0x39, 0x0d, 0x74, 0x15, 0x3c, 0x55, 0x74, 0x45, 0x38, 0x55, 0x8c,
+ 0x73, 0x25, 0x9b, 0x93, 0x3c, 0x55, 0x74, 0x71, 0xe7, 0xdf, 0x1a, 0xae, 0xb6, 0xed, 0x49, 0xe0,
+ 0x9d, 0x8f, 0x30, 0x49, 0xc8, 0x63, 0xa6, 0x6b, 0x57, 0x51, 0x2e, 0xf1, 0x00, 0xb5, 0xe4, 0x76,
+ 0x68, 0x32, 0xff, 0xff, 0xf9, 0x4c, 0x5f, 0xa3, 0xc0, 0x4c, 0xf5, 0x24, 0x2b, 0xc9, 0x3e, 0xc6,
+ 0x6e, 0x18, 0x0c, 0x65, 0x06, 0x0b, 0xe5, 0x23, 0xd4, 0x91, 0x77, 0x71, 0xe5, 0x38, 0x08, 0x53,
+ 0xcc, 0x0a, 0x13, 0xea, 0x27, 0xac, 0x02, 0xfd, 0x83, 0xd4, 0xf9, 0x07, 0x29, 0xf5, 0x0f, 0x52,
+ 0xe4, 0x1f, 0xa4, 0xd0, 0x3f, 0x48, 0x91, 0x7f, 0x90, 0x4a, 0xff, 0x20, 0x75, 0xfe, 0x41, 0x4a,
+ 0xfd, 0x83, 0x14, 0xf9, 0x07, 0xa9, 0xf4, 0x0f, 0x52, 0xe7, 0x1f, 0xa4, 0xd2, 0x3f, 0x48, 0x85,
+ 0x7f, 0x90, 0x3a, 0xff, 0x20, 0x75, 0xfe, 0x41, 0x4a, 0xfd, 0x83, 0x14, 0xf9, 0x07, 0x2d, 0xeb,
+ 0x9f, 0x9f, 0xb7, 0x71, 0xf5, 0x76, 0x3f, 0xf4, 0xcf, 0x43, 0x78, 0xee, 0xf1, 0xf8, 0xd7, 0x9b,
+ 0xc1, 0x28, 0x27, 0x54, 0x34, 0xef, 0xc4, 0xb7, 0xbf, 0x37, 0x76, 0xa7, 0x67, 0xf2, 0x49, 0xe8,
+ 0x96, 0x38, 0xbc, 0x30, 0x0f, 0x3d, 0x0f, 0x93, 0x63, 0x44, 0x70, 0x8c, 0x79, 0x00, 0xcc, 0x55,
+ 0x4c, 0x4a, 0x2f, 0xa5, 0xc7, 0xf5, 0x77, 0xf3, 0xb4, 0x92, 0x49, 0xeb, 0x30, 0x32, 0x25, 0x79,
+ 0xd8, 0xe7, 0x60, 0x6c, 0x14, 0x07, 0xcd, 0x4b, 0x47, 0x12, 0x5f, 0xbd, 0x98, 0x91, 0x93, 0xee,
+ 0xe5, 0x29, 0x41, 0x79, 0xf5, 0x60, 0x79, 0xed, 0x4a, 0xb8, 0xe2, 0x56, 0x21, 0x2d, 0x24, 0xb2,
+ 0x0e, 0x2c, 0xb2, 0xdd, 0xf4, 0xc4, 0x74, 0xab, 0x18, 0x38, 0x66, 0xb5, 0x2e, 0x68, 0xb5, 0x6b,
+ 0xa9, 0x71, 0x05, 0xa6, 0xcc, 0x70, 0x1d, 0xd8, 0x70, 0x19, 0x61, 0xe9, 0x56, 0x30, 0x2c, 0x33,
+ 0x41, 0x17, 0xd4, 0x5d, 0x7a, 0x58, 0x81, 0x29, 0x53, 0xdf, 0x91, 0x44, 0x7d, 0x19, 0x87, 0xa1,
+ 0x9b, 0x88, 0x1b, 0xf7, 0x60, 0x0f, 0xf6, 0x60, 0xfa, 0x61, 0xe8, 0x82, 0x89, 0x63, 0x4e, 0xec,
+ 0xc0, 0x4e, 0xcc, 0xee, 0xaf, 0x65, 0xca, 0xfa, 0x6b, 0x99, 0xd1, 0xfe, 0x06, 0x82, 0xcc, 0xec,
+ 0xaf, 0xcf, 0x94, 0xc9, 0xf2, 0x48, 0x22, 0xcb, 0x1c, 0xfd, 0x8d, 0xc6, 0x8d, 0x9b, 0xb3, 0x07,
+ 0x9b, 0x33, 0xbb, 0xbf, 0xc9, 0xc4, 0x31, 0x8b, 0x7e, 0x0c, 0x5a, 0xf4, 0x5a, 0x7a, 0x60, 0x6f,
+ 0xa7, 0x18, 0x37, 0xaa, 0xd4, 0x36, 0xa4, 0xd4, 0x17, 0x52, 0xa3, 0x86, 0x40, 0x89, 0x5e, 0x8f,
+ 0x24, 0x7a, 0xcd, 0xe8, 0x2c, 0xdb, 0x0b, 0x76, 0x96, 0xdb, 0xb1, 0x07, 0xbb, 0x36, 0xbd, 0xb3,
+ 0x22, 0x56, 0xea, 0xdd, 0x0e, 0xec, 0xdd, 0x8c, 0x93, 0x4b, 0xb7, 0x82, 0x27, 0x97, 0x49, 0xb8,
+ 0x0b, 0x4a, 0x38, 0xfd, 0xe4, 0x0a, 0x4c, 0x89, 0x90, 0x1b, 0x0f, 0xf1, 0x15, 0xd8, 0xa8, 0x64,
+ 0x13, 0xa3, 0xaf, 0xed, 0x33, 0xfa, 0x25, 0x64, 0xa9, 0xed, 0xfd, 0x48, 0x5e, 0xc1, 0xa5, 0x6f,
+ 0x3c, 0xbb, 0xf3, 0x6f, 0x12, 0x53, 0xc6, 0xb0, 0x36, 0xdb, 0xf8, 0xe6, 0xda, 0x1b, 0x5a, 0xa3,
+ 0x87, 0x37, 0x56, 0x44, 0xfe, 0x1c, 0x5f, 0x06, 0xf5, 0x0a, 0xbc, 0xc0, 0x5e, 0xf4, 0x05, 0xe4,
+ 0xc3, 0x9f, 0xc8, 0xbf, 0x8f, 0xeb, 0x2b, 0xe1, 0x7e, 0x81, 0x2f, 0x01, 0xba, 0x05, 0xe8, 0x66,
+ 0x94, 0x9e, 0x3a, 0x1f, 0x46, 0x1b, 0x43, 0x92, 0xde, 0x55, 0xc8, 0x7f, 0x80, 0x49, 0xd2, 0xbe,
+ 0x00, 0xff, 0xd5, 0x28, 0x3f, 0x6d, 0x92, 0x14, 0xf1, 0x9f, 0xe1, 0xad, 0x84, 0x87, 0xd5, 0xd1,
+ 0x85, 0xf0, 0xa1, 0x87, 0x96, 0xc1, 0x87, 0x93, 0x1d, 0x1c, 0x7e, 0x15, 0x74, 0xe1, 0xe8, 0x74,
+ 0x53, 0xf9, 0x99, 0x6f, 0x6d, 0x17, 0x7e, 0x81, 0xf0, 0xe8, 0xac, 0x86, 0x1f, 0xed, 0x3e, 0xb7,
+ 0xd4, 0x92, 0xfd, 0xe1, 0x93, 0xa2, 0xb4, 0xfb, 0xca, 0xe9, 0xb1, 0xee, 0xcb, 0xf9, 0xb9, 0xba,
+ 0x03, 0xbc, 0x40, 0xb4, 0xfb, 0xea, 0xf9, 0x9f, 0xe2, 0xad, 0x84, 0xca, 0x97, 0xf9, 0x77, 0x1c,
+ 0x4c, 0xc5, 0x22, 0xfc, 0x13, 0xbc, 0x19, 0xb7, 0xba, 0x32, 0xb6, 0xd0, 0x79, 0xc1, 0xc1, 0xcb,
+ 0x74, 0x46, 0x18, 0x9d, 0xe1, 0xce, 0xaf, 0x86, 0x2f, 0x9c, 0xfb, 0xd0, 0xca, 0xcb, 0x9c, 0xcc,
+ 0x70, 0xc8, 0x86, 0xcf, 0xfd, 0x0a, 0xe8, 0x3b, 0xff, 0x94, 0x70, 0xfd, 0xee, 0xd8, 0x76, 0x1e,
+ 0x05, 0x73, 0xfb, 0x3b, 0xe2, 0x54, 0x9d, 0xf3, 0x9e, 0xf2, 0xa0, 0x20, 0x4e, 0xd2, 0x6f, 0x0b,
+ 0xa3, 0x6e, 0xbe, 0x9b, 0xc9, 0x83, 0x82, 0x30, 0xde, 0xb6, 0x70, 0x65, 0x6a, 0x4f, 0xf8, 0x04,
+ 0x8a, 0xf2, 0xde, 0x04, 0x7a, 0x11, 0x82, 0x32, 0x72, 0x03, 0x97, 0xa7, 0xf6, 0x84, 0x4d, 0x85,
+ 0xc5, 0x9c, 0x77, 0x76, 0x5e, 0x08, 0xbf, 0x88, 0x03, 0xd8, 0xe0, 0x53, 0xca, 0x79, 0xc1, 0xc6,
+ 0x01, 0x6c, 0xc8, 0x61, 0x4f, 0xc1, 0x47, 0xa7, 0xf5, 0xbc, 0xb7, 0x61, 0xfc, 0x29, 0xf8, 0xa0,
+ 0x14, 0x84, 0xb0, 0x4c, 0xe9, 0xcd, 0x63, 0xfc, 0x1b, 0xba, 0x30, 0x84, 0x65, 0x0a, 0x21, 0x2c,
+ 0x93, 0xdf, 0x39, 0xe6, 0xf8, 0x92, 0x4f, 0x08, 0x61, 0x99, 0xe4, 0x2d, 0x7c, 0x61, 0x6a, 0x4f,
+ 0xe8, 0xc7, 0xfe, 0x4a, 0xbe, 0xeb, 0xa0, 0x83, 0x42, 0xdb, 0x2f, 0xe1, 0x09, 0xf8, 0xe7, 0x70,
+ 0x9c, 0xf7, 0xfa, 0x86, 0x27, 0xe0, 0x9f, 0xba, 0x59, 0x1b, 0xd8, 0x67, 0xe3, 0x6a, 0xce, 0x8b,
+ 0x16, 0xde, 0x06, 0xfa, 0xe7, 0xd6, 0x45, 0x7a, 0xc6, 0xef, 0xd2, 0x33, 0xee, 0x9d, 0xd2, 0xd6,
+ 0xf5, 0x27, 0xe7, 0x86, 0xf6, 0xd7, 0xb9, 0xa1, 0x3d, 0x3d, 0x37, 0xb4, 0x9f, 0x16, 0x86, 0xf6,
+ 0xcb, 0xc2, 0xd0, 0x7e, 0x5d, 0x18, 0xda, 0xe3, 0x85, 0x51, 0xf8, 0x6d, 0x61, 0x14, 0x9e, 0x2c,
+ 0x0c, 0xed, 0xe9, 0xc2, 0x28, 0x7c, 0xf7, 0xa7, 0x51, 0x18, 0xac, 0xd3, 0x57, 0xb1, 0xfe, 0x0b,
+ 0x00, 0x00, 0xff, 0xff, 0xd9, 0x80, 0xa9, 0x4d, 0x81, 0x20, 0x00, 0x00,
+}
+
func (this *StdTypes) VerboseEqual(that interface{}) error {
if that == nil {
if this == nil {
@@ -4868,95 +4960,3 @@ func sovStdtypes(x uint64) (n int) {
func sozStdtypes(x uint64) (n int) {
return sovStdtypes(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
-
-func init() { proto.RegisterFile("stdtypes.proto", fileDescriptor_stdtypes_ce26a3b6156de25d) }
-
-var fileDescriptor_stdtypes_ce26a3b6156de25d = []byte{
- // 1372 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x99, 0x4f, 0x6f, 0x1b, 0xc5,
- 0x1b, 0xc7, 0xbd, 0x19, 0x3b, 0xb5, 0xc7, 0x76, 0x9a, 0x4c, 0x7f, 0xad, 0xf6, 0x67, 0xd0, 0xa6,
- 0x0a, 0x88, 0x06, 0x51, 0x1c, 0xd8, 0x45, 0x08, 0x21, 0x50, 0xc1, 0x0a, 0x25, 0x81, 0xfe, 0x01,
- 0xd7, 0x6e, 0x2c, 0xa0, 0x50, 0x9b, 0x6c, 0x4d, 0x84, 0xe3, 0xb5, 0xec, 0x35, 0x28, 0x37, 0x5e,
- 0x02, 0x47, 0x8e, 0x1c, 0xb9, 0x73, 0xe1, 0xc8, 0xb1, 0x47, 0x5e, 0x01, 0x34, 0xe6, 0x0d, 0x20,
- 0xb8, 0xf4, 0x82, 0x84, 0x76, 0x66, 0x76, 0x77, 0x76, 0xf7, 0x99, 0xdd, 0x95, 0x35, 0xbe, 0x25,
- 0x99, 0x79, 0x3e, 0xfe, 0xee, 0xe3, 0x51, 0x3e, 0x7e, 0x3c, 0x78, 0x63, 0xe6, 0x1e, 0xbb, 0x67,
- 0x13, 0x7b, 0xd6, 0x9c, 0x4c, 0x1d, 0xd7, 0x21, 0x65, 0xff, 0xf7, 0xc6, 0xcb, 0xc3, 0x13, 0xf7,
- 0xab, 0xf9, 0xa0, 0xf9, 0xa5, 0x73, 0xba, 0x37, 0x74, 0x86, 0xce, 0x1e, 0xdd, 0x30, 0x98, 0x3f,
- 0xa2, 0xbf, 0xd1, 0x5f, 0xe8, 0x4f, 0xac, 0xb0, 0x61, 0x0c, 0x1d, 0x67, 0x38, 0xb2, 0xc3, 0x5d,
- 0xc7, 0xf3, 0x69, 0xdf, 0x3d, 0x71, 0xc6, 0x7c, 0x7d, 0x3b, 0xbe, 0xee, 0x9e, 0x9c, 0xda, 0x33,
- 0xb7, 0x7f, 0x3a, 0x91, 0x01, 0xbe, 0x9d, 0xf6, 0x27, 0x13, 0x7b, 0xca, 0x93, 0xed, 0xfc, 0x5d,
- 0xc3, 0xe5, 0x7b, 0xee, 0x71, 0xc7, 0x0b, 0x47, 0xee, 0xe0, 0xad, 0xf1, 0x7c, 0x34, 0xea, 0x0f,
- 0x46, 0x76, 0xc7, 0xe7, 0xe8, 0xda, 0x55, 0x6d, 0xb7, 0x6a, 0x36, 0x9a, 0x0c, 0xd4, 0xf4, 0x41,
- 0xcd, 0x60, 0x47, 0xab, 0xf8, 0xfd, 0x1f, 0xdb, 0x5a, 0x3b, 0x59, 0x4a, 0x3e, 0xc4, 0x9b, 0xfe,
- 0x1f, 0xf7, 0x79, 0x6e, 0x7d, 0x8d, 0xe2, 0xfe, 0x9f, 0xc0, 0xf9, 0x1b, 0x5a, 0xc5, 0x1f, 0x3c,
- 0x5a, 0xa2, 0x90, 0xb4, 0x70, 0x25, 0x78, 0x38, 0x1d, 0x65, 0x86, 0x2a, 0x3f, 0xfe, 0x7d, 0xbb,
- 0x40, 0x83, 0x85, 0x65, 0xe4, 0x06, 0x2e, 0xfb, 0x0d, 0xd4, 0x8b, 0x59, 0x41, 0x28, 0x81, 0x86,
- 0x09, 0x8a, 0xc8, 0x07, 0x78, 0x23, 0x08, 0xe6, 0xcc, 0x07, 0x23, 0x5b, 0x2f, 0x51, 0xcc, 0xb3,
- 0x49, 0x0c, 0x5d, 0xbe, 0xdf, 0x1f, 0xcd, 0xed, 0x56, 0xf1, 0x47, 0x8f, 0x12, 0xab, 0x24, 0xb7,
- 0x70, 0x7d, 0xec, 0x8c, 0xbd, 0x3f, 0x72, 0xd4, 0x7a, 0x0e, 0x14, 0x0d, 0x45, 0x71, 0xd1, 0x62,
- 0xf2, 0x3e, 0xae, 0xfb, 0xfc, 0x9b, 0x23, 0xa7, 0xef, 0xea, 0x17, 0x28, 0xed, 0x99, 0x04, 0x8d,
- 0xae, 0x8a, 0xb9, 0xa2, 0x75, 0xe4, 0x10, 0xd7, 0x38, 0x99, 0x71, 0xca, 0xd9, 0x9c, 0x30, 0x54,
- 0xa4, 0x54, 0xcc, 0x74, 0x38, 0x76, 0x5f, 0x7f, 0x4d, 0xaf, 0x48, 0x58, 0x74, 0x15, 0xcc, 0x44,
- 0x57, 0x84, 0x4c, 0x8c, 0x83, 0xb3, 0x39, 0xc9, 0x4c, 0x0c, 0x25, 0xbc, 0x83, 0x5d, 0x06, 0xab,
- 0x4a, 0xda, 0xde, 0x4d, 0xa4, 0x8a, 0x55, 0x0a, 0xef, 0x20, 0x47, 0xd5, 0x72, 0xa0, 0x92, 0xef,
- 0x20, 0xa7, 0x45, 0xbb, 0x65, 0x99, 0x7a, 0x5d, 0xfe, 0x94, 0x96, 0x29, 0xeb, 0x96, 0x65, 0x46,
- 0xbb, 0x65, 0x99, 0xfa, 0x46, 0x36, 0x07, 0xec, 0x96, 0x65, 0xc6, 0xbb, 0x65, 0x99, 0xfa, 0xc5,
- 0x94, 0x47, 0x8c, 0xa6, 0x8a, 0x55, 0xc6, 0xba, 0x65, 0x99, 0xfa, 0x66, 0x0e, 0x14, 0xdc, 0x2d,
- 0xcb, 0x24, 0xfb, 0xb8, 0xe6, 0xf3, 0x5b, 0x8e, 0x33, 0xd2, 0xb7, 0x24, 0xff, 0x11, 0xbc, 0x45,
- 0x31, 0x55, 0xa4, 0x8a, 0xdc, 0xc4, 0x55, 0x8e, 0xa5, 0x10, 0x92, 0x09, 0x09, 0xf3, 0x88, 0x85,
- 0x62, 0x9f, 0xee, 0xb9, 0xd3, 0x93, 0xf1, 0x50, 0xbf, 0x24, 0x79, 0x38, 0xb6, 0x0c, 0xf6, 0x89,
- 0x2d, 0x09, 0x7d, 0xe2, 0xa8, 0xff, 0xe5, 0x40, 0x25, 0xfb, 0xc4, 0x69, 0xc2, 0xa9, 0x6a, 0x9d,
- 0xb9, 0xf6, 0x4c, 0xbf, 0x2c, 0x39, 0x0d, 0x74, 0x15, 0x3c, 0x55, 0x74, 0x45, 0x38, 0x55, 0x8c,
- 0x73, 0x25, 0x9b, 0x93, 0x3c, 0x55, 0x74, 0x71, 0xe7, 0xdf, 0x1a, 0xae, 0xb6, 0xed, 0x49, 0xe0,
- 0x9d, 0x8f, 0x30, 0x49, 0xc8, 0x63, 0xa6, 0x6b, 0x57, 0x51, 0x2e, 0xf1, 0x00, 0xb5, 0xe4, 0x76,
- 0x68, 0x32, 0xff, 0xff, 0xf9, 0x4c, 0x5f, 0xa3, 0xc0, 0x4c, 0xf5, 0x24, 0x2b, 0xc9, 0x3e, 0xc6,
- 0x6e, 0x18, 0x0c, 0x65, 0x06, 0x0b, 0xe5, 0x23, 0xd4, 0x91, 0x77, 0x71, 0xe5, 0x38, 0x08, 0x53,
- 0xcc, 0x0a, 0x13, 0xea, 0x27, 0xac, 0x02, 0xfd, 0x83, 0xd4, 0xf9, 0x07, 0x29, 0xf5, 0x0f, 0x52,
- 0xe4, 0x1f, 0xa4, 0xd0, 0x3f, 0x48, 0x91, 0x7f, 0x90, 0x4a, 0xff, 0x20, 0x75, 0xfe, 0x41, 0x4a,
- 0xfd, 0x83, 0x14, 0xf9, 0x07, 0xa9, 0xf4, 0x0f, 0x52, 0xe7, 0x1f, 0xa4, 0xd2, 0x3f, 0x48, 0x85,
- 0x7f, 0x90, 0x3a, 0xff, 0x20, 0x75, 0xfe, 0x41, 0x4a, 0xfd, 0x83, 0x14, 0xf9, 0x07, 0x2d, 0xeb,
- 0x9f, 0x9f, 0xb7, 0x71, 0xf5, 0x76, 0x3f, 0xf4, 0xcf, 0x43, 0x78, 0xee, 0xf1, 0xf8, 0xd7, 0x9b,
- 0xc1, 0x28, 0x27, 0x54, 0x34, 0xef, 0xc4, 0xb7, 0xbf, 0x37, 0x76, 0xa7, 0x67, 0xf2, 0x49, 0xe8,
- 0x96, 0x38, 0xbc, 0x30, 0x0f, 0x3d, 0x0f, 0x93, 0x63, 0x44, 0x70, 0x8c, 0x79, 0x00, 0xcc, 0x55,
- 0x4c, 0x4a, 0x2f, 0xa5, 0xc7, 0xf5, 0x77, 0xf3, 0xb4, 0x92, 0x49, 0xeb, 0x30, 0x32, 0x25, 0x79,
- 0xd8, 0xe7, 0x60, 0x6c, 0x14, 0x07, 0xcd, 0x4b, 0x47, 0x12, 0x5f, 0xbd, 0x98, 0x91, 0x93, 0xee,
- 0xe5, 0x29, 0x41, 0x79, 0xf5, 0x60, 0x79, 0xed, 0x4a, 0xb8, 0xe2, 0x56, 0x21, 0x2d, 0x24, 0xb2,
- 0x0e, 0x2c, 0xb2, 0xdd, 0xf4, 0xc4, 0x74, 0xab, 0x18, 0x38, 0x66, 0xb5, 0x2e, 0x68, 0xb5, 0x6b,
- 0xa9, 0x71, 0x05, 0xa6, 0xcc, 0x70, 0x1d, 0xd8, 0x70, 0x19, 0x61, 0xe9, 0x56, 0x30, 0x2c, 0x33,
- 0x41, 0x17, 0xd4, 0x5d, 0x7a, 0x58, 0x81, 0x29, 0x53, 0xdf, 0x91, 0x44, 0x7d, 0x19, 0x87, 0xa1,
- 0x9b, 0x88, 0x1b, 0xf7, 0x60, 0x0f, 0xf6, 0x60, 0xfa, 0x61, 0xe8, 0x82, 0x89, 0x63, 0x4e, 0xec,
- 0xc0, 0x4e, 0xcc, 0xee, 0xaf, 0x65, 0xca, 0xfa, 0x6b, 0x99, 0xd1, 0xfe, 0x06, 0x82, 0xcc, 0xec,
- 0xaf, 0xcf, 0x94, 0xc9, 0xf2, 0x48, 0x22, 0xcb, 0x1c, 0xfd, 0x8d, 0xc6, 0x8d, 0x9b, 0xb3, 0x07,
- 0x9b, 0x33, 0xbb, 0xbf, 0xc9, 0xc4, 0x31, 0x8b, 0x7e, 0x0c, 0x5a, 0xf4, 0x5a, 0x7a, 0x60, 0x6f,
- 0xa7, 0x18, 0x37, 0xaa, 0xd4, 0x36, 0xa4, 0xd4, 0x17, 0x52, 0xa3, 0x86, 0x40, 0x89, 0x5e, 0x8f,
- 0x24, 0x7a, 0xcd, 0xe8, 0x2c, 0xdb, 0x0b, 0x76, 0x96, 0xdb, 0xb1, 0x07, 0xbb, 0x36, 0xbd, 0xb3,
- 0x22, 0x56, 0xea, 0xdd, 0x0e, 0xec, 0xdd, 0x8c, 0x93, 0x4b, 0xb7, 0x82, 0x27, 0x97, 0x49, 0xb8,
- 0x0b, 0x4a, 0x38, 0xfd, 0xe4, 0x0a, 0x4c, 0x89, 0x90, 0x1b, 0x0f, 0xf1, 0x15, 0xd8, 0xa8, 0x64,
- 0x13, 0xa3, 0xaf, 0xed, 0x33, 0xfa, 0x25, 0x64, 0xa9, 0xed, 0xfd, 0x48, 0x5e, 0xc1, 0xa5, 0x6f,
- 0x3c, 0xbb, 0xf3, 0x6f, 0x12, 0x53, 0xc6, 0xb0, 0x36, 0xdb, 0xf8, 0xe6, 0xda, 0x1b, 0x5a, 0xa3,
- 0x87, 0x37, 0x56, 0x44, 0xfe, 0x1c, 0x5f, 0x06, 0xf5, 0x0a, 0xbc, 0xc0, 0x5e, 0xf4, 0x05, 0xe4,
- 0xc3, 0x9f, 0xc8, 0xbf, 0x8f, 0xeb, 0x2b, 0xe1, 0x7e, 0x81, 0x2f, 0x01, 0xba, 0x05, 0xe8, 0x66,
- 0x94, 0x9e, 0x3a, 0x1f, 0x46, 0x1b, 0x43, 0x92, 0xde, 0x55, 0xc8, 0x7f, 0x80, 0x49, 0xd2, 0xbe,
- 0x00, 0xff, 0xd5, 0x28, 0x3f, 0x6d, 0x92, 0x14, 0xf1, 0x9f, 0xe1, 0xad, 0x84, 0x87, 0xd5, 0xd1,
- 0x85, 0xf0, 0xa1, 0x87, 0x96, 0xc1, 0x87, 0x93, 0x1d, 0x1c, 0x7e, 0x15, 0x74, 0xe1, 0xe8, 0x74,
- 0x53, 0xf9, 0x99, 0x6f, 0x6d, 0x17, 0x7e, 0x81, 0xf0, 0xe8, 0xac, 0x86, 0x1f, 0xed, 0x3e, 0xb7,
- 0xd4, 0x92, 0xfd, 0xe1, 0x93, 0xa2, 0xb4, 0xfb, 0xca, 0xe9, 0xb1, 0xee, 0xcb, 0xf9, 0xb9, 0xba,
- 0x03, 0xbc, 0x40, 0xb4, 0xfb, 0xea, 0xf9, 0x9f, 0xe2, 0xad, 0x84, 0xca, 0x97, 0xf9, 0x77, 0x1c,
- 0x4c, 0xc5, 0x22, 0xfc, 0x13, 0xbc, 0x19, 0xb7, 0xba, 0x32, 0xb6, 0xd0, 0x79, 0xc1, 0xc1, 0xcb,
- 0x74, 0x46, 0x18, 0x9d, 0xe1, 0xce, 0xaf, 0x86, 0x2f, 0x9c, 0xfb, 0xd0, 0xca, 0xcb, 0x9c, 0xcc,
- 0x70, 0xc8, 0x86, 0xcf, 0xfd, 0x0a, 0xe8, 0x3b, 0xff, 0x94, 0x70, 0xfd, 0xee, 0xd8, 0x76, 0x1e,
- 0x05, 0x73, 0xfb, 0x3b, 0xe2, 0x54, 0x9d, 0xf3, 0x9e, 0xf2, 0xa0, 0x20, 0x4e, 0xd2, 0x6f, 0x0b,
- 0xa3, 0x6e, 0xbe, 0x9b, 0xc9, 0x83, 0x82, 0x30, 0xde, 0xb6, 0x70, 0x65, 0x6a, 0x4f, 0xf8, 0x04,
- 0x8a, 0xf2, 0xde, 0x04, 0x7a, 0x11, 0x82, 0x32, 0x72, 0x03, 0x97, 0xa7, 0xf6, 0x84, 0x4d, 0x85,
- 0xc5, 0x9c, 0x77, 0x76, 0x5e, 0x08, 0xbf, 0x88, 0x03, 0xd8, 0xe0, 0x53, 0xca, 0x79, 0xc1, 0xc6,
- 0x01, 0x6c, 0xc8, 0x61, 0x4f, 0xc1, 0x47, 0xa7, 0xf5, 0xbc, 0xb7, 0x61, 0xfc, 0x29, 0xf8, 0xa0,
- 0x14, 0x84, 0xb0, 0x4c, 0xe9, 0xcd, 0x63, 0xfc, 0x1b, 0xba, 0x30, 0x84, 0x65, 0x0a, 0x21, 0x2c,
- 0x93, 0xdf, 0x39, 0xe6, 0xf8, 0x92, 0x4f, 0x08, 0x61, 0x99, 0xe4, 0x2d, 0x7c, 0x61, 0x6a, 0x4f,
- 0xe8, 0xc7, 0xfe, 0x4a, 0xbe, 0xeb, 0xa0, 0x83, 0x42, 0xdb, 0x2f, 0xe1, 0x09, 0xf8, 0xe7, 0x70,
- 0x9c, 0xf7, 0xfa, 0x86, 0x27, 0xe0, 0x9f, 0xba, 0x59, 0x1b, 0xd8, 0x67, 0xe3, 0x6a, 0xce, 0x8b,
- 0x16, 0xde, 0x06, 0xfa, 0xe7, 0xd6, 0x45, 0x7a, 0xc6, 0xef, 0xd2, 0x33, 0xee, 0x9d, 0xd2, 0xd6,
- 0xf5, 0x27, 0xe7, 0x86, 0xf6, 0xd7, 0xb9, 0xa1, 0x3d, 0x3d, 0x37, 0xb4, 0x9f, 0x16, 0x86, 0xf6,
- 0xcb, 0xc2, 0xd0, 0x7e, 0x5d, 0x18, 0xda, 0xe3, 0x85, 0x51, 0xf8, 0x6d, 0x61, 0x14, 0x9e, 0x2c,
- 0x0c, 0xed, 0xe9, 0xc2, 0x28, 0x7c, 0xf7, 0xa7, 0x51, 0x18, 0xac, 0xd3, 0x57, 0xb1, 0xfe, 0x0b,
- 0x00, 0x00, 0xff, 0xff, 0xd9, 0x80, 0xa9, 0x4d, 0x81, 0x20, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.pb.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.pb.go
index f3dd6b1ec9..f4c1ae0a20 100644
--- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.pb.go
@@ -3,29 +3,25 @@
package theproto3
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import both "github.com/gogo/protobuf/test/combos/both"
-
-import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strconv "strconv"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-
-import encoding_binary "encoding/binary"
-
-import io "io"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ both "github.com/gogo/protobuf/test/combos/both"
+ github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strconv "strconv"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -51,6 +47,7 @@ var MapEnum_name = map[int32]string{
1: "MB",
2: "MC",
}
+
var MapEnum_value = map[string]int32{
"MA": 0,
"MB": 1,
@@ -58,7 +55,7 @@ var MapEnum_value = map[string]int32{
}
func (MapEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_4dec23a2a081e9e0, []int{0}
+ return fileDescriptor_198d1a76dbed8ec1, []int{0}
}
type Message_Humour int32
@@ -76,6 +73,7 @@ var Message_Humour_name = map[int32]string{
2: "SLAPSTICK",
3: "BILL_BAILEY",
}
+
var Message_Humour_value = map[string]int32{
"UNKNOWN": 0,
"PUNS": 1,
@@ -84,7 +82,7 @@ var Message_Humour_value = map[string]int32{
}
func (Message_Humour) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_4dec23a2a081e9e0, []int{0, 0}
+ return fileDescriptor_198d1a76dbed8ec1, []int{0, 0}
}
type Message struct {
@@ -108,7 +106,7 @@ type Message struct {
func (m *Message) Reset() { *m = Message{} }
func (*Message) ProtoMessage() {}
func (*Message) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_4dec23a2a081e9e0, []int{0}
+ return fileDescriptor_198d1a76dbed8ec1, []int{0}
}
func (m *Message) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -125,8 +123,8 @@ func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Message) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Message.Merge(dst, src)
+func (m *Message) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Message.Merge(m, src)
}
func (m *Message) XXX_Size() int {
return m.Size()
@@ -147,7 +145,7 @@ type Nested struct {
func (m *Nested) Reset() { *m = Nested{} }
func (*Nested) ProtoMessage() {}
func (*Nested) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_4dec23a2a081e9e0, []int{1}
+ return fileDescriptor_198d1a76dbed8ec1, []int{1}
}
func (m *Nested) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -164,8 +162,8 @@ func (m *Nested) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Nested) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Nested.Merge(dst, src)
+func (m *Nested) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Nested.Merge(m, src)
}
func (m *Nested) XXX_Size() int {
return m.Size()
@@ -202,7 +200,7 @@ type AllMaps struct {
func (m *AllMaps) Reset() { *m = AllMaps{} }
func (*AllMaps) ProtoMessage() {}
func (*AllMaps) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_4dec23a2a081e9e0, []int{2}
+ return fileDescriptor_198d1a76dbed8ec1, []int{2}
}
func (m *AllMaps) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -219,8 +217,8 @@ func (m *AllMaps) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *AllMaps) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllMaps.Merge(dst, src)
+func (m *AllMaps) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllMaps.Merge(m, src)
}
func (m *AllMaps) XXX_Size() int {
return m.Size()
@@ -257,7 +255,7 @@ type AllMapsOrdered struct {
func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} }
func (*AllMapsOrdered) ProtoMessage() {}
func (*AllMapsOrdered) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_4dec23a2a081e9e0, []int{3}
+ return fileDescriptor_198d1a76dbed8ec1, []int{3}
}
func (m *AllMapsOrdered) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -270,8 +268,8 @@ func (m *AllMapsOrdered) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro
}
return b[:n], nil
}
-func (dst *AllMapsOrdered) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllMapsOrdered.Merge(dst, src)
+func (m *AllMapsOrdered) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllMapsOrdered.Merge(m, src)
}
func (m *AllMapsOrdered) XXX_Size() int {
return m.Size()
@@ -294,7 +292,7 @@ type MessageWithMap struct {
func (m *MessageWithMap) Reset() { *m = MessageWithMap{} }
func (*MessageWithMap) ProtoMessage() {}
func (*MessageWithMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_4dec23a2a081e9e0, []int{4}
+ return fileDescriptor_198d1a76dbed8ec1, []int{4}
}
func (m *MessageWithMap) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -311,8 +309,8 @@ func (m *MessageWithMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro
return b[:n], nil
}
}
-func (dst *MessageWithMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MessageWithMap.Merge(dst, src)
+func (m *MessageWithMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MessageWithMap.Merge(m, src)
}
func (m *MessageWithMap) XXX_Size() int {
return m.Size()
@@ -333,7 +331,7 @@ type FloatingPoint struct {
func (m *FloatingPoint) Reset() { *m = FloatingPoint{} }
func (*FloatingPoint) ProtoMessage() {}
func (*FloatingPoint) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_4dec23a2a081e9e0, []int{5}
+ return fileDescriptor_198d1a76dbed8ec1, []int{5}
}
func (m *FloatingPoint) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -350,8 +348,8 @@ func (m *FloatingPoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
return b[:n], nil
}
}
-func (dst *FloatingPoint) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FloatingPoint.Merge(dst, src)
+func (m *FloatingPoint) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FloatingPoint.Merge(m, src)
}
func (m *FloatingPoint) XXX_Size() int {
return m.Size()
@@ -373,7 +371,7 @@ type Uint128Pair struct {
func (m *Uint128Pair) Reset() { *m = Uint128Pair{} }
func (*Uint128Pair) ProtoMessage() {}
func (*Uint128Pair) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_4dec23a2a081e9e0, []int{6}
+ return fileDescriptor_198d1a76dbed8ec1, []int{6}
}
func (m *Uint128Pair) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -390,8 +388,8 @@ func (m *Uint128Pair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *Uint128Pair) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Uint128Pair.Merge(dst, src)
+func (m *Uint128Pair) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Uint128Pair.Merge(m, src)
}
func (m *Uint128Pair) XXX_Size() int {
return m.Size()
@@ -411,7 +409,7 @@ type ContainsNestedMap struct {
func (m *ContainsNestedMap) Reset() { *m = ContainsNestedMap{} }
func (*ContainsNestedMap) ProtoMessage() {}
func (*ContainsNestedMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_4dec23a2a081e9e0, []int{7}
+ return fileDescriptor_198d1a76dbed8ec1, []int{7}
}
func (m *ContainsNestedMap) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -428,8 +426,8 @@ func (m *ContainsNestedMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
-func (dst *ContainsNestedMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ContainsNestedMap.Merge(dst, src)
+func (m *ContainsNestedMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ContainsNestedMap.Merge(m, src)
}
func (m *ContainsNestedMap) XXX_Size() int {
return m.Size()
@@ -450,7 +448,7 @@ type ContainsNestedMap_NestedMap struct {
func (m *ContainsNestedMap_NestedMap) Reset() { *m = ContainsNestedMap_NestedMap{} }
func (*ContainsNestedMap_NestedMap) ProtoMessage() {}
func (*ContainsNestedMap_NestedMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_4dec23a2a081e9e0, []int{7, 0}
+ return fileDescriptor_198d1a76dbed8ec1, []int{7, 0}
}
func (m *ContainsNestedMap_NestedMap) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -467,8 +465,8 @@ func (m *ContainsNestedMap_NestedMap) XXX_Marshal(b []byte, deterministic bool)
return b[:n], nil
}
}
-func (dst *ContainsNestedMap_NestedMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ContainsNestedMap_NestedMap.Merge(dst, src)
+func (m *ContainsNestedMap_NestedMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ContainsNestedMap_NestedMap.Merge(m, src)
}
func (m *ContainsNestedMap_NestedMap) XXX_Size() int {
return m.Size()
@@ -489,7 +487,7 @@ type NotPacked struct {
func (m *NotPacked) Reset() { *m = NotPacked{} }
func (*NotPacked) ProtoMessage() {}
func (*NotPacked) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_4dec23a2a081e9e0, []int{8}
+ return fileDescriptor_198d1a76dbed8ec1, []int{8}
}
func (m *NotPacked) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -506,8 +504,8 @@ func (m *NotPacked) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *NotPacked) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NotPacked.Merge(dst, src)
+func (m *NotPacked) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NotPacked.Merge(m, src)
}
func (m *NotPacked) XXX_Size() int {
return m.Size()
@@ -519,6 +517,8 @@ func (m *NotPacked) XXX_DiscardUnknown() {
var xxx_messageInfo_NotPacked proto.InternalMessageInfo
func init() {
+ proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value)
+ proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value)
proto.RegisterType((*Message)(nil), "theproto3.Message")
proto.RegisterMapType((map[int64]*both.NinOptEnum)(nil), "theproto3.Message.Proto2ValueEntry")
proto.RegisterMapType((map[int64]*Nested)(nil), "theproto3.Message.TerrainEntry")
@@ -569,9 +569,115 @@ func init() {
proto.RegisterType((*ContainsNestedMap_NestedMap)(nil), "theproto3.ContainsNestedMap.NestedMap")
proto.RegisterMapType((map[string]float64)(nil), "theproto3.ContainsNestedMap.NestedMap.NestedMapFieldEntry")
proto.RegisterType((*NotPacked)(nil), "theproto3.NotPacked")
- proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value)
- proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value)
}
+
+func init() { proto.RegisterFile("combos/both/theproto3.proto", fileDescriptor_198d1a76dbed8ec1) }
+
+var fileDescriptor_198d1a76dbed8ec1 = []byte{
+ // 1602 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x99, 0xcf, 0x6f, 0xdb, 0x46,
+ 0x16, 0xc7, 0x35, 0xfa, 0xad, 0xa7, 0x1f, 0xa6, 0x27, 0xd9, 0x85, 0xd6, 0x8b, 0xa5, 0x65, 0x05,
+ 0x48, 0x94, 0x60, 0x23, 0x67, 0x9d, 0x64, 0x37, 0xeb, 0xa6, 0x4d, 0x2d, 0xc5, 0x42, 0xdc, 0xd8,
+ 0x8a, 0x2b, 0xd9, 0x71, 0x8b, 0x00, 0x35, 0x28, 0x9b, 0x96, 0x88, 0x48, 0xa4, 0x21, 0x8e, 0x82,
+ 0xfa, 0x96, 0x3f, 0xa3, 0xb7, 0xa2, 0xb7, 0x1e, 0x8b, 0x1c, 0x8a, 0x1e, 0xdb, 0x9b, 0x8f, 0x01,
+ 0x7a, 0x29, 0x7a, 0x08, 0x62, 0xf5, 0x92, 0x63, 0x8e, 0x39, 0x16, 0x33, 0x43, 0x49, 0x23, 0x72,
+ 0x28, 0x36, 0xbd, 0xf4, 0xe2, 0x93, 0x38, 0xcf, 0xef, 0xfb, 0x99, 0xc7, 0xe1, 0xcc, 0xe3, 0x17,
+ 0x34, 0xfc, 0xf3, 0xc0, 0xea, 0xb5, 0x2c, 0x7b, 0xb9, 0x65, 0x91, 0xce, 0x32, 0xe9, 0xe8, 0xc7,
+ 0x7d, 0x8b, 0x58, 0x37, 0xcb, 0xec, 0x07, 0xa7, 0xc6, 0x81, 0x85, 0xeb, 0x6d, 0x83, 0x74, 0x06,
+ 0xad, 0xf2, 0x81, 0xd5, 0x5b, 0x6e, 0x5b, 0x6d, 0x6b, 0x99, 0xc5, 0x5b, 0x83, 0x23, 0x36, 0x62,
+ 0x03, 0x76, 0xc5, 0x95, 0x0b, 0xff, 0xf3, 0x4d, 0x27, 0xba, 0x4d, 0x96, 0x5d, 0x93, 0xd2, 0x18,
+ 0x17, 0x16, 0x7f, 0x8a, 0x41, 0x62, 0x4b, 0xb7, 0x6d, 0xad, 0xad, 0x63, 0x0c, 0x51, 0x53, 0xeb,
+ 0xe9, 0x79, 0x54, 0x40, 0xa5, 0x54, 0x83, 0x5d, 0xe3, 0xdb, 0x90, 0xec, 0x18, 0x5d, 0xad, 0x6f,
+ 0x90, 0x93, 0x7c, 0xb8, 0x80, 0x4a, 0xb9, 0x95, 0x7f, 0x94, 0x27, 0x65, 0x3b, 0xca, 0xf2, 0x83,
+ 0x41, 0xcf, 0x1a, 0xf4, 0x1b, 0xe3, 0x54, 0x5c, 0x80, 0x4c, 0x47, 0x37, 0xda, 0x1d, 0xb2, 0x6f,
+ 0x98, 0xfb, 0x07, 0xbd, 0x7c, 0xa4, 0x80, 0x4a, 0xd9, 0x06, 0xf0, 0xd8, 0x86, 0x59, 0xed, 0xd1,
+ 0xc9, 0x0e, 0x35, 0xa2, 0xe5, 0xa3, 0x05, 0x54, 0xca, 0x34, 0xd8, 0x35, 0x5e, 0x82, 0x4c, 0x5f,
+ 0xb7, 0x07, 0x5d, 0xb2, 0x7f, 0x60, 0x0d, 0x4c, 0x92, 0x4f, 0x14, 0x50, 0x29, 0xd2, 0x48, 0xf3,
+ 0x58, 0x95, 0x86, 0xf0, 0x25, 0xc8, 0x92, 0xfe, 0x40, 0xdf, 0xb7, 0x0f, 0x2c, 0x62, 0xf7, 0x34,
+ 0x33, 0x9f, 0x2c, 0xa0, 0x52, 0xb2, 0x91, 0xa1, 0xc1, 0xa6, 0x13, 0xc3, 0x17, 0x21, 0x66, 0x1f,
+ 0x58, 0x7d, 0x3d, 0x9f, 0x2a, 0xa0, 0x52, 0xb8, 0xc1, 0x07, 0x58, 0x81, 0xc8, 0x53, 0xfd, 0x24,
+ 0x1f, 0x2b, 0x44, 0x4a, 0xd1, 0x06, 0xbd, 0xc4, 0x57, 0x21, 0x6e, 0xea, 0x36, 0xd1, 0x0f, 0xf3,
+ 0xf1, 0x02, 0x2a, 0xa5, 0x57, 0xe6, 0x85, 0x5b, 0xab, 0xb3, 0x3f, 0x34, 0x9c, 0x04, 0xfc, 0x7f,
+ 0x48, 0x10, 0xbd, 0xdf, 0xd7, 0x0c, 0x33, 0x0f, 0x85, 0x48, 0x29, 0xbd, 0xb2, 0x28, 0x59, 0x86,
+ 0x1d, 0x9e, 0xb1, 0x6e, 0x92, 0xfe, 0x49, 0x63, 0x94, 0x8f, 0x6f, 0x43, 0x86, 0xe5, 0xad, 0xec,
+ 0x1f, 0x19, 0x7a, 0xf7, 0x30, 0x9f, 0x66, 0x73, 0xe1, 0x32, 0x7b, 0x0a, 0x75, 0xc3, 0x7c, 0x74,
+ 0x4c, 0xea, 0x1a, 0x31, 0x9e, 0xe9, 0x8d, 0x34, 0xcf, 0xab, 0xd1, 0x34, 0x5c, 0x1b, 0xcb, 0x9e,
+ 0x69, 0xdd, 0x81, 0x9e, 0xcf, 0xb2, 0x69, 0x2f, 0x49, 0xa6, 0xdd, 0x66, 0x69, 0x8f, 0x69, 0x16,
+ 0x9f, 0xda, 0xe1, 0xb0, 0xc8, 0xc2, 0x16, 0x64, 0xc4, 0xba, 0x46, 0xcb, 0x80, 0xd8, 0xda, 0xb2,
+ 0x65, 0xb8, 0x02, 0x31, 0x3e, 0x45, 0xd8, 0x6f, 0x15, 0xf8, 0xdf, 0x57, 0xc3, 0x77, 0xd0, 0xc2,
+ 0x36, 0x28, 0xee, 0xf9, 0x24, 0xc8, 0xcb, 0xd3, 0x48, 0x45, 0xbc, 0xd9, 0x75, 0x73, 0xd0, 0x13,
+ 0x88, 0xc5, 0x7b, 0x10, 0xe7, 0xfb, 0x07, 0xa7, 0x21, 0xb1, 0x5b, 0x7f, 0x58, 0x7f, 0xb4, 0x57,
+ 0x57, 0x42, 0x38, 0x09, 0xd1, 0xed, 0xdd, 0x7a, 0x53, 0x41, 0x38, 0x0b, 0xa9, 0xe6, 0xe6, 0xda,
+ 0x76, 0x73, 0x67, 0xa3, 0xfa, 0x50, 0x09, 0xe3, 0x39, 0x48, 0x57, 0x36, 0x36, 0x37, 0xf7, 0x2b,
+ 0x6b, 0x1b, 0x9b, 0xeb, 0x9f, 0x2b, 0x91, 0xa2, 0x0a, 0x71, 0x5e, 0x27, 0x7d, 0xf0, 0xad, 0x81,
+ 0x69, 0x9e, 0x38, 0x5b, 0x98, 0x0f, 0x8a, 0x2f, 0x30, 0x24, 0xd6, 0xba, 0xdd, 0x2d, 0xed, 0xd8,
+ 0xc6, 0x7b, 0x30, 0xdf, 0x24, 0x7d, 0xc3, 0x6c, 0xef, 0x58, 0xf7, 0xad, 0x41, 0xab, 0xab, 0x6f,
+ 0x69, 0xc7, 0x79, 0xc4, 0x96, 0xf6, 0xaa, 0x70, 0xdf, 0x4e, 0x7a, 0xd9, 0x93, 0xcb, 0x17, 0xd8,
+ 0xcb, 0xc0, 0x3b, 0xa0, 0x8c, 0x82, 0xb5, 0xae, 0xa5, 0x11, 0xca, 0x0d, 0x33, 0x6e, 0x69, 0x06,
+ 0x77, 0x94, 0xca, 0xb1, 0x1e, 0x02, 0xbe, 0x0b, 0xc9, 0x0d, 0x93, 0xdc, 0x5c, 0xa1, 0xb4, 0x08,
+ 0xa3, 0x15, 0x24, 0xb4, 0x51, 0x0a, 0xa7, 0x8c, 0x15, 0x8e, 0xfa, 0xbf, 0xb7, 0xa8, 0x3a, 0x3a,
+ 0x4b, 0xcd, 0x52, 0x26, 0x6a, 0x36, 0xc4, 0xf7, 0x20, 0xb5, 0x6b, 0x8c, 0x26, 0x8f, 0x31, 0xf9,
+ 0x92, 0x44, 0x3e, 0xce, 0xe1, 0xfa, 0x89, 0x66, 0x04, 0xe0, 0xf3, 0xc7, 0x67, 0x02, 0x84, 0x02,
+ 0x26, 0x1a, 0x0a, 0x68, 0x8e, 0x2b, 0x48, 0xf8, 0x02, 0x9a, 0xae, 0x0a, 0x9a, 0x62, 0x05, 0xcd,
+ 0x71, 0x05, 0xc9, 0x99, 0x00, 0xb1, 0x82, 0xf1, 0x18, 0x57, 0x00, 0x6a, 0xc6, 0x97, 0xfa, 0x21,
+ 0x2f, 0x21, 0xc5, 0x08, 0x45, 0x09, 0x61, 0x92, 0xc4, 0x11, 0x82, 0x0a, 0xaf, 0x43, 0xba, 0x79,
+ 0x34, 0x81, 0x80, 0xe7, 0x1c, 0x8f, 0xcb, 0x38, 0x72, 0x51, 0x44, 0xdd, 0xb8, 0x14, 0x7e, 0x33,
+ 0xe9, 0xd9, 0xa5, 0x08, 0x77, 0x23, 0xa8, 0x26, 0xa5, 0x70, 0x48, 0x26, 0xa0, 0x14, 0x81, 0x22,
+ 0xea, 0x68, 0x33, 0xac, 0x58, 0x16, 0xcd, 0x74, 0xba, 0xd2, 0xa2, 0x04, 0xe1, 0x64, 0x38, 0xcd,
+ 0xd0, 0x19, 0xb1, 0x27, 0xc2, 0x36, 0x39, 0x15, 0xe7, 0xfc, 0x9f, 0xc8, 0x28, 0x67, 0xf4, 0x44,
+ 0x46, 0x63, 0xf1, 0x9c, 0x55, 0x4e, 0x88, 0x6e, 0x53, 0xce, 0x5c, 0xe0, 0x39, 0x1b, 0xa5, 0xba,
+ 0xce, 0xd9, 0x28, 0x8c, 0x3f, 0x85, 0xb9, 0x51, 0x8c, 0xb6, 0x27, 0x0a, 0x55, 0x18, 0xf4, 0xca,
+ 0x0c, 0xa8, 0x93, 0xc9, 0x99, 0x6e, 0x3d, 0xae, 0x43, 0x6e, 0x14, 0xda, 0xb2, 0xd9, 0xed, 0xce,
+ 0x33, 0xe2, 0xe5, 0x19, 0x44, 0x9e, 0xc8, 0x81, 0x2e, 0xf5, 0xc2, 0x7d, 0xf8, 0xbb, 0xbc, 0x1b,
+ 0x89, 0xed, 0x37, 0xc5, 0xdb, 0xef, 0x45, 0xb1, 0xfd, 0x22, 0xb1, 0x7d, 0x57, 0xe1, 0x6f, 0xd2,
+ 0xde, 0x13, 0x04, 0x09, 0x8b, 0x90, 0x0f, 0x20, 0x3b, 0xd5, 0x72, 0x44, 0x71, 0x4c, 0x22, 0x8e,
+ 0x79, 0xc5, 0x93, 0xad, 0x25, 0x79, 0x7b, 0x4c, 0x89, 0x23, 0xa2, 0xf8, 0x2e, 0xe4, 0xa6, 0xfb,
+ 0x8d, 0xa8, 0xce, 0x4a, 0xd4, 0x59, 0x89, 0x5a, 0x3e, 0x77, 0x54, 0xa2, 0x8e, 0xba, 0xd4, 0x4d,
+ 0xdf, 0xb9, 0xe7, 0x25, 0xea, 0x79, 0x89, 0x5a, 0x3e, 0x37, 0x96, 0xa8, 0xb1, 0xa8, 0xfe, 0x10,
+ 0xe6, 0x5c, 0x2d, 0x46, 0x94, 0x27, 0x24, 0xf2, 0x84, 0x28, 0xff, 0x08, 0x14, 0x77, 0x73, 0x11,
+ 0xf5, 0x73, 0x12, 0xfd, 0x9c, 0x6c, 0x7a, 0x79, 0xf5, 0x71, 0x89, 0x3c, 0x2e, 0x9d, 0x5e, 0xae,
+ 0x57, 0x24, 0x7a, 0x45, 0xd4, 0xaf, 0x42, 0x46, 0xec, 0x26, 0xa2, 0x36, 0x29, 0xd1, 0x26, 0xdd,
+ 0xeb, 0x3e, 0xd5, 0x4c, 0x82, 0x76, 0x7a, 0xca, 0xe7, 0xb8, 0x4c, 0xb5, 0x90, 0x20, 0x48, 0x46,
+ 0x84, 0x3c, 0x86, 0x8b, 0xb2, 0x96, 0x21, 0x61, 0x94, 0x44, 0x46, 0x8e, 0x7a, 0xc4, 0x89, 0xd9,
+ 0xa3, 0xaa, 0x29, 0xe3, 0xb4, 0xf0, 0x04, 0x2e, 0x48, 0x1a, 0x87, 0x04, 0x5b, 0x9e, 0x76, 0x63,
+ 0x79, 0x01, 0xcb, 0x9a, 0x80, 0x61, 0xb6, 0xb7, 0x2d, 0xc3, 0x24, 0xa2, 0x2b, 0xfb, 0xfe, 0x02,
+ 0xe4, 0x9c, 0xf6, 0xf4, 0xa8, 0x7f, 0xa8, 0xf7, 0xf5, 0x43, 0xfc, 0x85, 0xbf, 0x77, 0xba, 0xe1,
+ 0x6d, 0x6a, 0x8e, 0xea, 0x3d, 0x2c, 0xd4, 0x13, 0x5f, 0x0b, 0xb5, 0x1c, 0x8c, 0x0f, 0x72, 0x52,
+ 0x55, 0x8f, 0x93, 0xba, 0xe2, 0x0f, 0xf5, 0x33, 0x54, 0x55, 0x8f, 0xa1, 0x9a, 0x0d, 0x91, 0xfa,
+ 0xaa, 0x9a, 0xd7, 0x57, 0x95, 0xfc, 0x29, 0xfe, 0xf6, 0xaa, 0xe6, 0xb5, 0x57, 0x01, 0x1c, 0xb9,
+ 0xcb, 0xaa, 0x79, 0x5d, 0xd6, 0x0c, 0x8e, 0xbf, 0xd9, 0xaa, 0x79, 0xcd, 0x56, 0x00, 0x47, 0xee,
+ 0xb9, 0x36, 0x24, 0x9e, 0xeb, 0xaa, 0x3f, 0x68, 0x96, 0xf5, 0xda, 0x94, 0x59, 0xaf, 0x6b, 0x33,
+ 0x8a, 0x9a, 0xe9, 0xc0, 0x36, 0x24, 0x0e, 0x2c, 0xa8, 0x30, 0x1f, 0x23, 0xb6, 0x29, 0x33, 0x62,
+ 0x81, 0x85, 0xf9, 0xf9, 0xb1, 0x8f, 0xdd, 0x7e, 0xec, 0xb2, 0x3f, 0x49, 0x6e, 0xcb, 0x6a, 0x5e,
+ 0x5b, 0x56, 0x0a, 0x3a, 0x73, 0x32, 0x77, 0xf6, 0xc4, 0xd7, 0x9d, 0xfd, 0x81, 0x23, 0x1c, 0x64,
+ 0xd2, 0x3e, 0xf3, 0x33, 0x69, 0xe5, 0x60, 0xf6, 0x6c, 0xaf, 0xb6, 0xeb, 0xe3, 0xd5, 0xae, 0x07,
+ 0x83, 0xcf, 0x2d, 0xdb, 0xb9, 0x65, 0x3b, 0xb7, 0x6c, 0xe7, 0x96, 0xed, 0xaf, 0xb7, 0x6c, 0xab,
+ 0xd1, 0xaf, 0xbe, 0x59, 0x44, 0xc5, 0x9f, 0x23, 0x90, 0x73, 0xbe, 0x0c, 0xee, 0x19, 0xa4, 0x43,
+ 0xdb, 0xdb, 0x16, 0x64, 0x4c, 0xad, 0xa7, 0xef, 0xf7, 0xb4, 0xe3, 0x63, 0xc3, 0x6c, 0x3b, 0x9e,
+ 0xed, 0x9a, 0xf7, 0x53, 0xa2, 0x23, 0x28, 0xd7, 0xb5, 0x1e, 0xed, 0x55, 0x34, 0xd9, 0x79, 0xdd,
+ 0x98, 0x93, 0x08, 0xfe, 0x04, 0xd2, 0x3d, 0xbb, 0x3d, 0xa6, 0x85, 0x3d, 0x2f, 0x42, 0x17, 0x8d,
+ 0xdf, 0xe9, 0x04, 0x06, 0xbd, 0x71, 0x80, 0x96, 0xd6, 0x3a, 0x21, 0x93, 0xd2, 0x22, 0x41, 0xa5,
+ 0xd1, 0x67, 0x3a, 0x5d, 0x5a, 0x6b, 0x12, 0xa1, 0xdb, 0xd6, 0x5d, 0x7b, 0x50, 0xa7, 0x9b, 0xda,
+ 0x3c, 0x7b, 0x30, 0xe7, 0xaa, 0x56, 0x72, 0xe6, 0xff, 0xc4, 0xb3, 0xa1, 0x85, 0xb9, 0x2b, 0x0f,
+ 0x3a, 0x13, 0xe2, 0x86, 0x2c, 0xfe, 0x0b, 0xb2, 0x53, 0x6c, 0x9c, 0x01, 0x74, 0xc4, 0xa4, 0xa8,
+ 0x81, 0x8e, 0x8a, 0x5f, 0x23, 0x48, 0xd3, 0x3e, 0xf9, 0x9f, 0x95, 0x3b, 0xdb, 0x9a, 0xd1, 0xc7,
+ 0x0f, 0x20, 0xda, 0xd5, 0x8f, 0x08, 0x4b, 0xc8, 0x54, 0x6e, 0x9d, 0xbe, 0x5a, 0x0c, 0xfd, 0xfa,
+ 0x6a, 0xf1, 0xdf, 0x01, 0xff, 0x25, 0x18, 0xd8, 0xc4, 0xea, 0x95, 0x1d, 0x4e, 0x83, 0x11, 0x70,
+ 0x0d, 0x62, 0x7d, 0xa3, 0xdd, 0x21, 0xbc, 0xa4, 0xca, 0x8d, 0xf7, 0xc6, 0x70, 0x79, 0xf1, 0x14,
+ 0xc1, 0x7c, 0xd5, 0x32, 0x89, 0x66, 0x98, 0x36, 0xff, 0x5a, 0x4b, 0xdf, 0x90, 0x2f, 0x10, 0xa4,
+ 0xc6, 0x23, 0xdc, 0x82, 0xdc, 0x78, 0xc0, 0x3e, 0x82, 0x3b, 0x3b, 0x75, 0x55, 0x58, 0x61, 0x0f,
+ 0xa3, 0x2c, 0xb9, 0x62, 0x62, 0xe7, 0x9d, 0x3c, 0x1d, 0x5c, 0x58, 0x83, 0x0b, 0x92, 0xb4, 0xf7,
+ 0x79, 0x21, 0x17, 0x97, 0x20, 0x55, 0xb7, 0xc8, 0xb6, 0x76, 0xf0, 0x94, 0x7d, 0x72, 0x9e, 0xfc,
+ 0x57, 0xa1, 0x12, 0x56, 0x42, 0x4c, 0x7c, 0x6d, 0x09, 0x12, 0xce, 0xe9, 0xc7, 0x71, 0x08, 0x6f,
+ 0xad, 0x29, 0x21, 0xf6, 0x5b, 0x51, 0x10, 0xfb, 0xad, 0x2a, 0xe1, 0xca, 0xe6, 0xe9, 0x99, 0x1a,
+ 0x7a, 0x79, 0xa6, 0x86, 0x7e, 0x39, 0x53, 0x43, 0xaf, 0xcf, 0x54, 0xf4, 0xe6, 0x4c, 0x45, 0x6f,
+ 0xcf, 0x54, 0xf4, 0xee, 0x4c, 0x45, 0xcf, 0x87, 0x2a, 0xfa, 0x76, 0xa8, 0xa2, 0xef, 0x86, 0x2a,
+ 0xfa, 0x61, 0xa8, 0xa2, 0x1f, 0x87, 0x2a, 0x3a, 0x1d, 0xaa, 0xe8, 0xe5, 0x50, 0x45, 0xaf, 0x87,
+ 0x2a, 0x7a, 0x33, 0x54, 0x43, 0x6f, 0x87, 0x2a, 0x7a, 0x37, 0x54, 0x43, 0xcf, 0x7f, 0x53, 0x43,
+ 0xad, 0x38, 0x5f, 0x9e, 0xdf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xea, 0x4a, 0x44, 0x79, 0x60, 0x1a,
+ 0x00, 0x00,
+}
+
func (this *Message) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return Theproto3Description()
}
@@ -605,511 +711,513 @@ func (this *NotPacked) Description() (desc *github_com_gogo_protobuf_protoc_gen_
func Theproto3Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 8053 bytes of a gzipped FileDescriptorSet
+ // 8086 bytes of a gzipped FileDescriptorSet
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x70, 0x23, 0xd7,
- 0x99, 0xde, 0x34, 0x1a, 0x24, 0xc1, 0x1f, 0x20, 0xd9, 0x6c, 0xce, 0x50, 0x10, 0x35, 0x22, 0x67,
- 0xa0, 0xd1, 0x88, 0xa2, 0x2d, 0x0e, 0x87, 0xc3, 0xb9, 0x61, 0x2c, 0x69, 0x01, 0x10, 0x1c, 0x71,
+ 0x99, 0xde, 0x34, 0x1a, 0x20, 0x81, 0x1f, 0x20, 0xd9, 0x6c, 0xce, 0x50, 0x10, 0x35, 0x22, 0x67,
+ 0xa0, 0xd1, 0x88, 0xa2, 0x25, 0x0e, 0x87, 0xc3, 0xb9, 0x61, 0x2c, 0x69, 0x01, 0x10, 0x1c, 0x71,
0x4c, 0x82, 0x74, 0x93, 0xb4, 0x34, 0x56, 0x12, 0x54, 0x13, 0x68, 0x92, 0x90, 0x80, 0x6e, 0x2c,
- 0xba, 0x21, 0x89, 0xaa, 0x54, 0x4a, 0x59, 0x27, 0x1b, 0x6f, 0x52, 0xb9, 0x6e, 0x52, 0xf1, 0x3a,
- 0xbe, 0xc8, 0xbb, 0xb5, 0x6b, 0xef, 0xe6, 0xe6, 0xf5, 0x6e, 0x9c, 0x5d, 0x27, 0x95, 0x55, 0x1e,
- 0x9c, 0x4c, 0x5e, 0x52, 0xde, 0xe4, 0x25, 0xe5, 0x4a, 0xa9, 0xac, 0xb1, 0x53, 0x71, 0x12, 0x27,
- 0xeb, 0x6c, 0x54, 0x15, 0x57, 0x79, 0x1f, 0xb6, 0xce, 0xad, 0xfb, 0x9c, 0xd3, 0x0d, 0x34, 0x38,
- 0x92, 0xec, 0x7d, 0xd0, 0xcb, 0x0c, 0xfa, 0x9c, 0xff, 0xfb, 0xfa, 0xef, 0xff, 0x76, 0xfe, 0xee,
- 0xd3, 0x00, 0xe1, 0x8f, 0x6e, 0xc2, 0xb9, 0x43, 0xc7, 0x39, 0x6c, 0x5a, 0x97, 0xda, 0x1d, 0xc7,
- 0x73, 0xf6, 0xbb, 0x07, 0x97, 0xea, 0x96, 0x5b, 0xeb, 0x34, 0xda, 0x9e, 0xd3, 0x59, 0xc4, 0x63,
- 0xfa, 0x04, 0x91, 0x58, 0x64, 0x12, 0xb9, 0x4d, 0x98, 0x5c, 0x6b, 0x34, 0xad, 0x55, 0x5f, 0x70,
- 0xc7, 0xf2, 0xf4, 0x1b, 0x90, 0x3c, 0x68, 0x34, 0xad, 0xac, 0x72, 0x4e, 0x9d, 0x4f, 0x2f, 0x5f,
- 0x58, 0x94, 0x40, 0x8b, 0x22, 0x62, 0x1b, 0x0d, 0x1b, 0x18, 0x91, 0xfb, 0x7e, 0x12, 0xa6, 0x22,
- 0x66, 0x75, 0x1d, 0x92, 0xb6, 0xd9, 0x42, 0x8c, 0xca, 0xfc, 0xa8, 0x81, 0x3f, 0xeb, 0x59, 0x18,
- 0x69, 0x9b, 0xb5, 0x97, 0xcd, 0x43, 0x2b, 0x9b, 0xc0, 0xc3, 0xec, 0x50, 0x9f, 0x05, 0xa8, 0x5b,
- 0x6d, 0xcb, 0xae, 0x5b, 0x76, 0xed, 0x38, 0xab, 0x9e, 0x53, 0xe7, 0x47, 0x0d, 0x6e, 0x44, 0xff,
- 0x08, 0x4c, 0xb6, 0xbb, 0xfb, 0xcd, 0x46, 0xad, 0xca, 0x89, 0xc1, 0x39, 0x75, 0x7e, 0xc8, 0xd0,
- 0xc8, 0xc4, 0x6a, 0x20, 0xfc, 0x04, 0x4c, 0xbc, 0x6a, 0x99, 0x2f, 0xf3, 0xa2, 0x69, 0x2c, 0x3a,
- 0x8e, 0x86, 0x39, 0xc1, 0x12, 0x64, 0x5a, 0x96, 0xeb, 0x9a, 0x87, 0x56, 0xd5, 0x3b, 0x6e, 0x5b,
- 0xd9, 0x24, 0xbe, 0xfa, 0x73, 0xa1, 0xab, 0x97, 0xaf, 0x3c, 0x4d, 0x51, 0xbb, 0xc7, 0x6d, 0x4b,
- 0x2f, 0xc0, 0xa8, 0x65, 0x77, 0x5b, 0x84, 0x61, 0xa8, 0x87, 0xfd, 0xca, 0x76, 0xb7, 0x25, 0xb3,
- 0xa4, 0x10, 0x8c, 0x52, 0x8c, 0xb8, 0x56, 0xe7, 0x95, 0x46, 0xcd, 0xca, 0x0e, 0x63, 0x82, 0x27,
- 0x42, 0x04, 0x3b, 0x64, 0x5e, 0xe6, 0x60, 0x38, 0xbd, 0x04, 0xa3, 0xd6, 0x6b, 0x9e, 0x65, 0xbb,
- 0x0d, 0xc7, 0xce, 0x8e, 0x60, 0x92, 0xc7, 0x23, 0xbc, 0x68, 0x35, 0xeb, 0x32, 0x45, 0x80, 0xd3,
- 0xaf, 0xc1, 0x88, 0xd3, 0xf6, 0x1a, 0x8e, 0xed, 0x66, 0x53, 0xe7, 0x94, 0xf9, 0xf4, 0xf2, 0xd9,
- 0xc8, 0x40, 0xd8, 0x22, 0x32, 0x06, 0x13, 0xd6, 0xd7, 0x41, 0x73, 0x9d, 0x6e, 0xa7, 0x66, 0x55,
- 0x6b, 0x4e, 0xdd, 0xaa, 0x36, 0xec, 0x03, 0x27, 0x3b, 0x8a, 0x09, 0xe6, 0xc2, 0x17, 0x82, 0x05,
- 0x4b, 0x4e, 0xdd, 0x5a, 0xb7, 0x0f, 0x1c, 0x63, 0xdc, 0x15, 0x8e, 0xf5, 0x69, 0x18, 0x76, 0x8f,
- 0x6d, 0xcf, 0x7c, 0x2d, 0x9b, 0xc1, 0x11, 0x42, 0x8f, 0x72, 0xbf, 0x3f, 0x0c, 0x13, 0x83, 0x84,
- 0xd8, 0x2d, 0x18, 0x3a, 0x40, 0x57, 0x99, 0x4d, 0x9c, 0xc4, 0x06, 0x04, 0x23, 0x1a, 0x71, 0xf8,
- 0x01, 0x8d, 0x58, 0x80, 0xb4, 0x6d, 0xb9, 0x9e, 0x55, 0x27, 0x11, 0xa1, 0x0e, 0x18, 0x53, 0x40,
- 0x40, 0xe1, 0x90, 0x4a, 0x3e, 0x50, 0x48, 0xbd, 0x00, 0x13, 0xbe, 0x4a, 0xd5, 0x8e, 0x69, 0x1f,
- 0xb2, 0xd8, 0xbc, 0x14, 0xa7, 0xc9, 0x62, 0x99, 0xe1, 0x0c, 0x04, 0x33, 0xc6, 0x2d, 0xe1, 0x58,
- 0x5f, 0x05, 0x70, 0x6c, 0xcb, 0x39, 0xa8, 0xd6, 0xad, 0x5a, 0x33, 0x9b, 0xea, 0x61, 0xa5, 0x2d,
- 0x24, 0x12, 0xb2, 0x92, 0x43, 0x46, 0x6b, 0x4d, 0xfd, 0x66, 0x10, 0x6a, 0x23, 0x3d, 0x22, 0x65,
- 0x93, 0x24, 0x59, 0x28, 0xda, 0xf6, 0x60, 0xbc, 0x63, 0xa1, 0xb8, 0xb7, 0xea, 0xf4, 0xca, 0x46,
- 0xb1, 0x12, 0x8b, 0xb1, 0x57, 0x66, 0x50, 0x18, 0xb9, 0xb0, 0xb1, 0x0e, 0x7f, 0xa8, 0x3f, 0x06,
- 0xfe, 0x40, 0x15, 0x87, 0x15, 0xe0, 0x2a, 0x94, 0x61, 0x83, 0x15, 0xb3, 0x65, 0xcd, 0xbc, 0x0e,
- 0xe3, 0xa2, 0x79, 0xf4, 0xd3, 0x30, 0xe4, 0x7a, 0x66, 0xc7, 0xc3, 0x51, 0x38, 0x64, 0x90, 0x03,
- 0x5d, 0x03, 0xd5, 0xb2, 0xeb, 0xb8, 0xca, 0x0d, 0x19, 0xe8, 0xa3, 0xfe, 0x73, 0xc1, 0x05, 0xab,
- 0xf8, 0x82, 0x2f, 0x86, 0x3d, 0x2a, 0x30, 0xcb, 0xd7, 0x3d, 0x73, 0x1d, 0xc6, 0x84, 0x0b, 0x18,
- 0xf4, 0xd4, 0xb9, 0xbf, 0x08, 0x67, 0x22, 0xa9, 0xf5, 0x17, 0xe0, 0x74, 0xd7, 0x6e, 0xd8, 0x9e,
- 0xd5, 0x69, 0x77, 0x2c, 0x14, 0xb1, 0xe4, 0x54, 0xd9, 0xff, 0x3e, 0xd2, 0x23, 0xe6, 0xf6, 0x78,
- 0x69, 0xc2, 0x62, 0x4c, 0x75, 0xc3, 0x83, 0x0b, 0xa3, 0xa9, 0x1f, 0x8c, 0x68, 0x6f, 0xbc, 0xf1,
- 0xc6, 0x1b, 0x89, 0xdc, 0x67, 0x87, 0xe1, 0x74, 0x54, 0xce, 0x44, 0xa6, 0xef, 0x34, 0x0c, 0xdb,
- 0xdd, 0xd6, 0xbe, 0xd5, 0xc1, 0x46, 0x1a, 0x32, 0xe8, 0x91, 0x5e, 0x80, 0xa1, 0xa6, 0xb9, 0x6f,
- 0x35, 0xb3, 0xc9, 0x73, 0xca, 0xfc, 0xf8, 0xf2, 0x47, 0x06, 0xca, 0xca, 0xc5, 0x0d, 0x04, 0x31,
- 0x08, 0x52, 0x7f, 0x06, 0x92, 0xb4, 0x44, 0x23, 0x86, 0x85, 0xc1, 0x18, 0x50, 0x2e, 0x19, 0x18,
- 0xa7, 0x3f, 0x02, 0xa3, 0xe8, 0x7f, 0x12, 0x1b, 0xc3, 0x58, 0xe7, 0x14, 0x1a, 0x40, 0x71, 0xa1,
- 0xcf, 0x40, 0x0a, 0xa7, 0x49, 0xdd, 0x62, 0x4b, 0x9b, 0x7f, 0x8c, 0x02, 0xab, 0x6e, 0x1d, 0x98,
- 0xdd, 0xa6, 0x57, 0x7d, 0xc5, 0x6c, 0x76, 0x2d, 0x1c, 0xf0, 0xa3, 0x46, 0x86, 0x0e, 0x7e, 0x12,
- 0x8d, 0xe9, 0x73, 0x90, 0x26, 0x59, 0xd5, 0xb0, 0xeb, 0xd6, 0x6b, 0xb8, 0x7a, 0x0e, 0x19, 0x24,
- 0xd1, 0xd6, 0xd1, 0x08, 0x3a, 0xfd, 0x4b, 0xae, 0x63, 0xb3, 0xd0, 0xc4, 0xa7, 0x40, 0x03, 0xf8,
- 0xf4, 0xd7, 0xe5, 0xc2, 0xfd, 0x68, 0xf4, 0xe5, 0xc9, 0x31, 0x95, 0xfb, 0x46, 0x02, 0x92, 0xb8,
- 0x5e, 0x4c, 0x40, 0x7a, 0xf7, 0xee, 0x76, 0xb9, 0xba, 0xba, 0xb5, 0x57, 0xdc, 0x28, 0x6b, 0x8a,
- 0x3e, 0x0e, 0x80, 0x07, 0xd6, 0x36, 0xb6, 0x0a, 0xbb, 0x5a, 0xc2, 0x3f, 0x5e, 0xaf, 0xec, 0x5e,
- 0x5b, 0xd1, 0x54, 0x1f, 0xb0, 0x47, 0x06, 0x92, 0xbc, 0xc0, 0x95, 0x65, 0x6d, 0x48, 0xd7, 0x20,
- 0x43, 0x08, 0xd6, 0x5f, 0x28, 0xaf, 0x5e, 0x5b, 0xd1, 0x86, 0xc5, 0x91, 0x2b, 0xcb, 0xda, 0x88,
- 0x3e, 0x06, 0xa3, 0x78, 0xa4, 0xb8, 0xb5, 0xb5, 0xa1, 0xa5, 0x7c, 0xce, 0x9d, 0x5d, 0x63, 0xbd,
- 0x72, 0x5b, 0x1b, 0xf5, 0x39, 0x6f, 0x1b, 0x5b, 0x7b, 0xdb, 0x1a, 0xf8, 0x0c, 0x9b, 0xe5, 0x9d,
- 0x9d, 0xc2, 0xed, 0xb2, 0x96, 0xf6, 0x25, 0x8a, 0x77, 0x77, 0xcb, 0x3b, 0x5a, 0x46, 0x50, 0xeb,
- 0xca, 0xb2, 0x36, 0xe6, 0x9f, 0xa2, 0x5c, 0xd9, 0xdb, 0xd4, 0xc6, 0xf5, 0x49, 0x18, 0x23, 0xa7,
- 0x60, 0x4a, 0x4c, 0x48, 0x43, 0xd7, 0x56, 0x34, 0x2d, 0x50, 0x84, 0xb0, 0x4c, 0x0a, 0x03, 0xd7,
- 0x56, 0x34, 0x3d, 0x57, 0x82, 0x21, 0x1c, 0x5d, 0xba, 0x0e, 0xe3, 0x1b, 0x85, 0x62, 0x79, 0xa3,
- 0xba, 0xb5, 0xbd, 0xbb, 0xbe, 0x55, 0x29, 0x6c, 0x68, 0x4a, 0x30, 0x66, 0x94, 0x3f, 0xb1, 0xb7,
- 0x6e, 0x94, 0x57, 0xb5, 0x04, 0x3f, 0xb6, 0x5d, 0x2e, 0xec, 0x96, 0x57, 0x35, 0x35, 0x57, 0x83,
- 0xd3, 0x51, 0x75, 0x32, 0x32, 0x33, 0x38, 0x17, 0x27, 0x7a, 0xb8, 0x18, 0x73, 0x85, 0x5c, 0xfc,
- 0xbd, 0x04, 0x4c, 0x45, 0xac, 0x15, 0x91, 0x27, 0x79, 0x16, 0x86, 0x48, 0x88, 0x92, 0xd5, 0xf3,
- 0xc9, 0xc8, 0x45, 0x07, 0x07, 0x6c, 0x68, 0x05, 0xc5, 0x38, 0xbe, 0x83, 0x50, 0x7b, 0x74, 0x10,
- 0x88, 0x22, 0x54, 0xd3, 0xff, 0x7c, 0xa8, 0xa6, 0x93, 0x65, 0xef, 0xda, 0x20, 0xcb, 0x1e, 0x1e,
- 0x3b, 0x59, 0x6d, 0x1f, 0x8a, 0xa8, 0xed, 0xb7, 0x60, 0x32, 0x44, 0x34, 0x70, 0x8d, 0xfd, 0xb4,
- 0x02, 0xd9, 0x5e, 0xc6, 0x89, 0xa9, 0x74, 0x09, 0xa1, 0xd2, 0xdd, 0x92, 0x2d, 0x78, 0xbe, 0xb7,
- 0x13, 0x42, 0xbe, 0xfe, 0x8a, 0x02, 0xd3, 0xd1, 0x9d, 0x62, 0xa4, 0x0e, 0xcf, 0xc0, 0x70, 0xcb,
- 0xf2, 0x8e, 0x1c, 0xd6, 0x2d, 0x5d, 0x8c, 0x58, 0x83, 0xd1, 0xb4, 0xec, 0x6c, 0x8a, 0xe2, 0x17,
- 0x71, 0xb5, 0x57, 0xbb, 0x47, 0xb4, 0x09, 0x69, 0xfa, 0x4b, 0x09, 0x38, 0x13, 0x49, 0x1e, 0xa9,
- 0xe8, 0xa3, 0x00, 0x0d, 0xbb, 0xdd, 0xf5, 0x48, 0x47, 0x44, 0x0a, 0xec, 0x28, 0x1e, 0xc1, 0xc5,
- 0x0b, 0x15, 0xcf, 0xae, 0xe7, 0xcf, 0xab, 0x78, 0x1e, 0xc8, 0x10, 0x16, 0xb8, 0x11, 0x28, 0x9a,
- 0xc4, 0x8a, 0xce, 0xf6, 0xb8, 0xd2, 0x50, 0x60, 0x2e, 0x81, 0x56, 0x6b, 0x36, 0x2c, 0xdb, 0xab,
- 0xba, 0x5e, 0xc7, 0x32, 0x5b, 0x0d, 0xfb, 0x10, 0xaf, 0x20, 0xa9, 0xfc, 0xd0, 0x81, 0xd9, 0x74,
- 0x2d, 0x63, 0x82, 0x4c, 0xef, 0xb0, 0x59, 0x84, 0xc0, 0x01, 0xd4, 0xe1, 0x10, 0xc3, 0x02, 0x82,
- 0x4c, 0xfb, 0x88, 0xdc, 0xef, 0xa4, 0x20, 0xcd, 0xf5, 0xd5, 0xfa, 0x79, 0xc8, 0xbc, 0x64, 0xbe,
- 0x62, 0x56, 0xd9, 0xbd, 0x12, 0xb1, 0x44, 0x1a, 0x8d, 0x6d, 0xd3, 0xfb, 0xa5, 0x25, 0x38, 0x8d,
- 0x45, 0x9c, 0xae, 0x67, 0x75, 0xaa, 0xb5, 0xa6, 0xe9, 0xba, 0xd8, 0x68, 0x29, 0x2c, 0xaa, 0xa3,
- 0xb9, 0x2d, 0x34, 0x55, 0x62, 0x33, 0xfa, 0x55, 0x98, 0xc2, 0x88, 0x56, 0xb7, 0xe9, 0x35, 0xda,
- 0x4d, 0xab, 0x8a, 0xee, 0xde, 0x5c, 0xbc, 0x92, 0xf8, 0x9a, 0x4d, 0x22, 0x89, 0x4d, 0x2a, 0x80,
- 0x34, 0x72, 0xf5, 0x55, 0x78, 0x14, 0xc3, 0x0e, 0x2d, 0xdb, 0xea, 0x98, 0x9e, 0x55, 0xb5, 0x7e,
- 0xbe, 0x6b, 0x36, 0xdd, 0xaa, 0x69, 0xd7, 0xab, 0x47, 0xa6, 0x7b, 0x94, 0x3d, 0x8d, 0x08, 0x8a,
- 0x89, 0xac, 0x62, 0x3c, 0x8c, 0x04, 0x6f, 0x53, 0xb9, 0x32, 0x16, 0x2b, 0xd8, 0xf5, 0xe7, 0x4c,
- 0xf7, 0x48, 0xcf, 0xc3, 0x34, 0x66, 0x71, 0xbd, 0x4e, 0xc3, 0x3e, 0xac, 0xd6, 0x8e, 0xac, 0xda,
- 0xcb, 0xd5, 0xae, 0x77, 0x70, 0x23, 0xfb, 0x08, 0x7f, 0x7e, 0xac, 0xe1, 0x0e, 0x96, 0x29, 0x21,
- 0x91, 0x3d, 0xef, 0xe0, 0x86, 0xbe, 0x03, 0x19, 0xe4, 0x8c, 0x56, 0xe3, 0x75, 0xab, 0x7a, 0xe0,
- 0x74, 0xf0, 0xd2, 0x38, 0x1e, 0x51, 0x9a, 0x38, 0x0b, 0x2e, 0x6e, 0x51, 0xc0, 0xa6, 0x53, 0xb7,
- 0xf2, 0x43, 0x3b, 0xdb, 0xe5, 0xf2, 0xaa, 0x91, 0x66, 0x2c, 0x6b, 0x4e, 0x07, 0x05, 0xd4, 0xa1,
- 0xe3, 0x1b, 0x38, 0x4d, 0x02, 0xea, 0xd0, 0x61, 0xe6, 0xbd, 0x0a, 0x53, 0xb5, 0x1a, 0xb9, 0xe6,
- 0x46, 0xad, 0x4a, 0xef, 0xb1, 0xdc, 0xac, 0x26, 0x18, 0xab, 0x56, 0xbb, 0x4d, 0x04, 0x68, 0x8c,
- 0xbb, 0xfa, 0x4d, 0x38, 0x13, 0x18, 0x8b, 0x07, 0x4e, 0x86, 0xae, 0x52, 0x86, 0x5e, 0x85, 0xa9,
- 0xf6, 0x71, 0x18, 0xa8, 0x0b, 0x67, 0x6c, 0x1f, 0xcb, 0xb0, 0xeb, 0x70, 0xba, 0x7d, 0xd4, 0x0e,
- 0xe3, 0x16, 0x78, 0x9c, 0xde, 0x3e, 0x6a, 0xcb, 0xc0, 0xc7, 0xf1, 0x0d, 0x77, 0xc7, 0xaa, 0x99,
- 0x9e, 0x55, 0xcf, 0x3e, 0xc4, 0x8b, 0x73, 0x13, 0xfa, 0x25, 0xd0, 0x6a, 0xb5, 0xaa, 0x65, 0x9b,
- 0xfb, 0x4d, 0xab, 0x6a, 0x76, 0x2c, 0xdb, 0x74, 0xb3, 0x73, 0xbc, 0xf0, 0x78, 0xad, 0x56, 0xc6,
- 0xb3, 0x05, 0x3c, 0xa9, 0x2f, 0xc0, 0xa4, 0xb3, 0xff, 0x52, 0x8d, 0x84, 0x64, 0xb5, 0xdd, 0xb1,
- 0x0e, 0x1a, 0xaf, 0x65, 0x2f, 0x60, 0xfb, 0x4e, 0xa0, 0x09, 0x1c, 0x90, 0xdb, 0x78, 0x58, 0x7f,
- 0x12, 0xb4, 0x9a, 0x7b, 0x64, 0x76, 0xda, 0xb8, 0x26, 0xbb, 0x6d, 0xb3, 0x66, 0x65, 0x1f, 0x27,
- 0xa2, 0x64, 0xbc, 0xc2, 0x86, 0x51, 0x4a, 0xb8, 0xaf, 0x36, 0x0e, 0x3c, 0xc6, 0xf8, 0x04, 0x49,
- 0x09, 0x3c, 0x46, 0xd9, 0xe6, 0x41, 0x43, 0xa6, 0x10, 0x4e, 0x3c, 0x8f, 0xc5, 0xc6, 0xdb, 0x47,
- 0x6d, 0xfe, 0xbc, 0x8f, 0xc1, 0x18, 0x92, 0x0c, 0x4e, 0xfa, 0x24, 0x69, 0xc8, 0xda, 0x47, 0xdc,
- 0x19, 0x3f, 0xb0, 0xde, 0x38, 0x97, 0x87, 0x0c, 0x1f, 0x9f, 0xfa, 0x28, 0x90, 0x08, 0xd5, 0x14,
- 0xd4, 0xac, 0x94, 0xb6, 0x56, 0x51, 0x9b, 0xf1, 0xa9, 0xb2, 0x96, 0x40, 0xed, 0xce, 0xc6, 0xfa,
- 0x6e, 0xb9, 0x6a, 0xec, 0x55, 0x76, 0xd7, 0x37, 0xcb, 0x9a, 0xca, 0xf7, 0xd5, 0xdf, 0x4a, 0xc0,
- 0xb8, 0x78, 0x8b, 0xa4, 0x7f, 0x0c, 0x1e, 0x62, 0xcf, 0x33, 0x5c, 0xcb, 0xab, 0xbe, 0xda, 0xe8,
- 0xe0, 0x94, 0x69, 0x99, 0x64, 0xf9, 0xf2, 0x9d, 0x76, 0x9a, 0x4a, 0xed, 0x58, 0xde, 0xf3, 0x8d,
- 0x0e, 0x4a, 0x88, 0x96, 0xe9, 0xe9, 0x1b, 0x30, 0x67, 0x3b, 0x55, 0xd7, 0x33, 0xed, 0xba, 0xd9,
- 0xa9, 0x57, 0x83, 0x27, 0x49, 0x55, 0xb3, 0x56, 0xb3, 0x5c, 0xd7, 0x21, 0x4b, 0x95, 0xcf, 0x72,
- 0xd6, 0x76, 0x76, 0xa8, 0x70, 0x50, 0xc3, 0x0b, 0x54, 0x54, 0x0a, 0x30, 0xb5, 0x57, 0x80, 0x3d,
- 0x02, 0xa3, 0x2d, 0xb3, 0x5d, 0xb5, 0x6c, 0xaf, 0x73, 0x8c, 0x1b, 0xe3, 0x94, 0x91, 0x6a, 0x99,
- 0xed, 0x32, 0x3a, 0xfe, 0xe9, 0xdc, 0x9f, 0xfc, 0x57, 0x15, 0x32, 0x7c, 0x73, 0x8c, 0xee, 0x35,
- 0x6a, 0x78, 0x1d, 0x51, 0x70, 0xa5, 0x79, 0xac, 0x6f, 0x2b, 0xbd, 0x58, 0x42, 0x0b, 0x4c, 0x7e,
- 0x98, 0xb4, 0xac, 0x06, 0x41, 0xa2, 0xc5, 0x1d, 0xd5, 0x16, 0x8b, 0xb4, 0x08, 0x29, 0x83, 0x1e,
- 0xe9, 0xb7, 0x61, 0xf8, 0x25, 0x17, 0x73, 0x0f, 0x63, 0xee, 0x0b, 0xfd, 0xb9, 0xef, 0xec, 0x60,
- 0xf2, 0xd1, 0x3b, 0x3b, 0xd5, 0xca, 0x96, 0xb1, 0x59, 0xd8, 0x30, 0x28, 0x5c, 0x7f, 0x18, 0x92,
- 0x4d, 0xf3, 0xf5, 0x63, 0x71, 0x29, 0xc2, 0x43, 0x83, 0x1a, 0xfe, 0x61, 0x48, 0xbe, 0x6a, 0x99,
- 0x2f, 0x8b, 0x0b, 0x00, 0x1e, 0xfa, 0x00, 0x43, 0xff, 0x12, 0x0c, 0x61, 0x7b, 0xe9, 0x00, 0xd4,
- 0x62, 0xda, 0x29, 0x3d, 0x05, 0xc9, 0xd2, 0x96, 0x81, 0xc2, 0x5f, 0x83, 0x0c, 0x19, 0xad, 0x6e,
- 0xaf, 0x97, 0x4b, 0x65, 0x2d, 0x91, 0xbb, 0x0a, 0xc3, 0xc4, 0x08, 0x28, 0x35, 0x7c, 0x33, 0x68,
- 0xa7, 0xe8, 0x21, 0xe5, 0x50, 0xd8, 0xec, 0xde, 0x66, 0xb1, 0x6c, 0x68, 0x09, 0xde, 0xbd, 0x2e,
- 0x64, 0xf8, 0xbe, 0xf8, 0xa7, 0x13, 0x53, 0xdf, 0x54, 0x20, 0xcd, 0xf5, 0xb9, 0xa8, 0x41, 0x31,
- 0x9b, 0x4d, 0xe7, 0xd5, 0xaa, 0xd9, 0x6c, 0x98, 0x2e, 0x0d, 0x0a, 0xc0, 0x43, 0x05, 0x34, 0x32,
- 0xa8, 0xd3, 0x7e, 0x2a, 0xca, 0x7f, 0x51, 0x01, 0x4d, 0x6e, 0x31, 0x25, 0x05, 0x95, 0x9f, 0xa9,
- 0x82, 0x9f, 0x57, 0x60, 0x5c, 0xec, 0x2b, 0x25, 0xf5, 0xce, 0xff, 0x4c, 0xd5, 0xfb, 0x6e, 0x02,
- 0xc6, 0x84, 0x6e, 0x72, 0x50, 0xed, 0x7e, 0x1e, 0x26, 0x1b, 0x75, 0xab, 0xd5, 0x76, 0x3c, 0xcb,
- 0xae, 0x1d, 0x57, 0x9b, 0xd6, 0x2b, 0x56, 0x33, 0x9b, 0xc3, 0x85, 0xe2, 0x52, 0xff, 0x7e, 0x75,
- 0x71, 0x3d, 0xc0, 0x6d, 0x20, 0x58, 0x7e, 0x6a, 0x7d, 0xb5, 0xbc, 0xb9, 0xbd, 0xb5, 0x5b, 0xae,
- 0x94, 0xee, 0x56, 0xf7, 0x2a, 0x1f, 0xaf, 0x6c, 0x3d, 0x5f, 0x31, 0xb4, 0x86, 0x24, 0xf6, 0x01,
- 0xa6, 0xfa, 0x36, 0x68, 0xb2, 0x52, 0xfa, 0x43, 0x10, 0xa5, 0x96, 0x76, 0x4a, 0x9f, 0x82, 0x89,
- 0xca, 0x56, 0x75, 0x67, 0x7d, 0xb5, 0x5c, 0x2d, 0xaf, 0xad, 0x95, 0x4b, 0xbb, 0x3b, 0xe4, 0x09,
- 0x84, 0x2f, 0xbd, 0x2b, 0x26, 0xf5, 0xe7, 0x54, 0x98, 0x8a, 0xd0, 0x44, 0x2f, 0xd0, 0x7b, 0x07,
- 0x72, 0x3b, 0xf3, 0xd4, 0x20, 0xda, 0x2f, 0xa2, 0x25, 0x7f, 0xdb, 0xec, 0x78, 0xf4, 0x56, 0xe3,
- 0x49, 0x40, 0x56, 0xb2, 0xbd, 0xc6, 0x41, 0xc3, 0xea, 0xd0, 0x07, 0x36, 0xe4, 0x86, 0x62, 0x22,
- 0x18, 0x27, 0xcf, 0x6c, 0x3e, 0x0a, 0x7a, 0xdb, 0x71, 0x1b, 0x5e, 0xe3, 0x15, 0xab, 0xda, 0xb0,
- 0xd9, 0xd3, 0x1d, 0x74, 0x83, 0x91, 0x34, 0x34, 0x36, 0xb3, 0x6e, 0x7b, 0xbe, 0xb4, 0x6d, 0x1d,
- 0x9a, 0x92, 0x34, 0x2a, 0xe0, 0xaa, 0xa1, 0xb1, 0x19, 0x5f, 0xfa, 0x3c, 0x64, 0xea, 0x4e, 0x17,
- 0x75, 0x5d, 0x44, 0x0e, 0xad, 0x17, 0x8a, 0x91, 0x26, 0x63, 0xbe, 0x08, 0xed, 0xa7, 0x83, 0xc7,
- 0x4a, 0x19, 0x23, 0x4d, 0xc6, 0x88, 0xc8, 0x13, 0x30, 0x61, 0x1e, 0x1e, 0x76, 0x10, 0x39, 0x23,
- 0x22, 0x77, 0x08, 0xe3, 0xfe, 0x30, 0x16, 0x9c, 0xb9, 0x03, 0x29, 0x66, 0x07, 0xb4, 0x24, 0x23,
- 0x4b, 0x54, 0xdb, 0xe4, 0xb6, 0x37, 0x31, 0x3f, 0x6a, 0xa4, 0x6c, 0x36, 0x79, 0x1e, 0x32, 0x0d,
- 0xb7, 0x1a, 0x3c, 0x25, 0x4f, 0x9c, 0x4b, 0xcc, 0xa7, 0x8c, 0x74, 0xc3, 0xf5, 0x9f, 0x30, 0xe6,
- 0xbe, 0x92, 0x80, 0x71, 0xf1, 0x29, 0xbf, 0xbe, 0x0a, 0xa9, 0xa6, 0x53, 0x33, 0x71, 0x68, 0x91,
- 0x2d, 0xa6, 0xf9, 0x98, 0x8d, 0x81, 0xc5, 0x0d, 0x2a, 0x6f, 0xf8, 0xc8, 0x99, 0xff, 0xa8, 0x40,
- 0x8a, 0x0d, 0xeb, 0xd3, 0x90, 0x6c, 0x9b, 0xde, 0x11, 0xa6, 0x1b, 0x2a, 0x26, 0x34, 0xc5, 0xc0,
- 0xc7, 0x68, 0xdc, 0x6d, 0x9b, 0x36, 0x0e, 0x01, 0x3a, 0x8e, 0x8e, 0x91, 0x5f, 0x9b, 0x96, 0x59,
- 0xc7, 0xb7, 0x1f, 0x4e, 0xab, 0x65, 0xd9, 0x9e, 0xcb, 0xfc, 0x4a, 0xc7, 0x4b, 0x74, 0x58, 0xff,
- 0x08, 0x4c, 0x7a, 0x1d, 0xb3, 0xd1, 0x14, 0x64, 0x93, 0x58, 0x56, 0x63, 0x13, 0xbe, 0x70, 0x1e,
- 0x1e, 0x66, 0xbc, 0x75, 0xcb, 0x33, 0x6b, 0x47, 0x56, 0x3d, 0x00, 0x0d, 0xe3, 0xc7, 0x0c, 0x0f,
- 0x51, 0x81, 0x55, 0x3a, 0xcf, 0xb0, 0xb9, 0x3f, 0x54, 0x60, 0x92, 0xdd, 0x30, 0xd5, 0x7d, 0x63,
- 0x6d, 0x02, 0x98, 0xb6, 0xed, 0x78, 0xbc, 0xb9, 0xc2, 0xa1, 0x1c, 0xc2, 0x2d, 0x16, 0x7c, 0x90,
- 0xc1, 0x11, 0xcc, 0xb4, 0x00, 0x82, 0x99, 0x9e, 0x66, 0x9b, 0x83, 0x34, 0xdd, 0xc2, 0xc1, 0xfb,
- 0x80, 0xe4, 0x16, 0x1b, 0xc8, 0x10, 0xba, 0xb3, 0xd2, 0x4f, 0xc3, 0xd0, 0xbe, 0x75, 0xd8, 0xb0,
- 0xe9, 0x83, 0x59, 0x72, 0xc0, 0x1e, 0x84, 0x24, 0xfd, 0x07, 0x21, 0xc5, 0x17, 0x61, 0xaa, 0xe6,
- 0xb4, 0x64, 0x75, 0x8b, 0x9a, 0x74, 0x9b, 0xef, 0x3e, 0xa7, 0x7c, 0x0a, 0x82, 0x16, 0xf3, 0xc7,
- 0x8a, 0xf2, 0xab, 0x09, 0xf5, 0xf6, 0x76, 0xf1, 0xb7, 0x12, 0x33, 0xb7, 0x09, 0x74, 0x9b, 0x5d,
- 0xa9, 0x61, 0x1d, 0x34, 0xad, 0x1a, 0xd2, 0x1e, 0x7e, 0xe3, 0x23, 0xf0, 0xd4, 0x61, 0xc3, 0x3b,
- 0xea, 0xee, 0x2f, 0xd6, 0x9c, 0xd6, 0xa5, 0x43, 0xe7, 0xd0, 0x09, 0xb6, 0x3e, 0xd1, 0x11, 0x3e,
- 0xc0, 0x9f, 0xe8, 0xf6, 0xe7, 0xa8, 0x3f, 0x3a, 0x13, 0xbb, 0x57, 0x9a, 0xaf, 0xc0, 0x14, 0x15,
- 0xae, 0xe2, 0xfd, 0x17, 0x72, 0x17, 0xa1, 0xf7, 0x7d, 0x86, 0x95, 0xfd, 0xed, 0xef, 0xe3, 0xe5,
- 0xda, 0x98, 0xa4, 0x50, 0x34, 0x47, 0x6e, 0x34, 0xf2, 0x06, 0x9c, 0x11, 0xf8, 0x48, 0x6a, 0x5a,
- 0x9d, 0x18, 0xc6, 0x6f, 0x51, 0xc6, 0x29, 0x8e, 0x71, 0x87, 0x42, 0xf3, 0x25, 0x18, 0x3b, 0x09,
- 0xd7, 0xbf, 0xa3, 0x5c, 0x19, 0x8b, 0x27, 0xb9, 0x0d, 0x13, 0x98, 0xa4, 0xd6, 0x75, 0x3d, 0xa7,
- 0x85, 0xeb, 0x5e, 0x7f, 0x9a, 0x7f, 0xff, 0x7d, 0x92, 0x2b, 0xe3, 0x08, 0x56, 0xf2, 0x51, 0xf9,
- 0x3c, 0xe0, 0x2d, 0xa7, 0xba, 0x55, 0x6b, 0xc6, 0x30, 0xdc, 0xa3, 0x8a, 0xf8, 0xf2, 0xf9, 0x4f,
- 0xc2, 0x69, 0xf4, 0x19, 0x97, 0x25, 0x5e, 0x93, 0xf8, 0x07, 0x5e, 0xd9, 0x3f, 0xfc, 0x34, 0x49,
- 0xc7, 0x29, 0x9f, 0x80, 0xd3, 0x89, 0xf3, 0xe2, 0xa1, 0xe5, 0x79, 0x56, 0xc7, 0xad, 0x9a, 0xcd,
- 0x28, 0xf5, 0xb8, 0x27, 0x06, 0xd9, 0x5f, 0xf9, 0xa1, 0xe8, 0xc5, 0xdb, 0x04, 0x59, 0x68, 0x36,
- 0xf3, 0x7b, 0xf0, 0x50, 0x44, 0x54, 0x0c, 0xc0, 0xf9, 0x39, 0xca, 0x79, 0x3a, 0x14, 0x19, 0x88,
- 0x76, 0x1b, 0xd8, 0xb8, 0xef, 0xcb, 0x01, 0x38, 0xff, 0x11, 0xe5, 0xd4, 0x29, 0x96, 0xb9, 0x14,
- 0x31, 0xde, 0x81, 0xc9, 0x57, 0xac, 0xce, 0xbe, 0xe3, 0xd2, 0xa7, 0x34, 0x03, 0xd0, 0x7d, 0x9e,
- 0xd2, 0x4d, 0x50, 0x20, 0x7e, 0x6c, 0x83, 0xb8, 0x6e, 0x42, 0xea, 0xc0, 0xac, 0x59, 0x03, 0x50,
- 0x7c, 0x81, 0x52, 0x8c, 0x20, 0x79, 0x04, 0x2d, 0x40, 0xe6, 0xd0, 0xa1, 0x2b, 0x53, 0x3c, 0xfc,
- 0x8b, 0x14, 0x9e, 0x66, 0x18, 0x4a, 0xd1, 0x76, 0xda, 0xdd, 0x26, 0x5a, 0xb6, 0xe2, 0x29, 0xbe,
- 0xc4, 0x28, 0x18, 0x86, 0x52, 0x9c, 0xc0, 0xac, 0x6f, 0x32, 0x0a, 0x97, 0xb3, 0xe7, 0xb3, 0x90,
- 0x76, 0xec, 0xe6, 0xb1, 0x63, 0x0f, 0xa2, 0xc4, 0x97, 0x29, 0x03, 0x50, 0x08, 0x22, 0xb8, 0x05,
- 0xa3, 0x83, 0x3a, 0xe2, 0xd7, 0x7f, 0xc8, 0xd2, 0x83, 0x79, 0xe0, 0x36, 0x4c, 0xb0, 0x02, 0xd5,
- 0x70, 0xec, 0x01, 0x28, 0x7e, 0x83, 0x52, 0x8c, 0x73, 0x30, 0x7a, 0x19, 0x9e, 0xe5, 0x7a, 0x87,
- 0xd6, 0x20, 0x24, 0x5f, 0x61, 0x97, 0x41, 0x21, 0xd4, 0x94, 0xfb, 0x96, 0x5d, 0x3b, 0x1a, 0x8c,
- 0xe1, 0xab, 0xcc, 0x94, 0x0c, 0x83, 0x28, 0x4a, 0x30, 0xd6, 0x32, 0x3b, 0xee, 0x91, 0xd9, 0x1c,
- 0xc8, 0x1d, 0xbf, 0x49, 0x39, 0x32, 0x3e, 0x88, 0x5a, 0xa4, 0x6b, 0x9f, 0x84, 0xe6, 0xb7, 0x98,
- 0x45, 0x38, 0x18, 0x4d, 0x3d, 0xd7, 0xc3, 0x8f, 0xb4, 0x4e, 0xc2, 0xf6, 0x8f, 0x59, 0xea, 0x11,
- 0xec, 0x26, 0xcf, 0x78, 0x0b, 0x46, 0xdd, 0xc6, 0xeb, 0x03, 0xd1, 0xfc, 0x13, 0xe6, 0x69, 0x0c,
- 0x40, 0xe0, 0xbb, 0xf0, 0x70, 0xe4, 0x32, 0x31, 0x00, 0xd9, 0x3f, 0xa5, 0x64, 0xd3, 0x11, 0x4b,
- 0x05, 0x2d, 0x09, 0x27, 0xa5, 0xfc, 0x67, 0xac, 0x24, 0x58, 0x12, 0xd7, 0x36, 0xba, 0x57, 0x70,
- 0xcd, 0x83, 0x93, 0x59, 0xed, 0x9f, 0x33, 0xab, 0x11, 0xac, 0x60, 0xb5, 0x5d, 0x98, 0xa6, 0x8c,
- 0x27, 0xf3, 0xeb, 0xd7, 0x58, 0x61, 0x25, 0xe8, 0x3d, 0xd1, 0xbb, 0x2f, 0xc2, 0x8c, 0x6f, 0x4e,
- 0xd6, 0x94, 0xba, 0xd5, 0x96, 0xd9, 0x1e, 0x80, 0xf9, 0xb7, 0x29, 0x33, 0xab, 0xf8, 0x7e, 0x57,
- 0xeb, 0x6e, 0x9a, 0x6d, 0x44, 0xfe, 0x02, 0x64, 0x19, 0x79, 0xd7, 0xee, 0x58, 0x35, 0xe7, 0xd0,
- 0x6e, 0xbc, 0x6e, 0xd5, 0x07, 0xa0, 0xfe, 0xba, 0xe4, 0xaa, 0x3d, 0x0e, 0x8e, 0x98, 0xd7, 0x41,
- 0xf3, 0x7b, 0x95, 0x6a, 0xa3, 0xd5, 0x76, 0x3a, 0x5e, 0x0c, 0xe3, 0xef, 0x30, 0x4f, 0xf9, 0xb8,
- 0x75, 0x0c, 0xcb, 0x97, 0x61, 0x1c, 0x1f, 0x0e, 0x1a, 0x92, 0xbf, 0x4b, 0x89, 0xc6, 0x02, 0x14,
- 0x2d, 0x1c, 0x35, 0xa7, 0xd5, 0x36, 0x3b, 0x83, 0xd4, 0xbf, 0x7f, 0xc1, 0x0a, 0x07, 0x85, 0xd0,
- 0xc2, 0xe1, 0x1d, 0xb7, 0x2d, 0xb4, 0xda, 0x0f, 0xc0, 0xf0, 0x0d, 0x56, 0x38, 0x18, 0x86, 0x52,
- 0xb0, 0x86, 0x61, 0x00, 0x8a, 0x7f, 0xc9, 0x28, 0x18, 0x06, 0x51, 0x7c, 0x22, 0x58, 0x68, 0x3b,
- 0xd6, 0x61, 0xc3, 0xf5, 0x3a, 0xa4, 0x15, 0xee, 0x4f, 0xf5, 0x7b, 0x3f, 0x14, 0x9b, 0x30, 0x83,
- 0x83, 0xa2, 0x4a, 0x44, 0x1f, 0xa1, 0xe2, 0x3b, 0xa5, 0x78, 0xc5, 0x7e, 0x9f, 0x55, 0x22, 0x0e,
- 0x86, 0x74, 0xe3, 0x3a, 0x44, 0x64, 0xf6, 0x1a, 0xba, 0x3f, 0x18, 0x80, 0xee, 0x9b, 0x92, 0x72,
- 0x3b, 0x0c, 0x8b, 0x38, 0xb9, 0xfe, 0xa7, 0x6b, 0xbf, 0x6c, 0x1d, 0x0f, 0x14, 0x9d, 0xff, 0x4a,
- 0xea, 0x7f, 0xf6, 0x08, 0x92, 0xd4, 0x90, 0x09, 0xa9, 0x9f, 0xd2, 0xe3, 0x5e, 0xd6, 0xc9, 0xfe,
- 0xe5, 0x77, 0xe9, 0xf5, 0x8a, 0xed, 0x54, 0x7e, 0x03, 0x05, 0xb9, 0xd8, 0xf4, 0xc4, 0x93, 0x7d,
- 0xfa, 0x5d, 0x3f, 0xce, 0x85, 0x9e, 0x27, 0xbf, 0x06, 0x63, 0x42, 0xc3, 0x13, 0x4f, 0xf5, 0x57,
- 0x28, 0x55, 0x86, 0xef, 0x77, 0xf2, 0x57, 0x21, 0x89, 0x9a, 0x97, 0x78, 0xf8, 0x5f, 0xa5, 0x70,
- 0x2c, 0x9e, 0x7f, 0x1a, 0x52, 0xac, 0x69, 0x89, 0x87, 0xfe, 0x22, 0x85, 0xfa, 0x10, 0x04, 0x67,
- 0x0d, 0x4b, 0x3c, 0xfc, 0xaf, 0x31, 0x38, 0x83, 0x20, 0xf8, 0xe0, 0x26, 0x7c, 0xeb, 0x6f, 0x24,
- 0xe9, 0xa2, 0xc3, 0x6c, 0x77, 0x0b, 0x46, 0x68, 0xa7, 0x12, 0x8f, 0xfe, 0x25, 0x7a, 0x72, 0x86,
- 0xc8, 0x5f, 0x87, 0xa1, 0x01, 0x0d, 0xfe, 0x37, 0x29, 0x94, 0xc8, 0xe7, 0x4b, 0x90, 0xe6, 0xba,
- 0x93, 0x78, 0xf8, 0xdf, 0xa2, 0x70, 0x1e, 0x85, 0x54, 0xa7, 0xdd, 0x49, 0x3c, 0xc1, 0xdf, 0x66,
- 0xaa, 0x53, 0x04, 0x32, 0x1b, 0x6b, 0x4c, 0xe2, 0xd1, 0x7f, 0x87, 0x59, 0x9d, 0x41, 0xf2, 0xcf,
- 0xc2, 0xa8, 0xbf, 0xd8, 0xc4, 0xe3, 0xff, 0x2e, 0xc5, 0x07, 0x18, 0x64, 0x01, 0x6e, 0xb1, 0x8b,
- 0xa7, 0xf8, 0x7b, 0xcc, 0x02, 0x1c, 0x0a, 0xa5, 0x91, 0xdc, 0xc0, 0xc4, 0x33, 0xfd, 0x32, 0x4b,
- 0x23, 0xa9, 0x7f, 0x41, 0xde, 0xc4, 0x35, 0x3f, 0x9e, 0xe2, 0xef, 0x33, 0x6f, 0x62, 0x79, 0xa4,
- 0x86, 0xdc, 0x11, 0xc4, 0x73, 0xfc, 0x43, 0xa6, 0x86, 0xd4, 0x10, 0xe4, 0xb7, 0x41, 0x0f, 0x77,
- 0x03, 0xf1, 0x7c, 0x9f, 0xa5, 0x7c, 0x93, 0xa1, 0x66, 0x20, 0xff, 0x3c, 0x4c, 0x47, 0x77, 0x02,
- 0xf1, 0xac, 0xbf, 0xf2, 0xae, 0x74, 0xef, 0xc6, 0x37, 0x02, 0xf9, 0xdd, 0x60, 0x49, 0xe1, 0xbb,
- 0x80, 0x78, 0xda, 0xcf, 0xbd, 0x2b, 0x16, 0x6e, 0xbe, 0x09, 0xc8, 0x17, 0x00, 0x82, 0x05, 0x38,
- 0x9e, 0xeb, 0xf3, 0x94, 0x8b, 0x03, 0xa1, 0xd4, 0xa0, 0xeb, 0x6f, 0x3c, 0xfe, 0x0b, 0x2c, 0x35,
- 0x28, 0x02, 0xa5, 0x06, 0x5b, 0x7a, 0xe3, 0xd1, 0x5f, 0x64, 0xa9, 0xc1, 0x20, 0x28, 0xb2, 0xb9,
- 0xd5, 0x2d, 0x9e, 0xe1, 0xcb, 0x2c, 0xb2, 0x39, 0x54, 0xbe, 0x02, 0x93, 0xa1, 0x05, 0x31, 0x9e,
- 0xea, 0x57, 0x29, 0x95, 0x26, 0xaf, 0x87, 0xfc, 0xe2, 0x45, 0x17, 0xc3, 0x78, 0xb6, 0x5f, 0x93,
- 0x16, 0x2f, 0xba, 0x16, 0xe6, 0x6f, 0x41, 0xca, 0xee, 0x36, 0x9b, 0x28, 0x79, 0xf4, 0xfe, 0x2f,
- 0xd8, 0x65, 0xff, 0xc7, 0x4f, 0xa8, 0x75, 0x18, 0x20, 0x7f, 0x15, 0x86, 0xac, 0xd6, 0xbe, 0x55,
- 0x8f, 0x43, 0xfe, 0xcf, 0x9f, 0xb0, 0x82, 0x89, 0xa4, 0xf3, 0xcf, 0x02, 0x90, 0x47, 0x23, 0x78,
- 0xdb, 0x2f, 0x06, 0xfb, 0xbf, 0x7e, 0x42, 0x5f, 0x7d, 0x09, 0x20, 0x01, 0x01, 0x79, 0x91, 0xa6,
- 0x3f, 0xc1, 0x0f, 0x45, 0x02, 0xec, 0x91, 0x9b, 0x30, 0xf2, 0x92, 0xeb, 0xd8, 0x9e, 0x79, 0x18,
- 0x87, 0xfe, 0xdf, 0x14, 0xcd, 0xe4, 0x91, 0xc1, 0x5a, 0x4e, 0xc7, 0xf2, 0xcc, 0x43, 0x37, 0x0e,
- 0xfb, 0x7f, 0x28, 0xd6, 0x07, 0x20, 0x70, 0xcd, 0x74, 0xbd, 0x41, 0xae, 0xfb, 0x8f, 0x18, 0x98,
- 0x01, 0x90, 0xd2, 0xe8, 0xf3, 0xcb, 0xd6, 0x71, 0x1c, 0xf6, 0x47, 0x4c, 0x69, 0x2a, 0x9f, 0x7f,
- 0x1a, 0x46, 0xd1, 0x47, 0xf2, 0x3e, 0x5b, 0x0c, 0xf8, 0xff, 0x52, 0x70, 0x80, 0x40, 0x67, 0x76,
- 0xbd, 0xba, 0xd7, 0x88, 0x37, 0xf6, 0x1f, 0x53, 0x4f, 0x33, 0xf9, 0x7c, 0x01, 0xd2, 0xae, 0x57,
- 0xaf, 0x77, 0x69, 0x7f, 0x1a, 0x03, 0xff, 0x7f, 0x3f, 0xf1, 0x1f, 0x59, 0xf8, 0x18, 0xe4, 0xed,
- 0x57, 0x5f, 0xf6, 0xda, 0x0e, 0xde, 0xe6, 0x88, 0x63, 0x78, 0x97, 0x32, 0x70, 0x90, 0x62, 0x39,
- 0xfa, 0xf1, 0x2d, 0xdc, 0x76, 0x6e, 0x3b, 0xe4, 0xc1, 0xed, 0xa7, 0x72, 0xf1, 0x4f, 0x60, 0xe1,
- 0xbf, 0x35, 0xe1, 0x7a, 0x4f, 0x31, 0xb4, 0x14, 0x5f, 0xaa, 0x39, 0xad, 0x7d, 0xc7, 0xbd, 0xb4,
- 0xef, 0x78, 0x47, 0x97, 0xbc, 0x23, 0x0b, 0x8d, 0xd1, 0x47, 0xb6, 0x49, 0xf4, 0x79, 0xe6, 0x64,
- 0xcf, 0x79, 0xf1, 0x2e, 0x7e, 0xa5, 0x81, 0x2e, 0xad, 0x82, 0x37, 0x52, 0xf4, 0xb3, 0x30, 0x8c,
- 0x2f, 0xf6, 0x32, 0xde, 0xac, 0x54, 0x8a, 0xc9, 0x7b, 0x6f, 0xcf, 0x9d, 0x32, 0xe8, 0x98, 0x3f,
- 0xbb, 0x8c, 0x9f, 0x74, 0x27, 0x84, 0xd9, 0x65, 0x7f, 0xf6, 0x0a, 0x79, 0xd8, 0x2d, 0xcc, 0x5e,
- 0xf1, 0x67, 0x57, 0xf0, 0x63, 0x6f, 0x55, 0x98, 0x5d, 0xf1, 0x67, 0xaf, 0xe2, 0xad, 0x9d, 0x31,
- 0x61, 0xf6, 0xaa, 0x3f, 0x7b, 0x0d, 0x6f, 0xe8, 0x24, 0x85, 0xd9, 0x6b, 0xfe, 0xec, 0x75, 0xbc,
- 0x97, 0x33, 0x29, 0xcc, 0x5e, 0xf7, 0x67, 0x6f, 0xe0, 0x3d, 0x1c, 0x5d, 0x98, 0xbd, 0xe1, 0xcf,
- 0xde, 0xc4, 0x2f, 0x48, 0x8d, 0x08, 0xb3, 0x37, 0xf5, 0x59, 0x18, 0x21, 0x57, 0xbe, 0x84, 0x37,
- 0xfc, 0x27, 0xe8, 0x34, 0x1b, 0x0c, 0xe6, 0x2f, 0xe3, 0x97, 0xa1, 0x86, 0xc5, 0xf9, 0xcb, 0xc1,
- 0xfc, 0x32, 0xfe, 0x5e, 0x86, 0x26, 0xce, 0x2f, 0x07, 0xf3, 0x57, 0xb2, 0x63, 0xf8, 0x85, 0x30,
- 0x61, 0xfe, 0x4a, 0x30, 0xbf, 0x92, 0x1d, 0x47, 0x19, 0x23, 0xce, 0xaf, 0x04, 0xf3, 0x57, 0xb3,
- 0x13, 0xe7, 0x94, 0xf9, 0x8c, 0x38, 0x7f, 0x35, 0xf7, 0x0b, 0xd8, 0xbd, 0x76, 0xe0, 0xde, 0x69,
- 0xd1, 0xbd, 0xbe, 0x63, 0xa7, 0x45, 0xc7, 0xfa, 0x2e, 0x9d, 0x16, 0x5d, 0xea, 0x3b, 0x73, 0x5a,
- 0x74, 0xa6, 0xef, 0xc6, 0x69, 0xd1, 0x8d, 0xbe, 0x03, 0xa7, 0x45, 0x07, 0xfa, 0xae, 0x9b, 0x16,
- 0x5d, 0xe7, 0x3b, 0x6d, 0x5a, 0x74, 0x9a, 0xef, 0xae, 0x69, 0xd1, 0x5d, 0xbe, 0xa3, 0xb2, 0x92,
- 0xa3, 0x02, 0x17, 0x65, 0x25, 0x17, 0x05, 0xce, 0xc9, 0x4a, 0xce, 0x09, 0xdc, 0x92, 0x95, 0xdc,
- 0x12, 0x38, 0x24, 0x2b, 0x39, 0x24, 0x70, 0x45, 0x56, 0x72, 0x45, 0xe0, 0x04, 0x9a, 0x63, 0x86,
- 0xd5, 0x8e, 0xc8, 0x31, 0xb5, 0x6f, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9b, 0x63, 0x6a, 0xdf,
- 0x1c, 0x53, 0xfb, 0xe6, 0x98, 0xda, 0x37, 0xc7, 0xd4, 0xbe, 0x39, 0xa6, 0xf6, 0xcd, 0x31, 0xb5,
- 0x7f, 0x8e, 0xa9, 0x31, 0x39, 0xa6, 0xc6, 0xe4, 0x98, 0x1a, 0x93, 0x63, 0x6a, 0x4c, 0x8e, 0xa9,
- 0x31, 0x39, 0xa6, 0xf6, 0xcc, 0xb1, 0xc0, 0xbd, 0xd3, 0xa2, 0x7b, 0x23, 0x73, 0x4c, 0xed, 0x91,
- 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23, 0xc7, 0xd4, 0x1e, 0x39, 0xa6, 0xf6,
- 0xc8, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0xbd, 0x72, 0x4c, 0xed, 0x99, 0x63, 0x6a, 0xcf, 0x1c, 0x53,
- 0x7b, 0xe6, 0x98, 0xda, 0x33, 0xc7, 0xd4, 0x9e, 0x39, 0xa6, 0xf2, 0x39, 0xf6, 0xaf, 0x55, 0xd0,
- 0x49, 0x8e, 0x6d, 0xe3, 0x57, 0xc6, 0xa8, 0x2b, 0x66, 0xa5, 0x4c, 0x1b, 0x46, 0xae, 0xd3, 0x02,
- 0x97, 0xcc, 0x4a, 0xb9, 0x26, 0xce, 0x2f, 0xfb, 0xf3, 0x2c, 0xdb, 0xc4, 0xf9, 0x2b, 0xfe, 0x3c,
- 0xcb, 0x37, 0x71, 0x7e, 0xc5, 0x9f, 0x67, 0x19, 0x27, 0xce, 0x5f, 0xf5, 0xe7, 0x59, 0xce, 0x89,
- 0xf3, 0xd7, 0xfc, 0x79, 0x96, 0x75, 0xe2, 0xfc, 0x75, 0x7f, 0x9e, 0xe5, 0x9d, 0x38, 0x7f, 0xc3,
- 0x9f, 0x67, 0x99, 0x27, 0xce, 0xdf, 0xd4, 0xcf, 0xc9, 0xb9, 0xc7, 0x04, 0x7c, 0xd7, 0x9e, 0x93,
+ 0xba, 0x21, 0x89, 0xaa, 0x54, 0x4a, 0x59, 0x27, 0x1b, 0x6f, 0xee, 0xc9, 0x26, 0x15, 0xaf, 0xe3,
+ 0x8b, 0xbc, 0x5b, 0xbb, 0xf6, 0x6e, 0x6e, 0x5e, 0x67, 0xe3, 0xec, 0x3a, 0xa9, 0xac, 0xf2, 0xe0,
+ 0x64, 0xf2, 0x92, 0xf2, 0x26, 0x2f, 0x29, 0x57, 0x4a, 0x65, 0x8d, 0x9d, 0x8a, 0x93, 0x38, 0x89,
+ 0xb3, 0x51, 0x55, 0x5c, 0xe5, 0x7d, 0x48, 0x9d, 0x5b, 0xf7, 0x39, 0x07, 0x0d, 0x34, 0x38, 0x92,
+ 0x6c, 0x3f, 0xf8, 0x65, 0x06, 0x7d, 0xce, 0xff, 0x7d, 0xfd, 0xf7, 0x7f, 0x39, 0xe7, 0xef, 0x73,
+ 0x0e, 0x40, 0xb8, 0x97, 0x87, 0x73, 0x87, 0x8e, 0x73, 0xd8, 0xb4, 0x2e, 0xb5, 0x3b, 0x8e, 0xe7,
+ 0xec, 0x77, 0x0f, 0x2e, 0xd5, 0x2d, 0xb7, 0xd6, 0x69, 0xb4, 0x3d, 0xa7, 0xb3, 0x88, 0xdb, 0xf4,
+ 0x09, 0x22, 0xb1, 0xc8, 0x24, 0x72, 0x9b, 0x30, 0xb9, 0xd6, 0x68, 0x5a, 0xab, 0xbe, 0xe0, 0x8e,
+ 0xe5, 0xe9, 0x37, 0x20, 0x7e, 0xd0, 0x68, 0x5a, 0x59, 0xe5, 0x9c, 0x3a, 0x9f, 0x5e, 0xbe, 0xb0,
+ 0x28, 0x81, 0x16, 0x45, 0xc4, 0x36, 0x6a, 0x36, 0x30, 0x22, 0xf7, 0xbd, 0x38, 0x4c, 0x85, 0xf4,
+ 0xea, 0x3a, 0xc4, 0x6d, 0xb3, 0x85, 0x18, 0x95, 0xf9, 0x94, 0x81, 0x3f, 0xeb, 0x59, 0x18, 0x6d,
+ 0x9b, 0xb5, 0x57, 0xcc, 0x43, 0x2b, 0x1b, 0xc3, 0xcd, 0xec, 0x52, 0x9f, 0x05, 0xa8, 0x5b, 0x6d,
+ 0xcb, 0xae, 0x5b, 0x76, 0xed, 0x38, 0xab, 0x9e, 0x53, 0xe7, 0x53, 0x06, 0xd7, 0xa2, 0x7f, 0x04,
+ 0x26, 0xdb, 0xdd, 0xfd, 0x66, 0xa3, 0x56, 0xe5, 0xc4, 0xe0, 0x9c, 0x3a, 0x9f, 0x30, 0x34, 0xd2,
+ 0xb1, 0x1a, 0x08, 0x3f, 0x01, 0x13, 0xaf, 0x59, 0xe6, 0x2b, 0xbc, 0x68, 0x1a, 0x8b, 0x8e, 0xa3,
+ 0x66, 0x4e, 0xb0, 0x04, 0x99, 0x96, 0xe5, 0xba, 0xe6, 0xa1, 0x55, 0xf5, 0x8e, 0xdb, 0x56, 0x36,
+ 0x8e, 0x9f, 0xfe, 0x5c, 0xcf, 0xd3, 0xcb, 0x4f, 0x9e, 0xa6, 0xa8, 0xdd, 0xe3, 0xb6, 0xa5, 0x17,
+ 0x20, 0x65, 0xd9, 0xdd, 0x16, 0x61, 0x48, 0xf4, 0xb1, 0x5f, 0xd9, 0xee, 0xb6, 0x64, 0x96, 0x24,
+ 0x82, 0x51, 0x8a, 0x51, 0xd7, 0xea, 0xbc, 0xda, 0xa8, 0x59, 0xd9, 0x11, 0x4c, 0xf0, 0x44, 0x0f,
+ 0xc1, 0x0e, 0xe9, 0x97, 0x39, 0x18, 0x4e, 0x2f, 0x41, 0xca, 0x7a, 0xdd, 0xb3, 0x6c, 0xb7, 0xe1,
+ 0xd8, 0xd9, 0x51, 0x4c, 0xf2, 0x78, 0x88, 0x17, 0xad, 0x66, 0x5d, 0xa6, 0x08, 0x70, 0xfa, 0x35,
+ 0x18, 0x75, 0xda, 0x5e, 0xc3, 0xb1, 0xdd, 0x6c, 0xf2, 0x9c, 0x32, 0x9f, 0x5e, 0x3e, 0x1b, 0x1a,
+ 0x08, 0x5b, 0x44, 0xc6, 0x60, 0xc2, 0xfa, 0x3a, 0x68, 0xae, 0xd3, 0xed, 0xd4, 0xac, 0x6a, 0xcd,
+ 0xa9, 0x5b, 0xd5, 0x86, 0x7d, 0xe0, 0x64, 0x53, 0x98, 0x60, 0xae, 0xf7, 0x41, 0xb0, 0x60, 0xc9,
+ 0xa9, 0x5b, 0xeb, 0xf6, 0x81, 0x63, 0x8c, 0xbb, 0xc2, 0xb5, 0x3e, 0x0d, 0x23, 0xee, 0xb1, 0xed,
+ 0x99, 0xaf, 0x67, 0x33, 0x38, 0x42, 0xe8, 0x55, 0xee, 0x0f, 0x46, 0x60, 0x62, 0x98, 0x10, 0xbb,
+ 0x05, 0x89, 0x03, 0xf4, 0x94, 0xd9, 0xd8, 0x49, 0x6c, 0x40, 0x30, 0xa2, 0x11, 0x47, 0x1e, 0xd0,
+ 0x88, 0x05, 0x48, 0xdb, 0x96, 0xeb, 0x59, 0x75, 0x12, 0x11, 0xea, 0x90, 0x31, 0x05, 0x04, 0xd4,
+ 0x1b, 0x52, 0xf1, 0x07, 0x0a, 0xa9, 0x17, 0x61, 0xc2, 0x57, 0xa9, 0xda, 0x31, 0xed, 0x43, 0x16,
+ 0x9b, 0x97, 0xa2, 0x34, 0x59, 0x2c, 0x33, 0x9c, 0x81, 0x60, 0xc6, 0xb8, 0x25, 0x5c, 0xeb, 0xab,
+ 0x00, 0x8e, 0x6d, 0x39, 0x07, 0xd5, 0xba, 0x55, 0x6b, 0x66, 0x93, 0x7d, 0xac, 0xb4, 0x85, 0x44,
+ 0x7a, 0xac, 0xe4, 0x90, 0xd6, 0x5a, 0x53, 0xbf, 0x19, 0x84, 0xda, 0x68, 0x9f, 0x48, 0xd9, 0x24,
+ 0x49, 0xd6, 0x13, 0x6d, 0x7b, 0x30, 0xde, 0xb1, 0x50, 0xdc, 0x5b, 0x75, 0xfa, 0x64, 0x29, 0xac,
+ 0xc4, 0x62, 0xe4, 0x93, 0x19, 0x14, 0x46, 0x1e, 0x6c, 0xac, 0xc3, 0x5f, 0xea, 0x8f, 0x81, 0xdf,
+ 0x50, 0xc5, 0x61, 0x05, 0x78, 0x14, 0xca, 0xb0, 0xc6, 0x8a, 0xd9, 0xb2, 0x66, 0xde, 0x80, 0x71,
+ 0xd1, 0x3c, 0xfa, 0x69, 0x48, 0xb8, 0x9e, 0xd9, 0xf1, 0x70, 0x14, 0x26, 0x0c, 0x72, 0xa1, 0x6b,
+ 0xa0, 0x5a, 0x76, 0x1d, 0x8f, 0x72, 0x09, 0x03, 0x7d, 0xd4, 0x7f, 0x21, 0x78, 0x60, 0x15, 0x3f,
+ 0xf0, 0xc5, 0x5e, 0x8f, 0x0a, 0xcc, 0xf2, 0x73, 0xcf, 0x5c, 0x87, 0x31, 0xe1, 0x01, 0x86, 0xbd,
+ 0x75, 0xee, 0xcf, 0xc2, 0x99, 0x50, 0x6a, 0xfd, 0x45, 0x38, 0xdd, 0xb5, 0x1b, 0xb6, 0x67, 0x75,
+ 0xda, 0x1d, 0x0b, 0x45, 0x2c, 0xb9, 0x55, 0xf6, 0xbf, 0x8e, 0xf6, 0x89, 0xb9, 0x3d, 0x5e, 0x9a,
+ 0xb0, 0x18, 0x53, 0xdd, 0xde, 0xc6, 0x85, 0x54, 0xf2, 0xfb, 0xa3, 0xda, 0x9b, 0x6f, 0xbe, 0xf9,
+ 0x66, 0x2c, 0xf7, 0x99, 0x11, 0x38, 0x1d, 0x96, 0x33, 0xa1, 0xe9, 0x3b, 0x0d, 0x23, 0x76, 0xb7,
+ 0xb5, 0x6f, 0x75, 0xb0, 0x91, 0x12, 0x06, 0xbd, 0xd2, 0x0b, 0x90, 0x68, 0x9a, 0xfb, 0x56, 0x33,
+ 0x1b, 0x3f, 0xa7, 0xcc, 0x8f, 0x2f, 0x7f, 0x64, 0xa8, 0xac, 0x5c, 0xdc, 0x40, 0x10, 0x83, 0x20,
+ 0xf5, 0x67, 0x21, 0x4e, 0x87, 0x68, 0xc4, 0xb0, 0x30, 0x1c, 0x03, 0xca, 0x25, 0x03, 0xe3, 0xf4,
+ 0x47, 0x20, 0x85, 0xfe, 0x27, 0xb1, 0x31, 0x82, 0x75, 0x4e, 0xa2, 0x06, 0x14, 0x17, 0xfa, 0x0c,
+ 0x24, 0x71, 0x9a, 0xd4, 0x2d, 0x36, 0xb5, 0xf9, 0xd7, 0x28, 0xb0, 0xea, 0xd6, 0x81, 0xd9, 0x6d,
+ 0x7a, 0xd5, 0x57, 0xcd, 0x66, 0xd7, 0xc2, 0x01, 0x9f, 0x32, 0x32, 0xb4, 0xf1, 0x13, 0xa8, 0x4d,
+ 0x9f, 0x83, 0x34, 0xc9, 0xaa, 0x86, 0x5d, 0xb7, 0x5e, 0xc7, 0xa3, 0x67, 0xc2, 0x20, 0x89, 0xb6,
+ 0x8e, 0x5a, 0xd0, 0xed, 0x5f, 0x76, 0x1d, 0x9b, 0x85, 0x26, 0xbe, 0x05, 0x6a, 0xc0, 0xb7, 0xbf,
+ 0x2e, 0x0f, 0xdc, 0x8f, 0x86, 0x3f, 0x9e, 0x1c, 0x53, 0xb9, 0xaf, 0xc7, 0x20, 0x8e, 0xc7, 0x8b,
+ 0x09, 0x48, 0xef, 0xde, 0xdd, 0x2e, 0x57, 0x57, 0xb7, 0xf6, 0x8a, 0x1b, 0x65, 0x4d, 0xd1, 0xc7,
+ 0x01, 0x70, 0xc3, 0xda, 0xc6, 0x56, 0x61, 0x57, 0x8b, 0xf9, 0xd7, 0xeb, 0x95, 0xdd, 0x6b, 0x2b,
+ 0x9a, 0xea, 0x03, 0xf6, 0x48, 0x43, 0x9c, 0x17, 0xb8, 0xb2, 0xac, 0x25, 0x74, 0x0d, 0x32, 0x84,
+ 0x60, 0xfd, 0xc5, 0xf2, 0xea, 0xb5, 0x15, 0x6d, 0x44, 0x6c, 0xb9, 0xb2, 0xac, 0x8d, 0xea, 0x63,
+ 0x90, 0xc2, 0x2d, 0xc5, 0xad, 0xad, 0x0d, 0x2d, 0xe9, 0x73, 0xee, 0xec, 0x1a, 0xeb, 0x95, 0xdb,
+ 0x5a, 0xca, 0xe7, 0xbc, 0x6d, 0x6c, 0xed, 0x6d, 0x6b, 0xe0, 0x33, 0x6c, 0x96, 0x77, 0x76, 0x0a,
+ 0xb7, 0xcb, 0x5a, 0xda, 0x97, 0x28, 0xde, 0xdd, 0x2d, 0xef, 0x68, 0x19, 0x41, 0xad, 0x2b, 0xcb,
+ 0xda, 0x98, 0x7f, 0x8b, 0x72, 0x65, 0x6f, 0x53, 0x1b, 0xd7, 0x27, 0x61, 0x8c, 0xdc, 0x82, 0x29,
+ 0x31, 0x21, 0x35, 0x5d, 0x5b, 0xd1, 0xb4, 0x40, 0x11, 0xc2, 0x32, 0x29, 0x34, 0x5c, 0x5b, 0xd1,
+ 0xf4, 0x5c, 0x09, 0x12, 0x38, 0xba, 0x74, 0x1d, 0xc6, 0x37, 0x0a, 0xc5, 0xf2, 0x46, 0x75, 0x6b,
+ 0x7b, 0x77, 0x7d, 0xab, 0x52, 0xd8, 0xd0, 0x94, 0xa0, 0xcd, 0x28, 0x7f, 0x7c, 0x6f, 0xdd, 0x28,
+ 0xaf, 0x6a, 0x31, 0xbe, 0x6d, 0xbb, 0x5c, 0xd8, 0x2d, 0xaf, 0x6a, 0x6a, 0xae, 0x06, 0xa7, 0xc3,
+ 0xc6, 0xc9, 0xd0, 0xcc, 0xe0, 0x5c, 0x1c, 0xeb, 0xe3, 0x62, 0xcc, 0xd5, 0xe3, 0xe2, 0xef, 0xc6,
+ 0x60, 0x2a, 0x64, 0xae, 0x08, 0xbd, 0xc9, 0x73, 0x90, 0x20, 0x21, 0x4a, 0x66, 0xcf, 0x27, 0x43,
+ 0x27, 0x1d, 0x1c, 0xb0, 0x3d, 0x33, 0x28, 0xc6, 0xf1, 0x15, 0x84, 0xda, 0xa7, 0x82, 0x40, 0x14,
+ 0x3d, 0x63, 0xfa, 0x9f, 0xee, 0x19, 0xd3, 0xc9, 0xb4, 0x77, 0x6d, 0x98, 0x69, 0x0f, 0xb7, 0x9d,
+ 0x6c, 0x6c, 0x4f, 0x84, 0x8c, 0xed, 0xb7, 0x60, 0xb2, 0x87, 0x68, 0xe8, 0x31, 0xf6, 0x53, 0x0a,
+ 0x64, 0xfb, 0x19, 0x27, 0x62, 0xa4, 0x8b, 0x09, 0x23, 0xdd, 0x2d, 0xd9, 0x82, 0xe7, 0xfb, 0x3b,
+ 0xa1, 0xc7, 0xd7, 0x5f, 0x56, 0x60, 0x3a, 0xbc, 0x52, 0x0c, 0xd5, 0xe1, 0x59, 0x18, 0x69, 0x59,
+ 0xde, 0x91, 0xc3, 0xaa, 0xa5, 0x8b, 0x21, 0x73, 0x30, 0xea, 0x96, 0x9d, 0x4d, 0x51, 0xfc, 0x24,
+ 0xae, 0xf6, 0x2b, 0xf7, 0x88, 0x36, 0x3d, 0x9a, 0xfe, 0x4a, 0x0c, 0xce, 0x84, 0x92, 0x87, 0x2a,
+ 0xfa, 0x28, 0x40, 0xc3, 0x6e, 0x77, 0x3d, 0x52, 0x11, 0x91, 0x01, 0x36, 0x85, 0x5b, 0xf0, 0xe0,
+ 0x85, 0x06, 0xcf, 0xae, 0xe7, 0xf7, 0xab, 0xb8, 0x1f, 0x48, 0x13, 0x16, 0xb8, 0x11, 0x28, 0x1a,
+ 0xc7, 0x8a, 0xce, 0xf6, 0x79, 0xd2, 0x9e, 0xc0, 0x5c, 0x02, 0xad, 0xd6, 0x6c, 0x58, 0xb6, 0x57,
+ 0x75, 0xbd, 0x8e, 0x65, 0xb6, 0x1a, 0xf6, 0x21, 0x9e, 0x41, 0x92, 0xf9, 0xc4, 0x81, 0xd9, 0x74,
+ 0x2d, 0x63, 0x82, 0x74, 0xef, 0xb0, 0x5e, 0x84, 0xc0, 0x01, 0xd4, 0xe1, 0x10, 0x23, 0x02, 0x82,
+ 0x74, 0xfb, 0x88, 0xdc, 0x5f, 0x4d, 0x41, 0x9a, 0xab, 0xab, 0xf5, 0xf3, 0x90, 0x79, 0xd9, 0x7c,
+ 0xd5, 0xac, 0xb2, 0x77, 0x25, 0x62, 0x89, 0x34, 0x6a, 0xdb, 0xa6, 0xef, 0x4b, 0x4b, 0x70, 0x1a,
+ 0x8b, 0x38, 0x5d, 0xcf, 0xea, 0x54, 0x6b, 0x4d, 0xd3, 0x75, 0xb1, 0xd1, 0x92, 0x58, 0x54, 0x47,
+ 0x7d, 0x5b, 0xa8, 0xab, 0xc4, 0x7a, 0xf4, 0xab, 0x30, 0x85, 0x11, 0xad, 0x6e, 0xd3, 0x6b, 0xb4,
+ 0x9b, 0x56, 0x15, 0xbd, 0xbd, 0xb9, 0x78, 0x26, 0xf1, 0x35, 0x9b, 0x44, 0x12, 0x9b, 0x54, 0x00,
+ 0x69, 0xe4, 0xea, 0xab, 0xf0, 0x28, 0x86, 0x1d, 0x5a, 0xb6, 0xd5, 0x31, 0x3d, 0xab, 0x6a, 0xfd,
+ 0x62, 0xd7, 0x6c, 0xba, 0x55, 0xd3, 0xae, 0x57, 0x8f, 0x4c, 0xf7, 0x28, 0x7b, 0x1a, 0x11, 0x14,
+ 0x63, 0x59, 0xc5, 0x78, 0x18, 0x09, 0xde, 0xa6, 0x72, 0x65, 0x2c, 0x56, 0xb0, 0xeb, 0xcf, 0x9b,
+ 0xee, 0x91, 0x9e, 0x87, 0x69, 0xcc, 0xe2, 0x7a, 0x9d, 0x86, 0x7d, 0x58, 0xad, 0x1d, 0x59, 0xb5,
+ 0x57, 0xaa, 0x5d, 0xef, 0xe0, 0x46, 0xf6, 0x11, 0xfe, 0xfe, 0x58, 0xc3, 0x1d, 0x2c, 0x53, 0x42,
+ 0x22, 0x7b, 0xde, 0xc1, 0x0d, 0x7d, 0x07, 0x32, 0xc8, 0x19, 0xad, 0xc6, 0x1b, 0x56, 0xf5, 0xc0,
+ 0xe9, 0xe0, 0xa9, 0x71, 0x3c, 0x64, 0x68, 0xe2, 0x2c, 0xb8, 0xb8, 0x45, 0x01, 0x9b, 0x4e, 0xdd,
+ 0xca, 0x27, 0x76, 0xb6, 0xcb, 0xe5, 0x55, 0x23, 0xcd, 0x58, 0xd6, 0x9c, 0x0e, 0x0a, 0xa8, 0x43,
+ 0xc7, 0x37, 0x70, 0x9a, 0x04, 0xd4, 0xa1, 0xc3, 0xcc, 0x7b, 0x15, 0xa6, 0x6a, 0x35, 0xf2, 0xcc,
+ 0x8d, 0x5a, 0x95, 0xbe, 0x63, 0xb9, 0x59, 0x4d, 0x30, 0x56, 0xad, 0x76, 0x9b, 0x08, 0xd0, 0x18,
+ 0x77, 0xf5, 0x9b, 0x70, 0x26, 0x30, 0x16, 0x0f, 0x9c, 0xec, 0x79, 0x4a, 0x19, 0x7a, 0x15, 0xa6,
+ 0xda, 0xc7, 0xbd, 0x40, 0x5d, 0xb8, 0x63, 0xfb, 0x58, 0x86, 0x5d, 0x87, 0xd3, 0xed, 0xa3, 0x76,
+ 0x2f, 0x6e, 0x81, 0xc7, 0xe9, 0xed, 0xa3, 0xb6, 0x0c, 0x7c, 0x1c, 0xbf, 0x70, 0x77, 0xac, 0x9a,
+ 0xe9, 0x59, 0xf5, 0xec, 0x43, 0xbc, 0x38, 0xd7, 0xa1, 0x5f, 0x02, 0xad, 0x56, 0xab, 0x5a, 0xb6,
+ 0xb9, 0xdf, 0xb4, 0xaa, 0x66, 0xc7, 0xb2, 0x4d, 0x37, 0x3b, 0xc7, 0x0b, 0x8f, 0xd7, 0x6a, 0x65,
+ 0xdc, 0x5b, 0xc0, 0x9d, 0xfa, 0x02, 0x4c, 0x3a, 0xfb, 0x2f, 0xd7, 0x48, 0x48, 0x56, 0xdb, 0x1d,
+ 0xeb, 0xa0, 0xf1, 0x7a, 0xf6, 0x02, 0xb6, 0xef, 0x04, 0xea, 0xc0, 0x01, 0xb9, 0x8d, 0x9b, 0xf5,
+ 0x27, 0x41, 0xab, 0xb9, 0x47, 0x66, 0xa7, 0x8d, 0xc7, 0x64, 0xb7, 0x6d, 0xd6, 0xac, 0xec, 0xe3,
+ 0x44, 0x94, 0xb4, 0x57, 0x58, 0x33, 0x4a, 0x09, 0xf7, 0xb5, 0xc6, 0x81, 0xc7, 0x18, 0x9f, 0x20,
+ 0x29, 0x81, 0xdb, 0x28, 0xdb, 0x3c, 0x68, 0xc8, 0x14, 0xc2, 0x8d, 0xe7, 0xb1, 0xd8, 0x78, 0xfb,
+ 0xa8, 0xcd, 0xdf, 0xf7, 0x31, 0x18, 0x43, 0x92, 0xc1, 0x4d, 0x9f, 0x24, 0x05, 0x59, 0xfb, 0x88,
+ 0xbb, 0xe3, 0x0a, 0x4c, 0x23, 0xa1, 0x96, 0xe5, 0x99, 0x75, 0xd3, 0x33, 0x39, 0xe9, 0xa7, 0xb0,
+ 0x34, 0xb2, 0xfb, 0x26, 0xed, 0x14, 0xf4, 0xec, 0x74, 0xf7, 0x8f, 0xfd, 0xc8, 0x7a, 0x9a, 0xe8,
+ 0x89, 0xda, 0x58, 0x6c, 0x7d, 0x68, 0x45, 0x77, 0x2e, 0x0f, 0x19, 0x3e, 0xf0, 0xf5, 0x14, 0x90,
+ 0xd0, 0xd7, 0x14, 0x54, 0x05, 0x95, 0xb6, 0x56, 0x51, 0xfd, 0xf2, 0xc9, 0xb2, 0x16, 0x43, 0x75,
+ 0xd4, 0xc6, 0xfa, 0x6e, 0xb9, 0x6a, 0xec, 0x55, 0x76, 0xd7, 0x37, 0xcb, 0x9a, 0xca, 0x17, 0xec,
+ 0xdf, 0x8c, 0xc1, 0xb8, 0xf8, 0xee, 0xa5, 0x7f, 0x14, 0x1e, 0x62, 0x0b, 0x25, 0xae, 0xe5, 0x55,
+ 0x5f, 0x6b, 0x74, 0x70, 0x2e, 0xb6, 0x4c, 0x32, 0x2f, 0xfa, 0xd1, 0x70, 0x9a, 0x4a, 0xed, 0x58,
+ 0xde, 0x0b, 0x8d, 0x0e, 0xca, 0xb4, 0x96, 0xe9, 0xe9, 0x1b, 0x30, 0x67, 0x3b, 0x55, 0xd7, 0x33,
+ 0xed, 0xba, 0xd9, 0xa9, 0x57, 0x83, 0x25, 0xaa, 0xaa, 0x59, 0xab, 0x59, 0xae, 0xeb, 0x90, 0x39,
+ 0xd0, 0x67, 0x39, 0x6b, 0x3b, 0x3b, 0x54, 0x38, 0x98, 0x1c, 0x0a, 0x54, 0x54, 0x8a, 0x5c, 0xb5,
+ 0x5f, 0xe4, 0x3e, 0x02, 0xa9, 0x96, 0xd9, 0xae, 0x5a, 0xb6, 0xd7, 0x39, 0xc6, 0x15, 0x77, 0xd2,
+ 0x48, 0xb6, 0xcc, 0x76, 0x19, 0x5d, 0xff, 0x64, 0x5e, 0x7c, 0xfe, 0xb3, 0x0a, 0x19, 0xbe, 0xea,
+ 0x46, 0x2f, 0x31, 0x35, 0x3c, 0x41, 0x29, 0x78, 0x08, 0x7b, 0x6c, 0x60, 0x8d, 0xbe, 0x58, 0x42,
+ 0x33, 0x57, 0x7e, 0x84, 0xd4, 0xc2, 0x06, 0x41, 0xa2, 0xaa, 0x01, 0x85, 0x96, 0x45, 0x6a, 0x8f,
+ 0xa4, 0x41, 0xaf, 0xf4, 0xdb, 0x30, 0xf2, 0xb2, 0x8b, 0xb9, 0x47, 0x30, 0xf7, 0x85, 0xc1, 0xdc,
+ 0x77, 0x76, 0x30, 0x79, 0xea, 0xce, 0x4e, 0xb5, 0xb2, 0x65, 0x6c, 0x16, 0x36, 0x0c, 0x0a, 0xd7,
+ 0x1f, 0x86, 0x78, 0xd3, 0x7c, 0xe3, 0x58, 0x9c, 0xe3, 0x70, 0xd3, 0xb0, 0x86, 0x7f, 0x18, 0xe2,
+ 0xaf, 0x59, 0xe6, 0x2b, 0xe2, 0xcc, 0x82, 0x9b, 0x3e, 0xc4, 0xd0, 0xbf, 0x04, 0x09, 0x6c, 0x2f,
+ 0x1d, 0x80, 0x5a, 0x4c, 0x3b, 0xa5, 0x27, 0x21, 0x5e, 0xda, 0x32, 0x50, 0xf8, 0x6b, 0x90, 0x21,
+ 0xad, 0xd5, 0xed, 0xf5, 0x72, 0xa9, 0xac, 0xc5, 0x72, 0x57, 0x61, 0x84, 0x18, 0x01, 0xa5, 0x86,
+ 0x6f, 0x06, 0xed, 0x14, 0xbd, 0xa4, 0x1c, 0x0a, 0xeb, 0xdd, 0xdb, 0x2c, 0x96, 0x0d, 0x2d, 0xc6,
+ 0xbb, 0xd7, 0x85, 0x0c, 0x5f, 0x70, 0xff, 0x64, 0x62, 0xea, 0x1b, 0x0a, 0xa4, 0xb9, 0x02, 0x1a,
+ 0x55, 0x3e, 0x66, 0xb3, 0xe9, 0xbc, 0x56, 0x35, 0x9b, 0x0d, 0xd3, 0xa5, 0x41, 0x01, 0xb8, 0xa9,
+ 0x80, 0x5a, 0x86, 0x75, 0xda, 0x4f, 0x44, 0xf9, 0x2f, 0x28, 0xa0, 0xc9, 0xb5, 0xab, 0xa4, 0xa0,
+ 0xf2, 0x53, 0x55, 0xf0, 0x73, 0x0a, 0x8c, 0x8b, 0x05, 0xab, 0xa4, 0xde, 0xf9, 0x9f, 0xaa, 0x7a,
+ 0xdf, 0x89, 0xc1, 0x98, 0x50, 0xa6, 0x0e, 0xab, 0xdd, 0x2f, 0xc2, 0x64, 0xa3, 0x6e, 0xb5, 0xda,
+ 0x8e, 0x67, 0xd9, 0xb5, 0xe3, 0x6a, 0xd3, 0x7a, 0xd5, 0x6a, 0x66, 0x73, 0x78, 0xa0, 0xb8, 0x34,
+ 0xb8, 0x10, 0x5e, 0x5c, 0x0f, 0x70, 0x1b, 0x08, 0x96, 0x9f, 0x5a, 0x5f, 0x2d, 0x6f, 0x6e, 0x6f,
+ 0xed, 0x96, 0x2b, 0xa5, 0xbb, 0xd5, 0xbd, 0xca, 0xc7, 0x2a, 0x5b, 0x2f, 0x54, 0x0c, 0xad, 0x21,
+ 0x89, 0x7d, 0x88, 0xa9, 0xbe, 0x0d, 0x9a, 0xac, 0x94, 0xfe, 0x10, 0x84, 0xa9, 0xa5, 0x9d, 0xd2,
+ 0xa7, 0x60, 0xa2, 0xb2, 0x55, 0xdd, 0x59, 0x5f, 0x2d, 0x57, 0xcb, 0x6b, 0x6b, 0xe5, 0xd2, 0xee,
+ 0x0e, 0x59, 0xda, 0xf0, 0xa5, 0x77, 0xc5, 0xa4, 0xfe, 0xac, 0x0a, 0x53, 0x21, 0x9a, 0xe8, 0x05,
+ 0xfa, 0x52, 0x42, 0xde, 0x93, 0x9e, 0x1e, 0x46, 0xfb, 0x45, 0x54, 0x15, 0x6c, 0x9b, 0x1d, 0x8f,
+ 0xbe, 0xc3, 0x3c, 0x09, 0xc8, 0x4a, 0xb6, 0xd7, 0x38, 0x68, 0x58, 0x1d, 0xba, 0x12, 0x44, 0xde,
+ 0x54, 0x26, 0x82, 0x76, 0xb2, 0x18, 0xf4, 0x14, 0xe8, 0x6d, 0xc7, 0x6d, 0x78, 0x8d, 0x57, 0xad,
+ 0x6a, 0xc3, 0x66, 0xcb, 0x46, 0xe8, 0xcd, 0x25, 0x6e, 0x68, 0xac, 0x67, 0xdd, 0xf6, 0x7c, 0x69,
+ 0xdb, 0x3a, 0x34, 0x25, 0x69, 0x34, 0x80, 0xab, 0x86, 0xc6, 0x7a, 0x7c, 0xe9, 0xf3, 0x90, 0xa9,
+ 0x3b, 0x5d, 0x54, 0xce, 0x11, 0x39, 0x34, 0x5f, 0x28, 0x46, 0x9a, 0xb4, 0xf9, 0x22, 0xb4, 0x50,
+ 0x0f, 0xd6, 0xab, 0x32, 0x46, 0x9a, 0xb4, 0x11, 0x91, 0x27, 0x60, 0xc2, 0x3c, 0x3c, 0xec, 0x20,
+ 0x72, 0x46, 0x44, 0x5e, 0x3d, 0xc6, 0xfd, 0x66, 0x2c, 0x38, 0x73, 0x07, 0x92, 0xcc, 0x0e, 0x68,
+ 0x4a, 0x46, 0x96, 0xa8, 0xb6, 0xc9, 0xfb, 0x74, 0x6c, 0x3e, 0x65, 0x24, 0x6d, 0xd6, 0x79, 0x1e,
+ 0x32, 0x0d, 0xb7, 0x1a, 0x2c, 0xbf, 0xc7, 0xce, 0xc5, 0xe6, 0x93, 0x46, 0xba, 0xe1, 0xfa, 0x4b,
+ 0x97, 0xb9, 0x2f, 0xc7, 0x60, 0x5c, 0xdc, 0x3e, 0xd0, 0x57, 0x21, 0xd9, 0x74, 0x6a, 0x26, 0x0e,
+ 0x2d, 0xb2, 0x77, 0x35, 0x1f, 0xb1, 0xe3, 0xb0, 0xb8, 0x41, 0xe5, 0x0d, 0x1f, 0x39, 0xf3, 0xef,
+ 0x15, 0x48, 0xb2, 0x66, 0x7d, 0x1a, 0xe2, 0x6d, 0xd3, 0x3b, 0xc2, 0x74, 0x89, 0x62, 0x4c, 0x53,
+ 0x0c, 0x7c, 0x8d, 0xda, 0xdd, 0xb6, 0x69, 0xe3, 0x10, 0xa0, 0xed, 0xe8, 0x1a, 0xf9, 0xb5, 0x69,
+ 0x99, 0x75, 0xfc, 0x5e, 0xe3, 0xb4, 0x5a, 0x96, 0xed, 0xb9, 0xcc, 0xaf, 0xb4, 0xbd, 0x44, 0x9b,
+ 0xf5, 0x8f, 0xc0, 0xa4, 0xd7, 0x31, 0x1b, 0x4d, 0x41, 0x36, 0x8e, 0x65, 0x35, 0xd6, 0xe1, 0x0b,
+ 0xe7, 0xe1, 0x61, 0xc6, 0x5b, 0xb7, 0x3c, 0xb3, 0x76, 0x64, 0xd5, 0x03, 0xd0, 0x08, 0x5e, 0xbf,
+ 0x78, 0x88, 0x0a, 0xac, 0xd2, 0x7e, 0x86, 0xcd, 0xfd, 0x91, 0x02, 0x93, 0xec, 0x4d, 0xac, 0xee,
+ 0x1b, 0x6b, 0x13, 0xc0, 0xb4, 0x6d, 0xc7, 0xe3, 0xcd, 0xd5, 0x1b, 0xca, 0x3d, 0xb8, 0xc5, 0x82,
+ 0x0f, 0x32, 0x38, 0x82, 0x99, 0x16, 0x40, 0xd0, 0xd3, 0xd7, 0x6c, 0x73, 0x90, 0xa6, 0x7b, 0x43,
+ 0x78, 0x83, 0x91, 0xbc, 0xbb, 0x03, 0x69, 0x42, 0xaf, 0x6c, 0xfa, 0x69, 0x48, 0xec, 0x5b, 0x87,
+ 0x0d, 0x9b, 0xae, 0xf8, 0x92, 0x0b, 0xb6, 0xc2, 0x12, 0xf7, 0x57, 0x58, 0x8a, 0x2f, 0xc1, 0x54,
+ 0xcd, 0x69, 0xc9, 0xea, 0x16, 0x35, 0x69, 0xfd, 0xc0, 0x7d, 0x5e, 0xf9, 0x24, 0x04, 0x25, 0xe6,
+ 0x8f, 0x14, 0xe5, 0xd7, 0x63, 0xea, 0xed, 0xed, 0xe2, 0xef, 0xc4, 0x66, 0x6e, 0x13, 0xe8, 0x36,
+ 0x7b, 0x52, 0xc3, 0x3a, 0x68, 0x5a, 0x35, 0xa4, 0x3d, 0xfc, 0xd6, 0x47, 0xe0, 0xe9, 0xc3, 0x86,
+ 0x77, 0xd4, 0xdd, 0x5f, 0xac, 0x39, 0xad, 0x4b, 0x87, 0xce, 0xa1, 0x13, 0xec, 0xa9, 0xa2, 0x2b,
+ 0x7c, 0x81, 0x3f, 0xd1, 0x7d, 0xd5, 0x94, 0xdf, 0x3a, 0x13, 0xb9, 0x09, 0x9b, 0xaf, 0xc0, 0x14,
+ 0x15, 0xae, 0xe2, 0x8d, 0x1d, 0xf2, 0x7a, 0xa2, 0x0f, 0x5c, 0x1c, 0xcb, 0xfe, 0xee, 0xf7, 0xf0,
+ 0x74, 0x6d, 0x4c, 0x52, 0x28, 0xea, 0x23, 0x6f, 0x30, 0x79, 0x03, 0xce, 0x08, 0x7c, 0x24, 0x35,
+ 0xad, 0x4e, 0x04, 0xe3, 0x37, 0x29, 0xe3, 0x14, 0xc7, 0xb8, 0x43, 0xa1, 0xf9, 0x12, 0x8c, 0x9d,
+ 0x84, 0xeb, 0xdf, 0x50, 0xae, 0x8c, 0xc5, 0x93, 0xdc, 0x86, 0x09, 0x4c, 0x52, 0xeb, 0xba, 0x9e,
+ 0xd3, 0xc2, 0xe3, 0xde, 0x60, 0x9a, 0x7f, 0xfb, 0x3d, 0x92, 0x2b, 0xe3, 0x08, 0x56, 0xf2, 0x51,
+ 0xf9, 0x3c, 0xe0, 0xbd, 0xac, 0xba, 0x55, 0x6b, 0x46, 0x30, 0xdc, 0xa3, 0x8a, 0xf8, 0xf2, 0xf9,
+ 0x4f, 0xc0, 0x69, 0xf4, 0x19, 0x0f, 0x4b, 0xbc, 0x26, 0xd1, 0x2b, 0x69, 0xd9, 0x3f, 0xfa, 0x14,
+ 0x49, 0xc7, 0x29, 0x9f, 0x80, 0xd3, 0x89, 0xf3, 0xe2, 0xa1, 0xe5, 0x79, 0x56, 0xc7, 0xad, 0x9a,
+ 0xcd, 0x30, 0xf5, 0xb8, 0xa5, 0x88, 0xec, 0xaf, 0xfd, 0x40, 0xf4, 0xe2, 0x6d, 0x82, 0x2c, 0x34,
+ 0x9b, 0xf9, 0x3d, 0x78, 0x28, 0x24, 0x2a, 0x86, 0xe0, 0xfc, 0x2c, 0xe5, 0x3c, 0xdd, 0x13, 0x19,
+ 0x88, 0x76, 0x1b, 0x58, 0xbb, 0xef, 0xcb, 0x21, 0x38, 0xff, 0x3e, 0xe5, 0xd4, 0x29, 0x96, 0xb9,
+ 0x14, 0x31, 0xde, 0x81, 0xc9, 0x57, 0xad, 0xce, 0xbe, 0xe3, 0xd2, 0xe5, 0x9f, 0x21, 0xe8, 0x3e,
+ 0x47, 0xe9, 0x26, 0x28, 0x10, 0xaf, 0x07, 0x21, 0xae, 0x9b, 0x90, 0x3c, 0x30, 0x6b, 0xd6, 0x10,
+ 0x14, 0x9f, 0xa7, 0x14, 0xa3, 0x48, 0x1e, 0x41, 0x0b, 0x90, 0x39, 0x74, 0xe8, 0xcc, 0x14, 0x0d,
+ 0xff, 0x02, 0x85, 0xa7, 0x19, 0x86, 0x52, 0xb4, 0x9d, 0x76, 0xb7, 0x89, 0xa6, 0xad, 0x68, 0x8a,
+ 0x2f, 0x32, 0x0a, 0x86, 0xa1, 0x14, 0x27, 0x30, 0xeb, 0x5b, 0x8c, 0xc2, 0xe5, 0xec, 0xf9, 0x1c,
+ 0xa4, 0x1d, 0xbb, 0x79, 0xec, 0xd8, 0xc3, 0x28, 0xf1, 0x25, 0xca, 0x00, 0x14, 0x82, 0x08, 0x6e,
+ 0x41, 0x6a, 0x58, 0x47, 0xfc, 0xe6, 0x0f, 0x58, 0x7a, 0x30, 0x0f, 0xdc, 0x86, 0x09, 0x36, 0x40,
+ 0x35, 0x1c, 0x7b, 0x08, 0x8a, 0xdf, 0xa2, 0x14, 0xe3, 0x1c, 0x8c, 0x3e, 0x86, 0x67, 0xb9, 0xde,
+ 0xa1, 0x35, 0x0c, 0xc9, 0x97, 0xd9, 0x63, 0x50, 0x08, 0x35, 0xe5, 0xbe, 0x65, 0xd7, 0x8e, 0x86,
+ 0x63, 0xf8, 0x0a, 0x33, 0x25, 0xc3, 0x20, 0x8a, 0x12, 0x8c, 0xb5, 0xcc, 0x8e, 0x7b, 0x64, 0x36,
+ 0x87, 0x72, 0xc7, 0x6f, 0x53, 0x8e, 0x8c, 0x0f, 0xa2, 0x16, 0xe9, 0xda, 0x27, 0xa1, 0xf9, 0x1d,
+ 0x66, 0x11, 0x0e, 0x46, 0x53, 0xcf, 0xf5, 0xf0, 0x5a, 0xd9, 0x49, 0xd8, 0xfe, 0x01, 0x4b, 0x3d,
+ 0x82, 0xdd, 0xe4, 0x19, 0x6f, 0x41, 0xca, 0x6d, 0xbc, 0x31, 0x14, 0xcd, 0x3f, 0x64, 0x9e, 0xc6,
+ 0x00, 0x04, 0xbe, 0x0b, 0x0f, 0x87, 0x4e, 0x13, 0x43, 0x90, 0xfd, 0x23, 0x4a, 0x36, 0x1d, 0x32,
+ 0x55, 0xd0, 0x21, 0xe1, 0xa4, 0x94, 0xff, 0x98, 0x0d, 0x09, 0x96, 0xc4, 0xb5, 0x8d, 0xde, 0x15,
+ 0x5c, 0xf3, 0xe0, 0x64, 0x56, 0xfb, 0x27, 0xcc, 0x6a, 0x04, 0x2b, 0x58, 0x6d, 0x17, 0xa6, 0x29,
+ 0xe3, 0xc9, 0xfc, 0xfa, 0x55, 0x36, 0xb0, 0x12, 0xf4, 0x9e, 0xe8, 0xdd, 0x97, 0x60, 0xc6, 0x37,
+ 0x27, 0x2b, 0x4a, 0xdd, 0x6a, 0xcb, 0x6c, 0x0f, 0xc1, 0xfc, 0xbb, 0x94, 0x99, 0x8d, 0xf8, 0x7e,
+ 0x55, 0xeb, 0x6e, 0x9a, 0x6d, 0x44, 0xfe, 0x22, 0x64, 0x19, 0x79, 0xd7, 0xee, 0x58, 0x35, 0xe7,
+ 0xd0, 0x6e, 0xbc, 0x61, 0xd5, 0x87, 0xa0, 0xfe, 0x9a, 0xe4, 0xaa, 0x3d, 0x0e, 0x8e, 0x98, 0xd7,
+ 0x41, 0xf3, 0x6b, 0x95, 0x6a, 0xa3, 0xd5, 0x76, 0x3a, 0x5e, 0x04, 0xe3, 0x3f, 0x65, 0x9e, 0xf2,
+ 0x71, 0xeb, 0x18, 0x96, 0x2f, 0xc3, 0x38, 0xbe, 0x1c, 0x36, 0x24, 0x7f, 0x8f, 0x12, 0x8d, 0x05,
+ 0x28, 0x3a, 0x70, 0xd4, 0x9c, 0x56, 0xdb, 0xec, 0x0c, 0x33, 0xfe, 0xfd, 0x33, 0x36, 0x70, 0x50,
+ 0x08, 0x1d, 0x38, 0xbc, 0xe3, 0xb6, 0x85, 0x66, 0xfb, 0x21, 0x18, 0xbe, 0xce, 0x06, 0x0e, 0x86,
+ 0xa1, 0x14, 0xac, 0x60, 0x18, 0x82, 0xe2, 0x9f, 0x33, 0x0a, 0x86, 0x41, 0x14, 0x1f, 0x0f, 0x26,
+ 0xda, 0x8e, 0x75, 0xd8, 0x70, 0xbd, 0x0e, 0x29, 0x85, 0x07, 0x53, 0xfd, 0xfe, 0x0f, 0xc4, 0x22,
+ 0xcc, 0xe0, 0xa0, 0x68, 0x24, 0xa2, 0x4b, 0xa8, 0xf8, 0x4d, 0x29, 0x5a, 0xb1, 0x3f, 0x60, 0x23,
+ 0x11, 0x07, 0x43, 0xba, 0x71, 0x15, 0x22, 0x32, 0x7b, 0x0d, 0xbd, 0x1f, 0x0c, 0x41, 0xf7, 0x0d,
+ 0x49, 0xb9, 0x1d, 0x86, 0x45, 0x9c, 0x5c, 0xfd, 0xd3, 0xb5, 0x5f, 0xb1, 0x8e, 0x87, 0x8a, 0xce,
+ 0x7f, 0x21, 0xd5, 0x3f, 0x7b, 0x04, 0x49, 0xc6, 0x90, 0x09, 0xa9, 0x9e, 0xd2, 0xa3, 0x4e, 0x01,
+ 0x65, 0xff, 0xfc, 0x7b, 0xf4, 0x79, 0xc5, 0x72, 0x2a, 0xbf, 0x81, 0x82, 0x5c, 0x2c, 0x7a, 0xa2,
+ 0xc9, 0x3e, 0xf5, 0x9e, 0x1f, 0xe7, 0x42, 0xcd, 0x93, 0x5f, 0x83, 0x31, 0xa1, 0xe0, 0x89, 0xa6,
+ 0xfa, 0x0b, 0x94, 0x2a, 0xc3, 0xd7, 0x3b, 0xf9, 0xab, 0x10, 0x47, 0xc5, 0x4b, 0x34, 0xfc, 0x2f,
+ 0x52, 0x38, 0x16, 0xcf, 0x3f, 0x03, 0x49, 0x56, 0xb4, 0x44, 0x43, 0x7f, 0x99, 0x42, 0x7d, 0x08,
+ 0x82, 0xb3, 0x82, 0x25, 0x1a, 0xfe, 0x97, 0x18, 0x9c, 0x41, 0x10, 0x7c, 0x78, 0x13, 0xbe, 0xfd,
+ 0x57, 0xe2, 0x74, 0xd2, 0x61, 0xb6, 0xbb, 0x05, 0xa3, 0xb4, 0x52, 0x89, 0x46, 0xff, 0x0a, 0xbd,
+ 0x39, 0x43, 0xe4, 0xaf, 0x43, 0x62, 0x48, 0x83, 0xff, 0x35, 0x0a, 0x25, 0xf2, 0xf9, 0x12, 0xa4,
+ 0xb9, 0xea, 0x24, 0x1a, 0xfe, 0xd7, 0x29, 0x9c, 0x47, 0x21, 0xd5, 0x69, 0x75, 0x12, 0x4d, 0xf0,
+ 0x37, 0x98, 0xea, 0x14, 0x81, 0xcc, 0xc6, 0x0a, 0x93, 0x68, 0xf4, 0xdf, 0x64, 0x56, 0x67, 0x90,
+ 0xfc, 0x73, 0x90, 0xf2, 0x27, 0x9b, 0x68, 0xfc, 0xdf, 0xa2, 0xf8, 0x00, 0x83, 0x2c, 0xc0, 0x4d,
+ 0x76, 0xd1, 0x14, 0x7f, 0x9b, 0x59, 0x80, 0x43, 0xa1, 0x34, 0x92, 0x0b, 0x98, 0x68, 0xa6, 0x5f,
+ 0x65, 0x69, 0x24, 0xd5, 0x2f, 0xc8, 0x9b, 0x78, 0xcc, 0x8f, 0xa6, 0xf8, 0x3b, 0xcc, 0x9b, 0x58,
+ 0x1e, 0xa9, 0x21, 0x57, 0x04, 0xd1, 0x1c, 0x7f, 0x8f, 0xa9, 0x21, 0x15, 0x04, 0xf9, 0x6d, 0xd0,
+ 0x7b, 0xab, 0x81, 0x68, 0xbe, 0xcf, 0x50, 0xbe, 0xc9, 0x9e, 0x62, 0x20, 0xff, 0x02, 0x4c, 0x87,
+ 0x57, 0x02, 0xd1, 0xac, 0xbf, 0xf6, 0x9e, 0xf4, 0xee, 0xc6, 0x17, 0x02, 0xf9, 0xdd, 0x60, 0x4a,
+ 0xe1, 0xab, 0x80, 0x68, 0xda, 0xcf, 0xbe, 0x27, 0x0e, 0xdc, 0x7c, 0x11, 0x90, 0x2f, 0x00, 0x04,
+ 0x13, 0x70, 0x34, 0xd7, 0xe7, 0x28, 0x17, 0x07, 0x42, 0xa9, 0x41, 0xe7, 0xdf, 0x68, 0xfc, 0xe7,
+ 0x59, 0x6a, 0x50, 0x04, 0x4a, 0x0d, 0x36, 0xf5, 0x46, 0xa3, 0xbf, 0xc0, 0x52, 0x83, 0x41, 0x50,
+ 0x64, 0x73, 0xb3, 0x5b, 0x34, 0xc3, 0x97, 0x58, 0x64, 0x73, 0xa8, 0x7c, 0x05, 0x26, 0x7b, 0x26,
+ 0xc4, 0x68, 0xaa, 0x5f, 0xa7, 0x54, 0x9a, 0x3c, 0x1f, 0xf2, 0x93, 0x17, 0x9d, 0x0c, 0xa3, 0xd9,
+ 0x7e, 0x43, 0x9a, 0xbc, 0xe8, 0x5c, 0x98, 0xbf, 0x05, 0x49, 0xbb, 0xdb, 0x6c, 0xa2, 0xe4, 0xd1,
+ 0x07, 0x9f, 0xdc, 0xcb, 0xfe, 0xb7, 0x1f, 0x53, 0xeb, 0x30, 0x40, 0xfe, 0x2a, 0x24, 0xac, 0xd6,
+ 0xbe, 0x55, 0x8f, 0x42, 0xfe, 0xf7, 0x1f, 0xb3, 0x01, 0x13, 0x49, 0xe7, 0x9f, 0x03, 0x20, 0x4b,
+ 0x23, 0x78, 0xdb, 0x2f, 0x02, 0xfb, 0x3f, 0x7e, 0x4c, 0xcf, 0xd4, 0x04, 0x90, 0x80, 0x80, 0x9c,
+ 0xd0, 0x19, 0x4c, 0xf0, 0x03, 0x91, 0x00, 0x7b, 0xe4, 0x26, 0x8c, 0xbe, 0xec, 0x3a, 0xb6, 0x67,
+ 0x1e, 0x46, 0xa1, 0xff, 0x27, 0x45, 0x33, 0x79, 0x64, 0xb0, 0x96, 0xd3, 0xb1, 0x3c, 0xf3, 0xd0,
+ 0x8d, 0xc2, 0xfe, 0x2f, 0x8a, 0xf5, 0x01, 0x08, 0x5c, 0x33, 0x5d, 0x6f, 0x98, 0xe7, 0xfe, 0xdf,
+ 0x0c, 0xcc, 0x00, 0x48, 0x69, 0xf4, 0xf9, 0x15, 0xeb, 0x38, 0x0a, 0xfb, 0x43, 0xa6, 0x34, 0x95,
+ 0xcf, 0x3f, 0x03, 0x29, 0xf4, 0x91, 0x1c, 0x94, 0x8b, 0x00, 0xff, 0x1f, 0x0a, 0x0e, 0x10, 0xe8,
+ 0xce, 0xae, 0x57, 0xf7, 0x1a, 0xd1, 0xc6, 0xfe, 0x63, 0xea, 0x69, 0x26, 0x9f, 0x2f, 0x40, 0xda,
+ 0xf5, 0xea, 0xf5, 0x2e, 0xad, 0x4f, 0x23, 0xe0, 0xff, 0xf7, 0xc7, 0xfe, 0x92, 0x85, 0x8f, 0x41,
+ 0xde, 0x7e, 0xed, 0x15, 0xaf, 0xed, 0xe0, 0x6d, 0x8e, 0x28, 0x86, 0xf7, 0x28, 0x03, 0x07, 0x29,
+ 0x96, 0xc3, 0x97, 0x6f, 0xe1, 0xb6, 0x73, 0xdb, 0x21, 0x0b, 0xb7, 0x9f, 0xcc, 0x45, 0xaf, 0xc0,
+ 0xc2, 0x7f, 0x69, 0xc2, 0xf5, 0xbe, 0x62, 0x68, 0x2a, 0xbe, 0x54, 0x73, 0x5a, 0xfb, 0x8e, 0x7b,
+ 0x69, 0xdf, 0xf1, 0x8e, 0x2e, 0x79, 0x47, 0x16, 0x6a, 0xa3, 0x4b, 0xb6, 0x71, 0xf4, 0x79, 0xe6,
+ 0x64, 0xeb, 0xbc, 0x78, 0x17, 0xbf, 0xd2, 0x40, 0x8f, 0x56, 0xc1, 0x1b, 0x29, 0xfa, 0x59, 0x18,
+ 0xc1, 0x0f, 0x7b, 0x19, 0x6f, 0x56, 0x2a, 0xc5, 0xf8, 0xbd, 0x77, 0xe6, 0x4e, 0x19, 0xb4, 0xcd,
+ 0xef, 0x5d, 0xc6, 0x2b, 0xdd, 0x31, 0xa1, 0x77, 0xd9, 0xef, 0xbd, 0x42, 0x16, 0xbb, 0x85, 0xde,
+ 0x2b, 0x7e, 0xef, 0x0a, 0x5e, 0xf6, 0x56, 0x85, 0xde, 0x15, 0xbf, 0xf7, 0x2a, 0xde, 0xda, 0x19,
+ 0x13, 0x7a, 0xaf, 0xfa, 0xbd, 0xd7, 0xf0, 0x86, 0x4e, 0x5c, 0xe8, 0xbd, 0xe6, 0xf7, 0x5e, 0xc7,
+ 0x7b, 0x39, 0x93, 0x42, 0xef, 0x75, 0xbf, 0xf7, 0x06, 0xde, 0xc3, 0xd1, 0x85, 0xde, 0x1b, 0x7e,
+ 0xef, 0x4d, 0x7c, 0xf2, 0x6a, 0x54, 0xe8, 0xbd, 0xa9, 0xcf, 0xc2, 0x28, 0x79, 0xf2, 0x25, 0xbc,
+ 0xe1, 0x3f, 0x41, 0xbb, 0x59, 0x63, 0xd0, 0x7f, 0x19, 0x9f, 0xb2, 0x1a, 0x11, 0xfb, 0x2f, 0x07,
+ 0xfd, 0xcb, 0xf8, 0x0b, 0x1f, 0x9a, 0xd8, 0xbf, 0x1c, 0xf4, 0x5f, 0xc9, 0x8e, 0xe1, 0x93, 0x66,
+ 0x42, 0xff, 0x95, 0xa0, 0x7f, 0x25, 0x3b, 0x8e, 0x32, 0x46, 0xec, 0x5f, 0x09, 0xfa, 0xaf, 0x66,
+ 0x27, 0xce, 0x29, 0xf3, 0x19, 0xb1, 0xff, 0x6a, 0xee, 0x97, 0xb0, 0x7b, 0xed, 0xc0, 0xbd, 0xd3,
+ 0xa2, 0x7b, 0x7d, 0xc7, 0x4e, 0x8b, 0x8e, 0xf5, 0x5d, 0x3a, 0x2d, 0xba, 0xd4, 0x77, 0xe6, 0xb4,
+ 0xe8, 0x4c, 0xdf, 0x8d, 0xd3, 0xa2, 0x1b, 0x7d, 0x07, 0x4e, 0x8b, 0x0e, 0xf4, 0x5d, 0x37, 0x2d,
+ 0xba, 0xce, 0x77, 0xda, 0xb4, 0xe8, 0x34, 0xdf, 0x5d, 0xd3, 0xa2, 0xbb, 0x7c, 0x47, 0x65, 0x25,
+ 0x47, 0x05, 0x2e, 0xca, 0x4a, 0x2e, 0x0a, 0x9c, 0x93, 0x95, 0x9c, 0x13, 0xb8, 0x25, 0x2b, 0xb9,
+ 0x25, 0x70, 0x48, 0x56, 0x72, 0x48, 0xe0, 0x8a, 0xac, 0xe4, 0x8a, 0xc0, 0x09, 0x34, 0xc7, 0x0c,
+ 0xab, 0x1d, 0x92, 0x63, 0xea, 0xc0, 0x1c, 0x53, 0x07, 0xe6, 0x98, 0x3a, 0x30, 0xc7, 0xd4, 0x81,
+ 0x39, 0xa6, 0x0e, 0xcc, 0x31, 0x75, 0x60, 0x8e, 0xa9, 0x03, 0x73, 0x4c, 0x1d, 0x98, 0x63, 0xea,
+ 0xe0, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0x8d, 0xc8, 0x31, 0x35, 0x22, 0xc7, 0xd4, 0x88, 0x1c, 0x53,
+ 0x23, 0x72, 0x4c, 0xed, 0x9b, 0x63, 0x81, 0x7b, 0xa7, 0x45, 0xf7, 0x86, 0xe6, 0x98, 0xda, 0x27,
+ 0xc7, 0xd4, 0x3e, 0x39, 0xa6, 0xf6, 0xc9, 0x31, 0xb5, 0x4f, 0x8e, 0xa9, 0x7d, 0x72, 0x4c, 0xed,
+ 0x93, 0x63, 0x6a, 0x9f, 0x1c, 0x53, 0xfb, 0xe5, 0x98, 0xda, 0x37, 0xc7, 0xd4, 0xbe, 0x39, 0xa6,
+ 0xf6, 0xcd, 0x31, 0xb5, 0x6f, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xe5, 0x73, 0xec, 0x5f, 0xaa, 0xa0,
+ 0x93, 0x1c, 0xdb, 0xc6, 0x47, 0xc6, 0xa8, 0x2b, 0x66, 0xa5, 0x4c, 0x1b, 0x41, 0xae, 0xd3, 0x02,
+ 0x97, 0xcc, 0x4a, 0xb9, 0x26, 0xf6, 0x2f, 0xfb, 0xfd, 0x2c, 0xdb, 0xc4, 0xfe, 0x2b, 0x7e, 0x3f,
+ 0xcb, 0x37, 0xb1, 0x7f, 0xc5, 0xef, 0x67, 0x19, 0x27, 0xf6, 0x5f, 0xf5, 0xfb, 0x59, 0xce, 0x89,
+ 0xfd, 0xd7, 0xfc, 0x7e, 0x96, 0x75, 0x62, 0xff, 0x75, 0xbf, 0x9f, 0xe5, 0x9d, 0xd8, 0x7f, 0xc3,
+ 0xef, 0x67, 0x99, 0x27, 0xf6, 0xdf, 0xd4, 0xcf, 0xc9, 0xb9, 0xc7, 0x04, 0x7c, 0xd7, 0x9e, 0x93,
0xb3, 0x4f, 0x92, 0xb8, 0x1c, 0x48, 0xb0, 0xfc, 0x93, 0x24, 0x96, 0x03, 0x09, 0x96, 0x81, 0x92,
- 0xc4, 0x95, 0xdc, 0x67, 0xb0, 0xfb, 0x6c, 0xd9, 0x7d, 0x33, 0x92, 0xfb, 0x12, 0x9c, 0xeb, 0x66,
- 0x24, 0xd7, 0x25, 0x38, 0xb7, 0xcd, 0x48, 0x6e, 0x4b, 0x70, 0x2e, 0x9b, 0x91, 0x5c, 0x96, 0xe0,
- 0xdc, 0x35, 0x23, 0xb9, 0x2b, 0xc1, 0xb9, 0x6a, 0x46, 0x72, 0x55, 0x82, 0x73, 0xd3, 0x8c, 0xe4,
- 0xa6, 0x04, 0xe7, 0xa2, 0x19, 0xc9, 0x45, 0x09, 0xce, 0x3d, 0x33, 0x92, 0x7b, 0x12, 0x9c, 0x6b,
- 0xce, 0xca, 0xae, 0x49, 0xf0, 0x6e, 0x39, 0x2b, 0xbb, 0x25, 0xc1, 0xbb, 0xe4, 0xac, 0xec, 0x92,
- 0x04, 0xef, 0x8e, 0xb3, 0xb2, 0x3b, 0x12, 0xbc, 0x2b, 0xfe, 0x24, 0xc1, 0x3a, 0xc2, 0x1d, 0xaf,
- 0xd3, 0xad, 0x79, 0xef, 0xa9, 0x23, 0x5c, 0x12, 0xda, 0x87, 0xf4, 0xb2, 0xbe, 0x88, 0x1b, 0x56,
- 0xbe, 0xe3, 0x94, 0x56, 0xb0, 0x25, 0xa1, 0xb1, 0xe0, 0x10, 0x76, 0x34, 0x62, 0xe5, 0x3d, 0xf5,
- 0x86, 0x4b, 0x42, 0x9b, 0x11, 0xaf, 0xdf, 0x8d, 0x0f, 0xbc, 0x63, 0x7b, 0x2b, 0xc1, 0x3a, 0x36,
- 0x6a, 0xfe, 0x93, 0x76, 0x6c, 0x0b, 0xf1, 0x26, 0xf7, 0x8d, 0xbd, 0x10, 0x6f, 0xec, 0xd0, 0xaa,
- 0x33, 0x68, 0x07, 0xb7, 0x10, 0x6f, 0x5a, 0xdf, 0xa8, 0xef, 0x6f, 0xbf, 0x45, 0x23, 0xd8, 0xb0,
- 0xda, 0x11, 0x11, 0x7c, 0xd2, 0x7e, 0x6b, 0x49, 0x28, 0x25, 0x27, 0x8d, 0x60, 0xf5, 0xc4, 0x11,
- 0x7c, 0xd2, 0xce, 0x6b, 0x49, 0x28, 0x2f, 0x27, 0x8e, 0xe0, 0x0f, 0xa0, 0x1f, 0xa2, 0x11, 0x1c,
- 0x98, 0xff, 0xa4, 0xfd, 0xd0, 0x42, 0xbc, 0xc9, 0x23, 0x23, 0x58, 0x3d, 0x41, 0x04, 0x0f, 0xd2,
- 0x1f, 0x2d, 0xc4, 0x9b, 0x36, 0x3a, 0x82, 0xdf, 0x73, 0x37, 0xf3, 0x25, 0x05, 0x26, 0x2b, 0x8d,
- 0x7a, 0xb9, 0xb5, 0x6f, 0xd5, 0xeb, 0x56, 0x9d, 0xda, 0x71, 0x49, 0xa8, 0x04, 0x3d, 0x5c, 0xfd,
- 0xed, 0xb7, 0xe7, 0x02, 0x0b, 0x5f, 0x85, 0x14, 0xb1, 0xe9, 0xd2, 0x52, 0xf6, 0x9e, 0x12, 0x53,
- 0xe1, 0x7c, 0x51, 0xfd, 0x3c, 0x83, 0x5d, 0x5e, 0xca, 0xfe, 0x27, 0x85, 0xab, 0x72, 0xfe, 0x70,
- 0xee, 0x97, 0xb1, 0x86, 0xf6, 0x7b, 0xd6, 0xf0, 0xd2, 0x40, 0x1a, 0x72, 0xba, 0x3d, 0x12, 0xd2,
- 0x8d, 0xd3, 0xaa, 0x0b, 0x13, 0x95, 0x46, 0xbd, 0x82, 0x7f, 0x11, 0x60, 0x10, 0x95, 0x88, 0x8c,
- 0x54, 0x0f, 0x96, 0x84, 0xb0, 0xe4, 0x11, 0x7e, 0x48, 0x8b, 0x35, 0x22, 0xd7, 0x40, 0xa7, 0xb5,
- 0x85, 0xd3, 0x2e, 0xf4, 0x3a, 0x6d, 0x50, 0xd9, 0xfd, 0x13, 0x2e, 0xf4, 0x3a, 0x61, 0x90, 0x43,
- 0xfe, 0xa9, 0x5e, 0x63, 0x8b, 0x33, 0x79, 0x71, 0x4b, 0x3f, 0x0b, 0x89, 0x75, 0xf2, 0x5e, 0x79,
- 0xa6, 0x98, 0x41, 0x4a, 0x7d, 0xe7, 0xed, 0xb9, 0xe4, 0x5e, 0xb7, 0x51, 0x37, 0x12, 0xeb, 0x75,
- 0xfd, 0x0e, 0x0c, 0x7d, 0x92, 0x7e, 0x2f, 0x15, 0x09, 0xac, 0x50, 0x81, 0x8f, 0xc6, 0x3c, 0x62,
- 0xc2, 0xd4, 0x8b, 0x7b, 0x0d, 0xdb, 0xbb, 0xbc, 0x7c, 0xc3, 0x20, 0x14, 0xb9, 0x3f, 0x07, 0x40,
- 0xce, 0xb9, 0x6a, 0xba, 0x47, 0x7a, 0x85, 0x31, 0x93, 0x53, 0xdf, 0xf8, 0xce, 0xdb, 0x73, 0x2b,
- 0x83, 0xb0, 0x3e, 0x55, 0x37, 0xdd, 0xa3, 0xa7, 0xbc, 0xe3, 0xb6, 0xb5, 0x58, 0x3c, 0xf6, 0x2c,
- 0x97, 0xb1, 0xb7, 0xd9, 0xaa, 0x47, 0xaf, 0x2b, 0xcb, 0x5d, 0x57, 0x4a, 0xb8, 0xa6, 0x35, 0xf1,
- 0x9a, 0x96, 0x1e, 0xf4, 0x7a, 0x5e, 0x63, 0x8b, 0x84, 0x64, 0x49, 0x35, 0xce, 0x92, 0xea, 0x7b,
- 0xb5, 0x64, 0x9b, 0xd5, 0x47, 0xe9, 0x5a, 0xd5, 0x7e, 0xd7, 0xaa, 0xbe, 0x97, 0x6b, 0xfd, 0xff,
- 0x24, 0x5b, 0xfd, 0x7c, 0xda, 0xb3, 0xc9, 0x3b, 0xad, 0x7f, 0xb6, 0x9e, 0x05, 0xbd, 0xaf, 0x5d,
- 0x40, 0x3e, 0x79, 0xef, 0xcd, 0x39, 0x25, 0xf7, 0xa5, 0x04, 0xbb, 0x72, 0x92, 0x48, 0x0f, 0x76,
- 0xe5, 0x7f, 0x56, 0x7a, 0xaa, 0x0f, 0xc2, 0x42, 0x5f, 0x54, 0x60, 0x3a, 0x54, 0xc9, 0x89, 0x99,
- 0xde, 0xdf, 0x72, 0x6e, 0x9f, 0xb4, 0x9c, 0x53, 0x05, 0x7f, 0x57, 0x81, 0xd3, 0x52, 0x79, 0x25,
- 0xea, 0x5d, 0x92, 0xd4, 0x7b, 0x28, 0x7c, 0x26, 0x2c, 0xc8, 0x69, 0xc7, 0xbb, 0x57, 0x02, 0x70,
- 0xcc, 0xbe, 0xdf, 0x57, 0x24, 0xbf, 0x9f, 0xf5, 0x01, 0x11, 0xe6, 0x62, 0x11, 0x40, 0xd5, 0x76,
- 0x20, 0xb9, 0xdb, 0xb1, 0x2c, 0x7d, 0x16, 0x12, 0x5b, 0x1d, 0xaa, 0xe1, 0x38, 0xc1, 0x6f, 0x75,
- 0x8a, 0x1d, 0xd3, 0xae, 0x1d, 0x19, 0x89, 0xad, 0x8e, 0x7e, 0x1e, 0xd4, 0x02, 0xfd, 0x4e, 0x7c,
- 0x7a, 0x79, 0x82, 0x08, 0x14, 0xec, 0x3a, 0x95, 0x40, 0x73, 0xfa, 0x2c, 0x24, 0x37, 0x2c, 0xf3,
- 0x80, 0x2a, 0x01, 0x44, 0x06, 0x8d, 0x18, 0x78, 0x9c, 0x9e, 0xf0, 0x05, 0x48, 0x31, 0x62, 0xfd,
- 0x02, 0x42, 0x1c, 0x78, 0xf4, 0xb4, 0x14, 0x81, 0xd4, 0xa1, 0x2b, 0x17, 0x9e, 0xd5, 0x2f, 0xc2,
- 0x90, 0xd1, 0x38, 0x3c, 0xf2, 0xe8, 0xc9, 0xc3, 0x62, 0x64, 0x3a, 0x77, 0x17, 0x46, 0x7d, 0x8d,
- 0xde, 0x67, 0xea, 0x55, 0x72, 0x69, 0xfa, 0x0c, 0xbf, 0x9e, 0xb0, 0xe7, 0x96, 0x64, 0x48, 0x3f,
- 0x07, 0xa9, 0x1d, 0xaf, 0x13, 0x14, 0x7d, 0xd6, 0x91, 0xfa, 0xa3, 0xb9, 0x5f, 0x50, 0x20, 0xb5,
- 0x6a, 0x59, 0x6d, 0x6c, 0xf0, 0xc7, 0x21, 0xb9, 0xea, 0xbc, 0x6a, 0x53, 0x05, 0x27, 0xa9, 0x45,
- 0xd1, 0x34, 0xb5, 0x29, 0x9e, 0xd6, 0x1f, 0xe7, 0xed, 0x3e, 0xe5, 0xdb, 0x9d, 0x93, 0xc3, 0xb6,
- 0xcf, 0x09, 0xb6, 0xa7, 0x0e, 0x44, 0x42, 0x21, 0xfb, 0x5f, 0x87, 0x34, 0x77, 0x16, 0x7d, 0x9e,
- 0xaa, 0x91, 0x90, 0x81, 0xbc, 0xad, 0x90, 0x44, 0xce, 0x82, 0x31, 0xe1, 0xc4, 0x08, 0xca, 0x99,
- 0xb8, 0x07, 0x14, 0x9b, 0x79, 0x41, 0x34, 0x73, 0xb4, 0x28, 0x35, 0xf5, 0x12, 0xb1, 0x11, 0x36,
- 0xf7, 0x05, 0x12, 0x9c, 0xbd, 0x9d, 0x88, 0x3e, 0xe7, 0x86, 0x40, 0xad, 0x34, 0x9a, 0xb9, 0xa7,
- 0x01, 0x48, 0xca, 0x97, 0xed, 0x6e, 0x4b, 0xca, 0xba, 0x71, 0x66, 0xe0, 0xdd, 0x23, 0x6b, 0xd7,
- 0x72, 0xb1, 0x88, 0xd8, 0x4f, 0xa1, 0x02, 0x03, 0x24, 0xc5, 0x30, 0xfe, 0xc9, 0x58, 0x7c, 0x64,
- 0x27, 0x86, 0x44, 0xb3, 0x44, 0xf4, 0xae, 0xe5, 0x15, 0x6c, 0xc7, 0x3b, 0xb2, 0x3a, 0x12, 0x62,
- 0x59, 0xbf, 0x22, 0x24, 0xec, 0xf8, 0xf2, 0x23, 0x3e, 0xa2, 0x27, 0xe8, 0x4a, 0xee, 0x6b, 0x58,
- 0x41, 0xd4, 0x0a, 0x84, 0x2e, 0x50, 0x1d, 0xe0, 0x02, 0xf5, 0x6b, 0x42, 0xff, 0xd6, 0x47, 0x4d,
- 0xe9, 0xd6, 0xf2, 0xa6, 0x70, 0x9f, 0xd3, 0x5f, 0x59, 0xf1, 0x1e, 0x93, 0xd9, 0x94, 0xa9, 0xfc,
- 0x64, 0xac, 0xca, 0x3d, 0xba, 0xdb, 0x93, 0xda, 0x54, 0x1d, 0xd4, 0xa6, 0xdf, 0xf4, 0x3b, 0x0e,
- 0xf2, 0xc3, 0x23, 0xf8, 0x27, 0x7b, 0xf4, 0x8f, 0xc6, 0xfa, 0x3e, 0xaf, 0x94, 0x7c, 0x55, 0x57,
- 0x06, 0x75, 0x7f, 0x3e, 0x51, 0x2c, 0xfa, 0xea, 0x5e, 0x3f, 0x41, 0x08, 0xe4, 0x13, 0xa5, 0x92,
- 0x5f, 0xb6, 0x53, 0x9f, 0x79, 0x73, 0x4e, 0xf9, 0xea, 0x9b, 0x73, 0xa7, 0x72, 0xbf, 0xa9, 0xc0,
- 0x24, 0x95, 0xe4, 0x02, 0xf7, 0x29, 0x49, 0xf9, 0x33, 0xac, 0x66, 0x44, 0x59, 0xe0, 0xa7, 0x16,
- 0xbc, 0xdf, 0x52, 0x20, 0x1b, 0xd2, 0x95, 0xd9, 0x7b, 0x69, 0x20, 0x95, 0xf3, 0x4a, 0xf9, 0x67,
- 0x6f, 0xf3, 0xbb, 0x30, 0xb4, 0xdb, 0x68, 0x59, 0x1d, 0xb4, 0x12, 0xa0, 0x0f, 0x44, 0x65, 0xb6,
- 0x99, 0x43, 0x86, 0xd8, 0x1c, 0x51, 0x4e, 0x98, 0x5b, 0xd6, 0xb3, 0x90, 0x5c, 0x35, 0x3d, 0x13,
- 0x6b, 0x90, 0xf1, 0xeb, 0xab, 0xe9, 0x99, 0xb9, 0x2b, 0x90, 0xd9, 0x3c, 0xc6, 0x2f, 0x22, 0xd5,
- 0xf1, 0x3b, 0x28, 0x62, 0xf7, 0xc7, 0xfa, 0xd5, 0xcb, 0x0b, 0x43, 0xa9, 0xba, 0x76, 0x4f, 0xc9,
- 0x27, 0xb1, 0x3e, 0xaf, 0xc0, 0xf8, 0x16, 0x52, 0x1b, 0xe3, 0x30, 0xec, 0x1c, 0x28, 0x9b, 0x62,
- 0x23, 0xc4, 0xb3, 0x1a, 0xca, 0xa6, 0xd4, 0x3e, 0xaa, 0xbe, 0x79, 0xa4, 0xb6, 0x4d, 0xf5, 0xdb,
- 0xb6, 0x85, 0x64, 0x6a, 0x5c, 0x9b, 0x5c, 0x48, 0xa6, 0x40, 0x1b, 0xa3, 0xe7, 0xfd, 0x0f, 0x2a,
- 0x68, 0xa4, 0xd5, 0x59, 0xb5, 0x0e, 0x1a, 0x76, 0xc3, 0x0b, 0xf7, 0xab, 0xbe, 0xc6, 0xfa, 0xb3,
- 0x30, 0x8a, 0x4c, 0xba, 0x46, 0x7f, 0xb9, 0x0f, 0x99, 0xfe, 0x3c, 0x6d, 0x51, 0x24, 0x0a, 0x3a,
- 0x80, 0x43, 0x27, 0xc0, 0xe8, 0x6b, 0xa0, 0x56, 0x2a, 0x9b, 0x74, 0x71, 0x5b, 0xe9, 0x0b, 0xa5,
- 0x2f, 0xfb, 0xd0, 0x23, 0x3a, 0xe6, 0x1e, 0x1a, 0x88, 0x40, 0x5f, 0x81, 0x44, 0x65, 0x93, 0x36,
- 0xbc, 0x17, 0x06, 0xa1, 0x31, 0x12, 0x95, 0xcd, 0x99, 0x7f, 0xa3, 0xc0, 0x98, 0x30, 0xaa, 0xe7,
- 0x20, 0x43, 0x06, 0xb8, 0xcb, 0x1d, 0x36, 0x84, 0x31, 0xa6, 0x73, 0xe2, 0x3d, 0xea, 0x3c, 0x53,
- 0x80, 0x09, 0x69, 0x5c, 0x5f, 0x04, 0x9d, 0x1f, 0xa2, 0x4a, 0x90, 0x5f, 0x0d, 0x8b, 0x98, 0xc9,
- 0x3d, 0x0a, 0x10, 0xd8, 0xd5, 0xff, 0xb1, 0xab, 0x4a, 0x79, 0x67, 0xb7, 0xbc, 0xaa, 0x29, 0xb9,
- 0x6f, 0x28, 0x90, 0xa6, 0x6d, 0x6b, 0xcd, 0x69, 0x5b, 0x7a, 0x11, 0x94, 0x02, 0x8d, 0xa0, 0x07,
- 0xd3, 0x5b, 0x29, 0xe8, 0x97, 0x40, 0x29, 0x0e, 0xee, 0x6a, 0xa5, 0xa8, 0x2f, 0x83, 0x52, 0xa2,
- 0x0e, 0x1e, 0xcc, 0x33, 0x4a, 0x29, 0xf7, 0xc7, 0x2a, 0x4c, 0xf1, 0x6d, 0x34, 0xab, 0x27, 0xe7,
- 0xc5, 0xfb, 0xa6, 0xfc, 0xe8, 0xe5, 0xe5, 0x2b, 0x2b, 0x8b, 0xe8, 0x1f, 0x3f, 0x24, 0x73, 0xe2,
- 0x2d, 0x54, 0x1e, 0x7c, 0x91, 0xcb, 0xbd, 0xde, 0x13, 0xc9, 0x27, 0x39, 0x86, 0xd0, 0x7b, 0x22,
- 0xc2, 0x6c, 0xe8, 0x3d, 0x11, 0x61, 0x36, 0xf4, 0x9e, 0x88, 0x30, 0x1b, 0xda, 0x0b, 0x10, 0x66,
- 0x43, 0xef, 0x89, 0x08, 0xb3, 0xa1, 0xf7, 0x44, 0x84, 0xd9, 0xf0, 0x7b, 0x22, 0x74, 0xba, 0xe7,
- 0x7b, 0x22, 0xe2, 0x7c, 0xf8, 0x3d, 0x11, 0x71, 0x3e, 0xfc, 0x9e, 0x48, 0x3e, 0xe9, 0x75, 0xba,
- 0x56, 0xef, 0x5d, 0x07, 0x11, 0xdf, 0xef, 0x26, 0x30, 0xa8, 0xc0, 0x5b, 0x30, 0x41, 0x1e, 0x48,
- 0x94, 0x1c, 0xdb, 0x33, 0x1b, 0xb6, 0xd5, 0xd1, 0x3f, 0x06, 0x19, 0x32, 0x44, 0x6e, 0x73, 0xa2,
- 0x6e, 0x03, 0xc9, 0x3c, 0xad, 0xb7, 0x82, 0x74, 0xee, 0x4f, 0x92, 0x30, 0x4d, 0x06, 0x2a, 0x66,
- 0xcb, 0x12, 0xde, 0x32, 0xba, 0x28, 0xed, 0x29, 0x8d, 0x23, 0xf8, 0xfd, 0xb7, 0xe7, 0xc8, 0x68,
- 0xc1, 0x8f, 0xa6, 0x8b, 0xd2, 0xee, 0x92, 0x28, 0x17, 0x2c, 0x40, 0x17, 0xa5, 0x37, 0x8f, 0x44,
- 0x39, 0x7f, 0xbd, 0xf1, 0xe5, 0xd8, 0x3b, 0x48, 0xa2, 0xdc, 0xaa, 0x1f, 0x65, 0x17, 0xa5, 0xb7,
- 0x91, 0x44, 0xb9, 0xb2, 0x1f, 0x6f, 0x17, 0xa5, 0xbd, 0x27, 0x51, 0x6e, 0xcd, 0x8f, 0xbc, 0x8b,
- 0xd2, 0x2e, 0x94, 0x28, 0x77, 0xdb, 0x8f, 0xc1, 0x8b, 0xd2, 0xbb, 0x4a, 0xa2, 0xdc, 0x73, 0x7e,
- 0x34, 0x5e, 0x94, 0xde, 0x5a, 0x12, 0xe5, 0xd6, 0xfd, 0xb8, 0x9c, 0x97, 0xdf, 0x5f, 0x12, 0x05,
- 0xef, 0x04, 0x11, 0x3a, 0x2f, 0xbf, 0xc9, 0x24, 0x4a, 0x7e, 0x3c, 0x88, 0xd5, 0x79, 0xf9, 0x9d,
- 0x26, 0x51, 0x72, 0x23, 0x88, 0xda, 0x79, 0x79, 0xaf, 0x4c, 0x94, 0xdc, 0x0c, 0xe2, 0x77, 0x5e,
- 0xde, 0x35, 0x13, 0x25, 0x2b, 0x41, 0x24, 0xcf, 0xcb, 0xfb, 0x67, 0xa2, 0xe4, 0x56, 0xf0, 0x10,
- 0xfd, 0x0f, 0xa4, 0xf0, 0xe3, 0xde, 0x82, 0xca, 0x49, 0xe1, 0x07, 0x11, 0xa1, 0x27, 0x15, 0x32,
- 0x4e, 0x26, 0x08, 0xbb, 0x9c, 0x14, 0x76, 0x10, 0x11, 0x72, 0x39, 0x29, 0xe4, 0x20, 0x22, 0xdc,
- 0x72, 0x52, 0xb8, 0x41, 0x44, 0xa8, 0xe5, 0xa4, 0x50, 0x83, 0x88, 0x30, 0xcb, 0x49, 0x61, 0x06,
- 0x11, 0x21, 0x96, 0x93, 0x42, 0x0c, 0x22, 0xc2, 0x2b, 0x27, 0x85, 0x17, 0x44, 0x84, 0xd6, 0x05,
- 0x39, 0xb4, 0x20, 0x2a, 0xac, 0x2e, 0xc8, 0x61, 0x05, 0x51, 0x21, 0xf5, 0x98, 0x1c, 0x52, 0xa3,
- 0xf7, 0xdf, 0x9e, 0x1b, 0x42, 0x43, 0x5c, 0x34, 0x5d, 0x90, 0xa3, 0x09, 0xa2, 0x22, 0xe9, 0x82,
- 0x1c, 0x49, 0x10, 0x15, 0x45, 0x17, 0xe4, 0x28, 0x82, 0xa8, 0x08, 0x7a, 0x4b, 0x8e, 0xa0, 0xe0,
- 0x1d, 0x9f, 0x9c, 0xb4, 0xa5, 0x18, 0x17, 0x41, 0xea, 0x00, 0x11, 0xa4, 0x0e, 0x10, 0x41, 0xea,
- 0x00, 0x11, 0xa4, 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11, 0xa4, 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11,
- 0xa4, 0x0e, 0x12, 0x41, 0xea, 0x40, 0x11, 0xa4, 0xf6, 0x8a, 0xa0, 0x0b, 0xf2, 0x1b, 0x0f, 0x10,
- 0x55, 0x90, 0x2e, 0xc8, 0x5b, 0x9f, 0xf1, 0x21, 0xa4, 0x0e, 0x14, 0x42, 0x6a, 0xaf, 0x10, 0xfa,
- 0x03, 0x15, 0xa6, 0x84, 0x10, 0xa2, 0xfb, 0x43, 0xef, 0x57, 0x05, 0xba, 0x36, 0xc0, 0x0b, 0x16,
- 0x51, 0x31, 0x75, 0x6d, 0x80, 0x4d, 0xea, 0x7e, 0x71, 0x16, 0xae, 0x42, 0xe5, 0x01, 0xaa, 0xd0,
- 0x9a, 0x1f, 0x43, 0xd7, 0x06, 0x78, 0xf1, 0x22, 0x1c, 0x7b, 0x37, 0xfa, 0x15, 0x81, 0xe7, 0x06,
- 0x2a, 0x02, 0xeb, 0x03, 0x15, 0x81, 0x3b, 0x81, 0x07, 0x7f, 0x31, 0x01, 0xa7, 0x03, 0x0f, 0x92,
- 0x4f, 0xf8, 0x97, 0xb5, 0x72, 0xdc, 0x16, 0x95, 0xce, 0xb6, 0x6d, 0x38, 0x37, 0x26, 0xd6, 0xeb,
- 0xfa, 0xb6, 0xb8, 0x59, 0x95, 0x3f, 0xe9, 0x06, 0x0e, 0xe7, 0x71, 0xfa, 0x30, 0xf4, 0x02, 0xa8,
- 0xeb, 0x75, 0x17, 0x57, 0x8b, 0xa8, 0xd3, 0x96, 0x0c, 0x34, 0xad, 0x1b, 0x30, 0x8c, 0xc5, 0x5d,
- 0xec, 0xde, 0xf7, 0x72, 0xe2, 0x55, 0x83, 0x32, 0xe5, 0xde, 0x52, 0xe0, 0x9c, 0x10, 0xca, 0xef,
- 0xcf, 0x96, 0xc1, 0xad, 0x81, 0xb6, 0x0c, 0x84, 0x04, 0x09, 0xb6, 0x0f, 0x9e, 0x08, 0xef, 0x54,
- 0xf3, 0x59, 0x22, 0x6f, 0x25, 0xfc, 0x25, 0x18, 0x0f, 0xae, 0x00, 0xdf, 0xb3, 0x5d, 0x8d, 0x7f,
- 0x9a, 0x19, 0x95, 0x9a, 0x57, 0xa5, 0xa7, 0x68, 0x7d, 0x61, 0x7e, 0xb6, 0xe6, 0xf2, 0x30, 0x51,
- 0x11, 0xbf, 0x12, 0x15, 0xf7, 0x30, 0x22, 0x85, 0x5a, 0xf3, 0x7b, 0x5f, 0x9e, 0x3b, 0x95, 0xfb,
- 0x28, 0x64, 0xf8, 0x6f, 0x3d, 0x49, 0xc0, 0x51, 0x06, 0xcc, 0x27, 0xbf, 0x8d, 0xa4, 0xff, 0x81,
- 0x02, 0x67, 0x78, 0xf1, 0xe7, 0x1b, 0xde, 0xd1, 0xba, 0x8d, 0x7a, 0xfa, 0xa7, 0x21, 0x65, 0x51,
- 0xc7, 0xd1, 0x1f, 0xc9, 0xa1, 0xf7, 0x91, 0x91, 0xe2, 0x8b, 0xf8, 0x5f, 0xc3, 0x87, 0x48, 0xcf,
- 0x38, 0xd8, 0x69, 0x97, 0x67, 0x1e, 0x87, 0x21, 0xc2, 0x2f, 0xea, 0x35, 0x26, 0xe9, 0xf5, 0xeb,
- 0x11, 0x7a, 0xe1, 0x38, 0xd2, 0xef, 0x08, 0x7a, 0x71, 0xb7, 0xab, 0x91, 0xe2, 0x8b, 0x2c, 0xf8,
- 0x8a, 0x29, 0xd4, 0xff, 0xe1, 0x88, 0x8a, 0x57, 0x72, 0x1e, 0x52, 0x65, 0x59, 0x26, 0x5a, 0xcf,
- 0x55, 0x48, 0x56, 0x9c, 0x3a, 0xfe, 0xf9, 0x1e, 0xfc, 0x7b, 0xd5, 0xd4, 0xc8, 0xf4, 0xc7, 0xab,
- 0x2f, 0x42, 0xaa, 0x74, 0xd4, 0x68, 0xd6, 0x3b, 0x96, 0x4d, 0xf7, 0xec, 0xe9, 0x23, 0x74, 0x84,
- 0x31, 0xfc, 0xb9, 0x5c, 0x09, 0x26, 0x2b, 0x8e, 0x5d, 0x3c, 0xf6, 0xf8, 0xba, 0xb1, 0x28, 0xa5,
- 0x08, 0xdd, 0xf3, 0xc1, 0xdf, 0x12, 0x41, 0x02, 0xc5, 0xa1, 0xef, 0xbc, 0x3d, 0xa7, 0xec, 0xfa,
- 0xcf, 0xcf, 0x37, 0xe1, 0x21, 0x9a, 0x3e, 0x21, 0xaa, 0xe5, 0x38, 0xaa, 0x51, 0xba, 0x4f, 0xcd,
- 0xd1, 0xad, 0x23, 0x3a, 0x3b, 0x92, 0xee, 0xc1, 0x34, 0x43, 0x4d, 0x51, 0x5f, 0xcd, 0xd4, 0x13,
- 0x69, 0x16, 0x49, 0xb7, 0x18, 0x47, 0x27, 0x69, 0xf6, 0x18, 0x8c, 0xfa, 0x73, 0x5c, 0x34, 0xf0,
- 0x99, 0xb2, 0xbc, 0x90, 0x83, 0x34, 0x97, 0xb0, 0xfa, 0x10, 0x28, 0x05, 0xed, 0x14, 0xfa, 0xaf,
- 0xa8, 0x29, 0xe8, 0xbf, 0x92, 0x96, 0x58, 0x78, 0x1c, 0x26, 0xa4, 0xe7, 0x97, 0x68, 0x66, 0x55,
- 0x03, 0xf4, 0x5f, 0x59, 0x4b, 0xcf, 0x24, 0x3f, 0xf3, 0x6b, 0xb3, 0xa7, 0x16, 0x6e, 0x81, 0x1e,
- 0x7e, 0xd2, 0xa9, 0x0f, 0x43, 0xa2, 0x80, 0x28, 0x1f, 0x82, 0x44, 0xb1, 0xa8, 0x29, 0x33, 0x13,
- 0x7f, 0xfd, 0x0b, 0xe7, 0xd2, 0x45, 0xfc, 0x95, 0xee, 0xbb, 0x96, 0x57, 0x2c, 0x52, 0xf0, 0x33,
- 0x70, 0x26, 0xf2, 0x49, 0x29, 0xc2, 0x97, 0x4a, 0x04, 0xbf, 0xba, 0x1a, 0xc2, 0xaf, 0xae, 0x62,
- 0xbc, 0x92, 0x67, 0x3b, 0xce, 0x05, 0x3d, 0xe2, 0xb9, 0x64, 0xb6, 0xce, 0xed, 0x70, 0x17, 0xf2,
- 0xcf, 0x50, 0xd9, 0x62, 0xa4, 0xac, 0x15, 0xb3, 0x63, 0x5d, 0xcc, 0x97, 0x28, 0xbe, 0x14, 0x89,
- 0x3f, 0x90, 0xb6, 0x55, 0xc5, 0x15, 0x82, 0x92, 0x94, 0x7c, 0x85, 0x57, 0x23, 0x49, 0x8e, 0xb8,
- 0x97, 0xdd, 0x57, 0x7d, 0x85, 0xcb, 0x91, 0xb2, 0x8d, 0x98, 0x97, 0xbe, 0xca, 0xf9, 0x4b, 0x74,
- 0x91, 0x2f, 0x5c, 0xd6, 0xcf, 0xb0, 0x1c, 0x15, 0x2a, 0x30, 0x35, 0x10, 0x93, 0xca, 0x97, 0x28,
- 0xa0, 0xd8, 0x13, 0xd0, 0xdb, 0x4a, 0x0c, 0x99, 0x7f, 0x8e, 0x92, 0x94, 0x7a, 0x92, 0xc4, 0x98,
- 0x8a, 0xc1, 0x8b, 0xbb, 0xf7, 0xde, 0x99, 0x3d, 0xf5, 0xed, 0x77, 0x66, 0x4f, 0xfd, 0x97, 0x77,
- 0x66, 0x4f, 0x7d, 0xf7, 0x9d, 0x59, 0xe5, 0x07, 0xef, 0xcc, 0x2a, 0x3f, 0x7a, 0x67, 0x56, 0xf9,
- 0xf1, 0x3b, 0xb3, 0xca, 0x1b, 0xf7, 0x67, 0x95, 0xaf, 0xde, 0x9f, 0x55, 0xbe, 0x76, 0x7f, 0x56,
- 0xf9, 0xbd, 0xfb, 0xb3, 0xca, 0x5b, 0xf7, 0x67, 0x95, 0x7b, 0xf7, 0x67, 0x95, 0x6f, 0xdf, 0x9f,
- 0x55, 0xbe, 0x7b, 0x7f, 0x56, 0xf9, 0xc1, 0xfd, 0xd9, 0x53, 0x3f, 0xba, 0x3f, 0xab, 0xfc, 0xf8,
- 0xfe, 0xec, 0xa9, 0x37, 0xbe, 0x37, 0x7b, 0xea, 0xcd, 0xef, 0xcd, 0x9e, 0xfa, 0xea, 0xf7, 0x66,
- 0x15, 0xf8, 0xee, 0x0a, 0x3c, 0x22, 0x7d, 0x93, 0x0c, 0x77, 0x03, 0x57, 0xd8, 0xcf, 0x7f, 0xf9,
- 0x03, 0x27, 0xfc, 0x42, 0xd9, 0xcc, 0x83, 0x7e, 0x7d, 0x2d, 0xf7, 0x6f, 0x87, 0x60, 0x84, 0x3d,
- 0x06, 0x8e, 0xfa, 0x2d, 0xf3, 0xab, 0x90, 0x3a, 0x6a, 0x34, 0xcd, 0x4e, 0xc3, 0x3b, 0xa6, 0xcf,
- 0x3f, 0x1f, 0x5e, 0x0c, 0xd4, 0x66, 0x4f, 0x4c, 0x9f, 0xeb, 0xb6, 0x9c, 0x6e, 0xc7, 0xf0, 0x45,
- 0xf5, 0x73, 0x90, 0x39, 0xb2, 0x1a, 0x87, 0x47, 0x5e, 0xb5, 0x61, 0x57, 0x6b, 0x2d, 0xdc, 0x26,
- 0x8f, 0x19, 0x40, 0xc6, 0xd6, 0xed, 0x52, 0x0b, 0x9d, 0xac, 0x6e, 0x7a, 0x26, 0xbe, 0x3d, 0xcf,
- 0x18, 0xf8, 0xb3, 0x7e, 0x1e, 0x32, 0x1d, 0xcb, 0xed, 0x36, 0xbd, 0x6a, 0xcd, 0xe9, 0xda, 0x1e,
- 0x6e, 0x64, 0x55, 0x23, 0x4d, 0xc6, 0x4a, 0x68, 0x48, 0x7f, 0x0c, 0xc6, 0xbc, 0x4e, 0xd7, 0xaa,
- 0xba, 0x35, 0xc7, 0x73, 0x5b, 0xa6, 0x8d, 0x1b, 0xd9, 0x94, 0x91, 0x41, 0x83, 0x3b, 0x74, 0x0c,
- 0xff, 0x0c, 0x7e, 0xcd, 0xe9, 0x58, 0xf8, 0x3e, 0x3a, 0x61, 0x90, 0x03, 0x5d, 0x03, 0xf5, 0x65,
- 0xeb, 0x18, 0xdf, 0xa9, 0x25, 0x0d, 0xf4, 0x51, 0x7f, 0x12, 0x86, 0xc9, 0xdf, 0xb1, 0xc1, 0x6d,
- 0x35, 0xde, 0xb5, 0xf6, 0x2f, 0x8d, 0x3c, 0x9d, 0x35, 0xa8, 0x80, 0x7e, 0x13, 0x46, 0x3c, 0xab,
- 0xd3, 0x31, 0x1b, 0x36, 0xbe, 0x6b, 0x4a, 0x2f, 0xcf, 0x45, 0x98, 0x61, 0x97, 0x48, 0xe0, 0x9f,
- 0x03, 0x36, 0x98, 0xbc, 0x7e, 0x15, 0x32, 0x58, 0x6e, 0xb9, 0x4a, 0xfe, 0xd6, 0x4f, 0xba, 0x67,
- 0x20, 0xa7, 0x89, 0x1c, 0xdb, 0x24, 0x60, 0x30, 0xf2, 0x53, 0x88, 0x63, 0xf8, 0xb4, 0x8f, 0x45,
- 0x9c, 0x16, 0xd7, 0xdc, 0x65, 0xdc, 0x2f, 0x92, 0x53, 0x53, 0x1e, 0xf2, 0x63, 0x89, 0x9b, 0x90,
- 0xe1, 0xf5, 0x62, 0x66, 0x20, 0x7d, 0x0f, 0x36, 0xc3, 0x13, 0xc1, 0xdf, 0x51, 0xe8, 0x61, 0x05,
- 0x32, 0x9f, 0x4f, 0xdc, 0x50, 0x66, 0xb6, 0x41, 0x93, 0xcf, 0x17, 0x41, 0x79, 0x51, 0xa4, 0xd4,
- 0xf8, 0x8b, 0xc5, 0x8f, 0xc8, 0x03, 0xc6, 0xdc, 0xb3, 0x30, 0x4c, 0xe2, 0x47, 0x4f, 0xc3, 0x48,
- 0xf0, 0x2b, 0x9b, 0x29, 0x48, 0x6e, 0xef, 0x55, 0x76, 0xc8, 0xcf, 0xe5, 0xee, 0x6c, 0x14, 0xb6,
- 0x77, 0x76, 0xd7, 0x4b, 0x1f, 0xd7, 0x12, 0xfa, 0x04, 0xa4, 0x8b, 0xeb, 0x1b, 0x1b, 0xd5, 0x62,
- 0x61, 0x7d, 0xa3, 0x7c, 0x57, 0x53, 0x73, 0xb3, 0x30, 0x4c, 0xf4, 0xc4, 0x3f, 0xfb, 0xd7, 0xb5,
- 0xed, 0x63, 0xd6, 0x37, 0xe0, 0x83, 0xdc, 0xd7, 0x75, 0x18, 0x29, 0x34, 0x9b, 0x9b, 0x66, 0xdb,
- 0xd5, 0x9f, 0x87, 0x49, 0xf2, 0x83, 0x1c, 0xbb, 0xce, 0x2a, 0xfe, 0x75, 0x4a, 0x54, 0x15, 0x14,
- 0xfa, 0xf7, 0x23, 0x82, 0xeb, 0xa6, 0xe2, 0x8b, 0x21, 0x59, 0x62, 0xe0, 0x30, 0x87, 0xbe, 0x0b,
- 0x1a, 0x1b, 0x5c, 0x6b, 0x3a, 0xa6, 0x87, 0x78, 0x13, 0xf4, 0xc7, 0x23, 0x7b, 0xf3, 0x32, 0x51,
- 0x42, 0x1b, 0x62, 0xd0, 0x3f, 0x06, 0xa9, 0x75, 0xdb, 0xbb, 0xb2, 0x8c, 0xd8, 0xd8, 0xdf, 0x66,
- 0x0a, 0xb3, 0x31, 0x11, 0xc2, 0xe2, 0x23, 0x28, 0xfa, 0xda, 0x0a, 0x42, 0x27, 0xfb, 0xa1, 0xb1,
- 0x48, 0x80, 0xc6, 0x87, 0xfa, 0xb3, 0x30, 0x8a, 0x6e, 0x4b, 0xc8, 0xc9, 0x87, 0x58, 0xcf, 0x1a,
- 0x82, 0xfb, 0x32, 0x04, 0x1f, 0x60, 0x18, 0x01, 0x39, 0xff, 0x70, 0x5f, 0x02, 0x4e, 0x81, 0x00,
- 0x83, 0x08, 0x76, 0x7c, 0x0d, 0x46, 0x7a, 0x12, 0xec, 0x48, 0x1a, 0xec, 0xf0, 0x1a, 0xec, 0xf8,
- 0x1a, 0xa4, 0xfa, 0x12, 0xf0, 0x1a, 0xf8, 0xc7, 0x7a, 0x11, 0x60, 0xad, 0xf1, 0x9a, 0x55, 0x27,
- 0x2a, 0x90, 0xbf, 0xdc, 0x94, 0x8b, 0x60, 0x08, 0x84, 0x08, 0x05, 0x87, 0xd2, 0xcb, 0x90, 0xde,
- 0x39, 0x08, 0x48, 0x20, 0x94, 0xc7, 0xbe, 0x1a, 0x07, 0x12, 0x0b, 0x8f, 0xf3, 0x55, 0x21, 0x17,
- 0x93, 0xee, 0xaf, 0x0a, 0x77, 0x35, 0x1c, 0x2a, 0x50, 0x85, 0x90, 0x64, 0x62, 0x54, 0xe1, 0x58,
- 0x78, 0x1c, 0x2a, 0x86, 0x45, 0xc7, 0x41, 0x92, 0xb4, 0x2a, 0xcd, 0x45, 0x50, 0x50, 0x09, 0x5a,
- 0x0c, 0xe9, 0x11, 0xf6, 0x08, 0x0e, 0x72, 0x04, 0x1e, 0xef, 0xed, 0x11, 0x26, 0xc3, 0x3c, 0xc2,
- 0x8e, 0xf9, 0x3c, 0xc3, 0xaf, 0xb2, 0x22, 0x9e, 0x89, 0xd8, 0x3c, 0x63, 0xa2, 0x52, 0x9e, 0xb1,
- 0x61, 0xfd, 0x13, 0x30, 0xc1, 0xc6, 0x50, 0x79, 0x42, 0xa4, 0x1a, 0xfd, 0xdb, 0x76, 0xbd, 0x49,
- 0xa9, 0x24, 0xe1, 0x94, 0xf1, 0x7a, 0x05, 0xc6, 0xd9, 0xd0, 0xa6, 0x8b, 0x2f, 0x77, 0x92, 0xfe,
- 0xd9, 0x92, 0xde, 0x8c, 0x44, 0x90, 0x10, 0x4a, 0xe8, 0x99, 0x55, 0x98, 0x8e, 0xae, 0x46, 0x7c,
- 0xf9, 0x1d, 0x25, 0xe5, 0xf7, 0x34, 0x5f, 0x7e, 0x15, 0xbe, 0x7c, 0x97, 0xe0, 0x4c, 0x64, 0xed,
- 0x89, 0x23, 0x49, 0xf0, 0x24, 0xb7, 0x60, 0x4c, 0x28, 0x39, 0x3c, 0x78, 0x28, 0x02, 0x3c, 0x14,
- 0x06, 0x07, 0xa1, 0x15, 0xb1, 0x7a, 0x08, 0x60, 0x95, 0x07, 0x7f, 0x0c, 0xc6, 0xc5, 0x7a, 0xc3,
- 0xa3, 0xc7, 0x22, 0xd0, 0x63, 0x11, 0xe8, 0xe8, 0x73, 0x27, 0x23, 0xd0, 0x49, 0x09, 0xbd, 0xd3,
- 0xf3, 0xdc, 0x93, 0x11, 0xe8, 0xc9, 0x08, 0x74, 0xf4, 0xb9, 0xf5, 0x08, 0xb4, 0xce, 0xa3, 0x9f,
- 0x86, 0x09, 0xa9, 0xc4, 0xf0, 0xf0, 0x91, 0x08, 0xf8, 0x08, 0x0f, 0x7f, 0x06, 0x34, 0xb9, 0xb8,
- 0xf0, 0xf8, 0x89, 0x08, 0xfc, 0x44, 0xd4, 0xe9, 0xa3, 0xb5, 0x1f, 0x8e, 0x80, 0x0f, 0x47, 0x9e,
- 0x3e, 0x1a, 0xaf, 0x45, 0xe0, 0x35, 0x1e, 0x9f, 0x87, 0x0c, 0x5f, 0x4d, 0x78, 0x6c, 0x2a, 0x02,
- 0x9b, 0x92, 0xed, 0x2e, 0x14, 0x93, 0xb8, 0x48, 0x1f, 0xed, 0x91, 0x2e, 0x42, 0x09, 0x89, 0x23,
- 0xc9, 0xf0, 0x24, 0x9f, 0x84, 0xd3, 0x51, 0x25, 0x23, 0x82, 0x63, 0x9e, 0xe7, 0x18, 0x47, 0x3d,
- 0x62, 0xd0, 0xec, 0x99, 0x6d, 0xa9, 0x71, 0x9a, 0x79, 0x11, 0xa6, 0x22, 0x0a, 0x47, 0x04, 0xed,
- 0xa2, 0xd8, 0x8d, 0x65, 0x39, 0x5a, 0x5c, 0x04, 0x1a, 0xf6, 0xe1, 0xb6, 0xd3, 0xb0, 0x3d, 0xbe,
- 0x2b, 0xfb, 0xc6, 0x14, 0x8c, 0xd3, 0xf2, 0xb4, 0xd5, 0xa9, 0x5b, 0x1d, 0xab, 0xae, 0xff, 0x85,
- 0xde, 0xbd, 0xd3, 0x52, 0xb8, 0xa8, 0x51, 0xd4, 0x09, 0x5a, 0xa8, 0x17, 0x7b, 0xb6, 0x50, 0x97,
- 0xe2, 0xe9, 0xe3, 0x3a, 0xa9, 0x52, 0xa8, 0x93, 0x7a, 0xa2, 0x37, 0x69, 0xaf, 0x86, 0xaa, 0x14,
- 0x6a, 0xa8, 0xfa, 0x93, 0x44, 0xf6, 0x55, 0x6b, 0xe1, 0xbe, 0x6a, 0xbe, 0x37, 0x4b, 0xef, 0xf6,
- 0x6a, 0x2d, 0xdc, 0x5e, 0xc5, 0xf0, 0x44, 0x77, 0x59, 0x6b, 0xe1, 0x2e, 0xab, 0x0f, 0x4f, 0xef,
- 0x66, 0x6b, 0x2d, 0xdc, 0x6c, 0xc5, 0xf0, 0x44, 0xf7, 0x5c, 0xeb, 0x11, 0x3d, 0xd7, 0x93, 0xbd,
- 0x89, 0xfa, 0xb5, 0x5e, 0x1b, 0x51, 0xad, 0xd7, 0x42, 0x1f, 0xa5, 0xfa, 0x76, 0x60, 0xeb, 0x11,
- 0x1d, 0x58, 0x9c, 0x62, 0x3d, 0x1a, 0xb1, 0x8d, 0xa8, 0x46, 0x2c, 0x56, 0xb1, 0x5e, 0xfd, 0xd8,
- 0xcf, 0xc9, 0xfd, 0xd8, 0xc5, 0xde, 0x4c, 0xd1, 0x6d, 0xd9, 0x5a, 0xb8, 0x2d, 0x9b, 0x8f, 0xcb,
- 0xb9, 0xa8, 0xee, 0xec, 0xc5, 0x9e, 0xdd, 0xd9, 0x00, 0x29, 0x1c, 0xd7, 0xa4, 0xbd, 0xd0, 0xab,
- 0x49, 0x5b, 0x8c, 0xe7, 0xee, 0xdf, 0xab, 0xed, 0xf5, 0xe8, 0xd5, 0x9e, 0x8a, 0x27, 0xfe, 0xb0,
- 0x65, 0xfb, 0xb0, 0x65, 0xfb, 0xb0, 0x65, 0xfb, 0xb0, 0x65, 0xfb, 0xd9, 0xb7, 0x6c, 0xf9, 0xe4,
- 0x67, 0xbf, 0x3c, 0xa7, 0xe4, 0xfe, 0xb3, 0xea, 0xff, 0xa5, 0xb5, 0xe7, 0x1b, 0xde, 0x11, 0x2a,
- 0x6f, 0x9b, 0x90, 0xc1, 0xbf, 0xfc, 0xdb, 0x32, 0xdb, 0xed, 0x86, 0x7d, 0x48, 0x7b, 0xb6, 0x85,
- 0xf0, 0xa3, 0x44, 0x0a, 0xc0, 0x7f, 0x65, 0x66, 0x93, 0x08, 0xd3, 0xe5, 0xc6, 0x0e, 0x46, 0xf4,
- 0x3b, 0x90, 0x6e, 0xb9, 0x87, 0x3e, 0x5b, 0x22, 0xb4, 0x10, 0x4a, 0x6c, 0xe4, 0x4a, 0x03, 0x32,
- 0x68, 0xf9, 0x03, 0x48, 0xb5, 0xfd, 0x63, 0x2f, 0x50, 0x4d, 0x8d, 0x53, 0x0d, 0xf9, 0x54, 0x54,
- 0x6d, 0x3f, 0x18, 0x41, 0x61, 0x2b, 0xeb, 0x1e, 0x57, 0xe9, 0x84, 0xe0, 0x79, 0x1e, 0x26, 0x24,
- 0x6d, 0x23, 0x72, 0xfe, 0x01, 0x7c, 0x83, 0x14, 0x93, 0x35, 0x8f, 0xcb, 0x09, 0x3e, 0x20, 0x73,
- 0x8f, 0xc2, 0x98, 0xc0, 0xad, 0x67, 0x40, 0x39, 0xa0, 0xdf, 0xa3, 0x54, 0x0e, 0x72, 0x5f, 0x52,
- 0x20, 0x4d, 0xdf, 0x21, 0xd8, 0x36, 0x1b, 0x1d, 0xfd, 0x39, 0x48, 0x36, 0xd9, 0x77, 0x99, 0x1e,
- 0xf4, 0x7b, 0xb3, 0x98, 0x41, 0x5f, 0x83, 0xa1, 0x8e, 0xff, 0x5d, 0xa7, 0x07, 0xfa, 0x32, 0x2c,
- 0x86, 0xe7, 0xee, 0x29, 0x30, 0x49, 0x5f, 0x71, 0x75, 0xe9, 0x9b, 0xcf, 0x66, 0x7b, 0xe6, 0xeb,
- 0x0a, 0x8c, 0xfa, 0x47, 0xfa, 0x3e, 0x8c, 0xfb, 0x07, 0xe4, 0xed, 0x7a, 0x12, 0xa9, 0x79, 0xce,
- 0xc2, 0x21, 0x8e, 0xc5, 0x88, 0x4f, 0x64, 0x17, 0x8a, 0xac, 0xc9, 0xe2, 0xe0, 0x4c, 0x01, 0xa6,
- 0x22, 0xc4, 0x4e, 0xb2, 0x20, 0xe7, 0xce, 0xc3, 0x68, 0xc5, 0xf1, 0xc8, 0x4f, 0xe6, 0xe8, 0xa7,
- 0xb9, 0x5d, 0x85, 0x62, 0x42, 0x3b, 0x85, 0xc1, 0x0b, 0xe7, 0x61, 0x84, 0x66, 0xbf, 0x3e, 0x0c,
- 0x89, 0xcd, 0x82, 0x76, 0x0a, 0xff, 0x5f, 0xd4, 0x14, 0xfc, 0x7f, 0x49, 0x4b, 0x14, 0x37, 0xde,
- 0xcf, 0x2d, 0xa6, 0xfd, 0x61, 0x62, 0x9e, 0x3f, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x06, 0x49, 0x4e,
- 0x37, 0x66, 0x83, 0x00, 0x00,
+ 0xc4, 0x95, 0xdc, 0xa7, 0xb1, 0xfb, 0x6c, 0xd9, 0x7d, 0x33, 0x92, 0xfb, 0x62, 0x9c, 0xeb, 0x66,
+ 0x24, 0xd7, 0xc5, 0x38, 0xb7, 0xcd, 0x48, 0x6e, 0x8b, 0x71, 0x2e, 0x9b, 0x91, 0x5c, 0x16, 0xe3,
+ 0xdc, 0x35, 0x23, 0xb9, 0x2b, 0xc6, 0xb9, 0x6a, 0x46, 0x72, 0x55, 0x8c, 0x73, 0xd3, 0x8c, 0xe4,
+ 0xa6, 0x18, 0xe7, 0xa2, 0x19, 0xc9, 0x45, 0x31, 0xce, 0x3d, 0x33, 0x92, 0x7b, 0x62, 0x9c, 0x6b,
+ 0xce, 0xca, 0xae, 0x89, 0xf1, 0x6e, 0x39, 0x2b, 0xbb, 0x25, 0xc6, 0xbb, 0xe4, 0xac, 0xec, 0x92,
+ 0x18, 0xef, 0x8e, 0xb3, 0xb2, 0x3b, 0x62, 0xbc, 0x2b, 0xfe, 0x24, 0xc6, 0x2a, 0xc2, 0x1d, 0xaf,
+ 0xd3, 0xad, 0x79, 0xef, 0xab, 0x22, 0x5c, 0x12, 0xca, 0x87, 0xf4, 0xb2, 0xbe, 0x88, 0x0b, 0x56,
+ 0xbe, 0xe2, 0x94, 0x66, 0xb0, 0x25, 0xa1, 0xb0, 0xe0, 0x10, 0x76, 0x38, 0x62, 0xe5, 0x7d, 0xd5,
+ 0x86, 0x4b, 0x42, 0x99, 0x11, 0xad, 0xdf, 0x8d, 0x0f, 0xbd, 0x62, 0x7b, 0x3b, 0xc6, 0x2a, 0x36,
+ 0x6a, 0xfe, 0x93, 0x56, 0x6c, 0x0b, 0xd1, 0x26, 0xf7, 0x8d, 0xbd, 0x10, 0x6d, 0xec, 0x9e, 0x59,
+ 0x67, 0xd8, 0x0a, 0x6e, 0x21, 0xda, 0xb4, 0xbe, 0x51, 0x3f, 0xd8, 0x7a, 0x8b, 0x46, 0xb0, 0x61,
+ 0xb5, 0x43, 0x22, 0xf8, 0xa4, 0xf5, 0xd6, 0x92, 0x30, 0x94, 0x9c, 0x34, 0x82, 0xd5, 0x13, 0x47,
+ 0xf0, 0x49, 0x2b, 0xaf, 0x25, 0x61, 0x78, 0x39, 0x71, 0x04, 0x7f, 0x08, 0xf5, 0x10, 0x8d, 0xe0,
+ 0xc0, 0xfc, 0x27, 0xad, 0x87, 0x16, 0xa2, 0x4d, 0x1e, 0x1a, 0xc1, 0xea, 0x09, 0x22, 0x78, 0x98,
+ 0xfa, 0x68, 0x21, 0xda, 0xb4, 0xe1, 0x11, 0xfc, 0xbe, 0xab, 0x99, 0x2f, 0x2a, 0x30, 0x59, 0x69,
+ 0xd4, 0xcb, 0xad, 0x7d, 0xab, 0x5e, 0xb7, 0xea, 0xd4, 0x8e, 0x4b, 0xc2, 0x48, 0xd0, 0xc7, 0xd5,
+ 0xdf, 0x7a, 0x67, 0x2e, 0xb0, 0xf0, 0x55, 0x48, 0x12, 0x9b, 0x2e, 0x2d, 0x65, 0xef, 0x29, 0x11,
+ 0x23, 0x9c, 0x2f, 0xaa, 0x9f, 0x67, 0xb0, 0xcb, 0x4b, 0xd9, 0xff, 0xa0, 0x70, 0xa3, 0x9c, 0xdf,
+ 0x9c, 0xfb, 0x55, 0xac, 0xa1, 0xfd, 0xbe, 0x35, 0xbc, 0x34, 0x94, 0x86, 0x9c, 0x6e, 0x8f, 0xf4,
+ 0xe8, 0xc6, 0x69, 0xd5, 0x85, 0x89, 0x4a, 0xa3, 0x5e, 0xc1, 0x3f, 0x35, 0x30, 0x8c, 0x4a, 0x44,
+ 0x46, 0x1a, 0x0f, 0x96, 0x84, 0xb0, 0xe4, 0x11, 0x7e, 0x48, 0x8b, 0x63, 0x44, 0xae, 0x81, 0x6e,
+ 0x6b, 0x0b, 0xb7, 0x5d, 0xe8, 0x77, 0xdb, 0x60, 0x64, 0xf7, 0x6f, 0xb8, 0xd0, 0xef, 0x86, 0x41,
+ 0x0e, 0xf9, 0xb7, 0x7a, 0x9d, 0x4d, 0xce, 0xe4, 0xe0, 0x96, 0x7e, 0x16, 0x62, 0xeb, 0xe4, 0x5c,
+ 0x79, 0xa6, 0x98, 0x41, 0x4a, 0x7d, 0xfb, 0x9d, 0xb9, 0xf8, 0x5e, 0xb7, 0x51, 0x37, 0x62, 0xeb,
+ 0x75, 0xfd, 0x0e, 0x24, 0x3e, 0x41, 0xbf, 0xf0, 0x8a, 0x04, 0x56, 0xa8, 0xc0, 0x53, 0x11, 0x4b,
+ 0x4c, 0x98, 0x7a, 0x71, 0xaf, 0x61, 0x7b, 0x97, 0x97, 0x6f, 0x18, 0x84, 0x22, 0xf7, 0xa7, 0x00,
+ 0xc8, 0x3d, 0x57, 0x4d, 0xf7, 0x48, 0xaf, 0x30, 0x66, 0x72, 0xeb, 0x1b, 0xdf, 0x7e, 0x67, 0x6e,
+ 0x65, 0x18, 0xd6, 0xa7, 0xeb, 0xa6, 0x7b, 0xf4, 0xb4, 0x77, 0xdc, 0xb6, 0x16, 0x8b, 0xc7, 0x9e,
+ 0xe5, 0x32, 0xf6, 0x36, 0x9b, 0xf5, 0xe8, 0x73, 0x65, 0xb9, 0xe7, 0x4a, 0x0a, 0xcf, 0xb4, 0x26,
+ 0x3e, 0xd3, 0xd2, 0x83, 0x3e, 0xcf, 0xeb, 0x6c, 0x92, 0x90, 0x2c, 0xa9, 0x46, 0x59, 0x52, 0x7d,
+ 0xbf, 0x96, 0x6c, 0xb3, 0xf1, 0x51, 0x7a, 0x56, 0x75, 0xd0, 0xb3, 0xaa, 0xef, 0xe7, 0x59, 0xff,
+ 0x1f, 0xc9, 0x56, 0x3f, 0x9f, 0xf6, 0x6c, 0x72, 0xa6, 0xf5, 0x67, 0x6b, 0x2d, 0xe8, 0x03, 0xad,
+ 0x02, 0xf2, 0xf1, 0x7b, 0x6f, 0xcd, 0x29, 0xb9, 0x2f, 0xc6, 0xd8, 0x93, 0x93, 0x44, 0x7a, 0xb0,
+ 0x27, 0xff, 0x59, 0xa9, 0xa9, 0x3e, 0x0c, 0x0b, 0x7d, 0x41, 0x81, 0xe9, 0x9e, 0x91, 0x9c, 0x98,
+ 0xe9, 0x83, 0x1d, 0xce, 0xed, 0x93, 0x0e, 0xe7, 0x54, 0xc1, 0xdf, 0x53, 0xe0, 0xb4, 0x34, 0xbc,
+ 0x12, 0xf5, 0x2e, 0x49, 0xea, 0x3d, 0xd4, 0x7b, 0x27, 0x2c, 0xc8, 0x69, 0xc7, 0xbb, 0x57, 0x02,
+ 0x70, 0xcc, 0xbe, 0xdf, 0x57, 0x24, 0xbf, 0x9f, 0xf5, 0x01, 0x21, 0xe6, 0x62, 0x11, 0x40, 0xd5,
+ 0x76, 0x20, 0xbe, 0xdb, 0xb1, 0x2c, 0x7d, 0x16, 0x62, 0x5b, 0x1d, 0xaa, 0xe1, 0x38, 0xc1, 0x6f,
+ 0x75, 0x8a, 0x1d, 0xd3, 0xae, 0x1d, 0x19, 0xb1, 0xad, 0x8e, 0x7e, 0x1e, 0xd4, 0x02, 0xfd, 0xb2,
+ 0x7d, 0x7a, 0x79, 0x82, 0x08, 0x14, 0xec, 0x3a, 0x95, 0x40, 0x7d, 0xfa, 0x2c, 0xc4, 0x37, 0x2c,
+ 0xf3, 0x80, 0x2a, 0x01, 0x44, 0x06, 0xb5, 0x18, 0xb8, 0x9d, 0xde, 0xf0, 0x45, 0x48, 0x32, 0x62,
+ 0xfd, 0x02, 0x42, 0x1c, 0x78, 0xf4, 0xb6, 0x14, 0x81, 0xd4, 0xa1, 0x33, 0x17, 0xee, 0xd5, 0x2f,
+ 0x42, 0xc2, 0x68, 0x1c, 0x1e, 0x79, 0xf4, 0xe6, 0xbd, 0x62, 0xa4, 0x3b, 0x77, 0x17, 0x52, 0xbe,
+ 0x46, 0x1f, 0x30, 0xf5, 0x2a, 0x79, 0x34, 0x7d, 0x86, 0x9f, 0x4f, 0xd8, 0xba, 0x25, 0x69, 0xd2,
+ 0xcf, 0x41, 0x72, 0xc7, 0xeb, 0x04, 0x83, 0x3e, 0xab, 0x48, 0xfd, 0xd6, 0xdc, 0x2f, 0x29, 0x90,
+ 0x5c, 0xb5, 0xac, 0x36, 0x36, 0xf8, 0xe3, 0x10, 0x5f, 0x75, 0x5e, 0xb3, 0xa9, 0x82, 0x93, 0xd4,
+ 0xa2, 0xa8, 0x9b, 0xda, 0x14, 0x77, 0xeb, 0x8f, 0xf3, 0x76, 0x9f, 0xf2, 0xed, 0xce, 0xc9, 0x61,
+ 0xdb, 0xe7, 0x04, 0xdb, 0x53, 0x07, 0x22, 0xa1, 0x1e, 0xfb, 0x5f, 0x87, 0x34, 0x77, 0x17, 0x7d,
+ 0x9e, 0xaa, 0x11, 0x93, 0x81, 0xbc, 0xad, 0x90, 0x44, 0xce, 0x82, 0x31, 0xe1, 0xc6, 0x08, 0xca,
+ 0x99, 0xb8, 0x0f, 0x14, 0x9b, 0x79, 0x41, 0x34, 0x73, 0xb8, 0x28, 0x35, 0xf5, 0x12, 0xb1, 0x11,
+ 0x36, 0xf7, 0x05, 0x12, 0x9c, 0xfd, 0x9d, 0x88, 0x3e, 0xe7, 0x12, 0xa0, 0x56, 0x1a, 0xcd, 0xdc,
+ 0x33, 0x00, 0x24, 0xe5, 0xcb, 0x76, 0xb7, 0x25, 0x65, 0xdd, 0x38, 0x33, 0xf0, 0xee, 0x91, 0xb5,
+ 0x6b, 0xb9, 0x58, 0x44, 0xac, 0xa7, 0xd0, 0x00, 0x03, 0x24, 0xc5, 0x30, 0xfe, 0xc9, 0x48, 0x7c,
+ 0x68, 0x25, 0x86, 0x44, 0xb3, 0x44, 0xf4, 0xae, 0xe5, 0x15, 0x6c, 0xc7, 0x3b, 0xb2, 0x3a, 0x12,
+ 0x62, 0x59, 0xbf, 0x22, 0x24, 0xec, 0xf8, 0xf2, 0x23, 0x3e, 0xa2, 0x2f, 0xe8, 0x4a, 0xee, 0xab,
+ 0x58, 0x41, 0x54, 0x0a, 0xf4, 0x3c, 0xa0, 0x3a, 0xc4, 0x03, 0xea, 0xd7, 0x84, 0xfa, 0x6d, 0x80,
+ 0x9a, 0xd2, 0xab, 0xe5, 0x4d, 0xe1, 0x3d, 0x67, 0xb0, 0xb2, 0xe2, 0x3b, 0x26, 0xb3, 0x29, 0x53,
+ 0xf9, 0xc9, 0x48, 0x95, 0xfb, 0x54, 0xb7, 0x27, 0xb5, 0xa9, 0x3a, 0xac, 0x4d, 0xbf, 0xe1, 0x57,
+ 0x1c, 0xe4, 0x17, 0x4d, 0xf0, 0x6f, 0x01, 0xe9, 0x4f, 0x45, 0xfa, 0x3e, 0xaf, 0x94, 0x7c, 0x55,
+ 0x57, 0x86, 0x75, 0x7f, 0x3e, 0x56, 0x2c, 0xfa, 0xea, 0x5e, 0x3f, 0x41, 0x08, 0xe4, 0x63, 0xa5,
+ 0x92, 0x3f, 0x6c, 0x27, 0x3f, 0xfd, 0xd6, 0x9c, 0xf2, 0x95, 0xb7, 0xe6, 0x4e, 0xe5, 0x7e, 0x5b,
+ 0x81, 0x49, 0x2a, 0xc9, 0x05, 0xee, 0xd3, 0x92, 0xf2, 0x67, 0xd8, 0x98, 0x11, 0x66, 0x81, 0x9f,
+ 0x58, 0xf0, 0x7e, 0x53, 0x81, 0x6c, 0x8f, 0xae, 0xcc, 0xde, 0x4b, 0x43, 0xa9, 0x9c, 0x57, 0xca,
+ 0x3f, 0x7d, 0x9b, 0xdf, 0x85, 0xc4, 0x6e, 0xa3, 0x65, 0x75, 0xd0, 0x4c, 0x80, 0x3e, 0x10, 0x95,
+ 0xd9, 0x66, 0x0e, 0x69, 0x62, 0x7d, 0x44, 0x39, 0xa1, 0x6f, 0x59, 0xcf, 0x42, 0x7c, 0xd5, 0xf4,
+ 0x4c, 0xac, 0x41, 0xc6, 0x1f, 0x5f, 0x4d, 0xcf, 0xcc, 0x5d, 0x81, 0xcc, 0xe6, 0x31, 0x3e, 0x88,
+ 0x54, 0xc7, 0x67, 0x50, 0xc4, 0xea, 0x8f, 0xd5, 0xab, 0x97, 0x17, 0x12, 0xc9, 0xba, 0x76, 0x4f,
+ 0xc9, 0xc7, 0xb1, 0x3e, 0xaf, 0xc2, 0xf8, 0x16, 0x52, 0x1b, 0xe3, 0x30, 0xec, 0x1c, 0x28, 0x9b,
+ 0x62, 0x21, 0xc4, 0xb3, 0x1a, 0xca, 0xa6, 0x54, 0x3e, 0xaa, 0xbe, 0x79, 0xa4, 0xb2, 0x4d, 0xf5,
+ 0xcb, 0xb6, 0x85, 0x78, 0x72, 0x5c, 0x9b, 0x5c, 0x88, 0x27, 0x41, 0x1b, 0xa3, 0xf7, 0xfd, 0x77,
+ 0x2a, 0x68, 0xa4, 0xd4, 0x59, 0xb5, 0x0e, 0x1a, 0x76, 0xc3, 0xeb, 0xad, 0x57, 0x7d, 0x8d, 0xf5,
+ 0xe7, 0x20, 0x85, 0x4c, 0xba, 0x46, 0x7f, 0x12, 0x10, 0x99, 0xfe, 0x3c, 0x2d, 0x51, 0x24, 0x0a,
+ 0xda, 0x80, 0x43, 0x27, 0xc0, 0xe8, 0x6b, 0xa0, 0x56, 0x2a, 0x9b, 0x74, 0x72, 0x5b, 0x19, 0x08,
+ 0xa5, 0x87, 0x7d, 0xe8, 0x15, 0x6d, 0x73, 0x0f, 0x0d, 0x44, 0xa0, 0xaf, 0x40, 0xac, 0xb2, 0x49,
+ 0x0b, 0xde, 0x0b, 0xc3, 0xd0, 0x18, 0xb1, 0xca, 0xe6, 0xcc, 0xbf, 0x52, 0x60, 0x4c, 0x68, 0xd5,
+ 0x73, 0x90, 0x21, 0x0d, 0xdc, 0xe3, 0x8e, 0x18, 0x42, 0x1b, 0xd3, 0x39, 0xf6, 0x3e, 0x75, 0x9e,
+ 0x29, 0xc0, 0x84, 0xd4, 0xae, 0x2f, 0x82, 0xce, 0x37, 0x51, 0x25, 0xc8, 0xcf, 0x91, 0x85, 0xf4,
+ 0xe4, 0x1e, 0x05, 0x08, 0xec, 0xea, 0xff, 0x8a, 0x56, 0xa5, 0xbc, 0xb3, 0x5b, 0x5e, 0xd5, 0x94,
+ 0xdc, 0xd7, 0x15, 0x48, 0xd3, 0xb2, 0xb5, 0xe6, 0xb4, 0x2d, 0xbd, 0x08, 0x4a, 0x81, 0x46, 0xd0,
+ 0x83, 0xe9, 0xad, 0x14, 0xf4, 0x4b, 0xa0, 0x14, 0x87, 0x77, 0xb5, 0x52, 0xd4, 0x97, 0x41, 0x29,
+ 0x51, 0x07, 0x0f, 0xe7, 0x19, 0xa5, 0x94, 0xfb, 0x63, 0x15, 0xa6, 0xf8, 0x32, 0x9a, 0x8d, 0x27,
+ 0xe7, 0xc5, 0xf7, 0xa6, 0x7c, 0xea, 0xf2, 0xf2, 0x95, 0x95, 0x45, 0xf4, 0x8f, 0x1f, 0x92, 0x39,
+ 0xf1, 0x15, 0x2a, 0x0f, 0xbe, 0xc8, 0xe5, 0x7e, 0xe7, 0x44, 0xf2, 0x71, 0x8e, 0xa1, 0xe7, 0x9c,
+ 0x88, 0xd0, 0xdb, 0x73, 0x4e, 0x44, 0xe8, 0xed, 0x39, 0x27, 0x22, 0xf4, 0xf6, 0xec, 0x05, 0x08,
+ 0xbd, 0x3d, 0xe7, 0x44, 0x84, 0xde, 0x9e, 0x73, 0x22, 0x42, 0x6f, 0xef, 0x39, 0x11, 0xda, 0xdd,
+ 0xf7, 0x9c, 0x88, 0xd8, 0xdf, 0x7b, 0x4e, 0x44, 0xec, 0xef, 0x3d, 0x27, 0x92, 0x8f, 0x7b, 0x9d,
+ 0xae, 0xd5, 0x7f, 0xd7, 0x41, 0xc4, 0x0f, 0x7a, 0x09, 0x0c, 0x46, 0xe0, 0x2d, 0x98, 0x20, 0x0b,
+ 0x12, 0x25, 0xc7, 0xf6, 0xcc, 0x86, 0x6d, 0x75, 0xf4, 0x8f, 0x42, 0x86, 0x34, 0x91, 0xd7, 0x9c,
+ 0xb0, 0xd7, 0x40, 0xd2, 0x4f, 0xc7, 0x5b, 0x41, 0x3a, 0xf7, 0x27, 0x71, 0x98, 0x26, 0x0d, 0x15,
+ 0xb3, 0x65, 0x09, 0xa7, 0x8c, 0x2e, 0x4a, 0x7b, 0x4a, 0xe3, 0x08, 0x7e, 0xff, 0x9d, 0x39, 0xd2,
+ 0x5a, 0xf0, 0xa3, 0xe9, 0xa2, 0xb4, 0xbb, 0x24, 0xca, 0x05, 0x13, 0xd0, 0x45, 0xe9, 0xe4, 0x91,
+ 0x28, 0xe7, 0xcf, 0x37, 0xbe, 0x1c, 0x3b, 0x83, 0x24, 0xca, 0xad, 0xfa, 0x51, 0x76, 0x51, 0x3a,
+ 0x8d, 0x24, 0xca, 0x95, 0xfd, 0x78, 0xbb, 0x28, 0xed, 0x3d, 0x89, 0x72, 0x6b, 0x7e, 0xe4, 0x5d,
+ 0x94, 0x76, 0xa1, 0x44, 0xb9, 0xdb, 0x7e, 0x0c, 0x5e, 0x94, 0xce, 0x2a, 0x89, 0x72, 0xcf, 0xfb,
+ 0xd1, 0x78, 0x51, 0x3a, 0xb5, 0x24, 0xca, 0xad, 0xfb, 0x71, 0x39, 0x2f, 0x9f, 0x5f, 0x12, 0x05,
+ 0xef, 0x04, 0x11, 0x3a, 0x2f, 0x9f, 0x64, 0x12, 0x25, 0x3f, 0x16, 0xc4, 0xea, 0xbc, 0x7c, 0xa6,
+ 0x49, 0x94, 0xdc, 0x08, 0xa2, 0x76, 0x5e, 0xde, 0x2b, 0x13, 0x25, 0x37, 0x83, 0xf8, 0x9d, 0x97,
+ 0x77, 0xcd, 0x44, 0xc9, 0x4a, 0x10, 0xc9, 0xf3, 0xf2, 0xfe, 0x99, 0x28, 0xb9, 0x15, 0x2c, 0xa2,
+ 0xff, 0xa1, 0x14, 0x7e, 0xdc, 0x29, 0xa8, 0x9c, 0x14, 0x7e, 0x10, 0x12, 0x7a, 0xd2, 0x40, 0xc6,
+ 0xc9, 0x04, 0x61, 0x97, 0x93, 0xc2, 0x0e, 0x42, 0x42, 0x2e, 0x27, 0x85, 0x1c, 0x84, 0x84, 0x5b,
+ 0x4e, 0x0a, 0x37, 0x08, 0x09, 0xb5, 0x9c, 0x14, 0x6a, 0x10, 0x12, 0x66, 0x39, 0x29, 0xcc, 0x20,
+ 0x24, 0xc4, 0x72, 0x52, 0x88, 0x41, 0x48, 0x78, 0xe5, 0xa4, 0xf0, 0x82, 0x90, 0xd0, 0xba, 0x20,
+ 0x87, 0x16, 0x84, 0x85, 0xd5, 0x05, 0x39, 0xac, 0x20, 0x2c, 0xa4, 0x1e, 0x93, 0x43, 0x2a, 0x75,
+ 0xff, 0x9d, 0xb9, 0x04, 0x6a, 0xe2, 0xa2, 0xe9, 0x82, 0x1c, 0x4d, 0x10, 0x16, 0x49, 0x17, 0xe4,
+ 0x48, 0x82, 0xb0, 0x28, 0xba, 0x20, 0x47, 0x11, 0x84, 0x45, 0xd0, 0xdb, 0x72, 0x04, 0x05, 0x67,
+ 0x7c, 0x72, 0xd2, 0x96, 0x62, 0x54, 0x04, 0xa9, 0x43, 0x44, 0x90, 0x3a, 0x44, 0x04, 0xa9, 0x43,
+ 0x44, 0x90, 0x3a, 0x44, 0x04, 0xa9, 0x43, 0x44, 0x90, 0x3a, 0x44, 0x04, 0xa9, 0x43, 0x44, 0x90,
+ 0x3a, 0x4c, 0x04, 0xa9, 0x43, 0x45, 0x90, 0xda, 0x2f, 0x82, 0x2e, 0xc8, 0x27, 0x1e, 0x20, 0x6c,
+ 0x40, 0xba, 0x20, 0x6f, 0x7d, 0x46, 0x87, 0x90, 0x3a, 0x54, 0x08, 0xa9, 0xfd, 0x42, 0xe8, 0x0f,
+ 0x55, 0x98, 0x12, 0x42, 0x88, 0xee, 0x0f, 0x7d, 0x50, 0x23, 0xd0, 0xb5, 0x21, 0x0e, 0x58, 0x84,
+ 0xc5, 0xd4, 0xb5, 0x21, 0x36, 0xa9, 0x07, 0xc5, 0x59, 0xef, 0x28, 0x54, 0x1e, 0x62, 0x14, 0x5a,
+ 0xf3, 0x63, 0xe8, 0xda, 0x10, 0x07, 0x2f, 0x7a, 0x63, 0xef, 0xc6, 0xa0, 0x41, 0xe0, 0xf9, 0xa1,
+ 0x06, 0x81, 0xf5, 0xa1, 0x06, 0x81, 0x3b, 0x81, 0x07, 0x7f, 0x39, 0x06, 0xa7, 0x03, 0x0f, 0x92,
+ 0x4f, 0xf8, 0x97, 0xb5, 0x72, 0xdc, 0x16, 0x95, 0xce, 0xb6, 0x6d, 0x38, 0x37, 0xc6, 0xd6, 0xeb,
+ 0xfa, 0xb6, 0xb8, 0x59, 0x95, 0x3f, 0xe9, 0x06, 0x0e, 0xe7, 0x71, 0xba, 0x18, 0x7a, 0x01, 0xd4,
+ 0xf5, 0xba, 0x8b, 0x47, 0x8b, 0xb0, 0xdb, 0x96, 0x0c, 0xd4, 0xad, 0x1b, 0x30, 0x82, 0xc5, 0x5d,
+ 0xec, 0xde, 0xf7, 0x73, 0xe3, 0x55, 0x83, 0x32, 0xe5, 0xde, 0x56, 0xe0, 0x9c, 0x10, 0xca, 0x1f,
+ 0xcc, 0x96, 0xc1, 0xad, 0xa1, 0xb6, 0x0c, 0x84, 0x04, 0x09, 0xb6, 0x0f, 0x9e, 0xe8, 0xdd, 0xa9,
+ 0xe6, 0xb3, 0x44, 0xde, 0x4a, 0xf8, 0x73, 0x30, 0x1e, 0x3c, 0x01, 0x7e, 0x67, 0xbb, 0x1a, 0xbd,
+ 0x9a, 0x19, 0x96, 0x9a, 0x57, 0xa5, 0x55, 0xb4, 0x81, 0x30, 0x3f, 0x5b, 0x73, 0x79, 0x98, 0xa8,
+ 0x88, 0x5f, 0x89, 0x8a, 0x5a, 0x8c, 0x48, 0xa2, 0xd2, 0xfc, 0xde, 0x97, 0xe6, 0x4e, 0xe5, 0x9e,
+ 0x82, 0x0c, 0xff, 0xad, 0x27, 0x09, 0x98, 0x62, 0xc0, 0x7c, 0xfc, 0x5b, 0x48, 0xfa, 0xef, 0x2a,
+ 0x70, 0x86, 0x17, 0x7f, 0xa1, 0xe1, 0x1d, 0xad, 0xdb, 0xa8, 0xa6, 0x7f, 0x06, 0x92, 0x16, 0x75,
+ 0x1c, 0xfd, 0x91, 0x1c, 0xfa, 0x1e, 0x19, 0x2a, 0xbe, 0x88, 0xff, 0x35, 0x7c, 0x88, 0xb4, 0xc6,
+ 0xc1, 0x6e, 0xbb, 0x3c, 0xf3, 0x38, 0x24, 0x08, 0xbf, 0xa8, 0xd7, 0x98, 0xa4, 0xd7, 0x6f, 0x86,
+ 0xe8, 0x85, 0xe3, 0x48, 0xbf, 0x23, 0xe8, 0xc5, 0xbd, 0xae, 0x86, 0x8a, 0x2f, 0xb2, 0xe0, 0x2b,
+ 0x26, 0x51, 0xfd, 0x87, 0x23, 0x2a, 0x5a, 0xc9, 0x79, 0x48, 0x96, 0x65, 0x99, 0x70, 0x3d, 0x57,
+ 0x21, 0x5e, 0x71, 0xea, 0xf8, 0xe7, 0x7b, 0xf0, 0x0f, 0x61, 0x53, 0x23, 0xd3, 0x5f, 0xc5, 0xbe,
+ 0x08, 0xc9, 0xd2, 0x51, 0xa3, 0x59, 0xef, 0x58, 0x36, 0xdd, 0xb3, 0xa7, 0x4b, 0xe8, 0x08, 0x63,
+ 0xf8, 0x7d, 0xb9, 0x12, 0x4c, 0x56, 0x1c, 0xbb, 0x78, 0xec, 0xf1, 0xe3, 0xc6, 0xa2, 0x94, 0x22,
+ 0x74, 0xcf, 0x07, 0x7f, 0x4b, 0x04, 0x09, 0x14, 0x13, 0xdf, 0x7e, 0x67, 0x4e, 0xd9, 0xf5, 0xd7,
+ 0xcf, 0x37, 0xe1, 0x21, 0x9a, 0x3e, 0x3d, 0x54, 0xcb, 0x51, 0x54, 0x29, 0xba, 0x4f, 0xcd, 0xd1,
+ 0xad, 0x23, 0x3a, 0x3b, 0x94, 0xee, 0xc1, 0x34, 0x43, 0x45, 0xd1, 0x40, 0xcd, 0xd4, 0x13, 0x69,
+ 0x16, 0x4a, 0xb7, 0x18, 0x45, 0x27, 0x69, 0xf6, 0x18, 0xa4, 0xfc, 0x3e, 0x2e, 0x1a, 0xf8, 0x4c,
+ 0x59, 0x5e, 0xc8, 0x41, 0x9a, 0x4b, 0x58, 0x3d, 0x01, 0x4a, 0x41, 0x3b, 0x85, 0xfe, 0x2b, 0x6a,
+ 0x0a, 0xfa, 0xaf, 0xa4, 0xc5, 0x16, 0x1e, 0x87, 0x09, 0x69, 0xfd, 0x12, 0xf5, 0xac, 0x6a, 0x80,
+ 0xfe, 0x2b, 0x6b, 0xe9, 0x99, 0xf8, 0xa7, 0x7f, 0x63, 0xf6, 0xd4, 0xc2, 0x2d, 0xd0, 0x7b, 0x57,
+ 0x3a, 0xf5, 0x11, 0x88, 0x15, 0x10, 0xe5, 0x43, 0x10, 0x2b, 0x16, 0x35, 0x65, 0x66, 0xe2, 0x2f,
+ 0x7f, 0xfe, 0x5c, 0xba, 0x88, 0xbf, 0xd2, 0x7d, 0xd7, 0xf2, 0x8a, 0x45, 0x0a, 0x7e, 0x16, 0xce,
+ 0x84, 0xae, 0x94, 0x22, 0x7c, 0xa9, 0x44, 0xf0, 0xab, 0xab, 0x3d, 0xf8, 0xd5, 0x55, 0x8c, 0x57,
+ 0xf2, 0x6c, 0xc7, 0xb9, 0xa0, 0x87, 0xac, 0x4b, 0x66, 0xeb, 0xdc, 0x0e, 0x77, 0x21, 0xff, 0x2c,
+ 0x95, 0x2d, 0x86, 0xca, 0x5a, 0x11, 0x3b, 0xd6, 0xc5, 0x7c, 0x89, 0xe2, 0x4b, 0xa1, 0xf8, 0x03,
+ 0x69, 0x5b, 0x55, 0x9c, 0x21, 0x28, 0x49, 0xc9, 0x57, 0x78, 0x35, 0x94, 0xe4, 0x88, 0x3b, 0xec,
+ 0xbe, 0xea, 0x2b, 0x5c, 0x0e, 0x95, 0x6d, 0x44, 0x1c, 0xfa, 0x2a, 0xe7, 0x2f, 0xd1, 0x49, 0xbe,
+ 0x70, 0x59, 0x3f, 0xc3, 0x72, 0x54, 0x18, 0x81, 0xa9, 0x81, 0x98, 0x54, 0xbe, 0x44, 0x01, 0xc5,
+ 0xbe, 0x80, 0xfe, 0x56, 0x62, 0xc8, 0xfc, 0xf3, 0x94, 0xa4, 0xd4, 0x97, 0x24, 0xc2, 0x54, 0x0c,
+ 0x5e, 0xdc, 0xbd, 0xf7, 0xee, 0xec, 0xa9, 0x6f, 0xbd, 0x3b, 0x7b, 0xea, 0x3f, 0xbd, 0x3b, 0x7b,
+ 0xea, 0x3b, 0xef, 0xce, 0x2a, 0xdf, 0x7f, 0x77, 0x56, 0xf9, 0xe1, 0xbb, 0xb3, 0xca, 0x8f, 0xde,
+ 0x9d, 0x55, 0xde, 0xbc, 0x3f, 0xab, 0x7c, 0xe5, 0xfe, 0xac, 0xf2, 0xd5, 0xfb, 0xb3, 0xca, 0xef,
+ 0xdf, 0x9f, 0x55, 0xde, 0xbe, 0x3f, 0xab, 0xdc, 0xbb, 0x3f, 0xab, 0x7c, 0xeb, 0xfe, 0xac, 0xf2,
+ 0x9d, 0xfb, 0xb3, 0xca, 0xf7, 0xef, 0xcf, 0x9e, 0xfa, 0xe1, 0xfd, 0x59, 0xe5, 0x47, 0xf7, 0x67,
+ 0x4f, 0xbd, 0xf9, 0xdd, 0xd9, 0x53, 0x6f, 0x7d, 0x77, 0xf6, 0xd4, 0x57, 0xbe, 0x3b, 0xab, 0xc0,
+ 0x77, 0x56, 0xe0, 0x11, 0xe9, 0x9b, 0x64, 0xb8, 0x1a, 0xb8, 0xc2, 0x7e, 0xfe, 0xcb, 0x6f, 0x38,
+ 0xe1, 0x17, 0xca, 0x66, 0x1e, 0xf4, 0xeb, 0x6b, 0xb9, 0x7f, 0x9d, 0x80, 0x51, 0xb6, 0x0c, 0x1c,
+ 0xf6, 0x23, 0xe9, 0x57, 0x21, 0x79, 0xd4, 0x68, 0x9a, 0x9d, 0x86, 0x77, 0x4c, 0xd7, 0x3f, 0x1f,
+ 0x5e, 0x0c, 0xd4, 0x66, 0x2b, 0xa6, 0xcf, 0x77, 0x5b, 0x4e, 0xb7, 0x63, 0xf8, 0xa2, 0xfa, 0x39,
+ 0xc8, 0x1c, 0x59, 0x8d, 0xc3, 0x23, 0xaf, 0xda, 0xb0, 0xab, 0xb5, 0x16, 0x2e, 0x93, 0xc7, 0x0c,
+ 0x20, 0x6d, 0xeb, 0x76, 0xa9, 0x85, 0x6e, 0x56, 0x37, 0x3d, 0x13, 0xbf, 0x9e, 0x67, 0x0c, 0xfc,
+ 0x19, 0xff, 0xd0, 0xb1, 0xe5, 0x76, 0x9b, 0x5e, 0xb5, 0xe6, 0x74, 0x6d, 0x0f, 0x17, 0xb2, 0xaa,
+ 0x91, 0x26, 0x6d, 0x25, 0xd4, 0xa4, 0x3f, 0x06, 0x63, 0x5e, 0xa7, 0x6b, 0x55, 0xdd, 0x9a, 0xe3,
+ 0xb9, 0x2d, 0xd3, 0xc6, 0x85, 0x6c, 0xd2, 0xc8, 0xa0, 0xc6, 0x1d, 0xda, 0x86, 0x7f, 0x5f, 0xbf,
+ 0xe6, 0x74, 0x2c, 0xfc, 0x1e, 0x1d, 0x33, 0xc8, 0x85, 0xae, 0x81, 0xfa, 0x8a, 0x75, 0x8c, 0xdf,
+ 0xd4, 0xe2, 0x06, 0xfa, 0xa8, 0x3f, 0x09, 0x23, 0xe4, 0x0f, 0xe4, 0xe0, 0xb2, 0x1a, 0xef, 0x5a,
+ 0xfb, 0x8f, 0x46, 0x56, 0x67, 0x0d, 0x2a, 0xa0, 0xdf, 0x84, 0x51, 0xcf, 0xea, 0x74, 0xcc, 0x86,
+ 0x8d, 0xdf, 0x9a, 0xd2, 0xcb, 0x73, 0x21, 0x66, 0xd8, 0x25, 0x12, 0xf8, 0xe7, 0x80, 0x0d, 0x26,
+ 0xaf, 0x5f, 0x85, 0x0c, 0x96, 0x5b, 0xae, 0x92, 0x3f, 0x22, 0x94, 0xee, 0x1b, 0xc8, 0x69, 0x22,
+ 0xc7, 0x36, 0x09, 0x18, 0x8c, 0xfc, 0x14, 0xe2, 0x18, 0xbe, 0xed, 0x63, 0x21, 0xb7, 0xc5, 0x63,
+ 0xee, 0x32, 0xae, 0x17, 0xc9, 0xad, 0x29, 0x0f, 0xf9, 0xb1, 0xc4, 0x4d, 0xc8, 0xf0, 0x7a, 0x31,
+ 0x33, 0x90, 0xba, 0x07, 0x9b, 0xe1, 0x89, 0xe0, 0x0f, 0x34, 0xf4, 0xb1, 0x02, 0xe9, 0xcf, 0xc7,
+ 0x6e, 0x28, 0x33, 0xdb, 0xa0, 0xc9, 0xf7, 0x0b, 0xa1, 0xbc, 0x28, 0x52, 0x6a, 0xfc, 0xc3, 0xe2,
+ 0x25, 0xf2, 0x80, 0x31, 0xf7, 0x1c, 0x8c, 0x90, 0xf8, 0xd1, 0xd3, 0x30, 0x1a, 0xfc, 0xca, 0x66,
+ 0x12, 0xe2, 0xdb, 0x7b, 0x95, 0x1d, 0xf2, 0x73, 0xb9, 0x3b, 0x1b, 0x85, 0xed, 0x9d, 0xdd, 0xf5,
+ 0xd2, 0xc7, 0xb4, 0x98, 0x3e, 0x01, 0xe9, 0xe2, 0xfa, 0xc6, 0x46, 0xb5, 0x58, 0x58, 0xdf, 0x28,
+ 0xdf, 0xd5, 0xd4, 0xdc, 0x2c, 0x8c, 0x10, 0x3d, 0xf1, 0xcf, 0xfe, 0x75, 0x6d, 0xfb, 0x98, 0xd5,
+ 0x0d, 0xf8, 0x22, 0xf7, 0x35, 0x1d, 0x46, 0x0b, 0xcd, 0xe6, 0xa6, 0xd9, 0x76, 0xf5, 0x17, 0x60,
+ 0x92, 0xfc, 0x20, 0xc7, 0xae, 0xb3, 0x8a, 0x7f, 0x9d, 0x12, 0x8d, 0x0a, 0x0a, 0xfd, 0xc3, 0x14,
+ 0xc1, 0x73, 0x53, 0xf1, 0xc5, 0x1e, 0x59, 0x62, 0xe0, 0x5e, 0x0e, 0x7d, 0x17, 0x34, 0xd6, 0xb8,
+ 0xd6, 0x74, 0x4c, 0x0f, 0xf1, 0xc6, 0xe8, 0x8f, 0x47, 0xf6, 0xe7, 0x65, 0xa2, 0x84, 0xb6, 0x87,
+ 0x41, 0xff, 0x28, 0x24, 0xd7, 0x6d, 0xef, 0xca, 0x32, 0x62, 0x63, 0x7f, 0xf4, 0xa9, 0x97, 0x8d,
+ 0x89, 0x10, 0x16, 0x1f, 0x41, 0xd1, 0xd7, 0x56, 0x10, 0x3a, 0x3e, 0x08, 0x8d, 0x45, 0x02, 0x34,
+ 0xbe, 0xd4, 0x9f, 0x83, 0x14, 0x7a, 0x2d, 0x21, 0x37, 0x4f, 0xb0, 0x9a, 0xb5, 0x07, 0xee, 0xcb,
+ 0x10, 0x7c, 0x80, 0x61, 0x04, 0xe4, 0xfe, 0x23, 0x03, 0x09, 0x38, 0x05, 0x02, 0x0c, 0x22, 0xd8,
+ 0xf1, 0x35, 0x18, 0xed, 0x4b, 0xb0, 0x23, 0x69, 0xb0, 0xc3, 0x6b, 0xb0, 0xe3, 0x6b, 0x90, 0x1c,
+ 0x48, 0xc0, 0x6b, 0xe0, 0x5f, 0xeb, 0x45, 0x80, 0xb5, 0xc6, 0xeb, 0x56, 0x9d, 0xa8, 0x40, 0xfe,
+ 0x24, 0x54, 0x2e, 0x84, 0x21, 0x10, 0x22, 0x14, 0x1c, 0x4a, 0x2f, 0x43, 0x7a, 0xe7, 0x20, 0x20,
+ 0x81, 0x9e, 0x3c, 0xf6, 0xd5, 0x38, 0x90, 0x58, 0x78, 0x9c, 0xaf, 0x0a, 0x79, 0x98, 0xf4, 0x60,
+ 0x55, 0xb8, 0xa7, 0xe1, 0x50, 0x81, 0x2a, 0x84, 0x24, 0x13, 0xa1, 0x0a, 0xc7, 0xc2, 0xe3, 0xd0,
+ 0x60, 0x58, 0x74, 0x1c, 0x24, 0x49, 0x47, 0xa5, 0xb9, 0x10, 0x0a, 0x2a, 0x41, 0x07, 0x43, 0x7a,
+ 0x85, 0x3d, 0x82, 0x83, 0x1c, 0x81, 0xc7, 0xfb, 0x7b, 0x84, 0xc9, 0x30, 0x8f, 0xb0, 0x6b, 0x3e,
+ 0xcf, 0xf0, 0x51, 0x56, 0xc4, 0x33, 0x11, 0x99, 0x67, 0x4c, 0x54, 0xca, 0x33, 0xd6, 0xac, 0x7f,
+ 0x1c, 0x26, 0x58, 0x1b, 0x1a, 0x9e, 0x10, 0xa9, 0x46, 0xff, 0x68, 0x5e, 0x7f, 0x52, 0x2a, 0x49,
+ 0x38, 0x65, 0xbc, 0x5e, 0x81, 0x71, 0xd6, 0xb4, 0xe9, 0xe2, 0xc7, 0x9d, 0xa4, 0x7f, 0x0f, 0xa5,
+ 0x3f, 0x23, 0x11, 0x24, 0x84, 0x12, 0x7a, 0x66, 0x15, 0xa6, 0xc3, 0x47, 0x23, 0x7e, 0xf8, 0x4d,
+ 0x91, 0xe1, 0xf7, 0x34, 0x3f, 0xfc, 0x2a, 0xfc, 0xf0, 0x5d, 0x82, 0x33, 0xa1, 0x63, 0x4f, 0x14,
+ 0x49, 0x8c, 0x27, 0xb9, 0x05, 0x63, 0xc2, 0x90, 0xc3, 0x83, 0x13, 0x21, 0xe0, 0x44, 0x2f, 0x38,
+ 0x08, 0xad, 0x90, 0xd9, 0x43, 0x00, 0xab, 0x3c, 0xf8, 0xa3, 0x30, 0x2e, 0x8e, 0x37, 0x3c, 0x7a,
+ 0x2c, 0x04, 0x3d, 0x16, 0x82, 0x0e, 0xbf, 0x77, 0x3c, 0x04, 0x1d, 0x97, 0xd0, 0x3b, 0x7d, 0xef,
+ 0x3d, 0x19, 0x82, 0x9e, 0x0c, 0x41, 0x87, 0xdf, 0x5b, 0x0f, 0x41, 0xeb, 0x3c, 0xfa, 0x19, 0x98,
+ 0x90, 0x86, 0x18, 0x1e, 0x3e, 0x1a, 0x02, 0x1f, 0xe5, 0xe1, 0xcf, 0x82, 0x26, 0x0f, 0x2e, 0x3c,
+ 0x7e, 0x22, 0x04, 0x3f, 0x11, 0x76, 0xfb, 0x70, 0xed, 0x47, 0x42, 0xe0, 0x23, 0xa1, 0xb7, 0x0f,
+ 0xc7, 0x6b, 0x21, 0x78, 0x8d, 0xc7, 0xe7, 0x21, 0xc3, 0x8f, 0x26, 0x3c, 0x36, 0x19, 0x82, 0x4d,
+ 0xca, 0x76, 0x17, 0x06, 0x93, 0xa8, 0x48, 0x4f, 0xf5, 0x49, 0x17, 0x61, 0x08, 0x89, 0x22, 0xc9,
+ 0xf0, 0x24, 0x9f, 0x80, 0xd3, 0x61, 0x43, 0x46, 0x08, 0xc7, 0x3c, 0xcf, 0x31, 0x8e, 0x6a, 0xc4,
+ 0xa0, 0xd8, 0x33, 0xdb, 0x52, 0xe1, 0x34, 0xf3, 0x12, 0x4c, 0x85, 0x0c, 0x1c, 0x21, 0xb4, 0x8b,
+ 0x62, 0x35, 0x96, 0xe5, 0x68, 0xf1, 0x20, 0xd0, 0xb0, 0x0f, 0xb7, 0x9d, 0x86, 0xed, 0xf1, 0x55,
+ 0xd9, 0xd7, 0xa7, 0x60, 0x9c, 0x0e, 0x4f, 0x5b, 0x9d, 0xba, 0xd5, 0xb1, 0xea, 0xfa, 0x9f, 0xe9,
+ 0x5f, 0x3b, 0x2d, 0xf5, 0x0e, 0x6a, 0x14, 0x75, 0x82, 0x12, 0xea, 0xa5, 0xbe, 0x25, 0xd4, 0xa5,
+ 0x68, 0xfa, 0xa8, 0x4a, 0xaa, 0xd4, 0x53, 0x49, 0x3d, 0xd1, 0x9f, 0xb4, 0x5f, 0x41, 0x55, 0xea,
+ 0x29, 0xa8, 0x06, 0x93, 0x84, 0xd6, 0x55, 0x6b, 0xbd, 0x75, 0xd5, 0x7c, 0x7f, 0x96, 0xfe, 0xe5,
+ 0xd5, 0x5a, 0x6f, 0x79, 0x15, 0xc1, 0x13, 0x5e, 0x65, 0xad, 0xf5, 0x56, 0x59, 0x03, 0x78, 0xfa,
+ 0x17, 0x5b, 0x6b, 0xbd, 0xc5, 0x56, 0x04, 0x4f, 0x78, 0xcd, 0xb5, 0x1e, 0x52, 0x73, 0x3d, 0xd9,
+ 0x9f, 0x68, 0x50, 0xe9, 0xb5, 0x11, 0x56, 0x7a, 0x2d, 0x0c, 0x50, 0x6a, 0x60, 0x05, 0xb6, 0x1e,
+ 0x52, 0x81, 0x45, 0x29, 0xd6, 0xa7, 0x10, 0xdb, 0x08, 0x2b, 0xc4, 0x22, 0x15, 0xeb, 0x57, 0x8f,
+ 0xfd, 0x82, 0x5c, 0x8f, 0x5d, 0xec, 0xcf, 0x14, 0x5e, 0x96, 0xad, 0xf5, 0x96, 0x65, 0xf3, 0x51,
+ 0x39, 0x17, 0x56, 0x9d, 0xbd, 0xd4, 0xb7, 0x3a, 0x1b, 0x22, 0x85, 0xa3, 0x8a, 0xb4, 0x17, 0xfb,
+ 0x15, 0x69, 0x8b, 0xd1, 0xdc, 0x83, 0x6b, 0xb5, 0xbd, 0x3e, 0xb5, 0xda, 0xd3, 0xd1, 0xc4, 0x3f,
+ 0x2f, 0xd9, 0x7e, 0x5e, 0xb2, 0xfd, 0xbc, 0x64, 0xfb, 0x79, 0xc9, 0xf6, 0xd3, 0x2f, 0xd9, 0xf2,
+ 0xf1, 0xcf, 0x7c, 0x69, 0x4e, 0xc9, 0xfd, 0x47, 0xd5, 0xff, 0x4b, 0x6b, 0x2f, 0x34, 0xbc, 0x23,
+ 0x34, 0xbc, 0x6d, 0x42, 0x06, 0xff, 0xf2, 0x6f, 0xcb, 0x6c, 0xb7, 0x1b, 0xf6, 0x21, 0xad, 0xd9,
+ 0x16, 0x7a, 0x97, 0x12, 0x29, 0x00, 0xff, 0x95, 0x99, 0x4d, 0x22, 0x4c, 0xa7, 0x1b, 0x3b, 0x68,
+ 0xd1, 0xef, 0x40, 0xba, 0xe5, 0x1e, 0xfa, 0x6c, 0xb1, 0x9e, 0x89, 0x50, 0x62, 0x23, 0x4f, 0x1a,
+ 0x90, 0x41, 0xcb, 0x6f, 0x40, 0xaa, 0xed, 0x1f, 0x7b, 0x81, 0x6a, 0x6a, 0x94, 0x6a, 0xc8, 0xa7,
+ 0xa2, 0x6a, 0xfb, 0x41, 0x0b, 0x0a, 0x5b, 0x59, 0xf7, 0xa8, 0x91, 0x4e, 0x08, 0x9e, 0x17, 0x60,
+ 0x42, 0xd2, 0x36, 0x24, 0xe7, 0x1f, 0xc0, 0x37, 0x48, 0x31, 0x59, 0xf3, 0xa8, 0x9c, 0xe0, 0x03,
+ 0x32, 0xf7, 0x28, 0x8c, 0x09, 0xdc, 0x7a, 0x06, 0x94, 0x03, 0xfa, 0x3d, 0x4a, 0xe5, 0x20, 0xf7,
+ 0x45, 0x05, 0xd2, 0xf4, 0x0c, 0xc1, 0xb6, 0xd9, 0xe8, 0xe8, 0xcf, 0x43, 0xbc, 0xc9, 0xbe, 0xcb,
+ 0xf4, 0xa0, 0xdf, 0x9b, 0xc5, 0x0c, 0xfa, 0x1a, 0x24, 0x3a, 0xfe, 0x77, 0x9d, 0x1e, 0xe8, 0xcb,
+ 0xb0, 0x18, 0x9e, 0xbb, 0xa7, 0xc0, 0x24, 0x3d, 0xe2, 0xea, 0xd2, 0x93, 0xcf, 0x66, 0x7b, 0xe6,
+ 0x6b, 0x0a, 0xa4, 0xfc, 0x2b, 0x7d, 0x1f, 0xc6, 0xfd, 0x0b, 0x72, 0xba, 0x9e, 0x44, 0x6a, 0x9e,
+ 0xb3, 0x70, 0x0f, 0xc7, 0x62, 0xc8, 0x27, 0xb2, 0x0b, 0x45, 0xe6, 0x64, 0xb1, 0x71, 0xa6, 0x00,
+ 0x53, 0x21, 0x62, 0x27, 0x99, 0x90, 0x73, 0xe7, 0x21, 0x55, 0x71, 0x3c, 0xf2, 0x93, 0x39, 0xfa,
+ 0x69, 0x6e, 0x57, 0xa1, 0x18, 0xd3, 0x4e, 0x61, 0xf0, 0xc2, 0x79, 0x18, 0xa5, 0xd9, 0xaf, 0x8f,
+ 0x40, 0x6c, 0xb3, 0xa0, 0x9d, 0xc2, 0xff, 0x17, 0x35, 0x05, 0xff, 0x5f, 0xd2, 0x62, 0xc5, 0x8d,
+ 0x0f, 0x72, 0x8b, 0x69, 0x7f, 0x84, 0x98, 0xe7, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x29,
+ 0xc0, 0x35, 0xbf, 0x83, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -6467,7 +6575,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6495,7 +6603,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6505,6 +6613,9 @@ func (m *Message) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6524,7 +6635,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Hilarity |= (Message_Humour(b) & 0x7F) << shift
+ m.Hilarity |= Message_Humour(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6543,7 +6654,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.HeightInCm |= (uint32(b) & 0x7F) << shift
+ m.HeightInCm |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6562,7 +6673,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6571,6 +6682,9 @@ func (m *Message) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6591,7 +6705,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6608,7 +6722,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6617,12 +6731,15 @@ func (m *Message) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -6642,7 +6759,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6666,7 +6783,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6675,6 +6792,9 @@ func (m *Message) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6699,7 +6819,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.ResultCount |= (int64(b) & 0x7F) << shift
+ m.ResultCount |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6718,7 +6838,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6749,7 +6869,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6758,6 +6878,9 @@ func (m *Message) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6778,7 +6901,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6794,7 +6917,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int64(b) & 0x7F) << shift
+ mapkey |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6810,7 +6933,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6819,7 +6942,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTheproto3
}
if postmsgIndex > l {
@@ -6861,7 +6984,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6870,6 +6993,9 @@ func (m *Message) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6894,7 +7020,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6903,6 +7029,9 @@ func (m *Message) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6923,7 +7052,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6939,7 +7068,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int64(b) & 0x7F) << shift
+ mapkey |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6955,7 +7084,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6964,7 +7093,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTheproto3
}
if postmsgIndex > l {
@@ -7001,6 +7130,9 @@ func (m *Message) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -7029,7 +7161,7 @@ func (m *Nested) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7057,7 +7189,7 @@ func (m *Nested) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7067,6 +7199,9 @@ func (m *Nested) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7081,6 +7216,9 @@ func (m *Nested) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -7109,7 +7247,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7137,7 +7275,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7146,6 +7284,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7166,7 +7307,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7183,7 +7324,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7193,6 +7334,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -7237,7 +7381,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7246,6 +7390,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7266,7 +7413,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7283,7 +7430,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7293,6 +7440,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -7337,7 +7487,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7346,6 +7496,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7366,7 +7519,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7382,7 +7535,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7397,7 +7550,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (int32(b) & 0x7F) << shift
+ mapvalue |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7433,7 +7586,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7442,6 +7595,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7462,7 +7618,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7478,7 +7634,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int64(b) & 0x7F) << shift
+ mapkey |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7493,7 +7649,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (int64(b) & 0x7F) << shift
+ mapvalue |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7529,7 +7685,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7538,6 +7694,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7558,7 +7717,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7574,7 +7733,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (uint32(b) & 0x7F) << shift
+ mapkey |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7589,7 +7748,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint32(b) & 0x7F) << shift
+ mapvalue |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7625,7 +7784,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7634,6 +7793,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7654,7 +7816,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7670,7 +7832,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (uint64(b) & 0x7F) << shift
+ mapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7685,7 +7847,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint64(b) & 0x7F) << shift
+ mapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7721,7 +7883,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7730,6 +7892,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7750,7 +7915,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7767,7 +7932,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (int32(b) & 0x7F) << shift
+ mapkeytemp |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7785,7 +7950,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (int32(b) & 0x7F) << shift
+ mapvaluetemp |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7823,7 +7988,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7832,6 +7997,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7852,7 +8020,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7869,7 +8037,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (uint64(b) & 0x7F) << shift
+ mapkeytemp |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7887,7 +8055,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (uint64(b) & 0x7F) << shift
+ mapvaluetemp |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7925,7 +8093,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7934,6 +8102,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7954,7 +8125,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8003,7 +8174,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8012,6 +8183,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8032,7 +8206,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8081,7 +8255,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8090,6 +8264,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8110,7 +8287,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8159,7 +8336,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8168,6 +8345,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8188,7 +8368,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8237,7 +8417,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8246,6 +8426,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8266,7 +8449,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8283,7 +8466,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (int(b) & 0x7F) << shift
+ mapkeytemp |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8300,7 +8483,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (int(b) & 0x7F) << shift
+ mapvaluetemp |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8337,7 +8520,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8346,6 +8529,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8366,7 +8552,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8383,7 +8569,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8393,6 +8579,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -8409,7 +8598,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapvalue |= (uint64(b) & 0x7F) << shift
+ stringLenmapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8419,6 +8608,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapvalue := iNdEx + intStringLenmapvalue
+ if postStringIndexmapvalue < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapvalue > l {
return io.ErrUnexpectedEOF
}
@@ -8455,7 +8647,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8464,6 +8656,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8484,7 +8679,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8501,7 +8696,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8511,6 +8706,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -8527,7 +8725,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapbyteLen |= (uint64(b) & 0x7F) << shift
+ mapbyteLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8537,6 +8735,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postbytesIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8574,7 +8775,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8583,6 +8784,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8603,7 +8807,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8620,7 +8824,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8630,6 +8834,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -8645,7 +8852,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (MapEnum(b) & 0x7F) << shift
+ mapvalue |= MapEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8681,7 +8888,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8690,6 +8897,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8710,7 +8920,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8727,7 +8937,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8737,6 +8947,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -8753,7 +8966,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8762,7 +8975,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTheproto3
}
if postmsgIndex > l {
@@ -8799,6 +9012,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -8827,7 +9043,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8855,7 +9071,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8864,6 +9080,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8884,7 +9103,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8901,7 +9120,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8911,6 +9130,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -8955,7 +9177,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8964,6 +9186,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8984,7 +9209,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9001,7 +9226,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9011,6 +9236,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -9055,7 +9283,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9064,6 +9292,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9084,7 +9315,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9100,7 +9331,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9115,7 +9346,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (int32(b) & 0x7F) << shift
+ mapvalue |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9151,7 +9382,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9160,6 +9391,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9180,7 +9414,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9196,7 +9430,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int64(b) & 0x7F) << shift
+ mapkey |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9211,7 +9445,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (int64(b) & 0x7F) << shift
+ mapvalue |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9247,7 +9481,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9256,6 +9490,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9276,7 +9513,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9292,7 +9529,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (uint32(b) & 0x7F) << shift
+ mapkey |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9307,7 +9544,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint32(b) & 0x7F) << shift
+ mapvalue |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9343,7 +9580,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9352,6 +9589,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9372,7 +9612,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9388,7 +9628,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (uint64(b) & 0x7F) << shift
+ mapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9403,7 +9643,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint64(b) & 0x7F) << shift
+ mapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9439,7 +9679,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9448,6 +9688,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9468,7 +9711,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9485,7 +9728,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (int32(b) & 0x7F) << shift
+ mapkeytemp |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9503,7 +9746,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (int32(b) & 0x7F) << shift
+ mapvaluetemp |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9541,7 +9784,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9550,6 +9793,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9570,7 +9816,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9587,7 +9833,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (uint64(b) & 0x7F) << shift
+ mapkeytemp |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9605,7 +9851,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (uint64(b) & 0x7F) << shift
+ mapvaluetemp |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9643,7 +9889,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9652,6 +9898,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9672,7 +9921,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9721,7 +9970,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9730,6 +9979,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9750,7 +10002,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9799,7 +10051,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9808,6 +10060,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9828,7 +10083,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9877,7 +10132,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9886,6 +10141,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9906,7 +10164,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9955,7 +10213,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9964,6 +10222,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9984,7 +10245,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10001,7 +10262,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (int(b) & 0x7F) << shift
+ mapkeytemp |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10018,7 +10279,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (int(b) & 0x7F) << shift
+ mapvaluetemp |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10055,7 +10316,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10064,6 +10325,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10084,7 +10348,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10101,7 +10365,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10111,6 +10375,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -10127,7 +10394,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapvalue |= (uint64(b) & 0x7F) << shift
+ stringLenmapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10137,6 +10404,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapvalue := iNdEx + intStringLenmapvalue
+ if postStringIndexmapvalue < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapvalue > l {
return io.ErrUnexpectedEOF
}
@@ -10173,7 +10443,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10182,6 +10452,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10202,7 +10475,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10219,7 +10492,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10229,6 +10502,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -10245,7 +10521,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapbyteLen |= (uint64(b) & 0x7F) << shift
+ mapbyteLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10255,6 +10531,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postbytesIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10292,7 +10571,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10301,6 +10580,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10321,7 +10603,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10338,7 +10620,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10348,6 +10630,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -10363,7 +10648,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (MapEnum(b) & 0x7F) << shift
+ mapvalue |= MapEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10399,7 +10684,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10408,6 +10693,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10428,7 +10716,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10445,7 +10733,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10455,6 +10743,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -10471,7 +10762,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10480,7 +10771,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTheproto3
}
if postmsgIndex > l {
@@ -10517,6 +10808,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -10545,7 +10839,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10573,7 +10867,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10582,6 +10876,9 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10602,7 +10899,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10618,7 +10915,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10634,7 +10931,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapvalue |= (uint64(b) & 0x7F) << shift
+ stringLenmapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10644,6 +10941,9 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapvalue := iNdEx + intStringLenmapvalue
+ if postStringIndexmapvalue < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapvalue > l {
return io.ErrUnexpectedEOF
}
@@ -10680,7 +10980,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10689,6 +10989,9 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10709,7 +11012,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10726,7 +11029,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (uint64(b) & 0x7F) << shift
+ mapkeytemp |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10744,7 +11047,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10753,7 +11056,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTheproto3
}
if postmsgIndex > l {
@@ -10795,7 +11098,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10804,6 +11107,9 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10824,7 +11130,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10841,7 +11147,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (int(b) & 0x7F) << shift
+ mapkeytemp |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10858,7 +11164,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapbyteLen |= (uint64(b) & 0x7F) << shift
+ mapbyteLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10868,6 +11174,9 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postbytesIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10900,6 +11209,9 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -10928,7 +11240,7 @@ func (m *FloatingPoint) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10962,6 +11274,9 @@ func (m *FloatingPoint) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -10990,7 +11305,7 @@ func (m *Uint128Pair) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11018,7 +11333,7 @@ func (m *Uint128Pair) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11027,6 +11342,9 @@ func (m *Uint128Pair) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11048,7 +11366,7 @@ func (m *Uint128Pair) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11057,6 +11375,9 @@ func (m *Uint128Pair) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11075,6 +11396,9 @@ func (m *Uint128Pair) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -11103,7 +11427,7 @@ func (m *ContainsNestedMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11126,6 +11450,9 @@ func (m *ContainsNestedMap) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -11154,7 +11481,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11182,7 +11509,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11191,6 +11518,9 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11211,7 +11541,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11228,7 +11558,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11238,6 +11568,9 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -11277,6 +11610,9 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -11305,7 +11641,7 @@ func (m *NotPacked) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11331,7 +11667,7 @@ func (m *NotPacked) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11348,7 +11684,7 @@ func (m *NotPacked) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11357,12 +11693,15 @@ func (m *NotPacked) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -11382,7 +11721,7 @@ func (m *NotPacked) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11401,6 +11740,9 @@ func (m *NotPacked) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -11468,10 +11810,13 @@ func skipTheproto3(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthTheproto3
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthTheproto3
+ }
return iNdEx, nil
case 3:
for {
@@ -11500,6 +11845,9 @@ func skipTheproto3(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthTheproto3
+ }
}
return iNdEx, nil
case 4:
@@ -11518,112 +11866,3 @@ var (
ErrInvalidLengthTheproto3 = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowTheproto3 = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("combos/both/theproto3.proto", fileDescriptor_theproto3_4dec23a2a081e9e0)
-}
-
-var fileDescriptor_theproto3_4dec23a2a081e9e0 = []byte{
- // 1602 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x99, 0xcf, 0x6f, 0xdb, 0x46,
- 0x16, 0xc7, 0x35, 0xfa, 0xad, 0xa7, 0x1f, 0xa6, 0x27, 0xd9, 0x85, 0xd6, 0x8b, 0xa5, 0x65, 0x05,
- 0x48, 0x94, 0x60, 0x23, 0x67, 0x9d, 0x64, 0x37, 0xeb, 0xa6, 0x4d, 0x2d, 0xc5, 0x42, 0xdc, 0xd8,
- 0x8a, 0x2b, 0xd9, 0x71, 0x8b, 0x00, 0x35, 0x28, 0x9b, 0x96, 0x88, 0x48, 0xa4, 0x21, 0x8e, 0x82,
- 0xfa, 0x96, 0x3f, 0xa3, 0xb7, 0xa2, 0xb7, 0x1e, 0x8b, 0x1c, 0x8a, 0x1e, 0xdb, 0x9b, 0x8f, 0x01,
- 0x7a, 0x29, 0x7a, 0x08, 0x62, 0xf5, 0x92, 0x63, 0x8e, 0x39, 0x16, 0x33, 0x43, 0x49, 0x23, 0x72,
- 0x28, 0x36, 0xbd, 0xf4, 0xe2, 0x93, 0x38, 0xcf, 0xef, 0xfb, 0x99, 0xc7, 0xe1, 0xcc, 0xe3, 0x17,
- 0x34, 0xfc, 0xf3, 0xc0, 0xea, 0xb5, 0x2c, 0x7b, 0xb9, 0x65, 0x91, 0xce, 0x32, 0xe9, 0xe8, 0xc7,
- 0x7d, 0x8b, 0x58, 0x37, 0xcb, 0xec, 0x07, 0xa7, 0xc6, 0x81, 0x85, 0xeb, 0x6d, 0x83, 0x74, 0x06,
- 0xad, 0xf2, 0x81, 0xd5, 0x5b, 0x6e, 0x5b, 0x6d, 0x6b, 0x99, 0xc5, 0x5b, 0x83, 0x23, 0x36, 0x62,
- 0x03, 0x76, 0xc5, 0x95, 0x0b, 0xff, 0xf3, 0x4d, 0x27, 0xba, 0x4d, 0x96, 0x5d, 0x93, 0xd2, 0x18,
- 0x17, 0x16, 0x7f, 0x8a, 0x41, 0x62, 0x4b, 0xb7, 0x6d, 0xad, 0xad, 0x63, 0x0c, 0x51, 0x53, 0xeb,
- 0xe9, 0x79, 0x54, 0x40, 0xa5, 0x54, 0x83, 0x5d, 0xe3, 0xdb, 0x90, 0xec, 0x18, 0x5d, 0xad, 0x6f,
- 0x90, 0x93, 0x7c, 0xb8, 0x80, 0x4a, 0xb9, 0x95, 0x7f, 0x94, 0x27, 0x65, 0x3b, 0xca, 0xf2, 0x83,
- 0x41, 0xcf, 0x1a, 0xf4, 0x1b, 0xe3, 0x54, 0x5c, 0x80, 0x4c, 0x47, 0x37, 0xda, 0x1d, 0xb2, 0x6f,
- 0x98, 0xfb, 0x07, 0xbd, 0x7c, 0xa4, 0x80, 0x4a, 0xd9, 0x06, 0xf0, 0xd8, 0x86, 0x59, 0xed, 0xd1,
- 0xc9, 0x0e, 0x35, 0xa2, 0xe5, 0xa3, 0x05, 0x54, 0xca, 0x34, 0xd8, 0x35, 0x56, 0x20, 0xf2, 0x54,
- 0x3f, 0xc9, 0xc7, 0x0a, 0x91, 0x52, 0xb4, 0x41, 0x2f, 0xf1, 0x55, 0x88, 0x9b, 0xba, 0x4d, 0xf4,
- 0xc3, 0x7c, 0xbc, 0x80, 0x4a, 0xe9, 0x95, 0x79, 0x61, 0xf2, 0x3a, 0xfb, 0x43, 0xc3, 0x49, 0xc0,
- 0x4b, 0x90, 0xe9, 0xeb, 0xf6, 0xa0, 0x4b, 0xf6, 0x0f, 0xac, 0x81, 0x49, 0xf2, 0x89, 0x02, 0x2a,
- 0x45, 0x1a, 0x69, 0x1e, 0xab, 0xd2, 0x10, 0xbe, 0x04, 0x59, 0xd2, 0x1f, 0xe8, 0xfb, 0xf6, 0x81,
- 0x45, 0xec, 0x9e, 0x66, 0xe6, 0x93, 0x05, 0x54, 0x4a, 0x36, 0x32, 0x34, 0xd8, 0x74, 0x62, 0xf8,
- 0x22, 0xc4, 0xec, 0x03, 0xab, 0xaf, 0xe7, 0x53, 0x05, 0x54, 0x0a, 0x37, 0xf8, 0x00, 0xff, 0x1f,
- 0x12, 0x44, 0xef, 0xf7, 0x35, 0xc3, 0xcc, 0x43, 0x21, 0x52, 0x4a, 0xaf, 0x2c, 0x4a, 0x96, 0x61,
- 0x87, 0x67, 0xac, 0x9b, 0xa4, 0x7f, 0xd2, 0x18, 0xe5, 0xe3, 0xdb, 0x90, 0x61, 0x79, 0x2b, 0xfb,
- 0x47, 0x86, 0xde, 0x3d, 0xcc, 0xa7, 0xd9, 0x9d, 0xe0, 0x32, 0x7b, 0x0a, 0x75, 0xc3, 0x7c, 0x74,
- 0x4c, 0xea, 0x1a, 0x31, 0x9e, 0xe9, 0x8d, 0x34, 0xcf, 0xab, 0xd1, 0x34, 0x5c, 0x1b, 0xcb, 0x9e,
- 0x69, 0xdd, 0x81, 0x9e, 0xcf, 0xb2, 0x69, 0x2f, 0x49, 0xa6, 0xdd, 0x66, 0x69, 0x8f, 0x69, 0x16,
- 0x9f, 0xda, 0xe1, 0xb0, 0xc8, 0xc2, 0x16, 0x64, 0xc4, 0xba, 0x46, 0x8b, 0x8c, 0xd8, 0xf2, 0xb0,
- 0x45, 0xbe, 0x02, 0x31, 0x3e, 0x45, 0xd8, 0x6f, 0x8d, 0xf9, 0xdf, 0x57, 0xc3, 0x77, 0xd0, 0xc2,
- 0x36, 0x28, 0xee, 0xf9, 0x24, 0xc8, 0xcb, 0xd3, 0x48, 0x45, 0xbc, 0xd9, 0x75, 0x73, 0xd0, 0x13,
- 0x88, 0xc5, 0x7b, 0x10, 0xe7, 0xfb, 0x07, 0xa7, 0x21, 0xb1, 0x5b, 0x7f, 0x58, 0x7f, 0xb4, 0x57,
- 0x57, 0x42, 0x38, 0x09, 0xd1, 0xed, 0xdd, 0x7a, 0x53, 0x41, 0x38, 0x0b, 0xa9, 0xe6, 0xe6, 0xda,
- 0x76, 0x73, 0x67, 0xa3, 0xfa, 0x50, 0x09, 0xe3, 0x39, 0x48, 0x57, 0x36, 0x36, 0x37, 0xf7, 0x2b,
- 0x6b, 0x1b, 0x9b, 0xeb, 0x9f, 0x2b, 0x91, 0xa2, 0x0a, 0x71, 0x5e, 0x27, 0x7d, 0x76, 0xad, 0x81,
- 0x69, 0x9e, 0x38, 0x5b, 0x98, 0x0f, 0x8a, 0x2f, 0x30, 0x24, 0xd6, 0xba, 0xdd, 0x2d, 0xed, 0xd8,
- 0xc6, 0x7b, 0x30, 0xdf, 0x24, 0x7d, 0xc3, 0x6c, 0xef, 0x58, 0xf7, 0xad, 0x41, 0xab, 0xab, 0x6f,
- 0x69, 0xc7, 0x79, 0xc4, 0x96, 0xf6, 0xaa, 0x70, 0xdf, 0x4e, 0x7a, 0xd9, 0x93, 0xcb, 0x17, 0xd8,
- 0xcb, 0xc0, 0x3b, 0xa0, 0x8c, 0x82, 0xb5, 0xae, 0xa5, 0x11, 0xca, 0x0d, 0x33, 0x6e, 0x69, 0x06,
- 0x77, 0x94, 0xca, 0xb1, 0x1e, 0x02, 0xbe, 0x0b, 0xc9, 0x0d, 0x93, 0xdc, 0x5c, 0xa1, 0xb4, 0x08,
- 0xa3, 0x15, 0x24, 0xb4, 0x51, 0x0a, 0xa7, 0x8c, 0x15, 0x8e, 0xfa, 0xbf, 0xb7, 0xa8, 0x3a, 0x3a,
- 0x4b, 0xcd, 0x52, 0x26, 0x6a, 0x36, 0xc4, 0xf7, 0x20, 0xb5, 0x6b, 0x8c, 0x26, 0x8f, 0x31, 0xf9,
- 0x92, 0x44, 0x3e, 0xce, 0xe1, 0xfa, 0x89, 0x66, 0x04, 0xe0, 0xf3, 0xc7, 0x67, 0x02, 0x84, 0x02,
- 0x26, 0x1a, 0x0a, 0x68, 0x8e, 0x2b, 0x48, 0xf8, 0x02, 0x9a, 0xae, 0x0a, 0x9a, 0x62, 0x05, 0xcd,
- 0x71, 0x05, 0xc9, 0x99, 0x00, 0xb1, 0x82, 0xf1, 0x18, 0x57, 0x00, 0x6a, 0xc6, 0x97, 0xfa, 0x21,
- 0x2f, 0x21, 0xc5, 0x08, 0x45, 0x09, 0x61, 0x92, 0xc4, 0x11, 0x82, 0x0a, 0xaf, 0x43, 0xba, 0x79,
- 0x34, 0x81, 0x80, 0xe7, 0x1c, 0x8f, 0xcb, 0x38, 0x72, 0x51, 0x44, 0xdd, 0xb8, 0x14, 0x7e, 0x33,
- 0xe9, 0xd9, 0xa5, 0x08, 0x77, 0x23, 0xa8, 0x26, 0xa5, 0x70, 0x48, 0x26, 0xa0, 0x14, 0x81, 0x22,
- 0xea, 0x68, 0x33, 0xac, 0x58, 0x16, 0xcd, 0x74, 0xba, 0xd2, 0xa2, 0x04, 0xe1, 0x64, 0x38, 0xcd,
- 0xd0, 0x19, 0xb1, 0x27, 0xc2, 0x36, 0x39, 0x15, 0xe7, 0xfc, 0x9f, 0xc8, 0x28, 0x67, 0xf4, 0x44,
- 0x46, 0x63, 0xf1, 0x9c, 0x55, 0x4e, 0x88, 0x6e, 0x53, 0xce, 0x5c, 0xe0, 0x39, 0x1b, 0xa5, 0xba,
- 0xce, 0xd9, 0x28, 0x8c, 0x3f, 0x85, 0xb9, 0x51, 0x8c, 0xb6, 0x27, 0x0a, 0x55, 0x18, 0xf4, 0xca,
- 0x0c, 0xa8, 0x93, 0xc9, 0x99, 0x6e, 0x3d, 0xae, 0x43, 0x6e, 0x14, 0xda, 0xb2, 0xd9, 0xed, 0xce,
- 0x33, 0xe2, 0xe5, 0x19, 0x44, 0x9e, 0xc8, 0x81, 0x2e, 0xf5, 0xc2, 0x7d, 0xf8, 0xbb, 0xbc, 0x1b,
- 0x89, 0xed, 0x37, 0xc5, 0xdb, 0xef, 0x45, 0xb1, 0xfd, 0x22, 0xb1, 0x7d, 0x57, 0xe1, 0x6f, 0xd2,
- 0xde, 0x13, 0x04, 0x09, 0x8b, 0x90, 0x0f, 0x20, 0x3b, 0xd5, 0x72, 0x44, 0x71, 0x4c, 0x22, 0x8e,
- 0x79, 0xc5, 0x93, 0xad, 0x25, 0x79, 0x7b, 0x4c, 0x89, 0x23, 0xa2, 0xf8, 0x2e, 0xe4, 0xa6, 0xfb,
- 0x8d, 0xa8, 0xce, 0x4a, 0xd4, 0x59, 0x89, 0x5a, 0x3e, 0x77, 0x54, 0xa2, 0x8e, 0xba, 0xd4, 0x4d,
- 0xdf, 0xb9, 0xe7, 0x25, 0xea, 0x79, 0x89, 0x5a, 0x3e, 0x37, 0x96, 0xa8, 0xb1, 0xa8, 0xfe, 0x10,
- 0xe6, 0x5c, 0x2d, 0x46, 0x94, 0x27, 0x24, 0xf2, 0x84, 0x28, 0xff, 0x08, 0x14, 0x77, 0x73, 0x11,
- 0xf5, 0x73, 0x12, 0xfd, 0x9c, 0x6c, 0x7a, 0x79, 0xf5, 0x71, 0x89, 0x3c, 0x2e, 0x9d, 0x5e, 0xae,
- 0x57, 0x24, 0x7a, 0x45, 0xd4, 0xaf, 0x42, 0x46, 0xec, 0x26, 0xa2, 0x36, 0x29, 0xd1, 0x26, 0xdd,
- 0xeb, 0x3e, 0xd5, 0x4c, 0x82, 0x76, 0x7a, 0xca, 0xe7, 0xb8, 0x4c, 0xb5, 0x90, 0x20, 0x48, 0x46,
- 0x84, 0x3c, 0x86, 0x8b, 0xb2, 0x96, 0x21, 0x61, 0x94, 0x44, 0x46, 0x8e, 0x7a, 0xc4, 0x89, 0xd9,
- 0xa3, 0xaa, 0x29, 0xe3, 0xb4, 0xf0, 0x04, 0x2e, 0x48, 0x1a, 0x87, 0x04, 0x5b, 0x9e, 0x76, 0x63,
- 0x79, 0x01, 0xcb, 0x9a, 0x80, 0x61, 0xb6, 0xb7, 0x2d, 0xc3, 0x24, 0xa2, 0x2b, 0xfb, 0xfe, 0x02,
- 0xe4, 0x9c, 0xf6, 0xf4, 0xa8, 0x7f, 0xa8, 0xf7, 0xf5, 0x43, 0xfc, 0x85, 0xbf, 0x77, 0xba, 0xe1,
- 0x6d, 0x6a, 0x8e, 0xea, 0x3d, 0x2c, 0xd4, 0x13, 0x5f, 0x0b, 0xb5, 0x1c, 0x8c, 0x0f, 0x72, 0x52,
- 0x55, 0x8f, 0x93, 0xba, 0xe2, 0x0f, 0xf5, 0x33, 0x54, 0x55, 0x8f, 0xa1, 0x9a, 0x0d, 0x91, 0xfa,
- 0xaa, 0x9a, 0xd7, 0x57, 0x95, 0xfc, 0x29, 0xfe, 0xf6, 0xaa, 0xe6, 0xb5, 0x57, 0x01, 0x1c, 0xb9,
- 0xcb, 0xaa, 0x79, 0x5d, 0xd6, 0x0c, 0x8e, 0xbf, 0xd9, 0xaa, 0x79, 0xcd, 0x56, 0x00, 0x47, 0xee,
- 0xb9, 0x36, 0x24, 0x9e, 0xeb, 0xaa, 0x3f, 0x68, 0x96, 0xf5, 0xda, 0x94, 0x59, 0xaf, 0x6b, 0x33,
- 0x8a, 0x9a, 0xe9, 0xc0, 0x36, 0x24, 0x0e, 0x2c, 0xa8, 0x30, 0x1f, 0x23, 0xb6, 0x29, 0x33, 0x62,
- 0x81, 0x85, 0xf9, 0xf9, 0xb1, 0x8f, 0xdd, 0x7e, 0xec, 0xb2, 0x3f, 0x49, 0x6e, 0xcb, 0x6a, 0x5e,
- 0x5b, 0x56, 0x0a, 0x3a, 0x73, 0x32, 0x77, 0xf6, 0xc4, 0xd7, 0x9d, 0xfd, 0x81, 0x23, 0x1c, 0x64,
- 0xd2, 0x3e, 0xf3, 0x33, 0x69, 0xe5, 0x60, 0xf6, 0x6c, 0xaf, 0xb6, 0xeb, 0xe3, 0xd5, 0xae, 0x07,
- 0x83, 0xcf, 0x2d, 0xdb, 0xb9, 0x65, 0x3b, 0xb7, 0x6c, 0xe7, 0x96, 0xed, 0xaf, 0xb7, 0x6c, 0xab,
- 0xd1, 0xaf, 0xbe, 0x59, 0x44, 0xc5, 0x9f, 0x23, 0x90, 0x73, 0xbe, 0x0c, 0xee, 0x19, 0xa4, 0x43,
- 0xdb, 0xdb, 0x16, 0x64, 0x4c, 0xad, 0xa7, 0xef, 0xf7, 0xb4, 0xe3, 0x63, 0xc3, 0x6c, 0x3b, 0x9e,
- 0xed, 0x9a, 0xf7, 0x53, 0xa2, 0x23, 0x28, 0xd7, 0xb5, 0x1e, 0xed, 0x55, 0x34, 0xd9, 0x79, 0xdd,
- 0x98, 0x93, 0x08, 0xfe, 0x04, 0xd2, 0x3d, 0xbb, 0x3d, 0xa6, 0x85, 0x3d, 0x2f, 0x42, 0x17, 0x8d,
- 0xdf, 0xe9, 0x04, 0x06, 0xbd, 0x71, 0x80, 0x96, 0xd6, 0x3a, 0x21, 0x93, 0xd2, 0x22, 0x41, 0xa5,
- 0xd1, 0x67, 0x3a, 0x5d, 0x5a, 0x6b, 0x12, 0xa1, 0xdb, 0xd6, 0x5d, 0x7b, 0x50, 0xa7, 0x9b, 0xda,
- 0x3c, 0x7b, 0x30, 0xe7, 0xaa, 0x56, 0x72, 0xe6, 0xff, 0xc4, 0xb3, 0xa1, 0x85, 0xb9, 0x2b, 0x0f,
- 0x3a, 0x13, 0xe2, 0x86, 0x2c, 0xfe, 0x0b, 0xb2, 0x53, 0x6c, 0x9c, 0x01, 0x74, 0xc4, 0xa4, 0xa8,
- 0x81, 0x8e, 0x8a, 0x5f, 0x23, 0x48, 0xd3, 0x3e, 0xf9, 0x9f, 0x95, 0x3b, 0xdb, 0x9a, 0xd1, 0xc7,
- 0x0f, 0x20, 0xda, 0xd5, 0x8f, 0x08, 0x4b, 0xc8, 0x54, 0x6e, 0x9d, 0xbe, 0x5a, 0x0c, 0xfd, 0xfa,
- 0x6a, 0xf1, 0xdf, 0x01, 0xff, 0x25, 0x18, 0xd8, 0xc4, 0xea, 0x95, 0x1d, 0x4e, 0x83, 0x11, 0x70,
- 0x0d, 0x62, 0x7d, 0xa3, 0xdd, 0x21, 0xbc, 0xa4, 0xca, 0x8d, 0xf7, 0xc6, 0x70, 0x79, 0xf1, 0x14,
- 0xc1, 0x7c, 0xd5, 0x32, 0x89, 0x66, 0x98, 0x36, 0xff, 0x5a, 0x4b, 0xdf, 0x90, 0x2f, 0x10, 0xa4,
- 0xc6, 0x23, 0xdc, 0x82, 0xdc, 0x78, 0xc0, 0x3e, 0x82, 0x3b, 0x3b, 0x75, 0x55, 0x58, 0x61, 0x0f,
- 0xa3, 0x2c, 0xb9, 0x62, 0x62, 0xe7, 0x9d, 0x3c, 0x1d, 0x5c, 0x58, 0x83, 0x0b, 0x92, 0xb4, 0xf7,
- 0x79, 0x21, 0x17, 0x97, 0x20, 0x55, 0xb7, 0xc8, 0xb6, 0x76, 0xf0, 0x94, 0x7d, 0x72, 0x9e, 0xfc,
- 0xcf, 0xa2, 0x12, 0x56, 0x42, 0x4c, 0x7c, 0x6d, 0x09, 0x12, 0xce, 0xe9, 0xc7, 0x71, 0x08, 0x6f,
- 0xad, 0x29, 0x21, 0xf6, 0x5b, 0x51, 0x10, 0xfb, 0xad, 0x2a, 0xe1, 0xca, 0xe6, 0xe9, 0x99, 0x1a,
- 0x7a, 0x79, 0xa6, 0x86, 0x7e, 0x39, 0x53, 0x43, 0xaf, 0xcf, 0x54, 0xf4, 0xe6, 0x4c, 0x45, 0x6f,
- 0xcf, 0x54, 0xf4, 0xee, 0x4c, 0x45, 0xcf, 0x87, 0x2a, 0xfa, 0x76, 0xa8, 0xa2, 0xef, 0x86, 0x2a,
- 0xfa, 0x61, 0xa8, 0xa2, 0x1f, 0x87, 0x2a, 0x3a, 0x1d, 0xaa, 0xe8, 0xe5, 0x50, 0x45, 0xaf, 0x87,
- 0x2a, 0x7a, 0x33, 0x54, 0x43, 0x6f, 0x87, 0x2a, 0x7a, 0x37, 0x54, 0x43, 0xcf, 0x7f, 0x53, 0x43,
- 0xad, 0x38, 0x5f, 0x9e, 0xdf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x77, 0x56, 0x01, 0x1d, 0x60, 0x1a,
- 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.pb.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.pb.go
index 7d9b64549a..ca461a7484 100644
--- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.pb.go
@@ -3,27 +3,24 @@
package theproto3
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import both "github.com/gogo/protobuf/test/combos/both"
-
-import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strconv "strconv"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-
-import encoding_binary "encoding/binary"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ both "github.com/gogo/protobuf/test/combos/both"
+ github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strconv "strconv"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -49,6 +46,7 @@ var MapEnum_name = map[int32]string{
1: "MB",
2: "MC",
}
+
var MapEnum_value = map[string]int32{
"MA": 0,
"MB": 1,
@@ -56,7 +54,7 @@ var MapEnum_value = map[string]int32{
}
func (MapEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_2741054169128c6d, []int{0}
+ return fileDescriptor_4462241b2b2fd08a, []int{0}
}
type Message_Humour int32
@@ -74,6 +72,7 @@ var Message_Humour_name = map[int32]string{
2: "SLAPSTICK",
3: "BILL_BAILEY",
}
+
var Message_Humour_value = map[string]int32{
"UNKNOWN": 0,
"PUNS": 1,
@@ -82,7 +81,7 @@ var Message_Humour_value = map[string]int32{
}
func (Message_Humour) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_2741054169128c6d, []int{0, 0}
+ return fileDescriptor_4462241b2b2fd08a, []int{0, 0}
}
type Message struct {
@@ -106,7 +105,7 @@ type Message struct {
func (m *Message) Reset() { *m = Message{} }
func (*Message) ProtoMessage() {}
func (*Message) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_2741054169128c6d, []int{0}
+ return fileDescriptor_4462241b2b2fd08a, []int{0}
}
func (m *Message) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Message.Unmarshal(m, b)
@@ -123,8 +122,8 @@ func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Message) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Message.Merge(dst, src)
+func (m *Message) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Message.Merge(m, src)
}
func (m *Message) XXX_Size() int {
return m.Size()
@@ -145,7 +144,7 @@ type Nested struct {
func (m *Nested) Reset() { *m = Nested{} }
func (*Nested) ProtoMessage() {}
func (*Nested) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_2741054169128c6d, []int{1}
+ return fileDescriptor_4462241b2b2fd08a, []int{1}
}
func (m *Nested) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Nested.Unmarshal(m, b)
@@ -162,8 +161,8 @@ func (m *Nested) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Nested) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Nested.Merge(dst, src)
+func (m *Nested) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Nested.Merge(m, src)
}
func (m *Nested) XXX_Size() int {
return m.Size()
@@ -200,7 +199,7 @@ type AllMaps struct {
func (m *AllMaps) Reset() { *m = AllMaps{} }
func (*AllMaps) ProtoMessage() {}
func (*AllMaps) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_2741054169128c6d, []int{2}
+ return fileDescriptor_4462241b2b2fd08a, []int{2}
}
func (m *AllMaps) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AllMaps.Unmarshal(m, b)
@@ -217,8 +216,8 @@ func (m *AllMaps) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *AllMaps) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllMaps.Merge(dst, src)
+func (m *AllMaps) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllMaps.Merge(m, src)
}
func (m *AllMaps) XXX_Size() int {
return m.Size()
@@ -255,7 +254,7 @@ type AllMapsOrdered struct {
func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} }
func (*AllMapsOrdered) ProtoMessage() {}
func (*AllMapsOrdered) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_2741054169128c6d, []int{3}
+ return fileDescriptor_4462241b2b2fd08a, []int{3}
}
func (m *AllMapsOrdered) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AllMapsOrdered.Unmarshal(m, b)
@@ -268,8 +267,8 @@ func (m *AllMapsOrdered) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro
}
return b[:n], nil
}
-func (dst *AllMapsOrdered) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllMapsOrdered.Merge(dst, src)
+func (m *AllMapsOrdered) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllMapsOrdered.Merge(m, src)
}
func (m *AllMapsOrdered) XXX_Size() int {
return m.Size()
@@ -292,7 +291,7 @@ type MessageWithMap struct {
func (m *MessageWithMap) Reset() { *m = MessageWithMap{} }
func (*MessageWithMap) ProtoMessage() {}
func (*MessageWithMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_2741054169128c6d, []int{4}
+ return fileDescriptor_4462241b2b2fd08a, []int{4}
}
func (m *MessageWithMap) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MessageWithMap.Unmarshal(m, b)
@@ -309,8 +308,8 @@ func (m *MessageWithMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro
return b[:n], nil
}
}
-func (dst *MessageWithMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MessageWithMap.Merge(dst, src)
+func (m *MessageWithMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MessageWithMap.Merge(m, src)
}
func (m *MessageWithMap) XXX_Size() int {
return m.Size()
@@ -331,7 +330,7 @@ type FloatingPoint struct {
func (m *FloatingPoint) Reset() { *m = FloatingPoint{} }
func (*FloatingPoint) ProtoMessage() {}
func (*FloatingPoint) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_2741054169128c6d, []int{5}
+ return fileDescriptor_4462241b2b2fd08a, []int{5}
}
func (m *FloatingPoint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FloatingPoint.Unmarshal(m, b)
@@ -348,8 +347,8 @@ func (m *FloatingPoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
return b[:n], nil
}
}
-func (dst *FloatingPoint) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FloatingPoint.Merge(dst, src)
+func (m *FloatingPoint) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FloatingPoint.Merge(m, src)
}
func (m *FloatingPoint) XXX_Size() int {
return m.Size()
@@ -371,7 +370,7 @@ type Uint128Pair struct {
func (m *Uint128Pair) Reset() { *m = Uint128Pair{} }
func (*Uint128Pair) ProtoMessage() {}
func (*Uint128Pair) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_2741054169128c6d, []int{6}
+ return fileDescriptor_4462241b2b2fd08a, []int{6}
}
func (m *Uint128Pair) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Uint128Pair.Unmarshal(m, b)
@@ -388,8 +387,8 @@ func (m *Uint128Pair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *Uint128Pair) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Uint128Pair.Merge(dst, src)
+func (m *Uint128Pair) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Uint128Pair.Merge(m, src)
}
func (m *Uint128Pair) XXX_Size() int {
return m.Size()
@@ -409,7 +408,7 @@ type ContainsNestedMap struct {
func (m *ContainsNestedMap) Reset() { *m = ContainsNestedMap{} }
func (*ContainsNestedMap) ProtoMessage() {}
func (*ContainsNestedMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_2741054169128c6d, []int{7}
+ return fileDescriptor_4462241b2b2fd08a, []int{7}
}
func (m *ContainsNestedMap) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ContainsNestedMap.Unmarshal(m, b)
@@ -426,8 +425,8 @@ func (m *ContainsNestedMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
-func (dst *ContainsNestedMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ContainsNestedMap.Merge(dst, src)
+func (m *ContainsNestedMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ContainsNestedMap.Merge(m, src)
}
func (m *ContainsNestedMap) XXX_Size() int {
return m.Size()
@@ -448,7 +447,7 @@ type ContainsNestedMap_NestedMap struct {
func (m *ContainsNestedMap_NestedMap) Reset() { *m = ContainsNestedMap_NestedMap{} }
func (*ContainsNestedMap_NestedMap) ProtoMessage() {}
func (*ContainsNestedMap_NestedMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_2741054169128c6d, []int{7, 0}
+ return fileDescriptor_4462241b2b2fd08a, []int{7, 0}
}
func (m *ContainsNestedMap_NestedMap) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ContainsNestedMap_NestedMap.Unmarshal(m, b)
@@ -465,8 +464,8 @@ func (m *ContainsNestedMap_NestedMap) XXX_Marshal(b []byte, deterministic bool)
return b[:n], nil
}
}
-func (dst *ContainsNestedMap_NestedMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ContainsNestedMap_NestedMap.Merge(dst, src)
+func (m *ContainsNestedMap_NestedMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ContainsNestedMap_NestedMap.Merge(m, src)
}
func (m *ContainsNestedMap_NestedMap) XXX_Size() int {
return m.Size()
@@ -487,7 +486,7 @@ type NotPacked struct {
func (m *NotPacked) Reset() { *m = NotPacked{} }
func (*NotPacked) ProtoMessage() {}
func (*NotPacked) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_2741054169128c6d, []int{8}
+ return fileDescriptor_4462241b2b2fd08a, []int{8}
}
func (m *NotPacked) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NotPacked.Unmarshal(m, b)
@@ -504,8 +503,8 @@ func (m *NotPacked) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *NotPacked) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NotPacked.Merge(dst, src)
+func (m *NotPacked) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NotPacked.Merge(m, src)
}
func (m *NotPacked) XXX_Size() int {
return m.Size()
@@ -517,6 +516,8 @@ func (m *NotPacked) XXX_DiscardUnknown() {
var xxx_messageInfo_NotPacked proto.InternalMessageInfo
func init() {
+ proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value)
+ proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value)
proto.RegisterType((*Message)(nil), "theproto3.Message")
proto.RegisterMapType((map[int64]*both.NinOptEnum)(nil), "theproto3.Message.Proto2ValueEntry")
proto.RegisterMapType((map[int64]*Nested)(nil), "theproto3.Message.TerrainEntry")
@@ -567,9 +568,115 @@ func init() {
proto.RegisterType((*ContainsNestedMap_NestedMap)(nil), "theproto3.ContainsNestedMap.NestedMap")
proto.RegisterMapType((map[string]float64)(nil), "theproto3.ContainsNestedMap.NestedMap.NestedMapFieldEntry")
proto.RegisterType((*NotPacked)(nil), "theproto3.NotPacked")
- proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value)
- proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value)
}
+
+func init() { proto.RegisterFile("combos/marshaler/theproto3.proto", fileDescriptor_4462241b2b2fd08a) }
+
+var fileDescriptor_4462241b2b2fd08a = []byte{
+ // 1610 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x99, 0xcf, 0x6f, 0xdb, 0x46,
+ 0x16, 0xc7, 0x35, 0xfa, 0xad, 0xa7, 0x1f, 0xa6, 0x27, 0xd9, 0x85, 0xd6, 0xc0, 0xd2, 0xb2, 0x02,
+ 0x24, 0x4a, 0xb0, 0x91, 0xb3, 0x4e, 0xb2, 0x9b, 0xba, 0x69, 0x53, 0x4b, 0xb1, 0x10, 0x37, 0xb6,
+ 0xe2, 0x4a, 0x76, 0xdc, 0x22, 0x40, 0x0d, 0xca, 0xa6, 0x25, 0x22, 0x12, 0x69, 0x90, 0xa3, 0xa0,
+ 0xbe, 0xe5, 0xcf, 0xe8, 0xad, 0xe8, 0xad, 0xc7, 0x22, 0x87, 0xa2, 0xc7, 0xf6, 0xe6, 0x63, 0x80,
+ 0x5e, 0x8a, 0x1e, 0x82, 0x58, 0xbd, 0xe4, 0x98, 0x63, 0x8e, 0xc5, 0xcc, 0x50, 0xd2, 0x48, 0x1c,
+ 0x8a, 0x4d, 0x2f, 0xbd, 0xf8, 0x24, 0xce, 0xf3, 0xfb, 0x7e, 0xe6, 0x71, 0x38, 0xf3, 0xf8, 0x05,
+ 0x0d, 0x85, 0x03, 0xab, 0xd7, 0xb2, 0x9c, 0xe5, 0x9e, 0x66, 0x3b, 0x1d, 0xad, 0xab, 0xdb, 0xcb,
+ 0xa4, 0xa3, 0x1f, 0xdb, 0x16, 0xb1, 0x6e, 0x96, 0xd9, 0x0f, 0x4e, 0x8d, 0x02, 0x0b, 0xd7, 0xdb,
+ 0x06, 0xe9, 0xf4, 0x5b, 0xe5, 0x03, 0xab, 0xb7, 0xdc, 0xb6, 0xda, 0xd6, 0x32, 0x8b, 0xb7, 0xfa,
+ 0x47, 0x6c, 0xc4, 0x06, 0xec, 0x8a, 0x2b, 0x17, 0xfe, 0xef, 0x9b, 0x4e, 0x74, 0x87, 0x2c, 0xbb,
+ 0x33, 0xb7, 0x2c, 0xd2, 0xa1, 0x93, 0xd2, 0x18, 0x17, 0x16, 0x7f, 0x8e, 0x41, 0x62, 0x4b, 0x77,
+ 0x1c, 0xad, 0xad, 0x63, 0x0c, 0x51, 0x53, 0xeb, 0xe9, 0x79, 0x54, 0x40, 0xa5, 0x54, 0x83, 0x5d,
+ 0xe3, 0xdb, 0x90, 0xec, 0x18, 0x5d, 0xcd, 0x36, 0xc8, 0x49, 0x3e, 0x5c, 0x40, 0xa5, 0xdc, 0xca,
+ 0xbf, 0xca, 0xe3, 0xb2, 0x5d, 0x65, 0xf9, 0x41, 0xbf, 0x67, 0xf5, 0xed, 0xc6, 0x28, 0x15, 0x17,
+ 0x20, 0xd3, 0xd1, 0x8d, 0x76, 0x87, 0xec, 0x1b, 0xe6, 0xfe, 0x41, 0x2f, 0x1f, 0x29, 0xa0, 0x52,
+ 0xb6, 0x01, 0x3c, 0xb6, 0x61, 0x56, 0x7b, 0x74, 0xb2, 0x43, 0x8d, 0x68, 0xf9, 0x68, 0x01, 0x95,
+ 0x32, 0x0d, 0x76, 0x8d, 0x97, 0x20, 0x63, 0xeb, 0x4e, 0xbf, 0x4b, 0xf6, 0x0f, 0xac, 0xbe, 0x49,
+ 0xf2, 0x89, 0x02, 0x2a, 0x45, 0x1a, 0x69, 0x1e, 0xab, 0xd2, 0x10, 0xbe, 0x04, 0x59, 0x62, 0xf7,
+ 0xf5, 0x7d, 0xe7, 0xc0, 0x22, 0x4e, 0x4f, 0x33, 0xf3, 0xc9, 0x02, 0x2a, 0x25, 0x1b, 0x19, 0x1a,
+ 0x6c, 0xba, 0x31, 0x7c, 0x11, 0x62, 0xce, 0x81, 0x65, 0xeb, 0xf9, 0x54, 0x01, 0x95, 0xc2, 0x0d,
+ 0x3e, 0xc0, 0x0a, 0x44, 0x9e, 0xea, 0x27, 0xf9, 0x58, 0x21, 0x52, 0x8a, 0x36, 0xe8, 0x25, 0xbe,
+ 0x0a, 0x71, 0x53, 0x77, 0x88, 0x7e, 0x98, 0x8f, 0x17, 0x50, 0x29, 0xbd, 0x32, 0x2f, 0xdc, 0x5a,
+ 0x9d, 0xfd, 0xa1, 0xe1, 0x26, 0xe0, 0x0f, 0x20, 0x41, 0x74, 0xdb, 0xd6, 0x0c, 0x33, 0x0f, 0x85,
+ 0x48, 0x29, 0xbd, 0xb2, 0x28, 0x59, 0x86, 0x1d, 0x9e, 0xb1, 0x6e, 0x12, 0xfb, 0xa4, 0x31, 0xcc,
+ 0xc7, 0xb7, 0x21, 0xc3, 0xf2, 0x56, 0xf6, 0x8f, 0x0c, 0xbd, 0x7b, 0x98, 0x4f, 0xb3, 0xb9, 0x70,
+ 0x99, 0x3d, 0x85, 0xba, 0x61, 0x3e, 0x3a, 0x26, 0x75, 0x8d, 0x18, 0xcf, 0xf4, 0x46, 0x9a, 0xe7,
+ 0xd5, 0x68, 0x1a, 0xae, 0x8d, 0x64, 0xcf, 0xb4, 0x6e, 0x5f, 0xcf, 0x67, 0xd9, 0xb4, 0x97, 0x24,
+ 0xd3, 0x6e, 0xb3, 0xb4, 0xc7, 0x34, 0x8b, 0x4f, 0xed, 0x72, 0x58, 0x64, 0x61, 0x0b, 0x32, 0x62,
+ 0x5d, 0xc3, 0x65, 0x40, 0x6c, 0x6d, 0xd9, 0x32, 0x5c, 0x81, 0x18, 0x9f, 0x22, 0xec, 0xb7, 0x0a,
+ 0xfc, 0xef, 0xab, 0xe1, 0x3b, 0x68, 0x61, 0x1b, 0x94, 0xe9, 0xf9, 0x24, 0xc8, 0xcb, 0x93, 0x48,
+ 0x45, 0xbc, 0xd9, 0x75, 0xb3, 0xdf, 0x13, 0x88, 0xc5, 0x7b, 0x10, 0xe7, 0xfb, 0x07, 0xa7, 0x21,
+ 0xb1, 0x5b, 0x7f, 0x58, 0x7f, 0xb4, 0x57, 0x57, 0x42, 0x38, 0x09, 0xd1, 0xed, 0xdd, 0x7a, 0x53,
+ 0x41, 0x38, 0x0b, 0xa9, 0xe6, 0xe6, 0xda, 0x76, 0x73, 0x67, 0xa3, 0xfa, 0x50, 0x09, 0xe3, 0x39,
+ 0x48, 0x57, 0x36, 0x36, 0x37, 0xf7, 0x2b, 0x6b, 0x1b, 0x9b, 0xeb, 0x5f, 0x28, 0x91, 0xa2, 0x0a,
+ 0x71, 0x5e, 0x27, 0x7d, 0xf0, 0xad, 0xbe, 0x69, 0x9e, 0xb8, 0x5b, 0x98, 0x0f, 0x8a, 0x2f, 0x30,
+ 0x24, 0xd6, 0xba, 0xdd, 0x2d, 0xed, 0xd8, 0xc1, 0x7b, 0x30, 0xdf, 0x24, 0xb6, 0x61, 0xb6, 0x77,
+ 0xac, 0xfb, 0x56, 0xbf, 0xd5, 0xd5, 0xb7, 0xb4, 0xe3, 0x3c, 0x62, 0x4b, 0x7b, 0x55, 0xb8, 0x6f,
+ 0x37, 0xbd, 0xec, 0xc9, 0xe5, 0x0b, 0xec, 0x65, 0xe0, 0x1d, 0x50, 0x86, 0xc1, 0x5a, 0xd7, 0xd2,
+ 0x08, 0xe5, 0x86, 0x19, 0xb7, 0x34, 0x83, 0x3b, 0x4c, 0xe5, 0x58, 0x0f, 0x01, 0xdf, 0x85, 0xe4,
+ 0x86, 0x49, 0x6e, 0xae, 0x50, 0x5a, 0x84, 0xd1, 0x0a, 0x12, 0xda, 0x30, 0x85, 0x53, 0x46, 0x0a,
+ 0x57, 0xfd, 0xbf, 0x5b, 0x54, 0x1d, 0x9d, 0xa5, 0x66, 0x29, 0x63, 0x35, 0x1b, 0xe2, 0x7b, 0x90,
+ 0xda, 0x35, 0x86, 0x93, 0xc7, 0x98, 0x7c, 0x49, 0x22, 0x1f, 0xe5, 0x70, 0xfd, 0x58, 0x33, 0x04,
+ 0xf0, 0xf9, 0xe3, 0x33, 0x01, 0x42, 0x01, 0x63, 0x0d, 0x05, 0x34, 0x47, 0x15, 0x24, 0x7c, 0x01,
+ 0xcd, 0xa9, 0x0a, 0x9a, 0x62, 0x05, 0xcd, 0x51, 0x05, 0xc9, 0x99, 0x00, 0xb1, 0x82, 0xd1, 0x18,
+ 0x57, 0x00, 0x6a, 0xc6, 0x57, 0xfa, 0x21, 0x2f, 0x21, 0xc5, 0x08, 0x45, 0x09, 0x61, 0x9c, 0xc4,
+ 0x11, 0x82, 0x0a, 0xaf, 0x43, 0xba, 0x79, 0x34, 0x86, 0x80, 0xe7, 0x1c, 0x8f, 0xca, 0x38, 0x9a,
+ 0xa2, 0x88, 0xba, 0x51, 0x29, 0xfc, 0x66, 0xd2, 0xb3, 0x4b, 0x11, 0xee, 0x46, 0x50, 0x8d, 0x4b,
+ 0xe1, 0x90, 0x4c, 0x40, 0x29, 0x02, 0x45, 0xd4, 0xd1, 0x66, 0x58, 0xb1, 0x2c, 0x9a, 0xe9, 0x76,
+ 0xa5, 0x45, 0x09, 0xc2, 0xcd, 0x70, 0x9b, 0xa1, 0x3b, 0x62, 0x4f, 0x84, 0x6d, 0x72, 0x2a, 0xce,
+ 0xf9, 0x3f, 0x91, 0x61, 0xce, 0xf0, 0x89, 0x0c, 0xc7, 0xe2, 0x39, 0xab, 0x9c, 0x10, 0xdd, 0xa1,
+ 0x9c, 0xb9, 0xc0, 0x73, 0x36, 0x4c, 0x9d, 0x3a, 0x67, 0xc3, 0x30, 0xfe, 0x0c, 0xe6, 0x86, 0x31,
+ 0xda, 0x9e, 0x28, 0x54, 0x61, 0xd0, 0x2b, 0x33, 0xa0, 0x6e, 0x26, 0x67, 0x4e, 0xeb, 0x71, 0x1d,
+ 0x72, 0xc3, 0xd0, 0x96, 0xc3, 0x6e, 0x77, 0x9e, 0x11, 0x2f, 0xcf, 0x20, 0xf2, 0x44, 0x0e, 0x9c,
+ 0x52, 0x2f, 0xdc, 0x87, 0x7f, 0xca, 0xbb, 0x91, 0xd8, 0x7e, 0x53, 0xbc, 0xfd, 0x5e, 0x14, 0xdb,
+ 0x2f, 0x12, 0xdb, 0x77, 0x15, 0xfe, 0x21, 0xed, 0x3d, 0x41, 0x90, 0xb0, 0x08, 0xf9, 0x10, 0xb2,
+ 0x13, 0x2d, 0x47, 0x14, 0xc7, 0x24, 0xe2, 0x98, 0x57, 0x3c, 0xde, 0x5a, 0x92, 0xb7, 0xc7, 0x84,
+ 0x38, 0x22, 0x8a, 0xef, 0x42, 0x6e, 0xb2, 0xdf, 0x88, 0xea, 0xac, 0x44, 0x9d, 0x95, 0xa8, 0xe5,
+ 0x73, 0x47, 0x25, 0xea, 0xe8, 0x94, 0xba, 0xe9, 0x3b, 0xf7, 0xbc, 0x44, 0x3d, 0x2f, 0x51, 0xcb,
+ 0xe7, 0xc6, 0x12, 0x35, 0x16, 0xd5, 0x1f, 0xc1, 0xdc, 0x54, 0x8b, 0x11, 0xe5, 0x09, 0x89, 0x3c,
+ 0x21, 0xca, 0x3f, 0x06, 0x65, 0xba, 0xb9, 0x88, 0xfa, 0x39, 0x89, 0x7e, 0x4e, 0x36, 0xbd, 0xbc,
+ 0xfa, 0xb8, 0x44, 0x1e, 0x97, 0x4e, 0x2f, 0xd7, 0x2b, 0x12, 0xbd, 0x22, 0xea, 0x57, 0x21, 0x23,
+ 0x76, 0x13, 0x51, 0x9b, 0x94, 0x68, 0x93, 0xd3, 0xeb, 0x3e, 0xd1, 0x4c, 0x82, 0x76, 0x7a, 0xca,
+ 0xe7, 0xb8, 0x4c, 0xb4, 0x90, 0x20, 0x48, 0x46, 0x84, 0x3c, 0x86, 0x8b, 0xb2, 0x96, 0x21, 0x61,
+ 0x94, 0x44, 0x46, 0x8e, 0x7a, 0xc4, 0xb1, 0xd9, 0xa3, 0xaa, 0x09, 0xe3, 0xb4, 0xf0, 0x04, 0x2e,
+ 0x48, 0x1a, 0x87, 0x04, 0x5b, 0x9e, 0x74, 0x63, 0x79, 0x01, 0xcb, 0x9a, 0x80, 0x61, 0xb6, 0xb7,
+ 0x2d, 0xc3, 0x24, 0xa2, 0x2b, 0xfb, 0xe1, 0x02, 0xe4, 0xdc, 0xf6, 0xf4, 0xc8, 0x3e, 0xd4, 0x6d,
+ 0xfd, 0x10, 0x7f, 0xe9, 0xef, 0x9d, 0x6e, 0x78, 0x9b, 0x9a, 0xab, 0x7a, 0x0f, 0x0b, 0xf5, 0xc4,
+ 0xd7, 0x42, 0x2d, 0x07, 0xe3, 0x83, 0x9c, 0x54, 0xd5, 0xe3, 0xa4, 0xae, 0xf8, 0x43, 0xfd, 0x0c,
+ 0x55, 0xd5, 0x63, 0xa8, 0x66, 0x43, 0xa4, 0xbe, 0xaa, 0xe6, 0xf5, 0x55, 0x25, 0x7f, 0x8a, 0xbf,
+ 0xbd, 0xaa, 0x79, 0xed, 0x55, 0x00, 0x47, 0xee, 0xb2, 0x6a, 0x5e, 0x97, 0x35, 0x83, 0xe3, 0x6f,
+ 0xb6, 0x6a, 0x5e, 0xb3, 0x15, 0xc0, 0x91, 0x7b, 0xae, 0x0d, 0x89, 0xe7, 0xba, 0xea, 0x0f, 0x9a,
+ 0x65, 0xbd, 0x36, 0x65, 0xd6, 0xeb, 0xda, 0x8c, 0xa2, 0x66, 0x3a, 0xb0, 0x0d, 0x89, 0x03, 0x0b,
+ 0x2a, 0xcc, 0xc7, 0x88, 0x6d, 0xca, 0x8c, 0x58, 0x60, 0x61, 0x7e, 0x7e, 0xec, 0x93, 0x69, 0x3f,
+ 0x76, 0xd9, 0x9f, 0x24, 0xb7, 0x65, 0x35, 0xaf, 0x2d, 0x2b, 0x05, 0x9d, 0x39, 0x99, 0x3b, 0x7b,
+ 0xe2, 0xeb, 0xce, 0xfe, 0xc4, 0x11, 0x0e, 0x32, 0x69, 0x9f, 0xfb, 0x99, 0xb4, 0x72, 0x30, 0x7b,
+ 0xb6, 0x57, 0xdb, 0xf5, 0xf1, 0x6a, 0xd7, 0x83, 0xc1, 0xe7, 0x96, 0xed, 0xdc, 0xb2, 0x9d, 0x5b,
+ 0xb6, 0x73, 0xcb, 0xf6, 0xf7, 0x5b, 0xb6, 0xd5, 0xe8, 0xd7, 0xdf, 0x2e, 0xa2, 0xe2, 0x2f, 0x11,
+ 0xc8, 0xb9, 0x5f, 0x06, 0xf7, 0x0c, 0xd2, 0xa1, 0xed, 0x6d, 0x0b, 0x32, 0xa6, 0xd6, 0xd3, 0xf7,
+ 0x7b, 0xda, 0xf1, 0xb1, 0x61, 0xb6, 0x5d, 0xcf, 0x76, 0xcd, 0xfb, 0x29, 0xd1, 0x15, 0x94, 0xeb,
+ 0x5a, 0x8f, 0xf6, 0x2a, 0x9a, 0xec, 0xbe, 0x6e, 0xcc, 0x71, 0x04, 0x7f, 0x0a, 0xe9, 0x9e, 0xd3,
+ 0x1e, 0xd1, 0xc2, 0x9e, 0x17, 0xe1, 0x14, 0x8d, 0xdf, 0xe9, 0x18, 0x06, 0xbd, 0x51, 0x80, 0x96,
+ 0xd6, 0x3a, 0x21, 0xe3, 0xd2, 0x22, 0x41, 0xa5, 0xd1, 0x67, 0x3a, 0x59, 0x5a, 0x6b, 0x1c, 0xa1,
+ 0xdb, 0x76, 0xba, 0xf6, 0xa0, 0x4e, 0x37, 0xb1, 0x79, 0xf6, 0x60, 0x6e, 0xaa, 0x5a, 0xc9, 0x99,
+ 0xff, 0x0b, 0xcf, 0x86, 0x16, 0x36, 0x5d, 0x79, 0xd0, 0x99, 0x10, 0x37, 0x64, 0xf1, 0xdf, 0x90,
+ 0x9d, 0x60, 0xe3, 0x0c, 0xa0, 0x23, 0x26, 0x45, 0x0d, 0x74, 0x54, 0xfc, 0x06, 0x41, 0x9a, 0xf6,
+ 0xc9, 0xff, 0xae, 0xdc, 0xd9, 0xd6, 0x0c, 0x1b, 0x3f, 0x80, 0x68, 0x57, 0x3f, 0x22, 0x2c, 0x21,
+ 0x53, 0xb9, 0x75, 0xfa, 0x6a, 0x31, 0xf4, 0xdb, 0xab, 0xc5, 0xff, 0x04, 0xfc, 0x97, 0xa0, 0xef,
+ 0x10, 0xab, 0x57, 0x76, 0x39, 0x0d, 0x46, 0xc0, 0x35, 0x88, 0xd9, 0x46, 0xbb, 0x43, 0x78, 0x49,
+ 0x95, 0x1b, 0xef, 0x8d, 0xe1, 0xf2, 0xe2, 0x29, 0x82, 0xf9, 0xaa, 0x65, 0x12, 0xcd, 0x30, 0x1d,
+ 0xfe, 0xb5, 0x96, 0xbe, 0x21, 0x5f, 0x20, 0x48, 0x8d, 0x46, 0xb8, 0x05, 0xb9, 0xd1, 0x80, 0x7d,
+ 0x04, 0x77, 0x77, 0xea, 0xaa, 0xb0, 0xc2, 0x1e, 0x46, 0x59, 0x72, 0xc5, 0xc4, 0xee, 0x3b, 0x79,
+ 0x32, 0xb8, 0xb0, 0x06, 0x17, 0x24, 0x69, 0xef, 0xf3, 0x42, 0x2e, 0x2e, 0x41, 0xaa, 0x6e, 0x91,
+ 0x6d, 0xed, 0xe0, 0x29, 0xfb, 0xe4, 0x3c, 0xfe, 0xaf, 0x42, 0x25, 0xac, 0x84, 0x98, 0xf8, 0xda,
+ 0x12, 0x24, 0xdc, 0xd3, 0x8f, 0xe3, 0x10, 0xde, 0x5a, 0x53, 0x42, 0xec, 0xb7, 0xa2, 0x20, 0xf6,
+ 0x5b, 0x55, 0xc2, 0x95, 0xcd, 0xd3, 0x33, 0x35, 0xf4, 0xf2, 0x4c, 0x0d, 0xfd, 0x7a, 0xa6, 0x86,
+ 0x5e, 0x9f, 0xa9, 0xe8, 0xcd, 0x99, 0x8a, 0xde, 0x9e, 0xa9, 0xe8, 0xdd, 0x99, 0x8a, 0x9e, 0x0f,
+ 0x54, 0xf4, 0xdd, 0x40, 0x45, 0xdf, 0x0f, 0x54, 0xf4, 0xe3, 0x40, 0x45, 0x3f, 0x0d, 0x54, 0x74,
+ 0x3a, 0x50, 0xd1, 0xcb, 0x81, 0x1a, 0x7a, 0x3d, 0x50, 0xd1, 0x9b, 0x81, 0x1a, 0x7a, 0x3b, 0x50,
+ 0xd1, 0xbb, 0x81, 0x1a, 0x7a, 0xfe, 0xbb, 0x1a, 0x6a, 0xc5, 0xf9, 0xf2, 0xfc, 0x11, 0x00, 0x00,
+ 0xff, 0xff, 0xfe, 0x15, 0xbd, 0x06, 0x65, 0x1a, 0x00, 0x00,
+}
+
func (this *Message) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return Theproto3Description()
}
@@ -603,511 +710,514 @@ func (this *NotPacked) Description() (desc *github_com_gogo_protobuf_protoc_gen_
func Theproto3Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 8063 bytes of a gzipped FileDescriptorSet
+ // 8097 bytes of a gzipped FileDescriptorSet
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x70, 0x23, 0xd7,
- 0x99, 0x1e, 0x1b, 0x0d, 0x90, 0xe0, 0x0f, 0x90, 0x6c, 0x36, 0x67, 0x28, 0x88, 0x1a, 0x91, 0x1c,
- 0x68, 0x34, 0xa2, 0x68, 0x8b, 0xc3, 0xe1, 0x70, 0x6e, 0x18, 0x4b, 0x5a, 0x00, 0x04, 0x47, 0x1c,
- 0x93, 0x20, 0xdd, 0x24, 0x2d, 0x8d, 0x95, 0x04, 0xd5, 0x04, 0x0e, 0x49, 0x48, 0x40, 0x37, 0x16,
- 0xdd, 0x90, 0x44, 0x55, 0x2a, 0xa5, 0xac, 0x93, 0x8d, 0x37, 0xa9, 0x5c, 0x37, 0xa9, 0x78, 0x1d,
- 0x5f, 0xe4, 0xdd, 0xda, 0xb5, 0x77, 0x73, 0xf3, 0x7a, 0x37, 0xce, 0xae, 0x93, 0xca, 0x2a, 0x0f,
- 0x4e, 0x26, 0x2f, 0x29, 0x6f, 0xf2, 0x92, 0x72, 0xa5, 0x54, 0xd6, 0xd8, 0x5b, 0x71, 0x12, 0x27,
- 0xeb, 0x6c, 0x54, 0x15, 0x57, 0x79, 0x1f, 0x52, 0xe7, 0xd6, 0x7d, 0xfa, 0xa0, 0x81, 0x06, 0x47,
- 0x92, 0xbd, 0x0f, 0x7a, 0x99, 0x41, 0x9f, 0xf3, 0x7f, 0x5f, 0xff, 0xfd, 0xdf, 0xce, 0xdf, 0x7d,
- 0x1a, 0x20, 0xfc, 0xf1, 0x4d, 0x98, 0x3f, 0xb2, 0xed, 0xa3, 0x06, 0xba, 0xd4, 0x6a, 0xdb, 0xae,
- 0x7d, 0xd0, 0x39, 0xbc, 0x54, 0x43, 0x4e, 0xb5, 0x5d, 0x6f, 0xb9, 0x76, 0x7b, 0x89, 0x8c, 0xe9,
- 0x13, 0x54, 0x62, 0x89, 0x4b, 0x64, 0xb7, 0x60, 0x72, 0xbd, 0xde, 0x40, 0x6b, 0x9e, 0xe0, 0x2e,
- 0x72, 0xf5, 0x1b, 0x10, 0x3f, 0xac, 0x37, 0x50, 0x46, 0x99, 0x57, 0x17, 0x52, 0x2b, 0x17, 0x96,
- 0x24, 0xd0, 0x52, 0x10, 0xb1, 0x83, 0x87, 0x0d, 0x82, 0xc8, 0x7e, 0x3f, 0x0e, 0x53, 0x21, 0xb3,
- 0xba, 0x0e, 0x71, 0xcb, 0x6c, 0x62, 0x46, 0x65, 0x61, 0xd4, 0x20, 0x9f, 0xf5, 0x0c, 0x8c, 0xb4,
- 0xcc, 0xea, 0xcb, 0xe6, 0x11, 0xca, 0xc4, 0xc8, 0x30, 0x3f, 0xd4, 0x67, 0x01, 0x6a, 0xa8, 0x85,
- 0xac, 0x1a, 0xb2, 0xaa, 0x27, 0x19, 0x75, 0x5e, 0x5d, 0x18, 0x35, 0x84, 0x11, 0xfd, 0x23, 0x30,
- 0xd9, 0xea, 0x1c, 0x34, 0xea, 0xd5, 0x8a, 0x20, 0x06, 0xf3, 0xea, 0x42, 0xc2, 0xd0, 0xe8, 0xc4,
- 0x9a, 0x2f, 0xfc, 0x04, 0x4c, 0xbc, 0x8a, 0xcc, 0x97, 0x45, 0xd1, 0x14, 0x11, 0x1d, 0xc7, 0xc3,
- 0x82, 0x60, 0x11, 0xd2, 0x4d, 0xe4, 0x38, 0xe6, 0x11, 0xaa, 0xb8, 0x27, 0x2d, 0x94, 0x89, 0x93,
- 0xab, 0x9f, 0xef, 0xba, 0x7a, 0xf9, 0xca, 0x53, 0x0c, 0xb5, 0x77, 0xd2, 0x42, 0x7a, 0x1e, 0x46,
- 0x91, 0xd5, 0x69, 0x52, 0x86, 0x44, 0x0f, 0xfb, 0x95, 0xac, 0x4e, 0x53, 0x66, 0x49, 0x62, 0x18,
- 0xa3, 0x18, 0x71, 0x50, 0xfb, 0x95, 0x7a, 0x15, 0x65, 0x86, 0x09, 0xc1, 0x13, 0x5d, 0x04, 0xbb,
- 0x74, 0x5e, 0xe6, 0xe0, 0x38, 0xbd, 0x08, 0xa3, 0xe8, 0x35, 0x17, 0x59, 0x4e, 0xdd, 0xb6, 0x32,
- 0x23, 0x84, 0xe4, 0xf1, 0x10, 0x2f, 0xa2, 0x46, 0x4d, 0xa6, 0xf0, 0x71, 0xfa, 0x35, 0x18, 0xb1,
- 0x5b, 0x6e, 0xdd, 0xb6, 0x9c, 0x4c, 0x72, 0x5e, 0x59, 0x48, 0xad, 0x9c, 0x0b, 0x0d, 0x84, 0x6d,
- 0x2a, 0x63, 0x70, 0x61, 0x7d, 0x03, 0x34, 0xc7, 0xee, 0xb4, 0xab, 0xa8, 0x52, 0xb5, 0x6b, 0xa8,
- 0x52, 0xb7, 0x0e, 0xed, 0xcc, 0x28, 0x21, 0x98, 0xeb, 0xbe, 0x10, 0x22, 0x58, 0xb4, 0x6b, 0x68,
- 0xc3, 0x3a, 0xb4, 0x8d, 0x71, 0x27, 0x70, 0xac, 0x4f, 0xc3, 0xb0, 0x73, 0x62, 0xb9, 0xe6, 0x6b,
- 0x99, 0x34, 0x89, 0x10, 0x76, 0x94, 0xfd, 0xfd, 0x61, 0x98, 0x18, 0x24, 0xc4, 0x6e, 0x41, 0xe2,
- 0x10, 0x5f, 0x65, 0x26, 0x76, 0x1a, 0x1b, 0x50, 0x4c, 0xd0, 0x88, 0xc3, 0x0f, 0x68, 0xc4, 0x3c,
- 0xa4, 0x2c, 0xe4, 0xb8, 0xa8, 0x46, 0x23, 0x42, 0x1d, 0x30, 0xa6, 0x80, 0x82, 0xba, 0x43, 0x2a,
- 0xfe, 0x40, 0x21, 0xf5, 0x02, 0x4c, 0x78, 0x2a, 0x55, 0xda, 0xa6, 0x75, 0xc4, 0x63, 0xf3, 0x52,
- 0x94, 0x26, 0x4b, 0x25, 0x8e, 0x33, 0x30, 0xcc, 0x18, 0x47, 0x81, 0x63, 0x7d, 0x0d, 0xc0, 0xb6,
- 0x90, 0x7d, 0x58, 0xa9, 0xa1, 0x6a, 0x23, 0x93, 0xec, 0x61, 0xa5, 0x6d, 0x2c, 0xd2, 0x65, 0x25,
- 0x9b, 0x8e, 0x56, 0x1b, 0xfa, 0x4d, 0x3f, 0xd4, 0x46, 0x7a, 0x44, 0xca, 0x16, 0x4d, 0xb2, 0xae,
- 0x68, 0xdb, 0x87, 0xf1, 0x36, 0xc2, 0x71, 0x8f, 0x6a, 0xec, 0xca, 0x46, 0x89, 0x12, 0x4b, 0x91,
- 0x57, 0x66, 0x30, 0x18, 0xbd, 0xb0, 0xb1, 0xb6, 0x78, 0xa8, 0x3f, 0x06, 0xde, 0x40, 0x85, 0x84,
- 0x15, 0x90, 0x2a, 0x94, 0xe6, 0x83, 0x65, 0xb3, 0x89, 0x66, 0x5e, 0x87, 0xf1, 0xa0, 0x79, 0xf4,
- 0x33, 0x90, 0x70, 0x5c, 0xb3, 0xed, 0x92, 0x28, 0x4c, 0x18, 0xf4, 0x40, 0xd7, 0x40, 0x45, 0x56,
- 0x8d, 0x54, 0xb9, 0x84, 0x81, 0x3f, 0xea, 0x3f, 0xe7, 0x5f, 0xb0, 0x4a, 0x2e, 0xf8, 0x62, 0xb7,
- 0x47, 0x03, 0xcc, 0xf2, 0x75, 0xcf, 0x5c, 0x87, 0xb1, 0xc0, 0x05, 0x0c, 0x7a, 0xea, 0xec, 0x5f,
- 0x84, 0xb3, 0xa1, 0xd4, 0xfa, 0x0b, 0x70, 0xa6, 0x63, 0xd5, 0x2d, 0x17, 0xb5, 0x5b, 0x6d, 0x84,
- 0x23, 0x96, 0x9e, 0x2a, 0xf3, 0xdf, 0x46, 0x7a, 0xc4, 0xdc, 0xbe, 0x28, 0x4d, 0x59, 0x8c, 0xa9,
- 0x4e, 0xf7, 0xe0, 0xe2, 0x68, 0xf2, 0x07, 0x23, 0xda, 0x1b, 0x6f, 0xbc, 0xf1, 0x46, 0x2c, 0xfb,
- 0xd9, 0x61, 0x38, 0x13, 0x96, 0x33, 0xa1, 0xe9, 0x3b, 0x0d, 0xc3, 0x56, 0xa7, 0x79, 0x80, 0xda,
- 0xc4, 0x48, 0x09, 0x83, 0x1d, 0xe9, 0x79, 0x48, 0x34, 0xcc, 0x03, 0xd4, 0xc8, 0xc4, 0xe7, 0x95,
- 0x85, 0xf1, 0x95, 0x8f, 0x0c, 0x94, 0x95, 0x4b, 0x9b, 0x18, 0x62, 0x50, 0xa4, 0xfe, 0x0c, 0xc4,
- 0x59, 0x89, 0xc6, 0x0c, 0x8b, 0x83, 0x31, 0xe0, 0x5c, 0x32, 0x08, 0x4e, 0x7f, 0x04, 0x46, 0xf1,
- 0xff, 0x34, 0x36, 0x86, 0x89, 0xce, 0x49, 0x3c, 0x80, 0xe3, 0x42, 0x9f, 0x81, 0x24, 0x49, 0x93,
- 0x1a, 0xe2, 0x4b, 0x9b, 0x77, 0x8c, 0x03, 0xab, 0x86, 0x0e, 0xcd, 0x4e, 0xc3, 0xad, 0xbc, 0x62,
- 0x36, 0x3a, 0x88, 0x04, 0xfc, 0xa8, 0x91, 0x66, 0x83, 0x9f, 0xc4, 0x63, 0xfa, 0x1c, 0xa4, 0x68,
- 0x56, 0xd5, 0xad, 0x1a, 0x7a, 0x8d, 0x54, 0xcf, 0x84, 0x41, 0x13, 0x6d, 0x03, 0x8f, 0xe0, 0xd3,
- 0xbf, 0xe4, 0xd8, 0x16, 0x0f, 0x4d, 0x72, 0x0a, 0x3c, 0x40, 0x4e, 0x7f, 0x5d, 0x2e, 0xdc, 0x8f,
- 0x86, 0x5f, 0x9e, 0x1c, 0x53, 0xd9, 0x6f, 0xc4, 0x20, 0x4e, 0xea, 0xc5, 0x04, 0xa4, 0xf6, 0xee,
- 0xee, 0x94, 0x2a, 0x6b, 0xdb, 0xfb, 0x85, 0xcd, 0x92, 0xa6, 0xe8, 0xe3, 0x00, 0x64, 0x60, 0x7d,
- 0x73, 0x3b, 0xbf, 0xa7, 0xc5, 0xbc, 0xe3, 0x8d, 0xf2, 0xde, 0xb5, 0x55, 0x4d, 0xf5, 0x00, 0xfb,
- 0x74, 0x20, 0x2e, 0x0a, 0x5c, 0x59, 0xd1, 0x12, 0xba, 0x06, 0x69, 0x4a, 0xb0, 0xf1, 0x42, 0x69,
- 0xed, 0xda, 0xaa, 0x36, 0x1c, 0x1c, 0xb9, 0xb2, 0xa2, 0x8d, 0xe8, 0x63, 0x30, 0x4a, 0x46, 0x0a,
- 0xdb, 0xdb, 0x9b, 0x5a, 0xd2, 0xe3, 0xdc, 0xdd, 0x33, 0x36, 0xca, 0xb7, 0xb5, 0x51, 0x8f, 0xf3,
- 0xb6, 0xb1, 0xbd, 0xbf, 0xa3, 0x81, 0xc7, 0xb0, 0x55, 0xda, 0xdd, 0xcd, 0xdf, 0x2e, 0x69, 0x29,
- 0x4f, 0xa2, 0x70, 0x77, 0xaf, 0xb4, 0xab, 0xa5, 0x03, 0x6a, 0x5d, 0x59, 0xd1, 0xc6, 0xbc, 0x53,
- 0x94, 0xca, 0xfb, 0x5b, 0xda, 0xb8, 0x3e, 0x09, 0x63, 0xf4, 0x14, 0x5c, 0x89, 0x09, 0x69, 0xe8,
- 0xda, 0xaa, 0xa6, 0xf9, 0x8a, 0x50, 0x96, 0xc9, 0xc0, 0xc0, 0xb5, 0x55, 0x4d, 0xcf, 0x16, 0x21,
- 0x41, 0xa2, 0x4b, 0xd7, 0x61, 0x7c, 0x33, 0x5f, 0x28, 0x6d, 0x56, 0xb6, 0x77, 0xf6, 0x36, 0xb6,
- 0xcb, 0xf9, 0x4d, 0x4d, 0xf1, 0xc7, 0x8c, 0xd2, 0x27, 0xf6, 0x37, 0x8c, 0xd2, 0x9a, 0x16, 0x13,
- 0xc7, 0x76, 0x4a, 0xf9, 0xbd, 0xd2, 0x9a, 0xa6, 0x66, 0xab, 0x70, 0x26, 0xac, 0x4e, 0x86, 0x66,
- 0x86, 0xe0, 0xe2, 0x58, 0x0f, 0x17, 0x13, 0xae, 0x2e, 0x17, 0x7f, 0x2f, 0x06, 0x53, 0x21, 0x6b,
- 0x45, 0xe8, 0x49, 0x9e, 0x85, 0x04, 0x0d, 0x51, 0xba, 0x7a, 0x3e, 0x19, 0xba, 0xe8, 0x90, 0x80,
- 0xed, 0x5a, 0x41, 0x09, 0x4e, 0xec, 0x20, 0xd4, 0x1e, 0x1d, 0x04, 0xa6, 0xe8, 0xaa, 0xe9, 0x7f,
- 0xbe, 0xab, 0xa6, 0xd3, 0x65, 0xef, 0xda, 0x20, 0xcb, 0x1e, 0x19, 0x3b, 0x5d, 0x6d, 0x4f, 0x84,
- 0xd4, 0xf6, 0x5b, 0x30, 0xd9, 0x45, 0x34, 0x70, 0x8d, 0xfd, 0xb4, 0x02, 0x99, 0x5e, 0xc6, 0x89,
- 0xa8, 0x74, 0xb1, 0x40, 0xa5, 0xbb, 0x25, 0x5b, 0xf0, 0x7c, 0x6f, 0x27, 0x74, 0xf9, 0xfa, 0x2b,
- 0x0a, 0x4c, 0x87, 0x77, 0x8a, 0xa1, 0x3a, 0x3c, 0x03, 0xc3, 0x4d, 0xe4, 0x1e, 0xdb, 0xbc, 0x5b,
- 0xba, 0x18, 0xb2, 0x06, 0xe3, 0x69, 0xd9, 0xd9, 0x0c, 0x25, 0x2e, 0xe2, 0x6a, 0xaf, 0x76, 0x8f,
- 0x6a, 0xd3, 0xa5, 0xe9, 0x2f, 0xc5, 0xe0, 0x6c, 0x28, 0x79, 0xa8, 0xa2, 0x8f, 0x02, 0xd4, 0xad,
- 0x56, 0xc7, 0xa5, 0x1d, 0x11, 0x2d, 0xb0, 0xa3, 0x64, 0x84, 0x14, 0x2f, 0x5c, 0x3c, 0x3b, 0xae,
- 0x37, 0xaf, 0x92, 0x79, 0xa0, 0x43, 0x44, 0xe0, 0x86, 0xaf, 0x68, 0x9c, 0x28, 0x3a, 0xdb, 0xe3,
- 0x4a, 0xbb, 0x02, 0x73, 0x19, 0xb4, 0x6a, 0xa3, 0x8e, 0x2c, 0xb7, 0xe2, 0xb8, 0x6d, 0x64, 0x36,
- 0xeb, 0xd6, 0x11, 0x59, 0x41, 0x92, 0xb9, 0xc4, 0xa1, 0xd9, 0x70, 0x90, 0x31, 0x41, 0xa7, 0x77,
- 0xf9, 0x2c, 0x46, 0x90, 0x00, 0x6a, 0x0b, 0x88, 0xe1, 0x00, 0x82, 0x4e, 0x7b, 0x88, 0xec, 0xef,
- 0x24, 0x21, 0x25, 0xf4, 0xd5, 0xfa, 0x79, 0x48, 0xbf, 0x64, 0xbe, 0x62, 0x56, 0xf8, 0xbd, 0x12,
- 0xb5, 0x44, 0x0a, 0x8f, 0xed, 0xb0, 0xfb, 0xa5, 0x65, 0x38, 0x43, 0x44, 0xec, 0x8e, 0x8b, 0xda,
- 0x95, 0x6a, 0xc3, 0x74, 0x1c, 0x62, 0xb4, 0x24, 0x11, 0xd5, 0xf1, 0xdc, 0x36, 0x9e, 0x2a, 0xf2,
- 0x19, 0xfd, 0x2a, 0x4c, 0x11, 0x44, 0xb3, 0xd3, 0x70, 0xeb, 0xad, 0x06, 0xaa, 0xe0, 0xbb, 0x37,
- 0x87, 0xac, 0x24, 0x9e, 0x66, 0x93, 0x58, 0x62, 0x8b, 0x09, 0x60, 0x8d, 0x1c, 0x7d, 0x0d, 0x1e,
- 0x25, 0xb0, 0x23, 0x64, 0xa1, 0xb6, 0xe9, 0xa2, 0x0a, 0xfa, 0xf9, 0x8e, 0xd9, 0x70, 0x2a, 0xa6,
- 0x55, 0xab, 0x1c, 0x9b, 0xce, 0x71, 0xe6, 0x0c, 0x26, 0x28, 0xc4, 0x32, 0x8a, 0xf1, 0x30, 0x16,
- 0xbc, 0xcd, 0xe4, 0x4a, 0x44, 0x2c, 0x6f, 0xd5, 0x9e, 0x33, 0x9d, 0x63, 0x3d, 0x07, 0xd3, 0x84,
- 0xc5, 0x71, 0xdb, 0x75, 0xeb, 0xa8, 0x52, 0x3d, 0x46, 0xd5, 0x97, 0x2b, 0x1d, 0xf7, 0xf0, 0x46,
- 0xe6, 0x11, 0xf1, 0xfc, 0x44, 0xc3, 0x5d, 0x22, 0x53, 0xc4, 0x22, 0xfb, 0xee, 0xe1, 0x0d, 0x7d,
- 0x17, 0xd2, 0xd8, 0x19, 0xcd, 0xfa, 0xeb, 0xa8, 0x72, 0x68, 0xb7, 0xc9, 0xd2, 0x38, 0x1e, 0x52,
- 0x9a, 0x04, 0x0b, 0x2e, 0x6d, 0x33, 0xc0, 0x96, 0x5d, 0x43, 0xb9, 0xc4, 0xee, 0x4e, 0xa9, 0xb4,
- 0x66, 0xa4, 0x38, 0xcb, 0xba, 0xdd, 0xc6, 0x01, 0x75, 0x64, 0x7b, 0x06, 0x4e, 0xd1, 0x80, 0x3a,
- 0xb2, 0xb9, 0x79, 0xaf, 0xc2, 0x54, 0xb5, 0x4a, 0xaf, 0xb9, 0x5e, 0xad, 0xb0, 0x7b, 0x2c, 0x27,
- 0xa3, 0x05, 0x8c, 0x55, 0xad, 0xde, 0xa6, 0x02, 0x2c, 0xc6, 0x1d, 0xfd, 0x26, 0x9c, 0xf5, 0x8d,
- 0x25, 0x02, 0x27, 0xbb, 0xae, 0x52, 0x86, 0x5e, 0x85, 0xa9, 0xd6, 0x49, 0x37, 0x50, 0x0f, 0x9c,
- 0xb1, 0x75, 0x22, 0xc3, 0xae, 0xc3, 0x99, 0xd6, 0x71, 0xab, 0x1b, 0xb7, 0x28, 0xe2, 0xf4, 0xd6,
- 0x71, 0x4b, 0x06, 0x3e, 0x4e, 0x6e, 0xb8, 0xdb, 0xa8, 0x6a, 0xba, 0xa8, 0x96, 0x79, 0x48, 0x14,
- 0x17, 0x26, 0xf4, 0x4b, 0xa0, 0x55, 0xab, 0x15, 0x64, 0x99, 0x07, 0x0d, 0x54, 0x31, 0xdb, 0xc8,
- 0x32, 0x9d, 0xcc, 0x9c, 0x28, 0x3c, 0x5e, 0xad, 0x96, 0xc8, 0x6c, 0x9e, 0x4c, 0xea, 0x8b, 0x30,
- 0x69, 0x1f, 0xbc, 0x54, 0xa5, 0x21, 0x59, 0x69, 0xb5, 0xd1, 0x61, 0xfd, 0xb5, 0xcc, 0x05, 0x62,
- 0xdf, 0x09, 0x3c, 0x41, 0x02, 0x72, 0x87, 0x0c, 0xeb, 0x4f, 0x82, 0x56, 0x75, 0x8e, 0xcd, 0x76,
- 0x8b, 0xd4, 0x64, 0xa7, 0x65, 0x56, 0x51, 0xe6, 0x71, 0x2a, 0x4a, 0xc7, 0xcb, 0x7c, 0x18, 0xa7,
- 0x84, 0xf3, 0x6a, 0xfd, 0xd0, 0xe5, 0x8c, 0x4f, 0xd0, 0x94, 0x20, 0x63, 0x8c, 0x6d, 0x01, 0x34,
- 0x6c, 0x8a, 0xc0, 0x89, 0x17, 0x88, 0xd8, 0x78, 0xeb, 0xb8, 0x25, 0x9e, 0xf7, 0x31, 0x18, 0xc3,
- 0x92, 0xfe, 0x49, 0x9f, 0xa4, 0x0d, 0x59, 0xeb, 0x58, 0x38, 0xe3, 0x07, 0xd6, 0x1b, 0x67, 0x73,
- 0x90, 0x16, 0xe3, 0x53, 0x1f, 0x05, 0x1a, 0xa1, 0x9a, 0x82, 0x9b, 0x95, 0xe2, 0xf6, 0x1a, 0x6e,
- 0x33, 0x3e, 0x55, 0xd2, 0x62, 0xb8, 0xdd, 0xd9, 0xdc, 0xd8, 0x2b, 0x55, 0x8c, 0xfd, 0xf2, 0xde,
- 0xc6, 0x56, 0x49, 0x53, 0xc5, 0xbe, 0xfa, 0x5b, 0x31, 0x18, 0x0f, 0xde, 0x22, 0xe9, 0x1f, 0x83,
- 0x87, 0xf8, 0xf3, 0x0c, 0x07, 0xb9, 0x95, 0x57, 0xeb, 0x6d, 0x92, 0x32, 0x4d, 0x93, 0x2e, 0x5f,
- 0x9e, 0xd3, 0xce, 0x30, 0xa9, 0x5d, 0xe4, 0x3e, 0x5f, 0x6f, 0xe3, 0x84, 0x68, 0x9a, 0xae, 0xbe,
- 0x09, 0x73, 0x96, 0x5d, 0x71, 0x5c, 0xd3, 0xaa, 0x99, 0xed, 0x5a, 0xc5, 0x7f, 0x92, 0x54, 0x31,
- 0xab, 0x55, 0xe4, 0x38, 0x36, 0x5d, 0xaa, 0x3c, 0x96, 0x73, 0x96, 0xbd, 0xcb, 0x84, 0xfd, 0x1a,
- 0x9e, 0x67, 0xa2, 0x52, 0x80, 0xa9, 0xbd, 0x02, 0xec, 0x11, 0x18, 0x6d, 0x9a, 0xad, 0x0a, 0xb2,
- 0xdc, 0xf6, 0x09, 0x69, 0x8c, 0x93, 0x46, 0xb2, 0x69, 0xb6, 0x4a, 0xf8, 0xf8, 0xa7, 0x73, 0x7f,
- 0xf2, 0x5f, 0x55, 0x48, 0x8b, 0xcd, 0x31, 0xbe, 0xd7, 0xa8, 0x92, 0x75, 0x44, 0x21, 0x95, 0xe6,
- 0xb1, 0xbe, 0xad, 0xf4, 0x52, 0x11, 0x2f, 0x30, 0xb9, 0x61, 0xda, 0xb2, 0x1a, 0x14, 0x89, 0x17,
- 0x77, 0x5c, 0x5b, 0x10, 0x6d, 0x11, 0x92, 0x06, 0x3b, 0xd2, 0x6f, 0xc3, 0xf0, 0x4b, 0x0e, 0xe1,
- 0x1e, 0x26, 0xdc, 0x17, 0xfa, 0x73, 0xdf, 0xd9, 0x25, 0xe4, 0xa3, 0x77, 0x76, 0x2b, 0xe5, 0x6d,
- 0x63, 0x2b, 0xbf, 0x69, 0x30, 0xb8, 0xfe, 0x30, 0xc4, 0x1b, 0xe6, 0xeb, 0x27, 0xc1, 0xa5, 0x88,
- 0x0c, 0x0d, 0x6a, 0xf8, 0x87, 0x21, 0xfe, 0x2a, 0x32, 0x5f, 0x0e, 0x2e, 0x00, 0x64, 0xe8, 0x03,
- 0x0c, 0xfd, 0x4b, 0x90, 0x20, 0xf6, 0xd2, 0x01, 0x98, 0xc5, 0xb4, 0x21, 0x3d, 0x09, 0xf1, 0xe2,
- 0xb6, 0x81, 0xc3, 0x5f, 0x83, 0x34, 0x1d, 0xad, 0xec, 0x6c, 0x94, 0x8a, 0x25, 0x2d, 0x96, 0xbd,
- 0x0a, 0xc3, 0xd4, 0x08, 0x38, 0x35, 0x3c, 0x33, 0x68, 0x43, 0xec, 0x90, 0x71, 0x28, 0x7c, 0x76,
- 0x7f, 0xab, 0x50, 0x32, 0xb4, 0x98, 0xe8, 0x5e, 0x07, 0xd2, 0x62, 0x5f, 0xfc, 0xd3, 0x89, 0xa9,
- 0x6f, 0x2a, 0x90, 0x12, 0xfa, 0x5c, 0xdc, 0xa0, 0x98, 0x8d, 0x86, 0xfd, 0x6a, 0xc5, 0x6c, 0xd4,
- 0x4d, 0x87, 0x05, 0x05, 0x90, 0xa1, 0x3c, 0x1e, 0x19, 0xd4, 0x69, 0x3f, 0x15, 0xe5, 0xbf, 0xa8,
- 0x80, 0x26, 0xb7, 0x98, 0x92, 0x82, 0xca, 0xcf, 0x54, 0xc1, 0xcf, 0x2b, 0x30, 0x1e, 0xec, 0x2b,
- 0x25, 0xf5, 0xce, 0xff, 0x4c, 0xd5, 0xfb, 0x6e, 0x0c, 0xc6, 0x02, 0xdd, 0xe4, 0xa0, 0xda, 0xfd,
- 0x3c, 0x4c, 0xd6, 0x6b, 0xa8, 0xd9, 0xb2, 0x5d, 0x64, 0x55, 0x4f, 0x2a, 0x0d, 0xf4, 0x0a, 0x6a,
- 0x64, 0xb2, 0xa4, 0x50, 0x5c, 0xea, 0xdf, 0xaf, 0x2e, 0x6d, 0xf8, 0xb8, 0x4d, 0x0c, 0xcb, 0x4d,
- 0x6d, 0xac, 0x95, 0xb6, 0x76, 0xb6, 0xf7, 0x4a, 0xe5, 0xe2, 0xdd, 0xca, 0x7e, 0xf9, 0xe3, 0xe5,
- 0xed, 0xe7, 0xcb, 0x86, 0x56, 0x97, 0xc4, 0x3e, 0xc0, 0x54, 0xdf, 0x01, 0x4d, 0x56, 0x4a, 0x7f,
- 0x08, 0xc2, 0xd4, 0xd2, 0x86, 0xf4, 0x29, 0x98, 0x28, 0x6f, 0x57, 0x76, 0x37, 0xd6, 0x4a, 0x95,
- 0xd2, 0xfa, 0x7a, 0xa9, 0xb8, 0xb7, 0x4b, 0x9f, 0x40, 0x78, 0xd2, 0x7b, 0xc1, 0xa4, 0xfe, 0x9c,
- 0x0a, 0x53, 0x21, 0x9a, 0xe8, 0x79, 0x76, 0xef, 0x40, 0x6f, 0x67, 0x9e, 0x1a, 0x44, 0xfb, 0x25,
- 0xbc, 0xe4, 0xef, 0x98, 0x6d, 0x97, 0xdd, 0x6a, 0x3c, 0x09, 0xd8, 0x4a, 0x96, 0x5b, 0x3f, 0xac,
- 0xa3, 0x36, 0x7b, 0x60, 0x43, 0x6f, 0x28, 0x26, 0xfc, 0x71, 0xfa, 0xcc, 0xe6, 0xa3, 0xa0, 0xb7,
- 0x6c, 0xa7, 0xee, 0xd6, 0x5f, 0x41, 0x95, 0xba, 0xc5, 0x9f, 0xee, 0xe0, 0x1b, 0x8c, 0xb8, 0xa1,
- 0xf1, 0x99, 0x0d, 0xcb, 0xf5, 0xa4, 0x2d, 0x74, 0x64, 0x4a, 0xd2, 0xb8, 0x80, 0xab, 0x86, 0xc6,
- 0x67, 0x3c, 0xe9, 0xf3, 0x90, 0xae, 0xd9, 0x1d, 0xdc, 0x75, 0x51, 0x39, 0xbc, 0x5e, 0x28, 0x46,
- 0x8a, 0x8e, 0x79, 0x22, 0xac, 0x9f, 0xf6, 0x1f, 0x2b, 0xa5, 0x8d, 0x14, 0x1d, 0xa3, 0x22, 0x4f,
- 0xc0, 0x84, 0x79, 0x74, 0xd4, 0xc6, 0xe4, 0x9c, 0x88, 0xde, 0x21, 0x8c, 0x7b, 0xc3, 0x44, 0x70,
- 0xe6, 0x0e, 0x24, 0xb9, 0x1d, 0xf0, 0x92, 0x8c, 0x2d, 0x51, 0x69, 0xd1, 0xdb, 0xde, 0xd8, 0xc2,
- 0xa8, 0x91, 0xb4, 0xf8, 0xe4, 0x79, 0x48, 0xd7, 0x9d, 0x8a, 0xff, 0x94, 0x3c, 0x36, 0x1f, 0x5b,
- 0x48, 0x1a, 0xa9, 0xba, 0xe3, 0x3d, 0x61, 0xcc, 0x7e, 0x25, 0x06, 0xe3, 0xc1, 0xa7, 0xfc, 0xfa,
- 0x1a, 0x24, 0x1b, 0x76, 0xd5, 0x24, 0xa1, 0x45, 0xb7, 0x98, 0x16, 0x22, 0x36, 0x06, 0x96, 0x36,
- 0x99, 0xbc, 0xe1, 0x21, 0x67, 0xfe, 0xa3, 0x02, 0x49, 0x3e, 0xac, 0x4f, 0x43, 0xbc, 0x65, 0xba,
- 0xc7, 0x84, 0x2e, 0x51, 0x88, 0x69, 0x8a, 0x41, 0x8e, 0xf1, 0xb8, 0xd3, 0x32, 0x2d, 0x12, 0x02,
- 0x6c, 0x1c, 0x1f, 0x63, 0xbf, 0x36, 0x90, 0x59, 0x23, 0xb7, 0x1f, 0x76, 0xb3, 0x89, 0x2c, 0xd7,
- 0xe1, 0x7e, 0x65, 0xe3, 0x45, 0x36, 0xac, 0x7f, 0x04, 0x26, 0xdd, 0xb6, 0x59, 0x6f, 0x04, 0x64,
- 0xe3, 0x44, 0x56, 0xe3, 0x13, 0x9e, 0x70, 0x0e, 0x1e, 0xe6, 0xbc, 0x35, 0xe4, 0x9a, 0xd5, 0x63,
- 0x54, 0xf3, 0x41, 0xc3, 0xe4, 0x31, 0xc3, 0x43, 0x4c, 0x60, 0x8d, 0xcd, 0x73, 0x6c, 0xf6, 0x0f,
- 0x15, 0x98, 0xe4, 0x37, 0x4c, 0x35, 0xcf, 0x58, 0x5b, 0x00, 0xa6, 0x65, 0xd9, 0xae, 0x68, 0xae,
- 0xee, 0x50, 0xee, 0xc2, 0x2d, 0xe5, 0x3d, 0x90, 0x21, 0x10, 0xcc, 0x34, 0x01, 0xfc, 0x99, 0x9e,
- 0x66, 0x9b, 0x83, 0x14, 0xdb, 0xc2, 0x21, 0xfb, 0x80, 0xf4, 0x16, 0x1b, 0xe8, 0x10, 0xbe, 0xb3,
- 0xd2, 0xcf, 0x40, 0xe2, 0x00, 0x1d, 0xd5, 0x2d, 0xf6, 0x60, 0x96, 0x1e, 0xf0, 0x07, 0x21, 0x71,
- 0xef, 0x41, 0x48, 0xe1, 0x45, 0x98, 0xaa, 0xda, 0x4d, 0x59, 0xdd, 0x82, 0x26, 0xdd, 0xe6, 0x3b,
- 0xcf, 0x29, 0x9f, 0x02, 0xbf, 0xc5, 0xfc, 0xb1, 0xa2, 0xfc, 0x6a, 0x4c, 0xbd, 0xbd, 0x53, 0xf8,
- 0xad, 0xd8, 0xcc, 0x6d, 0x0a, 0xdd, 0xe1, 0x57, 0x6a, 0xa0, 0xc3, 0x06, 0xaa, 0x62, 0xed, 0xe1,
- 0x37, 0x3e, 0x02, 0x4f, 0x1d, 0xd5, 0xdd, 0xe3, 0xce, 0xc1, 0x52, 0xd5, 0x6e, 0x5e, 0x3a, 0xb2,
- 0x8f, 0x6c, 0x7f, 0xeb, 0x13, 0x1f, 0x91, 0x03, 0xf2, 0x89, 0x6d, 0x7f, 0x8e, 0x7a, 0xa3, 0x33,
- 0x91, 0x7b, 0xa5, 0xb9, 0x32, 0x4c, 0x31, 0xe1, 0x0a, 0xd9, 0x7f, 0xa1, 0x77, 0x11, 0x7a, 0xdf,
- 0x67, 0x58, 0x99, 0xdf, 0xfe, 0x3e, 0x59, 0xae, 0x8d, 0x49, 0x06, 0xc5, 0x73, 0xf4, 0x46, 0x23,
- 0x67, 0xc0, 0xd9, 0x00, 0x1f, 0x4d, 0x4d, 0xd4, 0x8e, 0x60, 0xfc, 0x16, 0x63, 0x9c, 0x12, 0x18,
- 0x77, 0x19, 0x34, 0x57, 0x84, 0xb1, 0xd3, 0x70, 0xfd, 0x3b, 0xc6, 0x95, 0x46, 0x22, 0xc9, 0x6d,
- 0x98, 0x20, 0x24, 0xd5, 0x8e, 0xe3, 0xda, 0x4d, 0x52, 0xf7, 0xfa, 0xd3, 0xfc, 0xfb, 0xef, 0xd3,
- 0x5c, 0x19, 0xc7, 0xb0, 0xa2, 0x87, 0xca, 0xe5, 0x80, 0x6c, 0x39, 0xd5, 0x50, 0xb5, 0x11, 0xc1,
- 0x70, 0x8f, 0x29, 0xe2, 0xc9, 0xe7, 0x3e, 0x09, 0x67, 0xf0, 0x67, 0x52, 0x96, 0x44, 0x4d, 0xa2,
- 0x1f, 0x78, 0x65, 0xfe, 0xf0, 0xd3, 0x34, 0x1d, 0xa7, 0x3c, 0x02, 0x41, 0x27, 0xc1, 0x8b, 0x47,
- 0xc8, 0x75, 0x51, 0xdb, 0xa9, 0x98, 0x8d, 0x30, 0xf5, 0x84, 0x27, 0x06, 0x99, 0x5f, 0xf9, 0x61,
- 0xd0, 0x8b, 0xb7, 0x29, 0x32, 0xdf, 0x68, 0xe4, 0xf6, 0xe1, 0xa1, 0x90, 0xa8, 0x18, 0x80, 0xf3,
- 0x73, 0x8c, 0xf3, 0x4c, 0x57, 0x64, 0x60, 0xda, 0x1d, 0xe0, 0xe3, 0x9e, 0x2f, 0x07, 0xe0, 0xfc,
- 0x47, 0x8c, 0x53, 0x67, 0x58, 0xee, 0x52, 0xcc, 0x78, 0x07, 0x26, 0x5f, 0x41, 0xed, 0x03, 0xdb,
- 0x61, 0x4f, 0x69, 0x06, 0xa0, 0xfb, 0x3c, 0xa3, 0x9b, 0x60, 0x40, 0xf2, 0xd8, 0x06, 0x73, 0xdd,
- 0x84, 0xe4, 0xa1, 0x59, 0x45, 0x03, 0x50, 0x7c, 0x81, 0x51, 0x8c, 0x60, 0x79, 0x0c, 0xcd, 0x43,
- 0xfa, 0xc8, 0x66, 0x2b, 0x53, 0x34, 0xfc, 0x8b, 0x0c, 0x9e, 0xe2, 0x18, 0x46, 0xd1, 0xb2, 0x5b,
- 0x9d, 0x06, 0x5e, 0xb6, 0xa2, 0x29, 0xbe, 0xc4, 0x29, 0x38, 0x86, 0x51, 0x9c, 0xc2, 0xac, 0x6f,
- 0x72, 0x0a, 0x47, 0xb0, 0xe7, 0xb3, 0x90, 0xb2, 0xad, 0xc6, 0x89, 0x6d, 0x0d, 0xa2, 0xc4, 0x97,
- 0x19, 0x03, 0x30, 0x08, 0x26, 0xb8, 0x05, 0xa3, 0x83, 0x3a, 0xe2, 0xd7, 0x7f, 0xc8, 0xd3, 0x83,
- 0x7b, 0xe0, 0x36, 0x4c, 0xf0, 0x02, 0x55, 0xb7, 0xad, 0x01, 0x28, 0x7e, 0x83, 0x51, 0x8c, 0x0b,
- 0x30, 0x76, 0x19, 0x2e, 0x72, 0xdc, 0x23, 0x34, 0x08, 0xc9, 0x57, 0xf8, 0x65, 0x30, 0x08, 0x33,
- 0xe5, 0x01, 0xb2, 0xaa, 0xc7, 0x83, 0x31, 0x7c, 0x95, 0x9b, 0x92, 0x63, 0x30, 0x45, 0x11, 0xc6,
- 0x9a, 0x66, 0xdb, 0x39, 0x36, 0x1b, 0x03, 0xb9, 0xe3, 0x37, 0x19, 0x47, 0xda, 0x03, 0x31, 0x8b,
- 0x74, 0xac, 0xd3, 0xd0, 0xfc, 0x16, 0xb7, 0x88, 0x00, 0x63, 0xa9, 0xe7, 0xb8, 0xe4, 0x91, 0xd6,
- 0x69, 0xd8, 0xfe, 0x31, 0x4f, 0x3d, 0x8a, 0xdd, 0x12, 0x19, 0x6f, 0xc1, 0xa8, 0x53, 0x7f, 0x7d,
- 0x20, 0x9a, 0x7f, 0xc2, 0x3d, 0x4d, 0x00, 0x18, 0x7c, 0x17, 0x1e, 0x0e, 0x5d, 0x26, 0x06, 0x20,
- 0xfb, 0xa7, 0x8c, 0x6c, 0x3a, 0x64, 0xa9, 0x60, 0x25, 0xe1, 0xb4, 0x94, 0xff, 0x8c, 0x97, 0x04,
- 0x24, 0x71, 0xed, 0xe0, 0x7b, 0x05, 0xc7, 0x3c, 0x3c, 0x9d, 0xd5, 0xfe, 0x39, 0xb7, 0x1a, 0xc5,
- 0x06, 0xac, 0xb6, 0x07, 0xd3, 0x8c, 0xf1, 0x74, 0x7e, 0xfd, 0x1a, 0x2f, 0xac, 0x14, 0xbd, 0x1f,
- 0xf4, 0xee, 0x8b, 0x30, 0xe3, 0x99, 0x93, 0x37, 0xa5, 0x4e, 0xa5, 0x69, 0xb6, 0x06, 0x60, 0xfe,
- 0x6d, 0xc6, 0xcc, 0x2b, 0xbe, 0xd7, 0xd5, 0x3a, 0x5b, 0x66, 0x0b, 0x93, 0xbf, 0x00, 0x19, 0x4e,
- 0xde, 0xb1, 0xda, 0xa8, 0x6a, 0x1f, 0x59, 0xf5, 0xd7, 0x51, 0x6d, 0x00, 0xea, 0xaf, 0x4b, 0xae,
- 0xda, 0x17, 0xe0, 0x98, 0x79, 0x03, 0x34, 0xaf, 0x57, 0xa9, 0xd4, 0x9b, 0x2d, 0xbb, 0xed, 0x46,
- 0x30, 0xfe, 0x0e, 0xf7, 0x94, 0x87, 0xdb, 0x20, 0xb0, 0x5c, 0x09, 0xc6, 0xc9, 0xe1, 0xa0, 0x21,
- 0xf9, 0xbb, 0x8c, 0x68, 0xcc, 0x47, 0xb1, 0xc2, 0x51, 0xb5, 0x9b, 0x2d, 0xb3, 0x3d, 0x48, 0xfd,
- 0xfb, 0x17, 0xbc, 0x70, 0x30, 0x08, 0x2b, 0x1c, 0xee, 0x49, 0x0b, 0xe1, 0xd5, 0x7e, 0x00, 0x86,
- 0x6f, 0xf0, 0xc2, 0xc1, 0x31, 0x8c, 0x82, 0x37, 0x0c, 0x03, 0x50, 0xfc, 0x4b, 0x4e, 0xc1, 0x31,
- 0x98, 0xe2, 0x13, 0xfe, 0x42, 0xdb, 0x46, 0x47, 0x75, 0xc7, 0x6d, 0xd3, 0x56, 0xb8, 0x3f, 0xd5,
- 0xef, 0xfd, 0x30, 0xd8, 0x84, 0x19, 0x02, 0x14, 0x57, 0x22, 0xf6, 0x08, 0x95, 0xdc, 0x29, 0x45,
- 0x2b, 0xf6, 0xfb, 0xbc, 0x12, 0x09, 0x30, 0xac, 0x9b, 0xd0, 0x21, 0x62, 0xb3, 0x57, 0xf1, 0xfd,
- 0xc1, 0x00, 0x74, 0xdf, 0x94, 0x94, 0xdb, 0xe5, 0x58, 0xcc, 0x29, 0xf4, 0x3f, 0x1d, 0xeb, 0x65,
- 0x74, 0x32, 0x50, 0x74, 0xfe, 0x2b, 0xa9, 0xff, 0xd9, 0xa7, 0x48, 0x5a, 0x43, 0x26, 0xa4, 0x7e,
- 0x4a, 0x8f, 0x7a, 0x59, 0x27, 0xf3, 0x97, 0xdf, 0x65, 0xd7, 0x1b, 0x6c, 0xa7, 0x72, 0x9b, 0x38,
- 0xc8, 0x83, 0x4d, 0x4f, 0x34, 0xd9, 0xa7, 0xdf, 0xf5, 0xe2, 0x3c, 0xd0, 0xf3, 0xe4, 0xd6, 0x61,
- 0x2c, 0xd0, 0xf0, 0x44, 0x53, 0xfd, 0x15, 0x46, 0x95, 0x16, 0xfb, 0x9d, 0xdc, 0x55, 0x88, 0xe3,
- 0xe6, 0x25, 0x1a, 0xfe, 0x57, 0x19, 0x9c, 0x88, 0xe7, 0x9e, 0x86, 0x24, 0x6f, 0x5a, 0xa2, 0xa1,
- 0xbf, 0xc8, 0xa0, 0x1e, 0x04, 0xc3, 0x79, 0xc3, 0x12, 0x0d, 0xff, 0x6b, 0x1c, 0xce, 0x21, 0x18,
- 0x3e, 0xb8, 0x09, 0xdf, 0xfa, 0x1b, 0x71, 0xb6, 0xe8, 0x70, 0xdb, 0xdd, 0x82, 0x11, 0xd6, 0xa9,
- 0x44, 0xa3, 0x7f, 0x89, 0x9d, 0x9c, 0x23, 0x72, 0xd7, 0x21, 0x31, 0xa0, 0xc1, 0xff, 0x26, 0x83,
- 0x52, 0xf9, 0x5c, 0x11, 0x52, 0x42, 0x77, 0x12, 0x0d, 0xff, 0x5b, 0x0c, 0x2e, 0xa2, 0xb0, 0xea,
- 0xac, 0x3b, 0x89, 0x26, 0xf8, 0xdb, 0x5c, 0x75, 0x86, 0xc0, 0x66, 0xe3, 0x8d, 0x49, 0x34, 0xfa,
- 0xef, 0x70, 0xab, 0x73, 0x48, 0xee, 0x59, 0x18, 0xf5, 0x16, 0x9b, 0x68, 0xfc, 0xdf, 0x65, 0x78,
- 0x1f, 0x83, 0x2d, 0x20, 0x2c, 0x76, 0xd1, 0x14, 0x7f, 0x8f, 0x5b, 0x40, 0x40, 0xe1, 0x34, 0x92,
- 0x1b, 0x98, 0x68, 0xa6, 0x5f, 0xe6, 0x69, 0x24, 0xf5, 0x2f, 0xd8, 0x9b, 0xa4, 0xe6, 0x47, 0x53,
- 0xfc, 0x7d, 0xee, 0x4d, 0x22, 0x8f, 0xd5, 0x90, 0x3b, 0x82, 0x68, 0x8e, 0x7f, 0xc8, 0xd5, 0x90,
- 0x1a, 0x82, 0xdc, 0x0e, 0xe8, 0xdd, 0xdd, 0x40, 0x34, 0xdf, 0x67, 0x19, 0xdf, 0x64, 0x57, 0x33,
- 0x90, 0x7b, 0x1e, 0xa6, 0xc3, 0x3b, 0x81, 0x68, 0xd6, 0x5f, 0x79, 0x57, 0xba, 0x77, 0x13, 0x1b,
- 0x81, 0xdc, 0x9e, 0xbf, 0xa4, 0x88, 0x5d, 0x40, 0x34, 0xed, 0xe7, 0xde, 0x0d, 0x16, 0x6e, 0xb1,
- 0x09, 0xc8, 0xe5, 0x01, 0xfc, 0x05, 0x38, 0x9a, 0xeb, 0xf3, 0x8c, 0x4b, 0x00, 0xe1, 0xd4, 0x60,
- 0xeb, 0x6f, 0x34, 0xfe, 0x0b, 0x3c, 0x35, 0x18, 0x02, 0xa7, 0x06, 0x5f, 0x7a, 0xa3, 0xd1, 0x5f,
- 0xe4, 0xa9, 0xc1, 0x21, 0x38, 0xb2, 0x85, 0xd5, 0x2d, 0x9a, 0xe1, 0xcb, 0x3c, 0xb2, 0x05, 0x54,
- 0xae, 0x0c, 0x93, 0x5d, 0x0b, 0x62, 0x34, 0xd5, 0xaf, 0x32, 0x2a, 0x4d, 0x5e, 0x0f, 0xc5, 0xc5,
- 0x8b, 0x2d, 0x86, 0xd1, 0x6c, 0xbf, 0x26, 0x2d, 0x5e, 0x6c, 0x2d, 0xcc, 0xdd, 0x82, 0xa4, 0xd5,
- 0x69, 0x34, 0x70, 0xf2, 0xe8, 0xfd, 0x5f, 0xb0, 0xcb, 0xfc, 0xf7, 0x9f, 0x30, 0xeb, 0x70, 0x40,
- 0xee, 0x2a, 0x24, 0x50, 0xf3, 0x00, 0xd5, 0xa2, 0x90, 0xff, 0xe3, 0x27, 0xbc, 0x60, 0x62, 0xe9,
- 0xdc, 0xb3, 0x00, 0xf4, 0xd1, 0x08, 0xd9, 0xf6, 0x8b, 0xc0, 0xfe, 0xcf, 0x9f, 0xb0, 0x57, 0x5f,
- 0x7c, 0x88, 0x4f, 0x40, 0x5f, 0xa4, 0xe9, 0x4f, 0xf0, 0xc3, 0x20, 0x01, 0xf1, 0xc8, 0x4d, 0x18,
- 0x79, 0xc9, 0xb1, 0x2d, 0xd7, 0x3c, 0x8a, 0x42, 0xff, 0x2f, 0x86, 0xe6, 0xf2, 0xd8, 0x60, 0x4d,
- 0xbb, 0x8d, 0x5c, 0xf3, 0xc8, 0x89, 0xc2, 0xfe, 0x6f, 0x86, 0xf5, 0x00, 0x18, 0x5c, 0x35, 0x1d,
- 0x77, 0x90, 0xeb, 0xfe, 0x63, 0x0e, 0xe6, 0x00, 0xac, 0x34, 0xfe, 0xfc, 0x32, 0x3a, 0x89, 0xc2,
- 0xfe, 0x88, 0x2b, 0xcd, 0xe4, 0x73, 0x4f, 0xc3, 0x28, 0xfe, 0x48, 0xdf, 0x67, 0x8b, 0x00, 0xff,
- 0x1f, 0x06, 0xf6, 0x11, 0xf8, 0xcc, 0x8e, 0x5b, 0x73, 0xeb, 0xd1, 0xc6, 0xfe, 0x13, 0xe6, 0x69,
- 0x2e, 0x9f, 0xcb, 0x43, 0xca, 0x71, 0x6b, 0xb5, 0x0e, 0xeb, 0x4f, 0x23, 0xe0, 0xff, 0xf7, 0x27,
- 0xde, 0x23, 0x0b, 0x0f, 0x83, 0xbd, 0xfd, 0xea, 0xcb, 0x6e, 0xcb, 0x26, 0xdb, 0x1c, 0x51, 0x0c,
- 0xef, 0x32, 0x06, 0x01, 0x52, 0x28, 0x85, 0x3f, 0xbe, 0x85, 0xdb, 0xf6, 0x6d, 0x9b, 0x3e, 0xb8,
- 0xfd, 0x54, 0x36, 0xfa, 0x09, 0x2c, 0xfc, 0x51, 0x03, 0xae, 0xf7, 0x14, 0xc3, 0x4b, 0xf1, 0xa5,
- 0xaa, 0xdd, 0x3c, 0xb0, 0x9d, 0x4b, 0x07, 0xb6, 0x7b, 0x7c, 0xc9, 0x3d, 0x46, 0x78, 0x8c, 0x3d,
- 0xb2, 0x8d, 0xe3, 0xcf, 0x33, 0xa7, 0x7b, 0xce, 0x4b, 0x76, 0xf1, 0xcb, 0x75, 0x7c, 0x69, 0x65,
- 0xb2, 0x91, 0xa2, 0x9f, 0x83, 0x61, 0x72, 0xb1, 0x97, 0xc9, 0x66, 0xa5, 0x52, 0x88, 0xdf, 0x7b,
- 0x7b, 0x6e, 0xc8, 0x60, 0x63, 0xde, 0xec, 0x0a, 0x79, 0xd2, 0x1d, 0x0b, 0xcc, 0xae, 0x78, 0xb3,
- 0x57, 0xe8, 0xc3, 0xee, 0xc0, 0xec, 0x15, 0x6f, 0x76, 0x95, 0x3c, 0xf6, 0x56, 0x03, 0xb3, 0xab,
- 0xde, 0xec, 0x55, 0xb2, 0xb5, 0x33, 0x16, 0x98, 0xbd, 0xea, 0xcd, 0x5e, 0x23, 0x1b, 0x3a, 0xf1,
- 0xc0, 0xec, 0x35, 0x6f, 0xf6, 0x3a, 0xd9, 0xcb, 0x99, 0x0c, 0xcc, 0x5e, 0xf7, 0x66, 0x6f, 0x90,
- 0x3d, 0x1c, 0x3d, 0x30, 0x7b, 0xc3, 0x9b, 0xbd, 0x49, 0x5e, 0x90, 0x1a, 0x09, 0xcc, 0xde, 0xd4,
- 0x67, 0x61, 0x84, 0x5e, 0xf9, 0x32, 0xd9, 0xf0, 0x9f, 0x60, 0xd3, 0x7c, 0xd0, 0x9f, 0xbf, 0x4c,
- 0x5e, 0x86, 0x1a, 0x0e, 0xce, 0x5f, 0xf6, 0xe7, 0x57, 0xc8, 0xf7, 0x32, 0xb4, 0xe0, 0xfc, 0x8a,
- 0x3f, 0x7f, 0x25, 0x33, 0x46, 0x5e, 0x08, 0x0b, 0xcc, 0x5f, 0xf1, 0xe7, 0x57, 0x33, 0xe3, 0x38,
- 0x63, 0x82, 0xf3, 0xab, 0xfe, 0xfc, 0xd5, 0xcc, 0xc4, 0xbc, 0xb2, 0x90, 0x0e, 0xce, 0x5f, 0xcd,
- 0xfe, 0x02, 0x71, 0xaf, 0xe5, 0xbb, 0x77, 0x3a, 0xe8, 0x5e, 0xcf, 0xb1, 0xd3, 0x41, 0xc7, 0x7a,
- 0x2e, 0x9d, 0x0e, 0xba, 0xd4, 0x73, 0xe6, 0x74, 0xd0, 0x99, 0x9e, 0x1b, 0xa7, 0x83, 0x6e, 0xf4,
- 0x1c, 0x38, 0x1d, 0x74, 0xa0, 0xe7, 0xba, 0xe9, 0xa0, 0xeb, 0x3c, 0xa7, 0x4d, 0x07, 0x9d, 0xe6,
- 0xb9, 0x6b, 0x3a, 0xe8, 0x2e, 0xcf, 0x51, 0x19, 0xc9, 0x51, 0xbe, 0x8b, 0x32, 0x92, 0x8b, 0x7c,
- 0xe7, 0x64, 0x24, 0xe7, 0xf8, 0x6e, 0xc9, 0x48, 0x6e, 0xf1, 0x1d, 0x92, 0x91, 0x1c, 0xe2, 0xbb,
- 0x22, 0x23, 0xb9, 0xc2, 0x77, 0x02, 0xcb, 0x31, 0x03, 0xb5, 0x42, 0x72, 0x4c, 0xed, 0x9b, 0x63,
- 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6, 0x98, 0xda, 0x37, 0xc7, 0xd4, 0xbe, 0x39, 0xa6, 0xf6, 0xcd,
- 0x31, 0xb5, 0x6f, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9f, 0x63, 0x6a, 0x44, 0x8e, 0xa9, 0x11,
- 0x39, 0xa6, 0x46, 0xe4, 0x98, 0x1a, 0x91, 0x63, 0x6a, 0x44, 0x8e, 0xa9, 0x3d, 0x73, 0xcc, 0x77,
- 0xef, 0x74, 0xd0, 0xbd, 0xa1, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0x3d, 0x72,
- 0x4c, 0xed, 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23, 0xc7, 0xd4, 0x5e,
- 0x39, 0xa6, 0xf6, 0xcc, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0x3d, 0x73, 0x4c, 0xed, 0x99, 0x63, 0x6a,
- 0xcf, 0x1c, 0x53, 0xc5, 0x1c, 0xfb, 0xd7, 0x2a, 0xe8, 0x34, 0xc7, 0x76, 0xc8, 0x2b, 0x63, 0xcc,
- 0x15, 0xb3, 0x52, 0xa6, 0x0d, 0x63, 0xd7, 0x69, 0xbe, 0x4b, 0x66, 0xa5, 0x5c, 0x0b, 0xce, 0xaf,
- 0x78, 0xf3, 0x3c, 0xdb, 0x82, 0xf3, 0x57, 0xbc, 0x79, 0x9e, 0x6f, 0xc1, 0xf9, 0x55, 0x6f, 0x9e,
- 0x67, 0x5c, 0x70, 0xfe, 0xaa, 0x37, 0xcf, 0x73, 0x2e, 0x38, 0x7f, 0xcd, 0x9b, 0xe7, 0x59, 0x17,
- 0x9c, 0xbf, 0xee, 0xcd, 0xf3, 0xbc, 0x0b, 0xce, 0xdf, 0xf0, 0xe6, 0x79, 0xe6, 0x05, 0xe7, 0x6f,
- 0xea, 0xf3, 0x72, 0xee, 0x71, 0x01, 0xcf, 0xb5, 0xf3, 0x72, 0xf6, 0x49, 0x12, 0x97, 0x7d, 0x09,
- 0x9e, 0x7f, 0x92, 0xc4, 0x8a, 0x2f, 0xc1, 0x33, 0x50, 0x92, 0xb8, 0x92, 0xfd, 0x0c, 0x71, 0x9f,
- 0x25, 0xbb, 0x6f, 0x46, 0x72, 0x5f, 0x4c, 0x70, 0xdd, 0x8c, 0xe4, 0xba, 0x98, 0xe0, 0xb6, 0x19,
- 0xc9, 0x6d, 0x31, 0xc1, 0x65, 0x33, 0x92, 0xcb, 0x62, 0x82, 0xbb, 0x66, 0x24, 0x77, 0xc5, 0x04,
- 0x57, 0xcd, 0x48, 0xae, 0x8a, 0x09, 0x6e, 0x9a, 0x91, 0xdc, 0x14, 0x13, 0x5c, 0x34, 0x23, 0xb9,
- 0x28, 0x26, 0xb8, 0x67, 0x46, 0x72, 0x4f, 0x4c, 0x70, 0xcd, 0x39, 0xd9, 0x35, 0x31, 0xd1, 0x2d,
- 0xe7, 0x64, 0xb7, 0xc4, 0x44, 0x97, 0x9c, 0x93, 0x5d, 0x12, 0x13, 0xdd, 0x71, 0x4e, 0x76, 0x47,
- 0x4c, 0x74, 0xc5, 0x9f, 0xc6, 0x78, 0x47, 0xb8, 0xeb, 0xb6, 0x3b, 0x55, 0xf7, 0x3d, 0x75, 0x84,
- 0xcb, 0x81, 0xf6, 0x21, 0xb5, 0xa2, 0x2f, 0x91, 0x86, 0x55, 0xec, 0x38, 0xa5, 0x15, 0x6c, 0x39,
- 0xd0, 0x58, 0x08, 0x08, 0x2b, 0x1c, 0xb1, 0xfa, 0x9e, 0x7a, 0xc3, 0xe5, 0x40, 0x9b, 0x11, 0xad,
- 0xdf, 0x8d, 0x0f, 0xbc, 0x63, 0x7b, 0x2b, 0xc6, 0x3b, 0x36, 0x66, 0xfe, 0xd3, 0x76, 0x6c, 0x8b,
- 0xd1, 0x26, 0xf7, 0x8c, 0xbd, 0x18, 0x6d, 0xec, 0xae, 0x55, 0x67, 0xd0, 0x0e, 0x6e, 0x31, 0xda,
- 0xb4, 0x9e, 0x51, 0xdf, 0xdf, 0x7e, 0x8b, 0x45, 0xb0, 0x81, 0x5a, 0x21, 0x11, 0x7c, 0xda, 0x7e,
- 0x6b, 0x39, 0x50, 0x4a, 0x4e, 0x1b, 0xc1, 0xea, 0xa9, 0x23, 0xf8, 0xb4, 0x9d, 0xd7, 0x72, 0xa0,
- 0xbc, 0x9c, 0x3a, 0x82, 0x3f, 0x80, 0x7e, 0x88, 0x45, 0xb0, 0x6f, 0xfe, 0xd3, 0xf6, 0x43, 0x8b,
- 0xd1, 0x26, 0x0f, 0x8d, 0x60, 0xf5, 0x14, 0x11, 0x3c, 0x48, 0x7f, 0xb4, 0x18, 0x6d, 0xda, 0xf0,
- 0x08, 0x7e, 0xcf, 0xdd, 0xcc, 0x97, 0x14, 0x98, 0x2c, 0xd7, 0x6b, 0xa5, 0xe6, 0x01, 0xaa, 0xd5,
- 0x50, 0x8d, 0xd9, 0x71, 0x39, 0x50, 0x09, 0x7a, 0xb8, 0xfa, 0xdb, 0x6f, 0xcf, 0xf9, 0x16, 0xbe,
- 0x0a, 0x49, 0x6a, 0xd3, 0xe5, 0xe5, 0xcc, 0x3d, 0x25, 0xa2, 0xc2, 0x79, 0xa2, 0xfa, 0x79, 0x0e,
- 0xbb, 0xbc, 0x9c, 0xf9, 0x4f, 0x8a, 0x50, 0xe5, 0xbc, 0xe1, 0xec, 0x2f, 0x13, 0x0d, 0xad, 0xf7,
- 0xac, 0xe1, 0xa5, 0x81, 0x34, 0x14, 0x74, 0x7b, 0xa4, 0x4b, 0x37, 0x41, 0xab, 0x0e, 0x4c, 0x94,
- 0xeb, 0xb5, 0x32, 0xf9, 0x45, 0x80, 0x41, 0x54, 0xa2, 0x32, 0x52, 0x3d, 0x58, 0x0e, 0x84, 0xa5,
- 0x88, 0xf0, 0x42, 0x3a, 0x58, 0x23, 0xb2, 0x75, 0x7c, 0x5a, 0x2b, 0x70, 0xda, 0xc5, 0x5e, 0xa7,
- 0xf5, 0x2b, 0xbb, 0x77, 0xc2, 0xc5, 0x5e, 0x27, 0xf4, 0x73, 0xc8, 0x3b, 0xd5, 0x6b, 0x7c, 0x71,
- 0xa6, 0x2f, 0x6e, 0xe9, 0xe7, 0x20, 0xb6, 0x41, 0xdf, 0x2b, 0x4f, 0x17, 0xd2, 0x58, 0xa9, 0xef,
- 0xbc, 0x3d, 0x17, 0xdf, 0xef, 0xd4, 0x6b, 0x46, 0x6c, 0xa3, 0xa6, 0xdf, 0x81, 0xc4, 0x27, 0xd9,
- 0xf7, 0x52, 0xb1, 0xc0, 0x2a, 0x13, 0xf8, 0x68, 0xc4, 0x23, 0x26, 0x42, 0xbd, 0xb4, 0x5f, 0xb7,
- 0xdc, 0xcb, 0x2b, 0x37, 0x0c, 0x4a, 0x91, 0xfd, 0x73, 0x00, 0xf4, 0x9c, 0x6b, 0xa6, 0x73, 0xac,
- 0x97, 0x39, 0x33, 0x3d, 0xf5, 0x8d, 0xef, 0xbc, 0x3d, 0xb7, 0x3a, 0x08, 0xeb, 0x53, 0x35, 0xd3,
- 0x39, 0x7e, 0xca, 0x3d, 0x69, 0xa1, 0xa5, 0xc2, 0x89, 0x8b, 0x1c, 0xce, 0xde, 0xe2, 0xab, 0x1e,
- 0xbb, 0xae, 0x8c, 0x70, 0x5d, 0xc9, 0xc0, 0x35, 0xad, 0x07, 0xaf, 0x69, 0xf9, 0x41, 0xaf, 0xe7,
- 0x35, 0xbe, 0x48, 0x48, 0x96, 0x54, 0xa3, 0x2c, 0xa9, 0xbe, 0x57, 0x4b, 0xb6, 0x78, 0x7d, 0x94,
- 0xae, 0x55, 0xed, 0x77, 0xad, 0xea, 0x7b, 0xb9, 0xd6, 0xff, 0x47, 0xb3, 0xd5, 0xcb, 0xa7, 0x7d,
- 0x8b, 0xbe, 0xd3, 0xfa, 0x67, 0xeb, 0x59, 0xd0, 0xfb, 0xda, 0x05, 0xe4, 0xe2, 0xf7, 0xde, 0x9c,
- 0x53, 0xb2, 0x5f, 0x8a, 0xf1, 0x2b, 0xa7, 0x89, 0xf4, 0x60, 0x57, 0xfe, 0x67, 0xa5, 0xa7, 0xfa,
- 0x20, 0x2c, 0xf4, 0x45, 0x05, 0xa6, 0xbb, 0x2a, 0x39, 0x35, 0xd3, 0xfb, 0x5b, 0xce, 0xad, 0xd3,
- 0x96, 0x73, 0xa6, 0xe0, 0xef, 0x2a, 0x70, 0x46, 0x2a, 0xaf, 0x54, 0xbd, 0x4b, 0x92, 0x7a, 0x0f,
- 0x75, 0x9f, 0x89, 0x08, 0x0a, 0xda, 0x89, 0xee, 0x95, 0x00, 0x02, 0xb3, 0xe7, 0xf7, 0x55, 0xc9,
- 0xef, 0xe7, 0x3c, 0x40, 0x88, 0xb9, 0x78, 0x04, 0x30, 0xb5, 0x6d, 0x88, 0xef, 0xb5, 0x11, 0xd2,
- 0x67, 0x21, 0xb6, 0xdd, 0x66, 0x1a, 0x8e, 0x53, 0xfc, 0x76, 0xbb, 0xd0, 0x36, 0xad, 0xea, 0xb1,
- 0x11, 0xdb, 0x6e, 0xeb, 0xe7, 0x41, 0xcd, 0xb3, 0xef, 0xc4, 0xa7, 0x56, 0x26, 0xa8, 0x40, 0xde,
- 0xaa, 0x31, 0x09, 0x3c, 0xa7, 0xcf, 0x42, 0x7c, 0x13, 0x99, 0x87, 0x4c, 0x09, 0xa0, 0x32, 0x78,
- 0xc4, 0x20, 0xe3, 0xec, 0x84, 0x2f, 0x40, 0x92, 0x13, 0xeb, 0x17, 0x30, 0xe2, 0xd0, 0x65, 0xa7,
- 0x65, 0x08, 0xac, 0x0e, 0x5b, 0xb9, 0xc8, 0xac, 0x7e, 0x11, 0x12, 0x46, 0xfd, 0xe8, 0xd8, 0x65,
- 0x27, 0xef, 0x16, 0xa3, 0xd3, 0xd9, 0xbb, 0x30, 0xea, 0x69, 0xf4, 0x3e, 0x53, 0xaf, 0xd1, 0x4b,
- 0xd3, 0x67, 0xc4, 0xf5, 0x84, 0x3f, 0xb7, 0xa4, 0x43, 0xfa, 0x3c, 0x24, 0x77, 0xdd, 0xb6, 0x5f,
- 0xf4, 0x79, 0x47, 0xea, 0x8d, 0x66, 0x7f, 0x41, 0x81, 0xe4, 0x1a, 0x42, 0x2d, 0x62, 0xf0, 0xc7,
- 0x21, 0xbe, 0x66, 0xbf, 0x6a, 0x31, 0x05, 0x27, 0x99, 0x45, 0xf1, 0x34, 0xb3, 0x29, 0x99, 0xd6,
- 0x1f, 0x17, 0xed, 0x3e, 0xe5, 0xd9, 0x5d, 0x90, 0x23, 0xb6, 0xcf, 0x06, 0x6c, 0xcf, 0x1c, 0x88,
- 0x85, 0xba, 0xec, 0x7f, 0x1d, 0x52, 0xc2, 0x59, 0xf4, 0x05, 0xa6, 0x46, 0x4c, 0x06, 0x8a, 0xb6,
- 0xc2, 0x12, 0x59, 0x04, 0x63, 0x81, 0x13, 0x63, 0xa8, 0x60, 0xe2, 0x1e, 0x50, 0x62, 0xe6, 0xc5,
- 0xa0, 0x99, 0xc3, 0x45, 0x99, 0xa9, 0x97, 0xa9, 0x8d, 0x88, 0xb9, 0x2f, 0xd0, 0xe0, 0xec, 0xed,
- 0x44, 0xfc, 0x39, 0x9b, 0x00, 0xb5, 0x5c, 0x6f, 0x64, 0x9f, 0x06, 0xa0, 0x29, 0x5f, 0xb2, 0x3a,
- 0x4d, 0x29, 0xeb, 0xc6, 0xb9, 0x81, 0xf7, 0x8e, 0xd1, 0x1e, 0x72, 0x88, 0x48, 0xb0, 0x9f, 0xc2,
- 0x05, 0x06, 0x68, 0x8a, 0x11, 0xfc, 0x93, 0x91, 0xf8, 0xd0, 0x4e, 0x0c, 0x8b, 0x66, 0xa8, 0xe8,
- 0x5d, 0xe4, 0xe6, 0x2d, 0xdb, 0x3d, 0x46, 0x6d, 0x09, 0xb1, 0xa2, 0x5f, 0x09, 0x24, 0xec, 0xf8,
- 0xca, 0x23, 0x1e, 0xa2, 0x27, 0xe8, 0x4a, 0xf6, 0x6b, 0x44, 0x41, 0xdc, 0x0a, 0x74, 0x5d, 0xa0,
- 0x3a, 0xc0, 0x05, 0xea, 0xd7, 0x02, 0xfd, 0x5b, 0x1f, 0x35, 0xa5, 0x5b, 0xcb, 0x9b, 0x81, 0xfb,
- 0x9c, 0xfe, 0xca, 0x06, 0xef, 0x31, 0xb9, 0x4d, 0xb9, 0xca, 0x4f, 0x46, 0xaa, 0xdc, 0xa3, 0xbb,
- 0x3d, 0xad, 0x4d, 0xd5, 0x41, 0x6d, 0xfa, 0x4d, 0xaf, 0xe3, 0xa0, 0x3f, 0x3c, 0x42, 0x7e, 0xb2,
- 0x47, 0xff, 0x68, 0xa4, 0xef, 0x73, 0x4a, 0xd1, 0x53, 0x75, 0x75, 0x50, 0xf7, 0xe7, 0x62, 0x85,
- 0x82, 0xa7, 0xee, 0xf5, 0x53, 0x84, 0x40, 0x2e, 0x56, 0x2c, 0x7a, 0x65, 0x3b, 0xf9, 0x99, 0x37,
- 0xe7, 0x94, 0xaf, 0xbe, 0x39, 0x37, 0x94, 0xfd, 0x4d, 0x05, 0x26, 0x99, 0xa4, 0x10, 0xb8, 0x4f,
- 0x49, 0xca, 0x9f, 0xe5, 0x35, 0x23, 0xcc, 0x02, 0x3f, 0xb5, 0xe0, 0xfd, 0x96, 0x02, 0x99, 0x2e,
- 0x5d, 0xb9, 0xbd, 0x97, 0x07, 0x52, 0x39, 0xa7, 0x94, 0x7e, 0xf6, 0x36, 0xbf, 0x0b, 0x89, 0xbd,
- 0x7a, 0x13, 0xb5, 0xf1, 0x4a, 0x80, 0x3f, 0x50, 0x95, 0xf9, 0x66, 0x0e, 0x1d, 0xe2, 0x73, 0x54,
- 0xb9, 0xc0, 0xdc, 0x8a, 0x9e, 0x81, 0xf8, 0x9a, 0xe9, 0x9a, 0x44, 0x83, 0xb4, 0x57, 0x5f, 0x4d,
- 0xd7, 0xcc, 0x5e, 0x81, 0xf4, 0xd6, 0x09, 0x79, 0x11, 0xa9, 0x46, 0xde, 0x41, 0x09, 0x76, 0x7f,
- 0xbc, 0x5f, 0xbd, 0xbc, 0x98, 0x48, 0xd6, 0xb4, 0x7b, 0x4a, 0x2e, 0x4e, 0xf4, 0x79, 0x05, 0xc6,
- 0xb7, 0xb1, 0xda, 0x04, 0x47, 0x60, 0xf3, 0xa0, 0x6c, 0x05, 0x1b, 0x21, 0x91, 0xd5, 0x50, 0xb6,
- 0xa4, 0xf6, 0x51, 0xf5, 0xcc, 0x23, 0xb5, 0x6d, 0xaa, 0xd7, 0xb6, 0x2d, 0xc6, 0x93, 0xe3, 0xda,
- 0xe4, 0x62, 0x3c, 0x09, 0xda, 0x18, 0x3b, 0xef, 0x7f, 0x50, 0x41, 0xa3, 0xad, 0xce, 0x1a, 0x3a,
- 0xac, 0x5b, 0x75, 0xb7, 0xbb, 0x5f, 0xf5, 0x34, 0xd6, 0x9f, 0x85, 0x51, 0x6c, 0xd2, 0x75, 0xf6,
- 0xcb, 0x7d, 0xd8, 0xf4, 0xe7, 0x59, 0x8b, 0x22, 0x51, 0xb0, 0x01, 0x12, 0x3a, 0x3e, 0x46, 0x5f,
- 0x07, 0xb5, 0x5c, 0xde, 0x62, 0x8b, 0xdb, 0x6a, 0x5f, 0x28, 0x7b, 0xd9, 0x87, 0x1d, 0xb1, 0x31,
- 0xe7, 0xc8, 0xc0, 0x04, 0xfa, 0x2a, 0xc4, 0xca, 0x5b, 0xac, 0xe1, 0xbd, 0x30, 0x08, 0x8d, 0x11,
- 0x2b, 0x6f, 0xcd, 0xfc, 0x1b, 0x05, 0xc6, 0x02, 0xa3, 0x7a, 0x16, 0xd2, 0x74, 0x40, 0xb8, 0xdc,
- 0x61, 0x23, 0x30, 0xc6, 0x75, 0x8e, 0xbd, 0x47, 0x9d, 0x67, 0xf2, 0x30, 0x21, 0x8d, 0xeb, 0x4b,
- 0xa0, 0x8b, 0x43, 0x4c, 0x09, 0xfa, 0xab, 0x61, 0x21, 0x33, 0xd9, 0x47, 0x01, 0x7c, 0xbb, 0x7a,
- 0x3f, 0x76, 0x55, 0x2e, 0xed, 0xee, 0x95, 0xd6, 0x34, 0x25, 0xfb, 0x0d, 0x05, 0x52, 0xac, 0x6d,
- 0xad, 0xda, 0x2d, 0xa4, 0x17, 0x40, 0xc9, 0xb3, 0x08, 0x7a, 0x30, 0xbd, 0x95, 0xbc, 0x7e, 0x09,
- 0x94, 0xc2, 0xe0, 0xae, 0x56, 0x0a, 0xfa, 0x0a, 0x28, 0x45, 0xe6, 0xe0, 0xc1, 0x3c, 0xa3, 0x14,
- 0xb3, 0x7f, 0xa2, 0xc2, 0x94, 0xd8, 0x46, 0xf3, 0x7a, 0x72, 0x3e, 0x78, 0xdf, 0x94, 0x1b, 0xbd,
- 0xbc, 0x72, 0x65, 0x75, 0x09, 0xff, 0xe3, 0x85, 0x64, 0x36, 0x78, 0x0b, 0x95, 0x03, 0x4f, 0xe4,
- 0x72, 0xaf, 0xf7, 0x44, 0x72, 0x71, 0x81, 0xa1, 0xeb, 0x3d, 0x91, 0xc0, 0x6c, 0xd7, 0x7b, 0x22,
- 0x81, 0xd9, 0xae, 0xf7, 0x44, 0x02, 0xb3, 0x5d, 0x7b, 0x01, 0x81, 0xd9, 0xae, 0xf7, 0x44, 0x02,
- 0xb3, 0x5d, 0xef, 0x89, 0x04, 0x66, 0xbb, 0xdf, 0x13, 0x61, 0xd3, 0x3d, 0xdf, 0x13, 0x09, 0xce,
- 0x77, 0xbf, 0x27, 0x12, 0x9c, 0xef, 0x7e, 0x4f, 0x24, 0x17, 0x77, 0xdb, 0x1d, 0xd4, 0x7b, 0xd7,
- 0x21, 0x88, 0xef, 0x77, 0x13, 0xe8, 0x57, 0xe0, 0x6d, 0x98, 0xa0, 0x0f, 0x24, 0x8a, 0xb6, 0xe5,
- 0x9a, 0x75, 0x0b, 0xb5, 0xf5, 0x8f, 0x41, 0x9a, 0x0e, 0xd1, 0xdb, 0x9c, 0xb0, 0xdb, 0x40, 0x3a,
- 0xcf, 0xea, 0x6d, 0x40, 0x3a, 0xfb, 0xa7, 0x71, 0x98, 0xa6, 0x03, 0x65, 0xb3, 0x89, 0x02, 0x6f,
- 0x19, 0x5d, 0x94, 0xf6, 0x94, 0xc6, 0x31, 0xfc, 0xfe, 0xdb, 0x73, 0x74, 0x34, 0xef, 0x45, 0xd3,
- 0x45, 0x69, 0x77, 0x29, 0x28, 0xe7, 0x2f, 0x40, 0x17, 0xa5, 0x37, 0x8f, 0x82, 0x72, 0xde, 0x7a,
- 0xe3, 0xc9, 0xf1, 0x77, 0x90, 0x82, 0x72, 0x6b, 0x5e, 0x94, 0x5d, 0x94, 0xde, 0x46, 0x0a, 0xca,
- 0x95, 0xbc, 0x78, 0xbb, 0x28, 0xed, 0x3d, 0x05, 0xe5, 0xd6, 0xbd, 0xc8, 0xbb, 0x28, 0xed, 0x42,
- 0x05, 0xe5, 0x6e, 0x7b, 0x31, 0x78, 0x51, 0x7a, 0x57, 0x29, 0x28, 0xf7, 0x9c, 0x17, 0x8d, 0x17,
- 0xa5, 0xb7, 0x96, 0x82, 0x72, 0x1b, 0x5e, 0x5c, 0x2e, 0xc8, 0xef, 0x2f, 0x05, 0x05, 0xef, 0xf8,
- 0x11, 0xba, 0x20, 0xbf, 0xc9, 0x14, 0x94, 0xfc, 0xb8, 0x1f, 0xab, 0x0b, 0xf2, 0x3b, 0x4d, 0x41,
- 0xc9, 0x4d, 0x3f, 0x6a, 0x17, 0xe4, 0xbd, 0xb2, 0xa0, 0xe4, 0x96, 0x1f, 0xbf, 0x0b, 0xf2, 0xae,
- 0x59, 0x50, 0xb2, 0xec, 0x47, 0xf2, 0x82, 0xbc, 0x7f, 0x16, 0x94, 0xdc, 0xf6, 0x1f, 0xa2, 0xff,
- 0x81, 0x14, 0x7e, 0xc2, 0x5b, 0x50, 0x59, 0x29, 0xfc, 0x20, 0x24, 0xf4, 0xa4, 0x42, 0x26, 0xc8,
- 0xf8, 0x61, 0x97, 0x95, 0xc2, 0x0e, 0x42, 0x42, 0x2e, 0x2b, 0x85, 0x1c, 0x84, 0x84, 0x5b, 0x56,
- 0x0a, 0x37, 0x08, 0x09, 0xb5, 0xac, 0x14, 0x6a, 0x10, 0x12, 0x66, 0x59, 0x29, 0xcc, 0x20, 0x24,
- 0xc4, 0xb2, 0x52, 0x88, 0x41, 0x48, 0x78, 0x65, 0xa5, 0xf0, 0x82, 0x90, 0xd0, 0xba, 0x20, 0x87,
- 0x16, 0x84, 0x85, 0xd5, 0x05, 0x39, 0xac, 0x20, 0x2c, 0xa4, 0x1e, 0x93, 0x43, 0x6a, 0xf4, 0xfe,
- 0xdb, 0x73, 0x09, 0x3c, 0x24, 0x44, 0xd3, 0x05, 0x39, 0x9a, 0x20, 0x2c, 0x92, 0x2e, 0xc8, 0x91,
- 0x04, 0x61, 0x51, 0x74, 0x41, 0x8e, 0x22, 0x08, 0x8b, 0xa0, 0xb7, 0xe4, 0x08, 0xf2, 0xdf, 0xf1,
- 0xc9, 0x4a, 0x5b, 0x8a, 0x51, 0x11, 0xa4, 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11, 0xa4, 0x0e, 0x10,
- 0x41, 0xea, 0x00, 0x11, 0xa4, 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11, 0xa4, 0x0e, 0x10, 0x41, 0xea,
- 0x20, 0x11, 0xa4, 0x0e, 0x14, 0x41, 0x6a, 0xaf, 0x08, 0xba, 0x20, 0xbf, 0xf1, 0x00, 0x61, 0x05,
- 0xe9, 0x82, 0xbc, 0xf5, 0x19, 0x1d, 0x42, 0xea, 0x40, 0x21, 0xa4, 0xf6, 0x0a, 0xa1, 0x3f, 0x50,
- 0x61, 0x2a, 0x10, 0x42, 0x6c, 0x7f, 0xe8, 0xfd, 0xaa, 0x40, 0xd7, 0x06, 0x78, 0xc1, 0x22, 0x2c,
- 0xa6, 0xae, 0x0d, 0xb0, 0x49, 0xdd, 0x2f, 0xce, 0xba, 0xab, 0x50, 0x69, 0x80, 0x2a, 0xb4, 0xee,
- 0xc5, 0xd0, 0xb5, 0x01, 0x5e, 0xbc, 0xe8, 0x8e, 0xbd, 0x1b, 0xfd, 0x8a, 0xc0, 0x73, 0x03, 0x15,
- 0x81, 0x8d, 0x81, 0x8a, 0xc0, 0x1d, 0xdf, 0x83, 0xbf, 0x18, 0x83, 0x33, 0xbe, 0x07, 0xe9, 0x27,
- 0xf2, 0xcb, 0x5a, 0x59, 0x61, 0x8b, 0x4a, 0xe7, 0xdb, 0x36, 0x82, 0x1b, 0x63, 0x1b, 0x35, 0x7d,
- 0x27, 0xb8, 0x59, 0x95, 0x3b, 0xed, 0x06, 0x8e, 0xe0, 0x71, 0xf6, 0x30, 0xf4, 0x02, 0xa8, 0x1b,
- 0x35, 0x87, 0x54, 0x8b, 0xb0, 0xd3, 0x16, 0x0d, 0x3c, 0xad, 0x1b, 0x30, 0x4c, 0xc4, 0x1d, 0xe2,
- 0xde, 0xf7, 0x72, 0xe2, 0x35, 0x83, 0x31, 0x65, 0xdf, 0x52, 0x60, 0x3e, 0x10, 0xca, 0xef, 0xcf,
- 0x96, 0xc1, 0xad, 0x81, 0xb6, 0x0c, 0x02, 0x09, 0xe2, 0x6f, 0x1f, 0x3c, 0xd1, 0xbd, 0x53, 0x2d,
- 0x66, 0x89, 0xbc, 0x95, 0xf0, 0x97, 0x60, 0xdc, 0xbf, 0x02, 0x72, 0xcf, 0x76, 0x35, 0xfa, 0x69,
- 0x66, 0x58, 0x6a, 0x5e, 0x95, 0x9e, 0xa2, 0xf5, 0x85, 0x79, 0xd9, 0x9a, 0xcd, 0xc1, 0x44, 0x39,
- 0xf8, 0x95, 0xa8, 0xa8, 0x87, 0x11, 0x49, 0xdc, 0x9a, 0xdf, 0xfb, 0xf2, 0xdc, 0x50, 0xf6, 0xa3,
- 0x90, 0x16, 0xbf, 0xf5, 0x24, 0x01, 0x47, 0x39, 0x30, 0x17, 0xff, 0x36, 0x96, 0xfe, 0x07, 0x0a,
- 0x9c, 0x15, 0xc5, 0x9f, 0xaf, 0xbb, 0xc7, 0x1b, 0x16, 0xee, 0xe9, 0x9f, 0x86, 0x24, 0x62, 0x8e,
- 0x63, 0x3f, 0x92, 0xc3, 0xee, 0x23, 0x43, 0xc5, 0x97, 0xc8, 0xbf, 0x86, 0x07, 0x91, 0x9e, 0x71,
- 0xf0, 0xd3, 0xae, 0xcc, 0x3c, 0x0e, 0x09, 0xca, 0x1f, 0xd4, 0x6b, 0x4c, 0xd2, 0xeb, 0xd7, 0x43,
- 0xf4, 0x22, 0x71, 0xa4, 0xdf, 0x09, 0xe8, 0x25, 0xdc, 0xae, 0x86, 0x8a, 0x2f, 0xf1, 0xe0, 0x2b,
- 0x24, 0x71, 0xff, 0x47, 0x22, 0x2a, 0x5a, 0xc9, 0x05, 0x48, 0x96, 0x64, 0x99, 0x70, 0x3d, 0xd7,
- 0x20, 0x5e, 0xb6, 0x6b, 0xe4, 0xe7, 0x7b, 0xc8, 0xef, 0x55, 0x33, 0x23, 0xb3, 0x1f, 0xaf, 0xbe,
- 0x08, 0xc9, 0xe2, 0x71, 0xbd, 0x51, 0x6b, 0x23, 0x8b, 0xed, 0xd9, 0xb3, 0x47, 0xe8, 0x18, 0x63,
- 0x78, 0x73, 0xd9, 0x22, 0x4c, 0x96, 0x6d, 0xab, 0x70, 0xe2, 0x8a, 0x75, 0x63, 0x49, 0x4a, 0x11,
- 0xb6, 0xe7, 0x43, 0xbe, 0x25, 0x82, 0x05, 0x0a, 0x89, 0xef, 0xbc, 0x3d, 0xa7, 0xec, 0x79, 0xcf,
- 0xcf, 0xb7, 0xe0, 0x21, 0x96, 0x3e, 0x5d, 0x54, 0x2b, 0x51, 0x54, 0xa3, 0x6c, 0x9f, 0x5a, 0xa0,
- 0xdb, 0xc0, 0x74, 0x56, 0x28, 0xdd, 0x83, 0x69, 0x86, 0x9b, 0xa2, 0xbe, 0x9a, 0xa9, 0xa7, 0xd2,
- 0x2c, 0x94, 0x6e, 0x29, 0x8a, 0x4e, 0xd2, 0xec, 0x31, 0x18, 0xf5, 0xe6, 0x84, 0x68, 0x10, 0x33,
- 0x65, 0x65, 0x31, 0x0b, 0x29, 0x21, 0x61, 0xf5, 0x04, 0x28, 0x79, 0x6d, 0x08, 0xff, 0x57, 0xd0,
- 0x14, 0xfc, 0x5f, 0x51, 0x8b, 0x2d, 0x3e, 0x0e, 0x13, 0xd2, 0xf3, 0x4b, 0x3c, 0xb3, 0xa6, 0x01,
- 0xfe, 0xaf, 0xa4, 0xa5, 0x66, 0xe2, 0x9f, 0xf9, 0xb5, 0xd9, 0xa1, 0xc5, 0x5b, 0xa0, 0x77, 0x3f,
- 0xe9, 0xd4, 0x87, 0x21, 0x96, 0xc7, 0x94, 0x0f, 0x41, 0xac, 0x50, 0xd0, 0x94, 0x99, 0x89, 0xbf,
- 0xfe, 0x85, 0xf9, 0x54, 0x81, 0x7c, 0xa5, 0xfb, 0x2e, 0x72, 0x0b, 0x05, 0x06, 0x7e, 0x06, 0xce,
- 0x86, 0x3e, 0x29, 0xc5, 0xf8, 0x62, 0x91, 0xe2, 0xd7, 0xd6, 0xba, 0xf0, 0x6b, 0x6b, 0x04, 0xaf,
- 0xe4, 0xf8, 0x8e, 0x73, 0x5e, 0x0f, 0x79, 0x2e, 0x99, 0xa9, 0x09, 0x3b, 0xdc, 0xf9, 0xdc, 0x33,
- 0x4c, 0xb6, 0x10, 0x2a, 0x8b, 0x22, 0x76, 0xac, 0x0b, 0xb9, 0x22, 0xc3, 0x17, 0x43, 0xf1, 0x87,
- 0xd2, 0xb6, 0x6a, 0x70, 0x85, 0x60, 0x24, 0x45, 0x4f, 0xe1, 0xb5, 0x50, 0x92, 0x63, 0xe1, 0x65,
- 0xf7, 0x35, 0x4f, 0xe1, 0x52, 0xa8, 0x6c, 0x3d, 0xe2, 0xa5, 0xaf, 0x52, 0xee, 0x12, 0x5b, 0xe4,
- 0xf3, 0x97, 0xf5, 0xb3, 0x3c, 0x47, 0x03, 0x15, 0x98, 0x19, 0x88, 0x4b, 0xe5, 0x8a, 0x0c, 0x50,
- 0xe8, 0x09, 0xe8, 0x6d, 0x25, 0x8e, 0xcc, 0x3d, 0xc7, 0x48, 0x8a, 0x3d, 0x49, 0x22, 0x4c, 0xc5,
- 0xe1, 0x85, 0xbd, 0x7b, 0xef, 0xcc, 0x0e, 0x7d, 0xfb, 0x9d, 0xd9, 0xa1, 0xff, 0xf2, 0xce, 0xec,
- 0xd0, 0x77, 0xdf, 0x99, 0x55, 0x7e, 0xf0, 0xce, 0xac, 0xf2, 0xa3, 0x77, 0x66, 0x95, 0x1f, 0xbf,
- 0x33, 0xab, 0xbc, 0x71, 0x7f, 0x56, 0xf9, 0xea, 0xfd, 0x59, 0xe5, 0x6b, 0xf7, 0x67, 0x95, 0xdf,
- 0xbb, 0x3f, 0xab, 0xbc, 0x75, 0x7f, 0x56, 0xb9, 0x77, 0x7f, 0x56, 0xf9, 0xf6, 0xfd, 0x59, 0xe5,
- 0xbb, 0xf7, 0x67, 0x95, 0x1f, 0xdc, 0x9f, 0x1d, 0xfa, 0xd1, 0xfd, 0x59, 0xe5, 0xc7, 0xf7, 0x67,
- 0x87, 0xde, 0xf8, 0xde, 0xec, 0xd0, 0x9b, 0xdf, 0x9b, 0x1d, 0xfa, 0xea, 0xf7, 0x66, 0x15, 0xf8,
- 0xa3, 0x55, 0x98, 0x67, 0xdf, 0x24, 0xf3, 0xbe, 0xf6, 0x7b, 0xc9, 0x3d, 0x46, 0xa4, 0x25, 0xb8,
- 0xc2, 0x7f, 0x03, 0xcc, 0x1b, 0x38, 0xe5, 0xb7, 0xca, 0x66, 0x1e, 0xf4, 0x3b, 0x6c, 0xd9, 0x7f,
- 0x9b, 0x80, 0x11, 0xfe, 0x2c, 0x38, 0xec, 0x07, 0xcd, 0xaf, 0x42, 0xf2, 0xb8, 0xde, 0x30, 0xdb,
- 0x75, 0xf7, 0x84, 0x3d, 0x04, 0x7d, 0x78, 0xc9, 0x57, 0x9b, 0x3f, 0x36, 0x7d, 0xae, 0xd3, 0xb4,
- 0x3b, 0x6d, 0xc3, 0x13, 0xd5, 0xe7, 0x21, 0x7d, 0x8c, 0xea, 0x47, 0xc7, 0x6e, 0xa5, 0x6e, 0x55,
- 0xaa, 0x4d, 0xd2, 0x2b, 0x8f, 0x19, 0x40, 0xc7, 0x36, 0xac, 0x62, 0x13, 0x9f, 0xac, 0x66, 0xba,
- 0x26, 0xb9, 0x47, 0x4f, 0x1b, 0xe4, 0xb3, 0x7e, 0x1e, 0xd2, 0x6d, 0xe4, 0x74, 0x1a, 0x6e, 0xa5,
- 0x6a, 0x77, 0x2c, 0x97, 0x74, 0xb3, 0xaa, 0x91, 0xa2, 0x63, 0x45, 0x3c, 0xa4, 0x3f, 0x06, 0x63,
- 0x6e, 0xbb, 0x83, 0x2a, 0x4e, 0xd5, 0x76, 0x9d, 0xa6, 0x69, 0x91, 0x6e, 0x36, 0x69, 0xa4, 0xf1,
- 0xe0, 0x2e, 0x1b, 0x23, 0xbf, 0x85, 0x5f, 0xb5, 0xdb, 0x88, 0xdc, 0x4c, 0xc7, 0x0c, 0x7a, 0xa0,
- 0x6b, 0xa0, 0xbe, 0x8c, 0x4e, 0xc8, 0xed, 0x5a, 0xdc, 0xc0, 0x1f, 0xf5, 0x27, 0x61, 0x98, 0xfe,
- 0x31, 0x1b, 0xd2, 0x5b, 0x93, 0xad, 0x6b, 0xef, 0xd2, 0xe8, 0x23, 0x5a, 0x83, 0x09, 0xe8, 0x37,
- 0x61, 0xc4, 0x45, 0xed, 0xb6, 0x59, 0xb7, 0xc8, 0xad, 0x53, 0x6a, 0x65, 0x2e, 0xc4, 0x0c, 0x7b,
- 0x54, 0x82, 0xfc, 0x26, 0xb0, 0xc1, 0xe5, 0xf5, 0xab, 0x90, 0x26, 0x72, 0x2b, 0x15, 0xfa, 0x07,
- 0x7f, 0x52, 0x3d, 0xa3, 0x39, 0x45, 0xe5, 0xf8, 0x4e, 0x01, 0x87, 0xd1, 0xdf, 0x43, 0x1c, 0x23,
- 0xa7, 0x7d, 0x2c, 0xe4, 0xb4, 0xa4, 0xf0, 0xae, 0x90, 0xa6, 0x91, 0x9e, 0x9a, 0xf1, 0xd0, 0x5f,
- 0x4c, 0xdc, 0x82, 0xb4, 0xa8, 0x17, 0x37, 0x03, 0x6d, 0x7e, 0x88, 0x19, 0x9e, 0xf0, 0xff, 0x98,
- 0x42, 0x0f, 0x2b, 0xd0, 0xf9, 0x5c, 0xec, 0x86, 0x32, 0xb3, 0x03, 0x9a, 0x7c, 0xbe, 0x10, 0xca,
- 0x8b, 0x41, 0x4a, 0x4d, 0xbc, 0x58, 0xf2, 0x9c, 0xdc, 0x67, 0xcc, 0x3e, 0x0b, 0xc3, 0x34, 0x7e,
- 0xf4, 0x14, 0x8c, 0xf8, 0x3f, 0xb5, 0x99, 0x84, 0xf8, 0xce, 0x7e, 0x79, 0x97, 0xfe, 0x66, 0xee,
- 0xee, 0x66, 0x7e, 0x67, 0x77, 0x6f, 0xa3, 0xf8, 0x71, 0x2d, 0xa6, 0x4f, 0x40, 0xaa, 0xb0, 0xb1,
- 0xb9, 0x59, 0x29, 0xe4, 0x37, 0x36, 0x4b, 0x77, 0x35, 0x35, 0x3b, 0x0b, 0xc3, 0x54, 0x4f, 0xf2,
- 0xdb, 0x7f, 0x1d, 0xcb, 0x3a, 0xe1, 0xcd, 0x03, 0x39, 0xc8, 0x7e, 0x5d, 0x87, 0x91, 0x7c, 0xa3,
- 0xb1, 0x65, 0xb6, 0x1c, 0xfd, 0x79, 0x98, 0xa4, 0xbf, 0xca, 0xb1, 0x67, 0xaf, 0x91, 0x9f, 0xa8,
- 0xc4, 0xa5, 0x41, 0x61, 0x7f, 0x44, 0xc2, 0xbf, 0x6e, 0x26, 0xbe, 0xd4, 0x25, 0x4b, 0x0d, 0xdc,
- 0xcd, 0xa1, 0xef, 0x81, 0xc6, 0x07, 0xd7, 0x1b, 0xb6, 0xe9, 0x62, 0xde, 0x18, 0xfb, 0x05, 0xc9,
- 0xde, 0xbc, 0x5c, 0x94, 0xd2, 0x76, 0x31, 0xe8, 0x1f, 0x83, 0xe4, 0x86, 0xe5, 0x5e, 0x59, 0xc1,
- 0x6c, 0xfc, 0x0f, 0x34, 0x75, 0xb3, 0x71, 0x11, 0xca, 0xe2, 0x21, 0x18, 0xfa, 0xda, 0x2a, 0x46,
- 0xc7, 0xfb, 0xa1, 0x89, 0x88, 0x8f, 0x26, 0x87, 0xfa, 0xb3, 0x30, 0x8a, 0xef, 0x4d, 0xe8, 0xc9,
- 0x13, 0xbc, 0x71, 0xed, 0x82, 0x7b, 0x32, 0x14, 0xef, 0x63, 0x38, 0x01, 0x3d, 0xff, 0x70, 0x5f,
- 0x02, 0x41, 0x01, 0x1f, 0x83, 0x09, 0x76, 0x3d, 0x0d, 0x46, 0x7a, 0x12, 0xec, 0x4a, 0x1a, 0xec,
- 0x8a, 0x1a, 0xec, 0x7a, 0x1a, 0x24, 0xfb, 0x12, 0x88, 0x1a, 0x78, 0xc7, 0x7a, 0x01, 0x60, 0xbd,
- 0xfe, 0x1a, 0xaa, 0x51, 0x15, 0xe8, 0x9f, 0x6f, 0xca, 0x86, 0x30, 0xf8, 0x42, 0x94, 0x42, 0x40,
- 0xe9, 0x25, 0x48, 0xed, 0x1e, 0xfa, 0x24, 0xd0, 0x95, 0xc7, 0x9e, 0x1a, 0x87, 0x12, 0x8b, 0x88,
- 0xf3, 0x54, 0xa1, 0x17, 0x93, 0xea, 0xaf, 0x8a, 0x70, 0x35, 0x02, 0xca, 0x57, 0x85, 0x92, 0xa4,
- 0x23, 0x54, 0x11, 0x58, 0x44, 0x1c, 0x2e, 0x86, 0x05, 0xdb, 0xc6, 0x92, 0xac, 0x2a, 0xcd, 0x85,
- 0x50, 0x30, 0x09, 0x56, 0x0c, 0xd9, 0x11, 0xf1, 0x08, 0x09, 0x72, 0x0c, 0x1e, 0xef, 0xed, 0x11,
- 0x2e, 0xc3, 0x3d, 0xc2, 0x8f, 0xc5, 0x3c, 0x23, 0xef, 0xb3, 0x62, 0x9e, 0x89, 0xc8, 0x3c, 0xe3,
- 0xa2, 0x52, 0x9e, 0xf1, 0x61, 0xfd, 0x13, 0x30, 0xc1, 0xc7, 0x70, 0x79, 0xc2, 0xa4, 0x1a, 0xfb,
- 0x03, 0x77, 0xbd, 0x49, 0x99, 0x24, 0xe5, 0x94, 0xf1, 0x7a, 0x19, 0xc6, 0xf9, 0xd0, 0x96, 0x43,
- 0x2e, 0x77, 0x92, 0xfd, 0xed, 0x92, 0xde, 0x8c, 0x54, 0x90, 0x12, 0x4a, 0xe8, 0x99, 0x35, 0x98,
- 0x0e, 0xaf, 0x46, 0x62, 0xf9, 0x1d, 0xa5, 0xe5, 0xf7, 0x8c, 0x58, 0x7e, 0x15, 0xb1, 0x7c, 0x17,
- 0xe1, 0x6c, 0x68, 0xed, 0x89, 0x22, 0x89, 0x89, 0x24, 0xb7, 0x60, 0x2c, 0x50, 0x72, 0x44, 0x70,
- 0x22, 0x04, 0x9c, 0xe8, 0x06, 0xfb, 0xa1, 0x15, 0xb2, 0x7a, 0x04, 0xc0, 0xaa, 0x08, 0xfe, 0x18,
- 0x8c, 0x07, 0xeb, 0x8d, 0x88, 0x1e, 0x0b, 0x41, 0x8f, 0x85, 0xa0, 0xc3, 0xcf, 0x1d, 0x0f, 0x41,
- 0xc7, 0x25, 0xf4, 0x6e, 0xcf, 0x73, 0x4f, 0x86, 0xa0, 0x27, 0x43, 0xd0, 0xe1, 0xe7, 0xd6, 0x43,
- 0xd0, 0xba, 0x88, 0x7e, 0x1a, 0x26, 0xa4, 0x12, 0x23, 0xc2, 0x47, 0x42, 0xe0, 0x23, 0x22, 0xfc,
- 0x19, 0xd0, 0xe4, 0xe2, 0x22, 0xe2, 0x27, 0x42, 0xf0, 0x13, 0x61, 0xa7, 0x0f, 0xd7, 0x7e, 0x38,
- 0x04, 0x3e, 0x1c, 0x7a, 0xfa, 0x70, 0xbc, 0x16, 0x82, 0xd7, 0x44, 0x7c, 0x0e, 0xd2, 0x62, 0x35,
- 0x11, 0xb1, 0xc9, 0x10, 0x6c, 0x52, 0xb6, 0x7b, 0xa0, 0x98, 0x44, 0x45, 0xfa, 0x68, 0x8f, 0x74,
- 0x09, 0x94, 0x90, 0x28, 0x92, 0xb4, 0x48, 0xf2, 0x49, 0x38, 0x13, 0x56, 0x32, 0x42, 0x38, 0x16,
- 0x44, 0x8e, 0x71, 0xdc, 0x23, 0xfa, 0xcd, 0x9e, 0xd9, 0x92, 0x1a, 0xa7, 0x99, 0x17, 0x61, 0x2a,
- 0xa4, 0x70, 0x84, 0xd0, 0x2e, 0x05, 0xbb, 0xb1, 0x8c, 0x40, 0x4b, 0x8a, 0x40, 0xdd, 0x3a, 0xda,
- 0xb1, 0xeb, 0x96, 0x2b, 0x76, 0x65, 0xdf, 0x98, 0x82, 0x71, 0x56, 0x9e, 0xb6, 0xdb, 0x35, 0xd4,
- 0x46, 0x35, 0xfd, 0x2f, 0xf4, 0xee, 0x9d, 0x96, 0xbb, 0x8b, 0x1a, 0x43, 0x9d, 0xa2, 0x85, 0x7a,
- 0xb1, 0x67, 0x0b, 0x75, 0x29, 0x9a, 0x3e, 0xaa, 0x93, 0x2a, 0x76, 0x75, 0x52, 0x4f, 0xf4, 0x26,
- 0xed, 0xd5, 0x50, 0x15, 0xbb, 0x1a, 0xaa, 0xfe, 0x24, 0xa1, 0x7d, 0xd5, 0x7a, 0x77, 0x5f, 0xb5,
- 0xd0, 0x9b, 0xa5, 0x77, 0x7b, 0xb5, 0xde, 0xdd, 0x5e, 0x45, 0xf0, 0x84, 0x77, 0x59, 0xeb, 0xdd,
- 0x5d, 0x56, 0x1f, 0x9e, 0xde, 0xcd, 0xd6, 0x7a, 0x77, 0xb3, 0x15, 0xc1, 0x13, 0xde, 0x73, 0x6d,
- 0x84, 0xf4, 0x5c, 0x4f, 0xf6, 0x26, 0xea, 0xd7, 0x7a, 0x6d, 0x86, 0xb5, 0x5e, 0x8b, 0x7d, 0x94,
- 0xea, 0xdb, 0x81, 0x6d, 0x84, 0x74, 0x60, 0x51, 0x8a, 0xf5, 0x68, 0xc4, 0x36, 0xc3, 0x1a, 0xb1,
- 0x48, 0xc5, 0x7a, 0xf5, 0x63, 0x3f, 0x27, 0xf7, 0x63, 0x17, 0x7b, 0x33, 0x85, 0xb7, 0x65, 0xeb,
- 0xdd, 0x6d, 0xd9, 0x42, 0x54, 0xce, 0x85, 0x75, 0x67, 0x2f, 0xf6, 0xec, 0xce, 0x06, 0x48, 0xe1,
- 0xa8, 0x26, 0xed, 0x85, 0x5e, 0x4d, 0xda, 0x52, 0x34, 0x77, 0xff, 0x5e, 0x6d, 0xbf, 0x47, 0xaf,
- 0xf6, 0x54, 0x34, 0xf1, 0x87, 0x2d, 0xdb, 0x87, 0x2d, 0xdb, 0x87, 0x2d, 0xdb, 0x87, 0x2d, 0xdb,
- 0xcf, 0xbe, 0x65, 0xcb, 0xc5, 0x3f, 0xfb, 0xe5, 0x39, 0x25, 0xfb, 0x9f, 0x55, 0xef, 0xcf, 0xad,
- 0x3d, 0x5f, 0x77, 0x8f, 0x71, 0x79, 0xdb, 0x82, 0x34, 0xf9, 0xf9, 0xdf, 0xa6, 0xd9, 0x6a, 0xd5,
- 0xad, 0x23, 0xd6, 0xb3, 0x2d, 0x76, 0x3f, 0x4a, 0x64, 0x00, 0xf2, 0xa7, 0x66, 0xb6, 0xa8, 0x30,
- 0x5b, 0x6e, 0x2c, 0x7f, 0x44, 0xbf, 0x03, 0xa9, 0xa6, 0x73, 0xe4, 0xb1, 0xc5, 0xba, 0x16, 0x42,
- 0x89, 0x8d, 0x5e, 0xa9, 0x4f, 0x06, 0x4d, 0x6f, 0x00, 0xab, 0x76, 0x70, 0xe2, 0xfa, 0xaa, 0xa9,
- 0x51, 0xaa, 0x61, 0x9f, 0x06, 0x55, 0x3b, 0xf0, 0x47, 0x70, 0xd8, 0xca, 0xba, 0x47, 0x55, 0xba,
- 0x40, 0xf0, 0x3c, 0x0f, 0x13, 0x92, 0xb6, 0x21, 0x39, 0xff, 0x00, 0xbe, 0xc1, 0x8a, 0xc9, 0x9a,
- 0x47, 0xe5, 0x84, 0x18, 0x90, 0xd9, 0x47, 0x61, 0x2c, 0xc0, 0xad, 0xa7, 0x41, 0x39, 0x64, 0x5f,
- 0xa6, 0x54, 0x0e, 0xb3, 0x5f, 0x52, 0x20, 0xc5, 0x5e, 0x24, 0xd8, 0x31, 0xeb, 0x6d, 0xfd, 0x39,
- 0x88, 0x37, 0xf8, 0x17, 0x9a, 0x1e, 0xf4, 0xcb, 0xb3, 0x84, 0x41, 0x5f, 0x87, 0x44, 0xdb, 0xfb,
- 0xc2, 0xd3, 0x03, 0x7d, 0x23, 0x96, 0xc0, 0xb3, 0xf7, 0x14, 0x98, 0x64, 0xef, 0xb9, 0x3a, 0xec,
- 0xf5, 0x67, 0xb3, 0x35, 0xf3, 0x75, 0x05, 0x46, 0xbd, 0x23, 0xfd, 0x00, 0xc6, 0xbd, 0x03, 0xfa,
- 0x8a, 0x3d, 0x8d, 0xd4, 0x9c, 0x60, 0xe1, 0x2e, 0x8e, 0xa5, 0x90, 0x4f, 0x74, 0x2b, 0x8a, 0xae,
- 0xc9, 0xc1, 0xc1, 0x99, 0x3c, 0x4c, 0x85, 0x88, 0x9d, 0x66, 0x41, 0xce, 0x9e, 0x87, 0xd1, 0xb2,
- 0xed, 0xd2, 0xdf, 0xcd, 0xd1, 0xcf, 0x08, 0xbb, 0x0a, 0x85, 0x98, 0x36, 0x44, 0xc0, 0x8b, 0xe7,
- 0x61, 0x84, 0x65, 0xbf, 0x3e, 0x0c, 0xb1, 0xad, 0xbc, 0x36, 0x44, 0xfe, 0x2f, 0x68, 0x0a, 0xf9,
- 0xbf, 0xa8, 0xc5, 0x0a, 0x9b, 0x0f, 0xb8, 0xcf, 0x34, 0x14, 0xb6, 0xcf, 0x74, 0x30, 0x4c, 0xcd,
- 0xf3, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xac, 0x99, 0x92, 0x00, 0x6b, 0x83, 0x00, 0x00,
+ 0x99, 0x1e, 0x1b, 0x0d, 0x90, 0xc0, 0x0f, 0x90, 0x6c, 0x36, 0x67, 0x28, 0x88, 0x1a, 0x91, 0x33,
+ 0xd0, 0x68, 0x44, 0xd1, 0x12, 0x67, 0x86, 0xc3, 0xb9, 0x61, 0x2c, 0x69, 0x01, 0x10, 0x1c, 0x71,
+ 0x4c, 0x82, 0x74, 0x93, 0xb4, 0x34, 0x56, 0x12, 0x54, 0x13, 0x38, 0x24, 0x21, 0x01, 0xdd, 0x58,
+ 0x74, 0x43, 0x12, 0x55, 0xa9, 0x94, 0xb2, 0x4e, 0x36, 0xde, 0xdc, 0x93, 0x4d, 0x2a, 0x5e, 0xc7,
+ 0x17, 0x79, 0xb7, 0x76, 0xed, 0xdd, 0xdc, 0xbc, 0xce, 0xc6, 0xd9, 0x75, 0x52, 0x59, 0xe5, 0xc1,
+ 0xc9, 0xe4, 0x25, 0xe5, 0x4d, 0x5e, 0x52, 0xae, 0x94, 0xca, 0x1a, 0x7b, 0x2b, 0x4e, 0xe2, 0x24,
+ 0xce, 0x46, 0x55, 0x71, 0x95, 0xf7, 0x61, 0xeb, 0xdc, 0xba, 0x4f, 0x1f, 0x34, 0xd0, 0xe0, 0x48,
+ 0xb2, 0xf7, 0xc1, 0x2f, 0x33, 0xe8, 0x73, 0xfe, 0xef, 0xeb, 0xbf, 0xff, 0xcb, 0x39, 0x7f, 0x9f,
+ 0x73, 0x00, 0xc2, 0xbd, 0x3c, 0x9c, 0x3d, 0xb4, 0xed, 0xc3, 0x26, 0xba, 0xd8, 0xee, 0xd8, 0xae,
+ 0xbd, 0xdf, 0x3d, 0xb8, 0x58, 0x47, 0x4e, 0xad, 0xd3, 0x68, 0xbb, 0x76, 0x67, 0x89, 0xb4, 0xe9,
+ 0x93, 0x54, 0x62, 0x89, 0x4b, 0xe4, 0x36, 0x61, 0x6a, 0xad, 0xd1, 0x44, 0xab, 0x9e, 0xe0, 0x0e,
+ 0x72, 0xf5, 0x1b, 0x10, 0x3f, 0x68, 0x34, 0x51, 0x56, 0x39, 0xab, 0x2e, 0xa4, 0x97, 0xcf, 0x2f,
+ 0x49, 0xa0, 0xa5, 0x20, 0x62, 0x1b, 0x37, 0x1b, 0x04, 0x91, 0xfb, 0x5e, 0x1c, 0xa6, 0x43, 0x7a,
+ 0x75, 0x1d, 0xe2, 0x96, 0xd9, 0xc2, 0x8c, 0xca, 0x42, 0xca, 0x20, 0x9f, 0xf5, 0x2c, 0x8c, 0xb5,
+ 0xcd, 0xda, 0x2b, 0xe6, 0x21, 0xca, 0xc6, 0x48, 0x33, 0xbf, 0xd4, 0xe7, 0x00, 0xea, 0xa8, 0x8d,
+ 0xac, 0x3a, 0xb2, 0x6a, 0xc7, 0x59, 0xf5, 0xac, 0xba, 0x90, 0x32, 0x84, 0x16, 0xfd, 0x23, 0x30,
+ 0xd5, 0xee, 0xee, 0x37, 0x1b, 0xb5, 0xaa, 0x20, 0x06, 0x67, 0xd5, 0x85, 0x84, 0xa1, 0xd1, 0x8e,
+ 0x55, 0x5f, 0xf8, 0x09, 0x98, 0x7c, 0x0d, 0x99, 0xaf, 0x88, 0xa2, 0x69, 0x22, 0x3a, 0x81, 0x9b,
+ 0x05, 0xc1, 0x12, 0x64, 0x5a, 0xc8, 0x71, 0xcc, 0x43, 0x54, 0x75, 0x8f, 0xdb, 0x28, 0x1b, 0x27,
+ 0x4f, 0x7f, 0xb6, 0xe7, 0xe9, 0xe5, 0x27, 0x4f, 0x33, 0xd4, 0xee, 0x71, 0x1b, 0xe9, 0x05, 0x48,
+ 0x21, 0xab, 0xdb, 0xa2, 0x0c, 0x89, 0x3e, 0xf6, 0x2b, 0x5b, 0xdd, 0x96, 0xcc, 0x92, 0xc4, 0x30,
+ 0x46, 0x31, 0xe6, 0xa0, 0xce, 0xab, 0x8d, 0x1a, 0xca, 0x8e, 0x12, 0x82, 0x27, 0x7a, 0x08, 0x76,
+ 0x68, 0xbf, 0xcc, 0xc1, 0x71, 0x7a, 0x09, 0x52, 0xe8, 0x75, 0x17, 0x59, 0x4e, 0xc3, 0xb6, 0xb2,
+ 0x63, 0x84, 0xe4, 0xf1, 0x10, 0x2f, 0xa2, 0x66, 0x5d, 0xa6, 0xf0, 0x71, 0xfa, 0x35, 0x18, 0xb3,
+ 0xdb, 0x6e, 0xc3, 0xb6, 0x9c, 0x6c, 0xf2, 0xac, 0xb2, 0x90, 0x5e, 0x3e, 0x13, 0x1a, 0x08, 0x5b,
+ 0x54, 0xc6, 0xe0, 0xc2, 0xfa, 0x3a, 0x68, 0x8e, 0xdd, 0xed, 0xd4, 0x50, 0xb5, 0x66, 0xd7, 0x51,
+ 0xb5, 0x61, 0x1d, 0xd8, 0xd9, 0x14, 0x21, 0x98, 0xef, 0x7d, 0x10, 0x22, 0x58, 0xb2, 0xeb, 0x68,
+ 0xdd, 0x3a, 0xb0, 0x8d, 0x09, 0x27, 0x70, 0xad, 0xcf, 0xc0, 0xa8, 0x73, 0x6c, 0xb9, 0xe6, 0xeb,
+ 0xd9, 0x0c, 0x89, 0x10, 0x76, 0x95, 0xfb, 0xbd, 0x51, 0x98, 0x1c, 0x26, 0xc4, 0x6e, 0x41, 0xe2,
+ 0x00, 0x3f, 0x65, 0x36, 0x76, 0x12, 0x1b, 0x50, 0x4c, 0xd0, 0x88, 0xa3, 0x0f, 0x68, 0xc4, 0x02,
+ 0xa4, 0x2d, 0xe4, 0xb8, 0xa8, 0x4e, 0x23, 0x42, 0x1d, 0x32, 0xa6, 0x80, 0x82, 0x7a, 0x43, 0x2a,
+ 0xfe, 0x40, 0x21, 0xf5, 0x22, 0x4c, 0x7a, 0x2a, 0x55, 0x3b, 0xa6, 0x75, 0xc8, 0x63, 0xf3, 0x62,
+ 0x94, 0x26, 0x4b, 0x65, 0x8e, 0x33, 0x30, 0xcc, 0x98, 0x40, 0x81, 0x6b, 0x7d, 0x15, 0xc0, 0xb6,
+ 0x90, 0x7d, 0x50, 0xad, 0xa3, 0x5a, 0x33, 0x9b, 0xec, 0x63, 0xa5, 0x2d, 0x2c, 0xd2, 0x63, 0x25,
+ 0x9b, 0xb6, 0xd6, 0x9a, 0xfa, 0x4d, 0x3f, 0xd4, 0xc6, 0xfa, 0x44, 0xca, 0x26, 0x4d, 0xb2, 0x9e,
+ 0x68, 0xdb, 0x83, 0x89, 0x0e, 0xc2, 0x71, 0x8f, 0xea, 0xec, 0xc9, 0x52, 0x44, 0x89, 0xa5, 0xc8,
+ 0x27, 0x33, 0x18, 0x8c, 0x3e, 0xd8, 0x78, 0x47, 0xbc, 0xd4, 0x1f, 0x03, 0xaf, 0xa1, 0x4a, 0xc2,
+ 0x0a, 0xc8, 0x28, 0x94, 0xe1, 0x8d, 0x15, 0xb3, 0x85, 0x66, 0xdf, 0x80, 0x89, 0xa0, 0x79, 0xf4,
+ 0x53, 0x90, 0x70, 0x5c, 0xb3, 0xe3, 0x92, 0x28, 0x4c, 0x18, 0xf4, 0x42, 0xd7, 0x40, 0x45, 0x56,
+ 0x9d, 0x8c, 0x72, 0x09, 0x03, 0x7f, 0xd4, 0x7f, 0xce, 0x7f, 0x60, 0x95, 0x3c, 0xf0, 0x85, 0x5e,
+ 0x8f, 0x06, 0x98, 0xe5, 0xe7, 0x9e, 0xbd, 0x0e, 0xe3, 0x81, 0x07, 0x18, 0xf6, 0xd6, 0xb9, 0x3f,
+ 0x0f, 0xa7, 0x43, 0xa9, 0xf5, 0x17, 0xe1, 0x54, 0xd7, 0x6a, 0x58, 0x2e, 0xea, 0xb4, 0x3b, 0x08,
+ 0x47, 0x2c, 0xbd, 0x55, 0xf6, 0xbf, 0x8d, 0xf5, 0x89, 0xb9, 0x3d, 0x51, 0x9a, 0xb2, 0x18, 0xd3,
+ 0xdd, 0xde, 0xc6, 0xc5, 0x54, 0xf2, 0xfb, 0x63, 0xda, 0x9b, 0x6f, 0xbe, 0xf9, 0x66, 0x2c, 0xf7,
+ 0x99, 0x51, 0x38, 0x15, 0x96, 0x33, 0xa1, 0xe9, 0x3b, 0x03, 0xa3, 0x56, 0xb7, 0xb5, 0x8f, 0x3a,
+ 0xc4, 0x48, 0x09, 0x83, 0x5d, 0xe9, 0x05, 0x48, 0x34, 0xcd, 0x7d, 0xd4, 0xcc, 0xc6, 0xcf, 0x2a,
+ 0x0b, 0x13, 0xcb, 0x1f, 0x19, 0x2a, 0x2b, 0x97, 0x36, 0x30, 0xc4, 0xa0, 0x48, 0xfd, 0x59, 0x88,
+ 0xb3, 0x21, 0x1a, 0x33, 0x2c, 0x0e, 0xc7, 0x80, 0x73, 0xc9, 0x20, 0x38, 0xfd, 0x11, 0x48, 0xe1,
+ 0xff, 0x69, 0x6c, 0x8c, 0x12, 0x9d, 0x93, 0xb8, 0x01, 0xc7, 0x85, 0x3e, 0x0b, 0x49, 0x92, 0x26,
+ 0x75, 0xc4, 0xa7, 0x36, 0xef, 0x1a, 0x07, 0x56, 0x1d, 0x1d, 0x98, 0xdd, 0xa6, 0x5b, 0x7d, 0xd5,
+ 0x6c, 0x76, 0x11, 0x09, 0xf8, 0x94, 0x91, 0x61, 0x8d, 0x9f, 0xc0, 0x6d, 0xfa, 0x3c, 0xa4, 0x69,
+ 0x56, 0x35, 0xac, 0x3a, 0x7a, 0x9d, 0x8c, 0x9e, 0x09, 0x83, 0x26, 0xda, 0x3a, 0x6e, 0xc1, 0xb7,
+ 0x7f, 0xd9, 0xb1, 0x2d, 0x1e, 0x9a, 0xe4, 0x16, 0xb8, 0x81, 0xdc, 0xfe, 0xba, 0x3c, 0x70, 0x3f,
+ 0x1a, 0xfe, 0x78, 0x72, 0x4c, 0xe5, 0xbe, 0x1e, 0x83, 0x38, 0x19, 0x2f, 0x26, 0x21, 0xbd, 0x7b,
+ 0x77, 0xbb, 0x5c, 0x5d, 0xdd, 0xda, 0x2b, 0x6e, 0x94, 0x35, 0x45, 0x9f, 0x00, 0x20, 0x0d, 0x6b,
+ 0x1b, 0x5b, 0x85, 0x5d, 0x2d, 0xe6, 0x5d, 0xaf, 0x57, 0x76, 0xaf, 0xad, 0x68, 0xaa, 0x07, 0xd8,
+ 0xa3, 0x0d, 0x71, 0x51, 0xe0, 0xca, 0xb2, 0x96, 0xd0, 0x35, 0xc8, 0x50, 0x82, 0xf5, 0x17, 0xcb,
+ 0xab, 0xd7, 0x56, 0xb4, 0xd1, 0x60, 0xcb, 0x95, 0x65, 0x6d, 0x4c, 0x1f, 0x87, 0x14, 0x69, 0x29,
+ 0x6e, 0x6d, 0x6d, 0x68, 0x49, 0x8f, 0x73, 0x67, 0xd7, 0x58, 0xaf, 0xdc, 0xd6, 0x52, 0x1e, 0xe7,
+ 0x6d, 0x63, 0x6b, 0x6f, 0x5b, 0x03, 0x8f, 0x61, 0xb3, 0xbc, 0xb3, 0x53, 0xb8, 0x5d, 0xd6, 0xd2,
+ 0x9e, 0x44, 0xf1, 0xee, 0x6e, 0x79, 0x47, 0xcb, 0x04, 0xd4, 0xba, 0xb2, 0xac, 0x8d, 0x7b, 0xb7,
+ 0x28, 0x57, 0xf6, 0x36, 0xb5, 0x09, 0x7d, 0x0a, 0xc6, 0xe9, 0x2d, 0xb8, 0x12, 0x93, 0x52, 0xd3,
+ 0xb5, 0x15, 0x4d, 0xf3, 0x15, 0xa1, 0x2c, 0x53, 0x81, 0x86, 0x6b, 0x2b, 0x9a, 0x9e, 0x2b, 0x41,
+ 0x82, 0x44, 0x97, 0xae, 0xc3, 0xc4, 0x46, 0xa1, 0x58, 0xde, 0xa8, 0x6e, 0x6d, 0xef, 0xae, 0x6f,
+ 0x55, 0x0a, 0x1b, 0x9a, 0xe2, 0xb7, 0x19, 0xe5, 0x8f, 0xef, 0xad, 0x1b, 0xe5, 0x55, 0x2d, 0x26,
+ 0xb6, 0x6d, 0x97, 0x0b, 0xbb, 0xe5, 0x55, 0x4d, 0xcd, 0xd5, 0xe0, 0x54, 0xd8, 0x38, 0x19, 0x9a,
+ 0x19, 0x82, 0x8b, 0x63, 0x7d, 0x5c, 0x4c, 0xb8, 0x7a, 0x5c, 0xfc, 0xdd, 0x18, 0x4c, 0x87, 0xcc,
+ 0x15, 0xa1, 0x37, 0x79, 0x0e, 0x12, 0x34, 0x44, 0xe9, 0xec, 0xf9, 0x64, 0xe8, 0xa4, 0x43, 0x02,
+ 0xb6, 0x67, 0x06, 0x25, 0x38, 0xb1, 0x82, 0x50, 0xfb, 0x54, 0x10, 0x98, 0xa2, 0x67, 0x4c, 0xff,
+ 0xb3, 0x3d, 0x63, 0x3a, 0x9d, 0xf6, 0xae, 0x0d, 0x33, 0xed, 0x91, 0xb6, 0x93, 0x8d, 0xed, 0x89,
+ 0x90, 0xb1, 0xfd, 0x16, 0x4c, 0xf5, 0x10, 0x0d, 0x3d, 0xc6, 0x7e, 0x4a, 0x81, 0x6c, 0x3f, 0xe3,
+ 0x44, 0x8c, 0x74, 0xb1, 0xc0, 0x48, 0x77, 0x4b, 0xb6, 0xe0, 0xb9, 0xfe, 0x4e, 0xe8, 0xf1, 0xf5,
+ 0x97, 0x15, 0x98, 0x09, 0xaf, 0x14, 0x43, 0x75, 0x78, 0x16, 0x46, 0x5b, 0xc8, 0x3d, 0xb2, 0x79,
+ 0xb5, 0x74, 0x21, 0x64, 0x0e, 0xc6, 0xdd, 0xb2, 0xb3, 0x19, 0x4a, 0x9c, 0xc4, 0xd5, 0x7e, 0xe5,
+ 0x1e, 0xd5, 0xa6, 0x47, 0xd3, 0x5f, 0x8a, 0xc1, 0xe9, 0x50, 0xf2, 0x50, 0x45, 0x1f, 0x05, 0x68,
+ 0x58, 0xed, 0xae, 0x4b, 0x2b, 0x22, 0x3a, 0xc0, 0xa6, 0x48, 0x0b, 0x19, 0xbc, 0xf0, 0xe0, 0xd9,
+ 0x75, 0xbd, 0x7e, 0x95, 0xf4, 0x03, 0x6d, 0x22, 0x02, 0x37, 0x7c, 0x45, 0xe3, 0x44, 0xd1, 0xb9,
+ 0x3e, 0x4f, 0xda, 0x13, 0x98, 0x97, 0x40, 0xab, 0x35, 0x1b, 0xc8, 0x72, 0xab, 0x8e, 0xdb, 0x41,
+ 0x66, 0xab, 0x61, 0x1d, 0x92, 0x19, 0x24, 0x99, 0x4f, 0x1c, 0x98, 0x4d, 0x07, 0x19, 0x93, 0xb4,
+ 0x7b, 0x87, 0xf7, 0x62, 0x04, 0x09, 0xa0, 0x8e, 0x80, 0x18, 0x0d, 0x20, 0x68, 0xb7, 0x87, 0xc8,
+ 0xfd, 0xf5, 0x14, 0xa4, 0x85, 0xba, 0x5a, 0x3f, 0x07, 0x99, 0x97, 0xcd, 0x57, 0xcd, 0x2a, 0x7f,
+ 0x57, 0xa2, 0x96, 0x48, 0xe3, 0xb6, 0x6d, 0xf6, 0xbe, 0x74, 0x09, 0x4e, 0x11, 0x11, 0xbb, 0xeb,
+ 0xa2, 0x4e, 0xb5, 0xd6, 0x34, 0x1d, 0x87, 0x18, 0x2d, 0x49, 0x44, 0x75, 0xdc, 0xb7, 0x85, 0xbb,
+ 0x4a, 0xbc, 0x47, 0xbf, 0x0a, 0xd3, 0x04, 0xd1, 0xea, 0x36, 0xdd, 0x46, 0xbb, 0x89, 0xaa, 0xf8,
+ 0xed, 0xcd, 0x21, 0x33, 0x89, 0xa7, 0xd9, 0x14, 0x96, 0xd8, 0x64, 0x02, 0x58, 0x23, 0x47, 0x5f,
+ 0x85, 0x47, 0x09, 0xec, 0x10, 0x59, 0xa8, 0x63, 0xba, 0xa8, 0x8a, 0x7e, 0xbe, 0x6b, 0x36, 0x9d,
+ 0xaa, 0x69, 0xd5, 0xab, 0x47, 0xa6, 0x73, 0x94, 0x3d, 0x85, 0x09, 0x8a, 0xb1, 0xac, 0x62, 0x3c,
+ 0x8c, 0x05, 0x6f, 0x33, 0xb9, 0x32, 0x11, 0x2b, 0x58, 0xf5, 0xe7, 0x4d, 0xe7, 0x48, 0xcf, 0xc3,
+ 0x0c, 0x61, 0x71, 0xdc, 0x4e, 0xc3, 0x3a, 0xac, 0xd6, 0x8e, 0x50, 0xed, 0x95, 0x6a, 0xd7, 0x3d,
+ 0xb8, 0x91, 0x7d, 0x44, 0xbc, 0x3f, 0xd1, 0x70, 0x87, 0xc8, 0x94, 0xb0, 0xc8, 0x9e, 0x7b, 0x70,
+ 0x43, 0xdf, 0x81, 0x0c, 0x76, 0x46, 0xab, 0xf1, 0x06, 0xaa, 0x1e, 0xd8, 0x1d, 0x32, 0x35, 0x4e,
+ 0x84, 0x0c, 0x4d, 0x82, 0x05, 0x97, 0xb6, 0x18, 0x60, 0xd3, 0xae, 0xa3, 0x7c, 0x62, 0x67, 0xbb,
+ 0x5c, 0x5e, 0x35, 0xd2, 0x9c, 0x65, 0xcd, 0xee, 0xe0, 0x80, 0x3a, 0xb4, 0x3d, 0x03, 0xa7, 0x69,
+ 0x40, 0x1d, 0xda, 0xdc, 0xbc, 0x57, 0x61, 0xba, 0x56, 0xa3, 0xcf, 0xdc, 0xa8, 0x55, 0xd9, 0x3b,
+ 0x96, 0x93, 0xd5, 0x02, 0xc6, 0xaa, 0xd5, 0x6e, 0x53, 0x01, 0x16, 0xe3, 0x8e, 0x7e, 0x13, 0x4e,
+ 0xfb, 0xc6, 0x12, 0x81, 0x53, 0x3d, 0x4f, 0x29, 0x43, 0xaf, 0xc2, 0x74, 0xfb, 0xb8, 0x17, 0xa8,
+ 0x07, 0xee, 0xd8, 0x3e, 0x96, 0x61, 0xd7, 0xe1, 0x54, 0xfb, 0xa8, 0xdd, 0x8b, 0x5b, 0x14, 0x71,
+ 0x7a, 0xfb, 0xa8, 0x2d, 0x03, 0x1f, 0x27, 0x2f, 0xdc, 0x1d, 0x54, 0x33, 0x5d, 0x54, 0xcf, 0x3e,
+ 0x24, 0x8a, 0x0b, 0x1d, 0xfa, 0x45, 0xd0, 0x6a, 0xb5, 0x2a, 0xb2, 0xcc, 0xfd, 0x26, 0xaa, 0x9a,
+ 0x1d, 0x64, 0x99, 0x4e, 0x76, 0x5e, 0x14, 0x9e, 0xa8, 0xd5, 0xca, 0xa4, 0xb7, 0x40, 0x3a, 0xf5,
+ 0x45, 0x98, 0xb2, 0xf7, 0x5f, 0xae, 0xd1, 0x90, 0xac, 0xb6, 0x3b, 0xe8, 0xa0, 0xf1, 0x7a, 0xf6,
+ 0x3c, 0xb1, 0xef, 0x24, 0xee, 0x20, 0x01, 0xb9, 0x4d, 0x9a, 0xf5, 0x27, 0x41, 0xab, 0x39, 0x47,
+ 0x66, 0xa7, 0x4d, 0xc6, 0x64, 0xa7, 0x6d, 0xd6, 0x50, 0xf6, 0x71, 0x2a, 0x4a, 0xdb, 0x2b, 0xbc,
+ 0x19, 0xa7, 0x84, 0xf3, 0x5a, 0xe3, 0xc0, 0xe5, 0x8c, 0x4f, 0xd0, 0x94, 0x20, 0x6d, 0x8c, 0x6d,
+ 0x01, 0x34, 0x6c, 0x8a, 0xc0, 0x8d, 0x17, 0x88, 0xd8, 0x44, 0xfb, 0xa8, 0x2d, 0xde, 0xf7, 0x31,
+ 0x18, 0xc7, 0x92, 0xfe, 0x4d, 0x9f, 0xa4, 0x05, 0x59, 0xfb, 0x48, 0xb8, 0xe3, 0x0a, 0xcc, 0x60,
+ 0xa1, 0x16, 0x72, 0xcd, 0xba, 0xe9, 0x9a, 0x82, 0xf4, 0x53, 0x44, 0x1a, 0xdb, 0x7d, 0x93, 0x75,
+ 0x06, 0xf4, 0xec, 0x74, 0xf7, 0x8f, 0xbd, 0xc8, 0x7a, 0x9a, 0xea, 0x89, 0xdb, 0x78, 0x6c, 0x7d,
+ 0x68, 0x45, 0x77, 0x2e, 0x0f, 0x19, 0x31, 0xf0, 0xf5, 0x14, 0xd0, 0xd0, 0xd7, 0x14, 0x5c, 0x05,
+ 0x95, 0xb6, 0x56, 0x71, 0xfd, 0xf2, 0xc9, 0xb2, 0x16, 0xc3, 0x75, 0xd4, 0xc6, 0xfa, 0x6e, 0xb9,
+ 0x6a, 0xec, 0x55, 0x76, 0xd7, 0x37, 0xcb, 0x9a, 0x2a, 0x16, 0xec, 0xdf, 0x8c, 0xc1, 0x44, 0xf0,
+ 0xdd, 0x4b, 0xff, 0x28, 0x3c, 0xc4, 0x17, 0x4a, 0x1c, 0xe4, 0x56, 0x5f, 0x6b, 0x74, 0x48, 0x2e,
+ 0xb6, 0x4c, 0x3a, 0x2f, 0x7a, 0xd1, 0x70, 0x8a, 0x49, 0xed, 0x20, 0xf7, 0x85, 0x46, 0x07, 0x67,
+ 0x5a, 0xcb, 0x74, 0xf5, 0x0d, 0x98, 0xb7, 0xec, 0xaa, 0xe3, 0x9a, 0x56, 0xdd, 0xec, 0xd4, 0xab,
+ 0xfe, 0x12, 0x55, 0xd5, 0xac, 0xd5, 0x90, 0xe3, 0xd8, 0x74, 0x0e, 0xf4, 0x58, 0xce, 0x58, 0xf6,
+ 0x0e, 0x13, 0xf6, 0x27, 0x87, 0x02, 0x13, 0x95, 0x22, 0x57, 0xed, 0x17, 0xb9, 0x8f, 0x40, 0xaa,
+ 0x65, 0xb6, 0xab, 0xc8, 0x72, 0x3b, 0xc7, 0xa4, 0xe2, 0x4e, 0x1a, 0xc9, 0x96, 0xd9, 0x2e, 0xe3,
+ 0xeb, 0x9f, 0xcc, 0x8b, 0xcf, 0x7f, 0x55, 0x21, 0x23, 0x56, 0xdd, 0xf8, 0x25, 0xa6, 0x46, 0x26,
+ 0x28, 0x85, 0x0c, 0x61, 0x8f, 0x0d, 0xac, 0xd1, 0x97, 0x4a, 0x78, 0xe6, 0xca, 0x8f, 0xd2, 0x5a,
+ 0xd8, 0xa0, 0x48, 0x5c, 0x35, 0xe0, 0xd0, 0x42, 0xb4, 0xf6, 0x48, 0x1a, 0xec, 0x4a, 0xbf, 0x0d,
+ 0xa3, 0x2f, 0x3b, 0x84, 0x7b, 0x94, 0x70, 0x9f, 0x1f, 0xcc, 0x7d, 0x67, 0x87, 0x90, 0xa7, 0xee,
+ 0xec, 0x54, 0x2b, 0x5b, 0xc6, 0x66, 0x61, 0xc3, 0x60, 0x70, 0xfd, 0x61, 0x88, 0x37, 0xcd, 0x37,
+ 0x8e, 0x83, 0x73, 0x1c, 0x69, 0x1a, 0xd6, 0xf0, 0x0f, 0x43, 0xfc, 0x35, 0x64, 0xbe, 0x12, 0x9c,
+ 0x59, 0x48, 0xd3, 0x87, 0x18, 0xfa, 0x17, 0x21, 0x41, 0xec, 0xa5, 0x03, 0x30, 0x8b, 0x69, 0x23,
+ 0x7a, 0x12, 0xe2, 0xa5, 0x2d, 0x03, 0x87, 0xbf, 0x06, 0x19, 0xda, 0x5a, 0xdd, 0x5e, 0x2f, 0x97,
+ 0xca, 0x5a, 0x2c, 0x77, 0x15, 0x46, 0xa9, 0x11, 0x70, 0x6a, 0x78, 0x66, 0xd0, 0x46, 0xd8, 0x25,
+ 0xe3, 0x50, 0x78, 0xef, 0xde, 0x66, 0xb1, 0x6c, 0x68, 0x31, 0xd1, 0xbd, 0x0e, 0x64, 0xc4, 0x82,
+ 0xfb, 0x27, 0x13, 0x53, 0xdf, 0x50, 0x20, 0x2d, 0x14, 0xd0, 0xb8, 0xf2, 0x31, 0x9b, 0x4d, 0xfb,
+ 0xb5, 0xaa, 0xd9, 0x6c, 0x98, 0x0e, 0x0b, 0x0a, 0x20, 0x4d, 0x05, 0xdc, 0x32, 0xac, 0xd3, 0x7e,
+ 0x22, 0xca, 0x7f, 0x41, 0x01, 0x4d, 0xae, 0x5d, 0x25, 0x05, 0x95, 0x9f, 0xaa, 0x82, 0x9f, 0x53,
+ 0x60, 0x22, 0x58, 0xb0, 0x4a, 0xea, 0x9d, 0xfb, 0xa9, 0xaa, 0xf7, 0x9d, 0x18, 0x8c, 0x07, 0xca,
+ 0xd4, 0x61, 0xb5, 0xfb, 0x79, 0x98, 0x6a, 0xd4, 0x51, 0xab, 0x6d, 0xbb, 0xc8, 0xaa, 0x1d, 0x57,
+ 0x9b, 0xe8, 0x55, 0xd4, 0xcc, 0xe6, 0xc8, 0x40, 0x71, 0x71, 0x70, 0x21, 0xbc, 0xb4, 0xee, 0xe3,
+ 0x36, 0x30, 0x2c, 0x3f, 0xbd, 0xbe, 0x5a, 0xde, 0xdc, 0xde, 0xda, 0x2d, 0x57, 0x4a, 0x77, 0xab,
+ 0x7b, 0x95, 0x8f, 0x55, 0xb6, 0x5e, 0xa8, 0x18, 0x5a, 0x43, 0x12, 0xfb, 0x10, 0x53, 0x7d, 0x1b,
+ 0x34, 0x59, 0x29, 0xfd, 0x21, 0x08, 0x53, 0x4b, 0x1b, 0xd1, 0xa7, 0x61, 0xb2, 0xb2, 0x55, 0xdd,
+ 0x59, 0x5f, 0x2d, 0x57, 0xcb, 0x6b, 0x6b, 0xe5, 0xd2, 0xee, 0x0e, 0x5d, 0xda, 0xf0, 0xa4, 0x77,
+ 0x83, 0x49, 0xfd, 0x59, 0x15, 0xa6, 0x43, 0x34, 0xd1, 0x0b, 0xec, 0xa5, 0x84, 0xbe, 0x27, 0x3d,
+ 0x3d, 0x8c, 0xf6, 0x4b, 0xb8, 0x2a, 0xd8, 0x36, 0x3b, 0x2e, 0x7b, 0x87, 0x79, 0x12, 0xb0, 0x95,
+ 0x2c, 0xb7, 0x71, 0xd0, 0x40, 0x1d, 0xb6, 0x12, 0x44, 0xdf, 0x54, 0x26, 0xfd, 0x76, 0xba, 0x18,
+ 0xf4, 0x14, 0xe8, 0x6d, 0xdb, 0x69, 0xb8, 0x8d, 0x57, 0x51, 0xb5, 0x61, 0xf1, 0x65, 0x23, 0xfc,
+ 0xe6, 0x12, 0x37, 0x34, 0xde, 0xb3, 0x6e, 0xb9, 0x9e, 0xb4, 0x85, 0x0e, 0x4d, 0x49, 0x1a, 0x0f,
+ 0xe0, 0xaa, 0xa1, 0xf1, 0x1e, 0x4f, 0xfa, 0x1c, 0x64, 0xea, 0x76, 0x17, 0x97, 0x73, 0x54, 0x0e,
+ 0xcf, 0x17, 0x8a, 0x91, 0xa6, 0x6d, 0x9e, 0x08, 0x2b, 0xd4, 0xfd, 0xf5, 0xaa, 0x8c, 0x91, 0xa6,
+ 0x6d, 0x54, 0xe4, 0x09, 0x98, 0x34, 0x0f, 0x0f, 0x3b, 0x98, 0x9c, 0x13, 0xd1, 0x57, 0x8f, 0x09,
+ 0xaf, 0x99, 0x08, 0xce, 0xde, 0x81, 0x24, 0xb7, 0x03, 0x9e, 0x92, 0xb1, 0x25, 0xaa, 0x6d, 0xfa,
+ 0x3e, 0x1d, 0x5b, 0x48, 0x19, 0x49, 0x8b, 0x77, 0x9e, 0x83, 0x4c, 0xc3, 0xa9, 0xfa, 0xcb, 0xef,
+ 0xb1, 0xb3, 0xb1, 0x85, 0xa4, 0x91, 0x6e, 0x38, 0xde, 0xd2, 0x65, 0xee, 0xcb, 0x31, 0x98, 0x08,
+ 0x6e, 0x1f, 0xe8, 0xab, 0x90, 0x6c, 0xda, 0x35, 0x93, 0x84, 0x16, 0xdd, 0xbb, 0x5a, 0x88, 0xd8,
+ 0x71, 0x58, 0xda, 0x60, 0xf2, 0x86, 0x87, 0x9c, 0xfd, 0x8f, 0x0a, 0x24, 0x79, 0xb3, 0x3e, 0x03,
+ 0xf1, 0xb6, 0xe9, 0x1e, 0x11, 0xba, 0x44, 0x31, 0xa6, 0x29, 0x06, 0xb9, 0xc6, 0xed, 0x4e, 0xdb,
+ 0xb4, 0x48, 0x08, 0xb0, 0x76, 0x7c, 0x8d, 0xfd, 0xda, 0x44, 0x66, 0x9d, 0xbc, 0xd7, 0xd8, 0xad,
+ 0x16, 0xb2, 0x5c, 0x87, 0xfb, 0x95, 0xb5, 0x97, 0x58, 0xb3, 0xfe, 0x11, 0x98, 0x72, 0x3b, 0x66,
+ 0xa3, 0x19, 0x90, 0x8d, 0x13, 0x59, 0x8d, 0x77, 0x78, 0xc2, 0x79, 0x78, 0x98, 0xf3, 0xd6, 0x91,
+ 0x6b, 0xd6, 0x8e, 0x50, 0xdd, 0x07, 0x8d, 0x92, 0xf5, 0x8b, 0x87, 0x98, 0xc0, 0x2a, 0xeb, 0xe7,
+ 0xd8, 0xdc, 0x1f, 0x28, 0x30, 0xc5, 0xdf, 0xc4, 0xea, 0x9e, 0xb1, 0x36, 0x01, 0x4c, 0xcb, 0xb2,
+ 0x5d, 0xd1, 0x5c, 0xbd, 0xa1, 0xdc, 0x83, 0x5b, 0x2a, 0x78, 0x20, 0x43, 0x20, 0x98, 0x6d, 0x01,
+ 0xf8, 0x3d, 0x7d, 0xcd, 0x36, 0x0f, 0x69, 0xb6, 0x37, 0x44, 0x36, 0x18, 0xe9, 0xbb, 0x3b, 0xd0,
+ 0x26, 0xfc, 0xca, 0xa6, 0x9f, 0x82, 0xc4, 0x3e, 0x3a, 0x6c, 0x58, 0x6c, 0xc5, 0x97, 0x5e, 0xf0,
+ 0x15, 0x96, 0xb8, 0xb7, 0xc2, 0x52, 0x7c, 0x09, 0xa6, 0x6b, 0x76, 0x4b, 0x56, 0xb7, 0xa8, 0x49,
+ 0xeb, 0x07, 0xce, 0xf3, 0xca, 0x27, 0xc1, 0x2f, 0x31, 0x7f, 0xa4, 0x28, 0xbf, 0x1a, 0x53, 0x6f,
+ 0x6f, 0x17, 0x7f, 0x2b, 0x36, 0x7b, 0x9b, 0x42, 0xb7, 0xf9, 0x93, 0x1a, 0xe8, 0xa0, 0x89, 0x6a,
+ 0x58, 0x7b, 0xf8, 0x8d, 0x8f, 0xc0, 0xd3, 0x87, 0x0d, 0xf7, 0xa8, 0xbb, 0xbf, 0x54, 0xb3, 0x5b,
+ 0x17, 0x0f, 0xed, 0x43, 0xdb, 0xdf, 0x53, 0xc5, 0x57, 0xe4, 0x82, 0x7c, 0x62, 0xfb, 0xaa, 0x29,
+ 0xaf, 0x75, 0x36, 0x72, 0x13, 0x36, 0x5f, 0x81, 0x69, 0x26, 0x5c, 0x25, 0x1b, 0x3b, 0xf4, 0xf5,
+ 0x44, 0x1f, 0xb8, 0x38, 0x96, 0xfd, 0xed, 0xef, 0x91, 0xe9, 0xda, 0x98, 0x62, 0x50, 0xdc, 0x47,
+ 0xdf, 0x60, 0xf2, 0x06, 0x9c, 0x0e, 0xf0, 0xd1, 0xd4, 0x44, 0x9d, 0x08, 0xc6, 0x6f, 0x32, 0xc6,
+ 0x69, 0x81, 0x71, 0x87, 0x41, 0xf3, 0x25, 0x18, 0x3f, 0x09, 0xd7, 0xbf, 0x63, 0x5c, 0x19, 0x24,
+ 0x92, 0xdc, 0x86, 0x49, 0x42, 0x52, 0xeb, 0x3a, 0xae, 0xdd, 0x22, 0xe3, 0xde, 0x60, 0x9a, 0x7f,
+ 0xff, 0x3d, 0x9a, 0x2b, 0x13, 0x18, 0x56, 0xf2, 0x50, 0xf9, 0x3c, 0x90, 0xbd, 0xac, 0x3a, 0xaa,
+ 0x35, 0x23, 0x18, 0xee, 0x31, 0x45, 0x3c, 0xf9, 0xfc, 0x27, 0xe0, 0x14, 0xfe, 0x4c, 0x86, 0x25,
+ 0x51, 0x93, 0xe8, 0x95, 0xb4, 0xec, 0x1f, 0x7c, 0x8a, 0xa6, 0xe3, 0xb4, 0x47, 0x20, 0xe8, 0x24,
+ 0x78, 0xf1, 0x10, 0xb9, 0x2e, 0xea, 0x38, 0x55, 0xb3, 0x19, 0xa6, 0x9e, 0xb0, 0x14, 0x91, 0xfd,
+ 0x95, 0x1f, 0x04, 0xbd, 0x78, 0x9b, 0x22, 0x0b, 0xcd, 0x66, 0x7e, 0x0f, 0x1e, 0x0a, 0x89, 0x8a,
+ 0x21, 0x38, 0x3f, 0xcb, 0x38, 0x4f, 0xf5, 0x44, 0x06, 0xa6, 0xdd, 0x06, 0xde, 0xee, 0xf9, 0x72,
+ 0x08, 0xce, 0x7f, 0xc8, 0x38, 0x75, 0x86, 0xe5, 0x2e, 0xc5, 0x8c, 0x77, 0x60, 0xea, 0x55, 0xd4,
+ 0xd9, 0xb7, 0x1d, 0xb6, 0xfc, 0x33, 0x04, 0xdd, 0xe7, 0x18, 0xdd, 0x24, 0x03, 0x92, 0xf5, 0x20,
+ 0xcc, 0x75, 0x13, 0x92, 0x07, 0x66, 0x0d, 0x0d, 0x41, 0xf1, 0x79, 0x46, 0x31, 0x86, 0xe5, 0x31,
+ 0xb4, 0x00, 0x99, 0x43, 0x9b, 0xcd, 0x4c, 0xd1, 0xf0, 0x2f, 0x30, 0x78, 0x9a, 0x63, 0x18, 0x45,
+ 0xdb, 0x6e, 0x77, 0x9b, 0x78, 0xda, 0x8a, 0xa6, 0xf8, 0x22, 0xa7, 0xe0, 0x18, 0x46, 0x71, 0x02,
+ 0xb3, 0xbe, 0xc5, 0x29, 0x1c, 0xc1, 0x9e, 0xcf, 0x41, 0xda, 0xb6, 0x9a, 0xc7, 0xb6, 0x35, 0x8c,
+ 0x12, 0x5f, 0x62, 0x0c, 0xc0, 0x20, 0x98, 0xe0, 0x16, 0xa4, 0x86, 0x75, 0xc4, 0xaf, 0xff, 0x80,
+ 0xa7, 0x07, 0xf7, 0xc0, 0x6d, 0x98, 0xe4, 0x03, 0x54, 0xc3, 0xb6, 0x86, 0xa0, 0xf8, 0x0d, 0x46,
+ 0x31, 0x21, 0xc0, 0xd8, 0x63, 0xb8, 0xc8, 0x71, 0x0f, 0xd1, 0x30, 0x24, 0x5f, 0xe6, 0x8f, 0xc1,
+ 0x20, 0xcc, 0x94, 0xfb, 0xc8, 0xaa, 0x1d, 0x0d, 0xc7, 0xf0, 0x15, 0x6e, 0x4a, 0x8e, 0xc1, 0x14,
+ 0x25, 0x18, 0x6f, 0x99, 0x1d, 0xe7, 0xc8, 0x6c, 0x0e, 0xe5, 0x8e, 0xdf, 0x64, 0x1c, 0x19, 0x0f,
+ 0xc4, 0x2c, 0xd2, 0xb5, 0x4e, 0x42, 0xf3, 0x5b, 0xdc, 0x22, 0x02, 0x8c, 0xa5, 0x9e, 0xe3, 0x92,
+ 0xb5, 0xb2, 0x93, 0xb0, 0xfd, 0x23, 0x9e, 0x7a, 0x14, 0xbb, 0x29, 0x32, 0xde, 0x82, 0x94, 0xd3,
+ 0x78, 0x63, 0x28, 0x9a, 0x7f, 0xcc, 0x3d, 0x4d, 0x00, 0x18, 0x7c, 0x17, 0x1e, 0x0e, 0x9d, 0x26,
+ 0x86, 0x20, 0xfb, 0x27, 0x8c, 0x6c, 0x26, 0x64, 0xaa, 0x60, 0x43, 0xc2, 0x49, 0x29, 0xff, 0x29,
+ 0x1f, 0x12, 0x90, 0xc4, 0xb5, 0x8d, 0xdf, 0x15, 0x1c, 0xf3, 0xe0, 0x64, 0x56, 0xfb, 0x67, 0xdc,
+ 0x6a, 0x14, 0x1b, 0xb0, 0xda, 0x2e, 0xcc, 0x30, 0xc6, 0x93, 0xf9, 0xf5, 0xab, 0x7c, 0x60, 0xa5,
+ 0xe8, 0xbd, 0xa0, 0x77, 0x5f, 0x82, 0x59, 0xcf, 0x9c, 0xbc, 0x28, 0x75, 0xaa, 0x2d, 0xb3, 0x3d,
+ 0x04, 0xf3, 0x6f, 0x33, 0x66, 0x3e, 0xe2, 0x7b, 0x55, 0xad, 0xb3, 0x69, 0xb6, 0x31, 0xf9, 0x8b,
+ 0x90, 0xe5, 0xe4, 0x5d, 0xab, 0x83, 0x6a, 0xf6, 0xa1, 0xd5, 0x78, 0x03, 0xd5, 0x87, 0xa0, 0xfe,
+ 0x9a, 0xe4, 0xaa, 0x3d, 0x01, 0x8e, 0x99, 0xd7, 0x41, 0xf3, 0x6a, 0x95, 0x6a, 0xa3, 0xd5, 0xb6,
+ 0x3b, 0x6e, 0x04, 0xe3, 0x3f, 0xe7, 0x9e, 0xf2, 0x70, 0xeb, 0x04, 0x96, 0x2f, 0xc3, 0x04, 0xb9,
+ 0x1c, 0x36, 0x24, 0x7f, 0x87, 0x11, 0x8d, 0xfb, 0x28, 0x36, 0x70, 0xd4, 0xec, 0x56, 0xdb, 0xec,
+ 0x0c, 0x33, 0xfe, 0xfd, 0x0b, 0x3e, 0x70, 0x30, 0x08, 0x1b, 0x38, 0xdc, 0xe3, 0x36, 0xc2, 0xb3,
+ 0xfd, 0x10, 0x0c, 0x5f, 0xe7, 0x03, 0x07, 0xc7, 0x30, 0x0a, 0x5e, 0x30, 0x0c, 0x41, 0xf1, 0x2f,
+ 0x39, 0x05, 0xc7, 0x60, 0x8a, 0x8f, 0xfb, 0x13, 0x6d, 0x07, 0x1d, 0x36, 0x1c, 0xb7, 0x43, 0x4b,
+ 0xe1, 0xc1, 0x54, 0xbf, 0xfb, 0x83, 0x60, 0x11, 0x66, 0x08, 0x50, 0x3c, 0x12, 0xb1, 0x25, 0x54,
+ 0xf2, 0xa6, 0x14, 0xad, 0xd8, 0xef, 0xf1, 0x91, 0x48, 0x80, 0x61, 0xdd, 0x84, 0x0a, 0x11, 0x9b,
+ 0xbd, 0x86, 0xdf, 0x0f, 0x86, 0xa0, 0xfb, 0x86, 0xa4, 0xdc, 0x0e, 0xc7, 0x62, 0x4e, 0xa1, 0xfe,
+ 0xe9, 0x5a, 0xaf, 0xa0, 0xe3, 0xa1, 0xa2, 0xf3, 0x5f, 0x49, 0xf5, 0xcf, 0x1e, 0x45, 0xd2, 0x31,
+ 0x64, 0x52, 0xaa, 0xa7, 0xf4, 0xa8, 0x53, 0x40, 0xd9, 0xbf, 0xf8, 0x1e, 0x7b, 0xde, 0x60, 0x39,
+ 0x95, 0xdf, 0xc0, 0x41, 0x1e, 0x2c, 0x7a, 0xa2, 0xc9, 0x3e, 0xf5, 0x9e, 0x17, 0xe7, 0x81, 0x9a,
+ 0x27, 0xbf, 0x06, 0xe3, 0x81, 0x82, 0x27, 0x9a, 0xea, 0x2f, 0x31, 0xaa, 0x8c, 0x58, 0xef, 0xe4,
+ 0xaf, 0x42, 0x1c, 0x17, 0x2f, 0xd1, 0xf0, 0xbf, 0xcc, 0xe0, 0x44, 0x3c, 0xff, 0x0c, 0x24, 0x79,
+ 0xd1, 0x12, 0x0d, 0xfd, 0x45, 0x06, 0xf5, 0x20, 0x18, 0xce, 0x0b, 0x96, 0x68, 0xf8, 0x5f, 0xe1,
+ 0x70, 0x0e, 0xc1, 0xf0, 0xe1, 0x4d, 0xf8, 0xf6, 0x5f, 0x8b, 0xb3, 0x49, 0x87, 0xdb, 0xee, 0x16,
+ 0x8c, 0xb1, 0x4a, 0x25, 0x1a, 0xfd, 0x4b, 0xec, 0xe6, 0x1c, 0x91, 0xbf, 0x0e, 0x89, 0x21, 0x0d,
+ 0xfe, 0x37, 0x18, 0x94, 0xca, 0xe7, 0x4b, 0x90, 0x16, 0xaa, 0x93, 0x68, 0xf8, 0xdf, 0x64, 0x70,
+ 0x11, 0x85, 0x55, 0x67, 0xd5, 0x49, 0x34, 0xc1, 0xdf, 0xe2, 0xaa, 0x33, 0x04, 0x36, 0x1b, 0x2f,
+ 0x4c, 0xa2, 0xd1, 0x7f, 0x9b, 0x5b, 0x9d, 0x43, 0xf2, 0xcf, 0x41, 0xca, 0x9b, 0x6c, 0xa2, 0xf1,
+ 0x7f, 0x87, 0xe1, 0x7d, 0x0c, 0xb6, 0x80, 0x30, 0xd9, 0x45, 0x53, 0xfc, 0x5d, 0x6e, 0x01, 0x01,
+ 0x85, 0xd3, 0x48, 0x2e, 0x60, 0xa2, 0x99, 0x7e, 0x99, 0xa7, 0x91, 0x54, 0xbf, 0x60, 0x6f, 0x92,
+ 0x31, 0x3f, 0x9a, 0xe2, 0xef, 0x71, 0x6f, 0x12, 0x79, 0xac, 0x86, 0x5c, 0x11, 0x44, 0x73, 0xfc,
+ 0x03, 0xae, 0x86, 0x54, 0x10, 0xe4, 0xb7, 0x41, 0xef, 0xad, 0x06, 0xa2, 0xf9, 0x3e, 0xc3, 0xf8,
+ 0xa6, 0x7a, 0x8a, 0x81, 0xfc, 0x0b, 0x30, 0x13, 0x5e, 0x09, 0x44, 0xb3, 0xfe, 0xca, 0x7b, 0xd2,
+ 0xbb, 0x9b, 0x58, 0x08, 0xe4, 0x77, 0xfd, 0x29, 0x45, 0xac, 0x02, 0xa2, 0x69, 0x3f, 0xfb, 0x5e,
+ 0x70, 0xe0, 0x16, 0x8b, 0x80, 0x7c, 0x01, 0xc0, 0x9f, 0x80, 0xa3, 0xb9, 0x3e, 0xc7, 0xb8, 0x04,
+ 0x10, 0x4e, 0x0d, 0x36, 0xff, 0x46, 0xe3, 0x3f, 0xcf, 0x53, 0x83, 0x21, 0x70, 0x6a, 0xf0, 0xa9,
+ 0x37, 0x1a, 0xfd, 0x05, 0x9e, 0x1a, 0x1c, 0x82, 0x23, 0x5b, 0x98, 0xdd, 0xa2, 0x19, 0xbe, 0xc4,
+ 0x23, 0x5b, 0x40, 0xe5, 0x2b, 0x30, 0xd5, 0x33, 0x21, 0x46, 0x53, 0xfd, 0x2a, 0xa3, 0xd2, 0xe4,
+ 0xf9, 0x50, 0x9c, 0xbc, 0xd8, 0x64, 0x18, 0xcd, 0xf6, 0x6b, 0xd2, 0xe4, 0xc5, 0xe6, 0xc2, 0xfc,
+ 0x2d, 0x48, 0x5a, 0xdd, 0x66, 0x13, 0x27, 0x8f, 0x3e, 0xf8, 0xe4, 0x5e, 0xf6, 0xbf, 0xff, 0x98,
+ 0x59, 0x87, 0x03, 0xf2, 0x57, 0x21, 0x81, 0x5a, 0xfb, 0xa8, 0x1e, 0x85, 0xfc, 0x1f, 0x3f, 0xe6,
+ 0x03, 0x26, 0x96, 0xce, 0x3f, 0x07, 0x40, 0x97, 0x46, 0xc8, 0xb6, 0x5f, 0x04, 0xf6, 0x7f, 0xfe,
+ 0x98, 0x9d, 0xa9, 0xf1, 0x21, 0x3e, 0x01, 0x3d, 0xa1, 0x33, 0x98, 0xe0, 0x07, 0x41, 0x02, 0xe2,
+ 0x91, 0x9b, 0x30, 0xf6, 0xb2, 0x63, 0x5b, 0xae, 0x79, 0x18, 0x85, 0xfe, 0x5f, 0x0c, 0xcd, 0xe5,
+ 0xb1, 0xc1, 0x5a, 0x76, 0x07, 0xb9, 0xe6, 0xa1, 0x13, 0x85, 0xfd, 0xdf, 0x0c, 0xeb, 0x01, 0x30,
+ 0xb8, 0x66, 0x3a, 0xee, 0x30, 0xcf, 0xfd, 0x7f, 0x38, 0x98, 0x03, 0xb0, 0xd2, 0xf8, 0xf3, 0x2b,
+ 0xe8, 0x38, 0x0a, 0xfb, 0x43, 0xae, 0x34, 0x93, 0xcf, 0x3f, 0x03, 0x29, 0xfc, 0x91, 0x1e, 0x94,
+ 0x8b, 0x00, 0xff, 0x5f, 0x06, 0xf6, 0x11, 0xf8, 0xce, 0x8e, 0x5b, 0x77, 0x1b, 0xd1, 0xc6, 0xfe,
+ 0x23, 0xe6, 0x69, 0x2e, 0x9f, 0x2f, 0x40, 0xda, 0x71, 0xeb, 0xf5, 0x2e, 0xab, 0x4f, 0x23, 0xe0,
+ 0xff, 0xef, 0xc7, 0xde, 0x92, 0x85, 0x87, 0xc1, 0xde, 0x7e, 0xed, 0x15, 0xb7, 0x6d, 0x93, 0x6d,
+ 0x8e, 0x28, 0x86, 0xf7, 0x18, 0x83, 0x00, 0x29, 0x96, 0xc3, 0x97, 0x6f, 0xe1, 0xb6, 0x7d, 0xdb,
+ 0xa6, 0x0b, 0xb7, 0x9f, 0xcc, 0x45, 0xaf, 0xc0, 0xc2, 0x1f, 0x36, 0xe1, 0x7a, 0x5f, 0x31, 0x3c,
+ 0x15, 0x5f, 0xac, 0xd9, 0xad, 0x7d, 0xdb, 0xb9, 0xb8, 0x6f, 0xbb, 0x47, 0x17, 0xdd, 0x23, 0x84,
+ 0xdb, 0xd8, 0x92, 0x6d, 0x1c, 0x7f, 0x9e, 0x3d, 0xd9, 0x3a, 0x2f, 0xd9, 0xc5, 0xaf, 0x34, 0xf0,
+ 0xa3, 0x55, 0xc8, 0x46, 0x8a, 0x7e, 0x06, 0x46, 0xc9, 0xc3, 0x5e, 0x26, 0x9b, 0x95, 0x4a, 0x31,
+ 0x7e, 0xef, 0x9d, 0xf9, 0x11, 0x83, 0xb5, 0x79, 0xbd, 0xcb, 0x64, 0xa5, 0x3b, 0x16, 0xe8, 0x5d,
+ 0xf6, 0x7a, 0xaf, 0xd0, 0xc5, 0xee, 0x40, 0xef, 0x15, 0xaf, 0x77, 0x85, 0x2c, 0x7b, 0xab, 0x81,
+ 0xde, 0x15, 0xaf, 0xf7, 0x2a, 0xd9, 0xda, 0x19, 0x0f, 0xf4, 0x5e, 0xf5, 0x7a, 0xaf, 0x91, 0x0d,
+ 0x9d, 0x78, 0xa0, 0xf7, 0x9a, 0xd7, 0x7b, 0x9d, 0xec, 0xe5, 0x4c, 0x05, 0x7a, 0xaf, 0x7b, 0xbd,
+ 0x37, 0xc8, 0x1e, 0x8e, 0x1e, 0xe8, 0xbd, 0xe1, 0xf5, 0xde, 0x24, 0x27, 0xaf, 0xc6, 0x02, 0xbd,
+ 0x37, 0xf5, 0x39, 0x18, 0xa3, 0x4f, 0x7e, 0x89, 0x6c, 0xf8, 0x4f, 0xb2, 0x6e, 0xde, 0xe8, 0xf7,
+ 0x5f, 0x26, 0xa7, 0xac, 0x46, 0x83, 0xfd, 0x97, 0xfd, 0xfe, 0x65, 0xf2, 0x85, 0x0f, 0x2d, 0xd8,
+ 0xbf, 0xec, 0xf7, 0x5f, 0xc9, 0x8e, 0x93, 0x93, 0x66, 0x81, 0xfe, 0x2b, 0x7e, 0xff, 0x4a, 0x76,
+ 0x02, 0x67, 0x4c, 0xb0, 0x7f, 0xc5, 0xef, 0xbf, 0x9a, 0x9d, 0x3c, 0xab, 0x2c, 0x64, 0x82, 0xfd,
+ 0x57, 0x73, 0xbf, 0x40, 0xdc, 0x6b, 0xf9, 0xee, 0x9d, 0x09, 0xba, 0xd7, 0x73, 0xec, 0x4c, 0xd0,
+ 0xb1, 0x9e, 0x4b, 0x67, 0x82, 0x2e, 0xf5, 0x9c, 0x39, 0x13, 0x74, 0xa6, 0xe7, 0xc6, 0x99, 0xa0,
+ 0x1b, 0x3d, 0x07, 0xce, 0x04, 0x1d, 0xe8, 0xb9, 0x6e, 0x26, 0xe8, 0x3a, 0xcf, 0x69, 0x33, 0x41,
+ 0xa7, 0x79, 0xee, 0x9a, 0x09, 0xba, 0xcb, 0x73, 0x54, 0x56, 0x72, 0x94, 0xef, 0xa2, 0xac, 0xe4,
+ 0x22, 0xdf, 0x39, 0x59, 0xc9, 0x39, 0xbe, 0x5b, 0xb2, 0x92, 0x5b, 0x7c, 0x87, 0x64, 0x25, 0x87,
+ 0xf8, 0xae, 0xc8, 0x4a, 0xae, 0xf0, 0x9d, 0xc0, 0x72, 0xcc, 0x40, 0xed, 0x90, 0x1c, 0x53, 0x07,
+ 0xe6, 0x98, 0x3a, 0x30, 0xc7, 0xd4, 0x81, 0x39, 0xa6, 0x0e, 0xcc, 0x31, 0x75, 0x60, 0x8e, 0xa9,
+ 0x03, 0x73, 0x4c, 0x1d, 0x98, 0x63, 0xea, 0xc0, 0x1c, 0x53, 0x07, 0xe7, 0x98, 0x1a, 0x91, 0x63,
+ 0x6a, 0x44, 0x8e, 0xa9, 0x11, 0x39, 0xa6, 0x46, 0xe4, 0x98, 0x1a, 0x91, 0x63, 0x6a, 0xdf, 0x1c,
+ 0xf3, 0xdd, 0x3b, 0x13, 0x74, 0x6f, 0x68, 0x8e, 0xa9, 0x7d, 0x72, 0x4c, 0xed, 0x93, 0x63, 0x6a,
+ 0x9f, 0x1c, 0x53, 0xfb, 0xe4, 0x98, 0xda, 0x27, 0xc7, 0xd4, 0x3e, 0x39, 0xa6, 0xf6, 0xc9, 0x31,
+ 0xb5, 0x5f, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6,
+ 0x98, 0xda, 0x37, 0xc7, 0x54, 0x31, 0xc7, 0xfe, 0xb5, 0x0a, 0x3a, 0xcd, 0xb1, 0x6d, 0x72, 0x64,
+ 0x8c, 0xb9, 0x62, 0x4e, 0xca, 0xb4, 0x51, 0xec, 0x3a, 0xcd, 0x77, 0xc9, 0x9c, 0x94, 0x6b, 0xc1,
+ 0xfe, 0x65, 0xaf, 0x9f, 0x67, 0x5b, 0xb0, 0xff, 0x8a, 0xd7, 0xcf, 0xf3, 0x2d, 0xd8, 0xbf, 0xe2,
+ 0xf5, 0xf3, 0x8c, 0x0b, 0xf6, 0x5f, 0xf5, 0xfa, 0x79, 0xce, 0x05, 0xfb, 0xaf, 0x79, 0xfd, 0x3c,
+ 0xeb, 0x82, 0xfd, 0xd7, 0xbd, 0x7e, 0x9e, 0x77, 0xc1, 0xfe, 0x1b, 0x5e, 0x3f, 0xcf, 0xbc, 0x60,
+ 0xff, 0x4d, 0xfd, 0xac, 0x9c, 0x7b, 0x5c, 0xc0, 0x73, 0xed, 0x59, 0x39, 0xfb, 0x24, 0x89, 0xcb,
+ 0xbe, 0x04, 0xcf, 0x3f, 0x49, 0x62, 0xd9, 0x97, 0xe0, 0x19, 0x28, 0x49, 0x5c, 0xc9, 0x7d, 0x9a,
+ 0xb8, 0xcf, 0x92, 0xdd, 0x37, 0x2b, 0xb9, 0x2f, 0x26, 0xb8, 0x6e, 0x56, 0x72, 0x5d, 0x4c, 0x70,
+ 0xdb, 0xac, 0xe4, 0xb6, 0x98, 0xe0, 0xb2, 0x59, 0xc9, 0x65, 0x31, 0xc1, 0x5d, 0xb3, 0x92, 0xbb,
+ 0x62, 0x82, 0xab, 0x66, 0x25, 0x57, 0xc5, 0x04, 0x37, 0xcd, 0x4a, 0x6e, 0x8a, 0x09, 0x2e, 0x9a,
+ 0x95, 0x5c, 0x14, 0x13, 0xdc, 0x33, 0x2b, 0xb9, 0x27, 0x26, 0xb8, 0xe6, 0x8c, 0xec, 0x9a, 0x98,
+ 0xe8, 0x96, 0x33, 0xb2, 0x5b, 0x62, 0xa2, 0x4b, 0xce, 0xc8, 0x2e, 0x89, 0x89, 0xee, 0x38, 0x23,
+ 0xbb, 0x23, 0x26, 0xba, 0xe2, 0x8f, 0x63, 0xbc, 0x22, 0xdc, 0x71, 0x3b, 0xdd, 0x9a, 0xfb, 0xbe,
+ 0x2a, 0xc2, 0x4b, 0x81, 0xf2, 0x21, 0xbd, 0xac, 0x2f, 0x91, 0x82, 0x55, 0xac, 0x38, 0xa5, 0x19,
+ 0xec, 0x52, 0xa0, 0xb0, 0x10, 0x10, 0x56, 0x38, 0x62, 0xe5, 0x7d, 0xd5, 0x86, 0x97, 0x02, 0x65,
+ 0x46, 0xb4, 0x7e, 0x37, 0x3e, 0xf4, 0x8a, 0xed, 0xed, 0x18, 0xaf, 0xd8, 0x98, 0xf9, 0x4f, 0x5a,
+ 0xb1, 0x2d, 0x46, 0x9b, 0xdc, 0x33, 0xf6, 0x62, 0xb4, 0xb1, 0x7b, 0x66, 0x9d, 0x61, 0x2b, 0xb8,
+ 0xc5, 0x68, 0xd3, 0x7a, 0x46, 0xfd, 0x60, 0xeb, 0x2d, 0x16, 0xc1, 0x06, 0x6a, 0x87, 0x44, 0xf0,
+ 0x49, 0xeb, 0xad, 0x4b, 0x81, 0xa1, 0xe4, 0xa4, 0x11, 0xac, 0x9e, 0x38, 0x82, 0x4f, 0x5a, 0x79,
+ 0x5d, 0x0a, 0x0c, 0x2f, 0x27, 0x8e, 0xe0, 0x0f, 0xa1, 0x1e, 0x62, 0x11, 0xec, 0x9b, 0xff, 0xa4,
+ 0xf5, 0xd0, 0x62, 0xb4, 0xc9, 0x43, 0x23, 0x58, 0x3d, 0x41, 0x04, 0x0f, 0x53, 0x1f, 0x2d, 0x46,
+ 0x9b, 0x36, 0x3c, 0x82, 0xdf, 0x77, 0x35, 0xf3, 0x45, 0x05, 0xa6, 0x2a, 0x8d, 0x7a, 0xb9, 0xb5,
+ 0x8f, 0xea, 0x75, 0x54, 0x67, 0x76, 0xbc, 0x14, 0x18, 0x09, 0xfa, 0xb8, 0xfa, 0x5b, 0xef, 0xcc,
+ 0xfb, 0x16, 0xbe, 0x0a, 0x49, 0x6a, 0xd3, 0x4b, 0x97, 0xb2, 0xf7, 0x94, 0x88, 0x11, 0xce, 0x13,
+ 0xd5, 0xcf, 0x71, 0xd8, 0xe5, 0x4b, 0xd9, 0xff, 0xa4, 0x08, 0xa3, 0x9c, 0xd7, 0x9c, 0xfb, 0x65,
+ 0xa2, 0xa1, 0xf5, 0xbe, 0x35, 0xbc, 0x38, 0x94, 0x86, 0x82, 0x6e, 0x8f, 0xf4, 0xe8, 0x26, 0x68,
+ 0xd5, 0x85, 0xc9, 0x4a, 0xa3, 0x5e, 0x21, 0x3f, 0x35, 0x30, 0x8c, 0x4a, 0x54, 0x46, 0x1a, 0x0f,
+ 0x2e, 0x05, 0xc2, 0x52, 0x44, 0x78, 0x21, 0x1d, 0x1c, 0x23, 0x72, 0x0d, 0x7c, 0x5b, 0x2b, 0x70,
+ 0xdb, 0xc5, 0x7e, 0xb7, 0xf5, 0x47, 0x76, 0xef, 0x86, 0x8b, 0xfd, 0x6e, 0xe8, 0xe7, 0x90, 0x77,
+ 0xab, 0xd7, 0xf9, 0xe4, 0x4c, 0x0f, 0x6e, 0xe9, 0x67, 0x20, 0xb6, 0x4e, 0xcf, 0x95, 0x67, 0x8a,
+ 0x19, 0xac, 0xd4, 0xb7, 0xdf, 0x99, 0x8f, 0xef, 0x75, 0x1b, 0x75, 0x23, 0xb6, 0x5e, 0xd7, 0xef,
+ 0x40, 0xe2, 0x13, 0xec, 0x0b, 0xaf, 0x58, 0x60, 0x85, 0x09, 0x3c, 0x15, 0xb1, 0xc4, 0x44, 0xa8,
+ 0x97, 0xf6, 0x1a, 0x96, 0x7b, 0x79, 0xf9, 0x86, 0x41, 0x29, 0x72, 0x7f, 0x06, 0x80, 0xde, 0x73,
+ 0xd5, 0x74, 0x8e, 0xf4, 0x0a, 0x67, 0xa6, 0xb7, 0xbe, 0xf1, 0xed, 0x77, 0xe6, 0x57, 0x86, 0x61,
+ 0x7d, 0xba, 0x6e, 0x3a, 0x47, 0x4f, 0xbb, 0xc7, 0x6d, 0xb4, 0x54, 0x3c, 0x76, 0x91, 0xc3, 0xd9,
+ 0xdb, 0x7c, 0xd6, 0x63, 0xcf, 0x95, 0x15, 0x9e, 0x2b, 0x19, 0x78, 0xa6, 0xb5, 0xe0, 0x33, 0x5d,
+ 0x7a, 0xd0, 0xe7, 0x79, 0x9d, 0x4f, 0x12, 0x92, 0x25, 0xd5, 0x28, 0x4b, 0xaa, 0xef, 0xd7, 0x92,
+ 0x6d, 0x3e, 0x3e, 0x4a, 0xcf, 0xaa, 0x0e, 0x7a, 0x56, 0xf5, 0xfd, 0x3c, 0xeb, 0xff, 0xa7, 0xd9,
+ 0xea, 0xe5, 0xd3, 0x9e, 0x45, 0xcf, 0xb4, 0xfe, 0xe9, 0x5a, 0x0b, 0xfa, 0x40, 0xab, 0x80, 0x7c,
+ 0xfc, 0xde, 0x5b, 0xf3, 0x4a, 0xee, 0x8b, 0x31, 0xfe, 0xe4, 0x34, 0x91, 0x1e, 0xec, 0xc9, 0xff,
+ 0xb4, 0xd4, 0x54, 0x1f, 0x86, 0x85, 0xbe, 0xa0, 0xc0, 0x4c, 0xcf, 0x48, 0x4e, 0xcd, 0xf4, 0xc1,
+ 0x0e, 0xe7, 0xd6, 0x49, 0x87, 0x73, 0xa6, 0xe0, 0xef, 0x28, 0x70, 0x4a, 0x1a, 0x5e, 0xa9, 0x7a,
+ 0x17, 0x25, 0xf5, 0x1e, 0xea, 0xbd, 0x13, 0x11, 0x14, 0xb4, 0x13, 0xdd, 0x2b, 0x01, 0x04, 0x66,
+ 0xcf, 0xef, 0x2b, 0x92, 0xdf, 0xcf, 0x78, 0x80, 0x10, 0x73, 0xf1, 0x08, 0x60, 0x6a, 0xdb, 0x10,
+ 0xdf, 0xed, 0x20, 0xa4, 0xcf, 0x41, 0x6c, 0xab, 0xc3, 0x34, 0x9c, 0xa0, 0xf8, 0xad, 0x4e, 0xb1,
+ 0x63, 0x5a, 0xb5, 0x23, 0x23, 0xb6, 0xd5, 0xd1, 0xcf, 0x81, 0x5a, 0x60, 0x5f, 0xb6, 0x4f, 0x2f,
+ 0x4f, 0x52, 0x81, 0x82, 0x55, 0x67, 0x12, 0xb8, 0x4f, 0x9f, 0x83, 0xf8, 0x06, 0x32, 0x0f, 0x98,
+ 0x12, 0x40, 0x65, 0x70, 0x8b, 0x41, 0xda, 0xd9, 0x0d, 0x5f, 0x84, 0x24, 0x27, 0xd6, 0xcf, 0x63,
+ 0xc4, 0x81, 0xcb, 0x6e, 0xcb, 0x10, 0x58, 0x1d, 0x36, 0x73, 0x91, 0x5e, 0xfd, 0x02, 0x24, 0x8c,
+ 0xc6, 0xe1, 0x91, 0xcb, 0x6e, 0xde, 0x2b, 0x46, 0xbb, 0x73, 0x77, 0x21, 0xe5, 0x69, 0xf4, 0x01,
+ 0x53, 0xaf, 0xd2, 0x47, 0xd3, 0x67, 0xc5, 0xf9, 0x84, 0xaf, 0x5b, 0xd2, 0x26, 0xfd, 0x2c, 0x24,
+ 0x77, 0xdc, 0x8e, 0x3f, 0xe8, 0xf3, 0x8a, 0xd4, 0x6b, 0xcd, 0xfd, 0x82, 0x02, 0xc9, 0x55, 0x84,
+ 0xda, 0xc4, 0xe0, 0x8f, 0x43, 0x7c, 0xd5, 0x7e, 0xcd, 0x62, 0x0a, 0x4e, 0x31, 0x8b, 0xe2, 0x6e,
+ 0x66, 0x53, 0xd2, 0xad, 0x3f, 0x2e, 0xda, 0x7d, 0xda, 0xb3, 0xbb, 0x20, 0x47, 0x6c, 0x9f, 0x0b,
+ 0xd8, 0x9e, 0x39, 0x10, 0x0b, 0xf5, 0xd8, 0xff, 0x3a, 0xa4, 0x85, 0xbb, 0xe8, 0x0b, 0x4c, 0x8d,
+ 0x98, 0x0c, 0x14, 0x6d, 0x85, 0x25, 0x72, 0x08, 0xc6, 0x03, 0x37, 0xc6, 0x50, 0xc1, 0xc4, 0x7d,
+ 0xa0, 0xc4, 0xcc, 0x8b, 0x41, 0x33, 0x87, 0x8b, 0x32, 0x53, 0x5f, 0xa2, 0x36, 0x22, 0xe6, 0x3e,
+ 0x4f, 0x83, 0xb3, 0xbf, 0x13, 0xf1, 0xe7, 0x5c, 0x02, 0xd4, 0x4a, 0xa3, 0x99, 0x7b, 0x06, 0x80,
+ 0xa6, 0x7c, 0xd9, 0xea, 0xb6, 0xa4, 0xac, 0x9b, 0xe0, 0x06, 0xde, 0x3d, 0x42, 0xbb, 0xc8, 0x21,
+ 0x22, 0xc1, 0x7a, 0x0a, 0x0f, 0x30, 0x40, 0x53, 0x8c, 0xe0, 0x9f, 0x8c, 0xc4, 0x87, 0x56, 0x62,
+ 0x58, 0x34, 0x4b, 0x45, 0xef, 0x22, 0xb7, 0x60, 0xd9, 0xee, 0x11, 0xea, 0x48, 0x88, 0x65, 0xfd,
+ 0x4a, 0x20, 0x61, 0x27, 0x96, 0x1f, 0xf1, 0x10, 0x7d, 0x41, 0x57, 0x72, 0x5f, 0x25, 0x0a, 0xe2,
+ 0x52, 0xa0, 0xe7, 0x01, 0xd5, 0x21, 0x1e, 0x50, 0xbf, 0x16, 0xa8, 0xdf, 0x06, 0xa8, 0x29, 0xbd,
+ 0x5a, 0xde, 0x0c, 0xbc, 0xe7, 0x0c, 0x56, 0x36, 0xf8, 0x8e, 0xc9, 0x6d, 0xca, 0x55, 0x7e, 0x32,
+ 0x52, 0xe5, 0x3e, 0xd5, 0xed, 0x49, 0x6d, 0xaa, 0x0e, 0x6b, 0xd3, 0x6f, 0x78, 0x15, 0x07, 0xfd,
+ 0x45, 0x13, 0xf2, 0x5b, 0x40, 0xfa, 0x53, 0x91, 0xbe, 0xcf, 0x2b, 0x25, 0x4f, 0xd5, 0x95, 0x61,
+ 0xdd, 0x9f, 0x8f, 0x15, 0x8b, 0x9e, 0xba, 0xd7, 0x4f, 0x10, 0x02, 0xf9, 0x58, 0xa9, 0xe4, 0x0d,
+ 0xdb, 0xc9, 0x4f, 0xbf, 0x35, 0xaf, 0x7c, 0xe5, 0xad, 0xf9, 0x91, 0xdc, 0x6f, 0x2a, 0x30, 0xc5,
+ 0x24, 0x85, 0xc0, 0x7d, 0x5a, 0x52, 0xfe, 0x34, 0x1f, 0x33, 0xc2, 0x2c, 0xf0, 0x13, 0x0b, 0xde,
+ 0x6f, 0x2a, 0x90, 0xed, 0xd1, 0x95, 0xdb, 0xfb, 0xd2, 0x50, 0x2a, 0xe7, 0x95, 0xf2, 0x4f, 0xdf,
+ 0xe6, 0x77, 0x21, 0xb1, 0xdb, 0x68, 0xa1, 0x0e, 0x9e, 0x09, 0xf0, 0x07, 0xaa, 0x32, 0xdf, 0xcc,
+ 0xa1, 0x4d, 0xbc, 0x8f, 0x2a, 0x17, 0xe8, 0x5b, 0xd6, 0xb3, 0x10, 0x5f, 0x35, 0x5d, 0x93, 0x68,
+ 0x90, 0xf1, 0xc6, 0x57, 0xd3, 0x35, 0x73, 0x57, 0x20, 0xb3, 0x79, 0x4c, 0x0e, 0x22, 0xd5, 0xc9,
+ 0x19, 0x94, 0x60, 0xf5, 0xc7, 0xeb, 0xd5, 0xcb, 0x8b, 0x89, 0x64, 0x5d, 0xbb, 0xa7, 0xe4, 0xe3,
+ 0x44, 0x9f, 0x57, 0x61, 0x62, 0x0b, 0xab, 0x4d, 0x70, 0x04, 0x76, 0x16, 0x94, 0xcd, 0x60, 0x21,
+ 0x24, 0xb2, 0x1a, 0xca, 0xa6, 0x54, 0x3e, 0xaa, 0x9e, 0x79, 0xa4, 0xb2, 0x4d, 0xf5, 0xca, 0xb6,
+ 0xc5, 0x78, 0x72, 0x42, 0x9b, 0x5a, 0x8c, 0x27, 0x41, 0x1b, 0x67, 0xf7, 0xfd, 0x0f, 0x2a, 0x68,
+ 0xb4, 0xd4, 0x59, 0x45, 0x07, 0x0d, 0xab, 0xe1, 0xf6, 0xd6, 0xab, 0x9e, 0xc6, 0xfa, 0x73, 0x90,
+ 0xc2, 0x26, 0x5d, 0x63, 0x3f, 0x09, 0x88, 0x4d, 0x7f, 0x8e, 0x95, 0x28, 0x12, 0x05, 0x6b, 0x20,
+ 0xa1, 0xe3, 0x63, 0xf4, 0x35, 0x50, 0x2b, 0x95, 0x4d, 0x36, 0xb9, 0xad, 0x0c, 0x84, 0xb2, 0xc3,
+ 0x3e, 0xec, 0x8a, 0xb5, 0x39, 0x87, 0x06, 0x26, 0xd0, 0x57, 0x20, 0x56, 0xd9, 0x64, 0x05, 0xef,
+ 0xf9, 0x61, 0x68, 0x8c, 0x58, 0x65, 0x73, 0xf6, 0xdf, 0x28, 0x30, 0x1e, 0x68, 0xd5, 0x73, 0x90,
+ 0xa1, 0x0d, 0xc2, 0xe3, 0x8e, 0x1a, 0x81, 0x36, 0xae, 0x73, 0xec, 0x7d, 0xea, 0x3c, 0x5b, 0x80,
+ 0x49, 0xa9, 0x5d, 0x5f, 0x02, 0x5d, 0x6c, 0x62, 0x4a, 0xd0, 0x9f, 0x23, 0x0b, 0xe9, 0xc9, 0x3d,
+ 0x0a, 0xe0, 0xdb, 0xd5, 0xfb, 0x15, 0xad, 0x4a, 0x79, 0x67, 0xb7, 0xbc, 0xaa, 0x29, 0xb9, 0xaf,
+ 0x2b, 0x90, 0x66, 0x65, 0x6b, 0xcd, 0x6e, 0x23, 0xbd, 0x08, 0x4a, 0x81, 0x45, 0xd0, 0x83, 0xe9,
+ 0xad, 0x14, 0xf4, 0x8b, 0xa0, 0x14, 0x87, 0x77, 0xb5, 0x52, 0xd4, 0x97, 0x41, 0x29, 0x31, 0x07,
+ 0x0f, 0xe7, 0x19, 0xa5, 0x94, 0xfb, 0x23, 0x15, 0xa6, 0xc5, 0x32, 0x9a, 0x8f, 0x27, 0xe7, 0x82,
+ 0xef, 0x4d, 0xf9, 0xd4, 0xe5, 0xe5, 0x2b, 0x2b, 0x4b, 0xf8, 0x1f, 0x2f, 0x24, 0x73, 0xc1, 0x57,
+ 0xa8, 0x3c, 0x78, 0x22, 0x97, 0xfb, 0x9d, 0x13, 0xc9, 0xc7, 0x05, 0x86, 0x9e, 0x73, 0x22, 0x81,
+ 0xde, 0x9e, 0x73, 0x22, 0x81, 0xde, 0x9e, 0x73, 0x22, 0x81, 0xde, 0x9e, 0xbd, 0x80, 0x40, 0x6f,
+ 0xcf, 0x39, 0x91, 0x40, 0x6f, 0xcf, 0x39, 0x91, 0x40, 0x6f, 0xef, 0x39, 0x11, 0xd6, 0xdd, 0xf7,
+ 0x9c, 0x48, 0xb0, 0xbf, 0xf7, 0x9c, 0x48, 0xb0, 0xbf, 0xf7, 0x9c, 0x48, 0x3e, 0xee, 0x76, 0xba,
+ 0xa8, 0xff, 0xae, 0x43, 0x10, 0x3f, 0xe8, 0x25, 0xd0, 0x1f, 0x81, 0xb7, 0x60, 0x92, 0x2e, 0x48,
+ 0x94, 0x6c, 0xcb, 0x35, 0x1b, 0x16, 0xea, 0xe8, 0x1f, 0x85, 0x0c, 0x6d, 0xa2, 0xaf, 0x39, 0x61,
+ 0xaf, 0x81, 0xb4, 0x9f, 0x8d, 0xb7, 0x01, 0xe9, 0xdc, 0x1f, 0xc7, 0x61, 0x86, 0x36, 0x54, 0xcc,
+ 0x16, 0x0a, 0x9c, 0x32, 0xba, 0x20, 0xed, 0x29, 0x4d, 0x60, 0xf8, 0xfd, 0x77, 0xe6, 0x69, 0x6b,
+ 0xc1, 0x8b, 0xa6, 0x0b, 0xd2, 0xee, 0x52, 0x50, 0xce, 0x9f, 0x80, 0x2e, 0x48, 0x27, 0x8f, 0x82,
+ 0x72, 0xde, 0x7c, 0xe3, 0xc9, 0xf1, 0x33, 0x48, 0x41, 0xb9, 0x55, 0x2f, 0xca, 0x2e, 0x48, 0xa7,
+ 0x91, 0x82, 0x72, 0x65, 0x2f, 0xde, 0x2e, 0x48, 0x7b, 0x4f, 0x41, 0xb9, 0x35, 0x2f, 0xf2, 0x2e,
+ 0x48, 0xbb, 0x50, 0x41, 0xb9, 0xdb, 0x5e, 0x0c, 0x5e, 0x90, 0xce, 0x2a, 0x05, 0xe5, 0x9e, 0xf7,
+ 0xa2, 0xf1, 0x82, 0x74, 0x6a, 0x29, 0x28, 0xb7, 0xee, 0xc5, 0xe5, 0x82, 0x7c, 0x7e, 0x29, 0x28,
+ 0x78, 0xc7, 0x8f, 0xd0, 0x05, 0xf9, 0x24, 0x53, 0x50, 0xf2, 0x63, 0x7e, 0xac, 0x2e, 0xc8, 0x67,
+ 0x9a, 0x82, 0x92, 0x1b, 0x7e, 0xd4, 0x2e, 0xc8, 0x7b, 0x65, 0x41, 0xc9, 0x4d, 0x3f, 0x7e, 0x17,
+ 0xe4, 0x5d, 0xb3, 0xa0, 0x64, 0xc5, 0x8f, 0xe4, 0x05, 0x79, 0xff, 0x2c, 0x28, 0xb9, 0xe5, 0x2f,
+ 0xa2, 0xff, 0xbe, 0x14, 0x7e, 0xc2, 0x29, 0xa8, 0x9c, 0x14, 0x7e, 0x10, 0x12, 0x7a, 0xd2, 0x40,
+ 0x26, 0xc8, 0xf8, 0x61, 0x97, 0x93, 0xc2, 0x0e, 0x42, 0x42, 0x2e, 0x27, 0x85, 0x1c, 0x84, 0x84,
+ 0x5b, 0x4e, 0x0a, 0x37, 0x08, 0x09, 0xb5, 0x9c, 0x14, 0x6a, 0x10, 0x12, 0x66, 0x39, 0x29, 0xcc,
+ 0x20, 0x24, 0xc4, 0x72, 0x52, 0x88, 0x41, 0x48, 0x78, 0xe5, 0xa4, 0xf0, 0x82, 0x90, 0xd0, 0x3a,
+ 0x2f, 0x87, 0x16, 0x84, 0x85, 0xd5, 0x79, 0x39, 0xac, 0x20, 0x2c, 0xa4, 0x1e, 0x93, 0x43, 0x2a,
+ 0x75, 0xff, 0x9d, 0xf9, 0x04, 0x6e, 0x12, 0xa2, 0xe9, 0xbc, 0x1c, 0x4d, 0x10, 0x16, 0x49, 0xe7,
+ 0xe5, 0x48, 0x82, 0xb0, 0x28, 0x3a, 0x2f, 0x47, 0x11, 0x84, 0x45, 0xd0, 0xdb, 0x72, 0x04, 0xf9,
+ 0x67, 0x7c, 0x72, 0xd2, 0x96, 0x62, 0x54, 0x04, 0xa9, 0x43, 0x44, 0x90, 0x3a, 0x44, 0x04, 0xa9,
+ 0x43, 0x44, 0x90, 0x3a, 0x44, 0x04, 0xa9, 0x43, 0x44, 0x90, 0x3a, 0x44, 0x04, 0xa9, 0x43, 0x44,
+ 0x90, 0x3a, 0x4c, 0x04, 0xa9, 0x43, 0x45, 0x90, 0xda, 0x2f, 0x82, 0xce, 0xcb, 0x27, 0x1e, 0x20,
+ 0x6c, 0x40, 0x3a, 0x2f, 0x6f, 0x7d, 0x46, 0x87, 0x90, 0x3a, 0x54, 0x08, 0xa9, 0xfd, 0x42, 0xe8,
+ 0xf7, 0x55, 0x98, 0x0e, 0x84, 0x10, 0xdb, 0x1f, 0xfa, 0xa0, 0x46, 0xa0, 0x6b, 0x43, 0x1c, 0xb0,
+ 0x08, 0x8b, 0xa9, 0x6b, 0x43, 0x6c, 0x52, 0x0f, 0x8a, 0xb3, 0xde, 0x51, 0xa8, 0x3c, 0xc4, 0x28,
+ 0xb4, 0xe6, 0xc5, 0xd0, 0xb5, 0x21, 0x0e, 0x5e, 0xf4, 0xc6, 0xde, 0x8d, 0x41, 0x83, 0xc0, 0xf3,
+ 0x43, 0x0d, 0x02, 0xeb, 0x43, 0x0d, 0x02, 0x77, 0x7c, 0x0f, 0xfe, 0x62, 0x0c, 0x4e, 0xf9, 0x1e,
+ 0xa4, 0x9f, 0xc8, 0x2f, 0x6b, 0xe5, 0x84, 0x2d, 0x2a, 0x9d, 0x6f, 0xdb, 0x08, 0x6e, 0x8c, 0xad,
+ 0xd7, 0xf5, 0xed, 0xe0, 0x66, 0x55, 0xfe, 0xa4, 0x1b, 0x38, 0x82, 0xc7, 0xd9, 0x62, 0xe8, 0x79,
+ 0x50, 0xd7, 0xeb, 0x0e, 0x19, 0x2d, 0xc2, 0x6e, 0x5b, 0x32, 0x70, 0xb7, 0x6e, 0xc0, 0x28, 0x11,
+ 0x77, 0x88, 0x7b, 0xdf, 0xcf, 0x8d, 0x57, 0x0d, 0xc6, 0x94, 0x7b, 0x5b, 0x81, 0xb3, 0x81, 0x50,
+ 0xfe, 0x60, 0xb6, 0x0c, 0x6e, 0x0d, 0xb5, 0x65, 0x10, 0x48, 0x10, 0x7f, 0xfb, 0xe0, 0x89, 0xde,
+ 0x9d, 0x6a, 0x31, 0x4b, 0xe4, 0xad, 0x84, 0xbf, 0x00, 0x13, 0xfe, 0x13, 0x90, 0x77, 0xb6, 0xab,
+ 0xd1, 0xab, 0x99, 0x61, 0xa9, 0x79, 0x55, 0x5a, 0x45, 0x1b, 0x08, 0xf3, 0xb2, 0x35, 0x97, 0x87,
+ 0xc9, 0x4a, 0xf0, 0x2b, 0x51, 0x51, 0x8b, 0x11, 0x49, 0x5c, 0x9a, 0xdf, 0xfb, 0xd2, 0xfc, 0x48,
+ 0xee, 0x29, 0xc8, 0x88, 0xdf, 0x7a, 0x92, 0x80, 0x29, 0x0e, 0xcc, 0xc7, 0xbf, 0x85, 0xa5, 0xff,
+ 0xbe, 0x02, 0xa7, 0x45, 0xf1, 0x17, 0x1a, 0xee, 0xd1, 0xba, 0x85, 0x6b, 0xfa, 0x67, 0x20, 0x89,
+ 0x98, 0xe3, 0xd8, 0x8f, 0xe4, 0xb0, 0xf7, 0xc8, 0x50, 0xf1, 0x25, 0xf2, 0xaf, 0xe1, 0x41, 0xa4,
+ 0x35, 0x0e, 0x7e, 0xdb, 0xe5, 0xd9, 0xc7, 0x21, 0x41, 0xf9, 0x83, 0x7a, 0x8d, 0x4b, 0x7a, 0xfd,
+ 0x7a, 0x88, 0x5e, 0x24, 0x8e, 0xf4, 0x3b, 0x01, 0xbd, 0x84, 0xd7, 0xd5, 0x50, 0xf1, 0x25, 0x1e,
+ 0x7c, 0xc5, 0x24, 0xae, 0xff, 0x48, 0x44, 0x45, 0x2b, 0xb9, 0x00, 0xc9, 0xb2, 0x2c, 0x13, 0xae,
+ 0xe7, 0x2a, 0xc4, 0x2b, 0x76, 0x9d, 0xfc, 0x7c, 0x0f, 0xf9, 0x21, 0x6c, 0x66, 0x64, 0xf6, 0xab,
+ 0xd8, 0x17, 0x20, 0x59, 0x3a, 0x6a, 0x34, 0xeb, 0x1d, 0x64, 0xb1, 0x3d, 0x7b, 0xb6, 0x84, 0x8e,
+ 0x31, 0x86, 0xd7, 0x97, 0x2b, 0xc1, 0x54, 0xc5, 0xb6, 0x8a, 0xc7, 0xae, 0x38, 0x6e, 0x2c, 0x49,
+ 0x29, 0xc2, 0xf6, 0x7c, 0xc8, 0xb7, 0x44, 0xb0, 0x40, 0x31, 0xf1, 0xed, 0x77, 0xe6, 0x95, 0x5d,
+ 0x6f, 0xfd, 0x7c, 0x13, 0x1e, 0x62, 0xe9, 0xd3, 0x43, 0xb5, 0x1c, 0x45, 0x95, 0x62, 0xfb, 0xd4,
+ 0x02, 0xdd, 0x3a, 0xa6, 0xb3, 0x42, 0xe9, 0x1e, 0x4c, 0x33, 0x5c, 0x14, 0x0d, 0xd4, 0x4c, 0x3d,
+ 0x91, 0x66, 0xa1, 0x74, 0x4b, 0x51, 0x74, 0x92, 0x66, 0x8f, 0x41, 0xca, 0xeb, 0x13, 0xa2, 0x41,
+ 0xcc, 0x94, 0xe5, 0xc5, 0x1c, 0xa4, 0x85, 0x84, 0xd5, 0x13, 0xa0, 0x14, 0xb4, 0x11, 0xfc, 0x5f,
+ 0x51, 0x53, 0xf0, 0x7f, 0x25, 0x2d, 0xb6, 0xf8, 0x38, 0x4c, 0x4a, 0xeb, 0x97, 0xb8, 0x67, 0x55,
+ 0x03, 0xfc, 0x5f, 0x59, 0x4b, 0xcf, 0xc6, 0x3f, 0xfd, 0x6b, 0x73, 0x23, 0x8b, 0xb7, 0x40, 0xef,
+ 0x5d, 0xe9, 0xd4, 0x47, 0x21, 0x56, 0xc0, 0x94, 0x0f, 0x41, 0xac, 0x58, 0xd4, 0x94, 0xd9, 0xc9,
+ 0xbf, 0xfa, 0xf9, 0xb3, 0xe9, 0x22, 0xf9, 0x4a, 0xf7, 0x5d, 0xe4, 0x16, 0x8b, 0x0c, 0xfc, 0x2c,
+ 0x9c, 0x0e, 0x5d, 0x29, 0xc5, 0xf8, 0x52, 0x89, 0xe2, 0x57, 0x57, 0x7b, 0xf0, 0xab, 0xab, 0x04,
+ 0xaf, 0xe4, 0xf9, 0x8e, 0x73, 0x41, 0x0f, 0x59, 0x97, 0xcc, 0xd6, 0x85, 0x1d, 0xee, 0x42, 0xfe,
+ 0x59, 0x26, 0x5b, 0x0c, 0x95, 0x45, 0x11, 0x3b, 0xd6, 0xc5, 0x7c, 0x89, 0xe1, 0x4b, 0xa1, 0xf8,
+ 0x03, 0x69, 0x5b, 0x35, 0x38, 0x43, 0x30, 0x92, 0x92, 0xa7, 0xf0, 0x6a, 0x28, 0xc9, 0x91, 0x70,
+ 0xd8, 0x7d, 0xd5, 0x53, 0xb8, 0x1c, 0x2a, 0xdb, 0x88, 0x38, 0xf4, 0x55, 0xce, 0x5f, 0x64, 0x93,
+ 0x7c, 0xe1, 0xb2, 0x7e, 0x9a, 0xe7, 0x68, 0x60, 0x04, 0x66, 0x06, 0xe2, 0x52, 0xf9, 0x12, 0x03,
+ 0x14, 0xfb, 0x02, 0xfa, 0x5b, 0x89, 0x23, 0xf3, 0xcf, 0x33, 0x92, 0x52, 0x5f, 0x92, 0x08, 0x53,
+ 0x71, 0x78, 0x71, 0xf7, 0xde, 0xbb, 0x73, 0x23, 0xdf, 0x7a, 0x77, 0x6e, 0xe4, 0xbf, 0xbc, 0x3b,
+ 0x37, 0xf2, 0x9d, 0x77, 0xe7, 0x94, 0xef, 0xbf, 0x3b, 0xa7, 0xfc, 0xf0, 0xdd, 0x39, 0xe5, 0x47,
+ 0xef, 0xce, 0x29, 0x6f, 0xde, 0x9f, 0x53, 0xbe, 0x72, 0x7f, 0x4e, 0xf9, 0xea, 0xfd, 0x39, 0xe5,
+ 0x77, 0xef, 0xcf, 0x29, 0x6f, 0xdf, 0x9f, 0x53, 0xee, 0xdd, 0x9f, 0x53, 0xbe, 0x75, 0x7f, 0x4e,
+ 0xf9, 0xce, 0xfd, 0x39, 0xe5, 0xfb, 0xf7, 0xe7, 0x46, 0x7e, 0x78, 0x7f, 0x4e, 0xf9, 0xd1, 0xfd,
+ 0xb9, 0x91, 0x37, 0xbf, 0x3b, 0x37, 0xf2, 0xd6, 0x77, 0xe7, 0x46, 0xbe, 0xf2, 0xdd, 0x39, 0x05,
+ 0xfe, 0x70, 0x05, 0xce, 0xb2, 0x6f, 0x92, 0x79, 0x5f, 0xfb, 0xbd, 0xe8, 0x1e, 0x21, 0x52, 0x12,
+ 0x5c, 0xe1, 0xbf, 0x01, 0xe6, 0x35, 0x9c, 0xf0, 0x5b, 0x65, 0xb3, 0x0f, 0xfa, 0x1d, 0xb6, 0xdc,
+ 0xbf, 0x4d, 0xc0, 0x18, 0x5f, 0x0b, 0x0e, 0xfb, 0xa5, 0xf4, 0xab, 0x90, 0x3c, 0x6a, 0x34, 0xcd,
+ 0x4e, 0xc3, 0x3d, 0x66, 0x8b, 0xa0, 0x0f, 0x2f, 0xf9, 0x6a, 0xf3, 0x65, 0xd3, 0xe7, 0xbb, 0x2d,
+ 0xbb, 0xdb, 0x31, 0x3c, 0x51, 0xfd, 0x2c, 0x64, 0x8e, 0x50, 0xe3, 0xf0, 0xc8, 0xad, 0x36, 0xac,
+ 0x6a, 0xad, 0x45, 0x6a, 0xe5, 0x71, 0x03, 0x68, 0xdb, 0xba, 0x55, 0x6a, 0xe1, 0x9b, 0xd5, 0x4d,
+ 0xd7, 0x24, 0xef, 0xe8, 0x19, 0x83, 0x7c, 0x26, 0xbf, 0x76, 0x8c, 0x9c, 0x6e, 0xd3, 0xad, 0xd6,
+ 0xec, 0xae, 0xe5, 0x92, 0x6a, 0x56, 0x35, 0xd2, 0xb4, 0xad, 0x84, 0x9b, 0xf4, 0xc7, 0x60, 0xdc,
+ 0xed, 0x74, 0x51, 0xd5, 0xa9, 0xd9, 0xae, 0xd3, 0x32, 0x2d, 0x52, 0xcd, 0x26, 0x8d, 0x0c, 0x6e,
+ 0xdc, 0x61, 0x6d, 0xe4, 0x47, 0xf6, 0x6b, 0x76, 0x07, 0x91, 0x97, 0xe9, 0x98, 0x41, 0x2f, 0x74,
+ 0x0d, 0xd4, 0x57, 0xd0, 0x31, 0x79, 0x5d, 0x8b, 0x1b, 0xf8, 0xa3, 0xfe, 0x24, 0x8c, 0xd2, 0xbf,
+ 0x92, 0x43, 0x6a, 0x6b, 0xb2, 0x75, 0xed, 0x3d, 0x1a, 0x5d, 0xa2, 0x35, 0x98, 0x80, 0x7e, 0x13,
+ 0xc6, 0x5c, 0xd4, 0xe9, 0x98, 0x0d, 0x8b, 0xbc, 0x3a, 0xa5, 0x97, 0xe7, 0x43, 0xcc, 0xb0, 0x4b,
+ 0x25, 0xc8, 0x6f, 0x02, 0x1b, 0x5c, 0x5e, 0xbf, 0x0a, 0x19, 0x22, 0xb7, 0x5c, 0xa5, 0x7f, 0x49,
+ 0x28, 0xdd, 0x37, 0x9a, 0xd3, 0x54, 0x8e, 0xef, 0x14, 0x70, 0x18, 0xfd, 0x3d, 0xc4, 0x71, 0x72,
+ 0xdb, 0xc7, 0x42, 0x6e, 0x4b, 0x06, 0xde, 0x65, 0x52, 0x34, 0xd2, 0x5b, 0x33, 0x1e, 0xfa, 0x8b,
+ 0x89, 0x9b, 0x90, 0x11, 0xf5, 0xe2, 0x66, 0xa0, 0xc5, 0x0f, 0x31, 0xc3, 0x13, 0xfe, 0x5f, 0x69,
+ 0xe8, 0x63, 0x05, 0xda, 0x9f, 0x8f, 0xdd, 0x50, 0x66, 0xb7, 0x41, 0x93, 0xef, 0x17, 0x42, 0x79,
+ 0x21, 0x48, 0xa9, 0x89, 0x0f, 0x4b, 0xd6, 0xc9, 0x7d, 0xc6, 0xdc, 0x73, 0x30, 0x4a, 0xe3, 0x47,
+ 0x4f, 0xc3, 0x98, 0xff, 0x53, 0x9b, 0x49, 0x88, 0x6f, 0xef, 0x55, 0x76, 0xe8, 0x6f, 0xe6, 0xee,
+ 0x6c, 0x14, 0xb6, 0x77, 0x76, 0xd7, 0x4b, 0x1f, 0xd3, 0x62, 0xfa, 0x24, 0xa4, 0x8b, 0xeb, 0x1b,
+ 0x1b, 0xd5, 0x62, 0x61, 0x7d, 0xa3, 0x7c, 0x57, 0x53, 0x73, 0x73, 0x30, 0x4a, 0xf5, 0x24, 0xbf,
+ 0xfd, 0xd7, 0xb5, 0xac, 0x63, 0x5e, 0x3c, 0x90, 0x8b, 0xdc, 0xd7, 0x74, 0x18, 0x2b, 0x34, 0x9b,
+ 0x9b, 0x66, 0xdb, 0xd1, 0x5f, 0x80, 0x29, 0xfa, 0xab, 0x1c, 0xbb, 0xf6, 0x2a, 0xf9, 0x89, 0x4a,
+ 0x3c, 0x34, 0x28, 0xec, 0xaf, 0x53, 0xf8, 0xcf, 0xcd, 0xc4, 0x97, 0x7a, 0x64, 0xa9, 0x81, 0x7b,
+ 0x39, 0xf4, 0x5d, 0xd0, 0x78, 0xe3, 0x5a, 0xd3, 0x36, 0x5d, 0xcc, 0x1b, 0x63, 0xbf, 0x20, 0xd9,
+ 0x9f, 0x97, 0x8b, 0x52, 0xda, 0x1e, 0x06, 0xfd, 0xa3, 0x90, 0x5c, 0xb7, 0xdc, 0x2b, 0xcb, 0x98,
+ 0x8d, 0xff, 0xe5, 0xa7, 0x5e, 0x36, 0x2e, 0x42, 0x59, 0x3c, 0x04, 0x43, 0x5f, 0x5b, 0xc1, 0xe8,
+ 0xf8, 0x20, 0x34, 0x11, 0xf1, 0xd1, 0xe4, 0x52, 0x7f, 0x0e, 0x52, 0xf8, 0xdd, 0x84, 0xde, 0x3c,
+ 0xc1, 0x0b, 0xd7, 0x1e, 0xb8, 0x27, 0x43, 0xf1, 0x3e, 0x86, 0x13, 0xd0, 0xfb, 0x8f, 0x0e, 0x24,
+ 0x10, 0x14, 0xf0, 0x31, 0x98, 0x60, 0xc7, 0xd3, 0x60, 0xac, 0x2f, 0xc1, 0x8e, 0xa4, 0xc1, 0x8e,
+ 0xa8, 0xc1, 0x8e, 0xa7, 0x41, 0x72, 0x20, 0x81, 0xa8, 0x81, 0x77, 0xad, 0x17, 0x01, 0xd6, 0x1a,
+ 0xaf, 0xa3, 0x3a, 0x55, 0x81, 0xfe, 0x5d, 0xa8, 0x5c, 0x08, 0x83, 0x2f, 0x44, 0x29, 0x04, 0x94,
+ 0x5e, 0x86, 0xf4, 0xce, 0x81, 0x4f, 0x02, 0x3d, 0x79, 0xec, 0xa9, 0x71, 0x20, 0xb1, 0x88, 0x38,
+ 0x4f, 0x15, 0xfa, 0x30, 0xe9, 0xc1, 0xaa, 0x08, 0x4f, 0x23, 0xa0, 0x7c, 0x55, 0x28, 0x49, 0x26,
+ 0x42, 0x15, 0x81, 0x45, 0xc4, 0xe1, 0xc1, 0xb0, 0x68, 0xdb, 0x58, 0x92, 0x8d, 0x4a, 0xf3, 0x21,
+ 0x14, 0x4c, 0x82, 0x0d, 0x86, 0xec, 0x8a, 0x78, 0x84, 0x04, 0x39, 0x06, 0x4f, 0xf4, 0xf7, 0x08,
+ 0x97, 0xe1, 0x1e, 0xe1, 0xd7, 0x62, 0x9e, 0x91, 0xf3, 0xac, 0x98, 0x67, 0x32, 0x32, 0xcf, 0xb8,
+ 0xa8, 0x94, 0x67, 0xbc, 0x59, 0xff, 0x38, 0x4c, 0xf2, 0x36, 0x3c, 0x3c, 0x61, 0x52, 0x8d, 0xfd,
+ 0xe5, 0xbc, 0xfe, 0xa4, 0x4c, 0x92, 0x72, 0xca, 0x78, 0xbd, 0x02, 0x13, 0xbc, 0x69, 0xd3, 0x21,
+ 0x8f, 0x3b, 0xc5, 0xfe, 0x28, 0x4a, 0x7f, 0x46, 0x2a, 0x48, 0x09, 0x25, 0xf4, 0xec, 0x2a, 0xcc,
+ 0x84, 0x8f, 0x46, 0xe2, 0xf0, 0x9b, 0xa2, 0xc3, 0xef, 0x29, 0x71, 0xf8, 0x55, 0xc4, 0xe1, 0xbb,
+ 0x04, 0xa7, 0x43, 0xc7, 0x9e, 0x28, 0x92, 0x98, 0x48, 0x72, 0x0b, 0xc6, 0x03, 0x43, 0x8e, 0x08,
+ 0x4e, 0x84, 0x80, 0x13, 0xbd, 0x60, 0x3f, 0xb4, 0x42, 0x66, 0x8f, 0x00, 0x58, 0x15, 0xc1, 0x1f,
+ 0x85, 0x89, 0xe0, 0x78, 0x23, 0xa2, 0xc7, 0x43, 0xd0, 0xe3, 0x21, 0xe8, 0xf0, 0x7b, 0xc7, 0x43,
+ 0xd0, 0x71, 0x09, 0xbd, 0xd3, 0xf7, 0xde, 0x53, 0x21, 0xe8, 0xa9, 0x10, 0x74, 0xf8, 0xbd, 0xf5,
+ 0x10, 0xb4, 0x2e, 0xa2, 0x9f, 0x81, 0x49, 0x69, 0x88, 0x11, 0xe1, 0x63, 0x21, 0xf0, 0x31, 0x11,
+ 0xfe, 0x2c, 0x68, 0xf2, 0xe0, 0x22, 0xe2, 0x27, 0x43, 0xf0, 0x93, 0x61, 0xb7, 0x0f, 0xd7, 0x7e,
+ 0x34, 0x04, 0x3e, 0x1a, 0x7a, 0xfb, 0x70, 0xbc, 0x16, 0x82, 0xd7, 0x44, 0x7c, 0x1e, 0x32, 0xe2,
+ 0x68, 0x22, 0x62, 0x93, 0x21, 0xd8, 0xa4, 0x6c, 0xf7, 0xc0, 0x60, 0x12, 0x15, 0xe9, 0xa9, 0x3e,
+ 0xe9, 0x12, 0x18, 0x42, 0xa2, 0x48, 0x32, 0x22, 0xc9, 0x27, 0xe0, 0x54, 0xd8, 0x90, 0x11, 0xc2,
+ 0xb1, 0x20, 0x72, 0x4c, 0xe0, 0x1a, 0xd1, 0x2f, 0xf6, 0xcc, 0xb6, 0x54, 0x38, 0xcd, 0xbe, 0x04,
+ 0xd3, 0x21, 0x03, 0x47, 0x08, 0xed, 0x52, 0xb0, 0x1a, 0xcb, 0x0a, 0xb4, 0x64, 0x10, 0x68, 0x58,
+ 0x87, 0xdb, 0x76, 0xc3, 0x72, 0xc5, 0xaa, 0xec, 0xeb, 0xd3, 0x30, 0xc1, 0x86, 0xa7, 0xad, 0x4e,
+ 0x1d, 0x75, 0x50, 0x5d, 0xff, 0x73, 0xfd, 0x6b, 0xa7, 0x4b, 0xbd, 0x83, 0x1a, 0x43, 0x9d, 0xa0,
+ 0x84, 0x7a, 0xa9, 0x6f, 0x09, 0x75, 0x31, 0x9a, 0x3e, 0xaa, 0x92, 0x2a, 0xf5, 0x54, 0x52, 0x4f,
+ 0xf4, 0x27, 0xed, 0x57, 0x50, 0x95, 0x7a, 0x0a, 0xaa, 0xc1, 0x24, 0xa1, 0x75, 0xd5, 0x5a, 0x6f,
+ 0x5d, 0xb5, 0xd0, 0x9f, 0xa5, 0x7f, 0x79, 0xb5, 0xd6, 0x5b, 0x5e, 0x45, 0xf0, 0x84, 0x57, 0x59,
+ 0x6b, 0xbd, 0x55, 0xd6, 0x00, 0x9e, 0xfe, 0xc5, 0xd6, 0x5a, 0x6f, 0xb1, 0x15, 0xc1, 0x13, 0x5e,
+ 0x73, 0xad, 0x87, 0xd4, 0x5c, 0x4f, 0xf6, 0x27, 0x1a, 0x54, 0x7a, 0x6d, 0x84, 0x95, 0x5e, 0x8b,
+ 0x03, 0x94, 0x1a, 0x58, 0x81, 0xad, 0x87, 0x54, 0x60, 0x51, 0x8a, 0xf5, 0x29, 0xc4, 0x36, 0xc2,
+ 0x0a, 0xb1, 0x48, 0xc5, 0xfa, 0xd5, 0x63, 0x3f, 0x27, 0xd7, 0x63, 0x17, 0xfa, 0x33, 0x85, 0x97,
+ 0x65, 0x6b, 0xbd, 0x65, 0xd9, 0x42, 0x54, 0xce, 0x85, 0x55, 0x67, 0x2f, 0xf5, 0xad, 0xce, 0x86,
+ 0x48, 0xe1, 0xa8, 0x22, 0xed, 0xc5, 0x7e, 0x45, 0xda, 0x52, 0x34, 0xf7, 0xe0, 0x5a, 0x6d, 0xaf,
+ 0x4f, 0xad, 0xf6, 0x74, 0x34, 0xf1, 0xcf, 0x4a, 0xb6, 0x9f, 0x95, 0x6c, 0x3f, 0x2b, 0xd9, 0x7e,
+ 0x56, 0xb2, 0xfd, 0xf4, 0x4b, 0xb6, 0x7c, 0xfc, 0x33, 0x5f, 0x9a, 0x57, 0x72, 0xff, 0x59, 0xf5,
+ 0xfe, 0xdc, 0xda, 0x0b, 0x0d, 0xf7, 0x08, 0x0f, 0x6f, 0x9b, 0x90, 0x21, 0x3f, 0xff, 0xdb, 0x32,
+ 0xdb, 0xed, 0x86, 0x75, 0xc8, 0x6a, 0xb6, 0xc5, 0xde, 0xa5, 0x44, 0x06, 0x20, 0x7f, 0x6a, 0x66,
+ 0x93, 0x0a, 0xb3, 0xe9, 0xc6, 0xf2, 0x5b, 0xf4, 0x3b, 0x90, 0x6e, 0x39, 0x87, 0x1e, 0x5b, 0xac,
+ 0x67, 0x22, 0x94, 0xd8, 0xe8, 0x93, 0xfa, 0x64, 0xd0, 0xf2, 0x1a, 0xb0, 0x6a, 0xfb, 0xc7, 0xae,
+ 0xaf, 0x9a, 0x1a, 0xa5, 0x1a, 0xf6, 0x69, 0x50, 0xb5, 0x7d, 0xbf, 0x05, 0x87, 0xad, 0xac, 0x7b,
+ 0xd4, 0x48, 0x17, 0x08, 0x9e, 0x17, 0x60, 0x52, 0xd2, 0x36, 0x24, 0xe7, 0x1f, 0xc0, 0x37, 0x58,
+ 0x31, 0x59, 0xf3, 0xa8, 0x9c, 0x10, 0x03, 0x32, 0xf7, 0x28, 0x8c, 0x07, 0xb8, 0xf5, 0x0c, 0x28,
+ 0x07, 0xec, 0xcb, 0x94, 0xca, 0x41, 0xee, 0x8b, 0x0a, 0xa4, 0xd9, 0x41, 0x82, 0x6d, 0xb3, 0xd1,
+ 0xd1, 0x9f, 0x87, 0x78, 0x93, 0x7f, 0xa1, 0xe9, 0x41, 0xbf, 0x3c, 0x4b, 0x18, 0xf4, 0x35, 0x48,
+ 0x74, 0xbc, 0x2f, 0x3c, 0x3d, 0xd0, 0x37, 0x62, 0x09, 0x3c, 0x77, 0x4f, 0x81, 0x29, 0x76, 0xce,
+ 0xd5, 0x61, 0xc7, 0x9f, 0xcd, 0xf6, 0xec, 0xd7, 0x14, 0x48, 0x79, 0x57, 0xfa, 0x3e, 0x4c, 0x78,
+ 0x17, 0xf4, 0x88, 0x3d, 0x8d, 0xd4, 0xbc, 0x60, 0xe1, 0x1e, 0x8e, 0xa5, 0x90, 0x4f, 0x74, 0x2b,
+ 0x8a, 0xce, 0xc9, 0xc1, 0xc6, 0xd9, 0x02, 0x4c, 0x87, 0x88, 0x9d, 0x64, 0x42, 0xce, 0x9d, 0x83,
+ 0x54, 0xc5, 0x76, 0xe9, 0xef, 0xe6, 0xe8, 0xa7, 0x84, 0x5d, 0x85, 0x62, 0x4c, 0x1b, 0x21, 0xe0,
+ 0xc5, 0x73, 0x30, 0xc6, 0xb2, 0x5f, 0x1f, 0x85, 0xd8, 0x66, 0x41, 0x1b, 0x21, 0xff, 0x17, 0x35,
+ 0x85, 0xfc, 0x5f, 0xd2, 0x62, 0xc5, 0x8d, 0x07, 0xdc, 0x67, 0x1a, 0x09, 0xdb, 0x67, 0xda, 0x1f,
+ 0xa5, 0xe6, 0xf9, 0x93, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5b, 0x72, 0xad, 0xe0, 0xc4, 0x83, 0x00,
+ 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -6450,112 +6560,3 @@ func valueToStringTheproto3(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
-
-func init() {
- proto.RegisterFile("combos/marshaler/theproto3.proto", fileDescriptor_theproto3_2741054169128c6d)
-}
-
-var fileDescriptor_theproto3_2741054169128c6d = []byte{
- // 1610 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x99, 0xcf, 0x6f, 0xdb, 0x46,
- 0x16, 0xc7, 0x35, 0xfa, 0xad, 0xa7, 0x1f, 0xa6, 0x27, 0xd9, 0x85, 0xd6, 0xc0, 0xd2, 0xb2, 0x02,
- 0x24, 0x4a, 0xb0, 0x91, 0xb3, 0x4e, 0xb2, 0x9b, 0xba, 0x69, 0x53, 0x4b, 0xb1, 0x10, 0x37, 0xb6,
- 0xe2, 0x4a, 0x76, 0xdc, 0x22, 0x40, 0x0d, 0xca, 0xa6, 0x25, 0x22, 0x12, 0x69, 0x90, 0xa3, 0xa0,
- 0xbe, 0xe5, 0xcf, 0xe8, 0xad, 0xe8, 0xad, 0xc7, 0x22, 0x87, 0xa2, 0xc7, 0xf6, 0xe6, 0x63, 0x80,
- 0x5e, 0x8a, 0x1e, 0x82, 0x58, 0xbd, 0xe4, 0x98, 0x63, 0x8e, 0xc5, 0xcc, 0x50, 0xd2, 0x48, 0x1c,
- 0x8a, 0x4d, 0x2f, 0xbd, 0xf8, 0x24, 0xce, 0xf3, 0xfb, 0x7e, 0xe6, 0x71, 0x38, 0xf3, 0xf8, 0x05,
- 0x0d, 0x85, 0x03, 0xab, 0xd7, 0xb2, 0x9c, 0xe5, 0x9e, 0x66, 0x3b, 0x1d, 0xad, 0xab, 0xdb, 0xcb,
- 0xa4, 0xa3, 0x1f, 0xdb, 0x16, 0xb1, 0x6e, 0x96, 0xd9, 0x0f, 0x4e, 0x8d, 0x02, 0x0b, 0xd7, 0xdb,
- 0x06, 0xe9, 0xf4, 0x5b, 0xe5, 0x03, 0xab, 0xb7, 0xdc, 0xb6, 0xda, 0xd6, 0x32, 0x8b, 0xb7, 0xfa,
- 0x47, 0x6c, 0xc4, 0x06, 0xec, 0x8a, 0x2b, 0x17, 0xfe, 0xef, 0x9b, 0x4e, 0x74, 0x87, 0x2c, 0xbb,
- 0x33, 0xb7, 0x2c, 0xd2, 0xa1, 0x93, 0xd2, 0x18, 0x17, 0x16, 0x7f, 0x8e, 0x41, 0x62, 0x4b, 0x77,
- 0x1c, 0xad, 0xad, 0x63, 0x0c, 0x51, 0x53, 0xeb, 0xe9, 0x79, 0x54, 0x40, 0xa5, 0x54, 0x83, 0x5d,
- 0xe3, 0xdb, 0x90, 0xec, 0x18, 0x5d, 0xcd, 0x36, 0xc8, 0x49, 0x3e, 0x5c, 0x40, 0xa5, 0xdc, 0xca,
- 0xbf, 0xca, 0xe3, 0xb2, 0x5d, 0x65, 0xf9, 0x41, 0xbf, 0x67, 0xf5, 0xed, 0xc6, 0x28, 0x15, 0x17,
- 0x20, 0xd3, 0xd1, 0x8d, 0x76, 0x87, 0xec, 0x1b, 0xe6, 0xfe, 0x41, 0x2f, 0x1f, 0x29, 0xa0, 0x52,
- 0xb6, 0x01, 0x3c, 0xb6, 0x61, 0x56, 0x7b, 0x74, 0xb2, 0x43, 0x8d, 0x68, 0xf9, 0x68, 0x01, 0x95,
- 0x32, 0x0d, 0x76, 0x8d, 0x15, 0x88, 0x3c, 0xd5, 0x4f, 0xf2, 0xb1, 0x42, 0xa4, 0x14, 0x6d, 0xd0,
- 0x4b, 0x7c, 0x15, 0xe2, 0xa6, 0xee, 0x10, 0xfd, 0x30, 0x1f, 0x2f, 0xa0, 0x52, 0x7a, 0x65, 0x5e,
- 0x98, 0xbc, 0xce, 0xfe, 0xd0, 0x70, 0x13, 0xf0, 0x12, 0x64, 0x6c, 0xdd, 0xe9, 0x77, 0xc9, 0xfe,
- 0x81, 0xd5, 0x37, 0x49, 0x3e, 0x51, 0x40, 0xa5, 0x48, 0x23, 0xcd, 0x63, 0x55, 0x1a, 0xc2, 0x97,
- 0x20, 0x4b, 0xec, 0xbe, 0xbe, 0xef, 0x1c, 0x58, 0xc4, 0xe9, 0x69, 0x66, 0x3e, 0x59, 0x40, 0xa5,
- 0x64, 0x23, 0x43, 0x83, 0x4d, 0x37, 0x86, 0x2f, 0x42, 0xcc, 0x39, 0xb0, 0x6c, 0x3d, 0x9f, 0x2a,
- 0xa0, 0x52, 0xb8, 0xc1, 0x07, 0xf8, 0x03, 0x48, 0x10, 0xdd, 0xb6, 0x35, 0xc3, 0xcc, 0x43, 0x21,
- 0x52, 0x4a, 0xaf, 0x2c, 0x4a, 0x96, 0x61, 0x87, 0x67, 0xac, 0x9b, 0xc4, 0x3e, 0x69, 0x0c, 0xf3,
- 0xf1, 0x6d, 0xc8, 0xb0, 0xbc, 0x95, 0xfd, 0x23, 0x43, 0xef, 0x1e, 0xe6, 0xd3, 0xec, 0x4e, 0x70,
- 0x99, 0x3d, 0x85, 0xba, 0x61, 0x3e, 0x3a, 0x26, 0x75, 0x8d, 0x18, 0xcf, 0xf4, 0x46, 0x9a, 0xe7,
- 0xd5, 0x68, 0x1a, 0xae, 0x8d, 0x64, 0xcf, 0xb4, 0x6e, 0x5f, 0xcf, 0x67, 0xd9, 0xb4, 0x97, 0x24,
- 0xd3, 0x6e, 0xb3, 0xb4, 0xc7, 0x34, 0x8b, 0x4f, 0xed, 0x72, 0x58, 0x64, 0x61, 0x0b, 0x32, 0x62,
- 0x5d, 0xc3, 0x45, 0x46, 0x6c, 0x79, 0xd8, 0x22, 0x5f, 0x81, 0x18, 0x9f, 0x22, 0xec, 0xb7, 0xc6,
- 0xfc, 0xef, 0xab, 0xe1, 0x3b, 0x68, 0x61, 0x1b, 0x94, 0xe9, 0xf9, 0x24, 0xc8, 0xcb, 0x93, 0x48,
- 0x45, 0xbc, 0xd9, 0x75, 0xb3, 0xdf, 0x13, 0x88, 0xc5, 0x7b, 0x10, 0xe7, 0xfb, 0x07, 0xa7, 0x21,
- 0xb1, 0x5b, 0x7f, 0x58, 0x7f, 0xb4, 0x57, 0x57, 0x42, 0x38, 0x09, 0xd1, 0xed, 0xdd, 0x7a, 0x53,
- 0x41, 0x38, 0x0b, 0xa9, 0xe6, 0xe6, 0xda, 0x76, 0x73, 0x67, 0xa3, 0xfa, 0x50, 0x09, 0xe3, 0x39,
- 0x48, 0x57, 0x36, 0x36, 0x37, 0xf7, 0x2b, 0x6b, 0x1b, 0x9b, 0xeb, 0x5f, 0x28, 0x91, 0xa2, 0x0a,
- 0x71, 0x5e, 0x27, 0x7d, 0x76, 0xad, 0xbe, 0x69, 0x9e, 0xb8, 0x5b, 0x98, 0x0f, 0x8a, 0x2f, 0x30,
- 0x24, 0xd6, 0xba, 0xdd, 0x2d, 0xed, 0xd8, 0xc1, 0x7b, 0x30, 0xdf, 0x24, 0xb6, 0x61, 0xb6, 0x77,
- 0xac, 0xfb, 0x56, 0xbf, 0xd5, 0xd5, 0xb7, 0xb4, 0xe3, 0x3c, 0x62, 0x4b, 0x7b, 0x55, 0xb8, 0x6f,
- 0x37, 0xbd, 0xec, 0xc9, 0xe5, 0x0b, 0xec, 0x65, 0xe0, 0x1d, 0x50, 0x86, 0xc1, 0x5a, 0xd7, 0xd2,
- 0x08, 0xe5, 0x86, 0x19, 0xb7, 0x34, 0x83, 0x3b, 0x4c, 0xe5, 0x58, 0x0f, 0x01, 0xdf, 0x85, 0xe4,
- 0x86, 0x49, 0x6e, 0xae, 0x50, 0x5a, 0x84, 0xd1, 0x0a, 0x12, 0xda, 0x30, 0x85, 0x53, 0x46, 0x0a,
- 0x57, 0xfd, 0xbf, 0x5b, 0x54, 0x1d, 0x9d, 0xa5, 0x66, 0x29, 0x63, 0x35, 0x1b, 0xe2, 0x7b, 0x90,
- 0xda, 0x35, 0x86, 0x93, 0xc7, 0x98, 0x7c, 0x49, 0x22, 0x1f, 0xe5, 0x70, 0xfd, 0x58, 0x33, 0x04,
- 0xf0, 0xf9, 0xe3, 0x33, 0x01, 0x42, 0x01, 0x63, 0x0d, 0x05, 0x34, 0x47, 0x15, 0x24, 0x7c, 0x01,
- 0xcd, 0xa9, 0x0a, 0x9a, 0x62, 0x05, 0xcd, 0x51, 0x05, 0xc9, 0x99, 0x00, 0xb1, 0x82, 0xd1, 0x18,
- 0x57, 0x00, 0x6a, 0xc6, 0x57, 0xfa, 0x21, 0x2f, 0x21, 0xc5, 0x08, 0x45, 0x09, 0x61, 0x9c, 0xc4,
- 0x11, 0x82, 0x0a, 0xaf, 0x43, 0xba, 0x79, 0x34, 0x86, 0x80, 0xe7, 0x1c, 0x8f, 0xca, 0x38, 0x9a,
- 0xa2, 0x88, 0xba, 0x51, 0x29, 0xfc, 0x66, 0xd2, 0xb3, 0x4b, 0x11, 0xee, 0x46, 0x50, 0x8d, 0x4b,
- 0xe1, 0x90, 0x4c, 0x40, 0x29, 0x02, 0x45, 0xd4, 0xd1, 0x66, 0x58, 0xb1, 0x2c, 0x9a, 0xe9, 0x76,
- 0xa5, 0x45, 0x09, 0xc2, 0xcd, 0x70, 0x9b, 0xa1, 0x3b, 0x62, 0x4f, 0x84, 0x6d, 0x72, 0x2a, 0xce,
- 0xf9, 0x3f, 0x91, 0x61, 0xce, 0xf0, 0x89, 0x0c, 0xc7, 0xe2, 0x39, 0xab, 0x9c, 0x10, 0xdd, 0xa1,
- 0x9c, 0xb9, 0xc0, 0x73, 0x36, 0x4c, 0x9d, 0x3a, 0x67, 0xc3, 0x30, 0xfe, 0x0c, 0xe6, 0x86, 0x31,
- 0xda, 0x9e, 0x28, 0x54, 0x61, 0xd0, 0x2b, 0x33, 0xa0, 0x6e, 0x26, 0x67, 0x4e, 0xeb, 0x71, 0x1d,
- 0x72, 0xc3, 0xd0, 0x96, 0xc3, 0x6e, 0x77, 0x9e, 0x11, 0x2f, 0xcf, 0x20, 0xf2, 0x44, 0x0e, 0x9c,
- 0x52, 0x2f, 0xdc, 0x87, 0x7f, 0xca, 0xbb, 0x91, 0xd8, 0x7e, 0x53, 0xbc, 0xfd, 0x5e, 0x14, 0xdb,
- 0x2f, 0x12, 0xdb, 0x77, 0x15, 0xfe, 0x21, 0xed, 0x3d, 0x41, 0x90, 0xb0, 0x08, 0xf9, 0x10, 0xb2,
- 0x13, 0x2d, 0x47, 0x14, 0xc7, 0x24, 0xe2, 0x98, 0x57, 0x3c, 0xde, 0x5a, 0x92, 0xb7, 0xc7, 0x84,
- 0x38, 0x22, 0x8a, 0xef, 0x42, 0x6e, 0xb2, 0xdf, 0x88, 0xea, 0xac, 0x44, 0x9d, 0x95, 0xa8, 0xe5,
- 0x73, 0x47, 0x25, 0xea, 0xe8, 0x94, 0xba, 0xe9, 0x3b, 0xf7, 0xbc, 0x44, 0x3d, 0x2f, 0x51, 0xcb,
- 0xe7, 0xc6, 0x12, 0x35, 0x16, 0xd5, 0x1f, 0xc1, 0xdc, 0x54, 0x8b, 0x11, 0xe5, 0x09, 0x89, 0x3c,
- 0x21, 0xca, 0x3f, 0x06, 0x65, 0xba, 0xb9, 0x88, 0xfa, 0x39, 0x89, 0x7e, 0x4e, 0x36, 0xbd, 0xbc,
- 0xfa, 0xb8, 0x44, 0x1e, 0x97, 0x4e, 0x2f, 0xd7, 0x2b, 0x12, 0xbd, 0x22, 0xea, 0x57, 0x21, 0x23,
- 0x76, 0x13, 0x51, 0x9b, 0x94, 0x68, 0x93, 0xd3, 0xeb, 0x3e, 0xd1, 0x4c, 0x82, 0x76, 0x7a, 0xca,
- 0xe7, 0xb8, 0x4c, 0xb4, 0x90, 0x20, 0x48, 0x46, 0x84, 0x3c, 0x86, 0x8b, 0xb2, 0x96, 0x21, 0x61,
- 0x94, 0x44, 0x46, 0x8e, 0x7a, 0xc4, 0xb1, 0xd9, 0xa3, 0xaa, 0x09, 0xe3, 0xb4, 0xf0, 0x04, 0x2e,
- 0x48, 0x1a, 0x87, 0x04, 0x5b, 0x9e, 0x74, 0x63, 0x79, 0x01, 0xcb, 0x9a, 0x80, 0x61, 0xb6, 0xb7,
- 0x2d, 0xc3, 0x24, 0xa2, 0x2b, 0xfb, 0xe1, 0x02, 0xe4, 0xdc, 0xf6, 0xf4, 0xc8, 0x3e, 0xd4, 0x6d,
- 0xfd, 0x10, 0x7f, 0xe9, 0xef, 0x9d, 0x6e, 0x78, 0x9b, 0x9a, 0xab, 0x7a, 0x0f, 0x0b, 0xf5, 0xc4,
- 0xd7, 0x42, 0x2d, 0x07, 0xe3, 0x83, 0x9c, 0x54, 0xd5, 0xe3, 0xa4, 0xae, 0xf8, 0x43, 0xfd, 0x0c,
- 0x55, 0xd5, 0x63, 0xa8, 0x66, 0x43, 0xa4, 0xbe, 0xaa, 0xe6, 0xf5, 0x55, 0x25, 0x7f, 0x8a, 0xbf,
- 0xbd, 0xaa, 0x79, 0xed, 0x55, 0x00, 0x47, 0xee, 0xb2, 0x6a, 0x5e, 0x97, 0x35, 0x83, 0xe3, 0x6f,
- 0xb6, 0x6a, 0x5e, 0xb3, 0x15, 0xc0, 0x91, 0x7b, 0xae, 0x0d, 0x89, 0xe7, 0xba, 0xea, 0x0f, 0x9a,
- 0x65, 0xbd, 0x36, 0x65, 0xd6, 0xeb, 0xda, 0x8c, 0xa2, 0x66, 0x3a, 0xb0, 0x0d, 0x89, 0x03, 0x0b,
- 0x2a, 0xcc, 0xc7, 0x88, 0x6d, 0xca, 0x8c, 0x58, 0x60, 0x61, 0x7e, 0x7e, 0xec, 0x93, 0x69, 0x3f,
- 0x76, 0xd9, 0x9f, 0x24, 0xb7, 0x65, 0x35, 0xaf, 0x2d, 0x2b, 0x05, 0x9d, 0x39, 0x99, 0x3b, 0x7b,
- 0xe2, 0xeb, 0xce, 0xfe, 0xc4, 0x11, 0x0e, 0x32, 0x69, 0x9f, 0xfb, 0x99, 0xb4, 0x72, 0x30, 0x7b,
- 0xb6, 0x57, 0xdb, 0xf5, 0xf1, 0x6a, 0xd7, 0x83, 0xc1, 0xe7, 0x96, 0xed, 0xdc, 0xb2, 0x9d, 0x5b,
- 0xb6, 0x73, 0xcb, 0xf6, 0xf7, 0x5b, 0xb6, 0xd5, 0xe8, 0xd7, 0xdf, 0x2e, 0xa2, 0xe2, 0x2f, 0x11,
- 0xc8, 0xb9, 0x5f, 0x06, 0xf7, 0x0c, 0xd2, 0xa1, 0xed, 0x6d, 0x0b, 0x32, 0xa6, 0xd6, 0xd3, 0xf7,
- 0x7b, 0xda, 0xf1, 0xb1, 0x61, 0xb6, 0x5d, 0xcf, 0x76, 0xcd, 0xfb, 0x29, 0xd1, 0x15, 0x94, 0xeb,
- 0x5a, 0x8f, 0xf6, 0x2a, 0x9a, 0xec, 0xbe, 0x6e, 0xcc, 0x71, 0x04, 0x7f, 0x0a, 0xe9, 0x9e, 0xd3,
- 0x1e, 0xd1, 0xc2, 0x9e, 0x17, 0xe1, 0x14, 0x8d, 0xdf, 0xe9, 0x18, 0x06, 0xbd, 0x51, 0x80, 0x96,
- 0xd6, 0x3a, 0x21, 0xe3, 0xd2, 0x22, 0x41, 0xa5, 0xd1, 0x67, 0x3a, 0x59, 0x5a, 0x6b, 0x1c, 0xa1,
- 0xdb, 0x76, 0xba, 0xf6, 0xa0, 0x4e, 0x37, 0xb1, 0x79, 0xf6, 0x60, 0x6e, 0xaa, 0x5a, 0xc9, 0x99,
- 0xff, 0x0b, 0xcf, 0x86, 0x16, 0x36, 0x5d, 0x79, 0xd0, 0x99, 0x10, 0x37, 0x64, 0xf1, 0xdf, 0x90,
- 0x9d, 0x60, 0xe3, 0x0c, 0xa0, 0x23, 0x26, 0x45, 0x0d, 0x74, 0x54, 0xfc, 0x06, 0x41, 0x9a, 0xf6,
- 0xc9, 0xff, 0xae, 0xdc, 0xd9, 0xd6, 0x0c, 0x1b, 0x3f, 0x80, 0x68, 0x57, 0x3f, 0x22, 0x2c, 0x21,
- 0x53, 0xb9, 0x75, 0xfa, 0x6a, 0x31, 0xf4, 0xdb, 0xab, 0xc5, 0xff, 0x04, 0xfc, 0x97, 0xa0, 0xef,
- 0x10, 0xab, 0x57, 0x76, 0x39, 0x0d, 0x46, 0xc0, 0x35, 0x88, 0xd9, 0x46, 0xbb, 0x43, 0x78, 0x49,
- 0x95, 0x1b, 0xef, 0x8d, 0xe1, 0xf2, 0xe2, 0x29, 0x82, 0xf9, 0xaa, 0x65, 0x12, 0xcd, 0x30, 0x1d,
- 0xfe, 0xb5, 0x96, 0xbe, 0x21, 0x5f, 0x20, 0x48, 0x8d, 0x46, 0xb8, 0x05, 0xb9, 0xd1, 0x80, 0x7d,
- 0x04, 0x77, 0x77, 0xea, 0xaa, 0xb0, 0xc2, 0x1e, 0x46, 0x59, 0x72, 0xc5, 0xc4, 0xee, 0x3b, 0x79,
- 0x32, 0xb8, 0xb0, 0x06, 0x17, 0x24, 0x69, 0xef, 0xf3, 0x42, 0x2e, 0x2e, 0x41, 0xaa, 0x6e, 0x91,
- 0x6d, 0xed, 0xe0, 0x29, 0xfb, 0xe4, 0x3c, 0xfe, 0x9f, 0x45, 0x25, 0xac, 0x84, 0x98, 0xf8, 0xda,
- 0x12, 0x24, 0xdc, 0xd3, 0x8f, 0xe3, 0x10, 0xde, 0x5a, 0x53, 0x42, 0xec, 0xb7, 0xa2, 0x20, 0xf6,
- 0x5b, 0x55, 0xc2, 0x95, 0xcd, 0xd3, 0x33, 0x35, 0xf4, 0xf2, 0x4c, 0x0d, 0xfd, 0x7a, 0xa6, 0x86,
- 0x5e, 0x9f, 0xa9, 0xe8, 0xcd, 0x99, 0x8a, 0xde, 0x9e, 0xa9, 0xe8, 0xdd, 0x99, 0x8a, 0x9e, 0x0f,
- 0x54, 0xf4, 0xdd, 0x40, 0x45, 0xdf, 0x0f, 0x54, 0xf4, 0xe3, 0x40, 0x45, 0x3f, 0x0d, 0x54, 0x74,
- 0x3a, 0x50, 0xd1, 0xcb, 0x81, 0x1a, 0x7a, 0x3d, 0x50, 0xd1, 0x9b, 0x81, 0x1a, 0x7a, 0x3b, 0x50,
- 0xd1, 0xbb, 0x81, 0x1a, 0x7a, 0xfe, 0xbb, 0x1a, 0x6a, 0xc5, 0xf9, 0xf2, 0xfc, 0x11, 0x00, 0x00,
- 0xff, 0xff, 0x63, 0x09, 0xf8, 0x62, 0x65, 0x1a, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.pb.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.pb.go
index dedc64836b..d340da09fb 100644
--- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.pb.go
@@ -3,25 +3,23 @@
package theproto3
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import both "github.com/gogo/protobuf/test/combos/both"
-
-import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strconv "strconv"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ both "github.com/gogo/protobuf/test/combos/both"
+ github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strconv "strconv"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -47,6 +45,7 @@ var MapEnum_name = map[int32]string{
1: "MB",
2: "MC",
}
+
var MapEnum_value = map[string]int32{
"MA": 0,
"MB": 1,
@@ -54,7 +53,7 @@ var MapEnum_value = map[string]int32{
}
func (MapEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_637a0f64ba0c048e, []int{0}
+ return fileDescriptor_15030c5e29146445, []int{0}
}
type Message_Humour int32
@@ -72,6 +71,7 @@ var Message_Humour_name = map[int32]string{
2: "SLAPSTICK",
3: "BILL_BAILEY",
}
+
var Message_Humour_value = map[string]int32{
"UNKNOWN": 0,
"PUNS": 1,
@@ -80,7 +80,7 @@ var Message_Humour_value = map[string]int32{
}
func (Message_Humour) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_637a0f64ba0c048e, []int{0, 0}
+ return fileDescriptor_15030c5e29146445, []int{0, 0}
}
type Message struct {
@@ -104,7 +104,7 @@ type Message struct {
func (m *Message) Reset() { *m = Message{} }
func (*Message) ProtoMessage() {}
func (*Message) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_637a0f64ba0c048e, []int{0}
+ return fileDescriptor_15030c5e29146445, []int{0}
}
func (m *Message) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Message.Unmarshal(m, b)
@@ -112,8 +112,8 @@ func (m *Message) XXX_Unmarshal(b []byte) error {
func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Message.Marshal(b, m, deterministic)
}
-func (dst *Message) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Message.Merge(dst, src)
+func (m *Message) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Message.Merge(m, src)
}
func (m *Message) XXX_Size() int {
return xxx_messageInfo_Message.Size(m)
@@ -134,7 +134,7 @@ type Nested struct {
func (m *Nested) Reset() { *m = Nested{} }
func (*Nested) ProtoMessage() {}
func (*Nested) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_637a0f64ba0c048e, []int{1}
+ return fileDescriptor_15030c5e29146445, []int{1}
}
func (m *Nested) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Nested.Unmarshal(m, b)
@@ -142,8 +142,8 @@ func (m *Nested) XXX_Unmarshal(b []byte) error {
func (m *Nested) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Nested.Marshal(b, m, deterministic)
}
-func (dst *Nested) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Nested.Merge(dst, src)
+func (m *Nested) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Nested.Merge(m, src)
}
func (m *Nested) XXX_Size() int {
return xxx_messageInfo_Nested.Size(m)
@@ -180,7 +180,7 @@ type AllMaps struct {
func (m *AllMaps) Reset() { *m = AllMaps{} }
func (*AllMaps) ProtoMessage() {}
func (*AllMaps) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_637a0f64ba0c048e, []int{2}
+ return fileDescriptor_15030c5e29146445, []int{2}
}
func (m *AllMaps) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AllMaps.Unmarshal(m, b)
@@ -188,8 +188,8 @@ func (m *AllMaps) XXX_Unmarshal(b []byte) error {
func (m *AllMaps) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AllMaps.Marshal(b, m, deterministic)
}
-func (dst *AllMaps) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllMaps.Merge(dst, src)
+func (m *AllMaps) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllMaps.Merge(m, src)
}
func (m *AllMaps) XXX_Size() int {
return xxx_messageInfo_AllMaps.Size(m)
@@ -226,7 +226,7 @@ type AllMapsOrdered struct {
func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} }
func (*AllMapsOrdered) ProtoMessage() {}
func (*AllMapsOrdered) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_637a0f64ba0c048e, []int{3}
+ return fileDescriptor_15030c5e29146445, []int{3}
}
func (m *AllMapsOrdered) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AllMapsOrdered.Unmarshal(m, b)
@@ -234,8 +234,8 @@ func (m *AllMapsOrdered) XXX_Unmarshal(b []byte) error {
func (m *AllMapsOrdered) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AllMapsOrdered.Marshal(b, m, deterministic)
}
-func (dst *AllMapsOrdered) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllMapsOrdered.Merge(dst, src)
+func (m *AllMapsOrdered) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllMapsOrdered.Merge(m, src)
}
func (m *AllMapsOrdered) XXX_Size() int {
return xxx_messageInfo_AllMapsOrdered.Size(m)
@@ -258,7 +258,7 @@ type MessageWithMap struct {
func (m *MessageWithMap) Reset() { *m = MessageWithMap{} }
func (*MessageWithMap) ProtoMessage() {}
func (*MessageWithMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_637a0f64ba0c048e, []int{4}
+ return fileDescriptor_15030c5e29146445, []int{4}
}
func (m *MessageWithMap) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MessageWithMap.Unmarshal(m, b)
@@ -266,8 +266,8 @@ func (m *MessageWithMap) XXX_Unmarshal(b []byte) error {
func (m *MessageWithMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MessageWithMap.Marshal(b, m, deterministic)
}
-func (dst *MessageWithMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MessageWithMap.Merge(dst, src)
+func (m *MessageWithMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MessageWithMap.Merge(m, src)
}
func (m *MessageWithMap) XXX_Size() int {
return xxx_messageInfo_MessageWithMap.Size(m)
@@ -288,7 +288,7 @@ type FloatingPoint struct {
func (m *FloatingPoint) Reset() { *m = FloatingPoint{} }
func (*FloatingPoint) ProtoMessage() {}
func (*FloatingPoint) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_637a0f64ba0c048e, []int{5}
+ return fileDescriptor_15030c5e29146445, []int{5}
}
func (m *FloatingPoint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FloatingPoint.Unmarshal(m, b)
@@ -296,8 +296,8 @@ func (m *FloatingPoint) XXX_Unmarshal(b []byte) error {
func (m *FloatingPoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FloatingPoint.Marshal(b, m, deterministic)
}
-func (dst *FloatingPoint) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FloatingPoint.Merge(dst, src)
+func (m *FloatingPoint) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FloatingPoint.Merge(m, src)
}
func (m *FloatingPoint) XXX_Size() int {
return xxx_messageInfo_FloatingPoint.Size(m)
@@ -319,7 +319,7 @@ type Uint128Pair struct {
func (m *Uint128Pair) Reset() { *m = Uint128Pair{} }
func (*Uint128Pair) ProtoMessage() {}
func (*Uint128Pair) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_637a0f64ba0c048e, []int{6}
+ return fileDescriptor_15030c5e29146445, []int{6}
}
func (m *Uint128Pair) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Uint128Pair.Unmarshal(m, b)
@@ -327,8 +327,8 @@ func (m *Uint128Pair) XXX_Unmarshal(b []byte) error {
func (m *Uint128Pair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Uint128Pair.Marshal(b, m, deterministic)
}
-func (dst *Uint128Pair) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Uint128Pair.Merge(dst, src)
+func (m *Uint128Pair) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Uint128Pair.Merge(m, src)
}
func (m *Uint128Pair) XXX_Size() int {
return xxx_messageInfo_Uint128Pair.Size(m)
@@ -348,7 +348,7 @@ type ContainsNestedMap struct {
func (m *ContainsNestedMap) Reset() { *m = ContainsNestedMap{} }
func (*ContainsNestedMap) ProtoMessage() {}
func (*ContainsNestedMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_637a0f64ba0c048e, []int{7}
+ return fileDescriptor_15030c5e29146445, []int{7}
}
func (m *ContainsNestedMap) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ContainsNestedMap.Unmarshal(m, b)
@@ -356,8 +356,8 @@ func (m *ContainsNestedMap) XXX_Unmarshal(b []byte) error {
func (m *ContainsNestedMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ContainsNestedMap.Marshal(b, m, deterministic)
}
-func (dst *ContainsNestedMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ContainsNestedMap.Merge(dst, src)
+func (m *ContainsNestedMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ContainsNestedMap.Merge(m, src)
}
func (m *ContainsNestedMap) XXX_Size() int {
return xxx_messageInfo_ContainsNestedMap.Size(m)
@@ -378,7 +378,7 @@ type ContainsNestedMap_NestedMap struct {
func (m *ContainsNestedMap_NestedMap) Reset() { *m = ContainsNestedMap_NestedMap{} }
func (*ContainsNestedMap_NestedMap) ProtoMessage() {}
func (*ContainsNestedMap_NestedMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_637a0f64ba0c048e, []int{7, 0}
+ return fileDescriptor_15030c5e29146445, []int{7, 0}
}
func (m *ContainsNestedMap_NestedMap) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ContainsNestedMap_NestedMap.Unmarshal(m, b)
@@ -386,8 +386,8 @@ func (m *ContainsNestedMap_NestedMap) XXX_Unmarshal(b []byte) error {
func (m *ContainsNestedMap_NestedMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ContainsNestedMap_NestedMap.Marshal(b, m, deterministic)
}
-func (dst *ContainsNestedMap_NestedMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ContainsNestedMap_NestedMap.Merge(dst, src)
+func (m *ContainsNestedMap_NestedMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ContainsNestedMap_NestedMap.Merge(m, src)
}
func (m *ContainsNestedMap_NestedMap) XXX_Size() int {
return xxx_messageInfo_ContainsNestedMap_NestedMap.Size(m)
@@ -408,7 +408,7 @@ type NotPacked struct {
func (m *NotPacked) Reset() { *m = NotPacked{} }
func (*NotPacked) ProtoMessage() {}
func (*NotPacked) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_637a0f64ba0c048e, []int{8}
+ return fileDescriptor_15030c5e29146445, []int{8}
}
func (m *NotPacked) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NotPacked.Unmarshal(m, b)
@@ -416,8 +416,8 @@ func (m *NotPacked) XXX_Unmarshal(b []byte) error {
func (m *NotPacked) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NotPacked.Marshal(b, m, deterministic)
}
-func (dst *NotPacked) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NotPacked.Merge(dst, src)
+func (m *NotPacked) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NotPacked.Merge(m, src)
}
func (m *NotPacked) XXX_Size() int {
return xxx_messageInfo_NotPacked.Size(m)
@@ -429,6 +429,8 @@ func (m *NotPacked) XXX_DiscardUnknown() {
var xxx_messageInfo_NotPacked proto.InternalMessageInfo
func init() {
+ proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value)
+ proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value)
proto.RegisterType((*Message)(nil), "theproto3.Message")
proto.RegisterMapType((map[int64]*both.NinOptEnum)(nil), "theproto3.Message.Proto2ValueEntry")
proto.RegisterMapType((map[int64]*Nested)(nil), "theproto3.Message.TerrainEntry")
@@ -479,9 +481,115 @@ func init() {
proto.RegisterType((*ContainsNestedMap_NestedMap)(nil), "theproto3.ContainsNestedMap.NestedMap")
proto.RegisterMapType((map[string]float64)(nil), "theproto3.ContainsNestedMap.NestedMap.NestedMapFieldEntry")
proto.RegisterType((*NotPacked)(nil), "theproto3.NotPacked")
- proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value)
- proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value)
}
+
+func init() { proto.RegisterFile("combos/neither/theproto3.proto", fileDescriptor_15030c5e29146445) }
+
+var fileDescriptor_15030c5e29146445 = []byte{
+ // 1609 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x99, 0xcf, 0x6f, 0xdb, 0x46,
+ 0x16, 0xc7, 0x35, 0xfa, 0xad, 0xa7, 0x1f, 0xa6, 0x27, 0xd9, 0x85, 0xd6, 0xc0, 0xd2, 0xb2, 0x02,
+ 0x24, 0x4a, 0xb0, 0x91, 0xb3, 0x4e, 0xb2, 0x9b, 0xba, 0x69, 0x53, 0x4b, 0xb1, 0x10, 0x37, 0xb6,
+ 0xe2, 0x4a, 0x76, 0xdc, 0x22, 0x40, 0x0d, 0xca, 0xa6, 0x25, 0x22, 0x12, 0x69, 0x88, 0xa3, 0xa0,
+ 0xbe, 0xe5, 0xcf, 0xe8, 0xad, 0xe8, 0xad, 0xc7, 0x22, 0x87, 0xa2, 0xc7, 0xf6, 0xe6, 0x63, 0x80,
+ 0x5e, 0x8a, 0x1e, 0x82, 0x58, 0xbd, 0xe4, 0x98, 0x63, 0x8e, 0xc5, 0xcc, 0x50, 0xd2, 0x88, 0x1c,
+ 0x8a, 0x4d, 0x2f, 0xbd, 0xf8, 0x24, 0xce, 0xf3, 0xfb, 0x7e, 0xe6, 0x71, 0x38, 0xf3, 0xf8, 0x05,
+ 0x0d, 0xea, 0x81, 0xd5, 0x6b, 0x59, 0xf6, 0xb2, 0xa9, 0x1b, 0xa4, 0xa3, 0xf7, 0x97, 0x49, 0x47,
+ 0x3f, 0xee, 0x5b, 0xc4, 0xba, 0x59, 0x66, 0x3f, 0x38, 0x35, 0x0e, 0x2c, 0x5c, 0x6f, 0x1b, 0xa4,
+ 0x33, 0x68, 0x95, 0x0f, 0xac, 0xde, 0x72, 0xdb, 0x6a, 0x5b, 0xcb, 0x2c, 0xde, 0x1a, 0x1c, 0xb1,
+ 0x11, 0x1b, 0xb0, 0x2b, 0xae, 0x5c, 0xf8, 0xbf, 0x6f, 0x3a, 0xd1, 0x6d, 0xb2, 0xec, 0xcc, 0xdb,
+ 0xb2, 0x48, 0x87, 0x4e, 0x4a, 0x63, 0x5c, 0x58, 0xfc, 0x39, 0x06, 0x89, 0x2d, 0xdd, 0xb6, 0xb5,
+ 0xb6, 0x8e, 0x31, 0x44, 0x4d, 0xad, 0xa7, 0xe7, 0x51, 0x01, 0x95, 0x52, 0x0d, 0x76, 0x8d, 0x6f,
+ 0x43, 0xb2, 0x63, 0x74, 0xb5, 0xbe, 0x41, 0x4e, 0xf2, 0xe1, 0x02, 0x2a, 0xe5, 0x56, 0xfe, 0x55,
+ 0x9e, 0x94, 0xed, 0x28, 0xcb, 0x0f, 0x06, 0x3d, 0x6b, 0xd0, 0x6f, 0x8c, 0x53, 0x71, 0x01, 0x32,
+ 0x1d, 0xdd, 0x68, 0x77, 0xc8, 0xbe, 0x61, 0xee, 0x1f, 0xf4, 0xf2, 0x91, 0x02, 0x2a, 0x65, 0x1b,
+ 0xc0, 0x63, 0x1b, 0x66, 0xb5, 0x47, 0x27, 0x3b, 0xd4, 0x88, 0x96, 0x8f, 0x16, 0x50, 0x29, 0xd3,
+ 0x60, 0xd7, 0x78, 0x09, 0x32, 0x7d, 0xdd, 0x1e, 0x74, 0xc9, 0xfe, 0x81, 0x35, 0x30, 0x49, 0x3e,
+ 0x51, 0x40, 0xa5, 0x48, 0x23, 0xcd, 0x63, 0x55, 0x1a, 0xc2, 0x97, 0x20, 0x4b, 0xfa, 0x03, 0x7d,
+ 0xdf, 0x3e, 0xb0, 0x88, 0xdd, 0xd3, 0xcc, 0x7c, 0xb2, 0x80, 0x4a, 0xc9, 0x46, 0x86, 0x06, 0x9b,
+ 0x4e, 0x0c, 0x5f, 0x84, 0x98, 0x7d, 0x60, 0xf5, 0xf5, 0x7c, 0xaa, 0x80, 0x4a, 0xe1, 0x06, 0x1f,
+ 0x60, 0x05, 0x22, 0x4f, 0xf5, 0x93, 0x7c, 0xac, 0x10, 0x29, 0x45, 0x1b, 0xf4, 0x12, 0x5f, 0x85,
+ 0xb8, 0xa9, 0xdb, 0x44, 0x3f, 0xcc, 0xc7, 0x0b, 0xa8, 0x94, 0x5e, 0x99, 0x17, 0x6e, 0xad, 0xce,
+ 0xfe, 0xd0, 0x70, 0x12, 0xf0, 0x07, 0x90, 0x20, 0x7a, 0xbf, 0xaf, 0x19, 0x66, 0x1e, 0x0a, 0x91,
+ 0x52, 0x7a, 0x65, 0x51, 0xb2, 0x0c, 0x3b, 0x3c, 0x63, 0xdd, 0x24, 0xfd, 0x93, 0xc6, 0x28, 0x1f,
+ 0xdf, 0x86, 0x0c, 0xcb, 0x5b, 0xd9, 0x3f, 0x32, 0xf4, 0xee, 0x61, 0x3e, 0xcd, 0xe6, 0xc2, 0x65,
+ 0xf6, 0x14, 0xea, 0x86, 0xf9, 0xe8, 0x98, 0xd4, 0x35, 0x62, 0x3c, 0xd3, 0x1b, 0x69, 0x9e, 0x57,
+ 0xa3, 0x69, 0xb8, 0x36, 0x96, 0x3d, 0xd3, 0xba, 0x03, 0x3d, 0x9f, 0x65, 0xd3, 0x5e, 0x92, 0x4c,
+ 0xbb, 0xcd, 0xd2, 0x1e, 0xd3, 0x2c, 0x3e, 0xb5, 0xc3, 0x61, 0x91, 0x85, 0x2d, 0xc8, 0x88, 0x75,
+ 0x8d, 0x96, 0x01, 0xb1, 0xb5, 0x65, 0xcb, 0x70, 0x05, 0x62, 0x7c, 0x8a, 0xb0, 0xdf, 0x2a, 0xf0,
+ 0xbf, 0xaf, 0x86, 0xef, 0xa0, 0x85, 0x6d, 0x50, 0xdc, 0xf3, 0x49, 0x90, 0x97, 0xa7, 0x91, 0x8a,
+ 0x78, 0xb3, 0xeb, 0xe6, 0xa0, 0x27, 0x10, 0x8b, 0xf7, 0x20, 0xce, 0xf7, 0x0f, 0x4e, 0x43, 0x62,
+ 0xb7, 0xfe, 0xb0, 0xfe, 0x68, 0xaf, 0xae, 0x84, 0x70, 0x12, 0xa2, 0xdb, 0xbb, 0xf5, 0xa6, 0x82,
+ 0x70, 0x16, 0x52, 0xcd, 0xcd, 0xb5, 0xed, 0xe6, 0xce, 0x46, 0xf5, 0xa1, 0x12, 0xc6, 0x73, 0x90,
+ 0xae, 0x6c, 0x6c, 0x6e, 0xee, 0x57, 0xd6, 0x36, 0x36, 0xd7, 0xbf, 0x50, 0x22, 0x45, 0x15, 0xe2,
+ 0xbc, 0x4e, 0xfa, 0xe0, 0x5b, 0x03, 0xd3, 0x3c, 0x71, 0xb6, 0x30, 0x1f, 0x14, 0x5f, 0x60, 0x48,
+ 0xac, 0x75, 0xbb, 0x5b, 0xda, 0xb1, 0x8d, 0xf7, 0x60, 0xbe, 0x49, 0xfa, 0x86, 0xd9, 0xde, 0xb1,
+ 0xee, 0x5b, 0x83, 0x56, 0x57, 0xdf, 0xd2, 0x8e, 0xf3, 0x88, 0x2d, 0xed, 0x55, 0xe1, 0xbe, 0x9d,
+ 0xf4, 0xb2, 0x27, 0x97, 0x2f, 0xb0, 0x97, 0x81, 0x77, 0x40, 0x19, 0x05, 0x6b, 0x5d, 0x4b, 0x23,
+ 0x94, 0x1b, 0x66, 0xdc, 0xd2, 0x0c, 0xee, 0x28, 0x95, 0x63, 0x3d, 0x04, 0x7c, 0x17, 0x92, 0x1b,
+ 0x26, 0xb9, 0xb9, 0x42, 0x69, 0x11, 0x46, 0x2b, 0x48, 0x68, 0xa3, 0x14, 0x4e, 0x19, 0x2b, 0x1c,
+ 0xf5, 0xff, 0x6e, 0x51, 0x75, 0x74, 0x96, 0x9a, 0xa5, 0x4c, 0xd4, 0x6c, 0x88, 0xef, 0x41, 0x6a,
+ 0xd7, 0x18, 0x4d, 0x1e, 0x63, 0xf2, 0x25, 0x89, 0x7c, 0x9c, 0xc3, 0xf5, 0x13, 0xcd, 0x08, 0xc0,
+ 0xe7, 0x8f, 0xcf, 0x04, 0x08, 0x05, 0x4c, 0x34, 0x14, 0xd0, 0x1c, 0x57, 0x90, 0xf0, 0x05, 0x34,
+ 0x5d, 0x15, 0x34, 0xc5, 0x0a, 0x9a, 0xe3, 0x0a, 0x92, 0x33, 0x01, 0x62, 0x05, 0xe3, 0x31, 0xae,
+ 0x00, 0xd4, 0x8c, 0xaf, 0xf4, 0x43, 0x5e, 0x42, 0x8a, 0x11, 0x8a, 0x12, 0xc2, 0x24, 0x89, 0x23,
+ 0x04, 0x15, 0x5e, 0x87, 0x74, 0xf3, 0x68, 0x02, 0x01, 0xcf, 0x39, 0x1e, 0x97, 0x71, 0xe4, 0xa2,
+ 0x88, 0xba, 0x71, 0x29, 0xfc, 0x66, 0xd2, 0xb3, 0x4b, 0x11, 0xee, 0x46, 0x50, 0x4d, 0x4a, 0xe1,
+ 0x90, 0x4c, 0x40, 0x29, 0x02, 0x45, 0xd4, 0xd1, 0x66, 0x58, 0xb1, 0x2c, 0x9a, 0xe9, 0x74, 0xa5,
+ 0x45, 0x09, 0xc2, 0xc9, 0x70, 0x9a, 0xa1, 0x33, 0x62, 0x4f, 0x84, 0x6d, 0x72, 0x2a, 0xce, 0xf9,
+ 0x3f, 0x91, 0x51, 0xce, 0xe8, 0x89, 0x8c, 0xc6, 0xe2, 0x39, 0xab, 0x9c, 0x10, 0xdd, 0xa6, 0x9c,
+ 0xb9, 0xc0, 0x73, 0x36, 0x4a, 0x75, 0x9d, 0xb3, 0x51, 0x18, 0x7f, 0x06, 0x73, 0xa3, 0x18, 0x6d,
+ 0x4f, 0x14, 0xaa, 0x30, 0xe8, 0x95, 0x19, 0x50, 0x27, 0x93, 0x33, 0xdd, 0x7a, 0x5c, 0x87, 0xdc,
+ 0x28, 0xb4, 0x65, 0xb3, 0xdb, 0x9d, 0x67, 0xc4, 0xcb, 0x33, 0x88, 0x3c, 0x91, 0x03, 0x5d, 0xea,
+ 0x85, 0xfb, 0xf0, 0x4f, 0x79, 0x37, 0x12, 0xdb, 0x6f, 0x8a, 0xb7, 0xdf, 0x8b, 0x62, 0xfb, 0x45,
+ 0x62, 0xfb, 0xae, 0xc2, 0x3f, 0xa4, 0xbd, 0x27, 0x08, 0x12, 0x16, 0x21, 0x1f, 0x42, 0x76, 0xaa,
+ 0xe5, 0x88, 0xe2, 0x98, 0x44, 0x1c, 0xf3, 0x8a, 0x27, 0x5b, 0x4b, 0xf2, 0xf6, 0x98, 0x12, 0x47,
+ 0x44, 0xf1, 0x5d, 0xc8, 0x4d, 0xf7, 0x1b, 0x51, 0x9d, 0x95, 0xa8, 0xb3, 0x12, 0xb5, 0x7c, 0xee,
+ 0xa8, 0x44, 0x1d, 0x75, 0xa9, 0x9b, 0xbe, 0x73, 0xcf, 0x4b, 0xd4, 0xf3, 0x12, 0xb5, 0x7c, 0x6e,
+ 0x2c, 0x51, 0x63, 0x51, 0xfd, 0x11, 0xcc, 0xb9, 0x5a, 0x8c, 0x28, 0x4f, 0x48, 0xe4, 0x09, 0x51,
+ 0xfe, 0x31, 0x28, 0xee, 0xe6, 0x22, 0xea, 0xe7, 0x24, 0xfa, 0x39, 0xd9, 0xf4, 0xf2, 0xea, 0xe3,
+ 0x12, 0x79, 0x5c, 0x3a, 0xbd, 0x5c, 0xaf, 0x48, 0xf4, 0x8a, 0xa8, 0x5f, 0x85, 0x8c, 0xd8, 0x4d,
+ 0x44, 0x6d, 0x52, 0xa2, 0x4d, 0xba, 0xd7, 0x7d, 0xaa, 0x99, 0x04, 0xed, 0xf4, 0x94, 0xcf, 0x71,
+ 0x99, 0x6a, 0x21, 0x41, 0x90, 0x8c, 0x08, 0x79, 0x0c, 0x17, 0x65, 0x2d, 0x43, 0xc2, 0x28, 0x89,
+ 0x8c, 0x1c, 0xf5, 0x88, 0x13, 0xb3, 0x47, 0x55, 0x53, 0xc6, 0x69, 0xe1, 0x09, 0x5c, 0x90, 0x34,
+ 0x0e, 0x09, 0xb6, 0x3c, 0xed, 0xc6, 0xf2, 0x02, 0x96, 0x35, 0x01, 0xc3, 0x6c, 0x6f, 0x5b, 0x86,
+ 0x49, 0x44, 0x57, 0xf6, 0xc3, 0x05, 0xc8, 0x39, 0xed, 0xe9, 0x51, 0xff, 0x50, 0xef, 0xeb, 0x87,
+ 0xf8, 0x4b, 0x7f, 0xef, 0x74, 0xc3, 0xdb, 0xd4, 0x1c, 0xd5, 0x7b, 0x58, 0xa8, 0x27, 0xbe, 0x16,
+ 0x6a, 0x39, 0x18, 0x1f, 0xe4, 0xa4, 0xaa, 0x1e, 0x27, 0x75, 0xc5, 0x1f, 0xea, 0x67, 0xa8, 0xaa,
+ 0x1e, 0x43, 0x35, 0x1b, 0x22, 0xf5, 0x55, 0x35, 0xaf, 0xaf, 0x2a, 0xf9, 0x53, 0xfc, 0xed, 0x55,
+ 0xcd, 0x6b, 0xaf, 0x02, 0x38, 0x72, 0x97, 0x55, 0xf3, 0xba, 0xac, 0x19, 0x1c, 0x7f, 0xb3, 0x55,
+ 0xf3, 0x9a, 0xad, 0x00, 0x8e, 0xdc, 0x73, 0x6d, 0x48, 0x3c, 0xd7, 0x55, 0x7f, 0xd0, 0x2c, 0xeb,
+ 0xb5, 0x29, 0xb3, 0x5e, 0xd7, 0x66, 0x14, 0x35, 0xd3, 0x81, 0x6d, 0x48, 0x1c, 0x58, 0x50, 0x61,
+ 0x3e, 0x46, 0x6c, 0x53, 0x66, 0xc4, 0x02, 0x0b, 0xf3, 0xf3, 0x63, 0x9f, 0xb8, 0xfd, 0xd8, 0x65,
+ 0x7f, 0x92, 0xdc, 0x96, 0xd5, 0xbc, 0xb6, 0xac, 0x14, 0x74, 0xe6, 0x64, 0xee, 0xec, 0x89, 0xaf,
+ 0x3b, 0xfb, 0x13, 0x47, 0x38, 0xc8, 0xa4, 0x7d, 0xee, 0x67, 0xd2, 0xca, 0xc1, 0xec, 0xd9, 0x5e,
+ 0x6d, 0xd7, 0xc7, 0xab, 0x5d, 0x0f, 0x06, 0x9f, 0x5b, 0xb6, 0x73, 0xcb, 0x76, 0x6e, 0xd9, 0xce,
+ 0x2d, 0xdb, 0xdf, 0x6f, 0xd9, 0x56, 0xa3, 0x5f, 0x7f, 0xbb, 0x88, 0x8a, 0xbf, 0x44, 0x20, 0xe7,
+ 0x7c, 0x19, 0xdc, 0x33, 0x48, 0x87, 0xb6, 0xb7, 0x2d, 0xc8, 0x98, 0x5a, 0x4f, 0xdf, 0xef, 0x69,
+ 0xc7, 0xc7, 0x86, 0xd9, 0x76, 0x3c, 0xdb, 0x35, 0xef, 0xa7, 0x44, 0x47, 0x50, 0xae, 0x6b, 0x3d,
+ 0xda, 0xab, 0x68, 0xb2, 0xf3, 0xba, 0x31, 0x27, 0x11, 0xfc, 0x29, 0xa4, 0x7b, 0x76, 0x7b, 0x4c,
+ 0x0b, 0x7b, 0x5e, 0x84, 0x2e, 0x1a, 0xbf, 0xd3, 0x09, 0x0c, 0x7a, 0xe3, 0x00, 0x2d, 0xad, 0x75,
+ 0x42, 0x26, 0xa5, 0x45, 0x82, 0x4a, 0xa3, 0xcf, 0x74, 0xba, 0xb4, 0xd6, 0x24, 0x42, 0xb7, 0xad,
+ 0xbb, 0xf6, 0xa0, 0x4e, 0x37, 0xb5, 0x79, 0xf6, 0x60, 0xce, 0x55, 0xad, 0xe4, 0xcc, 0xff, 0x85,
+ 0x67, 0x43, 0x0b, 0x73, 0x57, 0x1e, 0x74, 0x26, 0xc4, 0x0d, 0x59, 0xfc, 0x37, 0x64, 0xa7, 0xd8,
+ 0x38, 0x03, 0xe8, 0x88, 0x49, 0x51, 0x03, 0x1d, 0x15, 0xbf, 0x41, 0x90, 0xa6, 0x7d, 0xf2, 0xbf,
+ 0x2b, 0x77, 0xb6, 0x35, 0xa3, 0x8f, 0x1f, 0x40, 0xb4, 0xab, 0x1f, 0x11, 0x96, 0x90, 0xa9, 0xdc,
+ 0x3a, 0x7d, 0xb5, 0x18, 0xfa, 0xed, 0xd5, 0xe2, 0x7f, 0x02, 0xfe, 0x4b, 0x30, 0xb0, 0x89, 0xd5,
+ 0x2b, 0x3b, 0x9c, 0x06, 0x23, 0xe0, 0x1a, 0xc4, 0xfa, 0x46, 0xbb, 0x43, 0x78, 0x49, 0x95, 0x1b,
+ 0xef, 0x8d, 0xe1, 0xf2, 0xe2, 0x29, 0x82, 0xf9, 0xaa, 0x65, 0x12, 0xcd, 0x30, 0x6d, 0xfe, 0xb5,
+ 0x96, 0xbe, 0x21, 0x5f, 0x20, 0x48, 0x8d, 0x47, 0xb8, 0x05, 0xb9, 0xf1, 0x80, 0x7d, 0x04, 0x77,
+ 0x76, 0xea, 0xaa, 0xb0, 0xc2, 0x1e, 0x46, 0x59, 0x72, 0xc5, 0xc4, 0xce, 0x3b, 0x79, 0x3a, 0xb8,
+ 0xb0, 0x06, 0x17, 0x24, 0x69, 0xef, 0xf3, 0x42, 0x2e, 0x2e, 0x41, 0xaa, 0x6e, 0x91, 0x6d, 0xed,
+ 0xe0, 0x29, 0xfb, 0xe4, 0x3c, 0xf9, 0xaf, 0x42, 0x25, 0xac, 0x84, 0x98, 0xf8, 0xda, 0x12, 0x24,
+ 0x9c, 0xd3, 0x8f, 0xe3, 0x10, 0xde, 0x5a, 0x53, 0x42, 0xec, 0xb7, 0xa2, 0x20, 0xf6, 0x5b, 0x55,
+ 0xc2, 0x95, 0xcd, 0xd3, 0x33, 0x35, 0xf4, 0xf2, 0x4c, 0x0d, 0xfd, 0x7a, 0xa6, 0x86, 0x5e, 0x9f,
+ 0xa9, 0xe8, 0xcd, 0x99, 0x8a, 0xde, 0x9e, 0xa9, 0xe8, 0xdd, 0x99, 0x8a, 0x9e, 0x0f, 0x55, 0xf4,
+ 0xdd, 0x50, 0x45, 0xdf, 0x0f, 0x55, 0xf4, 0xe3, 0x50, 0x45, 0x3f, 0x0d, 0x55, 0x74, 0x3a, 0x54,
+ 0x43, 0x2f, 0x87, 0x6a, 0xe8, 0xf5, 0x50, 0x45, 0x6f, 0x86, 0x6a, 0xe8, 0xed, 0x50, 0x45, 0xef,
+ 0x86, 0x6a, 0xe8, 0xf9, 0xef, 0x6a, 0xa8, 0x15, 0xe7, 0xcb, 0xf3, 0x47, 0x00, 0x00, 0x00, 0xff,
+ 0xff, 0xe2, 0x1d, 0x88, 0x27, 0x63, 0x1a, 0x00, 0x00,
+}
+
func (this *Message) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return Theproto3Description()
}
@@ -515,512 +623,514 @@ func (this *NotPacked) Description() (desc *github_com_gogo_protobuf_protoc_gen_
func Theproto3Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 8069 bytes of a gzipped FileDescriptorSet
+ // 8102 bytes of a gzipped FileDescriptorSet
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x70, 0x23, 0xd7,
- 0x99, 0x1e, 0x1b, 0x0d, 0x90, 0xe0, 0x0f, 0x90, 0x6c, 0x36, 0x67, 0x28, 0x88, 0x1a, 0x91, 0x33,
- 0xd0, 0x68, 0x44, 0xd1, 0x16, 0x87, 0xc3, 0xe1, 0xdc, 0x30, 0x96, 0xb4, 0x00, 0x08, 0x8e, 0x38,
+ 0x99, 0x1e, 0x1b, 0x0d, 0x90, 0xc0, 0x0f, 0x90, 0x6c, 0x36, 0x47, 0x14, 0x44, 0x8d, 0xc8, 0x19,
+ 0x68, 0x34, 0xa2, 0x68, 0x89, 0x33, 0xc3, 0xe1, 0xdc, 0x30, 0x96, 0xb4, 0x00, 0x08, 0x8e, 0x38,
0x26, 0x41, 0xba, 0x49, 0x5a, 0x1a, 0x2b, 0x09, 0xaa, 0x09, 0x1c, 0x92, 0x90, 0x80, 0x6e, 0x2c,
- 0xba, 0x21, 0x89, 0xaa, 0x54, 0x4a, 0x59, 0x27, 0x1b, 0x6f, 0x52, 0xb9, 0x6e, 0x52, 0xf1, 0x3a,
- 0xbe, 0xc8, 0xbb, 0xb5, 0x6b, 0xef, 0xe6, 0xe6, 0xf5, 0x6e, 0x9c, 0x5d, 0x27, 0x95, 0x55, 0x1e,
- 0x9c, 0x4c, 0x5e, 0x52, 0xda, 0xe4, 0x25, 0xe5, 0x4a, 0xa9, 0xac, 0x91, 0x53, 0x71, 0x12, 0x27,
- 0xeb, 0x6c, 0x54, 0x15, 0x57, 0x79, 0x1f, 0xb6, 0xce, 0xad, 0xfb, 0xf4, 0x41, 0x03, 0x0d, 0xce,
- 0x48, 0xf6, 0x3e, 0xe8, 0x65, 0x06, 0x7d, 0xce, 0xff, 0x7d, 0xfd, 0xf7, 0x7f, 0x3b, 0x7f, 0xf7,
- 0x69, 0x80, 0xf0, 0x47, 0x37, 0xe0, 0xec, 0xa1, 0x6d, 0x1f, 0x36, 0xd0, 0xc5, 0x56, 0xdb, 0x76,
- 0xed, 0xfd, 0xce, 0xc1, 0xc5, 0x1a, 0x72, 0xaa, 0xed, 0x7a, 0xcb, 0xb5, 0xdb, 0x8b, 0x64, 0x4c,
- 0x9f, 0xa0, 0x12, 0x8b, 0x5c, 0x22, 0xbb, 0x09, 0x93, 0x6b, 0xf5, 0x06, 0x5a, 0xf5, 0x04, 0x77,
- 0x90, 0xab, 0x5f, 0x87, 0xf8, 0x41, 0xbd, 0x81, 0x32, 0xca, 0x59, 0x75, 0x3e, 0xb5, 0x7c, 0x7e,
- 0x51, 0x02, 0x2d, 0x06, 0x11, 0xdb, 0x78, 0xd8, 0x20, 0x88, 0xec, 0xf7, 0xe3, 0x30, 0x15, 0x32,
- 0xab, 0xeb, 0x10, 0xb7, 0xcc, 0x26, 0x66, 0x54, 0xe6, 0x47, 0x0d, 0xf2, 0x59, 0xcf, 0xc0, 0x48,
- 0xcb, 0xac, 0xbe, 0x6c, 0x1e, 0xa2, 0x4c, 0x8c, 0x0c, 0xf3, 0x43, 0x7d, 0x16, 0xa0, 0x86, 0x5a,
- 0xc8, 0xaa, 0x21, 0xab, 0x7a, 0x9c, 0x51, 0xcf, 0xaa, 0xf3, 0xa3, 0x86, 0x30, 0xa2, 0x7f, 0x0c,
- 0x26, 0x5b, 0x9d, 0xfd, 0x46, 0xbd, 0x5a, 0x11, 0xc4, 0xe0, 0xac, 0x3a, 0x9f, 0x30, 0x34, 0x3a,
- 0xb1, 0xea, 0x0b, 0x3f, 0x01, 0x13, 0xaf, 0x22, 0xf3, 0x65, 0x51, 0x34, 0x45, 0x44, 0xc7, 0xf1,
- 0xb0, 0x20, 0x58, 0x84, 0x74, 0x13, 0x39, 0x8e, 0x79, 0x88, 0x2a, 0xee, 0x71, 0x0b, 0x65, 0xe2,
- 0xe4, 0xea, 0xcf, 0x76, 0x5d, 0xbd, 0x7c, 0xe5, 0x29, 0x86, 0xda, 0x3d, 0x6e, 0x21, 0x3d, 0x0f,
- 0xa3, 0xc8, 0xea, 0x34, 0x29, 0x43, 0xa2, 0x87, 0xfd, 0x4a, 0x56, 0xa7, 0x29, 0xb3, 0x24, 0x31,
- 0x8c, 0x51, 0x8c, 0x38, 0xa8, 0xfd, 0x4a, 0xbd, 0x8a, 0x32, 0xc3, 0x84, 0xe0, 0x89, 0x2e, 0x82,
- 0x1d, 0x3a, 0x2f, 0x73, 0x70, 0x9c, 0x5e, 0x84, 0x51, 0xf4, 0x9a, 0x8b, 0x2c, 0xa7, 0x6e, 0x5b,
- 0x99, 0x11, 0x42, 0xf2, 0x78, 0x88, 0x17, 0x51, 0xa3, 0x26, 0x53, 0xf8, 0x38, 0xfd, 0x2a, 0x8c,
- 0xd8, 0x2d, 0xb7, 0x6e, 0x5b, 0x4e, 0x26, 0x79, 0x56, 0x99, 0x4f, 0x2d, 0x9f, 0x09, 0x0d, 0x84,
- 0x2d, 0x2a, 0x63, 0x70, 0x61, 0x7d, 0x1d, 0x34, 0xc7, 0xee, 0xb4, 0xab, 0xa8, 0x52, 0xb5, 0x6b,
- 0xa8, 0x52, 0xb7, 0x0e, 0xec, 0xcc, 0x28, 0x21, 0x98, 0xeb, 0xbe, 0x10, 0x22, 0x58, 0xb4, 0x6b,
- 0x68, 0xdd, 0x3a, 0xb0, 0x8d, 0x71, 0x27, 0x70, 0xac, 0x4f, 0xc3, 0xb0, 0x73, 0x6c, 0xb9, 0xe6,
- 0x6b, 0x99, 0x34, 0x89, 0x10, 0x76, 0x94, 0xfd, 0xfd, 0x61, 0x98, 0x18, 0x24, 0xc4, 0x6e, 0x42,
- 0xe2, 0x00, 0x5f, 0x65, 0x26, 0x76, 0x12, 0x1b, 0x50, 0x4c, 0xd0, 0x88, 0xc3, 0xf7, 0x69, 0xc4,
- 0x3c, 0xa4, 0x2c, 0xe4, 0xb8, 0xa8, 0x46, 0x23, 0x42, 0x1d, 0x30, 0xa6, 0x80, 0x82, 0xba, 0x43,
- 0x2a, 0x7e, 0x5f, 0x21, 0xf5, 0x02, 0x4c, 0x78, 0x2a, 0x55, 0xda, 0xa6, 0x75, 0xc8, 0x63, 0xf3,
- 0x62, 0x94, 0x26, 0x8b, 0x25, 0x8e, 0x33, 0x30, 0xcc, 0x18, 0x47, 0x81, 0x63, 0x7d, 0x15, 0xc0,
- 0xb6, 0x90, 0x7d, 0x50, 0xa9, 0xa1, 0x6a, 0x23, 0x93, 0xec, 0x61, 0xa5, 0x2d, 0x2c, 0xd2, 0x65,
- 0x25, 0x9b, 0x8e, 0x56, 0x1b, 0xfa, 0x0d, 0x3f, 0xd4, 0x46, 0x7a, 0x44, 0xca, 0x26, 0x4d, 0xb2,
- 0xae, 0x68, 0xdb, 0x83, 0xf1, 0x36, 0xc2, 0x71, 0x8f, 0x6a, 0xec, 0xca, 0x46, 0x89, 0x12, 0x8b,
- 0x91, 0x57, 0x66, 0x30, 0x18, 0xbd, 0xb0, 0xb1, 0xb6, 0x78, 0xa8, 0x3f, 0x06, 0xde, 0x40, 0x85,
- 0x84, 0x15, 0x90, 0x2a, 0x94, 0xe6, 0x83, 0x65, 0xb3, 0x89, 0x66, 0x5e, 0x87, 0xf1, 0xa0, 0x79,
- 0xf4, 0x53, 0x90, 0x70, 0x5c, 0xb3, 0xed, 0x92, 0x28, 0x4c, 0x18, 0xf4, 0x40, 0xd7, 0x40, 0x45,
- 0x56, 0x8d, 0x54, 0xb9, 0x84, 0x81, 0x3f, 0xea, 0x3f, 0xe7, 0x5f, 0xb0, 0x4a, 0x2e, 0xf8, 0x42,
- 0xb7, 0x47, 0x03, 0xcc, 0xf2, 0x75, 0xcf, 0x5c, 0x83, 0xb1, 0xc0, 0x05, 0x0c, 0x7a, 0xea, 0xec,
- 0x5f, 0x84, 0xd3, 0xa1, 0xd4, 0xfa, 0x0b, 0x70, 0xaa, 0x63, 0xd5, 0x2d, 0x17, 0xb5, 0x5b, 0x6d,
- 0x84, 0x23, 0x96, 0x9e, 0x2a, 0xf3, 0xdf, 0x47, 0x7a, 0xc4, 0xdc, 0x9e, 0x28, 0x4d, 0x59, 0x8c,
- 0xa9, 0x4e, 0xf7, 0xe0, 0xc2, 0x68, 0xf2, 0x07, 0x23, 0xda, 0x1b, 0x6f, 0xbc, 0xf1, 0x46, 0x2c,
- 0xfb, 0xf9, 0x61, 0x38, 0x15, 0x96, 0x33, 0xa1, 0xe9, 0x3b, 0x0d, 0xc3, 0x56, 0xa7, 0xb9, 0x8f,
- 0xda, 0xc4, 0x48, 0x09, 0x83, 0x1d, 0xe9, 0x79, 0x48, 0x34, 0xcc, 0x7d, 0xd4, 0xc8, 0xc4, 0xcf,
- 0x2a, 0xf3, 0xe3, 0xcb, 0x1f, 0x1b, 0x28, 0x2b, 0x17, 0x37, 0x30, 0xc4, 0xa0, 0x48, 0xfd, 0x19,
- 0x88, 0xb3, 0x12, 0x8d, 0x19, 0x16, 0x06, 0x63, 0xc0, 0xb9, 0x64, 0x10, 0x9c, 0xfe, 0x08, 0x8c,
- 0xe2, 0xff, 0x69, 0x6c, 0x0c, 0x13, 0x9d, 0x93, 0x78, 0x00, 0xc7, 0x85, 0x3e, 0x03, 0x49, 0x92,
- 0x26, 0x35, 0xc4, 0x97, 0x36, 0xef, 0x18, 0x07, 0x56, 0x0d, 0x1d, 0x98, 0x9d, 0x86, 0x5b, 0x79,
- 0xc5, 0x6c, 0x74, 0x10, 0x09, 0xf8, 0x51, 0x23, 0xcd, 0x06, 0x3f, 0x8d, 0xc7, 0xf4, 0x39, 0x48,
- 0xd1, 0xac, 0xaa, 0x5b, 0x35, 0xf4, 0x1a, 0xa9, 0x9e, 0x09, 0x83, 0x26, 0xda, 0x3a, 0x1e, 0xc1,
- 0xa7, 0x7f, 0xc9, 0xb1, 0x2d, 0x1e, 0x9a, 0xe4, 0x14, 0x78, 0x80, 0x9c, 0xfe, 0x9a, 0x5c, 0xb8,
- 0x1f, 0x0d, 0xbf, 0x3c, 0x39, 0xa6, 0xb2, 0xdf, 0x8a, 0x41, 0x9c, 0xd4, 0x8b, 0x09, 0x48, 0xed,
- 0xde, 0xd9, 0x2e, 0x55, 0x56, 0xb7, 0xf6, 0x0a, 0x1b, 0x25, 0x4d, 0xd1, 0xc7, 0x01, 0xc8, 0xc0,
- 0xda, 0xc6, 0x56, 0x7e, 0x57, 0x8b, 0x79, 0xc7, 0xeb, 0xe5, 0xdd, 0xab, 0x2b, 0x9a, 0xea, 0x01,
- 0xf6, 0xe8, 0x40, 0x5c, 0x14, 0xb8, 0xbc, 0xac, 0x25, 0x74, 0x0d, 0xd2, 0x94, 0x60, 0xfd, 0x85,
- 0xd2, 0xea, 0xd5, 0x15, 0x6d, 0x38, 0x38, 0x72, 0x79, 0x59, 0x1b, 0xd1, 0xc7, 0x60, 0x94, 0x8c,
- 0x14, 0xb6, 0xb6, 0x36, 0xb4, 0xa4, 0xc7, 0xb9, 0xb3, 0x6b, 0xac, 0x97, 0x6f, 0x69, 0xa3, 0x1e,
- 0xe7, 0x2d, 0x63, 0x6b, 0x6f, 0x5b, 0x03, 0x8f, 0x61, 0xb3, 0xb4, 0xb3, 0x93, 0xbf, 0x55, 0xd2,
- 0x52, 0x9e, 0x44, 0xe1, 0xce, 0x6e, 0x69, 0x47, 0x4b, 0x07, 0xd4, 0xba, 0xbc, 0xac, 0x8d, 0x79,
- 0xa7, 0x28, 0x95, 0xf7, 0x36, 0xb5, 0x71, 0x7d, 0x12, 0xc6, 0xe8, 0x29, 0xb8, 0x12, 0x13, 0xd2,
- 0xd0, 0xd5, 0x15, 0x4d, 0xf3, 0x15, 0xa1, 0x2c, 0x93, 0x81, 0x81, 0xab, 0x2b, 0x9a, 0x9e, 0x2d,
- 0x42, 0x82, 0x44, 0x97, 0xae, 0xc3, 0xf8, 0x46, 0xbe, 0x50, 0xda, 0xa8, 0x6c, 0x6d, 0xef, 0xae,
- 0x6f, 0x95, 0xf3, 0x1b, 0x9a, 0xe2, 0x8f, 0x19, 0xa5, 0x4f, 0xed, 0xad, 0x1b, 0xa5, 0x55, 0x2d,
- 0x26, 0x8e, 0x6d, 0x97, 0xf2, 0xbb, 0xa5, 0x55, 0x4d, 0xcd, 0x56, 0xe1, 0x54, 0x58, 0x9d, 0x0c,
- 0xcd, 0x0c, 0xc1, 0xc5, 0xb1, 0x1e, 0x2e, 0x26, 0x5c, 0x5d, 0x2e, 0x7e, 0x2f, 0x06, 0x53, 0x21,
- 0x6b, 0x45, 0xe8, 0x49, 0x9e, 0x85, 0x04, 0x0d, 0x51, 0xba, 0x7a, 0x3e, 0x19, 0xba, 0xe8, 0x90,
- 0x80, 0xed, 0x5a, 0x41, 0x09, 0x4e, 0xec, 0x20, 0xd4, 0x1e, 0x1d, 0x04, 0xa6, 0xe8, 0xaa, 0xe9,
- 0x7f, 0xbe, 0xab, 0xa6, 0xd3, 0x65, 0xef, 0xea, 0x20, 0xcb, 0x1e, 0x19, 0x3b, 0x59, 0x6d, 0x4f,
- 0x84, 0xd4, 0xf6, 0x9b, 0x30, 0xd9, 0x45, 0x34, 0x70, 0x8d, 0xfd, 0xac, 0x02, 0x99, 0x5e, 0xc6,
- 0x89, 0xa8, 0x74, 0xb1, 0x40, 0xa5, 0xbb, 0x29, 0x5b, 0xf0, 0x5c, 0x6f, 0x27, 0x74, 0xf9, 0xfa,
- 0x6b, 0x0a, 0x4c, 0x87, 0x77, 0x8a, 0xa1, 0x3a, 0x3c, 0x03, 0xc3, 0x4d, 0xe4, 0x1e, 0xd9, 0xbc,
- 0x5b, 0xba, 0x10, 0xb2, 0x06, 0xe3, 0x69, 0xd9, 0xd9, 0x0c, 0x25, 0x2e, 0xe2, 0x6a, 0xaf, 0x76,
- 0x8f, 0x6a, 0xd3, 0xa5, 0xe9, 0x2f, 0xc5, 0xe0, 0x74, 0x28, 0x79, 0xa8, 0xa2, 0x8f, 0x02, 0xd4,
- 0xad, 0x56, 0xc7, 0xa5, 0x1d, 0x11, 0x2d, 0xb0, 0xa3, 0x64, 0x84, 0x14, 0x2f, 0x5c, 0x3c, 0x3b,
- 0xae, 0x37, 0xaf, 0x92, 0x79, 0xa0, 0x43, 0x44, 0xe0, 0xba, 0xaf, 0x68, 0x9c, 0x28, 0x3a, 0xdb,
- 0xe3, 0x4a, 0xbb, 0x02, 0x73, 0x09, 0xb4, 0x6a, 0xa3, 0x8e, 0x2c, 0xb7, 0xe2, 0xb8, 0x6d, 0x64,
- 0x36, 0xeb, 0xd6, 0x21, 0x59, 0x41, 0x92, 0xb9, 0xc4, 0x81, 0xd9, 0x70, 0x90, 0x31, 0x41, 0xa7,
- 0x77, 0xf8, 0x2c, 0x46, 0x90, 0x00, 0x6a, 0x0b, 0x88, 0xe1, 0x00, 0x82, 0x4e, 0x7b, 0x88, 0xec,
- 0xef, 0x24, 0x21, 0x25, 0xf4, 0xd5, 0xfa, 0x39, 0x48, 0xbf, 0x64, 0xbe, 0x62, 0x56, 0xf8, 0xbd,
- 0x12, 0xb5, 0x44, 0x0a, 0x8f, 0x6d, 0xb3, 0xfb, 0xa5, 0x25, 0x38, 0x45, 0x44, 0xec, 0x8e, 0x8b,
- 0xda, 0x95, 0x6a, 0xc3, 0x74, 0x1c, 0x62, 0xb4, 0x24, 0x11, 0xd5, 0xf1, 0xdc, 0x16, 0x9e, 0x2a,
- 0xf2, 0x19, 0xfd, 0x0a, 0x4c, 0x11, 0x44, 0xb3, 0xd3, 0x70, 0xeb, 0xad, 0x06, 0xaa, 0xe0, 0xbb,
- 0x37, 0x87, 0xac, 0x24, 0x9e, 0x66, 0x93, 0x58, 0x62, 0x93, 0x09, 0x60, 0x8d, 0x1c, 0x7d, 0x15,
- 0x1e, 0x25, 0xb0, 0x43, 0x64, 0xa1, 0xb6, 0xe9, 0xa2, 0x0a, 0xfa, 0xf9, 0x8e, 0xd9, 0x70, 0x2a,
- 0xa6, 0x55, 0xab, 0x1c, 0x99, 0xce, 0x51, 0xe6, 0x14, 0x26, 0x28, 0xc4, 0x32, 0x8a, 0xf1, 0x30,
- 0x16, 0xbc, 0xc5, 0xe4, 0x4a, 0x44, 0x2c, 0x6f, 0xd5, 0x9e, 0x33, 0x9d, 0x23, 0x3d, 0x07, 0xd3,
- 0x84, 0xc5, 0x71, 0xdb, 0x75, 0xeb, 0xb0, 0x52, 0x3d, 0x42, 0xd5, 0x97, 0x2b, 0x1d, 0xf7, 0xe0,
- 0x7a, 0xe6, 0x11, 0xf1, 0xfc, 0x44, 0xc3, 0x1d, 0x22, 0x53, 0xc4, 0x22, 0x7b, 0xee, 0xc1, 0x75,
- 0x7d, 0x07, 0xd2, 0xd8, 0x19, 0xcd, 0xfa, 0xeb, 0xa8, 0x72, 0x60, 0xb7, 0xc9, 0xd2, 0x38, 0x1e,
- 0x52, 0x9a, 0x04, 0x0b, 0x2e, 0x6e, 0x31, 0xc0, 0xa6, 0x5d, 0x43, 0xb9, 0xc4, 0xce, 0x76, 0xa9,
- 0xb4, 0x6a, 0xa4, 0x38, 0xcb, 0x9a, 0xdd, 0xc6, 0x01, 0x75, 0x68, 0x7b, 0x06, 0x4e, 0xd1, 0x80,
- 0x3a, 0xb4, 0xb9, 0x79, 0xaf, 0xc0, 0x54, 0xb5, 0x4a, 0xaf, 0xb9, 0x5e, 0xad, 0xb0, 0x7b, 0x2c,
- 0x27, 0xa3, 0x05, 0x8c, 0x55, 0xad, 0xde, 0xa2, 0x02, 0x2c, 0xc6, 0x1d, 0xfd, 0x06, 0x9c, 0xf6,
- 0x8d, 0x25, 0x02, 0x27, 0xbb, 0xae, 0x52, 0x86, 0x5e, 0x81, 0xa9, 0xd6, 0x71, 0x37, 0x50, 0x0f,
- 0x9c, 0xb1, 0x75, 0x2c, 0xc3, 0xae, 0xc1, 0xa9, 0xd6, 0x51, 0xab, 0x1b, 0xb7, 0x20, 0xe2, 0xf4,
- 0xd6, 0x51, 0x4b, 0x06, 0x3e, 0x4e, 0x6e, 0xb8, 0xdb, 0xa8, 0x6a, 0xba, 0xa8, 0x96, 0x79, 0x48,
- 0x14, 0x17, 0x26, 0xf4, 0x8b, 0xa0, 0x55, 0xab, 0x15, 0x64, 0x99, 0xfb, 0x0d, 0x54, 0x31, 0xdb,
- 0xc8, 0x32, 0x9d, 0xcc, 0x9c, 0x28, 0x3c, 0x5e, 0xad, 0x96, 0xc8, 0x6c, 0x9e, 0x4c, 0xea, 0x0b,
- 0x30, 0x69, 0xef, 0xbf, 0x54, 0xa5, 0x21, 0x59, 0x69, 0xb5, 0xd1, 0x41, 0xfd, 0xb5, 0xcc, 0x79,
- 0x62, 0xdf, 0x09, 0x3c, 0x41, 0x02, 0x72, 0x9b, 0x0c, 0xeb, 0x4f, 0x82, 0x56, 0x75, 0x8e, 0xcc,
- 0x76, 0x8b, 0xd4, 0x64, 0xa7, 0x65, 0x56, 0x51, 0xe6, 0x71, 0x2a, 0x4a, 0xc7, 0xcb, 0x7c, 0x18,
- 0xa7, 0x84, 0xf3, 0x6a, 0xfd, 0xc0, 0xe5, 0x8c, 0x4f, 0xd0, 0x94, 0x20, 0x63, 0x8c, 0x6d, 0x1e,
- 0x34, 0x6c, 0x8a, 0xc0, 0x89, 0xe7, 0x89, 0xd8, 0x78, 0xeb, 0xa8, 0x25, 0x9e, 0xf7, 0x31, 0x18,
- 0xc3, 0x92, 0xfe, 0x49, 0x9f, 0xa4, 0x0d, 0x59, 0xeb, 0x48, 0x38, 0xe3, 0x87, 0xd6, 0x1b, 0x67,
- 0x73, 0x90, 0x16, 0xe3, 0x53, 0x1f, 0x05, 0x1a, 0xa1, 0x9a, 0x82, 0x9b, 0x95, 0xe2, 0xd6, 0x2a,
- 0x6e, 0x33, 0x3e, 0x53, 0xd2, 0x62, 0xb8, 0xdd, 0xd9, 0x58, 0xdf, 0x2d, 0x55, 0x8c, 0xbd, 0xf2,
- 0xee, 0xfa, 0x66, 0x49, 0x53, 0xc5, 0xbe, 0xfa, 0x3b, 0x31, 0x18, 0x0f, 0xde, 0x22, 0xe9, 0x9f,
- 0x80, 0x87, 0xf8, 0xf3, 0x0c, 0x07, 0xb9, 0x95, 0x57, 0xeb, 0x6d, 0x92, 0x32, 0x4d, 0x93, 0x2e,
- 0x5f, 0x9e, 0xd3, 0x4e, 0x31, 0xa9, 0x1d, 0xe4, 0x3e, 0x5f, 0x6f, 0xe3, 0x84, 0x68, 0x9a, 0xae,
- 0xbe, 0x01, 0x73, 0x96, 0x5d, 0x71, 0x5c, 0xd3, 0xaa, 0x99, 0xed, 0x5a, 0xc5, 0x7f, 0x92, 0x54,
- 0x31, 0xab, 0x55, 0xe4, 0x38, 0x36, 0x5d, 0xaa, 0x3c, 0x96, 0x33, 0x96, 0xbd, 0xc3, 0x84, 0xfd,
- 0x1a, 0x9e, 0x67, 0xa2, 0x52, 0x80, 0xa9, 0xbd, 0x02, 0xec, 0x11, 0x18, 0x6d, 0x9a, 0xad, 0x0a,
- 0xb2, 0xdc, 0xf6, 0x31, 0x69, 0x8c, 0x93, 0x46, 0xb2, 0x69, 0xb6, 0x4a, 0xf8, 0xf8, 0xa7, 0x73,
- 0x7f, 0xf2, 0x5f, 0x55, 0x48, 0x8b, 0xcd, 0x31, 0xbe, 0xd7, 0xa8, 0x92, 0x75, 0x44, 0x21, 0x95,
- 0xe6, 0xb1, 0xbe, 0xad, 0xf4, 0x62, 0x11, 0x2f, 0x30, 0xb9, 0x61, 0xda, 0xb2, 0x1a, 0x14, 0x89,
- 0x17, 0x77, 0x5c, 0x5b, 0x10, 0x6d, 0x11, 0x92, 0x06, 0x3b, 0xd2, 0x6f, 0xc1, 0xf0, 0x4b, 0x0e,
- 0xe1, 0x1e, 0x26, 0xdc, 0xe7, 0xfb, 0x73, 0xdf, 0xde, 0x21, 0xe4, 0xa3, 0xb7, 0x77, 0x2a, 0xe5,
- 0x2d, 0x63, 0x33, 0xbf, 0x61, 0x30, 0xb8, 0xfe, 0x30, 0xc4, 0x1b, 0xe6, 0xeb, 0xc7, 0xc1, 0xa5,
- 0x88, 0x0c, 0x0d, 0x6a, 0xf8, 0x87, 0x21, 0xfe, 0x2a, 0x32, 0x5f, 0x0e, 0x2e, 0x00, 0x64, 0xe8,
- 0x43, 0x0c, 0xfd, 0x8b, 0x90, 0x20, 0xf6, 0xd2, 0x01, 0x98, 0xc5, 0xb4, 0x21, 0x3d, 0x09, 0xf1,
- 0xe2, 0x96, 0x81, 0xc3, 0x5f, 0x83, 0x34, 0x1d, 0xad, 0x6c, 0xaf, 0x97, 0x8a, 0x25, 0x2d, 0x96,
- 0xbd, 0x02, 0xc3, 0xd4, 0x08, 0x38, 0x35, 0x3c, 0x33, 0x68, 0x43, 0xec, 0x90, 0x71, 0x28, 0x7c,
- 0x76, 0x6f, 0xb3, 0x50, 0x32, 0xb4, 0x98, 0xe8, 0x5e, 0x07, 0xd2, 0x62, 0x5f, 0xfc, 0xd3, 0x89,
- 0xa9, 0x6f, 0x2b, 0x90, 0x12, 0xfa, 0x5c, 0xdc, 0xa0, 0x98, 0x8d, 0x86, 0xfd, 0x6a, 0xc5, 0x6c,
- 0xd4, 0x4d, 0x87, 0x05, 0x05, 0x90, 0xa1, 0x3c, 0x1e, 0x19, 0xd4, 0x69, 0x3f, 0x15, 0xe5, 0xbf,
- 0xac, 0x80, 0x26, 0xb7, 0x98, 0x92, 0x82, 0xca, 0xcf, 0x54, 0xc1, 0x2f, 0x2a, 0x30, 0x1e, 0xec,
- 0x2b, 0x25, 0xf5, 0xce, 0xfd, 0x4c, 0xd5, 0xfb, 0x5e, 0x0c, 0xc6, 0x02, 0xdd, 0xe4, 0xa0, 0xda,
- 0xfd, 0x3c, 0x4c, 0xd6, 0x6b, 0xa8, 0xd9, 0xb2, 0x5d, 0x64, 0x55, 0x8f, 0x2b, 0x0d, 0xf4, 0x0a,
- 0x6a, 0x64, 0xb2, 0xa4, 0x50, 0x5c, 0xec, 0xdf, 0xaf, 0x2e, 0xae, 0xfb, 0xb8, 0x0d, 0x0c, 0xcb,
- 0x4d, 0xad, 0xaf, 0x96, 0x36, 0xb7, 0xb7, 0x76, 0x4b, 0xe5, 0xe2, 0x9d, 0xca, 0x5e, 0xf9, 0x93,
- 0xe5, 0xad, 0xe7, 0xcb, 0x86, 0x56, 0x97, 0xc4, 0x3e, 0xc4, 0x54, 0xdf, 0x06, 0x4d, 0x56, 0x4a,
- 0x7f, 0x08, 0xc2, 0xd4, 0xd2, 0x86, 0xf4, 0x29, 0x98, 0x28, 0x6f, 0x55, 0x76, 0xd6, 0x57, 0x4b,
- 0x95, 0xd2, 0xda, 0x5a, 0xa9, 0xb8, 0xbb, 0x43, 0x9f, 0x40, 0x78, 0xd2, 0xbb, 0xc1, 0xa4, 0xfe,
- 0x82, 0x0a, 0x53, 0x21, 0x9a, 0xe8, 0x79, 0x76, 0xef, 0x40, 0x6f, 0x67, 0x9e, 0x1a, 0x44, 0xfb,
- 0x45, 0xbc, 0xe4, 0x6f, 0x9b, 0x6d, 0x97, 0xdd, 0x6a, 0x3c, 0x09, 0xd8, 0x4a, 0x96, 0x5b, 0x3f,
- 0xa8, 0xa3, 0x36, 0x7b, 0x60, 0x43, 0x6f, 0x28, 0x26, 0xfc, 0x71, 0xfa, 0xcc, 0xe6, 0xe3, 0xa0,
- 0xb7, 0x6c, 0xa7, 0xee, 0xd6, 0x5f, 0x41, 0x95, 0xba, 0xc5, 0x9f, 0xee, 0xe0, 0x1b, 0x8c, 0xb8,
- 0xa1, 0xf1, 0x99, 0x75, 0xcb, 0xf5, 0xa4, 0x2d, 0x74, 0x68, 0x4a, 0xd2, 0xb8, 0x80, 0xab, 0x86,
- 0xc6, 0x67, 0x3c, 0xe9, 0x73, 0x90, 0xae, 0xd9, 0x1d, 0xdc, 0x75, 0x51, 0x39, 0xbc, 0x5e, 0x28,
- 0x46, 0x8a, 0x8e, 0x79, 0x22, 0xac, 0x9f, 0xf6, 0x1f, 0x2b, 0xa5, 0x8d, 0x14, 0x1d, 0xa3, 0x22,
- 0x4f, 0xc0, 0x84, 0x79, 0x78, 0xd8, 0xc6, 0xe4, 0x9c, 0x88, 0xde, 0x21, 0x8c, 0x7b, 0xc3, 0x44,
- 0x70, 0xe6, 0x36, 0x24, 0xb9, 0x1d, 0xf0, 0x92, 0x8c, 0x2d, 0x51, 0x69, 0xd1, 0xdb, 0xde, 0xd8,
- 0xfc, 0xa8, 0x91, 0xb4, 0xf8, 0xe4, 0x39, 0x48, 0xd7, 0x9d, 0x8a, 0xff, 0x94, 0x3c, 0x76, 0x36,
- 0x36, 0x9f, 0x34, 0x52, 0x75, 0xc7, 0x7b, 0xc2, 0x98, 0xfd, 0x5a, 0x0c, 0xc6, 0x83, 0x4f, 0xf9,
- 0xf5, 0x55, 0x48, 0x36, 0xec, 0xaa, 0x49, 0x42, 0x8b, 0x6e, 0x31, 0xcd, 0x47, 0x6c, 0x0c, 0x2c,
- 0x6e, 0x30, 0x79, 0xc3, 0x43, 0xce, 0xfc, 0x47, 0x05, 0x92, 0x7c, 0x58, 0x9f, 0x86, 0x78, 0xcb,
- 0x74, 0x8f, 0x08, 0x5d, 0xa2, 0x10, 0xd3, 0x14, 0x83, 0x1c, 0xe3, 0x71, 0xa7, 0x65, 0x5a, 0x24,
- 0x04, 0xd8, 0x38, 0x3e, 0xc6, 0x7e, 0x6d, 0x20, 0xb3, 0x46, 0x6e, 0x3f, 0xec, 0x66, 0x13, 0x59,
- 0xae, 0xc3, 0xfd, 0xca, 0xc6, 0x8b, 0x6c, 0x58, 0xff, 0x18, 0x4c, 0xba, 0x6d, 0xb3, 0xde, 0x08,
- 0xc8, 0xc6, 0x89, 0xac, 0xc6, 0x27, 0x3c, 0xe1, 0x1c, 0x3c, 0xcc, 0x79, 0x6b, 0xc8, 0x35, 0xab,
- 0x47, 0xa8, 0xe6, 0x83, 0x86, 0xc9, 0x63, 0x86, 0x87, 0x98, 0xc0, 0x2a, 0x9b, 0xe7, 0xd8, 0xec,
- 0x1f, 0x2a, 0x30, 0xc9, 0x6f, 0x98, 0x6a, 0x9e, 0xb1, 0x36, 0x01, 0x4c, 0xcb, 0xb2, 0x5d, 0xd1,
- 0x5c, 0xdd, 0xa1, 0xdc, 0x85, 0x5b, 0xcc, 0x7b, 0x20, 0x43, 0x20, 0x98, 0x69, 0x02, 0xf8, 0x33,
- 0x3d, 0xcd, 0x36, 0x07, 0x29, 0xb6, 0x85, 0x43, 0xf6, 0x01, 0xe9, 0x2d, 0x36, 0xd0, 0x21, 0x7c,
- 0x67, 0xa5, 0x9f, 0x82, 0xc4, 0x3e, 0x3a, 0xac, 0x5b, 0xec, 0xc1, 0x2c, 0x3d, 0xe0, 0x0f, 0x42,
- 0xe2, 0xde, 0x83, 0x90, 0xc2, 0x8b, 0x30, 0x55, 0xb5, 0x9b, 0xb2, 0xba, 0x05, 0x4d, 0xba, 0xcd,
- 0x77, 0x9e, 0x53, 0x3e, 0x03, 0x7e, 0x8b, 0xf9, 0x63, 0x45, 0xf9, 0xd5, 0x98, 0x7a, 0x6b, 0xbb,
- 0xf0, 0x5b, 0xb1, 0x99, 0x5b, 0x14, 0xba, 0xcd, 0xaf, 0xd4, 0x40, 0x07, 0x0d, 0x54, 0xc5, 0xda,
- 0xc3, 0x6f, 0x7c, 0x0c, 0x9e, 0x3a, 0xac, 0xbb, 0x47, 0x9d, 0xfd, 0xc5, 0xaa, 0xdd, 0xbc, 0x78,
- 0x68, 0x1f, 0xda, 0xfe, 0xd6, 0x27, 0x3e, 0x22, 0x07, 0xe4, 0x13, 0xdb, 0xfe, 0x1c, 0xf5, 0x46,
- 0x67, 0x22, 0xf7, 0x4a, 0x73, 0x65, 0x98, 0x62, 0xc2, 0x15, 0xb2, 0xff, 0x42, 0xef, 0x22, 0xf4,
- 0xbe, 0xcf, 0xb0, 0x32, 0xbf, 0xfd, 0x7d, 0xb2, 0x5c, 0x1b, 0x93, 0x0c, 0x8a, 0xe7, 0xe8, 0x8d,
- 0x46, 0xce, 0x80, 0xd3, 0x01, 0x3e, 0x9a, 0x9a, 0xa8, 0x1d, 0xc1, 0xf8, 0x1d, 0xc6, 0x38, 0x25,
- 0x30, 0xee, 0x30, 0x68, 0xae, 0x08, 0x63, 0x27, 0xe1, 0xfa, 0x77, 0x8c, 0x2b, 0x8d, 0x44, 0x92,
- 0x5b, 0x30, 0x41, 0x48, 0xaa, 0x1d, 0xc7, 0xb5, 0x9b, 0xa4, 0xee, 0xf5, 0xa7, 0xf9, 0xf7, 0xdf,
- 0xa7, 0xb9, 0x32, 0x8e, 0x61, 0x45, 0x0f, 0x95, 0xcb, 0x01, 0xd9, 0x72, 0xaa, 0xa1, 0x6a, 0x23,
- 0x82, 0xe1, 0x2e, 0x53, 0xc4, 0x93, 0xcf, 0x7d, 0x1a, 0x4e, 0xe1, 0xcf, 0xa4, 0x2c, 0x89, 0x9a,
- 0x44, 0x3f, 0xf0, 0xca, 0xfc, 0xe1, 0x67, 0x69, 0x3a, 0x4e, 0x79, 0x04, 0x82, 0x4e, 0x82, 0x17,
- 0x0f, 0x91, 0xeb, 0xa2, 0xb6, 0x53, 0x31, 0x1b, 0x61, 0xea, 0x09, 0x4f, 0x0c, 0x32, 0xbf, 0xf2,
- 0xc3, 0xa0, 0x17, 0x6f, 0x51, 0x64, 0xbe, 0xd1, 0xc8, 0xed, 0xc1, 0x43, 0x21, 0x51, 0x31, 0x00,
- 0xe7, 0x17, 0x18, 0xe7, 0xa9, 0xae, 0xc8, 0xc0, 0xb4, 0xdb, 0xc0, 0xc7, 0x3d, 0x5f, 0x0e, 0xc0,
- 0xf9, 0x8f, 0x18, 0xa7, 0xce, 0xb0, 0xdc, 0xa5, 0x98, 0xf1, 0x36, 0x4c, 0xbe, 0x82, 0xda, 0xfb,
- 0xb6, 0xc3, 0x9e, 0xd2, 0x0c, 0x40, 0xf7, 0x45, 0x46, 0x37, 0xc1, 0x80, 0xe4, 0xb1, 0x0d, 0xe6,
- 0xba, 0x01, 0xc9, 0x03, 0xb3, 0x8a, 0x06, 0xa0, 0xf8, 0x12, 0xa3, 0x18, 0xc1, 0xf2, 0x18, 0x9a,
- 0x87, 0xf4, 0xa1, 0xcd, 0x56, 0xa6, 0x68, 0xf8, 0x97, 0x19, 0x3c, 0xc5, 0x31, 0x8c, 0xa2, 0x65,
- 0xb7, 0x3a, 0x0d, 0xbc, 0x6c, 0x45, 0x53, 0x7c, 0x85, 0x53, 0x70, 0x0c, 0xa3, 0x38, 0x81, 0x59,
- 0xdf, 0xe4, 0x14, 0x8e, 0x60, 0xcf, 0x67, 0x21, 0x65, 0x5b, 0x8d, 0x63, 0xdb, 0x1a, 0x44, 0x89,
- 0xaf, 0x32, 0x06, 0x60, 0x10, 0x4c, 0x70, 0x13, 0x46, 0x07, 0x75, 0xc4, 0xaf, 0xff, 0x90, 0xa7,
- 0x07, 0xf7, 0xc0, 0x2d, 0x98, 0xe0, 0x05, 0xaa, 0x6e, 0x5b, 0x03, 0x50, 0xfc, 0x06, 0xa3, 0x18,
- 0x17, 0x60, 0xec, 0x32, 0x5c, 0xe4, 0xb8, 0x87, 0x68, 0x10, 0x92, 0xaf, 0xf1, 0xcb, 0x60, 0x10,
- 0x66, 0xca, 0x7d, 0x64, 0x55, 0x8f, 0x06, 0x63, 0xf8, 0x3a, 0x37, 0x25, 0xc7, 0x60, 0x8a, 0x22,
- 0x8c, 0x35, 0xcd, 0xb6, 0x73, 0x64, 0x36, 0x06, 0x72, 0xc7, 0x6f, 0x32, 0x8e, 0xb4, 0x07, 0x62,
- 0x16, 0xe9, 0x58, 0x27, 0xa1, 0xf9, 0x2d, 0x6e, 0x11, 0x01, 0xc6, 0x52, 0xcf, 0x71, 0xc9, 0x23,
- 0xad, 0x93, 0xb0, 0xfd, 0x63, 0x9e, 0x7a, 0x14, 0xbb, 0x29, 0x32, 0xde, 0x84, 0x51, 0xa7, 0xfe,
- 0xfa, 0x40, 0x34, 0xff, 0x84, 0x7b, 0x9a, 0x00, 0x30, 0xf8, 0x0e, 0x3c, 0x1c, 0xba, 0x4c, 0x0c,
- 0x40, 0xf6, 0x4f, 0x19, 0xd9, 0x74, 0xc8, 0x52, 0xc1, 0x4a, 0xc2, 0x49, 0x29, 0xff, 0x19, 0x2f,
- 0x09, 0x48, 0xe2, 0xda, 0xc6, 0xf7, 0x0a, 0x8e, 0x79, 0x70, 0x32, 0xab, 0xfd, 0x73, 0x6e, 0x35,
- 0x8a, 0x0d, 0x58, 0x6d, 0x17, 0xa6, 0x19, 0xe3, 0xc9, 0xfc, 0xfa, 0x0d, 0x5e, 0x58, 0x29, 0x7a,
- 0x2f, 0xe8, 0xdd, 0x17, 0x61, 0xc6, 0x33, 0x27, 0x6f, 0x4a, 0x9d, 0x4a, 0xd3, 0x6c, 0x0d, 0xc0,
- 0xfc, 0xdb, 0x8c, 0x99, 0x57, 0x7c, 0xaf, 0xab, 0x75, 0x36, 0xcd, 0x16, 0x26, 0x7f, 0x01, 0x32,
- 0x9c, 0xbc, 0x63, 0xb5, 0x51, 0xd5, 0x3e, 0xb4, 0xea, 0xaf, 0xa3, 0xda, 0x00, 0xd4, 0xdf, 0x94,
- 0x5c, 0xb5, 0x27, 0xc0, 0x31, 0xf3, 0x3a, 0x68, 0x5e, 0xaf, 0x52, 0xa9, 0x37, 0x5b, 0x76, 0xdb,
- 0x8d, 0x60, 0xfc, 0x1d, 0xee, 0x29, 0x0f, 0xb7, 0x4e, 0x60, 0xb9, 0x12, 0x8c, 0x93, 0xc3, 0x41,
- 0x43, 0xf2, 0x77, 0x19, 0xd1, 0x98, 0x8f, 0x62, 0x85, 0xa3, 0x6a, 0x37, 0x5b, 0x66, 0x7b, 0x90,
- 0xfa, 0xf7, 0x2f, 0x78, 0xe1, 0x60, 0x10, 0x56, 0x38, 0xdc, 0xe3, 0x16, 0xc2, 0xab, 0xfd, 0x00,
- 0x0c, 0xdf, 0xe2, 0x85, 0x83, 0x63, 0x18, 0x05, 0x6f, 0x18, 0x06, 0xa0, 0xf8, 0x97, 0x9c, 0x82,
- 0x63, 0x30, 0xc5, 0xa7, 0xfc, 0x85, 0xb6, 0x8d, 0x0e, 0xeb, 0x8e, 0xdb, 0xa6, 0xad, 0x70, 0x7f,
- 0xaa, 0xdf, 0xfb, 0x61, 0xb0, 0x09, 0x33, 0x04, 0x28, 0xae, 0x44, 0xec, 0x11, 0x2a, 0xb9, 0x53,
- 0x8a, 0x56, 0xec, 0xf7, 0x79, 0x25, 0x12, 0x60, 0x58, 0x37, 0xa1, 0x43, 0xc4, 0x66, 0xaf, 0xe2,
- 0xfb, 0x83, 0x01, 0xe8, 0xbe, 0x2d, 0x29, 0xb7, 0xc3, 0xb1, 0x98, 0x53, 0xe8, 0x7f, 0x3a, 0xd6,
- 0xcb, 0xe8, 0x78, 0xa0, 0xe8, 0xfc, 0x57, 0x52, 0xff, 0xb3, 0x47, 0x91, 0xb4, 0x86, 0x4c, 0x48,
- 0xfd, 0x94, 0x1e, 0xf5, 0xb2, 0x4e, 0xe6, 0x2f, 0xbf, 0xcf, 0xae, 0x37, 0xd8, 0x4e, 0xe5, 0x36,
- 0x70, 0x90, 0x07, 0x9b, 0x9e, 0x68, 0xb2, 0xcf, 0xbe, 0xef, 0xc5, 0x79, 0xa0, 0xe7, 0xc9, 0xad,
- 0xc1, 0x58, 0xa0, 0xe1, 0x89, 0xa6, 0xfa, 0x2b, 0x8c, 0x2a, 0x2d, 0xf6, 0x3b, 0xb9, 0x2b, 0x10,
- 0xc7, 0xcd, 0x4b, 0x34, 0xfc, 0xaf, 0x32, 0x38, 0x11, 0xcf, 0x3d, 0x0d, 0x49, 0xde, 0xb4, 0x44,
- 0x43, 0x7f, 0x91, 0x41, 0x3d, 0x08, 0x86, 0xf3, 0x86, 0x25, 0x1a, 0xfe, 0xd7, 0x38, 0x9c, 0x43,
- 0x30, 0x7c, 0x70, 0x13, 0xbe, 0xf5, 0x37, 0xe2, 0x6c, 0xd1, 0xe1, 0xb6, 0xbb, 0x09, 0x23, 0xac,
- 0x53, 0x89, 0x46, 0xff, 0x12, 0x3b, 0x39, 0x47, 0xe4, 0xae, 0x41, 0x62, 0x40, 0x83, 0xff, 0x4d,
- 0x06, 0xa5, 0xf2, 0xb9, 0x22, 0xa4, 0x84, 0xee, 0x24, 0x1a, 0xfe, 0xb7, 0x18, 0x5c, 0x44, 0x61,
- 0xd5, 0x59, 0x77, 0x12, 0x4d, 0xf0, 0xb7, 0xb9, 0xea, 0x0c, 0x81, 0xcd, 0xc6, 0x1b, 0x93, 0x68,
- 0xf4, 0xdf, 0xe1, 0x56, 0xe7, 0x90, 0xdc, 0xb3, 0x30, 0xea, 0x2d, 0x36, 0xd1, 0xf8, 0xbf, 0xcb,
- 0xf0, 0x3e, 0x06, 0x5b, 0x40, 0x58, 0xec, 0xa2, 0x29, 0xfe, 0x1e, 0xb7, 0x80, 0x80, 0xc2, 0x69,
- 0x24, 0x37, 0x30, 0xd1, 0x4c, 0xbf, 0xcc, 0xd3, 0x48, 0xea, 0x5f, 0xb0, 0x37, 0x49, 0xcd, 0x8f,
- 0xa6, 0xf8, 0xfb, 0xdc, 0x9b, 0x44, 0x1e, 0xab, 0x21, 0x77, 0x04, 0xd1, 0x1c, 0xff, 0x90, 0xab,
- 0x21, 0x35, 0x04, 0xb9, 0x6d, 0xd0, 0xbb, 0xbb, 0x81, 0x68, 0xbe, 0xcf, 0x33, 0xbe, 0xc9, 0xae,
- 0x66, 0x20, 0xf7, 0x3c, 0x4c, 0x87, 0x77, 0x02, 0xd1, 0xac, 0xbf, 0xf2, 0xbe, 0x74, 0xef, 0x26,
- 0x36, 0x02, 0xb9, 0x5d, 0x7f, 0x49, 0x11, 0xbb, 0x80, 0x68, 0xda, 0x2f, 0xbc, 0x1f, 0x2c, 0xdc,
- 0x62, 0x13, 0x90, 0xcb, 0x03, 0xf8, 0x0b, 0x70, 0x34, 0xd7, 0x17, 0x19, 0x97, 0x00, 0xc2, 0xa9,
- 0xc1, 0xd6, 0xdf, 0x68, 0xfc, 0x97, 0x78, 0x6a, 0x30, 0x04, 0x4e, 0x0d, 0xbe, 0xf4, 0x46, 0xa3,
- 0xbf, 0xcc, 0x53, 0x83, 0x43, 0x70, 0x64, 0x0b, 0xab, 0x5b, 0x34, 0xc3, 0x57, 0x79, 0x64, 0x0b,
- 0xa8, 0x5c, 0x19, 0x26, 0xbb, 0x16, 0xc4, 0x68, 0xaa, 0x5f, 0x65, 0x54, 0x9a, 0xbc, 0x1e, 0x8a,
- 0x8b, 0x17, 0x5b, 0x0c, 0xa3, 0xd9, 0x7e, 0x4d, 0x5a, 0xbc, 0xd8, 0x5a, 0x98, 0xbb, 0x09, 0x49,
- 0xab, 0xd3, 0x68, 0xe0, 0xe4, 0xd1, 0xfb, 0xbf, 0x60, 0x97, 0xf9, 0x1f, 0x3f, 0x61, 0xd6, 0xe1,
- 0x80, 0xdc, 0x15, 0x48, 0xa0, 0xe6, 0x3e, 0xaa, 0x45, 0x21, 0xff, 0xe7, 0x4f, 0x78, 0xc1, 0xc4,
- 0xd2, 0xb9, 0x67, 0x01, 0xe8, 0xa3, 0x11, 0xb2, 0xed, 0x17, 0x81, 0xfd, 0x5f, 0x3f, 0x61, 0xaf,
- 0xbe, 0xf8, 0x10, 0x9f, 0x80, 0xbe, 0x48, 0xd3, 0x9f, 0xe0, 0x87, 0x41, 0x02, 0xe2, 0x91, 0x1b,
- 0x30, 0xf2, 0x92, 0x63, 0x5b, 0xae, 0x79, 0x18, 0x85, 0xfe, 0xdf, 0x0c, 0xcd, 0xe5, 0xb1, 0xc1,
- 0x9a, 0x76, 0x1b, 0xb9, 0xe6, 0xa1, 0x13, 0x85, 0xfd, 0x3f, 0x0c, 0xeb, 0x01, 0x30, 0xb8, 0x6a,
- 0x3a, 0xee, 0x20, 0xd7, 0xfd, 0x47, 0x1c, 0xcc, 0x01, 0x58, 0x69, 0xfc, 0xf9, 0x65, 0x74, 0x1c,
- 0x85, 0xfd, 0x11, 0x57, 0x9a, 0xc9, 0xe7, 0x9e, 0x86, 0x51, 0xfc, 0x91, 0xbe, 0xcf, 0x16, 0x01,
- 0xfe, 0xbf, 0x0c, 0xec, 0x23, 0xf0, 0x99, 0x1d, 0xb7, 0xe6, 0xd6, 0xa3, 0x8d, 0xfd, 0xc7, 0xcc,
- 0xd3, 0x5c, 0x3e, 0x97, 0x87, 0x94, 0xe3, 0xd6, 0x6a, 0x1d, 0xd6, 0x9f, 0x46, 0xc0, 0xff, 0xdf,
- 0x4f, 0xbc, 0x47, 0x16, 0x1e, 0x06, 0x7b, 0xfb, 0xd5, 0x97, 0xdd, 0x96, 0x4d, 0xb6, 0x39, 0xa2,
- 0x18, 0xde, 0x67, 0x0c, 0x02, 0xa4, 0x50, 0x0a, 0x7f, 0x7c, 0x0b, 0xb7, 0xec, 0x5b, 0x36, 0x7d,
- 0x70, 0xfb, 0x99, 0x6c, 0xf4, 0x13, 0x58, 0xf8, 0x6f, 0x0d, 0xb8, 0xd6, 0x53, 0x0c, 0x2f, 0xc5,
- 0x17, 0xab, 0x76, 0x73, 0xdf, 0x76, 0x2e, 0xee, 0xdb, 0xee, 0xd1, 0x45, 0xf7, 0x08, 0xe1, 0x31,
- 0xf6, 0xc8, 0x36, 0x8e, 0x3f, 0xcf, 0x9c, 0xec, 0x39, 0x2f, 0xd9, 0xc5, 0x2f, 0xd7, 0xf1, 0xa5,
- 0x95, 0xc9, 0x46, 0x8a, 0x7e, 0x06, 0x86, 0xc9, 0xc5, 0x5e, 0x22, 0x9b, 0x95, 0x4a, 0x21, 0x7e,
- 0xf7, 0x9d, 0xb9, 0x21, 0x83, 0x8d, 0x79, 0xb3, 0xcb, 0xe4, 0x49, 0x77, 0x2c, 0x30, 0xbb, 0xec,
- 0xcd, 0x5e, 0xa6, 0x0f, 0xbb, 0x03, 0xb3, 0x97, 0xbd, 0xd9, 0x15, 0xf2, 0xd8, 0x5b, 0x0d, 0xcc,
- 0xae, 0x78, 0xb3, 0x57, 0xc8, 0xd6, 0xce, 0x58, 0x60, 0xf6, 0x8a, 0x37, 0x7b, 0x95, 0x6c, 0xe8,
- 0xc4, 0x03, 0xb3, 0x57, 0xbd, 0xd9, 0x6b, 0x64, 0x2f, 0x67, 0x32, 0x30, 0x7b, 0xcd, 0x9b, 0xbd,
- 0x4e, 0xf6, 0x70, 0xf4, 0xc0, 0xec, 0x75, 0x6f, 0xf6, 0x06, 0x79, 0x41, 0x6a, 0x24, 0x30, 0x7b,
- 0x43, 0x9f, 0x85, 0x11, 0x7a, 0xe5, 0x4b, 0x64, 0xc3, 0x7f, 0x82, 0x4d, 0xf3, 0x41, 0x7f, 0xfe,
- 0x12, 0x79, 0x19, 0x6a, 0x38, 0x38, 0x7f, 0xc9, 0x9f, 0x5f, 0x26, 0xdf, 0xcb, 0xd0, 0x82, 0xf3,
- 0xcb, 0xfe, 0xfc, 0xe5, 0xcc, 0x18, 0x79, 0x21, 0x2c, 0x30, 0x7f, 0xd9, 0x9f, 0x5f, 0xc9, 0x8c,
- 0xe3, 0x8c, 0x09, 0xce, 0xaf, 0xf8, 0xf3, 0x57, 0x32, 0x13, 0x67, 0x95, 0xf9, 0x74, 0x70, 0xfe,
- 0x4a, 0xf6, 0x17, 0x88, 0x7b, 0x2d, 0xdf, 0xbd, 0xd3, 0x41, 0xf7, 0x7a, 0x8e, 0x9d, 0x0e, 0x3a,
- 0xd6, 0x73, 0xe9, 0x74, 0xd0, 0xa5, 0x9e, 0x33, 0xa7, 0x83, 0xce, 0xf4, 0xdc, 0x38, 0x1d, 0x74,
- 0xa3, 0xe7, 0xc0, 0xe9, 0xa0, 0x03, 0x3d, 0xd7, 0x4d, 0x07, 0x5d, 0xe7, 0x39, 0x6d, 0x3a, 0xe8,
- 0x34, 0xcf, 0x5d, 0xd3, 0x41, 0x77, 0x79, 0x8e, 0xca, 0x48, 0x8e, 0xf2, 0x5d, 0x94, 0x91, 0x5c,
- 0xe4, 0x3b, 0x27, 0x23, 0x39, 0xc7, 0x77, 0x4b, 0x46, 0x72, 0x8b, 0xef, 0x90, 0x8c, 0xe4, 0x10,
- 0xdf, 0x15, 0x19, 0xc9, 0x15, 0xbe, 0x13, 0x58, 0x8e, 0x19, 0xa8, 0x15, 0x92, 0x63, 0x6a, 0xdf,
- 0x1c, 0x53, 0xfb, 0xe6, 0x98, 0xda, 0x37, 0xc7, 0xd4, 0xbe, 0x39, 0xa6, 0xf6, 0xcd, 0x31, 0xb5,
- 0x6f, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9b, 0x63, 0x6a, 0xff, 0x1c, 0x53, 0x23, 0x72, 0x4c,
- 0x8d, 0xc8, 0x31, 0x35, 0x22, 0xc7, 0xd4, 0x88, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0xed, 0x99, 0x63,
- 0xbe, 0x7b, 0xa7, 0x83, 0xee, 0x0d, 0xcd, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed,
- 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23, 0xc7, 0xd4, 0x1e, 0x39, 0xa6,
- 0xf6, 0xca, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0x3d, 0x73, 0x4c, 0xed, 0x99, 0x63, 0x6a, 0xcf, 0x1c,
- 0x53, 0x7b, 0xe6, 0x98, 0x2a, 0xe6, 0xd8, 0xbf, 0x56, 0x41, 0xa7, 0x39, 0xb6, 0x4d, 0x5e, 0x19,
- 0x63, 0xae, 0x98, 0x95, 0x32, 0x6d, 0x18, 0xbb, 0x4e, 0xf3, 0x5d, 0x32, 0x2b, 0xe5, 0x5a, 0x70,
- 0x7e, 0xd9, 0x9b, 0xe7, 0xd9, 0x16, 0x9c, 0xbf, 0xec, 0xcd, 0xf3, 0x7c, 0x0b, 0xce, 0xaf, 0x78,
- 0xf3, 0x3c, 0xe3, 0x82, 0xf3, 0x57, 0xbc, 0x79, 0x9e, 0x73, 0xc1, 0xf9, 0xab, 0xde, 0x3c, 0xcf,
- 0xba, 0xe0, 0xfc, 0x35, 0x6f, 0x9e, 0xe7, 0x5d, 0x70, 0xfe, 0xba, 0x37, 0xcf, 0x33, 0x2f, 0x38,
- 0x7f, 0x43, 0x3f, 0x2b, 0xe7, 0x1e, 0x17, 0xf0, 0x5c, 0x7b, 0x56, 0xce, 0x3e, 0x49, 0xe2, 0x92,
- 0x2f, 0xc1, 0xf3, 0x4f, 0x92, 0x58, 0xf6, 0x25, 0x78, 0x06, 0x4a, 0x12, 0x97, 0xb3, 0x9f, 0x23,
- 0xee, 0xb3, 0x64, 0xf7, 0xcd, 0x48, 0xee, 0x8b, 0x09, 0xae, 0x9b, 0x91, 0x5c, 0x17, 0x13, 0xdc,
- 0x36, 0x23, 0xb9, 0x2d, 0x26, 0xb8, 0x6c, 0x46, 0x72, 0x59, 0x4c, 0x70, 0xd7, 0x8c, 0xe4, 0xae,
- 0x98, 0xe0, 0xaa, 0x19, 0xc9, 0x55, 0x31, 0xc1, 0x4d, 0x33, 0x92, 0x9b, 0x62, 0x82, 0x8b, 0x66,
- 0x24, 0x17, 0xc5, 0x04, 0xf7, 0xcc, 0x48, 0xee, 0x89, 0x09, 0xae, 0x39, 0x23, 0xbb, 0x26, 0x26,
- 0xba, 0xe5, 0x8c, 0xec, 0x96, 0x98, 0xe8, 0x92, 0x33, 0xb2, 0x4b, 0x62, 0xa2, 0x3b, 0xce, 0xc8,
- 0xee, 0x88, 0x89, 0xae, 0xf8, 0x93, 0x18, 0xef, 0x08, 0x77, 0xdc, 0x76, 0xa7, 0xea, 0x3e, 0x50,
- 0x47, 0xb8, 0x14, 0x68, 0x1f, 0x52, 0xcb, 0xfa, 0x22, 0x69, 0x58, 0xc5, 0x8e, 0x53, 0x5a, 0xc1,
- 0x96, 0x02, 0x8d, 0x85, 0x80, 0xb0, 0xc2, 0x11, 0x2b, 0x0f, 0xd4, 0x1b, 0x2e, 0x05, 0xda, 0x8c,
- 0x68, 0xfd, 0xae, 0x7f, 0xe8, 0x1d, 0xdb, 0x5b, 0x31, 0xde, 0xb1, 0x31, 0xf3, 0x9f, 0xb4, 0x63,
- 0x5b, 0x88, 0x36, 0xb9, 0x67, 0xec, 0x85, 0x68, 0x63, 0x77, 0xad, 0x3a, 0x83, 0x76, 0x70, 0x0b,
- 0xd1, 0xa6, 0xf5, 0x8c, 0xfa, 0xc1, 0xf6, 0x5b, 0x2c, 0x82, 0x0d, 0xd4, 0x0a, 0x89, 0xe0, 0x93,
- 0xf6, 0x5b, 0x4b, 0x81, 0x52, 0x72, 0xd2, 0x08, 0x56, 0x4f, 0x1c, 0xc1, 0x27, 0xed, 0xbc, 0x96,
- 0x02, 0xe5, 0xe5, 0xc4, 0x11, 0xfc, 0x21, 0xf4, 0x43, 0x2c, 0x82, 0x7d, 0xf3, 0x9f, 0xb4, 0x1f,
- 0x5a, 0x88, 0x36, 0x79, 0x68, 0x04, 0xab, 0x27, 0x88, 0xe0, 0x41, 0xfa, 0xa3, 0x85, 0x68, 0xd3,
- 0x86, 0x47, 0xf0, 0x03, 0x77, 0x33, 0x5f, 0x51, 0x60, 0xb2, 0x5c, 0xaf, 0x95, 0x9a, 0xfb, 0xa8,
- 0x56, 0x43, 0x35, 0x66, 0xc7, 0xa5, 0x40, 0x25, 0xe8, 0xe1, 0xea, 0xb7, 0xdf, 0x99, 0xf3, 0x2d,
- 0x7c, 0x05, 0x92, 0xd4, 0xa6, 0x4b, 0x4b, 0x99, 0xbb, 0x4a, 0x44, 0x85, 0xf3, 0x44, 0xf5, 0x73,
- 0x1c, 0x76, 0x69, 0x29, 0xf3, 0x9f, 0x14, 0xa1, 0xca, 0x79, 0xc3, 0xd9, 0x5f, 0x26, 0x1a, 0x5a,
- 0x0f, 0xac, 0xe1, 0xc5, 0x81, 0x34, 0x14, 0x74, 0x7b, 0xa4, 0x4b, 0x37, 0x41, 0xab, 0x0e, 0x4c,
- 0x94, 0xeb, 0xb5, 0x32, 0xf9, 0x45, 0x80, 0x41, 0x54, 0xa2, 0x32, 0x52, 0x3d, 0x58, 0x0a, 0x84,
- 0xa5, 0x88, 0xf0, 0x42, 0x3a, 0x58, 0x23, 0xb2, 0x75, 0x7c, 0x5a, 0x2b, 0x70, 0xda, 0x85, 0x5e,
- 0xa7, 0xf5, 0x2b, 0xbb, 0x77, 0xc2, 0x85, 0x5e, 0x27, 0xf4, 0x73, 0xc8, 0x3b, 0xd5, 0x6b, 0x7c,
- 0x71, 0xa6, 0x2f, 0x6e, 0xe9, 0x67, 0x20, 0xb6, 0x4e, 0xdf, 0x2b, 0x4f, 0x17, 0xd2, 0x58, 0xa9,
- 0xef, 0xbe, 0x33, 0x17, 0xdf, 0xeb, 0xd4, 0x6b, 0x46, 0x6c, 0xbd, 0xa6, 0xdf, 0x86, 0xc4, 0xa7,
- 0xd9, 0xf7, 0x52, 0xb1, 0xc0, 0x0a, 0x13, 0xf8, 0x78, 0xc4, 0x23, 0x26, 0x42, 0xbd, 0xb8, 0x57,
- 0xb7, 0xdc, 0x4b, 0xcb, 0xd7, 0x0d, 0x4a, 0x91, 0xfd, 0x73, 0x00, 0xf4, 0x9c, 0xab, 0xa6, 0x73,
- 0xa4, 0x97, 0x39, 0x33, 0x3d, 0xf5, 0xf5, 0xef, 0xbe, 0x33, 0xb7, 0x32, 0x08, 0xeb, 0x53, 0x35,
- 0xd3, 0x39, 0x7a, 0xca, 0x3d, 0x6e, 0xa1, 0xc5, 0xc2, 0xb1, 0x8b, 0x1c, 0xce, 0xde, 0xe2, 0xab,
- 0x1e, 0xbb, 0xae, 0x8c, 0x70, 0x5d, 0xc9, 0xc0, 0x35, 0xad, 0x05, 0xaf, 0x69, 0xe9, 0x7e, 0xaf,
- 0xe7, 0x35, 0xbe, 0x48, 0x48, 0x96, 0x54, 0xa3, 0x2c, 0xa9, 0x3e, 0xa8, 0x25, 0x5b, 0xbc, 0x3e,
- 0x4a, 0xd7, 0xaa, 0xf6, 0xbb, 0x56, 0xf5, 0x41, 0xae, 0xf5, 0xff, 0xd3, 0x6c, 0xf5, 0xf2, 0x69,
- 0xcf, 0xa2, 0xef, 0xb4, 0xfe, 0xd9, 0x7a, 0x16, 0xf4, 0x81, 0x76, 0x01, 0xb9, 0xf8, 0xdd, 0x37,
- 0xe7, 0x94, 0xec, 0x57, 0x62, 0xfc, 0xca, 0x69, 0x22, 0xdd, 0xdf, 0x95, 0xff, 0x59, 0xe9, 0xa9,
- 0x3e, 0x0c, 0x0b, 0x7d, 0x59, 0x81, 0xe9, 0xae, 0x4a, 0x4e, 0xcd, 0xf4, 0xc1, 0x96, 0x73, 0xeb,
- 0xa4, 0xe5, 0x9c, 0x29, 0xf8, 0xbb, 0x0a, 0x9c, 0x92, 0xca, 0x2b, 0x55, 0xef, 0xa2, 0xa4, 0xde,
- 0x43, 0xdd, 0x67, 0x22, 0x82, 0x82, 0x76, 0xa2, 0x7b, 0x25, 0x80, 0xc0, 0xec, 0xf9, 0x7d, 0x45,
- 0xf2, 0xfb, 0x19, 0x0f, 0x10, 0x62, 0x2e, 0x1e, 0x01, 0x4c, 0x6d, 0x1b, 0xe2, 0xbb, 0x6d, 0x84,
- 0xf4, 0x59, 0x88, 0x6d, 0xb5, 0x99, 0x86, 0xe3, 0x14, 0xbf, 0xd5, 0x2e, 0xb4, 0x4d, 0xab, 0x7a,
- 0x64, 0xc4, 0xb6, 0xda, 0xfa, 0x39, 0x50, 0xf3, 0xec, 0x3b, 0xf1, 0xa9, 0xe5, 0x09, 0x2a, 0x90,
- 0xb7, 0x6a, 0x4c, 0x02, 0xcf, 0xe9, 0xb3, 0x10, 0xdf, 0x40, 0xe6, 0x01, 0x53, 0x02, 0xa8, 0x0c,
- 0x1e, 0x31, 0xc8, 0x38, 0x3b, 0xe1, 0x0b, 0x90, 0xe4, 0xc4, 0xfa, 0x79, 0x8c, 0x38, 0x70, 0xd9,
- 0x69, 0x19, 0x02, 0xab, 0xc3, 0x56, 0x2e, 0x32, 0xab, 0x5f, 0x80, 0x84, 0x51, 0x3f, 0x3c, 0x72,
- 0xd9, 0xc9, 0xbb, 0xc5, 0xe8, 0x74, 0xf6, 0x0e, 0x8c, 0x7a, 0x1a, 0x7d, 0xc0, 0xd4, 0xab, 0xf4,
- 0xd2, 0xf4, 0x19, 0x71, 0x3d, 0xe1, 0xcf, 0x2d, 0xe9, 0x90, 0x7e, 0x16, 0x92, 0x3b, 0x6e, 0xdb,
- 0x2f, 0xfa, 0xbc, 0x23, 0xf5, 0x46, 0xb3, 0xbf, 0xa0, 0x40, 0x72, 0x15, 0xa1, 0x16, 0x31, 0xf8,
- 0xe3, 0x10, 0x5f, 0xb5, 0x5f, 0xb5, 0x98, 0x82, 0x93, 0xcc, 0xa2, 0x78, 0x9a, 0xd9, 0x94, 0x4c,
- 0xeb, 0x8f, 0x8b, 0x76, 0x9f, 0xf2, 0xec, 0x2e, 0xc8, 0x11, 0xdb, 0x67, 0x03, 0xb6, 0x67, 0x0e,
- 0xc4, 0x42, 0x5d, 0xf6, 0xbf, 0x06, 0x29, 0xe1, 0x2c, 0xfa, 0x3c, 0x53, 0x23, 0x26, 0x03, 0x45,
- 0x5b, 0x61, 0x89, 0x2c, 0x82, 0xb1, 0xc0, 0x89, 0x31, 0x54, 0x30, 0x71, 0x0f, 0x28, 0x31, 0xf3,
- 0x42, 0xd0, 0xcc, 0xe1, 0xa2, 0xcc, 0xd4, 0x4b, 0xd4, 0x46, 0xc4, 0xdc, 0xe7, 0x69, 0x70, 0xf6,
- 0x76, 0x22, 0xfe, 0x9c, 0x4d, 0x80, 0x5a, 0xae, 0x37, 0xb2, 0x4f, 0x03, 0xd0, 0x94, 0x2f, 0x59,
- 0x9d, 0xa6, 0x94, 0x75, 0xe3, 0xdc, 0xc0, 0xbb, 0x47, 0x68, 0x17, 0x39, 0x44, 0x24, 0xd8, 0x4f,
- 0xe1, 0x02, 0x03, 0x34, 0xc5, 0x08, 0xfe, 0xc9, 0x48, 0x7c, 0x68, 0x27, 0x86, 0x45, 0x33, 0x54,
- 0xf4, 0x0e, 0x72, 0xf3, 0x96, 0xed, 0x1e, 0xa1, 0xb6, 0x84, 0x58, 0xd6, 0x2f, 0x07, 0x12, 0x76,
- 0x7c, 0xf9, 0x11, 0x0f, 0xd1, 0x13, 0x74, 0x39, 0xfb, 0x0d, 0xa2, 0x20, 0x6e, 0x05, 0xba, 0x2e,
- 0x50, 0x1d, 0xe0, 0x02, 0xf5, 0xab, 0x81, 0xfe, 0xad, 0x8f, 0x9a, 0xd2, 0xad, 0xe5, 0x8d, 0xc0,
- 0x7d, 0x4e, 0x7f, 0x65, 0x83, 0xf7, 0x98, 0xdc, 0xa6, 0x5c, 0xe5, 0x27, 0x23, 0x55, 0xee, 0xd1,
- 0xdd, 0x9e, 0xd4, 0xa6, 0xea, 0xa0, 0x36, 0xfd, 0xb6, 0xd7, 0x71, 0xd0, 0x1f, 0x1e, 0x21, 0x3f,
- 0xd9, 0xa3, 0x7f, 0x3c, 0xd2, 0xf7, 0x39, 0xa5, 0xe8, 0xa9, 0xba, 0x32, 0xa8, 0xfb, 0x73, 0xb1,
- 0x42, 0xc1, 0x53, 0xf7, 0xda, 0x09, 0x42, 0x20, 0x17, 0x2b, 0x16, 0xbd, 0xb2, 0x9d, 0xfc, 0xdc,
- 0x9b, 0x73, 0xca, 0xd7, 0xdf, 0x9c, 0x1b, 0xca, 0xfe, 0xa6, 0x02, 0x93, 0x4c, 0x52, 0x08, 0xdc,
- 0xa7, 0x24, 0xe5, 0x4f, 0xf3, 0x9a, 0x11, 0x66, 0x81, 0x9f, 0x5a, 0xf0, 0x7e, 0x47, 0x81, 0x4c,
- 0x97, 0xae, 0xdc, 0xde, 0x4b, 0x03, 0xa9, 0x9c, 0x53, 0x4a, 0x3f, 0x7b, 0x9b, 0xdf, 0x81, 0xc4,
- 0x6e, 0xbd, 0x89, 0xda, 0x78, 0x25, 0xc0, 0x1f, 0xa8, 0xca, 0x7c, 0x33, 0x87, 0x0e, 0xf1, 0x39,
- 0xaa, 0x5c, 0x60, 0x6e, 0x59, 0xcf, 0x40, 0x7c, 0xd5, 0x74, 0x4d, 0xa2, 0x41, 0xda, 0xab, 0xaf,
- 0xa6, 0x6b, 0x66, 0x2f, 0x43, 0x7a, 0xf3, 0x98, 0xbc, 0x88, 0x54, 0x23, 0xef, 0xa0, 0x04, 0xbb,
- 0x3f, 0xde, 0xaf, 0x5e, 0x5a, 0x48, 0x24, 0x6b, 0xda, 0x5d, 0x25, 0x17, 0x27, 0xfa, 0xbc, 0x02,
- 0xe3, 0x5b, 0x58, 0x6d, 0x82, 0x23, 0xb0, 0xb3, 0xa0, 0x6c, 0x06, 0x1b, 0x21, 0x91, 0xd5, 0x50,
- 0x36, 0xa5, 0xf6, 0x51, 0xf5, 0xcc, 0x23, 0xb5, 0x6d, 0xaa, 0xd7, 0xb6, 0x2d, 0xc4, 0x93, 0xe3,
- 0xda, 0xe4, 0x42, 0x3c, 0x09, 0xda, 0x18, 0x3b, 0xef, 0x7f, 0x50, 0x41, 0xa3, 0xad, 0xce, 0x2a,
- 0x3a, 0xa8, 0x5b, 0x75, 0xb7, 0xbb, 0x5f, 0xf5, 0x34, 0xd6, 0x9f, 0x85, 0x51, 0x6c, 0xd2, 0x35,
- 0xf6, 0xcb, 0x7d, 0xd8, 0xf4, 0xe7, 0x58, 0x8b, 0x22, 0x51, 0xb0, 0x01, 0x12, 0x3a, 0x3e, 0x46,
- 0x5f, 0x03, 0xb5, 0x5c, 0xde, 0x64, 0x8b, 0xdb, 0x4a, 0x5f, 0x28, 0x7b, 0xd9, 0x87, 0x1d, 0xb1,
- 0x31, 0xe7, 0xd0, 0xc0, 0x04, 0xfa, 0x0a, 0xc4, 0xca, 0x9b, 0xac, 0xe1, 0x3d, 0x3f, 0x08, 0x8d,
- 0x11, 0x2b, 0x6f, 0xce, 0xfc, 0x1b, 0x05, 0xc6, 0x02, 0xa3, 0x7a, 0x16, 0xd2, 0x74, 0x40, 0xb8,
- 0xdc, 0x61, 0x23, 0x30, 0xc6, 0x75, 0x8e, 0x3d, 0xa0, 0xce, 0x33, 0x79, 0x98, 0x90, 0xc6, 0xf5,
- 0x45, 0xd0, 0xc5, 0x21, 0xa6, 0x04, 0xfd, 0xd5, 0xb0, 0x90, 0x99, 0xec, 0xa3, 0x00, 0xbe, 0x5d,
- 0xbd, 0x1f, 0xbb, 0x2a, 0x97, 0x76, 0x76, 0x4b, 0xab, 0x9a, 0x92, 0xfd, 0x96, 0x02, 0x29, 0xd6,
- 0xb6, 0x56, 0xed, 0x16, 0xd2, 0x0b, 0xa0, 0xe4, 0x59, 0x04, 0xdd, 0x9f, 0xde, 0x4a, 0x5e, 0xbf,
- 0x08, 0x4a, 0x61, 0x70, 0x57, 0x2b, 0x05, 0x7d, 0x19, 0x94, 0x22, 0x73, 0xf0, 0x60, 0x9e, 0x51,
- 0x8a, 0xd9, 0x3f, 0x56, 0x61, 0x4a, 0x6c, 0xa3, 0x79, 0x3d, 0x39, 0x17, 0xbc, 0x6f, 0xca, 0x8d,
- 0x5e, 0x5a, 0xbe, 0xbc, 0xb2, 0x88, 0xff, 0xf1, 0x42, 0x32, 0x1b, 0xbc, 0x85, 0xca, 0x81, 0x27,
- 0x72, 0xa9, 0xd7, 0x7b, 0x22, 0xb9, 0xb8, 0xc0, 0xd0, 0xf5, 0x9e, 0x48, 0x60, 0xb6, 0xeb, 0x3d,
- 0x91, 0xc0, 0x6c, 0xd7, 0x7b, 0x22, 0x81, 0xd9, 0xae, 0xbd, 0x80, 0xc0, 0x6c, 0xd7, 0x7b, 0x22,
- 0x81, 0xd9, 0xae, 0xf7, 0x44, 0x02, 0xb3, 0xdd, 0xef, 0x89, 0xb0, 0xe9, 0x9e, 0xef, 0x89, 0x04,
- 0xe7, 0xbb, 0xdf, 0x13, 0x09, 0xce, 0x77, 0xbf, 0x27, 0x92, 0x8b, 0xbb, 0xed, 0x0e, 0xea, 0xbd,
- 0xeb, 0x10, 0xc4, 0xf7, 0xbb, 0x09, 0xf4, 0x2b, 0xf0, 0x16, 0x4c, 0xd0, 0x07, 0x12, 0x45, 0xdb,
- 0x72, 0xcd, 0xba, 0x85, 0xda, 0xfa, 0x27, 0x20, 0x4d, 0x87, 0xe8, 0x6d, 0x4e, 0xd8, 0x6d, 0x20,
- 0x9d, 0x67, 0xf5, 0x36, 0x20, 0x9d, 0xfd, 0x93, 0x38, 0x4c, 0xd3, 0x81, 0xb2, 0xd9, 0x44, 0x81,
- 0xb7, 0x8c, 0x2e, 0x48, 0x7b, 0x4a, 0xe3, 0x18, 0x7e, 0xef, 0x9d, 0x39, 0x3a, 0x9a, 0xf7, 0xa2,
- 0xe9, 0x82, 0xb4, 0xbb, 0x14, 0x94, 0xf3, 0x17, 0xa0, 0x0b, 0xd2, 0x9b, 0x47, 0x41, 0x39, 0x6f,
- 0xbd, 0xf1, 0xe4, 0xf8, 0x3b, 0x48, 0x41, 0xb9, 0x55, 0x2f, 0xca, 0x2e, 0x48, 0x6f, 0x23, 0x05,
- 0xe5, 0x4a, 0x5e, 0xbc, 0x5d, 0x90, 0xf6, 0x9e, 0x82, 0x72, 0x6b, 0x5e, 0xe4, 0x5d, 0x90, 0x76,
- 0xa1, 0x82, 0x72, 0xb7, 0xbc, 0x18, 0xbc, 0x20, 0xbd, 0xab, 0x14, 0x94, 0x7b, 0xce, 0x8b, 0xc6,
- 0x0b, 0xd2, 0x5b, 0x4b, 0x41, 0xb9, 0x75, 0x2f, 0x2e, 0xe7, 0xe5, 0xf7, 0x97, 0x82, 0x82, 0xb7,
- 0xfd, 0x08, 0x9d, 0x97, 0xdf, 0x64, 0x0a, 0x4a, 0x7e, 0xd2, 0x8f, 0xd5, 0x79, 0xf9, 0x9d, 0xa6,
- 0xa0, 0xe4, 0x86, 0x1f, 0xb5, 0xf3, 0xf2, 0x5e, 0x59, 0x50, 0x72, 0xd3, 0x8f, 0xdf, 0x79, 0x79,
- 0xd7, 0x2c, 0x28, 0x59, 0xf6, 0x23, 0x79, 0x5e, 0xde, 0x3f, 0x0b, 0x4a, 0x6e, 0xf9, 0x0f, 0xd1,
- 0xff, 0x40, 0x0a, 0x3f, 0xe1, 0x2d, 0xa8, 0xac, 0x14, 0x7e, 0x10, 0x12, 0x7a, 0x52, 0x21, 0x13,
- 0x64, 0xfc, 0xb0, 0xcb, 0x4a, 0x61, 0x07, 0x21, 0x21, 0x97, 0x95, 0x42, 0x0e, 0x42, 0xc2, 0x2d,
- 0x2b, 0x85, 0x1b, 0x84, 0x84, 0x5a, 0x56, 0x0a, 0x35, 0x08, 0x09, 0xb3, 0xac, 0x14, 0x66, 0x10,
- 0x12, 0x62, 0x59, 0x29, 0xc4, 0x20, 0x24, 0xbc, 0xb2, 0x52, 0x78, 0x41, 0x48, 0x68, 0x9d, 0x97,
- 0x43, 0x0b, 0xc2, 0xc2, 0xea, 0xbc, 0x1c, 0x56, 0x10, 0x16, 0x52, 0x8f, 0xc9, 0x21, 0x35, 0x7a,
- 0xef, 0x9d, 0xb9, 0x04, 0x1e, 0x12, 0xa2, 0xe9, 0xbc, 0x1c, 0x4d, 0x10, 0x16, 0x49, 0xe7, 0xe5,
- 0x48, 0x82, 0xb0, 0x28, 0x3a, 0x2f, 0x47, 0x11, 0x84, 0x45, 0xd0, 0x5b, 0x72, 0x04, 0xf9, 0xef,
- 0xf8, 0x64, 0xa5, 0x2d, 0xc5, 0xa8, 0x08, 0x52, 0x07, 0x88, 0x20, 0x75, 0x80, 0x08, 0x52, 0x07,
- 0x88, 0x20, 0x75, 0x80, 0x08, 0x52, 0x07, 0x88, 0x20, 0x75, 0x80, 0x08, 0x52, 0x07, 0x88, 0x20,
- 0x75, 0x90, 0x08, 0x52, 0x07, 0x8a, 0x20, 0xb5, 0x57, 0x04, 0x9d, 0x97, 0xdf, 0x78, 0x80, 0xb0,
- 0x82, 0x74, 0x5e, 0xde, 0xfa, 0x8c, 0x0e, 0x21, 0x75, 0xa0, 0x10, 0x52, 0x7b, 0x85, 0xd0, 0x1f,
- 0xa8, 0x30, 0x15, 0x08, 0x21, 0xb6, 0x3f, 0xf4, 0x41, 0x55, 0xa0, 0xab, 0x03, 0xbc, 0x60, 0x11,
- 0x16, 0x53, 0x57, 0x07, 0xd8, 0xa4, 0xee, 0x17, 0x67, 0xdd, 0x55, 0xa8, 0x34, 0x40, 0x15, 0x5a,
- 0xf3, 0x62, 0xe8, 0xea, 0x00, 0x2f, 0x5e, 0x74, 0xc7, 0xde, 0xf5, 0x7e, 0x45, 0xe0, 0xb9, 0x81,
- 0x8a, 0xc0, 0xfa, 0x40, 0x45, 0xe0, 0xb6, 0xef, 0xc1, 0x5f, 0x8c, 0xc1, 0x29, 0xdf, 0x83, 0xf4,
- 0x13, 0xf9, 0x65, 0xad, 0xac, 0xb0, 0x45, 0xa5, 0xf3, 0x6d, 0x1b, 0xc1, 0x8d, 0xb1, 0xf5, 0x9a,
- 0xbe, 0x1d, 0xdc, 0xac, 0xca, 0x9d, 0x74, 0x03, 0x47, 0xf0, 0x38, 0x7b, 0x18, 0x7a, 0x1e, 0xd4,
- 0xf5, 0x9a, 0x43, 0xaa, 0x45, 0xd8, 0x69, 0x8b, 0x06, 0x9e, 0xd6, 0x0d, 0x18, 0x26, 0xe2, 0x0e,
- 0x71, 0xef, 0x83, 0x9c, 0x78, 0xd5, 0x60, 0x4c, 0xd9, 0xb7, 0x14, 0x38, 0x1b, 0x08, 0xe5, 0x0f,
- 0x66, 0xcb, 0xe0, 0xe6, 0x40, 0x5b, 0x06, 0x81, 0x04, 0xf1, 0xb7, 0x0f, 0x9e, 0xe8, 0xde, 0xa9,
- 0x16, 0xb3, 0x44, 0xde, 0x4a, 0xf8, 0x4b, 0x30, 0xee, 0x5f, 0x01, 0xb9, 0x67, 0xbb, 0x12, 0xfd,
- 0x34, 0x33, 0x2c, 0x35, 0xaf, 0x48, 0x4f, 0xd1, 0xfa, 0xc2, 0xbc, 0x6c, 0xcd, 0xe6, 0x60, 0xa2,
- 0x1c, 0xfc, 0x4a, 0x54, 0xd4, 0xc3, 0x88, 0x24, 0x6e, 0xcd, 0xef, 0x7e, 0x75, 0x6e, 0x28, 0xfb,
- 0x71, 0x48, 0x8b, 0xdf, 0x7a, 0x92, 0x80, 0xa3, 0x1c, 0x98, 0x8b, 0xbf, 0x8d, 0xa5, 0xff, 0x81,
- 0x02, 0xa7, 0x45, 0xf1, 0xe7, 0xeb, 0xee, 0xd1, 0xba, 0x85, 0x7b, 0xfa, 0xa7, 0x21, 0x89, 0x98,
- 0xe3, 0xd8, 0x8f, 0xe4, 0xb0, 0xfb, 0xc8, 0x50, 0xf1, 0x45, 0xf2, 0xaf, 0xe1, 0x41, 0xa4, 0x67,
- 0x1c, 0xfc, 0xb4, 0xcb, 0x33, 0x8f, 0x43, 0x82, 0xf2, 0x07, 0xf5, 0x1a, 0x93, 0xf4, 0xfa, 0xf5,
- 0x10, 0xbd, 0x48, 0x1c, 0xe9, 0xb7, 0x03, 0x7a, 0x09, 0xb7, 0xab, 0xa1, 0xe2, 0x8b, 0x3c, 0xf8,
- 0x0a, 0x49, 0xdc, 0xff, 0x91, 0x88, 0x8a, 0x56, 0x72, 0x1e, 0x92, 0x25, 0x59, 0x26, 0x5c, 0xcf,
- 0x55, 0x88, 0x97, 0xed, 0x1a, 0xf9, 0xf9, 0x1e, 0xf2, 0x7b, 0xd5, 0xcc, 0xc8, 0xec, 0xc7, 0xab,
- 0x2f, 0x40, 0xb2, 0x78, 0x54, 0x6f, 0xd4, 0xda, 0xc8, 0x62, 0x7b, 0xf6, 0xec, 0x11, 0x3a, 0xc6,
- 0x18, 0xde, 0x5c, 0xb6, 0x08, 0x93, 0x65, 0xdb, 0x2a, 0x1c, 0xbb, 0x62, 0xdd, 0x58, 0x94, 0x52,
- 0x84, 0xed, 0xf9, 0x90, 0x6f, 0x89, 0x60, 0x81, 0x42, 0xe2, 0xbb, 0xef, 0xcc, 0x29, 0xbb, 0xde,
- 0xf3, 0xf3, 0x4d, 0x78, 0x88, 0xa5, 0x4f, 0x17, 0xd5, 0x72, 0x14, 0xd5, 0x28, 0xdb, 0xa7, 0x16,
- 0xe8, 0xd6, 0x31, 0x9d, 0x15, 0x4a, 0x77, 0x7f, 0x9a, 0xe1, 0xa6, 0xa8, 0xaf, 0x66, 0xea, 0x89,
- 0x34, 0x0b, 0xa5, 0x5b, 0x8c, 0xa2, 0x93, 0x34, 0x7b, 0x0c, 0x46, 0xbd, 0x39, 0x21, 0x1a, 0xc4,
- 0x4c, 0x59, 0x5e, 0xc8, 0x42, 0x4a, 0x48, 0x58, 0x3d, 0x01, 0x4a, 0x5e, 0x1b, 0xc2, 0xff, 0x15,
- 0x34, 0x05, 0xff, 0x57, 0xd4, 0x62, 0x0b, 0x8f, 0xc3, 0x84, 0xf4, 0xfc, 0x12, 0xcf, 0xac, 0x6a,
- 0x80, 0xff, 0x2b, 0x69, 0xa9, 0x99, 0xf8, 0xe7, 0x7e, 0x6d, 0x76, 0x68, 0xe1, 0x26, 0xe8, 0xdd,
- 0x4f, 0x3a, 0xf5, 0x61, 0x88, 0xe5, 0x31, 0xe5, 0x43, 0x10, 0x2b, 0x14, 0x34, 0x65, 0x66, 0xe2,
- 0xaf, 0x7f, 0xe9, 0x6c, 0xaa, 0x40, 0xbe, 0xd2, 0x7d, 0x07, 0xb9, 0x85, 0x02, 0x03, 0x3f, 0x03,
- 0xa7, 0x43, 0x9f, 0x94, 0x62, 0x7c, 0xb1, 0x48, 0xf1, 0xab, 0xab, 0x5d, 0xf8, 0xd5, 0x55, 0x82,
- 0x57, 0x72, 0x7c, 0xc7, 0x39, 0xaf, 0x87, 0x3c, 0x97, 0xcc, 0xd4, 0x84, 0x1d, 0xee, 0x7c, 0xee,
- 0x19, 0x26, 0x5b, 0x08, 0x95, 0x45, 0x11, 0x3b, 0xd6, 0x85, 0x5c, 0x91, 0xe1, 0x8b, 0xa1, 0xf8,
- 0x03, 0x69, 0x5b, 0x35, 0xb8, 0x42, 0x30, 0x92, 0xa2, 0xa7, 0xf0, 0x6a, 0x28, 0xc9, 0x91, 0xf0,
- 0xb2, 0xfb, 0xaa, 0xa7, 0x70, 0x29, 0x54, 0xb6, 0x1e, 0xf1, 0xd2, 0x57, 0x29, 0x77, 0x91, 0x2d,
- 0xf2, 0xf9, 0x4b, 0xfa, 0x69, 0x9e, 0xa3, 0x81, 0x0a, 0xcc, 0x0c, 0xc4, 0xa5, 0x72, 0x45, 0x06,
- 0x28, 0xf4, 0x04, 0xf4, 0xb6, 0x12, 0x47, 0xe6, 0x9e, 0x63, 0x24, 0xc5, 0x9e, 0x24, 0x11, 0xa6,
- 0xe2, 0xf0, 0xc2, 0xee, 0xdd, 0x77, 0x67, 0x87, 0xde, 0x7e, 0x77, 0x76, 0xe8, 0xbf, 0xbc, 0x3b,
- 0x3b, 0xf4, 0xbd, 0x77, 0x67, 0x95, 0x1f, 0xbc, 0x3b, 0xab, 0xfc, 0xe8, 0xdd, 0x59, 0xe5, 0xc7,
- 0xef, 0xce, 0x2a, 0x6f, 0xdc, 0x9b, 0x55, 0xbe, 0x7e, 0x6f, 0x56, 0xf9, 0xc6, 0xbd, 0x59, 0xe5,
- 0xf7, 0xee, 0xcd, 0x2a, 0x6f, 0xdd, 0x9b, 0x55, 0xee, 0xde, 0x9b, 0x55, 0xde, 0xbe, 0x37, 0xab,
- 0x7c, 0xef, 0xde, 0xac, 0xf2, 0x83, 0x7b, 0xb3, 0x43, 0x3f, 0xba, 0x37, 0xab, 0xfc, 0xf8, 0xde,
- 0xec, 0xd0, 0x1b, 0xef, 0xcd, 0x0e, 0xbd, 0xf9, 0xde, 0xec, 0xd0, 0xd7, 0xdf, 0x9b, 0x55, 0xe0,
- 0xbd, 0x15, 0x98, 0x65, 0xdf, 0x24, 0xb3, 0x50, 0x1d, 0x07, 0xdd, 0x45, 0xf7, 0x08, 0x91, 0x86,
- 0xe0, 0x32, 0xff, 0x05, 0x30, 0x6f, 0xe0, 0x84, 0xdf, 0x29, 0x9b, 0xb9, 0xdf, 0x6f, 0xb0, 0x65,
- 0xff, 0x6d, 0x02, 0x46, 0xf8, 0x93, 0xe0, 0xb0, 0x9f, 0x33, 0xbf, 0x02, 0xc9, 0xa3, 0x7a, 0xc3,
- 0x6c, 0xd7, 0xdd, 0x63, 0xf6, 0x08, 0xf4, 0xe1, 0x45, 0x5f, 0x6d, 0xfe, 0xd0, 0xf4, 0xb9, 0x4e,
- 0xd3, 0xee, 0xb4, 0x0d, 0x4f, 0x54, 0x3f, 0x0b, 0xe9, 0x23, 0x54, 0x3f, 0x3c, 0x72, 0x2b, 0x75,
- 0xab, 0x52, 0x6d, 0x92, 0x4e, 0x79, 0xcc, 0x00, 0x3a, 0xb6, 0x6e, 0x15, 0x9b, 0xf8, 0x64, 0x35,
- 0xd3, 0x35, 0xc9, 0x1d, 0x7a, 0xda, 0x20, 0x9f, 0xf5, 0x73, 0x90, 0x6e, 0x23, 0xa7, 0xd3, 0x70,
- 0x2b, 0x55, 0xbb, 0x63, 0xb9, 0xa4, 0x97, 0x55, 0x8d, 0x14, 0x1d, 0x2b, 0xe2, 0x21, 0xfd, 0x31,
- 0x18, 0x73, 0xdb, 0x1d, 0x54, 0x71, 0xaa, 0xb6, 0xeb, 0x34, 0x4d, 0x8b, 0xf4, 0xb2, 0x49, 0x23,
- 0x8d, 0x07, 0x77, 0xd8, 0x18, 0xf9, 0x25, 0xfc, 0xaa, 0xdd, 0x46, 0xe4, 0x56, 0x3a, 0x66, 0xd0,
- 0x03, 0x5d, 0x03, 0xf5, 0x65, 0x74, 0x4c, 0x6e, 0xd6, 0xe2, 0x06, 0xfe, 0xa8, 0x3f, 0x09, 0xc3,
- 0xf4, 0x4f, 0xd9, 0x90, 0xce, 0x9a, 0x6c, 0x5c, 0x7b, 0x97, 0x46, 0x1f, 0xd0, 0x1a, 0x4c, 0x40,
- 0xbf, 0x01, 0x23, 0x2e, 0x6a, 0xb7, 0xcd, 0xba, 0x45, 0x6e, 0x9c, 0x52, 0xcb, 0x73, 0x21, 0x66,
- 0xd8, 0xa5, 0x12, 0xe4, 0x17, 0x81, 0x0d, 0x2e, 0xaf, 0x5f, 0x81, 0x34, 0x91, 0x5b, 0xae, 0xd0,
- 0x3f, 0xf7, 0x93, 0xea, 0x19, 0xcb, 0x29, 0x2a, 0xc7, 0xf7, 0x09, 0x38, 0x8c, 0xfe, 0x1a, 0xe2,
- 0x18, 0x39, 0xed, 0x63, 0x21, 0xa7, 0x25, 0x65, 0x77, 0x99, 0xb4, 0x8c, 0xf4, 0xd4, 0x8c, 0x87,
- 0xfe, 0x5e, 0xe2, 0x26, 0xa4, 0x45, 0xbd, 0xb8, 0x19, 0x68, 0xeb, 0x43, 0xcc, 0xf0, 0x84, 0xff,
- 0xa7, 0x14, 0x7a, 0x58, 0x81, 0xce, 0xe7, 0x62, 0xd7, 0x95, 0x99, 0x6d, 0xd0, 0xe4, 0xf3, 0x85,
- 0x50, 0x5e, 0x08, 0x52, 0x6a, 0xe2, 0xc5, 0x92, 0xa7, 0xe4, 0x3e, 0x63, 0xf6, 0x59, 0x18, 0xa6,
- 0xf1, 0xa3, 0xa7, 0x60, 0xc4, 0xff, 0xa1, 0xcd, 0x24, 0xc4, 0xb7, 0xf7, 0xca, 0x3b, 0xf4, 0x17,
- 0x73, 0x77, 0x36, 0xf2, 0xdb, 0x3b, 0xbb, 0xeb, 0xc5, 0x4f, 0x6a, 0x31, 0x7d, 0x02, 0x52, 0x85,
- 0xf5, 0x8d, 0x8d, 0x4a, 0x21, 0xbf, 0xbe, 0x51, 0xba, 0xa3, 0xa9, 0xd9, 0x59, 0x18, 0xa6, 0x7a,
- 0x92, 0x5f, 0xfe, 0xeb, 0x58, 0xd6, 0x31, 0x6f, 0x1d, 0xc8, 0x41, 0xf6, 0x9b, 0x3a, 0x8c, 0xe4,
- 0x1b, 0x8d, 0x4d, 0xb3, 0xe5, 0xe8, 0xcf, 0xc3, 0x24, 0xfd, 0x4d, 0x8e, 0x5d, 0x7b, 0x95, 0xfc,
- 0x40, 0x25, 0x2e, 0x0c, 0x0a, 0xfb, 0x13, 0x12, 0xfe, 0x75, 0x33, 0xf1, 0xc5, 0x2e, 0x59, 0x6a,
- 0xe0, 0x6e, 0x0e, 0x7d, 0x17, 0x34, 0x3e, 0xb8, 0xd6, 0xb0, 0x4d, 0x17, 0xf3, 0xc6, 0xd8, 0xef,
- 0x47, 0xf6, 0xe6, 0xe5, 0xa2, 0x94, 0xb6, 0x8b, 0x41, 0xff, 0x04, 0x24, 0xd7, 0x2d, 0xf7, 0xf2,
- 0x32, 0x66, 0xe3, 0x7f, 0x9e, 0xa9, 0x9b, 0x8d, 0x8b, 0x50, 0x16, 0x0f, 0xc1, 0xd0, 0x57, 0x57,
- 0x30, 0x3a, 0xde, 0x0f, 0x4d, 0x44, 0x7c, 0x34, 0x39, 0xd4, 0x9f, 0x85, 0x51, 0x7c, 0x67, 0x42,
- 0x4f, 0x9e, 0xe0, 0x6d, 0x6b, 0x17, 0xdc, 0x93, 0xa1, 0x78, 0x1f, 0xc3, 0x09, 0xe8, 0xf9, 0x87,
- 0xfb, 0x12, 0x08, 0x0a, 0xf8, 0x18, 0x4c, 0xb0, 0xe3, 0x69, 0x30, 0xd2, 0x93, 0x60, 0x47, 0xd2,
- 0x60, 0x47, 0xd4, 0x60, 0xc7, 0xd3, 0x20, 0xd9, 0x97, 0x40, 0xd4, 0xc0, 0x3b, 0xd6, 0x0b, 0x00,
- 0x6b, 0xf5, 0xd7, 0x50, 0x8d, 0xaa, 0x40, 0xff, 0x78, 0x53, 0x36, 0x84, 0xc1, 0x17, 0xa2, 0x14,
- 0x02, 0x4a, 0x2f, 0x41, 0x6a, 0xe7, 0xc0, 0x27, 0x81, 0xae, 0x3c, 0xf6, 0xd4, 0x38, 0x90, 0x58,
- 0x44, 0x9c, 0xa7, 0x0a, 0xbd, 0x98, 0x54, 0x7f, 0x55, 0x84, 0xab, 0x11, 0x50, 0xbe, 0x2a, 0x94,
- 0x24, 0x1d, 0xa1, 0x8a, 0xc0, 0x22, 0xe2, 0x70, 0x31, 0x2c, 0xd8, 0x36, 0x96, 0x64, 0x55, 0x69,
- 0x2e, 0x84, 0x82, 0x49, 0xb0, 0x62, 0xc8, 0x8e, 0x88, 0x47, 0x48, 0x90, 0x63, 0xf0, 0x78, 0x6f,
- 0x8f, 0x70, 0x19, 0xee, 0x11, 0x7e, 0x2c, 0xe6, 0x19, 0x79, 0x9b, 0x15, 0xf3, 0x4c, 0x44, 0xe6,
- 0x19, 0x17, 0x95, 0xf2, 0x8c, 0x0f, 0xeb, 0x9f, 0x82, 0x09, 0x3e, 0x86, 0xcb, 0x13, 0x26, 0xd5,
- 0xd8, 0x9f, 0xb7, 0xeb, 0x4d, 0xca, 0x24, 0x29, 0xa7, 0x8c, 0xd7, 0xcb, 0x30, 0xce, 0x87, 0x36,
- 0x1d, 0x72, 0xb9, 0x93, 0xec, 0x2f, 0x97, 0xf4, 0x66, 0xa4, 0x82, 0x94, 0x50, 0x42, 0xcf, 0xac,
- 0xc2, 0x74, 0x78, 0x35, 0x12, 0xcb, 0xef, 0x28, 0x2d, 0xbf, 0xa7, 0xc4, 0xf2, 0xab, 0x88, 0xe5,
- 0xbb, 0x08, 0xa7, 0x43, 0x6b, 0x4f, 0x14, 0x49, 0x4c, 0x24, 0xb9, 0x09, 0x63, 0x81, 0x92, 0x23,
- 0x82, 0x13, 0x21, 0xe0, 0x44, 0x37, 0xd8, 0x0f, 0xad, 0x90, 0xd5, 0x23, 0x00, 0x56, 0x45, 0xf0,
- 0x27, 0x60, 0x3c, 0x58, 0x6f, 0x44, 0xf4, 0x58, 0x08, 0x7a, 0x2c, 0x04, 0x1d, 0x7e, 0xee, 0x78,
- 0x08, 0x3a, 0x2e, 0xa1, 0x77, 0x7a, 0x9e, 0x7b, 0x32, 0x04, 0x3d, 0x19, 0x82, 0x0e, 0x3f, 0xb7,
- 0x1e, 0x82, 0xd6, 0x45, 0xf4, 0xd3, 0x30, 0x21, 0x95, 0x18, 0x11, 0x3e, 0x12, 0x02, 0x1f, 0x11,
- 0xe1, 0xcf, 0x80, 0x26, 0x17, 0x17, 0x11, 0x3f, 0x11, 0x82, 0x9f, 0x08, 0x3b, 0x7d, 0xb8, 0xf6,
- 0xc3, 0x21, 0xf0, 0xe1, 0xd0, 0xd3, 0x87, 0xe3, 0xb5, 0x10, 0xbc, 0x26, 0xe2, 0x73, 0x90, 0x16,
- 0xab, 0x89, 0x88, 0x4d, 0x86, 0x60, 0x93, 0xb2, 0xdd, 0x03, 0xc5, 0x24, 0x2a, 0xd2, 0x47, 0x7b,
- 0xa4, 0x4b, 0xa0, 0x84, 0x44, 0x91, 0xa4, 0x45, 0x92, 0x4f, 0xc3, 0xa9, 0xb0, 0x92, 0x11, 0xc2,
- 0x31, 0x2f, 0x72, 0x8c, 0xe3, 0x1e, 0xd1, 0x6f, 0xf6, 0xcc, 0x96, 0xd4, 0x38, 0xcd, 0xbc, 0x08,
- 0x53, 0x21, 0x85, 0x23, 0x84, 0x76, 0x31, 0xd8, 0x8d, 0x65, 0x04, 0x5a, 0x52, 0x04, 0xea, 0xd6,
- 0xe1, 0xb6, 0x5d, 0xb7, 0x5c, 0xb1, 0x2b, 0xfb, 0xd6, 0x14, 0x8c, 0xb3, 0xf2, 0xb4, 0xd5, 0xae,
- 0xa1, 0x36, 0xaa, 0xe9, 0x7f, 0xa1, 0x77, 0xef, 0xb4, 0xd4, 0x5d, 0xd4, 0x18, 0xea, 0x04, 0x2d,
- 0xd4, 0x8b, 0x3d, 0x5b, 0xa8, 0x8b, 0xd1, 0xf4, 0x51, 0x9d, 0x54, 0xb1, 0xab, 0x93, 0x7a, 0xa2,
- 0x37, 0x69, 0xaf, 0x86, 0xaa, 0xd8, 0xd5, 0x50, 0xf5, 0x27, 0x09, 0xed, 0xab, 0xd6, 0xba, 0xfb,
- 0xaa, 0xf9, 0xde, 0x2c, 0xbd, 0xdb, 0xab, 0xb5, 0xee, 0xf6, 0x2a, 0x82, 0x27, 0xbc, 0xcb, 0x5a,
- 0xeb, 0xee, 0xb2, 0xfa, 0xf0, 0xf4, 0x6e, 0xb6, 0xd6, 0xba, 0x9b, 0xad, 0x08, 0x9e, 0xf0, 0x9e,
- 0x6b, 0x3d, 0xa4, 0xe7, 0x7a, 0xb2, 0x37, 0x51, 0xbf, 0xd6, 0x6b, 0x23, 0xac, 0xf5, 0x5a, 0xe8,
- 0xa3, 0x54, 0xdf, 0x0e, 0x6c, 0x3d, 0xa4, 0x03, 0x8b, 0x52, 0xac, 0x47, 0x23, 0xb6, 0x11, 0xd6,
- 0x88, 0x45, 0x2a, 0xd6, 0xab, 0x1f, 0xfb, 0x39, 0xb9, 0x1f, 0xbb, 0xd0, 0x9b, 0x29, 0xbc, 0x2d,
- 0x5b, 0xeb, 0x6e, 0xcb, 0xe6, 0xa3, 0x72, 0x2e, 0xac, 0x3b, 0x7b, 0xb1, 0x67, 0x77, 0x36, 0x40,
- 0x0a, 0x47, 0x35, 0x69, 0x2f, 0xf4, 0x6a, 0xd2, 0x16, 0xa3, 0xb9, 0xfb, 0xf7, 0x6a, 0x7b, 0x3d,
- 0x7a, 0xb5, 0xa7, 0xa2, 0x89, 0x3f, 0x6a, 0xd9, 0x3e, 0x6a, 0xd9, 0x3e, 0x6a, 0xd9, 0x3e, 0x6a,
- 0xd9, 0x7e, 0xf6, 0x2d, 0x5b, 0x2e, 0xfe, 0xf9, 0xaf, 0xce, 0x29, 0xd9, 0xff, 0xac, 0x7a, 0x7f,
- 0x6c, 0xed, 0xf9, 0xba, 0x7b, 0x84, 0xcb, 0xdb, 0x26, 0xa4, 0xc9, 0x8f, 0xff, 0x36, 0xcd, 0x56,
- 0xab, 0x6e, 0x1d, 0xb2, 0x9e, 0x6d, 0xa1, 0xfb, 0x51, 0x22, 0x03, 0x90, 0x3f, 0x34, 0xb3, 0x49,
- 0x85, 0xd9, 0x72, 0x63, 0xf9, 0x23, 0xfa, 0x6d, 0x48, 0x35, 0x9d, 0x43, 0x8f, 0x2d, 0xd6, 0xb5,
- 0x10, 0x4a, 0x6c, 0xf4, 0x4a, 0x7d, 0x32, 0x68, 0x7a, 0x03, 0x58, 0xb5, 0xfd, 0x63, 0xd7, 0x57,
- 0x4d, 0x8d, 0x52, 0x0d, 0xfb, 0x34, 0xa8, 0xda, 0xbe, 0x3f, 0x82, 0xc3, 0x56, 0xd6, 0x3d, 0xaa,
- 0xd2, 0x05, 0x82, 0xe7, 0x79, 0x98, 0x90, 0xb4, 0x0d, 0xc9, 0xf9, 0xfb, 0xf0, 0x0d, 0x56, 0x4c,
- 0xd6, 0x3c, 0x2a, 0x27, 0xc4, 0x80, 0xcc, 0x3e, 0x0a, 0x63, 0x01, 0x6e, 0x3d, 0x0d, 0xca, 0x01,
- 0xfb, 0x2a, 0xa5, 0x72, 0x90, 0xfd, 0x8a, 0x02, 0x29, 0xf6, 0x1a, 0xc1, 0xb6, 0x59, 0x6f, 0xeb,
- 0xcf, 0x41, 0xbc, 0xc1, 0xbf, 0xce, 0x74, 0xbf, 0x5f, 0x9d, 0x25, 0x0c, 0xfa, 0x1a, 0x24, 0xda,
- 0xde, 0xd7, 0x9d, 0xee, 0xeb, 0xfb, 0xb0, 0x04, 0x9e, 0xbd, 0xab, 0xc0, 0x24, 0x7b, 0xcb, 0xd5,
- 0x61, 0x2f, 0x3f, 0x9b, 0xad, 0x99, 0x6f, 0x2a, 0x30, 0xea, 0x1d, 0xe9, 0xfb, 0x30, 0xee, 0x1d,
- 0xd0, 0x17, 0xec, 0x69, 0xa4, 0xe6, 0x04, 0x0b, 0x77, 0x71, 0x2c, 0x86, 0x7c, 0xa2, 0x1b, 0x51,
- 0x74, 0x4d, 0x0e, 0x0e, 0xce, 0xe4, 0x61, 0x2a, 0x44, 0xec, 0x24, 0x0b, 0x72, 0xf6, 0x1c, 0x8c,
- 0x96, 0x6d, 0x97, 0xfe, 0x6a, 0x8e, 0x7e, 0x4a, 0xd8, 0x55, 0x28, 0xc4, 0xb4, 0x21, 0x02, 0x5e,
- 0x38, 0x07, 0x23, 0x2c, 0xfb, 0xf5, 0x61, 0x88, 0x6d, 0xe6, 0xb5, 0x21, 0xf2, 0x7f, 0x41, 0x53,
- 0xc8, 0xff, 0x45, 0x2d, 0x56, 0xd8, 0xb8, 0x8f, 0x5d, 0xa6, 0xa1, 0xb7, 0xef, 0xcd, 0x0e, 0x85,
- 0xed, 0x32, 0xed, 0x0f, 0x53, 0xf3, 0xfc, 0x69, 0x00, 0x00, 0x00, 0xff, 0xff, 0x46, 0x57, 0xac,
- 0xcc, 0x69, 0x83, 0x00, 0x00,
+ 0xba, 0x21, 0x89, 0xaa, 0x54, 0x4a, 0x59, 0x27, 0x1b, 0x6f, 0xee, 0xc9, 0x26, 0x15, 0xaf, 0xe3,
+ 0x8b, 0xbc, 0x5b, 0xbb, 0xf6, 0x6e, 0x6e, 0x5e, 0x67, 0xe3, 0xec, 0x3a, 0xa9, 0xac, 0xf2, 0xe0,
+ 0x64, 0xf2, 0x92, 0xd2, 0x26, 0x2f, 0x29, 0x57, 0x4a, 0x65, 0x8d, 0x9c, 0x8a, 0x93, 0x38, 0x89,
+ 0xb3, 0x51, 0x55, 0x5c, 0xe5, 0x7d, 0x48, 0x9d, 0x5b, 0xf7, 0xe9, 0x83, 0x06, 0x1a, 0x1c, 0x49,
+ 0xb6, 0x1f, 0xfc, 0x32, 0x83, 0x3e, 0xe7, 0xff, 0xbe, 0xfe, 0xfb, 0xbf, 0x9c, 0xf3, 0xf7, 0x39,
+ 0x07, 0x20, 0xdc, 0xcd, 0xc3, 0x99, 0x43, 0xdb, 0x3e, 0x6c, 0xa2, 0x0b, 0xed, 0x8e, 0xed, 0xda,
+ 0xfb, 0xdd, 0x83, 0x0b, 0x75, 0xe4, 0xd4, 0x3a, 0x8d, 0xb6, 0x6b, 0x77, 0x96, 0x48, 0x9b, 0x3e,
+ 0x49, 0x25, 0x96, 0xb8, 0x44, 0x6e, 0x13, 0xa6, 0xd6, 0x1a, 0x4d, 0xb4, 0xea, 0x09, 0xee, 0x20,
+ 0x57, 0xbf, 0x0e, 0xf1, 0x83, 0x46, 0x13, 0x65, 0x95, 0x33, 0xea, 0x42, 0x7a, 0xf9, 0xdc, 0x92,
+ 0x04, 0x5a, 0x0a, 0x22, 0xb6, 0x71, 0xb3, 0x41, 0x10, 0xb9, 0xef, 0xc5, 0x61, 0x3a, 0xa4, 0x57,
+ 0xd7, 0x21, 0x6e, 0x99, 0x2d, 0xcc, 0xa8, 0x2c, 0xa4, 0x0c, 0xf2, 0x59, 0xcf, 0xc2, 0x58, 0xdb,
+ 0xac, 0xbd, 0x6c, 0x1e, 0xa2, 0x6c, 0x8c, 0x34, 0xf3, 0x4b, 0x7d, 0x0e, 0xa0, 0x8e, 0xda, 0xc8,
+ 0xaa, 0x23, 0xab, 0x76, 0x9c, 0x55, 0xcf, 0xa8, 0x0b, 0x29, 0x43, 0x68, 0xd1, 0x3f, 0x06, 0x53,
+ 0xed, 0xee, 0x7e, 0xb3, 0x51, 0xab, 0x0a, 0x62, 0x70, 0x46, 0x5d, 0x48, 0x18, 0x1a, 0xed, 0x58,
+ 0xf5, 0x85, 0x1f, 0x87, 0xc9, 0x57, 0x91, 0xf9, 0xb2, 0x28, 0x9a, 0x26, 0xa2, 0x13, 0xb8, 0x59,
+ 0x10, 0x2c, 0x41, 0xa6, 0x85, 0x1c, 0xc7, 0x3c, 0x44, 0x55, 0xf7, 0xb8, 0x8d, 0xb2, 0x71, 0xf2,
+ 0xf4, 0x67, 0x7a, 0x9e, 0x5e, 0x7e, 0xf2, 0x34, 0x43, 0xed, 0x1e, 0xb7, 0x91, 0x5e, 0x80, 0x14,
+ 0xb2, 0xba, 0x2d, 0xca, 0x90, 0xe8, 0x63, 0xbf, 0xb2, 0xd5, 0x6d, 0xc9, 0x2c, 0x49, 0x0c, 0x63,
+ 0x14, 0x63, 0x0e, 0xea, 0xbc, 0xd2, 0xa8, 0xa1, 0xec, 0x28, 0x21, 0x78, 0xbc, 0x87, 0x60, 0x87,
+ 0xf6, 0xcb, 0x1c, 0x1c, 0xa7, 0x97, 0x20, 0x85, 0x5e, 0x73, 0x91, 0xe5, 0x34, 0x6c, 0x2b, 0x3b,
+ 0x46, 0x48, 0x1e, 0x0b, 0xf1, 0x22, 0x6a, 0xd6, 0x65, 0x0a, 0x1f, 0xa7, 0x5f, 0x85, 0x31, 0xbb,
+ 0xed, 0x36, 0x6c, 0xcb, 0xc9, 0x26, 0xcf, 0x28, 0x0b, 0xe9, 0xe5, 0xd3, 0xa1, 0x81, 0xb0, 0x45,
+ 0x65, 0x0c, 0x2e, 0xac, 0xaf, 0x83, 0xe6, 0xd8, 0xdd, 0x4e, 0x0d, 0x55, 0x6b, 0x76, 0x1d, 0x55,
+ 0x1b, 0xd6, 0x81, 0x9d, 0x4d, 0x11, 0x82, 0xf9, 0xde, 0x07, 0x21, 0x82, 0x25, 0xbb, 0x8e, 0xd6,
+ 0xad, 0x03, 0xdb, 0x98, 0x70, 0x02, 0xd7, 0xfa, 0x0c, 0x8c, 0x3a, 0xc7, 0x96, 0x6b, 0xbe, 0x96,
+ 0xcd, 0x90, 0x08, 0x61, 0x57, 0xb9, 0x3f, 0x18, 0x85, 0xc9, 0x61, 0x42, 0xec, 0x26, 0x24, 0x0e,
+ 0xf0, 0x53, 0x66, 0x63, 0x27, 0xb1, 0x01, 0xc5, 0x04, 0x8d, 0x38, 0x7a, 0x9f, 0x46, 0x2c, 0x40,
+ 0xda, 0x42, 0x8e, 0x8b, 0xea, 0x34, 0x22, 0xd4, 0x21, 0x63, 0x0a, 0x28, 0xa8, 0x37, 0xa4, 0xe2,
+ 0xf7, 0x15, 0x52, 0x2f, 0xc0, 0xa4, 0xa7, 0x52, 0xb5, 0x63, 0x5a, 0x87, 0x3c, 0x36, 0x2f, 0x44,
+ 0x69, 0xb2, 0x54, 0xe6, 0x38, 0x03, 0xc3, 0x8c, 0x09, 0x14, 0xb8, 0xd6, 0x57, 0x01, 0x6c, 0x0b,
+ 0xd9, 0x07, 0xd5, 0x3a, 0xaa, 0x35, 0xb3, 0xc9, 0x3e, 0x56, 0xda, 0xc2, 0x22, 0x3d, 0x56, 0xb2,
+ 0x69, 0x6b, 0xad, 0xa9, 0xdf, 0xf0, 0x43, 0x6d, 0xac, 0x4f, 0xa4, 0x6c, 0xd2, 0x24, 0xeb, 0x89,
+ 0xb6, 0x3d, 0x98, 0xe8, 0x20, 0x1c, 0xf7, 0xa8, 0xce, 0x9e, 0x2c, 0x45, 0x94, 0x58, 0x8a, 0x7c,
+ 0x32, 0x83, 0xc1, 0xe8, 0x83, 0x8d, 0x77, 0xc4, 0x4b, 0xfd, 0x51, 0xf0, 0x1a, 0xaa, 0x24, 0xac,
+ 0x80, 0x8c, 0x42, 0x19, 0xde, 0x58, 0x31, 0x5b, 0x68, 0xf6, 0x75, 0x98, 0x08, 0x9a, 0x47, 0x3f,
+ 0x05, 0x09, 0xc7, 0x35, 0x3b, 0x2e, 0x89, 0xc2, 0x84, 0x41, 0x2f, 0x74, 0x0d, 0x54, 0x64, 0xd5,
+ 0xc9, 0x28, 0x97, 0x30, 0xf0, 0x47, 0xfd, 0x17, 0xfc, 0x07, 0x56, 0xc9, 0x03, 0x9f, 0xef, 0xf5,
+ 0x68, 0x80, 0x59, 0x7e, 0xee, 0xd9, 0x6b, 0x30, 0x1e, 0x78, 0x80, 0x61, 0x6f, 0x9d, 0xfb, 0xb3,
+ 0xf0, 0x40, 0x28, 0xb5, 0xfe, 0x02, 0x9c, 0xea, 0x5a, 0x0d, 0xcb, 0x45, 0x9d, 0x76, 0x07, 0xe1,
+ 0x88, 0xa5, 0xb7, 0xca, 0xfe, 0xd7, 0xb1, 0x3e, 0x31, 0xb7, 0x27, 0x4a, 0x53, 0x16, 0x63, 0xba,
+ 0xdb, 0xdb, 0xb8, 0x98, 0x4a, 0x7e, 0x7f, 0x4c, 0x7b, 0xe3, 0x8d, 0x37, 0xde, 0x88, 0xe5, 0x3e,
+ 0x37, 0x0a, 0xa7, 0xc2, 0x72, 0x26, 0x34, 0x7d, 0x67, 0x60, 0xd4, 0xea, 0xb6, 0xf6, 0x51, 0x87,
+ 0x18, 0x29, 0x61, 0xb0, 0x2b, 0xbd, 0x00, 0x89, 0xa6, 0xb9, 0x8f, 0x9a, 0xd9, 0xf8, 0x19, 0x65,
+ 0x61, 0x62, 0xf9, 0x63, 0x43, 0x65, 0xe5, 0xd2, 0x06, 0x86, 0x18, 0x14, 0xa9, 0x3f, 0x03, 0x71,
+ 0x36, 0x44, 0x63, 0x86, 0xc5, 0xe1, 0x18, 0x70, 0x2e, 0x19, 0x04, 0xa7, 0x3f, 0x0c, 0x29, 0xfc,
+ 0x3f, 0x8d, 0x8d, 0x51, 0xa2, 0x73, 0x12, 0x37, 0xe0, 0xb8, 0xd0, 0x67, 0x21, 0x49, 0xd2, 0xa4,
+ 0x8e, 0xf8, 0xd4, 0xe6, 0x5d, 0xe3, 0xc0, 0xaa, 0xa3, 0x03, 0xb3, 0xdb, 0x74, 0xab, 0xaf, 0x98,
+ 0xcd, 0x2e, 0x22, 0x01, 0x9f, 0x32, 0x32, 0xac, 0xf1, 0x53, 0xb8, 0x4d, 0x9f, 0x87, 0x34, 0xcd,
+ 0xaa, 0x86, 0x55, 0x47, 0xaf, 0x91, 0xd1, 0x33, 0x61, 0xd0, 0x44, 0x5b, 0xc7, 0x2d, 0xf8, 0xf6,
+ 0x2f, 0x39, 0xb6, 0xc5, 0x43, 0x93, 0xdc, 0x02, 0x37, 0x90, 0xdb, 0x5f, 0x93, 0x07, 0xee, 0x47,
+ 0xc2, 0x1f, 0x4f, 0x8e, 0xa9, 0xdc, 0x37, 0x63, 0x10, 0x27, 0xe3, 0xc5, 0x24, 0xa4, 0x77, 0xef,
+ 0x6c, 0x97, 0xab, 0xab, 0x5b, 0x7b, 0xc5, 0x8d, 0xb2, 0xa6, 0xe8, 0x13, 0x00, 0xa4, 0x61, 0x6d,
+ 0x63, 0xab, 0xb0, 0xab, 0xc5, 0xbc, 0xeb, 0xf5, 0xca, 0xee, 0xd5, 0x15, 0x4d, 0xf5, 0x00, 0x7b,
+ 0xb4, 0x21, 0x2e, 0x0a, 0x5c, 0x5e, 0xd6, 0x12, 0xba, 0x06, 0x19, 0x4a, 0xb0, 0xfe, 0x42, 0x79,
+ 0xf5, 0xea, 0x8a, 0x36, 0x1a, 0x6c, 0xb9, 0xbc, 0xac, 0x8d, 0xe9, 0xe3, 0x90, 0x22, 0x2d, 0xc5,
+ 0xad, 0xad, 0x0d, 0x2d, 0xe9, 0x71, 0xee, 0xec, 0x1a, 0xeb, 0x95, 0x5b, 0x5a, 0xca, 0xe3, 0xbc,
+ 0x65, 0x6c, 0xed, 0x6d, 0x6b, 0xe0, 0x31, 0x6c, 0x96, 0x77, 0x76, 0x0a, 0xb7, 0xca, 0x5a, 0xda,
+ 0x93, 0x28, 0xde, 0xd9, 0x2d, 0xef, 0x68, 0x99, 0x80, 0x5a, 0x97, 0x97, 0xb5, 0x71, 0xef, 0x16,
+ 0xe5, 0xca, 0xde, 0xa6, 0x36, 0xa1, 0x4f, 0xc1, 0x38, 0xbd, 0x05, 0x57, 0x62, 0x52, 0x6a, 0xba,
+ 0xba, 0xa2, 0x69, 0xbe, 0x22, 0x94, 0x65, 0x2a, 0xd0, 0x70, 0x75, 0x45, 0xd3, 0x73, 0x25, 0x48,
+ 0x90, 0xe8, 0xd2, 0x75, 0x98, 0xd8, 0x28, 0x14, 0xcb, 0x1b, 0xd5, 0xad, 0xed, 0xdd, 0xf5, 0xad,
+ 0x4a, 0x61, 0x43, 0x53, 0xfc, 0x36, 0xa3, 0xfc, 0xc9, 0xbd, 0x75, 0xa3, 0xbc, 0xaa, 0xc5, 0xc4,
+ 0xb6, 0xed, 0x72, 0x61, 0xb7, 0xbc, 0xaa, 0xa9, 0xb9, 0x1a, 0x9c, 0x0a, 0x1b, 0x27, 0x43, 0x33,
+ 0x43, 0x70, 0x71, 0xac, 0x8f, 0x8b, 0x09, 0x57, 0x8f, 0x8b, 0xdf, 0x8b, 0xc1, 0x74, 0xc8, 0x5c,
+ 0x11, 0x7a, 0x93, 0x67, 0x21, 0x41, 0x43, 0x94, 0xce, 0x9e, 0x4f, 0x84, 0x4e, 0x3a, 0x24, 0x60,
+ 0x7b, 0x66, 0x50, 0x82, 0x13, 0x2b, 0x08, 0xb5, 0x4f, 0x05, 0x81, 0x29, 0x7a, 0xc6, 0xf4, 0x3f,
+ 0xdd, 0x33, 0xa6, 0xd3, 0x69, 0xef, 0xea, 0x30, 0xd3, 0x1e, 0x69, 0x3b, 0xd9, 0xd8, 0x9e, 0x08,
+ 0x19, 0xdb, 0x6f, 0xc2, 0x54, 0x0f, 0xd1, 0xd0, 0x63, 0xec, 0x67, 0x14, 0xc8, 0xf6, 0x33, 0x4e,
+ 0xc4, 0x48, 0x17, 0x0b, 0x8c, 0x74, 0x37, 0x65, 0x0b, 0x9e, 0xed, 0xef, 0x84, 0x1e, 0x5f, 0x7f,
+ 0x55, 0x81, 0x99, 0xf0, 0x4a, 0x31, 0x54, 0x87, 0x67, 0x60, 0xb4, 0x85, 0xdc, 0x23, 0x9b, 0x57,
+ 0x4b, 0xe7, 0x43, 0xe6, 0x60, 0xdc, 0x2d, 0x3b, 0x9b, 0xa1, 0xc4, 0x49, 0x5c, 0xed, 0x57, 0xee,
+ 0x51, 0x6d, 0x7a, 0x34, 0xfd, 0x95, 0x18, 0x3c, 0x10, 0x4a, 0x1e, 0xaa, 0xe8, 0x23, 0x00, 0x0d,
+ 0xab, 0xdd, 0x75, 0x69, 0x45, 0x44, 0x07, 0xd8, 0x14, 0x69, 0x21, 0x83, 0x17, 0x1e, 0x3c, 0xbb,
+ 0xae, 0xd7, 0xaf, 0x92, 0x7e, 0xa0, 0x4d, 0x44, 0xe0, 0xba, 0xaf, 0x68, 0x9c, 0x28, 0x3a, 0xd7,
+ 0xe7, 0x49, 0x7b, 0x02, 0xf3, 0x22, 0x68, 0xb5, 0x66, 0x03, 0x59, 0x6e, 0xd5, 0x71, 0x3b, 0xc8,
+ 0x6c, 0x35, 0xac, 0x43, 0x32, 0x83, 0x24, 0xf3, 0x89, 0x03, 0xb3, 0xe9, 0x20, 0x63, 0x92, 0x76,
+ 0xef, 0xf0, 0x5e, 0x8c, 0x20, 0x01, 0xd4, 0x11, 0x10, 0xa3, 0x01, 0x04, 0xed, 0xf6, 0x10, 0xb9,
+ 0xbf, 0x9a, 0x82, 0xb4, 0x50, 0x57, 0xeb, 0x67, 0x21, 0xf3, 0x92, 0xf9, 0x8a, 0x59, 0xe5, 0xef,
+ 0x4a, 0xd4, 0x12, 0x69, 0xdc, 0xb6, 0xcd, 0xde, 0x97, 0x2e, 0xc2, 0x29, 0x22, 0x62, 0x77, 0x5d,
+ 0xd4, 0xa9, 0xd6, 0x9a, 0xa6, 0xe3, 0x10, 0xa3, 0x25, 0x89, 0xa8, 0x8e, 0xfb, 0xb6, 0x70, 0x57,
+ 0x89, 0xf7, 0xe8, 0x57, 0x60, 0x9a, 0x20, 0x5a, 0xdd, 0xa6, 0xdb, 0x68, 0x37, 0x51, 0x15, 0xbf,
+ 0xbd, 0x39, 0x64, 0x26, 0xf1, 0x34, 0x9b, 0xc2, 0x12, 0x9b, 0x4c, 0x00, 0x6b, 0xe4, 0xe8, 0xab,
+ 0xf0, 0x08, 0x81, 0x1d, 0x22, 0x0b, 0x75, 0x4c, 0x17, 0x55, 0xd1, 0x2f, 0x76, 0xcd, 0xa6, 0x53,
+ 0x35, 0xad, 0x7a, 0xf5, 0xc8, 0x74, 0x8e, 0xb2, 0xa7, 0x30, 0x41, 0x31, 0x96, 0x55, 0x8c, 0x87,
+ 0xb0, 0xe0, 0x2d, 0x26, 0x57, 0x26, 0x62, 0x05, 0xab, 0xfe, 0x9c, 0xe9, 0x1c, 0xe9, 0x79, 0x98,
+ 0x21, 0x2c, 0x8e, 0xdb, 0x69, 0x58, 0x87, 0xd5, 0xda, 0x11, 0xaa, 0xbd, 0x5c, 0xed, 0xba, 0x07,
+ 0xd7, 0xb3, 0x0f, 0x8b, 0xf7, 0x27, 0x1a, 0xee, 0x10, 0x99, 0x12, 0x16, 0xd9, 0x73, 0x0f, 0xae,
+ 0xeb, 0x3b, 0x90, 0xc1, 0xce, 0x68, 0x35, 0x5e, 0x47, 0xd5, 0x03, 0xbb, 0x43, 0xa6, 0xc6, 0x89,
+ 0x90, 0xa1, 0x49, 0xb0, 0xe0, 0xd2, 0x16, 0x03, 0x6c, 0xda, 0x75, 0x94, 0x4f, 0xec, 0x6c, 0x97,
+ 0xcb, 0xab, 0x46, 0x9a, 0xb3, 0xac, 0xd9, 0x1d, 0x1c, 0x50, 0x87, 0xb6, 0x67, 0xe0, 0x34, 0x0d,
+ 0xa8, 0x43, 0x9b, 0x9b, 0xf7, 0x0a, 0x4c, 0xd7, 0x6a, 0xf4, 0x99, 0x1b, 0xb5, 0x2a, 0x7b, 0xc7,
+ 0x72, 0xb2, 0x5a, 0xc0, 0x58, 0xb5, 0xda, 0x2d, 0x2a, 0xc0, 0x62, 0xdc, 0xd1, 0x6f, 0xc0, 0x03,
+ 0xbe, 0xb1, 0x44, 0xe0, 0x54, 0xcf, 0x53, 0xca, 0xd0, 0x2b, 0x30, 0xdd, 0x3e, 0xee, 0x05, 0xea,
+ 0x81, 0x3b, 0xb6, 0x8f, 0x65, 0xd8, 0x35, 0x38, 0xd5, 0x3e, 0x6a, 0xf7, 0xe2, 0x16, 0x45, 0x9c,
+ 0xde, 0x3e, 0x6a, 0xcb, 0xc0, 0xc7, 0xc8, 0x0b, 0x77, 0x07, 0xd5, 0x4c, 0x17, 0xd5, 0xb3, 0x0f,
+ 0x8a, 0xe2, 0x42, 0x87, 0x7e, 0x01, 0xb4, 0x5a, 0xad, 0x8a, 0x2c, 0x73, 0xbf, 0x89, 0xaa, 0x66,
+ 0x07, 0x59, 0xa6, 0x93, 0x9d, 0x17, 0x85, 0x27, 0x6a, 0xb5, 0x32, 0xe9, 0x2d, 0x90, 0x4e, 0x7d,
+ 0x11, 0xa6, 0xec, 0xfd, 0x97, 0x6a, 0x34, 0x24, 0xab, 0xed, 0x0e, 0x3a, 0x68, 0xbc, 0x96, 0x3d,
+ 0x47, 0xec, 0x3b, 0x89, 0x3b, 0x48, 0x40, 0x6e, 0x93, 0x66, 0xfd, 0x09, 0xd0, 0x6a, 0xce, 0x91,
+ 0xd9, 0x69, 0x93, 0x31, 0xd9, 0x69, 0x9b, 0x35, 0x94, 0x7d, 0x8c, 0x8a, 0xd2, 0xf6, 0x0a, 0x6f,
+ 0xc6, 0x29, 0xe1, 0xbc, 0xda, 0x38, 0x70, 0x39, 0xe3, 0xe3, 0x34, 0x25, 0x48, 0x1b, 0x63, 0x5b,
+ 0x00, 0x0d, 0x9b, 0x22, 0x70, 0xe3, 0x05, 0x22, 0x36, 0xd1, 0x3e, 0x6a, 0x8b, 0xf7, 0x7d, 0x14,
+ 0xc6, 0xb1, 0xa4, 0x7f, 0xd3, 0x27, 0x68, 0x41, 0xd6, 0x3e, 0x12, 0xee, 0xb8, 0x02, 0x33, 0x58,
+ 0xa8, 0x85, 0x5c, 0xb3, 0x6e, 0xba, 0xa6, 0x20, 0xfd, 0x24, 0x91, 0xc6, 0x76, 0xdf, 0x64, 0x9d,
+ 0x01, 0x3d, 0x3b, 0xdd, 0xfd, 0x63, 0x2f, 0xb2, 0x9e, 0xa2, 0x7a, 0xe2, 0x36, 0x1e, 0x5b, 0x1f,
+ 0x59, 0xd1, 0x9d, 0xcb, 0x43, 0x46, 0x0c, 0x7c, 0x3d, 0x05, 0x34, 0xf4, 0x35, 0x05, 0x57, 0x41,
+ 0xa5, 0xad, 0x55, 0x5c, 0xbf, 0x7c, 0xba, 0xac, 0xc5, 0x70, 0x1d, 0xb5, 0xb1, 0xbe, 0x5b, 0xae,
+ 0x1a, 0x7b, 0x95, 0xdd, 0xf5, 0xcd, 0xb2, 0xa6, 0x8a, 0x05, 0xfb, 0xb7, 0x63, 0x30, 0x11, 0x7c,
+ 0xf7, 0xd2, 0x3f, 0x0e, 0x0f, 0xf2, 0x85, 0x12, 0x07, 0xb9, 0xd5, 0x57, 0x1b, 0x1d, 0x92, 0x8b,
+ 0x2d, 0x93, 0xce, 0x8b, 0x5e, 0x34, 0x9c, 0x62, 0x52, 0x3b, 0xc8, 0x7d, 0xbe, 0xd1, 0xc1, 0x99,
+ 0xd6, 0x32, 0x5d, 0x7d, 0x03, 0xe6, 0x2d, 0xbb, 0xea, 0xb8, 0xa6, 0x55, 0x37, 0x3b, 0xf5, 0xaa,
+ 0xbf, 0x44, 0x55, 0x35, 0x6b, 0x35, 0xe4, 0x38, 0x36, 0x9d, 0x03, 0x3d, 0x96, 0xd3, 0x96, 0xbd,
+ 0xc3, 0x84, 0xfd, 0xc9, 0xa1, 0xc0, 0x44, 0xa5, 0xc8, 0x55, 0xfb, 0x45, 0xee, 0xc3, 0x90, 0x6a,
+ 0x99, 0xed, 0x2a, 0xb2, 0xdc, 0xce, 0x31, 0xa9, 0xb8, 0x93, 0x46, 0xb2, 0x65, 0xb6, 0xcb, 0xf8,
+ 0xfa, 0x27, 0xf3, 0xe2, 0xf3, 0x9f, 0x55, 0xc8, 0x88, 0x55, 0x37, 0x7e, 0x89, 0xa9, 0x91, 0x09,
+ 0x4a, 0x21, 0x43, 0xd8, 0xa3, 0x03, 0x6b, 0xf4, 0xa5, 0x12, 0x9e, 0xb9, 0xf2, 0xa3, 0xb4, 0x16,
+ 0x36, 0x28, 0x12, 0x57, 0x0d, 0x38, 0xb4, 0x10, 0xad, 0x3d, 0x92, 0x06, 0xbb, 0xd2, 0x6f, 0xc1,
+ 0xe8, 0x4b, 0x0e, 0xe1, 0x1e, 0x25, 0xdc, 0xe7, 0x06, 0x73, 0xdf, 0xde, 0x21, 0xe4, 0xa9, 0xdb,
+ 0x3b, 0xd5, 0xca, 0x96, 0xb1, 0x59, 0xd8, 0x30, 0x18, 0x5c, 0x7f, 0x08, 0xe2, 0x4d, 0xf3, 0xf5,
+ 0xe3, 0xe0, 0x1c, 0x47, 0x9a, 0x86, 0x35, 0xfc, 0x43, 0x10, 0x7f, 0x15, 0x99, 0x2f, 0x07, 0x67,
+ 0x16, 0xd2, 0xf4, 0x11, 0x86, 0xfe, 0x05, 0x48, 0x10, 0x7b, 0xe9, 0x00, 0xcc, 0x62, 0xda, 0x88,
+ 0x9e, 0x84, 0x78, 0x69, 0xcb, 0xc0, 0xe1, 0xaf, 0x41, 0x86, 0xb6, 0x56, 0xb7, 0xd7, 0xcb, 0xa5,
+ 0xb2, 0x16, 0xcb, 0x5d, 0x81, 0x51, 0x6a, 0x04, 0x9c, 0x1a, 0x9e, 0x19, 0xb4, 0x11, 0x76, 0xc9,
+ 0x38, 0x14, 0xde, 0xbb, 0xb7, 0x59, 0x2c, 0x1b, 0x5a, 0x4c, 0x74, 0xaf, 0x03, 0x19, 0xb1, 0xe0,
+ 0xfe, 0xc9, 0xc4, 0xd4, 0xb7, 0x14, 0x48, 0x0b, 0x05, 0x34, 0xae, 0x7c, 0xcc, 0x66, 0xd3, 0x7e,
+ 0xb5, 0x6a, 0x36, 0x1b, 0xa6, 0xc3, 0x82, 0x02, 0x48, 0x53, 0x01, 0xb7, 0x0c, 0xeb, 0xb4, 0x9f,
+ 0x88, 0xf2, 0x5f, 0x52, 0x40, 0x93, 0x6b, 0x57, 0x49, 0x41, 0xe5, 0xa7, 0xaa, 0xe0, 0x17, 0x14,
+ 0x98, 0x08, 0x16, 0xac, 0x92, 0x7a, 0x67, 0x7f, 0xaa, 0xea, 0x7d, 0x37, 0x06, 0xe3, 0x81, 0x32,
+ 0x75, 0x58, 0xed, 0x7e, 0x11, 0xa6, 0x1a, 0x75, 0xd4, 0x6a, 0xdb, 0x2e, 0xb2, 0x6a, 0xc7, 0xd5,
+ 0x26, 0x7a, 0x05, 0x35, 0xb3, 0x39, 0x32, 0x50, 0x5c, 0x18, 0x5c, 0x08, 0x2f, 0xad, 0xfb, 0xb8,
+ 0x0d, 0x0c, 0xcb, 0x4f, 0xaf, 0xaf, 0x96, 0x37, 0xb7, 0xb7, 0x76, 0xcb, 0x95, 0xd2, 0x9d, 0xea,
+ 0x5e, 0xe5, 0x13, 0x95, 0xad, 0xe7, 0x2b, 0x86, 0xd6, 0x90, 0xc4, 0x3e, 0xc2, 0x54, 0xdf, 0x06,
+ 0x4d, 0x56, 0x4a, 0x7f, 0x10, 0xc2, 0xd4, 0xd2, 0x46, 0xf4, 0x69, 0x98, 0xac, 0x6c, 0x55, 0x77,
+ 0xd6, 0x57, 0xcb, 0xd5, 0xf2, 0xda, 0x5a, 0xb9, 0xb4, 0xbb, 0x43, 0x97, 0x36, 0x3c, 0xe9, 0xdd,
+ 0x60, 0x52, 0x7f, 0x5e, 0x85, 0xe9, 0x10, 0x4d, 0xf4, 0x02, 0x7b, 0x29, 0xa1, 0xef, 0x49, 0x4f,
+ 0x0d, 0xa3, 0xfd, 0x12, 0xae, 0x0a, 0xb6, 0xcd, 0x8e, 0xcb, 0xde, 0x61, 0x9e, 0x00, 0x6c, 0x25,
+ 0xcb, 0x6d, 0x1c, 0x34, 0x50, 0x87, 0xad, 0x04, 0xd1, 0x37, 0x95, 0x49, 0xbf, 0x9d, 0x2e, 0x06,
+ 0x3d, 0x09, 0x7a, 0xdb, 0x76, 0x1a, 0x6e, 0xe3, 0x15, 0x54, 0x6d, 0x58, 0x7c, 0xd9, 0x08, 0xbf,
+ 0xb9, 0xc4, 0x0d, 0x8d, 0xf7, 0xac, 0x5b, 0xae, 0x27, 0x6d, 0xa1, 0x43, 0x53, 0x92, 0xc6, 0x03,
+ 0xb8, 0x6a, 0x68, 0xbc, 0xc7, 0x93, 0x3e, 0x0b, 0x99, 0xba, 0xdd, 0xc5, 0xe5, 0x1c, 0x95, 0xc3,
+ 0xf3, 0x85, 0x62, 0xa4, 0x69, 0x9b, 0x27, 0xc2, 0x0a, 0x75, 0x7f, 0xbd, 0x2a, 0x63, 0xa4, 0x69,
+ 0x1b, 0x15, 0x79, 0x1c, 0x26, 0xcd, 0xc3, 0xc3, 0x0e, 0x26, 0xe7, 0x44, 0xf4, 0xd5, 0x63, 0xc2,
+ 0x6b, 0x26, 0x82, 0xb3, 0xb7, 0x21, 0xc9, 0xed, 0x80, 0xa7, 0x64, 0x6c, 0x89, 0x6a, 0x9b, 0xbe,
+ 0x4f, 0xc7, 0x16, 0x52, 0x46, 0xd2, 0xe2, 0x9d, 0x67, 0x21, 0xd3, 0x70, 0xaa, 0xfe, 0xf2, 0x7b,
+ 0xec, 0x4c, 0x6c, 0x21, 0x69, 0xa4, 0x1b, 0x8e, 0xb7, 0x74, 0x99, 0xfb, 0x6a, 0x0c, 0x26, 0x82,
+ 0xdb, 0x07, 0xfa, 0x2a, 0x24, 0x9b, 0x76, 0xcd, 0x24, 0xa1, 0x45, 0xf7, 0xae, 0x16, 0x22, 0x76,
+ 0x1c, 0x96, 0x36, 0x98, 0xbc, 0xe1, 0x21, 0x67, 0xff, 0xbd, 0x02, 0x49, 0xde, 0xac, 0xcf, 0x40,
+ 0xbc, 0x6d, 0xba, 0x47, 0x84, 0x2e, 0x51, 0x8c, 0x69, 0x8a, 0x41, 0xae, 0x71, 0xbb, 0xd3, 0x36,
+ 0x2d, 0x12, 0x02, 0xac, 0x1d, 0x5f, 0x63, 0xbf, 0x36, 0x91, 0x59, 0x27, 0xef, 0x35, 0x76, 0xab,
+ 0x85, 0x2c, 0xd7, 0xe1, 0x7e, 0x65, 0xed, 0x25, 0xd6, 0xac, 0x7f, 0x0c, 0xa6, 0xdc, 0x8e, 0xd9,
+ 0x68, 0x06, 0x64, 0xe3, 0x44, 0x56, 0xe3, 0x1d, 0x9e, 0x70, 0x1e, 0x1e, 0xe2, 0xbc, 0x75, 0xe4,
+ 0x9a, 0xb5, 0x23, 0x54, 0xf7, 0x41, 0xa3, 0x64, 0xfd, 0xe2, 0x41, 0x26, 0xb0, 0xca, 0xfa, 0x39,
+ 0x36, 0xf7, 0x47, 0x0a, 0x4c, 0xf1, 0x37, 0xb1, 0xba, 0x67, 0xac, 0x4d, 0x00, 0xd3, 0xb2, 0x6c,
+ 0x57, 0x34, 0x57, 0x6f, 0x28, 0xf7, 0xe0, 0x96, 0x0a, 0x1e, 0xc8, 0x10, 0x08, 0x66, 0x5b, 0x00,
+ 0x7e, 0x4f, 0x5f, 0xb3, 0xcd, 0x43, 0x9a, 0xed, 0x0d, 0x91, 0x0d, 0x46, 0xfa, 0xee, 0x0e, 0xb4,
+ 0x09, 0xbf, 0xb2, 0xe9, 0xa7, 0x20, 0xb1, 0x8f, 0x0e, 0x1b, 0x16, 0x5b, 0xf1, 0xa5, 0x17, 0x7c,
+ 0x85, 0x25, 0xee, 0xad, 0xb0, 0x14, 0x5f, 0x84, 0xe9, 0x9a, 0xdd, 0x92, 0xd5, 0x2d, 0x6a, 0xd2,
+ 0xfa, 0x81, 0xf3, 0x9c, 0xf2, 0x69, 0xf0, 0x4b, 0xcc, 0x1f, 0x29, 0xca, 0xaf, 0xc7, 0xd4, 0x5b,
+ 0xdb, 0xc5, 0xdf, 0x89, 0xcd, 0xde, 0xa2, 0xd0, 0x6d, 0xfe, 0xa4, 0x06, 0x3a, 0x68, 0xa2, 0x1a,
+ 0xd6, 0x1e, 0x7e, 0xeb, 0x63, 0xf0, 0xd4, 0x61, 0xc3, 0x3d, 0xea, 0xee, 0x2f, 0xd5, 0xec, 0xd6,
+ 0x85, 0x43, 0xfb, 0xd0, 0xf6, 0xf7, 0x54, 0xf1, 0x15, 0xb9, 0x20, 0x9f, 0xd8, 0xbe, 0x6a, 0xca,
+ 0x6b, 0x9d, 0x8d, 0xdc, 0x84, 0xcd, 0x57, 0x60, 0x9a, 0x09, 0x57, 0xc9, 0xc6, 0x0e, 0x7d, 0x3d,
+ 0xd1, 0x07, 0x2e, 0x8e, 0x65, 0x7f, 0xf7, 0x7b, 0x64, 0xba, 0x36, 0xa6, 0x18, 0x14, 0xf7, 0xd1,
+ 0x37, 0x98, 0xbc, 0x01, 0x0f, 0x04, 0xf8, 0x68, 0x6a, 0xa2, 0x4e, 0x04, 0xe3, 0xb7, 0x19, 0xe3,
+ 0xb4, 0xc0, 0xb8, 0xc3, 0xa0, 0xf9, 0x12, 0x8c, 0x9f, 0x84, 0xeb, 0xdf, 0x30, 0xae, 0x0c, 0x12,
+ 0x49, 0x6e, 0xc1, 0x24, 0x21, 0xa9, 0x75, 0x1d, 0xd7, 0x6e, 0x91, 0x71, 0x6f, 0x30, 0xcd, 0xbf,
+ 0xfd, 0x1e, 0xcd, 0x95, 0x09, 0x0c, 0x2b, 0x79, 0xa8, 0x7c, 0x1e, 0xc8, 0x5e, 0x56, 0x1d, 0xd5,
+ 0x9a, 0x11, 0x0c, 0x77, 0x99, 0x22, 0x9e, 0x7c, 0xfe, 0x53, 0x70, 0x0a, 0x7f, 0x26, 0xc3, 0x92,
+ 0xa8, 0x49, 0xf4, 0x4a, 0x5a, 0xf6, 0x8f, 0x3e, 0x43, 0xd3, 0x71, 0xda, 0x23, 0x10, 0x74, 0x12,
+ 0xbc, 0x78, 0x88, 0x5c, 0x17, 0x75, 0x9c, 0xaa, 0xd9, 0x0c, 0x53, 0x4f, 0x58, 0x8a, 0xc8, 0xfe,
+ 0xda, 0x0f, 0x82, 0x5e, 0xbc, 0x45, 0x91, 0x85, 0x66, 0x33, 0xbf, 0x07, 0x0f, 0x86, 0x44, 0xc5,
+ 0x10, 0x9c, 0x9f, 0x67, 0x9c, 0xa7, 0x7a, 0x22, 0x03, 0xd3, 0x6e, 0x03, 0x6f, 0xf7, 0x7c, 0x39,
+ 0x04, 0xe7, 0xdf, 0x67, 0x9c, 0x3a, 0xc3, 0x72, 0x97, 0x62, 0xc6, 0xdb, 0x30, 0xf5, 0x0a, 0xea,
+ 0xec, 0xdb, 0x0e, 0x5b, 0xfe, 0x19, 0x82, 0xee, 0x0b, 0x8c, 0x6e, 0x92, 0x01, 0xc9, 0x7a, 0x10,
+ 0xe6, 0xba, 0x01, 0xc9, 0x03, 0xb3, 0x86, 0x86, 0xa0, 0xf8, 0x22, 0xa3, 0x18, 0xc3, 0xf2, 0x18,
+ 0x5a, 0x80, 0xcc, 0xa1, 0xcd, 0x66, 0xa6, 0x68, 0xf8, 0x97, 0x18, 0x3c, 0xcd, 0x31, 0x8c, 0xa2,
+ 0x6d, 0xb7, 0xbb, 0x4d, 0x3c, 0x6d, 0x45, 0x53, 0x7c, 0x99, 0x53, 0x70, 0x0c, 0xa3, 0x38, 0x81,
+ 0x59, 0xdf, 0xe4, 0x14, 0x8e, 0x60, 0xcf, 0x67, 0x21, 0x6d, 0x5b, 0xcd, 0x63, 0xdb, 0x1a, 0x46,
+ 0x89, 0xaf, 0x30, 0x06, 0x60, 0x10, 0x4c, 0x70, 0x13, 0x52, 0xc3, 0x3a, 0xe2, 0x37, 0x7f, 0xc0,
+ 0xd3, 0x83, 0x7b, 0xe0, 0x16, 0x4c, 0xf2, 0x01, 0xaa, 0x61, 0x5b, 0x43, 0x50, 0xfc, 0x16, 0xa3,
+ 0x98, 0x10, 0x60, 0xec, 0x31, 0x5c, 0xe4, 0xb8, 0x87, 0x68, 0x18, 0x92, 0xaf, 0xf2, 0xc7, 0x60,
+ 0x10, 0x66, 0xca, 0x7d, 0x64, 0xd5, 0x8e, 0x86, 0x63, 0xf8, 0x1a, 0x37, 0x25, 0xc7, 0x60, 0x8a,
+ 0x12, 0x8c, 0xb7, 0xcc, 0x8e, 0x73, 0x64, 0x36, 0x87, 0x72, 0xc7, 0x6f, 0x33, 0x8e, 0x8c, 0x07,
+ 0x62, 0x16, 0xe9, 0x5a, 0x27, 0xa1, 0xf9, 0x1d, 0x6e, 0x11, 0x01, 0xc6, 0x52, 0xcf, 0x71, 0xc9,
+ 0x5a, 0xd9, 0x49, 0xd8, 0xfe, 0x01, 0x4f, 0x3d, 0x8a, 0xdd, 0x14, 0x19, 0x6f, 0x42, 0xca, 0x69,
+ 0xbc, 0x3e, 0x14, 0xcd, 0x3f, 0xe4, 0x9e, 0x26, 0x00, 0x0c, 0xbe, 0x03, 0x0f, 0x85, 0x4e, 0x13,
+ 0x43, 0x90, 0xfd, 0x23, 0x46, 0x36, 0x13, 0x32, 0x55, 0xb0, 0x21, 0xe1, 0xa4, 0x94, 0xff, 0x98,
+ 0x0f, 0x09, 0x48, 0xe2, 0xda, 0xc6, 0xef, 0x0a, 0x8e, 0x79, 0x70, 0x32, 0xab, 0xfd, 0x13, 0x6e,
+ 0x35, 0x8a, 0x0d, 0x58, 0x6d, 0x17, 0x66, 0x18, 0xe3, 0xc9, 0xfc, 0xfa, 0x75, 0x3e, 0xb0, 0x52,
+ 0xf4, 0x5e, 0xd0, 0xbb, 0x2f, 0xc2, 0xac, 0x67, 0x4e, 0x5e, 0x94, 0x3a, 0xd5, 0x96, 0xd9, 0x1e,
+ 0x82, 0xf9, 0x77, 0x19, 0x33, 0x1f, 0xf1, 0xbd, 0xaa, 0xd6, 0xd9, 0x34, 0xdb, 0x98, 0xfc, 0x05,
+ 0xc8, 0x72, 0xf2, 0xae, 0xd5, 0x41, 0x35, 0xfb, 0xd0, 0x6a, 0xbc, 0x8e, 0xea, 0x43, 0x50, 0x7f,
+ 0x43, 0x72, 0xd5, 0x9e, 0x00, 0xc7, 0xcc, 0xeb, 0xa0, 0x79, 0xb5, 0x4a, 0xb5, 0xd1, 0x6a, 0xdb,
+ 0x1d, 0x37, 0x82, 0xf1, 0x9f, 0x72, 0x4f, 0x79, 0xb8, 0x75, 0x02, 0xcb, 0x97, 0x61, 0x82, 0x5c,
+ 0x0e, 0x1b, 0x92, 0xbf, 0xc7, 0x88, 0xc6, 0x7d, 0x14, 0x1b, 0x38, 0x6a, 0x76, 0xab, 0x6d, 0x76,
+ 0x86, 0x19, 0xff, 0xfe, 0x19, 0x1f, 0x38, 0x18, 0x84, 0x0d, 0x1c, 0xee, 0x71, 0x1b, 0xe1, 0xd9,
+ 0x7e, 0x08, 0x86, 0x6f, 0xf2, 0x81, 0x83, 0x63, 0x18, 0x05, 0x2f, 0x18, 0x86, 0xa0, 0xf8, 0xe7,
+ 0x9c, 0x82, 0x63, 0x30, 0xc5, 0x27, 0xfd, 0x89, 0xb6, 0x83, 0x0e, 0x1b, 0x8e, 0xdb, 0xa1, 0xa5,
+ 0xf0, 0x60, 0xaa, 0xdf, 0xff, 0x41, 0xb0, 0x08, 0x33, 0x04, 0x28, 0x1e, 0x89, 0xd8, 0x12, 0x2a,
+ 0x79, 0x53, 0x8a, 0x56, 0xec, 0x0f, 0xf8, 0x48, 0x24, 0xc0, 0xb0, 0x6e, 0x42, 0x85, 0x88, 0xcd,
+ 0x5e, 0xc3, 0xef, 0x07, 0x43, 0xd0, 0x7d, 0x4b, 0x52, 0x6e, 0x87, 0x63, 0x31, 0xa7, 0x50, 0xff,
+ 0x74, 0xad, 0x97, 0xd1, 0xf1, 0x50, 0xd1, 0xf9, 0x2f, 0xa4, 0xfa, 0x67, 0x8f, 0x22, 0xe9, 0x18,
+ 0x32, 0x29, 0xd5, 0x53, 0x7a, 0xd4, 0x29, 0xa0, 0xec, 0x9f, 0x7f, 0x9f, 0x3d, 0x6f, 0xb0, 0x9c,
+ 0xca, 0x6f, 0xe0, 0x20, 0x0f, 0x16, 0x3d, 0xd1, 0x64, 0x9f, 0x79, 0xdf, 0x8b, 0xf3, 0x40, 0xcd,
+ 0x93, 0x5f, 0x83, 0xf1, 0x40, 0xc1, 0x13, 0x4d, 0xf5, 0x17, 0x18, 0x55, 0x46, 0xac, 0x77, 0xf2,
+ 0x57, 0x20, 0x8e, 0x8b, 0x97, 0x68, 0xf8, 0x5f, 0x64, 0x70, 0x22, 0x9e, 0x7f, 0x1a, 0x92, 0xbc,
+ 0x68, 0x89, 0x86, 0xfe, 0x32, 0x83, 0x7a, 0x10, 0x0c, 0xe7, 0x05, 0x4b, 0x34, 0xfc, 0x2f, 0x71,
+ 0x38, 0x87, 0x60, 0xf8, 0xf0, 0x26, 0x7c, 0xeb, 0xaf, 0xc4, 0xd9, 0xa4, 0xc3, 0x6d, 0x77, 0x13,
+ 0xc6, 0x58, 0xa5, 0x12, 0x8d, 0xfe, 0x15, 0x76, 0x73, 0x8e, 0xc8, 0x5f, 0x83, 0xc4, 0x90, 0x06,
+ 0xff, 0x6b, 0x0c, 0x4a, 0xe5, 0xf3, 0x25, 0x48, 0x0b, 0xd5, 0x49, 0x34, 0xfc, 0xaf, 0x33, 0xb8,
+ 0x88, 0xc2, 0xaa, 0xb3, 0xea, 0x24, 0x9a, 0xe0, 0x6f, 0x70, 0xd5, 0x19, 0x02, 0x9b, 0x8d, 0x17,
+ 0x26, 0xd1, 0xe8, 0xbf, 0xc9, 0xad, 0xce, 0x21, 0xf9, 0x67, 0x21, 0xe5, 0x4d, 0x36, 0xd1, 0xf8,
+ 0xbf, 0xc5, 0xf0, 0x3e, 0x06, 0x5b, 0x40, 0x98, 0xec, 0xa2, 0x29, 0xfe, 0x36, 0xb7, 0x80, 0x80,
+ 0xc2, 0x69, 0x24, 0x17, 0x30, 0xd1, 0x4c, 0xbf, 0xca, 0xd3, 0x48, 0xaa, 0x5f, 0xb0, 0x37, 0xc9,
+ 0x98, 0x1f, 0x4d, 0xf1, 0x77, 0xb8, 0x37, 0x89, 0x3c, 0x56, 0x43, 0xae, 0x08, 0xa2, 0x39, 0xfe,
+ 0x1e, 0x57, 0x43, 0x2a, 0x08, 0xf2, 0xdb, 0xa0, 0xf7, 0x56, 0x03, 0xd1, 0x7c, 0x9f, 0x63, 0x7c,
+ 0x53, 0x3d, 0xc5, 0x40, 0xfe, 0x79, 0x98, 0x09, 0xaf, 0x04, 0xa2, 0x59, 0x7f, 0xed, 0x7d, 0xe9,
+ 0xdd, 0x4d, 0x2c, 0x04, 0xf2, 0xbb, 0xfe, 0x94, 0x22, 0x56, 0x01, 0xd1, 0xb4, 0x9f, 0x7f, 0x3f,
+ 0x38, 0x70, 0x8b, 0x45, 0x40, 0xbe, 0x00, 0xe0, 0x4f, 0xc0, 0xd1, 0x5c, 0x5f, 0x60, 0x5c, 0x02,
+ 0x08, 0xa7, 0x06, 0x9b, 0x7f, 0xa3, 0xf1, 0x5f, 0xe4, 0xa9, 0xc1, 0x10, 0x38, 0x35, 0xf8, 0xd4,
+ 0x1b, 0x8d, 0xfe, 0x12, 0x4f, 0x0d, 0x0e, 0xc1, 0x91, 0x2d, 0xcc, 0x6e, 0xd1, 0x0c, 0x5f, 0xe1,
+ 0x91, 0x2d, 0xa0, 0xf2, 0x15, 0x98, 0xea, 0x99, 0x10, 0xa3, 0xa9, 0x7e, 0x9d, 0x51, 0x69, 0xf2,
+ 0x7c, 0x28, 0x4e, 0x5e, 0x6c, 0x32, 0x8c, 0x66, 0xfb, 0x0d, 0x69, 0xf2, 0x62, 0x73, 0x61, 0xfe,
+ 0x26, 0x24, 0xad, 0x6e, 0xb3, 0x89, 0x93, 0x47, 0x1f, 0x7c, 0x72, 0x2f, 0xfb, 0xdf, 0x7e, 0xcc,
+ 0xac, 0xc3, 0x01, 0xf9, 0x2b, 0x90, 0x40, 0xad, 0x7d, 0x54, 0x8f, 0x42, 0xfe, 0xf7, 0x1f, 0xf3,
+ 0x01, 0x13, 0x4b, 0xe7, 0x9f, 0x05, 0xa0, 0x4b, 0x23, 0x64, 0xdb, 0x2f, 0x02, 0xfb, 0x3f, 0x7e,
+ 0xcc, 0xce, 0xd4, 0xf8, 0x10, 0x9f, 0x80, 0x9e, 0xd0, 0x19, 0x4c, 0xf0, 0x83, 0x20, 0x01, 0xf1,
+ 0xc8, 0x0d, 0x18, 0x7b, 0xc9, 0xb1, 0x2d, 0xd7, 0x3c, 0x8c, 0x42, 0xff, 0x4f, 0x86, 0xe6, 0xf2,
+ 0xd8, 0x60, 0x2d, 0xbb, 0x83, 0x5c, 0xf3, 0xd0, 0x89, 0xc2, 0xfe, 0x2f, 0x86, 0xf5, 0x00, 0x18,
+ 0x5c, 0x33, 0x1d, 0x77, 0x98, 0xe7, 0xfe, 0xdf, 0x1c, 0xcc, 0x01, 0x58, 0x69, 0xfc, 0xf9, 0x65,
+ 0x74, 0x1c, 0x85, 0xfd, 0x21, 0x57, 0x9a, 0xc9, 0xe7, 0x9f, 0x86, 0x14, 0xfe, 0x48, 0x0f, 0xca,
+ 0x45, 0x80, 0xff, 0x0f, 0x03, 0xfb, 0x08, 0x7c, 0x67, 0xc7, 0xad, 0xbb, 0x8d, 0x68, 0x63, 0xff,
+ 0x31, 0xf3, 0x34, 0x97, 0xcf, 0x17, 0x20, 0xed, 0xb8, 0xf5, 0x7a, 0x97, 0xd5, 0xa7, 0x11, 0xf0,
+ 0xff, 0xfb, 0x63, 0x6f, 0xc9, 0xc2, 0xc3, 0x60, 0x6f, 0xbf, 0xfa, 0xb2, 0xdb, 0xb6, 0xc9, 0x36,
+ 0x47, 0x14, 0xc3, 0xfb, 0x8c, 0x41, 0x80, 0x14, 0xcb, 0xe1, 0xcb, 0xb7, 0x70, 0xcb, 0xbe, 0x65,
+ 0xd3, 0x85, 0xdb, 0x4f, 0xe7, 0xa2, 0x57, 0x60, 0xe1, 0xbf, 0x34, 0xe1, 0x5a, 0x5f, 0x31, 0x3c,
+ 0x15, 0x5f, 0xa8, 0xd9, 0xad, 0x7d, 0xdb, 0xb9, 0xb0, 0x6f, 0xbb, 0x47, 0x17, 0xdc, 0x23, 0x84,
+ 0xdb, 0xd8, 0x92, 0x6d, 0x1c, 0x7f, 0x9e, 0x3d, 0xd9, 0x3a, 0x2f, 0xd9, 0xc5, 0xaf, 0x34, 0xf0,
+ 0xa3, 0x55, 0xc8, 0x46, 0x8a, 0x7e, 0x1a, 0x46, 0xc9, 0xc3, 0x5e, 0x22, 0x9b, 0x95, 0x4a, 0x31,
+ 0x7e, 0xf7, 0x9d, 0xf9, 0x11, 0x83, 0xb5, 0x79, 0xbd, 0xcb, 0x64, 0xa5, 0x3b, 0x16, 0xe8, 0x5d,
+ 0xf6, 0x7a, 0x2f, 0xd3, 0xc5, 0xee, 0x40, 0xef, 0x65, 0xaf, 0x77, 0x85, 0x2c, 0x7b, 0xab, 0x81,
+ 0xde, 0x15, 0xaf, 0xf7, 0x0a, 0xd9, 0xda, 0x19, 0x0f, 0xf4, 0x5e, 0xf1, 0x7a, 0xaf, 0x92, 0x0d,
+ 0x9d, 0x78, 0xa0, 0xf7, 0xaa, 0xd7, 0x7b, 0x8d, 0xec, 0xe5, 0x4c, 0x05, 0x7a, 0xaf, 0x79, 0xbd,
+ 0xd7, 0xc9, 0x1e, 0x8e, 0x1e, 0xe8, 0xbd, 0xee, 0xf5, 0xde, 0x20, 0x27, 0xaf, 0xc6, 0x02, 0xbd,
+ 0x37, 0xf4, 0x39, 0x18, 0xa3, 0x4f, 0x7e, 0x91, 0x6c, 0xf8, 0x4f, 0xb2, 0x6e, 0xde, 0xe8, 0xf7,
+ 0x5f, 0x22, 0xa7, 0xac, 0x46, 0x83, 0xfd, 0x97, 0xfc, 0xfe, 0x65, 0xf2, 0x85, 0x0f, 0x2d, 0xd8,
+ 0xbf, 0xec, 0xf7, 0x5f, 0xce, 0x8e, 0x93, 0x93, 0x66, 0x81, 0xfe, 0xcb, 0x7e, 0xff, 0x4a, 0x76,
+ 0x02, 0x67, 0x4c, 0xb0, 0x7f, 0xc5, 0xef, 0xbf, 0x92, 0x9d, 0x3c, 0xa3, 0x2c, 0x64, 0x82, 0xfd,
+ 0x57, 0x72, 0xbf, 0x44, 0xdc, 0x6b, 0xf9, 0xee, 0x9d, 0x09, 0xba, 0xd7, 0x73, 0xec, 0x4c, 0xd0,
+ 0xb1, 0x9e, 0x4b, 0x67, 0x82, 0x2e, 0xf5, 0x9c, 0x39, 0x13, 0x74, 0xa6, 0xe7, 0xc6, 0x99, 0xa0,
+ 0x1b, 0x3d, 0x07, 0xce, 0x04, 0x1d, 0xe8, 0xb9, 0x6e, 0x26, 0xe8, 0x3a, 0xcf, 0x69, 0x33, 0x41,
+ 0xa7, 0x79, 0xee, 0x9a, 0x09, 0xba, 0xcb, 0x73, 0x54, 0x56, 0x72, 0x94, 0xef, 0xa2, 0xac, 0xe4,
+ 0x22, 0xdf, 0x39, 0x59, 0xc9, 0x39, 0xbe, 0x5b, 0xb2, 0x92, 0x5b, 0x7c, 0x87, 0x64, 0x25, 0x87,
+ 0xf8, 0xae, 0xc8, 0x4a, 0xae, 0xf0, 0x9d, 0xc0, 0x72, 0xcc, 0x40, 0xed, 0x90, 0x1c, 0x53, 0x07,
+ 0xe6, 0x98, 0x3a, 0x30, 0xc7, 0xd4, 0x81, 0x39, 0xa6, 0x0e, 0xcc, 0x31, 0x75, 0x60, 0x8e, 0xa9,
+ 0x03, 0x73, 0x4c, 0x1d, 0x98, 0x63, 0xea, 0xc0, 0x1c, 0x53, 0x07, 0xe7, 0x98, 0x1a, 0x91, 0x63,
+ 0x6a, 0x44, 0x8e, 0xa9, 0x11, 0x39, 0xa6, 0x46, 0xe4, 0x98, 0x1a, 0x91, 0x63, 0x6a, 0xdf, 0x1c,
+ 0xf3, 0xdd, 0x3b, 0x13, 0x74, 0x6f, 0x68, 0x8e, 0xa9, 0x7d, 0x72, 0x4c, 0xed, 0x93, 0x63, 0x6a,
+ 0x9f, 0x1c, 0x53, 0xfb, 0xe4, 0x98, 0xda, 0x27, 0xc7, 0xd4, 0x3e, 0x39, 0xa6, 0xf6, 0xc9, 0x31,
+ 0xb5, 0x5f, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6,
+ 0x98, 0xda, 0x37, 0xc7, 0x54, 0x31, 0xc7, 0xfe, 0xa5, 0x0a, 0x3a, 0xcd, 0xb1, 0x6d, 0x72, 0x64,
+ 0x8c, 0xb9, 0x62, 0x4e, 0xca, 0xb4, 0x51, 0xec, 0x3a, 0xcd, 0x77, 0xc9, 0x9c, 0x94, 0x6b, 0xc1,
+ 0xfe, 0x65, 0xaf, 0x9f, 0x67, 0x5b, 0xb0, 0xff, 0xb2, 0xd7, 0xcf, 0xf3, 0x2d, 0xd8, 0xbf, 0xe2,
+ 0xf5, 0xf3, 0x8c, 0x0b, 0xf6, 0x5f, 0xf1, 0xfa, 0x79, 0xce, 0x05, 0xfb, 0xaf, 0x7a, 0xfd, 0x3c,
+ 0xeb, 0x82, 0xfd, 0xd7, 0xbc, 0x7e, 0x9e, 0x77, 0xc1, 0xfe, 0xeb, 0x5e, 0x3f, 0xcf, 0xbc, 0x60,
+ 0xff, 0x0d, 0xfd, 0x8c, 0x9c, 0x7b, 0x5c, 0xc0, 0x73, 0xed, 0x19, 0x39, 0xfb, 0x24, 0x89, 0x4b,
+ 0xbe, 0x04, 0xcf, 0x3f, 0x49, 0x62, 0xd9, 0x97, 0xe0, 0x19, 0x28, 0x49, 0x5c, 0xce, 0x7d, 0x96,
+ 0xb8, 0xcf, 0x92, 0xdd, 0x37, 0x2b, 0xb9, 0x2f, 0x26, 0xb8, 0x6e, 0x56, 0x72, 0x5d, 0x4c, 0x70,
+ 0xdb, 0xac, 0xe4, 0xb6, 0x98, 0xe0, 0xb2, 0x59, 0xc9, 0x65, 0x31, 0xc1, 0x5d, 0xb3, 0x92, 0xbb,
+ 0x62, 0x82, 0xab, 0x66, 0x25, 0x57, 0xc5, 0x04, 0x37, 0xcd, 0x4a, 0x6e, 0x8a, 0x09, 0x2e, 0x9a,
+ 0x95, 0x5c, 0x14, 0x13, 0xdc, 0x33, 0x2b, 0xb9, 0x27, 0x26, 0xb8, 0xe6, 0xb4, 0xec, 0x9a, 0x98,
+ 0xe8, 0x96, 0xd3, 0xb2, 0x5b, 0x62, 0xa2, 0x4b, 0x4e, 0xcb, 0x2e, 0x89, 0x89, 0xee, 0x38, 0x2d,
+ 0xbb, 0x23, 0x26, 0xba, 0xe2, 0x4f, 0x62, 0xbc, 0x22, 0xdc, 0x71, 0x3b, 0xdd, 0x9a, 0xfb, 0x81,
+ 0x2a, 0xc2, 0x8b, 0x81, 0xf2, 0x21, 0xbd, 0xac, 0x2f, 0x91, 0x82, 0x55, 0xac, 0x38, 0xa5, 0x19,
+ 0xec, 0x62, 0xa0, 0xb0, 0x10, 0x10, 0x56, 0x38, 0x62, 0xe5, 0x03, 0xd5, 0x86, 0x17, 0x03, 0x65,
+ 0x46, 0xb4, 0x7e, 0xd7, 0x3f, 0xf2, 0x8a, 0xed, 0xad, 0x18, 0xaf, 0xd8, 0x98, 0xf9, 0x4f, 0x5a,
+ 0xb1, 0x2d, 0x46, 0x9b, 0xdc, 0x33, 0xf6, 0x62, 0xb4, 0xb1, 0x7b, 0x66, 0x9d, 0x61, 0x2b, 0xb8,
+ 0xc5, 0x68, 0xd3, 0x7a, 0x46, 0xfd, 0x70, 0xeb, 0x2d, 0x16, 0xc1, 0x06, 0x6a, 0x87, 0x44, 0xf0,
+ 0x49, 0xeb, 0xad, 0x8b, 0x81, 0xa1, 0xe4, 0xa4, 0x11, 0xac, 0x9e, 0x38, 0x82, 0x4f, 0x5a, 0x79,
+ 0x5d, 0x0c, 0x0c, 0x2f, 0x27, 0x8e, 0xe0, 0x8f, 0xa0, 0x1e, 0x62, 0x11, 0xec, 0x9b, 0xff, 0xa4,
+ 0xf5, 0xd0, 0x62, 0xb4, 0xc9, 0x43, 0x23, 0x58, 0x3d, 0x41, 0x04, 0x0f, 0x53, 0x1f, 0x2d, 0x46,
+ 0x9b, 0x36, 0x3c, 0x82, 0x3f, 0x70, 0x35, 0xf3, 0x65, 0x05, 0xa6, 0x2a, 0x8d, 0x7a, 0xb9, 0xb5,
+ 0x8f, 0xea, 0x75, 0x54, 0x67, 0x76, 0xbc, 0x18, 0x18, 0x09, 0xfa, 0xb8, 0xfa, 0xed, 0x77, 0xe6,
+ 0x7d, 0x0b, 0x5f, 0x81, 0x24, 0xb5, 0xe9, 0xc5, 0x8b, 0xd9, 0xbb, 0x4a, 0xc4, 0x08, 0xe7, 0x89,
+ 0xea, 0x67, 0x39, 0xec, 0xd2, 0xc5, 0xec, 0x7f, 0x50, 0x84, 0x51, 0xce, 0x6b, 0xce, 0xfd, 0x2a,
+ 0xd1, 0xd0, 0xfa, 0xc0, 0x1a, 0x5e, 0x18, 0x4a, 0x43, 0x41, 0xb7, 0x87, 0x7b, 0x74, 0x13, 0xb4,
+ 0xea, 0xc2, 0x64, 0xa5, 0x51, 0xaf, 0x90, 0x9f, 0x1a, 0x18, 0x46, 0x25, 0x2a, 0x23, 0x8d, 0x07,
+ 0x17, 0x03, 0x61, 0x29, 0x22, 0xbc, 0x90, 0x0e, 0x8e, 0x11, 0xb9, 0x06, 0xbe, 0xad, 0x15, 0xb8,
+ 0xed, 0x62, 0xbf, 0xdb, 0xfa, 0x23, 0xbb, 0x77, 0xc3, 0xc5, 0x7e, 0x37, 0xf4, 0x73, 0xc8, 0xbb,
+ 0xd5, 0x6b, 0x7c, 0x72, 0xa6, 0x07, 0xb7, 0xf4, 0xd3, 0x10, 0x5b, 0xa7, 0xe7, 0xca, 0x33, 0xc5,
+ 0x0c, 0x56, 0xea, 0x3b, 0xef, 0xcc, 0xc7, 0xf7, 0xba, 0x8d, 0xba, 0x11, 0x5b, 0xaf, 0xeb, 0xb7,
+ 0x21, 0xf1, 0x29, 0xf6, 0x85, 0x57, 0x2c, 0xb0, 0xc2, 0x04, 0x9e, 0x8c, 0x58, 0x62, 0x22, 0xd4,
+ 0x4b, 0x7b, 0x0d, 0xcb, 0xbd, 0xb4, 0x7c, 0xdd, 0xa0, 0x14, 0xb9, 0x3f, 0x05, 0x40, 0xef, 0xb9,
+ 0x6a, 0x3a, 0x47, 0x7a, 0x85, 0x33, 0xd3, 0x5b, 0x5f, 0xff, 0xce, 0x3b, 0xf3, 0x2b, 0xc3, 0xb0,
+ 0x3e, 0x55, 0x37, 0x9d, 0xa3, 0xa7, 0xdc, 0xe3, 0x36, 0x5a, 0x2a, 0x1e, 0xbb, 0xc8, 0xe1, 0xec,
+ 0x6d, 0x3e, 0xeb, 0xb1, 0xe7, 0xca, 0x0a, 0xcf, 0x95, 0x0c, 0x3c, 0xd3, 0x5a, 0xf0, 0x99, 0x2e,
+ 0xde, 0xef, 0xf3, 0xbc, 0xc6, 0x27, 0x09, 0xc9, 0x92, 0x6a, 0x94, 0x25, 0xd5, 0x0f, 0x6a, 0xc9,
+ 0x36, 0x1f, 0x1f, 0xa5, 0x67, 0x55, 0x07, 0x3d, 0xab, 0xfa, 0x41, 0x9e, 0xf5, 0xff, 0xd1, 0x6c,
+ 0xf5, 0xf2, 0x69, 0xcf, 0xa2, 0x67, 0x5a, 0x7f, 0xb6, 0xd6, 0x82, 0x3e, 0xd4, 0x2a, 0x20, 0x1f,
+ 0xbf, 0xfb, 0xe6, 0xbc, 0x92, 0xfb, 0x72, 0x8c, 0x3f, 0x39, 0x4d, 0xa4, 0xfb, 0x7b, 0xf2, 0x9f,
+ 0x95, 0x9a, 0xea, 0xa3, 0xb0, 0xd0, 0x97, 0x14, 0x98, 0xe9, 0x19, 0xc9, 0xa9, 0x99, 0x3e, 0xdc,
+ 0xe1, 0xdc, 0x3a, 0xe9, 0x70, 0xce, 0x14, 0xfc, 0x3d, 0x05, 0x4e, 0x49, 0xc3, 0x2b, 0x55, 0xef,
+ 0x82, 0xa4, 0xde, 0x83, 0xbd, 0x77, 0x22, 0x82, 0x82, 0x76, 0xa2, 0x7b, 0x25, 0x80, 0xc0, 0xec,
+ 0xf9, 0x7d, 0x45, 0xf2, 0xfb, 0x69, 0x0f, 0x10, 0x62, 0x2e, 0x1e, 0x01, 0x4c, 0x6d, 0x1b, 0xe2,
+ 0xbb, 0x1d, 0x84, 0xf4, 0x39, 0x88, 0x6d, 0x75, 0x98, 0x86, 0x13, 0x14, 0xbf, 0xd5, 0x29, 0x76,
+ 0x4c, 0xab, 0x76, 0x64, 0xc4, 0xb6, 0x3a, 0xfa, 0x59, 0x50, 0x0b, 0xec, 0xcb, 0xf6, 0xe9, 0xe5,
+ 0x49, 0x2a, 0x50, 0xb0, 0xea, 0x4c, 0x02, 0xf7, 0xe9, 0x73, 0x10, 0xdf, 0x40, 0xe6, 0x01, 0x53,
+ 0x02, 0xa8, 0x0c, 0x6e, 0x31, 0x48, 0x3b, 0xbb, 0xe1, 0x0b, 0x90, 0xe4, 0xc4, 0xfa, 0x39, 0x8c,
+ 0x38, 0x70, 0xd9, 0x6d, 0x19, 0x02, 0xab, 0xc3, 0x66, 0x2e, 0xd2, 0xab, 0x9f, 0x87, 0x84, 0xd1,
+ 0x38, 0x3c, 0x72, 0xd9, 0xcd, 0x7b, 0xc5, 0x68, 0x77, 0xee, 0x0e, 0xa4, 0x3c, 0x8d, 0x3e, 0x64,
+ 0xea, 0x55, 0xfa, 0x68, 0xfa, 0xac, 0x38, 0x9f, 0xf0, 0x75, 0x4b, 0xda, 0xa4, 0x9f, 0x81, 0xe4,
+ 0x8e, 0xdb, 0xf1, 0x07, 0x7d, 0x5e, 0x91, 0x7a, 0xad, 0xb9, 0x5f, 0x52, 0x20, 0xb9, 0x8a, 0x50,
+ 0x9b, 0x18, 0xfc, 0x31, 0x88, 0xaf, 0xda, 0xaf, 0x5a, 0x4c, 0xc1, 0x29, 0x66, 0x51, 0xdc, 0xcd,
+ 0x6c, 0x4a, 0xba, 0xf5, 0xc7, 0x44, 0xbb, 0x4f, 0x7b, 0x76, 0x17, 0xe4, 0x88, 0xed, 0x73, 0x01,
+ 0xdb, 0x33, 0x07, 0x62, 0xa1, 0x1e, 0xfb, 0x5f, 0x83, 0xb4, 0x70, 0x17, 0x7d, 0x81, 0xa9, 0x11,
+ 0x93, 0x81, 0xa2, 0xad, 0xb0, 0x44, 0x0e, 0xc1, 0x78, 0xe0, 0xc6, 0x18, 0x2a, 0x98, 0xb8, 0x0f,
+ 0x94, 0x98, 0x79, 0x31, 0x68, 0xe6, 0x70, 0x51, 0x66, 0xea, 0x8b, 0xd4, 0x46, 0xc4, 0xdc, 0xe7,
+ 0x68, 0x70, 0xf6, 0x77, 0x22, 0xfe, 0x9c, 0x4b, 0x80, 0x5a, 0x69, 0x34, 0x73, 0x4f, 0x03, 0xd0,
+ 0x94, 0x2f, 0x5b, 0xdd, 0x96, 0x94, 0x75, 0x13, 0xdc, 0xc0, 0xbb, 0x47, 0x68, 0x17, 0x39, 0x44,
+ 0x24, 0x58, 0x4f, 0xe1, 0x01, 0x06, 0x68, 0x8a, 0x11, 0xfc, 0x13, 0x91, 0xf8, 0xd0, 0x4a, 0x0c,
+ 0x8b, 0x66, 0xa9, 0xe8, 0x1d, 0xe4, 0x16, 0x2c, 0xdb, 0x3d, 0x42, 0x1d, 0x09, 0xb1, 0xac, 0x5f,
+ 0x0e, 0x24, 0xec, 0xc4, 0xf2, 0xc3, 0x1e, 0xa2, 0x2f, 0xe8, 0x72, 0xee, 0xeb, 0x44, 0x41, 0x5c,
+ 0x0a, 0xf4, 0x3c, 0xa0, 0x3a, 0xc4, 0x03, 0xea, 0x57, 0x03, 0xf5, 0xdb, 0x00, 0x35, 0xa5, 0x57,
+ 0xcb, 0x1b, 0x81, 0xf7, 0x9c, 0xc1, 0xca, 0x06, 0xdf, 0x31, 0xb9, 0x4d, 0xb9, 0xca, 0x4f, 0x44,
+ 0xaa, 0xdc, 0xa7, 0xba, 0x3d, 0xa9, 0x4d, 0xd5, 0x61, 0x6d, 0xfa, 0x2d, 0xaf, 0xe2, 0xa0, 0xbf,
+ 0x68, 0x42, 0x7e, 0x0b, 0x48, 0x7f, 0x32, 0xd2, 0xf7, 0x79, 0xa5, 0xe4, 0xa9, 0xba, 0x32, 0xac,
+ 0xfb, 0xf3, 0xb1, 0x62, 0xd1, 0x53, 0xf7, 0xda, 0x09, 0x42, 0x20, 0x1f, 0x2b, 0x95, 0xbc, 0x61,
+ 0x3b, 0xf9, 0xd9, 0x37, 0xe7, 0x95, 0xaf, 0xbd, 0x39, 0x3f, 0x92, 0xfb, 0x6d, 0x05, 0xa6, 0x98,
+ 0xa4, 0x10, 0xb8, 0x4f, 0x49, 0xca, 0x3f, 0xc0, 0xc7, 0x8c, 0x30, 0x0b, 0xfc, 0xc4, 0x82, 0xf7,
+ 0xdb, 0x0a, 0x64, 0x7b, 0x74, 0xe5, 0xf6, 0xbe, 0x38, 0x94, 0xca, 0x79, 0xa5, 0xfc, 0xd3, 0xb7,
+ 0xf9, 0x1d, 0x48, 0xec, 0x36, 0x5a, 0xa8, 0x83, 0x67, 0x02, 0xfc, 0x81, 0xaa, 0xcc, 0x37, 0x73,
+ 0x68, 0x13, 0xef, 0xa3, 0xca, 0x05, 0xfa, 0x96, 0xf5, 0x2c, 0xc4, 0x57, 0x4d, 0xd7, 0x24, 0x1a,
+ 0x64, 0xbc, 0xf1, 0xd5, 0x74, 0xcd, 0xdc, 0x65, 0xc8, 0x6c, 0x1e, 0x93, 0x83, 0x48, 0x75, 0x72,
+ 0x06, 0x25, 0x58, 0xfd, 0xf1, 0x7a, 0xf5, 0xd2, 0x62, 0x22, 0x59, 0xd7, 0xee, 0x2a, 0xf9, 0x38,
+ 0xd1, 0xe7, 0x15, 0x98, 0xd8, 0xc2, 0x6a, 0x13, 0x1c, 0x81, 0x9d, 0x01, 0x65, 0x33, 0x58, 0x08,
+ 0x89, 0xac, 0x86, 0xb2, 0x29, 0x95, 0x8f, 0xaa, 0x67, 0x1e, 0xa9, 0x6c, 0x53, 0xbd, 0xb2, 0x6d,
+ 0x31, 0x9e, 0x9c, 0xd0, 0xa6, 0x16, 0xe3, 0x49, 0xd0, 0xc6, 0xd9, 0x7d, 0xff, 0x9d, 0x0a, 0x1a,
+ 0x2d, 0x75, 0x56, 0xd1, 0x41, 0xc3, 0x6a, 0xb8, 0xbd, 0xf5, 0xaa, 0xa7, 0xb1, 0xfe, 0x2c, 0xa4,
+ 0xb0, 0x49, 0xd7, 0xd8, 0x4f, 0x02, 0x62, 0xd3, 0x9f, 0x65, 0x25, 0x8a, 0x44, 0xc1, 0x1a, 0x48,
+ 0xe8, 0xf8, 0x18, 0x7d, 0x0d, 0xd4, 0x4a, 0x65, 0x93, 0x4d, 0x6e, 0x2b, 0x03, 0xa1, 0xec, 0xb0,
+ 0x0f, 0xbb, 0x62, 0x6d, 0xce, 0xa1, 0x81, 0x09, 0xf4, 0x15, 0x88, 0x55, 0x36, 0x59, 0xc1, 0x7b,
+ 0x6e, 0x18, 0x1a, 0x23, 0x56, 0xd9, 0x9c, 0xfd, 0x57, 0x0a, 0x8c, 0x07, 0x5a, 0xf5, 0x1c, 0x64,
+ 0x68, 0x83, 0xf0, 0xb8, 0xa3, 0x46, 0xa0, 0x8d, 0xeb, 0x1c, 0xfb, 0x80, 0x3a, 0xcf, 0x16, 0x60,
+ 0x52, 0x6a, 0xd7, 0x97, 0x40, 0x17, 0x9b, 0x98, 0x12, 0xf4, 0xe7, 0xc8, 0x42, 0x7a, 0x72, 0x8f,
+ 0x00, 0xf8, 0x76, 0xf5, 0x7e, 0x45, 0xab, 0x52, 0xde, 0xd9, 0x2d, 0xaf, 0x6a, 0x4a, 0xee, 0x9b,
+ 0x0a, 0xa4, 0x59, 0xd9, 0x5a, 0xb3, 0xdb, 0x48, 0x2f, 0x82, 0x52, 0x60, 0x11, 0x74, 0x7f, 0x7a,
+ 0x2b, 0x05, 0xfd, 0x02, 0x28, 0xc5, 0xe1, 0x5d, 0xad, 0x14, 0xf5, 0x65, 0x50, 0x4a, 0xcc, 0xc1,
+ 0xc3, 0x79, 0x46, 0x29, 0xe5, 0xfe, 0x58, 0x85, 0x69, 0xb1, 0x8c, 0xe6, 0xe3, 0xc9, 0xd9, 0xe0,
+ 0x7b, 0x53, 0x3e, 0x75, 0x69, 0xf9, 0xf2, 0xca, 0x12, 0xfe, 0xc7, 0x0b, 0xc9, 0x5c, 0xf0, 0x15,
+ 0x2a, 0x0f, 0x9e, 0xc8, 0xa5, 0x7e, 0xe7, 0x44, 0xf2, 0x71, 0x81, 0xa1, 0xe7, 0x9c, 0x48, 0xa0,
+ 0xb7, 0xe7, 0x9c, 0x48, 0xa0, 0xb7, 0xe7, 0x9c, 0x48, 0xa0, 0xb7, 0x67, 0x2f, 0x20, 0xd0, 0xdb,
+ 0x73, 0x4e, 0x24, 0xd0, 0xdb, 0x73, 0x4e, 0x24, 0xd0, 0xdb, 0x7b, 0x4e, 0x84, 0x75, 0xf7, 0x3d,
+ 0x27, 0x12, 0xec, 0xef, 0x3d, 0x27, 0x12, 0xec, 0xef, 0x3d, 0x27, 0x92, 0x8f, 0xbb, 0x9d, 0x2e,
+ 0xea, 0xbf, 0xeb, 0x10, 0xc4, 0x0f, 0x7a, 0x09, 0xf4, 0x47, 0xe0, 0x2d, 0x98, 0xa4, 0x0b, 0x12,
+ 0x25, 0xdb, 0x72, 0xcd, 0x86, 0x85, 0x3a, 0xfa, 0xc7, 0x21, 0x43, 0x9b, 0xe8, 0x6b, 0x4e, 0xd8,
+ 0x6b, 0x20, 0xed, 0x67, 0xe3, 0x6d, 0x40, 0x3a, 0xf7, 0x27, 0x71, 0x98, 0xa1, 0x0d, 0x15, 0xb3,
+ 0x85, 0x02, 0xa7, 0x8c, 0xce, 0x4b, 0x7b, 0x4a, 0x13, 0x18, 0x7e, 0xef, 0x9d, 0x79, 0xda, 0x5a,
+ 0xf0, 0xa2, 0xe9, 0xbc, 0xb4, 0xbb, 0x14, 0x94, 0xf3, 0x27, 0xa0, 0xf3, 0xd2, 0xc9, 0xa3, 0xa0,
+ 0x9c, 0x37, 0xdf, 0x78, 0x72, 0xfc, 0x0c, 0x52, 0x50, 0x6e, 0xd5, 0x8b, 0xb2, 0xf3, 0xd2, 0x69,
+ 0xa4, 0xa0, 0x5c, 0xd9, 0x8b, 0xb7, 0xf3, 0xd2, 0xde, 0x53, 0x50, 0x6e, 0xcd, 0x8b, 0xbc, 0xf3,
+ 0xd2, 0x2e, 0x54, 0x50, 0xee, 0x96, 0x17, 0x83, 0xe7, 0xa5, 0xb3, 0x4a, 0x41, 0xb9, 0xe7, 0xbc,
+ 0x68, 0x3c, 0x2f, 0x9d, 0x5a, 0x0a, 0xca, 0xad, 0x7b, 0x71, 0xb9, 0x20, 0x9f, 0x5f, 0x0a, 0x0a,
+ 0xde, 0xf6, 0x23, 0x74, 0x41, 0x3e, 0xc9, 0x14, 0x94, 0xfc, 0x84, 0x1f, 0xab, 0x0b, 0xf2, 0x99,
+ 0xa6, 0xa0, 0xe4, 0x86, 0x1f, 0xb5, 0x0b, 0xf2, 0x5e, 0x59, 0x50, 0x72, 0xd3, 0x8f, 0xdf, 0x05,
+ 0x79, 0xd7, 0x2c, 0x28, 0x59, 0xf1, 0x23, 0x79, 0x41, 0xde, 0x3f, 0x0b, 0x4a, 0x6e, 0xf9, 0x8b,
+ 0xe8, 0x7f, 0x28, 0x85, 0x9f, 0x70, 0x0a, 0x2a, 0x27, 0x85, 0x1f, 0x84, 0x84, 0x9e, 0x34, 0x90,
+ 0x09, 0x32, 0x7e, 0xd8, 0xe5, 0xa4, 0xb0, 0x83, 0x90, 0x90, 0xcb, 0x49, 0x21, 0x07, 0x21, 0xe1,
+ 0x96, 0x93, 0xc2, 0x0d, 0x42, 0x42, 0x2d, 0x27, 0x85, 0x1a, 0x84, 0x84, 0x59, 0x4e, 0x0a, 0x33,
+ 0x08, 0x09, 0xb1, 0x9c, 0x14, 0x62, 0x10, 0x12, 0x5e, 0x39, 0x29, 0xbc, 0x20, 0x24, 0xb4, 0xce,
+ 0xc9, 0xa1, 0x05, 0x61, 0x61, 0x75, 0x4e, 0x0e, 0x2b, 0x08, 0x0b, 0xa9, 0x47, 0xe5, 0x90, 0x4a,
+ 0xdd, 0x7b, 0x67, 0x3e, 0x81, 0x9b, 0x84, 0x68, 0x3a, 0x27, 0x47, 0x13, 0x84, 0x45, 0xd2, 0x39,
+ 0x39, 0x92, 0x20, 0x2c, 0x8a, 0xce, 0xc9, 0x51, 0x04, 0x61, 0x11, 0xf4, 0x96, 0x1c, 0x41, 0xfe,
+ 0x19, 0x9f, 0x9c, 0xb4, 0xa5, 0x18, 0x15, 0x41, 0xea, 0x10, 0x11, 0xa4, 0x0e, 0x11, 0x41, 0xea,
+ 0x10, 0x11, 0xa4, 0x0e, 0x11, 0x41, 0xea, 0x10, 0x11, 0xa4, 0x0e, 0x11, 0x41, 0xea, 0x10, 0x11,
+ 0xa4, 0x0e, 0x13, 0x41, 0xea, 0x50, 0x11, 0xa4, 0xf6, 0x8b, 0xa0, 0x73, 0xf2, 0x89, 0x07, 0x08,
+ 0x1b, 0x90, 0xce, 0xc9, 0x5b, 0x9f, 0xd1, 0x21, 0xa4, 0x0e, 0x15, 0x42, 0x6a, 0xbf, 0x10, 0xfa,
+ 0x43, 0x15, 0xa6, 0x03, 0x21, 0xc4, 0xf6, 0x87, 0x3e, 0xac, 0x11, 0xe8, 0xea, 0x10, 0x07, 0x2c,
+ 0xc2, 0x62, 0xea, 0xea, 0x10, 0x9b, 0xd4, 0x83, 0xe2, 0xac, 0x77, 0x14, 0x2a, 0x0f, 0x31, 0x0a,
+ 0xad, 0x79, 0x31, 0x74, 0x75, 0x88, 0x83, 0x17, 0xbd, 0xb1, 0x77, 0x7d, 0xd0, 0x20, 0xf0, 0xdc,
+ 0x50, 0x83, 0xc0, 0xfa, 0x50, 0x83, 0xc0, 0x6d, 0xdf, 0x83, 0xbf, 0x1c, 0x83, 0x53, 0xbe, 0x07,
+ 0xe9, 0x27, 0xf2, 0xcb, 0x5a, 0x39, 0x61, 0x8b, 0x4a, 0xe7, 0xdb, 0x36, 0x82, 0x1b, 0x63, 0xeb,
+ 0x75, 0x7d, 0x3b, 0xb8, 0x59, 0x95, 0x3f, 0xe9, 0x06, 0x8e, 0xe0, 0x71, 0xb6, 0x18, 0x7a, 0x0e,
+ 0xd4, 0xf5, 0xba, 0x43, 0x46, 0x8b, 0xb0, 0xdb, 0x96, 0x0c, 0xdc, 0xad, 0x1b, 0x30, 0x4a, 0xc4,
+ 0x1d, 0xe2, 0xde, 0x0f, 0x72, 0xe3, 0x55, 0x83, 0x31, 0xe5, 0xde, 0x52, 0xe0, 0x4c, 0x20, 0x94,
+ 0x3f, 0x9c, 0x2d, 0x83, 0x9b, 0x43, 0x6d, 0x19, 0x04, 0x12, 0xc4, 0xdf, 0x3e, 0x78, 0xbc, 0x77,
+ 0xa7, 0x5a, 0xcc, 0x12, 0x79, 0x2b, 0xe1, 0xcf, 0xc1, 0x84, 0xff, 0x04, 0xe4, 0x9d, 0xed, 0x4a,
+ 0xf4, 0x6a, 0x66, 0x58, 0x6a, 0x5e, 0x91, 0x56, 0xd1, 0x06, 0xc2, 0xbc, 0x6c, 0xcd, 0xe5, 0x61,
+ 0xb2, 0x12, 0xfc, 0x4a, 0x54, 0xd4, 0x62, 0x44, 0x12, 0x97, 0xe6, 0x77, 0xbf, 0x32, 0x3f, 0x92,
+ 0x7b, 0x12, 0x32, 0xe2, 0xb7, 0x9e, 0x24, 0x60, 0x8a, 0x03, 0xf3, 0xf1, 0xb7, 0xb1, 0xf4, 0xdf,
+ 0x55, 0xe0, 0x01, 0x51, 0xfc, 0xf9, 0x86, 0x7b, 0xb4, 0x6e, 0xe1, 0x9a, 0xfe, 0x69, 0x48, 0x22,
+ 0xe6, 0x38, 0xf6, 0x23, 0x39, 0xec, 0x3d, 0x32, 0x54, 0x7c, 0x89, 0xfc, 0x6b, 0x78, 0x10, 0x69,
+ 0x8d, 0x83, 0xdf, 0x76, 0x79, 0xf6, 0x31, 0x48, 0x50, 0xfe, 0xa0, 0x5e, 0xe3, 0x92, 0x5e, 0xbf,
+ 0x19, 0xa2, 0x17, 0x89, 0x23, 0xfd, 0x76, 0x40, 0x2f, 0xe1, 0x75, 0x35, 0x54, 0x7c, 0x89, 0x07,
+ 0x5f, 0x31, 0x89, 0xeb, 0x3f, 0x12, 0x51, 0xd1, 0x4a, 0x2e, 0x40, 0xb2, 0x2c, 0xcb, 0x84, 0xeb,
+ 0xb9, 0x0a, 0xf1, 0x8a, 0x5d, 0x27, 0x3f, 0xdf, 0x43, 0x7e, 0x08, 0x9b, 0x19, 0x99, 0xfd, 0x2a,
+ 0xf6, 0x79, 0x48, 0x96, 0x8e, 0x1a, 0xcd, 0x7a, 0x07, 0x59, 0x6c, 0xcf, 0x9e, 0x2d, 0xa1, 0x63,
+ 0x8c, 0xe1, 0xf5, 0xe5, 0x4a, 0x30, 0x55, 0xb1, 0xad, 0xe2, 0xb1, 0x2b, 0x8e, 0x1b, 0x4b, 0x52,
+ 0x8a, 0xb0, 0x3d, 0x1f, 0xf2, 0x2d, 0x11, 0x2c, 0x50, 0x4c, 0x7c, 0xe7, 0x9d, 0x79, 0x65, 0xd7,
+ 0x5b, 0x3f, 0xdf, 0x84, 0x07, 0x59, 0xfa, 0xf4, 0x50, 0x2d, 0x47, 0x51, 0xa5, 0xd8, 0x3e, 0xb5,
+ 0x40, 0xb7, 0x8e, 0xe9, 0xac, 0x50, 0xba, 0xfb, 0xd3, 0x0c, 0x17, 0x45, 0x03, 0x35, 0x53, 0x4f,
+ 0xa4, 0x59, 0x28, 0xdd, 0x52, 0x14, 0x9d, 0xa4, 0xd9, 0xa3, 0x90, 0xf2, 0xfa, 0x84, 0x68, 0x10,
+ 0x33, 0x65, 0x79, 0x31, 0x07, 0x69, 0x21, 0x61, 0xf5, 0x04, 0x28, 0x05, 0x6d, 0x04, 0xff, 0x57,
+ 0xd4, 0x14, 0xfc, 0x5f, 0x49, 0x8b, 0x2d, 0x3e, 0x06, 0x93, 0xd2, 0xfa, 0x25, 0xee, 0x59, 0xd5,
+ 0x00, 0xff, 0x57, 0xd6, 0xd2, 0xb3, 0xf1, 0xcf, 0xfe, 0xc6, 0xdc, 0xc8, 0xe2, 0x4d, 0xd0, 0x7b,
+ 0x57, 0x3a, 0xf5, 0x51, 0x88, 0x15, 0x30, 0xe5, 0x83, 0x10, 0x2b, 0x16, 0x35, 0x65, 0x76, 0xf2,
+ 0x2f, 0x7f, 0xf1, 0x4c, 0xba, 0x48, 0xbe, 0xd2, 0x7d, 0x07, 0xb9, 0xc5, 0x22, 0x03, 0x3f, 0x03,
+ 0x0f, 0x84, 0xae, 0x94, 0x62, 0x7c, 0xa9, 0x44, 0xf1, 0xab, 0xab, 0x3d, 0xf8, 0xd5, 0x55, 0x82,
+ 0x57, 0xf2, 0x7c, 0xc7, 0xb9, 0xa0, 0x87, 0xac, 0x4b, 0x66, 0xeb, 0xc2, 0x0e, 0x77, 0x21, 0xff,
+ 0x0c, 0x93, 0x2d, 0x86, 0xca, 0xa2, 0x88, 0x1d, 0xeb, 0x62, 0xbe, 0xc4, 0xf0, 0xa5, 0x50, 0xfc,
+ 0x81, 0xb4, 0xad, 0x1a, 0x9c, 0x21, 0x18, 0x49, 0xc9, 0x53, 0x78, 0x35, 0x94, 0xe4, 0x48, 0x38,
+ 0xec, 0xbe, 0xea, 0x29, 0x5c, 0x0e, 0x95, 0x6d, 0x44, 0x1c, 0xfa, 0x2a, 0xe7, 0x2f, 0xb0, 0x49,
+ 0xbe, 0x70, 0x49, 0x7f, 0x80, 0xe7, 0x68, 0x60, 0x04, 0x66, 0x06, 0xe2, 0x52, 0xf9, 0x12, 0x03,
+ 0x14, 0xfb, 0x02, 0xfa, 0x5b, 0x89, 0x23, 0xf3, 0xcf, 0x31, 0x92, 0x52, 0x5f, 0x92, 0x08, 0x53,
+ 0x71, 0x78, 0x71, 0xf7, 0xee, 0xbb, 0x73, 0x23, 0x6f, 0xbf, 0x3b, 0x37, 0xf2, 0x9f, 0xde, 0x9d,
+ 0x1b, 0xf9, 0xee, 0xbb, 0x73, 0xca, 0xf7, 0xdf, 0x9d, 0x53, 0x7e, 0xf8, 0xee, 0x9c, 0xf2, 0xa3,
+ 0x77, 0xe7, 0x94, 0x37, 0xee, 0xcd, 0x29, 0x5f, 0xbb, 0x37, 0xa7, 0x7c, 0xfd, 0xde, 0x9c, 0xf2,
+ 0xfb, 0xf7, 0xe6, 0x94, 0xb7, 0xee, 0xcd, 0x29, 0x77, 0xef, 0xcd, 0x29, 0x6f, 0xdf, 0x9b, 0x53,
+ 0xbe, 0x7b, 0x6f, 0x4e, 0xf9, 0xfe, 0xbd, 0xb9, 0x91, 0x1f, 0xde, 0x9b, 0x53, 0x7e, 0x74, 0x6f,
+ 0x6e, 0xe4, 0x8d, 0xf7, 0xe6, 0x46, 0xde, 0x7c, 0x6f, 0x6e, 0xe4, 0x6b, 0xef, 0xcd, 0x29, 0xf0,
+ 0xde, 0x0a, 0xcc, 0xb1, 0x6f, 0x92, 0x59, 0xa8, 0x81, 0x83, 0xee, 0x82, 0x7b, 0x84, 0x48, 0x41,
+ 0x70, 0x99, 0xff, 0x02, 0x98, 0xd7, 0x70, 0xc2, 0xef, 0x94, 0xcd, 0xde, 0xef, 0x37, 0xd8, 0x72,
+ 0xff, 0x3a, 0x01, 0x63, 0x7c, 0x25, 0x38, 0xec, 0x77, 0xd2, 0xaf, 0x40, 0xf2, 0xa8, 0xd1, 0x34,
+ 0x3b, 0x0d, 0xf7, 0x98, 0x2d, 0x81, 0x3e, 0xb4, 0xe4, 0xab, 0xcd, 0x17, 0x4d, 0x9f, 0xeb, 0xb6,
+ 0xec, 0x6e, 0xc7, 0xf0, 0x44, 0xf5, 0x33, 0x90, 0x39, 0x42, 0x8d, 0xc3, 0x23, 0xb7, 0xda, 0xb0,
+ 0xaa, 0xb5, 0x16, 0xa9, 0x94, 0xc7, 0x0d, 0xa0, 0x6d, 0xeb, 0x56, 0xa9, 0x85, 0x6f, 0x56, 0x37,
+ 0x5d, 0x93, 0xbc, 0xa1, 0x67, 0x0c, 0xf2, 0x99, 0xfc, 0xd6, 0x31, 0x72, 0xba, 0x4d, 0xb7, 0x5a,
+ 0xb3, 0xbb, 0x96, 0x4b, 0x6a, 0x59, 0xd5, 0x48, 0xd3, 0xb6, 0x12, 0x6e, 0xd2, 0x1f, 0x85, 0x71,
+ 0xb7, 0xd3, 0x45, 0x55, 0xa7, 0x66, 0xbb, 0x4e, 0xcb, 0xb4, 0x48, 0x2d, 0x9b, 0x34, 0x32, 0xb8,
+ 0x71, 0x87, 0xb5, 0x91, 0x9f, 0xd8, 0xaf, 0xd9, 0x1d, 0x44, 0x5e, 0xa5, 0x63, 0x06, 0xbd, 0xd0,
+ 0x35, 0x50, 0x5f, 0x46, 0xc7, 0xe4, 0x65, 0x2d, 0x6e, 0xe0, 0x8f, 0xfa, 0x13, 0x30, 0x4a, 0xff,
+ 0x46, 0x0e, 0xa9, 0xac, 0xc9, 0xc6, 0xb5, 0xf7, 0x68, 0x74, 0x81, 0xd6, 0x60, 0x02, 0xfa, 0x0d,
+ 0x18, 0x73, 0x51, 0xa7, 0x63, 0x36, 0x2c, 0xf2, 0xe2, 0x94, 0x5e, 0x9e, 0x0f, 0x31, 0xc3, 0x2e,
+ 0x95, 0x20, 0xbf, 0x08, 0x6c, 0x70, 0x79, 0xfd, 0x0a, 0x64, 0x88, 0xdc, 0x72, 0x95, 0xfe, 0x1d,
+ 0xa1, 0x74, 0xdf, 0x58, 0x4e, 0x53, 0x39, 0xbe, 0x4f, 0xc0, 0x61, 0xf4, 0xd7, 0x10, 0xc7, 0xc9,
+ 0x6d, 0x1f, 0x0d, 0xb9, 0x2d, 0x19, 0x76, 0x97, 0x49, 0xc9, 0x48, 0x6f, 0xcd, 0x78, 0xe8, 0xef,
+ 0x25, 0x6e, 0x42, 0x46, 0xd4, 0x8b, 0x9b, 0x81, 0x96, 0x3e, 0xc4, 0x0c, 0x8f, 0xfb, 0x7f, 0xa3,
+ 0xa1, 0x8f, 0x15, 0x68, 0x7f, 0x3e, 0x76, 0x5d, 0x99, 0xdd, 0x06, 0x4d, 0xbe, 0x5f, 0x08, 0xe5,
+ 0xf9, 0x20, 0xa5, 0x26, 0x3e, 0x2c, 0x59, 0x25, 0xf7, 0x19, 0x73, 0xcf, 0xc2, 0x28, 0x8d, 0x1f,
+ 0x3d, 0x0d, 0x63, 0xfe, 0x0f, 0x6d, 0x26, 0x21, 0xbe, 0xbd, 0x57, 0xd9, 0xa1, 0xbf, 0x98, 0xbb,
+ 0xb3, 0x51, 0xd8, 0xde, 0xd9, 0x5d, 0x2f, 0x7d, 0x42, 0x8b, 0xe9, 0x93, 0x90, 0x2e, 0xae, 0x6f,
+ 0x6c, 0x54, 0x8b, 0x85, 0xf5, 0x8d, 0xf2, 0x1d, 0x4d, 0xcd, 0xcd, 0xc1, 0x28, 0xd5, 0x93, 0xfc,
+ 0xf2, 0x5f, 0xd7, 0xb2, 0x8e, 0x79, 0xe9, 0x40, 0x2e, 0x72, 0xdf, 0xd0, 0x61, 0xac, 0xd0, 0x6c,
+ 0x6e, 0x9a, 0x6d, 0x47, 0x7f, 0x1e, 0xa6, 0xe8, 0x6f, 0x72, 0xec, 0xda, 0xab, 0xe4, 0x07, 0x2a,
+ 0xf1, 0xc0, 0xa0, 0xb0, 0xbf, 0x4d, 0xe1, 0x3f, 0x37, 0x13, 0x5f, 0xea, 0x91, 0xa5, 0x06, 0xee,
+ 0xe5, 0xd0, 0x77, 0x41, 0xe3, 0x8d, 0x6b, 0x4d, 0xdb, 0x74, 0x31, 0x6f, 0x8c, 0xfd, 0x7e, 0x64,
+ 0x7f, 0x5e, 0x2e, 0x4a, 0x69, 0x7b, 0x18, 0xf4, 0x8f, 0x43, 0x72, 0xdd, 0x72, 0x2f, 0x2f, 0x63,
+ 0x36, 0xfe, 0x77, 0x9f, 0x7a, 0xd9, 0xb8, 0x08, 0x65, 0xf1, 0x10, 0x0c, 0x7d, 0x75, 0x05, 0xa3,
+ 0xe3, 0x83, 0xd0, 0x44, 0xc4, 0x47, 0x93, 0x4b, 0xfd, 0x59, 0x48, 0xe1, 0x37, 0x13, 0x7a, 0xf3,
+ 0x04, 0x2f, 0x5b, 0x7b, 0xe0, 0x9e, 0x0c, 0xc5, 0xfb, 0x18, 0x4e, 0x40, 0xef, 0x3f, 0x3a, 0x90,
+ 0x40, 0x50, 0xc0, 0xc7, 0x60, 0x82, 0x1d, 0x4f, 0x83, 0xb1, 0xbe, 0x04, 0x3b, 0x92, 0x06, 0x3b,
+ 0xa2, 0x06, 0x3b, 0x9e, 0x06, 0xc9, 0x81, 0x04, 0xa2, 0x06, 0xde, 0xb5, 0x5e, 0x04, 0x58, 0x6b,
+ 0xbc, 0x86, 0xea, 0x54, 0x05, 0xfa, 0x57, 0xa1, 0x72, 0x21, 0x0c, 0xbe, 0x10, 0xa5, 0x10, 0x50,
+ 0x7a, 0x19, 0xd2, 0x3b, 0x07, 0x3e, 0x09, 0xf4, 0xe4, 0xb1, 0xa7, 0xc6, 0x81, 0xc4, 0x22, 0xe2,
+ 0x3c, 0x55, 0xe8, 0xc3, 0xa4, 0x07, 0xab, 0x22, 0x3c, 0x8d, 0x80, 0xf2, 0x55, 0xa1, 0x24, 0x99,
+ 0x08, 0x55, 0x04, 0x16, 0x11, 0x87, 0x07, 0xc3, 0xa2, 0x6d, 0x63, 0x49, 0x36, 0x2a, 0xcd, 0x87,
+ 0x50, 0x30, 0x09, 0x36, 0x18, 0xb2, 0x2b, 0xe2, 0x11, 0x12, 0xe4, 0x18, 0x3c, 0xd1, 0xdf, 0x23,
+ 0x5c, 0x86, 0x7b, 0x84, 0x5f, 0x8b, 0x79, 0x46, 0x4e, 0xb3, 0x62, 0x9e, 0xc9, 0xc8, 0x3c, 0xe3,
+ 0xa2, 0x52, 0x9e, 0xf1, 0x66, 0xfd, 0x93, 0x30, 0xc9, 0xdb, 0xf0, 0xf0, 0x84, 0x49, 0x35, 0xf6,
+ 0x77, 0xf3, 0xfa, 0x93, 0x32, 0x49, 0xca, 0x29, 0xe3, 0xf5, 0x0a, 0x4c, 0xf0, 0xa6, 0x4d, 0x87,
+ 0x3c, 0xee, 0x14, 0xfb, 0x93, 0x28, 0xfd, 0x19, 0xa9, 0x20, 0x25, 0x94, 0xd0, 0xb3, 0xab, 0x30,
+ 0x13, 0x3e, 0x1a, 0x89, 0xc3, 0x6f, 0x8a, 0x0e, 0xbf, 0xa7, 0xc4, 0xe1, 0x57, 0x11, 0x87, 0xef,
+ 0x12, 0x3c, 0x10, 0x3a, 0xf6, 0x44, 0x91, 0xc4, 0x44, 0x92, 0x9b, 0x30, 0x1e, 0x18, 0x72, 0x44,
+ 0x70, 0x22, 0x04, 0x9c, 0xe8, 0x05, 0xfb, 0xa1, 0x15, 0x32, 0x7b, 0x04, 0xc0, 0xaa, 0x08, 0xfe,
+ 0x38, 0x4c, 0x04, 0xc7, 0x1b, 0x11, 0x3d, 0x1e, 0x82, 0x1e, 0x0f, 0x41, 0x87, 0xdf, 0x3b, 0x1e,
+ 0x82, 0x8e, 0x4b, 0xe8, 0x9d, 0xbe, 0xf7, 0x9e, 0x0a, 0x41, 0x4f, 0x85, 0xa0, 0xc3, 0xef, 0xad,
+ 0x87, 0xa0, 0x75, 0x11, 0xfd, 0x34, 0x4c, 0x4a, 0x43, 0x8c, 0x08, 0x1f, 0x0b, 0x81, 0x8f, 0x89,
+ 0xf0, 0x67, 0x40, 0x93, 0x07, 0x17, 0x11, 0x3f, 0x19, 0x82, 0x9f, 0x0c, 0xbb, 0x7d, 0xb8, 0xf6,
+ 0xa3, 0x21, 0xf0, 0xd1, 0xd0, 0xdb, 0x87, 0xe3, 0xb5, 0x10, 0xbc, 0x26, 0xe2, 0xf3, 0x90, 0x11,
+ 0x47, 0x13, 0x11, 0x9b, 0x0c, 0xc1, 0x26, 0x65, 0xbb, 0x07, 0x06, 0x93, 0xa8, 0x48, 0x4f, 0xf5,
+ 0x49, 0x97, 0xc0, 0x10, 0x12, 0x45, 0x92, 0x11, 0x49, 0x3e, 0x05, 0xa7, 0xc2, 0x86, 0x8c, 0x10,
+ 0x8e, 0x05, 0x91, 0x63, 0x02, 0xd7, 0x88, 0x7e, 0xb1, 0x67, 0xb6, 0xa5, 0xc2, 0x69, 0xf6, 0x45,
+ 0x98, 0x0e, 0x19, 0x38, 0x42, 0x68, 0x97, 0x82, 0xd5, 0x58, 0x56, 0xa0, 0x25, 0x83, 0x40, 0xc3,
+ 0x3a, 0xdc, 0xb6, 0x1b, 0x96, 0x2b, 0x56, 0x65, 0xdf, 0x9c, 0x86, 0x09, 0x36, 0x3c, 0x6d, 0x75,
+ 0xea, 0xa8, 0x83, 0xea, 0xfa, 0x9f, 0xe9, 0x5f, 0x3b, 0x5d, 0xec, 0x1d, 0xd4, 0x18, 0xea, 0x04,
+ 0x25, 0xd4, 0x8b, 0x7d, 0x4b, 0xa8, 0x0b, 0xd1, 0xf4, 0x51, 0x95, 0x54, 0xa9, 0xa7, 0x92, 0x7a,
+ 0xbc, 0x3f, 0x69, 0xbf, 0x82, 0xaa, 0xd4, 0x53, 0x50, 0x0d, 0x26, 0x09, 0xad, 0xab, 0xd6, 0x7a,
+ 0xeb, 0xaa, 0x85, 0xfe, 0x2c, 0xfd, 0xcb, 0xab, 0xb5, 0xde, 0xf2, 0x2a, 0x82, 0x27, 0xbc, 0xca,
+ 0x5a, 0xeb, 0xad, 0xb2, 0x06, 0xf0, 0xf4, 0x2f, 0xb6, 0xd6, 0x7a, 0x8b, 0xad, 0x08, 0x9e, 0xf0,
+ 0x9a, 0x6b, 0x3d, 0xa4, 0xe6, 0x7a, 0xa2, 0x3f, 0xd1, 0xa0, 0xd2, 0x6b, 0x23, 0xac, 0xf4, 0x5a,
+ 0x1c, 0xa0, 0xd4, 0xc0, 0x0a, 0x6c, 0x3d, 0xa4, 0x02, 0x8b, 0x52, 0xac, 0x4f, 0x21, 0xb6, 0x11,
+ 0x56, 0x88, 0x45, 0x2a, 0xd6, 0xaf, 0x1e, 0xfb, 0x05, 0xb9, 0x1e, 0x3b, 0xdf, 0x9f, 0x29, 0xbc,
+ 0x2c, 0x5b, 0xeb, 0x2d, 0xcb, 0x16, 0xa2, 0x72, 0x2e, 0xac, 0x3a, 0x7b, 0xb1, 0x6f, 0x75, 0x36,
+ 0x44, 0x0a, 0x47, 0x15, 0x69, 0x2f, 0xf4, 0x2b, 0xd2, 0x96, 0xa2, 0xb9, 0x07, 0xd7, 0x6a, 0x7b,
+ 0x7d, 0x6a, 0xb5, 0xa7, 0xa2, 0x89, 0x7f, 0x5e, 0xb2, 0xfd, 0xbc, 0x64, 0xfb, 0x79, 0xc9, 0xf6,
+ 0xf3, 0x92, 0xed, 0xa7, 0x5f, 0xb2, 0xe5, 0xe3, 0x9f, 0xfb, 0xca, 0xbc, 0x92, 0xfb, 0x8f, 0xaa,
+ 0xf7, 0xc7, 0xd6, 0x9e, 0x6f, 0xb8, 0x47, 0x78, 0x78, 0xdb, 0x84, 0x0c, 0xf9, 0xf1, 0xdf, 0x96,
+ 0xd9, 0x6e, 0x37, 0xac, 0x43, 0x56, 0xb3, 0x2d, 0xf6, 0x2e, 0x25, 0x32, 0x00, 0xf9, 0x43, 0x33,
+ 0x9b, 0x54, 0x98, 0x4d, 0x37, 0x96, 0xdf, 0xa2, 0xdf, 0x86, 0x74, 0xcb, 0x39, 0xf4, 0xd8, 0x62,
+ 0x3d, 0x13, 0xa1, 0xc4, 0x46, 0x9f, 0xd4, 0x27, 0x83, 0x96, 0xd7, 0x80, 0x55, 0xdb, 0x3f, 0x76,
+ 0x7d, 0xd5, 0xd4, 0x28, 0xd5, 0xb0, 0x4f, 0x83, 0xaa, 0xed, 0xfb, 0x2d, 0x38, 0x6c, 0x65, 0xdd,
+ 0xa3, 0x46, 0xba, 0x40, 0xf0, 0x3c, 0x0f, 0x93, 0x92, 0xb6, 0x21, 0x39, 0x7f, 0x1f, 0xbe, 0xc1,
+ 0x8a, 0xc9, 0x9a, 0x47, 0xe5, 0x84, 0x18, 0x90, 0xb9, 0x47, 0x60, 0x3c, 0xc0, 0xad, 0x67, 0x40,
+ 0x39, 0x60, 0x5f, 0xa5, 0x54, 0x0e, 0x72, 0x5f, 0x56, 0x20, 0xcd, 0x8e, 0x11, 0x6c, 0x9b, 0x8d,
+ 0x8e, 0xfe, 0x1c, 0xc4, 0x9b, 0xfc, 0xeb, 0x4c, 0xf7, 0xfb, 0xd5, 0x59, 0xc2, 0xa0, 0xaf, 0x41,
+ 0xa2, 0xe3, 0x7d, 0xdd, 0xe9, 0xbe, 0xbe, 0x0f, 0x4b, 0xe0, 0xb9, 0xbb, 0x0a, 0x4c, 0xb1, 0x53,
+ 0xae, 0x0e, 0x3b, 0xfc, 0x6c, 0xb6, 0x67, 0xbf, 0xa1, 0x40, 0xca, 0xbb, 0xd2, 0xf7, 0x61, 0xc2,
+ 0xbb, 0xa0, 0x07, 0xec, 0x69, 0xa4, 0xe6, 0x05, 0x0b, 0xf7, 0x70, 0x2c, 0x85, 0x7c, 0xa2, 0x1b,
+ 0x51, 0x74, 0x4e, 0x0e, 0x36, 0xce, 0x16, 0x60, 0x3a, 0x44, 0xec, 0x24, 0x13, 0x72, 0xee, 0x2c,
+ 0xa4, 0x2a, 0xb6, 0x4b, 0x7f, 0x35, 0x47, 0x3f, 0x25, 0xec, 0x2a, 0x14, 0x63, 0xda, 0x08, 0x01,
+ 0x2f, 0x9e, 0x85, 0x31, 0x96, 0xfd, 0xfa, 0x28, 0xc4, 0x36, 0x0b, 0xda, 0x08, 0xf9, 0xbf, 0xa8,
+ 0x29, 0xe4, 0xff, 0x92, 0x16, 0x2b, 0x6e, 0xdc, 0xc7, 0x2e, 0xd3, 0xc8, 0xdb, 0xf7, 0xe6, 0x46,
+ 0xc2, 0x76, 0x99, 0xf6, 0x47, 0xa9, 0x79, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc2, 0x64,
+ 0x02, 0x1b, 0xc2, 0x83, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -5191,112 +5301,3 @@ func valueToStringTheproto3(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
-
-func init() {
- proto.RegisterFile("combos/neither/theproto3.proto", fileDescriptor_theproto3_637a0f64ba0c048e)
-}
-
-var fileDescriptor_theproto3_637a0f64ba0c048e = []byte{
- // 1609 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x99, 0xcf, 0x6f, 0xdb, 0x46,
- 0x16, 0xc7, 0x35, 0xfa, 0xad, 0xa7, 0x1f, 0xa6, 0x27, 0xd9, 0x85, 0xd6, 0xc0, 0xd2, 0xb2, 0x02,
- 0x24, 0x4a, 0xb0, 0x91, 0xb3, 0x4e, 0xb2, 0x9b, 0xba, 0x69, 0x53, 0x4b, 0xb1, 0x10, 0x37, 0xb6,
- 0xe2, 0x4a, 0x76, 0xdc, 0x22, 0x40, 0x0d, 0xca, 0xa6, 0x25, 0x22, 0x12, 0x69, 0x88, 0xa3, 0xa0,
- 0xbe, 0xe5, 0xcf, 0xe8, 0xad, 0xe8, 0xad, 0xc7, 0x22, 0x87, 0xa2, 0xc7, 0xf6, 0xe6, 0x63, 0x80,
- 0x5e, 0x8a, 0x1e, 0x82, 0x58, 0xbd, 0xe4, 0x98, 0x63, 0x8e, 0xc5, 0xcc, 0x50, 0xd2, 0x88, 0x1c,
- 0x8a, 0x4d, 0x2f, 0xbd, 0xf8, 0x24, 0xce, 0xf3, 0xfb, 0x7e, 0xe6, 0x71, 0x38, 0xf3, 0xf8, 0x05,
- 0x0d, 0xea, 0x81, 0xd5, 0x6b, 0x59, 0xf6, 0xb2, 0xa9, 0x1b, 0xa4, 0xa3, 0xf7, 0x97, 0x49, 0x47,
- 0x3f, 0xee, 0x5b, 0xc4, 0xba, 0x59, 0x66, 0x3f, 0x38, 0x35, 0x0e, 0x2c, 0x5c, 0x6f, 0x1b, 0xa4,
- 0x33, 0x68, 0x95, 0x0f, 0xac, 0xde, 0x72, 0xdb, 0x6a, 0x5b, 0xcb, 0x2c, 0xde, 0x1a, 0x1c, 0xb1,
- 0x11, 0x1b, 0xb0, 0x2b, 0xae, 0x5c, 0xf8, 0xbf, 0x6f, 0x3a, 0xd1, 0x6d, 0xb2, 0xec, 0xcc, 0xdb,
- 0xb2, 0x48, 0x87, 0x4e, 0x4a, 0x63, 0x5c, 0x58, 0xfc, 0x39, 0x06, 0x89, 0x2d, 0xdd, 0xb6, 0xb5,
- 0xb6, 0x8e, 0x31, 0x44, 0x4d, 0xad, 0xa7, 0xe7, 0x51, 0x01, 0x95, 0x52, 0x0d, 0x76, 0x8d, 0x6f,
- 0x43, 0xb2, 0x63, 0x74, 0xb5, 0xbe, 0x41, 0x4e, 0xf2, 0xe1, 0x02, 0x2a, 0xe5, 0x56, 0xfe, 0x55,
- 0x9e, 0x94, 0xed, 0x28, 0xcb, 0x0f, 0x06, 0x3d, 0x6b, 0xd0, 0x6f, 0x8c, 0x53, 0x71, 0x01, 0x32,
- 0x1d, 0xdd, 0x68, 0x77, 0xc8, 0xbe, 0x61, 0xee, 0x1f, 0xf4, 0xf2, 0x91, 0x02, 0x2a, 0x65, 0x1b,
- 0xc0, 0x63, 0x1b, 0x66, 0xb5, 0x47, 0x27, 0x3b, 0xd4, 0x88, 0x96, 0x8f, 0x16, 0x50, 0x29, 0xd3,
- 0x60, 0xd7, 0x78, 0x09, 0x32, 0x7d, 0xdd, 0x1e, 0x74, 0xc9, 0xfe, 0x81, 0x35, 0x30, 0x49, 0x3e,
- 0x51, 0x40, 0xa5, 0x48, 0x23, 0xcd, 0x63, 0x55, 0x1a, 0xc2, 0x97, 0x20, 0x4b, 0xfa, 0x03, 0x7d,
- 0xdf, 0x3e, 0xb0, 0x88, 0xdd, 0xd3, 0xcc, 0x7c, 0xb2, 0x80, 0x4a, 0xc9, 0x46, 0x86, 0x06, 0x9b,
- 0x4e, 0x0c, 0x5f, 0x84, 0x98, 0x7d, 0x60, 0xf5, 0xf5, 0x7c, 0xaa, 0x80, 0x4a, 0xe1, 0x06, 0x1f,
- 0x60, 0x05, 0x22, 0x4f, 0xf5, 0x93, 0x7c, 0xac, 0x10, 0x29, 0x45, 0x1b, 0xf4, 0x12, 0x5f, 0x85,
- 0xb8, 0xa9, 0xdb, 0x44, 0x3f, 0xcc, 0xc7, 0x0b, 0xa8, 0x94, 0x5e, 0x99, 0x17, 0x6e, 0xad, 0xce,
- 0xfe, 0xd0, 0x70, 0x12, 0xf0, 0x07, 0x90, 0x20, 0x7a, 0xbf, 0xaf, 0x19, 0x66, 0x1e, 0x0a, 0x91,
- 0x52, 0x7a, 0x65, 0x51, 0xb2, 0x0c, 0x3b, 0x3c, 0x63, 0xdd, 0x24, 0xfd, 0x93, 0xc6, 0x28, 0x1f,
- 0xdf, 0x86, 0x0c, 0xcb, 0x5b, 0xd9, 0x3f, 0x32, 0xf4, 0xee, 0x61, 0x3e, 0xcd, 0xe6, 0xc2, 0x65,
- 0xf6, 0x14, 0xea, 0x86, 0xf9, 0xe8, 0x98, 0xd4, 0x35, 0x62, 0x3c, 0xd3, 0x1b, 0x69, 0x9e, 0x57,
- 0xa3, 0x69, 0xb8, 0x36, 0x96, 0x3d, 0xd3, 0xba, 0x03, 0x3d, 0x9f, 0x65, 0xd3, 0x5e, 0x92, 0x4c,
- 0xbb, 0xcd, 0xd2, 0x1e, 0xd3, 0x2c, 0x3e, 0xb5, 0xc3, 0x61, 0x91, 0x85, 0x2d, 0xc8, 0x88, 0x75,
- 0x8d, 0x96, 0x01, 0xb1, 0xb5, 0x65, 0xcb, 0x70, 0x05, 0x62, 0x7c, 0x8a, 0xb0, 0xdf, 0x2a, 0xf0,
- 0xbf, 0xaf, 0x86, 0xef, 0xa0, 0x85, 0x6d, 0x50, 0xdc, 0xf3, 0x49, 0x90, 0x97, 0xa7, 0x91, 0x8a,
- 0x78, 0xb3, 0xeb, 0xe6, 0xa0, 0x27, 0x10, 0x8b, 0xf7, 0x20, 0xce, 0xf7, 0x0f, 0x4e, 0x43, 0x62,
- 0xb7, 0xfe, 0xb0, 0xfe, 0x68, 0xaf, 0xae, 0x84, 0x70, 0x12, 0xa2, 0xdb, 0xbb, 0xf5, 0xa6, 0x82,
- 0x70, 0x16, 0x52, 0xcd, 0xcd, 0xb5, 0xed, 0xe6, 0xce, 0x46, 0xf5, 0xa1, 0x12, 0xc6, 0x73, 0x90,
- 0xae, 0x6c, 0x6c, 0x6e, 0xee, 0x57, 0xd6, 0x36, 0x36, 0xd7, 0xbf, 0x50, 0x22, 0x45, 0x15, 0xe2,
- 0xbc, 0x4e, 0xfa, 0xe0, 0x5b, 0x03, 0xd3, 0x3c, 0x71, 0xb6, 0x30, 0x1f, 0x14, 0x5f, 0x60, 0x48,
- 0xac, 0x75, 0xbb, 0x5b, 0xda, 0xb1, 0x8d, 0xf7, 0x60, 0xbe, 0x49, 0xfa, 0x86, 0xd9, 0xde, 0xb1,
- 0xee, 0x5b, 0x83, 0x56, 0x57, 0xdf, 0xd2, 0x8e, 0xf3, 0x88, 0x2d, 0xed, 0x55, 0xe1, 0xbe, 0x9d,
- 0xf4, 0xb2, 0x27, 0x97, 0x2f, 0xb0, 0x97, 0x81, 0x77, 0x40, 0x19, 0x05, 0x6b, 0x5d, 0x4b, 0x23,
- 0x94, 0x1b, 0x66, 0xdc, 0xd2, 0x0c, 0xee, 0x28, 0x95, 0x63, 0x3d, 0x04, 0x7c, 0x17, 0x92, 0x1b,
- 0x26, 0xb9, 0xb9, 0x42, 0x69, 0x11, 0x46, 0x2b, 0x48, 0x68, 0xa3, 0x14, 0x4e, 0x19, 0x2b, 0x1c,
- 0xf5, 0xff, 0x6e, 0x51, 0x75, 0x74, 0x96, 0x9a, 0xa5, 0x4c, 0xd4, 0x6c, 0x88, 0xef, 0x41, 0x6a,
- 0xd7, 0x18, 0x4d, 0x1e, 0x63, 0xf2, 0x25, 0x89, 0x7c, 0x9c, 0xc3, 0xf5, 0x13, 0xcd, 0x08, 0xc0,
- 0xe7, 0x8f, 0xcf, 0x04, 0x08, 0x05, 0x4c, 0x34, 0x14, 0xd0, 0x1c, 0x57, 0x90, 0xf0, 0x05, 0x34,
- 0x5d, 0x15, 0x34, 0xc5, 0x0a, 0x9a, 0xe3, 0x0a, 0x92, 0x33, 0x01, 0x62, 0x05, 0xe3, 0x31, 0xae,
- 0x00, 0xd4, 0x8c, 0xaf, 0xf4, 0x43, 0x5e, 0x42, 0x8a, 0x11, 0x8a, 0x12, 0xc2, 0x24, 0x89, 0x23,
- 0x04, 0x15, 0x5e, 0x87, 0x74, 0xf3, 0x68, 0x02, 0x01, 0xcf, 0x39, 0x1e, 0x97, 0x71, 0xe4, 0xa2,
- 0x88, 0xba, 0x71, 0x29, 0xfc, 0x66, 0xd2, 0xb3, 0x4b, 0x11, 0xee, 0x46, 0x50, 0x4d, 0x4a, 0xe1,
- 0x90, 0x4c, 0x40, 0x29, 0x02, 0x45, 0xd4, 0xd1, 0x66, 0x58, 0xb1, 0x2c, 0x9a, 0xe9, 0x74, 0xa5,
- 0x45, 0x09, 0xc2, 0xc9, 0x70, 0x9a, 0xa1, 0x33, 0x62, 0x4f, 0x84, 0x6d, 0x72, 0x2a, 0xce, 0xf9,
- 0x3f, 0x91, 0x51, 0xce, 0xe8, 0x89, 0x8c, 0xc6, 0xe2, 0x39, 0xab, 0x9c, 0x10, 0xdd, 0xa6, 0x9c,
- 0xb9, 0xc0, 0x73, 0x36, 0x4a, 0x75, 0x9d, 0xb3, 0x51, 0x18, 0x7f, 0x06, 0x73, 0xa3, 0x18, 0x6d,
- 0x4f, 0x14, 0xaa, 0x30, 0xe8, 0x95, 0x19, 0x50, 0x27, 0x93, 0x33, 0xdd, 0x7a, 0x5c, 0x87, 0xdc,
- 0x28, 0xb4, 0x65, 0xb3, 0xdb, 0x9d, 0x67, 0xc4, 0xcb, 0x33, 0x88, 0x3c, 0x91, 0x03, 0x5d, 0xea,
- 0x85, 0xfb, 0xf0, 0x4f, 0x79, 0x37, 0x12, 0xdb, 0x6f, 0x8a, 0xb7, 0xdf, 0x8b, 0x62, 0xfb, 0x45,
- 0x62, 0xfb, 0xae, 0xc2, 0x3f, 0xa4, 0xbd, 0x27, 0x08, 0x12, 0x16, 0x21, 0x1f, 0x42, 0x76, 0xaa,
- 0xe5, 0x88, 0xe2, 0x98, 0x44, 0x1c, 0xf3, 0x8a, 0x27, 0x5b, 0x4b, 0xf2, 0xf6, 0x98, 0x12, 0x47,
- 0x44, 0xf1, 0x5d, 0xc8, 0x4d, 0xf7, 0x1b, 0x51, 0x9d, 0x95, 0xa8, 0xb3, 0x12, 0xb5, 0x7c, 0xee,
- 0xa8, 0x44, 0x1d, 0x75, 0xa9, 0x9b, 0xbe, 0x73, 0xcf, 0x4b, 0xd4, 0xf3, 0x12, 0xb5, 0x7c, 0x6e,
- 0x2c, 0x51, 0x63, 0x51, 0xfd, 0x11, 0xcc, 0xb9, 0x5a, 0x8c, 0x28, 0x4f, 0x48, 0xe4, 0x09, 0x51,
- 0xfe, 0x31, 0x28, 0xee, 0xe6, 0x22, 0xea, 0xe7, 0x24, 0xfa, 0x39, 0xd9, 0xf4, 0xf2, 0xea, 0xe3,
- 0x12, 0x79, 0x5c, 0x3a, 0xbd, 0x5c, 0xaf, 0x48, 0xf4, 0x8a, 0xa8, 0x5f, 0x85, 0x8c, 0xd8, 0x4d,
- 0x44, 0x6d, 0x52, 0xa2, 0x4d, 0xba, 0xd7, 0x7d, 0xaa, 0x99, 0x04, 0xed, 0xf4, 0x94, 0xcf, 0x71,
- 0x99, 0x6a, 0x21, 0x41, 0x90, 0x8c, 0x08, 0x79, 0x0c, 0x17, 0x65, 0x2d, 0x43, 0xc2, 0x28, 0x89,
- 0x8c, 0x1c, 0xf5, 0x88, 0x13, 0xb3, 0x47, 0x55, 0x53, 0xc6, 0x69, 0xe1, 0x09, 0x5c, 0x90, 0x34,
- 0x0e, 0x09, 0xb6, 0x3c, 0xed, 0xc6, 0xf2, 0x02, 0x96, 0x35, 0x01, 0xc3, 0x6c, 0x6f, 0x5b, 0x86,
- 0x49, 0x44, 0x57, 0xf6, 0xc3, 0x05, 0xc8, 0x39, 0xed, 0xe9, 0x51, 0xff, 0x50, 0xef, 0xeb, 0x87,
- 0xf8, 0x4b, 0x7f, 0xef, 0x74, 0xc3, 0xdb, 0xd4, 0x1c, 0xd5, 0x7b, 0x58, 0xa8, 0x27, 0xbe, 0x16,
- 0x6a, 0x39, 0x18, 0x1f, 0xe4, 0xa4, 0xaa, 0x1e, 0x27, 0x75, 0xc5, 0x1f, 0xea, 0x67, 0xa8, 0xaa,
- 0x1e, 0x43, 0x35, 0x1b, 0x22, 0xf5, 0x55, 0x35, 0xaf, 0xaf, 0x2a, 0xf9, 0x53, 0xfc, 0xed, 0x55,
- 0xcd, 0x6b, 0xaf, 0x02, 0x38, 0x72, 0x97, 0x55, 0xf3, 0xba, 0xac, 0x19, 0x1c, 0x7f, 0xb3, 0x55,
- 0xf3, 0x9a, 0xad, 0x00, 0x8e, 0xdc, 0x73, 0x6d, 0x48, 0x3c, 0xd7, 0x55, 0x7f, 0xd0, 0x2c, 0xeb,
- 0xb5, 0x29, 0xb3, 0x5e, 0xd7, 0x66, 0x14, 0x35, 0xd3, 0x81, 0x6d, 0x48, 0x1c, 0x58, 0x50, 0x61,
- 0x3e, 0x46, 0x6c, 0x53, 0x66, 0xc4, 0x02, 0x0b, 0xf3, 0xf3, 0x63, 0x9f, 0xb8, 0xfd, 0xd8, 0x65,
- 0x7f, 0x92, 0xdc, 0x96, 0xd5, 0xbc, 0xb6, 0xac, 0x14, 0x74, 0xe6, 0x64, 0xee, 0xec, 0x89, 0xaf,
- 0x3b, 0xfb, 0x13, 0x47, 0x38, 0xc8, 0xa4, 0x7d, 0xee, 0x67, 0xd2, 0xca, 0xc1, 0xec, 0xd9, 0x5e,
- 0x6d, 0xd7, 0xc7, 0xab, 0x5d, 0x0f, 0x06, 0x9f, 0x5b, 0xb6, 0x73, 0xcb, 0x76, 0x6e, 0xd9, 0xce,
- 0x2d, 0xdb, 0xdf, 0x6f, 0xd9, 0x56, 0xa3, 0x5f, 0x7f, 0xbb, 0x88, 0x8a, 0xbf, 0x44, 0x20, 0xe7,
- 0x7c, 0x19, 0xdc, 0x33, 0x48, 0x87, 0xb6, 0xb7, 0x2d, 0xc8, 0x98, 0x5a, 0x4f, 0xdf, 0xef, 0x69,
- 0xc7, 0xc7, 0x86, 0xd9, 0x76, 0x3c, 0xdb, 0x35, 0xef, 0xa7, 0x44, 0x47, 0x50, 0xae, 0x6b, 0x3d,
- 0xda, 0xab, 0x68, 0xb2, 0xf3, 0xba, 0x31, 0x27, 0x11, 0xfc, 0x29, 0xa4, 0x7b, 0x76, 0x7b, 0x4c,
- 0x0b, 0x7b, 0x5e, 0x84, 0x2e, 0x1a, 0xbf, 0xd3, 0x09, 0x0c, 0x7a, 0xe3, 0x00, 0x2d, 0xad, 0x75,
- 0x42, 0x26, 0xa5, 0x45, 0x82, 0x4a, 0xa3, 0xcf, 0x74, 0xba, 0xb4, 0xd6, 0x24, 0x42, 0xb7, 0xad,
- 0xbb, 0xf6, 0xa0, 0x4e, 0x37, 0xb5, 0x79, 0xf6, 0x60, 0xce, 0x55, 0xad, 0xe4, 0xcc, 0xff, 0x85,
- 0x67, 0x43, 0x0b, 0x73, 0x57, 0x1e, 0x74, 0x26, 0xc4, 0x0d, 0x59, 0xfc, 0x37, 0x64, 0xa7, 0xd8,
- 0x38, 0x03, 0xe8, 0x88, 0x49, 0x51, 0x03, 0x1d, 0x15, 0xbf, 0x41, 0x90, 0xa6, 0x7d, 0xf2, 0xbf,
- 0x2b, 0x77, 0xb6, 0x35, 0xa3, 0x8f, 0x1f, 0x40, 0xb4, 0xab, 0x1f, 0x11, 0x96, 0x90, 0xa9, 0xdc,
- 0x3a, 0x7d, 0xb5, 0x18, 0xfa, 0xed, 0xd5, 0xe2, 0x7f, 0x02, 0xfe, 0x4b, 0x30, 0xb0, 0x89, 0xd5,
- 0x2b, 0x3b, 0x9c, 0x06, 0x23, 0xe0, 0x1a, 0xc4, 0xfa, 0x46, 0xbb, 0x43, 0x78, 0x49, 0x95, 0x1b,
- 0xef, 0x8d, 0xe1, 0xf2, 0xe2, 0x29, 0x82, 0xf9, 0xaa, 0x65, 0x12, 0xcd, 0x30, 0x6d, 0xfe, 0xb5,
- 0x96, 0xbe, 0x21, 0x5f, 0x20, 0x48, 0x8d, 0x47, 0xb8, 0x05, 0xb9, 0xf1, 0x80, 0x7d, 0x04, 0x77,
- 0x76, 0xea, 0xaa, 0xb0, 0xc2, 0x1e, 0x46, 0x59, 0x72, 0xc5, 0xc4, 0xce, 0x3b, 0x79, 0x3a, 0xb8,
- 0xb0, 0x06, 0x17, 0x24, 0x69, 0xef, 0xf3, 0x42, 0x2e, 0x2e, 0x41, 0xaa, 0x6e, 0x91, 0x6d, 0xed,
- 0xe0, 0x29, 0xfb, 0xe4, 0x3c, 0xf9, 0xaf, 0x42, 0x25, 0xac, 0x84, 0x98, 0xf8, 0xda, 0x12, 0x24,
- 0x9c, 0xd3, 0x8f, 0xe3, 0x10, 0xde, 0x5a, 0x53, 0x42, 0xec, 0xb7, 0xa2, 0x20, 0xf6, 0x5b, 0x55,
- 0xc2, 0x95, 0xcd, 0xd3, 0x33, 0x35, 0xf4, 0xf2, 0x4c, 0x0d, 0xfd, 0x7a, 0xa6, 0x86, 0x5e, 0x9f,
- 0xa9, 0xe8, 0xcd, 0x99, 0x8a, 0xde, 0x9e, 0xa9, 0xe8, 0xdd, 0x99, 0x8a, 0x9e, 0x0f, 0x55, 0xf4,
- 0xdd, 0x50, 0x45, 0xdf, 0x0f, 0x55, 0xf4, 0xe3, 0x50, 0x45, 0x3f, 0x0d, 0x55, 0x74, 0x3a, 0x54,
- 0x43, 0x2f, 0x87, 0x6a, 0xe8, 0xf5, 0x50, 0x45, 0x6f, 0x86, 0x6a, 0xe8, 0xed, 0x50, 0x45, 0xef,
- 0x86, 0x6a, 0xe8, 0xf9, 0xef, 0x6a, 0xa8, 0x15, 0xe7, 0xcb, 0xf3, 0x47, 0x00, 0x00, 0x00, 0xff,
- 0xff, 0xe2, 0x1d, 0x88, 0x27, 0x63, 0x1a, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.pb.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.pb.go
index 47b3a2cdcb..f7ffad1149 100644
--- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.pb.go
@@ -3,28 +3,25 @@
package theproto3
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import both "github.com/gogo/protobuf/test/combos/both"
-
-import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strconv "strconv"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-
-import io "io"
-import encoding_binary "encoding/binary"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ both "github.com/gogo/protobuf/test/combos/both"
+ github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strconv "strconv"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -50,6 +47,7 @@ var MapEnum_name = map[int32]string{
1: "MB",
2: "MC",
}
+
var MapEnum_value = map[string]int32{
"MA": 0,
"MB": 1,
@@ -57,7 +55,7 @@ var MapEnum_value = map[string]int32{
}
func (MapEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_42f7388870cddc3f, []int{0}
+ return fileDescriptor_e24bba79c1e35a1f, []int{0}
}
type Message_Humour int32
@@ -75,6 +73,7 @@ var Message_Humour_name = map[int32]string{
2: "SLAPSTICK",
3: "BILL_BAILEY",
}
+
var Message_Humour_value = map[string]int32{
"UNKNOWN": 0,
"PUNS": 1,
@@ -83,7 +82,7 @@ var Message_Humour_value = map[string]int32{
}
func (Message_Humour) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_42f7388870cddc3f, []int{0, 0}
+ return fileDescriptor_e24bba79c1e35a1f, []int{0, 0}
}
type Message struct {
@@ -107,7 +106,7 @@ type Message struct {
func (m *Message) Reset() { *m = Message{} }
func (*Message) ProtoMessage() {}
func (*Message) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_42f7388870cddc3f, []int{0}
+ return fileDescriptor_e24bba79c1e35a1f, []int{0}
}
func (m *Message) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -115,8 +114,8 @@ func (m *Message) XXX_Unmarshal(b []byte) error {
func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Message.Marshal(b, m, deterministic)
}
-func (dst *Message) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Message.Merge(dst, src)
+func (m *Message) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Message.Merge(m, src)
}
func (m *Message) XXX_Size() int {
return xxx_messageInfo_Message.Size(m)
@@ -137,7 +136,7 @@ type Nested struct {
func (m *Nested) Reset() { *m = Nested{} }
func (*Nested) ProtoMessage() {}
func (*Nested) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_42f7388870cddc3f, []int{1}
+ return fileDescriptor_e24bba79c1e35a1f, []int{1}
}
func (m *Nested) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -145,8 +144,8 @@ func (m *Nested) XXX_Unmarshal(b []byte) error {
func (m *Nested) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Nested.Marshal(b, m, deterministic)
}
-func (dst *Nested) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Nested.Merge(dst, src)
+func (m *Nested) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Nested.Merge(m, src)
}
func (m *Nested) XXX_Size() int {
return xxx_messageInfo_Nested.Size(m)
@@ -183,7 +182,7 @@ type AllMaps struct {
func (m *AllMaps) Reset() { *m = AllMaps{} }
func (*AllMaps) ProtoMessage() {}
func (*AllMaps) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_42f7388870cddc3f, []int{2}
+ return fileDescriptor_e24bba79c1e35a1f, []int{2}
}
func (m *AllMaps) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -191,8 +190,8 @@ func (m *AllMaps) XXX_Unmarshal(b []byte) error {
func (m *AllMaps) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AllMaps.Marshal(b, m, deterministic)
}
-func (dst *AllMaps) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllMaps.Merge(dst, src)
+func (m *AllMaps) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllMaps.Merge(m, src)
}
func (m *AllMaps) XXX_Size() int {
return xxx_messageInfo_AllMaps.Size(m)
@@ -229,7 +228,7 @@ type AllMapsOrdered struct {
func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} }
func (*AllMapsOrdered) ProtoMessage() {}
func (*AllMapsOrdered) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_42f7388870cddc3f, []int{3}
+ return fileDescriptor_e24bba79c1e35a1f, []int{3}
}
func (m *AllMapsOrdered) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -237,8 +236,8 @@ func (m *AllMapsOrdered) XXX_Unmarshal(b []byte) error {
func (m *AllMapsOrdered) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AllMapsOrdered.Marshal(b, m, deterministic)
}
-func (dst *AllMapsOrdered) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AllMapsOrdered.Merge(dst, src)
+func (m *AllMapsOrdered) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AllMapsOrdered.Merge(m, src)
}
func (m *AllMapsOrdered) XXX_Size() int {
return xxx_messageInfo_AllMapsOrdered.Size(m)
@@ -261,7 +260,7 @@ type MessageWithMap struct {
func (m *MessageWithMap) Reset() { *m = MessageWithMap{} }
func (*MessageWithMap) ProtoMessage() {}
func (*MessageWithMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_42f7388870cddc3f, []int{4}
+ return fileDescriptor_e24bba79c1e35a1f, []int{4}
}
func (m *MessageWithMap) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -269,8 +268,8 @@ func (m *MessageWithMap) XXX_Unmarshal(b []byte) error {
func (m *MessageWithMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MessageWithMap.Marshal(b, m, deterministic)
}
-func (dst *MessageWithMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MessageWithMap.Merge(dst, src)
+func (m *MessageWithMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MessageWithMap.Merge(m, src)
}
func (m *MessageWithMap) XXX_Size() int {
return xxx_messageInfo_MessageWithMap.Size(m)
@@ -291,7 +290,7 @@ type FloatingPoint struct {
func (m *FloatingPoint) Reset() { *m = FloatingPoint{} }
func (*FloatingPoint) ProtoMessage() {}
func (*FloatingPoint) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_42f7388870cddc3f, []int{5}
+ return fileDescriptor_e24bba79c1e35a1f, []int{5}
}
func (m *FloatingPoint) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -299,8 +298,8 @@ func (m *FloatingPoint) XXX_Unmarshal(b []byte) error {
func (m *FloatingPoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FloatingPoint.Marshal(b, m, deterministic)
}
-func (dst *FloatingPoint) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FloatingPoint.Merge(dst, src)
+func (m *FloatingPoint) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FloatingPoint.Merge(m, src)
}
func (m *FloatingPoint) XXX_Size() int {
return xxx_messageInfo_FloatingPoint.Size(m)
@@ -322,7 +321,7 @@ type Uint128Pair struct {
func (m *Uint128Pair) Reset() { *m = Uint128Pair{} }
func (*Uint128Pair) ProtoMessage() {}
func (*Uint128Pair) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_42f7388870cddc3f, []int{6}
+ return fileDescriptor_e24bba79c1e35a1f, []int{6}
}
func (m *Uint128Pair) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -330,8 +329,8 @@ func (m *Uint128Pair) XXX_Unmarshal(b []byte) error {
func (m *Uint128Pair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Uint128Pair.Marshal(b, m, deterministic)
}
-func (dst *Uint128Pair) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Uint128Pair.Merge(dst, src)
+func (m *Uint128Pair) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Uint128Pair.Merge(m, src)
}
func (m *Uint128Pair) XXX_Size() int {
return xxx_messageInfo_Uint128Pair.Size(m)
@@ -351,7 +350,7 @@ type ContainsNestedMap struct {
func (m *ContainsNestedMap) Reset() { *m = ContainsNestedMap{} }
func (*ContainsNestedMap) ProtoMessage() {}
func (*ContainsNestedMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_42f7388870cddc3f, []int{7}
+ return fileDescriptor_e24bba79c1e35a1f, []int{7}
}
func (m *ContainsNestedMap) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -359,8 +358,8 @@ func (m *ContainsNestedMap) XXX_Unmarshal(b []byte) error {
func (m *ContainsNestedMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ContainsNestedMap.Marshal(b, m, deterministic)
}
-func (dst *ContainsNestedMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ContainsNestedMap.Merge(dst, src)
+func (m *ContainsNestedMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ContainsNestedMap.Merge(m, src)
}
func (m *ContainsNestedMap) XXX_Size() int {
return xxx_messageInfo_ContainsNestedMap.Size(m)
@@ -381,7 +380,7 @@ type ContainsNestedMap_NestedMap struct {
func (m *ContainsNestedMap_NestedMap) Reset() { *m = ContainsNestedMap_NestedMap{} }
func (*ContainsNestedMap_NestedMap) ProtoMessage() {}
func (*ContainsNestedMap_NestedMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_42f7388870cddc3f, []int{7, 0}
+ return fileDescriptor_e24bba79c1e35a1f, []int{7, 0}
}
func (m *ContainsNestedMap_NestedMap) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -389,8 +388,8 @@ func (m *ContainsNestedMap_NestedMap) XXX_Unmarshal(b []byte) error {
func (m *ContainsNestedMap_NestedMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ContainsNestedMap_NestedMap.Marshal(b, m, deterministic)
}
-func (dst *ContainsNestedMap_NestedMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ContainsNestedMap_NestedMap.Merge(dst, src)
+func (m *ContainsNestedMap_NestedMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ContainsNestedMap_NestedMap.Merge(m, src)
}
func (m *ContainsNestedMap_NestedMap) XXX_Size() int {
return xxx_messageInfo_ContainsNestedMap_NestedMap.Size(m)
@@ -411,7 +410,7 @@ type NotPacked struct {
func (m *NotPacked) Reset() { *m = NotPacked{} }
func (*NotPacked) ProtoMessage() {}
func (*NotPacked) Descriptor() ([]byte, []int) {
- return fileDescriptor_theproto3_42f7388870cddc3f, []int{8}
+ return fileDescriptor_e24bba79c1e35a1f, []int{8}
}
func (m *NotPacked) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -419,8 +418,8 @@ func (m *NotPacked) XXX_Unmarshal(b []byte) error {
func (m *NotPacked) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NotPacked.Marshal(b, m, deterministic)
}
-func (dst *NotPacked) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NotPacked.Merge(dst, src)
+func (m *NotPacked) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NotPacked.Merge(m, src)
}
func (m *NotPacked) XXX_Size() int {
return xxx_messageInfo_NotPacked.Size(m)
@@ -432,6 +431,8 @@ func (m *NotPacked) XXX_DiscardUnknown() {
var xxx_messageInfo_NotPacked proto.InternalMessageInfo
func init() {
+ proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value)
+ proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value)
proto.RegisterType((*Message)(nil), "theproto3.Message")
proto.RegisterMapType((map[int64]*both.NinOptEnum)(nil), "theproto3.Message.Proto2ValueEntry")
proto.RegisterMapType((map[int64]*Nested)(nil), "theproto3.Message.TerrainEntry")
@@ -482,9 +483,115 @@ func init() {
proto.RegisterType((*ContainsNestedMap_NestedMap)(nil), "theproto3.ContainsNestedMap.NestedMap")
proto.RegisterMapType((map[string]float64)(nil), "theproto3.ContainsNestedMap.NestedMap.NestedMapFieldEntry")
proto.RegisterType((*NotPacked)(nil), "theproto3.NotPacked")
- proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value)
- proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value)
}
+
+func init() { proto.RegisterFile("combos/unmarshaler/theproto3.proto", fileDescriptor_e24bba79c1e35a1f) }
+
+var fileDescriptor_e24bba79c1e35a1f = []byte{
+ // 1612 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x99, 0xcf, 0x6f, 0xdb, 0x46,
+ 0x16, 0xc7, 0x35, 0xfa, 0xad, 0xa7, 0x1f, 0xa6, 0x27, 0xd9, 0x85, 0xd6, 0xc0, 0xd2, 0xb2, 0x02,
+ 0x24, 0x4a, 0xb0, 0x91, 0xb3, 0x4e, 0xb2, 0x9b, 0xba, 0x69, 0x53, 0x4b, 0xb1, 0x10, 0x37, 0xb6,
+ 0xe2, 0x4a, 0x76, 0xdc, 0x22, 0x40, 0x0d, 0xca, 0xa6, 0x25, 0x22, 0x12, 0x69, 0x90, 0xa3, 0xa0,
+ 0xbe, 0xe5, 0xcf, 0xe8, 0xad, 0xe8, 0xad, 0xc7, 0x22, 0x87, 0xa2, 0xc7, 0xf6, 0xe6, 0x63, 0x80,
+ 0x5e, 0x8a, 0x1e, 0x82, 0x58, 0xbd, 0xe4, 0x98, 0x63, 0x8e, 0xc5, 0xcc, 0x50, 0xd2, 0x48, 0x1c,
+ 0x8a, 0x4d, 0x2f, 0xbd, 0xf8, 0x24, 0xce, 0xf3, 0xfb, 0x7e, 0xe6, 0x71, 0x38, 0xf3, 0xf8, 0x05,
+ 0x0d, 0xc5, 0x03, 0xab, 0xd7, 0xb2, 0x9c, 0xe5, 0xbe, 0xd9, 0xd3, 0x6c, 0xa7, 0xa3, 0x75, 0x75,
+ 0x7b, 0x99, 0x74, 0xf4, 0x63, 0xdb, 0x22, 0xd6, 0xcd, 0x32, 0xfb, 0xc1, 0xa9, 0x51, 0x60, 0xe1,
+ 0x7a, 0xdb, 0x20, 0x9d, 0x7e, 0xab, 0x7c, 0x60, 0xf5, 0x96, 0xdb, 0x56, 0xdb, 0x5a, 0x66, 0xf1,
+ 0x56, 0xff, 0x88, 0x8d, 0xd8, 0x80, 0x5d, 0x71, 0xe5, 0xc2, 0xff, 0x7d, 0xd3, 0x89, 0xee, 0x90,
+ 0x65, 0x77, 0xee, 0x96, 0x45, 0x3a, 0x74, 0x52, 0x1a, 0xe3, 0xc2, 0xe2, 0xcf, 0x31, 0x48, 0x6c,
+ 0xe9, 0x8e, 0xa3, 0xb5, 0x75, 0x8c, 0x21, 0x6a, 0x6a, 0x3d, 0x3d, 0x8f, 0x0a, 0xa8, 0x94, 0x6a,
+ 0xb0, 0x6b, 0x7c, 0x1b, 0x92, 0x1d, 0xa3, 0xab, 0xd9, 0x06, 0x39, 0xc9, 0x87, 0x0b, 0xa8, 0x94,
+ 0x5b, 0xf9, 0x57, 0x79, 0x5c, 0xb6, 0xab, 0x2c, 0x3f, 0xe8, 0xf7, 0xac, 0xbe, 0xdd, 0x18, 0xa5,
+ 0xe2, 0x02, 0x64, 0x3a, 0xba, 0xd1, 0xee, 0x90, 0x7d, 0xc3, 0xdc, 0x3f, 0xe8, 0xe5, 0x23, 0x05,
+ 0x54, 0xca, 0x36, 0x80, 0xc7, 0x36, 0xcc, 0x6a, 0x8f, 0x4e, 0x76, 0xa8, 0x11, 0x2d, 0x1f, 0x2d,
+ 0xa0, 0x52, 0xa6, 0xc1, 0xae, 0xf1, 0x12, 0x64, 0x6c, 0xdd, 0xe9, 0x77, 0xc9, 0xfe, 0x81, 0xd5,
+ 0x37, 0x49, 0x3e, 0x51, 0x40, 0xa5, 0x48, 0x23, 0xcd, 0x63, 0x55, 0x1a, 0xc2, 0x97, 0x20, 0x4b,
+ 0xec, 0xbe, 0xbe, 0xef, 0x1c, 0x58, 0xc4, 0xe9, 0x69, 0x66, 0x3e, 0x59, 0x40, 0xa5, 0x64, 0x23,
+ 0x43, 0x83, 0x4d, 0x37, 0x86, 0x2f, 0x42, 0xcc, 0x39, 0xb0, 0x6c, 0x3d, 0x9f, 0x2a, 0xa0, 0x52,
+ 0xb8, 0xc1, 0x07, 0x58, 0x81, 0xc8, 0x53, 0xfd, 0x24, 0x1f, 0x2b, 0x44, 0x4a, 0xd1, 0x06, 0xbd,
+ 0xc4, 0x57, 0x21, 0x6e, 0xea, 0x0e, 0xd1, 0x0f, 0xf3, 0xf1, 0x02, 0x2a, 0xa5, 0x57, 0xe6, 0x85,
+ 0x5b, 0xab, 0xb3, 0x3f, 0x34, 0xdc, 0x04, 0xfc, 0x01, 0x24, 0x88, 0x6e, 0xdb, 0x9a, 0x61, 0xe6,
+ 0xa1, 0x10, 0x29, 0xa5, 0x57, 0x16, 0x25, 0xcb, 0xb0, 0xc3, 0x33, 0xd6, 0x4d, 0x62, 0x9f, 0x34,
+ 0x86, 0xf9, 0xf8, 0x36, 0x64, 0x58, 0xde, 0xca, 0xfe, 0x91, 0xa1, 0x77, 0x0f, 0xf3, 0x69, 0x36,
+ 0x17, 0x2e, 0xb3, 0xa7, 0x50, 0x37, 0xcc, 0x47, 0xc7, 0xa4, 0xae, 0x11, 0xe3, 0x99, 0xde, 0x48,
+ 0xf3, 0xbc, 0x1a, 0x4d, 0xc3, 0xb5, 0x91, 0xec, 0x99, 0xd6, 0xed, 0xeb, 0xf9, 0x2c, 0x9b, 0xf6,
+ 0x92, 0x64, 0xda, 0x6d, 0x96, 0xf6, 0x98, 0x66, 0xf1, 0xa9, 0x5d, 0x0e, 0x8b, 0x2c, 0x6c, 0x41,
+ 0x46, 0xac, 0x6b, 0xb8, 0x0c, 0x88, 0xad, 0x2d, 0x5b, 0x86, 0x2b, 0x10, 0xe3, 0x53, 0x84, 0xfd,
+ 0x56, 0x81, 0xff, 0x7d, 0x35, 0x7c, 0x07, 0x2d, 0x6c, 0x83, 0x32, 0x3d, 0x9f, 0x04, 0x79, 0x79,
+ 0x12, 0xa9, 0x88, 0x37, 0xbb, 0x6e, 0xf6, 0x7b, 0x02, 0xb1, 0x78, 0x0f, 0xe2, 0x7c, 0xff, 0xe0,
+ 0x34, 0x24, 0x76, 0xeb, 0x0f, 0xeb, 0x8f, 0xf6, 0xea, 0x4a, 0x08, 0x27, 0x21, 0xba, 0xbd, 0x5b,
+ 0x6f, 0x2a, 0x08, 0x67, 0x21, 0xd5, 0xdc, 0x5c, 0xdb, 0x6e, 0xee, 0x6c, 0x54, 0x1f, 0x2a, 0x61,
+ 0x3c, 0x07, 0xe9, 0xca, 0xc6, 0xe6, 0xe6, 0x7e, 0x65, 0x6d, 0x63, 0x73, 0xfd, 0x0b, 0x25, 0x52,
+ 0x54, 0x21, 0xce, 0xeb, 0xa4, 0x0f, 0xbe, 0xd5, 0x37, 0xcd, 0x13, 0x77, 0x0b, 0xf3, 0x41, 0xf1,
+ 0x05, 0x86, 0xc4, 0x5a, 0xb7, 0xbb, 0xa5, 0x1d, 0x3b, 0x78, 0x0f, 0xe6, 0x9b, 0xc4, 0x36, 0xcc,
+ 0xf6, 0x8e, 0x75, 0xdf, 0xea, 0xb7, 0xba, 0xfa, 0x96, 0x76, 0x9c, 0x47, 0x6c, 0x69, 0xaf, 0x0a,
+ 0xf7, 0xed, 0xa6, 0x97, 0x3d, 0xb9, 0x7c, 0x81, 0xbd, 0x0c, 0xbc, 0x03, 0xca, 0x30, 0x58, 0xeb,
+ 0x5a, 0x1a, 0xa1, 0xdc, 0x30, 0xe3, 0x96, 0x66, 0x70, 0x87, 0xa9, 0x1c, 0xeb, 0x21, 0xe0, 0xbb,
+ 0x90, 0xdc, 0x30, 0xc9, 0xcd, 0x15, 0x4a, 0x8b, 0x30, 0x5a, 0x41, 0x42, 0x1b, 0xa6, 0x70, 0xca,
+ 0x48, 0xe1, 0xaa, 0xff, 0x77, 0x8b, 0xaa, 0xa3, 0xb3, 0xd4, 0x2c, 0x65, 0xac, 0x66, 0x43, 0x7c,
+ 0x0f, 0x52, 0xbb, 0xc6, 0x70, 0xf2, 0x18, 0x93, 0x2f, 0x49, 0xe4, 0xa3, 0x1c, 0xae, 0x1f, 0x6b,
+ 0x86, 0x00, 0x3e, 0x7f, 0x7c, 0x26, 0x40, 0x28, 0x60, 0xac, 0xa1, 0x80, 0xe6, 0xa8, 0x82, 0x84,
+ 0x2f, 0xa0, 0x39, 0x55, 0x41, 0x53, 0xac, 0xa0, 0x39, 0xaa, 0x20, 0x39, 0x13, 0x20, 0x56, 0x30,
+ 0x1a, 0xe3, 0x0a, 0x40, 0xcd, 0xf8, 0x4a, 0x3f, 0xe4, 0x25, 0xa4, 0x18, 0xa1, 0x28, 0x21, 0x8c,
+ 0x93, 0x38, 0x42, 0x50, 0xe1, 0x75, 0x48, 0x37, 0x8f, 0xc6, 0x10, 0xf0, 0x9c, 0xe3, 0x51, 0x19,
+ 0x47, 0x53, 0x14, 0x51, 0x37, 0x2a, 0x85, 0xdf, 0x4c, 0x7a, 0x76, 0x29, 0xc2, 0xdd, 0x08, 0xaa,
+ 0x71, 0x29, 0x1c, 0x92, 0x09, 0x28, 0x45, 0xa0, 0x88, 0x3a, 0xda, 0x0c, 0x2b, 0x96, 0x45, 0x33,
+ 0xdd, 0xae, 0xb4, 0x28, 0x41, 0xb8, 0x19, 0x6e, 0x33, 0x74, 0x47, 0xec, 0x89, 0xb0, 0x4d, 0x4e,
+ 0xc5, 0x39, 0xff, 0x27, 0x32, 0xcc, 0x19, 0x3e, 0x91, 0xe1, 0x58, 0x3c, 0x67, 0x95, 0x13, 0xa2,
+ 0x3b, 0x94, 0x33, 0x17, 0x78, 0xce, 0x86, 0xa9, 0x53, 0xe7, 0x6c, 0x18, 0xc6, 0x9f, 0xc1, 0xdc,
+ 0x30, 0x46, 0xdb, 0x13, 0x85, 0x2a, 0x0c, 0x7a, 0x65, 0x06, 0xd4, 0xcd, 0xe4, 0xcc, 0x69, 0x3d,
+ 0xae, 0x43, 0x6e, 0x18, 0xda, 0x72, 0xd8, 0xed, 0xce, 0x33, 0xe2, 0xe5, 0x19, 0x44, 0x9e, 0xc8,
+ 0x81, 0x53, 0xea, 0x85, 0xfb, 0xf0, 0x4f, 0x79, 0x37, 0x12, 0xdb, 0x6f, 0x8a, 0xb7, 0xdf, 0x8b,
+ 0x62, 0xfb, 0x45, 0x62, 0xfb, 0xae, 0xc2, 0x3f, 0xa4, 0xbd, 0x27, 0x08, 0x12, 0x16, 0x21, 0x1f,
+ 0x42, 0x76, 0xa2, 0xe5, 0x88, 0xe2, 0x98, 0x44, 0x1c, 0xf3, 0x8a, 0xc7, 0x5b, 0x4b, 0xf2, 0xf6,
+ 0x98, 0x10, 0x47, 0x44, 0xf1, 0x5d, 0xc8, 0x4d, 0xf6, 0x1b, 0x51, 0x9d, 0x95, 0xa8, 0xb3, 0x12,
+ 0xb5, 0x7c, 0xee, 0xa8, 0x44, 0x1d, 0x9d, 0x52, 0x37, 0x7d, 0xe7, 0x9e, 0x97, 0xa8, 0xe7, 0x25,
+ 0x6a, 0xf9, 0xdc, 0x58, 0xa2, 0xc6, 0xa2, 0xfa, 0x23, 0x98, 0x9b, 0x6a, 0x31, 0xa2, 0x3c, 0x21,
+ 0x91, 0x27, 0x44, 0xf9, 0xc7, 0xa0, 0x4c, 0x37, 0x17, 0x51, 0x3f, 0x27, 0xd1, 0xcf, 0xc9, 0xa6,
+ 0x97, 0x57, 0x1f, 0x97, 0xc8, 0xe3, 0xd2, 0xe9, 0xe5, 0x7a, 0x45, 0xa2, 0x57, 0x44, 0xfd, 0x2a,
+ 0x64, 0xc4, 0x6e, 0x22, 0x6a, 0x93, 0x12, 0x6d, 0x72, 0x7a, 0xdd, 0x27, 0x9a, 0x49, 0xd0, 0x4e,
+ 0x4f, 0xf9, 0x1c, 0x97, 0x89, 0x16, 0x12, 0x04, 0xc9, 0x88, 0x90, 0xc7, 0x70, 0x51, 0xd6, 0x32,
+ 0x24, 0x8c, 0x92, 0xc8, 0xc8, 0x51, 0x8f, 0x38, 0x36, 0x7b, 0x54, 0x35, 0x61, 0x9c, 0x16, 0x9e,
+ 0xc0, 0x05, 0x49, 0xe3, 0x90, 0x60, 0xcb, 0x93, 0x6e, 0x2c, 0x2f, 0x60, 0x59, 0x13, 0x30, 0xcc,
+ 0xf6, 0xb6, 0x65, 0x98, 0x44, 0x74, 0x65, 0x3f, 0x5c, 0x80, 0x9c, 0xdb, 0x9e, 0x1e, 0xd9, 0x87,
+ 0xba, 0xad, 0x1f, 0xe2, 0x2f, 0xfd, 0xbd, 0xd3, 0x0d, 0x6f, 0x53, 0x73, 0x55, 0xef, 0x61, 0xa1,
+ 0x9e, 0xf8, 0x5a, 0xa8, 0xe5, 0x60, 0x7c, 0x90, 0x93, 0xaa, 0x7a, 0x9c, 0xd4, 0x15, 0x7f, 0xa8,
+ 0x9f, 0xa1, 0xaa, 0x7a, 0x0c, 0xd5, 0x6c, 0x88, 0xd4, 0x57, 0xd5, 0xbc, 0xbe, 0xaa, 0xe4, 0x4f,
+ 0xf1, 0xb7, 0x57, 0x35, 0xaf, 0xbd, 0x0a, 0xe0, 0xc8, 0x5d, 0x56, 0xcd, 0xeb, 0xb2, 0x66, 0x70,
+ 0xfc, 0xcd, 0x56, 0xcd, 0x6b, 0xb6, 0x02, 0x38, 0x72, 0xcf, 0xb5, 0x21, 0xf1, 0x5c, 0x57, 0xfd,
+ 0x41, 0xb3, 0xac, 0xd7, 0xa6, 0xcc, 0x7a, 0x5d, 0x9b, 0x51, 0xd4, 0x4c, 0x07, 0xb6, 0x21, 0x71,
+ 0x60, 0x41, 0x85, 0xf9, 0x18, 0xb1, 0x4d, 0x99, 0x11, 0x0b, 0x2c, 0xcc, 0xcf, 0x8f, 0x7d, 0x32,
+ 0xed, 0xc7, 0x2e, 0xfb, 0x93, 0xe4, 0xb6, 0xac, 0xe6, 0xb5, 0x65, 0xa5, 0xa0, 0x33, 0x27, 0x73,
+ 0x67, 0x4f, 0x7c, 0xdd, 0xd9, 0x9f, 0x38, 0xc2, 0x41, 0x26, 0xed, 0x73, 0x3f, 0x93, 0x56, 0x0e,
+ 0x66, 0xcf, 0xf6, 0x6a, 0xbb, 0x3e, 0x5e, 0xed, 0x7a, 0x30, 0xf8, 0xdc, 0xb2, 0x9d, 0x5b, 0xb6,
+ 0x73, 0xcb, 0x76, 0x6e, 0xd9, 0xfe, 0x7e, 0xcb, 0xb6, 0x1a, 0xfd, 0xfa, 0xdb, 0x45, 0x54, 0xfc,
+ 0x25, 0x02, 0x39, 0xf7, 0xcb, 0xe0, 0x9e, 0x41, 0x3a, 0xb4, 0xbd, 0x6d, 0x41, 0xc6, 0xd4, 0x7a,
+ 0xfa, 0x7e, 0x4f, 0x3b, 0x3e, 0x36, 0xcc, 0xb6, 0xeb, 0xd9, 0xae, 0x79, 0x3f, 0x25, 0xba, 0x82,
+ 0x72, 0x5d, 0xeb, 0xd1, 0x5e, 0x45, 0x93, 0xdd, 0xd7, 0x8d, 0x39, 0x8e, 0xe0, 0x4f, 0x21, 0xdd,
+ 0x73, 0xda, 0x23, 0x5a, 0xd8, 0xf3, 0x22, 0x9c, 0xa2, 0xf1, 0x3b, 0x1d, 0xc3, 0xa0, 0x37, 0x0a,
+ 0xd0, 0xd2, 0x5a, 0x27, 0x64, 0x5c, 0x5a, 0x24, 0xa8, 0x34, 0xfa, 0x4c, 0x27, 0x4b, 0x6b, 0x8d,
+ 0x23, 0x74, 0xdb, 0x4e, 0xd7, 0x1e, 0xd4, 0xe9, 0x26, 0x36, 0xcf, 0x1e, 0xcc, 0x4d, 0x55, 0x2b,
+ 0x39, 0xf3, 0x7f, 0xe1, 0xd9, 0xd0, 0xc2, 0xa6, 0x2b, 0x0f, 0x3a, 0x13, 0xe2, 0x86, 0x2c, 0xfe,
+ 0x1b, 0xb2, 0x13, 0x6c, 0x9c, 0x01, 0x74, 0xc4, 0xa4, 0xa8, 0x81, 0x8e, 0x8a, 0xdf, 0x20, 0x48,
+ 0xd3, 0x3e, 0xf9, 0xdf, 0x95, 0x3b, 0xdb, 0x9a, 0x61, 0xe3, 0x07, 0x10, 0xed, 0xea, 0x47, 0x84,
+ 0x25, 0x64, 0x2a, 0xb7, 0x4e, 0x5f, 0x2d, 0x86, 0x7e, 0x7b, 0xb5, 0xf8, 0x9f, 0x80, 0xff, 0x12,
+ 0xf4, 0x1d, 0x62, 0xf5, 0xca, 0x2e, 0xa7, 0xc1, 0x08, 0xb8, 0x06, 0x31, 0xdb, 0x68, 0x77, 0x08,
+ 0x2f, 0xa9, 0x72, 0xe3, 0xbd, 0x31, 0x5c, 0x5e, 0x3c, 0x45, 0x30, 0x5f, 0xb5, 0x4c, 0xa2, 0x19,
+ 0xa6, 0xc3, 0xbf, 0xd6, 0xd2, 0x37, 0xe4, 0x0b, 0x04, 0xa9, 0xd1, 0x08, 0xb7, 0x20, 0x37, 0x1a,
+ 0xb0, 0x8f, 0xe0, 0xee, 0x4e, 0x5d, 0x15, 0x56, 0xd8, 0xc3, 0x28, 0x4b, 0xae, 0x98, 0xd8, 0x7d,
+ 0x27, 0x4f, 0x06, 0x17, 0xd6, 0xe0, 0x82, 0x24, 0xed, 0x7d, 0x5e, 0xc8, 0xc5, 0x25, 0x48, 0xd5,
+ 0x2d, 0xb2, 0xad, 0x1d, 0x3c, 0x65, 0x9f, 0x9c, 0xc7, 0xff, 0x55, 0xa8, 0x84, 0x95, 0x10, 0x13,
+ 0x5f, 0x5b, 0x82, 0x84, 0x7b, 0xfa, 0x71, 0x1c, 0xc2, 0x5b, 0x6b, 0x4a, 0x88, 0xfd, 0x56, 0x14,
+ 0xc4, 0x7e, 0xab, 0x4a, 0xb8, 0xb2, 0x79, 0x7a, 0xa6, 0x86, 0x5e, 0x9e, 0xa9, 0xa1, 0x5f, 0xcf,
+ 0xd4, 0xd0, 0xeb, 0x33, 0x15, 0xbd, 0x39, 0x53, 0xd1, 0xdb, 0x33, 0x15, 0xbd, 0x3b, 0x53, 0xd1,
+ 0xf3, 0x81, 0x8a, 0xbe, 0x1b, 0xa8, 0xe8, 0xfb, 0x81, 0x8a, 0x7e, 0x1c, 0xa8, 0xe8, 0xa7, 0x81,
+ 0x8a, 0x4e, 0x07, 0x6a, 0xe8, 0xe5, 0x40, 0x45, 0xaf, 0x07, 0x2a, 0x7a, 0x33, 0x50, 0x43, 0x6f,
+ 0x07, 0x2a, 0x7a, 0x37, 0x50, 0x43, 0xcf, 0x7f, 0x57, 0x43, 0xad, 0x38, 0x5f, 0x9e, 0x3f, 0x02,
+ 0x00, 0x00, 0xff, 0xff, 0xda, 0xba, 0x48, 0xa4, 0x67, 0x1a, 0x00, 0x00,
+}
+
func (this *Message) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return Theproto3Description()
}
@@ -518,511 +625,514 @@ func (this *NotPacked) Description() (desc *github_com_gogo_protobuf_protoc_gen_
func Theproto3Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 8063 bytes of a gzipped FileDescriptorSet
+ // 8097 bytes of a gzipped FileDescriptorSet
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x70, 0x23, 0xd7,
- 0x99, 0x1e, 0x1b, 0x0d, 0x92, 0xe0, 0x0f, 0x90, 0x6c, 0x36, 0x67, 0x28, 0x88, 0x1a, 0x91, 0x33,
- 0xd0, 0x68, 0x44, 0xd1, 0x16, 0x67, 0x86, 0xc3, 0xb9, 0x61, 0x2c, 0x69, 0x01, 0x10, 0x1c, 0x71,
+ 0x99, 0x1e, 0x1b, 0x0d, 0x90, 0xc0, 0x0f, 0x90, 0x6c, 0x36, 0x67, 0x28, 0x88, 0x1a, 0x91, 0x33,
+ 0xd0, 0x68, 0x44, 0xd1, 0x12, 0x67, 0x86, 0xc3, 0xb9, 0x61, 0x2c, 0x69, 0x01, 0x10, 0x1c, 0x71,
0x4c, 0x82, 0x74, 0x93, 0xb4, 0x34, 0x56, 0x12, 0x54, 0x13, 0x38, 0x24, 0x21, 0x01, 0xdd, 0x58,
- 0x74, 0x43, 0x12, 0x55, 0xa9, 0x94, 0xb2, 0x4e, 0x36, 0xde, 0xa4, 0x72, 0xdd, 0xa4, 0xe2, 0x75,
- 0x7c, 0x91, 0x77, 0x6b, 0xd7, 0xde, 0xcd, 0xcd, 0xeb, 0xdd, 0x38, 0xbb, 0x4e, 0x2a, 0xab, 0x3c,
- 0x38, 0x99, 0xbc, 0xa4, 0xbc, 0xc9, 0x4b, 0xca, 0x95, 0x52, 0x59, 0x63, 0xa7, 0xd6, 0x49, 0x9c,
- 0xac, 0xb3, 0x51, 0x55, 0x5c, 0xe5, 0x7d, 0x48, 0x9d, 0x5b, 0xf7, 0xe9, 0xd3, 0x0d, 0x34, 0x38,
- 0x92, 0xec, 0x7d, 0xd0, 0xcb, 0x0c, 0xfa, 0x9c, 0xff, 0xfb, 0xfa, 0xef, 0xff, 0x76, 0xfe, 0xee,
- 0xd3, 0x00, 0xe1, 0x8f, 0x6f, 0xc2, 0xd9, 0x43, 0xdb, 0x3e, 0x6c, 0xa2, 0x8b, 0xed, 0x8e, 0xed,
- 0xda, 0xfb, 0xdd, 0x83, 0x8b, 0x75, 0xe4, 0xd4, 0x3a, 0x8d, 0xb6, 0x6b, 0x77, 0x96, 0xc8, 0x98,
- 0x3e, 0x49, 0x25, 0x96, 0xb8, 0x44, 0x6e, 0x13, 0xa6, 0xd6, 0x1a, 0x4d, 0xb4, 0xea, 0x09, 0xee,
- 0x20, 0x57, 0xbf, 0x01, 0xc9, 0x83, 0x46, 0x13, 0x65, 0x95, 0xb3, 0xea, 0x42, 0x7a, 0xf9, 0xfc,
- 0x92, 0x04, 0x5a, 0x0a, 0x22, 0xb6, 0xf1, 0xb0, 0x41, 0x10, 0xb9, 0xef, 0x27, 0x61, 0x3a, 0x62,
- 0x56, 0xd7, 0x21, 0x69, 0x99, 0x2d, 0xcc, 0xa8, 0x2c, 0x8c, 0x19, 0xe4, 0xb3, 0x9e, 0x85, 0xd1,
- 0xb6, 0x59, 0x7b, 0xd9, 0x3c, 0x44, 0xd9, 0x04, 0x19, 0xe6, 0x87, 0xfa, 0x1c, 0x40, 0x1d, 0xb5,
- 0x91, 0x55, 0x47, 0x56, 0xed, 0x38, 0xab, 0x9e, 0x55, 0x17, 0xc6, 0x0c, 0x61, 0x44, 0xff, 0x08,
- 0x4c, 0xb5, 0xbb, 0xfb, 0xcd, 0x46, 0xad, 0x2a, 0x88, 0xc1, 0x59, 0x75, 0x61, 0xd8, 0xd0, 0xe8,
- 0xc4, 0xaa, 0x2f, 0xfc, 0x04, 0x4c, 0xbe, 0x8a, 0xcc, 0x97, 0x45, 0xd1, 0x34, 0x11, 0x9d, 0xc0,
- 0xc3, 0x82, 0x60, 0x09, 0x32, 0x2d, 0xe4, 0x38, 0xe6, 0x21, 0xaa, 0xba, 0xc7, 0x6d, 0x94, 0x4d,
- 0x92, 0xab, 0x3f, 0x1b, 0xba, 0x7a, 0xf9, 0xca, 0xd3, 0x0c, 0xb5, 0x7b, 0xdc, 0x46, 0x7a, 0x01,
- 0xc6, 0x90, 0xd5, 0x6d, 0x51, 0x86, 0xe1, 0x1e, 0xf6, 0x2b, 0x5b, 0xdd, 0x96, 0xcc, 0x92, 0xc2,
- 0x30, 0x46, 0x31, 0xea, 0xa0, 0xce, 0x2b, 0x8d, 0x1a, 0xca, 0x8e, 0x10, 0x82, 0x27, 0x42, 0x04,
- 0x3b, 0x74, 0x5e, 0xe6, 0xe0, 0x38, 0xbd, 0x04, 0x63, 0xe8, 0x35, 0x17, 0x59, 0x4e, 0xc3, 0xb6,
- 0xb2, 0xa3, 0x84, 0xe4, 0xf1, 0x08, 0x2f, 0xa2, 0x66, 0x5d, 0xa6, 0xf0, 0x71, 0xfa, 0x35, 0x18,
- 0xb5, 0xdb, 0x6e, 0xc3, 0xb6, 0x9c, 0x6c, 0xea, 0xac, 0xb2, 0x90, 0x5e, 0x3e, 0x13, 0x19, 0x08,
- 0x5b, 0x54, 0xc6, 0xe0, 0xc2, 0xfa, 0x3a, 0x68, 0x8e, 0xdd, 0xed, 0xd4, 0x50, 0xb5, 0x66, 0xd7,
- 0x51, 0xb5, 0x61, 0x1d, 0xd8, 0xd9, 0x31, 0x42, 0x30, 0x1f, 0xbe, 0x10, 0x22, 0x58, 0xb2, 0xeb,
- 0x68, 0xdd, 0x3a, 0xb0, 0x8d, 0x09, 0x27, 0x70, 0xac, 0xcf, 0xc0, 0x88, 0x73, 0x6c, 0xb9, 0xe6,
- 0x6b, 0xd9, 0x0c, 0x89, 0x10, 0x76, 0x94, 0xfb, 0xfd, 0x11, 0x98, 0x1c, 0x24, 0xc4, 0x6e, 0xc1,
- 0xf0, 0x01, 0xbe, 0xca, 0x6c, 0xe2, 0x24, 0x36, 0xa0, 0x98, 0xa0, 0x11, 0x47, 0x1e, 0xd0, 0x88,
- 0x05, 0x48, 0x5b, 0xc8, 0x71, 0x51, 0x9d, 0x46, 0x84, 0x3a, 0x60, 0x4c, 0x01, 0x05, 0x85, 0x43,
- 0x2a, 0xf9, 0x40, 0x21, 0xf5, 0x02, 0x4c, 0x7a, 0x2a, 0x55, 0x3b, 0xa6, 0x75, 0xc8, 0x63, 0xf3,
- 0x62, 0x9c, 0x26, 0x4b, 0x65, 0x8e, 0x33, 0x30, 0xcc, 0x98, 0x40, 0x81, 0x63, 0x7d, 0x15, 0xc0,
- 0xb6, 0x90, 0x7d, 0x50, 0xad, 0xa3, 0x5a, 0x33, 0x9b, 0xea, 0x61, 0xa5, 0x2d, 0x2c, 0x12, 0xb2,
- 0x92, 0x4d, 0x47, 0x6b, 0x4d, 0xfd, 0xa6, 0x1f, 0x6a, 0xa3, 0x3d, 0x22, 0x65, 0x93, 0x26, 0x59,
- 0x28, 0xda, 0xf6, 0x60, 0xa2, 0x83, 0x70, 0xdc, 0xa3, 0x3a, 0xbb, 0xb2, 0x31, 0xa2, 0xc4, 0x52,
- 0xec, 0x95, 0x19, 0x0c, 0x46, 0x2f, 0x6c, 0xbc, 0x23, 0x1e, 0xea, 0x8f, 0x81, 0x37, 0x50, 0x25,
- 0x61, 0x05, 0xa4, 0x0a, 0x65, 0xf8, 0x60, 0xc5, 0x6c, 0xa1, 0xd9, 0xd7, 0x61, 0x22, 0x68, 0x1e,
- 0xfd, 0x14, 0x0c, 0x3b, 0xae, 0xd9, 0x71, 0x49, 0x14, 0x0e, 0x1b, 0xf4, 0x40, 0xd7, 0x40, 0x45,
- 0x56, 0x9d, 0x54, 0xb9, 0x61, 0x03, 0x7f, 0xd4, 0x7f, 0xce, 0xbf, 0x60, 0x95, 0x5c, 0xf0, 0x85,
- 0xb0, 0x47, 0x03, 0xcc, 0xf2, 0x75, 0xcf, 0x5e, 0x87, 0xf1, 0xc0, 0x05, 0x0c, 0x7a, 0xea, 0xdc,
- 0x5f, 0x84, 0xd3, 0x91, 0xd4, 0xfa, 0x0b, 0x70, 0xaa, 0x6b, 0x35, 0x2c, 0x17, 0x75, 0xda, 0x1d,
- 0x84, 0x23, 0x96, 0x9e, 0x2a, 0xfb, 0x47, 0xa3, 0x3d, 0x62, 0x6e, 0x4f, 0x94, 0xa6, 0x2c, 0xc6,
- 0x74, 0x37, 0x3c, 0xb8, 0x38, 0x96, 0xfa, 0xc1, 0xa8, 0xf6, 0xc6, 0x1b, 0x6f, 0xbc, 0x91, 0xc8,
- 0x7d, 0x76, 0x04, 0x4e, 0x45, 0xe5, 0x4c, 0x64, 0xfa, 0xce, 0xc0, 0x88, 0xd5, 0x6d, 0xed, 0xa3,
- 0x0e, 0x31, 0xd2, 0xb0, 0xc1, 0x8e, 0xf4, 0x02, 0x0c, 0x37, 0xcd, 0x7d, 0xd4, 0xcc, 0x26, 0xcf,
- 0x2a, 0x0b, 0x13, 0xcb, 0x1f, 0x19, 0x28, 0x2b, 0x97, 0x36, 0x30, 0xc4, 0xa0, 0x48, 0xfd, 0x19,
- 0x48, 0xb2, 0x12, 0x8d, 0x19, 0x16, 0x07, 0x63, 0xc0, 0xb9, 0x64, 0x10, 0x9c, 0xfe, 0x08, 0x8c,
- 0xe1, 0xff, 0x69, 0x6c, 0x8c, 0x10, 0x9d, 0x53, 0x78, 0x00, 0xc7, 0x85, 0x3e, 0x0b, 0x29, 0x92,
- 0x26, 0x75, 0xc4, 0x97, 0x36, 0xef, 0x18, 0x07, 0x56, 0x1d, 0x1d, 0x98, 0xdd, 0xa6, 0x5b, 0x7d,
- 0xc5, 0x6c, 0x76, 0x11, 0x09, 0xf8, 0x31, 0x23, 0xc3, 0x06, 0x3f, 0x89, 0xc7, 0xf4, 0x79, 0x48,
- 0xd3, 0xac, 0x6a, 0x58, 0x75, 0xf4, 0x1a, 0xa9, 0x9e, 0xc3, 0x06, 0x4d, 0xb4, 0x75, 0x3c, 0x82,
- 0x4f, 0xff, 0x92, 0x63, 0x5b, 0x3c, 0x34, 0xc9, 0x29, 0xf0, 0x00, 0x39, 0xfd, 0x75, 0xb9, 0x70,
- 0x3f, 0x1a, 0x7d, 0x79, 0x72, 0x4c, 0xe5, 0xbe, 0x91, 0x80, 0x24, 0xa9, 0x17, 0x93, 0x90, 0xde,
- 0xbd, 0xbb, 0x5d, 0xae, 0xae, 0x6e, 0xed, 0x15, 0x37, 0xca, 0x9a, 0xa2, 0x4f, 0x00, 0x90, 0x81,
- 0xb5, 0x8d, 0xad, 0xc2, 0xae, 0x96, 0xf0, 0x8e, 0xd7, 0x2b, 0xbb, 0xd7, 0x56, 0x34, 0xd5, 0x03,
- 0xec, 0xd1, 0x81, 0xa4, 0x28, 0x70, 0x65, 0x59, 0x1b, 0xd6, 0x35, 0xc8, 0x50, 0x82, 0xf5, 0x17,
- 0xca, 0xab, 0xd7, 0x56, 0xb4, 0x91, 0xe0, 0xc8, 0x95, 0x65, 0x6d, 0x54, 0x1f, 0x87, 0x31, 0x32,
- 0x52, 0xdc, 0xda, 0xda, 0xd0, 0x52, 0x1e, 0xe7, 0xce, 0xae, 0xb1, 0x5e, 0xb9, 0xad, 0x8d, 0x79,
- 0x9c, 0xb7, 0x8d, 0xad, 0xbd, 0x6d, 0x0d, 0x3c, 0x86, 0xcd, 0xf2, 0xce, 0x4e, 0xe1, 0x76, 0x59,
- 0x4b, 0x7b, 0x12, 0xc5, 0xbb, 0xbb, 0xe5, 0x1d, 0x2d, 0x13, 0x50, 0xeb, 0xca, 0xb2, 0x36, 0xee,
- 0x9d, 0xa2, 0x5c, 0xd9, 0xdb, 0xd4, 0x26, 0xf4, 0x29, 0x18, 0xa7, 0xa7, 0xe0, 0x4a, 0x4c, 0x4a,
- 0x43, 0xd7, 0x56, 0x34, 0xcd, 0x57, 0x84, 0xb2, 0x4c, 0x05, 0x06, 0xae, 0xad, 0x68, 0x7a, 0xae,
- 0x04, 0xc3, 0x24, 0xba, 0x74, 0x1d, 0x26, 0x36, 0x0a, 0xc5, 0xf2, 0x46, 0x75, 0x6b, 0x7b, 0x77,
- 0x7d, 0xab, 0x52, 0xd8, 0xd0, 0x14, 0x7f, 0xcc, 0x28, 0x7f, 0x62, 0x6f, 0xdd, 0x28, 0xaf, 0x6a,
- 0x09, 0x71, 0x6c, 0xbb, 0x5c, 0xd8, 0x2d, 0xaf, 0x6a, 0x6a, 0xae, 0x06, 0xa7, 0xa2, 0xea, 0x64,
- 0x64, 0x66, 0x08, 0x2e, 0x4e, 0xf4, 0x70, 0x31, 0xe1, 0x0a, 0xb9, 0xf8, 0x7b, 0x09, 0x98, 0x8e,
- 0x58, 0x2b, 0x22, 0x4f, 0xf2, 0x2c, 0x0c, 0xd3, 0x10, 0xa5, 0xab, 0xe7, 0x93, 0x91, 0x8b, 0x0e,
- 0x09, 0xd8, 0xd0, 0x0a, 0x4a, 0x70, 0x62, 0x07, 0xa1, 0xf6, 0xe8, 0x20, 0x30, 0x45, 0xa8, 0xa6,
- 0xff, 0xf9, 0x50, 0x4d, 0xa7, 0xcb, 0xde, 0xb5, 0x41, 0x96, 0x3d, 0x32, 0x76, 0xb2, 0xda, 0x3e,
- 0x1c, 0x51, 0xdb, 0x6f, 0xc1, 0x54, 0x88, 0x68, 0xe0, 0x1a, 0xfb, 0x69, 0x05, 0xb2, 0xbd, 0x8c,
- 0x13, 0x53, 0xe9, 0x12, 0x81, 0x4a, 0x77, 0x4b, 0xb6, 0xe0, 0xb9, 0xde, 0x4e, 0x08, 0xf9, 0xfa,
- 0x2b, 0x0a, 0xcc, 0x44, 0x77, 0x8a, 0x91, 0x3a, 0x3c, 0x03, 0x23, 0x2d, 0xe4, 0x1e, 0xd9, 0xbc,
- 0x5b, 0xba, 0x10, 0xb1, 0x06, 0xe3, 0x69, 0xd9, 0xd9, 0x0c, 0x25, 0x2e, 0xe2, 0x6a, 0xaf, 0x76,
- 0x8f, 0x6a, 0x13, 0xd2, 0xf4, 0x97, 0x12, 0x70, 0x3a, 0x92, 0x3c, 0x52, 0xd1, 0x47, 0x01, 0x1a,
- 0x56, 0xbb, 0xeb, 0xd2, 0x8e, 0x88, 0x16, 0xd8, 0x31, 0x32, 0x42, 0x8a, 0x17, 0x2e, 0x9e, 0x5d,
- 0xd7, 0x9b, 0x57, 0xc9, 0x3c, 0xd0, 0x21, 0x22, 0x70, 0xc3, 0x57, 0x34, 0x49, 0x14, 0x9d, 0xeb,
- 0x71, 0xa5, 0xa1, 0xc0, 0xbc, 0x04, 0x5a, 0xad, 0xd9, 0x40, 0x96, 0x5b, 0x75, 0xdc, 0x0e, 0x32,
- 0x5b, 0x0d, 0xeb, 0x90, 0xac, 0x20, 0xa9, 0xfc, 0xf0, 0x81, 0xd9, 0x74, 0x90, 0x31, 0x49, 0xa7,
- 0x77, 0xf8, 0x2c, 0x46, 0x90, 0x00, 0xea, 0x08, 0x88, 0x91, 0x00, 0x82, 0x4e, 0x7b, 0x88, 0xdc,
- 0xef, 0xa4, 0x20, 0x2d, 0xf4, 0xd5, 0xfa, 0x39, 0xc8, 0xbc, 0x64, 0xbe, 0x62, 0x56, 0xf9, 0xbd,
- 0x12, 0xb5, 0x44, 0x1a, 0x8f, 0x6d, 0xb3, 0xfb, 0xa5, 0x4b, 0x70, 0x8a, 0x88, 0xd8, 0x5d, 0x17,
- 0x75, 0xaa, 0xb5, 0xa6, 0xe9, 0x38, 0xc4, 0x68, 0x29, 0x22, 0xaa, 0xe3, 0xb9, 0x2d, 0x3c, 0x55,
- 0xe2, 0x33, 0xfa, 0x55, 0x98, 0x26, 0x88, 0x56, 0xb7, 0xe9, 0x36, 0xda, 0x4d, 0x54, 0xc5, 0x77,
- 0x6f, 0x0e, 0x59, 0x49, 0x3c, 0xcd, 0xa6, 0xb0, 0xc4, 0x26, 0x13, 0xc0, 0x1a, 0x39, 0xfa, 0x2a,
- 0x3c, 0x4a, 0x60, 0x87, 0xc8, 0x42, 0x1d, 0xd3, 0x45, 0x55, 0xf4, 0xf3, 0x5d, 0xb3, 0xe9, 0x54,
- 0x4d, 0xab, 0x5e, 0x3d, 0x32, 0x9d, 0xa3, 0xec, 0x29, 0x4c, 0x50, 0x4c, 0x64, 0x15, 0xe3, 0x61,
- 0x2c, 0x78, 0x9b, 0xc9, 0x95, 0x89, 0x58, 0xc1, 0xaa, 0x3f, 0x67, 0x3a, 0x47, 0x7a, 0x1e, 0x66,
- 0x08, 0x8b, 0xe3, 0x76, 0x1a, 0xd6, 0x61, 0xb5, 0x76, 0x84, 0x6a, 0x2f, 0x57, 0xbb, 0xee, 0xc1,
- 0x8d, 0xec, 0x23, 0xe2, 0xf9, 0x89, 0x86, 0x3b, 0x44, 0xa6, 0x84, 0x45, 0xf6, 0xdc, 0x83, 0x1b,
- 0xfa, 0x0e, 0x64, 0xb0, 0x33, 0x5a, 0x8d, 0xd7, 0x51, 0xf5, 0xc0, 0xee, 0x90, 0xa5, 0x71, 0x22,
- 0xa2, 0x34, 0x09, 0x16, 0x5c, 0xda, 0x62, 0x80, 0x4d, 0xbb, 0x8e, 0xf2, 0xc3, 0x3b, 0xdb, 0xe5,
- 0xf2, 0xaa, 0x91, 0xe6, 0x2c, 0x6b, 0x76, 0x07, 0x07, 0xd4, 0xa1, 0xed, 0x19, 0x38, 0x4d, 0x03,
- 0xea, 0xd0, 0xe6, 0xe6, 0xbd, 0x0a, 0xd3, 0xb5, 0x1a, 0xbd, 0xe6, 0x46, 0xad, 0xca, 0xee, 0xb1,
- 0x9c, 0xac, 0x16, 0x30, 0x56, 0xad, 0x76, 0x9b, 0x0a, 0xb0, 0x18, 0x77, 0xf4, 0x9b, 0x70, 0xda,
- 0x37, 0x96, 0x08, 0x9c, 0x0a, 0x5d, 0xa5, 0x0c, 0xbd, 0x0a, 0xd3, 0xed, 0xe3, 0x30, 0x50, 0x0f,
- 0x9c, 0xb1, 0x7d, 0x2c, 0xc3, 0xae, 0xc3, 0xa9, 0xf6, 0x51, 0x3b, 0x8c, 0x5b, 0x14, 0x71, 0x7a,
- 0xfb, 0xa8, 0x2d, 0x03, 0x1f, 0x27, 0x37, 0xdc, 0x1d, 0x54, 0x33, 0x5d, 0x54, 0xcf, 0x3e, 0x24,
- 0x8a, 0x0b, 0x13, 0xfa, 0x45, 0xd0, 0x6a, 0xb5, 0x2a, 0xb2, 0xcc, 0xfd, 0x26, 0xaa, 0x9a, 0x1d,
- 0x64, 0x99, 0x4e, 0x76, 0x5e, 0x14, 0x9e, 0xa8, 0xd5, 0xca, 0x64, 0xb6, 0x40, 0x26, 0xf5, 0x45,
- 0x98, 0xb2, 0xf7, 0x5f, 0xaa, 0xd1, 0x90, 0xac, 0xb6, 0x3b, 0xe8, 0xa0, 0xf1, 0x5a, 0xf6, 0x3c,
- 0xb1, 0xef, 0x24, 0x9e, 0x20, 0x01, 0xb9, 0x4d, 0x86, 0xf5, 0x27, 0x41, 0xab, 0x39, 0x47, 0x66,
- 0xa7, 0x4d, 0x6a, 0xb2, 0xd3, 0x36, 0x6b, 0x28, 0xfb, 0x38, 0x15, 0xa5, 0xe3, 0x15, 0x3e, 0x8c,
- 0x53, 0xc2, 0x79, 0xb5, 0x71, 0xe0, 0x72, 0xc6, 0x27, 0x68, 0x4a, 0x90, 0x31, 0xc6, 0xb6, 0x00,
- 0x1a, 0x36, 0x45, 0xe0, 0xc4, 0x0b, 0x44, 0x6c, 0xa2, 0x7d, 0xd4, 0x16, 0xcf, 0xfb, 0x18, 0x8c,
- 0x63, 0x49, 0xff, 0xa4, 0x4f, 0xd2, 0x86, 0xac, 0x7d, 0x24, 0x9c, 0xf1, 0x03, 0xeb, 0x8d, 0x73,
- 0x79, 0xc8, 0x88, 0xf1, 0xa9, 0x8f, 0x01, 0x8d, 0x50, 0x4d, 0xc1, 0xcd, 0x4a, 0x69, 0x6b, 0x15,
- 0xb7, 0x19, 0x9f, 0x2a, 0x6b, 0x09, 0xdc, 0xee, 0x6c, 0xac, 0xef, 0x96, 0xab, 0xc6, 0x5e, 0x65,
- 0x77, 0x7d, 0xb3, 0xac, 0xa9, 0x62, 0x5f, 0xfd, 0xad, 0x04, 0x4c, 0x04, 0x6f, 0x91, 0xf4, 0x8f,
- 0xc1, 0x43, 0xfc, 0x79, 0x86, 0x83, 0xdc, 0xea, 0xab, 0x8d, 0x0e, 0x49, 0x99, 0x96, 0x49, 0x97,
- 0x2f, 0xcf, 0x69, 0xa7, 0x98, 0xd4, 0x0e, 0x72, 0x9f, 0x6f, 0x74, 0x70, 0x42, 0xb4, 0x4c, 0x57,
- 0xdf, 0x80, 0x79, 0xcb, 0xae, 0x3a, 0xae, 0x69, 0xd5, 0xcd, 0x4e, 0xbd, 0xea, 0x3f, 0x49, 0xaa,
- 0x9a, 0xb5, 0x1a, 0x72, 0x1c, 0x9b, 0x2e, 0x55, 0x1e, 0xcb, 0x19, 0xcb, 0xde, 0x61, 0xc2, 0x7e,
- 0x0d, 0x2f, 0x30, 0x51, 0x29, 0xc0, 0xd4, 0x5e, 0x01, 0xf6, 0x08, 0x8c, 0xb5, 0xcc, 0x76, 0x15,
- 0x59, 0x6e, 0xe7, 0x98, 0x34, 0xc6, 0x29, 0x23, 0xd5, 0x32, 0xdb, 0x65, 0x7c, 0xfc, 0xd3, 0xb9,
- 0x3f, 0xf9, 0xaf, 0x2a, 0x64, 0xc4, 0xe6, 0x18, 0xdf, 0x6b, 0xd4, 0xc8, 0x3a, 0xa2, 0x90, 0x4a,
- 0xf3, 0x58, 0xdf, 0x56, 0x7a, 0xa9, 0x84, 0x17, 0x98, 0xfc, 0x08, 0x6d, 0x59, 0x0d, 0x8a, 0xc4,
- 0x8b, 0x3b, 0xae, 0x2d, 0x88, 0xb6, 0x08, 0x29, 0x83, 0x1d, 0xe9, 0xb7, 0x61, 0xe4, 0x25, 0x87,
- 0x70, 0x8f, 0x10, 0xee, 0xf3, 0xfd, 0xb9, 0xef, 0xec, 0x10, 0xf2, 0xb1, 0x3b, 0x3b, 0xd5, 0xca,
- 0x96, 0xb1, 0x59, 0xd8, 0x30, 0x18, 0x5c, 0x7f, 0x18, 0x92, 0x4d, 0xf3, 0xf5, 0xe3, 0xe0, 0x52,
- 0x44, 0x86, 0x06, 0x35, 0xfc, 0xc3, 0x90, 0x7c, 0x15, 0x99, 0x2f, 0x07, 0x17, 0x00, 0x32, 0xf4,
- 0x01, 0x86, 0xfe, 0x45, 0x18, 0x26, 0xf6, 0xd2, 0x01, 0x98, 0xc5, 0xb4, 0x21, 0x3d, 0x05, 0xc9,
- 0xd2, 0x96, 0x81, 0xc3, 0x5f, 0x83, 0x0c, 0x1d, 0xad, 0x6e, 0xaf, 0x97, 0x4b, 0x65, 0x2d, 0x91,
- 0xbb, 0x0a, 0x23, 0xd4, 0x08, 0x38, 0x35, 0x3c, 0x33, 0x68, 0x43, 0xec, 0x90, 0x71, 0x28, 0x7c,
- 0x76, 0x6f, 0xb3, 0x58, 0x36, 0xb4, 0x84, 0xe8, 0x5e, 0x07, 0x32, 0x62, 0x5f, 0xfc, 0xd3, 0x89,
- 0xa9, 0x6f, 0x2a, 0x90, 0x16, 0xfa, 0x5c, 0xdc, 0xa0, 0x98, 0xcd, 0xa6, 0xfd, 0x6a, 0xd5, 0x6c,
- 0x36, 0x4c, 0x87, 0x05, 0x05, 0x90, 0xa1, 0x02, 0x1e, 0x19, 0xd4, 0x69, 0x3f, 0x15, 0xe5, 0xbf,
- 0xa8, 0x80, 0x26, 0xb7, 0x98, 0x92, 0x82, 0xca, 0xcf, 0x54, 0xc1, 0xcf, 0x2b, 0x30, 0x11, 0xec,
- 0x2b, 0x25, 0xf5, 0xce, 0xfd, 0x4c, 0xd5, 0xfb, 0x6e, 0x02, 0xc6, 0x03, 0xdd, 0xe4, 0xa0, 0xda,
- 0xfd, 0x3c, 0x4c, 0x35, 0xea, 0xa8, 0xd5, 0xb6, 0x5d, 0x64, 0xd5, 0x8e, 0xab, 0x4d, 0xf4, 0x0a,
- 0x6a, 0x66, 0x73, 0xa4, 0x50, 0x5c, 0xec, 0xdf, 0xaf, 0x2e, 0xad, 0xfb, 0xb8, 0x0d, 0x0c, 0xcb,
- 0x4f, 0xaf, 0xaf, 0x96, 0x37, 0xb7, 0xb7, 0x76, 0xcb, 0x95, 0xd2, 0xdd, 0xea, 0x5e, 0xe5, 0xe3,
- 0x95, 0xad, 0xe7, 0x2b, 0x86, 0xd6, 0x90, 0xc4, 0x3e, 0xc0, 0x54, 0xdf, 0x06, 0x4d, 0x56, 0x4a,
- 0x7f, 0x08, 0xa2, 0xd4, 0xd2, 0x86, 0xf4, 0x69, 0x98, 0xac, 0x6c, 0x55, 0x77, 0xd6, 0x57, 0xcb,
- 0xd5, 0xf2, 0xda, 0x5a, 0xb9, 0xb4, 0xbb, 0x43, 0x9f, 0x40, 0x78, 0xd2, 0xbb, 0xc1, 0xa4, 0xfe,
- 0x9c, 0x0a, 0xd3, 0x11, 0x9a, 0xe8, 0x05, 0x76, 0xef, 0x40, 0x6f, 0x67, 0x9e, 0x1a, 0x44, 0xfb,
- 0x25, 0xbc, 0xe4, 0x6f, 0x9b, 0x1d, 0x97, 0xdd, 0x6a, 0x3c, 0x09, 0xd8, 0x4a, 0x96, 0xdb, 0x38,
- 0x68, 0xa0, 0x0e, 0x7b, 0x60, 0x43, 0x6f, 0x28, 0x26, 0xfd, 0x71, 0xfa, 0xcc, 0xe6, 0xa3, 0xa0,
- 0xb7, 0x6d, 0xa7, 0xe1, 0x36, 0x5e, 0x41, 0xd5, 0x86, 0xc5, 0x9f, 0xee, 0xe0, 0x1b, 0x8c, 0xa4,
- 0xa1, 0xf1, 0x99, 0x75, 0xcb, 0xf5, 0xa4, 0x2d, 0x74, 0x68, 0x4a, 0xd2, 0xb8, 0x80, 0xab, 0x86,
- 0xc6, 0x67, 0x3c, 0xe9, 0x73, 0x90, 0xa9, 0xdb, 0x5d, 0xdc, 0x75, 0x51, 0x39, 0xbc, 0x5e, 0x28,
- 0x46, 0x9a, 0x8e, 0x79, 0x22, 0xac, 0x9f, 0xf6, 0x1f, 0x2b, 0x65, 0x8c, 0x34, 0x1d, 0xa3, 0x22,
- 0x4f, 0xc0, 0xa4, 0x79, 0x78, 0xd8, 0xc1, 0xe4, 0x9c, 0x88, 0xde, 0x21, 0x4c, 0x78, 0xc3, 0x44,
- 0x70, 0xf6, 0x0e, 0xa4, 0xb8, 0x1d, 0xf0, 0x92, 0x8c, 0x2d, 0x51, 0x6d, 0xd3, 0xdb, 0xde, 0xc4,
- 0xc2, 0x98, 0x91, 0xb2, 0xf8, 0xe4, 0x39, 0xc8, 0x34, 0x9c, 0xaa, 0xff, 0x94, 0x3c, 0x71, 0x36,
- 0xb1, 0x90, 0x32, 0xd2, 0x0d, 0xc7, 0x7b, 0xc2, 0x98, 0xfb, 0x4a, 0x02, 0x26, 0x82, 0x4f, 0xf9,
- 0xf5, 0x55, 0x48, 0x35, 0xed, 0x9a, 0x49, 0x42, 0x8b, 0x6e, 0x31, 0x2d, 0xc4, 0x6c, 0x0c, 0x2c,
- 0x6d, 0x30, 0x79, 0xc3, 0x43, 0xce, 0xfe, 0x47, 0x05, 0x52, 0x7c, 0x58, 0x9f, 0x81, 0x64, 0xdb,
- 0x74, 0x8f, 0x08, 0xdd, 0x70, 0x31, 0xa1, 0x29, 0x06, 0x39, 0xc6, 0xe3, 0x4e, 0xdb, 0xb4, 0x48,
- 0x08, 0xb0, 0x71, 0x7c, 0x8c, 0xfd, 0xda, 0x44, 0x66, 0x9d, 0xdc, 0x7e, 0xd8, 0xad, 0x16, 0xb2,
- 0x5c, 0x87, 0xfb, 0x95, 0x8d, 0x97, 0xd8, 0xb0, 0xfe, 0x11, 0x98, 0x72, 0x3b, 0x66, 0xa3, 0x19,
- 0x90, 0x4d, 0x12, 0x59, 0x8d, 0x4f, 0x78, 0xc2, 0x79, 0x78, 0x98, 0xf3, 0xd6, 0x91, 0x6b, 0xd6,
- 0x8e, 0x50, 0xdd, 0x07, 0x8d, 0x90, 0xc7, 0x0c, 0x0f, 0x31, 0x81, 0x55, 0x36, 0xcf, 0xb1, 0xb9,
- 0x3f, 0x54, 0x60, 0x8a, 0xdf, 0x30, 0xd5, 0x3d, 0x63, 0x6d, 0x02, 0x98, 0x96, 0x65, 0xbb, 0xa2,
- 0xb9, 0xc2, 0xa1, 0x1c, 0xc2, 0x2d, 0x15, 0x3c, 0x90, 0x21, 0x10, 0xcc, 0xb6, 0x00, 0xfc, 0x99,
- 0x9e, 0x66, 0x9b, 0x87, 0x34, 0xdb, 0xc2, 0x21, 0xfb, 0x80, 0xf4, 0x16, 0x1b, 0xe8, 0x10, 0xbe,
- 0xb3, 0xd2, 0x4f, 0xc1, 0xf0, 0x3e, 0x3a, 0x6c, 0x58, 0xec, 0xc1, 0x2c, 0x3d, 0xe0, 0x0f, 0x42,
- 0x92, 0xde, 0x83, 0x90, 0xe2, 0x8b, 0x30, 0x5d, 0xb3, 0x5b, 0xb2, 0xba, 0x45, 0x4d, 0xba, 0xcd,
- 0x77, 0x9e, 0x53, 0x3e, 0x05, 0x7e, 0x8b, 0xf9, 0x63, 0x45, 0xf9, 0xd5, 0x84, 0x7a, 0x7b, 0xbb,
- 0xf8, 0x5b, 0x89, 0xd9, 0xdb, 0x14, 0xba, 0xcd, 0xaf, 0xd4, 0x40, 0x07, 0x4d, 0x54, 0xc3, 0xda,
- 0xc3, 0x6f, 0x7c, 0x04, 0x9e, 0x3a, 0x6c, 0xb8, 0x47, 0xdd, 0xfd, 0xa5, 0x9a, 0xdd, 0xba, 0x78,
- 0x68, 0x1f, 0xda, 0xfe, 0xd6, 0x27, 0x3e, 0x22, 0x07, 0xe4, 0x13, 0xdb, 0xfe, 0x1c, 0xf3, 0x46,
- 0x67, 0x63, 0xf7, 0x4a, 0xf3, 0x15, 0x98, 0x66, 0xc2, 0x55, 0xb2, 0xff, 0x42, 0xef, 0x22, 0xf4,
- 0xbe, 0xcf, 0xb0, 0xb2, 0xbf, 0xfd, 0x7d, 0xb2, 0x5c, 0x1b, 0x53, 0x0c, 0x8a, 0xe7, 0xe8, 0x8d,
- 0x46, 0xde, 0x80, 0xd3, 0x01, 0x3e, 0x9a, 0x9a, 0xa8, 0x13, 0xc3, 0xf8, 0x2d, 0xc6, 0x38, 0x2d,
- 0x30, 0xee, 0x30, 0x68, 0xbe, 0x04, 0xe3, 0x27, 0xe1, 0xfa, 0x77, 0x8c, 0x2b, 0x83, 0x44, 0x92,
- 0xdb, 0x30, 0x49, 0x48, 0x6a, 0x5d, 0xc7, 0xb5, 0x5b, 0xa4, 0xee, 0xf5, 0xa7, 0xf9, 0xf7, 0xdf,
- 0xa7, 0xb9, 0x32, 0x81, 0x61, 0x25, 0x0f, 0x95, 0xcf, 0x03, 0xd9, 0x72, 0xaa, 0xa3, 0x5a, 0x33,
- 0x86, 0xe1, 0x1e, 0x53, 0xc4, 0x93, 0xcf, 0x7f, 0x12, 0x4e, 0xe1, 0xcf, 0xa4, 0x2c, 0x89, 0x9a,
- 0xc4, 0x3f, 0xf0, 0xca, 0xfe, 0xe1, 0xa7, 0x69, 0x3a, 0x4e, 0x7b, 0x04, 0x82, 0x4e, 0x82, 0x17,
- 0x0f, 0x91, 0xeb, 0xa2, 0x8e, 0x53, 0x35, 0x9b, 0x51, 0xea, 0x09, 0x4f, 0x0c, 0xb2, 0xbf, 0xf2,
- 0xc3, 0xa0, 0x17, 0x6f, 0x53, 0x64, 0xa1, 0xd9, 0xcc, 0xef, 0xc1, 0x43, 0x11, 0x51, 0x31, 0x00,
- 0xe7, 0xe7, 0x18, 0xe7, 0xa9, 0x50, 0x64, 0x60, 0xda, 0x6d, 0xe0, 0xe3, 0x9e, 0x2f, 0x07, 0xe0,
- 0xfc, 0x47, 0x8c, 0x53, 0x67, 0x58, 0xee, 0x52, 0xcc, 0x78, 0x07, 0xa6, 0x5e, 0x41, 0x9d, 0x7d,
- 0xdb, 0x61, 0x4f, 0x69, 0x06, 0xa0, 0xfb, 0x3c, 0xa3, 0x9b, 0x64, 0x40, 0xf2, 0xd8, 0x06, 0x73,
- 0xdd, 0x84, 0xd4, 0x81, 0x59, 0x43, 0x03, 0x50, 0x7c, 0x81, 0x51, 0x8c, 0x62, 0x79, 0x0c, 0x2d,
- 0x40, 0xe6, 0xd0, 0x66, 0x2b, 0x53, 0x3c, 0xfc, 0x8b, 0x0c, 0x9e, 0xe6, 0x18, 0x46, 0xd1, 0xb6,
- 0xdb, 0xdd, 0x26, 0x5e, 0xb6, 0xe2, 0x29, 0xbe, 0xc4, 0x29, 0x38, 0x86, 0x51, 0x9c, 0xc0, 0xac,
- 0x6f, 0x72, 0x0a, 0x47, 0xb0, 0xe7, 0xb3, 0x90, 0xb6, 0xad, 0xe6, 0xb1, 0x6d, 0x0d, 0xa2, 0xc4,
- 0x97, 0x19, 0x03, 0x30, 0x08, 0x26, 0xb8, 0x05, 0x63, 0x83, 0x3a, 0xe2, 0xd7, 0x7f, 0xc8, 0xd3,
- 0x83, 0x7b, 0xe0, 0x36, 0x4c, 0xf2, 0x02, 0xd5, 0xb0, 0xad, 0x01, 0x28, 0x7e, 0x83, 0x51, 0x4c,
- 0x08, 0x30, 0x76, 0x19, 0x2e, 0x72, 0xdc, 0x43, 0x34, 0x08, 0xc9, 0x57, 0xf8, 0x65, 0x30, 0x08,
- 0x33, 0xe5, 0x3e, 0xb2, 0x6a, 0x47, 0x83, 0x31, 0x7c, 0x95, 0x9b, 0x92, 0x63, 0x30, 0x45, 0x09,
- 0xc6, 0x5b, 0x66, 0xc7, 0x39, 0x32, 0x9b, 0x03, 0xb9, 0xe3, 0x37, 0x19, 0x47, 0xc6, 0x03, 0x31,
- 0x8b, 0x74, 0xad, 0x93, 0xd0, 0xfc, 0x16, 0xb7, 0x88, 0x00, 0x63, 0xa9, 0xe7, 0xb8, 0xe4, 0x91,
- 0xd6, 0x49, 0xd8, 0xfe, 0x31, 0x4f, 0x3d, 0x8a, 0xdd, 0x14, 0x19, 0x6f, 0xc1, 0x98, 0xd3, 0x78,
- 0x7d, 0x20, 0x9a, 0x7f, 0xc2, 0x3d, 0x4d, 0x00, 0x18, 0x7c, 0x17, 0x1e, 0x8e, 0x5c, 0x26, 0x06,
- 0x20, 0xfb, 0xa7, 0x8c, 0x6c, 0x26, 0x62, 0xa9, 0x60, 0x25, 0xe1, 0xa4, 0x94, 0xff, 0x8c, 0x97,
- 0x04, 0x24, 0x71, 0x6d, 0xe3, 0x7b, 0x05, 0xc7, 0x3c, 0x38, 0x99, 0xd5, 0xfe, 0x39, 0xb7, 0x1a,
- 0xc5, 0x06, 0xac, 0xb6, 0x0b, 0x33, 0x8c, 0xf1, 0x64, 0x7e, 0xfd, 0x1a, 0x2f, 0xac, 0x14, 0xbd,
- 0x17, 0xf4, 0xee, 0x8b, 0x30, 0xeb, 0x99, 0x93, 0x37, 0xa5, 0x4e, 0xb5, 0x65, 0xb6, 0x07, 0x60,
- 0xfe, 0x6d, 0xc6, 0xcc, 0x2b, 0xbe, 0xd7, 0xd5, 0x3a, 0x9b, 0x66, 0x1b, 0x93, 0xbf, 0x00, 0x59,
- 0x4e, 0xde, 0xb5, 0x3a, 0xa8, 0x66, 0x1f, 0x5a, 0x8d, 0xd7, 0x51, 0x7d, 0x00, 0xea, 0xaf, 0x4b,
- 0xae, 0xda, 0x13, 0xe0, 0x98, 0x79, 0x1d, 0x34, 0xaf, 0x57, 0xa9, 0x36, 0x5a, 0x6d, 0xbb, 0xe3,
- 0xc6, 0x30, 0xfe, 0x0e, 0xf7, 0x94, 0x87, 0x5b, 0x27, 0xb0, 0x7c, 0x19, 0x26, 0xc8, 0xe1, 0xa0,
- 0x21, 0xf9, 0xbb, 0x8c, 0x68, 0xdc, 0x47, 0xb1, 0xc2, 0x51, 0xb3, 0x5b, 0x6d, 0xb3, 0x33, 0x48,
- 0xfd, 0xfb, 0x17, 0xbc, 0x70, 0x30, 0x08, 0x2b, 0x1c, 0xee, 0x71, 0x1b, 0xe1, 0xd5, 0x7e, 0x00,
- 0x86, 0x6f, 0xf0, 0xc2, 0xc1, 0x31, 0x8c, 0x82, 0x37, 0x0c, 0x03, 0x50, 0xfc, 0x4b, 0x4e, 0xc1,
- 0x31, 0x98, 0xe2, 0x13, 0xfe, 0x42, 0xdb, 0x41, 0x87, 0x0d, 0xc7, 0xed, 0xd0, 0x56, 0xb8, 0x3f,
- 0xd5, 0xef, 0xfd, 0x30, 0xd8, 0x84, 0x19, 0x02, 0x14, 0x57, 0x22, 0xf6, 0x08, 0x95, 0xdc, 0x29,
- 0xc5, 0x2b, 0xf6, 0xfb, 0xbc, 0x12, 0x09, 0x30, 0xac, 0x9b, 0xd0, 0x21, 0x62, 0xb3, 0xd7, 0xf0,
- 0xfd, 0xc1, 0x00, 0x74, 0xdf, 0x94, 0x94, 0xdb, 0xe1, 0x58, 0xcc, 0x29, 0xf4, 0x3f, 0x5d, 0xeb,
- 0x65, 0x74, 0x3c, 0x50, 0x74, 0xfe, 0x2b, 0xa9, 0xff, 0xd9, 0xa3, 0x48, 0x5a, 0x43, 0x26, 0xa5,
- 0x7e, 0x4a, 0x8f, 0x7b, 0x59, 0x27, 0xfb, 0x97, 0xdf, 0x65, 0xd7, 0x1b, 0x6c, 0xa7, 0xf2, 0x1b,
- 0x38, 0xc8, 0x83, 0x4d, 0x4f, 0x3c, 0xd9, 0xa7, 0xdf, 0xf5, 0xe2, 0x3c, 0xd0, 0xf3, 0xe4, 0xd7,
- 0x60, 0x3c, 0xd0, 0xf0, 0xc4, 0x53, 0xfd, 0x15, 0x46, 0x95, 0x11, 0xfb, 0x9d, 0xfc, 0x55, 0x48,
- 0xe2, 0xe6, 0x25, 0x1e, 0xfe, 0x57, 0x19, 0x9c, 0x88, 0xe7, 0x9f, 0x86, 0x14, 0x6f, 0x5a, 0xe2,
- 0xa1, 0xbf, 0xc8, 0xa0, 0x1e, 0x04, 0xc3, 0x79, 0xc3, 0x12, 0x0f, 0xff, 0x6b, 0x1c, 0xce, 0x21,
- 0x18, 0x3e, 0xb8, 0x09, 0xdf, 0xfa, 0x1b, 0x49, 0xb6, 0xe8, 0x70, 0xdb, 0xdd, 0x82, 0x51, 0xd6,
- 0xa9, 0xc4, 0xa3, 0x7f, 0x89, 0x9d, 0x9c, 0x23, 0xf2, 0xd7, 0x61, 0x78, 0x40, 0x83, 0xff, 0x4d,
- 0x06, 0xa5, 0xf2, 0xf9, 0x12, 0xa4, 0x85, 0xee, 0x24, 0x1e, 0xfe, 0xb7, 0x18, 0x5c, 0x44, 0x61,
- 0xd5, 0x59, 0x77, 0x12, 0x4f, 0xf0, 0xb7, 0xb9, 0xea, 0x0c, 0x81, 0xcd, 0xc6, 0x1b, 0x93, 0x78,
- 0xf4, 0xdf, 0xe1, 0x56, 0xe7, 0x90, 0xfc, 0xb3, 0x30, 0xe6, 0x2d, 0x36, 0xf1, 0xf8, 0xbf, 0xcb,
- 0xf0, 0x3e, 0x06, 0x5b, 0x40, 0x58, 0xec, 0xe2, 0x29, 0xfe, 0x1e, 0xb7, 0x80, 0x80, 0xc2, 0x69,
- 0x24, 0x37, 0x30, 0xf1, 0x4c, 0xbf, 0xcc, 0xd3, 0x48, 0xea, 0x5f, 0xb0, 0x37, 0x49, 0xcd, 0x8f,
- 0xa7, 0xf8, 0xfb, 0xdc, 0x9b, 0x44, 0x1e, 0xab, 0x21, 0x77, 0x04, 0xf1, 0x1c, 0xff, 0x90, 0xab,
- 0x21, 0x35, 0x04, 0xf9, 0x6d, 0xd0, 0xc3, 0xdd, 0x40, 0x3c, 0xdf, 0x67, 0x19, 0xdf, 0x54, 0xa8,
- 0x19, 0xc8, 0x3f, 0x0f, 0x33, 0xd1, 0x9d, 0x40, 0x3c, 0xeb, 0xaf, 0xbc, 0x2b, 0xdd, 0xbb, 0x89,
- 0x8d, 0x40, 0x7e, 0xd7, 0x5f, 0x52, 0xc4, 0x2e, 0x20, 0x9e, 0xf6, 0x73, 0xef, 0x06, 0x0b, 0xb7,
- 0xd8, 0x04, 0xe4, 0x0b, 0x00, 0xfe, 0x02, 0x1c, 0xcf, 0xf5, 0x79, 0xc6, 0x25, 0x80, 0x70, 0x6a,
- 0xb0, 0xf5, 0x37, 0x1e, 0xff, 0x05, 0x9e, 0x1a, 0x0c, 0x81, 0x53, 0x83, 0x2f, 0xbd, 0xf1, 0xe8,
- 0x2f, 0xf2, 0xd4, 0xe0, 0x10, 0x1c, 0xd9, 0xc2, 0xea, 0x16, 0xcf, 0xf0, 0x65, 0x1e, 0xd9, 0x02,
- 0x2a, 0x5f, 0x81, 0xa9, 0xd0, 0x82, 0x18, 0x4f, 0xf5, 0xab, 0x8c, 0x4a, 0x93, 0xd7, 0x43, 0x71,
- 0xf1, 0x62, 0x8b, 0x61, 0x3c, 0xdb, 0xaf, 0x49, 0x8b, 0x17, 0x5b, 0x0b, 0xf3, 0xb7, 0x20, 0x65,
- 0x75, 0x9b, 0x4d, 0x9c, 0x3c, 0x7a, 0xff, 0x17, 0xec, 0xb2, 0xff, 0xfd, 0x27, 0xcc, 0x3a, 0x1c,
- 0x90, 0xbf, 0x0a, 0xc3, 0xa8, 0xb5, 0x8f, 0xea, 0x71, 0xc8, 0xff, 0xf1, 0x13, 0x5e, 0x30, 0xb1,
- 0x74, 0xfe, 0x59, 0x00, 0xfa, 0x68, 0x84, 0x6c, 0xfb, 0xc5, 0x60, 0xff, 0xe7, 0x4f, 0xd8, 0xab,
- 0x2f, 0x3e, 0xc4, 0x27, 0xa0, 0x2f, 0xd2, 0xf4, 0x27, 0xf8, 0x61, 0x90, 0x80, 0x78, 0xe4, 0x26,
- 0x8c, 0xbe, 0xe4, 0xd8, 0x96, 0x6b, 0x1e, 0xc6, 0xa1, 0xff, 0x17, 0x43, 0x73, 0x79, 0x6c, 0xb0,
- 0x96, 0xdd, 0x41, 0xae, 0x79, 0xe8, 0xc4, 0x61, 0xff, 0x37, 0xc3, 0x7a, 0x00, 0x0c, 0xae, 0x99,
- 0x8e, 0x3b, 0xc8, 0x75, 0xff, 0x31, 0x07, 0x73, 0x00, 0x56, 0x1a, 0x7f, 0x7e, 0x19, 0x1d, 0xc7,
- 0x61, 0x7f, 0xc4, 0x95, 0x66, 0xf2, 0xf9, 0xa7, 0x61, 0x0c, 0x7f, 0xa4, 0xef, 0xb3, 0xc5, 0x80,
- 0xff, 0x0f, 0x03, 0xfb, 0x08, 0x7c, 0x66, 0xc7, 0xad, 0xbb, 0x8d, 0x78, 0x63, 0xff, 0x09, 0xf3,
- 0x34, 0x97, 0xcf, 0x17, 0x20, 0xed, 0xb8, 0xf5, 0x7a, 0x97, 0xf5, 0xa7, 0x31, 0xf0, 0xff, 0xfb,
- 0x13, 0xef, 0x91, 0x85, 0x87, 0xc1, 0xde, 0x7e, 0xf5, 0x65, 0xb7, 0x6d, 0x93, 0x6d, 0x8e, 0x38,
- 0x86, 0x77, 0x19, 0x83, 0x00, 0x29, 0x96, 0xa3, 0x1f, 0xdf, 0xc2, 0x6d, 0xfb, 0xb6, 0x4d, 0x1f,
- 0xdc, 0x7e, 0x2a, 0x17, 0xff, 0x04, 0x16, 0xfe, 0x5b, 0x13, 0xae, 0xf7, 0x14, 0xc3, 0x4b, 0xf1,
- 0xc5, 0x9a, 0xdd, 0xda, 0xb7, 0x9d, 0x8b, 0xfb, 0xb6, 0x7b, 0x74, 0xd1, 0x3d, 0x42, 0x78, 0x8c,
- 0x3d, 0xb2, 0x4d, 0xe2, 0xcf, 0xb3, 0x27, 0x7b, 0xce, 0x4b, 0x76, 0xf1, 0x2b, 0x0d, 0x7c, 0x69,
- 0x15, 0xb2, 0x91, 0xa2, 0x9f, 0x81, 0x11, 0x72, 0xb1, 0x97, 0xc9, 0x66, 0xa5, 0x52, 0x4c, 0xde,
- 0x7b, 0x7b, 0x7e, 0xc8, 0x60, 0x63, 0xde, 0xec, 0x32, 0x79, 0xd2, 0x9d, 0x08, 0xcc, 0x2e, 0x7b,
- 0xb3, 0x57, 0xe8, 0xc3, 0xee, 0xc0, 0xec, 0x15, 0x6f, 0x76, 0x85, 0x3c, 0xf6, 0x56, 0x03, 0xb3,
- 0x2b, 0xde, 0xec, 0x55, 0xb2, 0xb5, 0x33, 0x1e, 0x98, 0xbd, 0xea, 0xcd, 0x5e, 0x23, 0x1b, 0x3a,
- 0xc9, 0xc0, 0xec, 0x35, 0x6f, 0xf6, 0x3a, 0xd9, 0xcb, 0x99, 0x0a, 0xcc, 0x5e, 0xf7, 0x66, 0x6f,
- 0x90, 0x3d, 0x1c, 0x3d, 0x30, 0x7b, 0xc3, 0x9b, 0xbd, 0x49, 0x5e, 0x90, 0x1a, 0x0d, 0xcc, 0xde,
- 0xd4, 0xe7, 0x60, 0x94, 0x5e, 0xf9, 0x25, 0xb2, 0xe1, 0x3f, 0xc9, 0xa6, 0xf9, 0xa0, 0x3f, 0x7f,
- 0x99, 0xbc, 0x0c, 0x35, 0x12, 0x9c, 0xbf, 0xec, 0xcf, 0x2f, 0x93, 0xef, 0x65, 0x68, 0xc1, 0xf9,
- 0x65, 0x7f, 0xfe, 0x4a, 0x76, 0x9c, 0xbc, 0x10, 0x16, 0x98, 0xbf, 0xe2, 0xcf, 0xaf, 0x64, 0x27,
- 0x70, 0xc6, 0x04, 0xe7, 0x57, 0xfc, 0xf9, 0xab, 0xd9, 0xc9, 0xb3, 0xca, 0x42, 0x26, 0x38, 0x7f,
- 0x35, 0xf7, 0x0b, 0xc4, 0xbd, 0x96, 0xef, 0xde, 0x99, 0xa0, 0x7b, 0x3d, 0xc7, 0xce, 0x04, 0x1d,
- 0xeb, 0xb9, 0x74, 0x26, 0xe8, 0x52, 0xcf, 0x99, 0x33, 0x41, 0x67, 0x7a, 0x6e, 0x9c, 0x09, 0xba,
- 0xd1, 0x73, 0xe0, 0x4c, 0xd0, 0x81, 0x9e, 0xeb, 0x66, 0x82, 0xae, 0xf3, 0x9c, 0x36, 0x13, 0x74,
- 0x9a, 0xe7, 0xae, 0x99, 0xa0, 0xbb, 0x3c, 0x47, 0x65, 0x25, 0x47, 0xf9, 0x2e, 0xca, 0x4a, 0x2e,
- 0xf2, 0x9d, 0x93, 0x95, 0x9c, 0xe3, 0xbb, 0x25, 0x2b, 0xb9, 0xc5, 0x77, 0x48, 0x56, 0x72, 0x88,
- 0xef, 0x8a, 0xac, 0xe4, 0x0a, 0xdf, 0x09, 0x2c, 0xc7, 0x0c, 0xd4, 0x8e, 0xc8, 0x31, 0xb5, 0x6f,
- 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6, 0x98, 0xda,
- 0x37, 0xc7, 0xd4, 0xbe, 0x39, 0xa6, 0xf6, 0xcd, 0x31, 0xb5, 0x7f, 0x8e, 0xa9, 0x31, 0x39, 0xa6,
- 0xc6, 0xe4, 0x98, 0x1a, 0x93, 0x63, 0x6a, 0x4c, 0x8e, 0xa9, 0x31, 0x39, 0xa6, 0xf6, 0xcc, 0x31,
- 0xdf, 0xbd, 0x33, 0x41, 0xf7, 0x46, 0xe6, 0x98, 0xda, 0x23, 0xc7, 0xd4, 0x1e, 0x39, 0xa6, 0xf6,
- 0xc8, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53,
- 0x7b, 0xe5, 0x98, 0xda, 0x33, 0xc7, 0xd4, 0x9e, 0x39, 0xa6, 0xf6, 0xcc, 0x31, 0xb5, 0x67, 0x8e,
- 0xa9, 0x3d, 0x73, 0x4c, 0x15, 0x73, 0xec, 0x5f, 0xab, 0xa0, 0xd3, 0x1c, 0xdb, 0x26, 0xaf, 0x8c,
- 0x31, 0x57, 0xcc, 0x49, 0x99, 0x36, 0x82, 0x5d, 0xa7, 0xf9, 0x2e, 0x99, 0x93, 0x72, 0x2d, 0x38,
- 0xbf, 0xec, 0xcd, 0xf3, 0x6c, 0x0b, 0xce, 0x5f, 0xf1, 0xe6, 0x79, 0xbe, 0x05, 0xe7, 0x57, 0xbc,
- 0x79, 0x9e, 0x71, 0xc1, 0xf9, 0xab, 0xde, 0x3c, 0xcf, 0xb9, 0xe0, 0xfc, 0x35, 0x6f, 0x9e, 0x67,
- 0x5d, 0x70, 0xfe, 0xba, 0x37, 0xcf, 0xf3, 0x2e, 0x38, 0x7f, 0xc3, 0x9b, 0xe7, 0x99, 0x17, 0x9c,
- 0xbf, 0xa9, 0x9f, 0x95, 0x73, 0x8f, 0x0b, 0x78, 0xae, 0x3d, 0x2b, 0x67, 0x9f, 0x24, 0x71, 0xd9,
- 0x97, 0xe0, 0xf9, 0x27, 0x49, 0x2c, 0xfb, 0x12, 0x3c, 0x03, 0x25, 0x89, 0x2b, 0xb9, 0xcf, 0x10,
- 0xf7, 0x59, 0xb2, 0xfb, 0x66, 0x25, 0xf7, 0x25, 0x04, 0xd7, 0xcd, 0x4a, 0xae, 0x4b, 0x08, 0x6e,
- 0x9b, 0x95, 0xdc, 0x96, 0x10, 0x5c, 0x36, 0x2b, 0xb9, 0x2c, 0x21, 0xb8, 0x6b, 0x56, 0x72, 0x57,
- 0x42, 0x70, 0xd5, 0xac, 0xe4, 0xaa, 0x84, 0xe0, 0xa6, 0x59, 0xc9, 0x4d, 0x09, 0xc1, 0x45, 0xb3,
- 0x92, 0x8b, 0x12, 0x82, 0x7b, 0x66, 0x25, 0xf7, 0x24, 0x04, 0xd7, 0x9c, 0x91, 0x5d, 0x93, 0x10,
- 0xdd, 0x72, 0x46, 0x76, 0x4b, 0x42, 0x74, 0xc9, 0x19, 0xd9, 0x25, 0x09, 0xd1, 0x1d, 0x67, 0x64,
- 0x77, 0x24, 0x44, 0x57, 0xfc, 0x69, 0x82, 0x77, 0x84, 0x3b, 0x6e, 0xa7, 0x5b, 0x73, 0xdf, 0x53,
- 0x47, 0x78, 0x29, 0xd0, 0x3e, 0xa4, 0x97, 0xf5, 0x25, 0xd2, 0xb0, 0x8a, 0x1d, 0xa7, 0xb4, 0x82,
- 0x5d, 0x0a, 0x34, 0x16, 0x02, 0xc2, 0x8a, 0x46, 0xac, 0xbc, 0xa7, 0xde, 0xf0, 0x52, 0xa0, 0xcd,
- 0x88, 0xd7, 0xef, 0xc6, 0x07, 0xde, 0xb1, 0xbd, 0x95, 0xe0, 0x1d, 0x1b, 0x33, 0xff, 0x49, 0x3b,
- 0xb6, 0xc5, 0x78, 0x93, 0x7b, 0xc6, 0x5e, 0x8c, 0x37, 0x76, 0x68, 0xd5, 0x19, 0xb4, 0x83, 0x5b,
- 0x8c, 0x37, 0xad, 0x67, 0xd4, 0xf7, 0xb7, 0xdf, 0x62, 0x11, 0x6c, 0xa0, 0x76, 0x44, 0x04, 0x9f,
- 0xb4, 0xdf, 0xba, 0x14, 0x28, 0x25, 0x27, 0x8d, 0x60, 0xf5, 0xc4, 0x11, 0x7c, 0xd2, 0xce, 0xeb,
- 0x52, 0xa0, 0xbc, 0x9c, 0x38, 0x82, 0x3f, 0x80, 0x7e, 0x88, 0x45, 0xb0, 0x6f, 0xfe, 0x93, 0xf6,
- 0x43, 0x8b, 0xf1, 0x26, 0x8f, 0x8c, 0x60, 0xf5, 0x04, 0x11, 0x3c, 0x48, 0x7f, 0xb4, 0x18, 0x6f,
- 0xda, 0xe8, 0x08, 0x7e, 0xcf, 0xdd, 0xcc, 0x97, 0x14, 0x98, 0xaa, 0x34, 0xea, 0xe5, 0xd6, 0x3e,
- 0xaa, 0xd7, 0x51, 0x9d, 0xd9, 0xf1, 0x52, 0xa0, 0x12, 0xf4, 0x70, 0xf5, 0xb7, 0xdf, 0x9e, 0xf7,
- 0x2d, 0x7c, 0x15, 0x52, 0xd4, 0xa6, 0x97, 0x2e, 0x65, 0xef, 0x29, 0x31, 0x15, 0xce, 0x13, 0xd5,
- 0xcf, 0x71, 0xd8, 0xe5, 0x4b, 0xd9, 0xff, 0xa4, 0x08, 0x55, 0xce, 0x1b, 0xce, 0xfd, 0x32, 0xd1,
- 0xd0, 0x7a, 0xcf, 0x1a, 0x5e, 0x1c, 0x48, 0x43, 0x41, 0xb7, 0x47, 0x42, 0xba, 0x09, 0x5a, 0x75,
- 0x61, 0xb2, 0xd2, 0xa8, 0x57, 0xc8, 0x2f, 0x02, 0x0c, 0xa2, 0x12, 0x95, 0x91, 0xea, 0xc1, 0xa5,
- 0x40, 0x58, 0x8a, 0x08, 0x2f, 0xa4, 0x83, 0x35, 0x22, 0xd7, 0xc0, 0xa7, 0xb5, 0x02, 0xa7, 0x5d,
- 0xec, 0x75, 0x5a, 0xbf, 0xb2, 0x7b, 0x27, 0x5c, 0xec, 0x75, 0x42, 0x3f, 0x87, 0xbc, 0x53, 0xbd,
- 0xc6, 0x17, 0x67, 0xfa, 0xe2, 0x96, 0x7e, 0x06, 0x12, 0xeb, 0xf4, 0xbd, 0xf2, 0x4c, 0x31, 0x83,
- 0x95, 0xfa, 0xce, 0xdb, 0xf3, 0xc9, 0xbd, 0x6e, 0xa3, 0x6e, 0x24, 0xd6, 0xeb, 0xfa, 0x1d, 0x18,
- 0xfe, 0x24, 0xfb, 0x5e, 0x2a, 0x16, 0x58, 0x61, 0x02, 0x1f, 0x8d, 0x79, 0xc4, 0x44, 0xa8, 0x97,
- 0xf6, 0x1a, 0x96, 0x7b, 0x79, 0xf9, 0x86, 0x41, 0x29, 0x72, 0x7f, 0x0e, 0x80, 0x9e, 0x73, 0xd5,
- 0x74, 0x8e, 0xf4, 0x0a, 0x67, 0xa6, 0xa7, 0xbe, 0xf1, 0x9d, 0xb7, 0xe7, 0x57, 0x06, 0x61, 0x7d,
- 0xaa, 0x6e, 0x3a, 0x47, 0x4f, 0xb9, 0xc7, 0x6d, 0xb4, 0x54, 0x3c, 0x76, 0x91, 0xc3, 0xd9, 0xdb,
- 0x7c, 0xd5, 0x63, 0xd7, 0x95, 0x15, 0xae, 0x2b, 0x15, 0xb8, 0xa6, 0xb5, 0xe0, 0x35, 0x5d, 0x7a,
- 0xd0, 0xeb, 0x79, 0x8d, 0x2f, 0x12, 0x92, 0x25, 0xd5, 0x38, 0x4b, 0xaa, 0xef, 0xd5, 0x92, 0x6d,
- 0x5e, 0x1f, 0xa5, 0x6b, 0x55, 0xfb, 0x5d, 0xab, 0xfa, 0x5e, 0xae, 0xf5, 0xff, 0xd1, 0x6c, 0xf5,
- 0xf2, 0x69, 0xcf, 0xa2, 0xef, 0xb4, 0xfe, 0xd9, 0x7a, 0x16, 0xf4, 0xbe, 0x76, 0x01, 0xf9, 0xe4,
- 0xbd, 0x37, 0xe7, 0x95, 0xdc, 0x97, 0x12, 0xfc, 0xca, 0x69, 0x22, 0x3d, 0xd8, 0x95, 0xff, 0x59,
- 0xe9, 0xa9, 0x3e, 0x08, 0x0b, 0x7d, 0x51, 0x81, 0x99, 0x50, 0x25, 0xa7, 0x66, 0x7a, 0x7f, 0xcb,
- 0xb9, 0x75, 0xd2, 0x72, 0xce, 0x14, 0xfc, 0x5d, 0x05, 0x4e, 0x49, 0xe5, 0x95, 0xaa, 0x77, 0x51,
- 0x52, 0xef, 0xa1, 0xf0, 0x99, 0x88, 0xa0, 0xa0, 0x9d, 0xe8, 0x5e, 0x09, 0x20, 0x30, 0x7b, 0x7e,
- 0x5f, 0x91, 0xfc, 0x7e, 0xc6, 0x03, 0x44, 0x98, 0x8b, 0x47, 0x00, 0x53, 0xdb, 0x86, 0xe4, 0x6e,
- 0x07, 0x21, 0x7d, 0x0e, 0x12, 0x5b, 0x1d, 0xa6, 0xe1, 0x04, 0xc5, 0x6f, 0x75, 0x8a, 0x1d, 0xd3,
- 0xaa, 0x1d, 0x19, 0x89, 0xad, 0x8e, 0x7e, 0x0e, 0xd4, 0x02, 0xfb, 0x4e, 0x7c, 0x7a, 0x79, 0x92,
- 0x0a, 0x14, 0xac, 0x3a, 0x93, 0xc0, 0x73, 0xfa, 0x1c, 0x24, 0x37, 0x90, 0x79, 0xc0, 0x94, 0x00,
- 0x2a, 0x83, 0x47, 0x0c, 0x32, 0xce, 0x4e, 0xf8, 0x02, 0xa4, 0x38, 0xb1, 0x7e, 0x1e, 0x23, 0x0e,
- 0x5c, 0x76, 0x5a, 0x86, 0xc0, 0xea, 0xb0, 0x95, 0x8b, 0xcc, 0xea, 0x17, 0x60, 0xd8, 0x68, 0x1c,
- 0x1e, 0xb9, 0xec, 0xe4, 0x61, 0x31, 0x3a, 0x9d, 0xbb, 0x0b, 0x63, 0x9e, 0x46, 0xef, 0x33, 0xf5,
- 0x2a, 0xbd, 0x34, 0x7d, 0x56, 0x5c, 0x4f, 0xf8, 0x73, 0x4b, 0x3a, 0xa4, 0x9f, 0x85, 0xd4, 0x8e,
- 0xdb, 0xf1, 0x8b, 0x3e, 0xef, 0x48, 0xbd, 0xd1, 0xdc, 0x2f, 0x28, 0x90, 0x5a, 0x45, 0xa8, 0x4d,
- 0x0c, 0xfe, 0x38, 0x24, 0x57, 0xed, 0x57, 0x2d, 0xa6, 0xe0, 0x14, 0xb3, 0x28, 0x9e, 0x66, 0x36,
- 0x25, 0xd3, 0xfa, 0xe3, 0xa2, 0xdd, 0xa7, 0x3d, 0xbb, 0x0b, 0x72, 0xc4, 0xf6, 0xb9, 0x80, 0xed,
- 0x99, 0x03, 0xb1, 0x50, 0xc8, 0xfe, 0xd7, 0x21, 0x2d, 0x9c, 0x45, 0x5f, 0x60, 0x6a, 0x24, 0x64,
- 0xa0, 0x68, 0x2b, 0x2c, 0x91, 0x43, 0x30, 0x1e, 0x38, 0x31, 0x86, 0x0a, 0x26, 0xee, 0x01, 0x25,
- 0x66, 0x5e, 0x0c, 0x9a, 0x39, 0x5a, 0x94, 0x99, 0xfa, 0x12, 0xb5, 0x11, 0x31, 0xf7, 0x79, 0x1a,
- 0x9c, 0xbd, 0x9d, 0x88, 0x3f, 0xe7, 0x86, 0x41, 0xad, 0x34, 0x9a, 0xb9, 0xa7, 0x01, 0x68, 0xca,
- 0x97, 0xad, 0x6e, 0x4b, 0xca, 0xba, 0x09, 0x6e, 0xe0, 0xdd, 0x23, 0xb4, 0x8b, 0x1c, 0x22, 0x12,
- 0xec, 0xa7, 0x70, 0x81, 0x01, 0x9a, 0x62, 0x04, 0xff, 0x64, 0x2c, 0x3e, 0xb2, 0x13, 0xc3, 0xa2,
- 0x59, 0x2a, 0x7a, 0x17, 0xb9, 0x05, 0xcb, 0x76, 0x8f, 0x50, 0x47, 0x42, 0x2c, 0xeb, 0x57, 0x02,
- 0x09, 0x3b, 0xb1, 0xfc, 0x88, 0x87, 0xe8, 0x09, 0xba, 0x92, 0xfb, 0x1a, 0x51, 0x10, 0xb7, 0x02,
- 0xa1, 0x0b, 0x54, 0x07, 0xb8, 0x40, 0xfd, 0x5a, 0xa0, 0x7f, 0xeb, 0xa3, 0xa6, 0x74, 0x6b, 0x79,
- 0x33, 0x70, 0x9f, 0xd3, 0x5f, 0xd9, 0xe0, 0x3d, 0x26, 0xb7, 0x29, 0x57, 0xf9, 0xc9, 0x58, 0x95,
- 0x7b, 0x74, 0xb7, 0x27, 0xb5, 0xa9, 0x3a, 0xa8, 0x4d, 0xbf, 0xe9, 0x75, 0x1c, 0xf4, 0x87, 0x47,
- 0xc8, 0x4f, 0xf6, 0xe8, 0x1f, 0x8d, 0xf5, 0x7d, 0x5e, 0x29, 0x79, 0xaa, 0xae, 0x0c, 0xea, 0xfe,
- 0x7c, 0xa2, 0x58, 0xf4, 0xd4, 0xbd, 0x7e, 0x82, 0x10, 0xc8, 0x27, 0x4a, 0x25, 0xaf, 0x6c, 0xa7,
- 0x3e, 0xf3, 0xe6, 0xbc, 0xf2, 0xd5, 0x37, 0xe7, 0x87, 0x72, 0xbf, 0xa9, 0xc0, 0x14, 0x93, 0x14,
- 0x02, 0xf7, 0x29, 0x49, 0xf9, 0xd3, 0xbc, 0x66, 0x44, 0x59, 0xe0, 0xa7, 0x16, 0xbc, 0xdf, 0x52,
- 0x20, 0x1b, 0xd2, 0x95, 0xdb, 0xfb, 0xd2, 0x40, 0x2a, 0xe7, 0x95, 0xf2, 0xcf, 0xde, 0xe6, 0x77,
- 0x61, 0x78, 0xb7, 0xd1, 0x42, 0x1d, 0xbc, 0x12, 0xe0, 0x0f, 0x54, 0x65, 0xbe, 0x99, 0x43, 0x87,
- 0xf8, 0x1c, 0x55, 0x2e, 0x30, 0xb7, 0xac, 0x67, 0x21, 0xb9, 0x6a, 0xba, 0x26, 0xd1, 0x20, 0xe3,
- 0xd5, 0x57, 0xd3, 0x35, 0x73, 0x57, 0x20, 0xb3, 0x79, 0x4c, 0x5e, 0x44, 0xaa, 0x93, 0x77, 0x50,
- 0x82, 0xdd, 0x1f, 0xef, 0x57, 0x2f, 0x2f, 0x0e, 0xa7, 0xea, 0xda, 0x3d, 0x25, 0x9f, 0x24, 0xfa,
- 0xbc, 0x02, 0x13, 0x5b, 0x58, 0x6d, 0x82, 0x23, 0xb0, 0xb3, 0xa0, 0x6c, 0x06, 0x1b, 0x21, 0x91,
- 0xd5, 0x50, 0x36, 0xa5, 0xf6, 0x51, 0xf5, 0xcc, 0x23, 0xb5, 0x6d, 0xaa, 0xd7, 0xb6, 0x2d, 0x26,
- 0x53, 0x13, 0xda, 0xd4, 0x62, 0x32, 0x05, 0xda, 0x38, 0x3b, 0xef, 0x7f, 0x50, 0x41, 0xa3, 0xad,
- 0xce, 0x2a, 0x3a, 0x68, 0x58, 0x0d, 0x37, 0xdc, 0xaf, 0x7a, 0x1a, 0xeb, 0xcf, 0xc2, 0x18, 0x36,
- 0xe9, 0x1a, 0xfb, 0xe5, 0x3e, 0x6c, 0xfa, 0x73, 0xac, 0x45, 0x91, 0x28, 0xd8, 0x00, 0x09, 0x1d,
- 0x1f, 0xa3, 0xaf, 0x81, 0x5a, 0xa9, 0x6c, 0xb2, 0xc5, 0x6d, 0xa5, 0x2f, 0x94, 0xbd, 0xec, 0xc3,
- 0x8e, 0xd8, 0x98, 0x73, 0x68, 0x60, 0x02, 0x7d, 0x05, 0x12, 0x95, 0x4d, 0xd6, 0xf0, 0x9e, 0x1f,
- 0x84, 0xc6, 0x48, 0x54, 0x36, 0x67, 0xff, 0x8d, 0x02, 0xe3, 0x81, 0x51, 0x3d, 0x07, 0x19, 0x3a,
- 0x20, 0x5c, 0xee, 0x88, 0x11, 0x18, 0xe3, 0x3a, 0x27, 0xde, 0xa3, 0xce, 0xb3, 0x05, 0x98, 0x94,
- 0xc6, 0xf5, 0x25, 0xd0, 0xc5, 0x21, 0xa6, 0x04, 0xfd, 0xd5, 0xb0, 0x88, 0x99, 0xdc, 0xa3, 0x00,
- 0xbe, 0x5d, 0xbd, 0x1f, 0xbb, 0xaa, 0x94, 0x77, 0x76, 0xcb, 0xab, 0x9a, 0x92, 0xfb, 0x86, 0x02,
- 0x69, 0xd6, 0xb6, 0xd6, 0xec, 0x36, 0xd2, 0x8b, 0xa0, 0x14, 0x58, 0x04, 0x3d, 0x98, 0xde, 0x4a,
- 0x41, 0xbf, 0x08, 0x4a, 0x71, 0x70, 0x57, 0x2b, 0x45, 0x7d, 0x19, 0x94, 0x12, 0x73, 0xf0, 0x60,
- 0x9e, 0x51, 0x4a, 0xb9, 0x3f, 0x51, 0x61, 0x5a, 0x6c, 0xa3, 0x79, 0x3d, 0x39, 0x17, 0xbc, 0x6f,
- 0xca, 0x8f, 0x5d, 0x5e, 0xbe, 0xb2, 0xb2, 0x84, 0xff, 0xf1, 0x42, 0x32, 0x17, 0xbc, 0x85, 0xca,
- 0x83, 0x27, 0x72, 0xb9, 0xd7, 0x7b, 0x22, 0xf9, 0xa4, 0xc0, 0x10, 0x7a, 0x4f, 0x24, 0x30, 0x1b,
- 0x7a, 0x4f, 0x24, 0x30, 0x1b, 0x7a, 0x4f, 0x24, 0x30, 0x1b, 0xda, 0x0b, 0x08, 0xcc, 0x86, 0xde,
- 0x13, 0x09, 0xcc, 0x86, 0xde, 0x13, 0x09, 0xcc, 0x86, 0xdf, 0x13, 0x61, 0xd3, 0x3d, 0xdf, 0x13,
- 0x09, 0xce, 0x87, 0xdf, 0x13, 0x09, 0xce, 0x87, 0xdf, 0x13, 0xc9, 0x27, 0xdd, 0x4e, 0x17, 0xf5,
- 0xde, 0x75, 0x08, 0xe2, 0xfb, 0xdd, 0x04, 0xfa, 0x15, 0x78, 0x0b, 0x26, 0xe9, 0x03, 0x89, 0x92,
- 0x6d, 0xb9, 0x66, 0xc3, 0x42, 0x1d, 0xfd, 0x63, 0x90, 0xa1, 0x43, 0xf4, 0x36, 0x27, 0xea, 0x36,
- 0x90, 0xce, 0xb3, 0x7a, 0x1b, 0x90, 0xce, 0xfd, 0x69, 0x12, 0x66, 0xe8, 0x40, 0xc5, 0x6c, 0xa1,
- 0xc0, 0x5b, 0x46, 0x17, 0xa4, 0x3d, 0xa5, 0x09, 0x0c, 0xbf, 0xff, 0xf6, 0x3c, 0x1d, 0x2d, 0x78,
- 0xd1, 0x74, 0x41, 0xda, 0x5d, 0x0a, 0xca, 0xf9, 0x0b, 0xd0, 0x05, 0xe9, 0xcd, 0xa3, 0xa0, 0x9c,
- 0xb7, 0xde, 0x78, 0x72, 0xfc, 0x1d, 0xa4, 0xa0, 0xdc, 0xaa, 0x17, 0x65, 0x17, 0xa4, 0xb7, 0x91,
- 0x82, 0x72, 0x65, 0x2f, 0xde, 0x2e, 0x48, 0x7b, 0x4f, 0x41, 0xb9, 0x35, 0x2f, 0xf2, 0x2e, 0x48,
- 0xbb, 0x50, 0x41, 0xb9, 0xdb, 0x5e, 0x0c, 0x5e, 0x90, 0xde, 0x55, 0x0a, 0xca, 0x3d, 0xe7, 0x45,
- 0xe3, 0x05, 0xe9, 0xad, 0xa5, 0xa0, 0xdc, 0xba, 0x17, 0x97, 0x0b, 0xf2, 0xfb, 0x4b, 0x41, 0xc1,
- 0x3b, 0x7e, 0x84, 0x2e, 0xc8, 0x6f, 0x32, 0x05, 0x25, 0x3f, 0xee, 0xc7, 0xea, 0x82, 0xfc, 0x4e,
- 0x53, 0x50, 0x72, 0xc3, 0x8f, 0xda, 0x05, 0x79, 0xaf, 0x2c, 0x28, 0xb9, 0xe9, 0xc7, 0xef, 0x82,
- 0xbc, 0x6b, 0x16, 0x94, 0xac, 0xf8, 0x91, 0xbc, 0x20, 0xef, 0x9f, 0x05, 0x25, 0xb7, 0xfc, 0x87,
- 0xe8, 0x7f, 0x20, 0x85, 0x9f, 0xf0, 0x16, 0x54, 0x4e, 0x0a, 0x3f, 0x88, 0x08, 0x3d, 0xa9, 0x90,
- 0x09, 0x32, 0x7e, 0xd8, 0xe5, 0xa4, 0xb0, 0x83, 0x88, 0x90, 0xcb, 0x49, 0x21, 0x07, 0x11, 0xe1,
- 0x96, 0x93, 0xc2, 0x0d, 0x22, 0x42, 0x2d, 0x27, 0x85, 0x1a, 0x44, 0x84, 0x59, 0x4e, 0x0a, 0x33,
- 0x88, 0x08, 0xb1, 0x9c, 0x14, 0x62, 0x10, 0x11, 0x5e, 0x39, 0x29, 0xbc, 0x20, 0x22, 0xb4, 0xce,
- 0xcb, 0xa1, 0x05, 0x51, 0x61, 0x75, 0x5e, 0x0e, 0x2b, 0x88, 0x0a, 0xa9, 0xc7, 0xe4, 0x90, 0x1a,
- 0xbb, 0xff, 0xf6, 0xfc, 0x30, 0x1e, 0x12, 0xa2, 0xe9, 0xbc, 0x1c, 0x4d, 0x10, 0x15, 0x49, 0xe7,
- 0xe5, 0x48, 0x82, 0xa8, 0x28, 0x3a, 0x2f, 0x47, 0x11, 0x44, 0x45, 0xd0, 0x5b, 0x72, 0x04, 0xf9,
- 0xef, 0xf8, 0xe4, 0xa4, 0x2d, 0xc5, 0xb8, 0x08, 0x52, 0x07, 0x88, 0x20, 0x75, 0x80, 0x08, 0x52,
- 0x07, 0x88, 0x20, 0x75, 0x80, 0x08, 0x52, 0x07, 0x88, 0x20, 0x75, 0x80, 0x08, 0x52, 0x07, 0x88,
- 0x20, 0x75, 0x90, 0x08, 0x52, 0x07, 0x8a, 0x20, 0xb5, 0x57, 0x04, 0x9d, 0x97, 0xdf, 0x78, 0x80,
- 0xa8, 0x82, 0x74, 0x5e, 0xde, 0xfa, 0x8c, 0x0f, 0x21, 0x75, 0xa0, 0x10, 0x52, 0x7b, 0x85, 0xd0,
- 0x1f, 0xa8, 0x30, 0x1d, 0x08, 0x21, 0xb6, 0x3f, 0xf4, 0x7e, 0x55, 0xa0, 0x6b, 0x03, 0xbc, 0x60,
- 0x11, 0x15, 0x53, 0xd7, 0x06, 0xd8, 0xa4, 0xee, 0x17, 0x67, 0xe1, 0x2a, 0x54, 0x1e, 0xa0, 0x0a,
- 0xad, 0x79, 0x31, 0x74, 0x6d, 0x80, 0x17, 0x2f, 0xc2, 0xb1, 0x77, 0xa3, 0x5f, 0x11, 0x78, 0x6e,
- 0xa0, 0x22, 0xb0, 0x3e, 0x50, 0x11, 0xb8, 0xe3, 0x7b, 0xf0, 0x17, 0x13, 0x70, 0xca, 0xf7, 0x20,
- 0xfd, 0x44, 0x7e, 0x59, 0x2b, 0x27, 0x6c, 0x51, 0xe9, 0x7c, 0xdb, 0x46, 0x70, 0x63, 0x62, 0xbd,
- 0xae, 0x6f, 0x07, 0x37, 0xab, 0xf2, 0x27, 0xdd, 0xc0, 0x11, 0x3c, 0xce, 0x1e, 0x86, 0x9e, 0x07,
- 0x75, 0xbd, 0xee, 0x90, 0x6a, 0x11, 0x75, 0xda, 0x92, 0x81, 0xa7, 0x75, 0x03, 0x46, 0x88, 0xb8,
- 0x43, 0xdc, 0xfb, 0x5e, 0x4e, 0xbc, 0x6a, 0x30, 0xa6, 0xdc, 0x5b, 0x0a, 0x9c, 0x0d, 0x84, 0xf2,
- 0xfb, 0xb3, 0x65, 0x70, 0x6b, 0xa0, 0x2d, 0x83, 0x40, 0x82, 0xf8, 0xdb, 0x07, 0x4f, 0x84, 0x77,
- 0xaa, 0xc5, 0x2c, 0x91, 0xb7, 0x12, 0xfe, 0x12, 0x4c, 0xf8, 0x57, 0x40, 0xee, 0xd9, 0xae, 0xc6,
- 0x3f, 0xcd, 0x8c, 0x4a, 0xcd, 0xab, 0xd2, 0x53, 0xb4, 0xbe, 0x30, 0x2f, 0x5b, 0x73, 0x79, 0x98,
- 0xac, 0x04, 0xbf, 0x12, 0x15, 0xf7, 0x30, 0x22, 0x85, 0x5b, 0xf3, 0x7b, 0x5f, 0x9e, 0x1f, 0xca,
- 0x7d, 0x14, 0x32, 0xe2, 0xb7, 0x9e, 0x24, 0xe0, 0x18, 0x07, 0xe6, 0x93, 0xdf, 0xc6, 0xd2, 0xff,
- 0x40, 0x81, 0xd3, 0xa2, 0xf8, 0xf3, 0x0d, 0xf7, 0x68, 0xdd, 0xc2, 0x3d, 0xfd, 0xd3, 0x90, 0x42,
- 0xcc, 0x71, 0xec, 0x47, 0x72, 0xd8, 0x7d, 0x64, 0xa4, 0xf8, 0x12, 0xf9, 0xd7, 0xf0, 0x20, 0xd2,
- 0x33, 0x0e, 0x7e, 0xda, 0xe5, 0xd9, 0xc7, 0x61, 0x98, 0xf2, 0x07, 0xf5, 0x1a, 0x97, 0xf4, 0xfa,
- 0xf5, 0x08, 0xbd, 0x48, 0x1c, 0xe9, 0x77, 0x02, 0x7a, 0x09, 0xb7, 0xab, 0x91, 0xe2, 0x4b, 0x3c,
- 0xf8, 0x8a, 0x29, 0xdc, 0xff, 0x91, 0x88, 0x8a, 0x57, 0x72, 0x01, 0x52, 0x65, 0x59, 0x26, 0x5a,
- 0xcf, 0x55, 0x48, 0x56, 0xec, 0x3a, 0xf9, 0xf9, 0x1e, 0xf2, 0x7b, 0xd5, 0xcc, 0xc8, 0xec, 0xc7,
- 0xab, 0x2f, 0x40, 0xaa, 0x74, 0xd4, 0x68, 0xd6, 0x3b, 0xc8, 0x62, 0x7b, 0xf6, 0xec, 0x11, 0x3a,
- 0xc6, 0x18, 0xde, 0x5c, 0xae, 0x04, 0x53, 0x15, 0xdb, 0x2a, 0x1e, 0xbb, 0x62, 0xdd, 0x58, 0x92,
- 0x52, 0x84, 0xed, 0xf9, 0x90, 0x6f, 0x89, 0x60, 0x81, 0xe2, 0xf0, 0x77, 0xde, 0x9e, 0x57, 0x76,
- 0xbd, 0xe7, 0xe7, 0x9b, 0xf0, 0x10, 0x4b, 0x9f, 0x10, 0xd5, 0x72, 0x1c, 0xd5, 0x18, 0xdb, 0xa7,
- 0x16, 0xe8, 0xd6, 0x31, 0x9d, 0x15, 0x49, 0xf7, 0x60, 0x9a, 0xe1, 0xa6, 0xa8, 0xaf, 0x66, 0xea,
- 0x89, 0x34, 0x8b, 0xa4, 0x5b, 0x8a, 0xa3, 0x93, 0x34, 0x7b, 0x0c, 0xc6, 0xbc, 0x39, 0x21, 0x1a,
- 0xc4, 0x4c, 0x59, 0x5e, 0xcc, 0x41, 0x5a, 0x48, 0x58, 0x7d, 0x18, 0x94, 0x82, 0x36, 0x84, 0xff,
- 0x2b, 0x6a, 0x0a, 0xfe, 0xaf, 0xa4, 0x25, 0x16, 0x1f, 0x87, 0x49, 0xe9, 0xf9, 0x25, 0x9e, 0x59,
- 0xd5, 0x00, 0xff, 0x57, 0xd6, 0xd2, 0xb3, 0xc9, 0xcf, 0xfc, 0xda, 0xdc, 0xd0, 0xe2, 0x2d, 0xd0,
- 0xc3, 0x4f, 0x3a, 0xf5, 0x11, 0x48, 0x14, 0x30, 0xe5, 0x43, 0x90, 0x28, 0x16, 0x35, 0x65, 0x76,
- 0xf2, 0xaf, 0x7f, 0xe1, 0x6c, 0xba, 0x48, 0xbe, 0xd2, 0x7d, 0x17, 0xb9, 0xc5, 0x22, 0x03, 0x3f,
- 0x03, 0xa7, 0x23, 0x9f, 0x94, 0x62, 0x7c, 0xa9, 0x44, 0xf1, 0xab, 0xab, 0x21, 0xfc, 0xea, 0x2a,
- 0xc1, 0x2b, 0x79, 0xbe, 0xe3, 0x5c, 0xd0, 0x23, 0x9e, 0x4b, 0x66, 0xeb, 0xc2, 0x0e, 0x77, 0x21,
- 0xff, 0x0c, 0x93, 0x2d, 0x46, 0xca, 0xa2, 0x98, 0x1d, 0xeb, 0x62, 0xbe, 0xc4, 0xf0, 0xa5, 0x48,
- 0xfc, 0x81, 0xb4, 0xad, 0x1a, 0x5c, 0x21, 0x18, 0x49, 0xc9, 0x53, 0x78, 0x35, 0x92, 0xe4, 0x48,
- 0x78, 0xd9, 0x7d, 0xd5, 0x53, 0xb8, 0x1c, 0x29, 0xdb, 0x88, 0x79, 0xe9, 0xab, 0x9c, 0xbf, 0xc8,
- 0x16, 0xf9, 0xc2, 0x65, 0xfd, 0x34, 0xcf, 0xd1, 0x40, 0x05, 0x66, 0x06, 0xe2, 0x52, 0xf9, 0x12,
- 0x03, 0x14, 0x7b, 0x02, 0x7a, 0x5b, 0x89, 0x23, 0xf3, 0xcf, 0x31, 0x92, 0x52, 0x4f, 0x92, 0x18,
- 0x53, 0x71, 0x78, 0x71, 0xf7, 0xde, 0x3b, 0x73, 0x43, 0xdf, 0x7e, 0x67, 0x6e, 0xe8, 0xbf, 0xbc,
- 0x33, 0x37, 0xf4, 0xdd, 0x77, 0xe6, 0x94, 0x1f, 0xbc, 0x33, 0xa7, 0xfc, 0xe8, 0x9d, 0x39, 0xe5,
- 0xc7, 0xef, 0xcc, 0x29, 0x6f, 0xdc, 0x9f, 0x53, 0xbe, 0x7a, 0x7f, 0x4e, 0xf9, 0xda, 0xfd, 0x39,
- 0xe5, 0xf7, 0xee, 0xcf, 0x29, 0x6f, 0xdd, 0x9f, 0x53, 0xee, 0xdd, 0x9f, 0x53, 0xbe, 0x7d, 0x7f,
- 0x4e, 0xf9, 0xee, 0xfd, 0x39, 0xe5, 0x07, 0xf7, 0xe7, 0x86, 0x7e, 0x74, 0x7f, 0x4e, 0xf9, 0xf1,
- 0xfd, 0xb9, 0xa1, 0x37, 0xbe, 0x37, 0x37, 0xf4, 0xe6, 0xf7, 0xe6, 0x86, 0xbe, 0xfa, 0xbd, 0x39,
- 0x05, 0xfe, 0x68, 0x05, 0x72, 0xec, 0x9b, 0x64, 0xc2, 0x97, 0x86, 0x2f, 0xba, 0x47, 0x88, 0x34,
- 0x05, 0x57, 0xf8, 0xaf, 0x80, 0x79, 0x03, 0x27, 0xfc, 0x5e, 0xd9, 0xec, 0x83, 0x7e, 0x8b, 0x2d,
- 0xf7, 0x6f, 0x87, 0x61, 0x94, 0x3f, 0x0d, 0x8e, 0xfa, 0x49, 0xf3, 0xab, 0x90, 0x3a, 0x6a, 0x34,
- 0xcd, 0x4e, 0xc3, 0x3d, 0x66, 0x8f, 0x41, 0x1f, 0x5e, 0xf2, 0xd5, 0xe6, 0x0f, 0x4e, 0x9f, 0xeb,
- 0xb6, 0xec, 0x6e, 0xc7, 0xf0, 0x44, 0xf5, 0xb3, 0x90, 0x39, 0x42, 0x8d, 0xc3, 0x23, 0xb7, 0xda,
- 0xb0, 0xaa, 0xb5, 0x16, 0xe9, 0x96, 0xc7, 0x0d, 0xa0, 0x63, 0xeb, 0x56, 0xa9, 0x85, 0x4f, 0x56,
- 0x37, 0x5d, 0x93, 0xdc, 0xa5, 0x67, 0x0c, 0xf2, 0x59, 0x3f, 0x07, 0x99, 0x0e, 0x72, 0xba, 0x4d,
- 0xb7, 0x5a, 0xb3, 0xbb, 0x96, 0x4b, 0xfa, 0x59, 0xd5, 0x48, 0xd3, 0xb1, 0x12, 0x1e, 0xd2, 0x1f,
- 0x83, 0x71, 0xb7, 0xd3, 0x45, 0x55, 0xa7, 0x66, 0xbb, 0x4e, 0xcb, 0xb4, 0x48, 0x3f, 0x9b, 0x32,
- 0x32, 0x78, 0x70, 0x87, 0x8d, 0x91, 0x5f, 0xc3, 0xaf, 0xd9, 0x1d, 0x44, 0x6e, 0xa7, 0x13, 0x06,
- 0x3d, 0xd0, 0x35, 0x50, 0x5f, 0x46, 0xc7, 0xe4, 0x86, 0x2d, 0x69, 0xe0, 0x8f, 0xfa, 0x93, 0x30,
- 0x42, 0xff, 0x9c, 0x0d, 0xe9, 0xae, 0xc9, 0xe6, 0xb5, 0x77, 0x69, 0xf4, 0x21, 0xad, 0xc1, 0x04,
- 0xf4, 0x9b, 0x30, 0xea, 0xa2, 0x4e, 0xc7, 0x6c, 0x58, 0xe4, 0xe6, 0x29, 0xbd, 0x3c, 0x1f, 0x61,
- 0x86, 0x5d, 0x2a, 0x41, 0x7e, 0x15, 0xd8, 0xe0, 0xf2, 0xfa, 0x55, 0xc8, 0x10, 0xb9, 0xe5, 0x2a,
- 0xfd, 0x93, 0x3f, 0xe9, 0x9e, 0xf1, 0x9c, 0xa6, 0x72, 0x7c, 0xaf, 0x80, 0xc3, 0xe8, 0x2f, 0x22,
- 0x8e, 0x93, 0xd3, 0x3e, 0x16, 0x71, 0x5a, 0x52, 0x7a, 0x97, 0x49, 0xdb, 0x48, 0x4f, 0xcd, 0x78,
- 0xe8, 0x6f, 0x26, 0x6e, 0x42, 0x46, 0xd4, 0x8b, 0x9b, 0x81, 0xb6, 0x3f, 0xc4, 0x0c, 0x4f, 0xf8,
- 0x7f, 0x4e, 0xa1, 0x87, 0x15, 0xe8, 0x7c, 0x3e, 0x71, 0x43, 0x99, 0xdd, 0x06, 0x4d, 0x3e, 0x5f,
- 0x04, 0xe5, 0x85, 0x20, 0xa5, 0x26, 0x5e, 0x2c, 0x79, 0x52, 0xee, 0x33, 0xe6, 0x9e, 0x85, 0x11,
- 0x1a, 0x3f, 0x7a, 0x1a, 0x46, 0xfd, 0x1f, 0xdb, 0x4c, 0x41, 0x72, 0x7b, 0xaf, 0xb2, 0x43, 0x7f,
- 0x35, 0x77, 0x67, 0xa3, 0xb0, 0xbd, 0xb3, 0xbb, 0x5e, 0xfa, 0xb8, 0x96, 0xd0, 0x27, 0x21, 0x5d,
- 0x5c, 0xdf, 0xd8, 0xa8, 0x16, 0x0b, 0xeb, 0x1b, 0xe5, 0xbb, 0x9a, 0x9a, 0x9b, 0x83, 0x11, 0xaa,
- 0x27, 0xf9, 0xf5, 0xbf, 0xae, 0x65, 0x1d, 0xf3, 0xf6, 0x81, 0x1c, 0xe4, 0xbe, 0xae, 0xc3, 0x68,
- 0xa1, 0xd9, 0xdc, 0x34, 0xdb, 0x8e, 0xfe, 0x3c, 0x4c, 0xd1, 0xdf, 0xe5, 0xd8, 0xb5, 0x57, 0xc9,
- 0x8f, 0x54, 0xe2, 0xe2, 0xa0, 0xb0, 0x3f, 0x23, 0xe1, 0x5f, 0x37, 0x13, 0x5f, 0x0a, 0xc9, 0x52,
- 0x03, 0x87, 0x39, 0xf4, 0x5d, 0xd0, 0xf8, 0xe0, 0x5a, 0xd3, 0x36, 0x5d, 0xcc, 0x9b, 0x60, 0xbf,
- 0x21, 0xd9, 0x9b, 0x97, 0x8b, 0x52, 0xda, 0x10, 0x83, 0xfe, 0x31, 0x48, 0xad, 0x5b, 0xee, 0x95,
- 0x65, 0xcc, 0xc6, 0xff, 0x44, 0x53, 0x98, 0x8d, 0x8b, 0x50, 0x16, 0x0f, 0xc1, 0xd0, 0xd7, 0x56,
- 0x30, 0x3a, 0xd9, 0x0f, 0x4d, 0x44, 0x7c, 0x34, 0x39, 0xd4, 0x9f, 0x85, 0x31, 0x7c, 0x77, 0x42,
- 0x4f, 0x3e, 0xcc, 0x5b, 0xd7, 0x10, 0xdc, 0x93, 0xa1, 0x78, 0x1f, 0xc3, 0x09, 0xe8, 0xf9, 0x47,
- 0xfa, 0x12, 0x08, 0x0a, 0xf8, 0x18, 0x4c, 0xb0, 0xe3, 0x69, 0x30, 0xda, 0x93, 0x60, 0x47, 0xd2,
- 0x60, 0x47, 0xd4, 0x60, 0xc7, 0xd3, 0x20, 0xd5, 0x97, 0x40, 0xd4, 0xc0, 0x3b, 0xd6, 0x8b, 0x00,
- 0x6b, 0x8d, 0xd7, 0x50, 0x9d, 0xaa, 0x40, 0xff, 0x80, 0x53, 0x2e, 0x82, 0xc1, 0x17, 0xa2, 0x14,
- 0x02, 0x4a, 0x2f, 0x43, 0x7a, 0xe7, 0xc0, 0x27, 0x81, 0x50, 0x1e, 0x7b, 0x6a, 0x1c, 0x48, 0x2c,
- 0x22, 0xce, 0x53, 0x85, 0x5e, 0x4c, 0xba, 0xbf, 0x2a, 0xc2, 0xd5, 0x08, 0x28, 0x5f, 0x15, 0x4a,
- 0x92, 0x89, 0x51, 0x45, 0x60, 0x11, 0x71, 0xb8, 0x18, 0x16, 0x6d, 0x1b, 0x4b, 0xb2, 0xaa, 0x34,
- 0x1f, 0x41, 0xc1, 0x24, 0x58, 0x31, 0x64, 0x47, 0xc4, 0x23, 0x24, 0xc8, 0x31, 0x78, 0xa2, 0xb7,
- 0x47, 0xb8, 0x0c, 0xf7, 0x08, 0x3f, 0x16, 0xf3, 0x8c, 0xbc, 0xd1, 0x8a, 0x79, 0x26, 0x63, 0xf3,
- 0x8c, 0x8b, 0x4a, 0x79, 0xc6, 0x87, 0xf5, 0x4f, 0xc0, 0x24, 0x1f, 0xc3, 0xe5, 0x09, 0x93, 0x6a,
- 0xec, 0x4f, 0xdc, 0xf5, 0x26, 0x65, 0x92, 0x94, 0x53, 0xc6, 0xeb, 0x15, 0x98, 0xe0, 0x43, 0x9b,
- 0x0e, 0xb9, 0xdc, 0x29, 0xf6, 0xd7, 0x4b, 0x7a, 0x33, 0x52, 0x41, 0x4a, 0x28, 0xa1, 0x67, 0x57,
- 0x61, 0x26, 0xba, 0x1a, 0x89, 0xe5, 0x77, 0x8c, 0x96, 0xdf, 0x53, 0x62, 0xf9, 0x55, 0xc4, 0xf2,
- 0x5d, 0x82, 0xd3, 0x91, 0xb5, 0x27, 0x8e, 0x24, 0x21, 0x92, 0xdc, 0x82, 0xf1, 0x40, 0xc9, 0x11,
- 0xc1, 0xc3, 0x11, 0xe0, 0xe1, 0x30, 0xd8, 0x0f, 0xad, 0x88, 0xd5, 0x23, 0x00, 0x56, 0x45, 0xf0,
- 0xc7, 0x60, 0x22, 0x58, 0x6f, 0x44, 0xf4, 0x78, 0x04, 0x7a, 0x3c, 0x02, 0x1d, 0x7d, 0xee, 0x64,
- 0x04, 0x3a, 0x29, 0xa1, 0x77, 0x7a, 0x9e, 0x7b, 0x2a, 0x02, 0x3d, 0x15, 0x81, 0x8e, 0x3e, 0xb7,
- 0x1e, 0x81, 0xd6, 0x45, 0xf4, 0xd3, 0x30, 0x29, 0x95, 0x18, 0x11, 0x3e, 0x1a, 0x01, 0x1f, 0x15,
- 0xe1, 0xcf, 0x80, 0x26, 0x17, 0x17, 0x11, 0x3f, 0x19, 0x81, 0x9f, 0x8c, 0x3a, 0x7d, 0xb4, 0xf6,
- 0x23, 0x11, 0xf0, 0x91, 0xc8, 0xd3, 0x47, 0xe3, 0xb5, 0x08, 0xbc, 0x26, 0xe2, 0xf3, 0x90, 0x11,
- 0xab, 0x89, 0x88, 0x4d, 0x45, 0x60, 0x53, 0xb2, 0xdd, 0x03, 0xc5, 0x24, 0x2e, 0xd2, 0xc7, 0x7a,
- 0xa4, 0x4b, 0xa0, 0x84, 0xc4, 0x91, 0x64, 0x44, 0x92, 0x4f, 0xc2, 0xa9, 0xa8, 0x92, 0x11, 0xc1,
- 0xb1, 0x20, 0x72, 0x4c, 0xe0, 0x1e, 0xd1, 0x6f, 0xf6, 0xcc, 0xb6, 0xd4, 0x38, 0xcd, 0xbe, 0x08,
- 0xd3, 0x11, 0x85, 0x23, 0x82, 0x76, 0x29, 0xd8, 0x8d, 0x65, 0x05, 0x5a, 0x52, 0x04, 0x1a, 0xd6,
- 0xe1, 0xb6, 0xdd, 0xb0, 0x5c, 0xb1, 0x2b, 0xfb, 0xc6, 0x34, 0x4c, 0xb0, 0xf2, 0xb4, 0xd5, 0xa9,
- 0xa3, 0x0e, 0xaa, 0xeb, 0x7f, 0xa1, 0x77, 0xef, 0x74, 0x29, 0x5c, 0xd4, 0x18, 0xea, 0x04, 0x2d,
- 0xd4, 0x8b, 0x3d, 0x5b, 0xa8, 0x8b, 0xf1, 0xf4, 0x71, 0x9d, 0x54, 0x29, 0xd4, 0x49, 0x3d, 0xd1,
- 0x9b, 0xb4, 0x57, 0x43, 0x55, 0x0a, 0x35, 0x54, 0xfd, 0x49, 0x22, 0xfb, 0xaa, 0xb5, 0x70, 0x5f,
- 0xb5, 0xd0, 0x9b, 0xa5, 0x77, 0x7b, 0xb5, 0x16, 0x6e, 0xaf, 0x62, 0x78, 0xa2, 0xbb, 0xac, 0xb5,
- 0x70, 0x97, 0xd5, 0x87, 0xa7, 0x77, 0xb3, 0xb5, 0x16, 0x6e, 0xb6, 0x62, 0x78, 0xa2, 0x7b, 0xae,
- 0xf5, 0x88, 0x9e, 0xeb, 0xc9, 0xde, 0x44, 0xfd, 0x5a, 0xaf, 0x8d, 0xa8, 0xd6, 0x6b, 0xb1, 0x8f,
- 0x52, 0x7d, 0x3b, 0xb0, 0xf5, 0x88, 0x0e, 0x2c, 0x4e, 0xb1, 0x1e, 0x8d, 0xd8, 0x46, 0x54, 0x23,
- 0x16, 0xab, 0x58, 0xaf, 0x7e, 0xec, 0xe7, 0xe4, 0x7e, 0xec, 0x42, 0x6f, 0xa6, 0xe8, 0xb6, 0x6c,
- 0x2d, 0xdc, 0x96, 0x2d, 0xc4, 0xe5, 0x5c, 0x54, 0x77, 0xf6, 0x62, 0xcf, 0xee, 0x6c, 0x80, 0x14,
- 0x8e, 0x6b, 0xd2, 0x5e, 0xe8, 0xd5, 0xa4, 0x2d, 0xc5, 0x73, 0xf7, 0xef, 0xd5, 0xf6, 0x7a, 0xf4,
- 0x6a, 0x4f, 0xc5, 0x13, 0x7f, 0xd8, 0xb2, 0x7d, 0xd8, 0xb2, 0x7d, 0xd8, 0xb2, 0x7d, 0xd8, 0xb2,
- 0xfd, 0xec, 0x5b, 0xb6, 0x7c, 0xf2, 0xb3, 0x5f, 0x9e, 0x57, 0x72, 0xff, 0x59, 0xf5, 0xfe, 0xe0,
- 0xda, 0xf3, 0x0d, 0xf7, 0x08, 0x97, 0xb7, 0x4d, 0xc8, 0x90, 0x1f, 0x00, 0x6e, 0x99, 0xed, 0x76,
- 0xc3, 0x3a, 0x64, 0x3d, 0xdb, 0x62, 0xf8, 0x51, 0x22, 0x03, 0x90, 0x3f, 0x36, 0xb3, 0x49, 0x85,
- 0xd9, 0x72, 0x63, 0xf9, 0x23, 0xfa, 0x1d, 0x48, 0xb7, 0x9c, 0x43, 0x8f, 0x2d, 0x11, 0x5a, 0x08,
- 0x25, 0x36, 0x7a, 0xa5, 0x3e, 0x19, 0xb4, 0xbc, 0x01, 0xac, 0xda, 0xfe, 0xb1, 0xeb, 0xab, 0xa6,
- 0xc6, 0xa9, 0x86, 0x7d, 0x1a, 0x54, 0x6d, 0xdf, 0x1f, 0xc1, 0x61, 0x2b, 0xeb, 0x1e, 0x57, 0xe9,
- 0x02, 0xc1, 0xf3, 0x3c, 0x4c, 0x4a, 0xda, 0x46, 0xe4, 0xfc, 0x03, 0xf8, 0x06, 0x2b, 0x26, 0x6b,
- 0x1e, 0x97, 0x13, 0x62, 0x40, 0xe6, 0x1e, 0x85, 0xf1, 0x00, 0xb7, 0x9e, 0x01, 0xe5, 0x80, 0x7d,
- 0x9d, 0x52, 0x39, 0xc8, 0x7d, 0x49, 0x81, 0x34, 0x7b, 0x95, 0x60, 0xdb, 0x6c, 0x74, 0xf4, 0xe7,
- 0x20, 0xd9, 0xe4, 0x5f, 0x69, 0x7a, 0xd0, 0xaf, 0xcf, 0x12, 0x06, 0x7d, 0x0d, 0x86, 0x3b, 0xde,
- 0x57, 0x9e, 0x1e, 0xe8, 0x3b, 0xb1, 0x04, 0x9e, 0xbb, 0xa7, 0xc0, 0x14, 0x7b, 0xd3, 0xd5, 0x61,
- 0x2f, 0x40, 0x9b, 0xed, 0xd9, 0xaf, 0x2b, 0x30, 0xe6, 0x1d, 0xe9, 0xfb, 0x30, 0xe1, 0x1d, 0xd0,
- 0x97, 0xec, 0x69, 0xa4, 0xe6, 0x05, 0x0b, 0x87, 0x38, 0x96, 0x22, 0x3e, 0xd1, 0xcd, 0x28, 0xba,
- 0x26, 0x07, 0x07, 0x67, 0x0b, 0x30, 0x1d, 0x21, 0x76, 0x92, 0x05, 0x39, 0x77, 0x0e, 0xc6, 0x2a,
- 0xb6, 0x4b, 0x7f, 0x39, 0x47, 0x3f, 0x25, 0xec, 0x2a, 0x14, 0x13, 0xda, 0x10, 0x01, 0x2f, 0x9e,
- 0x83, 0x51, 0x96, 0xfd, 0xfa, 0x08, 0x24, 0x36, 0x0b, 0xda, 0x10, 0xf9, 0xbf, 0xa8, 0x29, 0xe4,
- 0xff, 0x92, 0x96, 0x28, 0x6e, 0x3c, 0xc0, 0x4e, 0xd3, 0x50, 0xaf, 0x9d, 0xa6, 0xfd, 0x11, 0x6a,
- 0x9e, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x88, 0xd5, 0x59, 0xc4, 0x6d, 0x83, 0x00, 0x00,
+ 0x74, 0x43, 0x12, 0x55, 0xa9, 0x94, 0xb2, 0x4e, 0x36, 0xde, 0xdc, 0x93, 0x4d, 0x2a, 0x5e, 0xc7,
+ 0x17, 0x79, 0xb7, 0x76, 0xed, 0xdd, 0xdc, 0xbc, 0xce, 0xc6, 0xd9, 0x75, 0x52, 0x59, 0xe5, 0xc1,
+ 0xc9, 0xe4, 0x25, 0xe5, 0x4d, 0x5e, 0x52, 0xae, 0x94, 0xca, 0x1a, 0x3b, 0xb5, 0x4e, 0xe2, 0x24,
+ 0xce, 0x46, 0x55, 0x71, 0x95, 0xf7, 0x61, 0xeb, 0xdc, 0xba, 0x4f, 0x1f, 0x34, 0xd0, 0xe0, 0x48,
+ 0xb2, 0xf7, 0xc1, 0x2f, 0x33, 0xe8, 0x73, 0xfe, 0xef, 0xeb, 0xbf, 0xff, 0xcb, 0x39, 0x7f, 0x9f,
+ 0x73, 0x00, 0xc2, 0xbd, 0x3c, 0x9c, 0x3d, 0xb4, 0xed, 0xc3, 0x26, 0xba, 0xd8, 0xee, 0xd8, 0xae,
+ 0xbd, 0xdf, 0x3d, 0xb8, 0x58, 0x47, 0x4e, 0xad, 0xd3, 0x68, 0xbb, 0x76, 0x67, 0x89, 0xb4, 0xe9,
+ 0x93, 0x54, 0x62, 0x89, 0x4b, 0xe4, 0x36, 0x61, 0x6a, 0xad, 0xd1, 0x44, 0xab, 0x9e, 0xe0, 0x0e,
+ 0x72, 0xf5, 0x1b, 0x10, 0x3f, 0x68, 0x34, 0x51, 0x56, 0x39, 0xab, 0x2e, 0xa4, 0x97, 0xcf, 0x2f,
+ 0x49, 0xa0, 0xa5, 0x20, 0x62, 0x1b, 0x37, 0x1b, 0x04, 0x91, 0xfb, 0x5e, 0x1c, 0xa6, 0x43, 0x7a,
+ 0x75, 0x1d, 0xe2, 0x96, 0xd9, 0xc2, 0x8c, 0xca, 0x42, 0xca, 0x20, 0x9f, 0xf5, 0x2c, 0x8c, 0xb5,
+ 0xcd, 0xda, 0x2b, 0xe6, 0x21, 0xca, 0xc6, 0x48, 0x33, 0xbf, 0xd4, 0xe7, 0x00, 0xea, 0xa8, 0x8d,
+ 0xac, 0x3a, 0xb2, 0x6a, 0xc7, 0x59, 0xf5, 0xac, 0xba, 0x90, 0x32, 0x84, 0x16, 0xfd, 0x23, 0x30,
+ 0xd5, 0xee, 0xee, 0x37, 0x1b, 0xb5, 0xaa, 0x20, 0x06, 0x67, 0xd5, 0x85, 0x84, 0xa1, 0xd1, 0x8e,
+ 0x55, 0x5f, 0xf8, 0x09, 0x98, 0x7c, 0x0d, 0x99, 0xaf, 0x88, 0xa2, 0x69, 0x22, 0x3a, 0x81, 0x9b,
+ 0x05, 0xc1, 0x12, 0x64, 0x5a, 0xc8, 0x71, 0xcc, 0x43, 0x54, 0x75, 0x8f, 0xdb, 0x28, 0x1b, 0x27,
+ 0x4f, 0x7f, 0xb6, 0xe7, 0xe9, 0xe5, 0x27, 0x4f, 0x33, 0xd4, 0xee, 0x71, 0x1b, 0xe9, 0x05, 0x48,
+ 0x21, 0xab, 0xdb, 0xa2, 0x0c, 0x89, 0x3e, 0xf6, 0x2b, 0x5b, 0xdd, 0x96, 0xcc, 0x92, 0xc4, 0x30,
+ 0x46, 0x31, 0xe6, 0xa0, 0xce, 0xab, 0x8d, 0x1a, 0xca, 0x8e, 0x12, 0x82, 0x27, 0x7a, 0x08, 0x76,
+ 0x68, 0xbf, 0xcc, 0xc1, 0x71, 0x7a, 0x09, 0x52, 0xe8, 0x75, 0x17, 0x59, 0x4e, 0xc3, 0xb6, 0xb2,
+ 0x63, 0x84, 0xe4, 0xf1, 0x10, 0x2f, 0xa2, 0x66, 0x5d, 0xa6, 0xf0, 0x71, 0xfa, 0x35, 0x18, 0xb3,
+ 0xdb, 0x6e, 0xc3, 0xb6, 0x9c, 0x6c, 0xf2, 0xac, 0xb2, 0x90, 0x5e, 0x3e, 0x13, 0x1a, 0x08, 0x5b,
+ 0x54, 0xc6, 0xe0, 0xc2, 0xfa, 0x3a, 0x68, 0x8e, 0xdd, 0xed, 0xd4, 0x50, 0xb5, 0x66, 0xd7, 0x51,
+ 0xb5, 0x61, 0x1d, 0xd8, 0xd9, 0x14, 0x21, 0x98, 0xef, 0x7d, 0x10, 0x22, 0x58, 0xb2, 0xeb, 0x68,
+ 0xdd, 0x3a, 0xb0, 0x8d, 0x09, 0x27, 0x70, 0xad, 0xcf, 0xc0, 0xa8, 0x73, 0x6c, 0xb9, 0xe6, 0xeb,
+ 0xd9, 0x0c, 0x89, 0x10, 0x76, 0x95, 0xfb, 0xbd, 0x51, 0x98, 0x1c, 0x26, 0xc4, 0x6e, 0x41, 0xe2,
+ 0x00, 0x3f, 0x65, 0x36, 0x76, 0x12, 0x1b, 0x50, 0x4c, 0xd0, 0x88, 0xa3, 0x0f, 0x68, 0xc4, 0x02,
+ 0xa4, 0x2d, 0xe4, 0xb8, 0xa8, 0x4e, 0x23, 0x42, 0x1d, 0x32, 0xa6, 0x80, 0x82, 0x7a, 0x43, 0x2a,
+ 0xfe, 0x40, 0x21, 0xf5, 0x22, 0x4c, 0x7a, 0x2a, 0x55, 0x3b, 0xa6, 0x75, 0xc8, 0x63, 0xf3, 0x62,
+ 0x94, 0x26, 0x4b, 0x65, 0x8e, 0x33, 0x30, 0xcc, 0x98, 0x40, 0x81, 0x6b, 0x7d, 0x15, 0xc0, 0xb6,
+ 0x90, 0x7d, 0x50, 0xad, 0xa3, 0x5a, 0x33, 0x9b, 0xec, 0x63, 0xa5, 0x2d, 0x2c, 0xd2, 0x63, 0x25,
+ 0x9b, 0xb6, 0xd6, 0x9a, 0xfa, 0x4d, 0x3f, 0xd4, 0xc6, 0xfa, 0x44, 0xca, 0x26, 0x4d, 0xb2, 0x9e,
+ 0x68, 0xdb, 0x83, 0x89, 0x0e, 0xc2, 0x71, 0x8f, 0xea, 0xec, 0xc9, 0x52, 0x44, 0x89, 0xa5, 0xc8,
+ 0x27, 0x33, 0x18, 0x8c, 0x3e, 0xd8, 0x78, 0x47, 0xbc, 0xd4, 0x1f, 0x03, 0xaf, 0xa1, 0x4a, 0xc2,
+ 0x0a, 0xc8, 0x28, 0x94, 0xe1, 0x8d, 0x15, 0xb3, 0x85, 0x66, 0xdf, 0x80, 0x89, 0xa0, 0x79, 0xf4,
+ 0x53, 0x90, 0x70, 0x5c, 0xb3, 0xe3, 0x92, 0x28, 0x4c, 0x18, 0xf4, 0x42, 0xd7, 0x40, 0x45, 0x56,
+ 0x9d, 0x8c, 0x72, 0x09, 0x03, 0x7f, 0xd4, 0x7f, 0xce, 0x7f, 0x60, 0x95, 0x3c, 0xf0, 0x85, 0x5e,
+ 0x8f, 0x06, 0x98, 0xe5, 0xe7, 0x9e, 0xbd, 0x0e, 0xe3, 0x81, 0x07, 0x18, 0xf6, 0xd6, 0xb9, 0x3f,
+ 0x0f, 0xa7, 0x43, 0xa9, 0xf5, 0x17, 0xe1, 0x54, 0xd7, 0x6a, 0x58, 0x2e, 0xea, 0xb4, 0x3b, 0x08,
+ 0x47, 0x2c, 0xbd, 0x55, 0xf6, 0x0f, 0xc7, 0xfa, 0xc4, 0xdc, 0x9e, 0x28, 0x4d, 0x59, 0x8c, 0xe9,
+ 0x6e, 0x6f, 0xe3, 0x62, 0x2a, 0xf9, 0xfd, 0x31, 0xed, 0xcd, 0x37, 0xdf, 0x7c, 0x33, 0x96, 0xfb,
+ 0xcc, 0x28, 0x9c, 0x0a, 0xcb, 0x99, 0xd0, 0xf4, 0x9d, 0x81, 0x51, 0xab, 0xdb, 0xda, 0x47, 0x1d,
+ 0x62, 0xa4, 0x84, 0xc1, 0xae, 0xf4, 0x02, 0x24, 0x9a, 0xe6, 0x3e, 0x6a, 0x66, 0xe3, 0x67, 0x95,
+ 0x85, 0x89, 0xe5, 0x8f, 0x0c, 0x95, 0x95, 0x4b, 0x1b, 0x18, 0x62, 0x50, 0xa4, 0xfe, 0x2c, 0xc4,
+ 0xd9, 0x10, 0x8d, 0x19, 0x16, 0x87, 0x63, 0xc0, 0xb9, 0x64, 0x10, 0x9c, 0xfe, 0x08, 0xa4, 0xf0,
+ 0xff, 0x34, 0x36, 0x46, 0x89, 0xce, 0x49, 0xdc, 0x80, 0xe3, 0x42, 0x9f, 0x85, 0x24, 0x49, 0x93,
+ 0x3a, 0xe2, 0x53, 0x9b, 0x77, 0x8d, 0x03, 0xab, 0x8e, 0x0e, 0xcc, 0x6e, 0xd3, 0xad, 0xbe, 0x6a,
+ 0x36, 0xbb, 0x88, 0x04, 0x7c, 0xca, 0xc8, 0xb0, 0xc6, 0x4f, 0xe0, 0x36, 0x7d, 0x1e, 0xd2, 0x34,
+ 0xab, 0x1a, 0x56, 0x1d, 0xbd, 0x4e, 0x46, 0xcf, 0x84, 0x41, 0x13, 0x6d, 0x1d, 0xb7, 0xe0, 0xdb,
+ 0xbf, 0xec, 0xd8, 0x16, 0x0f, 0x4d, 0x72, 0x0b, 0xdc, 0x40, 0x6e, 0x7f, 0x5d, 0x1e, 0xb8, 0x1f,
+ 0x0d, 0x7f, 0x3c, 0x39, 0xa6, 0x72, 0x5f, 0x8f, 0x41, 0x9c, 0x8c, 0x17, 0x93, 0x90, 0xde, 0xbd,
+ 0xbb, 0x5d, 0xae, 0xae, 0x6e, 0xed, 0x15, 0x37, 0xca, 0x9a, 0xa2, 0x4f, 0x00, 0x90, 0x86, 0xb5,
+ 0x8d, 0xad, 0xc2, 0xae, 0x16, 0xf3, 0xae, 0xd7, 0x2b, 0xbb, 0xd7, 0x56, 0x34, 0xd5, 0x03, 0xec,
+ 0xd1, 0x86, 0xb8, 0x28, 0x70, 0x65, 0x59, 0x4b, 0xe8, 0x1a, 0x64, 0x28, 0xc1, 0xfa, 0x8b, 0xe5,
+ 0xd5, 0x6b, 0x2b, 0xda, 0x68, 0xb0, 0xe5, 0xca, 0xb2, 0x36, 0xa6, 0x8f, 0x43, 0x8a, 0xb4, 0x14,
+ 0xb7, 0xb6, 0x36, 0xb4, 0xa4, 0xc7, 0xb9, 0xb3, 0x6b, 0xac, 0x57, 0x6e, 0x6b, 0x29, 0x8f, 0xf3,
+ 0xb6, 0xb1, 0xb5, 0xb7, 0xad, 0x81, 0xc7, 0xb0, 0x59, 0xde, 0xd9, 0x29, 0xdc, 0x2e, 0x6b, 0x69,
+ 0x4f, 0xa2, 0x78, 0x77, 0xb7, 0xbc, 0xa3, 0x65, 0x02, 0x6a, 0x5d, 0x59, 0xd6, 0xc6, 0xbd, 0x5b,
+ 0x94, 0x2b, 0x7b, 0x9b, 0xda, 0x84, 0x3e, 0x05, 0xe3, 0xf4, 0x16, 0x5c, 0x89, 0x49, 0xa9, 0xe9,
+ 0xda, 0x8a, 0xa6, 0xf9, 0x8a, 0x50, 0x96, 0xa9, 0x40, 0xc3, 0xb5, 0x15, 0x4d, 0xcf, 0x95, 0x20,
+ 0x41, 0xa2, 0x4b, 0xd7, 0x61, 0x62, 0xa3, 0x50, 0x2c, 0x6f, 0x54, 0xb7, 0xb6, 0x77, 0xd7, 0xb7,
+ 0x2a, 0x85, 0x0d, 0x4d, 0xf1, 0xdb, 0x8c, 0xf2, 0xc7, 0xf7, 0xd6, 0x8d, 0xf2, 0xaa, 0x16, 0x13,
+ 0xdb, 0xb6, 0xcb, 0x85, 0xdd, 0xf2, 0xaa, 0xa6, 0xe6, 0x6a, 0x70, 0x2a, 0x6c, 0x9c, 0x0c, 0xcd,
+ 0x0c, 0xc1, 0xc5, 0xb1, 0x3e, 0x2e, 0x26, 0x5c, 0x3d, 0x2e, 0xfe, 0x6e, 0x0c, 0xa6, 0x43, 0xe6,
+ 0x8a, 0xd0, 0x9b, 0x3c, 0x07, 0x09, 0x1a, 0xa2, 0x74, 0xf6, 0x7c, 0x32, 0x74, 0xd2, 0x21, 0x01,
+ 0xdb, 0x33, 0x83, 0x12, 0x9c, 0x58, 0x41, 0xa8, 0x7d, 0x2a, 0x08, 0x4c, 0xd1, 0x33, 0xa6, 0xff,
+ 0xd9, 0x9e, 0x31, 0x9d, 0x4e, 0x7b, 0xd7, 0x86, 0x99, 0xf6, 0x48, 0xdb, 0xc9, 0xc6, 0xf6, 0x44,
+ 0xc8, 0xd8, 0x7e, 0x0b, 0xa6, 0x7a, 0x88, 0x86, 0x1e, 0x63, 0x3f, 0xa5, 0x40, 0xb6, 0x9f, 0x71,
+ 0x22, 0x46, 0xba, 0x58, 0x60, 0xa4, 0xbb, 0x25, 0x5b, 0xf0, 0x5c, 0x7f, 0x27, 0xf4, 0xf8, 0xfa,
+ 0xcb, 0x0a, 0xcc, 0x84, 0x57, 0x8a, 0xa1, 0x3a, 0x3c, 0x0b, 0xa3, 0x2d, 0xe4, 0x1e, 0xd9, 0xbc,
+ 0x5a, 0xba, 0x10, 0x32, 0x07, 0xe3, 0x6e, 0xd9, 0xd9, 0x0c, 0x25, 0x4e, 0xe2, 0x6a, 0xbf, 0x72,
+ 0x8f, 0x6a, 0xd3, 0xa3, 0xe9, 0x2f, 0xc5, 0xe0, 0x74, 0x28, 0x79, 0xa8, 0xa2, 0x8f, 0x02, 0x34,
+ 0xac, 0x76, 0xd7, 0xa5, 0x15, 0x11, 0x1d, 0x60, 0x53, 0xa4, 0x85, 0x0c, 0x5e, 0x78, 0xf0, 0xec,
+ 0xba, 0x5e, 0xbf, 0x4a, 0xfa, 0x81, 0x36, 0x11, 0x81, 0x1b, 0xbe, 0xa2, 0x71, 0xa2, 0xe8, 0x5c,
+ 0x9f, 0x27, 0xed, 0x09, 0xcc, 0x4b, 0xa0, 0xd5, 0x9a, 0x0d, 0x64, 0xb9, 0x55, 0xc7, 0xed, 0x20,
+ 0xb3, 0xd5, 0xb0, 0x0e, 0xc9, 0x0c, 0x92, 0xcc, 0x27, 0x0e, 0xcc, 0xa6, 0x83, 0x8c, 0x49, 0xda,
+ 0xbd, 0xc3, 0x7b, 0x31, 0x82, 0x04, 0x50, 0x47, 0x40, 0x8c, 0x06, 0x10, 0xb4, 0xdb, 0x43, 0xe4,
+ 0xfe, 0x7a, 0x0a, 0xd2, 0x42, 0x5d, 0xad, 0x9f, 0x83, 0xcc, 0xcb, 0xe6, 0xab, 0x66, 0x95, 0xbf,
+ 0x2b, 0x51, 0x4b, 0xa4, 0x71, 0xdb, 0x36, 0x7b, 0x5f, 0xba, 0x04, 0xa7, 0x88, 0x88, 0xdd, 0x75,
+ 0x51, 0xa7, 0x5a, 0x6b, 0x9a, 0x8e, 0x43, 0x8c, 0x96, 0x24, 0xa2, 0x3a, 0xee, 0xdb, 0xc2, 0x5d,
+ 0x25, 0xde, 0xa3, 0x5f, 0x85, 0x69, 0x82, 0x68, 0x75, 0x9b, 0x6e, 0xa3, 0xdd, 0x44, 0x55, 0xfc,
+ 0xf6, 0xe6, 0x90, 0x99, 0xc4, 0xd3, 0x6c, 0x0a, 0x4b, 0x6c, 0x32, 0x01, 0xac, 0x91, 0xa3, 0xaf,
+ 0xc2, 0xa3, 0x04, 0x76, 0x88, 0x2c, 0xd4, 0x31, 0x5d, 0x54, 0x45, 0x3f, 0xdf, 0x35, 0x9b, 0x4e,
+ 0xd5, 0xb4, 0xea, 0xd5, 0x23, 0xd3, 0x39, 0xca, 0x9e, 0xc2, 0x04, 0xc5, 0x58, 0x56, 0x31, 0x1e,
+ 0xc6, 0x82, 0xb7, 0x99, 0x5c, 0x99, 0x88, 0x15, 0xac, 0xfa, 0xf3, 0xa6, 0x73, 0xa4, 0xe7, 0x61,
+ 0x86, 0xb0, 0x38, 0x6e, 0xa7, 0x61, 0x1d, 0x56, 0x6b, 0x47, 0xa8, 0xf6, 0x4a, 0xb5, 0xeb, 0x1e,
+ 0xdc, 0xc8, 0x3e, 0x22, 0xde, 0x9f, 0x68, 0xb8, 0x43, 0x64, 0x4a, 0x58, 0x64, 0xcf, 0x3d, 0xb8,
+ 0xa1, 0xef, 0x40, 0x06, 0x3b, 0xa3, 0xd5, 0x78, 0x03, 0x55, 0x0f, 0xec, 0x0e, 0x99, 0x1a, 0x27,
+ 0x42, 0x86, 0x26, 0xc1, 0x82, 0x4b, 0x5b, 0x0c, 0xb0, 0x69, 0xd7, 0x51, 0x3e, 0xb1, 0xb3, 0x5d,
+ 0x2e, 0xaf, 0x1a, 0x69, 0xce, 0xb2, 0x66, 0x77, 0x70, 0x40, 0x1d, 0xda, 0x9e, 0x81, 0xd3, 0x34,
+ 0xa0, 0x0e, 0x6d, 0x6e, 0xde, 0xab, 0x30, 0x5d, 0xab, 0xd1, 0x67, 0x6e, 0xd4, 0xaa, 0xec, 0x1d,
+ 0xcb, 0xc9, 0x6a, 0x01, 0x63, 0xd5, 0x6a, 0xb7, 0xa9, 0x00, 0x8b, 0x71, 0x47, 0xbf, 0x09, 0xa7,
+ 0x7d, 0x63, 0x89, 0xc0, 0xa9, 0x9e, 0xa7, 0x94, 0xa1, 0x57, 0x61, 0xba, 0x7d, 0xdc, 0x0b, 0xd4,
+ 0x03, 0x77, 0x6c, 0x1f, 0xcb, 0xb0, 0xeb, 0x70, 0xaa, 0x7d, 0xd4, 0xee, 0xc5, 0x2d, 0x8a, 0x38,
+ 0xbd, 0x7d, 0xd4, 0x96, 0x81, 0x8f, 0x93, 0x17, 0xee, 0x0e, 0xaa, 0x99, 0x2e, 0xaa, 0x67, 0x1f,
+ 0x12, 0xc5, 0x85, 0x0e, 0xfd, 0x22, 0x68, 0xb5, 0x5a, 0x15, 0x59, 0xe6, 0x7e, 0x13, 0x55, 0xcd,
+ 0x0e, 0xb2, 0x4c, 0x27, 0x3b, 0x2f, 0x0a, 0x4f, 0xd4, 0x6a, 0x65, 0xd2, 0x5b, 0x20, 0x9d, 0xfa,
+ 0x22, 0x4c, 0xd9, 0xfb, 0x2f, 0xd7, 0x68, 0x48, 0x56, 0xdb, 0x1d, 0x74, 0xd0, 0x78, 0x3d, 0x7b,
+ 0x9e, 0xd8, 0x77, 0x12, 0x77, 0x90, 0x80, 0xdc, 0x26, 0xcd, 0xfa, 0x93, 0xa0, 0xd5, 0x9c, 0x23,
+ 0xb3, 0xd3, 0x26, 0x63, 0xb2, 0xd3, 0x36, 0x6b, 0x28, 0xfb, 0x38, 0x15, 0xa5, 0xed, 0x15, 0xde,
+ 0x8c, 0x53, 0xc2, 0x79, 0xad, 0x71, 0xe0, 0x72, 0xc6, 0x27, 0x68, 0x4a, 0x90, 0x36, 0xc6, 0xb6,
+ 0x00, 0x1a, 0x36, 0x45, 0xe0, 0xc6, 0x0b, 0x44, 0x6c, 0xa2, 0x7d, 0xd4, 0x16, 0xef, 0xfb, 0x18,
+ 0x8c, 0x63, 0x49, 0xff, 0xa6, 0x4f, 0xd2, 0x82, 0xac, 0x7d, 0x24, 0xdc, 0x71, 0x05, 0x66, 0xb0,
+ 0x50, 0x0b, 0xb9, 0x66, 0xdd, 0x74, 0x4d, 0x41, 0xfa, 0x29, 0x22, 0x8d, 0xed, 0xbe, 0xc9, 0x3a,
+ 0x03, 0x7a, 0x76, 0xba, 0xfb, 0xc7, 0x5e, 0x64, 0x3d, 0x4d, 0xf5, 0xc4, 0x6d, 0x3c, 0xb6, 0x3e,
+ 0xb4, 0xa2, 0x3b, 0x97, 0x87, 0x8c, 0x18, 0xf8, 0x7a, 0x0a, 0x68, 0xe8, 0x6b, 0x0a, 0xae, 0x82,
+ 0x4a, 0x5b, 0xab, 0xb8, 0x7e, 0xf9, 0x64, 0x59, 0x8b, 0xe1, 0x3a, 0x6a, 0x63, 0x7d, 0xb7, 0x5c,
+ 0x35, 0xf6, 0x2a, 0xbb, 0xeb, 0x9b, 0x65, 0x4d, 0x15, 0x0b, 0xf6, 0x6f, 0xc6, 0x60, 0x22, 0xf8,
+ 0xee, 0xa5, 0x7f, 0x14, 0x1e, 0xe2, 0x0b, 0x25, 0x0e, 0x72, 0xab, 0xaf, 0x35, 0x3a, 0x24, 0x17,
+ 0x5b, 0x26, 0x9d, 0x17, 0xbd, 0x68, 0x38, 0xc5, 0xa4, 0x76, 0x90, 0xfb, 0x42, 0xa3, 0x83, 0x33,
+ 0xad, 0x65, 0xba, 0xfa, 0x06, 0xcc, 0x5b, 0x76, 0xd5, 0x71, 0x4d, 0xab, 0x6e, 0x76, 0xea, 0x55,
+ 0x7f, 0x89, 0xaa, 0x6a, 0xd6, 0x6a, 0xc8, 0x71, 0x6c, 0x3a, 0x07, 0x7a, 0x2c, 0x67, 0x2c, 0x7b,
+ 0x87, 0x09, 0xfb, 0x93, 0x43, 0x81, 0x89, 0x4a, 0x91, 0xab, 0xf6, 0x8b, 0xdc, 0x47, 0x20, 0xd5,
+ 0x32, 0xdb, 0x55, 0x64, 0xb9, 0x9d, 0x63, 0x52, 0x71, 0x27, 0x8d, 0x64, 0xcb, 0x6c, 0x97, 0xf1,
+ 0xf5, 0x4f, 0xe6, 0xc5, 0xe7, 0xbf, 0xaa, 0x90, 0x11, 0xab, 0x6e, 0xfc, 0x12, 0x53, 0x23, 0x13,
+ 0x94, 0x42, 0x86, 0xb0, 0xc7, 0x06, 0xd6, 0xe8, 0x4b, 0x25, 0x3c, 0x73, 0xe5, 0x47, 0x69, 0x2d,
+ 0x6c, 0x50, 0x24, 0xae, 0x1a, 0x70, 0x68, 0x21, 0x5a, 0x7b, 0x24, 0x0d, 0x76, 0xa5, 0xdf, 0x86,
+ 0xd1, 0x97, 0x1d, 0xc2, 0x3d, 0x4a, 0xb8, 0xcf, 0x0f, 0xe6, 0xbe, 0xb3, 0x43, 0xc8, 0x53, 0x77,
+ 0x76, 0xaa, 0x95, 0x2d, 0x63, 0xb3, 0xb0, 0x61, 0x30, 0xb8, 0xfe, 0x30, 0xc4, 0x9b, 0xe6, 0x1b,
+ 0xc7, 0xc1, 0x39, 0x8e, 0x34, 0x0d, 0x6b, 0xf8, 0x87, 0x21, 0xfe, 0x1a, 0x32, 0x5f, 0x09, 0xce,
+ 0x2c, 0xa4, 0xe9, 0x43, 0x0c, 0xfd, 0x8b, 0x90, 0x20, 0xf6, 0xd2, 0x01, 0x98, 0xc5, 0xb4, 0x11,
+ 0x3d, 0x09, 0xf1, 0xd2, 0x96, 0x81, 0xc3, 0x5f, 0x83, 0x0c, 0x6d, 0xad, 0x6e, 0xaf, 0x97, 0x4b,
+ 0x65, 0x2d, 0x96, 0xbb, 0x0a, 0xa3, 0xd4, 0x08, 0x38, 0x35, 0x3c, 0x33, 0x68, 0x23, 0xec, 0x92,
+ 0x71, 0x28, 0xbc, 0x77, 0x6f, 0xb3, 0x58, 0x36, 0xb4, 0x98, 0xe8, 0x5e, 0x07, 0x32, 0x62, 0xc1,
+ 0xfd, 0x93, 0x89, 0xa9, 0x6f, 0x28, 0x90, 0x16, 0x0a, 0x68, 0x5c, 0xf9, 0x98, 0xcd, 0xa6, 0xfd,
+ 0x5a, 0xd5, 0x6c, 0x36, 0x4c, 0x87, 0x05, 0x05, 0x90, 0xa6, 0x02, 0x6e, 0x19, 0xd6, 0x69, 0x3f,
+ 0x11, 0xe5, 0xbf, 0xa0, 0x80, 0x26, 0xd7, 0xae, 0x92, 0x82, 0xca, 0x4f, 0x55, 0xc1, 0xcf, 0x29,
+ 0x30, 0x11, 0x2c, 0x58, 0x25, 0xf5, 0xce, 0xfd, 0x54, 0xd5, 0xfb, 0x4e, 0x0c, 0xc6, 0x03, 0x65,
+ 0xea, 0xb0, 0xda, 0xfd, 0x3c, 0x4c, 0x35, 0xea, 0xa8, 0xd5, 0xb6, 0x5d, 0x64, 0xd5, 0x8e, 0xab,
+ 0x4d, 0xf4, 0x2a, 0x6a, 0x66, 0x73, 0x64, 0xa0, 0xb8, 0x38, 0xb8, 0x10, 0x5e, 0x5a, 0xf7, 0x71,
+ 0x1b, 0x18, 0x96, 0x9f, 0x5e, 0x5f, 0x2d, 0x6f, 0x6e, 0x6f, 0xed, 0x96, 0x2b, 0xa5, 0xbb, 0xd5,
+ 0xbd, 0xca, 0xc7, 0x2a, 0x5b, 0x2f, 0x54, 0x0c, 0xad, 0x21, 0x89, 0x7d, 0x88, 0xa9, 0xbe, 0x0d,
+ 0x9a, 0xac, 0x94, 0xfe, 0x10, 0x84, 0xa9, 0xa5, 0x8d, 0xe8, 0xd3, 0x30, 0x59, 0xd9, 0xaa, 0xee,
+ 0xac, 0xaf, 0x96, 0xab, 0xe5, 0xb5, 0xb5, 0x72, 0x69, 0x77, 0x87, 0x2e, 0x6d, 0x78, 0xd2, 0xbb,
+ 0xc1, 0xa4, 0xfe, 0xac, 0x0a, 0xd3, 0x21, 0x9a, 0xe8, 0x05, 0xf6, 0x52, 0x42, 0xdf, 0x93, 0x9e,
+ 0x1e, 0x46, 0xfb, 0x25, 0x5c, 0x15, 0x6c, 0x9b, 0x1d, 0x97, 0xbd, 0xc3, 0x3c, 0x09, 0xd8, 0x4a,
+ 0x96, 0xdb, 0x38, 0x68, 0xa0, 0x0e, 0x5b, 0x09, 0xa2, 0x6f, 0x2a, 0x93, 0x7e, 0x3b, 0x5d, 0x0c,
+ 0x7a, 0x0a, 0xf4, 0xb6, 0xed, 0x34, 0xdc, 0xc6, 0xab, 0xa8, 0xda, 0xb0, 0xf8, 0xb2, 0x11, 0x7e,
+ 0x73, 0x89, 0x1b, 0x1a, 0xef, 0x59, 0xb7, 0x5c, 0x4f, 0xda, 0x42, 0x87, 0xa6, 0x24, 0x8d, 0x07,
+ 0x70, 0xd5, 0xd0, 0x78, 0x8f, 0x27, 0x7d, 0x0e, 0x32, 0x75, 0xbb, 0x8b, 0xcb, 0x39, 0x2a, 0x87,
+ 0xe7, 0x0b, 0xc5, 0x48, 0xd3, 0x36, 0x4f, 0x84, 0x15, 0xea, 0xfe, 0x7a, 0x55, 0xc6, 0x48, 0xd3,
+ 0x36, 0x2a, 0xf2, 0x04, 0x4c, 0x9a, 0x87, 0x87, 0x1d, 0x4c, 0xce, 0x89, 0xe8, 0xab, 0xc7, 0x84,
+ 0xd7, 0x4c, 0x04, 0x67, 0xef, 0x40, 0x92, 0xdb, 0x01, 0x4f, 0xc9, 0xd8, 0x12, 0xd5, 0x36, 0x7d,
+ 0x9f, 0x8e, 0x2d, 0xa4, 0x8c, 0xa4, 0xc5, 0x3b, 0xcf, 0x41, 0xa6, 0xe1, 0x54, 0xfd, 0xe5, 0xf7,
+ 0xd8, 0xd9, 0xd8, 0x42, 0xd2, 0x48, 0x37, 0x1c, 0x6f, 0xe9, 0x32, 0xf7, 0xe5, 0x18, 0x4c, 0x04,
+ 0xb7, 0x0f, 0xf4, 0x55, 0x48, 0x36, 0xed, 0x9a, 0x49, 0x42, 0x8b, 0xee, 0x5d, 0x2d, 0x44, 0xec,
+ 0x38, 0x2c, 0x6d, 0x30, 0x79, 0xc3, 0x43, 0xce, 0xfe, 0x47, 0x05, 0x92, 0xbc, 0x59, 0x9f, 0x81,
+ 0x78, 0xdb, 0x74, 0x8f, 0x08, 0x5d, 0xa2, 0x18, 0xd3, 0x14, 0x83, 0x5c, 0xe3, 0x76, 0xa7, 0x6d,
+ 0x5a, 0x24, 0x04, 0x58, 0x3b, 0xbe, 0xc6, 0x7e, 0x6d, 0x22, 0xb3, 0x4e, 0xde, 0x6b, 0xec, 0x56,
+ 0x0b, 0x59, 0xae, 0xc3, 0xfd, 0xca, 0xda, 0x4b, 0xac, 0x59, 0xff, 0x08, 0x4c, 0xb9, 0x1d, 0xb3,
+ 0xd1, 0x0c, 0xc8, 0xc6, 0x89, 0xac, 0xc6, 0x3b, 0x3c, 0xe1, 0x3c, 0x3c, 0xcc, 0x79, 0xeb, 0xc8,
+ 0x35, 0x6b, 0x47, 0xa8, 0xee, 0x83, 0x46, 0xc9, 0xfa, 0xc5, 0x43, 0x4c, 0x60, 0x95, 0xf5, 0x73,
+ 0x6c, 0xee, 0x0f, 0x14, 0x98, 0xe2, 0x6f, 0x62, 0x75, 0xcf, 0x58, 0x9b, 0x00, 0xa6, 0x65, 0xd9,
+ 0xae, 0x68, 0xae, 0xde, 0x50, 0xee, 0xc1, 0x2d, 0x15, 0x3c, 0x90, 0x21, 0x10, 0xcc, 0xb6, 0x00,
+ 0xfc, 0x9e, 0xbe, 0x66, 0x9b, 0x87, 0x34, 0xdb, 0x1b, 0x22, 0x1b, 0x8c, 0xf4, 0xdd, 0x1d, 0x68,
+ 0x13, 0x7e, 0x65, 0xd3, 0x4f, 0x41, 0x62, 0x1f, 0x1d, 0x36, 0x2c, 0xb6, 0xe2, 0x4b, 0x2f, 0xf8,
+ 0x0a, 0x4b, 0xdc, 0x5b, 0x61, 0x29, 0xbe, 0x04, 0xd3, 0x35, 0xbb, 0x25, 0xab, 0x5b, 0xd4, 0xa4,
+ 0xf5, 0x03, 0xe7, 0x79, 0xe5, 0x93, 0xe0, 0x97, 0x98, 0x3f, 0x52, 0x94, 0x5f, 0x8d, 0xa9, 0xb7,
+ 0xb7, 0x8b, 0xbf, 0x15, 0x9b, 0xbd, 0x4d, 0xa1, 0xdb, 0xfc, 0x49, 0x0d, 0x74, 0xd0, 0x44, 0x35,
+ 0xac, 0x3d, 0xfc, 0xc6, 0x47, 0xe0, 0xe9, 0xc3, 0x86, 0x7b, 0xd4, 0xdd, 0x5f, 0xaa, 0xd9, 0xad,
+ 0x8b, 0x87, 0xf6, 0xa1, 0xed, 0xef, 0xa9, 0xe2, 0x2b, 0x72, 0x41, 0x3e, 0xb1, 0x7d, 0xd5, 0x94,
+ 0xd7, 0x3a, 0x1b, 0xb9, 0x09, 0x9b, 0xaf, 0xc0, 0x34, 0x13, 0xae, 0x92, 0x8d, 0x1d, 0xfa, 0x7a,
+ 0xa2, 0x0f, 0x5c, 0x1c, 0xcb, 0xfe, 0xf6, 0xf7, 0xc8, 0x74, 0x6d, 0x4c, 0x31, 0x28, 0xee, 0xa3,
+ 0x6f, 0x30, 0x79, 0x03, 0x4e, 0x07, 0xf8, 0x68, 0x6a, 0xa2, 0x4e, 0x04, 0xe3, 0x37, 0x19, 0xe3,
+ 0xb4, 0xc0, 0xb8, 0xc3, 0xa0, 0xf9, 0x12, 0x8c, 0x9f, 0x84, 0xeb, 0xdf, 0x31, 0xae, 0x0c, 0x12,
+ 0x49, 0x6e, 0xc3, 0x24, 0x21, 0xa9, 0x75, 0x1d, 0xd7, 0x6e, 0x91, 0x71, 0x6f, 0x30, 0xcd, 0xbf,
+ 0xff, 0x1e, 0xcd, 0x95, 0x09, 0x0c, 0x2b, 0x79, 0xa8, 0x7c, 0x1e, 0xc8, 0x5e, 0x56, 0x1d, 0xd5,
+ 0x9a, 0x11, 0x0c, 0xf7, 0x98, 0x22, 0x9e, 0x7c, 0xfe, 0x13, 0x70, 0x0a, 0x7f, 0x26, 0xc3, 0x92,
+ 0xa8, 0x49, 0xf4, 0x4a, 0x5a, 0xf6, 0x0f, 0x3e, 0x45, 0xd3, 0x71, 0xda, 0x23, 0x10, 0x74, 0x12,
+ 0xbc, 0x78, 0x88, 0x5c, 0x17, 0x75, 0x9c, 0xaa, 0xd9, 0x0c, 0x53, 0x4f, 0x58, 0x8a, 0xc8, 0xfe,
+ 0xca, 0x0f, 0x82, 0x5e, 0xbc, 0x4d, 0x91, 0x85, 0x66, 0x33, 0xbf, 0x07, 0x0f, 0x85, 0x44, 0xc5,
+ 0x10, 0x9c, 0x9f, 0x65, 0x9c, 0xa7, 0x7a, 0x22, 0x03, 0xd3, 0x6e, 0x03, 0x6f, 0xf7, 0x7c, 0x39,
+ 0x04, 0xe7, 0x3f, 0x64, 0x9c, 0x3a, 0xc3, 0x72, 0x97, 0x62, 0xc6, 0x3b, 0x30, 0xf5, 0x2a, 0xea,
+ 0xec, 0xdb, 0x0e, 0x5b, 0xfe, 0x19, 0x82, 0xee, 0x73, 0x8c, 0x6e, 0x92, 0x01, 0xc9, 0x7a, 0x10,
+ 0xe6, 0xba, 0x09, 0xc9, 0x03, 0xb3, 0x86, 0x86, 0xa0, 0xf8, 0x3c, 0xa3, 0x18, 0xc3, 0xf2, 0x18,
+ 0x5a, 0x80, 0xcc, 0xa1, 0xcd, 0x66, 0xa6, 0x68, 0xf8, 0x17, 0x18, 0x3c, 0xcd, 0x31, 0x8c, 0xa2,
+ 0x6d, 0xb7, 0xbb, 0x4d, 0x3c, 0x6d, 0x45, 0x53, 0x7c, 0x91, 0x53, 0x70, 0x0c, 0xa3, 0x38, 0x81,
+ 0x59, 0xdf, 0xe2, 0x14, 0x8e, 0x60, 0xcf, 0xe7, 0x20, 0x6d, 0x5b, 0xcd, 0x63, 0xdb, 0x1a, 0x46,
+ 0x89, 0x2f, 0x31, 0x06, 0x60, 0x10, 0x4c, 0x70, 0x0b, 0x52, 0xc3, 0x3a, 0xe2, 0xd7, 0x7f, 0xc0,
+ 0xd3, 0x83, 0x7b, 0xe0, 0x36, 0x4c, 0xf2, 0x01, 0xaa, 0x61, 0x5b, 0x43, 0x50, 0xfc, 0x06, 0xa3,
+ 0x98, 0x10, 0x60, 0xec, 0x31, 0x5c, 0xe4, 0xb8, 0x87, 0x68, 0x18, 0x92, 0x2f, 0xf3, 0xc7, 0x60,
+ 0x10, 0x66, 0xca, 0x7d, 0x64, 0xd5, 0x8e, 0x86, 0x63, 0xf8, 0x0a, 0x37, 0x25, 0xc7, 0x60, 0x8a,
+ 0x12, 0x8c, 0xb7, 0xcc, 0x8e, 0x73, 0x64, 0x36, 0x87, 0x72, 0xc7, 0x6f, 0x32, 0x8e, 0x8c, 0x07,
+ 0x62, 0x16, 0xe9, 0x5a, 0x27, 0xa1, 0xf9, 0x2d, 0x6e, 0x11, 0x01, 0xc6, 0x52, 0xcf, 0x71, 0xc9,
+ 0x5a, 0xd9, 0x49, 0xd8, 0xfe, 0x11, 0x4f, 0x3d, 0x8a, 0xdd, 0x14, 0x19, 0x6f, 0x41, 0xca, 0x69,
+ 0xbc, 0x31, 0x14, 0xcd, 0x3f, 0xe6, 0x9e, 0x26, 0x00, 0x0c, 0xbe, 0x0b, 0x0f, 0x87, 0x4e, 0x13,
+ 0x43, 0x90, 0xfd, 0x13, 0x46, 0x36, 0x13, 0x32, 0x55, 0xb0, 0x21, 0xe1, 0xa4, 0x94, 0xff, 0x94,
+ 0x0f, 0x09, 0x48, 0xe2, 0xda, 0xc6, 0xef, 0x0a, 0x8e, 0x79, 0x70, 0x32, 0xab, 0xfd, 0x33, 0x6e,
+ 0x35, 0x8a, 0x0d, 0x58, 0x6d, 0x17, 0x66, 0x18, 0xe3, 0xc9, 0xfc, 0xfa, 0x55, 0x3e, 0xb0, 0x52,
+ 0xf4, 0x5e, 0xd0, 0xbb, 0x2f, 0xc1, 0xac, 0x67, 0x4e, 0x5e, 0x94, 0x3a, 0xd5, 0x96, 0xd9, 0x1e,
+ 0x82, 0xf9, 0xb7, 0x19, 0x33, 0x1f, 0xf1, 0xbd, 0xaa, 0xd6, 0xd9, 0x34, 0xdb, 0x98, 0xfc, 0x45,
+ 0xc8, 0x72, 0xf2, 0xae, 0xd5, 0x41, 0x35, 0xfb, 0xd0, 0x6a, 0xbc, 0x81, 0xea, 0x43, 0x50, 0x7f,
+ 0x4d, 0x72, 0xd5, 0x9e, 0x00, 0xc7, 0xcc, 0xeb, 0xa0, 0x79, 0xb5, 0x4a, 0xb5, 0xd1, 0x6a, 0xdb,
+ 0x1d, 0x37, 0x82, 0xf1, 0x9f, 0x73, 0x4f, 0x79, 0xb8, 0x75, 0x02, 0xcb, 0x97, 0x61, 0x82, 0x5c,
+ 0x0e, 0x1b, 0x92, 0xbf, 0xc3, 0x88, 0xc6, 0x7d, 0x14, 0x1b, 0x38, 0x6a, 0x76, 0xab, 0x6d, 0x76,
+ 0x86, 0x19, 0xff, 0xfe, 0x05, 0x1f, 0x38, 0x18, 0x84, 0x0d, 0x1c, 0xee, 0x71, 0x1b, 0xe1, 0xd9,
+ 0x7e, 0x08, 0x86, 0xaf, 0xf3, 0x81, 0x83, 0x63, 0x18, 0x05, 0x2f, 0x18, 0x86, 0xa0, 0xf8, 0x97,
+ 0x9c, 0x82, 0x63, 0x30, 0xc5, 0xc7, 0xfd, 0x89, 0xb6, 0x83, 0x0e, 0x1b, 0x8e, 0xdb, 0xa1, 0xa5,
+ 0xf0, 0x60, 0xaa, 0xdf, 0xfd, 0x41, 0xb0, 0x08, 0x33, 0x04, 0x28, 0x1e, 0x89, 0xd8, 0x12, 0x2a,
+ 0x79, 0x53, 0x8a, 0x56, 0xec, 0xf7, 0xf8, 0x48, 0x24, 0xc0, 0xb0, 0x6e, 0x42, 0x85, 0x88, 0xcd,
+ 0x5e, 0xc3, 0xef, 0x07, 0x43, 0xd0, 0x7d, 0x43, 0x52, 0x6e, 0x87, 0x63, 0x31, 0xa7, 0x50, 0xff,
+ 0x74, 0xad, 0x57, 0xd0, 0xf1, 0x50, 0xd1, 0xf9, 0xaf, 0xa4, 0xfa, 0x67, 0x8f, 0x22, 0xe9, 0x18,
+ 0x32, 0x29, 0xd5, 0x53, 0x7a, 0xd4, 0x29, 0xa0, 0xec, 0x5f, 0x7c, 0x8f, 0x3d, 0x6f, 0xb0, 0x9c,
+ 0xca, 0x6f, 0xe0, 0x20, 0x0f, 0x16, 0x3d, 0xd1, 0x64, 0x9f, 0x7a, 0xcf, 0x8b, 0xf3, 0x40, 0xcd,
+ 0x93, 0x5f, 0x83, 0xf1, 0x40, 0xc1, 0x13, 0x4d, 0xf5, 0x97, 0x18, 0x55, 0x46, 0xac, 0x77, 0xf2,
+ 0x57, 0x21, 0x8e, 0x8b, 0x97, 0x68, 0xf8, 0x5f, 0x66, 0x70, 0x22, 0x9e, 0x7f, 0x06, 0x92, 0xbc,
+ 0x68, 0x89, 0x86, 0xfe, 0x22, 0x83, 0x7a, 0x10, 0x0c, 0xe7, 0x05, 0x4b, 0x34, 0xfc, 0xaf, 0x70,
+ 0x38, 0x87, 0x60, 0xf8, 0xf0, 0x26, 0x7c, 0xfb, 0xaf, 0xc5, 0xd9, 0xa4, 0xc3, 0x6d, 0x77, 0x0b,
+ 0xc6, 0x58, 0xa5, 0x12, 0x8d, 0xfe, 0x25, 0x76, 0x73, 0x8e, 0xc8, 0x5f, 0x87, 0xc4, 0x90, 0x06,
+ 0xff, 0x1b, 0x0c, 0x4a, 0xe5, 0xf3, 0x25, 0x48, 0x0b, 0xd5, 0x49, 0x34, 0xfc, 0x6f, 0x32, 0xb8,
+ 0x88, 0xc2, 0xaa, 0xb3, 0xea, 0x24, 0x9a, 0xe0, 0x6f, 0x71, 0xd5, 0x19, 0x02, 0x9b, 0x8d, 0x17,
+ 0x26, 0xd1, 0xe8, 0xbf, 0xcd, 0xad, 0xce, 0x21, 0xf9, 0xe7, 0x20, 0xe5, 0x4d, 0x36, 0xd1, 0xf8,
+ 0xbf, 0xc3, 0xf0, 0x3e, 0x06, 0x5b, 0x40, 0x98, 0xec, 0xa2, 0x29, 0xfe, 0x2e, 0xb7, 0x80, 0x80,
+ 0xc2, 0x69, 0x24, 0x17, 0x30, 0xd1, 0x4c, 0xbf, 0xcc, 0xd3, 0x48, 0xaa, 0x5f, 0xb0, 0x37, 0xc9,
+ 0x98, 0x1f, 0x4d, 0xf1, 0xf7, 0xb8, 0x37, 0x89, 0x3c, 0x56, 0x43, 0xae, 0x08, 0xa2, 0x39, 0xfe,
+ 0x01, 0x57, 0x43, 0x2a, 0x08, 0xf2, 0xdb, 0xa0, 0xf7, 0x56, 0x03, 0xd1, 0x7c, 0x9f, 0x61, 0x7c,
+ 0x53, 0x3d, 0xc5, 0x40, 0xfe, 0x05, 0x98, 0x09, 0xaf, 0x04, 0xa2, 0x59, 0x7f, 0xe5, 0x3d, 0xe9,
+ 0xdd, 0x4d, 0x2c, 0x04, 0xf2, 0xbb, 0xfe, 0x94, 0x22, 0x56, 0x01, 0xd1, 0xb4, 0x9f, 0x7d, 0x2f,
+ 0x38, 0x70, 0x8b, 0x45, 0x40, 0xbe, 0x00, 0xe0, 0x4f, 0xc0, 0xd1, 0x5c, 0x9f, 0x63, 0x5c, 0x02,
+ 0x08, 0xa7, 0x06, 0x9b, 0x7f, 0xa3, 0xf1, 0x9f, 0xe7, 0xa9, 0xc1, 0x10, 0x38, 0x35, 0xf8, 0xd4,
+ 0x1b, 0x8d, 0xfe, 0x02, 0x4f, 0x0d, 0x0e, 0xc1, 0x91, 0x2d, 0xcc, 0x6e, 0xd1, 0x0c, 0x5f, 0xe2,
+ 0x91, 0x2d, 0xa0, 0xf2, 0x15, 0x98, 0xea, 0x99, 0x10, 0xa3, 0xa9, 0x7e, 0x95, 0x51, 0x69, 0xf2,
+ 0x7c, 0x28, 0x4e, 0x5e, 0x6c, 0x32, 0x8c, 0x66, 0xfb, 0x35, 0x69, 0xf2, 0x62, 0x73, 0x61, 0xfe,
+ 0x16, 0x24, 0xad, 0x6e, 0xb3, 0x89, 0x93, 0x47, 0x1f, 0x7c, 0x72, 0x2f, 0xfb, 0xdf, 0x7f, 0xcc,
+ 0xac, 0xc3, 0x01, 0xf9, 0xab, 0x90, 0x40, 0xad, 0x7d, 0x54, 0x8f, 0x42, 0xfe, 0x8f, 0x1f, 0xf3,
+ 0x01, 0x13, 0x4b, 0xe7, 0x9f, 0x03, 0xa0, 0x4b, 0x23, 0x64, 0xdb, 0x2f, 0x02, 0xfb, 0x3f, 0x7f,
+ 0xcc, 0xce, 0xd4, 0xf8, 0x10, 0x9f, 0x80, 0x9e, 0xd0, 0x19, 0x4c, 0xf0, 0x83, 0x20, 0x01, 0xf1,
+ 0xc8, 0x4d, 0x18, 0x7b, 0xd9, 0xb1, 0x2d, 0xd7, 0x3c, 0x8c, 0x42, 0xff, 0x2f, 0x86, 0xe6, 0xf2,
+ 0xd8, 0x60, 0x2d, 0xbb, 0x83, 0x5c, 0xf3, 0xd0, 0x89, 0xc2, 0xfe, 0x6f, 0x86, 0xf5, 0x00, 0x18,
+ 0x5c, 0x33, 0x1d, 0x77, 0x98, 0xe7, 0xfe, 0x3f, 0x1c, 0xcc, 0x01, 0x58, 0x69, 0xfc, 0xf9, 0x15,
+ 0x74, 0x1c, 0x85, 0xfd, 0x21, 0x57, 0x9a, 0xc9, 0xe7, 0x9f, 0x81, 0x14, 0xfe, 0x48, 0x0f, 0xca,
+ 0x45, 0x80, 0xff, 0x2f, 0x03, 0xfb, 0x08, 0x7c, 0x67, 0xc7, 0xad, 0xbb, 0x8d, 0x68, 0x63, 0xff,
+ 0x11, 0xf3, 0x34, 0x97, 0xcf, 0x17, 0x20, 0xed, 0xb8, 0xf5, 0x7a, 0x97, 0xd5, 0xa7, 0x11, 0xf0,
+ 0xff, 0xf7, 0x63, 0x6f, 0xc9, 0xc2, 0xc3, 0x60, 0x6f, 0xbf, 0xf6, 0x8a, 0xdb, 0xb6, 0xc9, 0x36,
+ 0x47, 0x14, 0xc3, 0x7b, 0x8c, 0x41, 0x80, 0x14, 0xcb, 0xe1, 0xcb, 0xb7, 0x70, 0xdb, 0xbe, 0x6d,
+ 0xd3, 0x85, 0xdb, 0x4f, 0xe6, 0xa2, 0x57, 0x60, 0xe1, 0xbf, 0x35, 0xe1, 0x7a, 0x5f, 0x31, 0x3c,
+ 0x15, 0x5f, 0xac, 0xd9, 0xad, 0x7d, 0xdb, 0xb9, 0xb8, 0x6f, 0xbb, 0x47, 0x17, 0xdd, 0x23, 0x84,
+ 0xdb, 0xd8, 0x92, 0x6d, 0x1c, 0x7f, 0x9e, 0x3d, 0xd9, 0x3a, 0x2f, 0xd9, 0xc5, 0xaf, 0x34, 0xf0,
+ 0xa3, 0x55, 0xc8, 0x46, 0x8a, 0x7e, 0x06, 0x46, 0xc9, 0xc3, 0x5e, 0x26, 0x9b, 0x95, 0x4a, 0x31,
+ 0x7e, 0xef, 0x9d, 0xf9, 0x11, 0x83, 0xb5, 0x79, 0xbd, 0xcb, 0x64, 0xa5, 0x3b, 0x16, 0xe8, 0x5d,
+ 0xf6, 0x7a, 0xaf, 0xd0, 0xc5, 0xee, 0x40, 0xef, 0x15, 0xaf, 0x77, 0x85, 0x2c, 0x7b, 0xab, 0x81,
+ 0xde, 0x15, 0xaf, 0xf7, 0x2a, 0xd9, 0xda, 0x19, 0x0f, 0xf4, 0x5e, 0xf5, 0x7a, 0xaf, 0x91, 0x0d,
+ 0x9d, 0x78, 0xa0, 0xf7, 0x9a, 0xd7, 0x7b, 0x9d, 0xec, 0xe5, 0x4c, 0x05, 0x7a, 0xaf, 0x7b, 0xbd,
+ 0x37, 0xc8, 0x1e, 0x8e, 0x1e, 0xe8, 0xbd, 0xe1, 0xf5, 0xde, 0x24, 0x27, 0xaf, 0xc6, 0x02, 0xbd,
+ 0x37, 0xf5, 0x39, 0x18, 0xa3, 0x4f, 0x7e, 0x89, 0x6c, 0xf8, 0x4f, 0xb2, 0x6e, 0xde, 0xe8, 0xf7,
+ 0x5f, 0x26, 0xa7, 0xac, 0x46, 0x83, 0xfd, 0x97, 0xfd, 0xfe, 0x65, 0xf2, 0x85, 0x0f, 0x2d, 0xd8,
+ 0xbf, 0xec, 0xf7, 0x5f, 0xc9, 0x8e, 0x93, 0x93, 0x66, 0x81, 0xfe, 0x2b, 0x7e, 0xff, 0x4a, 0x76,
+ 0x02, 0x67, 0x4c, 0xb0, 0x7f, 0xc5, 0xef, 0xbf, 0x9a, 0x9d, 0x3c, 0xab, 0x2c, 0x64, 0x82, 0xfd,
+ 0x57, 0x73, 0xbf, 0x40, 0xdc, 0x6b, 0xf9, 0xee, 0x9d, 0x09, 0xba, 0xd7, 0x73, 0xec, 0x4c, 0xd0,
+ 0xb1, 0x9e, 0x4b, 0x67, 0x82, 0x2e, 0xf5, 0x9c, 0x39, 0x13, 0x74, 0xa6, 0xe7, 0xc6, 0x99, 0xa0,
+ 0x1b, 0x3d, 0x07, 0xce, 0x04, 0x1d, 0xe8, 0xb9, 0x6e, 0x26, 0xe8, 0x3a, 0xcf, 0x69, 0x33, 0x41,
+ 0xa7, 0x79, 0xee, 0x9a, 0x09, 0xba, 0xcb, 0x73, 0x54, 0x56, 0x72, 0x94, 0xef, 0xa2, 0xac, 0xe4,
+ 0x22, 0xdf, 0x39, 0x59, 0xc9, 0x39, 0xbe, 0x5b, 0xb2, 0x92, 0x5b, 0x7c, 0x87, 0x64, 0x25, 0x87,
+ 0xf8, 0xae, 0xc8, 0x4a, 0xae, 0xf0, 0x9d, 0xc0, 0x72, 0xcc, 0x40, 0xed, 0x90, 0x1c, 0x53, 0x07,
+ 0xe6, 0x98, 0x3a, 0x30, 0xc7, 0xd4, 0x81, 0x39, 0xa6, 0x0e, 0xcc, 0x31, 0x75, 0x60, 0x8e, 0xa9,
+ 0x03, 0x73, 0x4c, 0x1d, 0x98, 0x63, 0xea, 0xc0, 0x1c, 0x53, 0x07, 0xe7, 0x98, 0x1a, 0x91, 0x63,
+ 0x6a, 0x44, 0x8e, 0xa9, 0x11, 0x39, 0xa6, 0x46, 0xe4, 0x98, 0x1a, 0x91, 0x63, 0x6a, 0xdf, 0x1c,
+ 0xf3, 0xdd, 0x3b, 0x13, 0x74, 0x6f, 0x68, 0x8e, 0xa9, 0x7d, 0x72, 0x4c, 0xed, 0x93, 0x63, 0x6a,
+ 0x9f, 0x1c, 0x53, 0xfb, 0xe4, 0x98, 0xda, 0x27, 0xc7, 0xd4, 0x3e, 0x39, 0xa6, 0xf6, 0xc9, 0x31,
+ 0xb5, 0x5f, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6,
+ 0x98, 0xda, 0x37, 0xc7, 0x54, 0x31, 0xc7, 0xfe, 0xb5, 0x0a, 0x3a, 0xcd, 0xb1, 0x6d, 0x72, 0x64,
+ 0x8c, 0xb9, 0x62, 0x4e, 0xca, 0xb4, 0x51, 0xec, 0x3a, 0xcd, 0x77, 0xc9, 0x9c, 0x94, 0x6b, 0xc1,
+ 0xfe, 0x65, 0xaf, 0x9f, 0x67, 0x5b, 0xb0, 0xff, 0x8a, 0xd7, 0xcf, 0xf3, 0x2d, 0xd8, 0xbf, 0xe2,
+ 0xf5, 0xf3, 0x8c, 0x0b, 0xf6, 0x5f, 0xf5, 0xfa, 0x79, 0xce, 0x05, 0xfb, 0xaf, 0x79, 0xfd, 0x3c,
+ 0xeb, 0x82, 0xfd, 0xd7, 0xbd, 0x7e, 0x9e, 0x77, 0xc1, 0xfe, 0x1b, 0x5e, 0x3f, 0xcf, 0xbc, 0x60,
+ 0xff, 0x4d, 0xfd, 0xac, 0x9c, 0x7b, 0x5c, 0xc0, 0x73, 0xed, 0x59, 0x39, 0xfb, 0x24, 0x89, 0xcb,
+ 0xbe, 0x04, 0xcf, 0x3f, 0x49, 0x62, 0xd9, 0x97, 0xe0, 0x19, 0x28, 0x49, 0x5c, 0xc9, 0x7d, 0x9a,
+ 0xb8, 0xcf, 0x92, 0xdd, 0x37, 0x2b, 0xb9, 0x2f, 0x26, 0xb8, 0x6e, 0x56, 0x72, 0x5d, 0x4c, 0x70,
+ 0xdb, 0xac, 0xe4, 0xb6, 0x98, 0xe0, 0xb2, 0x59, 0xc9, 0x65, 0x31, 0xc1, 0x5d, 0xb3, 0x92, 0xbb,
+ 0x62, 0x82, 0xab, 0x66, 0x25, 0x57, 0xc5, 0x04, 0x37, 0xcd, 0x4a, 0x6e, 0x8a, 0x09, 0x2e, 0x9a,
+ 0x95, 0x5c, 0x14, 0x13, 0xdc, 0x33, 0x2b, 0xb9, 0x27, 0x26, 0xb8, 0xe6, 0x8c, 0xec, 0x9a, 0x98,
+ 0xe8, 0x96, 0x33, 0xb2, 0x5b, 0x62, 0xa2, 0x4b, 0xce, 0xc8, 0x2e, 0x89, 0x89, 0xee, 0x38, 0x23,
+ 0xbb, 0x23, 0x26, 0xba, 0xe2, 0x8f, 0x63, 0xbc, 0x22, 0xdc, 0x71, 0x3b, 0xdd, 0x9a, 0xfb, 0xbe,
+ 0x2a, 0xc2, 0x4b, 0x81, 0xf2, 0x21, 0xbd, 0xac, 0x2f, 0x91, 0x82, 0x55, 0xac, 0x38, 0xa5, 0x19,
+ 0xec, 0x52, 0xa0, 0xb0, 0x10, 0x10, 0x56, 0x38, 0x62, 0xe5, 0x7d, 0xd5, 0x86, 0x97, 0x02, 0x65,
+ 0x46, 0xb4, 0x7e, 0x37, 0x3e, 0xf4, 0x8a, 0xed, 0xed, 0x18, 0xaf, 0xd8, 0x98, 0xf9, 0x4f, 0x5a,
+ 0xb1, 0x2d, 0x46, 0x9b, 0xdc, 0x33, 0xf6, 0x62, 0xb4, 0xb1, 0x7b, 0x66, 0x9d, 0x61, 0x2b, 0xb8,
+ 0xc5, 0x68, 0xd3, 0x7a, 0x46, 0xfd, 0x60, 0xeb, 0x2d, 0x16, 0xc1, 0x06, 0x6a, 0x87, 0x44, 0xf0,
+ 0x49, 0xeb, 0xad, 0x4b, 0x81, 0xa1, 0xe4, 0xa4, 0x11, 0xac, 0x9e, 0x38, 0x82, 0x4f, 0x5a, 0x79,
+ 0x5d, 0x0a, 0x0c, 0x2f, 0x27, 0x8e, 0xe0, 0x0f, 0xa1, 0x1e, 0x62, 0x11, 0xec, 0x9b, 0xff, 0xa4,
+ 0xf5, 0xd0, 0x62, 0xb4, 0xc9, 0x43, 0x23, 0x58, 0x3d, 0x41, 0x04, 0x0f, 0x53, 0x1f, 0x2d, 0x46,
+ 0x9b, 0x36, 0x3c, 0x82, 0xdf, 0x77, 0x35, 0xf3, 0x45, 0x05, 0xa6, 0x2a, 0x8d, 0x7a, 0xb9, 0xb5,
+ 0x8f, 0xea, 0x75, 0x54, 0x67, 0x76, 0xbc, 0x14, 0x18, 0x09, 0xfa, 0xb8, 0xfa, 0x5b, 0xef, 0xcc,
+ 0xfb, 0x16, 0xbe, 0x0a, 0x49, 0x6a, 0xd3, 0x4b, 0x97, 0xb2, 0xf7, 0x94, 0x88, 0x11, 0xce, 0x13,
+ 0xd5, 0xcf, 0x71, 0xd8, 0xe5, 0x4b, 0xd9, 0xff, 0xa4, 0x08, 0xa3, 0x9c, 0xd7, 0x9c, 0xfb, 0x65,
+ 0xa2, 0xa1, 0xf5, 0xbe, 0x35, 0xbc, 0x38, 0x94, 0x86, 0x82, 0x6e, 0x8f, 0xf4, 0xe8, 0x26, 0x68,
+ 0xd5, 0x85, 0xc9, 0x4a, 0xa3, 0x5e, 0x21, 0x3f, 0x35, 0x30, 0x8c, 0x4a, 0x54, 0x46, 0x1a, 0x0f,
+ 0x2e, 0x05, 0xc2, 0x52, 0x44, 0x78, 0x21, 0x1d, 0x1c, 0x23, 0x72, 0x0d, 0x7c, 0x5b, 0x2b, 0x70,
+ 0xdb, 0xc5, 0x7e, 0xb7, 0xf5, 0x47, 0x76, 0xef, 0x86, 0x8b, 0xfd, 0x6e, 0xe8, 0xe7, 0x90, 0x77,
+ 0xab, 0xd7, 0xf9, 0xe4, 0x4c, 0x0f, 0x6e, 0xe9, 0x67, 0x20, 0xb6, 0x4e, 0xcf, 0x95, 0x67, 0x8a,
+ 0x19, 0xac, 0xd4, 0xb7, 0xdf, 0x99, 0x8f, 0xef, 0x75, 0x1b, 0x75, 0x23, 0xb6, 0x5e, 0xd7, 0xef,
+ 0x40, 0xe2, 0x13, 0xec, 0x0b, 0xaf, 0x58, 0x60, 0x85, 0x09, 0x3c, 0x15, 0xb1, 0xc4, 0x44, 0xa8,
+ 0x97, 0xf6, 0x1a, 0x96, 0x7b, 0x79, 0xf9, 0x86, 0x41, 0x29, 0x72, 0x7f, 0x06, 0x80, 0xde, 0x73,
+ 0xd5, 0x74, 0x8e, 0xf4, 0x0a, 0x67, 0xa6, 0xb7, 0xbe, 0xf1, 0xed, 0x77, 0xe6, 0x57, 0x86, 0x61,
+ 0x7d, 0xba, 0x6e, 0x3a, 0x47, 0x4f, 0xbb, 0xc7, 0x6d, 0xb4, 0x54, 0x3c, 0x76, 0x91, 0xc3, 0xd9,
+ 0xdb, 0x7c, 0xd6, 0x63, 0xcf, 0x95, 0x15, 0x9e, 0x2b, 0x19, 0x78, 0xa6, 0xb5, 0xe0, 0x33, 0x5d,
+ 0x7a, 0xd0, 0xe7, 0x79, 0x9d, 0x4f, 0x12, 0x92, 0x25, 0xd5, 0x28, 0x4b, 0xaa, 0xef, 0xd7, 0x92,
+ 0x6d, 0x3e, 0x3e, 0x4a, 0xcf, 0xaa, 0x0e, 0x7a, 0x56, 0xf5, 0xfd, 0x3c, 0xeb, 0xff, 0xa7, 0xd9,
+ 0xea, 0xe5, 0xd3, 0x9e, 0x45, 0xcf, 0xb4, 0xfe, 0xe9, 0x5a, 0x0b, 0xfa, 0x40, 0xab, 0x80, 0x7c,
+ 0xfc, 0xde, 0x5b, 0xf3, 0x4a, 0xee, 0x8b, 0x31, 0xfe, 0xe4, 0x34, 0x91, 0x1e, 0xec, 0xc9, 0xff,
+ 0xb4, 0xd4, 0x54, 0x1f, 0x86, 0x85, 0xbe, 0xa0, 0xc0, 0x4c, 0xcf, 0x48, 0x4e, 0xcd, 0xf4, 0xc1,
+ 0x0e, 0xe7, 0xd6, 0x49, 0x87, 0x73, 0xa6, 0xe0, 0xef, 0x28, 0x70, 0x4a, 0x1a, 0x5e, 0xa9, 0x7a,
+ 0x17, 0x25, 0xf5, 0x1e, 0xea, 0xbd, 0x13, 0x11, 0x14, 0xb4, 0x13, 0xdd, 0x2b, 0x01, 0x04, 0x66,
+ 0xcf, 0xef, 0x2b, 0x92, 0xdf, 0xcf, 0x78, 0x80, 0x10, 0x73, 0xf1, 0x08, 0x60, 0x6a, 0xdb, 0x10,
+ 0xdf, 0xed, 0x20, 0xa4, 0xcf, 0x41, 0x6c, 0xab, 0xc3, 0x34, 0x9c, 0xa0, 0xf8, 0xad, 0x4e, 0xb1,
+ 0x63, 0x5a, 0xb5, 0x23, 0x23, 0xb6, 0xd5, 0xd1, 0xcf, 0x81, 0x5a, 0x60, 0x5f, 0xb6, 0x4f, 0x2f,
+ 0x4f, 0x52, 0x81, 0x82, 0x55, 0x67, 0x12, 0xb8, 0x4f, 0x9f, 0x83, 0xf8, 0x06, 0x32, 0x0f, 0x98,
+ 0x12, 0x40, 0x65, 0x70, 0x8b, 0x41, 0xda, 0xd9, 0x0d, 0x5f, 0x84, 0x24, 0x27, 0xd6, 0xcf, 0x63,
+ 0xc4, 0x81, 0xcb, 0x6e, 0xcb, 0x10, 0x58, 0x1d, 0x36, 0x73, 0x91, 0x5e, 0xfd, 0x02, 0x24, 0x8c,
+ 0xc6, 0xe1, 0x91, 0xcb, 0x6e, 0xde, 0x2b, 0x46, 0xbb, 0x73, 0x77, 0x21, 0xe5, 0x69, 0xf4, 0x01,
+ 0x53, 0xaf, 0xd2, 0x47, 0xd3, 0x67, 0xc5, 0xf9, 0x84, 0xaf, 0x5b, 0xd2, 0x26, 0xfd, 0x2c, 0x24,
+ 0x77, 0xdc, 0x8e, 0x3f, 0xe8, 0xf3, 0x8a, 0xd4, 0x6b, 0xcd, 0xfd, 0x82, 0x02, 0xc9, 0x55, 0x84,
+ 0xda, 0xc4, 0xe0, 0x8f, 0x43, 0x7c, 0xd5, 0x7e, 0xcd, 0x62, 0x0a, 0x4e, 0x31, 0x8b, 0xe2, 0x6e,
+ 0x66, 0x53, 0xd2, 0xad, 0x3f, 0x2e, 0xda, 0x7d, 0xda, 0xb3, 0xbb, 0x20, 0x47, 0x6c, 0x9f, 0x0b,
+ 0xd8, 0x9e, 0x39, 0x10, 0x0b, 0xf5, 0xd8, 0xff, 0x3a, 0xa4, 0x85, 0xbb, 0xe8, 0x0b, 0x4c, 0x8d,
+ 0x98, 0x0c, 0x14, 0x6d, 0x85, 0x25, 0x72, 0x08, 0xc6, 0x03, 0x37, 0xc6, 0x50, 0xc1, 0xc4, 0x7d,
+ 0xa0, 0xc4, 0xcc, 0x8b, 0x41, 0x33, 0x87, 0x8b, 0x32, 0x53, 0x5f, 0xa2, 0x36, 0x22, 0xe6, 0x3e,
+ 0x4f, 0x83, 0xb3, 0xbf, 0x13, 0xf1, 0xe7, 0x5c, 0x02, 0xd4, 0x4a, 0xa3, 0x99, 0x7b, 0x06, 0x80,
+ 0xa6, 0x7c, 0xd9, 0xea, 0xb6, 0xa4, 0xac, 0x9b, 0xe0, 0x06, 0xde, 0x3d, 0x42, 0xbb, 0xc8, 0x21,
+ 0x22, 0xc1, 0x7a, 0x0a, 0x0f, 0x30, 0x40, 0x53, 0x8c, 0xe0, 0x9f, 0x8c, 0xc4, 0x87, 0x56, 0x62,
+ 0x58, 0x34, 0x4b, 0x45, 0xef, 0x22, 0xb7, 0x60, 0xd9, 0xee, 0x11, 0xea, 0x48, 0x88, 0x65, 0xfd,
+ 0x4a, 0x20, 0x61, 0x27, 0x96, 0x1f, 0xf1, 0x10, 0x7d, 0x41, 0x57, 0x72, 0x5f, 0x25, 0x0a, 0xe2,
+ 0x52, 0xa0, 0xe7, 0x01, 0xd5, 0x21, 0x1e, 0x50, 0xbf, 0x16, 0xa8, 0xdf, 0x06, 0xa8, 0x29, 0xbd,
+ 0x5a, 0xde, 0x0c, 0xbc, 0xe7, 0x0c, 0x56, 0x36, 0xf8, 0x8e, 0xc9, 0x6d, 0xca, 0x55, 0x7e, 0x32,
+ 0x52, 0xe5, 0x3e, 0xd5, 0xed, 0x49, 0x6d, 0xaa, 0x0e, 0x6b, 0xd3, 0x6f, 0x78, 0x15, 0x07, 0xfd,
+ 0x45, 0x13, 0xf2, 0x5b, 0x40, 0xfa, 0x53, 0x91, 0xbe, 0xcf, 0x2b, 0x25, 0x4f, 0xd5, 0x95, 0x61,
+ 0xdd, 0x9f, 0x8f, 0x15, 0x8b, 0x9e, 0xba, 0xd7, 0x4f, 0x10, 0x02, 0xf9, 0x58, 0xa9, 0xe4, 0x0d,
+ 0xdb, 0xc9, 0x4f, 0xbf, 0x35, 0xaf, 0x7c, 0xe5, 0xad, 0xf9, 0x91, 0xdc, 0x6f, 0x2a, 0x30, 0xc5,
+ 0x24, 0x85, 0xc0, 0x7d, 0x5a, 0x52, 0xfe, 0x34, 0x1f, 0x33, 0xc2, 0x2c, 0xf0, 0x13, 0x0b, 0xde,
+ 0x6f, 0x2a, 0x90, 0xed, 0xd1, 0x95, 0xdb, 0xfb, 0xd2, 0x50, 0x2a, 0xe7, 0x95, 0xf2, 0x4f, 0xdf,
+ 0xe6, 0x77, 0x21, 0xb1, 0xdb, 0x68, 0xa1, 0x0e, 0x9e, 0x09, 0xf0, 0x07, 0xaa, 0x32, 0xdf, 0xcc,
+ 0xa1, 0x4d, 0xbc, 0x8f, 0x2a, 0x17, 0xe8, 0x5b, 0xd6, 0xb3, 0x10, 0x5f, 0x35, 0x5d, 0x93, 0x68,
+ 0x90, 0xf1, 0xc6, 0x57, 0xd3, 0x35, 0x73, 0x57, 0x20, 0xb3, 0x79, 0x4c, 0x0e, 0x22, 0xd5, 0xc9,
+ 0x19, 0x94, 0x60, 0xf5, 0xc7, 0xeb, 0xd5, 0xcb, 0x8b, 0x89, 0x64, 0x5d, 0xbb, 0xa7, 0xe4, 0xe3,
+ 0x44, 0x9f, 0x57, 0x61, 0x62, 0x0b, 0xab, 0x4d, 0x70, 0x04, 0x76, 0x16, 0x94, 0xcd, 0x60, 0x21,
+ 0x24, 0xb2, 0x1a, 0xca, 0xa6, 0x54, 0x3e, 0xaa, 0x9e, 0x79, 0xa4, 0xb2, 0x4d, 0xf5, 0xca, 0xb6,
+ 0xc5, 0x78, 0x72, 0x42, 0x9b, 0x5a, 0x8c, 0x27, 0x41, 0x1b, 0x67, 0xf7, 0xfd, 0x0f, 0x2a, 0x68,
+ 0xb4, 0xd4, 0x59, 0x45, 0x07, 0x0d, 0xab, 0xe1, 0xf6, 0xd6, 0xab, 0x9e, 0xc6, 0xfa, 0x73, 0x90,
+ 0xc2, 0x26, 0x5d, 0x63, 0x3f, 0x09, 0x88, 0x4d, 0x7f, 0x8e, 0x95, 0x28, 0x12, 0x05, 0x6b, 0x20,
+ 0xa1, 0xe3, 0x63, 0xf4, 0x35, 0x50, 0x2b, 0x95, 0x4d, 0x36, 0xb9, 0xad, 0x0c, 0x84, 0xb2, 0xc3,
+ 0x3e, 0xec, 0x8a, 0xb5, 0x39, 0x87, 0x06, 0x26, 0xd0, 0x57, 0x20, 0x56, 0xd9, 0x64, 0x05, 0xef,
+ 0xf9, 0x61, 0x68, 0x8c, 0x58, 0x65, 0x73, 0xf6, 0xdf, 0x28, 0x30, 0x1e, 0x68, 0xd5, 0x73, 0x90,
+ 0xa1, 0x0d, 0xc2, 0xe3, 0x8e, 0x1a, 0x81, 0x36, 0xae, 0x73, 0xec, 0x7d, 0xea, 0x3c, 0x5b, 0x80,
+ 0x49, 0xa9, 0x5d, 0x5f, 0x02, 0x5d, 0x6c, 0x62, 0x4a, 0xd0, 0x9f, 0x23, 0x0b, 0xe9, 0xc9, 0x3d,
+ 0x0a, 0xe0, 0xdb, 0xd5, 0xfb, 0x15, 0xad, 0x4a, 0x79, 0x67, 0xb7, 0xbc, 0xaa, 0x29, 0xb9, 0xaf,
+ 0x2b, 0x90, 0x66, 0x65, 0x6b, 0xcd, 0x6e, 0x23, 0xbd, 0x08, 0x4a, 0x81, 0x45, 0xd0, 0x83, 0xe9,
+ 0xad, 0x14, 0xf4, 0x8b, 0xa0, 0x14, 0x87, 0x77, 0xb5, 0x52, 0xd4, 0x97, 0x41, 0x29, 0x31, 0x07,
+ 0x0f, 0xe7, 0x19, 0xa5, 0x94, 0xfb, 0x23, 0x15, 0xa6, 0xc5, 0x32, 0x9a, 0x8f, 0x27, 0xe7, 0x82,
+ 0xef, 0x4d, 0xf9, 0xd4, 0xe5, 0xe5, 0x2b, 0x2b, 0x4b, 0xf8, 0x1f, 0x2f, 0x24, 0x73, 0xc1, 0x57,
+ 0xa8, 0x3c, 0x78, 0x22, 0x97, 0xfb, 0x9d, 0x13, 0xc9, 0xc7, 0x05, 0x86, 0x9e, 0x73, 0x22, 0x81,
+ 0xde, 0x9e, 0x73, 0x22, 0x81, 0xde, 0x9e, 0x73, 0x22, 0x81, 0xde, 0x9e, 0xbd, 0x80, 0x40, 0x6f,
+ 0xcf, 0x39, 0x91, 0x40, 0x6f, 0xcf, 0x39, 0x91, 0x40, 0x6f, 0xef, 0x39, 0x11, 0xd6, 0xdd, 0xf7,
+ 0x9c, 0x48, 0xb0, 0xbf, 0xf7, 0x9c, 0x48, 0xb0, 0xbf, 0xf7, 0x9c, 0x48, 0x3e, 0xee, 0x76, 0xba,
+ 0xa8, 0xff, 0xae, 0x43, 0x10, 0x3f, 0xe8, 0x25, 0xd0, 0x1f, 0x81, 0xb7, 0x60, 0x92, 0x2e, 0x48,
+ 0x94, 0x6c, 0xcb, 0x35, 0x1b, 0x16, 0xea, 0xe8, 0x1f, 0x85, 0x0c, 0x6d, 0xa2, 0xaf, 0x39, 0x61,
+ 0xaf, 0x81, 0xb4, 0x9f, 0x8d, 0xb7, 0x01, 0xe9, 0xdc, 0x1f, 0xc7, 0x61, 0x86, 0x36, 0x54, 0xcc,
+ 0x16, 0x0a, 0x9c, 0x32, 0xba, 0x20, 0xed, 0x29, 0x4d, 0x60, 0xf8, 0xfd, 0x77, 0xe6, 0x69, 0x6b,
+ 0xc1, 0x8b, 0xa6, 0x0b, 0xd2, 0xee, 0x52, 0x50, 0xce, 0x9f, 0x80, 0x2e, 0x48, 0x27, 0x8f, 0x82,
+ 0x72, 0xde, 0x7c, 0xe3, 0xc9, 0xf1, 0x33, 0x48, 0x41, 0xb9, 0x55, 0x2f, 0xca, 0x2e, 0x48, 0xa7,
+ 0x91, 0x82, 0x72, 0x65, 0x2f, 0xde, 0x2e, 0x48, 0x7b, 0x4f, 0x41, 0xb9, 0x35, 0x2f, 0xf2, 0x2e,
+ 0x48, 0xbb, 0x50, 0x41, 0xb9, 0xdb, 0x5e, 0x0c, 0x5e, 0x90, 0xce, 0x2a, 0x05, 0xe5, 0x9e, 0xf7,
+ 0xa2, 0xf1, 0x82, 0x74, 0x6a, 0x29, 0x28, 0xb7, 0xee, 0xc5, 0xe5, 0x82, 0x7c, 0x7e, 0x29, 0x28,
+ 0x78, 0xc7, 0x8f, 0xd0, 0x05, 0xf9, 0x24, 0x53, 0x50, 0xf2, 0x63, 0x7e, 0xac, 0x2e, 0xc8, 0x67,
+ 0x9a, 0x82, 0x92, 0x1b, 0x7e, 0xd4, 0x2e, 0xc8, 0x7b, 0x65, 0x41, 0xc9, 0x4d, 0x3f, 0x7e, 0x17,
+ 0xe4, 0x5d, 0xb3, 0xa0, 0x64, 0xc5, 0x8f, 0xe4, 0x05, 0x79, 0xff, 0x2c, 0x28, 0xb9, 0xe5, 0x2f,
+ 0xa2, 0xff, 0xbe, 0x14, 0x7e, 0xc2, 0x29, 0xa8, 0x9c, 0x14, 0x7e, 0x10, 0x12, 0x7a, 0xd2, 0x40,
+ 0x26, 0xc8, 0xf8, 0x61, 0x97, 0x93, 0xc2, 0x0e, 0x42, 0x42, 0x2e, 0x27, 0x85, 0x1c, 0x84, 0x84,
+ 0x5b, 0x4e, 0x0a, 0x37, 0x08, 0x09, 0xb5, 0x9c, 0x14, 0x6a, 0x10, 0x12, 0x66, 0x39, 0x29, 0xcc,
+ 0x20, 0x24, 0xc4, 0x72, 0x52, 0x88, 0x41, 0x48, 0x78, 0xe5, 0xa4, 0xf0, 0x82, 0x90, 0xd0, 0x3a,
+ 0x2f, 0x87, 0x16, 0x84, 0x85, 0xd5, 0x79, 0x39, 0xac, 0x20, 0x2c, 0xa4, 0x1e, 0x93, 0x43, 0x2a,
+ 0x75, 0xff, 0x9d, 0xf9, 0x04, 0x6e, 0x12, 0xa2, 0xe9, 0xbc, 0x1c, 0x4d, 0x10, 0x16, 0x49, 0xe7,
+ 0xe5, 0x48, 0x82, 0xb0, 0x28, 0x3a, 0x2f, 0x47, 0x11, 0x84, 0x45, 0xd0, 0xdb, 0x72, 0x04, 0xf9,
+ 0x67, 0x7c, 0x72, 0xd2, 0x96, 0x62, 0x54, 0x04, 0xa9, 0x43, 0x44, 0x90, 0x3a, 0x44, 0x04, 0xa9,
+ 0x43, 0x44, 0x90, 0x3a, 0x44, 0x04, 0xa9, 0x43, 0x44, 0x90, 0x3a, 0x44, 0x04, 0xa9, 0x43, 0x44,
+ 0x90, 0x3a, 0x4c, 0x04, 0xa9, 0x43, 0x45, 0x90, 0xda, 0x2f, 0x82, 0xce, 0xcb, 0x27, 0x1e, 0x20,
+ 0x6c, 0x40, 0x3a, 0x2f, 0x6f, 0x7d, 0x46, 0x87, 0x90, 0x3a, 0x54, 0x08, 0xa9, 0xfd, 0x42, 0xe8,
+ 0xf7, 0x55, 0x98, 0x0e, 0x84, 0x10, 0xdb, 0x1f, 0xfa, 0xa0, 0x46, 0xa0, 0x6b, 0x43, 0x1c, 0xb0,
+ 0x08, 0x8b, 0xa9, 0x6b, 0x43, 0x6c, 0x52, 0x0f, 0x8a, 0xb3, 0xde, 0x51, 0xa8, 0x3c, 0xc4, 0x28,
+ 0xb4, 0xe6, 0xc5, 0xd0, 0xb5, 0x21, 0x0e, 0x5e, 0xf4, 0xc6, 0xde, 0x8d, 0x41, 0x83, 0xc0, 0xf3,
+ 0x43, 0x0d, 0x02, 0xeb, 0x43, 0x0d, 0x02, 0x77, 0x7c, 0x0f, 0xfe, 0x62, 0x0c, 0x4e, 0xf9, 0x1e,
+ 0xa4, 0x9f, 0xc8, 0x2f, 0x6b, 0xe5, 0x84, 0x2d, 0x2a, 0x9d, 0x6f, 0xdb, 0x08, 0x6e, 0x8c, 0xad,
+ 0xd7, 0xf5, 0xed, 0xe0, 0x66, 0x55, 0xfe, 0xa4, 0x1b, 0x38, 0x82, 0xc7, 0xd9, 0x62, 0xe8, 0x79,
+ 0x50, 0xd7, 0xeb, 0x0e, 0x19, 0x2d, 0xc2, 0x6e, 0x5b, 0x32, 0x70, 0xb7, 0x6e, 0xc0, 0x28, 0x11,
+ 0x77, 0x88, 0x7b, 0xdf, 0xcf, 0x8d, 0x57, 0x0d, 0xc6, 0x94, 0x7b, 0x5b, 0x81, 0xb3, 0x81, 0x50,
+ 0xfe, 0x60, 0xb6, 0x0c, 0x6e, 0x0d, 0xb5, 0x65, 0x10, 0x48, 0x10, 0x7f, 0xfb, 0xe0, 0x89, 0xde,
+ 0x9d, 0x6a, 0x31, 0x4b, 0xe4, 0xad, 0x84, 0xbf, 0x00, 0x13, 0xfe, 0x13, 0x90, 0x77, 0xb6, 0xab,
+ 0xd1, 0xab, 0x99, 0x61, 0xa9, 0x79, 0x55, 0x5a, 0x45, 0x1b, 0x08, 0xf3, 0xb2, 0x35, 0x97, 0x87,
+ 0xc9, 0x4a, 0xf0, 0x2b, 0x51, 0x51, 0x8b, 0x11, 0x49, 0x5c, 0x9a, 0xdf, 0xfb, 0xd2, 0xfc, 0x48,
+ 0xee, 0x29, 0xc8, 0x88, 0xdf, 0x7a, 0x92, 0x80, 0x29, 0x0e, 0xcc, 0xc7, 0xbf, 0x85, 0xa5, 0xff,
+ 0xbe, 0x02, 0xa7, 0x45, 0xf1, 0x17, 0x1a, 0xee, 0xd1, 0xba, 0x85, 0x6b, 0xfa, 0x67, 0x20, 0x89,
+ 0x98, 0xe3, 0xd8, 0x8f, 0xe4, 0xb0, 0xf7, 0xc8, 0x50, 0xf1, 0x25, 0xf2, 0xaf, 0xe1, 0x41, 0xa4,
+ 0x35, 0x0e, 0x7e, 0xdb, 0xe5, 0xd9, 0xc7, 0x21, 0x41, 0xf9, 0x83, 0x7a, 0x8d, 0x4b, 0x7a, 0xfd,
+ 0x7a, 0x88, 0x5e, 0x24, 0x8e, 0xf4, 0x3b, 0x01, 0xbd, 0x84, 0xd7, 0xd5, 0x50, 0xf1, 0x25, 0x1e,
+ 0x7c, 0xc5, 0x24, 0xae, 0xff, 0x48, 0x44, 0x45, 0x2b, 0xb9, 0x00, 0xc9, 0xb2, 0x2c, 0x13, 0xae,
+ 0xe7, 0x2a, 0xc4, 0x2b, 0x76, 0x9d, 0xfc, 0x7c, 0x0f, 0xf9, 0x21, 0x6c, 0x66, 0x64, 0xf6, 0xab,
+ 0xd8, 0x17, 0x20, 0x59, 0x3a, 0x6a, 0x34, 0xeb, 0x1d, 0x64, 0xb1, 0x3d, 0x7b, 0xb6, 0x84, 0x8e,
+ 0x31, 0x86, 0xd7, 0x97, 0x2b, 0xc1, 0x54, 0xc5, 0xb6, 0x8a, 0xc7, 0xae, 0x38, 0x6e, 0x2c, 0x49,
+ 0x29, 0xc2, 0xf6, 0x7c, 0xc8, 0xb7, 0x44, 0xb0, 0x40, 0x31, 0xf1, 0xed, 0x77, 0xe6, 0x95, 0x5d,
+ 0x6f, 0xfd, 0x7c, 0x13, 0x1e, 0x62, 0xe9, 0xd3, 0x43, 0xb5, 0x1c, 0x45, 0x95, 0x62, 0xfb, 0xd4,
+ 0x02, 0xdd, 0x3a, 0xa6, 0xb3, 0x42, 0xe9, 0x1e, 0x4c, 0x33, 0x5c, 0x14, 0x0d, 0xd4, 0x4c, 0x3d,
+ 0x91, 0x66, 0xa1, 0x74, 0x4b, 0x51, 0x74, 0x92, 0x66, 0x8f, 0x41, 0xca, 0xeb, 0x13, 0xa2, 0x41,
+ 0xcc, 0x94, 0xe5, 0xc5, 0x1c, 0xa4, 0x85, 0x84, 0xd5, 0x13, 0xa0, 0x14, 0xb4, 0x11, 0xfc, 0x5f,
+ 0x51, 0x53, 0xf0, 0x7f, 0x25, 0x2d, 0xb6, 0xf8, 0x38, 0x4c, 0x4a, 0xeb, 0x97, 0xb8, 0x67, 0x55,
+ 0x03, 0xfc, 0x5f, 0x59, 0x4b, 0xcf, 0xc6, 0x3f, 0xfd, 0x6b, 0x73, 0x23, 0x8b, 0xb7, 0x40, 0xef,
+ 0x5d, 0xe9, 0xd4, 0x47, 0x21, 0x56, 0xc0, 0x94, 0x0f, 0x41, 0xac, 0x58, 0xd4, 0x94, 0xd9, 0xc9,
+ 0xbf, 0xfa, 0xf9, 0xb3, 0xe9, 0x22, 0xf9, 0x4a, 0xf7, 0x5d, 0xe4, 0x16, 0x8b, 0x0c, 0xfc, 0x2c,
+ 0x9c, 0x0e, 0x5d, 0x29, 0xc5, 0xf8, 0x52, 0x89, 0xe2, 0x57, 0x57, 0x7b, 0xf0, 0xab, 0xab, 0x04,
+ 0xaf, 0xe4, 0xf9, 0x8e, 0x73, 0x41, 0x0f, 0x59, 0x97, 0xcc, 0xd6, 0x85, 0x1d, 0xee, 0x42, 0xfe,
+ 0x59, 0x26, 0x5b, 0x0c, 0x95, 0x45, 0x11, 0x3b, 0xd6, 0xc5, 0x7c, 0x89, 0xe1, 0x4b, 0xa1, 0xf8,
+ 0x03, 0x69, 0x5b, 0x35, 0x38, 0x43, 0x30, 0x92, 0x92, 0xa7, 0xf0, 0x6a, 0x28, 0xc9, 0x91, 0x70,
+ 0xd8, 0x7d, 0xd5, 0x53, 0xb8, 0x1c, 0x2a, 0xdb, 0x88, 0x38, 0xf4, 0x55, 0xce, 0x5f, 0x64, 0x93,
+ 0x7c, 0xe1, 0xb2, 0x7e, 0x9a, 0xe7, 0x68, 0x60, 0x04, 0x66, 0x06, 0xe2, 0x52, 0xf9, 0x12, 0x03,
+ 0x14, 0xfb, 0x02, 0xfa, 0x5b, 0x89, 0x23, 0xf3, 0xcf, 0x33, 0x92, 0x52, 0x5f, 0x92, 0x08, 0x53,
+ 0x71, 0x78, 0x71, 0xf7, 0xde, 0xbb, 0x73, 0x23, 0xdf, 0x7a, 0x77, 0x6e, 0xe4, 0xbf, 0xbc, 0x3b,
+ 0x37, 0xf2, 0x9d, 0x77, 0xe7, 0x94, 0xef, 0xbf, 0x3b, 0xa7, 0xfc, 0xf0, 0xdd, 0x39, 0xe5, 0x47,
+ 0xef, 0xce, 0x29, 0x6f, 0xde, 0x9f, 0x53, 0xbe, 0x72, 0x7f, 0x4e, 0xf9, 0xea, 0xfd, 0x39, 0xe5,
+ 0x77, 0xef, 0xcf, 0x29, 0x6f, 0xdf, 0x9f, 0x53, 0xee, 0xdd, 0x9f, 0x53, 0xbe, 0x75, 0x7f, 0x4e,
+ 0xf9, 0xce, 0xfd, 0x39, 0xe5, 0xfb, 0xf7, 0xe7, 0x46, 0x7e, 0x78, 0x7f, 0x4e, 0xf9, 0xd1, 0xfd,
+ 0xb9, 0x91, 0x37, 0xbf, 0x3b, 0x37, 0xf2, 0xd6, 0x77, 0xe7, 0x46, 0xbe, 0xf2, 0xdd, 0x39, 0x05,
+ 0xfe, 0x70, 0x05, 0x72, 0xec, 0x9b, 0x64, 0xc2, 0x97, 0x86, 0x2f, 0xba, 0x47, 0x88, 0x14, 0x05,
+ 0x57, 0xf8, 0xaf, 0x80, 0x79, 0x0d, 0x27, 0xfc, 0x5e, 0xd9, 0xec, 0x83, 0x7e, 0x8b, 0x2d, 0xf7,
+ 0x6f, 0x13, 0x30, 0xc6, 0x57, 0x83, 0xc3, 0x7e, 0x2b, 0xfd, 0x2a, 0x24, 0x8f, 0x1a, 0x4d, 0xb3,
+ 0xd3, 0x70, 0x8f, 0xd9, 0x32, 0xe8, 0xc3, 0x4b, 0xbe, 0xda, 0x7c, 0xe1, 0xf4, 0xf9, 0x6e, 0xcb,
+ 0xee, 0x76, 0x0c, 0x4f, 0x54, 0x3f, 0x0b, 0x99, 0x23, 0xd4, 0x38, 0x3c, 0x72, 0xab, 0x0d, 0xab,
+ 0x5a, 0x6b, 0x91, 0x6a, 0x79, 0xdc, 0x00, 0xda, 0xb6, 0x6e, 0x95, 0x5a, 0xf8, 0x66, 0x75, 0xd3,
+ 0x35, 0xc9, 0x5b, 0x7a, 0xc6, 0x20, 0x9f, 0xc9, 0xef, 0x1d, 0x23, 0xa7, 0xdb, 0x74, 0xab, 0x35,
+ 0xbb, 0x6b, 0xb9, 0xa4, 0x9e, 0x55, 0x8d, 0x34, 0x6d, 0x2b, 0xe1, 0x26, 0xfd, 0x31, 0x18, 0x77,
+ 0x3b, 0x5d, 0x54, 0x75, 0x6a, 0xb6, 0xeb, 0xb4, 0x4c, 0x8b, 0xd4, 0xb3, 0x49, 0x23, 0x83, 0x1b,
+ 0x77, 0x58, 0x1b, 0xf9, 0x99, 0xfd, 0x9a, 0xdd, 0x41, 0xe4, 0x75, 0x3a, 0x66, 0xd0, 0x0b, 0x5d,
+ 0x03, 0xf5, 0x15, 0x74, 0x4c, 0x5e, 0xd8, 0xe2, 0x06, 0xfe, 0xa8, 0x3f, 0x09, 0xa3, 0xf4, 0xef,
+ 0xe4, 0x90, 0xea, 0x9a, 0x6c, 0x5e, 0x7b, 0x8f, 0x46, 0x17, 0x69, 0x0d, 0x26, 0xa0, 0xdf, 0x84,
+ 0x31, 0x17, 0x75, 0x3a, 0x66, 0xc3, 0x22, 0x2f, 0x4f, 0xe9, 0xe5, 0xf9, 0x10, 0x33, 0xec, 0x52,
+ 0x09, 0xf2, 0xab, 0xc0, 0x06, 0x97, 0xd7, 0xaf, 0x42, 0x86, 0xc8, 0x2d, 0x57, 0xe9, 0xdf, 0x12,
+ 0x4a, 0xf7, 0x8d, 0xe7, 0x34, 0x95, 0xe3, 0x7b, 0x05, 0x1c, 0x46, 0x7f, 0x11, 0x71, 0x9c, 0xdc,
+ 0xf6, 0xb1, 0x90, 0xdb, 0x92, 0xa1, 0x77, 0x99, 0x94, 0x8d, 0xf4, 0xd6, 0x8c, 0x87, 0xfe, 0x66,
+ 0xe2, 0x26, 0x64, 0x44, 0xbd, 0xb8, 0x19, 0x68, 0xf9, 0x43, 0xcc, 0xf0, 0x84, 0xff, 0x77, 0x1a,
+ 0xfa, 0x58, 0x81, 0xf6, 0xe7, 0x63, 0x37, 0x94, 0xd9, 0x6d, 0xd0, 0xe4, 0xfb, 0x85, 0x50, 0x5e,
+ 0x08, 0x52, 0x6a, 0xe2, 0xc3, 0x92, 0x95, 0x72, 0x9f, 0x31, 0xf7, 0x1c, 0x8c, 0xd2, 0xf8, 0xd1,
+ 0xd3, 0x30, 0xe6, 0xff, 0xd8, 0x66, 0x12, 0xe2, 0xdb, 0x7b, 0x95, 0x1d, 0xfa, 0xab, 0xb9, 0x3b,
+ 0x1b, 0x85, 0xed, 0x9d, 0xdd, 0xf5, 0xd2, 0xc7, 0xb4, 0x98, 0x3e, 0x09, 0xe9, 0xe2, 0xfa, 0xc6,
+ 0x46, 0xb5, 0x58, 0x58, 0xdf, 0x28, 0xdf, 0xd5, 0xd4, 0xdc, 0x1c, 0x8c, 0x52, 0x3d, 0xc9, 0xaf,
+ 0xff, 0x75, 0x2d, 0xeb, 0x98, 0x97, 0x0f, 0xe4, 0x22, 0xf7, 0x35, 0x1d, 0xc6, 0x0a, 0xcd, 0xe6,
+ 0xa6, 0xd9, 0x76, 0xf4, 0x17, 0x60, 0x8a, 0xfe, 0x2e, 0xc7, 0xae, 0xbd, 0x4a, 0x7e, 0xa4, 0x12,
+ 0x0f, 0x0e, 0x0a, 0xfb, 0xfb, 0x14, 0xfe, 0x73, 0x33, 0xf1, 0xa5, 0x1e, 0x59, 0x6a, 0xe0, 0x5e,
+ 0x0e, 0x7d, 0x17, 0x34, 0xde, 0xb8, 0xd6, 0xb4, 0x4d, 0x17, 0xf3, 0xc6, 0xd8, 0x6f, 0x48, 0xf6,
+ 0xe7, 0xe5, 0xa2, 0x94, 0xb6, 0x87, 0x41, 0xff, 0x28, 0x24, 0xd7, 0x2d, 0xf7, 0xca, 0x32, 0x66,
+ 0xe3, 0x7f, 0xfb, 0xa9, 0x97, 0x8d, 0x8b, 0x50, 0x16, 0x0f, 0xc1, 0xd0, 0xd7, 0x56, 0x30, 0x3a,
+ 0x3e, 0x08, 0x4d, 0x44, 0x7c, 0x34, 0xb9, 0xd4, 0x9f, 0x83, 0x14, 0x7e, 0x3b, 0xa1, 0x37, 0x4f,
+ 0xf0, 0xd2, 0xb5, 0x07, 0xee, 0xc9, 0x50, 0xbc, 0x8f, 0xe1, 0x04, 0xf4, 0xfe, 0xa3, 0x03, 0x09,
+ 0x04, 0x05, 0x7c, 0x0c, 0x26, 0xd8, 0xf1, 0x34, 0x18, 0xeb, 0x4b, 0xb0, 0x23, 0x69, 0xb0, 0x23,
+ 0x6a, 0xb0, 0xe3, 0x69, 0x90, 0x1c, 0x48, 0x20, 0x6a, 0xe0, 0x5d, 0xeb, 0x45, 0x80, 0xb5, 0xc6,
+ 0xeb, 0xa8, 0x4e, 0x55, 0xa0, 0x7f, 0x19, 0x2a, 0x17, 0xc2, 0xe0, 0x0b, 0x51, 0x0a, 0x01, 0xa5,
+ 0x97, 0x21, 0xbd, 0x73, 0xe0, 0x93, 0x40, 0x4f, 0x1e, 0x7b, 0x6a, 0x1c, 0x48, 0x2c, 0x22, 0xce,
+ 0x53, 0x85, 0x3e, 0x4c, 0x7a, 0xb0, 0x2a, 0xc2, 0xd3, 0x08, 0x28, 0x5f, 0x15, 0x4a, 0x92, 0x89,
+ 0x50, 0x45, 0x60, 0x11, 0x71, 0x78, 0x30, 0x2c, 0xda, 0x36, 0x96, 0x64, 0xa3, 0xd2, 0x7c, 0x08,
+ 0x05, 0x93, 0x60, 0x83, 0x21, 0xbb, 0x22, 0x1e, 0x21, 0x41, 0x8e, 0xc1, 0x13, 0xfd, 0x3d, 0xc2,
+ 0x65, 0xb8, 0x47, 0xf8, 0xb5, 0x98, 0x67, 0xe4, 0x44, 0x2b, 0xe6, 0x99, 0x8c, 0xcc, 0x33, 0x2e,
+ 0x2a, 0xe5, 0x19, 0x6f, 0xd6, 0x3f, 0x0e, 0x93, 0xbc, 0x0d, 0x0f, 0x4f, 0x98, 0x54, 0x63, 0x7f,
+ 0x3b, 0xaf, 0x3f, 0x29, 0x93, 0xa4, 0x9c, 0x32, 0x5e, 0xaf, 0xc0, 0x04, 0x6f, 0xda, 0x74, 0xc8,
+ 0xe3, 0x4e, 0xb1, 0x3f, 0x8b, 0xd2, 0x9f, 0x91, 0x0a, 0x52, 0x42, 0x09, 0x3d, 0xbb, 0x0a, 0x33,
+ 0xe1, 0xa3, 0x91, 0x38, 0xfc, 0xa6, 0xe8, 0xf0, 0x7b, 0x4a, 0x1c, 0x7e, 0x15, 0x71, 0xf8, 0x2e,
+ 0xc1, 0xe9, 0xd0, 0xb1, 0x27, 0x8a, 0x24, 0x26, 0x92, 0xdc, 0x82, 0xf1, 0xc0, 0x90, 0x23, 0x82,
+ 0x13, 0x21, 0xe0, 0x44, 0x2f, 0xd8, 0x0f, 0xad, 0x90, 0xd9, 0x23, 0x00, 0x56, 0x45, 0xf0, 0x47,
+ 0x61, 0x22, 0x38, 0xde, 0x88, 0xe8, 0xf1, 0x10, 0xf4, 0x78, 0x08, 0x3a, 0xfc, 0xde, 0xf1, 0x10,
+ 0x74, 0x5c, 0x42, 0xef, 0xf4, 0xbd, 0xf7, 0x54, 0x08, 0x7a, 0x2a, 0x04, 0x1d, 0x7e, 0x6f, 0x3d,
+ 0x04, 0xad, 0x8b, 0xe8, 0x67, 0x60, 0x52, 0x1a, 0x62, 0x44, 0xf8, 0x58, 0x08, 0x7c, 0x4c, 0x84,
+ 0x3f, 0x0b, 0x9a, 0x3c, 0xb8, 0x88, 0xf8, 0xc9, 0x10, 0xfc, 0x64, 0xd8, 0xed, 0xc3, 0xb5, 0x1f,
+ 0x0d, 0x81, 0x8f, 0x86, 0xde, 0x3e, 0x1c, 0xaf, 0x85, 0xe0, 0x35, 0x11, 0x9f, 0x87, 0x8c, 0x38,
+ 0x9a, 0x88, 0xd8, 0x64, 0x08, 0x36, 0x29, 0xdb, 0x3d, 0x30, 0x98, 0x44, 0x45, 0x7a, 0xaa, 0x4f,
+ 0xba, 0x04, 0x86, 0x90, 0x28, 0x92, 0x8c, 0x48, 0xf2, 0x09, 0x38, 0x15, 0x36, 0x64, 0x84, 0x70,
+ 0x2c, 0x88, 0x1c, 0x13, 0xb8, 0x46, 0xf4, 0x8b, 0x3d, 0xb3, 0x2d, 0x15, 0x4e, 0xb3, 0x2f, 0xc1,
+ 0x74, 0xc8, 0xc0, 0x11, 0x42, 0xbb, 0x14, 0xac, 0xc6, 0xb2, 0x02, 0x2d, 0x19, 0x04, 0x1a, 0xd6,
+ 0xe1, 0xb6, 0xdd, 0xb0, 0x5c, 0xb1, 0x2a, 0xfb, 0xfa, 0x34, 0x4c, 0xb0, 0xe1, 0x69, 0xab, 0x53,
+ 0x47, 0x1d, 0x54, 0xd7, 0xff, 0x5c, 0xff, 0xda, 0xe9, 0x52, 0xef, 0xa0, 0xc6, 0x50, 0x27, 0x28,
+ 0xa1, 0x5e, 0xea, 0x5b, 0x42, 0x5d, 0x8c, 0xa6, 0x8f, 0xaa, 0xa4, 0x4a, 0x3d, 0x95, 0xd4, 0x13,
+ 0xfd, 0x49, 0xfb, 0x15, 0x54, 0xa5, 0x9e, 0x82, 0x6a, 0x30, 0x49, 0x68, 0x5d, 0xb5, 0xd6, 0x5b,
+ 0x57, 0x2d, 0xf4, 0x67, 0xe9, 0x5f, 0x5e, 0xad, 0xf5, 0x96, 0x57, 0x11, 0x3c, 0xe1, 0x55, 0xd6,
+ 0x5a, 0x6f, 0x95, 0x35, 0x80, 0xa7, 0x7f, 0xb1, 0xb5, 0xd6, 0x5b, 0x6c, 0x45, 0xf0, 0x84, 0xd7,
+ 0x5c, 0xeb, 0x21, 0x35, 0xd7, 0x93, 0xfd, 0x89, 0x06, 0x95, 0x5e, 0x1b, 0x61, 0xa5, 0xd7, 0xe2,
+ 0x00, 0xa5, 0x06, 0x56, 0x60, 0xeb, 0x21, 0x15, 0x58, 0x94, 0x62, 0x7d, 0x0a, 0xb1, 0x8d, 0xb0,
+ 0x42, 0x2c, 0x52, 0xb1, 0x7e, 0xf5, 0xd8, 0xcf, 0xc9, 0xf5, 0xd8, 0x85, 0xfe, 0x4c, 0xe1, 0x65,
+ 0xd9, 0x5a, 0x6f, 0x59, 0xb6, 0x10, 0x95, 0x73, 0x61, 0xd5, 0xd9, 0x4b, 0x7d, 0xab, 0xb3, 0x21,
+ 0x52, 0x38, 0xaa, 0x48, 0x7b, 0xb1, 0x5f, 0x91, 0xb6, 0x14, 0xcd, 0x3d, 0xb8, 0x56, 0xdb, 0xeb,
+ 0x53, 0xab, 0x3d, 0x1d, 0x4d, 0xfc, 0xb3, 0x92, 0xed, 0x67, 0x25, 0xdb, 0xcf, 0x4a, 0xb6, 0x9f,
+ 0x95, 0x6c, 0x3f, 0xfd, 0x92, 0x2d, 0x1f, 0xff, 0xcc, 0x97, 0xe6, 0x95, 0xdc, 0x7f, 0x56, 0xbd,
+ 0x3f, 0xb8, 0xf6, 0x42, 0xc3, 0x3d, 0xc2, 0xc3, 0xdb, 0x26, 0x64, 0xc8, 0x0f, 0x00, 0xb7, 0xcc,
+ 0x76, 0xbb, 0x61, 0x1d, 0xb2, 0x9a, 0x6d, 0xb1, 0x77, 0x29, 0x91, 0x01, 0xc8, 0x1f, 0x9b, 0xd9,
+ 0xa4, 0xc2, 0x6c, 0xba, 0xb1, 0xfc, 0x16, 0xfd, 0x0e, 0xa4, 0x5b, 0xce, 0xa1, 0xc7, 0x16, 0xeb,
+ 0x99, 0x08, 0x25, 0x36, 0xfa, 0xa4, 0x3e, 0x19, 0xb4, 0xbc, 0x06, 0xac, 0xda, 0xfe, 0xb1, 0xeb,
+ 0xab, 0xa6, 0x46, 0xa9, 0x86, 0x7d, 0x1a, 0x54, 0x6d, 0xdf, 0x6f, 0xc1, 0x61, 0x2b, 0xeb, 0x1e,
+ 0x35, 0xd2, 0x05, 0x82, 0xe7, 0x05, 0x98, 0x94, 0xb4, 0x0d, 0xc9, 0xf9, 0x07, 0xf0, 0x0d, 0x56,
+ 0x4c, 0xd6, 0x3c, 0x2a, 0x27, 0xc4, 0x80, 0xcc, 0x3d, 0x0a, 0xe3, 0x01, 0x6e, 0x3d, 0x03, 0xca,
+ 0x01, 0xfb, 0x3a, 0xa5, 0x72, 0x90, 0xfb, 0xa2, 0x02, 0x69, 0x76, 0x94, 0x60, 0xdb, 0x6c, 0x74,
+ 0xf4, 0xe7, 0x21, 0xde, 0xe4, 0x5f, 0x69, 0x7a, 0xd0, 0xaf, 0xcf, 0x12, 0x06, 0x7d, 0x0d, 0x12,
+ 0x1d, 0xef, 0x2b, 0x4f, 0x0f, 0xf4, 0x9d, 0x58, 0x02, 0xcf, 0xdd, 0x53, 0x60, 0x8a, 0x9d, 0x74,
+ 0x75, 0xd8, 0x01, 0x68, 0xb3, 0x3d, 0xfb, 0x35, 0x05, 0x52, 0xde, 0x95, 0xbe, 0x0f, 0x13, 0xde,
+ 0x05, 0x3d, 0x64, 0x4f, 0x23, 0x35, 0x2f, 0x58, 0xb8, 0x87, 0x63, 0x29, 0xe4, 0x13, 0xdd, 0x8c,
+ 0xa2, 0x73, 0x72, 0xb0, 0x71, 0xb6, 0x00, 0xd3, 0x21, 0x62, 0x27, 0x99, 0x90, 0x73, 0xe7, 0x20,
+ 0x55, 0xb1, 0x5d, 0xfa, 0xcb, 0x39, 0xfa, 0x29, 0x61, 0x57, 0xa1, 0x18, 0xd3, 0x46, 0x08, 0x78,
+ 0xf1, 0x1c, 0x8c, 0xb1, 0xec, 0xd7, 0x47, 0x21, 0xb6, 0x59, 0xd0, 0x46, 0xc8, 0xff, 0x45, 0x4d,
+ 0x21, 0xff, 0x97, 0xb4, 0x58, 0x71, 0xe3, 0x01, 0x76, 0x9a, 0x46, 0xfa, 0xed, 0x34, 0xed, 0x8f,
+ 0x52, 0xf3, 0xfc, 0x49, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3d, 0x79, 0x7c, 0xa8, 0xc6, 0x83, 0x00,
+ 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -5208,7 +5318,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5236,7 +5346,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5246,6 +5356,9 @@ func (m *Message) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5265,7 +5378,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Hilarity |= (Message_Humour(b) & 0x7F) << shift
+ m.Hilarity |= Message_Humour(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5284,7 +5397,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.HeightInCm |= (uint32(b) & 0x7F) << shift
+ m.HeightInCm |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5303,7 +5416,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5312,6 +5425,9 @@ func (m *Message) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5334,7 +5450,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.ResultCount |= (int64(b) & 0x7F) << shift
+ m.ResultCount |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5353,7 +5469,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5382,7 +5498,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5399,7 +5515,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5408,12 +5524,15 @@ func (m *Message) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -5433,7 +5552,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5457,7 +5576,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5466,6 +5585,9 @@ func (m *Message) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5490,7 +5612,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5499,6 +5621,9 @@ func (m *Message) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5519,7 +5644,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5535,7 +5660,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int64(b) & 0x7F) << shift
+ mapkey |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5551,7 +5676,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5560,7 +5685,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTheproto3
}
if postmsgIndex > l {
@@ -5602,7 +5727,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5611,6 +5736,9 @@ func (m *Message) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5635,7 +5763,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5644,6 +5772,9 @@ func (m *Message) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5664,7 +5795,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5680,7 +5811,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int64(b) & 0x7F) << shift
+ mapkey |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5696,7 +5827,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5705,7 +5836,7 @@ func (m *Message) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTheproto3
}
if postmsgIndex > l {
@@ -5742,6 +5873,9 @@ func (m *Message) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -5770,7 +5904,7 @@ func (m *Nested) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5798,7 +5932,7 @@ func (m *Nested) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5808,6 +5942,9 @@ func (m *Nested) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5822,6 +5959,9 @@ func (m *Nested) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -5850,7 +5990,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5878,7 +6018,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5887,6 +6027,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -5907,7 +6050,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5924,7 +6067,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5934,6 +6077,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -5978,7 +6124,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -5987,6 +6133,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6007,7 +6156,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6024,7 +6173,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6034,6 +6183,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -6078,7 +6230,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6087,6 +6239,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6107,7 +6262,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6123,7 +6278,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6138,7 +6293,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (int32(b) & 0x7F) << shift
+ mapvalue |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6174,7 +6329,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6183,6 +6338,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6203,7 +6361,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6219,7 +6377,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int64(b) & 0x7F) << shift
+ mapkey |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6234,7 +6392,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (int64(b) & 0x7F) << shift
+ mapvalue |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6270,7 +6428,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6279,6 +6437,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6299,7 +6460,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6315,7 +6476,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (uint32(b) & 0x7F) << shift
+ mapkey |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6330,7 +6491,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint32(b) & 0x7F) << shift
+ mapvalue |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6366,7 +6527,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6375,6 +6536,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6395,7 +6559,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6411,7 +6575,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (uint64(b) & 0x7F) << shift
+ mapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6426,7 +6590,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint64(b) & 0x7F) << shift
+ mapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6462,7 +6626,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6471,6 +6635,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6491,7 +6658,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6508,7 +6675,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (int32(b) & 0x7F) << shift
+ mapkeytemp |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6526,7 +6693,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (int32(b) & 0x7F) << shift
+ mapvaluetemp |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6564,7 +6731,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6573,6 +6740,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6593,7 +6763,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6610,7 +6780,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (uint64(b) & 0x7F) << shift
+ mapkeytemp |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6628,7 +6798,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (uint64(b) & 0x7F) << shift
+ mapvaluetemp |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6666,7 +6836,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6675,6 +6845,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6695,7 +6868,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6744,7 +6917,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6753,6 +6926,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6773,7 +6949,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6822,7 +6998,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6831,6 +7007,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6851,7 +7030,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6900,7 +7079,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6909,6 +7088,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -6929,7 +7111,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6978,7 +7160,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -6987,6 +7169,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7007,7 +7192,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7024,7 +7209,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (int(b) & 0x7F) << shift
+ mapkeytemp |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7041,7 +7226,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (int(b) & 0x7F) << shift
+ mapvaluetemp |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7078,7 +7263,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7087,6 +7272,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7107,7 +7295,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7124,7 +7312,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7134,6 +7322,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -7150,7 +7341,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapvalue |= (uint64(b) & 0x7F) << shift
+ stringLenmapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7160,6 +7351,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapvalue := iNdEx + intStringLenmapvalue
+ if postStringIndexmapvalue < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapvalue > l {
return io.ErrUnexpectedEOF
}
@@ -7196,7 +7390,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7205,6 +7399,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7225,7 +7422,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7242,7 +7439,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7252,6 +7449,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -7268,7 +7468,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapbyteLen |= (uint64(b) & 0x7F) << shift
+ mapbyteLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7278,6 +7478,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postbytesIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7315,7 +7518,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7324,6 +7527,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7344,7 +7550,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7361,7 +7567,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7371,6 +7577,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -7386,7 +7595,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (MapEnum(b) & 0x7F) << shift
+ mapvalue |= MapEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7422,7 +7631,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7431,6 +7640,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7451,7 +7663,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7468,7 +7680,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7478,6 +7690,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -7494,7 +7709,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7503,7 +7718,7 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTheproto3
}
if postmsgIndex > l {
@@ -7540,6 +7755,9 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -7568,7 +7786,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7596,7 +7814,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7605,6 +7823,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7625,7 +7846,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7642,7 +7863,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7652,6 +7873,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -7696,7 +7920,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7705,6 +7929,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7725,7 +7952,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7742,7 +7969,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7752,6 +7979,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -7796,7 +8026,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7805,6 +8035,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7825,7 +8058,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7841,7 +8074,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7856,7 +8089,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (int32(b) & 0x7F) << shift
+ mapvalue |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7892,7 +8125,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7901,6 +8134,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -7921,7 +8157,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7937,7 +8173,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int64(b) & 0x7F) << shift
+ mapkey |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7952,7 +8188,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (int64(b) & 0x7F) << shift
+ mapvalue |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7988,7 +8224,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -7997,6 +8233,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8017,7 +8256,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8033,7 +8272,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (uint32(b) & 0x7F) << shift
+ mapkey |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8048,7 +8287,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint32(b) & 0x7F) << shift
+ mapvalue |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8084,7 +8323,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8093,6 +8332,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8113,7 +8355,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8129,7 +8371,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (uint64(b) & 0x7F) << shift
+ mapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8144,7 +8386,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (uint64(b) & 0x7F) << shift
+ mapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8180,7 +8422,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8189,6 +8431,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8209,7 +8454,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8226,7 +8471,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (int32(b) & 0x7F) << shift
+ mapkeytemp |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8244,7 +8489,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (int32(b) & 0x7F) << shift
+ mapvaluetemp |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8282,7 +8527,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8291,6 +8536,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8311,7 +8559,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8328,7 +8576,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (uint64(b) & 0x7F) << shift
+ mapkeytemp |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8346,7 +8594,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (uint64(b) & 0x7F) << shift
+ mapvaluetemp |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8384,7 +8632,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8393,6 +8641,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8413,7 +8664,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8462,7 +8713,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8471,6 +8722,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8491,7 +8745,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8540,7 +8794,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8549,6 +8803,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8569,7 +8826,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8618,7 +8875,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8627,6 +8884,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8647,7 +8907,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8696,7 +8956,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8705,6 +8965,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8725,7 +8988,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8742,7 +9005,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (int(b) & 0x7F) << shift
+ mapkeytemp |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8759,7 +9022,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvaluetemp |= (int(b) & 0x7F) << shift
+ mapvaluetemp |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8796,7 +9059,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8805,6 +9068,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8825,7 +9091,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8842,7 +9108,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8852,6 +9118,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -8868,7 +9137,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapvalue |= (uint64(b) & 0x7F) << shift
+ stringLenmapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8878,6 +9147,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapvalue := iNdEx + intStringLenmapvalue
+ if postStringIndexmapvalue < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapvalue > l {
return io.ErrUnexpectedEOF
}
@@ -8914,7 +9186,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8923,6 +9195,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -8943,7 +9218,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8960,7 +9235,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8970,6 +9245,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -8986,7 +9264,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapbyteLen |= (uint64(b) & 0x7F) << shift
+ mapbyteLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -8996,6 +9274,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postbytesIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9033,7 +9314,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9042,6 +9323,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9062,7 +9346,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9079,7 +9363,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9089,6 +9373,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -9104,7 +9391,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapvalue |= (MapEnum(b) & 0x7F) << shift
+ mapvalue |= MapEnum(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9140,7 +9427,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9149,6 +9436,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9169,7 +9459,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9186,7 +9476,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9196,6 +9486,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -9212,7 +9505,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9221,7 +9514,7 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTheproto3
}
if postmsgIndex > l {
@@ -9258,6 +9551,9 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -9286,7 +9582,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9314,7 +9610,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9323,6 +9619,9 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9343,7 +9642,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9359,7 +9658,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9375,7 +9674,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapvalue |= (uint64(b) & 0x7F) << shift
+ stringLenmapvalue |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9385,6 +9684,9 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapvalue := iNdEx + intStringLenmapvalue
+ if postStringIndexmapvalue < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapvalue > l {
return io.ErrUnexpectedEOF
}
@@ -9421,7 +9723,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9430,6 +9732,9 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9450,7 +9755,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9467,7 +9772,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (uint64(b) & 0x7F) << shift
+ mapkeytemp |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9485,7 +9790,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9494,7 +9799,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTheproto3
}
if postmsgIndex > l {
@@ -9536,7 +9841,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9545,6 +9850,9 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9565,7 +9873,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9582,7 +9890,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkeytemp |= (int(b) & 0x7F) << shift
+ mapkeytemp |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9599,7 +9907,7 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapbyteLen |= (uint64(b) & 0x7F) << shift
+ mapbyteLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9609,6 +9917,9 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postbytesIndex := iNdEx + intMapbyteLen
+ if postbytesIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postbytesIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9641,6 +9952,9 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -9669,7 +9983,7 @@ func (m *FloatingPoint) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9703,6 +10017,9 @@ func (m *FloatingPoint) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -9731,7 +10048,7 @@ func (m *Uint128Pair) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9759,7 +10076,7 @@ func (m *Uint128Pair) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9768,6 +10085,9 @@ func (m *Uint128Pair) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9789,7 +10109,7 @@ func (m *Uint128Pair) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9798,6 +10118,9 @@ func (m *Uint128Pair) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9816,6 +10139,9 @@ func (m *Uint128Pair) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -9844,7 +10170,7 @@ func (m *ContainsNestedMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9867,6 +10193,9 @@ func (m *ContainsNestedMap) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -9895,7 +10224,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9923,7 +10252,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9932,6 +10261,9 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9952,7 +10284,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9969,7 +10301,7 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9979,6 +10311,9 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -10018,6 +10353,9 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -10046,7 +10384,7 @@ func (m *NotPacked) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10072,7 +10410,7 @@ func (m *NotPacked) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10089,7 +10427,7 @@ func (m *NotPacked) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10098,12 +10436,15 @@ func (m *NotPacked) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTheproto3
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
- for _, integer := range dAtA {
+ for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
@@ -10123,7 +10464,7 @@ func (m *NotPacked) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10142,6 +10483,9 @@ func (m *NotPacked) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTheproto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTheproto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -10209,10 +10553,13 @@ func skipTheproto3(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthTheproto3
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthTheproto3
+ }
return iNdEx, nil
case 3:
for {
@@ -10241,6 +10588,9 @@ func skipTheproto3(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthTheproto3
+ }
}
return iNdEx, nil
case 4:
@@ -10259,112 +10609,3 @@ var (
ErrInvalidLengthTheproto3 = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowTheproto3 = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("combos/unmarshaler/theproto3.proto", fileDescriptor_theproto3_42f7388870cddc3f)
-}
-
-var fileDescriptor_theproto3_42f7388870cddc3f = []byte{
- // 1612 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x99, 0xcf, 0x6f, 0xdb, 0x46,
- 0x16, 0xc7, 0x35, 0xfa, 0xad, 0xa7, 0x1f, 0xa6, 0x27, 0xd9, 0x85, 0xd6, 0xc0, 0xd2, 0xb2, 0x02,
- 0x24, 0x4a, 0xb0, 0x91, 0xb3, 0x4e, 0xb2, 0x9b, 0xba, 0x69, 0x53, 0x4b, 0xb1, 0x10, 0x37, 0xb6,
- 0xe2, 0x4a, 0x76, 0xdc, 0x22, 0x40, 0x0d, 0xca, 0xa6, 0x25, 0x22, 0x12, 0x69, 0x90, 0xa3, 0xa0,
- 0xbe, 0xe5, 0xcf, 0xe8, 0xad, 0xe8, 0xad, 0xc7, 0x22, 0x87, 0xa2, 0xc7, 0xf6, 0xe6, 0x63, 0x80,
- 0x5e, 0x8a, 0x1e, 0x82, 0x58, 0xbd, 0xe4, 0x98, 0x63, 0x8e, 0xc5, 0xcc, 0x50, 0xd2, 0x48, 0x1c,
- 0x8a, 0x4d, 0x2f, 0xbd, 0xf8, 0x24, 0xce, 0xf3, 0xfb, 0x7e, 0xe6, 0x71, 0x38, 0xf3, 0xf8, 0x05,
- 0x0d, 0xc5, 0x03, 0xab, 0xd7, 0xb2, 0x9c, 0xe5, 0xbe, 0xd9, 0xd3, 0x6c, 0xa7, 0xa3, 0x75, 0x75,
- 0x7b, 0x99, 0x74, 0xf4, 0x63, 0xdb, 0x22, 0xd6, 0xcd, 0x32, 0xfb, 0xc1, 0xa9, 0x51, 0x60, 0xe1,
- 0x7a, 0xdb, 0x20, 0x9d, 0x7e, 0xab, 0x7c, 0x60, 0xf5, 0x96, 0xdb, 0x56, 0xdb, 0x5a, 0x66, 0xf1,
- 0x56, 0xff, 0x88, 0x8d, 0xd8, 0x80, 0x5d, 0x71, 0xe5, 0xc2, 0xff, 0x7d, 0xd3, 0x89, 0xee, 0x90,
- 0x65, 0x77, 0xee, 0x96, 0x45, 0x3a, 0x74, 0x52, 0x1a, 0xe3, 0xc2, 0xe2, 0xcf, 0x31, 0x48, 0x6c,
- 0xe9, 0x8e, 0xa3, 0xb5, 0x75, 0x8c, 0x21, 0x6a, 0x6a, 0x3d, 0x3d, 0x8f, 0x0a, 0xa8, 0x94, 0x6a,
- 0xb0, 0x6b, 0x7c, 0x1b, 0x92, 0x1d, 0xa3, 0xab, 0xd9, 0x06, 0x39, 0xc9, 0x87, 0x0b, 0xa8, 0x94,
- 0x5b, 0xf9, 0x57, 0x79, 0x5c, 0xb6, 0xab, 0x2c, 0x3f, 0xe8, 0xf7, 0xac, 0xbe, 0xdd, 0x18, 0xa5,
- 0xe2, 0x02, 0x64, 0x3a, 0xba, 0xd1, 0xee, 0x90, 0x7d, 0xc3, 0xdc, 0x3f, 0xe8, 0xe5, 0x23, 0x05,
- 0x54, 0xca, 0x36, 0x80, 0xc7, 0x36, 0xcc, 0x6a, 0x8f, 0x4e, 0x76, 0xa8, 0x11, 0x2d, 0x1f, 0x2d,
- 0xa0, 0x52, 0xa6, 0xc1, 0xae, 0xf1, 0x12, 0x64, 0x6c, 0xdd, 0xe9, 0x77, 0xc9, 0xfe, 0x81, 0xd5,
- 0x37, 0x49, 0x3e, 0x51, 0x40, 0xa5, 0x48, 0x23, 0xcd, 0x63, 0x55, 0x1a, 0xc2, 0x97, 0x20, 0x4b,
- 0xec, 0xbe, 0xbe, 0xef, 0x1c, 0x58, 0xc4, 0xe9, 0x69, 0x66, 0x3e, 0x59, 0x40, 0xa5, 0x64, 0x23,
- 0x43, 0x83, 0x4d, 0x37, 0x86, 0x2f, 0x42, 0xcc, 0x39, 0xb0, 0x6c, 0x3d, 0x9f, 0x2a, 0xa0, 0x52,
- 0xb8, 0xc1, 0x07, 0x58, 0x81, 0xc8, 0x53, 0xfd, 0x24, 0x1f, 0x2b, 0x44, 0x4a, 0xd1, 0x06, 0xbd,
- 0xc4, 0x57, 0x21, 0x6e, 0xea, 0x0e, 0xd1, 0x0f, 0xf3, 0xf1, 0x02, 0x2a, 0xa5, 0x57, 0xe6, 0x85,
- 0x5b, 0xab, 0xb3, 0x3f, 0x34, 0xdc, 0x04, 0xfc, 0x01, 0x24, 0x88, 0x6e, 0xdb, 0x9a, 0x61, 0xe6,
- 0xa1, 0x10, 0x29, 0xa5, 0x57, 0x16, 0x25, 0xcb, 0xb0, 0xc3, 0x33, 0xd6, 0x4d, 0x62, 0x9f, 0x34,
- 0x86, 0xf9, 0xf8, 0x36, 0x64, 0x58, 0xde, 0xca, 0xfe, 0x91, 0xa1, 0x77, 0x0f, 0xf3, 0x69, 0x36,
- 0x17, 0x2e, 0xb3, 0xa7, 0x50, 0x37, 0xcc, 0x47, 0xc7, 0xa4, 0xae, 0x11, 0xe3, 0x99, 0xde, 0x48,
- 0xf3, 0xbc, 0x1a, 0x4d, 0xc3, 0xb5, 0x91, 0xec, 0x99, 0xd6, 0xed, 0xeb, 0xf9, 0x2c, 0x9b, 0xf6,
- 0x92, 0x64, 0xda, 0x6d, 0x96, 0xf6, 0x98, 0x66, 0xf1, 0xa9, 0x5d, 0x0e, 0x8b, 0x2c, 0x6c, 0x41,
- 0x46, 0xac, 0x6b, 0xb8, 0x0c, 0x88, 0xad, 0x2d, 0x5b, 0x86, 0x2b, 0x10, 0xe3, 0x53, 0x84, 0xfd,
- 0x56, 0x81, 0xff, 0x7d, 0x35, 0x7c, 0x07, 0x2d, 0x6c, 0x83, 0x32, 0x3d, 0x9f, 0x04, 0x79, 0x79,
- 0x12, 0xa9, 0x88, 0x37, 0xbb, 0x6e, 0xf6, 0x7b, 0x02, 0xb1, 0x78, 0x0f, 0xe2, 0x7c, 0xff, 0xe0,
- 0x34, 0x24, 0x76, 0xeb, 0x0f, 0xeb, 0x8f, 0xf6, 0xea, 0x4a, 0x08, 0x27, 0x21, 0xba, 0xbd, 0x5b,
- 0x6f, 0x2a, 0x08, 0x67, 0x21, 0xd5, 0xdc, 0x5c, 0xdb, 0x6e, 0xee, 0x6c, 0x54, 0x1f, 0x2a, 0x61,
- 0x3c, 0x07, 0xe9, 0xca, 0xc6, 0xe6, 0xe6, 0x7e, 0x65, 0x6d, 0x63, 0x73, 0xfd, 0x0b, 0x25, 0x52,
- 0x54, 0x21, 0xce, 0xeb, 0xa4, 0x0f, 0xbe, 0xd5, 0x37, 0xcd, 0x13, 0x77, 0x0b, 0xf3, 0x41, 0xf1,
- 0x05, 0x86, 0xc4, 0x5a, 0xb7, 0xbb, 0xa5, 0x1d, 0x3b, 0x78, 0x0f, 0xe6, 0x9b, 0xc4, 0x36, 0xcc,
- 0xf6, 0x8e, 0x75, 0xdf, 0xea, 0xb7, 0xba, 0xfa, 0x96, 0x76, 0x9c, 0x47, 0x6c, 0x69, 0xaf, 0x0a,
- 0xf7, 0xed, 0xa6, 0x97, 0x3d, 0xb9, 0x7c, 0x81, 0xbd, 0x0c, 0xbc, 0x03, 0xca, 0x30, 0x58, 0xeb,
- 0x5a, 0x1a, 0xa1, 0xdc, 0x30, 0xe3, 0x96, 0x66, 0x70, 0x87, 0xa9, 0x1c, 0xeb, 0x21, 0xe0, 0xbb,
- 0x90, 0xdc, 0x30, 0xc9, 0xcd, 0x15, 0x4a, 0x8b, 0x30, 0x5a, 0x41, 0x42, 0x1b, 0xa6, 0x70, 0xca,
- 0x48, 0xe1, 0xaa, 0xff, 0x77, 0x8b, 0xaa, 0xa3, 0xb3, 0xd4, 0x2c, 0x65, 0xac, 0x66, 0x43, 0x7c,
- 0x0f, 0x52, 0xbb, 0xc6, 0x70, 0xf2, 0x18, 0x93, 0x2f, 0x49, 0xe4, 0xa3, 0x1c, 0xae, 0x1f, 0x6b,
- 0x86, 0x00, 0x3e, 0x7f, 0x7c, 0x26, 0x40, 0x28, 0x60, 0xac, 0xa1, 0x80, 0xe6, 0xa8, 0x82, 0x84,
- 0x2f, 0xa0, 0x39, 0x55, 0x41, 0x53, 0xac, 0xa0, 0x39, 0xaa, 0x20, 0x39, 0x13, 0x20, 0x56, 0x30,
- 0x1a, 0xe3, 0x0a, 0x40, 0xcd, 0xf8, 0x4a, 0x3f, 0xe4, 0x25, 0xa4, 0x18, 0xa1, 0x28, 0x21, 0x8c,
- 0x93, 0x38, 0x42, 0x50, 0xe1, 0x75, 0x48, 0x37, 0x8f, 0xc6, 0x10, 0xf0, 0x9c, 0xe3, 0x51, 0x19,
- 0x47, 0x53, 0x14, 0x51, 0x37, 0x2a, 0x85, 0xdf, 0x4c, 0x7a, 0x76, 0x29, 0xc2, 0xdd, 0x08, 0xaa,
- 0x71, 0x29, 0x1c, 0x92, 0x09, 0x28, 0x45, 0xa0, 0x88, 0x3a, 0xda, 0x0c, 0x2b, 0x96, 0x45, 0x33,
- 0xdd, 0xae, 0xb4, 0x28, 0x41, 0xb8, 0x19, 0x6e, 0x33, 0x74, 0x47, 0xec, 0x89, 0xb0, 0x4d, 0x4e,
- 0xc5, 0x39, 0xff, 0x27, 0x32, 0xcc, 0x19, 0x3e, 0x91, 0xe1, 0x58, 0x3c, 0x67, 0x95, 0x13, 0xa2,
- 0x3b, 0x94, 0x33, 0x17, 0x78, 0xce, 0x86, 0xa9, 0x53, 0xe7, 0x6c, 0x18, 0xc6, 0x9f, 0xc1, 0xdc,
- 0x30, 0x46, 0xdb, 0x13, 0x85, 0x2a, 0x0c, 0x7a, 0x65, 0x06, 0xd4, 0xcd, 0xe4, 0xcc, 0x69, 0x3d,
- 0xae, 0x43, 0x6e, 0x18, 0xda, 0x72, 0xd8, 0xed, 0xce, 0x33, 0xe2, 0xe5, 0x19, 0x44, 0x9e, 0xc8,
- 0x81, 0x53, 0xea, 0x85, 0xfb, 0xf0, 0x4f, 0x79, 0x37, 0x12, 0xdb, 0x6f, 0x8a, 0xb7, 0xdf, 0x8b,
- 0x62, 0xfb, 0x45, 0x62, 0xfb, 0xae, 0xc2, 0x3f, 0xa4, 0xbd, 0x27, 0x08, 0x12, 0x16, 0x21, 0x1f,
- 0x42, 0x76, 0xa2, 0xe5, 0x88, 0xe2, 0x98, 0x44, 0x1c, 0xf3, 0x8a, 0xc7, 0x5b, 0x4b, 0xf2, 0xf6,
- 0x98, 0x10, 0x47, 0x44, 0xf1, 0x5d, 0xc8, 0x4d, 0xf6, 0x1b, 0x51, 0x9d, 0x95, 0xa8, 0xb3, 0x12,
- 0xb5, 0x7c, 0xee, 0xa8, 0x44, 0x1d, 0x9d, 0x52, 0x37, 0x7d, 0xe7, 0x9e, 0x97, 0xa8, 0xe7, 0x25,
- 0x6a, 0xf9, 0xdc, 0x58, 0xa2, 0xc6, 0xa2, 0xfa, 0x23, 0x98, 0x9b, 0x6a, 0x31, 0xa2, 0x3c, 0x21,
- 0x91, 0x27, 0x44, 0xf9, 0xc7, 0xa0, 0x4c, 0x37, 0x17, 0x51, 0x3f, 0x27, 0xd1, 0xcf, 0xc9, 0xa6,
- 0x97, 0x57, 0x1f, 0x97, 0xc8, 0xe3, 0xd2, 0xe9, 0xe5, 0x7a, 0x45, 0xa2, 0x57, 0x44, 0xfd, 0x2a,
- 0x64, 0xc4, 0x6e, 0x22, 0x6a, 0x93, 0x12, 0x6d, 0x72, 0x7a, 0xdd, 0x27, 0x9a, 0x49, 0xd0, 0x4e,
- 0x4f, 0xf9, 0x1c, 0x97, 0x89, 0x16, 0x12, 0x04, 0xc9, 0x88, 0x90, 0xc7, 0x70, 0x51, 0xd6, 0x32,
- 0x24, 0x8c, 0x92, 0xc8, 0xc8, 0x51, 0x8f, 0x38, 0x36, 0x7b, 0x54, 0x35, 0x61, 0x9c, 0x16, 0x9e,
- 0xc0, 0x05, 0x49, 0xe3, 0x90, 0x60, 0xcb, 0x93, 0x6e, 0x2c, 0x2f, 0x60, 0x59, 0x13, 0x30, 0xcc,
- 0xf6, 0xb6, 0x65, 0x98, 0x44, 0x74, 0x65, 0x3f, 0x5c, 0x80, 0x9c, 0xdb, 0x9e, 0x1e, 0xd9, 0x87,
- 0xba, 0xad, 0x1f, 0xe2, 0x2f, 0xfd, 0xbd, 0xd3, 0x0d, 0x6f, 0x53, 0x73, 0x55, 0xef, 0x61, 0xa1,
- 0x9e, 0xf8, 0x5a, 0xa8, 0xe5, 0x60, 0x7c, 0x90, 0x93, 0xaa, 0x7a, 0x9c, 0xd4, 0x15, 0x7f, 0xa8,
- 0x9f, 0xa1, 0xaa, 0x7a, 0x0c, 0xd5, 0x6c, 0x88, 0xd4, 0x57, 0xd5, 0xbc, 0xbe, 0xaa, 0xe4, 0x4f,
- 0xf1, 0xb7, 0x57, 0x35, 0xaf, 0xbd, 0x0a, 0xe0, 0xc8, 0x5d, 0x56, 0xcd, 0xeb, 0xb2, 0x66, 0x70,
- 0xfc, 0xcd, 0x56, 0xcd, 0x6b, 0xb6, 0x02, 0x38, 0x72, 0xcf, 0xb5, 0x21, 0xf1, 0x5c, 0x57, 0xfd,
- 0x41, 0xb3, 0xac, 0xd7, 0xa6, 0xcc, 0x7a, 0x5d, 0x9b, 0x51, 0xd4, 0x4c, 0x07, 0xb6, 0x21, 0x71,
- 0x60, 0x41, 0x85, 0xf9, 0x18, 0xb1, 0x4d, 0x99, 0x11, 0x0b, 0x2c, 0xcc, 0xcf, 0x8f, 0x7d, 0x32,
- 0xed, 0xc7, 0x2e, 0xfb, 0x93, 0xe4, 0xb6, 0xac, 0xe6, 0xb5, 0x65, 0xa5, 0xa0, 0x33, 0x27, 0x73,
- 0x67, 0x4f, 0x7c, 0xdd, 0xd9, 0x9f, 0x38, 0xc2, 0x41, 0x26, 0xed, 0x73, 0x3f, 0x93, 0x56, 0x0e,
- 0x66, 0xcf, 0xf6, 0x6a, 0xbb, 0x3e, 0x5e, 0xed, 0x7a, 0x30, 0xf8, 0xdc, 0xb2, 0x9d, 0x5b, 0xb6,
- 0x73, 0xcb, 0x76, 0x6e, 0xd9, 0xfe, 0x7e, 0xcb, 0xb6, 0x1a, 0xfd, 0xfa, 0xdb, 0x45, 0x54, 0xfc,
- 0x25, 0x02, 0x39, 0xf7, 0xcb, 0xe0, 0x9e, 0x41, 0x3a, 0xb4, 0xbd, 0x6d, 0x41, 0xc6, 0xd4, 0x7a,
- 0xfa, 0x7e, 0x4f, 0x3b, 0x3e, 0x36, 0xcc, 0xb6, 0xeb, 0xd9, 0xae, 0x79, 0x3f, 0x25, 0xba, 0x82,
- 0x72, 0x5d, 0xeb, 0xd1, 0x5e, 0x45, 0x93, 0xdd, 0xd7, 0x8d, 0x39, 0x8e, 0xe0, 0x4f, 0x21, 0xdd,
- 0x73, 0xda, 0x23, 0x5a, 0xd8, 0xf3, 0x22, 0x9c, 0xa2, 0xf1, 0x3b, 0x1d, 0xc3, 0xa0, 0x37, 0x0a,
- 0xd0, 0xd2, 0x5a, 0x27, 0x64, 0x5c, 0x5a, 0x24, 0xa8, 0x34, 0xfa, 0x4c, 0x27, 0x4b, 0x6b, 0x8d,
- 0x23, 0x74, 0xdb, 0x4e, 0xd7, 0x1e, 0xd4, 0xe9, 0x26, 0x36, 0xcf, 0x1e, 0xcc, 0x4d, 0x55, 0x2b,
- 0x39, 0xf3, 0x7f, 0xe1, 0xd9, 0xd0, 0xc2, 0xa6, 0x2b, 0x0f, 0x3a, 0x13, 0xe2, 0x86, 0x2c, 0xfe,
- 0x1b, 0xb2, 0x13, 0x6c, 0x9c, 0x01, 0x74, 0xc4, 0xa4, 0xa8, 0x81, 0x8e, 0x8a, 0xdf, 0x20, 0x48,
- 0xd3, 0x3e, 0xf9, 0xdf, 0x95, 0x3b, 0xdb, 0x9a, 0x61, 0xe3, 0x07, 0x10, 0xed, 0xea, 0x47, 0x84,
- 0x25, 0x64, 0x2a, 0xb7, 0x4e, 0x5f, 0x2d, 0x86, 0x7e, 0x7b, 0xb5, 0xf8, 0x9f, 0x80, 0xff, 0x12,
- 0xf4, 0x1d, 0x62, 0xf5, 0xca, 0x2e, 0xa7, 0xc1, 0x08, 0xb8, 0x06, 0x31, 0xdb, 0x68, 0x77, 0x08,
- 0x2f, 0xa9, 0x72, 0xe3, 0xbd, 0x31, 0x5c, 0x5e, 0x3c, 0x45, 0x30, 0x5f, 0xb5, 0x4c, 0xa2, 0x19,
- 0xa6, 0xc3, 0xbf, 0xd6, 0xd2, 0x37, 0xe4, 0x0b, 0x04, 0xa9, 0xd1, 0x08, 0xb7, 0x20, 0x37, 0x1a,
- 0xb0, 0x8f, 0xe0, 0xee, 0x4e, 0x5d, 0x15, 0x56, 0xd8, 0xc3, 0x28, 0x4b, 0xae, 0x98, 0xd8, 0x7d,
- 0x27, 0x4f, 0x06, 0x17, 0xd6, 0xe0, 0x82, 0x24, 0xed, 0x7d, 0x5e, 0xc8, 0xc5, 0x25, 0x48, 0xd5,
- 0x2d, 0xb2, 0xad, 0x1d, 0x3c, 0x65, 0x9f, 0x9c, 0xc7, 0xff, 0x55, 0xa8, 0x84, 0x95, 0x10, 0x13,
- 0x5f, 0x5b, 0x82, 0x84, 0x7b, 0xfa, 0x71, 0x1c, 0xc2, 0x5b, 0x6b, 0x4a, 0x88, 0xfd, 0x56, 0x14,
- 0xc4, 0x7e, 0xab, 0x4a, 0xb8, 0xb2, 0x79, 0x7a, 0xa6, 0x86, 0x5e, 0x9e, 0xa9, 0xa1, 0x5f, 0xcf,
- 0xd4, 0xd0, 0xeb, 0x33, 0x15, 0xbd, 0x39, 0x53, 0xd1, 0xdb, 0x33, 0x15, 0xbd, 0x3b, 0x53, 0xd1,
- 0xf3, 0x81, 0x8a, 0xbe, 0x1b, 0xa8, 0xe8, 0xfb, 0x81, 0x8a, 0x7e, 0x1c, 0xa8, 0xe8, 0xa7, 0x81,
- 0x8a, 0x4e, 0x07, 0x6a, 0xe8, 0xe5, 0x40, 0x45, 0xaf, 0x07, 0x2a, 0x7a, 0x33, 0x50, 0x43, 0x6f,
- 0x07, 0x2a, 0x7a, 0x37, 0x50, 0x43, 0xcf, 0x7f, 0x57, 0x43, 0xad, 0x38, 0x5f, 0x9e, 0x3f, 0x02,
- 0x00, 0x00, 0xff, 0xff, 0xda, 0xba, 0x48, 0xa4, 0x67, 0x1a, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/thetest.pb.go b/vendor/github.com/gogo/protobuf/test/thetest.pb.go
index 131c864de7..321ec558ac 100644
--- a/vendor/github.com/gogo/protobuf/test/thetest.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/thetest.pb.go
@@ -3,27 +3,24 @@
package test
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
-import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/test/custom-dash-type"
-
-import bytes "bytes"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import compress_gzip "compress/gzip"
-import io_ioutil "io/ioutil"
-
-import strconv "strconv"
-
-import strings "strings"
-import sort "sort"
-import reflect "reflect"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
+ github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/test/custom-dash-type"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ sort "sort"
+ strconv "strconv"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -49,6 +46,7 @@ var TheTestEnum_name = map[int32]string{
1: "B",
2: "C",
}
+
var TheTestEnum_value = map[string]int32{
"A": 0,
"B": 1,
@@ -60,9 +58,11 @@ func (x TheTestEnum) Enum() *TheTestEnum {
*p = x
return p
}
+
func (x TheTestEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(TheTestEnum_name, int32(x))
}
+
func (x *TheTestEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(TheTestEnum_value, data, "TheTestEnum")
if err != nil {
@@ -71,8 +71,9 @@ func (x *TheTestEnum) UnmarshalJSON(data []byte) error {
*x = TheTestEnum(value)
return nil
}
+
func (TheTestEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{0}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{0}
}
type AnotherTestEnum int32
@@ -86,6 +87,7 @@ var AnotherTestEnum_name = map[int32]string{
10: "D",
11: "E",
}
+
var AnotherTestEnum_value = map[string]int32{
"D": 10,
"E": 11,
@@ -96,9 +98,11 @@ func (x AnotherTestEnum) Enum() *AnotherTestEnum {
*p = x
return p
}
+
func (x AnotherTestEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(AnotherTestEnum_name, int32(x))
}
+
func (x *AnotherTestEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(AnotherTestEnum_value, data, "AnotherTestEnum")
if err != nil {
@@ -107,8 +111,9 @@ func (x *AnotherTestEnum) UnmarshalJSON(data []byte) error {
*x = AnotherTestEnum(value)
return nil
}
+
func (AnotherTestEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{1}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{1}
}
// YetAnotherTestEnum is used to test cross-package import of custom name
@@ -124,6 +129,7 @@ var YetAnotherTestEnum_name = map[int32]string{
0: "AA",
1: "BB",
}
+
var YetAnotherTestEnum_value = map[string]int32{
"AA": 0,
"BB": 1,
@@ -134,9 +140,11 @@ func (x YetAnotherTestEnum) Enum() *YetAnotherTestEnum {
*p = x
return p
}
+
func (x YetAnotherTestEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(YetAnotherTestEnum_name, int32(x))
}
+
func (x *YetAnotherTestEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(YetAnotherTestEnum_value, data, "YetAnotherTestEnum")
if err != nil {
@@ -145,8 +153,9 @@ func (x *YetAnotherTestEnum) UnmarshalJSON(data []byte) error {
*x = YetAnotherTestEnum(value)
return nil
}
+
func (YetAnotherTestEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{2}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{2}
}
// YetAnotherTestEnum is used to test cross-package import of custom name
@@ -162,6 +171,7 @@ var YetYetAnotherTestEnum_name = map[int32]string{
0: "CC",
1: "DD",
}
+
var YetYetAnotherTestEnum_value = map[string]int32{
"CC": 0,
"DD": 1,
@@ -172,9 +182,11 @@ func (x YetYetAnotherTestEnum) Enum() *YetYetAnotherTestEnum {
*p = x
return p
}
+
func (x YetYetAnotherTestEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(YetYetAnotherTestEnum_name, int32(x))
}
+
func (x *YetYetAnotherTestEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(YetYetAnotherTestEnum_value, data, "YetYetAnotherTestEnum")
if err != nil {
@@ -183,8 +195,9 @@ func (x *YetYetAnotherTestEnum) UnmarshalJSON(data []byte) error {
*x = YetYetAnotherTestEnum(value)
return nil
}
+
func (YetYetAnotherTestEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{3}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{3}
}
type NestedDefinition_NestedEnum int32
@@ -196,6 +209,7 @@ const (
var NestedDefinition_NestedEnum_name = map[int32]string{
1: "TYPE_NESTED",
}
+
var NestedDefinition_NestedEnum_value = map[string]int32{
"TYPE_NESTED": 1,
}
@@ -205,9 +219,11 @@ func (x NestedDefinition_NestedEnum) Enum() *NestedDefinition_NestedEnum {
*p = x
return p
}
+
func (x NestedDefinition_NestedEnum) MarshalJSON() ([]byte, error) {
return proto.MarshalJSONEnum(NestedDefinition_NestedEnum_name, int32(x))
}
+
func (x *NestedDefinition_NestedEnum) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(NestedDefinition_NestedEnum_value, data, "NestedDefinition_NestedEnum")
if err != nil {
@@ -216,8 +232,9 @@ func (x *NestedDefinition_NestedEnum) UnmarshalJSON(data []byte) error {
*x = NestedDefinition_NestedEnum(value)
return nil
}
+
func (NestedDefinition_NestedEnum) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{42, 0}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{42, 0}
}
type NidOptNative struct {
@@ -244,7 +261,7 @@ type NidOptNative struct {
func (m *NidOptNative) Reset() { *m = NidOptNative{} }
func (*NidOptNative) ProtoMessage() {}
func (*NidOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{0}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{0}
}
func (m *NidOptNative) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidOptNative.Unmarshal(m, b)
@@ -252,8 +269,8 @@ func (m *NidOptNative) XXX_Unmarshal(b []byte) error {
func (m *NidOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidOptNative.Marshal(b, m, deterministic)
}
-func (dst *NidOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptNative.Merge(dst, src)
+func (m *NidOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptNative.Merge(m, src)
}
func (m *NidOptNative) XXX_Size() int {
return xxx_messageInfo_NidOptNative.Size(m)
@@ -288,7 +305,7 @@ type NinOptNative struct {
func (m *NinOptNative) Reset() { *m = NinOptNative{} }
func (*NinOptNative) ProtoMessage() {}
func (*NinOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{1}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{1}
}
func (m *NinOptNative) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptNative.Unmarshal(m, b)
@@ -296,8 +313,8 @@ func (m *NinOptNative) XXX_Unmarshal(b []byte) error {
func (m *NinOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptNative.Marshal(b, m, deterministic)
}
-func (dst *NinOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptNative.Merge(dst, src)
+func (m *NinOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptNative.Merge(m, src)
}
func (m *NinOptNative) XXX_Size() int {
return xxx_messageInfo_NinOptNative.Size(m)
@@ -332,7 +349,7 @@ type NidRepNative struct {
func (m *NidRepNative) Reset() { *m = NidRepNative{} }
func (*NidRepNative) ProtoMessage() {}
func (*NidRepNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{2}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{2}
}
func (m *NidRepNative) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidRepNative.Unmarshal(m, b)
@@ -340,8 +357,8 @@ func (m *NidRepNative) XXX_Unmarshal(b []byte) error {
func (m *NidRepNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidRepNative.Marshal(b, m, deterministic)
}
-func (dst *NidRepNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepNative.Merge(dst, src)
+func (m *NidRepNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepNative.Merge(m, src)
}
func (m *NidRepNative) XXX_Size() int {
return xxx_messageInfo_NidRepNative.Size(m)
@@ -376,7 +393,7 @@ type NinRepNative struct {
func (m *NinRepNative) Reset() { *m = NinRepNative{} }
func (*NinRepNative) ProtoMessage() {}
func (*NinRepNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{3}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{3}
}
func (m *NinRepNative) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinRepNative.Unmarshal(m, b)
@@ -384,8 +401,8 @@ func (m *NinRepNative) XXX_Unmarshal(b []byte) error {
func (m *NinRepNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinRepNative.Marshal(b, m, deterministic)
}
-func (dst *NinRepNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepNative.Merge(dst, src)
+func (m *NinRepNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepNative.Merge(m, src)
}
func (m *NinRepNative) XXX_Size() int {
return xxx_messageInfo_NinRepNative.Size(m)
@@ -418,7 +435,7 @@ type NidRepPackedNative struct {
func (m *NidRepPackedNative) Reset() { *m = NidRepPackedNative{} }
func (*NidRepPackedNative) ProtoMessage() {}
func (*NidRepPackedNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{4}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{4}
}
func (m *NidRepPackedNative) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidRepPackedNative.Unmarshal(m, b)
@@ -426,8 +443,8 @@ func (m *NidRepPackedNative) XXX_Unmarshal(b []byte) error {
func (m *NidRepPackedNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidRepPackedNative.Marshal(b, m, deterministic)
}
-func (dst *NidRepPackedNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepPackedNative.Merge(dst, src)
+func (m *NidRepPackedNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepPackedNative.Merge(m, src)
}
func (m *NidRepPackedNative) XXX_Size() int {
return xxx_messageInfo_NidRepPackedNative.Size(m)
@@ -460,7 +477,7 @@ type NinRepPackedNative struct {
func (m *NinRepPackedNative) Reset() { *m = NinRepPackedNative{} }
func (*NinRepPackedNative) ProtoMessage() {}
func (*NinRepPackedNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{5}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{5}
}
func (m *NinRepPackedNative) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinRepPackedNative.Unmarshal(m, b)
@@ -468,8 +485,8 @@ func (m *NinRepPackedNative) XXX_Unmarshal(b []byte) error {
func (m *NinRepPackedNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinRepPackedNative.Marshal(b, m, deterministic)
}
-func (dst *NinRepPackedNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepPackedNative.Merge(dst, src)
+func (m *NinRepPackedNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepPackedNative.Merge(m, src)
}
func (m *NinRepPackedNative) XXX_Size() int {
return xxx_messageInfo_NinRepPackedNative.Size(m)
@@ -499,7 +516,7 @@ type NidOptStruct struct {
func (m *NidOptStruct) Reset() { *m = NidOptStruct{} }
func (*NidOptStruct) ProtoMessage() {}
func (*NidOptStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{6}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{6}
}
func (m *NidOptStruct) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidOptStruct.Unmarshal(m, b)
@@ -507,8 +524,8 @@ func (m *NidOptStruct) XXX_Unmarshal(b []byte) error {
func (m *NidOptStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidOptStruct.Marshal(b, m, deterministic)
}
-func (dst *NidOptStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptStruct.Merge(dst, src)
+func (m *NidOptStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptStruct.Merge(m, src)
}
func (m *NidOptStruct) XXX_Size() int {
return xxx_messageInfo_NidOptStruct.Size(m)
@@ -538,7 +555,7 @@ type NinOptStruct struct {
func (m *NinOptStruct) Reset() { *m = NinOptStruct{} }
func (*NinOptStruct) ProtoMessage() {}
func (*NinOptStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{7}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{7}
}
func (m *NinOptStruct) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptStruct.Unmarshal(m, b)
@@ -546,8 +563,8 @@ func (m *NinOptStruct) XXX_Unmarshal(b []byte) error {
func (m *NinOptStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptStruct.Marshal(b, m, deterministic)
}
-func (dst *NinOptStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptStruct.Merge(dst, src)
+func (m *NinOptStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptStruct.Merge(m, src)
}
func (m *NinOptStruct) XXX_Size() int {
return xxx_messageInfo_NinOptStruct.Size(m)
@@ -577,7 +594,7 @@ type NidRepStruct struct {
func (m *NidRepStruct) Reset() { *m = NidRepStruct{} }
func (*NidRepStruct) ProtoMessage() {}
func (*NidRepStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{8}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{8}
}
func (m *NidRepStruct) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidRepStruct.Unmarshal(m, b)
@@ -585,8 +602,8 @@ func (m *NidRepStruct) XXX_Unmarshal(b []byte) error {
func (m *NidRepStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidRepStruct.Marshal(b, m, deterministic)
}
-func (dst *NidRepStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepStruct.Merge(dst, src)
+func (m *NidRepStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepStruct.Merge(m, src)
}
func (m *NidRepStruct) XXX_Size() int {
return xxx_messageInfo_NidRepStruct.Size(m)
@@ -616,7 +633,7 @@ type NinRepStruct struct {
func (m *NinRepStruct) Reset() { *m = NinRepStruct{} }
func (*NinRepStruct) ProtoMessage() {}
func (*NinRepStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{9}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{9}
}
func (m *NinRepStruct) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinRepStruct.Unmarshal(m, b)
@@ -624,8 +641,8 @@ func (m *NinRepStruct) XXX_Unmarshal(b []byte) error {
func (m *NinRepStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinRepStruct.Marshal(b, m, deterministic)
}
-func (dst *NinRepStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepStruct.Merge(dst, src)
+func (m *NinRepStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepStruct.Merge(m, src)
}
func (m *NinRepStruct) XXX_Size() int {
return xxx_messageInfo_NinRepStruct.Size(m)
@@ -648,7 +665,7 @@ type NidEmbeddedStruct struct {
func (m *NidEmbeddedStruct) Reset() { *m = NidEmbeddedStruct{} }
func (*NidEmbeddedStruct) ProtoMessage() {}
func (*NidEmbeddedStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{10}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{10}
}
func (m *NidEmbeddedStruct) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidEmbeddedStruct.Unmarshal(m, b)
@@ -656,8 +673,8 @@ func (m *NidEmbeddedStruct) XXX_Unmarshal(b []byte) error {
func (m *NidEmbeddedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidEmbeddedStruct.Marshal(b, m, deterministic)
}
-func (dst *NidEmbeddedStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidEmbeddedStruct.Merge(dst, src)
+func (m *NidEmbeddedStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidEmbeddedStruct.Merge(m, src)
}
func (m *NidEmbeddedStruct) XXX_Size() int {
return xxx_messageInfo_NidEmbeddedStruct.Size(m)
@@ -680,7 +697,7 @@ type NinEmbeddedStruct struct {
func (m *NinEmbeddedStruct) Reset() { *m = NinEmbeddedStruct{} }
func (*NinEmbeddedStruct) ProtoMessage() {}
func (*NinEmbeddedStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{11}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{11}
}
func (m *NinEmbeddedStruct) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinEmbeddedStruct.Unmarshal(m, b)
@@ -688,8 +705,8 @@ func (m *NinEmbeddedStruct) XXX_Unmarshal(b []byte) error {
func (m *NinEmbeddedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinEmbeddedStruct.Marshal(b, m, deterministic)
}
-func (dst *NinEmbeddedStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinEmbeddedStruct.Merge(dst, src)
+func (m *NinEmbeddedStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinEmbeddedStruct.Merge(m, src)
}
func (m *NinEmbeddedStruct) XXX_Size() int {
return xxx_messageInfo_NinEmbeddedStruct.Size(m)
@@ -711,7 +728,7 @@ type NidNestedStruct struct {
func (m *NidNestedStruct) Reset() { *m = NidNestedStruct{} }
func (*NidNestedStruct) ProtoMessage() {}
func (*NidNestedStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{12}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{12}
}
func (m *NidNestedStruct) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidNestedStruct.Unmarshal(m, b)
@@ -719,8 +736,8 @@ func (m *NidNestedStruct) XXX_Unmarshal(b []byte) error {
func (m *NidNestedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidNestedStruct.Marshal(b, m, deterministic)
}
-func (dst *NidNestedStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidNestedStruct.Merge(dst, src)
+func (m *NidNestedStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidNestedStruct.Merge(m, src)
}
func (m *NidNestedStruct) XXX_Size() int {
return xxx_messageInfo_NidNestedStruct.Size(m)
@@ -742,7 +759,7 @@ type NinNestedStruct struct {
func (m *NinNestedStruct) Reset() { *m = NinNestedStruct{} }
func (*NinNestedStruct) ProtoMessage() {}
func (*NinNestedStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{13}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{13}
}
func (m *NinNestedStruct) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinNestedStruct.Unmarshal(m, b)
@@ -750,8 +767,8 @@ func (m *NinNestedStruct) XXX_Unmarshal(b []byte) error {
func (m *NinNestedStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinNestedStruct.Marshal(b, m, deterministic)
}
-func (dst *NinNestedStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinNestedStruct.Merge(dst, src)
+func (m *NinNestedStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinNestedStruct.Merge(m, src)
}
func (m *NinNestedStruct) XXX_Size() int {
return xxx_messageInfo_NinNestedStruct.Size(m)
@@ -773,7 +790,7 @@ type NidOptCustom struct {
func (m *NidOptCustom) Reset() { *m = NidOptCustom{} }
func (*NidOptCustom) ProtoMessage() {}
func (*NidOptCustom) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{14}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{14}
}
func (m *NidOptCustom) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidOptCustom.Unmarshal(m, b)
@@ -781,8 +798,8 @@ func (m *NidOptCustom) XXX_Unmarshal(b []byte) error {
func (m *NidOptCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidOptCustom.Marshal(b, m, deterministic)
}
-func (dst *NidOptCustom) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptCustom.Merge(dst, src)
+func (m *NidOptCustom) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptCustom.Merge(m, src)
}
func (m *NidOptCustom) XXX_Size() int {
return xxx_messageInfo_NidOptCustom.Size(m)
@@ -803,7 +820,7 @@ type CustomDash struct {
func (m *CustomDash) Reset() { *m = CustomDash{} }
func (*CustomDash) ProtoMessage() {}
func (*CustomDash) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{15}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{15}
}
func (m *CustomDash) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomDash.Unmarshal(m, b)
@@ -811,8 +828,8 @@ func (m *CustomDash) XXX_Unmarshal(b []byte) error {
func (m *CustomDash) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomDash.Marshal(b, m, deterministic)
}
-func (dst *CustomDash) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomDash.Merge(dst, src)
+func (m *CustomDash) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomDash.Merge(m, src)
}
func (m *CustomDash) XXX_Size() int {
return xxx_messageInfo_CustomDash.Size(m)
@@ -834,7 +851,7 @@ type NinOptCustom struct {
func (m *NinOptCustom) Reset() { *m = NinOptCustom{} }
func (*NinOptCustom) ProtoMessage() {}
func (*NinOptCustom) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{16}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{16}
}
func (m *NinOptCustom) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptCustom.Unmarshal(m, b)
@@ -842,8 +859,8 @@ func (m *NinOptCustom) XXX_Unmarshal(b []byte) error {
func (m *NinOptCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptCustom.Marshal(b, m, deterministic)
}
-func (dst *NinOptCustom) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptCustom.Merge(dst, src)
+func (m *NinOptCustom) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptCustom.Merge(m, src)
}
func (m *NinOptCustom) XXX_Size() int {
return xxx_messageInfo_NinOptCustom.Size(m)
@@ -865,7 +882,7 @@ type NidRepCustom struct {
func (m *NidRepCustom) Reset() { *m = NidRepCustom{} }
func (*NidRepCustom) ProtoMessage() {}
func (*NidRepCustom) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{17}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{17}
}
func (m *NidRepCustom) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidRepCustom.Unmarshal(m, b)
@@ -873,8 +890,8 @@ func (m *NidRepCustom) XXX_Unmarshal(b []byte) error {
func (m *NidRepCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidRepCustom.Marshal(b, m, deterministic)
}
-func (dst *NidRepCustom) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepCustom.Merge(dst, src)
+func (m *NidRepCustom) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepCustom.Merge(m, src)
}
func (m *NidRepCustom) XXX_Size() int {
return xxx_messageInfo_NidRepCustom.Size(m)
@@ -896,7 +913,7 @@ type NinRepCustom struct {
func (m *NinRepCustom) Reset() { *m = NinRepCustom{} }
func (*NinRepCustom) ProtoMessage() {}
func (*NinRepCustom) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{18}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{18}
}
func (m *NinRepCustom) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinRepCustom.Unmarshal(m, b)
@@ -904,8 +921,8 @@ func (m *NinRepCustom) XXX_Unmarshal(b []byte) error {
func (m *NinRepCustom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinRepCustom.Marshal(b, m, deterministic)
}
-func (dst *NinRepCustom) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepCustom.Merge(dst, src)
+func (m *NinRepCustom) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepCustom.Merge(m, src)
}
func (m *NinRepCustom) XXX_Size() int {
return xxx_messageInfo_NinRepCustom.Size(m)
@@ -934,7 +951,7 @@ type NinOptNativeUnion struct {
func (m *NinOptNativeUnion) Reset() { *m = NinOptNativeUnion{} }
func (*NinOptNativeUnion) ProtoMessage() {}
func (*NinOptNativeUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{19}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{19}
}
func (m *NinOptNativeUnion) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptNativeUnion.Unmarshal(m, b)
@@ -942,8 +959,8 @@ func (m *NinOptNativeUnion) XXX_Unmarshal(b []byte) error {
func (m *NinOptNativeUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptNativeUnion.Marshal(b, m, deterministic)
}
-func (dst *NinOptNativeUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptNativeUnion.Merge(dst, src)
+func (m *NinOptNativeUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptNativeUnion.Merge(m, src)
}
func (m *NinOptNativeUnion) XXX_Size() int {
return xxx_messageInfo_NinOptNativeUnion.Size(m)
@@ -972,7 +989,7 @@ type NinOptStructUnion struct {
func (m *NinOptStructUnion) Reset() { *m = NinOptStructUnion{} }
func (*NinOptStructUnion) ProtoMessage() {}
func (*NinOptStructUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{20}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{20}
}
func (m *NinOptStructUnion) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptStructUnion.Unmarshal(m, b)
@@ -980,8 +997,8 @@ func (m *NinOptStructUnion) XXX_Unmarshal(b []byte) error {
func (m *NinOptStructUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptStructUnion.Marshal(b, m, deterministic)
}
-func (dst *NinOptStructUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptStructUnion.Merge(dst, src)
+func (m *NinOptStructUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptStructUnion.Merge(m, src)
}
func (m *NinOptStructUnion) XXX_Size() int {
return xxx_messageInfo_NinOptStructUnion.Size(m)
@@ -1004,7 +1021,7 @@ type NinEmbeddedStructUnion struct {
func (m *NinEmbeddedStructUnion) Reset() { *m = NinEmbeddedStructUnion{} }
func (*NinEmbeddedStructUnion) ProtoMessage() {}
func (*NinEmbeddedStructUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{21}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{21}
}
func (m *NinEmbeddedStructUnion) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinEmbeddedStructUnion.Unmarshal(m, b)
@@ -1012,8 +1029,8 @@ func (m *NinEmbeddedStructUnion) XXX_Unmarshal(b []byte) error {
func (m *NinEmbeddedStructUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinEmbeddedStructUnion.Marshal(b, m, deterministic)
}
-func (dst *NinEmbeddedStructUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinEmbeddedStructUnion.Merge(dst, src)
+func (m *NinEmbeddedStructUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinEmbeddedStructUnion.Merge(m, src)
}
func (m *NinEmbeddedStructUnion) XXX_Size() int {
return xxx_messageInfo_NinEmbeddedStructUnion.Size(m)
@@ -1036,7 +1053,7 @@ type NinNestedStructUnion struct {
func (m *NinNestedStructUnion) Reset() { *m = NinNestedStructUnion{} }
func (*NinNestedStructUnion) ProtoMessage() {}
func (*NinNestedStructUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{22}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{22}
}
func (m *NinNestedStructUnion) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinNestedStructUnion.Unmarshal(m, b)
@@ -1044,8 +1061,8 @@ func (m *NinNestedStructUnion) XXX_Unmarshal(b []byte) error {
func (m *NinNestedStructUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinNestedStructUnion.Marshal(b, m, deterministic)
}
-func (dst *NinNestedStructUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinNestedStructUnion.Merge(dst, src)
+func (m *NinNestedStructUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinNestedStructUnion.Merge(m, src)
}
func (m *NinNestedStructUnion) XXX_Size() int {
return xxx_messageInfo_NinNestedStructUnion.Size(m)
@@ -1068,7 +1085,7 @@ type Tree struct {
func (m *Tree) Reset() { *m = Tree{} }
func (*Tree) ProtoMessage() {}
func (*Tree) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{23}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{23}
}
func (m *Tree) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Tree.Unmarshal(m, b)
@@ -1076,8 +1093,8 @@ func (m *Tree) XXX_Unmarshal(b []byte) error {
func (m *Tree) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Tree.Marshal(b, m, deterministic)
}
-func (dst *Tree) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Tree.Merge(dst, src)
+func (m *Tree) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Tree.Merge(m, src)
}
func (m *Tree) XXX_Size() int {
return xxx_messageInfo_Tree.Size(m)
@@ -1099,7 +1116,7 @@ type OrBranch struct {
func (m *OrBranch) Reset() { *m = OrBranch{} }
func (*OrBranch) ProtoMessage() {}
func (*OrBranch) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{24}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{24}
}
func (m *OrBranch) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OrBranch.Unmarshal(m, b)
@@ -1107,8 +1124,8 @@ func (m *OrBranch) XXX_Unmarshal(b []byte) error {
func (m *OrBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OrBranch.Marshal(b, m, deterministic)
}
-func (dst *OrBranch) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OrBranch.Merge(dst, src)
+func (m *OrBranch) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OrBranch.Merge(m, src)
}
func (m *OrBranch) XXX_Size() int {
return xxx_messageInfo_OrBranch.Size(m)
@@ -1130,7 +1147,7 @@ type AndBranch struct {
func (m *AndBranch) Reset() { *m = AndBranch{} }
func (*AndBranch) ProtoMessage() {}
func (*AndBranch) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{25}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{25}
}
func (m *AndBranch) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AndBranch.Unmarshal(m, b)
@@ -1138,8 +1155,8 @@ func (m *AndBranch) XXX_Unmarshal(b []byte) error {
func (m *AndBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AndBranch.Marshal(b, m, deterministic)
}
-func (dst *AndBranch) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AndBranch.Merge(dst, src)
+func (m *AndBranch) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AndBranch.Merge(m, src)
}
func (m *AndBranch) XXX_Size() int {
return xxx_messageInfo_AndBranch.Size(m)
@@ -1161,7 +1178,7 @@ type Leaf struct {
func (m *Leaf) Reset() { *m = Leaf{} }
func (*Leaf) ProtoMessage() {}
func (*Leaf) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{26}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{26}
}
func (m *Leaf) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Leaf.Unmarshal(m, b)
@@ -1169,8 +1186,8 @@ func (m *Leaf) XXX_Unmarshal(b []byte) error {
func (m *Leaf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Leaf.Marshal(b, m, deterministic)
}
-func (dst *Leaf) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Leaf.Merge(dst, src)
+func (m *Leaf) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Leaf.Merge(m, src)
}
func (m *Leaf) XXX_Size() int {
return xxx_messageInfo_Leaf.Size(m)
@@ -1193,7 +1210,7 @@ type DeepTree struct {
func (m *DeepTree) Reset() { *m = DeepTree{} }
func (*DeepTree) ProtoMessage() {}
func (*DeepTree) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{27}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{27}
}
func (m *DeepTree) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeepTree.Unmarshal(m, b)
@@ -1201,8 +1218,8 @@ func (m *DeepTree) XXX_Unmarshal(b []byte) error {
func (m *DeepTree) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DeepTree.Marshal(b, m, deterministic)
}
-func (dst *DeepTree) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DeepTree.Merge(dst, src)
+func (m *DeepTree) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DeepTree.Merge(m, src)
}
func (m *DeepTree) XXX_Size() int {
return xxx_messageInfo_DeepTree.Size(m)
@@ -1223,7 +1240,7 @@ type ADeepBranch struct {
func (m *ADeepBranch) Reset() { *m = ADeepBranch{} }
func (*ADeepBranch) ProtoMessage() {}
func (*ADeepBranch) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{28}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{28}
}
func (m *ADeepBranch) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ADeepBranch.Unmarshal(m, b)
@@ -1231,8 +1248,8 @@ func (m *ADeepBranch) XXX_Unmarshal(b []byte) error {
func (m *ADeepBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ADeepBranch.Marshal(b, m, deterministic)
}
-func (dst *ADeepBranch) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ADeepBranch.Merge(dst, src)
+func (m *ADeepBranch) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ADeepBranch.Merge(m, src)
}
func (m *ADeepBranch) XXX_Size() int {
return xxx_messageInfo_ADeepBranch.Size(m)
@@ -1254,7 +1271,7 @@ type AndDeepBranch struct {
func (m *AndDeepBranch) Reset() { *m = AndDeepBranch{} }
func (*AndDeepBranch) ProtoMessage() {}
func (*AndDeepBranch) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{29}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{29}
}
func (m *AndDeepBranch) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AndDeepBranch.Unmarshal(m, b)
@@ -1262,8 +1279,8 @@ func (m *AndDeepBranch) XXX_Unmarshal(b []byte) error {
func (m *AndDeepBranch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AndDeepBranch.Marshal(b, m, deterministic)
}
-func (dst *AndDeepBranch) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AndDeepBranch.Merge(dst, src)
+func (m *AndDeepBranch) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AndDeepBranch.Merge(m, src)
}
func (m *AndDeepBranch) XXX_Size() int {
return xxx_messageInfo_AndDeepBranch.Size(m)
@@ -1284,7 +1301,7 @@ type DeepLeaf struct {
func (m *DeepLeaf) Reset() { *m = DeepLeaf{} }
func (*DeepLeaf) ProtoMessage() {}
func (*DeepLeaf) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{30}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{30}
}
func (m *DeepLeaf) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeepLeaf.Unmarshal(m, b)
@@ -1292,8 +1309,8 @@ func (m *DeepLeaf) XXX_Unmarshal(b []byte) error {
func (m *DeepLeaf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DeepLeaf.Marshal(b, m, deterministic)
}
-func (dst *DeepLeaf) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DeepLeaf.Merge(dst, src)
+func (m *DeepLeaf) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DeepLeaf.Merge(m, src)
}
func (m *DeepLeaf) XXX_Size() int {
return xxx_messageInfo_DeepLeaf.Size(m)
@@ -1313,7 +1330,7 @@ type Nil struct {
func (m *Nil) Reset() { *m = Nil{} }
func (*Nil) ProtoMessage() {}
func (*Nil) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{31}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{31}
}
func (m *Nil) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Nil.Unmarshal(m, b)
@@ -1321,8 +1338,8 @@ func (m *Nil) XXX_Unmarshal(b []byte) error {
func (m *Nil) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Nil.Marshal(b, m, deterministic)
}
-func (dst *Nil) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Nil.Merge(dst, src)
+func (m *Nil) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Nil.Merge(m, src)
}
func (m *Nil) XXX_Size() int {
return xxx_messageInfo_Nil.Size(m)
@@ -1343,7 +1360,7 @@ type NidOptEnum struct {
func (m *NidOptEnum) Reset() { *m = NidOptEnum{} }
func (*NidOptEnum) ProtoMessage() {}
func (*NidOptEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{32}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{32}
}
func (m *NidOptEnum) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidOptEnum.Unmarshal(m, b)
@@ -1351,8 +1368,8 @@ func (m *NidOptEnum) XXX_Unmarshal(b []byte) error {
func (m *NidOptEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidOptEnum.Marshal(b, m, deterministic)
}
-func (dst *NidOptEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptEnum.Merge(dst, src)
+func (m *NidOptEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptEnum.Merge(m, src)
}
func (m *NidOptEnum) XXX_Size() int {
return xxx_messageInfo_NidOptEnum.Size(m)
@@ -1375,7 +1392,7 @@ type NinOptEnum struct {
func (m *NinOptEnum) Reset() { *m = NinOptEnum{} }
func (*NinOptEnum) ProtoMessage() {}
func (*NinOptEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{33}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{33}
}
func (m *NinOptEnum) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptEnum.Unmarshal(m, b)
@@ -1383,8 +1400,8 @@ func (m *NinOptEnum) XXX_Unmarshal(b []byte) error {
func (m *NinOptEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptEnum.Marshal(b, m, deterministic)
}
-func (dst *NinOptEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptEnum.Merge(dst, src)
+func (m *NinOptEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptEnum.Merge(m, src)
}
func (m *NinOptEnum) XXX_Size() int {
return xxx_messageInfo_NinOptEnum.Size(m)
@@ -1407,7 +1424,7 @@ type NidRepEnum struct {
func (m *NidRepEnum) Reset() { *m = NidRepEnum{} }
func (*NidRepEnum) ProtoMessage() {}
func (*NidRepEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{34}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{34}
}
func (m *NidRepEnum) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidRepEnum.Unmarshal(m, b)
@@ -1415,8 +1432,8 @@ func (m *NidRepEnum) XXX_Unmarshal(b []byte) error {
func (m *NidRepEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidRepEnum.Marshal(b, m, deterministic)
}
-func (dst *NidRepEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepEnum.Merge(dst, src)
+func (m *NidRepEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepEnum.Merge(m, src)
}
func (m *NidRepEnum) XXX_Size() int {
return xxx_messageInfo_NidRepEnum.Size(m)
@@ -1439,7 +1456,7 @@ type NinRepEnum struct {
func (m *NinRepEnum) Reset() { *m = NinRepEnum{} }
func (*NinRepEnum) ProtoMessage() {}
func (*NinRepEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{35}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{35}
}
func (m *NinRepEnum) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinRepEnum.Unmarshal(m, b)
@@ -1447,8 +1464,8 @@ func (m *NinRepEnum) XXX_Unmarshal(b []byte) error {
func (m *NinRepEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinRepEnum.Marshal(b, m, deterministic)
}
-func (dst *NinRepEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepEnum.Merge(dst, src)
+func (m *NinRepEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepEnum.Merge(m, src)
}
func (m *NinRepEnum) XXX_Size() int {
return xxx_messageInfo_NinRepEnum.Size(m)
@@ -1471,7 +1488,7 @@ type NinOptEnumDefault struct {
func (m *NinOptEnumDefault) Reset() { *m = NinOptEnumDefault{} }
func (*NinOptEnumDefault) ProtoMessage() {}
func (*NinOptEnumDefault) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{36}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{36}
}
func (m *NinOptEnumDefault) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptEnumDefault.Unmarshal(m, b)
@@ -1479,8 +1496,8 @@ func (m *NinOptEnumDefault) XXX_Unmarshal(b []byte) error {
func (m *NinOptEnumDefault) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptEnumDefault.Marshal(b, m, deterministic)
}
-func (dst *NinOptEnumDefault) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptEnumDefault.Merge(dst, src)
+func (m *NinOptEnumDefault) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptEnumDefault.Merge(m, src)
}
func (m *NinOptEnumDefault) XXX_Size() int {
return xxx_messageInfo_NinOptEnumDefault.Size(m)
@@ -1528,7 +1545,7 @@ type AnotherNinOptEnum struct {
func (m *AnotherNinOptEnum) Reset() { *m = AnotherNinOptEnum{} }
func (*AnotherNinOptEnum) ProtoMessage() {}
func (*AnotherNinOptEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{37}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{37}
}
func (m *AnotherNinOptEnum) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AnotherNinOptEnum.Unmarshal(m, b)
@@ -1536,8 +1553,8 @@ func (m *AnotherNinOptEnum) XXX_Unmarshal(b []byte) error {
func (m *AnotherNinOptEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AnotherNinOptEnum.Marshal(b, m, deterministic)
}
-func (dst *AnotherNinOptEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AnotherNinOptEnum.Merge(dst, src)
+func (m *AnotherNinOptEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AnotherNinOptEnum.Merge(m, src)
}
func (m *AnotherNinOptEnum) XXX_Size() int {
return xxx_messageInfo_AnotherNinOptEnum.Size(m)
@@ -1560,7 +1577,7 @@ type AnotherNinOptEnumDefault struct {
func (m *AnotherNinOptEnumDefault) Reset() { *m = AnotherNinOptEnumDefault{} }
func (*AnotherNinOptEnumDefault) ProtoMessage() {}
func (*AnotherNinOptEnumDefault) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{38}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{38}
}
func (m *AnotherNinOptEnumDefault) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AnotherNinOptEnumDefault.Unmarshal(m, b)
@@ -1568,8 +1585,8 @@ func (m *AnotherNinOptEnumDefault) XXX_Unmarshal(b []byte) error {
func (m *AnotherNinOptEnumDefault) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AnotherNinOptEnumDefault.Marshal(b, m, deterministic)
}
-func (dst *AnotherNinOptEnumDefault) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AnotherNinOptEnumDefault.Merge(dst, src)
+func (m *AnotherNinOptEnumDefault) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AnotherNinOptEnumDefault.Merge(m, src)
}
func (m *AnotherNinOptEnumDefault) XXX_Size() int {
return xxx_messageInfo_AnotherNinOptEnumDefault.Size(m)
@@ -1617,7 +1634,7 @@ type Timer struct {
func (m *Timer) Reset() { *m = Timer{} }
func (*Timer) ProtoMessage() {}
func (*Timer) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{39}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{39}
}
func (m *Timer) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Timer.Unmarshal(m, b)
@@ -1625,8 +1642,8 @@ func (m *Timer) XXX_Unmarshal(b []byte) error {
func (m *Timer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Timer.Marshal(b, m, deterministic)
}
-func (dst *Timer) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Timer.Merge(dst, src)
+func (m *Timer) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Timer.Merge(m, src)
}
func (m *Timer) XXX_Size() int {
return xxx_messageInfo_Timer.Size(m)
@@ -1648,7 +1665,7 @@ type MyExtendable struct {
func (m *MyExtendable) Reset() { *m = MyExtendable{} }
func (*MyExtendable) ProtoMessage() {}
func (*MyExtendable) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{40}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{40}
}
var extRange_MyExtendable = []proto.ExtensionRange{
@@ -1658,14 +1675,15 @@ var extRange_MyExtendable = []proto.ExtensionRange{
func (*MyExtendable) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_MyExtendable
}
+
func (m *MyExtendable) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MyExtendable.Unmarshal(m, b)
}
func (m *MyExtendable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MyExtendable.Marshal(b, m, deterministic)
}
-func (dst *MyExtendable) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MyExtendable.Merge(dst, src)
+func (m *MyExtendable) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MyExtendable.Merge(m, src)
}
func (m *MyExtendable) XXX_Size() int {
return xxx_messageInfo_MyExtendable.Size(m)
@@ -1689,7 +1707,7 @@ type OtherExtenable struct {
func (m *OtherExtenable) Reset() { *m = OtherExtenable{} }
func (*OtherExtenable) ProtoMessage() {}
func (*OtherExtenable) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{41}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{41}
}
var extRange_OtherExtenable = []proto.ExtensionRange{
@@ -1700,14 +1718,15 @@ var extRange_OtherExtenable = []proto.ExtensionRange{
func (*OtherExtenable) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_OtherExtenable
}
+
func (m *OtherExtenable) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OtherExtenable.Unmarshal(m, b)
}
func (m *OtherExtenable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OtherExtenable.Marshal(b, m, deterministic)
}
-func (dst *OtherExtenable) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OtherExtenable.Merge(dst, src)
+func (m *OtherExtenable) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OtherExtenable.Merge(m, src)
}
func (m *OtherExtenable) XXX_Size() int {
return xxx_messageInfo_OtherExtenable.Size(m)
@@ -1731,7 +1750,7 @@ type NestedDefinition struct {
func (m *NestedDefinition) Reset() { *m = NestedDefinition{} }
func (*NestedDefinition) ProtoMessage() {}
func (*NestedDefinition) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{42}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{42}
}
func (m *NestedDefinition) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NestedDefinition.Unmarshal(m, b)
@@ -1739,8 +1758,8 @@ func (m *NestedDefinition) XXX_Unmarshal(b []byte) error {
func (m *NestedDefinition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NestedDefinition.Marshal(b, m, deterministic)
}
-func (dst *NestedDefinition) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedDefinition.Merge(dst, src)
+func (m *NestedDefinition) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedDefinition.Merge(m, src)
}
func (m *NestedDefinition) XXX_Size() int {
return xxx_messageInfo_NestedDefinition.Size(m)
@@ -1762,7 +1781,7 @@ type NestedDefinition_NestedMessage struct {
func (m *NestedDefinition_NestedMessage) Reset() { *m = NestedDefinition_NestedMessage{} }
func (*NestedDefinition_NestedMessage) ProtoMessage() {}
func (*NestedDefinition_NestedMessage) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{42, 0}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{42, 0}
}
func (m *NestedDefinition_NestedMessage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NestedDefinition_NestedMessage.Unmarshal(m, b)
@@ -1770,8 +1789,8 @@ func (m *NestedDefinition_NestedMessage) XXX_Unmarshal(b []byte) error {
func (m *NestedDefinition_NestedMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NestedDefinition_NestedMessage.Marshal(b, m, deterministic)
}
-func (dst *NestedDefinition_NestedMessage) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedDefinition_NestedMessage.Merge(dst, src)
+func (m *NestedDefinition_NestedMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedDefinition_NestedMessage.Merge(m, src)
}
func (m *NestedDefinition_NestedMessage) XXX_Size() int {
return xxx_messageInfo_NestedDefinition_NestedMessage.Size(m)
@@ -1794,7 +1813,7 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Reset() {
}
func (*NestedDefinition_NestedMessage_NestedNestedMsg) ProtoMessage() {}
func (*NestedDefinition_NestedMessage_NestedNestedMsg) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{42, 0, 0}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{42, 0, 0}
}
func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NestedDefinition_NestedMessage_NestedNestedMsg.Unmarshal(m, b)
@@ -1802,8 +1821,8 @@ func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Unmarshal(b []byte)
func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NestedDefinition_NestedMessage_NestedNestedMsg.Marshal(b, m, deterministic)
}
-func (dst *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedDefinition_NestedMessage_NestedNestedMsg.Merge(dst, src)
+func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedDefinition_NestedMessage_NestedNestedMsg.Merge(m, src)
}
func (m *NestedDefinition_NestedMessage_NestedNestedMsg) XXX_Size() int {
return xxx_messageInfo_NestedDefinition_NestedMessage_NestedNestedMsg.Size(m)
@@ -1826,7 +1845,7 @@ type NestedScope struct {
func (m *NestedScope) Reset() { *m = NestedScope{} }
func (*NestedScope) ProtoMessage() {}
func (*NestedScope) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{43}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{43}
}
func (m *NestedScope) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NestedScope.Unmarshal(m, b)
@@ -1834,8 +1853,8 @@ func (m *NestedScope) XXX_Unmarshal(b []byte) error {
func (m *NestedScope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NestedScope.Marshal(b, m, deterministic)
}
-func (dst *NestedScope) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NestedScope.Merge(dst, src)
+func (m *NestedScope) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NestedScope.Merge(m, src)
}
func (m *NestedScope) XXX_Size() int {
return xxx_messageInfo_NestedScope.Size(m)
@@ -1848,7 +1867,7 @@ var xxx_messageInfo_NestedScope proto.InternalMessageInfo
type NinOptNativeDefault struct {
Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"`
- Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.12341" json:"Field2,omitempty"`
+ Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"`
Field3 *int32 `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"`
Field4 *int64 `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"`
Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"`
@@ -1870,7 +1889,7 @@ type NinOptNativeDefault struct {
func (m *NinOptNativeDefault) Reset() { *m = NinOptNativeDefault{} }
func (*NinOptNativeDefault) ProtoMessage() {}
func (*NinOptNativeDefault) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{44}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{44}
}
func (m *NinOptNativeDefault) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptNativeDefault.Unmarshal(m, b)
@@ -1878,8 +1897,8 @@ func (m *NinOptNativeDefault) XXX_Unmarshal(b []byte) error {
func (m *NinOptNativeDefault) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptNativeDefault.Marshal(b, m, deterministic)
}
-func (dst *NinOptNativeDefault) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptNativeDefault.Merge(dst, src)
+func (m *NinOptNativeDefault) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptNativeDefault.Merge(m, src)
}
func (m *NinOptNativeDefault) XXX_Size() int {
return xxx_messageInfo_NinOptNativeDefault.Size(m)
@@ -1891,7 +1910,7 @@ func (m *NinOptNativeDefault) XXX_DiscardUnknown() {
var xxx_messageInfo_NinOptNativeDefault proto.InternalMessageInfo
const Default_NinOptNativeDefault_Field1 float64 = 1234.1234
-const Default_NinOptNativeDefault_Field2 float32 = 1234.12341
+const Default_NinOptNativeDefault_Field2 float32 = 1234.1234
const Default_NinOptNativeDefault_Field3 int32 = 1234
const Default_NinOptNativeDefault_Field4 int64 = 1234
const Default_NinOptNativeDefault_Field5 uint32 = 1234
@@ -2020,7 +2039,7 @@ type CustomContainer struct {
func (m *CustomContainer) Reset() { *m = CustomContainer{} }
func (*CustomContainer) ProtoMessage() {}
func (*CustomContainer) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{45}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{45}
}
func (m *CustomContainer) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomContainer.Unmarshal(m, b)
@@ -2028,8 +2047,8 @@ func (m *CustomContainer) XXX_Unmarshal(b []byte) error {
func (m *CustomContainer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomContainer.Marshal(b, m, deterministic)
}
-func (dst *CustomContainer) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomContainer.Merge(dst, src)
+func (m *CustomContainer) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomContainer.Merge(m, src)
}
func (m *CustomContainer) XXX_Size() int {
return xxx_messageInfo_CustomContainer.Size(m)
@@ -2064,7 +2083,7 @@ type CustomNameNidOptNative struct {
func (m *CustomNameNidOptNative) Reset() { *m = CustomNameNidOptNative{} }
func (*CustomNameNidOptNative) ProtoMessage() {}
func (*CustomNameNidOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{46}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{46}
}
func (m *CustomNameNidOptNative) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomNameNidOptNative.Unmarshal(m, b)
@@ -2072,8 +2091,8 @@ func (m *CustomNameNidOptNative) XXX_Unmarshal(b []byte) error {
func (m *CustomNameNidOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomNameNidOptNative.Marshal(b, m, deterministic)
}
-func (dst *CustomNameNidOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNidOptNative.Merge(dst, src)
+func (m *CustomNameNidOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNidOptNative.Merge(m, src)
}
func (m *CustomNameNidOptNative) XXX_Size() int {
return xxx_messageInfo_CustomNameNidOptNative.Size(m)
@@ -2108,7 +2127,7 @@ type CustomNameNinOptNative struct {
func (m *CustomNameNinOptNative) Reset() { *m = CustomNameNinOptNative{} }
func (*CustomNameNinOptNative) ProtoMessage() {}
func (*CustomNameNinOptNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{47}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{47}
}
func (m *CustomNameNinOptNative) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomNameNinOptNative.Unmarshal(m, b)
@@ -2116,8 +2135,8 @@ func (m *CustomNameNinOptNative) XXX_Unmarshal(b []byte) error {
func (m *CustomNameNinOptNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomNameNinOptNative.Marshal(b, m, deterministic)
}
-func (dst *CustomNameNinOptNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNinOptNative.Merge(dst, src)
+func (m *CustomNameNinOptNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNinOptNative.Merge(m, src)
}
func (m *CustomNameNinOptNative) XXX_Size() int {
return xxx_messageInfo_CustomNameNinOptNative.Size(m)
@@ -2152,7 +2171,7 @@ type CustomNameNinRepNative struct {
func (m *CustomNameNinRepNative) Reset() { *m = CustomNameNinRepNative{} }
func (*CustomNameNinRepNative) ProtoMessage() {}
func (*CustomNameNinRepNative) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{48}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{48}
}
func (m *CustomNameNinRepNative) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomNameNinRepNative.Unmarshal(m, b)
@@ -2160,8 +2179,8 @@ func (m *CustomNameNinRepNative) XXX_Unmarshal(b []byte) error {
func (m *CustomNameNinRepNative) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomNameNinRepNative.Marshal(b, m, deterministic)
}
-func (dst *CustomNameNinRepNative) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNinRepNative.Merge(dst, src)
+func (m *CustomNameNinRepNative) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNinRepNative.Merge(m, src)
}
func (m *CustomNameNinRepNative) XXX_Size() int {
return xxx_messageInfo_CustomNameNinRepNative.Size(m)
@@ -2191,7 +2210,7 @@ type CustomNameNinStruct struct {
func (m *CustomNameNinStruct) Reset() { *m = CustomNameNinStruct{} }
func (*CustomNameNinStruct) ProtoMessage() {}
func (*CustomNameNinStruct) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{49}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{49}
}
func (m *CustomNameNinStruct) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomNameNinStruct.Unmarshal(m, b)
@@ -2199,8 +2218,8 @@ func (m *CustomNameNinStruct) XXX_Unmarshal(b []byte) error {
func (m *CustomNameNinStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomNameNinStruct.Marshal(b, m, deterministic)
}
-func (dst *CustomNameNinStruct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNinStruct.Merge(dst, src)
+func (m *CustomNameNinStruct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNinStruct.Merge(m, src)
}
func (m *CustomNameNinStruct) XXX_Size() int {
return xxx_messageInfo_CustomNameNinStruct.Size(m)
@@ -2224,7 +2243,7 @@ type CustomNameCustomType struct {
func (m *CustomNameCustomType) Reset() { *m = CustomNameCustomType{} }
func (*CustomNameCustomType) ProtoMessage() {}
func (*CustomNameCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{50}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{50}
}
func (m *CustomNameCustomType) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomNameCustomType.Unmarshal(m, b)
@@ -2232,8 +2251,8 @@ func (m *CustomNameCustomType) XXX_Unmarshal(b []byte) error {
func (m *CustomNameCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomNameCustomType.Marshal(b, m, deterministic)
}
-func (dst *CustomNameCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameCustomType.Merge(dst, src)
+func (m *CustomNameCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameCustomType.Merge(m, src)
}
func (m *CustomNameCustomType) XXX_Size() int {
return xxx_messageInfo_CustomNameCustomType.Size(m)
@@ -2256,7 +2275,7 @@ type CustomNameNinEmbeddedStructUnion struct {
func (m *CustomNameNinEmbeddedStructUnion) Reset() { *m = CustomNameNinEmbeddedStructUnion{} }
func (*CustomNameNinEmbeddedStructUnion) ProtoMessage() {}
func (*CustomNameNinEmbeddedStructUnion) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{51}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{51}
}
func (m *CustomNameNinEmbeddedStructUnion) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomNameNinEmbeddedStructUnion.Unmarshal(m, b)
@@ -2264,8 +2283,8 @@ func (m *CustomNameNinEmbeddedStructUnion) XXX_Unmarshal(b []byte) error {
func (m *CustomNameNinEmbeddedStructUnion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomNameNinEmbeddedStructUnion.Marshal(b, m, deterministic)
}
-func (dst *CustomNameNinEmbeddedStructUnion) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameNinEmbeddedStructUnion.Merge(dst, src)
+func (m *CustomNameNinEmbeddedStructUnion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameNinEmbeddedStructUnion.Merge(m, src)
}
func (m *CustomNameNinEmbeddedStructUnion) XXX_Size() int {
return xxx_messageInfo_CustomNameNinEmbeddedStructUnion.Size(m)
@@ -2287,7 +2306,7 @@ type CustomNameEnum struct {
func (m *CustomNameEnum) Reset() { *m = CustomNameEnum{} }
func (*CustomNameEnum) ProtoMessage() {}
func (*CustomNameEnum) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{52}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{52}
}
func (m *CustomNameEnum) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CustomNameEnum.Unmarshal(m, b)
@@ -2295,8 +2314,8 @@ func (m *CustomNameEnum) XXX_Unmarshal(b []byte) error {
func (m *CustomNameEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CustomNameEnum.Marshal(b, m, deterministic)
}
-func (dst *CustomNameEnum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CustomNameEnum.Merge(dst, src)
+func (m *CustomNameEnum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CustomNameEnum.Merge(m, src)
}
func (m *CustomNameEnum) XXX_Size() int {
return xxx_messageInfo_CustomNameEnum.Size(m)
@@ -2318,7 +2337,7 @@ type NoExtensionsMap struct {
func (m *NoExtensionsMap) Reset() { *m = NoExtensionsMap{} }
func (*NoExtensionsMap) ProtoMessage() {}
func (*NoExtensionsMap) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{53}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{53}
}
var extRange_NoExtensionsMap = []proto.ExtensionRange{
@@ -2328,6 +2347,7 @@ var extRange_NoExtensionsMap = []proto.ExtensionRange{
func (*NoExtensionsMap) ExtensionRangeArray() []proto.ExtensionRange {
return extRange_NoExtensionsMap
}
+
func (m *NoExtensionsMap) GetExtensions() *[]byte {
if m.XXX_extensions == nil {
m.XXX_extensions = make([]byte, 0)
@@ -2340,8 +2360,8 @@ func (m *NoExtensionsMap) XXX_Unmarshal(b []byte) error {
func (m *NoExtensionsMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NoExtensionsMap.Marshal(b, m, deterministic)
}
-func (dst *NoExtensionsMap) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NoExtensionsMap.Merge(dst, src)
+func (m *NoExtensionsMap) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NoExtensionsMap.Merge(m, src)
}
func (m *NoExtensionsMap) XXX_Size() int {
return xxx_messageInfo_NoExtensionsMap.Size(m)
@@ -2361,7 +2381,7 @@ type Unrecognized struct {
func (m *Unrecognized) Reset() { *m = Unrecognized{} }
func (*Unrecognized) ProtoMessage() {}
func (*Unrecognized) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{54}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{54}
}
func (m *Unrecognized) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Unrecognized.Unmarshal(m, b)
@@ -2369,8 +2389,8 @@ func (m *Unrecognized) XXX_Unmarshal(b []byte) error {
func (m *Unrecognized) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Unrecognized.Marshal(b, m, deterministic)
}
-func (dst *Unrecognized) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Unrecognized.Merge(dst, src)
+func (m *Unrecognized) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Unrecognized.Merge(m, src)
}
func (m *Unrecognized) XXX_Size() int {
return xxx_messageInfo_Unrecognized.Size(m)
@@ -2392,7 +2412,7 @@ type UnrecognizedWithInner struct {
func (m *UnrecognizedWithInner) Reset() { *m = UnrecognizedWithInner{} }
func (*UnrecognizedWithInner) ProtoMessage() {}
func (*UnrecognizedWithInner) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{55}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{55}
}
func (m *UnrecognizedWithInner) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UnrecognizedWithInner.Unmarshal(m, b)
@@ -2400,8 +2420,8 @@ func (m *UnrecognizedWithInner) XXX_Unmarshal(b []byte) error {
func (m *UnrecognizedWithInner) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_UnrecognizedWithInner.Marshal(b, m, deterministic)
}
-func (dst *UnrecognizedWithInner) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnrecognizedWithInner.Merge(dst, src)
+func (m *UnrecognizedWithInner) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnrecognizedWithInner.Merge(m, src)
}
func (m *UnrecognizedWithInner) XXX_Size() int {
return xxx_messageInfo_UnrecognizedWithInner.Size(m)
@@ -2421,7 +2441,7 @@ type UnrecognizedWithInner_Inner struct {
func (m *UnrecognizedWithInner_Inner) Reset() { *m = UnrecognizedWithInner_Inner{} }
func (*UnrecognizedWithInner_Inner) ProtoMessage() {}
func (*UnrecognizedWithInner_Inner) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{55, 0}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{55, 0}
}
func (m *UnrecognizedWithInner_Inner) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UnrecognizedWithInner_Inner.Unmarshal(m, b)
@@ -2429,8 +2449,8 @@ func (m *UnrecognizedWithInner_Inner) XXX_Unmarshal(b []byte) error {
func (m *UnrecognizedWithInner_Inner) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_UnrecognizedWithInner_Inner.Marshal(b, m, deterministic)
}
-func (dst *UnrecognizedWithInner_Inner) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnrecognizedWithInner_Inner.Merge(dst, src)
+func (m *UnrecognizedWithInner_Inner) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnrecognizedWithInner_Inner.Merge(m, src)
}
func (m *UnrecognizedWithInner_Inner) XXX_Size() int {
return xxx_messageInfo_UnrecognizedWithInner_Inner.Size(m)
@@ -2452,7 +2472,7 @@ type UnrecognizedWithEmbed struct {
func (m *UnrecognizedWithEmbed) Reset() { *m = UnrecognizedWithEmbed{} }
func (*UnrecognizedWithEmbed) ProtoMessage() {}
func (*UnrecognizedWithEmbed) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{56}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{56}
}
func (m *UnrecognizedWithEmbed) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UnrecognizedWithEmbed.Unmarshal(m, b)
@@ -2460,8 +2480,8 @@ func (m *UnrecognizedWithEmbed) XXX_Unmarshal(b []byte) error {
func (m *UnrecognizedWithEmbed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_UnrecognizedWithEmbed.Marshal(b, m, deterministic)
}
-func (dst *UnrecognizedWithEmbed) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnrecognizedWithEmbed.Merge(dst, src)
+func (m *UnrecognizedWithEmbed) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnrecognizedWithEmbed.Merge(m, src)
}
func (m *UnrecognizedWithEmbed) XXX_Size() int {
return xxx_messageInfo_UnrecognizedWithEmbed.Size(m)
@@ -2481,7 +2501,7 @@ type UnrecognizedWithEmbed_Embedded struct {
func (m *UnrecognizedWithEmbed_Embedded) Reset() { *m = UnrecognizedWithEmbed_Embedded{} }
func (*UnrecognizedWithEmbed_Embedded) ProtoMessage() {}
func (*UnrecognizedWithEmbed_Embedded) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{56, 0}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{56, 0}
}
func (m *UnrecognizedWithEmbed_Embedded) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UnrecognizedWithEmbed_Embedded.Unmarshal(m, b)
@@ -2489,8 +2509,8 @@ func (m *UnrecognizedWithEmbed_Embedded) XXX_Unmarshal(b []byte) error {
func (m *UnrecognizedWithEmbed_Embedded) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_UnrecognizedWithEmbed_Embedded.Marshal(b, m, deterministic)
}
-func (dst *UnrecognizedWithEmbed_Embedded) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnrecognizedWithEmbed_Embedded.Merge(dst, src)
+func (m *UnrecognizedWithEmbed_Embedded) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnrecognizedWithEmbed_Embedded.Merge(m, src)
}
func (m *UnrecognizedWithEmbed_Embedded) XXX_Size() int {
return xxx_messageInfo_UnrecognizedWithEmbed_Embedded.Size(m)
@@ -2512,7 +2532,7 @@ type Node struct {
func (m *Node) Reset() { *m = Node{} }
func (*Node) ProtoMessage() {}
func (*Node) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{57}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{57}
}
func (m *Node) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Node.Unmarshal(m, b)
@@ -2520,8 +2540,8 @@ func (m *Node) XXX_Unmarshal(b []byte) error {
func (m *Node) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Node.Marshal(b, m, deterministic)
}
-func (dst *Node) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Node.Merge(dst, src)
+func (m *Node) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Node.Merge(m, src)
}
func (m *Node) XXX_Size() int {
return xxx_messageInfo_Node.Size(m)
@@ -2542,7 +2562,7 @@ type NonByteCustomType struct {
func (m *NonByteCustomType) Reset() { *m = NonByteCustomType{} }
func (*NonByteCustomType) ProtoMessage() {}
func (*NonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{58}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{58}
}
func (m *NonByteCustomType) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NonByteCustomType.Unmarshal(m, b)
@@ -2550,8 +2570,8 @@ func (m *NonByteCustomType) XXX_Unmarshal(b []byte) error {
func (m *NonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NonByteCustomType.Marshal(b, m, deterministic)
}
-func (dst *NonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NonByteCustomType.Merge(dst, src)
+func (m *NonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NonByteCustomType.Merge(m, src)
}
func (m *NonByteCustomType) XXX_Size() int {
return xxx_messageInfo_NonByteCustomType.Size(m)
@@ -2572,7 +2592,7 @@ type NidOptNonByteCustomType struct {
func (m *NidOptNonByteCustomType) Reset() { *m = NidOptNonByteCustomType{} }
func (*NidOptNonByteCustomType) ProtoMessage() {}
func (*NidOptNonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{59}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{59}
}
func (m *NidOptNonByteCustomType) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidOptNonByteCustomType.Unmarshal(m, b)
@@ -2580,8 +2600,8 @@ func (m *NidOptNonByteCustomType) XXX_Unmarshal(b []byte) error {
func (m *NidOptNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidOptNonByteCustomType.Marshal(b, m, deterministic)
}
-func (dst *NidOptNonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidOptNonByteCustomType.Merge(dst, src)
+func (m *NidOptNonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidOptNonByteCustomType.Merge(m, src)
}
func (m *NidOptNonByteCustomType) XXX_Size() int {
return xxx_messageInfo_NidOptNonByteCustomType.Size(m)
@@ -2602,7 +2622,7 @@ type NinOptNonByteCustomType struct {
func (m *NinOptNonByteCustomType) Reset() { *m = NinOptNonByteCustomType{} }
func (*NinOptNonByteCustomType) ProtoMessage() {}
func (*NinOptNonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{60}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{60}
}
func (m *NinOptNonByteCustomType) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinOptNonByteCustomType.Unmarshal(m, b)
@@ -2610,8 +2630,8 @@ func (m *NinOptNonByteCustomType) XXX_Unmarshal(b []byte) error {
func (m *NinOptNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinOptNonByteCustomType.Marshal(b, m, deterministic)
}
-func (dst *NinOptNonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinOptNonByteCustomType.Merge(dst, src)
+func (m *NinOptNonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinOptNonByteCustomType.Merge(m, src)
}
func (m *NinOptNonByteCustomType) XXX_Size() int {
return xxx_messageInfo_NinOptNonByteCustomType.Size(m)
@@ -2632,7 +2652,7 @@ type NidRepNonByteCustomType struct {
func (m *NidRepNonByteCustomType) Reset() { *m = NidRepNonByteCustomType{} }
func (*NidRepNonByteCustomType) ProtoMessage() {}
func (*NidRepNonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{61}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{61}
}
func (m *NidRepNonByteCustomType) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NidRepNonByteCustomType.Unmarshal(m, b)
@@ -2640,8 +2660,8 @@ func (m *NidRepNonByteCustomType) XXX_Unmarshal(b []byte) error {
func (m *NidRepNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NidRepNonByteCustomType.Marshal(b, m, deterministic)
}
-func (dst *NidRepNonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NidRepNonByteCustomType.Merge(dst, src)
+func (m *NidRepNonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NidRepNonByteCustomType.Merge(m, src)
}
func (m *NidRepNonByteCustomType) XXX_Size() int {
return xxx_messageInfo_NidRepNonByteCustomType.Size(m)
@@ -2662,7 +2682,7 @@ type NinRepNonByteCustomType struct {
func (m *NinRepNonByteCustomType) Reset() { *m = NinRepNonByteCustomType{} }
func (*NinRepNonByteCustomType) ProtoMessage() {}
func (*NinRepNonByteCustomType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{62}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{62}
}
func (m *NinRepNonByteCustomType) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NinRepNonByteCustomType.Unmarshal(m, b)
@@ -2670,8 +2690,8 @@ func (m *NinRepNonByteCustomType) XXX_Unmarshal(b []byte) error {
func (m *NinRepNonByteCustomType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NinRepNonByteCustomType.Marshal(b, m, deterministic)
}
-func (dst *NinRepNonByteCustomType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NinRepNonByteCustomType.Merge(dst, src)
+func (m *NinRepNonByteCustomType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NinRepNonByteCustomType.Merge(m, src)
}
func (m *NinRepNonByteCustomType) XXX_Size() int {
return xxx_messageInfo_NinRepNonByteCustomType.Size(m)
@@ -2692,7 +2712,7 @@ type ProtoType struct {
func (m *ProtoType) Reset() { *m = ProtoType{} }
func (*ProtoType) ProtoMessage() {}
func (*ProtoType) Descriptor() ([]byte, []int) {
- return fileDescriptor_thetest_14aea7c379120fb7, []int{63}
+ return fileDescriptor_9b8e0e81a01d0a18, []int{63}
}
func (m *ProtoType) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProtoType.Unmarshal(m, b)
@@ -2700,8 +2720,8 @@ func (m *ProtoType) XXX_Unmarshal(b []byte) error {
func (m *ProtoType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ProtoType.Marshal(b, m, deterministic)
}
-func (dst *ProtoType) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ProtoType.Merge(dst, src)
+func (m *ProtoType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ProtoType.Merge(m, src)
}
func (m *ProtoType) XXX_Size() int {
return xxx_messageInfo_ProtoType.Size(m)
@@ -2785,6 +2805,11 @@ var E_FieldC1 = &proto.ExtensionDesc{
}
func init() {
+ proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value)
+ proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value)
+ proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value)
+ proto.RegisterEnum("test.YetYetAnotherTestEnum", YetYetAnotherTestEnum_name, YetYetAnotherTestEnum_value)
+ proto.RegisterEnum("test.NestedDefinition_NestedEnum", NestedDefinition_NestedEnum_name, NestedDefinition_NestedEnum_value)
proto.RegisterType((*NidOptNative)(nil), "test.NidOptNative")
proto.RegisterType((*NinOptNative)(nil), "test.NinOptNative")
proto.RegisterType((*NidRepNative)(nil), "test.NidRepNative")
@@ -2853,11 +2878,6 @@ func init() {
proto.RegisterType((*NidRepNonByteCustomType)(nil), "test.NidRepNonByteCustomType")
proto.RegisterType((*NinRepNonByteCustomType)(nil), "test.NinRepNonByteCustomType")
proto.RegisterType((*ProtoType)(nil), "test.ProtoType")
- proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value)
- proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value)
- proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value)
- proto.RegisterEnum("test.YetYetAnotherTestEnum", YetYetAnotherTestEnum_name, YetYetAnotherTestEnum_value)
- proto.RegisterEnum("test.NestedDefinition_NestedEnum", NestedDefinition_NestedEnum_name, NestedDefinition_NestedEnum_value)
proto.RegisterExtension(E_FieldA)
proto.RegisterExtension(E_FieldB)
proto.RegisterExtension(E_FieldC)
@@ -2867,6 +2887,205 @@ func init() {
proto.RegisterExtension(E_FieldB1)
proto.RegisterExtension(E_FieldC1)
}
+
+func init() { proto.RegisterFile("thetest.proto", fileDescriptor_9b8e0e81a01d0a18) }
+
+var fileDescriptor_9b8e0e81a01d0a18 = []byte{
+ // 3070 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4d, 0x6c, 0x1b, 0xc7,
+ 0xf5, 0xe7, 0xec, 0x50, 0x0a, 0xf5, 0xf4, 0x45, 0x6f, 0x62, 0x65, 0xc1, 0xe8, 0xbf, 0xa2, 0x37,
+ 0xb2, 0xfe, 0x0c, 0x11, 0x4b, 0x14, 0x45, 0xc9, 0x32, 0xd3, 0xa4, 0xe0, 0x97, 0x1b, 0xb9, 0x11,
+ 0x65, 0x30, 0x72, 0x5b, 0x03, 0x05, 0x0a, 0x5a, 0x5c, 0x4b, 0x44, 0xe5, 0xa5, 0x40, 0xae, 0xd2,
+ 0xb8, 0x87, 0x22, 0xc8, 0xa1, 0x08, 0x7a, 0x2d, 0x7a, 0x6c, 0xe3, 0xa2, 0x28, 0x90, 0xde, 0x72,
+ 0x28, 0x8a, 0xa2, 0x28, 0x1a, 0x5f, 0x0a, 0xa8, 0x37, 0xa3, 0xa7, 0x22, 0x28, 0x84, 0x88, 0xb9,
+ 0xe4, 0x18, 0xf4, 0xd2, 0x1c, 0x72, 0x28, 0x76, 0x77, 0x76, 0x76, 0x66, 0xb8, 0xcb, 0x5d, 0x5a,
+ 0x4a, 0x9b, 0x8b, 0x2d, 0xce, 0x7b, 0x6f, 0xe6, 0xed, 0xfb, 0xfd, 0xde, 0xdb, 0xb7, 0x33, 0x03,
+ 0xd3, 0xe6, 0x81, 0x6e, 0xea, 0x3d, 0x73, 0xf9, 0xa8, 0xdb, 0x31, 0x3b, 0x72, 0xdc, 0xfa, 0x3b,
+ 0x75, 0x6d, 0xbf, 0x6d, 0x1e, 0x1c, 0xdf, 0x5b, 0xde, 0xeb, 0x3c, 0x58, 0xd9, 0xef, 0xec, 0x77,
+ 0x56, 0x6c, 0xe1, 0xbd, 0xe3, 0xfb, 0xf6, 0x2f, 0xfb, 0x87, 0xfd, 0x97, 0x63, 0xa4, 0xfd, 0x13,
+ 0xc3, 0x54, 0xbd, 0xdd, 0xda, 0x39, 0x32, 0xeb, 0x4d, 0xb3, 0xfd, 0x96, 0x2e, 0xcf, 0xc3, 0xf8,
+ 0xcd, 0xb6, 0x7e, 0xd8, 0x5a, 0x55, 0x50, 0x1a, 0x65, 0x50, 0x39, 0x7e, 0x72, 0xba, 0x10, 0x6b,
+ 0x90, 0x31, 0x2a, 0xcd, 0x2b, 0x52, 0x1a, 0x65, 0x24, 0x4e, 0x9a, 0xa7, 0xd2, 0x35, 0x05, 0xa7,
+ 0x51, 0x66, 0x8c, 0x93, 0xae, 0x51, 0x69, 0x41, 0x89, 0xa7, 0x51, 0x06, 0x73, 0xd2, 0x02, 0x95,
+ 0xae, 0x2b, 0x63, 0x69, 0x94, 0x99, 0xe6, 0xa4, 0xeb, 0x54, 0xba, 0xa1, 0x8c, 0xa7, 0x51, 0x26,
+ 0xce, 0x49, 0x37, 0xa8, 0xf4, 0xba, 0xf2, 0x4c, 0x1a, 0x65, 0x2e, 0x71, 0xd2, 0xeb, 0x54, 0xba,
+ 0xa9, 0x24, 0xd2, 0x28, 0x23, 0x73, 0xd2, 0x4d, 0x2a, 0xbd, 0xa1, 0x4c, 0xa4, 0x51, 0xe6, 0x19,
+ 0x4e, 0x7a, 0x43, 0x56, 0xe1, 0x19, 0xe7, 0xc9, 0x73, 0x0a, 0xa4, 0x51, 0x66, 0x96, 0x88, 0xdd,
+ 0x41, 0x4f, 0xbe, 0xaa, 0x4c, 0xa6, 0x51, 0x66, 0x9c, 0x97, 0xaf, 0x7a, 0xf2, 0xbc, 0x32, 0x95,
+ 0x46, 0x99, 0x24, 0x2f, 0xcf, 0x7b, 0xf2, 0x35, 0x65, 0x3a, 0x8d, 0x32, 0x09, 0x5e, 0xbe, 0xe6,
+ 0xc9, 0x0b, 0xca, 0x4c, 0x1a, 0x65, 0x26, 0x78, 0x79, 0xc1, 0x93, 0xaf, 0x2b, 0xb3, 0x69, 0x94,
+ 0x99, 0xe2, 0xe5, 0xeb, 0xda, 0xbb, 0x36, 0xbc, 0x86, 0x07, 0xef, 0x1c, 0x0f, 0x2f, 0x05, 0x76,
+ 0x8e, 0x07, 0x96, 0x42, 0x3a, 0xc7, 0x43, 0x4a, 0xc1, 0x9c, 0xe3, 0xc1, 0xa4, 0x30, 0xce, 0xf1,
+ 0x30, 0x52, 0x00, 0xe7, 0x78, 0x00, 0x29, 0x74, 0x73, 0x3c, 0x74, 0x14, 0xb4, 0x39, 0x1e, 0x34,
+ 0x0a, 0xd7, 0x1c, 0x0f, 0x17, 0x05, 0x4a, 0x11, 0x80, 0xf2, 0x20, 0x52, 0x04, 0x88, 0x3c, 0x70,
+ 0x14, 0x01, 0x1c, 0x0f, 0x16, 0x45, 0x80, 0xc5, 0x03, 0x44, 0x11, 0x00, 0xf1, 0xa0, 0x50, 0x04,
+ 0x28, 0x3c, 0x10, 0x48, 0x8e, 0x35, 0xf4, 0x23, 0x9f, 0x1c, 0xc3, 0x43, 0x73, 0x0c, 0x0f, 0xcd,
+ 0x31, 0x3c, 0x34, 0xc7, 0xf0, 0xd0, 0x1c, 0xc3, 0x43, 0x73, 0x0c, 0x0f, 0xcd, 0x31, 0x3c, 0x34,
+ 0xc7, 0xf0, 0xd0, 0x1c, 0xc3, 0xc3, 0x73, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31, 0x1c, 0x92,
+ 0x63, 0x38, 0x24, 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0xc0, 0x1c, 0xf3, 0xe0, 0x9d, 0xe3, 0xe1, 0xf5,
+ 0xcd, 0x31, 0x1c, 0x90, 0x63, 0x38, 0x20, 0xc7, 0x70, 0x40, 0x8e, 0xe1, 0x80, 0x1c, 0xc3, 0x01,
+ 0x39, 0x86, 0x03, 0x72, 0x0c, 0x07, 0xe4, 0x18, 0x0e, 0xca, 0x31, 0x1c, 0x98, 0x63, 0x38, 0x30,
+ 0xc7, 0x70, 0x60, 0x8e, 0xe1, 0xc0, 0x1c, 0xc3, 0x81, 0x39, 0x86, 0xd9, 0x1c, 0xfb, 0x33, 0x06,
+ 0xd9, 0xc9, 0xb1, 0xdb, 0xcd, 0xbd, 0x1f, 0xea, 0x2d, 0x02, 0x85, 0x2a, 0x64, 0xda, 0xb8, 0x05,
+ 0x5d, 0xd2, 0x83, 0x44, 0x15, 0x72, 0x8d, 0x97, 0xe7, 0xa9, 0xdc, 0xcd, 0x36, 0x5e, 0xbe, 0x46,
+ 0xe5, 0x6e, 0xbe, 0xf1, 0xf2, 0x02, 0x95, 0xbb, 0x19, 0xc7, 0xcb, 0xd7, 0xa9, 0xdc, 0xcd, 0x39,
+ 0x5e, 0xbe, 0x41, 0xe5, 0x6e, 0xd6, 0xf1, 0xf2, 0xeb, 0x54, 0xee, 0xe6, 0x1d, 0x2f, 0xdf, 0xa4,
+ 0x72, 0x37, 0xf3, 0x78, 0xf9, 0x0d, 0x39, 0x2d, 0xe6, 0x9e, 0xab, 0x40, 0xa1, 0x4d, 0x8b, 0xd9,
+ 0x27, 0x68, 0xac, 0x7a, 0x1a, 0x6e, 0xfe, 0x09, 0x1a, 0x79, 0x4f, 0xc3, 0xcd, 0x40, 0x41, 0x63,
+ 0x4d, 0x7b, 0xcf, 0x86, 0xcf, 0x10, 0xe1, 0x4b, 0x09, 0xf0, 0x49, 0x0c, 0x74, 0x29, 0x01, 0x3a,
+ 0x89, 0x81, 0x2d, 0x25, 0xc0, 0x26, 0x31, 0x90, 0xa5, 0x04, 0xc8, 0x24, 0x06, 0xae, 0x94, 0x00,
+ 0x97, 0xc4, 0x40, 0x95, 0x12, 0xa0, 0x92, 0x18, 0x98, 0x52, 0x02, 0x4c, 0x12, 0x03, 0x51, 0x4a,
+ 0x80, 0x48, 0x62, 0xe0, 0x49, 0x09, 0xf0, 0x48, 0x0c, 0x34, 0xf3, 0x22, 0x34, 0x12, 0x0b, 0xcb,
+ 0xbc, 0x08, 0x8b, 0xc4, 0x42, 0x32, 0x2f, 0x42, 0x22, 0xb1, 0x70, 0xcc, 0x8b, 0x70, 0x48, 0x2c,
+ 0x14, 0x5f, 0x4a, 0x6e, 0x47, 0xf8, 0xa6, 0xd9, 0x3d, 0xde, 0x33, 0xcf, 0xd5, 0x11, 0xe6, 0xb8,
+ 0xf6, 0x61, 0x32, 0x2f, 0x2f, 0xdb, 0x0d, 0x2b, 0xdb, 0x71, 0x0a, 0x6f, 0xb0, 0x1c, 0xd7, 0x58,
+ 0x30, 0x16, 0x86, 0xbf, 0x45, 0xe1, 0x5c, 0xbd, 0x61, 0x8e, 0x6b, 0x33, 0xc2, 0xfd, 0xdb, 0xfc,
+ 0xca, 0x3b, 0xb6, 0xc7, 0x92, 0xdb, 0xb1, 0x91, 0xf0, 0x8f, 0xda, 0xb1, 0x65, 0xc3, 0x43, 0x4e,
+ 0x83, 0x9d, 0x0d, 0x0f, 0xf6, 0xc0, 0x5b, 0x27, 0x6a, 0x07, 0x97, 0x0d, 0x0f, 0x2d, 0x0d, 0xea,
+ 0xc5, 0xf6, 0x5b, 0x84, 0xc1, 0x0d, 0xfd, 0xc8, 0x87, 0xc1, 0xa3, 0xf6, 0x5b, 0x39, 0xae, 0x94,
+ 0x8c, 0xca, 0x60, 0x3c, 0x32, 0x83, 0x47, 0xed, 0xbc, 0x72, 0x5c, 0x79, 0x19, 0x99, 0xc1, 0x5f,
+ 0x41, 0x3f, 0x44, 0x18, 0xec, 0x85, 0x7f, 0xd4, 0x7e, 0x28, 0x1b, 0x1e, 0x72, 0x5f, 0x06, 0xe3,
+ 0x11, 0x18, 0x1c, 0xa5, 0x3f, 0xca, 0x86, 0x87, 0xd6, 0x9f, 0xc1, 0xe7, 0xee, 0x66, 0xde, 0x47,
+ 0x70, 0xa9, 0xde, 0x6e, 0xd5, 0x1e, 0xdc, 0xd3, 0x5b, 0x2d, 0xbd, 0x45, 0xe2, 0x98, 0xe3, 0x2a,
+ 0x41, 0x00, 0xd4, 0x4f, 0x4e, 0x17, 0xbc, 0x08, 0xaf, 0x43, 0xc2, 0x89, 0x69, 0x2e, 0xa7, 0x9c,
+ 0xa0, 0x90, 0x0a, 0x47, 0x55, 0xe5, 0x2b, 0xae, 0xd9, 0x6a, 0x4e, 0xf9, 0x3b, 0x62, 0xaa, 0x1c,
+ 0x1d, 0xd6, 0x7e, 0x6e, 0x7b, 0x68, 0x9c, 0xdb, 0xc3, 0x95, 0x48, 0x1e, 0x32, 0xbe, 0xbd, 0x30,
+ 0xe0, 0x1b, 0xe3, 0xd5, 0x31, 0xcc, 0xd6, 0xdb, 0xad, 0xba, 0xde, 0x33, 0xa3, 0xb9, 0xe4, 0xe8,
+ 0x08, 0xf5, 0x20, 0xc7, 0xd1, 0x92, 0xb5, 0xa0, 0x94, 0xe6, 0x6b, 0x84, 0xd6, 0xb6, 0x96, 0x35,
+ 0xb8, 0x65, 0xb3, 0x41, 0xcb, 0x7a, 0x95, 0x9d, 0x2e, 0x98, 0x0d, 0x5a, 0xd0, 0xcb, 0x21, 0xba,
+ 0xd4, 0xdb, 0xee, 0xcb, 0xb9, 0x72, 0xdc, 0x33, 0x3b, 0x0f, 0xe4, 0x79, 0x90, 0xb6, 0x5a, 0xf6,
+ 0x1a, 0x53, 0xe5, 0x29, 0xcb, 0xa9, 0x8f, 0x4f, 0x17, 0xe2, 0x77, 0x8e, 0xdb, 0xad, 0x86, 0xb4,
+ 0xd5, 0x92, 0x6f, 0xc1, 0xd8, 0x77, 0x9a, 0x87, 0xc7, 0xba, 0xfd, 0x8a, 0x98, 0x2a, 0x17, 0x88,
+ 0xc2, 0xcb, 0x81, 0x7b, 0x44, 0xd6, 0xc2, 0x2b, 0x7b, 0xf6, 0xd4, 0xcb, 0x77, 0xda, 0x86, 0xb9,
+ 0x9a, 0xdf, 0x6c, 0x38, 0x53, 0x68, 0xdf, 0x07, 0x70, 0xd6, 0xac, 0x36, 0x7b, 0x07, 0x72, 0xdd,
+ 0x9d, 0xd9, 0x59, 0x7a, 0xf3, 0xe3, 0xd3, 0x85, 0x42, 0x94, 0x59, 0xaf, 0xb5, 0x9a, 0xbd, 0x83,
+ 0x6b, 0xe6, 0xc3, 0x23, 0x7d, 0xb9, 0xfc, 0xd0, 0xd4, 0x7b, 0xee, 0xec, 0x47, 0xee, 0x5b, 0x8f,
+ 0x3c, 0x97, 0xc2, 0x3c, 0x57, 0x82, 0x7b, 0xa6, 0x9b, 0xfc, 0x33, 0xe5, 0x9e, 0xf6, 0x79, 0xde,
+ 0x76, 0x5f, 0x12, 0x42, 0x24, 0x71, 0x58, 0x24, 0xf1, 0x79, 0x23, 0x79, 0xe4, 0xd6, 0x47, 0xe1,
+ 0x59, 0xf1, 0xb0, 0x67, 0xc5, 0xe7, 0x79, 0xd6, 0x7f, 0x3b, 0xd9, 0x4a, 0xf3, 0xe9, 0x8e, 0xd1,
+ 0xee, 0x18, 0x5f, 0xbb, 0xbd, 0xa0, 0x0b, 0xed, 0x02, 0x8a, 0xf1, 0x93, 0x47, 0x0b, 0x48, 0x7b,
+ 0x5f, 0x72, 0x9f, 0xdc, 0x49, 0xa4, 0xa7, 0x7b, 0xf2, 0xaf, 0x4b, 0x4f, 0xf5, 0x55, 0x44, 0xe8,
+ 0x57, 0x08, 0xe6, 0x06, 0x2a, 0xb9, 0x13, 0xa6, 0x8b, 0x2d, 0xe7, 0xc6, 0xa8, 0xe5, 0x9c, 0x38,
+ 0xf8, 0x7b, 0x04, 0xcf, 0x09, 0xe5, 0xd5, 0x71, 0x6f, 0x45, 0x70, 0xef, 0xf9, 0xc1, 0x95, 0x6c,
+ 0x45, 0xc6, 0x3b, 0x16, 0x5e, 0xc1, 0x80, 0x99, 0x99, 0xe2, 0x5e, 0x10, 0x70, 0x9f, 0xa7, 0x06,
+ 0x3e, 0xe1, 0x72, 0x19, 0x40, 0xdc, 0xee, 0x40, 0x7c, 0xb7, 0xab, 0xeb, 0xb2, 0x0a, 0xd2, 0x4e,
+ 0x97, 0x78, 0x38, 0xe3, 0xd8, 0xef, 0x74, 0xcb, 0xdd, 0xa6, 0xb1, 0x77, 0xd0, 0x90, 0x76, 0xba,
+ 0xf2, 0x15, 0xc0, 0x25, 0xa3, 0x45, 0x3c, 0x9a, 0x75, 0x14, 0x4a, 0x46, 0x8b, 0x68, 0x58, 0x32,
+ 0x59, 0x85, 0xf8, 0x1b, 0x7a, 0xf3, 0x3e, 0x71, 0x02, 0x1c, 0x1d, 0x6b, 0xa4, 0x61, 0x8f, 0x93,
+ 0x05, 0xbf, 0x07, 0x09, 0x77, 0x62, 0x79, 0xd1, 0xb2, 0xb8, 0x6f, 0x92, 0x65, 0x89, 0x85, 0xe5,
+ 0x0e, 0x79, 0x73, 0xd9, 0x52, 0x79, 0x09, 0xc6, 0x1a, 0xed, 0xfd, 0x03, 0x93, 0x2c, 0x3e, 0xa8,
+ 0xe6, 0x88, 0xb5, 0xbb, 0x30, 0x41, 0x3d, 0xba, 0xe0, 0xa9, 0xab, 0xce, 0xa3, 0xc9, 0x29, 0xf6,
+ 0x7d, 0xe2, 0xee, 0x5b, 0x3a, 0x43, 0x72, 0x1a, 0x12, 0x6f, 0x9a, 0x5d, 0xaf, 0xe8, 0xbb, 0x1d,
+ 0x29, 0x1d, 0xd5, 0xde, 0x45, 0x90, 0xa8, 0xea, 0xfa, 0x91, 0x1d, 0xf0, 0xab, 0x10, 0xaf, 0x76,
+ 0x7e, 0x64, 0x10, 0x07, 0x2f, 0x91, 0x88, 0x5a, 0x62, 0x12, 0x53, 0x5b, 0x2c, 0x5f, 0x65, 0xe3,
+ 0xfe, 0x2c, 0x8d, 0x3b, 0xa3, 0x67, 0xc7, 0x5e, 0xe3, 0x62, 0x4f, 0x00, 0xb4, 0x94, 0x06, 0xe2,
+ 0x7f, 0x1d, 0x26, 0x99, 0x55, 0xe4, 0x0c, 0x71, 0x43, 0x12, 0x0d, 0xd9, 0x58, 0x59, 0x1a, 0x9a,
+ 0x0e, 0xd3, 0xdc, 0xc2, 0x96, 0x29, 0x13, 0xe2, 0x00, 0x53, 0x3b, 0xcc, 0x59, 0x3e, 0xcc, 0xfe,
+ 0xaa, 0x24, 0xd4, 0x39, 0x27, 0x46, 0x76, 0xb8, 0x17, 0x1d, 0x72, 0x06, 0x83, 0x68, 0xfd, 0xad,
+ 0x8d, 0x01, 0xae, 0xb7, 0x0f, 0xb5, 0x57, 0x01, 0x9c, 0x94, 0xaf, 0x19, 0xc7, 0x0f, 0x84, 0xac,
+ 0x9b, 0x71, 0x03, 0xbc, 0x7b, 0xa0, 0xef, 0xea, 0x3d, 0x5b, 0x85, 0xef, 0xa7, 0xac, 0x02, 0x03,
+ 0x4e, 0x8a, 0xd9, 0xf6, 0x2f, 0x85, 0xda, 0xfb, 0x76, 0x62, 0x96, 0xaa, 0xe2, 0xa8, 0xde, 0xd5,
+ 0xcd, 0x92, 0xd1, 0x31, 0x0f, 0xf4, 0xae, 0x60, 0x91, 0x97, 0xd7, 0xb8, 0x84, 0x9d, 0xc9, 0xbf,
+ 0x40, 0x2d, 0x02, 0x8d, 0xd6, 0xb4, 0x0f, 0x6d, 0x07, 0xad, 0x56, 0x60, 0xe0, 0x01, 0x71, 0x84,
+ 0x07, 0x94, 0x37, 0xb8, 0xfe, 0x6d, 0x88, 0x9b, 0xc2, 0xa7, 0xe5, 0x0d, 0xee, 0x3b, 0x67, 0xb8,
+ 0xb3, 0xfc, 0x37, 0xa6, 0x1b, 0x53, 0xd7, 0xe5, 0x97, 0x42, 0x5d, 0x0e, 0xe8, 0x6e, 0x47, 0x8d,
+ 0x29, 0x8e, 0x1a, 0xd3, 0x3f, 0xd1, 0x8e, 0xc3, 0x1a, 0xae, 0xea, 0xf7, 0x9b, 0xc7, 0x87, 0xa6,
+ 0xfc, 0x72, 0x28, 0xf6, 0x45, 0x54, 0xa1, 0xae, 0x16, 0xa2, 0xc2, 0x5f, 0x94, 0xca, 0x65, 0xea,
+ 0xee, 0xf5, 0x11, 0x28, 0x50, 0x94, 0x2a, 0x15, 0x5a, 0xb6, 0x13, 0xef, 0x3d, 0x5a, 0x40, 0x1f,
+ 0x3c, 0x5a, 0x88, 0x69, 0xbf, 0x43, 0x70, 0x89, 0x68, 0x32, 0xc4, 0xbd, 0x26, 0x38, 0x7f, 0xd9,
+ 0xad, 0x19, 0x7e, 0x11, 0xf8, 0xaf, 0x91, 0xf7, 0xaf, 0x08, 0x94, 0x01, 0x5f, 0xdd, 0x78, 0xe7,
+ 0x22, 0xb9, 0x5c, 0x44, 0xb5, 0xff, 0x7d, 0xcc, 0xef, 0xc2, 0xd8, 0x6e, 0xfb, 0x81, 0xde, 0xb5,
+ 0xde, 0x04, 0xd6, 0x1f, 0x8e, 0xcb, 0xee, 0x61, 0x8e, 0x33, 0xe4, 0xca, 0x1c, 0xe7, 0x38, 0x59,
+ 0x5e, 0x56, 0x20, 0x5e, 0x6d, 0x9a, 0x4d, 0xdb, 0x83, 0x29, 0x5a, 0x5f, 0x9b, 0x66, 0x53, 0x5b,
+ 0x83, 0xa9, 0xed, 0x87, 0xb5, 0xb7, 0x4d, 0xdd, 0x68, 0x35, 0xef, 0x1d, 0x8a, 0x67, 0xa0, 0x6e,
+ 0xbf, 0xba, 0x9a, 0x1d, 0x4b, 0xb4, 0x92, 0x27, 0xa8, 0x18, 0xb7, 0xfd, 0x79, 0x0b, 0x66, 0x76,
+ 0x2c, 0xb7, 0x6d, 0x3b, 0xce, 0xcc, 0x59, 0x1d, 0xd3, 0x87, 0x17, 0x9a, 0x32, 0xec, 0x35, 0x65,
+ 0x69, 0x40, 0xdb, 0x7c, 0xeb, 0xc4, 0xfa, 0xd1, 0x40, 0xdb, 0xd9, 0x78, 0x62, 0x26, 0x79, 0x29,
+ 0x1b, 0x4f, 0x40, 0x72, 0x9a, 0xac, 0xfb, 0x37, 0x0c, 0x49, 0xa7, 0xd5, 0xa9, 0xea, 0xf7, 0xdb,
+ 0x46, 0xdb, 0x1c, 0xec, 0x57, 0xa9, 0xc7, 0xf2, 0x37, 0x61, 0xc2, 0x0a, 0xa9, 0xfd, 0x8b, 0x00,
+ 0x76, 0x85, 0xb4, 0x28, 0xc2, 0x14, 0x64, 0xc0, 0xa6, 0x8e, 0x67, 0x23, 0xdf, 0x04, 0x5c, 0xaf,
+ 0x6f, 0x93, 0x97, 0x5b, 0x61, 0xa8, 0xe9, 0xb6, 0xde, 0xeb, 0x35, 0xf7, 0x75, 0xf2, 0x8b, 0x8c,
+ 0xf5, 0xf6, 0x1b, 0xd6, 0x04, 0x72, 0x01, 0xa4, 0xfa, 0x36, 0x69, 0x78, 0x17, 0xa3, 0x4c, 0xd3,
+ 0x90, 0xea, 0xdb, 0xa9, 0xbf, 0x20, 0x98, 0xe6, 0x46, 0x65, 0x0d, 0xa6, 0x9c, 0x01, 0xe6, 0x71,
+ 0xc7, 0x1b, 0xdc, 0x98, 0xeb, 0xb3, 0x74, 0x4e, 0x9f, 0x53, 0x25, 0x98, 0x15, 0xc6, 0xe5, 0x65,
+ 0x90, 0xd9, 0x21, 0xe2, 0x04, 0xd8, 0x0d, 0xb5, 0x8f, 0x44, 0xfb, 0x3f, 0x00, 0x2f, 0xae, 0xf2,
+ 0x2c, 0x4c, 0xee, 0xde, 0xbd, 0x5d, 0xfb, 0x41, 0xbd, 0xf6, 0xe6, 0x6e, 0xad, 0x9a, 0x44, 0xda,
+ 0x1f, 0x10, 0x4c, 0x92, 0xb6, 0x75, 0xaf, 0x73, 0xa4, 0xcb, 0x65, 0x40, 0x25, 0xc2, 0x87, 0xa7,
+ 0xf3, 0x1b, 0x95, 0xe4, 0x15, 0x40, 0xe5, 0xe8, 0x50, 0xa3, 0xb2, 0x9c, 0x07, 0x54, 0x21, 0x00,
+ 0x47, 0x43, 0x06, 0x55, 0xb4, 0x7f, 0x61, 0x78, 0x96, 0x6d, 0xa3, 0xdd, 0x7a, 0x72, 0x85, 0xff,
+ 0x6e, 0x2a, 0x4e, 0xac, 0xe6, 0xd7, 0x0a, 0xcb, 0xd6, 0x3f, 0x94, 0x92, 0x1a, 0xff, 0x09, 0x55,
+ 0x04, 0xaa, 0xb2, 0x1a, 0x74, 0x4f, 0xa4, 0x18, 0x67, 0x66, 0x18, 0xb8, 0x27, 0xc2, 0x49, 0x07,
+ 0xee, 0x89, 0x70, 0xd2, 0x81, 0x7b, 0x22, 0x9c, 0x74, 0xe0, 0x2c, 0x80, 0x93, 0x0e, 0xdc, 0x13,
+ 0xe1, 0xa4, 0x03, 0xf7, 0x44, 0x38, 0xe9, 0xe0, 0x3d, 0x11, 0x22, 0x0e, 0xbc, 0x27, 0xc2, 0xcb,
+ 0x07, 0xef, 0x89, 0xf0, 0xf2, 0xc1, 0x7b, 0x22, 0xc5, 0xb8, 0xd9, 0x3d, 0xd6, 0x83, 0x4f, 0x1d,
+ 0x78, 0xfb, 0x61, 0x1f, 0x81, 0x5e, 0x05, 0xde, 0x81, 0x59, 0x67, 0x43, 0xa2, 0xd2, 0x31, 0xcc,
+ 0x66, 0xdb, 0xd0, 0xbb, 0xf2, 0x37, 0x60, 0xca, 0x19, 0x72, 0x3e, 0x73, 0xfc, 0x3e, 0x03, 0x1d,
+ 0x39, 0xa9, 0xb7, 0x9c, 0xb6, 0xf6, 0x65, 0x1c, 0xe6, 0x9c, 0x81, 0x7a, 0xf3, 0x81, 0xce, 0xdd,
+ 0x32, 0x5a, 0x12, 0xce, 0x94, 0x66, 0x2c, 0xf3, 0xfe, 0xe9, 0x82, 0x33, 0x5a, 0xa2, 0x6c, 0x5a,
+ 0x12, 0x4e, 0x97, 0x78, 0x3d, 0xef, 0x05, 0xb4, 0x24, 0xdc, 0x3c, 0xe2, 0xf5, 0xe8, 0xfb, 0x86,
+ 0xea, 0xb9, 0x77, 0x90, 0x78, 0xbd, 0x2a, 0x65, 0xd9, 0x92, 0x70, 0x1b, 0x89, 0xd7, 0xab, 0x51,
+ 0xbe, 0x2d, 0x09, 0x67, 0x4f, 0xbc, 0xde, 0x4d, 0xca, 0xbc, 0x25, 0xe1, 0x14, 0x8a, 0xd7, 0xfb,
+ 0x16, 0xe5, 0xe0, 0x92, 0x70, 0x57, 0x89, 0xd7, 0x7b, 0x9d, 0xb2, 0x71, 0x49, 0xb8, 0xb5, 0xc4,
+ 0xeb, 0x6d, 0x51, 0x5e, 0x66, 0xc4, 0xfb, 0x4b, 0xbc, 0xe2, 0x2d, 0x8f, 0xa1, 0x19, 0xf1, 0x26,
+ 0x13, 0xaf, 0xf9, 0x6d, 0x8f, 0xab, 0x19, 0xf1, 0x4e, 0x13, 0xaf, 0xf9, 0x86, 0xc7, 0xda, 0x8c,
+ 0x78, 0x56, 0xc6, 0x6b, 0x6e, 0x7b, 0xfc, 0xcd, 0x88, 0xa7, 0x66, 0xbc, 0x66, 0xdd, 0x63, 0x72,
+ 0x46, 0x3c, 0x3f, 0xe3, 0x35, 0x77, 0xbc, 0x4d, 0xf4, 0x8f, 0x04, 0xfa, 0x31, 0xb7, 0xa0, 0x34,
+ 0x81, 0x7e, 0xe0, 0x43, 0x3d, 0xa1, 0x90, 0x31, 0x3a, 0x1e, 0xed, 0x34, 0x81, 0x76, 0xe0, 0x43,
+ 0x39, 0x4d, 0xa0, 0x1c, 0xf8, 0xd0, 0x4d, 0x13, 0xe8, 0x06, 0x3e, 0x54, 0xd3, 0x04, 0xaa, 0x81,
+ 0x0f, 0xcd, 0x34, 0x81, 0x66, 0xe0, 0x43, 0x31, 0x4d, 0xa0, 0x18, 0xf8, 0xd0, 0x4b, 0x13, 0xe8,
+ 0x05, 0x3e, 0xd4, 0x5a, 0x14, 0xa9, 0x05, 0x7e, 0xb4, 0x5a, 0x14, 0x69, 0x05, 0x7e, 0x94, 0x7a,
+ 0x51, 0xa4, 0xd4, 0x44, 0xff, 0x74, 0x61, 0xcc, 0x1a, 0x62, 0xd8, 0xb4, 0x28, 0xb2, 0x09, 0xfc,
+ 0x98, 0xb4, 0x28, 0x32, 0x09, 0xfc, 0x58, 0xb4, 0x28, 0xb2, 0x08, 0xfc, 0x18, 0xf4, 0x58, 0x64,
+ 0x90, 0x77, 0xc7, 0x47, 0x13, 0x8e, 0x14, 0xc3, 0x18, 0x84, 0x23, 0x30, 0x08, 0x47, 0x60, 0x10,
+ 0x8e, 0xc0, 0x20, 0x1c, 0x81, 0x41, 0x38, 0x02, 0x83, 0x70, 0x04, 0x06, 0xe1, 0x08, 0x0c, 0xc2,
+ 0x51, 0x18, 0x84, 0x23, 0x31, 0x08, 0x07, 0x31, 0x68, 0x51, 0xbc, 0xf1, 0x00, 0x7e, 0x05, 0x69,
+ 0x51, 0x3c, 0xfa, 0x0c, 0xa7, 0x10, 0x8e, 0x44, 0x21, 0x1c, 0x44, 0xa1, 0x8f, 0x30, 0x3c, 0xcb,
+ 0x51, 0x88, 0x9c, 0x0f, 0x5d, 0x54, 0x05, 0xda, 0x88, 0x70, 0xc1, 0xc2, 0x8f, 0x53, 0x1b, 0x11,
+ 0x0e, 0xa9, 0x87, 0xf1, 0x6c, 0xb0, 0x0a, 0xd5, 0x22, 0x54, 0xa1, 0x9b, 0x94, 0x43, 0x1b, 0x11,
+ 0x2e, 0x5e, 0x0c, 0x72, 0x6f, 0x73, 0x58, 0x11, 0x78, 0x3d, 0x52, 0x11, 0xd8, 0x8a, 0x54, 0x04,
+ 0x6e, 0x79, 0x08, 0xfe, 0x54, 0x82, 0xe7, 0x3c, 0x04, 0x9d, 0xbf, 0x76, 0x1f, 0x1e, 0x59, 0x25,
+ 0xc0, 0x3b, 0xa2, 0x92, 0xdd, 0x63, 0x1b, 0x06, 0x46, 0x69, 0xab, 0x25, 0xdf, 0xe6, 0x0f, 0xab,
+ 0x8a, 0xa3, 0x1e, 0xe0, 0x30, 0x88, 0x93, 0xcd, 0xd0, 0x45, 0xc0, 0x5b, 0xad, 0x9e, 0x5d, 0x2d,
+ 0xfc, 0x96, 0xad, 0x34, 0x2c, 0xb1, 0xdc, 0x80, 0x71, 0x5b, 0xbd, 0x67, 0xc3, 0x7b, 0x9e, 0x85,
+ 0xab, 0x0d, 0x32, 0x93, 0xf6, 0x18, 0x41, 0x9a, 0xa3, 0xf2, 0xc5, 0x1c, 0x19, 0xbc, 0x12, 0xe9,
+ 0xc8, 0x80, 0x4b, 0x10, 0xef, 0xf8, 0xe0, 0xff, 0x07, 0x4f, 0xaa, 0xd9, 0x2c, 0x11, 0x8f, 0x12,
+ 0x7e, 0x02, 0x33, 0xde, 0x13, 0xd8, 0xdf, 0x6c, 0xeb, 0xe1, 0xbb, 0x99, 0x7e, 0xa9, 0xb9, 0x2e,
+ 0xec, 0xa2, 0x0d, 0x35, 0xa3, 0xd9, 0xaa, 0x15, 0x61, 0xb6, 0xde, 0xb1, 0x77, 0x00, 0x7a, 0xed,
+ 0x8e, 0xd1, 0xdb, 0x6e, 0x1e, 0x85, 0x6d, 0x46, 0x24, 0xac, 0xd6, 0xfc, 0xe4, 0xd7, 0x0b, 0x31,
+ 0xed, 0x65, 0x98, 0xba, 0x63, 0x74, 0xf5, 0xbd, 0xce, 0xbe, 0xd1, 0xfe, 0xb1, 0xde, 0x12, 0x0c,
+ 0x27, 0x5c, 0xc3, 0x62, 0xfc, 0x89, 0xa5, 0xfd, 0x0b, 0x04, 0x97, 0x59, 0xf5, 0xef, 0xb6, 0xcd,
+ 0x83, 0x2d, 0xc3, 0xea, 0xe9, 0x5f, 0x85, 0x84, 0x4e, 0x80, 0xb3, 0xdf, 0x5d, 0x93, 0xee, 0x77,
+ 0xa4, 0xaf, 0xfa, 0xb2, 0xfd, 0x6f, 0x83, 0x9a, 0x08, 0xbb, 0x20, 0xee, 0xb2, 0xf9, 0xd4, 0x55,
+ 0x18, 0x73, 0xe6, 0xe7, 0xfd, 0x9a, 0x16, 0xfc, 0xfa, 0xad, 0x8f, 0x5f, 0x36, 0x8f, 0xe4, 0x5b,
+ 0x9c, 0x5f, 0xcc, 0xe7, 0xaa, 0xaf, 0xfa, 0xb2, 0x4b, 0xbe, 0x72, 0xc2, 0xea, 0xff, 0x6c, 0x46,
+ 0x85, 0x3b, 0x99, 0x81, 0x44, 0x4d, 0xd4, 0xf1, 0xf7, 0xb3, 0x0a, 0xf1, 0x7a, 0xa7, 0xa5, 0xcb,
+ 0xcf, 0xc1, 0xd8, 0x1b, 0xcd, 0x7b, 0xfa, 0x21, 0x09, 0xb2, 0xf3, 0x43, 0x5e, 0x82, 0x44, 0xe5,
+ 0xa0, 0x7d, 0xd8, 0xea, 0xea, 0x06, 0x39, 0xb3, 0x27, 0x5b, 0xe8, 0x96, 0x4d, 0x83, 0xca, 0xb4,
+ 0x0a, 0x5c, 0xaa, 0x77, 0x8c, 0xf2, 0x43, 0x93, 0xad, 0x1b, 0xcb, 0x42, 0x8a, 0x90, 0x33, 0x9f,
+ 0xdb, 0x56, 0x36, 0x5a, 0x0a, 0xe5, 0xb1, 0x8f, 0x4f, 0x17, 0xd0, 0x2e, 0xdd, 0x3f, 0xdf, 0x86,
+ 0xe7, 0x49, 0xfa, 0x0c, 0x4c, 0x95, 0x0f, 0x9b, 0x6a, 0x82, 0x9c, 0x53, 0x33, 0xd3, 0x6d, 0x59,
+ 0xd3, 0x19, 0xbe, 0xd3, 0x3d, 0x9d, 0x67, 0x56, 0x53, 0x34, 0xd4, 0x33, 0x3c, 0x92, 0x67, 0xbe,
+ 0xd3, 0x2d, 0x87, 0x4d, 0x27, 0x78, 0xf6, 0x22, 0x4c, 0x50, 0x19, 0xc3, 0x06, 0x36, 0x53, 0xf2,
+ 0x59, 0x0d, 0x26, 0x99, 0x84, 0x95, 0xc7, 0x00, 0x95, 0x92, 0x31, 0xeb, 0xbf, 0x72, 0x12, 0x59,
+ 0xff, 0x55, 0x92, 0x52, 0xf6, 0x2a, 0xcc, 0x0a, 0xfb, 0x97, 0x96, 0xa4, 0x9a, 0x04, 0xeb, 0xbf,
+ 0x5a, 0x72, 0x32, 0x15, 0x7f, 0xef, 0x37, 0x6a, 0x2c, 0xfb, 0x0a, 0xc8, 0x83, 0x3b, 0x9d, 0xf2,
+ 0x38, 0x48, 0x25, 0x6b, 0xca, 0xe7, 0x41, 0x2a, 0x97, 0x93, 0x28, 0x35, 0xfb, 0xb3, 0x5f, 0xa6,
+ 0x27, 0xcb, 0xba, 0x69, 0xea, 0xdd, 0xbb, 0xba, 0x59, 0x2e, 0x13, 0xe3, 0xd7, 0xe0, 0xb2, 0xef,
+ 0x4e, 0xa9, 0x65, 0x5f, 0xa9, 0x38, 0xf6, 0xd5, 0xea, 0x80, 0x7d, 0xb5, 0x6a, 0xdb, 0xa3, 0xa2,
+ 0x7b, 0xe2, 0x5c, 0x92, 0x7d, 0x76, 0x19, 0x95, 0x16, 0x73, 0xc2, 0x5d, 0x2a, 0xbe, 0x46, 0x74,
+ 0xcb, 0xbe, 0xba, 0x7a, 0xc8, 0x89, 0x75, 0xb9, 0x58, 0x21, 0xf6, 0x15, 0x5f, 0xfb, 0xfb, 0xc2,
+ 0xb1, 0x2a, 0xff, 0x86, 0x20, 0x93, 0x54, 0xa8, 0xc3, 0x55, 0xdf, 0x49, 0x0e, 0x98, 0xcb, 0xee,
+ 0x55, 0xea, 0x70, 0xcd, 0x57, 0xb7, 0x1d, 0x72, 0xe9, 0xab, 0x56, 0x5c, 0x21, 0x2f, 0xf9, 0xd2,
+ 0xaa, 0x7c, 0xd9, 0xcd, 0x51, 0xae, 0x02, 0x93, 0x00, 0xb9, 0x5a, 0xc5, 0x0a, 0x31, 0x28, 0x07,
+ 0x1a, 0x04, 0x47, 0xc9, 0xb5, 0x2c, 0xbe, 0x4e, 0x26, 0xa9, 0x04, 0x4e, 0x12, 0x12, 0x2a, 0xd7,
+ 0xbc, 0xbc, 0x7b, 0x72, 0xa6, 0xc6, 0x9e, 0x9c, 0xa9, 0xb1, 0x7f, 0x9c, 0xa9, 0xb1, 0x4f, 0xce,
+ 0x54, 0xf4, 0xd9, 0x99, 0x8a, 0x3e, 0x3f, 0x53, 0xd1, 0x17, 0x67, 0x2a, 0x7a, 0xa7, 0xaf, 0xa2,
+ 0x0f, 0xfa, 0x2a, 0xfa, 0xb0, 0xaf, 0xa2, 0x3f, 0xf6, 0x55, 0xf4, 0xb8, 0xaf, 0xa2, 0x93, 0xbe,
+ 0x1a, 0x7b, 0xd2, 0x57, 0x63, 0x9f, 0xf4, 0x55, 0xf4, 0x59, 0x5f, 0x8d, 0x7d, 0xde, 0x57, 0xd1,
+ 0x17, 0x7d, 0x35, 0xf6, 0xce, 0xa7, 0x6a, 0xec, 0xd1, 0xa7, 0x6a, 0xec, 0x83, 0x4f, 0x55, 0xf4,
+ 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5a, 0xab, 0x64, 0x51, 0x3b, 0x36, 0x00, 0x00,
+}
+
func (this *NidOptNative) Compare(that interface{}) int {
if that == nil {
if this == nil {
@@ -8320,427 +8539,430 @@ func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_
func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 6720 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x6b, 0x70, 0x1c, 0xc7,
- 0x75, 0x2e, 0x66, 0x67, 0x01, 0x2e, 0x0e, 0x5e, 0x83, 0x01, 0x09, 0xae, 0x20, 0x0a, 0x20, 0x57,
- 0x14, 0x05, 0x41, 0x12, 0x08, 0x82, 0xe0, 0x6b, 0x69, 0x49, 0x77, 0x5f, 0xa4, 0x40, 0x13, 0x0b,
- 0x78, 0x00, 0x58, 0xa2, 0x7d, 0x6f, 0x6d, 0x0d, 0x77, 0x1b, 0xc0, 0x4a, 0xbb, 0x33, 0xeb, 0x9d,
- 0x59, 0x49, 0x50, 0xdd, 0xba, 0xa5, 0x6b, 0xdf, 0xeb, 0xd8, 0x49, 0xe5, 0xe9, 0xa4, 0x62, 0x3b,
- 0xb6, 0x2c, 0xdb, 0x65, 0x5b, 0x76, 0x5e, 0x76, 0xec, 0x38, 0x7e, 0xa4, 0x62, 0xfd, 0x71, 0xc2,
- 0xfc, 0x49, 0xc9, 0xf9, 0x95, 0x72, 0xa5, 0x54, 0x16, 0xe5, 0xaa, 0x38, 0x89, 0x12, 0x3b, 0x8e,
- 0xaa, 0xe2, 0x2a, 0xf9, 0x47, 0xaa, 0x5f, 0x33, 0xd3, 0xbd, 0xb3, 0x98, 0x81, 0x28, 0xc9, 0xfe,
- 0x43, 0xee, 0xf6, 0x39, 0xdf, 0x99, 0xd3, 0xe7, 0xd5, 0x67, 0xba, 0x1b, 0x0b, 0x3f, 0xbe, 0x00,
- 0x47, 0xb7, 0x6d, 0x7b, 0xbb, 0x81, 0x4e, 0xb6, 0xda, 0xb6, 0x6b, 0x5f, 0xef, 0x6c, 0x9d, 0xac,
- 0x21, 0xa7, 0xda, 0xae, 0xb7, 0x5c, 0xbb, 0x3d, 0x4f, 0xc6, 0xf4, 0x31, 0xca, 0x31, 0xcf, 0x39,
- 0x32, 0x2b, 0x30, 0x7e, 0xa9, 0xde, 0x40, 0x45, 0x8f, 0x71, 0x1d, 0xb9, 0xfa, 0x79, 0x48, 0x6e,
- 0xd5, 0x1b, 0x28, 0xad, 0x1c, 0x55, 0x67, 0x87, 0x16, 0x8f, 0xcf, 0x4b, 0xa0, 0x79, 0x11, 0xb1,
- 0x86, 0x87, 0x0d, 0x82, 0xc8, 0xfc, 0x30, 0x09, 0x13, 0x21, 0x54, 0x5d, 0x87, 0xa4, 0x65, 0x36,
- 0xb1, 0x44, 0x65, 0x76, 0xd0, 0x20, 0x9f, 0xf5, 0x34, 0x1c, 0x68, 0x99, 0xd5, 0xc7, 0xcd, 0x6d,
- 0x94, 0x4e, 0x90, 0x61, 0xfe, 0x55, 0x9f, 0x06, 0xa8, 0xa1, 0x16, 0xb2, 0x6a, 0xc8, 0xaa, 0xee,
- 0xa6, 0xd5, 0xa3, 0xea, 0xec, 0xa0, 0x11, 0x18, 0xd1, 0xef, 0x85, 0xf1, 0x56, 0xe7, 0x7a, 0xa3,
- 0x5e, 0xad, 0x04, 0xd8, 0xe0, 0xa8, 0x3a, 0xdb, 0x6f, 0x68, 0x94, 0x50, 0xf4, 0x99, 0xef, 0x86,
- 0xb1, 0x27, 0x91, 0xf9, 0x78, 0x90, 0x75, 0x88, 0xb0, 0x8e, 0xe2, 0xe1, 0x00, 0x63, 0x01, 0x86,
- 0x9b, 0xc8, 0x71, 0xcc, 0x6d, 0x54, 0x71, 0x77, 0x5b, 0x28, 0x9d, 0x24, 0xb3, 0x3f, 0xda, 0x35,
- 0x7b, 0x79, 0xe6, 0x43, 0x0c, 0xb5, 0xb1, 0xdb, 0x42, 0x7a, 0x0e, 0x06, 0x91, 0xd5, 0x69, 0x52,
- 0x09, 0xfd, 0x3d, 0xec, 0x57, 0xb2, 0x3a, 0x4d, 0x59, 0x4a, 0x0a, 0xc3, 0x98, 0x88, 0x03, 0x0e,
- 0x6a, 0x3f, 0x51, 0xaf, 0xa2, 0xf4, 0x00, 0x11, 0x70, 0x77, 0x97, 0x80, 0x75, 0x4a, 0x97, 0x65,
- 0x70, 0x9c, 0x5e, 0x80, 0x41, 0xf4, 0x94, 0x8b, 0x2c, 0xa7, 0x6e, 0x5b, 0xe9, 0x03, 0x44, 0xc8,
- 0x5d, 0x21, 0x5e, 0x44, 0x8d, 0x9a, 0x2c, 0xc2, 0xc7, 0xe9, 0x67, 0xe1, 0x80, 0xdd, 0x72, 0xeb,
- 0xb6, 0xe5, 0xa4, 0x53, 0x47, 0x95, 0xd9, 0xa1, 0xc5, 0x23, 0xa1, 0x81, 0xb0, 0x4a, 0x79, 0x0c,
- 0xce, 0xac, 0x2f, 0x83, 0xe6, 0xd8, 0x9d, 0x76, 0x15, 0x55, 0xaa, 0x76, 0x0d, 0x55, 0xea, 0xd6,
- 0x96, 0x9d, 0x1e, 0x24, 0x02, 0x66, 0xba, 0x27, 0x42, 0x18, 0x0b, 0x76, 0x0d, 0x2d, 0x5b, 0x5b,
- 0xb6, 0x31, 0xea, 0x08, 0xdf, 0xf5, 0x49, 0x18, 0x70, 0x76, 0x2d, 0xd7, 0x7c, 0x2a, 0x3d, 0x4c,
- 0x22, 0x84, 0x7d, 0xcb, 0x7c, 0x73, 0x00, 0xc6, 0xe2, 0x84, 0xd8, 0x45, 0xe8, 0xdf, 0xc2, 0xb3,
- 0x4c, 0x27, 0xf6, 0x63, 0x03, 0x8a, 0x11, 0x8d, 0x38, 0xf0, 0x06, 0x8d, 0x98, 0x83, 0x21, 0x0b,
- 0x39, 0x2e, 0xaa, 0xd1, 0x88, 0x50, 0x63, 0xc6, 0x14, 0x50, 0x50, 0x77, 0x48, 0x25, 0xdf, 0x50,
- 0x48, 0x3d, 0x0a, 0x63, 0x9e, 0x4a, 0x95, 0xb6, 0x69, 0x6d, 0xf3, 0xd8, 0x3c, 0x19, 0xa5, 0xc9,
- 0x7c, 0x89, 0xe3, 0x0c, 0x0c, 0x33, 0x46, 0x91, 0xf0, 0x5d, 0x2f, 0x02, 0xd8, 0x16, 0xb2, 0xb7,
- 0x2a, 0x35, 0x54, 0x6d, 0xa4, 0x53, 0x3d, 0xac, 0xb4, 0x8a, 0x59, 0xba, 0xac, 0x64, 0xd3, 0xd1,
- 0x6a, 0x43, 0xbf, 0xe0, 0x87, 0xda, 0x81, 0x1e, 0x91, 0xb2, 0x42, 0x93, 0xac, 0x2b, 0xda, 0x36,
- 0x61, 0xb4, 0x8d, 0x70, 0xdc, 0xa3, 0x1a, 0x9b, 0xd9, 0x20, 0x51, 0x62, 0x3e, 0x72, 0x66, 0x06,
- 0x83, 0xd1, 0x89, 0x8d, 0xb4, 0x83, 0x5f, 0xf5, 0x3b, 0xc1, 0x1b, 0xa8, 0x90, 0xb0, 0x02, 0x52,
- 0x85, 0x86, 0xf9, 0x60, 0xd9, 0x6c, 0xa2, 0xa9, 0xa7, 0x61, 0x54, 0x34, 0x8f, 0x7e, 0x10, 0xfa,
- 0x1d, 0xd7, 0x6c, 0xbb, 0x24, 0x0a, 0xfb, 0x0d, 0xfa, 0x45, 0xd7, 0x40, 0x45, 0x56, 0x8d, 0x54,
- 0xb9, 0x7e, 0x03, 0x7f, 0xd4, 0xff, 0x87, 0x3f, 0x61, 0x95, 0x4c, 0xf8, 0x44, 0xb7, 0x47, 0x05,
- 0xc9, 0xf2, 0xbc, 0xa7, 0xce, 0xc1, 0x88, 0x30, 0x81, 0xb8, 0x8f, 0xce, 0xfc, 0x6f, 0x38, 0x14,
- 0x2a, 0x5a, 0x7f, 0x14, 0x0e, 0x76, 0xac, 0xba, 0xe5, 0xa2, 0x76, 0xab, 0x8d, 0x70, 0xc4, 0xd2,
- 0x47, 0xa5, 0xff, 0xe9, 0x40, 0x8f, 0x98, 0xdb, 0x0c, 0x72, 0x53, 0x29, 0xc6, 0x44, 0xa7, 0x7b,
- 0x70, 0x6e, 0x30, 0xf5, 0xa3, 0x03, 0xda, 0x33, 0xcf, 0x3c, 0xf3, 0x4c, 0x22, 0xf3, 0xd1, 0x01,
- 0x38, 0x18, 0x96, 0x33, 0xa1, 0xe9, 0x3b, 0x09, 0x03, 0x56, 0xa7, 0x79, 0x1d, 0xb5, 0x89, 0x91,
- 0xfa, 0x0d, 0xf6, 0x4d, 0xcf, 0x41, 0x7f, 0xc3, 0xbc, 0x8e, 0x1a, 0xe9, 0xe4, 0x51, 0x65, 0x76,
- 0x74, 0xf1, 0xde, 0x58, 0x59, 0x39, 0x7f, 0x15, 0x43, 0x0c, 0x8a, 0xd4, 0x1f, 0x84, 0x24, 0x2b,
- 0xd1, 0x58, 0xc2, 0x5c, 0x3c, 0x09, 0x38, 0x97, 0x0c, 0x82, 0xd3, 0x6f, 0x87, 0x41, 0xfc, 0x3f,
- 0x8d, 0x8d, 0x01, 0xa2, 0x73, 0x0a, 0x0f, 0xe0, 0xb8, 0xd0, 0xa7, 0x20, 0x45, 0xd2, 0xa4, 0x86,
- 0xf8, 0xd2, 0xe6, 0x7d, 0xc7, 0x81, 0x55, 0x43, 0x5b, 0x66, 0xa7, 0xe1, 0x56, 0x9e, 0x30, 0x1b,
- 0x1d, 0x44, 0x02, 0x7e, 0xd0, 0x18, 0x66, 0x83, 0xef, 0xc6, 0x63, 0xfa, 0x0c, 0x0c, 0xd1, 0xac,
- 0xaa, 0x5b, 0x35, 0xf4, 0x14, 0xa9, 0x9e, 0xfd, 0x06, 0x4d, 0xb4, 0x65, 0x3c, 0x82, 0x1f, 0xff,
- 0x98, 0x63, 0x5b, 0x3c, 0x34, 0xc9, 0x23, 0xf0, 0x00, 0x79, 0xfc, 0x39, 0xb9, 0x70, 0xdf, 0x11,
- 0x3e, 0x3d, 0x39, 0xa6, 0x32, 0x5f, 0x4f, 0x40, 0x92, 0xd4, 0x8b, 0x31, 0x18, 0xda, 0xb8, 0xb6,
- 0x56, 0xaa, 0x14, 0x57, 0x37, 0xf3, 0x57, 0x4b, 0x9a, 0xa2, 0x8f, 0x02, 0x90, 0x81, 0x4b, 0x57,
- 0x57, 0x73, 0x1b, 0x5a, 0xc2, 0xfb, 0xbe, 0x5c, 0xde, 0x38, 0xbb, 0xa4, 0xa9, 0x1e, 0x60, 0x93,
- 0x0e, 0x24, 0x83, 0x0c, 0xa7, 0x17, 0xb5, 0x7e, 0x5d, 0x83, 0x61, 0x2a, 0x60, 0xf9, 0xd1, 0x52,
- 0xf1, 0xec, 0x92, 0x36, 0x20, 0x8e, 0x9c, 0x5e, 0xd4, 0x0e, 0xe8, 0x23, 0x30, 0x48, 0x46, 0xf2,
- 0xab, 0xab, 0x57, 0xb5, 0x94, 0x27, 0x73, 0x7d, 0xc3, 0x58, 0x2e, 0x5f, 0xd6, 0x06, 0x3d, 0x99,
- 0x97, 0x8d, 0xd5, 0xcd, 0x35, 0x0d, 0x3c, 0x09, 0x2b, 0xa5, 0xf5, 0xf5, 0xdc, 0xe5, 0x92, 0x36,
- 0xe4, 0x71, 0xe4, 0xaf, 0x6d, 0x94, 0xd6, 0xb5, 0x61, 0x41, 0xad, 0xd3, 0x8b, 0xda, 0x88, 0xf7,
- 0x88, 0x52, 0x79, 0x73, 0x45, 0x1b, 0xd5, 0xc7, 0x61, 0x84, 0x3e, 0x82, 0x2b, 0x31, 0x26, 0x0d,
- 0x9d, 0x5d, 0xd2, 0x34, 0x5f, 0x11, 0x2a, 0x65, 0x5c, 0x18, 0x38, 0xbb, 0xa4, 0xe9, 0x99, 0x02,
- 0xf4, 0x93, 0xe8, 0xd2, 0x75, 0x18, 0xbd, 0x9a, 0xcb, 0x97, 0xae, 0x56, 0x56, 0xd7, 0x36, 0x96,
- 0x57, 0xcb, 0xb9, 0xab, 0x9a, 0xe2, 0x8f, 0x19, 0xa5, 0x77, 0x6d, 0x2e, 0x1b, 0xa5, 0xa2, 0x96,
- 0x08, 0x8e, 0xad, 0x95, 0x72, 0x1b, 0xa5, 0xa2, 0xa6, 0x66, 0xaa, 0x70, 0x30, 0xac, 0x4e, 0x86,
- 0x66, 0x46, 0xc0, 0xc5, 0x89, 0x1e, 0x2e, 0x26, 0xb2, 0xba, 0x5c, 0xfc, 0x4a, 0x02, 0x26, 0x42,
- 0xd6, 0x8a, 0xd0, 0x87, 0x3c, 0x04, 0xfd, 0x34, 0x44, 0xe9, 0xea, 0x79, 0x4f, 0xe8, 0xa2, 0x43,
- 0x02, 0xb6, 0x6b, 0x05, 0x25, 0xb8, 0x60, 0x07, 0xa1, 0xf6, 0xe8, 0x20, 0xb0, 0x88, 0xae, 0x9a,
- 0xfe, 0xbf, 0xba, 0x6a, 0x3a, 0x5d, 0xf6, 0xce, 0xc6, 0x59, 0xf6, 0xc8, 0xd8, 0xfe, 0x6a, 0x7b,
- 0x7f, 0x48, 0x6d, 0xbf, 0x08, 0xe3, 0x5d, 0x82, 0x62, 0xd7, 0xd8, 0x0f, 0x28, 0x90, 0xee, 0x65,
- 0x9c, 0x88, 0x4a, 0x97, 0x10, 0x2a, 0xdd, 0x45, 0xd9, 0x82, 0xc7, 0x7a, 0x3b, 0xa1, 0xcb, 0xd7,
- 0x5f, 0x50, 0x60, 0x32, 0xbc, 0x53, 0x0c, 0xd5, 0xe1, 0x41, 0x18, 0x68, 0x22, 0x77, 0xc7, 0xe6,
- 0xdd, 0xd2, 0x89, 0x90, 0x35, 0x18, 0x93, 0x65, 0x67, 0x33, 0x54, 0x70, 0x11, 0x57, 0x7b, 0xb5,
- 0x7b, 0x54, 0x9b, 0x2e, 0x4d, 0x3f, 0x9c, 0x80, 0x43, 0xa1, 0xc2, 0x43, 0x15, 0xbd, 0x03, 0xa0,
- 0x6e, 0xb5, 0x3a, 0x2e, 0xed, 0x88, 0x68, 0x81, 0x1d, 0x24, 0x23, 0xa4, 0x78, 0xe1, 0xe2, 0xd9,
- 0x71, 0x3d, 0xba, 0x4a, 0xe8, 0x40, 0x87, 0x08, 0xc3, 0x79, 0x5f, 0xd1, 0x24, 0x51, 0x74, 0xba,
- 0xc7, 0x4c, 0xbb, 0x02, 0x73, 0x01, 0xb4, 0x6a, 0xa3, 0x8e, 0x2c, 0xb7, 0xe2, 0xb8, 0x6d, 0x64,
- 0x36, 0xeb, 0xd6, 0x36, 0x59, 0x41, 0x52, 0xd9, 0xfe, 0x2d, 0xb3, 0xe1, 0x20, 0x63, 0x8c, 0x92,
- 0xd7, 0x39, 0x15, 0x23, 0x48, 0x00, 0xb5, 0x03, 0x88, 0x01, 0x01, 0x41, 0xc9, 0x1e, 0x22, 0xf3,
- 0xd5, 0x14, 0x0c, 0x05, 0xfa, 0x6a, 0xfd, 0x18, 0x0c, 0x3f, 0x66, 0x3e, 0x61, 0x56, 0xf8, 0xbb,
- 0x12, 0xb5, 0xc4, 0x10, 0x1e, 0x5b, 0x63, 0xef, 0x4b, 0x0b, 0x70, 0x90, 0xb0, 0xd8, 0x1d, 0x17,
- 0xb5, 0x2b, 0xd5, 0x86, 0xe9, 0x38, 0xc4, 0x68, 0x29, 0xc2, 0xaa, 0x63, 0xda, 0x2a, 0x26, 0x15,
- 0x38, 0x45, 0x3f, 0x03, 0x13, 0x04, 0xd1, 0xec, 0x34, 0xdc, 0x7a, 0xab, 0x81, 0x2a, 0xf8, 0xed,
- 0xcd, 0x21, 0x2b, 0x89, 0xa7, 0xd9, 0x38, 0xe6, 0x58, 0x61, 0x0c, 0x58, 0x23, 0x47, 0x2f, 0xc2,
- 0x1d, 0x04, 0xb6, 0x8d, 0x2c, 0xd4, 0x36, 0x5d, 0x54, 0x41, 0xef, 0xeb, 0x98, 0x0d, 0xa7, 0x62,
- 0x5a, 0xb5, 0xca, 0x8e, 0xe9, 0xec, 0xa4, 0x0f, 0x62, 0x01, 0xf9, 0x44, 0x5a, 0x31, 0x6e, 0xc3,
- 0x8c, 0x97, 0x19, 0x5f, 0x89, 0xb0, 0xe5, 0xac, 0xda, 0xc3, 0xa6, 0xb3, 0xa3, 0x67, 0x61, 0x92,
- 0x48, 0x71, 0xdc, 0x76, 0xdd, 0xda, 0xae, 0x54, 0x77, 0x50, 0xf5, 0xf1, 0x4a, 0xc7, 0xdd, 0x3a,
- 0x9f, 0xbe, 0x3d, 0xf8, 0x7c, 0xa2, 0xe1, 0x3a, 0xe1, 0x29, 0x60, 0x96, 0x4d, 0x77, 0xeb, 0xbc,
- 0xbe, 0x0e, 0xc3, 0xd8, 0x19, 0xcd, 0xfa, 0xd3, 0xa8, 0xb2, 0x65, 0xb7, 0xc9, 0xd2, 0x38, 0x1a,
- 0x52, 0x9a, 0x02, 0x16, 0x9c, 0x5f, 0x65, 0x80, 0x15, 0xbb, 0x86, 0xb2, 0xfd, 0xeb, 0x6b, 0xa5,
- 0x52, 0xd1, 0x18, 0xe2, 0x52, 0x2e, 0xd9, 0x6d, 0x1c, 0x50, 0xdb, 0xb6, 0x67, 0xe0, 0x21, 0x1a,
- 0x50, 0xdb, 0x36, 0x37, 0xef, 0x19, 0x98, 0xa8, 0x56, 0xe9, 0x9c, 0xeb, 0xd5, 0x0a, 0x7b, 0xc7,
- 0x72, 0xd2, 0x9a, 0x60, 0xac, 0x6a, 0xf5, 0x32, 0x65, 0x60, 0x31, 0xee, 0xe8, 0x17, 0xe0, 0x90,
- 0x6f, 0xac, 0x20, 0x70, 0xbc, 0x6b, 0x96, 0x32, 0xf4, 0x0c, 0x4c, 0xb4, 0x76, 0xbb, 0x81, 0xba,
- 0xf0, 0xc4, 0xd6, 0xae, 0x0c, 0x3b, 0x07, 0x07, 0x5b, 0x3b, 0xad, 0x6e, 0xdc, 0x5c, 0x10, 0xa7,
- 0xb7, 0x76, 0x5a, 0x32, 0xf0, 0x2e, 0xf2, 0xc2, 0xdd, 0x46, 0x55, 0xd3, 0x45, 0xb5, 0xf4, 0xe1,
- 0x20, 0x7b, 0x80, 0xa0, 0x9f, 0x04, 0xad, 0x5a, 0xad, 0x20, 0xcb, 0xbc, 0xde, 0x40, 0x15, 0xb3,
- 0x8d, 0x2c, 0xd3, 0x49, 0xcf, 0x04, 0x99, 0x47, 0xab, 0xd5, 0x12, 0xa1, 0xe6, 0x08, 0x51, 0x9f,
- 0x83, 0x71, 0xfb, 0xfa, 0x63, 0x55, 0x1a, 0x92, 0x95, 0x56, 0x1b, 0x6d, 0xd5, 0x9f, 0x4a, 0x1f,
- 0x27, 0xf6, 0x1d, 0xc3, 0x04, 0x12, 0x90, 0x6b, 0x64, 0x58, 0xbf, 0x07, 0xb4, 0xaa, 0xb3, 0x63,
- 0xb6, 0x5b, 0xa4, 0x26, 0x3b, 0x2d, 0xb3, 0x8a, 0xd2, 0x77, 0x51, 0x56, 0x3a, 0x5e, 0xe6, 0xc3,
- 0x38, 0x25, 0x9c, 0x27, 0xeb, 0x5b, 0x2e, 0x97, 0x78, 0x37, 0x4d, 0x09, 0x32, 0xc6, 0xa4, 0xcd,
- 0x82, 0x86, 0x4d, 0x21, 0x3c, 0x78, 0x96, 0xb0, 0x8d, 0xb6, 0x76, 0x5a, 0xc1, 0xe7, 0xde, 0x09,
- 0x23, 0x98, 0xd3, 0x7f, 0xe8, 0x3d, 0xb4, 0x21, 0x6b, 0xed, 0x04, 0x9e, 0xf8, 0x96, 0xf5, 0xc6,
- 0x99, 0x2c, 0x0c, 0x07, 0xe3, 0x53, 0x1f, 0x04, 0x1a, 0xa1, 0x9a, 0x82, 0x9b, 0x95, 0xc2, 0x6a,
- 0x11, 0xb7, 0x19, 0xef, 0x29, 0x69, 0x09, 0xdc, 0xee, 0x5c, 0x5d, 0xde, 0x28, 0x55, 0x8c, 0xcd,
- 0xf2, 0xc6, 0xf2, 0x4a, 0x49, 0x53, 0x83, 0x7d, 0xf5, 0x77, 0x13, 0x30, 0x2a, 0xbe, 0x22, 0xe9,
- 0xef, 0x80, 0xc3, 0x7c, 0x3f, 0xc3, 0x41, 0x6e, 0xe5, 0xc9, 0x7a, 0x9b, 0xa4, 0x4c, 0xd3, 0xa4,
- 0xcb, 0x97, 0xe7, 0xb4, 0x83, 0x8c, 0x6b, 0x1d, 0xb9, 0x8f, 0xd4, 0xdb, 0x38, 0x21, 0x9a, 0xa6,
- 0xab, 0x5f, 0x85, 0x19, 0xcb, 0xae, 0x38, 0xae, 0x69, 0xd5, 0xcc, 0x76, 0xad, 0xe2, 0xef, 0x24,
- 0x55, 0xcc, 0x6a, 0x15, 0x39, 0x8e, 0x4d, 0x97, 0x2a, 0x4f, 0xca, 0x11, 0xcb, 0x5e, 0x67, 0xcc,
- 0x7e, 0x0d, 0xcf, 0x31, 0x56, 0x29, 0xc0, 0xd4, 0x5e, 0x01, 0x76, 0x3b, 0x0c, 0x36, 0xcd, 0x56,
- 0x05, 0x59, 0x6e, 0x7b, 0x97, 0x34, 0xc6, 0x29, 0x23, 0xd5, 0x34, 0x5b, 0x25, 0xfc, 0xfd, 0xed,
- 0x79, 0x3f, 0xf9, 0x47, 0x15, 0x86, 0x83, 0xcd, 0x31, 0x7e, 0xd7, 0xa8, 0x92, 0x75, 0x44, 0x21,
- 0x95, 0xe6, 0xce, 0x3d, 0x5b, 0xe9, 0xf9, 0x02, 0x5e, 0x60, 0xb2, 0x03, 0xb4, 0x65, 0x35, 0x28,
- 0x12, 0x2f, 0xee, 0xb8, 0xb6, 0x20, 0xda, 0x22, 0xa4, 0x0c, 0xf6, 0x4d, 0xbf, 0x0c, 0x03, 0x8f,
- 0x39, 0x44, 0xf6, 0x00, 0x91, 0x7d, 0x7c, 0x6f, 0xd9, 0x57, 0xd6, 0x89, 0xf0, 0xc1, 0x2b, 0xeb,
- 0x95, 0xf2, 0xaa, 0xb1, 0x92, 0xbb, 0x6a, 0x30, 0xb8, 0x7e, 0x1b, 0x24, 0x1b, 0xe6, 0xd3, 0xbb,
- 0xe2, 0x52, 0x44, 0x86, 0xe2, 0x1a, 0xfe, 0x36, 0x48, 0x3e, 0x89, 0xcc, 0xc7, 0xc5, 0x05, 0x80,
- 0x0c, 0xbd, 0x85, 0xa1, 0x7f, 0x12, 0xfa, 0x89, 0xbd, 0x74, 0x00, 0x66, 0x31, 0xad, 0x4f, 0x4f,
- 0x41, 0xb2, 0xb0, 0x6a, 0xe0, 0xf0, 0xd7, 0x60, 0x98, 0x8e, 0x56, 0xd6, 0x96, 0x4b, 0x85, 0x92,
- 0x96, 0xc8, 0x9c, 0x81, 0x01, 0x6a, 0x04, 0x9c, 0x1a, 0x9e, 0x19, 0xb4, 0x3e, 0xf6, 0x95, 0xc9,
- 0x50, 0x38, 0x75, 0x73, 0x25, 0x5f, 0x32, 0xb4, 0x44, 0xd0, 0xbd, 0x0e, 0x0c, 0x07, 0xfb, 0xe2,
- 0xb7, 0x27, 0xa6, 0xbe, 0xa5, 0xc0, 0x50, 0xa0, 0xcf, 0xc5, 0x0d, 0x8a, 0xd9, 0x68, 0xd8, 0x4f,
- 0x56, 0xcc, 0x46, 0xdd, 0x74, 0x58, 0x50, 0x00, 0x19, 0xca, 0xe1, 0x91, 0xb8, 0x4e, 0x7b, 0x5b,
- 0x94, 0x7f, 0x56, 0x01, 0x4d, 0x6e, 0x31, 0x25, 0x05, 0x95, 0x5f, 0xa8, 0x82, 0x9f, 0x50, 0x60,
- 0x54, 0xec, 0x2b, 0x25, 0xf5, 0x8e, 0xfd, 0x42, 0xd5, 0xfb, 0x41, 0x02, 0x46, 0x84, 0x6e, 0x32,
- 0xae, 0x76, 0xef, 0x83, 0xf1, 0x7a, 0x0d, 0x35, 0x5b, 0xb6, 0x8b, 0xac, 0xea, 0x6e, 0xa5, 0x81,
- 0x9e, 0x40, 0x8d, 0x74, 0x86, 0x14, 0x8a, 0x93, 0x7b, 0xf7, 0xab, 0xf3, 0xcb, 0x3e, 0xee, 0x2a,
- 0x86, 0x65, 0x27, 0x96, 0x8b, 0xa5, 0x95, 0xb5, 0xd5, 0x8d, 0x52, 0xb9, 0x70, 0xad, 0xb2, 0x59,
- 0x7e, 0x67, 0x79, 0xf5, 0x91, 0xb2, 0xa1, 0xd5, 0x25, 0xb6, 0xb7, 0x30, 0xd5, 0xd7, 0x40, 0x93,
- 0x95, 0xd2, 0x0f, 0x43, 0x98, 0x5a, 0x5a, 0x9f, 0x3e, 0x01, 0x63, 0xe5, 0xd5, 0xca, 0xfa, 0x72,
- 0xb1, 0x54, 0x29, 0x5d, 0xba, 0x54, 0x2a, 0x6c, 0xac, 0xd3, 0x1d, 0x08, 0x8f, 0x7b, 0x43, 0x4c,
- 0xea, 0x8f, 0xab, 0x30, 0x11, 0xa2, 0x89, 0x9e, 0x63, 0xef, 0x0e, 0xf4, 0x75, 0xe6, 0xfe, 0x38,
- 0xda, 0xcf, 0xe3, 0x25, 0x7f, 0xcd, 0x6c, 0xbb, 0xec, 0x55, 0xe3, 0x1e, 0xc0, 0x56, 0xb2, 0xdc,
- 0xfa, 0x56, 0x1d, 0xb5, 0xd9, 0x86, 0x0d, 0x7d, 0xa1, 0x18, 0xf3, 0xc7, 0xe9, 0x9e, 0xcd, 0x7d,
- 0xa0, 0xb7, 0x6c, 0xa7, 0xee, 0xd6, 0x9f, 0x40, 0x95, 0xba, 0xc5, 0x77, 0x77, 0xf0, 0x0b, 0x46,
- 0xd2, 0xd0, 0x38, 0x65, 0xd9, 0x72, 0x3d, 0x6e, 0x0b, 0x6d, 0x9b, 0x12, 0x37, 0x2e, 0xe0, 0xaa,
- 0xa1, 0x71, 0x8a, 0xc7, 0x7d, 0x0c, 0x86, 0x6b, 0x76, 0x07, 0x77, 0x5d, 0x94, 0x0f, 0xaf, 0x17,
- 0x8a, 0x31, 0x44, 0xc7, 0x3c, 0x16, 0xd6, 0x4f, 0xfb, 0xdb, 0x4a, 0xc3, 0xc6, 0x10, 0x1d, 0xa3,
- 0x2c, 0x77, 0xc3, 0x98, 0xb9, 0xbd, 0xdd, 0xc6, 0xc2, 0xb9, 0x20, 0xfa, 0x86, 0x30, 0xea, 0x0d,
- 0x13, 0xc6, 0xa9, 0x2b, 0x90, 0xe2, 0x76, 0xc0, 0x4b, 0x32, 0xb6, 0x44, 0xa5, 0x45, 0x5f, 0x7b,
- 0x13, 0xb3, 0x83, 0x46, 0xca, 0xe2, 0xc4, 0x63, 0x30, 0x5c, 0x77, 0x2a, 0xfe, 0x2e, 0x79, 0xe2,
- 0x68, 0x62, 0x36, 0x65, 0x0c, 0xd5, 0x1d, 0x6f, 0x87, 0x31, 0xf3, 0x85, 0x04, 0x8c, 0x8a, 0xbb,
- 0xfc, 0x7a, 0x11, 0x52, 0x0d, 0xbb, 0x6a, 0x92, 0xd0, 0xa2, 0x47, 0x4c, 0xb3, 0x11, 0x07, 0x03,
- 0xf3, 0x57, 0x19, 0xbf, 0xe1, 0x21, 0xa7, 0xfe, 0x4e, 0x81, 0x14, 0x1f, 0xd6, 0x27, 0x21, 0xd9,
- 0x32, 0xdd, 0x1d, 0x22, 0xae, 0x3f, 0x9f, 0xd0, 0x14, 0x83, 0x7c, 0xc7, 0xe3, 0x4e, 0xcb, 0xb4,
- 0x48, 0x08, 0xb0, 0x71, 0xfc, 0x1d, 0xfb, 0xb5, 0x81, 0xcc, 0x1a, 0x79, 0xfd, 0xb0, 0x9b, 0x4d,
- 0x64, 0xb9, 0x0e, 0xf7, 0x2b, 0x1b, 0x2f, 0xb0, 0x61, 0xfd, 0x5e, 0x18, 0x77, 0xdb, 0x66, 0xbd,
- 0x21, 0xf0, 0x26, 0x09, 0xaf, 0xc6, 0x09, 0x1e, 0x73, 0x16, 0x6e, 0xe3, 0x72, 0x6b, 0xc8, 0x35,
- 0xab, 0x3b, 0xa8, 0xe6, 0x83, 0x06, 0xc8, 0x36, 0xc3, 0x61, 0xc6, 0x50, 0x64, 0x74, 0x8e, 0xcd,
- 0x7c, 0x4f, 0x81, 0x71, 0xfe, 0xc2, 0x54, 0xf3, 0x8c, 0xb5, 0x02, 0x60, 0x5a, 0x96, 0xed, 0x06,
- 0xcd, 0xd5, 0x1d, 0xca, 0x5d, 0xb8, 0xf9, 0x9c, 0x07, 0x32, 0x02, 0x02, 0xa6, 0x9a, 0x00, 0x3e,
- 0xa5, 0xa7, 0xd9, 0x66, 0x60, 0x88, 0x1d, 0xe1, 0x90, 0x73, 0x40, 0xfa, 0x8a, 0x0d, 0x74, 0x08,
- 0xbf, 0x59, 0xe9, 0x07, 0xa1, 0xff, 0x3a, 0xda, 0xae, 0x5b, 0x6c, 0x63, 0x96, 0x7e, 0xe1, 0x1b,
- 0x21, 0x49, 0x6f, 0x23, 0x24, 0xff, 0x5e, 0x98, 0xa8, 0xda, 0x4d, 0x59, 0xdd, 0xbc, 0x26, 0xbd,
- 0xe6, 0x3b, 0x0f, 0x2b, 0xef, 0x01, 0xbf, 0xc5, 0xfc, 0x99, 0xa2, 0x7c, 0x26, 0xa1, 0x5e, 0x5e,
- 0xcb, 0x7f, 0x29, 0x31, 0x75, 0x99, 0x42, 0xd7, 0xf8, 0x4c, 0x0d, 0xb4, 0xd5, 0x40, 0x55, 0xac,
- 0x3d, 0x7c, 0xfe, 0x5e, 0xb8, 0x7f, 0xbb, 0xee, 0xee, 0x74, 0xae, 0xcf, 0x57, 0xed, 0xe6, 0xc9,
- 0x6d, 0x7b, 0xdb, 0xf6, 0x8f, 0x3e, 0xf1, 0x37, 0xf2, 0x85, 0x7c, 0x62, 0xc7, 0x9f, 0x83, 0xde,
- 0xe8, 0x54, 0xe4, 0x59, 0x69, 0xb6, 0x0c, 0x13, 0x8c, 0xb9, 0x42, 0xce, 0x5f, 0xe8, 0x5b, 0x84,
- 0xbe, 0xe7, 0x1e, 0x56, 0xfa, 0x2b, 0x3f, 0x24, 0xcb, 0xb5, 0x31, 0xce, 0xa0, 0x98, 0x46, 0x5f,
- 0x34, 0xb2, 0x06, 0x1c, 0x12, 0xe4, 0xd1, 0xd4, 0x44, 0xed, 0x08, 0x89, 0xdf, 0x65, 0x12, 0x27,
- 0x02, 0x12, 0xd7, 0x19, 0x34, 0x5b, 0x80, 0x91, 0xfd, 0xc8, 0xfa, 0x6b, 0x26, 0x6b, 0x18, 0x05,
- 0x85, 0x5c, 0x86, 0x31, 0x22, 0xa4, 0xda, 0x71, 0x5c, 0xbb, 0x49, 0xea, 0xde, 0xde, 0x62, 0xfe,
- 0xe6, 0x87, 0x34, 0x57, 0x46, 0x31, 0xac, 0xe0, 0xa1, 0xb2, 0x59, 0x20, 0x47, 0x4e, 0x35, 0x54,
- 0x6d, 0x44, 0x48, 0xb8, 0xc1, 0x14, 0xf1, 0xf8, 0xb3, 0xef, 0x86, 0x83, 0xf8, 0x33, 0x29, 0x4b,
- 0x41, 0x4d, 0xa2, 0x37, 0xbc, 0xd2, 0xdf, 0xfb, 0x00, 0x4d, 0xc7, 0x09, 0x4f, 0x40, 0x40, 0xa7,
- 0x80, 0x17, 0xb7, 0x91, 0xeb, 0xa2, 0xb6, 0x53, 0x31, 0x1b, 0x61, 0xea, 0x05, 0x76, 0x0c, 0xd2,
- 0x1f, 0x7b, 0x55, 0xf4, 0xe2, 0x65, 0x8a, 0xcc, 0x35, 0x1a, 0xd9, 0x4d, 0x38, 0x1c, 0x12, 0x15,
- 0x31, 0x64, 0x7e, 0x9c, 0xc9, 0x3c, 0xd8, 0x15, 0x19, 0x58, 0xec, 0x1a, 0xf0, 0x71, 0xcf, 0x97,
- 0x31, 0x64, 0xfe, 0x01, 0x93, 0xa9, 0x33, 0x2c, 0x77, 0x29, 0x96, 0x78, 0x05, 0xc6, 0x9f, 0x40,
- 0xed, 0xeb, 0xb6, 0xc3, 0x76, 0x69, 0x62, 0x88, 0xfb, 0x04, 0x13, 0x37, 0xc6, 0x80, 0x64, 0xdb,
- 0x06, 0xcb, 0xba, 0x00, 0xa9, 0x2d, 0xb3, 0x8a, 0x62, 0x88, 0xf8, 0x24, 0x13, 0x71, 0x00, 0xf3,
- 0x63, 0x68, 0x0e, 0x86, 0xb7, 0x6d, 0xb6, 0x32, 0x45, 0xc3, 0x9f, 0x65, 0xf0, 0x21, 0x8e, 0x61,
- 0x22, 0x5a, 0x76, 0xab, 0xd3, 0xc0, 0xcb, 0x56, 0xb4, 0x88, 0x4f, 0x71, 0x11, 0x1c, 0xc3, 0x44,
- 0xec, 0xc3, 0xac, 0xcf, 0x71, 0x11, 0x4e, 0xc0, 0x9e, 0x0f, 0xc1, 0x90, 0x6d, 0x35, 0x76, 0x6d,
- 0x2b, 0x8e, 0x12, 0x9f, 0x66, 0x12, 0x80, 0x41, 0xb0, 0x80, 0x8b, 0x30, 0x18, 0xd7, 0x11, 0x9f,
- 0x7b, 0x95, 0xa7, 0x07, 0xf7, 0xc0, 0x65, 0x18, 0xe3, 0x05, 0xaa, 0x6e, 0x5b, 0x31, 0x44, 0x7c,
- 0x9e, 0x89, 0x18, 0x0d, 0xc0, 0xd8, 0x34, 0x5c, 0xe4, 0xb8, 0xdb, 0x28, 0x8e, 0x90, 0x2f, 0xf0,
- 0x69, 0x30, 0x08, 0x33, 0xe5, 0x75, 0x64, 0x55, 0x77, 0xe2, 0x49, 0x78, 0x9e, 0x9b, 0x92, 0x63,
- 0xb0, 0x88, 0x02, 0x8c, 0x34, 0xcd, 0xb6, 0xb3, 0x63, 0x36, 0x62, 0xb9, 0xe3, 0x8b, 0x4c, 0xc6,
- 0xb0, 0x07, 0x62, 0x16, 0xe9, 0x58, 0xfb, 0x11, 0xf3, 0x25, 0x6e, 0x91, 0x00, 0x8c, 0xa5, 0x9e,
- 0xe3, 0x92, 0x2d, 0xad, 0xfd, 0x48, 0xfb, 0x43, 0x9e, 0x7a, 0x14, 0xbb, 0x12, 0x94, 0x78, 0x11,
- 0x06, 0x9d, 0xfa, 0xd3, 0xb1, 0xc4, 0xfc, 0x11, 0xf7, 0x34, 0x01, 0x60, 0xf0, 0x35, 0xb8, 0x2d,
- 0x74, 0x99, 0x88, 0x21, 0xec, 0x8f, 0x99, 0xb0, 0xc9, 0x90, 0xa5, 0x82, 0x95, 0x84, 0xfd, 0x8a,
- 0xfc, 0x13, 0x5e, 0x12, 0x90, 0x24, 0x6b, 0x0d, 0xbf, 0x2b, 0x38, 0xe6, 0xd6, 0xfe, 0xac, 0xf6,
- 0xa7, 0xdc, 0x6a, 0x14, 0x2b, 0x58, 0x6d, 0x03, 0x26, 0x99, 0xc4, 0xfd, 0xf9, 0xf5, 0xcb, 0xbc,
- 0xb0, 0x52, 0xf4, 0xa6, 0xe8, 0xdd, 0xf7, 0xc2, 0x94, 0x67, 0x4e, 0xde, 0x94, 0x3a, 0x95, 0xa6,
- 0xd9, 0x8a, 0x21, 0xf9, 0x2b, 0x4c, 0x32, 0xaf, 0xf8, 0x5e, 0x57, 0xeb, 0xac, 0x98, 0x2d, 0x2c,
- 0xfc, 0x51, 0x48, 0x73, 0xe1, 0x1d, 0xab, 0x8d, 0xaa, 0xf6, 0xb6, 0x55, 0x7f, 0x1a, 0xd5, 0x62,
- 0x88, 0xfe, 0x33, 0xc9, 0x55, 0x9b, 0x01, 0x38, 0x96, 0xbc, 0x0c, 0x9a, 0xd7, 0xab, 0x54, 0xea,
- 0xcd, 0x96, 0xdd, 0x76, 0x23, 0x24, 0x7e, 0x95, 0x7b, 0xca, 0xc3, 0x2d, 0x13, 0x58, 0xb6, 0x04,
- 0xa3, 0xe4, 0x6b, 0xdc, 0x90, 0xfc, 0x1a, 0x13, 0x34, 0xe2, 0xa3, 0x58, 0xe1, 0xa8, 0xda, 0xcd,
- 0x96, 0xd9, 0x8e, 0x53, 0xff, 0xfe, 0x9c, 0x17, 0x0e, 0x06, 0x61, 0x85, 0xc3, 0xdd, 0x6d, 0x21,
- 0xbc, 0xda, 0xc7, 0x90, 0xf0, 0x75, 0x5e, 0x38, 0x38, 0x86, 0x89, 0xe0, 0x0d, 0x43, 0x0c, 0x11,
- 0x7f, 0xc1, 0x45, 0x70, 0x0c, 0x16, 0xf1, 0x2e, 0x7f, 0xa1, 0x6d, 0xa3, 0xed, 0xba, 0xe3, 0xb6,
- 0x69, 0x2b, 0xbc, 0xb7, 0xa8, 0x6f, 0xbc, 0x2a, 0x36, 0x61, 0x46, 0x00, 0x8a, 0x2b, 0x11, 0xdb,
- 0x42, 0x25, 0x6f, 0x4a, 0xd1, 0x8a, 0x7d, 0x93, 0x57, 0xa2, 0x00, 0x0c, 0xeb, 0x16, 0xe8, 0x10,
- 0xb1, 0xd9, 0xab, 0xf8, 0xfd, 0x20, 0x86, 0xb8, 0x6f, 0x49, 0xca, 0xad, 0x73, 0x2c, 0x96, 0x19,
- 0xe8, 0x7f, 0x3a, 0xd6, 0xe3, 0x68, 0x37, 0x56, 0x74, 0x7e, 0x5b, 0xea, 0x7f, 0x36, 0x29, 0x92,
- 0xd6, 0x90, 0x31, 0xa9, 0x9f, 0xd2, 0xa3, 0x2e, 0xeb, 0xa4, 0xff, 0xef, 0x6b, 0x6c, 0xbe, 0x62,
- 0x3b, 0x95, 0xbd, 0x8a, 0x83, 0x5c, 0x6c, 0x7a, 0xa2, 0x85, 0x7d, 0xe0, 0x35, 0x2f, 0xce, 0x85,
- 0x9e, 0x27, 0x7b, 0x09, 0x46, 0x84, 0x86, 0x27, 0x5a, 0xd4, 0xff, 0x63, 0xa2, 0x86, 0x83, 0xfd,
- 0x4e, 0xf6, 0x0c, 0x24, 0x71, 0xf3, 0x12, 0x0d, 0xff, 0xff, 0x0c, 0x4e, 0xd8, 0xb3, 0x0f, 0x40,
- 0x8a, 0x37, 0x2d, 0xd1, 0xd0, 0x0f, 0x32, 0xa8, 0x07, 0xc1, 0x70, 0xde, 0xb0, 0x44, 0xc3, 0x7f,
- 0x85, 0xc3, 0x39, 0x04, 0xc3, 0xe3, 0x9b, 0xf0, 0x85, 0x5f, 0x4b, 0xb2, 0x45, 0x87, 0xdb, 0xee,
- 0x22, 0x1c, 0x60, 0x9d, 0x4a, 0x34, 0xfa, 0xc3, 0xec, 0xe1, 0x1c, 0x91, 0x3d, 0x07, 0xfd, 0x31,
- 0x0d, 0xfe, 0xeb, 0x0c, 0x4a, 0xf9, 0xb3, 0x05, 0x18, 0x0a, 0x74, 0x27, 0xd1, 0xf0, 0xdf, 0x60,
- 0xf0, 0x20, 0x0a, 0xab, 0xce, 0xba, 0x93, 0x68, 0x01, 0xbf, 0xc9, 0x55, 0x67, 0x08, 0x6c, 0x36,
- 0xde, 0x98, 0x44, 0xa3, 0x7f, 0x8b, 0x5b, 0x9d, 0x43, 0xb2, 0x0f, 0xc1, 0xa0, 0xb7, 0xd8, 0x44,
- 0xe3, 0x7f, 0x9b, 0xe1, 0x7d, 0x0c, 0xb6, 0x40, 0x60, 0xb1, 0x8b, 0x16, 0xf1, 0x3b, 0xdc, 0x02,
- 0x01, 0x14, 0x4e, 0x23, 0xb9, 0x81, 0x89, 0x96, 0xf4, 0x11, 0x9e, 0x46, 0x52, 0xff, 0x82, 0xbd,
- 0x49, 0x6a, 0x7e, 0xb4, 0x88, 0xdf, 0xe5, 0xde, 0x24, 0xfc, 0x58, 0x0d, 0xb9, 0x23, 0x88, 0x96,
- 0xf1, 0xfb, 0x5c, 0x0d, 0xa9, 0x21, 0xc8, 0xae, 0x81, 0xde, 0xdd, 0x0d, 0x44, 0xcb, 0xfb, 0x28,
- 0x93, 0x37, 0xde, 0xd5, 0x0c, 0x64, 0x1f, 0x81, 0xc9, 0xf0, 0x4e, 0x20, 0x5a, 0xea, 0xc7, 0x5e,
- 0x93, 0xde, 0xdd, 0x82, 0x8d, 0x40, 0x76, 0xc3, 0x5f, 0x52, 0x82, 0x5d, 0x40, 0xb4, 0xd8, 0x8f,
- 0xbf, 0x26, 0x16, 0xee, 0x60, 0x13, 0x90, 0xcd, 0x01, 0xf8, 0x0b, 0x70, 0xb4, 0xac, 0x4f, 0x30,
- 0x59, 0x01, 0x10, 0x4e, 0x0d, 0xb6, 0xfe, 0x46, 0xe3, 0x3f, 0xc9, 0x53, 0x83, 0x21, 0x70, 0x6a,
- 0xf0, 0xa5, 0x37, 0x1a, 0xfd, 0x2c, 0x4f, 0x0d, 0x0e, 0xc1, 0x91, 0x1d, 0x58, 0xdd, 0xa2, 0x25,
- 0x7c, 0x9a, 0x47, 0x76, 0x00, 0x95, 0x2d, 0xc3, 0x78, 0xd7, 0x82, 0x18, 0x2d, 0xea, 0x33, 0x4c,
- 0x94, 0x26, 0xaf, 0x87, 0xc1, 0xc5, 0x8b, 0x2d, 0x86, 0xd1, 0xd2, 0x3e, 0x2b, 0x2d, 0x5e, 0x6c,
- 0x2d, 0xcc, 0x5e, 0x84, 0x94, 0xd5, 0x69, 0x34, 0x70, 0xf2, 0xe8, 0x7b, 0x5f, 0xb0, 0x4b, 0xff,
- 0xf3, 0xeb, 0xcc, 0x3a, 0x1c, 0x90, 0x3d, 0x03, 0xfd, 0xa8, 0x79, 0x1d, 0xd5, 0xa2, 0x90, 0xff,
- 0xf2, 0x3a, 0x2f, 0x98, 0x98, 0x3b, 0xfb, 0x10, 0x00, 0xdd, 0x1a, 0x21, 0xc7, 0x7e, 0x11, 0xd8,
- 0x7f, 0x7d, 0x9d, 0x5d, 0x7d, 0xf1, 0x21, 0xbe, 0x00, 0x7a, 0x91, 0x66, 0x6f, 0x01, 0xaf, 0x8a,
- 0x02, 0x88, 0x47, 0x2e, 0xc0, 0x81, 0xc7, 0x1c, 0xdb, 0x72, 0xcd, 0xed, 0x28, 0xf4, 0xbf, 0x31,
- 0x34, 0xe7, 0xc7, 0x06, 0x6b, 0xda, 0x6d, 0xe4, 0x9a, 0xdb, 0x4e, 0x14, 0xf6, 0xdf, 0x19, 0xd6,
- 0x03, 0x60, 0x70, 0xd5, 0x74, 0xdc, 0x38, 0xf3, 0xfe, 0x31, 0x07, 0x73, 0x00, 0x56, 0x1a, 0x7f,
- 0x7e, 0x1c, 0xed, 0x46, 0x61, 0x7f, 0xc2, 0x95, 0x66, 0xfc, 0xd9, 0x07, 0x60, 0x10, 0x7f, 0xa4,
- 0xf7, 0xd9, 0x22, 0xc0, 0xff, 0xc1, 0xc0, 0x3e, 0x02, 0x3f, 0xd9, 0x71, 0x6b, 0x6e, 0x3d, 0xda,
- 0xd8, 0x3f, 0x65, 0x9e, 0xe6, 0xfc, 0xd9, 0x1c, 0x0c, 0x39, 0x6e, 0xad, 0xd6, 0x61, 0xfd, 0x69,
- 0x04, 0xfc, 0x3f, 0x5f, 0xf7, 0xb6, 0x2c, 0x3c, 0x0c, 0xf6, 0xf6, 0x93, 0x8f, 0xbb, 0x2d, 0x9b,
- 0x1c, 0x73, 0x44, 0x49, 0x78, 0x8d, 0x49, 0x08, 0x40, 0xf2, 0xa5, 0xf0, 0xed, 0x5b, 0xb8, 0x6c,
- 0x5f, 0xb6, 0xe9, 0xc6, 0xed, 0x7b, 0x32, 0xd1, 0x3b, 0xb0, 0xf0, 0xed, 0x06, 0x8c, 0xb8, 0x3b,
- 0x08, 0x2f, 0xba, 0x6c, 0x23, 0x36, 0x89, 0x3f, 0x4f, 0xed, 0x6f, 0xf7, 0x96, 0x9c, 0xcd, 0x97,
- 0xeb, 0x58, 0xe1, 0x32, 0x39, 0x1e, 0xd1, 0x8f, 0xc0, 0x00, 0x99, 0xc2, 0x29, 0x72, 0x04, 0xa9,
- 0xe4, 0x93, 0x37, 0x5e, 0x9a, 0xe9, 0x33, 0xd8, 0x98, 0x47, 0x5d, 0x24, 0xfb, 0xd7, 0x09, 0x81,
- 0xba, 0xe8, 0x51, 0x4f, 0xd3, 0x2d, 0x6c, 0x81, 0x7a, 0xda, 0xa3, 0x2e, 0x91, 0xcd, 0x6c, 0x55,
- 0xa0, 0x2e, 0x79, 0xd4, 0x33, 0xe4, 0xc0, 0x66, 0x44, 0xa0, 0x9e, 0xf1, 0xa8, 0x67, 0xc9, 0x31,
- 0x4d, 0x52, 0xa0, 0x9e, 0xf5, 0xa8, 0xe7, 0xc8, 0x09, 0xcd, 0xb8, 0x40, 0x3d, 0xe7, 0x51, 0xcf,
- 0x93, 0x93, 0x19, 0x5d, 0xa0, 0x9e, 0xf7, 0xa8, 0x17, 0xc8, 0xb5, 0xa7, 0x03, 0x02, 0xf5, 0x82,
- 0x3e, 0x0d, 0x07, 0xe8, 0xcc, 0x17, 0xc8, 0x31, 0xfe, 0x18, 0x23, 0xf3, 0x41, 0x9f, 0x7e, 0x8a,
- 0x5c, 0x71, 0x1a, 0x10, 0xe9, 0xa7, 0x7c, 0xfa, 0x22, 0xf9, 0x6b, 0x0b, 0x4d, 0xa4, 0x2f, 0xfa,
- 0xf4, 0xd3, 0xe9, 0x11, 0x72, 0xcd, 0x4b, 0xa0, 0x9f, 0xf6, 0xe9, 0x4b, 0xe9, 0x51, 0x9c, 0x07,
- 0x22, 0x7d, 0xc9, 0xa7, 0x9f, 0x49, 0x8f, 0x1d, 0x55, 0x66, 0x87, 0x45, 0xfa, 0x99, 0xcc, 0xfb,
- 0x89, 0x7b, 0x2d, 0xdf, 0xbd, 0x93, 0xa2, 0x7b, 0x3d, 0xc7, 0x4e, 0x8a, 0x8e, 0xf5, 0x5c, 0x3a,
- 0x29, 0xba, 0xd4, 0x73, 0xe6, 0xa4, 0xe8, 0x4c, 0xcf, 0x8d, 0x93, 0xa2, 0x1b, 0x3d, 0x07, 0x4e,
- 0x8a, 0x0e, 0xf4, 0x5c, 0x37, 0x29, 0xba, 0xce, 0x73, 0xda, 0xa4, 0xe8, 0x34, 0xcf, 0x5d, 0x93,
- 0xa2, 0xbb, 0x3c, 0x47, 0xa5, 0x25, 0x47, 0xf9, 0x2e, 0x4a, 0x4b, 0x2e, 0xf2, 0x9d, 0x93, 0x96,
- 0x9c, 0xe3, 0xbb, 0x25, 0x2d, 0xb9, 0xc5, 0x77, 0x48, 0x5a, 0x72, 0x88, 0xef, 0x8a, 0xb4, 0xe4,
- 0x0a, 0xdf, 0x09, 0x2c, 0xc7, 0x0c, 0xd4, 0x0a, 0xc9, 0x31, 0x75, 0xcf, 0x1c, 0x53, 0xf7, 0xcc,
- 0x31, 0x75, 0xcf, 0x1c, 0x53, 0xf7, 0xcc, 0x31, 0x75, 0xcf, 0x1c, 0x53, 0xf7, 0xcc, 0x31, 0x75,
- 0xcf, 0x1c, 0x53, 0xf7, 0xcc, 0x31, 0x75, 0xef, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0x8d, 0xc8, 0x31,
- 0x35, 0x22, 0xc7, 0xd4, 0x88, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0xed, 0x99, 0x63, 0xbe, 0x7b, 0x27,
- 0x45, 0xf7, 0x86, 0xe6, 0x98, 0xda, 0x23, 0xc7, 0xd4, 0x1e, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5,
- 0x47, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe5, 0x98,
- 0xda, 0x33, 0xc7, 0xd4, 0x9e, 0x39, 0xa6, 0xf6, 0xcc, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0x3d, 0x73,
- 0x4c, 0x0d, 0xe6, 0xd8, 0x5f, 0xaa, 0xa0, 0xd3, 0x1c, 0x5b, 0x23, 0x17, 0xc1, 0x98, 0x2b, 0xa6,
- 0xa5, 0x4c, 0x1b, 0xc0, 0xae, 0xd3, 0x7c, 0x97, 0x4c, 0x4b, 0xb9, 0x26, 0xd2, 0x17, 0x3d, 0x3a,
- 0xcf, 0x36, 0x91, 0x7e, 0xda, 0xa3, 0xf3, 0x7c, 0x13, 0xe9, 0x4b, 0x1e, 0x9d, 0x67, 0x9c, 0x48,
- 0x3f, 0xe3, 0xd1, 0x79, 0xce, 0x89, 0xf4, 0xb3, 0x1e, 0x9d, 0x67, 0x9d, 0x48, 0x3f, 0xe7, 0xd1,
- 0x79, 0xde, 0x89, 0xf4, 0xf3, 0x1e, 0x9d, 0x67, 0x9e, 0x48, 0xbf, 0xa0, 0x1f, 0x95, 0x73, 0x8f,
- 0x33, 0x78, 0xae, 0x3d, 0x2a, 0x67, 0x9f, 0xc4, 0x71, 0xca, 0xe7, 0xe0, 0xf9, 0x27, 0x71, 0x2c,
- 0xfa, 0x1c, 0x3c, 0x03, 0x25, 0x8e, 0xd3, 0x99, 0x0f, 0x11, 0xf7, 0x59, 0xb2, 0xfb, 0xa6, 0x24,
- 0xf7, 0x25, 0x02, 0xae, 0x9b, 0x92, 0x5c, 0x97, 0x08, 0xb8, 0x6d, 0x4a, 0x72, 0x5b, 0x22, 0xe0,
- 0xb2, 0x29, 0xc9, 0x65, 0x89, 0x80, 0xbb, 0xa6, 0x24, 0x77, 0x25, 0x02, 0xae, 0x9a, 0x92, 0x5c,
- 0x95, 0x08, 0xb8, 0x69, 0x4a, 0x72, 0x53, 0x22, 0xe0, 0xa2, 0x29, 0xc9, 0x45, 0x89, 0x80, 0x7b,
- 0xa6, 0x24, 0xf7, 0x24, 0x02, 0xae, 0x39, 0x22, 0xbb, 0x26, 0x11, 0x74, 0xcb, 0x11, 0xd9, 0x2d,
- 0x89, 0xa0, 0x4b, 0x8e, 0xc8, 0x2e, 0x49, 0x04, 0xdd, 0x71, 0x44, 0x76, 0x47, 0x22, 0xe8, 0x8a,
- 0x9f, 0x27, 0x78, 0x47, 0xb8, 0xee, 0xb6, 0x3b, 0x55, 0xf7, 0x96, 0x3a, 0xc2, 0x05, 0xa1, 0x7d,
- 0x18, 0x5a, 0xd4, 0xe7, 0x49, 0xc3, 0x1a, 0xec, 0x38, 0xa5, 0x15, 0x6c, 0x41, 0x68, 0x2c, 0x02,
- 0x08, 0x2b, 0x1c, 0xb1, 0x74, 0x4b, 0xbd, 0xe1, 0x82, 0xd0, 0x66, 0x44, 0xeb, 0x77, 0xfe, 0x2d,
- 0xef, 0xd8, 0x5e, 0x48, 0xf0, 0x8e, 0x8d, 0x99, 0x7f, 0xbf, 0x1d, 0xdb, 0x5c, 0xb4, 0xc9, 0x3d,
- 0x63, 0xcf, 0x45, 0x1b, 0xbb, 0x6b, 0xd5, 0x89, 0xdb, 0xc1, 0xcd, 0x45, 0x9b, 0xd6, 0x33, 0xea,
- 0x9b, 0xdb, 0x6f, 0xb1, 0x08, 0x36, 0x50, 0x2b, 0x24, 0x82, 0xf7, 0xdb, 0x6f, 0x2d, 0x08, 0xa5,
- 0x64, 0xbf, 0x11, 0xac, 0xee, 0x3b, 0x82, 0xf7, 0xdb, 0x79, 0x2d, 0x08, 0xe5, 0x65, 0xdf, 0x11,
- 0xfc, 0x16, 0xf4, 0x43, 0x2c, 0x82, 0x7d, 0xf3, 0xef, 0xb7, 0x1f, 0x9a, 0x8b, 0x36, 0x79, 0x68,
- 0x04, 0xab, 0xfb, 0x88, 0xe0, 0x38, 0xfd, 0xd1, 0x5c, 0xb4, 0x69, 0xc3, 0x23, 0xf8, 0x96, 0xbb,
- 0x99, 0x4f, 0x29, 0x30, 0x5e, 0xae, 0xd7, 0x4a, 0xcd, 0xeb, 0xa8, 0x56, 0x43, 0x35, 0x66, 0xc7,
- 0x05, 0xa1, 0x12, 0xf4, 0x70, 0xf5, 0x8b, 0x2f, 0xcd, 0xf8, 0x16, 0x3e, 0x03, 0x29, 0x6a, 0xd3,
- 0x85, 0x85, 0xf4, 0x0d, 0x25, 0xa2, 0xc2, 0x79, 0xac, 0xfa, 0x31, 0x0e, 0x3b, 0xb5, 0x90, 0xfe,
- 0x7b, 0x25, 0x50, 0xe5, 0xbc, 0xe1, 0xcc, 0x47, 0x88, 0x86, 0xd6, 0x2d, 0x6b, 0x78, 0x32, 0x96,
- 0x86, 0x01, 0xdd, 0x6e, 0xef, 0xd2, 0x2d, 0xa0, 0x55, 0x07, 0xc6, 0xca, 0xf5, 0x5a, 0x99, 0xfc,
- 0x9d, 0x7f, 0x1c, 0x95, 0x28, 0x8f, 0x54, 0x0f, 0x16, 0x84, 0xb0, 0x0c, 0x22, 0xbc, 0x90, 0x16,
- 0x6b, 0x44, 0xa6, 0x8e, 0x1f, 0x6b, 0x09, 0x8f, 0x9d, 0xeb, 0xf5, 0x58, 0xbf, 0xb2, 0x7b, 0x0f,
- 0x9c, 0xeb, 0xf5, 0x40, 0x3f, 0x87, 0xbc, 0x47, 0x3d, 0xc5, 0x17, 0x67, 0x7a, 0x1d, 0x4b, 0x3f,
- 0x02, 0x89, 0x65, 0x7a, 0x5b, 0x7c, 0x38, 0x3f, 0x8c, 0x95, 0xfa, 0xfe, 0x4b, 0x33, 0xc9, 0xcd,
- 0x4e, 0xbd, 0x66, 0x24, 0x96, 0x6b, 0xfa, 0x15, 0xe8, 0x7f, 0x37, 0xfb, 0x6b, 0x53, 0xcc, 0xb0,
- 0xc4, 0x18, 0xee, 0xeb, 0xb9, 0x47, 0x84, 0x1f, 0x7c, 0x92, 0x6e, 0x4d, 0xce, 0x6f, 0xd6, 0x2d,
- 0xf7, 0xd4, 0xe2, 0x79, 0x83, 0x8a, 0xc8, 0xfc, 0x4f, 0x00, 0xfa, 0xcc, 0xa2, 0xe9, 0xec, 0xe8,
- 0x65, 0x2e, 0x99, 0x3e, 0xfa, 0xfc, 0xf7, 0x5f, 0x9a, 0x59, 0x8a, 0x23, 0xf5, 0xfe, 0x9a, 0xe9,
- 0xec, 0xdc, 0xef, 0xee, 0xb6, 0xd0, 0x7c, 0x7e, 0xd7, 0x45, 0x0e, 0x97, 0xde, 0xe2, 0xab, 0x1e,
- 0x9b, 0x57, 0x3a, 0x30, 0xaf, 0x94, 0x30, 0xa7, 0x4b, 0xe2, 0x9c, 0x16, 0xde, 0xe8, 0x7c, 0x9e,
- 0xe2, 0x8b, 0x84, 0x64, 0x49, 0x35, 0xca, 0x92, 0xea, 0xad, 0x5a, 0xb2, 0xc5, 0xeb, 0xa3, 0x34,
- 0x57, 0x75, 0xaf, 0xb9, 0xaa, 0xb7, 0x32, 0xd7, 0xff, 0xa2, 0xd9, 0xea, 0xe5, 0xd3, 0xa6, 0x45,
- 0x6f, 0xaa, 0xfe, 0x72, 0xed, 0x05, 0xbd, 0xa9, 0x5d, 0x40, 0x36, 0x79, 0xe3, 0xb9, 0x19, 0x25,
- 0xf3, 0xa9, 0x04, 0x9f, 0x39, 0x4d, 0xa4, 0x37, 0x36, 0xf3, 0x5f, 0x96, 0x9e, 0xea, 0xad, 0xb0,
- 0xd0, 0xb3, 0x0a, 0x4c, 0x76, 0x55, 0x72, 0x6a, 0xa6, 0x37, 0xb7, 0x9c, 0x5b, 0xfb, 0x2d, 0xe7,
- 0x4c, 0xc1, 0xaf, 0x29, 0x70, 0x50, 0x2a, 0xaf, 0x54, 0xbd, 0x93, 0x92, 0x7a, 0x87, 0xbb, 0x9f,
- 0x44, 0x18, 0x03, 0xda, 0x05, 0xdd, 0x2b, 0x01, 0x02, 0x92, 0x3d, 0xbf, 0x2f, 0x49, 0x7e, 0x3f,
- 0xe2, 0x01, 0x42, 0xcc, 0xc5, 0x23, 0x80, 0xa9, 0x6d, 0x43, 0x72, 0xa3, 0x8d, 0x90, 0x3e, 0x0d,
- 0x89, 0xd5, 0x36, 0xd3, 0x70, 0x94, 0xe2, 0x57, 0xdb, 0xf9, 0xb6, 0x69, 0x55, 0x77, 0x8c, 0xc4,
- 0x6a, 0x5b, 0x3f, 0x06, 0x6a, 0x8e, 0xfd, 0xa5, 0xfb, 0xd0, 0xe2, 0x18, 0x65, 0xc8, 0x59, 0x35,
- 0xc6, 0x81, 0x69, 0xfa, 0x34, 0x24, 0xaf, 0x22, 0x73, 0x8b, 0x29, 0x01, 0x94, 0x07, 0x8f, 0x18,
- 0x64, 0x9c, 0x3d, 0xf0, 0x51, 0x48, 0x71, 0xc1, 0xfa, 0x71, 0x8c, 0xd8, 0x72, 0xd9, 0x63, 0x19,
- 0x02, 0xab, 0xc3, 0x56, 0x2e, 0x42, 0xd5, 0x4f, 0x40, 0xbf, 0x51, 0xdf, 0xde, 0x71, 0xd9, 0xc3,
- 0xbb, 0xd9, 0x28, 0x39, 0x73, 0x0d, 0x06, 0x3d, 0x8d, 0xde, 0x64, 0xd1, 0x45, 0x3a, 0x35, 0x7d,
- 0x2a, 0xb8, 0x9e, 0xf0, 0x7d, 0x4b, 0x3a, 0xa4, 0x1f, 0x85, 0xd4, 0xba, 0xdb, 0xf6, 0x8b, 0x3e,
- 0xef, 0x48, 0xbd, 0xd1, 0xcc, 0xfb, 0x15, 0x48, 0x15, 0x11, 0x6a, 0x11, 0x83, 0xdf, 0x05, 0xc9,
- 0xa2, 0xfd, 0xa4, 0xc5, 0x14, 0x1c, 0x67, 0x16, 0xc5, 0x64, 0x66, 0x53, 0x42, 0xd6, 0xef, 0x0a,
- 0xda, 0x7d, 0xc2, 0xb3, 0x7b, 0x80, 0x8f, 0xd8, 0x3e, 0x23, 0xd8, 0x9e, 0x39, 0x10, 0x33, 0x75,
- 0xd9, 0xff, 0x1c, 0x0c, 0x05, 0x9e, 0xa2, 0xcf, 0x32, 0x35, 0x12, 0x32, 0x30, 0x68, 0x2b, 0xcc,
- 0x91, 0x41, 0x30, 0x22, 0x3c, 0x18, 0x43, 0x03, 0x26, 0xee, 0x01, 0x25, 0x66, 0x9e, 0x13, 0xcd,
- 0x1c, 0xce, 0xca, 0x4c, 0xbd, 0x40, 0x6d, 0x44, 0xcc, 0x7d, 0x9c, 0x06, 0x67, 0x6f, 0x27, 0xe2,
- 0xcf, 0x99, 0x7e, 0x50, 0xcb, 0xf5, 0x46, 0xe6, 0x01, 0x00, 0x9a, 0xf2, 0x25, 0xab, 0xd3, 0x94,
- 0xb2, 0x6e, 0x94, 0x1b, 0x78, 0x63, 0x07, 0x6d, 0x20, 0x87, 0xb0, 0x88, 0xfd, 0x14, 0x2e, 0x30,
- 0x40, 0x53, 0x8c, 0xe0, 0xef, 0x89, 0xc4, 0x87, 0x76, 0x62, 0x98, 0x35, 0x4d, 0x59, 0xaf, 0x21,
- 0x37, 0x67, 0xd9, 0xee, 0x0e, 0x6a, 0x4b, 0x88, 0x45, 0xfd, 0xb4, 0x90, 0xb0, 0xa3, 0x8b, 0xb7,
- 0x7b, 0x88, 0x9e, 0xa0, 0xd3, 0x99, 0x2f, 0x13, 0x05, 0x71, 0x2b, 0xd0, 0x35, 0x41, 0x35, 0xc6,
- 0x04, 0xf5, 0xb3, 0x42, 0xff, 0xb6, 0x87, 0x9a, 0xd2, 0xab, 0xe5, 0x05, 0xe1, 0x3d, 0x67, 0x6f,
- 0x65, 0xc5, 0x77, 0x4c, 0x6e, 0x53, 0xae, 0xf2, 0x3d, 0x91, 0x2a, 0xf7, 0xe8, 0x6e, 0xf7, 0x6b,
- 0x53, 0x35, 0xae, 0x4d, 0xbf, 0xe5, 0x75, 0x1c, 0xf4, 0xe7, 0x44, 0xc8, 0x0f, 0xf1, 0xe8, 0xf7,
- 0x45, 0xfa, 0x3e, 0xab, 0x14, 0x3c, 0x55, 0x97, 0xe2, 0xba, 0x3f, 0x9b, 0xc8, 0xe7, 0x3d, 0x75,
- 0xcf, 0xed, 0x23, 0x04, 0xb2, 0x89, 0x42, 0xc1, 0x2b, 0xdb, 0xa9, 0x0f, 0x3d, 0x37, 0xa3, 0x3c,
- 0xff, 0xdc, 0x4c, 0x5f, 0xe6, 0x8b, 0x0a, 0x8c, 0x33, 0xce, 0x40, 0xe0, 0xde, 0x2f, 0x29, 0x7f,
- 0x88, 0xd7, 0x8c, 0x30, 0x0b, 0xbc, 0x6d, 0xc1, 0xfb, 0x5d, 0x05, 0xd2, 0x5d, 0xba, 0x72, 0x7b,
- 0x2f, 0xc4, 0x52, 0x39, 0xab, 0x94, 0x7e, 0xf1, 0x36, 0xbf, 0x06, 0xfd, 0x1b, 0xf5, 0x26, 0x6a,
- 0xe3, 0x95, 0x00, 0x7f, 0xa0, 0x2a, 0xf3, 0xc3, 0x1c, 0x3a, 0xc4, 0x69, 0x54, 0x39, 0x81, 0xb6,
- 0xa8, 0xa7, 0x21, 0x59, 0x34, 0x5d, 0x93, 0x68, 0x30, 0xec, 0xd5, 0x57, 0xd3, 0x35, 0x33, 0xa7,
- 0x61, 0x78, 0x65, 0x97, 0x5c, 0x2f, 0xaa, 0x91, 0x9b, 0x25, 0x62, 0xf7, 0xc7, 0xfb, 0xd5, 0x53,
- 0x73, 0xfd, 0xa9, 0x9a, 0x76, 0x43, 0xc9, 0x26, 0x89, 0x3e, 0x4f, 0xc0, 0xe8, 0x2a, 0x56, 0x9b,
- 0xe0, 0x04, 0x18, 0x7d, 0xba, 0xea, 0x4d, 0x5e, 0x6a, 0xca, 0x54, 0xbf, 0x29, 0x3b, 0x0a, 0xca,
- 0x8a, 0xd8, 0x3a, 0x05, 0xf5, 0x30, 0x94, 0x95, 0xb9, 0x64, 0x6a, 0x54, 0x1b, 0x9f, 0x4b, 0xa6,
- 0x40, 0x1b, 0x61, 0xcf, 0xfd, 0x5b, 0x15, 0x34, 0xda, 0xea, 0x14, 0xd1, 0x56, 0xdd, 0xaa, 0xbb,
- 0xdd, 0xfd, 0xaa, 0xa7, 0xb1, 0xfe, 0x10, 0x0c, 0x62, 0x93, 0x5e, 0x62, 0xbf, 0xc7, 0x87, 0x4d,
- 0x7f, 0x8c, 0xb5, 0x28, 0x92, 0x08, 0x36, 0x40, 0x42, 0xc7, 0xc7, 0xe8, 0x97, 0x40, 0x2d, 0x97,
- 0x57, 0xd8, 0xe2, 0xb6, 0xb4, 0x27, 0x94, 0x5d, 0xe1, 0x61, 0xdf, 0xd8, 0x98, 0xb3, 0x6d, 0x60,
- 0x01, 0xfa, 0x12, 0x24, 0xca, 0x2b, 0xac, 0xe1, 0x3d, 0x1e, 0x47, 0x8c, 0x91, 0x28, 0xaf, 0x4c,
- 0xfd, 0x95, 0x02, 0x23, 0xc2, 0xa8, 0x9e, 0x81, 0x61, 0x3a, 0x10, 0x98, 0xee, 0x80, 0x21, 0x8c,
- 0x71, 0x9d, 0x13, 0xb7, 0xa8, 0xf3, 0x54, 0x0e, 0xc6, 0xa4, 0x71, 0x7d, 0x1e, 0xf4, 0xe0, 0x10,
- 0x53, 0x82, 0xfe, 0x16, 0x58, 0x08, 0x25, 0x73, 0x07, 0x80, 0x6f, 0x57, 0xef, 0x27, 0xac, 0xca,
- 0xa5, 0xf5, 0x8d, 0x52, 0x51, 0x53, 0x32, 0x5f, 0x57, 0x60, 0x88, 0xb5, 0xad, 0x55, 0xbb, 0x85,
- 0xf4, 0x3c, 0x28, 0x39, 0x16, 0x0f, 0x6f, 0x4c, 0x6f, 0x25, 0xa7, 0x9f, 0x04, 0x25, 0x1f, 0xdf,
- 0xd5, 0x4a, 0x5e, 0x5f, 0x04, 0xa5, 0xc0, 0x1c, 0x1c, 0xcf, 0x33, 0x4a, 0x21, 0xf3, 0x53, 0x15,
- 0x26, 0x82, 0x6d, 0x34, 0xaf, 0x27, 0xc7, 0xc4, 0xf7, 0xa6, 0xec, 0xe0, 0xa9, 0xc5, 0xd3, 0x4b,
- 0xf3, 0xf8, 0x1f, 0x2f, 0x24, 0x33, 0xe2, 0x2b, 0x54, 0x16, 0x3c, 0x96, 0x53, 0xbd, 0xee, 0x89,
- 0x64, 0x93, 0x01, 0x09, 0x5d, 0xf7, 0x44, 0x04, 0x6a, 0xd7, 0x3d, 0x11, 0x81, 0xda, 0x75, 0x4f,
- 0x44, 0xa0, 0x76, 0x9d, 0x05, 0x08, 0xd4, 0xae, 0x7b, 0x22, 0x02, 0xb5, 0xeb, 0x9e, 0x88, 0x40,
- 0xed, 0xbe, 0x27, 0xc2, 0xc8, 0x3d, 0xef, 0x89, 0x88, 0xf4, 0xee, 0x7b, 0x22, 0x22, 0xbd, 0xfb,
- 0x9e, 0x48, 0x36, 0xe9, 0xb6, 0x3b, 0xa8, 0xf7, 0xa9, 0x83, 0x88, 0xdf, 0xeb, 0x25, 0xd0, 0xaf,
- 0xc0, 0xab, 0x30, 0x46, 0x37, 0x24, 0x0a, 0xb6, 0xe5, 0x9a, 0x75, 0x0b, 0xb5, 0xf5, 0x77, 0xc0,
- 0x30, 0x1d, 0xa2, 0xaf, 0x39, 0x61, 0xaf, 0x81, 0x94, 0xce, 0xea, 0xad, 0xc0, 0x9d, 0xf9, 0x79,
- 0x12, 0x26, 0xe9, 0x40, 0xd9, 0x6c, 0x22, 0xe1, 0x96, 0xd1, 0x09, 0xe9, 0x4c, 0x69, 0x14, 0xc3,
- 0x6f, 0xbe, 0x34, 0x43, 0x47, 0x73, 0x5e, 0x34, 0x9d, 0x90, 0x4e, 0x97, 0x44, 0x3e, 0x7f, 0x01,
- 0x3a, 0x21, 0xdd, 0x3c, 0x12, 0xf9, 0xbc, 0xf5, 0xc6, 0xe3, 0xe3, 0x77, 0x90, 0x44, 0xbe, 0xa2,
- 0x17, 0x65, 0x27, 0xa4, 0xdb, 0x48, 0x22, 0x5f, 0xc9, 0x8b, 0xb7, 0x13, 0xd2, 0xd9, 0x93, 0xc8,
- 0x77, 0xc9, 0x8b, 0xbc, 0x13, 0xd2, 0x29, 0x94, 0xc8, 0x77, 0xd9, 0x8b, 0xc1, 0x13, 0xd2, 0x5d,
- 0x25, 0x91, 0xef, 0x61, 0x2f, 0x1a, 0x4f, 0x48, 0xb7, 0x96, 0x44, 0xbe, 0x65, 0x2f, 0x2e, 0x67,
- 0xe5, 0xfb, 0x4b, 0x22, 0xe3, 0x15, 0x3f, 0x42, 0x67, 0xe5, 0x9b, 0x4c, 0x22, 0xe7, 0x3b, 0xfd,
- 0x58, 0x9d, 0x95, 0xef, 0x34, 0x89, 0x9c, 0x57, 0xfd, 0xa8, 0x9d, 0x95, 0xcf, 0xca, 0x44, 0xce,
- 0x15, 0x3f, 0x7e, 0x67, 0xe5, 0x53, 0x33, 0x91, 0xb3, 0xec, 0x47, 0xf2, 0xac, 0x7c, 0x7e, 0x26,
- 0x72, 0xae, 0xfa, 0x9b, 0xe8, 0xdf, 0x91, 0xc2, 0x2f, 0x70, 0x0b, 0x2a, 0x23, 0x85, 0x1f, 0x84,
- 0x84, 0x9e, 0x54, 0xc8, 0x02, 0x3c, 0x7e, 0xd8, 0x65, 0xa4, 0xb0, 0x83, 0x90, 0x90, 0xcb, 0x48,
- 0x21, 0x07, 0x21, 0xe1, 0x96, 0x91, 0xc2, 0x0d, 0x42, 0x42, 0x2d, 0x23, 0x85, 0x1a, 0x84, 0x84,
- 0x59, 0x46, 0x0a, 0x33, 0x08, 0x09, 0xb1, 0x8c, 0x14, 0x62, 0x10, 0x12, 0x5e, 0x19, 0x29, 0xbc,
- 0x20, 0x24, 0xb4, 0x8e, 0xcb, 0xa1, 0x05, 0x61, 0x61, 0x75, 0x5c, 0x0e, 0x2b, 0x08, 0x0b, 0xa9,
- 0x3b, 0xe5, 0x90, 0x1a, 0xbc, 0xf9, 0xd2, 0x4c, 0x3f, 0x1e, 0x0a, 0x44, 0xd3, 0x71, 0x39, 0x9a,
- 0x20, 0x2c, 0x92, 0x8e, 0xcb, 0x91, 0x04, 0x61, 0x51, 0x74, 0x5c, 0x8e, 0x22, 0x08, 0x8b, 0xa0,
- 0x17, 0xe4, 0x08, 0xf2, 0xef, 0xf8, 0x64, 0xa4, 0x23, 0xc5, 0xa8, 0x08, 0x52, 0x63, 0x44, 0x90,
- 0x1a, 0x23, 0x82, 0xd4, 0x18, 0x11, 0xa4, 0xc6, 0x88, 0x20, 0x35, 0x46, 0x04, 0xa9, 0x31, 0x22,
- 0x48, 0x8d, 0x11, 0x41, 0x6a, 0x9c, 0x08, 0x52, 0x63, 0x45, 0x90, 0xda, 0x2b, 0x82, 0x8e, 0xcb,
- 0x37, 0x1e, 0x20, 0xac, 0x20, 0x1d, 0x97, 0x8f, 0x3e, 0xa3, 0x43, 0x48, 0x8d, 0x15, 0x42, 0x6a,
- 0xaf, 0x10, 0xfa, 0x8e, 0x0a, 0x13, 0x42, 0x08, 0xb1, 0xf3, 0xa1, 0x37, 0xab, 0x02, 0x9d, 0x8d,
- 0x71, 0xc1, 0x22, 0x2c, 0xa6, 0xce, 0xc6, 0x38, 0xa4, 0xde, 0x2b, 0xce, 0xba, 0xab, 0x50, 0x29,
- 0x46, 0x15, 0xba, 0xe4, 0xc5, 0xd0, 0xd9, 0x18, 0x17, 0x2f, 0xba, 0x63, 0xef, 0xfc, 0x5e, 0x45,
- 0xe0, 0xe1, 0x58, 0x45, 0x60, 0x39, 0x56, 0x11, 0xb8, 0xe2, 0x7b, 0xf0, 0x83, 0x09, 0x38, 0xe8,
- 0x7b, 0x90, 0x7e, 0x22, 0xbf, 0x97, 0x95, 0x09, 0x1c, 0x51, 0xe9, 0xfc, 0xd8, 0x26, 0xe0, 0xc6,
- 0xc4, 0x72, 0x4d, 0x5f, 0x13, 0x0f, 0xab, 0xb2, 0xfb, 0x3d, 0xc0, 0x09, 0x78, 0x9c, 0x6d, 0x86,
- 0x1e, 0x07, 0x75, 0xb9, 0xe6, 0x90, 0x6a, 0x11, 0xf6, 0xd8, 0x82, 0x81, 0xc9, 0xba, 0x01, 0x03,
- 0x84, 0xdd, 0x21, 0xee, 0xbd, 0x95, 0x07, 0x17, 0x0d, 0x26, 0x29, 0xf3, 0x82, 0x02, 0x47, 0x85,
- 0x50, 0x7e, 0x73, 0x8e, 0x0c, 0x2e, 0xc6, 0x3a, 0x32, 0x10, 0x12, 0xc4, 0x3f, 0x3e, 0xb8, 0xbb,
- 0xfb, 0xa4, 0x3a, 0x98, 0x25, 0xf2, 0x51, 0xc2, 0xff, 0x81, 0x51, 0x7f, 0x06, 0xe4, 0x9d, 0xed,
- 0x4c, 0xf4, 0x6e, 0x66, 0x58, 0x6a, 0x9e, 0x91, 0x76, 0xd1, 0xf6, 0x84, 0x79, 0xd9, 0x9a, 0xc9,
- 0xc2, 0x58, 0x59, 0xfc, 0x43, 0xa7, 0xa8, 0xcd, 0x88, 0x14, 0x6e, 0xcd, 0x6f, 0x7c, 0x7a, 0xa6,
- 0x2f, 0x73, 0x1f, 0x0c, 0x07, 0xff, 0x96, 0x49, 0x02, 0x0e, 0x72, 0x60, 0x36, 0xf9, 0x22, 0xe6,
- 0xfe, 0x3d, 0x05, 0x0e, 0x05, 0xd9, 0x1f, 0xa9, 0xbb, 0x3b, 0xcb, 0x16, 0xee, 0xe9, 0x1f, 0x80,
- 0x14, 0x62, 0x8e, 0x63, 0x3f, 0x7d, 0xc3, 0xde, 0x23, 0x43, 0xd9, 0xe7, 0xc9, 0xbf, 0x86, 0x07,
- 0x91, 0x76, 0x41, 0xf8, 0x63, 0x17, 0xa7, 0xee, 0x82, 0x7e, 0x2a, 0x5f, 0xd4, 0x6b, 0x44, 0xd2,
- 0xeb, 0x73, 0x21, 0x7a, 0x91, 0x38, 0xd2, 0xaf, 0x08, 0x7a, 0x05, 0x5e, 0x57, 0x43, 0xd9, 0xe7,
- 0x79, 0xf0, 0xe5, 0x53, 0xb8, 0xff, 0x23, 0x11, 0x15, 0xad, 0xe4, 0x2c, 0xa4, 0x4a, 0x32, 0x4f,
- 0xb8, 0x9e, 0x45, 0x48, 0x96, 0xed, 0x1a, 0xf9, 0x51, 0x1e, 0xf2, 0x2b, 0xd4, 0xcc, 0xc8, 0xec,
- 0x27, 0xa9, 0x4f, 0x40, 0xaa, 0xb0, 0x53, 0x6f, 0xd4, 0xda, 0xc8, 0x62, 0x67, 0xf6, 0x6c, 0x0b,
- 0x1d, 0x63, 0x0c, 0x8f, 0x96, 0x29, 0xc0, 0x78, 0xd9, 0xb6, 0xf2, 0xbb, 0x6e, 0xb0, 0x6e, 0xcc,
- 0x4b, 0x29, 0xc2, 0xce, 0x7c, 0xc8, 0xdf, 0x7e, 0x60, 0x86, 0x7c, 0xff, 0xf7, 0x5f, 0x9a, 0x51,
- 0x36, 0xbc, 0xfd, 0xf3, 0x15, 0x38, 0xcc, 0xd2, 0xa7, 0x4b, 0xd4, 0x62, 0x94, 0xa8, 0x41, 0x76,
- 0x4e, 0x1d, 0x10, 0xb7, 0x8c, 0xc5, 0x59, 0xa1, 0xe2, 0xde, 0x98, 0x66, 0xb8, 0x29, 0xda, 0x53,
- 0x33, 0x75, 0x5f, 0x9a, 0x85, 0x8a, 0x9b, 0x8f, 0x12, 0x27, 0x69, 0x76, 0x27, 0x0c, 0x7a, 0xb4,
- 0x40, 0x34, 0x04, 0x33, 0x65, 0x71, 0x2e, 0x03, 0x43, 0x81, 0x84, 0xd5, 0xfb, 0x41, 0xc9, 0x69,
- 0x7d, 0xf8, 0xbf, 0xbc, 0xa6, 0xe0, 0xff, 0x0a, 0x5a, 0x62, 0xee, 0x2e, 0x18, 0x93, 0xf6, 0x2f,
- 0x31, 0xa5, 0xa8, 0x01, 0xfe, 0xaf, 0xa4, 0x0d, 0x4d, 0x25, 0x3f, 0xf4, 0xd9, 0xe9, 0xbe, 0xb9,
- 0x8b, 0xa0, 0x77, 0xef, 0x74, 0xea, 0x03, 0x90, 0xc8, 0x61, 0x91, 0x87, 0x21, 0x91, 0xcf, 0x6b,
- 0xca, 0xd4, 0xd8, 0xaf, 0x7e, 0xf2, 0xe8, 0x50, 0x9e, 0xfc, 0xa1, 0xf6, 0x35, 0xe4, 0xe6, 0xf3,
- 0x0c, 0xfc, 0x20, 0x1c, 0x0a, 0xdd, 0x29, 0xc5, 0xf8, 0x42, 0x81, 0xe2, 0x8b, 0xc5, 0x2e, 0x7c,
- 0xb1, 0x48, 0xf0, 0x4a, 0x96, 0x9f, 0x38, 0xe7, 0xf4, 0x90, 0x5d, 0xc6, 0x74, 0x2d, 0x70, 0xc2,
- 0x9d, 0xcb, 0x3e, 0xc8, 0x78, 0xf3, 0xa1, 0xbc, 0x28, 0xe2, 0xc4, 0x3a, 0x9f, 0x2d, 0x30, 0x7c,
- 0x21, 0x14, 0xbf, 0x25, 0x1d, 0xab, 0x8a, 0x2b, 0x04, 0x13, 0x52, 0xf0, 0x14, 0x2e, 0x86, 0x0a,
- 0xd9, 0x09, 0x5c, 0x76, 0x2f, 0x7a, 0x0a, 0x97, 0x42, 0x79, 0xeb, 0x11, 0x97, 0xbe, 0x4a, 0xd9,
- 0x93, 0x6c, 0x91, 0xcf, 0x9d, 0xd2, 0x0f, 0xf1, 0x1c, 0x15, 0x2a, 0x30, 0x33, 0x10, 0xe7, 0xca,
- 0x16, 0x18, 0x20, 0xdf, 0x13, 0xd0, 0xdb, 0x4a, 0x1c, 0x99, 0x7d, 0x98, 0x09, 0x29, 0xf4, 0x14,
- 0x12, 0x61, 0x2a, 0x0e, 0xcf, 0x6f, 0xdc, 0x78, 0x79, 0xba, 0xef, 0xc5, 0x97, 0xa7, 0xfb, 0xfe,
- 0xe1, 0xe5, 0xe9, 0xbe, 0x1f, 0xbc, 0x3c, 0xad, 0xfc, 0xe8, 0xe5, 0x69, 0xe5, 0x27, 0x2f, 0x4f,
- 0x2b, 0x3f, 0x7b, 0x79, 0x5a, 0x79, 0xe6, 0xe6, 0xb4, 0xf2, 0xfc, 0xcd, 0x69, 0xe5, 0xcb, 0x37,
- 0xa7, 0x95, 0x6f, 0xdc, 0x9c, 0x56, 0x5e, 0xb8, 0x39, 0xad, 0xdc, 0xb8, 0x39, 0xdd, 0xf7, 0xe2,
- 0xcd, 0xe9, 0xbe, 0x1f, 0xdc, 0x9c, 0x56, 0x7e, 0x74, 0x73, 0xba, 0xef, 0x27, 0x37, 0xa7, 0x95,
- 0x9f, 0xdd, 0x9c, 0xee, 0x7b, 0xe6, 0x95, 0xe9, 0xbe, 0xe7, 0x5e, 0x99, 0xee, 0x7b, 0xfe, 0x95,
- 0x69, 0xe5, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x03, 0x1e, 0xc6, 0x1e, 0xd9, 0x68, 0x00, 0x00,
+ // 6753 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x7b, 0x70, 0x1b, 0xd7,
+ 0x75, 0x37, 0x17, 0x0b, 0x52, 0xe0, 0xe1, 0x6b, 0xb9, 0x94, 0x28, 0x98, 0x96, 0x49, 0x09, 0x96,
+ 0x65, 0x9a, 0xb6, 0x29, 0x8a, 0xa2, 0x5e, 0x50, 0x6c, 0x7f, 0x78, 0x49, 0xa6, 0x22, 0x82, 0xcc,
+ 0x92, 0x8c, 0xad, 0xe4, 0xfb, 0x06, 0xb3, 0x02, 0x2e, 0x49, 0xd8, 0xc0, 0x2e, 0x82, 0x5d, 0xd8,
+ 0xa6, 0xe7, 0x9b, 0x6f, 0xfc, 0x25, 0x6d, 0x9a, 0xf4, 0xdd, 0xa6, 0x9d, 0x26, 0x69, 0xe2, 0x38,
+ 0xc9, 0x24, 0x71, 0xd2, 0x57, 0xd2, 0xa6, 0x69, 0x1e, 0x9d, 0xc6, 0xff, 0xa4, 0x55, 0xff, 0xe9,
+ 0x38, 0xfd, 0xab, 0x93, 0xe9, 0x78, 0x62, 0x39, 0x33, 0x4d, 0x5b, 0xb7, 0x4d, 0x53, 0xcf, 0x34,
+ 0x33, 0xce, 0x1f, 0x9d, 0xfb, 0xda, 0xdd, 0x7b, 0xb1, 0xe0, 0x2e, 0x2d, 0xdb, 0xc9, 0x3f, 0x12,
+ 0x70, 0xcf, 0xf9, 0x9d, 0x3d, 0xf7, 0xbc, 0xee, 0xd9, 0x7b, 0x2f, 0x01, 0x37, 0xb2, 0x70, 0x74,
+ 0xdb, 0xb6, 0xb7, 0x1b, 0xe8, 0x64, 0xab, 0x6d, 0xbb, 0xf6, 0xf5, 0xce, 0xd6, 0xc9, 0x1a, 0x72,
+ 0xaa, 0xed, 0x7a, 0xcb, 0xb5, 0xdb, 0xf3, 0x64, 0x4c, 0x1f, 0xa3, 0x1c, 0xf3, 0x9c, 0x23, 0xb3,
+ 0x02, 0xe3, 0x97, 0xea, 0x0d, 0x54, 0xf4, 0x18, 0xd7, 0x91, 0xab, 0x9f, 0x87, 0xe4, 0x56, 0xbd,
+ 0x81, 0xd2, 0xca, 0x51, 0x75, 0x76, 0x68, 0xf1, 0xf8, 0xbc, 0x04, 0x9a, 0x17, 0x11, 0x6b, 0x78,
+ 0xd8, 0x20, 0x88, 0xcc, 0x0f, 0x92, 0x30, 0x11, 0x42, 0xd5, 0x75, 0x48, 0x5a, 0x66, 0x13, 0x4b,
+ 0x54, 0x66, 0x07, 0x0d, 0xf2, 0x59, 0x4f, 0xc3, 0x81, 0x96, 0x59, 0x7d, 0xdc, 0xdc, 0x46, 0xe9,
+ 0x04, 0x19, 0xe6, 0x5f, 0xf5, 0x69, 0x80, 0x1a, 0x6a, 0x21, 0xab, 0x86, 0xac, 0xea, 0x6e, 0x5a,
+ 0x3d, 0xaa, 0xce, 0x0e, 0x1a, 0x81, 0x11, 0xfd, 0x5e, 0x18, 0x6f, 0x75, 0xae, 0x37, 0xea, 0xd5,
+ 0x4a, 0x80, 0x0d, 0x8e, 0xaa, 0xb3, 0xfd, 0x86, 0x46, 0x09, 0x45, 0x9f, 0xf9, 0x6e, 0x18, 0x7b,
+ 0x12, 0x99, 0x8f, 0x07, 0x59, 0x87, 0x08, 0xeb, 0x28, 0x1e, 0x0e, 0x30, 0x16, 0x60, 0xb8, 0x89,
+ 0x1c, 0xc7, 0xdc, 0x46, 0x15, 0x77, 0xb7, 0x85, 0xd2, 0x49, 0x32, 0xfb, 0xa3, 0x5d, 0xb3, 0x97,
+ 0x67, 0x3e, 0xc4, 0x50, 0x1b, 0xbb, 0x2d, 0xa4, 0xe7, 0x60, 0x10, 0x59, 0x9d, 0x26, 0x95, 0xd0,
+ 0xdf, 0xc3, 0x7e, 0x25, 0xab, 0xd3, 0x94, 0xa5, 0xa4, 0x30, 0x8c, 0x89, 0x38, 0xe0, 0xa0, 0xf6,
+ 0x13, 0xf5, 0x2a, 0x4a, 0x0f, 0x10, 0x01, 0x77, 0x77, 0x09, 0x58, 0xa7, 0x74, 0x59, 0x06, 0xc7,
+ 0xe9, 0x05, 0x18, 0x44, 0x4f, 0xb9, 0xc8, 0x72, 0xea, 0xb6, 0x95, 0x3e, 0x40, 0x84, 0xdc, 0x15,
+ 0xe2, 0x45, 0xd4, 0xa8, 0xc9, 0x22, 0x7c, 0x9c, 0x7e, 0x16, 0x0e, 0xd8, 0x2d, 0xb7, 0x6e, 0x5b,
+ 0x4e, 0x3a, 0x75, 0x54, 0x99, 0x1d, 0x5a, 0x3c, 0x12, 0x1a, 0x08, 0xab, 0x94, 0xc7, 0xe0, 0xcc,
+ 0xfa, 0x32, 0x68, 0x8e, 0xdd, 0x69, 0x57, 0x51, 0xa5, 0x6a, 0xd7, 0x50, 0xa5, 0x6e, 0x6d, 0xd9,
+ 0xe9, 0x41, 0x22, 0x60, 0xa6, 0x7b, 0x22, 0x84, 0xb1, 0x60, 0xd7, 0xd0, 0xb2, 0xb5, 0x65, 0x1b,
+ 0xa3, 0x8e, 0xf0, 0x5d, 0x9f, 0x84, 0x01, 0x67, 0xd7, 0x72, 0xcd, 0xa7, 0xd2, 0xc3, 0x24, 0x42,
+ 0xd8, 0xb7, 0xcc, 0x37, 0x06, 0x60, 0x2c, 0x4e, 0x88, 0x5d, 0x84, 0xfe, 0x2d, 0x3c, 0xcb, 0x74,
+ 0x62, 0x3f, 0x36, 0xa0, 0x18, 0xd1, 0x88, 0x03, 0x6f, 0xd0, 0x88, 0x39, 0x18, 0xb2, 0x90, 0xe3,
+ 0xa2, 0x1a, 0x8d, 0x08, 0x35, 0x66, 0x4c, 0x01, 0x05, 0x75, 0x87, 0x54, 0xf2, 0x0d, 0x85, 0xd4,
+ 0xa3, 0x30, 0xe6, 0xa9, 0x54, 0x69, 0x9b, 0xd6, 0x36, 0x8f, 0xcd, 0x93, 0x51, 0x9a, 0xcc, 0x97,
+ 0x38, 0xce, 0xc0, 0x30, 0x63, 0x14, 0x09, 0xdf, 0xf5, 0x22, 0x80, 0x6d, 0x21, 0x7b, 0xab, 0x52,
+ 0x43, 0xd5, 0x46, 0x3a, 0xd5, 0xc3, 0x4a, 0xab, 0x98, 0xa5, 0xcb, 0x4a, 0x36, 0x1d, 0xad, 0x36,
+ 0xf4, 0x0b, 0x7e, 0xa8, 0x1d, 0xe8, 0x11, 0x29, 0x2b, 0x34, 0xc9, 0xba, 0xa2, 0x6d, 0x13, 0x46,
+ 0xdb, 0x08, 0xc7, 0x3d, 0xaa, 0xb1, 0x99, 0x0d, 0x12, 0x25, 0xe6, 0x23, 0x67, 0x66, 0x30, 0x18,
+ 0x9d, 0xd8, 0x48, 0x3b, 0xf8, 0x55, 0xbf, 0x13, 0xbc, 0x81, 0x0a, 0x09, 0x2b, 0x20, 0x55, 0x68,
+ 0x98, 0x0f, 0x96, 0xcd, 0x26, 0x9a, 0x7a, 0x1a, 0x46, 0x45, 0xf3, 0xe8, 0x07, 0xa1, 0xdf, 0x71,
+ 0xcd, 0xb6, 0x4b, 0xa2, 0xb0, 0xdf, 0xa0, 0x5f, 0x74, 0x0d, 0x54, 0x64, 0xd5, 0x48, 0x95, 0xeb,
+ 0x37, 0xf0, 0x47, 0xfd, 0x7f, 0xf9, 0x13, 0x56, 0xc9, 0x84, 0x4f, 0x74, 0x7b, 0x54, 0x90, 0x2c,
+ 0xcf, 0x7b, 0xea, 0x1c, 0x8c, 0x08, 0x13, 0x88, 0xfb, 0xe8, 0xcc, 0xff, 0x85, 0x43, 0xa1, 0xa2,
+ 0xf5, 0x47, 0xe1, 0x60, 0xc7, 0xaa, 0x5b, 0x2e, 0x6a, 0xb7, 0xda, 0x08, 0x47, 0x2c, 0x7d, 0x54,
+ 0xfa, 0x9f, 0x0e, 0xf4, 0x88, 0xb9, 0xcd, 0x20, 0x37, 0x95, 0x62, 0x4c, 0x74, 0xba, 0x07, 0xe7,
+ 0x06, 0x53, 0x3f, 0x3c, 0xa0, 0x3d, 0xf3, 0xcc, 0x33, 0xcf, 0x24, 0x32, 0x1f, 0x1d, 0x80, 0x83,
+ 0x61, 0x39, 0x13, 0x9a, 0xbe, 0x93, 0x30, 0x60, 0x75, 0x9a, 0xd7, 0x51, 0x9b, 0x18, 0xa9, 0xdf,
+ 0x60, 0xdf, 0xf4, 0x1c, 0xf4, 0x37, 0xcc, 0xeb, 0xa8, 0x91, 0x4e, 0x1e, 0x55, 0x66, 0x47, 0x17,
+ 0xef, 0x8d, 0x95, 0x95, 0xf3, 0x57, 0x31, 0xc4, 0xa0, 0x48, 0xfd, 0x41, 0x48, 0xb2, 0x12, 0x8d,
+ 0x25, 0xcc, 0xc5, 0x93, 0x80, 0x73, 0xc9, 0x20, 0x38, 0xfd, 0x76, 0x18, 0xc4, 0xff, 0xd3, 0xd8,
+ 0x18, 0x20, 0x3a, 0xa7, 0xf0, 0x00, 0x8e, 0x0b, 0x7d, 0x0a, 0x52, 0x24, 0x4d, 0x6a, 0x88, 0x2f,
+ 0x6d, 0xde, 0x77, 0x1c, 0x58, 0x35, 0xb4, 0x65, 0x76, 0x1a, 0x6e, 0xe5, 0x09, 0xb3, 0xd1, 0x41,
+ 0x24, 0xe0, 0x07, 0x8d, 0x61, 0x36, 0xf8, 0x6e, 0x3c, 0xa6, 0xcf, 0xc0, 0x10, 0xcd, 0xaa, 0xba,
+ 0x55, 0x43, 0x4f, 0x91, 0xea, 0xd9, 0x6f, 0xd0, 0x44, 0x5b, 0xc6, 0x23, 0xf8, 0xf1, 0x8f, 0x39,
+ 0xb6, 0xc5, 0x43, 0x93, 0x3c, 0x02, 0x0f, 0x90, 0xc7, 0x9f, 0x93, 0x0b, 0xf7, 0x1d, 0xe1, 0xd3,
+ 0x93, 0x63, 0x2a, 0xf3, 0xb5, 0x04, 0x24, 0x49, 0xbd, 0x18, 0x83, 0xa1, 0x8d, 0x6b, 0x6b, 0xa5,
+ 0x4a, 0x71, 0x75, 0x33, 0x7f, 0xb5, 0xa4, 0x29, 0xfa, 0x28, 0x00, 0x19, 0xb8, 0x74, 0x75, 0x35,
+ 0xb7, 0xa1, 0x25, 0xbc, 0xef, 0xcb, 0xe5, 0x8d, 0xb3, 0x4b, 0x9a, 0xea, 0x01, 0x36, 0xe9, 0x40,
+ 0x32, 0xc8, 0x70, 0x7a, 0x51, 0xeb, 0xd7, 0x35, 0x18, 0xa6, 0x02, 0x96, 0x1f, 0x2d, 0x15, 0xcf,
+ 0x2e, 0x69, 0x03, 0xe2, 0xc8, 0xe9, 0x45, 0xed, 0x80, 0x3e, 0x02, 0x83, 0x64, 0x24, 0xbf, 0xba,
+ 0x7a, 0x55, 0x4b, 0x79, 0x32, 0xd7, 0x37, 0x8c, 0xe5, 0xf2, 0x65, 0x6d, 0xd0, 0x93, 0x79, 0xd9,
+ 0x58, 0xdd, 0x5c, 0xd3, 0xc0, 0x93, 0xb0, 0x52, 0x5a, 0x5f, 0xcf, 0x5d, 0x2e, 0x69, 0x43, 0x1e,
+ 0x47, 0xfe, 0xda, 0x46, 0x69, 0x5d, 0x1b, 0x16, 0xd4, 0x3a, 0xbd, 0xa8, 0x8d, 0x78, 0x8f, 0x28,
+ 0x95, 0x37, 0x57, 0xb4, 0x51, 0x7d, 0x1c, 0x46, 0xe8, 0x23, 0xb8, 0x12, 0x63, 0xd2, 0xd0, 0xd9,
+ 0x25, 0x4d, 0xf3, 0x15, 0xa1, 0x52, 0xc6, 0x85, 0x81, 0xb3, 0x4b, 0x9a, 0x9e, 0x29, 0x40, 0x3f,
+ 0x89, 0x2e, 0x5d, 0x87, 0xd1, 0xab, 0xb9, 0x7c, 0xe9, 0x6a, 0x65, 0x75, 0x6d, 0x63, 0x79, 0xb5,
+ 0x9c, 0xbb, 0xaa, 0x29, 0xfe, 0x98, 0x51, 0x7a, 0xd7, 0xe6, 0xb2, 0x51, 0x2a, 0x6a, 0x89, 0xe0,
+ 0xd8, 0x5a, 0x29, 0xb7, 0x51, 0x2a, 0x6a, 0x6a, 0xa6, 0x0a, 0x07, 0xc3, 0xea, 0x64, 0x68, 0x66,
+ 0x04, 0x5c, 0x9c, 0xe8, 0xe1, 0x62, 0x22, 0xab, 0xcb, 0xc5, 0xaf, 0x24, 0x60, 0x22, 0x64, 0xad,
+ 0x08, 0x7d, 0xc8, 0x43, 0xd0, 0x4f, 0x43, 0x94, 0xae, 0x9e, 0xf7, 0x84, 0x2e, 0x3a, 0x24, 0x60,
+ 0xbb, 0x56, 0x50, 0x82, 0x0b, 0x76, 0x10, 0x6a, 0x8f, 0x0e, 0x02, 0x8b, 0xe8, 0xaa, 0xe9, 0xff,
+ 0xa7, 0xab, 0xa6, 0xd3, 0x65, 0xef, 0x6c, 0x9c, 0x65, 0x8f, 0x8c, 0xed, 0xaf, 0xb6, 0xf7, 0x87,
+ 0xd4, 0xf6, 0x8b, 0x30, 0xde, 0x25, 0x28, 0x76, 0x8d, 0xfd, 0x80, 0x02, 0xe9, 0x5e, 0xc6, 0x89,
+ 0xa8, 0x74, 0x09, 0xa1, 0xd2, 0x5d, 0x94, 0x2d, 0x78, 0xac, 0xb7, 0x13, 0xba, 0x7c, 0xfd, 0x05,
+ 0x05, 0x26, 0xc3, 0x3b, 0xc5, 0x50, 0x1d, 0x1e, 0x84, 0x81, 0x26, 0x72, 0x77, 0x6c, 0xde, 0x2d,
+ 0x9d, 0x08, 0x59, 0x83, 0x31, 0x59, 0x76, 0x36, 0x43, 0x05, 0x17, 0x71, 0xb5, 0x57, 0xbb, 0x47,
+ 0xb5, 0xe9, 0xd2, 0xf4, 0xc3, 0x09, 0x38, 0x14, 0x2a, 0x3c, 0x54, 0xd1, 0x3b, 0x00, 0xea, 0x56,
+ 0xab, 0xe3, 0xd2, 0x8e, 0x88, 0x16, 0xd8, 0x41, 0x32, 0x42, 0x8a, 0x17, 0x2e, 0x9e, 0x1d, 0xd7,
+ 0xa3, 0xab, 0x84, 0x0e, 0x74, 0x88, 0x30, 0x9c, 0xf7, 0x15, 0x4d, 0x12, 0x45, 0xa7, 0x7b, 0xcc,
+ 0xb4, 0x2b, 0x30, 0x17, 0x40, 0xab, 0x36, 0xea, 0xc8, 0x72, 0x2b, 0x8e, 0xdb, 0x46, 0x66, 0xb3,
+ 0x6e, 0x6d, 0x93, 0x15, 0x24, 0x95, 0xed, 0xdf, 0x32, 0x1b, 0x0e, 0x32, 0xc6, 0x28, 0x79, 0x9d,
+ 0x53, 0x31, 0x82, 0x04, 0x50, 0x3b, 0x80, 0x18, 0x10, 0x10, 0x94, 0xec, 0x21, 0x32, 0xbf, 0x3a,
+ 0x08, 0x43, 0x81, 0xbe, 0x5a, 0x3f, 0x06, 0xc3, 0x8f, 0x99, 0x4f, 0x98, 0x15, 0xfe, 0xae, 0x44,
+ 0x2d, 0x31, 0x84, 0xc7, 0xd6, 0xd8, 0xfb, 0xd2, 0x02, 0x1c, 0x24, 0x2c, 0x76, 0xc7, 0x45, 0xed,
+ 0x4a, 0xb5, 0x61, 0x3a, 0x0e, 0x31, 0x5a, 0x8a, 0xb0, 0xea, 0x98, 0xb6, 0x8a, 0x49, 0x05, 0x4e,
+ 0xd1, 0xcf, 0xc0, 0x04, 0x41, 0x34, 0x3b, 0x0d, 0xb7, 0xde, 0x6a, 0xa0, 0x0a, 0x7e, 0x7b, 0x73,
+ 0xc8, 0x4a, 0xe2, 0x69, 0x36, 0x8e, 0x39, 0x56, 0x18, 0x03, 0xd6, 0xc8, 0xd1, 0x8b, 0x70, 0x07,
+ 0x81, 0x6d, 0x23, 0x0b, 0xb5, 0x4d, 0x17, 0x55, 0xd0, 0xfb, 0x3a, 0x66, 0xc3, 0xa9, 0x98, 0x56,
+ 0xad, 0xb2, 0x63, 0x3a, 0x3b, 0xe9, 0x83, 0x58, 0x40, 0x3e, 0x91, 0x56, 0x8c, 0xdb, 0x30, 0xe3,
+ 0x65, 0xc6, 0x57, 0x22, 0x6c, 0x39, 0xab, 0xf6, 0xb0, 0xe9, 0xec, 0xe8, 0x59, 0x98, 0x24, 0x52,
+ 0x1c, 0xb7, 0x5d, 0xb7, 0xb6, 0x2b, 0xd5, 0x1d, 0x54, 0x7d, 0xbc, 0xd2, 0x71, 0xb7, 0xce, 0xa7,
+ 0x6f, 0x0f, 0x3e, 0x9f, 0x68, 0xb8, 0x4e, 0x78, 0x0a, 0x98, 0x65, 0xd3, 0xdd, 0x3a, 0xaf, 0xaf,
+ 0xc3, 0x30, 0x76, 0x46, 0xb3, 0xfe, 0x34, 0xaa, 0x6c, 0xd9, 0x6d, 0xb2, 0x34, 0x8e, 0x86, 0x94,
+ 0xa6, 0x80, 0x05, 0xe7, 0x57, 0x19, 0x60, 0xc5, 0xae, 0xa1, 0x6c, 0xff, 0xfa, 0x5a, 0xa9, 0x54,
+ 0x34, 0x86, 0xb8, 0x94, 0x4b, 0x76, 0x1b, 0x07, 0xd4, 0xb6, 0xed, 0x19, 0x78, 0x88, 0x06, 0xd4,
+ 0xb6, 0xcd, 0xcd, 0x7b, 0x06, 0x26, 0xaa, 0x55, 0x3a, 0xe7, 0x7a, 0xb5, 0xc2, 0xde, 0xb1, 0x9c,
+ 0xb4, 0x26, 0x18, 0xab, 0x5a, 0xbd, 0x4c, 0x19, 0x58, 0x8c, 0x3b, 0xfa, 0x05, 0x38, 0xe4, 0x1b,
+ 0x2b, 0x08, 0x1c, 0xef, 0x9a, 0xa5, 0x0c, 0x3d, 0x03, 0x13, 0xad, 0xdd, 0x6e, 0xa0, 0x2e, 0x3c,
+ 0xb1, 0xb5, 0x2b, 0xc3, 0xce, 0xc1, 0xc1, 0xd6, 0x4e, 0xab, 0x1b, 0x37, 0x17, 0xc4, 0xe9, 0xad,
+ 0x9d, 0x96, 0x0c, 0xbc, 0x8b, 0xbc, 0x70, 0xb7, 0x51, 0xd5, 0x74, 0x51, 0x2d, 0x7d, 0x38, 0xc8,
+ 0x1e, 0x20, 0xe8, 0x27, 0x41, 0xab, 0x56, 0x2b, 0xc8, 0x32, 0xaf, 0x37, 0x50, 0xc5, 0x6c, 0x23,
+ 0xcb, 0x74, 0xd2, 0x33, 0x41, 0xe6, 0xd1, 0x6a, 0xb5, 0x44, 0xa8, 0x39, 0x42, 0xd4, 0xe7, 0x60,
+ 0xdc, 0xbe, 0xfe, 0x58, 0x95, 0x86, 0x64, 0xa5, 0xd5, 0x46, 0x5b, 0xf5, 0xa7, 0xd2, 0xc7, 0x89,
+ 0x7d, 0xc7, 0x30, 0x81, 0x04, 0xe4, 0x1a, 0x19, 0xd6, 0xef, 0x01, 0xad, 0xea, 0xec, 0x98, 0xed,
+ 0x16, 0xa9, 0xc9, 0x4e, 0xcb, 0xac, 0xa2, 0xf4, 0x5d, 0x94, 0x95, 0x8e, 0x97, 0xf9, 0x30, 0x4e,
+ 0x09, 0xe7, 0xc9, 0xfa, 0x96, 0xcb, 0x25, 0xde, 0x4d, 0x53, 0x82, 0x8c, 0x31, 0x69, 0xb3, 0xa0,
+ 0x61, 0x53, 0x08, 0x0f, 0x9e, 0x25, 0x6c, 0xa3, 0xad, 0x9d, 0x56, 0xf0, 0xb9, 0x77, 0xc2, 0x08,
+ 0xe6, 0xf4, 0x1f, 0x7a, 0x0f, 0x6d, 0xc8, 0x5a, 0x3b, 0x81, 0x27, 0x2e, 0xc1, 0x24, 0x66, 0x6a,
+ 0x22, 0xd7, 0xac, 0x99, 0xae, 0x19, 0xe0, 0xbe, 0x8f, 0x70, 0x63, 0xbb, 0xaf, 0x30, 0xa2, 0xa0,
+ 0x67, 0xbb, 0x73, 0x7d, 0xd7, 0x8b, 0xac, 0xfb, 0xa9, 0x9e, 0x78, 0x8c, 0xc7, 0xd6, 0x5b, 0xd6,
+ 0x74, 0x67, 0xb2, 0x30, 0x1c, 0x0c, 0x7c, 0x7d, 0x10, 0x68, 0xe8, 0x6b, 0x0a, 0xee, 0x82, 0x0a,
+ 0xab, 0x45, 0xdc, 0xbf, 0xbc, 0xa7, 0xa4, 0x25, 0x70, 0x1f, 0x75, 0x75, 0x79, 0xa3, 0x54, 0x31,
+ 0x36, 0xcb, 0x1b, 0xcb, 0x2b, 0x25, 0x4d, 0x0d, 0x36, 0xec, 0xdf, 0x49, 0xc0, 0xa8, 0xf8, 0xee,
+ 0xa5, 0xbf, 0x03, 0x0e, 0xf3, 0x8d, 0x12, 0x07, 0xb9, 0x95, 0x27, 0xeb, 0x6d, 0x92, 0x8b, 0x4d,
+ 0x93, 0xae, 0x8b, 0x5e, 0x34, 0x1c, 0x64, 0x5c, 0xeb, 0xc8, 0x7d, 0xa4, 0xde, 0xc6, 0x99, 0xd6,
+ 0x34, 0x5d, 0xfd, 0x2a, 0xcc, 0x58, 0x76, 0xc5, 0x71, 0x4d, 0xab, 0x66, 0xb6, 0x6b, 0x15, 0x7f,
+ 0x8b, 0xaa, 0x62, 0x56, 0xab, 0xc8, 0x71, 0x6c, 0xba, 0x06, 0x7a, 0x52, 0x8e, 0x58, 0xf6, 0x3a,
+ 0x63, 0xf6, 0x17, 0x87, 0x1c, 0x63, 0x95, 0x22, 0x57, 0xed, 0x15, 0xb9, 0xb7, 0xc3, 0x60, 0xd3,
+ 0x6c, 0x55, 0x90, 0xe5, 0xb6, 0x77, 0x49, 0xc7, 0x9d, 0x32, 0x52, 0x4d, 0xb3, 0x55, 0xc2, 0xdf,
+ 0xdf, 0x9e, 0x17, 0x9f, 0x7f, 0x54, 0x61, 0x38, 0xd8, 0x75, 0xe3, 0x97, 0x98, 0x2a, 0x59, 0xa0,
+ 0x14, 0x52, 0xc2, 0xee, 0xdc, 0xb3, 0x47, 0x9f, 0x2f, 0xe0, 0x95, 0x2b, 0x3b, 0x40, 0x7b, 0x61,
+ 0x83, 0x22, 0x71, 0xd7, 0x80, 0x43, 0x0b, 0xd1, 0xde, 0x23, 0x65, 0xb0, 0x6f, 0xfa, 0x65, 0x18,
+ 0x78, 0xcc, 0x21, 0xb2, 0x07, 0x88, 0xec, 0xe3, 0x7b, 0xcb, 0xbe, 0xb2, 0x4e, 0x84, 0x0f, 0x5e,
+ 0x59, 0xaf, 0x94, 0x57, 0x8d, 0x95, 0xdc, 0x55, 0x83, 0xc1, 0xf5, 0xdb, 0x20, 0xd9, 0x30, 0x9f,
+ 0xde, 0x15, 0xd7, 0x38, 0x32, 0x14, 0xd7, 0xf0, 0xb7, 0x41, 0xf2, 0x49, 0x64, 0x3e, 0x2e, 0xae,
+ 0x2c, 0x64, 0xe8, 0x2d, 0x0c, 0xfd, 0x93, 0xd0, 0x4f, 0xec, 0xa5, 0x03, 0x30, 0x8b, 0x69, 0x7d,
+ 0x7a, 0x0a, 0x92, 0x85, 0x55, 0x03, 0x87, 0xbf, 0x06, 0xc3, 0x74, 0xb4, 0xb2, 0xb6, 0x5c, 0x2a,
+ 0x94, 0xb4, 0x44, 0xe6, 0x0c, 0x0c, 0x50, 0x23, 0xe0, 0xd4, 0xf0, 0xcc, 0xa0, 0xf5, 0xb1, 0xaf,
+ 0x4c, 0x86, 0xc2, 0xa9, 0x9b, 0x2b, 0xf9, 0x92, 0xa1, 0x25, 0x82, 0xee, 0x75, 0x60, 0x38, 0xd8,
+ 0x70, 0xbf, 0x3d, 0x31, 0xf5, 0x4d, 0x05, 0x86, 0x02, 0x0d, 0x34, 0xee, 0x7c, 0xcc, 0x46, 0xc3,
+ 0x7e, 0xb2, 0x62, 0x36, 0xea, 0xa6, 0xc3, 0x82, 0x02, 0xc8, 0x50, 0x0e, 0x8f, 0xc4, 0x75, 0xda,
+ 0xdb, 0xa2, 0xfc, 0xb3, 0x0a, 0x68, 0x72, 0xef, 0x2a, 0x29, 0xa8, 0xfc, 0x4c, 0x15, 0xfc, 0x84,
+ 0x02, 0xa3, 0x62, 0xc3, 0x2a, 0xa9, 0x77, 0xec, 0x67, 0xaa, 0xde, 0xf7, 0x13, 0x30, 0x22, 0xb4,
+ 0xa9, 0x71, 0xb5, 0x7b, 0x1f, 0x8c, 0xd7, 0x6b, 0xa8, 0xd9, 0xb2, 0x5d, 0x64, 0x55, 0x77, 0x2b,
+ 0x0d, 0xf4, 0x04, 0x6a, 0xa4, 0x33, 0xa4, 0x50, 0x9c, 0xdc, 0xbb, 0x11, 0x9e, 0x5f, 0xf6, 0x71,
+ 0x57, 0x31, 0x2c, 0x3b, 0xb1, 0x5c, 0x2c, 0xad, 0xac, 0xad, 0x6e, 0x94, 0xca, 0x85, 0x6b, 0x95,
+ 0xcd, 0xf2, 0x3b, 0xcb, 0xab, 0x8f, 0x94, 0x0d, 0xad, 0x2e, 0xb1, 0xbd, 0x85, 0xa9, 0xbe, 0x06,
+ 0x9a, 0xac, 0x94, 0x7e, 0x18, 0xc2, 0xd4, 0xd2, 0xfa, 0xf4, 0x09, 0x18, 0x2b, 0xaf, 0x56, 0xd6,
+ 0x97, 0x8b, 0xa5, 0x4a, 0xe9, 0xd2, 0xa5, 0x52, 0x61, 0x63, 0x9d, 0x6e, 0x6d, 0x78, 0xdc, 0x1b,
+ 0x62, 0x52, 0x7f, 0x5c, 0x85, 0x89, 0x10, 0x4d, 0xf4, 0x1c, 0x7b, 0x29, 0xa1, 0xef, 0x49, 0xf7,
+ 0xc7, 0xd1, 0x7e, 0x1e, 0x77, 0x05, 0x6b, 0x66, 0xdb, 0x65, 0xef, 0x30, 0xf7, 0x00, 0xb6, 0x92,
+ 0xe5, 0xd6, 0xb7, 0xea, 0xa8, 0xcd, 0x76, 0x82, 0xe8, 0x9b, 0xca, 0x98, 0x3f, 0x4e, 0x37, 0x83,
+ 0xee, 0x03, 0xbd, 0x65, 0x3b, 0x75, 0xb7, 0xfe, 0x04, 0xaa, 0xd4, 0x2d, 0xbe, 0x6d, 0x84, 0xdf,
+ 0x5c, 0x92, 0x86, 0xc6, 0x29, 0xcb, 0x96, 0xeb, 0x71, 0x5b, 0x68, 0xdb, 0x94, 0xb8, 0x71, 0x01,
+ 0x57, 0x0d, 0x8d, 0x53, 0x3c, 0xee, 0x63, 0x30, 0x5c, 0xb3, 0x3b, 0xb8, 0x9d, 0xa3, 0x7c, 0x78,
+ 0xbd, 0x50, 0x8c, 0x21, 0x3a, 0xe6, 0xb1, 0xb0, 0x46, 0xdd, 0xdf, 0xaf, 0x1a, 0x36, 0x86, 0xe8,
+ 0x18, 0x65, 0xb9, 0x1b, 0xc6, 0xcc, 0xed, 0xed, 0x36, 0x16, 0xce, 0x05, 0xd1, 0x57, 0x8f, 0x51,
+ 0x6f, 0x98, 0x30, 0x4e, 0x5d, 0x81, 0x14, 0xb7, 0x03, 0x5e, 0x92, 0xb1, 0x25, 0x2a, 0x2d, 0xfa,
+ 0x3e, 0x9d, 0x98, 0x1d, 0x34, 0x52, 0x16, 0x27, 0x1e, 0x83, 0xe1, 0xba, 0x53, 0xf1, 0xb7, 0xdf,
+ 0x13, 0x47, 0x13, 0xb3, 0x29, 0x63, 0xa8, 0xee, 0x78, 0x5b, 0x97, 0x99, 0x2f, 0x24, 0x60, 0x54,
+ 0x3c, 0x3e, 0xd0, 0x8b, 0x90, 0x6a, 0xd8, 0x55, 0x93, 0x84, 0x16, 0x3d, 0xbb, 0x9a, 0x8d, 0x38,
+ 0x71, 0x98, 0xbf, 0xca, 0xf8, 0x0d, 0x0f, 0x39, 0xf5, 0x77, 0x0a, 0xa4, 0xf8, 0xb0, 0x3e, 0x09,
+ 0xc9, 0x96, 0xe9, 0xee, 0x10, 0x71, 0xfd, 0xf9, 0x84, 0xa6, 0x18, 0xe4, 0x3b, 0x1e, 0x77, 0x5a,
+ 0xa6, 0x45, 0x42, 0x80, 0x8d, 0xe3, 0xef, 0xd8, 0xaf, 0x0d, 0x64, 0xd6, 0xc8, 0x7b, 0x8d, 0xdd,
+ 0x6c, 0x22, 0xcb, 0x75, 0xb8, 0x5f, 0xd9, 0x78, 0x81, 0x0d, 0xeb, 0xf7, 0xc2, 0xb8, 0xdb, 0x36,
+ 0xeb, 0x0d, 0x81, 0x37, 0x49, 0x78, 0x35, 0x4e, 0xf0, 0x98, 0xb3, 0x70, 0x1b, 0x97, 0x5b, 0x43,
+ 0xae, 0x59, 0xdd, 0x41, 0x35, 0x1f, 0x34, 0x40, 0xf6, 0x2f, 0x0e, 0x33, 0x86, 0x22, 0xa3, 0x73,
+ 0x6c, 0xe6, 0xbb, 0x0a, 0x8c, 0xf3, 0x37, 0xb1, 0x9a, 0x67, 0xac, 0x15, 0x00, 0xd3, 0xb2, 0x6c,
+ 0x37, 0x68, 0xae, 0xee, 0x50, 0xee, 0xc2, 0xcd, 0xe7, 0x3c, 0x90, 0x11, 0x10, 0x30, 0xd5, 0x04,
+ 0xf0, 0x29, 0x3d, 0xcd, 0x36, 0x03, 0x43, 0xec, 0x6c, 0x88, 0x1c, 0x30, 0xd2, 0x77, 0x77, 0xa0,
+ 0x43, 0xf8, 0x95, 0x4d, 0x3f, 0x08, 0xfd, 0xd7, 0xd1, 0x76, 0xdd, 0x62, 0x3b, 0xbe, 0xf4, 0x0b,
+ 0xdf, 0x61, 0x49, 0x7a, 0x3b, 0x2c, 0xf9, 0xf7, 0xc2, 0x44, 0xd5, 0x6e, 0xca, 0xea, 0xe6, 0x35,
+ 0x69, 0xff, 0xc0, 0x79, 0x58, 0x79, 0x0f, 0xf8, 0x2d, 0xe6, 0x4f, 0x14, 0xe5, 0x33, 0x09, 0xf5,
+ 0xf2, 0x5a, 0xfe, 0x4b, 0x89, 0xa9, 0xcb, 0x14, 0xba, 0xc6, 0x67, 0x6a, 0xa0, 0xad, 0x06, 0xaa,
+ 0x62, 0xed, 0xe1, 0xf3, 0xf7, 0xc2, 0xfd, 0xdb, 0x75, 0x77, 0xa7, 0x73, 0x7d, 0xbe, 0x6a, 0x37,
+ 0x4f, 0x6e, 0xdb, 0xdb, 0xb6, 0x7f, 0xa6, 0x8a, 0xbf, 0x91, 0x2f, 0xe4, 0x13, 0x3b, 0x57, 0x1d,
+ 0xf4, 0x46, 0xa7, 0x22, 0x0f, 0x61, 0xb3, 0x65, 0x98, 0x60, 0xcc, 0x15, 0x72, 0xb0, 0x43, 0x5f,
+ 0x4f, 0xf4, 0x3d, 0x37, 0xc7, 0xd2, 0x5f, 0xf9, 0x01, 0x59, 0xae, 0x8d, 0x71, 0x06, 0xc5, 0x34,
+ 0xfa, 0x06, 0x93, 0x35, 0xe0, 0x90, 0x20, 0x8f, 0xa6, 0x26, 0x6a, 0x47, 0x48, 0xfc, 0x0e, 0x93,
+ 0x38, 0x11, 0x90, 0xb8, 0xce, 0xa0, 0xd9, 0x02, 0x8c, 0xec, 0x47, 0xd6, 0x5f, 0x33, 0x59, 0xc3,
+ 0x28, 0x28, 0xe4, 0x32, 0x8c, 0x11, 0x21, 0xd5, 0x8e, 0xe3, 0xda, 0x4d, 0x52, 0xf7, 0xf6, 0x16,
+ 0xf3, 0x37, 0x3f, 0xa0, 0xb9, 0x32, 0x8a, 0x61, 0x05, 0x0f, 0x95, 0xcd, 0x02, 0x39, 0xcb, 0xaa,
+ 0xa1, 0x6a, 0x23, 0x42, 0xc2, 0x0d, 0xa6, 0x88, 0xc7, 0x9f, 0x7d, 0x37, 0x1c, 0xc4, 0x9f, 0x49,
+ 0x59, 0x0a, 0x6a, 0x12, 0xbd, 0x93, 0x96, 0xfe, 0xee, 0x07, 0x68, 0x3a, 0x4e, 0x78, 0x02, 0x02,
+ 0x3a, 0x05, 0xbc, 0xb8, 0x8d, 0x5c, 0x17, 0xb5, 0x9d, 0x8a, 0xd9, 0x08, 0x53, 0x2f, 0xb0, 0x15,
+ 0x91, 0xfe, 0xd8, 0xab, 0xa2, 0x17, 0x2f, 0x53, 0x64, 0xae, 0xd1, 0xc8, 0x6e, 0xc2, 0xe1, 0x90,
+ 0xa8, 0x88, 0x21, 0xf3, 0xe3, 0x4c, 0xe6, 0xc1, 0xae, 0xc8, 0xc0, 0x62, 0xd7, 0x80, 0x8f, 0x7b,
+ 0xbe, 0x8c, 0x21, 0xf3, 0xf7, 0x99, 0x4c, 0x9d, 0x61, 0xb9, 0x4b, 0xb1, 0xc4, 0x2b, 0x30, 0xfe,
+ 0x04, 0x6a, 0x5f, 0xb7, 0x1d, 0xb6, 0xfd, 0x13, 0x43, 0xdc, 0x27, 0x98, 0xb8, 0x31, 0x06, 0x24,
+ 0xfb, 0x41, 0x58, 0xd6, 0x05, 0x48, 0x6d, 0x99, 0x55, 0x14, 0x43, 0xc4, 0x27, 0x99, 0x88, 0x03,
+ 0x98, 0x1f, 0x43, 0x73, 0x30, 0xbc, 0x6d, 0xb3, 0x95, 0x29, 0x1a, 0xfe, 0x2c, 0x83, 0x0f, 0x71,
+ 0x0c, 0x13, 0xd1, 0xb2, 0x5b, 0x9d, 0x06, 0x5e, 0xb6, 0xa2, 0x45, 0x7c, 0x8a, 0x8b, 0xe0, 0x18,
+ 0x26, 0x62, 0x1f, 0x66, 0x7d, 0x8e, 0x8b, 0x70, 0x02, 0xf6, 0x7c, 0x08, 0x86, 0x6c, 0xab, 0xb1,
+ 0x6b, 0x5b, 0x71, 0x94, 0xf8, 0x34, 0x93, 0x00, 0x0c, 0x82, 0x05, 0x5c, 0x84, 0xc1, 0xb8, 0x8e,
+ 0xf8, 0xdc, 0xab, 0x3c, 0x3d, 0xb8, 0x07, 0x2e, 0xc3, 0x18, 0x2f, 0x50, 0x75, 0xdb, 0x8a, 0x21,
+ 0xe2, 0xf3, 0x4c, 0xc4, 0x68, 0x00, 0xc6, 0xa6, 0xe1, 0x22, 0xc7, 0xdd, 0x46, 0x71, 0x84, 0x7c,
+ 0x81, 0x4f, 0x83, 0x41, 0x98, 0x29, 0xaf, 0x23, 0xab, 0xba, 0x13, 0x4f, 0xc2, 0xf3, 0xdc, 0x94,
+ 0x1c, 0x83, 0x45, 0x14, 0x60, 0xa4, 0x69, 0xb6, 0x9d, 0x1d, 0xb3, 0x11, 0xcb, 0x1d, 0x5f, 0x64,
+ 0x32, 0x86, 0x3d, 0x10, 0xb3, 0x48, 0xc7, 0xda, 0x8f, 0x98, 0x2f, 0x71, 0x8b, 0x04, 0x60, 0x2c,
+ 0xf5, 0x1c, 0x97, 0xec, 0x95, 0xed, 0x47, 0xda, 0x1f, 0xf0, 0xd4, 0xa3, 0xd8, 0x95, 0xa0, 0xc4,
+ 0x8b, 0x30, 0xe8, 0xd4, 0x9f, 0x8e, 0x25, 0xe6, 0x0f, 0xb9, 0xa7, 0x09, 0x00, 0x83, 0xaf, 0xc1,
+ 0x6d, 0xa1, 0xcb, 0x44, 0x0c, 0x61, 0x7f, 0xc4, 0x84, 0x4d, 0x86, 0x2c, 0x15, 0xac, 0x24, 0xec,
+ 0x57, 0xe4, 0x1f, 0xf3, 0x92, 0x80, 0x24, 0x59, 0x6b, 0xf8, 0x5d, 0xc1, 0x31, 0xb7, 0xf6, 0x67,
+ 0xb5, 0x3f, 0xe1, 0x56, 0xa3, 0x58, 0xc1, 0x6a, 0x1b, 0x30, 0xc9, 0x24, 0xee, 0xcf, 0xaf, 0x5f,
+ 0xe6, 0x85, 0x95, 0xa2, 0x37, 0x45, 0xef, 0xbe, 0x17, 0xa6, 0x3c, 0x73, 0xf2, 0xa6, 0xd4, 0xa9,
+ 0x34, 0xcd, 0x56, 0x0c, 0xc9, 0x5f, 0x61, 0x92, 0x79, 0xc5, 0xf7, 0xba, 0x5a, 0x67, 0xc5, 0x6c,
+ 0x61, 0xe1, 0x8f, 0x42, 0x9a, 0x0b, 0xef, 0x58, 0x6d, 0x54, 0xb5, 0xb7, 0xad, 0xfa, 0xd3, 0xa8,
+ 0x16, 0x43, 0xf4, 0x9f, 0x4a, 0xae, 0xda, 0x0c, 0xc0, 0xb1, 0xe4, 0x65, 0xd0, 0xbc, 0x5e, 0xa5,
+ 0x52, 0x6f, 0xb6, 0xec, 0xb6, 0x1b, 0x21, 0xf1, 0xcf, 0xb8, 0xa7, 0x3c, 0xdc, 0x32, 0x81, 0x65,
+ 0x4b, 0x30, 0x4a, 0xbe, 0xc6, 0x0d, 0xc9, 0xaf, 0x32, 0x41, 0x23, 0x3e, 0x8a, 0x15, 0x8e, 0xaa,
+ 0xdd, 0x6c, 0x99, 0xed, 0x38, 0xf5, 0xef, 0xcf, 0x79, 0xe1, 0x60, 0x10, 0x56, 0x38, 0xdc, 0xdd,
+ 0x16, 0xc2, 0xab, 0x7d, 0x0c, 0x09, 0x5f, 0xe3, 0x85, 0x83, 0x63, 0x98, 0x08, 0xde, 0x30, 0xc4,
+ 0x10, 0xf1, 0x17, 0x5c, 0x04, 0xc7, 0x60, 0x11, 0xef, 0xf2, 0x17, 0xda, 0x36, 0xda, 0xae, 0x3b,
+ 0x6e, 0x9b, 0xb6, 0xc2, 0x7b, 0x8b, 0xfa, 0xfa, 0xab, 0x62, 0x13, 0x66, 0x04, 0xa0, 0xb8, 0x12,
+ 0xb1, 0x2d, 0x54, 0xf2, 0xa6, 0x14, 0xad, 0xd8, 0x37, 0x78, 0x25, 0x0a, 0xc0, 0xb0, 0x6e, 0x81,
+ 0x0e, 0x11, 0x9b, 0xbd, 0x8a, 0xdf, 0x0f, 0x62, 0x88, 0xfb, 0xa6, 0xa4, 0xdc, 0x3a, 0xc7, 0x62,
+ 0x99, 0x81, 0xfe, 0xa7, 0x63, 0x3d, 0x8e, 0x76, 0x63, 0x45, 0xe7, 0xb7, 0xa4, 0xfe, 0x67, 0x93,
+ 0x22, 0x69, 0x0d, 0x19, 0x93, 0xfa, 0x29, 0x3d, 0xea, 0x16, 0x50, 0xfa, 0xff, 0xbf, 0xc6, 0xe6,
+ 0x2b, 0xb6, 0x53, 0xd9, 0xab, 0x38, 0xc8, 0xc5, 0xa6, 0x27, 0x5a, 0xd8, 0x07, 0x5e, 0xf3, 0xe2,
+ 0x5c, 0xe8, 0x79, 0xb2, 0x97, 0x60, 0x44, 0x68, 0x78, 0xa2, 0x45, 0xfd, 0x02, 0x13, 0x35, 0x1c,
+ 0xec, 0x77, 0xb2, 0x67, 0x20, 0x89, 0x9b, 0x97, 0x68, 0xf8, 0x2f, 0x32, 0x38, 0x61, 0xcf, 0x3e,
+ 0x00, 0x29, 0xde, 0xb4, 0x44, 0x43, 0x3f, 0xc8, 0xa0, 0x1e, 0x04, 0xc3, 0x79, 0xc3, 0x12, 0x0d,
+ 0xff, 0x25, 0x0e, 0xe7, 0x10, 0x0c, 0x8f, 0x6f, 0xc2, 0x17, 0x7e, 0x25, 0xc9, 0x16, 0x1d, 0x6e,
+ 0xbb, 0x8b, 0x70, 0x80, 0x75, 0x2a, 0xd1, 0xe8, 0x0f, 0xb3, 0x87, 0x73, 0x44, 0xf6, 0x1c, 0xf4,
+ 0xc7, 0x34, 0xf8, 0xaf, 0x31, 0x28, 0xe5, 0xcf, 0x16, 0x60, 0x28, 0xd0, 0x9d, 0x44, 0xc3, 0x7f,
+ 0x9d, 0xc1, 0x83, 0x28, 0xac, 0x3a, 0xeb, 0x4e, 0xa2, 0x05, 0xfc, 0x06, 0x57, 0x9d, 0x21, 0xb0,
+ 0xd9, 0x78, 0x63, 0x12, 0x8d, 0xfe, 0x4d, 0x6e, 0x75, 0x0e, 0xc9, 0x3e, 0x04, 0x83, 0xde, 0x62,
+ 0x13, 0x8d, 0xff, 0x2d, 0x86, 0xf7, 0x31, 0xd8, 0x02, 0x81, 0xc5, 0x2e, 0x5a, 0xc4, 0x6f, 0x73,
+ 0x0b, 0x04, 0x50, 0x38, 0x8d, 0xe4, 0x06, 0x26, 0x5a, 0xd2, 0x47, 0x78, 0x1a, 0x49, 0xfd, 0x0b,
+ 0xf6, 0x26, 0xa9, 0xf9, 0xd1, 0x22, 0x7e, 0x87, 0x7b, 0x93, 0xf0, 0x63, 0x35, 0xe4, 0x8e, 0x20,
+ 0x5a, 0xc6, 0xef, 0x71, 0x35, 0xa4, 0x86, 0x20, 0xbb, 0x06, 0x7a, 0x77, 0x37, 0x10, 0x2d, 0xef,
+ 0xa3, 0x4c, 0xde, 0x78, 0x57, 0x33, 0x90, 0x7d, 0x04, 0x26, 0xc3, 0x3b, 0x81, 0x68, 0xa9, 0x1f,
+ 0x7b, 0x4d, 0x7a, 0x77, 0x0b, 0x36, 0x02, 0xd9, 0x0d, 0x7f, 0x49, 0x09, 0x76, 0x01, 0xd1, 0x62,
+ 0x3f, 0xfe, 0x9a, 0x58, 0xb8, 0x83, 0x4d, 0x40, 0x36, 0x07, 0xe0, 0x2f, 0xc0, 0xd1, 0xb2, 0x3e,
+ 0xc1, 0x64, 0x05, 0x40, 0x38, 0x35, 0xd8, 0xfa, 0x1b, 0x8d, 0xff, 0x24, 0x4f, 0x0d, 0x86, 0xc0,
+ 0xa9, 0xc1, 0x97, 0xde, 0x68, 0xf4, 0xb3, 0x3c, 0x35, 0x38, 0x04, 0x47, 0x76, 0x60, 0x75, 0x8b,
+ 0x96, 0xf0, 0x69, 0x1e, 0xd9, 0x01, 0x54, 0xb6, 0x0c, 0xe3, 0x5d, 0x0b, 0x62, 0xb4, 0xa8, 0xcf,
+ 0x30, 0x51, 0x9a, 0xbc, 0x1e, 0x06, 0x17, 0x2f, 0xb6, 0x18, 0x46, 0x4b, 0xfb, 0xac, 0xb4, 0x78,
+ 0xb1, 0xb5, 0x30, 0x7b, 0x11, 0x52, 0x56, 0xa7, 0xd1, 0xc0, 0xc9, 0xa3, 0xef, 0x7d, 0x73, 0x2f,
+ 0xfd, 0xcf, 0xaf, 0x33, 0xeb, 0x70, 0x40, 0xf6, 0x0c, 0xf4, 0xa3, 0xe6, 0x75, 0x54, 0x8b, 0x42,
+ 0xfe, 0xcb, 0xeb, 0xbc, 0x60, 0x62, 0xee, 0xec, 0x43, 0x00, 0x74, 0x6b, 0x84, 0x1c, 0xfb, 0x45,
+ 0x60, 0xff, 0xf5, 0x75, 0x76, 0xa7, 0xc6, 0x87, 0xf8, 0x02, 0xe8, 0x0d, 0x9d, 0xbd, 0x05, 0xbc,
+ 0x2a, 0x0a, 0x20, 0x1e, 0xb9, 0x00, 0x07, 0x1e, 0x73, 0x6c, 0xcb, 0x35, 0xb7, 0xa3, 0xd0, 0xff,
+ 0xc6, 0xd0, 0x9c, 0x1f, 0x1b, 0xac, 0x69, 0xb7, 0x91, 0x6b, 0x6e, 0x3b, 0x51, 0xd8, 0x7f, 0x67,
+ 0x58, 0x0f, 0x80, 0xc1, 0x55, 0xd3, 0x71, 0xe3, 0xcc, 0xfb, 0x3f, 0x38, 0x98, 0x03, 0xb0, 0xd2,
+ 0xf8, 0xf3, 0xe3, 0x68, 0x37, 0x0a, 0xfb, 0x23, 0xae, 0x34, 0xe3, 0xcf, 0x3e, 0x00, 0x83, 0xf8,
+ 0x23, 0xbd, 0x28, 0x17, 0x01, 0xfe, 0x4f, 0x06, 0xf6, 0x11, 0xf8, 0xc9, 0x8e, 0x5b, 0x73, 0xeb,
+ 0xd1, 0xc6, 0xfe, 0x31, 0xf3, 0x34, 0xe7, 0xcf, 0xe6, 0x60, 0xc8, 0x71, 0x6b, 0xb5, 0x0e, 0xeb,
+ 0x4f, 0x23, 0xe0, 0xff, 0xf5, 0xba, 0xb7, 0x65, 0xe1, 0x61, 0xb0, 0xb7, 0x9f, 0x7c, 0xdc, 0x6d,
+ 0xd9, 0xe4, 0x98, 0x23, 0x4a, 0xc2, 0x6b, 0x4c, 0x42, 0x00, 0x92, 0x2f, 0x85, 0x6f, 0xdf, 0xc2,
+ 0x65, 0xfb, 0xb2, 0x4d, 0x37, 0x6e, 0xdf, 0x93, 0x89, 0xde, 0x81, 0x85, 0x6f, 0x35, 0x60, 0xc4,
+ 0xdd, 0x41, 0x78, 0xd1, 0x65, 0x1b, 0xb1, 0x49, 0xfc, 0x79, 0x6a, 0x7f, 0xbb, 0xb7, 0xe4, 0x6c,
+ 0xbe, 0x5c, 0xc7, 0x0a, 0x97, 0xc9, 0xf1, 0x88, 0x7e, 0x04, 0x06, 0xc8, 0x14, 0x4e, 0x91, 0x23,
+ 0x48, 0x25, 0x9f, 0xbc, 0xf1, 0xd2, 0x4c, 0x9f, 0xc1, 0xc6, 0x3c, 0xea, 0x22, 0xd9, 0xbf, 0x4e,
+ 0x08, 0xd4, 0x45, 0x8f, 0x7a, 0x9a, 0x6e, 0x61, 0x0b, 0xd4, 0xd3, 0x1e, 0x75, 0x89, 0x6c, 0x66,
+ 0xab, 0x02, 0x75, 0xc9, 0xa3, 0x9e, 0x21, 0x07, 0x36, 0x23, 0x02, 0xf5, 0x8c, 0x47, 0x3d, 0x4b,
+ 0x8e, 0x69, 0x92, 0x02, 0xf5, 0xac, 0x47, 0x3d, 0x47, 0x4e, 0x68, 0xc6, 0x05, 0xea, 0x39, 0x8f,
+ 0x7a, 0x9e, 0x9c, 0xcc, 0xe8, 0x02, 0xf5, 0xbc, 0x47, 0xbd, 0x40, 0xee, 0x53, 0x1d, 0x10, 0xa8,
+ 0x17, 0xf4, 0x69, 0x38, 0x40, 0x67, 0xbe, 0x40, 0x8e, 0xf1, 0xc7, 0x18, 0x99, 0x0f, 0xfa, 0xf4,
+ 0x53, 0xe4, 0xee, 0xd4, 0x80, 0x48, 0x3f, 0xe5, 0xd3, 0x17, 0xc9, 0x9f, 0x71, 0x68, 0x22, 0x7d,
+ 0xd1, 0xa7, 0x9f, 0x4e, 0x8f, 0x90, 0xfb, 0x63, 0x02, 0xfd, 0xb4, 0x4f, 0x5f, 0x4a, 0x8f, 0xe2,
+ 0x3c, 0x10, 0xe9, 0x4b, 0x3e, 0xfd, 0x4c, 0x7a, 0xec, 0xa8, 0x32, 0x3b, 0x2c, 0xd2, 0xcf, 0x64,
+ 0xde, 0x4f, 0xdc, 0x6b, 0xf9, 0xee, 0x9d, 0x14, 0xdd, 0xeb, 0x39, 0x76, 0x52, 0x74, 0xac, 0xe7,
+ 0xd2, 0x49, 0xd1, 0xa5, 0x9e, 0x33, 0x27, 0x45, 0x67, 0x7a, 0x6e, 0x9c, 0x14, 0xdd, 0xe8, 0x39,
+ 0x70, 0x52, 0x74, 0xa0, 0xe7, 0xba, 0x49, 0xd1, 0x75, 0x9e, 0xd3, 0x26, 0x45, 0xa7, 0x79, 0xee,
+ 0x9a, 0x14, 0xdd, 0xe5, 0x39, 0x2a, 0x2d, 0x39, 0xca, 0x77, 0x51, 0x5a, 0x72, 0x91, 0xef, 0x9c,
+ 0xb4, 0xe4, 0x1c, 0xdf, 0x2d, 0x69, 0xc9, 0x2d, 0xbe, 0x43, 0xd2, 0x92, 0x43, 0x7c, 0x57, 0xa4,
+ 0x25, 0x57, 0xf8, 0x4e, 0x60, 0x39, 0x66, 0xa0, 0x56, 0x48, 0x8e, 0xa9, 0x7b, 0xe6, 0x98, 0xba,
+ 0x67, 0x8e, 0xa9, 0x7b, 0xe6, 0x98, 0xba, 0x67, 0x8e, 0xa9, 0x7b, 0xe6, 0x98, 0xba, 0x67, 0x8e,
+ 0xa9, 0x7b, 0xe6, 0x98, 0xba, 0x67, 0x8e, 0xa9, 0x7b, 0xe7, 0x98, 0x1a, 0x91, 0x63, 0x6a, 0x44,
+ 0x8e, 0xa9, 0x11, 0x39, 0xa6, 0x46, 0xe4, 0x98, 0x1a, 0x91, 0x63, 0x6a, 0xcf, 0x1c, 0xf3, 0xdd,
+ 0x3b, 0x29, 0xba, 0x37, 0x34, 0xc7, 0xd4, 0x1e, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5, 0x47, 0x8e,
+ 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x2b,
+ 0xc7, 0xd4, 0x9e, 0x39, 0xa6, 0xf6, 0xcc, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0x3d, 0x73, 0x4c, 0xed,
+ 0x99, 0x63, 0x6a, 0x30, 0xc7, 0xfe, 0x52, 0x05, 0x9d, 0xe6, 0xd8, 0x1a, 0xb9, 0x08, 0xc6, 0x5c,
+ 0x31, 0x2d, 0x65, 0xda, 0x00, 0x76, 0x9d, 0xe6, 0xbb, 0x64, 0x5a, 0xca, 0x35, 0x91, 0xbe, 0xe8,
+ 0xd1, 0x79, 0xb6, 0x89, 0xf4, 0xd3, 0x1e, 0x9d, 0xe7, 0x9b, 0x48, 0x5f, 0xf2, 0xe8, 0x3c, 0xe3,
+ 0x44, 0xfa, 0x19, 0x8f, 0xce, 0x73, 0x4e, 0xa4, 0x9f, 0xf5, 0xe8, 0x3c, 0xeb, 0x44, 0xfa, 0x39,
+ 0x8f, 0xce, 0xf3, 0x4e, 0xa4, 0x9f, 0xf7, 0xe8, 0x3c, 0xf3, 0x44, 0xfa, 0x05, 0xfd, 0xa8, 0x9c,
+ 0x7b, 0x9c, 0xc1, 0x73, 0xed, 0x51, 0x39, 0xfb, 0x24, 0x8e, 0x53, 0x3e, 0x07, 0xcf, 0x3f, 0x89,
+ 0x63, 0xd1, 0xe7, 0xe0, 0x19, 0x28, 0x71, 0x9c, 0xce, 0x7c, 0x88, 0xb8, 0xcf, 0x92, 0xdd, 0x37,
+ 0x25, 0xb9, 0x2f, 0x11, 0x70, 0xdd, 0x94, 0xe4, 0xba, 0x44, 0xc0, 0x6d, 0x53, 0x92, 0xdb, 0x12,
+ 0x01, 0x97, 0x4d, 0x49, 0x2e, 0x4b, 0x04, 0xdc, 0x35, 0x25, 0xb9, 0x2b, 0x11, 0x70, 0xd5, 0x94,
+ 0xe4, 0xaa, 0x44, 0xc0, 0x4d, 0x53, 0x92, 0x9b, 0x12, 0x01, 0x17, 0x4d, 0x49, 0x2e, 0x4a, 0x04,
+ 0xdc, 0x33, 0x25, 0xb9, 0x27, 0x11, 0x70, 0xcd, 0x11, 0xd9, 0x35, 0x89, 0xa0, 0x5b, 0x8e, 0xc8,
+ 0x6e, 0x49, 0x04, 0x5d, 0x72, 0x44, 0x76, 0x49, 0x22, 0xe8, 0x8e, 0x23, 0xb2, 0x3b, 0x12, 0x41,
+ 0x57, 0xfc, 0x34, 0xc1, 0x3b, 0xc2, 0x75, 0xb7, 0xdd, 0xa9, 0xba, 0xb7, 0xd4, 0x11, 0x2e, 0x08,
+ 0xed, 0xc3, 0xd0, 0xa2, 0x3e, 0x4f, 0x1a, 0xd6, 0x60, 0xc7, 0x29, 0xad, 0x60, 0x0b, 0x42, 0x63,
+ 0x11, 0x40, 0x58, 0xe1, 0x88, 0xa5, 0x5b, 0xea, 0x0d, 0x17, 0x84, 0x36, 0x23, 0x5a, 0xbf, 0xf3,
+ 0x6f, 0x79, 0xc7, 0xf6, 0x42, 0x82, 0x77, 0x6c, 0xcc, 0xfc, 0xfb, 0xed, 0xd8, 0xe6, 0xa2, 0x4d,
+ 0xee, 0x19, 0x7b, 0x2e, 0xda, 0xd8, 0x5d, 0xab, 0x4e, 0xdc, 0x0e, 0x6e, 0x2e, 0xda, 0xb4, 0x9e,
+ 0x51, 0xdf, 0xdc, 0x7e, 0x8b, 0x45, 0xb0, 0x81, 0x5a, 0x21, 0x11, 0xbc, 0xdf, 0x7e, 0x6b, 0x41,
+ 0x28, 0x25, 0xfb, 0x8d, 0x60, 0x75, 0xdf, 0x11, 0xbc, 0xdf, 0xce, 0x6b, 0x41, 0x28, 0x2f, 0xfb,
+ 0x8e, 0xe0, 0xb7, 0xa0, 0x1f, 0x62, 0x11, 0xec, 0x9b, 0x7f, 0xbf, 0xfd, 0xd0, 0x5c, 0xb4, 0xc9,
+ 0x43, 0x23, 0x58, 0xdd, 0x47, 0x04, 0xc7, 0xe9, 0x8f, 0xe6, 0xa2, 0x4d, 0x1b, 0x1e, 0xc1, 0xb7,
+ 0xdc, 0xcd, 0x7c, 0x4a, 0x81, 0xf1, 0x72, 0xbd, 0x56, 0x6a, 0x5e, 0x47, 0xb5, 0x1a, 0xaa, 0x31,
+ 0x3b, 0x2e, 0x08, 0x95, 0xa0, 0x87, 0xab, 0x5f, 0x7c, 0x69, 0xc6, 0xb7, 0xf0, 0x19, 0x48, 0x51,
+ 0x9b, 0x2e, 0x2c, 0xa4, 0x6f, 0x28, 0x11, 0x15, 0xce, 0x63, 0xd5, 0x8f, 0x71, 0xd8, 0xa9, 0x85,
+ 0xf4, 0xdf, 0x2b, 0x81, 0x2a, 0xe7, 0x0d, 0x67, 0x3e, 0x42, 0x34, 0xb4, 0x6e, 0x59, 0xc3, 0x93,
+ 0xb1, 0x34, 0x0c, 0xe8, 0x76, 0x7b, 0x97, 0x6e, 0x01, 0xad, 0x3a, 0x30, 0x56, 0xae, 0xd7, 0xca,
+ 0xe4, 0x07, 0x04, 0xe2, 0xa8, 0x44, 0x79, 0xa4, 0x7a, 0xb0, 0x20, 0x84, 0x65, 0x10, 0xe1, 0x85,
+ 0xb4, 0x58, 0x23, 0x32, 0x75, 0xfc, 0x58, 0x4b, 0x78, 0xec, 0x5c, 0xaf, 0xc7, 0xfa, 0x95, 0xdd,
+ 0x7b, 0xe0, 0x5c, 0xaf, 0x07, 0xfa, 0x39, 0xe4, 0x3d, 0xea, 0x29, 0xbe, 0x38, 0xd3, 0xeb, 0x58,
+ 0xfa, 0x11, 0x48, 0x2c, 0xd3, 0xdb, 0xe2, 0xc3, 0xf9, 0x61, 0xac, 0xd4, 0xf7, 0x5e, 0x9a, 0x49,
+ 0x6e, 0x76, 0xea, 0x35, 0x23, 0xb1, 0x5c, 0xd3, 0xaf, 0x40, 0xff, 0xbb, 0xd9, 0x9f, 0xb1, 0x62,
+ 0x86, 0x25, 0xc6, 0x70, 0x5f, 0xcf, 0x3d, 0x22, 0xfc, 0xe0, 0x93, 0x74, 0x6b, 0x72, 0x7e, 0xb3,
+ 0x6e, 0xb9, 0xa7, 0x16, 0xcf, 0x1b, 0x54, 0x44, 0xe6, 0x7f, 0x03, 0xd0, 0x67, 0x16, 0x4d, 0x67,
+ 0x47, 0x2f, 0x73, 0xc9, 0xf4, 0xd1, 0xe7, 0xbf, 0xf7, 0xd2, 0xcc, 0x52, 0x1c, 0xa9, 0xf7, 0xd7,
+ 0x4c, 0x67, 0xe7, 0x7e, 0x77, 0xb7, 0x85, 0xe6, 0xf3, 0xbb, 0x2e, 0x72, 0xb8, 0xf4, 0x16, 0x5f,
+ 0xf5, 0xd8, 0xbc, 0xd2, 0x81, 0x79, 0xa5, 0x84, 0x39, 0x5d, 0x12, 0xe7, 0xb4, 0xf0, 0x46, 0xe7,
+ 0xf3, 0x14, 0x5f, 0x24, 0x24, 0x4b, 0xaa, 0x51, 0x96, 0x54, 0x6f, 0xd5, 0x92, 0x2d, 0x5e, 0x1f,
+ 0xa5, 0xb9, 0xaa, 0x7b, 0xcd, 0x55, 0xbd, 0x95, 0xb9, 0xfe, 0x37, 0xcd, 0x56, 0x2f, 0x9f, 0x36,
+ 0x2d, 0x7a, 0x53, 0xf5, 0xe7, 0x6b, 0x2f, 0xe8, 0x4d, 0xed, 0x02, 0xb2, 0xc9, 0x1b, 0xcf, 0xcd,
+ 0x28, 0x99, 0x4f, 0x25, 0xf8, 0xcc, 0x69, 0x22, 0xbd, 0xb1, 0x99, 0xff, 0xbc, 0xf4, 0x54, 0x6f,
+ 0x85, 0x85, 0x9e, 0x55, 0x60, 0xb2, 0xab, 0x92, 0x53, 0x33, 0xbd, 0xb9, 0xe5, 0xdc, 0xda, 0x6f,
+ 0x39, 0x67, 0x0a, 0x7e, 0x55, 0x81, 0x83, 0x52, 0x79, 0xa5, 0xea, 0x9d, 0x94, 0xd4, 0x3b, 0xdc,
+ 0xfd, 0x24, 0xc2, 0x18, 0xd0, 0x2e, 0xe8, 0x5e, 0x09, 0x10, 0x90, 0xec, 0xf9, 0x7d, 0x49, 0xf2,
+ 0xfb, 0x11, 0x0f, 0x10, 0x62, 0x2e, 0x1e, 0x01, 0x4c, 0x6d, 0x1b, 0x92, 0x1b, 0x6d, 0x84, 0xf4,
+ 0x69, 0x48, 0xac, 0xb6, 0x99, 0x86, 0xa3, 0x14, 0xbf, 0xda, 0xce, 0xb7, 0x4d, 0xab, 0xba, 0x63,
+ 0x24, 0x56, 0xdb, 0xfa, 0x31, 0x50, 0x73, 0xec, 0x4f, 0xe8, 0x87, 0x16, 0xc7, 0x28, 0x43, 0xce,
+ 0xaa, 0x31, 0x0e, 0x4c, 0xd3, 0xa7, 0x21, 0x79, 0x15, 0x99, 0x5b, 0x4c, 0x09, 0xa0, 0x3c, 0x78,
+ 0xc4, 0x20, 0xe3, 0xec, 0x81, 0x8f, 0x42, 0x8a, 0x0b, 0xd6, 0x8f, 0x63, 0xc4, 0x96, 0xcb, 0x1e,
+ 0xcb, 0x10, 0x58, 0x1d, 0xb6, 0x72, 0x11, 0xaa, 0x7e, 0x02, 0xfa, 0x8d, 0xfa, 0xf6, 0x8e, 0xcb,
+ 0x1e, 0xde, 0xcd, 0x46, 0xc9, 0x99, 0x6b, 0x30, 0xe8, 0x69, 0xf4, 0x26, 0x8b, 0x2e, 0xd2, 0xa9,
+ 0xe9, 0x53, 0xc1, 0xf5, 0x84, 0xef, 0x5b, 0xd2, 0x21, 0xfd, 0x28, 0xa4, 0xd6, 0xdd, 0xb6, 0x5f,
+ 0xf4, 0x79, 0x47, 0xea, 0x8d, 0x66, 0xde, 0xaf, 0x40, 0xaa, 0x88, 0x50, 0x8b, 0x18, 0xfc, 0x2e,
+ 0x48, 0x16, 0xed, 0x27, 0x2d, 0xa6, 0xe0, 0x38, 0xb3, 0x28, 0x26, 0x33, 0x9b, 0x12, 0xb2, 0x7e,
+ 0x57, 0xd0, 0xee, 0x13, 0x9e, 0xdd, 0x03, 0x7c, 0xc4, 0xf6, 0x19, 0xc1, 0xf6, 0xcc, 0x81, 0x98,
+ 0xa9, 0xcb, 0xfe, 0xe7, 0x60, 0x28, 0xf0, 0x14, 0x7d, 0x96, 0xa9, 0x91, 0x90, 0x81, 0x41, 0x5b,
+ 0x61, 0x8e, 0x0c, 0x82, 0x11, 0xe1, 0xc1, 0x18, 0x1a, 0x30, 0x71, 0x0f, 0x28, 0x31, 0xf3, 0x9c,
+ 0x68, 0xe6, 0x70, 0x56, 0x66, 0xea, 0x05, 0x6a, 0x23, 0x62, 0xee, 0xe3, 0x34, 0x38, 0x7b, 0x3b,
+ 0x11, 0x7f, 0xce, 0xf4, 0x83, 0x5a, 0xae, 0x37, 0x32, 0x0f, 0x00, 0xd0, 0x94, 0x2f, 0x59, 0x9d,
+ 0xa6, 0x94, 0x75, 0xa3, 0xdc, 0xc0, 0x1b, 0x3b, 0x68, 0x03, 0x39, 0x84, 0x45, 0xec, 0xa7, 0x70,
+ 0x81, 0x01, 0x9a, 0x62, 0x04, 0x7f, 0x4f, 0x24, 0x3e, 0xb4, 0x13, 0xc3, 0xac, 0x69, 0xca, 0x7a,
+ 0x0d, 0xb9, 0x39, 0xcb, 0x76, 0x77, 0x50, 0x5b, 0x42, 0x2c, 0xea, 0xa7, 0x85, 0x84, 0x1d, 0x5d,
+ 0xbc, 0xdd, 0x43, 0xf4, 0x04, 0x9d, 0xce, 0x7c, 0x99, 0x28, 0x88, 0x5b, 0x81, 0xae, 0x09, 0xaa,
+ 0x31, 0x26, 0xa8, 0x9f, 0x15, 0xfa, 0xb7, 0x3d, 0xd4, 0x94, 0x5e, 0x2d, 0x2f, 0x08, 0xef, 0x39,
+ 0x7b, 0x2b, 0x2b, 0xbe, 0x63, 0x72, 0x9b, 0x72, 0x95, 0xef, 0x89, 0x54, 0xb9, 0x47, 0x77, 0xbb,
+ 0x5f, 0x9b, 0xaa, 0x71, 0x6d, 0xfa, 0x4d, 0xaf, 0xe3, 0xa0, 0xbf, 0x53, 0x42, 0x7e, 0xe1, 0x47,
+ 0xbf, 0x2f, 0xd2, 0xf7, 0x59, 0xa5, 0xe0, 0xa9, 0xba, 0x14, 0xd7, 0xfd, 0xd9, 0x44, 0x3e, 0xef,
+ 0xa9, 0x7b, 0x6e, 0x1f, 0x21, 0x90, 0x4d, 0x14, 0x0a, 0x5e, 0xd9, 0x4e, 0x7d, 0xe8, 0xb9, 0x19,
+ 0xe5, 0xf9, 0xe7, 0x66, 0xfa, 0x32, 0x5f, 0x54, 0x60, 0x9c, 0x71, 0x06, 0x02, 0xf7, 0x7e, 0x49,
+ 0xf9, 0x43, 0xbc, 0x66, 0x84, 0x59, 0xe0, 0x6d, 0x0b, 0xde, 0xef, 0x28, 0x90, 0xee, 0xd2, 0x95,
+ 0xdb, 0x7b, 0x21, 0x96, 0xca, 0x59, 0xa5, 0xf4, 0xb3, 0xb7, 0xf9, 0x35, 0xe8, 0xdf, 0xa8, 0x37,
+ 0x51, 0x1b, 0xaf, 0x04, 0xf8, 0x03, 0x55, 0x99, 0x1f, 0xe6, 0xd0, 0x21, 0x4e, 0xa3, 0xca, 0x09,
+ 0xb4, 0x45, 0x3d, 0x0d, 0xc9, 0xa2, 0xe9, 0x9a, 0x44, 0x83, 0x61, 0xaf, 0xbe, 0x9a, 0xae, 0x99,
+ 0x39, 0x0d, 0xc3, 0x2b, 0xbb, 0xe4, 0x7a, 0x51, 0x8d, 0xdc, 0x2c, 0x11, 0xbb, 0x3f, 0xde, 0xaf,
+ 0x9e, 0x9a, 0xeb, 0x4f, 0xd5, 0xb4, 0x1b, 0x4a, 0x36, 0x49, 0xf4, 0x79, 0x02, 0x46, 0x57, 0xb1,
+ 0xda, 0x04, 0x27, 0xc0, 0xe8, 0xd3, 0x55, 0x6f, 0xf2, 0x52, 0x53, 0xa6, 0xfa, 0x4d, 0xd9, 0x51,
+ 0x50, 0x56, 0xc4, 0xd6, 0x29, 0xa8, 0x87, 0xa1, 0xac, 0xcc, 0x25, 0x53, 0xa3, 0xda, 0xf8, 0x5c,
+ 0x32, 0x05, 0xda, 0x08, 0x7b, 0xee, 0xdf, 0xaa, 0xa0, 0xd1, 0x56, 0xa7, 0x88, 0xb6, 0xea, 0x56,
+ 0xdd, 0xed, 0xee, 0x57, 0x3d, 0x8d, 0xf5, 0x87, 0x60, 0x10, 0x9b, 0xf4, 0x12, 0xfb, 0xa1, 0x3f,
+ 0x6c, 0xfa, 0x63, 0xac, 0x45, 0x91, 0x44, 0xb0, 0x01, 0x12, 0x3a, 0x3e, 0x46, 0xbf, 0x04, 0x6a,
+ 0xb9, 0xbc, 0xc2, 0x16, 0xb7, 0xa5, 0x3d, 0xa1, 0xec, 0x0a, 0x0f, 0xfb, 0xc6, 0xc6, 0x9c, 0x6d,
+ 0x03, 0x0b, 0xd0, 0x97, 0x20, 0x51, 0x5e, 0x61, 0x0d, 0xef, 0xf1, 0x38, 0x62, 0x8c, 0x44, 0x79,
+ 0x65, 0xea, 0xaf, 0x14, 0x18, 0x11, 0x46, 0xf5, 0x0c, 0x0c, 0xd3, 0x81, 0xc0, 0x74, 0x07, 0x0c,
+ 0x61, 0x8c, 0xeb, 0x9c, 0xb8, 0x45, 0x9d, 0xa7, 0x72, 0x30, 0x26, 0x8d, 0xeb, 0xf3, 0xa0, 0x07,
+ 0x87, 0x98, 0x12, 0xf4, 0x47, 0xc6, 0x42, 0x28, 0x99, 0x3b, 0x00, 0x7c, 0xbb, 0x7a, 0xbf, 0x8d,
+ 0x55, 0x2e, 0xad, 0x6f, 0x94, 0x8a, 0x9a, 0x92, 0xf9, 0x9a, 0x02, 0x43, 0xac, 0x6d, 0xad, 0xda,
+ 0x2d, 0xa4, 0xe7, 0x41, 0xc9, 0xb1, 0x78, 0x78, 0x63, 0x7a, 0x2b, 0x39, 0xfd, 0x24, 0x28, 0xf9,
+ 0xf8, 0xae, 0x56, 0xf2, 0xfa, 0x22, 0x28, 0x05, 0xe6, 0xe0, 0x78, 0x9e, 0x51, 0x0a, 0x99, 0x1f,
+ 0xab, 0x30, 0x11, 0x6c, 0xa3, 0x79, 0x3d, 0x39, 0x26, 0xbe, 0x37, 0x65, 0x07, 0x4f, 0x2d, 0x9e,
+ 0x5e, 0x9a, 0xc7, 0xff, 0x78, 0x21, 0x99, 0x11, 0x5f, 0xa1, 0xb2, 0xe0, 0xb1, 0x9c, 0xea, 0x75,
+ 0x4f, 0x24, 0x9b, 0x0c, 0x48, 0xe8, 0xba, 0x27, 0x22, 0x50, 0xbb, 0xee, 0x89, 0x08, 0xd4, 0xae,
+ 0x7b, 0x22, 0x02, 0xb5, 0xeb, 0x2c, 0x40, 0xa0, 0x76, 0xdd, 0x13, 0x11, 0xa8, 0x5d, 0xf7, 0x44,
+ 0x04, 0x6a, 0xf7, 0x3d, 0x11, 0x46, 0xee, 0x79, 0x4f, 0x44, 0xa4, 0x77, 0xdf, 0x13, 0x11, 0xe9,
+ 0xdd, 0xf7, 0x44, 0xb2, 0x49, 0xb7, 0xdd, 0x41, 0xbd, 0x4f, 0x1d, 0x44, 0xfc, 0x5e, 0x2f, 0x81,
+ 0x7e, 0x05, 0x5e, 0x85, 0x31, 0xba, 0x21, 0x51, 0xb0, 0x2d, 0xd7, 0xac, 0x5b, 0xa8, 0xad, 0xbf,
+ 0x03, 0x86, 0xe9, 0x10, 0x7d, 0xcd, 0x09, 0x7b, 0x0d, 0xa4, 0x74, 0x56, 0x6f, 0x05, 0xee, 0xcc,
+ 0x4f, 0x93, 0x30, 0x49, 0x07, 0xca, 0x66, 0x13, 0x09, 0xb7, 0x8c, 0x4e, 0x48, 0x67, 0x4a, 0xa3,
+ 0x18, 0x7e, 0xf3, 0xa5, 0x19, 0x3a, 0x9a, 0xf3, 0xa2, 0xe9, 0x84, 0x74, 0xba, 0x24, 0xf2, 0xf9,
+ 0x0b, 0xd0, 0x09, 0xe9, 0xe6, 0x91, 0xc8, 0xe7, 0xad, 0x37, 0x1e, 0x1f, 0xbf, 0x83, 0x24, 0xf2,
+ 0x15, 0xbd, 0x28, 0x3b, 0x21, 0xdd, 0x46, 0x12, 0xf9, 0x4a, 0x5e, 0xbc, 0x9d, 0x90, 0xce, 0x9e,
+ 0x44, 0xbe, 0x4b, 0x5e, 0xe4, 0x9d, 0x90, 0x4e, 0xa1, 0x44, 0xbe, 0xcb, 0x5e, 0x0c, 0x9e, 0x90,
+ 0xee, 0x2a, 0x89, 0x7c, 0x0f, 0x7b, 0xd1, 0x78, 0x42, 0xba, 0xb5, 0x24, 0xf2, 0x2d, 0x7b, 0x71,
+ 0x39, 0x2b, 0xdf, 0x5f, 0x12, 0x19, 0xaf, 0xf8, 0x11, 0x3a, 0x2b, 0xdf, 0x64, 0x12, 0x39, 0xdf,
+ 0xe9, 0xc7, 0xea, 0xac, 0x7c, 0xa7, 0x49, 0xe4, 0xbc, 0xea, 0x47, 0xed, 0xac, 0x7c, 0x56, 0x26,
+ 0x72, 0xae, 0xf8, 0xf1, 0x3b, 0x2b, 0x9f, 0x9a, 0x89, 0x9c, 0x65, 0x3f, 0x92, 0x67, 0xe5, 0xf3,
+ 0x33, 0x91, 0x73, 0xd5, 0xdf, 0x44, 0xff, 0xb6, 0x14, 0x7e, 0x81, 0x5b, 0x50, 0x19, 0x29, 0xfc,
+ 0x20, 0x24, 0xf4, 0xa4, 0x42, 0x16, 0xe0, 0xf1, 0xc3, 0x2e, 0x23, 0x85, 0x1d, 0x84, 0x84, 0x5c,
+ 0x46, 0x0a, 0x39, 0x08, 0x09, 0xb7, 0x8c, 0x14, 0x6e, 0x10, 0x12, 0x6a, 0x19, 0x29, 0xd4, 0x20,
+ 0x24, 0xcc, 0x32, 0x52, 0x98, 0x41, 0x48, 0x88, 0x65, 0xa4, 0x10, 0x83, 0x90, 0xf0, 0xca, 0x48,
+ 0xe1, 0x05, 0x21, 0xa1, 0x75, 0x5c, 0x0e, 0x2d, 0x08, 0x0b, 0xab, 0xe3, 0x72, 0x58, 0x41, 0x58,
+ 0x48, 0xdd, 0x29, 0x87, 0xd4, 0xe0, 0xcd, 0x97, 0x66, 0xfa, 0xf1, 0x50, 0x20, 0x9a, 0x8e, 0xcb,
+ 0xd1, 0x04, 0x61, 0x91, 0x74, 0x5c, 0x8e, 0x24, 0x08, 0x8b, 0xa2, 0xe3, 0x72, 0x14, 0x41, 0x58,
+ 0x04, 0xbd, 0x20, 0x47, 0x90, 0x7f, 0xc7, 0x27, 0x23, 0x1d, 0x29, 0x46, 0x45, 0x90, 0x1a, 0x23,
+ 0x82, 0xd4, 0x18, 0x11, 0xa4, 0xc6, 0x88, 0x20, 0x35, 0x46, 0x04, 0xa9, 0x31, 0x22, 0x48, 0x8d,
+ 0x11, 0x41, 0x6a, 0x8c, 0x08, 0x52, 0xe3, 0x44, 0x90, 0x1a, 0x2b, 0x82, 0xd4, 0x5e, 0x11, 0x74,
+ 0x5c, 0xbe, 0xf1, 0x00, 0x61, 0x05, 0xe9, 0xb8, 0x7c, 0xf4, 0x19, 0x1d, 0x42, 0x6a, 0xac, 0x10,
+ 0x52, 0x7b, 0x85, 0xd0, 0xb7, 0x55, 0x98, 0x10, 0x42, 0x88, 0x9d, 0x0f, 0xbd, 0x59, 0x15, 0xe8,
+ 0x6c, 0x8c, 0x0b, 0x16, 0x61, 0x31, 0x75, 0x36, 0xc6, 0x21, 0xf5, 0x5e, 0x71, 0xd6, 0x5d, 0x85,
+ 0x4a, 0x31, 0xaa, 0xd0, 0x25, 0x2f, 0x86, 0xce, 0xc6, 0xb8, 0x78, 0xd1, 0x1d, 0x7b, 0xe7, 0xf7,
+ 0x2a, 0x02, 0x0f, 0xc7, 0x2a, 0x02, 0xcb, 0xb1, 0x8a, 0xc0, 0x15, 0xdf, 0x83, 0x1f, 0x4c, 0xc0,
+ 0x41, 0xdf, 0x83, 0xf4, 0x13, 0xf9, 0xbd, 0xac, 0x4c, 0xe0, 0x88, 0x4a, 0xe7, 0xc7, 0x36, 0x01,
+ 0x37, 0x26, 0x96, 0x6b, 0xfa, 0x9a, 0x78, 0x58, 0x95, 0xdd, 0xef, 0x01, 0x4e, 0xc0, 0xe3, 0x6c,
+ 0x33, 0xf4, 0x38, 0xa8, 0xcb, 0x35, 0x87, 0x54, 0x8b, 0xb0, 0xc7, 0x16, 0x0c, 0x4c, 0xd6, 0x0d,
+ 0x18, 0x20, 0xec, 0x0e, 0x71, 0xef, 0xad, 0x3c, 0xb8, 0x68, 0x30, 0x49, 0x99, 0x17, 0x14, 0x38,
+ 0x2a, 0x84, 0xf2, 0x9b, 0x73, 0x64, 0x70, 0x31, 0xd6, 0x91, 0x81, 0x90, 0x20, 0xfe, 0xf1, 0xc1,
+ 0xdd, 0xdd, 0x27, 0xd5, 0xc1, 0x2c, 0x91, 0x8f, 0x12, 0xfe, 0x1f, 0x8c, 0xfa, 0x33, 0x20, 0xef,
+ 0x6c, 0x67, 0xa2, 0x77, 0x33, 0xc3, 0x52, 0xf3, 0x8c, 0xb4, 0x8b, 0xb6, 0x27, 0xcc, 0xcb, 0xd6,
+ 0x4c, 0x16, 0xc6, 0xca, 0xe2, 0x1f, 0x3a, 0x45, 0x6d, 0x46, 0xa4, 0x70, 0x6b, 0x7e, 0xe3, 0xd3,
+ 0x33, 0x7d, 0x99, 0xfb, 0x60, 0x38, 0xf8, 0xb7, 0x4c, 0x12, 0x70, 0x90, 0x03, 0xb3, 0xc9, 0x17,
+ 0x31, 0xf7, 0xef, 0x2a, 0x70, 0x28, 0xc8, 0xfe, 0x48, 0xdd, 0xdd, 0x59, 0xb6, 0x70, 0x4f, 0xff,
+ 0x00, 0xa4, 0x10, 0x73, 0x1c, 0xfb, 0xe9, 0x1b, 0xf6, 0x1e, 0x19, 0xca, 0x3e, 0x4f, 0xfe, 0x35,
+ 0x3c, 0x88, 0xb4, 0x0b, 0xc2, 0x1f, 0xbb, 0x38, 0x75, 0x17, 0xf4, 0x53, 0xf9, 0xa2, 0x5e, 0x23,
+ 0x92, 0x5e, 0x9f, 0x0b, 0xd1, 0x8b, 0xc4, 0x91, 0x7e, 0x45, 0xd0, 0x2b, 0xf0, 0xba, 0x1a, 0xca,
+ 0x3e, 0xcf, 0x83, 0x2f, 0x9f, 0xc2, 0xfd, 0x1f, 0x89, 0xa8, 0x68, 0x25, 0x67, 0x21, 0x55, 0x92,
+ 0x79, 0xc2, 0xf5, 0x2c, 0x42, 0xb2, 0x6c, 0xd7, 0xc8, 0x8f, 0xf2, 0x90, 0x9f, 0xb7, 0x66, 0x46,
+ 0x66, 0xbf, 0x75, 0x7d, 0x02, 0x52, 0x85, 0x9d, 0x7a, 0xa3, 0xd6, 0x46, 0x16, 0x3b, 0xb3, 0x67,
+ 0x5b, 0xe8, 0x18, 0x63, 0x78, 0xb4, 0x4c, 0x01, 0xc6, 0xcb, 0xb6, 0x95, 0xdf, 0x75, 0x83, 0x75,
+ 0x63, 0x5e, 0x4a, 0x11, 0x76, 0xe6, 0x43, 0xfe, 0xf6, 0x03, 0x33, 0xe4, 0xfb, 0xbf, 0xf7, 0xd2,
+ 0x8c, 0xb2, 0xe1, 0xed, 0x9f, 0xaf, 0xc0, 0x61, 0x96, 0x3e, 0x5d, 0xa2, 0x16, 0xa3, 0x44, 0x0d,
+ 0xb2, 0x73, 0xea, 0x80, 0xb8, 0x65, 0x2c, 0xce, 0x0a, 0x15, 0xf7, 0xc6, 0x34, 0xc3, 0x4d, 0xd1,
+ 0x9e, 0x9a, 0xa9, 0xfb, 0xd2, 0x2c, 0x54, 0xdc, 0x7c, 0x94, 0x38, 0x49, 0xb3, 0x3b, 0x61, 0xd0,
+ 0xa3, 0x05, 0xa2, 0x21, 0x98, 0x29, 0x8b, 0x73, 0x19, 0x18, 0x0a, 0x24, 0xac, 0xde, 0x0f, 0x4a,
+ 0x4e, 0xeb, 0xc3, 0xff, 0xe5, 0x35, 0x05, 0xff, 0x57, 0xd0, 0x12, 0x73, 0x77, 0xc1, 0x98, 0xb4,
+ 0x7f, 0x89, 0x29, 0x45, 0x0d, 0xf0, 0x7f, 0x25, 0x6d, 0x68, 0x2a, 0xf9, 0xa1, 0xcf, 0x4e, 0xf7,
+ 0xcd, 0x5d, 0x04, 0xbd, 0x7b, 0xa7, 0x53, 0x1f, 0x80, 0x44, 0x0e, 0x8b, 0x3c, 0x0c, 0x89, 0x7c,
+ 0x5e, 0x53, 0xa6, 0xc6, 0x7e, 0xf9, 0x93, 0x47, 0x87, 0xf2, 0xe4, 0x0f, 0xb5, 0xaf, 0x21, 0x37,
+ 0x9f, 0x67, 0xe0, 0x07, 0xe1, 0x50, 0xe8, 0x4e, 0x29, 0xc6, 0x17, 0x0a, 0x14, 0x5f, 0x2c, 0x76,
+ 0xe1, 0x8b, 0x45, 0x82, 0x57, 0xb2, 0xfc, 0xc4, 0x39, 0xa7, 0x87, 0xec, 0x32, 0xa6, 0x6b, 0x81,
+ 0x13, 0xee, 0x5c, 0xf6, 0x41, 0xc6, 0x9b, 0x0f, 0xe5, 0x45, 0x11, 0x27, 0xd6, 0xf9, 0x6c, 0x81,
+ 0xe1, 0x0b, 0xa1, 0xf8, 0x2d, 0xe9, 0x58, 0x55, 0x5c, 0x21, 0x98, 0x90, 0x82, 0xa7, 0x70, 0x31,
+ 0x54, 0xc8, 0x4e, 0xe0, 0xb2, 0x7b, 0xd1, 0x53, 0xb8, 0x14, 0xca, 0x5b, 0x8f, 0xb8, 0xf4, 0x55,
+ 0xca, 0x9e, 0x64, 0x8b, 0x7c, 0xee, 0x94, 0x7e, 0x88, 0xe7, 0xa8, 0x50, 0x81, 0x99, 0x81, 0x38,
+ 0x57, 0xb6, 0xc0, 0x00, 0xf9, 0x9e, 0x80, 0xde, 0x56, 0xe2, 0xc8, 0xec, 0xc3, 0x4c, 0x48, 0xa1,
+ 0xa7, 0x90, 0x08, 0x53, 0x71, 0x78, 0x7e, 0xe3, 0xc6, 0xcb, 0xd3, 0x7d, 0x2f, 0xbe, 0x3c, 0xdd,
+ 0xf7, 0x0f, 0x2f, 0x4f, 0xf7, 0x7d, 0xff, 0xe5, 0x69, 0xe5, 0x87, 0x2f, 0x4f, 0x2b, 0x3f, 0x7a,
+ 0x79, 0x5a, 0xf9, 0xc9, 0xcb, 0xd3, 0xca, 0x33, 0x37, 0xa7, 0x95, 0xe7, 0x6f, 0x4e, 0x2b, 0x5f,
+ 0xbe, 0x39, 0xad, 0x7c, 0xfd, 0xe6, 0xb4, 0xf2, 0xc2, 0xcd, 0x69, 0xe5, 0xc6, 0xcd, 0xe9, 0xbe,
+ 0x17, 0x6f, 0x4e, 0xf7, 0x7d, 0xff, 0xe6, 0xb4, 0xf2, 0xc3, 0x9b, 0xd3, 0x7d, 0x3f, 0xba, 0x39,
+ 0xad, 0xfc, 0xe4, 0xe6, 0x74, 0xdf, 0x33, 0xaf, 0x4c, 0xf7, 0x3d, 0xf7, 0xca, 0x74, 0xdf, 0xf3,
+ 0xaf, 0x4c, 0x2b, 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, 0x5b, 0x10, 0x73, 0x27, 0x32, 0x69, 0x00,
+ 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -26881,201 +27103,3 @@ func (this *CustomNameNinEmbeddedStructUnion) SetValue(value interface{}) bool {
}
return true
}
-
-func init() { proto.RegisterFile("thetest.proto", fileDescriptor_thetest_14aea7c379120fb7) }
-
-var fileDescriptor_thetest_14aea7c379120fb7 = []byte{
- // 3070 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4d, 0x6c, 0x1b, 0xc7,
- 0xf5, 0xe7, 0xec, 0x50, 0x0a, 0xf5, 0xf4, 0x45, 0x6f, 0x62, 0x65, 0xc1, 0xe8, 0xbf, 0xa2, 0x37,
- 0xb2, 0xfe, 0x0c, 0x11, 0x4b, 0x14, 0x45, 0xc9, 0x32, 0xd3, 0xa4, 0xe0, 0x97, 0x1b, 0xb9, 0x11,
- 0x65, 0x30, 0x72, 0x5b, 0x03, 0x05, 0x0a, 0x5a, 0x5c, 0x4b, 0x44, 0xe5, 0xa5, 0x40, 0xae, 0xd2,
- 0xb8, 0x87, 0x22, 0xc8, 0xa1, 0x08, 0x7a, 0x2d, 0x7a, 0x6c, 0xe3, 0xa2, 0x28, 0x90, 0xde, 0x72,
- 0x28, 0x8a, 0xa2, 0x28, 0x1a, 0x5f, 0x0a, 0xa8, 0x37, 0xa3, 0xa7, 0x22, 0x28, 0x84, 0x88, 0xb9,
- 0xe4, 0x18, 0xf4, 0xd2, 0x1c, 0x72, 0x28, 0x76, 0x77, 0x76, 0x76, 0x66, 0xb8, 0xcb, 0x5d, 0x5a,
- 0x4a, 0x9b, 0x8b, 0x2d, 0xce, 0x7b, 0x6f, 0xe6, 0xed, 0xfb, 0xfd, 0xde, 0xdb, 0xb7, 0x33, 0x03,
- 0xd3, 0xe6, 0x81, 0x6e, 0xea, 0x3d, 0x73, 0xf9, 0xa8, 0xdb, 0x31, 0x3b, 0x72, 0xdc, 0xfa, 0x3b,
- 0x75, 0x6d, 0xbf, 0x6d, 0x1e, 0x1c, 0xdf, 0x5b, 0xde, 0xeb, 0x3c, 0x58, 0xd9, 0xef, 0xec, 0x77,
- 0x56, 0x6c, 0xe1, 0xbd, 0xe3, 0xfb, 0xf6, 0x2f, 0xfb, 0x87, 0xfd, 0x97, 0x63, 0xa4, 0xfd, 0x13,
- 0xc3, 0x54, 0xbd, 0xdd, 0xda, 0x39, 0x32, 0xeb, 0x4d, 0xb3, 0xfd, 0x96, 0x2e, 0xcf, 0xc3, 0xf8,
- 0xcd, 0xb6, 0x7e, 0xd8, 0x5a, 0x55, 0x50, 0x1a, 0x65, 0x50, 0x39, 0x7e, 0x72, 0xba, 0x10, 0x6b,
- 0x90, 0x31, 0x2a, 0xcd, 0x2b, 0x52, 0x1a, 0x65, 0x24, 0x4e, 0x9a, 0xa7, 0xd2, 0x35, 0x05, 0xa7,
- 0x51, 0x66, 0x8c, 0x93, 0xae, 0x51, 0x69, 0x41, 0x89, 0xa7, 0x51, 0x06, 0x73, 0xd2, 0x02, 0x95,
- 0xae, 0x2b, 0x63, 0x69, 0x94, 0x99, 0xe6, 0xa4, 0xeb, 0x54, 0xba, 0xa1, 0x8c, 0xa7, 0x51, 0x26,
- 0xce, 0x49, 0x37, 0xa8, 0xf4, 0xba, 0xf2, 0x4c, 0x1a, 0x65, 0x2e, 0x71, 0xd2, 0xeb, 0x54, 0xba,
- 0xa9, 0x24, 0xd2, 0x28, 0x23, 0x73, 0xd2, 0x4d, 0x2a, 0xbd, 0xa1, 0x4c, 0xa4, 0x51, 0xe6, 0x19,
- 0x4e, 0x7a, 0x43, 0x56, 0xe1, 0x19, 0xe7, 0xc9, 0x73, 0x0a, 0xa4, 0x51, 0x66, 0x96, 0x88, 0xdd,
- 0x41, 0x4f, 0xbe, 0xaa, 0x4c, 0xa6, 0x51, 0x66, 0x9c, 0x97, 0xaf, 0x7a, 0xf2, 0xbc, 0x32, 0x95,
- 0x46, 0x99, 0x24, 0x2f, 0xcf, 0x7b, 0xf2, 0x35, 0x65, 0x3a, 0x8d, 0x32, 0x09, 0x5e, 0xbe, 0xe6,
- 0xc9, 0x0b, 0xca, 0x4c, 0x1a, 0x65, 0x26, 0x78, 0x79, 0xc1, 0x93, 0xaf, 0x2b, 0xb3, 0x69, 0x94,
- 0x99, 0xe2, 0xe5, 0xeb, 0xda, 0xbb, 0x36, 0xbc, 0x86, 0x07, 0xef, 0x1c, 0x0f, 0x2f, 0x05, 0x76,
- 0x8e, 0x07, 0x96, 0x42, 0x3a, 0xc7, 0x43, 0x4a, 0xc1, 0x9c, 0xe3, 0xc1, 0xa4, 0x30, 0xce, 0xf1,
- 0x30, 0x52, 0x00, 0xe7, 0x78, 0x00, 0x29, 0x74, 0x73, 0x3c, 0x74, 0x14, 0xb4, 0x39, 0x1e, 0x34,
- 0x0a, 0xd7, 0x1c, 0x0f, 0x17, 0x05, 0x4a, 0x11, 0x80, 0xf2, 0x20, 0x52, 0x04, 0x88, 0x3c, 0x70,
- 0x14, 0x01, 0x1c, 0x0f, 0x16, 0x45, 0x80, 0xc5, 0x03, 0x44, 0x11, 0x00, 0xf1, 0xa0, 0x50, 0x04,
- 0x28, 0x3c, 0x10, 0x48, 0x8e, 0x35, 0xf4, 0x23, 0x9f, 0x1c, 0xc3, 0x43, 0x73, 0x0c, 0x0f, 0xcd,
- 0x31, 0x3c, 0x34, 0xc7, 0xf0, 0xd0, 0x1c, 0xc3, 0x43, 0x73, 0x0c, 0x0f, 0xcd, 0x31, 0x3c, 0x34,
- 0xc7, 0xf0, 0xd0, 0x1c, 0xc3, 0xc3, 0x73, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31, 0x1c, 0x92,
- 0x63, 0x38, 0x24, 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0xc0, 0x1c, 0xf3, 0xe0, 0x9d, 0xe3, 0xe1, 0xf5,
- 0xcd, 0x31, 0x1c, 0x90, 0x63, 0x38, 0x20, 0xc7, 0x70, 0x40, 0x8e, 0xe1, 0x80, 0x1c, 0xc3, 0x01,
- 0x39, 0x86, 0x03, 0x72, 0x0c, 0x07, 0xe4, 0x18, 0x0e, 0xca, 0x31, 0x1c, 0x98, 0x63, 0x38, 0x30,
- 0xc7, 0x70, 0x60, 0x8e, 0xe1, 0xc0, 0x1c, 0xc3, 0x81, 0x39, 0x86, 0xd9, 0x1c, 0xfb, 0x33, 0x06,
- 0xd9, 0xc9, 0xb1, 0xdb, 0xcd, 0xbd, 0x1f, 0xea, 0x2d, 0x02, 0x85, 0x2a, 0x64, 0xda, 0xb8, 0x05,
- 0x5d, 0xd2, 0x83, 0x44, 0x15, 0x72, 0x8d, 0x97, 0xe7, 0xa9, 0xdc, 0xcd, 0x36, 0x5e, 0xbe, 0x46,
- 0xe5, 0x6e, 0xbe, 0xf1, 0xf2, 0x02, 0x95, 0xbb, 0x19, 0xc7, 0xcb, 0xd7, 0xa9, 0xdc, 0xcd, 0x39,
- 0x5e, 0xbe, 0x41, 0xe5, 0x6e, 0xd6, 0xf1, 0xf2, 0xeb, 0x54, 0xee, 0xe6, 0x1d, 0x2f, 0xdf, 0xa4,
- 0x72, 0x37, 0xf3, 0x78, 0xf9, 0x0d, 0x39, 0x2d, 0xe6, 0x9e, 0xab, 0x40, 0xa1, 0x4d, 0x8b, 0xd9,
- 0x27, 0x68, 0xac, 0x7a, 0x1a, 0x6e, 0xfe, 0x09, 0x1a, 0x79, 0x4f, 0xc3, 0xcd, 0x40, 0x41, 0x63,
- 0x4d, 0x7b, 0xcf, 0x86, 0xcf, 0x10, 0xe1, 0x4b, 0x09, 0xf0, 0x49, 0x0c, 0x74, 0x29, 0x01, 0x3a,
- 0x89, 0x81, 0x2d, 0x25, 0xc0, 0x26, 0x31, 0x90, 0xa5, 0x04, 0xc8, 0x24, 0x06, 0xae, 0x94, 0x00,
- 0x97, 0xc4, 0x40, 0x95, 0x12, 0xa0, 0x92, 0x18, 0x98, 0x52, 0x02, 0x4c, 0x12, 0x03, 0x51, 0x4a,
- 0x80, 0x48, 0x62, 0xe0, 0x49, 0x09, 0xf0, 0x48, 0x0c, 0x34, 0xf3, 0x22, 0x34, 0x12, 0x0b, 0xcb,
- 0xbc, 0x08, 0x8b, 0xc4, 0x42, 0x32, 0x2f, 0x42, 0x22, 0xb1, 0x70, 0xcc, 0x8b, 0x70, 0x48, 0x2c,
- 0x14, 0x5f, 0x4a, 0x6e, 0x47, 0xf8, 0xa6, 0xd9, 0x3d, 0xde, 0x33, 0xcf, 0xd5, 0x11, 0xe6, 0xb8,
- 0xf6, 0x61, 0x32, 0x2f, 0x2f, 0xdb, 0x0d, 0x2b, 0xdb, 0x71, 0x0a, 0x6f, 0xb0, 0x1c, 0xd7, 0x58,
- 0x30, 0x16, 0x86, 0xbf, 0x45, 0xe1, 0x5c, 0xbd, 0x61, 0x8e, 0x6b, 0x33, 0xc2, 0xfd, 0xdb, 0xfc,
- 0xca, 0x3b, 0xb6, 0xc7, 0x92, 0xdb, 0xb1, 0x91, 0xf0, 0x8f, 0xda, 0xb1, 0x65, 0xc3, 0x43, 0x4e,
- 0x83, 0x9d, 0x0d, 0x0f, 0xf6, 0xc0, 0x5b, 0x27, 0x6a, 0x07, 0x97, 0x0d, 0x0f, 0x2d, 0x0d, 0xea,
- 0xc5, 0xf6, 0x5b, 0x84, 0xc1, 0x0d, 0xfd, 0xc8, 0x87, 0xc1, 0xa3, 0xf6, 0x5b, 0x39, 0xae, 0x94,
- 0x8c, 0xca, 0x60, 0x3c, 0x32, 0x83, 0x47, 0xed, 0xbc, 0x72, 0x5c, 0x79, 0x19, 0x99, 0xc1, 0x5f,
- 0x41, 0x3f, 0x44, 0x18, 0xec, 0x85, 0x7f, 0xd4, 0x7e, 0x28, 0x1b, 0x1e, 0x72, 0x5f, 0x06, 0xe3,
- 0x11, 0x18, 0x1c, 0xa5, 0x3f, 0xca, 0x86, 0x87, 0xd6, 0x9f, 0xc1, 0xe7, 0xee, 0x66, 0xde, 0x47,
- 0x70, 0xa9, 0xde, 0x6e, 0xd5, 0x1e, 0xdc, 0xd3, 0x5b, 0x2d, 0xbd, 0x45, 0xe2, 0x98, 0xe3, 0x2a,
- 0x41, 0x00, 0xd4, 0x4f, 0x4e, 0x17, 0xbc, 0x08, 0xaf, 0x43, 0xc2, 0x89, 0x69, 0x2e, 0xa7, 0x9c,
- 0xa0, 0x90, 0x0a, 0x47, 0x55, 0xe5, 0x2b, 0xae, 0xd9, 0x6a, 0x4e, 0xf9, 0x3b, 0x62, 0xaa, 0x1c,
- 0x1d, 0xd6, 0x7e, 0x6e, 0x7b, 0x68, 0x9c, 0xdb, 0xc3, 0x95, 0x48, 0x1e, 0x32, 0xbe, 0xbd, 0x30,
- 0xe0, 0x1b, 0xe3, 0xd5, 0x31, 0xcc, 0xd6, 0xdb, 0xad, 0xba, 0xde, 0x33, 0xa3, 0xb9, 0xe4, 0xe8,
- 0x08, 0xf5, 0x20, 0xc7, 0xd1, 0x92, 0xb5, 0xa0, 0x94, 0xe6, 0x6b, 0x84, 0xd6, 0xb6, 0x96, 0x35,
- 0xb8, 0x65, 0xb3, 0x41, 0xcb, 0x7a, 0x95, 0x9d, 0x2e, 0x98, 0x0d, 0x5a, 0xd0, 0xcb, 0x21, 0xba,
- 0xd4, 0xdb, 0xee, 0xcb, 0xb9, 0x72, 0xdc, 0x33, 0x3b, 0x0f, 0xe4, 0x79, 0x90, 0xb6, 0x5a, 0xf6,
- 0x1a, 0x53, 0xe5, 0x29, 0xcb, 0xa9, 0x8f, 0x4f, 0x17, 0xe2, 0x77, 0x8e, 0xdb, 0xad, 0x86, 0xb4,
- 0xd5, 0x92, 0x6f, 0xc1, 0xd8, 0x77, 0x9a, 0x87, 0xc7, 0xba, 0xfd, 0x8a, 0x98, 0x2a, 0x17, 0x88,
- 0xc2, 0xcb, 0x81, 0x7b, 0x44, 0xd6, 0xc2, 0x2b, 0x7b, 0xf6, 0xd4, 0xcb, 0x77, 0xda, 0x86, 0xb9,
- 0x9a, 0xdf, 0x6c, 0x38, 0x53, 0x68, 0xdf, 0x07, 0x70, 0xd6, 0xac, 0x36, 0x7b, 0x07, 0x72, 0xdd,
- 0x9d, 0xd9, 0x59, 0x7a, 0xf3, 0xe3, 0xd3, 0x85, 0x42, 0x94, 0x59, 0xaf, 0xb5, 0x9a, 0xbd, 0x83,
- 0x6b, 0xe6, 0xc3, 0x23, 0x7d, 0xb9, 0xfc, 0xd0, 0xd4, 0x7b, 0xee, 0xec, 0x47, 0xee, 0x5b, 0x8f,
- 0x3c, 0x97, 0xc2, 0x3c, 0x57, 0x82, 0x7b, 0xa6, 0x9b, 0xfc, 0x33, 0xe5, 0x9e, 0xf6, 0x79, 0xde,
- 0x76, 0x5f, 0x12, 0x42, 0x24, 0x71, 0x58, 0x24, 0xf1, 0x79, 0x23, 0x79, 0xe4, 0xd6, 0x47, 0xe1,
- 0x59, 0xf1, 0xb0, 0x67, 0xc5, 0xe7, 0x79, 0xd6, 0x7f, 0x3b, 0xd9, 0x4a, 0xf3, 0xe9, 0x8e, 0xd1,
- 0xee, 0x18, 0x5f, 0xbb, 0xbd, 0xa0, 0x0b, 0xed, 0x02, 0x8a, 0xf1, 0x93, 0x47, 0x0b, 0x48, 0x7b,
- 0x5f, 0x72, 0x9f, 0xdc, 0x49, 0xa4, 0xa7, 0x7b, 0xf2, 0xaf, 0x4b, 0x4f, 0xf5, 0x55, 0x44, 0xe8,
- 0x57, 0x08, 0xe6, 0x06, 0x2a, 0xb9, 0x13, 0xa6, 0x8b, 0x2d, 0xe7, 0xc6, 0xa8, 0xe5, 0x9c, 0x38,
- 0xf8, 0x7b, 0x04, 0xcf, 0x09, 0xe5, 0xd5, 0x71, 0x6f, 0x45, 0x70, 0xef, 0xf9, 0xc1, 0x95, 0x6c,
- 0x45, 0xc6, 0x3b, 0x16, 0x5e, 0xc1, 0x80, 0x99, 0x99, 0xe2, 0x5e, 0x10, 0x70, 0x9f, 0xa7, 0x06,
- 0x3e, 0xe1, 0x72, 0x19, 0x40, 0xdc, 0xee, 0x40, 0x7c, 0xb7, 0xab, 0xeb, 0xb2, 0x0a, 0xd2, 0x4e,
- 0x97, 0x78, 0x38, 0xe3, 0xd8, 0xef, 0x74, 0xcb, 0xdd, 0xa6, 0xb1, 0x77, 0xd0, 0x90, 0x76, 0xba,
- 0xf2, 0x15, 0xc0, 0x25, 0xa3, 0x45, 0x3c, 0x9a, 0x75, 0x14, 0x4a, 0x46, 0x8b, 0x68, 0x58, 0x32,
- 0x59, 0x85, 0xf8, 0x1b, 0x7a, 0xf3, 0x3e, 0x71, 0x02, 0x1c, 0x1d, 0x6b, 0xa4, 0x61, 0x8f, 0x93,
- 0x05, 0xbf, 0x07, 0x09, 0x77, 0x62, 0x79, 0xd1, 0xb2, 0xb8, 0x6f, 0x92, 0x65, 0x89, 0x85, 0xe5,
- 0x0e, 0x79, 0x73, 0xd9, 0x52, 0x79, 0x09, 0xc6, 0x1a, 0xed, 0xfd, 0x03, 0x93, 0x2c, 0x3e, 0xa8,
- 0xe6, 0x88, 0xb5, 0xbb, 0x30, 0x41, 0x3d, 0xba, 0xe0, 0xa9, 0xab, 0xce, 0xa3, 0xc9, 0x29, 0xf6,
- 0x7d, 0xe2, 0xee, 0x5b, 0x3a, 0x43, 0x72, 0x1a, 0x12, 0x6f, 0x9a, 0x5d, 0xaf, 0xe8, 0xbb, 0x1d,
- 0x29, 0x1d, 0xd5, 0xde, 0x45, 0x90, 0xa8, 0xea, 0xfa, 0x91, 0x1d, 0xf0, 0xab, 0x10, 0xaf, 0x76,
- 0x7e, 0x64, 0x10, 0x07, 0x2f, 0x91, 0x88, 0x5a, 0x62, 0x12, 0x53, 0x5b, 0x2c, 0x5f, 0x65, 0xe3,
- 0xfe, 0x2c, 0x8d, 0x3b, 0xa3, 0x67, 0xc7, 0x5e, 0xe3, 0x62, 0x4f, 0x00, 0xb4, 0x94, 0x06, 0xe2,
- 0x7f, 0x1d, 0x26, 0x99, 0x55, 0xe4, 0x0c, 0x71, 0x43, 0x12, 0x0d, 0xd9, 0x58, 0x59, 0x1a, 0x9a,
- 0x0e, 0xd3, 0xdc, 0xc2, 0x96, 0x29, 0x13, 0xe2, 0x00, 0x53, 0x3b, 0xcc, 0x59, 0x3e, 0xcc, 0xfe,
- 0xaa, 0x24, 0xd4, 0x39, 0x27, 0x46, 0x76, 0xb8, 0x17, 0x1d, 0x72, 0x06, 0x83, 0x68, 0xfd, 0xad,
- 0x8d, 0x01, 0xae, 0xb7, 0x0f, 0xb5, 0x57, 0x01, 0x9c, 0x94, 0xaf, 0x19, 0xc7, 0x0f, 0x84, 0xac,
- 0x9b, 0x71, 0x03, 0xbc, 0x7b, 0xa0, 0xef, 0xea, 0x3d, 0x5b, 0x85, 0xef, 0xa7, 0xac, 0x02, 0x03,
- 0x4e, 0x8a, 0xd9, 0xf6, 0x2f, 0x85, 0xda, 0xfb, 0x76, 0x62, 0x96, 0xaa, 0xe2, 0xa8, 0xde, 0xd5,
- 0xcd, 0x92, 0xd1, 0x31, 0x0f, 0xf4, 0xae, 0x60, 0x91, 0x97, 0xd7, 0xb8, 0x84, 0x9d, 0xc9, 0xbf,
- 0x40, 0x2d, 0x02, 0x8d, 0xd6, 0xb4, 0x0f, 0x6d, 0x07, 0xad, 0x56, 0x60, 0xe0, 0x01, 0x71, 0x84,
- 0x07, 0x94, 0x37, 0xb8, 0xfe, 0x6d, 0x88, 0x9b, 0xc2, 0xa7, 0xe5, 0x0d, 0xee, 0x3b, 0x67, 0xb8,
- 0xb3, 0xfc, 0x37, 0xa6, 0x1b, 0x53, 0xd7, 0xe5, 0x97, 0x42, 0x5d, 0x0e, 0xe8, 0x6e, 0x47, 0x8d,
- 0x29, 0x8e, 0x1a, 0xd3, 0x3f, 0xd1, 0x8e, 0xc3, 0x1a, 0xae, 0xea, 0xf7, 0x9b, 0xc7, 0x87, 0xa6,
- 0xfc, 0x72, 0x28, 0xf6, 0x45, 0x54, 0xa1, 0xae, 0x16, 0xa2, 0xc2, 0x5f, 0x94, 0xca, 0x65, 0xea,
- 0xee, 0xf5, 0x11, 0x28, 0x50, 0x94, 0x2a, 0x15, 0x5a, 0xb6, 0x13, 0xef, 0x3d, 0x5a, 0x40, 0x1f,
- 0x3c, 0x5a, 0x88, 0x69, 0xbf, 0x43, 0x70, 0x89, 0x68, 0x32, 0xc4, 0xbd, 0x26, 0x38, 0x7f, 0xd9,
- 0xad, 0x19, 0x7e, 0x11, 0xf8, 0xaf, 0x91, 0xf7, 0xaf, 0x08, 0x94, 0x01, 0x5f, 0xdd, 0x78, 0xe7,
- 0x22, 0xb9, 0x5c, 0x44, 0xb5, 0xff, 0x7d, 0xcc, 0xef, 0xc2, 0xd8, 0x6e, 0xfb, 0x81, 0xde, 0xb5,
- 0xde, 0x04, 0xd6, 0x1f, 0x8e, 0xcb, 0xee, 0x61, 0x8e, 0x33, 0xe4, 0xca, 0x1c, 0xe7, 0x38, 0x59,
- 0x5e, 0x56, 0x20, 0x5e, 0x6d, 0x9a, 0x4d, 0xdb, 0x83, 0x29, 0x5a, 0x5f, 0x9b, 0x66, 0x53, 0x5b,
- 0x83, 0xa9, 0xed, 0x87, 0xb5, 0xb7, 0x4d, 0xdd, 0x68, 0x35, 0xef, 0x1d, 0x8a, 0x67, 0xa0, 0x6e,
- 0xbf, 0xba, 0x9a, 0x1d, 0x4b, 0xb4, 0x92, 0x27, 0xa8, 0x18, 0xb7, 0xfd, 0x79, 0x0b, 0x66, 0x76,
- 0x2c, 0xb7, 0x6d, 0x3b, 0xce, 0xcc, 0x59, 0x1d, 0xd3, 0x87, 0x17, 0x9a, 0x32, 0xec, 0x35, 0x65,
- 0x69, 0x40, 0xdb, 0x7c, 0xeb, 0xc4, 0xfa, 0xd1, 0x40, 0xdb, 0xd9, 0x78, 0x62, 0x26, 0x79, 0x29,
- 0x1b, 0x4f, 0x40, 0x72, 0x9a, 0xac, 0xfb, 0x37, 0x0c, 0x49, 0xa7, 0xd5, 0xa9, 0xea, 0xf7, 0xdb,
- 0x46, 0xdb, 0x1c, 0xec, 0x57, 0xa9, 0xc7, 0xf2, 0x37, 0x61, 0xc2, 0x0a, 0xa9, 0xfd, 0x8b, 0x00,
- 0x76, 0x85, 0xb4, 0x28, 0xc2, 0x14, 0x64, 0xc0, 0xa6, 0x8e, 0x67, 0x23, 0xdf, 0x04, 0x5c, 0xaf,
- 0x6f, 0x93, 0x97, 0x5b, 0x61, 0xa8, 0xe9, 0xb6, 0xde, 0xeb, 0x35, 0xf7, 0x75, 0xf2, 0x8b, 0x8c,
- 0xf5, 0xf6, 0x1b, 0xd6, 0x04, 0x72, 0x01, 0xa4, 0xfa, 0x36, 0x69, 0x78, 0x17, 0xa3, 0x4c, 0xd3,
- 0x90, 0xea, 0xdb, 0xa9, 0xbf, 0x20, 0x98, 0xe6, 0x46, 0x65, 0x0d, 0xa6, 0x9c, 0x01, 0xe6, 0x71,
- 0xc7, 0x1b, 0xdc, 0x98, 0xeb, 0xb3, 0x74, 0x4e, 0x9f, 0x53, 0x25, 0x98, 0x15, 0xc6, 0xe5, 0x65,
- 0x90, 0xd9, 0x21, 0xe2, 0x04, 0xd8, 0x0d, 0xb5, 0x8f, 0x44, 0xfb, 0x3f, 0x00, 0x2f, 0xae, 0xf2,
- 0x2c, 0x4c, 0xee, 0xde, 0xbd, 0x5d, 0xfb, 0x41, 0xbd, 0xf6, 0xe6, 0x6e, 0xad, 0x9a, 0x44, 0xda,
- 0x1f, 0x10, 0x4c, 0x92, 0xb6, 0x75, 0xaf, 0x73, 0xa4, 0xcb, 0x65, 0x40, 0x25, 0xc2, 0x87, 0xa7,
- 0xf3, 0x1b, 0x95, 0xe4, 0x15, 0x40, 0xe5, 0xe8, 0x50, 0xa3, 0xb2, 0x9c, 0x07, 0x54, 0x21, 0x00,
- 0x47, 0x43, 0x06, 0x55, 0xb4, 0x7f, 0x61, 0x78, 0x96, 0x6d, 0xa3, 0xdd, 0x7a, 0x72, 0x85, 0xff,
- 0x6e, 0x2a, 0x4e, 0xac, 0xe6, 0xd7, 0x0a, 0xcb, 0xd6, 0x3f, 0x94, 0x92, 0x1a, 0xff, 0x09, 0x55,
- 0x04, 0xaa, 0xb2, 0x1a, 0x74, 0x4f, 0xa4, 0x18, 0x67, 0x66, 0x18, 0xb8, 0x27, 0xc2, 0x49, 0x07,
- 0xee, 0x89, 0x70, 0xd2, 0x81, 0x7b, 0x22, 0x9c, 0x74, 0xe0, 0x2c, 0x80, 0x93, 0x0e, 0xdc, 0x13,
- 0xe1, 0xa4, 0x03, 0xf7, 0x44, 0x38, 0xe9, 0xe0, 0x3d, 0x11, 0x22, 0x0e, 0xbc, 0x27, 0xc2, 0xcb,
- 0x07, 0xef, 0x89, 0xf0, 0xf2, 0xc1, 0x7b, 0x22, 0xc5, 0xb8, 0xd9, 0x3d, 0xd6, 0x83, 0x4f, 0x1d,
- 0x78, 0xfb, 0x61, 0x1f, 0x81, 0x5e, 0x05, 0xde, 0x81, 0x59, 0x67, 0x43, 0xa2, 0xd2, 0x31, 0xcc,
- 0x66, 0xdb, 0xd0, 0xbb, 0xf2, 0x37, 0x60, 0xca, 0x19, 0x72, 0x3e, 0x73, 0xfc, 0x3e, 0x03, 0x1d,
- 0x39, 0xa9, 0xb7, 0x9c, 0xb6, 0xf6, 0x65, 0x1c, 0xe6, 0x9c, 0x81, 0x7a, 0xf3, 0x81, 0xce, 0xdd,
- 0x32, 0x5a, 0x12, 0xce, 0x94, 0x66, 0x2c, 0xf3, 0xfe, 0xe9, 0x82, 0x33, 0x5a, 0xa2, 0x6c, 0x5a,
- 0x12, 0x4e, 0x97, 0x78, 0x3d, 0xef, 0x05, 0xb4, 0x24, 0xdc, 0x3c, 0xe2, 0xf5, 0xe8, 0xfb, 0x86,
- 0xea, 0xb9, 0x77, 0x90, 0x78, 0xbd, 0x2a, 0x65, 0xd9, 0x92, 0x70, 0x1b, 0x89, 0xd7, 0xab, 0x51,
- 0xbe, 0x2d, 0x09, 0x67, 0x4f, 0xbc, 0xde, 0x4d, 0xca, 0xbc, 0x25, 0xe1, 0x14, 0x8a, 0xd7, 0xfb,
- 0x16, 0xe5, 0xe0, 0x92, 0x70, 0x57, 0x89, 0xd7, 0x7b, 0x9d, 0xb2, 0x71, 0x49, 0xb8, 0xb5, 0xc4,
- 0xeb, 0x6d, 0x51, 0x5e, 0x66, 0xc4, 0xfb, 0x4b, 0xbc, 0xe2, 0x2d, 0x8f, 0xa1, 0x19, 0xf1, 0x26,
- 0x13, 0xaf, 0xf9, 0x6d, 0x8f, 0xab, 0x19, 0xf1, 0x4e, 0x13, 0xaf, 0xf9, 0x86, 0xc7, 0xda, 0x8c,
- 0x78, 0x56, 0xc6, 0x6b, 0x6e, 0x7b, 0xfc, 0xcd, 0x88, 0xa7, 0x66, 0xbc, 0x66, 0xdd, 0x63, 0x72,
- 0x46, 0x3c, 0x3f, 0xe3, 0x35, 0x77, 0xbc, 0x4d, 0xf4, 0x8f, 0x04, 0xfa, 0x31, 0xb7, 0xa0, 0x34,
- 0x81, 0x7e, 0xe0, 0x43, 0x3d, 0xa1, 0x90, 0x31, 0x3a, 0x1e, 0xed, 0x34, 0x81, 0x76, 0xe0, 0x43,
- 0x39, 0x4d, 0xa0, 0x1c, 0xf8, 0xd0, 0x4d, 0x13, 0xe8, 0x06, 0x3e, 0x54, 0xd3, 0x04, 0xaa, 0x81,
- 0x0f, 0xcd, 0x34, 0x81, 0x66, 0xe0, 0x43, 0x31, 0x4d, 0xa0, 0x18, 0xf8, 0xd0, 0x4b, 0x13, 0xe8,
- 0x05, 0x3e, 0xd4, 0x5a, 0x14, 0xa9, 0x05, 0x7e, 0xb4, 0x5a, 0x14, 0x69, 0x05, 0x7e, 0x94, 0x7a,
- 0x51, 0xa4, 0xd4, 0x44, 0xff, 0x74, 0x61, 0xcc, 0x1a, 0x62, 0xd8, 0xb4, 0x28, 0xb2, 0x09, 0xfc,
- 0x98, 0xb4, 0x28, 0x32, 0x09, 0xfc, 0x58, 0xb4, 0x28, 0xb2, 0x08, 0xfc, 0x18, 0xf4, 0x58, 0x64,
- 0x90, 0x77, 0xc7, 0x47, 0x13, 0x8e, 0x14, 0xc3, 0x18, 0x84, 0x23, 0x30, 0x08, 0x47, 0x60, 0x10,
- 0x8e, 0xc0, 0x20, 0x1c, 0x81, 0x41, 0x38, 0x02, 0x83, 0x70, 0x04, 0x06, 0xe1, 0x08, 0x0c, 0xc2,
- 0x51, 0x18, 0x84, 0x23, 0x31, 0x08, 0x07, 0x31, 0x68, 0x51, 0xbc, 0xf1, 0x00, 0x7e, 0x05, 0x69,
- 0x51, 0x3c, 0xfa, 0x0c, 0xa7, 0x10, 0x8e, 0x44, 0x21, 0x1c, 0x44, 0xa1, 0x8f, 0x30, 0x3c, 0xcb,
- 0x51, 0x88, 0x9c, 0x0f, 0x5d, 0x54, 0x05, 0xda, 0x88, 0x70, 0xc1, 0xc2, 0x8f, 0x53, 0x1b, 0x11,
- 0x0e, 0xa9, 0x87, 0xf1, 0x6c, 0xb0, 0x0a, 0xd5, 0x22, 0x54, 0xa1, 0x9b, 0x94, 0x43, 0x1b, 0x11,
- 0x2e, 0x5e, 0x0c, 0x72, 0x6f, 0x73, 0x58, 0x11, 0x78, 0x3d, 0x52, 0x11, 0xd8, 0x8a, 0x54, 0x04,
- 0x6e, 0x79, 0x08, 0xfe, 0x54, 0x82, 0xe7, 0x3c, 0x04, 0x9d, 0xbf, 0x76, 0x1f, 0x1e, 0x59, 0x25,
- 0xc0, 0x3b, 0xa2, 0x92, 0xdd, 0x63, 0x1b, 0x06, 0x46, 0x69, 0xab, 0x25, 0xdf, 0xe6, 0x0f, 0xab,
- 0x8a, 0xa3, 0x1e, 0xe0, 0x30, 0x88, 0x93, 0xcd, 0xd0, 0x45, 0xc0, 0x5b, 0xad, 0x9e, 0x5d, 0x2d,
- 0xfc, 0x96, 0xad, 0x34, 0x2c, 0xb1, 0xdc, 0x80, 0x71, 0x5b, 0xbd, 0x67, 0xc3, 0x7b, 0x9e, 0x85,
- 0xab, 0x0d, 0x32, 0x93, 0xf6, 0x18, 0x41, 0x9a, 0xa3, 0xf2, 0xc5, 0x1c, 0x19, 0xbc, 0x12, 0xe9,
- 0xc8, 0x80, 0x4b, 0x10, 0xef, 0xf8, 0xe0, 0xff, 0x07, 0x4f, 0xaa, 0xd9, 0x2c, 0x11, 0x8f, 0x12,
- 0x7e, 0x02, 0x33, 0xde, 0x13, 0xd8, 0xdf, 0x6c, 0xeb, 0xe1, 0xbb, 0x99, 0x7e, 0xa9, 0xb9, 0x2e,
- 0xec, 0xa2, 0x0d, 0x35, 0xa3, 0xd9, 0xaa, 0x15, 0x61, 0xb6, 0xde, 0xb1, 0x77, 0x00, 0x7a, 0xed,
- 0x8e, 0xd1, 0xdb, 0x6e, 0x1e, 0x85, 0x6d, 0x46, 0x24, 0xac, 0xd6, 0xfc, 0xe4, 0xd7, 0x0b, 0x31,
- 0xed, 0x65, 0x98, 0xba, 0x63, 0x74, 0xf5, 0xbd, 0xce, 0xbe, 0xd1, 0xfe, 0xb1, 0xde, 0x12, 0x0c,
- 0x27, 0x5c, 0xc3, 0x62, 0xfc, 0x89, 0xa5, 0xfd, 0x0b, 0x04, 0x97, 0x59, 0xf5, 0xef, 0xb6, 0xcd,
- 0x83, 0x2d, 0xc3, 0xea, 0xe9, 0x5f, 0x85, 0x84, 0x4e, 0x80, 0xb3, 0xdf, 0x5d, 0x93, 0xee, 0x77,
- 0xa4, 0xaf, 0xfa, 0xb2, 0xfd, 0x6f, 0x83, 0x9a, 0x08, 0xbb, 0x20, 0xee, 0xb2, 0xf9, 0xd4, 0x55,
- 0x18, 0x73, 0xe6, 0xe7, 0xfd, 0x9a, 0x16, 0xfc, 0xfa, 0xad, 0x8f, 0x5f, 0x36, 0x8f, 0xe4, 0x5b,
- 0x9c, 0x5f, 0xcc, 0xe7, 0xaa, 0xaf, 0xfa, 0xb2, 0x4b, 0xbe, 0x72, 0xc2, 0xea, 0xff, 0x6c, 0x46,
- 0x85, 0x3b, 0x99, 0x81, 0x44, 0x4d, 0xd4, 0xf1, 0xf7, 0xb3, 0x0a, 0xf1, 0x7a, 0xa7, 0xa5, 0xcb,
- 0xcf, 0xc1, 0xd8, 0x1b, 0xcd, 0x7b, 0xfa, 0x21, 0x09, 0xb2, 0xf3, 0x43, 0x5e, 0x82, 0x44, 0xe5,
- 0xa0, 0x7d, 0xd8, 0xea, 0xea, 0x06, 0x39, 0xb3, 0x27, 0x5b, 0xe8, 0x96, 0x4d, 0x83, 0xca, 0xb4,
- 0x0a, 0x5c, 0xaa, 0x77, 0x8c, 0xf2, 0x43, 0x93, 0xad, 0x1b, 0xcb, 0x42, 0x8a, 0x90, 0x33, 0x9f,
- 0xdb, 0x56, 0x36, 0x5a, 0x0a, 0xe5, 0xb1, 0x8f, 0x4f, 0x17, 0xd0, 0x2e, 0xdd, 0x3f, 0xdf, 0x86,
- 0xe7, 0x49, 0xfa, 0x0c, 0x4c, 0x95, 0x0f, 0x9b, 0x6a, 0x82, 0x9c, 0x53, 0x33, 0xd3, 0x6d, 0x59,
- 0xd3, 0x19, 0xbe, 0xd3, 0x3d, 0x9d, 0x67, 0x56, 0x53, 0x34, 0xd4, 0x33, 0x3c, 0x92, 0x67, 0xbe,
- 0xd3, 0x2d, 0x87, 0x4d, 0x27, 0x78, 0xf6, 0x22, 0x4c, 0x50, 0x19, 0xc3, 0x06, 0x36, 0x53, 0xf2,
- 0x59, 0x0d, 0x26, 0x99, 0x84, 0x95, 0xc7, 0x00, 0x95, 0x92, 0x31, 0xeb, 0xbf, 0x72, 0x12, 0x59,
- 0xff, 0x55, 0x92, 0x52, 0xf6, 0x2a, 0xcc, 0x0a, 0xfb, 0x97, 0x96, 0xa4, 0x9a, 0x04, 0xeb, 0xbf,
- 0x5a, 0x72, 0x32, 0x15, 0x7f, 0xef, 0x37, 0x6a, 0x2c, 0xfb, 0x0a, 0xc8, 0x83, 0x3b, 0x9d, 0xf2,
- 0x38, 0x48, 0x25, 0x6b, 0xca, 0xe7, 0x41, 0x2a, 0x97, 0x93, 0x28, 0x35, 0xfb, 0xb3, 0x5f, 0xa6,
- 0x27, 0xcb, 0xba, 0x69, 0xea, 0xdd, 0xbb, 0xba, 0x59, 0x2e, 0x13, 0xe3, 0xd7, 0xe0, 0xb2, 0xef,
- 0x4e, 0xa9, 0x65, 0x5f, 0xa9, 0x38, 0xf6, 0xd5, 0xea, 0x80, 0x7d, 0xb5, 0x6a, 0xdb, 0xa3, 0xa2,
- 0x7b, 0xe2, 0x5c, 0x92, 0x7d, 0x76, 0x19, 0x95, 0x16, 0x73, 0xc2, 0x5d, 0x2a, 0xbe, 0x46, 0x74,
- 0xcb, 0xbe, 0xba, 0x7a, 0xc8, 0x89, 0x75, 0xb9, 0x58, 0x21, 0xf6, 0x15, 0x5f, 0xfb, 0xfb, 0xc2,
- 0xb1, 0x2a, 0xff, 0x86, 0x20, 0x93, 0x54, 0xa8, 0xc3, 0x55, 0xdf, 0x49, 0x0e, 0x98, 0xcb, 0xee,
- 0x55, 0xea, 0x70, 0xcd, 0x57, 0xb7, 0x1d, 0x72, 0xe9, 0xab, 0x56, 0x5c, 0x21, 0x2f, 0xf9, 0xd2,
- 0xaa, 0x7c, 0xd9, 0xcd, 0x51, 0xae, 0x02, 0x93, 0x00, 0xb9, 0x5a, 0xc5, 0x0a, 0x31, 0x28, 0x07,
- 0x1a, 0x04, 0x47, 0xc9, 0xb5, 0x2c, 0xbe, 0x4e, 0x26, 0xa9, 0x04, 0x4e, 0x12, 0x12, 0x2a, 0xd7,
- 0xbc, 0xbc, 0x7b, 0x72, 0xa6, 0xc6, 0x9e, 0x9c, 0xa9, 0xb1, 0x7f, 0x9c, 0xa9, 0xb1, 0x4f, 0xce,
- 0x54, 0xf4, 0xd9, 0x99, 0x8a, 0x3e, 0x3f, 0x53, 0xd1, 0x17, 0x67, 0x2a, 0x7a, 0xa7, 0xaf, 0xa2,
- 0x0f, 0xfa, 0x2a, 0xfa, 0xb0, 0xaf, 0xa2, 0x3f, 0xf6, 0x55, 0xf4, 0xb8, 0xaf, 0xa2, 0x93, 0xbe,
- 0x1a, 0x7b, 0xd2, 0x57, 0x63, 0x9f, 0xf4, 0x55, 0xf4, 0x59, 0x5f, 0x8d, 0x7d, 0xde, 0x57, 0xd1,
- 0x17, 0x7d, 0x35, 0xf6, 0xce, 0xa7, 0x6a, 0xec, 0xd1, 0xa7, 0x6a, 0xec, 0x83, 0x4f, 0x55, 0xf4,
- 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5a, 0xab, 0x64, 0x51, 0x3b, 0x36, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/typedecl/typedecl.pb.go b/vendor/github.com/gogo/protobuf/test/typedecl/typedecl.pb.go
index 4fe80dd619..962012f37a 100644
--- a/vendor/github.com/gogo/protobuf/test/typedecl/typedecl.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/typedecl/typedecl.pb.go
@@ -3,12 +3,13 @@
package typedecl
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import io "io"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -25,7 +26,7 @@ func (m *Dropped) Reset() { *m = Dropped{} }
func (m *Dropped) String() string { return proto.CompactTextString(m) }
func (*Dropped) ProtoMessage() {}
func (*Dropped) Descriptor() ([]byte, []int) {
- return fileDescriptor_typedecl_3980e2f1b7c625af, []int{0}
+ return fileDescriptor_d070f1c0d5954996, []int{0}
}
func (m *Dropped) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -42,8 +43,8 @@ func (m *Dropped) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Dropped) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Dropped.Merge(dst, src)
+func (m *Dropped) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Dropped.Merge(m, src)
}
func (m *Dropped) XXX_Size() int {
return m.Size()
@@ -72,7 +73,7 @@ func (m *DroppedWithoutGetters) Reset() { *m = DroppedWithoutGetters{} }
func (m *DroppedWithoutGetters) String() string { return proto.CompactTextString(m) }
func (*DroppedWithoutGetters) ProtoMessage() {}
func (*DroppedWithoutGetters) Descriptor() ([]byte, []int) {
- return fileDescriptor_typedecl_3980e2f1b7c625af, []int{1}
+ return fileDescriptor_d070f1c0d5954996, []int{1}
}
func (m *DroppedWithoutGetters) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -89,8 +90,8 @@ func (m *DroppedWithoutGetters) XXX_Marshal(b []byte, deterministic bool) ([]byt
return b[:n], nil
}
}
-func (dst *DroppedWithoutGetters) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DroppedWithoutGetters.Merge(dst, src)
+func (m *DroppedWithoutGetters) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DroppedWithoutGetters.Merge(m, src)
}
func (m *DroppedWithoutGetters) XXX_Size() int {
return m.Size()
@@ -112,7 +113,7 @@ func (m *Kept) Reset() { *m = Kept{} }
func (m *Kept) String() string { return proto.CompactTextString(m) }
func (*Kept) ProtoMessage() {}
func (*Kept) Descriptor() ([]byte, []int) {
- return fileDescriptor_typedecl_3980e2f1b7c625af, []int{2}
+ return fileDescriptor_d070f1c0d5954996, []int{2}
}
func (m *Kept) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -129,8 +130,8 @@ func (m *Kept) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Kept) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Kept.Merge(dst, src)
+func (m *Kept) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Kept.Merge(m, src)
}
func (m *Kept) XXX_Size() int {
return m.Size()
@@ -160,6 +161,29 @@ func init() {
proto.RegisterType((*DroppedWithoutGetters)(nil), "typedecl.DroppedWithoutGetters")
proto.RegisterType((*Kept)(nil), "typedecl.Kept")
}
+
+func init() { proto.RegisterFile("typedecl.proto", fileDescriptor_d070f1c0d5954996) }
+
+var fileDescriptor_d070f1c0d5954996 = []byte{
+ // 246 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2b, 0xa9, 0x2c, 0x48,
+ 0x4d, 0x49, 0x4d, 0xce, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
+ 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5,
+ 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x54, 0x32, 0xe5, 0x62,
+ 0x77, 0x29, 0xca, 0x2f, 0x28, 0x48, 0x4d, 0x11, 0x12, 0xe2, 0x62, 0xc9, 0x4b, 0xcc, 0x4d, 0x95,
+ 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x0c, 0x02, 0xb3, 0x85, 0x04, 0xb8, 0x98, 0x13, 0xd3, 0x53, 0x25,
+ 0x98, 0x14, 0x18, 0x35, 0x58, 0x83, 0x40, 0x4c, 0x2b, 0x96, 0x0f, 0x0b, 0xe5, 0x19, 0x94, 0xfc,
+ 0xb9, 0x44, 0xa1, 0xda, 0xc2, 0x33, 0x4b, 0x32, 0xf2, 0x4b, 0x4b, 0xdc, 0x53, 0x4b, 0x4a, 0x52,
+ 0x8b, 0x8a, 0x85, 0xc4, 0xb8, 0xd8, 0x32, 0x52, 0x33, 0xd3, 0x33, 0x4a, 0xc0, 0xc6, 0x30, 0x07,
+ 0x41, 0x79, 0x42, 0x22, 0x5c, 0xac, 0xe5, 0x99, 0x29, 0x25, 0x19, 0x60, 0xa3, 0x98, 0x83, 0x20,
+ 0x1c, 0x2b, 0x8e, 0x8e, 0x05, 0xf2, 0x0c, 0x60, 0x03, 0x75, 0xb8, 0x58, 0xbc, 0x53, 0x0b, 0x4a,
+ 0x88, 0x73, 0x84, 0x93, 0xce, 0x83, 0x87, 0x72, 0x8c, 0x3f, 0x1e, 0xca, 0x31, 0xae, 0x78, 0x24,
+ 0xc7, 0xb8, 0xe3, 0x91, 0x1c, 0xe3, 0x81, 0x47, 0x72, 0x8c, 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78,
+ 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x8f, 0x47, 0x72, 0x0c, 0x0d, 0x8f, 0xe5, 0x18, 0x26,
+ 0x3c, 0x96, 0x63, 0x48, 0x62, 0x03, 0x7b, 0xd5, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x57,
+ 0x14, 0x5c, 0x35, 0x01, 0x00, 0x00,
+}
+
func (this *Dropped) VerboseEqual(that interface{}) error {
if that == nil {
if this == nil {
@@ -621,7 +645,7 @@ func (m *Dropped) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -649,7 +673,7 @@ func (m *Dropped) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -659,6 +683,9 @@ func (m *Dropped) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypedecl
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypedecl
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -678,7 +705,7 @@ func (m *Dropped) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Age |= (int32(b) & 0x7F) << shift
+ m.Age |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -692,6 +719,9 @@ func (m *Dropped) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypedecl
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypedecl
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -719,7 +749,7 @@ func (m *DroppedWithoutGetters) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -747,7 +777,7 @@ func (m *DroppedWithoutGetters) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Height |= (int64(b) & 0x7F) << shift
+ m.Height |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -766,7 +796,7 @@ func (m *DroppedWithoutGetters) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Width |= (int64(b) & 0x7F) << shift
+ m.Width |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -780,6 +810,9 @@ func (m *DroppedWithoutGetters) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypedecl
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypedecl
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -807,7 +840,7 @@ func (m *Kept) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -835,7 +868,7 @@ func (m *Kept) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -845,6 +878,9 @@ func (m *Kept) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypedecl
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypedecl
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -864,7 +900,7 @@ func (m *Kept) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Age |= (int32(b) & 0x7F) << shift
+ m.Age |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -878,6 +914,9 @@ func (m *Kept) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypedecl
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypedecl
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -944,10 +983,13 @@ func skipTypedecl(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthTypedecl
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthTypedecl
+ }
return iNdEx, nil
case 3:
for {
@@ -976,6 +1018,9 @@ func skipTypedecl(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthTypedecl
+ }
}
return iNdEx, nil
case 4:
@@ -994,25 +1039,3 @@ var (
ErrInvalidLengthTypedecl = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowTypedecl = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("typedecl.proto", fileDescriptor_typedecl_3980e2f1b7c625af) }
-
-var fileDescriptor_typedecl_3980e2f1b7c625af = []byte{
- // 246 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2b, 0xa9, 0x2c, 0x48,
- 0x4d, 0x49, 0x4d, 0xce, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74,
- 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5,
- 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x54, 0x32, 0xe5, 0x62,
- 0x77, 0x29, 0xca, 0x2f, 0x28, 0x48, 0x4d, 0x11, 0x12, 0xe2, 0x62, 0xc9, 0x4b, 0xcc, 0x4d, 0x95,
- 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x0c, 0x02, 0xb3, 0x85, 0x04, 0xb8, 0x98, 0x13, 0xd3, 0x53, 0x25,
- 0x98, 0x14, 0x18, 0x35, 0x58, 0x83, 0x40, 0x4c, 0x2b, 0x96, 0x0f, 0x0b, 0xe5, 0x19, 0x94, 0xfc,
- 0xb9, 0x44, 0xa1, 0xda, 0xc2, 0x33, 0x4b, 0x32, 0xf2, 0x4b, 0x4b, 0xdc, 0x53, 0x4b, 0x4a, 0x52,
- 0x8b, 0x8a, 0x85, 0xc4, 0xb8, 0xd8, 0x32, 0x52, 0x33, 0xd3, 0x33, 0x4a, 0xc0, 0xc6, 0x30, 0x07,
- 0x41, 0x79, 0x42, 0x22, 0x5c, 0xac, 0xe5, 0x99, 0x29, 0x25, 0x19, 0x60, 0xa3, 0x98, 0x83, 0x20,
- 0x1c, 0x2b, 0x8e, 0x8e, 0x05, 0xf2, 0x0c, 0x60, 0x03, 0x75, 0xb8, 0x58, 0xbc, 0x53, 0x0b, 0x4a,
- 0x88, 0x73, 0x84, 0x93, 0xce, 0x83, 0x87, 0x72, 0x8c, 0x3f, 0x1e, 0xca, 0x31, 0xae, 0x78, 0x24,
- 0xc7, 0xb8, 0xe3, 0x91, 0x1c, 0xe3, 0x81, 0x47, 0x72, 0x8c, 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78,
- 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x8f, 0x47, 0x72, 0x0c, 0x0d, 0x8f, 0xe5, 0x18, 0x26,
- 0x3c, 0x96, 0x63, 0x48, 0x62, 0x03, 0x7b, 0xd5, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x57,
- 0x14, 0x5c, 0x35, 0x01, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclall.pb.go b/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclall.pb.go
index fa9361ee51..2dea3cca16 100644
--- a/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclall.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclall.pb.go
@@ -3,12 +3,13 @@
package typedeclall
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import io "io"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -25,7 +26,7 @@ func (m *Dropped) Reset() { *m = Dropped{} }
func (m *Dropped) String() string { return proto.CompactTextString(m) }
func (*Dropped) ProtoMessage() {}
func (*Dropped) Descriptor() ([]byte, []int) {
- return fileDescriptor_typedeclall_37fb6c37f980aef5, []int{0}
+ return fileDescriptor_a18a9e6d5cf09c5a, []int{0}
}
func (m *Dropped) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -42,8 +43,8 @@ func (m *Dropped) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Dropped) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Dropped.Merge(dst, src)
+func (m *Dropped) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Dropped.Merge(m, src)
}
func (m *Dropped) XXX_Size() int {
return m.Size()
@@ -72,7 +73,7 @@ func (m *DroppedWithoutGetters) Reset() { *m = DroppedWithoutGetters{} }
func (m *DroppedWithoutGetters) String() string { return proto.CompactTextString(m) }
func (*DroppedWithoutGetters) ProtoMessage() {}
func (*DroppedWithoutGetters) Descriptor() ([]byte, []int) {
- return fileDescriptor_typedeclall_37fb6c37f980aef5, []int{1}
+ return fileDescriptor_a18a9e6d5cf09c5a, []int{1}
}
func (m *DroppedWithoutGetters) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -89,8 +90,8 @@ func (m *DroppedWithoutGetters) XXX_Marshal(b []byte, deterministic bool) ([]byt
return b[:n], nil
}
}
-func (dst *DroppedWithoutGetters) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DroppedWithoutGetters.Merge(dst, src)
+func (m *DroppedWithoutGetters) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DroppedWithoutGetters.Merge(m, src)
}
func (m *DroppedWithoutGetters) XXX_Size() int {
return m.Size()
@@ -112,7 +113,7 @@ func (m *Kept) Reset() { *m = Kept{} }
func (m *Kept) String() string { return proto.CompactTextString(m) }
func (*Kept) ProtoMessage() {}
func (*Kept) Descriptor() ([]byte, []int) {
- return fileDescriptor_typedeclall_37fb6c37f980aef5, []int{2}
+ return fileDescriptor_a18a9e6d5cf09c5a, []int{2}
}
func (m *Kept) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -129,8 +130,8 @@ func (m *Kept) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Kept) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Kept.Merge(dst, src)
+func (m *Kept) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Kept.Merge(m, src)
}
func (m *Kept) XXX_Size() int {
return m.Size()
@@ -160,6 +161,29 @@ func init() {
proto.RegisterType((*DroppedWithoutGetters)(nil), "typedeclall.DroppedWithoutGetters")
proto.RegisterType((*Kept)(nil), "typedeclall.Kept")
}
+
+func init() { proto.RegisterFile("typedeclall.proto", fileDescriptor_a18a9e6d5cf09c5a) }
+
+var fileDescriptor_a18a9e6d5cf09c5a = []byte{
+ // 253 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2c, 0xa9, 0x2c, 0x48,
+ 0x4d, 0x49, 0x4d, 0xce, 0x49, 0xcc, 0xc9, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x46,
+ 0x12, 0x92, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf,
+ 0x4f, 0xcf, 0xd7, 0x07, 0xab, 0x49, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2, 0x57,
+ 0x49, 0x9f, 0x8b, 0xdd, 0xa5, 0x28, 0xbf, 0xa0, 0x20, 0x35, 0x45, 0x48, 0x88, 0x8b, 0x25, 0x2f,
+ 0x31, 0x37, 0x55, 0x82, 0x51, 0x81, 0x51, 0x83, 0x33, 0x08, 0xcc, 0x16, 0x12, 0xe0, 0x62, 0x4e,
+ 0x4c, 0x4f, 0x95, 0x60, 0x52, 0x60, 0xd4, 0x60, 0x0d, 0x02, 0x31, 0x95, 0xbc, 0xb9, 0x44, 0xa1,
+ 0x1a, 0xc2, 0x33, 0x4b, 0x32, 0xf2, 0x4b, 0x4b, 0xdc, 0x53, 0x4b, 0x4a, 0x52, 0x8b, 0x8a, 0x85,
+ 0xc4, 0xb8, 0xd8, 0x32, 0x52, 0x33, 0xd3, 0x33, 0x4a, 0xc0, 0x06, 0x30, 0x07, 0x41, 0x79, 0x42,
+ 0x22, 0x5c, 0xac, 0xe5, 0x99, 0x29, 0x25, 0x19, 0x60, 0x43, 0x98, 0x83, 0x20, 0x1c, 0x2b, 0x96,
+ 0x8e, 0x05, 0xf2, 0x0c, 0x4a, 0x46, 0x5c, 0x2c, 0xde, 0xa9, 0x05, 0x25, 0xc4, 0x59, 0x6d, 0xc5,
+ 0xf2, 0x61, 0xa1, 0x3c, 0xa3, 0x93, 0xc1, 0x83, 0x87, 0x72, 0x8c, 0x3f, 0x1e, 0xca, 0x31, 0xae,
+ 0x78, 0x24, 0xc7, 0xb8, 0xe3, 0x91, 0x1c, 0xe3, 0x81, 0x47, 0x72, 0x8c, 0x27, 0x1e, 0xc9, 0x31,
+ 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x8f, 0x47, 0x72, 0x0c, 0x0d, 0x8f, 0xe5,
+ 0x18, 0x26, 0x3c, 0x96, 0x63, 0xd8, 0xf0, 0x58, 0x8e, 0x21, 0x89, 0x0d, 0xec, 0x55, 0x63, 0x40,
+ 0x00, 0x00, 0x00, 0xff, 0xff, 0xbd, 0xed, 0x3d, 0x95, 0x3b, 0x01, 0x00, 0x00,
+}
+
func (this *Dropped) VerboseEqual(that interface{}) error {
if that == nil {
if this == nil {
@@ -621,7 +645,7 @@ func (m *Dropped) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -649,7 +673,7 @@ func (m *Dropped) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -659,6 +683,9 @@ func (m *Dropped) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypedeclall
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypedeclall
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -678,7 +705,7 @@ func (m *Dropped) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Age |= (int32(b) & 0x7F) << shift
+ m.Age |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -692,6 +719,9 @@ func (m *Dropped) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypedeclall
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypedeclall
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -719,7 +749,7 @@ func (m *DroppedWithoutGetters) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -747,7 +777,7 @@ func (m *DroppedWithoutGetters) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Height |= (int64(b) & 0x7F) << shift
+ m.Height |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -766,7 +796,7 @@ func (m *DroppedWithoutGetters) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Width |= (int64(b) & 0x7F) << shift
+ m.Width |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -780,6 +810,9 @@ func (m *DroppedWithoutGetters) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypedeclall
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypedeclall
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -807,7 +840,7 @@ func (m *Kept) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -835,7 +868,7 @@ func (m *Kept) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -845,6 +878,9 @@ func (m *Kept) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypedeclall
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypedeclall
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -864,7 +900,7 @@ func (m *Kept) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Age |= (int32(b) & 0x7F) << shift
+ m.Age |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -878,6 +914,9 @@ func (m *Kept) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypedeclall
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypedeclall
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -944,10 +983,13 @@ func skipTypedeclall(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthTypedeclall
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthTypedeclall
+ }
return iNdEx, nil
case 3:
for {
@@ -976,6 +1018,9 @@ func skipTypedeclall(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthTypedeclall
+ }
}
return iNdEx, nil
case 4:
@@ -994,25 +1039,3 @@ var (
ErrInvalidLengthTypedeclall = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowTypedeclall = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("typedeclall.proto", fileDescriptor_typedeclall_37fb6c37f980aef5) }
-
-var fileDescriptor_typedeclall_37fb6c37f980aef5 = []byte{
- // 253 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2c, 0xa9, 0x2c, 0x48,
- 0x4d, 0x49, 0x4d, 0xce, 0x49, 0xcc, 0xc9, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x46,
- 0x12, 0x92, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf,
- 0x4f, 0xcf, 0xd7, 0x07, 0xab, 0x49, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2, 0x57,
- 0x49, 0x9f, 0x8b, 0xdd, 0xa5, 0x28, 0xbf, 0xa0, 0x20, 0x35, 0x45, 0x48, 0x88, 0x8b, 0x25, 0x2f,
- 0x31, 0x37, 0x55, 0x82, 0x51, 0x81, 0x51, 0x83, 0x33, 0x08, 0xcc, 0x16, 0x12, 0xe0, 0x62, 0x4e,
- 0x4c, 0x4f, 0x95, 0x60, 0x52, 0x60, 0xd4, 0x60, 0x0d, 0x02, 0x31, 0x95, 0xbc, 0xb9, 0x44, 0xa1,
- 0x1a, 0xc2, 0x33, 0x4b, 0x32, 0xf2, 0x4b, 0x4b, 0xdc, 0x53, 0x4b, 0x4a, 0x52, 0x8b, 0x8a, 0x85,
- 0xc4, 0xb8, 0xd8, 0x32, 0x52, 0x33, 0xd3, 0x33, 0x4a, 0xc0, 0x06, 0x30, 0x07, 0x41, 0x79, 0x42,
- 0x22, 0x5c, 0xac, 0xe5, 0x99, 0x29, 0x25, 0x19, 0x60, 0x43, 0x98, 0x83, 0x20, 0x1c, 0x2b, 0x96,
- 0x8e, 0x05, 0xf2, 0x0c, 0x4a, 0x46, 0x5c, 0x2c, 0xde, 0xa9, 0x05, 0x25, 0xc4, 0x59, 0x6d, 0xc5,
- 0xf2, 0x61, 0xa1, 0x3c, 0xa3, 0x93, 0xc1, 0x83, 0x87, 0x72, 0x8c, 0x3f, 0x1e, 0xca, 0x31, 0xae,
- 0x78, 0x24, 0xc7, 0xb8, 0xe3, 0x91, 0x1c, 0xe3, 0x81, 0x47, 0x72, 0x8c, 0x27, 0x1e, 0xc9, 0x31,
- 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x8f, 0x47, 0x72, 0x0c, 0x0d, 0x8f, 0xe5,
- 0x18, 0x26, 0x3c, 0x96, 0x63, 0xd8, 0xf0, 0x58, 0x8e, 0x21, 0x89, 0x0d, 0xec, 0x55, 0x63, 0x40,
- 0x00, 0x00, 0x00, 0xff, 0xff, 0xbd, 0xed, 0x3d, 0x95, 0x3b, 0x01, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/both/types.pb.go b/vendor/github.com/gogo/protobuf/test/types/combos/both/types.pb.go
index d1bbd84e4d..3bcc2425d5 100644
--- a/vendor/github.com/gogo/protobuf/test/types/combos/both/types.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/types/combos/both/types.pb.go
@@ -3,18 +3,17 @@
package types
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import types "github.com/gogo/protobuf/types"
-
-import time "time"
-import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
-
-import bytes "bytes"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
+ types "github.com/gogo/protobuf/types"
+ io "io"
+ math "math"
+ time "time"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -49,7 +48,7 @@ func (m *KnownTypes) Reset() { *m = KnownTypes{} }
func (m *KnownTypes) String() string { return proto.CompactTextString(m) }
func (*KnownTypes) ProtoMessage() {}
func (*KnownTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_6d7bfc155f665581, []int{0}
+ return fileDescriptor_54557d2dac6675e4, []int{0}
}
func (m *KnownTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -66,8 +65,8 @@ func (m *KnownTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *KnownTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_KnownTypes.Merge(dst, src)
+func (m *KnownTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KnownTypes.Merge(m, src)
}
func (m *KnownTypes) XXX_Size() int {
return m.Size()
@@ -187,7 +186,7 @@ func (m *ProtoTypes) Reset() { *m = ProtoTypes{} }
func (m *ProtoTypes) String() string { return proto.CompactTextString(m) }
func (*ProtoTypes) ProtoMessage() {}
func (*ProtoTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_6d7bfc155f665581, []int{1}
+ return fileDescriptor_54557d2dac6675e4, []int{1}
}
func (m *ProtoTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -204,8 +203,8 @@ func (m *ProtoTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *ProtoTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ProtoTypes.Merge(dst, src)
+func (m *ProtoTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ProtoTypes.Merge(m, src)
}
func (m *ProtoTypes) XXX_Size() int {
return m.Size()
@@ -402,7 +401,7 @@ func (m *StdTypes) Reset() { *m = StdTypes{} }
func (m *StdTypes) String() string { return proto.CompactTextString(m) }
func (*StdTypes) ProtoMessage() {}
func (*StdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_6d7bfc155f665581, []int{2}
+ return fileDescriptor_54557d2dac6675e4, []int{2}
}
func (m *StdTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -419,8 +418,8 @@ func (m *StdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *StdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_StdTypes.Merge(dst, src)
+func (m *StdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StdTypes.Merge(m, src)
}
func (m *StdTypes) XXX_Size() int {
return m.Size()
@@ -617,7 +616,7 @@ func (m *RepProtoTypes) Reset() { *m = RepProtoTypes{} }
func (m *RepProtoTypes) String() string { return proto.CompactTextString(m) }
func (*RepProtoTypes) ProtoMessage() {}
func (*RepProtoTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_6d7bfc155f665581, []int{3}
+ return fileDescriptor_54557d2dac6675e4, []int{3}
}
func (m *RepProtoTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -634,8 +633,8 @@ func (m *RepProtoTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
return b[:n], nil
}
}
-func (dst *RepProtoTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RepProtoTypes.Merge(dst, src)
+func (m *RepProtoTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RepProtoTypes.Merge(m, src)
}
func (m *RepProtoTypes) XXX_Size() int {
return m.Size()
@@ -832,7 +831,7 @@ func (m *RepStdTypes) Reset() { *m = RepStdTypes{} }
func (m *RepStdTypes) String() string { return proto.CompactTextString(m) }
func (*RepStdTypes) ProtoMessage() {}
func (*RepStdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_6d7bfc155f665581, []int{4}
+ return fileDescriptor_54557d2dac6675e4, []int{4}
}
func (m *RepStdTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -849,8 +848,8 @@ func (m *RepStdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *RepStdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RepStdTypes.Merge(dst, src)
+func (m *RepStdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RepStdTypes.Merge(m, src)
}
func (m *RepStdTypes) XXX_Size() int {
return m.Size()
@@ -1047,7 +1046,7 @@ func (m *MapProtoTypes) Reset() { *m = MapProtoTypes{} }
func (m *MapProtoTypes) String() string { return proto.CompactTextString(m) }
func (*MapProtoTypes) ProtoMessage() {}
func (*MapProtoTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_6d7bfc155f665581, []int{5}
+ return fileDescriptor_54557d2dac6675e4, []int{5}
}
func (m *MapProtoTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1064,8 +1063,8 @@ func (m *MapProtoTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
return b[:n], nil
}
}
-func (dst *MapProtoTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MapProtoTypes.Merge(dst, src)
+func (m *MapProtoTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MapProtoTypes.Merge(m, src)
}
func (m *MapProtoTypes) XXX_Size() int {
return m.Size()
@@ -1262,7 +1261,7 @@ func (m *MapStdTypes) Reset() { *m = MapStdTypes{} }
func (m *MapStdTypes) String() string { return proto.CompactTextString(m) }
func (*MapStdTypes) ProtoMessage() {}
func (*MapStdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_6d7bfc155f665581, []int{6}
+ return fileDescriptor_54557d2dac6675e4, []int{6}
}
func (m *MapStdTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1279,8 +1278,8 @@ func (m *MapStdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *MapStdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MapStdTypes.Merge(dst, src)
+func (m *MapStdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MapStdTypes.Merge(m, src)
}
func (m *MapStdTypes) XXX_Size() int {
return m.Size()
@@ -1468,7 +1467,7 @@ func (m *OneofProtoTypes) Reset() { *m = OneofProtoTypes{} }
func (m *OneofProtoTypes) String() string { return proto.CompactTextString(m) }
func (*OneofProtoTypes) ProtoMessage() {}
func (*OneofProtoTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_6d7bfc155f665581, []int{7}
+ return fileDescriptor_54557d2dac6675e4, []int{7}
}
func (m *OneofProtoTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1485,8 +1484,8 @@ func (m *OneofProtoTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, err
return b[:n], nil
}
}
-func (dst *OneofProtoTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OneofProtoTypes.Merge(dst, src)
+func (m *OneofProtoTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OneofProtoTypes.Merge(m, src)
}
func (m *OneofProtoTypes) XXX_Size() int {
return m.Size()
@@ -1903,7 +1902,7 @@ func (m *OneofStdTypes) Reset() { *m = OneofStdTypes{} }
func (m *OneofStdTypes) String() string { return proto.CompactTextString(m) }
func (*OneofStdTypes) ProtoMessage() {}
func (*OneofStdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_6d7bfc155f665581, []int{8}
+ return fileDescriptor_54557d2dac6675e4, []int{8}
}
func (m *OneofStdTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1920,8 +1919,8 @@ func (m *OneofStdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
return b[:n], nil
}
}
-func (dst *OneofStdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OneofStdTypes.Merge(dst, src)
+func (m *OneofStdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OneofStdTypes.Merge(m, src)
}
func (m *OneofStdTypes) XXX_Size() int {
return m.Size()
@@ -2480,6 +2479,157 @@ func init() {
proto.RegisterType((*OneofProtoTypes)(nil), "types.OneofProtoTypes")
proto.RegisterType((*OneofStdTypes)(nil), "types.OneofStdTypes")
}
+
+func init() { proto.RegisterFile("combos/both/types.proto", fileDescriptor_54557d2dac6675e4) }
+
+var fileDescriptor_54557d2dac6675e4 = []byte{
+ // 2294 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcf, 0x73, 0x1b, 0x49,
+ 0x19, 0x8d, 0x22, 0x39, 0xb1, 0xdb, 0x76, 0x62, 0x4f, 0x36, 0xcb, 0x60, 0x28, 0x25, 0x78, 0x37,
+ 0xd9, 0xb0, 0x5b, 0x2b, 0xb3, 0x33, 0x2e, 0x03, 0x81, 0x5d, 0xef, 0x4e, 0x25, 0x91, 0xa5, 0xb5,
+ 0x12, 0x45, 0xb6, 0x52, 0xb0, 0xb0, 0x80, 0xb4, 0x56, 0xbc, 0x2e, 0x14, 0x8d, 0x4a, 0x1a, 0xb1,
+ 0xe5, 0x1b, 0x7f, 0x00, 0x07, 0x6e, 0x50, 0xc5, 0x05, 0x6e, 0x5c, 0x39, 0x50, 0xc5, 0x91, 0xe3,
+ 0x1e, 0xf9, 0x0b, 0x60, 0xd7, 0x5c, 0xb8, 0x02, 0x97, 0x5c, 0xa8, 0xa2, 0xa6, 0xbb, 0x67, 0xa6,
+ 0x7f, 0x7c, 0xdd, 0x3d, 0x3d, 0x65, 0xdf, 0x74, 0xb3, 0xa5, 0xaf, 0xdf, 0xbc, 0xf9, 0xe6, 0x8d,
+ 0x5f, 0xbf, 0x6f, 0x3c, 0xe8, 0x2b, 0x9f, 0x84, 0x2f, 0xfa, 0xe1, 0x74, 0xab, 0x1f, 0x46, 0x9f,
+ 0x6e, 0x45, 0xa7, 0xe3, 0xc1, 0xb4, 0x36, 0x9e, 0x84, 0x51, 0xe8, 0x2c, 0xe0, 0x5f, 0x36, 0xde,
+ 0x3e, 0x3e, 0x89, 0x3e, 0x9d, 0xf5, 0x6b, 0x9f, 0x84, 0x2f, 0xb6, 0x8e, 0xc3, 0xe3, 0x70, 0x0b,
+ 0x7f, 0xdb, 0x9f, 0x3d, 0xc7, 0xbf, 0xe1, 0x5f, 0xf0, 0x4f, 0x64, 0xd5, 0x46, 0xf5, 0x38, 0x0c,
+ 0x8f, 0x87, 0x83, 0xac, 0xea, 0x68, 0x36, 0xe9, 0x45, 0x27, 0xe1, 0x88, 0x7e, 0x7f, 0x4b, 0xfc,
+ 0x3e, 0x3a, 0x79, 0x31, 0x98, 0x46, 0xbd, 0x17, 0x63, 0x15, 0xc0, 0x67, 0x93, 0xde, 0x78, 0x3c,
+ 0x98, 0x50, 0x5a, 0x9b, 0xbf, 0xab, 0x20, 0xf4, 0xe1, 0x28, 0xfc, 0x6c, 0x74, 0x18, 0xd3, 0x73,
+ 0xde, 0x42, 0xe5, 0xa3, 0xd9, 0xc4, 0x2d, 0xdd, 0x2e, 0xdd, 0x5b, 0xf6, 0xbe, 0x5a, 0x23, 0x8b,
+ 0x6b, 0xc9, 0xe2, 0xda, 0x03, 0x7a, 0xf4, 0x4e, 0x5c, 0xe5, 0xbc, 0x89, 0x2e, 0x47, 0x53, 0xf7,
+ 0x32, 0xae, 0xdd, 0x90, 0x6a, 0x0f, 0x13, 0x26, 0x9d, 0xcb, 0xd1, 0xd4, 0xa9, 0xa1, 0xf2, 0x51,
+ 0x7f, 0xe8, 0x96, 0x71, 0xf1, 0xd7, 0x65, 0xe0, 0x70, 0xd6, 0x1f, 0x0e, 0x9e, 0xf5, 0x86, 0xb3,
+ 0x41, 0x27, 0x2e, 0x74, 0xde, 0x46, 0xe5, 0xe7, 0xc3, 0xc8, 0xad, 0xe0, 0xfa, 0xaf, 0x49, 0xf5,
+ 0x8f, 0x86, 0x61, 0x2f, 0xa2, 0xe5, 0xcf, 0x87, 0x51, 0x5c, 0x7e, 0xb2, 0xb3, 0xed, 0x2e, 0x28,
+ 0xca, 0x1b, 0xa3, 0x68, 0x67, 0x9b, 0x96, 0x9f, 0xec, 0x6c, 0xc7, 0x6c, 0x66, 0x3b, 0xdb, 0xee,
+ 0x15, 0x05, 0x9b, 0x2e, 0x5b, 0x3f, 0xdb, 0xd9, 0xc6, 0xf0, 0xbe, 0xe7, 0x5e, 0x55, 0xc3, 0xfb,
+ 0x5e, 0x02, 0xef, 0x7b, 0x18, 0xde, 0xf7, 0xdc, 0x45, 0x0d, 0x7c, 0x5a, 0x3f, 0xc3, 0xf5, 0x95,
+ 0x7e, 0x18, 0x0e, 0xdd, 0x25, 0x45, 0x2b, 0x83, 0x30, 0x1c, 0x92, 0x72, 0x5c, 0x17, 0xe3, 0x4f,
+ 0xa3, 0x89, 0x8b, 0x14, 0xf8, 0x07, 0xd1, 0xe4, 0x64, 0x74, 0x4c, 0xf1, 0xa7, 0xd1, 0xc4, 0x79,
+ 0x07, 0x2d, 0xf4, 0x4f, 0xa3, 0xc1, 0xd4, 0x5d, 0x56, 0x9c, 0x40, 0x10, 0x7f, 0x4b, 0x16, 0x90,
+ 0xca, 0xfb, 0x95, 0x7f, 0xfd, 0xe1, 0x56, 0x69, 0xf3, 0x57, 0x2b, 0x08, 0xb5, 0xe3, 0x22, 0xa2,
+ 0x8e, 0x3d, 0xb4, 0x3e, 0x9a, 0x0d, 0x87, 0xbd, 0xfe, 0x70, 0x90, 0x5e, 0x5d, 0xaa, 0x15, 0xdd,
+ 0xf5, 0x97, 0x17, 0x39, 0x0f, 0xd1, 0x5a, 0xf2, 0x61, 0xa2, 0x29, 0x2a, 0x24, 0x8d, 0xe8, 0xa4,
+ 0x25, 0xce, 0x03, 0x74, 0x2d, 0xfd, 0x0c, 0x2b, 0x28, 0x97, 0xc0, 0x84, 0x35, 0xce, 0x07, 0x68,
+ 0x35, 0xf9, 0x04, 0xeb, 0x2a, 0x8f, 0xea, 0xf8, 0x15, 0x2c, 0x04, 0xd6, 0x4e, 0x1e, 0x25, 0xf2,
+ 0x2b, 0xd8, 0x73, 0x21, 0xfa, 0xcb, 0x25, 0x4f, 0x61, 0x8d, 0x40, 0x24, 0x9f, 0x66, 0xf9, 0x15,
+ 0x22, 0x91, 0x9c, 0x42, 0x16, 0xd6, 0x38, 0xef, 0xa1, 0x95, 0xe4, 0x93, 0x20, 0x9f, 0xb6, 0xb9,
+ 0x7a, 0x96, 0x05, 0xd1, 0x73, 0x2e, 0xb9, 0x0b, 0x6b, 0xd8, 0x76, 0x04, 0x79, 0xef, 0x00, 0x7e,
+ 0x85, 0xf3, 0x1e, 0x5a, 0x4a, 0xff, 0xa8, 0xba, 0x2b, 0x26, 0xb1, 0x07, 0x95, 0xcf, 0xff, 0x7e,
+ 0xeb, 0x52, 0x27, 0x5b, 0xe2, 0x7c, 0x0f, 0x2d, 0x26, 0x7f, 0xb4, 0xdd, 0x55, 0x83, 0xc4, 0xe9,
+ 0xea, 0x74, 0x81, 0xb3, 0x87, 0x56, 0x47, 0xe1, 0x28, 0x26, 0x44, 0xf5, 0x7d, 0xcd, 0xac, 0x6f,
+ 0x0a, 0xc2, 0x2f, 0x74, 0x1e, 0xa2, 0x15, 0xfa, 0x01, 0xd1, 0xf8, 0x75, 0xa3, 0xc6, 0x29, 0x0e,
+ 0xb7, 0x8c, 0x81, 0x21, 0x1a, 0x5d, 0x33, 0xea, 0x5c, 0x80, 0x21, 0x32, 0xcd, 0xce, 0x8b, 0x6a,
+ 0x7d, 0xdd, 0xac, 0x75, 0xe1, 0xbc, 0xa8, 0xe0, 0x39, 0x42, 0xbe, 0xe7, 0x3a, 0x46, 0xbd, 0xcb,
+ 0x84, 0x7c, 0x4f, 0x20, 0xe4, 0x7b, 0xee, 0x0d, 0xb3, 0xe6, 0x01, 0x42, 0xbe, 0xe7, 0x04, 0x68,
+ 0x99, 0x7e, 0x80, 0x75, 0xff, 0x8a, 0x49, 0xf7, 0x14, 0x85, 0x5d, 0xc4, 0xb0, 0xa1, 0xda, 0xbf,
+ 0x69, 0xd6, 0xbe, 0xc0, 0x86, 0xde, 0x00, 0x59, 0x7b, 0x88, 0xfe, 0x5f, 0x35, 0xea, 0x5f, 0x68,
+ 0x4f, 0xc0, 0xd8, 0xc1, 0x7f, 0x56, 0xd0, 0xe2, 0x41, 0x74, 0x44, 0xcc, 0xe0, 0x71, 0x21, 0x33,
+ 0x08, 0x2a, 0xbf, 0xfe, 0xc7, 0xad, 0x12, 0x64, 0x09, 0x1f, 0x16, 0xb0, 0x84, 0xa0, 0xf2, 0xdb,
+ 0x18, 0x4d, 0x36, 0x86, 0x66, 0x11, 0x63, 0x08, 0x2a, 0xbf, 0x8f, 0xd1, 0x44, 0x7b, 0xa8, 0xdb,
+ 0xdb, 0x03, 0x45, 0x12, 0x4c, 0xa2, 0x6e, 0x6f, 0x12, 0x22, 0x10, 0xd1, 0x7c, 0xb3, 0x88, 0x55,
+ 0x88, 0x67, 0x47, 0xef, 0x9f, 0xba, 0xbd, 0x61, 0x00, 0xa4, 0x7c, 0x4f, 0x24, 0x95, 0xcf, 0x36,
+ 0x20, 0x52, 0xd8, 0x82, 0x2c, 0xcd, 0x83, 0xe2, 0xf0, 0x16, 0xd2, 0x2c, 0x62, 0x21, 0x22, 0x23,
+ 0x7a, 0x1f, 0xd5, 0xed, 0x8d, 0x44, 0x6c, 0x13, 0xb1, 0x93, 0xc0, 0xce, 0x4e, 0x16, 0xe3, 0x9b,
+ 0x11, 0xdf, 0x32, 0x8c, 0xa5, 0xec, 0xda, 0x58, 0x0a, 0x46, 0xc0, 0xb7, 0x49, 0x66, 0x2b, 0xfb,
+ 0x45, 0x6c, 0x05, 0x03, 0xd1, 0x53, 0xe2, 0xac, 0xa5, 0x61, 0x6f, 0x2d, 0x19, 0x16, 0x6f, 0x2f,
+ 0x0d, 0x7b, 0x7b, 0x91, 0xa1, 0x88, 0xb0, 0xf7, 0x8b, 0x58, 0x8c, 0x7c, 0x8e, 0xf4, 0x36, 0x69,
+ 0xd8, 0xdb, 0x0c, 0x48, 0xcc, 0xf7, 0x04, 0x62, 0x39, 0xad, 0x06, 0x26, 0xe6, 0x7b, 0xce, 0x23,
+ 0x5b, 0xbb, 0xc9, 0x90, 0x38, 0xcb, 0xd9, 0x2f, 0x62, 0x39, 0x32, 0x2b, 0x7a, 0xbb, 0x34, 0xec,
+ 0x6d, 0x47, 0x6e, 0x17, 0xfe, 0x72, 0xf3, 0x37, 0x2b, 0x68, 0xb5, 0x33, 0x18, 0x33, 0x31, 0xa4,
+ 0x89, 0x1c, 0xc9, 0x3e, 0xa6, 0x6e, 0xe9, 0x76, 0xd9, 0x90, 0x43, 0x80, 0x55, 0x4e, 0x3d, 0x73,
+ 0xb1, 0xe4, 0x8e, 0x89, 0x23, 0x6d, 0x59, 0x9f, 0x44, 0xe4, 0x35, 0xce, 0xfb, 0x08, 0x45, 0x19,
+ 0x99, 0xb2, 0x89, 0x0c, 0x75, 0x59, 0x66, 0x8d, 0xf3, 0x2e, 0x5a, 0x3a, 0x4a, 0x29, 0x54, 0x0c,
+ 0x14, 0x92, 0x7d, 0x66, 0xba, 0x02, 0xc8, 0x42, 0x0b, 0x18, 0xc3, 0x2e, 0x0b, 0x49, 0x1b, 0xce,
+ 0x2b, 0x66, 0x10, 0x78, 0xc3, 0x29, 0xa5, 0xaa, 0xab, 0x18, 0xc9, 0x26, 0x55, 0x89, 0x7b, 0xd6,
+ 0x45, 0x23, 0x02, 0xb8, 0x67, 0x95, 0xc2, 0xd9, 0x92, 0x02, 0x47, 0x1d, 0xce, 0xc4, 0x6d, 0x2f,
+ 0x32, 0x22, 0x80, 0xdb, 0x5e, 0x39, 0xe3, 0x2d, 0x2b, 0xda, 0xab, 0xcb, 0x78, 0xd2, 0xe6, 0x79,
+ 0xc5, 0x0c, 0x02, 0x6f, 0x9e, 0xa5, 0xb4, 0xb8, 0xaa, 0x3e, 0x2f, 0x45, 0x5a, 0x14, 0xf7, 0xdf,
+ 0xd7, 0x8c, 0x08, 0xe0, 0xfe, 0x5b, 0x0e, 0x9d, 0xd7, 0x35, 0x27, 0xa5, 0x0a, 0x9d, 0xd2, 0x2e,
+ 0x7e, 0xcd, 0x0c, 0x02, 0xef, 0xe2, 0xc5, 0xf8, 0xba, 0xae, 0xb8, 0xa1, 0x55, 0xf1, 0x55, 0x48,
+ 0x01, 0x8e, 0x69, 0x39, 0x94, 0x02, 0xe4, 0x08, 0x7c, 0x43, 0x71, 0x3a, 0xba, 0x08, 0x2c, 0x65,
+ 0x89, 0x57, 0xcc, 0x20, 0x70, 0x96, 0x90, 0xc2, 0xf4, 0x4d, 0xc5, 0xb5, 0x56, 0x87, 0x69, 0x39,
+ 0x8e, 0x94, 0x8b, 0xc7, 0x91, 0xff, 0xad, 0xa0, 0xe5, 0xce, 0x60, 0x9c, 0x26, 0x92, 0x76, 0x31,
+ 0x5f, 0xa0, 0x91, 0x04, 0x72, 0x87, 0x56, 0x11, 0x77, 0xa0, 0xa1, 0x04, 0xf0, 0x88, 0x07, 0x96,
+ 0x1e, 0x91, 0x6d, 0xfe, 0x58, 0x9f, 0xf8, 0xc0, 0xca, 0x27, 0xb2, 0xed, 0x1f, 0xe3, 0x15, 0xcd,
+ 0x22, 0x5e, 0xa1, 0x88, 0x47, 0xfb, 0x45, 0x1c, 0x43, 0xb9, 0x97, 0xac, 0xdb, 0xbb, 0x06, 0x1c,
+ 0xb6, 0x1a, 0xf6, 0xde, 0xa1, 0xda, 0x94, 0xd6, 0xed, 0xfd, 0x03, 0xce, 0x6d, 0x0d, 0x7b, 0x17,
+ 0x51, 0xed, 0x6e, 0x9b, 0x45, 0x9c, 0x44, 0x11, 0x01, 0xf7, 0x8b, 0xf8, 0x89, 0x72, 0xa7, 0x5c,
+ 0xb7, 0xf7, 0x14, 0x38, 0x50, 0x36, 0xec, 0x9d, 0x45, 0xb5, 0xe5, 0x6e, 0x16, 0x71, 0x17, 0x45,
+ 0x36, 0xdd, 0x2f, 0xe2, 0x31, 0xca, 0xed, 0xfb, 0x03, 0x5b, 0x9f, 0x01, 0x93, 0xee, 0x23, 0x5b,
+ 0xb7, 0x51, 0x84, 0x80, 0x66, 0x11, 0xc7, 0x51, 0x24, 0xe6, 0xfd, 0x22, 0xbe, 0xa3, 0x0c, 0x14,
+ 0x75, 0x7b, 0xef, 0x81, 0xf3, 0x77, 0xc3, 0xde, 0x81, 0x54, 0xc9, 0xe4, 0x4f, 0x55, 0xb4, 0xda,
+ 0xea, 0xb1, 0xc9, 0xe4, 0x87, 0xf0, 0x4c, 0x2c, 0x3e, 0xc2, 0x5b, 0x35, 0xf2, 0x34, 0x90, 0x5b,
+ 0x50, 0x7b, 0x2c, 0x56, 0x3f, 0x1c, 0x45, 0x93, 0x53, 0x68, 0x3c, 0x56, 0x67, 0xe7, 0x06, 0xc4,
+ 0x82, 0x5e, 0x03, 0x21, 0x79, 0x28, 0x79, 0x1e, 0xfd, 0x0c, 0x98, 0xb3, 0x11, 0x2b, 0x7a, 0x53,
+ 0x4b, 0x31, 0x29, 0x26, 0x0c, 0xa1, 0x67, 0x31, 0xd9, 0x50, 0x82, 0xb8, 0xd2, 0x26, 0x88, 0xc7,
+ 0xe1, 0x48, 0x03, 0xef, 0xb6, 0xc2, 0x99, 0xee, 0xe9, 0xb9, 0xe1, 0x52, 0xc2, 0x4c, 0xf4, 0xa7,
+ 0x03, 0xd8, 0x9f, 0xde, 0x80, 0x01, 0xd9, 0x4a, 0x96, 0xa1, 0x60, 0x53, 0x2d, 0xd8, 0xa6, 0xde,
+ 0xd0, 0xb2, 0xc4, 0x95, 0x84, 0xa4, 0x60, 0x56, 0x6d, 0xd0, 0xac, 0xee, 0xea, 0x28, 0x66, 0x60,
+ 0x60, 0xe6, 0x69, 0xc1, 0x9e, 0xa5, 0x27, 0x88, 0x2b, 0x05, 0x82, 0xe4, 0x8f, 0x7a, 0x1b, 0x74,
+ 0x2e, 0x2d, 0xc1, 0x0c, 0x0c, 0x8c, 0x42, 0x6d, 0x85, 0x81, 0xe9, 0x2f, 0x74, 0x97, 0xa1, 0x28,
+ 0xda, 0xd8, 0x01, 0x6c, 0x63, 0xda, 0x0b, 0xdd, 0x95, 0x58, 0x0a, 0x6e, 0xd6, 0x82, 0xdd, 0xcc,
+ 0xd8, 0x47, 0xdf, 0x93, 0xfb, 0xe8, 0x7b, 0x7c, 0x1f, 0x53, 0x4f, 0x33, 0xf5, 0x91, 0x82, 0x81,
+ 0xc1, 0xa9, 0xad, 0xb0, 0x36, 0x73, 0x1f, 0x13, 0x8a, 0xa2, 0xc1, 0x1d, 0xc0, 0x06, 0x67, 0xec,
+ 0x23, 0xcf, 0x52, 0xf0, 0xb9, 0x26, 0xe8, 0x73, 0x77, 0xb5, 0x24, 0xe3, 0x42, 0x42, 0x91, 0x77,
+ 0xbb, 0x16, 0xe4, 0x76, 0x77, 0x74, 0xf4, 0x52, 0x24, 0x28, 0x66, 0xb5, 0x15, 0xa6, 0xa7, 0xef,
+ 0x20, 0x29, 0x15, 0x3a, 0x48, 0xcd, 0xea, 0x00, 0xb6, 0x3e, 0x6d, 0x07, 0x19, 0x3c, 0x38, 0x7d,
+ 0xb5, 0x60, 0x07, 0xd4, 0x2b, 0x11, 0x57, 0x0a, 0x4a, 0x24, 0x3e, 0xd8, 0x06, 0x7d, 0x50, 0xab,
+ 0xc4, 0x0c, 0x0c, 0x0a, 0x65, 0x1b, 0x3f, 0x43, 0xaf, 0xc2, 0x76, 0xe6, 0xac, 0xa1, 0xf2, 0xcf,
+ 0x07, 0xa7, 0xf8, 0xe1, 0xd0, 0x42, 0x27, 0xfe, 0xd1, 0xf9, 0x16, 0x5a, 0xf8, 0x45, 0xec, 0xad,
+ 0x39, 0xfe, 0x7b, 0x84, 0x14, 0xde, 0xbf, 0xfc, 0x9d, 0xd2, 0xc6, 0x0f, 0xd0, 0xb5, 0x0b, 0x42,
+ 0xfe, 0x09, 0xba, 0x09, 0xfa, 0x1c, 0x70, 0x80, 0x2d, 0xfe, 0x00, 0x9a, 0x29, 0x21, 0x83, 0xff,
+ 0x0c, 0xad, 0x5e, 0x08, 0xee, 0x4f, 0xd1, 0x0d, 0xc0, 0x03, 0x01, 0x74, 0x8f, 0x47, 0xd7, 0x0f,
+ 0x05, 0xb9, 0xc6, 0x38, 0xb2, 0x27, 0x9e, 0x23, 0xfe, 0xc7, 0xc8, 0x91, 0xed, 0x11, 0xc0, 0x7f,
+ 0x87, 0xc7, 0xd7, 0x4e, 0x11, 0x19, 0xf8, 0x1f, 0xa3, 0x75, 0xc9, 0x2f, 0xcf, 0x0f, 0x9d, 0x21,
+ 0x9f, 0xf9, 0x48, 0x11, 0x78, 0x66, 0xd8, 0x07, 0x92, 0xbf, 0x08, 0x74, 0x46, 0x3a, 0x5d, 0x2d,
+ 0xbe, 0xf1, 0xd2, 0x76, 0xe1, 0x03, 0x64, 0xd2, 0xb9, 0x18, 0x7c, 0xbe, 0xfb, 0xd4, 0x7d, 0x0a,
+ 0xf6, 0x27, 0x19, 0x28, 0xaa, 0xba, 0x7f, 0xee, 0xe8, 0x42, 0xf7, 0xd5, 0xf8, 0xb9, 0xba, 0x03,
+ 0x1c, 0x80, 0xef, 0xfe, 0xf9, 0xe3, 0xff, 0x08, 0xad, 0x4b, 0x3e, 0x5d, 0xe4, 0xcf, 0x71, 0x36,
+ 0x40, 0x65, 0xc0, 0x3f, 0x42, 0x6b, 0xa2, 0x73, 0x9f, 0x1b, 0x36, 0xd3, 0x79, 0xc6, 0x73, 0x8b,
+ 0x74, 0x86, 0x9d, 0xba, 0x82, 0x9d, 0xbf, 0x18, 0x7c, 0x46, 0xf7, 0x99, 0x23, 0x17, 0x51, 0x26,
+ 0xfb, 0x5f, 0x7f, 0x90, 0xee, 0x2f, 0x00, 0x7d, 0xf3, 0xdf, 0x55, 0xb4, 0xdc, 0xea, 0x65, 0x33,
+ 0xdb, 0x8f, 0xd5, 0x89, 0xf9, 0x9b, 0xd9, 0x5e, 0x24, 0x29, 0x57, 0xe4, 0x65, 0xf5, 0x3f, 0x95,
+ 0x34, 0xe4, 0xd4, 0xfc, 0x0d, 0x00, 0x56, 0x80, 0x03, 0x1f, 0xba, 0x7f, 0xa4, 0xcc, 0xcd, 0xf7,
+ 0x34, 0x44, 0x85, 0xb4, 0xab, 0xf8, 0x77, 0x95, 0x47, 0x52, 0x76, 0xbe, 0x0d, 0x60, 0xf2, 0x58,
+ 0xd0, 0x73, 0xfd, 0x43, 0x45, 0x7a, 0xbe, 0xab, 0x63, 0xc8, 0x66, 0x5d, 0x70, 0xc2, 0xdb, 0x85,
+ 0x13, 0xf4, 0x1d, 0x08, 0x54, 0xce, 0xcf, 0xca, 0x51, 0xef, 0x53, 0x38, 0x43, 0xdf, 0xd1, 0x70,
+ 0x65, 0x43, 0x2f, 0x34, 0xf4, 0xed, 0x80, 0x39, 0xfa, 0x75, 0x35, 0x51, 0x06, 0x50, 0x35, 0xfd,
+ 0x7d, 0x0a, 0x27, 0x69, 0x1d, 0x4d, 0x36, 0x54, 0x42, 0x73, 0xe0, 0x0e, 0x98, 0xa6, 0x35, 0x34,
+ 0x19, 0x40, 0xd5, 0x40, 0xf8, 0x50, 0x91, 0xa7, 0x75, 0x97, 0xbe, 0x2b, 0x11, 0x15, 0x33, 0x75,
+ 0x17, 0xce, 0xd4, 0x9a, 0x4b, 0xdf, 0x05, 0xb9, 0x0a, 0xa9, 0xfa, 0x29, 0x9c, 0xaa, 0x0d, 0x3d,
+ 0x4d, 0x03, 0x26, 0x34, 0x2d, 0xee, 0x80, 0xc9, 0x5a, 0xdf, 0xd3, 0x04, 0x50, 0x35, 0x36, 0x3e,
+ 0x54, 0x64, 0x6b, 0x53, 0x4f, 0x79, 0xa2, 0x62, 0xbe, 0xee, 0xc2, 0xf9, 0xda, 0xd0, 0x53, 0x99,
+ 0xab, 0x90, 0xb0, 0x1f, 0x83, 0x09, 0xfb, 0x75, 0x0d, 0x55, 0x26, 0x15, 0x03, 0x33, 0xe5, 0x27,
+ 0x50, 0xca, 0x7e, 0x4d, 0x4d, 0x32, 0x43, 0x53, 0x0c, 0x97, 0x0f, 0x15, 0x39, 0x5b, 0xd7, 0x4d,
+ 0x2e, 0x15, 0x83, 0x63, 0xe6, 0x2e, 0x9c, 0xb5, 0x35, 0xdd, 0x64, 0x31, 0x95, 0xf3, 0xe6, 0xa7,
+ 0x70, 0xda, 0xd6, 0x29, 0x94, 0x8d, 0xc7, 0xd0, 0xe4, 0xb9, 0x03, 0x26, 0x6e, 0x8d, 0x42, 0x19,
+ 0x40, 0xc5, 0x08, 0x7a, 0x9e, 0xb9, 0xe7, 0x99, 0x7b, 0x9e, 0xb9, 0xe7, 0x99, 0x7b, 0x9e, 0xb9,
+ 0xe7, 0x99, 0x7b, 0x9e, 0xb9, 0xe7, 0x99, 0x1b, 0xce, 0xdc, 0x7f, 0x5e, 0x40, 0xd7, 0x9f, 0x8c,
+ 0x06, 0xe1, 0x73, 0xe6, 0x49, 0xf5, 0x7d, 0x36, 0x18, 0x1b, 0xdf, 0xda, 0xd8, 0xe3, 0x9e, 0x20,
+ 0x7f, 0x9b, 0x49, 0xab, 0x26, 0xe3, 0xdc, 0x63, 0x1f, 0xee, 0x7e, 0x1f, 0x2d, 0x4d, 0x06, 0xe3,
+ 0xfc, 0x2f, 0x64, 0xc4, 0x87, 0x4d, 0x17, 0x38, 0xdf, 0x45, 0x8b, 0x93, 0xc1, 0x38, 0xef, 0x2b,
+ 0x18, 0xf1, 0x81, 0x93, 0x72, 0xba, 0x34, 0xef, 0x4b, 0x17, 0x74, 0x29, 0x89, 0x2a, 0x84, 0x73,
+ 0xfe, 0xd7, 0x2c, 0x28, 0x67, 0x1a, 0x74, 0xd2, 0x03, 0xe7, 0x7a, 0xb1, 0x22, 0x3b, 0xb0, 0xef,
+ 0x31, 0x07, 0xce, 0xf7, 0x2a, 0x05, 0x73, 0x60, 0xdf, 0x73, 0x76, 0xd0, 0xd5, 0xc9, 0x60, 0x9c,
+ 0xef, 0xe5, 0x89, 0xbd, 0x4b, 0x9d, 0xa4, 0x98, 0x1e, 0x35, 0xff, 0xeb, 0x12, 0xf4, 0xa8, 0x74,
+ 0xd7, 0x4c, 0x4e, 0x37, 0xef, 0x0b, 0x12, 0xf4, 0x74, 0xf1, 0x07, 0xc1, 0x3a, 0xd6, 0xe8, 0x13,
+ 0xaa, 0xd1, 0x58, 0x6b, 0x9b, 0xff, 0x5d, 0x40, 0xab, 0x58, 0xb7, 0xe9, 0xb4, 0xe8, 0x7d, 0x2b,
+ 0xd5, 0x92, 0xb1, 0x10, 0xaf, 0xdd, 0x77, 0x2d, 0xb4, 0x4b, 0xc6, 0x35, 0x9c, 0x82, 0x03, 0x4b,
+ 0x05, 0x93, 0x24, 0xc0, 0xeb, 0x78, 0xd7, 0x4a, 0xc7, 0x29, 0x42, 0xa6, 0xe6, 0x5d, 0x2b, 0x35,
+ 0x73, 0x00, 0x44, 0x95, 0x81, 0xa5, 0xa6, 0xb9, 0xb3, 0xa0, 0xca, 0xde, 0xb5, 0x52, 0xb6, 0x48,
+ 0x02, 0xbf, 0x27, 0x67, 0xa7, 0x6f, 0x89, 0x04, 0xbe, 0x47, 0xf2, 0xab, 0x3c, 0x5d, 0x9f, 0x6a,
+ 0x3d, 0xb0, 0xd4, 0x3a, 0xc7, 0x80, 0x2a, 0x7e, 0xd7, 0x4a, 0xf1, 0x5c, 0x1b, 0x88, 0xee, 0xaf,
+ 0x63, 0x8d, 0x3f, 0xc1, 0x1a, 0x8f, 0x55, 0x1a, 0xdc, 0xfb, 0xe2, 0xcb, 0x6a, 0xe9, 0xe5, 0x97,
+ 0xd5, 0xd2, 0x1f, 0xcf, 0xaa, 0xa5, 0xbf, 0x9c, 0x55, 0x4b, 0x7f, 0x3d, 0xab, 0x96, 0x3e, 0x3f,
+ 0xab, 0x96, 0xfe, 0x76, 0x56, 0x2d, 0x7d, 0x71, 0x56, 0x2d, 0xbd, 0x3c, 0xab, 0x5e, 0xfa, 0xe5,
+ 0x3f, 0xab, 0x97, 0xfa, 0x57, 0xf0, 0x11, 0xfc, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0xa6, 0xb3,
+ 0x35, 0x4d, 0x74, 0x40, 0x00, 0x00,
+}
+
func (this *KnownTypes) Compare(that interface{}) int {
if that == nil {
if this == nil {
@@ -11922,7 +12072,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11950,7 +12100,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11959,6 +12109,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11983,7 +12136,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11992,6 +12145,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12016,7 +12172,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12025,6 +12181,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12049,7 +12208,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12058,6 +12217,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12082,7 +12244,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12091,6 +12253,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12115,7 +12280,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12124,6 +12289,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12148,7 +12316,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12157,6 +12325,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12181,7 +12352,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12190,6 +12361,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12214,7 +12388,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12223,6 +12397,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12247,7 +12424,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12256,6 +12433,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12280,7 +12460,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12289,6 +12469,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12308,6 +12491,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypes
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -12336,7 +12522,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12364,7 +12550,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12373,6 +12559,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12397,7 +12586,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12406,6 +12595,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12430,7 +12622,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12439,6 +12631,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12463,7 +12658,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12472,6 +12667,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12496,7 +12694,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12505,6 +12703,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12529,7 +12730,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12538,6 +12739,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12562,7 +12766,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12571,6 +12775,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12595,7 +12802,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12604,6 +12811,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12628,7 +12838,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12637,6 +12847,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12661,7 +12874,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12670,6 +12883,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12694,7 +12910,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12703,6 +12919,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12727,7 +12946,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12736,6 +12955,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12757,7 +12979,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12766,6 +12988,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12787,7 +13012,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12796,6 +13021,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12817,7 +13045,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12826,6 +13054,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12847,7 +13078,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12856,6 +13087,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12877,7 +13111,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12886,6 +13120,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12907,7 +13144,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12916,6 +13153,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12937,7 +13177,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12946,6 +13186,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12967,7 +13210,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12976,6 +13219,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12997,7 +13243,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13006,6 +13252,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13027,7 +13276,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13036,6 +13285,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13052,6 +13304,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypes
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -13080,7 +13335,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13108,7 +13363,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13117,6 +13372,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13141,7 +13399,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13150,6 +13408,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13174,7 +13435,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13183,6 +13444,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13207,7 +13471,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13216,6 +13480,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13240,7 +13507,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13249,6 +13516,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13273,7 +13543,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13282,6 +13552,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13306,7 +13579,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13315,6 +13588,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13339,7 +13615,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13348,6 +13624,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13372,7 +13651,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13381,6 +13660,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13405,7 +13687,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13414,6 +13696,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13438,7 +13723,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13447,6 +13732,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13471,7 +13759,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13480,6 +13768,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13501,7 +13792,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13510,6 +13801,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13531,7 +13825,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13540,6 +13834,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13561,7 +13858,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13570,6 +13867,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13591,7 +13891,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13600,6 +13900,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13621,7 +13924,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13630,6 +13933,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13651,7 +13957,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13660,6 +13966,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13681,7 +13990,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13690,6 +13999,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13711,7 +14023,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13720,6 +14032,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13741,7 +14056,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13750,6 +14065,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13771,7 +14089,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13780,6 +14098,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13796,6 +14117,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypes
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -13824,7 +14148,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13852,7 +14176,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13861,6 +14185,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13883,7 +14210,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13892,6 +14219,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13914,7 +14244,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13923,6 +14253,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13945,7 +14278,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13954,6 +14287,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13976,7 +14312,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13985,6 +14321,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14007,7 +14346,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14016,6 +14355,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14038,7 +14380,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14047,6 +14389,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14069,7 +14414,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14078,6 +14423,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14100,7 +14448,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14109,6 +14457,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14131,7 +14482,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14140,6 +14491,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14162,7 +14516,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14171,6 +14525,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14193,7 +14550,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14202,6 +14559,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14224,7 +14584,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14233,6 +14593,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14255,7 +14618,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14264,6 +14627,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14286,7 +14652,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14295,6 +14661,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14317,7 +14686,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14326,6 +14695,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14348,7 +14720,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14357,6 +14729,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14379,7 +14754,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14388,6 +14763,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14410,7 +14788,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14419,6 +14797,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14441,7 +14822,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14450,6 +14831,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14472,7 +14856,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14481,6 +14865,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14503,7 +14890,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14512,6 +14899,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14529,6 +14919,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypes
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -14557,7 +14950,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14585,7 +14978,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14594,6 +14987,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14616,7 +15012,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14625,6 +15021,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14647,7 +15046,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14656,6 +15055,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14678,7 +15080,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14687,6 +15089,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14709,7 +15114,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14718,6 +15123,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14740,7 +15148,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14749,6 +15157,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14771,7 +15182,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14780,6 +15191,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14802,7 +15216,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14811,6 +15225,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14833,7 +15250,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14842,6 +15259,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14864,7 +15284,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14873,6 +15293,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14895,7 +15318,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14904,6 +15327,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14926,7 +15352,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14935,6 +15361,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14957,7 +15386,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14966,6 +15395,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14988,7 +15420,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14997,6 +15429,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15019,7 +15454,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15028,6 +15463,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15050,7 +15488,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15059,6 +15497,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15081,7 +15522,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15090,6 +15531,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15112,7 +15556,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15121,6 +15565,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15143,7 +15590,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15152,6 +15599,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15174,7 +15624,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15183,6 +15633,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15205,7 +15658,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15214,6 +15667,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15236,7 +15692,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15245,6 +15701,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15262,6 +15721,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypes
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -15290,7 +15752,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15318,7 +15780,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15327,6 +15789,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15347,7 +15812,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15363,7 +15828,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15379,7 +15844,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15388,7 +15853,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -15430,7 +15895,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15439,6 +15904,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15459,7 +15927,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15475,7 +15943,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15491,7 +15959,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15500,7 +15968,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -15542,7 +16010,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15551,6 +16019,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15571,7 +16042,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15587,7 +16058,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15603,7 +16074,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15612,7 +16083,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -15654,7 +16125,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15663,6 +16134,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15683,7 +16157,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15699,7 +16173,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15715,7 +16189,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15724,7 +16198,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -15766,7 +16240,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15775,6 +16249,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15795,7 +16272,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15811,7 +16288,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15827,7 +16304,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15836,7 +16313,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -15878,7 +16355,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15887,6 +16364,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15907,7 +16387,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15923,7 +16403,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15939,7 +16419,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15948,7 +16428,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -15990,7 +16470,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15999,6 +16479,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -16019,7 +16502,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16035,7 +16518,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16051,7 +16534,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16060,7 +16543,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -16102,7 +16585,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16111,6 +16594,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -16131,7 +16617,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16147,7 +16633,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16163,7 +16649,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16172,7 +16658,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -16214,7 +16700,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16223,6 +16709,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -16243,7 +16732,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16259,7 +16748,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16275,7 +16764,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16284,7 +16773,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -16326,7 +16815,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16335,6 +16824,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -16355,7 +16847,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16371,7 +16863,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16387,7 +16879,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16396,7 +16888,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -16438,7 +16930,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16447,6 +16939,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -16467,7 +16962,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16483,7 +16978,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16499,7 +16994,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16508,7 +17003,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -16550,7 +17045,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16559,6 +17054,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -16579,7 +17077,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16595,7 +17093,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16611,7 +17109,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16620,7 +17118,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -16662,7 +17160,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16671,6 +17169,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -16691,7 +17192,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16707,7 +17208,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16723,7 +17224,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16732,7 +17233,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -16774,7 +17275,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16783,6 +17284,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -16803,7 +17307,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16819,7 +17323,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16835,7 +17339,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16844,7 +17348,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -16886,7 +17390,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16895,6 +17399,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -16915,7 +17422,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16931,7 +17438,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16947,7 +17454,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16956,7 +17463,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -16998,7 +17505,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17007,6 +17514,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17027,7 +17537,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17043,7 +17553,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17059,7 +17569,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17068,7 +17578,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -17110,7 +17620,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17119,6 +17629,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17139,7 +17652,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17155,7 +17668,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17171,7 +17684,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17180,7 +17693,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -17222,7 +17735,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17231,6 +17744,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17251,7 +17767,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17267,7 +17783,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17283,7 +17799,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17292,7 +17808,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -17334,7 +17850,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17343,6 +17859,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17363,7 +17882,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17379,7 +17898,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17395,7 +17914,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17404,7 +17923,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -17446,7 +17965,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17455,6 +17974,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17475,7 +17997,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17491,7 +18013,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17507,7 +18029,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17516,7 +18038,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -17558,7 +18080,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17567,6 +18089,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17587,7 +18112,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17603,7 +18128,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17619,7 +18144,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17628,7 +18153,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -17670,7 +18195,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17679,6 +18204,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17699,7 +18227,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17715,7 +18243,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17731,7 +18259,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17740,7 +18268,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -17777,6 +18305,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypes
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -17805,7 +18336,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17833,7 +18364,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17842,6 +18373,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17862,7 +18396,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17878,7 +18412,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17894,7 +18428,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17903,7 +18437,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -17944,7 +18478,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17953,6 +18487,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17973,7 +18510,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17989,7 +18526,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18005,7 +18542,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18014,7 +18551,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -18055,7 +18592,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18064,6 +18601,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -18084,7 +18624,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18100,7 +18640,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18116,7 +18656,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18125,7 +18665,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -18166,7 +18706,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18175,6 +18715,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -18195,7 +18738,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18211,7 +18754,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18227,7 +18770,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18236,7 +18779,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -18277,7 +18820,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18286,6 +18829,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -18306,7 +18852,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18322,7 +18868,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18338,7 +18884,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18347,7 +18893,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -18388,7 +18934,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18397,6 +18943,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -18417,7 +18966,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18433,7 +18982,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18449,7 +18998,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18458,7 +19007,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -18499,7 +19048,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18508,6 +19057,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -18528,7 +19080,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18544,7 +19096,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18560,7 +19112,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18569,7 +19121,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -18610,7 +19162,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18619,6 +19171,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -18639,7 +19194,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18655,7 +19210,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18671,7 +19226,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18680,7 +19235,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -18721,7 +19276,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18730,6 +19285,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -18750,7 +19308,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18766,7 +19324,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18782,7 +19340,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18791,7 +19349,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -18832,7 +19390,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18841,6 +19399,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -18861,7 +19422,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18877,7 +19438,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18893,7 +19454,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18902,7 +19463,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -18943,7 +19504,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18952,6 +19513,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -18972,7 +19536,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18988,7 +19552,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19004,7 +19568,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19013,7 +19577,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -19054,7 +19618,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19063,6 +19627,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -19083,7 +19650,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19099,7 +19666,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19115,7 +19682,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19124,7 +19691,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -19165,7 +19732,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19174,6 +19741,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -19194,7 +19764,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19210,7 +19780,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19226,7 +19796,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19235,7 +19805,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -19276,7 +19846,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19285,6 +19855,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -19305,7 +19878,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19321,7 +19894,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19337,7 +19910,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19346,7 +19919,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -19387,7 +19960,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19396,6 +19969,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -19416,7 +19992,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19432,7 +20008,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19448,7 +20024,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19457,7 +20033,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -19498,7 +20074,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19507,6 +20083,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -19527,7 +20106,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19543,7 +20122,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19559,7 +20138,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19568,7 +20147,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -19609,7 +20188,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19618,6 +20197,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -19638,7 +20220,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19654,7 +20236,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19670,7 +20252,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19679,7 +20261,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -19720,7 +20302,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19729,6 +20311,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -19749,7 +20334,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19765,7 +20350,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19781,7 +20366,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19790,7 +20375,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -19831,7 +20416,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19840,6 +20425,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -19860,7 +20448,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19876,7 +20464,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19892,7 +20480,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19901,7 +20489,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -19942,7 +20530,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19951,6 +20539,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -19971,7 +20562,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -19987,7 +20578,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20003,7 +20594,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20012,7 +20603,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -20053,7 +20644,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20062,6 +20653,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20082,7 +20676,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20098,7 +20692,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20114,7 +20708,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20123,7 +20717,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -20164,7 +20758,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20173,6 +20767,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20193,7 +20790,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20209,7 +20806,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20225,7 +20822,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20234,7 +20831,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -20270,6 +20867,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypes
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -20298,7 +20898,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20326,7 +20926,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20335,6 +20935,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20358,7 +20961,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20367,6 +20970,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20390,7 +20996,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20399,6 +21005,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20422,7 +21031,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20431,6 +21040,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20454,7 +21066,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20463,6 +21075,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20486,7 +21101,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20495,6 +21110,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20518,7 +21136,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20527,6 +21145,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20550,7 +21171,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20559,6 +21180,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20582,7 +21206,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20591,6 +21215,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20614,7 +21241,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20623,6 +21250,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20646,7 +21276,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20655,6 +21285,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20673,6 +21306,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypes
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -20701,7 +21337,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20729,7 +21365,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20738,6 +21374,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20761,7 +21400,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20770,6 +21409,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20793,7 +21435,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20802,6 +21444,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20825,7 +21470,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20834,6 +21479,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20857,7 +21505,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20866,6 +21514,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20889,7 +21540,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20898,6 +21549,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20921,7 +21575,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20930,6 +21584,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20953,7 +21610,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20962,6 +21619,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -20985,7 +21645,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -20994,6 +21654,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -21017,7 +21680,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -21026,6 +21689,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -21049,7 +21715,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -21058,6 +21724,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -21076,6 +21745,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypes
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -21143,10 +21815,13 @@ func skipTypes(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthTypes
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthTypes
+ }
return iNdEx, nil
case 3:
for {
@@ -21175,6 +21850,9 @@ func skipTypes(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthTypes
+ }
}
return iNdEx, nil
case 4:
@@ -21193,153 +21871,3 @@ var (
ErrInvalidLengthTypes = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowTypes = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("combos/both/types.proto", fileDescriptor_types_6d7bfc155f665581) }
-
-var fileDescriptor_types_6d7bfc155f665581 = []byte{
- // 2294 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcf, 0x73, 0x1b, 0x49,
- 0x19, 0x8d, 0x22, 0x39, 0xb1, 0xdb, 0x76, 0x62, 0x4f, 0x36, 0xcb, 0x60, 0x28, 0x25, 0x78, 0x37,
- 0xd9, 0xb0, 0x5b, 0x2b, 0xb3, 0x33, 0x2e, 0x03, 0x81, 0x5d, 0xef, 0x4e, 0x25, 0x91, 0xa5, 0xb5,
- 0x12, 0x45, 0xb6, 0x52, 0xb0, 0xb0, 0x80, 0xb4, 0x56, 0xbc, 0x2e, 0x14, 0x8d, 0x4a, 0x1a, 0xb1,
- 0xe5, 0x1b, 0x7f, 0x00, 0x07, 0x6e, 0x50, 0xc5, 0x05, 0x6e, 0x5c, 0x39, 0x50, 0xc5, 0x91, 0xe3,
- 0x1e, 0xf9, 0x0b, 0x60, 0xd7, 0x5c, 0xb8, 0x02, 0x97, 0x5c, 0xa8, 0xa2, 0xa6, 0xbb, 0x67, 0xa6,
- 0x7f, 0x7c, 0xdd, 0x3d, 0x3d, 0x65, 0xdf, 0x74, 0xb3, 0xa5, 0xaf, 0xdf, 0xbc, 0xf9, 0xe6, 0x8d,
- 0x5f, 0xbf, 0x6f, 0x3c, 0xe8, 0x2b, 0x9f, 0x84, 0x2f, 0xfa, 0xe1, 0x74, 0xab, 0x1f, 0x46, 0x9f,
- 0x6e, 0x45, 0xa7, 0xe3, 0xc1, 0xb4, 0x36, 0x9e, 0x84, 0x51, 0xe8, 0x2c, 0xe0, 0x5f, 0x36, 0xde,
- 0x3e, 0x3e, 0x89, 0x3e, 0x9d, 0xf5, 0x6b, 0x9f, 0x84, 0x2f, 0xb6, 0x8e, 0xc3, 0xe3, 0x70, 0x0b,
- 0x7f, 0xdb, 0x9f, 0x3d, 0xc7, 0xbf, 0xe1, 0x5f, 0xf0, 0x4f, 0x64, 0xd5, 0x46, 0xf5, 0x38, 0x0c,
- 0x8f, 0x87, 0x83, 0xac, 0xea, 0x68, 0x36, 0xe9, 0x45, 0x27, 0xe1, 0x88, 0x7e, 0x7f, 0x4b, 0xfc,
- 0x3e, 0x3a, 0x79, 0x31, 0x98, 0x46, 0xbd, 0x17, 0x63, 0x15, 0xc0, 0x67, 0x93, 0xde, 0x78, 0x3c,
- 0x98, 0x50, 0x5a, 0x9b, 0xbf, 0xab, 0x20, 0xf4, 0xe1, 0x28, 0xfc, 0x6c, 0x74, 0x18, 0xd3, 0x73,
- 0xde, 0x42, 0xe5, 0xa3, 0xd9, 0xc4, 0x2d, 0xdd, 0x2e, 0xdd, 0x5b, 0xf6, 0xbe, 0x5a, 0x23, 0x8b,
- 0x6b, 0xc9, 0xe2, 0xda, 0x03, 0x7a, 0xf4, 0x4e, 0x5c, 0xe5, 0xbc, 0x89, 0x2e, 0x47, 0x53, 0xf7,
- 0x32, 0xae, 0xdd, 0x90, 0x6a, 0x0f, 0x13, 0x26, 0x9d, 0xcb, 0xd1, 0xd4, 0xa9, 0xa1, 0xf2, 0x51,
- 0x7f, 0xe8, 0x96, 0x71, 0xf1, 0xd7, 0x65, 0xe0, 0x70, 0xd6, 0x1f, 0x0e, 0x9e, 0xf5, 0x86, 0xb3,
- 0x41, 0x27, 0x2e, 0x74, 0xde, 0x46, 0xe5, 0xe7, 0xc3, 0xc8, 0xad, 0xe0, 0xfa, 0xaf, 0x49, 0xf5,
- 0x8f, 0x86, 0x61, 0x2f, 0xa2, 0xe5, 0xcf, 0x87, 0x51, 0x5c, 0x7e, 0xb2, 0xb3, 0xed, 0x2e, 0x28,
- 0xca, 0x1b, 0xa3, 0x68, 0x67, 0x9b, 0x96, 0x9f, 0xec, 0x6c, 0xc7, 0x6c, 0x66, 0x3b, 0xdb, 0xee,
- 0x15, 0x05, 0x9b, 0x2e, 0x5b, 0x3f, 0xdb, 0xd9, 0xc6, 0xf0, 0xbe, 0xe7, 0x5e, 0x55, 0xc3, 0xfb,
- 0x5e, 0x02, 0xef, 0x7b, 0x18, 0xde, 0xf7, 0xdc, 0x45, 0x0d, 0x7c, 0x5a, 0x3f, 0xc3, 0xf5, 0x95,
- 0x7e, 0x18, 0x0e, 0xdd, 0x25, 0x45, 0x2b, 0x83, 0x30, 0x1c, 0x92, 0x72, 0x5c, 0x17, 0xe3, 0x4f,
- 0xa3, 0x89, 0x8b, 0x14, 0xf8, 0x07, 0xd1, 0xe4, 0x64, 0x74, 0x4c, 0xf1, 0xa7, 0xd1, 0xc4, 0x79,
- 0x07, 0x2d, 0xf4, 0x4f, 0xa3, 0xc1, 0xd4, 0x5d, 0x56, 0x9c, 0x40, 0x10, 0x7f, 0x4b, 0x16, 0x90,
- 0xca, 0xfb, 0x95, 0x7f, 0xfd, 0xe1, 0x56, 0x69, 0xf3, 0x57, 0x2b, 0x08, 0xb5, 0xe3, 0x22, 0xa2,
- 0x8e, 0x3d, 0xb4, 0x3e, 0x9a, 0x0d, 0x87, 0xbd, 0xfe, 0x70, 0x90, 0x5e, 0x5d, 0xaa, 0x15, 0xdd,
- 0xf5, 0x97, 0x17, 0x39, 0x0f, 0xd1, 0x5a, 0xf2, 0x61, 0xa2, 0x29, 0x2a, 0x24, 0x8d, 0xe8, 0xa4,
- 0x25, 0xce, 0x03, 0x74, 0x2d, 0xfd, 0x0c, 0x2b, 0x28, 0x97, 0xc0, 0x84, 0x35, 0xce, 0x07, 0x68,
- 0x35, 0xf9, 0x04, 0xeb, 0x2a, 0x8f, 0xea, 0xf8, 0x15, 0x2c, 0x04, 0xd6, 0x4e, 0x1e, 0x25, 0xf2,
- 0x2b, 0xd8, 0x73, 0x21, 0xfa, 0xcb, 0x25, 0x4f, 0x61, 0x8d, 0x40, 0x24, 0x9f, 0x66, 0xf9, 0x15,
- 0x22, 0x91, 0x9c, 0x42, 0x16, 0xd6, 0x38, 0xef, 0xa1, 0x95, 0xe4, 0x93, 0x20, 0x9f, 0xb6, 0xb9,
- 0x7a, 0x96, 0x05, 0xd1, 0x73, 0x2e, 0xb9, 0x0b, 0x6b, 0xd8, 0x76, 0x04, 0x79, 0xef, 0x00, 0x7e,
- 0x85, 0xf3, 0x1e, 0x5a, 0x4a, 0xff, 0xa8, 0xba, 0x2b, 0x26, 0xb1, 0x07, 0x95, 0xcf, 0xff, 0x7e,
- 0xeb, 0x52, 0x27, 0x5b, 0xe2, 0x7c, 0x0f, 0x2d, 0x26, 0x7f, 0xb4, 0xdd, 0x55, 0x83, 0xc4, 0xe9,
- 0xea, 0x74, 0x81, 0xb3, 0x87, 0x56, 0x47, 0xe1, 0x28, 0x26, 0x44, 0xf5, 0x7d, 0xcd, 0xac, 0x6f,
- 0x0a, 0xc2, 0x2f, 0x74, 0x1e, 0xa2, 0x15, 0xfa, 0x01, 0xd1, 0xf8, 0x75, 0xa3, 0xc6, 0x29, 0x0e,
- 0xb7, 0x8c, 0x81, 0x21, 0x1a, 0x5d, 0x33, 0xea, 0x5c, 0x80, 0x21, 0x32, 0xcd, 0xce, 0x8b, 0x6a,
- 0x7d, 0xdd, 0xac, 0x75, 0xe1, 0xbc, 0xa8, 0xe0, 0x39, 0x42, 0xbe, 0xe7, 0x3a, 0x46, 0xbd, 0xcb,
- 0x84, 0x7c, 0x4f, 0x20, 0xe4, 0x7b, 0xee, 0x0d, 0xb3, 0xe6, 0x01, 0x42, 0xbe, 0xe7, 0x04, 0x68,
- 0x99, 0x7e, 0x80, 0x75, 0xff, 0x8a, 0x49, 0xf7, 0x14, 0x85, 0x5d, 0xc4, 0xb0, 0xa1, 0xda, 0xbf,
- 0x69, 0xd6, 0xbe, 0xc0, 0x86, 0xde, 0x00, 0x59, 0x7b, 0x88, 0xfe, 0x5f, 0x35, 0xea, 0x5f, 0x68,
- 0x4f, 0xc0, 0xd8, 0xc1, 0x7f, 0x56, 0xd0, 0xe2, 0x41, 0x74, 0x44, 0xcc, 0xe0, 0x71, 0x21, 0x33,
- 0x08, 0x2a, 0xbf, 0xfe, 0xc7, 0xad, 0x12, 0x64, 0x09, 0x1f, 0x16, 0xb0, 0x84, 0xa0, 0xf2, 0xdb,
- 0x18, 0x4d, 0x36, 0x86, 0x66, 0x11, 0x63, 0x08, 0x2a, 0xbf, 0x8f, 0xd1, 0x44, 0x7b, 0xa8, 0xdb,
- 0xdb, 0x03, 0x45, 0x12, 0x4c, 0xa2, 0x6e, 0x6f, 0x12, 0x22, 0x10, 0xd1, 0x7c, 0xb3, 0x88, 0x55,
- 0x88, 0x67, 0x47, 0xef, 0x9f, 0xba, 0xbd, 0x61, 0x00, 0xa4, 0x7c, 0x4f, 0x24, 0x95, 0xcf, 0x36,
- 0x20, 0x52, 0xd8, 0x82, 0x2c, 0xcd, 0x83, 0xe2, 0xf0, 0x16, 0xd2, 0x2c, 0x62, 0x21, 0x22, 0x23,
- 0x7a, 0x1f, 0xd5, 0xed, 0x8d, 0x44, 0x6c, 0x13, 0xb1, 0x93, 0xc0, 0xce, 0x4e, 0x16, 0xe3, 0x9b,
- 0x11, 0xdf, 0x32, 0x8c, 0xa5, 0xec, 0xda, 0x58, 0x0a, 0x46, 0xc0, 0xb7, 0x49, 0x66, 0x2b, 0xfb,
- 0x45, 0x6c, 0x05, 0x03, 0xd1, 0x53, 0xe2, 0xac, 0xa5, 0x61, 0x6f, 0x2d, 0x19, 0x16, 0x6f, 0x2f,
- 0x0d, 0x7b, 0x7b, 0x91, 0xa1, 0x88, 0xb0, 0xf7, 0x8b, 0x58, 0x8c, 0x7c, 0x8e, 0xf4, 0x36, 0x69,
- 0xd8, 0xdb, 0x0c, 0x48, 0xcc, 0xf7, 0x04, 0x62, 0x39, 0xad, 0x06, 0x26, 0xe6, 0x7b, 0xce, 0x23,
- 0x5b, 0xbb, 0xc9, 0x90, 0x38, 0xcb, 0xd9, 0x2f, 0x62, 0x39, 0x32, 0x2b, 0x7a, 0xbb, 0x34, 0xec,
- 0x6d, 0x47, 0x6e, 0x17, 0xfe, 0x72, 0xf3, 0x37, 0x2b, 0x68, 0xb5, 0x33, 0x18, 0x33, 0x31, 0xa4,
- 0x89, 0x1c, 0xc9, 0x3e, 0xa6, 0x6e, 0xe9, 0x76, 0xd9, 0x90, 0x43, 0x80, 0x55, 0x4e, 0x3d, 0x73,
- 0xb1, 0xe4, 0x8e, 0x89, 0x23, 0x6d, 0x59, 0x9f, 0x44, 0xe4, 0x35, 0xce, 0xfb, 0x08, 0x45, 0x19,
- 0x99, 0xb2, 0x89, 0x0c, 0x75, 0x59, 0x66, 0x8d, 0xf3, 0x2e, 0x5a, 0x3a, 0x4a, 0x29, 0x54, 0x0c,
- 0x14, 0x92, 0x7d, 0x66, 0xba, 0x02, 0xc8, 0x42, 0x0b, 0x18, 0xc3, 0x2e, 0x0b, 0x49, 0x1b, 0xce,
- 0x2b, 0x66, 0x10, 0x78, 0xc3, 0x29, 0xa5, 0xaa, 0xab, 0x18, 0xc9, 0x26, 0x55, 0x89, 0x7b, 0xd6,
- 0x45, 0x23, 0x02, 0xb8, 0x67, 0x95, 0xc2, 0xd9, 0x92, 0x02, 0x47, 0x1d, 0xce, 0xc4, 0x6d, 0x2f,
- 0x32, 0x22, 0x80, 0xdb, 0x5e, 0x39, 0xe3, 0x2d, 0x2b, 0xda, 0xab, 0xcb, 0x78, 0xd2, 0xe6, 0x79,
- 0xc5, 0x0c, 0x02, 0x6f, 0x9e, 0xa5, 0xb4, 0xb8, 0xaa, 0x3e, 0x2f, 0x45, 0x5a, 0x14, 0xf7, 0xdf,
- 0xd7, 0x8c, 0x08, 0xe0, 0xfe, 0x5b, 0x0e, 0x9d, 0xd7, 0x35, 0x27, 0xa5, 0x0a, 0x9d, 0xd2, 0x2e,
- 0x7e, 0xcd, 0x0c, 0x02, 0xef, 0xe2, 0xc5, 0xf8, 0xba, 0xae, 0xb8, 0xa1, 0x55, 0xf1, 0x55, 0x48,
- 0x01, 0x8e, 0x69, 0x39, 0x94, 0x02, 0xe4, 0x08, 0x7c, 0x43, 0x71, 0x3a, 0xba, 0x08, 0x2c, 0x65,
- 0x89, 0x57, 0xcc, 0x20, 0x70, 0x96, 0x90, 0xc2, 0xf4, 0x4d, 0xc5, 0xb5, 0x56, 0x87, 0x69, 0x39,
- 0x8e, 0x94, 0x8b, 0xc7, 0x91, 0xff, 0xad, 0xa0, 0xe5, 0xce, 0x60, 0x9c, 0x26, 0x92, 0x76, 0x31,
- 0x5f, 0xa0, 0x91, 0x04, 0x72, 0x87, 0x56, 0x11, 0x77, 0xa0, 0xa1, 0x04, 0xf0, 0x88, 0x07, 0x96,
- 0x1e, 0x91, 0x6d, 0xfe, 0x58, 0x9f, 0xf8, 0xc0, 0xca, 0x27, 0xb2, 0xed, 0x1f, 0xe3, 0x15, 0xcd,
- 0x22, 0x5e, 0xa1, 0x88, 0x47, 0xfb, 0x45, 0x1c, 0x43, 0xb9, 0x97, 0xac, 0xdb, 0xbb, 0x06, 0x1c,
- 0xb6, 0x1a, 0xf6, 0xde, 0xa1, 0xda, 0x94, 0xd6, 0xed, 0xfd, 0x03, 0xce, 0x6d, 0x0d, 0x7b, 0x17,
- 0x51, 0xed, 0x6e, 0x9b, 0x45, 0x9c, 0x44, 0x11, 0x01, 0xf7, 0x8b, 0xf8, 0x89, 0x72, 0xa7, 0x5c,
- 0xb7, 0xf7, 0x14, 0x38, 0x50, 0x36, 0xec, 0x9d, 0x45, 0xb5, 0xe5, 0x6e, 0x16, 0x71, 0x17, 0x45,
- 0x36, 0xdd, 0x2f, 0xe2, 0x31, 0xca, 0xed, 0xfb, 0x03, 0x5b, 0x9f, 0x01, 0x93, 0xee, 0x23, 0x5b,
- 0xb7, 0x51, 0x84, 0x80, 0x66, 0x11, 0xc7, 0x51, 0x24, 0xe6, 0xfd, 0x22, 0xbe, 0xa3, 0x0c, 0x14,
- 0x75, 0x7b, 0xef, 0x81, 0xf3, 0x77, 0xc3, 0xde, 0x81, 0x54, 0xc9, 0xe4, 0x4f, 0x55, 0xb4, 0xda,
- 0xea, 0xb1, 0xc9, 0xe4, 0x87, 0xf0, 0x4c, 0x2c, 0x3e, 0xc2, 0x5b, 0x35, 0xf2, 0x34, 0x90, 0x5b,
- 0x50, 0x7b, 0x2c, 0x56, 0x3f, 0x1c, 0x45, 0x93, 0x53, 0x68, 0x3c, 0x56, 0x67, 0xe7, 0x06, 0xc4,
- 0x82, 0x5e, 0x03, 0x21, 0x79, 0x28, 0x79, 0x1e, 0xfd, 0x0c, 0x98, 0xb3, 0x11, 0x2b, 0x7a, 0x53,
- 0x4b, 0x31, 0x29, 0x26, 0x0c, 0xa1, 0x67, 0x31, 0xd9, 0x50, 0x82, 0xb8, 0xd2, 0x26, 0x88, 0xc7,
- 0xe1, 0x48, 0x03, 0xef, 0xb6, 0xc2, 0x99, 0xee, 0xe9, 0xb9, 0xe1, 0x52, 0xc2, 0x4c, 0xf4, 0xa7,
- 0x03, 0xd8, 0x9f, 0xde, 0x80, 0x01, 0xd9, 0x4a, 0x96, 0xa1, 0x60, 0x53, 0x2d, 0xd8, 0xa6, 0xde,
- 0xd0, 0xb2, 0xc4, 0x95, 0x84, 0xa4, 0x60, 0x56, 0x6d, 0xd0, 0xac, 0xee, 0xea, 0x28, 0x66, 0x60,
- 0x60, 0xe6, 0x69, 0xc1, 0x9e, 0xa5, 0x27, 0x88, 0x2b, 0x05, 0x82, 0xe4, 0x8f, 0x7a, 0x1b, 0x74,
- 0x2e, 0x2d, 0xc1, 0x0c, 0x0c, 0x8c, 0x42, 0x6d, 0x85, 0x81, 0xe9, 0x2f, 0x74, 0x97, 0xa1, 0x28,
- 0xda, 0xd8, 0x01, 0x6c, 0x63, 0xda, 0x0b, 0xdd, 0x95, 0x58, 0x0a, 0x6e, 0xd6, 0x82, 0xdd, 0xcc,
- 0xd8, 0x47, 0xdf, 0x93, 0xfb, 0xe8, 0x7b, 0x7c, 0x1f, 0x53, 0x4f, 0x33, 0xf5, 0x91, 0x82, 0x81,
- 0xc1, 0xa9, 0xad, 0xb0, 0x36, 0x73, 0x1f, 0x13, 0x8a, 0xa2, 0xc1, 0x1d, 0xc0, 0x06, 0x67, 0xec,
- 0x23, 0xcf, 0x52, 0xf0, 0xb9, 0x26, 0xe8, 0x73, 0x77, 0xb5, 0x24, 0xe3, 0x42, 0x42, 0x91, 0x77,
- 0xbb, 0x16, 0xe4, 0x76, 0x77, 0x74, 0xf4, 0x52, 0x24, 0x28, 0x66, 0xb5, 0x15, 0xa6, 0xa7, 0xef,
- 0x20, 0x29, 0x15, 0x3a, 0x48, 0xcd, 0xea, 0x00, 0xb6, 0x3e, 0x6d, 0x07, 0x19, 0x3c, 0x38, 0x7d,
- 0xb5, 0x60, 0x07, 0xd4, 0x2b, 0x11, 0x57, 0x0a, 0x4a, 0x24, 0x3e, 0xd8, 0x06, 0x7d, 0x50, 0xab,
- 0xc4, 0x0c, 0x0c, 0x0a, 0x65, 0x1b, 0x3f, 0x43, 0xaf, 0xc2, 0x76, 0xe6, 0xac, 0xa1, 0xf2, 0xcf,
- 0x07, 0xa7, 0xf8, 0xe1, 0xd0, 0x42, 0x27, 0xfe, 0xd1, 0xf9, 0x16, 0x5a, 0xf8, 0x45, 0xec, 0xad,
- 0x39, 0xfe, 0x7b, 0x84, 0x14, 0xde, 0xbf, 0xfc, 0x9d, 0xd2, 0xc6, 0x0f, 0xd0, 0xb5, 0x0b, 0x42,
- 0xfe, 0x09, 0xba, 0x09, 0xfa, 0x1c, 0x70, 0x80, 0x2d, 0xfe, 0x00, 0x9a, 0x29, 0x21, 0x83, 0xff,
- 0x0c, 0xad, 0x5e, 0x08, 0xee, 0x4f, 0xd1, 0x0d, 0xc0, 0x03, 0x01, 0x74, 0x8f, 0x47, 0xd7, 0x0f,
- 0x05, 0xb9, 0xc6, 0x38, 0xb2, 0x27, 0x9e, 0x23, 0xfe, 0xc7, 0xc8, 0x91, 0xed, 0x11, 0xc0, 0x7f,
- 0x87, 0xc7, 0xd7, 0x4e, 0x11, 0x19, 0xf8, 0x1f, 0xa3, 0x75, 0xc9, 0x2f, 0xcf, 0x0f, 0x9d, 0x21,
- 0x9f, 0xf9, 0x48, 0x11, 0x78, 0x66, 0xd8, 0x07, 0x92, 0xbf, 0x08, 0x74, 0x46, 0x3a, 0x5d, 0x2d,
- 0xbe, 0xf1, 0xd2, 0x76, 0xe1, 0x03, 0x64, 0xd2, 0xb9, 0x18, 0x7c, 0xbe, 0xfb, 0xd4, 0x7d, 0x0a,
- 0xf6, 0x27, 0x19, 0x28, 0xaa, 0xba, 0x7f, 0xee, 0xe8, 0x42, 0xf7, 0xd5, 0xf8, 0xb9, 0xba, 0x03,
- 0x1c, 0x80, 0xef, 0xfe, 0xf9, 0xe3, 0xff, 0x08, 0xad, 0x4b, 0x3e, 0x5d, 0xe4, 0xcf, 0x71, 0x36,
- 0x40, 0x65, 0xc0, 0x3f, 0x42, 0x6b, 0xa2, 0x73, 0x9f, 0x1b, 0x36, 0xd3, 0x79, 0xc6, 0x73, 0x8b,
- 0x74, 0x86, 0x9d, 0xba, 0x82, 0x9d, 0xbf, 0x18, 0x7c, 0x46, 0xf7, 0x99, 0x23, 0x17, 0x51, 0x26,
- 0xfb, 0x5f, 0x7f, 0x90, 0xee, 0x2f, 0x00, 0x7d, 0xf3, 0xdf, 0x55, 0xb4, 0xdc, 0xea, 0x65, 0x33,
- 0xdb, 0x8f, 0xd5, 0x89, 0xf9, 0x9b, 0xd9, 0x5e, 0x24, 0x29, 0x57, 0xe4, 0x65, 0xf5, 0x3f, 0x95,
- 0x34, 0xe4, 0xd4, 0xfc, 0x0d, 0x00, 0x56, 0x80, 0x03, 0x1f, 0xba, 0x7f, 0xa4, 0xcc, 0xcd, 0xf7,
- 0x34, 0x44, 0x85, 0xb4, 0xab, 0xf8, 0x77, 0x95, 0x47, 0x52, 0x76, 0xbe, 0x0d, 0x60, 0xf2, 0x58,
- 0xd0, 0x73, 0xfd, 0x43, 0x45, 0x7a, 0xbe, 0xab, 0x63, 0xc8, 0x66, 0x5d, 0x70, 0xc2, 0xdb, 0x85,
- 0x13, 0xf4, 0x1d, 0x08, 0x54, 0xce, 0xcf, 0xca, 0x51, 0xef, 0x53, 0x38, 0x43, 0xdf, 0xd1, 0x70,
- 0x65, 0x43, 0x2f, 0x34, 0xf4, 0xed, 0x80, 0x39, 0xfa, 0x75, 0x35, 0x51, 0x06, 0x50, 0x35, 0xfd,
- 0x7d, 0x0a, 0x27, 0x69, 0x1d, 0x4d, 0x36, 0x54, 0x42, 0x73, 0xe0, 0x0e, 0x98, 0xa6, 0x35, 0x34,
- 0x19, 0x40, 0xd5, 0x40, 0xf8, 0x50, 0x91, 0xa7, 0x75, 0x97, 0xbe, 0x2b, 0x11, 0x15, 0x33, 0x75,
- 0x17, 0xce, 0xd4, 0x9a, 0x4b, 0xdf, 0x05, 0xb9, 0x0a, 0xa9, 0xfa, 0x29, 0x9c, 0xaa, 0x0d, 0x3d,
- 0x4d, 0x03, 0x26, 0x34, 0x2d, 0xee, 0x80, 0xc9, 0x5a, 0xdf, 0xd3, 0x04, 0x50, 0x35, 0x36, 0x3e,
- 0x54, 0x64, 0x6b, 0x53, 0x4f, 0x79, 0xa2, 0x62, 0xbe, 0xee, 0xc2, 0xf9, 0xda, 0xd0, 0x53, 0x99,
- 0xab, 0x90, 0xb0, 0x1f, 0x83, 0x09, 0xfb, 0x75, 0x0d, 0x55, 0x26, 0x15, 0x03, 0x33, 0xe5, 0x27,
- 0x50, 0xca, 0x7e, 0x4d, 0x4d, 0x32, 0x43, 0x53, 0x0c, 0x97, 0x0f, 0x15, 0x39, 0x5b, 0xd7, 0x4d,
- 0x2e, 0x15, 0x83, 0x63, 0xe6, 0x2e, 0x9c, 0xb5, 0x35, 0xdd, 0x64, 0x31, 0x95, 0xf3, 0xe6, 0xa7,
- 0x70, 0xda, 0xd6, 0x29, 0x94, 0x8d, 0xc7, 0xd0, 0xe4, 0xb9, 0x03, 0x26, 0x6e, 0x8d, 0x42, 0x19,
- 0x40, 0xc5, 0x08, 0x7a, 0x9e, 0xb9, 0xe7, 0x99, 0x7b, 0x9e, 0xb9, 0xe7, 0x99, 0x7b, 0x9e, 0xb9,
- 0xe7, 0x99, 0x7b, 0x9e, 0xb9, 0xe7, 0x99, 0x1b, 0xce, 0xdc, 0x7f, 0x5e, 0x40, 0xd7, 0x9f, 0x8c,
- 0x06, 0xe1, 0x73, 0xe6, 0x49, 0xf5, 0x7d, 0x36, 0x18, 0x1b, 0xdf, 0xda, 0xd8, 0xe3, 0x9e, 0x20,
- 0x7f, 0x9b, 0x49, 0xab, 0x26, 0xe3, 0xdc, 0x63, 0x1f, 0xee, 0x7e, 0x1f, 0x2d, 0x4d, 0x06, 0xe3,
- 0xfc, 0x2f, 0x64, 0xc4, 0x87, 0x4d, 0x17, 0x38, 0xdf, 0x45, 0x8b, 0x93, 0xc1, 0x38, 0xef, 0x2b,
- 0x18, 0xf1, 0x81, 0x93, 0x72, 0xba, 0x34, 0xef, 0x4b, 0x17, 0x74, 0x29, 0x89, 0x2a, 0x84, 0x73,
- 0xfe, 0xd7, 0x2c, 0x28, 0x67, 0x1a, 0x74, 0xd2, 0x03, 0xe7, 0x7a, 0xb1, 0x22, 0x3b, 0xb0, 0xef,
- 0x31, 0x07, 0xce, 0xf7, 0x2a, 0x05, 0x73, 0x60, 0xdf, 0x73, 0x76, 0xd0, 0xd5, 0xc9, 0x60, 0x9c,
- 0xef, 0xe5, 0x89, 0xbd, 0x4b, 0x9d, 0xa4, 0x98, 0x1e, 0x35, 0xff, 0xeb, 0x12, 0xf4, 0xa8, 0x74,
- 0xd7, 0x4c, 0x4e, 0x37, 0xef, 0x0b, 0x12, 0xf4, 0x74, 0xf1, 0x07, 0xc1, 0x3a, 0xd6, 0xe8, 0x13,
- 0xaa, 0xd1, 0x58, 0x6b, 0x9b, 0xff, 0x5d, 0x40, 0xab, 0x58, 0xb7, 0xe9, 0xb4, 0xe8, 0x7d, 0x2b,
- 0xd5, 0x92, 0xb1, 0x10, 0xaf, 0xdd, 0x77, 0x2d, 0xb4, 0x4b, 0xc6, 0x35, 0x9c, 0x82, 0x03, 0x4b,
- 0x05, 0x93, 0x24, 0xc0, 0xeb, 0x78, 0xd7, 0x4a, 0xc7, 0x29, 0x42, 0xa6, 0xe6, 0x5d, 0x2b, 0x35,
- 0x73, 0x00, 0x44, 0x95, 0x81, 0xa5, 0xa6, 0xb9, 0xb3, 0xa0, 0xca, 0xde, 0xb5, 0x52, 0xb6, 0x48,
- 0x02, 0xbf, 0x27, 0x67, 0xa7, 0x6f, 0x89, 0x04, 0xbe, 0x47, 0xf2, 0xab, 0x3c, 0x5d, 0x9f, 0x6a,
- 0x3d, 0xb0, 0xd4, 0x3a, 0xc7, 0x80, 0x2a, 0x7e, 0xd7, 0x4a, 0xf1, 0x5c, 0x1b, 0x88, 0xee, 0xaf,
- 0x63, 0x8d, 0x3f, 0xc1, 0x1a, 0x8f, 0x55, 0x1a, 0xdc, 0xfb, 0xe2, 0xcb, 0x6a, 0xe9, 0xe5, 0x97,
- 0xd5, 0xd2, 0x1f, 0xcf, 0xaa, 0xa5, 0xbf, 0x9c, 0x55, 0x4b, 0x7f, 0x3d, 0xab, 0x96, 0x3e, 0x3f,
- 0xab, 0x96, 0xfe, 0x76, 0x56, 0x2d, 0x7d, 0x71, 0x56, 0x2d, 0xbd, 0x3c, 0xab, 0x5e, 0xfa, 0xe5,
- 0x3f, 0xab, 0x97, 0xfa, 0x57, 0xf0, 0x11, 0xfc, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0xa6, 0xb3,
- 0x35, 0x4d, 0x74, 0x40, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types.pb.go b/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types.pb.go
index c175a9218d..418ad61b49 100644
--- a/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types.pb.go
@@ -3,16 +3,16 @@
package types
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import types "github.com/gogo/protobuf/types"
-
-import time "time"
-import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
-
-import bytes "bytes"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
+ types "github.com/gogo/protobuf/types"
+ math "math"
+ time "time"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -47,7 +47,7 @@ func (m *KnownTypes) Reset() { *m = KnownTypes{} }
func (m *KnownTypes) String() string { return proto.CompactTextString(m) }
func (*KnownTypes) ProtoMessage() {}
func (*KnownTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_84a5c6bb8f2642e0, []int{0}
+ return fileDescriptor_a143c1648742cb2e, []int{0}
}
func (m *KnownTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KnownTypes.Unmarshal(m, b)
@@ -64,8 +64,8 @@ func (m *KnownTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *KnownTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_KnownTypes.Merge(dst, src)
+func (m *KnownTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KnownTypes.Merge(m, src)
}
func (m *KnownTypes) XXX_Size() int {
return m.Size()
@@ -185,7 +185,7 @@ func (m *ProtoTypes) Reset() { *m = ProtoTypes{} }
func (m *ProtoTypes) String() string { return proto.CompactTextString(m) }
func (*ProtoTypes) ProtoMessage() {}
func (*ProtoTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_84a5c6bb8f2642e0, []int{1}
+ return fileDescriptor_a143c1648742cb2e, []int{1}
}
func (m *ProtoTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProtoTypes.Unmarshal(m, b)
@@ -202,8 +202,8 @@ func (m *ProtoTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *ProtoTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ProtoTypes.Merge(dst, src)
+func (m *ProtoTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ProtoTypes.Merge(m, src)
}
func (m *ProtoTypes) XXX_Size() int {
return m.Size()
@@ -400,7 +400,7 @@ func (m *StdTypes) Reset() { *m = StdTypes{} }
func (m *StdTypes) String() string { return proto.CompactTextString(m) }
func (*StdTypes) ProtoMessage() {}
func (*StdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_84a5c6bb8f2642e0, []int{2}
+ return fileDescriptor_a143c1648742cb2e, []int{2}
}
func (m *StdTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StdTypes.Unmarshal(m, b)
@@ -417,8 +417,8 @@ func (m *StdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *StdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_StdTypes.Merge(dst, src)
+func (m *StdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StdTypes.Merge(m, src)
}
func (m *StdTypes) XXX_Size() int {
return m.Size()
@@ -615,7 +615,7 @@ func (m *RepProtoTypes) Reset() { *m = RepProtoTypes{} }
func (m *RepProtoTypes) String() string { return proto.CompactTextString(m) }
func (*RepProtoTypes) ProtoMessage() {}
func (*RepProtoTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_84a5c6bb8f2642e0, []int{3}
+ return fileDescriptor_a143c1648742cb2e, []int{3}
}
func (m *RepProtoTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepProtoTypes.Unmarshal(m, b)
@@ -632,8 +632,8 @@ func (m *RepProtoTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
return b[:n], nil
}
}
-func (dst *RepProtoTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RepProtoTypes.Merge(dst, src)
+func (m *RepProtoTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RepProtoTypes.Merge(m, src)
}
func (m *RepProtoTypes) XXX_Size() int {
return m.Size()
@@ -830,7 +830,7 @@ func (m *RepStdTypes) Reset() { *m = RepStdTypes{} }
func (m *RepStdTypes) String() string { return proto.CompactTextString(m) }
func (*RepStdTypes) ProtoMessage() {}
func (*RepStdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_84a5c6bb8f2642e0, []int{4}
+ return fileDescriptor_a143c1648742cb2e, []int{4}
}
func (m *RepStdTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepStdTypes.Unmarshal(m, b)
@@ -847,8 +847,8 @@ func (m *RepStdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *RepStdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RepStdTypes.Merge(dst, src)
+func (m *RepStdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RepStdTypes.Merge(m, src)
}
func (m *RepStdTypes) XXX_Size() int {
return m.Size()
@@ -1045,7 +1045,7 @@ func (m *MapProtoTypes) Reset() { *m = MapProtoTypes{} }
func (m *MapProtoTypes) String() string { return proto.CompactTextString(m) }
func (*MapProtoTypes) ProtoMessage() {}
func (*MapProtoTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_84a5c6bb8f2642e0, []int{5}
+ return fileDescriptor_a143c1648742cb2e, []int{5}
}
func (m *MapProtoTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MapProtoTypes.Unmarshal(m, b)
@@ -1062,8 +1062,8 @@ func (m *MapProtoTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
return b[:n], nil
}
}
-func (dst *MapProtoTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MapProtoTypes.Merge(dst, src)
+func (m *MapProtoTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MapProtoTypes.Merge(m, src)
}
func (m *MapProtoTypes) XXX_Size() int {
return m.Size()
@@ -1260,7 +1260,7 @@ func (m *MapStdTypes) Reset() { *m = MapStdTypes{} }
func (m *MapStdTypes) String() string { return proto.CompactTextString(m) }
func (*MapStdTypes) ProtoMessage() {}
func (*MapStdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_84a5c6bb8f2642e0, []int{6}
+ return fileDescriptor_a143c1648742cb2e, []int{6}
}
func (m *MapStdTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MapStdTypes.Unmarshal(m, b)
@@ -1277,8 +1277,8 @@ func (m *MapStdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *MapStdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MapStdTypes.Merge(dst, src)
+func (m *MapStdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MapStdTypes.Merge(m, src)
}
func (m *MapStdTypes) XXX_Size() int {
return m.Size()
@@ -1466,7 +1466,7 @@ func (m *OneofProtoTypes) Reset() { *m = OneofProtoTypes{} }
func (m *OneofProtoTypes) String() string { return proto.CompactTextString(m) }
func (*OneofProtoTypes) ProtoMessage() {}
func (*OneofProtoTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_84a5c6bb8f2642e0, []int{7}
+ return fileDescriptor_a143c1648742cb2e, []int{7}
}
func (m *OneofProtoTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OneofProtoTypes.Unmarshal(m, b)
@@ -1483,8 +1483,8 @@ func (m *OneofProtoTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, err
return b[:n], nil
}
}
-func (dst *OneofProtoTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OneofProtoTypes.Merge(dst, src)
+func (m *OneofProtoTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OneofProtoTypes.Merge(m, src)
}
func (m *OneofProtoTypes) XXX_Size() int {
return m.Size()
@@ -1901,7 +1901,7 @@ func (m *OneofStdTypes) Reset() { *m = OneofStdTypes{} }
func (m *OneofStdTypes) String() string { return proto.CompactTextString(m) }
func (*OneofStdTypes) ProtoMessage() {}
func (*OneofStdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_84a5c6bb8f2642e0, []int{8}
+ return fileDescriptor_a143c1648742cb2e, []int{8}
}
func (m *OneofStdTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OneofStdTypes.Unmarshal(m, b)
@@ -1918,8 +1918,8 @@ func (m *OneofStdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
return b[:n], nil
}
}
-func (dst *OneofStdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OneofStdTypes.Merge(dst, src)
+func (m *OneofStdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OneofStdTypes.Merge(m, src)
}
func (m *OneofStdTypes) XXX_Size() int {
return m.Size()
@@ -2478,6 +2478,157 @@ func init() {
proto.RegisterType((*OneofProtoTypes)(nil), "types.OneofProtoTypes")
proto.RegisterType((*OneofStdTypes)(nil), "types.OneofStdTypes")
}
+
+func init() { proto.RegisterFile("combos/marshaler/types.proto", fileDescriptor_a143c1648742cb2e) }
+
+var fileDescriptor_a143c1648742cb2e = []byte{
+ // 2299 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcf, 0x73, 0x1c, 0x47,
+ 0x19, 0xd5, 0x7a, 0x57, 0xb6, 0xd4, 0x92, 0x6c, 0x69, 0x1c, 0xa7, 0x06, 0x91, 0x5a, 0x1b, 0x25,
+ 0x76, 0x4c, 0x52, 0x91, 0xc8, 0x8c, 0x4a, 0x80, 0x21, 0x51, 0x32, 0x65, 0x7b, 0xb5, 0x1b, 0xc9,
+ 0x5e, 0xaf, 0xb4, 0x2e, 0x08, 0x04, 0xd8, 0x8d, 0xc6, 0x8a, 0x8a, 0xd5, 0xce, 0xd6, 0xee, 0x2c,
+ 0x29, 0xdd, 0xf8, 0x03, 0x38, 0x70, 0x83, 0x2a, 0x2e, 0x70, 0xe3, 0xca, 0x81, 0x2a, 0x8e, 0x1c,
+ 0x73, 0xe4, 0x2f, 0x80, 0x44, 0x5c, 0xb8, 0x02, 0x17, 0x5f, 0xa8, 0xa2, 0xa6, 0xbb, 0x67, 0xa6,
+ 0x7f, 0x7c, 0xdd, 0x3d, 0x3d, 0x25, 0xdd, 0x74, 0x93, 0x76, 0xbf, 0x7e, 0xf3, 0xe6, 0x9b, 0x37,
+ 0x7a, 0xfd, 0xbe, 0xd1, 0xa0, 0xd7, 0x3e, 0x8d, 0x4e, 0xfa, 0xd1, 0x64, 0xe3, 0xa4, 0x37, 0x9e,
+ 0x7c, 0xd6, 0x1b, 0x84, 0xe3, 0x8d, 0xf8, 0x74, 0x14, 0x4e, 0xd6, 0x47, 0xe3, 0x28, 0x8e, 0x9c,
+ 0x59, 0xfc, 0xcb, 0xea, 0x3b, 0x47, 0xc7, 0xf1, 0x67, 0xd3, 0xfe, 0xfa, 0xa7, 0xd1, 0xc9, 0xc6,
+ 0x51, 0x74, 0x14, 0x6d, 0xe0, 0x6f, 0xfb, 0xd3, 0x17, 0xf8, 0x37, 0xfc, 0x0b, 0xfe, 0x89, 0xac,
+ 0x5a, 0xad, 0x1f, 0x45, 0xd1, 0xd1, 0x20, 0xcc, 0xab, 0x0e, 0xa7, 0xe3, 0x5e, 0x7c, 0x1c, 0x0d,
+ 0xe9, 0xf7, 0xb7, 0xc5, 0xef, 0xe3, 0xe3, 0x93, 0x70, 0x12, 0xf7, 0x4e, 0x46, 0x2a, 0x80, 0xcf,
+ 0xc7, 0xbd, 0xd1, 0x28, 0x1c, 0x53, 0x5a, 0x6b, 0xbf, 0xab, 0x21, 0xf4, 0xd1, 0x30, 0xfa, 0x7c,
+ 0x78, 0x90, 0xd0, 0x73, 0xde, 0x46, 0xd5, 0xc3, 0xe9, 0xd8, 0xad, 0xdc, 0xa9, 0xdc, 0x5f, 0xf0,
+ 0xbe, 0xb6, 0x4e, 0x16, 0xaf, 0xa7, 0x8b, 0xd7, 0x1f, 0xd2, 0xa3, 0x77, 0x92, 0x2a, 0xe7, 0x2d,
+ 0x74, 0x25, 0x9e, 0xb8, 0x57, 0x70, 0xed, 0xaa, 0x54, 0x7b, 0x90, 0x32, 0xe9, 0x5c, 0x89, 0x27,
+ 0xce, 0x3a, 0xaa, 0x1e, 0xf6, 0x07, 0x6e, 0x15, 0x17, 0xbf, 0x26, 0x03, 0x47, 0xd3, 0xfe, 0x20,
+ 0x7c, 0xde, 0x1b, 0x4c, 0xc3, 0x4e, 0x52, 0xe8, 0xbc, 0x83, 0xaa, 0x2f, 0x06, 0xb1, 0x5b, 0xc3,
+ 0xf5, 0x5f, 0x97, 0xea, 0x1f, 0x0f, 0xa2, 0x5e, 0x4c, 0xcb, 0x5f, 0x0c, 0xe2, 0xa4, 0xfc, 0x78,
+ 0x6b, 0xd3, 0x9d, 0x55, 0x94, 0x37, 0x87, 0xf1, 0xd6, 0x26, 0x2d, 0x3f, 0xde, 0xda, 0x4c, 0xd8,
+ 0x4c, 0xb7, 0x36, 0xdd, 0xab, 0x0a, 0x36, 0x5d, 0xb6, 0x7e, 0xba, 0xb5, 0x89, 0xe1, 0x7d, 0xcf,
+ 0xbd, 0xa6, 0x86, 0xf7, 0xbd, 0x14, 0xde, 0xf7, 0x30, 0xbc, 0xef, 0xb9, 0x73, 0x1a, 0xf8, 0xac,
+ 0x7e, 0x8a, 0xeb, 0x6b, 0xfd, 0x28, 0x1a, 0xb8, 0xf3, 0x8a, 0x56, 0x06, 0x51, 0x34, 0x20, 0xe5,
+ 0xb8, 0x2e, 0xc1, 0x9f, 0xc4, 0x63, 0x17, 0x29, 0xf0, 0xf7, 0xe3, 0xf1, 0xf1, 0xf0, 0x88, 0xe2,
+ 0x4f, 0xe2, 0xb1, 0xf3, 0x2e, 0x9a, 0xed, 0x9f, 0xc6, 0xe1, 0xc4, 0x5d, 0x50, 0x9c, 0x40, 0x90,
+ 0x7c, 0x4b, 0x16, 0x90, 0xca, 0x07, 0xb5, 0x7f, 0xfd, 0xe1, 0x76, 0x65, 0xed, 0x57, 0x8b, 0x08,
+ 0xb5, 0x93, 0x22, 0xa2, 0x8e, 0x1d, 0xb4, 0x32, 0x9c, 0x0e, 0x06, 0xbd, 0xfe, 0x20, 0xcc, 0xae,
+ 0x2e, 0xd5, 0x8a, 0xee, 0xfa, 0xcb, 0x8b, 0x9c, 0x47, 0x68, 0x39, 0xfd, 0x30, 0xd5, 0x14, 0x15,
+ 0x92, 0x46, 0x74, 0xd2, 0x12, 0xe7, 0x21, 0xba, 0x9e, 0x7d, 0x86, 0x15, 0x54, 0x48, 0x60, 0xc2,
+ 0x1a, 0xe7, 0x43, 0xb4, 0x94, 0x7e, 0x82, 0x75, 0x55, 0x44, 0x75, 0xfc, 0x0a, 0x16, 0x02, 0x6b,
+ 0xa7, 0x88, 0x12, 0xf9, 0x15, 0xec, 0xb9, 0x10, 0xfd, 0x15, 0x92, 0xa7, 0xb0, 0x46, 0x20, 0x52,
+ 0x4c, 0xb3, 0xfc, 0x0a, 0x91, 0x48, 0x41, 0x21, 0x0b, 0x6b, 0x9c, 0xf7, 0xd1, 0x62, 0xfa, 0x49,
+ 0x50, 0x4c, 0xdb, 0x5c, 0x3d, 0xcb, 0x82, 0xe8, 0xb9, 0x90, 0xdc, 0x85, 0x35, 0x6c, 0x3b, 0x82,
+ 0xa2, 0x77, 0x00, 0xbf, 0xc2, 0x79, 0x1f, 0xcd, 0x67, 0x7f, 0x54, 0xdd, 0x45, 0x93, 0xd8, 0x83,
+ 0xda, 0x17, 0x7f, 0xbf, 0x3d, 0xd3, 0xc9, 0x97, 0x38, 0xdf, 0x43, 0x73, 0xe9, 0x1f, 0x6d, 0x77,
+ 0xc9, 0x20, 0x71, 0xba, 0x3a, 0x5b, 0xe0, 0xec, 0xa0, 0xa5, 0x61, 0x34, 0x4c, 0x08, 0x51, 0x7d,
+ 0x5f, 0x37, 0xeb, 0x9b, 0x82, 0xf0, 0x0b, 0x9d, 0x47, 0x68, 0x91, 0x7e, 0x40, 0x34, 0x7e, 0xc3,
+ 0xa8, 0x71, 0x8a, 0xc3, 0x2d, 0x63, 0x60, 0x88, 0x46, 0x97, 0x8d, 0x3a, 0x17, 0x60, 0x88, 0x4c,
+ 0xf3, 0xf3, 0xa2, 0x5a, 0x5f, 0x31, 0x6b, 0x5d, 0x38, 0x2f, 0x2a, 0x78, 0x8e, 0x90, 0xef, 0xb9,
+ 0x8e, 0x51, 0xef, 0x32, 0x21, 0xdf, 0x13, 0x08, 0xf9, 0x9e, 0x7b, 0xd3, 0xac, 0x79, 0x80, 0x90,
+ 0xef, 0x39, 0x01, 0x5a, 0xa0, 0x1f, 0x60, 0xdd, 0xbf, 0x62, 0xd2, 0x3d, 0x45, 0x61, 0x17, 0x31,
+ 0x6c, 0xa8, 0xf6, 0x6f, 0x99, 0xb5, 0x2f, 0xb0, 0xa1, 0x37, 0x40, 0xde, 0x1e, 0xa2, 0xff, 0x57,
+ 0x8d, 0xfa, 0x17, 0xda, 0x13, 0x30, 0x76, 0xf0, 0x9f, 0x45, 0x34, 0xb7, 0x1f, 0x1f, 0x12, 0x33,
+ 0x78, 0x52, 0xca, 0x0c, 0x82, 0xda, 0xaf, 0xff, 0x71, 0xbb, 0x02, 0x59, 0xc2, 0x47, 0x25, 0x2c,
+ 0x21, 0xa8, 0xfd, 0x36, 0x41, 0x93, 0x8d, 0xa1, 0x55, 0xc6, 0x18, 0x82, 0xda, 0xef, 0x13, 0x34,
+ 0xd1, 0x1e, 0x1a, 0xf6, 0xf6, 0x40, 0x91, 0x04, 0x93, 0x68, 0xd8, 0x9b, 0x84, 0x08, 0x44, 0x34,
+ 0xdf, 0x2a, 0x63, 0x15, 0xe2, 0xd9, 0xd1, 0xfb, 0xa7, 0x61, 0x6f, 0x18, 0x00, 0x29, 0xdf, 0x13,
+ 0x49, 0x15, 0xb3, 0x0d, 0x88, 0x14, 0xb6, 0x20, 0x4b, 0xf3, 0xa0, 0x38, 0xbc, 0x85, 0xb4, 0xca,
+ 0x58, 0x88, 0xc8, 0x88, 0xde, 0x47, 0x0d, 0x7b, 0x23, 0x11, 0xdb, 0x44, 0xec, 0x24, 0xb0, 0xb3,
+ 0x93, 0xb9, 0xe4, 0x66, 0xc4, 0xb7, 0x0c, 0x63, 0x29, 0xdb, 0x36, 0x96, 0x82, 0x11, 0xf0, 0x6d,
+ 0x92, 0xdb, 0xca, 0x6e, 0x19, 0x5b, 0xc1, 0x40, 0xf4, 0x94, 0x38, 0x6b, 0x69, 0xda, 0x5b, 0x4b,
+ 0x8e, 0xc5, 0xdb, 0x4b, 0xd3, 0xde, 0x5e, 0x64, 0x28, 0x22, 0xec, 0xdd, 0x32, 0x16, 0x23, 0x9f,
+ 0x23, 0xbd, 0x4d, 0x9a, 0xf6, 0x36, 0x03, 0x12, 0xf3, 0x3d, 0x81, 0x58, 0x41, 0xab, 0x81, 0x89,
+ 0xf9, 0x9e, 0xf3, 0xd8, 0xd6, 0x6e, 0x72, 0x24, 0xce, 0x72, 0x76, 0xcb, 0x58, 0x8e, 0xcc, 0x8a,
+ 0xde, 0x2e, 0x4d, 0x7b, 0xdb, 0x91, 0xdb, 0x85, 0xbf, 0x5c, 0xfb, 0xcd, 0x22, 0x5a, 0xea, 0x84,
+ 0x23, 0x26, 0x86, 0xb4, 0x90, 0x23, 0xd9, 0xc7, 0xc4, 0xad, 0xdc, 0xa9, 0x1a, 0x72, 0x08, 0xb0,
+ 0xca, 0x69, 0xe4, 0x2e, 0x96, 0xde, 0x31, 0x49, 0xa4, 0xad, 0xea, 0x93, 0x88, 0xbc, 0xc6, 0xf9,
+ 0x00, 0xa1, 0x38, 0x27, 0x53, 0x35, 0x91, 0xa1, 0x2e, 0xcb, 0xac, 0x71, 0xde, 0x43, 0xf3, 0x87,
+ 0x19, 0x85, 0x9a, 0x81, 0x42, 0xba, 0xcf, 0xcc, 0x56, 0x00, 0x59, 0x68, 0x16, 0x63, 0xd8, 0x65,
+ 0x21, 0x69, 0xc3, 0x79, 0xd5, 0x0c, 0x02, 0x6f, 0x38, 0xa5, 0x54, 0x75, 0x0d, 0x23, 0xd9, 0xa4,
+ 0x2a, 0x71, 0xcf, 0x3a, 0x67, 0x44, 0x00, 0xf7, 0xac, 0x52, 0x38, 0x9b, 0x57, 0xe0, 0xa8, 0xc3,
+ 0x99, 0xb8, 0xed, 0x45, 0x46, 0x04, 0x70, 0xdb, 0x2b, 0x67, 0xbc, 0x05, 0x45, 0x7b, 0x75, 0x19,
+ 0x4f, 0xda, 0x3c, 0x2f, 0x9a, 0x41, 0xe0, 0xcd, 0xb3, 0x94, 0x16, 0x97, 0xd4, 0xe7, 0xa5, 0x48,
+ 0x8b, 0xe2, 0xfe, 0xfb, 0xba, 0x11, 0x01, 0xdc, 0x7f, 0xcb, 0xa1, 0xf3, 0x86, 0xe6, 0xa4, 0x54,
+ 0xa1, 0x53, 0xda, 0xc5, 0x2f, 0x9b, 0x41, 0xe0, 0x5d, 0xbc, 0x18, 0x5f, 0x57, 0x14, 0x37, 0xb4,
+ 0x2a, 0xbe, 0x0a, 0x29, 0xc0, 0x31, 0x2d, 0x87, 0x52, 0x80, 0x1c, 0x81, 0x6f, 0x2a, 0x4e, 0x47,
+ 0x17, 0x81, 0xa5, 0x2c, 0xf1, 0x8a, 0x19, 0x04, 0xce, 0x12, 0x52, 0x98, 0xbe, 0xa5, 0xb8, 0xd6,
+ 0xea, 0x30, 0x2d, 0xc7, 0x91, 0x6a, 0xf9, 0x38, 0xf2, 0xbf, 0x45, 0xb4, 0xd0, 0x09, 0x47, 0x59,
+ 0x22, 0x69, 0x97, 0xf3, 0x05, 0x1a, 0x49, 0x20, 0x77, 0xd8, 0x2b, 0xe3, 0x0e, 0x34, 0x94, 0x00,
+ 0x1e, 0xf1, 0xd0, 0xd2, 0x23, 0xf2, 0xcd, 0x1f, 0xeb, 0x13, 0x1f, 0x5a, 0xf9, 0x44, 0xbe, 0xfd,
+ 0x63, 0xbc, 0xa2, 0x55, 0xc6, 0x2b, 0x14, 0xf1, 0x68, 0xb7, 0x8c, 0x63, 0x28, 0xf7, 0x92, 0x0d,
+ 0x7b, 0xd7, 0x80, 0xc3, 0x56, 0xd3, 0xde, 0x3b, 0x54, 0x9b, 0xd2, 0x86, 0xbd, 0x7f, 0xc0, 0xb9,
+ 0xad, 0x69, 0xef, 0x22, 0xaa, 0xdd, 0x6d, 0xab, 0x8c, 0x93, 0x28, 0x22, 0xe0, 0x6e, 0x19, 0x3f,
+ 0x51, 0xee, 0x94, 0x1b, 0xf6, 0x9e, 0x02, 0x07, 0xca, 0xa6, 0xbd, 0xb3, 0xa8, 0xb6, 0xdc, 0xad,
+ 0x32, 0xee, 0xa2, 0xc8, 0xa6, 0xbb, 0x65, 0x3c, 0x46, 0xb9, 0x7d, 0x7f, 0x68, 0xeb, 0x33, 0x60,
+ 0xd2, 0x7d, 0x6c, 0xeb, 0x36, 0x8a, 0x10, 0xd0, 0x2a, 0xe3, 0x38, 0x8a, 0xc4, 0xbc, 0x5b, 0xc6,
+ 0x77, 0x94, 0x81, 0xa2, 0x61, 0xef, 0x3d, 0x70, 0xfe, 0x6e, 0xda, 0x3b, 0x90, 0x2a, 0x99, 0xfc,
+ 0xa9, 0x8e, 0x96, 0xf6, 0x7a, 0x6c, 0x32, 0xf9, 0x21, 0x3c, 0x13, 0x4b, 0x8e, 0xf0, 0xf6, 0x3a,
+ 0x79, 0x1a, 0xc8, 0x2d, 0x58, 0x7f, 0x22, 0x56, 0x3f, 0x1a, 0xc6, 0xe3, 0x53, 0x68, 0x3c, 0xd6,
+ 0x60, 0xe7, 0x06, 0xc4, 0x82, 0x5e, 0x07, 0x21, 0x79, 0x28, 0x79, 0x1e, 0xfd, 0x1c, 0x98, 0xb3,
+ 0x11, 0x2b, 0x7a, 0x4b, 0x4b, 0x31, 0x2d, 0x26, 0x0c, 0xa1, 0x67, 0x31, 0xf9, 0x50, 0x82, 0xb8,
+ 0xd2, 0x1a, 0x88, 0xc7, 0xe1, 0x48, 0x03, 0xef, 0xb6, 0xc2, 0x99, 0xee, 0xeb, 0xb9, 0xe1, 0x52,
+ 0xc2, 0x4c, 0xf4, 0xa7, 0x7d, 0xd8, 0x9f, 0xde, 0x84, 0x01, 0xd9, 0x4a, 0x96, 0xa1, 0x60, 0x53,
+ 0x7b, 0xb0, 0x4d, 0xbd, 0xa9, 0x65, 0x89, 0x2b, 0x09, 0x49, 0xc1, 0xac, 0xda, 0xa0, 0x59, 0xdd,
+ 0xd3, 0x51, 0xcc, 0xc1, 0xc0, 0xcc, 0xb3, 0x07, 0x7b, 0x96, 0x9e, 0x20, 0xae, 0x14, 0x08, 0x92,
+ 0x3f, 0xea, 0x6d, 0xd0, 0xb9, 0xb4, 0x04, 0x73, 0x30, 0x30, 0x0a, 0xb5, 0x15, 0x06, 0xa6, 0xbf,
+ 0xd0, 0x5d, 0x86, 0xa2, 0x68, 0x63, 0xfb, 0xb0, 0x8d, 0x69, 0x2f, 0x74, 0x57, 0x62, 0x29, 0xb8,
+ 0xd9, 0x1e, 0xec, 0x66, 0xc6, 0x3e, 0xfa, 0x9e, 0xdc, 0x47, 0xdf, 0xe3, 0xfb, 0x98, 0x79, 0x9a,
+ 0xa9, 0x8f, 0x14, 0x0c, 0x0c, 0x4e, 0x6d, 0x85, 0xb5, 0x99, 0xfb, 0x98, 0x52, 0x14, 0x0d, 0x6e,
+ 0x1f, 0x36, 0x38, 0x63, 0x1f, 0x79, 0x96, 0x82, 0xcf, 0xb5, 0x40, 0x9f, 0xbb, 0xa7, 0x25, 0x99,
+ 0x14, 0x12, 0x8a, 0xbc, 0xdb, 0xed, 0x41, 0x6e, 0x77, 0x57, 0x47, 0x2f, 0x43, 0x82, 0x62, 0x56,
+ 0x5b, 0x61, 0x7a, 0xfa, 0x0e, 0x92, 0x52, 0xa1, 0x83, 0xd4, 0xac, 0xf6, 0x61, 0xeb, 0xd3, 0x76,
+ 0x90, 0xc1, 0x83, 0xd3, 0xd7, 0x1e, 0xec, 0x80, 0x7a, 0x25, 0xe2, 0x4a, 0x41, 0x89, 0xc4, 0x07,
+ 0xdb, 0xa0, 0x0f, 0x6a, 0x95, 0x98, 0x83, 0x41, 0xa1, 0x6c, 0xf5, 0x67, 0xe8, 0x55, 0xd8, 0xce,
+ 0x9c, 0x65, 0x54, 0xfd, 0x79, 0x78, 0x8a, 0x1f, 0x0e, 0xcd, 0x76, 0x92, 0x1f, 0x9d, 0x6f, 0xa1,
+ 0xd9, 0x5f, 0x24, 0xde, 0x5a, 0xe0, 0xbf, 0x47, 0x48, 0xe1, 0x83, 0x2b, 0xdf, 0xa9, 0xac, 0xfe,
+ 0x00, 0x5d, 0xbf, 0x20, 0xe4, 0x9f, 0xa0, 0x5b, 0xa0, 0xcf, 0x01, 0x07, 0xd8, 0xe0, 0x0f, 0xa0,
+ 0x99, 0x12, 0x32, 0xf8, 0xcf, 0xd1, 0xd2, 0x85, 0xe0, 0xfe, 0x14, 0xdd, 0x04, 0x3c, 0x10, 0x40,
+ 0xf7, 0x78, 0x74, 0xfd, 0x50, 0x90, 0x6b, 0x8c, 0x23, 0x7b, 0xe2, 0x39, 0xe2, 0x7f, 0x82, 0x1c,
+ 0xd9, 0x1e, 0x01, 0xfc, 0x77, 0x79, 0x7c, 0xed, 0x14, 0x91, 0x81, 0xff, 0x31, 0x5a, 0x91, 0xfc,
+ 0xf2, 0xfc, 0xd0, 0x19, 0xf2, 0xb9, 0x8f, 0x94, 0x81, 0x67, 0x86, 0x7d, 0x20, 0xf9, 0x8b, 0x40,
+ 0x67, 0xa4, 0xd3, 0xd5, 0xe2, 0x1b, 0x2f, 0x6d, 0x17, 0x3e, 0x40, 0x2e, 0x9d, 0x8b, 0xc1, 0xe7,
+ 0xbb, 0x4f, 0xdd, 0xa7, 0x64, 0x7f, 0xd2, 0x81, 0xa2, 0xaa, 0xfb, 0xe7, 0x8e, 0x2e, 0x74, 0x5f,
+ 0x8d, 0x5f, 0xa8, 0x3b, 0xc0, 0x01, 0xf8, 0xee, 0x9f, 0x3f, 0xfe, 0x8f, 0xd0, 0x8a, 0xe4, 0xd3,
+ 0x65, 0xfe, 0x1c, 0xe7, 0x03, 0x54, 0x06, 0xfc, 0x63, 0xb4, 0x2c, 0x3a, 0xf7, 0xb9, 0x61, 0x33,
+ 0x9d, 0x67, 0x3c, 0xb7, 0x4c, 0x67, 0xd8, 0xa9, 0x2b, 0xd8, 0xf9, 0x8b, 0xc1, 0x67, 0x74, 0x9f,
+ 0x3b, 0x72, 0x19, 0x65, 0xb2, 0xff, 0xf5, 0x07, 0xe9, 0xfe, 0x02, 0xd0, 0xd7, 0xfe, 0x5d, 0x47,
+ 0x0b, 0x7b, 0xbd, 0x7c, 0x66, 0xfb, 0x89, 0x3a, 0x31, 0x7f, 0x33, 0xdf, 0x8b, 0xa4, 0xe5, 0x8a,
+ 0xbc, 0xac, 0xfe, 0xa7, 0x92, 0xa6, 0x9c, 0x9a, 0xbf, 0x01, 0xc0, 0x0a, 0x70, 0xe0, 0x43, 0xf7,
+ 0x8f, 0x95, 0xb9, 0xf9, 0xbe, 0x86, 0xa8, 0x90, 0x76, 0x15, 0xff, 0xae, 0xf2, 0x58, 0xca, 0xce,
+ 0x77, 0x00, 0x4c, 0x1e, 0x0b, 0x7a, 0xae, 0x7f, 0xa0, 0x48, 0xcf, 0xf7, 0x74, 0x0c, 0xd9, 0xac,
+ 0x0b, 0x4e, 0x78, 0xbb, 0x70, 0x82, 0xbe, 0x0b, 0x81, 0xca, 0xf9, 0x59, 0x39, 0xea, 0x7d, 0x06,
+ 0x67, 0xe8, 0xbb, 0x1a, 0xae, 0x6c, 0xe8, 0x85, 0x86, 0xbe, 0x1d, 0x30, 0x47, 0xbf, 0xa1, 0x26,
+ 0xca, 0x00, 0xaa, 0xa6, 0xbf, 0xcf, 0xe0, 0x24, 0xad, 0xa3, 0xc9, 0x86, 0x4a, 0x68, 0x0e, 0xdc,
+ 0x01, 0xd3, 0xb4, 0x86, 0x26, 0x03, 0xa8, 0x1a, 0x08, 0x1f, 0x28, 0xf2, 0xb4, 0xee, 0xd2, 0x77,
+ 0x25, 0xa2, 0x62, 0xa6, 0xee, 0xc2, 0x99, 0x5a, 0x73, 0xe9, 0xbb, 0x20, 0x57, 0x21, 0x55, 0x3f,
+ 0x83, 0x53, 0xb5, 0xa1, 0xa7, 0x59, 0xc0, 0x84, 0xa6, 0xc5, 0x1d, 0x30, 0x59, 0xeb, 0x7b, 0x9a,
+ 0x02, 0xaa, 0xc6, 0xc6, 0x07, 0x8a, 0x6c, 0x6d, 0xea, 0x29, 0x4f, 0x54, 0xcc, 0xd7, 0x5d, 0x38,
+ 0x5f, 0x1b, 0x7a, 0x2a, 0x73, 0x15, 0x12, 0xf6, 0x13, 0x30, 0x61, 0xbf, 0xa1, 0xa1, 0xca, 0xa4,
+ 0x62, 0x60, 0xa6, 0xfc, 0x14, 0x4a, 0xd9, 0xaf, 0xab, 0x49, 0xe6, 0x68, 0x8a, 0xe1, 0xf2, 0x81,
+ 0x22, 0x67, 0xeb, 0xba, 0xc9, 0xa5, 0x62, 0x70, 0xcc, 0xdc, 0x85, 0xb3, 0xb6, 0xa6, 0x9b, 0x2c,
+ 0xa6, 0x72, 0xde, 0xfc, 0x0c, 0x4e, 0xdb, 0x3a, 0x85, 0xb2, 0xf1, 0x18, 0x9a, 0x3c, 0x77, 0xc0,
+ 0xc4, 0xad, 0x51, 0x28, 0x03, 0xa8, 0x18, 0x41, 0x5f, 0x66, 0xee, 0xcb, 0xcc, 0x7d, 0x99, 0xb9,
+ 0x2f, 0x33, 0xf7, 0x65, 0xe6, 0xbe, 0xcc, 0xdc, 0x97, 0x99, 0xfb, 0x32, 0x73, 0xc3, 0x99, 0xfb,
+ 0xcf, 0xb3, 0xe8, 0xc6, 0xd3, 0x61, 0x18, 0xbd, 0x60, 0x9e, 0x54, 0x3f, 0x60, 0x83, 0xb1, 0xf1,
+ 0xad, 0x8d, 0x1d, 0xee, 0x09, 0xf2, 0xb7, 0x99, 0xb4, 0x6a, 0x32, 0xce, 0x1d, 0xf6, 0xe1, 0xee,
+ 0xf7, 0xd1, 0xfc, 0x38, 0x1c, 0x15, 0x7f, 0x21, 0x23, 0x39, 0x6c, 0xb6, 0xc0, 0xf9, 0x2e, 0x9a,
+ 0x1b, 0x87, 0xa3, 0xa2, 0xaf, 0x60, 0x24, 0x07, 0x4e, 0xcb, 0xe9, 0xd2, 0xa2, 0x2f, 0x5d, 0xd0,
+ 0xa5, 0x24, 0xaa, 0x10, 0xce, 0xc5, 0x5f, 0xb3, 0xa0, 0x9c, 0x69, 0xd0, 0xc9, 0x0e, 0x5c, 0xe8,
+ 0xc5, 0x8a, 0xfc, 0xc0, 0xbe, 0xc7, 0x1c, 0xb8, 0xd8, 0xab, 0x14, 0xcc, 0x81, 0x7d, 0xcf, 0xd9,
+ 0x42, 0xd7, 0xc6, 0xe1, 0xa8, 0xd8, 0xcb, 0x13, 0x3b, 0x33, 0x9d, 0xb4, 0x98, 0x1e, 0xb5, 0xf8,
+ 0xeb, 0x12, 0xf4, 0xa8, 0x74, 0xd7, 0x4c, 0x4e, 0xb7, 0xe8, 0x0b, 0x12, 0xf4, 0x74, 0xf1, 0x07,
+ 0xc1, 0x0a, 0xd6, 0xe8, 0x53, 0xaa, 0xd1, 0x44, 0x6b, 0x6b, 0xff, 0x9d, 0x45, 0x4b, 0x58, 0xb7,
+ 0xd9, 0xb4, 0xe8, 0x03, 0x2b, 0xd5, 0x92, 0xb1, 0x10, 0xaf, 0xdd, 0xf7, 0x2c, 0xb4, 0x4b, 0xc6,
+ 0x35, 0x9c, 0x82, 0x03, 0x4b, 0x05, 0x93, 0x24, 0xc0, 0xeb, 0x78, 0xdb, 0x4a, 0xc7, 0x19, 0x42,
+ 0xae, 0xe6, 0x6d, 0x2b, 0x35, 0x73, 0x00, 0x44, 0x95, 0x81, 0xa5, 0xa6, 0xb9, 0xb3, 0xa0, 0xca,
+ 0xde, 0xb6, 0x52, 0xb6, 0x48, 0x02, 0xbf, 0x27, 0x67, 0xa7, 0x6f, 0x89, 0x04, 0xbe, 0x47, 0x8a,
+ 0xab, 0x3c, 0x5b, 0x9f, 0x69, 0x3d, 0xb0, 0xd4, 0x3a, 0xc7, 0x80, 0x2a, 0x7e, 0xdb, 0x4a, 0xf1,
+ 0x5c, 0x1b, 0x88, 0xee, 0x6f, 0x60, 0x8d, 0x3f, 0xc5, 0x1a, 0x4f, 0x54, 0x1a, 0xdc, 0xff, 0xf2,
+ 0xab, 0x7a, 0xe5, 0xe5, 0x57, 0xf5, 0xca, 0x1f, 0xcf, 0xea, 0x95, 0xbf, 0x9c, 0xd5, 0x2b, 0x7f,
+ 0x3d, 0xab, 0x57, 0xbe, 0x38, 0xab, 0x57, 0xfe, 0x76, 0x56, 0x9f, 0xf9, 0xf2, 0xac, 0x5e, 0x79,
+ 0x79, 0x56, 0x9f, 0xf9, 0xe5, 0x3f, 0xeb, 0x33, 0xfd, 0xab, 0xf8, 0x08, 0xfe, 0xff, 0x03, 0x00,
+ 0x00, 0xff, 0xff, 0x4f, 0x81, 0x1f, 0xa5, 0x79, 0x40, 0x00, 0x00,
+}
+
func (this *KnownTypes) Compare(that interface{}) int {
if that == nil {
if this == nil {
@@ -11905,153 +12056,3 @@ func sovTypes(x uint64) (n int) {
func sozTypes(x uint64) (n int) {
return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
-
-func init() { proto.RegisterFile("combos/marshaler/types.proto", fileDescriptor_types_84a5c6bb8f2642e0) }
-
-var fileDescriptor_types_84a5c6bb8f2642e0 = []byte{
- // 2299 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcf, 0x73, 0x1c, 0x47,
- 0x19, 0xd5, 0x7a, 0x57, 0xb6, 0xd4, 0x92, 0x6c, 0x69, 0x1c, 0xa7, 0x06, 0x91, 0x5a, 0x1b, 0x25,
- 0x76, 0x4c, 0x52, 0x91, 0xc8, 0x8c, 0x4a, 0x80, 0x21, 0x51, 0x32, 0x65, 0x7b, 0xb5, 0x1b, 0xc9,
- 0x5e, 0xaf, 0xb4, 0x2e, 0x08, 0x04, 0xd8, 0x8d, 0xc6, 0x8a, 0x8a, 0xd5, 0xce, 0xd6, 0xee, 0x2c,
- 0x29, 0xdd, 0xf8, 0x03, 0x38, 0x70, 0x83, 0x2a, 0x2e, 0x70, 0xe3, 0xca, 0x81, 0x2a, 0x8e, 0x1c,
- 0x73, 0xe4, 0x2f, 0x80, 0x44, 0x5c, 0xb8, 0x02, 0x17, 0x5f, 0xa8, 0xa2, 0xa6, 0xbb, 0x67, 0xa6,
- 0x7f, 0x7c, 0xdd, 0x3d, 0x3d, 0x25, 0xdd, 0x74, 0x93, 0x76, 0xbf, 0x7e, 0xf3, 0xe6, 0x9b, 0x37,
- 0x7a, 0xfd, 0xbe, 0xd1, 0xa0, 0xd7, 0x3e, 0x8d, 0x4e, 0xfa, 0xd1, 0x64, 0xe3, 0xa4, 0x37, 0x9e,
- 0x7c, 0xd6, 0x1b, 0x84, 0xe3, 0x8d, 0xf8, 0x74, 0x14, 0x4e, 0xd6, 0x47, 0xe3, 0x28, 0x8e, 0x9c,
- 0x59, 0xfc, 0xcb, 0xea, 0x3b, 0x47, 0xc7, 0xf1, 0x67, 0xd3, 0xfe, 0xfa, 0xa7, 0xd1, 0xc9, 0xc6,
- 0x51, 0x74, 0x14, 0x6d, 0xe0, 0x6f, 0xfb, 0xd3, 0x17, 0xf8, 0x37, 0xfc, 0x0b, 0xfe, 0x89, 0xac,
- 0x5a, 0xad, 0x1f, 0x45, 0xd1, 0xd1, 0x20, 0xcc, 0xab, 0x0e, 0xa7, 0xe3, 0x5e, 0x7c, 0x1c, 0x0d,
- 0xe9, 0xf7, 0xb7, 0xc5, 0xef, 0xe3, 0xe3, 0x93, 0x70, 0x12, 0xf7, 0x4e, 0x46, 0x2a, 0x80, 0xcf,
- 0xc7, 0xbd, 0xd1, 0x28, 0x1c, 0x53, 0x5a, 0x6b, 0xbf, 0xab, 0x21, 0xf4, 0xd1, 0x30, 0xfa, 0x7c,
- 0x78, 0x90, 0xd0, 0x73, 0xde, 0x46, 0xd5, 0xc3, 0xe9, 0xd8, 0xad, 0xdc, 0xa9, 0xdc, 0x5f, 0xf0,
- 0xbe, 0xb6, 0x4e, 0x16, 0xaf, 0xa7, 0x8b, 0xd7, 0x1f, 0xd2, 0xa3, 0x77, 0x92, 0x2a, 0xe7, 0x2d,
- 0x74, 0x25, 0x9e, 0xb8, 0x57, 0x70, 0xed, 0xaa, 0x54, 0x7b, 0x90, 0x32, 0xe9, 0x5c, 0x89, 0x27,
- 0xce, 0x3a, 0xaa, 0x1e, 0xf6, 0x07, 0x6e, 0x15, 0x17, 0xbf, 0x26, 0x03, 0x47, 0xd3, 0xfe, 0x20,
- 0x7c, 0xde, 0x1b, 0x4c, 0xc3, 0x4e, 0x52, 0xe8, 0xbc, 0x83, 0xaa, 0x2f, 0x06, 0xb1, 0x5b, 0xc3,
- 0xf5, 0x5f, 0x97, 0xea, 0x1f, 0x0f, 0xa2, 0x5e, 0x4c, 0xcb, 0x5f, 0x0c, 0xe2, 0xa4, 0xfc, 0x78,
- 0x6b, 0xd3, 0x9d, 0x55, 0x94, 0x37, 0x87, 0xf1, 0xd6, 0x26, 0x2d, 0x3f, 0xde, 0xda, 0x4c, 0xd8,
- 0x4c, 0xb7, 0x36, 0xdd, 0xab, 0x0a, 0x36, 0x5d, 0xb6, 0x7e, 0xba, 0xb5, 0x89, 0xe1, 0x7d, 0xcf,
- 0xbd, 0xa6, 0x86, 0xf7, 0xbd, 0x14, 0xde, 0xf7, 0x30, 0xbc, 0xef, 0xb9, 0x73, 0x1a, 0xf8, 0xac,
- 0x7e, 0x8a, 0xeb, 0x6b, 0xfd, 0x28, 0x1a, 0xb8, 0xf3, 0x8a, 0x56, 0x06, 0x51, 0x34, 0x20, 0xe5,
- 0xb8, 0x2e, 0xc1, 0x9f, 0xc4, 0x63, 0x17, 0x29, 0xf0, 0xf7, 0xe3, 0xf1, 0xf1, 0xf0, 0x88, 0xe2,
- 0x4f, 0xe2, 0xb1, 0xf3, 0x2e, 0x9a, 0xed, 0x9f, 0xc6, 0xe1, 0xc4, 0x5d, 0x50, 0x9c, 0x40, 0x90,
- 0x7c, 0x4b, 0x16, 0x90, 0xca, 0x07, 0xb5, 0x7f, 0xfd, 0xe1, 0x76, 0x65, 0xed, 0x57, 0x8b, 0x08,
- 0xb5, 0x93, 0x22, 0xa2, 0x8e, 0x1d, 0xb4, 0x32, 0x9c, 0x0e, 0x06, 0xbd, 0xfe, 0x20, 0xcc, 0xae,
- 0x2e, 0xd5, 0x8a, 0xee, 0xfa, 0xcb, 0x8b, 0x9c, 0x47, 0x68, 0x39, 0xfd, 0x30, 0xd5, 0x14, 0x15,
- 0x92, 0x46, 0x74, 0xd2, 0x12, 0xe7, 0x21, 0xba, 0x9e, 0x7d, 0x86, 0x15, 0x54, 0x48, 0x60, 0xc2,
- 0x1a, 0xe7, 0x43, 0xb4, 0x94, 0x7e, 0x82, 0x75, 0x55, 0x44, 0x75, 0xfc, 0x0a, 0x16, 0x02, 0x6b,
- 0xa7, 0x88, 0x12, 0xf9, 0x15, 0xec, 0xb9, 0x10, 0xfd, 0x15, 0x92, 0xa7, 0xb0, 0x46, 0x20, 0x52,
- 0x4c, 0xb3, 0xfc, 0x0a, 0x91, 0x48, 0x41, 0x21, 0x0b, 0x6b, 0x9c, 0xf7, 0xd1, 0x62, 0xfa, 0x49,
- 0x50, 0x4c, 0xdb, 0x5c, 0x3d, 0xcb, 0x82, 0xe8, 0xb9, 0x90, 0xdc, 0x85, 0x35, 0x6c, 0x3b, 0x82,
- 0xa2, 0x77, 0x00, 0xbf, 0xc2, 0x79, 0x1f, 0xcd, 0x67, 0x7f, 0x54, 0xdd, 0x45, 0x93, 0xd8, 0x83,
- 0xda, 0x17, 0x7f, 0xbf, 0x3d, 0xd3, 0xc9, 0x97, 0x38, 0xdf, 0x43, 0x73, 0xe9, 0x1f, 0x6d, 0x77,
- 0xc9, 0x20, 0x71, 0xba, 0x3a, 0x5b, 0xe0, 0xec, 0xa0, 0xa5, 0x61, 0x34, 0x4c, 0x08, 0x51, 0x7d,
- 0x5f, 0x37, 0xeb, 0x9b, 0x82, 0xf0, 0x0b, 0x9d, 0x47, 0x68, 0x91, 0x7e, 0x40, 0x34, 0x7e, 0xc3,
- 0xa8, 0x71, 0x8a, 0xc3, 0x2d, 0x63, 0x60, 0x88, 0x46, 0x97, 0x8d, 0x3a, 0x17, 0x60, 0x88, 0x4c,
- 0xf3, 0xf3, 0xa2, 0x5a, 0x5f, 0x31, 0x6b, 0x5d, 0x38, 0x2f, 0x2a, 0x78, 0x8e, 0x90, 0xef, 0xb9,
- 0x8e, 0x51, 0xef, 0x32, 0x21, 0xdf, 0x13, 0x08, 0xf9, 0x9e, 0x7b, 0xd3, 0xac, 0x79, 0x80, 0x90,
- 0xef, 0x39, 0x01, 0x5a, 0xa0, 0x1f, 0x60, 0xdd, 0xbf, 0x62, 0xd2, 0x3d, 0x45, 0x61, 0x17, 0x31,
- 0x6c, 0xa8, 0xf6, 0x6f, 0x99, 0xb5, 0x2f, 0xb0, 0xa1, 0x37, 0x40, 0xde, 0x1e, 0xa2, 0xff, 0x57,
- 0x8d, 0xfa, 0x17, 0xda, 0x13, 0x30, 0x76, 0xf0, 0x9f, 0x45, 0x34, 0xb7, 0x1f, 0x1f, 0x12, 0x33,
- 0x78, 0x52, 0xca, 0x0c, 0x82, 0xda, 0xaf, 0xff, 0x71, 0xbb, 0x02, 0x59, 0xc2, 0x47, 0x25, 0x2c,
- 0x21, 0xa8, 0xfd, 0x36, 0x41, 0x93, 0x8d, 0xa1, 0x55, 0xc6, 0x18, 0x82, 0xda, 0xef, 0x13, 0x34,
- 0xd1, 0x1e, 0x1a, 0xf6, 0xf6, 0x40, 0x91, 0x04, 0x93, 0x68, 0xd8, 0x9b, 0x84, 0x08, 0x44, 0x34,
- 0xdf, 0x2a, 0x63, 0x15, 0xe2, 0xd9, 0xd1, 0xfb, 0xa7, 0x61, 0x6f, 0x18, 0x00, 0x29, 0xdf, 0x13,
- 0x49, 0x15, 0xb3, 0x0d, 0x88, 0x14, 0xb6, 0x20, 0x4b, 0xf3, 0xa0, 0x38, 0xbc, 0x85, 0xb4, 0xca,
- 0x58, 0x88, 0xc8, 0x88, 0xde, 0x47, 0x0d, 0x7b, 0x23, 0x11, 0xdb, 0x44, 0xec, 0x24, 0xb0, 0xb3,
- 0x93, 0xb9, 0xe4, 0x66, 0xc4, 0xb7, 0x0c, 0x63, 0x29, 0xdb, 0x36, 0x96, 0x82, 0x11, 0xf0, 0x6d,
- 0x92, 0xdb, 0xca, 0x6e, 0x19, 0x5b, 0xc1, 0x40, 0xf4, 0x94, 0x38, 0x6b, 0x69, 0xda, 0x5b, 0x4b,
- 0x8e, 0xc5, 0xdb, 0x4b, 0xd3, 0xde, 0x5e, 0x64, 0x28, 0x22, 0xec, 0xdd, 0x32, 0x16, 0x23, 0x9f,
- 0x23, 0xbd, 0x4d, 0x9a, 0xf6, 0x36, 0x03, 0x12, 0xf3, 0x3d, 0x81, 0x58, 0x41, 0xab, 0x81, 0x89,
- 0xf9, 0x9e, 0xf3, 0xd8, 0xd6, 0x6e, 0x72, 0x24, 0xce, 0x72, 0x76, 0xcb, 0x58, 0x8e, 0xcc, 0x8a,
- 0xde, 0x2e, 0x4d, 0x7b, 0xdb, 0x91, 0xdb, 0x85, 0xbf, 0x5c, 0xfb, 0xcd, 0x22, 0x5a, 0xea, 0x84,
- 0x23, 0x26, 0x86, 0xb4, 0x90, 0x23, 0xd9, 0xc7, 0xc4, 0xad, 0xdc, 0xa9, 0x1a, 0x72, 0x08, 0xb0,
- 0xca, 0x69, 0xe4, 0x2e, 0x96, 0xde, 0x31, 0x49, 0xa4, 0xad, 0xea, 0x93, 0x88, 0xbc, 0xc6, 0xf9,
- 0x00, 0xa1, 0x38, 0x27, 0x53, 0x35, 0x91, 0xa1, 0x2e, 0xcb, 0xac, 0x71, 0xde, 0x43, 0xf3, 0x87,
- 0x19, 0x85, 0x9a, 0x81, 0x42, 0xba, 0xcf, 0xcc, 0x56, 0x00, 0x59, 0x68, 0x16, 0x63, 0xd8, 0x65,
- 0x21, 0x69, 0xc3, 0x79, 0xd5, 0x0c, 0x02, 0x6f, 0x38, 0xa5, 0x54, 0x75, 0x0d, 0x23, 0xd9, 0xa4,
- 0x2a, 0x71, 0xcf, 0x3a, 0x67, 0x44, 0x00, 0xf7, 0xac, 0x52, 0x38, 0x9b, 0x57, 0xe0, 0xa8, 0xc3,
- 0x99, 0xb8, 0xed, 0x45, 0x46, 0x04, 0x70, 0xdb, 0x2b, 0x67, 0xbc, 0x05, 0x45, 0x7b, 0x75, 0x19,
- 0x4f, 0xda, 0x3c, 0x2f, 0x9a, 0x41, 0xe0, 0xcd, 0xb3, 0x94, 0x16, 0x97, 0xd4, 0xe7, 0xa5, 0x48,
- 0x8b, 0xe2, 0xfe, 0xfb, 0xba, 0x11, 0x01, 0xdc, 0x7f, 0xcb, 0xa1, 0xf3, 0x86, 0xe6, 0xa4, 0x54,
- 0xa1, 0x53, 0xda, 0xc5, 0x2f, 0x9b, 0x41, 0xe0, 0x5d, 0xbc, 0x18, 0x5f, 0x57, 0x14, 0x37, 0xb4,
- 0x2a, 0xbe, 0x0a, 0x29, 0xc0, 0x31, 0x2d, 0x87, 0x52, 0x80, 0x1c, 0x81, 0x6f, 0x2a, 0x4e, 0x47,
- 0x17, 0x81, 0xa5, 0x2c, 0xf1, 0x8a, 0x19, 0x04, 0xce, 0x12, 0x52, 0x98, 0xbe, 0xa5, 0xb8, 0xd6,
- 0xea, 0x30, 0x2d, 0xc7, 0x91, 0x6a, 0xf9, 0x38, 0xf2, 0xbf, 0x45, 0xb4, 0xd0, 0x09, 0x47, 0x59,
- 0x22, 0x69, 0x97, 0xf3, 0x05, 0x1a, 0x49, 0x20, 0x77, 0xd8, 0x2b, 0xe3, 0x0e, 0x34, 0x94, 0x00,
- 0x1e, 0xf1, 0xd0, 0xd2, 0x23, 0xf2, 0xcd, 0x1f, 0xeb, 0x13, 0x1f, 0x5a, 0xf9, 0x44, 0xbe, 0xfd,
- 0x63, 0xbc, 0xa2, 0x55, 0xc6, 0x2b, 0x14, 0xf1, 0x68, 0xb7, 0x8c, 0x63, 0x28, 0xf7, 0x92, 0x0d,
- 0x7b, 0xd7, 0x80, 0xc3, 0x56, 0xd3, 0xde, 0x3b, 0x54, 0x9b, 0xd2, 0x86, 0xbd, 0x7f, 0xc0, 0xb9,
- 0xad, 0x69, 0xef, 0x22, 0xaa, 0xdd, 0x6d, 0xab, 0x8c, 0x93, 0x28, 0x22, 0xe0, 0x6e, 0x19, 0x3f,
- 0x51, 0xee, 0x94, 0x1b, 0xf6, 0x9e, 0x02, 0x07, 0xca, 0xa6, 0xbd, 0xb3, 0xa8, 0xb6, 0xdc, 0xad,
- 0x32, 0xee, 0xa2, 0xc8, 0xa6, 0xbb, 0x65, 0x3c, 0x46, 0xb9, 0x7d, 0x7f, 0x68, 0xeb, 0x33, 0x60,
- 0xd2, 0x7d, 0x6c, 0xeb, 0x36, 0x8a, 0x10, 0xd0, 0x2a, 0xe3, 0x38, 0x8a, 0xc4, 0xbc, 0x5b, 0xc6,
- 0x77, 0x94, 0x81, 0xa2, 0x61, 0xef, 0x3d, 0x70, 0xfe, 0x6e, 0xda, 0x3b, 0x90, 0x2a, 0x99, 0xfc,
- 0xa9, 0x8e, 0x96, 0xf6, 0x7a, 0x6c, 0x32, 0xf9, 0x21, 0x3c, 0x13, 0x4b, 0x8e, 0xf0, 0xf6, 0x3a,
- 0x79, 0x1a, 0xc8, 0x2d, 0x58, 0x7f, 0x22, 0x56, 0x3f, 0x1a, 0xc6, 0xe3, 0x53, 0x68, 0x3c, 0xd6,
- 0x60, 0xe7, 0x06, 0xc4, 0x82, 0x5e, 0x07, 0x21, 0x79, 0x28, 0x79, 0x1e, 0xfd, 0x1c, 0x98, 0xb3,
- 0x11, 0x2b, 0x7a, 0x4b, 0x4b, 0x31, 0x2d, 0x26, 0x0c, 0xa1, 0x67, 0x31, 0xf9, 0x50, 0x82, 0xb8,
- 0xd2, 0x1a, 0x88, 0xc7, 0xe1, 0x48, 0x03, 0xef, 0xb6, 0xc2, 0x99, 0xee, 0xeb, 0xb9, 0xe1, 0x52,
- 0xc2, 0x4c, 0xf4, 0xa7, 0x7d, 0xd8, 0x9f, 0xde, 0x84, 0x01, 0xd9, 0x4a, 0x96, 0xa1, 0x60, 0x53,
- 0x7b, 0xb0, 0x4d, 0xbd, 0xa9, 0x65, 0x89, 0x2b, 0x09, 0x49, 0xc1, 0xac, 0xda, 0xa0, 0x59, 0xdd,
- 0xd3, 0x51, 0xcc, 0xc1, 0xc0, 0xcc, 0xb3, 0x07, 0x7b, 0x96, 0x9e, 0x20, 0xae, 0x14, 0x08, 0x92,
- 0x3f, 0xea, 0x6d, 0xd0, 0xb9, 0xb4, 0x04, 0x73, 0x30, 0x30, 0x0a, 0xb5, 0x15, 0x06, 0xa6, 0xbf,
- 0xd0, 0x5d, 0x86, 0xa2, 0x68, 0x63, 0xfb, 0xb0, 0x8d, 0x69, 0x2f, 0x74, 0x57, 0x62, 0x29, 0xb8,
- 0xd9, 0x1e, 0xec, 0x66, 0xc6, 0x3e, 0xfa, 0x9e, 0xdc, 0x47, 0xdf, 0xe3, 0xfb, 0x98, 0x79, 0x9a,
- 0xa9, 0x8f, 0x14, 0x0c, 0x0c, 0x4e, 0x6d, 0x85, 0xb5, 0x99, 0xfb, 0x98, 0x52, 0x14, 0x0d, 0x6e,
- 0x1f, 0x36, 0x38, 0x63, 0x1f, 0x79, 0x96, 0x82, 0xcf, 0xb5, 0x40, 0x9f, 0xbb, 0xa7, 0x25, 0x99,
- 0x14, 0x12, 0x8a, 0xbc, 0xdb, 0xed, 0x41, 0x6e, 0x77, 0x57, 0x47, 0x2f, 0x43, 0x82, 0x62, 0x56,
- 0x5b, 0x61, 0x7a, 0xfa, 0x0e, 0x92, 0x52, 0xa1, 0x83, 0xd4, 0xac, 0xf6, 0x61, 0xeb, 0xd3, 0x76,
- 0x90, 0xc1, 0x83, 0xd3, 0xd7, 0x1e, 0xec, 0x80, 0x7a, 0x25, 0xe2, 0x4a, 0x41, 0x89, 0xc4, 0x07,
- 0xdb, 0xa0, 0x0f, 0x6a, 0x95, 0x98, 0x83, 0x41, 0xa1, 0x6c, 0xf5, 0x67, 0xe8, 0x55, 0xd8, 0xce,
- 0x9c, 0x65, 0x54, 0xfd, 0x79, 0x78, 0x8a, 0x1f, 0x0e, 0xcd, 0x76, 0x92, 0x1f, 0x9d, 0x6f, 0xa1,
- 0xd9, 0x5f, 0x24, 0xde, 0x5a, 0xe0, 0xbf, 0x47, 0x48, 0xe1, 0x83, 0x2b, 0xdf, 0xa9, 0xac, 0xfe,
- 0x00, 0x5d, 0xbf, 0x20, 0xe4, 0x9f, 0xa0, 0x5b, 0xa0, 0xcf, 0x01, 0x07, 0xd8, 0xe0, 0x0f, 0xa0,
- 0x99, 0x12, 0x32, 0xf8, 0xcf, 0xd1, 0xd2, 0x85, 0xe0, 0xfe, 0x14, 0xdd, 0x04, 0x3c, 0x10, 0x40,
- 0xf7, 0x78, 0x74, 0xfd, 0x50, 0x90, 0x6b, 0x8c, 0x23, 0x7b, 0xe2, 0x39, 0xe2, 0x7f, 0x82, 0x1c,
- 0xd9, 0x1e, 0x01, 0xfc, 0x77, 0x79, 0x7c, 0xed, 0x14, 0x91, 0x81, 0xff, 0x31, 0x5a, 0x91, 0xfc,
- 0xf2, 0xfc, 0xd0, 0x19, 0xf2, 0xb9, 0x8f, 0x94, 0x81, 0x67, 0x86, 0x7d, 0x20, 0xf9, 0x8b, 0x40,
- 0x67, 0xa4, 0xd3, 0xd5, 0xe2, 0x1b, 0x2f, 0x6d, 0x17, 0x3e, 0x40, 0x2e, 0x9d, 0x8b, 0xc1, 0xe7,
- 0xbb, 0x4f, 0xdd, 0xa7, 0x64, 0x7f, 0xd2, 0x81, 0xa2, 0xaa, 0xfb, 0xe7, 0x8e, 0x2e, 0x74, 0x5f,
- 0x8d, 0x5f, 0xa8, 0x3b, 0xc0, 0x01, 0xf8, 0xee, 0x9f, 0x3f, 0xfe, 0x8f, 0xd0, 0x8a, 0xe4, 0xd3,
- 0x65, 0xfe, 0x1c, 0xe7, 0x03, 0x54, 0x06, 0xfc, 0x63, 0xb4, 0x2c, 0x3a, 0xf7, 0xb9, 0x61, 0x33,
- 0x9d, 0x67, 0x3c, 0xb7, 0x4c, 0x67, 0xd8, 0xa9, 0x2b, 0xd8, 0xf9, 0x8b, 0xc1, 0x67, 0x74, 0x9f,
- 0x3b, 0x72, 0x19, 0x65, 0xb2, 0xff, 0xf5, 0x07, 0xe9, 0xfe, 0x02, 0xd0, 0xd7, 0xfe, 0x5d, 0x47,
- 0x0b, 0x7b, 0xbd, 0x7c, 0x66, 0xfb, 0x89, 0x3a, 0x31, 0x7f, 0x33, 0xdf, 0x8b, 0xa4, 0xe5, 0x8a,
- 0xbc, 0xac, 0xfe, 0xa7, 0x92, 0xa6, 0x9c, 0x9a, 0xbf, 0x01, 0xc0, 0x0a, 0x70, 0xe0, 0x43, 0xf7,
- 0x8f, 0x95, 0xb9, 0xf9, 0xbe, 0x86, 0xa8, 0x90, 0x76, 0x15, 0xff, 0xae, 0xf2, 0x58, 0xca, 0xce,
- 0x77, 0x00, 0x4c, 0x1e, 0x0b, 0x7a, 0xae, 0x7f, 0xa0, 0x48, 0xcf, 0xf7, 0x74, 0x0c, 0xd9, 0xac,
- 0x0b, 0x4e, 0x78, 0xbb, 0x70, 0x82, 0xbe, 0x0b, 0x81, 0xca, 0xf9, 0x59, 0x39, 0xea, 0x7d, 0x06,
- 0x67, 0xe8, 0xbb, 0x1a, 0xae, 0x6c, 0xe8, 0x85, 0x86, 0xbe, 0x1d, 0x30, 0x47, 0xbf, 0xa1, 0x26,
- 0xca, 0x00, 0xaa, 0xa6, 0xbf, 0xcf, 0xe0, 0x24, 0xad, 0xa3, 0xc9, 0x86, 0x4a, 0x68, 0x0e, 0xdc,
- 0x01, 0xd3, 0xb4, 0x86, 0x26, 0x03, 0xa8, 0x1a, 0x08, 0x1f, 0x28, 0xf2, 0xb4, 0xee, 0xd2, 0x77,
- 0x25, 0xa2, 0x62, 0xa6, 0xee, 0xc2, 0x99, 0x5a, 0x73, 0xe9, 0xbb, 0x20, 0x57, 0x21, 0x55, 0x3f,
- 0x83, 0x53, 0xb5, 0xa1, 0xa7, 0x59, 0xc0, 0x84, 0xa6, 0xc5, 0x1d, 0x30, 0x59, 0xeb, 0x7b, 0x9a,
- 0x02, 0xaa, 0xc6, 0xc6, 0x07, 0x8a, 0x6c, 0x6d, 0xea, 0x29, 0x4f, 0x54, 0xcc, 0xd7, 0x5d, 0x38,
- 0x5f, 0x1b, 0x7a, 0x2a, 0x73, 0x15, 0x12, 0xf6, 0x13, 0x30, 0x61, 0xbf, 0xa1, 0xa1, 0xca, 0xa4,
- 0x62, 0x60, 0xa6, 0xfc, 0x14, 0x4a, 0xd9, 0xaf, 0xab, 0x49, 0xe6, 0x68, 0x8a, 0xe1, 0xf2, 0x81,
- 0x22, 0x67, 0xeb, 0xba, 0xc9, 0xa5, 0x62, 0x70, 0xcc, 0xdc, 0x85, 0xb3, 0xb6, 0xa6, 0x9b, 0x2c,
- 0xa6, 0x72, 0xde, 0xfc, 0x0c, 0x4e, 0xdb, 0x3a, 0x85, 0xb2, 0xf1, 0x18, 0x9a, 0x3c, 0x77, 0xc0,
- 0xc4, 0xad, 0x51, 0x28, 0x03, 0xa8, 0x18, 0x41, 0x5f, 0x66, 0xee, 0xcb, 0xcc, 0x7d, 0x99, 0xb9,
- 0x2f, 0x33, 0xf7, 0x65, 0xe6, 0xbe, 0xcc, 0xdc, 0x97, 0x99, 0xfb, 0x32, 0x73, 0xc3, 0x99, 0xfb,
- 0xcf, 0xb3, 0xe8, 0xc6, 0xd3, 0x61, 0x18, 0xbd, 0x60, 0x9e, 0x54, 0x3f, 0x60, 0x83, 0xb1, 0xf1,
- 0xad, 0x8d, 0x1d, 0xee, 0x09, 0xf2, 0xb7, 0x99, 0xb4, 0x6a, 0x32, 0xce, 0x1d, 0xf6, 0xe1, 0xee,
- 0xf7, 0xd1, 0xfc, 0x38, 0x1c, 0x15, 0x7f, 0x21, 0x23, 0x39, 0x6c, 0xb6, 0xc0, 0xf9, 0x2e, 0x9a,
- 0x1b, 0x87, 0xa3, 0xa2, 0xaf, 0x60, 0x24, 0x07, 0x4e, 0xcb, 0xe9, 0xd2, 0xa2, 0x2f, 0x5d, 0xd0,
- 0xa5, 0x24, 0xaa, 0x10, 0xce, 0xc5, 0x5f, 0xb3, 0xa0, 0x9c, 0x69, 0xd0, 0xc9, 0x0e, 0x5c, 0xe8,
- 0xc5, 0x8a, 0xfc, 0xc0, 0xbe, 0xc7, 0x1c, 0xb8, 0xd8, 0xab, 0x14, 0xcc, 0x81, 0x7d, 0xcf, 0xd9,
- 0x42, 0xd7, 0xc6, 0xe1, 0xa8, 0xd8, 0xcb, 0x13, 0x3b, 0x33, 0x9d, 0xb4, 0x98, 0x1e, 0xb5, 0xf8,
- 0xeb, 0x12, 0xf4, 0xa8, 0x74, 0xd7, 0x4c, 0x4e, 0xb7, 0xe8, 0x0b, 0x12, 0xf4, 0x74, 0xf1, 0x07,
- 0xc1, 0x0a, 0xd6, 0xe8, 0x53, 0xaa, 0xd1, 0x44, 0x6b, 0x6b, 0xff, 0x9d, 0x45, 0x4b, 0x58, 0xb7,
- 0xd9, 0xb4, 0xe8, 0x03, 0x2b, 0xd5, 0x92, 0xb1, 0x10, 0xaf, 0xdd, 0xf7, 0x2c, 0xb4, 0x4b, 0xc6,
- 0x35, 0x9c, 0x82, 0x03, 0x4b, 0x05, 0x93, 0x24, 0xc0, 0xeb, 0x78, 0xdb, 0x4a, 0xc7, 0x19, 0x42,
- 0xae, 0xe6, 0x6d, 0x2b, 0x35, 0x73, 0x00, 0x44, 0x95, 0x81, 0xa5, 0xa6, 0xb9, 0xb3, 0xa0, 0xca,
- 0xde, 0xb6, 0x52, 0xb6, 0x48, 0x02, 0xbf, 0x27, 0x67, 0xa7, 0x6f, 0x89, 0x04, 0xbe, 0x47, 0x8a,
- 0xab, 0x3c, 0x5b, 0x9f, 0x69, 0x3d, 0xb0, 0xd4, 0x3a, 0xc7, 0x80, 0x2a, 0x7e, 0xdb, 0x4a, 0xf1,
- 0x5c, 0x1b, 0x88, 0xee, 0x6f, 0x60, 0x8d, 0x3f, 0xc5, 0x1a, 0x4f, 0x54, 0x1a, 0xdc, 0xff, 0xf2,
- 0xab, 0x7a, 0xe5, 0xe5, 0x57, 0xf5, 0xca, 0x1f, 0xcf, 0xea, 0x95, 0xbf, 0x9c, 0xd5, 0x2b, 0x7f,
- 0x3d, 0xab, 0x57, 0xbe, 0x38, 0xab, 0x57, 0xfe, 0x76, 0x56, 0x9f, 0xf9, 0xf2, 0xac, 0x5e, 0x79,
- 0x79, 0x56, 0x9f, 0xf9, 0xe5, 0x3f, 0xeb, 0x33, 0xfd, 0xab, 0xf8, 0x08, 0xfe, 0xff, 0x03, 0x00,
- 0x00, 0xff, 0xff, 0x4f, 0x81, 0x1f, 0xa5, 0x79, 0x40, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/neither/types.pb.go b/vendor/github.com/gogo/protobuf/test/types/combos/neither/types.pb.go
index bf8e3aa033..452ac9fe38 100644
--- a/vendor/github.com/gogo/protobuf/test/types/combos/neither/types.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/types/combos/neither/types.pb.go
@@ -3,16 +3,16 @@
package types
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import types "github.com/gogo/protobuf/types"
-
-import time "time"
-import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
-
-import bytes "bytes"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
+ types "github.com/gogo/protobuf/types"
+ math "math"
+ time "time"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -47,7 +47,7 @@ func (m *KnownTypes) Reset() { *m = KnownTypes{} }
func (m *KnownTypes) String() string { return proto.CompactTextString(m) }
func (*KnownTypes) ProtoMessage() {}
func (*KnownTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_a6ccc2435d23b615, []int{0}
+ return fileDescriptor_8a0195d9a3743479, []int{0}
}
func (m *KnownTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KnownTypes.Unmarshal(m, b)
@@ -55,8 +55,8 @@ func (m *KnownTypes) XXX_Unmarshal(b []byte) error {
func (m *KnownTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_KnownTypes.Marshal(b, m, deterministic)
}
-func (dst *KnownTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_KnownTypes.Merge(dst, src)
+func (m *KnownTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KnownTypes.Merge(m, src)
}
func (m *KnownTypes) XXX_Size() int {
return xxx_messageInfo_KnownTypes.Size(m)
@@ -176,7 +176,7 @@ func (m *ProtoTypes) Reset() { *m = ProtoTypes{} }
func (m *ProtoTypes) String() string { return proto.CompactTextString(m) }
func (*ProtoTypes) ProtoMessage() {}
func (*ProtoTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_a6ccc2435d23b615, []int{1}
+ return fileDescriptor_8a0195d9a3743479, []int{1}
}
func (m *ProtoTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProtoTypes.Unmarshal(m, b)
@@ -184,8 +184,8 @@ func (m *ProtoTypes) XXX_Unmarshal(b []byte) error {
func (m *ProtoTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ProtoTypes.Marshal(b, m, deterministic)
}
-func (dst *ProtoTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ProtoTypes.Merge(dst, src)
+func (m *ProtoTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ProtoTypes.Merge(m, src)
}
func (m *ProtoTypes) XXX_Size() int {
return xxx_messageInfo_ProtoTypes.Size(m)
@@ -382,7 +382,7 @@ func (m *StdTypes) Reset() { *m = StdTypes{} }
func (m *StdTypes) String() string { return proto.CompactTextString(m) }
func (*StdTypes) ProtoMessage() {}
func (*StdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_a6ccc2435d23b615, []int{2}
+ return fileDescriptor_8a0195d9a3743479, []int{2}
}
func (m *StdTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StdTypes.Unmarshal(m, b)
@@ -390,8 +390,8 @@ func (m *StdTypes) XXX_Unmarshal(b []byte) error {
func (m *StdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_StdTypes.Marshal(b, m, deterministic)
}
-func (dst *StdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_StdTypes.Merge(dst, src)
+func (m *StdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StdTypes.Merge(m, src)
}
func (m *StdTypes) XXX_Size() int {
return xxx_messageInfo_StdTypes.Size(m)
@@ -588,7 +588,7 @@ func (m *RepProtoTypes) Reset() { *m = RepProtoTypes{} }
func (m *RepProtoTypes) String() string { return proto.CompactTextString(m) }
func (*RepProtoTypes) ProtoMessage() {}
func (*RepProtoTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_a6ccc2435d23b615, []int{3}
+ return fileDescriptor_8a0195d9a3743479, []int{3}
}
func (m *RepProtoTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepProtoTypes.Unmarshal(m, b)
@@ -596,8 +596,8 @@ func (m *RepProtoTypes) XXX_Unmarshal(b []byte) error {
func (m *RepProtoTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepProtoTypes.Marshal(b, m, deterministic)
}
-func (dst *RepProtoTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RepProtoTypes.Merge(dst, src)
+func (m *RepProtoTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RepProtoTypes.Merge(m, src)
}
func (m *RepProtoTypes) XXX_Size() int {
return xxx_messageInfo_RepProtoTypes.Size(m)
@@ -794,7 +794,7 @@ func (m *RepStdTypes) Reset() { *m = RepStdTypes{} }
func (m *RepStdTypes) String() string { return proto.CompactTextString(m) }
func (*RepStdTypes) ProtoMessage() {}
func (*RepStdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_a6ccc2435d23b615, []int{4}
+ return fileDescriptor_8a0195d9a3743479, []int{4}
}
func (m *RepStdTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepStdTypes.Unmarshal(m, b)
@@ -802,8 +802,8 @@ func (m *RepStdTypes) XXX_Unmarshal(b []byte) error {
func (m *RepStdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepStdTypes.Marshal(b, m, deterministic)
}
-func (dst *RepStdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RepStdTypes.Merge(dst, src)
+func (m *RepStdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RepStdTypes.Merge(m, src)
}
func (m *RepStdTypes) XXX_Size() int {
return xxx_messageInfo_RepStdTypes.Size(m)
@@ -1000,7 +1000,7 @@ func (m *MapProtoTypes) Reset() { *m = MapProtoTypes{} }
func (m *MapProtoTypes) String() string { return proto.CompactTextString(m) }
func (*MapProtoTypes) ProtoMessage() {}
func (*MapProtoTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_a6ccc2435d23b615, []int{5}
+ return fileDescriptor_8a0195d9a3743479, []int{5}
}
func (m *MapProtoTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MapProtoTypes.Unmarshal(m, b)
@@ -1008,8 +1008,8 @@ func (m *MapProtoTypes) XXX_Unmarshal(b []byte) error {
func (m *MapProtoTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MapProtoTypes.Marshal(b, m, deterministic)
}
-func (dst *MapProtoTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MapProtoTypes.Merge(dst, src)
+func (m *MapProtoTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MapProtoTypes.Merge(m, src)
}
func (m *MapProtoTypes) XXX_Size() int {
return xxx_messageInfo_MapProtoTypes.Size(m)
@@ -1206,7 +1206,7 @@ func (m *MapStdTypes) Reset() { *m = MapStdTypes{} }
func (m *MapStdTypes) String() string { return proto.CompactTextString(m) }
func (*MapStdTypes) ProtoMessage() {}
func (*MapStdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_a6ccc2435d23b615, []int{6}
+ return fileDescriptor_8a0195d9a3743479, []int{6}
}
func (m *MapStdTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MapStdTypes.Unmarshal(m, b)
@@ -1214,8 +1214,8 @@ func (m *MapStdTypes) XXX_Unmarshal(b []byte) error {
func (m *MapStdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MapStdTypes.Marshal(b, m, deterministic)
}
-func (dst *MapStdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MapStdTypes.Merge(dst, src)
+func (m *MapStdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MapStdTypes.Merge(m, src)
}
func (m *MapStdTypes) XXX_Size() int {
return xxx_messageInfo_MapStdTypes.Size(m)
@@ -1403,7 +1403,7 @@ func (m *OneofProtoTypes) Reset() { *m = OneofProtoTypes{} }
func (m *OneofProtoTypes) String() string { return proto.CompactTextString(m) }
func (*OneofProtoTypes) ProtoMessage() {}
func (*OneofProtoTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_a6ccc2435d23b615, []int{7}
+ return fileDescriptor_8a0195d9a3743479, []int{7}
}
func (m *OneofProtoTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OneofProtoTypes.Unmarshal(m, b)
@@ -1411,8 +1411,8 @@ func (m *OneofProtoTypes) XXX_Unmarshal(b []byte) error {
func (m *OneofProtoTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OneofProtoTypes.Marshal(b, m, deterministic)
}
-func (dst *OneofProtoTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OneofProtoTypes.Merge(dst, src)
+func (m *OneofProtoTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OneofProtoTypes.Merge(m, src)
}
func (m *OneofProtoTypes) XXX_Size() int {
return xxx_messageInfo_OneofProtoTypes.Size(m)
@@ -1828,7 +1828,7 @@ func (m *OneofStdTypes) Reset() { *m = OneofStdTypes{} }
func (m *OneofStdTypes) String() string { return proto.CompactTextString(m) }
func (*OneofStdTypes) ProtoMessage() {}
func (*OneofStdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_a6ccc2435d23b615, []int{8}
+ return fileDescriptor_8a0195d9a3743479, []int{8}
}
func (m *OneofStdTypes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OneofStdTypes.Unmarshal(m, b)
@@ -1836,8 +1836,8 @@ func (m *OneofStdTypes) XXX_Unmarshal(b []byte) error {
func (m *OneofStdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OneofStdTypes.Marshal(b, m, deterministic)
}
-func (dst *OneofStdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OneofStdTypes.Merge(dst, src)
+func (m *OneofStdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OneofStdTypes.Merge(m, src)
}
func (m *OneofStdTypes) XXX_Size() int {
return xxx_messageInfo_OneofStdTypes.Size(m)
@@ -2395,6 +2395,157 @@ func init() {
proto.RegisterType((*OneofProtoTypes)(nil), "types.OneofProtoTypes")
proto.RegisterType((*OneofStdTypes)(nil), "types.OneofStdTypes")
}
+
+func init() { proto.RegisterFile("combos/neither/types.proto", fileDescriptor_8a0195d9a3743479) }
+
+var fileDescriptor_8a0195d9a3743479 = []byte{
+ // 2297 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcf, 0x73, 0x1c, 0x47,
+ 0x19, 0xd5, 0x7a, 0x57, 0xb6, 0xd4, 0x92, 0x6c, 0x69, 0x1c, 0xa7, 0x06, 0x41, 0xad, 0x8d, 0x12,
+ 0x3b, 0x26, 0xa9, 0x48, 0x64, 0x46, 0x25, 0xc0, 0x90, 0x28, 0x99, 0xb2, 0xbd, 0xda, 0x8d, 0x64,
+ 0xaf, 0x57, 0x5a, 0x17, 0x04, 0x02, 0xec, 0x46, 0x63, 0x45, 0xc5, 0x7a, 0x67, 0x6b, 0x77, 0x96,
+ 0x94, 0x6f, 0xfc, 0x01, 0x1c, 0xb8, 0x41, 0x15, 0x17, 0xb8, 0x71, 0xe5, 0x40, 0x15, 0x47, 0x8e,
+ 0x39, 0xf2, 0x17, 0x40, 0x22, 0x2e, 0x5c, 0x81, 0x8b, 0x2f, 0x54, 0xa5, 0xa6, 0xbb, 0x67, 0xa6,
+ 0x7f, 0x7c, 0xdd, 0x3d, 0x3d, 0x25, 0xdd, 0xf6, 0x26, 0xed, 0x7e, 0xfd, 0xe6, 0xcd, 0x37, 0x6f,
+ 0xf4, 0xfa, 0x7d, 0xa3, 0x41, 0xeb, 0x9f, 0x44, 0xcf, 0xfb, 0xd1, 0x64, 0x6b, 0x18, 0x9e, 0xc6,
+ 0x9f, 0x86, 0xe3, 0xad, 0xf8, 0xc5, 0x28, 0x9c, 0x6c, 0x8e, 0xc6, 0x51, 0x1c, 0x39, 0xf3, 0xf8,
+ 0x97, 0xf5, 0xb7, 0x4f, 0x4e, 0xe3, 0x4f, 0xa7, 0xfd, 0xcd, 0x4f, 0xa2, 0xe7, 0x5b, 0x27, 0xd1,
+ 0x49, 0xb4, 0x85, 0xbf, 0xed, 0x4f, 0x9f, 0xe1, 0xdf, 0xf0, 0x2f, 0xf8, 0x27, 0xb2, 0x6a, 0xbd,
+ 0x7e, 0x12, 0x45, 0x27, 0x83, 0x30, 0xaf, 0x3a, 0x9e, 0x8e, 0x7b, 0xf1, 0x69, 0x34, 0xa4, 0xdf,
+ 0xdf, 0x14, 0xbf, 0x8f, 0x4f, 0x9f, 0x87, 0x93, 0xb8, 0xf7, 0x7c, 0xa4, 0x02, 0xf8, 0x6c, 0xdc,
+ 0x1b, 0x8d, 0xc2, 0x31, 0xa5, 0xb5, 0xf1, 0xfb, 0x1a, 0x42, 0x1f, 0x0e, 0xa3, 0xcf, 0x86, 0x47,
+ 0x09, 0x3d, 0xe7, 0x2d, 0x54, 0x3d, 0x9e, 0x8e, 0xdd, 0xca, 0xad, 0xca, 0xdd, 0x25, 0xef, 0x6b,
+ 0x9b, 0x64, 0xf1, 0x66, 0xba, 0x78, 0xf3, 0x3e, 0x3d, 0x7a, 0x27, 0xa9, 0x72, 0xde, 0x44, 0x97,
+ 0xe2, 0x89, 0x7b, 0x09, 0xd7, 0xae, 0x4b, 0xb5, 0x47, 0x29, 0x93, 0xce, 0xa5, 0x78, 0xe2, 0x6c,
+ 0xa2, 0xea, 0x71, 0x7f, 0xe0, 0x56, 0x71, 0xf1, 0x37, 0x64, 0xe0, 0x68, 0xda, 0x1f, 0x84, 0x4f,
+ 0x7b, 0x83, 0x69, 0xd8, 0x49, 0x0a, 0x9d, 0xb7, 0x51, 0xf5, 0xd9, 0x20, 0x76, 0x6b, 0xb8, 0xfe,
+ 0xeb, 0x52, 0xfd, 0xc3, 0x41, 0xd4, 0x8b, 0x69, 0xf9, 0xb3, 0x41, 0x9c, 0x94, 0x9f, 0xee, 0x6c,
+ 0xbb, 0xf3, 0x8a, 0xf2, 0xe6, 0x30, 0xde, 0xd9, 0xa6, 0xe5, 0xa7, 0x3b, 0xdb, 0x09, 0x9b, 0xe9,
+ 0xce, 0xb6, 0x7b, 0x59, 0xc1, 0xa6, 0xcb, 0xd6, 0x4f, 0x77, 0xb6, 0x31, 0xbc, 0xef, 0xb9, 0x57,
+ 0xd4, 0xf0, 0xbe, 0x97, 0xc2, 0xfb, 0x1e, 0x86, 0xf7, 0x3d, 0x77, 0x41, 0x03, 0x9f, 0xd5, 0x4f,
+ 0x71, 0x7d, 0xad, 0x1f, 0x45, 0x03, 0x77, 0x51, 0xd1, 0xca, 0x20, 0x8a, 0x06, 0xa4, 0x1c, 0xd7,
+ 0x25, 0xf8, 0x93, 0x78, 0xec, 0x22, 0x05, 0xfe, 0x61, 0x3c, 0x3e, 0x1d, 0x9e, 0x50, 0xfc, 0x49,
+ 0x3c, 0x76, 0xde, 0x41, 0xf3, 0xfd, 0x17, 0x71, 0x38, 0x71, 0x97, 0x14, 0x27, 0x10, 0x24, 0xdf,
+ 0x92, 0x05, 0xa4, 0xf2, 0x5e, 0xed, 0xdf, 0x7f, 0xbc, 0x59, 0xd9, 0xf8, 0xf5, 0x32, 0x42, 0xed,
+ 0xa4, 0x88, 0xa8, 0x63, 0x0f, 0xad, 0x0d, 0xa7, 0x83, 0x41, 0xaf, 0x3f, 0x08, 0xb3, 0xab, 0x4b,
+ 0xb5, 0xa2, 0xbb, 0xfe, 0xf2, 0x22, 0xe7, 0x01, 0x5a, 0x4d, 0x3f, 0x4c, 0x35, 0x45, 0x85, 0xa4,
+ 0x11, 0x9d, 0xb4, 0xc4, 0xb9, 0x8f, 0xae, 0x66, 0x9f, 0x61, 0x05, 0x15, 0x12, 0x98, 0xb0, 0xc6,
+ 0xf9, 0x00, 0xad, 0xa4, 0x9f, 0x60, 0x5d, 0x15, 0x51, 0x1d, 0xbf, 0x82, 0x85, 0xc0, 0xda, 0x29,
+ 0xa2, 0x44, 0x7e, 0x05, 0x7b, 0x2e, 0x44, 0x7f, 0x85, 0xe4, 0x29, 0xac, 0x11, 0x88, 0x14, 0xd3,
+ 0x2c, 0xbf, 0x42, 0x24, 0x52, 0x50, 0xc8, 0xc2, 0x1a, 0xe7, 0x3d, 0xb4, 0x9c, 0x7e, 0x12, 0x14,
+ 0xd3, 0x36, 0x57, 0xcf, 0xb2, 0x20, 0x7a, 0x2e, 0x24, 0x77, 0x61, 0x0d, 0xdb, 0x8e, 0xa0, 0xe8,
+ 0x1d, 0xc0, 0xaf, 0x70, 0xde, 0x43, 0x8b, 0xd9, 0x1f, 0x55, 0x77, 0xd9, 0x24, 0xf6, 0xa0, 0xf6,
+ 0xf9, 0x3f, 0x6e, 0xce, 0x75, 0xf2, 0x25, 0xce, 0xf7, 0xd1, 0x42, 0xfa, 0x47, 0xdb, 0x5d, 0x31,
+ 0x48, 0x9c, 0xae, 0xce, 0x16, 0x38, 0x7b, 0x68, 0x65, 0x18, 0x0d, 0x13, 0x42, 0x54, 0xdf, 0x57,
+ 0xcd, 0xfa, 0xa6, 0x20, 0xfc, 0x42, 0xe7, 0x01, 0x5a, 0xa6, 0x1f, 0x10, 0x8d, 0x5f, 0x33, 0x6a,
+ 0x9c, 0xe2, 0x70, 0xcb, 0x18, 0x18, 0xa2, 0xd1, 0x55, 0xa3, 0xce, 0x05, 0x18, 0x22, 0xd3, 0xfc,
+ 0xbc, 0xa8, 0xd6, 0xd7, 0xcc, 0x5a, 0x17, 0xce, 0x8b, 0x0a, 0x9e, 0x23, 0xe4, 0x7b, 0xae, 0x63,
+ 0xd4, 0xbb, 0x4c, 0xc8, 0xf7, 0x04, 0x42, 0xbe, 0xe7, 0x5e, 0x37, 0x6b, 0x1e, 0x20, 0xe4, 0x7b,
+ 0x4e, 0x80, 0x96, 0xe8, 0x07, 0x58, 0xf7, 0xaf, 0x98, 0x74, 0x4f, 0x51, 0xd8, 0x45, 0x0c, 0x1b,
+ 0xaa, 0xfd, 0x1b, 0x66, 0xed, 0x0b, 0x6c, 0xe8, 0x0d, 0x90, 0xb7, 0x87, 0xe8, 0xff, 0x55, 0xa3,
+ 0xfe, 0x85, 0xf6, 0x04, 0x8c, 0x1d, 0xfc, 0x77, 0x19, 0x2d, 0x1c, 0xc6, 0xc7, 0xc4, 0x0c, 0x1e,
+ 0x95, 0x32, 0x83, 0xa0, 0xf6, 0x9b, 0x7f, 0xde, 0xac, 0x40, 0x96, 0xf0, 0x61, 0x09, 0x4b, 0x08,
+ 0x6a, 0xbf, 0x4b, 0xd0, 0x64, 0x63, 0x68, 0x95, 0x31, 0x86, 0xa0, 0xf6, 0x87, 0x04, 0x4d, 0xb4,
+ 0x87, 0x86, 0xbd, 0x3d, 0x50, 0x24, 0xc1, 0x24, 0x1a, 0xf6, 0x26, 0x21, 0x02, 0x11, 0xcd, 0xb7,
+ 0xca, 0x58, 0x85, 0x78, 0x76, 0xf4, 0xfe, 0x69, 0xd8, 0x1b, 0x06, 0x40, 0xca, 0xf7, 0x44, 0x52,
+ 0xc5, 0x6c, 0x03, 0x22, 0x85, 0x2d, 0xc8, 0xd2, 0x3c, 0x28, 0x0e, 0x6f, 0x21, 0xad, 0x32, 0x16,
+ 0x22, 0x32, 0xa2, 0xf7, 0x51, 0xc3, 0xde, 0x48, 0xc4, 0x36, 0x11, 0x3b, 0x09, 0xec, 0xec, 0x64,
+ 0x21, 0xb9, 0x19, 0xf1, 0x2d, 0xc3, 0x58, 0xca, 0xae, 0x8d, 0xa5, 0x60, 0x04, 0x7c, 0x9b, 0xe4,
+ 0xb6, 0xb2, 0x5f, 0xc6, 0x56, 0x30, 0x10, 0x3d, 0x25, 0xce, 0x5a, 0x9a, 0xf6, 0xd6, 0x92, 0x63,
+ 0xf1, 0xf6, 0xd2, 0xb4, 0xb7, 0x17, 0x19, 0x8a, 0x08, 0x7b, 0xbf, 0x8c, 0xc5, 0xc8, 0xe7, 0x48,
+ 0x6f, 0x93, 0xa6, 0xbd, 0xcd, 0x80, 0xc4, 0x7c, 0x4f, 0x20, 0x56, 0xd0, 0x6a, 0x60, 0x62, 0xbe,
+ 0xe7, 0x3c, 0xb4, 0xb5, 0x9b, 0x1c, 0x89, 0xb3, 0x9c, 0xfd, 0x32, 0x96, 0x23, 0xb3, 0xa2, 0xb7,
+ 0x4b, 0xd3, 0xde, 0x76, 0xe4, 0x76, 0xe1, 0x2f, 0x37, 0x7e, 0xbb, 0x8c, 0x56, 0x3a, 0xe1, 0x88,
+ 0x89, 0x21, 0x2d, 0xe4, 0x48, 0xf6, 0x31, 0x71, 0x2b, 0xb7, 0xaa, 0x86, 0x1c, 0x02, 0xac, 0x72,
+ 0x1a, 0xb9, 0x8b, 0xa5, 0x77, 0x4c, 0x12, 0x69, 0xab, 0xfa, 0x24, 0x22, 0xaf, 0x71, 0xde, 0x47,
+ 0x28, 0xce, 0xc9, 0x54, 0x4d, 0x64, 0xa8, 0xcb, 0x32, 0x6b, 0x9c, 0x77, 0xd1, 0xe2, 0x71, 0x46,
+ 0xa1, 0x66, 0xa0, 0x90, 0xee, 0x33, 0xb3, 0x15, 0x40, 0x16, 0x9a, 0xc7, 0x18, 0x76, 0x59, 0x48,
+ 0xda, 0x70, 0x5e, 0x36, 0x83, 0xc0, 0x1b, 0x4e, 0x29, 0x55, 0x5d, 0xc1, 0x48, 0x36, 0xa9, 0x4a,
+ 0xdc, 0xb3, 0x2e, 0x18, 0x11, 0xc0, 0x3d, 0xab, 0x14, 0xce, 0x16, 0x15, 0x38, 0xea, 0x70, 0x26,
+ 0x6e, 0x7b, 0x91, 0x11, 0x01, 0xdc, 0xf6, 0xca, 0x19, 0x6f, 0x49, 0xd1, 0x5e, 0x5d, 0xc6, 0x93,
+ 0x36, 0xcf, 0xcb, 0x66, 0x10, 0x78, 0xf3, 0x2c, 0xa5, 0xc5, 0x15, 0xf5, 0x79, 0x29, 0xd2, 0xa2,
+ 0xb8, 0xff, 0xbe, 0x6a, 0x44, 0x00, 0xf7, 0xdf, 0x72, 0xe8, 0xbc, 0xa6, 0x39, 0x29, 0x55, 0xe8,
+ 0x94, 0x76, 0xf1, 0xab, 0x66, 0x10, 0x78, 0x17, 0x2f, 0xc6, 0xd7, 0x35, 0xc5, 0x0d, 0xad, 0x8a,
+ 0xaf, 0x42, 0x0a, 0x70, 0x4c, 0xcb, 0xa1, 0x14, 0x20, 0x47, 0xe0, 0xeb, 0x8a, 0xd3, 0xd1, 0x45,
+ 0x60, 0x29, 0x4b, 0xbc, 0x62, 0x06, 0x81, 0xb3, 0x84, 0x14, 0xa6, 0x6f, 0x28, 0xae, 0xb5, 0x3a,
+ 0x4c, 0xcb, 0x71, 0xa4, 0x5a, 0x3e, 0x8e, 0xfc, 0x7f, 0x19, 0x2d, 0x75, 0xc2, 0x51, 0x96, 0x48,
+ 0xda, 0xe5, 0x7c, 0x81, 0x46, 0x12, 0xc8, 0x1d, 0x0e, 0xca, 0xb8, 0x03, 0x0d, 0x25, 0x80, 0x47,
+ 0xdc, 0xb7, 0xf4, 0x88, 0x7c, 0xf3, 0xc7, 0xfa, 0xc4, 0x07, 0x56, 0x3e, 0x91, 0x6f, 0xff, 0x18,
+ 0xaf, 0x68, 0x95, 0xf1, 0x0a, 0x45, 0x3c, 0xda, 0x2f, 0xe3, 0x18, 0xca, 0xbd, 0x64, 0xc3, 0xde,
+ 0x35, 0xe0, 0xb0, 0xd5, 0xb4, 0xf7, 0x0e, 0xd5, 0xa6, 0xb4, 0x61, 0xef, 0x1f, 0x70, 0x6e, 0x6b,
+ 0xda, 0xbb, 0x88, 0x6a, 0x77, 0xdb, 0x2a, 0xe3, 0x24, 0x8a, 0x08, 0xb8, 0x5f, 0xc6, 0x4f, 0x94,
+ 0x3b, 0xe5, 0x86, 0xbd, 0xa7, 0xc0, 0x81, 0xb2, 0x69, 0xef, 0x2c, 0xaa, 0x2d, 0x77, 0xab, 0x8c,
+ 0xbb, 0x28, 0xb2, 0xe9, 0x7e, 0x19, 0x8f, 0x51, 0x6e, 0xdf, 0xef, 0xdb, 0xfa, 0x0c, 0x98, 0x74,
+ 0x1f, 0xda, 0xba, 0x8d, 0x22, 0x04, 0xb4, 0xca, 0x38, 0x8e, 0x22, 0x31, 0xef, 0x97, 0xf1, 0x1d,
+ 0x65, 0xa0, 0x68, 0xd8, 0x7b, 0x0f, 0x9c, 0xbf, 0x9b, 0xf6, 0x0e, 0xa4, 0x4a, 0x26, 0x7f, 0xae,
+ 0xa3, 0x95, 0x83, 0x1e, 0x9b, 0x4c, 0x7e, 0x04, 0xcf, 0xc4, 0x92, 0x23, 0xbc, 0xb5, 0x49, 0x9e,
+ 0x06, 0x72, 0x0b, 0x36, 0x1f, 0x89, 0xd5, 0x0f, 0x86, 0xf1, 0xf8, 0x05, 0x34, 0x1e, 0x6b, 0xb0,
+ 0x73, 0x03, 0x62, 0x41, 0xaf, 0x81, 0x90, 0x3c, 0x94, 0x3c, 0x8f, 0x7e, 0x0a, 0xcc, 0xd9, 0x88,
+ 0x15, 0xbd, 0xa9, 0xa5, 0x98, 0x16, 0x13, 0x86, 0xd0, 0xb3, 0x98, 0x7c, 0x28, 0x41, 0x5c, 0x69,
+ 0x03, 0xc4, 0xe3, 0x70, 0xa4, 0x81, 0x77, 0x5b, 0xe1, 0x4c, 0x77, 0xf5, 0xdc, 0x70, 0x29, 0x61,
+ 0x26, 0xfa, 0xd3, 0x21, 0xec, 0x4f, 0x6f, 0xc0, 0x80, 0x6c, 0x25, 0xcb, 0x50, 0xb0, 0xa9, 0x03,
+ 0xd8, 0xa6, 0xde, 0xd0, 0xb2, 0xc4, 0x95, 0x84, 0xa4, 0x60, 0x56, 0x6d, 0xd0, 0xac, 0xee, 0xe8,
+ 0x28, 0xe6, 0x60, 0x60, 0xe6, 0x39, 0x80, 0x3d, 0x4b, 0x4f, 0x10, 0x57, 0x0a, 0x04, 0xc9, 0x1f,
+ 0xf5, 0x36, 0xe8, 0x5c, 0x5a, 0x82, 0x39, 0x18, 0x18, 0x85, 0xda, 0x0a, 0x03, 0xd3, 0x5f, 0xe8,
+ 0x2e, 0x43, 0x51, 0xb4, 0xb1, 0x43, 0xd8, 0xc6, 0xb4, 0x17, 0xba, 0x2b, 0xb1, 0x14, 0xdc, 0xec,
+ 0x00, 0x76, 0x33, 0x63, 0x1f, 0x7d, 0x4f, 0xee, 0xa3, 0xef, 0xf1, 0x7d, 0xcc, 0x3c, 0xcd, 0xd4,
+ 0x47, 0x0a, 0x06, 0x06, 0xa7, 0xb6, 0xc2, 0xda, 0xcc, 0x7d, 0x4c, 0x29, 0x8a, 0x06, 0x77, 0x08,
+ 0x1b, 0x9c, 0xb1, 0x8f, 0x3c, 0x4b, 0xc1, 0xe7, 0x5a, 0xa0, 0xcf, 0xdd, 0xd1, 0x92, 0x4c, 0x0a,
+ 0x09, 0x45, 0xde, 0xed, 0x0e, 0x20, 0xb7, 0xbb, 0xad, 0xa3, 0x97, 0x21, 0x41, 0x31, 0xab, 0xad,
+ 0x30, 0x3d, 0x7d, 0x07, 0x49, 0xa9, 0xd0, 0x41, 0x6a, 0x56, 0x87, 0xb0, 0xf5, 0x69, 0x3b, 0xc8,
+ 0xe0, 0xc1, 0xe9, 0xeb, 0x00, 0x76, 0x40, 0xbd, 0x12, 0x71, 0xa5, 0xa0, 0x44, 0xe2, 0x83, 0x6d,
+ 0xd0, 0x07, 0xb5, 0x4a, 0xcc, 0xc1, 0xa0, 0x50, 0xb6, 0xfe, 0x73, 0xf4, 0x2a, 0x6c, 0x67, 0xce,
+ 0x2a, 0xaa, 0xfe, 0x22, 0x7c, 0x81, 0x1f, 0x0e, 0xcd, 0x77, 0x92, 0x1f, 0x9d, 0x6f, 0xa3, 0xf9,
+ 0x5f, 0x26, 0xde, 0x5a, 0xe0, 0xbf, 0x47, 0x48, 0xe1, 0xbd, 0x4b, 0xdf, 0xad, 0xac, 0xff, 0x10,
+ 0x5d, 0xbd, 0x20, 0xe4, 0x9f, 0xa2, 0x1b, 0xa0, 0xcf, 0x01, 0x07, 0xd8, 0xe2, 0x0f, 0xa0, 0x99,
+ 0x12, 0x32, 0xf8, 0x4f, 0xd1, 0xca, 0x85, 0xe0, 0xfe, 0x0c, 0x5d, 0x07, 0x3c, 0x10, 0x40, 0xf7,
+ 0x78, 0x74, 0xfd, 0x50, 0x90, 0x6b, 0x8c, 0x23, 0x7b, 0xe2, 0x39, 0xe2, 0x7f, 0x8c, 0x1c, 0xd9,
+ 0x1e, 0x01, 0xfc, 0x77, 0x78, 0x7c, 0xed, 0x14, 0x91, 0x81, 0xff, 0x09, 0x5a, 0x93, 0xfc, 0xf2,
+ 0xfc, 0xd0, 0x19, 0xf2, 0xb9, 0x8f, 0x94, 0x81, 0x67, 0x86, 0x7d, 0x20, 0xf9, 0x8b, 0x40, 0x67,
+ 0xa4, 0xd3, 0xd5, 0xe2, 0x1b, 0x2f, 0x6d, 0x17, 0x3e, 0x40, 0x2e, 0x9d, 0x8b, 0xc1, 0xe7, 0xbb,
+ 0x4f, 0xdd, 0xa7, 0x64, 0x7f, 0xd2, 0x81, 0xa2, 0xaa, 0xfb, 0xe7, 0x8e, 0x2e, 0x74, 0x5f, 0x8d,
+ 0x5f, 0xa8, 0x3b, 0xc0, 0x01, 0xf8, 0xee, 0x9f, 0x3f, 0xfe, 0x8f, 0xd1, 0x9a, 0xe4, 0xd3, 0x65,
+ 0xfe, 0x1c, 0xe7, 0x03, 0x54, 0x06, 0xfc, 0x23, 0xb4, 0x2a, 0x3a, 0xf7, 0xb9, 0x61, 0x33, 0x9d,
+ 0x67, 0x3c, 0xb7, 0x4c, 0x67, 0xd8, 0xa9, 0x2b, 0xd8, 0xf9, 0x8b, 0xc1, 0x67, 0x74, 0x9f, 0x3b,
+ 0x72, 0x19, 0x65, 0xb2, 0xff, 0xf5, 0x07, 0xe9, 0xfe, 0x02, 0xd0, 0x37, 0xfe, 0x53, 0x47, 0x4b,
+ 0x07, 0xbd, 0x7c, 0x66, 0xfb, 0xb1, 0x3a, 0x31, 0x7f, 0x2b, 0xdf, 0x8b, 0xa4, 0xe5, 0x8a, 0xbc,
+ 0xac, 0xfe, 0xa7, 0x92, 0xa6, 0x9c, 0x9a, 0xbf, 0x09, 0xc0, 0x0a, 0x70, 0xe0, 0x43, 0xf7, 0x8f,
+ 0x94, 0xb9, 0xf9, 0xae, 0x86, 0xa8, 0x90, 0x76, 0x15, 0xff, 0xae, 0xf2, 0x50, 0xca, 0xce, 0xb7,
+ 0x00, 0x4c, 0x1e, 0x0b, 0x7a, 0xae, 0x7f, 0xa4, 0x48, 0xcf, 0x77, 0x74, 0x0c, 0xd9, 0xac, 0x0b,
+ 0x4e, 0x78, 0xbb, 0x70, 0x82, 0xbe, 0x0d, 0x81, 0xca, 0xf9, 0x59, 0x39, 0xea, 0x7d, 0x02, 0x67,
+ 0xe8, 0xdb, 0x1a, 0xae, 0x6c, 0xe8, 0x85, 0x86, 0xbe, 0x1d, 0x30, 0x47, 0xbf, 0xae, 0x26, 0xca,
+ 0x00, 0xaa, 0xa6, 0xbf, 0x4f, 0xe0, 0x24, 0xad, 0xa3, 0xc9, 0x86, 0x4a, 0x68, 0x0e, 0xdc, 0x01,
+ 0xd3, 0xb4, 0x86, 0x26, 0x03, 0xa8, 0x1a, 0x08, 0x1f, 0x29, 0xf2, 0xb4, 0xee, 0xd2, 0x77, 0x25,
+ 0xa2, 0x62, 0xa6, 0xee, 0xc2, 0x99, 0x5a, 0x73, 0xe9, 0xbb, 0x20, 0x57, 0x21, 0x55, 0x3f, 0x81,
+ 0x53, 0xb5, 0xa1, 0xa7, 0x59, 0xc0, 0x84, 0xa6, 0xc5, 0x1d, 0x30, 0x59, 0xeb, 0x7b, 0x9a, 0x02,
+ 0xaa, 0xc6, 0xc6, 0x47, 0x8a, 0x6c, 0x6d, 0xea, 0x29, 0x4f, 0x54, 0xcc, 0xd7, 0x5d, 0x38, 0x5f,
+ 0x1b, 0x7a, 0x2a, 0x73, 0x15, 0x12, 0xf6, 0x23, 0x30, 0x61, 0xbf, 0xae, 0xa1, 0xca, 0xa4, 0x62,
+ 0x60, 0xa6, 0xfc, 0x18, 0x4a, 0xd9, 0xaf, 0xa9, 0x49, 0xe6, 0x68, 0x8a, 0xe1, 0xf2, 0x91, 0x22,
+ 0x67, 0xeb, 0xba, 0xc9, 0xa5, 0x62, 0x70, 0xcc, 0xdc, 0x85, 0xb3, 0xb6, 0xa6, 0x9b, 0x2c, 0xa6,
+ 0x72, 0xde, 0xfc, 0x04, 0x4e, 0xdb, 0x3a, 0x85, 0xb2, 0xf1, 0x18, 0x9a, 0x3c, 0x77, 0xc0, 0xc4,
+ 0xad, 0x51, 0x28, 0x03, 0xa8, 0x18, 0x41, 0xcf, 0x32, 0xf7, 0x2c, 0x73, 0xcf, 0x32, 0xf7, 0x2c,
+ 0x73, 0xcf, 0x32, 0xf7, 0x2c, 0x73, 0xcf, 0x32, 0xf7, 0x2c, 0x73, 0xc3, 0x99, 0xfb, 0x2f, 0xf3,
+ 0xe8, 0xda, 0xe3, 0x61, 0x18, 0x3d, 0x63, 0x9e, 0x54, 0xdf, 0x63, 0x83, 0xb1, 0xf1, 0xad, 0x8d,
+ 0x3d, 0xee, 0x09, 0xf2, 0x77, 0x98, 0xb4, 0x6a, 0x32, 0xce, 0x3d, 0xf6, 0xe1, 0xee, 0x0f, 0xd0,
+ 0xe2, 0x38, 0x1c, 0x15, 0x7f, 0x21, 0x23, 0x39, 0x6c, 0xb6, 0xc0, 0xf9, 0x1e, 0x5a, 0x18, 0x87,
+ 0xa3, 0xa2, 0xaf, 0x60, 0x24, 0x07, 0x4e, 0xcb, 0xe9, 0xd2, 0xa2, 0x2f, 0x5d, 0xd0, 0xa5, 0x24,
+ 0xaa, 0x10, 0xce, 0xc5, 0x5f, 0xb3, 0xa0, 0x9c, 0x69, 0xd0, 0xc9, 0x0e, 0x5c, 0xe8, 0xc5, 0x8a,
+ 0xfc, 0xc0, 0xbe, 0xc7, 0x1c, 0xb8, 0xd8, 0xab, 0x14, 0xcc, 0x81, 0x7d, 0xcf, 0xd9, 0x41, 0x57,
+ 0xc6, 0xe1, 0xa8, 0xd8, 0xcb, 0x13, 0x7b, 0x73, 0x9d, 0xb4, 0x98, 0x1e, 0xb5, 0xf8, 0xeb, 0x12,
+ 0xf4, 0xa8, 0x74, 0xd7, 0x4c, 0x4e, 0xb7, 0xe8, 0x0b, 0x12, 0xf4, 0x74, 0xf1, 0x07, 0xc1, 0x1a,
+ 0xd6, 0xe8, 0x63, 0xaa, 0xd1, 0x44, 0x6b, 0x1b, 0xff, 0x9b, 0x47, 0x2b, 0x58, 0xb7, 0xd9, 0xb4,
+ 0xe8, 0x7d, 0x2b, 0xd5, 0x92, 0xb1, 0x10, 0xaf, 0xdd, 0x77, 0x2d, 0xb4, 0x4b, 0xc6, 0x35, 0x9c,
+ 0x82, 0x03, 0x4b, 0x05, 0x93, 0x24, 0xc0, 0xeb, 0x78, 0xd7, 0x4a, 0xc7, 0x19, 0x42, 0xae, 0xe6,
+ 0x5d, 0x2b, 0x35, 0x73, 0x00, 0x44, 0x95, 0x81, 0xa5, 0xa6, 0xb9, 0xb3, 0xa0, 0xca, 0xde, 0xb5,
+ 0x52, 0xb6, 0x48, 0x02, 0xbf, 0x27, 0x67, 0xa7, 0x6f, 0x89, 0x04, 0xbe, 0x47, 0x8a, 0xab, 0x3c,
+ 0x5b, 0x9f, 0x69, 0x3d, 0xb0, 0xd4, 0x3a, 0xc7, 0x80, 0x2a, 0x7e, 0xd7, 0x4a, 0xf1, 0x5c, 0x1b,
+ 0x88, 0xee, 0xaf, 0x61, 0x8d, 0x3f, 0xc6, 0x1a, 0x4f, 0x54, 0x1a, 0xdc, 0xfd, 0xe2, 0xcb, 0x7a,
+ 0xe5, 0xe5, 0x97, 0xf5, 0xca, 0x9f, 0xce, 0xea, 0x95, 0xbf, 0x9e, 0xd5, 0x2b, 0x7f, 0x3b, 0xab,
+ 0x57, 0x3e, 0x3f, 0xab, 0xcf, 0xfd, 0xfd, 0xac, 0x3e, 0xf7, 0xc5, 0x59, 0xbd, 0xf2, 0xf2, 0xac,
+ 0x3e, 0xf7, 0xab, 0x7f, 0xd5, 0xe7, 0xfa, 0x97, 0xf1, 0x11, 0xfc, 0xaf, 0x02, 0x00, 0x00, 0xff,
+ 0xff, 0xf1, 0x88, 0x43, 0x17, 0x77, 0x40, 0x00, 0x00,
+}
+
func (this *KnownTypes) Compare(that interface{}) int {
if that == nil {
if this == nil {
@@ -9040,153 +9191,3 @@ func sovTypes(x uint64) (n int) {
func sozTypes(x uint64) (n int) {
return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
-
-func init() { proto.RegisterFile("combos/neither/types.proto", fileDescriptor_types_a6ccc2435d23b615) }
-
-var fileDescriptor_types_a6ccc2435d23b615 = []byte{
- // 2297 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcf, 0x73, 0x1c, 0x47,
- 0x19, 0xd5, 0x7a, 0x57, 0xb6, 0xd4, 0x92, 0x6c, 0x69, 0x1c, 0xa7, 0x06, 0x41, 0xad, 0x8d, 0x12,
- 0x3b, 0x26, 0xa9, 0x48, 0x64, 0x46, 0x25, 0xc0, 0x90, 0x28, 0x99, 0xb2, 0xbd, 0xda, 0x8d, 0x64,
- 0xaf, 0x57, 0x5a, 0x17, 0x04, 0x02, 0xec, 0x46, 0x63, 0x45, 0xc5, 0x7a, 0x67, 0x6b, 0x77, 0x96,
- 0x94, 0x6f, 0xfc, 0x01, 0x1c, 0xb8, 0x41, 0x15, 0x17, 0xb8, 0x71, 0xe5, 0x40, 0x15, 0x47, 0x8e,
- 0x39, 0xf2, 0x17, 0x40, 0x22, 0x2e, 0x5c, 0x81, 0x8b, 0x2f, 0x54, 0xa5, 0xa6, 0xbb, 0x67, 0xa6,
- 0x7f, 0x7c, 0xdd, 0x3d, 0x3d, 0x25, 0xdd, 0xf6, 0x26, 0xed, 0x7e, 0xfd, 0xe6, 0xcd, 0x37, 0x6f,
- 0xf4, 0xfa, 0x7d, 0xa3, 0x41, 0xeb, 0x9f, 0x44, 0xcf, 0xfb, 0xd1, 0x64, 0x6b, 0x18, 0x9e, 0xc6,
- 0x9f, 0x86, 0xe3, 0xad, 0xf8, 0xc5, 0x28, 0x9c, 0x6c, 0x8e, 0xc6, 0x51, 0x1c, 0x39, 0xf3, 0xf8,
- 0x97, 0xf5, 0xb7, 0x4f, 0x4e, 0xe3, 0x4f, 0xa7, 0xfd, 0xcd, 0x4f, 0xa2, 0xe7, 0x5b, 0x27, 0xd1,
- 0x49, 0xb4, 0x85, 0xbf, 0xed, 0x4f, 0x9f, 0xe1, 0xdf, 0xf0, 0x2f, 0xf8, 0x27, 0xb2, 0x6a, 0xbd,
- 0x7e, 0x12, 0x45, 0x27, 0x83, 0x30, 0xaf, 0x3a, 0x9e, 0x8e, 0x7b, 0xf1, 0x69, 0x34, 0xa4, 0xdf,
- 0xdf, 0x14, 0xbf, 0x8f, 0x4f, 0x9f, 0x87, 0x93, 0xb8, 0xf7, 0x7c, 0xa4, 0x02, 0xf8, 0x6c, 0xdc,
- 0x1b, 0x8d, 0xc2, 0x31, 0xa5, 0xb5, 0xf1, 0xfb, 0x1a, 0x42, 0x1f, 0x0e, 0xa3, 0xcf, 0x86, 0x47,
- 0x09, 0x3d, 0xe7, 0x2d, 0x54, 0x3d, 0x9e, 0x8e, 0xdd, 0xca, 0xad, 0xca, 0xdd, 0x25, 0xef, 0x6b,
- 0x9b, 0x64, 0xf1, 0x66, 0xba, 0x78, 0xf3, 0x3e, 0x3d, 0x7a, 0x27, 0xa9, 0x72, 0xde, 0x44, 0x97,
- 0xe2, 0x89, 0x7b, 0x09, 0xd7, 0xae, 0x4b, 0xb5, 0x47, 0x29, 0x93, 0xce, 0xa5, 0x78, 0xe2, 0x6c,
- 0xa2, 0xea, 0x71, 0x7f, 0xe0, 0x56, 0x71, 0xf1, 0x37, 0x64, 0xe0, 0x68, 0xda, 0x1f, 0x84, 0x4f,
- 0x7b, 0x83, 0x69, 0xd8, 0x49, 0x0a, 0x9d, 0xb7, 0x51, 0xf5, 0xd9, 0x20, 0x76, 0x6b, 0xb8, 0xfe,
- 0xeb, 0x52, 0xfd, 0xc3, 0x41, 0xd4, 0x8b, 0x69, 0xf9, 0xb3, 0x41, 0x9c, 0x94, 0x9f, 0xee, 0x6c,
- 0xbb, 0xf3, 0x8a, 0xf2, 0xe6, 0x30, 0xde, 0xd9, 0xa6, 0xe5, 0xa7, 0x3b, 0xdb, 0x09, 0x9b, 0xe9,
- 0xce, 0xb6, 0x7b, 0x59, 0xc1, 0xa6, 0xcb, 0xd6, 0x4f, 0x77, 0xb6, 0x31, 0xbc, 0xef, 0xb9, 0x57,
- 0xd4, 0xf0, 0xbe, 0x97, 0xc2, 0xfb, 0x1e, 0x86, 0xf7, 0x3d, 0x77, 0x41, 0x03, 0x9f, 0xd5, 0x4f,
- 0x71, 0x7d, 0xad, 0x1f, 0x45, 0x03, 0x77, 0x51, 0xd1, 0xca, 0x20, 0x8a, 0x06, 0xa4, 0x1c, 0xd7,
- 0x25, 0xf8, 0x93, 0x78, 0xec, 0x22, 0x05, 0xfe, 0x61, 0x3c, 0x3e, 0x1d, 0x9e, 0x50, 0xfc, 0x49,
- 0x3c, 0x76, 0xde, 0x41, 0xf3, 0xfd, 0x17, 0x71, 0x38, 0x71, 0x97, 0x14, 0x27, 0x10, 0x24, 0xdf,
- 0x92, 0x05, 0xa4, 0xf2, 0x5e, 0xed, 0xdf, 0x7f, 0xbc, 0x59, 0xd9, 0xf8, 0xf5, 0x32, 0x42, 0xed,
- 0xa4, 0x88, 0xa8, 0x63, 0x0f, 0xad, 0x0d, 0xa7, 0x83, 0x41, 0xaf, 0x3f, 0x08, 0xb3, 0xab, 0x4b,
- 0xb5, 0xa2, 0xbb, 0xfe, 0xf2, 0x22, 0xe7, 0x01, 0x5a, 0x4d, 0x3f, 0x4c, 0x35, 0x45, 0x85, 0xa4,
- 0x11, 0x9d, 0xb4, 0xc4, 0xb9, 0x8f, 0xae, 0x66, 0x9f, 0x61, 0x05, 0x15, 0x12, 0x98, 0xb0, 0xc6,
- 0xf9, 0x00, 0xad, 0xa4, 0x9f, 0x60, 0x5d, 0x15, 0x51, 0x1d, 0xbf, 0x82, 0x85, 0xc0, 0xda, 0x29,
- 0xa2, 0x44, 0x7e, 0x05, 0x7b, 0x2e, 0x44, 0x7f, 0x85, 0xe4, 0x29, 0xac, 0x11, 0x88, 0x14, 0xd3,
- 0x2c, 0xbf, 0x42, 0x24, 0x52, 0x50, 0xc8, 0xc2, 0x1a, 0xe7, 0x3d, 0xb4, 0x9c, 0x7e, 0x12, 0x14,
- 0xd3, 0x36, 0x57, 0xcf, 0xb2, 0x20, 0x7a, 0x2e, 0x24, 0x77, 0x61, 0x0d, 0xdb, 0x8e, 0xa0, 0xe8,
- 0x1d, 0xc0, 0xaf, 0x70, 0xde, 0x43, 0x8b, 0xd9, 0x1f, 0x55, 0x77, 0xd9, 0x24, 0xf6, 0xa0, 0xf6,
- 0xf9, 0x3f, 0x6e, 0xce, 0x75, 0xf2, 0x25, 0xce, 0xf7, 0xd1, 0x42, 0xfa, 0x47, 0xdb, 0x5d, 0x31,
- 0x48, 0x9c, 0xae, 0xce, 0x16, 0x38, 0x7b, 0x68, 0x65, 0x18, 0x0d, 0x13, 0x42, 0x54, 0xdf, 0x57,
- 0xcd, 0xfa, 0xa6, 0x20, 0xfc, 0x42, 0xe7, 0x01, 0x5a, 0xa6, 0x1f, 0x10, 0x8d, 0x5f, 0x33, 0x6a,
- 0x9c, 0xe2, 0x70, 0xcb, 0x18, 0x18, 0xa2, 0xd1, 0x55, 0xa3, 0xce, 0x05, 0x18, 0x22, 0xd3, 0xfc,
- 0xbc, 0xa8, 0xd6, 0xd7, 0xcc, 0x5a, 0x17, 0xce, 0x8b, 0x0a, 0x9e, 0x23, 0xe4, 0x7b, 0xae, 0x63,
- 0xd4, 0xbb, 0x4c, 0xc8, 0xf7, 0x04, 0x42, 0xbe, 0xe7, 0x5e, 0x37, 0x6b, 0x1e, 0x20, 0xe4, 0x7b,
- 0x4e, 0x80, 0x96, 0xe8, 0x07, 0x58, 0xf7, 0xaf, 0x98, 0x74, 0x4f, 0x51, 0xd8, 0x45, 0x0c, 0x1b,
- 0xaa, 0xfd, 0x1b, 0x66, 0xed, 0x0b, 0x6c, 0xe8, 0x0d, 0x90, 0xb7, 0x87, 0xe8, 0xff, 0x55, 0xa3,
- 0xfe, 0x85, 0xf6, 0x04, 0x8c, 0x1d, 0xfc, 0x77, 0x19, 0x2d, 0x1c, 0xc6, 0xc7, 0xc4, 0x0c, 0x1e,
- 0x95, 0x32, 0x83, 0xa0, 0xf6, 0x9b, 0x7f, 0xde, 0xac, 0x40, 0x96, 0xf0, 0x61, 0x09, 0x4b, 0x08,
- 0x6a, 0xbf, 0x4b, 0xd0, 0x64, 0x63, 0x68, 0x95, 0x31, 0x86, 0xa0, 0xf6, 0x87, 0x04, 0x4d, 0xb4,
- 0x87, 0x86, 0xbd, 0x3d, 0x50, 0x24, 0xc1, 0x24, 0x1a, 0xf6, 0x26, 0x21, 0x02, 0x11, 0xcd, 0xb7,
- 0xca, 0x58, 0x85, 0x78, 0x76, 0xf4, 0xfe, 0x69, 0xd8, 0x1b, 0x06, 0x40, 0xca, 0xf7, 0x44, 0x52,
- 0xc5, 0x6c, 0x03, 0x22, 0x85, 0x2d, 0xc8, 0xd2, 0x3c, 0x28, 0x0e, 0x6f, 0x21, 0xad, 0x32, 0x16,
- 0x22, 0x32, 0xa2, 0xf7, 0x51, 0xc3, 0xde, 0x48, 0xc4, 0x36, 0x11, 0x3b, 0x09, 0xec, 0xec, 0x64,
- 0x21, 0xb9, 0x19, 0xf1, 0x2d, 0xc3, 0x58, 0xca, 0xae, 0x8d, 0xa5, 0x60, 0x04, 0x7c, 0x9b, 0xe4,
- 0xb6, 0xb2, 0x5f, 0xc6, 0x56, 0x30, 0x10, 0x3d, 0x25, 0xce, 0x5a, 0x9a, 0xf6, 0xd6, 0x92, 0x63,
- 0xf1, 0xf6, 0xd2, 0xb4, 0xb7, 0x17, 0x19, 0x8a, 0x08, 0x7b, 0xbf, 0x8c, 0xc5, 0xc8, 0xe7, 0x48,
- 0x6f, 0x93, 0xa6, 0xbd, 0xcd, 0x80, 0xc4, 0x7c, 0x4f, 0x20, 0x56, 0xd0, 0x6a, 0x60, 0x62, 0xbe,
- 0xe7, 0x3c, 0xb4, 0xb5, 0x9b, 0x1c, 0x89, 0xb3, 0x9c, 0xfd, 0x32, 0x96, 0x23, 0xb3, 0xa2, 0xb7,
- 0x4b, 0xd3, 0xde, 0x76, 0xe4, 0x76, 0xe1, 0x2f, 0x37, 0x7e, 0xbb, 0x8c, 0x56, 0x3a, 0xe1, 0x88,
- 0x89, 0x21, 0x2d, 0xe4, 0x48, 0xf6, 0x31, 0x71, 0x2b, 0xb7, 0xaa, 0x86, 0x1c, 0x02, 0xac, 0x72,
- 0x1a, 0xb9, 0x8b, 0xa5, 0x77, 0x4c, 0x12, 0x69, 0xab, 0xfa, 0x24, 0x22, 0xaf, 0x71, 0xde, 0x47,
- 0x28, 0xce, 0xc9, 0x54, 0x4d, 0x64, 0xa8, 0xcb, 0x32, 0x6b, 0x9c, 0x77, 0xd1, 0xe2, 0x71, 0x46,
- 0xa1, 0x66, 0xa0, 0x90, 0xee, 0x33, 0xb3, 0x15, 0x40, 0x16, 0x9a, 0xc7, 0x18, 0x76, 0x59, 0x48,
- 0xda, 0x70, 0x5e, 0x36, 0x83, 0xc0, 0x1b, 0x4e, 0x29, 0x55, 0x5d, 0xc1, 0x48, 0x36, 0xa9, 0x4a,
- 0xdc, 0xb3, 0x2e, 0x18, 0x11, 0xc0, 0x3d, 0xab, 0x14, 0xce, 0x16, 0x15, 0x38, 0xea, 0x70, 0x26,
- 0x6e, 0x7b, 0x91, 0x11, 0x01, 0xdc, 0xf6, 0xca, 0x19, 0x6f, 0x49, 0xd1, 0x5e, 0x5d, 0xc6, 0x93,
- 0x36, 0xcf, 0xcb, 0x66, 0x10, 0x78, 0xf3, 0x2c, 0xa5, 0xc5, 0x15, 0xf5, 0x79, 0x29, 0xd2, 0xa2,
- 0xb8, 0xff, 0xbe, 0x6a, 0x44, 0x00, 0xf7, 0xdf, 0x72, 0xe8, 0xbc, 0xa6, 0x39, 0x29, 0x55, 0xe8,
- 0x94, 0x76, 0xf1, 0xab, 0x66, 0x10, 0x78, 0x17, 0x2f, 0xc6, 0xd7, 0x35, 0xc5, 0x0d, 0xad, 0x8a,
- 0xaf, 0x42, 0x0a, 0x70, 0x4c, 0xcb, 0xa1, 0x14, 0x20, 0x47, 0xe0, 0xeb, 0x8a, 0xd3, 0xd1, 0x45,
- 0x60, 0x29, 0x4b, 0xbc, 0x62, 0x06, 0x81, 0xb3, 0x84, 0x14, 0xa6, 0x6f, 0x28, 0xae, 0xb5, 0x3a,
- 0x4c, 0xcb, 0x71, 0xa4, 0x5a, 0x3e, 0x8e, 0xfc, 0x7f, 0x19, 0x2d, 0x75, 0xc2, 0x51, 0x96, 0x48,
- 0xda, 0xe5, 0x7c, 0x81, 0x46, 0x12, 0xc8, 0x1d, 0x0e, 0xca, 0xb8, 0x03, 0x0d, 0x25, 0x80, 0x47,
- 0xdc, 0xb7, 0xf4, 0x88, 0x7c, 0xf3, 0xc7, 0xfa, 0xc4, 0x07, 0x56, 0x3e, 0x91, 0x6f, 0xff, 0x18,
- 0xaf, 0x68, 0x95, 0xf1, 0x0a, 0x45, 0x3c, 0xda, 0x2f, 0xe3, 0x18, 0xca, 0xbd, 0x64, 0xc3, 0xde,
- 0x35, 0xe0, 0xb0, 0xd5, 0xb4, 0xf7, 0x0e, 0xd5, 0xa6, 0xb4, 0x61, 0xef, 0x1f, 0x70, 0x6e, 0x6b,
- 0xda, 0xbb, 0x88, 0x6a, 0x77, 0xdb, 0x2a, 0xe3, 0x24, 0x8a, 0x08, 0xb8, 0x5f, 0xc6, 0x4f, 0x94,
- 0x3b, 0xe5, 0x86, 0xbd, 0xa7, 0xc0, 0x81, 0xb2, 0x69, 0xef, 0x2c, 0xaa, 0x2d, 0x77, 0xab, 0x8c,
- 0xbb, 0x28, 0xb2, 0xe9, 0x7e, 0x19, 0x8f, 0x51, 0x6e, 0xdf, 0xef, 0xdb, 0xfa, 0x0c, 0x98, 0x74,
- 0x1f, 0xda, 0xba, 0x8d, 0x22, 0x04, 0xb4, 0xca, 0x38, 0x8e, 0x22, 0x31, 0xef, 0x97, 0xf1, 0x1d,
- 0x65, 0xa0, 0x68, 0xd8, 0x7b, 0x0f, 0x9c, 0xbf, 0x9b, 0xf6, 0x0e, 0xa4, 0x4a, 0x26, 0x7f, 0xae,
- 0xa3, 0x95, 0x83, 0x1e, 0x9b, 0x4c, 0x7e, 0x04, 0xcf, 0xc4, 0x92, 0x23, 0xbc, 0xb5, 0x49, 0x9e,
- 0x06, 0x72, 0x0b, 0x36, 0x1f, 0x89, 0xd5, 0x0f, 0x86, 0xf1, 0xf8, 0x05, 0x34, 0x1e, 0x6b, 0xb0,
- 0x73, 0x03, 0x62, 0x41, 0xaf, 0x81, 0x90, 0x3c, 0x94, 0x3c, 0x8f, 0x7e, 0x0a, 0xcc, 0xd9, 0x88,
- 0x15, 0xbd, 0xa9, 0xa5, 0x98, 0x16, 0x13, 0x86, 0xd0, 0xb3, 0x98, 0x7c, 0x28, 0x41, 0x5c, 0x69,
- 0x03, 0xc4, 0xe3, 0x70, 0xa4, 0x81, 0x77, 0x5b, 0xe1, 0x4c, 0x77, 0xf5, 0xdc, 0x70, 0x29, 0x61,
- 0x26, 0xfa, 0xd3, 0x21, 0xec, 0x4f, 0x6f, 0xc0, 0x80, 0x6c, 0x25, 0xcb, 0x50, 0xb0, 0xa9, 0x03,
- 0xd8, 0xa6, 0xde, 0xd0, 0xb2, 0xc4, 0x95, 0x84, 0xa4, 0x60, 0x56, 0x6d, 0xd0, 0xac, 0xee, 0xe8,
- 0x28, 0xe6, 0x60, 0x60, 0xe6, 0x39, 0x80, 0x3d, 0x4b, 0x4f, 0x10, 0x57, 0x0a, 0x04, 0xc9, 0x1f,
- 0xf5, 0x36, 0xe8, 0x5c, 0x5a, 0x82, 0x39, 0x18, 0x18, 0x85, 0xda, 0x0a, 0x03, 0xd3, 0x5f, 0xe8,
- 0x2e, 0x43, 0x51, 0xb4, 0xb1, 0x43, 0xd8, 0xc6, 0xb4, 0x17, 0xba, 0x2b, 0xb1, 0x14, 0xdc, 0xec,
- 0x00, 0x76, 0x33, 0x63, 0x1f, 0x7d, 0x4f, 0xee, 0xa3, 0xef, 0xf1, 0x7d, 0xcc, 0x3c, 0xcd, 0xd4,
- 0x47, 0x0a, 0x06, 0x06, 0xa7, 0xb6, 0xc2, 0xda, 0xcc, 0x7d, 0x4c, 0x29, 0x8a, 0x06, 0x77, 0x08,
- 0x1b, 0x9c, 0xb1, 0x8f, 0x3c, 0x4b, 0xc1, 0xe7, 0x5a, 0xa0, 0xcf, 0xdd, 0xd1, 0x92, 0x4c, 0x0a,
- 0x09, 0x45, 0xde, 0xed, 0x0e, 0x20, 0xb7, 0xbb, 0xad, 0xa3, 0x97, 0x21, 0x41, 0x31, 0xab, 0xad,
- 0x30, 0x3d, 0x7d, 0x07, 0x49, 0xa9, 0xd0, 0x41, 0x6a, 0x56, 0x87, 0xb0, 0xf5, 0x69, 0x3b, 0xc8,
- 0xe0, 0xc1, 0xe9, 0xeb, 0x00, 0x76, 0x40, 0xbd, 0x12, 0x71, 0xa5, 0xa0, 0x44, 0xe2, 0x83, 0x6d,
- 0xd0, 0x07, 0xb5, 0x4a, 0xcc, 0xc1, 0xa0, 0x50, 0xb6, 0xfe, 0x73, 0xf4, 0x2a, 0x6c, 0x67, 0xce,
- 0x2a, 0xaa, 0xfe, 0x22, 0x7c, 0x81, 0x1f, 0x0e, 0xcd, 0x77, 0x92, 0x1f, 0x9d, 0x6f, 0xa3, 0xf9,
- 0x5f, 0x26, 0xde, 0x5a, 0xe0, 0xbf, 0x47, 0x48, 0xe1, 0xbd, 0x4b, 0xdf, 0xad, 0xac, 0xff, 0x10,
- 0x5d, 0xbd, 0x20, 0xe4, 0x9f, 0xa2, 0x1b, 0xa0, 0xcf, 0x01, 0x07, 0xd8, 0xe2, 0x0f, 0xa0, 0x99,
- 0x12, 0x32, 0xf8, 0x4f, 0xd1, 0xca, 0x85, 0xe0, 0xfe, 0x0c, 0x5d, 0x07, 0x3c, 0x10, 0x40, 0xf7,
- 0x78, 0x74, 0xfd, 0x50, 0x90, 0x6b, 0x8c, 0x23, 0x7b, 0xe2, 0x39, 0xe2, 0x7f, 0x8c, 0x1c, 0xd9,
- 0x1e, 0x01, 0xfc, 0x77, 0x78, 0x7c, 0xed, 0x14, 0x91, 0x81, 0xff, 0x09, 0x5a, 0x93, 0xfc, 0xf2,
- 0xfc, 0xd0, 0x19, 0xf2, 0xb9, 0x8f, 0x94, 0x81, 0x67, 0x86, 0x7d, 0x20, 0xf9, 0x8b, 0x40, 0x67,
- 0xa4, 0xd3, 0xd5, 0xe2, 0x1b, 0x2f, 0x6d, 0x17, 0x3e, 0x40, 0x2e, 0x9d, 0x8b, 0xc1, 0xe7, 0xbb,
- 0x4f, 0xdd, 0xa7, 0x64, 0x7f, 0xd2, 0x81, 0xa2, 0xaa, 0xfb, 0xe7, 0x8e, 0x2e, 0x74, 0x5f, 0x8d,
- 0x5f, 0xa8, 0x3b, 0xc0, 0x01, 0xf8, 0xee, 0x9f, 0x3f, 0xfe, 0x8f, 0xd1, 0x9a, 0xe4, 0xd3, 0x65,
- 0xfe, 0x1c, 0xe7, 0x03, 0x54, 0x06, 0xfc, 0x23, 0xb4, 0x2a, 0x3a, 0xf7, 0xb9, 0x61, 0x33, 0x9d,
- 0x67, 0x3c, 0xb7, 0x4c, 0x67, 0xd8, 0xa9, 0x2b, 0xd8, 0xf9, 0x8b, 0xc1, 0x67, 0x74, 0x9f, 0x3b,
- 0x72, 0x19, 0x65, 0xb2, 0xff, 0xf5, 0x07, 0xe9, 0xfe, 0x02, 0xd0, 0x37, 0xfe, 0x53, 0x47, 0x4b,
- 0x07, 0xbd, 0x7c, 0x66, 0xfb, 0xb1, 0x3a, 0x31, 0x7f, 0x2b, 0xdf, 0x8b, 0xa4, 0xe5, 0x8a, 0xbc,
- 0xac, 0xfe, 0xa7, 0x92, 0xa6, 0x9c, 0x9a, 0xbf, 0x09, 0xc0, 0x0a, 0x70, 0xe0, 0x43, 0xf7, 0x8f,
- 0x94, 0xb9, 0xf9, 0xae, 0x86, 0xa8, 0x90, 0x76, 0x15, 0xff, 0xae, 0xf2, 0x50, 0xca, 0xce, 0xb7,
- 0x00, 0x4c, 0x1e, 0x0b, 0x7a, 0xae, 0x7f, 0xa4, 0x48, 0xcf, 0x77, 0x74, 0x0c, 0xd9, 0xac, 0x0b,
- 0x4e, 0x78, 0xbb, 0x70, 0x82, 0xbe, 0x0d, 0x81, 0xca, 0xf9, 0x59, 0x39, 0xea, 0x7d, 0x02, 0x67,
- 0xe8, 0xdb, 0x1a, 0xae, 0x6c, 0xe8, 0x85, 0x86, 0xbe, 0x1d, 0x30, 0x47, 0xbf, 0xae, 0x26, 0xca,
- 0x00, 0xaa, 0xa6, 0xbf, 0x4f, 0xe0, 0x24, 0xad, 0xa3, 0xc9, 0x86, 0x4a, 0x68, 0x0e, 0xdc, 0x01,
- 0xd3, 0xb4, 0x86, 0x26, 0x03, 0xa8, 0x1a, 0x08, 0x1f, 0x29, 0xf2, 0xb4, 0xee, 0xd2, 0x77, 0x25,
- 0xa2, 0x62, 0xa6, 0xee, 0xc2, 0x99, 0x5a, 0x73, 0xe9, 0xbb, 0x20, 0x57, 0x21, 0x55, 0x3f, 0x81,
- 0x53, 0xb5, 0xa1, 0xa7, 0x59, 0xc0, 0x84, 0xa6, 0xc5, 0x1d, 0x30, 0x59, 0xeb, 0x7b, 0x9a, 0x02,
- 0xaa, 0xc6, 0xc6, 0x47, 0x8a, 0x6c, 0x6d, 0xea, 0x29, 0x4f, 0x54, 0xcc, 0xd7, 0x5d, 0x38, 0x5f,
- 0x1b, 0x7a, 0x2a, 0x73, 0x15, 0x12, 0xf6, 0x23, 0x30, 0x61, 0xbf, 0xae, 0xa1, 0xca, 0xa4, 0x62,
- 0x60, 0xa6, 0xfc, 0x18, 0x4a, 0xd9, 0xaf, 0xa9, 0x49, 0xe6, 0x68, 0x8a, 0xe1, 0xf2, 0x91, 0x22,
- 0x67, 0xeb, 0xba, 0xc9, 0xa5, 0x62, 0x70, 0xcc, 0xdc, 0x85, 0xb3, 0xb6, 0xa6, 0x9b, 0x2c, 0xa6,
- 0x72, 0xde, 0xfc, 0x04, 0x4e, 0xdb, 0x3a, 0x85, 0xb2, 0xf1, 0x18, 0x9a, 0x3c, 0x77, 0xc0, 0xc4,
- 0xad, 0x51, 0x28, 0x03, 0xa8, 0x18, 0x41, 0xcf, 0x32, 0xf7, 0x2c, 0x73, 0xcf, 0x32, 0xf7, 0x2c,
- 0x73, 0xcf, 0x32, 0xf7, 0x2c, 0x73, 0xcf, 0x32, 0xf7, 0x2c, 0x73, 0xc3, 0x99, 0xfb, 0x2f, 0xf3,
- 0xe8, 0xda, 0xe3, 0x61, 0x18, 0x3d, 0x63, 0x9e, 0x54, 0xdf, 0x63, 0x83, 0xb1, 0xf1, 0xad, 0x8d,
- 0x3d, 0xee, 0x09, 0xf2, 0x77, 0x98, 0xb4, 0x6a, 0x32, 0xce, 0x3d, 0xf6, 0xe1, 0xee, 0x0f, 0xd0,
- 0xe2, 0x38, 0x1c, 0x15, 0x7f, 0x21, 0x23, 0x39, 0x6c, 0xb6, 0xc0, 0xf9, 0x1e, 0x5a, 0x18, 0x87,
- 0xa3, 0xa2, 0xaf, 0x60, 0x24, 0x07, 0x4e, 0xcb, 0xe9, 0xd2, 0xa2, 0x2f, 0x5d, 0xd0, 0xa5, 0x24,
- 0xaa, 0x10, 0xce, 0xc5, 0x5f, 0xb3, 0xa0, 0x9c, 0x69, 0xd0, 0xc9, 0x0e, 0x5c, 0xe8, 0xc5, 0x8a,
- 0xfc, 0xc0, 0xbe, 0xc7, 0x1c, 0xb8, 0xd8, 0xab, 0x14, 0xcc, 0x81, 0x7d, 0xcf, 0xd9, 0x41, 0x57,
- 0xc6, 0xe1, 0xa8, 0xd8, 0xcb, 0x13, 0x7b, 0x73, 0x9d, 0xb4, 0x98, 0x1e, 0xb5, 0xf8, 0xeb, 0x12,
- 0xf4, 0xa8, 0x74, 0xd7, 0x4c, 0x4e, 0xb7, 0xe8, 0x0b, 0x12, 0xf4, 0x74, 0xf1, 0x07, 0xc1, 0x1a,
- 0xd6, 0xe8, 0x63, 0xaa, 0xd1, 0x44, 0x6b, 0x1b, 0xff, 0x9b, 0x47, 0x2b, 0x58, 0xb7, 0xd9, 0xb4,
- 0xe8, 0x7d, 0x2b, 0xd5, 0x92, 0xb1, 0x10, 0xaf, 0xdd, 0x77, 0x2d, 0xb4, 0x4b, 0xc6, 0x35, 0x9c,
- 0x82, 0x03, 0x4b, 0x05, 0x93, 0x24, 0xc0, 0xeb, 0x78, 0xd7, 0x4a, 0xc7, 0x19, 0x42, 0xae, 0xe6,
- 0x5d, 0x2b, 0x35, 0x73, 0x00, 0x44, 0x95, 0x81, 0xa5, 0xa6, 0xb9, 0xb3, 0xa0, 0xca, 0xde, 0xb5,
- 0x52, 0xb6, 0x48, 0x02, 0xbf, 0x27, 0x67, 0xa7, 0x6f, 0x89, 0x04, 0xbe, 0x47, 0x8a, 0xab, 0x3c,
- 0x5b, 0x9f, 0x69, 0x3d, 0xb0, 0xd4, 0x3a, 0xc7, 0x80, 0x2a, 0x7e, 0xd7, 0x4a, 0xf1, 0x5c, 0x1b,
- 0x88, 0xee, 0xaf, 0x61, 0x8d, 0x3f, 0xc6, 0x1a, 0x4f, 0x54, 0x1a, 0xdc, 0xfd, 0xe2, 0xcb, 0x7a,
- 0xe5, 0xe5, 0x97, 0xf5, 0xca, 0x9f, 0xce, 0xea, 0x95, 0xbf, 0x9e, 0xd5, 0x2b, 0x7f, 0x3b, 0xab,
- 0x57, 0x3e, 0x3f, 0xab, 0xcf, 0xfd, 0xfd, 0xac, 0x3e, 0xf7, 0xc5, 0x59, 0xbd, 0xf2, 0xf2, 0xac,
- 0x3e, 0xf7, 0xab, 0x7f, 0xd5, 0xe7, 0xfa, 0x97, 0xf1, 0x11, 0xfc, 0xaf, 0x02, 0x00, 0x00, 0xff,
- 0xff, 0xf1, 0x88, 0x43, 0x17, 0x77, 0x40, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.pb.go b/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.pb.go
index 5613debd21..3e0b7323e9 100644
--- a/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.pb.go
@@ -3,18 +3,17 @@
package types
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-import types "github.com/gogo/protobuf/types"
-
-import time "time"
-import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
-
-import bytes "bytes"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
+ types "github.com/gogo/protobuf/types"
+ io "io"
+ math "math"
+ time "time"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -49,7 +48,7 @@ func (m *KnownTypes) Reset() { *m = KnownTypes{} }
func (m *KnownTypes) String() string { return proto.CompactTextString(m) }
func (*KnownTypes) ProtoMessage() {}
func (*KnownTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_1fa8d07678f7c296, []int{0}
+ return fileDescriptor_b3cdd6d81a3ac3e5, []int{0}
}
func (m *KnownTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -57,8 +56,8 @@ func (m *KnownTypes) XXX_Unmarshal(b []byte) error {
func (m *KnownTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_KnownTypes.Marshal(b, m, deterministic)
}
-func (dst *KnownTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_KnownTypes.Merge(dst, src)
+func (m *KnownTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_KnownTypes.Merge(m, src)
}
func (m *KnownTypes) XXX_Size() int {
return xxx_messageInfo_KnownTypes.Size(m)
@@ -178,7 +177,7 @@ func (m *ProtoTypes) Reset() { *m = ProtoTypes{} }
func (m *ProtoTypes) String() string { return proto.CompactTextString(m) }
func (*ProtoTypes) ProtoMessage() {}
func (*ProtoTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_1fa8d07678f7c296, []int{1}
+ return fileDescriptor_b3cdd6d81a3ac3e5, []int{1}
}
func (m *ProtoTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -186,8 +185,8 @@ func (m *ProtoTypes) XXX_Unmarshal(b []byte) error {
func (m *ProtoTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ProtoTypes.Marshal(b, m, deterministic)
}
-func (dst *ProtoTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ProtoTypes.Merge(dst, src)
+func (m *ProtoTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ProtoTypes.Merge(m, src)
}
func (m *ProtoTypes) XXX_Size() int {
return xxx_messageInfo_ProtoTypes.Size(m)
@@ -384,7 +383,7 @@ func (m *StdTypes) Reset() { *m = StdTypes{} }
func (m *StdTypes) String() string { return proto.CompactTextString(m) }
func (*StdTypes) ProtoMessage() {}
func (*StdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_1fa8d07678f7c296, []int{2}
+ return fileDescriptor_b3cdd6d81a3ac3e5, []int{2}
}
func (m *StdTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -392,8 +391,8 @@ func (m *StdTypes) XXX_Unmarshal(b []byte) error {
func (m *StdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_StdTypes.Marshal(b, m, deterministic)
}
-func (dst *StdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_StdTypes.Merge(dst, src)
+func (m *StdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StdTypes.Merge(m, src)
}
func (m *StdTypes) XXX_Size() int {
return xxx_messageInfo_StdTypes.Size(m)
@@ -590,7 +589,7 @@ func (m *RepProtoTypes) Reset() { *m = RepProtoTypes{} }
func (m *RepProtoTypes) String() string { return proto.CompactTextString(m) }
func (*RepProtoTypes) ProtoMessage() {}
func (*RepProtoTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_1fa8d07678f7c296, []int{3}
+ return fileDescriptor_b3cdd6d81a3ac3e5, []int{3}
}
func (m *RepProtoTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -598,8 +597,8 @@ func (m *RepProtoTypes) XXX_Unmarshal(b []byte) error {
func (m *RepProtoTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepProtoTypes.Marshal(b, m, deterministic)
}
-func (dst *RepProtoTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RepProtoTypes.Merge(dst, src)
+func (m *RepProtoTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RepProtoTypes.Merge(m, src)
}
func (m *RepProtoTypes) XXX_Size() int {
return xxx_messageInfo_RepProtoTypes.Size(m)
@@ -796,7 +795,7 @@ func (m *RepStdTypes) Reset() { *m = RepStdTypes{} }
func (m *RepStdTypes) String() string { return proto.CompactTextString(m) }
func (*RepStdTypes) ProtoMessage() {}
func (*RepStdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_1fa8d07678f7c296, []int{4}
+ return fileDescriptor_b3cdd6d81a3ac3e5, []int{4}
}
func (m *RepStdTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -804,8 +803,8 @@ func (m *RepStdTypes) XXX_Unmarshal(b []byte) error {
func (m *RepStdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepStdTypes.Marshal(b, m, deterministic)
}
-func (dst *RepStdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RepStdTypes.Merge(dst, src)
+func (m *RepStdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RepStdTypes.Merge(m, src)
}
func (m *RepStdTypes) XXX_Size() int {
return xxx_messageInfo_RepStdTypes.Size(m)
@@ -1002,7 +1001,7 @@ func (m *MapProtoTypes) Reset() { *m = MapProtoTypes{} }
func (m *MapProtoTypes) String() string { return proto.CompactTextString(m) }
func (*MapProtoTypes) ProtoMessage() {}
func (*MapProtoTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_1fa8d07678f7c296, []int{5}
+ return fileDescriptor_b3cdd6d81a3ac3e5, []int{5}
}
func (m *MapProtoTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1010,8 +1009,8 @@ func (m *MapProtoTypes) XXX_Unmarshal(b []byte) error {
func (m *MapProtoTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MapProtoTypes.Marshal(b, m, deterministic)
}
-func (dst *MapProtoTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MapProtoTypes.Merge(dst, src)
+func (m *MapProtoTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MapProtoTypes.Merge(m, src)
}
func (m *MapProtoTypes) XXX_Size() int {
return xxx_messageInfo_MapProtoTypes.Size(m)
@@ -1208,7 +1207,7 @@ func (m *MapStdTypes) Reset() { *m = MapStdTypes{} }
func (m *MapStdTypes) String() string { return proto.CompactTextString(m) }
func (*MapStdTypes) ProtoMessage() {}
func (*MapStdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_1fa8d07678f7c296, []int{6}
+ return fileDescriptor_b3cdd6d81a3ac3e5, []int{6}
}
func (m *MapStdTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1216,8 +1215,8 @@ func (m *MapStdTypes) XXX_Unmarshal(b []byte) error {
func (m *MapStdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_MapStdTypes.Marshal(b, m, deterministic)
}
-func (dst *MapStdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MapStdTypes.Merge(dst, src)
+func (m *MapStdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MapStdTypes.Merge(m, src)
}
func (m *MapStdTypes) XXX_Size() int {
return xxx_messageInfo_MapStdTypes.Size(m)
@@ -1405,7 +1404,7 @@ func (m *OneofProtoTypes) Reset() { *m = OneofProtoTypes{} }
func (m *OneofProtoTypes) String() string { return proto.CompactTextString(m) }
func (*OneofProtoTypes) ProtoMessage() {}
func (*OneofProtoTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_1fa8d07678f7c296, []int{7}
+ return fileDescriptor_b3cdd6d81a3ac3e5, []int{7}
}
func (m *OneofProtoTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1413,8 +1412,8 @@ func (m *OneofProtoTypes) XXX_Unmarshal(b []byte) error {
func (m *OneofProtoTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OneofProtoTypes.Marshal(b, m, deterministic)
}
-func (dst *OneofProtoTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OneofProtoTypes.Merge(dst, src)
+func (m *OneofProtoTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OneofProtoTypes.Merge(m, src)
}
func (m *OneofProtoTypes) XXX_Size() int {
return xxx_messageInfo_OneofProtoTypes.Size(m)
@@ -1830,7 +1829,7 @@ func (m *OneofStdTypes) Reset() { *m = OneofStdTypes{} }
func (m *OneofStdTypes) String() string { return proto.CompactTextString(m) }
func (*OneofStdTypes) ProtoMessage() {}
func (*OneofStdTypes) Descriptor() ([]byte, []int) {
- return fileDescriptor_types_1fa8d07678f7c296, []int{8}
+ return fileDescriptor_b3cdd6d81a3ac3e5, []int{8}
}
func (m *OneofStdTypes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1838,8 +1837,8 @@ func (m *OneofStdTypes) XXX_Unmarshal(b []byte) error {
func (m *OneofStdTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OneofStdTypes.Marshal(b, m, deterministic)
}
-func (dst *OneofStdTypes) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OneofStdTypes.Merge(dst, src)
+func (m *OneofStdTypes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OneofStdTypes.Merge(m, src)
}
func (m *OneofStdTypes) XXX_Size() int {
return xxx_messageInfo_OneofStdTypes.Size(m)
@@ -2397,6 +2396,157 @@ func init() {
proto.RegisterType((*OneofProtoTypes)(nil), "types.OneofProtoTypes")
proto.RegisterType((*OneofStdTypes)(nil), "types.OneofStdTypes")
}
+
+func init() { proto.RegisterFile("combos/unmarshaler/types.proto", fileDescriptor_b3cdd6d81a3ac3e5) }
+
+var fileDescriptor_b3cdd6d81a3ac3e5 = []byte{
+ // 2300 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcf, 0x73, 0x1c, 0x47,
+ 0x19, 0xd5, 0x7a, 0x57, 0xb6, 0xd4, 0x92, 0x6c, 0x69, 0x1c, 0xa7, 0x06, 0x41, 0xad, 0x8d, 0x12,
+ 0x3b, 0x26, 0xa9, 0x48, 0x64, 0x46, 0x25, 0xc0, 0x90, 0x28, 0x99, 0xb2, 0xbd, 0xda, 0x8d, 0x64,
+ 0xaf, 0x57, 0x5a, 0x17, 0x04, 0x02, 0xec, 0x46, 0x63, 0x45, 0xc5, 0x6a, 0x67, 0x6b, 0x77, 0x96,
+ 0x94, 0x6e, 0xfc, 0x01, 0x1c, 0xb8, 0x41, 0x15, 0x17, 0xb8, 0x71, 0xe5, 0x40, 0x15, 0x47, 0x8e,
+ 0x39, 0xf2, 0x17, 0x40, 0x22, 0x2e, 0x5c, 0x81, 0x8b, 0x2f, 0x54, 0xa5, 0xa6, 0xbb, 0x67, 0xa6,
+ 0x7f, 0x7c, 0xdd, 0x3d, 0x3d, 0x25, 0xdd, 0x74, 0x93, 0x76, 0xbf, 0x7e, 0xf3, 0xe6, 0x9b, 0x37,
+ 0x7a, 0xfd, 0xbe, 0xd1, 0xa0, 0xfa, 0x27, 0xd1, 0x49, 0x3f, 0x9a, 0x6c, 0x4c, 0x87, 0x27, 0xbd,
+ 0xf1, 0xe4, 0xd3, 0xde, 0x20, 0x1c, 0x6f, 0xc4, 0xa7, 0xa3, 0x70, 0xb2, 0x3e, 0x1a, 0x47, 0x71,
+ 0xe4, 0xcc, 0xe2, 0x5f, 0x56, 0xdf, 0x3e, 0x3a, 0x8e, 0x3f, 0x9d, 0xf6, 0xd7, 0x3f, 0x89, 0x4e,
+ 0x36, 0x8e, 0xa2, 0xa3, 0x68, 0x03, 0x7f, 0xdb, 0x9f, 0xbe, 0xc0, 0xbf, 0xe1, 0x5f, 0xf0, 0x4f,
+ 0x64, 0xd5, 0x6a, 0xfd, 0x28, 0x8a, 0x8e, 0x06, 0x61, 0x5e, 0x75, 0x38, 0x1d, 0xf7, 0xe2, 0xe3,
+ 0x68, 0x48, 0xbf, 0xbf, 0x2d, 0x7e, 0x1f, 0x1f, 0x9f, 0x84, 0x93, 0xb8, 0x77, 0x32, 0x52, 0x01,
+ 0x7c, 0x36, 0xee, 0x8d, 0x46, 0xe1, 0x98, 0xd2, 0x5a, 0xfb, 0x7d, 0x0d, 0xa1, 0x0f, 0x87, 0xd1,
+ 0x67, 0xc3, 0x83, 0x84, 0x9e, 0xf3, 0x16, 0xaa, 0x1e, 0x4e, 0xc7, 0x6e, 0xe5, 0x4e, 0xe5, 0xfe,
+ 0x82, 0xf7, 0xb5, 0x75, 0xb2, 0x78, 0x3d, 0x5d, 0xbc, 0xfe, 0x90, 0x1e, 0xbd, 0x93, 0x54, 0x39,
+ 0x6f, 0xa2, 0x2b, 0xf1, 0xc4, 0xbd, 0x82, 0x6b, 0x57, 0xa5, 0xda, 0x83, 0x94, 0x49, 0xe7, 0x4a,
+ 0x3c, 0x71, 0xd6, 0x51, 0xf5, 0xb0, 0x3f, 0x70, 0xab, 0xb8, 0xf8, 0x1b, 0x32, 0x70, 0x34, 0xed,
+ 0x0f, 0xc2, 0xe7, 0xbd, 0xc1, 0x34, 0xec, 0x24, 0x85, 0xce, 0xdb, 0xa8, 0xfa, 0x62, 0x10, 0xbb,
+ 0x35, 0x5c, 0xff, 0x75, 0xa9, 0xfe, 0xf1, 0x20, 0xea, 0xc5, 0xb4, 0xfc, 0xc5, 0x20, 0x4e, 0xca,
+ 0x8f, 0xb7, 0x36, 0xdd, 0x59, 0x45, 0x79, 0x73, 0x18, 0x6f, 0x6d, 0xd2, 0xf2, 0xe3, 0xad, 0xcd,
+ 0x84, 0xcd, 0x74, 0x6b, 0xd3, 0xbd, 0xaa, 0x60, 0xd3, 0x65, 0xeb, 0xa7, 0x5b, 0x9b, 0x18, 0xde,
+ 0xf7, 0xdc, 0x6b, 0x6a, 0x78, 0xdf, 0x4b, 0xe1, 0x7d, 0x0f, 0xc3, 0xfb, 0x9e, 0x3b, 0xa7, 0x81,
+ 0xcf, 0xea, 0xa7, 0xb8, 0xbe, 0xd6, 0x8f, 0xa2, 0x81, 0x3b, 0xaf, 0x68, 0x65, 0x10, 0x45, 0x03,
+ 0x52, 0x8e, 0xeb, 0x12, 0xfc, 0x49, 0x3c, 0x76, 0x91, 0x02, 0x7f, 0x3f, 0x1e, 0x1f, 0x0f, 0x8f,
+ 0x28, 0xfe, 0x24, 0x1e, 0x3b, 0xef, 0xa0, 0xd9, 0xfe, 0x69, 0x1c, 0x4e, 0xdc, 0x05, 0xc5, 0x09,
+ 0x04, 0xc9, 0xb7, 0x64, 0x01, 0xa9, 0x7c, 0x50, 0xfb, 0xf7, 0x1f, 0x6f, 0x57, 0xd6, 0x7e, 0xbd,
+ 0x88, 0x50, 0x3b, 0x29, 0x22, 0xea, 0xd8, 0x41, 0x2b, 0xc3, 0xe9, 0x60, 0xd0, 0xeb, 0x0f, 0xc2,
+ 0xec, 0xea, 0x52, 0xad, 0xe8, 0xae, 0xbf, 0xbc, 0xc8, 0x79, 0x84, 0x96, 0xd3, 0x0f, 0x53, 0x4d,
+ 0x51, 0x21, 0x69, 0x44, 0x27, 0x2d, 0x71, 0x1e, 0xa2, 0xeb, 0xd9, 0x67, 0x58, 0x41, 0x85, 0x04,
+ 0x26, 0xac, 0x71, 0x3e, 0x40, 0x4b, 0xe9, 0x27, 0x58, 0x57, 0x45, 0x54, 0xc7, 0xaf, 0x60, 0x21,
+ 0xb0, 0x76, 0x8a, 0x28, 0x91, 0x5f, 0xc1, 0x9e, 0x0b, 0xd1, 0x5f, 0x21, 0x79, 0x0a, 0x6b, 0x04,
+ 0x22, 0xc5, 0x34, 0xcb, 0xaf, 0x10, 0x89, 0x14, 0x14, 0xb2, 0xb0, 0xc6, 0x79, 0x0f, 0x2d, 0xa6,
+ 0x9f, 0x04, 0xc5, 0xb4, 0xcd, 0xd5, 0xb3, 0x2c, 0x88, 0x9e, 0x0b, 0xc9, 0x5d, 0x58, 0xc3, 0xb6,
+ 0x23, 0x28, 0x7a, 0x07, 0xf0, 0x2b, 0x9c, 0xf7, 0xd0, 0x7c, 0xf6, 0x47, 0xd5, 0x5d, 0x34, 0x89,
+ 0x3d, 0xa8, 0x7d, 0xfe, 0x8f, 0xdb, 0x33, 0x9d, 0x7c, 0x89, 0xf3, 0x7d, 0x34, 0x97, 0xfe, 0xd1,
+ 0x76, 0x97, 0x0c, 0x12, 0xa7, 0xab, 0xb3, 0x05, 0xce, 0x0e, 0x5a, 0x1a, 0x46, 0xc3, 0x84, 0x10,
+ 0xd5, 0xf7, 0x75, 0xb3, 0xbe, 0x29, 0x08, 0xbf, 0xd0, 0x79, 0x84, 0x16, 0xe9, 0x07, 0x44, 0xe3,
+ 0x37, 0x8c, 0x1a, 0xa7, 0x38, 0xdc, 0x32, 0x06, 0x86, 0x68, 0x74, 0xd9, 0xa8, 0x73, 0x01, 0x86,
+ 0xc8, 0x34, 0x3f, 0x2f, 0xaa, 0xf5, 0x15, 0xb3, 0xd6, 0x85, 0xf3, 0xa2, 0x82, 0xe7, 0x08, 0xf9,
+ 0x9e, 0xeb, 0x18, 0xf5, 0x2e, 0x13, 0xf2, 0x3d, 0x81, 0x90, 0xef, 0xb9, 0x37, 0xcd, 0x9a, 0x07,
+ 0x08, 0xf9, 0x9e, 0x13, 0xa0, 0x05, 0xfa, 0x01, 0xd6, 0xfd, 0x2b, 0x26, 0xdd, 0x53, 0x14, 0x76,
+ 0x11, 0xc3, 0x86, 0x6a, 0xff, 0x96, 0x59, 0xfb, 0x02, 0x1b, 0x7a, 0x03, 0xe4, 0xed, 0x21, 0xfa,
+ 0x7f, 0xd5, 0xa8, 0x7f, 0xa1, 0x3d, 0x01, 0x63, 0x07, 0xff, 0x5d, 0x44, 0x73, 0xfb, 0xf1, 0x21,
+ 0x31, 0x83, 0x27, 0xa5, 0xcc, 0x20, 0xa8, 0xfd, 0xe6, 0x9f, 0xb7, 0x2b, 0x90, 0x25, 0x7c, 0x58,
+ 0xc2, 0x12, 0x82, 0xda, 0xef, 0x12, 0x34, 0xd9, 0x18, 0x5a, 0x65, 0x8c, 0x21, 0xa8, 0xfd, 0x21,
+ 0x41, 0x13, 0xed, 0xa1, 0x61, 0x6f, 0x0f, 0x14, 0x49, 0x30, 0x89, 0x86, 0xbd, 0x49, 0x88, 0x40,
+ 0x44, 0xf3, 0xad, 0x32, 0x56, 0x21, 0x9e, 0x1d, 0xbd, 0x7f, 0x1a, 0xf6, 0x86, 0x01, 0x90, 0xf2,
+ 0x3d, 0x91, 0x54, 0x31, 0xdb, 0x80, 0x48, 0x61, 0x0b, 0xb2, 0x34, 0x0f, 0x8a, 0xc3, 0x5b, 0x48,
+ 0xab, 0x8c, 0x85, 0x88, 0x8c, 0xe8, 0x7d, 0xd4, 0xb0, 0x37, 0x12, 0xb1, 0x4d, 0xc4, 0x4e, 0x02,
+ 0x3b, 0x3b, 0x99, 0x4b, 0x6e, 0x46, 0x7c, 0xcb, 0x30, 0x96, 0xb2, 0x6d, 0x63, 0x29, 0x18, 0x01,
+ 0xdf, 0x26, 0xb9, 0xad, 0xec, 0x96, 0xb1, 0x15, 0x0c, 0x44, 0x4f, 0x89, 0xb3, 0x96, 0xa6, 0xbd,
+ 0xb5, 0xe4, 0x58, 0xbc, 0xbd, 0x34, 0xed, 0xed, 0x45, 0x86, 0x22, 0xc2, 0xde, 0x2d, 0x63, 0x31,
+ 0xf2, 0x39, 0xd2, 0xdb, 0xa4, 0x69, 0x6f, 0x33, 0x20, 0x31, 0xdf, 0x13, 0x88, 0x15, 0xb4, 0x1a,
+ 0x98, 0x98, 0xef, 0x39, 0x8f, 0x6d, 0xed, 0x26, 0x47, 0xe2, 0x2c, 0x67, 0xb7, 0x8c, 0xe5, 0xc8,
+ 0xac, 0xe8, 0xed, 0xd2, 0xb4, 0xb7, 0x1d, 0xb9, 0x5d, 0xf8, 0xcb, 0xb5, 0xdf, 0x2e, 0xa2, 0xa5,
+ 0x4e, 0x38, 0x62, 0x62, 0x48, 0x0b, 0x39, 0x92, 0x7d, 0x4c, 0xdc, 0xca, 0x9d, 0xaa, 0x21, 0x87,
+ 0x00, 0xab, 0x9c, 0x46, 0xee, 0x62, 0xe9, 0x1d, 0x93, 0x44, 0xda, 0xaa, 0x3e, 0x89, 0xc8, 0x6b,
+ 0x9c, 0xf7, 0x11, 0x8a, 0x73, 0x32, 0x55, 0x13, 0x19, 0xea, 0xb2, 0xcc, 0x1a, 0xe7, 0x5d, 0x34,
+ 0x7f, 0x98, 0x51, 0xa8, 0x19, 0x28, 0xa4, 0xfb, 0xcc, 0x6c, 0x05, 0x90, 0x85, 0x66, 0x31, 0x86,
+ 0x5d, 0x16, 0x92, 0x36, 0x9c, 0x57, 0xcd, 0x20, 0xf0, 0x86, 0x53, 0x4a, 0x55, 0xd7, 0x30, 0x92,
+ 0x4d, 0xaa, 0x12, 0xf7, 0xac, 0x73, 0x46, 0x04, 0x70, 0xcf, 0x2a, 0x85, 0xb3, 0x79, 0x05, 0x8e,
+ 0x3a, 0x9c, 0x89, 0xdb, 0x5e, 0x64, 0x44, 0x00, 0xb7, 0xbd, 0x72, 0xc6, 0x5b, 0x50, 0xb4, 0x57,
+ 0x97, 0xf1, 0xa4, 0xcd, 0xf3, 0xa2, 0x19, 0x04, 0xde, 0x3c, 0x4b, 0x69, 0x71, 0x49, 0x7d, 0x5e,
+ 0x8a, 0xb4, 0x28, 0xee, 0xbf, 0xaf, 0x1b, 0x11, 0xc0, 0xfd, 0xb7, 0x1c, 0x3a, 0x6f, 0x68, 0x4e,
+ 0x4a, 0x15, 0x3a, 0xa5, 0x5d, 0xfc, 0xb2, 0x19, 0x04, 0xde, 0xc5, 0x8b, 0xf1, 0x75, 0x45, 0x71,
+ 0x43, 0xab, 0xe2, 0xab, 0x90, 0x02, 0x1c, 0xd3, 0x72, 0x28, 0x05, 0xc8, 0x11, 0xf8, 0xa6, 0xe2,
+ 0x74, 0x74, 0x11, 0x58, 0xca, 0x12, 0xaf, 0x98, 0x41, 0xe0, 0x2c, 0x21, 0x85, 0xe9, 0x5b, 0x8a,
+ 0x6b, 0xad, 0x0e, 0xd3, 0x72, 0x1c, 0xa9, 0x96, 0x8f, 0x23, 0xff, 0x5f, 0x44, 0x0b, 0x9d, 0x70,
+ 0x94, 0x25, 0x92, 0x76, 0x39, 0x5f, 0xa0, 0x91, 0x04, 0x72, 0x87, 0xbd, 0x32, 0xee, 0x40, 0x43,
+ 0x09, 0xe0, 0x11, 0x0f, 0x2d, 0x3d, 0x22, 0xdf, 0xfc, 0xb1, 0x3e, 0xf1, 0x81, 0x95, 0x4f, 0xe4,
+ 0xdb, 0x3f, 0xc6, 0x2b, 0x5a, 0x65, 0xbc, 0x42, 0x11, 0x8f, 0x76, 0xcb, 0x38, 0x86, 0x72, 0x2f,
+ 0xd9, 0xb0, 0x77, 0x0d, 0x38, 0x6c, 0x35, 0xed, 0xbd, 0x43, 0xb5, 0x29, 0x6d, 0xd8, 0xfb, 0x07,
+ 0x9c, 0xdb, 0x9a, 0xf6, 0x2e, 0xa2, 0xda, 0xdd, 0xb6, 0xca, 0x38, 0x89, 0x22, 0x02, 0xee, 0x96,
+ 0xf1, 0x13, 0xe5, 0x4e, 0xb9, 0x61, 0xef, 0x29, 0x70, 0xa0, 0x6c, 0xda, 0x3b, 0x8b, 0x6a, 0xcb,
+ 0xdd, 0x2a, 0xe3, 0x2e, 0x8a, 0x6c, 0xba, 0x5b, 0xc6, 0x63, 0x94, 0xdb, 0xf7, 0x87, 0xb6, 0x3e,
+ 0x03, 0x26, 0xdd, 0xc7, 0xb6, 0x6e, 0xa3, 0x08, 0x01, 0xad, 0x32, 0x8e, 0xa3, 0x48, 0xcc, 0xbb,
+ 0x65, 0x7c, 0x47, 0x19, 0x28, 0x1a, 0xf6, 0xde, 0x03, 0xe7, 0xef, 0xa6, 0xbd, 0x03, 0xa9, 0x92,
+ 0xc9, 0x9f, 0xeb, 0x68, 0x69, 0xaf, 0xc7, 0x26, 0x93, 0x1f, 0xc1, 0x33, 0xb1, 0xe4, 0x08, 0x6f,
+ 0xad, 0x93, 0xa7, 0x81, 0xdc, 0x82, 0xf5, 0x27, 0x62, 0xf5, 0xa3, 0x61, 0x3c, 0x3e, 0x85, 0xc6,
+ 0x63, 0x0d, 0x76, 0x6e, 0x40, 0x2c, 0xe8, 0x35, 0x10, 0x92, 0x87, 0x92, 0xe7, 0xd1, 0xcf, 0x81,
+ 0x39, 0x1b, 0xb1, 0xa2, 0x37, 0xb5, 0x14, 0xd3, 0x62, 0xc2, 0x10, 0x7a, 0x16, 0x93, 0x0f, 0x25,
+ 0x88, 0x2b, 0xad, 0x81, 0x78, 0x1c, 0x8e, 0x34, 0xf0, 0x6e, 0x2b, 0x9c, 0xe9, 0xbe, 0x9e, 0x1b,
+ 0x2e, 0x25, 0xcc, 0x44, 0x7f, 0xda, 0x87, 0xfd, 0xe9, 0x0d, 0x18, 0x90, 0xad, 0x64, 0x19, 0x0a,
+ 0x36, 0xb5, 0x07, 0xdb, 0xd4, 0x1b, 0x5a, 0x96, 0xb8, 0x92, 0x90, 0x14, 0xcc, 0xaa, 0x0d, 0x9a,
+ 0xd5, 0x3d, 0x1d, 0xc5, 0x1c, 0x0c, 0xcc, 0x3c, 0x7b, 0xb0, 0x67, 0xe9, 0x09, 0xe2, 0x4a, 0x81,
+ 0x20, 0xf9, 0xa3, 0xde, 0x06, 0x9d, 0x4b, 0x4b, 0x30, 0x07, 0x03, 0xa3, 0x50, 0x5b, 0x61, 0x60,
+ 0xfa, 0x0b, 0xdd, 0x65, 0x28, 0x8a, 0x36, 0xb6, 0x0f, 0xdb, 0x98, 0xf6, 0x42, 0x77, 0x25, 0x96,
+ 0x82, 0x9b, 0xed, 0xc1, 0x6e, 0x66, 0xec, 0xa3, 0xef, 0xc9, 0x7d, 0xf4, 0x3d, 0xbe, 0x8f, 0x99,
+ 0xa7, 0x99, 0xfa, 0x48, 0xc1, 0xc0, 0xe0, 0xd4, 0x56, 0x58, 0x9b, 0xb9, 0x8f, 0x29, 0x45, 0xd1,
+ 0xe0, 0xf6, 0x61, 0x83, 0x33, 0xf6, 0x91, 0x67, 0x29, 0xf8, 0x5c, 0x0b, 0xf4, 0xb9, 0x7b, 0x5a,
+ 0x92, 0x49, 0x21, 0xa1, 0xc8, 0xbb, 0xdd, 0x1e, 0xe4, 0x76, 0x77, 0x75, 0xf4, 0x32, 0x24, 0x28,
+ 0x66, 0xb5, 0x15, 0xa6, 0xa7, 0xef, 0x20, 0x29, 0x15, 0x3a, 0x48, 0xcd, 0x6a, 0x1f, 0xb6, 0x3e,
+ 0x6d, 0x07, 0x19, 0x3c, 0x38, 0x7d, 0xed, 0xc1, 0x0e, 0xa8, 0x57, 0x22, 0xae, 0x14, 0x94, 0x48,
+ 0x7c, 0xb0, 0x0d, 0xfa, 0xa0, 0x56, 0x89, 0x39, 0x18, 0x14, 0xca, 0x56, 0x7f, 0x8e, 0x5e, 0x85,
+ 0xed, 0xcc, 0x59, 0x46, 0xd5, 0x5f, 0x84, 0xa7, 0xf8, 0xe1, 0xd0, 0x6c, 0x27, 0xf9, 0xd1, 0xf9,
+ 0x36, 0x9a, 0xfd, 0x65, 0xe2, 0xad, 0x05, 0xfe, 0x7b, 0x84, 0x14, 0x3e, 0xb8, 0xf2, 0xdd, 0xca,
+ 0xea, 0x0f, 0xd1, 0xf5, 0x0b, 0x42, 0xfe, 0x29, 0xba, 0x05, 0xfa, 0x1c, 0x70, 0x80, 0x0d, 0xfe,
+ 0x00, 0x9a, 0x29, 0x21, 0x83, 0xff, 0x1c, 0x2d, 0x5d, 0x08, 0xee, 0xcf, 0xd0, 0x4d, 0xc0, 0x03,
+ 0x01, 0x74, 0x8f, 0x47, 0xd7, 0x0f, 0x05, 0xb9, 0xc6, 0x38, 0xb2, 0x27, 0x9e, 0x23, 0xfe, 0xc7,
+ 0xc8, 0x91, 0xed, 0x11, 0xc0, 0x7f, 0x87, 0xc7, 0xd7, 0x4e, 0x11, 0x19, 0xf8, 0x9f, 0xa0, 0x15,
+ 0xc9, 0x2f, 0xcf, 0x0f, 0x9d, 0x21, 0x9f, 0xfb, 0x48, 0x19, 0x78, 0x66, 0xd8, 0x07, 0x92, 0xbf,
+ 0x08, 0x74, 0x46, 0x3a, 0x5d, 0x2d, 0xbe, 0xf1, 0xd2, 0x76, 0xe1, 0x03, 0xe4, 0xd2, 0xb9, 0x18,
+ 0x7c, 0xbe, 0xfb, 0xd4, 0x7d, 0x4a, 0xf6, 0x27, 0x1d, 0x28, 0xaa, 0xba, 0x7f, 0xee, 0xe8, 0x42,
+ 0xf7, 0xd5, 0xf8, 0x85, 0xba, 0x03, 0x1c, 0x80, 0xef, 0xfe, 0xf9, 0xe3, 0xff, 0x18, 0xad, 0x48,
+ 0x3e, 0x5d, 0xe6, 0xcf, 0x71, 0x3e, 0x40, 0x65, 0xc0, 0x3f, 0x42, 0xcb, 0xa2, 0x73, 0x9f, 0x1b,
+ 0x36, 0xd3, 0x79, 0xc6, 0x73, 0xcb, 0x74, 0x86, 0x9d, 0xba, 0x82, 0x9d, 0xbf, 0x18, 0x7c, 0x46,
+ 0xf7, 0xb9, 0x23, 0x97, 0x51, 0x26, 0xfb, 0x5f, 0x7f, 0x90, 0xee, 0x2f, 0x00, 0x7d, 0xed, 0x3f,
+ 0x75, 0xb4, 0xb0, 0xd7, 0xcb, 0x67, 0xb6, 0x1f, 0xab, 0x13, 0xf3, 0xb7, 0xf2, 0xbd, 0x48, 0x5a,
+ 0xae, 0xc8, 0xcb, 0xea, 0x7f, 0x2a, 0x69, 0xca, 0xa9, 0xf9, 0x9b, 0x00, 0xac, 0x00, 0x07, 0x3e,
+ 0x74, 0xff, 0x48, 0x99, 0x9b, 0xef, 0x6b, 0x88, 0x0a, 0x69, 0x57, 0xf1, 0xef, 0x2a, 0x8f, 0xa5,
+ 0xec, 0x7c, 0x07, 0xc0, 0xe4, 0xb1, 0xa0, 0xe7, 0xfa, 0x07, 0x8a, 0xf4, 0x7c, 0x4f, 0xc7, 0x90,
+ 0xcd, 0xba, 0xe0, 0x84, 0xb7, 0x0b, 0x27, 0xe8, 0xbb, 0x10, 0xa8, 0x9c, 0x9f, 0x95, 0xa3, 0xde,
+ 0x67, 0x70, 0x86, 0xbe, 0xab, 0xe1, 0xca, 0x86, 0x5e, 0x68, 0xe8, 0xdb, 0x01, 0x73, 0xf4, 0xeb,
+ 0x6a, 0xa2, 0x0c, 0xa0, 0x6a, 0xfa, 0xfb, 0x0c, 0x4e, 0xd2, 0x3a, 0x9a, 0x6c, 0xa8, 0x84, 0xe6,
+ 0xc0, 0x1d, 0x30, 0x4d, 0x6b, 0x68, 0x32, 0x80, 0xaa, 0x81, 0xf0, 0x81, 0x22, 0x4f, 0xeb, 0x2e,
+ 0x7d, 0x57, 0x22, 0x2a, 0x66, 0xea, 0x2e, 0x9c, 0xa9, 0x35, 0x97, 0xbe, 0x0b, 0x72, 0x15, 0x52,
+ 0xf5, 0x33, 0x38, 0x55, 0x1b, 0x7a, 0x9a, 0x05, 0x4c, 0x68, 0x5a, 0xdc, 0x01, 0x93, 0xb5, 0xbe,
+ 0xa7, 0x29, 0xa0, 0x6a, 0x6c, 0x7c, 0xa0, 0xc8, 0xd6, 0xa6, 0x9e, 0xf2, 0x44, 0xc5, 0x7c, 0xdd,
+ 0x85, 0xf3, 0xb5, 0xa1, 0xa7, 0x32, 0x57, 0x21, 0x61, 0x3f, 0x01, 0x13, 0xf6, 0xeb, 0x1a, 0xaa,
+ 0x4c, 0x2a, 0x06, 0x66, 0xca, 0x4f, 0xa1, 0x94, 0xfd, 0x9a, 0x9a, 0x64, 0x8e, 0xa6, 0x18, 0x2e,
+ 0x1f, 0x28, 0x72, 0xb6, 0xae, 0x9b, 0x5c, 0x2a, 0x06, 0xc7, 0xcc, 0x5d, 0x38, 0x6b, 0x6b, 0xba,
+ 0xc9, 0x62, 0x2a, 0xe7, 0xcd, 0xcf, 0xe0, 0xb4, 0xad, 0x53, 0x28, 0x1b, 0x8f, 0xa1, 0xc9, 0x73,
+ 0x07, 0x4c, 0xdc, 0x1a, 0x85, 0x32, 0x80, 0x8a, 0x11, 0xf4, 0x65, 0xe6, 0xbe, 0xcc, 0xdc, 0x97,
+ 0x99, 0xfb, 0x32, 0x73, 0x5f, 0x66, 0xee, 0xcb, 0xcc, 0x7d, 0x99, 0xb9, 0x2f, 0x33, 0x37, 0x9c,
+ 0xb9, 0xff, 0x32, 0x8b, 0x6e, 0x3c, 0x1d, 0x86, 0xd1, 0x0b, 0xe6, 0x49, 0xf5, 0x03, 0x36, 0x18,
+ 0x1b, 0xdf, 0xda, 0xd8, 0xe1, 0x9e, 0x20, 0x7f, 0x87, 0x49, 0xab, 0x26, 0xe3, 0xdc, 0x61, 0x1f,
+ 0xee, 0xfe, 0x00, 0xcd, 0x8f, 0xc3, 0x51, 0xf1, 0x17, 0x32, 0x92, 0xc3, 0x66, 0x0b, 0x9c, 0xef,
+ 0xa1, 0xb9, 0x71, 0x38, 0x2a, 0xfa, 0x0a, 0x46, 0x72, 0xe0, 0xb4, 0x9c, 0x2e, 0x2d, 0xfa, 0xd2,
+ 0x05, 0x5d, 0x4a, 0xa2, 0x0a, 0xe1, 0x5c, 0xfc, 0x35, 0x0b, 0xca, 0x99, 0x06, 0x9d, 0xec, 0xc0,
+ 0x85, 0x5e, 0xac, 0xc8, 0x0f, 0xec, 0x7b, 0xcc, 0x81, 0x8b, 0xbd, 0x4a, 0xc1, 0x1c, 0xd8, 0xf7,
+ 0x9c, 0x2d, 0x74, 0x6d, 0x1c, 0x8e, 0x8a, 0xbd, 0x3c, 0xb1, 0x33, 0xd3, 0x49, 0x8b, 0xe9, 0x51,
+ 0x8b, 0xbf, 0x2e, 0x41, 0x8f, 0x4a, 0x77, 0xcd, 0xe4, 0x74, 0x8b, 0xbe, 0x20, 0x41, 0x4f, 0x17,
+ 0x7f, 0x10, 0xac, 0x60, 0x8d, 0x3e, 0xa5, 0x1a, 0x4d, 0xb4, 0xb6, 0xf6, 0xbf, 0x59, 0xb4, 0x84,
+ 0x75, 0x9b, 0x4d, 0x8b, 0xde, 0xb7, 0x52, 0x2d, 0x19, 0x0b, 0xf1, 0xda, 0x7d, 0xd7, 0x42, 0xbb,
+ 0x64, 0x5c, 0xc3, 0x29, 0x38, 0xb0, 0x54, 0x30, 0x49, 0x02, 0xbc, 0x8e, 0xb7, 0xad, 0x74, 0x9c,
+ 0x21, 0xe4, 0x6a, 0xde, 0xb6, 0x52, 0x33, 0x07, 0x40, 0x54, 0x19, 0x58, 0x6a, 0x9a, 0x3b, 0x0b,
+ 0xaa, 0xec, 0x6d, 0x2b, 0x65, 0x8b, 0x24, 0xf0, 0x7b, 0x72, 0x76, 0xfa, 0x96, 0x48, 0xe0, 0x7b,
+ 0xa4, 0xb8, 0xca, 0xb3, 0xf5, 0x99, 0xd6, 0x03, 0x4b, 0xad, 0x73, 0x0c, 0xa8, 0xe2, 0xb7, 0xad,
+ 0x14, 0xcf, 0xb5, 0x81, 0xe8, 0xfe, 0x06, 0xd6, 0xf8, 0x53, 0xac, 0xf1, 0x44, 0xa5, 0xc1, 0xfd,
+ 0x2f, 0xbe, 0xac, 0x57, 0x5e, 0x7e, 0x59, 0xaf, 0xfc, 0xe9, 0xac, 0x5e, 0xf9, 0xeb, 0x59, 0xbd,
+ 0xf2, 0xb7, 0xb3, 0x7a, 0xe5, 0xf3, 0xb3, 0xfa, 0xcc, 0xdf, 0xcf, 0xea, 0x95, 0x2f, 0xce, 0xea,
+ 0x95, 0x97, 0x67, 0xf5, 0x99, 0x5f, 0xfd, 0xab, 0x3e, 0xd3, 0xbf, 0x8a, 0x8f, 0xe0, 0x7f, 0x15,
+ 0x00, 0x00, 0xff, 0xff, 0xc0, 0xbf, 0x2e, 0x8e, 0x7b, 0x40, 0x00, 0x00,
+}
+
func (this *KnownTypes) Compare(that interface{}) int {
if that == nil {
if this == nil {
@@ -9057,7 +9207,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9085,7 +9235,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9094,6 +9244,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9118,7 +9271,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9127,6 +9280,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9151,7 +9307,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9160,6 +9316,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9184,7 +9343,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9193,6 +9352,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9217,7 +9379,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9226,6 +9388,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9250,7 +9415,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9259,6 +9424,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9283,7 +9451,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9292,6 +9460,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9316,7 +9487,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9325,6 +9496,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9349,7 +9523,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9358,6 +9532,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9382,7 +9559,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9391,6 +9568,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9415,7 +9595,7 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9424,6 +9604,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9443,6 +9626,9 @@ func (m *KnownTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypes
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -9471,7 +9657,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9499,7 +9685,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9508,6 +9694,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9532,7 +9721,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9541,6 +9730,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9565,7 +9757,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9574,6 +9766,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9598,7 +9793,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9607,6 +9802,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9631,7 +9829,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9640,6 +9838,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9664,7 +9865,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9673,6 +9874,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9697,7 +9901,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9706,6 +9910,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9730,7 +9937,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9739,6 +9946,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9763,7 +9973,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9772,6 +9982,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9796,7 +10009,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9805,6 +10018,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9829,7 +10045,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9838,6 +10054,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9862,7 +10081,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9871,6 +10090,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9892,7 +10114,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9901,6 +10123,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9922,7 +10147,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9931,6 +10156,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9952,7 +10180,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9961,6 +10189,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -9982,7 +10213,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -9991,6 +10222,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10012,7 +10246,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10021,6 +10255,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10042,7 +10279,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10051,6 +10288,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10072,7 +10312,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10081,6 +10321,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10102,7 +10345,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10111,6 +10354,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10132,7 +10378,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10141,6 +10387,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10162,7 +10411,7 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10171,6 +10420,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10187,6 +10439,9 @@ func (m *ProtoTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypes
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -10215,7 +10470,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10243,7 +10498,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10252,6 +10507,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10276,7 +10534,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10285,6 +10543,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10309,7 +10570,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10318,6 +10579,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10342,7 +10606,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10351,6 +10615,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10375,7 +10642,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10384,6 +10651,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10408,7 +10678,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10417,6 +10687,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10441,7 +10714,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10450,6 +10723,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10474,7 +10750,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10483,6 +10759,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10507,7 +10786,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10516,6 +10795,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10540,7 +10822,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10549,6 +10831,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10573,7 +10858,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10582,6 +10867,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10606,7 +10894,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10615,6 +10903,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10636,7 +10927,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10645,6 +10936,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10666,7 +10960,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10675,6 +10969,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10696,7 +10993,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10705,6 +11002,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10726,7 +11026,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10735,6 +11035,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10756,7 +11059,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10765,6 +11068,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10786,7 +11092,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10795,6 +11101,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10816,7 +11125,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10825,6 +11134,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10846,7 +11158,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10855,6 +11167,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10876,7 +11191,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10885,6 +11200,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10906,7 +11224,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10915,6 +11233,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -10931,6 +11252,9 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypes
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -10959,7 +11283,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10987,7 +11311,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -10996,6 +11320,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11018,7 +11345,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11027,6 +11354,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11049,7 +11379,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11058,6 +11388,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11080,7 +11413,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11089,6 +11422,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11111,7 +11447,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11120,6 +11456,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11142,7 +11481,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11151,6 +11490,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11173,7 +11515,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11182,6 +11524,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11204,7 +11549,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11213,6 +11558,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11235,7 +11583,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11244,6 +11592,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11266,7 +11617,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11275,6 +11626,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11297,7 +11651,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11306,6 +11660,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11328,7 +11685,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11337,6 +11694,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11359,7 +11719,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11368,6 +11728,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11390,7 +11753,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11399,6 +11762,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11421,7 +11787,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11430,6 +11796,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11452,7 +11821,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11461,6 +11830,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11483,7 +11855,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11492,6 +11864,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11514,7 +11889,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11523,6 +11898,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11545,7 +11923,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11554,6 +11932,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11576,7 +11957,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11585,6 +11966,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11607,7 +11991,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11616,6 +12000,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11638,7 +12025,7 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11647,6 +12034,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11664,6 +12054,9 @@ func (m *RepProtoTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypes
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -11692,7 +12085,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11720,7 +12113,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11729,6 +12122,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11751,7 +12147,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11760,6 +12156,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11782,7 +12181,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11791,6 +12190,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11813,7 +12215,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11822,6 +12224,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11844,7 +12249,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11853,6 +12258,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11875,7 +12283,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11884,6 +12292,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11906,7 +12317,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11915,6 +12326,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11937,7 +12351,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11946,6 +12360,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11968,7 +12385,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -11977,6 +12394,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -11999,7 +12419,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12008,6 +12428,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12030,7 +12453,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12039,6 +12462,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12061,7 +12487,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12070,6 +12496,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12092,7 +12521,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12101,6 +12530,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12123,7 +12555,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12132,6 +12564,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12154,7 +12589,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12163,6 +12598,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12185,7 +12623,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12194,6 +12632,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12216,7 +12657,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12225,6 +12666,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12247,7 +12691,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12256,6 +12700,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12278,7 +12725,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12287,6 +12734,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12309,7 +12759,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12318,6 +12768,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12340,7 +12793,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12349,6 +12802,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12371,7 +12827,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12380,6 +12836,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12397,6 +12856,9 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypes
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -12425,7 +12887,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12453,7 +12915,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12462,6 +12924,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12482,7 +12947,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12498,7 +12963,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12514,7 +12979,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12523,7 +12988,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -12565,7 +13030,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12574,6 +13039,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12594,7 +13062,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12610,7 +13078,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12626,7 +13094,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12635,7 +13103,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -12677,7 +13145,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12686,6 +13154,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12706,7 +13177,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12722,7 +13193,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12738,7 +13209,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12747,7 +13218,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -12789,7 +13260,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12798,6 +13269,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12818,7 +13292,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12834,7 +13308,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12850,7 +13324,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12859,7 +13333,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -12901,7 +13375,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12910,6 +13384,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -12930,7 +13407,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12946,7 +13423,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12962,7 +13439,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -12971,7 +13448,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -13013,7 +13490,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13022,6 +13499,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13042,7 +13522,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13058,7 +13538,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13074,7 +13554,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13083,7 +13563,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -13125,7 +13605,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13134,6 +13614,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13154,7 +13637,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13170,7 +13653,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13186,7 +13669,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13195,7 +13678,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -13237,7 +13720,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13246,6 +13729,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13266,7 +13752,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13282,7 +13768,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13298,7 +13784,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13307,7 +13793,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -13349,7 +13835,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13358,6 +13844,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13378,7 +13867,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13394,7 +13883,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13410,7 +13899,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13419,7 +13908,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -13461,7 +13950,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13470,6 +13959,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13490,7 +13982,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13506,7 +13998,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13522,7 +14014,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13531,7 +14023,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -13573,7 +14065,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13582,6 +14074,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13602,7 +14097,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13618,7 +14113,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13634,7 +14129,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13643,7 +14138,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -13685,7 +14180,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13694,6 +14189,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13714,7 +14212,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13730,7 +14228,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13746,7 +14244,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13755,7 +14253,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -13797,7 +14295,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13806,6 +14304,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13826,7 +14327,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13842,7 +14343,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13858,7 +14359,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13867,7 +14368,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -13909,7 +14410,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13918,6 +14419,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -13938,7 +14442,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13954,7 +14458,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13970,7 +14474,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -13979,7 +14483,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -14021,7 +14525,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14030,6 +14534,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14050,7 +14557,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14066,7 +14573,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14082,7 +14589,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14091,7 +14598,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -14133,7 +14640,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14142,6 +14649,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14162,7 +14672,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14178,7 +14688,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14194,7 +14704,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14203,7 +14713,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -14245,7 +14755,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14254,6 +14764,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14274,7 +14787,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14290,7 +14803,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14306,7 +14819,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14315,7 +14828,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -14357,7 +14870,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14366,6 +14879,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14386,7 +14902,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14402,7 +14918,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14418,7 +14934,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14427,7 +14943,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -14469,7 +14985,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14478,6 +14994,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14498,7 +15017,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14514,7 +15033,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14530,7 +15049,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14539,7 +15058,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -14581,7 +15100,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14590,6 +15109,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14610,7 +15132,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14626,7 +15148,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14642,7 +15164,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14651,7 +15173,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -14693,7 +15215,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14702,6 +15224,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14722,7 +15247,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14738,7 +15263,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14754,7 +15279,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14763,7 +15288,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -14805,7 +15330,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14814,6 +15339,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14834,7 +15362,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14850,7 +15378,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14866,7 +15394,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14875,7 +15403,7 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -14912,6 +15440,9 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypes
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -14940,7 +15471,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14968,7 +15499,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -14977,6 +15508,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -14997,7 +15531,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15013,7 +15547,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15029,7 +15563,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15038,7 +15572,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -15079,7 +15613,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15088,6 +15622,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15108,7 +15645,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15124,7 +15661,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15140,7 +15677,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15149,7 +15686,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -15190,7 +15727,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15199,6 +15736,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15219,7 +15759,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15235,7 +15775,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15251,7 +15791,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15260,7 +15800,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -15301,7 +15841,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15310,6 +15850,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15330,7 +15873,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15346,7 +15889,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15362,7 +15905,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15371,7 +15914,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -15412,7 +15955,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15421,6 +15964,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15441,7 +15987,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15457,7 +16003,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15473,7 +16019,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15482,7 +16028,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -15523,7 +16069,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15532,6 +16078,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15552,7 +16101,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15568,7 +16117,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15584,7 +16133,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15593,7 +16142,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -15634,7 +16183,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15643,6 +16192,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15663,7 +16215,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15679,7 +16231,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15695,7 +16247,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15704,7 +16256,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -15745,7 +16297,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15754,6 +16306,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15774,7 +16329,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15790,7 +16345,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15806,7 +16361,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15815,7 +16370,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -15856,7 +16411,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15865,6 +16420,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15885,7 +16443,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15901,7 +16459,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15917,7 +16475,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15926,7 +16484,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -15967,7 +16525,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -15976,6 +16534,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -15996,7 +16557,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16012,7 +16573,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16028,7 +16589,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16037,7 +16598,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -16078,7 +16639,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16087,6 +16648,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -16107,7 +16671,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16123,7 +16687,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16139,7 +16703,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16148,7 +16712,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -16189,7 +16753,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16198,6 +16762,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -16218,7 +16785,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16234,7 +16801,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16250,7 +16817,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16259,7 +16826,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -16300,7 +16867,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16309,6 +16876,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -16329,7 +16899,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16345,7 +16915,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16361,7 +16931,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16370,7 +16940,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -16411,7 +16981,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16420,6 +16990,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -16440,7 +17013,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16456,7 +17029,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16472,7 +17045,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16481,7 +17054,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -16522,7 +17095,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16531,6 +17104,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -16551,7 +17127,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16567,7 +17143,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16583,7 +17159,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16592,7 +17168,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -16633,7 +17209,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16642,6 +17218,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -16662,7 +17241,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16678,7 +17257,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16694,7 +17273,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16703,7 +17282,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -16744,7 +17323,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16753,6 +17332,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -16773,7 +17355,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16789,7 +17371,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16805,7 +17387,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16814,7 +17396,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -16855,7 +17437,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16864,6 +17446,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -16884,7 +17469,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16900,7 +17485,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16916,7 +17501,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16925,7 +17510,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -16966,7 +17551,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -16975,6 +17560,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -16995,7 +17583,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17011,7 +17599,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17027,7 +17615,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17036,7 +17624,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -17077,7 +17665,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17086,6 +17674,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17106,7 +17697,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17122,7 +17713,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17138,7 +17729,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17147,7 +17738,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -17188,7 +17779,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17197,6 +17788,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17217,7 +17811,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17233,7 +17827,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17249,7 +17843,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17258,7 +17852,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -17299,7 +17893,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17308,6 +17902,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17328,7 +17925,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17344,7 +17941,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapkey |= (int32(b) & 0x7F) << shift
+ mapkey |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17360,7 +17957,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17369,7 +17966,7 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthTypes
}
if postmsgIndex > l {
@@ -17405,6 +18002,9 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypes
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -17433,7 +18033,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17461,7 +18061,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17470,6 +18070,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17493,7 +18096,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17502,6 +18105,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17525,7 +18131,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17534,6 +18140,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17557,7 +18166,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17566,6 +18175,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17589,7 +18201,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17598,6 +18210,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17621,7 +18236,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17630,6 +18245,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17653,7 +18271,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17662,6 +18280,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17685,7 +18306,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17694,6 +18315,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17717,7 +18341,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17726,6 +18350,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17749,7 +18376,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17758,6 +18385,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17781,7 +18411,7 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17790,6 +18420,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17808,6 +18441,9 @@ func (m *OneofProtoTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypes
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -17836,7 +18472,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17864,7 +18500,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17873,6 +18509,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17896,7 +18535,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17905,6 +18544,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17928,7 +18570,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17937,6 +18579,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17960,7 +18605,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -17969,6 +18614,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -17992,7 +18640,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18001,6 +18649,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -18024,7 +18675,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18033,6 +18684,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -18056,7 +18710,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18065,6 +18719,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -18088,7 +18745,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18097,6 +18754,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -18120,7 +18780,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18129,6 +18789,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -18152,7 +18815,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18161,6 +18824,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -18184,7 +18850,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -18193,6 +18859,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTypes
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -18211,6 +18880,9 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTypes
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -18278,10 +18950,13 @@ func skipTypes(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthTypes
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthTypes
+ }
return iNdEx, nil
case 3:
for {
@@ -18310,6 +18985,9 @@ func skipTypes(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthTypes
+ }
}
return iNdEx, nil
case 4:
@@ -18328,155 +19006,3 @@ var (
ErrInvalidLengthTypes = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowTypes = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("combos/unmarshaler/types.proto", fileDescriptor_types_1fa8d07678f7c296)
-}
-
-var fileDescriptor_types_1fa8d07678f7c296 = []byte{
- // 2300 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcf, 0x73, 0x1c, 0x47,
- 0x19, 0xd5, 0x7a, 0x57, 0xb6, 0xd4, 0x92, 0x6c, 0x69, 0x1c, 0xa7, 0x06, 0x41, 0xad, 0x8d, 0x12,
- 0x3b, 0x26, 0xa9, 0x48, 0x64, 0x46, 0x25, 0xc0, 0x90, 0x28, 0x99, 0xb2, 0xbd, 0xda, 0x8d, 0x64,
- 0xaf, 0x57, 0x5a, 0x17, 0x04, 0x02, 0xec, 0x46, 0x63, 0x45, 0xc5, 0x6a, 0x67, 0x6b, 0x77, 0x96,
- 0x94, 0x6e, 0xfc, 0x01, 0x1c, 0xb8, 0x41, 0x15, 0x17, 0xb8, 0x71, 0xe5, 0x40, 0x15, 0x47, 0x8e,
- 0x39, 0xf2, 0x17, 0x40, 0x22, 0x2e, 0x5c, 0x81, 0x8b, 0x2f, 0x54, 0xa5, 0xa6, 0xbb, 0x67, 0xa6,
- 0x7f, 0x7c, 0xdd, 0x3d, 0x3d, 0x25, 0xdd, 0x74, 0x93, 0x76, 0xbf, 0x7e, 0xf3, 0xe6, 0x9b, 0x37,
- 0x7a, 0xfd, 0xbe, 0xd1, 0xa0, 0xfa, 0x27, 0xd1, 0x49, 0x3f, 0x9a, 0x6c, 0x4c, 0x87, 0x27, 0xbd,
- 0xf1, 0xe4, 0xd3, 0xde, 0x20, 0x1c, 0x6f, 0xc4, 0xa7, 0xa3, 0x70, 0xb2, 0x3e, 0x1a, 0x47, 0x71,
- 0xe4, 0xcc, 0xe2, 0x5f, 0x56, 0xdf, 0x3e, 0x3a, 0x8e, 0x3f, 0x9d, 0xf6, 0xd7, 0x3f, 0x89, 0x4e,
- 0x36, 0x8e, 0xa2, 0xa3, 0x68, 0x03, 0x7f, 0xdb, 0x9f, 0xbe, 0xc0, 0xbf, 0xe1, 0x5f, 0xf0, 0x4f,
- 0x64, 0xd5, 0x6a, 0xfd, 0x28, 0x8a, 0x8e, 0x06, 0x61, 0x5e, 0x75, 0x38, 0x1d, 0xf7, 0xe2, 0xe3,
- 0x68, 0x48, 0xbf, 0xbf, 0x2d, 0x7e, 0x1f, 0x1f, 0x9f, 0x84, 0x93, 0xb8, 0x77, 0x32, 0x52, 0x01,
- 0x7c, 0x36, 0xee, 0x8d, 0x46, 0xe1, 0x98, 0xd2, 0x5a, 0xfb, 0x7d, 0x0d, 0xa1, 0x0f, 0x87, 0xd1,
- 0x67, 0xc3, 0x83, 0x84, 0x9e, 0xf3, 0x16, 0xaa, 0x1e, 0x4e, 0xc7, 0x6e, 0xe5, 0x4e, 0xe5, 0xfe,
- 0x82, 0xf7, 0xb5, 0x75, 0xb2, 0x78, 0x3d, 0x5d, 0xbc, 0xfe, 0x90, 0x1e, 0xbd, 0x93, 0x54, 0x39,
- 0x6f, 0xa2, 0x2b, 0xf1, 0xc4, 0xbd, 0x82, 0x6b, 0x57, 0xa5, 0xda, 0x83, 0x94, 0x49, 0xe7, 0x4a,
- 0x3c, 0x71, 0xd6, 0x51, 0xf5, 0xb0, 0x3f, 0x70, 0xab, 0xb8, 0xf8, 0x1b, 0x32, 0x70, 0x34, 0xed,
- 0x0f, 0xc2, 0xe7, 0xbd, 0xc1, 0x34, 0xec, 0x24, 0x85, 0xce, 0xdb, 0xa8, 0xfa, 0x62, 0x10, 0xbb,
- 0x35, 0x5c, 0xff, 0x75, 0xa9, 0xfe, 0xf1, 0x20, 0xea, 0xc5, 0xb4, 0xfc, 0xc5, 0x20, 0x4e, 0xca,
- 0x8f, 0xb7, 0x36, 0xdd, 0x59, 0x45, 0x79, 0x73, 0x18, 0x6f, 0x6d, 0xd2, 0xf2, 0xe3, 0xad, 0xcd,
- 0x84, 0xcd, 0x74, 0x6b, 0xd3, 0xbd, 0xaa, 0x60, 0xd3, 0x65, 0xeb, 0xa7, 0x5b, 0x9b, 0x18, 0xde,
- 0xf7, 0xdc, 0x6b, 0x6a, 0x78, 0xdf, 0x4b, 0xe1, 0x7d, 0x0f, 0xc3, 0xfb, 0x9e, 0x3b, 0xa7, 0x81,
- 0xcf, 0xea, 0xa7, 0xb8, 0xbe, 0xd6, 0x8f, 0xa2, 0x81, 0x3b, 0xaf, 0x68, 0x65, 0x10, 0x45, 0x03,
- 0x52, 0x8e, 0xeb, 0x12, 0xfc, 0x49, 0x3c, 0x76, 0x91, 0x02, 0x7f, 0x3f, 0x1e, 0x1f, 0x0f, 0x8f,
- 0x28, 0xfe, 0x24, 0x1e, 0x3b, 0xef, 0xa0, 0xd9, 0xfe, 0x69, 0x1c, 0x4e, 0xdc, 0x05, 0xc5, 0x09,
- 0x04, 0xc9, 0xb7, 0x64, 0x01, 0xa9, 0x7c, 0x50, 0xfb, 0xf7, 0x1f, 0x6f, 0x57, 0xd6, 0x7e, 0xbd,
- 0x88, 0x50, 0x3b, 0x29, 0x22, 0xea, 0xd8, 0x41, 0x2b, 0xc3, 0xe9, 0x60, 0xd0, 0xeb, 0x0f, 0xc2,
- 0xec, 0xea, 0x52, 0xad, 0xe8, 0xae, 0xbf, 0xbc, 0xc8, 0x79, 0x84, 0x96, 0xd3, 0x0f, 0x53, 0x4d,
- 0x51, 0x21, 0x69, 0x44, 0x27, 0x2d, 0x71, 0x1e, 0xa2, 0xeb, 0xd9, 0x67, 0x58, 0x41, 0x85, 0x04,
- 0x26, 0xac, 0x71, 0x3e, 0x40, 0x4b, 0xe9, 0x27, 0x58, 0x57, 0x45, 0x54, 0xc7, 0xaf, 0x60, 0x21,
- 0xb0, 0x76, 0x8a, 0x28, 0x91, 0x5f, 0xc1, 0x9e, 0x0b, 0xd1, 0x5f, 0x21, 0x79, 0x0a, 0x6b, 0x04,
- 0x22, 0xc5, 0x34, 0xcb, 0xaf, 0x10, 0x89, 0x14, 0x14, 0xb2, 0xb0, 0xc6, 0x79, 0x0f, 0x2d, 0xa6,
- 0x9f, 0x04, 0xc5, 0xb4, 0xcd, 0xd5, 0xb3, 0x2c, 0x88, 0x9e, 0x0b, 0xc9, 0x5d, 0x58, 0xc3, 0xb6,
- 0x23, 0x28, 0x7a, 0x07, 0xf0, 0x2b, 0x9c, 0xf7, 0xd0, 0x7c, 0xf6, 0x47, 0xd5, 0x5d, 0x34, 0x89,
- 0x3d, 0xa8, 0x7d, 0xfe, 0x8f, 0xdb, 0x33, 0x9d, 0x7c, 0x89, 0xf3, 0x7d, 0x34, 0x97, 0xfe, 0xd1,
- 0x76, 0x97, 0x0c, 0x12, 0xa7, 0xab, 0xb3, 0x05, 0xce, 0x0e, 0x5a, 0x1a, 0x46, 0xc3, 0x84, 0x10,
- 0xd5, 0xf7, 0x75, 0xb3, 0xbe, 0x29, 0x08, 0xbf, 0xd0, 0x79, 0x84, 0x16, 0xe9, 0x07, 0x44, 0xe3,
- 0x37, 0x8c, 0x1a, 0xa7, 0x38, 0xdc, 0x32, 0x06, 0x86, 0x68, 0x74, 0xd9, 0xa8, 0x73, 0x01, 0x86,
- 0xc8, 0x34, 0x3f, 0x2f, 0xaa, 0xf5, 0x15, 0xb3, 0xd6, 0x85, 0xf3, 0xa2, 0x82, 0xe7, 0x08, 0xf9,
- 0x9e, 0xeb, 0x18, 0xf5, 0x2e, 0x13, 0xf2, 0x3d, 0x81, 0x90, 0xef, 0xb9, 0x37, 0xcd, 0x9a, 0x07,
- 0x08, 0xf9, 0x9e, 0x13, 0xa0, 0x05, 0xfa, 0x01, 0xd6, 0xfd, 0x2b, 0x26, 0xdd, 0x53, 0x14, 0x76,
- 0x11, 0xc3, 0x86, 0x6a, 0xff, 0x96, 0x59, 0xfb, 0x02, 0x1b, 0x7a, 0x03, 0xe4, 0xed, 0x21, 0xfa,
- 0x7f, 0xd5, 0xa8, 0x7f, 0xa1, 0x3d, 0x01, 0x63, 0x07, 0xff, 0x5d, 0x44, 0x73, 0xfb, 0xf1, 0x21,
- 0x31, 0x83, 0x27, 0xa5, 0xcc, 0x20, 0xa8, 0xfd, 0xe6, 0x9f, 0xb7, 0x2b, 0x90, 0x25, 0x7c, 0x58,
- 0xc2, 0x12, 0x82, 0xda, 0xef, 0x12, 0x34, 0xd9, 0x18, 0x5a, 0x65, 0x8c, 0x21, 0xa8, 0xfd, 0x21,
- 0x41, 0x13, 0xed, 0xa1, 0x61, 0x6f, 0x0f, 0x14, 0x49, 0x30, 0x89, 0x86, 0xbd, 0x49, 0x88, 0x40,
- 0x44, 0xf3, 0xad, 0x32, 0x56, 0x21, 0x9e, 0x1d, 0xbd, 0x7f, 0x1a, 0xf6, 0x86, 0x01, 0x90, 0xf2,
- 0x3d, 0x91, 0x54, 0x31, 0xdb, 0x80, 0x48, 0x61, 0x0b, 0xb2, 0x34, 0x0f, 0x8a, 0xc3, 0x5b, 0x48,
- 0xab, 0x8c, 0x85, 0x88, 0x8c, 0xe8, 0x7d, 0xd4, 0xb0, 0x37, 0x12, 0xb1, 0x4d, 0xc4, 0x4e, 0x02,
- 0x3b, 0x3b, 0x99, 0x4b, 0x6e, 0x46, 0x7c, 0xcb, 0x30, 0x96, 0xb2, 0x6d, 0x63, 0x29, 0x18, 0x01,
- 0xdf, 0x26, 0xb9, 0xad, 0xec, 0x96, 0xb1, 0x15, 0x0c, 0x44, 0x4f, 0x89, 0xb3, 0x96, 0xa6, 0xbd,
- 0xb5, 0xe4, 0x58, 0xbc, 0xbd, 0x34, 0xed, 0xed, 0x45, 0x86, 0x22, 0xc2, 0xde, 0x2d, 0x63, 0x31,
- 0xf2, 0x39, 0xd2, 0xdb, 0xa4, 0x69, 0x6f, 0x33, 0x20, 0x31, 0xdf, 0x13, 0x88, 0x15, 0xb4, 0x1a,
- 0x98, 0x98, 0xef, 0x39, 0x8f, 0x6d, 0xed, 0x26, 0x47, 0xe2, 0x2c, 0x67, 0xb7, 0x8c, 0xe5, 0xc8,
- 0xac, 0xe8, 0xed, 0xd2, 0xb4, 0xb7, 0x1d, 0xb9, 0x5d, 0xf8, 0xcb, 0xb5, 0xdf, 0x2e, 0xa2, 0xa5,
- 0x4e, 0x38, 0x62, 0x62, 0x48, 0x0b, 0x39, 0x92, 0x7d, 0x4c, 0xdc, 0xca, 0x9d, 0xaa, 0x21, 0x87,
- 0x00, 0xab, 0x9c, 0x46, 0xee, 0x62, 0xe9, 0x1d, 0x93, 0x44, 0xda, 0xaa, 0x3e, 0x89, 0xc8, 0x6b,
- 0x9c, 0xf7, 0x11, 0x8a, 0x73, 0x32, 0x55, 0x13, 0x19, 0xea, 0xb2, 0xcc, 0x1a, 0xe7, 0x5d, 0x34,
- 0x7f, 0x98, 0x51, 0xa8, 0x19, 0x28, 0xa4, 0xfb, 0xcc, 0x6c, 0x05, 0x90, 0x85, 0x66, 0x31, 0x86,
- 0x5d, 0x16, 0x92, 0x36, 0x9c, 0x57, 0xcd, 0x20, 0xf0, 0x86, 0x53, 0x4a, 0x55, 0xd7, 0x30, 0x92,
- 0x4d, 0xaa, 0x12, 0xf7, 0xac, 0x73, 0x46, 0x04, 0x70, 0xcf, 0x2a, 0x85, 0xb3, 0x79, 0x05, 0x8e,
- 0x3a, 0x9c, 0x89, 0xdb, 0x5e, 0x64, 0x44, 0x00, 0xb7, 0xbd, 0x72, 0xc6, 0x5b, 0x50, 0xb4, 0x57,
- 0x97, 0xf1, 0xa4, 0xcd, 0xf3, 0xa2, 0x19, 0x04, 0xde, 0x3c, 0x4b, 0x69, 0x71, 0x49, 0x7d, 0x5e,
- 0x8a, 0xb4, 0x28, 0xee, 0xbf, 0xaf, 0x1b, 0x11, 0xc0, 0xfd, 0xb7, 0x1c, 0x3a, 0x6f, 0x68, 0x4e,
- 0x4a, 0x15, 0x3a, 0xa5, 0x5d, 0xfc, 0xb2, 0x19, 0x04, 0xde, 0xc5, 0x8b, 0xf1, 0x75, 0x45, 0x71,
- 0x43, 0xab, 0xe2, 0xab, 0x90, 0x02, 0x1c, 0xd3, 0x72, 0x28, 0x05, 0xc8, 0x11, 0xf8, 0xa6, 0xe2,
- 0x74, 0x74, 0x11, 0x58, 0xca, 0x12, 0xaf, 0x98, 0x41, 0xe0, 0x2c, 0x21, 0x85, 0xe9, 0x5b, 0x8a,
- 0x6b, 0xad, 0x0e, 0xd3, 0x72, 0x1c, 0xa9, 0x96, 0x8f, 0x23, 0xff, 0x5f, 0x44, 0x0b, 0x9d, 0x70,
- 0x94, 0x25, 0x92, 0x76, 0x39, 0x5f, 0xa0, 0x91, 0x04, 0x72, 0x87, 0xbd, 0x32, 0xee, 0x40, 0x43,
- 0x09, 0xe0, 0x11, 0x0f, 0x2d, 0x3d, 0x22, 0xdf, 0xfc, 0xb1, 0x3e, 0xf1, 0x81, 0x95, 0x4f, 0xe4,
- 0xdb, 0x3f, 0xc6, 0x2b, 0x5a, 0x65, 0xbc, 0x42, 0x11, 0x8f, 0x76, 0xcb, 0x38, 0x86, 0x72, 0x2f,
- 0xd9, 0xb0, 0x77, 0x0d, 0x38, 0x6c, 0x35, 0xed, 0xbd, 0x43, 0xb5, 0x29, 0x6d, 0xd8, 0xfb, 0x07,
- 0x9c, 0xdb, 0x9a, 0xf6, 0x2e, 0xa2, 0xda, 0xdd, 0xb6, 0xca, 0x38, 0x89, 0x22, 0x02, 0xee, 0x96,
- 0xf1, 0x13, 0xe5, 0x4e, 0xb9, 0x61, 0xef, 0x29, 0x70, 0xa0, 0x6c, 0xda, 0x3b, 0x8b, 0x6a, 0xcb,
- 0xdd, 0x2a, 0xe3, 0x2e, 0x8a, 0x6c, 0xba, 0x5b, 0xc6, 0x63, 0x94, 0xdb, 0xf7, 0x87, 0xb6, 0x3e,
- 0x03, 0x26, 0xdd, 0xc7, 0xb6, 0x6e, 0xa3, 0x08, 0x01, 0xad, 0x32, 0x8e, 0xa3, 0x48, 0xcc, 0xbb,
- 0x65, 0x7c, 0x47, 0x19, 0x28, 0x1a, 0xf6, 0xde, 0x03, 0xe7, 0xef, 0xa6, 0xbd, 0x03, 0xa9, 0x92,
- 0xc9, 0x9f, 0xeb, 0x68, 0x69, 0xaf, 0xc7, 0x26, 0x93, 0x1f, 0xc1, 0x33, 0xb1, 0xe4, 0x08, 0x6f,
- 0xad, 0x93, 0xa7, 0x81, 0xdc, 0x82, 0xf5, 0x27, 0x62, 0xf5, 0xa3, 0x61, 0x3c, 0x3e, 0x85, 0xc6,
- 0x63, 0x0d, 0x76, 0x6e, 0x40, 0x2c, 0xe8, 0x35, 0x10, 0x92, 0x87, 0x92, 0xe7, 0xd1, 0xcf, 0x81,
- 0x39, 0x1b, 0xb1, 0xa2, 0x37, 0xb5, 0x14, 0xd3, 0x62, 0xc2, 0x10, 0x7a, 0x16, 0x93, 0x0f, 0x25,
- 0x88, 0x2b, 0xad, 0x81, 0x78, 0x1c, 0x8e, 0x34, 0xf0, 0x6e, 0x2b, 0x9c, 0xe9, 0xbe, 0x9e, 0x1b,
- 0x2e, 0x25, 0xcc, 0x44, 0x7f, 0xda, 0x87, 0xfd, 0xe9, 0x0d, 0x18, 0x90, 0xad, 0x64, 0x19, 0x0a,
- 0x36, 0xb5, 0x07, 0xdb, 0xd4, 0x1b, 0x5a, 0x96, 0xb8, 0x92, 0x90, 0x14, 0xcc, 0xaa, 0x0d, 0x9a,
- 0xd5, 0x3d, 0x1d, 0xc5, 0x1c, 0x0c, 0xcc, 0x3c, 0x7b, 0xb0, 0x67, 0xe9, 0x09, 0xe2, 0x4a, 0x81,
- 0x20, 0xf9, 0xa3, 0xde, 0x06, 0x9d, 0x4b, 0x4b, 0x30, 0x07, 0x03, 0xa3, 0x50, 0x5b, 0x61, 0x60,
- 0xfa, 0x0b, 0xdd, 0x65, 0x28, 0x8a, 0x36, 0xb6, 0x0f, 0xdb, 0x98, 0xf6, 0x42, 0x77, 0x25, 0x96,
- 0x82, 0x9b, 0xed, 0xc1, 0x6e, 0x66, 0xec, 0xa3, 0xef, 0xc9, 0x7d, 0xf4, 0x3d, 0xbe, 0x8f, 0x99,
- 0xa7, 0x99, 0xfa, 0x48, 0xc1, 0xc0, 0xe0, 0xd4, 0x56, 0x58, 0x9b, 0xb9, 0x8f, 0x29, 0x45, 0xd1,
- 0xe0, 0xf6, 0x61, 0x83, 0x33, 0xf6, 0x91, 0x67, 0x29, 0xf8, 0x5c, 0x0b, 0xf4, 0xb9, 0x7b, 0x5a,
- 0x92, 0x49, 0x21, 0xa1, 0xc8, 0xbb, 0xdd, 0x1e, 0xe4, 0x76, 0x77, 0x75, 0xf4, 0x32, 0x24, 0x28,
- 0x66, 0xb5, 0x15, 0xa6, 0xa7, 0xef, 0x20, 0x29, 0x15, 0x3a, 0x48, 0xcd, 0x6a, 0x1f, 0xb6, 0x3e,
- 0x6d, 0x07, 0x19, 0x3c, 0x38, 0x7d, 0xed, 0xc1, 0x0e, 0xa8, 0x57, 0x22, 0xae, 0x14, 0x94, 0x48,
- 0x7c, 0xb0, 0x0d, 0xfa, 0xa0, 0x56, 0x89, 0x39, 0x18, 0x14, 0xca, 0x56, 0x7f, 0x8e, 0x5e, 0x85,
- 0xed, 0xcc, 0x59, 0x46, 0xd5, 0x5f, 0x84, 0xa7, 0xf8, 0xe1, 0xd0, 0x6c, 0x27, 0xf9, 0xd1, 0xf9,
- 0x36, 0x9a, 0xfd, 0x65, 0xe2, 0xad, 0x05, 0xfe, 0x7b, 0x84, 0x14, 0x3e, 0xb8, 0xf2, 0xdd, 0xca,
- 0xea, 0x0f, 0xd1, 0xf5, 0x0b, 0x42, 0xfe, 0x29, 0xba, 0x05, 0xfa, 0x1c, 0x70, 0x80, 0x0d, 0xfe,
- 0x00, 0x9a, 0x29, 0x21, 0x83, 0xff, 0x1c, 0x2d, 0x5d, 0x08, 0xee, 0xcf, 0xd0, 0x4d, 0xc0, 0x03,
- 0x01, 0x74, 0x8f, 0x47, 0xd7, 0x0f, 0x05, 0xb9, 0xc6, 0x38, 0xb2, 0x27, 0x9e, 0x23, 0xfe, 0xc7,
- 0xc8, 0x91, 0xed, 0x11, 0xc0, 0x7f, 0x87, 0xc7, 0xd7, 0x4e, 0x11, 0x19, 0xf8, 0x9f, 0xa0, 0x15,
- 0xc9, 0x2f, 0xcf, 0x0f, 0x9d, 0x21, 0x9f, 0xfb, 0x48, 0x19, 0x78, 0x66, 0xd8, 0x07, 0x92, 0xbf,
- 0x08, 0x74, 0x46, 0x3a, 0x5d, 0x2d, 0xbe, 0xf1, 0xd2, 0x76, 0xe1, 0x03, 0xe4, 0xd2, 0xb9, 0x18,
- 0x7c, 0xbe, 0xfb, 0xd4, 0x7d, 0x4a, 0xf6, 0x27, 0x1d, 0x28, 0xaa, 0xba, 0x7f, 0xee, 0xe8, 0x42,
- 0xf7, 0xd5, 0xf8, 0x85, 0xba, 0x03, 0x1c, 0x80, 0xef, 0xfe, 0xf9, 0xe3, 0xff, 0x18, 0xad, 0x48,
- 0x3e, 0x5d, 0xe6, 0xcf, 0x71, 0x3e, 0x40, 0x65, 0xc0, 0x3f, 0x42, 0xcb, 0xa2, 0x73, 0x9f, 0x1b,
- 0x36, 0xd3, 0x79, 0xc6, 0x73, 0xcb, 0x74, 0x86, 0x9d, 0xba, 0x82, 0x9d, 0xbf, 0x18, 0x7c, 0x46,
- 0xf7, 0xb9, 0x23, 0x97, 0x51, 0x26, 0xfb, 0x5f, 0x7f, 0x90, 0xee, 0x2f, 0x00, 0x7d, 0xed, 0x3f,
- 0x75, 0xb4, 0xb0, 0xd7, 0xcb, 0x67, 0xb6, 0x1f, 0xab, 0x13, 0xf3, 0xb7, 0xf2, 0xbd, 0x48, 0x5a,
- 0xae, 0xc8, 0xcb, 0xea, 0x7f, 0x2a, 0x69, 0xca, 0xa9, 0xf9, 0x9b, 0x00, 0xac, 0x00, 0x07, 0x3e,
- 0x74, 0xff, 0x48, 0x99, 0x9b, 0xef, 0x6b, 0x88, 0x0a, 0x69, 0x57, 0xf1, 0xef, 0x2a, 0x8f, 0xa5,
- 0xec, 0x7c, 0x07, 0xc0, 0xe4, 0xb1, 0xa0, 0xe7, 0xfa, 0x07, 0x8a, 0xf4, 0x7c, 0x4f, 0xc7, 0x90,
- 0xcd, 0xba, 0xe0, 0x84, 0xb7, 0x0b, 0x27, 0xe8, 0xbb, 0x10, 0xa8, 0x9c, 0x9f, 0x95, 0xa3, 0xde,
- 0x67, 0x70, 0x86, 0xbe, 0xab, 0xe1, 0xca, 0x86, 0x5e, 0x68, 0xe8, 0xdb, 0x01, 0x73, 0xf4, 0xeb,
- 0x6a, 0xa2, 0x0c, 0xa0, 0x6a, 0xfa, 0xfb, 0x0c, 0x4e, 0xd2, 0x3a, 0x9a, 0x6c, 0xa8, 0x84, 0xe6,
- 0xc0, 0x1d, 0x30, 0x4d, 0x6b, 0x68, 0x32, 0x80, 0xaa, 0x81, 0xf0, 0x81, 0x22, 0x4f, 0xeb, 0x2e,
- 0x7d, 0x57, 0x22, 0x2a, 0x66, 0xea, 0x2e, 0x9c, 0xa9, 0x35, 0x97, 0xbe, 0x0b, 0x72, 0x15, 0x52,
- 0xf5, 0x33, 0x38, 0x55, 0x1b, 0x7a, 0x9a, 0x05, 0x4c, 0x68, 0x5a, 0xdc, 0x01, 0x93, 0xb5, 0xbe,
- 0xa7, 0x29, 0xa0, 0x6a, 0x6c, 0x7c, 0xa0, 0xc8, 0xd6, 0xa6, 0x9e, 0xf2, 0x44, 0xc5, 0x7c, 0xdd,
- 0x85, 0xf3, 0xb5, 0xa1, 0xa7, 0x32, 0x57, 0x21, 0x61, 0x3f, 0x01, 0x13, 0xf6, 0xeb, 0x1a, 0xaa,
- 0x4c, 0x2a, 0x06, 0x66, 0xca, 0x4f, 0xa1, 0x94, 0xfd, 0x9a, 0x9a, 0x64, 0x8e, 0xa6, 0x18, 0x2e,
- 0x1f, 0x28, 0x72, 0xb6, 0xae, 0x9b, 0x5c, 0x2a, 0x06, 0xc7, 0xcc, 0x5d, 0x38, 0x6b, 0x6b, 0xba,
- 0xc9, 0x62, 0x2a, 0xe7, 0xcd, 0xcf, 0xe0, 0xb4, 0xad, 0x53, 0x28, 0x1b, 0x8f, 0xa1, 0xc9, 0x73,
- 0x07, 0x4c, 0xdc, 0x1a, 0x85, 0x32, 0x80, 0x8a, 0x11, 0xf4, 0x65, 0xe6, 0xbe, 0xcc, 0xdc, 0x97,
- 0x99, 0xfb, 0x32, 0x73, 0x5f, 0x66, 0xee, 0xcb, 0xcc, 0x7d, 0x99, 0xb9, 0x2f, 0x33, 0x37, 0x9c,
- 0xb9, 0xff, 0x32, 0x8b, 0x6e, 0x3c, 0x1d, 0x86, 0xd1, 0x0b, 0xe6, 0x49, 0xf5, 0x03, 0x36, 0x18,
- 0x1b, 0xdf, 0xda, 0xd8, 0xe1, 0x9e, 0x20, 0x7f, 0x87, 0x49, 0xab, 0x26, 0xe3, 0xdc, 0x61, 0x1f,
- 0xee, 0xfe, 0x00, 0xcd, 0x8f, 0xc3, 0x51, 0xf1, 0x17, 0x32, 0x92, 0xc3, 0x66, 0x0b, 0x9c, 0xef,
- 0xa1, 0xb9, 0x71, 0x38, 0x2a, 0xfa, 0x0a, 0x46, 0x72, 0xe0, 0xb4, 0x9c, 0x2e, 0x2d, 0xfa, 0xd2,
- 0x05, 0x5d, 0x4a, 0xa2, 0x0a, 0xe1, 0x5c, 0xfc, 0x35, 0x0b, 0xca, 0x99, 0x06, 0x9d, 0xec, 0xc0,
- 0x85, 0x5e, 0xac, 0xc8, 0x0f, 0xec, 0x7b, 0xcc, 0x81, 0x8b, 0xbd, 0x4a, 0xc1, 0x1c, 0xd8, 0xf7,
- 0x9c, 0x2d, 0x74, 0x6d, 0x1c, 0x8e, 0x8a, 0xbd, 0x3c, 0xb1, 0x33, 0xd3, 0x49, 0x8b, 0xe9, 0x51,
- 0x8b, 0xbf, 0x2e, 0x41, 0x8f, 0x4a, 0x77, 0xcd, 0xe4, 0x74, 0x8b, 0xbe, 0x20, 0x41, 0x4f, 0x17,
- 0x7f, 0x10, 0xac, 0x60, 0x8d, 0x3e, 0xa5, 0x1a, 0x4d, 0xb4, 0xb6, 0xf6, 0xbf, 0x59, 0xb4, 0x84,
- 0x75, 0x9b, 0x4d, 0x8b, 0xde, 0xb7, 0x52, 0x2d, 0x19, 0x0b, 0xf1, 0xda, 0x7d, 0xd7, 0x42, 0xbb,
- 0x64, 0x5c, 0xc3, 0x29, 0x38, 0xb0, 0x54, 0x30, 0x49, 0x02, 0xbc, 0x8e, 0xb7, 0xad, 0x74, 0x9c,
- 0x21, 0xe4, 0x6a, 0xde, 0xb6, 0x52, 0x33, 0x07, 0x40, 0x54, 0x19, 0x58, 0x6a, 0x9a, 0x3b, 0x0b,
- 0xaa, 0xec, 0x6d, 0x2b, 0x65, 0x8b, 0x24, 0xf0, 0x7b, 0x72, 0x76, 0xfa, 0x96, 0x48, 0xe0, 0x7b,
- 0xa4, 0xb8, 0xca, 0xb3, 0xf5, 0x99, 0xd6, 0x03, 0x4b, 0xad, 0x73, 0x0c, 0xa8, 0xe2, 0xb7, 0xad,
- 0x14, 0xcf, 0xb5, 0x81, 0xe8, 0xfe, 0x06, 0xd6, 0xf8, 0x53, 0xac, 0xf1, 0x44, 0xa5, 0xc1, 0xfd,
- 0x2f, 0xbe, 0xac, 0x57, 0x5e, 0x7e, 0x59, 0xaf, 0xfc, 0xe9, 0xac, 0x5e, 0xf9, 0xeb, 0x59, 0xbd,
- 0xf2, 0xb7, 0xb3, 0x7a, 0xe5, 0xf3, 0xb3, 0xfa, 0xcc, 0xdf, 0xcf, 0xea, 0x95, 0x2f, 0xce, 0xea,
- 0x95, 0x97, 0x67, 0xf5, 0x99, 0x5f, 0xfd, 0xab, 0x3e, 0xd3, 0xbf, 0x8a, 0x8f, 0xe0, 0x7f, 0x15,
- 0x00, 0x00, 0xff, 0xff, 0xc0, 0xbf, 0x2e, 0x8e, 0x7b, 0x40, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.pb.go b/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.pb.go
index 14663633d7..8db3bef9a9 100644
--- a/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.pb.go
@@ -3,19 +3,18 @@
package unmarshalmerge
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
-import encoding_binary "encoding/binary"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+import (
+ bytes "bytes"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -39,7 +38,7 @@ type Big struct {
func (m *Big) Reset() { *m = Big{} }
func (*Big) ProtoMessage() {}
func (*Big) Descriptor() ([]byte, []int) {
- return fileDescriptor_unmarshalmerge_5567ee50c42503cc, []int{0}
+ return fileDescriptor_701a7743bfe9c603, []int{0}
}
func (m *Big) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -47,8 +46,8 @@ func (m *Big) XXX_Unmarshal(b []byte) error {
func (m *Big) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Big.Marshal(b, m, deterministic)
}
-func (dst *Big) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Big.Merge(dst, src)
+func (m *Big) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Big.Merge(m, src)
}
func (m *Big) XXX_Size() int {
return xxx_messageInfo_Big.Size(m)
@@ -84,7 +83,7 @@ type BigUnsafe struct {
func (m *BigUnsafe) Reset() { *m = BigUnsafe{} }
func (*BigUnsafe) ProtoMessage() {}
func (*BigUnsafe) Descriptor() ([]byte, []int) {
- return fileDescriptor_unmarshalmerge_5567ee50c42503cc, []int{1}
+ return fileDescriptor_701a7743bfe9c603, []int{1}
}
func (m *BigUnsafe) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BigUnsafe.Unmarshal(m, b)
@@ -92,8 +91,8 @@ func (m *BigUnsafe) XXX_Unmarshal(b []byte) error {
func (m *BigUnsafe) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BigUnsafe.Marshal(b, m, deterministic)
}
-func (dst *BigUnsafe) XXX_Merge(src proto.Message) {
- xxx_messageInfo_BigUnsafe.Merge(dst, src)
+func (m *BigUnsafe) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BigUnsafe.Merge(m, src)
}
func (m *BigUnsafe) XXX_Size() int {
return xxx_messageInfo_BigUnsafe.Size(m)
@@ -128,7 +127,7 @@ type Sub struct {
func (m *Sub) Reset() { *m = Sub{} }
func (*Sub) ProtoMessage() {}
func (*Sub) Descriptor() ([]byte, []int) {
- return fileDescriptor_unmarshalmerge_5567ee50c42503cc, []int{2}
+ return fileDescriptor_701a7743bfe9c603, []int{2}
}
func (m *Sub) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -136,8 +135,8 @@ func (m *Sub) XXX_Unmarshal(b []byte) error {
func (m *Sub) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Sub.Marshal(b, m, deterministic)
}
-func (dst *Sub) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Sub.Merge(dst, src)
+func (m *Sub) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Sub.Merge(m, src)
}
func (m *Sub) XXX_Size() int {
return xxx_messageInfo_Sub.Size(m)
@@ -175,7 +174,7 @@ type IntMerge struct {
func (m *IntMerge) Reset() { *m = IntMerge{} }
func (*IntMerge) ProtoMessage() {}
func (*IntMerge) Descriptor() ([]byte, []int) {
- return fileDescriptor_unmarshalmerge_5567ee50c42503cc, []int{3}
+ return fileDescriptor_701a7743bfe9c603, []int{3}
}
func (m *IntMerge) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -183,8 +182,8 @@ func (m *IntMerge) XXX_Unmarshal(b []byte) error {
func (m *IntMerge) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_IntMerge.Marshal(b, m, deterministic)
}
-func (dst *IntMerge) XXX_Merge(src proto.Message) {
- xxx_messageInfo_IntMerge.Merge(dst, src)
+func (m *IntMerge) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_IntMerge.Merge(m, src)
}
func (m *IntMerge) XXX_Size() int {
return xxx_messageInfo_IntMerge.Size(m)
@@ -278,6 +277,38 @@ func init() {
proto.RegisterType((*Sub)(nil), "unmarshalmerge.Sub")
proto.RegisterType((*IntMerge)(nil), "unmarshalmerge.IntMerge")
}
+
+func init() { proto.RegisterFile("unmarshalmerge.proto", fileDescriptor_701a7743bfe9c603) }
+
+var fileDescriptor_701a7743bfe9c603 = []byte{
+ // 386 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0xd0, 0xcd, 0x8a, 0x9b, 0x50,
+ 0x14, 0x07, 0xf0, 0x1c, 0x35, 0xc6, 0xdc, 0xd0, 0xaf, 0xdb, 0x52, 0x2e, 0x21, 0xdc, 0x5c, 0x02,
+ 0x85, 0xdb, 0x45, 0x13, 0x50, 0x71, 0xd1, 0xa5, 0x8b, 0x42, 0x0a, 0x2d, 0x25, 0x92, 0x07, 0x88,
+ 0xad, 0x31, 0x42, 0xd4, 0x62, 0x14, 0xba, 0xec, 0x23, 0xf4, 0x15, 0xba, 0x9b, 0x47, 0x98, 0x65,
+ 0x96, 0xf3, 0x08, 0xb3, 0x0a, 0xa3, 0x4f, 0x30, 0xcb, 0x59, 0x0e, 0x5e, 0x6f, 0x3e, 0x9c, 0xed,
+ 0xec, 0x3c, 0xff, 0xdf, 0xdf, 0x73, 0xe0, 0xa2, 0x77, 0x45, 0x12, 0xaf, 0xb2, 0xdd, 0x66, 0xb5,
+ 0x8d, 0x83, 0x2c, 0x0c, 0xa6, 0xbf, 0xb3, 0x34, 0x4f, 0xf1, 0xcb, 0x76, 0x3a, 0xfc, 0x14, 0x46,
+ 0xf9, 0xa6, 0xf0, 0xa7, 0x3f, 0xd3, 0x78, 0x16, 0xa6, 0x61, 0x3a, 0x13, 0x35, 0xbf, 0x58, 0x8b,
+ 0x49, 0x0c, 0xe2, 0xab, 0xf9, 0x7d, 0xf2, 0x15, 0xa9, 0x6e, 0x14, 0xe2, 0x0f, 0x48, 0xf5, 0x0a,
+ 0x9f, 0x00, 0x03, 0x3e, 0x30, 0xdf, 0x4e, 0x9f, 0x5c, 0xf2, 0x0a, 0x7f, 0x51, 0x3b, 0x7e, 0x8f,
+ 0xf4, 0xef, 0x45, 0xec, 0x07, 0x19, 0x51, 0x18, 0x70, 0x75, 0x21, 0xa7, 0xcf, 0xda, 0xbf, 0xff,
+ 0x63, 0x98, 0xfc, 0x40, 0x7d, 0x37, 0x0a, 0x97, 0xc9, 0x6e, 0xb5, 0x0e, 0x9e, 0xbd, 0x71, 0x5f,
+ 0x6f, 0xfc, 0x28, 0x96, 0xe0, 0x11, 0xea, 0x7b, 0x85, 0x2f, 0x7b, 0x20, 0x7a, 0xe7, 0x40, 0x1e,
+ 0x3f, 0x28, 0xc8, 0x98, 0x27, 0xf9, 0xb7, 0x7a, 0x3d, 0x1e, 0xa2, 0xee, 0x3c, 0xc9, 0x1d, 0x9b,
+ 0x00, 0x53, 0xb8, 0xea, 0x6a, 0x37, 0x87, 0x71, 0x67, 0xd1, 0x44, 0xd2, 0x2c, 0x53, 0x1c, 0xec,
+ 0x5e, 0x98, 0x65, 0xe2, 0x11, 0xd2, 0xbd, 0x48, 0xa0, 0xca, 0x14, 0xfe, 0x46, 0xa2, 0xcc, 0x8e,
+ 0xea, 0xd8, 0x44, 0x63, 0xc0, 0xf1, 0xa5, 0x3a, 0x76, 0xad, 0xcb, 0x46, 0xbb, 0x0c, 0xb8, 0x76,
+ 0xd4, 0x65, 0x4b, 0x2d, 0x93, 0xe8, 0x4c, 0xe1, 0x2f, 0x2e, 0xd5, 0x32, 0x31, 0x45, 0xbd, 0x2f,
+ 0xd1, 0x9f, 0xe0, 0x97, 0x63, 0x93, 0x1e, 0x03, 0xae, 0x4b, 0x3e, 0x86, 0x27, 0xb7, 0x4c, 0x62,
+ 0x30, 0xe0, 0xbd, 0x96, 0x5b, 0x26, 0x66, 0xc8, 0xf0, 0xd6, 0xb2, 0xd0, 0x67, 0x0a, 0x7f, 0x25,
+ 0x0b, 0xa7, 0xf4, 0xdc, 0x70, 0x6c, 0x82, 0x18, 0xf0, 0xd7, 0xed, 0x86, 0x63, 0x63, 0x82, 0x34,
+ 0x37, 0x4d, 0xb7, 0x64, 0xc0, 0x80, 0x1b, 0x52, 0x45, 0xd2, 0x3c, 0xb0, 0xcb, 0x6e, 0x4b, 0xda,
+ 0xb9, 0x2b, 0x29, 0xdc, 0x97, 0x14, 0x1e, 0x4a, 0x0a, 0x7f, 0x2b, 0x0a, 0x57, 0x15, 0x85, 0xeb,
+ 0x8a, 0xc2, 0xbe, 0xa2, 0xf0, 0x18, 0x00, 0x00, 0xff, 0xff, 0xb2, 0x4e, 0xc7, 0x4e, 0xa1, 0x02,
+ 0x00, 0x00,
+}
+
func (this *Big) VerboseEqual(that interface{}) error {
if that == nil {
if this == nil {
@@ -947,7 +978,7 @@ func (m *Big) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -975,7 +1006,7 @@ func (m *Big) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -984,6 +1015,9 @@ func (m *Big) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnmarshalmerge
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnmarshalmerge
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1008,7 +1042,7 @@ func (m *Big) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1023,6 +1057,9 @@ func (m *Big) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthUnmarshalmerge
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthUnmarshalmerge
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1051,7 +1088,7 @@ func (m *BigUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1079,7 +1116,7 @@ func (m *BigUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1088,6 +1125,9 @@ func (m *BigUnsafe) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnmarshalmerge
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnmarshalmerge
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1112,7 +1152,7 @@ func (m *BigUnsafe) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1127,6 +1167,9 @@ func (m *BigUnsafe) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthUnmarshalmerge
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthUnmarshalmerge
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1155,7 +1198,7 @@ func (m *Sub) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1183,7 +1226,7 @@ func (m *Sub) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1198,6 +1241,9 @@ func (m *Sub) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthUnmarshalmerge
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthUnmarshalmerge
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1227,7 +1273,7 @@ func (m *IntMerge) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1255,7 +1301,7 @@ func (m *IntMerge) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Int64 |= (int64(b) & 0x7F) << shift
+ m.Int64 |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1275,7 +1321,7 @@ func (m *IntMerge) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Int32 |= (int32(b) & 0x7F) << shift
+ m.Int32 |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1294,7 +1340,7 @@ func (m *IntMerge) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1316,7 +1362,7 @@ func (m *IntMerge) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint64(b) & 0x7F) << shift
+ v |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1337,7 +1383,7 @@ func (m *IntMerge) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Uint64 |= (uint64(b) & 0x7F) << shift
+ m.Uint64 |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1356,7 +1402,7 @@ func (m *IntMerge) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Uint32 |= (uint32(b) & 0x7F) << shift
+ m.Uint32 |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1417,7 +1463,7 @@ func (m *IntMerge) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1432,6 +1478,9 @@ func (m *IntMerge) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthUnmarshalmerge
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthUnmarshalmerge
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1511,10 +1560,13 @@ func skipUnmarshalmerge(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthUnmarshalmerge
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthUnmarshalmerge
+ }
return iNdEx, nil
case 3:
for {
@@ -1543,6 +1595,9 @@ func skipUnmarshalmerge(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthUnmarshalmerge
+ }
}
return iNdEx, nil
case 4:
@@ -1561,36 +1616,3 @@ var (
ErrInvalidLengthUnmarshalmerge = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowUnmarshalmerge = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("unmarshalmerge.proto", fileDescriptor_unmarshalmerge_5567ee50c42503cc)
-}
-
-var fileDescriptor_unmarshalmerge_5567ee50c42503cc = []byte{
- // 386 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0xd0, 0xcd, 0x8a, 0x9b, 0x50,
- 0x14, 0x07, 0xf0, 0x1c, 0x35, 0xc6, 0xdc, 0xd0, 0xaf, 0xdb, 0x52, 0x2e, 0x21, 0xdc, 0x5c, 0x02,
- 0x85, 0xdb, 0x45, 0x13, 0x50, 0x71, 0xd1, 0xa5, 0x8b, 0x42, 0x0a, 0x2d, 0x25, 0x92, 0x07, 0x88,
- 0xad, 0x31, 0x42, 0xd4, 0x62, 0x14, 0xba, 0xec, 0x23, 0xf4, 0x15, 0xba, 0x9b, 0x47, 0x98, 0x65,
- 0x96, 0xf3, 0x08, 0xb3, 0x0a, 0xa3, 0x4f, 0x30, 0xcb, 0x59, 0x0e, 0x5e, 0x6f, 0x3e, 0x9c, 0xed,
- 0xec, 0x3c, 0xff, 0xdf, 0xdf, 0x73, 0xe0, 0xa2, 0x77, 0x45, 0x12, 0xaf, 0xb2, 0xdd, 0x66, 0xb5,
- 0x8d, 0x83, 0x2c, 0x0c, 0xa6, 0xbf, 0xb3, 0x34, 0x4f, 0xf1, 0xcb, 0x76, 0x3a, 0xfc, 0x14, 0x46,
- 0xf9, 0xa6, 0xf0, 0xa7, 0x3f, 0xd3, 0x78, 0x16, 0xa6, 0x61, 0x3a, 0x13, 0x35, 0xbf, 0x58, 0x8b,
- 0x49, 0x0c, 0xe2, 0xab, 0xf9, 0x7d, 0xf2, 0x15, 0xa9, 0x6e, 0x14, 0xe2, 0x0f, 0x48, 0xf5, 0x0a,
- 0x9f, 0x00, 0x03, 0x3e, 0x30, 0xdf, 0x4e, 0x9f, 0x5c, 0xf2, 0x0a, 0x7f, 0x51, 0x3b, 0x7e, 0x8f,
- 0xf4, 0xef, 0x45, 0xec, 0x07, 0x19, 0x51, 0x18, 0x70, 0x75, 0x21, 0xa7, 0xcf, 0xda, 0xbf, 0xff,
- 0x63, 0x98, 0xfc, 0x40, 0x7d, 0x37, 0x0a, 0x97, 0xc9, 0x6e, 0xb5, 0x0e, 0x9e, 0xbd, 0x71, 0x5f,
- 0x6f, 0xfc, 0x28, 0x96, 0xe0, 0x11, 0xea, 0x7b, 0x85, 0x2f, 0x7b, 0x20, 0x7a, 0xe7, 0x40, 0x1e,
- 0x3f, 0x28, 0xc8, 0x98, 0x27, 0xf9, 0xb7, 0x7a, 0x3d, 0x1e, 0xa2, 0xee, 0x3c, 0xc9, 0x1d, 0x9b,
- 0x00, 0x53, 0xb8, 0xea, 0x6a, 0x37, 0x87, 0x71, 0x67, 0xd1, 0x44, 0xd2, 0x2c, 0x53, 0x1c, 0xec,
- 0x5e, 0x98, 0x65, 0xe2, 0x11, 0xd2, 0xbd, 0x48, 0xa0, 0xca, 0x14, 0xfe, 0x46, 0xa2, 0xcc, 0x8e,
- 0xea, 0xd8, 0x44, 0x63, 0xc0, 0xf1, 0xa5, 0x3a, 0x76, 0xad, 0xcb, 0x46, 0xbb, 0x0c, 0xb8, 0x76,
- 0xd4, 0x65, 0x4b, 0x2d, 0x93, 0xe8, 0x4c, 0xe1, 0x2f, 0x2e, 0xd5, 0x32, 0x31, 0x45, 0xbd, 0x2f,
- 0xd1, 0x9f, 0xe0, 0x97, 0x63, 0x93, 0x1e, 0x03, 0xae, 0x4b, 0x3e, 0x86, 0x27, 0xb7, 0x4c, 0x62,
- 0x30, 0xe0, 0xbd, 0x96, 0x5b, 0x26, 0x66, 0xc8, 0xf0, 0xd6, 0xb2, 0xd0, 0x67, 0x0a, 0x7f, 0x25,
- 0x0b, 0xa7, 0xf4, 0xdc, 0x70, 0x6c, 0x82, 0x18, 0xf0, 0xd7, 0xed, 0x86, 0x63, 0x63, 0x82, 0x34,
- 0x37, 0x4d, 0xb7, 0x64, 0xc0, 0x80, 0x1b, 0x52, 0x45, 0xd2, 0x3c, 0xb0, 0xcb, 0x6e, 0x4b, 0xda,
- 0xb9, 0x2b, 0x29, 0xdc, 0x97, 0x14, 0x1e, 0x4a, 0x0a, 0x7f, 0x2b, 0x0a, 0x57, 0x15, 0x85, 0xeb,
- 0x8a, 0xc2, 0xbe, 0xa2, 0xf0, 0x18, 0x00, 0x00, 0xff, 0xff, 0xb2, 0x4e, 0xc7, 0x4e, 0xa1, 0x02,
- 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognized.pb.go b/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognized.pb.go
index 373139d0b3..5c109621dd 100644
--- a/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognized.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognized.pb.go
@@ -3,23 +3,21 @@
package unrecognized
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-
-import encoding_binary "encoding/binary"
-
-import io "io"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -42,7 +40,7 @@ type A struct {
func (m *A) Reset() { *m = A{} }
func (*A) ProtoMessage() {}
func (*A) Descriptor() ([]byte, []int) {
- return fileDescriptor_unrecognized_05a73f113b0c8d63, []int{0}
+ return fileDescriptor_5318ad6f723bf9f6, []int{0}
}
func (m *A) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -59,8 +57,8 @@ func (m *A) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *A) XXX_Merge(src proto.Message) {
- xxx_messageInfo_A.Merge(dst, src)
+func (m *A) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_A.Merge(m, src)
}
func (m *A) XXX_Size() int {
return m.Size()
@@ -83,7 +81,7 @@ type B struct {
func (m *B) Reset() { *m = B{} }
func (*B) ProtoMessage() {}
func (*B) Descriptor() ([]byte, []int) {
- return fileDescriptor_unrecognized_05a73f113b0c8d63, []int{1}
+ return fileDescriptor_5318ad6f723bf9f6, []int{1}
}
func (m *B) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -100,8 +98,8 @@ func (m *B) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *B) XXX_Merge(src proto.Message) {
- xxx_messageInfo_B.Merge(dst, src)
+func (m *B) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_B.Merge(m, src)
}
func (m *B) XXX_Size() int {
return m.Size()
@@ -122,7 +120,7 @@ type D struct {
func (m *D) Reset() { *m = D{} }
func (*D) ProtoMessage() {}
func (*D) Descriptor() ([]byte, []int) {
- return fileDescriptor_unrecognized_05a73f113b0c8d63, []int{2}
+ return fileDescriptor_5318ad6f723bf9f6, []int{2}
}
func (m *D) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -139,8 +137,8 @@ func (m *D) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *D) XXX_Merge(src proto.Message) {
- xxx_messageInfo_D.Merge(dst, src)
+func (m *D) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_D.Merge(m, src)
}
func (m *D) XXX_Size() int {
return m.Size()
@@ -166,7 +164,7 @@ type C struct {
func (m *C) Reset() { *m = C{} }
func (*C) ProtoMessage() {}
func (*C) Descriptor() ([]byte, []int) {
- return fileDescriptor_unrecognized_05a73f113b0c8d63, []int{3}
+ return fileDescriptor_5318ad6f723bf9f6, []int{3}
}
func (m *C) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -183,8 +181,8 @@ func (m *C) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *C) XXX_Merge(src proto.Message) {
- xxx_messageInfo_C.Merge(dst, src)
+func (m *C) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_C.Merge(m, src)
}
func (m *C) XXX_Size() int {
return m.Size()
@@ -205,7 +203,7 @@ type U struct {
func (m *U) Reset() { *m = U{} }
func (*U) ProtoMessage() {}
func (*U) Descriptor() ([]byte, []int) {
- return fileDescriptor_unrecognized_05a73f113b0c8d63, []int{4}
+ return fileDescriptor_5318ad6f723bf9f6, []int{4}
}
func (m *U) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -222,8 +220,8 @@ func (m *U) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *U) XXX_Merge(src proto.Message) {
- xxx_messageInfo_U.Merge(dst, src)
+func (m *U) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_U.Merge(m, src)
}
func (m *U) XXX_Size() int {
return m.Size()
@@ -244,7 +242,7 @@ type UnoM struct {
func (m *UnoM) Reset() { *m = UnoM{} }
func (*UnoM) ProtoMessage() {}
func (*UnoM) Descriptor() ([]byte, []int) {
- return fileDescriptor_unrecognized_05a73f113b0c8d63, []int{5}
+ return fileDescriptor_5318ad6f723bf9f6, []int{5}
}
func (m *UnoM) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UnoM.Unmarshal(m, b)
@@ -252,8 +250,8 @@ func (m *UnoM) XXX_Unmarshal(b []byte) error {
func (m *UnoM) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_UnoM.Marshal(b, m, deterministic)
}
-func (dst *UnoM) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UnoM.Merge(dst, src)
+func (m *UnoM) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UnoM.Merge(m, src)
}
func (m *UnoM) XXX_Size() int {
return xxx_messageInfo_UnoM.Size(m)
@@ -274,7 +272,7 @@ type OldA struct {
func (m *OldA) Reset() { *m = OldA{} }
func (*OldA) ProtoMessage() {}
func (*OldA) Descriptor() ([]byte, []int) {
- return fileDescriptor_unrecognized_05a73f113b0c8d63, []int{6}
+ return fileDescriptor_5318ad6f723bf9f6, []int{6}
}
func (m *OldA) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -291,8 +289,8 @@ func (m *OldA) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *OldA) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OldA.Merge(dst, src)
+func (m *OldA) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OldA.Merge(m, src)
}
func (m *OldA) XXX_Size() int {
return m.Size()
@@ -314,7 +312,7 @@ type OldB struct {
func (m *OldB) Reset() { *m = OldB{} }
func (*OldB) ProtoMessage() {}
func (*OldB) Descriptor() ([]byte, []int) {
- return fileDescriptor_unrecognized_05a73f113b0c8d63, []int{7}
+ return fileDescriptor_5318ad6f723bf9f6, []int{7}
}
func (m *OldB) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -331,8 +329,8 @@ func (m *OldB) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *OldB) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OldB.Merge(dst, src)
+func (m *OldB) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OldB.Merge(m, src)
}
func (m *OldB) XXX_Size() int {
return m.Size()
@@ -357,7 +355,7 @@ type OldC struct {
func (m *OldC) Reset() { *m = OldC{} }
func (*OldC) ProtoMessage() {}
func (*OldC) Descriptor() ([]byte, []int) {
- return fileDescriptor_unrecognized_05a73f113b0c8d63, []int{8}
+ return fileDescriptor_5318ad6f723bf9f6, []int{8}
}
func (m *OldC) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -374,8 +372,8 @@ func (m *OldC) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *OldC) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OldC.Merge(dst, src)
+func (m *OldC) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OldC.Merge(m, src)
}
func (m *OldC) XXX_Size() int {
return m.Size()
@@ -397,7 +395,7 @@ type OldU struct {
func (m *OldU) Reset() { *m = OldU{} }
func (*OldU) ProtoMessage() {}
func (*OldU) Descriptor() ([]byte, []int) {
- return fileDescriptor_unrecognized_05a73f113b0c8d63, []int{9}
+ return fileDescriptor_5318ad6f723bf9f6, []int{9}
}
func (m *OldU) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -414,8 +412,8 @@ func (m *OldU) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *OldU) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OldU.Merge(dst, src)
+func (m *OldU) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OldU.Merge(m, src)
}
func (m *OldU) XXX_Size() int {
return m.Size()
@@ -437,7 +435,7 @@ type OldUnoM struct {
func (m *OldUnoM) Reset() { *m = OldUnoM{} }
func (*OldUnoM) ProtoMessage() {}
func (*OldUnoM) Descriptor() ([]byte, []int) {
- return fileDescriptor_unrecognized_05a73f113b0c8d63, []int{10}
+ return fileDescriptor_5318ad6f723bf9f6, []int{10}
}
func (m *OldUnoM) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OldUnoM.Unmarshal(m, b)
@@ -445,8 +443,8 @@ func (m *OldUnoM) XXX_Unmarshal(b []byte) error {
func (m *OldUnoM) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OldUnoM.Marshal(b, m, deterministic)
}
-func (dst *OldUnoM) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OldUnoM.Merge(dst, src)
+func (m *OldUnoM) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OldUnoM.Merge(m, src)
}
func (m *OldUnoM) XXX_Size() int {
return xxx_messageInfo_OldUnoM.Size(m)
@@ -470,6 +468,40 @@ func init() {
proto.RegisterType((*OldU)(nil), "unrecognized.OldU")
proto.RegisterType((*OldUnoM)(nil), "unrecognized.OldUnoM")
}
+
+func init() { proto.RegisterFile("unrecognized.proto", fileDescriptor_5318ad6f723bf9f6) }
+
+var fileDescriptor_5318ad6f723bf9f6 = []byte{
+ // 417 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x91, 0x3f, 0x4f, 0xf2, 0x50,
+ 0x14, 0xc6, 0x7b, 0x68, 0x81, 0x70, 0x5f, 0xde, 0xbc, 0x6f, 0x3a, 0x98, 0x1b, 0x8d, 0xb7, 0x37,
+ 0x9d, 0xba, 0x08, 0x91, 0xbf, 0x91, 0x49, 0xdb, 0xa6, 0x1a, 0x13, 0x43, 0xd2, 0x84, 0x2f, 0x00,
+ 0xc5, 0x4a, 0x82, 0xd4, 0x10, 0x58, 0x1c, 0x8c, 0xa3, 0xa3, 0x89, 0x5f, 0xc0, 0x6e, 0x8e, 0x8e,
+ 0x7e, 0x04, 0x46, 0x46, 0x47, 0xda, 0x4f, 0xe0, 0xe8, 0x68, 0x7a, 0x2d, 0xf5, 0x22, 0x90, 0xa0,
+ 0xdb, 0xbd, 0xcf, 0x73, 0xce, 0x79, 0x4e, 0xce, 0x0f, 0xc9, 0xe3, 0xc1, 0xb0, 0xdb, 0xf1, 0xdc,
+ 0x41, 0xef, 0xba, 0xeb, 0x14, 0xae, 0x86, 0xde, 0xc8, 0x93, 0xf3, 0xbc, 0xb6, 0xbd, 0xe7, 0xf6,
+ 0x46, 0x17, 0xe3, 0x76, 0xa1, 0xe3, 0x5d, 0x16, 0x5d, 0xcf, 0xf5, 0x8a, 0xac, 0xa8, 0x3d, 0x3e,
+ 0x67, 0x3f, 0xf6, 0x61, 0xaf, 0xcf, 0x66, 0xf5, 0x10, 0xc1, 0x91, 0xbc, 0x85, 0x32, 0x56, 0xaf,
+ 0xdb, 0x77, 0xf6, 0x71, 0x8a, 0x82, 0x26, 0xda, 0xf1, 0x4f, 0xde, 0x45, 0xa0, 0x63, 0xa0, 0xa2,
+ 0xf6, 0xa7, 0xf4, 0xaf, 0xb0, 0x90, 0xac, 0xdb, 0xa0, 0x37, 0xa4, 0xa9, 0xaf, 0x08, 0x6a, 0x07,
+ 0x81, 0x1e, 0x55, 0x1a, 0x18, 0x28, 0x2c, 0x57, 0x1a, 0x36, 0x18, 0x91, 0x6d, 0xb2, 0xd9, 0x4b,
+ 0xb6, 0x69, 0x83, 0x29, 0x53, 0x04, 0x16, 0x4e, 0x33, 0x5b, 0x5e, 0xb4, 0x9b, 0x7d, 0xc7, 0xb0,
+ 0xc1, 0x52, 0x77, 0x10, 0x98, 0xdc, 0x9a, 0xc0, 0xaf, 0xa9, 0x3e, 0x00, 0x02, 0x23, 0x71, 0x4b,
+ 0x2c, 0x08, 0x62, 0xb7, 0x94, 0xe8, 0x65, 0x2c, 0x52, 0xd0, 0x72, 0xb1, 0x5e, 0x4e, 0xf4, 0x0a,
+ 0x96, 0xb8, 0xfa, 0x4a, 0xa2, 0x57, 0x71, 0x9a, 0x8a, 0x5a, 0x3e, 0xd6, 0xab, 0x89, 0x5e, 0xc3,
+ 0x19, 0x2e, 0xbd, 0x96, 0xe8, 0x75, 0x9c, 0xa5, 0xa2, 0x96, 0x8a, 0xf5, 0xba, 0x7a, 0x80, 0xa0,
+ 0xb5, 0xb0, 0x94, 0xb8, 0x76, 0xa9, 0xbf, 0xf3, 0xa5, 0xe2, 0x93, 0x9e, 0x20, 0xa9, 0x35, 0xf0,
+ 0xce, 0x7e, 0xdc, 0xfd, 0xff, 0xce, 0x57, 0x84, 0x7b, 0x5f, 0x11, 0x1e, 0x7d, 0x45, 0x60, 0x93,
+ 0x2c, 0x24, 0x35, 0xfb, 0xce, 0x7a, 0xc2, 0xf4, 0x8b, 0xf0, 0xf2, 0xe5, 0x39, 0xc8, 0xa7, 0x6c,
+ 0x8e, 0x1e, 0xd5, 0xcf, 0x39, 0xaf, 0x24, 0x65, 0x6c, 0xc0, 0xf2, 0x86, 0xcd, 0x32, 0xd6, 0xe1,
+ 0xfc, 0x35, 0xc8, 0x4d, 0xc1, 0xd4, 0x58, 0x7e, 0xeb, 0x5b, 0x7e, 0x6e, 0x65, 0x3e, 0x77, 0x75,
+ 0xf5, 0x18, 0x65, 0xa3, 0x3e, 0x1e, 0xcc, 0x86, 0xad, 0x8d, 0x3c, 0x0f, 0x46, 0xaf, 0x4c, 0x02,
+ 0x22, 0x4c, 0x03, 0x22, 0xbc, 0x06, 0x44, 0x98, 0x05, 0x04, 0xde, 0x02, 0x02, 0xef, 0x01, 0x81,
+ 0xdb, 0x90, 0xc0, 0x53, 0x48, 0xe0, 0x39, 0x24, 0xf0, 0x12, 0x12, 0x98, 0x84, 0x04, 0xa6, 0x21,
+ 0x81, 0x59, 0x48, 0xe0, 0x23, 0x00, 0x00, 0xff, 0xff, 0xc5, 0x6d, 0x38, 0x81, 0xfb, 0x03, 0x00,
+ 0x00,
+}
+
func (this *A) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return UnrecognizedDescription()
}
@@ -506,263 +538,265 @@ func (this *OldUnoM) Description() (desc *github_com_gogo_protobuf_protoc_gen_go
func UnrecognizedDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 4085 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x1b, 0xd7,
- 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x65, 0x88, 0x8e, 0x29, 0x0a, 0xb6,
- 0x63, 0xda, 0x6e, 0xa8, 0x54, 0xd6, 0x8f, 0x05, 0x35, 0x71, 0x40, 0x00, 0xa2, 0xa9, 0x92, 0x04,
- 0xb3, 0x20, 0xe2, 0x9f, 0x4c, 0x67, 0x67, 0xb9, 0xb8, 0x04, 0x57, 0x5a, 0xec, 0x6e, 0x76, 0x17,
- 0x92, 0xa9, 0xe9, 0x74, 0xd4, 0x71, 0xff, 0x32, 0x9d, 0xb6, 0x69, 0xd3, 0x99, 0x26, 0xae, 0xe3,
- 0x46, 0xe9, 0x34, 0x4e, 0xd3, 0xbf, 0xa4, 0x69, 0xd3, 0x24, 0x7d, 0xe9, 0x4b, 0x5a, 0x3f, 0x75,
- 0x9c, 0xb7, 0x3e, 0xf4, 0xc1, 0x52, 0x3d, 0xd3, 0x3f, 0xb7, 0x49, 0x5b, 0x3d, 0x64, 0x46, 0x2f,
- 0x9d, 0xfb, 0xb7, 0xd8, 0x5d, 0x80, 0xda, 0xa5, 0x67, 0xec, 0x3c, 0x89, 0x7b, 0xee, 0xf9, 0xbe,
- 0x3d, 0xf7, 0xdc, 0x73, 0xcf, 0x39, 0xf7, 0x2e, 0x04, 0x3f, 0xbc, 0x00, 0x4b, 0x3d, 0xcb, 0xea,
- 0x19, 0xe8, 0x94, 0xed, 0x58, 0x9e, 0xb5, 0x3b, 0xd8, 0x3b, 0xd5, 0x45, 0xae, 0xe6, 0xe8, 0xb6,
- 0x67, 0x39, 0x2b, 0x44, 0x26, 0xcd, 0x50, 0x8d, 0x15, 0xae, 0x51, 0xd9, 0x84, 0xd9, 0x4b, 0xba,
- 0x81, 0x1a, 0xbe, 0x62, 0x1b, 0x79, 0xd2, 0x33, 0x90, 0xd9, 0xd3, 0x0d, 0x54, 0x16, 0x96, 0xd2,
- 0xcb, 0x85, 0xd3, 0x8f, 0xae, 0x44, 0x40, 0x2b, 0x61, 0xc4, 0x36, 0x16, 0xcb, 0x04, 0x51, 0x79,
- 0x27, 0x03, 0x73, 0x63, 0x46, 0x25, 0x09, 0x32, 0xa6, 0xda, 0xc7, 0x8c, 0xc2, 0x72, 0x5e, 0x26,
- 0x7f, 0x4b, 0x65, 0x98, 0xb2, 0x55, 0xed, 0xaa, 0xda, 0x43, 0xe5, 0x14, 0x11, 0xf3, 0x47, 0x69,
- 0x11, 0xa0, 0x8b, 0x6c, 0x64, 0x76, 0x91, 0xa9, 0x1d, 0x94, 0xd3, 0x4b, 0xe9, 0xe5, 0xbc, 0x1c,
- 0x90, 0x48, 0x4f, 0xc1, 0xac, 0x3d, 0xd8, 0x35, 0x74, 0x4d, 0x09, 0xa8, 0xc1, 0x52, 0x7a, 0x39,
- 0x2b, 0x8b, 0x74, 0xa0, 0x31, 0x54, 0x7e, 0x1c, 0x66, 0xae, 0x23, 0xf5, 0x6a, 0x50, 0xb5, 0x40,
- 0x54, 0x4b, 0x58, 0x1c, 0x50, 0xac, 0x43, 0xb1, 0x8f, 0x5c, 0x57, 0xed, 0x21, 0xc5, 0x3b, 0xb0,
- 0x51, 0x39, 0x43, 0x66, 0xbf, 0x34, 0x32, 0xfb, 0xe8, 0xcc, 0x0b, 0x0c, 0xb5, 0x73, 0x60, 0x23,
- 0xa9, 0x06, 0x79, 0x64, 0x0e, 0xfa, 0x94, 0x21, 0x7b, 0x88, 0xff, 0x9a, 0xe6, 0xa0, 0x1f, 0x65,
- 0xc9, 0x61, 0x18, 0xa3, 0x98, 0x72, 0x91, 0x73, 0x4d, 0xd7, 0x50, 0x79, 0x92, 0x10, 0x3c, 0x3e,
- 0x42, 0xd0, 0xa6, 0xe3, 0x51, 0x0e, 0x8e, 0x93, 0xea, 0x90, 0x47, 0x2f, 0x7b, 0xc8, 0x74, 0x75,
- 0xcb, 0x2c, 0x4f, 0x11, 0x92, 0xc7, 0xc6, 0xac, 0x22, 0x32, 0xba, 0x51, 0x8a, 0x21, 0x4e, 0x3a,
- 0x07, 0x53, 0x96, 0xed, 0xe9, 0x96, 0xe9, 0x96, 0x73, 0x4b, 0xc2, 0x72, 0xe1, 0xf4, 0x87, 0xc6,
- 0x06, 0x42, 0x8b, 0xea, 0xc8, 0x5c, 0x59, 0x5a, 0x07, 0xd1, 0xb5, 0x06, 0x8e, 0x86, 0x14, 0xcd,
- 0xea, 0x22, 0x45, 0x37, 0xf7, 0xac, 0x72, 0x9e, 0x10, 0x9c, 0x18, 0x9d, 0x08, 0x51, 0xac, 0x5b,
- 0x5d, 0xb4, 0x6e, 0xee, 0x59, 0x72, 0xc9, 0x0d, 0x3d, 0x4b, 0xc7, 0x60, 0xd2, 0x3d, 0x30, 0x3d,
- 0xf5, 0xe5, 0x72, 0x91, 0x44, 0x08, 0x7b, 0xaa, 0x7c, 0x77, 0x12, 0x66, 0x92, 0x84, 0xd8, 0x45,
- 0xc8, 0xee, 0xe1, 0x59, 0x96, 0x53, 0x47, 0xf1, 0x01, 0xc5, 0x84, 0x9d, 0x38, 0xf9, 0x1e, 0x9d,
- 0x58, 0x83, 0x82, 0x89, 0x5c, 0x0f, 0x75, 0x69, 0x44, 0xa4, 0x13, 0xc6, 0x14, 0x50, 0xd0, 0x68,
- 0x48, 0x65, 0xde, 0x53, 0x48, 0xbd, 0x00, 0x33, 0xbe, 0x49, 0x8a, 0xa3, 0x9a, 0x3d, 0x1e, 0x9b,
- 0xa7, 0xe2, 0x2c, 0x59, 0x69, 0x72, 0x9c, 0x8c, 0x61, 0x72, 0x09, 0x85, 0x9e, 0xa5, 0x06, 0x80,
- 0x65, 0x22, 0x6b, 0x4f, 0xe9, 0x22, 0xcd, 0x28, 0xe7, 0x0e, 0xf1, 0x52, 0x0b, 0xab, 0x8c, 0x78,
- 0xc9, 0xa2, 0x52, 0xcd, 0x90, 0x2e, 0x0c, 0x43, 0x6d, 0xea, 0x90, 0x48, 0xd9, 0xa4, 0x9b, 0x6c,
- 0x24, 0xda, 0x3a, 0x50, 0x72, 0x10, 0x8e, 0x7b, 0xd4, 0x65, 0x33, 0xcb, 0x13, 0x23, 0x56, 0x62,
- 0x67, 0x26, 0x33, 0x18, 0x9d, 0xd8, 0xb4, 0x13, 0x7c, 0x94, 0x1e, 0x01, 0x5f, 0xa0, 0x90, 0xb0,
- 0x02, 0x92, 0x85, 0x8a, 0x5c, 0xb8, 0xa5, 0xf6, 0xd1, 0xc2, 0x0d, 0x28, 0x85, 0xdd, 0x23, 0xcd,
- 0x43, 0xd6, 0xf5, 0x54, 0xc7, 0x23, 0x51, 0x98, 0x95, 0xe9, 0x83, 0x24, 0x42, 0x1a, 0x99, 0x5d,
- 0x92, 0xe5, 0xb2, 0x32, 0xfe, 0x53, 0xfa, 0xc4, 0x70, 0xc2, 0x69, 0x32, 0xe1, 0x0f, 0x8f, 0xae,
- 0x68, 0x88, 0x39, 0x3a, 0xef, 0x85, 0xf3, 0x30, 0x1d, 0x9a, 0x40, 0xd2, 0x57, 0x57, 0x7e, 0x1e,
- 0x1e, 0x18, 0x4b, 0x2d, 0xbd, 0x00, 0xf3, 0x03, 0x53, 0x37, 0x3d, 0xe4, 0xd8, 0x0e, 0xc2, 0x11,
- 0x4b, 0x5f, 0x55, 0xfe, 0xd7, 0xa9, 0x43, 0x62, 0xae, 0x13, 0xd4, 0xa6, 0x2c, 0xf2, 0xdc, 0x60,
- 0x54, 0xf8, 0x64, 0x3e, 0xf7, 0x6f, 0x53, 0xe2, 0xcd, 0x9b, 0x37, 0x6f, 0xa6, 0x2a, 0x5f, 0x98,
- 0x84, 0xf9, 0x71, 0x7b, 0x66, 0xec, 0xf6, 0x3d, 0x06, 0x93, 0xe6, 0xa0, 0xbf, 0x8b, 0x1c, 0xe2,
- 0xa4, 0xac, 0xcc, 0x9e, 0xa4, 0x1a, 0x64, 0x0d, 0x75, 0x17, 0x19, 0xe5, 0xcc, 0x92, 0xb0, 0x5c,
- 0x3a, 0xfd, 0x54, 0xa2, 0x5d, 0xb9, 0xb2, 0x81, 0x21, 0x32, 0x45, 0x4a, 0x1f, 0x87, 0x0c, 0x4b,
- 0xd1, 0x98, 0xe1, 0xc9, 0x64, 0x0c, 0x78, 0x2f, 0xc9, 0x04, 0x27, 0x3d, 0x04, 0x79, 0xfc, 0x2f,
- 0x8d, 0x8d, 0x49, 0x62, 0x73, 0x0e, 0x0b, 0x70, 0x5c, 0x48, 0x0b, 0x90, 0x23, 0xdb, 0xa4, 0x8b,
- 0x78, 0x69, 0xf3, 0x9f, 0x71, 0x60, 0x75, 0xd1, 0x9e, 0x3a, 0x30, 0x3c, 0xe5, 0x9a, 0x6a, 0x0c,
- 0x10, 0x09, 0xf8, 0xbc, 0x5c, 0x64, 0xc2, 0x4f, 0x61, 0x99, 0x74, 0x02, 0x0a, 0x74, 0x57, 0xe9,
- 0x66, 0x17, 0xbd, 0x4c, 0xb2, 0x67, 0x56, 0xa6, 0x1b, 0x6d, 0x1d, 0x4b, 0xf0, 0xeb, 0xaf, 0xb8,
- 0x96, 0xc9, 0x43, 0x93, 0xbc, 0x02, 0x0b, 0xc8, 0xeb, 0xcf, 0x47, 0x13, 0xf7, 0xc3, 0xe3, 0xa7,
- 0x17, 0x8d, 0xa9, 0xca, 0xb7, 0x53, 0x90, 0x21, 0xf9, 0x62, 0x06, 0x0a, 0x3b, 0x2f, 0x6e, 0x37,
- 0x95, 0x46, 0xab, 0xb3, 0xba, 0xd1, 0x14, 0x05, 0xa9, 0x04, 0x40, 0x04, 0x97, 0x36, 0x5a, 0xb5,
- 0x1d, 0x31, 0xe5, 0x3f, 0xaf, 0x6f, 0xed, 0x9c, 0x3b, 0x23, 0xa6, 0x7d, 0x40, 0x87, 0x0a, 0x32,
- 0x41, 0x85, 0xa7, 0x4f, 0x8b, 0x59, 0x49, 0x84, 0x22, 0x25, 0x58, 0x7f, 0xa1, 0xd9, 0x38, 0x77,
- 0x46, 0x9c, 0x0c, 0x4b, 0x9e, 0x3e, 0x2d, 0x4e, 0x49, 0xd3, 0x90, 0x27, 0x92, 0xd5, 0x56, 0x6b,
- 0x43, 0xcc, 0xf9, 0x9c, 0xed, 0x1d, 0x79, 0x7d, 0x6b, 0x4d, 0xcc, 0xfb, 0x9c, 0x6b, 0x72, 0xab,
- 0xb3, 0x2d, 0x82, 0xcf, 0xb0, 0xd9, 0x6c, 0xb7, 0x6b, 0x6b, 0x4d, 0xb1, 0xe0, 0x6b, 0xac, 0xbe,
- 0xb8, 0xd3, 0x6c, 0x8b, 0xc5, 0x90, 0x59, 0x4f, 0x9f, 0x16, 0xa7, 0xfd, 0x57, 0x34, 0xb7, 0x3a,
- 0x9b, 0x62, 0x49, 0x9a, 0x85, 0x69, 0xfa, 0x0a, 0x6e, 0xc4, 0x4c, 0x44, 0x74, 0xee, 0x8c, 0x28,
- 0x0e, 0x0d, 0xa1, 0x2c, 0xb3, 0x21, 0xc1, 0xb9, 0x33, 0xa2, 0x54, 0xa9, 0x43, 0x96, 0x44, 0x97,
- 0x24, 0x41, 0x69, 0xa3, 0xb6, 0xda, 0xdc, 0x50, 0x5a, 0xdb, 0x3b, 0xeb, 0xad, 0xad, 0xda, 0x86,
- 0x28, 0x0c, 0x65, 0x72, 0xf3, 0x93, 0x9d, 0x75, 0xb9, 0xd9, 0x10, 0x53, 0x41, 0xd9, 0x76, 0xb3,
- 0xb6, 0xd3, 0x6c, 0x88, 0xe9, 0x8a, 0x06, 0xf3, 0xe3, 0xf2, 0xe4, 0xd8, 0x9d, 0x11, 0x58, 0xe2,
- 0xd4, 0x21, 0x4b, 0x4c, 0xb8, 0x46, 0x96, 0xf8, 0x5f, 0x52, 0x30, 0x37, 0xa6, 0x56, 0x8c, 0x7d,
- 0xc9, 0xb3, 0x90, 0xa5, 0x21, 0x4a, 0xab, 0xe7, 0x13, 0x63, 0x8b, 0x0e, 0x09, 0xd8, 0x91, 0x0a,
- 0x4a, 0x70, 0xc1, 0x0e, 0x22, 0x7d, 0x48, 0x07, 0x81, 0x29, 0x46, 0x72, 0xfa, 0xcf, 0x8d, 0xe4,
- 0x74, 0x5a, 0xf6, 0xce, 0x25, 0x29, 0x7b, 0x44, 0x76, 0xb4, 0xdc, 0x9e, 0x1d, 0x93, 0xdb, 0x2f,
- 0xc2, 0xec, 0x08, 0x51, 0xe2, 0x1c, 0xfb, 0x8a, 0x00, 0xe5, 0xc3, 0x9c, 0x13, 0x93, 0xe9, 0x52,
- 0xa1, 0x4c, 0x77, 0x31, 0xea, 0xc1, 0x93, 0x87, 0x2f, 0xc2, 0xc8, 0x5a, 0xbf, 0x21, 0xc0, 0xb1,
- 0xf1, 0x9d, 0xe2, 0x58, 0x1b, 0x3e, 0x0e, 0x93, 0x7d, 0xe4, 0xed, 0x5b, 0xbc, 0x5b, 0xfa, 0xf0,
- 0x98, 0x1a, 0x8c, 0x87, 0xa3, 0x8b, 0xcd, 0x50, 0xc1, 0x22, 0x9e, 0x3e, 0xac, 0xdd, 0xa3, 0xd6,
- 0x8c, 0x58, 0xfa, 0xd9, 0x14, 0x3c, 0x30, 0x96, 0x7c, 0xac, 0xa1, 0x0f, 0x03, 0xe8, 0xa6, 0x3d,
- 0xf0, 0x68, 0x47, 0x44, 0x13, 0x6c, 0x9e, 0x48, 0x48, 0xf2, 0xc2, 0xc9, 0x73, 0xe0, 0xf9, 0xe3,
- 0x69, 0x32, 0x0e, 0x54, 0x44, 0x14, 0x9e, 0x19, 0x1a, 0x9a, 0x21, 0x86, 0x2e, 0x1e, 0x32, 0xd3,
- 0x91, 0xc0, 0xfc, 0x28, 0x88, 0x9a, 0xa1, 0x23, 0xd3, 0x53, 0x5c, 0xcf, 0x41, 0x6a, 0x5f, 0x37,
- 0x7b, 0xa4, 0x82, 0xe4, 0xaa, 0xd9, 0x3d, 0xd5, 0x70, 0x91, 0x3c, 0x43, 0x87, 0xdb, 0x7c, 0x14,
- 0x23, 0x48, 0x00, 0x39, 0x01, 0xc4, 0x64, 0x08, 0x41, 0x87, 0x7d, 0x44, 0xe5, 0x5b, 0x39, 0x28,
- 0x04, 0xfa, 0x6a, 0xe9, 0x24, 0x14, 0xaf, 0xa8, 0xd7, 0x54, 0x85, 0x9f, 0x95, 0xa8, 0x27, 0x0a,
- 0x58, 0xb6, 0xcd, 0xce, 0x4b, 0x1f, 0x85, 0x79, 0xa2, 0x62, 0x0d, 0x3c, 0xe4, 0x28, 0x9a, 0xa1,
- 0xba, 0x2e, 0x71, 0x5a, 0x8e, 0xa8, 0x4a, 0x78, 0xac, 0x85, 0x87, 0xea, 0x7c, 0x44, 0x3a, 0x0b,
- 0x73, 0x04, 0xd1, 0x1f, 0x18, 0x9e, 0x6e, 0x1b, 0x48, 0xc1, 0xa7, 0x37, 0x97, 0x54, 0x12, 0xdf,
- 0xb2, 0x59, 0xac, 0xb1, 0xc9, 0x14, 0xb0, 0x45, 0xae, 0xd4, 0x80, 0x87, 0x09, 0xac, 0x87, 0x4c,
- 0xe4, 0xa8, 0x1e, 0x52, 0xd0, 0x67, 0x06, 0xaa, 0xe1, 0x2a, 0xaa, 0xd9, 0x55, 0xf6, 0x55, 0x77,
- 0xbf, 0x3c, 0x8f, 0x09, 0x56, 0x53, 0x65, 0x41, 0x3e, 0x8e, 0x15, 0xd7, 0x98, 0x5e, 0x93, 0xa8,
- 0xd5, 0xcc, 0xee, 0x73, 0xaa, 0xbb, 0x2f, 0x55, 0xe1, 0x18, 0x61, 0x71, 0x3d, 0x47, 0x37, 0x7b,
- 0x8a, 0xb6, 0x8f, 0xb4, 0xab, 0xca, 0xc0, 0xdb, 0x7b, 0xa6, 0xfc, 0x50, 0xf0, 0xfd, 0xc4, 0xc2,
- 0x36, 0xd1, 0xa9, 0x63, 0x95, 0x8e, 0xb7, 0xf7, 0x8c, 0xd4, 0x86, 0x22, 0x5e, 0x8c, 0xbe, 0x7e,
- 0x03, 0x29, 0x7b, 0x96, 0x43, 0x4a, 0x63, 0x69, 0x4c, 0x6a, 0x0a, 0x78, 0x70, 0xa5, 0xc5, 0x00,
- 0x9b, 0x56, 0x17, 0x55, 0xb3, 0xed, 0xed, 0x66, 0xb3, 0x21, 0x17, 0x38, 0xcb, 0x25, 0xcb, 0xc1,
- 0x01, 0xd5, 0xb3, 0x7c, 0x07, 0x17, 0x68, 0x40, 0xf5, 0x2c, 0xee, 0xde, 0xb3, 0x30, 0xa7, 0x69,
- 0x74, 0xce, 0xba, 0xa6, 0xb0, 0x33, 0x96, 0x5b, 0x16, 0x43, 0xce, 0xd2, 0xb4, 0x35, 0xaa, 0xc0,
- 0x62, 0xdc, 0x95, 0x2e, 0xc0, 0x03, 0x43, 0x67, 0x05, 0x81, 0xb3, 0x23, 0xb3, 0x8c, 0x42, 0xcf,
- 0xc2, 0x9c, 0x7d, 0x30, 0x0a, 0x94, 0x42, 0x6f, 0xb4, 0x0f, 0xa2, 0xb0, 0xf3, 0x30, 0x6f, 0xef,
- 0xdb, 0xa3, 0xb8, 0x27, 0x83, 0x38, 0xc9, 0xde, 0xb7, 0xa3, 0xc0, 0xc7, 0xc8, 0x81, 0xdb, 0x41,
- 0x9a, 0xea, 0xa1, 0x6e, 0xf9, 0xc1, 0xa0, 0x7a, 0x60, 0x40, 0x3a, 0x05, 0xa2, 0xa6, 0x29, 0xc8,
- 0x54, 0x77, 0x0d, 0xa4, 0xa8, 0x0e, 0x32, 0x55, 0xb7, 0x7c, 0x22, 0xa8, 0x5c, 0xd2, 0xb4, 0x26,
- 0x19, 0xad, 0x91, 0x41, 0xe9, 0x49, 0x98, 0xb5, 0x76, 0xaf, 0x68, 0x34, 0x24, 0x15, 0xdb, 0x41,
- 0x7b, 0xfa, 0xcb, 0xe5, 0x47, 0x89, 0x7f, 0x67, 0xf0, 0x00, 0x09, 0xc8, 0x6d, 0x22, 0x96, 0x9e,
- 0x00, 0x51, 0x73, 0xf7, 0x55, 0xc7, 0x26, 0x39, 0xd9, 0xb5, 0x55, 0x0d, 0x95, 0x1f, 0xa3, 0xaa,
- 0x54, 0xbe, 0xc5, 0xc5, 0x78, 0x4b, 0xb8, 0xd7, 0xf5, 0x3d, 0x8f, 0x33, 0x3e, 0x4e, 0xb7, 0x04,
- 0x91, 0x31, 0xb6, 0x65, 0x10, 0xb1, 0x2b, 0x42, 0x2f, 0x5e, 0x26, 0x6a, 0x25, 0x7b, 0xdf, 0x0e,
- 0xbe, 0xf7, 0x11, 0x98, 0xc6, 0x9a, 0xc3, 0x97, 0x3e, 0x41, 0x1b, 0x32, 0x7b, 0x3f, 0xf0, 0xc6,
- 0xf7, 0xad, 0x37, 0xae, 0x54, 0xa1, 0x18, 0x8c, 0x4f, 0x29, 0x0f, 0x34, 0x42, 0x45, 0x01, 0x37,
- 0x2b, 0xf5, 0x56, 0x03, 0xb7, 0x19, 0x2f, 0x35, 0xc5, 0x14, 0x6e, 0x77, 0x36, 0xd6, 0x77, 0x9a,
- 0x8a, 0xdc, 0xd9, 0xda, 0x59, 0xdf, 0x6c, 0x8a, 0xe9, 0x60, 0x5f, 0xfd, 0xfd, 0x14, 0x94, 0xc2,
- 0x47, 0x24, 0xe9, 0x67, 0xe0, 0x41, 0x7e, 0x9f, 0xe1, 0x22, 0x4f, 0xb9, 0xae, 0x3b, 0x64, 0xcb,
- 0xf4, 0x55, 0x5a, 0xbe, 0xfc, 0x45, 0x9b, 0x67, 0x5a, 0x6d, 0xe4, 0x3d, 0xaf, 0x3b, 0x78, 0x43,
- 0xf4, 0x55, 0x4f, 0xda, 0x80, 0x13, 0xa6, 0xa5, 0xb8, 0x9e, 0x6a, 0x76, 0x55, 0xa7, 0xab, 0x0c,
- 0x6f, 0x92, 0x14, 0x55, 0xd3, 0x90, 0xeb, 0x5a, 0xb4, 0x54, 0xf9, 0x2c, 0x1f, 0x32, 0xad, 0x36,
- 0x53, 0x1e, 0xe6, 0xf0, 0x1a, 0x53, 0x8d, 0x04, 0x58, 0xfa, 0xb0, 0x00, 0x7b, 0x08, 0xf2, 0x7d,
- 0xd5, 0x56, 0x90, 0xe9, 0x39, 0x07, 0xa4, 0x31, 0xce, 0xc9, 0xb9, 0xbe, 0x6a, 0x37, 0xf1, 0xf3,
- 0x07, 0x73, 0x3e, 0xf9, 0xe7, 0x34, 0x14, 0x83, 0xcd, 0x31, 0x3e, 0x6b, 0x68, 0xa4, 0x8e, 0x08,
- 0x24, 0xd3, 0x3c, 0x72, 0xdf, 0x56, 0x7a, 0xa5, 0x8e, 0x0b, 0x4c, 0x75, 0x92, 0xb6, 0xac, 0x32,
- 0x45, 0xe2, 0xe2, 0x8e, 0x73, 0x0b, 0xa2, 0x2d, 0x42, 0x4e, 0x66, 0x4f, 0xd2, 0x1a, 0x4c, 0x5e,
- 0x71, 0x09, 0xf7, 0x24, 0xe1, 0x7e, 0xf4, 0xfe, 0xdc, 0x97, 0xdb, 0x84, 0x3c, 0x7f, 0xb9, 0xad,
- 0x6c, 0xb5, 0xe4, 0xcd, 0xda, 0x86, 0xcc, 0xe0, 0xd2, 0x71, 0xc8, 0x18, 0xea, 0x8d, 0x83, 0x70,
- 0x29, 0x22, 0xa2, 0xa4, 0x8e, 0x3f, 0x0e, 0x99, 0xeb, 0x48, 0xbd, 0x1a, 0x2e, 0x00, 0x44, 0xf4,
- 0x3e, 0x86, 0xfe, 0x29, 0xc8, 0x12, 0x7f, 0x49, 0x00, 0xcc, 0x63, 0xe2, 0x84, 0x94, 0x83, 0x4c,
- 0xbd, 0x25, 0xe3, 0xf0, 0x17, 0xa1, 0x48, 0xa5, 0xca, 0xf6, 0x7a, 0xb3, 0xde, 0x14, 0x53, 0x95,
- 0xb3, 0x30, 0x49, 0x9d, 0x80, 0xb7, 0x86, 0xef, 0x06, 0x71, 0x82, 0x3d, 0x32, 0x0e, 0x81, 0x8f,
- 0x76, 0x36, 0x57, 0x9b, 0xb2, 0x98, 0x0a, 0x2e, 0xaf, 0x0b, 0xc5, 0x60, 0x5f, 0xfc, 0xc1, 0xc4,
- 0xd4, 0xf7, 0x04, 0x28, 0x04, 0xfa, 0x5c, 0xdc, 0xa0, 0xa8, 0x86, 0x61, 0x5d, 0x57, 0x54, 0x43,
- 0x57, 0x5d, 0x16, 0x14, 0x40, 0x44, 0x35, 0x2c, 0x49, 0xba, 0x68, 0x1f, 0x88, 0xf1, 0xaf, 0x0b,
- 0x20, 0x46, 0x5b, 0xcc, 0x88, 0x81, 0xc2, 0x4f, 0xd4, 0xc0, 0xd7, 0x04, 0x28, 0x85, 0xfb, 0xca,
- 0x88, 0x79, 0x27, 0x7f, 0xa2, 0xe6, 0xbd, 0x9d, 0x82, 0xe9, 0x50, 0x37, 0x99, 0xd4, 0xba, 0xcf,
- 0xc0, 0xac, 0xde, 0x45, 0x7d, 0xdb, 0xf2, 0x90, 0xa9, 0x1d, 0x28, 0x06, 0xba, 0x86, 0x8c, 0x72,
- 0x85, 0x24, 0x8a, 0x53, 0xf7, 0xef, 0x57, 0x57, 0xd6, 0x87, 0xb8, 0x0d, 0x0c, 0xab, 0xce, 0xad,
- 0x37, 0x9a, 0x9b, 0xdb, 0xad, 0x9d, 0xe6, 0x56, 0xfd, 0x45, 0xa5, 0xb3, 0xf5, 0xb3, 0x5b, 0xad,
- 0xe7, 0xb7, 0x64, 0x51, 0x8f, 0xa8, 0xbd, 0x8f, 0x5b, 0x7d, 0x1b, 0xc4, 0xa8, 0x51, 0xd2, 0x83,
- 0x30, 0xce, 0x2c, 0x71, 0x42, 0x9a, 0x83, 0x99, 0xad, 0x96, 0xd2, 0x5e, 0x6f, 0x34, 0x95, 0xe6,
- 0xa5, 0x4b, 0xcd, 0xfa, 0x4e, 0x9b, 0xde, 0x40, 0xf8, 0xda, 0x3b, 0xe1, 0x4d, 0xfd, 0x6a, 0x1a,
- 0xe6, 0xc6, 0x58, 0x22, 0xd5, 0xd8, 0xd9, 0x81, 0x1e, 0x67, 0x3e, 0x92, 0xc4, 0xfa, 0x15, 0x5c,
- 0xf2, 0xb7, 0x55, 0xc7, 0x63, 0x47, 0x8d, 0x27, 0x00, 0x7b, 0xc9, 0xf4, 0xf4, 0x3d, 0x1d, 0x39,
- 0xec, 0xc2, 0x86, 0x1e, 0x28, 0x66, 0x86, 0x72, 0x7a, 0x67, 0xf3, 0x53, 0x20, 0xd9, 0x96, 0xab,
- 0x7b, 0xfa, 0x35, 0xa4, 0xe8, 0x26, 0xbf, 0xdd, 0xc1, 0x07, 0x8c, 0x8c, 0x2c, 0xf2, 0x91, 0x75,
- 0xd3, 0xf3, 0xb5, 0x4d, 0xd4, 0x53, 0x23, 0xda, 0x38, 0x81, 0xa7, 0x65, 0x91, 0x8f, 0xf8, 0xda,
- 0x27, 0xa1, 0xd8, 0xb5, 0x06, 0xb8, 0xeb, 0xa2, 0x7a, 0xb8, 0x5e, 0x08, 0x72, 0x81, 0xca, 0x7c,
- 0x15, 0xd6, 0x4f, 0x0f, 0xaf, 0x95, 0x8a, 0x72, 0x81, 0xca, 0xa8, 0xca, 0xe3, 0x30, 0xa3, 0xf6,
- 0x7a, 0x0e, 0x26, 0xe7, 0x44, 0xf4, 0x84, 0x50, 0xf2, 0xc5, 0x44, 0x71, 0xe1, 0x32, 0xe4, 0xb8,
- 0x1f, 0x70, 0x49, 0xc6, 0x9e, 0x50, 0x6c, 0x7a, 0xec, 0x4d, 0x2d, 0xe7, 0xe5, 0x9c, 0xc9, 0x07,
- 0x4f, 0x42, 0x51, 0x77, 0x95, 0xe1, 0x2d, 0x79, 0x6a, 0x29, 0xb5, 0x9c, 0x93, 0x0b, 0xba, 0xeb,
- 0xdf, 0x30, 0x56, 0xde, 0x48, 0x41, 0x29, 0x7c, 0xcb, 0x2f, 0x35, 0x20, 0x67, 0x58, 0x9a, 0x4a,
- 0x42, 0x8b, 0x7e, 0x62, 0x5a, 0x8e, 0xf9, 0x30, 0xb0, 0xb2, 0xc1, 0xf4, 0x65, 0x1f, 0xb9, 0xf0,
- 0x8f, 0x02, 0xe4, 0xb8, 0x58, 0x3a, 0x06, 0x19, 0x5b, 0xf5, 0xf6, 0x09, 0x5d, 0x76, 0x35, 0x25,
- 0x0a, 0x32, 0x79, 0xc6, 0x72, 0xd7, 0x56, 0x4d, 0x12, 0x02, 0x4c, 0x8e, 0x9f, 0xf1, 0xba, 0x1a,
- 0x48, 0xed, 0x92, 0xe3, 0x87, 0xd5, 0xef, 0x23, 0xd3, 0x73, 0xf9, 0xba, 0x32, 0x79, 0x9d, 0x89,
- 0xa5, 0xa7, 0x60, 0xd6, 0x73, 0x54, 0xdd, 0x08, 0xe9, 0x66, 0x88, 0xae, 0xc8, 0x07, 0x7c, 0xe5,
- 0x2a, 0x1c, 0xe7, 0xbc, 0x5d, 0xe4, 0xa9, 0xda, 0x3e, 0xea, 0x0e, 0x41, 0x93, 0xe4, 0x9a, 0xe1,
- 0x41, 0xa6, 0xd0, 0x60, 0xe3, 0x1c, 0x5b, 0xf9, 0x81, 0x00, 0xb3, 0xfc, 0xc0, 0xd4, 0xf5, 0x9d,
- 0xb5, 0x09, 0xa0, 0x9a, 0xa6, 0xe5, 0x05, 0xdd, 0x35, 0x1a, 0xca, 0x23, 0xb8, 0x95, 0x9a, 0x0f,
- 0x92, 0x03, 0x04, 0x0b, 0x7d, 0x80, 0xe1, 0xc8, 0xa1, 0x6e, 0x3b, 0x01, 0x05, 0xf6, 0x09, 0x87,
- 0x7c, 0x07, 0xa4, 0x47, 0x6c, 0xa0, 0x22, 0x7c, 0xb2, 0x92, 0xe6, 0x21, 0xbb, 0x8b, 0x7a, 0xba,
- 0xc9, 0x2e, 0x66, 0xe9, 0x03, 0xbf, 0x08, 0xc9, 0xf8, 0x17, 0x21, 0xab, 0x9f, 0x86, 0x39, 0xcd,
- 0xea, 0x47, 0xcd, 0x5d, 0x15, 0x23, 0xc7, 0x7c, 0xf7, 0x39, 0xe1, 0x25, 0x18, 0xb6, 0x98, 0x3f,
- 0x16, 0x84, 0xaf, 0xa4, 0xd2, 0x6b, 0xdb, 0xab, 0x5f, 0x4f, 0x2d, 0xac, 0x51, 0xe8, 0x36, 0x9f,
- 0xa9, 0x8c, 0xf6, 0x0c, 0xa4, 0x61, 0xeb, 0xe1, 0xab, 0x4f, 0xc1, 0x47, 0x7a, 0xba, 0xb7, 0x3f,
- 0xd8, 0x5d, 0xd1, 0xac, 0xfe, 0xa9, 0x9e, 0xd5, 0xb3, 0x86, 0x9f, 0x3e, 0xf1, 0x13, 0x79, 0x20,
- 0x7f, 0xb1, 0xcf, 0x9f, 0x79, 0x5f, 0xba, 0x10, 0xfb, 0xad, 0xb4, 0xba, 0x05, 0x73, 0x4c, 0x59,
- 0x21, 0xdf, 0x5f, 0xe8, 0x29, 0x42, 0xba, 0xef, 0x1d, 0x56, 0xf9, 0x9b, 0xef, 0x90, 0x72, 0x2d,
- 0xcf, 0x32, 0x28, 0x1e, 0xa3, 0x07, 0x8d, 0xaa, 0x0c, 0x0f, 0x84, 0xf8, 0xe8, 0xd6, 0x44, 0x4e,
- 0x0c, 0xe3, 0xf7, 0x19, 0xe3, 0x5c, 0x80, 0xb1, 0xcd, 0xa0, 0xd5, 0x3a, 0x4c, 0x1f, 0x85, 0xeb,
- 0xef, 0x19, 0x57, 0x11, 0x05, 0x49, 0xd6, 0x60, 0x86, 0x90, 0x68, 0x03, 0xd7, 0xb3, 0xfa, 0x24,
- 0xef, 0xdd, 0x9f, 0xe6, 0x1f, 0xde, 0xa1, 0x7b, 0xa5, 0x84, 0x61, 0x75, 0x1f, 0x55, 0xad, 0x02,
- 0xf9, 0xe4, 0xd4, 0x45, 0x9a, 0x11, 0xc3, 0xf0, 0x26, 0x33, 0xc4, 0xd7, 0xaf, 0x7e, 0x0a, 0xe6,
- 0xf1, 0xdf, 0x24, 0x2d, 0x05, 0x2d, 0x89, 0xbf, 0xf0, 0x2a, 0xff, 0xe0, 0x15, 0xba, 0x1d, 0xe7,
- 0x7c, 0x82, 0x80, 0x4d, 0x81, 0x55, 0xec, 0x21, 0xcf, 0x43, 0x8e, 0xab, 0xa8, 0xc6, 0x38, 0xf3,
- 0x02, 0x37, 0x06, 0xe5, 0x2f, 0xbe, 0x1b, 0x5e, 0xc5, 0x35, 0x8a, 0xac, 0x19, 0x46, 0xb5, 0x03,
- 0x0f, 0x8e, 0x89, 0x8a, 0x04, 0x9c, 0xaf, 0x32, 0xce, 0xf9, 0x91, 0xc8, 0xc0, 0xb4, 0xdb, 0xc0,
- 0xe5, 0xfe, 0x5a, 0x26, 0xe0, 0xfc, 0x7d, 0xc6, 0x29, 0x31, 0x2c, 0x5f, 0x52, 0xcc, 0x78, 0x19,
- 0x66, 0xaf, 0x21, 0x67, 0xd7, 0x72, 0xd9, 0x2d, 0x4d, 0x02, 0xba, 0xd7, 0x18, 0xdd, 0x0c, 0x03,
- 0x92, 0x6b, 0x1b, 0xcc, 0x75, 0x01, 0x72, 0x7b, 0xaa, 0x86, 0x12, 0x50, 0x7c, 0x89, 0x51, 0x4c,
- 0x61, 0x7d, 0x0c, 0xad, 0x41, 0xb1, 0x67, 0xb1, 0xca, 0x14, 0x0f, 0x7f, 0x9d, 0xc1, 0x0b, 0x1c,
- 0xc3, 0x28, 0x6c, 0xcb, 0x1e, 0x18, 0xb8, 0x6c, 0xc5, 0x53, 0xfc, 0x01, 0xa7, 0xe0, 0x18, 0x46,
- 0x71, 0x04, 0xb7, 0x7e, 0x99, 0x53, 0xb8, 0x01, 0x7f, 0x3e, 0x0b, 0x05, 0xcb, 0x34, 0x0e, 0x2c,
- 0x33, 0x89, 0x11, 0xb7, 0x18, 0x03, 0x30, 0x08, 0x26, 0xb8, 0x08, 0xf9, 0xa4, 0x0b, 0xf1, 0x47,
- 0xef, 0xf2, 0xed, 0xc1, 0x57, 0x60, 0x0d, 0x66, 0x78, 0x82, 0xd2, 0x2d, 0x33, 0x01, 0xc5, 0x57,
- 0x19, 0x45, 0x29, 0x00, 0x63, 0xd3, 0xf0, 0x90, 0xeb, 0xf5, 0x50, 0x12, 0x92, 0x37, 0xf8, 0x34,
- 0x18, 0x84, 0xb9, 0x72, 0x17, 0x99, 0xda, 0x7e, 0x32, 0x86, 0xaf, 0x71, 0x57, 0x72, 0x0c, 0xa6,
- 0xa8, 0xc3, 0x74, 0x5f, 0x75, 0xdc, 0x7d, 0xd5, 0x48, 0xb4, 0x1c, 0x7f, 0xcc, 0x38, 0x8a, 0x3e,
- 0x88, 0x79, 0x64, 0x60, 0x1e, 0x85, 0xe6, 0xeb, 0xdc, 0x23, 0x01, 0x18, 0xdb, 0x7a, 0xae, 0x47,
- 0xae, 0xb4, 0x8e, 0xc2, 0xf6, 0x27, 0x7c, 0xeb, 0x51, 0xec, 0x66, 0x90, 0xf1, 0x22, 0xe4, 0x5d,
- 0xfd, 0x46, 0x22, 0x9a, 0x3f, 0xe5, 0x2b, 0x4d, 0x00, 0x18, 0xfc, 0x22, 0x1c, 0x1f, 0x5b, 0x26,
- 0x12, 0x90, 0xfd, 0x19, 0x23, 0x3b, 0x36, 0xa6, 0x54, 0xb0, 0x94, 0x70, 0x54, 0xca, 0x3f, 0xe7,
- 0x29, 0x01, 0x45, 0xb8, 0xb6, 0xf1, 0x59, 0xc1, 0x55, 0xf7, 0x8e, 0xe6, 0xb5, 0xbf, 0xe0, 0x5e,
- 0xa3, 0xd8, 0x90, 0xd7, 0x76, 0xe0, 0x18, 0x63, 0x3c, 0xda, 0xba, 0x7e, 0x83, 0x27, 0x56, 0x8a,
- 0xee, 0x84, 0x57, 0xf7, 0xd3, 0xb0, 0xe0, 0xbb, 0x93, 0x37, 0xa5, 0xae, 0xd2, 0x57, 0xed, 0x04,
- 0xcc, 0xdf, 0x64, 0xcc, 0x3c, 0xe3, 0xfb, 0x5d, 0xad, 0xbb, 0xa9, 0xda, 0x98, 0xfc, 0x05, 0x28,
- 0x73, 0xf2, 0x81, 0xe9, 0x20, 0xcd, 0xea, 0x99, 0xfa, 0x0d, 0xd4, 0x4d, 0x40, 0xfd, 0x97, 0x91,
- 0xa5, 0xea, 0x04, 0xe0, 0x98, 0x79, 0x1d, 0x44, 0xbf, 0x57, 0x51, 0xf4, 0xbe, 0x6d, 0x39, 0x5e,
- 0x0c, 0xe3, 0xb7, 0xf8, 0x4a, 0xf9, 0xb8, 0x75, 0x02, 0xab, 0x36, 0xa1, 0x44, 0x1e, 0x93, 0x86,
- 0xe4, 0x5f, 0x31, 0xa2, 0xe9, 0x21, 0x8a, 0x25, 0x0e, 0xcd, 0xea, 0xdb, 0xaa, 0x93, 0x24, 0xff,
- 0xfd, 0x35, 0x4f, 0x1c, 0x0c, 0xc2, 0x12, 0x87, 0x77, 0x60, 0x23, 0x5c, 0xed, 0x13, 0x30, 0x7c,
- 0x9b, 0x27, 0x0e, 0x8e, 0x61, 0x14, 0xbc, 0x61, 0x48, 0x40, 0xf1, 0x37, 0x9c, 0x82, 0x63, 0x30,
- 0xc5, 0x27, 0x87, 0x85, 0xd6, 0x41, 0x3d, 0xdd, 0xf5, 0x1c, 0xda, 0x0a, 0xdf, 0x9f, 0xea, 0x3b,
- 0xef, 0x86, 0x9b, 0x30, 0x39, 0x00, 0xc5, 0x99, 0x88, 0x5d, 0xa1, 0x92, 0x93, 0x52, 0xbc, 0x61,
- 0xdf, 0xe5, 0x99, 0x28, 0x00, 0xc3, 0xb6, 0x05, 0x3a, 0x44, 0xec, 0x76, 0x0d, 0x9f, 0x0f, 0x12,
- 0xd0, 0x7d, 0x2f, 0x62, 0x5c, 0x9b, 0x63, 0x31, 0x67, 0xa0, 0xff, 0x19, 0x98, 0x57, 0xd1, 0x41,
- 0xa2, 0xe8, 0xfc, 0xdb, 0x48, 0xff, 0xd3, 0xa1, 0x48, 0x9a, 0x43, 0x66, 0x22, 0xfd, 0x94, 0x14,
- 0xf7, 0x63, 0x9d, 0xf2, 0x2f, 0xde, 0x65, 0xf3, 0x0d, 0xb7, 0x53, 0xd5, 0x0d, 0x1c, 0xe4, 0xe1,
- 0xa6, 0x27, 0x9e, 0xec, 0x95, 0xbb, 0x7e, 0x9c, 0x87, 0x7a, 0x9e, 0xea, 0x25, 0x98, 0x0e, 0x35,
- 0x3c, 0xf1, 0x54, 0xbf, 0xc4, 0xa8, 0x8a, 0xc1, 0x7e, 0xa7, 0x7a, 0x16, 0x32, 0xb8, 0x79, 0x89,
- 0x87, 0xff, 0x32, 0x83, 0x13, 0xf5, 0xea, 0xc7, 0x20, 0xc7, 0x9b, 0x96, 0x78, 0xe8, 0xaf, 0x30,
- 0xa8, 0x0f, 0xc1, 0x70, 0xde, 0xb0, 0xc4, 0xc3, 0x7f, 0x95, 0xc3, 0x39, 0x04, 0xc3, 0x93, 0xbb,
- 0xf0, 0xef, 0x7e, 0x3d, 0xc3, 0x8a, 0x0e, 0xf7, 0xdd, 0x45, 0x98, 0x62, 0x9d, 0x4a, 0x3c, 0xfa,
- 0xb3, 0xec, 0xe5, 0x1c, 0x51, 0x3d, 0x0f, 0xd9, 0x84, 0x0e, 0xff, 0x0d, 0x06, 0xa5, 0xfa, 0xd5,
- 0x3a, 0x14, 0x02, 0xdd, 0x49, 0x3c, 0xfc, 0x37, 0x19, 0x3c, 0x88, 0xc2, 0xa6, 0xb3, 0xee, 0x24,
- 0x9e, 0xe0, 0xb7, 0xb8, 0xe9, 0x0c, 0x81, 0xdd, 0xc6, 0x1b, 0x93, 0x78, 0xf4, 0xe7, 0xb8, 0xd7,
- 0x39, 0xa4, 0xfa, 0x2c, 0xe4, 0xfd, 0x62, 0x13, 0x8f, 0xff, 0x6d, 0x86, 0x1f, 0x62, 0xb0, 0x07,
- 0x02, 0xc5, 0x2e, 0x9e, 0xe2, 0x77, 0xb8, 0x07, 0x02, 0x28, 0xbc, 0x8d, 0xa2, 0x0d, 0x4c, 0x3c,
- 0xd3, 0xe7, 0xf9, 0x36, 0x8a, 0xf4, 0x2f, 0x78, 0x35, 0x49, 0xce, 0x8f, 0xa7, 0xf8, 0x5d, 0xbe,
- 0x9a, 0x44, 0x1f, 0x9b, 0x11, 0xed, 0x08, 0xe2, 0x39, 0x7e, 0x8f, 0x9b, 0x11, 0x69, 0x08, 0xaa,
- 0xdb, 0x20, 0x8d, 0x76, 0x03, 0xf1, 0x7c, 0x5f, 0x60, 0x7c, 0xb3, 0x23, 0xcd, 0x40, 0xf5, 0x79,
- 0x38, 0x36, 0xbe, 0x13, 0x88, 0x67, 0xfd, 0xe2, 0xdd, 0xc8, 0xd9, 0x2d, 0xd8, 0x08, 0x54, 0x77,
- 0x86, 0x25, 0x25, 0xd8, 0x05, 0xc4, 0xd3, 0xbe, 0x7a, 0x37, 0x9c, 0xb8, 0x83, 0x4d, 0x40, 0xb5,
- 0x06, 0x30, 0x2c, 0xc0, 0xf1, 0x5c, 0xaf, 0x31, 0xae, 0x00, 0x08, 0x6f, 0x0d, 0x56, 0x7f, 0xe3,
- 0xf1, 0x5f, 0xe2, 0x5b, 0x83, 0x21, 0xf0, 0xd6, 0xe0, 0xa5, 0x37, 0x1e, 0xfd, 0x3a, 0xdf, 0x1a,
- 0x1c, 0x82, 0x23, 0x3b, 0x50, 0xdd, 0xe2, 0x19, 0x6e, 0xf1, 0xc8, 0x0e, 0xa0, 0xaa, 0x5b, 0x30,
- 0x3b, 0x52, 0x10, 0xe3, 0xa9, 0xbe, 0xc2, 0xa8, 0xc4, 0x68, 0x3d, 0x0c, 0x16, 0x2f, 0x56, 0x0c,
- 0xe3, 0xd9, 0xfe, 0x30, 0x52, 0xbc, 0x58, 0x2d, 0xac, 0x5e, 0x84, 0x9c, 0x39, 0x30, 0x0c, 0xbc,
- 0x79, 0xa4, 0xfb, 0xff, 0xc0, 0xae, 0xfc, 0xef, 0xf7, 0x98, 0x77, 0x38, 0xa0, 0x7a, 0x16, 0xb2,
- 0xa8, 0xbf, 0x8b, 0xba, 0x71, 0xc8, 0xff, 0xb8, 0xc7, 0x13, 0x26, 0xd6, 0xae, 0x3e, 0x0b, 0x40,
- 0xaf, 0x46, 0xc8, 0x67, 0xbf, 0x18, 0xec, 0x7f, 0xde, 0x63, 0x3f, 0x7d, 0x19, 0x42, 0x86, 0x04,
- 0xf4, 0x87, 0x34, 0xf7, 0x27, 0x78, 0x37, 0x4c, 0x40, 0x56, 0xe4, 0x02, 0x4c, 0x5d, 0x71, 0x2d,
- 0xd3, 0x53, 0x7b, 0x71, 0xe8, 0xff, 0x62, 0x68, 0xae, 0x8f, 0x1d, 0xd6, 0xb7, 0x1c, 0xe4, 0xa9,
- 0x3d, 0x37, 0x0e, 0xfb, 0xdf, 0x0c, 0xeb, 0x03, 0x30, 0x58, 0x53, 0x5d, 0x2f, 0xc9, 0xbc, 0x7f,
- 0xc8, 0xc1, 0x1c, 0x80, 0x8d, 0xc6, 0x7f, 0x5f, 0x45, 0x07, 0x71, 0xd8, 0x1f, 0x71, 0xa3, 0x99,
- 0x7e, 0xf5, 0x63, 0x90, 0xc7, 0x7f, 0xd2, 0xdf, 0xb3, 0xc5, 0x80, 0xff, 0x87, 0x81, 0x87, 0x08,
- 0xfc, 0x66, 0xd7, 0xeb, 0x7a, 0x7a, 0xbc, 0xb3, 0xff, 0x97, 0xad, 0x34, 0xd7, 0xaf, 0xd6, 0xa0,
- 0xe0, 0x7a, 0xdd, 0xee, 0x80, 0xf5, 0xa7, 0x31, 0xf0, 0xff, 0xbb, 0xe7, 0x5f, 0x59, 0xf8, 0x18,
- 0xbc, 0xda, 0xd7, 0xaf, 0x7a, 0xb6, 0x45, 0x3e, 0x73, 0xc4, 0x31, 0xdc, 0x65, 0x0c, 0x01, 0xc8,
- 0x6a, 0x73, 0xfc, 0xf5, 0x2d, 0xac, 0x59, 0x6b, 0x16, 0xbd, 0xb8, 0x7d, 0xa9, 0x12, 0x7f, 0x03,
- 0x0b, 0xf7, 0xa6, 0x70, 0x32, 0x1f, 0xe6, 0x36, 0x76, 0x1b, 0x5b, 0x0c, 0xca, 0x16, 0x8e, 0x76,
- 0x95, 0x5b, 0xf9, 0x04, 0x08, 0x35, 0xe9, 0x18, 0x4c, 0x92, 0x39, 0xfc, 0x34, 0xb9, 0xa2, 0x4e,
- 0xcb, 0xec, 0x49, 0x7a, 0x18, 0x84, 0x55, 0x76, 0x57, 0x3e, 0xb3, 0x12, 0x7a, 0xf3, 0xaa, 0x2c,
- 0xac, 0x56, 0x33, 0x6f, 0xdd, 0x3a, 0x31, 0x51, 0xd1, 0x40, 0x58, 0xc5, 0x9a, 0x75, 0xf2, 0x01,
- 0x73, 0x44, 0xb3, 0x2e, 0x0b, 0x75, 0x3c, 0xdc, 0x60, 0xbf, 0xb0, 0x8c, 0x0c, 0x37, 0x64, 0xa1,
- 0x21, 0x2d, 0x81, 0x70, 0x89, 0x7c, 0xb4, 0x29, 0x9c, 0x96, 0xc2, 0xc3, 0x2d, 0xa3, 0x5b, 0x97,
- 0x85, 0x4b, 0x95, 0x87, 0x40, 0x68, 0x04, 0xcc, 0x14, 0x82, 0x66, 0x56, 0x3e, 0x2f, 0x80, 0x50,
- 0xf7, 0x47, 0x4f, 0x93, 0x17, 0x09, 0x6c, 0xf4, 0xb4, 0x2f, 0x7f, 0x9a, 0x7d, 0x99, 0x60, 0x4f,
- 0xbe, 0xfc, 0x0c, 0xb9, 0x68, 0xe7, 0xfa, 0x67, 0x7c, 0xf9, 0x59, 0xf2, 0x7b, 0xc6, 0x22, 0x93,
- 0x9f, 0xf5, 0xe5, 0xe7, 0xc8, 0x67, 0x23, 0xfe, 0xf6, 0x73, 0xbe, 0xfc, 0x3c, 0xf9, 0x1f, 0x22,
- 0x29, 0x26, 0x3f, 0x5f, 0xb9, 0x00, 0x42, 0x27, 0x64, 0x54, 0xfa, 0x50, 0xa3, 0xa6, 0xb9, 0x51,
- 0xcc, 0xa5, 0xcf, 0x41, 0xa6, 0x63, 0x5a, 0x9b, 0x47, 0x46, 0x8b, 0xbf, 0x76, 0xeb, 0xc4, 0xc4,
- 0xe7, 0x6e, 0x9d, 0x98, 0xf8, 0xf2, 0xad, 0x13, 0x13, 0x84, 0xe9, 0x12, 0x64, 0x5a, 0x46, 0xf7,
- 0xf0, 0x15, 0x5e, 0x1a, 0xae, 0xf0, 0xa8, 0xe7, 0x03, 0x8b, 0x7c, 0x99, 0xf0, 0xac, 0x62, 0x7d,
- 0xbe, 0xce, 0x63, 0x57, 0xaa, 0x9e, 0x60, 0x2d, 0x7f, 0x81, 0x70, 0xd5, 0x0f, 0x5b, 0xce, 0xf7,
- 0xbc, 0x90, 0x49, 0x17, 0xe6, 0x1c, 0x79, 0x7f, 0x27, 0xf2, 0xfe, 0xfc, 0xd8, 0xf7, 0x07, 0xbc,
- 0x5e, 0x59, 0x83, 0x29, 0x8c, 0x0b, 0x2e, 0x4c, 0x42, 0x68, 0xb5, 0x18, 0x5c, 0x98, 0xd5, 0x33,
- 0x6f, 0xde, 0x5e, 0x9c, 0x78, 0xeb, 0xf6, 0xe2, 0xc4, 0x3f, 0xdd, 0x5e, 0x9c, 0x78, 0xfb, 0xf6,
- 0xa2, 0xf0, 0xa3, 0xdb, 0x8b, 0xc2, 0x8f, 0x6f, 0x2f, 0x0a, 0x37, 0xef, 0x2c, 0x0a, 0x5f, 0xbb,
- 0xb3, 0x28, 0x7c, 0xe3, 0xce, 0xa2, 0xf0, 0x9d, 0x3b, 0x8b, 0xc2, 0x9b, 0x77, 0x16, 0x85, 0xb7,
- 0xee, 0x2c, 0x0a, 0x6f, 0xdf, 0x59, 0x14, 0xfe, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xe4, 0xd9, 0x59,
- 0x5a, 0x99, 0x36, 0x00, 0x00,
+ // 4119 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5b, 0x70, 0xdc, 0xe6,
+ 0x75, 0x26, 0xf6, 0x42, 0xee, 0x9e, 0x5d, 0x2e, 0x41, 0x90, 0xa6, 0x56, 0x74, 0x4c, 0x51, 0x6b,
+ 0x3b, 0xa6, 0xed, 0x98, 0x4a, 0x65, 0x5d, 0xac, 0x55, 0x13, 0x67, 0xb9, 0x5c, 0xd1, 0x54, 0x49,
+ 0x2e, 0x83, 0xe5, 0xc6, 0x97, 0x4c, 0x07, 0x03, 0x62, 0x7f, 0x2e, 0x21, 0x61, 0x01, 0x04, 0xc0,
+ 0x4a, 0xa6, 0xa6, 0xd3, 0x51, 0xc7, 0xbd, 0x65, 0x7a, 0x4b, 0x9b, 0xce, 0x34, 0x71, 0x1d, 0x37,
+ 0x4a, 0xa7, 0x71, 0x9a, 0xde, 0x92, 0x5e, 0xd2, 0x24, 0x7d, 0xe9, 0x4b, 0x5a, 0x3f, 0x75, 0x9c,
+ 0xb7, 0x3e, 0xf4, 0xc1, 0x52, 0x3d, 0xd3, 0x9b, 0xdb, 0xa6, 0xad, 0x1e, 0x32, 0xa3, 0x97, 0xce,
+ 0x7f, 0xc3, 0x02, 0xd8, 0xa5, 0x00, 0x7a, 0xc6, 0xf6, 0x93, 0x88, 0xf3, 0x9f, 0xef, 0xc3, 0xf9,
+ 0xcf, 0x7f, 0xfe, 0x73, 0xce, 0xff, 0x63, 0x05, 0x6f, 0x56, 0x61, 0xb1, 0x6b, 0x59, 0x5d, 0x03,
+ 0x9d, 0xb2, 0x1d, 0xcb, 0xb3, 0x76, 0xfb, 0x7b, 0xa7, 0x3a, 0xc8, 0xd5, 0x1c, 0xdd, 0xf6, 0x2c,
+ 0x67, 0x99, 0xc8, 0xa4, 0x29, 0xaa, 0xb1, 0xcc, 0x35, 0x2a, 0x9b, 0x30, 0x7d, 0x49, 0x37, 0xd0,
+ 0xaa, 0xaf, 0xd8, 0x42, 0x9e, 0xf4, 0x0c, 0x64, 0xf6, 0x74, 0x03, 0x95, 0x85, 0xc5, 0xf4, 0x52,
+ 0xe1, 0xf4, 0x23, 0xcb, 0x11, 0xd0, 0x72, 0x18, 0xb1, 0x8d, 0xc5, 0x32, 0x41, 0x54, 0xde, 0xc9,
+ 0xc0, 0xcc, 0x88, 0x51, 0x49, 0x82, 0x8c, 0xa9, 0xf6, 0x30, 0xa3, 0xb0, 0x94, 0x97, 0xc9, 0xdf,
+ 0x52, 0x19, 0x26, 0x6c, 0x55, 0xbb, 0xaa, 0x76, 0x51, 0x39, 0x45, 0xc4, 0xfc, 0x51, 0x5a, 0x00,
+ 0xe8, 0x20, 0x1b, 0x99, 0x1d, 0x64, 0x6a, 0x07, 0xe5, 0xf4, 0x62, 0x7a, 0x29, 0x2f, 0x07, 0x24,
+ 0xd2, 0x93, 0x30, 0x6d, 0xf7, 0x77, 0x0d, 0x5d, 0x53, 0x02, 0x6a, 0xb0, 0x98, 0x5e, 0xca, 0xca,
+ 0x22, 0x1d, 0x58, 0x1d, 0x28, 0x3f, 0x06, 0x53, 0xd7, 0x91, 0x7a, 0x35, 0xa8, 0x5a, 0x20, 0xaa,
+ 0x25, 0x2c, 0x0e, 0x28, 0xd6, 0xa1, 0xd8, 0x43, 0xae, 0xab, 0x76, 0x91, 0xe2, 0x1d, 0xd8, 0xa8,
+ 0x9c, 0x21, 0xb3, 0x5f, 0x1c, 0x9a, 0x7d, 0x74, 0xe6, 0x05, 0x86, 0xda, 0x39, 0xb0, 0x91, 0x54,
+ 0x83, 0x3c, 0x32, 0xfb, 0x3d, 0xca, 0x90, 0x3d, 0xc4, 0x7f, 0x0d, 0xb3, 0xdf, 0x8b, 0xb2, 0xe4,
+ 0x30, 0x8c, 0x51, 0x4c, 0xb8, 0xc8, 0xb9, 0xa6, 0x6b, 0xa8, 0x3c, 0x4e, 0x08, 0x1e, 0x1b, 0x22,
+ 0x68, 0xd1, 0xf1, 0x28, 0x07, 0xc7, 0x49, 0x75, 0xc8, 0xa3, 0x97, 0x3d, 0x64, 0xba, 0xba, 0x65,
+ 0x96, 0x27, 0x08, 0xc9, 0xa3, 0x23, 0x56, 0x11, 0x19, 0x9d, 0x28, 0xc5, 0x00, 0x27, 0x9d, 0x83,
+ 0x09, 0xcb, 0xf6, 0x74, 0xcb, 0x74, 0xcb, 0xb9, 0x45, 0x61, 0xa9, 0x70, 0xfa, 0x23, 0x23, 0x03,
+ 0xa1, 0x49, 0x75, 0x64, 0xae, 0x2c, 0xad, 0x83, 0xe8, 0x5a, 0x7d, 0x47, 0x43, 0x8a, 0x66, 0x75,
+ 0x90, 0xa2, 0x9b, 0x7b, 0x56, 0x39, 0x4f, 0x08, 0x4e, 0x0c, 0x4f, 0x84, 0x28, 0xd6, 0xad, 0x0e,
+ 0x5a, 0x37, 0xf7, 0x2c, 0xb9, 0xe4, 0x86, 0x9e, 0xa5, 0x39, 0x18, 0x77, 0x0f, 0x4c, 0x4f, 0x7d,
+ 0xb9, 0x5c, 0x24, 0x11, 0xc2, 0x9e, 0x2a, 0xdf, 0x1b, 0x87, 0xa9, 0x24, 0x21, 0x76, 0x11, 0xb2,
+ 0x7b, 0x78, 0x96, 0xe5, 0xd4, 0x51, 0x7c, 0x40, 0x31, 0x61, 0x27, 0x8e, 0xbf, 0x47, 0x27, 0xd6,
+ 0xa0, 0x60, 0x22, 0xd7, 0x43, 0x1d, 0x1a, 0x11, 0xe9, 0x84, 0x31, 0x05, 0x14, 0x34, 0x1c, 0x52,
+ 0x99, 0xf7, 0x14, 0x52, 0x2f, 0xc0, 0x94, 0x6f, 0x92, 0xe2, 0xa8, 0x66, 0x97, 0xc7, 0xe6, 0xa9,
+ 0x38, 0x4b, 0x96, 0x1b, 0x1c, 0x27, 0x63, 0x98, 0x5c, 0x42, 0xa1, 0x67, 0x69, 0x15, 0xc0, 0x32,
+ 0x91, 0xb5, 0xa7, 0x74, 0x90, 0x66, 0x94, 0x73, 0x87, 0x78, 0xa9, 0x89, 0x55, 0x86, 0xbc, 0x64,
+ 0x51, 0xa9, 0x66, 0x48, 0x17, 0x06, 0xa1, 0x36, 0x71, 0x48, 0xa4, 0x6c, 0xd2, 0x4d, 0x36, 0x14,
+ 0x6d, 0x6d, 0x28, 0x39, 0x08, 0xc7, 0x3d, 0xea, 0xb0, 0x99, 0xe5, 0x89, 0x11, 0xcb, 0xb1, 0x33,
+ 0x93, 0x19, 0x8c, 0x4e, 0x6c, 0xd2, 0x09, 0x3e, 0x4a, 0x0f, 0x83, 0x2f, 0x50, 0x48, 0x58, 0x01,
+ 0xc9, 0x42, 0x45, 0x2e, 0xdc, 0x52, 0x7b, 0x68, 0xfe, 0x06, 0x94, 0xc2, 0xee, 0x91, 0x66, 0x21,
+ 0xeb, 0x7a, 0xaa, 0xe3, 0x91, 0x28, 0xcc, 0xca, 0xf4, 0x41, 0x12, 0x21, 0x8d, 0xcc, 0x0e, 0xc9,
+ 0x72, 0x59, 0x19, 0xff, 0x29, 0x7d, 0x6a, 0x30, 0xe1, 0x34, 0x99, 0xf0, 0x47, 0x87, 0x57, 0x34,
+ 0xc4, 0x1c, 0x9d, 0xf7, 0xfc, 0x79, 0x98, 0x0c, 0x4d, 0x20, 0xe9, 0xab, 0x2b, 0x3f, 0x03, 0x0f,
+ 0x8c, 0xa4, 0x96, 0x5e, 0x80, 0xd9, 0xbe, 0xa9, 0x9b, 0x1e, 0x72, 0x6c, 0x07, 0xe1, 0x88, 0xa5,
+ 0xaf, 0x2a, 0xff, 0xcb, 0xc4, 0x21, 0x31, 0xd7, 0x0e, 0x6a, 0x53, 0x16, 0x79, 0xa6, 0x3f, 0x2c,
+ 0x7c, 0x22, 0x9f, 0xfb, 0xd7, 0x09, 0xf1, 0xe6, 0xcd, 0x9b, 0x37, 0x53, 0x95, 0x2f, 0x8d, 0xc3,
+ 0xec, 0xa8, 0x3d, 0x33, 0x72, 0xfb, 0xce, 0xc1, 0xb8, 0xd9, 0xef, 0xed, 0x22, 0x87, 0x38, 0x29,
+ 0x2b, 0xb3, 0x27, 0xa9, 0x06, 0x59, 0x43, 0xdd, 0x45, 0x46, 0x39, 0xb3, 0x28, 0x2c, 0x95, 0x4e,
+ 0x3f, 0x99, 0x68, 0x57, 0x2e, 0x6f, 0x60, 0x88, 0x4c, 0x91, 0xd2, 0x27, 0x21, 0xc3, 0x52, 0x34,
+ 0x66, 0x78, 0x22, 0x19, 0x03, 0xde, 0x4b, 0x32, 0xc1, 0x49, 0x0f, 0x42, 0x1e, 0xff, 0x4b, 0x63,
+ 0x63, 0x9c, 0xd8, 0x9c, 0xc3, 0x02, 0x1c, 0x17, 0xd2, 0x3c, 0xe4, 0xc8, 0x36, 0xe9, 0x20, 0x5e,
+ 0xda, 0xfc, 0x67, 0x1c, 0x58, 0x1d, 0xb4, 0xa7, 0xf6, 0x0d, 0x4f, 0xb9, 0xa6, 0x1a, 0x7d, 0x44,
+ 0x02, 0x3e, 0x2f, 0x17, 0x99, 0xf0, 0x33, 0x58, 0x26, 0x9d, 0x80, 0x02, 0xdd, 0x55, 0xba, 0xd9,
+ 0x41, 0x2f, 0x93, 0xec, 0x99, 0x95, 0xe9, 0x46, 0x5b, 0xc7, 0x12, 0xfc, 0xfa, 0x2b, 0xae, 0x65,
+ 0xf2, 0xd0, 0x24, 0xaf, 0xc0, 0x02, 0xf2, 0xfa, 0xf3, 0xd1, 0xc4, 0xfd, 0xd0, 0xe8, 0xe9, 0x45,
+ 0x63, 0xaa, 0xf2, 0x9d, 0x14, 0x64, 0x48, 0xbe, 0x98, 0x82, 0xc2, 0xce, 0x8b, 0xdb, 0x0d, 0x65,
+ 0xb5, 0xd9, 0x5e, 0xd9, 0x68, 0x88, 0x82, 0x54, 0x02, 0x20, 0x82, 0x4b, 0x1b, 0xcd, 0xda, 0x8e,
+ 0x98, 0xf2, 0x9f, 0xd7, 0xb7, 0x76, 0xce, 0x9d, 0x11, 0xd3, 0x3e, 0xa0, 0x4d, 0x05, 0x99, 0xa0,
+ 0xc2, 0xd3, 0xa7, 0xc5, 0xac, 0x24, 0x42, 0x91, 0x12, 0xac, 0xbf, 0xd0, 0x58, 0x3d, 0x77, 0x46,
+ 0x1c, 0x0f, 0x4b, 0x9e, 0x3e, 0x2d, 0x4e, 0x48, 0x93, 0x90, 0x27, 0x92, 0x95, 0x66, 0x73, 0x43,
+ 0xcc, 0xf9, 0x9c, 0xad, 0x1d, 0x79, 0x7d, 0x6b, 0x4d, 0xcc, 0xfb, 0x9c, 0x6b, 0x72, 0xb3, 0xbd,
+ 0x2d, 0x82, 0xcf, 0xb0, 0xd9, 0x68, 0xb5, 0x6a, 0x6b, 0x0d, 0xb1, 0xe0, 0x6b, 0xac, 0xbc, 0xb8,
+ 0xd3, 0x68, 0x89, 0xc5, 0x90, 0x59, 0x4f, 0x9f, 0x16, 0x27, 0xfd, 0x57, 0x34, 0xb6, 0xda, 0x9b,
+ 0x62, 0x49, 0x9a, 0x86, 0x49, 0xfa, 0x0a, 0x6e, 0xc4, 0x54, 0x44, 0x74, 0xee, 0x8c, 0x28, 0x0e,
+ 0x0c, 0xa1, 0x2c, 0xd3, 0x21, 0xc1, 0xb9, 0x33, 0xa2, 0x54, 0xa9, 0x43, 0x96, 0x44, 0x97, 0x24,
+ 0x41, 0x69, 0xa3, 0xb6, 0xd2, 0xd8, 0x50, 0x9a, 0xdb, 0x3b, 0xeb, 0xcd, 0xad, 0xda, 0x86, 0x28,
+ 0x0c, 0x64, 0x72, 0xe3, 0xd3, 0xed, 0x75, 0xb9, 0xb1, 0x2a, 0xa6, 0x82, 0xb2, 0xed, 0x46, 0x6d,
+ 0xa7, 0xb1, 0x2a, 0xa6, 0x2b, 0x1a, 0xcc, 0x8e, 0xca, 0x93, 0x23, 0x77, 0x46, 0x60, 0x89, 0x53,
+ 0x87, 0x2c, 0x31, 0xe1, 0x1a, 0x5a, 0xe2, 0x7f, 0x4e, 0xc1, 0xcc, 0x88, 0x5a, 0x31, 0xf2, 0x25,
+ 0xcf, 0x42, 0x96, 0x86, 0x28, 0xad, 0x9e, 0x8f, 0x8f, 0x2c, 0x3a, 0x24, 0x60, 0x87, 0x2a, 0x28,
+ 0xc1, 0x05, 0x3b, 0x88, 0xf4, 0x21, 0x1d, 0x04, 0xa6, 0x18, 0xca, 0xe9, 0x3f, 0x3d, 0x94, 0xd3,
+ 0x69, 0xd9, 0x3b, 0x97, 0xa4, 0xec, 0x11, 0xd9, 0xd1, 0x72, 0x7b, 0x76, 0x44, 0x6e, 0xbf, 0x08,
+ 0xd3, 0x43, 0x44, 0x89, 0x73, 0xec, 0x2b, 0x02, 0x94, 0x0f, 0x73, 0x4e, 0x4c, 0xa6, 0x4b, 0x85,
+ 0x32, 0xdd, 0xc5, 0xa8, 0x07, 0x4f, 0x1e, 0xbe, 0x08, 0x43, 0x6b, 0xfd, 0x86, 0x00, 0x73, 0xa3,
+ 0x3b, 0xc5, 0x91, 0x36, 0x7c, 0x12, 0xc6, 0x7b, 0xc8, 0xdb, 0xb7, 0x78, 0xb7, 0xf4, 0xd1, 0x11,
+ 0x35, 0x18, 0x0f, 0x47, 0x17, 0x9b, 0xa1, 0x82, 0x45, 0x3c, 0x7d, 0x58, 0xbb, 0x47, 0xad, 0x19,
+ 0xb2, 0xf4, 0xf3, 0x29, 0x78, 0x60, 0x24, 0xf9, 0x48, 0x43, 0x1f, 0x02, 0xd0, 0x4d, 0xbb, 0xef,
+ 0xd1, 0x8e, 0x88, 0x26, 0xd8, 0x3c, 0x91, 0x90, 0xe4, 0x85, 0x93, 0x67, 0xdf, 0xf3, 0xc7, 0xd3,
+ 0x64, 0x1c, 0xa8, 0x88, 0x28, 0x3c, 0x33, 0x30, 0x34, 0x43, 0x0c, 0x5d, 0x38, 0x64, 0xa6, 0x43,
+ 0x81, 0xf9, 0x71, 0x10, 0x35, 0x43, 0x47, 0xa6, 0xa7, 0xb8, 0x9e, 0x83, 0xd4, 0x9e, 0x6e, 0x76,
+ 0x49, 0x05, 0xc9, 0x55, 0xb3, 0x7b, 0xaa, 0xe1, 0x22, 0x79, 0x8a, 0x0e, 0xb7, 0xf8, 0x28, 0x46,
+ 0x90, 0x00, 0x72, 0x02, 0x88, 0xf1, 0x10, 0x82, 0x0e, 0xfb, 0x88, 0xca, 0xaf, 0xe6, 0xa1, 0x10,
+ 0xe8, 0xab, 0xa5, 0x93, 0x50, 0xbc, 0xa2, 0x5e, 0x53, 0x15, 0x7e, 0x56, 0xa2, 0x9e, 0x28, 0x60,
+ 0xd9, 0x36, 0x3b, 0x2f, 0x7d, 0x1c, 0x66, 0x89, 0x8a, 0xd5, 0xf7, 0x90, 0xa3, 0x68, 0x86, 0xea,
+ 0xba, 0xc4, 0x69, 0x39, 0xa2, 0x2a, 0xe1, 0xb1, 0x26, 0x1e, 0xaa, 0xf3, 0x11, 0xe9, 0x2c, 0xcc,
+ 0x10, 0x44, 0xaf, 0x6f, 0x78, 0xba, 0x6d, 0x20, 0x05, 0x9f, 0xde, 0x5c, 0x52, 0x49, 0x7c, 0xcb,
+ 0xa6, 0xb1, 0xc6, 0x26, 0x53, 0xc0, 0x16, 0xb9, 0xd2, 0x2a, 0x3c, 0x44, 0x60, 0x5d, 0x64, 0x22,
+ 0x47, 0xf5, 0x90, 0x82, 0x3e, 0xd7, 0x57, 0x0d, 0x57, 0x51, 0xcd, 0x8e, 0xb2, 0xaf, 0xba, 0xfb,
+ 0xe5, 0x59, 0x4c, 0xb0, 0x92, 0x2a, 0x0b, 0xf2, 0x71, 0xac, 0xb8, 0xc6, 0xf4, 0x1a, 0x44, 0xad,
+ 0x66, 0x76, 0x9e, 0x53, 0xdd, 0x7d, 0xa9, 0x0a, 0x73, 0x84, 0xc5, 0xf5, 0x1c, 0xdd, 0xec, 0x2a,
+ 0xda, 0x3e, 0xd2, 0xae, 0x2a, 0x7d, 0x6f, 0xef, 0x99, 0xf2, 0x83, 0xc1, 0xf7, 0x13, 0x0b, 0x5b,
+ 0x44, 0xa7, 0x8e, 0x55, 0xda, 0xde, 0xde, 0x33, 0x52, 0x0b, 0x8a, 0x78, 0x31, 0x7a, 0xfa, 0x0d,
+ 0xa4, 0xec, 0x59, 0x0e, 0x29, 0x8d, 0xa5, 0x11, 0xa9, 0x29, 0xe0, 0xc1, 0xe5, 0x26, 0x03, 0x6c,
+ 0x5a, 0x1d, 0x54, 0xcd, 0xb6, 0xb6, 0x1b, 0x8d, 0x55, 0xb9, 0xc0, 0x59, 0x2e, 0x59, 0x0e, 0x0e,
+ 0xa8, 0xae, 0xe5, 0x3b, 0xb8, 0x40, 0x03, 0xaa, 0x6b, 0x71, 0xf7, 0x9e, 0x85, 0x19, 0x4d, 0xa3,
+ 0x73, 0xd6, 0x35, 0x85, 0x9d, 0xb1, 0xdc, 0xb2, 0x18, 0x72, 0x96, 0xa6, 0xad, 0x51, 0x05, 0x16,
+ 0xe3, 0xae, 0x74, 0x01, 0x1e, 0x18, 0x38, 0x2b, 0x08, 0x9c, 0x1e, 0x9a, 0x65, 0x14, 0x7a, 0x16,
+ 0x66, 0xec, 0x83, 0x61, 0xa0, 0x14, 0x7a, 0xa3, 0x7d, 0x10, 0x85, 0x9d, 0x87, 0x59, 0x7b, 0xdf,
+ 0x1e, 0xc6, 0x3d, 0x11, 0xc4, 0x49, 0xf6, 0xbe, 0x1d, 0x05, 0x3e, 0x4a, 0x0e, 0xdc, 0x0e, 0xd2,
+ 0x54, 0x0f, 0x75, 0xca, 0xc7, 0x82, 0xea, 0x81, 0x01, 0xe9, 0x14, 0x88, 0x9a, 0xa6, 0x20, 0x53,
+ 0xdd, 0x35, 0x90, 0xa2, 0x3a, 0xc8, 0x54, 0xdd, 0xf2, 0x89, 0xa0, 0x72, 0x49, 0xd3, 0x1a, 0x64,
+ 0xb4, 0x46, 0x06, 0xa5, 0x27, 0x60, 0xda, 0xda, 0xbd, 0xa2, 0xd1, 0x90, 0x54, 0x6c, 0x07, 0xed,
+ 0xe9, 0x2f, 0x97, 0x1f, 0x21, 0xfe, 0x9d, 0xc2, 0x03, 0x24, 0x20, 0xb7, 0x89, 0x58, 0x7a, 0x1c,
+ 0x44, 0xcd, 0xdd, 0x57, 0x1d, 0x9b, 0xe4, 0x64, 0xd7, 0x56, 0x35, 0x54, 0x7e, 0x94, 0xaa, 0x52,
+ 0xf9, 0x16, 0x17, 0xe3, 0x2d, 0xe1, 0x5e, 0xd7, 0xf7, 0x3c, 0xce, 0xf8, 0x18, 0xdd, 0x12, 0x44,
+ 0xc6, 0xd8, 0x96, 0x40, 0xc4, 0xae, 0x08, 0xbd, 0x78, 0x89, 0xa8, 0x95, 0xec, 0x7d, 0x3b, 0xf8,
+ 0xde, 0x87, 0x61, 0x12, 0x6b, 0x0e, 0x5e, 0xfa, 0x38, 0x6d, 0xc8, 0xec, 0xfd, 0xc0, 0x1b, 0xcf,
+ 0xc0, 0x1c, 0x56, 0xea, 0x21, 0x4f, 0xed, 0xa8, 0x9e, 0x1a, 0xd0, 0xfe, 0x18, 0xd1, 0xc6, 0x7e,
+ 0xdf, 0x64, 0x83, 0x21, 0x3b, 0x9d, 0xfe, 0xee, 0x81, 0x1f, 0x59, 0x4f, 0x51, 0x3b, 0xb1, 0x8c,
+ 0xc7, 0xd6, 0xfb, 0xd6, 0x74, 0x57, 0xaa, 0x50, 0x0c, 0x06, 0xbe, 0x94, 0x07, 0x1a, 0xfa, 0xa2,
+ 0x80, 0xbb, 0xa0, 0x7a, 0x73, 0x15, 0xf7, 0x2f, 0x2f, 0x35, 0xc4, 0x14, 0xee, 0xa3, 0x36, 0xd6,
+ 0x77, 0x1a, 0x8a, 0xdc, 0xde, 0xda, 0x59, 0xdf, 0x6c, 0x88, 0xe9, 0x60, 0xc3, 0xfe, 0x83, 0x14,
+ 0x94, 0xc2, 0x67, 0x2f, 0xe9, 0x27, 0xe1, 0x18, 0xbf, 0x28, 0x71, 0x91, 0xa7, 0x5c, 0xd7, 0x1d,
+ 0xb2, 0x17, 0x7b, 0x2a, 0xad, 0x8b, 0x7e, 0x34, 0xcc, 0x32, 0xad, 0x16, 0xf2, 0x9e, 0xd7, 0x1d,
+ 0xbc, 0xd3, 0x7a, 0xaa, 0x27, 0x6d, 0xc0, 0x09, 0xd3, 0x52, 0x5c, 0x4f, 0x35, 0x3b, 0xaa, 0xd3,
+ 0x51, 0x06, 0x57, 0x54, 0x8a, 0xaa, 0x69, 0xc8, 0x75, 0x2d, 0x5a, 0x03, 0x7d, 0x96, 0x8f, 0x98,
+ 0x56, 0x8b, 0x29, 0x0f, 0x8a, 0x43, 0x8d, 0xa9, 0x46, 0x22, 0x37, 0x7d, 0x58, 0xe4, 0x3e, 0x08,
+ 0xf9, 0x9e, 0x6a, 0x2b, 0xc8, 0xf4, 0x9c, 0x03, 0xd2, 0x71, 0xe7, 0xe4, 0x5c, 0x4f, 0xb5, 0x1b,
+ 0xf8, 0xf9, 0x83, 0x39, 0xf8, 0xfc, 0x53, 0x1a, 0x8a, 0xc1, 0xae, 0x1b, 0x1f, 0x62, 0x34, 0x52,
+ 0xa0, 0x04, 0x92, 0xc2, 0x1e, 0xbe, 0x6f, 0x8f, 0xbe, 0x5c, 0xc7, 0x95, 0xab, 0x3a, 0x4e, 0x7b,
+ 0x61, 0x99, 0x22, 0x71, 0xd7, 0x80, 0x43, 0x0b, 0xd1, 0xde, 0x23, 0x27, 0xb3, 0x27, 0x69, 0x0d,
+ 0xc6, 0xaf, 0xb8, 0x84, 0x7b, 0x9c, 0x70, 0x3f, 0x72, 0x7f, 0xee, 0xcb, 0x2d, 0x42, 0x9e, 0xbf,
+ 0xdc, 0x52, 0xb6, 0x9a, 0xf2, 0x66, 0x6d, 0x43, 0x66, 0x70, 0xe9, 0x38, 0x64, 0x0c, 0xf5, 0xc6,
+ 0x41, 0xb8, 0xc6, 0x11, 0x51, 0x52, 0xc7, 0x1f, 0x87, 0xcc, 0x75, 0xa4, 0x5e, 0x0d, 0x57, 0x16,
+ 0x22, 0x7a, 0x1f, 0x43, 0xff, 0x14, 0x64, 0x89, 0xbf, 0x24, 0x00, 0xe6, 0x31, 0x71, 0x4c, 0xca,
+ 0x41, 0xa6, 0xde, 0x94, 0x71, 0xf8, 0x8b, 0x50, 0xa4, 0x52, 0x65, 0x7b, 0xbd, 0x51, 0x6f, 0x88,
+ 0xa9, 0xca, 0x59, 0x18, 0xa7, 0x4e, 0xc0, 0x5b, 0xc3, 0x77, 0x83, 0x38, 0xc6, 0x1e, 0x19, 0x87,
+ 0xc0, 0x47, 0xdb, 0x9b, 0x2b, 0x0d, 0x59, 0x4c, 0x05, 0x97, 0xd7, 0x85, 0x62, 0xb0, 0xe1, 0xfe,
+ 0x60, 0x62, 0xea, 0xfb, 0x02, 0x14, 0x02, 0x0d, 0x34, 0xee, 0x7c, 0x54, 0xc3, 0xb0, 0xae, 0x2b,
+ 0xaa, 0xa1, 0xab, 0x2e, 0x0b, 0x0a, 0x20, 0xa2, 0x1a, 0x96, 0x24, 0x5d, 0xb4, 0x0f, 0xc4, 0xf8,
+ 0xd7, 0x05, 0x10, 0xa3, 0xbd, 0x6b, 0xc4, 0x40, 0xe1, 0x43, 0x35, 0xf0, 0x35, 0x01, 0x4a, 0xe1,
+ 0x86, 0x35, 0x62, 0xde, 0xc9, 0x0f, 0xd5, 0xbc, 0xb7, 0x53, 0x30, 0x19, 0x6a, 0x53, 0x93, 0x5a,
+ 0xf7, 0x39, 0x98, 0xd6, 0x3b, 0xa8, 0x67, 0x5b, 0x1e, 0x32, 0xb5, 0x03, 0xc5, 0x40, 0xd7, 0x90,
+ 0x51, 0xae, 0x90, 0x44, 0x71, 0xea, 0xfe, 0x8d, 0xf0, 0xf2, 0xfa, 0x00, 0xb7, 0x81, 0x61, 0xd5,
+ 0x99, 0xf5, 0xd5, 0xc6, 0xe6, 0x76, 0x73, 0xa7, 0xb1, 0x55, 0x7f, 0x51, 0x69, 0x6f, 0xfd, 0xd4,
+ 0x56, 0xf3, 0xf9, 0x2d, 0x59, 0xd4, 0x23, 0x6a, 0xef, 0xe3, 0x56, 0xdf, 0x06, 0x31, 0x6a, 0x94,
+ 0x74, 0x0c, 0x46, 0x99, 0x25, 0x8e, 0x49, 0x33, 0x30, 0xb5, 0xd5, 0x54, 0x5a, 0xeb, 0xab, 0x0d,
+ 0xa5, 0x71, 0xe9, 0x52, 0xa3, 0xbe, 0xd3, 0xa2, 0x57, 0x1b, 0xbe, 0xf6, 0x4e, 0x78, 0x53, 0xbf,
+ 0x9a, 0x86, 0x99, 0x11, 0x96, 0x48, 0x35, 0x76, 0x28, 0xa1, 0xe7, 0xa4, 0xa7, 0x92, 0x58, 0xbf,
+ 0x8c, 0xbb, 0x82, 0x6d, 0xd5, 0xf1, 0xd8, 0x19, 0xe6, 0x71, 0xc0, 0x5e, 0x32, 0x3d, 0x7d, 0x4f,
+ 0x47, 0x0e, 0xbb, 0x09, 0xa2, 0x27, 0x95, 0xa9, 0x81, 0x9c, 0x5e, 0x06, 0x7d, 0x0c, 0x24, 0xdb,
+ 0x72, 0x75, 0x4f, 0xbf, 0x86, 0x14, 0xdd, 0xe4, 0xd7, 0x46, 0xf8, 0xe4, 0x92, 0x91, 0x45, 0x3e,
+ 0xb2, 0x6e, 0x7a, 0xbe, 0xb6, 0x89, 0xba, 0x6a, 0x44, 0x1b, 0x27, 0xf0, 0xb4, 0x2c, 0xf2, 0x11,
+ 0x5f, 0xfb, 0x24, 0x14, 0x3b, 0x56, 0x1f, 0xb7, 0x73, 0x54, 0x0f, 0xd7, 0x0b, 0x41, 0x2e, 0x50,
+ 0x99, 0xaf, 0xc2, 0x1a, 0xf5, 0xc1, 0x7d, 0x55, 0x51, 0x2e, 0x50, 0x19, 0x55, 0x79, 0x0c, 0xa6,
+ 0xd4, 0x6e, 0xd7, 0xc1, 0xe4, 0x9c, 0x88, 0x1e, 0x3d, 0x4a, 0xbe, 0x98, 0x28, 0xce, 0x5f, 0x86,
+ 0x1c, 0xf7, 0x03, 0x2e, 0xc9, 0xd8, 0x13, 0x8a, 0x4d, 0xcf, 0xd3, 0xa9, 0xa5, 0xbc, 0x9c, 0x33,
+ 0xf9, 0xe0, 0x49, 0x28, 0xea, 0xae, 0x32, 0xb8, 0x7e, 0x4f, 0x2d, 0xa6, 0x96, 0x72, 0x72, 0x41,
+ 0x77, 0xfd, 0xab, 0xcb, 0xca, 0x1b, 0x29, 0x28, 0x85, 0x3f, 0x1f, 0x48, 0xab, 0x90, 0x33, 0x2c,
+ 0x4d, 0x25, 0xa1, 0x45, 0xbf, 0x5d, 0x2d, 0xc5, 0x7c, 0x71, 0x58, 0xde, 0x60, 0xfa, 0xb2, 0x8f,
+ 0x9c, 0xff, 0x07, 0x01, 0x72, 0x5c, 0x2c, 0xcd, 0x41, 0xc6, 0x56, 0xbd, 0x7d, 0x42, 0x97, 0x5d,
+ 0x49, 0x89, 0x82, 0x4c, 0x9e, 0xb1, 0xdc, 0xb5, 0x55, 0x93, 0x84, 0x00, 0x93, 0xe3, 0x67, 0xbc,
+ 0xae, 0x06, 0x52, 0x3b, 0xe4, 0x5c, 0x63, 0xf5, 0x7a, 0xc8, 0xf4, 0x5c, 0xbe, 0xae, 0x4c, 0x5e,
+ 0x67, 0x62, 0xe9, 0x49, 0x98, 0xf6, 0x1c, 0x55, 0x37, 0x42, 0xba, 0x19, 0xa2, 0x2b, 0xf2, 0x01,
+ 0x5f, 0xb9, 0x0a, 0xc7, 0x39, 0x6f, 0x07, 0x79, 0xaa, 0xb6, 0x8f, 0x3a, 0x03, 0xd0, 0x38, 0xb9,
+ 0xbf, 0x38, 0xc6, 0x14, 0x56, 0xd9, 0x38, 0xc7, 0x56, 0x7e, 0x28, 0xc0, 0x34, 0x3f, 0x89, 0x75,
+ 0x7c, 0x67, 0x6d, 0x02, 0xa8, 0xa6, 0x69, 0x79, 0x41, 0x77, 0x0d, 0x87, 0xf2, 0x10, 0x6e, 0xb9,
+ 0xe6, 0x83, 0xe4, 0x00, 0xc1, 0x7c, 0x0f, 0x60, 0x30, 0x72, 0xa8, 0xdb, 0x4e, 0x40, 0x81, 0x7d,
+ 0x1b, 0x22, 0x1f, 0x18, 0xe9, 0xd9, 0x1d, 0xa8, 0x08, 0x1f, 0xd9, 0xa4, 0x59, 0xc8, 0xee, 0xa2,
+ 0xae, 0x6e, 0xb2, 0x1b, 0x5f, 0xfa, 0xc0, 0x6f, 0x58, 0x32, 0xfe, 0x0d, 0xcb, 0xca, 0x67, 0x61,
+ 0x46, 0xb3, 0x7a, 0x51, 0x73, 0x57, 0xc4, 0xc8, 0xfd, 0x81, 0xfb, 0x9c, 0xf0, 0x12, 0x0c, 0x5a,
+ 0xcc, 0x1f, 0x0b, 0xc2, 0xd7, 0x52, 0xe9, 0xb5, 0xed, 0x95, 0x6f, 0xa6, 0xe6, 0xd7, 0x28, 0x74,
+ 0x9b, 0xcf, 0x54, 0x46, 0x7b, 0x06, 0xd2, 0xb0, 0xf5, 0xf0, 0xf5, 0x27, 0xe1, 0xa9, 0xae, 0xee,
+ 0xed, 0xf7, 0x77, 0x97, 0x35, 0xab, 0x77, 0xaa, 0x6b, 0x75, 0xad, 0xc1, 0x37, 0x55, 0xfc, 0x44,
+ 0x1e, 0xc8, 0x5f, 0xec, 0xbb, 0x6a, 0xde, 0x97, 0xce, 0xc7, 0x7e, 0x84, 0xad, 0x6e, 0xc1, 0x0c,
+ 0x53, 0x56, 0xc8, 0x87, 0x1d, 0x7a, 0x3c, 0x91, 0xee, 0x7b, 0x39, 0x56, 0xfe, 0xf6, 0x3b, 0xa4,
+ 0x5c, 0xcb, 0xd3, 0x0c, 0x8a, 0xc7, 0xe8, 0x09, 0xa6, 0x2a, 0xc3, 0x03, 0x21, 0x3e, 0xba, 0x35,
+ 0x91, 0x13, 0xc3, 0xf8, 0x03, 0xc6, 0x38, 0x13, 0x60, 0x6c, 0x31, 0x68, 0xb5, 0x0e, 0x93, 0x47,
+ 0xe1, 0xfa, 0x3b, 0xc6, 0x55, 0x44, 0x41, 0x92, 0x35, 0x98, 0x22, 0x24, 0x5a, 0xdf, 0xf5, 0xac,
+ 0x1e, 0xc9, 0x7b, 0xf7, 0xa7, 0xf9, 0xfb, 0x77, 0xe8, 0x5e, 0x29, 0x61, 0x58, 0xdd, 0x47, 0x55,
+ 0xab, 0x40, 0xbe, 0x65, 0x75, 0x90, 0x66, 0xc4, 0x30, 0xbc, 0xc9, 0x0c, 0xf1, 0xf5, 0xab, 0x9f,
+ 0x81, 0x59, 0xfc, 0x37, 0x49, 0x4b, 0x41, 0x4b, 0xe2, 0x6f, 0xd2, 0xca, 0x3f, 0x7c, 0x85, 0x6e,
+ 0xc7, 0x19, 0x9f, 0x20, 0x60, 0x53, 0x60, 0x15, 0xbb, 0xc8, 0xf3, 0x90, 0xe3, 0x2a, 0xaa, 0x31,
+ 0xca, 0xbc, 0xc0, 0x55, 0x44, 0xf9, 0xcb, 0xef, 0x86, 0x57, 0x71, 0x8d, 0x22, 0x6b, 0x86, 0x51,
+ 0x6d, 0xc3, 0xb1, 0x11, 0x51, 0x91, 0x80, 0xf3, 0x55, 0xc6, 0x39, 0x3b, 0x14, 0x19, 0x98, 0x76,
+ 0x1b, 0xb8, 0xdc, 0x5f, 0xcb, 0x04, 0x9c, 0xbf, 0xcb, 0x38, 0x25, 0x86, 0xe5, 0x4b, 0x8a, 0x19,
+ 0x2f, 0xc3, 0xf4, 0x35, 0xe4, 0xec, 0x5a, 0x2e, 0xbb, 0xfe, 0x49, 0x40, 0xf7, 0x1a, 0xa3, 0x9b,
+ 0x62, 0x40, 0x72, 0x1f, 0x84, 0xb9, 0x2e, 0x40, 0x6e, 0x4f, 0xd5, 0x50, 0x02, 0x8a, 0xaf, 0x30,
+ 0x8a, 0x09, 0xac, 0x8f, 0xa1, 0x35, 0x28, 0x76, 0x2d, 0x56, 0x99, 0xe2, 0xe1, 0xaf, 0x33, 0x78,
+ 0x81, 0x63, 0x18, 0x85, 0x6d, 0xd9, 0x7d, 0x03, 0x97, 0xad, 0x78, 0x8a, 0xdf, 0xe3, 0x14, 0x1c,
+ 0xc3, 0x28, 0x8e, 0xe0, 0xd6, 0xaf, 0x72, 0x0a, 0x37, 0xe0, 0xcf, 0x67, 0xa1, 0x60, 0x99, 0xc6,
+ 0x81, 0x65, 0x26, 0x31, 0xe2, 0x16, 0x63, 0x00, 0x06, 0xc1, 0x04, 0x17, 0x21, 0x9f, 0x74, 0x21,
+ 0xfe, 0xe0, 0x5d, 0xbe, 0x3d, 0xf8, 0x0a, 0xac, 0xc1, 0x14, 0x4f, 0x50, 0xba, 0x65, 0x26, 0xa0,
+ 0xf8, 0x3a, 0xa3, 0x28, 0x05, 0x60, 0x6c, 0x1a, 0x1e, 0x72, 0xbd, 0x2e, 0x4a, 0x42, 0xf2, 0x06,
+ 0x9f, 0x06, 0x83, 0x30, 0x57, 0xee, 0x22, 0x53, 0xdb, 0x4f, 0xc6, 0xf0, 0x0d, 0xee, 0x4a, 0x8e,
+ 0xc1, 0x14, 0x75, 0x98, 0xec, 0xa9, 0x8e, 0xbb, 0xaf, 0x1a, 0x89, 0x96, 0xe3, 0x0f, 0x19, 0x47,
+ 0xd1, 0x07, 0x31, 0x8f, 0xf4, 0xcd, 0xa3, 0xd0, 0x7c, 0x93, 0x7b, 0x24, 0x00, 0x63, 0x5b, 0xcf,
+ 0xf5, 0xc8, 0x5d, 0xd9, 0x51, 0xd8, 0xfe, 0x88, 0x6f, 0x3d, 0x8a, 0xdd, 0x0c, 0x32, 0x5e, 0x84,
+ 0xbc, 0xab, 0xdf, 0x48, 0x44, 0xf3, 0xc7, 0x7c, 0xa5, 0x09, 0x00, 0x83, 0x5f, 0x84, 0xe3, 0x23,
+ 0xcb, 0x44, 0x02, 0xb2, 0x3f, 0x61, 0x64, 0x73, 0x23, 0x4a, 0x05, 0x4b, 0x09, 0x47, 0xa5, 0xfc,
+ 0x53, 0x9e, 0x12, 0x50, 0x84, 0x6b, 0x1b, 0x9f, 0x15, 0x5c, 0x75, 0xef, 0x68, 0x5e, 0xfb, 0x33,
+ 0xee, 0x35, 0x8a, 0x0d, 0x79, 0x6d, 0x07, 0xe6, 0x18, 0xe3, 0xd1, 0xd6, 0xf5, 0x5b, 0x3c, 0xb1,
+ 0x52, 0x74, 0x3b, 0xbc, 0xba, 0x9f, 0x85, 0x79, 0xdf, 0x9d, 0xbc, 0x29, 0x75, 0x95, 0x9e, 0x6a,
+ 0x27, 0x60, 0xfe, 0x36, 0x63, 0xe6, 0x19, 0xdf, 0xef, 0x6a, 0xdd, 0x4d, 0xd5, 0xc6, 0xe4, 0x2f,
+ 0x40, 0x99, 0x93, 0xf7, 0x4d, 0x07, 0x69, 0x56, 0xd7, 0xd4, 0x6f, 0xa0, 0x4e, 0x02, 0xea, 0x3f,
+ 0x8f, 0x2c, 0x55, 0x3b, 0x00, 0xc7, 0xcc, 0xeb, 0x20, 0xfa, 0xbd, 0x8a, 0xa2, 0xf7, 0x6c, 0xcb,
+ 0xf1, 0x62, 0x18, 0xff, 0x82, 0xaf, 0x94, 0x8f, 0x5b, 0x27, 0xb0, 0x6a, 0x03, 0x4a, 0xe4, 0x31,
+ 0x69, 0x48, 0xfe, 0x25, 0x23, 0x9a, 0x1c, 0xa0, 0x58, 0xe2, 0xd0, 0xac, 0x9e, 0xad, 0x3a, 0x49,
+ 0xf2, 0xdf, 0x5f, 0xf1, 0xc4, 0xc1, 0x20, 0x2c, 0x71, 0x78, 0x07, 0x36, 0xc2, 0xd5, 0x3e, 0x01,
+ 0xc3, 0x77, 0x78, 0xe2, 0xe0, 0x18, 0x46, 0xc1, 0x1b, 0x86, 0x04, 0x14, 0x7f, 0xcd, 0x29, 0x38,
+ 0x06, 0x53, 0x7c, 0x7a, 0x50, 0x68, 0x1d, 0xd4, 0xd5, 0x5d, 0xcf, 0xa1, 0xad, 0xf0, 0xfd, 0xa9,
+ 0xbe, 0xfb, 0x6e, 0xb8, 0x09, 0x93, 0x03, 0x50, 0x9c, 0x89, 0xd8, 0x15, 0x2a, 0x39, 0x29, 0xc5,
+ 0x1b, 0xf6, 0x3d, 0x9e, 0x89, 0x02, 0x30, 0x6c, 0x5b, 0xa0, 0x43, 0xc4, 0x6e, 0xd7, 0xf0, 0xf9,
+ 0x20, 0x01, 0xdd, 0xf7, 0x23, 0xc6, 0xb5, 0x38, 0x16, 0x73, 0x06, 0xfa, 0x9f, 0xbe, 0x79, 0x15,
+ 0x1d, 0x24, 0x8a, 0xce, 0xbf, 0x89, 0xf4, 0x3f, 0x6d, 0x8a, 0xa4, 0x39, 0x64, 0x2a, 0xd2, 0x4f,
+ 0x49, 0x71, 0xbf, 0x02, 0x2a, 0xff, 0xdc, 0x5d, 0x36, 0xdf, 0x70, 0x3b, 0x55, 0xdd, 0xc0, 0x41,
+ 0x1e, 0x6e, 0x7a, 0xe2, 0xc9, 0x5e, 0xb9, 0xeb, 0xc7, 0x79, 0xa8, 0xe7, 0xa9, 0x5e, 0x82, 0xc9,
+ 0x50, 0xc3, 0x13, 0x4f, 0xf5, 0xf3, 0x8c, 0xaa, 0x18, 0xec, 0x77, 0xaa, 0x67, 0x21, 0x83, 0x9b,
+ 0x97, 0x78, 0xf8, 0x2f, 0x30, 0x38, 0x51, 0xaf, 0x7e, 0x02, 0x72, 0xbc, 0x69, 0x89, 0x87, 0xfe,
+ 0x22, 0x83, 0xfa, 0x10, 0x0c, 0xe7, 0x0d, 0x4b, 0x3c, 0xfc, 0x97, 0x38, 0x9c, 0x43, 0x30, 0x3c,
+ 0xb9, 0x0b, 0xff, 0xf6, 0x57, 0x32, 0xac, 0xe8, 0x70, 0xdf, 0x5d, 0x84, 0x09, 0xd6, 0xa9, 0xc4,
+ 0xa3, 0x3f, 0xcf, 0x5e, 0xce, 0x11, 0xd5, 0xf3, 0x90, 0x4d, 0xe8, 0xf0, 0x5f, 0x63, 0x50, 0xaa,
+ 0x5f, 0xad, 0x43, 0x21, 0xd0, 0x9d, 0xc4, 0xc3, 0x7f, 0x9d, 0xc1, 0x83, 0x28, 0x6c, 0x3a, 0xeb,
+ 0x4e, 0xe2, 0x09, 0x7e, 0x83, 0x9b, 0xce, 0x10, 0xd8, 0x6d, 0xbc, 0x31, 0x89, 0x47, 0x7f, 0x81,
+ 0x7b, 0x9d, 0x43, 0xaa, 0xcf, 0x42, 0xde, 0x2f, 0x36, 0xf1, 0xf8, 0xdf, 0x64, 0xf8, 0x01, 0x06,
+ 0x7b, 0x20, 0x50, 0xec, 0xe2, 0x29, 0x7e, 0x8b, 0x7b, 0x20, 0x80, 0xc2, 0xdb, 0x28, 0xda, 0xc0,
+ 0xc4, 0x33, 0x7d, 0x91, 0x6f, 0xa3, 0x48, 0xff, 0x82, 0x57, 0x93, 0xe4, 0xfc, 0x78, 0x8a, 0xdf,
+ 0xe6, 0xab, 0x49, 0xf4, 0xb1, 0x19, 0xd1, 0x8e, 0x20, 0x9e, 0xe3, 0x77, 0xb8, 0x19, 0x91, 0x86,
+ 0xa0, 0xba, 0x0d, 0xd2, 0x70, 0x37, 0x10, 0xcf, 0xf7, 0x25, 0xc6, 0x37, 0x3d, 0xd4, 0x0c, 0x54,
+ 0x9f, 0x87, 0xb9, 0xd1, 0x9d, 0x40, 0x3c, 0xeb, 0x97, 0xef, 0x46, 0xce, 0x6e, 0xc1, 0x46, 0xa0,
+ 0xba, 0x33, 0x28, 0x29, 0xc1, 0x2e, 0x20, 0x9e, 0xf6, 0xd5, 0xbb, 0xe1, 0xc4, 0x1d, 0x6c, 0x02,
+ 0xaa, 0x35, 0x80, 0x41, 0x01, 0x8e, 0xe7, 0x7a, 0x8d, 0x71, 0x05, 0x40, 0x78, 0x6b, 0xb0, 0xfa,
+ 0x1b, 0x8f, 0xff, 0x0a, 0xdf, 0x1a, 0x0c, 0x81, 0xb7, 0x06, 0x2f, 0xbd, 0xf1, 0xe8, 0xd7, 0xf9,
+ 0xd6, 0xe0, 0x10, 0x1c, 0xd9, 0x81, 0xea, 0x16, 0xcf, 0x70, 0x8b, 0x47, 0x76, 0x00, 0x55, 0xdd,
+ 0x82, 0xe9, 0xa1, 0x82, 0x18, 0x4f, 0xf5, 0x35, 0x46, 0x25, 0x46, 0xeb, 0x61, 0xb0, 0x78, 0xb1,
+ 0x62, 0x18, 0xcf, 0xf6, 0xfb, 0x91, 0xe2, 0xc5, 0x6a, 0x61, 0xf5, 0x22, 0xe4, 0xcc, 0xbe, 0x61,
+ 0xe0, 0xcd, 0x23, 0xdd, 0xff, 0x97, 0x7b, 0xe5, 0x7f, 0xbb, 0xc7, 0xbc, 0xc3, 0x01, 0xd5, 0xb3,
+ 0x90, 0x45, 0xbd, 0x5d, 0xd4, 0x89, 0x43, 0xfe, 0xfb, 0x3d, 0x9e, 0x30, 0xb1, 0x76, 0xf5, 0x59,
+ 0x00, 0x7a, 0x35, 0x42, 0x3e, 0xfb, 0xc5, 0x60, 0xff, 0xe3, 0x1e, 0xfb, 0x4d, 0xcd, 0x00, 0x32,
+ 0x20, 0xa0, 0xbf, 0xd0, 0xb9, 0x3f, 0xc1, 0xbb, 0x61, 0x02, 0xb2, 0x22, 0x17, 0x60, 0xe2, 0x8a,
+ 0x6b, 0x99, 0x9e, 0xda, 0x8d, 0x43, 0xff, 0x27, 0x43, 0x73, 0x7d, 0xec, 0xb0, 0x9e, 0xe5, 0x20,
+ 0x4f, 0xed, 0xba, 0x71, 0xd8, 0xff, 0x62, 0x58, 0x1f, 0x80, 0xc1, 0x9a, 0xea, 0x7a, 0x49, 0xe6,
+ 0xfd, 0xdf, 0x1c, 0xcc, 0x01, 0xd8, 0x68, 0xfc, 0xf7, 0x55, 0x74, 0x10, 0x87, 0xfd, 0x11, 0x37,
+ 0x9a, 0xe9, 0x57, 0x3f, 0x01, 0x79, 0xfc, 0x27, 0xfd, 0xa1, 0x5c, 0x0c, 0xf8, 0x7f, 0x18, 0x78,
+ 0x80, 0xc0, 0x6f, 0x76, 0xbd, 0x8e, 0xa7, 0xc7, 0x3b, 0xfb, 0x7f, 0xd9, 0x4a, 0x73, 0xfd, 0x6a,
+ 0x0d, 0x0a, 0xae, 0xd7, 0xe9, 0xf4, 0x59, 0x7f, 0x1a, 0x03, 0xff, 0xbf, 0x7b, 0xfe, 0x95, 0x85,
+ 0x8f, 0xc1, 0xab, 0x7d, 0xfd, 0xaa, 0x67, 0x5b, 0xe4, 0x33, 0x47, 0x1c, 0xc3, 0x5d, 0xc6, 0x10,
+ 0x80, 0xac, 0x34, 0x46, 0x5f, 0xdf, 0xc2, 0x9a, 0xb5, 0x66, 0xd1, 0x8b, 0xdb, 0x97, 0x2a, 0xf1,
+ 0x37, 0xb0, 0x70, 0x6f, 0x02, 0x27, 0xf3, 0x41, 0x6e, 0x63, 0xb7, 0xb1, 0xc5, 0xa0, 0x6c, 0xfe,
+ 0x68, 0x57, 0xb9, 0x95, 0x4f, 0x81, 0x50, 0x93, 0xe6, 0x60, 0x9c, 0xcc, 0xe1, 0x27, 0xc8, 0x15,
+ 0x75, 0x5a, 0x66, 0x4f, 0xd2, 0x43, 0x20, 0xac, 0xb0, 0xbb, 0xf2, 0xa9, 0xe5, 0xd0, 0x9b, 0x57,
+ 0x64, 0x61, 0xa5, 0x9a, 0x79, 0xeb, 0xd6, 0x89, 0xb1, 0x8a, 0x06, 0xc2, 0x0a, 0xd6, 0xac, 0x93,
+ 0x0f, 0x98, 0x43, 0x9a, 0x75, 0x59, 0xa8, 0xe3, 0xe1, 0x55, 0xf6, 0xd3, 0xcd, 0xc8, 0xf0, 0xaa,
+ 0x2c, 0xac, 0x4a, 0x8b, 0x20, 0x5c, 0x22, 0x1f, 0x6d, 0x0a, 0xa7, 0xa5, 0xf0, 0x70, 0xd3, 0xe8,
+ 0xd4, 0x65, 0xe1, 0x52, 0xe5, 0x41, 0x10, 0x56, 0x03, 0x66, 0x0a, 0x41, 0x33, 0x2b, 0x5f, 0x14,
+ 0x40, 0xa8, 0xfb, 0xa3, 0xa7, 0xc9, 0x8b, 0x04, 0x36, 0x7a, 0xda, 0x97, 0x3f, 0xcd, 0xbe, 0x4c,
+ 0xb0, 0x27, 0x5f, 0x7e, 0x86, 0x5c, 0xb4, 0x73, 0xfd, 0x33, 0xbe, 0xfc, 0x2c, 0xf9, 0xa1, 0x64,
+ 0x91, 0xc9, 0xcf, 0xfa, 0xf2, 0x73, 0xe4, 0xb3, 0x11, 0x7f, 0xfb, 0x39, 0x5f, 0x7e, 0x9e, 0xfc,
+ 0xd7, 0x93, 0x14, 0x93, 0x9f, 0xaf, 0x5c, 0x00, 0xa1, 0x1d, 0x32, 0x2a, 0x7d, 0xa8, 0x51, 0x93,
+ 0xdc, 0x28, 0xe6, 0xd2, 0xe7, 0x20, 0xd3, 0x36, 0xad, 0xcd, 0x23, 0xa3, 0xc5, 0x5f, 0xbe, 0x75,
+ 0x62, 0xec, 0x0b, 0xb7, 0x4e, 0x8c, 0x7d, 0xf5, 0xd6, 0x89, 0x31, 0xc2, 0x74, 0x09, 0x32, 0x4d,
+ 0xa3, 0x73, 0xf8, 0x0a, 0x2f, 0x0e, 0x56, 0x78, 0xd8, 0xf3, 0x81, 0x45, 0xbe, 0x4c, 0x78, 0x56,
+ 0xb0, 0x3e, 0x5f, 0xe7, 0x91, 0x2b, 0x55, 0x4f, 0xb0, 0x96, 0x3f, 0x4b, 0xb8, 0xea, 0x87, 0x2d,
+ 0xe7, 0x7b, 0x5e, 0xc8, 0xa4, 0x0b, 0x73, 0x8e, 0xbc, 0xbf, 0x1d, 0x79, 0x7f, 0x7e, 0xe4, 0xfb,
+ 0x03, 0x5e, 0xaf, 0xac, 0xc1, 0x04, 0xc6, 0x05, 0x17, 0x26, 0x21, 0xb4, 0x5a, 0x0c, 0x2e, 0xcc,
+ 0xca, 0x99, 0x37, 0x6f, 0x2f, 0x8c, 0xbd, 0x75, 0x7b, 0x61, 0xec, 0x1f, 0x6f, 0x2f, 0x8c, 0xbd,
+ 0x7d, 0x7b, 0x41, 0xf8, 0xd1, 0xed, 0x05, 0xe1, 0xc7, 0xb7, 0x17, 0x84, 0x9b, 0x77, 0x16, 0x84,
+ 0x6f, 0xdc, 0x59, 0x10, 0xbe, 0x75, 0x67, 0x41, 0xf8, 0xee, 0x9d, 0x05, 0xe1, 0xcd, 0x3b, 0x0b,
+ 0xc2, 0x5b, 0x77, 0x16, 0x84, 0xb7, 0xef, 0x2c, 0x08, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x4b,
+ 0x91, 0xe1, 0x56, 0xf2, 0x36, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -3090,7 +3124,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3118,7 +3152,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3127,6 +3161,9 @@ func (m *A) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnrecognized
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3149,7 +3186,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3164,6 +3201,9 @@ func (m *A) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthUnrecognized
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3191,7 +3231,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3219,7 +3259,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3228,6 +3268,9 @@ func (m *B) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnrecognized
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3252,7 +3295,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3261,6 +3304,9 @@ func (m *B) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnrecognized
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3285,7 +3331,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3294,6 +3340,9 @@ func (m *B) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnrecognized
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3313,6 +3362,9 @@ func (m *B) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthUnrecognized
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3341,7 +3393,7 @@ func (m *D) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3369,7 +3421,7 @@ func (m *D) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3384,6 +3436,9 @@ func (m *D) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthUnrecognized
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3412,7 +3467,7 @@ func (m *C) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3452,7 +3507,7 @@ func (m *C) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3462,6 +3517,9 @@ func (m *C) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnrecognized
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3494,7 +3552,7 @@ func (m *C) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3503,6 +3561,9 @@ func (m *C) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnrecognized
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3523,7 +3584,7 @@ func (m *C) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3550,7 +3611,7 @@ func (m *C) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3559,6 +3620,9 @@ func (m *C) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnrecognized
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3589,6 +3653,9 @@ func (m *C) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthUnrecognized
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3617,7 +3684,7 @@ func (m *U) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3652,7 +3719,7 @@ func (m *U) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3661,6 +3728,9 @@ func (m *U) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnrecognized
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3696,7 +3766,7 @@ func (m *U) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (uint32(b) & 0x7F) << shift
+ v |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3711,6 +3781,9 @@ func (m *U) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthUnrecognized
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3738,7 +3811,7 @@ func (m *OldA) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3766,7 +3839,7 @@ func (m *OldA) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3775,6 +3848,9 @@ func (m *OldA) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnrecognized
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3797,7 +3873,7 @@ func (m *OldA) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3812,6 +3888,9 @@ func (m *OldA) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthUnrecognized
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3839,7 +3918,7 @@ func (m *OldB) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3867,7 +3946,7 @@ func (m *OldB) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3876,6 +3955,9 @@ func (m *OldB) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnrecognized
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3900,7 +3982,7 @@ func (m *OldB) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3909,6 +3991,9 @@ func (m *OldB) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnrecognized
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3928,6 +4013,9 @@ func (m *OldB) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthUnrecognized
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3956,7 +4044,7 @@ func (m *OldC) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3984,7 +4072,7 @@ func (m *OldC) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4016,7 +4104,7 @@ func (m *OldC) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4026,6 +4114,9 @@ func (m *OldC) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnrecognized
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4046,7 +4137,7 @@ func (m *OldC) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4073,7 +4164,7 @@ func (m *OldC) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4082,6 +4173,9 @@ func (m *OldC) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnrecognized
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4112,6 +4206,9 @@ func (m *OldC) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthUnrecognized
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -4140,7 +4237,7 @@ func (m *OldU) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4168,7 +4265,7 @@ func (m *OldU) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4178,6 +4275,9 @@ func (m *OldU) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnrecognized
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4205,7 +4305,7 @@ func (m *OldU) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -4214,6 +4314,9 @@ func (m *OldU) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnrecognized
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -4244,6 +4347,9 @@ func (m *OldU) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthUnrecognized
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthUnrecognized
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -4311,10 +4417,13 @@ func skipUnrecognized(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthUnrecognized
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthUnrecognized
+ }
return iNdEx, nil
case 3:
for {
@@ -4343,6 +4452,9 @@ func skipUnrecognized(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthUnrecognized
+ }
}
return iNdEx, nil
case 4:
@@ -4361,35 +4473,3 @@ var (
ErrInvalidLengthUnrecognized = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowUnrecognized = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("unrecognized.proto", fileDescriptor_unrecognized_05a73f113b0c8d63) }
-
-var fileDescriptor_unrecognized_05a73f113b0c8d63 = []byte{
- // 414 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x51, 0xbd, 0x4e, 0xc2, 0x50,
- 0x18, 0xed, 0x47, 0x0b, 0x84, 0x2b, 0x46, 0xd3, 0xc1, 0xdc, 0x68, 0xbc, 0x6d, 0x3a, 0x75, 0x11,
- 0x22, 0xbf, 0x91, 0x49, 0xda, 0xa6, 0x1a, 0x13, 0x43, 0xd2, 0x84, 0x17, 0x80, 0x62, 0x25, 0x41,
- 0x6a, 0x08, 0x2c, 0x0e, 0xc6, 0xd1, 0xd1, 0xc4, 0x17, 0xb0, 0x9b, 0xa3, 0xa3, 0x8f, 0xc0, 0xc8,
- 0xe8, 0x48, 0xfb, 0x04, 0x8e, 0x8e, 0xa6, 0xd7, 0xd2, 0x5c, 0x04, 0x92, 0xea, 0x76, 0xbf, 0x73,
- 0xee, 0x77, 0xce, 0xc9, 0x77, 0x90, 0x38, 0x19, 0x8e, 0x7a, 0x5d, 0xd7, 0x19, 0xf6, 0xef, 0x7a,
- 0x76, 0xe1, 0x76, 0xe4, 0x8e, 0x5d, 0x31, 0xcf, 0x62, 0xfb, 0x47, 0x4e, 0x7f, 0x7c, 0x3d, 0xe9,
- 0x14, 0xba, 0xee, 0x4d, 0xd1, 0x71, 0x1d, 0xb7, 0x48, 0x3f, 0x75, 0x26, 0x57, 0x74, 0xa2, 0x03,
- 0x7d, 0xfd, 0x2c, 0x2b, 0xa7, 0x08, 0x9a, 0xe2, 0x21, 0x02, 0x0d, 0x83, 0xcc, 0xab, 0x5b, 0xa5,
- 0x9d, 0xc2, 0x92, 0x83, 0x66, 0x81, 0x26, 0xee, 0xa1, 0x8c, 0xd9, 0xef, 0x0d, 0xec, 0x63, 0x9c,
- 0x92, 0x41, 0xe5, 0xad, 0x68, 0x6a, 0x08, 0x33, 0x4f, 0xe2, 0x94, 0x2e, 0x02, 0x2d, 0x54, 0xd0,
- 0x31, 0xc8, 0xb0, 0xaa, 0xa0, 0x5b, 0xa0, 0x87, 0xb4, 0x41, 0x97, 0x57, 0x68, 0xc3, 0x02, 0x43,
- 0x94, 0x11, 0x98, 0x38, 0x4d, 0x69, 0x71, 0x99, 0x6e, 0x0d, 0x6c, 0xdd, 0x02, 0x53, 0x39, 0x40,
- 0x60, 0x30, 0x39, 0x80, 0xcd, 0xa1, 0x3c, 0x03, 0x02, 0x3d, 0x66, 0x4b, 0xd4, 0x08, 0x22, 0xb6,
- 0x14, 0xe3, 0x65, 0xcc, 0xcb, 0xa0, 0xe6, 0x22, 0xbc, 0x1c, 0xe3, 0x15, 0x2c, 0x30, 0xff, 0x2b,
- 0x31, 0x5e, 0xc5, 0x69, 0x99, 0x57, 0xf3, 0x11, 0x5e, 0x8d, 0xf1, 0x1a, 0xce, 0x30, 0xee, 0xb5,
- 0x18, 0xaf, 0xe3, 0xac, 0xcc, 0xab, 0xa9, 0x08, 0xaf, 0x2b, 0x27, 0x08, 0xda, 0x4b, 0xa1, 0xf8,
- 0x8d, 0xa1, 0xb6, 0x17, 0xa1, 0xa2, 0x93, 0x9e, 0x23, 0xa1, 0x3d, 0x74, 0x2f, 0xff, 0xbc, 0xbd,
- 0xfb, 0xe8, 0x49, 0xdc, 0x93, 0x27, 0x71, 0x2f, 0x9e, 0xc4, 0x51, 0x25, 0x13, 0x09, 0xad, 0x81,
- 0xdd, 0x0c, 0x2f, 0xbc, 0x68, 0x78, 0xf5, 0xc2, 0x09, 0x4a, 0xbe, 0xa0, 0x3a, 0x5a, 0xa8, 0xb3,
- 0xe8, 0x79, 0x6d, 0x53, 0x7a, 0x82, 0x2e, 0xef, 0xa9, 0x96, 0xbe, 0xa9, 0xce, 0x7f, 0x17, 0x99,
- 0xb4, 0x98, 0x1a, 0xf5, 0x6f, 0xff, 0xf2, 0xcf, 0xad, 0xf5, 0x67, 0xae, 0xae, 0x9c, 0xa1, 0x6c,
- 0xb8, 0xc7, 0x16, 0x93, 0x70, 0xb5, 0x91, 0x67, 0x8b, 0xd1, 0x2a, 0x53, 0x9f, 0x70, 0x33, 0x9f,
- 0x70, 0x1f, 0x3e, 0xe1, 0xe6, 0x3e, 0x81, 0x4f, 0x9f, 0xc0, 0x97, 0x4f, 0xe0, 0x21, 0x20, 0xf0,
- 0x1a, 0x10, 0x78, 0x0b, 0x08, 0xbc, 0x07, 0x04, 0xa6, 0x01, 0x81, 0x59, 0x40, 0x60, 0x1e, 0x10,
- 0xf8, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x75, 0x16, 0xec, 0x6e, 0xfb, 0x03, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.pb.go b/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.pb.go
index 034c7d2e86..ca7d75df55 100644
--- a/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.pb.go
@@ -3,23 +3,21 @@
package unrecognizedgroup
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-import compress_gzip "compress/gzip"
-import bytes "bytes"
-import io_ioutil "io/ioutil"
-
-import strings "strings"
-import reflect "reflect"
-
-import encoding_binary "encoding/binary"
-
-import io "io"
+import (
+ bytes "bytes"
+ compress_gzip "compress/gzip"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
+ io "io"
+ io_ioutil "io/ioutil"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -44,7 +42,7 @@ type NewNoGroup struct {
func (m *NewNoGroup) Reset() { *m = NewNoGroup{} }
func (*NewNoGroup) ProtoMessage() {}
func (*NewNoGroup) Descriptor() ([]byte, []int) {
- return fileDescriptor_unrecognizedgroup_ad1c77f6b1c6f338, []int{0}
+ return fileDescriptor_1dcb9b01ad4951dd, []int{0}
}
func (m *NewNoGroup) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -61,8 +59,8 @@ func (m *NewNoGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *NewNoGroup) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NewNoGroup.Merge(dst, src)
+func (m *NewNoGroup) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NewNoGroup.Merge(m, src)
}
func (m *NewNoGroup) XXX_Size() int {
return m.Size()
@@ -83,7 +81,7 @@ type A struct {
func (m *A) Reset() { *m = A{} }
func (*A) ProtoMessage() {}
func (*A) Descriptor() ([]byte, []int) {
- return fileDescriptor_unrecognizedgroup_ad1c77f6b1c6f338, []int{1}
+ return fileDescriptor_1dcb9b01ad4951dd, []int{1}
}
func (m *A) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -100,8 +98,8 @@ func (m *A) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *A) XXX_Merge(src proto.Message) {
- xxx_messageInfo_A.Merge(dst, src)
+func (m *A) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_A.Merge(m, src)
}
func (m *A) XXX_Size() int {
return m.Size()
@@ -125,7 +123,7 @@ type OldWithGroup struct {
func (m *OldWithGroup) Reset() { *m = OldWithGroup{} }
func (*OldWithGroup) ProtoMessage() {}
func (*OldWithGroup) Descriptor() ([]byte, []int) {
- return fileDescriptor_unrecognizedgroup_ad1c77f6b1c6f338, []int{2}
+ return fileDescriptor_1dcb9b01ad4951dd, []int{2}
}
func (m *OldWithGroup) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OldWithGroup.Unmarshal(m, b)
@@ -133,8 +131,8 @@ func (m *OldWithGroup) XXX_Unmarshal(b []byte) error {
func (m *OldWithGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OldWithGroup.Marshal(b, m, deterministic)
}
-func (dst *OldWithGroup) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OldWithGroup.Merge(dst, src)
+func (m *OldWithGroup) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OldWithGroup.Merge(m, src)
}
func (m *OldWithGroup) XXX_Size() int {
return xxx_messageInfo_OldWithGroup.Size(m)
@@ -157,7 +155,7 @@ type OldWithGroup_Group1 struct {
func (m *OldWithGroup_Group1) Reset() { *m = OldWithGroup_Group1{} }
func (*OldWithGroup_Group1) ProtoMessage() {}
func (*OldWithGroup_Group1) Descriptor() ([]byte, []int) {
- return fileDescriptor_unrecognizedgroup_ad1c77f6b1c6f338, []int{2, 0}
+ return fileDescriptor_1dcb9b01ad4951dd, []int{2, 0}
}
func (m *OldWithGroup_Group1) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OldWithGroup_Group1.Unmarshal(m, b)
@@ -165,8 +163,8 @@ func (m *OldWithGroup_Group1) XXX_Unmarshal(b []byte) error {
func (m *OldWithGroup_Group1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OldWithGroup_Group1.Marshal(b, m, deterministic)
}
-func (dst *OldWithGroup_Group1) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OldWithGroup_Group1.Merge(dst, src)
+func (m *OldWithGroup_Group1) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OldWithGroup_Group1.Merge(m, src)
}
func (m *OldWithGroup_Group1) XXX_Size() int {
return xxx_messageInfo_OldWithGroup_Group1.Size(m)
@@ -188,7 +186,7 @@ type OldWithGroup_Group2 struct {
func (m *OldWithGroup_Group2) Reset() { *m = OldWithGroup_Group2{} }
func (*OldWithGroup_Group2) ProtoMessage() {}
func (*OldWithGroup_Group2) Descriptor() ([]byte, []int) {
- return fileDescriptor_unrecognizedgroup_ad1c77f6b1c6f338, []int{2, 1}
+ return fileDescriptor_1dcb9b01ad4951dd, []int{2, 1}
}
func (m *OldWithGroup_Group2) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OldWithGroup_Group2.Unmarshal(m, b)
@@ -196,8 +194,8 @@ func (m *OldWithGroup_Group2) XXX_Unmarshal(b []byte) error {
func (m *OldWithGroup_Group2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_OldWithGroup_Group2.Marshal(b, m, deterministic)
}
-func (dst *OldWithGroup_Group2) XXX_Merge(src proto.Message) {
- xxx_messageInfo_OldWithGroup_Group2.Merge(dst, src)
+func (m *OldWithGroup_Group2) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OldWithGroup_Group2.Merge(m, src)
}
func (m *OldWithGroup_Group2) XXX_Size() int {
return xxx_messageInfo_OldWithGroup_Group2.Size(m)
@@ -215,6 +213,33 @@ func init() {
proto.RegisterType((*OldWithGroup_Group1)(nil), "unrecognizedgroup.OldWithGroup.Group1")
proto.RegisterType((*OldWithGroup_Group2)(nil), "unrecognizedgroup.OldWithGroup.Group2")
}
+
+func init() { proto.RegisterFile("unrecognizedgroup.proto", fileDescriptor_1dcb9b01ad4951dd) }
+
+var fileDescriptor_1dcb9b01ad4951dd = []byte{
+ // 305 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2f, 0xcd, 0x2b, 0x4a,
+ 0x4d, 0xce, 0x4f, 0xcf, 0xcb, 0xac, 0x4a, 0x4d, 0x49, 0x2f, 0xca, 0x2f, 0x2d, 0xd0, 0x2b, 0x28,
+ 0xca, 0x2f, 0xc9, 0x17, 0x12, 0xc4, 0x90, 0x90, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2,
+ 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0xab, 0x4c, 0x2a, 0x4d, 0x03, 0xf3,
+ 0xc0, 0x1c, 0x30, 0x0b, 0x62, 0x82, 0x52, 0x1e, 0x17, 0x97, 0x5f, 0x6a, 0xb9, 0x5f, 0xbe, 0x3b,
+ 0x48, 0xb3, 0x90, 0x18, 0x17, 0x9b, 0x5b, 0x66, 0x6a, 0x4e, 0x8a, 0xa1, 0x04, 0xa3, 0x02, 0xa3,
+ 0x06, 0x73, 0x10, 0x94, 0x07, 0x17, 0x37, 0x96, 0x60, 0x56, 0x60, 0xd6, 0x60, 0x84, 0x8a, 0x1b,
+ 0x0b, 0x29, 0x71, 0x31, 0x3a, 0x4a, 0xb0, 0x2a, 0x30, 0x6a, 0x70, 0x1b, 0x89, 0xe8, 0x61, 0x3a,
+ 0xd2, 0x31, 0x88, 0xd1, 0xd1, 0x8a, 0xa7, 0x63, 0xa1, 0x3c, 0xe3, 0x84, 0x85, 0xf2, 0x8c, 0x0b,
+ 0x16, 0xca, 0x33, 0x2a, 0x69, 0x72, 0x31, 0x3a, 0x82, 0x8c, 0x73, 0x04, 0x9b, 0x00, 0xb3, 0x06,
+ 0xc2, 0x43, 0x53, 0x7a, 0x8a, 0x89, 0x8b, 0xc7, 0x3f, 0x27, 0x25, 0x3c, 0xb3, 0x24, 0x03, 0xbf,
+ 0xeb, 0xec, 0xb8, 0xd8, 0xc0, 0xf6, 0x19, 0x4a, 0x30, 0x29, 0x30, 0x6a, 0x70, 0x19, 0xa9, 0x61,
+ 0x71, 0x0a, 0xb2, 0x41, 0x7a, 0x60, 0xd2, 0x30, 0x08, 0xaa, 0x0b, 0xa7, 0xef, 0x60, 0xe6, 0x1a,
+ 0x49, 0xb0, 0x90, 0x60, 0xae, 0x11, 0xd4, 0x5c, 0x23, 0xa9, 0x00, 0x2e, 0x36, 0x77, 0x54, 0x1b,
+ 0x70, 0x85, 0xab, 0x11, 0xd8, 0xe5, 0xac, 0x50, 0x71, 0x23, 0x5c, 0x2e, 0x92, 0xb2, 0x80, 0x9a,
+ 0x68, 0x44, 0x94, 0x89, 0x08, 0x9d, 0x46, 0x4e, 0x1a, 0x27, 0x1e, 0xca, 0x31, 0x5c, 0x78, 0x28,
+ 0xc7, 0x70, 0xe3, 0xa1, 0x1c, 0xc3, 0x83, 0x87, 0x72, 0x8c, 0x1f, 0x1e, 0xca, 0x31, 0xfe, 0x78,
+ 0x28, 0xc7, 0xd8, 0xf0, 0x48, 0x8e, 0x71, 0xc5, 0x23, 0x39, 0xc6, 0x0d, 0x8f, 0xe4, 0x18, 0x77,
+ 0x3c, 0x92, 0x63, 0x04, 0x04, 0x00, 0x00, 0xff, 0xff, 0xef, 0x1c, 0xa5, 0xe4, 0x6d, 0x02, 0x00,
+ 0x00,
+}
+
func (this *NewNoGroup) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
return UnrecognizedgroupDescription()
}
@@ -233,256 +258,258 @@ func (this *OldWithGroup_Group2) Description() (desc *github_com_gogo_protobuf_p
func UnrecognizedgroupDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
var gzipped = []byte{
- // 3974 bytes of a gzipped FileDescriptorSet
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xdc, 0xe6,
- 0x75, 0x16, 0xf6, 0xc6, 0xdd, 0xb3, 0xcb, 0x25, 0x08, 0xd2, 0xd4, 0x8a, 0x8e, 0x29, 0x69, 0x7d,
- 0xa3, 0xec, 0x86, 0x8a, 0x29, 0x4b, 0x96, 0x56, 0x8d, 0xdd, 0x25, 0xb9, 0x62, 0xe8, 0x92, 0xdc,
- 0x0d, 0x96, 0x8c, 0x2f, 0x99, 0x0e, 0x06, 0xc4, 0xfe, 0xbb, 0x84, 0x84, 0x05, 0x10, 0x00, 0x2b,
- 0x99, 0x9a, 0x3e, 0xa8, 0xe3, 0xde, 0x32, 0x9d, 0xb6, 0xe9, 0x65, 0xa6, 0x89, 0xeb, 0xb8, 0x51,
- 0x3a, 0x8d, 0xd3, 0xf4, 0x96, 0x34, 0x6d, 0x9a, 0xa4, 0x2f, 0x7d, 0x49, 0x9b, 0xe9, 0x43, 0xa7,
- 0x79, 0xeb, 0x43, 0x1f, 0x22, 0xd7, 0x33, 0xbd, 0x39, 0x4d, 0xda, 0xea, 0x21, 0x33, 0x7e, 0xc9,
- 0xfc, 0x37, 0x2c, 0x80, 0x5d, 0x12, 0x60, 0x66, 0xec, 0xbc, 0x48, 0xc4, 0xf9, 0xcf, 0xf7, 0xe1,
- 0xfc, 0xe7, 0x3f, 0xff, 0x39, 0xe7, 0xff, 0xb1, 0xf0, 0xfd, 0x2b, 0x70, 0xa6, 0x67, 0x59, 0x3d,
- 0x03, 0x9d, 0xb7, 0x1d, 0xcb, 0xb3, 0xf6, 0x06, 0xdd, 0xf3, 0x1d, 0xe4, 0x6a, 0x8e, 0x6e, 0x7b,
- 0x96, 0xb3, 0x44, 0x64, 0xd2, 0x14, 0xd5, 0x58, 0xe2, 0x1a, 0xd5, 0x2d, 0x98, 0xbe, 0xa6, 0x1b,
- 0x68, 0xcd, 0x57, 0x6c, 0x23, 0x4f, 0xba, 0x0c, 0x99, 0xae, 0x6e, 0xa0, 0x8a, 0x70, 0x26, 0xbd,
- 0x58, 0x5c, 0x7e, 0x64, 0x29, 0x02, 0x5a, 0x0a, 0x23, 0x5a, 0x58, 0x2c, 0x13, 0x44, 0xf5, 0xed,
- 0x0c, 0xcc, 0x8c, 0x19, 0x95, 0x24, 0xc8, 0x98, 0x6a, 0x1f, 0x33, 0x0a, 0x8b, 0x05, 0x99, 0xfc,
- 0x2d, 0x55, 0x60, 0xc2, 0x56, 0xb5, 0x1b, 0x6a, 0x0f, 0x55, 0x52, 0x44, 0xcc, 0x1f, 0xa5, 0x05,
- 0x80, 0x0e, 0xb2, 0x91, 0xd9, 0x41, 0xa6, 0x76, 0x50, 0x49, 0x9f, 0x49, 0x2f, 0x16, 0xe4, 0x80,
- 0x44, 0x7a, 0x12, 0xa6, 0xed, 0xc1, 0x9e, 0xa1, 0x6b, 0x4a, 0x40, 0x0d, 0xce, 0xa4, 0x17, 0xb3,
- 0xb2, 0x48, 0x07, 0xd6, 0x86, 0xca, 0x8f, 0xc3, 0xd4, 0x2d, 0xa4, 0xde, 0x08, 0xaa, 0x16, 0x89,
- 0x6a, 0x19, 0x8b, 0x03, 0x8a, 0xab, 0x50, 0xea, 0x23, 0xd7, 0x55, 0x7b, 0x48, 0xf1, 0x0e, 0x6c,
- 0x54, 0xc9, 0x90, 0xd9, 0x9f, 0x19, 0x99, 0x7d, 0x74, 0xe6, 0x45, 0x86, 0xda, 0x39, 0xb0, 0x91,
- 0x54, 0x87, 0x02, 0x32, 0x07, 0x7d, 0xca, 0x90, 0x3d, 0xc4, 0x7f, 0x0d, 0x73, 0xd0, 0x8f, 0xb2,
- 0xe4, 0x31, 0x8c, 0x51, 0x4c, 0xb8, 0xc8, 0xb9, 0xa9, 0x6b, 0xa8, 0x92, 0x23, 0x04, 0x8f, 0x8f,
- 0x10, 0xb4, 0xe9, 0x78, 0x94, 0x83, 0xe3, 0xa4, 0x55, 0x28, 0xa0, 0x57, 0x3c, 0x64, 0xba, 0xba,
- 0x65, 0x56, 0x26, 0x08, 0xc9, 0xa3, 0x63, 0x56, 0x11, 0x19, 0x9d, 0x28, 0xc5, 0x10, 0x27, 0x5d,
- 0x82, 0x09, 0xcb, 0xf6, 0x74, 0xcb, 0x74, 0x2b, 0xf9, 0x33, 0xc2, 0x62, 0x71, 0xf9, 0x03, 0x63,
- 0x03, 0xa1, 0x49, 0x75, 0x64, 0xae, 0x2c, 0x6d, 0x80, 0xe8, 0x5a, 0x03, 0x47, 0x43, 0x8a, 0x66,
- 0x75, 0x90, 0xa2, 0x9b, 0x5d, 0xab, 0x52, 0x20, 0x04, 0xa7, 0x47, 0x27, 0x42, 0x14, 0x57, 0xad,
- 0x0e, 0xda, 0x30, 0xbb, 0x96, 0x5c, 0x76, 0x43, 0xcf, 0xd2, 0x1c, 0xe4, 0xdc, 0x03, 0xd3, 0x53,
- 0x5f, 0xa9, 0x94, 0x48, 0x84, 0xb0, 0xa7, 0xea, 0x37, 0x72, 0x30, 0x95, 0x24, 0xc4, 0xae, 0x42,
- 0xb6, 0x8b, 0x67, 0x59, 0x49, 0x1d, 0xc7, 0x07, 0x14, 0x13, 0x76, 0x62, 0xee, 0xc7, 0x74, 0x62,
- 0x1d, 0x8a, 0x26, 0x72, 0x3d, 0xd4, 0xa1, 0x11, 0x91, 0x4e, 0x18, 0x53, 0x40, 0x41, 0xa3, 0x21,
- 0x95, 0xf9, 0xb1, 0x42, 0xea, 0x45, 0x98, 0xf2, 0x4d, 0x52, 0x1c, 0xd5, 0xec, 0xf1, 0xd8, 0x3c,
- 0x1f, 0x67, 0xc9, 0x52, 0x83, 0xe3, 0x64, 0x0c, 0x93, 0xcb, 0x28, 0xf4, 0x2c, 0xad, 0x01, 0x58,
- 0x26, 0xb2, 0xba, 0x4a, 0x07, 0x69, 0x46, 0x25, 0x7f, 0x88, 0x97, 0x9a, 0x58, 0x65, 0xc4, 0x4b,
- 0x16, 0x95, 0x6a, 0x86, 0x74, 0x65, 0x18, 0x6a, 0x13, 0x87, 0x44, 0xca, 0x16, 0xdd, 0x64, 0x23,
- 0xd1, 0xb6, 0x0b, 0x65, 0x07, 0xe1, 0xb8, 0x47, 0x1d, 0x36, 0xb3, 0x02, 0x31, 0x62, 0x29, 0x76,
- 0x66, 0x32, 0x83, 0xd1, 0x89, 0x4d, 0x3a, 0xc1, 0x47, 0xe9, 0x61, 0xf0, 0x05, 0x0a, 0x09, 0x2b,
- 0x20, 0x59, 0xa8, 0xc4, 0x85, 0xdb, 0x6a, 0x1f, 0xcd, 0xdf, 0x86, 0x72, 0xd8, 0x3d, 0xd2, 0x2c,
- 0x64, 0x5d, 0x4f, 0x75, 0x3c, 0x12, 0x85, 0x59, 0x99, 0x3e, 0x48, 0x22, 0xa4, 0x91, 0xd9, 0x21,
- 0x59, 0x2e, 0x2b, 0xe3, 0x3f, 0xa5, 0x9f, 0x19, 0x4e, 0x38, 0x4d, 0x26, 0xfc, 0xd8, 0xe8, 0x8a,
- 0x86, 0x98, 0xa3, 0xf3, 0x9e, 0x7f, 0x06, 0x26, 0x43, 0x13, 0x48, 0xfa, 0xea, 0xea, 0xcf, 0xc3,
- 0x03, 0x63, 0xa9, 0xa5, 0x17, 0x61, 0x76, 0x60, 0xea, 0xa6, 0x87, 0x1c, 0xdb, 0x41, 0x38, 0x62,
- 0xe9, 0xab, 0x2a, 0xff, 0x3e, 0x71, 0x48, 0xcc, 0xed, 0x06, 0xb5, 0x29, 0x8b, 0x3c, 0x33, 0x18,
- 0x15, 0x3e, 0x51, 0xc8, 0xff, 0xc7, 0x84, 0x78, 0xe7, 0xce, 0x9d, 0x3b, 0xa9, 0xea, 0xa7, 0x73,
- 0x30, 0x3b, 0x6e, 0xcf, 0x8c, 0xdd, 0xbe, 0x73, 0x90, 0x33, 0x07, 0xfd, 0x3d, 0xe4, 0x10, 0x27,
- 0x65, 0x65, 0xf6, 0x24, 0xd5, 0x21, 0x6b, 0xa8, 0x7b, 0xc8, 0xa8, 0x64, 0xce, 0x08, 0x8b, 0xe5,
- 0xe5, 0x27, 0x13, 0xed, 0xca, 0xa5, 0x4d, 0x0c, 0x91, 0x29, 0x52, 0x7a, 0x16, 0x32, 0x2c, 0x45,
- 0x63, 0x86, 0x27, 0x92, 0x31, 0xe0, 0xbd, 0x24, 0x13, 0x9c, 0xf4, 0x20, 0x14, 0xf0, 0xff, 0x34,
- 0x36, 0x72, 0xc4, 0xe6, 0x3c, 0x16, 0xe0, 0xb8, 0x90, 0xe6, 0x21, 0x4f, 0xb6, 0x49, 0x07, 0xf1,
- 0xd2, 0xe6, 0x3f, 0xe3, 0xc0, 0xea, 0xa0, 0xae, 0x3a, 0x30, 0x3c, 0xe5, 0xa6, 0x6a, 0x0c, 0x10,
- 0x09, 0xf8, 0x82, 0x5c, 0x62, 0xc2, 0x8f, 0x61, 0x99, 0x74, 0x1a, 0x8a, 0x74, 0x57, 0xe9, 0x66,
- 0x07, 0xbd, 0x42, 0xb2, 0x67, 0x56, 0xa6, 0x1b, 0x6d, 0x03, 0x4b, 0xf0, 0xeb, 0xaf, 0xbb, 0x96,
- 0xc9, 0x43, 0x93, 0xbc, 0x02, 0x0b, 0xc8, 0xeb, 0x9f, 0x89, 0x26, 0xee, 0x87, 0xc6, 0x4f, 0x2f,
- 0x1a, 0x53, 0xd5, 0xaf, 0xa5, 0x20, 0x43, 0xf2, 0xc5, 0x14, 0x14, 0x77, 0x5e, 0x6a, 0x35, 0x94,
- 0xb5, 0xe6, 0xee, 0xca, 0x66, 0x43, 0x14, 0xa4, 0x32, 0x00, 0x11, 0x5c, 0xdb, 0x6c, 0xd6, 0x77,
- 0xc4, 0x94, 0xff, 0xbc, 0xb1, 0xbd, 0x73, 0xe9, 0x69, 0x31, 0xed, 0x03, 0x76, 0xa9, 0x20, 0x13,
- 0x54, 0xb8, 0xb0, 0x2c, 0x66, 0x25, 0x11, 0x4a, 0x94, 0x60, 0xe3, 0xc5, 0xc6, 0xda, 0xa5, 0xa7,
- 0xc5, 0x5c, 0x58, 0x72, 0x61, 0x59, 0x9c, 0x90, 0x26, 0xa1, 0x40, 0x24, 0x2b, 0xcd, 0xe6, 0xa6,
- 0x98, 0xf7, 0x39, 0xdb, 0x3b, 0xf2, 0xc6, 0xf6, 0xba, 0x58, 0xf0, 0x39, 0xd7, 0xe5, 0xe6, 0x6e,
- 0x4b, 0x04, 0x9f, 0x61, 0xab, 0xd1, 0x6e, 0xd7, 0xd7, 0x1b, 0x62, 0xd1, 0xd7, 0x58, 0x79, 0x69,
- 0xa7, 0xd1, 0x16, 0x4b, 0x21, 0xb3, 0x2e, 0x2c, 0x8b, 0x93, 0xfe, 0x2b, 0x1a, 0xdb, 0xbb, 0x5b,
- 0x62, 0x59, 0x9a, 0x86, 0x49, 0xfa, 0x0a, 0x6e, 0xc4, 0x54, 0x44, 0x74, 0xe9, 0x69, 0x51, 0x1c,
- 0x1a, 0x42, 0x59, 0xa6, 0x43, 0x82, 0x4b, 0x4f, 0x8b, 0x52, 0x75, 0x15, 0xb2, 0x24, 0xba, 0x24,
- 0x09, 0xca, 0x9b, 0xf5, 0x95, 0xc6, 0xa6, 0xd2, 0x6c, 0xed, 0x6c, 0x34, 0xb7, 0xeb, 0x9b, 0xa2,
- 0x30, 0x94, 0xc9, 0x8d, 0x8f, 0xee, 0x6e, 0xc8, 0x8d, 0x35, 0x31, 0x15, 0x94, 0xb5, 0x1a, 0xf5,
- 0x9d, 0xc6, 0x9a, 0x98, 0xae, 0x6a, 0x30, 0x3b, 0x2e, 0x4f, 0x8e, 0xdd, 0x19, 0x81, 0x25, 0x4e,
- 0x1d, 0xb2, 0xc4, 0x84, 0x6b, 0x64, 0x89, 0xff, 0x2d, 0x05, 0x33, 0x63, 0x6a, 0xc5, 0xd8, 0x97,
- 0x3c, 0x07, 0x59, 0x1a, 0xa2, 0xb4, 0x7a, 0x9e, 0x1b, 0x5b, 0x74, 0x48, 0xc0, 0x8e, 0x54, 0x50,
- 0x82, 0x0b, 0x76, 0x10, 0xe9, 0x43, 0x3a, 0x08, 0x4c, 0x31, 0x92, 0xd3, 0x7f, 0x6e, 0x24, 0xa7,
- 0xd3, 0xb2, 0x77, 0x29, 0x49, 0xd9, 0x23, 0xb2, 0xe3, 0xe5, 0xf6, 0xec, 0x98, 0xdc, 0x7e, 0x15,
- 0xa6, 0x47, 0x88, 0x12, 0xe7, 0xd8, 0x57, 0x05, 0xa8, 0x1c, 0xe6, 0x9c, 0x98, 0x4c, 0x97, 0x0a,
- 0x65, 0xba, 0xab, 0x51, 0x0f, 0x9e, 0x3d, 0x7c, 0x11, 0x46, 0xd6, 0xfa, 0x4d, 0x01, 0xe6, 0xc6,
- 0x77, 0x8a, 0x63, 0x6d, 0x78, 0x16, 0x72, 0x7d, 0xe4, 0xed, 0x5b, 0xbc, 0x5b, 0x7a, 0x6c, 0x4c,
- 0x0d, 0xc6, 0xc3, 0xd1, 0xc5, 0x66, 0xa8, 0x60, 0x11, 0x4f, 0x1f, 0xd6, 0xee, 0x51, 0x6b, 0x46,
- 0x2c, 0xfd, 0x64, 0x0a, 0x1e, 0x18, 0x4b, 0x3e, 0xd6, 0xd0, 0x87, 0x00, 0x74, 0xd3, 0x1e, 0x78,
- 0xb4, 0x23, 0xa2, 0x09, 0xb6, 0x40, 0x24, 0x24, 0x79, 0xe1, 0xe4, 0x39, 0xf0, 0xfc, 0xf1, 0x34,
- 0x19, 0x07, 0x2a, 0x22, 0x0a, 0x97, 0x87, 0x86, 0x66, 0x88, 0xa1, 0x0b, 0x87, 0xcc, 0x74, 0x24,
- 0x30, 0x3f, 0x04, 0xa2, 0x66, 0xe8, 0xc8, 0xf4, 0x14, 0xd7, 0x73, 0x90, 0xda, 0xd7, 0xcd, 0x1e,
- 0xa9, 0x20, 0xf9, 0x5a, 0xb6, 0xab, 0x1a, 0x2e, 0x92, 0xa7, 0xe8, 0x70, 0x9b, 0x8f, 0x62, 0x04,
- 0x09, 0x20, 0x27, 0x80, 0xc8, 0x85, 0x10, 0x74, 0xd8, 0x47, 0x54, 0xbf, 0x9a, 0x87, 0x62, 0xa0,
- 0xaf, 0x96, 0xce, 0x42, 0xe9, 0xba, 0x7a, 0x53, 0x55, 0xf8, 0x59, 0x89, 0x7a, 0xa2, 0x88, 0x65,
- 0x2d, 0x76, 0x5e, 0xfa, 0x10, 0xcc, 0x12, 0x15, 0x6b, 0xe0, 0x21, 0x47, 0xd1, 0x0c, 0xd5, 0x75,
- 0x89, 0xd3, 0xf2, 0x44, 0x55, 0xc2, 0x63, 0x4d, 0x3c, 0xb4, 0xca, 0x47, 0xa4, 0x8b, 0x30, 0x43,
- 0x10, 0xfd, 0x81, 0xe1, 0xe9, 0xb6, 0x81, 0x14, 0x7c, 0x7a, 0x73, 0x49, 0x25, 0xf1, 0x2d, 0x9b,
- 0xc6, 0x1a, 0x5b, 0x4c, 0x01, 0x5b, 0xe4, 0x4a, 0x6b, 0xf0, 0x10, 0x81, 0xf5, 0x90, 0x89, 0x1c,
- 0xd5, 0x43, 0x0a, 0xfa, 0xc4, 0x40, 0x35, 0x5c, 0x45, 0x35, 0x3b, 0xca, 0xbe, 0xea, 0xee, 0x57,
- 0x66, 0x31, 0xc1, 0x4a, 0xaa, 0x22, 0xc8, 0xa7, 0xb0, 0xe2, 0x3a, 0xd3, 0x6b, 0x10, 0xb5, 0xba,
- 0xd9, 0xf9, 0x88, 0xea, 0xee, 0x4b, 0x35, 0x98, 0x23, 0x2c, 0xae, 0xe7, 0xe8, 0x66, 0x4f, 0xd1,
- 0xf6, 0x91, 0x76, 0x43, 0x19, 0x78, 0xdd, 0xcb, 0x95, 0x07, 0x83, 0xef, 0x27, 0x16, 0xb6, 0x89,
- 0xce, 0x2a, 0x56, 0xd9, 0xf5, 0xba, 0x97, 0xa5, 0x36, 0x94, 0xf0, 0x62, 0xf4, 0xf5, 0xdb, 0x48,
- 0xe9, 0x5a, 0x0e, 0x29, 0x8d, 0xe5, 0x31, 0xa9, 0x29, 0xe0, 0xc1, 0xa5, 0x26, 0x03, 0x6c, 0x59,
- 0x1d, 0x54, 0xcb, 0xb6, 0x5b, 0x8d, 0xc6, 0x9a, 0x5c, 0xe4, 0x2c, 0xd7, 0x2c, 0x07, 0x07, 0x54,
- 0xcf, 0xf2, 0x1d, 0x5c, 0xa4, 0x01, 0xd5, 0xb3, 0xb8, 0x7b, 0x2f, 0xc2, 0x8c, 0xa6, 0xd1, 0x39,
- 0xeb, 0x9a, 0xc2, 0xce, 0x58, 0x6e, 0x45, 0x0c, 0x39, 0x4b, 0xd3, 0xd6, 0xa9, 0x02, 0x8b, 0x71,
- 0x57, 0xba, 0x02, 0x0f, 0x0c, 0x9d, 0x15, 0x04, 0x4e, 0x8f, 0xcc, 0x32, 0x0a, 0xbd, 0x08, 0x33,
- 0xf6, 0xc1, 0x28, 0x50, 0x0a, 0xbd, 0xd1, 0x3e, 0x88, 0xc2, 0x9e, 0x81, 0x59, 0x7b, 0xdf, 0x1e,
- 0xc5, 0x3d, 0x11, 0xc4, 0x49, 0xf6, 0xbe, 0x1d, 0x05, 0x3e, 0x4a, 0x0e, 0xdc, 0x0e, 0xd2, 0x54,
- 0x0f, 0x75, 0x2a, 0x27, 0x83, 0xea, 0x81, 0x01, 0xe9, 0x3c, 0x88, 0x9a, 0xa6, 0x20, 0x53, 0xdd,
- 0x33, 0x90, 0xa2, 0x3a, 0xc8, 0x54, 0xdd, 0xca, 0xe9, 0xa0, 0x72, 0x59, 0xd3, 0x1a, 0x64, 0xb4,
- 0x4e, 0x06, 0xa5, 0x27, 0x60, 0xda, 0xda, 0xbb, 0xae, 0xd1, 0x90, 0x54, 0x6c, 0x07, 0x75, 0xf5,
- 0x57, 0x2a, 0x8f, 0x10, 0xff, 0x4e, 0xe1, 0x01, 0x12, 0x90, 0x2d, 0x22, 0x96, 0xce, 0x81, 0xa8,
- 0xb9, 0xfb, 0xaa, 0x63, 0x93, 0x9c, 0xec, 0xda, 0xaa, 0x86, 0x2a, 0x8f, 0x52, 0x55, 0x2a, 0xdf,
- 0xe6, 0x62, 0xbc, 0x25, 0xdc, 0x5b, 0x7a, 0xd7, 0xe3, 0x8c, 0x8f, 0xd3, 0x2d, 0x41, 0x64, 0x8c,
- 0x6d, 0x11, 0x44, 0xec, 0x8a, 0xd0, 0x8b, 0x17, 0x89, 0x5a, 0xd9, 0xde, 0xb7, 0x83, 0xef, 0x7d,
- 0x18, 0x26, 0xb1, 0xe6, 0xf0, 0xa5, 0xe7, 0x68, 0x43, 0x66, 0xef, 0x07, 0xde, 0xf8, 0x9e, 0xf5,
- 0xc6, 0xd5, 0x1a, 0x94, 0x82, 0xf1, 0x29, 0x15, 0x80, 0x46, 0xa8, 0x28, 0xe0, 0x66, 0x65, 0xb5,
- 0xb9, 0x86, 0xdb, 0x8c, 0x97, 0x1b, 0x62, 0x0a, 0xb7, 0x3b, 0x9b, 0x1b, 0x3b, 0x0d, 0x45, 0xde,
- 0xdd, 0xde, 0xd9, 0xd8, 0x6a, 0x88, 0xe9, 0x60, 0x5f, 0xfd, 0xad, 0x14, 0x94, 0xc3, 0x47, 0x24,
- 0xe9, 0xa7, 0xe1, 0x24, 0xbf, 0xcf, 0x70, 0x91, 0xa7, 0xdc, 0xd2, 0x1d, 0xb2, 0x65, 0xfa, 0x2a,
- 0x2d, 0x5f, 0xfe, 0xa2, 0xcd, 0x32, 0xad, 0x36, 0xf2, 0x5e, 0xd0, 0x1d, 0xbc, 0x21, 0xfa, 0xaa,
- 0x27, 0x6d, 0xc2, 0x69, 0xd3, 0x52, 0x5c, 0x4f, 0x35, 0x3b, 0xaa, 0xd3, 0x51, 0x86, 0x37, 0x49,
- 0x8a, 0xaa, 0x69, 0xc8, 0x75, 0x2d, 0x5a, 0xaa, 0x7c, 0x96, 0x0f, 0x98, 0x56, 0x9b, 0x29, 0x0f,
- 0x73, 0x78, 0x9d, 0xa9, 0x46, 0x02, 0x2c, 0x7d, 0x58, 0x80, 0x3d, 0x08, 0x85, 0xbe, 0x6a, 0x2b,
- 0xc8, 0xf4, 0x9c, 0x03, 0xd2, 0x18, 0xe7, 0xe5, 0x7c, 0x5f, 0xb5, 0x1b, 0xf8, 0xf9, 0xfd, 0x39,
- 0x9f, 0xfc, 0x6b, 0x1a, 0x4a, 0xc1, 0xe6, 0x18, 0x9f, 0x35, 0x34, 0x52, 0x47, 0x04, 0x92, 0x69,
- 0x1e, 0x3e, 0xb2, 0x95, 0x5e, 0x5a, 0xc5, 0x05, 0xa6, 0x96, 0xa3, 0x2d, 0xab, 0x4c, 0x91, 0xb8,
- 0xb8, 0xe3, 0xdc, 0x82, 0x68, 0x8b, 0x90, 0x97, 0xd9, 0x93, 0xb4, 0x0e, 0xb9, 0xeb, 0x2e, 0xe1,
- 0xce, 0x11, 0xee, 0x47, 0x8e, 0xe6, 0x7e, 0xbe, 0x4d, 0xc8, 0x0b, 0xcf, 0xb7, 0x95, 0xed, 0xa6,
- 0xbc, 0x55, 0xdf, 0x94, 0x19, 0x5c, 0x3a, 0x05, 0x19, 0x43, 0xbd, 0x7d, 0x10, 0x2e, 0x45, 0x44,
- 0x94, 0xd4, 0xf1, 0xa7, 0x20, 0x73, 0x0b, 0xa9, 0x37, 0xc2, 0x05, 0x80, 0x88, 0xde, 0xc3, 0xd0,
- 0x3f, 0x0f, 0x59, 0xe2, 0x2f, 0x09, 0x80, 0x79, 0x4c, 0x3c, 0x21, 0xe5, 0x21, 0xb3, 0xda, 0x94,
- 0x71, 0xf8, 0x8b, 0x50, 0xa2, 0x52, 0xa5, 0xb5, 0xd1, 0x58, 0x6d, 0x88, 0xa9, 0xea, 0x45, 0xc8,
- 0x51, 0x27, 0xe0, 0xad, 0xe1, 0xbb, 0x41, 0x3c, 0xc1, 0x1e, 0x19, 0x87, 0xc0, 0x47, 0x77, 0xb7,
- 0x56, 0x1a, 0xb2, 0x98, 0x0a, 0x2e, 0xaf, 0x0b, 0xa5, 0x60, 0x5f, 0xfc, 0xfe, 0xc4, 0xd4, 0x37,
- 0x05, 0x28, 0x06, 0xfa, 0x5c, 0xdc, 0xa0, 0xa8, 0x86, 0x61, 0xdd, 0x52, 0x54, 0x43, 0x57, 0x5d,
- 0x16, 0x14, 0x40, 0x44, 0x75, 0x2c, 0x49, 0xba, 0x68, 0xef, 0x8b, 0xf1, 0x6f, 0x08, 0x20, 0x46,
- 0x5b, 0xcc, 0x88, 0x81, 0xc2, 0x4f, 0xd4, 0xc0, 0xd7, 0x05, 0x28, 0x87, 0xfb, 0xca, 0x88, 0x79,
- 0x67, 0x7f, 0xa2, 0xe6, 0x7d, 0x37, 0x05, 0x93, 0xa1, 0x6e, 0x32, 0xa9, 0x75, 0x9f, 0x80, 0x69,
- 0xbd, 0x83, 0xfa, 0xb6, 0xe5, 0x21, 0x53, 0x3b, 0x50, 0x0c, 0x74, 0x13, 0x19, 0x95, 0x2a, 0x49,
- 0x14, 0xe7, 0x8f, 0xee, 0x57, 0x97, 0x36, 0x86, 0xb8, 0x4d, 0x0c, 0xab, 0xcd, 0x6c, 0xac, 0x35,
- 0xb6, 0x5a, 0xcd, 0x9d, 0xc6, 0xf6, 0xea, 0x4b, 0xca, 0xee, 0xf6, 0xcf, 0x6e, 0x37, 0x5f, 0xd8,
- 0x96, 0x45, 0x3d, 0xa2, 0xf6, 0x1e, 0x6e, 0xf5, 0x16, 0x88, 0x51, 0xa3, 0xa4, 0x93, 0x30, 0xce,
- 0x2c, 0xf1, 0x84, 0x34, 0x03, 0x53, 0xdb, 0x4d, 0xa5, 0xbd, 0xb1, 0xd6, 0x50, 0x1a, 0xd7, 0xae,
- 0x35, 0x56, 0x77, 0xda, 0xf4, 0x06, 0xc2, 0xd7, 0xde, 0x09, 0x6f, 0xea, 0xd7, 0xd2, 0x30, 0x33,
- 0xc6, 0x12, 0xa9, 0xce, 0xce, 0x0e, 0xf4, 0x38, 0xf3, 0xc1, 0x24, 0xd6, 0x2f, 0xe1, 0x92, 0xdf,
- 0x52, 0x1d, 0x8f, 0x1d, 0x35, 0xce, 0x01, 0xf6, 0x92, 0xe9, 0xe9, 0x5d, 0x1d, 0x39, 0xec, 0xc2,
- 0x86, 0x1e, 0x28, 0xa6, 0x86, 0x72, 0x7a, 0x67, 0xf3, 0x53, 0x20, 0xd9, 0x96, 0xab, 0x7b, 0xfa,
- 0x4d, 0xa4, 0xe8, 0x26, 0xbf, 0xdd, 0xc1, 0x07, 0x8c, 0x8c, 0x2c, 0xf2, 0x91, 0x0d, 0xd3, 0xf3,
- 0xb5, 0x4d, 0xd4, 0x53, 0x23, 0xda, 0x38, 0x81, 0xa7, 0x65, 0x91, 0x8f, 0xf8, 0xda, 0x67, 0xa1,
- 0xd4, 0xb1, 0x06, 0xb8, 0xeb, 0xa2, 0x7a, 0xb8, 0x5e, 0x08, 0x72, 0x91, 0xca, 0x7c, 0x15, 0xd6,
- 0x4f, 0x0f, 0xaf, 0x95, 0x4a, 0x72, 0x91, 0xca, 0xa8, 0xca, 0xe3, 0x30, 0xa5, 0xf6, 0x7a, 0x0e,
- 0x26, 0xe7, 0x44, 0xf4, 0x84, 0x50, 0xf6, 0xc5, 0x44, 0x71, 0xfe, 0x79, 0xc8, 0x73, 0x3f, 0xe0,
- 0x92, 0x8c, 0x3d, 0xa1, 0xd8, 0xf4, 0xd8, 0x9b, 0x5a, 0x2c, 0xc8, 0x79, 0x93, 0x0f, 0x9e, 0x85,
- 0x92, 0xee, 0x2a, 0xc3, 0x5b, 0xf2, 0xd4, 0x99, 0xd4, 0x62, 0x5e, 0x2e, 0xea, 0xae, 0x7f, 0xc3,
- 0x58, 0x7d, 0x33, 0x05, 0xe5, 0xf0, 0x2d, 0xbf, 0xb4, 0x06, 0x79, 0xc3, 0xd2, 0x54, 0x12, 0x5a,
- 0xf4, 0x13, 0xd3, 0x62, 0xcc, 0x87, 0x81, 0xa5, 0x4d, 0xa6, 0x2f, 0xfb, 0xc8, 0xf9, 0x7f, 0x12,
- 0x20, 0xcf, 0xc5, 0xd2, 0x1c, 0x64, 0x6c, 0xd5, 0xdb, 0x27, 0x74, 0xd9, 0x95, 0x94, 0x28, 0xc8,
- 0xe4, 0x19, 0xcb, 0x5d, 0x5b, 0x35, 0x49, 0x08, 0x30, 0x39, 0x7e, 0xc6, 0xeb, 0x6a, 0x20, 0xb5,
- 0x43, 0x8e, 0x1f, 0x56, 0xbf, 0x8f, 0x4c, 0xcf, 0xe5, 0xeb, 0xca, 0xe4, 0xab, 0x4c, 0x2c, 0x3d,
- 0x09, 0xd3, 0x9e, 0xa3, 0xea, 0x46, 0x48, 0x37, 0x43, 0x74, 0x45, 0x3e, 0xe0, 0x2b, 0xd7, 0xe0,
- 0x14, 0xe7, 0xed, 0x20, 0x4f, 0xd5, 0xf6, 0x51, 0x67, 0x08, 0xca, 0x91, 0x6b, 0x86, 0x93, 0x4c,
- 0x61, 0x8d, 0x8d, 0x73, 0x6c, 0xf5, 0x3b, 0x02, 0x4c, 0xf3, 0x03, 0x53, 0xc7, 0x77, 0xd6, 0x16,
- 0x80, 0x6a, 0x9a, 0x96, 0x17, 0x74, 0xd7, 0x68, 0x28, 0x8f, 0xe0, 0x96, 0xea, 0x3e, 0x48, 0x0e,
- 0x10, 0xcc, 0xf7, 0x01, 0x86, 0x23, 0x87, 0xba, 0xed, 0x34, 0x14, 0xd9, 0x27, 0x1c, 0xf2, 0x1d,
- 0x90, 0x1e, 0xb1, 0x81, 0x8a, 0xf0, 0xc9, 0x4a, 0x9a, 0x85, 0xec, 0x1e, 0xea, 0xe9, 0x26, 0xbb,
- 0x98, 0xa5, 0x0f, 0xfc, 0x22, 0x24, 0xe3, 0x5f, 0x84, 0xac, 0x7c, 0x1c, 0x66, 0x34, 0xab, 0x1f,
- 0x35, 0x77, 0x45, 0x8c, 0x1c, 0xf3, 0xdd, 0x8f, 0x08, 0x2f, 0xc3, 0xb0, 0xc5, 0xfc, 0xa1, 0x20,
- 0x7c, 0x3e, 0x95, 0x5e, 0x6f, 0xad, 0x7c, 0x29, 0x35, 0xbf, 0x4e, 0xa1, 0x2d, 0x3e, 0x53, 0x19,
- 0x75, 0x0d, 0xa4, 0x61, 0xeb, 0xe1, 0x0b, 0x4f, 0xc2, 0x07, 0x7b, 0xba, 0xb7, 0x3f, 0xd8, 0x5b,
- 0xd2, 0xac, 0xfe, 0xf9, 0x9e, 0xd5, 0xb3, 0x86, 0x9f, 0x3e, 0xf1, 0x13, 0x79, 0x20, 0x7f, 0xb1,
- 0xcf, 0x9f, 0x05, 0x5f, 0x3a, 0x1f, 0xfb, 0xad, 0xb4, 0xb6, 0x0d, 0x33, 0x4c, 0x59, 0x21, 0xdf,
- 0x5f, 0xe8, 0x29, 0x42, 0x3a, 0xf2, 0x0e, 0xab, 0xf2, 0x95, 0xb7, 0x49, 0xb9, 0x96, 0xa7, 0x19,
- 0x14, 0x8f, 0xd1, 0x83, 0x46, 0x4d, 0x86, 0x07, 0x42, 0x7c, 0x74, 0x6b, 0x22, 0x27, 0x86, 0xf1,
- 0x5b, 0x8c, 0x71, 0x26, 0xc0, 0xd8, 0x66, 0xd0, 0xda, 0x2a, 0x4c, 0x1e, 0x87, 0xeb, 0xef, 0x19,
- 0x57, 0x09, 0x05, 0x49, 0xd6, 0x61, 0x8a, 0x90, 0x68, 0x03, 0xd7, 0xb3, 0xfa, 0x24, 0xef, 0x1d,
- 0x4d, 0xf3, 0x0f, 0x6f, 0xd3, 0xbd, 0x52, 0xc6, 0xb0, 0x55, 0x1f, 0x55, 0xab, 0x01, 0xf9, 0xe4,
- 0xd4, 0x41, 0x9a, 0x11, 0xc3, 0xf0, 0x6d, 0x66, 0x88, 0xaf, 0x5f, 0xfb, 0x18, 0xcc, 0xe2, 0xbf,
- 0x49, 0x5a, 0x0a, 0x5a, 0x12, 0x7f, 0xe1, 0x55, 0xf9, 0xce, 0xab, 0x74, 0x3b, 0xce, 0xf8, 0x04,
- 0x01, 0x9b, 0x02, 0xab, 0xd8, 0x43, 0x9e, 0x87, 0x1c, 0x57, 0x51, 0x8d, 0x71, 0xe6, 0x05, 0x6e,
- 0x0c, 0x2a, 0x9f, 0x79, 0x27, 0xbc, 0x8a, 0xeb, 0x14, 0x59, 0x37, 0x8c, 0xda, 0x2e, 0x9c, 0x1c,
- 0x13, 0x15, 0x09, 0x38, 0x5f, 0x63, 0x9c, 0xb3, 0x23, 0x91, 0x81, 0x69, 0x5b, 0xc0, 0xe5, 0xfe,
- 0x5a, 0x26, 0xe0, 0xfc, 0x7d, 0xc6, 0x29, 0x31, 0x2c, 0x5f, 0x52, 0xcc, 0xf8, 0x3c, 0x4c, 0xdf,
- 0x44, 0xce, 0x9e, 0xe5, 0xb2, 0x5b, 0x9a, 0x04, 0x74, 0xaf, 0x33, 0xba, 0x29, 0x06, 0x24, 0xd7,
- 0x36, 0x98, 0xeb, 0x0a, 0xe4, 0xbb, 0xaa, 0x86, 0x12, 0x50, 0x7c, 0x96, 0x51, 0x4c, 0x60, 0x7d,
- 0x0c, 0xad, 0x43, 0xa9, 0x67, 0xb1, 0xca, 0x14, 0x0f, 0x7f, 0x83, 0xc1, 0x8b, 0x1c, 0xc3, 0x28,
- 0x6c, 0xcb, 0x1e, 0x18, 0xb8, 0x6c, 0xc5, 0x53, 0xfc, 0x01, 0xa7, 0xe0, 0x18, 0x46, 0x71, 0x0c,
- 0xb7, 0x7e, 0x8e, 0x53, 0xb8, 0x01, 0x7f, 0x3e, 0x07, 0x45, 0xcb, 0x34, 0x0e, 0x2c, 0x33, 0x89,
- 0x11, 0x77, 0x19, 0x03, 0x30, 0x08, 0x26, 0xb8, 0x0a, 0x85, 0xa4, 0x0b, 0xf1, 0x47, 0xef, 0xf0,
- 0xed, 0xc1, 0x57, 0x60, 0x1d, 0xa6, 0x78, 0x82, 0xd2, 0x2d, 0x33, 0x01, 0xc5, 0x17, 0x18, 0x45,
- 0x39, 0x00, 0x63, 0xd3, 0xf0, 0x90, 0xeb, 0xf5, 0x50, 0x12, 0x92, 0x37, 0xf9, 0x34, 0x18, 0x84,
- 0xb9, 0x72, 0x0f, 0x99, 0xda, 0x7e, 0x32, 0x86, 0x2f, 0x72, 0x57, 0x72, 0x0c, 0xa6, 0x58, 0x85,
- 0xc9, 0xbe, 0xea, 0xb8, 0xfb, 0xaa, 0x91, 0x68, 0x39, 0xfe, 0x98, 0x71, 0x94, 0x7c, 0x10, 0xf3,
- 0xc8, 0xc0, 0x3c, 0x0e, 0xcd, 0x97, 0xb8, 0x47, 0x02, 0x30, 0xb6, 0xf5, 0x5c, 0x8f, 0x5c, 0x69,
- 0x1d, 0x87, 0xed, 0x4f, 0xf8, 0xd6, 0xa3, 0xd8, 0xad, 0x20, 0xe3, 0x55, 0x28, 0xb8, 0xfa, 0xed,
- 0x44, 0x34, 0x7f, 0xca, 0x57, 0x9a, 0x00, 0x30, 0xf8, 0x25, 0x38, 0x35, 0xb6, 0x4c, 0x24, 0x20,
- 0xfb, 0x33, 0x46, 0x36, 0x37, 0xa6, 0x54, 0xb0, 0x94, 0x70, 0x5c, 0xca, 0x3f, 0xe7, 0x29, 0x01,
- 0x45, 0xb8, 0x5a, 0xf8, 0xac, 0xe0, 0xaa, 0xdd, 0xe3, 0x79, 0xed, 0x2f, 0xb8, 0xd7, 0x28, 0x36,
- 0xe4, 0xb5, 0x1d, 0x98, 0x63, 0x8c, 0xc7, 0x5b, 0xd7, 0x2f, 0xf3, 0xc4, 0x4a, 0xd1, 0xbb, 0xe1,
- 0xd5, 0xfd, 0x38, 0xcc, 0xfb, 0xee, 0xe4, 0x4d, 0xa9, 0xab, 0xf4, 0x55, 0x3b, 0x01, 0xf3, 0x57,
- 0x18, 0x33, 0xcf, 0xf8, 0x7e, 0x57, 0xeb, 0x6e, 0xa9, 0x36, 0x26, 0x7f, 0x11, 0x2a, 0x9c, 0x7c,
- 0x60, 0x3a, 0x48, 0xb3, 0x7a, 0xa6, 0x7e, 0x1b, 0x75, 0x12, 0x50, 0xff, 0x65, 0x64, 0xa9, 0x76,
- 0x03, 0x70, 0xcc, 0xbc, 0x01, 0xa2, 0xdf, 0xab, 0x28, 0x7a, 0xdf, 0xb6, 0x1c, 0x2f, 0x86, 0xf1,
- 0xab, 0x7c, 0xa5, 0x7c, 0xdc, 0x06, 0x81, 0xd5, 0x1a, 0x50, 0x26, 0x8f, 0x49, 0x43, 0xf2, 0xaf,
- 0x18, 0xd1, 0xe4, 0x10, 0xc5, 0x12, 0x87, 0x66, 0xf5, 0x6d, 0xd5, 0x49, 0x92, 0xff, 0xfe, 0x9a,
- 0x27, 0x0e, 0x06, 0x61, 0x89, 0xc3, 0x3b, 0xb0, 0x11, 0xae, 0xf6, 0x09, 0x18, 0xbe, 0xc6, 0x13,
- 0x07, 0xc7, 0x30, 0x0a, 0xde, 0x30, 0x24, 0xa0, 0xf8, 0x1b, 0x4e, 0xc1, 0x31, 0x98, 0xe2, 0xa3,
- 0xc3, 0x42, 0xeb, 0xa0, 0x9e, 0xee, 0x7a, 0x0e, 0x6d, 0x85, 0x8f, 0xa6, 0xfa, 0xfa, 0x3b, 0xe1,
- 0x26, 0x4c, 0x0e, 0x40, 0x71, 0x26, 0x62, 0x57, 0xa8, 0xe4, 0xa4, 0x14, 0x6f, 0xd8, 0x37, 0x78,
- 0x26, 0x0a, 0xc0, 0xb0, 0x6d, 0x81, 0x0e, 0x11, 0xbb, 0x5d, 0xc3, 0xe7, 0x83, 0x04, 0x74, 0xdf,
- 0x8c, 0x18, 0xd7, 0xe6, 0x58, 0xcc, 0x19, 0xe8, 0x7f, 0x06, 0xe6, 0x0d, 0x74, 0x90, 0x28, 0x3a,
- 0xff, 0x36, 0xd2, 0xff, 0xec, 0x52, 0x24, 0xcd, 0x21, 0x53, 0x91, 0x7e, 0x4a, 0x8a, 0xfb, 0xb1,
- 0x4e, 0xe5, 0x17, 0xee, 0xb3, 0xf9, 0x86, 0xdb, 0xa9, 0xda, 0x26, 0x0e, 0xf2, 0x70, 0xd3, 0x13,
- 0x4f, 0xf6, 0xea, 0x7d, 0x3f, 0xce, 0x43, 0x3d, 0x4f, 0xed, 0x1a, 0x4c, 0x86, 0x1a, 0x9e, 0x78,
- 0xaa, 0x5f, 0x64, 0x54, 0xa5, 0x60, 0xbf, 0x53, 0xbb, 0x08, 0x19, 0xdc, 0xbc, 0xc4, 0xc3, 0x7f,
- 0x89, 0xc1, 0x89, 0x7a, 0xed, 0xc3, 0x90, 0xe7, 0x4d, 0x4b, 0x3c, 0xf4, 0x97, 0x19, 0xd4, 0x87,
- 0x60, 0x38, 0x6f, 0x58, 0xe2, 0xe1, 0xbf, 0xc2, 0xe1, 0x1c, 0x82, 0xe1, 0xc9, 0x5d, 0xf8, 0x77,
- 0xbf, 0x96, 0x61, 0x45, 0x87, 0xfb, 0xee, 0x2a, 0x4c, 0xb0, 0x4e, 0x25, 0x1e, 0xfd, 0x49, 0xf6,
- 0x72, 0x8e, 0xa8, 0x3d, 0x03, 0xd9, 0x84, 0x0e, 0xff, 0x75, 0x06, 0xa5, 0xfa, 0xb5, 0x55, 0x28,
- 0x06, 0xba, 0x93, 0x78, 0xf8, 0x6f, 0x30, 0x78, 0x10, 0x85, 0x4d, 0x67, 0xdd, 0x49, 0x3c, 0xc1,
- 0x6f, 0x72, 0xd3, 0x19, 0x02, 0xbb, 0x8d, 0x37, 0x26, 0xf1, 0xe8, 0x4f, 0x71, 0xaf, 0x73, 0x48,
- 0xed, 0x39, 0x28, 0xf8, 0xc5, 0x26, 0x1e, 0xff, 0x5b, 0x0c, 0x3f, 0xc4, 0x60, 0x0f, 0x04, 0x8a,
- 0x5d, 0x3c, 0xc5, 0x6f, 0x73, 0x0f, 0x04, 0x50, 0x78, 0x1b, 0x45, 0x1b, 0x98, 0x78, 0xa6, 0xdf,
- 0xe1, 0xdb, 0x28, 0xd2, 0xbf, 0xe0, 0xd5, 0x24, 0x39, 0x3f, 0x9e, 0xe2, 0x77, 0xf9, 0x6a, 0x12,
- 0x7d, 0x6c, 0x46, 0xb4, 0x23, 0x88, 0xe7, 0xf8, 0x3d, 0x6e, 0x46, 0xa4, 0x21, 0xa8, 0xb5, 0x40,
- 0x1a, 0xed, 0x06, 0xe2, 0xf9, 0x3e, 0xcd, 0xf8, 0xa6, 0x47, 0x9a, 0x81, 0xda, 0x0b, 0x30, 0x37,
- 0xbe, 0x13, 0x88, 0x67, 0xfd, 0xcc, 0xfd, 0xc8, 0xd9, 0x2d, 0xd8, 0x08, 0xd4, 0x76, 0x86, 0x25,
- 0x25, 0xd8, 0x05, 0xc4, 0xd3, 0xbe, 0x76, 0x3f, 0x9c, 0xb8, 0x83, 0x4d, 0x40, 0xad, 0x0e, 0x30,
- 0x2c, 0xc0, 0xf1, 0x5c, 0xaf, 0x33, 0xae, 0x00, 0x08, 0x6f, 0x0d, 0x56, 0x7f, 0xe3, 0xf1, 0x9f,
- 0xe5, 0x5b, 0x83, 0x21, 0xf0, 0xd6, 0xe0, 0xa5, 0x37, 0x1e, 0xfd, 0x06, 0xdf, 0x1a, 0x1c, 0x82,
- 0x23, 0x3b, 0x50, 0xdd, 0xe2, 0x19, 0xee, 0xf2, 0xc8, 0x0e, 0xa0, 0x6a, 0xdb, 0x30, 0x3d, 0x52,
- 0x10, 0xe3, 0xa9, 0x3e, 0xcf, 0xa8, 0xc4, 0x68, 0x3d, 0x0c, 0x16, 0x2f, 0x56, 0x0c, 0xe3, 0xd9,
- 0xfe, 0x30, 0x52, 0xbc, 0x58, 0x2d, 0xac, 0x5d, 0x85, 0xbc, 0x39, 0x30, 0x0c, 0xbc, 0x79, 0xa4,
- 0xa3, 0x7f, 0x60, 0x57, 0xf9, 0xcf, 0x77, 0x99, 0x77, 0x38, 0xa0, 0x76, 0x11, 0xb2, 0xa8, 0xbf,
- 0x87, 0x3a, 0x71, 0xc8, 0xff, 0x7a, 0x97, 0x27, 0x4c, 0xac, 0x5d, 0x7b, 0x0e, 0x80, 0x5e, 0x8d,
- 0x90, 0xcf, 0x7e, 0x31, 0xd8, 0xff, 0x7e, 0x97, 0xfd, 0xf4, 0x65, 0x08, 0x19, 0x12, 0xd0, 0x1f,
- 0xd2, 0x1c, 0x4d, 0xf0, 0x4e, 0x98, 0x80, 0xac, 0xc8, 0x15, 0x98, 0xb8, 0xee, 0x5a, 0xa6, 0xa7,
- 0xf6, 0xe2, 0xd0, 0xdf, 0x63, 0x68, 0xae, 0x8f, 0x1d, 0xd6, 0xb7, 0x1c, 0xe4, 0xa9, 0x3d, 0x37,
- 0x0e, 0xfb, 0x3f, 0x0c, 0xeb, 0x03, 0x30, 0x58, 0x53, 0x5d, 0x2f, 0xc9, 0xbc, 0xbf, 0xcf, 0xc1,
- 0x1c, 0x80, 0x8d, 0xc6, 0x7f, 0xdf, 0x40, 0x07, 0x71, 0xd8, 0x1f, 0x70, 0xa3, 0x99, 0x7e, 0xed,
- 0xc3, 0x50, 0xc0, 0x7f, 0xd2, 0xdf, 0xb3, 0xc5, 0x80, 0xff, 0x97, 0x81, 0x87, 0x08, 0xfc, 0x66,
- 0xd7, 0xeb, 0x78, 0x7a, 0xbc, 0xb3, 0xff, 0x8f, 0xad, 0x34, 0xd7, 0xaf, 0xd5, 0xa1, 0xe8, 0x7a,
- 0x9d, 0xce, 0x80, 0xf5, 0xa7, 0x31, 0xf0, 0xff, 0x7f, 0xd7, 0xbf, 0xb2, 0xf0, 0x31, 0x78, 0xb5,
- 0x6f, 0xdd, 0xf0, 0x6c, 0x8b, 0x7c, 0xe6, 0x88, 0x63, 0xb8, 0xcf, 0x18, 0x02, 0x90, 0x95, 0xc6,
- 0xf8, 0xeb, 0x5b, 0x58, 0xb7, 0xd6, 0x2d, 0x7a, 0x71, 0xfb, 0x72, 0x35, 0xfe, 0x06, 0x16, 0xbe,
- 0x97, 0x81, 0x93, 0xc1, 0xcc, 0xd8, 0x73, 0xac, 0x81, 0xcd, 0xae, 0x64, 0xa7, 0x47, 0x06, 0xe6,
- 0x8f, 0x77, 0xa9, 0x5b, 0x35, 0x01, 0xb6, 0xd1, 0xad, 0x6d, 0x6b, 0x1d, 0x83, 0xa5, 0x39, 0xc8,
- 0x91, 0x69, 0x3d, 0x45, 0x3e, 0x4b, 0xa6, 0x65, 0xf6, 0xe4, 0xcb, 0x2f, 0x90, 0xdf, 0xe0, 0x0b,
- 0x4c, 0x7e, 0x41, 0xaa, 0x82, 0x50, 0x27, 0xdf, 0x5d, 0x8a, 0xcb, 0xb3, 0x4b, 0xa3, 0x46, 0xd6,
- 0x65, 0xa1, 0x5e, 0x2b, 0xfd, 0xea, 0xdd, 0xd3, 0xc2, 0xa7, 0xee, 0x9e, 0x16, 0x3e, 0x77, 0xf7,
- 0xb4, 0x50, 0x3d, 0x07, 0x42, 0x1d, 0xd3, 0xd5, 0x09, 0x03, 0x7f, 0x0d, 0x7d, 0x8a, 0xa8, 0xfe,
- 0x63, 0x0a, 0x4a, 0x4d, 0xa3, 0xf3, 0x82, 0xee, 0xed, 0x1f, 0x6d, 0xdd, 0xb3, 0x90, 0x23, 0xef,
- 0x7b, 0x8a, 0xdc, 0xb5, 0xc3, 0xf2, 0x63, 0x63, 0x4c, 0x09, 0x12, 0x2d, 0x91, 0x7f, 0x9f, 0x92,
- 0x19, 0xea, 0xd0, 0xd9, 0x71, 0xde, 0x65, 0x72, 0x29, 0x9f, 0x94, 0x77, 0x99, 0xf1, 0x2e, 0xcf,
- 0xb7, 0x20, 0xb7, 0x1e, 0x7e, 0xc3, 0x61, 0x7e, 0x5d, 0xe6, 0xbf, 0x5c, 0xa4, 0x4f, 0x87, 0x59,
- 0x34, 0x7f, 0x99, 0x31, 0x2e, 0x27, 0x62, 0x1c, 0x22, 0x97, 0x57, 0x16, 0xbf, 0x7d, 0x6f, 0xe1,
- 0xc4, 0x3f, 0xdf, 0x5b, 0x38, 0xf1, 0x2f, 0xf7, 0x16, 0x4e, 0x7c, 0xf7, 0xde, 0x82, 0xf0, 0x83,
- 0x7b, 0x0b, 0xc2, 0x0f, 0xef, 0x2d, 0x08, 0x77, 0xde, 0x5a, 0x10, 0xbe, 0xf8, 0xd6, 0x82, 0xf0,
- 0xe5, 0xb7, 0x16, 0x84, 0xaf, 0xbf, 0xb5, 0x20, 0xfc, 0x28, 0x00, 0x00, 0xff, 0xff, 0x80, 0x8e,
- 0x51, 0x68, 0x0b, 0x35, 0x00, 0x00,
+ // 4008 bytes of a gzipped FileDescriptorSet
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6,
+ 0x75, 0x5e, 0xf0, 0x26, 0xf2, 0x90, 0xa2, 0x20, 0x48, 0xd6, 0xd2, 0x72, 0xac, 0xdd, 0xa5, 0x6f,
+ 0x5a, 0x3b, 0xd6, 0xc6, 0xda, 0x8b, 0xd7, 0xdc, 0xc6, 0x2e, 0x25, 0x71, 0x15, 0xb9, 0x92, 0xc8,
+ 0x80, 0x52, 0x7c, 0xc9, 0x74, 0x30, 0x10, 0xf8, 0x93, 0xc2, 0x2e, 0x08, 0x20, 0x00, 0xb8, 0x6b,
+ 0xed, 0xf4, 0x61, 0x3b, 0xee, 0x2d, 0xd3, 0x5b, 0x7a, 0x99, 0x69, 0xe2, 0x3a, 0x6e, 0x36, 0x9d,
+ 0xc6, 0x69, 0x7a, 0x4b, 0x7a, 0x49, 0x93, 0xf4, 0xa5, 0x2f, 0x69, 0x3d, 0x7d, 0xe8, 0x34, 0x6f,
+ 0x7d, 0xe8, 0x43, 0xd6, 0xf5, 0x4c, 0x6f, 0x4e, 0x9b, 0xb6, 0xfb, 0x90, 0x19, 0xbf, 0x64, 0xfe,
+ 0x1b, 0x08, 0x80, 0x94, 0x00, 0x65, 0xc6, 0xce, 0xcb, 0xae, 0x70, 0xfe, 0xf3, 0x7d, 0x38, 0xff,
+ 0xf9, 0xcf, 0x7f, 0xce, 0xf9, 0x7f, 0x10, 0xde, 0xaa, 0xc1, 0xe9, 0x9e, 0x65, 0xf5, 0x0c, 0x74,
+ 0xce, 0x76, 0x2c, 0xcf, 0xda, 0x1b, 0x74, 0xcf, 0x75, 0x90, 0xab, 0x39, 0xba, 0xed, 0x59, 0xce,
+ 0x12, 0x91, 0x49, 0x53, 0x54, 0x63, 0x89, 0x6b, 0x54, 0xb7, 0x60, 0xfa, 0xaa, 0x6e, 0xa0, 0x35,
+ 0x5f, 0xb1, 0x8d, 0x3c, 0xe9, 0x32, 0x64, 0xba, 0xba, 0x81, 0x2a, 0xc2, 0xe9, 0xf4, 0x62, 0x71,
+ 0xf9, 0xe1, 0xa5, 0x08, 0x68, 0x29, 0x8c, 0x68, 0x61, 0xb1, 0x4c, 0x10, 0xd5, 0x77, 0x32, 0x30,
+ 0x33, 0x66, 0x54, 0x92, 0x20, 0x63, 0xaa, 0x7d, 0xcc, 0x28, 0x2c, 0x16, 0x64, 0xf2, 0xb7, 0x54,
+ 0x81, 0x09, 0x5b, 0xd5, 0xae, 0xab, 0x3d, 0x54, 0x49, 0x11, 0x31, 0x7f, 0x94, 0x16, 0x00, 0x3a,
+ 0xc8, 0x46, 0x66, 0x07, 0x99, 0xda, 0x41, 0x25, 0x7d, 0x3a, 0xbd, 0x58, 0x90, 0x03, 0x12, 0xe9,
+ 0x09, 0x98, 0xb6, 0x07, 0x7b, 0x86, 0xae, 0x29, 0x01, 0x35, 0x38, 0x9d, 0x5e, 0xcc, 0xca, 0x22,
+ 0x1d, 0x58, 0x1b, 0x2a, 0x3f, 0x06, 0x53, 0x37, 0x91, 0x7a, 0x3d, 0xa8, 0x5a, 0x24, 0xaa, 0x65,
+ 0x2c, 0x0e, 0x28, 0xae, 0x42, 0xa9, 0x8f, 0x5c, 0x57, 0xed, 0x21, 0xc5, 0x3b, 0xb0, 0x51, 0x25,
+ 0x43, 0x66, 0x7f, 0x7a, 0x64, 0xf6, 0xd1, 0x99, 0x17, 0x19, 0x6a, 0xe7, 0xc0, 0x46, 0x52, 0x1d,
+ 0x0a, 0xc8, 0x1c, 0xf4, 0x29, 0x43, 0xf6, 0x10, 0xff, 0x35, 0xcc, 0x41, 0x3f, 0xca, 0x92, 0xc7,
+ 0x30, 0x46, 0x31, 0xe1, 0x22, 0xe7, 0x86, 0xae, 0xa1, 0x4a, 0x8e, 0x10, 0x3c, 0x36, 0x42, 0xd0,
+ 0xa6, 0xe3, 0x51, 0x0e, 0x8e, 0x93, 0x56, 0xa1, 0x80, 0x5e, 0xf1, 0x90, 0xe9, 0xea, 0x96, 0x59,
+ 0x99, 0x20, 0x24, 0x8f, 0x8c, 0x59, 0x45, 0x64, 0x74, 0xa2, 0x14, 0x43, 0x9c, 0x74, 0x09, 0x26,
+ 0x2c, 0xdb, 0xd3, 0x2d, 0xd3, 0xad, 0xe4, 0x4f, 0x0b, 0x8b, 0xc5, 0xe5, 0x0f, 0x8d, 0x0d, 0x84,
+ 0x26, 0xd5, 0x91, 0xb9, 0xb2, 0xb4, 0x01, 0xa2, 0x6b, 0x0d, 0x1c, 0x0d, 0x29, 0x9a, 0xd5, 0x41,
+ 0x8a, 0x6e, 0x76, 0xad, 0x4a, 0x81, 0x10, 0x9c, 0x1a, 0x9d, 0x08, 0x51, 0x5c, 0xb5, 0x3a, 0x68,
+ 0xc3, 0xec, 0x5a, 0x72, 0xd9, 0x0d, 0x3d, 0x4b, 0x73, 0x90, 0x73, 0x0f, 0x4c, 0x4f, 0x7d, 0xa5,
+ 0x52, 0x22, 0x11, 0xc2, 0x9e, 0xaa, 0xdf, 0xcc, 0xc1, 0x54, 0x92, 0x10, 0xbb, 0x02, 0xd9, 0x2e,
+ 0x9e, 0x65, 0x25, 0x75, 0x1c, 0x1f, 0x50, 0x4c, 0xd8, 0x89, 0xb9, 0x1f, 0xd1, 0x89, 0x75, 0x28,
+ 0x9a, 0xc8, 0xf5, 0x50, 0x87, 0x46, 0x44, 0x3a, 0x61, 0x4c, 0x01, 0x05, 0x8d, 0x86, 0x54, 0xe6,
+ 0x47, 0x0a, 0xa9, 0x17, 0x61, 0xca, 0x37, 0x49, 0x71, 0x54, 0xb3, 0xc7, 0x63, 0xf3, 0x5c, 0x9c,
+ 0x25, 0x4b, 0x0d, 0x8e, 0x93, 0x31, 0x4c, 0x2e, 0xa3, 0xd0, 0xb3, 0xb4, 0x06, 0x60, 0x99, 0xc8,
+ 0xea, 0x2a, 0x1d, 0xa4, 0x19, 0x95, 0xfc, 0x21, 0x5e, 0x6a, 0x62, 0x95, 0x11, 0x2f, 0x59, 0x54,
+ 0xaa, 0x19, 0xd2, 0x33, 0xc3, 0x50, 0x9b, 0x38, 0x24, 0x52, 0xb6, 0xe8, 0x26, 0x1b, 0x89, 0xb6,
+ 0x5d, 0x28, 0x3b, 0x08, 0xc7, 0x3d, 0xea, 0xb0, 0x99, 0x15, 0x88, 0x11, 0x4b, 0xb1, 0x33, 0x93,
+ 0x19, 0x8c, 0x4e, 0x6c, 0xd2, 0x09, 0x3e, 0x4a, 0x0f, 0x81, 0x2f, 0x50, 0x48, 0x58, 0x01, 0xc9,
+ 0x42, 0x25, 0x2e, 0xdc, 0x56, 0xfb, 0x68, 0xfe, 0x16, 0x94, 0xc3, 0xee, 0x91, 0x66, 0x21, 0xeb,
+ 0x7a, 0xaa, 0xe3, 0x91, 0x28, 0xcc, 0xca, 0xf4, 0x41, 0x12, 0x21, 0x8d, 0xcc, 0x0e, 0xc9, 0x72,
+ 0x59, 0x19, 0xff, 0x29, 0xfd, 0xe4, 0x70, 0xc2, 0x69, 0x32, 0xe1, 0x47, 0x47, 0x57, 0x34, 0xc4,
+ 0x1c, 0x9d, 0xf7, 0xfc, 0xd3, 0x30, 0x19, 0x9a, 0x40, 0xd2, 0x57, 0x57, 0x7f, 0x06, 0xee, 0x1b,
+ 0x4b, 0x2d, 0xbd, 0x08, 0xb3, 0x03, 0x53, 0x37, 0x3d, 0xe4, 0xd8, 0x0e, 0xc2, 0x11, 0x4b, 0x5f,
+ 0x55, 0xf9, 0xb7, 0x89, 0x43, 0x62, 0x6e, 0x37, 0xa8, 0x4d, 0x59, 0xe4, 0x99, 0xc1, 0xa8, 0xf0,
+ 0xf1, 0x42, 0xfe, 0xdf, 0x27, 0xc4, 0xdb, 0xb7, 0x6f, 0xdf, 0x4e, 0x55, 0x3f, 0x9b, 0x83, 0xd9,
+ 0x71, 0x7b, 0x66, 0xec, 0xf6, 0x9d, 0x83, 0x9c, 0x39, 0xe8, 0xef, 0x21, 0x87, 0x38, 0x29, 0x2b,
+ 0xb3, 0x27, 0xa9, 0x0e, 0x59, 0x43, 0xdd, 0x43, 0x46, 0x25, 0x73, 0x5a, 0x58, 0x2c, 0x2f, 0x3f,
+ 0x91, 0x68, 0x57, 0x2e, 0x6d, 0x62, 0x88, 0x4c, 0x91, 0xd2, 0xb3, 0x90, 0x61, 0x29, 0x1a, 0x33,
+ 0x3c, 0x9e, 0x8c, 0x01, 0xef, 0x25, 0x99, 0xe0, 0xa4, 0x07, 0xa0, 0x80, 0xff, 0xa7, 0xb1, 0x91,
+ 0x23, 0x36, 0xe7, 0xb1, 0x00, 0xc7, 0x85, 0x34, 0x0f, 0x79, 0xb2, 0x4d, 0x3a, 0x88, 0x97, 0x36,
+ 0xff, 0x19, 0x07, 0x56, 0x07, 0x75, 0xd5, 0x81, 0xe1, 0x29, 0x37, 0x54, 0x63, 0x80, 0x48, 0xc0,
+ 0x17, 0xe4, 0x12, 0x13, 0x7e, 0x02, 0xcb, 0xa4, 0x53, 0x50, 0xa4, 0xbb, 0x4a, 0x37, 0x3b, 0xe8,
+ 0x15, 0x92, 0x3d, 0xb3, 0x32, 0xdd, 0x68, 0x1b, 0x58, 0x82, 0x5f, 0x7f, 0xcd, 0xb5, 0x4c, 0x1e,
+ 0x9a, 0xe4, 0x15, 0x58, 0x40, 0x5e, 0xff, 0x74, 0x34, 0x71, 0x3f, 0x38, 0x7e, 0x7a, 0xd1, 0x98,
+ 0xaa, 0x7e, 0x3d, 0x05, 0x19, 0x92, 0x2f, 0xa6, 0xa0, 0xb8, 0xf3, 0x52, 0xab, 0xa1, 0xac, 0x35,
+ 0x77, 0x57, 0x36, 0x1b, 0xa2, 0x20, 0x95, 0x01, 0x88, 0xe0, 0xea, 0x66, 0xb3, 0xbe, 0x23, 0xa6,
+ 0xfc, 0xe7, 0x8d, 0xed, 0x9d, 0x4b, 0x17, 0xc4, 0xb4, 0x0f, 0xd8, 0xa5, 0x82, 0x4c, 0x50, 0xe1,
+ 0xfc, 0xb2, 0x98, 0x95, 0x44, 0x28, 0x51, 0x82, 0x8d, 0x17, 0x1b, 0x6b, 0x97, 0x2e, 0x88, 0xb9,
+ 0xb0, 0xe4, 0xfc, 0xb2, 0x38, 0x21, 0x4d, 0x42, 0x81, 0x48, 0x56, 0x9a, 0xcd, 0x4d, 0x31, 0xef,
+ 0x73, 0xb6, 0x77, 0xe4, 0x8d, 0xed, 0x75, 0xb1, 0xe0, 0x73, 0xae, 0xcb, 0xcd, 0xdd, 0x96, 0x08,
+ 0x3e, 0xc3, 0x56, 0xa3, 0xdd, 0xae, 0xaf, 0x37, 0xc4, 0xa2, 0xaf, 0xb1, 0xf2, 0xd2, 0x4e, 0xa3,
+ 0x2d, 0x96, 0x42, 0x66, 0x9d, 0x5f, 0x16, 0x27, 0xfd, 0x57, 0x34, 0xb6, 0x77, 0xb7, 0xc4, 0xb2,
+ 0x34, 0x0d, 0x93, 0xf4, 0x15, 0xdc, 0x88, 0xa9, 0x88, 0xe8, 0xd2, 0x05, 0x51, 0x1c, 0x1a, 0x42,
+ 0x59, 0xa6, 0x43, 0x82, 0x4b, 0x17, 0x44, 0xa9, 0xba, 0x0a, 0x59, 0x12, 0x5d, 0x92, 0x04, 0xe5,
+ 0xcd, 0xfa, 0x4a, 0x63, 0x53, 0x69, 0xb6, 0x76, 0x36, 0x9a, 0xdb, 0xf5, 0x4d, 0x51, 0x18, 0xca,
+ 0xe4, 0xc6, 0xc7, 0x77, 0x37, 0xe4, 0xc6, 0x9a, 0x98, 0x0a, 0xca, 0x5a, 0x8d, 0xfa, 0x4e, 0x63,
+ 0x4d, 0x4c, 0x57, 0x35, 0x98, 0x1d, 0x97, 0x27, 0xc7, 0xee, 0x8c, 0xc0, 0x12, 0xa7, 0x0e, 0x59,
+ 0x62, 0xc2, 0x35, 0xb2, 0xc4, 0xff, 0x9a, 0x82, 0x99, 0x31, 0xb5, 0x62, 0xec, 0x4b, 0x9e, 0x83,
+ 0x2c, 0x0d, 0x51, 0x5a, 0x3d, 0xcf, 0x8e, 0x2d, 0x3a, 0x24, 0x60, 0x47, 0x2a, 0x28, 0xc1, 0x05,
+ 0x3b, 0x88, 0xf4, 0x21, 0x1d, 0x04, 0xa6, 0x18, 0xc9, 0xe9, 0x3f, 0x3d, 0x92, 0xd3, 0x69, 0xd9,
+ 0xbb, 0x94, 0xa4, 0xec, 0x11, 0xd9, 0xf1, 0x72, 0x7b, 0x76, 0x4c, 0x6e, 0xbf, 0x02, 0xd3, 0x23,
+ 0x44, 0x89, 0x73, 0xec, 0xab, 0x02, 0x54, 0x0e, 0x73, 0x4e, 0x4c, 0xa6, 0x4b, 0x85, 0x32, 0xdd,
+ 0x95, 0xa8, 0x07, 0xcf, 0x1c, 0xbe, 0x08, 0x23, 0x6b, 0xfd, 0xa6, 0x00, 0x73, 0xe3, 0x3b, 0xc5,
+ 0xb1, 0x36, 0x3c, 0x0b, 0xb9, 0x3e, 0xf2, 0xf6, 0x2d, 0xde, 0x2d, 0x3d, 0x3a, 0xa6, 0x06, 0xe3,
+ 0xe1, 0xe8, 0x62, 0x33, 0x54, 0xb0, 0x88, 0xa7, 0x0f, 0x6b, 0xf7, 0xa8, 0x35, 0x23, 0x96, 0x7e,
+ 0x3a, 0x05, 0xf7, 0x8d, 0x25, 0x1f, 0x6b, 0xe8, 0x83, 0x00, 0xba, 0x69, 0x0f, 0x3c, 0xda, 0x11,
+ 0xd1, 0x04, 0x5b, 0x20, 0x12, 0x92, 0xbc, 0x70, 0xf2, 0x1c, 0x78, 0xfe, 0x78, 0x9a, 0x8c, 0x03,
+ 0x15, 0x11, 0x85, 0xcb, 0x43, 0x43, 0x33, 0xc4, 0xd0, 0x85, 0x43, 0x66, 0x3a, 0x12, 0x98, 0x1f,
+ 0x01, 0x51, 0x33, 0x74, 0x64, 0x7a, 0x8a, 0xeb, 0x39, 0x48, 0xed, 0xeb, 0x66, 0x8f, 0x54, 0x90,
+ 0x7c, 0x2d, 0xdb, 0x55, 0x0d, 0x17, 0xc9, 0x53, 0x74, 0xb8, 0xcd, 0x47, 0x31, 0x82, 0x04, 0x90,
+ 0x13, 0x40, 0xe4, 0x42, 0x08, 0x3a, 0xec, 0x23, 0xaa, 0xbf, 0x52, 0x80, 0x62, 0xa0, 0xaf, 0x96,
+ 0xce, 0x40, 0xe9, 0x9a, 0x7a, 0x43, 0x55, 0xf8, 0x59, 0x89, 0x7a, 0xa2, 0x88, 0x65, 0x2d, 0x76,
+ 0x5e, 0xfa, 0x08, 0xcc, 0x12, 0x15, 0x6b, 0xe0, 0x21, 0x47, 0xd1, 0x0c, 0xd5, 0x75, 0x89, 0xd3,
+ 0xf2, 0x44, 0x55, 0xc2, 0x63, 0x4d, 0x3c, 0xb4, 0xca, 0x47, 0xa4, 0x8b, 0x30, 0x43, 0x10, 0xfd,
+ 0x81, 0xe1, 0xe9, 0xb6, 0x81, 0x14, 0x7c, 0x7a, 0x73, 0x49, 0x25, 0xf1, 0x2d, 0x9b, 0xc6, 0x1a,
+ 0x5b, 0x4c, 0x01, 0x5b, 0xe4, 0x4a, 0x6b, 0xf0, 0x20, 0x81, 0xf5, 0x90, 0x89, 0x1c, 0xd5, 0x43,
+ 0x0a, 0xfa, 0xd4, 0x40, 0x35, 0x5c, 0x45, 0x35, 0x3b, 0xca, 0xbe, 0xea, 0xee, 0x57, 0x66, 0x31,
+ 0xc1, 0x4a, 0xaa, 0x22, 0xc8, 0xf7, 0x63, 0xc5, 0x75, 0xa6, 0xd7, 0x20, 0x6a, 0x75, 0xb3, 0xf3,
+ 0x31, 0xd5, 0xdd, 0x97, 0x6a, 0x30, 0x47, 0x58, 0x5c, 0xcf, 0xd1, 0xcd, 0x9e, 0xa2, 0xed, 0x23,
+ 0xed, 0xba, 0x32, 0xf0, 0xba, 0x97, 0x2b, 0x0f, 0x04, 0xdf, 0x4f, 0x2c, 0x6c, 0x13, 0x9d, 0x55,
+ 0xac, 0xb2, 0xeb, 0x75, 0x2f, 0x4b, 0x6d, 0x28, 0xe1, 0xc5, 0xe8, 0xeb, 0xb7, 0x90, 0xd2, 0xb5,
+ 0x1c, 0x52, 0x1a, 0xcb, 0x63, 0x52, 0x53, 0xc0, 0x83, 0x4b, 0x4d, 0x06, 0xd8, 0xb2, 0x3a, 0xa8,
+ 0x96, 0x6d, 0xb7, 0x1a, 0x8d, 0x35, 0xb9, 0xc8, 0x59, 0xae, 0x5a, 0x0e, 0x0e, 0xa8, 0x9e, 0xe5,
+ 0x3b, 0xb8, 0x48, 0x03, 0xaa, 0x67, 0x71, 0xf7, 0x5e, 0x84, 0x19, 0x4d, 0xa3, 0x73, 0xd6, 0x35,
+ 0x85, 0x9d, 0xb1, 0xdc, 0x8a, 0x18, 0x72, 0x96, 0xa6, 0xad, 0x53, 0x05, 0x16, 0xe3, 0xae, 0xf4,
+ 0x0c, 0xdc, 0x37, 0x74, 0x56, 0x10, 0x38, 0x3d, 0x32, 0xcb, 0x28, 0xf4, 0x22, 0xcc, 0xd8, 0x07,
+ 0xa3, 0x40, 0x29, 0xf4, 0x46, 0xfb, 0x20, 0x0a, 0x7b, 0x1a, 0x66, 0xed, 0x7d, 0x7b, 0x14, 0xf7,
+ 0x78, 0x10, 0x27, 0xd9, 0xfb, 0x76, 0x14, 0xf8, 0x08, 0x39, 0x70, 0x3b, 0x48, 0x53, 0x3d, 0xd4,
+ 0xa9, 0x9c, 0x0c, 0xaa, 0x07, 0x06, 0xa4, 0x73, 0x20, 0x6a, 0x9a, 0x82, 0x4c, 0x75, 0xcf, 0x40,
+ 0x8a, 0xea, 0x20, 0x53, 0x75, 0x2b, 0xa7, 0x82, 0xca, 0x65, 0x4d, 0x6b, 0x90, 0xd1, 0x3a, 0x19,
+ 0x94, 0x1e, 0x87, 0x69, 0x6b, 0xef, 0x9a, 0x46, 0x43, 0x52, 0xb1, 0x1d, 0xd4, 0xd5, 0x5f, 0xa9,
+ 0x3c, 0x4c, 0xfc, 0x3b, 0x85, 0x07, 0x48, 0x40, 0xb6, 0x88, 0x58, 0x3a, 0x0b, 0xa2, 0xe6, 0xee,
+ 0xab, 0x8e, 0x4d, 0x72, 0xb2, 0x6b, 0xab, 0x1a, 0xaa, 0x3c, 0x42, 0x55, 0xa9, 0x7c, 0x9b, 0x8b,
+ 0xf1, 0x96, 0x70, 0x6f, 0xea, 0x5d, 0x8f, 0x33, 0x3e, 0x46, 0xb7, 0x04, 0x91, 0x31, 0xb6, 0x45,
+ 0x10, 0xb1, 0x2b, 0x42, 0x2f, 0x5e, 0x24, 0x6a, 0x65, 0x7b, 0xdf, 0x0e, 0xbe, 0xf7, 0x21, 0x98,
+ 0xc4, 0x9a, 0xc3, 0x97, 0x9e, 0xa5, 0x0d, 0x99, 0xbd, 0x1f, 0x78, 0xe3, 0x05, 0x98, 0xc3, 0x4a,
+ 0x7d, 0xe4, 0xa9, 0x1d, 0xd5, 0x53, 0x03, 0xda, 0x1f, 0x26, 0xda, 0xd8, 0xef, 0x5b, 0x6c, 0x30,
+ 0x64, 0xa7, 0x33, 0xd8, 0x3b, 0xf0, 0x23, 0xeb, 0x49, 0x6a, 0x27, 0x96, 0xf1, 0xd8, 0x7a, 0xdf,
+ 0x9a, 0xee, 0x6a, 0x0d, 0x4a, 0xc1, 0xc0, 0x97, 0x0a, 0x40, 0x43, 0x5f, 0x14, 0x70, 0x17, 0xb4,
+ 0xda, 0x5c, 0xc3, 0xfd, 0xcb, 0xcb, 0x0d, 0x31, 0x85, 0xfb, 0xa8, 0xcd, 0x8d, 0x9d, 0x86, 0x22,
+ 0xef, 0x6e, 0xef, 0x6c, 0x6c, 0x35, 0xc4, 0x74, 0xb0, 0x61, 0xff, 0x76, 0x0a, 0xca, 0xe1, 0xb3,
+ 0x97, 0xf4, 0x13, 0x70, 0x92, 0x5f, 0x94, 0xb8, 0xc8, 0x53, 0x6e, 0xea, 0x0e, 0xd9, 0x8b, 0x7d,
+ 0x95, 0xd6, 0x45, 0x3f, 0x1a, 0x66, 0x99, 0x56, 0x1b, 0x79, 0x2f, 0xe8, 0x0e, 0xde, 0x69, 0x7d,
+ 0xd5, 0x93, 0x36, 0xe1, 0x94, 0x69, 0x29, 0xae, 0xa7, 0x9a, 0x1d, 0xd5, 0xe9, 0x28, 0xc3, 0x2b,
+ 0x2a, 0x45, 0xd5, 0x34, 0xe4, 0xba, 0x16, 0xad, 0x81, 0x3e, 0xcb, 0x87, 0x4c, 0xab, 0xcd, 0x94,
+ 0x87, 0xc5, 0xa1, 0xce, 0x54, 0x23, 0x91, 0x9b, 0x3e, 0x2c, 0x72, 0x1f, 0x80, 0x42, 0x5f, 0xb5,
+ 0x15, 0x64, 0x7a, 0xce, 0x01, 0xe9, 0xb8, 0xf3, 0x72, 0xbe, 0xaf, 0xda, 0x0d, 0xfc, 0xfc, 0xc1,
+ 0x1c, 0x7c, 0xfe, 0x25, 0x0d, 0xa5, 0x60, 0xd7, 0x8d, 0x0f, 0x31, 0x1a, 0x29, 0x50, 0x02, 0x49,
+ 0x61, 0x0f, 0x1d, 0xd9, 0xa3, 0x2f, 0xad, 0xe2, 0xca, 0x55, 0xcb, 0xd1, 0x5e, 0x58, 0xa6, 0x48,
+ 0xdc, 0x35, 0xe0, 0xd0, 0x42, 0xb4, 0xf7, 0xc8, 0xcb, 0xec, 0x49, 0x5a, 0x87, 0xdc, 0x35, 0x97,
+ 0x70, 0xe7, 0x08, 0xf7, 0xc3, 0x47, 0x73, 0x3f, 0xdf, 0x26, 0xe4, 0x85, 0xe7, 0xdb, 0xca, 0x76,
+ 0x53, 0xde, 0xaa, 0x6f, 0xca, 0x0c, 0x2e, 0xdd, 0x0f, 0x19, 0x43, 0xbd, 0x75, 0x10, 0xae, 0x71,
+ 0x44, 0x94, 0xd4, 0xf1, 0xf7, 0x43, 0xe6, 0x26, 0x52, 0xaf, 0x87, 0x2b, 0x0b, 0x11, 0xbd, 0x8f,
+ 0xa1, 0x7f, 0x0e, 0xb2, 0xc4, 0x5f, 0x12, 0x00, 0xf3, 0x98, 0x78, 0x42, 0xca, 0x43, 0x66, 0xb5,
+ 0x29, 0xe3, 0xf0, 0x17, 0xa1, 0x44, 0xa5, 0x4a, 0x6b, 0xa3, 0xb1, 0xda, 0x10, 0x53, 0xd5, 0x8b,
+ 0x90, 0xa3, 0x4e, 0xc0, 0x5b, 0xc3, 0x77, 0x83, 0x78, 0x82, 0x3d, 0x32, 0x0e, 0x81, 0x8f, 0xee,
+ 0x6e, 0xad, 0x34, 0x64, 0x31, 0x15, 0x5c, 0x5e, 0x17, 0x4a, 0xc1, 0x86, 0xfb, 0x83, 0x89, 0xa9,
+ 0x6f, 0x09, 0x50, 0x0c, 0x34, 0xd0, 0xb8, 0xf3, 0x51, 0x0d, 0xc3, 0xba, 0xa9, 0xa8, 0x86, 0xae,
+ 0xba, 0x2c, 0x28, 0x80, 0x88, 0xea, 0x58, 0x92, 0x74, 0xd1, 0x3e, 0x10, 0xe3, 0xdf, 0x10, 0x40,
+ 0x8c, 0xf6, 0xae, 0x11, 0x03, 0x85, 0x1f, 0xab, 0x81, 0xaf, 0x0b, 0x50, 0x0e, 0x37, 0xac, 0x11,
+ 0xf3, 0xce, 0xfc, 0x58, 0xcd, 0xfb, 0x6e, 0x0a, 0x26, 0x43, 0x6d, 0x6a, 0x52, 0xeb, 0x3e, 0x05,
+ 0xd3, 0x7a, 0x07, 0xf5, 0x6d, 0xcb, 0x43, 0xa6, 0x76, 0xa0, 0x18, 0xe8, 0x06, 0x32, 0x2a, 0x55,
+ 0x92, 0x28, 0xce, 0x1d, 0xdd, 0x08, 0x2f, 0x6d, 0x0c, 0x71, 0x9b, 0x18, 0x56, 0x9b, 0xd9, 0x58,
+ 0x6b, 0x6c, 0xb5, 0x9a, 0x3b, 0x8d, 0xed, 0xd5, 0x97, 0x94, 0xdd, 0xed, 0x9f, 0xda, 0x6e, 0xbe,
+ 0xb0, 0x2d, 0x8b, 0x7a, 0x44, 0xed, 0x7d, 0xdc, 0xea, 0x2d, 0x10, 0xa3, 0x46, 0x49, 0x27, 0x61,
+ 0x9c, 0x59, 0xe2, 0x09, 0x69, 0x06, 0xa6, 0xb6, 0x9b, 0x4a, 0x7b, 0x63, 0xad, 0xa1, 0x34, 0xae,
+ 0x5e, 0x6d, 0xac, 0xee, 0xb4, 0xe9, 0xd5, 0x86, 0xaf, 0xbd, 0x13, 0xde, 0xd4, 0xaf, 0xa5, 0x61,
+ 0x66, 0x8c, 0x25, 0x52, 0x9d, 0x1d, 0x4a, 0xe8, 0x39, 0xe9, 0xc9, 0x24, 0xd6, 0x2f, 0xe1, 0xae,
+ 0xa0, 0xa5, 0x3a, 0x1e, 0x3b, 0xc3, 0x9c, 0x05, 0xec, 0x25, 0xd3, 0xd3, 0xbb, 0x3a, 0x72, 0xd8,
+ 0x4d, 0x10, 0x3d, 0xa9, 0x4c, 0x0d, 0xe5, 0xf4, 0x32, 0xe8, 0xc3, 0x20, 0xd9, 0x96, 0xab, 0x7b,
+ 0xfa, 0x0d, 0xa4, 0xe8, 0x26, 0xbf, 0x36, 0xc2, 0x27, 0x97, 0x8c, 0x2c, 0xf2, 0x91, 0x0d, 0xd3,
+ 0xf3, 0xb5, 0x4d, 0xd4, 0x53, 0x23, 0xda, 0x38, 0x81, 0xa7, 0x65, 0x91, 0x8f, 0xf8, 0xda, 0x67,
+ 0xa0, 0xd4, 0xb1, 0x06, 0xb8, 0x9d, 0xa3, 0x7a, 0xb8, 0x5e, 0x08, 0x72, 0x91, 0xca, 0x7c, 0x15,
+ 0xd6, 0xa8, 0x0f, 0xef, 0xab, 0x4a, 0x72, 0x91, 0xca, 0xa8, 0xca, 0x63, 0x30, 0xa5, 0xf6, 0x7a,
+ 0x0e, 0x26, 0xe7, 0x44, 0xf4, 0xe8, 0x51, 0xf6, 0xc5, 0x44, 0x71, 0xfe, 0x79, 0xc8, 0x73, 0x3f,
+ 0xe0, 0x92, 0x8c, 0x3d, 0xa1, 0xd8, 0xf4, 0x3c, 0x9d, 0x5a, 0x2c, 0xc8, 0x79, 0x93, 0x0f, 0x9e,
+ 0x81, 0x92, 0xee, 0x2a, 0xc3, 0xeb, 0xf7, 0xd4, 0xe9, 0xd4, 0x62, 0x5e, 0x2e, 0xea, 0xae, 0x7f,
+ 0x75, 0x59, 0x7d, 0x33, 0x05, 0xe5, 0xf0, 0xe7, 0x03, 0x69, 0x0d, 0xf2, 0x86, 0xa5, 0xa9, 0x24,
+ 0xb4, 0xe8, 0xb7, 0xab, 0xc5, 0x98, 0x2f, 0x0e, 0x4b, 0x9b, 0x4c, 0x5f, 0xf6, 0x91, 0xf3, 0xff,
+ 0x28, 0x40, 0x9e, 0x8b, 0xa5, 0x39, 0xc8, 0xd8, 0xaa, 0xb7, 0x4f, 0xe8, 0xb2, 0x2b, 0x29, 0x51,
+ 0x90, 0xc9, 0x33, 0x96, 0xbb, 0xb6, 0x6a, 0x92, 0x10, 0x60, 0x72, 0xfc, 0x8c, 0xd7, 0xd5, 0x40,
+ 0x6a, 0x87, 0x9c, 0x6b, 0xac, 0x7e, 0x1f, 0x99, 0x9e, 0xcb, 0xd7, 0x95, 0xc9, 0x57, 0x99, 0x58,
+ 0x7a, 0x02, 0xa6, 0x3d, 0x47, 0xd5, 0x8d, 0x90, 0x6e, 0x86, 0xe8, 0x8a, 0x7c, 0xc0, 0x57, 0xae,
+ 0xc1, 0xfd, 0x9c, 0xb7, 0x83, 0x3c, 0x55, 0xdb, 0x47, 0x9d, 0x21, 0x28, 0x47, 0xee, 0x2f, 0x4e,
+ 0x32, 0x85, 0x35, 0x36, 0xce, 0xb1, 0xd5, 0xef, 0x08, 0x30, 0xcd, 0x4f, 0x62, 0x1d, 0xdf, 0x59,
+ 0x5b, 0x00, 0xaa, 0x69, 0x5a, 0x5e, 0xd0, 0x5d, 0xa3, 0xa1, 0x3c, 0x82, 0x5b, 0xaa, 0xfb, 0x20,
+ 0x39, 0x40, 0x30, 0xdf, 0x07, 0x18, 0x8e, 0x1c, 0xea, 0xb6, 0x53, 0x50, 0x64, 0xdf, 0x86, 0xc8,
+ 0x07, 0x46, 0x7a, 0x76, 0x07, 0x2a, 0xc2, 0x47, 0x36, 0x69, 0x16, 0xb2, 0x7b, 0xa8, 0xa7, 0x9b,
+ 0xec, 0xc6, 0x97, 0x3e, 0xf0, 0x1b, 0x96, 0x8c, 0x7f, 0xc3, 0xb2, 0xf2, 0x49, 0x98, 0xd1, 0xac,
+ 0x7e, 0xd4, 0xdc, 0x15, 0x31, 0x72, 0x7f, 0xe0, 0x7e, 0x4c, 0x78, 0x19, 0x86, 0x2d, 0xe6, 0x0f,
+ 0x04, 0xe1, 0x8b, 0xa9, 0xf4, 0x7a, 0x6b, 0xe5, 0x2b, 0xa9, 0xf9, 0x75, 0x0a, 0x6d, 0xf1, 0x99,
+ 0xca, 0xa8, 0x6b, 0x20, 0x0d, 0x5b, 0x0f, 0x5f, 0x7a, 0x02, 0x9e, 0xec, 0xe9, 0xde, 0xfe, 0x60,
+ 0x6f, 0x49, 0xb3, 0xfa, 0xe7, 0x7a, 0x56, 0xcf, 0x1a, 0x7e, 0x53, 0xc5, 0x4f, 0xe4, 0x81, 0xfc,
+ 0xc5, 0xbe, 0xab, 0x16, 0x7c, 0xe9, 0x7c, 0xec, 0x47, 0xd8, 0xda, 0x36, 0xcc, 0x30, 0x65, 0x85,
+ 0x7c, 0xd8, 0xa1, 0xc7, 0x13, 0xe9, 0xc8, 0xcb, 0xb1, 0xca, 0xd7, 0xde, 0x21, 0xe5, 0x5a, 0x9e,
+ 0x66, 0x50, 0x3c, 0x46, 0x4f, 0x30, 0x35, 0x19, 0xee, 0x0b, 0xf1, 0xd1, 0xad, 0x89, 0x9c, 0x18,
+ 0xc6, 0x6f, 0x33, 0xc6, 0x99, 0x00, 0x63, 0x9b, 0x41, 0x6b, 0xab, 0x30, 0x79, 0x1c, 0xae, 0xbf,
+ 0x63, 0x5c, 0x25, 0x14, 0x24, 0x59, 0x87, 0x29, 0x42, 0xa2, 0x0d, 0x5c, 0xcf, 0xea, 0x93, 0xbc,
+ 0x77, 0x34, 0xcd, 0xdf, 0xbf, 0x43, 0xf7, 0x4a, 0x19, 0xc3, 0x56, 0x7d, 0x54, 0xad, 0x06, 0xe4,
+ 0x5b, 0x56, 0x07, 0x69, 0x46, 0x0c, 0xc3, 0x5b, 0xcc, 0x10, 0x5f, 0xbf, 0xf6, 0x09, 0x98, 0xc5,
+ 0x7f, 0x93, 0xb4, 0x14, 0xb4, 0x24, 0xfe, 0x26, 0xad, 0xf2, 0x9d, 0x57, 0xe9, 0x76, 0x9c, 0xf1,
+ 0x09, 0x02, 0x36, 0x05, 0x56, 0xb1, 0x87, 0x3c, 0x0f, 0x39, 0xae, 0xa2, 0x1a, 0xe3, 0xcc, 0x0b,
+ 0x5c, 0x45, 0x54, 0x3e, 0xf7, 0x6e, 0x78, 0x15, 0xd7, 0x29, 0xb2, 0x6e, 0x18, 0xb5, 0x5d, 0x38,
+ 0x39, 0x26, 0x2a, 0x12, 0x70, 0xbe, 0xc6, 0x38, 0x67, 0x47, 0x22, 0x03, 0xd3, 0xb6, 0x80, 0xcb,
+ 0xfd, 0xb5, 0x4c, 0xc0, 0xf9, 0xbb, 0x8c, 0x53, 0x62, 0x58, 0xbe, 0xa4, 0x98, 0xf1, 0x79, 0x98,
+ 0xbe, 0x81, 0x9c, 0x3d, 0xcb, 0x65, 0xd7, 0x3f, 0x09, 0xe8, 0x5e, 0x67, 0x74, 0x53, 0x0c, 0x48,
+ 0xee, 0x83, 0x30, 0xd7, 0x33, 0x90, 0xef, 0xaa, 0x1a, 0x4a, 0x40, 0xf1, 0x79, 0x46, 0x31, 0x81,
+ 0xf5, 0x31, 0xb4, 0x0e, 0xa5, 0x9e, 0xc5, 0x2a, 0x53, 0x3c, 0xfc, 0x0d, 0x06, 0x2f, 0x72, 0x0c,
+ 0xa3, 0xb0, 0x2d, 0x7b, 0x60, 0xe0, 0xb2, 0x15, 0x4f, 0xf1, 0x7b, 0x9c, 0x82, 0x63, 0x18, 0xc5,
+ 0x31, 0xdc, 0xfa, 0x05, 0x4e, 0xe1, 0x06, 0xfc, 0xf9, 0x1c, 0x14, 0x2d, 0xd3, 0x38, 0xb0, 0xcc,
+ 0x24, 0x46, 0xdc, 0x61, 0x0c, 0xc0, 0x20, 0x98, 0xe0, 0x0a, 0x14, 0x92, 0x2e, 0xc4, 0x1f, 0xbc,
+ 0xcb, 0xb7, 0x07, 0x5f, 0x81, 0x75, 0x98, 0xe2, 0x09, 0x4a, 0xb7, 0xcc, 0x04, 0x14, 0x5f, 0x62,
+ 0x14, 0xe5, 0x00, 0x8c, 0x4d, 0xc3, 0x43, 0xae, 0xd7, 0x43, 0x49, 0x48, 0xde, 0xe4, 0xd3, 0x60,
+ 0x10, 0xe6, 0xca, 0x3d, 0x64, 0x6a, 0xfb, 0xc9, 0x18, 0xbe, 0xcc, 0x5d, 0xc9, 0x31, 0x98, 0x62,
+ 0x15, 0x26, 0xfb, 0xaa, 0xe3, 0xee, 0xab, 0x46, 0xa2, 0xe5, 0xf8, 0x43, 0xc6, 0x51, 0xf2, 0x41,
+ 0xcc, 0x23, 0x03, 0xf3, 0x38, 0x34, 0x5f, 0xe1, 0x1e, 0x09, 0xc0, 0xd8, 0xd6, 0x73, 0x3d, 0x72,
+ 0x57, 0x76, 0x1c, 0xb6, 0x3f, 0xe2, 0x5b, 0x8f, 0x62, 0xb7, 0x82, 0x8c, 0x57, 0xa0, 0xe0, 0xea,
+ 0xb7, 0x12, 0xd1, 0xfc, 0x31, 0x5f, 0x69, 0x02, 0xc0, 0xe0, 0x97, 0xe0, 0xfe, 0xb1, 0x65, 0x22,
+ 0x01, 0xd9, 0x9f, 0x30, 0xb2, 0xb9, 0x31, 0xa5, 0x82, 0xa5, 0x84, 0xe3, 0x52, 0xfe, 0x29, 0x4f,
+ 0x09, 0x28, 0xc2, 0xd5, 0xc2, 0x67, 0x05, 0x57, 0xed, 0x1e, 0xcf, 0x6b, 0x7f, 0xc6, 0xbd, 0x46,
+ 0xb1, 0x21, 0xaf, 0xed, 0xc0, 0x1c, 0x63, 0x3c, 0xde, 0xba, 0x7e, 0x95, 0x27, 0x56, 0x8a, 0xde,
+ 0x0d, 0xaf, 0xee, 0x27, 0x61, 0xde, 0x77, 0x27, 0x6f, 0x4a, 0x5d, 0xa5, 0xaf, 0xda, 0x09, 0x98,
+ 0xbf, 0xc6, 0x98, 0x79, 0xc6, 0xf7, 0xbb, 0x5a, 0x77, 0x4b, 0xb5, 0x31, 0xf9, 0x8b, 0x50, 0xe1,
+ 0xe4, 0x03, 0xd3, 0x41, 0x9a, 0xd5, 0x33, 0xf5, 0x5b, 0xa8, 0x93, 0x80, 0xfa, 0xcf, 0x23, 0x4b,
+ 0xb5, 0x1b, 0x80, 0x63, 0xe6, 0x0d, 0x10, 0xfd, 0x5e, 0x45, 0xd1, 0xfb, 0xb6, 0xe5, 0x78, 0x31,
+ 0x8c, 0x7f, 0xc1, 0x57, 0xca, 0xc7, 0x6d, 0x10, 0x58, 0xad, 0x01, 0x65, 0xf2, 0x98, 0x34, 0x24,
+ 0xff, 0x92, 0x11, 0x4d, 0x0e, 0x51, 0x2c, 0x71, 0x68, 0x56, 0xdf, 0x56, 0x9d, 0x24, 0xf9, 0xef,
+ 0xaf, 0x78, 0xe2, 0x60, 0x10, 0x96, 0x38, 0xbc, 0x03, 0x1b, 0xe1, 0x6a, 0x9f, 0x80, 0xe1, 0xeb,
+ 0x3c, 0x71, 0x70, 0x0c, 0xa3, 0xe0, 0x0d, 0x43, 0x02, 0x8a, 0xbf, 0xe6, 0x14, 0x1c, 0x83, 0x29,
+ 0x3e, 0x3e, 0x2c, 0xb4, 0x0e, 0xea, 0xe9, 0xae, 0xe7, 0xd0, 0x56, 0xf8, 0x68, 0xaa, 0x6f, 0xbc,
+ 0x1b, 0x6e, 0xc2, 0xe4, 0x00, 0x14, 0x67, 0x22, 0x76, 0x85, 0x4a, 0x4e, 0x4a, 0xf1, 0x86, 0x7d,
+ 0x93, 0x67, 0xa2, 0x00, 0x0c, 0xdb, 0x16, 0xe8, 0x10, 0xb1, 0xdb, 0x35, 0x7c, 0x3e, 0x48, 0x40,
+ 0xf7, 0xad, 0x88, 0x71, 0x6d, 0x8e, 0xc5, 0x9c, 0x81, 0xfe, 0x67, 0x60, 0x5e, 0x47, 0x07, 0x89,
+ 0xa2, 0xf3, 0x6f, 0x22, 0xfd, 0xcf, 0x2e, 0x45, 0xd2, 0x1c, 0x32, 0x15, 0xe9, 0xa7, 0xa4, 0xb8,
+ 0x5f, 0x01, 0x55, 0x7e, 0xf6, 0x1e, 0x9b, 0x6f, 0xb8, 0x9d, 0xaa, 0x6d, 0xe2, 0x20, 0x0f, 0x37,
+ 0x3d, 0xf1, 0x64, 0xaf, 0xde, 0xf3, 0xe3, 0x3c, 0xd4, 0xf3, 0xd4, 0xae, 0xc2, 0x64, 0xa8, 0xe1,
+ 0x89, 0xa7, 0xfa, 0x39, 0x46, 0x55, 0x0a, 0xf6, 0x3b, 0xb5, 0x8b, 0x90, 0xc1, 0xcd, 0x4b, 0x3c,
+ 0xfc, 0xe7, 0x19, 0x9c, 0xa8, 0xd7, 0x3e, 0x0a, 0x79, 0xde, 0xb4, 0xc4, 0x43, 0x7f, 0x81, 0x41,
+ 0x7d, 0x08, 0x86, 0xf3, 0x86, 0x25, 0x1e, 0xfe, 0x8b, 0x1c, 0xce, 0x21, 0x18, 0x9e, 0xdc, 0x85,
+ 0x7f, 0xfb, 0xcb, 0x19, 0x56, 0x74, 0xb8, 0xef, 0xae, 0xc0, 0x04, 0xeb, 0x54, 0xe2, 0xd1, 0x9f,
+ 0x66, 0x2f, 0xe7, 0x88, 0xda, 0xd3, 0x90, 0x4d, 0xe8, 0xf0, 0x5f, 0x65, 0x50, 0xaa, 0x5f, 0x5b,
+ 0x85, 0x62, 0xa0, 0x3b, 0x89, 0x87, 0xff, 0x1a, 0x83, 0x07, 0x51, 0xd8, 0x74, 0xd6, 0x9d, 0xc4,
+ 0x13, 0xfc, 0x3a, 0x37, 0x9d, 0x21, 0xb0, 0xdb, 0x78, 0x63, 0x12, 0x8f, 0xfe, 0x0c, 0xf7, 0x3a,
+ 0x87, 0xd4, 0x9e, 0x83, 0x82, 0x5f, 0x6c, 0xe2, 0xf1, 0xbf, 0xc1, 0xf0, 0x43, 0x0c, 0xf6, 0x40,
+ 0xa0, 0xd8, 0xc5, 0x53, 0xfc, 0x26, 0xf7, 0x40, 0x00, 0x85, 0xb7, 0x51, 0xb4, 0x81, 0x89, 0x67,
+ 0xfa, 0x2d, 0xbe, 0x8d, 0x22, 0xfd, 0x0b, 0x5e, 0x4d, 0x92, 0xf3, 0xe3, 0x29, 0x7e, 0x9b, 0xaf,
+ 0x26, 0xd1, 0xc7, 0x66, 0x44, 0x3b, 0x82, 0x78, 0x8e, 0xdf, 0xe1, 0x66, 0x44, 0x1a, 0x82, 0x5a,
+ 0x0b, 0xa4, 0xd1, 0x6e, 0x20, 0x9e, 0xef, 0xb3, 0x8c, 0x6f, 0x7a, 0xa4, 0x19, 0xa8, 0xbd, 0x00,
+ 0x73, 0xe3, 0x3b, 0x81, 0x78, 0xd6, 0xcf, 0xdd, 0x8b, 0x9c, 0xdd, 0x82, 0x8d, 0x40, 0x6d, 0x67,
+ 0x58, 0x52, 0x82, 0x5d, 0x40, 0x3c, 0xed, 0x6b, 0xf7, 0xc2, 0x89, 0x3b, 0xd8, 0x04, 0xd4, 0xea,
+ 0x00, 0xc3, 0x02, 0x1c, 0xcf, 0xf5, 0x3a, 0xe3, 0x0a, 0x80, 0xf0, 0xd6, 0x60, 0xf5, 0x37, 0x1e,
+ 0xff, 0x79, 0xbe, 0x35, 0x18, 0x02, 0x6f, 0x0d, 0x5e, 0x7a, 0xe3, 0xd1, 0x6f, 0xf0, 0xad, 0xc1,
+ 0x21, 0x38, 0xb2, 0x03, 0xd5, 0x2d, 0x9e, 0xe1, 0x0e, 0x8f, 0xec, 0x00, 0xaa, 0xb6, 0x0d, 0xd3,
+ 0x23, 0x05, 0x31, 0x9e, 0xea, 0x8b, 0x8c, 0x4a, 0x8c, 0xd6, 0xc3, 0x60, 0xf1, 0x62, 0xc5, 0x30,
+ 0x9e, 0xed, 0xf7, 0x23, 0xc5, 0x8b, 0xd5, 0xc2, 0xda, 0x15, 0xc8, 0x9b, 0x03, 0xc3, 0xc0, 0x9b,
+ 0x47, 0x3a, 0xfa, 0x97, 0x7b, 0x95, 0xff, 0x78, 0x8f, 0x79, 0x87, 0x03, 0x6a, 0x17, 0x21, 0x8b,
+ 0xfa, 0x7b, 0xa8, 0x13, 0x87, 0xfc, 0xcf, 0xf7, 0x78, 0xc2, 0xc4, 0xda, 0xb5, 0xe7, 0x00, 0xe8,
+ 0xd5, 0x08, 0xf9, 0xec, 0x17, 0x83, 0xfd, 0xaf, 0xf7, 0xd8, 0x6f, 0x6a, 0x86, 0x90, 0x21, 0x01,
+ 0xfd, 0x85, 0xce, 0xd1, 0x04, 0xef, 0x86, 0x09, 0xc8, 0x8a, 0x3c, 0x03, 0x13, 0xd7, 0x5c, 0xcb,
+ 0xf4, 0xd4, 0x5e, 0x1c, 0xfa, 0x7b, 0x0c, 0xcd, 0xf5, 0xb1, 0xc3, 0xfa, 0x96, 0x83, 0x3c, 0xb5,
+ 0xe7, 0xc6, 0x61, 0xff, 0x9b, 0x61, 0x7d, 0x00, 0x06, 0x6b, 0xaa, 0xeb, 0x25, 0x99, 0xf7, 0xff,
+ 0x70, 0x30, 0x07, 0x60, 0xa3, 0xf1, 0xdf, 0xd7, 0xd1, 0x41, 0x1c, 0xf6, 0xfb, 0xdc, 0x68, 0xa6,
+ 0x5f, 0xfb, 0x28, 0x14, 0xf0, 0x9f, 0xf4, 0x87, 0x72, 0x31, 0xe0, 0xff, 0x65, 0xe0, 0x21, 0x02,
+ 0xbf, 0xd9, 0xf5, 0x3a, 0x9e, 0x1e, 0xef, 0xec, 0xff, 0x63, 0x2b, 0xcd, 0xf5, 0x6b, 0x75, 0x28,
+ 0xba, 0x5e, 0xa7, 0x33, 0x60, 0xfd, 0x69, 0x0c, 0xfc, 0xff, 0xdf, 0xf3, 0xaf, 0x2c, 0x7c, 0x0c,
+ 0x5e, 0xed, 0x9b, 0xd7, 0x3d, 0xdb, 0x22, 0x9f, 0x39, 0xe2, 0x18, 0xee, 0x31, 0x86, 0x00, 0x64,
+ 0xa5, 0x31, 0xfe, 0xfa, 0x16, 0xd6, 0xad, 0x75, 0x8b, 0x5e, 0xdc, 0xbe, 0x5c, 0x8d, 0xbf, 0x81,
+ 0x85, 0xef, 0x65, 0xe0, 0x64, 0x30, 0x33, 0xf6, 0x1c, 0x6b, 0x60, 0xb3, 0x2b, 0xd9, 0xe9, 0x91,
+ 0x81, 0xf9, 0xe3, 0x5d, 0xea, 0x56, 0x4d, 0x80, 0x6d, 0x74, 0x73, 0xdb, 0x5a, 0xc7, 0x60, 0x69,
+ 0x0e, 0x72, 0x64, 0x5a, 0x4f, 0x91, 0xcf, 0x92, 0x69, 0x99, 0x3d, 0xf9, 0xf2, 0xf3, 0xe4, 0xc7,
+ 0xfd, 0x02, 0x93, 0x9f, 0x97, 0xaa, 0x20, 0xd4, 0xc9, 0x77, 0x97, 0xe2, 0xf2, 0xec, 0xd2, 0xa8,
+ 0x91, 0x75, 0x59, 0xa8, 0xd7, 0x4a, 0xbf, 0x74, 0xe7, 0x94, 0xf0, 0x99, 0x3b, 0xa7, 0x84, 0x2f,
+ 0xdc, 0x39, 0x25, 0x54, 0xcf, 0x82, 0x50, 0xc7, 0x74, 0x75, 0xc2, 0xc0, 0x5f, 0x43, 0x9f, 0x22,
+ 0xaa, 0xff, 0x90, 0x82, 0x52, 0xd3, 0xe8, 0xbc, 0xa0, 0x7b, 0xfb, 0x47, 0x5b, 0xf7, 0x2c, 0xe4,
+ 0xc8, 0xfb, 0x9e, 0x22, 0x77, 0xed, 0xb0, 0xfc, 0xe8, 0x18, 0x53, 0x82, 0x44, 0x4b, 0xe4, 0xdf,
+ 0xa7, 0x64, 0x86, 0x3a, 0x74, 0x76, 0x9c, 0x77, 0x99, 0x5c, 0xca, 0x27, 0xe5, 0x5d, 0x66, 0xbc,
+ 0xcb, 0xf3, 0x2d, 0xc8, 0xad, 0x87, 0xdf, 0x70, 0x98, 0x5f, 0x97, 0xf9, 0x4f, 0x22, 0xe9, 0xd3,
+ 0x61, 0x16, 0xcd, 0x5f, 0x66, 0x8c, 0xcb, 0x89, 0x18, 0x87, 0xc8, 0xe5, 0x95, 0xc5, 0xb7, 0xee,
+ 0x2e, 0x9c, 0xf8, 0xa7, 0xbb, 0x0b, 0x27, 0xfe, 0xf9, 0xee, 0xc2, 0x89, 0xef, 0xde, 0x5d, 0x10,
+ 0xbe, 0x7f, 0x77, 0x41, 0xf8, 0xc1, 0xdd, 0x05, 0xe1, 0xf6, 0xdb, 0x0b, 0xc2, 0x97, 0xdf, 0x5e,
+ 0x10, 0xbe, 0xfa, 0xf6, 0x82, 0xf0, 0x8d, 0xb7, 0x17, 0x84, 0x1f, 0x06, 0x00, 0x00, 0xff, 0xff,
+ 0x9d, 0x33, 0x4a, 0x98, 0x64, 0x35, 0x00, 0x00,
}
r := bytes.NewReader(gzipped)
gzipr, err := compress_gzip.NewReader(r)
@@ -1484,7 +1511,7 @@ func (m *NewNoGroup) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1512,7 +1539,7 @@ func (m *NewNoGroup) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1539,7 +1566,7 @@ func (m *NewNoGroup) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- packedLen |= (int(b) & 0x7F) << shift
+ packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1548,6 +1575,9 @@ func (m *NewNoGroup) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnrecognizedgroup
}
postIndex := iNdEx + packedLen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnrecognizedgroup
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1583,7 +1613,7 @@ func (m *NewNoGroup) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1592,6 +1622,9 @@ func (m *NewNoGroup) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthUnrecognizedgroup
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthUnrecognizedgroup
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1611,6 +1644,9 @@ func (m *NewNoGroup) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthUnrecognizedgroup
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthUnrecognizedgroup
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1639,7 +1675,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1667,7 +1703,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1682,6 +1718,9 @@ func (m *A) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthUnrecognizedgroup
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthUnrecognizedgroup
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1749,10 +1788,13 @@ func skipUnrecognizedgroup(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthUnrecognizedgroup
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthUnrecognizedgroup
+ }
return iNdEx, nil
case 3:
for {
@@ -1781,6 +1823,9 @@ func skipUnrecognizedgroup(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthUnrecognizedgroup
+ }
}
return iNdEx, nil
case 4:
@@ -1799,31 +1844,3 @@ var (
ErrInvalidLengthUnrecognizedgroup = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowUnrecognizedgroup = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("unrecognizedgroup.proto", fileDescriptor_unrecognizedgroup_ad1c77f6b1c6f338)
-}
-
-var fileDescriptor_unrecognizedgroup_ad1c77f6b1c6f338 = []byte{
- // 305 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2f, 0xcd, 0x2b, 0x4a,
- 0x4d, 0xce, 0x4f, 0xcf, 0xcb, 0xac, 0x4a, 0x4d, 0x49, 0x2f, 0xca, 0x2f, 0x2d, 0xd0, 0x2b, 0x28,
- 0xca, 0x2f, 0xc9, 0x17, 0x12, 0xc4, 0x90, 0x90, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2,
- 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0xab, 0x4c, 0x2a, 0x4d, 0x03, 0xf3,
- 0xc0, 0x1c, 0x30, 0x0b, 0x62, 0x82, 0x52, 0x1e, 0x17, 0x97, 0x5f, 0x6a, 0xb9, 0x5f, 0xbe, 0x3b,
- 0x48, 0xb3, 0x90, 0x18, 0x17, 0x9b, 0x5b, 0x66, 0x6a, 0x4e, 0x8a, 0xa1, 0x04, 0xa3, 0x02, 0xa3,
- 0x06, 0x73, 0x10, 0x94, 0x07, 0x17, 0x37, 0x96, 0x60, 0x56, 0x60, 0xd6, 0x60, 0x84, 0x8a, 0x1b,
- 0x0b, 0x29, 0x71, 0x31, 0x3a, 0x4a, 0xb0, 0x2a, 0x30, 0x6a, 0x70, 0x1b, 0x89, 0xe8, 0x61, 0x3a,
- 0xd2, 0x31, 0x88, 0xd1, 0xd1, 0x8a, 0xa7, 0x63, 0xa1, 0x3c, 0xe3, 0x84, 0x85, 0xf2, 0x8c, 0x0b,
- 0x16, 0xca, 0x33, 0x2a, 0x69, 0x72, 0x31, 0x3a, 0x82, 0x8c, 0x73, 0x04, 0x9b, 0x00, 0xb3, 0x06,
- 0xc2, 0x43, 0x53, 0x7a, 0x8a, 0x89, 0x8b, 0xc7, 0x3f, 0x27, 0x25, 0x3c, 0xb3, 0x24, 0x03, 0xbf,
- 0xeb, 0xec, 0xb8, 0xd8, 0xc0, 0xf6, 0x19, 0x4a, 0x30, 0x29, 0x30, 0x6a, 0x70, 0x19, 0xa9, 0x61,
- 0x71, 0x0a, 0xb2, 0x41, 0x7a, 0x60, 0xd2, 0x30, 0x08, 0xaa, 0x0b, 0xa7, 0xef, 0x60, 0xe6, 0x1a,
- 0x49, 0xb0, 0x90, 0x60, 0xae, 0x11, 0xd4, 0x5c, 0x23, 0xa9, 0x00, 0x2e, 0x36, 0x77, 0x54, 0x1b,
- 0x70, 0x85, 0xab, 0x11, 0xd8, 0xe5, 0xac, 0x50, 0x71, 0x23, 0x5c, 0x2e, 0x92, 0xb2, 0x80, 0x9a,
- 0x68, 0x44, 0x94, 0x89, 0x08, 0x9d, 0x46, 0x4e, 0x1a, 0x27, 0x1e, 0xca, 0x31, 0x5c, 0x78, 0x28,
- 0xc7, 0x70, 0xe3, 0xa1, 0x1c, 0xc3, 0x83, 0x87, 0x72, 0x8c, 0x1f, 0x1e, 0xca, 0x31, 0xfe, 0x78,
- 0x28, 0xc7, 0xd8, 0xf0, 0x48, 0x8e, 0x71, 0xc5, 0x23, 0x39, 0xc6, 0x0d, 0x8f, 0xe4, 0x18, 0x77,
- 0x3c, 0x92, 0x63, 0x04, 0x04, 0x00, 0x00, 0xff, 0xff, 0xef, 0x1c, 0xa5, 0xe4, 0x6d, 0x02, 0x00,
- 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/test/xxxfields/xxxfields.pb.go b/vendor/github.com/gogo/protobuf/test/xxxfields/xxxfields.pb.go
index d3e8eea588..b7aca4c328 100644
--- a/vendor/github.com/gogo/protobuf/test/xxxfields/xxxfields.pb.go
+++ b/vendor/github.com/gogo/protobuf/test/xxxfields/xxxfields.pb.go
@@ -3,12 +3,13 @@
package test
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import bytes "bytes"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -37,7 +38,7 @@ func (m *NativeWithSizeCache) Reset() { *m = NativeWithSizeCache{} }
func (m *NativeWithSizeCache) String() string { return proto.CompactTextString(m) }
func (*NativeWithSizeCache) ProtoMessage() {}
func (*NativeWithSizeCache) Descriptor() ([]byte, []int) {
- return fileDescriptor_xxxfields_2cd53c16cfe389cd, []int{0}
+ return fileDescriptor_ba18cdebbd18dc5d, []int{0}
}
func (m *NativeWithSizeCache) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NativeWithSizeCache.Unmarshal(m, b)
@@ -45,8 +46,8 @@ func (m *NativeWithSizeCache) XXX_Unmarshal(b []byte) error {
func (m *NativeWithSizeCache) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NativeWithSizeCache.Marshal(b, m, deterministic)
}
-func (dst *NativeWithSizeCache) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NativeWithSizeCache.Merge(dst, src)
+func (m *NativeWithSizeCache) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NativeWithSizeCache.Merge(m, src)
}
func (m *NativeWithSizeCache) XXX_Size() int {
return xxx_messageInfo_NativeWithSizeCache.Size(m)
@@ -130,7 +131,7 @@ func (m *StructWithSizeCache) Reset() { *m = StructWithSizeCache{} }
func (m *StructWithSizeCache) String() string { return proto.CompactTextString(m) }
func (*StructWithSizeCache) ProtoMessage() {}
func (*StructWithSizeCache) Descriptor() ([]byte, []int) {
- return fileDescriptor_xxxfields_2cd53c16cfe389cd, []int{1}
+ return fileDescriptor_ba18cdebbd18dc5d, []int{1}
}
func (m *StructWithSizeCache) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StructWithSizeCache.Unmarshal(m, b)
@@ -138,8 +139,8 @@ func (m *StructWithSizeCache) XXX_Unmarshal(b []byte) error {
func (m *StructWithSizeCache) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_StructWithSizeCache.Marshal(b, m, deterministic)
}
-func (dst *StructWithSizeCache) XXX_Merge(src proto.Message) {
- xxx_messageInfo_StructWithSizeCache.Merge(dst, src)
+func (m *StructWithSizeCache) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StructWithSizeCache.Merge(m, src)
}
func (m *StructWithSizeCache) XXX_Size() int {
return xxx_messageInfo_StructWithSizeCache.Size(m)
@@ -228,7 +229,7 @@ func (m *NativeWithoutSizeCache) Reset() { *m = NativeWithoutSizeCache{}
func (m *NativeWithoutSizeCache) String() string { return proto.CompactTextString(m) }
func (*NativeWithoutSizeCache) ProtoMessage() {}
func (*NativeWithoutSizeCache) Descriptor() ([]byte, []int) {
- return fileDescriptor_xxxfields_2cd53c16cfe389cd, []int{2}
+ return fileDescriptor_ba18cdebbd18dc5d, []int{2}
}
func (m *NativeWithoutSizeCache) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NativeWithoutSizeCache.Unmarshal(m, b)
@@ -236,8 +237,8 @@ func (m *NativeWithoutSizeCache) XXX_Unmarshal(b []byte) error {
func (m *NativeWithoutSizeCache) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NativeWithoutSizeCache.Marshal(b, m, deterministic)
}
-func (dst *NativeWithoutSizeCache) XXX_Merge(src proto.Message) {
- xxx_messageInfo_NativeWithoutSizeCache.Merge(dst, src)
+func (m *NativeWithoutSizeCache) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NativeWithoutSizeCache.Merge(m, src)
}
func (m *NativeWithoutSizeCache) XXX_Size() int {
return xxx_messageInfo_NativeWithoutSizeCache.Size(m)
@@ -320,7 +321,7 @@ func (m *StructWithoutSizeCache) Reset() { *m = StructWithoutSizeCache{}
func (m *StructWithoutSizeCache) String() string { return proto.CompactTextString(m) }
func (*StructWithoutSizeCache) ProtoMessage() {}
func (*StructWithoutSizeCache) Descriptor() ([]byte, []int) {
- return fileDescriptor_xxxfields_2cd53c16cfe389cd, []int{3}
+ return fileDescriptor_ba18cdebbd18dc5d, []int{3}
}
func (m *StructWithoutSizeCache) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StructWithoutSizeCache.Unmarshal(m, b)
@@ -328,8 +329,8 @@ func (m *StructWithoutSizeCache) XXX_Unmarshal(b []byte) error {
func (m *StructWithoutSizeCache) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_StructWithoutSizeCache.Marshal(b, m, deterministic)
}
-func (dst *StructWithoutSizeCache) XXX_Merge(src proto.Message) {
- xxx_messageInfo_StructWithoutSizeCache.Merge(dst, src)
+func (m *StructWithoutSizeCache) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StructWithoutSizeCache.Merge(m, src)
}
func (m *StructWithoutSizeCache) XXX_Size() int {
return xxx_messageInfo_StructWithoutSizeCache.Size(m)
@@ -409,6 +410,37 @@ func init() {
proto.RegisterType((*NativeWithoutSizeCache)(nil), "test.NativeWithoutSizeCache")
proto.RegisterType((*StructWithoutSizeCache)(nil), "test.StructWithoutSizeCache")
}
+
+func init() { proto.RegisterFile("xxxfields.proto", fileDescriptor_ba18cdebbd18dc5d) }
+
+var fileDescriptor_ba18cdebbd18dc5d = []byte{
+ // 375 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xaf, 0xa8, 0xa8, 0x48,
+ 0xcb, 0x4c, 0xcd, 0x49, 0x29, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x29, 0x49, 0x2d,
+ 0x2e, 0x91, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf,
+ 0x4f, 0xcf, 0xd7, 0x07, 0x4b, 0x26, 0x95, 0xa6, 0x81, 0x79, 0x60, 0x0e, 0x98, 0x05, 0xd1, 0xa4,
+ 0xf4, 0x96, 0x91, 0x4b, 0xd8, 0x2f, 0xb1, 0x24, 0xb3, 0x2c, 0x35, 0x3c, 0xb3, 0x24, 0x23, 0x38,
+ 0xb3, 0x2a, 0xd5, 0x39, 0x31, 0x39, 0x23, 0x55, 0x48, 0x8c, 0x8b, 0xcd, 0x0d, 0x64, 0xb8, 0xa1,
+ 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x63, 0x10, 0x94, 0x07, 0x17, 0x37, 0x92, 0x60, 0x52, 0x60, 0xd4,
+ 0x60, 0x82, 0x8a, 0x1b, 0xc1, 0xc5, 0x8d, 0x25, 0x98, 0x15, 0x18, 0x35, 0x58, 0xa1, 0xe2, 0xc6,
+ 0x70, 0x71, 0x13, 0x09, 0x16, 0x05, 0x46, 0x0d, 0x66, 0xa8, 0xb8, 0x89, 0x90, 0x1c, 0x17, 0x3b,
+ 0xc4, 0x44, 0x43, 0x09, 0x6e, 0x05, 0x46, 0x0d, 0x36, 0x27, 0x96, 0x13, 0xf7, 0xe4, 0x19, 0x82,
+ 0x60, 0x82, 0x42, 0x12, 0x30, 0x79, 0x63, 0x09, 0x5e, 0x05, 0x46, 0x0d, 0x0e, 0x98, 0x8c, 0x31,
+ 0x42, 0xc6, 0x44, 0x82, 0x4f, 0x81, 0x51, 0x83, 0x13, 0x26, 0x63, 0x82, 0x90, 0x31, 0x95, 0xe0,
+ 0x57, 0x60, 0xd4, 0xe0, 0x81, 0xc9, 0x98, 0x5a, 0x71, 0x5c, 0x58, 0x28, 0xcf, 0x30, 0x63, 0x91,
+ 0x3c, 0x83, 0xd2, 0x2d, 0x26, 0x2e, 0xe1, 0xe0, 0x92, 0xa2, 0xd2, 0xe4, 0x12, 0x54, 0xff, 0xca,
+ 0xa0, 0xfa, 0x17, 0xea, 0x1c, 0x98, 0xaf, 0x65, 0x50, 0x7d, 0x8d, 0x22, 0x6b, 0x24, 0x64, 0x8e,
+ 0xe2, 0x77, 0x6e, 0x23, 0x49, 0x3d, 0x50, 0x4c, 0xe8, 0x61, 0x09, 0x56, 0x14, 0x8d, 0x88, 0xc0,
+ 0x31, 0x93, 0x60, 0x53, 0x60, 0xd4, 0x60, 0x81, 0x8a, 0x9b, 0xc1, 0xad, 0x33, 0x97, 0x60, 0x57,
+ 0x60, 0xd4, 0x10, 0x44, 0xd1, 0x65, 0x2e, 0x64, 0x05, 0x95, 0xb5, 0x90, 0xe0, 0x00, 0x5b, 0x27,
+ 0x83, 0x6e, 0x5d, 0x7e, 0x69, 0x09, 0x76, 0x1b, 0x2d, 0x50, 0x83, 0x95, 0x99, 0xb8, 0x60, 0x95,
+ 0x43, 0x0b, 0x56, 0xd4, 0xa8, 0x42, 0x0e, 0xdc, 0x2f, 0x8c, 0x5c, 0x62, 0xd8, 0x9d, 0x31, 0xcc,
+ 0xd2, 0x13, 0x0f, 0xc8, 0xcb, 0x13, 0x16, 0x41, 0xbd, 0xfd, 0x90, 0x89, 0x4b, 0x0c, 0x91, 0xa6,
+ 0x50, 0xbc, 0x3d, 0x9a, 0xac, 0xc8, 0x4e, 0x56, 0x28, 0x61, 0xec, 0xc4, 0xf3, 0xe3, 0xa1, 0x1c,
+ 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x1e, 0xc9, 0x31, 0x02, 0x02, 0x00, 0x00, 0xff, 0xff, 0x72,
+ 0x3b, 0x20, 0xc7, 0xfc, 0x04, 0x00, 0x00,
+}
+
func (this *NativeWithSizeCache) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -961,33 +993,3 @@ func encodeVarintPopulateXxxfields(dAtA []byte, v uint64) []byte {
dAtA = append(dAtA, uint8(v))
return dAtA
}
-
-func init() { proto.RegisterFile("xxxfields.proto", fileDescriptor_xxxfields_2cd53c16cfe389cd) }
-
-var fileDescriptor_xxxfields_2cd53c16cfe389cd = []byte{
- // 375 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xaf, 0xa8, 0xa8, 0x48,
- 0xcb, 0x4c, 0xcd, 0x49, 0x29, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x29, 0x49, 0x2d,
- 0x2e, 0x91, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf,
- 0x4f, 0xcf, 0xd7, 0x07, 0x4b, 0x26, 0x95, 0xa6, 0x81, 0x79, 0x60, 0x0e, 0x98, 0x05, 0xd1, 0xa4,
- 0xf4, 0x96, 0x91, 0x4b, 0xd8, 0x2f, 0xb1, 0x24, 0xb3, 0x2c, 0x35, 0x3c, 0xb3, 0x24, 0x23, 0x38,
- 0xb3, 0x2a, 0xd5, 0x39, 0x31, 0x39, 0x23, 0x55, 0x48, 0x8c, 0x8b, 0xcd, 0x0d, 0x64, 0xb8, 0xa1,
- 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x63, 0x10, 0x94, 0x07, 0x17, 0x37, 0x92, 0x60, 0x52, 0x60, 0xd4,
- 0x60, 0x82, 0x8a, 0x1b, 0xc1, 0xc5, 0x8d, 0x25, 0x98, 0x15, 0x18, 0x35, 0x58, 0xa1, 0xe2, 0xc6,
- 0x70, 0x71, 0x13, 0x09, 0x16, 0x05, 0x46, 0x0d, 0x66, 0xa8, 0xb8, 0x89, 0x90, 0x1c, 0x17, 0x3b,
- 0xc4, 0x44, 0x43, 0x09, 0x6e, 0x05, 0x46, 0x0d, 0x36, 0x27, 0x96, 0x13, 0xf7, 0xe4, 0x19, 0x82,
- 0x60, 0x82, 0x42, 0x12, 0x30, 0x79, 0x63, 0x09, 0x5e, 0x05, 0x46, 0x0d, 0x0e, 0x98, 0x8c, 0x31,
- 0x42, 0xc6, 0x44, 0x82, 0x4f, 0x81, 0x51, 0x83, 0x13, 0x26, 0x63, 0x82, 0x90, 0x31, 0x95, 0xe0,
- 0x57, 0x60, 0xd4, 0xe0, 0x81, 0xc9, 0x98, 0x5a, 0x71, 0x5c, 0x58, 0x28, 0xcf, 0x30, 0x63, 0x91,
- 0x3c, 0x83, 0xd2, 0x2d, 0x26, 0x2e, 0xe1, 0xe0, 0x92, 0xa2, 0xd2, 0xe4, 0x12, 0x54, 0xff, 0xca,
- 0xa0, 0xfa, 0x17, 0xea, 0x1c, 0x98, 0xaf, 0x65, 0x50, 0x7d, 0x8d, 0x22, 0x6b, 0x24, 0x64, 0x8e,
- 0xe2, 0x77, 0x6e, 0x23, 0x49, 0x3d, 0x50, 0x4c, 0xe8, 0x61, 0x09, 0x56, 0x14, 0x8d, 0x88, 0xc0,
- 0x31, 0x93, 0x60, 0x53, 0x60, 0xd4, 0x60, 0x81, 0x8a, 0x9b, 0xc1, 0xad, 0x33, 0x97, 0x60, 0x57,
- 0x60, 0xd4, 0x10, 0x44, 0xd1, 0x65, 0x2e, 0x64, 0x05, 0x95, 0xb5, 0x90, 0xe0, 0x00, 0x5b, 0x27,
- 0x83, 0x6e, 0x5d, 0x7e, 0x69, 0x09, 0x76, 0x1b, 0x2d, 0x50, 0x83, 0x95, 0x99, 0xb8, 0x60, 0x95,
- 0x43, 0x0b, 0x56, 0xd4, 0xa8, 0x42, 0x0e, 0xdc, 0x2f, 0x8c, 0x5c, 0x62, 0xd8, 0x9d, 0x31, 0xcc,
- 0xd2, 0x13, 0x0f, 0xc8, 0xcb, 0x13, 0x16, 0x41, 0xbd, 0xfd, 0x90, 0x89, 0x4b, 0x0c, 0x91, 0xa6,
- 0x50, 0xbc, 0x3d, 0x9a, 0xac, 0xc8, 0x4e, 0x56, 0x28, 0x61, 0xec, 0xc4, 0xf3, 0xe3, 0xa1, 0x1c,
- 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x1e, 0xc9, 0x31, 0x02, 0x02, 0x00, 0x00, 0xff, 0xff, 0x72,
- 0x3b, 0x20, 0xc7, 0xfc, 0x04, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/types/any.pb.go b/vendor/github.com/gogo/protobuf/types/any.pb.go
index cb774dbce4..202fe8e00b 100644
--- a/vendor/github.com/gogo/protobuf/types/any.pb.go
+++ b/vendor/github.com/gogo/protobuf/types/any.pb.go
@@ -3,16 +3,15 @@
package types
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -107,7 +106,8 @@ const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
//
type Any struct {
// A URL/resource name that uniquely identifies the type of the serialized
- // protocol buffer message. The last segment of the URL's path must represent
+ // protocol buffer message. This string must contain at least
+ // one "/" character. The last segment of the URL's path must represent
// the fully qualified name of the type (as in
// `path/google.protobuf.Duration`). The name should be in a canonical form
// (e.g., leading "." is not accepted).
@@ -144,7 +144,7 @@ type Any struct {
func (m *Any) Reset() { *m = Any{} }
func (*Any) ProtoMessage() {}
func (*Any) Descriptor() ([]byte, []int) {
- return fileDescriptor_any_f098d1a3c592d16a, []int{0}
+ return fileDescriptor_b53526c13ae22eb4, []int{0}
}
func (*Any) XXX_WellKnownType() string { return "Any" }
func (m *Any) XXX_Unmarshal(b []byte) error {
@@ -162,8 +162,8 @@ func (m *Any) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Any) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Any.Merge(dst, src)
+func (m *Any) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Any.Merge(m, src)
}
func (m *Any) XXX_Size() int {
return m.Size()
@@ -194,6 +194,27 @@ func (*Any) XXX_MessageName() string {
func init() {
proto.RegisterType((*Any)(nil), "google.protobuf.Any")
}
+
+func init() { proto.RegisterFile("google/protobuf/any.proto", fileDescriptor_b53526c13ae22eb4) }
+
+var fileDescriptor_b53526c13ae22eb4 = []byte{
+ // 211 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4c, 0xcf, 0xcf, 0x4f,
+ 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x4f, 0xcc, 0xab, 0xd4,
+ 0x03, 0x73, 0x84, 0xf8, 0x21, 0x52, 0x7a, 0x30, 0x29, 0x25, 0x33, 0x2e, 0x66, 0xc7, 0xbc, 0x4a,
+ 0x21, 0x49, 0x2e, 0x8e, 0x92, 0xca, 0x82, 0xd4, 0xf8, 0xd2, 0xa2, 0x1c, 0x09, 0x46, 0x05, 0x46,
+ 0x0d, 0xce, 0x20, 0x76, 0x10, 0x3f, 0xb4, 0x28, 0x47, 0x48, 0x84, 0x8b, 0xb5, 0x2c, 0x31, 0xa7,
+ 0x34, 0x55, 0x82, 0x49, 0x81, 0x51, 0x83, 0x27, 0x08, 0xc2, 0x71, 0xaa, 0xbf, 0xf1, 0x50, 0x8e,
+ 0xe1, 0xc3, 0x43, 0x39, 0xc6, 0x1f, 0x0f, 0xe5, 0x18, 0x1b, 0x1e, 0xc9, 0x31, 0xae, 0x78, 0x24,
+ 0xc7, 0x78, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0xbe, 0x78,
+ 0x24, 0xc7, 0xf0, 0x01, 0x24, 0xfe, 0x58, 0x8e, 0xf1, 0xc4, 0x63, 0x39, 0x46, 0x2e, 0xe1, 0xe4,
+ 0xfc, 0x5c, 0x3d, 0x34, 0xeb, 0x9d, 0x38, 0x1c, 0xf3, 0x2a, 0x03, 0x40, 0x9c, 0x00, 0xc6, 0x28,
+ 0x56, 0x90, 0x8d, 0xc5, 0x8b, 0x98, 0x98, 0xdd, 0x03, 0x9c, 0x56, 0x31, 0xc9, 0xb9, 0x43, 0x94,
+ 0x06, 0x40, 0x95, 0xea, 0x85, 0xa7, 0xe6, 0xe4, 0x78, 0xe7, 0xe5, 0x97, 0xe7, 0x85, 0x80, 0x94,
+ 0x25, 0xb1, 0x81, 0xcd, 0x30, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xb7, 0x81, 0x82, 0xd3, 0xed,
+ 0x00, 0x00, 0x00,
+}
+
func (this *Any) Compare(that interface{}) int {
if that == nil {
if this == nil {
@@ -481,7 +502,7 @@ func (m *Any) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -509,7 +530,7 @@ func (m *Any) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -519,6 +540,9 @@ func (m *Any) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthAny
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthAny
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -538,7 +562,7 @@ func (m *Any) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -547,6 +571,9 @@ func (m *Any) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthAny
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthAny
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -564,6 +591,9 @@ func (m *Any) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthAny
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthAny
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -631,10 +661,13 @@ func skipAny(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthAny
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthAny
+ }
return iNdEx, nil
case 3:
for {
@@ -663,6 +696,9 @@ func skipAny(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthAny
+ }
}
return iNdEx, nil
case 4:
@@ -681,23 +717,3 @@ var (
ErrInvalidLengthAny = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowAny = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("google/protobuf/any.proto", fileDescriptor_any_f098d1a3c592d16a) }
-
-var fileDescriptor_any_f098d1a3c592d16a = []byte{
- // 211 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4c, 0xcf, 0xcf, 0x4f,
- 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x4f, 0xcc, 0xab, 0xd4,
- 0x03, 0x73, 0x84, 0xf8, 0x21, 0x52, 0x7a, 0x30, 0x29, 0x25, 0x33, 0x2e, 0x66, 0xc7, 0xbc, 0x4a,
- 0x21, 0x49, 0x2e, 0x8e, 0x92, 0xca, 0x82, 0xd4, 0xf8, 0xd2, 0xa2, 0x1c, 0x09, 0x46, 0x05, 0x46,
- 0x0d, 0xce, 0x20, 0x76, 0x10, 0x3f, 0xb4, 0x28, 0x47, 0x48, 0x84, 0x8b, 0xb5, 0x2c, 0x31, 0xa7,
- 0x34, 0x55, 0x82, 0x49, 0x81, 0x51, 0x83, 0x27, 0x08, 0xc2, 0x71, 0xaa, 0xbf, 0xf1, 0x50, 0x8e,
- 0xe1, 0xc3, 0x43, 0x39, 0xc6, 0x1f, 0x0f, 0xe5, 0x18, 0x1b, 0x1e, 0xc9, 0x31, 0xae, 0x78, 0x24,
- 0xc7, 0x78, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0xbe, 0x78,
- 0x24, 0xc7, 0xf0, 0x01, 0x24, 0xfe, 0x58, 0x8e, 0xf1, 0xc4, 0x63, 0x39, 0x46, 0x2e, 0xe1, 0xe4,
- 0xfc, 0x5c, 0x3d, 0x34, 0xeb, 0x9d, 0x38, 0x1c, 0xf3, 0x2a, 0x03, 0x40, 0x9c, 0x00, 0xc6, 0x28,
- 0x56, 0x90, 0x8d, 0xc5, 0x8b, 0x98, 0x98, 0xdd, 0x03, 0x9c, 0x56, 0x31, 0xc9, 0xb9, 0x43, 0x94,
- 0x06, 0x40, 0x95, 0xea, 0x85, 0xa7, 0xe6, 0xe4, 0x78, 0xe7, 0xe5, 0x97, 0xe7, 0x85, 0x80, 0x94,
- 0x25, 0xb1, 0x81, 0xcd, 0x30, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xb7, 0x81, 0x82, 0xd3, 0xed,
- 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/types/api.pb.go b/vendor/github.com/gogo/protobuf/types/api.pb.go
index 420fa55e6b..fe0eefd2d8 100644
--- a/vendor/github.com/gogo/protobuf/types/api.pb.go
+++ b/vendor/github.com/gogo/protobuf/types/api.pb.go
@@ -3,16 +3,15 @@
package types
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -79,7 +78,7 @@ type Api struct {
func (m *Api) Reset() { *m = Api{} }
func (*Api) ProtoMessage() {}
func (*Api) Descriptor() ([]byte, []int) {
- return fileDescriptor_api_a4406062c749da1f, []int{0}
+ return fileDescriptor_a2ec32096296c143, []int{0}
}
func (m *Api) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -96,8 +95,8 @@ func (m *Api) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Api) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Api.Merge(dst, src)
+func (m *Api) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Api.Merge(m, src)
}
func (m *Api) XXX_Size() int {
return m.Size()
@@ -185,7 +184,7 @@ type Method struct {
func (m *Method) Reset() { *m = Method{} }
func (*Method) ProtoMessage() {}
func (*Method) Descriptor() ([]byte, []int) {
- return fileDescriptor_api_a4406062c749da1f, []int{1}
+ return fileDescriptor_a2ec32096296c143, []int{1}
}
func (m *Method) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -202,8 +201,8 @@ func (m *Method) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Method) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Method.Merge(dst, src)
+func (m *Method) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Method.Merge(m, src)
}
func (m *Method) XXX_Size() int {
return m.Size()
@@ -359,7 +358,7 @@ type Mixin struct {
func (m *Mixin) Reset() { *m = Mixin{} }
func (*Mixin) ProtoMessage() {}
func (*Mixin) Descriptor() ([]byte, []int) {
- return fileDescriptor_api_a4406062c749da1f, []int{2}
+ return fileDescriptor_a2ec32096296c143, []int{2}
}
func (m *Mixin) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -376,8 +375,8 @@ func (m *Mixin) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Mixin) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Mixin.Merge(dst, src)
+func (m *Mixin) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Mixin.Merge(m, src)
}
func (m *Mixin) XXX_Size() int {
return m.Size()
@@ -410,6 +409,43 @@ func init() {
proto.RegisterType((*Method)(nil), "google.protobuf.Method")
proto.RegisterType((*Mixin)(nil), "google.protobuf.Mixin")
}
+
+func init() { proto.RegisterFile("google/protobuf/api.proto", fileDescriptor_a2ec32096296c143) }
+
+var fileDescriptor_a2ec32096296c143 = []byte{
+ // 467 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x91, 0x31, 0x6f, 0x13, 0x31,
+ 0x14, 0xc7, 0xeb, 0xbb, 0xe4, 0x52, 0x5c, 0x91, 0x82, 0x91, 0xc0, 0x64, 0xb0, 0x4e, 0x15, 0xc3,
+ 0x09, 0xc4, 0x45, 0x94, 0x4f, 0xd0, 0x20, 0xd4, 0x01, 0x21, 0xa2, 0x0b, 0x08, 0x89, 0x25, 0x4a,
+ 0x83, 0x09, 0x96, 0xee, 0x6c, 0x63, 0x3b, 0x90, 0x4c, 0xf0, 0x59, 0x98, 0x10, 0x23, 0xdf, 0x80,
+ 0xad, 0x23, 0x23, 0x23, 0xb9, 0x2e, 0x8c, 0x1d, 0x19, 0x91, 0x7d, 0xe7, 0xa6, 0x5c, 0x83, 0x04,
+ 0x9b, 0xdf, 0xfb, 0xff, 0xfc, 0xf7, 0x7b, 0x7f, 0xc3, 0x9b, 0x33, 0x21, 0x66, 0x39, 0xed, 0x4b,
+ 0x25, 0x8c, 0x38, 0x9a, 0xbf, 0xea, 0x4f, 0x24, 0x4b, 0x5d, 0x81, 0x76, 0x2b, 0x29, 0xf5, 0x52,
+ 0xef, 0x56, 0x93, 0xd5, 0x62, 0xae, 0xa6, 0x74, 0x3c, 0x15, 0xdc, 0xd0, 0x85, 0xa9, 0xc0, 0x5e,
+ 0xaf, 0x49, 0x99, 0xa5, 0xac, 0x4d, 0xf6, 0xbe, 0x06, 0x30, 0x3c, 0x90, 0x0c, 0x21, 0xd8, 0xe2,
+ 0x93, 0x82, 0x62, 0x10, 0x83, 0xe4, 0x52, 0xe6, 0xce, 0xe8, 0x1e, 0xec, 0x14, 0xd4, 0xbc, 0x16,
+ 0x2f, 0x35, 0x0e, 0xe2, 0x30, 0xd9, 0xd9, 0xbf, 0x91, 0x36, 0x06, 0x48, 0x1f, 0x3b, 0x3d, 0xf3,
+ 0x9c, 0xbd, 0x22, 0xa4, 0x61, 0x82, 0x6b, 0x1c, 0xfe, 0xe5, 0xca, 0x13, 0xa7, 0x67, 0x9e, 0x43,
+ 0x18, 0x76, 0xde, 0x52, 0xa5, 0x99, 0xe0, 0xb8, 0xe5, 0x1e, 0xf7, 0x25, 0x7a, 0x08, 0xbb, 0x7f,
+ 0xee, 0x83, 0xdb, 0x31, 0x48, 0x76, 0xf6, 0xc9, 0x05, 0xcf, 0x91, 0xc3, 0x1e, 0x54, 0x54, 0x76,
+ 0x59, 0x9f, 0x2f, 0x51, 0x0a, 0xa3, 0x82, 0x2d, 0x18, 0xd7, 0x38, 0x72, 0x23, 0x5d, 0xbf, 0xb8,
+ 0x85, 0x95, 0xb3, 0x9a, 0x42, 0x7d, 0x18, 0xe9, 0x25, 0x37, 0x93, 0x05, 0xee, 0xc4, 0x20, 0xe9,
+ 0x6e, 0x58, 0x61, 0xe4, 0xe4, 0xac, 0xc6, 0xf6, 0xbe, 0x04, 0x30, 0xaa, 0x82, 0xd8, 0x18, 0x63,
+ 0x02, 0xaf, 0x28, 0xfa, 0x66, 0x4e, 0xb5, 0x19, 0xdb, 0xe0, 0xc7, 0x73, 0x95, 0xe3, 0xc0, 0xe9,
+ 0xdd, 0xba, 0xff, 0x74, 0x29, 0xe9, 0x33, 0x95, 0xa3, 0x3b, 0xf0, 0xaa, 0x27, 0xb5, 0x51, 0x74,
+ 0x52, 0x30, 0x3e, 0xc3, 0x61, 0x0c, 0x92, 0xed, 0xcc, 0x5b, 0x8c, 0x7c, 0x1f, 0xdd, 0xb6, 0xb0,
+ 0x96, 0x82, 0x6b, 0xba, 0xf6, 0xad, 0x12, 0xdc, 0xf5, 0x82, 0x37, 0xbe, 0x0b, 0xd1, 0x19, 0xbb,
+ 0x76, 0x6e, 0x3b, 0xe7, 0x33, 0x97, 0xb5, 0xf5, 0xb9, 0x5f, 0x8c, 0xfe, 0xf1, 0x17, 0xff, 0x3b,
+ 0xb4, 0x3e, 0x6c, 0xbb, 0xd8, 0x37, 0x46, 0x86, 0x60, 0x4b, 0x09, 0x61, 0xea, 0x98, 0xdc, 0x79,
+ 0xf0, 0xfe, 0xfb, 0x8a, 0x6c, 0x9d, 0xae, 0x08, 0xf8, 0xb5, 0x22, 0xe0, 0x43, 0x49, 0xc0, 0xa7,
+ 0x92, 0x80, 0xe3, 0x92, 0x80, 0x6f, 0x25, 0x01, 0x3f, 0x4a, 0x02, 0x7e, 0x96, 0x64, 0xeb, 0xd4,
+ 0xf6, 0x4f, 0x08, 0x38, 0x3e, 0x21, 0x00, 0x5e, 0x9b, 0x8a, 0xa2, 0x39, 0xc6, 0x60, 0xfb, 0x40,
+ 0xb2, 0xa1, 0x2d, 0x86, 0xe0, 0x45, 0xdb, 0xe6, 0xa6, 0x3f, 0x06, 0xe1, 0xe1, 0x70, 0xf0, 0x39,
+ 0x20, 0x87, 0x15, 0x3a, 0xf4, 0x13, 0x3f, 0xa7, 0x79, 0xfe, 0x88, 0x8b, 0x77, 0xdc, 0xc6, 0xa8,
+ 0x8f, 0x22, 0xe7, 0x71, 0xff, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2b, 0x64, 0x40, 0x40, 0xa1,
+ 0x03, 0x00, 0x00,
+}
+
func (this *Api) Compare(that interface{}) int {
if that == nil {
if this == nil {
@@ -1349,7 +1385,7 @@ func (m *Api) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1377,7 +1413,7 @@ func (m *Api) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1387,6 +1423,9 @@ func (m *Api) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthApi
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApi
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1406,7 +1445,7 @@ func (m *Api) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1415,6 +1454,9 @@ func (m *Api) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthApi
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthApi
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1437,7 +1479,7 @@ func (m *Api) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1446,6 +1488,9 @@ func (m *Api) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthApi
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthApi
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1468,7 +1513,7 @@ func (m *Api) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1478,6 +1523,9 @@ func (m *Api) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthApi
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApi
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1497,7 +1545,7 @@ func (m *Api) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1506,6 +1554,9 @@ func (m *Api) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthApi
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthApi
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1530,7 +1581,7 @@ func (m *Api) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1539,6 +1590,9 @@ func (m *Api) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthApi
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthApi
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1561,7 +1615,7 @@ func (m *Api) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Syntax |= (Syntax(b) & 0x7F) << shift
+ m.Syntax |= Syntax(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1575,6 +1629,9 @@ func (m *Api) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthApi
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthApi
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1603,7 +1660,7 @@ func (m *Method) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1631,7 +1688,7 @@ func (m *Method) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1641,6 +1698,9 @@ func (m *Method) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthApi
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApi
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1660,7 +1720,7 @@ func (m *Method) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1670,6 +1730,9 @@ func (m *Method) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthApi
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApi
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1689,7 +1752,7 @@ func (m *Method) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1709,7 +1772,7 @@ func (m *Method) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1719,6 +1782,9 @@ func (m *Method) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthApi
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApi
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1738,7 +1804,7 @@ func (m *Method) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1758,7 +1824,7 @@ func (m *Method) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1767,6 +1833,9 @@ func (m *Method) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthApi
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthApi
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1789,7 +1858,7 @@ func (m *Method) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Syntax |= (Syntax(b) & 0x7F) << shift
+ m.Syntax |= Syntax(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1803,6 +1872,9 @@ func (m *Method) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthApi
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthApi
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1831,7 +1903,7 @@ func (m *Mixin) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1859,7 +1931,7 @@ func (m *Mixin) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1869,6 +1941,9 @@ func (m *Mixin) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthApi
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApi
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1888,7 +1963,7 @@ func (m *Mixin) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1898,6 +1973,9 @@ func (m *Mixin) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthApi
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthApi
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1912,6 +1990,9 @@ func (m *Mixin) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthApi
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthApi
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1979,10 +2060,13 @@ func skipApi(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthApi
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthApi
+ }
return iNdEx, nil
case 3:
for {
@@ -2011,6 +2095,9 @@ func skipApi(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthApi
+ }
}
return iNdEx, nil
case 4:
@@ -2029,39 +2116,3 @@ var (
ErrInvalidLengthApi = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowApi = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("google/protobuf/api.proto", fileDescriptor_api_a4406062c749da1f) }
-
-var fileDescriptor_api_a4406062c749da1f = []byte{
- // 467 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x91, 0x31, 0x6f, 0x13, 0x31,
- 0x14, 0xc7, 0xeb, 0xbb, 0xe4, 0x52, 0x5c, 0x91, 0x82, 0x91, 0xc0, 0x64, 0xb0, 0x4e, 0x15, 0xc3,
- 0x09, 0xc4, 0x45, 0x94, 0x4f, 0xd0, 0x20, 0xd4, 0x01, 0x21, 0xa2, 0x0b, 0x08, 0x89, 0x25, 0x4a,
- 0x83, 0x09, 0x96, 0xee, 0x6c, 0x63, 0x3b, 0x90, 0x4c, 0xf0, 0x59, 0x98, 0x10, 0x23, 0xdf, 0x80,
- 0xad, 0x23, 0x23, 0x23, 0xb9, 0x2e, 0x8c, 0x1d, 0x19, 0x91, 0x7d, 0xe7, 0xa6, 0x5c, 0x83, 0x04,
- 0x9b, 0xdf, 0xfb, 0xff, 0xfc, 0xf7, 0x7b, 0x7f, 0xc3, 0x9b, 0x33, 0x21, 0x66, 0x39, 0xed, 0x4b,
- 0x25, 0x8c, 0x38, 0x9a, 0xbf, 0xea, 0x4f, 0x24, 0x4b, 0x5d, 0x81, 0x76, 0x2b, 0x29, 0xf5, 0x52,
- 0xef, 0x56, 0x93, 0xd5, 0x62, 0xae, 0xa6, 0x74, 0x3c, 0x15, 0xdc, 0xd0, 0x85, 0xa9, 0xc0, 0x5e,
- 0xaf, 0x49, 0x99, 0xa5, 0xac, 0x4d, 0xf6, 0xbe, 0x06, 0x30, 0x3c, 0x90, 0x0c, 0x21, 0xd8, 0xe2,
- 0x93, 0x82, 0x62, 0x10, 0x83, 0xe4, 0x52, 0xe6, 0xce, 0xe8, 0x1e, 0xec, 0x14, 0xd4, 0xbc, 0x16,
- 0x2f, 0x35, 0x0e, 0xe2, 0x30, 0xd9, 0xd9, 0xbf, 0x91, 0x36, 0x06, 0x48, 0x1f, 0x3b, 0x3d, 0xf3,
- 0x9c, 0xbd, 0x22, 0xa4, 0x61, 0x82, 0x6b, 0x1c, 0xfe, 0xe5, 0xca, 0x13, 0xa7, 0x67, 0x9e, 0x43,
- 0x18, 0x76, 0xde, 0x52, 0xa5, 0x99, 0xe0, 0xb8, 0xe5, 0x1e, 0xf7, 0x25, 0x7a, 0x08, 0xbb, 0x7f,
- 0xee, 0x83, 0xdb, 0x31, 0x48, 0x76, 0xf6, 0xc9, 0x05, 0xcf, 0x91, 0xc3, 0x1e, 0x54, 0x54, 0x76,
- 0x59, 0x9f, 0x2f, 0x51, 0x0a, 0xa3, 0x82, 0x2d, 0x18, 0xd7, 0x38, 0x72, 0x23, 0x5d, 0xbf, 0xb8,
- 0x85, 0x95, 0xb3, 0x9a, 0x42, 0x7d, 0x18, 0xe9, 0x25, 0x37, 0x93, 0x05, 0xee, 0xc4, 0x20, 0xe9,
- 0x6e, 0x58, 0x61, 0xe4, 0xe4, 0xac, 0xc6, 0xf6, 0xbe, 0x04, 0x30, 0xaa, 0x82, 0xd8, 0x18, 0x63,
- 0x02, 0xaf, 0x28, 0xfa, 0x66, 0x4e, 0xb5, 0x19, 0xdb, 0xe0, 0xc7, 0x73, 0x95, 0xe3, 0xc0, 0xe9,
- 0xdd, 0xba, 0xff, 0x74, 0x29, 0xe9, 0x33, 0x95, 0xa3, 0x3b, 0xf0, 0xaa, 0x27, 0xb5, 0x51, 0x74,
- 0x52, 0x30, 0x3e, 0xc3, 0x61, 0x0c, 0x92, 0xed, 0xcc, 0x5b, 0x8c, 0x7c, 0x1f, 0xdd, 0xb6, 0xb0,
- 0x96, 0x82, 0x6b, 0xba, 0xf6, 0xad, 0x12, 0xdc, 0xf5, 0x82, 0x37, 0xbe, 0x0b, 0xd1, 0x19, 0xbb,
- 0x76, 0x6e, 0x3b, 0xe7, 0x33, 0x97, 0xb5, 0xf5, 0xb9, 0x5f, 0x8c, 0xfe, 0xf1, 0x17, 0xff, 0x3b,
- 0xb4, 0x3e, 0x6c, 0xbb, 0xd8, 0x37, 0x46, 0x86, 0x60, 0x4b, 0x09, 0x61, 0xea, 0x98, 0xdc, 0x79,
- 0xf0, 0xfe, 0xfb, 0x8a, 0x6c, 0x9d, 0xae, 0x08, 0xf8, 0xb5, 0x22, 0xe0, 0x43, 0x49, 0xc0, 0xa7,
- 0x92, 0x80, 0xe3, 0x92, 0x80, 0x6f, 0x25, 0x01, 0x3f, 0x4a, 0x02, 0x7e, 0x96, 0x64, 0xeb, 0xd4,
- 0xf6, 0x4f, 0x08, 0x38, 0x3e, 0x21, 0x00, 0x5e, 0x9b, 0x8a, 0xa2, 0x39, 0xc6, 0x60, 0xfb, 0x40,
- 0xb2, 0xa1, 0x2d, 0x86, 0xe0, 0x45, 0xdb, 0xe6, 0xa6, 0x3f, 0x06, 0xe1, 0xe1, 0x70, 0xf0, 0x39,
- 0x20, 0x87, 0x15, 0x3a, 0xf4, 0x13, 0x3f, 0xa7, 0x79, 0xfe, 0x88, 0x8b, 0x77, 0xdc, 0xc6, 0xa8,
- 0x8f, 0x22, 0xe7, 0x71, 0xff, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2b, 0x64, 0x40, 0x40, 0xa1,
- 0x03, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/types/duration.go b/vendor/github.com/gogo/protobuf/types/duration.go
index 475d61f1db..979b8e78a4 100644
--- a/vendor/github.com/gogo/protobuf/types/duration.go
+++ b/vendor/github.com/gogo/protobuf/types/duration.go
@@ -80,7 +80,7 @@ func DurationFromProto(p *Duration) (time.Duration, error) {
return 0, fmt.Errorf("duration: %#v is out of range for time.Duration", p)
}
if p.Nanos != 0 {
- d += time.Duration(p.Nanos)
+ d += time.Duration(p.Nanos) * time.Nanosecond
if (d < 0) != (p.Nanos < 0) {
return 0, fmt.Errorf("duration: %#v is out of range for time.Duration", p)
}
diff --git a/vendor/github.com/gogo/protobuf/types/duration.pb.go b/vendor/github.com/gogo/protobuf/types/duration.pb.go
index 545ef962e6..f328ee0e29 100644
--- a/vendor/github.com/gogo/protobuf/types/duration.pb.go
+++ b/vendor/github.com/gogo/protobuf/types/duration.pb.go
@@ -3,16 +3,15 @@
package types
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -105,7 +104,7 @@ type Duration struct {
func (m *Duration) Reset() { *m = Duration{} }
func (*Duration) ProtoMessage() {}
func (*Duration) Descriptor() ([]byte, []int) {
- return fileDescriptor_duration_187e4d5f80a83848, []int{0}
+ return fileDescriptor_23597b2ebd7ac6c5, []int{0}
}
func (*Duration) XXX_WellKnownType() string { return "Duration" }
func (m *Duration) XXX_Unmarshal(b []byte) error {
@@ -123,8 +122,8 @@ func (m *Duration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Duration) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Duration.Merge(dst, src)
+func (m *Duration) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Duration.Merge(m, src)
}
func (m *Duration) XXX_Size() int {
return m.Size()
@@ -155,6 +154,27 @@ func (*Duration) XXX_MessageName() string {
func init() {
proto.RegisterType((*Duration)(nil), "google.protobuf.Duration")
}
+
+func init() { proto.RegisterFile("google/protobuf/duration.proto", fileDescriptor_23597b2ebd7ac6c5) }
+
+var fileDescriptor_23597b2ebd7ac6c5 = []byte{
+ // 209 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4b, 0xcf, 0xcf, 0x4f,
+ 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x4f, 0x29, 0x2d, 0x4a,
+ 0x2c, 0xc9, 0xcc, 0xcf, 0xd3, 0x03, 0x8b, 0x08, 0xf1, 0x43, 0xe4, 0xf5, 0x60, 0xf2, 0x4a, 0x56,
+ 0x5c, 0x1c, 0x2e, 0x50, 0x25, 0x42, 0x12, 0x5c, 0xec, 0xc5, 0xa9, 0xc9, 0xf9, 0x79, 0x29, 0xc5,
+ 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0xcc, 0x41, 0x30, 0xae, 0x90, 0x08, 0x17, 0x6b, 0x5e, 0x62, 0x5e,
+ 0x7e, 0xb1, 0x04, 0x93, 0x02, 0xa3, 0x06, 0x6b, 0x10, 0x84, 0xe3, 0x54, 0x7f, 0xe3, 0xa1, 0x1c,
+ 0xc3, 0x87, 0x87, 0x72, 0x8c, 0x2b, 0x1e, 0xc9, 0x31, 0x9e, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91,
+ 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x2f, 0x1e, 0xc9, 0x31, 0x7c, 0x78, 0x24, 0xc7, 0xb8, 0xe2,
+ 0xb1, 0x1c, 0xe3, 0x89, 0xc7, 0x72, 0x8c, 0x5c, 0xc2, 0xc9, 0xf9, 0xb9, 0x7a, 0x68, 0x56, 0x3b,
+ 0xf1, 0xc2, 0x2c, 0x0e, 0x00, 0x89, 0x04, 0x30, 0x46, 0xb1, 0x96, 0x54, 0x16, 0xa4, 0x16, 0xff,
+ 0x60, 0x64, 0x5c, 0xc4, 0xc4, 0xec, 0x1e, 0xe0, 0xb4, 0x8a, 0x49, 0xce, 0x1d, 0xa2, 0x25, 0x00,
+ 0xaa, 0x45, 0x2f, 0x3c, 0x35, 0x27, 0xc7, 0x3b, 0x2f, 0xbf, 0x3c, 0x2f, 0x04, 0xa4, 0x32, 0x89,
+ 0x0d, 0x6c, 0x96, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x8a, 0x1c, 0x64, 0x4e, 0xf6, 0x00, 0x00,
+ 0x00,
+}
+
func (this *Duration) Compare(that interface{}) int {
if that == nil {
if this == nil {
@@ -335,7 +355,7 @@ func (m *Duration) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -363,7 +383,7 @@ func (m *Duration) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Seconds |= (int64(b) & 0x7F) << shift
+ m.Seconds |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -382,7 +402,7 @@ func (m *Duration) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Nanos |= (int32(b) & 0x7F) << shift
+ m.Nanos |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -396,6 +416,9 @@ func (m *Duration) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthDuration
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthDuration
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -463,10 +486,13 @@ func skipDuration(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthDuration
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthDuration
+ }
return iNdEx, nil
case 3:
for {
@@ -495,6 +521,9 @@ func skipDuration(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthDuration
+ }
}
return iNdEx, nil
case 4:
@@ -513,25 +542,3 @@ var (
ErrInvalidLengthDuration = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowDuration = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("google/protobuf/duration.proto", fileDescriptor_duration_187e4d5f80a83848)
-}
-
-var fileDescriptor_duration_187e4d5f80a83848 = []byte{
- // 209 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4b, 0xcf, 0xcf, 0x4f,
- 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x4f, 0x29, 0x2d, 0x4a,
- 0x2c, 0xc9, 0xcc, 0xcf, 0xd3, 0x03, 0x8b, 0x08, 0xf1, 0x43, 0xe4, 0xf5, 0x60, 0xf2, 0x4a, 0x56,
- 0x5c, 0x1c, 0x2e, 0x50, 0x25, 0x42, 0x12, 0x5c, 0xec, 0xc5, 0xa9, 0xc9, 0xf9, 0x79, 0x29, 0xc5,
- 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0xcc, 0x41, 0x30, 0xae, 0x90, 0x08, 0x17, 0x6b, 0x5e, 0x62, 0x5e,
- 0x7e, 0xb1, 0x04, 0x93, 0x02, 0xa3, 0x06, 0x6b, 0x10, 0x84, 0xe3, 0x54, 0x7f, 0xe3, 0xa1, 0x1c,
- 0xc3, 0x87, 0x87, 0x72, 0x8c, 0x2b, 0x1e, 0xc9, 0x31, 0x9e, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91,
- 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x2f, 0x1e, 0xc9, 0x31, 0x7c, 0x78, 0x24, 0xc7, 0xb8, 0xe2,
- 0xb1, 0x1c, 0xe3, 0x89, 0xc7, 0x72, 0x8c, 0x5c, 0xc2, 0xc9, 0xf9, 0xb9, 0x7a, 0x68, 0x56, 0x3b,
- 0xf1, 0xc2, 0x2c, 0x0e, 0x00, 0x89, 0x04, 0x30, 0x46, 0xb1, 0x96, 0x54, 0x16, 0xa4, 0x16, 0xff,
- 0x60, 0x64, 0x5c, 0xc4, 0xc4, 0xec, 0x1e, 0xe0, 0xb4, 0x8a, 0x49, 0xce, 0x1d, 0xa2, 0x25, 0x00,
- 0xaa, 0x45, 0x2f, 0x3c, 0x35, 0x27, 0xc7, 0x3b, 0x2f, 0xbf, 0x3c, 0x2f, 0x04, 0xa4, 0x32, 0x89,
- 0x0d, 0x6c, 0x96, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x8a, 0x1c, 0x64, 0x4e, 0xf6, 0x00, 0x00,
- 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/types/empty.pb.go b/vendor/github.com/gogo/protobuf/types/empty.pb.go
index 323b246a68..85881878f6 100644
--- a/vendor/github.com/gogo/protobuf/types/empty.pb.go
+++ b/vendor/github.com/gogo/protobuf/types/empty.pb.go
@@ -3,16 +3,15 @@
package types
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -43,7 +42,7 @@ type Empty struct {
func (m *Empty) Reset() { *m = Empty{} }
func (*Empty) ProtoMessage() {}
func (*Empty) Descriptor() ([]byte, []int) {
- return fileDescriptor_empty_b366a5cbb7c614df, []int{0}
+ return fileDescriptor_900544acb223d5b8, []int{0}
}
func (*Empty) XXX_WellKnownType() string { return "Empty" }
func (m *Empty) XXX_Unmarshal(b []byte) error {
@@ -61,8 +60,8 @@ func (m *Empty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Empty) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Empty.Merge(dst, src)
+func (m *Empty) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Empty.Merge(m, src)
}
func (m *Empty) XXX_Size() int {
return m.Size()
@@ -79,6 +78,24 @@ func (*Empty) XXX_MessageName() string {
func init() {
proto.RegisterType((*Empty)(nil), "google.protobuf.Empty")
}
+
+func init() { proto.RegisterFile("google/protobuf/empty.proto", fileDescriptor_900544acb223d5b8) }
+
+var fileDescriptor_900544acb223d5b8 = []byte{
+ // 176 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4e, 0xcf, 0xcf, 0x4f,
+ 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x4f, 0xcd, 0x2d, 0x28,
+ 0xa9, 0xd4, 0x03, 0x73, 0x85, 0xf8, 0x21, 0x92, 0x7a, 0x30, 0x49, 0x25, 0x76, 0x2e, 0x56, 0x57,
+ 0x90, 0xbc, 0x53, 0x0b, 0xe3, 0x8d, 0x87, 0x72, 0x0c, 0x1f, 0x1e, 0xca, 0x31, 0xfe, 0x78, 0x28,
+ 0xc7, 0xd8, 0xf0, 0x48, 0x8e, 0x71, 0xc5, 0x23, 0x39, 0xc6, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c,
+ 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0xf1, 0xc5, 0x23, 0x39, 0x86, 0x0f, 0x20, 0xf1, 0xc7, 0x72,
+ 0x8c, 0x27, 0x1e, 0xcb, 0x31, 0x72, 0x09, 0x27, 0xe7, 0xe7, 0xea, 0xa1, 0x19, 0xe8, 0xc4, 0x05,
+ 0x36, 0x2e, 0x00, 0xc4, 0x0d, 0x60, 0x8c, 0x62, 0x2d, 0xa9, 0x2c, 0x48, 0x2d, 0xfe, 0xc1, 0xc8,
+ 0xb8, 0x88, 0x89, 0xd9, 0x3d, 0xc0, 0x69, 0x15, 0x93, 0x9c, 0x3b, 0x44, 0x7d, 0x00, 0x54, 0xbd,
+ 0x5e, 0x78, 0x6a, 0x4e, 0x8e, 0x77, 0x5e, 0x7e, 0x79, 0x5e, 0x08, 0x48, 0x65, 0x12, 0x1b, 0xd8,
+ 0x20, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x21, 0xbe, 0xb6, 0x31, 0xc6, 0x00, 0x00, 0x00,
+}
+
func (this *Empty) Compare(that interface{}) int {
if that == nil {
if this == nil {
@@ -321,7 +338,7 @@ func (m *Empty) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -344,6 +361,9 @@ func (m *Empty) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthEmpty
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthEmpty
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -411,10 +431,13 @@ func skipEmpty(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthEmpty
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthEmpty
+ }
return iNdEx, nil
case 3:
for {
@@ -443,6 +466,9 @@ func skipEmpty(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthEmpty
+ }
}
return iNdEx, nil
case 4:
@@ -461,20 +487,3 @@ var (
ErrInvalidLengthEmpty = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowEmpty = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("google/protobuf/empty.proto", fileDescriptor_empty_b366a5cbb7c614df) }
-
-var fileDescriptor_empty_b366a5cbb7c614df = []byte{
- // 176 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4e, 0xcf, 0xcf, 0x4f,
- 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x4f, 0xcd, 0x2d, 0x28,
- 0xa9, 0xd4, 0x03, 0x73, 0x85, 0xf8, 0x21, 0x92, 0x7a, 0x30, 0x49, 0x25, 0x76, 0x2e, 0x56, 0x57,
- 0x90, 0xbc, 0x53, 0x0b, 0xe3, 0x8d, 0x87, 0x72, 0x0c, 0x1f, 0x1e, 0xca, 0x31, 0xfe, 0x78, 0x28,
- 0xc7, 0xd8, 0xf0, 0x48, 0x8e, 0x71, 0xc5, 0x23, 0x39, 0xc6, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c,
- 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0xf1, 0xc5, 0x23, 0x39, 0x86, 0x0f, 0x20, 0xf1, 0xc7, 0x72,
- 0x8c, 0x27, 0x1e, 0xcb, 0x31, 0x72, 0x09, 0x27, 0xe7, 0xe7, 0xea, 0xa1, 0x19, 0xe8, 0xc4, 0x05,
- 0x36, 0x2e, 0x00, 0xc4, 0x0d, 0x60, 0x8c, 0x62, 0x2d, 0xa9, 0x2c, 0x48, 0x2d, 0xfe, 0xc1, 0xc8,
- 0xb8, 0x88, 0x89, 0xd9, 0x3d, 0xc0, 0x69, 0x15, 0x93, 0x9c, 0x3b, 0x44, 0x7d, 0x00, 0x54, 0xbd,
- 0x5e, 0x78, 0x6a, 0x4e, 0x8e, 0x77, 0x5e, 0x7e, 0x79, 0x5e, 0x08, 0x48, 0x65, 0x12, 0x1b, 0xd8,
- 0x20, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x21, 0xbe, 0xb6, 0x31, 0xc6, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/types/field_mask.pb.go b/vendor/github.com/gogo/protobuf/types/field_mask.pb.go
index 3e60fcf07f..b401a2b3f3 100644
--- a/vendor/github.com/gogo/protobuf/types/field_mask.pb.go
+++ b/vendor/github.com/gogo/protobuf/types/field_mask.pb.go
@@ -3,16 +3,15 @@
package types
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -93,57 +92,49 @@ const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
// describe the updated values, the API ignores the values of all
// fields not covered by the mask.
//
-// If a repeated field is specified for an update operation, the existing
-// repeated values in the target resource will be overwritten by the new values.
-// Note that a repeated field is only allowed in the last position of a `paths`
-// string.
+// If a repeated field is specified for an update operation, new values will
+// be appended to the existing repeated field in the target resource. Note that
+// a repeated field is only allowed in the last position of a `paths` string.
//
// If a sub-message is specified in the last position of the field mask for an
-// update operation, then the existing sub-message in the target resource is
-// overwritten. Given the target message:
+// update operation, then new value will be merged into the existing sub-message
+// in the target resource.
+//
+// For example, given the target message:
//
// f {
// b {
-// d : 1
-// x : 2
+// d: 1
+// x: 2
// }
-// c : 1
+// c: [1]
// }
//
// And an update message:
//
// f {
// b {
-// d : 10
+// d: 10
// }
+// c: [2]
// }
//
// then if the field mask is:
//
-// paths: "f.b"
+// paths: ["f.b", "f.c"]
//
// then the result will be:
//
// f {
// b {
-// d : 10
+// d: 10
+// x: 2
// }
-// c : 1
+// c: [1, 2]
// }
//
-// However, if the update mask was:
-//
-// paths: "f.b.d"
-//
-// then the result would be:
-//
-// f {
-// b {
-// d : 10
-// x : 2
-// }
-// c : 1
-// }
+// An implementation may provide options to override this default behavior for
+// repeated and message fields.
//
// In order to reset a field's value to the default, the field must
// be in the mask and set to the default value in the provided resource.
@@ -229,8 +220,8 @@ const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
//
// ## Field Mask Verification
//
-// The implementation of the all the API methods, which have any FieldMask type
-// field in the request, should verify the included field paths, and return
+// The implementation of any API method which has a FieldMask type field in the
+// request should verify the included field paths, and return an
// `INVALID_ARGUMENT` error if any path is duplicated or unmappable.
type FieldMask struct {
// The set of field mask paths.
@@ -243,7 +234,7 @@ type FieldMask struct {
func (m *FieldMask) Reset() { *m = FieldMask{} }
func (*FieldMask) ProtoMessage() {}
func (*FieldMask) Descriptor() ([]byte, []int) {
- return fileDescriptor_field_mask_f1676d06eb3d88ba, []int{0}
+ return fileDescriptor_5158202634f0da48, []int{0}
}
func (m *FieldMask) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -260,8 +251,8 @@ func (m *FieldMask) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *FieldMask) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FieldMask.Merge(dst, src)
+func (m *FieldMask) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FieldMask.Merge(m, src)
}
func (m *FieldMask) XXX_Size() int {
return m.Size()
@@ -285,6 +276,26 @@ func (*FieldMask) XXX_MessageName() string {
func init() {
proto.RegisterType((*FieldMask)(nil), "google.protobuf.FieldMask")
}
+
+func init() { proto.RegisterFile("google/protobuf/field_mask.proto", fileDescriptor_5158202634f0da48) }
+
+var fileDescriptor_5158202634f0da48 = []byte{
+ // 203 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x48, 0xcf, 0xcf, 0x4f,
+ 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x4f, 0xcb, 0x4c, 0xcd,
+ 0x49, 0x89, 0xcf, 0x4d, 0x2c, 0xce, 0xd6, 0x03, 0x8b, 0x09, 0xf1, 0x43, 0x54, 0xe8, 0xc1, 0x54,
+ 0x28, 0x29, 0x72, 0x71, 0xba, 0x81, 0x14, 0xf9, 0x26, 0x16, 0x67, 0x0b, 0x89, 0x70, 0xb1, 0x16,
+ 0x24, 0x96, 0x64, 0x14, 0x4b, 0x30, 0x2a, 0x30, 0x6b, 0x70, 0x06, 0x41, 0x38, 0x4e, 0x1d, 0x8c,
+ 0x37, 0x1e, 0xca, 0x31, 0x7c, 0x78, 0x28, 0xc7, 0xf8, 0xe3, 0xa1, 0x1c, 0x63, 0xc3, 0x23, 0x39,
+ 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x4f, 0x3c, 0x92, 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23,
+ 0x39, 0xc6, 0x17, 0x8f, 0xe4, 0x18, 0x3e, 0x80, 0xc4, 0x1f, 0xcb, 0x31, 0x9e, 0x78, 0x2c, 0xc7,
+ 0xc8, 0x25, 0x9c, 0x9c, 0x9f, 0xab, 0x87, 0x66, 0x95, 0x13, 0x1f, 0xdc, 0xa2, 0x00, 0x90, 0x50,
+ 0x00, 0x63, 0x14, 0x6b, 0x49, 0x65, 0x41, 0x6a, 0xf1, 0x0f, 0x46, 0xc6, 0x45, 0x4c, 0xcc, 0xee,
+ 0x01, 0x4e, 0xab, 0x98, 0xe4, 0xdc, 0x21, 0x7a, 0x02, 0xa0, 0x7a, 0xf4, 0xc2, 0x53, 0x73, 0x72,
+ 0xbc, 0xf3, 0xf2, 0xcb, 0xf3, 0x42, 0x40, 0x2a, 0x93, 0xd8, 0xc0, 0x86, 0x19, 0x03, 0x02, 0x00,
+ 0x00, 0xff, 0xff, 0x43, 0xa0, 0x83, 0xd0, 0xe9, 0x00, 0x00, 0x00,
+}
+
func (this *FieldMask) Compare(that interface{}) int {
if that == nil {
if this == nil {
@@ -577,7 +588,7 @@ func (m *FieldMask) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -605,7 +616,7 @@ func (m *FieldMask) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -615,6 +626,9 @@ func (m *FieldMask) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthFieldMask
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthFieldMask
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -629,6 +643,9 @@ func (m *FieldMask) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthFieldMask
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthFieldMask
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -696,10 +713,13 @@ func skipFieldMask(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthFieldMask
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthFieldMask
+ }
return iNdEx, nil
case 3:
for {
@@ -728,6 +748,9 @@ func skipFieldMask(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthFieldMask
+ }
}
return iNdEx, nil
case 4:
@@ -746,24 +769,3 @@ var (
ErrInvalidLengthFieldMask = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowFieldMask = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("google/protobuf/field_mask.proto", fileDescriptor_field_mask_f1676d06eb3d88ba)
-}
-
-var fileDescriptor_field_mask_f1676d06eb3d88ba = []byte{
- // 200 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x48, 0xcf, 0xcf, 0x4f,
- 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x4f, 0xcb, 0x4c, 0xcd,
- 0x49, 0x89, 0xcf, 0x4d, 0x2c, 0xce, 0xd6, 0x03, 0x8b, 0x09, 0xf1, 0x43, 0x54, 0xe8, 0xc1, 0x54,
- 0x28, 0x29, 0x72, 0x71, 0xba, 0x81, 0x14, 0xf9, 0x26, 0x16, 0x67, 0x0b, 0x89, 0x70, 0xb1, 0x16,
- 0x24, 0x96, 0x64, 0x14, 0x4b, 0x30, 0x2a, 0x30, 0x6b, 0x70, 0x06, 0x41, 0x38, 0x4e, 0xad, 0x8c,
- 0x37, 0x1e, 0xca, 0x31, 0x7c, 0x78, 0x28, 0xc7, 0xf8, 0xe3, 0xa1, 0x1c, 0x63, 0xc3, 0x23, 0x39,
- 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x4f, 0x3c, 0x92, 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23,
- 0x39, 0xc6, 0x17, 0x8f, 0xe4, 0x18, 0x3e, 0x80, 0xc4, 0x1f, 0xcb, 0x31, 0x9e, 0x78, 0x2c, 0xc7,
- 0xc8, 0x25, 0x9c, 0x9c, 0x9f, 0xab, 0x87, 0x66, 0x95, 0x13, 0x1f, 0xdc, 0xa2, 0x00, 0x90, 0x50,
- 0x00, 0x63, 0x14, 0x6b, 0x49, 0x65, 0x41, 0x6a, 0xf1, 0x22, 0x26, 0x66, 0xf7, 0x00, 0xa7, 0x55,
- 0x4c, 0x72, 0xee, 0x10, 0x0d, 0x01, 0x50, 0x0d, 0x7a, 0xe1, 0xa9, 0x39, 0x39, 0xde, 0x79, 0xf9,
- 0xe5, 0x79, 0x21, 0x20, 0x65, 0x49, 0x6c, 0x60, 0x93, 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff,
- 0xcf, 0xae, 0x5b, 0xec, 0xe6, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/types/source_context.pb.go b/vendor/github.com/gogo/protobuf/types/source_context.pb.go
index 97b6d62abd..3688840b53 100644
--- a/vendor/github.com/gogo/protobuf/types/source_context.pb.go
+++ b/vendor/github.com/gogo/protobuf/types/source_context.pb.go
@@ -3,16 +3,15 @@
package types
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -39,7 +38,7 @@ type SourceContext struct {
func (m *SourceContext) Reset() { *m = SourceContext{} }
func (*SourceContext) ProtoMessage() {}
func (*SourceContext) Descriptor() ([]byte, []int) {
- return fileDescriptor_source_context_b387e69fb08d10e5, []int{0}
+ return fileDescriptor_b686cdb126d509db, []int{0}
}
func (m *SourceContext) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -56,8 +55,8 @@ func (m *SourceContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error
return b[:n], nil
}
}
-func (dst *SourceContext) XXX_Merge(src proto.Message) {
- xxx_messageInfo_SourceContext.Merge(dst, src)
+func (m *SourceContext) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SourceContext.Merge(m, src)
}
func (m *SourceContext) XXX_Size() int {
return m.Size()
@@ -81,6 +80,29 @@ func (*SourceContext) XXX_MessageName() string {
func init() {
proto.RegisterType((*SourceContext)(nil), "google.protobuf.SourceContext")
}
+
+func init() {
+ proto.RegisterFile("google/protobuf/source_context.proto", fileDescriptor_b686cdb126d509db)
+}
+
+var fileDescriptor_b686cdb126d509db = []byte{
+ // 212 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x49, 0xcf, 0xcf, 0x4f,
+ 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0xce, 0x2f, 0x2d,
+ 0x4a, 0x4e, 0x8d, 0x4f, 0xce, 0xcf, 0x2b, 0x49, 0xad, 0x28, 0xd1, 0x03, 0x8b, 0x0b, 0xf1, 0x43,
+ 0x54, 0xe9, 0xc1, 0x54, 0x29, 0xe9, 0x70, 0xf1, 0x06, 0x83, 0x15, 0x3a, 0x43, 0xd4, 0x09, 0x49,
+ 0x73, 0x71, 0xa6, 0x65, 0xe6, 0xa4, 0xc6, 0xe7, 0x25, 0xe6, 0xa6, 0x4a, 0x30, 0x2a, 0x30, 0x6a,
+ 0x70, 0x06, 0x71, 0x80, 0x04, 0xfc, 0x12, 0x73, 0x53, 0x9d, 0x3a, 0x19, 0x6f, 0x3c, 0x94, 0x63,
+ 0xf8, 0xf0, 0x50, 0x8e, 0xf1, 0xc7, 0x43, 0x39, 0xc6, 0x86, 0x47, 0x72, 0x8c, 0x2b, 0x1e, 0xc9,
+ 0x31, 0x9e, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x2f, 0x1e,
+ 0xc9, 0x31, 0x7c, 0x00, 0x89, 0x3f, 0x96, 0x63, 0x3c, 0xf1, 0x58, 0x8e, 0x91, 0x4b, 0x38, 0x39,
+ 0x3f, 0x57, 0x0f, 0xcd, 0x56, 0x27, 0x21, 0x14, 0x3b, 0x03, 0x40, 0xc2, 0x01, 0x8c, 0x51, 0xac,
+ 0x25, 0x95, 0x05, 0xa9, 0xc5, 0x8b, 0x98, 0x98, 0xdd, 0x03, 0x9c, 0x56, 0x31, 0xc9, 0xb9, 0x43,
+ 0x34, 0x05, 0x40, 0x35, 0xe9, 0x85, 0xa7, 0xe6, 0xe4, 0x78, 0xe7, 0xe5, 0x97, 0xe7, 0x85, 0x80,
+ 0x94, 0x25, 0xb1, 0x81, 0x4d, 0x33, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xb8, 0x37, 0x2a, 0xa1,
+ 0xf9, 0x00, 0x00, 0x00,
+}
+
func (this *SourceContext) Compare(that interface{}) int {
if that == nil {
if this == nil {
@@ -345,7 +367,7 @@ func (m *SourceContext) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -373,7 +395,7 @@ func (m *SourceContext) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -383,6 +405,9 @@ func (m *SourceContext) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthSourceContext
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthSourceContext
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -397,6 +422,9 @@ func (m *SourceContext) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthSourceContext
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthSourceContext
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -464,10 +492,13 @@ func skipSourceContext(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthSourceContext
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthSourceContext
+ }
return iNdEx, nil
case 3:
for {
@@ -496,6 +527,9 @@ func skipSourceContext(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthSourceContext
+ }
}
return iNdEx, nil
case 4:
@@ -514,25 +548,3 @@ var (
ErrInvalidLengthSourceContext = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowSourceContext = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("google/protobuf/source_context.proto", fileDescriptor_source_context_b387e69fb08d10e5)
-}
-
-var fileDescriptor_source_context_b387e69fb08d10e5 = []byte{
- // 212 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x49, 0xcf, 0xcf, 0x4f,
- 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0xce, 0x2f, 0x2d,
- 0x4a, 0x4e, 0x8d, 0x4f, 0xce, 0xcf, 0x2b, 0x49, 0xad, 0x28, 0xd1, 0x03, 0x8b, 0x0b, 0xf1, 0x43,
- 0x54, 0xe9, 0xc1, 0x54, 0x29, 0xe9, 0x70, 0xf1, 0x06, 0x83, 0x15, 0x3a, 0x43, 0xd4, 0x09, 0x49,
- 0x73, 0x71, 0xa6, 0x65, 0xe6, 0xa4, 0xc6, 0xe7, 0x25, 0xe6, 0xa6, 0x4a, 0x30, 0x2a, 0x30, 0x6a,
- 0x70, 0x06, 0x71, 0x80, 0x04, 0xfc, 0x12, 0x73, 0x53, 0x9d, 0x3a, 0x19, 0x6f, 0x3c, 0x94, 0x63,
- 0xf8, 0xf0, 0x50, 0x8e, 0xf1, 0xc7, 0x43, 0x39, 0xc6, 0x86, 0x47, 0x72, 0x8c, 0x2b, 0x1e, 0xc9,
- 0x31, 0x9e, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x2f, 0x1e,
- 0xc9, 0x31, 0x7c, 0x00, 0x89, 0x3f, 0x96, 0x63, 0x3c, 0xf1, 0x58, 0x8e, 0x91, 0x4b, 0x38, 0x39,
- 0x3f, 0x57, 0x0f, 0xcd, 0x56, 0x27, 0x21, 0x14, 0x3b, 0x03, 0x40, 0xc2, 0x01, 0x8c, 0x51, 0xac,
- 0x25, 0x95, 0x05, 0xa9, 0xc5, 0x8b, 0x98, 0x98, 0xdd, 0x03, 0x9c, 0x56, 0x31, 0xc9, 0xb9, 0x43,
- 0x34, 0x05, 0x40, 0x35, 0xe9, 0x85, 0xa7, 0xe6, 0xe4, 0x78, 0xe7, 0xe5, 0x97, 0xe7, 0x85, 0x80,
- 0x94, 0x25, 0xb1, 0x81, 0x4d, 0x33, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xb8, 0x37, 0x2a, 0xa1,
- 0xf9, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/types/struct.pb.go b/vendor/github.com/gogo/protobuf/types/struct.pb.go
index 2b6575ffa0..63fd17b03e 100644
--- a/vendor/github.com/gogo/protobuf/types/struct.pb.go
+++ b/vendor/github.com/gogo/protobuf/types/struct.pb.go
@@ -3,21 +3,18 @@
package types
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import strconv "strconv"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
-import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
-
-import encoding_binary "encoding/binary"
-
-import io "io"
+import (
+ bytes "bytes"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strconv "strconv"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -44,13 +41,15 @@ const (
var NullValue_name = map[int32]string{
0: "NULL_VALUE",
}
+
var NullValue_value = map[string]int32{
"NULL_VALUE": 0,
}
func (NullValue) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_struct_7f9d36853146434f, []int{0}
+ return fileDescriptor_df322afd6c9fb402, []int{0}
}
+
func (NullValue) XXX_WellKnownType() string { return "NullValue" }
// `Struct` represents a structured data value, consisting of fields
@@ -72,7 +71,7 @@ type Struct struct {
func (m *Struct) Reset() { *m = Struct{} }
func (*Struct) ProtoMessage() {}
func (*Struct) Descriptor() ([]byte, []int) {
- return fileDescriptor_struct_7f9d36853146434f, []int{0}
+ return fileDescriptor_df322afd6c9fb402, []int{0}
}
func (*Struct) XXX_WellKnownType() string { return "Struct" }
func (m *Struct) XXX_Unmarshal(b []byte) error {
@@ -90,8 +89,8 @@ func (m *Struct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Struct) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Struct.Merge(dst, src)
+func (m *Struct) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Struct.Merge(m, src)
}
func (m *Struct) XXX_Size() int {
return m.Size()
@@ -138,7 +137,7 @@ type Value struct {
func (m *Value) Reset() { *m = Value{} }
func (*Value) ProtoMessage() {}
func (*Value) Descriptor() ([]byte, []int) {
- return fileDescriptor_struct_7f9d36853146434f, []int{1}
+ return fileDescriptor_df322afd6c9fb402, []int{1}
}
func (*Value) XXX_WellKnownType() string { return "Value" }
func (m *Value) XXX_Unmarshal(b []byte) error {
@@ -156,8 +155,8 @@ func (m *Value) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Value) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Value.Merge(dst, src)
+func (m *Value) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Value.Merge(m, src)
}
func (m *Value) XXX_Size() int {
return m.Size()
@@ -403,7 +402,7 @@ type ListValue struct {
func (m *ListValue) Reset() { *m = ListValue{} }
func (*ListValue) ProtoMessage() {}
func (*ListValue) Descriptor() ([]byte, []int) {
- return fileDescriptor_struct_7f9d36853146434f, []int{2}
+ return fileDescriptor_df322afd6c9fb402, []int{2}
}
func (*ListValue) XXX_WellKnownType() string { return "ListValue" }
func (m *ListValue) XXX_Unmarshal(b []byte) error {
@@ -421,8 +420,8 @@ func (m *ListValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *ListValue) XXX_Merge(src proto.Message) {
- xxx_messageInfo_ListValue.Merge(dst, src)
+func (m *ListValue) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ListValue.Merge(m, src)
}
func (m *ListValue) XXX_Size() int {
return m.Size()
@@ -444,12 +443,47 @@ func (*ListValue) XXX_MessageName() string {
return "google.protobuf.ListValue"
}
func init() {
+ proto.RegisterEnum("google.protobuf.NullValue", NullValue_name, NullValue_value)
proto.RegisterType((*Struct)(nil), "google.protobuf.Struct")
proto.RegisterMapType((map[string]*Value)(nil), "google.protobuf.Struct.FieldsEntry")
proto.RegisterType((*Value)(nil), "google.protobuf.Value")
proto.RegisterType((*ListValue)(nil), "google.protobuf.ListValue")
- proto.RegisterEnum("google.protobuf.NullValue", NullValue_name, NullValue_value)
}
+
+func init() { proto.RegisterFile("google/protobuf/struct.proto", fileDescriptor_df322afd6c9fb402) }
+
+var fileDescriptor_df322afd6c9fb402 = []byte{
+ // 439 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x91, 0xc1, 0x6b, 0xd4, 0x40,
+ 0x14, 0xc6, 0xf3, 0xb2, 0xdd, 0xe0, 0xbe, 0x48, 0x2d, 0x23, 0xe8, 0x52, 0x65, 0x5c, 0xb6, 0x97,
+ 0x45, 0x24, 0x85, 0xf5, 0x22, 0xae, 0x17, 0x17, 0x6a, 0x0b, 0x86, 0x12, 0xa3, 0xad, 0xe0, 0x65,
+ 0x31, 0x69, 0xba, 0x84, 0x4e, 0x67, 0x4a, 0x32, 0xa3, 0xec, 0x4d, 0xff, 0x0b, 0xcf, 0x9e, 0xc4,
+ 0xa3, 0x7f, 0x85, 0x47, 0x8f, 0x1e, 0xdd, 0x78, 0xf1, 0xd8, 0x63, 0x8f, 0x32, 0x33, 0x49, 0x94,
+ 0x2e, 0xbd, 0xe5, 0x7d, 0xf3, 0x7b, 0xdf, 0x7b, 0xdf, 0x0b, 0xde, 0x9d, 0x0b, 0x31, 0x67, 0xd9,
+ 0xf6, 0x59, 0x21, 0xa4, 0x48, 0xd4, 0xf1, 0x76, 0x29, 0x0b, 0x95, 0xca, 0xc0, 0xd4, 0xe4, 0x86,
+ 0x7d, 0x0d, 0x9a, 0xd7, 0xe1, 0x27, 0x40, 0xef, 0xa5, 0x21, 0xc8, 0x04, 0xbd, 0xe3, 0x3c, 0x63,
+ 0x47, 0x65, 0x1f, 0x06, 0x9d, 0x91, 0x3f, 0xde, 0x0a, 0x2e, 0xc1, 0x81, 0x05, 0x83, 0x67, 0x86,
+ 0xda, 0xe1, 0xb2, 0x58, 0xc4, 0x75, 0xcb, 0xe6, 0x0b, 0xf4, 0xff, 0x93, 0xc9, 0x06, 0x76, 0x4e,
+ 0xb2, 0x45, 0x1f, 0x06, 0x30, 0xea, 0xc5, 0xfa, 0x93, 0x3c, 0xc0, 0xee, 0xbb, 0xb7, 0x4c, 0x65,
+ 0x7d, 0x77, 0x00, 0x23, 0x7f, 0x7c, 0x6b, 0xc5, 0xfc, 0x50, 0xbf, 0xc6, 0x16, 0x7a, 0xec, 0x3e,
+ 0x82, 0xe1, 0x37, 0x17, 0xbb, 0x46, 0x24, 0x13, 0x44, 0xae, 0x18, 0x9b, 0x59, 0x03, 0x6d, 0xba,
+ 0x3e, 0xde, 0x5c, 0x31, 0xd8, 0x57, 0x8c, 0x19, 0x7e, 0xcf, 0x89, 0x7b, 0xbc, 0x29, 0xc8, 0x16,
+ 0x5e, 0xe7, 0xea, 0x34, 0xc9, 0x8a, 0xd9, 0xbf, 0xf9, 0xb0, 0xe7, 0xc4, 0xbe, 0x55, 0x5b, 0xa8,
+ 0x94, 0x45, 0xce, 0xe7, 0x35, 0xd4, 0xd1, 0x8b, 0x6b, 0xc8, 0xaa, 0x16, 0xba, 0x87, 0x98, 0x08,
+ 0xd1, 0xac, 0xb1, 0x36, 0x80, 0xd1, 0x35, 0x3d, 0x4a, 0x6b, 0x16, 0x78, 0x62, 0x5c, 0x54, 0x2a,
+ 0x6b, 0xa4, 0x6b, 0xa2, 0xde, 0xbe, 0xe2, 0x8e, 0xb5, 0xbd, 0x4a, 0x65, 0x9b, 0x92, 0xe5, 0x65,
+ 0xd3, 0xeb, 0x99, 0xde, 0xd5, 0x94, 0x61, 0x5e, 0xca, 0x36, 0x25, 0x6b, 0x8a, 0xa9, 0x87, 0x6b,
+ 0x27, 0x39, 0x3f, 0x1a, 0x4e, 0xb0, 0xd7, 0x12, 0x24, 0x40, 0xcf, 0x98, 0x35, 0x7f, 0xf4, 0xaa,
+ 0xa3, 0xd7, 0xd4, 0xfd, 0x3b, 0xd8, 0x6b, 0x8f, 0x48, 0xd6, 0x11, 0xf7, 0x0f, 0xc2, 0x70, 0x76,
+ 0xf8, 0x34, 0x3c, 0xd8, 0xd9, 0x70, 0xa6, 0x1f, 0xe1, 0xe7, 0x92, 0x3a, 0xe7, 0x4b, 0x0a, 0x17,
+ 0x4b, 0x0a, 0x1f, 0x2a, 0x0a, 0x5f, 0x2a, 0x0a, 0xdf, 0x2b, 0x0a, 0x3f, 0x2a, 0x0a, 0xbf, 0x2a,
+ 0x0a, 0x7f, 0x2a, 0xea, 0x9c, 0x6b, 0xed, 0x37, 0x05, 0xbc, 0x99, 0x8a, 0xd3, 0xcb, 0xe3, 0xa6,
+ 0xbe, 0x4d, 0x1e, 0xe9, 0x3a, 0x82, 0x37, 0x5d, 0xb9, 0x38, 0xcb, 0xca, 0x0b, 0x80, 0xcf, 0x6e,
+ 0x67, 0x37, 0x9a, 0x7e, 0x75, 0xe9, 0xae, 0x6d, 0x88, 0x9a, 0xfd, 0x5e, 0x67, 0x8c, 0x3d, 0xe7,
+ 0xe2, 0x3d, 0x7f, 0xa5, 0xc9, 0xc4, 0x33, 0x4e, 0x0f, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0xad,
+ 0x84, 0x08, 0xae, 0xe5, 0x02, 0x00, 0x00,
+}
+
func (x NullValue) String() string {
s, ok := NullValue_name[int32(x)]
if ok {
@@ -1407,7 +1441,7 @@ func (m *Struct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1435,7 +1469,7 @@ func (m *Struct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1444,6 +1478,9 @@ func (m *Struct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthStruct
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthStruct
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1464,7 +1501,7 @@ func (m *Struct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1481,7 +1518,7 @@ func (m *Struct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLenmapkey |= (uint64(b) & 0x7F) << shift
+ stringLenmapkey |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1491,6 +1528,9 @@ func (m *Struct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthStruct
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return ErrInvalidLengthStruct
+ }
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
}
@@ -1507,7 +1547,7 @@ func (m *Struct) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- mapmsglen |= (int(b) & 0x7F) << shift
+ mapmsglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1516,7 +1556,7 @@ func (m *Struct) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthStruct
}
postmsgIndex := iNdEx + mapmsglen
- if mapmsglen < 0 {
+ if postmsgIndex < 0 {
return ErrInvalidLengthStruct
}
if postmsgIndex > l {
@@ -1553,6 +1593,9 @@ func (m *Struct) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthStruct
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthStruct
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1581,7 +1624,7 @@ func (m *Value) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1609,7 +1652,7 @@ func (m *Value) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (NullValue(b) & 0x7F) << shift
+ v |= NullValue(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1640,7 +1683,7 @@ func (m *Value) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1650,6 +1693,9 @@ func (m *Value) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthStruct
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthStruct
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1669,7 +1715,7 @@ func (m *Value) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1690,7 +1736,7 @@ func (m *Value) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1699,6 +1745,9 @@ func (m *Value) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthStruct
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthStruct
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1722,7 +1771,7 @@ func (m *Value) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1731,6 +1780,9 @@ func (m *Value) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthStruct
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthStruct
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1749,6 +1801,9 @@ func (m *Value) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthStruct
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthStruct
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1777,7 +1832,7 @@ func (m *ListValue) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1805,7 +1860,7 @@ func (m *ListValue) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1814,6 +1869,9 @@ func (m *ListValue) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthStruct
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthStruct
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -1831,6 +1889,9 @@ func (m *ListValue) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthStruct
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthStruct
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1898,10 +1959,13 @@ func skipStruct(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthStruct
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthStruct
+ }
return iNdEx, nil
case 3:
for {
@@ -1930,6 +1994,9 @@ func skipStruct(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthStruct
+ }
}
return iNdEx, nil
case 4:
@@ -1948,39 +2015,3 @@ var (
ErrInvalidLengthStruct = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowStruct = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("google/protobuf/struct.proto", fileDescriptor_struct_7f9d36853146434f)
-}
-
-var fileDescriptor_struct_7f9d36853146434f = []byte{
- // 439 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x91, 0xc1, 0x6b, 0xd4, 0x40,
- 0x14, 0xc6, 0xf3, 0xb2, 0xdd, 0xe0, 0xbe, 0x48, 0x2d, 0x23, 0xe8, 0x52, 0x65, 0x5c, 0xb6, 0x97,
- 0x45, 0x24, 0x85, 0xf5, 0x22, 0xae, 0x17, 0x17, 0x6a, 0x0b, 0x86, 0x12, 0xa3, 0xad, 0xe0, 0x65,
- 0x31, 0x69, 0xba, 0x84, 0x4e, 0x67, 0x4a, 0x32, 0xa3, 0xec, 0x4d, 0xff, 0x0b, 0xcf, 0x9e, 0xc4,
- 0xa3, 0x7f, 0x85, 0x47, 0x8f, 0x1e, 0xdd, 0x78, 0xf1, 0xd8, 0x63, 0x8f, 0x32, 0x33, 0x49, 0x94,
- 0x2e, 0xbd, 0xe5, 0x7d, 0xf3, 0x7b, 0xdf, 0x7b, 0xdf, 0x0b, 0xde, 0x9d, 0x0b, 0x31, 0x67, 0xd9,
- 0xf6, 0x59, 0x21, 0xa4, 0x48, 0xd4, 0xf1, 0x76, 0x29, 0x0b, 0x95, 0xca, 0xc0, 0xd4, 0xe4, 0x86,
- 0x7d, 0x0d, 0x9a, 0xd7, 0xe1, 0x27, 0x40, 0xef, 0xa5, 0x21, 0xc8, 0x04, 0xbd, 0xe3, 0x3c, 0x63,
- 0x47, 0x65, 0x1f, 0x06, 0x9d, 0x91, 0x3f, 0xde, 0x0a, 0x2e, 0xc1, 0x81, 0x05, 0x83, 0x67, 0x86,
- 0xda, 0xe1, 0xb2, 0x58, 0xc4, 0x75, 0xcb, 0xe6, 0x0b, 0xf4, 0xff, 0x93, 0xc9, 0x06, 0x76, 0x4e,
- 0xb2, 0x45, 0x1f, 0x06, 0x30, 0xea, 0xc5, 0xfa, 0x93, 0x3c, 0xc0, 0xee, 0xbb, 0xb7, 0x4c, 0x65,
- 0x7d, 0x77, 0x00, 0x23, 0x7f, 0x7c, 0x6b, 0xc5, 0xfc, 0x50, 0xbf, 0xc6, 0x16, 0x7a, 0xec, 0x3e,
- 0x82, 0xe1, 0x37, 0x17, 0xbb, 0x46, 0x24, 0x13, 0x44, 0xae, 0x18, 0x9b, 0x59, 0x03, 0x6d, 0xba,
- 0x3e, 0xde, 0x5c, 0x31, 0xd8, 0x57, 0x8c, 0x19, 0x7e, 0xcf, 0x89, 0x7b, 0xbc, 0x29, 0xc8, 0x16,
- 0x5e, 0xe7, 0xea, 0x34, 0xc9, 0x8a, 0xd9, 0xbf, 0xf9, 0xb0, 0xe7, 0xc4, 0xbe, 0x55, 0x5b, 0xa8,
- 0x94, 0x45, 0xce, 0xe7, 0x35, 0xd4, 0xd1, 0x8b, 0x6b, 0xc8, 0xaa, 0x16, 0xba, 0x87, 0x98, 0x08,
- 0xd1, 0xac, 0xb1, 0x36, 0x80, 0xd1, 0x35, 0x3d, 0x4a, 0x6b, 0x16, 0x78, 0x62, 0x5c, 0x54, 0x2a,
- 0x6b, 0xa4, 0x6b, 0xa2, 0xde, 0xbe, 0xe2, 0x8e, 0xb5, 0xbd, 0x4a, 0x65, 0x9b, 0x92, 0xe5, 0x65,
- 0xd3, 0xeb, 0x99, 0xde, 0xd5, 0x94, 0x61, 0x5e, 0xca, 0x36, 0x25, 0x6b, 0x8a, 0xa9, 0x87, 0x6b,
- 0x27, 0x39, 0x3f, 0x1a, 0x4e, 0xb0, 0xd7, 0x12, 0x24, 0x40, 0xcf, 0x98, 0x35, 0x7f, 0xf4, 0xaa,
- 0xa3, 0xd7, 0xd4, 0xfd, 0x3b, 0xd8, 0x6b, 0x8f, 0x48, 0xd6, 0x11, 0xf7, 0x0f, 0xc2, 0x70, 0x76,
- 0xf8, 0x34, 0x3c, 0xd8, 0xd9, 0x70, 0xa6, 0x1f, 0xe1, 0xe7, 0x92, 0x3a, 0xe7, 0x4b, 0x0a, 0x17,
- 0x4b, 0x0a, 0x1f, 0x2a, 0x0a, 0x5f, 0x2a, 0x0a, 0xdf, 0x2b, 0x0a, 0x3f, 0x2a, 0x0a, 0xbf, 0x2a,
- 0x0a, 0x7f, 0x2a, 0xea, 0x9c, 0x6b, 0xed, 0x37, 0x05, 0xbc, 0x99, 0x8a, 0xd3, 0xcb, 0xe3, 0xa6,
- 0xbe, 0x4d, 0x1e, 0xe9, 0x3a, 0x82, 0x37, 0x5d, 0xb9, 0x38, 0xcb, 0xca, 0x0b, 0x80, 0xcf, 0x6e,
- 0x67, 0x37, 0x9a, 0x7e, 0x75, 0xe9, 0xae, 0x6d, 0x88, 0x9a, 0xfd, 0x5e, 0x67, 0x8c, 0x3d, 0xe7,
- 0xe2, 0x3d, 0x7f, 0xa5, 0xc9, 0xc4, 0x33, 0x4e, 0x0f, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0xad,
- 0x84, 0x08, 0xae, 0xe5, 0x02, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/types/timestamp.go b/vendor/github.com/gogo/protobuf/types/timestamp.go
index 7ae54d8b3f..232ada57ce 100644
--- a/vendor/github.com/gogo/protobuf/types/timestamp.go
+++ b/vendor/github.com/gogo/protobuf/types/timestamp.go
@@ -109,11 +109,9 @@ func TimestampNow() *Timestamp {
// TimestampProto converts the time.Time to a google.protobuf.Timestamp proto.
// It returns an error if the resulting Timestamp is invalid.
func TimestampProto(t time.Time) (*Timestamp, error) {
- seconds := t.Unix()
- nanos := int32(t.Sub(time.Unix(seconds, 0)))
ts := &Timestamp{
- Seconds: seconds,
- Nanos: nanos,
+ Seconds: t.Unix(),
+ Nanos: int32(t.Nanosecond()),
}
if err := validateTimestamp(ts); err != nil {
return nil, err
diff --git a/vendor/github.com/gogo/protobuf/types/timestamp.pb.go b/vendor/github.com/gogo/protobuf/types/timestamp.pb.go
index b6c9100127..3ee6cb0a17 100644
--- a/vendor/github.com/gogo/protobuf/types/timestamp.pb.go
+++ b/vendor/github.com/gogo/protobuf/types/timestamp.pb.go
@@ -3,16 +3,15 @@
package types
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -25,17 +24,19 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
-// A Timestamp represents a point in time independent of any time zone
-// or calendar, represented as seconds and fractions of seconds at
-// nanosecond resolution in UTC Epoch time. It is encoded using the
-// Proleptic Gregorian Calendar which extends the Gregorian calendar
-// backwards to year one. It is encoded assuming all minutes are 60
-// seconds long, i.e. leap seconds are "smeared" so that no leap second
-// table is needed for interpretation. Range is from
-// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.
-// By restricting to that range, we ensure that we can convert to
-// and from RFC 3339 date strings.
-// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).
+// A Timestamp represents a point in time independent of any time zone or local
+// calendar, encoded as a count of seconds and fractions of seconds at
+// nanosecond resolution. The count is relative to an epoch at UTC midnight on
+// January 1, 1970, in the proleptic Gregorian calendar which extends the
+// Gregorian calendar backwards to year one.
+//
+// All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
+// second table is needed for interpretation, using a [24-hour linear
+// smear](https://developers.google.com/time/smear).
+//
+// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
+// restricting to that range, we ensure that we can convert to and from [RFC
+// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
//
// # Examples
//
@@ -96,12 +97,12 @@ const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
// 01:30 UTC on January 15, 2017.
//
// In JavaScript, one can convert a Date object to this format using the
-// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString]
+// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
// method. In Python, a standard `datetime.datetime` object can be converted
// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime)
// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one
// can use the Joda Time's [`ISODateTimeFormat.dateTime()`](
-// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime--
+// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
// ) to obtain a formatter capable of generating timestamps in this format.
//
//
@@ -123,7 +124,7 @@ type Timestamp struct {
func (m *Timestamp) Reset() { *m = Timestamp{} }
func (*Timestamp) ProtoMessage() {}
func (*Timestamp) Descriptor() ([]byte, []int) {
- return fileDescriptor_timestamp_820f61227bd8f1e8, []int{0}
+ return fileDescriptor_292007bbfe81227e, []int{0}
}
func (*Timestamp) XXX_WellKnownType() string { return "Timestamp" }
func (m *Timestamp) XXX_Unmarshal(b []byte) error {
@@ -141,8 +142,8 @@ func (m *Timestamp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Timestamp) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Timestamp.Merge(dst, src)
+func (m *Timestamp) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Timestamp.Merge(m, src)
}
func (m *Timestamp) XXX_Size() int {
return m.Size()
@@ -173,6 +174,27 @@ func (*Timestamp) XXX_MessageName() string {
func init() {
proto.RegisterType((*Timestamp)(nil), "google.protobuf.Timestamp")
}
+
+func init() { proto.RegisterFile("google/protobuf/timestamp.proto", fileDescriptor_292007bbfe81227e) }
+
+var fileDescriptor_292007bbfe81227e = []byte{
+ // 212 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4f, 0xcf, 0xcf, 0x4f,
+ 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0xc9, 0xcc, 0x4d,
+ 0x2d, 0x2e, 0x49, 0xcc, 0x2d, 0xd0, 0x03, 0x0b, 0x09, 0xf1, 0x43, 0x14, 0xe8, 0xc1, 0x14, 0x28,
+ 0x59, 0x73, 0x71, 0x86, 0xc0, 0xd4, 0x08, 0x49, 0x70, 0xb1, 0x17, 0xa7, 0x26, 0xe7, 0xe7, 0xa5,
+ 0x14, 0x4b, 0x30, 0x2a, 0x30, 0x6a, 0x30, 0x07, 0xc1, 0xb8, 0x42, 0x22, 0x5c, 0xac, 0x79, 0x89,
+ 0x79, 0xf9, 0xc5, 0x12, 0x4c, 0x0a, 0x8c, 0x1a, 0xac, 0x41, 0x10, 0x8e, 0x53, 0x03, 0xe3, 0x8d,
+ 0x87, 0x72, 0x0c, 0x1f, 0x1e, 0xca, 0x31, 0xae, 0x78, 0x24, 0xc7, 0x78, 0xe2, 0x91, 0x1c, 0xe3,
+ 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0xbe, 0x78, 0x24, 0xc7, 0xf0, 0xe1, 0x91, 0x1c,
+ 0xe3, 0x8a, 0xc7, 0x72, 0x8c, 0x27, 0x1e, 0xcb, 0x31, 0x72, 0x09, 0x27, 0xe7, 0xe7, 0xea, 0xa1,
+ 0x59, 0xee, 0xc4, 0x07, 0xb7, 0x3a, 0x00, 0x24, 0x14, 0xc0, 0x18, 0xc5, 0x5a, 0x52, 0x59, 0x90,
+ 0x5a, 0xfc, 0x83, 0x91, 0x71, 0x11, 0x13, 0xb3, 0x7b, 0x80, 0xd3, 0x2a, 0x26, 0x39, 0x77, 0x88,
+ 0x9e, 0x00, 0xa8, 0x1e, 0xbd, 0xf0, 0xd4, 0x9c, 0x1c, 0xef, 0xbc, 0xfc, 0xf2, 0xbc, 0x10, 0x90,
+ 0xca, 0x24, 0x36, 0xb0, 0x61, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0b, 0x23, 0x83, 0xdd,
+ 0xfa, 0x00, 0x00, 0x00,
+}
+
func (this *Timestamp) Compare(that interface{}) int {
if that == nil {
if this == nil {
@@ -353,7 +375,7 @@ func (m *Timestamp) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -381,7 +403,7 @@ func (m *Timestamp) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Seconds |= (int64(b) & 0x7F) << shift
+ m.Seconds |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -400,7 +422,7 @@ func (m *Timestamp) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Nanos |= (int32(b) & 0x7F) << shift
+ m.Nanos |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -414,6 +436,9 @@ func (m *Timestamp) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthTimestamp
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTimestamp
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -481,10 +506,13 @@ func skipTimestamp(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthTimestamp
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthTimestamp
+ }
return iNdEx, nil
case 3:
for {
@@ -513,6 +541,9 @@ func skipTimestamp(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthTimestamp
+ }
}
return iNdEx, nil
case 4:
@@ -531,25 +562,3 @@ var (
ErrInvalidLengthTimestamp = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowTimestamp = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("google/protobuf/timestamp.proto", fileDescriptor_timestamp_820f61227bd8f1e8)
-}
-
-var fileDescriptor_timestamp_820f61227bd8f1e8 = []byte{
- // 212 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4f, 0xcf, 0xcf, 0x4f,
- 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0xc9, 0xcc, 0x4d,
- 0x2d, 0x2e, 0x49, 0xcc, 0x2d, 0xd0, 0x03, 0x0b, 0x09, 0xf1, 0x43, 0x14, 0xe8, 0xc1, 0x14, 0x28,
- 0x59, 0x73, 0x71, 0x86, 0xc0, 0xd4, 0x08, 0x49, 0x70, 0xb1, 0x17, 0xa7, 0x26, 0xe7, 0xe7, 0xa5,
- 0x14, 0x4b, 0x30, 0x2a, 0x30, 0x6a, 0x30, 0x07, 0xc1, 0xb8, 0x42, 0x22, 0x5c, 0xac, 0x79, 0x89,
- 0x79, 0xf9, 0xc5, 0x12, 0x4c, 0x0a, 0x8c, 0x1a, 0xac, 0x41, 0x10, 0x8e, 0x53, 0x03, 0xe3, 0x8d,
- 0x87, 0x72, 0x0c, 0x1f, 0x1e, 0xca, 0x31, 0xae, 0x78, 0x24, 0xc7, 0x78, 0xe2, 0x91, 0x1c, 0xe3,
- 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0xbe, 0x78, 0x24, 0xc7, 0xf0, 0xe1, 0x91, 0x1c,
- 0xe3, 0x8a, 0xc7, 0x72, 0x8c, 0x27, 0x1e, 0xcb, 0x31, 0x72, 0x09, 0x27, 0xe7, 0xe7, 0xea, 0xa1,
- 0x59, 0xee, 0xc4, 0x07, 0xb7, 0x3a, 0x00, 0x24, 0x14, 0xc0, 0x18, 0xc5, 0x5a, 0x52, 0x59, 0x90,
- 0x5a, 0xfc, 0x83, 0x91, 0x71, 0x11, 0x13, 0xb3, 0x7b, 0x80, 0xd3, 0x2a, 0x26, 0x39, 0x77, 0x88,
- 0x9e, 0x00, 0xa8, 0x1e, 0xbd, 0xf0, 0xd4, 0x9c, 0x1c, 0xef, 0xbc, 0xfc, 0xf2, 0xbc, 0x10, 0x90,
- 0xca, 0x24, 0x36, 0xb0, 0x61, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0b, 0x23, 0x83, 0xdd,
- 0xfa, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/types/type.pb.go b/vendor/github.com/gogo/protobuf/types/type.pb.go
index b422be3a43..366f493d28 100644
--- a/vendor/github.com/gogo/protobuf/types/type.pb.go
+++ b/vendor/github.com/gogo/protobuf/types/type.pb.go
@@ -3,18 +3,16 @@
package types
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import bytes "bytes"
-
-import strconv "strconv"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
+import (
+ bytes "bytes"
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strconv "strconv"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -41,13 +39,14 @@ var Syntax_name = map[int32]string{
0: "SYNTAX_PROTO2",
1: "SYNTAX_PROTO3",
}
+
var Syntax_value = map[string]int32{
"SYNTAX_PROTO2": 0,
"SYNTAX_PROTO3": 1,
}
func (Syntax) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_type_0082d870c49329d7, []int{0}
+ return fileDescriptor_dd271cc1e348c538, []int{0}
}
// Basic field types.
@@ -115,6 +114,7 @@ var Field_Kind_name = map[int32]string{
17: "TYPE_SINT32",
18: "TYPE_SINT64",
}
+
var Field_Kind_value = map[string]int32{
"TYPE_UNKNOWN": 0,
"TYPE_DOUBLE": 1,
@@ -138,7 +138,7 @@ var Field_Kind_value = map[string]int32{
}
func (Field_Kind) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_type_0082d870c49329d7, []int{1, 0}
+ return fileDescriptor_dd271cc1e348c538, []int{1, 0}
}
// Whether a field is optional, required, or repeated.
@@ -161,6 +161,7 @@ var Field_Cardinality_name = map[int32]string{
2: "CARDINALITY_REQUIRED",
3: "CARDINALITY_REPEATED",
}
+
var Field_Cardinality_value = map[string]int32{
"CARDINALITY_UNKNOWN": 0,
"CARDINALITY_OPTIONAL": 1,
@@ -169,7 +170,7 @@ var Field_Cardinality_value = map[string]int32{
}
func (Field_Cardinality) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_type_0082d870c49329d7, []int{1, 1}
+ return fileDescriptor_dd271cc1e348c538, []int{1, 1}
}
// A protocol buffer message type.
@@ -194,7 +195,7 @@ type Type struct {
func (m *Type) Reset() { *m = Type{} }
func (*Type) ProtoMessage() {}
func (*Type) Descriptor() ([]byte, []int) {
- return fileDescriptor_type_0082d870c49329d7, []int{0}
+ return fileDescriptor_dd271cc1e348c538, []int{0}
}
func (m *Type) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -211,8 +212,8 @@ func (m *Type) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Type) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Type.Merge(dst, src)
+func (m *Type) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Type.Merge(m, src)
}
func (m *Type) XXX_Size() int {
return m.Size()
@@ -301,7 +302,7 @@ type Field struct {
func (m *Field) Reset() { *m = Field{} }
func (*Field) ProtoMessage() {}
func (*Field) Descriptor() ([]byte, []int) {
- return fileDescriptor_type_0082d870c49329d7, []int{1}
+ return fileDescriptor_dd271cc1e348c538, []int{1}
}
func (m *Field) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -318,8 +319,8 @@ func (m *Field) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Field) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Field.Merge(dst, src)
+func (m *Field) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Field.Merge(m, src)
}
func (m *Field) XXX_Size() int {
return m.Size()
@@ -424,7 +425,7 @@ type Enum struct {
func (m *Enum) Reset() { *m = Enum{} }
func (*Enum) ProtoMessage() {}
func (*Enum) Descriptor() ([]byte, []int) {
- return fileDescriptor_type_0082d870c49329d7, []int{2}
+ return fileDescriptor_dd271cc1e348c538, []int{2}
}
func (m *Enum) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -441,8 +442,8 @@ func (m *Enum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Enum) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Enum.Merge(dst, src)
+func (m *Enum) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Enum.Merge(m, src)
}
func (m *Enum) XXX_Size() int {
return m.Size()
@@ -508,7 +509,7 @@ type EnumValue struct {
func (m *EnumValue) Reset() { *m = EnumValue{} }
func (*EnumValue) ProtoMessage() {}
func (*EnumValue) Descriptor() ([]byte, []int) {
- return fileDescriptor_type_0082d870c49329d7, []int{3}
+ return fileDescriptor_dd271cc1e348c538, []int{3}
}
func (m *EnumValue) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -525,8 +526,8 @@ func (m *EnumValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *EnumValue) XXX_Merge(src proto.Message) {
- xxx_messageInfo_EnumValue.Merge(dst, src)
+func (m *EnumValue) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EnumValue.Merge(m, src)
}
func (m *EnumValue) XXX_Size() int {
return m.Size()
@@ -583,7 +584,7 @@ type Option struct {
func (m *Option) Reset() { *m = Option{} }
func (*Option) ProtoMessage() {}
func (*Option) Descriptor() ([]byte, []int) {
- return fileDescriptor_type_0082d870c49329d7, []int{4}
+ return fileDescriptor_dd271cc1e348c538, []int{4}
}
func (m *Option) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -600,8 +601,8 @@ func (m *Option) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Option) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Option.Merge(dst, src)
+func (m *Option) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Option.Merge(m, src)
}
func (m *Option) XXX_Size() int {
return m.Size()
@@ -630,15 +631,75 @@ func (*Option) XXX_MessageName() string {
return "google.protobuf.Option"
}
func init() {
+ proto.RegisterEnum("google.protobuf.Syntax", Syntax_name, Syntax_value)
+ proto.RegisterEnum("google.protobuf.Field_Kind", Field_Kind_name, Field_Kind_value)
+ proto.RegisterEnum("google.protobuf.Field_Cardinality", Field_Cardinality_name, Field_Cardinality_value)
proto.RegisterType((*Type)(nil), "google.protobuf.Type")
proto.RegisterType((*Field)(nil), "google.protobuf.Field")
proto.RegisterType((*Enum)(nil), "google.protobuf.Enum")
proto.RegisterType((*EnumValue)(nil), "google.protobuf.EnumValue")
proto.RegisterType((*Option)(nil), "google.protobuf.Option")
- proto.RegisterEnum("google.protobuf.Syntax", Syntax_name, Syntax_value)
- proto.RegisterEnum("google.protobuf.Field_Kind", Field_Kind_name, Field_Kind_value)
- proto.RegisterEnum("google.protobuf.Field_Cardinality", Field_Cardinality_name, Field_Cardinality_value)
}
+
+func init() { proto.RegisterFile("google/protobuf/type.proto", fileDescriptor_dd271cc1e348c538) }
+
+var fileDescriptor_dd271cc1e348c538 = []byte{
+ // 840 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xcf, 0x73, 0xda, 0x46,
+ 0x14, 0xf6, 0x0a, 0x21, 0xa3, 0x87, 0xc1, 0x9b, 0x4d, 0x26, 0x51, 0x9c, 0x19, 0x95, 0xa1, 0x3d,
+ 0x30, 0x39, 0xe0, 0x29, 0x78, 0x3c, 0xbd, 0x82, 0x91, 0x29, 0x63, 0x22, 0xa9, 0x8b, 0x68, 0xe2,
+ 0x5e, 0x18, 0x0c, 0x72, 0x86, 0x44, 0xac, 0x18, 0x24, 0x5a, 0x73, 0xeb, 0x4c, 0xcf, 0xfd, 0x27,
+ 0x7a, 0xea, 0xf4, 0xdc, 0x3f, 0xc2, 0xc7, 0x1e, 0x7b, 0xac, 0xc9, 0xa5, 0xc7, 0x1c, 0x73, 0x6b,
+ 0x67, 0x57, 0x20, 0x8b, 0x1f, 0x9d, 0x49, 0xdb, 0x1b, 0xef, 0xfb, 0xbe, 0xf7, 0x73, 0x9f, 0x1e,
+ 0x70, 0xf4, 0xda, 0xf7, 0x5f, 0x7b, 0xee, 0xf1, 0x64, 0xea, 0x87, 0xfe, 0xd5, 0xec, 0xfa, 0x38,
+ 0x9c, 0x4f, 0xdc, 0xb2, 0xb0, 0xc8, 0x61, 0xc4, 0x95, 0x57, 0xdc, 0xd1, 0xd3, 0x4d, 0x71, 0x9f,
+ 0xcd, 0x23, 0xf6, 0xe8, 0xb3, 0x4d, 0x2a, 0xf0, 0x67, 0xd3, 0x81, 0xdb, 0x1b, 0xf8, 0x2c, 0x74,
+ 0x6f, 0xc2, 0x48, 0x55, 0xfc, 0x51, 0x02, 0xd9, 0x99, 0x4f, 0x5c, 0x42, 0x40, 0x66, 0xfd, 0xb1,
+ 0xab, 0xa1, 0x02, 0x2a, 0xa9, 0x54, 0xfc, 0x26, 0x65, 0x50, 0xae, 0x47, 0xae, 0x37, 0x0c, 0x34,
+ 0xa9, 0x90, 0x2a, 0x65, 0x2b, 0x8f, 0xcb, 0x1b, 0xf9, 0xcb, 0xe7, 0x9c, 0xa6, 0x4b, 0x15, 0x79,
+ 0x0c, 0x8a, 0xcf, 0x5c, 0xff, 0x3a, 0xd0, 0x52, 0x85, 0x54, 0x49, 0xa5, 0x4b, 0x8b, 0x7c, 0x0e,
+ 0xfb, 0xfe, 0x24, 0x1c, 0xf9, 0x2c, 0xd0, 0x64, 0x11, 0xe8, 0xc9, 0x56, 0x20, 0x4b, 0xf0, 0x74,
+ 0xa5, 0x23, 0x06, 0xe4, 0xd7, 0xeb, 0xd5, 0xd2, 0x05, 0x54, 0xca, 0x56, 0xf4, 0x2d, 0xcf, 0x8e,
+ 0x90, 0x9d, 0x45, 0x2a, 0x9a, 0x0b, 0x92, 0x26, 0x39, 0x06, 0x25, 0x98, 0xb3, 0xb0, 0x7f, 0xa3,
+ 0x29, 0x05, 0x54, 0xca, 0xef, 0x48, 0xdc, 0x11, 0x34, 0x5d, 0xca, 0x8a, 0xbf, 0x2a, 0x90, 0x16,
+ 0x4d, 0x91, 0x63, 0x90, 0xdf, 0x8e, 0xd8, 0x50, 0x0c, 0x24, 0x5f, 0x79, 0xb6, 0xbb, 0xf5, 0xf2,
+ 0xc5, 0x88, 0x0d, 0xa9, 0x10, 0x92, 0x06, 0x64, 0x07, 0xfd, 0xe9, 0x70, 0xc4, 0xfa, 0xde, 0x28,
+ 0x9c, 0x6b, 0x92, 0xf0, 0x2b, 0xfe, 0x83, 0xdf, 0xd9, 0xbd, 0x92, 0x26, 0xdd, 0xf8, 0x0c, 0xd9,
+ 0x6c, 0x7c, 0xe5, 0x4e, 0xb5, 0x54, 0x01, 0x95, 0xd2, 0x74, 0x69, 0xc5, 0xef, 0x23, 0x27, 0xde,
+ 0xe7, 0x29, 0x64, 0xf8, 0x72, 0xf4, 0x66, 0x53, 0x4f, 0xf4, 0xa7, 0xd2, 0x7d, 0x6e, 0x77, 0xa7,
+ 0x1e, 0xf9, 0x04, 0xb2, 0x62, 0xf8, 0xbd, 0x11, 0x1b, 0xba, 0x37, 0xda, 0xbe, 0x88, 0x05, 0x02,
+ 0x6a, 0x71, 0x84, 0xe7, 0x99, 0xf4, 0x07, 0x6f, 0xdd, 0xa1, 0x96, 0x29, 0xa0, 0x52, 0x86, 0x2e,
+ 0xad, 0xe4, 0x5b, 0xa9, 0x1f, 0xf9, 0x56, 0xcf, 0x40, 0x7d, 0x13, 0xf8, 0xac, 0x27, 0xea, 0x03,
+ 0x51, 0x47, 0x86, 0x03, 0x26, 0xaf, 0xf1, 0x53, 0xc8, 0x0d, 0xdd, 0xeb, 0xfe, 0xcc, 0x0b, 0x7b,
+ 0xdf, 0xf6, 0xbd, 0x99, 0xab, 0x65, 0x85, 0xe0, 0x60, 0x09, 0x7e, 0xcd, 0xb1, 0xe2, 0xad, 0x04,
+ 0x32, 0x9f, 0x24, 0xc1, 0x70, 0xe0, 0x5c, 0xda, 0x46, 0xaf, 0x6b, 0x5e, 0x98, 0xd6, 0x4b, 0x13,
+ 0xef, 0x91, 0x43, 0xc8, 0x0a, 0xa4, 0x61, 0x75, 0xeb, 0x6d, 0x03, 0x23, 0x92, 0x07, 0x10, 0xc0,
+ 0x79, 0xdb, 0xaa, 0x39, 0x58, 0x8a, 0xed, 0x96, 0xe9, 0x9c, 0x9e, 0xe0, 0x54, 0xec, 0xd0, 0x8d,
+ 0x00, 0x39, 0x29, 0xa8, 0x56, 0x70, 0x3a, 0xce, 0x71, 0xde, 0x7a, 0x65, 0x34, 0x4e, 0x4f, 0xb0,
+ 0xb2, 0x8e, 0x54, 0x2b, 0x78, 0x9f, 0xe4, 0x40, 0x15, 0x48, 0xdd, 0xb2, 0xda, 0x38, 0x13, 0xc7,
+ 0xec, 0x38, 0xb4, 0x65, 0x36, 0xb1, 0x1a, 0xc7, 0x6c, 0x52, 0xab, 0x6b, 0x63, 0x88, 0x23, 0xbc,
+ 0x30, 0x3a, 0x9d, 0x5a, 0xd3, 0xc0, 0xd9, 0x58, 0x51, 0xbf, 0x74, 0x8c, 0x0e, 0x3e, 0x58, 0x2b,
+ 0xab, 0x5a, 0xc1, 0xb9, 0x38, 0x85, 0x61, 0x76, 0x5f, 0xe0, 0x3c, 0x79, 0x00, 0xb9, 0x28, 0xc5,
+ 0xaa, 0x88, 0xc3, 0x0d, 0xe8, 0xf4, 0x04, 0xe3, 0xfb, 0x42, 0xa2, 0x28, 0x0f, 0xd6, 0x80, 0xd3,
+ 0x13, 0x4c, 0x8a, 0x21, 0x64, 0x13, 0xbb, 0x45, 0x9e, 0xc0, 0xc3, 0xb3, 0x1a, 0x6d, 0xb4, 0xcc,
+ 0x5a, 0xbb, 0xe5, 0x5c, 0x26, 0xe6, 0xaa, 0xc1, 0xa3, 0x24, 0x61, 0xd9, 0x4e, 0xcb, 0x32, 0x6b,
+ 0x6d, 0x8c, 0x36, 0x19, 0x6a, 0x7c, 0xd5, 0x6d, 0x51, 0xa3, 0x81, 0xa5, 0x6d, 0xc6, 0x36, 0x6a,
+ 0x8e, 0xd1, 0xc0, 0xa9, 0xe2, 0x5f, 0x08, 0x64, 0x83, 0xcd, 0xc6, 0x3b, 0xcf, 0xc8, 0x17, 0xa0,
+ 0xba, 0x6c, 0x36, 0x8e, 0x9e, 0x3f, 0xba, 0x24, 0x47, 0x5b, 0x4b, 0xc5, 0xbd, 0xc5, 0x32, 0xd0,
+ 0x7b, 0x71, 0x72, 0x19, 0x53, 0xff, 0xf9, 0x70, 0xc8, 0xff, 0xef, 0x70, 0xa4, 0x3f, 0xee, 0x70,
+ 0xbc, 0x01, 0x35, 0x6e, 0x61, 0xe7, 0x14, 0xee, 0x3f, 0x6c, 0x69, 0xed, 0xc3, 0xfe, 0xf7, 0x3d,
+ 0x16, 0xbf, 0x04, 0x25, 0x82, 0x76, 0x26, 0x7a, 0x0e, 0xe9, 0xd5, 0xa8, 0x79, 0xe3, 0x8f, 0xb6,
+ 0xc2, 0xd5, 0xd8, 0x9c, 0x46, 0x92, 0xe7, 0x65, 0x50, 0xa2, 0x3e, 0xf8, 0xb2, 0x75, 0x2e, 0x4d,
+ 0xa7, 0xf6, 0xaa, 0x67, 0x53, 0xcb, 0xb1, 0x2a, 0x78, 0x6f, 0x13, 0xaa, 0x62, 0x54, 0xff, 0x01,
+ 0xfd, 0x7e, 0xa7, 0xef, 0xbd, 0xbf, 0xd3, 0xd1, 0x87, 0x3b, 0x1d, 0x7d, 0xbf, 0xd0, 0xd1, 0xcf,
+ 0x0b, 0x1d, 0xdd, 0x2e, 0x74, 0xf4, 0xdb, 0x42, 0x47, 0x7f, 0x2c, 0x74, 0xf4, 0xe7, 0x42, 0xdf,
+ 0x7b, 0xcf, 0xf1, 0x77, 0x3a, 0xba, 0x7d, 0xa7, 0x23, 0x78, 0x38, 0xf0, 0xc7, 0x9b, 0x25, 0xd4,
+ 0x55, 0xfe, 0x9f, 0x63, 0x73, 0xcb, 0x46, 0xdf, 0xa4, 0xf9, 0xd1, 0x0a, 0x3e, 0x20, 0xf4, 0x93,
+ 0x94, 0x6a, 0xda, 0xf5, 0x5f, 0x24, 0xbd, 0x19, 0xc9, 0xed, 0x55, 0xc5, 0x2f, 0x5d, 0xcf, 0xbb,
+ 0x60, 0xfe, 0x77, 0x8c, 0xbb, 0x05, 0x57, 0x8a, 0x88, 0x53, 0xfd, 0x3b, 0x00, 0x00, 0xff, 0xff,
+ 0xbc, 0x2a, 0x5e, 0x82, 0x2b, 0x07, 0x00, 0x00,
+}
+
func (this *Type) Compare(that interface{}) int {
if that == nil {
if this == nil {
@@ -2139,7 +2200,7 @@ func (m *Type) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2167,7 +2228,7 @@ func (m *Type) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2177,6 +2238,9 @@ func (m *Type) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthType
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthType
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2196,7 +2260,7 @@ func (m *Type) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2205,6 +2269,9 @@ func (m *Type) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthType
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthType
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2227,7 +2294,7 @@ func (m *Type) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2237,6 +2304,9 @@ func (m *Type) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthType
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthType
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2256,7 +2326,7 @@ func (m *Type) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2265,6 +2335,9 @@ func (m *Type) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthType
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthType
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2287,7 +2360,7 @@ func (m *Type) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2296,6 +2369,9 @@ func (m *Type) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthType
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthType
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2320,7 +2396,7 @@ func (m *Type) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Syntax |= (Syntax(b) & 0x7F) << shift
+ m.Syntax |= Syntax(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2334,6 +2410,9 @@ func (m *Type) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthType
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthType
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2362,7 +2441,7 @@ func (m *Field) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2390,7 +2469,7 @@ func (m *Field) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Kind |= (Field_Kind(b) & 0x7F) << shift
+ m.Kind |= Field_Kind(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2409,7 +2488,7 @@ func (m *Field) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Cardinality |= (Field_Cardinality(b) & 0x7F) << shift
+ m.Cardinality |= Field_Cardinality(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2428,7 +2507,7 @@ func (m *Field) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Number |= (int32(b) & 0x7F) << shift
+ m.Number |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2447,7 +2526,7 @@ func (m *Field) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2457,6 +2536,9 @@ func (m *Field) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthType
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthType
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2476,7 +2558,7 @@ func (m *Field) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2486,6 +2568,9 @@ func (m *Field) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthType
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthType
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2505,7 +2590,7 @@ func (m *Field) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.OneofIndex |= (int32(b) & 0x7F) << shift
+ m.OneofIndex |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2524,7 +2609,7 @@ func (m *Field) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2544,7 +2629,7 @@ func (m *Field) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2553,6 +2638,9 @@ func (m *Field) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthType
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthType
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2575,7 +2663,7 @@ func (m *Field) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2585,6 +2673,9 @@ func (m *Field) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthType
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthType
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2604,7 +2695,7 @@ func (m *Field) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2614,6 +2705,9 @@ func (m *Field) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthType
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthType
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2628,6 +2722,9 @@ func (m *Field) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthType
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthType
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2656,7 +2753,7 @@ func (m *Enum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2684,7 +2781,7 @@ func (m *Enum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2694,6 +2791,9 @@ func (m *Enum) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthType
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthType
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2713,7 +2813,7 @@ func (m *Enum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2722,6 +2822,9 @@ func (m *Enum) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthType
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthType
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2744,7 +2847,7 @@ func (m *Enum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2753,6 +2856,9 @@ func (m *Enum) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthType
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthType
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2775,7 +2881,7 @@ func (m *Enum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2784,6 +2890,9 @@ func (m *Enum) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthType
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthType
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2808,7 +2917,7 @@ func (m *Enum) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Syntax |= (Syntax(b) & 0x7F) << shift
+ m.Syntax |= Syntax(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2822,6 +2931,9 @@ func (m *Enum) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthType
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthType
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2850,7 +2962,7 @@ func (m *EnumValue) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2878,7 +2990,7 @@ func (m *EnumValue) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2888,6 +3000,9 @@ func (m *EnumValue) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthType
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthType
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2907,7 +3022,7 @@ func (m *EnumValue) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Number |= (int32(b) & 0x7F) << shift
+ m.Number |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2926,7 +3041,7 @@ func (m *EnumValue) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2935,6 +3050,9 @@ func (m *EnumValue) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthType
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthType
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2952,6 +3070,9 @@ func (m *EnumValue) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthType
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthType
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2980,7 +3101,7 @@ func (m *Option) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3008,7 +3129,7 @@ func (m *Option) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3018,6 +3139,9 @@ func (m *Option) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthType
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthType
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3037,7 +3161,7 @@ func (m *Option) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= (int(b) & 0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -3046,6 +3170,9 @@ func (m *Option) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthType
}
postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthType
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -3065,6 +3192,9 @@ func (m *Option) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthType
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthType
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -3132,10 +3262,13 @@ func skipType(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthType
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthType
+ }
return iNdEx, nil
case 3:
for {
@@ -3164,6 +3297,9 @@ func skipType(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthType
+ }
}
return iNdEx, nil
case 4:
@@ -3182,62 +3318,3 @@ var (
ErrInvalidLengthType = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowType = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("google/protobuf/type.proto", fileDescriptor_type_0082d870c49329d7) }
-
-var fileDescriptor_type_0082d870c49329d7 = []byte{
- // 840 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xcf, 0x73, 0xda, 0x46,
- 0x14, 0xf6, 0x0a, 0x21, 0xa3, 0x87, 0xc1, 0x9b, 0x4d, 0x26, 0x51, 0x9c, 0x19, 0x95, 0xa1, 0x3d,
- 0x30, 0x39, 0xe0, 0x29, 0x78, 0x3c, 0xbd, 0x82, 0x91, 0x29, 0x63, 0x22, 0xa9, 0x8b, 0x68, 0xe2,
- 0x5e, 0x18, 0x0c, 0x72, 0x86, 0x44, 0xac, 0x18, 0x24, 0x5a, 0x73, 0xeb, 0x4c, 0xcf, 0xfd, 0x27,
- 0x7a, 0xea, 0xf4, 0xdc, 0x3f, 0xc2, 0xc7, 0x1e, 0x7b, 0xac, 0xc9, 0xa5, 0xc7, 0x1c, 0x73, 0x6b,
- 0x67, 0x57, 0x20, 0x8b, 0x1f, 0x9d, 0x49, 0xdb, 0x1b, 0xef, 0xfb, 0xbe, 0xf7, 0x73, 0x9f, 0x1e,
- 0x70, 0xf4, 0xda, 0xf7, 0x5f, 0x7b, 0xee, 0xf1, 0x64, 0xea, 0x87, 0xfe, 0xd5, 0xec, 0xfa, 0x38,
- 0x9c, 0x4f, 0xdc, 0xb2, 0xb0, 0xc8, 0x61, 0xc4, 0x95, 0x57, 0xdc, 0xd1, 0xd3, 0x4d, 0x71, 0x9f,
- 0xcd, 0x23, 0xf6, 0xe8, 0xb3, 0x4d, 0x2a, 0xf0, 0x67, 0xd3, 0x81, 0xdb, 0x1b, 0xf8, 0x2c, 0x74,
- 0x6f, 0xc2, 0x48, 0x55, 0xfc, 0x51, 0x02, 0xd9, 0x99, 0x4f, 0x5c, 0x42, 0x40, 0x66, 0xfd, 0xb1,
- 0xab, 0xa1, 0x02, 0x2a, 0xa9, 0x54, 0xfc, 0x26, 0x65, 0x50, 0xae, 0x47, 0xae, 0x37, 0x0c, 0x34,
- 0xa9, 0x90, 0x2a, 0x65, 0x2b, 0x8f, 0xcb, 0x1b, 0xf9, 0xcb, 0xe7, 0x9c, 0xa6, 0x4b, 0x15, 0x79,
- 0x0c, 0x8a, 0xcf, 0x5c, 0xff, 0x3a, 0xd0, 0x52, 0x85, 0x54, 0x49, 0xa5, 0x4b, 0x8b, 0x7c, 0x0e,
- 0xfb, 0xfe, 0x24, 0x1c, 0xf9, 0x2c, 0xd0, 0x64, 0x11, 0xe8, 0xc9, 0x56, 0x20, 0x4b, 0xf0, 0x74,
- 0xa5, 0x23, 0x06, 0xe4, 0xd7, 0xeb, 0xd5, 0xd2, 0x05, 0x54, 0xca, 0x56, 0xf4, 0x2d, 0xcf, 0x8e,
- 0x90, 0x9d, 0x45, 0x2a, 0x9a, 0x0b, 0x92, 0x26, 0x39, 0x06, 0x25, 0x98, 0xb3, 0xb0, 0x7f, 0xa3,
- 0x29, 0x05, 0x54, 0xca, 0xef, 0x48, 0xdc, 0x11, 0x34, 0x5d, 0xca, 0x8a, 0xbf, 0x2a, 0x90, 0x16,
- 0x4d, 0x91, 0x63, 0x90, 0xdf, 0x8e, 0xd8, 0x50, 0x0c, 0x24, 0x5f, 0x79, 0xb6, 0xbb, 0xf5, 0xf2,
- 0xc5, 0x88, 0x0d, 0xa9, 0x10, 0x92, 0x06, 0x64, 0x07, 0xfd, 0xe9, 0x70, 0xc4, 0xfa, 0xde, 0x28,
- 0x9c, 0x6b, 0x92, 0xf0, 0x2b, 0xfe, 0x83, 0xdf, 0xd9, 0xbd, 0x92, 0x26, 0xdd, 0xf8, 0x0c, 0xd9,
- 0x6c, 0x7c, 0xe5, 0x4e, 0xb5, 0x54, 0x01, 0x95, 0xd2, 0x74, 0x69, 0xc5, 0xef, 0x23, 0x27, 0xde,
- 0xe7, 0x29, 0x64, 0xf8, 0x72, 0xf4, 0x66, 0x53, 0x4f, 0xf4, 0xa7, 0xd2, 0x7d, 0x6e, 0x77, 0xa7,
- 0x1e, 0xf9, 0x04, 0xb2, 0x62, 0xf8, 0xbd, 0x11, 0x1b, 0xba, 0x37, 0xda, 0xbe, 0x88, 0x05, 0x02,
- 0x6a, 0x71, 0x84, 0xe7, 0x99, 0xf4, 0x07, 0x6f, 0xdd, 0xa1, 0x96, 0x29, 0xa0, 0x52, 0x86, 0x2e,
- 0xad, 0xe4, 0x5b, 0xa9, 0x1f, 0xf9, 0x56, 0xcf, 0x40, 0x7d, 0x13, 0xf8, 0xac, 0x27, 0xea, 0x03,
- 0x51, 0x47, 0x86, 0x03, 0x26, 0xaf, 0xf1, 0x53, 0xc8, 0x0d, 0xdd, 0xeb, 0xfe, 0xcc, 0x0b, 0x7b,
- 0xdf, 0xf6, 0xbd, 0x99, 0xab, 0x65, 0x85, 0xe0, 0x60, 0x09, 0x7e, 0xcd, 0xb1, 0xe2, 0xad, 0x04,
- 0x32, 0x9f, 0x24, 0xc1, 0x70, 0xe0, 0x5c, 0xda, 0x46, 0xaf, 0x6b, 0x5e, 0x98, 0xd6, 0x4b, 0x13,
- 0xef, 0x91, 0x43, 0xc8, 0x0a, 0xa4, 0x61, 0x75, 0xeb, 0x6d, 0x03, 0x23, 0x92, 0x07, 0x10, 0xc0,
- 0x79, 0xdb, 0xaa, 0x39, 0x58, 0x8a, 0xed, 0x96, 0xe9, 0x9c, 0x9e, 0xe0, 0x54, 0xec, 0xd0, 0x8d,
- 0x00, 0x39, 0x29, 0xa8, 0x56, 0x70, 0x3a, 0xce, 0x71, 0xde, 0x7a, 0x65, 0x34, 0x4e, 0x4f, 0xb0,
- 0xb2, 0x8e, 0x54, 0x2b, 0x78, 0x9f, 0xe4, 0x40, 0x15, 0x48, 0xdd, 0xb2, 0xda, 0x38, 0x13, 0xc7,
- 0xec, 0x38, 0xb4, 0x65, 0x36, 0xb1, 0x1a, 0xc7, 0x6c, 0x52, 0xab, 0x6b, 0x63, 0x88, 0x23, 0xbc,
- 0x30, 0x3a, 0x9d, 0x5a, 0xd3, 0xc0, 0xd9, 0x58, 0x51, 0xbf, 0x74, 0x8c, 0x0e, 0x3e, 0x58, 0x2b,
- 0xab, 0x5a, 0xc1, 0xb9, 0x38, 0x85, 0x61, 0x76, 0x5f, 0xe0, 0x3c, 0x79, 0x00, 0xb9, 0x28, 0xc5,
- 0xaa, 0x88, 0xc3, 0x0d, 0xe8, 0xf4, 0x04, 0xe3, 0xfb, 0x42, 0xa2, 0x28, 0x0f, 0xd6, 0x80, 0xd3,
- 0x13, 0x4c, 0x8a, 0x21, 0x64, 0x13, 0xbb, 0x45, 0x9e, 0xc0, 0xc3, 0xb3, 0x1a, 0x6d, 0xb4, 0xcc,
- 0x5a, 0xbb, 0xe5, 0x5c, 0x26, 0xe6, 0xaa, 0xc1, 0xa3, 0x24, 0x61, 0xd9, 0x4e, 0xcb, 0x32, 0x6b,
- 0x6d, 0x8c, 0x36, 0x19, 0x6a, 0x7c, 0xd5, 0x6d, 0x51, 0xa3, 0x81, 0xa5, 0x6d, 0xc6, 0x36, 0x6a,
- 0x8e, 0xd1, 0xc0, 0xa9, 0xe2, 0x5f, 0x08, 0x64, 0x83, 0xcd, 0xc6, 0x3b, 0xcf, 0xc8, 0x17, 0xa0,
- 0xba, 0x6c, 0x36, 0x8e, 0x9e, 0x3f, 0xba, 0x24, 0x47, 0x5b, 0x4b, 0xc5, 0xbd, 0xc5, 0x32, 0xd0,
- 0x7b, 0x71, 0x72, 0x19, 0x53, 0xff, 0xf9, 0x70, 0xc8, 0xff, 0xef, 0x70, 0xa4, 0x3f, 0xee, 0x70,
- 0xbc, 0x01, 0x35, 0x6e, 0x61, 0xe7, 0x14, 0xee, 0x3f, 0x6c, 0x69, 0xed, 0xc3, 0xfe, 0xf7, 0x3d,
- 0x16, 0xbf, 0x04, 0x25, 0x82, 0x76, 0x26, 0x7a, 0x0e, 0xe9, 0xd5, 0xa8, 0x79, 0xe3, 0x8f, 0xb6,
- 0xc2, 0xd5, 0xd8, 0x9c, 0x46, 0x92, 0xe7, 0x65, 0x50, 0xa2, 0x3e, 0xf8, 0xb2, 0x75, 0x2e, 0x4d,
- 0xa7, 0xf6, 0xaa, 0x67, 0x53, 0xcb, 0xb1, 0x2a, 0x78, 0x6f, 0x13, 0xaa, 0x62, 0x54, 0xff, 0x01,
- 0xfd, 0x7e, 0xa7, 0xef, 0xbd, 0xbf, 0xd3, 0xd1, 0x87, 0x3b, 0x1d, 0x7d, 0xbf, 0xd0, 0xd1, 0xcf,
- 0x0b, 0x1d, 0xdd, 0x2e, 0x74, 0xf4, 0xdb, 0x42, 0x47, 0x7f, 0x2c, 0x74, 0xf4, 0xe7, 0x42, 0xdf,
- 0x7b, 0xcf, 0xf1, 0x77, 0x3a, 0xba, 0x7d, 0xa7, 0x23, 0x78, 0x38, 0xf0, 0xc7, 0x9b, 0x25, 0xd4,
- 0x55, 0xfe, 0x9f, 0x63, 0x73, 0xcb, 0x46, 0xdf, 0xa4, 0xf9, 0xd1, 0x0a, 0x3e, 0x20, 0xf4, 0x93,
- 0x94, 0x6a, 0xda, 0xf5, 0x5f, 0x24, 0xbd, 0x19, 0xc9, 0xed, 0x55, 0xc5, 0x2f, 0x5d, 0xcf, 0xbb,
- 0x60, 0xfe, 0x77, 0x8c, 0xbb, 0x05, 0x57, 0x8a, 0x88, 0x53, 0xfd, 0x3b, 0x00, 0x00, 0xff, 0xff,
- 0xbc, 0x2a, 0x5e, 0x82, 0x2b, 0x07, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/types/wrappers.pb.go b/vendor/github.com/gogo/protobuf/types/wrappers.pb.go
index 7516cc9896..5ade933ef5 100644
--- a/vendor/github.com/gogo/protobuf/types/wrappers.pb.go
+++ b/vendor/github.com/gogo/protobuf/types/wrappers.pb.go
@@ -3,18 +3,16 @@
package types
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import bytes "bytes"
-
-import strings "strings"
-import reflect "reflect"
-
-import encoding_binary "encoding/binary"
-
-import io "io"
+import (
+ bytes "bytes"
+ encoding_binary "encoding/binary"
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -41,7 +39,7 @@ type DoubleValue struct {
func (m *DoubleValue) Reset() { *m = DoubleValue{} }
func (*DoubleValue) ProtoMessage() {}
func (*DoubleValue) Descriptor() ([]byte, []int) {
- return fileDescriptor_wrappers_c5239a825c7dfb53, []int{0}
+ return fileDescriptor_5377b62bda767935, []int{0}
}
func (*DoubleValue) XXX_WellKnownType() string { return "DoubleValue" }
func (m *DoubleValue) XXX_Unmarshal(b []byte) error {
@@ -59,8 +57,8 @@ func (m *DoubleValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *DoubleValue) XXX_Merge(src proto.Message) {
- xxx_messageInfo_DoubleValue.Merge(dst, src)
+func (m *DoubleValue) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DoubleValue.Merge(m, src)
}
func (m *DoubleValue) XXX_Size() int {
return m.Size()
@@ -96,7 +94,7 @@ type FloatValue struct {
func (m *FloatValue) Reset() { *m = FloatValue{} }
func (*FloatValue) ProtoMessage() {}
func (*FloatValue) Descriptor() ([]byte, []int) {
- return fileDescriptor_wrappers_c5239a825c7dfb53, []int{1}
+ return fileDescriptor_5377b62bda767935, []int{1}
}
func (*FloatValue) XXX_WellKnownType() string { return "FloatValue" }
func (m *FloatValue) XXX_Unmarshal(b []byte) error {
@@ -114,8 +112,8 @@ func (m *FloatValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *FloatValue) XXX_Merge(src proto.Message) {
- xxx_messageInfo_FloatValue.Merge(dst, src)
+func (m *FloatValue) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_FloatValue.Merge(m, src)
}
func (m *FloatValue) XXX_Size() int {
return m.Size()
@@ -151,7 +149,7 @@ type Int64Value struct {
func (m *Int64Value) Reset() { *m = Int64Value{} }
func (*Int64Value) ProtoMessage() {}
func (*Int64Value) Descriptor() ([]byte, []int) {
- return fileDescriptor_wrappers_c5239a825c7dfb53, []int{2}
+ return fileDescriptor_5377b62bda767935, []int{2}
}
func (*Int64Value) XXX_WellKnownType() string { return "Int64Value" }
func (m *Int64Value) XXX_Unmarshal(b []byte) error {
@@ -169,8 +167,8 @@ func (m *Int64Value) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Int64Value) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Int64Value.Merge(dst, src)
+func (m *Int64Value) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Int64Value.Merge(m, src)
}
func (m *Int64Value) XXX_Size() int {
return m.Size()
@@ -206,7 +204,7 @@ type UInt64Value struct {
func (m *UInt64Value) Reset() { *m = UInt64Value{} }
func (*UInt64Value) ProtoMessage() {}
func (*UInt64Value) Descriptor() ([]byte, []int) {
- return fileDescriptor_wrappers_c5239a825c7dfb53, []int{3}
+ return fileDescriptor_5377b62bda767935, []int{3}
}
func (*UInt64Value) XXX_WellKnownType() string { return "UInt64Value" }
func (m *UInt64Value) XXX_Unmarshal(b []byte) error {
@@ -224,8 +222,8 @@ func (m *UInt64Value) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *UInt64Value) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UInt64Value.Merge(dst, src)
+func (m *UInt64Value) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UInt64Value.Merge(m, src)
}
func (m *UInt64Value) XXX_Size() int {
return m.Size()
@@ -261,7 +259,7 @@ type Int32Value struct {
func (m *Int32Value) Reset() { *m = Int32Value{} }
func (*Int32Value) ProtoMessage() {}
func (*Int32Value) Descriptor() ([]byte, []int) {
- return fileDescriptor_wrappers_c5239a825c7dfb53, []int{4}
+ return fileDescriptor_5377b62bda767935, []int{4}
}
func (*Int32Value) XXX_WellKnownType() string { return "Int32Value" }
func (m *Int32Value) XXX_Unmarshal(b []byte) error {
@@ -279,8 +277,8 @@ func (m *Int32Value) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Int32Value) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Int32Value.Merge(dst, src)
+func (m *Int32Value) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Int32Value.Merge(m, src)
}
func (m *Int32Value) XXX_Size() int {
return m.Size()
@@ -316,7 +314,7 @@ type UInt32Value struct {
func (m *UInt32Value) Reset() { *m = UInt32Value{} }
func (*UInt32Value) ProtoMessage() {}
func (*UInt32Value) Descriptor() ([]byte, []int) {
- return fileDescriptor_wrappers_c5239a825c7dfb53, []int{5}
+ return fileDescriptor_5377b62bda767935, []int{5}
}
func (*UInt32Value) XXX_WellKnownType() string { return "UInt32Value" }
func (m *UInt32Value) XXX_Unmarshal(b []byte) error {
@@ -334,8 +332,8 @@ func (m *UInt32Value) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *UInt32Value) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UInt32Value.Merge(dst, src)
+func (m *UInt32Value) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UInt32Value.Merge(m, src)
}
func (m *UInt32Value) XXX_Size() int {
return m.Size()
@@ -371,7 +369,7 @@ type BoolValue struct {
func (m *BoolValue) Reset() { *m = BoolValue{} }
func (*BoolValue) ProtoMessage() {}
func (*BoolValue) Descriptor() ([]byte, []int) {
- return fileDescriptor_wrappers_c5239a825c7dfb53, []int{6}
+ return fileDescriptor_5377b62bda767935, []int{6}
}
func (*BoolValue) XXX_WellKnownType() string { return "BoolValue" }
func (m *BoolValue) XXX_Unmarshal(b []byte) error {
@@ -389,8 +387,8 @@ func (m *BoolValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *BoolValue) XXX_Merge(src proto.Message) {
- xxx_messageInfo_BoolValue.Merge(dst, src)
+func (m *BoolValue) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BoolValue.Merge(m, src)
}
func (m *BoolValue) XXX_Size() int {
return m.Size()
@@ -426,7 +424,7 @@ type StringValue struct {
func (m *StringValue) Reset() { *m = StringValue{} }
func (*StringValue) ProtoMessage() {}
func (*StringValue) Descriptor() ([]byte, []int) {
- return fileDescriptor_wrappers_c5239a825c7dfb53, []int{7}
+ return fileDescriptor_5377b62bda767935, []int{7}
}
func (*StringValue) XXX_WellKnownType() string { return "StringValue" }
func (m *StringValue) XXX_Unmarshal(b []byte) error {
@@ -444,8 +442,8 @@ func (m *StringValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
return b[:n], nil
}
}
-func (dst *StringValue) XXX_Merge(src proto.Message) {
- xxx_messageInfo_StringValue.Merge(dst, src)
+func (m *StringValue) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StringValue.Merge(m, src)
}
func (m *StringValue) XXX_Size() int {
return m.Size()
@@ -481,7 +479,7 @@ type BytesValue struct {
func (m *BytesValue) Reset() { *m = BytesValue{} }
func (*BytesValue) ProtoMessage() {}
func (*BytesValue) Descriptor() ([]byte, []int) {
- return fileDescriptor_wrappers_c5239a825c7dfb53, []int{8}
+ return fileDescriptor_5377b62bda767935, []int{8}
}
func (*BytesValue) XXX_WellKnownType() string { return "BytesValue" }
func (m *BytesValue) XXX_Unmarshal(b []byte) error {
@@ -499,8 +497,8 @@ func (m *BytesValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *BytesValue) XXX_Merge(src proto.Message) {
- xxx_messageInfo_BytesValue.Merge(dst, src)
+func (m *BytesValue) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BytesValue.Merge(m, src)
}
func (m *BytesValue) XXX_Size() int {
return m.Size()
@@ -532,6 +530,31 @@ func init() {
proto.RegisterType((*StringValue)(nil), "google.protobuf.StringValue")
proto.RegisterType((*BytesValue)(nil), "google.protobuf.BytesValue")
}
+
+func init() { proto.RegisterFile("google/protobuf/wrappers.proto", fileDescriptor_5377b62bda767935) }
+
+var fileDescriptor_5377b62bda767935 = []byte{
+ // 285 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4b, 0xcf, 0xcf, 0x4f,
+ 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0x2f, 0x4a, 0x2c,
+ 0x28, 0x48, 0x2d, 0x2a, 0xd6, 0x03, 0x8b, 0x08, 0xf1, 0x43, 0xe4, 0xf5, 0x60, 0xf2, 0x4a, 0xca,
+ 0x5c, 0xdc, 0x2e, 0xf9, 0xa5, 0x49, 0x39, 0xa9, 0x61, 0x89, 0x39, 0xa5, 0xa9, 0x42, 0x22, 0x5c,
+ 0xac, 0x65, 0x20, 0x86, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x63, 0x10, 0x84, 0xa3, 0xa4, 0xc4, 0xc5,
+ 0xe5, 0x96, 0x93, 0x9f, 0x58, 0x82, 0x45, 0x0d, 0x13, 0x92, 0x1a, 0xcf, 0xbc, 0x12, 0x33, 0x13,
+ 0x2c, 0x6a, 0x98, 0x61, 0x6a, 0x94, 0xb9, 0xb8, 0x43, 0x71, 0x29, 0x62, 0x41, 0x35, 0xc8, 0xd8,
+ 0x08, 0x8b, 0x1a, 0x56, 0x34, 0x83, 0xb0, 0x2a, 0xe2, 0x85, 0x29, 0x52, 0xe4, 0xe2, 0x74, 0xca,
+ 0xcf, 0xcf, 0xc1, 0xa2, 0x84, 0x03, 0xc9, 0x9c, 0xe0, 0x92, 0xa2, 0xcc, 0xbc, 0x74, 0x2c, 0x8a,
+ 0x38, 0x91, 0x1c, 0xe4, 0x54, 0x59, 0x92, 0x5a, 0x8c, 0x45, 0x0d, 0x0f, 0x54, 0x8d, 0x53, 0x3b,
+ 0xe3, 0x8d, 0x87, 0x72, 0x0c, 0x1f, 0x1e, 0xca, 0x31, 0xfe, 0x78, 0x28, 0xc7, 0xd8, 0xf0, 0x48,
+ 0x8e, 0x71, 0xc5, 0x23, 0x39, 0xc6, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0,
+ 0x48, 0x8e, 0xf1, 0xc5, 0x23, 0x39, 0x86, 0x0f, 0x20, 0xf1, 0xc7, 0x72, 0x8c, 0x27, 0x1e, 0xcb,
+ 0x31, 0x72, 0x09, 0x27, 0xe7, 0xe7, 0xea, 0xa1, 0x45, 0x87, 0x13, 0x6f, 0x38, 0x34, 0xbe, 0x02,
+ 0x40, 0x22, 0x01, 0x8c, 0x51, 0xac, 0x25, 0x95, 0x05, 0xa9, 0xc5, 0x3f, 0x18, 0x19, 0x17, 0x31,
+ 0x31, 0xbb, 0x07, 0x38, 0xad, 0x62, 0x92, 0x73, 0x87, 0x68, 0x09, 0x80, 0x6a, 0xd1, 0x0b, 0x4f,
+ 0xcd, 0xc9, 0xf1, 0xce, 0xcb, 0x2f, 0xcf, 0x0b, 0x01, 0xa9, 0x4c, 0x62, 0x03, 0x9b, 0x65, 0x0c,
+ 0x08, 0x00, 0x00, 0xff, 0xff, 0x31, 0x55, 0x64, 0x90, 0x0a, 0x02, 0x00, 0x00,
+}
+
func (this *DoubleValue) Compare(that interface{}) int {
if that == nil {
if this == nil {
@@ -1914,7 +1937,7 @@ func (m *DoubleValue) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1948,6 +1971,9 @@ func (m *DoubleValue) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthWrappers
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthWrappers
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -1976,7 +2002,7 @@ func (m *FloatValue) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2010,6 +2036,9 @@ func (m *FloatValue) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthWrappers
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthWrappers
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2038,7 +2067,7 @@ func (m *Int64Value) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2066,7 +2095,7 @@ func (m *Int64Value) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Value |= (int64(b) & 0x7F) << shift
+ m.Value |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2080,6 +2109,9 @@ func (m *Int64Value) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthWrappers
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthWrappers
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2108,7 +2140,7 @@ func (m *UInt64Value) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2136,7 +2168,7 @@ func (m *UInt64Value) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Value |= (uint64(b) & 0x7F) << shift
+ m.Value |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2150,6 +2182,9 @@ func (m *UInt64Value) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthWrappers
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthWrappers
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2178,7 +2213,7 @@ func (m *Int32Value) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2206,7 +2241,7 @@ func (m *Int32Value) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Value |= (int32(b) & 0x7F) << shift
+ m.Value |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2220,6 +2255,9 @@ func (m *Int32Value) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthWrappers
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthWrappers
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2248,7 +2286,7 @@ func (m *UInt32Value) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2276,7 +2314,7 @@ func (m *UInt32Value) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Value |= (uint32(b) & 0x7F) << shift
+ m.Value |= uint32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2290,6 +2328,9 @@ func (m *UInt32Value) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthWrappers
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthWrappers
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2318,7 +2359,7 @@ func (m *BoolValue) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2346,7 +2387,7 @@ func (m *BoolValue) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int(b) & 0x7F) << shift
+ v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2361,6 +2402,9 @@ func (m *BoolValue) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthWrappers
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthWrappers
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2389,7 +2433,7 @@ func (m *StringValue) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2417,7 +2461,7 @@ func (m *StringValue) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2427,6 +2471,9 @@ func (m *StringValue) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthWrappers
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthWrappers
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2441,6 +2488,9 @@ func (m *StringValue) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthWrappers
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthWrappers
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2469,7 +2519,7 @@ func (m *BytesValue) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2497,7 +2547,7 @@ func (m *BytesValue) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- byteLen |= (int(b) & 0x7F) << shift
+ byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2506,6 +2556,9 @@ func (m *BytesValue) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthWrappers
}
postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthWrappers
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -2523,6 +2576,9 @@ func (m *BytesValue) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthWrappers
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthWrappers
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -2590,10 +2646,13 @@ func skipWrappers(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthWrappers
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthWrappers
+ }
return iNdEx, nil
case 3:
for {
@@ -2622,6 +2681,9 @@ func skipWrappers(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthWrappers
+ }
}
return iNdEx, nil
case 4:
@@ -2640,29 +2702,3 @@ var (
ErrInvalidLengthWrappers = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowWrappers = fmt.Errorf("proto: integer overflow")
)
-
-func init() {
- proto.RegisterFile("google/protobuf/wrappers.proto", fileDescriptor_wrappers_c5239a825c7dfb53)
-}
-
-var fileDescriptor_wrappers_c5239a825c7dfb53 = []byte{
- // 285 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4b, 0xcf, 0xcf, 0x4f,
- 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0x2f, 0x4a, 0x2c,
- 0x28, 0x48, 0x2d, 0x2a, 0xd6, 0x03, 0x8b, 0x08, 0xf1, 0x43, 0xe4, 0xf5, 0x60, 0xf2, 0x4a, 0xca,
- 0x5c, 0xdc, 0x2e, 0xf9, 0xa5, 0x49, 0x39, 0xa9, 0x61, 0x89, 0x39, 0xa5, 0xa9, 0x42, 0x22, 0x5c,
- 0xac, 0x65, 0x20, 0x86, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x63, 0x10, 0x84, 0xa3, 0xa4, 0xc4, 0xc5,
- 0xe5, 0x96, 0x93, 0x9f, 0x58, 0x82, 0x45, 0x0d, 0x13, 0x92, 0x1a, 0xcf, 0xbc, 0x12, 0x33, 0x13,
- 0x2c, 0x6a, 0x98, 0x61, 0x6a, 0x94, 0xb9, 0xb8, 0x43, 0x71, 0x29, 0x62, 0x41, 0x35, 0xc8, 0xd8,
- 0x08, 0x8b, 0x1a, 0x56, 0x34, 0x83, 0xb0, 0x2a, 0xe2, 0x85, 0x29, 0x52, 0xe4, 0xe2, 0x74, 0xca,
- 0xcf, 0xcf, 0xc1, 0xa2, 0x84, 0x03, 0xc9, 0x9c, 0xe0, 0x92, 0xa2, 0xcc, 0xbc, 0x74, 0x2c, 0x8a,
- 0x38, 0x91, 0x1c, 0xe4, 0x54, 0x59, 0x92, 0x5a, 0x8c, 0x45, 0x0d, 0x0f, 0x54, 0x8d, 0x53, 0x3b,
- 0xe3, 0x8d, 0x87, 0x72, 0x0c, 0x1f, 0x1e, 0xca, 0x31, 0xfe, 0x78, 0x28, 0xc7, 0xd8, 0xf0, 0x48,
- 0x8e, 0x71, 0xc5, 0x23, 0x39, 0xc6, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0,
- 0x48, 0x8e, 0xf1, 0xc5, 0x23, 0x39, 0x86, 0x0f, 0x20, 0xf1, 0xc7, 0x72, 0x8c, 0x27, 0x1e, 0xcb,
- 0x31, 0x72, 0x09, 0x27, 0xe7, 0xe7, 0xea, 0xa1, 0x45, 0x87, 0x13, 0x6f, 0x38, 0x34, 0xbe, 0x02,
- 0x40, 0x22, 0x01, 0x8c, 0x51, 0xac, 0x25, 0x95, 0x05, 0xa9, 0xc5, 0x3f, 0x18, 0x19, 0x17, 0x31,
- 0x31, 0xbb, 0x07, 0x38, 0xad, 0x62, 0x92, 0x73, 0x87, 0x68, 0x09, 0x80, 0x6a, 0xd1, 0x0b, 0x4f,
- 0xcd, 0xc9, 0xf1, 0xce, 0xcb, 0x2f, 0xcf, 0x0b, 0x01, 0xa9, 0x4c, 0x62, 0x03, 0x9b, 0x65, 0x0c,
- 0x08, 0x00, 0x00, 0xff, 0xff, 0x31, 0x55, 0x64, 0x90, 0x0a, 0x02, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/vanity/test/fast/gogovanity.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/fast/gogovanity.pb.go
index 7905481d1b..2183b231ae 100644
--- a/vendor/github.com/gogo/protobuf/vanity/test/fast/gogovanity.pb.go
+++ b/vendor/github.com/gogo/protobuf/vanity/test/fast/gogovanity.pb.go
@@ -3,12 +3,13 @@
package vanity
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import io "io"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -34,7 +35,7 @@ func (m *B) Reset() { *m = B{} }
func (m *B) String() string { return proto.CompactTextString(m) }
func (*B) ProtoMessage() {}
func (*B) Descriptor() ([]byte, []int) {
- return fileDescriptor_gogovanity_77d0a6938d93e1f7, []int{0}
+ return fileDescriptor_f8c9b51615339d8e, []int{0}
}
func (m *B) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -51,8 +52,8 @@ func (m *B) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *B) XXX_Merge(src proto.Message) {
- xxx_messageInfo_B.Merge(dst, src)
+func (m *B) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_B.Merge(m, src)
}
func (m *B) XXX_Size() int {
return m.Size()
@@ -89,6 +90,23 @@ func (m *B) GetInt32() int32 {
func init() {
proto.RegisterType((*B)(nil), "vanity.B")
}
+
+func init() { proto.RegisterFile("gogovanity.proto", fileDescriptor_f8c9b51615339d8e) }
+
+var fileDescriptor_f8c9b51615339d8e = []byte{
+ // 157 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x48, 0xcf, 0x4f, 0xcf,
+ 0x2f, 0x4b, 0xcc, 0xcb, 0x2c, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0,
+ 0xa4, 0x74, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0x41, 0x8a, 0xf4,
+ 0xc1, 0xd2, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0xb4, 0x29, 0x05, 0x73, 0x31,
+ 0x3a, 0x09, 0xc9, 0x70, 0xb1, 0x05, 0x97, 0x14, 0x65, 0xe6, 0xa5, 0x4b, 0x30, 0x2a, 0x30, 0x6a,
+ 0x70, 0x3a, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, 0x18, 0x04, 0x15, 0x13, 0x12, 0xe1, 0x62, 0xf5, 0xcc,
+ 0x2b, 0x31, 0x33, 0x91, 0x60, 0x52, 0x60, 0xd4, 0x60, 0x0e, 0x82, 0x70, 0x84, 0xa4, 0xc0, 0xa2,
+ 0xc6, 0x46, 0x12, 0xcc, 0x0a, 0x8c, 0x1a, 0xac, 0x56, 0x2c, 0x86, 0x46, 0xc6, 0x26, 0x41, 0x10,
+ 0x21, 0x27, 0x9e, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0x11,
+ 0x10, 0x00, 0x00, 0xff, 0xff, 0x35, 0x73, 0x31, 0x4a, 0xac, 0x00, 0x00, 0x00,
+}
+
func (m *B) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -185,7 +203,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -213,7 +231,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -223,6 +241,9 @@ func (m *B) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthGogovanity
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGogovanity
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -243,7 +264,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -263,7 +284,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -278,6 +299,9 @@ func (m *B) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthGogovanity
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthGogovanity
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -345,10 +369,13 @@ func skipGogovanity(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthGogovanity
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthGogovanity
+ }
return iNdEx, nil
case 3:
for {
@@ -377,6 +404,9 @@ func skipGogovanity(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthGogovanity
+ }
}
return iNdEx, nil
case 4:
@@ -395,19 +425,3 @@ var (
ErrInvalidLengthGogovanity = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowGogovanity = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("gogovanity.proto", fileDescriptor_gogovanity_77d0a6938d93e1f7) }
-
-var fileDescriptor_gogovanity_77d0a6938d93e1f7 = []byte{
- // 157 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x48, 0xcf, 0x4f, 0xcf,
- 0x2f, 0x4b, 0xcc, 0xcb, 0x2c, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0,
- 0xa4, 0x74, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0x41, 0x8a, 0xf4,
- 0xc1, 0xd2, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0xb4, 0x29, 0x05, 0x73, 0x31,
- 0x3a, 0x09, 0xc9, 0x70, 0xb1, 0x05, 0x97, 0x14, 0x65, 0xe6, 0xa5, 0x4b, 0x30, 0x2a, 0x30, 0x6a,
- 0x70, 0x3a, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, 0x18, 0x04, 0x15, 0x13, 0x12, 0xe1, 0x62, 0xf5, 0xcc,
- 0x2b, 0x31, 0x33, 0x91, 0x60, 0x52, 0x60, 0xd4, 0x60, 0x0e, 0x82, 0x70, 0x84, 0xa4, 0xc0, 0xa2,
- 0xc6, 0x46, 0x12, 0xcc, 0x0a, 0x8c, 0x1a, 0xac, 0x56, 0x2c, 0x86, 0x46, 0xc6, 0x26, 0x41, 0x10,
- 0x21, 0x27, 0x9e, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0x11,
- 0x10, 0x00, 0x00, 0xff, 0xff, 0x35, 0x73, 0x31, 0x4a, 0xac, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/vanity/test/fast/proto3.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/fast/proto3.pb.go
index 80cc850f5e..b7a656122e 100644
--- a/vendor/github.com/gogo/protobuf/vanity/test/fast/proto3.pb.go
+++ b/vendor/github.com/gogo/protobuf/vanity/test/fast/proto3.pb.go
@@ -3,11 +3,12 @@
package vanity
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import io "io"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -31,7 +32,7 @@ func (m *Aproto3) Reset() { *m = Aproto3{} }
func (m *Aproto3) String() string { return proto.CompactTextString(m) }
func (*Aproto3) ProtoMessage() {}
func (*Aproto3) Descriptor() ([]byte, []int) {
- return fileDescriptor_proto3_7d4345ceecd7203e, []int{0}
+ return fileDescriptor_4fee6d65e34a64b6, []int{0}
}
func (m *Aproto3) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -48,8 +49,8 @@ func (m *Aproto3) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Aproto3) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Aproto3.Merge(dst, src)
+func (m *Aproto3) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Aproto3.Merge(m, src)
}
func (m *Aproto3) XXX_Size() int {
return m.Size()
@@ -70,6 +71,19 @@ func (m *Aproto3) GetB() string {
func init() {
proto.RegisterType((*Aproto3)(nil), "vanity.Aproto3")
}
+
+func init() { proto.RegisterFile("proto3.proto", fileDescriptor_4fee6d65e34a64b6) }
+
+var fileDescriptor_4fee6d65e34a64b6 = []byte{
+ // 82 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x28, 0xca, 0x2f,
+ 0xc9, 0x37, 0xd6, 0x03, 0x53, 0x42, 0x6c, 0x65, 0x89, 0x79, 0x99, 0x25, 0x95, 0x4a, 0xe2, 0x5c,
+ 0xec, 0x8e, 0x10, 0x09, 0x21, 0x1e, 0x2e, 0x46, 0x27, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20,
+ 0x46, 0x27, 0x27, 0x9e, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e,
+ 0x31, 0x89, 0x0d, 0xa2, 0x06, 0x10, 0x00, 0x00, 0xff, 0xff, 0x97, 0x18, 0x92, 0x84, 0x45, 0x00,
+ 0x00, 0x00,
+}
+
func (m *Aproto3) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -150,7 +164,7 @@ func (m *Aproto3) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -178,7 +192,7 @@ func (m *Aproto3) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -188,6 +202,9 @@ func (m *Aproto3) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthProto3
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthProto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -202,6 +219,9 @@ func (m *Aproto3) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthProto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthProto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -269,10 +289,13 @@ func skipProto3(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthProto3
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthProto3
+ }
return iNdEx, nil
case 3:
for {
@@ -301,6 +324,9 @@ func skipProto3(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthProto3
+ }
}
return iNdEx, nil
case 4:
@@ -319,15 +345,3 @@ var (
ErrInvalidLengthProto3 = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowProto3 = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("proto3.proto", fileDescriptor_proto3_7d4345ceecd7203e) }
-
-var fileDescriptor_proto3_7d4345ceecd7203e = []byte{
- // 82 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x28, 0xca, 0x2f,
- 0xc9, 0x37, 0xd6, 0x03, 0x53, 0x42, 0x6c, 0x65, 0x89, 0x79, 0x99, 0x25, 0x95, 0x4a, 0xe2, 0x5c,
- 0xec, 0x8e, 0x10, 0x09, 0x21, 0x1e, 0x2e, 0x46, 0x27, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20,
- 0x46, 0x27, 0x27, 0x9e, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e,
- 0x31, 0x89, 0x0d, 0xa2, 0x06, 0x10, 0x00, 0x00, 0xff, 0xff, 0x97, 0x18, 0x92, 0x84, 0x45, 0x00,
- 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/vanity/test/fast/vanity.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/fast/vanity.pb.go
index 8d4381d268..ed94d8f96e 100644
--- a/vendor/github.com/gogo/protobuf/vanity/test/fast/vanity.pb.go
+++ b/vendor/github.com/gogo/protobuf/vanity/test/fast/vanity.pb.go
@@ -3,13 +3,13 @@
package vanity
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
-
-import io "io"
+import (
+ fmt "fmt"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -34,7 +34,7 @@ func (m *A) Reset() { *m = A{} }
func (m *A) String() string { return proto.CompactTextString(m) }
func (*A) ProtoMessage() {}
func (*A) Descriptor() ([]byte, []int) {
- return fileDescriptor_vanity_62f5a5ee00b3fc23, []int{0}
+ return fileDescriptor_d4f40d14cd1329d6, []int{0}
}
func (m *A) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -51,8 +51,8 @@ func (m *A) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *A) XXX_Merge(src proto.Message) {
- xxx_messageInfo_A.Merge(dst, src)
+func (m *A) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_A.Merge(m, src)
}
func (m *A) XXX_Size() int {
return m.Size()
@@ -80,6 +80,20 @@ func (m *A) GetInt() int64 {
func init() {
proto.RegisterType((*A)(nil), "vanity.A")
}
+
+func init() { proto.RegisterFile("vanity.proto", fileDescriptor_d4f40d14cd1329d6) }
+
+var fileDescriptor_d4f40d14cd1329d6 = []byte{
+ // 97 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x4b, 0xcc, 0xcb,
+ 0x2c, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0, 0x94, 0xf4, 0xb9, 0x18,
+ 0x1d, 0x85, 0x24, 0xb8, 0xd8, 0x83, 0x4b, 0x8a, 0x32, 0xf3, 0xd2, 0x8b, 0x25, 0x18, 0x15, 0x18,
+ 0x35, 0x38, 0x83, 0x60, 0x5c, 0x21, 0x01, 0x2e, 0x66, 0xcf, 0xbc, 0x12, 0x09, 0x26, 0x05, 0x26,
+ 0x0d, 0xe6, 0x20, 0x10, 0xd3, 0x89, 0xe7, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f,
+ 0x3c, 0x92, 0x63, 0x04, 0x04, 0x00, 0x00, 0xff, 0xff, 0x2f, 0x7a, 0xd7, 0x63, 0x55, 0x00, 0x00,
+ 0x00,
+}
+
func (m *A) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -171,7 +185,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -199,7 +213,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -209,6 +223,9 @@ func (m *A) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthVanity
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthVanity
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -229,7 +246,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int64(b) & 0x7F) << shift
+ v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -245,6 +262,9 @@ func (m *A) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthVanity
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthVanity
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -315,10 +335,13 @@ func skipVanity(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthVanity
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthVanity
+ }
return iNdEx, nil
case 3:
for {
@@ -347,6 +370,9 @@ func skipVanity(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthVanity
+ }
}
return iNdEx, nil
case 4:
@@ -365,16 +391,3 @@ var (
ErrInvalidLengthVanity = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowVanity = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("vanity.proto", fileDescriptor_vanity_62f5a5ee00b3fc23) }
-
-var fileDescriptor_vanity_62f5a5ee00b3fc23 = []byte{
- // 97 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x4b, 0xcc, 0xcb,
- 0x2c, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0, 0x94, 0xf4, 0xb9, 0x18,
- 0x1d, 0x85, 0x24, 0xb8, 0xd8, 0x83, 0x4b, 0x8a, 0x32, 0xf3, 0xd2, 0x8b, 0x25, 0x18, 0x15, 0x18,
- 0x35, 0x38, 0x83, 0x60, 0x5c, 0x21, 0x01, 0x2e, 0x66, 0xcf, 0xbc, 0x12, 0x09, 0x26, 0x05, 0x26,
- 0x0d, 0xe6, 0x20, 0x10, 0xd3, 0x89, 0xe7, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f,
- 0x3c, 0x92, 0x63, 0x04, 0x04, 0x00, 0x00, 0xff, 0xff, 0x2f, 0x7a, 0xd7, 0x63, 0x55, 0x00, 0x00,
- 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/vanity/test/faster/gogovanity.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/faster/gogovanity.pb.go
index e894587925..0c08a40ce8 100644
--- a/vendor/github.com/gogo/protobuf/vanity/test/faster/gogovanity.pb.go
+++ b/vendor/github.com/gogo/protobuf/vanity/test/faster/gogovanity.pb.go
@@ -3,12 +3,13 @@
package vanity
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import io "io"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -31,7 +32,7 @@ func (m *B) Reset() { *m = B{} }
func (m *B) String() string { return proto.CompactTextString(m) }
func (*B) ProtoMessage() {}
func (*B) Descriptor() ([]byte, []int) {
- return fileDescriptor_gogovanity_5ec1359daac061c2, []int{0}
+ return fileDescriptor_f8c9b51615339d8e, []int{0}
}
func (m *B) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -48,8 +49,8 @@ func (m *B) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *B) XXX_Merge(src proto.Message) {
- xxx_messageInfo_B.Merge(dst, src)
+func (m *B) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_B.Merge(m, src)
}
func (m *B) XXX_Size() int {
return m.Size()
@@ -86,6 +87,24 @@ func (m *B) GetInt32() int32 {
func init() {
proto.RegisterType((*B)(nil), "vanity.B")
}
+
+func init() { proto.RegisterFile("gogovanity.proto", fileDescriptor_f8c9b51615339d8e) }
+
+var fileDescriptor_f8c9b51615339d8e = []byte{
+ // 171 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x48, 0xcf, 0x4f, 0xcf,
+ 0x2f, 0x4b, 0xcc, 0xcb, 0x2c, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0,
+ 0xa4, 0x74, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0x41, 0x8a, 0xf4,
+ 0xc1, 0xd2, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0xb4, 0x29, 0x45, 0x72, 0x31,
+ 0x3a, 0x09, 0xc9, 0x70, 0xb1, 0x05, 0x97, 0x14, 0x65, 0xe6, 0xa5, 0x4b, 0x30, 0x2a, 0x30, 0x6a,
+ 0x70, 0x3a, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, 0x18, 0x04, 0x15, 0x13, 0x92, 0xe2, 0x62, 0xf5, 0xcc,
+ 0x2b, 0x31, 0x33, 0x91, 0x60, 0x52, 0x60, 0xd4, 0x60, 0x06, 0x4b, 0x32, 0x04, 0x41, 0x84, 0xa0,
+ 0x72, 0xc6, 0x46, 0x12, 0xcc, 0x0a, 0x8c, 0x1a, 0xac, 0x56, 0x2c, 0x86, 0x46, 0xc6, 0x26, 0x41,
+ 0x10, 0x21, 0x27, 0x89, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e,
+ 0x71, 0xc2, 0x63, 0x39, 0x86, 0x0b, 0x8f, 0xe5, 0x18, 0x6e, 0x3c, 0x96, 0x63, 0x00, 0x04, 0x00,
+ 0x00, 0xff, 0xff, 0xbf, 0xbb, 0x2c, 0x28, 0xbe, 0x00, 0x00, 0x00,
+}
+
func (m *B) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -172,7 +191,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -200,7 +219,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -210,6 +229,9 @@ func (m *B) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthGogovanity
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGogovanity
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -230,7 +252,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Int64 |= (int64(b) & 0x7F) << shift
+ m.Int64 |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -249,7 +271,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -264,6 +286,9 @@ func (m *B) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthGogovanity
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthGogovanity
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -330,10 +355,13 @@ func skipGogovanity(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthGogovanity
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthGogovanity
+ }
return iNdEx, nil
case 3:
for {
@@ -362,6 +390,9 @@ func skipGogovanity(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthGogovanity
+ }
}
return iNdEx, nil
case 4:
@@ -380,20 +411,3 @@ var (
ErrInvalidLengthGogovanity = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowGogovanity = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("gogovanity.proto", fileDescriptor_gogovanity_5ec1359daac061c2) }
-
-var fileDescriptor_gogovanity_5ec1359daac061c2 = []byte{
- // 171 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x48, 0xcf, 0x4f, 0xcf,
- 0x2f, 0x4b, 0xcc, 0xcb, 0x2c, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0,
- 0xa4, 0x74, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0x41, 0x8a, 0xf4,
- 0xc1, 0xd2, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0xb4, 0x29, 0x45, 0x72, 0x31,
- 0x3a, 0x09, 0xc9, 0x70, 0xb1, 0x05, 0x97, 0x14, 0x65, 0xe6, 0xa5, 0x4b, 0x30, 0x2a, 0x30, 0x6a,
- 0x70, 0x3a, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, 0x18, 0x04, 0x15, 0x13, 0x92, 0xe2, 0x62, 0xf5, 0xcc,
- 0x2b, 0x31, 0x33, 0x91, 0x60, 0x52, 0x60, 0xd4, 0x60, 0x06, 0x4b, 0x32, 0x04, 0x41, 0x84, 0xa0,
- 0x72, 0xc6, 0x46, 0x12, 0xcc, 0x0a, 0x8c, 0x1a, 0xac, 0x56, 0x2c, 0x86, 0x46, 0xc6, 0x26, 0x41,
- 0x10, 0x21, 0x27, 0x89, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e,
- 0x71, 0xc2, 0x63, 0x39, 0x86, 0x0b, 0x8f, 0xe5, 0x18, 0x6e, 0x3c, 0x96, 0x63, 0x00, 0x04, 0x00,
- 0x00, 0xff, 0xff, 0xbf, 0xbb, 0x2c, 0x28, 0xbe, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/vanity/test/faster/proto3.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/faster/proto3.pb.go
index 1068288dbc..5defc356a7 100644
--- a/vendor/github.com/gogo/protobuf/vanity/test/faster/proto3.pb.go
+++ b/vendor/github.com/gogo/protobuf/vanity/test/faster/proto3.pb.go
@@ -3,11 +3,12 @@
package vanity
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import io "io"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -28,7 +29,7 @@ func (m *Aproto3) Reset() { *m = Aproto3{} }
func (m *Aproto3) String() string { return proto.CompactTextString(m) }
func (*Aproto3) ProtoMessage() {}
func (*Aproto3) Descriptor() ([]byte, []int) {
- return fileDescriptor_proto3_b593ea763dc96224, []int{0}
+ return fileDescriptor_4fee6d65e34a64b6, []int{0}
}
func (m *Aproto3) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -45,8 +46,8 @@ func (m *Aproto3) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Aproto3) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Aproto3.Merge(dst, src)
+func (m *Aproto3) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Aproto3.Merge(m, src)
}
func (m *Aproto3) XXX_Size() int {
return m.Size()
@@ -67,6 +68,19 @@ func (m *Aproto3) GetB() string {
func init() {
proto.RegisterType((*Aproto3)(nil), "vanity.Aproto3")
}
+
+func init() { proto.RegisterFile("proto3.proto", fileDescriptor_4fee6d65e34a64b6) }
+
+var fileDescriptor_4fee6d65e34a64b6 = []byte{
+ // 95 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x28, 0xca, 0x2f,
+ 0xc9, 0x37, 0xd6, 0x03, 0x53, 0x42, 0x6c, 0x65, 0x89, 0x79, 0x99, 0x25, 0x95, 0x4a, 0xe2, 0x5c,
+ 0xec, 0x8e, 0x10, 0x09, 0x21, 0x1e, 0x2e, 0x46, 0x27, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20,
+ 0x46, 0x27, 0x27, 0x89, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e,
+ 0x71, 0xc2, 0x63, 0x39, 0x86, 0x0b, 0x8f, 0xe5, 0x18, 0x6e, 0x3c, 0x96, 0x63, 0x48, 0x62, 0x83,
+ 0xa8, 0x07, 0x04, 0x00, 0x00, 0xff, 0xff, 0x73, 0xb1, 0xdb, 0xd2, 0x51, 0x00, 0x00, 0x00,
+}
+
func (m *Aproto3) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -141,7 +155,7 @@ func (m *Aproto3) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -169,7 +183,7 @@ func (m *Aproto3) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -179,6 +193,9 @@ func (m *Aproto3) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthProto3
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthProto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -193,6 +210,9 @@ func (m *Aproto3) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthProto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthProto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -259,10 +279,13 @@ func skipProto3(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthProto3
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthProto3
+ }
return iNdEx, nil
case 3:
for {
@@ -291,6 +314,9 @@ func skipProto3(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthProto3
+ }
}
return iNdEx, nil
case 4:
@@ -309,15 +335,3 @@ var (
ErrInvalidLengthProto3 = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowProto3 = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("proto3.proto", fileDescriptor_proto3_b593ea763dc96224) }
-
-var fileDescriptor_proto3_b593ea763dc96224 = []byte{
- // 95 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x28, 0xca, 0x2f,
- 0xc9, 0x37, 0xd6, 0x03, 0x53, 0x42, 0x6c, 0x65, 0x89, 0x79, 0x99, 0x25, 0x95, 0x4a, 0xe2, 0x5c,
- 0xec, 0x8e, 0x10, 0x09, 0x21, 0x1e, 0x2e, 0x46, 0x27, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20,
- 0x46, 0x27, 0x27, 0x89, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e,
- 0x71, 0xc2, 0x63, 0x39, 0x86, 0x0b, 0x8f, 0xe5, 0x18, 0x6e, 0x3c, 0x96, 0x63, 0x48, 0x62, 0x83,
- 0xa8, 0x07, 0x04, 0x00, 0x00, 0xff, 0xff, 0x73, 0xb1, 0xdb, 0xd2, 0x51, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/vanity/test/faster/vanity.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/faster/vanity.pb.go
index 41e545e771..8f621b9d1f 100644
--- a/vendor/github.com/gogo/protobuf/vanity/test/faster/vanity.pb.go
+++ b/vendor/github.com/gogo/protobuf/vanity/test/faster/vanity.pb.go
@@ -3,12 +3,13 @@
package vanity
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import io "io"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+import (
+ fmt "fmt"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -30,7 +31,7 @@ func (m *A) Reset() { *m = A{} }
func (m *A) String() string { return proto.CompactTextString(m) }
func (*A) ProtoMessage() {}
func (*A) Descriptor() ([]byte, []int) {
- return fileDescriptor_vanity_c8a9a949a2e14347, []int{0}
+ return fileDescriptor_d4f40d14cd1329d6, []int{0}
}
func (m *A) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -47,8 +48,8 @@ func (m *A) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *A) XXX_Merge(src proto.Message) {
- xxx_messageInfo_A.Merge(dst, src)
+func (m *A) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_A.Merge(m, src)
}
func (m *A) XXX_Size() int {
return m.Size()
@@ -76,6 +77,21 @@ func (m *A) GetInt() int64 {
func init() {
proto.RegisterType((*A)(nil), "vanity.A")
}
+
+func init() { proto.RegisterFile("vanity.proto", fileDescriptor_d4f40d14cd1329d6) }
+
+var fileDescriptor_d4f40d14cd1329d6 = []byte{
+ // 117 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x4b, 0xcc, 0xcb,
+ 0x2c, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0, 0x94, 0xac, 0xb9, 0x18,
+ 0x1d, 0x85, 0xe4, 0xb8, 0xd8, 0x83, 0x4b, 0x8a, 0x32, 0xf3, 0xd2, 0x8b, 0x25, 0x18, 0x15, 0x18,
+ 0x35, 0x38, 0x9d, 0x58, 0x4e, 0xdc, 0x93, 0x67, 0x08, 0x82, 0x09, 0x0a, 0x89, 0x71, 0x31, 0x7b,
+ 0xe6, 0x95, 0x48, 0x30, 0x29, 0x30, 0x69, 0x30, 0x43, 0xe5, 0x40, 0x02, 0x4e, 0x12, 0x27, 0x1e,
+ 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x84, 0xc7, 0x72, 0x0c, 0x17,
+ 0x1e, 0xcb, 0x31, 0xdc, 0x78, 0x2c, 0xc7, 0x00, 0x08, 0x00, 0x00, 0xff, 0xff, 0x8b, 0x2e, 0x6a,
+ 0x0c, 0x6d, 0x00, 0x00, 0x00,
+}
+
func (m *A) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -151,7 +167,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -179,7 +195,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -189,6 +205,9 @@ func (m *A) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthVanity
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthVanity
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -208,7 +227,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Int |= (int64(b) & 0x7F) << shift
+ m.Int |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -223,6 +242,9 @@ func (m *A) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthVanity
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthVanity
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -292,10 +314,13 @@ func skipVanity(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthVanity
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthVanity
+ }
return iNdEx, nil
case 3:
for {
@@ -324,6 +349,9 @@ func skipVanity(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthVanity
+ }
}
return iNdEx, nil
case 4:
@@ -342,17 +370,3 @@ var (
ErrInvalidLengthVanity = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowVanity = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("vanity.proto", fileDescriptor_vanity_c8a9a949a2e14347) }
-
-var fileDescriptor_vanity_c8a9a949a2e14347 = []byte{
- // 117 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x4b, 0xcc, 0xcb,
- 0x2c, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0, 0x94, 0xac, 0xb9, 0x18,
- 0x1d, 0x85, 0xe4, 0xb8, 0xd8, 0x83, 0x4b, 0x8a, 0x32, 0xf3, 0xd2, 0x8b, 0x25, 0x18, 0x15, 0x18,
- 0x35, 0x38, 0x9d, 0x58, 0x4e, 0xdc, 0x93, 0x67, 0x08, 0x82, 0x09, 0x0a, 0x89, 0x71, 0x31, 0x7b,
- 0xe6, 0x95, 0x48, 0x30, 0x29, 0x30, 0x69, 0x30, 0x43, 0xe5, 0x40, 0x02, 0x4e, 0x12, 0x27, 0x1e,
- 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x84, 0xc7, 0x72, 0x0c, 0x17,
- 0x1e, 0xcb, 0x31, 0xdc, 0x78, 0x2c, 0xc7, 0x00, 0x08, 0x00, 0x00, 0xff, 0xff, 0x8b, 0x2e, 0x6a,
- 0x0c, 0x6d, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/vanity/test/slick/gogovanity.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/slick/gogovanity.pb.go
index 0ab67e7dcd..cf8b676cd2 100644
--- a/vendor/github.com/gogo/protobuf/vanity/test/slick/gogovanity.pb.go
+++ b/vendor/github.com/gogo/protobuf/vanity/test/slick/gogovanity.pb.go
@@ -3,15 +3,15 @@
package vanity
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-import _ "github.com/gogo/protobuf/gogoproto"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
+import (
+ fmt "fmt"
+ _ "github.com/gogo/protobuf/gogoproto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -33,7 +33,7 @@ type B struct {
func (m *B) Reset() { *m = B{} }
func (*B) ProtoMessage() {}
func (*B) Descriptor() ([]byte, []int) {
- return fileDescriptor_gogovanity_d28d049fcf27b277, []int{0}
+ return fileDescriptor_f8c9b51615339d8e, []int{0}
}
func (m *B) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -50,8 +50,8 @@ func (m *B) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *B) XXX_Merge(src proto.Message) {
- xxx_messageInfo_B.Merge(dst, src)
+func (m *B) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_B.Merge(m, src)
}
func (m *B) XXX_Size() int {
return m.Size()
@@ -88,6 +88,26 @@ func (m *B) GetInt32() int32 {
func init() {
proto.RegisterType((*B)(nil), "vanity.B")
}
+
+func init() { proto.RegisterFile("gogovanity.proto", fileDescriptor_f8c9b51615339d8e) }
+
+var fileDescriptor_f8c9b51615339d8e = []byte{
+ // 201 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x48, 0xcf, 0x4f, 0xcf,
+ 0x2f, 0x4b, 0xcc, 0xcb, 0x2c, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0,
+ 0xa4, 0x74, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0x41, 0x8a, 0xf4,
+ 0xc1, 0xd2, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0xb4, 0x29, 0x45, 0x72, 0x31,
+ 0x3a, 0x09, 0xc9, 0x70, 0xb1, 0x05, 0x97, 0x14, 0x65, 0xe6, 0xa5, 0x4b, 0x30, 0x2a, 0x30, 0x6a,
+ 0x70, 0x3a, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, 0x18, 0x04, 0x15, 0x13, 0x92, 0xe2, 0x62, 0xf5, 0xcc,
+ 0x2b, 0x31, 0x33, 0x91, 0x60, 0x52, 0x60, 0xd4, 0x60, 0x06, 0x4b, 0x32, 0x04, 0x41, 0x84, 0xa0,
+ 0x72, 0xc6, 0x46, 0x12, 0xcc, 0x0a, 0x8c, 0x1a, 0xac, 0x56, 0x2c, 0x86, 0x46, 0xc6, 0x26, 0x41,
+ 0x10, 0x21, 0x27, 0x93, 0x0b, 0x0f, 0xe5, 0x18, 0x6e, 0x3c, 0x94, 0x63, 0xf8, 0xf0, 0x50, 0x8e,
+ 0xb1, 0xe1, 0x91, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24,
+ 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x8b, 0x47, 0x72, 0x0c, 0x1f, 0x1e, 0xc9, 0x31, 0x4e, 0x78,
+ 0x2c, 0xc7, 0x70, 0xe1, 0xb1, 0x1c, 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x80, 0x00, 0x00, 0x00, 0xff,
+ 0xff, 0xab, 0xeb, 0xeb, 0x07, 0xda, 0x00, 0x00, 0x00,
+}
+
func (this *B) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -260,7 +280,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -288,7 +308,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -298,6 +318,9 @@ func (m *B) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthGogovanity
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGogovanity
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -318,7 +341,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Int64 |= (int64(b) & 0x7F) << shift
+ m.Int64 |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -337,7 +360,7 @@ func (m *B) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- v |= (int32(b) & 0x7F) << shift
+ v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -352,6 +375,9 @@ func (m *B) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthGogovanity
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthGogovanity
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -418,10 +444,13 @@ func skipGogovanity(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthGogovanity
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthGogovanity
+ }
return iNdEx, nil
case 3:
for {
@@ -450,6 +479,9 @@ func skipGogovanity(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthGogovanity
+ }
}
return iNdEx, nil
case 4:
@@ -468,22 +500,3 @@ var (
ErrInvalidLengthGogovanity = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowGogovanity = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("gogovanity.proto", fileDescriptor_gogovanity_d28d049fcf27b277) }
-
-var fileDescriptor_gogovanity_d28d049fcf27b277 = []byte{
- // 201 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x48, 0xcf, 0x4f, 0xcf,
- 0x2f, 0x4b, 0xcc, 0xcb, 0x2c, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0,
- 0xa4, 0x74, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0x41, 0x8a, 0xf4,
- 0xc1, 0xd2, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, 0x66, 0x41, 0xb4, 0x29, 0x45, 0x72, 0x31,
- 0x3a, 0x09, 0xc9, 0x70, 0xb1, 0x05, 0x97, 0x14, 0x65, 0xe6, 0xa5, 0x4b, 0x30, 0x2a, 0x30, 0x6a,
- 0x70, 0x3a, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, 0x18, 0x04, 0x15, 0x13, 0x92, 0xe2, 0x62, 0xf5, 0xcc,
- 0x2b, 0x31, 0x33, 0x91, 0x60, 0x52, 0x60, 0xd4, 0x60, 0x06, 0x4b, 0x32, 0x04, 0x41, 0x84, 0xa0,
- 0x72, 0xc6, 0x46, 0x12, 0xcc, 0x0a, 0x8c, 0x1a, 0xac, 0x56, 0x2c, 0x86, 0x46, 0xc6, 0x26, 0x41,
- 0x10, 0x21, 0x27, 0x93, 0x0b, 0x0f, 0xe5, 0x18, 0x6e, 0x3c, 0x94, 0x63, 0xf8, 0xf0, 0x50, 0x8e,
- 0xb1, 0xe1, 0x91, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24,
- 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x8b, 0x47, 0x72, 0x0c, 0x1f, 0x1e, 0xc9, 0x31, 0x4e, 0x78,
- 0x2c, 0xc7, 0x70, 0xe1, 0xb1, 0x1c, 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x80, 0x00, 0x00, 0x00, 0xff,
- 0xff, 0xab, 0xeb, 0xeb, 0x07, 0xda, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/vanity/test/slick/proto3.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/slick/proto3.pb.go
index 2872dca03f..749116eb9a 100644
--- a/vendor/github.com/gogo/protobuf/vanity/test/slick/proto3.pb.go
+++ b/vendor/github.com/gogo/protobuf/vanity/test/slick/proto3.pb.go
@@ -3,14 +3,14 @@
package vanity
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
+import (
+ fmt "fmt"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -30,7 +30,7 @@ type Aproto3 struct {
func (m *Aproto3) Reset() { *m = Aproto3{} }
func (*Aproto3) ProtoMessage() {}
func (*Aproto3) Descriptor() ([]byte, []int) {
- return fileDescriptor_proto3_1bf23e323c5dd138, []int{0}
+ return fileDescriptor_4fee6d65e34a64b6, []int{0}
}
func (m *Aproto3) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -47,8 +47,8 @@ func (m *Aproto3) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *Aproto3) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Aproto3.Merge(dst, src)
+func (m *Aproto3) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Aproto3.Merge(m, src)
}
func (m *Aproto3) XXX_Size() int {
return m.Size()
@@ -69,6 +69,21 @@ func (m *Aproto3) GetB() string {
func init() {
proto.RegisterType((*Aproto3)(nil), "vanity.Aproto3")
}
+
+func init() { proto.RegisterFile("proto3.proto", fileDescriptor_4fee6d65e34a64b6) }
+
+var fileDescriptor_4fee6d65e34a64b6 = []byte{
+ // 125 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x28, 0xca, 0x2f,
+ 0xc9, 0x37, 0xd6, 0x03, 0x53, 0x42, 0x6c, 0x65, 0x89, 0x79, 0x99, 0x25, 0x95, 0x4a, 0xe2, 0x5c,
+ 0xec, 0x8e, 0x10, 0x09, 0x21, 0x1e, 0x2e, 0x46, 0x27, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20,
+ 0x46, 0x27, 0x27, 0x93, 0x0b, 0x0f, 0xe5, 0x18, 0x6e, 0x3c, 0x94, 0x63, 0xf8, 0xf0, 0x50, 0x8e,
+ 0xb1, 0xe1, 0x91, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24,
+ 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x8b, 0x47, 0x72, 0x0c, 0x1f, 0x1e, 0xc9, 0x31, 0x4e, 0x78,
+ 0x2c, 0xc7, 0x70, 0xe1, 0xb1, 0x1c, 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x49, 0x6c, 0x10, 0xb3, 0x00,
+ 0x01, 0x00, 0x00, 0xff, 0xff, 0x3d, 0x6e, 0x6a, 0x0e, 0x6d, 0x00, 0x00, 0x00,
+}
+
func (this *Aproto3) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -203,7 +218,7 @@ func (m *Aproto3) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -231,7 +246,7 @@ func (m *Aproto3) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -241,6 +256,9 @@ func (m *Aproto3) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthProto3
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthProto3
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -255,6 +273,9 @@ func (m *Aproto3) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthProto3
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthProto3
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -321,10 +342,13 @@ func skipProto3(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthProto3
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthProto3
+ }
return iNdEx, nil
case 3:
for {
@@ -353,6 +377,9 @@ func skipProto3(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthProto3
+ }
}
return iNdEx, nil
case 4:
@@ -371,17 +398,3 @@ var (
ErrInvalidLengthProto3 = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowProto3 = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("proto3.proto", fileDescriptor_proto3_1bf23e323c5dd138) }
-
-var fileDescriptor_proto3_1bf23e323c5dd138 = []byte{
- // 125 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x28, 0xca, 0x2f,
- 0xc9, 0x37, 0xd6, 0x03, 0x53, 0x42, 0x6c, 0x65, 0x89, 0x79, 0x99, 0x25, 0x95, 0x4a, 0xe2, 0x5c,
- 0xec, 0x8e, 0x10, 0x09, 0x21, 0x1e, 0x2e, 0x46, 0x27, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20,
- 0x46, 0x27, 0x27, 0x93, 0x0b, 0x0f, 0xe5, 0x18, 0x6e, 0x3c, 0x94, 0x63, 0xf8, 0xf0, 0x50, 0x8e,
- 0xb1, 0xe1, 0x91, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24,
- 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x8b, 0x47, 0x72, 0x0c, 0x1f, 0x1e, 0xc9, 0x31, 0x4e, 0x78,
- 0x2c, 0xc7, 0x70, 0xe1, 0xb1, 0x1c, 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x49, 0x6c, 0x10, 0xb3, 0x00,
- 0x01, 0x00, 0x00, 0xff, 0xff, 0x3d, 0x6e, 0x6a, 0x0e, 0x6d, 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/gogo/protobuf/vanity/test/slick/vanity.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/slick/vanity.pb.go
index 36a98880ea..f1febbc9d5 100644
--- a/vendor/github.com/gogo/protobuf/vanity/test/slick/vanity.pb.go
+++ b/vendor/github.com/gogo/protobuf/vanity/test/slick/vanity.pb.go
@@ -3,15 +3,15 @@
package vanity
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-import strings "strings"
-import reflect "reflect"
-
-import io "io"
-import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+import (
+ fmt "fmt"
+ github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
+ proto "github.com/gogo/protobuf/proto"
+ io "io"
+ math "math"
+ reflect "reflect"
+ strings "strings"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -32,7 +32,7 @@ type A struct {
func (m *A) Reset() { *m = A{} }
func (*A) ProtoMessage() {}
func (*A) Descriptor() ([]byte, []int) {
- return fileDescriptor_vanity_0b672c3d48e40257, []int{0}
+ return fileDescriptor_d4f40d14cd1329d6, []int{0}
}
func (m *A) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -49,8 +49,8 @@ func (m *A) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
-func (dst *A) XXX_Merge(src proto.Message) {
- xxx_messageInfo_A.Merge(dst, src)
+func (m *A) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_A.Merge(m, src)
}
func (m *A) XXX_Size() int {
return m.Size()
@@ -78,6 +78,23 @@ func (m *A) GetInt() int64 {
func init() {
proto.RegisterType((*A)(nil), "vanity.A")
}
+
+func init() { proto.RegisterFile("vanity.proto", fileDescriptor_d4f40d14cd1329d6) }
+
+var fileDescriptor_d4f40d14cd1329d6 = []byte{
+ // 147 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x4b, 0xcc, 0xcb,
+ 0x2c, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0, 0x94, 0xac, 0xb9, 0x18,
+ 0x1d, 0x85, 0xe4, 0xb8, 0xd8, 0x83, 0x4b, 0x8a, 0x32, 0xf3, 0xd2, 0x8b, 0x25, 0x18, 0x15, 0x18,
+ 0x35, 0x38, 0x9d, 0x58, 0x4e, 0xdc, 0x93, 0x67, 0x08, 0x82, 0x09, 0x0a, 0x89, 0x71, 0x31, 0x7b,
+ 0xe6, 0x95, 0x48, 0x30, 0x29, 0x30, 0x69, 0x30, 0x43, 0xe5, 0x40, 0x02, 0x4e, 0x26, 0x17, 0x1e,
+ 0xca, 0x31, 0xdc, 0x78, 0x28, 0xc7, 0xf0, 0xe1, 0xa1, 0x1c, 0x63, 0xc3, 0x23, 0x39, 0xc6, 0x15,
+ 0x8f, 0xe4, 0x18, 0x4f, 0x3c, 0x92, 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6,
+ 0x17, 0x8f, 0xe4, 0x18, 0x3e, 0x3c, 0x92, 0x63, 0x9c, 0xf0, 0x58, 0x8e, 0xe1, 0xc2, 0x63, 0x39,
+ 0x86, 0x1b, 0x8f, 0xe5, 0x18, 0x00, 0x01, 0x00, 0x00, 0xff, 0xff, 0x20, 0x58, 0xc4, 0x53, 0x89,
+ 0x00, 0x00, 0x00,
+}
+
func (this *A) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -218,7 +235,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
+ wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -246,7 +263,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= (uint64(b) & 0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -256,6 +273,9 @@ func (m *A) Unmarshal(dAtA []byte) error {
return ErrInvalidLengthVanity
}
postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthVanity
+ }
if postIndex > l {
return io.ErrUnexpectedEOF
}
@@ -275,7 +295,7 @@ func (m *A) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Int |= (int64(b) & 0x7F) << shift
+ m.Int |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -290,6 +310,9 @@ func (m *A) Unmarshal(dAtA []byte) error {
if skippy < 0 {
return ErrInvalidLengthVanity
}
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthVanity
+ }
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
@@ -359,10 +382,13 @@ func skipVanity(dAtA []byte) (n int, err error) {
break
}
}
- iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthVanity
}
+ iNdEx += length
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthVanity
+ }
return iNdEx, nil
case 3:
for {
@@ -391,6 +417,9 @@ func skipVanity(dAtA []byte) (n int, err error) {
return 0, err
}
iNdEx = start + next
+ if iNdEx < 0 {
+ return 0, ErrInvalidLengthVanity
+ }
}
return iNdEx, nil
case 4:
@@ -409,19 +438,3 @@ var (
ErrInvalidLengthVanity = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowVanity = fmt.Errorf("proto: integer overflow")
)
-
-func init() { proto.RegisterFile("vanity.proto", fileDescriptor_vanity_0b672c3d48e40257) }
-
-var fileDescriptor_vanity_0b672c3d48e40257 = []byte{
- // 147 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x29, 0x4b, 0xcc, 0xcb,
- 0x2c, 0xa9, 0xd4, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0, 0x94, 0xac, 0xb9, 0x18,
- 0x1d, 0x85, 0xe4, 0xb8, 0xd8, 0x83, 0x4b, 0x8a, 0x32, 0xf3, 0xd2, 0x8b, 0x25, 0x18, 0x15, 0x18,
- 0x35, 0x38, 0x9d, 0x58, 0x4e, 0xdc, 0x93, 0x67, 0x08, 0x82, 0x09, 0x0a, 0x89, 0x71, 0x31, 0x7b,
- 0xe6, 0x95, 0x48, 0x30, 0x29, 0x30, 0x69, 0x30, 0x43, 0xe5, 0x40, 0x02, 0x4e, 0x26, 0x17, 0x1e,
- 0xca, 0x31, 0xdc, 0x78, 0x28, 0xc7, 0xf0, 0xe1, 0xa1, 0x1c, 0x63, 0xc3, 0x23, 0x39, 0xc6, 0x15,
- 0x8f, 0xe4, 0x18, 0x4f, 0x3c, 0x92, 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6,
- 0x17, 0x8f, 0xe4, 0x18, 0x3e, 0x3c, 0x92, 0x63, 0x9c, 0xf0, 0x58, 0x8e, 0xe1, 0xc2, 0x63, 0x39,
- 0x86, 0x1b, 0x8f, 0xe5, 0x18, 0x00, 0x01, 0x00, 0x00, 0xff, 0xff, 0x20, 0x58, 0xc4, 0x53, 0x89,
- 0x00, 0x00, 0x00,
-}
diff --git a/vendor/github.com/golang/groupcache/lru/lru.go b/vendor/github.com/golang/groupcache/lru/lru.go
index 532cc45e6d..eac1c7664f 100644
--- a/vendor/github.com/golang/groupcache/lru/lru.go
+++ b/vendor/github.com/golang/groupcache/lru/lru.go
@@ -25,7 +25,7 @@ type Cache struct {
// an item is evicted. Zero means no limit.
MaxEntries int
- // OnEvicted optionally specificies a callback function to be
+ // OnEvicted optionally specifies a callback function to be
// executed when an entry is purged from the cache.
OnEvicted func(key Key, value interface{})
diff --git a/vendor/github.com/google/go-containerregistry/LICENSE b/vendor/github.com/google/go-containerregistry/LICENSE
new file mode 100644
index 0000000000..7a4a3ea242
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/LICENSE
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/vendor/github.com/google/go-containerregistry/cmd/crane/help/main.go b/vendor/github.com/google/go-containerregistry/cmd/crane/help/main.go
new file mode 100644
index 0000000000..f33bb5626b
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/cmd/crane/help/main.go
@@ -0,0 +1,35 @@
+package main
+
+import (
+ "fmt"
+ "log"
+ "os"
+
+ "github.com/spf13/cobra"
+ "github.com/spf13/cobra/doc"
+
+ "github.com/google/go-containerregistry/pkg/crane"
+)
+
+var dir string
+var root = &cobra.Command{
+ Use: "gendoc",
+ Short: "Generate crane's help docs",
+ Args: cobra.NoArgs,
+ Run: func(*cobra.Command, []string) {
+ if err := doc.GenMarkdownTree(crane.Root, dir); err != nil {
+ log.Fatalln(err)
+ }
+ },
+}
+
+func init() {
+ root.Flags().StringVarP(&dir, "dir", "d", ".", "Path to directory in which to generate docs")
+}
+
+func main() {
+ if err := root.Execute(); err != nil {
+ fmt.Println(err)
+ os.Exit(1)
+ }
+}
diff --git a/vendor/github.com/google/go-containerregistry/cmd/crane/main.go b/vendor/github.com/google/go-containerregistry/cmd/crane/main.go
new file mode 100644
index 0000000000..a48c6f8c82
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/cmd/crane/main.go
@@ -0,0 +1,29 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/google/go-containerregistry/pkg/crane"
+)
+
+func main() {
+ if err := crane.Root.Execute(); err != nil {
+ fmt.Println(err)
+ os.Exit(1)
+ }
+}
diff --git a/vendor/github.com/google/go-containerregistry/cmd/gcrane/main.go b/vendor/github.com/google/go-containerregistry/cmd/gcrane/main.go
new file mode 100644
index 0000000000..23bc1c6b3a
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/cmd/gcrane/main.go
@@ -0,0 +1,43 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/google/go-containerregistry/pkg/crane"
+ "github.com/google/go-containerregistry/pkg/gcrane"
+)
+
+func main() {
+ // Maintain a map of google-specific commands that we "override".
+ gcrCmds := make(map[string]bool)
+ for _, cmd := range gcrane.Root.Commands() {
+ gcrCmds[cmd.Use] = true
+ }
+
+ // Use crane for everything else so that this can be a drop-in replacement.
+ for _, cmd := range crane.Root.Commands() {
+ if _, ok := gcrCmds[cmd.Use]; !ok {
+ gcrane.Root.AddCommand(cmd)
+ }
+ }
+
+ if err := gcrane.Root.Execute(); err != nil {
+ fmt.Println(err)
+ os.Exit(1)
+ }
+}
diff --git a/vendor/github.com/google/go-containerregistry/cmd/ko/binary.go b/vendor/github.com/google/go-containerregistry/cmd/ko/binary.go
new file mode 100644
index 0000000000..100b5f1849
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/cmd/ko/binary.go
@@ -0,0 +1,30 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+ "github.com/spf13/cobra"
+)
+
+// BinaryOptions represents options for the ko binary.
+type BinaryOptions struct {
+ // Path is the import path of the binary to publish.
+ Path string
+}
+
+func addImageArg(cmd *cobra.Command, lo *BinaryOptions) {
+ cmd.Flags().StringVarP(&lo.Path, "image", "i", lo.Path,
+ "The import path of the binary to publish.")
+}
diff --git a/vendor/github.com/google/go-containerregistry/cmd/ko/commands.go b/vendor/github.com/google/go-containerregistry/cmd/ko/commands.go
new file mode 100644
index 0000000000..c04a1dc899
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/cmd/ko/commands.go
@@ -0,0 +1,298 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+ "log"
+ "os"
+ "os/exec"
+
+ "github.com/spf13/cobra"
+ "github.com/spf13/pflag"
+ "k8s.io/kubernetes/pkg/kubectl/genericclioptions"
+)
+
+// runCmd is suitable for use with cobra.Command's Run field.
+type runCmd func(*cobra.Command, []string)
+
+// passthru returns a runCmd that simply passes our CLI arguments
+// through to a binary named command.
+func passthru(command string) runCmd {
+ return func(_ *cobra.Command, _ []string) {
+ // Start building a command line invocation by passing
+ // through our arguments to command's CLI.
+ cmd := exec.Command(command, os.Args[1:]...)
+
+ // Pass through our environment
+ cmd.Env = os.Environ()
+ // Pass through our stdfoo
+ cmd.Stderr = os.Stderr
+ cmd.Stdout = os.Stdout
+ cmd.Stdin = os.Stdin
+
+ // Run it.
+ if err := cmd.Run(); err != nil {
+ log.Fatalf("error executing %q command with args: %v; %v", command, os.Args[1:], err)
+ }
+ }
+}
+
+// addKubeCommands augments our CLI surface with a passthru delete command, and an apply
+// command that realizes the promise of ko, as outlined here:
+// https://github.com/google/go-containerregistry/issues/80
+func addKubeCommands(topLevel *cobra.Command) {
+ topLevel.AddCommand(&cobra.Command{
+ Use: "delete",
+ Short: `See "kubectl help delete" for detailed usage.`,
+ Run: passthru("kubectl"),
+ // We ignore unknown flags to avoid importing everything Go exposes
+ // from our commands.
+ FParseErrWhitelist: cobra.FParseErrWhitelist{
+ UnknownFlags: true,
+ },
+ })
+
+ koApplyFlags := []string{}
+ lo := &LocalOptions{}
+ bo := &BinaryOptions{}
+ no := &NameOptions{}
+ fo := &FilenameOptions{}
+ ta := &TagsOptions{}
+ apply := &cobra.Command{
+ Use: "apply -f FILENAME",
+ Short: "Apply the input files with image references resolved to built/pushed image digests.",
+ Long: `This sub-command finds import path references within the provided files, builds them into Go binaries, containerizes them, publishes them, and then feeds the resulting yaml into "kubectl apply".`,
+ Example: `
+ # Build and publish import path references to a Docker
+ # Registry as:
+ # ${KO_DOCKER_REPO}/-
+ # Then, feed the resulting yaml into "kubectl apply".
+ # When KO_DOCKER_REPO is ko.local, it is the same as if
+ # --local was passed.
+ ko apply -f config/
+
+ # Build and publish import path references to a Docker
+ # Registry preserving import path names as:
+ # ${KO_DOCKER_REPO}/
+ # Then, feed the resulting yaml into "kubectl apply".
+ ko apply --preserve-import-paths -f config/
+
+ # Build and publish import path references to a Docker
+ # daemon as:
+ # ko.local/
+ # Then, feed the resulting yaml into "kubectl apply".
+ ko apply --local -f config/
+
+ # Apply from stdin:
+ cat config.yaml | ko apply -f -`,
+ Args: cobra.NoArgs,
+ Run: func(cmd *cobra.Command, args []string) {
+ // Create a set of ko-specific flags to ignore when passing through
+ // kubectl global flags.
+ ignoreSet := make(map[string]struct{})
+ for _, s := range koApplyFlags {
+ ignoreSet[s] = struct{}{}
+ }
+
+ // Filter out ko flags from what we will pass through to kubectl.
+ kubectlFlags := []string{}
+ cmd.Flags().Visit(func(flag *pflag.Flag) {
+ if _, ok := ignoreSet[flag.Name]; !ok {
+ kubectlFlags = append(kubectlFlags, "--"+flag.Name, flag.Value.String())
+ }
+ })
+
+ // Issue a "kubectl apply" command reading from stdin,
+ // to which we will pipe the resolved files.
+ argv := []string{"apply", "-f", "-"}
+ argv = append(argv, kubectlFlags...)
+ kubectlCmd := exec.Command("kubectl", argv...)
+
+ // Pass through our environment
+ kubectlCmd.Env = os.Environ()
+ // Pass through our std{out,err} and make our resolved buffer stdin.
+ kubectlCmd.Stderr = os.Stderr
+ kubectlCmd.Stdout = os.Stdout
+
+ // Wire up kubectl stdin to resolveFilesToWriter.
+ stdin, err := kubectlCmd.StdinPipe()
+ if err != nil {
+ log.Fatalf("error piping to 'kubectl apply': %v", err)
+ }
+
+ go func() {
+ // kubectl buffers data before starting to apply it, which
+ // can lead to resources being created more slowly than desired.
+ // In the case of --watch, it can lead to resources not being
+ // applied at all until enough iteration has occurred. To work
+ // around this, we prime the stream with a bunch of empty objects
+ // which kubectl will discard.
+ // See https://github.com/google/go-containerregistry/pull/348
+ for i := 0; i < 1000; i++ {
+ stdin.Write([]byte("---\n"))
+ }
+ // Once primed kick things off.
+ resolveFilesToWriter(fo, no, lo, ta, stdin)
+ }()
+
+ // Run it.
+ if err := kubectlCmd.Run(); err != nil {
+ log.Fatalf("error executing 'kubectl apply': %v", err)
+ }
+ },
+ }
+ addLocalArg(apply, lo)
+ addNamingArgs(apply, no)
+ addFileArg(apply, fo)
+ addTagsArg(apply, ta)
+
+ // Collect the ko-specific apply flags before registering the kubectl global
+ // flags so that we can ignore them when passing kubectl global flags through
+ // to kubectl.
+ apply.Flags().VisitAll(func(flag *pflag.Flag) {
+ koApplyFlags = append(koApplyFlags, flag.Name)
+ })
+
+ // Register the kubectl global flags.
+ kubeConfigFlags := genericclioptions.NewConfigFlags()
+ kubeConfigFlags.AddFlags(apply.Flags())
+
+ topLevel.AddCommand(apply)
+
+ resolve := &cobra.Command{
+ Use: "resolve -f FILENAME",
+ Short: "Print the input files with image references resolved to built/pushed image digests.",
+ Long: `This sub-command finds import path references within the provided files, builds them into Go binaries, containerizes them, publishes them, and prints the resulting yaml.`,
+ Example: `
+ # Build and publish import path references to a Docker
+ # Registry as:
+ # ${KO_DOCKER_REPO}/-
+ # When KO_DOCKER_REPO is ko.local, it is the same as if
+ # --local and --preserve-import-paths were passed.
+ ko resolve -f config/
+
+ # Build and publish import path references to a Docker
+ # Registry preserving import path names as:
+ # ${KO_DOCKER_REPO}/
+ # When KO_DOCKER_REPO is ko.local, it is the same as if
+ # --local was passed.
+ ko resolve --preserve-import-paths -f config/
+
+ # Build and publish import path references to a Docker
+ # daemon as:
+ # ko.local/
+ # This always preserves import paths.
+ ko resolve --local -f config/`,
+ Args: cobra.NoArgs,
+ Run: func(cmd *cobra.Command, args []string) {
+ resolveFilesToWriter(fo, no, lo, ta, os.Stdout)
+ },
+ }
+ addLocalArg(resolve, lo)
+ addNamingArgs(resolve, no)
+ addFileArg(resolve, fo)
+ addTagsArg(resolve, ta)
+ topLevel.AddCommand(resolve)
+
+ publish := &cobra.Command{
+ Use: "publish IMPORTPATH...",
+ Short: "Build and publish container images from the given importpaths.",
+ Long: `This sub-command builds the provided import paths into Go binaries, containerizes them, and publishes them.`,
+ Example: `
+ # Build and publish import path references to a Docker
+ # Registry as:
+ # ${KO_DOCKER_REPO}/-
+ # When KO_DOCKER_REPO is ko.local, it is the same as if
+ # --local and --preserve-import-paths were passed.
+ ko publish github.com/foo/bar/cmd/baz github.com/foo/bar/cmd/blah
+
+ # Build and publish a relative import path as:
+ # ${KO_DOCKER_REPO}/-
+ # When KO_DOCKER_REPO is ko.local, it is the same as if
+ # --local and --preserve-import-paths were passed.
+ ko publish ./cmd/blah
+
+ # Build and publish a relative import path as:
+ # ${KO_DOCKER_REPO}/
+ # When KO_DOCKER_REPO is ko.local, it is the same as if
+ # --local was passed.
+ ko publish --preserve-import-paths ./cmd/blah
+
+ # Build and publish import path references to a Docker
+ # daemon as:
+ # ko.local/
+ # This always preserves import paths.
+ ko publish --local github.com/foo/bar/cmd/baz github.com/foo/bar/cmd/blah`,
+ Args: cobra.MinimumNArgs(1),
+ Run: func(_ *cobra.Command, args []string) {
+ publishImages(args, no, lo, ta)
+ },
+ }
+ addLocalArg(publish, lo)
+ addNamingArgs(publish, no)
+ addTagsArg(publish, ta)
+ topLevel.AddCommand(publish)
+
+ run := &cobra.Command{
+ Use: "run NAME --image=IMPORTPATH",
+ Short: "A variant of `kubectl run` that containerizes IMPORTPATH first.",
+ Long: `This sub-command combines "ko publish" and "kubectl run" to support containerizing and running Go binaries on Kubernetes in a single command.`,
+ Example: `
+ # Publish the --image and run it on Kubernetes as:
+ # ${KO_DOCKER_REPO}/-
+ # When KO_DOCKER_REPO is ko.local, it is the same as if
+ # --local and --preserve-import-paths were passed.
+ ko run foo --image=github.com/foo/bar/cmd/baz
+
+ # This supports relative import paths as well.
+ ko run foo --image=./cmd/baz`,
+ Run: func(cmd *cobra.Command, args []string) {
+ imgs := publishImages([]string{bo.Path}, no, lo, ta)
+
+ // There's only one, but this is the simple way to access the
+ // reference since the import path may have been qualified.
+ for k, v := range imgs {
+ log.Printf("Running %q", k)
+ // Issue a "kubectl run" command with our same arguments,
+ // but supply a second --image to override the one we intercepted.
+ argv := append(os.Args[1:], "--image", v.String())
+ kubectlCmd := exec.Command("kubectl", argv...)
+
+ // Pass through our environment
+ kubectlCmd.Env = os.Environ()
+ // Pass through our std*
+ kubectlCmd.Stderr = os.Stderr
+ kubectlCmd.Stdout = os.Stdout
+ kubectlCmd.Stdin = os.Stdin
+
+ // Run it.
+ if err := kubectlCmd.Run(); err != nil {
+ log.Fatalf("error executing \"kubectl run\": %v", err)
+ }
+ }
+ },
+ // We ignore unknown flags to avoid importing everything Go exposes
+ // from our commands.
+ FParseErrWhitelist: cobra.FParseErrWhitelist{
+ UnknownFlags: true,
+ },
+ }
+ addLocalArg(run, lo)
+ addNamingArgs(run, no)
+ addImageArg(run, bo)
+ addTagsArg(run, ta)
+
+ topLevel.AddCommand(run)
+}
diff --git a/vendor/github.com/google/go-containerregistry/cmd/ko/config.go b/vendor/github.com/google/go-containerregistry/cmd/ko/config.go
new file mode 100644
index 0000000000..accc646bd5
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/cmd/ko/config.go
@@ -0,0 +1,92 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+ "fmt"
+ "log"
+ "os"
+ "strconv"
+ "time"
+
+ "github.com/spf13/viper"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+ "github.com/google/go-containerregistry/pkg/v1/remote"
+)
+
+var (
+ defaultBaseImage name.Reference
+ baseImageOverrides map[string]name.Reference
+)
+
+func getBaseImage(s string) (v1.Image, error) {
+ ref, ok := baseImageOverrides[s]
+ if !ok {
+ ref = defaultBaseImage
+ }
+ log.Printf("Using base %s for %s", ref, s)
+ return remote.Image(ref, remote.WithAuthFromKeychain(authn.DefaultKeychain))
+}
+
+func getCreationTime() (*v1.Time, error) {
+ epoch := os.Getenv("SOURCE_DATE_EPOCH")
+ if epoch == "" {
+ return nil, nil
+ }
+
+ seconds, err := strconv.ParseInt(epoch, 10, 64)
+ if err != nil {
+ return nil, fmt.Errorf("the environment variable SOURCE_DATE_EPOCH is invalid. It's must be a number of seconds since January 1st 1970, 00:00 UTC, got %v", err)
+ }
+ return &v1.Time{time.Unix(seconds, 0)}, nil
+}
+
+func init() {
+ // If omitted, use this base image.
+ viper.SetDefault("defaultBaseImage", "gcr.io/distroless/static:latest")
+ viper.SetConfigName(".ko") // .yaml is implicit
+
+ if override := os.Getenv("KO_CONFIG_PATH"); override != "" {
+ viper.AddConfigPath(override)
+ }
+
+ viper.AddConfigPath("./")
+
+ if err := viper.ReadInConfig(); err != nil {
+ if _, ok := err.(viper.ConfigFileNotFoundError); !ok {
+ log.Fatalf("error reading config file: %v", err)
+ }
+ }
+
+ ref := viper.GetString("defaultBaseImage")
+ dbi, err := name.ParseReference(ref, name.WeakValidation)
+ if err != nil {
+ log.Fatalf("'defaultBaseImage': error parsing %q as image reference: %v", ref, err)
+ }
+ defaultBaseImage = dbi
+
+ baseImageOverrides = make(map[string]name.Reference)
+ overrides := viper.GetStringMapString("baseImageOverrides")
+ for k, v := range overrides {
+ bi, err := name.ParseReference(v, name.WeakValidation)
+ if err != nil {
+ log.Fatalf("'baseImageOverrides': error parsing %q as image reference: %v", v, err)
+ }
+ baseImageOverrides[k] = bi
+ }
+}
diff --git a/vendor/github.com/google/go-containerregistry/cmd/ko/filestuff.go b/vendor/github.com/google/go-containerregistry/cmd/ko/filestuff.go
new file mode 100644
index 0000000000..e492ced47f
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/cmd/ko/filestuff.go
@@ -0,0 +1,133 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+ "log"
+ "os"
+ "path/filepath"
+
+ "github.com/fsnotify/fsnotify"
+ "github.com/spf13/cobra"
+)
+
+// FilenameOptions is from pkg/kubectl.
+type FilenameOptions struct {
+ Filenames []string
+ Recursive bool
+ Watch bool
+}
+
+func addFileArg(cmd *cobra.Command, fo *FilenameOptions) {
+ // From pkg/kubectl
+ cmd.Flags().StringSliceVarP(&fo.Filenames, "filename", "f", fo.Filenames,
+ "Filename, directory, or URL to files to use to create the resource")
+ cmd.Flags().BoolVarP(&fo.Recursive, "recursive", "R", fo.Recursive,
+ "Process the directory used in -f, --filename recursively. Useful when you want to manage related manifests organized within the same directory.")
+ cmd.Flags().BoolVarP(&fo.Watch, "watch", "W", fo.Watch,
+ "Continuously monitor the transitive dependencies of the passed yaml files, and redeploy whenever anything changes.")
+}
+
+// Based heavily on pkg/kubectl
+func enumerateFiles(fo *FilenameOptions) chan string {
+ files := make(chan string)
+ go func() {
+ // When we're done enumerating files, close the channel
+ defer close(files)
+ // When we are in --watch mode, we set up watches on the filesystem locations
+ // that we are supplied and continuously stream files, until we are sent an
+ // interrupt.
+ var watcher *fsnotify.Watcher
+ if fo.Watch {
+ var err error
+ watcher, err = fsnotify.NewWatcher()
+ if err != nil {
+ log.Fatalf("Unexpected error initializing fsnotify: %v", err)
+ }
+ defer watcher.Close()
+ }
+ for _, paths := range fo.Filenames {
+ // Just pass through '-' as it is indicative of stdin.
+ if paths == "-" {
+ files <- paths
+ continue
+ }
+ // For each of the "filenames" we are passed (file or directory) start a
+ // "Walk" to enumerate all of the contained files recursively.
+ err := filepath.Walk(paths, func(path string, fi os.FileInfo, err error) error {
+ if err != nil {
+ return err
+ }
+
+ // If this is a directory, skip it if it isn't the current directory we are
+ // processing (unless we are in recursive mode). If we decide to process
+ // the directory, and we're in watch mode, then we set up a watch on the
+ // directory.
+ if fi.IsDir() {
+ if path != paths && !fo.Recursive {
+ return filepath.SkipDir
+ }
+ if watcher != nil {
+ watcher.Add(path)
+ }
+ // We don't stream back directories, we just decide to skip them, or not.
+ return nil
+ }
+
+ // Don't check extension if the filepath was passed explicitly
+ if path != paths {
+ switch filepath.Ext(path) {
+ case ".json", ".yaml":
+ // Process these.
+ default:
+ return nil
+ }
+ // We weren't passed this explicitly, so elide the watch as we
+ // are already watching the directory.
+ } else {
+ // We were passed this directly, and so we may not be watching the
+ // directory, so watch this file explicitly.
+ if watcher != nil {
+ watcher.Add(path)
+ }
+ }
+
+ files <- path
+ return nil
+ })
+ if err != nil {
+ log.Fatalf("Error enumerating files: %v", err)
+ }
+ }
+
+ // We're done watching the files we were passed and setting up watches.
+ // Now listen for change events from the watches we set up and resend
+ // files that change as if we just saw them (so they can be reprocessed).
+ if watcher != nil {
+ for {
+ select {
+ case event := <-watcher.Events:
+ switch filepath.Ext(event.Name) {
+ case ".json", ".yaml":
+ files <- event.Name
+ }
+ case err := <-watcher.Errors:
+ log.Fatalf("Error watching: %v", err)
+ }
+ }
+ }
+ }()
+ return files
+}
diff --git a/vendor/github.com/google/go-containerregistry/cmd/ko/flatname.go b/vendor/github.com/google/go-containerregistry/cmd/ko/flatname.go
new file mode 100644
index 0000000000..a4521526ae
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/cmd/ko/flatname.go
@@ -0,0 +1,52 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+ "crypto/md5"
+ "encoding/hex"
+ "path/filepath"
+
+ "github.com/spf13/cobra"
+)
+
+// NameOptions represents options for the ko binary.
+type NameOptions struct {
+ // PreserveImportPaths preserves the full import path after KO_DOCKER_REPO.
+ PreserveImportPaths bool
+ // BaseImportPaths uses the base path without MD5 hash after KO_DOCKER_REPO.
+ BaseImportPaths bool
+}
+
+func addNamingArgs(cmd *cobra.Command, no *NameOptions) {
+ cmd.Flags().BoolVarP(&no.PreserveImportPaths, "preserve-import-paths", "P", no.PreserveImportPaths,
+ "Whether to preserve the full import path after KO_DOCKER_REPO.")
+ cmd.Flags().BoolVarP(&no.BaseImportPaths, "base-import-paths", "B", no.BaseImportPaths,
+ "Whether to use the base path without MD5 hash after KO_DOCKER_REPO.")
+}
+
+func packageWithMD5(importpath string) string {
+ hasher := md5.New()
+ hasher.Write([]byte(importpath))
+ return filepath.Base(importpath) + "-" + hex.EncodeToString(hasher.Sum(nil))
+}
+
+func preserveImportPath(importpath string) string {
+ return importpath
+}
+
+func baseImportPaths(importpath string) string {
+ return filepath.Base(importpath)
+}
diff --git a/vendor/github.com/google/go-containerregistry/cmd/ko/local.go b/vendor/github.com/google/go-containerregistry/cmd/ko/local.go
new file mode 100644
index 0000000000..1b99e255ab
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/cmd/ko/local.go
@@ -0,0 +1,30 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+ "github.com/spf13/cobra"
+)
+
+// LocalOptions represents options for the ko binary.
+type LocalOptions struct {
+ // Local publishes images to a local docker daemon.
+ Local bool
+}
+
+func addLocalArg(cmd *cobra.Command, lo *LocalOptions) {
+ cmd.Flags().BoolVarP(&lo.Local, "local", "L", lo.Local,
+ "Whether to publish images to a local docker daemon vs. a registry.")
+}
diff --git a/vendor/github.com/google/go-containerregistry/cmd/ko/main.go b/vendor/github.com/google/go-containerregistry/cmd/ko/main.go
new file mode 100644
index 0000000000..6c2251c612
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/cmd/ko/main.go
@@ -0,0 +1,37 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+ "log"
+
+ "github.com/spf13/cobra"
+)
+
+func main() {
+ // Parent command to which all subcommands are added.
+ cmds := &cobra.Command{
+ Use: "ko",
+ Short: "Rapidly iterate with Go, Containers, and Kubernetes.",
+ Run: func(cmd *cobra.Command, args []string) {
+ cmd.Help()
+ },
+ }
+ addKubeCommands(cmds)
+
+ if err := cmds.Execute(); err != nil {
+ log.Fatalf("error during command execution: %v", err)
+ }
+}
diff --git a/vendor/github.com/google/go-containerregistry/cmd/ko/publish.go b/vendor/github.com/google/go-containerregistry/cmd/ko/publish.go
new file mode 100644
index 0000000000..a620ffbfb2
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/cmd/ko/publish.go
@@ -0,0 +1,105 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+ "fmt"
+ gb "go/build"
+ "log"
+ "os"
+ "path/filepath"
+ "strings"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/ko/build"
+ "github.com/google/go-containerregistry/pkg/ko/publish"
+ "github.com/google/go-containerregistry/pkg/name"
+)
+
+func qualifyLocalImport(importpath, gopathsrc, pwd string) (string, error) {
+ if !strings.HasPrefix(pwd, gopathsrc) {
+ return "", fmt.Errorf("pwd (%q) must be on $GOPATH/src (%q) to support local imports", pwd, gopathsrc)
+ }
+ // Given $GOPATH/src and $PWD (which must be within $GOPATH/src), trim
+ // off $GOPATH/src/ from $PWD and append local importpath to get the
+ // fully-qualified importpath.
+ return filepath.Join(strings.TrimPrefix(pwd, gopathsrc+string(filepath.Separator)), importpath), nil
+}
+
+func publishImages(importpaths []string, no *NameOptions, lo *LocalOptions, ta *TagsOptions) map[string]name.Reference {
+ opt, err := gobuildOptions()
+ if err != nil {
+ log.Fatalf("error setting up builder options: %v", err)
+ }
+ b, err := build.NewGo(opt...)
+ if err != nil {
+ log.Fatalf("error creating go builder: %v", err)
+ }
+ imgs := make(map[string]name.Reference)
+ for _, importpath := range importpaths {
+ if gb.IsLocalImport(importpath) {
+ // Qualify relative imports to their fully-qualified
+ // import path, assuming $PWD is within $GOPATH/src.
+ gopathsrc := filepath.Join(gb.Default.GOPATH, "src")
+ pwd, err := os.Getwd()
+ if err != nil {
+ log.Fatalf("error getting current working directory: %v", err)
+ }
+ importpath, err = qualifyLocalImport(importpath, gopathsrc, pwd)
+ if err != nil {
+ log.Fatal(err)
+ }
+ }
+
+ if !b.IsSupportedReference(importpath) {
+ log.Fatalf("importpath %q is not supported", importpath)
+ }
+
+ img, err := b.Build(importpath)
+ if err != nil {
+ log.Fatalf("error building %q: %v", importpath, err)
+ }
+ var pub publish.Interface
+ repoName := os.Getenv("KO_DOCKER_REPO")
+
+ var namer publish.Namer
+ if no.PreserveImportPaths {
+ namer = preserveImportPath
+ } else if no.BaseImportPaths {
+ namer = baseImportPaths
+ } else {
+ namer = packageWithMD5
+ }
+
+ if lo.Local || repoName == publish.LocalDomain {
+ pub = publish.NewDaemon(namer, ta.Tags)
+ } else {
+ if _, err := name.NewRepository(repoName, name.WeakValidation); err != nil {
+ log.Fatalf("the environment variable KO_DOCKER_REPO must be set to a valid docker repository, got %v", err)
+ }
+ opts := []publish.Option{publish.WithAuthFromKeychain(authn.DefaultKeychain), publish.WithNamer(namer), publish.WithTags(ta.Tags)}
+ pub, err = publish.NewDefault(repoName, opts...)
+ if err != nil {
+ log.Fatalf("error setting up default image publisher: %v", err)
+ }
+ }
+ ref, err := pub.Publish(img, importpath)
+ if err != nil {
+ log.Fatalf("error publishing %s: %v", importpath, err)
+ }
+ imgs[importpath] = ref
+ }
+ return imgs
+}
diff --git a/vendor/github.com/google/go-containerregistry/cmd/ko/resolve.go b/vendor/github.com/google/go-containerregistry/cmd/ko/resolve.go
new file mode 100644
index 0000000000..c5b1f4dd9e
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/cmd/ko/resolve.go
@@ -0,0 +1,259 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+ "fmt"
+ "io"
+ "io/ioutil"
+ "log"
+ "os"
+ "sync"
+
+ "github.com/mattmoor/dep-notify/pkg/graph"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/ko/build"
+ "github.com/google/go-containerregistry/pkg/ko/publish"
+ "github.com/google/go-containerregistry/pkg/ko/resolve"
+ "github.com/google/go-containerregistry/pkg/name"
+)
+
+func gobuildOptions() ([]build.Option, error) {
+ creationTime, err := getCreationTime()
+ if err != nil {
+ return nil, err
+ }
+ opts := []build.Option{
+ build.WithBaseImages(getBaseImage),
+ }
+ if creationTime != nil {
+ opts = append(opts, build.WithCreationTime(*creationTime))
+ }
+ return opts, nil
+}
+
+func makeBuilder() (*build.Caching, error) {
+ opt, err := gobuildOptions()
+ if err != nil {
+ log.Fatalf("error setting up builder options: %v", err)
+ }
+ innerBuilder, err := build.NewGo(opt...)
+ if err != nil {
+ return nil, err
+ }
+
+ // tl;dr Wrap builder in a caching builder.
+ //
+ // The caching builder should on Build calls:
+ // - Check for a valid Build future
+ // - if a valid Build future exists at the time of the request,
+ // then block on it.
+ // - if it does not, then initiate and record a Build future.
+ // - When import paths are "affected" by filesystem changes during a
+ // Watch, then invalidate their build futures *before* we put the
+ // affected yaml files onto the channel
+ //
+ // This will benefit the following key cases:
+ // 1. When the same import path is referenced across multiple yaml files
+ // we can elide subsequent builds by blocking on the same image future.
+ // 2. When an affected yaml file has multiple import paths (mostly unaffected)
+ // we can elide the builds of unchanged import paths.
+ return build.NewCaching(innerBuilder)
+}
+
+func makePublisher(no *NameOptions, lo *LocalOptions, ta *TagsOptions) (publish.Interface, error) {
+ // Create the publish.Interface that we will use to publish image references
+ // to either a docker daemon or a container image registry.
+ innerPublisher, err := func() (publish.Interface, error) {
+ namer := func() publish.Namer {
+ if no.PreserveImportPaths {
+ return preserveImportPath
+ }
+ return packageWithMD5
+ }()
+
+ repoName := os.Getenv("KO_DOCKER_REPO")
+ if lo.Local || repoName == publish.LocalDomain {
+ return publish.NewDaemon(namer, ta.Tags), nil
+ }
+ _, err := name.NewRepository(repoName, name.WeakValidation)
+ if err != nil {
+ return nil, fmt.Errorf("the environment variable KO_DOCKER_REPO must be set to a valid docker repository, got %v", err)
+ }
+
+ return publish.NewDefault(repoName,
+ publish.WithAuthFromKeychain(authn.DefaultKeychain),
+ publish.WithNamer(namer),
+ publish.WithTags(ta.Tags))
+ }()
+ if err != nil {
+ return nil, err
+ }
+
+ // Wrap publisher in a memoizing publisher implementation.
+ return publish.NewCaching(innerPublisher)
+}
+
+// resolvedFuture represents a "future" for the bytes of a resolved file.
+type resolvedFuture chan []byte
+
+func resolveFilesToWriter(fo *FilenameOptions, no *NameOptions, lo *LocalOptions, ta *TagsOptions, out io.WriteCloser) {
+ defer out.Close()
+ builder, err := makeBuilder()
+ if err != nil {
+ log.Fatalf("error creating builder: %v", err)
+ }
+
+ // Wrap publisher in a memoizing publisher implementation.
+ publisher, err := makePublisher(no, lo, ta)
+ if err != nil {
+ log.Fatalf("error creating publisher: %v", err)
+ }
+
+ // By having this as a channel, we can hook this up to a filesystem
+ // watcher and leave `fs` open to stream the names of yaml files
+ // affected by code changes (including the modification of existing or
+ // creation of new yaml files).
+ fs := enumerateFiles(fo)
+
+ // This tracks filename -> []importpath
+ var sm sync.Map
+
+ var g graph.Interface
+ var errCh chan error
+ if fo.Watch {
+ // Start a dep-notify process that on notifications scans the
+ // file-to-recorded-build map and for each affected file resends
+ // the filename along the channel.
+ g, errCh, err = graph.New(func(ss graph.StringSet) {
+ sm.Range(func(k, v interface{}) bool {
+ key := k.(string)
+ value := v.([]string)
+
+ for _, ip := range value {
+ if ss.Has(ip) {
+ // See the comment above about how "builder" works.
+ builder.Invalidate(ip)
+ fs <- key
+ }
+ }
+ return true
+ })
+ })
+ if err != nil {
+ log.Fatalf("Error creating dep-notify graph: %v", err)
+ }
+ // Cleanup the fsnotify hooks when we're done.
+ defer g.Shutdown()
+ }
+
+ var futures []resolvedFuture
+ for {
+ // Each iteration, if there is anything in the list of futures,
+ // listen to it in addition to the file enumerating channel.
+ // A nil channel is never available to receive on, so if nothing
+ // is available, this will result in us exclusively selecting
+ // on the file enumerating channel.
+ var bf resolvedFuture
+ if len(futures) > 0 {
+ bf = futures[0]
+ } else if fs == nil {
+ // There are no more files to enumerate and the futures
+ // have been drained, so quit.
+ break
+ }
+
+ select {
+ case f, ok := <-fs:
+ if !ok {
+ // a nil channel is never available to receive on.
+ // This allows us to drain the list of in-process
+ // futures without this case of the select winning
+ // each time.
+ fs = nil
+ break
+ }
+
+ // Make a new future to use to ship the bytes back and append
+ // it to the list of futures (see comment below about ordering).
+ ch := make(resolvedFuture)
+ futures = append(futures, ch)
+
+ // Kick off the resolution that will respond with its bytes on
+ // the future.
+ go func(f string) {
+ defer close(ch)
+ // Record the builds we do via this builder.
+ recordingBuilder := &build.Recorder{
+ Builder: builder,
+ }
+ b, err := resolveFile(f, recordingBuilder, publisher)
+ if err != nil {
+ // Don't let build errors disrupt the watch.
+ lg := log.Fatalf
+ if fo.Watch {
+ lg = log.Printf
+ }
+ lg("error processing import paths in %q: %v", f, err)
+ return
+ }
+ // Associate with this file the collection of binary import paths.
+ sm.Store(f, recordingBuilder.ImportPaths)
+ ch <- b
+ if fo.Watch {
+ for _, ip := range recordingBuilder.ImportPaths {
+ // Technically we never remove binary targets from the graph,
+ // which will increase our graph's watch load, but the
+ // notifications that they change will result in no affected
+ // yamls, and no new builds or deploys.
+ if err := g.Add(ip); err != nil {
+ log.Fatalf("Error adding importpath to dep graph: %v", err)
+ }
+ }
+ }
+ }(f)
+
+ case b, ok := <-bf:
+ // Once the head channel returns something, dequeue it.
+ // We listen to the futures in order to be respectful of
+ // the kubectl apply ordering, which matters!
+ futures = futures[1:]
+ if ok {
+ // Write the next body and a trailing delimiter.
+ // We write the delimeter LAST so that when streamed to
+ // kubectl it knows that the resource is complete and may
+ // be applied.
+ out.Write(append(b, []byte("\n---\n")...))
+ }
+
+ case err := <-errCh:
+ log.Fatalf("Error watching dependencies: %v", err)
+ }
+ }
+}
+
+func resolveFile(f string, builder build.Interface, pub publish.Interface) (b []byte, err error) {
+ if f == "-" {
+ b, err = ioutil.ReadAll(os.Stdin)
+ } else {
+ b, err = ioutil.ReadFile(f)
+ }
+ if err != nil {
+ return nil, err
+ }
+
+ return resolve.ImageReferences(b, builder, pub)
+}
diff --git a/vendor/github.com/google/go-containerregistry/cmd/ko/tags.go b/vendor/github.com/google/go-containerregistry/cmd/ko/tags.go
new file mode 100644
index 0000000000..1111516f5d
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/cmd/ko/tags.go
@@ -0,0 +1,29 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+ "github.com/spf13/cobra"
+)
+
+// TagsOptions holds the list of tags to tag the built image
+type TagsOptions struct {
+ Tags []string
+}
+
+func addTagsArg(cmd *cobra.Command, ta *TagsOptions) {
+ cmd.Flags().StringSliceVarP(&ta.Tags, "tags", "t", []string{"latest"},
+ "Which tags to use for the produced image instead of the default 'latest' tag.")
+}
diff --git a/vendor/github.com/google/go-containerregistry/cmd/ko/test/kodata/kenobi b/vendor/github.com/google/go-containerregistry/cmd/ko/test/kodata/kenobi
new file mode 120000
index 0000000000..5d7eddc7f3
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/cmd/ko/test/kodata/kenobi
@@ -0,0 +1 @@
+../kenobi
\ No newline at end of file
diff --git a/vendor/github.com/google/go-containerregistry/cmd/ko/test/main.go b/vendor/github.com/google/go-containerregistry/cmd/ko/test/main.go
new file mode 100644
index 0000000000..797a42ab62
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/cmd/ko/test/main.go
@@ -0,0 +1,32 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+ "io/ioutil"
+ "log"
+ "os"
+ "path/filepath"
+)
+
+func main() {
+ dp := os.Getenv("KO_DATA_PATH")
+ file := filepath.Join(dp, "kenobi")
+ bytes, err := ioutil.ReadFile(file)
+ if err != nil {
+ log.Fatalf("Error reading %q: %v", file, err)
+ }
+ log.Printf(string(bytes))
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/authn/anon.go b/vendor/github.com/google/go-containerregistry/pkg/authn/anon.go
new file mode 100644
index 0000000000..c9c08ec737
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/authn/anon.go
@@ -0,0 +1,26 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package authn
+
+// anonymous implements Authenticator for anonymous authentication.
+type anonymous struct{}
+
+// Authorization implements Authenticator.
+func (a *anonymous) Authorization() (string, error) {
+ return "", nil
+}
+
+// Anonymous is a singleton Authenticator for providing anonymous auth.
+var Anonymous Authenticator = &anonymous{}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/authn/auth.go b/vendor/github.com/google/go-containerregistry/pkg/authn/auth.go
new file mode 100644
index 0000000000..c39ee5a9f9
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/authn/auth.go
@@ -0,0 +1,29 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package authn
+
+import (
+ "fmt"
+)
+
+// auth implements Authenticator for an "auth" entry of the docker config.
+type auth struct {
+ token string
+}
+
+// Authorization implements Authenticator.
+func (a *auth) Authorization() (string, error) {
+ return fmt.Sprintf("Basic %s", a.token), nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/authn/authn.go b/vendor/github.com/google/go-containerregistry/pkg/authn/authn.go
new file mode 100644
index 0000000000..30e935cbc9
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/authn/authn.go
@@ -0,0 +1,21 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package authn
+
+// Authenticator is used to authenticate Docker transports.
+type Authenticator interface {
+ // Authorization returns the value to use in an http transport's Authorization header.
+ Authorization() (string, error)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/authn/basic.go b/vendor/github.com/google/go-containerregistry/pkg/authn/basic.go
new file mode 100644
index 0000000000..7cd4984069
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/authn/basic.go
@@ -0,0 +1,33 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package authn
+
+import (
+ "encoding/base64"
+ "fmt"
+)
+
+// Basic implements Authenticator for basic authentication.
+type Basic struct {
+ Username string
+ Password string
+}
+
+// Authorization implements Authenticator.
+func (b *Basic) Authorization() (string, error) {
+ delimited := fmt.Sprintf("%s:%s", b.Username, b.Password)
+ encoded := base64.StdEncoding.EncodeToString([]byte(delimited))
+ return fmt.Sprintf("Basic %s", encoded), nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/authn/bearer.go b/vendor/github.com/google/go-containerregistry/pkg/authn/bearer.go
new file mode 100644
index 0000000000..cb1ae5845a
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/authn/bearer.go
@@ -0,0 +1,29 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package authn
+
+import (
+ "fmt"
+)
+
+// Bearer implements Authenticator for bearer authentication.
+type Bearer struct {
+ Token string `json:"token"`
+}
+
+// Authorization implements Authenticator.
+func (b *Bearer) Authorization() (string, error) {
+ return fmt.Sprintf("Bearer %s", b.Token), nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/authn/doc.go b/vendor/github.com/google/go-containerregistry/pkg/authn/doc.go
new file mode 100644
index 0000000000..c2a5fc0267
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/authn/doc.go
@@ -0,0 +1,17 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package authn defines different methods of authentication for
+// talking to a container registry.
+package authn
diff --git a/vendor/github.com/google/go-containerregistry/pkg/authn/helper.go b/vendor/github.com/google/go-containerregistry/pkg/authn/helper.go
new file mode 100644
index 0000000000..c8ba4e6e24
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/authn/helper.go
@@ -0,0 +1,102 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package authn
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+ "os/exec"
+ "strings"
+
+ "github.com/google/go-containerregistry/pkg/name"
+)
+
+// magicNotFoundMessage is the string that the CLI special cases to mean
+// that a given registry domain wasn't found.
+const (
+ magicNotFoundMessage = "credentials not found in native keychain"
+)
+
+// runner allows us to swap out how we "Run" os/exec commands.
+type runner interface {
+ Run(*exec.Cmd) error
+}
+
+// defaultRunner implements runner by just calling Run().
+type defaultRunner struct{}
+
+// Run implements runner.
+func (dr *defaultRunner) Run(cmd *exec.Cmd) error {
+ return cmd.Run()
+}
+
+// helper executes the named credential helper against the given domain.
+type helper struct {
+ name string
+ domain name.Registry
+
+ // We add this layer of indirection to facilitate unit testing.
+ r runner
+}
+
+// helperOutput is the expected JSON output form of a credential helper
+// (or at least these are the fields that we care about).
+type helperOutput struct {
+ Username string
+ Secret string
+}
+
+// Authorization implements Authenticator.
+func (h *helper) Authorization() (string, error) {
+ helperName := fmt.Sprintf("docker-credential-%s", h.name)
+ // We want to execute:
+ // echo -n {domain} | docker-credential-{name} get
+ cmd := exec.Command(helperName, "get")
+
+ // Some keychains expect a scheme:
+ // https://github.com/bazelbuild/rules_docker/issues/111
+ cmd.Stdin = strings.NewReader(fmt.Sprintf("https://%v", h.domain))
+
+ var out bytes.Buffer
+ cmd.Stdout = &out
+ cmdErr := h.r.Run(cmd)
+
+ // If we see this specific message, it means the domain wasn't found
+ // and we should fall back on anonymous auth.
+ output := strings.TrimSpace(out.String())
+ if output == magicNotFoundMessage {
+ return Anonymous.Authorization()
+ }
+
+ // Any other output should be parsed as JSON and the Username / Secret
+ // fields used for Basic authentication.
+ ho := helperOutput{}
+ if err := json.Unmarshal([]byte(output), &ho); err != nil {
+ if cmdErr != nil {
+ // If we failed to parse output, it won't contain Secret, so returning it
+ // in an error should be fine.
+ return "", fmt.Errorf("invoking %s: %v; output: %s", helperName, cmdErr, output)
+ }
+ return "", err
+ }
+
+ if cmdErr != nil {
+ return "", fmt.Errorf("invoking %s: %v", helperName, cmdErr)
+ }
+
+ b := Basic{Username: ho.Username, Password: ho.Secret}
+ return b.Authorization()
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/doc.go b/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/doc.go
new file mode 100644
index 0000000000..c9ae7f1281
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/doc.go
@@ -0,0 +1,18 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package k8schain exposes an implementation of the authn.Keychain interface
+// based on the semantics the Kubelet follows when pulling the images for a
+// Pod in Kubernetes.
+package k8schain
diff --git a/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/k8schain.go b/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/k8schain.go
new file mode 100644
index 0000000000..d90ac4d1d3
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/k8schain.go
@@ -0,0 +1,165 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package k8schain
+
+import (
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+ v1 "k8s.io/api/core/v1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/client-go/kubernetes"
+ "k8s.io/client-go/rest"
+ "k8s.io/kubernetes/pkg/credentialprovider"
+ credentialprovidersecrets "k8s.io/kubernetes/pkg/credentialprovider/secrets"
+
+ // Credential providers
+ _ "k8s.io/kubernetes/pkg/credentialprovider/aws"
+ _ "k8s.io/kubernetes/pkg/credentialprovider/azure"
+ _ "k8s.io/kubernetes/pkg/credentialprovider/gcp"
+ // TODO(mattmoor): This doesn't seem to build, figure out why `dep ensure`
+ // is not working and add constraints.
+ // _ "k8s.io/kubernetes/pkg/credentialprovider/rancher"
+)
+
+// Options holds configuration data for guiding credential resolution.
+type Options struct {
+ // Namespace holds the namespace inside of which we are resolving the
+ // image reference. If empty, "default" is assumed.
+ Namespace string
+ // ServiceAccountName holds the serviceaccount as which the container
+ // will run (scoped to Namespace). If empty, "default" is assumed.
+ ServiceAccountName string
+ // ImagePullSecrets holds the names of the Kubernetes secrets (scoped to
+ // Namespace) containing credential data to use for the image pull.
+ ImagePullSecrets []string
+}
+
+// origKeyRing is a variable so that testing can adjust it.
+var origKeyRing = credentialprovider.NewDockerKeyring()
+
+// New returns a new authn.Keychain suitable for resolving image references as
+// scoped by the provided Options. It speaks to Kubernetes through the provided
+// client interface.
+func New(client kubernetes.Interface, opt Options) (authn.Keychain, error) {
+ if opt.Namespace == "" {
+ opt.Namespace = "default"
+ }
+ if opt.ServiceAccountName == "" {
+ opt.ServiceAccountName = "default"
+ }
+
+ // Implement a Kubernetes-style authentication keychain.
+ // This needs to support roughly the following kinds of authentication:
+ // 1) The implicit authentication from k8s.io/kubernetes/pkg/credentialprovider
+ // 2) The explicit authentication from imagePullSecrets on Pod
+ // 3) The semi-implicit authentication where imagePullSecrets are on the
+ // Pod's service account.
+
+ // First, fetch all of the explicitly declared pull secrets
+ var pullSecrets []v1.Secret
+ if client != nil {
+ for _, name := range opt.ImagePullSecrets {
+ ps, err := client.CoreV1().Secrets(opt.Namespace).Get(name, metav1.GetOptions{})
+ if err != nil {
+ return nil, err
+ }
+ pullSecrets = append(pullSecrets, *ps)
+ }
+
+ // Second, fetch all of the pull secrets attached to our service account.
+ sa, err := client.CoreV1().ServiceAccounts(opt.Namespace).Get(opt.ServiceAccountName, metav1.GetOptions{})
+ if err != nil {
+ return nil, err
+ }
+ for _, localObj := range sa.ImagePullSecrets {
+ ps, err := client.CoreV1().Secrets(opt.Namespace).Get(localObj.Name, metav1.GetOptions{})
+ if err != nil {
+ return nil, err
+ }
+ pullSecrets = append(pullSecrets, *ps)
+ }
+ }
+
+ // Third, extend the default keyring with the pull secrets.
+ kr, err := credentialprovidersecrets.MakeDockerKeyring(pullSecrets, origKeyRing)
+ if err != nil {
+ return nil, err
+ }
+ return &keychain{
+ keyring: kr,
+ }, nil
+}
+
+// NewInCluster returns a new authn.Keychain suitable for resolving image references as
+// scoped by the provided Options, constructing a kubernetes.Interface based on in-cluster
+// authentication.
+func NewInCluster(opt Options) (authn.Keychain, error) {
+ clusterConfig, err := rest.InClusterConfig()
+ if err != nil {
+ return nil, err
+ }
+
+ client, err := kubernetes.NewForConfig(clusterConfig)
+ if err != nil {
+ return nil, err
+ }
+ return New(client, opt)
+}
+
+// NewNoClient returns a new authn.Keychain that supports the portions of the K8s keychain
+// that don't read ImagePullSecrets. This limits it to roughly the Node-identity-based
+// authentication schemes in Kubernetes pkg/credentialprovider. This version of the
+// k8schain drops the requirement that we run as a K8s serviceaccount with access to all
+// of the on-cluster secrets. This drop in fidelity also diminishes its value as a stand-in
+// for Kubernetes authentication, but this actually targets a different use-case. What
+// remains is an interesting sweet spot: this variant can serve as a credential provider
+// for all of the major public clouds, but in library form (vs. an executable you exec).
+func NewNoClient() (authn.Keychain, error) {
+ return New(nil, Options{})
+}
+
+type lazyProvider credentialprovider.LazyAuthConfiguration
+
+// Authorization implements Authenticator.
+func (lp lazyProvider) Authorization() (string, error) {
+ authConfig := credentialprovider.LazyProvide(credentialprovider.LazyAuthConfiguration(lp))
+ if authConfig.Auth != "" {
+ return "Basic " + authConfig.Auth, nil
+ }
+ if authConfig.Username != "" {
+ basic := authn.Basic{
+ Username: authConfig.Username,
+ Password: authConfig.Password,
+ }
+ return basic.Authorization()
+ }
+ return authn.Anonymous.Authorization()
+}
+
+type keychain struct {
+ keyring credentialprovider.DockerKeyring
+}
+
+// Resolve implements authn.Keychain
+func (kc *keychain) Resolve(reg name.Registry) (authn.Authenticator, error) {
+ // TODO(mattmoor): Lookup expects an image reference and we only have a registry,
+ // find something better than this.
+ creds, found := kc.keyring.Lookup(reg.String() + "/foo/bar")
+ if !found || len(creds) < 1 {
+ return authn.Anonymous, nil
+ }
+ // TODO(mattmoor): How to support multiple credentials?
+ return lazyProvider(creds[0]), nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/tests/explicit/main.go b/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/tests/explicit/main.go
new file mode 100644
index 0000000000..78fae30608
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/tests/explicit/main.go
@@ -0,0 +1,52 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+ "log"
+
+ "github.com/google/go-containerregistry/pkg/name"
+ "github.com/google/go-containerregistry/pkg/v1/remote"
+
+ "github.com/google/go-containerregistry/pkg/authn/k8schain"
+)
+
+func main() {
+ ref, err := name.NewTag("gcr.io/build-crd-testing/secret-sauce:latest", name.WeakValidation)
+ if err != nil {
+ log.Fatalf("NewTag() = %v", err)
+ }
+
+ kc, err := k8schain.NewInCluster(k8schain.Options{
+ Namespace: "explicit-namespace",
+ ImagePullSecrets: []string{
+ "explicit-secret",
+ },
+ })
+ if err != nil {
+ log.Fatalf("k8schain.New() = %v", err)
+ }
+
+ img, err := remote.Image(ref, remote.WithAuthFromKeychain(kc))
+ if err != nil {
+ log.Fatalf("remote.Image() = %v", err)
+ }
+
+ digest, err := img.Digest()
+ if err != nil {
+ log.Fatalf("Digest() = %v", err)
+ }
+ log.Printf("got digest: %v", digest)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/tests/implicit/main.go b/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/tests/implicit/main.go
new file mode 100644
index 0000000000..4873f162f6
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/tests/implicit/main.go
@@ -0,0 +1,52 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+ "log"
+ "os"
+
+ "github.com/google/go-containerregistry/pkg/name"
+ "github.com/google/go-containerregistry/pkg/v1/remote"
+
+ "github.com/google/go-containerregistry/pkg/authn/k8schain"
+)
+
+func main() {
+ if len(os.Args) != 2 {
+ log.Fatalf("expected usage: , got: %v", os.Args)
+ }
+
+ kc, err := k8schain.NewInCluster(k8schain.Options{})
+ if err != nil {
+ log.Fatalf("k8schain.New() = %v", err)
+ }
+
+ ref, err := name.NewDigest(os.Args[1], name.WeakValidation)
+ if err != nil {
+ log.Fatalf("NewDigest() = %v", err)
+ }
+
+ img, err := remote.Image(ref, remote.WithAuthFromKeychain(kc))
+ if err != nil {
+ log.Fatalf("remote.Image() = %v", err)
+ }
+
+ digest, err := img.Digest()
+ if err != nil {
+ log.Fatalf("Digest() = %v", err)
+ }
+ log.Printf("got digest: %v", digest)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/tests/noauth/main.go b/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/tests/noauth/main.go
new file mode 100644
index 0000000000..ba4aef8550
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/tests/noauth/main.go
@@ -0,0 +1,47 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+ "log"
+
+ "github.com/google/go-containerregistry/pkg/name"
+ "github.com/google/go-containerregistry/pkg/v1/remote"
+
+ "github.com/google/go-containerregistry/pkg/authn/k8schain"
+)
+
+func main() {
+ kc, err := k8schain.NewInCluster(k8schain.Options{})
+ if err != nil {
+ log.Fatalf("k8schain.New() = %v", err)
+ }
+
+ ref, err := name.ParseReference("ubuntu:latest", name.WeakValidation)
+ if err != nil {
+ log.Fatalf("ParseReference() = %v", err)
+ }
+
+ img, err := remote.Image(ref, remote.WithAuthFromKeychain(kc))
+ if err != nil {
+ log.Fatalf("remote.Image() = %v", err)
+ }
+
+ digest, err := img.Digest()
+ if err != nil {
+ log.Fatalf("Digest() = %v", err)
+ }
+ log.Printf("got digest: %v", digest)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/tests/serviceaccount/main.go b/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/tests/serviceaccount/main.go
new file mode 100644
index 0000000000..9bcc8fb3ea
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/tests/serviceaccount/main.go
@@ -0,0 +1,54 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+ "log"
+
+ "github.com/google/go-containerregistry/pkg/name"
+ "github.com/google/go-containerregistry/pkg/v1/remote"
+
+ "github.com/google/go-containerregistry/pkg/authn/k8schain"
+)
+
+func main() {
+ ref, err := name.NewTag("gcr.io/build-crd-testing/secret-sauce:latest", name.WeakValidation)
+ if err != nil {
+ log.Fatalf("NewTag() = %v", err)
+ }
+
+ kc, err := k8schain.NewInCluster(k8schain.Options{
+ Namespace: "serviceaccount-namespace",
+ ServiceAccountName: "serviceaccount",
+ // This is the name of the imagePullSecrets attached to this service account.
+ // ImagePullSecrets: []string{
+ // "serviceaccount-secret",
+ // },
+ })
+ if err != nil {
+ log.Fatalf("k8schain.New() = %v", err)
+ }
+
+ img, err := remote.Image(ref, remote.WithAuthFromKeychain(kc))
+ if err != nil {
+ log.Fatalf("remote.Image() = %v", err)
+ }
+
+ digest, err := img.Digest()
+ if err != nil {
+ log.Fatalf("Digest() = %v", err)
+ }
+ log.Printf("got digest: %v", digest)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/authn/keychain.go b/vendor/github.com/google/go-containerregistry/pkg/authn/keychain.go
new file mode 100644
index 0000000000..aee1fedb99
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/authn/keychain.go
@@ -0,0 +1,152 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package authn
+
+import (
+ "encoding/json"
+ "errors"
+ "fmt"
+ "io/ioutil"
+ "log"
+ "os"
+ "path/filepath"
+ "runtime"
+
+ "github.com/google/go-containerregistry/pkg/name"
+)
+
+// Keychain is an interface for resolving an image reference to a credential.
+type Keychain interface {
+ // Resolve looks up the most appropriate credential for the specified registry.
+ Resolve(name.Registry) (Authenticator, error)
+}
+
+// defaultKeychain implements Keychain with the semantics of the standard Docker
+// credential keychain.
+type defaultKeychain struct{}
+
+// configDir returns the directory containing Docker's config.json
+func configDir() (string, error) {
+ if dc := os.Getenv("DOCKER_CONFIG"); dc != "" {
+ return dc, nil
+ }
+ if h := dockerUserHomeDir(); h != "" {
+ return filepath.Join(dockerUserHomeDir(), ".docker"), nil
+ }
+ return "", errNoHomeDir
+}
+
+var errNoHomeDir = errors.New("could not determine home directory")
+
+// dockerUserHomeDir returns the current user's home directory, as interpreted by Docker.
+func dockerUserHomeDir() string {
+ if runtime.GOOS == "windows" {
+ // Docker specifically expands "%USERPROFILE%" on Windows,
+ return os.Getenv("USERPROFILE")
+ }
+ // Docker defaults to "$HOME" Linux and OSX.
+ return os.Getenv("HOME")
+}
+
+// authEntry is a helper for JSON parsing an "auth" entry of config.json
+// This is not meant for direct consumption.
+type authEntry struct {
+ Auth string `json:"auth"`
+ Username string `json:"username"`
+ Password string `json:"password"`
+}
+
+// cfg is a helper for JSON parsing Docker's config.json
+// This is not meant for direct consumption.
+type cfg struct {
+ CredHelper map[string]string `json:"credHelpers,omitempty"`
+ CredStore string `json:"credsStore,omitempty"`
+ Auths map[string]authEntry `json:"auths,omitempty"`
+}
+
+// There are a variety of ways a domain may get qualified within the Docker credential file.
+// We enumerate them here as format strings.
+var (
+ domainForms = []string{
+ // Allow naked domains
+ "%s",
+ // Allow scheme-prefixed.
+ "https://%s",
+ "http://%s",
+ // Allow scheme-prefixes with version in url path.
+ "https://%s/v1/",
+ "http://%s/v1/",
+ "https://%s/v2/",
+ "http://%s/v2/",
+ }
+
+ // Export an instance of the default keychain.
+ DefaultKeychain Keychain = &defaultKeychain{}
+)
+
+// Resolve implements Keychain.
+func (dk *defaultKeychain) Resolve(reg name.Registry) (Authenticator, error) {
+ dir, err := configDir()
+ if err != nil {
+ log.Printf("Unable to determine config dir: %v", err)
+ return Anonymous, nil
+ }
+ file := filepath.Join(dir, "config.json")
+ content, err := ioutil.ReadFile(file)
+ if err != nil {
+ log.Printf("Unable to read %q: %v", file, err)
+ return Anonymous, nil
+ }
+
+ var cf cfg
+ if err := json.Unmarshal(content, &cf); err != nil {
+ log.Printf("Unable to parse %q: %v", file, err)
+ return Anonymous, nil
+ }
+
+ // Per-registry credential helpers take precedence.
+ if cf.CredHelper != nil {
+ for _, form := range domainForms {
+ if entry, ok := cf.CredHelper[fmt.Sprintf(form, reg.Name())]; ok {
+ return &helper{name: entry, domain: reg, r: &defaultRunner{}}, nil
+ }
+ }
+ }
+
+ // A global credential helper is next in precedence.
+ if cf.CredStore != "" {
+ return &helper{name: cf.CredStore, domain: reg, r: &defaultRunner{}}, nil
+ }
+
+ // Lastly, the 'auths' section directly contains basic auth entries.
+ if cf.Auths != nil {
+ for _, form := range domainForms {
+ if entry, ok := cf.Auths[fmt.Sprintf(form, reg.Name())]; ok {
+ if entry.Auth != "" {
+ return &auth{entry.Auth}, nil
+ } else if entry.Username != "" {
+ return &Basic{Username: entry.Username, Password: entry.Password}, nil
+ } else {
+ // TODO(mattmoor): Support identitytoken
+ // TODO(mattmoor): Support registrytoken
+ return nil, fmt.Errorf("Unsupported entry in \"auths\" section of %q", file)
+ }
+ }
+ }
+ }
+
+ // Fallback on anonymous.
+ return Anonymous, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/authn/multikeychain.go b/vendor/github.com/google/go-containerregistry/pkg/authn/multikeychain.go
new file mode 100644
index 0000000000..9d7fb3145c
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/authn/multikeychain.go
@@ -0,0 +1,45 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package authn
+
+import (
+ "github.com/google/go-containerregistry/pkg/name"
+)
+
+type multiKeychain struct {
+ keychains []Keychain
+}
+
+// Assert that our multi-keychain implements Keychain.
+var _ (Keychain) = (*multiKeychain)(nil)
+
+// NewMultiKeychain composes a list of keychains into one new keychain.
+func NewMultiKeychain(kcs ...Keychain) Keychain {
+ return &multiKeychain{keychains: kcs}
+}
+
+// Resolve implements Keychain.
+func (mk *multiKeychain) Resolve(reg name.Registry) (Authenticator, error) {
+ for _, kc := range mk.keychains {
+ auth, err := kc.Resolve(reg)
+ if err != nil {
+ return nil, err
+ }
+ if auth != Anonymous {
+ return auth, nil
+ }
+ }
+ return Anonymous, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/crane/append.go b/vendor/github.com/google/go-containerregistry/pkg/crane/append.go
new file mode 100644
index 0000000000..a702f09dc3
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/crane/append.go
@@ -0,0 +1,93 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package crane
+
+import (
+ "log"
+ "net/http"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+ "github.com/google/go-containerregistry/pkg/v1/mutate"
+ "github.com/google/go-containerregistry/pkg/v1/remote"
+ "github.com/google/go-containerregistry/pkg/v1/tarball"
+ "github.com/spf13/cobra"
+)
+
+func init() { Root.AddCommand(NewCmdAppend()) }
+
+// NewCmdAppend creates a new cobra.Command for the append subcommand.
+func NewCmdAppend() *cobra.Command {
+ var baseRef, newTag, newLayer, outFile string
+ appendCmd := &cobra.Command{
+ Use: "append",
+ Short: "Append contents of a tarball to a remote image",
+ Args: cobra.NoArgs,
+ Run: func(_ *cobra.Command, args []string) {
+ doAppend(baseRef, newTag, newLayer, outFile)
+ },
+ }
+ appendCmd.Flags().StringVarP(&baseRef, "base", "b", "", "Name of base image to append to")
+ appendCmd.Flags().StringVarP(&newTag, "new_tag", "t", "", "Tag to apply to resulting image")
+ appendCmd.Flags().StringVarP(&newLayer, "new_layer", "f", "", "Path to tarball to append to image")
+ appendCmd.Flags().StringVarP(&outFile, "output", "o", "", "Path to new tarball of resulting image")
+
+ appendCmd.MarkFlagRequired("base")
+ appendCmd.MarkFlagRequired("new_tag")
+ appendCmd.MarkFlagRequired("new_layer")
+ return appendCmd
+}
+
+func doAppend(src, dst, tar, output string) {
+ srcRef, err := name.ParseReference(src, name.WeakValidation)
+ if err != nil {
+ log.Fatalf("parsing reference %q: %v", src, err)
+ }
+ srcImage, err := remote.Image(srcRef, remote.WithAuthFromKeychain(authn.DefaultKeychain))
+ if err != nil {
+ log.Fatalf("reading image %q: %v", srcRef, err)
+ }
+
+ dstTag, err := name.NewTag(dst, name.WeakValidation)
+ if err != nil {
+ log.Fatalf("parsing tag %q: %v", dst, err)
+ }
+
+ layer, err := tarball.LayerFromFile(tar)
+ if err != nil {
+ log.Fatalf("reading tar %q: %v", tar, err)
+ }
+
+ image, err := mutate.AppendLayers(srcImage, layer)
+ if err != nil {
+ log.Fatalf("appending layer: %v", err)
+ }
+
+ if output != "" {
+ if err := tarball.WriteToFile(output, dstTag, image); err != nil {
+ log.Fatalf("writing output %q: %v", output, err)
+ }
+ return
+ }
+
+ dstAuth, err := authn.DefaultKeychain.Resolve(dstTag.Context().Registry)
+ if err != nil {
+ log.Fatalf("getting creds for %q: %v", dstTag, err)
+ }
+
+ if err := remote.Write(dstTag, image, dstAuth, http.DefaultTransport); err != nil {
+ log.Fatalf("writing image %q: %v", dstTag, err)
+ }
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/crane/config.go b/vendor/github.com/google/go-containerregistry/pkg/crane/config.go
new file mode 100644
index 0000000000..996edbdb20
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/crane/config.go
@@ -0,0 +1,47 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package crane
+
+import (
+ "fmt"
+ "log"
+
+ "github.com/spf13/cobra"
+)
+
+func init() { Root.AddCommand(NewCmdConfig()) }
+
+// NewCmdConfig creates a new cobra.Command for the config subcommand.
+func NewCmdConfig() *cobra.Command {
+ return &cobra.Command{
+ Use: "config",
+ Short: "Get the config of an image",
+ Args: cobra.ExactArgs(1),
+ Run: config,
+ }
+}
+
+func config(_ *cobra.Command, args []string) {
+ ref := args[0]
+ i, _, err := getImage(ref)
+ if err != nil {
+ log.Fatalln(err)
+ }
+ config, err := i.RawConfigFile()
+ if err != nil {
+ log.Fatalln(err)
+ }
+ fmt.Print(string(config))
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/crane/copy.go b/vendor/github.com/google/go-containerregistry/pkg/crane/copy.go
new file mode 100644
index 0000000000..10dcfebb9f
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/crane/copy.go
@@ -0,0 +1,67 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package crane
+
+import (
+ "log"
+ "net/http"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+ "github.com/google/go-containerregistry/pkg/v1/remote"
+ "github.com/spf13/cobra"
+)
+
+func init() { Root.AddCommand(NewCmdCopy()) }
+
+// NewCmdCopy creates a new cobra.Command for the copy subcommand.
+func NewCmdCopy() *cobra.Command {
+ return &cobra.Command{
+ Use: "copy",
+ Aliases: []string{"cp"},
+ Short: "Efficiently copy a remote image from src to dst",
+ Args: cobra.ExactArgs(2),
+ Run: doCopy,
+ }
+}
+
+func doCopy(_ *cobra.Command, args []string) {
+ src, dst := args[0], args[1]
+ srcRef, err := name.ParseReference(src, name.WeakValidation)
+ if err != nil {
+ log.Fatalf("parsing reference %q: %v", src, err)
+ }
+ log.Printf("Pulling %v", srcRef)
+
+ img, err := remote.Image(srcRef, remote.WithAuthFromKeychain(authn.DefaultKeychain))
+ if err != nil {
+ log.Fatalf("reading image %q: %v", srcRef, err)
+ }
+
+ dstRef, err := name.ParseReference(dst, name.WeakValidation)
+ if err != nil {
+ log.Fatalf("parsing reference %q: %v", dst, err)
+ }
+ log.Printf("Pushing %v", dstRef)
+
+ dstAuth, err := authn.DefaultKeychain.Resolve(dstRef.Context().Registry)
+ if err != nil {
+ log.Fatalf("getting creds for %q: %v", dstRef, err)
+ }
+
+ if err := remote.Write(dstRef, img, dstAuth, http.DefaultTransport); err != nil {
+ log.Fatalf("writing image %q: %v", dstRef, err)
+ }
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/crane/delete.go b/vendor/github.com/google/go-containerregistry/pkg/crane/delete.go
new file mode 100644
index 0000000000..84dd721e68
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/crane/delete.go
@@ -0,0 +1,54 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package crane
+
+import (
+ "log"
+ "net/http"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+ "github.com/google/go-containerregistry/pkg/v1/remote"
+ "github.com/spf13/cobra"
+)
+
+func init() { Root.AddCommand(NewCmdDelete()) }
+
+// NewCmdDelete creates a new cobra.Command for the delete subcommand.
+func NewCmdDelete() *cobra.Command {
+ return &cobra.Command{
+ Use: "delete",
+ Short: "Delete an image reference from its registry",
+ Args: cobra.ExactArgs(1),
+ Run: doDelete,
+ }
+}
+
+func doDelete(_ *cobra.Command, args []string) {
+ ref := args[0]
+ r, err := name.ParseReference(ref, name.WeakValidation)
+ if err != nil {
+ log.Fatalf("parsing reference %q: %v", ref, err)
+ }
+
+ auth, err := authn.DefaultKeychain.Resolve(r.Context().Registry)
+ if err != nil {
+ log.Fatalf("getting creds for %q: %v", r, err)
+ }
+
+ if err := remote.Delete(r, auth, http.DefaultTransport); err != nil {
+ log.Fatalf("deleting image %q: %v", r, err)
+ }
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/crane/digest.go b/vendor/github.com/google/go-containerregistry/pkg/crane/digest.go
new file mode 100644
index 0000000000..d9acce6f87
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/crane/digest.go
@@ -0,0 +1,47 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package crane
+
+import (
+ "fmt"
+ "log"
+
+ "github.com/spf13/cobra"
+)
+
+func init() { Root.AddCommand(NewCmdDigest()) }
+
+// NewCmdDigest creates a new cobra.Command for the digest subcommand.
+func NewCmdDigest() *cobra.Command {
+ return &cobra.Command{
+ Use: "digest",
+ Short: "Get the digest of an image",
+ Args: cobra.ExactArgs(1),
+ Run: digest,
+ }
+}
+
+func digest(_ *cobra.Command, args []string) {
+ ref := args[0]
+ i, _, err := getImage(ref)
+ if err != nil {
+ log.Fatalln(err)
+ }
+ digest, err := i.Digest()
+ if err != nil {
+ log.Fatalln(err)
+ }
+ fmt.Println(digest.String())
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/crane/get.go b/vendor/github.com/google/go-containerregistry/pkg/crane/get.go
new file mode 100644
index 0000000000..5ac79c1ba7
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/crane/get.go
@@ -0,0 +1,36 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package crane
+
+import (
+ "fmt"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+ "github.com/google/go-containerregistry/pkg/v1/remote"
+)
+
+func getImage(r string) (v1.Image, name.Reference, error) {
+ ref, err := name.ParseReference(r, name.WeakValidation)
+ if err != nil {
+ return nil, nil, fmt.Errorf("parsing reference %q: %v", r, err)
+ }
+ img, err := remote.Image(ref, remote.WithAuthFromKeychain(authn.DefaultKeychain))
+ if err != nil {
+ return nil, nil, fmt.Errorf("reading image %q: %v", ref, err)
+ }
+ return img, ref, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/crane/list.go b/vendor/github.com/google/go-containerregistry/pkg/crane/list.go
new file mode 100644
index 0000000000..d138f37e04
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/crane/list.go
@@ -0,0 +1,60 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package crane
+
+import (
+ "fmt"
+ "log"
+ "net/http"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+ "github.com/google/go-containerregistry/pkg/v1/remote"
+ "github.com/spf13/cobra"
+)
+
+func init() { Root.AddCommand(NewCmdList()) }
+
+// NewCmdList creates a new cobra.Command for the ls subcommand.
+func NewCmdList() *cobra.Command {
+ return &cobra.Command{
+ Use: "ls",
+ Short: "List the tags in a repo",
+ Args: cobra.ExactArgs(1),
+ Run: ls,
+ }
+}
+
+func ls(_ *cobra.Command, args []string) {
+ r := args[0]
+ repo, err := name.NewRepository(r, name.WeakValidation)
+ if err != nil {
+ log.Fatalf("parsing repo %q: %v", r, err)
+ }
+
+ auth, err := authn.DefaultKeychain.Resolve(repo.Registry)
+ if err != nil {
+ log.Fatalf("getting creds for %q: %v", repo, err)
+ }
+
+ tags, err := remote.List(repo, auth, http.DefaultTransport)
+ if err != nil {
+ log.Fatalf("reading tags for %q: %v", repo, err)
+ }
+
+ for _, tag := range tags {
+ fmt.Println(tag)
+ }
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/crane/manifest.go b/vendor/github.com/google/go-containerregistry/pkg/crane/manifest.go
new file mode 100644
index 0000000000..8b44e27305
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/crane/manifest.go
@@ -0,0 +1,47 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package crane
+
+import (
+ "fmt"
+ "log"
+
+ "github.com/spf13/cobra"
+)
+
+func init() { Root.AddCommand(NewCmdManifest()) }
+
+// NewCmdManifest creates a new cobra.Command for the manifest subcommand.
+func NewCmdManifest() *cobra.Command {
+ return &cobra.Command{
+ Use: "manifest",
+ Short: "Get the manifest of an image",
+ Args: cobra.ExactArgs(1),
+ Run: manifest,
+ }
+}
+
+func manifest(_ *cobra.Command, args []string) {
+ ref := args[0]
+ i, _, err := getImage(ref)
+ if err != nil {
+ log.Fatalln(err)
+ }
+ manifest, err := i.RawManifest()
+ if err != nil {
+ log.Fatalln(err)
+ }
+ fmt.Print(string(manifest))
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/crane/pull.go b/vendor/github.com/google/go-containerregistry/pkg/crane/pull.go
new file mode 100644
index 0000000000..964ed57d2e
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/crane/pull.go
@@ -0,0 +1,79 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package crane
+
+import (
+ "fmt"
+ "log"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+ "github.com/google/go-containerregistry/pkg/v1/remote"
+ "github.com/google/go-containerregistry/pkg/v1/tarball"
+ "github.com/spf13/cobra"
+)
+
+// Tag applied to images that were pulled by digest. This denotes that the
+// image was (probably) never tagged with this, but lets us avoid applying the
+// ":latest" tag which might be misleading.
+const iWasADigestTag = "i-was-a-digest"
+
+func init() { Root.AddCommand(NewCmdPull()) }
+
+// NewCmdPull creates a new cobra.Command for the pull subcommand.
+func NewCmdPull() *cobra.Command {
+ return &cobra.Command{
+ Use: "pull",
+ Short: "Pull a remote image by reference and store its contents in a tarball",
+ Args: cobra.ExactArgs(2),
+ Run: pull,
+ }
+}
+
+func pull(_ *cobra.Command, args []string) {
+ src, dst := args[0], args[1]
+
+ ref, err := name.ParseReference(src, name.WeakValidation)
+ if err != nil {
+ log.Fatalf("parsing tag %q: %v", src, err)
+ }
+ log.Printf("Pulling %v", ref)
+
+ i, err := remote.Image(ref, remote.WithAuthFromKeychain(authn.DefaultKeychain))
+ if err != nil {
+ log.Fatalf("reading image %q: %v", ref, err)
+ }
+
+ // WriteToFile wants a tag to write to the tarball, but we might have
+ // been given a digest.
+ // If the original ref was a tag, use that. Otherwise, if it was a
+ // digest, tag the image with :i-was-a-digest instead.
+ tag, ok := ref.(name.Tag)
+ if !ok {
+ d, ok := ref.(name.Digest)
+ if !ok {
+ log.Fatal("ref wasn't a tag or digest")
+ }
+ s := fmt.Sprintf("%s:%s", d.Repository.Name(), iWasADigestTag)
+ tag, err = name.NewTag(s, name.WeakValidation)
+ if err != nil {
+ log.Fatalf("parsing digest as tag (%s): %v", s, err)
+ }
+ }
+
+ if err := tarball.WriteToFile(dst, tag, i); err != nil {
+ log.Fatalf("writing image %q: %v", dst, err)
+ }
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/crane/push.go b/vendor/github.com/google/go-containerregistry/pkg/crane/push.go
new file mode 100644
index 0000000000..9cd2e42136
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/crane/push.go
@@ -0,0 +1,61 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package crane
+
+import (
+ "log"
+ "net/http"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+ "github.com/google/go-containerregistry/pkg/v1/remote"
+ "github.com/google/go-containerregistry/pkg/v1/tarball"
+ "github.com/spf13/cobra"
+)
+
+func init() { Root.AddCommand(NewCmdPush()) }
+
+// NewCmdPush creates a new cobra.Command for the push subcommand.
+func NewCmdPush() *cobra.Command {
+ return &cobra.Command{
+ Use: "push",
+ Short: "Push image contents as a tarball to a remote registry",
+ Args: cobra.ExactArgs(2),
+ Run: push,
+ }
+}
+
+func push(_ *cobra.Command, args []string) {
+ src, dst := args[0], args[1]
+ t, err := name.NewTag(dst, name.WeakValidation)
+ if err != nil {
+ log.Fatalf("parsing tag %q: %v", dst, err)
+ }
+ log.Printf("Pushing %v", t)
+
+ auth, err := authn.DefaultKeychain.Resolve(t.Registry)
+ if err != nil {
+ log.Fatalf("getting creds for %q: %v", t, err)
+ }
+
+ i, err := tarball.ImageFromPath(src, nil)
+ if err != nil {
+ log.Fatalf("reading image %q: %v", src, err)
+ }
+
+ if err := remote.Write(t, i, auth, http.DefaultTransport); err != nil {
+ log.Fatalf("writing image %q: %v", t, err)
+ }
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/crane/rebase.go b/vendor/github.com/google/go-containerregistry/pkg/crane/rebase.go
new file mode 100644
index 0000000000..1a684935d4
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/crane/rebase.go
@@ -0,0 +1,98 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package crane
+
+import (
+ "fmt"
+ "log"
+ "net/http"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+ "github.com/google/go-containerregistry/pkg/v1/mutate"
+ "github.com/google/go-containerregistry/pkg/v1/remote"
+ "github.com/spf13/cobra"
+)
+
+func init() { Root.AddCommand(NewCmdRebase()) }
+
+// NewCmdRebase creates a new cobra.Command for the rebase subcommand.
+func NewCmdRebase() *cobra.Command {
+ var orig, oldBase, newBase, rebased string
+ rebaseCmd := &cobra.Command{
+ Use: "rebase",
+ Short: "Rebase an image onto a new base image",
+ Args: cobra.NoArgs,
+ Run: func(*cobra.Command, []string) {
+ rebase(orig, oldBase, newBase, rebased)
+ },
+ }
+ rebaseCmd.Flags().StringVarP(&orig, "original", "", "", "Original image to rebase")
+ rebaseCmd.Flags().StringVarP(&oldBase, "old_base", "", "", "Old base image to remove")
+ rebaseCmd.Flags().StringVarP(&newBase, "new_base", "", "", "New base image to insert")
+ rebaseCmd.Flags().StringVarP(&rebased, "rebased", "", "", "Tag to apply to rebased image")
+
+ rebaseCmd.MarkFlagRequired("original")
+ rebaseCmd.MarkFlagRequired("old_base")
+ rebaseCmd.MarkFlagRequired("new_base")
+ rebaseCmd.MarkFlagRequired("rebased")
+ return rebaseCmd
+}
+
+func rebase(orig, oldBase, newBase, rebased string) {
+ if orig == "" || oldBase == "" || newBase == "" || rebased == "" {
+ log.Fatalln("Must provide --original, --old_base, --new_base and --rebased")
+ }
+
+ origImg, _, err := getImage(orig)
+ if err != nil {
+ log.Fatalln(err)
+ }
+
+ oldBaseImg, _, err := getImage(oldBase)
+ if err != nil {
+ log.Fatalln(err)
+ }
+
+ newBaseImg, _, err := getImage(newBase)
+ if err != nil {
+ log.Fatalln(err)
+ }
+
+ rebasedTag, err := name.NewTag(rebased, name.WeakValidation)
+ if err != nil {
+ log.Fatalf("parsing tag %q: %v", rebased, err)
+ }
+
+ rebasedImg, err := mutate.Rebase(origImg, oldBaseImg, newBaseImg)
+ if err != nil {
+ log.Fatalf("rebasing: %v", err)
+ }
+
+ dig, err := rebasedImg.Digest()
+ if err != nil {
+ log.Fatalf("digesting rebased: %v", err)
+ }
+
+ auth, err := authn.DefaultKeychain.Resolve(rebasedTag.Context().Registry)
+ if err != nil {
+ log.Fatalf("getting creds for %q: %v", rebasedTag, err)
+ }
+
+ if err := remote.Write(rebasedTag, rebasedImg, auth, http.DefaultTransport); err != nil {
+ log.Fatalf("writing image %q: %v", rebasedTag, err)
+ }
+ fmt.Print(dig.String())
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/crane/root.go b/vendor/github.com/google/go-containerregistry/pkg/crane/root.go
new file mode 100644
index 0000000000..d2e826b0eb
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/crane/root.go
@@ -0,0 +1,23 @@
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package crane
+
+import "github.com/spf13/cobra"
+
+// Root is the top-level cobra.Command for crane.
+var Root = &cobra.Command{
+ Use: "crane",
+ Short: "Crane is a tool for managing container images",
+ Run: func(cmd *cobra.Command, _ []string) { cmd.Usage() },
+ DisableAutoGenTag: true,
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/gcrane/copy.go b/vendor/github.com/google/go-containerregistry/pkg/gcrane/copy.go
new file mode 100644
index 0000000000..de02799415
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/gcrane/copy.go
@@ -0,0 +1,336 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package gcrane
+
+import (
+ "context"
+ "fmt"
+ "log"
+ "net/http"
+ "strings"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+ "github.com/google/go-containerregistry/pkg/v1/google"
+ "github.com/google/go-containerregistry/pkg/v1/remote"
+ "github.com/google/go-containerregistry/pkg/v1/types"
+ "github.com/spf13/cobra"
+ "golang.org/x/sync/errgroup"
+)
+
+func init() { Root.AddCommand(NewCmdCopy()) }
+
+// NewCmdCopy creates a new cobra.Command for the copy subcommand.
+func NewCmdCopy() *cobra.Command {
+ recursive := false
+ cmd := &cobra.Command{
+ Use: "copy",
+ Aliases: []string{"cp"},
+ Short: "Efficiently copy a remote image from src to dst",
+ Args: cobra.ExactArgs(2),
+ Run: func(cc *cobra.Command, args []string) {
+ doCopy(args, recursive)
+ },
+ }
+
+ cmd.Flags().BoolVarP(&recursive, "recursive", "r", false, "Whether to recurse through repos")
+
+ return cmd
+}
+
+func doCopy(args []string, recursive bool) {
+ src, dst := args[0], args[1]
+
+ if recursive {
+ if err := recursiveCopy(src, dst); err != nil {
+ log.Fatalf("failed to copy images: %v", err)
+ }
+ } else {
+ srcAuth, dstAuth, err := parseRefAuths(src, dst)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ if err := singleCopy(src, dst, srcAuth, dstAuth); err != nil {
+ log.Fatalf("failed to copy image: %v", err)
+ }
+ }
+}
+
+type copier struct {
+ srcRepo name.Repository
+ dstRepo name.Repository
+
+ srcAuth authn.Authenticator
+ dstAuth authn.Authenticator
+}
+
+func newCopier(src, dst string) (*copier, error) {
+ srcRepo, err := name.NewRepository(src, name.WeakValidation)
+ if err != nil {
+ return nil, fmt.Errorf("parsing repo %q: %v", src, err)
+ }
+
+ dstRepo, err := name.NewRepository(dst, name.WeakValidation)
+ if err != nil {
+ return nil, fmt.Errorf("parsing repo %q: %v", dst, err)
+ }
+
+ srcAuth, err := google.Keychain.Resolve(srcRepo.Registry)
+ if err != nil {
+ return nil, fmt.Errorf("getting auth for %q: %v", src, err)
+ }
+
+ dstAuth, err := google.Keychain.Resolve(dstRepo.Registry)
+ if err != nil {
+ return nil, fmt.Errorf("getting auth for %q: %v", dst, err)
+ }
+
+ return &copier{srcRepo, dstRepo, srcAuth, dstAuth}, nil
+}
+
+func singleCopy(src, dst string, srcAuth, dstAuth authn.Authenticator) error {
+ srcRef, err := name.ParseReference(src, name.WeakValidation)
+ if err != nil {
+ return fmt.Errorf("parsing reference %q: %v", src, err)
+ }
+
+ dstRef, err := name.ParseReference(dst, name.WeakValidation)
+ if err != nil {
+ return fmt.Errorf("parsing reference %q: %v", dst, err)
+ }
+
+ img, err := remote.Image(srcRef, remote.WithAuth(srcAuth))
+ if err != nil {
+ return fmt.Errorf("reading image %q: %v", src, err)
+ }
+
+ if err := remote.Write(dstRef, img, dstAuth, http.DefaultTransport); err != nil {
+ return fmt.Errorf("writing image %q: %v", dst, err)
+ }
+
+ return nil
+}
+
+// recursiveCopy copies images from repo src to repo dst, rather quickly. tl;dr:
+//
+// for each repo in src {
+// go func {
+// for each image in repo {
+// go func {
+// for each tag in image {
+// go func {
+// singleCopy(tag, rename(tag, dst))
+// }
+// }
+// }
+// }
+// }
+// }
+func recursiveCopy(src, dst string) error {
+ c, err := newCopier(src, dst)
+ if err != nil {
+ return err
+ }
+
+ g, ctx := errgroup.WithContext(context.Background())
+
+ // Captures c, g, and ctx.
+ walkFn := func(repo name.Repository, tags *google.Tags, err error) error {
+ if err != nil {
+ return fmt.Errorf("failed walkFn for repo %s: %v", repo, err)
+ }
+
+ g.Go(func() error {
+ return c.copyRepo(ctx, repo, tags)
+ })
+
+ return nil
+ }
+
+ if err := google.Walk(c.srcRepo, walkFn, google.WithAuth(c.srcAuth)); err != nil {
+ return fmt.Errorf("failed to Walk: %v", err)
+ }
+
+ return g.Wait()
+}
+
+// copyRepo figures out the name for our destination repo (newRepo), lists the
+// contents of newRepo, calculates the diff of what needs to be copied, then
+// starts a goroutine to copy each image we need, and waits for them to finish.
+func (c *copier) copyRepo(ctx context.Context, oldRepo name.Repository, tags *google.Tags) error {
+ newRepo, err := c.rename(oldRepo)
+ if err != nil {
+ return fmt.Errorf("rename failed: %v", err)
+ }
+
+ // Figure out what we actually need to copy.
+ want := tags.Manifests
+ have := make(map[string]google.ManifestInfo)
+ haveTags, err := google.List(newRepo, google.WithAuth(c.dstAuth))
+ if err != nil {
+ // Possibly, we could see a 404. If we get an error here, log it and assume
+ // we just need to copy everything.
+ //
+ // TODO: refactor remote.Error to expose response code?
+ log.Printf("failed to list %s: %v", newRepo, err)
+ } else {
+ have = haveTags.Manifests
+ }
+ need := diffImages(want, have)
+
+ g, ctx := errgroup.WithContext(ctx)
+
+ // First go through copying just manifests, skipping manifest lists, since
+ // manifest lists might reference them.
+ todos := make(map[string]google.ManifestInfo)
+ for digest, manifest := range need {
+ if manifest.MediaType == string(types.DockerManifestList) || manifest.MediaType == string(types.OCIImageIndex) {
+ todos[digest] = manifest
+ continue
+ }
+
+ digest, manifest := digest, manifest // https://golang.org/doc/faq#closures_and_goroutines
+ g.Go(func() error {
+ return c.copyImages(ctx, digest, manifest, oldRepo, newRepo)
+ })
+ }
+
+ if err := g.Wait(); err != nil {
+ return fmt.Errorf("Failed to copy %s: %v", oldRepo, err)
+ }
+
+ // TODO(#119): Uncomment once we've implemented manifests lists.
+ // Now copy the manifest lists, since it should be safe.
+ // for digest, manifest := range todos {
+ // digest, manifest := digest, manifest // https://golang.org/doc/faq#closures_and_goroutines
+ // g.Go(func() error {
+ // return c.copyImages(ctx, digest, manifest, oldRepo, newRepo)
+ // })
+ // }
+
+ // if err := g.Wait(); err != nil {
+ // return fmt.Errorf("Failed to copy %s: %v", oldRepo, err)
+ // }
+
+ return nil
+}
+
+// copyImages starts a goroutine for each tag that points to the image
+// oldRepo@digest, or just copies the image by digest if there are no tags.
+func (c *copier) copyImages(ctx context.Context, digest string, manifest google.ManifestInfo, oldRepo, newRepo name.Repository) error {
+ // We only have to explicitly copy by digest if there are no tags pointing to this manifest.
+ if len(manifest.Tags) == 0 {
+ srcImg := fmt.Sprintf("%s@%s", oldRepo, digest)
+ dstImg := fmt.Sprintf("%s@%s", newRepo, digest)
+
+ return singleCopy(srcImg, dstImg, c.srcAuth, c.dstAuth)
+ }
+
+ // Copy all the tags.
+ g, _ := errgroup.WithContext(ctx)
+ for _, tag := range manifest.Tags {
+ tag := tag // https://golang.org/doc/faq#closures_and_goroutines
+ g.Go(func() error {
+ srcImg := fmt.Sprintf("%s:%s", oldRepo, tag)
+ dstImg := fmt.Sprintf("%s:%s", newRepo, tag)
+
+ return singleCopy(srcImg, dstImg, c.srcAuth, c.dstAuth)
+ })
+ }
+ return g.Wait()
+}
+
+// rename figures out the name of the new repository to copy to, e.g.:
+//
+// $ gcrane cp -r gcr.io/foo gcr.io/baz
+//
+// rename("gcr.io/foo/bar") == "gcr.io/baz/bar"
+func (c *copier) rename(repo name.Repository) (name.Repository, error) {
+ replaced := strings.Replace(repo.String(), c.srcRepo.String(), c.dstRepo.String(), 1)
+ return name.NewRepository(replaced, name.StrictValidation)
+}
+
+// diffImages returns a map of digests to google.ManifestInfos for images or
+// tags that are present in "want" but not in "have".
+func diffImages(want, have map[string]google.ManifestInfo) map[string]google.ManifestInfo {
+ need := make(map[string]google.ManifestInfo)
+
+ for digest, wantManifest := range want {
+ if haveManifest, ok := have[digest]; !ok {
+ // Missing the whole image, we need to copy everything.
+ need[digest] = wantManifest
+ } else {
+ missingTags := subtractStringLists(wantManifest.Tags, haveManifest.Tags)
+ if len(missingTags) == 0 {
+ continue
+ }
+
+ // Missing just some tags, add the ones we need to copy.
+ todo := wantManifest
+ todo.Tags = missingTags
+ need[digest] = todo
+ }
+ }
+
+ return need
+}
+
+// subtractStringLists returns a list of strings that are in minuend and not
+// in subtrahend; order is unimportant.
+func subtractStringLists(minuend, subtrahend []string) []string {
+ bSet := toStringSet(subtrahend)
+ difference := []string{}
+
+ for _, a := range minuend {
+ if _, ok := bSet[a]; !ok {
+ difference = append(difference, a)
+ }
+ }
+
+ return difference
+}
+
+func toStringSet(slice []string) map[string]struct{} {
+ set := make(map[string]struct{}, len(slice))
+ for _, s := range slice {
+ set[s] = struct{}{}
+ }
+ return set
+}
+
+func parseRefAuths(src, dst string) (authn.Authenticator, authn.Authenticator, error) {
+ srcRef, err := name.ParseReference(src, name.WeakValidation)
+ if err != nil {
+ return nil, nil, fmt.Errorf("parsing reference %q: %v", src, err)
+ }
+
+ dstRef, err := name.ParseReference(dst, name.WeakValidation)
+ if err != nil {
+ return nil, nil, fmt.Errorf("parsing reference %q: %v", dst, err)
+ }
+
+ srcAuth, err := authn.DefaultKeychain.Resolve(srcRef.Context().Registry)
+ if err != nil {
+ return nil, nil, fmt.Errorf("getting auth for %q: %v", src, err)
+ }
+
+ dstAuth, err := authn.DefaultKeychain.Resolve(dstRef.Context().Registry)
+ if err != nil {
+ return nil, nil, fmt.Errorf("getting auth for %q: %v", dst, err)
+ }
+
+ return srcAuth, dstAuth, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/gcrane/doc.go b/vendor/github.com/google/go-containerregistry/pkg/gcrane/doc.go
new file mode 100644
index 0000000000..63a1bbb85a
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/gcrane/doc.go
@@ -0,0 +1,16 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package gcrane holds libraries used to implement the gcrane CLI.
+package gcrane
diff --git a/vendor/github.com/google/go-containerregistry/pkg/gcrane/gc.go b/vendor/github.com/google/go-containerregistry/pkg/gcrane/gc.go
new file mode 100644
index 0000000000..e5ed1b46bb
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/gcrane/gc.go
@@ -0,0 +1,79 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package gcrane
+
+import (
+ "fmt"
+ "log"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+ "github.com/google/go-containerregistry/pkg/v1/google"
+ "github.com/spf13/cobra"
+)
+
+func init() { Root.AddCommand(NewCmdGc()) }
+
+// NewCmdGc creates a new cobra.Command for the gc subcommand.
+func NewCmdGc() *cobra.Command {
+ recursive := false
+ cmd := &cobra.Command{
+ Use: "gc",
+ Short: "List images that are not tagged",
+ Args: cobra.ExactArgs(1),
+ Run: func(_ *cobra.Command, args []string) {
+ gc(args[0], recursive)
+ },
+ }
+
+ cmd.Flags().BoolVarP(&recursive, "recursive", "r", false, "Whether to recurse through repos")
+
+ return cmd
+}
+
+func gc(root string, recursive bool) {
+ repo, err := name.NewRepository(root, name.WeakValidation)
+ if err != nil {
+ log.Fatalln(err)
+ }
+
+ auth := google.WithAuthFromKeychain(authn.DefaultKeychain)
+
+ if recursive {
+ if err := google.Walk(repo, printUntaggedImages, auth); err != nil {
+ log.Fatalln(err)
+ }
+ return
+ }
+
+ tags, err := google.List(repo, auth)
+ if err := printUntaggedImages(repo, tags, err); err != nil {
+ log.Fatalln(err)
+ }
+}
+
+func printUntaggedImages(repo name.Repository, tags *google.Tags, err error) error {
+ if err != nil {
+ return err
+ }
+
+ for digest, manifest := range tags.Manifests {
+ if len(manifest.Tags) == 0 {
+ fmt.Printf("%s@%s\n", repo, digest)
+ }
+ }
+
+ return nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/gcrane/list.go b/vendor/github.com/google/go-containerregistry/pkg/gcrane/list.go
new file mode 100644
index 0000000000..96202e8e2a
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/gcrane/list.go
@@ -0,0 +1,100 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package gcrane
+
+import (
+ "fmt"
+ "log"
+
+ "github.com/google/go-containerregistry/pkg/name"
+ "github.com/google/go-containerregistry/pkg/v1/google"
+ "github.com/spf13/cobra"
+)
+
+func init() { Root.AddCommand(NewCmdList()) }
+
+// NewCmdList creates a new cobra.Command for the ls subcommand.
+func NewCmdList() *cobra.Command {
+ recursive := false
+ cmd := &cobra.Command{
+ Use: "ls",
+ Short: "List the contents of a repo",
+ Args: cobra.ExactArgs(1),
+ Run: func(_ *cobra.Command, args []string) {
+ ls(args[0], recursive)
+ },
+ }
+
+ cmd.Flags().BoolVarP(&recursive, "recursive", "r", false, "Whether to recurse through repos")
+
+ return cmd
+}
+
+func ls(root string, recursive bool) {
+ repo, err := name.NewRepository(root, name.WeakValidation)
+ if err != nil {
+ log.Fatalln(err)
+ }
+
+ auth, err := google.Keychain.Resolve(repo.Registry)
+ if err != nil {
+ log.Fatalf("getting auth for %q: %v", root, err)
+ }
+
+ if recursive {
+ if err := google.Walk(repo, printImages, google.WithAuth(auth)); err != nil {
+ log.Fatalln(err)
+ }
+ return
+ }
+
+ tags, err := google.List(repo, google.WithAuth(auth))
+ if err != nil {
+ log.Fatalln(err)
+ }
+
+ if len(tags.Manifests) == 0 && len(tags.Children) == 0 {
+ // If we didn't see any GCR extensions, just list the tags like normal.
+ for _, tag := range tags.Tags {
+ fmt.Printf("%s:%s\n", repo, tag)
+ }
+ return
+ }
+
+ // Since we're not recursing, print the subdirectories too.
+ for _, child := range tags.Children {
+ fmt.Printf("%s/%s\n", repo, child)
+ }
+
+ if err := printImages(repo, tags, err); err != nil {
+ log.Fatalln(err)
+ }
+}
+
+func printImages(repo name.Repository, tags *google.Tags, err error) error {
+ if err != nil {
+ return err
+ }
+
+ for digest, manifest := range tags.Manifests {
+ fmt.Printf("%s@%s\n", repo, digest)
+
+ for _, tag := range manifest.Tags {
+ fmt.Printf("%s:%s\n", repo, tag)
+ }
+ }
+
+ return nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/gcrane/root.go b/vendor/github.com/google/go-containerregistry/pkg/gcrane/root.go
new file mode 100644
index 0000000000..b563673c2e
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/gcrane/root.go
@@ -0,0 +1,23 @@
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package gcrane
+
+import "github.com/spf13/cobra"
+
+// Root is the top-level cobra.Command for gcrane.
+var Root = &cobra.Command{
+ Use: "gcrane",
+ Short: "gcrane is a tool for managing container images on gcr.io",
+ Run: func(cmd *cobra.Command, _ []string) { cmd.Usage() },
+ DisableAutoGenTag: true,
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/ko/build/build.go b/vendor/github.com/google/go-containerregistry/pkg/ko/build/build.go
new file mode 100644
index 0000000000..06c33c6c8f
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/ko/build/build.go
@@ -0,0 +1,31 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package build
+
+import (
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+)
+
+// Interface abstracts different methods for turning a supported importpath
+// reference into a v1.Image.
+type Interface interface {
+ // IsSupportedReference determines whether the given reference is to an importpath reference
+ // that Ko supports building.
+ // TODO(mattmoor): Verify that some base repo: foo.io/bar can be suffixed with this reference and parsed.
+ IsSupportedReference(string) bool
+
+ // Build turns the given importpath reference into a v1.Image containing the Go binary.
+ Build(string) (v1.Image, error)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/ko/build/doc.go b/vendor/github.com/google/go-containerregistry/pkg/ko/build/doc.go
new file mode 100644
index 0000000000..a8cb7fbea6
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/ko/build/doc.go
@@ -0,0 +1,17 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package build defines methods for building a v1.Image reference from a
+// Go binary reference.
+package build
diff --git a/vendor/github.com/google/go-containerregistry/pkg/ko/build/future.go b/vendor/github.com/google/go-containerregistry/pkg/ko/build/future.go
new file mode 100644
index 0000000000..8f66fbbc6b
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/ko/build/future.go
@@ -0,0 +1,75 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package build
+
+import (
+ "sync"
+
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+)
+
+func newFuture(work func() (v1.Image, error)) *future {
+ // Create a channel on which to send the result.
+ ch := make(chan *result)
+ // Initiate the actual work, sending its result
+ // along the above channel.
+ go func() {
+ img, err := work()
+ ch <- &result{img: img, err: err}
+ }()
+ // Return a future for the above work. Callers should
+ // call .Get() on this result (as many times as needed).
+ // One of these calls will receive the result, store it,
+ // and close the channel so that the rest of the callers
+ // can consume it.
+ return &future{
+ promise: ch,
+ }
+}
+
+type result struct {
+ img v1.Image
+ err error
+}
+
+type future struct {
+ m sync.RWMutex
+
+ result *result
+ promise chan *result
+}
+
+// Get blocks on the result of the future.
+func (f *future) Get() (v1.Image, error) {
+ // Block on the promise of a result until we get one.
+ result, ok := <-f.promise
+ if ok {
+ func() {
+ f.m.Lock()
+ defer f.m.Unlock()
+ // If we got the result, then store it so that
+ // others may access it.
+ f.result = result
+ // Close the promise channel so that others
+ // are signaled that the result is available.
+ close(f.promise)
+ }()
+ }
+
+ f.m.RLock()
+ defer f.m.RUnlock()
+
+ return f.result.img, f.result.err
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/ko/build/gobuild.go b/vendor/github.com/google/go-containerregistry/pkg/ko/build/gobuild.go
new file mode 100644
index 0000000000..6a378cebff
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/ko/build/gobuild.go
@@ -0,0 +1,299 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package build
+
+import (
+ "archive/tar"
+ "bytes"
+ "errors"
+ gb "go/build"
+ "io"
+ "io/ioutil"
+ "log"
+ "os"
+ "os/exec"
+ "path/filepath"
+
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+ "github.com/google/go-containerregistry/pkg/v1/mutate"
+ "github.com/google/go-containerregistry/pkg/v1/tarball"
+)
+
+const appPath = "/ko-app"
+
+// GetBase takes an importpath and returns a base v1.Image.
+type GetBase func(string) (v1.Image, error)
+type builder func(string) (string, error)
+
+type gobuild struct {
+ getBase GetBase
+ creationTime v1.Time
+ build builder
+}
+
+// Option is a functional option for NewGo.
+type Option func(*gobuildOpener) error
+
+type gobuildOpener struct {
+ getBase GetBase
+ creationTime v1.Time
+ build builder
+}
+
+func (gbo *gobuildOpener) Open() (Interface, error) {
+ if gbo.getBase == nil {
+ return nil, errors.New("a way of providing base images must be specified, see build.WithBaseImages")
+ }
+ return &gobuild{
+ getBase: gbo.getBase,
+ creationTime: gbo.creationTime,
+ build: gbo.build,
+ }, nil
+}
+
+// NewGo returns a build.Interface implementation that:
+// 1. builds go binaries named by importpath,
+// 2. containerizes the binary on a suitable base,
+func NewGo(options ...Option) (Interface, error) {
+ gbo := &gobuildOpener{
+ build: build,
+ }
+
+ for _, option := range options {
+ if err := option(gbo); err != nil {
+ return nil, err
+ }
+ }
+ return gbo.Open()
+}
+
+// IsSupportedReference implements build.Interface
+//
+// Only valid importpaths that provide commands (i.e., are "package main") are
+// supported.
+func (*gobuild) IsSupportedReference(s string) bool {
+ p, err := gb.Import(s, gb.Default.GOPATH, gb.ImportComment)
+ if err != nil {
+ return false
+ }
+ return p.IsCommand()
+}
+
+func build(ip string) (string, error) {
+ tmpDir, err := ioutil.TempDir("", "ko")
+ if err != nil {
+ return "", err
+ }
+ file := filepath.Join(tmpDir, "out")
+
+ cmd := exec.Command("go", "build", "-o", file, ip)
+
+ // Last one wins
+ // TODO(mattmoor): GOARCH=amd64
+ cmd.Env = append(os.Environ(), "CGO_ENABLED=0", "GOOS=linux")
+
+ var output bytes.Buffer
+ cmd.Stderr = &output
+ cmd.Stdout = &output
+
+ log.Printf("Building %s", ip)
+ if err := cmd.Run(); err != nil {
+ os.RemoveAll(tmpDir)
+ log.Printf("Unexpected error running \"go build\": %v\n%v", err, output.String())
+ return "", err
+ }
+ return file, nil
+}
+
+func tarBinary(binary string) (*bytes.Buffer, error) {
+ buf := bytes.NewBuffer(nil)
+ tw := tar.NewWriter(buf)
+ defer tw.Close()
+
+ file, err := os.Open(binary)
+ if err != nil {
+ return nil, err
+ }
+ defer file.Close()
+ stat, err := file.Stat()
+ if err != nil {
+ return nil, err
+ }
+ header := &tar.Header{
+ Name: appPath,
+ Size: stat.Size(),
+ Typeflag: tar.TypeReg,
+ // Use a fixed Mode, so that this isn't sensitive to the directory and umask
+ // under which it was created. Additionally, windows can only set 0222,
+ // 0444, or 0666, none of which are executable.
+ Mode: 0555,
+ }
+ // write the header to the tarball archive
+ if err := tw.WriteHeader(header); err != nil {
+ return nil, err
+ }
+ // copy the file data to the tarball
+ if _, err := io.Copy(tw, file); err != nil {
+ return nil, err
+ }
+
+ return buf, nil
+}
+
+func kodataPath(s string) (string, error) {
+ p, err := gb.Import(s, gb.Default.GOPATH, gb.ImportComment)
+ if err != nil {
+ return "", err
+ }
+ return filepath.Join(p.Dir, "kodata"), nil
+}
+
+// Where kodata lives in the image.
+const kodataRoot = "/var/run/ko"
+
+func tarKoData(importpath string) (*bytes.Buffer, error) {
+ buf := bytes.NewBuffer(nil)
+ tw := tar.NewWriter(buf)
+ defer tw.Close()
+
+ root, err := kodataPath(importpath)
+ if err != nil {
+ return nil, err
+ }
+
+ err = filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
+ if path == root {
+ // Add an entry for /var/run/ko
+ return tw.WriteHeader(&tar.Header{
+ Name: kodataRoot,
+ Typeflag: tar.TypeDir,
+ })
+ }
+ if err != nil {
+ return err
+ }
+ // Skip other directories.
+ if info.Mode().IsDir() {
+ return nil
+ }
+
+ // Chase symlinks.
+ info, err = os.Stat(path)
+ if err != nil {
+ return err
+ }
+
+ // Open the file to copy it into the tarball.
+ file, err := os.Open(path)
+ if err != nil {
+ return err
+ }
+ defer file.Close()
+
+ // Copy the file into the image tarball.
+ newPath := filepath.Join(kodataRoot, path[len(root):])
+ if err := tw.WriteHeader(&tar.Header{
+ Name: newPath,
+ Size: info.Size(),
+ Typeflag: tar.TypeReg,
+ // Use a fixed Mode, so that this isn't sensitive to the directory and umask
+ // under which it was created. Additionally, windows can only set 0222,
+ // 0444, or 0666, none of which are executable.
+ Mode: 0555,
+ }); err != nil {
+ return err
+ }
+ _, err = io.Copy(tw, file)
+ return err
+ })
+ if err != nil {
+ return nil, err
+ }
+
+ return buf, nil
+}
+
+// Build implements build.Interface
+func (gb *gobuild) Build(s string) (v1.Image, error) {
+ // Do the build into a temporary file.
+ file, err := gb.build(s)
+ if err != nil {
+ return nil, err
+ }
+ defer os.RemoveAll(filepath.Dir(file))
+
+ var layers []v1.Layer
+ // Create a layer from the kodata directory under this import path.
+ dataLayerBuf, err := tarKoData(s)
+ if err != nil {
+ return nil, err
+ }
+ dataLayerBytes := dataLayerBuf.Bytes()
+ dataLayer, err := tarball.LayerFromOpener(func() (io.ReadCloser, error) {
+ return ioutil.NopCloser(bytes.NewBuffer(dataLayerBytes)), nil
+ })
+ if err != nil {
+ return nil, err
+ }
+ layers = append(layers, dataLayer)
+
+ // Construct a tarball with the binary and produce a layer.
+ binaryLayerBuf, err := tarBinary(file)
+ if err != nil {
+ return nil, err
+ }
+ binaryLayerBytes := binaryLayerBuf.Bytes()
+ binaryLayer, err := tarball.LayerFromOpener(func() (io.ReadCloser, error) {
+ return ioutil.NopCloser(bytes.NewBuffer(binaryLayerBytes)), nil
+ })
+ if err != nil {
+ return nil, err
+ }
+ layers = append(layers, binaryLayer)
+
+ // Determine the appropriate base image for this import path.
+ base, err := gb.getBase(s)
+ if err != nil {
+ return nil, err
+ }
+
+ // Augment the base image with our application layer.
+ withApp, err := mutate.AppendLayers(base, layers...)
+ if err != nil {
+ return nil, err
+ }
+
+ // Start from a copy of the base image's config file, and set
+ // the entrypoint to our app.
+ cfg, err := withApp.ConfigFile()
+ if err != nil {
+ return nil, err
+ }
+
+ cfg = cfg.DeepCopy()
+ cfg.Config.Entrypoint = []string{appPath}
+ cfg.Config.Env = append(cfg.Config.Env, "KO_DATA_PATH="+kodataRoot)
+
+ image, err := mutate.Config(withApp, cfg.Config)
+ if err != nil {
+ return nil, err
+ }
+
+ empty := v1.Time{}
+ if gb.creationTime != empty {
+ return mutate.CreatedAt(image, gb.creationTime)
+ }
+ return image, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/ko/build/options.go b/vendor/github.com/google/go-containerregistry/pkg/ko/build/options.go
new file mode 100644
index 0000000000..df6eb40a46
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/ko/build/options.go
@@ -0,0 +1,46 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package build
+
+import (
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+)
+
+// WithBaseImages is a functional option for overriding the base images
+// that are used for different images.
+func WithBaseImages(gb GetBase) Option {
+ return func(gbo *gobuildOpener) error {
+ gbo.getBase = gb
+ return nil
+ }
+}
+
+// WithCreationTime is a functional option for overriding the creation
+// time given to images.
+func WithCreationTime(t v1.Time) Option {
+ return func(gbo *gobuildOpener) error {
+ gbo.creationTime = t
+ return nil
+ }
+}
+
+// withBuilder is a functional option for overriding the way go binaries
+// are built. This is exposed for testing.
+func withBuilder(b builder) Option {
+ return func(gbo *gobuildOpener) error {
+ gbo.build = b
+ return nil
+ }
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/ko/build/recorder.go b/vendor/github.com/google/go-containerregistry/pkg/ko/build/recorder.go
new file mode 100644
index 0000000000..3694eaa11f
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/ko/build/recorder.go
@@ -0,0 +1,46 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package build
+
+import (
+ "sync"
+
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+)
+
+// Recorder composes with another Interface to record the built import paths.
+type Recorder struct {
+ m sync.Mutex
+ ImportPaths []string
+ Builder Interface
+}
+
+// Recorder implements Interface
+var _ Interface = (*Recorder)(nil)
+
+// IsSupportedReference implements Interface
+func (r *Recorder) IsSupportedReference(ip string) bool {
+ return r.Builder.IsSupportedReference(ip)
+}
+
+// Build implements Interface
+func (r *Recorder) Build(ip string) (v1.Image, error) {
+ func() {
+ r.m.Lock()
+ defer r.m.Unlock()
+ r.ImportPaths = append(r.ImportPaths, ip)
+ }()
+ return r.Builder.Build(ip)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/ko/build/shared.go b/vendor/github.com/google/go-containerregistry/pkg/ko/build/shared.go
new file mode 100644
index 0000000000..72d0d3a9fa
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/ko/build/shared.go
@@ -0,0 +1,79 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package build
+
+import (
+ "sync"
+
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+)
+
+// Caching wraps a builder implementation in a layer that shares build results
+// for the same inputs using a simple "future" implementation. Cached results
+// may be invalidated by calling Invalidate with the same input passed to Build.
+type Caching struct {
+ inner Interface
+
+ m sync.Mutex
+ results map[string]*future
+}
+
+// Caching implements Interface
+var _ Interface = (*Caching)(nil)
+
+// NewCaching wraps the provided build.Interface in an implementation that
+// shares build results for a given path until the result has been invalidated.
+func NewCaching(inner Interface) (*Caching, error) {
+ return &Caching{
+ inner: inner,
+ results: make(map[string]*future),
+ }, nil
+}
+
+// Build implements Interface
+func (c *Caching) Build(ip string) (v1.Image, error) {
+ f := func() *future {
+ // Lock the map of futures.
+ c.m.Lock()
+ defer c.m.Unlock()
+
+ // If a future for "ip" exists, then return it.
+ f, ok := c.results[ip]
+ if ok {
+ return f
+ }
+ // Otherwise create and record a future for a Build of "ip".
+ f = newFuture(func() (v1.Image, error) {
+ return c.inner.Build(ip)
+ })
+ c.results[ip] = f
+ return f
+ }()
+
+ return f.Get()
+}
+
+// IsSupportedReference implements Interface
+func (c *Caching) IsSupportedReference(ip string) bool {
+ return c.inner.IsSupportedReference(ip)
+}
+
+// Invalidate removes an import path's cached results.
+func (c *Caching) Invalidate(ip string) {
+ c.m.Lock()
+ defer c.m.Unlock()
+
+ delete(c.results, ip)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/ko/doc.go b/vendor/github.com/google/go-containerregistry/pkg/ko/doc.go
new file mode 100644
index 0000000000..8004e0ca1a
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/ko/doc.go
@@ -0,0 +1,16 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package ko holds libraries used to implement the ko CLI.
+package ko
diff --git a/vendor/github.com/google/go-containerregistry/pkg/ko/publish/daemon.go b/vendor/github.com/google/go-containerregistry/pkg/ko/publish/daemon.go
new file mode 100644
index 0000000000..d18e0703ce
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/ko/publish/daemon.go
@@ -0,0 +1,80 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package publish
+
+import (
+ "fmt"
+ "log"
+ "strings"
+
+ "github.com/google/go-containerregistry/pkg/name"
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+ "github.com/google/go-containerregistry/pkg/v1/daemon"
+)
+
+const (
+ // LocalDomain is a sentinel "registry" that represents side-loading images into the daemon.
+ LocalDomain = "ko.local"
+)
+
+// demon is intentionally misspelled to avoid name collision (and drive Jon nuts).
+type demon struct {
+ namer Namer
+ tags []string
+}
+
+// NewDaemon returns a new publish.Interface that publishes images to a container daemon.
+func NewDaemon(namer Namer, tags []string) Interface {
+ return &demon{namer, tags}
+}
+
+// Publish implements publish.Interface
+func (d *demon) Publish(img v1.Image, s string) (name.Reference, error) {
+ // https://github.com/google/go-containerregistry/issues/212
+ s = strings.ToLower(s)
+
+ h, err := img.Digest()
+ if err != nil {
+ return nil, err
+ }
+
+ digestTag, err := name.NewTag(fmt.Sprintf("%s/%s:%s", LocalDomain, d.namer(s), h.Hex), name.WeakValidation)
+ if err != nil {
+ return nil, err
+ }
+
+ log.Printf("Loading %v", digestTag)
+ if _, err := daemon.Write(digestTag, img); err != nil {
+ return nil, err
+ }
+ log.Printf("Loaded %v", digestTag)
+
+ for _, tagName := range d.tags {
+ log.Printf("Adding tag %v", tagName)
+ tag, err := name.NewTag(fmt.Sprintf("%s/%s:%s", LocalDomain, d.namer(s), tagName), name.WeakValidation)
+ if err != nil {
+ return nil, err
+ }
+
+ err = daemon.Tag(digestTag, tag)
+
+ if err != nil {
+ return nil, err
+ }
+ log.Printf("Added tag %v", tagName)
+ }
+
+ return &digestTag, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/ko/publish/default.go b/vendor/github.com/google/go-containerregistry/pkg/ko/publish/default.go
new file mode 100644
index 0000000000..0486b9ce5a
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/ko/publish/default.go
@@ -0,0 +1,121 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package publish
+
+import (
+ "fmt"
+ "log"
+ "net/http"
+ "strings"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+ "github.com/google/go-containerregistry/pkg/v1/remote"
+)
+
+// defalt is intentionally misspelled to avoid keyword collision (and drive Jon nuts).
+type defalt struct {
+ base string
+ t http.RoundTripper
+ auth authn.Authenticator
+ namer Namer
+ tags []string
+}
+
+// Option is a functional option for NewDefault.
+type Option func(*defaultOpener) error
+
+type defaultOpener struct {
+ base string
+ t http.RoundTripper
+ auth authn.Authenticator
+ namer Namer
+ tags []string
+}
+
+// Namer is a function from a supported import path to the portion of the resulting
+// image name that follows the "base" repository name.
+type Namer func(string) string
+
+// identity is the default namer, so import paths are affixed as-is under the repository
+// name for maximum clarity, e.g.
+// gcr.io/foo/github.com/bar/baz/cmd/blah
+// ^--base--^ ^-------import path-------^
+func identity(in string) string { return in }
+
+// As some registries do not support pushing an image by digest, the default tag for pushing
+// is the 'latest' tag.
+var defaultTags = []string{"latest"}
+
+func (do *defaultOpener) Open() (Interface, error) {
+ return &defalt{
+ base: do.base,
+ t: do.t,
+ auth: do.auth,
+ namer: do.namer,
+ tags: do.tags,
+ }, nil
+}
+
+// NewDefault returns a new publish.Interface that publishes references under the provided base
+// repository using the default keychain to authenticate and the default naming scheme.
+func NewDefault(base string, options ...Option) (Interface, error) {
+ do := &defaultOpener{
+ base: base,
+ t: http.DefaultTransport,
+ auth: authn.Anonymous,
+ namer: identity,
+ tags: defaultTags,
+ }
+
+ for _, option := range options {
+ if err := option(do); err != nil {
+ return nil, err
+ }
+ }
+ return do.Open()
+}
+
+// Publish implements publish.Interface
+func (d *defalt) Publish(img v1.Image, s string) (name.Reference, error) {
+ // https://github.com/google/go-containerregistry/issues/212
+ s = strings.ToLower(s)
+
+ for _, tagName := range d.tags {
+ tag, err := name.NewTag(fmt.Sprintf("%s/%s:%s", d.base, d.namer(s), tagName), name.WeakValidation)
+ if err != nil {
+ return nil, err
+ }
+
+ log.Printf("Publishing %v", tag)
+ // TODO: This is slow because we have to load the image multiple times.
+ // Figure out some way to publish the manifest with another tag.
+ if err := remote.Write(tag, img, d.auth, d.t); err != nil {
+ return nil, err
+ }
+ }
+
+ h, err := img.Digest()
+ if err != nil {
+ return nil, err
+ }
+ dig, err := name.NewDigest(fmt.Sprintf("%s/%s@%s", d.base, d.namer(s), h), name.WeakValidation)
+ if err != nil {
+ return nil, err
+ }
+ log.Printf("Published %v", dig)
+ return &dig, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/ko/publish/doc.go b/vendor/github.com/google/go-containerregistry/pkg/ko/publish/doc.go
new file mode 100644
index 0000000000..835d575a44
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/ko/publish/doc.go
@@ -0,0 +1,17 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package publish defines methods for publishing a v1.Image reference and
+// returning the published digest for embedding back into a Kubernetes yaml.
+package publish
diff --git a/vendor/github.com/google/go-containerregistry/pkg/ko/publish/future.go b/vendor/github.com/google/go-containerregistry/pkg/ko/publish/future.go
new file mode 100644
index 0000000000..1568275596
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/ko/publish/future.go
@@ -0,0 +1,75 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package publish
+
+import (
+ "sync"
+
+ "github.com/google/go-containerregistry/pkg/name"
+)
+
+func newFuture(work func() (name.Reference, error)) *future {
+ // Create a channel on which to send the result.
+ ch := make(chan *result)
+ // Initiate the actual work, sending its result
+ // along the above channel.
+ go func() {
+ ref, err := work()
+ ch <- &result{ref: ref, err: err}
+ }()
+ // Return a future for the above work. Callers should
+ // call .Get() on this result (as many times as needed).
+ // One of these calls will receive the result, store it,
+ // and close the channel so that the rest of the callers
+ // can consume it.
+ return &future{
+ promise: ch,
+ }
+}
+
+type result struct {
+ ref name.Reference
+ err error
+}
+
+type future struct {
+ m sync.RWMutex
+
+ result *result
+ promise chan *result
+}
+
+// Get blocks on the result of the future.
+func (f *future) Get() (name.Reference, error) {
+ // Block on the promise of a result until we get one.
+ result, ok := <-f.promise
+ if ok {
+ func() {
+ f.m.Lock()
+ defer f.m.Unlock()
+ // If we got the result, then store it so that
+ // others may access it.
+ f.result = result
+ // Close the promise channel so that others
+ // are signaled that the result is available.
+ close(f.promise)
+ }()
+ }
+
+ f.m.RLock()
+ defer f.m.RUnlock()
+
+ return f.result.ref, f.result.err
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/ko/publish/options.go b/vendor/github.com/google/go-containerregistry/pkg/ko/publish/options.go
new file mode 100644
index 0000000000..30c7b95d8f
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/ko/publish/options.go
@@ -0,0 +1,82 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package publish
+
+import (
+ "log"
+ "net/http"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+)
+
+// WithTransport is a functional option for overriding the default transport
+// on a default publisher.
+func WithTransport(t http.RoundTripper) Option {
+ return func(i *defaultOpener) error {
+ i.t = t
+ return nil
+ }
+}
+
+// WithAuth is a functional option for overriding the default authenticator
+// on a default publisher.
+func WithAuth(auth authn.Authenticator) Option {
+ return func(i *defaultOpener) error {
+ i.auth = auth
+ return nil
+ }
+}
+
+// WithAuthFromKeychain is a functional option for overriding the default
+// authenticator on a default publisher using an authn.Keychain
+func WithAuthFromKeychain(keys authn.Keychain) Option {
+ return func(i *defaultOpener) error {
+ // We parse this lazily because it is a repository prefix, which
+ // means that docker.io/mattmoor actually gets interpreted as
+ // docker.io/library/mattmoor, which gets tricky when we start
+ // appending things to it in the publisher.
+ repo, err := name.NewRepository(i.base, name.WeakValidation)
+ if err != nil {
+ return err
+ }
+ auth, err := keys.Resolve(repo.Registry)
+ if err != nil {
+ return err
+ }
+ if auth == authn.Anonymous {
+ log.Println("No matching credentials were found, falling back on anonymous")
+ }
+ i.auth = auth
+ return nil
+ }
+}
+
+// WithNamer is a functional option for overriding the image naming behavior
+// in our default publisher.
+func WithNamer(n Namer) Option {
+ return func(i *defaultOpener) error {
+ i.namer = n
+ return nil
+ }
+}
+
+// WithTags is a functional option for overriding the image tags
+func WithTags(tags []string) Option {
+ return func(i *defaultOpener) error {
+ i.tags = tags
+ return nil
+ }
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/ko/publish/publish.go b/vendor/github.com/google/go-containerregistry/pkg/ko/publish/publish.go
new file mode 100644
index 0000000000..c6002ef950
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/ko/publish/publish.go
@@ -0,0 +1,28 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package publish
+
+import (
+ "github.com/google/go-containerregistry/pkg/name"
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+)
+
+// Interface abstracts different methods for publishing images.
+type Interface interface {
+ // Publish uploads the given v1.Image to a registry incorporating the
+ // provided string into the image's repository name. Returns the digest
+ // of the published image.
+ Publish(v1.Image, string) (name.Reference, error)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/ko/publish/shared.go b/vendor/github.com/google/go-containerregistry/pkg/ko/publish/shared.go
new file mode 100644
index 0000000000..edd2832b87
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/ko/publish/shared.go
@@ -0,0 +1,76 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package publish
+
+import (
+ "sync"
+
+ "github.com/google/go-containerregistry/pkg/name"
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+)
+
+// caching wraps a publisher implementation in a layer that shares publish results
+// for the same inputs using a simple "future" implementation.
+type caching struct {
+ inner Interface
+
+ m sync.Mutex
+ results map[string]*entry
+}
+
+// entry holds the last image published and the result of publishing it for a
+// particular reference.
+type entry struct {
+ img v1.Image
+ f *future
+}
+
+// caching implements Interface
+var _ Interface = (*caching)(nil)
+
+// NewCaching wraps the provided publish.Interface in an implementation that
+// shares publish results for a given path until the passed image object changes.
+func NewCaching(inner Interface) (Interface, error) {
+ return &caching{
+ inner: inner,
+ results: make(map[string]*entry),
+ }, nil
+}
+
+// Publish implements Interface
+func (c *caching) Publish(img v1.Image, ref string) (name.Reference, error) {
+ f := func() *future {
+ // Lock the map of futures.
+ c.m.Lock()
+ defer c.m.Unlock()
+
+ // If a future for "ref" exists, then return it.
+ ent, ok := c.results[ref]
+ if ok {
+ // If the image matches, then return the same future.
+ if ent.img == img {
+ return ent.f
+ }
+ }
+ // Otherwise create and record a future for publishing "img" to "ref".
+ f := newFuture(func() (name.Reference, error) {
+ return c.inner.Publish(img, ref)
+ })
+ c.results[ref] = &entry{img: img, f: f}
+ return f
+ }()
+
+ return f.Get()
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/ko/resolve/doc.go b/vendor/github.com/google/go-containerregistry/pkg/ko/resolve/doc.go
new file mode 100644
index 0000000000..6d65945279
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/ko/resolve/doc.go
@@ -0,0 +1,16 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package resolve defines logic for resolving K8s yaml inputs to ko.
+package resolve
diff --git a/vendor/github.com/google/go-containerregistry/pkg/ko/resolve/resolve.go b/vendor/github.com/google/go-containerregistry/pkg/ko/resolve/resolve.go
new file mode 100644
index 0000000000..6a3ed56eda
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/ko/resolve/resolve.go
@@ -0,0 +1,160 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package resolve
+
+import (
+ "bytes"
+ "fmt"
+ "io"
+ "sync"
+
+ yaml "gopkg.in/yaml.v2"
+
+ "golang.org/x/sync/errgroup"
+
+ "github.com/google/go-containerregistry/pkg/ko/build"
+ "github.com/google/go-containerregistry/pkg/ko/publish"
+)
+
+// ImageReferences resolves supported references to images within the input yaml
+// to published image digests.
+func ImageReferences(input []byte, builder build.Interface, publisher publish.Interface) ([]byte, error) {
+ // First, walk the input objects and collect a list of supported references
+ refs := make(map[string]struct{})
+ // The loop is to support multi-document yaml files.
+ // This is handled by using a yaml.Decoder and reading objects until io.EOF, see:
+ // https://github.com/go-yaml/yaml/blob/v2.2.1/yaml.go#L124
+ decoder := yaml.NewDecoder(bytes.NewBuffer(input))
+ for {
+ var obj interface{}
+ if err := decoder.Decode(&obj); err != nil {
+ if err == io.EOF {
+ break
+ }
+ return nil, err
+ }
+ // This simply returns the replaced object, which we discard during the gathering phase.
+ if _, err := replaceRecursive(obj, func(ref string) (string, error) {
+ if builder.IsSupportedReference(ref) {
+ refs[ref] = struct{}{}
+ }
+ return ref, nil
+ }); err != nil {
+ return nil, err
+ }
+ }
+
+ // Next, perform parallel builds for each of the supported references.
+ var sm sync.Map
+ var errg errgroup.Group
+ for ref := range refs {
+ ref := ref
+ errg.Go(func() error {
+ img, err := builder.Build(ref)
+ if err != nil {
+ return err
+ }
+ digest, err := publisher.Publish(img, ref)
+ if err != nil {
+ return err
+ }
+ sm.Store(ref, digest.String())
+ return nil
+ })
+ }
+ if err := errg.Wait(); err != nil {
+ return nil, err
+ }
+
+ // Last, walk the inputs again and replace the supported references with their published images.
+ decoder = yaml.NewDecoder(bytes.NewBuffer(input))
+ buf := bytes.NewBuffer(nil)
+ encoder := yaml.NewEncoder(buf)
+ for {
+ var obj interface{}
+ if err := decoder.Decode(&obj); err != nil {
+ if err == io.EOF {
+ return buf.Bytes(), nil
+ }
+ return nil, err
+ }
+ // Recursively walk input, replacing supported reference with our computed digests.
+ obj2, err := replaceRecursive(obj, func(ref string) (string, error) {
+ if !builder.IsSupportedReference(ref) {
+ return ref, nil
+ }
+ if val, ok := sm.Load(ref); ok {
+ return val.(string), nil
+ }
+ return "", fmt.Errorf("resolved reference to %q not found", ref)
+ })
+ if err != nil {
+ return nil, err
+ }
+
+ if err := encoder.Encode(obj2); err != nil {
+ return nil, err
+ }
+ }
+}
+
+type replaceString func(string) (string, error)
+
+// replaceRecursive walks the provided untyped object recursively by switching
+// on the type of the object at each level. It supports walking through the
+// keys and values of maps, and the elements of an array. When a leaf of type
+// string is encountered, this will call the provided replaceString function on
+// it. This function does not support walking through struct types, but also
+// should not need to as the input is expected to be the result of parsing yaml
+// or json into an interface{}, which should only produce primitives, maps and
+// arrays. This function will return a copy of the object rebuilt by the walk
+// with the replacements made.
+func replaceRecursive(obj interface{}, rs replaceString) (interface{}, error) {
+ switch typed := obj.(type) {
+ case map[interface{}]interface{}:
+ m2 := make(map[interface{}]interface{}, len(typed))
+ for k, v := range typed {
+ k2, err := replaceRecursive(k, rs)
+ if err != nil {
+ return nil, err
+ }
+ v2, err := replaceRecursive(v, rs)
+ if err != nil {
+ return nil, err
+ }
+ m2[k2] = v2
+ }
+ return m2, nil
+
+ case []interface{}:
+ a2 := make([]interface{}, len(typed))
+ for idx, v := range typed {
+ v2, err := replaceRecursive(v, rs)
+ if err != nil {
+ return nil, err
+ }
+ a2[idx] = v2
+ }
+ return a2, nil
+
+ case string:
+ // call our replaceString on this string leaf.
+ return rs(typed)
+
+ default:
+ // leave other leaves alone.
+ return typed, nil
+ }
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/name/check.go b/vendor/github.com/google/go-containerregistry/pkg/name/check.go
new file mode 100644
index 0000000000..01a25d554a
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/name/check.go
@@ -0,0 +1,52 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package name
+
+import (
+ "strings"
+ "unicode/utf8"
+)
+
+// Strictness defines the level of strictness for name validation.
+type Strictness int
+
+// Enums for CRUD operations.
+const (
+ StrictValidation Strictness = iota
+ WeakValidation
+)
+
+// stripRunesFn returns a function which returns -1 (i.e. a value which
+// signals deletion in strings.Map) for runes in 'runes', and the rune otherwise.
+func stripRunesFn(runes string) func(rune) rune {
+ return func(r rune) rune {
+ if strings.ContainsRune(runes, r) {
+ return -1
+ }
+ return r
+ }
+}
+
+// checkElement checks a given named element matches character and length restrictions.
+// Returns true if the given element adheres to the given restrictions, false otherwise.
+func checkElement(name, element, allowedRunes string, minRunes, maxRunes int) error {
+ numRunes := utf8.RuneCountInString(element)
+ if (numRunes < minRunes) || (maxRunes < numRunes) {
+ return NewErrBadName("%s must be between %d and %d runes in length: %s", name, minRunes, maxRunes, element)
+ } else if len(strings.Map(stripRunesFn(allowedRunes), element)) != 0 {
+ return NewErrBadName("%s can only contain the runes `%s`: %s", name, allowedRunes, element)
+ }
+ return nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/name/digest.go b/vendor/github.com/google/go-containerregistry/pkg/name/digest.go
new file mode 100644
index 0000000000..ea6287a847
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/name/digest.go
@@ -0,0 +1,91 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package name defines structured types for representing image references.
+package name
+
+import (
+ "strings"
+)
+
+const (
+ // These have the form: sha256:
+ // TODO(dekkagaijin): replace with opencontainers/go-digest or docker/distribution's validation.
+ digestChars = "sh:0123456789abcdef"
+ digestDelim = "@"
+)
+
+// Digest stores a digest name in a structured form.
+type Digest struct {
+ Repository
+ digest string
+}
+
+// Ensure Digest implements Reference
+var _ Reference = (*Digest)(nil)
+
+// Context implements Reference.
+func (d Digest) Context() Repository {
+ return d.Repository
+}
+
+// Identifier implements Reference.
+func (d Digest) Identifier() string {
+ return d.DigestStr()
+}
+
+// DigestStr returns the digest component of the Digest.
+func (d Digest) DigestStr() string {
+ return d.digest
+}
+
+// Name returns the name from which the Digest was derived.
+func (d Digest) Name() string {
+ return d.Repository.Name() + digestDelim + d.DigestStr()
+}
+
+func (d Digest) String() string {
+ return d.Name()
+}
+
+func checkDigest(name string) error {
+ return checkElement("digest", name, digestChars, 7+64, 7+64)
+}
+
+// NewDigest returns a new Digest representing the given name, according to the given strictness.
+func NewDigest(name string, strict Strictness) (Digest, error) {
+ // Split on "@"
+ parts := strings.Split(name, digestDelim)
+ if len(parts) != 2 {
+ return Digest{}, NewErrBadName("a digest must contain exactly one '@' separator (e.g. registry/repository@digest) saw: %s", name)
+ }
+ base := parts[0]
+ digest := parts[1]
+
+ // We don't require a digest, but if we get one check it's valid,
+ // even when not being strict.
+ // If we are being strict, we want to validate the digest regardless in case
+ // it's empty.
+ if digest != "" || strict == StrictValidation {
+ if err := checkDigest(digest); err != nil {
+ return Digest{}, err
+ }
+ }
+
+ repo, err := NewRepository(base, strict)
+ if err != nil {
+ return Digest{}, err
+ }
+ return Digest{repo, digest}, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/name/errors.go b/vendor/github.com/google/go-containerregistry/pkg/name/errors.go
new file mode 100644
index 0000000000..7847cc5d1e
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/name/errors.go
@@ -0,0 +1,37 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package name
+
+import "fmt"
+
+// ErrBadName is an error for when a bad docker name is supplied.
+type ErrBadName struct {
+ info string
+}
+
+func (e *ErrBadName) Error() string {
+ return e.info
+}
+
+// NewErrBadName returns a ErrBadName which returns the given formatted string from Error().
+func NewErrBadName(fmtStr string, args ...interface{}) *ErrBadName {
+ return &ErrBadName{fmt.Sprintf(fmtStr, args...)}
+}
+
+// IsErrBadName returns true if the given error is an ErrBadName.
+func IsErrBadName(err error) bool {
+ _, ok := err.(*ErrBadName)
+ return ok
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/name/ref.go b/vendor/github.com/google/go-containerregistry/pkg/name/ref.go
new file mode 100644
index 0000000000..58775daa30
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/name/ref.go
@@ -0,0 +1,50 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package name
+
+import (
+ "errors"
+ "fmt"
+)
+
+// Reference defines the interface that consumers use when they can
+// take either a tag or a digest.
+type Reference interface {
+ fmt.Stringer
+
+ // Context accesses the Repository context of the reference.
+ Context() Repository
+
+ // Identifier accesses the type-specific portion of the reference.
+ Identifier() string
+
+ // Name is the fully-qualified reference name.
+ Name() string
+
+ // Scope is the scope needed to access this reference.
+ Scope(string) string
+}
+
+// ParseReference parses the string as a reference, either by tag or digest.
+func ParseReference(s string, strict Strictness) (Reference, error) {
+ if t, err := NewTag(s, strict); err == nil {
+ return t, nil
+ }
+ if d, err := NewDigest(s, strict); err == nil {
+ return d, nil
+ }
+ // TODO: Combine above errors into something more useful?
+ return nil, errors.New("could not parse reference")
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/name/registry.go b/vendor/github.com/google/go-containerregistry/pkg/name/registry.go
new file mode 100644
index 0000000000..ab74193080
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/name/registry.go
@@ -0,0 +1,144 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package name
+
+import (
+ "net"
+ "net/url"
+ "regexp"
+ "strings"
+)
+
+const (
+ // DefaultRegistry is Docker Hub, assumed when a hostname is omitted.
+ DefaultRegistry = "index.docker.io"
+ defaultRegistryAlias = "docker.io"
+)
+
+// Detect more complex forms of local references.
+var reLocal = regexp.MustCompile(`.*\.local(?:host)?(?::\d{1,5})?$`)
+
+// Detect the loopback IP (127.0.0.1)
+var reLoopback = regexp.MustCompile(regexp.QuoteMeta("127.0.0.1"))
+
+// Detect the loopback IPV6 (::1)
+var reipv6Loopback = regexp.MustCompile(regexp.QuoteMeta("::1"))
+
+// Registry stores a docker registry name in a structured form.
+type Registry struct {
+ insecure bool
+ registry string
+}
+
+// RegistryStr returns the registry component of the Registry.
+func (r Registry) RegistryStr() string {
+ if r.registry != "" {
+ return r.registry
+ }
+ return DefaultRegistry
+}
+
+// Name returns the name from which the Registry was derived.
+func (r Registry) Name() string {
+ return r.RegistryStr()
+}
+
+func (r Registry) String() string {
+ return r.Name()
+}
+
+// Scope returns the scope required to access the registry.
+func (r Registry) Scope(string) string {
+ // The only resource under 'registry' is 'catalog'. http://goo.gl/N9cN9Z
+ return "registry:catalog:*"
+}
+
+func (r Registry) isRFC1918() bool {
+ ipStr := strings.Split(r.Name(), ":")[0]
+ ip := net.ParseIP(ipStr)
+ if ip == nil {
+ return false
+ }
+ for _, cidr := range []string{"10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"} {
+ _, block, _ := net.ParseCIDR(cidr)
+ if block.Contains(ip) {
+ return true
+ }
+ }
+ return false
+}
+
+// Scheme returns https scheme for all the endpoints except localhost or when explicitly defined.
+func (r Registry) Scheme() string {
+ if r.insecure {
+ return "http"
+ }
+ if r.isRFC1918() {
+ return "http"
+ }
+ if strings.HasPrefix(r.Name(), "localhost:") {
+ return "http"
+ }
+ if reLocal.MatchString(r.Name()) {
+ return "http"
+ }
+ if reLoopback.MatchString(r.Name()) {
+ return "http"
+ }
+ if reipv6Loopback.MatchString(r.Name()) {
+ return "http"
+ }
+ return "https"
+}
+
+func checkRegistry(name string) error {
+ // Per RFC 3986, registries (authorities) are required to be prefixed with "//"
+ // url.Host == hostname[:port] == authority
+ if url, err := url.Parse("//" + name); err != nil || url.Host != name {
+ return NewErrBadName("registries must be valid RFC 3986 URI authorities: %s", name)
+ }
+ return nil
+}
+
+// NewRegistry returns a Registry based on the given name.
+// Strict validation requires explicit, valid RFC 3986 URI authorities to be given.
+func NewRegistry(name string, strict Strictness) (Registry, error) {
+ if strict == StrictValidation && len(name) == 0 {
+ return Registry{}, NewErrBadName("strict validation requires the registry to be explicitly defined")
+ }
+
+ if err := checkRegistry(name); err != nil {
+ return Registry{}, err
+ }
+
+ // Rewrite "docker.io" to "index.docker.io".
+ // See: https://github.com/google/go-containerregistry/issues/68
+ if name == defaultRegistryAlias {
+ name = DefaultRegistry
+ }
+
+ return Registry{registry: name}, nil
+}
+
+// NewInsecureRegistry returns an Insecure Registry based on the given name.
+// Strict validation requires explicit, valid RFC 3986 URI authorities to be given.
+func NewInsecureRegistry(name string, strict Strictness) (Registry, error) {
+ reg, err := NewRegistry(name, strict)
+ if err != nil {
+ return Registry{}, err
+ }
+ reg.insecure = true
+ return reg, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/name/repository.go b/vendor/github.com/google/go-containerregistry/pkg/name/repository.go
new file mode 100644
index 0000000000..43cc5b82b3
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/name/repository.go
@@ -0,0 +1,99 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package name
+
+import (
+ "fmt"
+ "strings"
+)
+
+const (
+ defaultNamespace = "library"
+ repositoryChars = "abcdefghijklmnopqrstuvwxyz0123456789_-./"
+ regRepoDelimiter = "/"
+)
+
+// Repository stores a docker repository name in a structured form.
+type Repository struct {
+ Registry
+ repository string
+}
+
+// See https://docs.docker.com/docker-hub/official_repos
+func hasImplicitNamespace(repo string, reg Registry) bool {
+ return !strings.ContainsRune(repo, '/') && reg.RegistryStr() == DefaultRegistry
+}
+
+// RepositoryStr returns the repository component of the Repository.
+func (r Repository) RepositoryStr() string {
+ if hasImplicitNamespace(r.repository, r.Registry) {
+ return fmt.Sprintf("%s/%s", defaultNamespace, r.repository)
+ }
+ return r.repository
+}
+
+// Name returns the name from which the Repository was derived.
+func (r Repository) Name() string {
+ regName := r.Registry.Name()
+ if regName != "" {
+ return regName + regRepoDelimiter + r.RepositoryStr()
+ }
+ return r.RepositoryStr()
+}
+
+func (r Repository) String() string {
+ return r.Name()
+}
+
+// Scope returns the scope required to perform the given action on the registry.
+// TODO(jonjohnsonjr): consider moving scopes to a separate package.
+func (r Repository) Scope(action string) string {
+ return fmt.Sprintf("repository:%s:%s", r.RepositoryStr(), action)
+}
+
+func checkRepository(repository string) error {
+ return checkElement("repository", repository, repositoryChars, 2, 255)
+}
+
+// NewRepository returns a new Repository representing the given name, according to the given strictness.
+func NewRepository(name string, strict Strictness) (Repository, error) {
+ if len(name) == 0 {
+ return Repository{}, NewErrBadName("a repository name must be specified")
+ }
+
+ var registry string
+ repo := name
+ parts := strings.SplitN(name, regRepoDelimiter, 2)
+ if len(parts) == 2 && (strings.ContainsRune(parts[0], '.') || strings.ContainsRune(parts[0], ':')) {
+ // The first part of the repository is treated as the registry domain
+ // iff it contains a '.' or ':' character, otherwise it is all repository
+ // and the domain defaults to Docker Hub.
+ registry = parts[0]
+ repo = parts[1]
+ }
+
+ if err := checkRepository(repo); err != nil {
+ return Repository{}, err
+ }
+
+ reg, err := NewRegistry(registry, strict)
+ if err != nil {
+ return Repository{}, err
+ }
+ if hasImplicitNamespace(repo, reg) && strict == StrictValidation {
+ return Repository{}, NewErrBadName("strict validation requires the full repository path (missing 'library')")
+ }
+ return Repository{reg, repo}, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/name/tag.go b/vendor/github.com/google/go-containerregistry/pkg/name/tag.go
new file mode 100644
index 0000000000..b8375e1f9b
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/name/tag.go
@@ -0,0 +1,101 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package name
+
+import (
+ "strings"
+)
+
+const (
+ defaultTag = "latest"
+ // TODO(dekkagaijin): use the docker/distribution regexes for validation.
+ tagChars = "abcdefghijklmnopqrstuvwxyz0123456789_-.ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ tagDelim = ":"
+)
+
+// Tag stores a docker tag name in a structured form.
+type Tag struct {
+ Repository
+ tag string
+}
+
+// Ensure Tag implements Reference
+var _ Reference = (*Tag)(nil)
+
+// Context implements Reference.
+func (t Tag) Context() Repository {
+ return t.Repository
+}
+
+// Identifier implements Reference.
+func (t Tag) Identifier() string {
+ return t.TagStr()
+}
+
+// TagStr returns the tag component of the Tag.
+func (t Tag) TagStr() string {
+ if t.tag != "" {
+ return t.tag
+ }
+ return defaultTag
+}
+
+// Name returns the name from which the Tag was derived.
+func (t Tag) Name() string {
+ return t.Repository.Name() + tagDelim + t.TagStr()
+}
+
+func (t Tag) String() string {
+ return t.Name()
+}
+
+// Scope returns the scope required to perform the given action on the tag.
+func (t Tag) Scope(action string) string {
+ return t.Repository.Scope(action)
+}
+
+func checkTag(name string) error {
+ return checkElement("tag", name, tagChars, 1, 127)
+}
+
+// NewTag returns a new Tag representing the given name, according to the given strictness.
+func NewTag(name string, strict Strictness) (Tag, error) {
+ base := name
+ tag := ""
+
+ // Split on ":"
+ parts := strings.Split(name, tagDelim)
+ // Verify that we aren't confusing a tag for a hostname w/ port for the purposes of weak validation.
+ if len(parts) > 1 && !strings.Contains(parts[len(parts)-1], regRepoDelimiter) {
+ base = strings.Join(parts[:len(parts)-1], tagDelim)
+ tag = parts[len(parts)-1]
+ }
+
+ // We don't require a tag, but if we get one check it's valid,
+ // even when not being strict.
+ // If we are being strict, we want to validate the tag regardless in case
+ // it's empty.
+ if tag != "" || strict == StrictValidation {
+ if err := checkTag(tag); err != nil {
+ return Tag{}, err
+ }
+ }
+
+ repo, err := NewRepository(base, strict)
+ if err != nil {
+ return Tag{}, err
+ }
+ return Tag{repo, tag}, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/config.go b/vendor/github.com/google/go-containerregistry/pkg/v1/config.go
new file mode 100644
index 0000000000..d1d809d911
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/config.go
@@ -0,0 +1,130 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package v1
+
+import (
+ "encoding/json"
+ "io"
+ "time"
+)
+
+// ConfigFile is the configuration file that holds the metadata describing
+// how to launch a container. The names of the fields are chosen to reflect
+// the JSON payload of the ConfigFile as defined here: https://git.io/vrAEY
+type ConfigFile struct {
+ Architecture string `json:"architecture"`
+ Container string `json:"container"`
+ Created Time `json:"created"`
+ DockerVersion string `json:"docker_version"`
+ History []History `json:"history"`
+ OS string `json:"os"`
+ RootFS RootFS `json:"rootfs"`
+ Config Config `json:"config"`
+ ContainerConfig Config `json:"container_config"`
+ OSVersion string `json:"osversion"`
+}
+
+// History is one entry of a list recording how this container image was built.
+type History struct {
+ Author string `json:"author"`
+ Created Time `json:"created"`
+ CreatedBy string `json:"created_by"`
+ Comment string `json:"comment"`
+ EmptyLayer bool `json:"empty_layer,omitempty"`
+}
+
+// Time is a wrapper around time.Time to help with deep copying
+type Time struct {
+ time.Time
+}
+
+// DeepCopyInto creates a deep-copy of the Time value. The underlying time.Time
+// type is effectively immutable in the time API, so it is safe to
+// copy-by-assign, despite the presence of (unexported) Pointer fields.
+func (t *Time) DeepCopyInto(out *Time) {
+ *out = *t
+}
+
+// RootFS holds the ordered list of file system deltas that comprise the
+// container image's root filesystem.
+type RootFS struct {
+ Type string `json:"type"`
+ DiffIDs []Hash `json:"diff_ids"`
+}
+
+// HealthConfig holds configuration settings for the HEALTHCHECK feature.
+type HealthConfig struct {
+ // Test is the test to perform to check that the container is healthy.
+ // An empty slice means to inherit the default.
+ // The options are:
+ // {} : inherit healthcheck
+ // {"NONE"} : disable healthcheck
+ // {"CMD", args...} : exec arguments directly
+ // {"CMD-SHELL", command} : run command with system's default shell
+ Test []string `json:",omitempty"`
+
+ // Zero means to inherit. Durations are expressed as integer nanoseconds.
+ Interval time.Duration `json:",omitempty"` // Interval is the time to wait between checks.
+ Timeout time.Duration `json:",omitempty"` // Timeout is the time to wait before considering the check to have hung.
+ StartPeriod time.Duration `json:",omitempty"` // The start period for the container to initialize before the retries starts to count down.
+
+ // Retries is the number of consecutive failures needed to consider a container as unhealthy.
+ // Zero means inherit.
+ Retries int `json:",omitempty"`
+}
+
+// Config is a submessage of the config file described as:
+// The execution parameters which SHOULD be used as a base when running
+// a container using the image.
+// The names of the fields in this message are chosen to reflect the JSON
+// payload of the Config as defined here:
+// https://git.io/vrAET
+// and
+// https://github.com/opencontainers/image-spec/blob/master/config.md
+type Config struct {
+ AttachStderr bool
+ AttachStdin bool
+ AttachStdout bool
+ Cmd []string
+ Healthcheck *HealthConfig
+ Domainname string
+ Entrypoint []string
+ Env []string
+ Hostname string
+ Image string
+ Labels map[string]string
+ OnBuild []string
+ OpenStdin bool
+ StdinOnce bool
+ Tty bool
+ User string
+ Volumes map[string]struct{}
+ WorkingDir string
+ ExposedPorts map[string]struct{}
+ ArgsEscaped bool
+ NetworkDisabled bool
+ MacAddress string
+ StopSignal string
+ Shell []string
+}
+
+// ParseConfigFile parses the io.Reader's contents into a ConfigFile.
+func ParseConfigFile(r io.Reader) (*ConfigFile, error) {
+ cf := ConfigFile{}
+ if err := json.NewDecoder(r).Decode(&cf); err != nil {
+ return nil, err
+ }
+ return &cf, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/daemon/doc.go b/vendor/github.com/google/go-containerregistry/pkg/v1/daemon/doc.go
new file mode 100644
index 0000000000..ac05d96121
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/daemon/doc.go
@@ -0,0 +1,17 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package daemon provides facilities for reading/writing v1.Image from/to
+// a running daemon.
+package daemon
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/daemon/image.go b/vendor/github.com/google/go-containerregistry/pkg/v1/daemon/image.go
new file mode 100644
index 0000000000..b7f5f3ef6c
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/daemon/image.go
@@ -0,0 +1,133 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package daemon
+
+import (
+ "bytes"
+ "context"
+ "io"
+ "io/ioutil"
+
+ "github.com/docker/docker/client"
+ "github.com/google/go-containerregistry/pkg/name"
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+ "github.com/google/go-containerregistry/pkg/v1/tarball"
+)
+
+// image accesses an image from a docker daemon
+type image struct {
+ v1.Image
+
+ opener tarball.Opener
+ ref name.Reference
+}
+
+var _ v1.Image = (*image)(nil)
+
+type imageOpener struct {
+ ref name.Reference
+ buffered bool
+}
+
+// ImageOption is a functional option for Image.
+type ImageOption func(*imageOpener) error
+
+func (i *imageOpener) Open() (v1.Image, error) {
+ var opener tarball.Opener
+ var err error
+ if i.buffered {
+ opener, err = bufferedOpener(i.ref)
+ } else {
+ opener, err = unbufferedOpener(i.ref)
+ }
+ if err != nil {
+ return nil, err
+ }
+
+ tb, err := tarball.Image(opener, nil)
+ if err != nil {
+ return nil, err
+ }
+ img := &image{
+ Image: tb,
+ }
+ return img, nil
+}
+
+// ImageSaver is an interface for testing.
+type ImageSaver interface {
+ ImageSave(context.Context, []string) (io.ReadCloser, error)
+}
+
+// This is a variable so we can override in tests.
+var getImageSaver = func() (ImageSaver, error) {
+ cli, err := client.NewEnvClient()
+ if err != nil {
+ return nil, err
+ }
+ cli.NegotiateAPIVersion(context.Background())
+ return cli, nil
+}
+
+func saveImage(ref name.Reference) (io.ReadCloser, error) {
+ cli, err := getImageSaver()
+ if err != nil {
+ return nil, err
+ }
+
+ return cli.ImageSave(context.Background(), []string{ref.Name()})
+}
+
+func bufferedOpener(ref name.Reference) (tarball.Opener, error) {
+ // Store the tarball in memory and return a new reader into the bytes each time we need to access something.
+ rc, err := saveImage(ref)
+ if err != nil {
+ return nil, err
+ }
+ defer rc.Close()
+
+ imageBytes, err := ioutil.ReadAll(rc)
+ if err != nil {
+ return nil, err
+ }
+ // The tarball interface takes a function that it can call to return an opened reader-like object.
+ // Daemon comes from a set of bytes, so wrap them in a ReadCloser so it looks like an opened file.
+ return func() (io.ReadCloser, error) {
+ return ioutil.NopCloser(bytes.NewReader(imageBytes)), nil
+ }, nil
+}
+
+func unbufferedOpener(ref name.Reference) (tarball.Opener, error) {
+ // To avoid storing the tarball in memory, do a save every time we need to access something.
+ return func() (io.ReadCloser, error) {
+ return saveImage(ref)
+ }, nil
+}
+
+// Image provides access to an image reference from the Docker daemon,
+// applying functional options to the underlying imageOpener before
+// resolving the reference into a v1.Image.
+func Image(ref name.Reference, options ...ImageOption) (v1.Image, error) {
+ i := &imageOpener{
+ ref: ref,
+ buffered: true, // buffer by default
+ }
+ for _, option := range options {
+ if err := option(i); err != nil {
+ return nil, err
+ }
+ }
+ return i.Open()
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/daemon/options.go b/vendor/github.com/google/go-containerregistry/pkg/v1/daemon/options.go
new file mode 100644
index 0000000000..4e03952ee6
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/daemon/options.go
@@ -0,0 +1,34 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package daemon
+
+// WithBufferedOpener buffers the image.
+func WithBufferedOpener() ImageOption {
+ return func(i *imageOpener) error {
+ return i.setBuffered(true)
+ }
+}
+
+// WithUnbufferedOpener streams the image to avoid buffering.
+func WithUnbufferedOpener() ImageOption {
+ return func(i *imageOpener) error {
+ return i.setBuffered(false)
+ }
+}
+
+func (i *imageOpener) setBuffered(buffer bool) error {
+ i.buffered = buffer
+ return nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/daemon/write.go b/vendor/github.com/google/go-containerregistry/pkg/v1/daemon/write.go
new file mode 100644
index 0000000000..09e9bbdb56
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/daemon/write.go
@@ -0,0 +1,80 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package daemon
+
+import (
+ "context"
+ "io"
+ "io/ioutil"
+
+ "github.com/docker/docker/api/types"
+ "github.com/docker/docker/client"
+ "github.com/google/go-containerregistry/pkg/name"
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+ "github.com/google/go-containerregistry/pkg/v1/tarball"
+ "github.com/pkg/errors"
+)
+
+// ImageLoader is an interface for testing.
+type ImageLoader interface {
+ ImageLoad(context.Context, io.Reader, bool) (types.ImageLoadResponse, error)
+ ImageTag(context.Context, string, string) error
+}
+
+// GetImageLoader is a variable so we can override in tests.
+var GetImageLoader = func() (ImageLoader, error) {
+ cli, err := client.NewEnvClient()
+ if err != nil {
+ return nil, err
+ }
+ cli.NegotiateAPIVersion(context.Background())
+ return cli, nil
+}
+
+// Tag adds a tag to an already existent image.
+func Tag(src, dest name.Tag) error {
+ cli, err := GetImageLoader()
+ if err != nil {
+ return err
+ }
+
+ return cli.ImageTag(context.Background(), src.String(), dest.String())
+}
+
+// Write saves the image into the daemon as the given tag.
+func Write(tag name.Tag, img v1.Image) (string, error) {
+ cli, err := GetImageLoader()
+ if err != nil {
+ return "", err
+ }
+
+ pr, pw := io.Pipe()
+ go func() {
+ pw.CloseWithError(tarball.Write(tag, img, pw))
+ }()
+
+ // write the image in docker save format first, then load it
+ resp, err := cli.ImageLoad(context.Background(), pr, false)
+ if err != nil {
+ return "", errors.Wrapf(err, "error loading image")
+ }
+ defer resp.Body.Close()
+ b, readErr := ioutil.ReadAll(resp.Body)
+ response := string(b)
+ if readErr != nil {
+ return response, errors.Wrapf(err, "error reading load response body")
+ }
+ return response, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/doc.go b/vendor/github.com/google/go-containerregistry/pkg/v1/doc.go
new file mode 100644
index 0000000000..7273ec5ab8
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/doc.go
@@ -0,0 +1,19 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//go:generate deepcopy-gen -O zz_deepcopy_generated --go-header-file $BOILER_PLATE_FILE -i .
+// +k8s:deepcopy-gen=package
+
+// Package v1 defines structured types for OCI v1 images
+package v1
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/empty/doc.go b/vendor/github.com/google/go-containerregistry/pkg/v1/empty/doc.go
new file mode 100644
index 0000000000..1a521e9a74
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/empty/doc.go
@@ -0,0 +1,16 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package empty provides an implementation of v1.Image equivalent to "FROM scratch".
+package empty
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/empty/image.go b/vendor/github.com/google/go-containerregistry/pkg/v1/empty/image.go
new file mode 100644
index 0000000000..fa24748a83
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/empty/image.go
@@ -0,0 +1,22 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package empty
+
+import (
+ "github.com/google/go-containerregistry/pkg/v1/random"
+)
+
+// Image is a singleton empty image, think: FROM scratch.
+var Image, _ = random.Image(0, 0)
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/google/auth.go b/vendor/github.com/google/go-containerregistry/pkg/v1/google/auth.go
new file mode 100644
index 0000000000..ccda08db16
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/google/auth.go
@@ -0,0 +1,138 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package google
+
+import (
+ "bytes"
+ "context"
+ "encoding/json"
+ "fmt"
+ "os"
+ "os/exec"
+ "time"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "golang.org/x/oauth2"
+ googauth "golang.org/x/oauth2/google"
+)
+
+const cloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
+
+// GetGcloudCmd is exposed so we can test this.
+var GetGcloudCmd = func() *exec.Cmd {
+ // This is odd, but basically what docker-credential-gcr does.
+ //
+ // config-helper is undocumented, but it's purportedly the only supported way
+ // of accessing tokens (`gcloud auth print-access-token` is discouraged).
+ //
+ // --force-auth-refresh means we are getting a token that is valid for about
+ // an hour (we reuse it until it's expired).
+ return exec.Command("gcloud", "config", "config-helper", "--force-auth-refresh", "--format=json(credential)")
+}
+
+// NewEnvAuthenticator returns an authn.Authenticator that generates access
+// tokens from the environment we're running in.
+//
+// See: https://godoc.org/golang.org/x/oauth2/google#FindDefaultCredentials
+func NewEnvAuthenticator() (authn.Authenticator, error) {
+ ts, err := googauth.DefaultTokenSource(context.Background(), cloudPlatformScope)
+ if err != nil {
+ return nil, err
+ }
+
+ return &tokenSourceAuth{oauth2.ReuseTokenSource(nil, ts)}, nil
+}
+
+// NewGcloudAuthenticator returns an oauth2.TokenSource that generates access
+// tokens by shelling out to the gcloud sdk.
+func NewGcloudAuthenticator() (authn.Authenticator, error) {
+ ts := gcloudSource{GetGcloudCmd()}
+
+ // Attempt to fetch a token to ensure gcloud is installed and we can run it.
+ token, err := ts.Token()
+ if err != nil {
+ return nil, err
+ }
+
+ return &tokenSourceAuth{oauth2.ReuseTokenSource(token, ts)}, nil
+}
+
+// tokenSourceAuth turns an oauth2.TokenSource into an authn.Authenticator.
+type tokenSourceAuth struct {
+ oauth2.TokenSource
+}
+
+// Authorization implements authn.Authenticator.
+func (tsa *tokenSourceAuth) Authorization() (string, error) {
+ token, err := tsa.Token()
+ if err != nil {
+ return "", err
+ }
+
+ return "Bearer " + token.AccessToken, nil
+}
+
+// gcloudOutput represents the output of the gcloud command we invoke.
+//
+// `gcloud config config-helper --format=json(credential)` looks something like:
+//
+// {
+// "credential": {
+// "access_token": "ya29.abunchofnonsense",
+// "token_expiry": "2018-12-02T04:08:13Z"
+// }
+// }
+type gcloudOutput struct {
+ Credential struct {
+ AccessToken string `json:"access_token"`
+ TokenExpiry string `json:"token_expiry"`
+ } `json:"credential"`
+}
+
+type gcloudSource struct {
+ // This is passed in so that we mock out gcloud and test Token.
+ cmd *exec.Cmd
+}
+
+// Token implements oauath2.TokenSource.
+func (gs gcloudSource) Token() (*oauth2.Token, error) {
+ cmd := gs.cmd
+ var out bytes.Buffer
+ cmd.Stdout = &out
+
+ // Don't attempt to interpret stderr, just pass it through.
+ cmd.Stderr = os.Stderr
+
+ if err := cmd.Run(); err != nil {
+ return nil, fmt.Errorf("error executing `gcloud config config-helper`: %v", err)
+ }
+
+ creds := gcloudOutput{}
+ if err := json.Unmarshal(out.Bytes(), &creds); err != nil {
+ return nil, fmt.Errorf("failed to parse `gcloud config config-helper` output: %v", err)
+ }
+
+ expiry, err := time.Parse(time.RFC3339, creds.Credential.TokenExpiry)
+ if err != nil {
+ return nil, fmt.Errorf("failed to parse gcloud token expiry: %v", err)
+ }
+
+ token := oauth2.Token{
+ AccessToken: creds.Credential.AccessToken,
+ Expiry: expiry,
+ }
+
+ return &token, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/google/doc.go b/vendor/github.com/google/go-containerregistry/pkg/v1/google/doc.go
new file mode 100644
index 0000000000..b6a67df049
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/google/doc.go
@@ -0,0 +1,16 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package google provides facilities for listing images in gcr.io.
+package google
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/google/keychain.go b/vendor/github.com/google/go-containerregistry/pkg/v1/google/keychain.go
new file mode 100644
index 0000000000..d21cfd7965
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/google/keychain.go
@@ -0,0 +1,68 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package google
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+)
+
+// Keychain exports an instance of the google Keychain.
+var Keychain authn.Keychain = &googleKeychain{}
+
+type googleKeychain struct{}
+
+// Resolve implements authn.Keychain a la docker-credential-gcr.
+//
+// This behaves similarly to the GCR credential helper, but reuses tokens until
+// they expire.
+//
+// We can't easily add this behavior to our credential helper implementation
+// of authn.Authenticator because the credential helper protocol doesn't include
+// expiration information, see here:
+// https://godoc.org/github.com/docker/docker-credential-helpers/credentials#Credentials
+//
+// In addition to being a performance optimization, the reuse of these access
+// tokens works around a bug in gcloud. It appears that attempting to invoke
+// `gcloud config config-helper` multiple times too quickly will fail:
+// https://github.com/GoogleCloudPlatform/docker-credential-gcr/issues/54
+//
+// We could upstream this behavior into docker-credential-gcr by parsing
+// gcloud's output and persisting its tokens across invocations, but then
+// we have to deal with invalidating caches across multiple runs (no fun).
+//
+// In general, we don't worry about that here because we expect to use the same
+// gcloud configuration in the scope of this one process.
+func (gk *googleKeychain) Resolve(reg name.Registry) (authn.Authenticator, error) {
+ // Only authenticate GCR so it works with authn.NewMultiKeychain to fallback.
+ if !strings.HasSuffix(reg.String(), "gcr.io") {
+ return authn.Anonymous, nil
+ }
+
+ auth, envErr := NewEnvAuthenticator()
+ if envErr == nil {
+ return auth, nil
+ }
+
+ auth, gErr := NewGcloudAuthenticator()
+ if gErr == nil {
+ return auth, nil
+ }
+
+ return nil, fmt.Errorf("failed to create token source from env: %v or gcloud: %v", envErr, gErr)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/google/list.go b/vendor/github.com/google/go-containerregistry/pkg/v1/google/list.go
new file mode 100644
index 0000000000..966564f920
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/google/list.go
@@ -0,0 +1,220 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package google
+
+import (
+ "encoding/json"
+ "fmt"
+ "net/http"
+ "net/url"
+ "strconv"
+ "time"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+ "github.com/google/go-containerregistry/pkg/v1/remote/transport"
+)
+
+// ListerOption is a functional option for List and Walk.
+// TODO: Can we somehow reuse the remote options here?
+type ListerOption func(*lister) error
+
+type lister struct {
+ auth authn.Authenticator
+ transport http.RoundTripper
+ repo name.Repository
+ client *http.Client
+}
+
+func newLister(repo name.Repository, options ...ListerOption) (*lister, error) {
+ l := &lister{
+ auth: authn.Anonymous,
+ transport: http.DefaultTransport,
+ repo: repo,
+ }
+
+ for _, option := range options {
+ if err := option(l); err != nil {
+ return nil, err
+ }
+ }
+
+ scopes := []string{repo.Scope(transport.PullScope)}
+ tr, err := transport.New(repo.Registry, l.auth, l.transport, scopes)
+ if err != nil {
+ return nil, err
+ }
+
+ l.client = &http.Client{Transport: tr}
+
+ return l, nil
+}
+
+func (l *lister) list(repo name.Repository) (*Tags, error) {
+ uri := url.URL{
+ Scheme: repo.Registry.Scheme(),
+ Host: repo.Registry.RegistryStr(),
+ Path: fmt.Sprintf("/v2/%s/tags/list", repo.RepositoryStr()),
+ }
+
+ resp, err := l.client.Get(uri.String())
+ if err != nil {
+ return nil, err
+ }
+ defer resp.Body.Close()
+
+ if err := transport.CheckError(resp, http.StatusOK); err != nil {
+ return nil, err
+ }
+
+ tags := Tags{}
+ if err := json.NewDecoder(resp.Body).Decode(&tags); err != nil {
+ return nil, err
+ }
+
+ return &tags, nil
+}
+
+type rawManifestInfo struct {
+ Size string `json:"imageSizeBytes"`
+ MediaType string `json:"mediaType"`
+ Created string `json:"timeCreatedMs"`
+ Uploaded string `json:"timeUploadedMs"`
+ Tags []string `json:"tag"`
+}
+
+// ManifestInfo is a Manifests entry is the output of List and Walk.
+type ManifestInfo struct {
+ Size uint64 `json:"imageSizeBytes"`
+ MediaType string `json:"mediaType"`
+ Created time.Time `json:"timeCreatedMs"`
+ Uploaded time.Time `json:"timeUploadedMs"`
+ Tags []string `json:"tag"`
+}
+
+func fromUnixMs(ms int64) time.Time {
+ sec := ms / 1000
+ ns := (ms % 1000) * 1000000
+ return time.Unix(sec, ns)
+}
+
+// UnmarshalJSON implements json.Unmarshaler
+func (m *ManifestInfo) UnmarshalJSON(data []byte) error {
+ raw := rawManifestInfo{}
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+
+ if raw.Size != "" {
+ size, err := strconv.ParseUint(string(raw.Size), 10, 64)
+ if err != nil {
+ return err
+ }
+ m.Size = size
+ }
+
+ if raw.Created != "" {
+ created, err := strconv.ParseInt(string(raw.Created), 10, 64)
+ if err != nil {
+ return err
+ }
+ m.Created = fromUnixMs(created)
+ }
+
+ if raw.Uploaded != "" {
+ uploaded, err := strconv.ParseInt(string(raw.Uploaded), 10, 64)
+ if err != nil {
+ return err
+ }
+ m.Uploaded = fromUnixMs(uploaded)
+ }
+
+ m.MediaType = raw.MediaType
+ m.Tags = raw.Tags
+
+ return nil
+}
+
+// Tags is the result of List and Walk.
+type Tags struct {
+ Children []string `json:"child"`
+ Manifests map[string]ManifestInfo `json:"manifest"`
+ Name string `json:"name"`
+ Tags []string `json:"tags"`
+}
+
+// List calls /tags/list for the given repository.
+func List(repo name.Repository, options ...ListerOption) (*Tags, error) {
+ l, err := newLister(repo, options...)
+ if err != nil {
+ return nil, err
+ }
+
+ return l.list(repo)
+}
+
+// WalkFunc is the type of the function called for each repository visited by
+// Walk. This implements a similar API to filepath.Walk.
+//
+// The repo argument contains the argument to Walk as a prefix; that is, if Walk
+// is called with "gcr.io/foo", which is a repository containing the repository
+// "bar", the walk function will be called with argument "gcr.io/foo/bar".
+// The tags and error arguments are the result of calling List on repo.
+//
+// TODO: Do we want a SkipDir error, as in filepath.WalkFunc?
+type WalkFunc func(repo name.Repository, tags *Tags, err error) error
+
+func walk(repo name.Repository, tags *Tags, walkFn WalkFunc, options ...ListerOption) error {
+ if tags == nil {
+ // This shouldn't happen.
+ return fmt.Errorf("tags nil for %q", repo)
+ }
+
+ if err := walkFn(repo, tags, nil); err != nil {
+ return err
+ }
+
+ for _, path := range tags.Children {
+ child, err := name.NewRepository(fmt.Sprintf("%s/%s", repo, path), name.StrictValidation)
+ if err != nil {
+ // We don't expect this ever, so don't pass it through to walkFn.
+ return fmt.Errorf("unexpected path failure: %v", err)
+ }
+
+ childTags, err := List(child, options...)
+ if err != nil {
+ if err := walkFn(child, nil, err); err != nil {
+ return err
+ }
+ } else {
+ if err := walk(child, childTags, walkFn, options...); err != nil {
+ return err
+ }
+ }
+ }
+
+ // We made it!
+ return nil
+}
+
+// Walk recursively descends repositories, calling walkFn.
+func Walk(root name.Repository, walkFn WalkFunc, options ...ListerOption) error {
+ tags, err := List(root, options...)
+ if err != nil {
+ return walkFn(root, nil, err)
+ }
+
+ return walk(root, tags, walkFn, options...)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/google/options.go b/vendor/github.com/google/go-containerregistry/pkg/v1/google/options.go
new file mode 100644
index 0000000000..c0e95d6753
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/google/options.go
@@ -0,0 +1,56 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package google
+
+import (
+ "log"
+ "net/http"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+)
+
+// WithTransport is a functional option for overriding the default transport
+// on a remote image
+func WithTransport(t http.RoundTripper) ListerOption {
+ return func(l *lister) error {
+ l.transport = t
+ return nil
+ }
+}
+
+// WithAuth is a functional option for overriding the default authenticator
+// on a remote image
+func WithAuth(auth authn.Authenticator) ListerOption {
+ return func(l *lister) error {
+ l.auth = auth
+ return nil
+ }
+}
+
+// WithAuthFromKeychain is a functional option for overriding the default
+// authenticator on a remote image using an authn.Keychain
+func WithAuthFromKeychain(keys authn.Keychain) ListerOption {
+ return func(l *lister) error {
+ auth, err := keys.Resolve(l.repo.Registry)
+ if err != nil {
+ return err
+ }
+ if auth == authn.Anonymous {
+ log.Println("No matching credentials were found, falling back on anonymous")
+ }
+ l.auth = auth
+ return nil
+ }
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/hash.go b/vendor/github.com/google/go-containerregistry/pkg/v1/hash.go
new file mode 100644
index 0000000000..40933030d3
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/hash.go
@@ -0,0 +1,111 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package v1
+
+import (
+ "crypto/sha256"
+ "encoding/hex"
+ "encoding/json"
+ "fmt"
+ "hash"
+ "io"
+ "strconv"
+ "strings"
+)
+
+// Hash is an unqualified digest of some content, e.g. sha256:deadbeef
+type Hash struct {
+ // Algorithm holds the algorithm used to compute the hash.
+ Algorithm string
+
+ // Hex holds the hex portion of the content hash.
+ Hex string
+}
+
+// String reverses NewHash returning the string-form of the hash.
+func (h Hash) String() string {
+ return fmt.Sprintf("%s:%s", h.Algorithm, h.Hex)
+}
+
+// NewHash validates the input string is a hash and returns a strongly type Hash object.
+func NewHash(s string) (Hash, error) {
+ h := Hash{}
+ if err := h.parse(s); err != nil {
+ return Hash{}, err
+ }
+ return h, nil
+}
+
+// MarshalJSON implements json.Marshaler
+func (h Hash) MarshalJSON() ([]byte, error) {
+ return json.Marshal(h.String())
+}
+
+// UnmarshalJSON implements json.Unmarshaler
+func (h *Hash) UnmarshalJSON(data []byte) error {
+ s, err := strconv.Unquote(string(data))
+ if err != nil {
+ return err
+ }
+ return h.parse(s)
+}
+
+// Hasher returns a hash.Hash for the named algorithm (e.g. "sha256")
+func Hasher(name string) (hash.Hash, error) {
+ switch name {
+ case "sha256":
+ return sha256.New(), nil
+ default:
+ return nil, fmt.Errorf("unsupported hash: %q", name)
+ }
+}
+
+func (h *Hash) parse(unquoted string) error {
+ parts := strings.Split(unquoted, ":")
+ if len(parts) != 2 {
+ return fmt.Errorf("too many parts in hash: %s", unquoted)
+ }
+
+ rest := strings.TrimLeft(parts[1], "0123456789abcdef")
+ if len(rest) != 0 {
+ return fmt.Errorf("found non-hex character in hash: %c", rest[0])
+ }
+
+ hasher, err := Hasher(parts[0])
+ if err != nil {
+ return err
+ }
+ // Compare the hex to the expected size (2 hex characters per byte)
+ if len(parts[1]) != hasher.Size()*2 {
+ return fmt.Errorf("wrong number of hex digits for %s: %s", parts[0], parts[1])
+ }
+
+ h.Algorithm = parts[0]
+ h.Hex = parts[1]
+ return nil
+}
+
+// SHA256 computes the Hash of the provided io.Reader's content.
+func SHA256(r io.Reader) (Hash, int64, error) {
+ hasher := sha256.New()
+ n, err := io.Copy(hasher, r)
+ if err != nil {
+ return Hash{}, 0, err
+ }
+ return Hash{
+ Algorithm: "sha256",
+ Hex: hex.EncodeToString(hasher.Sum(make([]byte, 0, hasher.Size()))),
+ }, n, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/image.go b/vendor/github.com/google/go-containerregistry/pkg/v1/image.go
new file mode 100644
index 0000000000..05568aae0c
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/image.go
@@ -0,0 +1,58 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package v1
+
+import (
+ "github.com/google/go-containerregistry/pkg/v1/types"
+)
+
+// Image defines the interface for interacting with an OCI v1 image.
+type Image interface {
+ // Layers returns the ordered collection of filesystem layers that comprise this image.
+ // The order of the list is oldest/base layer first, and most-recent/top layer last.
+ Layers() ([]Layer, error)
+
+ // BlobSet returns an unordered collection of all the blobs in the image.
+ BlobSet() (map[Hash]struct{}, error)
+
+ // MediaType of this image's manifest.
+ MediaType() (types.MediaType, error)
+
+ // ConfigName returns the hash of the image's config file.
+ ConfigName() (Hash, error)
+
+ // ConfigFile returns this image's config file.
+ ConfigFile() (*ConfigFile, error)
+
+ // RawConfigFile returns the serialized bytes of ConfigFile()
+ RawConfigFile() ([]byte, error)
+
+ // Digest returns the sha256 of this image's manifest.
+ Digest() (Hash, error)
+
+ // Manifest returns this image's Manifest object.
+ Manifest() (*Manifest, error)
+
+ // RawManifest returns the serialized bytes of Manifest()
+ RawManifest() ([]byte, error)
+
+ // LayerByDigest returns a Layer for interacting with a particular layer of
+ // the image, looking it up by "digest" (the compressed hash).
+ LayerByDigest(Hash) (Layer, error)
+
+ // LayerByDiffID is an analog to LayerByDigest, looking up by "diff id"
+ // (the uncompressed hash).
+ LayerByDiffID(Hash) (Layer, error)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/index.go b/vendor/github.com/google/go-containerregistry/pkg/v1/index.go
new file mode 100644
index 0000000000..b076b37150
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/index.go
@@ -0,0 +1,34 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package v1
+
+import (
+ "github.com/google/go-containerregistry/pkg/v1/types"
+)
+
+// ImageIndex defines the interface for interacting with an OCI image index.
+type ImageIndex interface {
+ // MediaType of this image's manifest.
+ MediaType() (types.MediaType, error)
+
+ // Digest returns the sha256 of this index's manifest.
+ Digest() (Hash, error)
+
+ // IndexManifest returns this image index's manifest object.
+ IndexManifest() (*IndexManifest, error)
+
+ // RawIndexManifest returns the serialized bytes of IndexManifest().
+ RawIndexManifest() ([]byte, error)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/layer.go b/vendor/github.com/google/go-containerregistry/pkg/v1/layer.go
new file mode 100644
index 0000000000..8b5091e45b
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/layer.go
@@ -0,0 +1,37 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package v1
+
+import (
+ "io"
+)
+
+// Layer is an interface for accessing the properties of a particular layer of a v1.Image
+type Layer interface {
+ // Digest returns the Hash of the compressed layer.
+ Digest() (Hash, error)
+
+ // DiffID returns the Hash of the uncompressed layer.
+ DiffID() (Hash, error)
+
+ // Compressed returns an io.ReadCloser for the compressed layer contents.
+ Compressed() (io.ReadCloser, error)
+
+ // Uncompressed returns an io.ReadCloser for the uncompressed layer contents.
+ Uncompressed() (io.ReadCloser, error)
+
+ // Size returns the compressed size of the Layer.
+ Size() (int64, error)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/manifest.go b/vendor/github.com/google/go-containerregistry/pkg/v1/manifest.go
new file mode 100644
index 0000000000..932ae056a1
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/manifest.go
@@ -0,0 +1,67 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package v1
+
+import (
+ "encoding/json"
+ "io"
+
+ "github.com/google/go-containerregistry/pkg/v1/types"
+)
+
+// Manifest represents the OCI image manifest in a structured way.
+type Manifest struct {
+ SchemaVersion int64 `json:"schemaVersion"`
+ MediaType types.MediaType `json:"mediaType"`
+ Config Descriptor `json:"config"`
+ Layers []Descriptor `json:"layers"`
+ Annotations map[string]string `json:"annotations,omitempty"`
+}
+
+// IndexManifest represents an OCI image index in a structured way.
+type IndexManifest struct {
+ SchemaVersion int64 `json:"schemaVersion"`
+ MediaType types.MediaType `json:"mediaType,omitempty"`
+ Manifests []Descriptor `json:"manifests"`
+ Annotations map[string]string `json:"annotations,omitempty"`
+}
+
+// Descriptor holds a reference from the manifest to one of its constituent elements.
+type Descriptor struct {
+ MediaType types.MediaType `json:"mediaType"`
+ Size int64 `json:"size"`
+ Digest Hash `json:"digest"`
+ URLs []string `json:"urls,omitempty"`
+ Annotations map[string]string `json:"annotations,omitempty"`
+ Platform *Platform `json:"platform,omitempty"`
+}
+
+// ParseManifest parses the io.Reader's contents into a Manifest.
+func ParseManifest(r io.Reader) (*Manifest, error) {
+ m := Manifest{}
+ if err := json.NewDecoder(r).Decode(&m); err != nil {
+ return nil, err
+ }
+ return &m, nil
+}
+
+// ParseIndexManifest parses the io.Reader's contents into an IndexManifest.
+func ParseIndexManifest(r io.Reader) (*IndexManifest, error) {
+ im := IndexManifest{}
+ if err := json.NewDecoder(r).Decode(&im); err != nil {
+ return nil, err
+ }
+ return &im, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/mutate/doc.go b/vendor/github.com/google/go-containerregistry/pkg/v1/mutate/doc.go
new file mode 100644
index 0000000000..dfbd9951e0
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/mutate/doc.go
@@ -0,0 +1,16 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package mutate provides facilities for mutating v1.Images of any kind.
+package mutate
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/mutate/mutate.go b/vendor/github.com/google/go-containerregistry/pkg/v1/mutate/mutate.go
new file mode 100644
index 0000000000..61830cdae9
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/mutate/mutate.go
@@ -0,0 +1,563 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package mutate
+
+import (
+ "archive/tar"
+ "bytes"
+ "encoding/json"
+ "errors"
+ "fmt"
+ "io"
+ "io/ioutil"
+ "path/filepath"
+ "strings"
+ "time"
+
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+ "github.com/google/go-containerregistry/pkg/v1/empty"
+ "github.com/google/go-containerregistry/pkg/v1/partial"
+ "github.com/google/go-containerregistry/pkg/v1/stream"
+ "github.com/google/go-containerregistry/pkg/v1/tarball"
+ "github.com/google/go-containerregistry/pkg/v1/types"
+ "github.com/google/go-containerregistry/pkg/v1/v1util"
+)
+
+const whiteoutPrefix = ".wh."
+
+// Addendum contains layers and history to be appended
+// to a base image
+type Addendum struct {
+ Layer v1.Layer
+ History v1.History
+}
+
+// AppendLayers applies layers to a base image
+func AppendLayers(base v1.Image, layers ...v1.Layer) (v1.Image, error) {
+ additions := make([]Addendum, 0, len(layers))
+ for _, layer := range layers {
+ additions = append(additions, Addendum{Layer: layer})
+ }
+
+ return Append(base, additions...)
+}
+
+// Append will apply the list of addendums to the base image
+func Append(base v1.Image, adds ...Addendum) (v1.Image, error) {
+ if len(adds) == 0 {
+ return base, nil
+ }
+ if err := validate(adds); err != nil {
+ return nil, err
+ }
+
+ return &image{
+ base: base,
+ adds: adds,
+ }, nil
+}
+
+// Config mutates the provided v1.Image to have the provided v1.Config
+func Config(base v1.Image, cfg v1.Config) (v1.Image, error) {
+ cf, err := base.ConfigFile()
+ if err != nil {
+ return nil, err
+ }
+
+ cf.Config = cfg
+
+ return configFile(base, cf)
+}
+
+func configFile(base v1.Image, cfg *v1.ConfigFile) (v1.Image, error) {
+ m, err := base.Manifest()
+ if err != nil {
+ return nil, err
+ }
+
+ image := &image{
+ base: base,
+ manifest: m.DeepCopy(),
+ configFile: cfg,
+ }
+
+ return image, nil
+}
+
+// CreatedAt mutates the provided v1.Image to have the provided v1.Time
+func CreatedAt(base v1.Image, created v1.Time) (v1.Image, error) {
+ cf, err := base.ConfigFile()
+ if err != nil {
+ return nil, err
+ }
+
+ cfg := cf.DeepCopy()
+ cfg.Created = created
+
+ return configFile(base, cfg)
+}
+
+type image struct {
+ base v1.Image
+ adds []Addendum
+
+ computed bool
+ configFile *v1.ConfigFile
+ manifest *v1.Manifest
+ diffIDMap map[v1.Hash]v1.Layer
+ digestMap map[v1.Hash]v1.Layer
+}
+
+var _ v1.Image = (*image)(nil)
+
+func (i *image) MediaType() (types.MediaType, error) { return i.base.MediaType() }
+
+func (i *image) compute() error {
+ // Don't re-compute if already computed.
+ if i.computed {
+ return nil
+ }
+ var configFile *v1.ConfigFile
+ if i.configFile != nil {
+ configFile = i.configFile
+ } else {
+ cf, err := i.base.ConfigFile()
+ if err != nil {
+ return err
+ }
+ configFile = cf.DeepCopy()
+ }
+ diffIDs := configFile.RootFS.DiffIDs
+ history := configFile.History
+
+ diffIDMap := make(map[v1.Hash]v1.Layer)
+ digestMap := make(map[v1.Hash]v1.Layer)
+
+ for _, add := range i.adds {
+ diffID, err := add.Layer.DiffID()
+ if err != nil {
+ return err
+ }
+ diffIDs = append(diffIDs, diffID)
+ history = append(history, add.History)
+ diffIDMap[diffID] = add.Layer
+ }
+
+ m, err := i.base.Manifest()
+ if err != nil {
+ return err
+ }
+ manifest := m.DeepCopy()
+ manifestLayers := manifest.Layers
+ for _, add := range i.adds {
+ d := v1.Descriptor{
+ MediaType: types.DockerLayer,
+ }
+
+ var err error
+ if d.Size, err = add.Layer.Size(); err != nil {
+ return err
+ }
+
+ if d.Digest, err = add.Layer.Digest(); err != nil {
+ return err
+ }
+
+ manifestLayers = append(manifestLayers, d)
+ digestMap[d.Digest] = add.Layer
+ }
+
+ configFile.RootFS.DiffIDs = diffIDs
+ configFile.History = history
+
+ manifest.Layers = manifestLayers
+
+ rcfg, err := json.Marshal(configFile)
+ if err != nil {
+ return err
+ }
+ d, sz, err := v1.SHA256(bytes.NewBuffer(rcfg))
+ if err != nil {
+ return err
+ }
+ manifest.Config.Digest = d
+ manifest.Config.Size = sz
+
+ i.configFile = configFile
+ i.manifest = manifest
+ i.diffIDMap = diffIDMap
+ i.digestMap = digestMap
+ i.computed = true
+ return nil
+}
+
+// Layers returns the ordered collection of filesystem layers that comprise this image.
+// The order of the list is oldest/base layer first, and most-recent/top layer last.
+func (i *image) Layers() ([]v1.Layer, error) {
+ if err := i.compute(); err == stream.ErrNotComputed {
+ // Image contains a streamable layer which has not yet been
+ // consumed. Just return the layers we have in case the caller
+ // is going to consume the layers.
+ layers, err := i.base.Layers()
+ if err != nil {
+ return nil, err
+ }
+ for _, add := range i.adds {
+ layers = append(layers, add.Layer)
+ }
+ return layers, nil
+ } else if err != nil {
+ return nil, err
+ }
+
+ diffIDs, err := partial.DiffIDs(i)
+ if err != nil {
+ return nil, err
+ }
+ ls := make([]v1.Layer, 0, len(diffIDs))
+ for _, h := range diffIDs {
+ l, err := i.LayerByDiffID(h)
+ if err != nil {
+ return nil, err
+ }
+ ls = append(ls, l)
+ }
+ return ls, nil
+}
+
+// BlobSet returns an unordered collection of all the blobs in the image.
+func (i *image) BlobSet() (map[v1.Hash]struct{}, error) {
+ if err := i.compute(); err != nil {
+ return nil, err
+ }
+ return partial.BlobSet(i)
+}
+
+// ConfigName returns the hash of the image's config file.
+func (i *image) ConfigName() (v1.Hash, error) {
+ if err := i.compute(); err != nil {
+ return v1.Hash{}, err
+ }
+ return partial.ConfigName(i)
+}
+
+// ConfigFile returns this image's config file.
+func (i *image) ConfigFile() (*v1.ConfigFile, error) {
+ if err := i.compute(); err != nil {
+ return nil, err
+ }
+ return i.configFile, nil
+}
+
+// RawConfigFile returns the serialized bytes of ConfigFile()
+func (i *image) RawConfigFile() ([]byte, error) {
+ if err := i.compute(); err != nil {
+ return nil, err
+ }
+ return json.Marshal(i.configFile)
+}
+
+// Digest returns the sha256 of this image's manifest.
+func (i *image) Digest() (v1.Hash, error) {
+ if err := i.compute(); err != nil {
+ return v1.Hash{}, err
+ }
+ return partial.Digest(i)
+}
+
+// Manifest returns this image's Manifest object.
+func (i *image) Manifest() (*v1.Manifest, error) {
+ if err := i.compute(); err != nil {
+ return nil, err
+ }
+ return i.manifest, nil
+}
+
+// RawManifest returns the serialized bytes of Manifest()
+func (i *image) RawManifest() ([]byte, error) {
+ if err := i.compute(); err != nil {
+ return nil, err
+ }
+ return json.Marshal(i.manifest)
+}
+
+// LayerByDigest returns a Layer for interacting with a particular layer of
+// the image, looking it up by "digest" (the compressed hash).
+func (i *image) LayerByDigest(h v1.Hash) (v1.Layer, error) {
+ if cn, err := i.ConfigName(); err != nil {
+ return nil, err
+ } else if h == cn {
+ return partial.ConfigLayer(i)
+ }
+ if layer, ok := i.digestMap[h]; ok {
+ return layer, nil
+ }
+ return i.base.LayerByDigest(h)
+}
+
+// LayerByDiffID is an analog to LayerByDigest, looking up by "diff id"
+// (the uncompressed hash).
+func (i *image) LayerByDiffID(h v1.Hash) (v1.Layer, error) {
+ if layer, ok := i.diffIDMap[h]; ok {
+ return layer, nil
+ }
+ return i.base.LayerByDiffID(h)
+}
+
+func validate(adds []Addendum) error {
+ for _, add := range adds {
+ if add.Layer == nil {
+ return errors.New("Unable to add a nil layer to the image")
+ }
+ }
+ return nil
+}
+
+// Extract takes an image and returns an io.ReadCloser containing the image's
+// flattened filesystem.
+//
+// Callers can read the filesystem contents by passing the reader to
+// tar.NewReader, or io.Copy it directly to some output.
+//
+// If a caller doesn't read the full contents, they should Close it to free up
+// resources used during extraction.
+//
+// Adapted from https://github.com/google/containerregistry/blob/master/client/v2_2/docker_image_.py#L731
+func Extract(img v1.Image) io.ReadCloser {
+ pr, pw := io.Pipe()
+
+ go func() {
+ // Close the writer with any errors encountered during
+ // extraction. These errors will be returned by the reader end
+ // on subsequent reads. If err == nil, the reader will return
+ // EOF.
+ pw.CloseWithError(extract(img, pw))
+ }()
+
+ return pr
+}
+
+func extract(img v1.Image, w io.Writer) error {
+ tarWriter := tar.NewWriter(w)
+ defer tarWriter.Close()
+
+ fileMap := map[string]bool{}
+
+ layers, err := img.Layers()
+ if err != nil {
+ return fmt.Errorf("retrieving image layers: %v", err)
+ }
+ // we iterate through the layers in reverse order because it makes handling
+ // whiteout layers more efficient, since we can just keep track of the removed
+ // files as we see .wh. layers and ignore those in previous layers.
+ for i := len(layers) - 1; i >= 0; i-- {
+ layer := layers[i]
+ layerReader, err := layer.Uncompressed()
+ if err != nil {
+ return fmt.Errorf("reading layer contents: %v", err)
+ }
+ tarReader := tar.NewReader(layerReader)
+ for {
+ header, err := tarReader.Next()
+ if err == io.EOF {
+ break
+ }
+ if err != nil {
+ return fmt.Errorf("reading tar: %v", err)
+ }
+
+ basename := filepath.Base(header.Name)
+ dirname := filepath.Dir(header.Name)
+ tombstone := strings.HasPrefix(basename, whiteoutPrefix)
+ if tombstone {
+ basename = basename[len(whiteoutPrefix):]
+ }
+
+ // check if we have seen value before
+ // if we're checking a directory, don't filepath.Join names
+ var name string
+ if header.Typeflag == tar.TypeDir {
+ name = header.Name
+ } else {
+ name = filepath.Join(dirname, basename)
+ }
+
+ if _, ok := fileMap[name]; ok {
+ continue
+ }
+
+ // check for a whited out parent directory
+ if inWhiteoutDir(fileMap, name) {
+ continue
+ }
+
+ // mark file as handled. non-directory implicitly tombstones
+ // any entries with a matching (or child) name
+ fileMap[name] = tombstone || !(header.Typeflag == tar.TypeDir)
+ if !tombstone {
+ tarWriter.WriteHeader(header)
+ if header.Size > 0 {
+ if _, err := io.Copy(tarWriter, tarReader); err != nil {
+ return err
+ }
+ }
+ }
+ }
+ }
+ return nil
+}
+
+func inWhiteoutDir(fileMap map[string]bool, file string) bool {
+ for {
+ if file == "" {
+ break
+ }
+ dirname := filepath.Dir(file)
+ if file == dirname {
+ break
+ }
+ if val, ok := fileMap[dirname]; ok && val {
+ return true
+ }
+ file = dirname
+ }
+ return false
+}
+
+// Time sets all timestamps in an image to the given timestamp.
+func Time(img v1.Image, t time.Time) (v1.Image, error) {
+ newImage := empty.Image
+
+ layers, err := img.Layers()
+ if err != nil {
+
+ return nil, fmt.Errorf("Error getting image layers: %v", err)
+ }
+
+ // Strip away all timestamps from layers
+ var newLayers []v1.Layer
+ for _, layer := range layers {
+ newLayer, err := layerTime(layer, t)
+ if err != nil {
+ return nil, fmt.Errorf("Error setting layer times: %v", err)
+ }
+ newLayers = append(newLayers, newLayer)
+ }
+
+ newImage, err = AppendLayers(newImage, newLayers...)
+ if err != nil {
+ return nil, fmt.Errorf("Error appending layers: %v", err)
+ }
+
+ ocf, err := img.ConfigFile()
+ if err != nil {
+ return nil, fmt.Errorf("Error getting original config file: %v", err)
+ }
+
+ cf, err := newImage.ConfigFile()
+ if err != nil {
+ return nil, fmt.Errorf("Error setting config file: %v", err)
+ }
+
+ cfg := cf.DeepCopy()
+
+ // Copy basic config over
+ cfg.Config = ocf.Config
+ cfg.ContainerConfig = ocf.ContainerConfig
+
+ // Strip away timestamps from the config file
+ cfg.Created = v1.Time{Time: t}
+
+ for _, h := range cfg.History {
+ h.Created = v1.Time{Time: t}
+ }
+
+ return configFile(newImage, cfg)
+}
+
+func layerTime(layer v1.Layer, t time.Time) (v1.Layer, error) {
+ layerReader, err := layer.Uncompressed()
+ if err != nil {
+ return nil, fmt.Errorf("Error getting layer: %v", err)
+ }
+ w := new(bytes.Buffer)
+ tarWriter := tar.NewWriter(w)
+ defer tarWriter.Close()
+
+ tarReader := tar.NewReader(layerReader)
+ for {
+ header, err := tarReader.Next()
+ if err == io.EOF {
+ break
+ }
+ if err != nil {
+ return nil, fmt.Errorf("Error reading layer: %v", err)
+ }
+
+ header.ModTime = t
+ if err := tarWriter.WriteHeader(header); err != nil {
+ return nil, fmt.Errorf("Error writing tar header: %v", err)
+ }
+
+ if header.Typeflag == tar.TypeReg {
+ if _, err = io.Copy(tarWriter, tarReader); err != nil {
+ return nil, fmt.Errorf("Error writing layer file: %v", err)
+ }
+ }
+ }
+
+ b := w.Bytes()
+ // gzip the contents, then create the layer
+ opener := func() (io.ReadCloser, error) {
+ g, err := v1util.GzipReadCloser(ioutil.NopCloser(bytes.NewReader(b)))
+ if err != nil {
+ return nil, fmt.Errorf("Error compressing layer: %v", err)
+ }
+
+ return g, nil
+ }
+ layer, err = tarball.LayerFromOpener(opener)
+ if err != nil {
+ return nil, fmt.Errorf("Error creating layer: %v", err)
+ }
+
+ return layer, nil
+}
+
+// Canonical is a helper function to combine Time and configFile
+// to remove any randomness during a docker build.
+func Canonical(img v1.Image) (v1.Image, error) {
+ // Set all timestamps to 0
+ created := time.Time{}
+ img, err := Time(img, created)
+ if err != nil {
+ return nil, err
+ }
+
+ cf, err := img.ConfigFile()
+ if err != nil {
+ return nil, err
+ }
+
+ // Get rid of host-dependent random config
+ cfg := cf.DeepCopy()
+
+ cfg.Container = ""
+ cfg.Config.Hostname = ""
+ cfg.ContainerConfig.Hostname = ""
+ cfg.DockerVersion = ""
+
+ return configFile(img, cfg)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/mutate/rebase.go b/vendor/github.com/google/go-containerregistry/pkg/v1/mutate/rebase.go
new file mode 100644
index 0000000000..6d1fe8d51e
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/mutate/rebase.go
@@ -0,0 +1,97 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package mutate
+
+import (
+ "fmt"
+
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+ "github.com/google/go-containerregistry/pkg/v1/empty"
+)
+
+// Rebase returns a new v1.Image where the oldBase in orig is replaced by newBase.
+func Rebase(orig, oldBase, newBase v1.Image) (v1.Image, error) {
+ // Verify that oldBase's layers are present in orig, otherwise orig is
+ // not based on oldBase at all.
+ origLayers, err := orig.Layers()
+ if err != nil {
+ return nil, fmt.Errorf("failed to get layers for original: %v", err)
+ }
+ oldBaseLayers, err := oldBase.Layers()
+ if err != nil {
+ return nil, err
+ }
+ if len(oldBaseLayers) > len(origLayers) {
+ return nil, fmt.Errorf("image %q is not based on %q (too few layers)", orig, oldBase)
+ }
+ for i, l := range oldBaseLayers {
+ oldLayerDigest, err := l.Digest()
+ if err != nil {
+ return nil, fmt.Errorf("failed to get digest of layer %d of %q: %v", i, oldBase, err)
+ }
+ origLayerDigest, err := origLayers[i].Digest()
+ if err != nil {
+ return nil, fmt.Errorf("failed to get digest of layer %d of %q: %v", i, orig, err)
+ }
+ if oldLayerDigest != origLayerDigest {
+ return nil, fmt.Errorf("image %q is not based on %q (layer %d mismatch)", orig, oldBase, i)
+ }
+ }
+
+ origConfig, err := orig.ConfigFile()
+ if err != nil {
+ return nil, fmt.Errorf("failed to get config for original: %v", err)
+ }
+
+ // Stitch together an image that contains:
+ // - original image's config
+ // - new base image's layers + top of original image's layers
+ // - new base image's history + top of original image's history
+ rebasedImage, err := Config(empty.Image, *origConfig.Config.DeepCopy())
+ if err != nil {
+ return nil, fmt.Errorf("failed to create empty image with original config: %v", err)
+ }
+ // Get new base layers and config for history.
+ newBaseLayers, err := newBase.Layers()
+ if err != nil {
+ return nil, fmt.Errorf("could not get new base layers for new base: %v", err)
+ }
+ newConfig, err := newBase.ConfigFile()
+ if err != nil {
+ return nil, fmt.Errorf("could not get config for new base: %v", err)
+ }
+ // Add new base layers.
+ for i := range newBaseLayers {
+ rebasedImage, err = Append(rebasedImage, Addendum{
+ Layer: newBaseLayers[i],
+ History: newConfig.History[i],
+ })
+ if err != nil {
+ return nil, fmt.Errorf("failed to append layer %d of new base layers", i)
+ }
+ }
+ // Add original layers above the old base.
+ start := len(oldBaseLayers)
+ for i := range origLayers[start:] {
+ rebasedImage, err = Append(rebasedImage, Addendum{
+ Layer: origLayers[start+i],
+ History: origConfig.History[start+i],
+ })
+ if err != nil {
+ return nil, fmt.Errorf("failed to append layer %d of original layers", i)
+ }
+ }
+ return rebasedImage, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/partial/compressed.go b/vendor/github.com/google/go-containerregistry/pkg/v1/partial/compressed.go
new file mode 100644
index 0000000000..d162364ffb
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/partial/compressed.go
@@ -0,0 +1,159 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package partial
+
+import (
+ "io"
+
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+ "github.com/google/go-containerregistry/pkg/v1/v1util"
+)
+
+// CompressedLayer represents the bare minimum interface a natively
+// compressed layer must implement for us to produce a v1.Layer
+type CompressedLayer interface {
+ // Digest returns the Hash of the compressed layer.
+ Digest() (v1.Hash, error)
+
+ // Compressed returns an io.ReadCloser for the compressed layer contents.
+ Compressed() (io.ReadCloser, error)
+
+ // Size returns the compressed size of the Layer.
+ Size() (int64, error)
+}
+
+// compressedLayerExtender implements v1.Image using the compressed base properties.
+type compressedLayerExtender struct {
+ CompressedLayer
+}
+
+// Uncompressed implements v1.Layer
+func (ule *compressedLayerExtender) Uncompressed() (io.ReadCloser, error) {
+ u, err := ule.Compressed()
+ if err != nil {
+ return nil, err
+ }
+ return v1util.GunzipReadCloser(u)
+}
+
+// DiffID implements v1.Layer
+func (ule *compressedLayerExtender) DiffID() (v1.Hash, error) {
+ // If our nested CompressedLayer implements DiffID,
+ // then delegate to it instead.
+ if wdi, ok := ule.CompressedLayer.(WithDiffID); ok {
+ return wdi.DiffID()
+ }
+ r, err := ule.Uncompressed()
+ if err != nil {
+ return v1.Hash{}, err
+ }
+ defer r.Close()
+ h, _, err := v1.SHA256(r)
+ return h, err
+}
+
+// CompressedToLayer fills in the missing methods from a CompressedLayer so that it implements v1.Layer
+func CompressedToLayer(ul CompressedLayer) (v1.Layer, error) {
+ return &compressedLayerExtender{ul}, nil
+}
+
+// CompressedImageCore represents the base minimum interface a natively
+// compressed image must implement for us to produce a v1.Image.
+type CompressedImageCore interface {
+ imageCore
+
+ // RawManifest returns the serialized bytes of the manifest.
+ RawManifest() ([]byte, error)
+
+ // LayerByDigest is a variation on the v1.Image method, which returns
+ // a CompressedLayer instead.
+ LayerByDigest(v1.Hash) (CompressedLayer, error)
+}
+
+// compressedImageExtender implements v1.Image by extending CompressedImageCore with the
+// appropriate methods computed from the minimal core.
+type compressedImageExtender struct {
+ CompressedImageCore
+}
+
+// Assert that our extender type completes the v1.Image interface
+var _ v1.Image = (*compressedImageExtender)(nil)
+
+// BlobSet implements v1.Image
+func (i *compressedImageExtender) BlobSet() (map[v1.Hash]struct{}, error) {
+ return BlobSet(i)
+}
+
+// Digest implements v1.Image
+func (i *compressedImageExtender) Digest() (v1.Hash, error) {
+ return Digest(i)
+}
+
+// ConfigName implements v1.Image
+func (i *compressedImageExtender) ConfigName() (v1.Hash, error) {
+ return ConfigName(i)
+}
+
+// Layers implements v1.Image
+func (i *compressedImageExtender) Layers() ([]v1.Layer, error) {
+ hs, err := FSLayers(i)
+ if err != nil {
+ return nil, err
+ }
+ ls := make([]v1.Layer, 0, len(hs))
+ for _, h := range hs {
+ l, err := i.LayerByDigest(h)
+ if err != nil {
+ return nil, err
+ }
+ ls = append(ls, l)
+ }
+ return ls, nil
+}
+
+// LayerByDigest implements v1.Image
+func (i *compressedImageExtender) LayerByDigest(h v1.Hash) (v1.Layer, error) {
+ cl, err := i.CompressedImageCore.LayerByDigest(h)
+ if err != nil {
+ return nil, err
+ }
+ return CompressedToLayer(cl)
+}
+
+// LayerByDiffID implements v1.Image
+func (i *compressedImageExtender) LayerByDiffID(h v1.Hash) (v1.Layer, error) {
+ h, err := DiffIDToBlob(i, h)
+ if err != nil {
+ return nil, err
+ }
+ return i.LayerByDigest(h)
+}
+
+// ConfigFile implements v1.Image
+func (i *compressedImageExtender) ConfigFile() (*v1.ConfigFile, error) {
+ return ConfigFile(i)
+}
+
+// Manifest implements v1.Image
+func (i *compressedImageExtender) Manifest() (*v1.Manifest, error) {
+ return Manifest(i)
+}
+
+// CompressedToImage fills in the missing methods from a CompressedImageCore so that it implements v1.Image
+func CompressedToImage(cic CompressedImageCore) (v1.Image, error) {
+ return &compressedImageExtender{
+ CompressedImageCore: cic,
+ }, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/partial/doc.go b/vendor/github.com/google/go-containerregistry/pkg/v1/partial/doc.go
new file mode 100644
index 0000000000..153dfe4d53
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/partial/doc.go
@@ -0,0 +1,17 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package partial defines methods for building up a v1.Image from
+// minimal subsets that are sufficient for defining a v1.Image.
+package partial
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/partial/image.go b/vendor/github.com/google/go-containerregistry/pkg/v1/partial/image.go
new file mode 100644
index 0000000000..5d6da39d24
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/partial/image.go
@@ -0,0 +1,28 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package partial
+
+import (
+ "github.com/google/go-containerregistry/pkg/v1/types"
+)
+
+// imageCore is the core set of properties without which we cannot build a v1.Image
+type imageCore interface {
+ // RawConfigFile returns the serialized bytes of this image's config file.
+ RawConfigFile() ([]byte, error)
+
+ // MediaType of this image's manifest.
+ MediaType() (types.MediaType, error)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/partial/uncompressed.go b/vendor/github.com/google/go-containerregistry/pkg/v1/partial/uncompressed.go
new file mode 100644
index 0000000000..04b3a52458
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/partial/uncompressed.go
@@ -0,0 +1,228 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package partial
+
+import (
+ "bytes"
+ "io"
+ "sync"
+
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+ "github.com/google/go-containerregistry/pkg/v1/types"
+ "github.com/google/go-containerregistry/pkg/v1/v1util"
+)
+
+// UncompressedLayer represents the bare minimum interface a natively
+// uncompressed layer must implement for us to produce a v1.Layer
+type UncompressedLayer interface {
+ // DiffID returns the Hash of the uncompressed layer.
+ DiffID() (v1.Hash, error)
+
+ // Uncompressed returns an io.ReadCloser for the uncompressed layer contents.
+ Uncompressed() (io.ReadCloser, error)
+}
+
+// uncompressedLayerExtender implements v1.Image using the uncompressed base properties.
+type uncompressedLayerExtender struct {
+ UncompressedLayer
+ // Memoize size/hash so that the methods aren't twice as
+ // expensive as doing this manually.
+ hash v1.Hash
+ size int64
+ hashSizeError error
+ once sync.Once
+}
+
+// Compressed implements v1.Layer
+func (ule *uncompressedLayerExtender) Compressed() (io.ReadCloser, error) {
+ u, err := ule.Uncompressed()
+ if err != nil {
+ return nil, err
+ }
+ return v1util.GzipReadCloser(u)
+}
+
+// Digest implements v1.Layer
+func (ule *uncompressedLayerExtender) Digest() (v1.Hash, error) {
+ ule.calcSizeHash()
+ return ule.hash, ule.hashSizeError
+}
+
+// Size implements v1.Layer
+func (ule *uncompressedLayerExtender) Size() (int64, error) {
+ ule.calcSizeHash()
+ return ule.size, ule.hashSizeError
+}
+
+func (ule *uncompressedLayerExtender) calcSizeHash() {
+ ule.once.Do(func() {
+ var r io.ReadCloser
+ r, ule.hashSizeError = ule.Compressed()
+ if ule.hashSizeError != nil {
+ return
+ }
+ defer r.Close()
+ ule.hash, ule.size, ule.hashSizeError = v1.SHA256(r)
+ })
+}
+
+// UncompressedToLayer fills in the missing methods from an UncompressedLayer so that it implements v1.Layer
+func UncompressedToLayer(ul UncompressedLayer) (v1.Layer, error) {
+ return &uncompressedLayerExtender{UncompressedLayer: ul}, nil
+}
+
+// UncompressedImageCore represents the bare minimum interface a natively
+// uncompressed image must implement for us to produce a v1.Image
+type UncompressedImageCore interface {
+ imageCore
+
+ // LayerByDiffID is a variation on the v1.Image method, which returns
+ // an UncompressedLayer instead.
+ LayerByDiffID(v1.Hash) (UncompressedLayer, error)
+}
+
+// UncompressedToImage fills in the missing methods from an UncompressedImageCore so that it implements v1.Image.
+func UncompressedToImage(uic UncompressedImageCore) (v1.Image, error) {
+ return &uncompressedImageExtender{
+ UncompressedImageCore: uic,
+ }, nil
+}
+
+// uncompressedImageExtender implements v1.Image by extending UncompressedImageCore with the
+// appropriate methods computed from the minimal core.
+type uncompressedImageExtender struct {
+ UncompressedImageCore
+
+ lock sync.Mutex
+ manifest *v1.Manifest
+}
+
+// Assert that our extender type completes the v1.Image interface
+var _ v1.Image = (*uncompressedImageExtender)(nil)
+
+// BlobSet implements v1.Image
+func (i *uncompressedImageExtender) BlobSet() (map[v1.Hash]struct{}, error) {
+ return BlobSet(i)
+}
+
+// Digest implements v1.Image
+func (i *uncompressedImageExtender) Digest() (v1.Hash, error) {
+ return Digest(i)
+}
+
+// Manifest implements v1.Image
+func (i *uncompressedImageExtender) Manifest() (*v1.Manifest, error) {
+ i.lock.Lock()
+ defer i.lock.Unlock()
+ if i.manifest != nil {
+ return i.manifest, nil
+ }
+
+ b, err := i.RawConfigFile()
+ if err != nil {
+ return nil, err
+ }
+
+ cfgHash, cfgSize, err := v1.SHA256(bytes.NewReader(b))
+ if err != nil {
+ return nil, err
+ }
+
+ m := &v1.Manifest{
+ SchemaVersion: 2,
+ MediaType: types.DockerManifestSchema2,
+ Config: v1.Descriptor{
+ MediaType: types.DockerConfigJSON,
+ Size: cfgSize,
+ Digest: cfgHash,
+ },
+ }
+
+ ls, err := i.Layers()
+ if err != nil {
+ return nil, err
+ }
+
+ m.Layers = make([]v1.Descriptor, len(ls))
+ for i, l := range ls {
+ sz, err := l.Size()
+ if err != nil {
+ return nil, err
+ }
+ h, err := l.Digest()
+ if err != nil {
+ return nil, err
+ }
+
+ m.Layers[i] = v1.Descriptor{
+ MediaType: types.DockerLayer,
+ Size: sz,
+ Digest: h,
+ }
+ }
+
+ i.manifest = m
+ return i.manifest, nil
+}
+
+// RawManifest implements v1.Image
+func (i *uncompressedImageExtender) RawManifest() ([]byte, error) {
+ return RawManifest(i)
+}
+
+// ConfigName implements v1.Image
+func (i *uncompressedImageExtender) ConfigName() (v1.Hash, error) {
+ return ConfigName(i)
+}
+
+// ConfigFile implements v1.Image
+func (i *uncompressedImageExtender) ConfigFile() (*v1.ConfigFile, error) {
+ return ConfigFile(i)
+}
+
+// Layers implements v1.Image
+func (i *uncompressedImageExtender) Layers() ([]v1.Layer, error) {
+ diffIDs, err := DiffIDs(i)
+ if err != nil {
+ return nil, err
+ }
+ ls := make([]v1.Layer, 0, len(diffIDs))
+ for _, h := range diffIDs {
+ l, err := i.LayerByDiffID(h)
+ if err != nil {
+ return nil, err
+ }
+ ls = append(ls, l)
+ }
+ return ls, nil
+}
+
+// LayerByDiffID implements v1.Image
+func (i *uncompressedImageExtender) LayerByDiffID(diffID v1.Hash) (v1.Layer, error) {
+ ul, err := i.UncompressedImageCore.LayerByDiffID(diffID)
+ if err != nil {
+ return nil, err
+ }
+ return UncompressedToLayer(ul)
+}
+
+// LayerByDigest implements v1.Image
+func (i *uncompressedImageExtender) LayerByDigest(h v1.Hash) (v1.Layer, error) {
+ diffID, err := BlobToDiffID(i, h)
+ if err != nil {
+ return nil, err
+ }
+ return i.LayerByDiffID(diffID)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/partial/with.go b/vendor/github.com/google/go-containerregistry/pkg/v1/partial/with.go
new file mode 100644
index 0000000000..1bc9f11df0
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/partial/with.go
@@ -0,0 +1,293 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package partial
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+ "io"
+ "io/ioutil"
+
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+ "github.com/google/go-containerregistry/pkg/v1/v1util"
+)
+
+// WithRawConfigFile defines the subset of v1.Image used by these helper methods
+type WithRawConfigFile interface {
+ // RawConfigFile returns the serialized bytes of this image's config file.
+ RawConfigFile() ([]byte, error)
+}
+
+// ConfigFile is a helper for implementing v1.Image
+func ConfigFile(i WithRawConfigFile) (*v1.ConfigFile, error) {
+ b, err := i.RawConfigFile()
+ if err != nil {
+ return nil, err
+ }
+ return v1.ParseConfigFile(bytes.NewReader(b))
+}
+
+// ConfigName is a helper for implementing v1.Image
+func ConfigName(i WithRawConfigFile) (v1.Hash, error) {
+ b, err := i.RawConfigFile()
+ if err != nil {
+ return v1.Hash{}, err
+ }
+ h, _, err := v1.SHA256(bytes.NewReader(b))
+ return h, err
+}
+
+type configLayer struct {
+ hash v1.Hash
+ content []byte
+}
+
+// Digest implements v1.Layer
+func (cl *configLayer) Digest() (v1.Hash, error) {
+ return cl.hash, nil
+}
+
+// DiffID implements v1.Layer
+func (cl *configLayer) DiffID() (v1.Hash, error) {
+ return cl.hash, nil
+}
+
+// Uncompressed implements v1.Layer
+func (cl *configLayer) Uncompressed() (io.ReadCloser, error) {
+ return ioutil.NopCloser(bytes.NewBuffer(cl.content)), nil
+}
+
+// Compressed implements v1.Layer
+func (cl *configLayer) Compressed() (io.ReadCloser, error) {
+ return ioutil.NopCloser(bytes.NewBuffer(cl.content)), nil
+}
+
+// Size implements v1.Layer
+func (cl *configLayer) Size() (int64, error) {
+ return int64(len(cl.content)), nil
+}
+
+var _ v1.Layer = (*configLayer)(nil)
+
+// ConfigLayer implements v1.Layer from the raw config bytes.
+// This is so that clients (e.g. remote) can access the config as a blob.
+func ConfigLayer(i WithRawConfigFile) (v1.Layer, error) {
+ h, err := ConfigName(i)
+ if err != nil {
+ return nil, err
+ }
+ rcfg, err := i.RawConfigFile()
+ if err != nil {
+ return nil, err
+ }
+ return &configLayer{
+ hash: h,
+ content: rcfg,
+ }, nil
+}
+
+// WithConfigFile defines the subset of v1.Image used by these helper methods
+type WithConfigFile interface {
+ // ConfigFile returns this image's config file.
+ ConfigFile() (*v1.ConfigFile, error)
+}
+
+// DiffIDs is a helper for implementing v1.Image
+func DiffIDs(i WithConfigFile) ([]v1.Hash, error) {
+ cfg, err := i.ConfigFile()
+ if err != nil {
+ return nil, err
+ }
+ return cfg.RootFS.DiffIDs, nil
+}
+
+// RawConfigFile is a helper for implementing v1.Image
+func RawConfigFile(i WithConfigFile) ([]byte, error) {
+ cfg, err := i.ConfigFile()
+ if err != nil {
+ return nil, err
+ }
+ return json.Marshal(cfg)
+}
+
+// WithUncompressedLayer defines the subset of v1.Image used by these helper methods
+type WithUncompressedLayer interface {
+ // UncompressedLayer is like UncompressedBlob, but takes the "diff id".
+ UncompressedLayer(v1.Hash) (io.ReadCloser, error)
+}
+
+// Layer is the same as Blob, but takes the "diff id".
+func Layer(wul WithUncompressedLayer, h v1.Hash) (io.ReadCloser, error) {
+ rc, err := wul.UncompressedLayer(h)
+ if err != nil {
+ return nil, err
+ }
+ return v1util.GzipReadCloser(rc)
+}
+
+// WithRawManifest defines the subset of v1.Image used by these helper methods
+type WithRawManifest interface {
+ // RawManifest returns the serialized bytes of this image's config file.
+ RawManifest() ([]byte, error)
+}
+
+// Digest is a helper for implementing v1.Image
+func Digest(i WithRawManifest) (v1.Hash, error) {
+ mb, err := i.RawManifest()
+ if err != nil {
+ return v1.Hash{}, err
+ }
+ digest, _, err := v1.SHA256(bytes.NewReader(mb))
+ return digest, err
+}
+
+// Manifest is a helper for implementing v1.Image
+func Manifest(i WithRawManifest) (*v1.Manifest, error) {
+ b, err := i.RawManifest()
+ if err != nil {
+ return nil, err
+ }
+ return v1.ParseManifest(bytes.NewReader(b))
+}
+
+// WithManifest defines the subset of v1.Image used by these helper methods
+type WithManifest interface {
+ // Manifest returns this image's Manifest object.
+ Manifest() (*v1.Manifest, error)
+}
+
+// RawManifest is a helper for implementing v1.Image
+func RawManifest(i WithManifest) ([]byte, error) {
+ m, err := i.Manifest()
+ if err != nil {
+ return nil, err
+ }
+ return json.Marshal(m)
+}
+
+// FSLayers is a helper for implementing v1.Image
+func FSLayers(i WithManifest) ([]v1.Hash, error) {
+ m, err := i.Manifest()
+ if err != nil {
+ return nil, err
+ }
+ fsl := make([]v1.Hash, len(m.Layers))
+ for i, l := range m.Layers {
+ fsl[i] = l.Digest
+ }
+ return fsl, nil
+}
+
+// BlobSet is a helper for implementing v1.Image
+func BlobSet(i WithManifest) (map[v1.Hash]struct{}, error) {
+ m, err := i.Manifest()
+ if err != nil {
+ return nil, err
+ }
+ bs := make(map[v1.Hash]struct{})
+ for _, l := range m.Layers {
+ bs[l.Digest] = struct{}{}
+ }
+ bs[m.Config.Digest] = struct{}{}
+ return bs, nil
+}
+
+// BlobSize is a helper for implementing v1.Image
+func BlobSize(i WithManifest, h v1.Hash) (int64, error) {
+ m, err := i.Manifest()
+ if err != nil {
+ return -1, err
+ }
+ for _, l := range m.Layers {
+ if l.Digest == h {
+ return l.Size, nil
+ }
+ }
+ return -1, fmt.Errorf("blob %v not found", h)
+}
+
+// WithManifestAndConfigFile defines the subset of v1.Image used by these helper methods
+type WithManifestAndConfigFile interface {
+ WithConfigFile
+
+ // Manifest returns this image's Manifest object.
+ Manifest() (*v1.Manifest, error)
+}
+
+// BlobToDiffID is a helper for mapping between compressed
+// and uncompressed blob hashes.
+func BlobToDiffID(i WithManifestAndConfigFile, h v1.Hash) (v1.Hash, error) {
+ blobs, err := FSLayers(i)
+ if err != nil {
+ return v1.Hash{}, err
+ }
+ diffIDs, err := DiffIDs(i)
+ if err != nil {
+ return v1.Hash{}, err
+ }
+ if len(blobs) != len(diffIDs) {
+ return v1.Hash{}, fmt.Errorf("mismatched fs layers (%d) and diff ids (%d)", len(blobs), len(diffIDs))
+ }
+ for i, blob := range blobs {
+ if blob == h {
+ return diffIDs[i], nil
+ }
+ }
+ return v1.Hash{}, fmt.Errorf("unknown blob %v", h)
+}
+
+// DiffIDToBlob is a helper for mapping between uncompressed
+// and compressed blob hashes.
+func DiffIDToBlob(wm WithManifestAndConfigFile, h v1.Hash) (v1.Hash, error) {
+ blobs, err := FSLayers(wm)
+ if err != nil {
+ return v1.Hash{}, err
+ }
+ diffIDs, err := DiffIDs(wm)
+ if err != nil {
+ return v1.Hash{}, err
+ }
+ if len(blobs) != len(diffIDs) {
+ return v1.Hash{}, fmt.Errorf("mismatched fs layers (%d) and diff ids (%d)", len(blobs), len(diffIDs))
+ }
+ for i, diffID := range diffIDs {
+ if diffID == h {
+ return blobs[i], nil
+ }
+ }
+ return v1.Hash{}, fmt.Errorf("unknown diffID %v", h)
+
+}
+
+// WithBlob defines the subset of v1.Image used by these helper methods
+type WithBlob interface {
+ // Blob returns a ReadCloser for streaming the blob's content.
+ Blob(v1.Hash) (io.ReadCloser, error)
+}
+
+// UncompressedBlob returns a ReadCloser for streaming the blob's content uncompressed.
+func UncompressedBlob(b WithBlob, h v1.Hash) (io.ReadCloser, error) {
+ rc, err := b.Blob(h)
+ if err != nil {
+ return nil, err
+ }
+ return v1util.GunzipReadCloser(rc)
+}
+
+// WithDiffID defines the subset of v1.Layer for exposing the DiffID method.
+type WithDiffID interface {
+ DiffID() (v1.Hash, error)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/platform.go b/vendor/github.com/google/go-containerregistry/pkg/v1/platform.go
new file mode 100644
index 0000000000..df9b2959e3
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/platform.go
@@ -0,0 +1,24 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package v1
+
+// Platform represents the target os/arch for an image.
+type Platform struct {
+ Architecture string `json:"architecture"`
+ OS string `json:"os"`
+ OSVersion string `json:"os.version,omitempty"`
+ OSFeatures []string `json:"os.features,omitempty"`
+ Variant string `json:"variant,omitempty"`
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/random/doc.go b/vendor/github.com/google/go-containerregistry/pkg/v1/random/doc.go
new file mode 100644
index 0000000000..d3712767d2
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/random/doc.go
@@ -0,0 +1,16 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package random provides a facility for synthesizing pseudo-random images.
+package random
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/random/image.go b/vendor/github.com/google/go-containerregistry/pkg/v1/random/image.go
new file mode 100644
index 0000000000..b0c4718eff
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/random/image.go
@@ -0,0 +1,132 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package random
+
+import (
+ "archive/tar"
+ "bytes"
+ "crypto/rand"
+ "fmt"
+ "io"
+ "io/ioutil"
+ "time"
+
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+ "github.com/google/go-containerregistry/pkg/v1/partial"
+ "github.com/google/go-containerregistry/pkg/v1/types"
+)
+
+// uncompressedLayer implements partial.UncompressedLayer from raw bytes.
+// TODO(mattmoor): Consider moving this into a library.
+type uncompressedLayer struct {
+ diffID v1.Hash
+ content []byte
+}
+
+// DiffID implements partial.UncompressedLayer
+func (ul *uncompressedLayer) DiffID() (v1.Hash, error) {
+ return ul.diffID, nil
+}
+
+// Uncompressed implements partial.UncompressedLayer
+func (ul *uncompressedLayer) Uncompressed() (io.ReadCloser, error) {
+ return ioutil.NopCloser(bytes.NewBuffer(ul.content)), nil
+}
+
+var _ partial.UncompressedLayer = (*uncompressedLayer)(nil)
+
+// Image returns a pseudo-randomly generated Image.
+func Image(byteSize, layers int64) (v1.Image, error) {
+ layerz := make(map[v1.Hash]partial.UncompressedLayer)
+ for i := int64(0); i < layers; i++ {
+ var b bytes.Buffer
+ tw := tar.NewWriter(&b)
+ if err := tw.WriteHeader(&tar.Header{
+ Name: fmt.Sprintf("random_file_%d.txt", i),
+ Size: byteSize,
+ Typeflag: tar.TypeRegA,
+ }); err != nil {
+ return nil, err
+ }
+ if _, err := io.CopyN(tw, rand.Reader, byteSize); err != nil {
+ return nil, err
+ }
+ bts := b.Bytes()
+ h, _, err := v1.SHA256(bytes.NewReader(bts))
+ if err != nil {
+ return nil, err
+ }
+ layerz[h] = &uncompressedLayer{
+ diffID: h,
+ content: bts,
+ }
+ }
+
+ cfg := &v1.ConfigFile{}
+
+ // Some clients check this.
+ cfg.RootFS.Type = "layers"
+
+ // It is ok that iteration order is random in Go, because this is the random image anyways.
+ for k := range layerz {
+ cfg.RootFS.DiffIDs = append(cfg.RootFS.DiffIDs, k)
+ }
+
+ for i := int64(0); i < layers; i++ {
+ cfg.History = append(cfg.History, v1.History{
+ Author: "random.Image",
+ Comment: fmt.Sprintf("this is a random history %d", i),
+ CreatedBy: "random",
+ Created: v1.Time{time.Now()},
+ })
+ }
+
+ return partial.UncompressedToImage(&image{
+ config: cfg,
+ layers: layerz,
+ })
+}
+
+// image is pseudo-randomly generated.
+type image struct {
+ config *v1.ConfigFile
+ layers map[v1.Hash]partial.UncompressedLayer
+}
+
+var _ partial.UncompressedImageCore = (*image)(nil)
+
+// RawConfigFile implements partial.UncompressedImageCore
+func (i *image) RawConfigFile() ([]byte, error) {
+ return partial.RawConfigFile(i)
+}
+
+// ConfigFile implements v1.Image
+func (i *image) ConfigFile() (*v1.ConfigFile, error) {
+ return i.config, nil
+}
+
+// MediaType implements partial.UncompressedImageCore
+func (i *image) MediaType() (types.MediaType, error) {
+ return types.DockerManifestSchema2, nil
+}
+
+// LayerByDiffID implements partial.UncompressedImageCore
+func (i *image) LayerByDiffID(diffID v1.Hash) (partial.UncompressedLayer, error) {
+ l, ok := i.layers[diffID]
+ if !ok {
+ return nil, fmt.Errorf("unknown diff_id: %v", diffID)
+ }
+ return l, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/remote/delete.go b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/delete.go
new file mode 100644
index 0000000000..2032e276ea
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/delete.go
@@ -0,0 +1,64 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package remote
+
+import (
+ "fmt"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+ "github.com/google/go-containerregistry/pkg/v1/remote/transport"
+)
+
+// Delete removes the specified image reference from the remote registry.
+func Delete(ref name.Reference, auth authn.Authenticator, t http.RoundTripper) error {
+ scopes := []string{ref.Scope(transport.DeleteScope)}
+ tr, err := transport.New(ref.Context().Registry, auth, t, scopes)
+ if err != nil {
+ return err
+ }
+ c := &http.Client{Transport: tr}
+
+ u := url.URL{
+ Scheme: ref.Context().Registry.Scheme(),
+ Host: ref.Context().RegistryStr(),
+ Path: fmt.Sprintf("/v2/%s/manifests/%s", ref.Context().RepositoryStr(), ref.Identifier()),
+ }
+
+ req, err := http.NewRequest(http.MethodDelete, u.String(), nil)
+ if err != nil {
+ return err
+ }
+
+ resp, err := c.Do(req)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+
+ switch resp.StatusCode {
+ case http.StatusOK, http.StatusAccepted:
+ return nil
+ default:
+ b, err := ioutil.ReadAll(resp.Body)
+ if err != nil {
+ return err
+ }
+ return fmt.Errorf("unrecognized status code during DELETE: %v; %v", resp.Status, string(b))
+ }
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/remote/doc.go b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/doc.go
new file mode 100644
index 0000000000..846ba07cda
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/doc.go
@@ -0,0 +1,17 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package remote provides facilities for reading/writing v1.Images from/to
+// a remote image registry.
+package remote
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/remote/image.go b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/image.go
new file mode 100644
index 0000000000..ec502bc539
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/image.go
@@ -0,0 +1,247 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package remote
+
+import (
+ "bytes"
+ "fmt"
+ "io"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+ "sync"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+ "github.com/google/go-containerregistry/pkg/v1/partial"
+ "github.com/google/go-containerregistry/pkg/v1/remote/transport"
+ "github.com/google/go-containerregistry/pkg/v1/types"
+ "github.com/google/go-containerregistry/pkg/v1/v1util"
+)
+
+// remoteImage accesses an image from a remote registry
+type remoteImage struct {
+ ref name.Reference
+ client *http.Client
+ manifestLock sync.Mutex // Protects manifest
+ manifest []byte
+ configLock sync.Mutex // Protects config
+ config []byte
+}
+
+// ImageOption is a functional option for Image.
+type ImageOption func(*imageOpener) error
+
+var _ partial.CompressedImageCore = (*remoteImage)(nil)
+
+type imageOpener struct {
+ auth authn.Authenticator
+ transport http.RoundTripper
+ ref name.Reference
+ client *http.Client
+}
+
+func (i *imageOpener) Open() (v1.Image, error) {
+ tr, err := transport.New(i.ref.Context().Registry, i.auth, i.transport, []string{i.ref.Scope(transport.PullScope)})
+ if err != nil {
+ return nil, err
+ }
+ ri := &remoteImage{
+ ref: i.ref,
+ client: &http.Client{Transport: tr},
+ }
+ imgCore, err := partial.CompressedToImage(ri)
+ if err != nil {
+ return imgCore, err
+ }
+ // Wrap the v1.Layers returned by this v1.Image in a hint for downstream
+ // remote.Write calls to facilitate cross-repo "mounting".
+ return &mountableImage{
+ Image: imgCore,
+ Reference: i.ref,
+ }, nil
+}
+
+// Image provides access to a remote image reference, applying functional options
+// to the underlying imageOpener before resolving the reference into a v1.Image.
+func Image(ref name.Reference, options ...ImageOption) (v1.Image, error) {
+ img := &imageOpener{
+ auth: authn.Anonymous,
+ transport: http.DefaultTransport,
+ ref: ref,
+ }
+
+ for _, option := range options {
+ if err := option(img); err != nil {
+ return nil, err
+ }
+ }
+ return img.Open()
+}
+
+func (r *remoteImage) url(resource, identifier string) url.URL {
+ return url.URL{
+ Scheme: r.ref.Context().Registry.Scheme(),
+ Host: r.ref.Context().RegistryStr(),
+ Path: fmt.Sprintf("/v2/%s/%s/%s", r.ref.Context().RepositoryStr(), resource, identifier),
+ }
+}
+
+func (r *remoteImage) MediaType() (types.MediaType, error) {
+ // TODO(jonjohnsonjr): Determine this based on response.
+ return types.DockerManifestSchema2, nil
+}
+
+// TODO(jonjohnsonjr): Handle manifest lists.
+func (r *remoteImage) RawManifest() ([]byte, error) {
+ r.manifestLock.Lock()
+ defer r.manifestLock.Unlock()
+ if r.manifest != nil {
+ return r.manifest, nil
+ }
+
+ u := r.url("manifests", r.ref.Identifier())
+ req, err := http.NewRequest(http.MethodGet, u.String(), nil)
+ if err != nil {
+ return nil, err
+ }
+ // TODO(jonjohnsonjr): Accept OCI manifest, manifest list, and image index.
+ req.Header.Set("Accept", string(types.DockerManifestSchema2))
+ resp, err := r.client.Do(req)
+ if err != nil {
+ return nil, err
+ }
+ defer resp.Body.Close()
+
+ if err := transport.CheckError(resp, http.StatusOK); err != nil {
+ return nil, err
+ }
+
+ manifest, err := ioutil.ReadAll(resp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ digest, _, err := v1.SHA256(bytes.NewReader(manifest))
+ if err != nil {
+ return nil, err
+ }
+
+ // Validate the digest matches what we asked for, if pulling by digest.
+ if dgst, ok := r.ref.(name.Digest); ok {
+ if digest.String() != dgst.DigestStr() {
+ return nil, fmt.Errorf("manifest digest: %q does not match requested digest: %q for %q", digest, dgst.DigestStr(), r.ref)
+ }
+ } else {
+ // Do nothing for tags; I give up.
+ //
+ // We'd like to validate that the "Docker-Content-Digest" header matches what is returned by the registry,
+ // but so many registries implement this incorrectly that it's not worth checking.
+ //
+ // For reference:
+ // https://github.com/docker/distribution/issues/2395
+ // https://github.com/GoogleContainerTools/kaniko/issues/298
+ }
+
+ r.manifest = manifest
+ return r.manifest, nil
+}
+
+func (r *remoteImage) RawConfigFile() ([]byte, error) {
+ r.configLock.Lock()
+ defer r.configLock.Unlock()
+ if r.config != nil {
+ return r.config, nil
+ }
+
+ m, err := partial.Manifest(r)
+ if err != nil {
+ return nil, err
+ }
+
+ cl, err := r.LayerByDigest(m.Config.Digest)
+ if err != nil {
+ return nil, err
+ }
+ body, err := cl.Compressed()
+ if err != nil {
+ return nil, err
+ }
+ defer body.Close()
+
+ r.config, err = ioutil.ReadAll(body)
+ if err != nil {
+ return nil, err
+ }
+ return r.config, nil
+}
+
+// remoteLayer implements partial.CompressedLayer
+type remoteLayer struct {
+ ri *remoteImage
+ digest v1.Hash
+}
+
+// Digest implements partial.CompressedLayer
+func (rl *remoteLayer) Digest() (v1.Hash, error) {
+ return rl.digest, nil
+}
+
+// Compressed implements partial.CompressedLayer
+func (rl *remoteLayer) Compressed() (io.ReadCloser, error) {
+ u := rl.ri.url("blobs", rl.digest.String())
+ resp, err := rl.ri.client.Get(u.String())
+ if err != nil {
+ return nil, err
+ }
+
+ if err := transport.CheckError(resp, http.StatusOK); err != nil {
+ resp.Body.Close()
+ return nil, err
+ }
+
+ return v1util.VerifyReadCloser(resp.Body, rl.digest)
+}
+
+// Manifest implements partial.WithManifest so that we can use partial.BlobSize below.
+func (rl *remoteLayer) Manifest() (*v1.Manifest, error) {
+ return partial.Manifest(rl.ri)
+}
+
+// Size implements partial.CompressedLayer
+func (rl *remoteLayer) Size() (int64, error) {
+ // Look up the size of this digest in the manifest to avoid a request.
+ return partial.BlobSize(rl, rl.digest)
+}
+
+// ConfigFile implements partial.WithManifestAndConfigFile so that we can use partial.BlobToDiffID below.
+func (rl *remoteLayer) ConfigFile() (*v1.ConfigFile, error) {
+ return partial.ConfigFile(rl.ri)
+}
+
+// DiffID implements partial.WithDiffID so that we don't recompute a DiffID that we already have
+// available in our ConfigFile.
+func (rl *remoteLayer) DiffID() (v1.Hash, error) {
+ return partial.BlobToDiffID(rl, rl.digest)
+}
+
+// LayerByDigest implements partial.CompressedLayer
+func (r *remoteImage) LayerByDigest(h v1.Hash) (partial.CompressedLayer, error) {
+ return &remoteLayer{
+ ri: r,
+ digest: h,
+ }, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/remote/list.go b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/list.go
new file mode 100644
index 0000000000..1a36d0a4ba
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/list.go
@@ -0,0 +1,64 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package remote
+
+import (
+ "encoding/json"
+ "fmt"
+ "net/http"
+ "net/url"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+ "github.com/google/go-containerregistry/pkg/v1/remote/transport"
+)
+
+type tags struct {
+ Name string `json:"name"`
+ Tags []string `json:"tags"`
+}
+
+// List calls /tags/list for the given repository.
+func List(repo name.Repository, auth authn.Authenticator, t http.RoundTripper) ([]string, error) {
+ scopes := []string{repo.Scope(transport.PullScope)}
+ tr, err := transport.New(repo.Registry, auth, t, scopes)
+ if err != nil {
+ return nil, err
+ }
+
+ uri := url.URL{
+ Scheme: repo.Registry.Scheme(),
+ Host: repo.Registry.RegistryStr(),
+ Path: fmt.Sprintf("/v2/%s/tags/list", repo.RepositoryStr()),
+ }
+
+ client := http.Client{Transport: tr}
+ resp, err := client.Get(uri.String())
+ if err != nil {
+ return nil, err
+ }
+ defer resp.Body.Close()
+
+ if err := transport.CheckError(resp, http.StatusOK); err != nil {
+ return nil, err
+ }
+
+ parsed := tags{}
+ if err := json.NewDecoder(resp.Body).Decode(&parsed); err != nil {
+ return nil, err
+ }
+
+ return parsed.Tags, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/remote/mount.go b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/mount.go
new file mode 100644
index 0000000000..3afda2a341
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/mount.go
@@ -0,0 +1,77 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package remote
+
+import (
+ "github.com/google/go-containerregistry/pkg/name"
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+)
+
+// MountableLayer wraps a v1.Layer in a shim that enables the layer to be
+// "mounted" when published to another registry.
+type MountableLayer struct {
+ v1.Layer
+
+ Reference name.Reference
+}
+
+// mountableImage wraps the v1.Layer references returned by the embedded v1.Image
+// in MountableLayer's so that remote.Write might attempt to mount them from their
+// source repository.
+type mountableImage struct {
+ v1.Image
+
+ Reference name.Reference
+}
+
+// Layers implements v1.Image
+func (mi *mountableImage) Layers() ([]v1.Layer, error) {
+ ls, err := mi.Image.Layers()
+ if err != nil {
+ return nil, err
+ }
+ mls := make([]v1.Layer, 0, len(ls))
+ for _, l := range ls {
+ mls = append(mls, &MountableLayer{
+ Layer: l,
+ Reference: mi.Reference,
+ })
+ }
+ return mls, nil
+}
+
+// LayerByDigest implements v1.Image
+func (mi *mountableImage) LayerByDigest(d v1.Hash) (v1.Layer, error) {
+ l, err := mi.Image.LayerByDigest(d)
+ if err != nil {
+ return nil, err
+ }
+ return &MountableLayer{
+ Layer: l,
+ Reference: mi.Reference,
+ }, nil
+}
+
+// LayerByDiffID implements v1.Image
+func (mi *mountableImage) LayerByDiffID(d v1.Hash) (v1.Layer, error) {
+ l, err := mi.Image.LayerByDiffID(d)
+ if err != nil {
+ return nil, err
+ }
+ return &MountableLayer{
+ Layer: l,
+ Reference: mi.Reference,
+ }, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/remote/options.go b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/options.go
new file mode 100644
index 0000000000..a6e9584ee3
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/options.go
@@ -0,0 +1,56 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package remote
+
+import (
+ "log"
+ "net/http"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+)
+
+// WithTransport is a functional option for overriding the default transport
+// on a remote image
+func WithTransport(t http.RoundTripper) ImageOption {
+ return func(i *imageOpener) error {
+ i.transport = t
+ return nil
+ }
+}
+
+// WithAuth is a functional option for overriding the default authenticator
+// on a remote image
+func WithAuth(auth authn.Authenticator) ImageOption {
+ return func(i *imageOpener) error {
+ i.auth = auth
+ return nil
+ }
+}
+
+// WithAuthFromKeychain is a functional option for overriding the default
+// authenticator on a remote image using an authn.Keychain
+func WithAuthFromKeychain(keys authn.Keychain) ImageOption {
+ return func(i *imageOpener) error {
+ auth, err := keys.Resolve(i.ref.Context().Registry)
+ if err != nil {
+ return err
+ }
+ if auth == authn.Anonymous {
+ log.Println("No matching credentials were found, falling back on anonymous")
+ }
+ i.auth = auth
+ return nil
+ }
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/basic.go b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/basic.go
new file mode 100644
index 0000000000..e77f47f699
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/basic.go
@@ -0,0 +1,48 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package transport
+
+import (
+ "net/http"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+)
+
+type basicTransport struct {
+ inner http.RoundTripper
+ auth authn.Authenticator
+ target string
+}
+
+var _ http.RoundTripper = (*basicTransport)(nil)
+
+// RoundTrip implements http.RoundTripper
+func (bt *basicTransport) RoundTrip(in *http.Request) (*http.Response, error) {
+ hdr, err := bt.auth.Authorization()
+ if err != nil {
+ return nil, err
+ }
+
+ // http.Client handles redirects at a layer above the http.RoundTripper
+ // abstraction, so to avoid forwarding Authorization headers to places
+ // we are redirected, only set it when the authorization header matches
+ // the host with which we are interacting.
+ // In case of redirect http.Client can use an empty Host, check URL too.
+ if in.Host == bt.target || in.URL.Host == bt.target {
+ in.Header.Set("Authorization", hdr)
+ }
+ in.Header.Set("User-Agent", transportName)
+ return bt.inner.RoundTrip(in)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/bearer.go b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/bearer.go
new file mode 100644
index 0000000000..f72ab276d6
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/bearer.go
@@ -0,0 +1,142 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package transport
+
+import (
+ "encoding/json"
+ "fmt"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+)
+
+type bearerTransport struct {
+ // Wrapped by bearerTransport.
+ inner http.RoundTripper
+ // Basic credentials that we exchange for bearer tokens.
+ basic authn.Authenticator
+ // Holds the bearer response from the token service.
+ bearer *authn.Bearer
+ // Registry to which we send bearer tokens.
+ registry name.Registry
+ // See https://tools.ietf.org/html/rfc6750#section-3
+ realm string
+ // See https://docs.docker.com/registry/spec/auth/token/
+ service string
+ scopes []string
+ // Scheme we should use, determined by ping response.
+ scheme string
+}
+
+var _ http.RoundTripper = (*bearerTransport)(nil)
+
+// RoundTrip implements http.RoundTripper
+func (bt *bearerTransport) RoundTrip(in *http.Request) (*http.Response, error) {
+ sendRequest := func() (*http.Response, error) {
+ hdr, err := bt.bearer.Authorization()
+ if err != nil {
+ return nil, err
+ }
+
+ // http.Client handles redirects at a layer above the http.RoundTripper
+ // abstraction, so to avoid forwarding Authorization headers to places
+ // we are redirected, only set it when the authorization header matches
+ // the registry with which we are interacting.
+ // In case of redirect http.Client can use an empty Host, check URL too.
+ if in.Host == bt.registry.RegistryStr() || in.URL.Host == bt.registry.RegistryStr() {
+ in.Header.Set("Authorization", hdr)
+ }
+ in.Header.Set("User-Agent", transportName)
+
+ in.URL.Scheme = bt.scheme
+ return bt.inner.RoundTrip(in)
+ }
+
+ res, err := sendRequest()
+ if err != nil {
+ return nil, err
+ }
+
+ // Perform a token refresh() and retry the request in case the token has expired
+ if res.StatusCode == http.StatusUnauthorized {
+ if err = bt.refresh(); err != nil {
+ return nil, err
+ }
+ return sendRequest()
+ }
+
+ return res, err
+}
+
+func (bt *bearerTransport) refresh() error {
+ u, err := url.Parse(bt.realm)
+ if err != nil {
+ return err
+ }
+ b := &basicTransport{
+ inner: bt.inner,
+ auth: bt.basic,
+ target: u.Host,
+ }
+ client := http.Client{Transport: b}
+
+ u.RawQuery = url.Values{
+ "scope": bt.scopes,
+ "service": []string{bt.service},
+ }.Encode()
+
+ resp, err := client.Get(u.String())
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+
+ if err := CheckError(resp, http.StatusOK); err != nil {
+ return err
+ }
+
+ content, err := ioutil.ReadAll(resp.Body)
+ if err != nil {
+ return err
+ }
+
+ // Some registries don't have "token" in the response. See #54.
+ type tokenResponse struct {
+ Token string `json:"token"`
+ AccessToken string `json:"access_token"`
+ }
+
+ var response tokenResponse
+ if err := json.Unmarshal(content, &response); err != nil {
+ return err
+ }
+
+ // Find a token to turn into a Bearer authenticator
+ var bearer authn.Bearer
+ if response.Token != "" {
+ bearer = authn.Bearer{Token: response.Token}
+ } else if response.AccessToken != "" {
+ bearer = authn.Bearer{Token: response.AccessToken}
+ } else {
+ return fmt.Errorf("no token in bearer response:\n%s", content)
+ }
+
+ // Replace our old bearer authenticator (if we had one) with our newly refreshed authenticator.
+ bt.bearer = &bearer
+ return nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/doc.go b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/doc.go
new file mode 100644
index 0000000000..ff7025b5c0
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/doc.go
@@ -0,0 +1,18 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package transport provides facilities for setting up an authenticated
+// http.RoundTripper given an Authenticator and base RoundTripper. See
+// transport.New for more information.
+package transport
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/error.go b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/error.go
new file mode 100644
index 0000000000..44885effa5
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/error.go
@@ -0,0 +1,111 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package transport
+
+import (
+ "encoding/json"
+ "fmt"
+ "io/ioutil"
+ "net/http"
+ "strings"
+)
+
+// Error implements error to support the following error specification:
+// https://github.com/docker/distribution/blob/master/docs/spec/api.md#errors
+type Error struct {
+ Errors []Diagnostic `json:"errors,omitempty"`
+}
+
+// Check that Error implements error
+var _ error = (*Error)(nil)
+
+// Error implements error
+func (e *Error) Error() string {
+ switch len(e.Errors) {
+ case 0:
+ return ""
+ case 1:
+ return e.Errors[0].String()
+ default:
+ var errors []string
+ for _, d := range e.Errors {
+ errors = append(errors, d.String())
+ }
+ return fmt.Sprintf("multiple errors returned: %s",
+ strings.Join(errors, ";"))
+ }
+}
+
+// Diagnostic represents a single error returned by a Docker registry interaction.
+type Diagnostic struct {
+ Code ErrorCode `json:"code"`
+ Message string `json:"message,omitempty"`
+ Detail interface{} `json:"detail,omitempty"`
+}
+
+// String stringifies the Diagnostic in the form: $Code: $Message[; $Detail]
+func (d Diagnostic) String() string {
+ msg := fmt.Sprintf("%s: %s", d.Code, d.Message)
+ if d.Detail != nil {
+ msg = fmt.Sprintf("%s; %v", msg, d.Detail)
+ }
+ return msg
+}
+
+// ErrorCode is an enumeration of supported error codes.
+type ErrorCode string
+
+// The set of error conditions a registry may return:
+// https://github.com/docker/distribution/blob/master/docs/spec/api.md#errors-2
+const (
+ BlobUnknownErrorCode ErrorCode = "BLOB_UNKNOWN"
+ BlobUploadInvalidErrorCode ErrorCode = "BLOB_UPLOAD_INVALID"
+ BlobUploadUnknownErrorCode ErrorCode = "BLOB_UPLOAD_UNKNOWN"
+ DigestInvalidErrorCode ErrorCode = "DIGEST_INVALID"
+ ManifestBlobUnknownErrorCode ErrorCode = "MANIFEST_BLOB_UNKNOWN"
+ ManifestInvalidErrorCode ErrorCode = "MANIFEST_INVALID"
+ ManifestUnknownErrorCode ErrorCode = "MANIFEST_UNKNOWN"
+ ManifestUnverifiedErrorCode ErrorCode = "MANIFEST_UNVERIFIED"
+ NameInvalidErrorCode ErrorCode = "NAME_INVALID"
+ NameUnknownErrorCode ErrorCode = "NAME_UNKNOWN"
+ SizeInvalidErrorCode ErrorCode = "SIZE_INVALID"
+ TagInvalidErrorCode ErrorCode = "TAG_INVALID"
+ UnauthorizedErrorCode ErrorCode = "UNAUTHORIZED"
+ DeniedErrorCode ErrorCode = "DENIED"
+ UnsupportedErrorCode ErrorCode = "UNSUPPORTED"
+)
+
+// CheckError returns a structured error if the response status is not in codes.
+func CheckError(resp *http.Response, codes ...int) error {
+ for _, code := range codes {
+ if resp.StatusCode == code {
+ // This is one of the supported status codes.
+ return nil
+ }
+ }
+ b, err := ioutil.ReadAll(resp.Body)
+ if err != nil {
+ return err
+ }
+
+ // https://github.com/docker/distribution/blob/master/docs/spec/api.md#errors
+ var structuredError Error
+ if err := json.Unmarshal(b, &structuredError); err != nil {
+ // If the response isn't an unstructured error, then return some
+ // reasonable error response containing the response body.
+ return fmt.Errorf("unsupported status code %d; body: %s", resp.StatusCode, string(b))
+ }
+ return &structuredError
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/ping.go b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/ping.go
new file mode 100644
index 0000000000..cc0d2cfeaa
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/ping.go
@@ -0,0 +1,115 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package transport
+
+import (
+ "fmt"
+ "net/http"
+ "strings"
+
+ "github.com/google/go-containerregistry/pkg/name"
+)
+
+type challenge string
+
+const (
+ anonymous challenge = "anonymous"
+ basic challenge = "basic"
+ bearer challenge = "bearer"
+)
+
+type pingResp struct {
+ challenge challenge
+
+ // Following the challenge there are often key/value pairs
+ // e.g. Bearer service="gcr.io",realm="https://auth.gcr.io/v36/tokenz"
+ parameters map[string]string
+
+ // The registry's scheme to use. Communicates whether we fell back to http.
+ scheme string
+}
+
+func (c challenge) Canonical() challenge {
+ return challenge(strings.ToLower(string(c)))
+}
+
+func parseChallenge(suffix string) map[string]string {
+ kv := make(map[string]string)
+ for _, token := range strings.Split(suffix, ",") {
+ // Trim any whitespace around each token.
+ token = strings.Trim(token, " ")
+
+ // Break the token into a key/value pair
+ if parts := strings.SplitN(token, "=", 2); len(parts) == 2 {
+ // Unquote the value, if it is quoted.
+ kv[parts[0]] = strings.Trim(parts[1], `"`)
+ } else {
+ // If there was only one part, treat is as a key with an empty value
+ kv[token] = ""
+ }
+ }
+ return kv
+}
+
+func ping(reg name.Registry, t http.RoundTripper) (*pingResp, error) {
+ client := http.Client{Transport: t}
+
+ // This first attempts to use "https" for every request, falling back to http
+ // if the registry matches our localhost heuristic or if it is intentionally
+ // set to insecure via name.NewInsecureRegistry.
+ schemes := []string{"https"}
+ if reg.Scheme() == "http" {
+ schemes = append(schemes, "http")
+ }
+
+ var connErr error
+ for _, scheme := range schemes {
+ url := fmt.Sprintf("%s://%s/v2/", scheme, reg.Name())
+ resp, err := client.Get(url)
+ if err != nil {
+ connErr = err
+ // Potentially retry with http.
+ continue
+ }
+ defer resp.Body.Close()
+
+ switch resp.StatusCode {
+ case http.StatusOK:
+ // If we get a 200, then no authentication is needed.
+ return &pingResp{
+ challenge: anonymous,
+ scheme: scheme,
+ }, nil
+ case http.StatusUnauthorized:
+ wac := resp.Header.Get(http.CanonicalHeaderKey("WWW-Authenticate"))
+ if parts := strings.SplitN(wac, " ", 2); len(parts) == 2 {
+ // If there are two parts, then parse the challenge parameters.
+ return &pingResp{
+ challenge: challenge(parts[0]).Canonical(),
+ parameters: parseChallenge(parts[1]),
+ scheme: scheme,
+ }, nil
+ }
+ // Otherwise, just return the challenge without parameters.
+ return &pingResp{
+ challenge: challenge(wac).Canonical(),
+ scheme: scheme,
+ }, nil
+ default:
+ return nil, fmt.Errorf("unrecognized HTTP status: %v", resp.Status)
+ }
+ }
+ return nil, connErr
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/scope.go b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/scope.go
new file mode 100644
index 0000000000..c3b56f7a41
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/scope.go
@@ -0,0 +1,24 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package transport
+
+// Scopes suitable to qualify each Repository
+const (
+ PullScope string = "pull"
+ PushScope string = "push,pull"
+ // For now DELETE is PUSH, which is the read/write ACL.
+ DeleteScope string = PushScope
+ CatalogScope string = "catalog"
+)
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/transport.go b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/transport.go
new file mode 100644
index 0000000000..18c8e66c75
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/transport.go
@@ -0,0 +1,85 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package transport
+
+import (
+ "fmt"
+ "net/http"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+)
+
+const (
+ transportName = "go-containerregistry"
+)
+
+// New returns a new RoundTripper based on the provided RoundTripper that has been
+// setup to authenticate with the remote registry "reg", in the capacity
+// laid out by the specified scopes.
+func New(reg name.Registry, auth authn.Authenticator, t http.RoundTripper, scopes []string) (http.RoundTripper, error) {
+ // The handshake:
+ // 1. Use "t" to ping() the registry for the authentication challenge.
+ //
+ // 2a. If we get back a 200, then simply use "t".
+ //
+ // 2b. If we get back a 401 with a Basic challenge, then use a transport
+ // that just attachs auth each roundtrip.
+ //
+ // 2c. If we get back a 401 with a Bearer challenge, then use a transport
+ // that attaches a bearer token to each request, and refreshes is on 401s.
+ // Perform an initial refresh to seed the bearer token.
+
+ // First we ping the registry to determine the parameters of the authentication handshake
+ // (if one is even necessary).
+ pr, err := ping(reg, t)
+ if err != nil {
+ return nil, err
+ }
+
+ switch pr.challenge.Canonical() {
+ case anonymous:
+ return t, nil
+ case basic:
+ return &basicTransport{inner: t, auth: auth, target: reg.RegistryStr()}, nil
+ case bearer:
+ // We require the realm, which tells us where to send our Basic auth to turn it into Bearer auth.
+ realm, ok := pr.parameters["realm"]
+ if !ok {
+ return nil, fmt.Errorf("malformed www-authenticate, missing realm: %v", pr.parameters)
+ }
+ service, ok := pr.parameters["service"]
+ if !ok {
+ // If the service parameter is not specified, then default it to the registry
+ // with which we are talking.
+ service = reg.String()
+ }
+ bt := &bearerTransport{
+ inner: t,
+ basic: auth,
+ realm: realm,
+ registry: reg,
+ service: service,
+ scopes: scopes,
+ scheme: pr.scheme,
+ }
+ if err := bt.refresh(); err != nil {
+ return nil, err
+ }
+ return bt, nil
+ default:
+ return nil, fmt.Errorf("Unrecognized challenge: %s", pr.challenge)
+ }
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/remote/write.go b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/write.go
new file mode 100644
index 0000000000..26d6a06f0c
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/remote/write.go
@@ -0,0 +1,372 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package remote
+
+import (
+ "bytes"
+ "errors"
+ "fmt"
+ "io"
+ "log"
+ "net/http"
+ "net/url"
+
+ "github.com/google/go-containerregistry/pkg/authn"
+ "github.com/google/go-containerregistry/pkg/name"
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+ "github.com/google/go-containerregistry/pkg/v1/partial"
+ "github.com/google/go-containerregistry/pkg/v1/remote/transport"
+ "github.com/google/go-containerregistry/pkg/v1/stream"
+ "golang.org/x/sync/errgroup"
+)
+
+// Write pushes the provided img to the specified image reference.
+func Write(ref name.Reference, img v1.Image, auth authn.Authenticator, t http.RoundTripper) error {
+ ls, err := img.Layers()
+ if err != nil {
+ return err
+ }
+
+ scopes := scopesForUploadingImage(ref, ls)
+ tr, err := transport.New(ref.Context().Registry, auth, t, scopes)
+ if err != nil {
+ return err
+ }
+ w := writer{
+ ref: ref,
+ client: &http.Client{Transport: tr},
+ img: img,
+ }
+
+ // Upload individual layers in goroutines and collect any errors.
+ var g errgroup.Group
+ for _, l := range ls {
+ l := l
+ g.Go(func() error {
+ return w.uploadOne(l)
+ })
+ }
+
+ if l, err := partial.ConfigLayer(img); err == stream.ErrNotComputed {
+ // We can't read the ConfigLayer, because of streaming layers, since the
+ // config hasn't been calculated yet.
+ if err := g.Wait(); err != nil {
+ return err
+ }
+
+ // Now that all the layers are uploaded, upload the config file blob.
+ l, err := partial.ConfigLayer(img)
+ if err != nil {
+ return err
+ }
+ if err := w.uploadOne(l); err != nil {
+ return err
+ }
+ } else if err != nil {
+ // This is an actual error, not a streaming error, just return it.
+ return err
+ } else {
+ // We *can* read the ConfigLayer, so upload it concurrently with the layers.
+ g.Go(func() error {
+ return w.uploadOne(l)
+ })
+
+ // Wait for the layers + config.
+ if err := g.Wait(); err != nil {
+ return err
+ }
+ }
+
+ // With all of the constituent elements uploaded, upload the manifest
+ // to commit the image.
+ return w.commitImage()
+}
+
+// writer writes the elements of an image to a remote image reference.
+type writer struct {
+ ref name.Reference
+ client *http.Client
+ img v1.Image
+}
+
+// url returns a url.Url for the specified path in the context of this remote image reference.
+func (w *writer) url(path string) url.URL {
+ return url.URL{
+ Scheme: w.ref.Context().Registry.Scheme(),
+ Host: w.ref.Context().RegistryStr(),
+ Path: path,
+ }
+}
+
+// nextLocation extracts the fully-qualified URL to which we should send the next request in an upload sequence.
+func (w *writer) nextLocation(resp *http.Response) (string, error) {
+ loc := resp.Header.Get("Location")
+ if len(loc) == 0 {
+ return "", errors.New("missing Location header")
+ }
+ u, err := url.Parse(loc)
+ if err != nil {
+ return "", err
+ }
+
+ // If the location header returned is just a url path, then fully qualify it.
+ // We cannot simply call w.url, since there might be an embedded query string.
+ return resp.Request.URL.ResolveReference(u).String(), nil
+}
+
+// checkExisting checks if a blob exists already in the repository by making a
+// HEAD request to the blob store API. GCR performs an existence check on the
+// initiation if "mount" is specified, even if no "from" sources are specified.
+// However, this is not broadly applicable to all registries, e.g. ECR.
+func (w *writer) checkExisting(h v1.Hash) (bool, error) {
+ u := w.url(fmt.Sprintf("/v2/%s/blobs/%s", w.ref.Context().RepositoryStr(), h.String()))
+
+ resp, err := w.client.Head(u.String())
+ if err != nil {
+ return false, err
+ }
+ defer resp.Body.Close()
+
+ if err := transport.CheckError(resp, http.StatusOK, http.StatusNotFound); err != nil {
+ return false, err
+ }
+
+ return resp.StatusCode == http.StatusOK, nil
+}
+
+// initiateUpload initiates the blob upload, which starts with a POST that can
+// optionally include the hash of the layer and a list of repositories from
+// which that layer might be read. On failure, an error is returned.
+// On success, the layer was either mounted (nothing more to do) or a blob
+// upload was initiated and the body of that blob should be sent to the returned
+// location.
+func (w *writer) initiateUpload(from, mount string) (location string, mounted bool, err error) {
+ u := w.url(fmt.Sprintf("/v2/%s/blobs/uploads/", w.ref.Context().RepositoryStr()))
+ uv := url.Values{}
+ if mount != "" {
+ uv["mount"] = []string{mount}
+ }
+ if from != "" {
+ uv["from"] = []string{from}
+ }
+ u.RawQuery = uv.Encode()
+
+ // Make the request to initiate the blob upload.
+ resp, err := w.client.Post(u.String(), "application/json", nil)
+ if err != nil {
+ return "", false, err
+ }
+ defer resp.Body.Close()
+
+ if err := transport.CheckError(resp, http.StatusCreated, http.StatusAccepted); err != nil {
+ return "", false, err
+ }
+
+ // Check the response code to determine the result.
+ switch resp.StatusCode {
+ case http.StatusCreated:
+ // We're done, we were able to fast-path.
+ return "", true, nil
+ case http.StatusAccepted:
+ // Proceed to PATCH, upload has begun.
+ loc, err := w.nextLocation(resp)
+ return loc, false, err
+ default:
+ panic("Unreachable: initiateUpload")
+ }
+}
+
+// streamBlob streams the contents of the blob to the specified location.
+// On failure, this will return an error. On success, this will return the location
+// header indicating how to commit the streamed blob.
+func (w *writer) streamBlob(blob io.ReadCloser, streamLocation string) (commitLocation string, err error) {
+ defer blob.Close()
+
+ req, err := http.NewRequest(http.MethodPatch, streamLocation, blob)
+ if err != nil {
+ return "", err
+ }
+
+ resp, err := w.client.Do(req)
+ if err != nil {
+ return "", err
+ }
+ defer resp.Body.Close()
+
+ if err := transport.CheckError(resp, http.StatusNoContent, http.StatusAccepted, http.StatusCreated); err != nil {
+ return "", err
+ }
+
+ // The blob has been uploaded, return the location header indicating
+ // how to commit this layer.
+ return w.nextLocation(resp)
+}
+
+// commitBlob commits this blob by sending a PUT to the location returned from
+// streaming the blob.
+func (w *writer) commitBlob(location, digest string) error {
+ u, err := url.Parse(location)
+ if err != nil {
+ return err
+ }
+ v := u.Query()
+ v.Set("digest", digest)
+ u.RawQuery = v.Encode()
+
+ req, err := http.NewRequest(http.MethodPut, u.String(), nil)
+ if err != nil {
+ return err
+ }
+
+ resp, err := w.client.Do(req)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+
+ return transport.CheckError(resp, http.StatusCreated)
+}
+
+// uploadOne performs a complete upload of a single layer.
+func (w *writer) uploadOne(l v1.Layer) error {
+ var from, mount, digest string
+ if _, ok := l.(*stream.Layer); !ok {
+ // Layer isn't streamable, we should take advantage of that to
+ // skip uploading if possible.
+ // By sending ?digest= in the request, we'll also check that
+ // our computed digest matches the one computed by the
+ // registry.
+ h, err := l.Digest()
+ if err != nil {
+ return err
+ }
+ digest = h.String()
+
+ existing, err := w.checkExisting(h)
+ if err != nil {
+ return err
+ }
+ if existing {
+ log.Printf("existing blob: %v", h)
+ return nil
+ }
+
+ mount = h.String()
+ }
+ if ml, ok := l.(*MountableLayer); ok {
+ if w.ref.Context().RegistryStr() == ml.Reference.Context().RegistryStr() {
+ from = ml.Reference.Context().RepositoryStr()
+ }
+ }
+
+ location, mounted, err := w.initiateUpload(from, mount)
+ if err != nil {
+ return err
+ } else if mounted {
+ h, err := l.Digest()
+ if err != nil {
+ return err
+ }
+ log.Printf("mounted blob: %s", h.String())
+ return nil
+ }
+
+ blob, err := l.Compressed()
+ if err != nil {
+ return err
+ }
+ location, err = w.streamBlob(blob, location)
+ if err != nil {
+ return err
+ }
+
+ h, err := l.Digest()
+ if err != nil {
+ return err
+ }
+ digest = h.String()
+
+ if err := w.commitBlob(location, digest); err != nil {
+ return err
+ }
+ log.Printf("pushed blob: %s", digest)
+ return nil
+}
+
+// commitImage does a PUT of the image's manifest.
+func (w *writer) commitImage() error {
+ raw, err := w.img.RawManifest()
+ if err != nil {
+ return err
+ }
+ mt, err := w.img.MediaType()
+ if err != nil {
+ return err
+ }
+
+ u := w.url(fmt.Sprintf("/v2/%s/manifests/%s", w.ref.Context().RepositoryStr(), w.ref.Identifier()))
+
+ // Make the request to PUT the serialized manifest
+ req, err := http.NewRequest(http.MethodPut, u.String(), bytes.NewBuffer(raw))
+ if err != nil {
+ return err
+ }
+ req.Header.Set("Content-Type", string(mt))
+
+ resp, err := w.client.Do(req)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+
+ if err := transport.CheckError(resp, http.StatusOK, http.StatusCreated, http.StatusAccepted); err != nil {
+ return err
+ }
+
+ digest, err := w.img.Digest()
+ if err != nil {
+ return err
+ }
+
+ // The image was successfully pushed!
+ log.Printf("%v: digest: %v size: %d", w.ref, digest, len(raw))
+ return nil
+}
+
+func scopesForUploadingImage(ref name.Reference, layers []v1.Layer) []string {
+ // use a map as set to remove duplicates scope strings
+ scopeSet := map[string]struct{}{}
+
+ for _, l := range layers {
+ if ml, ok := l.(*MountableLayer); ok {
+ // we add push scope for ref.Context() after the loop
+ if ml.Reference.Context() != ref.Context() {
+ scopeSet[ml.Reference.Context().Scope(transport.PullScope)] = struct{}{}
+ }
+ }
+ }
+
+ scopes := make([]string, 0)
+ // Push scope should be the first element because a few registries just look at the first scope to determine access.
+ scopes = append(scopes, ref.Scope(transport.PushScope))
+
+ for scope := range scopeSet {
+ scopes = append(scopes, scope)
+ }
+
+ return scopes
+}
+
+// TODO(mattmoor): WriteIndex
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/stream/layer.go b/vendor/github.com/google/go-containerregistry/pkg/v1/stream/layer.go
new file mode 100644
index 0000000000..bbad99aefb
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/stream/layer.go
@@ -0,0 +1,183 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package stream
+
+import (
+ "compress/gzip"
+ "crypto/sha256"
+ "encoding/hex"
+ "errors"
+ "hash"
+ "io"
+
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+)
+
+var (
+ // ErrNotComputed is returned when the requested value is not yet
+ // computed because the stream has not been consumed yet.
+ ErrNotComputed = errors.New("value not computed until stream is consumed")
+
+ // ErrConsumed is returned by Compressed when the underlying stream has
+ // already been consumed and closed.
+ ErrConsumed = errors.New("stream was already consumed")
+)
+
+// Layer is a streaming implementation of v1.Layer.
+type Layer struct {
+ blob io.ReadCloser
+ consumed bool
+
+ digest, diffID *v1.Hash
+ size int64
+}
+
+var _ v1.Layer = (*Layer)(nil)
+
+// NewLayer creates a Layer from an io.ReadCloser.
+func NewLayer(rc io.ReadCloser) *Layer { return &Layer{blob: rc} }
+
+// Digest implements v1.Layer.
+func (l *Layer) Digest() (v1.Hash, error) {
+ if l.digest == nil {
+ return v1.Hash{}, ErrNotComputed
+ }
+ return *l.digest, nil
+}
+
+// DiffID implements v1.Layer.
+func (l *Layer) DiffID() (v1.Hash, error) {
+ if l.diffID == nil {
+ return v1.Hash{}, ErrNotComputed
+ }
+ return *l.diffID, nil
+}
+
+// Size implements v1.Layer.
+func (l *Layer) Size() (int64, error) {
+ if l.size == 0 {
+ return 0, ErrNotComputed
+ }
+ return l.size, nil
+}
+
+// Uncompressed implements v1.Layer.
+func (l *Layer) Uncompressed() (io.ReadCloser, error) {
+ return nil, errors.New("NYI: stream.Layer.Uncompressed is not implemented")
+}
+
+// Compressed implements v1.Layer.
+func (l *Layer) Compressed() (io.ReadCloser, error) {
+ if l.consumed {
+ return nil, ErrConsumed
+ }
+ return newCompressedReader(l)
+}
+
+type compressedReader struct {
+ closer io.Closer // original blob's Closer.
+
+ h, zh hash.Hash // collects digests of compressed and uncompressed stream.
+ pr io.Reader
+ count *countWriter
+
+ l *Layer // stream.Layer to update upon Close.
+}
+
+func newCompressedReader(l *Layer) (*compressedReader, error) {
+ h := sha256.New()
+ zh := sha256.New()
+ count := &countWriter{}
+
+ // gzip.Writer writes to the output stream via pipe, a hasher to
+ // capture compressed digest, and a countWriter to capture compressed
+ // size.
+ pr, pw := io.Pipe()
+ zw, err := gzip.NewWriterLevel(io.MultiWriter(pw, zh, count), gzip.BestSpeed)
+ if err != nil {
+ return nil, err
+ }
+
+ cr := &compressedReader{
+ closer: newMultiCloser(zw, l.blob),
+ pr: pr,
+ h: h,
+ zh: zh,
+ count: count,
+ l: l,
+ }
+ go func() {
+ if _, err := io.Copy(io.MultiWriter(h, zw), l.blob); err != nil {
+ pw.CloseWithError(err)
+ return
+ }
+ // Now close the compressed reader, to flush the gzip stream
+ // and calculate digest/diffID/size. This will cause pr to
+ // return EOF which will cause readers of the Compressed stream
+ // to finish reading.
+ pw.CloseWithError(cr.Close())
+ }()
+
+ return cr, nil
+}
+
+func (cr *compressedReader) Read(b []byte) (int, error) { return cr.pr.Read(b) }
+
+func (cr *compressedReader) Close() error {
+ // Close the inner ReadCloser.
+ if err := cr.closer.Close(); err != nil {
+ return err
+ }
+
+ diffID, err := v1.NewHash("sha256:" + hex.EncodeToString(cr.h.Sum(nil)))
+ if err != nil {
+ return err
+ }
+ cr.l.diffID = &diffID
+
+ digest, err := v1.NewHash("sha256:" + hex.EncodeToString(cr.zh.Sum(nil)))
+ if err != nil {
+ return err
+ }
+ cr.l.digest = &digest
+
+ cr.l.size = cr.count.n
+ cr.l.consumed = true
+ return nil
+}
+
+// countWriter counts bytes written to it.
+type countWriter struct{ n int64 }
+
+func (c *countWriter) Write(p []byte) (int, error) {
+ c.n += int64(len(p))
+ return len(p), nil
+}
+
+// multiCloser is a Closer that collects multiple Closers and Closes them in order.
+type multiCloser []io.Closer
+
+var _ io.Closer = (multiCloser)(nil)
+
+func newMultiCloser(c ...io.Closer) multiCloser { return multiCloser(c) }
+
+func (m multiCloser) Close() error {
+ for _, c := range m {
+ if err := c.Close(); err != nil {
+ return err
+ }
+ }
+ return nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/tarball/doc.go b/vendor/github.com/google/go-containerregistry/pkg/v1/tarball/doc.go
new file mode 100644
index 0000000000..4eb79bb4e5
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/tarball/doc.go
@@ -0,0 +1,17 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package tarball provides facilities for reading/writing v1.Images from/to
+// a tarball on-disk.
+package tarball
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/tarball/image.go b/vendor/github.com/google/go-containerregistry/pkg/v1/tarball/image.go
new file mode 100644
index 0000000000..ced18735c8
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/tarball/image.go
@@ -0,0 +1,340 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package tarball
+
+import (
+ "archive/tar"
+ "bytes"
+ "encoding/json"
+ "errors"
+ "fmt"
+ "io"
+ "io/ioutil"
+ "os"
+ "sync"
+
+ "github.com/google/go-containerregistry/pkg/name"
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+ "github.com/google/go-containerregistry/pkg/v1/partial"
+ "github.com/google/go-containerregistry/pkg/v1/types"
+ "github.com/google/go-containerregistry/pkg/v1/v1util"
+)
+
+type image struct {
+ opener Opener
+ td *tarDescriptor
+ config []byte
+ imgDescriptor *singleImageTarDescriptor
+
+ tag *name.Tag
+}
+
+type uncompressedImage struct {
+ *image
+}
+
+type compressedImage struct {
+ *image
+ manifestLock sync.Mutex // Protects manifest
+ manifest *v1.Manifest
+}
+
+var _ partial.UncompressedImageCore = (*uncompressedImage)(nil)
+var _ partial.CompressedImageCore = (*compressedImage)(nil)
+
+// Opener is a thunk for opening a tar file.
+type Opener func() (io.ReadCloser, error)
+
+func pathOpener(path string) Opener {
+ return func() (io.ReadCloser, error) {
+ return os.Open(path)
+ }
+}
+
+// ImageFromPath returns a v1.Image from a tarball located on path.
+func ImageFromPath(path string, tag *name.Tag) (v1.Image, error) {
+ return Image(pathOpener(path), tag)
+}
+
+// Image exposes an image from the tarball at the provided path.
+func Image(opener Opener, tag *name.Tag) (v1.Image, error) {
+ img := &image{
+ opener: opener,
+ tag: tag,
+ }
+ if err := img.loadTarDescriptorAndConfig(); err != nil {
+ return nil, err
+ }
+
+ // Peek at the first layer and see if it's compressed.
+ compressed, err := img.areLayersCompressed()
+ if err != nil {
+ return nil, err
+ }
+ if compressed {
+ c := compressedImage{
+ image: img,
+ }
+ return partial.CompressedToImage(&c)
+ }
+
+ uc := uncompressedImage{
+ image: img,
+ }
+ return partial.UncompressedToImage(&uc)
+}
+
+func (i *image) MediaType() (types.MediaType, error) {
+ return types.DockerManifestSchema2, nil
+}
+
+// singleImageTarDescriptor is the struct used to represent a single image inside a `docker save` tarball.
+type singleImageTarDescriptor struct {
+ Config string
+ RepoTags []string
+ Layers []string
+}
+
+// tarDescriptor is the struct used inside the `manifest.json` file of a `docker save` tarball.
+type tarDescriptor []singleImageTarDescriptor
+
+func (td tarDescriptor) findSpecifiedImageDescriptor(tag *name.Tag) (*singleImageTarDescriptor, error) {
+ if tag == nil {
+ if len(td) != 1 {
+ return nil, errors.New("tarball must contain only a single image to be used with tarball.Image")
+ }
+ return &(td)[0], nil
+ }
+ for _, img := range td {
+ for _, tagStr := range img.RepoTags {
+ repoTag, err := name.NewTag(tagStr, name.WeakValidation)
+ if err != nil {
+ return nil, err
+ }
+
+ // Compare the resolved names, since there are several ways to specify the same tag.
+ if repoTag.Name() == tag.Name() {
+ return &img, nil
+ }
+ }
+ }
+ return nil, fmt.Errorf("tag %s not found in tarball", tag)
+}
+
+func (i *image) areLayersCompressed() (bool, error) {
+ if len(i.imgDescriptor.Layers) == 0 {
+ return false, errors.New("0 layers found in image")
+ }
+ layer := i.imgDescriptor.Layers[0]
+ blob, err := extractFileFromTar(i.opener, layer)
+ if err != nil {
+ return false, err
+ }
+ defer blob.Close()
+ return v1util.IsGzipped(blob)
+}
+
+func (i *image) loadTarDescriptorAndConfig() error {
+ td, err := extractFileFromTar(i.opener, "manifest.json")
+ if err != nil {
+ return err
+ }
+ defer td.Close()
+
+ if err := json.NewDecoder(td).Decode(&i.td); err != nil {
+ return err
+ }
+
+ i.imgDescriptor, err = i.td.findSpecifiedImageDescriptor(i.tag)
+ if err != nil {
+ return err
+ }
+
+ cfg, err := extractFileFromTar(i.opener, i.imgDescriptor.Config)
+ if err != nil {
+ return err
+ }
+ defer cfg.Close()
+
+ i.config, err = ioutil.ReadAll(cfg)
+ if err != nil {
+ return err
+ }
+ return nil
+}
+
+func (i *image) RawConfigFile() ([]byte, error) {
+ return i.config, nil
+}
+
+// tarFile represents a single file inside a tar. Closing it closes the tar itself.
+type tarFile struct {
+ io.Reader
+ io.Closer
+}
+
+func extractFileFromTar(opener Opener, filePath string) (io.ReadCloser, error) {
+ f, err := opener()
+ if err != nil {
+ return nil, err
+ }
+ tf := tar.NewReader(f)
+ for {
+ hdr, err := tf.Next()
+ if err == io.EOF {
+ break
+ }
+ if err != nil {
+ return nil, err
+ }
+ if hdr.Name == filePath {
+ return tarFile{
+ Reader: tf,
+ Closer: f,
+ }, nil
+ }
+ }
+ return nil, fmt.Errorf("file %s not found in tar", filePath)
+}
+
+// uncompressedLayerFromTarball implements partial.UncompressedLayer
+type uncompressedLayerFromTarball struct {
+ diffID v1.Hash
+ opener Opener
+ filePath string
+}
+
+// DiffID implements partial.UncompressedLayer
+func (ulft *uncompressedLayerFromTarball) DiffID() (v1.Hash, error) {
+ return ulft.diffID, nil
+}
+
+// Uncompressed implements partial.UncompressedLayer
+func (ulft *uncompressedLayerFromTarball) Uncompressed() (io.ReadCloser, error) {
+ return extractFileFromTar(ulft.opener, ulft.filePath)
+}
+
+func (i *uncompressedImage) LayerByDiffID(h v1.Hash) (partial.UncompressedLayer, error) {
+ cfg, err := partial.ConfigFile(i)
+ if err != nil {
+ return nil, err
+ }
+ for idx, diffID := range cfg.RootFS.DiffIDs {
+ if diffID == h {
+ return &uncompressedLayerFromTarball{
+ diffID: diffID,
+ opener: i.opener,
+ filePath: i.imgDescriptor.Layers[idx],
+ }, nil
+ }
+ }
+ return nil, fmt.Errorf("diff id %q not found", h)
+}
+
+func (c *compressedImage) Manifest() (*v1.Manifest, error) {
+ c.manifestLock.Lock()
+ defer c.manifestLock.Unlock()
+ if c.manifest != nil {
+ return c.manifest, nil
+ }
+
+ b, err := c.RawConfigFile()
+ if err != nil {
+ return nil, err
+ }
+
+ cfgHash, cfgSize, err := v1.SHA256(bytes.NewReader(b))
+ if err != nil {
+ return nil, err
+ }
+
+ c.manifest = &v1.Manifest{
+ SchemaVersion: 2,
+ MediaType: types.DockerManifestSchema2,
+ Config: v1.Descriptor{
+ MediaType: types.DockerConfigJSON,
+ Size: cfgSize,
+ Digest: cfgHash,
+ },
+ }
+
+ for _, p := range c.imgDescriptor.Layers {
+ l, err := extractFileFromTar(c.opener, p)
+ if err != nil {
+ return nil, err
+ }
+ defer l.Close()
+ sha, size, err := v1.SHA256(l)
+ if err != nil {
+ return nil, err
+ }
+ c.manifest.Layers = append(c.manifest.Layers, v1.Descriptor{
+ MediaType: types.DockerLayer,
+ Size: size,
+ Digest: sha,
+ })
+ }
+ return c.manifest, nil
+}
+
+func (c *compressedImage) RawManifest() ([]byte, error) {
+ return partial.RawManifest(c)
+}
+
+// compressedLayerFromTarball implements partial.CompressedLayer
+type compressedLayerFromTarball struct {
+ digest v1.Hash
+ opener Opener
+ filePath string
+}
+
+// Digest implements partial.CompressedLayer
+func (clft *compressedLayerFromTarball) Digest() (v1.Hash, error) {
+ return clft.digest, nil
+}
+
+// Compressed implements partial.CompressedLayer
+func (clft *compressedLayerFromTarball) Compressed() (io.ReadCloser, error) {
+ return extractFileFromTar(clft.opener, clft.filePath)
+}
+
+// Size implements partial.CompressedLayer
+func (clft *compressedLayerFromTarball) Size() (int64, error) {
+ r, err := clft.Compressed()
+ if err != nil {
+ return -1, err
+ }
+ defer r.Close()
+ _, i, err := v1.SHA256(r)
+ return i, err
+}
+
+func (c *compressedImage) LayerByDigest(h v1.Hash) (partial.CompressedLayer, error) {
+ m, err := c.Manifest()
+ if err != nil {
+ return nil, err
+ }
+ for i, l := range m.Layers {
+ if l.Digest == h {
+ fp := c.imgDescriptor.Layers[i]
+ return &compressedLayerFromTarball{
+ digest: h,
+ opener: c.opener,
+ filePath: fp,
+ }, nil
+ }
+ }
+ return nil, fmt.Errorf("blob %v not found", h)
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/tarball/layer.go b/vendor/github.com/google/go-containerregistry/pkg/v1/tarball/layer.go
new file mode 100644
index 0000000000..00256e8f2e
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/tarball/layer.go
@@ -0,0 +1,144 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package tarball
+
+import (
+ "compress/gzip"
+ "io"
+ "io/ioutil"
+ "os"
+
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+ "github.com/google/go-containerregistry/pkg/v1/v1util"
+)
+
+type layer struct {
+ digest v1.Hash
+ diffID v1.Hash
+ size int64
+ opener Opener
+ compressed bool
+}
+
+func (l *layer) Digest() (v1.Hash, error) {
+ return l.digest, nil
+}
+
+func (l *layer) DiffID() (v1.Hash, error) {
+ return l.diffID, nil
+}
+
+func (l *layer) Compressed() (io.ReadCloser, error) {
+ rc, err := l.opener()
+ if err == nil && !l.compressed {
+ return v1util.GzipReadCloser(rc)
+ }
+
+ return rc, err
+}
+
+func (l *layer) Uncompressed() (io.ReadCloser, error) {
+ rc, err := l.opener()
+ if err == nil && l.compressed {
+ return v1util.GunzipReadCloser(rc)
+ }
+
+ return rc, err
+}
+
+func (l *layer) Size() (int64, error) {
+ return l.size, nil
+}
+
+// LayerFromFile returns a v1.Layer given a tarball
+func LayerFromFile(path string) (v1.Layer, error) {
+ opener := func() (io.ReadCloser, error) {
+ return os.Open(path)
+ }
+ return LayerFromOpener(opener)
+}
+
+// LayerFromOpener returns a v1.Layer given an Opener function
+func LayerFromOpener(opener Opener) (v1.Layer, error) {
+ rc, err := opener()
+ if err != nil {
+ return nil, err
+ }
+ defer rc.Close()
+
+ compressed, err := v1util.IsGzipped(rc)
+ if err != nil {
+ return nil, err
+ }
+
+ var digest v1.Hash
+ var size int64
+ if digest, size, err = computeDigest(opener, compressed); err != nil {
+ return nil, err
+ }
+
+ diffID, err := computeDiffID(opener, compressed)
+ if err != nil {
+ return nil, err
+ }
+
+ return &layer{
+ digest: digest,
+ diffID: diffID,
+ size: size,
+ compressed: compressed,
+ opener: opener,
+ }, nil
+}
+
+func computeDigest(opener Opener, compressed bool) (v1.Hash, int64, error) {
+ rc, err := opener()
+ if err != nil {
+ return v1.Hash{}, 0, err
+ }
+ defer rc.Close()
+
+ if compressed {
+ return v1.SHA256(rc)
+ }
+
+ reader, err := v1util.GzipReadCloser(ioutil.NopCloser(rc))
+ if err != nil {
+ return v1.Hash{}, 0, err
+ }
+
+ return v1.SHA256(reader)
+}
+
+func computeDiffID(opener Opener, compressed bool) (v1.Hash, error) {
+ rc, err := opener()
+ if err != nil {
+ return v1.Hash{}, err
+ }
+ defer rc.Close()
+
+ if !compressed {
+ digest, _, err := v1.SHA256(rc)
+ return digest, err
+ }
+
+ reader, err := gzip.NewReader(rc)
+ if err != nil {
+ return v1.Hash{}, err
+ }
+
+ diffID, _, err := v1.SHA256(reader)
+ return diffID, err
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/tarball/write.go b/vendor/github.com/google/go-containerregistry/pkg/v1/tarball/write.go
new file mode 100644
index 0000000000..44dbe15aae
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/tarball/write.go
@@ -0,0 +1,165 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package tarball
+
+import (
+ "archive/tar"
+ "bytes"
+ "encoding/json"
+ "fmt"
+ "io"
+ "os"
+
+ "github.com/google/go-containerregistry/pkg/name"
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+)
+
+// WriteToFile writes in the compressed format to a tarball, on disk.
+// This is just syntactic sugar wrapping tarball.Write with a new file.
+func WriteToFile(p string, tag name.Tag, img v1.Image) error {
+ w, err := os.Create(p)
+ if err != nil {
+ return err
+ }
+ defer w.Close()
+
+ return Write(tag, img, w)
+}
+
+// MultiWriteToFile writes in the compressed format to a tarball, on disk.
+// This is just syntactic sugar wrapping tarball.MultiWrite with a new file.
+func MultiWriteToFile(p string, tagToImage map[name.Tag]v1.Image) error {
+ w, err := os.Create(p)
+ if err != nil {
+ return err
+ }
+ defer w.Close()
+
+ return MultiWrite(tagToImage, w)
+}
+
+// Write is a wrapper to write a single image and tag to a tarball.
+func Write(tag name.Tag, img v1.Image, w io.Writer) error {
+ return MultiWrite(map[name.Tag]v1.Image{tag: img}, w)
+}
+
+// MultiWrite writes the contents of each image to the provided reader, in the compressed format.
+// The contents are written in the following format:
+// One manifest.json file at the top level containing information about several images.
+// One file for each layer, named after the layer's SHA.
+// One file for the config blob, named after its SHA.
+func MultiWrite(tagToImage map[name.Tag]v1.Image, w io.Writer) error {
+ tf := tar.NewWriter(w)
+ defer tf.Close()
+
+ imageToTags := dedupTagToImage(tagToImage)
+ var td tarDescriptor
+
+ for img, tags := range imageToTags {
+ // Write the config.
+ cfgName, err := img.ConfigName()
+ if err != nil {
+ return err
+ }
+ cfgBlob, err := img.RawConfigFile()
+ if err != nil {
+ return err
+ }
+ if err := writeTarEntry(tf, cfgName.String(), bytes.NewReader(cfgBlob), int64(len(cfgBlob))); err != nil {
+ return err
+ }
+
+ // Write the layers.
+ layers, err := img.Layers()
+ if err != nil {
+ return err
+ }
+ layerFiles := make([]string, len(layers))
+ for i, l := range layers {
+ d, err := l.Digest()
+ if err != nil {
+ return err
+ }
+
+ // Munge the file name to appease ancient technology.
+ //
+ // tar assumes anything with a colon is a remote tape drive:
+ // https://www.gnu.org/software/tar/manual/html_section/tar_45.html
+ // Drop the algorithm prefix, e.g. "sha256:"
+ hex := d.Hex
+
+ // gunzip expects certain file extensions:
+ // https://www.gnu.org/software/gzip/manual/html_node/Overview.html
+ layerFiles[i] = fmt.Sprintf("%s.tar.gz", hex)
+
+ r, err := l.Compressed()
+ if err != nil {
+ return err
+ }
+ blobSize, err := l.Size()
+ if err != nil {
+ return err
+ }
+
+ if err := writeTarEntry(tf, layerFiles[i], r, blobSize); err != nil {
+ return err
+ }
+ }
+
+ // Generate the tar descriptor and write it.
+ sitd := singleImageTarDescriptor{
+ Config: cfgName.String(),
+ RepoTags: tags,
+ Layers: layerFiles,
+ }
+
+ td = append(td, sitd)
+ }
+
+ tdBytes, err := json.Marshal(td)
+ if err != nil {
+ return err
+ }
+ return writeTarEntry(tf, "manifest.json", bytes.NewReader(tdBytes), int64(len(tdBytes)))
+}
+
+func dedupTagToImage(tagToImage map[name.Tag]v1.Image) map[v1.Image][]string {
+ imageToTags := make(map[v1.Image][]string)
+
+ for tag, img := range tagToImage {
+ if tags, ok := imageToTags[img]; ok {
+ imageToTags[img] = append(tags, tag.String())
+ } else {
+ imageToTags[img] = []string{tag.String()}
+ }
+ }
+
+ return imageToTags
+}
+
+// write a file to the provided writer with a corresponding tar header
+func writeTarEntry(tf *tar.Writer, path string, r io.Reader, size int64) error {
+ hdr := &tar.Header{
+ Mode: 0644,
+ Typeflag: tar.TypeReg,
+ Size: size,
+ Name: path,
+ }
+ if err := tf.WriteHeader(hdr); err != nil {
+ return err
+ }
+ _, err := io.Copy(tf, r)
+ return err
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/types/types.go b/vendor/github.com/google/go-containerregistry/pkg/v1/types/types.go
new file mode 100644
index 0000000000..ddaf71962e
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/types/types.go
@@ -0,0 +1,40 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package types
+
+// MediaType is an enumeration of the supported mime types that an element of an image might have.
+type MediaType string
+
+// The collection of known MediaType values.
+const (
+ OCIContentDescriptor MediaType = "application/vnd.oci.descriptor.v1+json"
+ OCIImageIndex MediaType = "application/vnd.oci.image.index.v1+json"
+ OCIManifestSchema1 MediaType = "application/vnd.oci.image.manifest.v1+json"
+ OCIConfigJSON MediaType = "application/vnd.oci.image.config.v1+json"
+ OCILayer MediaType = "application/vnd.oci.image.layer.v1.tar+gzip"
+ OCIRestrictedLayer MediaType = "application/vnd.oci.image.layer.nondistributable.v1.tar+gzip"
+ OCIUncompressedLayer MediaType = "application/vnd.oci.image.layer.v1.tar"
+ OCIUncompressedRestrictedLayer MediaType = "application/vnd.oci.image.layer.nondistributable.v1.tar"
+
+ DockerManifestSchema1 MediaType = "application/vnd.docker.distribution.manifest.v1+json"
+ DockerManifestSchema1Signed MediaType = "application/vnd.docker.distribution.manifest.v1+prettyjws"
+ DockerManifestSchema2 MediaType = "application/vnd.docker.distribution.manifest.v2+json"
+ DockerManifestList MediaType = "application/vnd.docker.distribution.manifest.list.v2+json"
+ DockerLayer MediaType = "application/vnd.docker.image.rootfs.diff.tar.gzip"
+ DockerConfigJSON MediaType = "application/vnd.docker.container.image.v1+json"
+ DockerPluginConfig MediaType = "application/vnd.docker.plugin.v1+json"
+ DockerForeignLayer MediaType = "application/vnd.docker.image.rootfs.foreign.diff.tar.gzip"
+ DockerUncompressedLayer MediaType = "application/vnd.docker.image.rootfs.diff.tar"
+)
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/v1util/and_closer.go b/vendor/github.com/google/go-containerregistry/pkg/v1/v1util/and_closer.go
new file mode 100644
index 0000000000..0925f13d54
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/v1util/and_closer.go
@@ -0,0 +1,47 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package v1util
+
+import (
+ "io"
+)
+
+// readAndCloser implements io.ReadCloser by reading from a particular io.Reader
+// and then calling the provided "Close()" method.
+type readAndCloser struct {
+ io.Reader
+ CloseFunc func() error
+}
+
+var _ io.ReadCloser = (*readAndCloser)(nil)
+
+// Close implements io.ReadCloser
+func (rac *readAndCloser) Close() error {
+ return rac.CloseFunc()
+}
+
+// writeAndCloser implements io.WriteCloser by reading from a particular io.Writer
+// and then calling the provided "Close()" method.
+type writeAndCloser struct {
+ io.Writer
+ CloseFunc func() error
+}
+
+var _ io.WriteCloser = (*writeAndCloser)(nil)
+
+// Close implements io.WriteCloser
+func (wac *writeAndCloser) Close() error {
+ return wac.CloseFunc()
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/v1util/verify.go b/vendor/github.com/google/go-containerregistry/pkg/v1/v1util/verify.go
new file mode 100644
index 0000000000..c9699770ce
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/v1util/verify.go
@@ -0,0 +1,61 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package v1util
+
+import (
+ "encoding/hex"
+ "fmt"
+ "hash"
+ "io"
+
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+)
+
+type verifyReader struct {
+ inner io.Reader
+ hasher hash.Hash
+ expected v1.Hash
+}
+
+// Read implements io.Reader
+func (vc *verifyReader) Read(b []byte) (int, error) {
+ n, err := vc.inner.Read(b)
+ if err == io.EOF {
+ got := hex.EncodeToString(vc.hasher.Sum(make([]byte, 0, vc.hasher.Size())))
+ if want := vc.expected.Hex; got != want {
+ return n, fmt.Errorf("error verifying %s checksum; got %q, want %q",
+ vc.expected.Algorithm, got, want)
+ }
+ }
+ return n, err
+}
+
+// VerifyReadCloser wraps the given io.ReadCloser to verify that its contents match
+// the provided v1.Hash before io.EOF is returned.
+func VerifyReadCloser(r io.ReadCloser, h v1.Hash) (io.ReadCloser, error) {
+ w, err := v1.Hasher(h.Algorithm)
+ if err != nil {
+ return nil, err
+ }
+ r2 := io.TeeReader(r, w)
+ return &readAndCloser{
+ Reader: &verifyReader{
+ inner: r2,
+ hasher: w,
+ expected: h,
+ },
+ CloseFunc: r.Close,
+ }, nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/v1util/zip.go b/vendor/github.com/google/go-containerregistry/pkg/v1/v1util/zip.go
new file mode 100644
index 0000000000..57514a4e4d
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/v1util/zip.go
@@ -0,0 +1,80 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package v1util
+
+import (
+ "bytes"
+ "compress/gzip"
+ "io"
+)
+
+var gzipMagicHeader = []byte{'\x1f', '\x8b'}
+
+// GzipReadCloser reads uncompressed input data from the io.ReadCloser and
+// returns an io.ReadCloser from which compressed data may be read.
+// This uses gzip.BestSpeed for the compression level.
+func GzipReadCloser(r io.ReadCloser) (io.ReadCloser, error) {
+ return GzipReadCloserLevel(r, gzip.BestSpeed)
+}
+
+// GzipReadCloserLevel reads uncompressed input data from the io.ReadCloser and
+// returns an io.ReadCloser from which compressed data may be read.
+// Refer to compress/gzip for the level:
+// https://golang.org/pkg/compress/gzip/#pkg-constants
+func GzipReadCloserLevel(r io.ReadCloser, level int) (io.ReadCloser, error) {
+ pr, pw := io.Pipe()
+
+ go func() {
+ defer pw.Close()
+ defer r.Close()
+
+ gw, _ := gzip.NewWriterLevel(pw, level)
+ defer gw.Close()
+
+ _, err := io.Copy(gw, r)
+ if err != nil {
+ pr.CloseWithError(err)
+ }
+ }()
+
+ return pr, nil
+}
+
+// GunzipReadCloser reads compressed input data from the io.ReadCloser and
+// returns an io.ReadCloser from which uncompessed data may be read.
+func GunzipReadCloser(r io.ReadCloser) (io.ReadCloser, error) {
+ gr, err := gzip.NewReader(r)
+ if err != nil {
+ return nil, err
+ }
+ return &readAndCloser{
+ Reader: gr,
+ CloseFunc: func() error {
+ if err := gr.Close(); err != nil {
+ return err
+ }
+ return r.Close()
+ },
+ }, nil
+}
+
+// IsGzipped detects whether the input stream is compressed.
+func IsGzipped(r io.Reader) (bool, error) {
+ magicHeader := make([]byte, 2)
+ if _, err := r.Read(magicHeader); err != nil {
+ return false, err
+ }
+ return bytes.Equal(magicHeader, gzipMagicHeader), nil
+}
diff --git a/vendor/github.com/google/go-containerregistry/pkg/v1/zz_deepcopy_generated.go b/vendor/github.com/google/go-containerregistry/pkg/v1/zz_deepcopy_generated.go
new file mode 100644
index 0000000000..3440b5e130
--- /dev/null
+++ b/vendor/github.com/google/go-containerregistry/pkg/v1/zz_deepcopy_generated.go
@@ -0,0 +1,314 @@
+// +build !ignore_autogenerated
+
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by deepcopy-gen. DO NOT EDIT.
+
+package v1
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Config) DeepCopyInto(out *Config) {
+ *out = *in
+ if in.Cmd != nil {
+ in, out := &in.Cmd, &out.Cmd
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.Healthcheck != nil {
+ in, out := &in.Healthcheck, &out.Healthcheck
+ *out = new(HealthConfig)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Entrypoint != nil {
+ in, out := &in.Entrypoint, &out.Entrypoint
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.Env != nil {
+ in, out := &in.Env, &out.Env
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.Labels != nil {
+ in, out := &in.Labels, &out.Labels
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ if in.OnBuild != nil {
+ in, out := &in.OnBuild, &out.OnBuild
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.Volumes != nil {
+ in, out := &in.Volumes, &out.Volumes
+ *out = make(map[string]struct{}, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ if in.ExposedPorts != nil {
+ in, out := &in.ExposedPorts, &out.ExposedPorts
+ *out = make(map[string]struct{}, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ if in.Shell != nil {
+ in, out := &in.Shell, &out.Shell
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Config.
+func (in *Config) DeepCopy() *Config {
+ if in == nil {
+ return nil
+ }
+ out := new(Config)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ConfigFile) DeepCopyInto(out *ConfigFile) {
+ *out = *in
+ in.Created.DeepCopyInto(&out.Created)
+ if in.History != nil {
+ in, out := &in.History, &out.History
+ *out = make([]History, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ in.RootFS.DeepCopyInto(&out.RootFS)
+ in.Config.DeepCopyInto(&out.Config)
+ in.ContainerConfig.DeepCopyInto(&out.ContainerConfig)
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigFile.
+func (in *ConfigFile) DeepCopy() *ConfigFile {
+ if in == nil {
+ return nil
+ }
+ out := new(ConfigFile)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Descriptor) DeepCopyInto(out *Descriptor) {
+ *out = *in
+ out.Digest = in.Digest
+ if in.URLs != nil {
+ in, out := &in.URLs, &out.URLs
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.Annotations != nil {
+ in, out := &in.Annotations, &out.Annotations
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ if in.Platform != nil {
+ in, out := &in.Platform, &out.Platform
+ *out = new(Platform)
+ (*in).DeepCopyInto(*out)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Descriptor.
+func (in *Descriptor) DeepCopy() *Descriptor {
+ if in == nil {
+ return nil
+ }
+ out := new(Descriptor)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Hash) DeepCopyInto(out *Hash) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Hash.
+func (in *Hash) DeepCopy() *Hash {
+ if in == nil {
+ return nil
+ }
+ out := new(Hash)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HealthConfig) DeepCopyInto(out *HealthConfig) {
+ *out = *in
+ if in.Test != nil {
+ in, out := &in.Test, &out.Test
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthConfig.
+func (in *HealthConfig) DeepCopy() *HealthConfig {
+ if in == nil {
+ return nil
+ }
+ out := new(HealthConfig)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *History) DeepCopyInto(out *History) {
+ *out = *in
+ in.Created.DeepCopyInto(&out.Created)
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new History.
+func (in *History) DeepCopy() *History {
+ if in == nil {
+ return nil
+ }
+ out := new(History)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *IndexManifest) DeepCopyInto(out *IndexManifest) {
+ *out = *in
+ if in.Manifests != nil {
+ in, out := &in.Manifests, &out.Manifests
+ *out = make([]Descriptor, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Annotations != nil {
+ in, out := &in.Annotations, &out.Annotations
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IndexManifest.
+func (in *IndexManifest) DeepCopy() *IndexManifest {
+ if in == nil {
+ return nil
+ }
+ out := new(IndexManifest)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Manifest) DeepCopyInto(out *Manifest) {
+ *out = *in
+ in.Config.DeepCopyInto(&out.Config)
+ if in.Layers != nil {
+ in, out := &in.Layers, &out.Layers
+ *out = make([]Descriptor, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Annotations != nil {
+ in, out := &in.Annotations, &out.Annotations
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Manifest.
+func (in *Manifest) DeepCopy() *Manifest {
+ if in == nil {
+ return nil
+ }
+ out := new(Manifest)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Platform) DeepCopyInto(out *Platform) {
+ *out = *in
+ if in.OSFeatures != nil {
+ in, out := &in.OSFeatures, &out.OSFeatures
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Platform.
+func (in *Platform) DeepCopy() *Platform {
+ if in == nil {
+ return nil
+ }
+ out := new(Platform)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RootFS) DeepCopyInto(out *RootFS) {
+ *out = *in
+ if in.DiffIDs != nil {
+ in, out := &in.DiffIDs, &out.DiffIDs
+ *out = make([]Hash, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RootFS.
+func (in *RootFS) DeepCopy() *RootFS {
+ if in == nil {
+ return nil
+ }
+ out := new(RootFS)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Time.
+func (in *Time) DeepCopy() *Time {
+ if in == nil {
+ return nil
+ }
+ out := new(Time)
+ in.DeepCopyInto(out)
+ return out
+}
diff --git a/vendor/github.com/gregjones/httpcache/httpcache.go b/vendor/github.com/gregjones/httpcache/httpcache.go
index f6a2ec4a53..b41a63d1ff 100644
--- a/vendor/github.com/gregjones/httpcache/httpcache.go
+++ b/vendor/github.com/gregjones/httpcache/httpcache.go
@@ -416,14 +416,14 @@ func canStaleOnError(respHeaders, reqHeaders http.Header) bool {
func getEndToEndHeaders(respHeaders http.Header) []string {
// These headers are always hop-by-hop
hopByHopHeaders := map[string]struct{}{
- "Connection": struct{}{},
- "Keep-Alive": struct{}{},
- "Proxy-Authenticate": struct{}{},
- "Proxy-Authorization": struct{}{},
- "Te": struct{}{},
- "Trailers": struct{}{},
- "Transfer-Encoding": struct{}{},
- "Upgrade": struct{}{},
+ "Connection": {},
+ "Keep-Alive": {},
+ "Proxy-Authenticate": {},
+ "Proxy-Authorization": {},
+ "Te": {},
+ "Trailers": {},
+ "Transfer-Encoding": {},
+ "Upgrade": {},
}
for _, extra := range strings.Split(respHeaders.Get("connection"), ",") {
@@ -433,7 +433,7 @@ func getEndToEndHeaders(respHeaders http.Header) []string {
}
}
endToEndHeaders := []string{}
- for respHeader, _ := range respHeaders {
+ for respHeader := range respHeaders {
if _, ok := hopByHopHeaders[respHeader]; !ok {
endToEndHeaders = append(endToEndHeaders, respHeader)
}
diff --git a/vendor/github.com/gregjones/httpcache/test/test.go b/vendor/github.com/gregjones/httpcache/test/test.go
new file mode 100644
index 0000000000..c2ff257b1a
--- /dev/null
+++ b/vendor/github.com/gregjones/httpcache/test/test.go
@@ -0,0 +1,35 @@
+package test
+
+import (
+ "bytes"
+ "testing"
+
+ "github.com/gregjones/httpcache"
+)
+
+// Cache excercises a httpcache.Cache implementation.
+func Cache(t *testing.T, cache httpcache.Cache) {
+ key := "testKey"
+ _, ok := cache.Get(key)
+ if ok {
+ t.Fatal("retrieved key before adding it")
+ }
+
+ val := []byte("some bytes")
+ cache.Set(key, val)
+
+ retVal, ok := cache.Get(key)
+ if !ok {
+ t.Fatal("could not retrieve an element we just added")
+ }
+ if !bytes.Equal(retVal, val) {
+ t.Fatal("retrieved a different value than what we put in")
+ }
+
+ cache.Delete(key)
+
+ _, ok = cache.Get(key)
+ if ok {
+ t.Fatal("deleted key still present")
+ }
+}
diff --git a/vendor/github.com/imdario/mergo/map.go b/vendor/github.com/imdario/mergo/map.go
index 6ea38e636b..3f5afa83a1 100644
--- a/vendor/github.com/imdario/mergo/map.go
+++ b/vendor/github.com/imdario/mergo/map.go
@@ -72,6 +72,7 @@ func deepMap(dst, src reflect.Value, visited map[uintptr]*visit, depth int, conf
case reflect.Struct:
srcMap := src.Interface().(map[string]interface{})
for key := range srcMap {
+ config.overwriteWithEmptyValue = true
srcValue := srcMap[key]
fieldName := changeInitialCase(key, unicode.ToUpper)
dstElement := dst.FieldByName(fieldName)
diff --git a/vendor/github.com/imdario/mergo/merge.go b/vendor/github.com/imdario/mergo/merge.go
index 44f70a89d9..f8de6c5430 100644
--- a/vendor/github.com/imdario/mergo/merge.go
+++ b/vendor/github.com/imdario/mergo/merge.go
@@ -26,9 +26,10 @@ func hasExportedField(dst reflect.Value) (exported bool) {
}
type Config struct {
- Overwrite bool
- AppendSlice bool
- Transformers Transformers
+ Overwrite bool
+ AppendSlice bool
+ Transformers Transformers
+ overwriteWithEmptyValue bool
}
type Transformers interface {
@@ -40,6 +41,8 @@ type Transformers interface {
// short circuiting on recursive types.
func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int, config *Config) (err error) {
overwrite := config.Overwrite
+ overwriteWithEmptySrc := config.overwriteWithEmptyValue
+ config.overwriteWithEmptyValue = false
if !src.IsValid() {
return
@@ -74,7 +77,7 @@ func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int, co
}
}
} else {
- if dst.CanSet() && !isEmptyValue(src) && (overwrite || isEmptyValue(dst)) {
+ if dst.CanSet() && (!isEmptyValue(src) || overwriteWithEmptySrc) && (overwrite || isEmptyValue(dst)) {
dst.Set(src)
}
}
@@ -125,7 +128,7 @@ func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int, co
dstSlice = reflect.ValueOf(dstElement.Interface())
}
- if !isEmptyValue(src) && (overwrite || isEmptyValue(dst)) && !config.AppendSlice {
+ if (!isEmptyValue(src) || overwriteWithEmptySrc) && (overwrite || isEmptyValue(dst)) && !config.AppendSlice {
dstSlice = srcSlice
} else if config.AppendSlice {
if srcSlice.Type() != dstSlice.Type() {
@@ -136,7 +139,7 @@ func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int, co
dst.SetMapIndex(key, dstSlice)
}
}
- if dstElement.IsValid() && reflect.TypeOf(srcElement.Interface()).Kind() == reflect.Map {
+ if dstElement.IsValid() && !isEmptyValue(dstElement) && (reflect.TypeOf(srcElement.Interface()).Kind() == reflect.Map || reflect.TypeOf(srcElement.Interface()).Kind() == reflect.Slice) {
continue
}
@@ -151,7 +154,7 @@ func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int, co
if !dst.CanSet() {
break
}
- if !isEmptyValue(src) && (overwrite || isEmptyValue(dst)) && !config.AppendSlice {
+ if (!isEmptyValue(src) || overwriteWithEmptySrc) && (overwrite || isEmptyValue(dst)) && !config.AppendSlice {
dst.Set(src)
} else if config.AppendSlice {
if src.Type() != dst.Type() {
@@ -191,7 +194,7 @@ func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int, co
return
}
default:
- if dst.CanSet() && !isEmptyValue(src) && (overwrite || isEmptyValue(dst)) {
+ if dst.CanSet() && (!isEmptyValue(src) || overwriteWithEmptySrc) && (overwrite || isEmptyValue(dst)) {
dst.Set(src)
}
}
diff --git a/vendor/github.com/knative/build/cmd/controller/kodata/HEAD b/vendor/github.com/knative/build/cmd/controller/kodata/HEAD
new file mode 120000
index 0000000000..8f63681d36
--- /dev/null
+++ b/vendor/github.com/knative/build/cmd/controller/kodata/HEAD
@@ -0,0 +1 @@
+../../../.git/HEAD
\ No newline at end of file
diff --git a/vendor/github.com/knative/build/cmd/controller/main.go b/vendor/github.com/knative/build/cmd/controller/main.go
index 2ed50f3ce4..852708f835 100644
--- a/vendor/github.com/knative/build/cmd/controller/main.go
+++ b/vendor/github.com/knative/build/cmd/controller/main.go
@@ -21,9 +21,15 @@ import (
"log"
"time"
+ buildclientset "github.com/knative/build/pkg/client/clientset/versioned"
+ informers "github.com/knative/build/pkg/client/informers/externalversions"
+ "github.com/knative/build/pkg/reconciler/build"
+ "github.com/knative/build/pkg/reconciler/buildtemplate"
+ "github.com/knative/build/pkg/reconciler/clusterbuildtemplate"
cachingclientset "github.com/knative/caching/pkg/client/clientset/versioned"
cachinginformers "github.com/knative/caching/pkg/client/informers/externalversions"
"github.com/knative/pkg/configmap"
+ "github.com/knative/pkg/controller"
"github.com/knative/pkg/logging"
"github.com/knative/pkg/logging/logkey"
"github.com/knative/pkg/signals"
@@ -33,22 +39,12 @@ import (
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/tools/clientcmd"
-
- // Uncomment the following line to load the gcp plugin (only required to authenticate against GKE clusters).
- // _ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
-
- onclusterbuilder "github.com/knative/build/pkg/builder/cluster"
- buildclientset "github.com/knative/build/pkg/client/clientset/versioned"
- informers "github.com/knative/build/pkg/client/informers/externalversions"
- "github.com/knative/build/pkg/controller"
- "github.com/knative/build/pkg/reconciler/build"
- "github.com/knative/build/pkg/reconciler/buildtemplate"
- "github.com/knative/build/pkg/reconciler/clusterbuildtemplate"
)
const (
threadsPerController = 2
logLevelKey = "controller"
+ resyncPeriod = 10 * time.Hour
)
var (
@@ -95,20 +91,22 @@ func main() {
logger.Fatalf("Error building Caching clientset: %v", err)
}
- kubeInformerFactory := kubeinformers.NewSharedInformerFactory(kubeClient, time.Second*30)
- buildInformerFactory := informers.NewSharedInformerFactory(buildClient, time.Second*30)
- cachingInformerFactory := cachinginformers.NewSharedInformerFactory(cachingClient, time.Second*30)
+ kubeInformerFactory := kubeinformers.NewSharedInformerFactory(kubeClient, resyncPeriod)
+ buildInformerFactory := informers.NewSharedInformerFactory(buildClient, resyncPeriod)
+ cachingInformerFactory := cachinginformers.NewSharedInformerFactory(cachingClient, resyncPeriod)
buildInformer := buildInformerFactory.Build().V1alpha1().Builds()
buildTemplateInformer := buildInformerFactory.Build().V1alpha1().BuildTemplates()
clusterBuildTemplateInformer := buildInformerFactory.Build().V1alpha1().ClusterBuildTemplates()
imageInformer := cachingInformerFactory.Caching().V1alpha1().Images()
+ podInformer := kubeInformerFactory.Core().V1().Pods()
- bldr := onclusterbuilder.NewBuilder(kubeClient, kubeInformerFactory, logger)
-
+ timeoutHandler := build.NewTimeoutHandler(logger, kubeClient, buildClient, stopCh)
+ timeoutHandler.CheckTimeouts()
// Build all of our controllers, with the clients constructed above.
- controllers := []controller.Interface{
- build.NewController(logger, kubeClient, buildClient, buildInformer, buildTemplateInformer, clusterBuildTemplateInformer, bldr),
+ controllers := []*controller.Impl{
+ build.NewController(logger, kubeClient, podInformer, buildClient, buildInformer,
+ buildTemplateInformer, clusterBuildTemplateInformer, timeoutHandler),
clusterbuildtemplate.NewController(logger, kubeClient, buildClient,
cachingClient, clusterBuildTemplateInformer, imageInformer),
buildtemplate.NewController(logger, kubeClient, buildClient,
@@ -124,6 +122,7 @@ func main() {
buildTemplateInformer.Informer().HasSynced,
clusterBuildTemplateInformer.Informer().HasSynced,
imageInformer.Informer().HasSynced,
+ podInformer.Informer().HasSynced,
} {
if ok := cache.WaitForCacheSync(stopCh, synced); !ok {
logger.Fatalf("failed to wait for cache at index %v to sync", i)
diff --git a/vendor/github.com/knative/build/cmd/creds-init/kodata/HEAD b/vendor/github.com/knative/build/cmd/creds-init/kodata/HEAD
new file mode 120000
index 0000000000..8f63681d36
--- /dev/null
+++ b/vendor/github.com/knative/build/cmd/creds-init/kodata/HEAD
@@ -0,0 +1 @@
+../../../.git/HEAD
\ No newline at end of file
diff --git a/vendor/github.com/knative/build/cmd/creds-init/main.go b/vendor/github.com/knative/build/cmd/creds-init/main.go
index e79fa13f3c..e30163e785 100644
--- a/vendor/github.com/knative/build/cmd/creds-init/main.go
+++ b/vendor/github.com/knative/build/cmd/creds-init/main.go
@@ -28,7 +28,7 @@ func main() {
flag.Parse()
// ignore atomic level because we are not watching this config for any updates
- logger, _ := logging.NewLogger("", "git-init")
+ logger, _ := logging.NewLogger("", "creds-init")
defer logger.Sync()
builders := []credentials.Builder{dockercreds.NewBuilder(), gitcreds.NewBuilder()}
diff --git a/vendor/github.com/knative/build/cmd/git-init/kodata/HEAD b/vendor/github.com/knative/build/cmd/git-init/kodata/HEAD
new file mode 120000
index 0000000000..8f63681d36
--- /dev/null
+++ b/vendor/github.com/knative/build/cmd/git-init/kodata/HEAD
@@ -0,0 +1 @@
+../../../.git/HEAD
\ No newline at end of file
diff --git a/vendor/github.com/knative/build/cmd/git-init/main.go b/vendor/github.com/knative/build/cmd/git-init/main.go
index 2ba19f876e..e7173db0ca 100644
--- a/vendor/github.com/knative/build/cmd/git-init/main.go
+++ b/vendor/github.com/knative/build/cmd/git-init/main.go
@@ -20,6 +20,7 @@ import (
"flag"
"os"
"os/exec"
+ "path/filepath"
"github.com/knative/pkg/logging"
"go.uber.org/zap"
@@ -28,6 +29,7 @@ import (
var (
url = flag.String("url", "", "The url of the Git repository to initialize.")
revision = flag.String("revision", "", "The Git revision to make the repository HEAD")
+ path = flag.String("path", "", "Path of directory under which git repository will be copied")
)
func run(logger *zap.SugaredLogger, cmd string, args ...string) {
@@ -66,10 +68,26 @@ func main() {
logger.Fatalf("Unexpected error creating symlink: %v", err)
}
- run(logger, "git", "init")
+ dir, err := os.Getwd()
+ if err != nil {
+ logger.Errorf("Failed to get current dir", err)
+ }
+
+ if *path != "" {
+ runOrFail(logger, "git", "init", *path)
+ path := filepath.Join(dir, *path)
+ if err := os.Chdir(path); err != nil {
+ logger.Fatalf("Failed to change directory with path %s; err %v", path, err)
+ }
+ // update dir variable with new path
+ dir = path
+ } else {
+ run(logger, "git", "init")
+ }
+
run(logger, "git", "remote", "add", "origin", *url)
runOrFail(logger, "git", "fetch", "--depth=1", "--recurse-submodules=yes", "origin", *revision)
runOrFail(logger, "git", "reset", "--hard", "FETCH_HEAD")
- logger.Infof("Successfully cloned %q @ %q", *url, *revision)
+ logger.Infof("Successfully cloned %q @ %q in path %q", *url, *revision, dir)
}
diff --git a/vendor/github.com/knative/build/cmd/logs/kodata/HEAD b/vendor/github.com/knative/build/cmd/logs/kodata/HEAD
new file mode 120000
index 0000000000..8f63681d36
--- /dev/null
+++ b/vendor/github.com/knative/build/cmd/logs/kodata/HEAD
@@ -0,0 +1 @@
+../../../.git/HEAD
\ No newline at end of file
diff --git a/vendor/github.com/knative/build/cmd/nop/kodata/HEAD b/vendor/github.com/knative/build/cmd/nop/kodata/HEAD
new file mode 120000
index 0000000000..8f63681d36
--- /dev/null
+++ b/vendor/github.com/knative/build/cmd/nop/kodata/HEAD
@@ -0,0 +1 @@
+../../../.git/HEAD
\ No newline at end of file
diff --git a/vendor/github.com/knative/build/cmd/webhook/kodata/HEAD b/vendor/github.com/knative/build/cmd/webhook/kodata/HEAD
new file mode 120000
index 0000000000..8f63681d36
--- /dev/null
+++ b/vendor/github.com/knative/build/cmd/webhook/kodata/HEAD
@@ -0,0 +1 @@
+../../../.git/HEAD
\ No newline at end of file
diff --git a/vendor/github.com/knative/build/cmd/webhook/main.go b/vendor/github.com/knative/build/cmd/webhook/main.go
index e78ec9252f..6aa40dff77 100644
--- a/vendor/github.com/knative/build/cmd/webhook/main.go
+++ b/vendor/github.com/knative/build/cmd/webhook/main.go
@@ -31,7 +31,7 @@ import (
"k8s.io/apimachinery/pkg/runtime/schema"
"github.com/knative/build/pkg/apis/build/v1alpha1"
- "github.com/knative/build/pkg/system"
+ "github.com/knative/pkg/system"
)
const (
@@ -72,7 +72,7 @@ func main() {
pkgoptions := webhook.ControllerOptions{
ServiceName: "build-webhook",
DeploymentName: "build-webhook",
- Namespace: system.Namespace,
+ Namespace: system.Namespace(),
Port: 443,
SecretName: "build-webhook-certs",
WebhookName: "webhook.build.knative.dev",
diff --git a/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/build_template_types.go b/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/build_template_types.go
index 20d78c0307..fc96daa97f 100644
--- a/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/build_template_types.go
+++ b/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/build_template_types.go
@@ -54,12 +54,11 @@ var _ apis.Defaultable = (*BuildTemplate)(nil)
// BuildTemplateSpec is the spec for a BuildTemplate.
type BuildTemplateSpec struct {
- // TODO: Generation does not work correctly with CRD. They are scrubbed
- // by the APIserver (https://github.com/kubernetes/kubernetes/issues/58778)
- // So, we add Generation here. Once that gets fixed, remove this and use
- // ObjectMeta.Generation instead.
+ // TODO(dprotaso) Metadata.Generation should increment so we
+ // can drop this property when conversion webhooks enable us
+ // to migrate
// +optional
- Generation int64 `json:"generation,omitempty"`
+ DeprecatedGeneration int64 `json:"generation,omitempty"`
// Parameters defines the parameters that can be populated in a template.
Parameters []ParameterSpec `json:"parameters,omitempty"`
diff --git a/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/build_template_validation.go b/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/build_template_validation.go
index cd3464c1fb..3cee4b506e 100644
--- a/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/build_template_validation.go
+++ b/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/build_template_validation.go
@@ -19,6 +19,7 @@ package v1alpha1
import (
"github.com/knative/pkg/apis"
corev1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/util/sets"
)
// Validate build template
@@ -44,19 +45,19 @@ func (b *BuildTemplateSpec) Validate() *apis.FieldError {
// steps of the build ot build template.
func ValidateVolumes(volumes []corev1.Volume) *apis.FieldError {
// Build must not duplicate volume names.
- vols := map[string]struct{}{}
+ vols := sets.NewString()
for _, v := range volumes {
- if _, ok := vols[v.Name]; ok {
- return apis.ErrMultipleOneOf("volumeName")
+ if vols.Has(v.Name) {
+ return apis.ErrMultipleOneOf("name")
}
- vols[v.Name] = struct{}{}
+ vols.Insert(v.Name)
}
return nil
}
func validateSteps(steps []corev1.Container) *apis.FieldError {
// Build must not duplicate step names.
- names := map[string]struct{}{}
+ names := sets.NewString()
for _, s := range steps {
if s.Image == "" {
return apis.ErrMissingField("Image")
@@ -65,22 +66,22 @@ func validateSteps(steps []corev1.Container) *apis.FieldError {
if s.Name == "" {
continue
}
- if _, ok := names[s.Name]; ok {
- return apis.ErrMultipleOneOf("stepName")
+ if names.Has(s.Name) {
+ return apis.ErrMultipleOneOf("name")
}
- names[s.Name] = struct{}{}
+ names.Insert(s.Name)
}
return nil
}
func validateParameters(params []ParameterSpec) *apis.FieldError {
// Template must not duplicate parameter names.
- seen := map[string]struct{}{}
+ seen := sets.NewString()
for _, p := range params {
- if _, ok := seen[p.Name]; ok {
+ if seen.Has(p.Name) {
return apis.ErrInvalidKeyName("ParamName", "b.spec.params")
}
- seen[p.Name] = struct{}{}
+ seen.Insert(p.Name)
}
return nil
}
diff --git a/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/build_types.go b/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/build_types.go
index 2d484b877e..acfbca4fa7 100644
--- a/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/build_types.go
+++ b/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/build_types.go
@@ -27,7 +27,6 @@ import (
)
// +genclient
-// +genclient:noStatus
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// Build represents a build of a container image. A Build is made up of a
@@ -50,30 +49,38 @@ var _ apis.Defaultable = (*Build)(nil)
// BuildSpec is the spec for a Build resource.
type BuildSpec struct {
- // TODO: Generation does not work correctly with CRD. They are scrubbed
- // by the APIserver (https://github.com/kubernetes/kubernetes/issues/58778)
- // So, we add Generation here. Once that gets fixed, remove this and use
- // ObjectMeta.Generation instead.
+ // TODO(dprotaso) Metadata.Generation should increment so we
+ // can drop this property when conversion webhooks enable us
+ // to migrate
// +optional
- Generation int64 `json:"generation,omitempty"`
+ DeprecatedGeneration int64 `json:"generation,omitempty"`
// Source specifies the input to the build.
+ // +optional
Source *SourceSpec `json:"source,omitempty"`
+ // Sources specifies the inputs to the build.
+ // +optional
+ Sources []SourceSpec `json:"sources,omitempty"`
+
// Steps are the steps of the build; each step is run sequentially with the
// source mounted into /workspace.
+ // +optional
Steps []corev1.Container `json:"steps,omitempty"`
// Volumes is a collection of volumes that are available to mount into the
// steps of the build.
+ // +optional
Volumes []corev1.Volume `json:"volumes,omitempty"`
// The name of the service account as which to run this build.
+ // +optional
ServiceAccountName string `json:"serviceAccountName,omitempty"`
// Template, if specified, references a BuildTemplate resource to use to
// populate fields in the build, and optional Arguments to pass to the
// template. The default Kind of template is BuildTemplate
+ // +optional
Template *TemplateInstantiationSpec `json:"template,omitempty"`
// NodeSelector is a selector which must be true for the pod to fit on a node.
@@ -91,8 +98,21 @@ type BuildSpec struct {
// If specified, the pod's scheduling constraints
// +optional
Affinity *corev1.Affinity `json:"affinity,omitempty"`
+
+ // Used for cancelling a job (and maybe more later on)
+ // +optional
+ Status BuildSpecStatus
}
+// BuildSpecStatus defines the build spec status the user can provide
+type BuildSpecStatus string
+
+const (
+ // BuildSpecStatusCancelled indicates that the user wants to cancel the build,
+ // if not already cancelled or terminated
+ BuildSpecStatusCancelled = "BuildCancelled"
+)
+
// TemplateKind defines the type of BuildTemplate used by the build.
type TemplateKind string
@@ -107,20 +127,22 @@ const (
// a Build.
type TemplateInstantiationSpec struct {
// Name references the BuildTemplate resource to use.
- //
// The template is assumed to exist in the Build's namespace.
Name string `json:"name"`
// The Kind of the template to be used, possible values are BuildTemplate
// or ClusterBuildTemplate. If nothing is specified, the default if is BuildTemplate
+ // +optional
Kind TemplateKind `json:"kind,omitempty"`
// Arguments, if specified, lists values that should be applied to the
// parameters specified by the template.
+ // +optional
Arguments []ArgumentSpec `json:"arguments,omitempty"`
// Env, if specified will provide variables to all build template steps.
// This will override any of the template's steps environment variables.
+ // +optional
Env []corev1.EnvVar `json:"env,omitempty"`
}
@@ -137,20 +159,38 @@ type ArgumentSpec struct {
// SourceSpec defines the input to the Build
type SourceSpec struct {
// Git represents source in a Git repository.
+ // +optional
Git *GitSourceSpec `json:"git,omitempty"`
// GCS represents source in Google Cloud Storage.
+ // +optional
GCS *GCSSourceSpec `json:"gcs,omitempty"`
// Custom indicates that source should be retrieved using a custom
// process defined in a container invocation.
+ // +optional
Custom *corev1.Container `json:"custom,omitempty"`
// SubPath specifies a path within the fetched source which should be
// built. This option makes parent directories *inaccessible* to the
// build steps. (The specific source type may, in fact, not even fetch
// files not in the SubPath.)
+ // +optional
SubPath string `json:"subPath,omitempty"`
+
+ // Name is the name of source. This field is used to uniquely identify the
+ // source init containers
+ // Restrictions on the allowed charatcers
+ // Must be a basename (no /)
+ // Must be a valid DNS name (only alphanumeric characters, no _)
+ // https://tools.ietf.org/html/rfc1123#section-2
+ // +optional
+ Name string `json:"name,omitempty"`
+
+ // TargetPath is the path in workspace directory where the source will be copied.
+ // TargetPath is optional and if its not set source will be copied under workspace.
+ // TargetPath should not be set for custom source.
+ TargetPath string `json:"targetPath,omitempty"`
}
// GitSourceSpec describes a Git repo source input to the Build.
@@ -198,25 +238,35 @@ const (
// BuildStatus is the status for a Build resource
type BuildStatus struct {
+ // +optional
Builder BuildProvider `json:"builder,omitempty"`
// Cluster provides additional information if the builder is Cluster.
+ // +optional
Cluster *ClusterSpec `json:"cluster,omitempty"`
+
// Google provides additional information if the builder is Google.
+ // +optional
Google *GoogleSpec `json:"google,omitempty"`
// StartTime is the time the build is actually started.
- StartTime metav1.Time `json:"startTime,omitEmpty"`
+ // +optional
+ StartTime *metav1.Time `json:"startTime,omitempty"`
+
// CompletionTime is the time the build completed.
- CompletionTime metav1.Time `json:"completionTime,omitEmpty"`
+ // +optional
+ CompletionTime *metav1.Time `json:"completionTime,omitempty"`
// StepStates describes the state of each build step container.
- StepStates []corev1.ContainerState `json:"stepStates,omitEmpty"`
+ // +optional
+ StepStates []corev1.ContainerState `json:"stepStates,omitempty"`
// StepsCompleted lists the name of build steps completed.
- StepsCompleted []string `json:"stepsCompleted"`
+ // +optional
+ StepsCompleted []string `json:"stepsCompleted",omitempty`
// Conditions describes the set of conditions of this build.
+ // +optional
Conditions duckv1alpha1.Conditions `json:"conditions,omitempty"`
}
@@ -244,6 +294,8 @@ type GoogleSpec struct {
// will be False.
const BuildSucceeded = duckv1alpha1.ConditionSucceeded
+const BuildCancelled duckv1alpha1.ConditionType = "Cancelled"
+
var buildCondSet = duckv1alpha1.NewBatchConditionSet()
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
diff --git a/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/build_validation.go b/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/build_validation.go
index 04792a42f6..d15c4544ab 100644
--- a/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/build_validation.go
+++ b/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/build_validation.go
@@ -17,7 +17,6 @@ limitations under the License.
package v1alpha1
import (
- "fmt"
"time"
"github.com/knative/pkg/apis"
@@ -31,41 +30,33 @@ func (b *Build) Validate() *apis.FieldError {
// Validate for build spec
func (bs *BuildSpec) Validate() *apis.FieldError {
if bs.Template == nil && len(bs.Steps) == 0 {
- return apis.ErrMissingField("b.spec.template").Also(apis.ErrMissingField("b.spec.steps"))
+ return apis.ErrMissingOneOf("template", "steps")
}
if bs.Template != nil && len(bs.Steps) > 0 {
- return apis.ErrMissingField("b.spec.template").Also(apis.ErrMissingField("b.spec.steps"))
- }
-
- if bs.Template != nil && bs.Template.Name == "" {
- apis.ErrMissingField("build.spec.template.name")
+ return apis.ErrMultipleOneOf("template", "steps")
}
// If a build specifies a template, all the template's parameters without
// defaults must be satisfied by the build's parameters.
if bs.Template != nil {
- return bs.Template.Validate()
- }
- if err := ValidateVolumes(bs.Volumes); err != nil {
- return err
- }
- if err := bs.validateTimeout(); err != nil {
- return err
+ return bs.Template.Validate().ViaField("template")
}
- if err := validateSteps(bs.Steps); err != nil {
- return err
- }
- return nil
+ // Below method potentially has a bug:
+ // It does not Validate if only a "Source" has been set, it only validates if multiple sources have been set
+ return bs.validateSources().
+ Also(ValidateVolumes(bs.Volumes).ViaField("volumes")).
+ Also(bs.validateTimeout()).
+ Also(validateSteps(bs.Steps).ViaField("steps"))
}
-// Validate templateKind
+// Validate template
func (b *TemplateInstantiationSpec) Validate() *apis.FieldError {
if b == nil {
return nil
}
if b.Name == "" {
- return apis.ErrMissingField("build.spec.template.name")
+ return apis.ErrMissingField("name")
}
if b.Kind != "" {
switch b.Kind {
@@ -73,22 +64,68 @@ func (b *TemplateInstantiationSpec) Validate() *apis.FieldError {
BuildTemplateKind:
return nil
default:
- return apis.ErrInvalidValue(string(b.Kind), apis.CurrentField)
+ return apis.ErrInvalidValue(string(b.Kind), "kind")
}
}
return nil
}
-func (bt *BuildSpec) validateTimeout() *apis.FieldError {
- if bt.Timeout == nil {
+// Validate build timeout
+func (bs *BuildSpec) validateTimeout() *apis.FieldError {
+ if bs.Timeout == nil {
return nil
}
maxTimeout := time.Duration(24 * time.Hour)
- if bt.Timeout.Duration > maxTimeout {
- return apis.ErrInvalidValue(fmt.Sprintf("%s should be < 24h", bt.Timeout), "b.spec.timeout")
- } else if bt.Timeout.Duration < 0 {
- return apis.ErrInvalidValue(fmt.Sprintf("%s should be > 0", bt.Timeout), "b.spec.timeout")
+ if bs.Timeout.Duration > maxTimeout || bs.Timeout.Duration < 0 {
+ return apis.ErrOutOfBoundsValue(bs.Timeout.Duration.String(), "0", "24", "timeout")
+ }
+ return nil
+}
+
+// Validate source
+func (bs BuildSpec) validateSources() *apis.FieldError {
+ var subPathExists bool
+ var emptyTargetPath bool
+ names := map[string]string{}
+ pathtree := pathTree{
+ nodeMap: map[string]map[string]string{},
+ }
+
+ // Both source and sources cannot be defined in build
+ if len(bs.Sources) > 0 && bs.Source != nil {
+ return apis.ErrMultipleOneOf("source", "sources")
+ }
+ for _, source := range bs.Sources {
+ // Check all source have unique names
+ if _, ok := names[source.Name]; ok {
+ return apis.ErrMultipleOneOf("name").ViaField("sources")
+ }
+ // Multiple sources cannot have subpath defined
+ if source.SubPath != "" {
+ if subPathExists {
+ return apis.ErrMultipleOneOf("subpath").ViaField("sources")
+ }
+ subPathExists = true
+ }
+ names[source.Name] = ""
+
+ if source.TargetPath == "" {
+ if source.Custom != nil {
+ continue
+ }
+ if emptyTargetPath {
+ return apis.ErrInvalidValue("Empty Target Path", "targetPath").ViaField("sources")
+ }
+ emptyTargetPath = true
+ } else {
+ if source.Custom != nil {
+ return apis.ErrInvalidValue(source.TargetPath, "targetPath").ViaField("sources")
+ }
+ if err := insertNode(source.TargetPath, pathtree).ViaField("sources"); err != nil {
+ return err
+ }
+ }
}
return nil
}
diff --git a/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/target_path_validation.go b/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/target_path_validation.go
new file mode 100644
index 0000000000..3439a87eba
--- /dev/null
+++ b/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/target_path_validation.go
@@ -0,0 +1,69 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+package v1alpha1
+
+import (
+ "strings"
+
+ "github.com/knative/pkg/apis"
+)
+
+type pathTree struct {
+ nodeMap map[string]map[string]string
+}
+
+// insertNode functions checks the path does not have overlap with existing
+// paths in path.nodeMap. If not it creates a key for path and adds
+func insertNode(path string, pathtree pathTree) *apis.FieldError {
+ err := &apis.FieldError{
+ Message: "Overlapping Target Paths",
+ Paths: []string{"targetPath"},
+ }
+ path = strings.Trim(path, "/")
+ parts := strings.Split(path, "/")
+
+ for nodePath, nodeMap := range pathtree.nodeMap {
+ if len(nodeMap) > len(parts) {
+ if strings.HasPrefix(nodePath, path) {
+ return err
+ }
+ }
+
+ if len(nodeMap) == len(parts) {
+ if path == nodePath {
+ return err
+ }
+ }
+ if len(nodeMap) < len(parts) {
+ if strings.HasPrefix(path, nodePath) {
+ return err
+ }
+ }
+ }
+ // path is trimmed with "/"
+ addNode(path, pathtree)
+ return nil
+}
+
+func addNode(path string, tree pathTree) {
+ parts := strings.Split(path, "/")
+ nm := map[string]string{}
+
+ for _, part := range parts {
+ nm[part] = part
+ }
+ tree.nodeMap[path] = nm
+}
diff --git a/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/zz_generated.deepcopy.go
index 0880074fb1..fe29250327 100644
--- a/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/zz_generated.deepcopy.go
+++ b/vendor/github.com/knative/build/pkg/apis/build/v1alpha1/zz_generated.deepcopy.go
@@ -116,6 +116,13 @@ func (in *BuildSpec) DeepCopyInto(out *BuildSpec) {
(*in).DeepCopyInto(*out)
}
}
+ if in.Sources != nil {
+ in, out := &in.Sources, &out.Sources
+ *out = make([]SourceSpec, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
if in.Steps != nil {
in, out := &in.Steps, &out.Steps
*out = make([]v1.Container, len(*in))
@@ -198,8 +205,24 @@ func (in *BuildStatus) DeepCopyInto(out *BuildStatus) {
**out = **in
}
}
- in.StartTime.DeepCopyInto(&out.StartTime)
- in.CompletionTime.DeepCopyInto(&out.CompletionTime)
+ if in.StartTime != nil {
+ in, out := &in.StartTime, &out.StartTime
+ if *in == nil {
+ *out = nil
+ } else {
+ *out = new(meta_v1.Time)
+ (*in).DeepCopyInto(*out)
+ }
+ }
+ if in.CompletionTime != nil {
+ in, out := &in.CompletionTime, &out.CompletionTime
+ if *in == nil {
+ *out = nil
+ } else {
+ *out = new(meta_v1.Time)
+ (*in).DeepCopyInto(*out)
+ }
+ }
if in.StepStates != nil {
in, out := &in.StepStates, &out.StepStates
*out = make([]v1.ContainerState, len(*in))
diff --git a/vendor/github.com/knative/build/pkg/builder/cluster/builder.go b/vendor/github.com/knative/build/pkg/builder/cluster/builder.go
deleted file mode 100644
index 5c99cbacb3..0000000000
--- a/vendor/github.com/knative/build/pkg/builder/cluster/builder.go
+++ /dev/null
@@ -1,349 +0,0 @@
-/*
-Copyright 2018 The Knative Authors
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-// Package cluster provides a Builder that runs workloads on-cluster.
-package cluster
-
-import (
- "fmt"
- "sync"
-
- "github.com/knative/build/pkg/builder/cluster/convert"
- "go.uber.org/zap"
- corev1 "k8s.io/api/core/v1"
- "k8s.io/apimachinery/pkg/api/errors"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- kubeinformers "k8s.io/client-go/informers"
- "k8s.io/client-go/kubernetes"
- "k8s.io/client-go/tools/cache"
-
- v1alpha1 "github.com/knative/build/pkg/apis/build/v1alpha1"
- buildercommon "github.com/knative/build/pkg/builder"
- duckv1alpha1 "github.com/knative/pkg/apis/duck/v1alpha1"
-)
-
-type operation struct {
- builder *builder
- namespace string
- name string
- startTime metav1.Time
- statuses []corev1.ContainerStatus
-}
-
-func (op *operation) Name() string {
- return op.name
-}
-
-func (op *operation) Checkpoint(build *v1alpha1.Build, status *v1alpha1.BuildStatus) error {
- status.Builder = v1alpha1.ClusterBuildProvider
- if status.Cluster == nil {
- status.Cluster = &v1alpha1.ClusterSpec{}
- }
- status.Cluster.Namespace = op.namespace
- status.Cluster.PodName = op.Name()
- status.StartTime = op.startTime
- status.StepStates = nil
- status.StepsCompleted = nil
-
- // Always ignore the first pod status, which is creds-init.
- skip := 1
- if build.Spec.Source != nil {
- // If the build specifies source, skip another container status, which
- // is the source-fetching container.
- skip++
- }
- if skip > len(op.statuses) {
- skip = 0
- }
-
- for _, s := range op.statuses[skip:] {
- if s.State.Terminated != nil {
- status.StepsCompleted = append(status.StepsCompleted, s.Name)
- }
- status.StepStates = append(status.StepStates, s.State)
- }
- status.SetCondition(&duckv1alpha1.Condition{
- Type: v1alpha1.BuildSucceeded,
- Status: corev1.ConditionUnknown,
- Reason: "Building",
- })
- return nil
-}
-
-func (op *operation) Terminate() error {
- if err := op.builder.kubeclient.CoreV1().Pods(op.namespace).Delete(op.name, &metav1.DeleteOptions{}); err != nil && !errors.IsNotFound(err) {
- return err
- }
- return nil
-}
-
-func (op *operation) Wait() (*v1alpha1.BuildStatus, error) {
- podCh := make(chan *corev1.Pod)
- defer close(podCh)
-
- // Ask the builder's watch loop to send a message on our channel when it sees our Pod complete.
- if err := op.builder.registerDoneCallback(op.namespace, op.name, podCh); err != nil {
- return nil, err
- }
-
- op.builder.logger.Infof("Waiting for %q", op.Name())
- pod := <-podCh
- op.statuses = pod.Status.InitContainerStatuses
-
- states := []corev1.ContainerState{}
- stepsCompleted := []string{}
- for _, status := range pod.Status.InitContainerStatuses {
- if status.State.Terminated != nil {
- stepsCompleted = append(stepsCompleted, status.Name)
- }
- states = append(states, status.State)
- }
-
- bs := &v1alpha1.BuildStatus{
- Builder: v1alpha1.ClusterBuildProvider,
- Cluster: &v1alpha1.ClusterSpec{
- Namespace: op.namespace,
- PodName: op.Name(),
- },
- StartTime: op.startTime,
- CompletionTime: metav1.Now(),
- StepStates: states,
- StepsCompleted: stepsCompleted,
- }
-
- if pod.Status.Phase == corev1.PodFailed {
- msg := getFailureMessage(pod)
- bs.SetCondition(&duckv1alpha1.Condition{
- Type: v1alpha1.BuildSucceeded,
- Status: corev1.ConditionFalse,
- Message: msg,
- })
- } else if pod.Status.Phase == corev1.PodPending {
- msg := getWaitingMessage(pod)
- bs.SetCondition(&duckv1alpha1.Condition{
- Type: v1alpha1.BuildSucceeded,
- Status: corev1.ConditionUnknown,
- Message: "Pending",
- Reason: msg,
- })
- } else {
- bs.SetCondition(&duckv1alpha1.Condition{
- Type: v1alpha1.BuildSucceeded,
- Status: corev1.ConditionTrue,
- })
- }
- return bs, nil
-}
-
-type build struct {
- builder *builder
- body *corev1.Pod
-}
-
-func (b *build) Execute() (buildercommon.Operation, error) {
- pod, err := b.builder.kubeclient.CoreV1().Pods(b.body.Namespace).Create(b.body)
- if err != nil {
- return nil, err
- }
- return &operation{
- builder: b.builder,
- namespace: pod.Namespace,
- name: pod.Name,
- startTime: metav1.Now(),
- statuses: pod.Status.InitContainerStatuses,
- }, nil
-}
-
-// NewBuilder constructs an on-cluster builder.Interface for executing Build custom resources.
-func NewBuilder(kubeclient kubernetes.Interface, kubeinformers kubeinformers.SharedInformerFactory, logger *zap.SugaredLogger) buildercommon.Interface {
- b := &builder{
- kubeclient: kubeclient,
- callbacks: make(map[string]chan *corev1.Pod),
- logger: logger,
- }
-
- podInformer := kubeinformers.Core().V1().Pods()
- podInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
- AddFunc: b.addPodEvent,
- UpdateFunc: b.updatePodEvent,
- DeleteFunc: b.deletePodEvent,
- })
-
- return b
-}
-
-type builder struct {
- kubeclient kubernetes.Interface
-
- // mux guards modifications to callbacks
- mux sync.Mutex
- // callbacks is keyed by Pod names and stores the channel on which to
- // send a completion notification when we see that Pod complete.
- // On success, an empty string is sent.
- // On failure, the Message of the failure PodCondition is sent.
- callbacks map[string]chan *corev1.Pod
- logger *zap.SugaredLogger
-}
-
-func (b *builder) Builder() v1alpha1.BuildProvider {
- return v1alpha1.ClusterBuildProvider
-}
-
-func (b *builder) Validate(u *v1alpha1.Build) error {
- _, err := convert.FromCRD(u, b.kubeclient)
- return err
-}
-
-func (b *builder) BuildFromSpec(u *v1alpha1.Build) (buildercommon.Build, error) {
- bld, err := convert.FromCRD(u, b.kubeclient)
- if err != nil {
- return nil, err
- }
- return &build{
- builder: b,
- body: bld,
- }, nil
-}
-
-func (b *builder) OperationFromStatus(status *v1alpha1.BuildStatus) (buildercommon.Operation, error) {
- if status.Builder != v1alpha1.ClusterBuildProvider {
- return nil, fmt.Errorf("not a 'Cluster' builder: %v", status.Builder)
- }
- if status.Cluster == nil {
- return nil, fmt.Errorf("status.cluster cannot be empty: %v", status)
- }
- var statuses []corev1.ContainerStatus
- for _, state := range status.StepStates {
- statuses = append(statuses, corev1.ContainerStatus{State: state})
- }
- return &operation{
- builder: b,
- namespace: status.Cluster.Namespace,
- name: status.Cluster.PodName,
- startTime: status.StartTime,
- statuses: statuses,
- }, nil
-}
-
-func getKey(namespace, name string) string {
- return fmt.Sprintf("%s/%s", namespace, name)
-}
-
-// registerDoneCallback directs the builders to send a completion notification on podCh
-// when the named Pod completes. An empty message is sent on successful completion.
-func (b *builder) registerDoneCallback(namespace, name string, podCh chan *corev1.Pod) error {
- b.mux.Lock()
- defer b.mux.Unlock()
- k := getKey(namespace, name)
- if _, ok := b.callbacks[k]; ok {
- return fmt.Errorf("another process is already waiting on %q", k)
- }
- b.callbacks[k] = podCh
- return nil
-}
-
-// addPodEvent handles the informer's AddFunc event for Pods.
-func (b *builder) addPodEvent(obj interface{}) {
- pod := obj.(*corev1.Pod)
- ownerRef := metav1.GetControllerOf(pod)
-
- // If this object is not owned by a Build, we should not do anything more with it.
- if ownerRef == nil || ownerRef.Kind != "Build" {
- return
- }
-
- // Once we have a Pod to act on, take the lock and see if anyone's watching.
- b.mux.Lock()
- defer b.mux.Unlock()
- key := getKey(pod.Namespace, pod.Name)
-
- if ch, ok := b.callbacks[key]; ok {
- // Send the person listening the message.
- ch <- pod
- delete(b.callbacks, key)
- } else {
- b.logger.Errorf("Saw %q update, but nothing was watching for it!", key)
- }
-
- //Remove this callback from our map
- if isDone(pod) {
- b.logger.Debugf("Build finished, deleting the key %q", key)
- delete(b.callbacks, key)
- }
-}
-
-// updatePodEvent handles the informer's UpdateFunc event for Pods.
-func (b *builder) updatePodEvent(old, new interface{}) {
- // Same as addPodEvent(new)
- b.addPodEvent(new)
-}
-
-// deletePodEvent handles the informer's DeleteFunc event for Pods.
-func (b *builder) deletePodEvent(obj interface{}) {
- // TODO(mattmoor): If a pod gets deleted and someone's watching, we should propagate our
- // own error message so that we don't leak a go routine waiting forever.
- b.logger.Errorf("NYI: delete event for: %v", obj)
-}
-
-func isDone(pod *corev1.Pod) bool {
- return pod.Status.Phase == corev1.PodSucceeded ||
- pod.Status.Phase == corev1.PodFailed
-}
-
-func getWaitingMessage(pod *corev1.Pod) string {
- // First, try to surface reason for pending/unknown about the actual build step.
- for _, status := range pod.Status.InitContainerStatuses {
- wait := status.State.Waiting
- if wait != nil && wait.Message != "" {
- return fmt.Sprintf("build step %q is pending with reason %q",
- status.Name, wait.Message)
- }
- }
- // Try to surface underlying reason by inspecting pod's recent status if condition is not true
- for i, podStatus := range pod.Status.Conditions {
- if podStatus.Status != corev1.ConditionTrue {
- return fmt.Sprintf("pod status %q:%q; message: %q",
- pod.Status.Conditions[i].Type,
- pod.Status.Conditions[i].Status,
- pod.Status.Conditions[i].Message)
- }
- }
- // Next, return the Pod's status message if it has one.
- if pod.Status.Message != "" {
- return pod.Status.Message
- }
-
- // Lastly fall back on a generic pending message.
- return "Pending"
-}
-
-func getFailureMessage(pod *corev1.Pod) string {
- // First, try to surface an error about the actual build step that failed.
- for _, status := range pod.Status.InitContainerStatuses {
- term := status.State.Terminated
- if term != nil && term.ExitCode != 0 {
- return fmt.Sprintf("build step %q exited with code %d (image: %q); for logs run: kubectl -n %s logs %s -c %s",
- status.Name, term.ExitCode, status.ImageID,
- pod.Namespace, pod.Name, status.Name)
- }
- }
- // Next, return the Pod's status message if it has one.
- if pod.Status.Message != "" {
- return pod.Status.Message
- }
- // Lastly fall back on a generic error message.
- return "build failed for unspecified reasons."
-}
diff --git a/vendor/github.com/knative/build/pkg/builder/interface.go b/vendor/github.com/knative/build/pkg/builder/interface.go
deleted file mode 100644
index 96555d09ae..0000000000
--- a/vendor/github.com/knative/build/pkg/builder/interface.go
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
-Copyright 2018 The Knative Authors
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package builder
-
-import (
- "time"
-
- corev1 "k8s.io/api/core/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-
- v1alpha1 "github.com/knative/build/pkg/apis/build/v1alpha1"
-)
-
-// Operation defines the interface for interacting with an Operation of a particular BuildProvider.
-type Operation interface {
- // Name provides the unique name for this operation, see OperationFromStatus.
- Name() string
-
- // Checkpoint augments the provided BuildStatus with sufficient state to be
- // restored by OperationFromStatus on an appropriate BuildProvider.
- //
- // This takes into account necessary information about the provided Build.
- Checkpoint(*v1alpha1.Build, *v1alpha1.BuildStatus) error
-
- // Wait blocks until the Operation completes, returning either a status for the build or an error.
- // TODO(mattmoor): This probably shouldn't be BuildStatus, but some sort of smaller-scope thing.
- Wait() (*v1alpha1.BuildStatus, error)
-
- // Terminate cleans up this particular operation and returns an error if it fails
- Terminate() error
-}
-
-// Build defines the interface for launching a build and getting an Operation by which to track it to completion.
-type Build interface {
- // Execute launches this particular build and returns an Operation to track it's progress.
- Execute() (Operation, error)
-}
-
-// Interface defines the set of operations that all builders must implement.
-type Interface interface {
- // Which builder are we?
- Builder() v1alpha1.BuildProvider
-
- // Validate a Build for this flavor of builder.
- Validate(*v1alpha1.Build) error
-
- // Construct a Build for this flavor of builder from our CRD specification.
- BuildFromSpec(*v1alpha1.Build) (Build, error)
-
- // Construct an Operation for this flavor of builder from a BuildStatus.
- OperationFromStatus(*v1alpha1.BuildStatus) (Operation, error)
-}
-
-// IsDone returns true if the build's status indicates the build is done.
-func IsDone(status *v1alpha1.BuildStatus) bool {
- if status == nil || len(status.Conditions) == 0 {
- return false
- }
- for _, cond := range status.Conditions {
- if cond.Type == v1alpha1.BuildSucceeded {
- return cond.Status != corev1.ConditionUnknown
- }
- }
- return false
-}
-
-// IsTimeout returns true if the build's execution time is greater than
-// specified build spec timeout.
-func IsTimeout(status *v1alpha1.BuildStatus, buildTimeout *metav1.Duration) bool {
- var timeout time.Duration
- var defaultTimeout = 10 * time.Minute
-
- if status == nil {
- return false
- }
-
- if buildTimeout == nil {
- // Set default timeout to 10 minute if build timeout is not set
- timeout = defaultTimeout
- } else {
- timeout = buildTimeout.Duration
- }
-
- // If build has not started timeout, startTime should be zero.
- if status.StartTime.Time.IsZero() {
- return false
- }
- return time.Since(status.StartTime.Time).Seconds() > timeout.Seconds()
-}
-
-// ErrorMessage returns the error message from the status.
-func ErrorMessage(status *v1alpha1.BuildStatus) (string, bool) {
- if status == nil || len(status.Conditions) == 0 {
- return "", false
- }
- for _, cond := range status.Conditions {
- if cond.Type == v1alpha1.BuildSucceeded && cond.Status == corev1.ConditionFalse {
- return cond.Message, true
- }
- }
- return "", false
-}
diff --git a/vendor/github.com/knative/build/pkg/builder/nop/builder.go b/vendor/github.com/knative/build/pkg/builder/nop/builder.go
deleted file mode 100644
index dd99963458..0000000000
--- a/vendor/github.com/knative/build/pkg/builder/nop/builder.go
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
-Copyright 2018 The Knative Authors
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-// Package nop provides a no-op builder implementation.
-package nop
-
-import (
- "time"
-
- corev1 "k8s.io/api/core/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-
- v1alpha1 "github.com/knative/build/pkg/apis/build/v1alpha1"
- buildercommon "github.com/knative/build/pkg/builder"
- duckv1alpha1 "github.com/knative/pkg/apis/duck/v1alpha1"
-)
-
-const operationName = "nop"
-
-var (
- startTime = metav1.NewTime(time.Unix(0, 0))
- completionTime = metav1.NewTime(time.Unix(30, 0))
-)
-
-type operation struct {
- builder *Builder
-}
-
-func (nb *operation) Name() string { return operationName }
-
-func (nb *operation) Checkpoint(_ *v1alpha1.Build, status *v1alpha1.BuildStatus) error {
- // Masquerade as the Google builder.
- status.Builder = v1alpha1.GoogleBuildProvider
- if status.Google == nil {
- status.Google = &v1alpha1.GoogleSpec{}
- }
- status.Google.Operation = nb.Name()
- status.StartTime = startTime
- status.SetCondition(&duckv1alpha1.Condition{
- Type: v1alpha1.BuildSucceeded,
- Status: corev1.ConditionUnknown,
- Reason: "Building",
- })
- return nil
-}
-
-func (nb *operation) Terminate() error {
- return nb.builder.OpErr
-}
-
-func (nb *operation) Wait() (*v1alpha1.BuildStatus, error) {
- bs := &v1alpha1.BuildStatus{
- // Masquerade as the Google builder.
- Builder: v1alpha1.GoogleBuildProvider,
- Google: &v1alpha1.GoogleSpec{
- Operation: nb.Name(),
- },
- StartTime: startTime,
- CompletionTime: completionTime,
- }
-
- if nb.builder.ErrorMessage != "" {
- bs.SetCondition(&duckv1alpha1.Condition{
- Type: v1alpha1.BuildSucceeded,
- Status: corev1.ConditionFalse,
- Reason: "NopFailed",
- Message: nb.builder.ErrorMessage,
- })
- } else {
- bs.SetCondition(&duckv1alpha1.Condition{
- Type: v1alpha1.BuildSucceeded,
- Status: corev1.ConditionTrue,
- })
- }
-
- return bs, nil
-}
-
-type build struct {
- builder *Builder
- err error
-}
-
-func (nb *build) Execute() (buildercommon.Operation, error) {
- if nb.err != nil {
- return nil, nb.err
- }
- return &operation{builder: nb.builder}, nil
-}
-
-// Builder is a no-op Builder implementation.
-type Builder struct {
- // ErrorMessage is the error message that should be returned by builds
- // executed by this builder.
- ErrorMessage string
-
- // Err is the error that should be returned from calls to this builder.
- Err error
-
- // Operation error
- OpErr error
-}
-
-func (nb *Builder) Builder() v1alpha1.BuildProvider {
- // Masquerade as the Google builder.
- return v1alpha1.GoogleBuildProvider
-}
-
-// Validate does nothing.
-func (nb *Builder) Validate(u *v1alpha1.Build) error { return nil }
-
-// BuildFromSpec returns the converted build, or the builder's predefined error.
-func (nb *Builder) BuildFromSpec(*v1alpha1.Build) (buildercommon.Build, error) {
- b := &build{builder: nb}
- if nb.Err != nil {
- b.err = nb.Err
- }
- return b, nil
-}
-
-// OperationFromStatus returns the no-op operation.
-func (nb *Builder) OperationFromStatus(*v1alpha1.BuildStatus) (buildercommon.Operation, error) {
- if nb.Err != nil {
- return nil, nb.Err
- }
- return &operation{builder: nb}, nil
-}
diff --git a/vendor/github.com/knative/build/pkg/buildtest/wait.go b/vendor/github.com/knative/build/pkg/buildtest/wait.go
deleted file mode 100644
index 636d537abc..0000000000
--- a/vendor/github.com/knative/build/pkg/buildtest/wait.go
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-Copyright 2018 The Knative Authors
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package buildtest
-
-import (
- "sync"
- "time"
-)
-
-// Wait extends WaitGroup with a few useful methods to avoid tests having a
-// failure mode of hanging.
-type Wait struct {
- sync.WaitGroup
-}
-
-// Add should be overridden by implementors.
-func (w *Wait) Add(delta int) {
- panic("Don't call Add(int) on wait!")
-}
-
-// In calls Done() after the specified duration.
-func (w *Wait) In(d time.Duration) {
- go func() {
- time.Sleep(d)
- w.Done()
- }()
-}
-
-// WaitNop is a convenience for passing into WaitUntil.
-func WaitNop() {}
-
-// WaitUntil waits until Done() has been called or the specified duration has
-// elapsed. If Done() is called, then onSuccess is called. If the duration
-// elapses without Done() being called, then onTimeout is called.
-func (w *Wait) WaitUntil(d time.Duration, onSuccess func(), onTimeout func()) {
- ch := make(chan struct{})
- go func() {
- w.Wait()
- close(ch)
- }()
- select {
- case <-ch:
- onSuccess()
- case <-time.After(d):
- onTimeout()
- }
-}
-
-// NewWait is a convenience for creating a Wait object.
-func NewWait() *Wait {
- w := Wait{}
- w.WaitGroup.Add(1)
- return &w
-}
diff --git a/vendor/github.com/knative/build/pkg/buildtest/yaml.go b/vendor/github.com/knative/build/pkg/buildtest/yaml.go
deleted file mode 100644
index 1f0e6e2c1b..0000000000
--- a/vendor/github.com/knative/build/pkg/buildtest/yaml.go
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-Copyright 2018 The Knative Authors
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package buildtest
-
-import (
- "encoding/json"
-
- "github.com/go-yaml/yaml"
-)
-
-// From: https://stackoverflow.com/questions/40737122/convert-yaml-to-json-without-struct-golang
-func convert(i interface{}) interface{} {
- switch x := i.(type) {
- case map[interface{}]interface{}:
- m2 := map[string]interface{}{}
- for k, v := range x {
- m2[k.(string)] = convert(v)
- }
- return m2
- case []interface{}:
- for i, v := range x {
- x[i] = convert(v)
- }
- }
- return i
-}
-
-// YAMLToJSON converts the given YAML bytes to JSON bytes.
-func YAMLToJSON(y []byte) ([]byte, error) {
- var body interface{}
- if err := yaml.Unmarshal(y, &body); err != nil {
- return nil, err
- }
- return json.Marshal(convert(body))
-}
diff --git a/vendor/github.com/knative/build/pkg/client/clientset/versioned/typed/build/v1alpha1/build.go b/vendor/github.com/knative/build/pkg/client/clientset/versioned/typed/build/v1alpha1/build.go
index 7d73648cab..082f02b6f6 100644
--- a/vendor/github.com/knative/build/pkg/client/clientset/versioned/typed/build/v1alpha1/build.go
+++ b/vendor/github.com/knative/build/pkg/client/clientset/versioned/typed/build/v1alpha1/build.go
@@ -34,6 +34,7 @@ type BuildsGetter interface {
type BuildInterface interface {
Create(*v1alpha1.Build) (*v1alpha1.Build, error)
Update(*v1alpha1.Build) (*v1alpha1.Build, error)
+ UpdateStatus(*v1alpha1.Build) (*v1alpha1.Build, error)
Delete(name string, options *v1.DeleteOptions) error
DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error
Get(name string, options v1.GetOptions) (*v1alpha1.Build, error)
@@ -117,6 +118,22 @@ func (c *builds) Update(build *v1alpha1.Build) (result *v1alpha1.Build, err erro
return
}
+// UpdateStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
+
+func (c *builds) UpdateStatus(build *v1alpha1.Build) (result *v1alpha1.Build, err error) {
+ result = &v1alpha1.Build{}
+ err = c.client.Put().
+ Namespace(c.ns).
+ Resource("builds").
+ Name(build.Name).
+ SubResource("status").
+ Body(build).
+ Do().
+ Into(result)
+ return
+}
+
// Delete takes name of the build and deletes it. Returns an error if one occurs.
func (c *builds) Delete(name string, options *v1.DeleteOptions) error {
return c.client.Delete().
diff --git a/vendor/github.com/knative/build/pkg/client/clientset/versioned/typed/build/v1alpha1/fake/fake_build.go b/vendor/github.com/knative/build/pkg/client/clientset/versioned/typed/build/v1alpha1/fake/fake_build.go
index aeea0729cd..5c90e576e2 100644
--- a/vendor/github.com/knative/build/pkg/client/clientset/versioned/typed/build/v1alpha1/fake/fake_build.go
+++ b/vendor/github.com/knative/build/pkg/client/clientset/versioned/typed/build/v1alpha1/fake/fake_build.go
@@ -97,6 +97,18 @@ func (c *FakeBuilds) Update(build *v1alpha1.Build) (result *v1alpha1.Build, err
return obj.(*v1alpha1.Build), err
}
+// UpdateStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
+func (c *FakeBuilds) UpdateStatus(build *v1alpha1.Build) (*v1alpha1.Build, error) {
+ obj, err := c.Fake.
+ Invokes(testing.NewUpdateSubresourceAction(buildsResource, "status", c.ns, build), &v1alpha1.Build{})
+
+ if obj == nil {
+ return nil, err
+ }
+ return obj.(*v1alpha1.Build), err
+}
+
// Delete takes name of the build and deletes it. Returns an error if one occurs.
func (c *FakeBuilds) Delete(name string, options *v1.DeleteOptions) error {
_, err := c.Fake.
diff --git a/vendor/github.com/knative/build/pkg/controller/controller.go b/vendor/github.com/knative/build/pkg/controller/controller.go
deleted file mode 100644
index e86aac8786..0000000000
--- a/vendor/github.com/knative/build/pkg/controller/controller.go
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-Copyright 2018 The Knative Authors
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package controller
-
-import (
- "go.uber.org/zap"
- kubeinformers "k8s.io/client-go/informers"
- "k8s.io/client-go/kubernetes"
- "k8s.io/client-go/kubernetes/scheme"
-
- "github.com/knative/build/pkg/builder"
-
- clientset "github.com/knative/build/pkg/client/clientset/versioned"
- buildscheme "github.com/knative/build/pkg/client/clientset/versioned/scheme"
- informers "github.com/knative/build/pkg/client/informers/externalversions"
-)
-
-func init() {
- // Add build types to the default Kubernetes Scheme so Events can be
- // logged for build types.
- buildscheme.AddToScheme(scheme.Scheme)
-}
-
-// Interface is the interface of a controller.
-type Interface interface {
- Run(threadiness int, stopCh <-chan struct{}) error
-}
-
-// Constructor defines the method signature for a controller constructor.
-type Constructor func(
- builder.Interface,
- kubernetes.Interface,
- clientset.Interface,
- kubeinformers.SharedInformerFactory,
- informers.SharedInformerFactory,
- *zap.SugaredLogger,
-) Interface
diff --git a/vendor/github.com/knative/build/pkg/credentials/dockercreds/creds.go b/vendor/github.com/knative/build/pkg/credentials/dockercreds/creds.go
index de12fa5513..a768f9eeef 100644
--- a/vendor/github.com/knative/build/pkg/credentials/dockercreds/creds.go
+++ b/vendor/github.com/knative/build/pkg/credentials/dockercreds/creds.go
@@ -33,11 +33,15 @@ import (
const annotationPrefix = "build.knative.dev/docker-"
-var config dockerConfig
+var config basicDocker
+var dockerConfig string
+var dockerCfg string
func flags(fs *flag.FlagSet) {
- config = dockerConfig{make(map[string]entry)}
+ config = basicDocker{make(map[string]entry)}
fs.Var(&config, "basic-docker", "List of secret=url pairs.")
+ fs.StringVar(&dockerConfig, "docker-config", "", "Config.json secret file.")
+ fs.StringVar(&dockerCfg, "docker-cfg", "", "Docker .dockercfg secret file.")
}
func init() {
@@ -45,12 +49,12 @@ func init() {
}
// As the flag is read, this status is populated.
-// dockerConfig implements flag.Value
-type dockerConfig struct {
+// basicDocker implements flag.Value
+type basicDocker struct {
Entries map[string]entry `json:"auths"`
}
-func (dc *dockerConfig) String() string {
+func (dc *basicDocker) String() string {
if dc == nil {
// According to flag.Value this can happen.
return ""
@@ -62,7 +66,7 @@ func (dc *dockerConfig) String() string {
return strings.Join(urls, ",")
}
-func (dc *dockerConfig) Set(value string) error {
+func (dc *basicDocker) Set(value string) error {
parts := strings.Split(value, "=")
if len(parts) != 2 {
return fmt.Errorf("Expect entries of the form secret=url, got: %v", value)
@@ -82,12 +86,16 @@ func (dc *dockerConfig) Set(value string) error {
return nil
}
+type configFile struct {
+ Auth map[string]entry `json:"auths"`
+}
+
type entry struct {
Secret string `json:"-"`
- Username string `json:"username"`
- Password string `json:"password"`
+ Username string `json:"username,omitempty"`
+ Password string `json:"password,omitempty"`
Auth string `json:"auth"`
- Email string `json:"email"`
+ Email string `json:"email,omitempty"`
}
func newEntry(secret string) (*entry, error) {
@@ -114,39 +122,94 @@ func newEntry(secret string) (*entry, error) {
}, nil
}
-type dockerConfigBuilder struct{}
+type basicDockerBuilder struct{}
// NewBuilder returns a new builder for Docker credentials.
-func NewBuilder() credentials.Builder { return &dockerConfigBuilder{} }
+func NewBuilder() credentials.Builder { return &basicDockerBuilder{} }
// MatchingAnnotations extracts flags for the credential helper
// from the supplied secret and returns a slice (of length 0 or
// greater) of applicable domains.
-func (*dockerConfigBuilder) MatchingAnnotations(secret *corev1.Secret) []string {
+func (*basicDockerBuilder) MatchingAnnotations(secret *corev1.Secret) []string {
var flags []string
switch secret.Type {
case corev1.SecretTypeBasicAuth:
- // OK.
+ for _, v := range credentials.SortAnnotations(secret.Annotations, annotationPrefix) {
+ flags = append(flags, fmt.Sprintf("-basic-docker=%s=%s", secret.Name, v))
+ }
+ case corev1.SecretTypeDockerConfigJson:
+ flags = append(flags, fmt.Sprintf("-docker-config=%s", secret.Name))
+ case corev1.SecretTypeDockercfg:
+ flags = append(flags, fmt.Sprintf("-docker-cfg=%s", secret.Name))
default:
return flags
}
- for _, v := range credentials.SortAnnotations(secret.Annotations, annotationPrefix) {
- flags = append(flags, fmt.Sprintf("-basic-docker=%s=%s", secret.Name, v))
- }
return flags
}
-func (*dockerConfigBuilder) Write() error {
+func (*basicDockerBuilder) Write() error {
dockerDir := filepath.Join(os.Getenv("HOME"), ".docker")
- dockerConfig := filepath.Join(dockerDir, "config.json")
+ basicDocker := filepath.Join(dockerDir, "config.json")
if err := os.MkdirAll(dockerDir, os.ModePerm); err != nil {
return err
}
- content, err := json.Marshal(config)
+ cf := configFile{Auth: config.Entries}
+ auth := map[string]entry{}
+ if dockerCfg != "" {
+ dockerConfigAuthMap, err := authsFromDockerCfg(dockerCfg)
+ if err != nil {
+ return err
+ }
+ for k, v := range dockerConfigAuthMap {
+ auth[k] = v
+ }
+ }
+ if dockerConfig != "" {
+ dockerConfigAuthMap, err := authsFromDockerConfig(dockerConfig)
+ if err != nil {
+ return err
+ }
+ for k, v := range dockerConfigAuthMap {
+ auth[k] = v
+ }
+ }
+ for k, v := range config.Entries {
+ auth[k] = v
+ }
+ cf.Auth = auth
+ content, err := json.Marshal(cf)
if err != nil {
return err
}
- return ioutil.WriteFile(dockerConfig, content, 0600)
+ return ioutil.WriteFile(basicDocker, content, 0600)
+}
+
+func authsFromDockerCfg(secret string) (map[string]entry, error) {
+ secretPath := credentials.VolumeName(secret)
+ m := make(map[string]entry)
+ data, err := ioutil.ReadFile(filepath.Join(secretPath, corev1.DockerConfigKey))
+ if err != nil {
+ return m, err
+ }
+ err = json.Unmarshal(data, &m)
+ return m, err
+}
+
+func authsFromDockerConfig(secret string) (map[string]entry, error) {
+ secretPath := credentials.VolumeName(secret)
+ m := make(map[string]entry)
+ c := configFile{}
+ data, err := ioutil.ReadFile(filepath.Join(secretPath, corev1.DockerConfigJsonKey))
+ if err != nil {
+ return m, err
+ }
+ if err := json.Unmarshal(data, &c); err != nil {
+ return m, err
+ }
+ for k, v := range c.Auth {
+ m[k] = v
+ }
+ return m, nil
}
diff --git a/vendor/github.com/knative/build/pkg/credentials/gitcreds/ssh.go b/vendor/github.com/knative/build/pkg/credentials/gitcreds/ssh.go
index 43cc03414c..8107419c68 100644
--- a/vendor/github.com/knative/build/pkg/credentials/gitcreds/ssh.go
+++ b/vendor/github.com/knative/build/pkg/credentials/gitcreds/ssh.go
@@ -20,6 +20,7 @@ import (
"bytes"
"fmt"
"io/ioutil"
+ "net"
"os"
"os/exec"
"path/filepath"
@@ -85,8 +86,15 @@ func (dc *sshGitConfig) Write() error {
// 2. Compute its part of "~/.ssh/config"
// 3. Compute its part of "~/.ssh/known_hosts"
var configEntries []string
+ var defaultPort = "22"
var knownHosts []string
for _, k := range dc.order {
+ var host, port string
+ var err error
+ if host, port, err = net.SplitHostPort(k); err != nil {
+ host = k
+ port = defaultPort
+ }
v := dc.entries[k]
if err := v.Write(sshDir); err != nil {
return err
@@ -94,7 +102,8 @@ func (dc *sshGitConfig) Write() error {
configEntries = append(configEntries, fmt.Sprintf(`Host %s
HostName %s
IdentityFile %s
-`, k, k, v.path(sshDir)))
+ Port %s
+`, host, host, v.path(sshDir), port))
knownHosts = append(knownHosts, v.knownHosts)
}
diff --git a/vendor/github.com/knative/build/pkg/logs/logs.go b/vendor/github.com/knative/build/pkg/logs/logs.go
index a1309c66cb..b1f8021aa0 100644
--- a/vendor/github.com/knative/build/pkg/logs/logs.go
+++ b/vendor/github.com/knative/build/pkg/logs/logs.go
@@ -22,7 +22,7 @@ import (
"time"
buildv1alpha1 "github.com/knative/build/pkg/client/clientset/versioned/typed/build/v1alpha1"
- "k8s.io/api/core/v1"
+ v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/fields"
corev1 "k8s.io/client-go/kubernetes/typed/core/v1"
diff --git a/vendor/github.com/knative/build/pkg/builder/common.go b/vendor/github.com/knative/build/pkg/reconciler/build/apply.go
similarity index 75%
rename from vendor/github.com/knative/build/pkg/builder/common.go
rename to vendor/github.com/knative/build/pkg/reconciler/build/apply.go
index ba51547257..f87271a951 100644
--- a/vendor/github.com/knative/build/pkg/builder/common.go
+++ b/vendor/github.com/knative/build/pkg/reconciler/build/apply.go
@@ -14,16 +14,15 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-// Package builder provides common methods for Builder implementations.
-package builder
+package build
import (
"fmt"
"strings"
- corev1 "k8s.io/api/core/v1"
-
"github.com/knative/build/pkg/apis/build/v1alpha1"
+ corev1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/util/sets"
)
// ApplyTemplate applies the values in the template to the build, and replaces
@@ -89,6 +88,14 @@ func ApplyReplacements(build *v1alpha1.Build, replacements map[string]string) *v
}
}
+ // Apply variable expansion to the build's volumes
+ for i, v := range build.Spec.Volumes {
+ build.Spec.Volumes[i].Name = applyReplacements(v.Name)
+ if c := v.PersistentVolumeClaim; c != nil {
+ c.ClaimName = applyReplacements(c.ClaimName)
+ }
+ }
+
if buildTmpl := build.Spec.Template; buildTmpl != nil && len(buildTmpl.Env) > 0 {
// Apply variable expansion to the build's overridden
// environment variables
@@ -100,22 +107,48 @@ func ApplyReplacements(build *v1alpha1.Build, replacements map[string]string) *v
steps[i].Env = applyEnvOverride(steps[i].Env, buildTmpl.Env)
}
}
+
+ // Apply variable expansion to volumes fields.
+ if volumes := build.Spec.Volumes; volumes != nil && len(volumes) > 0 {
+ for i := range volumes {
+ applyVolumeReplacements(&volumes[i], applyReplacements)
+ }
+ }
+
return build
}
func applyEnvOverride(src, override []corev1.EnvVar) []corev1.EnvVar {
result := make([]corev1.EnvVar, 0, len(src)+len(override))
- overrides := make(map[string]bool)
+ overrides := sets.NewString()
for _, env := range override {
- overrides[env.Name] = true
+ overrides.Insert(env.Name)
}
for _, env := range src {
- if _, present := overrides[env.Name]; !present {
+ if !overrides.Has(env.Name) {
result = append(result, env)
}
}
return append(result, override...)
}
+
+func applyVolumeReplacements(volume *corev1.Volume, applyReplacements func(string) string) {
+ if volume == nil {
+ return
+ }
+
+ volume.Name = applyReplacements(volume.Name)
+
+ // Apply variable expansion to configMap's name
+ // TODO: Apply variable expansion to other volumeSource
+ if volume.VolumeSource.ConfigMap != nil {
+ volume.ConfigMap.Name = applyReplacements(volume.ConfigMap.Name)
+ }
+
+ if volume.VolumeSource.Secret != nil {
+ volume.Secret.SecretName = applyReplacements(volume.Secret.SecretName)
+ }
+}
diff --git a/vendor/github.com/knative/build/pkg/reconciler/build/build.go b/vendor/github.com/knative/build/pkg/reconciler/build/build.go
index 9cc52b4d51..8379eccef1 100644
--- a/vendor/github.com/knative/build/pkg/reconciler/build/build.go
+++ b/vendor/github.com/knative/build/pkg/reconciler/build/build.go
@@ -19,14 +19,16 @@ package build
import (
"context"
"fmt"
+ "sync"
+ "time"
v1alpha1 "github.com/knative/build/pkg/apis/build/v1alpha1"
- "github.com/knative/build/pkg/builder"
clientset "github.com/knative/build/pkg/client/clientset/versioned"
buildscheme "github.com/knative/build/pkg/client/clientset/versioned/scheme"
informers "github.com/knative/build/pkg/client/informers/externalversions/build/v1alpha1"
listers "github.com/knative/build/pkg/client/listers/build/v1alpha1"
"github.com/knative/build/pkg/reconciler"
+ "github.com/knative/build/pkg/reconciler/build/resources"
duckv1alpha1 "github.com/knative/pkg/apis/duck/v1alpha1"
"github.com/knative/pkg/controller"
"github.com/knative/pkg/logging"
@@ -36,12 +38,17 @@ import (
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/runtime"
+ coreinformers "k8s.io/client-go/informers/core/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/kubernetes/scheme"
+ corelisters "k8s.io/client-go/listers/core/v1"
"k8s.io/client-go/tools/cache"
)
-const controllerAgentName = "build-controller"
+const (
+ controllerAgentName = "build-controller"
+ defaultTimeout = 10 * time.Minute
+)
// Reconciler is the controller.Reconciler implementation for Builds resources
type Reconciler struct {
@@ -49,12 +56,12 @@ type Reconciler struct {
kubeclientset kubernetes.Interface
// buildclientset is a clientset for our own API group
buildclientset clientset.Interface
+ timeoutHandler *TimeoutSet
buildsLister listers.BuildLister
buildTemplatesLister listers.BuildTemplateLister
clusterBuildTemplatesLister listers.ClusterBuildTemplateLister
-
- builder builder.Interface
+ podsLister corelisters.PodLister
// Sugared logger is easier to use but is not as performant as the
// raw logger. In performance critical paths, call logger.Desugar()
@@ -66,6 +73,7 @@ type Reconciler struct {
// Check that we implement the controller.Reconciler interface.
var _ controller.Reconciler = (*Reconciler)(nil)
+var statusMap = sync.Map{}
func init() {
// Add build-controller types to the default Kubernetes Scheme so Events can be
@@ -77,11 +85,12 @@ func init() {
func NewController(
logger *zap.SugaredLogger,
kubeclientset kubernetes.Interface,
+ podInformer coreinformers.PodInformer,
buildclientset clientset.Interface,
buildInformer informers.BuildInformer,
buildTemplateInformer informers.BuildTemplateInformer,
clusterBuildTemplateInformer informers.ClusterBuildTemplateInformer,
- builder builder.Interface,
+ timeoutHandler *TimeoutSet,
) *controller.Impl {
// Enrich the logs with controller name
@@ -93,8 +102,9 @@ func NewController(
buildsLister: buildInformer.Lister(),
buildTemplatesLister: buildTemplateInformer.Lister(),
clusterBuildTemplatesLister: clusterBuildTemplateInformer.Lister(),
- builder: builder,
+ podsLister: podInformer.Lister(),
Logger: logger,
+ timeoutHandler: timeoutHandler,
}
impl := controller.NewImpl(r, logger, "Builds",
reconciler.MustNewStatsReporter("Builds", r.Logger))
@@ -106,8 +116,15 @@ func NewController(
UpdateFunc: controller.PassNew(impl.Enqueue),
})
- // TODO(mattmoor): Set up a Pod informer, so that Pod updates
- // trigger Build reconciliations.
+ // Set up a Pod informer, so that Pod updates trigger Build
+ // reconciliations.
+ podInformer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{
+ FilterFunc: controller.Filter(v1alpha1.SchemeGroupVersion.WithKind("Build")),
+ Handler: cache.ResourceEventHandlerFuncs{
+ AddFunc: impl.EnqueueControllerOf,
+ UpdateFunc: controller.PassNew(impl.EnqueueControllerOf),
+ },
+ })
return impl
}
@@ -136,63 +153,126 @@ func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
// Don't mutate the informer's copy of our object.
build = build.DeepCopy()
- // Validate build
- if err = c.validateBuild(build); err != nil {
- c.Logger.Errorf("Failed to validate build: %v", err)
- return err
- }
-
// If the build's done, then ignore it.
- if builder.IsDone(&build.Status) {
+ if isDone(&build.Status) {
return nil
}
- // If the build is not done, but is in progress (has an operation), then asynchronously wait for it.
- // TODO(mattmoor): Check whether the Builder matches the kind of our c.builder.
- if build.Status.Builder != "" {
- op, err := c.builder.OperationFromStatus(&build.Status)
+ // If the build's status is cancelled, kill resources and update status
+ if isCancelled(build.Spec) {
+ return c.cancelBuild(build, logger)
+ }
+
+ // If the build hasn't started yet, validate it and create a Pod for it
+ // and record that pod's name in the build status.
+ var p *corev1.Pod
+ if build.Status.Cluster == nil || build.Status.Cluster.PodName == "" {
+ // Add a unique suffix to avoid confusion when a build
+ // is deleted and re-created with the same name.
+ // We don't use GenerateName here because k8s fakes don't support it.
+ podName, err := resources.GetUniquePodName(build.Name)
if err != nil {
return err
}
+ // update with a dummy status first to avoid race condition of another event while the pod is being created
+ build.Status = v1alpha1.BuildStatus{
+ Builder: v1alpha1.ClusterBuildProvider,
+ Cluster: &v1alpha1.ClusterSpec{
+ Namespace: build.Namespace,
+ PodName: podName,
+ },
+ StartTime: &metav1.Time{
+ Time: time.Now(),
+ },
+ }
+ if err := c.updateStatus(build); err != nil {
+ return err
+ }
- // Check if build has timed out
- if builder.IsTimeout(&build.Status, build.Spec.Timeout) {
- //cleanup operation and update status
- timeoutMsg := fmt.Sprintf("Build %q failed to finish within %q", build.Name, build.Spec.Timeout.Duration.String())
-
- if err := op.Terminate(); err != nil {
- c.Logger.Errorf("Failed to terminate pod: %v", err)
+ if err = c.validateBuild(build); err != nil {
+ logger.Errorf("Failed to validate build: %v", err)
+ build.Status = v1alpha1.BuildStatus{
+ Cluster: &v1alpha1.ClusterSpec{
+ PodName: "",
+ },
+ }
+ build.Status.SetCondition(&duckv1alpha1.Condition{
+ Type: v1alpha1.BuildSucceeded,
+ Status: corev1.ConditionFalse,
+ Reason: "BuildValidationFailed",
+ Message: err.Error(),
+ })
+ if err := c.updateStatus(build); err != nil {
return err
}
+ return err
+ }
+ p, err = c.startPodForBuild(build)
+ if err != nil {
build.Status.SetCondition(&duckv1alpha1.Condition{
Type: v1alpha1.BuildSucceeded,
Status: corev1.ConditionFalse,
- Reason: "BuildTimeout",
- Message: timeoutMsg,
+ Reason: "BuildExecuteFailed",
+ Message: err.Error(),
})
- // update build completed time
- build.Status.CompletionTime = metav1.Now()
-
- if _, err := c.updateStatus(build); err != nil {
- c.Logger.Errorf("Failed to update status for pod: %v", err)
+ if err := c.updateStatus(build); err != nil {
return err
}
-
- c.Logger.Errorf("Timeout: %v", timeoutMsg)
- return nil
+ return err
+ }
+ // Start goroutine that waits for either build timeout or build finish
+ go c.timeoutHandler.wait(build)
+ } else {
+ // If the build is ongoing, update its status based on its pod, and
+ // check if it's timed out.
+ p, err = c.podsLister.Pods(build.Namespace).Get(build.Status.Cluster.PodName)
+ if err != nil {
+ // TODO: What if the pod is deleted out from under us?
+ return err
}
+ }
- // if not timed out then wait async
- go c.waitForOperation(build, op)
- return nil
+ // Update the build's status based on the pod's status.
+ statusLock(build)
+ build.Status = resources.BuildStatusFromPod(p, build.Spec)
+ statusUnlock(build)
+ if isDone(&build.Status) {
+ // release goroutine that waits for build timeout
+ c.timeoutHandler.release(build)
+ // and remove key from status map
+ defer statusMap.Delete(key)
+ }
+
+ return c.updateStatus(build)
+}
+
+func (c *Reconciler) updateStatus(u *v1alpha1.Build) error {
+ statusLock(u)
+ defer statusUnlock(u)
+ newb, err := c.buildclientset.BuildV1alpha1().Builds(u.Namespace).Get(u.Name, metav1.GetOptions{})
+ if err != nil {
+ return err
+ }
+
+ cond := newb.Status.GetCondition(v1alpha1.BuildSucceeded)
+ if cond != nil && cond.Status == corev1.ConditionFalse {
+ return fmt.Errorf("can't update status of failed build %q", newb.Name)
}
- // If the build hasn't even started, then start it and record the operation in our status.
- // Note that by recording our status, we will trigger a reconciliation, so the wait above
- // will kick in.
- build.Status.Builder = c.builder.Builder()
+ newb.Status = u.Status
+
+ _, err = c.buildclientset.BuildV1alpha1().Builds(u.Namespace).UpdateStatus(newb)
+ return err
+}
+
+// startPodForBuild starts a new Pod to execute the build.
+//
+// This applies any build template that's specified, and creates the pod.
+func (c *Reconciler) startPodForBuild(build *v1alpha1.Build) (*corev1.Pod, error) {
+ namespace := build.Namespace
var tmpl v1alpha1.BuildTemplateInterface
+ var err error
if build.Spec.Template != nil {
if build.Spec.Template.Kind == v1alpha1.ClusterBuildTemplateKind {
tmpl, err = c.clusterBuildTemplatesLister.Get(build.Spec.Template.Name)
@@ -201,7 +281,7 @@ func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
if errors.IsNotFound(err) {
runtime.HandleError(fmt.Errorf("cluster build template %q does not exist", build.Spec.Template.Name))
}
- return err
+ return nil, err
}
} else {
tmpl, err = c.buildTemplatesLister.BuildTemplates(namespace).Get(build.Spec.Template.Name)
@@ -210,68 +290,100 @@ func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
if errors.IsNotFound(err) {
runtime.HandleError(fmt.Errorf("build template %q in namespace %q does not exist", build.Spec.Template.Name, namespace))
}
- return err
+ return nil, err
}
}
}
- build, err = builder.ApplyTemplate(build, tmpl)
+ build, err = ApplyTemplate(build, tmpl)
if err != nil {
- return err
+ return nil, err
}
- // TODO: Validate build except steps+template
- b, err := c.builder.BuildFromSpec(build)
+
+ p, err := resources.MakePod(build, c.kubeclientset)
if err != nil {
- return err
+ return nil, err
}
- op, err := b.Execute()
- if err != nil {
- build.Status.SetCondition(&duckv1alpha1.Condition{
- Type: v1alpha1.BuildSucceeded,
- Status: corev1.ConditionFalse,
- Reason: "BuildExecuteFailed",
- Message: err.Error(),
- })
+ c.Logger.Infof("Creating pod %q in namespace %q for build %q", p.Name, p.Namespace, build.Name)
+ return c.kubeclientset.CoreV1().Pods(p.Namespace).Create(p)
+}
- if _, err := c.updateStatus(build); err != nil {
- return err
- }
+// isCancelled returns true if the build's spec indicates the build is cancelled.
+func isCancelled(buildSpec v1alpha1.BuildSpec) bool {
+ return buildSpec.Status == v1alpha1.BuildSpecStatusCancelled
+}
+
+func (c *Reconciler) cancelBuild(build *v1alpha1.Build, logger *zap.SugaredLogger) error {
+ logger.Warnf("Build has been cancelled: %v", build.Name)
+ build.Status.SetCondition(&duckv1alpha1.Condition{
+ Type: v1alpha1.BuildSucceeded,
+ Status: corev1.ConditionFalse,
+ Reason: "BuildCancelled",
+ Message: fmt.Sprintf("Build %q was cancelled", build.Name),
+ })
+ if err := c.updateStatus(build); err != nil {
return err
}
- if err := op.Checkpoint(build, &build.Status); err != nil {
- return err
+ if build.Status.Cluster == nil {
+ logger.Warnf("build %q has no pod running yet", build.Name)
+ return nil
}
- build, err = c.updateStatus(build)
- if err != nil {
+ if err := c.kubeclientset.CoreV1().Pods(build.Namespace).Delete(build.Status.Cluster.PodName, &metav1.DeleteOptions{}); err != nil {
return err
}
return nil
}
-func (c *Reconciler) waitForOperation(build *v1alpha1.Build, op builder.Operation) error {
- status, err := op.Wait()
- if err != nil {
- c.Logger.Errorf("Error while waiting for operation: %v", err)
- return err
+// isDone returns true if the build's status indicates the build is done.
+func isDone(status *v1alpha1.BuildStatus) bool {
+ cond := status.GetCondition(v1alpha1.BuildSucceeded)
+ return cond != nil && cond.Status != corev1.ConditionUnknown
+}
+
+func (c *Reconciler) checkTimeout(build *v1alpha1.Build) error {
+ // If build has not started timeout, startTime should be zero.
+ if build.Status.StartTime.IsZero() {
+ return nil
}
- build.Status = *status
- if _, err := c.updateStatus(build); err != nil {
- c.Logger.Errorf("Error updating build status: %v", err)
- return err
+
+ // Use default timeout to 10 minute if build timeout is not set.
+ timeout := defaultTimeout
+ if build.Spec.Timeout != nil {
+ timeout = build.Spec.Timeout.Duration
+ }
+ runtime := time.Since(build.Status.StartTime.Time)
+ if runtime > timeout {
+ c.Logger.Infof("Build %q is timeout (runtime %s over %s), deleting pod", build.Name, runtime, timeout)
+ if err := c.kubeclientset.CoreV1().Pods(build.Namespace).Delete(build.Status.Cluster.PodName, &metav1.DeleteOptions{}); err != nil && !errors.IsNotFound(err) {
+ c.Logger.Errorf("Failed to terminate pod: %v", err)
+ return err
+ }
+
+ timeoutMsg := fmt.Sprintf("Build %q failed to finish within %q", build.Name, timeout.String())
+ build.Status.SetCondition(&duckv1alpha1.Condition{
+ Type: v1alpha1.BuildSucceeded,
+ Status: corev1.ConditionFalse,
+ Reason: "BuildTimeout",
+ Message: timeoutMsg,
+ })
+ // update build completed time
+ build.Status.CompletionTime = &metav1.Time{time.Now()}
}
return nil
}
-func (c *Reconciler) updateStatus(u *v1alpha1.Build) (*v1alpha1.Build, error) {
- buildClient := c.buildclientset.BuildV1alpha1().Builds(u.Namespace)
- newu, err := buildClient.Get(u.Name, metav1.GetOptions{})
- if err != nil {
- return nil, err
- }
- newu.Status = u.Status
+func statusLock(build *v1alpha1.Build) {
+ key := fmt.Sprintf("%s/%s", build.Namespace, build.Name)
+ m, _ := statusMap.LoadOrStore(key, &sync.Mutex{})
+ mut := m.(*sync.Mutex)
+ mut.Lock()
+}
- // Until #38113 is merged, we must use Update instead of UpdateStatus to
- // update the Status block of the Build resource. UpdateStatus will not
- // allow changes to the Spec of the resource, which is ideal for ensuring
- // nothing other than resource status has been updated.
- return buildClient.Update(newu)
+func statusUnlock(build *v1alpha1.Build) {
+ key := fmt.Sprintf("%s/%s", build.Namespace, build.Name)
+ m, ok := statusMap.Load(key)
+ if !ok {
+ return
+ }
+ mut := m.(*sync.Mutex)
+ mut.Unlock()
}
diff --git a/vendor/github.com/knative/build/pkg/builder/cluster/convert/convert.go b/vendor/github.com/knative/build/pkg/reconciler/build/resources/pod.go
similarity index 54%
rename from vendor/github.com/knative/build/pkg/builder/cluster/convert/convert.go
rename to vendor/github.com/knative/build/pkg/reconciler/build/resources/pod.go
index 1372d013cc..5840154440 100644
--- a/vendor/github.com/knative/build/pkg/builder/cluster/convert/convert.go
+++ b/vendor/github.com/knative/build/pkg/reconciler/build/resources/pod.go
@@ -14,26 +14,32 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-// Package convert provides methods to convert a Build CRD to a k8s Pod
+// Package resources provides methods to convert a Build CRD to a k8s Pod
// resource.
-package convert
+package resources
import (
+ "crypto/rand"
+ "encoding/hex"
"flag"
"fmt"
+ "io"
+ "io/ioutil"
"path/filepath"
- "strings"
+ "strconv"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
+ "k8s.io/apimachinery/pkg/util/sets"
"k8s.io/client-go/kubernetes"
v1alpha1 "github.com/knative/build/pkg/apis/build/v1alpha1"
- "github.com/knative/build/pkg/builder/validation"
"github.com/knative/build/pkg/credentials"
"github.com/knative/build/pkg/credentials/dockercreds"
"github.com/knative/build/pkg/credentials/gitcreds"
+ "github.com/knative/pkg/apis"
+ duckv1alpha1 "github.com/knative/pkg/apis/duck/v1alpha1"
)
const workspaceDir = "/workspace"
@@ -62,6 +68,10 @@ var (
Name: "home",
VolumeSource: emptyVolumeSource,
}}
+
+ // Random byte reader used for pod name generation.
+ // var for testing.
+ randReader = rand.Reader
)
const (
@@ -94,98 +104,88 @@ var (
"The container image containing our GCS fetcher binary.")
)
-var (
- // Used to reverse the mapping from source to containers based on the
- // name given to the first step. This is fragile, but predominantly for testing.
- containerToSourceMap = map[string]func(corev1.Container) (*v1alpha1.SourceSpec, error){
- gitSource: containerToGit,
- gcsSource: containerToGCS,
- customSource: containerToCustom,
- }
-)
-
// TODO(mattmoor): Should we move this somewhere common, because of the flag?
-func gitToContainer(git *v1alpha1.GitSourceSpec) (*corev1.Container, error) {
+func gitToContainer(source v1alpha1.SourceSpec, index int) (*corev1.Container, error) {
+ git := source.Git
if git.Url == "" {
- return nil, validation.NewError("MissingUrl", "git sources are expected to specify a Url, got: %v", git)
+ return nil, apis.ErrMissingField("b.spec.source.git.url")
}
if git.Revision == "" {
- return nil, validation.NewError("MissingRevision", "git sources are expected to specify a Revision, got: %v", git)
+ return nil, apis.ErrMissingField("b.spec.source.git.revision")
+ }
+
+ args := []string{"-url", git.Url,
+ "-revision", git.Revision,
+ }
+
+ if source.TargetPath != "" {
+ args = append(args, []string{"-path", source.TargetPath}...)
+ }
+
+ containerName := initContainerPrefix + gitSource + "-"
+
+ // update container name to suffix source name
+ if source.Name != "" {
+ containerName = containerName + source.Name
+ } else {
+ containerName = containerName + strconv.Itoa(index)
}
+
return &corev1.Container{
- Name: initContainerPrefix + gitSource,
- Image: *gitImage,
- Args: []string{
- "-url", git.Url,
- "-revision", git.Revision,
- },
+ Name: containerName,
+ Image: *gitImage,
+ Args: args,
VolumeMounts: implicitVolumeMounts,
WorkingDir: workspaceDir,
Env: implicitEnvVars,
}, nil
}
-func containerToGit(git corev1.Container) (*v1alpha1.SourceSpec, error) {
- if git.Image != *gitImage {
- return nil, fmt.Errorf("Unrecognized git source image: %v", git.Image)
+func gcsToContainer(source v1alpha1.SourceSpec, index int) (*corev1.Container, error) {
+ gcs := source.GCS
+ if gcs.Location == "" {
+ return nil, apis.ErrMissingField("b.spec.source.gcs.location")
}
- if len(git.Args) < 3 {
- return nil, fmt.Errorf("Unexpectedly few arguments to git source container: %v", git.Args)
+ args := []string{"--type", string(gcs.Type), "--location", gcs.Location}
+ // dest_dir is the destination directory for GCS files to be copies"
+ if source.TargetPath != "" {
+ args = append(args, "--dest_dir", filepath.Join(workspaceDir, source.TargetPath))
}
- // Now undo what we did above
- return &v1alpha1.SourceSpec{
- Git: &v1alpha1.GitSourceSpec{
- Url: git.Args[1],
- Revision: git.Args[3],
- },
- }, nil
-}
-func gcsToContainer(gcs *v1alpha1.GCSSourceSpec) (*corev1.Container, error) {
- if gcs.Location == "" {
- return nil, validation.NewError("MissingLocation", "gcs sources are expected to specify a Location, got: %v", gcs)
+ // source name is empty then use `build-step-gcs-source` name
+ containerName := initContainerPrefix + gcsSource + "-"
+
+ // update container name to include `name` as suffix
+ if source.Name != "" {
+ containerName = containerName + source.Name
+ } else {
+ containerName = containerName + strconv.Itoa(index)
}
+
return &corev1.Container{
- Name: initContainerPrefix + gcsSource,
+ Name: containerName,
Image: *gcsFetcherImage,
- Args: []string{"--type", string(gcs.Type), "--location", gcs.Location},
+ Args: args,
VolumeMounts: implicitVolumeMounts,
WorkingDir: workspaceDir,
Env: implicitEnvVars,
}, nil
}
-func containerToGCS(source corev1.Container) (*v1alpha1.SourceSpec, error) {
- var sourceType, location string
- for i, a := range source.Args {
- if a == "--type" && i < len(source.Args) {
- sourceType = source.Args[i+1]
- }
- if a == "--location" && i < len(source.Args) {
- location = source.Args[i+1]
- }
- }
- return &v1alpha1.SourceSpec{
- GCS: &v1alpha1.GCSSourceSpec{
- Type: v1alpha1.GCSSourceType(sourceType),
- Location: location,
- },
- }, nil
-}
-
-func customToContainer(source *corev1.Container) (*corev1.Container, error) {
+func customToContainer(source *corev1.Container, name string) (*corev1.Container, error) {
if source.Name != "" {
- return nil, validation.NewError("OmitName", "custom source containers are expected to omit Name, got: %v", source.Name)
+ return nil, apis.ErrMissingField("b.spec.source.name")
}
custom := source.DeepCopy()
- custom.Name = customSource
- return custom, nil
-}
-func containerToCustom(custom corev1.Container) (*v1alpha1.SourceSpec, error) {
- c := custom.DeepCopy()
- c.Name = ""
- return &v1alpha1.SourceSpec{Custom: c}, nil
+ // source name is empty then use `custom-source` name
+ if name == "" {
+ name = customSource
+ } else {
+ name = customSource + "-" + name
+ }
+ custom.Name = name
+ return custom, nil
}
func makeCredentialInitializer(build *v1alpha1.Build, kubeclient kubernetes.Interface) (*corev1.Container, []corev1.Volume, error) {
@@ -246,42 +246,59 @@ func makeCredentialInitializer(build *v1alpha1.Build, kubeclient kubernetes.Inte
}, volumes, nil
}
-// FromCRD converts a Build object to a Pod which implements the build specified
+// MakePod converts a Build object to a Pod which implements the build specified
// by the supplied CRD.
-func FromCRD(build *v1alpha1.Build, kubeclient kubernetes.Interface) (*corev1.Pod, error) {
+func MakePod(build *v1alpha1.Build, kubeclient kubernetes.Interface) (*corev1.Pod, error) {
build = build.DeepCopy()
+ // Copy annotations on the build through to the underlying pod to allow users
+ // to specify pod annotations.
+ annotations := map[string]string{}
+ for key, val := range build.Annotations {
+ annotations[key] = val
+ }
+ annotations["sidecar.istio.io/inject"] = "false"
+
cred, secrets, err := makeCredentialInitializer(build, kubeclient)
if err != nil {
return nil, err
}
initContainers := []corev1.Container{*cred}
- workspaceSubPath := ""
+ var sources []v1alpha1.SourceSpec
+ // if source is present convert into sources
if source := build.Spec.Source; source != nil {
+ sources = []v1alpha1.SourceSpec{*source}
+ }
+ for _, source := range build.Spec.Sources {
+ sources = append(sources, source)
+ }
+ workspaceSubPath := ""
+
+ for i, source := range sources {
switch {
case source.Git != nil:
- git, err := gitToContainer(source.Git)
+ git, err := gitToContainer(source, i)
if err != nil {
return nil, err
}
initContainers = append(initContainers, *git)
case source.GCS != nil:
- gcs, err := gcsToContainer(source.GCS)
+ gcs, err := gcsToContainer(source, i)
if err != nil {
return nil, err
}
initContainers = append(initContainers, *gcs)
case source.Custom != nil:
- cust, err := customToContainer(source.Custom)
+ cust, err := customToContainer(source.Custom, source.Name)
if err != nil {
return nil, err
}
// Prepend the custom container to the steps, to be augmented later with env, volume mounts, etc.
build.Spec.Steps = append([]corev1.Container{*cust}, build.Spec.Steps...)
}
-
- workspaceSubPath = build.Spec.Source.SubPath
+ // webhook validation checks that only one source has subPath defined
+ workspaceSubPath = source.SubPath
}
for i, step := range build.Spec.Steps {
@@ -290,12 +307,12 @@ func FromCRD(build *v1alpha1.Build, kubeclient kubernetes.Interface) (*corev1.Po
// Add implicit volume mounts, unless the user has requested
// their own volume mount at that path.
- requestedVolumeMounts := map[string]bool{}
+ requestedVolumeMounts := sets.NewString()
for _, vm := range step.VolumeMounts {
- requestedVolumeMounts[filepath.Clean(vm.MountPath)] = true
+ requestedVolumeMounts.Insert(filepath.Clean(vm.MountPath))
}
for _, imp := range implicitVolumeMounts {
- if !requestedVolumeMounts[filepath.Clean(imp.MountPath)] {
+ if !requestedVolumeMounts.Has(filepath.Clean(imp.MountPath)) {
// If the build's source specifies a subpath,
// use that in the implicit workspace volume
// mount.
@@ -317,7 +334,6 @@ func FromCRD(build *v1alpha1.Build, kubeclient kubernetes.Interface) (*corev1.Po
initContainers = append(initContainers, step)
}
-
// Add our implicit volumes and any volumes needed for secrets to the explicitly
// declared user volumes.
volumes := append(build.Spec.Volumes, implicitVolumes...)
@@ -326,13 +342,19 @@ func FromCRD(build *v1alpha1.Build, kubeclient kubernetes.Interface) (*corev1.Po
return nil, err
}
+ var podName string
+ if build.Status.Cluster != nil && build.Status.Cluster.PodName != "" {
+ podName = build.Status.Cluster.PodName
+ } else {
+ return nil, fmt.Errorf("Can't create pod for build %q: pod name not set", build.Name)
+ }
+
return &corev1.Pod{
ObjectMeta: metav1.ObjectMeta{
// We execute the build's pod in the same namespace as where the build was
// created so that it can access colocated resources.
Namespace: build.Namespace,
- // Ensure our Pod gets a unique name.
- GenerateName: fmt.Sprintf("%s-", build.Name),
+ Name: podName,
// If our parent Build is deleted, then we should be as well.
OwnerReferences: []metav1.OwnerReference{
*metav1.NewControllerRef(build, schema.GroupVersionKind{
@@ -341,9 +363,7 @@ func FromCRD(build *v1alpha1.Build, kubeclient kubernetes.Interface) (*corev1.Po
Kind: "Build",
}),
},
- Annotations: map[string]string{
- "sidecar.istio.io/inject": "false",
- },
+ Annotations: annotations,
Labels: map[string]string{
buildNameLabelKey: build.Name,
},
@@ -364,130 +384,119 @@ func FromCRD(build *v1alpha1.Build, kubeclient kubernetes.Interface) (*corev1.Po
}, nil
}
-func isImplicitEnvVar(ev corev1.EnvVar) bool {
- for _, iev := range implicitEnvVars {
- if ev.Name == iev.Name {
- return true
- }
+// GetUniquePodName returns a unique name based on the build's name.
+func GetUniquePodName(name string) (string, error) {
+ // Generate a short random hex string.
+ b, err := ioutil.ReadAll(io.LimitReader(randReader, 3))
+ if err != nil {
+ return "", err
}
- return false
-}
-func filterImplicitEnvVars(evs []corev1.EnvVar) []corev1.EnvVar {
- var envs []corev1.EnvVar
- for _, ev := range evs {
- if isImplicitEnvVar(ev) {
- continue
- }
- envs = append(envs, ev)
- }
- return envs
+ gibberish := hex.EncodeToString(b)
+ return fmt.Sprintf("%s-pod-%s", name, gibberish), nil
}
-func isImplicitVolumeMount(vm corev1.VolumeMount) bool {
- for _, ivm := range implicitVolumeMounts {
- if vm.Name == ivm.Name {
- return true
- }
+// BuildStatusFromPod returns a BuildStatus based on the Pod and the original BuildSpec.
+func BuildStatusFromPod(p *corev1.Pod, buildSpec v1alpha1.BuildSpec) v1alpha1.BuildStatus {
+ status := v1alpha1.BuildStatus{
+ Builder: v1alpha1.ClusterBuildProvider,
+ Cluster: &v1alpha1.ClusterSpec{
+ Namespace: p.Namespace,
+ PodName: p.Name,
+ },
+ StartTime: &p.CreationTimestamp,
}
- return false
-}
-func filterImplicitVolumeMounts(vms []corev1.VolumeMount) []corev1.VolumeMount {
- var volumes []corev1.VolumeMount
- for _, vm := range vms {
- if isImplicitVolumeMount(vm) {
- continue
- }
- volumes = append(volumes, vm)
+ // Always ignore the first pod status, which is creds-init.
+ skip := 1
+ if buildSpec.Source != nil {
+ // If the build specifies source, skip another container status, which
+ // is the source-fetching container.
+ skip++
}
- return volumes
-}
-
-func isImplicitVolume(v corev1.Volume) bool {
- for _, iv := range implicitVolumes {
- if v.Name == iv.Name {
- return true
+ // Also skip multiple sourcees specified by the build.
+ skip += len(buildSpec.Sources)
+ if skip <= len(p.Status.InitContainerStatuses) {
+ for _, s := range p.Status.InitContainerStatuses[skip:] {
+ if s.State.Terminated != nil {
+ status.StepsCompleted = append(status.StepsCompleted, s.Name)
+ }
+ status.StepStates = append(status.StepStates, s.State)
}
}
- if strings.HasPrefix(v.Name, "secret-volume-") {
- return true
- }
- return false
-}
-func filterImplicitVolumes(vs []corev1.Volume) []corev1.Volume {
- var volumes []corev1.Volume
- for _, v := range vs {
- if isImplicitVolume(v) {
- continue
- }
- volumes = append(volumes, v)
+ switch p.Status.Phase {
+ case corev1.PodRunning:
+ status.SetCondition(&duckv1alpha1.Condition{
+ Type: v1alpha1.BuildSucceeded,
+ Status: corev1.ConditionUnknown,
+ Reason: "Building",
+ })
+ case corev1.PodFailed:
+ msg := getFailureMessage(p)
+ status.SetCondition(&duckv1alpha1.Condition{
+ Type: v1alpha1.BuildSucceeded,
+ Status: corev1.ConditionFalse,
+ Message: msg,
+ })
+ case corev1.PodPending:
+ msg := getWaitingMessage(p)
+ status.SetCondition(&duckv1alpha1.Condition{
+ Type: v1alpha1.BuildSucceeded,
+ Status: corev1.ConditionUnknown,
+ Reason: "Pending",
+ Message: msg,
+ })
+ case corev1.PodSucceeded:
+ status.SetCondition(&duckv1alpha1.Condition{
+ Type: v1alpha1.BuildSucceeded,
+ Status: corev1.ConditionTrue,
+ })
}
- return volumes
+ return status
}
-// ToCRD coverts a Pod generated by FromCRD back to a custom resource
-// definition. This function is only used for testing.
-func ToCRD(pod *corev1.Pod) (*v1alpha1.Build, error) {
- podSpec := pod.Spec.DeepCopy()
-
- if len(podSpec.Containers) != 1 {
- return nil, fmt.Errorf("unrecognized container spec, got: %v", podSpec.Containers)
- }
-
- subPath := ""
- var steps []corev1.Container
- for _, step := range podSpec.InitContainers {
- if step.WorkingDir == workspaceDir {
- step.WorkingDir = ""
- }
- step.Env = filterImplicitEnvVars(step.Env)
- for _, m := range step.VolumeMounts {
- if m.Name == "workspace" && m.SubPath != "" && subPath == "" {
- subPath = m.SubPath
- }
+func getWaitingMessage(pod *corev1.Pod) string {
+ // First, try to surface reason for pending/unknown about the actual build step.
+ for _, status := range pod.Status.InitContainerStatuses {
+ wait := status.State.Waiting
+ if wait != nil && wait.Message != "" {
+ return fmt.Sprintf("build step %q is pending with reason %q",
+ status.Name, wait.Message)
}
- step.VolumeMounts = filterImplicitVolumeMounts(step.VolumeMounts)
- // Strip the init container prefix that is added automatically.
- if strings.HasPrefix(step.Name, unnamedInitContainerPrefix) {
- step.Name = ""
- } else {
- step.Name = strings.TrimPrefix(step.Name, initContainerPrefix)
+ }
+ // Try to surface underlying reason by inspecting pod's recent status if condition is not true
+ for i, podStatus := range pod.Status.Conditions {
+ if podStatus.Status != corev1.ConditionTrue {
+ return fmt.Sprintf("pod status %q:%q; message: %q",
+ pod.Status.Conditions[i].Type,
+ pod.Status.Conditions[i].Status,
+ pod.Status.Conditions[i].Message)
}
- steps = append(steps, step)
}
- volumes := filterImplicitVolumes(podSpec.Volumes)
-
- // Strip the credential initializer.
- if steps[0].Name == credsInit {
- steps = steps[1:]
+ // Next, return the Pod's status message if it has one.
+ if pod.Status.Message != "" {
+ return pod.Status.Message
}
- var scm *v1alpha1.SourceSpec
- if conv, ok := containerToSourceMap[steps[0].Name]; ok {
- src, err := conv(steps[0])
- if err != nil {
- return nil, err
- }
- // The first init container is actually a source step. Convert
- // it to our source spec and pop it off the list of steps.
- scm = src
- if subPath != "" {
- scm.SubPath = subPath
+ // Lastly fall back on a generic pending message.
+ return "Pending"
+}
+
+func getFailureMessage(pod *corev1.Pod) string {
+ // First, try to surface an error about the actual build step that failed.
+ for _, status := range pod.Status.InitContainerStatuses {
+ term := status.State.Terminated
+ if term != nil && term.ExitCode != 0 {
+ return fmt.Sprintf("build step %q exited with code %d (image: %q); for logs run: kubectl -n %s logs %s -c %s",
+ status.Name, term.ExitCode, status.ImageID,
+ pod.Namespace, pod.Name, status.Name)
}
- steps = steps[1:]
}
-
- return &v1alpha1.Build{
- // TODO(mattmoor): What should we do for ObjectMeta stuff?
- Spec: v1alpha1.BuildSpec{
- Source: scm,
- Steps: steps,
- ServiceAccountName: podSpec.ServiceAccountName,
- Volumes: volumes,
- NodeSelector: podSpec.NodeSelector,
- Affinity: podSpec.Affinity,
- },
- }, nil
+ // Next, return the Pod's status message if it has one.
+ if pod.Status.Message != "" {
+ return pod.Status.Message
+ }
+ // Lastly fall back on a generic error message.
+ return "build failed for unspecified reasons."
}
diff --git a/vendor/github.com/knative/build/pkg/reconciler/build/timeout_handler.go b/vendor/github.com/knative/build/pkg/reconciler/build/timeout_handler.go
new file mode 100644
index 0000000000..a3da5c69d1
--- /dev/null
+++ b/vendor/github.com/knative/build/pkg/reconciler/build/timeout_handler.go
@@ -0,0 +1,137 @@
+package build
+
+import (
+ "fmt"
+ "sync"
+ "time"
+
+ v1alpha1 "github.com/knative/build/pkg/apis/build/v1alpha1"
+ clientset "github.com/knative/build/pkg/client/clientset/versioned"
+ duckv1alpha1 "github.com/knative/pkg/apis/duck/v1alpha1"
+ "go.uber.org/zap"
+ corev1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/api/errors"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/client-go/kubernetes"
+)
+
+var (
+ done = make(map[string]chan bool)
+ doneMut = sync.Mutex{}
+)
+
+// TimeoutSet contains required k8s interfaces to handle build timeouts
+type TimeoutSet struct {
+ logger *zap.SugaredLogger
+ kubeclientset kubernetes.Interface
+ buildclientset clientset.Interface
+ stopCh <-chan struct{}
+}
+
+// NewTimeoutHandler returns TimeoutSet filled structure
+func NewTimeoutHandler(logger *zap.SugaredLogger,
+ kubeclientset kubernetes.Interface,
+ buildclientset clientset.Interface,
+ stopCh <-chan struct{}) *TimeoutSet {
+ return &TimeoutSet{
+ logger: logger,
+ kubeclientset: kubeclientset,
+ buildclientset: buildclientset,
+ stopCh: stopCh,
+ }
+}
+
+// CheckTimeouts walks through all builds and creates t.wait goroutines that handles build timeout
+func (t *TimeoutSet) CheckTimeouts() {
+ namespaces, err := t.kubeclientset.CoreV1().Namespaces().List(metav1.ListOptions{})
+ if err != nil {
+ t.logger.Errorf("Can't get namespaces list: %s", err)
+ }
+ for _, namespace := range namespaces.Items {
+ builds, err := t.buildclientset.BuildV1alpha1().Builds(namespace.GetName()).List(metav1.ListOptions{})
+ if err != nil {
+ t.logger.Errorf("Can't get builds list: %s", err)
+ }
+ for _, build := range builds.Items {
+ build := build
+ if isDone(&build.Status) {
+ continue
+ }
+ if isCancelled(build.Spec) {
+ continue
+ }
+ go t.wait(&build)
+ }
+ }
+}
+
+func (t *TimeoutSet) wait(build *v1alpha1.Build) {
+ key := fmt.Sprintf("%s/%s", build.Namespace, build.Name)
+ timeout := defaultTimeout
+ if build.Spec.Timeout != nil {
+ timeout = build.Spec.Timeout.Duration
+ }
+ runtime := time.Duration(0)
+ statusLock(build)
+ if build.Status.StartTime != nil && !build.Status.StartTime.Time.IsZero() {
+ runtime = time.Since(build.Status.StartTime.Time)
+ }
+ statusUnlock(build)
+ timeout -= runtime
+
+ finished := make(chan bool)
+ doneMut.Lock()
+ done[key] = finished
+ doneMut.Unlock()
+ defer t.release(build)
+
+ select {
+ case <-t.stopCh:
+ case <-finished:
+ case <-time.After(timeout):
+ if err := t.stopBuild(build); err != nil {
+ t.logger.Errorf("Can't stop build %q after timeout: %s", build.Name, err)
+ }
+ }
+}
+
+func (t *TimeoutSet) release(build *v1alpha1.Build) {
+ doneMut.Lock()
+ defer doneMut.Unlock()
+ key := fmt.Sprintf("%s/%s", build.Namespace, build.Name)
+ if finished, ok := done[key]; ok {
+ delete(done, key)
+ close(finished)
+ }
+}
+
+func (t *TimeoutSet) stopBuild(build *v1alpha1.Build) error {
+ statusLock(build)
+ defer statusUnlock(build)
+ if build.Status.Cluster != nil {
+ if err := t.kubeclientset.CoreV1().Pods(build.Namespace).Delete(build.Status.Cluster.PodName, &metav1.DeleteOptions{}); err != nil && !errors.IsNotFound(err) {
+ return err
+ }
+ }
+
+ timeout := defaultTimeout
+ if build.Spec.Timeout != nil {
+ timeout = build.Spec.Timeout.Duration
+ }
+ build.Status.SetCondition(&duckv1alpha1.Condition{
+ Type: v1alpha1.BuildSucceeded,
+ Status: corev1.ConditionFalse,
+ Reason: "BuildTimeout",
+ Message: fmt.Sprintf("Build %q failed to finish within %q", build.Name, timeout.String()),
+ })
+ build.Status.CompletionTime = &metav1.Time{time.Now()}
+
+ newb, err := t.buildclientset.BuildV1alpha1().Builds(build.Namespace).Get(build.Name, metav1.GetOptions{})
+ if err != nil {
+ return err
+ }
+
+ newb.Status = build.Status
+ _, err = t.buildclientset.BuildV1alpha1().Builds(build.Namespace).UpdateStatus(newb)
+ return err
+}
diff --git a/vendor/github.com/knative/build/pkg/reconciler/build/validate_build.go b/vendor/github.com/knative/build/pkg/reconciler/build/validate_build.go
index 46c9061a62..4e363607a9 100644
--- a/vendor/github.com/knative/build/pkg/reconciler/build/validate_build.go
+++ b/vendor/github.com/knative/build/pkg/reconciler/build/validate_build.go
@@ -20,8 +20,10 @@ import (
"strings"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/apimachinery/pkg/util/sets"
"github.com/knative/build/pkg/apis/build/v1alpha1"
+ "github.com/knative/build/pkg/reconciler/build/resources"
)
func (ac *Reconciler) validateBuild(b *v1alpha1.Build) error {
@@ -63,8 +65,9 @@ func (ac *Reconciler) validateBuild(b *v1alpha1.Build) error {
}
}
- // Do builder-implementation-specific validation.
- return ac.builder.Validate(b)
+ // Ensure the build can be translated to a Pod.
+ _, err = resources.MakePod(b, ac.kubeclientset)
+ return err
}
// validateSecrets checks that if the Build specifies a ServiceAccount, that it
@@ -109,12 +112,12 @@ func (ac *Reconciler) validateSecrets(b *v1alpha1.Build) error {
func validateArguments(args []v1alpha1.ArgumentSpec, tmpl v1alpha1.BuildTemplateInterface) error {
// Build must not duplicate argument names.
- seen := map[string]struct{}{}
+ seen := sets.NewString()
for _, a := range args {
- if _, ok := seen[a.Name]; ok {
+ if seen.Has(a.Name) {
return validationError("DuplicateArgName", "duplicate argument name %q", a.Name)
}
- seen[a.Name] = struct{}{}
+ seen.Insert(a.Name)
}
// If a build specifies a template, all the template's parameters without
// defaults must be satisfied by the build's parameters.
diff --git a/vendor/github.com/knative/build/pkg/reconciler/buildtemplate/resources/imagecache.go b/vendor/github.com/knative/build/pkg/reconciler/buildtemplate/resources/imagecache.go
index c4fe840eaa..b55895b031 100644
--- a/vendor/github.com/knative/build/pkg/reconciler/buildtemplate/resources/imagecache.go
+++ b/vendor/github.com/knative/build/pkg/reconciler/buildtemplate/resources/imagecache.go
@@ -20,12 +20,12 @@ import (
"strings"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-
- "github.com/knative/pkg/kmeta"
+ "k8s.io/apimachinery/pkg/util/sets"
"github.com/knative/build/pkg/apis/build/v1alpha1"
"github.com/knative/build/pkg/reconciler/buildtemplate/resources/names"
caching "github.com/knative/caching/pkg/apis/caching/v1alpha1"
+ "github.com/knative/pkg/kmeta"
)
// Note: namespace is passed separately because this may be used for
@@ -37,7 +37,7 @@ func MakeImageCachesFromSpec(
var caches []caching.Image
// Avoid duplicates.
- images := make(map[string]struct{})
+ images := sets.NewString()
for index, container := range bt.TemplateSpec().Steps {
// TODO(mattmoor): Consider substituting default values to
@@ -46,10 +46,10 @@ func MakeImageCachesFromSpec(
// Skip image names containing substitutions.
continue
}
- if _, ok := images[container.Image]; ok {
+ if images.Has(container.Image) {
continue
}
- images[container.Image] = struct{}{}
+ images.Insert(container.Image)
caches = append(caches, caching.Image{
ObjectMeta: metav1.ObjectMeta{
diff --git a/vendor/github.com/knative/build/pkg/reconciler/clusterbuildtemplate/clusterbuildtemplate.go b/vendor/github.com/knative/build/pkg/reconciler/clusterbuildtemplate/clusterbuildtemplate.go
index cb581b50cc..0943f654f7 100644
--- a/vendor/github.com/knative/build/pkg/reconciler/clusterbuildtemplate/clusterbuildtemplate.go
+++ b/vendor/github.com/knative/build/pkg/reconciler/clusterbuildtemplate/clusterbuildtemplate.go
@@ -39,10 +39,10 @@ import (
"github.com/knative/build/pkg/reconciler"
"github.com/knative/build/pkg/reconciler/buildtemplate"
"github.com/knative/build/pkg/reconciler/clusterbuildtemplate/resources"
- "github.com/knative/build/pkg/system"
cachingclientset "github.com/knative/caching/pkg/client/clientset/versioned"
cachinginformers "github.com/knative/caching/pkg/client/informers/externalversions/caching/v1alpha1"
cachinglisters "github.com/knative/caching/pkg/client/listers/caching/v1alpha1"
+ "github.com/knative/pkg/system"
)
const controllerAgentName = "clusterbuildtemplate-controller"
@@ -142,7 +142,7 @@ func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
func (c *Reconciler) reconcileImageCaches(ctx context.Context, cbt *v1alpha1.ClusterBuildTemplate) error {
ics := resources.MakeImageCaches(cbt)
- eics, err := c.imagesLister.Images(system.Namespace).List(kmeta.MakeVersionLabelSelector(cbt))
+ eics, err := c.imagesLister.Images(system.Namespace()).List(kmeta.MakeVersionLabelSelector(cbt))
if err != nil {
return err
}
@@ -154,7 +154,7 @@ func (c *Reconciler) reconcileImageCaches(ctx context.Context, cbt *v1alpha1.Clu
// Delete any Image caches relevant to older versions of this resource.
propPolicy := metav1.DeletePropagationForeground
- return c.cachingclientset.CachingV1alpha1().Images(system.Namespace).DeleteCollection(
+ return c.cachingclientset.CachingV1alpha1().Images(system.Namespace()).DeleteCollection(
&metav1.DeleteOptions{PropagationPolicy: &propPolicy},
metav1.ListOptions{LabelSelector: kmeta.MakeOldVersionLabelSelector(cbt).String()},
)
diff --git a/vendor/github.com/knative/build/pkg/reconciler/clusterbuildtemplate/resources/imagecache.go b/vendor/github.com/knative/build/pkg/reconciler/clusterbuildtemplate/resources/imagecache.go
index 9eb59e0fa5..116a08ff08 100644
--- a/vendor/github.com/knative/build/pkg/reconciler/clusterbuildtemplate/resources/imagecache.go
+++ b/vendor/github.com/knative/build/pkg/reconciler/clusterbuildtemplate/resources/imagecache.go
@@ -19,10 +19,10 @@ package resources
import (
"github.com/knative/build/pkg/apis/build/v1alpha1"
buildtemplateresources "github.com/knative/build/pkg/reconciler/buildtemplate/resources"
- "github.com/knative/build/pkg/system"
caching "github.com/knative/caching/pkg/apis/caching/v1alpha1"
+ "github.com/knative/pkg/system"
)
func MakeImageCaches(bt *v1alpha1.ClusterBuildTemplate) []caching.Image {
- return buildtemplateresources.MakeImageCachesFromSpec(system.Namespace, bt)
+ return buildtemplateresources.MakeImageCachesFromSpec(system.Namespace(), bt)
}
diff --git a/vendor/github.com/knative/build/test/e2e/e2e.go b/vendor/github.com/knative/build/test/e2e/e2e.go
index 0d48f59888..f9df78a0f1 100644
--- a/vendor/github.com/knative/build/test/e2e/e2e.go
+++ b/vendor/github.com/knative/build/test/e2e/e2e.go
@@ -20,20 +20,20 @@ package e2e
import (
"errors"
+ "flag"
"fmt"
+ "github.com/knative/build/pkg/apis/build/v1alpha1"
+ buildversioned "github.com/knative/build/pkg/client/clientset/versioned"
+ buildtyped "github.com/knative/build/pkg/client/clientset/versioned/typed/build/v1alpha1"
"github.com/knative/pkg/test"
"github.com/knative/pkg/test/logging"
corev1 "k8s.io/api/core/v1"
+ kuberrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/watch"
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
"k8s.io/client-go/tools/clientcmd"
-
- "github.com/knative/build/pkg/apis/build/v1alpha1"
- buildversioned "github.com/knative/build/pkg/client/clientset/versioned"
- buildtyped "github.com/knative/build/pkg/client/clientset/versioned/typed/build/v1alpha1"
- kuberrors "k8s.io/apimachinery/pkg/api/errors"
)
type clients struct {
@@ -41,9 +41,15 @@ type clients struct {
buildClient *buildClient
}
-const buildTestNamespace = "build-tests"
+var (
+ // Sentinel error from watchBuild when the build failed.
+ errBuildFailed = errors.New("build failed")
-func teardownNamespace(clients *clients, logger *logging.BaseLogger) {
+ // Sentinal error from watchBuild when watch timed out before build finished
+ errWatchTimeout = errors.New("watch ended before build finished")
+)
+
+func teardownNamespace(clients *clients, buildTestNamespace string, logger *logging.BaseLogger) {
if clients != nil && clients.kubeClient != nil {
logger.Infof("Deleting namespace %q", buildTestNamespace)
@@ -53,7 +59,7 @@ func teardownNamespace(clients *clients, logger *logging.BaseLogger) {
}
}
-func teardownBuild(clients *clients, logger *logging.BaseLogger, name string) {
+func teardownBuild(clients *clients, logger *logging.BaseLogger, buildTestNamespace, name string) {
if clients != nil && clients.buildClient != nil {
logger.Infof("Deleting build %q in namespace %q", name, buildTestNamespace)
@@ -73,7 +79,7 @@ func teardownClusterTemplate(clients *clients, logger *logging.BaseLogger, name
}
}
-func buildClients(logger *logging.BaseLogger) *clients {
+func buildClients(buildTestNamespace string, logger *logging.BaseLogger) *clients {
clients, err := newClients(test.Flags.Kubeconfig, test.Flags.Cluster, buildTestNamespace)
if err != nil {
logger.Fatalf("Error creating newClients: %v", err)
@@ -81,8 +87,9 @@ func buildClients(logger *logging.BaseLogger) *clients {
return clients
}
-func setup(logger *logging.BaseLogger) *clients {
- clients := buildClients(logger)
+func createTestNamespace(logger *logging.BaseLogger) (string, *clients) {
+ buildTestNamespace := AppendRandomString("build-tests")
+ clients := buildClients(buildTestNamespace, logger)
// Ensure the test namespace exists, by trying to create it and ignoring
// already-exists errors.
@@ -97,7 +104,7 @@ func setup(logger *logging.BaseLogger) *clients {
} else {
logger.Fatalf("Error creating namespace %q: %v", buildTestNamespace, err)
}
- return clients
+ return buildTestNamespace, clients
}
func newClients(configPath string, clusterName string, namespace string) (*clients, error) {
@@ -144,7 +151,9 @@ type buildClient struct {
func (c *buildClient) watchBuild(name string) (*v1alpha1.Build, error) {
ls := metav1.SingleObject(metav1.ObjectMeta{Name: name})
// TODO: Update watchBuild function to take this as parameter depending on test requirements
- // Set build timeout to 120 seconds. This will trigger watch timeout error
+
+ // Any build that takes longer than this timeout will result in
+ // errWatchTimeout.
var timeout int64 = 120
ls.TimeoutSeconds = &timeout
@@ -152,6 +161,7 @@ func (c *buildClient) watchBuild(name string) (*v1alpha1.Build, error) {
if err != nil {
return nil, err
}
+ var latest *v1alpha1.Build
for evt := range w.ResultChan() {
switch evt.Type {
case watch.Deleted:
@@ -164,6 +174,7 @@ func (c *buildClient) watchBuild(name string) (*v1alpha1.Build, error) {
if !ok {
return nil, fmt.Errorf("object was not a Build: %v", err)
}
+ latest = b
for _, cond := range b.Status.Conditions {
if cond.Type == v1alpha1.BuildSucceeded {
@@ -171,12 +182,32 @@ func (c *buildClient) watchBuild(name string) (*v1alpha1.Build, error) {
case corev1.ConditionTrue:
return b, nil
case corev1.ConditionFalse:
- return b, errors.New("build failed")
+ return b, errBuildFailed
case corev1.ConditionUnknown:
continue
}
}
}
}
- return nil, errors.New("watch ended before build completion")
+ return latest, errWatchTimeout
+}
+
+// initialize is responsible for setting up and tearing down the testing environment,
+// namely the test namespace.
+func initialize(contextName string) (string, *logging.BaseLogger, *clients) {
+ flag.Parse()
+ logging.InitializeLogger(test.Flags.LogVerbose)
+ logger := logging.GetContextLogger("initialize")
+ flag.Set("alsologtostderr", "true")
+ if test.Flags.EmitMetrics {
+ logging.InitializeMetricExporter()
+ }
+
+ buildTestNamespace, clients := createTestNamespace(logger)
+
+ // Cleanup namespace
+ test.CleanupOnInterrupt(func() { teardownNamespace(clients, buildTestNamespace, logger) }, logger)
+
+ testLogger := logging.GetContextLogger(contextName)
+ return buildTestNamespace, testLogger, buildClients(buildTestNamespace, testLogger)
}
diff --git a/vendor/github.com/knative/build/test/e2e/randstring.go b/vendor/github.com/knative/build/test/e2e/randstring.go
new file mode 100644
index 0000000000..1a74858ed7
--- /dev/null
+++ b/vendor/github.com/knative/build/test/e2e/randstring.go
@@ -0,0 +1,61 @@
+/*
+Copyright 2018 Knative Authors LLC
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package e2e
+
+import (
+ "math/rand"
+ "strings"
+ "sync"
+ "time"
+)
+
+const (
+ letterBytes = "abcdefghijklmnopqrstuvwxyz"
+ randSuffixLen = 8
+)
+
+// r is used by AppendRandomString to generate a random string. It is seeded with the time
+// at import so the strings will be different between test runs.
+var (
+ r *rand.Rand
+ rndMutex *sync.Mutex
+)
+
+// once is used to initialize r
+var once sync.Once
+
+func initSeed() {
+ seed := time.Now().UTC().UnixNano()
+ r = rand.New(rand.NewSource(seed))
+ rndMutex = &sync.Mutex{}
+}
+
+// AppendRandomString will generate a random string that begins with prefix. This is useful
+// if you want to make sure that your tests can run at the same time against the same
+// environment without conflicting. This method will seed rand with the current time when
+// called for the first time.
+// TODO(https://github.com/knative/pkg/issues/226): Use a shared version from knative/pkg.
+func AppendRandomString(prefix string) string {
+ once.Do(initSeed)
+ suffix := make([]byte, randSuffixLen)
+ rndMutex.Lock()
+ for i := range suffix {
+ suffix[i] = letterBytes[r.Intn(len(letterBytes))]
+ }
+ rndMutex.Unlock()
+ return strings.Join([]string{prefix, string(suffix)}, "-")
+}
diff --git a/vendor/github.com/knative/eventing/AUTHORS b/vendor/github.com/knative/eventing/AUTHORS
index 2ac441ff86..2ab352dbf3 100644
--- a/vendor/github.com/knative/eventing/AUTHORS
+++ b/vendor/github.com/knative/eventing/AUTHORS
@@ -6,3 +6,4 @@
Google LLC
Pivotal Software, Inc.
Red Hat, Inc.
+IBM Corp
diff --git a/vendor/github.com/knative/eventing/pkg/apis/eventing/v1alpha1/channel_types.go b/vendor/github.com/knative/eventing/pkg/apis/eventing/v1alpha1/channel_types.go
index 2b6606bb71..724925bfda 100644
--- a/vendor/github.com/knative/eventing/pkg/apis/eventing/v1alpha1/channel_types.go
+++ b/vendor/github.com/knative/eventing/pkg/apis/eventing/v1alpha1/channel_types.go
@@ -27,7 +27,6 @@ import (
)
// +genclient
-// +genclient:noStatus
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// Channel is an abstract resource that implements the Addressable contract.
@@ -57,12 +56,14 @@ var _ webhook.GenericCRD = (*Channel)(nil)
// ChannelSpec specifies the Provisioner backing a channel and the configuration
// arguments for a Channel.
type ChannelSpec struct {
- // TODO: Generation does not work correctly with CRD. They are scrubbed
- // by the APIserver (https://github.com/kubernetes/kubernetes/issues/58778)
- // So, we add Generation here. Once that gets fixed, remove this and use
- // ObjectMeta.Generation instead.
+ // TODO By enabling the status subresource metadata.generation should increment
+ // thus making this property obsolete.
+ //
+ // We should be able to drop this property with a CRD conversion webhook
+ // in the future
+ //
// +optional
- Generation int64 `json:"generation,omitempty"`
+ DeprecatedGeneration int64 `json:"generation,omitempty"`
// Provisioner defines the name of the Provisioner backing this channel.
Provisioner *corev1.ObjectReference `json:"provisioner,omitempty"`
diff --git a/vendor/github.com/knative/eventing/pkg/apis/eventing/v1alpha1/cluster_channel_provisioner_types.go b/vendor/github.com/knative/eventing/pkg/apis/eventing/v1alpha1/cluster_channel_provisioner_types.go
index 751925c66e..f38984327d 100644
--- a/vendor/github.com/knative/eventing/pkg/apis/eventing/v1alpha1/cluster_channel_provisioner_types.go
+++ b/vendor/github.com/knative/eventing/pkg/apis/eventing/v1alpha1/cluster_channel_provisioner_types.go
@@ -53,12 +53,14 @@ var _ webhook.GenericCRD = (*ClusterChannelProvisioner)(nil)
// ClusterChannelProvisionerSpec is the spec for a ClusterChannelProvisioner resource.
type ClusterChannelProvisionerSpec struct {
- // TODO: Generation does not work correctly with CRD. They are scrubbed
- // by the APIserver (https://github.com/kubernetes/kubernetes/issues/58778)
- // So, we add Generation here. Once that gets fixed, remove this and use
- // ObjectMeta.Generation instead.
+ // TODO By enabling the status subresource metadata.generation should increment
+ // thus making this property obsolete.
+ //
+ // We should be able to drop this property with a CRD conversion webhook
+ // in the future
+ //
// +optional
- Generation int64 `json:"generation,omitempty"`
+ DeprecatedGeneration int64 `json:"generation,omitempty"`
}
var ccProvCondSet = duckv1alpha1.NewLivingConditionSet()
diff --git a/vendor/github.com/knative/eventing/pkg/apis/eventing/v1alpha1/subscription_types.go b/vendor/github.com/knative/eventing/pkg/apis/eventing/v1alpha1/subscription_types.go
index 1d7b2950ee..d50a503e89 100644
--- a/vendor/github.com/knative/eventing/pkg/apis/eventing/v1alpha1/subscription_types.go
+++ b/vendor/github.com/knative/eventing/pkg/apis/eventing/v1alpha1/subscription_types.go
@@ -60,12 +60,14 @@ var _ webhook.GenericCRD = (*Subscription)(nil)
// no-op function (identity transformation):
// channel --> reply
type SubscriptionSpec struct {
- // TODO: Generation used to not work correctly with CRD. They were scrubbed
- // by the APIserver (https://github.com/kubernetes/kubernetes/issues/58778)
- // So, we add Generation here. Once the above bug gets rolled out to production
- // clusters, remove this and use ObjectMeta.Generation instead.
+ // TODO By enabling the status subresource metadata.generation should increment
+ // thus making this property obsolete.
+ //
+ // We should be able to drop this property with a CRD conversion webhook
+ // in the future
+ //
// +optional
- Generation int64 `json:"generation,omitempty"`
+ DeprecatedGeneration int64 `json:"generation,omitempty"`
// Reference to a channel that will be used to create the subscription
// for receiving events. The channel must have spec.subscriptions
@@ -170,17 +172,17 @@ type SubscriptionStatus struct {
Conditions duckv1alpha1.Conditions `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// PhysicalSubscription is the fully resolved values that this Subscription represents.
- PhysicalSubscription SubscriptionStatusPhysicalSubscription `json:"physicalSubscription,omitEmpty"`
+ PhysicalSubscription SubscriptionStatusPhysicalSubscription `json:"physicalSubscription,omitempty"`
}
// SubscriptionStatusPhysicalSubscription represents the fully resolved values for this
// Subscription.
type SubscriptionStatusPhysicalSubscription struct {
// SubscriberURI is the fully resolved URI for spec.subscriber.
- SubscriberURI string `json:"subscriberURI,omitEmpty"`
+ SubscriberURI string `json:"subscriberURI,omitempty"`
// ReplyURI is the fully resolved URI for the spec.reply.
- ReplyURI string `json:"replyURI,omitEmpty"`
+ ReplyURI string `json:"replyURI,omitempty"`
}
const (
diff --git a/vendor/github.com/knative/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/channel.go b/vendor/github.com/knative/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/channel.go
index 71b1fe9cbf..962c0a450a 100644
--- a/vendor/github.com/knative/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/channel.go
+++ b/vendor/github.com/knative/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/channel.go
@@ -37,6 +37,7 @@ type ChannelsGetter interface {
type ChannelInterface interface {
Create(*v1alpha1.Channel) (*v1alpha1.Channel, error)
Update(*v1alpha1.Channel) (*v1alpha1.Channel, error)
+ UpdateStatus(*v1alpha1.Channel) (*v1alpha1.Channel, error)
Delete(name string, options *v1.DeleteOptions) error
DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error
Get(name string, options v1.GetOptions) (*v1alpha1.Channel, error)
@@ -120,6 +121,22 @@ func (c *channels) Update(channel *v1alpha1.Channel) (result *v1alpha1.Channel,
return
}
+// UpdateStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
+
+func (c *channels) UpdateStatus(channel *v1alpha1.Channel) (result *v1alpha1.Channel, err error) {
+ result = &v1alpha1.Channel{}
+ err = c.client.Put().
+ Namespace(c.ns).
+ Resource("channels").
+ Name(channel.Name).
+ SubResource("status").
+ Body(channel).
+ Do().
+ Into(result)
+ return
+}
+
// Delete takes name of the channel and deletes it. Returns an error if one occurs.
func (c *channels) Delete(name string, options *v1.DeleteOptions) error {
return c.client.Delete().
diff --git a/vendor/github.com/knative/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/fake/fake_channel.go b/vendor/github.com/knative/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/fake/fake_channel.go
index ef79d296a1..2f9f36739e 100644
--- a/vendor/github.com/knative/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/fake/fake_channel.go
+++ b/vendor/github.com/knative/eventing/pkg/client/clientset/versioned/typed/eventing/v1alpha1/fake/fake_channel.go
@@ -100,6 +100,18 @@ func (c *FakeChannels) Update(channel *v1alpha1.Channel) (result *v1alpha1.Chann
return obj.(*v1alpha1.Channel), err
}
+// UpdateStatus was generated because the type contains a Status member.
+// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
+func (c *FakeChannels) UpdateStatus(channel *v1alpha1.Channel) (*v1alpha1.Channel, error) {
+ obj, err := c.Fake.
+ Invokes(testing.NewUpdateSubresourceAction(channelsResource, "status", c.ns, channel), &v1alpha1.Channel{})
+
+ if obj == nil {
+ return nil, err
+ }
+ return obj.(*v1alpha1.Channel), err
+}
+
// Delete takes name of the channel and deletes it. Returns an error if one occurs.
func (c *FakeChannels) Delete(name string, options *v1.DeleteOptions) error {
_, err := c.Fake.
diff --git a/vendor/github.com/knative/eventing/pkg/controller/eventing/inmemory/channel/reconcile.go b/vendor/github.com/knative/eventing/pkg/controller/eventing/inmemory/channel/reconcile.go
index b8f5603421..c1c0d3d1cc 100644
--- a/vendor/github.com/knative/eventing/pkg/controller/eventing/inmemory/channel/reconcile.go
+++ b/vendor/github.com/knative/eventing/pkg/controller/eventing/inmemory/channel/reconcile.go
@@ -142,27 +142,14 @@ func (r *reconciler) reconcile(ctx context.Context, c *eventingv1alpha1.Channel)
logger.Info("Error creating the Channel's K8s Service", zap.Error(err))
return err
}
-
- // Check if this Channel is the owner of the K8s service.
- if !metav1.IsControlledBy(svc, c) {
- logger.Warn("Channel's K8s Service is not owned by the Channel", zap.Any("channel", c), zap.Any("service", svc))
- }
-
c.Status.SetAddress(controller.ServiceHostName(svc.Name, svc.Namespace))
- virtualService, err := util.CreateVirtualService(ctx, r.client, c)
-
+ _, err = util.CreateVirtualService(ctx, r.client, c, svc)
if err != nil {
logger.Info("Error creating the Virtual Service for the Channel", zap.Error(err))
return err
}
- // If the Virtual Service is not controlled by this Channel, we should log a warning, but don't
- // consider it an error.
- if !metav1.IsControlledBy(virtualService, c) {
- logger.Warn("VirtualService not owned by Channel", zap.Any("channel", c), zap.Any("virtualService", virtualService))
- }
-
c.Status.MarkProvisioned()
return nil
}
diff --git a/vendor/github.com/knative/eventing/pkg/controller/eventing/inmemory/clusterchannelprovisioner/reconcile.go b/vendor/github.com/knative/eventing/pkg/controller/eventing/inmemory/clusterchannelprovisioner/reconcile.go
index a182e113a9..5eb68ef525 100644
--- a/vendor/github.com/knative/eventing/pkg/controller/eventing/inmemory/clusterchannelprovisioner/reconcile.go
+++ b/vendor/github.com/knative/eventing/pkg/controller/eventing/inmemory/clusterchannelprovisioner/reconcile.go
@@ -61,6 +61,12 @@ func (r *reconciler) Reconcile(request reconcile.Request) (reconcile.Result, err
ctx := context.TODO()
logger := r.logger.With(zap.Any("request", request))
+ // Workaround until https://github.com/kubernetes-sigs/controller-runtime/issues/214 is fixed.
+ // The reconcile requests will include a namespace if they are triggered because of changes to the
+ // objects owned by this ClusterChannelProvisioner (e.g k8s service). Since ClusterChannelProvisioner is
+ // cluster-scoped we need to unset the namespace or otherwise the provisioner object cannot be looked up.
+ request.NamespacedName.Namespace = ""
+
ccp := &eventingv1alpha1.ClusterChannelProvisioner{}
err := r.client.Get(ctx, request.NamespacedName, ccp)
diff --git a/vendor/github.com/knative/eventing/pkg/controller/eventing/subscription/reconcile.go b/vendor/github.com/knative/eventing/pkg/controller/eventing/subscription/reconcile.go
index 87dfce24be..1220ff7b3d 100644
--- a/vendor/github.com/knative/eventing/pkg/controller/eventing/subscription/reconcile.go
+++ b/vendor/github.com/knative/eventing/pkg/controller/eventing/subscription/reconcile.go
@@ -160,36 +160,43 @@ func isNilOrEmptyReply(reply *v1alpha1.ReplyStrategy) bool {
return reply == nil || equality.Semantic.DeepEqual(reply, &v1alpha1.ReplyStrategy{})
}
+// updateStatus may in fact update the subscription's finalizers in addition to the status
func (r *reconciler) updateStatus(subscription *v1alpha1.Subscription) (*v1alpha1.Subscription, error) {
- newSubscription := &v1alpha1.Subscription{}
- err := r.client.Get(context.TODO(), client.ObjectKey{Namespace: subscription.Namespace, Name: subscription.Name}, newSubscription)
+ objectKey := client.ObjectKey{Namespace: subscription.Namespace, Name: subscription.Name}
+ latestSubscription := &v1alpha1.Subscription{}
- if err != nil {
+ if err := r.client.Get(context.TODO(), objectKey, latestSubscription); err != nil {
return nil, err
}
- updated := false
- if !equality.Semantic.DeepEqual(newSubscription.Finalizers, subscription.Finalizers) {
- newSubscription.SetFinalizers(subscription.ObjectMeta.Finalizers)
- updated = true
+ subscriptionChanged := false
+
+ if !equality.Semantic.DeepEqual(latestSubscription.Finalizers, subscription.Finalizers) {
+ latestSubscription.SetFinalizers(subscription.ObjectMeta.Finalizers)
+ if err := r.client.Update(context.TODO(), latestSubscription); err != nil {
+ return nil, err
+ }
+ subscriptionChanged = true
}
- if !equality.Semantic.DeepEqual(newSubscription.Status, subscription.Status) {
- newSubscription.Status = subscription.Status
- updated = true
+ if equality.Semantic.DeepEqual(latestSubscription.Status, subscription.Status) {
+ return latestSubscription, nil
}
- if updated {
- // Until #38113 is merged, we must use Update instead of UpdateStatus to
- // update the Status block of the Subscription resource. UpdateStatus will not
- // allow changes to the Spec of the resource, which is ideal for ensuring
- // nothing other than resource status has been updated.
- if err = r.client.Update(context.TODO(), newSubscription); err != nil {
+ if subscriptionChanged {
+ // Refetch
+ latestSubscription = &v1alpha1.Subscription{}
+ if err := r.client.Get(context.TODO(), objectKey, latestSubscription); err != nil {
return nil, err
}
}
- return newSubscription, nil
+ latestSubscription.Status = subscription.Status
+ if err := r.client.Status().Update(context.TODO(), latestSubscription); err != nil {
+ return nil, err
+ }
+
+ return latestSubscription, nil
}
// resolveSubscriberSpec resolves the Spec.Call object. If it's an
@@ -224,15 +231,19 @@ func (r *reconciler) resolveSubscriberSpec(namespace string, s v1alpha1.Subscrib
return "", err
}
t := duckv1alpha1.AddressableType{}
- err = duck.FromUnstructured(obj, &t)
- if err != nil {
- glog.Warningf("Failed to deserialize legacy target: %s", err)
- return "", err
+ if err := duck.FromUnstructured(obj, &t); err == nil {
+ if t.Status.Address != nil {
+ return domainToURL(t.Status.Address.Hostname), nil
+ }
}
- if t.Status.Address != nil {
- return domainToURL(t.Status.Address.Hostname), nil
+ legacy := duckv1alpha1.LegacyTarget{}
+ if err := duck.FromUnstructured(obj, &legacy); err == nil {
+ if legacy.Status.DomainInternal != "" {
+ return domainToURL(legacy.Status.DomainInternal), nil
+ }
}
+
return "", fmt.Errorf("status does not contain address")
}
diff --git a/vendor/github.com/knative/build/pkg/buildtest/json.go b/vendor/github.com/knative/eventing/pkg/controller/testing/builder.go
similarity index 67%
rename from vendor/github.com/knative/build/pkg/buildtest/json.go
rename to vendor/github.com/knative/eventing/pkg/controller/testing/builder.go
index 81ad8dd7d8..a4c4823ede 100644
--- a/vendor/github.com/knative/build/pkg/buildtest/json.go
+++ b/vendor/github.com/knative/eventing/pkg/controller/testing/builder.go
@@ -14,17 +14,13 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-package buildtest
+package testing
-import (
- "encoding/json"
-)
+import "k8s.io/apimachinery/pkg/runtime"
-// PrettyJSON pretty-prints a struct to a string.
-func PrettyJSON(x interface{}) (string, error) {
- b, err := json.MarshalIndent(x, "", " ")
- if err != nil {
- return "", err
- }
- return string(b), nil
+// Buildable allows test fixtures to use the builder pattern. The table
+// test runner will call Build() on any Buildable objects and use the result
+// as the test fixture.
+type Buildable interface {
+ Build() runtime.Object
}
diff --git a/vendor/github.com/knative/eventing/pkg/controller/testing/mock_client.go b/vendor/github.com/knative/eventing/pkg/controller/testing/mock_client.go
index 537db2174a..434cec83cf 100644
--- a/vendor/github.com/knative/eventing/pkg/controller/testing/mock_client.go
+++ b/vendor/github.com/knative/eventing/pkg/controller/testing/mock_client.go
@@ -18,6 +18,7 @@ package testing
import (
"context"
+
"k8s.io/apimachinery/pkg/runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
)
@@ -42,6 +43,7 @@ type MockList func(innerClient client.Client, ctx context.Context, opts *client.
type MockCreate func(innerClient client.Client, ctx context.Context, obj runtime.Object) (MockHandled, error)
type MockDelete func(innerClient client.Client, ctx context.Context, obj runtime.Object) (MockHandled, error)
type MockUpdate func(innerClient client.Client, ctx context.Context, obj runtime.Object) (MockHandled, error)
+type MockStatusUpdate func(innerClient client.Client, ctx context.Context, obj runtime.Object) (MockHandled, error)
var _ client.Client = (*MockClient)(nil)
@@ -52,16 +54,21 @@ type MockClient struct {
mocks Mocks
}
+type mockStatusWriter struct {
+ parent *MockClient
+}
+
// The mocks to run on each function type. Each function will run through the mocks in its list
// until one responds with 'Handled'. If there is more than one mock in the list, then the one that
// responds 'Handled' will be removed and not run on subsequent calls to the function. If no mocks
// respond 'Handled', then the real underlying client is called.
type Mocks struct {
- MockGets []MockGet
- MockLists []MockList
- MockCreates []MockCreate
- MockDeletes []MockDelete
- MockUpdates []MockUpdate
+ MockGets []MockGet
+ MockLists []MockList
+ MockCreates []MockCreate
+ MockDeletes []MockDelete
+ MockUpdates []MockUpdate
+ MockStatusUpdates []MockStatusUpdate
}
func NewMockClient(innerClient client.Client, mocks Mocks) *MockClient {
@@ -148,5 +155,22 @@ func (m *MockClient) Update(ctx context.Context, obj runtime.Object) error {
}
func (m *MockClient) Status() client.StatusWriter {
- return m.innerClient.Status()
+ return &mockStatusWriter{
+ parent: m,
+ }
+}
+
+func (w *mockStatusWriter) Update(ctx context.Context, obj runtime.Object) error {
+ mocks := w.parent.mocks.MockStatusUpdates
+
+ for i, mock := range mocks {
+ handled, err := mock(w.parent.innerClient, ctx, obj)
+ if handled == Handled {
+ if len(w.parent.mocks.MockStatusUpdates) > 1 {
+ w.parent.mocks.MockStatusUpdates = append(mocks[:i], mocks[i+1:]...)
+ }
+ return err
+ }
+ }
+ return w.parent.innerClient.Status().Update(ctx, obj)
}
diff --git a/vendor/github.com/knative/eventing/pkg/controller/testing/table.go b/vendor/github.com/knative/eventing/pkg/controller/testing/table.go
index af7195752d..a7691c59d3 100644
--- a/vendor/github.com/knative/eventing/pkg/controller/testing/table.go
+++ b/vendor/github.com/knative/eventing/pkg/controller/testing/table.go
@@ -79,6 +79,15 @@ type TestCase struct {
// Fake dynamic objects
Objects []runtime.Object
+ // OtherTestData is arbitrary data needed for the test. It is not used directly by the table
+ // testing framework. Instead it is used in the test method. E.g. setting up the responses for a
+ // fake GCP PubSub client can go in here, as no other field makes sense for it.
+ OtherTestData map[string]interface{}
+
+ // AdditionalVerification is for any verification that needs to be done on top of the normal
+ // result/error verification and WantPresent/WantAbsent.
+ AdditionalVerification []func(t *testing.T, tc *TestCase)
+
// IgnoreTimes causes comparisons to ignore fields of type apis.VolatileTime.
IgnoreTimes bool
}
@@ -106,6 +115,10 @@ func (tc *TestCase) Runner(t *testing.T, r reconcile.Reconciler, c *MockClient)
if err := tc.VerifyWantAbsent(c); err != nil {
t.Error(err)
}
+
+ for _, av := range tc.AdditionalVerification {
+ av(t, tc)
+ }
}
}
@@ -119,7 +132,8 @@ func (tc *TestCase) GetDynamicClient() dynamic.Interface {
// GetClient returns the mockClient to use for this test case.
func (tc *TestCase) GetClient() *MockClient {
- innerClient := fake.NewFakeClient(tc.InitialState...)
+ builtObjects := buildAllObjects(tc.InitialState)
+ innerClient := fake.NewFakeClient(builtObjects...)
return NewMockClient(innerClient, tc.Mocks)
}
@@ -188,7 +202,8 @@ func (se stateErrors) Error() string {
// to be present after reconciliation.
func (tc *TestCase) VerifyWantPresent(c client.Client) error {
var errs stateErrors
- for _, wp := range tc.WantPresent {
+ builtObjects := buildAllObjects(tc.WantPresent)
+ for _, wp := range builtObjects {
o, err := scheme.Scheme.New(wp.GetObjectKind().GroupVersionKind())
if err != nil {
errs.errors = append(errs.errors, fmt.Errorf("error creating a copy of %T: %v", wp, err))
@@ -249,3 +264,14 @@ func (tc *TestCase) VerifyWantAbsent(c client.Client) error {
}
return nil
}
+
+func buildAllObjects(objs []runtime.Object) []runtime.Object {
+ builtObjs := []runtime.Object{}
+ for _, obj := range objs {
+ if builder, ok := obj.(Buildable); ok {
+ obj = builder.Build()
+ }
+ builtObjs = append(builtObjs, obj)
+ }
+ return builtObjs
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/channel_util.go b/vendor/github.com/knative/eventing/pkg/provisioners/channel_util.go
index 54392f4ea5..057c0d6d12 100644
--- a/vendor/github.com/knative/eventing/pkg/provisioners/channel_util.go
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/channel_util.go
@@ -3,13 +3,15 @@ package provisioners
import (
"context"
"fmt"
+ "strings"
+
+ "k8s.io/apimachinery/pkg/labels"
istiov1alpha3 "github.com/knative/pkg/apis/istio/v1alpha3"
corev1 "k8s.io/api/core/v1"
- "k8s.io/apimachinery/pkg/api/errors"
+ k8serrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
- "k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/sets"
runtimeClient "sigs.k8s.io/controller-runtime/pkg/client"
@@ -22,12 +24,36 @@ import (
const (
PortName = "http"
PortNumber = 80
+ // EventingChannelLabel carries the name of knative's label for the channel
+ EventingChannelLabel = "eventing.knative.dev/channel"
+ // EventingProvisionerLabel carries the name of knative's label for the provisioner
+ EventingProvisionerLabel = "eventing.knative.dev/provisioner"
+
+ // TODO: Remove selection based on old labels ater the release
+
+ // OldEventingChannelLabel carries the name of knative's old label for the channel
+ OldEventingChannelLabel = "channel"
+ // OldEventingProvisionerLabel carries the name of knative's old label for the provisioner
+ OldEventingProvisionerLabel = "provisioner"
+)
+
+// AddFinalizerResult is used indicate whether a finalizer was added or already present.
+type AddFinalizerResult bool
+
+const (
+ FinalizerAlreadyPresent AddFinalizerResult = false
+ FinalizerAdded AddFinalizerResult = true
)
-func AddFinalizer(c *eventingv1alpha1.Channel, finalizerName string) {
+// AddFinalizer adds finalizerName to the Channel.
+func AddFinalizer(c *eventingv1alpha1.Channel, finalizerName string) AddFinalizerResult {
finalizers := sets.NewString(c.Finalizers...)
+ if finalizers.Has(finalizerName) {
+ return FinalizerAlreadyPresent
+ }
finalizers.Insert(finalizerName)
c.Finalizers = finalizers.List()
+ return FinalizerAdded
}
func RemoveFinalizer(c *eventingv1alpha1.Channel, finalizerName string) {
@@ -36,64 +62,123 @@ func RemoveFinalizer(c *eventingv1alpha1.Channel, finalizerName string) {
c.Finalizers = finalizers.List()
}
+func CreateK8sService(ctx context.Context, client runtimeClient.Client, c *eventingv1alpha1.Channel) (*corev1.Service, error) {
+ getSvc := func() (*corev1.Service, error) {
+ return getK8sService(ctx, client, c)
+ }
+ return createK8sService(ctx, client, getSvc, newK8sService(c))
+}
+
func getK8sService(ctx context.Context, client runtimeClient.Client, c *eventingv1alpha1.Channel) (*corev1.Service, error) {
- svcKey := types.NamespacedName{
+ list := &corev1.ServiceList{}
+ opts := &runtimeClient.ListOptions{
Namespace: c.Namespace,
- Name: ChannelServiceName(c.Name),
+ // TODO After the full release start selecting on new set of labels by using k8sServiceLabels(c)
+ LabelSelector: labels.SelectorFromSet(k8sOldServiceLabels(c)),
+ // TODO this is here because the fake client needs it. Remove this when it's no longer
+ // needed.
+ Raw: &metav1.ListOptions{
+ TypeMeta: metav1.TypeMeta{
+ APIVersion: corev1.SchemeGroupVersion.String(),
+ Kind: "Service",
+ },
+ },
}
- svc := &corev1.Service{}
- err := client.Get(ctx, svcKey, svc)
- return svc, err
+
+ err := client.List(ctx, opts, list)
+ if err != nil {
+ return nil, err
+ }
+ for _, svc := range list.Items {
+ if metav1.IsControlledBy(&svc, c) {
+ return &svc, nil
+ }
+ }
+
+ return nil, k8serrors.NewNotFound(schema.GroupResource{}, "")
}
-func CreateK8sService(ctx context.Context, client runtimeClient.Client, c *eventingv1alpha1.Channel) (*corev1.Service, error) {
- svc, err := getK8sService(ctx, client, c)
+type getService func() (*corev1.Service, error)
- if errors.IsNotFound(err) {
- svc = newK8sService(c)
+func createK8sService(ctx context.Context, client runtimeClient.Client, getSvc getService, svc *corev1.Service) (*corev1.Service, error) {
+ current, err := getSvc()
+ if k8serrors.IsNotFound(err) {
err = client.Create(ctx, svc)
- }
-
- // If an error occurred in either Get or Create, we need to reconcile again.
- if err != nil {
+ if err != nil {
+ return nil, err
+ }
+ return svc, nil
+ } else if err != nil {
return nil, err
}
- return svc, nil
+ // spec.clusterIP is immutable and is set on existing services. If we don't set this
+ // to the same value, we will encounter an error while updating.
+ svc.Spec.ClusterIP = current.Spec.ClusterIP
+ if !equality.Semantic.DeepDerivative(svc.Spec, current.Spec) ||
+ !expectedLabelsPresent(current.ObjectMeta.Labels, svc.ObjectMeta.Labels) {
+ current.Spec = svc.Spec
+ current.ObjectMeta.Labels = addExpectedLabels(current.ObjectMeta.Labels, svc.ObjectMeta.Labels)
+ err = client.Update(ctx, current)
+ if err != nil {
+ return nil, err
+ }
+ }
+ return current, nil
}
func getVirtualService(ctx context.Context, client runtimeClient.Client, c *eventingv1alpha1.Channel) (*istiov1alpha3.VirtualService, error) {
- vsk := runtimeClient.ObjectKey{
+ list := &istiov1alpha3.VirtualServiceList{}
+ opts := &runtimeClient.ListOptions{
Namespace: c.Namespace,
- Name: ChannelVirtualServiceName(c.ObjectMeta.Name),
+ // TODO After the full release start selecting on new set of labels by using virtualServiceLabels(c)
+ LabelSelector: labels.SelectorFromSet(virtualOldServiceLabels(c)),
+ // TODO this is here because the fake client needs it. Remove this when it's no longer
+ // needed.
+ Raw: &metav1.ListOptions{
+ TypeMeta: metav1.TypeMeta{
+ APIVersion: istiov1alpha3.SchemeGroupVersion.String(),
+ Kind: "VirtualService",
+ },
+ },
+ }
+
+ err := client.List(ctx, opts, list)
+ if err != nil {
+ return nil, err
+ }
+ for _, vs := range list.Items {
+ if metav1.IsControlledBy(&vs, c) {
+ return &vs, nil
+ }
}
- vs := &istiov1alpha3.VirtualService{}
- err := client.Get(ctx, vsk, vs)
- return vs, err
+
+ return nil, k8serrors.NewNotFound(schema.GroupResource{}, "")
}
-func CreateVirtualService(ctx context.Context, client runtimeClient.Client, channel *eventingv1alpha1.Channel) (*istiov1alpha3.VirtualService, error) {
+func CreateVirtualService(ctx context.Context, client runtimeClient.Client, channel *eventingv1alpha1.Channel, svc *corev1.Service) (*istiov1alpha3.VirtualService, error) {
virtualService, err := getVirtualService(ctx, client, channel)
// If the resource doesn't exist, we'll create it
- if errors.IsNotFound(err) {
- virtualService = newVirtualService(channel)
+ if k8serrors.IsNotFound(err) {
+ virtualService = newVirtualService(channel, svc)
err = client.Create(ctx, virtualService)
if err != nil {
return nil, err
}
return virtualService, nil
- }
- if err != nil {
+ } else if err != nil {
return nil, err
}
// Update VirtualService if it has changed. This is possible since in version 0.2.0, the destinationHost in
// spec.HTTP.Route for the dispatcher was changed from *-clusterbus to *-dispatcher. Even otherwise, this
// reconciliation is useful for the future mutations to the object.
- expected := newVirtualService(channel)
- if !equality.Semantic.DeepDerivative(expected.Spec, virtualService.Spec) {
+ expected := newVirtualService(channel, svc)
+ if !equality.Semantic.DeepDerivative(expected.Spec, virtualService.Spec) ||
+ !expectedLabelsPresent(virtualService.ObjectMeta.Labels, expected.ObjectMeta.Labels) {
virtualService.Spec = expected.Spec
+ virtualService.ObjectMeta.Labels = addExpectedLabels(virtualService.ObjectMeta.Labels, expected.ObjectMeta.Labels)
err := client.Update(ctx, virtualService)
if err != nil {
return nil, err
@@ -102,27 +187,71 @@ func CreateVirtualService(ctx context.Context, client runtimeClient.Client, chan
return virtualService, nil
}
+// checkExpectedLabels checks the presence of expected labels and its values and return true
+// if all labels are found.
+func expectedLabelsPresent(actual, expected map[string]string) bool {
+ for ke, ve := range expected {
+ if va, ok := actual[ke]; ok {
+ if strings.Compare(ve, va) == 0 {
+ continue
+ }
+ }
+ return false
+ }
+ return true
+}
+
+// addExpectedLabels adds expected labels
+func addExpectedLabels(actual, expected map[string]string) map[string]string {
+ consolidated := make(map[string]string, 0)
+ // First store all exisiting labels
+ for k, v := range actual {
+ consolidated[k] = v
+ }
+ // Second add all missing expected labels
+ for k, v := range expected {
+ consolidated[k] = v
+ }
+ return consolidated
+}
+
func UpdateChannel(ctx context.Context, client runtimeClient.Client, u *eventingv1alpha1.Channel) error {
+ objectKey := runtimeClient.ObjectKey{Namespace: u.Namespace, Name: u.Name}
channel := &eventingv1alpha1.Channel{}
- err := client.Get(ctx, runtimeClient.ObjectKey{Namespace: u.Namespace, Name: u.Name}, channel)
- if err != nil {
+
+ if err := client.Get(ctx, objectKey, channel); err != nil {
return err
}
- updated := false
+ channelChanged := false
+
if !equality.Semantic.DeepEqual(channel.Finalizers, u.Finalizers) {
channel.SetFinalizers(u.ObjectMeta.Finalizers)
- updated = true
+ if err := client.Update(ctx, channel); err != nil {
+ return err
+ }
+
+ channelChanged = true
}
- if !equality.Semantic.DeepEqual(channel.Status, u.Status) {
- channel.Status = u.Status
- updated = true
+ if equality.Semantic.DeepEqual(channel.Status, u.Status) {
+ return nil
}
- if updated {
- return client.Update(ctx, channel)
+ if channelChanged {
+ // Refetch
+ channel = &eventingv1alpha1.Channel{}
+ if err := client.Get(ctx, objectKey, channel); err != nil {
+ return err
+ }
+ }
+
+ channel.Status = u.Status
+
+ if err := client.Status().Update(ctx, channel); err != nil {
+ return err
}
+
return nil
}
@@ -130,15 +259,11 @@ func UpdateChannel(ctx context.Context, client runtimeClient.Client, u *eventing
// OwnerReferences on the resource so handleObject can discover the Channel resource that 'owns' it.
// As well as being garbage collected when the Channel is deleted.
func newK8sService(c *eventingv1alpha1.Channel) *corev1.Service {
- labels := map[string]string{
- "channel": c.Name,
- "provisioner": c.Spec.Provisioner.Name,
- }
return &corev1.Service{
ObjectMeta: metav1.ObjectMeta{
- Name: ChannelServiceName(c.ObjectMeta.Name),
- Namespace: c.Namespace,
- Labels: labels,
+ GenerateName: channelServiceName(c.ObjectMeta.Name),
+ Namespace: c.Namespace,
+ Labels: k8sServiceLabels(c),
OwnerReferences: []metav1.OwnerReference{
*metav1.NewControllerRef(c, schema.GroupVersionKind{
Group: eventingv1alpha1.SchemeGroupVersion.Group,
@@ -158,20 +283,44 @@ func newK8sService(c *eventingv1alpha1.Channel) *corev1.Service {
}
}
+// k8sOldServiceLabels returns a map with only old eventing channel and provisioner labels
+func k8sOldServiceLabels(c *eventingv1alpha1.Channel) map[string]string {
+ return map[string]string{
+ OldEventingChannelLabel: c.Name,
+ OldEventingProvisionerLabel: c.Spec.Provisioner.Name,
+ }
+}
+
+// k8sServiceLabels returns a map with eventing channel and provisioner labels
+func k8sServiceLabels(c *eventingv1alpha1.Channel) map[string]string {
+ return map[string]string{
+ EventingChannelLabel: c.Name,
+ OldEventingChannelLabel: c.Name,
+ EventingProvisionerLabel: c.Spec.Provisioner.Name,
+ OldEventingProvisionerLabel: c.Spec.Provisioner.Name,
+ }
+}
+
+func virtualServiceLabels(c *eventingv1alpha1.Channel) map[string]string {
+ // Use the same labels as the K8s service.
+ return k8sServiceLabels(c)
+}
+
+func virtualOldServiceLabels(c *eventingv1alpha1.Channel) map[string]string {
+ // Use the same labels as the K8s service.
+ return k8sOldServiceLabels(c)
+}
+
// newVirtualService creates a new VirtualService for a Channel resource. It also sets the
// appropriate OwnerReferences on the resource so handleObject can discover the Channel resource
// that 'owns' it. As well as being garbage collected when the Channel is deleted.
-func newVirtualService(channel *eventingv1alpha1.Channel) *istiov1alpha3.VirtualService {
- labels := map[string]string{
- "channel": channel.Name,
- "provisioner": channel.Spec.Provisioner.Name,
- }
- destinationHost := controller.ServiceHostName(ChannelDispatcherServiceName(channel.Spec.Provisioner.Name), system.Namespace)
+func newVirtualService(channel *eventingv1alpha1.Channel, svc *corev1.Service) *istiov1alpha3.VirtualService {
+ destinationHost := controller.ServiceHostName(channelDispatcherServiceName(channel.Spec.Provisioner.Name), system.Namespace)
return &istiov1alpha3.VirtualService{
ObjectMeta: metav1.ObjectMeta{
- Name: ChannelVirtualServiceName(channel.Name),
- Namespace: channel.Namespace,
- Labels: labels,
+ GenerateName: channelVirtualServiceName(channel.Name),
+ Namespace: channel.Namespace,
+ Labels: virtualServiceLabels(channel),
OwnerReferences: []metav1.OwnerReference{
*metav1.NewControllerRef(channel, schema.GroupVersionKind{
Group: eventingv1alpha1.SchemeGroupVersion.Group,
@@ -182,12 +331,12 @@ func newVirtualService(channel *eventingv1alpha1.Channel) *istiov1alpha3.Virtual
},
Spec: istiov1alpha3.VirtualServiceSpec{
Hosts: []string{
- controller.ServiceHostName(ChannelServiceName(channel.Name), channel.Namespace),
- ChannelHostName(channel.Name, channel.Namespace),
+ controller.ServiceHostName(svc.Name, channel.Namespace),
+ channelHostName(channel.Name, channel.Namespace),
},
Http: []istiov1alpha3.HTTPRoute{{
Rewrite: &istiov1alpha3.HTTPRewrite{
- Authority: ChannelHostName(channel.Name, channel.Namespace),
+ Authority: channelHostName(channel.Name, channel.Namespace),
},
Route: []istiov1alpha3.DestinationWeight{{
Destination: istiov1alpha3.Destination{
@@ -202,14 +351,14 @@ func newVirtualService(channel *eventingv1alpha1.Channel) *istiov1alpha3.Virtual
}
}
-func ChannelVirtualServiceName(channelName string) string {
- return fmt.Sprintf("%s-channel", channelName)
+func channelVirtualServiceName(channelName string) string {
+ return fmt.Sprintf("%s-channel-", channelName)
}
-func ChannelServiceName(channelName string) string {
- return fmt.Sprintf("%s-channel", channelName)
+func channelServiceName(channelName string) string {
+ return fmt.Sprintf("%s-channel-", channelName)
}
-func ChannelHostName(channelName, namespace string) string {
+func channelHostName(channelName, namespace string) string {
return fmt.Sprintf("%s.%s.channels.cluster.local", channelName, namespace)
}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/channel/controller.go b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/channel/controller.go
new file mode 100644
index 0000000000..f2684829d5
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/channel/controller.go
@@ -0,0 +1,88 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package channel
+
+import (
+ eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ pubsubutil "github.com/knative/eventing/pkg/provisioners/gcppubsub/util"
+ istiov1alpha3 "github.com/knative/pkg/apis/istio/v1alpha3"
+ "go.uber.org/zap"
+ corev1 "k8s.io/api/core/v1"
+ "sigs.k8s.io/controller-runtime/pkg/controller"
+ "sigs.k8s.io/controller-runtime/pkg/handler"
+ "sigs.k8s.io/controller-runtime/pkg/manager"
+ "sigs.k8s.io/controller-runtime/pkg/source"
+)
+
+const (
+ // controllerAgentName is the string used by this controller to identify itself when creating
+ // events.
+ controllerAgentName = "gcp-pubsub-channel-controller"
+)
+
+// ProvideController returns a Controller that represents the gcp-pubsub channel Provisioner. It
+// reconciles only Channels.
+func ProvideController(defaultGcpProject string, defaultSecret *corev1.ObjectReference, defaultSecretKey string) func(manager.Manager, *zap.Logger) (controller.Controller, error) {
+ return func(mgr manager.Manager, logger *zap.Logger) (controller.Controller, error) {
+ // Setup a new controller to Reconcile Channels that belong to this Cluster Channel
+ // Provisioner (gcp-pubsub).
+ r := &reconciler{
+ recorder: mgr.GetRecorder(controllerAgentName),
+ logger: logger,
+
+ defaultGcpProject: defaultGcpProject,
+ defaultSecret: defaultSecret,
+ defaultSecretKey: defaultSecretKey,
+ pubSubClientCreator: pubsubutil.GcpPubSubClientCreator,
+ }
+ c, err := controller.New(controllerAgentName, mgr, controller.Options{
+ Reconciler: r,
+ })
+ if err != nil {
+ return nil, err
+ }
+
+ // Watch Channels.
+ err = c.Watch(&source.Kind{
+ Type: &eventingv1alpha1.Channel{},
+ }, &handler.EnqueueRequestForObject{})
+ if err != nil {
+ logger.Error("Unable to watch Channels.", zap.Error(err), zap.Any("type", &eventingv1alpha1.Channel{}))
+ return nil, err
+ }
+
+ // Watch the K8s Services that are owned by Channels.
+ err = c.Watch(&source.Kind{
+ Type: &corev1.Service{},
+ }, &handler.EnqueueRequestForOwner{OwnerType: &eventingv1alpha1.Channel{}, IsController: true})
+ if err != nil {
+ logger.Error("Unable to watch K8s Services.", zap.Error(err))
+ return nil, err
+ }
+
+ // Watch the VirtualServices that are owned by Channels.
+ err = c.Watch(&source.Kind{
+ Type: &istiov1alpha3.VirtualService{},
+ }, &handler.EnqueueRequestForOwner{OwnerType: &eventingv1alpha1.Channel{}, IsController: true})
+ if err != nil {
+ logger.Error("Unable to watch VirtualServices.", zap.Error(err))
+ return nil, err
+ }
+
+ return c, nil
+ }
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/channel/reconcile.go b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/channel/reconcile.go
new file mode 100644
index 0000000000..fed1462a0b
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/channel/reconcile.go
@@ -0,0 +1,327 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package channel
+
+import (
+ "context"
+
+ eventduck "github.com/knative/eventing/pkg/apis/duck/v1alpha1"
+ eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ "github.com/knative/eventing/pkg/controller"
+ util "github.com/knative/eventing/pkg/provisioners"
+ ccpcontroller "github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/clusterchannelprovisioner"
+ pubsubutil "github.com/knative/eventing/pkg/provisioners/gcppubsub/util"
+ "github.com/knative/pkg/logging"
+ "go.uber.org/zap"
+ "golang.org/x/oauth2/google"
+ v1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/api/errors"
+ "k8s.io/client-go/tools/record"
+ "sigs.k8s.io/controller-runtime/pkg/client"
+ "sigs.k8s.io/controller-runtime/pkg/reconcile"
+)
+
+const (
+ finalizerName = controllerAgentName
+)
+
+// reconciler reconciles GCP-PubSub Channels by creating the K8s Service and Istio VirtualService
+// allowing other processes to send data to them. It also creates the GCP PubSub Topics (one per
+// Channel) and GCP PubSub Subscriptions (one per Subscriber).
+type reconciler struct {
+ client client.Client
+ recorder record.EventRecorder
+ logger *zap.Logger
+
+ pubSubClientCreator pubsubutil.PubSubClientCreator
+
+ // Note that for all the default* parameters below, these must be kept in lock-step with the
+ // GCP PubSub Dispatcher's reconciler.
+ // Eventually, individual Channels should be allowed to specify different projects and secrets,
+ // but for now all Channels use the same project and secret.
+
+ // defaultGcpProject is the GCP project ID where PubSub Topics and Subscriptions are created.
+ defaultGcpProject string
+ // defaultSecret and defaultSecretKey are the K8s Secret and key in that secret that contain a
+ // JSON format GCP service account token, see
+ // https://cloud.google.com/iam/docs/creating-managing-service-account-keys#iam-service-account-keys-create-gcloud
+ defaultSecret *v1.ObjectReference
+ defaultSecretKey string
+}
+
+// Verify the struct implements reconcile.Reconciler
+var _ reconcile.Reconciler = &reconciler{}
+
+func (r *reconciler) InjectClient(c client.Client) error {
+ r.client = c
+ return nil
+}
+
+func (r *reconciler) Reconcile(request reconcile.Request) (reconcile.Result, error) {
+ ctx := context.TODO()
+ ctx = logging.WithLogger(ctx, r.logger.With(zap.Any("request", request)).Sugar())
+
+ c := &eventingv1alpha1.Channel{}
+ err := r.client.Get(ctx, request.NamespacedName, c)
+
+ // The Channel may have been deleted since it was added to the workqueue. If so, there is
+ // nothing to be done.
+ if errors.IsNotFound(err) {
+ logging.FromContext(ctx).Info("Could not find Channel", zap.Error(err))
+ return reconcile.Result{}, nil
+ }
+
+ // Any other error should be retried in another reconciliation.
+ if err != nil {
+ logging.FromContext(ctx).Error("Unable to Get Channel", zap.Error(err))
+ return reconcile.Result{}, err
+ }
+
+ // Does this Controller control this Channel?
+ if !r.shouldReconcile(c) {
+ logging.FromContext(ctx).Info("Not reconciling Channel, it is not controlled by this Controller", zap.Any("ref", c.Spec))
+ return reconcile.Result{}, nil
+ }
+ logging.FromContext(ctx).Info("Reconciling Channel")
+
+ // Modify a copy, not the original.
+ c = c.DeepCopy()
+
+ ctx = logging.WithLogger(ctx, logging.FromContext(ctx).With(zap.Any("channel", c)))
+ requeue, reconcileErr := r.reconcile(ctx, c)
+ if reconcileErr != nil {
+ logging.FromContext(ctx).Info("Error reconciling Channel", zap.Error(reconcileErr))
+ // Note that we do not return the error here, because we want to update the Status
+ // regardless of the error.
+ }
+
+ if err = util.UpdateChannel(ctx, r.client, c); err != nil {
+ logging.FromContext(ctx).Info("Error updating Channel Status", zap.Error(err))
+ return reconcile.Result{}, err
+ }
+
+ return reconcile.Result{
+ Requeue: requeue,
+ }, reconcileErr
+}
+
+// shouldReconcile determines if this Controller should control (and therefore reconcile) a given
+// Channel. This Controller only handles gcp-pubsub channels.
+func (r *reconciler) shouldReconcile(c *eventingv1alpha1.Channel) bool {
+ if c.Spec.Provisioner != nil {
+ return ccpcontroller.IsControlled(c.Spec.Provisioner)
+ }
+ return false
+}
+
+// reconcile reconciles this Channel so that the real world matches the intended state. The returned
+// boolean indicates if this Channel should be immediately requeued for another reconcile loop. The
+// returned error indicates an error during reconciliation.
+func (r *reconciler) reconcile(ctx context.Context, c *eventingv1alpha1.Channel) (bool, error) {
+ c.Status.InitializeConditions()
+
+ // We are syncing four things:
+ // 1. The K8s Service to talk to this Channel.
+ // 2. The Istio VirtualService to talk to this Channel.
+ // 3. The GCP PubSub Topic (one for the Channel).
+ // 4. The GCP PubSub Subscriptions (one for each Subscriber of the Channel).
+
+ // Regardless of what we are going to do, we need GCP credentials to do it.
+ gcpCreds, err := pubsubutil.GetCredentials(ctx, r.client, r.defaultSecret, r.defaultSecretKey)
+ if err != nil {
+ logging.FromContext(ctx).Info("Unable to generate GCP creds", zap.Error(err))
+ return false, err
+ }
+
+ if c.DeletionTimestamp != nil {
+ // K8s garbage collection will delete the K8s service and VirtualService for this channel.
+ err = r.deleteSubscriptions(ctx, c, gcpCreds, r.defaultGcpProject)
+ if err != nil {
+ return false, err
+ }
+ err = r.deleteTopic(ctx, c, gcpCreds, r.defaultGcpProject)
+ if err != nil {
+ return false, err
+ }
+ util.RemoveFinalizer(c, finalizerName)
+ return false, nil
+ }
+
+ // If we are adding the finalizer for the first time, then ensure that finalizer is persisted
+ // before manipulating GCP PubSub, which will not be automatically garbage collected by K8s if
+ // this Channel is deleted.
+ if addFinalizerResult := util.AddFinalizer(c, finalizerName); addFinalizerResult == util.FinalizerAdded {
+ return true, nil
+ }
+
+ svc, err := r.createK8sService(ctx, c)
+ if err != nil {
+ return false, err
+ }
+
+ err = r.createVirtualService(ctx, c, svc)
+ if err != nil {
+ return false, err
+ }
+
+ topic, err := r.createTopic(ctx, c, gcpCreds, r.defaultGcpProject)
+ if err != nil {
+ return false, err
+ }
+
+ err = r.createSubscriptions(ctx, c, gcpCreds, r.defaultGcpProject, topic)
+ if err != nil {
+ return false, err
+ }
+
+ c.Status.MarkProvisioned()
+ return false, nil
+}
+
+func (r *reconciler) createK8sService(ctx context.Context, c *eventingv1alpha1.Channel) (*v1.Service, error) {
+ svc, err := util.CreateK8sService(ctx, r.client, c)
+ if err != nil {
+ logging.FromContext(ctx).Info("Error creating the Channel's K8s Service", zap.Error(err))
+ return nil, err
+ }
+
+ c.Status.SetAddress(controller.ServiceHostName(svc.Name, svc.Namespace))
+ return svc, nil
+}
+
+func (r *reconciler) createVirtualService(ctx context.Context, c *eventingv1alpha1.Channel, svc *v1.Service) error {
+ _, err := util.CreateVirtualService(ctx, r.client, c, svc)
+ if err != nil {
+ logging.FromContext(ctx).Info("Error creating the Virtual Service for the Channel", zap.Error(err))
+ return err
+ }
+ return nil
+}
+
+func (r *reconciler) createTopic(ctx context.Context, c *eventingv1alpha1.Channel, gcpCreds *google.Credentials, gcpProject string) (pubsubutil.PubSubTopic, error) {
+ psc, err := r.pubSubClientCreator(ctx, gcpCreds, gcpProject)
+ if err != nil {
+ logging.FromContext(ctx).Info("Unable to create PubSub client", zap.Error(err))
+ return nil, err
+ }
+ topic := psc.Topic(pubsubutil.GenerateTopicName(c.Namespace, c.Name))
+ exists, err := topic.Exists(ctx)
+ if err != nil {
+ logging.FromContext(ctx).Info("Unable to check Topic existence", zap.Error(err))
+ return nil, err
+ }
+ if exists {
+ return topic, nil
+ }
+
+ createdTopic, err := psc.CreateTopic(ctx, topic.ID())
+ if err != nil {
+ logging.FromContext(ctx).Info("Unable to create topic", zap.Error(err))
+ return nil, err
+ }
+ return createdTopic, nil
+}
+
+func (r *reconciler) deleteTopic(ctx context.Context, c *eventingv1alpha1.Channel, gcpCreds *google.Credentials, gcpProject string) error {
+ psc, err := r.pubSubClientCreator(ctx, gcpCreds, gcpProject)
+ if err != nil {
+ logging.FromContext(ctx).Info("Unable to create PubSubClient", zap.Error(err))
+ return err
+ }
+ topic := psc.Topic(pubsubutil.GenerateTopicName(c.Namespace, c.Name))
+ exists, err := topic.Exists(ctx)
+ if err != nil {
+ logging.FromContext(ctx).Info("Unable to check if Topic exists", zap.Error(err))
+ return err
+ }
+ if !exists {
+ logging.FromContext(ctx).Debug("Topic did not exist")
+ return nil
+ }
+ err = topic.Delete(ctx)
+ if err != nil {
+ logging.FromContext(ctx).Info("Topic deletion failed", zap.Error(err))
+ return err
+ }
+ return nil
+}
+
+func (r *reconciler) createSubscriptions(ctx context.Context, c *eventingv1alpha1.Channel, gcpCreds *google.Credentials, gcpProject string, topic pubsubutil.PubSubTopic) error {
+ if c.Spec.Subscribable != nil {
+ for _, sub := range c.Spec.Subscribable.Subscribers {
+ _, err := r.createSubscription(ctx, gcpCreds, gcpProject, topic, &sub)
+ if err != nil {
+ logging.FromContext(ctx).Info("Unable to create subscribers", zap.Error(err), zap.Any("channelSubscriber", sub))
+ return err
+ }
+ }
+ }
+ return nil
+}
+
+func (r *reconciler) createSubscription(ctx context.Context, gcpCreds *google.Credentials, gcpProject string, topic pubsubutil.PubSubTopic, cs *eventduck.ChannelSubscriberSpec) (pubsubutil.PubSubSubscription, error) {
+ psc, err := r.pubSubClientCreator(ctx, gcpCreds, gcpProject)
+ if err != nil {
+ return nil, err
+ }
+ sub := psc.SubscriptionInProject(pubsubutil.GenerateSubName(cs), gcpProject)
+ exists, err := sub.Exists(ctx)
+ if err != nil {
+ return nil, err
+ }
+ if exists {
+ logging.FromContext(ctx).Debug("Reusing existing subscription.")
+ return sub, nil
+ }
+
+ createdSub, err := psc.CreateSubscription(ctx, sub.ID(), topic)
+ if err != nil {
+ logging.FromContext(ctx).Info("Error creating new subscription", zap.Error(err))
+ } else {
+ logging.FromContext(ctx).Info("Created new subscription", zap.Any("subscription", createdSub))
+ }
+ return createdSub, err
+}
+
+func (r *reconciler) deleteSubscriptions(ctx context.Context, c *eventingv1alpha1.Channel, gcpCreds *google.Credentials, gcpProject string) error {
+ if c.Spec.Subscribable != nil {
+ for _, sub := range c.Spec.Subscribable.Subscribers {
+ err := r.deleteSubscription(ctx, gcpCreds, gcpProject, &sub)
+ if err != nil {
+ logging.FromContext(ctx).Info("Unable to create subscribers", zap.Error(err), zap.Any("channelSubscriber", sub))
+ return err
+ }
+ }
+ }
+ return nil
+}
+
+func (r *reconciler) deleteSubscription(ctx context.Context, gcpCreds *google.Credentials, gcpProject string, cs *eventduck.ChannelSubscriberSpec) error {
+ psc, err := r.pubSubClientCreator(ctx, gcpCreds, gcpProject)
+ if err != nil {
+ return err
+ }
+ sub := psc.SubscriptionInProject(pubsubutil.GenerateSubName(cs), gcpProject)
+ exists, err := sub.Exists(ctx)
+ if err != nil {
+ return err
+ }
+ if !exists {
+ return nil
+ }
+ return sub.Delete(ctx)
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/clusterchannelprovisioner/controller.go b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/clusterchannelprovisioner/controller.go
new file mode 100644
index 0000000000..c59badf5eb
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/clusterchannelprovisioner/controller.go
@@ -0,0 +1,62 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package clusterchannelprovisioner
+
+import (
+ eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ "go.uber.org/zap"
+ "sigs.k8s.io/controller-runtime/pkg/controller"
+ "sigs.k8s.io/controller-runtime/pkg/handler"
+ "sigs.k8s.io/controller-runtime/pkg/manager"
+ "sigs.k8s.io/controller-runtime/pkg/source"
+)
+
+const (
+ // controllerAgentName is the string used by this controller to identify
+ // itself when creating events.
+ controllerAgentName = "gcp-pubsub-clusterchannelprovisioner-controller"
+)
+
+// ProvideController returns a Controller that represents the gcp-pubsub channel Provisioner. It
+// reconciles only the ClusterChannelProvisioner.
+func ProvideController(mgr manager.Manager, logger *zap.Logger) (controller.Controller, error) {
+ logger = logger.With(zap.String("controller", controllerAgentName))
+
+ // Setup a new controller to Reconcile ClusterChannelProvisioners that are gcp-pubsub channels.
+ r := &reconciler{
+ recorder: mgr.GetRecorder(controllerAgentName),
+ logger: logger,
+ }
+ c, err := controller.New(controllerAgentName, mgr, controller.Options{
+ Reconciler: r,
+ })
+ if err != nil {
+ logger.Error("Unable to create controller.", zap.Error(err))
+ return nil, err
+ }
+
+ // Watch ClusterChannelProvisioners.
+ err = c.Watch(&source.Kind{
+ Type: &eventingv1alpha1.ClusterChannelProvisioner{},
+ }, &handler.EnqueueRequestForObject{})
+ if err != nil {
+ logger.Error("Unable to watch ClusterChannelProvisioners.", zap.Error(err), zap.Any("type", &eventingv1alpha1.ClusterChannelProvisioner{}))
+ return nil, err
+ }
+
+ return c, nil
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/clusterchannelprovisioner/reconcile.go b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/clusterchannelprovisioner/reconcile.go
new file mode 100644
index 0000000000..5ec237f16d
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/clusterchannelprovisioner/reconcile.go
@@ -0,0 +1,123 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package clusterchannelprovisioner
+
+import (
+ "context"
+
+ "github.com/knative/pkg/logging"
+
+ "go.uber.org/zap"
+ corev1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/api/errors"
+ "k8s.io/client-go/tools/record"
+ "sigs.k8s.io/controller-runtime/pkg/client"
+ "sigs.k8s.io/controller-runtime/pkg/reconcile"
+
+ eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ util "github.com/knative/eventing/pkg/provisioners"
+)
+
+const (
+ // Name is the name of the GCP PubSub ClusterChannelProvisioner.
+ Name = "gcp-pubsub"
+)
+
+type reconciler struct {
+ client client.Client
+ recorder record.EventRecorder
+ logger *zap.Logger
+}
+
+// Verify the struct implements reconcile.Reconciler
+var _ reconcile.Reconciler = &reconciler{}
+
+func (r *reconciler) InjectClient(c client.Client) error {
+ r.client = c
+ return nil
+}
+
+func (r *reconciler) Reconcile(request reconcile.Request) (reconcile.Result, error) {
+ ctx := context.TODO()
+ ctx = logging.WithLogger(ctx, r.logger.With(zap.Any("request", request)).Sugar())
+
+ ccp := &eventingv1alpha1.ClusterChannelProvisioner{}
+ err := r.client.Get(ctx, request.NamespacedName, ccp)
+
+ // The ClusterChannelProvisioner may have been deleted since it was added to the workqueue. If
+ // so, there is nothing to be done.
+ if errors.IsNotFound(err) {
+ logging.FromContext(ctx).Info("Could not find ClusterChannelProvisioner", zap.Error(err))
+ return reconcile.Result{}, nil
+ }
+
+ // Any other error should be retried in another reconciliation.
+ if err != nil {
+ logging.FromContext(ctx).Error("Unable to Get ClusterChannelProvisioner", zap.Error(err))
+ return reconcile.Result{}, err
+ }
+
+ // Does this Controller control this ClusterChannelProvisioner?
+ if !shouldReconcile(ccp.Namespace, ccp.Name) {
+ logging.FromContext(ctx).Info("Not reconciling ClusterChannelProvisioner, it is not controlled by this Controller", zap.String("APIVersion", ccp.APIVersion), zap.String("Kind", ccp.Kind), zap.String("Namespace", ccp.Namespace), zap.String("name", ccp.Name))
+ return reconcile.Result{}, nil
+ }
+ logging.FromContext(ctx).Info("Reconciling ClusterChannelProvisioner.")
+
+ // Modify a copy of this object, rather than the original.
+ ccp = ccp.DeepCopy()
+
+ reconcileErr := r.reconcile(ctx, ccp)
+ if reconcileErr != nil {
+ logging.FromContext(ctx).Info("Error reconciling ClusterChannelProvisioner", zap.Error(reconcileErr))
+ // Note that we do not return the error here, because we want to update the Status
+ // regardless of the error.
+ }
+
+ if err = util.UpdateClusterChannelProvisionerStatus(ctx, r.client, ccp); err != nil {
+ logging.FromContext(ctx).Info("Error updating ClusterChannelProvisioner Status", zap.Error(err))
+ return reconcile.Result{}, err
+ }
+
+ return reconcile.Result{}, reconcileErr
+}
+
+// IsControlled determines if the gcp-pubsub Channel Controller should control (and therefore
+// reconcile) a given object, based on that object's ClusterChannelProvisioner reference.
+func IsControlled(ref *corev1.ObjectReference) bool {
+ if ref != nil {
+ return shouldReconcile(ref.Namespace, ref.Name)
+ }
+ return false
+}
+
+// shouldReconcile determines if this Controller should control (and therefore reconcile) a given
+// ClusterChannelProvisioner. This Controller only handles gcp-pubsub channels.
+func shouldReconcile(namespace, name string) bool {
+ return namespace == "" && name == Name
+}
+
+func (r *reconciler) reconcile(ctx context.Context, ccp *eventingv1alpha1.ClusterChannelProvisioner) error {
+ // We are syncing nothing! Just mark it ready.
+
+ if ccp.DeletionTimestamp != nil {
+ return nil
+ }
+
+ ccp.Status.MarkReady()
+ return nil
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/cmd/kodata/HEAD b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/cmd/kodata/HEAD
new file mode 120000
index 0000000000..a41d326440
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/cmd/kodata/HEAD
@@ -0,0 +1 @@
+../../../../../../.git/HEAD
\ No newline at end of file
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/cmd/kodata/LICENSE b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/cmd/kodata/LICENSE
new file mode 120000
index 0000000000..ee8b6feb8c
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/cmd/kodata/LICENSE
@@ -0,0 +1 @@
+../../../../../../LICENSE
\ No newline at end of file
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/cmd/kodata/VENDOR-LICENSE b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/cmd/kodata/VENDOR-LICENSE
new file mode 120000
index 0000000000..423e2b2276
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/cmd/kodata/VENDOR-LICENSE
@@ -0,0 +1 @@
+../../../../../../third_party/VENDOR-LICENSE
\ No newline at end of file
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/cmd/main.go b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/cmd/main.go
new file mode 100644
index 0000000000..a79216c458
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/cmd/main.go
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2018 The Knative Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package main
+
+import (
+ "flag"
+ "log"
+ "os"
+
+ "github.com/knative/eventing/pkg/provisioners"
+ v1 "k8s.io/api/core/v1"
+
+ eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ "github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/channel"
+ "github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/clusterchannelprovisioner"
+ istiov1alpha3 "github.com/knative/pkg/apis/istio/v1alpha3"
+ "github.com/knative/pkg/signals"
+ "go.uber.org/zap"
+ "sigs.k8s.io/controller-runtime/pkg/client/config"
+ "sigs.k8s.io/controller-runtime/pkg/manager"
+)
+
+const (
+ // These are Environment variable names.
+ defaultGcpProjectEnv = "DEFAULT_GCP_PROJECT"
+ defaultSecretNamespaceEnv = "DEFAULT_SECRET_NAMESPACE"
+ defaultSecretNameEnv = "DEFAULT_SECRET_NAME"
+ defaultSecretKeyEnv = "DEFAULT_SECRET_KEY"
+)
+
+// This is the main method for the GCP PubSub Channel controller. It reconciles the
+// ClusterChannelProvisioner itself and Channels that use the 'gcp-pubsub' provisioner. It does not
+// handle the anything at the data layer.
+func main() {
+ logConfig := provisioners.NewLoggingConfig()
+ logger := provisioners.NewProvisionerLoggerFromConfig(logConfig)
+ defer logger.Sync()
+ logger = logger.With(
+ zap.String("eventing.knative.dev/clusterChannelProvisioner", clusterchannelprovisioner.Name),
+ zap.String("eventing.knative.dev/clusterChannelProvisionerComponent", "Controller"),
+ )
+ flag.Parse()
+
+ mgr, err := manager.New(config.GetConfigOrDie(), manager.Options{})
+ if err != nil {
+ logger.Fatal("Error starting up.", zap.Error(err))
+ }
+
+ // Add custom types to this array to get them into the manager's scheme.
+ eventingv1alpha1.AddToScheme(mgr.GetScheme())
+ istiov1alpha3.AddToScheme(mgr.GetScheme())
+
+ // The controllers for both the ClusterChannelProvisioner and the Channels created by that
+ // ClusterChannelProvisioner run in this process.
+ _, err = clusterchannelprovisioner.ProvideController(mgr, logger.Desugar())
+ if err != nil {
+ logger.Fatal("Unable to create Provisioner controller", zap.Error(err))
+ }
+
+ defaultGcpProject := getRequiredEnv(defaultGcpProjectEnv)
+ defaultSecret := v1.ObjectReference{
+ APIVersion: v1.SchemeGroupVersion.String(),
+ Kind: "Secret",
+ Namespace: getRequiredEnv(defaultSecretNamespaceEnv),
+ Name: getRequiredEnv(defaultSecretNameEnv),
+ }
+ defaultSecretKey := getRequiredEnv(defaultSecretKeyEnv)
+ _, err = channel.ProvideController(defaultGcpProject, &defaultSecret, defaultSecretKey)(mgr, logger.Desugar())
+ if err != nil {
+ logger.Fatal("Unable to create Channel controller", zap.Error(err))
+ }
+
+ // set up signals so we handle the first shutdown signal gracefully
+ stopCh := signals.SetupSignalHandler()
+ // Start blocks forever.
+ err = mgr.Start(stopCh)
+ if err != nil {
+ logger.Fatal("Manager.Start() returned an error", zap.Error(err))
+ }
+}
+
+func getRequiredEnv(envKey string) string {
+ val, defined := os.LookupEnv(envKey)
+ if !defined {
+ log.Fatalf("required environment variable not defined '%s'", envKey)
+ }
+ return val
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/cmd/kodata/HEAD b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/cmd/kodata/HEAD
new file mode 120000
index 0000000000..a41d326440
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/cmd/kodata/HEAD
@@ -0,0 +1 @@
+../../../../../../.git/HEAD
\ No newline at end of file
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/cmd/kodata/LICENSE b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/cmd/kodata/LICENSE
new file mode 120000
index 0000000000..ee8b6feb8c
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/cmd/kodata/LICENSE
@@ -0,0 +1 @@
+../../../../../../LICENSE
\ No newline at end of file
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/cmd/kodata/VENDOR-LICENSE b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/cmd/kodata/VENDOR-LICENSE
new file mode 120000
index 0000000000..423e2b2276
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/cmd/kodata/VENDOR-LICENSE
@@ -0,0 +1 @@
+../../../../../../third_party/VENDOR-LICENSE
\ No newline at end of file
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/cmd/main.go b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/cmd/main.go
new file mode 100644
index 0000000000..82dc3a1e36
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/cmd/main.go
@@ -0,0 +1,115 @@
+/*
+ * Copyright 2018 The Knative Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package main
+
+import (
+ "flag"
+ "log"
+ "os"
+
+ "github.com/knative/eventing/pkg/provisioners"
+ v1 "k8s.io/api/core/v1"
+
+ "github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/dispatcher"
+
+ "github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/receiver"
+ "github.com/knative/eventing/pkg/provisioners/gcppubsub/util"
+
+ eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ "github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/clusterchannelprovisioner"
+ "github.com/knative/pkg/signals"
+ "go.uber.org/zap"
+ "sigs.k8s.io/controller-runtime/pkg/client/config"
+ "sigs.k8s.io/controller-runtime/pkg/manager"
+)
+
+const (
+ defaultGcpProjectEnv = "DEFAULT_GCP_PROJECT"
+ defaultSecretNamespaceEnv = "DEFAULT_SECRET_NAMESPACE"
+ defaultSecretNameEnv = "DEFAULT_SECRET_NAME"
+ defaultSecretKeyEnv = "DEFAULT_SECRET_KEY"
+)
+
+// This is the main method for the GCP PubSub Channel dispatcher. It handles all the data-plane
+// activity for GCP PubSub Channels. It receives all events being sent to any gcp-pubsub Channel
+// (via the receiver below) and watches all GCP PubSub Subscriptions (via the dispatcher below),
+// sending events out when any are available.
+func main() {
+ logConfig := provisioners.NewLoggingConfig()
+ logger := provisioners.NewProvisionerLoggerFromConfig(logConfig)
+ defer logger.Sync()
+ logger = logger.With(
+ zap.String("eventing.knative.dev/clusterChannelProvisioner", clusterchannelprovisioner.Name),
+ zap.String("eventing.knative.dev/clusterChannelProvisionerComponent", "Dispatcher"),
+ )
+ flag.Parse()
+
+ logger.Info("Starting...")
+
+ mgr, err := manager.New(config.GetConfigOrDie(), manager.Options{})
+ if err != nil {
+ logger.Fatal("Error starting up.", zap.Error(err))
+ }
+
+ // Add custom types to this array to get them into the manager's scheme.
+ eventingv1alpha1.AddToScheme(mgr.GetScheme())
+
+ defaultGcpProject := getRequiredEnv(defaultGcpProjectEnv)
+ defaultSecret := v1.ObjectReference{
+ APIVersion: v1.SchemeGroupVersion.String(),
+ Kind: "Secret",
+ Namespace: getRequiredEnv(defaultSecretNamespaceEnv),
+ Name: getRequiredEnv(defaultSecretNameEnv),
+ }
+ defaultSecretKey := getRequiredEnv(defaultSecretKeyEnv)
+
+ // We are running both the receiver (takes messages in from the cluster and writes them to
+ // PubSub) and the dispatcher (takes messages in PubSub and sends them in cluster) in this
+ // binary.
+
+ _, mr := receiver.New(logger.Desugar(), mgr.GetClient(), util.GcpPubSubClientCreator, defaultGcpProject, &defaultSecret, defaultSecretKey)
+ err = mgr.Add(mr)
+ if err != nil {
+ logger.Fatal("Unable to add the MessageReceiver to the manager", zap.Error(err))
+ }
+
+ // TODO Move this to just before mgr.Start(). We need to pass the stopCh to dispatcher.New
+ // because of https://github.com/kubernetes-sigs/controller-runtime/issues/103.
+
+ // set up signals so we handle the first shutdown signal gracefully
+ stopCh := signals.SetupSignalHandler()
+
+ _, err = dispatcher.New(mgr, logger.Desugar(), defaultGcpProject, &defaultSecret, defaultSecretKey, stopCh)
+ if err != nil {
+ logger.Fatal("Unable to create the dispatcher", zap.Error(err))
+ }
+
+ // Start blocks forever.
+ logger.Info("Manager starting...")
+ err = mgr.Start(stopCh)
+ if err != nil {
+ logger.Fatal("Manager.Start() returned an error", zap.Error(err))
+ }
+}
+
+func getRequiredEnv(envKey string) string {
+ val, defined := os.LookupEnv(envKey)
+ if !defined {
+ log.Fatalf("required environment variable not defined '%s'", envKey)
+ }
+ return val
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/dispatcher/controller.go b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/dispatcher/controller.go
new file mode 100644
index 0000000000..f71a0fc25a
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/dispatcher/controller.go
@@ -0,0 +1,102 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package dispatcher
+
+import (
+ "context"
+ "sync"
+
+ "sigs.k8s.io/controller-runtime/pkg/event"
+
+ eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ "github.com/knative/eventing/pkg/provisioners"
+ pubsubutil "github.com/knative/eventing/pkg/provisioners/gcppubsub/util"
+ "go.uber.org/zap"
+ corev1 "k8s.io/api/core/v1"
+ "sigs.k8s.io/controller-runtime/pkg/controller"
+ "sigs.k8s.io/controller-runtime/pkg/handler"
+ "sigs.k8s.io/controller-runtime/pkg/manager"
+ "sigs.k8s.io/controller-runtime/pkg/source"
+)
+
+const (
+ // controllerAgentName is the string used by this controller to identify itself when creating
+ // events.
+ controllerAgentName = "gcp-pubsub-channel-dispatcher"
+)
+
+// New returns a Controller that represents the dispatcher portion (messages from GCP PubSub are
+// sent into the cluster) of the GCP PubSub dispatcher. We use a reconcile loop to watch all
+// Channels and notice changes to them.
+func New(mgr manager.Manager, logger *zap.Logger, defaultGcpProject string, defaultSecret *corev1.ObjectReference, defaultSecretKey string, stopCh <-chan struct{}) (controller.Controller, error) {
+ // reconcileChan is used when the dispatcher itself needs to force reconciliation of a Channel.
+ reconcileChan := make(chan event.GenericEvent)
+
+ // Setup a new controller to pull messages from GCP PubSub for Channels that belong to this
+ // Cluster Provisioner (gcp-pubsub).
+ r := &reconciler{
+ recorder: mgr.GetRecorder(controllerAgentName),
+ logger: logger,
+
+ dispatcher: provisioners.NewMessageDispatcher(logger.Sugar()),
+ reconcileChan: reconcileChan,
+
+ defaultGcpProject: defaultGcpProject,
+ defaultSecret: defaultSecret,
+ defaultSecretKey: defaultSecretKey,
+ pubSubClientCreator: pubsubutil.GcpPubSubClientCreator,
+
+ subscriptionsLock: sync.Mutex{},
+ subscriptions: map[channelName]map[subscriptionName]context.CancelFunc{},
+ }
+
+ c, err := controller.New(controllerAgentName, mgr, controller.Options{
+ Reconciler: r,
+ })
+ if err != nil {
+ logger.Error("Unable to create controller.", zap.Error(err))
+ return nil, err
+ }
+
+ // Watch Channels.
+ err = c.Watch(&source.Kind{
+ Type: &eventingv1alpha1.Channel{},
+ }, &handler.EnqueueRequestForObject{})
+ if err != nil {
+ logger.Error("Unable to watch Channels.", zap.Error(err), zap.Any("type", &eventingv1alpha1.Channel{}))
+ return nil, err
+ }
+
+ // The PubSub library may fail when receiving messages. If it does so, then we need to reconcile
+ // that Channel again.
+ // TODO Once https://github.com/kubernetes-sigs/controller-runtime/issues/103 is fixed, switch
+ // to:
+ // err = c.Watch(&source.Channel{
+ // Source: reconcileChan,
+ // }, &handler.EnqueueRequestForOwner{})
+ src := &source.Channel{
+ Source: reconcileChan,
+ }
+ src.InjectStopChannel(stopCh)
+ err = c.Watch(src, &handler.EnqueueRequestForObject{})
+ if err != nil {
+ logger.Error("Unable to watch the reconcile Channel", zap.Error(err))
+ return nil, err
+ }
+
+ return c, nil
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/dispatcher/reconcile.go b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/dispatcher/reconcile.go
new file mode 100644
index 0000000000..cefa00c8b1
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/dispatcher/reconcile.go
@@ -0,0 +1,343 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package dispatcher
+
+import (
+ "context"
+ "sync"
+
+ "sigs.k8s.io/controller-runtime/pkg/event"
+
+ "github.com/knative/eventing/pkg/provisioners"
+
+ "github.com/knative/eventing/pkg/apis/duck/v1alpha1"
+
+ v1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/types"
+
+ eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ util "github.com/knative/eventing/pkg/provisioners"
+ ccpcontroller "github.com/knative/eventing/pkg/provisioners/gcppubsub/controller/clusterchannelprovisioner"
+ pubsubutil "github.com/knative/eventing/pkg/provisioners/gcppubsub/util"
+ "github.com/knative/pkg/logging"
+ "go.uber.org/zap"
+ "k8s.io/apimachinery/pkg/api/errors"
+ "k8s.io/client-go/tools/record"
+ "sigs.k8s.io/controller-runtime/pkg/client"
+ "sigs.k8s.io/controller-runtime/pkg/reconcile"
+)
+
+const (
+ finalizerName = controllerAgentName
+)
+
+type channelName = types.NamespacedName
+type subscriptionName = types.NamespacedName
+type empty struct{}
+
+// reconciler reconciles Channels with the gcp-pubsub provisioner. It sets up hanging polling for
+// every Subscription to any Channel.
+type reconciler struct {
+ client client.Client
+ recorder record.EventRecorder
+ logger *zap.Logger
+
+ // dispatcher is used to make the actual HTTP requests to downstream subscribers.
+ dispatcher provisioners.Dispatcher
+ // reconcileChan is a Go channel that allows the reconciler to force reconciliation of a Channel.
+ reconcileChan chan<- event.GenericEvent
+
+ pubSubClientCreator pubsubutil.PubSubClientCreator
+
+ // Note that for all the default* parameters below, these must be kept in lock-step with the
+ // GCP PubSub Dispatcher's reconciler.
+ // Eventually, individual Channels should be allowed to specify different projects and secrets,
+ // but for now all Channels use the same project and secret.
+
+ // defaultGcpProject is the GCP project ID where PubSub Topics and Subscriptions are created.
+ defaultGcpProject string
+ // defaultSecret and defaultSecretKey are the K8s Secret and key in that secret that contain a
+ // JSON format GCP service account token, see
+ // https://cloud.google.com/iam/docs/creating-managing-service-account-keys#iam-service-account-keys-create-gcloud
+ defaultSecret *v1.ObjectReference
+ defaultSecretKey string
+
+ subscriptionsLock sync.Mutex
+ // subscriptions contains the cancel functions for all hanging PubSub Subscriptions. The cancel
+ // function must be called when we no longer want that subscription to be active. Logically it
+ // is a map from Channel name to Subscription name to CancelFunc.
+ subscriptions map[channelName]map[subscriptionName]context.CancelFunc
+}
+
+// Verify the struct implements reconcile.Reconciler
+var _ reconcile.Reconciler = &reconciler{}
+
+func (r *reconciler) InjectClient(c client.Client) error {
+ r.client = c
+ return nil
+}
+
+func (r *reconciler) Reconcile(request reconcile.Request) (reconcile.Result, error) {
+ ctx := logging.WithLogger(context.TODO(), r.logger.With(zap.Any("request", request)).Sugar())
+
+ c := &eventingv1alpha1.Channel{}
+ err := r.client.Get(ctx, request.NamespacedName, c)
+
+ // The Channel may have been deleted since it was added to the workqueue. If so, there is
+ // nothing to be done.
+ if errors.IsNotFound(err) {
+ logging.FromContext(ctx).Info("Could not find Channel", zap.Error(err))
+ return reconcile.Result{}, nil
+ }
+
+ // Any other error should be retried in another reconciliation.
+ if err != nil {
+ logging.FromContext(ctx).Error("Unable to Get Channel", zap.Error(err))
+ return reconcile.Result{}, err
+ }
+
+ // Does this Controller control this Channel?
+ if !r.shouldReconcile(c) {
+ logging.FromContext(ctx).Info("Not reconciling Channel, it is not controlled by this Controller", zap.Any("ref", c.Spec))
+ return reconcile.Result{}, nil
+ }
+ logging.FromContext(ctx).Info("Reconciling Channel")
+
+ // Modify a copy, not the original.
+ c = c.DeepCopy()
+
+ requeue, reconcileErr := r.reconcile(loggingWith(ctx, zap.Any("channel", c)), c)
+ if reconcileErr != nil {
+ logging.FromContext(ctx).Info("Error reconciling Channel", zap.Error(reconcileErr))
+ // Note that we do not return the error here, because we want to update the finalizers
+ // regardless of the error.
+ }
+
+ if err = util.UpdateChannel(ctx, r.client, c); err != nil {
+ logging.FromContext(ctx).Info("Error updating Channel Status", zap.Error(err))
+ return reconcile.Result{}, err
+ }
+
+ return reconcile.Result{
+ Requeue: requeue,
+ }, reconcileErr
+}
+
+// shouldReconcile determines if this Controller should control (and therefore reconcile) a given
+// ClusterChannelProvisioner. This Controller only handles gcp-pubsub Channels.
+func (r *reconciler) shouldReconcile(c *eventingv1alpha1.Channel) bool {
+ if c.Spec.Provisioner != nil {
+ return ccpcontroller.IsControlled(c.Spec.Provisioner)
+ }
+ return false
+}
+
+// reconcile reconciles this Channel so that the real world matches the intended state. The returned
+// boolean indicates if this Channel should be immediately requeued for another reconcile loop. The
+// returned error indicates an error during reconciliation.
+func (r *reconciler) reconcile(ctx context.Context, c *eventingv1alpha1.Channel) (bool, error) {
+ // We are syncing all the subscribers on this Channel. Every subscriber will have a goroutine
+ // running in the background polling the GCP PubSub Subscription.
+
+ if c.DeletionTimestamp != nil {
+ // We use a finalizer to ensure we stop listening on the GCP PubSub Subscriptions.
+ r.stopAllSubscriptions(ctx, c)
+ util.RemoveFinalizer(c, finalizerName)
+ return false, nil
+ }
+
+ // If we are adding the finalizer for the first time, then ensure that finalizer is persisted
+ // before interacting with GCP PubSub.
+ if addFinalizerResult := util.AddFinalizer(c, finalizerName); addFinalizerResult == util.FinalizerAdded {
+ return true, nil
+ }
+
+ err := r.syncSubscriptions(ctx, c)
+ return false, err
+}
+
+// key creates the first index into reconciler.subscriptions, based on the Channel's name.
+func key(c *eventingv1alpha1.Channel) channelName {
+ return types.NamespacedName{
+ Namespace: c.Namespace,
+ Name: c.Name,
+ }
+}
+
+// subscriptionKey creates the second index into reconciler.subscriptions, based on the Subscriber's
+// name.
+func subscriptionKey(sub *v1alpha1.ChannelSubscriberSpec) subscriptionName {
+ return types.NamespacedName{
+ Namespace: sub.Ref.Namespace,
+ Name: sub.Ref.Name,
+ }
+}
+
+// stopAllSubscriptions stops listening to all GCP PubSub Subscriptions for the given Channel.
+func (r *reconciler) stopAllSubscriptions(ctx context.Context, c *eventingv1alpha1.Channel) {
+ r.subscriptionsLock.Lock()
+ defer r.subscriptionsLock.Unlock()
+ r.stopAllSubscriptionsUnderLock(ctx, c)
+}
+
+// stopAllSubscriptionsUnderLock stops listening to all GCP PubSub Subscriptions for the given
+// Channel.
+// Note that it can only be called if reconciler.subscriptionsLock is held.
+func (r *reconciler) stopAllSubscriptionsUnderLock(ctx context.Context, c *eventingv1alpha1.Channel) {
+ channelKey := key(c)
+ if subscribers, present := r.subscriptions[channelKey]; present {
+ for _, subCancel := range subscribers {
+ subCancel()
+ }
+ }
+ delete(r.subscriptions, channelKey)
+}
+
+// syncSubscriptions ensures all subscribers of the Channel have a background Goroutine that is
+// polling the GCP PubSub Subscriptions representing it. It also removes listeners from Subscribers
+// that no longer exist.
+func (r *reconciler) syncSubscriptions(ctx context.Context, c *eventingv1alpha1.Channel) error {
+ r.subscriptionsLock.Lock()
+ defer r.subscriptionsLock.Unlock()
+
+ subscribers := c.Spec.Subscribable
+ if subscribers == nil {
+ // There are no subscribers.
+ r.stopAllSubscriptionsUnderLock(ctx, c)
+ return nil
+ }
+
+ for _, subscriber := range subscribers.Subscribers {
+ err := r.createSubscriptionUnderLock(loggingWith(ctx, zap.Any("subscriber", subscriber)), c, &subscriber)
+ if err != nil {
+ return err
+ }
+ }
+
+ // Now remove all subscriptions that are no longer present.
+ channelKey := key(c)
+ activeSubscribers := r.subscriptions[channelKey]
+ if len(subscribers.Subscribers) == len(activeSubscribers) {
+ return nil
+ }
+
+ // subsToDelete is logically a set, not a map (values have no meaning).
+ subsToDelete := make(map[subscriptionName]empty, len(activeSubscribers))
+ for sub := range activeSubscribers {
+ subsToDelete[sub] = empty{}
+ }
+ for _, sub := range subscribers.Subscribers {
+ delete(subsToDelete, subscriptionKey(&sub))
+ }
+ for subToDelete := range subsToDelete {
+ r.subscriptions[channelKey][subToDelete]()
+ }
+ return nil
+}
+
+// createSubscriptionUnderLock starts a background Goroutine for a single subscriber polling its
+// GCP PubSub Subscription.
+// Note that it can only be called if reconciler.subscriptionsLock is held.
+func (r *reconciler) createSubscriptionUnderLock(ctx context.Context, c *eventingv1alpha1.Channel, sub *v1alpha1.ChannelSubscriberSpec) error {
+ channelKey := key(c)
+ if r.subscriptions[channelKey] == nil {
+ r.subscriptions[channelKey] = make(map[subscriptionName]context.CancelFunc)
+ }
+ subKey := subscriptionKey(sub)
+ if r.subscriptions[channelKey][subKey] != nil {
+ // There is already a Goroutine watching this subscription.
+ return nil
+ }
+ ctxWithCancel, cancelFunc := context.WithCancel(ctx)
+ r.subscriptions[channelKey][subKey] = cancelFunc
+
+ gcpProject := r.defaultGcpProject
+ creds, err := pubsubutil.GetCredentials(ctx, r.client, r.defaultSecret, r.defaultSecretKey)
+ if err != nil {
+ return err
+ }
+ psc, err := r.pubSubClientCreator(ctxWithCancel, creds, gcpProject)
+ if err != nil {
+ return err
+ }
+
+ // receiveMessageBlocking blocks, so run it in a goroutine.
+ go r.receiveMessagesBlocking(ctxWithCancel, c, sub.DeepCopy(), gcpProject, psc)
+
+ return nil
+}
+
+// receiveMessagesBlocking receives messages from GCP PubSub, while blocking forever. If the receive
+// fails for any reason, then it will instruct the reconciler to process this Channel again via
+// reconciler.reconcileChan.
+func (r *reconciler) receiveMessagesBlocking(ctxWithCancel context.Context, c *eventingv1alpha1.Channel, sub *v1alpha1.ChannelSubscriberSpec, gcpProject string, psc pubsubutil.PubSubClient) {
+ subscription := psc.SubscriptionInProject(pubsubutil.GenerateSubName(sub), gcpProject)
+ defaults := provisioners.DispatchDefaults{
+ Namespace: c.Namespace,
+ }
+ channelKey := key(c)
+ subKey := subscriptionKey(sub)
+
+ logging.FromContext(ctxWithCancel).Info("subscription.Receive start")
+ receiveErr := subscription.Receive(
+ ctxWithCancel,
+ receiveFunc(logging.FromContext(ctxWithCancel), sub, defaults, r.dispatcher))
+ // We want to minimize holding the lock. r.reconcileChan may block, so definitely do not do
+ // it under lock. But, to prevent a race condition, we must delete from r.subscriptions
+ // before using r.reconcileChan.
+ func() {
+ r.subscriptionsLock.Lock()
+ defer r.subscriptionsLock.Unlock()
+ // It is possible that r.stopAllSubscriptions has been called, which has called
+ // delete(r.subscriptions, channelKey). If the channel has already been deleted from
+ // r.subscriptions, then we don't need to delete anything.
+ if subMap, present := r.subscriptions[channelKey]; present {
+ delete(subMap, subKey)
+ }
+ }()
+
+ logging.FromContext(ctxWithCancel).Info("subscription.Receive stopped")
+ if receiveErr != nil {
+ logging.FromContext(ctxWithCancel).Error("Error receiving messages", zap.Error(receiveErr))
+ r.reconcileChan <- event.GenericEvent{
+ Meta: c.GetObjectMeta(),
+ Object: c,
+ }
+ }
+}
+
+func receiveFunc(logger *zap.SugaredLogger, sub *v1alpha1.ChannelSubscriberSpec, defaults provisioners.DispatchDefaults, dispatcher provisioners.Dispatcher) func(context.Context, pubsubutil.PubSubMessage) {
+ return func(ctx context.Context, msg pubsubutil.PubSubMessage) {
+ message := &provisioners.Message{
+ Headers: msg.Attributes(),
+ Payload: msg.Data(),
+ }
+ err := dispatcher.DispatchMessage(message, sub.SubscriberURI, sub.ReplyURI, defaults)
+ if err != nil {
+ logger.Error("Message dispatch failed", zap.Error(err), zap.String("pubSubMessageId", msg.ID()))
+ msg.Nack()
+ } else {
+ logger.Debug("Message dispatch succeeded", zap.String("pubSubMessageId", msg.ID()))
+ msg.Ack()
+ }
+ }
+}
+
+func loggingWith(ctx context.Context, fields ...zap.Field) context.Context {
+ logger := logging.FromContext(ctx).Desugar()
+ return logging.WithLogger(ctx, logger.With(fields...).Sugar())
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/receiver/receiver.go b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/receiver/receiver.go
new file mode 100644
index 0000000000..b33cbc0fa6
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/dispatcher/receiver/receiver.go
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2018 The Knative Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package receiver
+
+import (
+ "context"
+
+ "github.com/knative/eventing/pkg/provisioners"
+ v1 "k8s.io/api/core/v1"
+
+ "cloud.google.com/go/pubsub"
+ "github.com/knative/eventing/pkg/provisioners/gcppubsub/util"
+ "go.uber.org/zap"
+ "sigs.k8s.io/controller-runtime/pkg/client"
+)
+
+// Receiver parses Cloud Events and sends them to GCP PubSub.
+type Receiver struct {
+ logger *zap.Logger
+ client client.Client
+
+ pubSubClientCreator util.PubSubClientCreator
+
+ // Note that for all the default* parameters below, these must be kept in lock-step with the
+ // GCP PubSub Dispatcher's reconciler.
+ // Eventually, individual Channels should be allowed to specify different projects and secrets,
+ // but for now all Channels use the same project and secret.
+
+ // defaultGcpProject is the GCP project ID where PubSub Topics and Subscriptions are created.
+ defaultGcpProject string
+ // defaultSecret and defaultSecretKey are the K8s Secret and key in that secret that contain a
+ // JSON format GCP service account token, see
+ // https://cloud.google.com/iam/docs/creating-managing-service-account-keys#iam-service-account-keys-create-gcloud
+ defaultSecret *v1.ObjectReference
+ defaultSecretKey string
+}
+
+// New creates a new Receiver and its associated MessageReceiver. The caller is responsible for
+// Start()ing the returned MessageReceiver.
+func New(logger *zap.Logger, client client.Client, pubSubClientCreator util.PubSubClientCreator, defaultGcpProject string, defaultSecret *v1.ObjectReference, defaultSecretKey string) (*Receiver, *provisioners.MessageReceiver) {
+ r := &Receiver{
+ logger: logger,
+ client: client,
+
+ pubSubClientCreator: pubSubClientCreator,
+
+ defaultGcpProject: defaultGcpProject,
+ defaultSecret: defaultSecret,
+ defaultSecretKey: defaultSecretKey,
+ }
+ return r, r.newMessageReceiver()
+}
+
+func (r *Receiver) newMessageReceiver() *provisioners.MessageReceiver {
+ return provisioners.NewMessageReceiver(r.sendEventToTopic, r.logger.Sugar())
+}
+
+// sendEventToTopic sends a message to the Cloud Pub/Sub Topic backing the Channel.
+func (r *Receiver) sendEventToTopic(channel provisioners.ChannelReference, message *provisioners.Message) error {
+ r.logger.Debug("received message")
+ ctx := context.Background()
+
+ creds, err := util.GetCredentials(ctx, r.client, r.defaultSecret, r.defaultSecretKey)
+ if err != nil {
+ r.logger.Error("Failed to extract creds", zap.Error(err))
+ return err
+ }
+
+ psc, err := r.pubSubClientCreator(ctx, creds, r.defaultGcpProject)
+ if err != nil {
+ r.logger.Error("Failed to create PubSub client", zap.Error(err))
+ return err
+ }
+ topicName := util.GenerateTopicName(channel.Namespace, channel.Name)
+ topic := psc.Topic(topicName)
+ result := topic.Publish(ctx, &pubsub.Message{
+ Data: message.Payload,
+ Attributes: message.Headers,
+ })
+
+ id, err := result.Get(ctx)
+ if err != nil {
+ return err
+ }
+
+ // TODO allow topics to be reused between publish events, call .Stop after an idle period
+ topic.Stop()
+
+ r.logger.Debug("Published a message", zap.String("topicName", topicName), zap.String("pubSubMessageId", id))
+ return nil
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/creds.go b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/creds.go
new file mode 100644
index 0000000000..be3bbcc263
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/creds.go
@@ -0,0 +1,55 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package util
+
+import (
+ "context"
+ "fmt"
+
+ "sigs.k8s.io/controller-runtime/pkg/client"
+
+ "cloud.google.com/go/pubsub"
+ "github.com/knative/pkg/logging"
+ "go.uber.org/zap"
+ "golang.org/x/oauth2/google"
+ v1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/types"
+)
+
+// GetCredentials gets GCP credentials from a secretRef. The credentials must be stored in JSON format
+// in the secretRef.
+func GetCredentials(ctx context.Context, client client.Client, secretRef *v1.ObjectReference, key string) (*google.Credentials, error) {
+ secret := &v1.Secret{}
+ err := client.Get(ctx, types.NamespacedName{Namespace: secretRef.Namespace, Name: secretRef.Name}, secret)
+ if err != nil {
+ logging.FromContext(ctx).Error("Unable to read the secretRef", zap.Any("secretRef", secretRef))
+ return nil, err
+ }
+
+ bytes, present := secret.Data[key]
+ if !present {
+ logging.FromContext(ctx).Error("Secret did not contain the key", zap.String("key", key))
+ return nil, fmt.Errorf("secretRef did not contain the key '%s'", key)
+ }
+
+ creds, err := google.CredentialsFromJSON(ctx, bytes, pubsub.ScopePubSub)
+ if err != nil {
+ logging.FromContext(ctx).Error("Unable to create the GCP credential", zap.Error(err))
+ return nil, err
+ }
+ return creds, nil
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/fakepubsub/fake_pubsub.go b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/fakepubsub/fake_pubsub.go
new file mode 100644
index 0000000000..ca05f9ec2d
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/fakepubsub/fake_pubsub.go
@@ -0,0 +1,214 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package fakepubsub
+
+import (
+ "context"
+
+ "golang.org/x/oauth2/google"
+
+ "github.com/knative/eventing/pkg/provisioners/gcppubsub/util"
+
+ "cloud.google.com/go/pubsub"
+)
+
+type CreatorData struct {
+ ClientCreateErr error
+ ClientData ClientData
+}
+
+func Creator(value interface{}) util.PubSubClientCreator {
+ var data CreatorData
+ var ok bool
+ if data, ok = value.(CreatorData); !ok {
+ data = CreatorData{}
+ }
+ if data.ClientCreateErr != nil {
+ return func(_ context.Context, _ *google.Credentials, _ string) (util.PubSubClient, error) {
+ return nil, data.ClientCreateErr
+ }
+ }
+ return func(_ context.Context, credentials *google.Credentials, _ string) (util.PubSubClient, error) {
+ return &Client{
+ Data: data.ClientData,
+ }, nil
+ }
+}
+
+type ClientData struct {
+ SubscriptionData SubscriptionData
+ CreateSubErr error
+ TopicData TopicData
+ CreateTopicErr error
+}
+
+type Client struct {
+ Data ClientData
+}
+
+var _ util.PubSubClient = &Client{}
+
+func (c *Client) SubscriptionInProject(id, projectId string) util.PubSubSubscription {
+ return &Subscription{
+ Data: c.Data.SubscriptionData,
+ }
+}
+
+func (c *Client) CreateSubscription(ctx context.Context, id string, topic util.PubSubTopic) (util.PubSubSubscription, error) {
+ if c.Data.CreateSubErr != nil {
+ return nil, c.Data.CreateSubErr
+ }
+ return &Subscription{
+ Data: c.Data.SubscriptionData,
+ }, nil
+}
+
+func (c *Client) Topic(id string) util.PubSubTopic {
+ return &Topic{
+ Data: c.Data.TopicData,
+ }
+}
+
+func (c *Client) CreateTopic(ctx context.Context, id string) (util.PubSubTopic, error) {
+ if c.Data.CreateTopicErr != nil {
+ return nil, c.Data.CreateTopicErr
+ }
+ return c.Topic(id), nil
+}
+
+type SubscriptionData struct {
+ Exists bool
+ ExistsErr error
+ DeleteErr error
+ ReceiveErr error
+
+ ReceiveFunc func(context.Context, util.PubSubMessage)
+}
+
+type Subscription struct {
+ Data SubscriptionData
+}
+
+var _ util.PubSubSubscription = &Subscription{}
+
+func (s *Subscription) Exists(ctx context.Context) (bool, error) {
+ return s.Data.Exists, s.Data.ExistsErr
+}
+
+func (s *Subscription) ID() string {
+ return "test-subscription-id"
+}
+
+func (s *Subscription) Delete(ctx context.Context) error {
+ return s.Data.DeleteErr
+}
+
+func (s *Subscription) Receive(ctx context.Context, f func(context.Context, util.PubSubMessage)) error {
+ s.Data.ReceiveFunc = f
+ return s.Data.ReceiveErr
+}
+
+type TopicData struct {
+ Exists bool
+ ExistsErr error
+
+ DeleteErr error
+ Publish PublishResultData
+
+ Stop bool
+}
+
+type Topic struct {
+ Data TopicData
+}
+
+var _ util.PubSubTopic = &Topic{}
+
+func (t *Topic) Exists(ctx context.Context) (bool, error) {
+ return t.Data.Exists, t.Data.ExistsErr
+}
+
+func (t *Topic) ID() string {
+ return "test-topic-ID"
+}
+
+func (t *Topic) Delete(ctx context.Context) error {
+ return t.Data.DeleteErr
+}
+
+func (t *Topic) Publish(ctx context.Context, msg *pubsub.Message) util.PubSubPublishResult {
+ return &PublishResult{
+ Data: t.Data.Publish,
+ }
+}
+
+func (t *Topic) Stop() {
+ t.Data.Stop = true
+}
+
+type PublishResultData struct {
+ ID string
+ Err error
+ Ready <-chan struct{}
+}
+
+type PublishResult struct {
+ Data PublishResultData
+}
+
+var _ util.PubSubPublishResult = &PublishResult{}
+
+func (r *PublishResult) Ready() <-chan struct{} {
+ return r.Data.Ready
+}
+
+func (r *PublishResult) Get(ctx context.Context) (serverID string, err error) {
+ return r.Data.ID, r.Data.Err
+}
+
+type MessageData struct {
+ Ack bool
+ Nack bool
+}
+
+type Message struct {
+ MessageData MessageData
+}
+
+var _ util.PubSubMessage = &Message{}
+
+func (m *Message) ID() string {
+ return "test-message-id"
+}
+
+func (m *Message) Data() []byte {
+ return []byte("test-message-data")
+}
+
+func (m *Message) Attributes() map[string]string {
+ return map[string]string{
+ "test": "attributes",
+ }
+}
+
+func (m *Message) Ack() {
+ m.MessageData.Ack = true
+}
+
+func (m *Message) Nack() {
+ m.MessageData.Nack = true
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/names.go b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/names.go
new file mode 100644
index 0000000000..c5351cfff2
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/names.go
@@ -0,0 +1,43 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package util
+
+import (
+ "github.com/knative/eventing/pkg/provisioners/utils"
+
+ eventduck "github.com/knative/eventing/pkg/apis/duck/v1alpha1"
+)
+
+// Underscore is used as a separator between the namespace and name so the concatenated version
+// can't accidentally overlap.
+
+// GenerateTopicName generates the GCP PubSub Topic name given the Knative Channel's namespace and
+// name.
+// Note that it must be stable. The controller and dispatcher rely on this being generated
+// identically.
+func GenerateTopicName(channelNamespace, channelName string) string {
+ return utils.TopicName("_", channelNamespace, channelName)
+}
+
+// GenerateSubname Generates the GCP PubSub Subscription name given the Knative Channel's
+// subscriber's namespace and name.
+// Note that this requires the subscriber's ref to be set correctly.
+// Note that it must be stable. The controller and dispatcher rely on this being generated
+// identically.
+func GenerateSubName(cs *eventduck.ChannelSubscriberSpec) string {
+ return utils.TopicName("_", cs.Ref.Name, string(cs.Ref.UID))
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/pubsub_wrapper.go b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/pubsub_wrapper.go
new file mode 100644
index 0000000000..8109ae7735
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/pubsub_wrapper.go
@@ -0,0 +1,221 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package util
+
+import (
+ "context"
+ "errors"
+
+ "google.golang.org/api/option"
+
+ "golang.org/x/oauth2/google"
+
+ "cloud.google.com/go/pubsub"
+)
+
+// This file exists so that we can unit test failures with the PubSub client.
+
+// PubSubClientCreator creates a pubSubClient.
+type PubSubClientCreator func(ctx context.Context, creds *google.Credentials, googleCloudProject string) (PubSubClient, error)
+
+// GcpPubSubClientCreator creates a real GCP PubSub client. It should always be used, except during
+// unit tests.
+func GcpPubSubClientCreator(ctx context.Context, creds *google.Credentials, googleCloudProject string) (PubSubClient, error) {
+ psc, err := pubsub.NewClient(ctx, googleCloudProject, option.WithCredentials(creds))
+ if err != nil {
+ return nil, err
+ }
+ return &realGcpPubSubClient{
+ client: psc,
+ }, nil
+}
+
+// PubSubClient is the set of methods we use on pubsub.Client. See pubsub.Client for documentation
+// of the functions.
+type PubSubClient interface {
+ SubscriptionInProject(id, projectId string) PubSubSubscription
+ CreateSubscription(ctx context.Context, id string, topic PubSubTopic) (PubSubSubscription, error)
+ Topic(id string) PubSubTopic
+ CreateTopic(ctx context.Context, id string) (PubSubTopic, error)
+}
+
+// realGcpPubSubClient is the client that will be used everywhere except unit tests. Verify that it
+// satisfies the interface.
+var _ PubSubClient = &realGcpPubSubClient{}
+
+// realGcpPubSubClient wraps a real GCP PubSub client, so that it matches the PubSubClient
+// interface. It is needed because the real SubscriptionInProject returns a struct and does not
+// implicitly match gcpPubSubClient, which returns an interface.
+type realGcpPubSubClient struct {
+ client *pubsub.Client
+}
+
+func (c *realGcpPubSubClient) SubscriptionInProject(id, projectId string) PubSubSubscription {
+ return &realGcpPubSubSubscription{
+ sub: c.client.SubscriptionInProject(id, projectId),
+ }
+}
+
+func (c *realGcpPubSubClient) CreateSubscription(ctx context.Context, id string, topic PubSubTopic) (PubSubSubscription, error) {
+ // We are using the real client, so this better be a real *pubsub.Topic...
+ realTopic, ok := topic.(*realGcpPubSubTopic)
+ if !ok {
+ return nil, errors.New("topic was not a *realGcpPubSubTopic")
+ }
+ cfg := pubsub.SubscriptionConfig{
+ Topic: realTopic.topic,
+ }
+ sub, err := c.client.CreateSubscription(ctx, id, cfg)
+ return &realGcpPubSubSubscription{sub: sub}, err
+}
+
+func (c *realGcpPubSubClient) Topic(id string) PubSubTopic {
+ return &realGcpPubSubTopic{topic: c.client.Topic(id)}
+}
+
+func (c *realGcpPubSubClient) CreateTopic(ctx context.Context, id string) (PubSubTopic, error) {
+ topic, err := c.client.CreateTopic(ctx, id)
+ return &realGcpPubSubTopic{topic: topic}, err
+}
+
+// PubSubSubscription is the set of methods we use on pubsub.Subscription. It exists to make
+// PubSubClient unit testable. See pubsub.Subscription for documentation of the functions.
+type PubSubSubscription interface {
+ Exists(ctx context.Context) (bool, error)
+ ID() string
+ Delete(ctx context.Context) error
+ Receive(ctx context.Context, f func(context.Context, PubSubMessage)) error
+}
+
+// realGcpPubSubSubscription wraps a real GCP PubSub Subscription, so that it matches the
+// PubSubSubscription interface.
+type realGcpPubSubSubscription struct {
+ sub *pubsub.Subscription
+}
+
+// realGcpPubSubSubscription is the real PubSubSubscription that is used everywhere except unit
+// tests. Verify that it satisfies the interface.
+var _ PubSubSubscription = &realGcpPubSubSubscription{}
+
+func (s *realGcpPubSubSubscription) Exists(ctx context.Context) (bool, error) {
+ return s.sub.Exists(ctx)
+}
+
+func (s *realGcpPubSubSubscription) ID() string {
+ return s.sub.ID()
+}
+
+func (s *realGcpPubSubSubscription) Delete(ctx context.Context) error {
+ return s.sub.Delete(ctx)
+}
+
+func (s *realGcpPubSubSubscription) Receive(ctx context.Context, f func(context.Context, PubSubMessage)) error {
+ fWrapper := func(ctx context.Context, msg *pubsub.Message) {
+ f(ctx, &realGcpPubSubMessage{msg: msg})
+ }
+ return s.sub.Receive(ctx, fWrapper)
+}
+
+// PubSubTopic is the set of methods we use on pubsub.Topic. It exists to make PubSubClient unit
+// testable. See pubsub.Topic for documentation of the functions.
+type PubSubTopic interface {
+ Exists(ctx context.Context) (bool, error)
+ ID() string
+ Delete(ctx context.Context) error
+ Publish(ctx context.Context, msg *pubsub.Message) PubSubPublishResult
+ Stop()
+}
+
+// realGcpPubSubTopic wraps a real GCP PubSub Topic, so that it matches the PubSubTopic interface.
+type realGcpPubSubTopic struct {
+ topic *pubsub.Topic
+}
+
+// realGcpPubSubTopic is the real PubSubTopic that is used everywhere except unit tests. Verify that
+// it satisfies the interface.
+var _ PubSubTopic = &realGcpPubSubTopic{}
+
+func (t *realGcpPubSubTopic) Exists(ctx context.Context) (bool, error) {
+ return t.topic.Exists(ctx)
+}
+
+func (t *realGcpPubSubTopic) ID() string {
+ return t.topic.ID()
+}
+
+func (t *realGcpPubSubTopic) Delete(ctx context.Context) error {
+ return t.topic.Delete(ctx)
+}
+
+func (t *realGcpPubSubTopic) Publish(ctx context.Context, msg *pubsub.Message) PubSubPublishResult {
+ return t.topic.Publish(ctx, msg)
+}
+
+func (t *realGcpPubSubTopic) Stop() {
+ t.topic.Stop()
+}
+
+// PubSubPublishResult is the set of methods we use on pubsub.PublishResult. It exists to make
+// PubSubClient unit testable. See pubsub.PublishResult for documentation of any functions.
+type PubSubPublishResult interface {
+ Ready() <-chan struct{}
+ Get(ctx context.Context) (serverID string, err error)
+}
+
+// pubsub.PublishResult is the real PubSubPublishResult used everywhere except unit tests. Verify
+// that it satisfies the interface.
+var _ PubSubPublishResult = &pubsub.PublishResult{}
+
+// PubSubMessage is the set of methods we use on pubsub.Message. It exists to make PubSubClient unit
+// testable. See pubsub.Message for documentation of the functions.
+type PubSubMessage interface {
+ ID() string
+ Data() []byte
+ Attributes() map[string]string
+ Ack()
+ Nack()
+}
+
+// realGcpPubSubMessage wraps a real GCP PubSub Message, so that it matches the PubSubMessage
+// interface.
+type realGcpPubSubMessage struct {
+ msg *pubsub.Message
+}
+
+// realGcpPubSubMessage is the real PubSubMessage used everywhere except unit tests. Verify that it
+// satisfies the interface.
+var _ PubSubMessage = &realGcpPubSubMessage{}
+
+func (m *realGcpPubSubMessage) ID() string {
+ return m.msg.ID
+}
+
+func (m *realGcpPubSubMessage) Data() []byte {
+ return m.msg.Data
+}
+
+func (m *realGcpPubSubMessage) Attributes() map[string]string {
+ return m.msg.Attributes
+}
+
+func (m *realGcpPubSubMessage) Ack() {
+ m.msg.Ack()
+}
+
+func (m *realGcpPubSubMessage) Nack() {
+ m.msg.Nack()
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/testcreds/helper.go b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/testcreds/helper.go
new file mode 100644
index 0000000000..f2297c7c4e
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/gcppubsub/util/testcreds/helper.go
@@ -0,0 +1,67 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package testcreds
+
+import (
+ v1 "k8s.io/api/core/v1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+const (
+ // InvalidCredsError is the error string returned when using MakeSecretWithInvalidCreds().
+ InvalidCredsError = "unexpected end of JSON input"
+)
+
+var (
+ // Secret is a reference to the Secret created by either MakeSecretWithCreds() and
+ // MakeSecretWithInvalidCreds().
+ Secret = &v1.ObjectReference{
+ APIVersion: "v1",
+ Kind: "Secret",
+ Namespace: "secret-namespace",
+ Name: "secret-name",
+ }
+
+ // SecretKey is the key in the Secret data that contains the JSON credential token.
+ SecretKey = "key.json"
+)
+
+// MakeSecretWithCreds makes a Secret that can successfully be passed through GetCredentials.
+// Only tests should be calling this.
+func MakeSecretWithCreds() *v1.Secret {
+ return &v1.Secret{
+ TypeMeta: metav1.TypeMeta{
+ APIVersion: Secret.APIVersion,
+ Kind: Secret.Kind,
+ },
+ ObjectMeta: metav1.ObjectMeta{
+ Name: Secret.Name,
+ Namespace: Secret.Namespace,
+ },
+ Data: map[string][]byte{
+ SecretKey: []byte(`{"type": "authorized_user"}`),
+ },
+ }
+}
+
+// MakeSecretWithInvalidCreds makes a Secret that fails to pass GetCredential. Only tests should be
+// calling this.
+func MakeSecretWithInvalidCreds() *v1.Secret {
+ secret := MakeSecretWithCreds()
+ secret.Data[SecretKey] = []byte("")
+ return secret
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/kafka/controller/channel/reconcile.go b/vendor/github.com/knative/eventing/pkg/provisioners/kafka/controller/channel/reconcile.go
index 50d8885420..bc5a9a2bf4 100644
--- a/vendor/github.com/knative/eventing/pkg/provisioners/kafka/controller/channel/reconcile.go
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/kafka/controller/channel/reconcile.go
@@ -92,10 +92,11 @@ func (r *reconciler) Reconcile(request reconcile.Request) (reconcile.Result, err
newChannel.Status.InitializeConditions()
+ var requeue = false
if clusterChannelProvisioner.Status.IsReady() {
// Reconcile this copy of the Channel and then write back any status
// updates regardless of whether the reconcile error out.
- err = r.reconcile(ctx, newChannel)
+ requeue, err = r.reconcile(ctx, newChannel)
} else {
newChannel.Status.MarkNotProvisioned("NotProvisioned", "ClusterChannelProvisioner %s is not ready", clusterChannelProvisioner.Name)
err = fmt.Errorf("ClusterChannelProvisioner %s is not ready", clusterChannelProvisioner.Name)
@@ -107,15 +108,20 @@ func (r *reconciler) Reconcile(request reconcile.Request) (reconcile.Result, err
}
// Requeue if the resource is not ready:
- return reconcile.Result{}, err
+ return reconcile.Result{
+ Requeue: requeue,
+ }, err
}
-func (r *reconciler) reconcile(ctx context.Context, channel *eventingv1alpha1.Channel) error {
+// reconcile reconciles this Channel so that the real world matches the intended state. The returned
+// boolean indicates if this Channel should be immediately requeued for another reconcile loop. The
+// returned error indicates an error during reconciliation.
+func (r *reconciler) reconcile(ctx context.Context, channel *eventingv1alpha1.Channel) (bool, error) {
// We always need to sync the Channel config, so do it first.
if err := r.syncChannelConfig(ctx); err != nil {
r.logger.Info("error updating syncing the Channel config", zap.Error(err))
- return err
+ return false, err
}
// We don't currently initialize r.kafkaClusterAdmin, hence we end up creating the cluster admin client every time.
@@ -128,7 +134,7 @@ func (r *reconciler) reconcile(ctx context.Context, channel *eventingv1alpha1.Ch
kafkaClusterAdmin, err = createKafkaAdminClient(r.config)
if err != nil {
r.logger.Fatal("unable to build kafka admin client", zap.Error(err))
- return err
+ return false, err
}
}
@@ -136,58 +142,53 @@ func (r *reconciler) reconcile(ctx context.Context, channel *eventingv1alpha1.Ch
accessor, err := meta.Accessor(channel)
if err != nil {
r.logger.Info("failed to get metadata", zap.Error(err))
- return err
+ return false, err
}
deletionTimestamp := accessor.GetDeletionTimestamp()
if deletionTimestamp != nil {
r.logger.Info(fmt.Sprintf("DeletionTimestamp: %v", deletionTimestamp))
- if err := r.deprovisionChannel(channel, kafkaClusterAdmin); err != nil {
- return err
+ if err = r.deprovisionChannel(channel, kafkaClusterAdmin); err != nil {
+ return false, err
}
util.RemoveFinalizer(channel, finalizerName)
- return nil
+ return false, nil
}
- util.AddFinalizer(channel, finalizerName)
+ // If we are adding the finalizer for the first time, then ensure that finalizer is persisted
+ // before manipulating Kafka, which will not be automatically garbage collected by K8s if this
+ // Channel is deleted.
+ if addFinalizerResult := util.AddFinalizer(channel, finalizerName); addFinalizerResult == util.FinalizerAdded {
+ return true, nil
+ }
- if err := r.provisionChannel(channel, kafkaClusterAdmin); err != nil {
+ if err = r.provisionChannel(channel, kafkaClusterAdmin); err != nil {
channel.Status.MarkNotProvisioned("NotProvisioned", "error while provisioning: %s", err)
- return err
+ return false, err
}
svc, err := util.CreateK8sService(ctx, r.client, channel)
-
if err != nil {
r.logger.Info("error creating the Channel's K8s Service", zap.Error(err))
- return err
+ return false, err
}
-
- // Check if this Channel is the owner of the K8s service.
- if !metav1.IsControlledBy(svc, channel) {
- r.logger.Warn("Channel's K8s Service is not owned by the Channel", zap.Any("channel", channel), zap.Any("service", svc))
- }
-
channel.Status.SetAddress(eventingController.ServiceHostName(svc.Name, svc.Namespace))
- virtualService, err := util.CreateVirtualService(ctx, r.client, channel)
-
+ _, err = util.CreateVirtualService(ctx, r.client, channel, svc)
if err != nil {
r.logger.Info("error creating the Virtual Service for the Channel", zap.Error(err))
- return err
- }
-
- // If the Virtual Service is not controlled by this Channel, we should log a warning, but don't
- // consider it an error.
- if !metav1.IsControlledBy(virtualService, channel) {
- r.logger.Warn("VirtualService not owned by Channel", zap.Any("channel", channel), zap.Any("virtualService", virtualService))
+ return false, err
}
channel.Status.MarkProvisioned()
// close the connection
- kafkaClusterAdmin.Close()
+ err = kafkaClusterAdmin.Close()
+ if err != nil {
+ r.logger.Error("error closing the connection", zap.Error(err))
+ return false, err
+ }
- return nil
+ return false, nil
}
func (r *reconciler) shouldReconcile(channel *eventingv1alpha1.Channel, clusterChannelProvisioner *eventingv1alpha1.ClusterChannelProvisioner) bool {
@@ -344,7 +345,7 @@ func (r *reconciler) listAllChannels(ctx context.Context) ([]eventingv1alpha1.Ch
}
for {
cl := &eventingv1alpha1.ChannelList{}
- if err := r.client.List(ctx, opts, cl); err != nil {
+ if err = r.client.List(ctx, opts, cl); err != nil {
return nil, err
}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/kafka/controller/reconcile.go b/vendor/github.com/knative/eventing/pkg/provisioners/kafka/controller/reconcile.go
index 3b2b633d2a..14904eac54 100644
--- a/vendor/github.com/knative/eventing/pkg/provisioners/kafka/controller/reconcile.go
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/kafka/controller/reconcile.go
@@ -42,6 +42,13 @@ const (
func (r *reconciler) Reconcile(request reconcile.Request) (reconcile.Result, error) {
ctx := context.TODO()
r.logger.Info("reconciling ClusterChannelProvisioner", zap.Any("request", request))
+
+ // Workaround until https://github.com/kubernetes-sigs/controller-runtime/issues/214 is fixed.
+ // The reconcile requests triggered because of objects owned by this ClusterChannelProvisioner (e.g k8s service)
+ // will contain the namespace of that object. Since ClusterChannelProvisioner is cluster-scoped we need to unset the
+ // namespace or otherwise the provisioner object cannot be found.
+ request.NamespacedName.Namespace = ""
+
provisioner := &v1alpha1.ClusterChannelProvisioner{}
err := r.client.Get(context.TODO(), request.NamespacedName, provisioner)
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/kafka/dispatcher/dispatcher.go b/vendor/github.com/knative/eventing/pkg/provisioners/kafka/dispatcher/dispatcher.go
index 2b79c2f3af..b7d279dc88 100644
--- a/vendor/github.com/knative/eventing/pkg/provisioners/kafka/dispatcher/dispatcher.go
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/kafka/dispatcher/dispatcher.go
@@ -22,7 +22,7 @@ import (
"sync/atomic"
"github.com/Shopify/sarama"
- "github.com/bsm/sarama-cluster"
+ cluster "github.com/bsm/sarama-cluster"
"github.com/google/go-cmp/cmp"
"go.uber.org/zap"
@@ -156,9 +156,7 @@ func (d *KafkaDispatcher) Start(stopCh <-chan struct{}) error {
}
}()
- d.receiver.Run(stopCh)
-
- return nil
+ return d.receiver.Start(stopCh)
}
func (d *KafkaDispatcher) subscribe(channelRef provisioners.ChannelReference, sub subscription) error {
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/message_dispatcher.go b/vendor/github.com/knative/eventing/pkg/provisioners/message_dispatcher.go
index 2e0eadae77..3671b7c794 100644
--- a/vendor/github.com/knative/eventing/pkg/provisioners/message_dispatcher.go
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/message_dispatcher.go
@@ -30,6 +30,18 @@ import (
const correlationIDHeaderName = "Knative-Correlation-Id"
+type Dispatcher interface {
+ // DispatchMessage dispatches a message to a destination over HTTP.
+ //
+ // The destination and reply are DNS names. For names with a single label,
+ // the default namespace is used to expand it into a fully qualified name
+ // within the cluster.
+ DispatchMessage(message *Message, destination, reply string, defaults DispatchDefaults) error
+}
+
+// MessageDispatcher is the 'real' Dispatcher used everywhere except unit tests.
+var _ Dispatcher = &MessageDispatcher{}
+
// MessageDispatcher dispatches messages to a destination over HTTP.
type MessageDispatcher struct {
httpClient *http.Client
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/message_receiver.go b/vendor/github.com/knative/eventing/pkg/provisioners/message_receiver.go
index fa78ac57f5..14f9350b82 100644
--- a/vendor/github.com/knative/eventing/pkg/provisioners/message_receiver.go
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/message_receiver.go
@@ -59,29 +59,19 @@ func NewMessageReceiver(receiverFunc func(ChannelReference, *Message) error, log
// server.
//
// This method will block until a message is received on the stop channel.
-func (r *MessageReceiver) Run(stopCh <-chan struct{}) {
+func (r *MessageReceiver) Start(stopCh <-chan struct{}) error {
svr := r.start()
defer r.stop(svr)
<-stopCh
+ return nil
}
func (r *MessageReceiver) start() *http.Server {
r.logger.Info("Starting web server")
srv := &http.Server{
- Addr: fmt.Sprintf(":%d", MessageReceiverPort),
- Handler: http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
- if req.URL.Path != "/" {
- res.WriteHeader(http.StatusNotFound)
- return
- }
- if req.Method != http.MethodPost {
- res.WriteHeader(http.StatusMethodNotAllowed)
- return
- }
-
- r.HandleRequest(res, req)
- }),
+ Addr: fmt.Sprintf(":%d", MessageReceiverPort),
+ Handler: r.handler(),
}
go func() {
if err := srv.ListenAndServe(); err != http.ErrServerClosed {
@@ -98,17 +88,38 @@ func (r *MessageReceiver) stop(srv *http.Server) {
}
}
+// handler creates the http.Handler used by the http.Server started in MessageReceiver.Run.
+func (r *MessageReceiver) handler() http.Handler {
+ return http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
+ if req.URL.Path != "/" {
+ res.WriteHeader(http.StatusNotFound)
+ return
+ }
+ if req.Method != http.MethodPost {
+ res.WriteHeader(http.StatusMethodNotAllowed)
+ return
+ }
+
+ r.HandleRequest(res, req)
+ })
+}
+
// HandleRequest is an http Handler function. The request is converted to a
// Message and emitted to the receiver func.
//
// The response status codes:
-// 202 - the message was sent to subscibers
+// 202 - the message was sent to subscribers
// 404 - the request was for an unknown channel
// 500 - an error occurred processing the request
func (r *MessageReceiver) HandleRequest(res http.ResponseWriter, req *http.Request) {
host := req.Host
r.logger.Infof("Received request for %s", host)
- channel := ParseChannel(host)
+ channel, err := ParseChannel(host)
+ if err != nil {
+ r.logger.Info("Could not extract channel", zap.Error(err))
+ res.WriteHeader(http.StatusInternalServerError)
+ return
+ }
message, err := r.fromRequest(req)
if err != nil {
@@ -170,10 +181,13 @@ func (r *MessageReceiver) fromHTTPHeaders(headers http.Header) map[string]string
// ParseChannel converts the channel's hostname into a channel
// reference.
-func ParseChannel(host string) ChannelReference {
+func ParseChannel(host string) (ChannelReference, error) {
chunks := strings.Split(host, ".")
+ if len(chunks) < 2 {
+ return ChannelReference{}, fmt.Errorf("bad host format '%s'", host)
+ }
return ChannelReference{
Name: chunks[0],
Namespace: chunks[1],
- }
+ }, nil
}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/channel/controller.go b/vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/channel/controller.go
new file mode 100644
index 0000000000..9968eedf9e
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/channel/controller.go
@@ -0,0 +1,79 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package channel
+
+import (
+ "go.uber.org/zap"
+ "sigs.k8s.io/controller-runtime/pkg/controller"
+ "sigs.k8s.io/controller-runtime/pkg/handler"
+ "sigs.k8s.io/controller-runtime/pkg/manager"
+ "sigs.k8s.io/controller-runtime/pkg/source"
+
+ eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ istiov1alpha3 "github.com/knative/pkg/apis/istio/v1alpha3"
+ corev1 "k8s.io/api/core/v1"
+)
+
+const (
+ // controllerAgentName is the string used by this controller to identify itself when creating events.
+ controllerAgentName = "natss-controller"
+)
+
+// ProvideController returns a Controller that represents the NATSS Provisioner.
+func ProvideController(mgr manager.Manager, logger *zap.Logger) (controller.Controller, error) {
+ // Setup a new controller to Reconcile Channels that belong to this Cluster Provisioner
+ r := &reconciler{
+ recorder: mgr.GetRecorder(controllerAgentName),
+ logger: logger,
+ }
+ c, err := controller.New(controllerAgentName, mgr, controller.Options{
+ Reconciler: r,
+ })
+ if err != nil {
+ logger.Error("Unable to create controller.", zap.Error(err))
+ return nil, err
+ }
+
+ // Watch Channels.
+ err = c.Watch(&source.Kind{
+ Type: &eventingv1alpha1.Channel{},
+ }, &handler.EnqueueRequestForObject{})
+ if err != nil {
+ logger.Error("Unable to watch Channels.", zap.Error(err), zap.Any("type", &eventingv1alpha1.Channel{}))
+ return nil, err
+ }
+
+ // Watch the K8s Services that are owned by Channels.
+ err = c.Watch(&source.Kind{
+ Type: &corev1.Service{},
+ }, &handler.EnqueueRequestForOwner{OwnerType: &eventingv1alpha1.Channel{}, IsController: true})
+ if err != nil {
+ logger.Error("Unable to watch K8s Services.", zap.Error(err))
+ return nil, err
+ }
+
+ // Watch the VirtualServices that are owned by Channels.
+ err = c.Watch(&source.Kind{
+ Type: &istiov1alpha3.VirtualService{},
+ }, &handler.EnqueueRequestForOwner{OwnerType: &eventingv1alpha1.Channel{}, IsController: true})
+ if err != nil {
+ logger.Error("Unable to watch VirtualServices.", zap.Error(err))
+ return nil, err
+ }
+
+ return c, nil
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/channel/reconcile.go b/vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/channel/reconcile.go
new file mode 100644
index 0000000000..97e26b5f8c
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/channel/reconcile.go
@@ -0,0 +1,151 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package channel
+
+import (
+ "context"
+ "fmt"
+
+ "github.com/knative/eventing/pkg/controller"
+ "github.com/knative/eventing/pkg/provisioners"
+ "go.uber.org/zap"
+ "k8s.io/apimachinery/pkg/api/errors"
+ "k8s.io/client-go/tools/record"
+ "sigs.k8s.io/controller-runtime/pkg/client"
+ "sigs.k8s.io/controller-runtime/pkg/reconcile"
+
+ eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ ccpcontroller "github.com/knative/eventing/pkg/provisioners/natss/controller/clusterchannelprovisioner"
+)
+
+type reconciler struct {
+ client client.Client
+ recorder record.EventRecorder
+ logger *zap.Logger
+}
+
+// Verify the struct implements reconcile.Reconciler
+var _ reconcile.Reconciler = &reconciler{}
+
+func (r *reconciler) InjectClient(c client.Client) error {
+ r.client = c
+ return nil
+}
+
+func (r *reconciler) Reconcile(request reconcile.Request) (reconcile.Result, error) {
+ r.logger.Info("Reconcile: ", zap.Any("request", request))
+
+ ctx := context.TODO()
+ c := &eventingv1alpha1.Channel{}
+ err := r.client.Get(ctx, request.NamespacedName, c)
+
+ // The Channel may have been deleted since it was added to the workqueue. If so, there is
+ // nothing to be done.
+ if errors.IsNotFound(err) {
+ r.logger.Info("Could not find Channel", zap.Error(err))
+ return reconcile.Result{}, nil
+ }
+
+ // Any other error should be retrieved in another reconciliation.
+ if err != nil {
+ r.logger.Error("Unable to Get Channel", zap.Error(err))
+ return reconcile.Result{}, err
+ }
+
+ // Does this Controller control this Channel?
+ if !r.shouldReconcile(c) {
+ r.logger.Info("Not reconciling Channel, it is not controlled by this Controller", zap.Any("ref", c.Spec))
+ return reconcile.Result{}, nil
+ }
+
+ // Modify a copy, not the original.
+ c = c.DeepCopy()
+ c.Status.InitializeConditions()
+
+ ccp, err := r.getClusterChannelProvisioner()
+ if err != nil {
+ r.logger.Error("Unable to Get Cluster Channel Provisioner", zap.Error(err))
+ return reconcile.Result{}, err
+ }
+
+ var reconcileErr error
+ if ccp.Status.IsReady() {
+ // Reconcile this copy of the Channel and then write back any status
+ // updates regardless of whether the reconcile error out.
+ reconcileErr = r.reconcile(ctx, c)
+ if reconcileErr != nil {
+ r.logger.Info("Error reconciling Channel", zap.Error(reconcileErr))
+ }
+ } else {
+ c.Status.MarkNotProvisioned("NotProvisioned", "ClusterChannelProvisioner %s is not ready", ccpcontroller.Name)
+ reconcileErr = fmt.Errorf("ClusterChannelProvisioner %s is not ready", ccpcontroller.Name)
+ }
+
+ if updateStatusErr := provisioners.UpdateChannel(ctx, r.client, c); updateStatusErr != nil {
+ r.logger.Info("Error updating Channel Status", zap.Error(updateStatusErr))
+ return reconcile.Result{}, updateStatusErr
+ }
+
+ return reconcile.Result{}, reconcileErr
+}
+
+func (r *reconciler) shouldReconcile(c *eventingv1alpha1.Channel) bool {
+ if c.Spec.Provisioner != nil {
+ return ccpcontroller.IsControlled(c.Spec.Provisioner)
+ }
+ return false
+}
+
+func (r *reconciler) reconcile(ctx context.Context, c *eventingv1alpha1.Channel) error {
+ c.Status.InitializeConditions()
+
+ // We are syncing two things:
+ // 1. The K8s Service to talk to this Channel.
+ // 2. The Istio VirtualService to talk to this Channel.
+
+ if c.DeletionTimestamp != nil {
+ // K8s garbage collection will delete the K8s service and VirtualService for this channel.
+ return nil
+ }
+
+ svc, err := provisioners.CreateK8sService(ctx, r.client, c)
+ if err != nil {
+ r.logger.Info("Error creating the Channel's K8s Service", zap.Error(err))
+ return err
+ }
+ c.Status.SetAddress(controller.ServiceHostName(svc.Name, svc.Namespace))
+
+ _, err = provisioners.CreateVirtualService(ctx, r.client, c, svc)
+ if err != nil {
+ r.logger.Info("Error creating the Virtual Service for the Channel", zap.Error(err))
+ return err
+ }
+
+ c.Status.MarkProvisioned()
+ return nil
+}
+
+func (r *reconciler) getClusterChannelProvisioner() (*eventingv1alpha1.ClusterChannelProvisioner, error) {
+ ccp := &eventingv1alpha1.ClusterChannelProvisioner{}
+ objKey := client.ObjectKey{
+ Name: ccpcontroller.Name,
+ }
+ if err := r.client.Get(context.Background(), objKey, ccp); err != nil {
+ return nil, err
+ }
+ return ccp, nil
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/clusterchannelprovisioner/controller.go b/vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/clusterchannelprovisioner/controller.go
new file mode 100644
index 0000000000..8d700b8090
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/clusterchannelprovisioner/controller.go
@@ -0,0 +1,81 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package clusterchannelprovisioner
+
+import (
+ "github.com/knative/eventing/pkg/provisioners/natss/stanutil"
+ "go.uber.org/zap"
+ "sigs.k8s.io/controller-runtime/pkg/controller"
+ "sigs.k8s.io/controller-runtime/pkg/handler"
+ "sigs.k8s.io/controller-runtime/pkg/manager"
+ "sigs.k8s.io/controller-runtime/pkg/source"
+
+ eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ corev1 "k8s.io/api/core/v1"
+)
+
+const (
+ // NATSS
+ ClusterId = "knative-nats-streaming"
+ NatssUrl = "nats://nats-streaming.natss.svc.cluster.local:4222"
+ clientId = "knative-natss-controller"
+ // controllerAgentName is the string used by this controller to identify itself when creating events.
+ controllerAgentName = "natss-provisioner-controller"
+)
+
+// ProvideController returns a flow controller.
+func ProvideController(mgr manager.Manager, logger *zap.Logger) (controller.Controller, error) {
+ // check the connection to NATSS
+ var err error
+ if _, err := stanutil.Connect(ClusterId, clientId, NatssUrl, logger.Sugar()); err != nil {
+ logger.Error("Connect() failed: ", zap.Error(err))
+ return nil, err
+ }
+
+ // Setup a new controller to Reconcile ClusterChannelProvisioners that are natss channels.
+ r := &reconciler{
+ recorder: mgr.GetRecorder(controllerAgentName),
+ logger: logger,
+ }
+ c, err := controller.New(controllerAgentName, mgr, controller.Options{
+ Reconciler: r,
+ })
+ if err != nil {
+ logger.Error("Unable to create controller.", zap.Error(err))
+ return nil, err
+ }
+
+ // Watch ClusterChannelProvisioners.
+ err = c.Watch(&source.Kind{
+ Type: &eventingv1alpha1.ClusterChannelProvisioner{},
+ }, &handler.EnqueueRequestForObject{})
+ if err != nil {
+ logger.Error("Unable to watch ClusterChannelProvisioners.", zap.Error(err), zap.Any("type", &eventingv1alpha1.ClusterChannelProvisioner{}))
+ return nil, err
+ }
+
+ // Watch the K8s Services that are owned by ClusterChannelProvisioners.
+ err = c.Watch(&source.Kind{
+ Type: &corev1.Service{},
+ }, &handler.EnqueueRequestForOwner{OwnerType: &eventingv1alpha1.ClusterChannelProvisioner{}, IsController: true})
+ if err != nil {
+ logger.Error("Unable to watch K8s Services.", zap.Error(err))
+ return nil, err
+ }
+
+ return c, nil
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/clusterchannelprovisioner/reconcile.go b/vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/clusterchannelprovisioner/reconcile.go
new file mode 100644
index 0000000000..0b8b455635
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/clusterchannelprovisioner/reconcile.go
@@ -0,0 +1,140 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package clusterchannelprovisioner
+
+import (
+ "context"
+
+ "github.com/knative/eventing/pkg/provisioners"
+ "go.uber.org/zap"
+ "k8s.io/apimachinery/pkg/api/errors"
+ "k8s.io/client-go/tools/record"
+ "sigs.k8s.io/controller-runtime/pkg/client"
+ "sigs.k8s.io/controller-runtime/pkg/reconcile"
+
+ eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ corev1 "k8s.io/api/core/v1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+const (
+ // Name is the name of NATSS ClusterChannelProvisioner.
+ Name = "natss"
+ // Channel is the name of the Channel resource in eventing.knative.dev/v1alpha1.
+ Channel = "Channel"
+)
+
+type reconciler struct {
+ client client.Client
+ recorder record.EventRecorder
+ logger *zap.Logger
+}
+
+// Verify the struct implements reconcile.Reconciler
+var _ reconcile.Reconciler = &reconciler{}
+
+func (r *reconciler) InjectClient(c client.Client) error {
+ r.client = c
+ return nil
+}
+
+func (r *reconciler) Reconcile(request reconcile.Request) (reconcile.Result, error) {
+ r.logger.Info("Reconcile: ", zap.Any("request", request))
+
+ // Workaround until https://github.com/kubernetes-sigs/controller-runtime/issues/214 is fixed.
+ // The reconcile requests will include a namespace if they are triggered because of changes to the
+ // objects owned by this ClusterChannelProvisioner (e.g k8s service). Since ClusterChannelProvisioner is
+ // cluster-scoped we need to unset the namespace or otherwise the provisioner object cannot be looked up.
+ request.NamespacedName.Namespace = ""
+
+ ctx := context.TODO()
+ ccp := &eventingv1alpha1.ClusterChannelProvisioner{}
+ err := r.client.Get(ctx, request.NamespacedName, ccp)
+
+ // The ClusterChannelProvisioner may have been deleted since it was added to the workqueue. If so,
+ // there is nothing to be done.
+ if errors.IsNotFound(err) {
+ r.logger.Warn("Could not find ClusterChannelProvisioner", zap.Error(err))
+ return reconcile.Result{}, nil
+ }
+
+ // Any other error should be retrieved in another reconciliation.
+ if err != nil {
+ r.logger.Error("Unable to Get ClusterChannelProvisioner", zap.Error(err))
+ return reconcile.Result{}, err
+ }
+
+ // Does this Controller control this ClusterChannelProvisioner?
+ if !shouldReconcile(ccp.Namespace, ccp.Name) {
+ r.logger.Info("Not reconciling ClusterChannelProvisioner, it is not controlled by this Controller", zap.String("APIVersion", ccp.APIVersion), zap.String("Kind", ccp.Kind), zap.String("Namespace", ccp.Namespace), zap.String("name", ccp.Name))
+ return reconcile.Result{}, nil
+ }
+ r.logger.Info("Reconciling ClusterChannelProvisioner.")
+
+ // Modify a copy of this object, rather than the original.
+ ccp = ccp.DeepCopy()
+
+ reconcileErr := r.reconcile(ctx, ccp)
+ if reconcileErr != nil {
+ r.logger.Info("Error reconciling ClusterChannelProvisioner", zap.Error(reconcileErr))
+ // Note that we do not return the error here, because we want to update the Status
+ // regardless of the error.
+ }
+
+ if updateStatusErr := provisioners.UpdateClusterChannelProvisionerStatus(ctx, r.client, ccp); updateStatusErr != nil {
+ r.logger.Error("Error updating ClusterChannelProvisioner Status", zap.Error(updateStatusErr))
+ return reconcile.Result{}, updateStatusErr
+ }
+
+ return reconcile.Result{}, reconcileErr
+}
+
+// IsControlled determines if the in-memory Channel Controller should control (and therefore
+// reconcile) a given object, based on that object's ClusterChannelProvisioner reference.
+func IsControlled(ref *corev1.ObjectReference) bool {
+ if ref != nil {
+ return shouldReconcile(ref.Namespace, ref.Name)
+ }
+ return false
+}
+
+// shouldReconcile determines if this Controller should control (and therefore reconcile) a given
+// ClusterChannelProvisioner. This Controller only handles Natss channels.
+func shouldReconcile(namespace, name string) bool {
+ return namespace == "" && name == Name
+}
+
+func (r *reconciler) reconcile(ctx context.Context, ccp *eventingv1alpha1.ClusterChannelProvisioner) error {
+ if ccp.DeletionTimestamp != nil {
+ // K8s garbage collection will delete the dispatcher service, once this ClusterChannelProvisioner
+ // is deleted, so we don't need to do anything.
+ return nil
+ }
+
+ svc, err := provisioners.CreateDispatcherService(ctx, r.client, ccp)
+ if err != nil {
+ r.logger.Error("Error creating the ClusterChannelProvisioner's Dispatcher", zap.Error(err))
+ return err
+ }
+ // Check if this ClusterChannelProvisioner is the owner of the K8s service.
+ if !metav1.IsControlledBy(svc, ccp) {
+ r.logger.Warn("ClusterChannelProvisioner's K8s Service is not owned by the ClusterChannelProvisioner", zap.Any("clusterChannelProvisioner", ccp), zap.Any("service", svc))
+ }
+
+ ccp.Status.MarkReady()
+ return nil
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/main.go b/vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/main.go
new file mode 100644
index 0000000000..012beb3081
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/natss/controller/main.go
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2018 The Knative Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package main
+
+import (
+ "flag"
+
+ eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ "github.com/knative/eventing/pkg/provisioners"
+ "github.com/knative/eventing/pkg/provisioners/natss/controller/channel"
+ "github.com/knative/eventing/pkg/provisioners/natss/controller/clusterchannelprovisioner"
+ istiov1alpha3 "github.com/knative/pkg/apis/istio/v1alpha3"
+ "github.com/knative/pkg/signals"
+ "go.uber.org/zap"
+ "sigs.k8s.io/controller-runtime/pkg/client/config"
+ "sigs.k8s.io/controller-runtime/pkg/manager"
+)
+
+func main() {
+ logConfig := provisioners.NewLoggingConfig()
+ logger := provisioners.NewProvisionerLoggerFromConfig(logConfig)
+ defer logger.Sync()
+ logger = logger.With(
+ zap.String("eventing.knative.dev/clusterChannelProvisioner", clusterchannelprovisioner.Name),
+ zap.String("eventing.knative.dev/clusterChannelProvisionerComponent", "Controller"),
+ )
+ flag.Parse()
+
+ mgr, err := manager.New(config.GetConfigOrDie(), manager.Options{})
+ if err != nil {
+ logger.Fatal("Error starting up.", zap.Error(err))
+ }
+
+ // Add custom types to this array to get them into the manager's scheme.
+ eventingv1alpha1.AddToScheme(mgr.GetScheme())
+ istiov1alpha3.AddToScheme(mgr.GetScheme())
+
+ _, err = clusterchannelprovisioner.ProvideController(mgr, logger.Desugar())
+ if err != nil {
+ logger.Fatal("Unable to create Provisioner controller", zap.Error(err))
+ }
+ _, err = channel.ProvideController(mgr, logger.Desugar())
+ if err != nil {
+ logger.Fatal("Unable to create Channel controller", zap.Error(err))
+ }
+
+ stopCh := signals.SetupSignalHandler()
+
+ err = mgr.Start(stopCh)
+ if err != nil {
+ logger.Fatal("Manager.Start() returned an error", zap.Error(err))
+ }
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/channel/controller.go b/vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/channel/controller.go
new file mode 100644
index 0000000000..5046af5648
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/channel/controller.go
@@ -0,0 +1,60 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package channel
+
+import (
+ "go.uber.org/zap"
+ "sigs.k8s.io/controller-runtime/pkg/controller"
+ "sigs.k8s.io/controller-runtime/pkg/handler"
+ "sigs.k8s.io/controller-runtime/pkg/manager"
+ "sigs.k8s.io/controller-runtime/pkg/source"
+
+ eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ "github.com/knative/eventing/pkg/provisioners/natss/dispatcher/dispatcher"
+)
+
+const (
+ // controllerAgentName is the string used by this controller to identify itself when creating events.
+ controllerAgentName = "natss-dispatcher"
+)
+
+// ProvideController returns a Controller that represents the NATSS Provisioner.
+func ProvideController(ss *dispatcher.SubscriptionsSupervisor, mgr manager.Manager, logger *zap.Logger) (controller.Controller, error) {
+ r := &reconciler{
+ recorder: mgr.GetRecorder(controllerAgentName),
+ logger: logger,
+ subscriptionsSupervisor: ss,
+ }
+ c, err := controller.New(controllerAgentName, mgr, controller.Options{
+ Reconciler: r,
+ })
+ if err != nil {
+ logger.Error("Unable to create controller.", zap.Error(err))
+ return nil, err
+ }
+
+ // Watch Channels.
+ err = c.Watch(&source.Kind{
+ Type: &eventingv1alpha1.Channel{},
+ }, &handler.EnqueueRequestForObject{})
+ if err != nil {
+ logger.Error("Unable to watch Channels.", zap.Error(err), zap.Any("type", &eventingv1alpha1.Channel{}))
+ return nil, err
+ }
+
+ return c, nil
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/channel/reconcile.go b/vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/channel/reconcile.go
new file mode 100644
index 0000000000..7c65a4eba8
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/channel/reconcile.go
@@ -0,0 +1,126 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package channel
+
+import (
+ "context"
+
+ "github.com/knative/eventing/pkg/provisioners"
+ "github.com/knative/eventing/pkg/provisioners/natss/dispatcher/dispatcher"
+ "go.uber.org/zap"
+ "k8s.io/apimachinery/pkg/api/errors"
+ "k8s.io/client-go/tools/record"
+ "sigs.k8s.io/controller-runtime/pkg/client"
+ "sigs.k8s.io/controller-runtime/pkg/reconcile"
+
+ eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ ccpcontroller "github.com/knative/eventing/pkg/provisioners/natss/controller/clusterchannelprovisioner"
+)
+
+type reconciler struct {
+ client client.Client
+ recorder record.EventRecorder
+ logger *zap.Logger
+
+ subscriptionsSupervisor *dispatcher.SubscriptionsSupervisor
+}
+
+const (
+ finalizerName = controllerAgentName
+)
+
+// Verify the struct implements reconcile.Reconciler
+var _ reconcile.Reconciler = &reconciler{}
+
+func (r *reconciler) InjectClient(c client.Client) error {
+ r.client = c
+ return nil
+}
+
+func (r *reconciler) Reconcile(request reconcile.Request) (reconcile.Result, error) {
+ r.logger.Info("Reconcile: ", zap.Any("request", request))
+
+ ctx := context.TODO()
+ c := &eventingv1alpha1.Channel{}
+ err := r.client.Get(ctx, request.NamespacedName, c)
+
+ // The Channel may have been deleted since it was added to the workqueue.
+ if errors.IsNotFound(err) {
+ r.logger.Info("Could not find Channel", zap.Error(err))
+ return reconcile.Result{}, nil
+ }
+
+ // Any other error should be retried in another reconciliation.
+ if err != nil {
+ r.logger.Error("Unable to Get Channel", zap.Error(err))
+ return reconcile.Result{}, err
+ }
+
+ // Does this Controller control this Channel?
+ if !r.shouldReconcile(c) {
+ r.logger.Info("Not reconciling Channel, it is not controlled by this Controller", zap.Any("ref", c.Spec))
+ return reconcile.Result{}, nil
+ }
+
+ // Modify a copy, not the original.
+ c = c.DeepCopy()
+
+ requeue, reconcileErr := r.reconcile(ctx, c)
+ if reconcileErr != nil {
+ r.logger.Error("Error reconciling Channel", zap.Error(reconcileErr))
+ // Note that we do not return the error here, because we want to update the Status regardless of the error.
+ }
+
+ if updateStatusErr := provisioners.UpdateChannel(ctx, r.client, c); updateStatusErr != nil {
+ r.logger.Error("Error updating Channel Status", zap.Error(updateStatusErr))
+ return reconcile.Result{}, updateStatusErr
+ }
+
+ return reconcile.Result{
+ Requeue: requeue,
+ }, reconcileErr
+}
+
+func (r *reconciler) shouldReconcile(c *eventingv1alpha1.Channel) bool {
+ if c.Spec.Provisioner != nil {
+ return ccpcontroller.IsControlled(c.Spec.Provisioner)
+ }
+ return false
+}
+
+func (r *reconciler) reconcile(ctx context.Context, c *eventingv1alpha1.Channel) (bool, error) {
+ if !c.DeletionTimestamp.IsZero() {
+ if err := r.subscriptionsSupervisor.UpdateSubscriptions(c, true); err != nil {
+ r.logger.Error("UpdateSubscriptions() failed: ", zap.Error(err))
+ return false, err
+ }
+ provisioners.RemoveFinalizer(c, finalizerName)
+ return false, nil
+ }
+
+ // If we are adding the finalizer for the first time, then ensure that finalizer is persisted
+ if addFinalizerResult := provisioners.AddFinalizer(c, finalizerName); addFinalizerResult == provisioners.FinalizerAdded {
+ return true, nil
+ }
+
+ // try to subscribe
+ if err := r.subscriptionsSupervisor.UpdateSubscriptions(c, false); err != nil {
+ r.logger.Error("UpdateSubscriptions() failed: ", zap.Error(err))
+ return false, err
+ }
+ return false, nil
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/dispatcher/dispatcher.go b/vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/dispatcher/dispatcher.go
new file mode 100644
index 0000000000..0e0b336865
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/dispatcher/dispatcher.go
@@ -0,0 +1,189 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package dispatcher
+
+import (
+ "sync"
+ "time"
+
+ "github.com/knative/eventing/pkg/provisioners"
+ "github.com/knative/eventing/pkg/provisioners/natss/controller/clusterchannelprovisioner"
+ "github.com/knative/eventing/pkg/provisioners/natss/stanutil"
+ stan "github.com/nats-io/go-nats-streaming"
+ "go.uber.org/zap"
+
+ eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+)
+
+const (
+ clientId = "knative-natss-dispatcher"
+)
+
+// SubscriptionsSupervisor manages the state of NATS Streaming subscriptions
+type SubscriptionsSupervisor struct {
+ logger *zap.Logger
+
+ receiver *provisioners.MessageReceiver
+ dispatcher *provisioners.MessageDispatcher
+
+ natssConn *stan.Conn
+
+ subscriptionsMux sync.Mutex
+ subscriptions map[provisioners.ChannelReference]map[subscriptionReference]*stan.Subscription
+}
+
+func NewDispatcher(natssUrl string, logger *zap.Logger) (*SubscriptionsSupervisor, error) {
+ d := &SubscriptionsSupervisor{
+ logger: logger,
+ dispatcher: provisioners.NewMessageDispatcher(logger.Sugar()),
+ subscriptions: make(map[provisioners.ChannelReference]map[subscriptionReference]*stan.Subscription),
+ }
+ nConn, err := stanutil.Connect(clusterchannelprovisioner.ClusterId, clientId, natssUrl, d.logger.Sugar())
+ if err != nil {
+ logger.Error("Connect() failed: ", zap.Error(err))
+ return nil, err
+ }
+ d.natssConn = nConn
+ d.receiver = provisioners.NewMessageReceiver(createReceiverFunction(d, logger.Sugar()), logger.Sugar())
+
+ return d, nil
+}
+
+func createReceiverFunction(s *SubscriptionsSupervisor, logger *zap.SugaredLogger) func(provisioners.ChannelReference, *provisioners.Message) error {
+ return func(channel provisioners.ChannelReference, m *provisioners.Message) error {
+ logger.Infof("Received message from %q channel", channel.String())
+ // publish to Natss
+ ch := getSubject(channel)
+ if err := stanutil.Publish(s.natssConn, ch, &m.Payload, logger); err != nil {
+ logger.Errorf("Error during publish: %v", err)
+ return err
+ }
+ logger.Infof("Published [%s] : '%s'", channel.String(), m.Headers)
+ return nil
+ }
+}
+
+func (s *SubscriptionsSupervisor) Start(stopCh <-chan struct{}) error {
+ s.receiver.Start(stopCh)
+ return nil
+}
+
+func (s *SubscriptionsSupervisor) UpdateSubscriptions(channel *eventingv1alpha1.Channel, isFinalizer bool) error {
+ s.subscriptionsMux.Lock()
+ defer s.subscriptionsMux.Unlock()
+
+ cRef := provisioners.ChannelReference{Namespace: channel.Namespace, Name: channel.Name}
+
+ if channel.Spec.Subscribable == nil || isFinalizer {
+ s.logger.Sugar().Infof("Empty subscriptions for channel Ref: %v; unsubscribe all active subscriptions, if any", cRef)
+ chMap, ok := s.subscriptions[cRef]
+ if !ok {
+ // nothing to do
+ s.logger.Sugar().Infof("No channel Ref %v found in subscriptions map", cRef)
+ return nil
+ }
+ for sub := range chMap {
+ s.unsubscribe(cRef, sub)
+ }
+ delete(s.subscriptions, cRef)
+ return nil
+ }
+
+ subscriptions := channel.Spec.Subscribable.Subscribers
+ activeSubs := make(map[subscriptionReference]bool) // it's logically a set
+
+ chMap, ok := s.subscriptions[cRef]
+ if !ok {
+ chMap = make(map[subscriptionReference]*stan.Subscription)
+ s.subscriptions[cRef] = chMap
+ }
+ for _, sub := range subscriptions {
+ // check if the subscription already exist and do nothing in this case
+ subRef := newSubscriptionReference(sub)
+ if _, ok := chMap[subRef]; ok {
+ activeSubs[subRef] = true
+ s.logger.Sugar().Infof("Subscription: %v already active for channel: %v", sub, cRef)
+ continue
+ }
+ // subscribe
+ if natssSub, err := s.subscribe(cRef, subRef); err != nil {
+ return err
+ } else {
+ chMap[subRef] = natssSub
+ activeSubs[subRef] = true
+ }
+ }
+ // Unsubscribe for deleted subscriptions
+ for sub := range chMap {
+ if ok := activeSubs[sub]; !ok {
+ s.unsubscribe(cRef, sub)
+ }
+ }
+ // delete the channel from s.subscriptions if chMap is empty
+ if len(s.subscriptions[cRef]) == 0 {
+ delete(s.subscriptions, cRef)
+ }
+ return nil
+}
+
+func (s *SubscriptionsSupervisor) subscribe(channel provisioners.ChannelReference, subscription subscriptionReference) (*stan.Subscription, error) {
+ s.logger.Info("Subscribe to channel:", zap.Any("channel", channel), zap.Any("subscription", subscription))
+
+ mcb := func(msg *stan.Msg) {
+ s.logger.Sugar().Infof("NATSS message received from subject: %v; sequence: %v; timestamp: %v", msg.Subject, msg.Sequence, msg.Timestamp)
+ message := provisioners.Message{
+ Headers: map[string]string{},
+ Payload: []byte(msg.Data),
+ }
+ if err := s.dispatcher.DispatchMessage(&message, subscription.SubscriberURI, subscription.ReplyURI, provisioners.DispatchDefaults{Namespace: subscription.Namespace}); err != nil {
+ s.logger.Error("Failed to dispatch message: ", zap.Error(err))
+ return
+ }
+ if err := msg.Ack(); err != nil {
+ s.logger.Error("Failed to acknowledge message: ", zap.Error(err))
+ }
+ }
+ // subscribe to a NATSS subject
+ ch := getSubject(channel)
+ sub := subscription.String()
+ if natssSub, err := (*s.natssConn).Subscribe(ch, mcb, stan.DurableName(sub), stan.SetManualAckMode(), stan.AckWait(1*time.Minute)); err != nil {
+ s.logger.Error(" Create new NATSS Subscription failed: ", zap.Error(err))
+ return nil, err
+ } else {
+ s.logger.Sugar().Infof("NATSS Subscription created: %+v", natssSub)
+ return &natssSub, nil
+ }
+}
+
+// should be called only while holding subscriptionsMux
+func (s *SubscriptionsSupervisor) unsubscribe(channel provisioners.ChannelReference, subscription subscriptionReference) error {
+ s.logger.Info("Unsubscribe from channel:", zap.Any("channel", channel), zap.Any("subscription", subscription))
+
+ if stanSub, ok := s.subscriptions[channel][subscription]; ok {
+ // delete from NATSS
+ if err := (*stanSub).Unsubscribe(); err != nil {
+ s.logger.Error("Unsubscribing NATS Streaming subscription failed: ", zap.Error(err))
+ return err
+ }
+ delete(s.subscriptions[channel], subscription)
+ }
+ return nil
+}
+
+func getSubject(channel provisioners.ChannelReference) string {
+ return channel.Name + "." + channel.Namespace
+}
diff --git a/vendor/github.com/knative/build/pkg/buildtest/data.go b/vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/dispatcher/types.go
similarity index 50%
rename from vendor/github.com/knative/build/pkg/buildtest/data.go
rename to vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/dispatcher/types.go
index 8804da07db..69e5ae6dd1 100644
--- a/vendor/github.com/knative/build/pkg/buildtest/data.go
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/dispatcher/types.go
@@ -14,32 +14,30 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-package buildtest
+package dispatcher
import (
- "encoding/json"
- "io/ioutil"
+ "fmt"
+
+ eventingduck "github.com/knative/eventing/pkg/apis/duck/v1alpha1"
)
-// Data returns the contents of a file at the given path.
-func Data(relpath string) ([]byte, error) {
- b, err := ioutil.ReadFile(relpath)
- if err != nil {
- return nil, err
- }
- return b, nil
+type subscriptionReference struct {
+ Name string
+ Namespace string
+ SubscriberURI string
+ ReplyURI string
}
-// DataAs interprets the YAML contents of the file at the given path as the
-// given type.
-func DataAs(relpath string, obj interface{}) error {
- b, err := Data(relpath)
- if err != nil {
- return err
- }
- jb, err := YAMLToJSON(b)
- if err != nil {
- return err
+func newSubscriptionReference(spec eventingduck.ChannelSubscriberSpec) subscriptionReference {
+ return subscriptionReference{
+ Name: spec.Ref.Name,
+ Namespace: spec.Ref.Namespace,
+ SubscriberURI: spec.SubscriberURI,
+ ReplyURI: spec.ReplyURI,
}
- return json.Unmarshal(jb, &obj)
+}
+
+func (r *subscriptionReference) String() string {
+ return fmt.Sprintf("%s.%s", r.Name, r.Namespace)
}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/main.go b/vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/main.go
new file mode 100644
index 0000000000..c1b25e7197
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/natss/dispatcher/main.go
@@ -0,0 +1,84 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package main
+
+import (
+ "log"
+ "time"
+
+ "github.com/knative/eventing/pkg/provisioners/natss/dispatcher/channel"
+ "github.com/knative/eventing/pkg/provisioners/natss/dispatcher/dispatcher"
+ "github.com/knative/pkg/signals"
+ "go.uber.org/zap"
+ "golang.org/x/sync/errgroup"
+ "sigs.k8s.io/controller-runtime/pkg/client/config"
+ "sigs.k8s.io/controller-runtime/pkg/manager"
+
+ eventingv1alpha1 "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ "github.com/knative/eventing/pkg/provisioners/natss/controller/clusterchannelprovisioner"
+)
+
+var (
+ readTimeout = 1 * time.Minute
+ writeTimeout = 1 * time.Minute
+
+ port int
+ configMapNoticer string
+ configMapNamespace string
+ configMapName string
+)
+
+func main() {
+
+ logger, err := zap.NewProduction()
+ if err != nil {
+ log.Fatalf("Unable to create logger: %v", err)
+ }
+
+ mgr, err := manager.New(config.GetConfigOrDie(), manager.Options{})
+ if err != nil {
+ logger.Fatal("Error starting up.", zap.Error(err))
+ }
+
+ // Add custom types to this array to get them into the manager's scheme.
+ eventingv1alpha1.AddToScheme(mgr.GetScheme())
+
+ stopCh := signals.SetupSignalHandler()
+ var g errgroup.Group
+
+ logger.Info("Dispatcher starting...")
+ dispatcher, err := dispatcher.NewDispatcher(clusterchannelprovisioner.NatssUrl, logger)
+ if err != nil {
+ logger.Fatal("Unable to create NATSS dispatcher.", zap.Error(err))
+ }
+
+ g.Go(func() error {
+ return dispatcher.Start(stopCh)
+ })
+
+ _, err = channel.ProvideController(dispatcher, mgr, logger)
+ if err != nil {
+ logger.Fatal("Unable to create Channel controller", zap.Error(err))
+ }
+
+ logger.Info("Dispatcher controller starting...")
+
+ err = mgr.Start(stopCh)
+ if err != nil {
+ logger.Fatal("Manager.Start() returned an error", zap.Error(err))
+ }
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/natss/stanutil/stanutil.go b/vendor/github.com/knative/eventing/pkg/provisioners/natss/stanutil/stanutil.go
new file mode 100644
index 0000000000..f359c4925c
--- /dev/null
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/natss/stanutil/stanutil.go
@@ -0,0 +1,87 @@
+/*
+ * Copyright 2018 The Knative Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package stanutil
+
+import (
+ "errors"
+ "fmt"
+ "time"
+
+ stan "github.com/nats-io/go-nats-streaming"
+ "go.uber.org/zap"
+)
+
+// Connect creates a new NATS-Streaming connection
+func Connect(clusterId string, clientId string, natsUrl string, logger *zap.SugaredLogger) (*stan.Conn, error) {
+ logger.Infof("Connect(): clusterId: %v; clientId: %v; natssUrl: %v", clusterId, clientId, natsUrl)
+ var sc stan.Conn
+ var err error
+ for i := 0; i < 60; i++ {
+ if sc, err = stan.Connect(clusterId, clientId, stan.NatsURL(natsUrl)); err != nil {
+ logger.Warnf("Connect(): create new connection failed: %v", err)
+ time.Sleep(1 * time.Second)
+ } else {
+ break
+ }
+ }
+ if err != nil {
+ logger.Errorf("Connect(): create new connection failed: %v", err)
+ return nil, err
+ }
+ logger.Infof("Connect(): connection to NATSS established, natsConn=%+v", &sc)
+ return &sc, nil
+}
+
+// Close must be the last call to close the connection
+func Close(sc *stan.Conn, logger *zap.SugaredLogger) (err error) {
+ defer func() { // the NATSS client could panic if the underlying connectivity is damaged
+ if r := recover(); r != nil {
+ err = fmt.Errorf("recovered from: %v", r)
+ logger.Errorf("Close(): %v", err.Error())
+ }
+ }()
+
+ if sc == nil {
+ err = errors.New("can't close empty stan connection")
+ return
+ }
+ err = (*sc).Close()
+ if err != nil {
+ logger.Errorf("Can't close connection: %+v", err)
+ }
+ return
+}
+
+// Publish a message to a subject
+func Publish(sc *stan.Conn, subj string, msg *[]byte, logger *zap.SugaredLogger) (err error) {
+ defer func() { // the NATSS client could panic if the underlying connectivity is damaged
+ if r := recover(); r != nil {
+ err = fmt.Errorf("recovered from: %v", r)
+ logger.Errorf("Publish(): %v", err.Error())
+ }
+ }()
+
+ if sc == nil {
+ err = errors.New("cant'publish on empty stan connection")
+ return
+ }
+ err = (*sc).Publish(subj, *msg)
+ if err != nil {
+ logger.Errorf("Error during publish: %v\n", err)
+ }
+ return
+}
diff --git a/vendor/github.com/knative/eventing/pkg/provisioners/provisioner_util.go b/vendor/github.com/knative/eventing/pkg/provisioners/provisioner_util.go
index 461fef3dfd..1b873494ff 100644
--- a/vendor/github.com/knative/eventing/pkg/provisioners/provisioner_util.go
+++ b/vendor/github.com/knative/eventing/pkg/provisioners/provisioner_util.go
@@ -6,7 +6,6 @@ import (
"go.uber.org/zap"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/equality"
- "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
@@ -21,38 +20,16 @@ import (
)
func CreateDispatcherService(ctx context.Context, client runtimeClient.Client, ccp *eventingv1alpha1.ClusterChannelProvisioner) (*corev1.Service, error) {
- svcName := ChannelDispatcherServiceName(ccp.Name)
svcKey := types.NamespacedName{
Namespace: system.Namespace,
- Name: svcName,
+ Name: channelDispatcherServiceName(ccp.Name),
}
- svc := &corev1.Service{}
- err := client.Get(ctx, svcKey, svc)
-
- if errors.IsNotFound(err) {
- svc = newDispatcherService(ccp)
- err = client.Create(ctx, svc)
- if err != nil {
- return nil, err
- }
- return svc, nil
- }
- if err != nil {
- return nil, err
- }
-
- expected := newDispatcherService(ccp)
- // spec.clusterIP is immutable and is set on existing services. If we don't set this
- // to the same value, we will encounter an error while updating.
- expected.Spec.ClusterIP = svc.Spec.ClusterIP
- if !equality.Semantic.DeepDerivative(expected.Spec, svc.Spec) {
- svc.Spec = expected.Spec
- err := client.Update(ctx, svc)
- if err != nil {
- return nil, err
- }
+ getSvc := func() (*corev1.Service, error) {
+ svc := &corev1.Service{}
+ err := client.Get(ctx, svcKey, svc)
+ return svc, err
}
- return svc, nil
+ return createK8sService(ctx, client, getSvc, newDispatcherService(ccp))
}
func UpdateClusterChannelProvisionerStatus(ctx context.Context, client runtimeClient.Client, u *eventingv1alpha1.ClusterChannelProvisioner) error {
@@ -77,7 +54,7 @@ func newDispatcherService(ccp *eventingv1alpha1.ClusterChannelProvisioner) *core
labels := DispatcherLabels(ccp.Name)
return &corev1.Service{
ObjectMeta: metav1.ObjectMeta{
- Name: ChannelDispatcherServiceName(ccp.Name),
+ Name: channelDispatcherServiceName(ccp.Name),
Namespace: system.Namespace,
Labels: labels,
OwnerReferences: []metav1.OwnerReference{
@@ -108,6 +85,6 @@ func DispatcherLabels(ccpName string) map[string]string {
}
}
-func ChannelDispatcherServiceName(ccpName string) string {
+func channelDispatcherServiceName(ccpName string) string {
return fmt.Sprintf("%s-dispatcher", ccpName)
}
diff --git a/vendor/github.com/knative/eventing/pkg/sidecar/configmap/filesystem/filesystem_watcher.go b/vendor/github.com/knative/eventing/pkg/sidecar/configmap/filesystem/filesystem_watcher.go
index 228cbd691b..bbcf62cd0b 100644
--- a/vendor/github.com/knative/eventing/pkg/sidecar/configmap/filesystem/filesystem_watcher.go
+++ b/vendor/github.com/knative/eventing/pkg/sidecar/configmap/filesystem/filesystem_watcher.go
@@ -18,6 +18,7 @@ package filesystem
import (
"errors"
+
"github.com/fsnotify/fsnotify"
sidecarconfigmap "github.com/knative/eventing/pkg/sidecar/configmap"
"github.com/knative/eventing/pkg/sidecar/multichannelfanout"
diff --git a/vendor/github.com/knative/eventing/pkg/sidecar/configmap/parse.go b/vendor/github.com/knative/eventing/pkg/sidecar/configmap/parse.go
index a6f479fe6a..db09a9dd61 100644
--- a/vendor/github.com/knative/eventing/pkg/sidecar/configmap/parse.go
+++ b/vendor/github.com/knative/eventing/pkg/sidecar/configmap/parse.go
@@ -19,6 +19,7 @@ package configmap
import (
"encoding/json"
"fmt"
+
"github.com/knative/eventing/pkg/sidecar/multichannelfanout"
"go.uber.org/zap"
)
diff --git a/vendor/github.com/knative/eventing/pkg/sidecar/multichannelfanout/multi_channel_fanout_handler.go b/vendor/github.com/knative/eventing/pkg/sidecar/multichannelfanout/multi_channel_fanout_handler.go
index d74a5c902a..6169e8028d 100644
--- a/vendor/github.com/knative/eventing/pkg/sidecar/multichannelfanout/multi_channel_fanout_handler.go
+++ b/vendor/github.com/knative/eventing/pkg/sidecar/multichannelfanout/multi_channel_fanout_handler.go
@@ -59,9 +59,12 @@ func makeChannelKeyFromConfig(config ChannelConfig) string {
}
// getChannelKey extracts the channel key from the given HTTP request.
-func getChannelKey(r *http.Request) string {
- cr := provisioners.ParseChannel(r.Host)
- return makeChannelKey(cr.Namespace, cr.Name)
+func getChannelKey(r *http.Request) (string, error) {
+ cr, err := provisioners.ParseChannel(r.Host)
+ if err != nil {
+ return "", err
+ }
+ return makeChannelKey(cr.Namespace, cr.Name), nil
}
// Handler is an http.Handler that introspects the incoming request to determine what Channel it is
@@ -110,7 +113,12 @@ func (h *Handler) CopyWithNewConfig(conf Config) (*Handler, error) {
// ServeHTTP delegates the actual handling of the request to a fanout.Handler, based on the
// request's channel key.
func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
- channelKey := getChannelKey(r)
+ channelKey, err := getChannelKey(r)
+ if err != nil {
+ h.logger.Error("Unable to extract channelKey", zap.Error(err))
+ w.WriteHeader(http.StatusInternalServerError)
+ return
+ }
fh, ok := h.handlers[channelKey]
if !ok {
h.logger.Error("Unable to find a handler for request", zap.String("channelKey", channelKey))
diff --git a/vendor/github.com/knative/eventing/pkg/sidecar/multichannelfanout/parse.go b/vendor/github.com/knative/eventing/pkg/sidecar/multichannelfanout/parse.go
index 35687b442d..cef6c4a92e 100644
--- a/vendor/github.com/knative/eventing/pkg/sidecar/multichannelfanout/parse.go
+++ b/vendor/github.com/knative/eventing/pkg/sidecar/multichannelfanout/parse.go
@@ -19,6 +19,7 @@ package multichannelfanout
import (
"bytes"
"encoding/json"
+
"go.uber.org/zap"
"k8s.io/apimachinery/pkg/util/yaml"
)
diff --git a/vendor/github.com/knative/eventing/pkg/sidecar/swappable/swappable.go b/vendor/github.com/knative/eventing/pkg/sidecar/swappable/swappable.go
index 97ba588680..ec591092d9 100644
--- a/vendor/github.com/knative/eventing/pkg/sidecar/swappable/swappable.go
+++ b/vendor/github.com/knative/eventing/pkg/sidecar/swappable/swappable.go
@@ -24,11 +24,12 @@ package swappable
import (
"errors"
- "github.com/knative/eventing/pkg/sidecar/multichannelfanout"
- "go.uber.org/zap"
"net/http"
"sync"
"sync/atomic"
+
+ "github.com/knative/eventing/pkg/sidecar/multichannelfanout"
+ "go.uber.org/zap"
)
// http.Handler that atomically swaps between underlying handlers.
diff --git a/vendor/github.com/knative/eventing/test/crd.go b/vendor/github.com/knative/eventing/test/crd.go
index a46ca960fc..af9cd1950b 100644
--- a/vendor/github.com/knative/eventing/test/crd.go
+++ b/vendor/github.com/knative/eventing/test/crd.go
@@ -22,7 +22,7 @@ import (
"github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
servingv1alpha1 "github.com/knative/serving/pkg/apis/serving/v1alpha1"
corev1 "k8s.io/api/core/v1"
- rbacv1beta1 "k8s.io/api/rbac/v1beta1"
+ rbacv1 "k8s.io/api/rbac/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
@@ -78,19 +78,19 @@ func ServiceAccount(name string, namespace string) *corev1.ServiceAccount {
}
// ClusterRoleBinding returns ClusterRoleBinding for given subject and role
-func ClusterRoleBinding(name string, namespace string, serviceAccount string, role string) *rbacv1beta1.ClusterRoleBinding {
- return &rbacv1beta1.ClusterRoleBinding{
+func ClusterRoleBinding(name string, namespace string, serviceAccount string, role string) *rbacv1.ClusterRoleBinding {
+ return &rbacv1.ClusterRoleBinding{
ObjectMeta: metav1.ObjectMeta{
Name: name,
},
- Subjects: []rbacv1beta1.Subject{
+ Subjects: []rbacv1.Subject{
{
Kind: "ServiceAccount",
Name: serviceAccount,
Namespace: namespace,
},
},
- RoleRef: rbacv1beta1.RoleRef{
+ RoleRef: rbacv1.RoleRef{
Kind: "ClusterRole",
Name: role,
APIGroup: "rbac.authorization.k8s.io",
@@ -174,8 +174,9 @@ func Subscription(name string, namespace string, channel *corev1.ObjectReference
func NGinxPod(namespace string) *corev1.Pod {
return &corev1.Pod{
ObjectMeta: metav1.ObjectMeta{
- Name: "nginx",
- Namespace: namespace,
+ Name: "nginx",
+ Namespace: namespace,
+ Annotations: map[string]string{"sidecar.istio.io/inject": "true"},
},
Spec: corev1.PodSpec{
Containers: []corev1.Container{
diff --git a/vendor/github.com/knative/eventing/test/e2e/e2e.go b/vendor/github.com/knative/eventing/test/e2e/e2e.go
index dc14139e4c..62ba6f81ef 100644
--- a/vendor/github.com/knative/eventing/test/e2e/e2e.go
+++ b/vendor/github.com/knative/eventing/test/e2e/e2e.go
@@ -13,7 +13,7 @@ import (
"github.com/knative/pkg/test/logging"
servingV1alpha1 "github.com/knative/serving/pkg/apis/serving/v1alpha1"
corev1 "k8s.io/api/core/v1"
- rbacV1beta1 "k8s.io/api/rbac/v1beta1"
+ rbacv1 "k8s.io/api/rbac/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/wait"
@@ -141,13 +141,13 @@ func CreateServiceAccount(clients *test.Clients, sa *corev1.ServiceAccount, logg
}
// CreateClusterRoleBinding will create a service account binding
-func CreateClusterRoleBinding(clients *test.Clients, crb *rbacV1beta1.ClusterRoleBinding, logger *logging.BaseLogger, cleaner *test.Cleaner) error {
- clusterRoleBindings := clients.Kube.Kube.RbacV1beta1().ClusterRoleBindings()
+func CreateClusterRoleBinding(clients *test.Clients, crb *rbacv1.ClusterRoleBinding, logger *logging.BaseLogger, cleaner *test.Cleaner) error {
+ clusterRoleBindings := clients.Kube.Kube.RbacV1().ClusterRoleBindings()
res, err := clusterRoleBindings.Create(crb)
if err != nil {
return err
}
- cleaner.Add(rbacV1beta1.SchemeGroupVersion.Group, rbacV1beta1.SchemeGroupVersion.Version, "clusterrolebindings", "", res.ObjectMeta.Name)
+ cleaner.Add(rbacv1.SchemeGroupVersion.Group, rbacv1.SchemeGroupVersion.Version, "clusterrolebindings", "", res.ObjectMeta.Name)
return nil
}
@@ -164,18 +164,18 @@ func CreateServiceAccountAndBinding(clients *test.Clients, name string, logger *
if err != nil {
return err
}
- crb := &rbacV1beta1.ClusterRoleBinding{
+ crb := &rbacv1.ClusterRoleBinding{
ObjectMeta: metav1.ObjectMeta{
Name: "e2e-tests-admin",
},
- Subjects: []rbacV1beta1.Subject{
+ Subjects: []rbacv1.Subject{
{
Kind: "ServiceAccount",
Name: name,
Namespace: defaultNamespaceName,
},
},
- RoleRef: rbacV1beta1.RoleRef{
+ RoleRef: rbacv1.RoleRef{
Kind: "ClusterRole",
Name: "cluster-admin",
APIGroup: "rbac.authorization.k8s.io",
diff --git a/vendor/github.com/knative/eventing/test/test_images/k8sevents/function.go b/vendor/github.com/knative/eventing/test/test_images/k8sevents/function.go
index 108d9320cc..4c1d7779b2 100644
--- a/vendor/github.com/knative/eventing/test/test_images/k8sevents/function.go
+++ b/vendor/github.com/knative/eventing/test/test_images/k8sevents/function.go
@@ -15,11 +15,12 @@ package main
import (
"context"
- "github.com/knative/pkg/cloudevents"
"log"
"net/http"
"time"
+ "github.com/knative/pkg/cloudevents"
+
corev1 "k8s.io/api/core/v1"
)
diff --git a/vendor/github.com/knative/pkg/apis/duck/v1alpha1/condition_set.go b/vendor/github.com/knative/pkg/apis/duck/v1alpha1/condition_set.go
index e330970bd0..1c550ed19f 100644
--- a/vendor/github.com/knative/pkg/apis/duck/v1alpha1/condition_set.go
+++ b/vendor/github.com/knative/pkg/apis/duck/v1alpha1/condition_set.go
@@ -212,11 +212,16 @@ func (r conditionsImpl) SetCondition(new Condition) {
}
func (r conditionsImpl) isTerminal(t ConditionType) bool {
- for _, cond := range append(r.dependents, r.happy) {
+ for _, cond := range r.dependents {
if cond == t {
return true
}
}
+
+ if t == r.happy {
+ return true
+ }
+
return false
}
@@ -275,7 +280,7 @@ func (r conditionsImpl) MarkUnknown(t ConditionType, reason, messageFormat strin
// Double check that the happy condition is also false.
happy := r.GetCondition(r.happy)
if !happy.IsFalse() {
- r.MarkFalse(r.happy, reason, messageFormat, messageA)
+ r.MarkFalse(r.happy, reason, messageFormat, messageA...)
}
return
}
@@ -319,9 +324,10 @@ func (r conditionsImpl) MarkFalse(t ConditionType, reason, messageFormat string,
// InitializeConditions updates all Conditions in the ConditionSet to Unknown
// if not set.
func (r conditionsImpl) InitializeConditions() {
- for _, t := range append(r.dependents, r.happy) {
+ for _, t := range r.dependents {
r.InitializeCondition(t)
}
+ r.InitializeCondition(r.happy)
}
// InitializeCondition updates a Condition to Unknown if not set.
diff --git a/vendor/github.com/knative/pkg/apis/duck/v1alpha1/conditions_types.go b/vendor/github.com/knative/pkg/apis/duck/v1alpha1/conditions_types.go
index 0dbad3397e..b2fac23d6f 100644
--- a/vendor/github.com/knative/pkg/apis/duck/v1alpha1/conditions_types.go
+++ b/vendor/github.com/knative/pkg/apis/duck/v1alpha1/conditions_types.go
@@ -47,8 +47,10 @@ type ConditionSeverity string
const (
// ConditionSeverityError specifies that a failure of a condition type
- // should be viewed as an error.
- ConditionSeverityError ConditionSeverity = "Error"
+ // should be viewed as an error. As "Error" is the default for conditions
+ // we use the empty string (coupled with omitempty) to avoid confusion in
+ // the case where the condition is in state "True" (aka nothing is wrong).
+ ConditionSeverityError ConditionSeverity = ""
// ConditionSeverityWarning specifies that a failure of a condition type
// should be viewed as a warning, but that things could still work.
ConditionSeverityWarning ConditionSeverity = "Warning"
diff --git a/vendor/github.com/knative/pkg/apis/duck/v1alpha1/generational_types.go b/vendor/github.com/knative/pkg/apis/duck/v1alpha1/generational_types.go
deleted file mode 100644
index 13ef018038..0000000000
--- a/vendor/github.com/knative/pkg/apis/duck/v1alpha1/generational_types.go
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
-Copyright 2018 The Knative Authors
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package v1alpha1
-
-import (
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/runtime"
-
- "github.com/knative/pkg/apis"
- "github.com/knative/pkg/apis/duck"
-)
-
-// Generation is the schema for the generational portion of the payload
-type Generation int64
-
-// Generation is an Implementable "duck type".
-var _ duck.Implementable = (*Generation)(nil)
-
-// +genclient
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// Generational is a skeleton type wrapping Generation in the manner we expect
-// resource writers defining compatible resources to embed it. We will
-// typically use this type to deserialize Generation ObjectReferences and
-// access the Generation data. This is not a real resource.
-type Generational struct {
- metav1.TypeMeta `json:",inline"`
- metav1.ObjectMeta `json:"metadata,omitempty"`
-
- Spec GenerationalSpec `json:"spec"`
-}
-
-// GenerationalSpec shows how we expect folks to embed Generation in
-// their Spec field.
-type GenerationalSpec struct {
- Generation Generation `json:"generation,omitempty"`
-}
-
-// In order for Generation to be Implementable, Generational must be Populatable.
-var _ duck.Populatable = (*Generational)(nil)
-
-// Ensure Generational satisfies apis.Listable
-var _ apis.Listable = (*Generational)(nil)
-
-// GetFullType implements duck.Implementable
-func (_ *Generation) GetFullType() duck.Populatable {
- return &Generational{}
-}
-
-// Populate implements duck.Populatable
-func (t *Generational) Populate() {
- t.Spec.Generation = 1234
-}
-
-// GetListType implements apis.Listable
-func (r *Generational) GetListType() runtime.Object {
- return &GenerationalList{}
-}
-
-// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
-
-// GenerationalList is a list of Generational resources
-type GenerationalList struct {
- metav1.TypeMeta `json:",inline"`
- metav1.ListMeta `json:"metadata"`
-
- Items []Generational `json:"items"`
-}
diff --git a/vendor/github.com/knative/pkg/apis/duck/v1alpha1/register.go b/vendor/github.com/knative/pkg/apis/duck/v1alpha1/register.go
index a0264e576e..4bb344f2ac 100644
--- a/vendor/github.com/knative/pkg/apis/duck/v1alpha1/register.go
+++ b/vendor/github.com/knative/pkg/apis/duck/v1alpha1/register.go
@@ -47,8 +47,6 @@ func addKnownTypes(scheme *runtime.Scheme) error {
SchemeGroupVersion,
&KResource{},
(&KResource{}).GetListType(),
- &Generational{},
- (&Generational{}).GetListType(),
&AddressableType{},
(&AddressableType{}).GetListType(),
&Target{},
diff --git a/vendor/github.com/knative/pkg/apis/duck/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/knative/pkg/apis/duck/v1alpha1/zz_generated.deepcopy.go
index 731c7059dc..45f285d7ea 100644
--- a/vendor/github.com/knative/pkg/apis/duck/v1alpha1/zz_generated.deepcopy.go
+++ b/vendor/github.com/knative/pkg/apis/duck/v1alpha1/zz_generated.deepcopy.go
@@ -160,82 +160,6 @@ func (in Conditions) DeepCopy() Conditions {
return *out
}
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *Generational) DeepCopyInto(out *Generational) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
- out.Spec = in.Spec
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Generational.
-func (in *Generational) DeepCopy() *Generational {
- if in == nil {
- return nil
- }
- out := new(Generational)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *Generational) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *GenerationalList) DeepCopyInto(out *GenerationalList) {
- *out = *in
- out.TypeMeta = in.TypeMeta
- out.ListMeta = in.ListMeta
- if in.Items != nil {
- in, out := &in.Items, &out.Items
- *out = make([]Generational, len(*in))
- for i := range *in {
- (*in)[i].DeepCopyInto(&(*out)[i])
- }
- }
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GenerationalList.
-func (in *GenerationalList) DeepCopy() *GenerationalList {
- if in == nil {
- return nil
- }
- out := new(GenerationalList)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
-func (in *GenerationalList) DeepCopyObject() runtime.Object {
- if c := in.DeepCopy(); c != nil {
- return c
- }
- return nil
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *GenerationalSpec) DeepCopyInto(out *GenerationalSpec) {
- *out = *in
- return
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GenerationalSpec.
-func (in *GenerationalSpec) DeepCopy() *GenerationalSpec {
- if in == nil {
- return nil
- }
- out := new(GenerationalSpec)
- in.DeepCopyInto(out)
- return out
-}
-
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *KResource) DeepCopyInto(out *KResource) {
*out = *in
diff --git a/vendor/github.com/knative/pkg/apis/duck/verify.go b/vendor/github.com/knative/pkg/apis/duck/verify.go
index d53421b046..eb6bdebf43 100644
--- a/vendor/github.com/knative/pkg/apis/duck/verify.go
+++ b/vendor/github.com/knative/pkg/apis/duck/verify.go
@@ -20,7 +20,7 @@ import (
"encoding/json"
"fmt"
- "github.com/google/go-cmp/cmp"
+ "github.com/knative/pkg/kmp"
)
// Implementable is implemented by the Fooable duck type that consumers
@@ -56,30 +56,55 @@ func VerifyType(instance interface{}, iface Implementable) error {
// that we will compare at the end.
input, output := iface.GetFullType(), iface.GetFullType()
+ if err := roundTrip(instance, input, output); err != nil {
+ return err
+ }
+
+ // Now verify that we were able to roundtrip all of our fields through the type
+ // we are checking.
+ if diff, err := kmp.SafeDiff(input, output); err != nil {
+ return err
+ } else if diff != "" {
+ return fmt.Errorf("%T does not implement the duck type %T, the following fields were lost: %s",
+ instance, iface, diff)
+ }
+ return nil
+}
+
+// ConformsToType will return true or false depending on whether a
+// concrete resource properly implements the provided Implementable
+// duck type.
+//
+// It will return an error if marshal/unmarshalling fails
+func ConformsToType(instance interface{}, iface Implementable) (bool, error) {
+ input, output := iface.GetFullType(), iface.GetFullType()
+
+ if err := roundTrip(instance, input, output); err != nil {
+ return false, err
+ }
+
+ return kmp.SafeEqual(input, output)
+}
+
+func roundTrip(instance interface{}, input, output Populatable) error {
// Populate our input resource with values we will roundtrip.
input.Populate()
// Serialize the input to JSON and deserialize that into the provided instance
// of the type that we are checking.
if before, err := json.Marshal(input); err != nil {
- return fmt.Errorf("error serializing duck type %T", input)
+ return fmt.Errorf("error serializing duck type %T error: %s", input, err)
} else if err := json.Unmarshal(before, instance); err != nil {
- return fmt.Errorf("error deserializing duck type %T into %T", input, instance)
+ return fmt.Errorf("error deserializing duck type %T into %T error: %s", input, instance, err)
}
// Serialize the instance we are checking to JSON and deserialize that into the
// output resource.
if after, err := json.Marshal(instance); err != nil {
- return fmt.Errorf("error serializing %T", instance)
+ return fmt.Errorf("error serializing %T error: %s", instance, err)
} else if err := json.Unmarshal(after, output); err != nil {
- return fmt.Errorf("error deserializing %T into dock type %T", instance, output)
+ return fmt.Errorf("error deserializing %T into duck type %T error: %s", instance, output, err)
}
- // Now verify that we were able to roundtrip all of our fields through the type
- // we are checking.
- if diff := cmp.Diff(input, output); diff != "" {
- return fmt.Errorf("%T does not implement the duck type %T, the following fields were lost: %s",
- instance, iface, diff)
- }
return nil
}
diff --git a/vendor/github.com/knative/pkg/apis/field_error.go b/vendor/github.com/knative/pkg/apis/field_error.go
index 4ae02bc1ed..e3c3ae4e83 100644
--- a/vendor/github.com/knative/pkg/apis/field_error.go
+++ b/vendor/github.com/knative/pkg/apis/field_error.go
@@ -192,7 +192,7 @@ func asKey(key string) string {
// err([0]).ViaField(bar).ViaField(foo) -> foo.bar.[0] converts to foo.bar[0]
// err(bar).ViaIndex(0).ViaField(foo) -> foo.[0].bar converts to foo[0].bar
// err(bar).ViaField(foo).ViaIndex(0) -> [0].foo.bar converts to [0].foo.bar
-// err(bar).ViaIndex(0).ViaIndex[1].ViaField(foo) -> foo.[1].[0].bar converts to foo[1][0].bar
+// err(bar).ViaIndex(0).ViaIndex(1).ViaField(foo) -> foo.[1].[0].bar converts to foo[1][0].bar
func flatten(path []string) string {
var newPath []string
for _, part := range path {
@@ -300,6 +300,12 @@ func ErrDisallowedFields(fieldPaths ...string) *FieldError {
}
}
+// ErrInvalidArrayValue consturcts a FieldError for a repetetive `field`
+// at `index` that has received an invalid string value.
+func ErrInvalidArrayValue(value, field string, index int) *FieldError {
+ return ErrInvalidValue(value, CurrentField).ViaFieldIndex(field, index)
+}
+
// ErrInvalidValue constructs a FieldError for a field that has received an
// invalid string value.
func ErrInvalidValue(value, fieldPath string) *FieldError {
diff --git a/vendor/github.com/knative/pkg/apis/interfaces.go b/vendor/github.com/knative/pkg/apis/interfaces.go
index d21ab41b31..b8c88199e0 100644
--- a/vendor/github.com/knative/pkg/apis/interfaces.go
+++ b/vendor/github.com/knative/pkg/apis/interfaces.go
@@ -17,6 +17,7 @@ limitations under the License.
package apis
import (
+ authenticationv1 "k8s.io/api/authentication/v1"
"k8s.io/apimachinery/pkg/runtime"
)
@@ -47,3 +48,8 @@ type Listable interface {
GetListType() runtime.Object
}
+
+// Annotatable indicates that a particular type applies various annotations.
+type Annotatable interface {
+ AnnotateUserInfo(previous Annotatable, ui *authenticationv1.UserInfo)
+}
diff --git a/vendor/github.com/knative/pkg/apis/istio/common/v1alpha1/string.go b/vendor/github.com/knative/pkg/apis/istio/common/v1alpha1/string.go
index 52336124d4..c34c250531 100644
--- a/vendor/github.com/knative/pkg/apis/istio/common/v1alpha1/string.go
+++ b/vendor/github.com/knative/pkg/apis/istio/common/v1alpha1/string.go
@@ -28,7 +28,7 @@ type StringMatch struct {
Prefix string `json:"prefix,omitempty"`
// suffix-based match.
- Suffix string `json:"prefix,omitempty"`
+ Suffix string `json:"suffix,omitempty"`
// ECMAscript style regex-based match
Regex string `json:"regex,omitempty"`
diff --git a/vendor/github.com/knative/pkg/apis/istio/v1alpha3/destinationrule_types.go b/vendor/github.com/knative/pkg/apis/istio/v1alpha3/destinationrule_types.go
index eff821123d..d5b0d40507 100644
--- a/vendor/github.com/knative/pkg/apis/istio/v1alpha3/destinationrule_types.go
+++ b/vendor/github.com/knative/pkg/apis/istio/v1alpha3/destinationrule_types.go
@@ -206,7 +206,7 @@ type PortTrafficPolicy struct {
type Subset struct {
// REQUIRED. Name of the subset. The service name and the subset name can
// be used for traffic splitting in a route rule.
- Name string `json:"port"`
+ Name string `json:"name"`
// REQUIRED. Labels apply a filter over the endpoints of a service in the
// service registry. See route rules for examples of usage.
diff --git a/vendor/github.com/knative/pkg/cloudevents/builder.go b/vendor/github.com/knative/pkg/cloudevents/builder.go
new file mode 100644
index 0000000000..4cf3706d96
--- /dev/null
+++ b/vendor/github.com/knative/pkg/cloudevents/builder.go
@@ -0,0 +1,135 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package cloudevents
+
+import (
+ "fmt"
+ "net/http"
+ "time"
+
+ "github.com/google/uuid"
+)
+
+// CloudEventEncoding is used to tell the builder which encoding to select.
+// the default is Binary.
+type CloudEventEncoding int
+
+const (
+ // Binary v0.1
+ BinaryV01 CloudEventEncoding = iota
+ // Structured v0.1
+ StructuredV01
+)
+
+// Builder holds settings that do not change over CloudEvents. It is intended
+// to represent a builder of only a single CloudEvent type.
+type Builder struct {
+ // A URI describing the event producer.
+ Source string
+ // Type of occurrence which has happened.
+ EventType string
+ // The version of the `eventType`; this is producer-specific.
+ EventTypeVersion string
+ // A link to the schema that the `data` attribute adheres to.
+ SchemaURL string
+ // Additional metadata without a well-defined structure.
+ Extensions map[string]interface{}
+
+ // Encoding specifies the requested output encoding of the CloudEvent.
+ Encoding CloudEventEncoding
+}
+
+// Build produces a http request with the constant data embedded in the builder
+// merged with the new data provided in the build function. The request will
+// send a pre-assembled cloud event to the given target. The target is assumed
+// to be a URL with a scheme, ie: "http://localhost:8080"
+func (b *Builder) Build(target string, data interface{}, overrides ...SendContext) (*http.Request, error) {
+ if len(overrides) > 1 {
+ return nil, fmt.Errorf("Build was called with more than one override")
+ }
+
+ var overridesV01 *V01EventContext
+ if len(overrides) == 1 {
+ switch t := overrides[0].(type) {
+ case V01EventContext:
+ o := overrides[0].(V01EventContext)
+ overridesV01 = &o
+ default:
+ return nil, fmt.Errorf("Build was called with unknown override type %v", t)
+ }
+ }
+ // TODO: when V02 is supported this will have to shuffle a little.
+ ctx := b.cloudEventsContextV01(overridesV01)
+
+ if ctx.Source == "" {
+ return nil, fmt.Errorf("ctx.Source resolved empty")
+ }
+ if ctx.EventType == "" {
+ return nil, fmt.Errorf("ctx.EventType resolved empty")
+ }
+
+ switch b.Encoding {
+ case BinaryV01:
+ return Binary.NewRequest(target, data, ctx)
+ case StructuredV01:
+ return Structured.NewRequest(target, data, ctx)
+ default:
+ return nil, fmt.Errorf("unsupported encoding: %v", b.Encoding)
+ }
+}
+
+// cloudEventsContext creates a CloudEvent context object, assumes
+// application/json as the content type.
+func (b *Builder) cloudEventsContextV01(overrides *V01EventContext) V01EventContext {
+ ctx := V01EventContext{
+ CloudEventsVersion: CloudEventsVersion,
+ EventType: b.EventType,
+ EventID: uuid.New().String(),
+ EventTypeVersion: b.EventTypeVersion,
+ SchemaURL: b.SchemaURL,
+ Source: b.Source,
+ ContentType: "application/json",
+ EventTime: time.Now(),
+ Extensions: b.Extensions,
+ }
+ if overrides != nil {
+ if overrides.Source != "" {
+ ctx.Source = overrides.Source
+ }
+ if overrides.EventID != "" {
+ ctx.EventID = overrides.EventID
+ }
+ if overrides.EventType != "" {
+ ctx.EventType = overrides.EventType
+ }
+ if !overrides.EventTime.IsZero() {
+ ctx.EventTime = overrides.EventTime
+ }
+ if overrides.ContentType != "" {
+ ctx.ContentType = overrides.ContentType
+ }
+ if len(overrides.Extensions) > 0 {
+ if ctx.Extensions == nil {
+ ctx.Extensions = make(map[string]interface{})
+ }
+ for k, v := range overrides.Extensions {
+ ctx.Extensions[k] = v
+ }
+ }
+ }
+ return ctx
+}
diff --git a/vendor/github.com/knative/pkg/cloudevents/client.go b/vendor/github.com/knative/pkg/cloudevents/client.go
new file mode 100644
index 0000000000..9846edf1da
--- /dev/null
+++ b/vendor/github.com/knative/pkg/cloudevents/client.go
@@ -0,0 +1,81 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package cloudevents
+
+import (
+ "fmt"
+ "io/ioutil"
+ "net/http"
+)
+
+// Client wraps Builder, and is intended to be configured for a single event
+// type and target
+type Client struct {
+ builder Builder
+ Target string
+}
+
+// NewClient returns a CloudEvent Client used to send CloudEvents. It is
+// intended that a user would create a new client for each tuple of eventType
+// and target. This is an optional helper method to avoid the tricky creation
+// of the embedded Builder struct.
+func NewClient(target string, builder Builder) *Client {
+ c := &Client{
+ builder: builder,
+ Target: target,
+ }
+ return c
+}
+
+// Send creates a request based on the client's settings and sends the data
+// struct to the target set for this client. It returns error if there was an
+// issue sending the event, otherwise nil means the event was accepted.
+func (c *Client) Send(data interface{}, overrides ...SendContext) error {
+ req, err := c.builder.Build(c.Target, data, overrides...)
+ if err != nil {
+ return err
+ }
+ client := &http.Client{}
+ resp, err := client.Do(req)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ if accepted(resp) {
+ return nil
+ }
+ return fmt.Errorf("error sending cloudevent: %s", status(resp))
+}
+
+// accepted is a helper method to understand if the response from the target
+// accepted the CloudEvent.
+func accepted(resp *http.Response) bool {
+ if resp.StatusCode >= 200 && resp.StatusCode < 300 {
+ return true
+ }
+ return false
+}
+
+// status is a helper method to read the response of the target.
+func status(resp *http.Response) string {
+ status := resp.Status
+ body, err := ioutil.ReadAll(resp.Body)
+ if err != nil {
+ return fmt.Sprintf("Status[%s] error reading response body: %v", status, err)
+ }
+ return fmt.Sprintf("Status[%s] %s", status, body)
+}
diff --git a/vendor/github.com/knative/pkg/cloudevents/doc.go b/vendor/github.com/knative/pkg/cloudevents/doc.go
index d33753866f..62bc3b02ce 100644
--- a/vendor/github.com/knative/pkg/cloudevents/doc.go
+++ b/vendor/github.com/knative/pkg/cloudevents/doc.go
@@ -19,5 +19,4 @@ limitations under the License.
// https://github.com/cloudevents/spec/blob/v0.1/http-transport-binding.md
// and
// https://github.com/cloudevents/spec/blob/v0.1/spec.md
-
package cloudevents
diff --git a/vendor/github.com/knative/pkg/cloudevents/encoding_binary.go b/vendor/github.com/knative/pkg/cloudevents/encoding_binary.go
index 9b20dfe500..8ed4fbfaad 100644
--- a/vendor/github.com/knative/pkg/cloudevents/encoding_binary.go
+++ b/vendor/github.com/knative/pkg/cloudevents/encoding_binary.go
@@ -20,14 +20,10 @@ package cloudevents
import (
"bytes"
- "encoding/json"
"fmt"
"io/ioutil"
- "log"
"net/http"
"net/url"
- "strings"
- "time"
)
const (
@@ -56,7 +52,7 @@ const (
// HeaderSource is the header for the source which emitted this event.
HeaderSource = "CE-Source"
- // HeaderExtensions is the OPTIONAL header prefix for CloudEvents extensions
+ // HeaderExtensionsPrefix is the OPTIONAL header prefix for CloudEvents extensions
HeaderExtensionsPrefix = "CE-X-"
// Binary implements Binary encoding/decoding
@@ -65,68 +61,57 @@ const (
type binary int
-// FromRequest parses event data and context from an HTTP request.
-func (binary) FromRequest(data interface{}, r *http.Request) (*EventContext, error) {
- var ctx EventContext
- err := anyError(
- getRequiredHeader(r.Header, HeaderEventID, &ctx.EventID),
- getRequiredHeader(r.Header, HeaderEventType, &ctx.EventType),
- getRequiredHeader(r.Header, HeaderSource, &ctx.Source),
- getRequiredHeader(r.Header, HeaderContentType, &ctx.ContentType))
- if err != nil {
- return nil, err
- }
+// BinarySender implements an interface for sending an EventContext as
+// (possibly one of several versions) as a binary encoding HTTP request.
+type BinarySender interface {
+ // AsHeaders converts this EventContext to a set of HTTP headers.
+ AsHeaders() (http.Header, error)
+}
- ctx.CloudEventsVersion = r.Header.Get(HeaderCloudEventsVersion)
- if timeStr := r.Header.Get(HeaderEventTime); timeStr != "" {
- if ctx.EventTime, err = time.Parse(time.RFC3339Nano, timeStr); err != nil {
- return nil, err
- }
- }
- ctx.EventTypeVersion = r.Header.Get(HeaderEventTypeVersion)
- ctx.SchemaURL = r.Header.Get(HeaderSchemaURL)
- if ctx.CloudEventsVersion != CloudEventsVersion {
- log.Printf("Received CloudEvent version %q; parsing as version %q",
- ctx.CloudEventsVersion, CloudEventsVersion)
- }
+// BinaryLoader implements an interface for translating a binary encoding HTTP
+// request or response to a an EventContext (possibly one of several versions).
+type BinaryLoader interface {
+ // FromHeaders copies data from the supplied HTTP headers into the object.
+ // Values will be defaulted if necessary.
+ FromHeaders(in http.Header) error
+}
- ctx.Extensions = make(map[string]interface{})
- for k, v := range r.Header {
- if strings.ToUpper(k)[:len(HeaderExtensionsPrefix)] != HeaderExtensionsPrefix {
- continue
- }
- name := k[len(HeaderExtensionsPrefix):]
- var val interface{}
- if err := json.Unmarshal([]byte(v[0]), &val); err != nil {
- // If this is not a JSON object, treat it as a string.
- // It's not clear when we would treat this as Bytes.
- ctx.Extensions[name] = v[0]
- } else {
- ctx.Extensions[name] = val
- }
+// FromRequest parses event data and context from an HTTP request.
+func (binary) FromRequest(data interface{}, r *http.Request) (LoadContext, error) {
+ var ec LoadContext
+ switch {
+ case r.Header.Get("CE-SpecVersion") == V02CloudEventsVersion:
+ ec = &V02EventContext{}
+ case r.Header.Get("CE-CloudEventsVersion") == V01CloudEventsVersion:
+ ec = &V01EventContext{}
+ default:
+ return nil, fmt.Errorf("Could not determine Cloud Events version from header: %+v", r.Header)
+ }
+
+ if err := ec.FromHeaders(r.Header); err != nil {
+ return nil, err
}
- if err := unmarshalEventData(ctx.ContentType, r.Body, data); err != nil {
+ if err := unmarshalEventData(ec.DataContentType(), r.Body, data); err != nil {
return nil, err
}
- return &ctx, nil
+ return ec, nil
}
// NewRequest creates an HTTP request for Binary content encoding.
-func (t binary) NewRequest(urlString string, data interface{}, context EventContext) (*http.Request, error) {
+func (t binary) NewRequest(urlString string, data interface{}, context SendContext) (*http.Request, error) {
url, err := url.Parse(urlString)
if err != nil {
return nil, err
}
- h := http.Header{}
- err = t.ToHeaders(&context, h)
+ h, err := context.AsHeaders()
if err != nil {
return nil, err
}
- b, err := marshalEventData(context.ContentType, data)
+ b, err := marshalEventData(h.Get("Content-Type"), data)
if err != nil {
return nil, err
}
@@ -138,64 +123,3 @@ func (t binary) NewRequest(urlString string, data interface{}, context EventCont
Body: ioutil.NopCloser(bytes.NewReader(b)),
}, nil
}
-
-func (binary) ToHeaders(context *EventContext, h http.Header) error {
- if context == nil || h == nil {
- return nil
- }
- if err := ensureRequiredFields(*context); err != nil {
- return err
- }
- // Defaultable values:
- ceVersion := context.CloudEventsVersion
- if ceVersion == "" {
- ceVersion = CloudEventsVersion
- }
- contentType := context.ContentType
- if contentType == "" {
- contentType = contentTypeJSON
- }
-
- // non-string values:
- eventTime := ""
- if !context.EventTime.IsZero() {
- eventTime = context.EventTime.Format(time.RFC3339Nano)
- }
-
- setHeader(h, HeaderCloudEventsVersion, ceVersion)
- setHeader(h, HeaderEventID, context.EventID)
- setHeader(h, HeaderEventTime, eventTime)
- setHeader(h, HeaderEventType, context.EventType)
- setHeader(h, HeaderEventTypeVersion, context.EventTypeVersion)
- setHeader(h, HeaderSchemaURL, context.SchemaURL)
- setHeader(h, HeaderContentType, contentType)
- setHeader(h, HeaderSource, context.Source)
- for name, value := range context.Extensions {
- encoded, err := json.Marshal(value)
- if err != nil {
- return err
- }
- h[HeaderExtensionsPrefix+name] = []string{
- string(encoded),
- }
- }
-
- return nil
-}
-
-// TODO(inlined) URI encoding/decoding of headers
-func getHeader(h http.Header, name string) string {
- return h.Get(name)
-}
-
-func setHeader(h http.Header, name string, value string) {
- if value != "" {
- h.Set(name, value)
- }
-}
-func getRequiredHeader(h http.Header, name string, value *string) error {
- if *value = getHeader(h, name); *value == "" {
- return fmt.Errorf("missing required header %q", name)
- }
- return nil
-}
diff --git a/vendor/github.com/knative/pkg/cloudevents/encoding_structured.go b/vendor/github.com/knative/pkg/cloudevents/encoding_structured.go
index 08c2acab97..8670241d38 100644
--- a/vendor/github.com/knative/pkg/cloudevents/encoding_structured.go
+++ b/vendor/github.com/knative/pkg/cloudevents/encoding_structured.go
@@ -34,73 +34,100 @@ const (
type structured int
-type structuredEnvelope struct {
- EventContext
- RawData json.RawMessage `json:"data"`
+// StructuredSender implements an interface for translating an EventContext
+// (possibly one of severals versions) to a structured encoding HTTP request.
+type StructuredSender interface {
+ // AsJSON encodes the object into a map from string to JSON data, which
+ // allows additional keys to be encoded later.
+ AsJSON() (map[string]json.RawMessage, error)
+}
+
+// StructuredLoader implements an interface for translating a structured
+// encoding HTTP request or response to a an EventContext (possibly one of
+// several versions).
+type StructuredLoader interface {
+ // FromJSON assumes that the object has already been decoded into a raw map
+ // from string to json.RawMessage, because this is needed to extract the
+ // CloudEvents version.
+ FromJSON(map[string]json.RawMessage) error
}
// FromRequest parses a CloudEvent from structured content encoding.
-func (structured) FromRequest(data interface{}, r *http.Request) (*EventContext, error) {
- var e structuredEnvelope
- if err := json.NewDecoder(r.Body).Decode(&e); err != nil {
+func (structured) FromRequest(data interface{}, r *http.Request) (LoadContext, error) {
+ raw := make(map[string]json.RawMessage)
+ if err := json.NewDecoder(r.Body).Decode(&raw); err != nil {
return nil, err
}
- contentType := e.EventContext.ContentType
+ rawData := raw["data"]
+ delete(raw, "data")
+
+ var ec LoadContext
+ v := ""
+ if err := json.Unmarshal(raw["specversion"], &v); err == nil && v == V02CloudEventsVersion {
+ ec = &V02EventContext{}
+ } else if err := json.Unmarshal(raw["cloudEventsVersion"], &v); err == nil && v == V01CloudEventsVersion {
+ ec = &V01EventContext{}
+ } else {
+ return nil, fmt.Errorf("Could not determine Cloud Events version from payload: %q", data)
+ }
+
+ if err := ec.FromJSON(raw); err != nil {
+ return nil, err
+ }
+
+ contentType := ec.DataContentType()
if contentType == "" {
contentType = contentTypeJSON
}
var reader io.Reader
if !isJSONEncoding(contentType) {
var jsonDecoded string
- if err := json.Unmarshal(e.RawData, &jsonDecoded); err != nil {
- return nil, fmt.Errorf("Could not JSON decode %q value %q", contentType, string(e.RawData))
+ if err := json.Unmarshal(rawData, &jsonDecoded); err != nil {
+ return nil, fmt.Errorf("Could not JSON decode %q value %q", contentType, rawData)
}
reader = strings.NewReader(jsonDecoded)
} else {
- reader = bytes.NewReader(e.RawData)
- }
- if e.EventContext.Extensions == nil {
- e.EventContext.Extensions = make(map[string]interface{}, 0)
+ reader = bytes.NewReader(rawData)
}
if err := unmarshalEventData(contentType, reader, data); err != nil {
return nil, err
}
- return &e.EventContext, nil
+ return ec, nil
}
// NewRequest creates an HTTP request for Structured content encoding.
-func (structured) NewRequest(urlString string, data interface{}, context EventContext) (*http.Request, error) {
+func (structured) NewRequest(urlString string, data interface{}, context SendContext) (*http.Request, error) {
url, err := url.Parse(urlString)
if err != nil {
return nil, err
}
- if err := ensureRequiredFields(context); err != nil {
+ fields, err := context.AsJSON()
+ if err != nil {
return nil, err
}
- contentType := context.ContentType
+ // TODO: remove this defaulting?
+ contentType := context.DataContentType()
if contentType == "" {
contentType = contentTypeJSON
}
- e := structuredEnvelope{
- EventContext: context,
- }
+
dataBytes, err := marshalEventData(contentType, data)
if err != nil {
return nil, err
}
if isJSONEncoding(contentType) {
- e.RawData = json.RawMessage(dataBytes)
+ fields["data"] = json.RawMessage(dataBytes)
} else {
- e.RawData, err = json.Marshal(string(dataBytes))
+ fields["data"], err = json.Marshal(string(dataBytes))
if err != nil {
return nil, err
}
}
- b, err := json.Marshal(e)
+ b, err := json.Marshal(fields)
if err != nil {
return nil, err
}
diff --git a/vendor/github.com/knative/pkg/cloudevents/event.go b/vendor/github.com/knative/pkg/cloudevents/event.go
index 70f66e4aa0..478c1cfe3f 100644
--- a/vendor/github.com/knative/pkg/cloudevents/event.go
+++ b/vendor/github.com/knative/pkg/cloudevents/event.go
@@ -24,14 +24,9 @@ import (
"io"
"net/http"
"reflect"
- "time"
)
const (
- // CloudEventsVersion is the version of the CloudEvents spec targeted
- // by this library.
- CloudEventsVersion = "0.1"
-
// ContentTypeStructuredJSON is the content-type for "Structured" encoding
// where an event envelope is written in JSON and the body is arbitrary
// data which might be an alternate encoding.
@@ -48,43 +43,68 @@ const (
// HeaderContentType is the standard HTTP header "Content-Type"
HeaderContentType = "Content-Type"
- // required attributes
- fieldCloudEventsVersion = "CloudEventsVersion"
- fieldEventID = "EventID"
- fieldEventType = "EventType"
- fieldSource = "Source"
+ // CloudEventsVersion is a legacy alias of V01CloudEventsVersion, for compatibility.
+ CloudEventsVersion = V01CloudEventsVersion
)
-// EventContext holds standard metadata about an event. See
-// https://github.com/cloudevents/spec/blob/v0.1/spec.md#context-attributes for
-// details on these fields.
-type EventContext struct {
- // The version of the CloudEvents specification used by the event.
- CloudEventsVersion string `json:"cloudEventsVersion,omitempty"`
- // ID of the event; must be non-empty and unique within the scope of the producer.
- EventID string `json:"eventID"`
- // Timestamp when the event happened.
- EventTime time.Time `json:"eventTime,omitempty"`
- // Type of occurrence which has happened.
- EventType string `json:"eventType"`
- // The version of the `eventType`; this is producer-specific.
- EventTypeVersion string `json:"eventTypeVersion,omitempty"`
- // A link to the schema that the `data` attribute adheres to.
- SchemaURL string `json:"schemaURL,omitempty"`
- // A MIME (RFC 2046) string describing the media type of `data`.
- // TODO: Should an empty string assume `application/json`, or auto-detect the content?
- ContentType string `json:"contentType,omitempty"`
- // A URI describing the event producer.
- Source string `json:"source"`
- // Additional metadata without a well-defined structure.
- Extensions map[string]interface{} `json:"extensions,omitempty"`
-}
+// EventContext is a legacy un-versioned alias, from when we thought that field names would stay the same.
+type EventContext = V01EventContext
// HTTPMarshaller implements a scheme for decoding CloudEvents over HTTP.
// Implementations are Binary, Structured, and Any
type HTTPMarshaller interface {
- FromRequest(data interface{}, r *http.Request) (*EventContext, error)
- NewRequest(urlString string, data interface{}, context EventContext) (*http.Request, error)
+ FromRequest(data interface{}, r *http.Request) (LoadContext, error)
+ NewRequest(urlString string, data interface{}, context SendContext) (*http.Request, error)
+}
+
+// ContextTranslator provides a set of translation methods between the
+// different versions of the CloudEvents spec, which allows programs to
+// interoperate with different versions of the CloudEvents spec by
+// converting EventContexts to their preferred version.
+type ContextTranslator interface {
+ // AsV01 provides a translation from whatever the "native" encoding of the
+ // CloudEvent was to the equivalent in v0.1 field names, moving fields to or
+ // from extensions as necessary.
+ AsV01() V01EventContext
+
+ // AsV02 provides a translation from whatever the "native" encoding of the
+ // CloudEvent was to the equivalent in v0.2 field names, moving fields to or
+ // from extensions as necessary.
+ AsV02() V02EventContext
+
+ // DataContentType returns the MIME content type for encoding data, which is
+ // needed by both encoding and decoding.
+ DataContentType() string
+}
+
+// SendContext provides an interface for extracting information from an
+// EventContext (the set of non-data event attributes of a CloudEvent).
+type SendContext interface {
+ ContextTranslator
+
+ StructuredSender
+ BinarySender
+}
+
+// LoadContext provides an interface for extracting information from an
+// EventContext (the set of non-data event attributes of a CloudEvent).
+type LoadContext interface {
+ ContextTranslator
+
+ StructuredLoader
+ BinaryLoader
+}
+
+// ContextType is a unified interface for both sending and loading the
+// CloudEvent data across versions.
+type ContextType interface {
+ ContextTranslator
+
+ StructuredSender
+ BinarySender
+
+ StructuredLoader
+ BinaryLoader
}
func anyError(errs ...error) error {
@@ -96,13 +116,6 @@ func anyError(errs ...error) error {
return nil
}
-func ensureRequiredFields(context EventContext) error {
- return anyError(
- require(fieldEventID, context.EventID),
- require(fieldEventType, context.EventType),
- require(fieldSource, context.Source))
-}
-
func require(name string, value string) error {
if len(value) == 0 {
return fmt.Errorf("missing required field %q", name)
@@ -169,7 +182,7 @@ func marshalEventData(encoding string, data interface{}) ([]byte, error) {
}
// FromRequest parses a CloudEvent from any known encoding.
-func FromRequest(data interface{}, r *http.Request) (*EventContext, error) {
+func FromRequest(data interface{}, r *http.Request) (LoadContext, error) {
switch r.Header.Get(HeaderContentType) {
case ContentTypeStructuredJSON:
return Structured.FromRequest(data, r)
@@ -184,16 +197,16 @@ func FromRequest(data interface{}, r *http.Request) (*EventContext, error) {
}
// NewRequest craetes an HTTP request for Structured content encoding.
-func NewRequest(urlString string, data interface{}, context EventContext) (*http.Request, error) {
+func NewRequest(urlString string, data interface{}, context SendContext) (*http.Request, error) {
return Structured.NewRequest(urlString, data, context)
}
-// Opaque key type used to store EventContexts in a context.Context
+// Opaque key type used to store V01EventContexts in a context.Context
type contextKeyType struct{}
var contextKey = contextKeyType{}
-// FromContext loads an EventContext from a normal context.Context
-func FromContext(ctx context.Context) *EventContext {
- return ctx.Value(contextKey).(*EventContext)
+// FromContext loads an V01EventContext from a normal context.Context
+func FromContext(ctx context.Context) LoadContext {
+ return ctx.Value(contextKey).(LoadContext)
}
diff --git a/vendor/github.com/knative/pkg/cloudevents/event_v01.go b/vendor/github.com/knative/pkg/cloudevents/event_v01.go
new file mode 100644
index 0000000000..2ba67ca0c0
--- /dev/null
+++ b/vendor/github.com/knative/pkg/cloudevents/event_v01.go
@@ -0,0 +1,236 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package cloudevents
+
+import (
+ "encoding/json"
+ "fmt"
+ "net/http"
+ "strings"
+ "time"
+)
+
+const (
+ // V01CloudEventsVersion is the version of the CloudEvents spec targeted
+ // by this library.
+ V01CloudEventsVersion = "0.1"
+
+ // v0.1 field names
+ fieldCloudEventsVersion = "CloudEventsVersion"
+ fieldEventID = "EventID"
+ fieldEventType = "EventType"
+)
+
+// V01EventContext holds standard metadata about an event. See
+// https://github.com/cloudevents/spec/blob/v0.1/spec.md#context-attributes for
+// details on these fields.
+type V01EventContext struct {
+ // The version of the CloudEvents specification used by the event.
+ CloudEventsVersion string `json:"cloudEventsVersion,omitempty"`
+ // ID of the event; must be non-empty and unique within the scope of the producer.
+ EventID string `json:"eventID"`
+ // Timestamp when the event happened.
+ EventTime time.Time `json:"eventTime,omitempty"`
+ // Type of occurrence which has happened.
+ EventType string `json:"eventType"`
+ // The version of the `eventType`; this is producer-specific.
+ EventTypeVersion string `json:"eventTypeVersion,omitempty"`
+ // A link to the schema that the `data` attribute adheres to.
+ SchemaURL string `json:"schemaURL,omitempty"`
+ // A MIME (RFC 2046) string describing the media type of `data`.
+ // TODO: Should an empty string assume `application/json`, or auto-detect the content?
+ ContentType string `json:"contentType,omitempty"`
+ // A URI describing the event producer.
+ Source string `json:"source"`
+ // Additional metadata without a well-defined structure.
+ Extensions map[string]interface{} `json:"extensions,omitempty"`
+}
+
+// AsV01 implements the ContextTranslator interface.
+func (ec V01EventContext) AsV01() V01EventContext {
+ return ec
+}
+
+// AsV02 implements the ContextTranslator interface.
+func (ec V01EventContext) AsV02() V02EventContext {
+ ret := V02EventContext{
+ SpecVersion: V02CloudEventsVersion,
+ Type: ec.EventType,
+ Source: ec.Source,
+ ID: ec.EventID,
+ Time: ec.EventTime,
+ SchemaURL: ec.SchemaURL,
+ ContentType: ec.ContentType,
+ Extensions: make(map[string]interface{}),
+ }
+ // eventTypeVersion was retired in v0.2, so put it in an extension.
+ if ec.EventTypeVersion != "" {
+ ret.Extensions["eventtypeversion"] = ec.EventTypeVersion
+ }
+ for k, v := range ec.Extensions {
+ ret.Extensions[k] = v
+ }
+ return ret
+}
+
+// AsHeaders implements the BinarySender interface.
+func (ec V01EventContext) AsHeaders() (http.Header, error) {
+ h := http.Header{}
+ h.Set("CE-CloudEventsVersion", ec.CloudEventsVersion)
+ h.Set("CE-EventID", ec.EventID)
+ h.Set("CE-EventType", ec.EventType)
+ h.Set("CE-Source", ec.Source)
+ if ec.CloudEventsVersion == "" {
+ h.Set("CE-CloudEventsVersion", V01CloudEventsVersion)
+ }
+ if !ec.EventTime.IsZero() {
+ h.Set("CE-EventTime", ec.EventTime.Format(time.RFC3339Nano))
+ }
+ if ec.EventTypeVersion != "" {
+ h.Set("CE-EventTypeVersion", ec.EventTypeVersion)
+ }
+ if ec.SchemaURL != "" {
+ h.Set("CE-SchemaUrl", ec.SchemaURL)
+ }
+ if ec.ContentType != "" {
+ h.Set("Content-Type", ec.ContentType)
+ }
+ for k, v := range ec.Extensions {
+ encoded, err := json.Marshal(v)
+ if err != nil {
+ return nil, err
+ }
+ // Preserve case in v0.1, even though HTTP headers are case-insensitive.
+ h["CE-X-"+k] = []string{string(encoded)}
+ }
+ return h, nil
+}
+
+// FromHeaders implements the BinaryLoader interface.
+func (ec *V01EventContext) FromHeaders(in http.Header) error {
+ missingField := func(name string) error {
+ if in.Get("CE-"+name) == "" {
+ return fmt.Errorf("Missing field %q in %v: %q", "CE-"+name, in, in.Get("CE-"+name))
+ }
+ return nil
+ }
+ if err := anyError(
+ missingField("CloudEventsVersion"),
+ missingField("EventID"),
+ missingField("EventType"),
+ missingField("Source")); err != nil {
+ return err
+ }
+ data := V01EventContext{
+ CloudEventsVersion: in.Get("CE-CloudEventsVersion"),
+ EventID: in.Get("CE-EventID"),
+ EventType: in.Get("CE-EventType"),
+ EventTypeVersion: in.Get("CE-EventTypeVersion"),
+ SchemaURL: in.Get("CE-SchemaURL"),
+ ContentType: in.Get("Content-Type"),
+ Source: in.Get("CE-Source"),
+ Extensions: make(map[string]interface{}),
+ }
+ if timeStr := in.Get("CE-EventTime"); timeStr != "" {
+ var err error
+ if data.EventTime, err = time.Parse(time.RFC3339Nano, timeStr); err != nil {
+ return err
+ }
+ }
+ for k, v := range in {
+ if strings.EqualFold(k[:len("CE-X-")], "CE-X-") {
+ key := k[len("CE-X-"):]
+ var tmp interface{}
+ if err := json.Unmarshal([]byte(v[0]), &tmp); err == nil {
+ data.Extensions[key] = tmp
+ } else {
+ // If we can't unmarshal the data, treat it as a string.
+ data.Extensions[key] = v[0]
+ }
+ }
+ }
+ *ec = data
+ return nil
+}
+
+// AsJSON implements the StructuredSender interface.
+func (ec V01EventContext) AsJSON() (map[string]json.RawMessage, error) {
+ ret := make(map[string]json.RawMessage)
+ err := anyError(
+ encodeKey(ret, "cloudEventsVersion", ec.CloudEventsVersion),
+ encodeKey(ret, "eventID", ec.EventID),
+ encodeKey(ret, "eventTime", ec.EventTime),
+ encodeKey(ret, "eventType", ec.EventType),
+ encodeKey(ret, "eventTypeVersion", ec.EventTypeVersion),
+ encodeKey(ret, "schemaURL", ec.SchemaURL),
+ encodeKey(ret, "contentType", ec.ContentType),
+ encodeKey(ret, "source", ec.Source),
+ encodeKey(ret, "extensions", ec.Extensions))
+ return ret, err
+}
+
+// DataContentType implements the StructuredSender interface.
+func (ec V01EventContext) DataContentType() string {
+ return ec.ContentType
+}
+
+// FromJSON implements the StructuredLoader interface.
+func (ec *V01EventContext) FromJSON(in map[string]json.RawMessage) error {
+ data := V01EventContext{
+ CloudEventsVersion: extractKey(in, "cloudEventsVersion"),
+ EventID: extractKey(in, "eventID"),
+ EventType: extractKey(in, "eventType"),
+ Source: extractKey(in, "source"),
+ }
+ var err error
+ if timeStr := extractKey(in, "eventTime"); timeStr != "" {
+ if data.EventTime, err = time.Parse(time.RFC3339Nano, timeStr); err != nil {
+ return err
+ }
+ }
+ extractKeyTo(in, "eventTypeVersion", &data.EventTypeVersion)
+ extractKeyTo(in, "schemaURL", &data.SchemaURL)
+ extractKeyTo(in, "contentType", &data.ContentType)
+ if len(in["extensions"]) == 0 {
+ in["extensions"] = []byte("{}")
+ }
+ if err = json.Unmarshal(in["extensions"], &data.Extensions); err != nil {
+ return err
+ }
+ *ec = data
+ return nil
+}
+
+func encodeKey(out map[string]json.RawMessage, key string, value interface{}) (err error) {
+ if s, ok := value.(string); ok && s == "" {
+ // Skip empty strings.
+ return nil
+ }
+ out[key], err = json.Marshal(value)
+ return
+}
+
+func extractKey(in map[string]json.RawMessage, key string) (s string) {
+ extractKeyTo(in, key, &s)
+ return
+}
+
+func extractKeyTo(in map[string]json.RawMessage, key string, out *string) error {
+ tmp := in[key]
+ delete(in, key)
+ return json.Unmarshal(tmp, out)
+}
diff --git a/vendor/github.com/knative/pkg/cloudevents/event_v02.go b/vendor/github.com/knative/pkg/cloudevents/event_v02.go
new file mode 100644
index 0000000000..dc64767cc5
--- /dev/null
+++ b/vendor/github.com/knative/pkg/cloudevents/event_v02.go
@@ -0,0 +1,261 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package cloudevents
+
+import (
+ "encoding/json"
+ "fmt"
+ "net/http"
+ "strings"
+ "time"
+)
+
+const (
+ // V02CloudEventsVersion is the version of the CloudEvents spec targeted
+ // by this library.
+ V02CloudEventsVersion = "0.2"
+
+ // required attributes
+ fieldSpecVersion = "specversion"
+ fieldID = "id"
+ fieldType = "type"
+ fieldSource = "source"
+ fieldTime = "time"
+ fieldSchemaURL = "schemaurl"
+ fieldContentType = "contenttype"
+ headerContentType = "Content-Type"
+)
+
+// V02EventContext represents the non-data attributes of a CloudEvents v0.2
+// event.
+type V02EventContext struct {
+ // The version of the CloudEvents specification used by the event.
+ SpecVersion string `json:"specversion"`
+ // The type of the occurrence which has happened.
+ Type string `json:"type"`
+ // A URI describing the event producer.
+ Source string `json:"source"`
+ // ID of the event; must be non-empty and unique within the scope of the producer.
+ ID string `json:"id"`
+ // Timestamp when the event happened.
+ Time time.Time `json:"time,omitempty"`
+ // A link to the schema that the `data` attribute adheres to.
+ SchemaURL string `json:"schemaurl,omitempty"`
+ // A MIME (RFC2046) string describing the media type of `data`.
+ // TODO: Should an empty string assume `application/json`, `application/octet-stream`, or auto-detect the content?
+ ContentType string `json:"contenttype,omitempty"`
+ // Additional extension metadata beyond the base spec.
+ Extensions map[string]interface{} `json:"-,omitempty"`
+}
+
+// AsV01 implements the ContextTranslator interface.
+func (ec V02EventContext) AsV01() V01EventContext {
+ ret := V01EventContext{
+ CloudEventsVersion: V01CloudEventsVersion,
+ EventID: ec.ID,
+ EventTime: ec.Time,
+ EventType: ec.Type,
+ SchemaURL: ec.SchemaURL,
+ ContentType: ec.ContentType,
+ Source: ec.Source,
+ Extensions: make(map[string]interface{}),
+ }
+ for k, v := range ec.Extensions {
+ // eventTypeVersion was retired in v0.2
+ if strings.EqualFold(k, "eventTypeVersion") {
+ etv, ok := v.(string)
+ if ok {
+ ret.EventTypeVersion = etv
+ }
+ continue
+ }
+ ret.Extensions[k] = v
+ }
+ return ret
+}
+
+// AsV02 implements the ContextTranslator interface.
+func (ec V02EventContext) AsV02() V02EventContext {
+ return ec
+}
+
+// AsHeaders implements the BinarySender interface.
+func (ec V02EventContext) AsHeaders() (http.Header, error) {
+ h := http.Header{}
+ h.Set("CE-"+fieldSpecVersion, ec.SpecVersion)
+ h.Set("CE-"+fieldType, ec.Type)
+ h.Set("CE-"+fieldSource, ec.Source)
+ h.Set("CE-"+fieldID, ec.ID)
+ if ec.SpecVersion == "" {
+ h.Set("CE-"+fieldSpecVersion, V02CloudEventsVersion)
+ }
+ if !ec.Time.IsZero() {
+ h.Set("CE-"+fieldTime, ec.Time.Format(time.RFC3339Nano))
+ }
+ if ec.SchemaURL != "" {
+ h.Set("CE-"+fieldSchemaURL, ec.SchemaURL)
+ }
+ if ec.ContentType != "" {
+ h.Set(headerContentType, ec.ContentType)
+ }
+ for k, v := range ec.Extensions {
+ // Per spec, map-valued extensions are converted to a list of headers as:
+ // CE-attrib-key
+ if mapVal, ok := v.(map[string]interface{}); ok {
+ for subkey, subval := range mapVal {
+ encoded, err := json.Marshal(subval)
+ if err != nil {
+ return nil, err
+ }
+ h.Set("CE-"+k+"-"+subkey, string(encoded))
+ }
+ continue
+ }
+ encoded, err := json.Marshal(v)
+ if err != nil {
+ return nil, err
+ }
+ h.Set("CE-"+k, string(encoded))
+ }
+
+ return h, nil
+}
+
+// FromHeaders implements the BinaryLoader interface.
+func (ec *V02EventContext) FromHeaders(in http.Header) error {
+ missingField := func(name string) error {
+ if in.Get("CE-"+name) == "" {
+ return fmt.Errorf("Missing field %q in %v: %q", "CE-"+name, in, in.Get("CE-"+name))
+ }
+ return nil
+ }
+ err := anyError(
+ missingField(fieldSpecVersion),
+ missingField(fieldID),
+ missingField(fieldType),
+ missingField(fieldSource),
+ )
+ if err != nil {
+ return err
+ }
+ data := V02EventContext{
+ ContentType: in.Get(headerContentType),
+ Extensions: make(map[string]interface{}),
+ }
+ // Extensions and top-level fields are mixed under "CE-" headers.
+ // Extract them all here rather than trying to clear fields in headers.
+ for k, v := range in {
+ if strings.EqualFold(k[:len("CE-")], "CE-") {
+ key, value := strings.ToLower(string(k[len("CE-"):])), v[0]
+ switch key {
+ case fieldSpecVersion:
+ data.SpecVersion = value
+ case fieldType:
+ data.Type = value
+ case fieldSource:
+ data.Source = value
+ case fieldID:
+ data.ID = value
+ case fieldSchemaURL:
+ data.SchemaURL = value
+ case fieldTime:
+ if data.Time, err = time.Parse(time.RFC3339Nano, value); err != nil {
+ return err
+ }
+ default:
+ var tmp interface{}
+ if err = json.Unmarshal([]byte(value), &tmp); err != nil {
+ tmp = value
+ }
+ // Per spec, map-valued extensions are converted to a list of headers as:
+ // CE-attrib-key. This is where things get a bit crazy... see
+ // https://github.com/cloudevents/spec/issues/367 for additional notes.
+ if strings.Contains(key, "-") {
+ items := strings.SplitN(key, "-", 2)
+ key, subkey := items[0], items[1]
+ if _, ok := data.Extensions[key]; !ok {
+ data.Extensions[key] = make(map[string]interface{})
+ }
+ if submap, ok := data.Extensions[key].(map[string]interface{}); ok {
+ submap[subkey] = tmp
+ }
+ } else {
+ data.Extensions[key] = tmp
+ }
+ }
+ }
+ }
+ *ec = data
+ return nil
+}
+
+// AsJSON implementsn the StructuredSender interface.
+func (ec V02EventContext) AsJSON() (map[string]json.RawMessage, error) {
+ ret := make(map[string]json.RawMessage)
+ err := anyError(
+ encodeKey(ret, fieldSpecVersion, ec.SpecVersion),
+ encodeKey(ret, fieldType, ec.Type),
+ encodeKey(ret, fieldSource, ec.Source),
+ encodeKey(ret, fieldID, ec.ID),
+ encodeKey(ret, fieldTime, ec.Time),
+ encodeKey(ret, fieldSchemaURL, ec.SchemaURL),
+ encodeKey(ret, fieldContentType, ec.ContentType),
+ )
+ if err != nil {
+ return nil, err
+ }
+ for k, v := range ec.Extensions {
+ if err = encodeKey(ret, k, v); err != nil {
+ return nil, err
+ }
+ }
+ return ret, nil
+}
+
+// DataContentType implements the StructuredSender interface.
+func (ec V02EventContext) DataContentType() string {
+ return ec.ContentType
+}
+
+// FromJSON implements the StructuredLoader interface.
+func (ec *V02EventContext) FromJSON(in map[string]json.RawMessage) error {
+ data := V02EventContext{
+ SpecVersion: extractKey(in, fieldSpecVersion),
+ Type: extractKey(in, fieldType),
+ Source: extractKey(in, fieldSource),
+ ID: extractKey(in, fieldID),
+ Extensions: make(map[string]interface{}),
+ }
+ var err error
+ if timeStr := extractKey(in, fieldTime); timeStr != "" {
+ if data.Time, err = time.Parse(time.RFC3339Nano, timeStr); err != nil {
+ return err
+ }
+ }
+ extractKeyTo(in, fieldSchemaURL, &data.SchemaURL)
+ extractKeyTo(in, fieldContentType, &data.ContentType)
+ // Extract the remaining items from in by converting to JSON and then
+ // unpacking into Extensions. This avoids having to do funny type
+ // checking/testing in the loop over values.
+ extensionsJSON, err := json.Marshal(in)
+ if err != nil {
+ return err
+ }
+ err = json.Unmarshal(extensionsJSON, &data.Extensions)
+ *ec = data
+ return err
+}
diff --git a/vendor/github.com/knative/pkg/cloudevents/handler.go b/vendor/github.com/knative/pkg/cloudevents/handler.go
index 628d073f24..3b8575a1cf 100644
--- a/vendor/github.com/knative/pkg/cloudevents/handler.go
+++ b/vendor/github.com/knative/pkg/cloudevents/handler.go
@@ -19,6 +19,7 @@ package cloudevents
import (
"context"
"encoding/json"
+ "errors"
"fmt"
"io"
"log"
@@ -47,7 +48,7 @@ type errAndHandler interface {
const (
inParamUsage = "Expected a function taking either no parameters, a context.Context, or (context.Context, any)"
- outParamUsage = "Expected a function returning either nothing, an error, (any, error), or (any, EventContext, error)"
+ outParamUsage = "Expected a function returning either nothing, an error, (any, error), or (any, SendContext, error)"
)
var (
@@ -59,9 +60,9 @@ var (
// it leaves this stack frame. The workaround is to pass a pointer to an interface and then
// get the type of its reference.
// For example, see: https://play.golang.org/p/_dxLvdkvqvg
- contextType = reflect.TypeOf((*context.Context)(nil)).Elem()
- errorType = reflect.TypeOf((*error)(nil)).Elem()
- eventContextType = reflect.TypeOf((*EventContext)(nil)).Elem()
+ contextType = reflect.TypeOf((*context.Context)(nil)).Elem()
+ errorType = reflect.TypeOf((*error)(nil)).Elem()
+ sendContextType = reflect.TypeOf((*SendContext)(nil)).Elem()
)
// Verifies that the inputs to a function have a valid signature; panics otherwise.
@@ -90,8 +91,8 @@ func validateOutParamSignature(fnType reflect.Type) error {
switch fnType.NumOut() {
case 3:
contextType := fnType.Out(1)
- if !contextType.ConvertibleTo(eventContextType) {
- return fmt.Errorf("%s; cannot convert return type 1 from %s to EventContext", outParamUsage, contextType)
+ if !contextType.ConvertibleTo(sendContextType) {
+ return fmt.Errorf("%s; cannot convert return type 1 from %s to SendContext", outParamUsage, contextType)
}
fallthrough
case 2:
@@ -114,7 +115,7 @@ func validateOutParamSignature(fnType reflect.Type) error {
// of allowed types. If successful, returns the expected in-param type, otherwise panics.
func validateFunction(fnType reflect.Type) errAndHandler {
if fnType.Kind() != reflect.Func {
- return &failedHandler{err: fmt.Errorf("Must pass a function to handle events")}
+ return &failedHandler{err: errors.New("must pass a function to handle events")}
}
err := anyError(
validateInParamSignature(fnType),
@@ -144,7 +145,7 @@ func allocate(t reflect.Type) (asPtr interface{}, asValue reflect.Value) {
return
}
-func unwrapReturnValues(res []reflect.Value) (interface{}, *EventContext, error) {
+func unwrapReturnValues(res []reflect.Value) (interface{}, SendContext, error) {
switch len(res) {
case 0:
return nil, nil, nil
@@ -162,8 +163,8 @@ func unwrapReturnValues(res []reflect.Value) (interface{}, *EventContext, error)
return nil, nil, res[1].Interface().(error)
case 3:
if res[2].IsNil() {
- ec := res[1].Interface().(EventContext)
- return res[0].Interface(), &ec, nil
+ ec := res[1].Interface().(SendContext)
+ return res[0].Interface(), ec, nil
}
return nil, nil, res[2].Interface().(error)
default:
@@ -191,7 +192,7 @@ func respondHTTP(outparams []reflect.Value, fn reflect.Value, w http.ResponseWri
if eventType == "" {
eventType = "dev.knative.pkg.cloudevents.unknown"
}
- ec = &EventContext{
+ ec = &V01EventContext{
EventID: uuid.New().String(),
EventType: eventType,
Source: "unknown", // TODO: anything useful here, maybe incoming Host header?
@@ -206,13 +207,17 @@ func respondHTTP(outparams []reflect.Value, fn reflect.Value, w http.ResponseWri
w.Write([]byte(`Internal server error`))
return
}
- err = Binary.ToHeaders(ec, w.Header())
+ headers, err := ec.AsHeaders()
if err != nil {
- log.Printf("Failed to marshal headers for response: %+v: %s", ec, err)
+ log.Printf("Failed to marshal event context %+v: %s", res, err)
w.WriteHeader(http.StatusInternalServerError)
- w.Write([]byte(`Internal server error`))
+ w.Write([]byte("Internal server error"))
return
}
+ for k, v := range headers {
+ w.Header()[k] = v
+ }
+
w.Write(json)
return
}
@@ -364,11 +369,13 @@ func (m Mux) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
- h := m[eventContext.EventType]
+ c := eventContext.AsV01()
+
+ h := m[c.EventType]
if h == nil {
- log.Print("Cloud not find handler for event type", eventContext.EventType)
+ log.Print("Cloud not find handler for event type", c.EventType)
w.WriteHeader(http.StatusInternalServerError)
- w.Write([]byte(fmt.Sprintf("Event type %q is not supported", eventContext.EventType)))
+ w.Write([]byte(fmt.Sprintf("Event type %q is not supported", c.EventType)))
return
}
@@ -380,7 +387,7 @@ func (m Mux) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
if h.numIn == 2 {
dataPtr, dataArg := allocate(h.dataType)
- if err := unmarshalEventData(eventContext.ContentType, rawData, dataPtr); err != nil {
+ if err := unmarshalEventData(c.ContentType, rawData, dataPtr); err != nil {
log.Print("Failed to parse event data", err)
w.WriteHeader(http.StatusBadRequest)
w.Write([]byte(`Invalid request`))
diff --git a/vendor/github.com/knative/pkg/controller/controller.go b/vendor/github.com/knative/pkg/controller/controller.go
index 820744b071..858896cfda 100644
--- a/vendor/github.com/knative/pkg/controller/controller.go
+++ b/vendor/github.com/knative/pkg/controller/controller.go
@@ -19,6 +19,7 @@ package controller
import (
"context"
"fmt"
+ "sync"
"time"
"go.uber.org/zap"
@@ -200,7 +201,7 @@ func (c *Impl) EnqueueLabelOfClusterScopedResource(nameLabel string) func(obj in
// EnqueueKey takes a namespace/name string and puts it onto the work queue.
func (c *Impl) EnqueueKey(key string) {
- c.WorkQueue.AddRateLimited(key)
+ c.WorkQueue.Add(key)
}
// Run starts the controller's worker threads, the number of which is threadiness.
@@ -208,13 +209,17 @@ func (c *Impl) EnqueueKey(key string) {
// work queue and waits for workers to finish processing their current work items.
func (c *Impl) Run(threadiness int, stopCh <-chan struct{}) error {
defer runtime.HandleCrash()
+ sg := sync.WaitGroup{}
+ defer sg.Wait()
defer c.WorkQueue.ShutDown()
// Launch workers to process resources that get enqueued to our workqueue.
logger := c.logger
logger.Info("Starting controller and workers")
for i := 0; i < threadiness; i++ {
+ sg.Add(1)
go func() {
+ defer sg.Done()
for c.processNextWorkItem() {
}
}()
diff --git a/vendor/github.com/knative/pkg/kmp/diff.go b/vendor/github.com/knative/pkg/kmp/diff.go
index bae3df79e3..ef9bae39e5 100644
--- a/vendor/github.com/knative/pkg/kmp/diff.go
+++ b/vendor/github.com/knative/pkg/kmp/diff.go
@@ -49,3 +49,17 @@ func SafeDiff(x, y interface{}, opts ...cmp.Option) (diff string, err error) {
return
}
+
+func SafeEqual(x, y interface{}, opts ...cmp.Option) (equal bool, err error) {
+ // cmp.Equal will panic if we miss something; return error instead of crashing.
+ defer func() {
+ if r := recover(); r != nil {
+ err = fmt.Errorf("recovered in kmp.SafeEqual: %v", r)
+ }
+ }()
+
+ opts = append(opts, defaultOpts...)
+ equal = cmp.Equal(x, y, opts...)
+
+ return
+}
diff --git a/vendor/github.com/knative/pkg/logging/config.go b/vendor/github.com/knative/pkg/logging/config.go
index c03c193148..ad6d616f02 100644
--- a/vendor/github.com/knative/pkg/logging/config.go
+++ b/vendor/github.com/knative/pkg/logging/config.go
@@ -105,23 +105,48 @@ type Config struct {
LoggingLevel map[string]zapcore.Level
}
+const defaultZLC = `{
+ "level": "info",
+ "development": false,
+ "outputPaths": ["stdout"],
+ "errorOutputPaths": ["stderr"],
+ "encoding": "json",
+ "encoderConfig": {
+ "timeKey": "ts",
+ "levelKey": "level",
+ "nameKey": "logger",
+ "callerKey": "caller",
+ "messageKey": "msg",
+ "stacktraceKey": "stacktrace",
+ "lineEnding": "",
+ "levelEncoder": "",
+ "timeEncoder": "iso8601",
+ "durationEncoder": "",
+ "callerEncoder": ""
+ }
+}`
+
// NewConfigFromMap creates a LoggingConfig from the supplied map,
// expecting the given list of components.
func NewConfigFromMap(data map[string]string, components ...string) (*Config, error) {
lc := &Config{}
if zlc, ok := data["zap-logger-config"]; ok {
lc.LoggingConfig = zlc
+ } else {
+ lc.LoggingConfig = defaultZLC
}
+
lc.LoggingLevel = make(map[string]zapcore.Level)
for _, component := range components {
- if ll, ok := data["loglevel."+component]; ok {
- if len(ll) > 0 {
- level, err := levelFromString(ll)
- if err != nil {
- return nil, err
- }
- lc.LoggingLevel[component] = *level
+ if ll := data["loglevel."+component]; len(ll) > 0 {
+ level, err := levelFromString(ll)
+ if err != nil {
+ return nil, err
}
+ lc.LoggingLevel[component] = *level
+ } else {
+ // We default components to INFO
+ lc.LoggingLevel[component] = zapcore.InfoLevel
}
}
return lc, nil
diff --git a/vendor/github.com/knative/pkg/logging/testing/util.go b/vendor/github.com/knative/pkg/logging/testing/util.go
index b3b3879e94..05179648fb 100644
--- a/vendor/github.com/knative/pkg/logging/testing/util.go
+++ b/vendor/github.com/knative/pkg/logging/testing/util.go
@@ -54,6 +54,14 @@ func TestLogger(t *testing.T) *zap.SugaredLogger {
return logger
}
+// ClearAll removes all the testing loggers.
+// `go test -count=X` executes runs in the same process, thus the map
+// persists between the runs, but the `t` will no longer be valid and will
+// cause a panic deep inside testing code.
+func ClearAll() {
+ loggers = make(map[string]*zap.SugaredLogger)
+}
+
// TestContextWithLogger returns a context with a logger to be used in tests
func TestContextWithLogger(t *testing.T) context.Context {
return logging.WithLogger(context.TODO(), TestLogger(t))
diff --git a/vendor/github.com/knative/pkg/metrics/config.go b/vendor/github.com/knative/pkg/metrics/config.go
index 562f826add..a7bd0460d1 100644
--- a/vendor/github.com/knative/pkg/metrics/config.go
+++ b/vendor/github.com/knative/pkg/metrics/config.go
@@ -19,6 +19,7 @@ package metrics
import (
"errors"
"fmt"
+ "os"
"strconv"
"strings"
"time"
@@ -41,6 +42,8 @@ const (
Stackdriver metricsBackend = "stackdriver"
// Prometheus is used for Prometheus backend
Prometheus metricsBackend = "prometheus"
+
+ defaultBackendEnvName = "DEFAULT_METRICS_BACKEND"
)
type metricsConfig struct {
@@ -60,9 +63,15 @@ type metricsConfig struct {
func getMetricsConfig(m map[string]string, domain string, component string, logger *zap.SugaredLogger) (*metricsConfig, error) {
var mc metricsConfig
- backend, ok := m[backendDestinationKey]
- if !ok {
- return nil, errors.New("metrics.backend-destination key is missing")
+ // Read backend setting from environment variable first
+ backend := os.Getenv(defaultBackendEnvName)
+ if backend == "" {
+ // Use Prometheus if DEFAULT_METRICS_BACKEND does not exist or is empty
+ backend = string(Prometheus)
+ }
+ // Override backend if it is setting in config map.
+ if backendFromConfig, ok := m[backendDestinationKey]; ok {
+ backend = backendFromConfig
}
lb := metricsBackend(strings.ToLower(backend))
switch lb {
@@ -116,14 +125,13 @@ func UpdateExporterFromConfigMap(domain string, component string, logger *zap.Su
return func(configMap *corev1.ConfigMap) {
newConfig, err := getMetricsConfig(configMap.Data, domain, component, logger)
if err != nil {
- ce := getCurMetricsExporter()
- if ce == nil {
+ if ce := getCurMetricsExporter(); ce == nil {
// Fail the process if there doesn't exist an exporter.
- logger.Fatal("Failed to get a valid metrics config")
+ logger.Error("Failed to get a valid metrics config", zap.Error(err))
} else {
logger.Error("Failed to get a valid metrics config; Skip updating the metrics exporter", zap.Error(err))
- return
}
+ return
}
if isMetricsConfigChanged(newConfig) {
diff --git a/vendor/github.com/knative/pkg/metrics/exporter.go b/vendor/github.com/knative/pkg/metrics/exporter.go
index f745e7ca7a..847c48d30e 100644
--- a/vendor/github.com/knative/pkg/metrics/exporter.go
+++ b/vendor/github.com/knative/pkg/metrics/exporter.go
@@ -1,12 +1,9 @@
/*
Copyright 2018 The Knative Authors
-
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
-
http://www.apache.org/licenses/LICENSE-2.0
-
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,20 +15,15 @@ package metrics
import (
"fmt"
- "net/http"
"sync"
- "contrib.go.opencensus.io/exporter/stackdriver"
- "go.opencensus.io/exporter/prometheus"
"go.opencensus.io/stats/view"
"go.uber.org/zap"
- monitoredrespb "google.golang.org/genproto/googleapis/api/monitoredres"
)
var (
curMetricsExporter view.Exporter
curMetricsConfig *metricsConfig
- curPromSrv *http.Server
metricsMux sync.Mutex
)
@@ -64,68 +56,6 @@ func newMetricsExporter(config *metricsConfig, logger *zap.SugaredLogger) error
return nil
}
-func newStackdriverExporter(config *metricsConfig, logger *zap.SugaredLogger) (view.Exporter, error) {
- e, err := stackdriver.NewExporter(stackdriver.Options{
- ProjectID: config.stackdriverProjectID,
- MetricPrefix: config.domain + "/" + config.component,
- Resource: &monitoredrespb.MonitoredResource{
- Type: "global",
- },
- DefaultMonitoringLabels: &stackdriver.Labels{},
- })
- if err != nil {
- logger.Error("Failed to create the Stackdriver exporter.", zap.Error(err))
- return nil, err
- }
- logger.Infof("Created Opencensus Stackdriver exporter with config %v", config)
- return e, nil
-}
-
-func newPrometheusExporter(config *metricsConfig, logger *zap.SugaredLogger) (view.Exporter, error) {
- e, err := prometheus.NewExporter(prometheus.Options{Namespace: config.component})
- if err != nil {
- logger.Error("Failed to create the Prometheus exporter.", zap.Error(err))
- return nil, err
- }
- logger.Infof("Created Opencensus Prometheus exporter with config: %v. Start the server for Prometheus exporter.", config)
- // Start the server for Prometheus scraping
- go func() {
- srv := startNewPromSrv(e)
- srv.ListenAndServe()
- }()
- return e, nil
-}
-
-func getCurPromSrv() *http.Server {
- metricsMux.Lock()
- defer metricsMux.Unlock()
- return curPromSrv
-}
-
-func resetCurPromSrv() {
- metricsMux.Lock()
- defer metricsMux.Unlock()
- if curPromSrv != nil {
- curPromSrv.Close()
- curPromSrv = nil
- }
-}
-
-func startNewPromSrv(e *prometheus.Exporter) *http.Server {
- sm := http.NewServeMux()
- sm.Handle("/metrics", e)
- metricsMux.Lock()
- defer metricsMux.Unlock()
- if curPromSrv != nil {
- curPromSrv.Close()
- }
- curPromSrv = &http.Server{
- Addr: ":9090",
- Handler: sm,
- }
- return curPromSrv
-}
-
func getCurMetricsExporter() view.Exporter {
metricsMux.Lock()
defer metricsMux.Unlock()
diff --git a/vendor/github.com/knative/pkg/metrics/gcp_metadata.go b/vendor/github.com/knative/pkg/metrics/gcp_metadata.go
new file mode 100644
index 0000000000..ed64fb7336
--- /dev/null
+++ b/vendor/github.com/knative/pkg/metrics/gcp_metadata.go
@@ -0,0 +1,40 @@
+/*
+Copyright 2019 The Knative Authors
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package metrics
+
+import (
+ "cloud.google.com/go/compute/metadata"
+ "github.com/knative/pkg/metrics/metricskey"
+)
+
+func retrieveGCPMetadata() *gcpMetadata {
+ gm := gcpMetadata{
+ project: metricskey.ValueUnknown,
+ location: metricskey.ValueUnknown,
+ cluster: metricskey.ValueUnknown,
+ }
+ project, err := metadata.NumericProjectID()
+ if err == nil && project != "" {
+ gm.project = project
+ }
+ location, err := metadata.Zone()
+ if err == nil && location != "" {
+ gm.location = location
+ }
+ cluster, err := metadata.InstanceAttributeValue("cluster-name")
+ if err == nil && cluster != "" {
+ gm.cluster = cluster
+ }
+ return &gm
+}
diff --git a/vendor/github.com/knative/pkg/metrics/metricskey/constants.go b/vendor/github.com/knative/pkg/metrics/metricskey/constants.go
index 2e5e0f8767..e6f64633aa 100644
--- a/vendor/github.com/knative/pkg/metrics/metricskey/constants.go
+++ b/vendor/github.com/knative/pkg/metrics/metricskey/constants.go
@@ -13,12 +13,14 @@ limitations under the License.
package metricskey
+import "k8s.io/apimachinery/pkg/util/sets"
+
const (
// ResourceTypeKnativeRevision is the Stackdriver resource type for Knative revision
ResourceTypeKnativeRevision = "knative_revision"
// LabelProject is the label for project (e.g. GCP GAIA ID, AWS project name)
- LabelProject = "project"
+ LabelProject = "project_id"
// LabelLocation is the label for location (e.g. GCE zone, AWS region) where the service is deployed
LabelLocation = "location"
@@ -32,6 +34,9 @@ const (
// LabelServiceName is the label for the deployed service name
LabelServiceName = "service_name"
+ // LabelRouteName is the label for immutable name of the route that receives the request
+ LabelRouteName = "route_name"
+
// LabelConfigurationName is the label for the configuration which created the monitored revision
LabelConfigurationName = "configuration_name"
@@ -44,19 +49,28 @@ const (
)
var (
- // KnativeRevisionLabels stores the set of resource labels for resource type knative_revision
- KnativeRevisionLabels = map[string]struct{}{
- LabelProject: {},
- LabelLocation: {},
- LabelClusterName: {},
- LabelNamespaceName: {},
- LabelServiceName: {},
- LabelConfigurationName: {},
- LabelRevisionName: {},
- }
-
- // ResourceTypeToLabelsMap maps resource type to the set of resource labels
- ResourceTypeToLabelsMap = map[string]map[string]struct{}{
- ResourceTypeKnativeRevision: KnativeRevisionLabels,
- }
+ // KnativeRevisionLabels stores the set of resource labels for resource type knative_revision.
+ // LabelRouteName is added as extra label since it is optional, not in this map.
+ KnativeRevisionLabels = sets.NewString(
+ LabelProject,
+ LabelLocation,
+ LabelClusterName,
+ LabelNamespaceName,
+ LabelServiceName,
+ LabelConfigurationName,
+ LabelRevisionName,
+ )
+
+ // KnativeRevisionMetrics stores a set of metric types which are supported
+ // by resource type knative_revision.
+ KnativeRevisionMetrics = sets.NewString(
+ "knative.dev/serving/activator/request_count",
+ "knative.dev/serving/activator/request_latencies",
+ "knative.dev/serving/autoscaler/desired_pods",
+ "knative.dev/serving/autoscaler/requested_pods",
+ "knative.dev/serving/autoscaler/actual_pods",
+ "knative.dev/serving/autoscaler/stable_request_concurrency",
+ "knative.dev/serving/autoscaler/panic_request_concurrency",
+ "knative.dev/serving/autoscaler/target_concurrency_per_pod",
+ )
)
diff --git a/vendor/github.com/knative/pkg/metrics/monitored_resources.go b/vendor/github.com/knative/pkg/metrics/monitored_resources.go
new file mode 100644
index 0000000000..295fb778f3
--- /dev/null
+++ b/vendor/github.com/knative/pkg/metrics/monitored_resources.go
@@ -0,0 +1,53 @@
+/*
+Copyright 2018 The Knative Authors
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package metrics
+
+import (
+ "github.com/knative/pkg/metrics/metricskey"
+)
+
+type gcpMetadata struct {
+ project string
+ location string
+ cluster string
+}
+
+type KnativeRevision struct {
+ Project string
+ Location string
+ ClusterName string
+ NamespaceName string
+ ServiceName string
+ ConfigurationName string
+ RevisionName string
+}
+
+func (kr *KnativeRevision) MonitoredResource() (resType string, labels map[string]string) {
+ labels = map[string]string{
+ metricskey.LabelProject: kr.Project,
+ metricskey.LabelLocation: kr.Location,
+ metricskey.LabelClusterName: kr.ClusterName,
+ metricskey.LabelNamespaceName: kr.NamespaceName,
+ metricskey.LabelServiceName: kr.ServiceName,
+ metricskey.LabelConfigurationName: kr.ConfigurationName,
+ metricskey.LabelRevisionName: kr.RevisionName,
+ }
+ return "knative_revision", labels
+}
+
+type Global struct{}
+
+func (g *Global) MonitoredResource() (resType string, labels map[string]string) {
+ return "global", nil
+}
diff --git a/vendor/github.com/knative/pkg/metrics/prometheus_exporter.go b/vendor/github.com/knative/pkg/metrics/prometheus_exporter.go
new file mode 100644
index 0000000000..c49664c6f4
--- /dev/null
+++ b/vendor/github.com/knative/pkg/metrics/prometheus_exporter.go
@@ -0,0 +1,73 @@
+/*
+Copyright 2019 The Knative Authors
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package metrics
+
+import (
+ "net/http"
+ "sync"
+
+ "go.opencensus.io/exporter/prometheus"
+ "go.opencensus.io/stats/view"
+ "go.uber.org/zap"
+)
+
+var (
+ curPromSrv *http.Server
+ curPromSrvMux sync.Mutex
+)
+
+func newPrometheusExporter(config *metricsConfig, logger *zap.SugaredLogger) (view.Exporter, error) {
+ e, err := prometheus.NewExporter(prometheus.Options{Namespace: config.component})
+ if err != nil {
+ logger.Error("Failed to create the Prometheus exporter.", zap.Error(err))
+ return nil, err
+ }
+ logger.Infof("Created Opencensus Prometheus exporter with config: %v. Start the server for Prometheus exporter.", config)
+ // Start the server for Prometheus scraping
+ go func() {
+ srv := startNewPromSrv(e)
+ srv.ListenAndServe()
+ }()
+ return e, nil
+}
+
+func getCurPromSrv() *http.Server {
+ curPromSrvMux.Lock()
+ defer curPromSrvMux.Unlock()
+ return curPromSrv
+}
+
+func resetCurPromSrv() {
+ curPromSrvMux.Lock()
+ defer curPromSrvMux.Unlock()
+ if curPromSrv != nil {
+ curPromSrv.Close()
+ curPromSrv = nil
+ }
+}
+
+func startNewPromSrv(e *prometheus.Exporter) *http.Server {
+ sm := http.NewServeMux()
+ sm.Handle("/metrics", e)
+ curPromSrvMux.Lock()
+ defer curPromSrvMux.Unlock()
+ if curPromSrv != nil {
+ curPromSrv.Close()
+ }
+ curPromSrv = &http.Server{
+ Addr: ":9090",
+ Handler: sm,
+ }
+ return curPromSrv
+}
diff --git a/vendor/github.com/knative/pkg/metrics/stackdriver_exporter.go b/vendor/github.com/knative/pkg/metrics/stackdriver_exporter.go
new file mode 100644
index 0000000000..15a44e31e9
--- /dev/null
+++ b/vendor/github.com/knative/pkg/metrics/stackdriver_exporter.go
@@ -0,0 +1,128 @@
+/*
+Copyright 2019 The Knative Authors
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package metrics
+
+import (
+ "path"
+
+ "contrib.go.opencensus.io/exporter/stackdriver"
+ "contrib.go.opencensus.io/exporter/stackdriver/monitoredresource"
+ "github.com/knative/pkg/metrics/metricskey"
+ "go.opencensus.io/stats/view"
+ "go.opencensus.io/tag"
+ "go.uber.org/zap"
+)
+
+// customMetricTypeDomain is the metric type prefix for unsupported metrics by
+// resource type knative_revision.
+// See: https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors#MetricDescriptor
+const customMetricTypeDomain = "custom.googleapis.com/knative.dev"
+
+var (
+ // gcpMetadataFunc is the function used to fetch GCP metadata.
+ // In product usage, this is always set to function retrieveGCPMetadata.
+ // In unit tests this is set to a fake one to avoid calling GCP metadata
+ // service.
+ gcpMetadataFunc func() *gcpMetadata
+)
+
+func init() {
+ // Set gcpMetadataFunc to call GCP metadata service.
+ gcpMetadataFunc = retrieveGCPMetadata
+}
+
+func newStackdriverExporter(config *metricsConfig, logger *zap.SugaredLogger) (view.Exporter, error) {
+ gm := gcpMetadataFunc()
+ mtf := getMetricTypeFunc(config.domain, config.component)
+ e, err := stackdriver.NewExporter(stackdriver.Options{
+ ProjectID: config.stackdriverProjectID,
+ GetMetricDisplayName: mtf, // Use metric type for display name for custom metrics. No impact on built-in metrics.
+ GetMetricType: mtf,
+ GetMonitoredResource: getMonitoredResourceFunc(config.domain, config.component, gm),
+ DefaultMonitoringLabels: &stackdriver.Labels{},
+ })
+ if err != nil {
+ logger.Error("Failed to create the Stackdriver exporter: ", zap.Error(err))
+ return nil, err
+ }
+ logger.Infof("Created Opencensus Stackdriver exporter with config %v", config)
+ return e, nil
+}
+
+func getMonitoredResourceFunc(domain, component string, gm *gcpMetadata) func(v *view.View, tags []tag.Tag) ([]tag.Tag, monitoredresource.Interface) {
+ return func(view *view.View, tags []tag.Tag) ([]tag.Tag, monitoredresource.Interface) {
+ metricType := path.Join(domain, component, view.Measure.Name())
+ if metricskey.KnativeRevisionMetrics.Has(metricType) {
+ return getKnativeRevisionMonitoredResource(view, tags, gm)
+ }
+ // Unsupported metric by knative_revision, use "global" resource type.
+ return getGlobalMonitoredResource(view, tags)
+ }
+}
+
+func getKnativeRevisionMonitoredResource(
+ v *view.View, tags []tag.Tag, gm *gcpMetadata) ([]tag.Tag, monitoredresource.Interface) {
+ tagsMap := getTagsMap(tags)
+ kr := &KnativeRevision{
+ // The first three resource labels are from metadata.
+ Project: gm.project,
+ Location: gm.location,
+ ClusterName: gm.cluster,
+ // The rest resource labels are from metrics labels.
+ NamespaceName: valueOrUnknown(metricskey.LabelNamespaceName, tagsMap),
+ ServiceName: valueOrUnknown(metricskey.LabelServiceName, tagsMap),
+ ConfigurationName: valueOrUnknown(metricskey.LabelConfigurationName, tagsMap),
+ RevisionName: valueOrUnknown(metricskey.LabelRevisionName, tagsMap),
+ }
+
+ var newTags []tag.Tag
+ for _, t := range tags {
+ // Keep the metrics labels that are not resource labels
+ if !metricskey.KnativeRevisionLabels.Has(t.Key.Name()) {
+ newTags = append(newTags, t)
+ }
+ }
+
+ return newTags, kr
+}
+
+func getTagsMap(tags []tag.Tag) map[string]string {
+ tagsMap := map[string]string{}
+ for _, t := range tags {
+ tagsMap[t.Key.Name()] = t.Value
+ }
+ return tagsMap
+}
+
+func valueOrUnknown(key string, tagsMap map[string]string) string {
+ if value, ok := tagsMap[key]; ok {
+ return value
+ }
+ return metricskey.ValueUnknown
+}
+
+func getGlobalMonitoredResource(v *view.View, tags []tag.Tag) ([]tag.Tag, monitoredresource.Interface) {
+ return tags, &Global{}
+}
+
+func getMetricTypeFunc(domain, component string) func(view *view.View) string {
+ return func(view *view.View) string {
+ metricType := path.Join(domain, component, view.Measure.Name())
+ if metricskey.KnativeRevisionMetrics.Has(metricType) {
+ return metricType
+ }
+ // Unsupported metric by knative_revision, use custom domain.
+ return path.Join(customMetricTypeDomain, component, view.Measure.Name())
+ }
+}
diff --git a/vendor/github.com/knative/serving/pkg/system/clock.go b/vendor/github.com/knative/pkg/system/clock.go
similarity index 95%
rename from vendor/github.com/knative/serving/pkg/system/clock.go
rename to vendor/github.com/knative/pkg/system/clock.go
index 83f61ea70f..7d99d9b5cd 100644
--- a/vendor/github.com/knative/serving/pkg/system/clock.go
+++ b/vendor/github.com/knative/pkg/system/clock.go
@@ -1,5 +1,5 @@
/*
-Copyright 2018 The Knative Authors
+Copyright 2019 The Knative Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/vendor/github.com/knative/pkg/system/names.go b/vendor/github.com/knative/pkg/system/names.go
new file mode 100644
index 0000000000..fdd6a576ea
--- /dev/null
+++ b/vendor/github.com/knative/pkg/system/names.go
@@ -0,0 +1,52 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package system
+
+import (
+ "fmt"
+ "os"
+)
+
+const (
+ NamespaceEnvKey = "SYSTEM_NAMESPACE"
+)
+
+// Namespace holds the K8s namespace where our serving system
+// components run.
+func Namespace() string {
+ if ns := os.Getenv(NamespaceEnvKey); ns != "" {
+ return ns
+ }
+
+ panic(fmt.Sprintf(`The environment variable %q is not set
+
+If this is a process running on Kubernetes, then it should be using the downward
+API to initialize this variable via:
+
+ env:
+ - name: %s
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+
+If this is a Go unit test consuming system.Namespace() then it should add the
+following import:
+
+import (
+ _ "github.com/knative/pkg/system/testing"
+)`, NamespaceEnvKey, NamespaceEnvKey))
+}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/resources/names/doc.go b/vendor/github.com/knative/pkg/system/testing/names.go
similarity index 75%
rename from vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/resources/names/doc.go
rename to vendor/github.com/knative/pkg/system/testing/names.go
index aa96d4baa3..ac4945a969 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/resources/names/doc.go
+++ b/vendor/github.com/knative/pkg/system/testing/names.go
@@ -1,5 +1,5 @@
/*
-Copyright 2018 The Knative Authors
+Copyright 2019 The Knative Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,5 +14,14 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-// Package names holds simple functions for synthesizing resource names.
-package names
+package testing
+
+import (
+ "os"
+
+ "github.com/knative/pkg/system"
+)
+
+func init() {
+ os.Setenv(system.NamespaceEnvKey, "knative-testing")
+}
diff --git a/vendor/github.com/knative/pkg/test/cleanup.go b/vendor/github.com/knative/pkg/test/cleanup.go
index c713867c8d..747b4947dd 100644
--- a/vendor/github.com/knative/pkg/test/cleanup.go
+++ b/vendor/github.com/knative/pkg/test/cleanup.go
@@ -32,7 +32,7 @@ func CleanupOnInterrupt(cleanup func(), logger *logging.BaseLogger) {
signal.Notify(c, os.Interrupt)
go func() {
for range c {
- logger.Infof("Test interrupted, cleaning up.")
+ logger.Info("Test interrupted, cleaning up.")
cleanup()
os.Exit(1)
}
diff --git a/vendor/github.com/knative/pkg/test/clients.go b/vendor/github.com/knative/pkg/test/clients.go
index c740160d36..66fcdc8008 100644
--- a/vendor/github.com/knative/pkg/test/clients.go
+++ b/vendor/github.com/knative/pkg/test/clients.go
@@ -19,7 +19,6 @@ limitations under the License.
package test
import (
- "github.com/knative/pkg/test/logging"
"github.com/knative/pkg/test/spoof"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
@@ -34,8 +33,8 @@ type KubeClient struct {
}
// NewSpoofingClient returns a spoofing client to make requests
-func NewSpoofingClient(client *KubeClient, logger *logging.BaseLogger, domain string, resolvable bool) (*spoof.SpoofingClient, error) {
- return spoof.New(client.Kube, logger, domain, resolvable)
+func NewSpoofingClient(client *KubeClient, logf spoof.FormatLogger, domain string, resolvable bool) (*spoof.SpoofingClient, error) {
+ return spoof.New(client.Kube, logf, domain, resolvable, Flags.IngressEndpoint)
}
// NewKubeClient instantiates and returns several clientsets required for making request to the
diff --git a/vendor/github.com/knative/pkg/test/e2e_flags.go b/vendor/github.com/knative/pkg/test/e2e_flags.go
index 1cd0fada63..4b49f9b9eb 100644
--- a/vendor/github.com/knative/pkg/test/e2e_flags.go
+++ b/vendor/github.com/knative/pkg/test/e2e_flags.go
@@ -21,7 +21,6 @@ package test
import (
"flag"
- "os"
"os/user"
"path"
)
@@ -32,18 +31,18 @@ var Flags = initializeFlags()
// EnvironmentFlags define the flags that are needed to run the e2e tests.
type EnvironmentFlags struct {
- Cluster string // K8s cluster (defaults to $K8S_CLUSTER_OVERRIDE)
- Kubeconfig string // Path to kubeconfig (defaults to ./kube/config)
- Namespace string // K8s namespace (blank by default, to be overwritten by test suite)
- LogVerbose bool // Enable verbose logging
- EmitMetrics bool // Emit metrics
+ Cluster string // K8s cluster (defaults to cluster in kubeconfig)
+ Kubeconfig string // Path to kubeconfig (defaults to ./kube/config)
+ Namespace string // K8s namespace (blank by default, to be overwritten by test suite)
+ IngressEndpoint string // Host to use for ingress endpoint
+ LogVerbose bool // Enable verbose logging
+ EmitMetrics bool // Emit metrics
}
func initializeFlags() *EnvironmentFlags {
var f EnvironmentFlags
- defaultCluster := os.Getenv("K8S_CLUSTER_OVERRIDE")
- flag.StringVar(&f.Cluster, "cluster", defaultCluster,
- "Provide the cluster to test against. Defaults to $K8S_CLUSTER_OVERRIDE, then current cluster in kubeconfig if $K8S_CLUSTER_OVERRIDE is unset.")
+ flag.StringVar(&f.Cluster, "cluster", "",
+ "Provide the cluster to test against. Defaults to the current cluster in kubeconfig.")
var defaultKubeconfig string
if usr, err := user.Current(); err == nil {
@@ -56,6 +55,8 @@ func initializeFlags() *EnvironmentFlags {
flag.StringVar(&f.Namespace, "namespace", "",
"Provide the namespace you would like to use for these tests.")
+ flag.StringVar(&f.IngressEndpoint, "ingressendpoint", "", "Provide a static endpoint url to the ingress server used during tests.")
+
flag.BoolVar(&f.LogVerbose, "logverbose", false,
"Set this flag to true if you would like to see verbose logging.")
diff --git a/vendor/github.com/knative/pkg/test/helpers/data.go b/vendor/github.com/knative/pkg/test/helpers/data.go
new file mode 100644
index 0000000000..bd2d73088e
--- /dev/null
+++ b/vendor/github.com/knative/pkg/test/helpers/data.go
@@ -0,0 +1,49 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package helpers
+
+import (
+ "math/rand"
+ "strings"
+ "time"
+)
+
+const (
+ letterBytes = "abcdefghijklmnopqrstuvwxyz"
+ randSuffixLen = 8
+ sep = "-"
+)
+
+func init() {
+ rand.Seed(time.Now().UTC().UnixNano())
+}
+
+// AppendRandomString will generate a random string that begins with prefix.
+// This is useful if you want to make sure that your tests can run at the same
+// time against the same environment without conflicting.
+// This method will use "-" as the separator between the prefix and
+// the random suffix.
+// This method will seed rand with the current time when the package is initialized.
+func AppendRandomString(prefix string) string {
+ suffix := make([]byte, randSuffixLen)
+
+ for i := range suffix {
+ suffix[i] = letterBytes[rand.Intn(len(letterBytes))]
+ }
+
+ return strings.Join([]string{prefix, string(suffix)}, sep)
+}
diff --git a/vendor/github.com/knative/pkg/test/kube_checks.go b/vendor/github.com/knative/pkg/test/kube_checks.go
index 74691b362e..9888eb6e71 100644
--- a/vendor/github.com/knative/pkg/test/kube_checks.go
+++ b/vendor/github.com/knative/pkg/test/kube_checks.go
@@ -24,16 +24,17 @@ import (
"fmt"
"time"
- "go.opencensus.io/trace"
+ "github.com/knative/pkg/test/logging"
corev1 "k8s.io/api/core/v1"
apiv1beta1 "k8s.io/api/extensions/v1beta1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/wait"
+ k8styped "k8s.io/client-go/kubernetes/typed/core/v1"
)
const (
interval = 1 * time.Second
- podTimeout = 5 * time.Minute
+ podTimeout = 8 * time.Minute
)
// WaitForDeploymentState polls the status of the Deployment called name
@@ -42,8 +43,7 @@ const (
// that is emitted to track how long it took for name to get into the state checked by inState.
func WaitForDeploymentState(client *KubeClient, name string, inState func(d *apiv1beta1.Deployment) (bool, error), desc string, namespace string, timeout time.Duration) error {
d := client.Kube.ExtensionsV1beta1().Deployments(namespace)
- metricName := fmt.Sprintf("WaitForDeploymentState/%s/%s", name, desc)
- _, span := trace.StartSpan(context.Background(), metricName)
+ span := logging.GetEmitableSpan(context.Background(), fmt.Sprintf("WaitForDeploymentState/%s/%s", name, desc))
defer span.End()
return wait.PollImmediate(interval, timeout, func() (bool, error) {
@@ -61,8 +61,7 @@ func WaitForDeploymentState(client *KubeClient, name string, inState func(d *api
// that is emitted to track how long it took to get into the state checked by inState.
func WaitForPodListState(client *KubeClient, inState func(p *corev1.PodList) (bool, error), desc string, namespace string) error {
p := client.Kube.CoreV1().Pods(namespace)
- metricName := fmt.Sprintf("WaitForPodListState/%s", desc)
- _, span := trace.StartSpan(context.Background(), metricName)
+ span := logging.GetEmitableSpan(context.Background(), fmt.Sprintf("WaitForPodListState/%s", desc))
defer span.End()
return wait.PollImmediate(interval, podTimeout, func() (bool, error) {
@@ -73,3 +72,15 @@ func WaitForPodListState(client *KubeClient, inState func(p *corev1.PodList) (bo
return inState(p)
})
}
+
+// GetConfigMap gets the configmaps for a given namespace
+func GetConfigMap(client *KubeClient, namespace string) k8styped.ConfigMapInterface {
+ return client.Kube.CoreV1().ConfigMaps(namespace)
+}
+
+// Returns a func that evaluates if a deployment has scaled to 0 pods
+func DeploymentScaledToZeroFunc() func(d *apiv1beta1.Deployment) (bool, error) {
+ return func(d *apiv1beta1.Deployment) (bool, error) {
+ return d.Status.ReadyReplicas == 0, nil
+ }
+}
diff --git a/vendor/github.com/knative/pkg/test/logging/logging.go b/vendor/github.com/knative/pkg/test/logging/logging.go
index b5166b207e..fd117d4b22 100644
--- a/vendor/github.com/knative/pkg/test/logging/logging.go
+++ b/vendor/github.com/knative/pkg/test/logging/logging.go
@@ -20,10 +20,13 @@ limitations under the License.
package logging
import (
+ "context"
"flag"
"fmt"
+ "strings"
"time"
+ "github.com/davecgh/go-spew/spew"
"github.com/golang/glog"
"github.com/knative/pkg/logging"
"go.opencensus.io/stats/view"
@@ -37,6 +40,10 @@ const (
// 1 second was chosen arbitrarily
metricViewReportingPeriod = 1 * time.Second
+
+ // prefix attached to metric name that indicates to the
+ // ExportSpan method that span needs to be emitted.
+ emitableSpanNamePrefix = "emitspan-"
)
var baseLogger *BaseLogger
@@ -58,16 +65,26 @@ type BaseLogger struct {
// ExportView will emit the view data vd (i.e. the stats that have been
// recorded) to the zap logger.
func (e *zapMetricExporter) ExportView(vd *view.Data) {
- // We are not curretnly consuming these metrics, so for now we'll juse
+ // We are not currently consuming these metrics, so for now we'll juse
// dump the view.Data object as is.
- e.logger.Info(vd)
+ e.logger.Debug(spew.Sprint(vd))
+}
+
+// GetEmitableSpan starts and returns a trace.Span with a name that
+// is used by the ExportSpan method to emit the span.
+func GetEmitableSpan(ctx context.Context, metricName string) *trace.Span {
+ _, span := trace.StartSpan(ctx, emitableSpanNamePrefix+metricName)
+ return span
}
-// ExportSpan will emit the trace data to the zap logger.
+// ExportSpan will emit the trace data to the zap logger. The span is emitted
+// only if the metric name is prefix with emitableSpanNamePrefix constant.
func (e *zapMetricExporter) ExportSpan(vd *trace.SpanData) {
- duration := vd.EndTime.Sub(vd.StartTime)
- // We will start the log entry with `metric` to identify it as a metric for parsing
- e.logger.Infof("metric %s %d %d %s", vd.Name, vd.StartTime.UnixNano(), vd.EndTime.UnixNano(), duration)
+ if strings.HasPrefix(vd.Name, emitableSpanNamePrefix) {
+ duration := vd.EndTime.Sub(vd.StartTime)
+ // We will start the log entry with `metric` to identify it as a metric for parsing
+ e.logger.Infof("metric %s %d %d %s", vd.Name[len(emitableSpanNamePrefix):], vd.StartTime.UnixNano(), vd.EndTime.UnixNano(), duration)
+ }
}
func newLogger(logLevel string) *BaseLogger {
diff --git a/vendor/github.com/knative/pkg/test/request.go b/vendor/github.com/knative/pkg/test/request.go
index 86f0023b11..25b7c65e0d 100644
--- a/vendor/github.com/knative/pkg/test/request.go
+++ b/vendor/github.com/knative/pkg/test/request.go
@@ -23,10 +23,10 @@ import (
"fmt"
"net/http"
"strings"
+ "time"
"github.com/knative/pkg/test/logging"
"github.com/knative/pkg/test/spoof"
- "go.opencensus.io/trace"
)
// MatchesAny is a NOP matcher. This is useful for polling until a 200 is returned.
@@ -50,6 +50,24 @@ func Retrying(rc spoof.ResponseChecker, codes ...int) spoof.ResponseChecker {
}
}
+// IsOneOfStatusCodes checks that the response code is equal to the given one.
+func IsOneOfStatusCodes(codes ...int) spoof.ResponseChecker {
+ return func(resp *spoof.Response) (bool, error) {
+ for _, code := range codes {
+ if resp.StatusCode == code {
+ return true, nil
+ }
+ }
+
+ return true, fmt.Errorf("status = %d, want one of: %v, body = %s", resp.StatusCode, codes, string(resp.Body))
+ }
+}
+
+// IsStatusOK checks that the response code is a 200.
+func IsStatusOK(resp *spoof.Response) (bool, error) {
+ return IsOneOfStatusCodes(http.StatusOK)(resp)
+}
+
// MatchesBody checks that the *first* response body matches the "expected" body, otherwise failing.
func MatchesBody(expected string) spoof.ResponseChecker {
return func(resp *spoof.Response) (bool, error) {
@@ -75,25 +93,57 @@ func EventuallyMatchesBody(expected string) spoof.ResponseChecker {
}
}
-// WaitForEndpointState will poll an endpoint until inState indicates the state is achieved.
+// MatchesAllOf combines multiple ResponseCheckers to one ResponseChecker with a logical AND. The
+// checkers are executed in order. The first function to trigger an error or a retry will short-circuit
+// the other functions (they will not be executed).
+//
+// This is useful for combining a body with a status check like:
+// MatchesAllOf(IsStatusOK, MatchesBody("test"))
+//
+// The MatchesBody check will only be executed after the IsStatusOK has passed.
+func MatchesAllOf(checkers ...spoof.ResponseChecker) spoof.ResponseChecker {
+ return func(resp *spoof.Response) (bool, error) {
+ for _, checker := range checkers {
+ done, err := checker(resp)
+ if err != nil || !done {
+ return done, err
+ }
+ }
+ return true, nil
+ }
+}
+
+// WaitForEndpointState will poll an endpoint until inState indicates the state is achieved,
+// or default timeout is reached.
// If resolvableDomain is false, it will use kubeClientset to look up the ingress and spoof
// the domain in the request headers, otherwise it will make the request directly to domain.
// desc will be used to name the metric that is emitted to track how long it took for the
// domain to get into the state checked by inState. Commas in `desc` must be escaped.
-func WaitForEndpointState(kubeClient *KubeClient, logger *logging.BaseLogger, domain string, inState spoof.ResponseChecker, desc string, resolvable bool) (*spoof.Response, error) {
- metricName := fmt.Sprintf("WaitForEndpointState/%s", desc)
- _, span := trace.StartSpan(context.Background(), metricName)
- defer span.End()
+func WaitForEndpointState(kubeClient *KubeClient, logf spoof.FormatLogger, domain string, inState spoof.ResponseChecker, desc string, resolvable bool) (*spoof.Response, error) {
+ return WaitForEndpointStateWithTimeout(kubeClient, logf, domain, inState, desc, resolvable, spoof.RequestTimeout)
+}
- client, err := NewSpoofingClient(kubeClient, logger, domain, resolvable)
+// WaitForEndpointStateWithTimeout will poll an endpoint until inState indicates the state is achieved
+// or the provided timeout is achieved.
+// If resolvableDomain is false, it will use kubeClientset to look up the ingress and spoof
+// the domain in the request headers, otherwise it will make the request directly to domain.
+// desc will be used to name the metric that is emitted to track how long it took for the
+// domain to get into the state checked by inState. Commas in `desc` must be escaped.
+func WaitForEndpointStateWithTimeout(
+ kubeClient *KubeClient, logf spoof.FormatLogger, domain string, inState spoof.ResponseChecker,
+ desc string, resolvable bool, timeout time.Duration) (*spoof.Response, error) {
+ defer logging.GetEmitableSpan(context.Background(), fmt.Sprintf("WaitForEndpointState/%s", desc)).End()
+
+ req, err := http.NewRequest(http.MethodGet, fmt.Sprintf("http://%s", domain), nil)
if err != nil {
return nil, err
}
- req, err := http.NewRequest(http.MethodGet, fmt.Sprintf("http://%s", domain), nil)
+ client, err := NewSpoofingClient(kubeClient, logf, domain, resolvable)
if err != nil {
return nil, err
}
+ client.RequestTimeout = timeout
return client.Poll(req, inState)
}
diff --git a/vendor/github.com/knative/pkg/test/spoof/spoof.go b/vendor/github.com/knative/pkg/test/spoof/spoof.go
index 76aa291fbb..3416a71a35 100644
--- a/vendor/github.com/knative/pkg/test/spoof/spoof.go
+++ b/vendor/github.com/knative/pkg/test/spoof/spoof.go
@@ -1,5 +1,5 @@
/*
-Copyright 2018 The Knative Authors
+Copyright 2019 The Knative Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -21,15 +21,14 @@ package spoof
import (
"bytes"
"encoding/json"
- "errors"
"fmt"
"io/ioutil"
"net"
"net/http"
+ "os"
"time"
- "github.com/knative/pkg/test/logging"
- zipkin "github.com/knative/pkg/test/zipkin"
+ "github.com/knative/pkg/test/zipkin"
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/wait"
@@ -42,16 +41,16 @@ import (
const (
requestInterval = 1 * time.Second
- requestTimeout = 5 * time.Minute
+ // RequestTimeout is the default timeout for the polling requests.
+ RequestTimeout = 5 * time.Minute
// TODO(tcnghia): These probably shouldn't be hard-coded here?
- ingressNamespace = "istio-system"
+ istioIngressNamespace = "istio-system"
+ istioIngressName = "istio-ingressgateway"
+ // Name of the temporary HTTP header that is added to http.Request to indicate that
+ // it is a SpoofClient.Poll request. This header is removed before making call to backend.
+ pollReqHeader = "X-Kn-Poll-Request-Do-Not-Trace"
)
-// Temporary work around the upgrade test issue for knative/serving#2434.
-// TODO(lichuqiang): remove the backward compatibility for knative-ingressgateway
-// once knative/serving#2434 is merged
-var ingressNames = []string{"knative-ingressgateway", "istio-ingressgateway"}
-
// Response is a stripped down subset of http.Response. The is primarily useful
// for ResponseCheckers to inspect the response body without consuming it.
// Notably, Body is a byte slice instead of an io.ReadCloser.
@@ -78,7 +77,10 @@ var _ Interface = (*SpoofingClient)(nil)
// https://github.com/kubernetes/apimachinery/blob/cf7ae2f57dabc02a3d215f15ca61ae1446f3be8f/pkg/util/wait/wait.go#L172
type ResponseChecker func(resp *Response) (done bool, err error)
-// SpoofingClient is a minimal http client wrapper that spoofs the domain of requests
+// FormatLogger is a printf style function for logging in the Spoof client.
+type FormatLogger func(template string, args ...interface{})
+
+// SpoofingClient is a minimal HTTP client wrapper that spoofs the domain of requests
// for non-resolvable domains.
type SpoofingClient struct {
Client *http.Client
@@ -88,7 +90,7 @@ type SpoofingClient struct {
endpoint string
domain string
- logger *logging.BaseLogger
+ logf FormatLogger
}
// New returns a SpoofingClient that rewrites requests if the target domain is not `resolveable`.
@@ -96,21 +98,25 @@ type SpoofingClient struct {
// follow the ingress if it moves (or if there are multiple ingresses).
//
// If that's a problem, see test/request.go#WaitForEndpointState for oneshot spoofing.
-func New(kubeClientset *kubernetes.Clientset, logger *logging.BaseLogger, domain string, resolvable bool) (*SpoofingClient, error) {
+func New(kubeClientset *kubernetes.Clientset, logf FormatLogger, domain string, resolvable bool, endpointOverride string) (*SpoofingClient, error) {
sc := SpoofingClient{
Client: &http.Client{Transport: &ochttp.Transport{Propagation: &b3.HTTPFormat{}}}, // Using ochttp Transport required for zipkin-tracing
RequestInterval: requestInterval,
- RequestTimeout: requestTimeout,
- logger: logger,
+ RequestTimeout: RequestTimeout,
+ logf: logf,
}
if !resolvable {
- // If the domain that the Route controller is configured to assign to Route.Status.Domain
- // (the domainSuffix) is not resolvable, we need to retrieve the IP of the endpoint and
- // spoof the Host in our requests.
- e, err := GetServiceEndpoint(kubeClientset)
- if err != nil {
- return nil, err
+ e := &endpointOverride
+ if endpointOverride == "" {
+ var err error
+ // If the domain that the Route controller is configured to assign to Route.Status.Domain
+ // (the domainSuffix) is not resolvable, we need to retrieve the IP of the endpoint and
+ // spoof the Host in our requests.
+ e, err = GetServiceEndpoint(kubeClientset)
+ if err != nil {
+ return nil, err
+ }
}
sc.endpoint = *e
@@ -123,43 +129,44 @@ func New(kubeClientset *kubernetes.Clientset, logger *logging.BaseLogger, domain
return &sc, nil
}
-// GetServiceEndpoint gets the endpoint IP or hostname to use for the service
+// GetServiceEndpoint gets the endpoint IP or hostname to use for the service.
func GetServiceEndpoint(kubeClientset *kubernetes.Clientset) (*string, error) {
- var err error
-
- for _, ingressName := range ingressNames {
- var ingress *v1.Service
- ingress, err = kubeClientset.CoreV1().Services(ingressNamespace).Get(ingressName, metav1.GetOptions{})
- if err != nil {
- continue
- }
-
- var endpoint string
- endpoint, err = getEndpointFromService(ingress)
- if err != nil {
- continue
- }
+ ingressName := istioIngressName
+ if gatewayOverride := os.Getenv("GATEWAY_OVERRIDE"); gatewayOverride != "" {
+ ingressName = gatewayOverride
+ }
+ ingressNamespace := istioIngressNamespace
+ if gatewayNsOverride := os.Getenv("GATEWAY_NAMESPACE_OVERRIDE"); gatewayNsOverride != "" {
+ ingressNamespace = gatewayNsOverride
+ }
- return &endpoint, nil
+ ingress, err := kubeClientset.CoreV1().Services(ingressNamespace).Get(ingressName, metav1.GetOptions{})
+ if err != nil {
+ return nil, err
+ }
+ endpoint, err := endpointFromService(ingress)
+ if err != nil {
+ return nil, err
}
- return nil, err
+ return &endpoint, nil
}
-// getEndpointFromService extracts the endpoint from the service's ingress.
-func getEndpointFromService(svc *v1.Service) (string, error) {
+// endpointFromService extracts the endpoint from the service's ingress.
+func endpointFromService(svc *v1.Service) (string, error) {
ingresses := svc.Status.LoadBalancer.Ingress
if len(ingresses) != 1 {
- return "", fmt.Errorf("Expected exactly one ingress load balancer, instead had %d: %s", len(ingresses), ingresses)
+ return "", fmt.Errorf("Expected exactly one ingress load balancer, instead had %d: %v", len(ingresses), ingresses)
}
- ingressToUse := ingresses[0]
-
- if ingressToUse.IP == "" {
- if ingressToUse.Hostname == "" {
- return "", fmt.Errorf("Expected ingress loadbalancer IP or hostname for %s to be set, instead was empty", svc.Name)
- }
- return ingressToUse.Hostname, nil
+ itu := ingresses[0]
+
+ switch {
+ case itu.IP != "":
+ return itu.IP, nil
+ case itu.Hostname != "":
+ return itu.Hostname, nil
+ default:
+ return "", fmt.Errorf("Expected ingress loadbalancer IP or hostname for %s to be set, instead was empty", svc.Name)
}
- return ingressToUse.IP, nil
}
// Do dispatches to the underlying http.Client.Do, spoofing domains as needed
@@ -180,6 +187,12 @@ func (sc *SpoofingClient) Do(req *http.Request) (*Response, error) {
traceContext, span := trace.StartSpan(req.Context(), "SpoofingClient-Trace")
defer span.End()
+ // Check to see if the call to this method is coming from a Poll call.
+ logZipkinTrace := true
+ if req.Header.Get(pollReqHeader) != "" {
+ req.Header.Del(pollReqHeader)
+ logZipkinTrace = false
+ }
resp, err := sc.Client.Do(req.WithContext(traceContext))
if err != nil {
return nil, err
@@ -193,12 +206,18 @@ func (sc *SpoofingClient) Do(req *http.Request) (*Response, error) {
return nil, err
}
- return &Response{
+ spoofResp := &Response{
Status: resp.Status,
StatusCode: resp.StatusCode,
Header: resp.Header,
Body: body,
- }, nil
+ }
+
+ if logZipkinTrace {
+ sc.logZipkinTrace(spoofResp)
+ }
+
+ return spoofResp, nil
}
// Poll executes an http request until it satisfies the inState condition or encounters an error.
@@ -209,10 +228,14 @@ func (sc *SpoofingClient) Poll(req *http.Request, inState ResponseChecker) (*Res
)
err = wait.PollImmediate(sc.RequestInterval, sc.RequestTimeout, func() (bool, error) {
+ // As we may do multiple Do calls as part of a single Poll we add this temporary header
+ // to the request to indicate to Do method not to log Zipkin trace, instead it is
+ // handled by this method itself.
+ req.Header.Add(pollReqHeader, "True")
resp, err = sc.Do(req)
if err != nil {
if err, ok := err.(net.Error); ok && err.Timeout() {
- sc.logger.Infof("Retrying for TCP timeout %v", err)
+ sc.logf("Retrying %s for TCP timeout %v", req.URL.String(), err)
return false, nil
}
return true, err
@@ -221,36 +244,48 @@ func (sc *SpoofingClient) Poll(req *http.Request, inState ResponseChecker) (*Res
return inState(resp)
})
+ if resp != nil {
+ sc.logZipkinTrace(resp)
+ }
+
return resp, err
}
-// LogZipkinTrace provides support to log Zipkin Trace for param: traceID
-func (sc *SpoofingClient) LogZipkinTrace(traceID string) error {
+// logZipkinTrace provides support to log Zipkin Trace for param: spoofResponse
+// We only log Zipkin trace for HTTP server errors i.e for HTTP status codes between 500 to 600
+func (sc *SpoofingClient) logZipkinTrace(spoofResp *Response) {
+ if !zipkin.ZipkinTracingEnabled || spoofResp.StatusCode < http.StatusInternalServerError || spoofResp.StatusCode >= 600 {
+ return
+ }
+
+ traceID := spoofResp.Header.Get(zipkin.ZipkinTraceIDHeader)
if err := zipkin.CheckZipkinPortAvailability(); err == nil {
- return errors.New("port-forwarding for Zipkin is not-setup. Failing Zipkin Trace retrieval")
+ sc.logf("port-forwarding for Zipkin is not-setup. Failing Zipkin Trace retrieval")
+ return
}
- sc.logger.Infof("Logging Zipkin Trace: %s", traceID)
+ sc.logf("Logging Zipkin Trace: %s", traceID)
zipkinTraceEndpoint := zipkin.ZipkinTraceEndpoint + traceID
// Sleep to ensure all traces are correctly pushed on the backend.
time.Sleep(5 * time.Second)
resp, err := http.Get(zipkinTraceEndpoint)
if err != nil {
- return fmt.Errorf("Error retrieving Zipkin trace: %v", err)
+ sc.logf("Error retrieving Zipkin trace: %v", err)
+ return
}
+ defer resp.Body.Close()
trace, err := ioutil.ReadAll(resp.Body)
if err != nil {
- return fmt.Errorf("Error reading Zipkin trace response: %v", err)
+ sc.logf("Error reading Zipkin trace response: %v", err)
+ return
}
var prettyJSON bytes.Buffer
- error := json.Indent(&prettyJSON, trace, "", "\t")
- if error != nil {
- return fmt.Errorf("JSON Parser Error while trying for Pretty-Format: %v, Original Response: %s", error, string(trace))
+ if error := json.Indent(&prettyJSON, trace, "", "\t"); error != nil {
+ sc.logf("JSON Parser Error while trying for Pretty-Format: %v, Original Response: %s", error, string(trace))
+ return
}
- sc.logger.Infof(prettyJSON.String())
-
- return nil
+ sc.logf("%s", prettyJSON.String())
}
diff --git a/vendor/github.com/knative/pkg/test/zipkin/doc.go b/vendor/github.com/knative/pkg/test/zipkin/doc.go
new file mode 100644
index 0000000000..0828105631
--- /dev/null
+++ b/vendor/github.com/knative/pkg/test/zipkin/doc.go
@@ -0,0 +1,41 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+/*
+Package zipkin adds Zipkin tracing support that can be used in conjunction with
+SpoofingClient to log zipkin traces for requests that have encountered server errors
+i.e HTTP request that have HTTP status between 500 to 600.
+
+This package exposes following methods:
+
+ SetupZipkinTracing(*kubernetes.Clientset) error
+ SetupZipkinTracing sets up zipkin tracing by setting up port-forwarding from
+ localhost to zipkin pod on the cluster. On successful setup this method sets
+ an internal flag zipkinTracingEnabled to true.
+
+ CleanupZipkinTracingSetup() error
+ CleanupZipkinTracingSetup cleans up zipkin tracing setup by cleaning up the
+ port-forwarding setup by call to SetupZipkinTracing. This method also sets
+ zipkinTracingEnabled flag to false.
+
+A general flow for a Test Suite to use Zipkin Tracing support is as follows:
+
+ 1. Call SetupZipkinTracing(*kubernetes.Clientset) in TestMain.
+ 2. Use SpoofingClient to make HTTP requests.
+ 3. Call CleanupZipkinTracingSetup on cleanup after tests are executed.
+
+ */
+package zipkin
diff --git a/vendor/github.com/knative/pkg/test/zipkin/util.go b/vendor/github.com/knative/pkg/test/zipkin/util.go
index a06df7e2a5..16738fc180 100644
--- a/vendor/github.com/knative/pkg/test/zipkin/util.go
+++ b/vendor/github.com/knative/pkg/test/zipkin/util.go
@@ -1,5 +1,5 @@
/*
-Copyright 2018 The Knative Authors
+Copyright 2019 The Knative Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -19,20 +19,18 @@ limitations under the License.
package zipkin
import (
- "errors"
"fmt"
"net"
"os"
"os/exec"
+ "sync"
- "github.com/knative/pkg/test/logging"
"go.opencensus.io/trace"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
)
const (
-
//ZipkinTraceIDHeader HTTP response header key to be used to store Zipkin Trace ID.
ZipkinTraceIDHeader = "ZIPKIN_TRACE_ID"
@@ -48,53 +46,72 @@ const (
ZipkinNamespace = "istio-system"
)
-var zipkinPortForwardPID int
-
-// SetupZipkinTracing sets up zipkin tracing which involves a) Setting up port-forwarding from localhost to zipkin pod on the cluster (pid of the process doing Port-Forward is stored in a global variable).
-// b) enable AlwaysSample config for tracing.
-func SetupZipkinTracing(kubeClientset *kubernetes.Clientset) error {
- logger := logging.GetContextLogger("SpoofUtil")
-
- if err := CheckZipkinPortAvailability(); err != nil {
- return fmt.Errorf("Zipkin port not available on the machine: %v", err)
- }
-
- zipkinPods, err := kubeClientset.CoreV1().Pods(ZipkinNamespace).List(metav1.ListOptions{LabelSelector: "app=zipkin"})
- if err != nil {
- return fmt.Errorf("Error retrieving Zipkin pod details : %v", err)
- }
-
- if len(zipkinPods.Items) == 0 {
- return errors.New("No Zipkin Pod found on the cluster. Ensure monitoring is switched on for your Knative Setup")
- }
-
- portForwardCmd := exec.Command("kubectl", "port-forward", "--namespace="+ZipkinNamespace, zipkinPods.Items[0].Name, fmt.Sprintf("%d:%d", ZipkinPort, ZipkinPort))
- if err = portForwardCmd.Start(); err != nil {
- return fmt.Errorf("Error starting kubectl port-forward command : %v", err)
+var (
+ zipkinPortForwardPID int
- }
- zipkinPortForwardPID = portForwardCmd.Process.Pid
- logger.Infof("Zipkin port-forward process started with PID: %d", zipkinPortForwardPID)
+ // ZipkinTracingEnabled variable indicating if zipkin tracing is enabled.
+ ZipkinTracingEnabled = false
- // Applying AlwaysSample config to ensure we propagate zipkin header for every request made by this client.
- trace.ApplyConfig(trace.Config{DefaultSampler: trace.AlwaysSample()})
+ // sync.Once variable to ensure we execute zipkin setup only once.
+ setupOnce sync.Once
- logger.Infof("Successfully setup SpoofingClient for Zipkin Tracing")
+ // sync.Once variable to ensure we execute zipkin cleanup only if zipkin is setup and it is executed only once.
+ teardownOnce sync.Once
+)
- return nil
+// SetupZipkinTracing sets up zipkin tracing which involves:
+// 1. Setting up port-forwarding from localhost to zipkin pod on the cluster
+// (pid of the process doing Port-Forward is stored in a global variable).
+// 2. Enable AlwaysSample config for tracing.
+func SetupZipkinTracing(kubeClientset *kubernetes.Clientset, logf func(template string, args ...interface{})) {
+ setupOnce.Do(func() {
+ if err := CheckZipkinPortAvailability(); err != nil {
+ logf("Zipkin port not available on the machine: %v", err)
+ return
+ }
+
+ zipkinPods, err := kubeClientset.CoreV1().Pods(ZipkinNamespace).List(metav1.ListOptions{LabelSelector: "app=zipkin"})
+ if err != nil {
+ logf("Error retrieving Zipkin pod details: %v", err)
+ return
+ }
+
+ if len(zipkinPods.Items) == 0 {
+ logf("No Zipkin Pod found on the cluster. Ensure monitoring is switched on for your Knative Setup")
+ return
+ }
+
+ portForwardCmd := exec.Command("kubectl", "port-forward", "--namespace="+ZipkinNamespace, zipkinPods.Items[0].Name, fmt.Sprintf("%d:%d", ZipkinPort, ZipkinPort))
+ if err = portForwardCmd.Start(); err != nil {
+ logf("Error starting kubectl port-forward command: %v", err)
+ return
+ }
+ zipkinPortForwardPID = portForwardCmd.Process.Pid
+ logf("Zipkin port-forward process started with PID: %d", zipkinPortForwardPID)
+
+ // Applying AlwaysSample config to ensure we propagate zipkin header for every request made by this client.
+ trace.ApplyConfig(trace.Config{DefaultSampler: trace.AlwaysSample()})
+ logf("Successfully setup SpoofingClient for Zipkin Tracing")
+ ZipkinTracingEnabled = true
+ })
}
// CleanupZipkinTracingSetup cleans up the Zipkin tracing setup on the machine. This involves killing the process performing port-forward.
-func CleanupZipkinTracingSetup() error {
- logger := logging.GetContextLogger("SpoofUtil")
-
- ps := os.Process{Pid: zipkinPortForwardPID}
- if err := ps.Kill(); err != nil {
- return fmt.Errorf("Encoutered error killing port-forward process in CleanupZipkingTracingSetup() : %v", err)
- }
-
- logger.Infof("Successfully killed Zipkin port-forward process")
- return nil
+func CleanupZipkinTracingSetup(logf func(template string, args ...interface{})) {
+ teardownOnce.Do(func() {
+ if !ZipkinTracingEnabled {
+ return
+ }
+
+ ps := os.Process{Pid: zipkinPortForwardPID}
+ if err := ps.Kill(); err != nil {
+ logf("Encountered error killing port-forward process in CleanupZipkingTracingSetup() : %v", err)
+ return
+ }
+
+ logf("Successfully killed Zipkin port-forward process")
+ ZipkinTracingEnabled = false
+ })
}
// CheckZipkinPortAvailability checks to see if Zipkin Port is available on the machine.
@@ -106,5 +123,6 @@ func CheckZipkinPortAvailability() error {
return err
}
server.Close()
+
return nil
}
diff --git a/vendor/github.com/knative/pkg/testing/inner_default_resource.go b/vendor/github.com/knative/pkg/testing/inner_default_resource.go
new file mode 100644
index 0000000000..cc53a1453f
--- /dev/null
+++ b/vendor/github.com/knative/pkg/testing/inner_default_resource.go
@@ -0,0 +1,68 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package testing
+
+import (
+ "github.com/knative/pkg/apis"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+
+// InnerDefaultResource is a simple resource that's compatible with our webhook. It differs from
+// Resource by not omitting empty `spec`, so can change when it round trips
+// JSON -> Golang type -> JSON.
+type InnerDefaultResource struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+
+ // Note that this does _not_ have omitempty. So when JSON is round tripped through the Golang
+ // type, `spec: {}` will automatically be injected.
+ Spec InnerDefaultSpec `json:"spec"`
+}
+
+// InnerDefaultSpec is the spec for InnerDefaultResource.
+type InnerDefaultSpec struct {
+ Generation int64 `json:"generation,omitempty"`
+
+ FieldWithDefault string `json:"fieldWithDefault,omitempty"`
+}
+
+// Check that ImmutableDefaultResource may be validated and defaulted.
+var _ apis.Validatable = (*InnerDefaultResource)(nil)
+var _ apis.Defaultable = (*InnerDefaultResource)(nil)
+
+// SetDefaults sets default values.
+func (i *InnerDefaultResource) SetDefaults() {
+ i.Spec.SetDefaults()
+}
+
+// SetDefaults sets default values.
+func (cs *InnerDefaultSpec) SetDefaults() {
+ if cs.FieldWithDefault == "" {
+ cs.FieldWithDefault = "I'm a default."
+ }
+}
+
+// Validate validates the resource.
+func (*InnerDefaultResource) Validate() *apis.FieldError {
+ return nil
+}
+
+// AnnotateUserInfo satisfies the Annotatable interface.
+// For this type it is nop.
+func (*InnerDefaultResource) AnnotateUserInfo(p apis.Annotatable, userName string) {}
diff --git a/vendor/github.com/knative/pkg/testing/resource.go b/vendor/github.com/knative/pkg/testing/resource.go
index 590a17ee7e..e7b6ec5b6d 100644
--- a/vendor/github.com/knative/pkg/testing/resource.go
+++ b/vendor/github.com/knative/pkg/testing/resource.go
@@ -19,10 +19,12 @@ package testing
import (
"fmt"
+ "github.com/knative/pkg/apis"
+ "github.com/knative/pkg/kmp"
+
+ authenticationv1 "k8s.io/api/authentication/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
-
- "github.com/knative/pkg/apis"
)
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
@@ -35,26 +37,34 @@ type Resource struct {
Spec ResourceSpec `json:"spec,omitempty"`
}
+const (
+ // CreatorAnnotation is the annotation that denotes the user that created the resource.
+ CreatorAnnotation = "testing.knative.dev/creator"
+ // UpdaterAnnotation is the annotation that denotes the user that last updated the resource.
+ UpdaterAnnotation = "testing.knative.dev/updater"
+)
+
// Check that Resource may be validated and defaulted.
var _ apis.Validatable = (*Resource)(nil)
var _ apis.Defaultable = (*Resource)(nil)
var _ apis.Immutable = (*Resource)(nil)
+var _ apis.Annotatable = (*Resource)(nil)
var _ apis.Listable = (*Resource)(nil)
-// Check that we implement the Generation duck type.
+// ResourceSpec represents test resource spec.
type ResourceSpec struct {
- Generation int64 `json:"generation,omitempty"`
-
FieldWithDefault string `json:"fieldWithDefault,omitempty"`
FieldWithValidation string `json:"fieldWithValidation,omitempty"`
FieldThatsImmutable string `json:"fieldThatsImmutable,omitempty"`
FieldThatsImmutableWithDefault string `json:"fieldThatsImmutableWithDefault,omitempty"`
}
+// SetDefaults sets the defaults on the object.
func (c *Resource) SetDefaults() {
c.Spec.SetDefaults()
}
+// SetDefaults sets the defaults on the spec.
func (cs *ResourceSpec) SetDefaults() {
if cs.FieldWithDefault == "" {
cs.FieldWithDefault = "I'm a default."
@@ -64,6 +74,34 @@ func (cs *ResourceSpec) SetDefaults() {
}
}
+// AnnotateUserInfo satisfies the Annotatable interface.
+func (c *Resource) AnnotateUserInfo(prev apis.Annotatable, ui *authenticationv1.UserInfo) {
+ a := c.ObjectMeta.GetAnnotations()
+ if a == nil {
+ a = map[string]string{}
+ }
+ userName := ui.Username
+
+ // If previous is nil (i.e. this is `Create` operation),
+ // then we set both fields.
+ // Otherwise copy creator from the previous state.
+ if prev == nil {
+ a[CreatorAnnotation] = userName
+ } else {
+ up := prev.(*Resource)
+ // No spec update ==> bail out.
+ if ok, _ := kmp.SafeEqual(up.Spec, c.Spec); ok {
+ return
+ }
+ if up.ObjectMeta.GetAnnotations() != nil {
+ a[CreatorAnnotation] = up.ObjectMeta.GetAnnotations()[CreatorAnnotation]
+ }
+ }
+ // Regardless of `old` set the updater.
+ a[UpdaterAnnotation] = userName
+ c.ObjectMeta.SetAnnotations(a)
+}
+
func (c *Resource) Validate() *apis.FieldError {
return c.Spec.Validate().ViaField("spec")
}
diff --git a/vendor/github.com/knative/pkg/testing/zz_generated.deepcopy.go b/vendor/github.com/knative/pkg/testing/zz_generated.deepcopy.go
index 236806f774..6b7c5acb74 100644
--- a/vendor/github.com/knative/pkg/testing/zz_generated.deepcopy.go
+++ b/vendor/github.com/knative/pkg/testing/zz_generated.deepcopy.go
@@ -24,6 +24,49 @@ import (
runtime "k8s.io/apimachinery/pkg/runtime"
)
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *InnerDefaultResource) DeepCopyInto(out *InnerDefaultResource) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ out.Spec = in.Spec
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InnerDefaultResource.
+func (in *InnerDefaultResource) DeepCopy() *InnerDefaultResource {
+ if in == nil {
+ return nil
+ }
+ out := new(InnerDefaultResource)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *InnerDefaultResource) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *InnerDefaultSpec) DeepCopyInto(out *InnerDefaultSpec) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InnerDefaultSpec.
+func (in *InnerDefaultSpec) DeepCopy() *InnerDefaultSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(InnerDefaultSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Resource) DeepCopyInto(out *Resource) {
*out = *in
diff --git a/vendor/github.com/knative/pkg/tracker/enqueue.go b/vendor/github.com/knative/pkg/tracker/enqueue.go
index e8489992f6..ed225c0c4f 100644
--- a/vendor/github.com/knative/pkg/tracker/enqueue.go
+++ b/vendor/github.com/knative/pkg/tracker/enqueue.go
@@ -98,6 +98,20 @@ func (i *impl) Track(ref corev1.ObjectReference, obj interface{}) error {
if !ok {
l = set{}
}
+ if expiry, ok := l[key]; !ok || isExpired(expiry) {
+ // When covering an uncovered key, immediately call the
+ // registered callback to ensure that the following pattern
+ // doesn't create problems:
+ // foo, err := lister.Get(key)
+ // // Later...
+ // err := tracker.Track(fooRef, parent)
+ // In this example, "Later" represents a window where "foo" may
+ // have changed or been created while the Track is not active.
+ // The simplest way of eliminating such a window is to call the
+ // callback to "catch up" immediately following new
+ // registrations.
+ i.cb(key)
+ }
// Overwrite the key with a new expiration.
l[key] = time.Now().Add(i.leaseDuration)
@@ -116,6 +130,10 @@ func objectReference(item kmeta.Accessor) corev1.ObjectReference {
}
}
+func isExpired(expiry time.Time) bool {
+ return time.Now().After(expiry)
+}
+
// OnChanged implements Interface.
func (i *impl) OnChanged(obj interface{}) {
item, err := kmeta.DeletionHandlingAccessor(obj)
@@ -138,7 +156,7 @@ func (i *impl) OnChanged(obj interface{}) {
for key, expiry := range s {
// If the expiration has lapsed, then delete the key.
- if time.Now().After(expiry) {
+ if isExpired(expiry) {
delete(s, key)
continue
}
diff --git a/vendor/github.com/knative/pkg/version/version.go b/vendor/github.com/knative/pkg/version/version.go
new file mode 100644
index 0000000000..86e2db4b57
--- /dev/null
+++ b/vendor/github.com/knative/pkg/version/version.go
@@ -0,0 +1,55 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package version
+
+import (
+ "fmt"
+
+ "github.com/rogpeppe/go-internal/semver"
+ "k8s.io/apimachinery/pkg/version"
+)
+
+// ServerVersioner is an interface to mock the `ServerVersion`
+// method of the Kubernetes client's Discovery interface.
+// In an application `kubeClient.Discovery()` can be used to
+// suffice this interface.
+type ServerVersioner interface {
+ ServerVersion() (*version.Info, error)
+}
+
+var minimumVersion = "v1.11.0"
+
+// CheckMinimumVersion checks if the currently installed version of
+// Kubernetes is compatible with the minimum version required.
+// Returns an error if its not.
+//
+// A Kubernetes discovery client can be passed in as the versioner
+// like `CheckMinimumVersion(kubeClient.Discovery())`.
+func CheckMinimumVersion(versioner ServerVersioner) error {
+ v, err := versioner.ServerVersion()
+ if err != nil {
+ return err
+ }
+ currentVersion := semver.Canonical(v.String())
+
+ // Compare returns 1 if the first version is greater than the
+ // second version.
+ if semver.Compare(minimumVersion, currentVersion) == 1 {
+ return fmt.Errorf("kubernetes version %q is not compatible, need at least %q", currentVersion, minimumVersion)
+ }
+ return nil
+}
diff --git a/vendor/github.com/knative/pkg/webhook/certs.go b/vendor/github.com/knative/pkg/webhook/certs.go
index 510783bbec..d4bb64f97d 100644
--- a/vendor/github.com/knative/pkg/webhook/certs.go
+++ b/vendor/github.com/knative/pkg/webhook/certs.go
@@ -33,8 +33,7 @@ import (
)
const (
- // TODO(vaikas): Add / change other parts of the cert we might care about
- organization = "kube"
+ organization = "knative.dev"
)
// Create the common parts of the cert. These don't change between
diff --git a/vendor/github.com/knative/pkg/webhook/webhook.go b/vendor/github.com/knative/pkg/webhook/webhook.go
index 69fa2af9b3..26d2961966 100644
--- a/vendor/github.com/knative/pkg/webhook/webhook.go
+++ b/vendor/github.com/knative/pkg/webhook/webhook.go
@@ -25,7 +25,6 @@ import (
"errors"
"fmt"
"net/http"
- "reflect"
"sort"
"strings"
"time"
@@ -34,14 +33,16 @@ import (
"github.com/knative/pkg/apis"
"github.com/knative/pkg/apis/duck"
- duckv1alpha1 "github.com/knative/pkg/apis/duck/v1alpha1"
+ "github.com/knative/pkg/kmp"
"github.com/knative/pkg/logging"
"github.com/knative/pkg/logging/logkey"
+ perrors "github.com/pkg/errors"
"github.com/markbates/inflect"
"github.com/mattbaird/jsonpatch"
admissionv1beta1 "k8s.io/api/admission/v1beta1"
admissionregistrationv1beta1 "k8s.io/api/admissionregistration/v1beta1"
+ authenticationv1 "k8s.io/api/authentication/v1"
corev1 "k8s.io/api/core/v1"
v1beta1 "k8s.io/api/extensions/v1beta1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
@@ -82,7 +83,7 @@ type ControllerOptions struct {
// registration.
SecretName string
- // Namespace is the namespace in which everything above lives
+ // Namespace is the namespace in which everything above lives.
Namespace string
// Port where the webhook is served. Per k8s admission
@@ -200,46 +201,64 @@ func getOrGenerateKeyCertsFromSecret(ctx context.Context, client kubernetes.Inte
return serverKey, serverCert, caCert, nil
}
-// Validate checks whether "new" and "old" implement HasImmutableFields and checks them,
+// validate checks whether "new" and "old" implement HasImmutableFields and checks them,
// it then delegates validation to apis.Validatable on "new".
-func Validate(ctx context.Context) ResourceCallback {
- return func(patches *[]jsonpatch.JsonPatchOperation, old GenericCRD, new GenericCRD) error {
- if immutableNew, ok := new.(apis.Immutable); ok && old != nil {
- // Copy the old object and set defaults so that we don't reject our own
- // defaulting done earlier in the webhook.
- old = old.DeepCopyObject().(GenericCRD)
- old.SetDefaults()
-
- immutableOld, ok := old.(apis.Immutable)
- if !ok {
- return fmt.Errorf("unexpected type mismatch %T vs. %T", old, new)
- }
- if err := immutableNew.CheckImmutableFields(immutableOld); err != nil {
- return err
- }
+func validate(old GenericCRD, new GenericCRD) error {
+ if immutableNew, ok := new.(apis.Immutable); ok && old != nil {
+ // Copy the old object and set defaults so that we don't reject our own
+ // defaulting done earlier in the webhook.
+ old = old.DeepCopyObject().(GenericCRD)
+ old.SetDefaults()
+
+ immutableOld, ok := old.(apis.Immutable)
+ if !ok {
+ return fmt.Errorf("unexpected type mismatch %T vs. %T", old, new)
}
- // Can't just `return new.Validate()` because it doesn't properly nil-check.
- if err := new.Validate(); err != nil {
+ if err := immutableNew.CheckImmutableFields(immutableOld); err != nil {
return err
}
- return nil
}
+ // Can't just `return new.Validate()` because it doesn't properly nil-check.
+ if err := new.Validate(); err != nil {
+ return err
+ }
+ return nil
}
-// SetDefaults simply leverages apis.Defaultable to set defaults.
-func SetDefaults(ctx context.Context) ResourceDefaulter {
- return func(patches *[]jsonpatch.JsonPatchOperation, crd GenericCRD) error {
- before, after := crd.DeepCopyObject(), crd
- after.SetDefaults()
+func setAnnotations(patches duck.JSONPatch, new, old GenericCRD, ui *authenticationv1.UserInfo) (duck.JSONPatch, error) {
+ // Nowhere to set the annotations.
+ if new == nil {
+ return patches, nil
+ }
+ na, ok := new.(apis.Annotatable)
+ if !ok {
+ return patches, nil
+ }
+ var oa apis.Annotatable
+ if old != nil {
+ oa = old.(apis.Annotatable)
+ }
+ b, a := new.DeepCopyObject().(apis.Annotatable), na
- patch, err := duck.CreatePatch(before, after)
- if err != nil {
- return err
- }
+ a.AnnotateUserInfo(oa, ui)
+ patch, err := duck.CreatePatch(b, a)
+ if err != nil {
+ return nil, err
+ }
+ return append(patches, patch...), nil
+}
- *patches = append(*patches, patch...)
- return nil
+// setDefaults simply leverages apis.Defaultable to set defaults.
+func setDefaults(patches duck.JSONPatch, crd GenericCRD) (duck.JSONPatch, error) {
+ before, after := crd.DeepCopyObject(), crd
+ after.SetDefaults()
+
+ patch, err := duck.CreatePatch(before, after)
+ if err != nil {
+ return nil, err
}
+
+ return append(patches, patch...), nil
}
func configureCerts(ctx context.Context, client kubernetes.Interface, options *ControllerOptions) (*tls.Config, []byte, error) {
@@ -269,7 +288,7 @@ func (ac *AdmissionController) Run(stop <-chan struct{}) error {
ctx := logging.WithLogger(context.TODO(), logger)
tlsConfig, caCert, err := configureCerts(ctx, ac.Client, &ac.Options)
if err != nil {
- logger.Error("Could not configure admission webhook certs", zap.Error(err))
+ logger.Errorw("could not configure admission webhook certs", zap.Error(err))
return err
}
@@ -284,20 +303,11 @@ func (ac *AdmissionController) Run(stop <-chan struct{}) error {
logger.Infof("Delaying admission webhook registration for %v", ac.Options.RegistrationDelay)
}
- // Verify that each of the types we are given implements the Generation duck type.
- for _, crd := range ac.Handlers {
- cp := crd.DeepCopyObject()
- var emptyGen duckv1alpha1.Generation
- if err := duck.VerifyType(cp, &emptyGen); err != nil {
- return err
- }
- }
-
select {
case <-time.After(ac.Options.RegistrationDelay):
cl := ac.Client.AdmissionregistrationV1beta1().MutatingWebhookConfigurations()
if err := ac.register(ctx, cl, caCert); err != nil {
- logger.Error("Failed to register webhook", zap.Error(err))
+ logger.Errorw("failed to register webhook", zap.Error(err))
return err
}
logger.Info("Successfully registered webhook")
@@ -308,7 +318,7 @@ func (ac *AdmissionController) Run(stop <-chan struct{}) error {
serverBootstrapErrCh := make(chan struct{})
go func() {
if err := server.ListenAndServeTLS("", ""); err != nil {
- logger.Error("ListenAndServeTLS for admission webhook returned error", zap.Error(err))
+ logger.Errorw("ListenAndServeTLS for admission webhook returned error", zap.Error(err))
close(serverBootstrapErrCh)
}
}()
@@ -375,31 +385,33 @@ func (ac *AdmissionController) register(
}},
}
- // Set the owner to our deployment
+ // Set the owner to our deployment.
deployment, err := ac.Client.ExtensionsV1beta1().Deployments(ac.Options.Namespace).Get(ac.Options.DeploymentName, metav1.GetOptions{})
if err != nil {
- return fmt.Errorf("Failed to fetch our deployment: %s", err)
+ return fmt.Errorf("failed to fetch our deployment: %v", err)
}
deploymentRef := metav1.NewControllerRef(deployment, deploymentKind)
webhook.OwnerReferences = append(webhook.OwnerReferences, *deploymentRef)
- // Try to create the webhook and if it already exists validate webhook rules
+ // Try to create the webhook and if it already exists validate webhook rules.
_, err = client.Create(webhook)
if err != nil {
if !apierrors.IsAlreadyExists(err) {
- return fmt.Errorf("Failed to create a webhook: %s", err)
+ return fmt.Errorf("failed to create a webhook: %v", err)
}
logger.Info("Webhook already exists")
configuredWebhook, err := client.Get(ac.Options.WebhookName, metav1.GetOptions{})
if err != nil {
- return fmt.Errorf("Error retrieving webhook: %s", err)
+ return fmt.Errorf("error retrieving webhook: %v", err)
}
- if !reflect.DeepEqual(configuredWebhook.Webhooks, webhook.Webhooks) {
+ if ok, err := kmp.SafeEqual(configuredWebhook.Webhooks, webhook.Webhooks); err != nil {
+ return fmt.Errorf("error diffing webhooks: %v", err)
+ } else if !ok {
logger.Info("Updating webhook")
// Set the ResourceVersion as required by update.
webhook.ObjectMeta.ResourceVersion = configuredWebhook.ObjectMeta.ResourceVersion
if _, err := client.Update(webhook); err != nil {
- return fmt.Errorf("Failed to update webhook: %s", err)
+ return fmt.Errorf("failed to update webhook: %s", err)
}
} else {
logger.Info("Webhook is already valid")
@@ -416,7 +428,7 @@ func (ac *AdmissionController) ServeHTTP(w http.ResponseWriter, r *http.Request)
logger := ac.Logger
logger.Infof("Webhook ServeHTTP request=%#v", r)
- // verify the content type is accurate
+ // Verify the content type is accurate.
contentType := r.Header.Get("Content-Type")
if contentType != "application/json" {
http.Error(w, "invalid Content-Type, want `application/json`", http.StatusUnsupportedMediaType)
@@ -424,7 +436,6 @@ func (ac *AdmissionController) ServeHTTP(w http.ResponseWriter, r *http.Request)
}
var review admissionv1beta1.AdmissionReview
- defer r.Body.Close()
if err := json.NewDecoder(r.Body).Decode(&review); err != nil {
http.Error(w, fmt.Sprintf("could not decode body: %v", err), http.StatusBadRequest)
return
@@ -445,7 +456,7 @@ func (ac *AdmissionController) ServeHTTP(w http.ResponseWriter, r *http.Request)
response.Response.UID = review.Request.UID
}
- logger.Infof("AdmissionReview for %s: %v/%v response=%v",
+ logger.Infof("AdmissionReview for %#v: %s/%s response=%#v",
review.Request.Kind, review.Request.Namespace, review.Request.Name, reviewResponse)
if err := json.NewEncoder(w).Encode(response); err != nil {
@@ -471,7 +482,7 @@ func (ac *AdmissionController) admit(ctx context.Context, request *admissionv1be
return &admissionv1beta1.AdmissionResponse{Allowed: true}
}
- patchBytes, err := ac.mutate(ctx, request.Kind, request.OldObject.Raw, request.Object.Raw)
+ patchBytes, err := ac.mutate(ctx, request)
if err != nil {
return makeErrorStatus("mutation failed: %v", err)
}
@@ -487,7 +498,10 @@ func (ac *AdmissionController) admit(ctx context.Context, request *admissionv1be
}
}
-func (ac *AdmissionController) mutate(ctx context.Context, kind metav1.GroupVersionKind, oldBytes []byte, newBytes []byte) ([]byte, error) {
+func (ac *AdmissionController) mutate(ctx context.Context, req *admissionv1beta1.AdmissionRequest) ([]byte, error) {
+ kind := req.Kind
+ newBytes := req.Object.Raw
+ oldBytes := req.OldObject.Raw
// Why, oh why are these different types...
gvk := schema.GroupVersionKind{
Group: kind.Group,
@@ -498,161 +512,78 @@ func (ac *AdmissionController) mutate(ctx context.Context, kind metav1.GroupVers
logger := logging.FromContext(ctx)
handler, ok := ac.Handlers[gvk]
if !ok {
- logger.Errorf("Unhandled kind %v", gvk)
+ logger.Errorf("Unhandled kind: %v", gvk)
return nil, fmt.Errorf("unhandled kind: %v", gvk)
}
- oldObj := handler.DeepCopyObject().(GenericCRD)
- newObj := handler.DeepCopyObject().(GenericCRD)
+ // nil values denote absence of `old` (create) or `new` (delete) objects.
+ var oldObj, newObj GenericCRD
if len(newBytes) != 0 {
+ newObj = handler.DeepCopyObject().(GenericCRD)
newDecoder := json.NewDecoder(bytes.NewBuffer(newBytes))
if err := newDecoder.Decode(&newObj); err != nil {
return nil, fmt.Errorf("cannot decode incoming new object: %v", err)
}
- } else {
- // Use nil to denote the absence of a new object (delete)
- newObj = nil
}
-
if len(oldBytes) != 0 {
+ oldObj = handler.DeepCopyObject().(GenericCRD)
oldDecoder := json.NewDecoder(bytes.NewBuffer(oldBytes))
if err := oldDecoder.Decode(&oldObj); err != nil {
return nil, fmt.Errorf("cannot decode incoming old object: %v", err)
}
- } else {
- // Use nil to denote the absence of an old object (create)
- oldObj = nil
}
+ var patches duck.JSONPatch
- var patches []jsonpatch.JsonPatchOperation
-
- err := updateGeneration(ctx, &patches, oldObj, newObj)
+ // Add these before defaulting fields, otherwise defaulting may cause an illegal patch because
+ // it expects the round tripped through Golang fields to be present already.
+ rtp, err := roundTripPatch(newBytes, newObj)
if err != nil {
- logger.Error("Failed to update generation", zap.Error(err))
- return nil, fmt.Errorf("Failed to update generation: %s", err)
+ return nil, fmt.Errorf("cannot create patch for round tripped newBytes: %v", err)
}
+ patches = append(patches, rtp...)
- if defaulter := SetDefaults(ctx); defaulter != nil {
- if err := defaulter(&patches, newObj); err != nil {
- logger.Error("Failed the resource specific defaulter", zap.Error(err))
- // Return the error message as-is to give the defaulter callback
- // discretion over (our portion of) the message that the user sees.
- return nil, err
- }
+ if patches, err = setDefaults(patches, newObj); err != nil {
+ logger.Errorw("Failed the resource specific defaulter", zap.Error(err))
+ // Return the error message as-is to give the defaulter callback
+ // discretion over (our portion of) the message that the user sees.
+ return nil, err
+ }
+
+ if patches, err = setAnnotations(patches, newObj, oldObj, &req.UserInfo); err != nil {
+ logger.Errorw("Failed the resource annotator", zap.Error(err))
+ return nil, perrors.Wrap(err, "error setting annotations")
}
// None of the validators will accept a nil value for newObj.
if newObj == nil {
return nil, errMissingNewObject
}
- if validator := Validate(ctx); validator != nil {
- if err := validator(&patches, oldObj, newObj); err != nil {
- logger.Error("Failed the resource specific validation", zap.Error(err))
- // Return the error message as-is to give the validation callback
- // discretion over (our portion of) the message that the user sees.
- return nil, err
- }
- }
-
- return json.Marshal(patches)
-}
-
-// updateGeneration sets the generation by following this logic:
-// if there's no old object, it's create, set generation to 1
-// if there's an old object and spec has changed, set generation to oldGeneration + 1
-// appends the patch to patches if changes are necessary.
-// TODO: Generation does not work correctly with CRD. They are scrubbed
-// by the APIserver (https://github.com/kubernetes/kubernetes/issues/58778)
-// So, we add Generation here. Once that gets fixed, remove this and use
-// ObjectMeta.Generation instead.
-func updateGeneration(ctx context.Context, patches *[]jsonpatch.JsonPatchOperation, old GenericCRD, new GenericCRD) error {
- logger := logging.FromContext(ctx)
-
- if chg, err := hasChanged(ctx, old, new); err != nil {
- return err
- } else if !chg {
- logger.Info("No changes in the spec, not bumping generation")
- return nil
- }
-
- // Leverage Spec duck typing to bump the Generation of the resource.
- before, err := asGenerational(ctx, new)
- if err != nil {
- return err
- }
- after := before.DeepCopyObject().(*duckv1alpha1.Generational)
- after.Spec.Generation = after.Spec.Generation + 1
-
- genBump, err := duck.CreatePatch(before, after)
- if err != nil {
- return err
- }
- *patches = append(*patches, genBump...)
- return nil
-}
-
-// Not worth fully duck typing since there's no shared schema.
-type hasSpec struct {
- Spec json.RawMessage `json:"spec"`
-}
-
-func getSpecJSON(crd GenericCRD) ([]byte, error) {
- b, err := json.Marshal(crd)
- if err != nil {
- return nil, err
- }
- hs := hasSpec{}
- if err := json.Unmarshal(b, &hs); err != nil {
+ if err := validate(oldObj, newObj); err != nil {
+ logger.Errorw("Failed the resource specific validation", zap.Error(err))
+ // Return the error message as-is to give the validation callback
+ // discretion over (our portion of) the message that the user sees.
return nil, err
}
- return []byte(hs.Spec), nil
-}
-
-func hasChanged(ctx context.Context, old, new GenericCRD) (bool, error) {
- if old == nil {
- return true, nil
- }
- logger := logging.FromContext(ctx)
-
- oldSpecJSON, err := getSpecJSON(old)
- if err != nil {
- logger.Error("Failed to get Spec JSON for old", zap.Error(err))
- return false, err
- }
- newSpecJSON, err := getSpecJSON(new)
- if err != nil {
- logger.Error("Failed to get Spec JSON for new", zap.Error(err))
- return false, err
- }
-
- specPatches, err := jsonpatch.CreatePatch(oldSpecJSON, newSpecJSON)
- if err != nil {
- fmt.Printf("Error creating JSON patch:%v", err)
- return false, err
- }
- if len(specPatches) == 0 {
- return false, nil
- }
- specPatchesJSON, err := json.Marshal(specPatches)
- if err != nil {
- logger.Error("Failed to marshal spec patches", zap.Error(err))
- return false, err
- }
- logger.Infof("Specs differ:\n%+v\n", string(specPatchesJSON))
- return true, nil
+ return json.Marshal(patches)
}
-func asGenerational(ctx context.Context, crd GenericCRD) (*duckv1alpha1.Generational, error) {
- raw, err := json.Marshal(crd)
+// roundTripPatch generates the JSONPatch that corresponds to round tripping the given bytes through
+// the Golang type (JSON -> Golang type -> JSON). Because it is not always true that
+// bytes == json.Marshal(json.Unmarshal(bytes)).
+//
+// For example, if bytes did not contain a 'spec' field and the Golang type specifies its 'spec'
+// field without omitempty, then by round tripping through the Golang type, we would have added
+// `'spec': {}`.
+func roundTripPatch(bytes []byte, unmarshalled interface{}) (duck.JSONPatch, error) {
+ if unmarshalled == nil {
+ return duck.JSONPatch{}, nil
+ }
+ marshaledBytes, err := json.Marshal(unmarshalled)
if err != nil {
- return nil, err
- }
- kr := &duckv1alpha1.Generational{}
- if err := json.Unmarshal(raw, kr); err != nil {
- return nil, err
+ return nil, fmt.Errorf("cannot marshal interface: %v", err)
}
- return kr, nil
+ return jsonpatch.CreatePatch(bytes, marshaledBytes)
}
func generateSecret(ctx context.Context, options *ControllerOptions) (*corev1.Secret, error) {
diff --git a/vendor/github.com/knative/pkg/websocket/connection.go b/vendor/github.com/knative/pkg/websocket/connection.go
index f644d97090..60fd981a27 100644
--- a/vendor/github.com/knative/pkg/websocket/connection.go
+++ b/vendor/github.com/knative/pkg/websocket/connection.go
@@ -1,5 +1,5 @@
/*
-Copyright 2018 The Knative Authors
+Copyright 2019 The Knative Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -20,11 +20,14 @@ import (
"bytes"
"encoding/gob"
"errors"
+ "fmt"
"io"
"io/ioutil"
"sync"
"time"
+ "go.uber.org/zap"
+
"k8s.io/apimachinery/pkg/util/wait"
"github.com/gorilla/websocket"
@@ -35,13 +38,12 @@ var (
// but no connection is already created.
ErrConnectionNotEstablished = errors.New("connection has not yet been established")
- connFactory = func(target string) (rawConnection, error) {
- dialer := &websocket.Dialer{
- HandshakeTimeout: 3 * time.Second,
- }
- conn, _, err := dialer.Dial(target, nil)
- return conn, err
- }
+ // errShuttingDown is returned internally once the shutdown signal has been sent.
+ errShuttingDown = errors.New("shutdown in progress")
+
+ // pongTimeout defines the amount of time allowed between two pongs to arrive
+ // before the connection is considered broken.
+ pongTimeout = 10 * time.Second
)
// RawConnection is an interface defining the methods needed
@@ -50,13 +52,22 @@ type rawConnection interface {
WriteMessage(messageType int, data []byte) error
NextReader() (int, io.Reader, error)
Close() error
+
+ SetReadDeadline(deadline time.Time) error
+ SetPongHandler(func(string) error)
}
// ManagedConnection represents a websocket connection.
type ManagedConnection struct {
- target string
- connection rawConnection
- closeChan chan struct{}
+ connection rawConnection
+ connectionFactory func() (rawConnection, error)
+
+ closeChan chan struct{}
+ closeOnce sync.Once
+
+ // Used to capture asynchronous processes to be waited
+ // on when shutting the connection down.
+ processingWg sync.WaitGroup
// If set, messages will be forwarded to this channel
messageChan chan []byte
@@ -78,8 +89,8 @@ type ManagedConnection struct {
// that can only send messages to the endpoint it connects to.
// The connection will continuously be kept alive and reconnected
// in case of a loss of connectivity.
-func NewDurableSendingConnection(target string) *ManagedConnection {
- return NewDurableConnection(target, nil)
+func NewDurableSendingConnection(target string, logger *zap.SugaredLogger) *ManagedConnection {
+ return NewDurableConnection(target, nil, logger)
}
// NewDurableConnection creates a new websocket connection, that
@@ -87,29 +98,65 @@ func NewDurableSendingConnection(target string) *ManagedConnection {
// send messages to the endpoint it connects to.
// The connection will continuously be kept alive and reconnected
// in case of a loss of connectivity.
-func NewDurableConnection(target string, messageChan chan []byte) *ManagedConnection {
- c := newConnection(target, messageChan)
+//
+// Note: The given channel needs to be drained after calling `Shutdown`
+// to not cause any deadlocks. If the channel's buffer is likely to be
+// filled, this needs to happen in separate goroutines, i.e.
+//
+// go func() {conn.Shutdown(); close(messageChan)}
+// go func() {for range messageChan {}}
+func NewDurableConnection(target string, messageChan chan []byte, logger *zap.SugaredLogger) *ManagedConnection {
+ websocketConnectionFactory := func() (rawConnection, error) {
+ dialer := &websocket.Dialer{
+ HandshakeTimeout: 3 * time.Second,
+ }
+ conn, _, err := dialer.Dial(target, nil)
+ return conn, err
+ }
+
+ c := newConnection(websocketConnectionFactory, messageChan)
// Keep the connection alive asynchronously and reconnect on
// connection failure.
+ c.processingWg.Add(1)
go func() {
- // If the close signal races the connection attempt, make
- // sure the connection actually closes.
- defer func() {
- c.connectionLock.RLock()
- defer c.connectionLock.RUnlock()
-
- if conn := c.connection; conn != nil {
- conn.Close()
- }
- }()
+ defer c.processingWg.Done()
+
for {
select {
default:
+ logger.Infof("Connecting to %q", target)
if err := c.connect(); err != nil {
+ logger.Errorw(fmt.Sprintf("Connecting to %q failed", target), zap.Error(err))
continue
}
- c.keepalive()
+ logger.Infof("Connected to %q", target)
+ if err := c.keepalive(); err != nil {
+ logger.Errorw(fmt.Sprintf("Connection to %q broke down, reconnecting...", target), zap.Error(err))
+ }
+ if err := c.closeConnection(); err != nil {
+ logger.Errorw("Failed to close the connection after crashing", zap.Error(err))
+ }
+ case <-c.closeChan:
+ logger.Infof("Connection to %q is being shutdown", target)
+ return
+ }
+ }
+ }()
+
+ // Keep sending pings 3 times per pongTimeout interval.
+ c.processingWg.Add(1)
+ go func() {
+ defer c.processingWg.Done()
+
+ ticker := time.NewTicker(pongTimeout / 3)
+ defer ticker.Stop()
+ for {
+ select {
+ case <-ticker.C:
+ if err := c.write(websocket.PingMessage, []byte{}); err != nil {
+ logger.Errorw("Failed to send ping message", zap.Error(err))
+ }
case <-c.closeChan:
return
}
@@ -120,11 +167,11 @@ func NewDurableConnection(target string, messageChan chan []byte) *ManagedConnec
}
// newConnection creates a new connection primitive.
-func newConnection(target string, messageChan chan []byte) *ManagedConnection {
+func newConnection(connFactory func() (rawConnection, error), messageChan chan []byte) *ManagedConnection {
conn := &ManagedConnection{
- target: target,
- closeChan: make(chan struct{}, 1),
- messageChan: messageChan,
+ connectionFactory: connFactory,
+ closeChan: make(chan struct{}),
+ messageChan: messageChan,
connectionBackoff: wait.Backoff{
Duration: 100 * time.Millisecond,
Factor: 1.3,
@@ -137,90 +184,131 @@ func newConnection(target string, messageChan chan []byte) *ManagedConnection {
}
// connect tries to establish a websocket connection.
-func (c *ManagedConnection) connect() (err error) {
+func (c *ManagedConnection) connect() error {
+ var err error
wait.ExponentialBackoff(c.connectionBackoff, func() (bool, error) {
- var conn rawConnection
- conn, err = connFactory(c.target)
- if err != nil {
- return false, nil
- }
- c.connectionLock.Lock()
- defer c.connectionLock.Unlock()
+ select {
+ default:
+ var conn rawConnection
+ conn, err = c.connectionFactory()
+ if err != nil {
+ return false, nil
+ }
- c.connection = conn
- return true, nil
+ // Setting the read deadline will cause NextReader in read
+ // to fail if it is exceeded. This deadline is reset each
+ // time we receive a pong message so we know the connection
+ // is still intact.
+ conn.SetReadDeadline(time.Now().Add(pongTimeout))
+ conn.SetPongHandler(func(string) error {
+ conn.SetReadDeadline(time.Now().Add(pongTimeout))
+ return nil
+ })
+
+ c.connectionLock.Lock()
+ defer c.connectionLock.Unlock()
+
+ c.connection = conn
+ return true, nil
+ case <-c.closeChan:
+ err = errShuttingDown
+ return false, err
+ }
})
return err
}
-// keepalive keeps the connection open and reads control messages.
-// All messages are discarded.
-func (c *ManagedConnection) keepalive() (err error) {
+// keepalive keeps the connection open.
+func (c *ManagedConnection) keepalive() error {
+ for {
+ select {
+ default:
+ if err := c.read(); err != nil {
+ return err
+ }
+ case <-c.closeChan:
+ return errShuttingDown
+ }
+ }
+}
+
+// closeConnection closes the underlying websocket connection.
+func (c *ManagedConnection) closeConnection() error {
+ c.connectionLock.Lock()
+ defer c.connectionLock.Unlock()
+
+ if c.connection != nil {
+ err := c.connection.Close()
+ c.connection = nil
+ return err
+ }
+ return nil
+}
+
+// read reads the next message from the connection.
+// If a messageChan is supplied and the current message type is not
+// a control message, the message is sent to that channel.
+func (c *ManagedConnection) read() error {
+ c.connectionLock.RLock()
+ defer c.connectionLock.RUnlock()
+
+ if c.connection == nil {
+ return ErrConnectionNotEstablished
+ }
+
c.readerLock.Lock()
defer c.readerLock.Unlock()
- for {
- func() {
- c.connectionLock.RLock()
- defer c.connectionLock.RUnlock()
-
- if conn := c.connection; conn != nil {
- var reader io.Reader
- var messageType int
- messageType, reader, err = conn.NextReader()
- if err != nil {
- conn.Close()
- }
-
- // Send the message to the channel if its an application level message
- // and if that channel is set.
- if c.messageChan != nil && (messageType == websocket.TextMessage || messageType == websocket.BinaryMessage) {
- if message, _ := ioutil.ReadAll(reader); message != nil {
- c.messageChan <- message
- }
- }
- } else {
- err = ErrConnectionNotEstablished
- }
- }()
+ messageType, reader, err := c.connection.NextReader()
+ if err != nil {
+ return err
+ }
- if err != nil {
- return err
+ // Send the message to the channel if its an application level message
+ // and if that channel is set.
+ // TODO(markusthoemmes): Return the messageType along with the payload.
+ if c.messageChan != nil && (messageType == websocket.TextMessage || messageType == websocket.BinaryMessage) {
+ if message, _ := ioutil.ReadAll(reader); message != nil {
+ c.messageChan <- message
}
}
+
+ return nil
}
-// Send sends an encodable message over the websocket connection.
-func (c *ManagedConnection) Send(msg interface{}) error {
+func (c *ManagedConnection) write(messageType int, body []byte) error {
c.connectionLock.RLock()
defer c.connectionLock.RUnlock()
- conn := c.connection
- if conn == nil {
+ if c.connection == nil {
return ErrConnectionNotEstablished
}
c.writerLock.Lock()
defer c.writerLock.Unlock()
+ return c.connection.WriteMessage(messageType, body)
+}
+
+// Send sends an encodable message over the websocket connection.
+func (c *ManagedConnection) Send(msg interface{}) error {
var b bytes.Buffer
enc := gob.NewEncoder(&b)
if err := enc.Encode(msg); err != nil {
return err
}
- return conn.WriteMessage(websocket.BinaryMessage, b.Bytes())
+ return c.write(websocket.BinaryMessage, b.Bytes())
}
-// Close closes the websocket connection.
-func (c *ManagedConnection) Close() error {
- c.closeChan <- struct{}{}
- c.connectionLock.RLock()
- defer c.connectionLock.RUnlock()
+// Shutdown closes the websocket connection.
+func (c *ManagedConnection) Shutdown() error {
+ c.closeOnce.Do(func() {
+ close(c.closeChan)
+ })
- if conn := c.connection; conn != nil {
- return conn.Close()
- }
- return nil
+ err := c.closeConnection()
+ c.processingWg.Wait()
+ return err
}
diff --git a/vendor/github.com/knative/pkg/websocket/hijack.go b/vendor/github.com/knative/pkg/websocket/hijack.go
new file mode 100644
index 0000000000..f1ac075732
--- /dev/null
+++ b/vendor/github.com/knative/pkg/websocket/hijack.go
@@ -0,0 +1,32 @@
+/*
+Copyright 2019 The Knative Authors
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package websocket
+
+import (
+ "bufio"
+ "fmt"
+ "net"
+ "net/http"
+)
+
+// HijackIfPossible calls Hijack() on the given http.ResponseWriter if it implements
+// http.Hijacker interface, which is required for net/http/httputil/reverseproxy
+// to handle connection upgrade/switching protocol. Otherwise returns an error.
+func HijackIfPossible(w http.ResponseWriter) (net.Conn, *bufio.ReadWriter, error) {
+ hj, ok := w.(http.Hijacker)
+ if !ok {
+ return nil, nil, fmt.Errorf("wrapped writer of type %T can't be hijacked", w)
+ }
+ return hj.Hijack()
+}
diff --git a/vendor/github.com/knative/serving/cmd/activator/kodata/HEAD b/vendor/github.com/knative/serving/cmd/activator/kodata/HEAD
new file mode 120000
index 0000000000..8f63681d36
--- /dev/null
+++ b/vendor/github.com/knative/serving/cmd/activator/kodata/HEAD
@@ -0,0 +1 @@
+../../../.git/HEAD
\ No newline at end of file
diff --git a/vendor/github.com/knative/serving/cmd/activator/main.go b/vendor/github.com/knative/serving/cmd/activator/main.go
index 17e930194e..dcdf93e1fc 100644
--- a/vendor/github.com/knative/serving/cmd/activator/main.go
+++ b/vendor/github.com/knative/serving/cmd/activator/main.go
@@ -17,12 +17,15 @@ limitations under the License.
package main
import (
+ "context"
"flag"
"fmt"
"log"
"net/http"
"time"
+ "k8s.io/client-go/tools/clientcmd"
+
"github.com/knative/serving/cmd/util"
"github.com/knative/serving/pkg/autoscaler"
"k8s.io/apimachinery/pkg/util/wait"
@@ -30,26 +33,34 @@ import (
"github.com/knative/pkg/logging/logkey"
"github.com/knative/pkg/configmap"
+ "github.com/knative/pkg/controller"
"github.com/knative/pkg/signals"
+ "github.com/knative/pkg/system"
+ "github.com/knative/pkg/version"
+ "github.com/knative/pkg/websocket"
"github.com/knative/serving/pkg/activator"
activatorhandler "github.com/knative/serving/pkg/activator/handler"
activatorutil "github.com/knative/serving/pkg/activator/util"
+ "github.com/knative/serving/pkg/apis/serving"
+ "github.com/knative/serving/pkg/apis/serving/v1alpha1"
clientset "github.com/knative/serving/pkg/client/clientset/versioned"
+ servinginformers "github.com/knative/serving/pkg/client/informers/externalversions"
"github.com/knative/serving/pkg/http/h2c"
"github.com/knative/serving/pkg/logging"
- "github.com/knative/serving/pkg/system"
- "go.opencensus.io/exporter/prometheus"
- "go.opencensus.io/stats/view"
+ "github.com/knative/serving/pkg/metrics"
+ "github.com/knative/serving/pkg/queue"
+ "github.com/knative/serving/pkg/reconciler"
+ "github.com/knative/serving/pkg/utils"
"go.uber.org/zap"
+ "k8s.io/apimachinery/pkg/api/errors"
+ kubeinformers "k8s.io/client-go/informers"
"k8s.io/client-go/kubernetes"
- "k8s.io/client-go/rest"
-
- "github.com/knative/serving/pkg/websocket"
+ "k8s.io/client-go/tools/cache"
)
const (
maxUploadBytes = 32e6 // 32MB - same as app engine
- logLevelKey = "activator"
+ component = "activator"
maxRetries = 18 // the sum of all retries would add up to 1 minute
minRetryInterval = 100 * time.Millisecond
@@ -62,9 +73,22 @@ const (
// Add enough buffer to not block request serving on stats collection
requestCountingQueueLength = 100
+
+ // The number of requests that are queued on the breaker before the 503s are sent.
+ // The value must be adjusted depending on the actual production requirements.
+ breakerQueueDepth = 10000
+
+ // The upper bound for concurrent requests sent to the revision.
+ // As new endpoints show up, the Breakers concurrency increases up to this value.
+ breakerMaxConcurrency = 1000
+
+ defaultResyncInterval = 10 * time.Hour
)
var (
+ masterURL = flag.String("master", "", "The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.")
+ kubeconfig = flag.String("kubeconfig", "", "Path to a kubeconfig. Only required if out-of-cluster.")
+
logger *zap.SugaredLogger
statSink *websocket.ManagedConnection
@@ -72,16 +96,20 @@ var (
reqChan = make(chan activatorhandler.ReqEvent, requestCountingQueueLength)
)
-func statReporter() {
+func statReporter(stopCh <-chan struct{}) {
for {
- sm := <-statChan
- if statSink == nil {
- logger.Error("Stat sink not connected.")
- continue
- }
- err := statSink.Send(sm)
- if err != nil {
- logger.Error("Error while sending stat", zap.Error(err))
+ select {
+ case sm := <-statChan:
+ if statSink == nil {
+ logger.Error("Stat sink not connected")
+ continue
+ }
+ err := statSink.Send(sm)
+ if err != nil {
+ logger.Errorw("Error while sending stat", zap.Error(err))
+ }
+ case <-stopCh:
+ return
}
}
}
@@ -96,39 +124,103 @@ func main() {
if err != nil {
log.Fatalf("Error parsing logging configuration: %v", err)
}
- createdLogger, atomicLevel := logging.NewLoggerFromConfig(config, logLevelKey)
+ createdLogger, atomicLevel := logging.NewLoggerFromConfig(config, component)
logger = createdLogger.With(zap.String(logkey.ControllerType, "activator"))
defer logger.Sync()
logger.Info("Starting the knative activator")
- clusterConfig, err := rest.InClusterConfig()
+ clusterConfig, err := clientcmd.BuildConfigFromFlags(*masterURL, *kubeconfig)
if err != nil {
- logger.Fatal("Error getting in cluster configuration", zap.Error(err))
+ logger.Fatalw("Error getting cluster configuration", zap.Error(err))
}
kubeClient, err := kubernetes.NewForConfig(clusterConfig)
if err != nil {
- logger.Fatal("Error building new kubernetes client", zap.Error(err))
+ logger.Fatalw("Error building new kubernetes client", zap.Error(err))
}
servingClient, err := clientset.NewForConfig(clusterConfig)
if err != nil {
- logger.Fatal("Error building serving clientset", zap.Error(err))
+ logger.Fatalw("Error building serving clientset", zap.Error(err))
}
- logger.Info("Initializing OpenCensus Prometheus exporter.")
- promExporter, err := prometheus.NewExporter(prometheus.Options{Namespace: "activator"})
- if err != nil {
- logger.Fatal("Failed to create the Prometheus exporter", zap.Error(err))
+ if err := version.CheckMinimumVersion(kubeClient.Discovery()); err != nil {
+ logger.Fatalf("Version check failed: %v", err)
}
- view.RegisterExporter(promExporter)
- view.SetReportingPeriod(10 * time.Second)
reporter, err := activator.NewStatsReporter()
if err != nil {
- logger.Fatal("Failed to create stats reporter", zap.Error(err))
+ logger.Fatalw("Failed to create stats reporter", zap.Error(err))
+ }
+
+ // Set up signals so we handle the first shutdown signal gracefully.
+ stopCh := signals.SetupSignalHandler()
+
+ kubeInformerFactory := kubeinformers.NewSharedInformerFactory(kubeClient, defaultResyncInterval)
+ servingInformerFactory := servinginformers.NewSharedInformerFactory(servingClient, defaultResyncInterval)
+ endpointInformer := kubeInformerFactory.Core().V1().Endpoints()
+ revisionInformer := servingInformerFactory.Serving().V1alpha1().Revisions()
+
+ // Run informers instead of starting them from the factory to prevent the sync hanging because of empty handler.
+ go revisionInformer.Informer().Run(stopCh)
+ go endpointInformer.Informer().Run(stopCh)
+
+ logger.Info("Waiting for informer caches to sync")
+
+ informerSyncs := []cache.InformerSynced{
+ endpointInformer.Informer().HasSynced,
+ revisionInformer.Informer().HasSynced,
+ }
+ // Make sure the caches are in sync before we add the actual handler.
+ // This will prevent from missing endpoint 'Add' events during startup, e.g. when the endpoints informer
+ // is already in sync and it could not perform it because of
+ // revision informer still being synchronized.
+ for i, synced := range informerSyncs {
+ if ok := cache.WaitForCacheSync(stopCh, synced); !ok {
+ logger.Fatalf("failed to wait for cache at index %d to sync", i)
+ }
+ }
+ params := queue.BreakerParams{QueueDepth: breakerQueueDepth, MaxConcurrency: breakerMaxConcurrency, InitialCapacity: 0}
+
+ // Return the number of endpoints, 0 if no endpoints are found.
+ endpointsGetter := func(revID activator.RevisionID) (int32, error) {
+ endpoints, err := endpointInformer.Lister().Endpoints(revID.Namespace).Get(revID.Name)
+ if errors.IsNotFound(err) {
+ return 0, nil
+ }
+ if err != nil {
+ return 0, err
+ }
+ addresses := activator.EndpointsAddressCount(endpoints.Subsets)
+ return int32(addresses), nil
+ }
+
+ // Return the revision from the observer.
+ revisionGetter := func(revID activator.RevisionID) (*v1alpha1.Revision, error) {
+ return revisionInformer.Lister().Revisions(revID.Namespace).Get(revID.Name)
+ }
+
+ throttlerParams := activator.ThrottlerParams{
+ BreakerParams: params,
+ Logger: logger,
+ GetEndpoints: endpointsGetter,
+ GetRevision: revisionGetter,
}
+ throttler := activator.NewThrottler(throttlerParams)
- a := activator.NewRevisionActivator(kubeClient, servingClient, logger, reporter)
+ handler := cache.ResourceEventHandlerFuncs{
+ AddFunc: activator.UpdateEndpoints(throttler),
+ UpdateFunc: controller.PassNew(activator.UpdateEndpoints(throttler)),
+ DeleteFunc: activator.DeleteBreaker(throttler),
+ }
+
+ // Update/create the breaker in the throttler when the number of endpoints changes.
+ endpointInformer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{
+ // Pass only the endpoints created by revisions.
+ FilterFunc: reconciler.LabelExistsFilterFunc(serving.RevisionUID),
+ Handler: handler,
+ })
+
+ a := activator.NewRevisionActivator(kubeClient, servingClient, logger)
a = activator.NewDedupingActivator(a)
// Retry on 503's for up to 60 seconds. The reason is there is
@@ -143,52 +235,59 @@ func main() {
rt := activatorutil.NewRetryRoundTripper(activatorutil.AutoTransport, logger, backoffSettings, shouldRetry)
// Open a websocket connection to the autoscaler
- autoscalerEndpoint := fmt.Sprintf("ws://%s.%s.svc.cluster.local:%s", "autoscaler", system.Namespace, "8080")
+ autoscalerEndpoint := fmt.Sprintf("ws://%s.%s.svc.%s:%s", "autoscaler", system.Namespace(), utils.GetClusterDomainName(), "8080")
logger.Infof("Connecting to autoscaler at %s", autoscalerEndpoint)
- statSink = websocket.NewDurableSendingConnection(autoscalerEndpoint)
- go statReporter()
+ statSink = websocket.NewDurableSendingConnection(autoscalerEndpoint, logger)
+ go statReporter(stopCh)
podName := util.GetRequiredEnvOrFatal("POD_NAME", logger)
- activatorhandler.NewConcurrencyReporter(podName, activatorhandler.Channels{
- ReqChan: reqChan,
- StatChan: statChan,
- ReportChan: time.NewTicker(time.Second).C,
- })
- ah := &activatorhandler.FilteringHandler{
- NextHandler: activatorhandler.NewRequestEventHandler(reqChan,
- &activatorhandler.EnforceMaxContentLengthHandler{
- MaxContentLengthBytes: maxUploadBytes,
- NextHandler: &activatorhandler.ActivationHandler{
- Activator: a,
- Transport: rt,
- Logger: logger,
- Reporter: reporter,
+ // Create and run our concurrency reporter
+ cr := activatorhandler.NewConcurrencyReporter(podName, reqChan, time.NewTicker(time.Second).C, statChan)
+ go cr.Run(stopCh)
+
+ ah := &activatorhandler.ProbeHandler{
+ NextHandler: &activatorhandler.FilteringHandler{
+ NextHandler: activatorhandler.NewRequestEventHandler(reqChan,
+ &activatorhandler.EnforceMaxContentLengthHandler{
+ MaxContentLengthBytes: maxUploadBytes,
+ NextHandler: &activatorhandler.ActivationHandler{
+ Activator: a,
+ Transport: rt,
+ Logger: logger,
+ Reporter: reporter,
+ Throttler: throttler,
+ },
},
- },
- ),
+ ),
+ },
}
- // set up signals so we handle the first shutdown signal gracefully
- stopCh := signals.SetupSignalHandler()
- go func() {
- <-stopCh
- a.Shutdown()
- }()
-
// Watch the logging config map and dynamically update logging levels.
- configMapWatcher := configmap.NewInformedWatcher(kubeClient, system.Namespace)
- configMapWatcher.Watch(logging.ConfigName, logging.UpdateLevelFromConfigMap(logger, atomicLevel, logLevelKey))
+ configMapWatcher := configmap.NewInformedWatcher(kubeClient, system.Namespace())
+ configMapWatcher.Watch(logging.ConfigName, logging.UpdateLevelFromConfigMap(logger, atomicLevel, component))
+ // Watch the observability config map and dynamically update metrics exporter.
+ configMapWatcher.Watch(metrics.ObservabilityConfigName, metrics.UpdateExporterFromConfigMap(component, logger))
if err = configMapWatcher.Start(stopCh); err != nil {
- logger.Fatalf("failed to start configuration manager: %v", err)
+ logger.Fatalw("Failed to start configuration manager", zap.Error(err))
}
- // Start the endpoint for Prometheus scraping
+ http1Srv := h2c.NewServer(":8080", ah)
go func() {
- mux := http.NewServeMux()
- mux.Handle("/metrics", promExporter)
- http.ListenAndServe(":9090", mux)
+ if err := http1Srv.ListenAndServe(); err != nil {
+ logger.Errorw("Error running HTTP server", zap.Error(err))
+ }
+ }()
+
+ h2cSrv := h2c.NewServer(":8081", ah)
+ go func() {
+ if err := h2cSrv.ListenAndServe(); err != nil {
+ logger.Errorw("Error running HTTP server", zap.Error(err))
+ }
}()
- h2c.ListenAndServe(":8080", ah)
+ <-stopCh
+ a.Shutdown()
+ http1Srv.Shutdown(context.TODO())
+ h2cSrv.Shutdown(context.TODO())
}
diff --git a/vendor/github.com/knative/serving/cmd/autoscaler/kodata/HEAD b/vendor/github.com/knative/serving/cmd/autoscaler/kodata/HEAD
new file mode 120000
index 0000000000..8f63681d36
--- /dev/null
+++ b/vendor/github.com/knative/serving/cmd/autoscaler/kodata/HEAD
@@ -0,0 +1 @@
+../../../.git/HEAD
\ No newline at end of file
diff --git a/vendor/github.com/knative/serving/cmd/autoscaler/main.go b/vendor/github.com/knative/serving/cmd/autoscaler/main.go
index 9ddb85dc8d..8226e62685 100644
--- a/vendor/github.com/knative/serving/cmd/autoscaler/main.go
+++ b/vendor/github.com/knative/serving/cmd/autoscaler/main.go
@@ -18,30 +18,31 @@ package main
import (
"flag"
+ "fmt"
"log"
- "net/http"
"time"
"github.com/knative/pkg/configmap"
"github.com/knative/pkg/signals"
- kpa "github.com/knative/serving/pkg/apis/autoscaling/v1alpha1"
+ "github.com/knative/pkg/system"
+ "github.com/knative/pkg/version"
"github.com/knative/serving/pkg/apis/serving"
"github.com/knative/serving/pkg/autoscaler"
"github.com/knative/serving/pkg/autoscaler/statserver"
clientset "github.com/knative/serving/pkg/client/clientset/versioned"
informers "github.com/knative/serving/pkg/client/informers/externalversions"
"github.com/knative/serving/pkg/logging"
+ "github.com/knative/serving/pkg/metrics"
"github.com/knative/serving/pkg/reconciler"
- "github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling"
- "github.com/knative/serving/pkg/system"
- "go.opencensus.io/exporter/prometheus"
- "go.opencensus.io/stats/view"
+ "github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/hpa"
+ "github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa"
"go.uber.org/zap"
"golang.org/x/sync/errgroup"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/client-go/discovery/cached"
"k8s.io/client-go/dynamic"
kubeinformers "k8s.io/client-go/informers"
+ corev1informers "k8s.io/client-go/informers/core/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/restmapper"
"k8s.io/client-go/scale"
@@ -53,7 +54,7 @@ const (
controllerThreads = 2
statsServerAddr = ":8080"
statsBufferLen = 1000
- logLevelKey = "autoscaler"
+ component = "autoscaler"
)
var (
@@ -74,7 +75,7 @@ func main() {
}
var atomicLevel zap.AtomicLevel
- logger, atomicLevel := logging.NewLoggerFromConfig(loggingConfig, logLevelKey)
+ logger, atomicLevel := logging.NewLoggerFromConfig(loggingConfig, component)
defer logger.Sync()
// set up signals so we handle the first shutdown signal gracefully
@@ -82,45 +83,48 @@ func main() {
cfg, err := clientcmd.BuildConfigFromFlags(*masterURL, *kubeconfig)
if err != nil {
- logger.Fatal("Error building kubeconfig.", zap.Error(err))
+ logger.Fatalw("Error building kubeconfig", zap.Error(err))
}
kubeClientSet, err := kubernetes.NewForConfig(cfg)
if err != nil {
- logger.Fatal("Error building kubernetes clientset.", zap.Error(err))
+ logger.Fatalw("Error building kubernetes clientset", zap.Error(err))
}
- // Watch the logging config map and dynamically update logging levels.
- configMapWatcher := configmap.NewInformedWatcher(kubeClientSet, system.Namespace)
- configMapWatcher.Watch(logging.ConfigName, logging.UpdateLevelFromConfigMap(logger, atomicLevel, logLevelKey))
+ if err := version.CheckMinimumVersion(kubeClientSet.Discovery()); err != nil {
+ logger.Fatalf("Version check failed: %v", err)
+ }
+ // Watch the logging config map and dynamically update logging levels.
+ configMapWatcher := configmap.NewInformedWatcher(kubeClientSet, system.Namespace())
+ configMapWatcher.Watch(logging.ConfigName, logging.UpdateLevelFromConfigMap(logger, atomicLevel, component))
+ // Watch the observability config map and dynamically update metrics exporter.
+ configMapWatcher.Watch(metrics.ObservabilityConfigName, metrics.UpdateExporterFromConfigMap(component, logger))
// This is based on how Kubernetes sets up its scale client based on discovery:
// https://github.com/kubernetes/kubernetes/blob/94c2c6c84/cmd/kube-controller-manager/app/autoscaling.go#L75-L81
restMapper := buildRESTMapper(kubeClientSet, stopCh)
scaleClient, err := scale.NewForConfig(cfg, restMapper, dynamic.LegacyAPIPathResolverFunc,
scale.NewDiscoveryScaleKindResolver(kubeClientSet.Discovery()))
if err != nil {
- logger.Fatal("Error building scale clientset.", zap.Error(err))
+ logger.Fatalw("Error building scale clientset", zap.Error(err))
}
servingClientSet, err := clientset.NewForConfig(cfg)
if err != nil {
- logger.Fatal("Error building serving clientset.", zap.Error(err))
+ logger.Fatalw("Error building serving clientset", zap.Error(err))
}
rawConfig, err := configmap.Load("/etc/config-autoscaler")
if err != nil {
- logger.Fatalf("Error reading autoscaler configuration: %v", err)
+ logger.Fatalw("Error reading autoscaler configuration", zap.Error(err))
}
dynConfig, err := autoscaler.NewDynamicConfigFromMap(rawConfig, logger)
if err != nil {
- logger.Fatalf("Error parsing autoscaler configuration: %v", err)
+ logger.Fatalw("Error parsing autoscaler configuration", zap.Error(err))
}
// Watch the autoscaler config map and dynamically update autoscaler config.
configMapWatcher.Watch(autoscaler.ConfigName, dynConfig.Update)
- multiScaler := autoscaler.NewMultiScaler(dynConfig, stopCh, uniScalerFactory, logger)
-
opt := reconciler.Options{
KubeClientSet: kubeClientSet,
ServingClientSet: servingClientSet,
@@ -130,47 +134,42 @@ func main() {
servingInformerFactory := informers.NewSharedInformerFactory(servingClientSet, time.Second*30)
kubeInformerFactory := kubeinformers.NewSharedInformerFactory(kubeClientSet, time.Second*30)
- kpaInformer := servingInformerFactory.Autoscaling().V1alpha1().PodAutoscalers()
+ paInformer := servingInformerFactory.Autoscaling().V1alpha1().PodAutoscalers()
endpointsInformer := kubeInformerFactory.Core().V1().Endpoints()
+ hpaInformer := kubeInformerFactory.Autoscaling().V1().HorizontalPodAutoscalers()
- kpaScaler := autoscaling.NewKPAScaler(servingClientSet, scaleClient, logger, configMapWatcher)
- ctl := autoscaling.NewController(&opt, kpaInformer, endpointsInformer, multiScaler, kpaScaler)
+ // uniScalerFactory depends endpointsInformer to be set.
+ multiScaler := autoscaler.NewMultiScaler(dynConfig, stopCh, uniScalerFactoryFunc(endpointsInformer), logger)
+ kpaScaler := kpa.NewKPAScaler(servingClientSet, scaleClient, logger, configMapWatcher)
+ kpaCtl := kpa.NewController(&opt, paInformer, endpointsInformer, multiScaler, kpaScaler, dynConfig)
+ hpaCtl := hpa.NewController(&opt, paInformer, hpaInformer)
// Start the serving informer factory.
kubeInformerFactory.Start(stopCh)
servingInformerFactory.Start(stopCh)
if err := configMapWatcher.Start(stopCh); err != nil {
- logger.Fatalf("failed to start watching logging config: %v", err)
+ logger.Fatalw("Failed to start watching logging config", zap.Error(err))
}
// Wait for the caches to be synced before starting controllers.
logger.Info("Waiting for informer caches to sync")
for i, synced := range []cache.InformerSynced{
- kpaInformer.Informer().HasSynced,
+ paInformer.Informer().HasSynced,
endpointsInformer.Informer().HasSynced,
+ hpaInformer.Informer().HasSynced,
} {
if ok := cache.WaitForCacheSync(stopCh, synced); !ok {
- logger.Fatalf("failed to wait for cache at index %v to sync", i)
+ logger.Fatalf("Failed to wait for cache at index %d to sync", i)
}
}
var eg errgroup.Group
eg.Go(func() error {
- return ctl.Run(controllerThreads, stopCh)
+ return kpaCtl.Run(controllerThreads, stopCh)
+ })
+ eg.Go(func() error {
+ return hpaCtl.Run(controllerThreads, stopCh)
})
-
- // Setup the metrics to flow to Prometheus.
- logger.Info("Initializing OpenCensus Prometheus exporter.")
- promExporter, err := prometheus.NewExporter(prometheus.Options{Namespace: "autoscaler"})
- if err != nil {
- logger.Fatal("Failed to create the Prometheus exporter.", zap.Error(err))
- }
- view.RegisterExporter(promExporter)
- view.SetReportingPeriod(time.Second * 10)
- go func() {
- http.Handle("/metrics", promExporter)
- http.ListenAndServe(":9090", nil)
- }()
statsCh := make(chan *autoscaler.StatMessage, statsBufferLen)
@@ -193,7 +192,7 @@ func main() {
go func() {
if err := eg.Wait(); err != nil {
- logger.Error("Group error.", zap.Error(err))
+ logger.Errorw("Group error.", zap.Error(err))
}
close(egCh)
}()
@@ -218,20 +217,29 @@ func buildRESTMapper(kubeClientSet kubernetes.Interface, stopCh <-chan struct{})
return rm
}
-func uniScalerFactory(kpa *kpa.PodAutoscaler, dynamicConfig *autoscaler.DynamicConfig) (autoscaler.UniScaler, error) {
- // Create a stats reporter which tags statistics by KPA namespace, configuration name, and KPA name.
- reporter, err := autoscaler.NewStatsReporter(kpa.Namespace,
- labelValueOrEmpty(kpa, serving.ServiceLabelKey), labelValueOrEmpty(kpa, serving.ConfigurationLabelKey), kpa.Name)
- if err != nil {
- return nil, err
- }
+func uniScalerFactoryFunc(endpointsInformer corev1informers.EndpointsInformer) func(metric *autoscaler.Metric, dynamicConfig *autoscaler.DynamicConfig) (autoscaler.UniScaler, error) {
+ return func(metric *autoscaler.Metric, dynamicConfig *autoscaler.DynamicConfig) (autoscaler.UniScaler, error) {
+ // Create a stats reporter which tags statistics by PA namespace, configuration name, and PA name.
+ reporter, err := autoscaler.NewStatsReporter(metric.Namespace,
+ labelValueOrEmpty(metric, serving.ServiceLabelKey), labelValueOrEmpty(metric, serving.ConfigurationLabelKey), metric.Name)
+ if err != nil {
+ return nil, err
+ }
+
+ revName := metric.Labels[serving.RevisionLabelKey]
+ if revName == "" {
+ return nil, fmt.Errorf("No Revision label found in Metric: %v", metric)
+ }
- return autoscaler.New(dynamicConfig, kpa.Spec.ContainerConcurrency, reporter), nil
+ return autoscaler.New(dynamicConfig, metric.Namespace,
+ reconciler.GetServingK8SServiceNameForObj(revName), endpointsInformer,
+ metric.Spec.TargetConcurrency, reporter)
+ }
}
-func labelValueOrEmpty(kpa *kpa.PodAutoscaler, labelKey string) string {
- if kpa.Labels != nil {
- if value, ok := kpa.Labels[labelKey]; ok {
+func labelValueOrEmpty(metric *autoscaler.Metric, labelKey string) string {
+ if metric.Labels != nil {
+ if value, ok := metric.Labels[labelKey]; ok {
return value
}
}
diff --git a/vendor/github.com/knative/serving/cmd/controller/kodata/HEAD b/vendor/github.com/knative/serving/cmd/controller/kodata/HEAD
new file mode 120000
index 0000000000..8f63681d36
--- /dev/null
+++ b/vendor/github.com/knative/serving/cmd/controller/kodata/HEAD
@@ -0,0 +1 @@
+../../../.git/HEAD
\ No newline at end of file
diff --git a/vendor/github.com/knative/serving/cmd/controller/main.go b/vendor/github.com/knative/serving/cmd/controller/main.go
index a66e6a985f..d0bfee058b 100644
--- a/vendor/github.com/knative/serving/cmd/controller/main.go
+++ b/vendor/github.com/knative/serving/cmd/controller/main.go
@@ -21,19 +21,13 @@ import (
"log"
"time"
- "github.com/knative/pkg/configmap"
-
- "github.com/knative/pkg/controller"
- "github.com/knative/serving/pkg/logging"
- "github.com/knative/serving/pkg/reconciler"
-
- "github.com/knative/serving/pkg/system"
-
"k8s.io/client-go/dynamic"
kubeinformers "k8s.io/client-go/informers"
"k8s.io/client-go/kubernetes"
+ "k8s.io/client-go/rest"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/tools/clientcmd"
+
// Uncomment the following line to load the gcp plugin (only required to authenticate against GKE clusters).
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
@@ -41,20 +35,28 @@ import (
cachinginformers "github.com/knative/caching/pkg/client/informers/externalversions"
sharedclientset "github.com/knative/pkg/client/clientset/versioned"
sharedinformers "github.com/knative/pkg/client/informers/externalversions"
+ "github.com/knative/pkg/configmap"
+ "github.com/knative/pkg/controller"
"github.com/knative/pkg/signals"
+ "github.com/knative/pkg/system"
+ "github.com/knative/pkg/version"
clientset "github.com/knative/serving/pkg/client/clientset/versioned"
informers "github.com/knative/serving/pkg/client/informers/externalversions"
+ "github.com/knative/serving/pkg/logging"
+ "github.com/knative/serving/pkg/metrics"
+ "github.com/knative/serving/pkg/reconciler"
"github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress"
"github.com/knative/serving/pkg/reconciler/v1alpha1/configuration"
"github.com/knative/serving/pkg/reconciler/v1alpha1/labeler"
"github.com/knative/serving/pkg/reconciler/v1alpha1/revision"
"github.com/knative/serving/pkg/reconciler/v1alpha1/route"
"github.com/knative/serving/pkg/reconciler/v1alpha1/service"
+ "go.uber.org/zap"
)
const (
threadsPerController = 2
- logLevelKey = "controller"
+ component = "controller"
)
var (
@@ -72,7 +74,7 @@ func main() {
if err != nil {
log.Fatalf("Error parsing logging configuration: %v", err)
}
- logger, atomicLevel := logging.NewLoggerFromConfig(loggingConfig, logLevelKey)
+ logger, atomicLevel := logging.NewLoggerFromConfig(loggingConfig, component)
defer logger.Sync()
// set up signals so we handle the first shutdown signal gracefully
@@ -80,35 +82,43 @@ func main() {
cfg, err := clientcmd.BuildConfigFromFlags(*masterURL, *kubeconfig)
if err != nil {
- logger.Fatalf("Error building kubeconfig: %v", err)
+ logger.Fatalw("Error building kubeconfig", zap.Error(err))
}
+ // We run 6 controllers, so bump the defaults.
+ cfg.QPS = 6 * rest.DefaultQPS
+ cfg.Burst = 6 * rest.DefaultBurst
+
kubeClient, err := kubernetes.NewForConfig(cfg)
if err != nil {
- logger.Fatalf("Error building kubernetes clientset: %v", err)
+ logger.Fatalw("Error building kubernetes clientset", zap.Error(err))
}
sharedClient, err := sharedclientset.NewForConfig(cfg)
if err != nil {
- logger.Fatalf("Error building shared clientset: %v", err)
+ logger.Fatalw("Error building shared clientset", zap.Error(err))
}
servingClient, err := clientset.NewForConfig(cfg)
if err != nil {
- logger.Fatalf("Error building serving clientset: %v", err)
+ logger.Fatalw("Error building serving clientset", zap.Error(err))
}
dynamicClient, err := dynamic.NewForConfig(cfg)
if err != nil {
- logger.Fatalf("Error building build clientset: %v", err)
+ logger.Fatalw("Error building build clientset", zap.Error(err))
}
cachingClient, err := cachingclientset.NewForConfig(cfg)
if err != nil {
- logger.Fatalf("Error building caching clientset: %v", err)
+ logger.Fatalw("Error building caching clientset", zap.Error(err))
+ }
+
+ if err := version.CheckMinimumVersion(kubeClient.Discovery()); err != nil {
+ logger.Fatalf("Version check failed: %v", err)
}
- configMapWatcher := configmap.NewInformedWatcher(kubeClient, system.Namespace)
+ configMapWatcher := configmap.NewInformedWatcher(kubeClient, system.Namespace())
opt := reconciler.Options{
KubeClientSet: kubeClient,
@@ -188,7 +198,9 @@ func main() {
}
// Watch the logging config map and dynamically update logging levels.
- configMapWatcher.Watch(logging.ConfigName, logging.UpdateLevelFromConfigMap(logger, atomicLevel, logLevelKey))
+ configMapWatcher.Watch(logging.ConfigName, logging.UpdateLevelFromConfigMap(logger, atomicLevel, component))
+ // Watch the observability config map and dynamically update metrics exporter.
+ configMapWatcher.Watch(metrics.ObservabilityConfigName, metrics.UpdateExporterFromConfigMap(component, logger))
// These are non-blocking.
kubeInformerFactory.Start(stopCh)
@@ -196,7 +208,7 @@ func main() {
servingInformerFactory.Start(stopCh)
cachingInformerFactory.Start(stopCh)
if err := configMapWatcher.Start(stopCh); err != nil {
- logger.Fatalf("failed to start configuration manager: %v", err)
+ logger.Fatalw("failed to start configuration manager", zap.Error(err))
}
// Wait for the caches to be synced before starting controllers.
@@ -216,7 +228,7 @@ func main() {
virtualServiceInformer.Informer().HasSynced,
} {
if ok := cache.WaitForCacheSync(stopCh, synced); !ok {
- logger.Fatalf("failed to wait for cache at index %v to sync", i)
+ logger.Fatalf("Failed to wait for cache at index %d to sync", i)
}
}
@@ -226,7 +238,7 @@ func main() {
// We don't expect this to return until stop is called,
// but if it does, propagate it back.
if runErr := ctrlr.Run(threadsPerController, stopCh); runErr != nil {
- logger.Fatalf("Error running controller: %v", runErr)
+ logger.Fatalw("Error running controller", zap.Error(runErr))
}
}(ctrlr)
}
diff --git a/vendor/github.com/knative/serving/cmd/queue/kodata/HEAD b/vendor/github.com/knative/serving/cmd/queue/kodata/HEAD
new file mode 120000
index 0000000000..8f63681d36
--- /dev/null
+++ b/vendor/github.com/knative/serving/cmd/queue/kodata/HEAD
@@ -0,0 +1 @@
+../../../.git/HEAD
\ No newline at end of file
diff --git a/vendor/github.com/knative/serving/cmd/queue/main.go b/vendor/github.com/knative/serving/cmd/queue/main.go
index 7babdf047b..ea747db2fb 100644
--- a/vendor/github.com/knative/serving/cmd/queue/main.go
+++ b/vendor/github.com/knative/serving/cmd/queue/main.go
@@ -18,29 +18,34 @@ package main
import (
"context"
+ "errors"
"flag"
"fmt"
- "io"
"net/http"
"net/http/httputil"
"net/url"
"os"
- "os/signal"
"strings"
- "sync"
- "syscall"
"time"
+ "github.com/knative/pkg/signals"
+
"github.com/knative/pkg/logging/logkey"
+ "github.com/knative/pkg/websocket"
"github.com/knative/serving/cmd/util"
activatorutil "github.com/knative/serving/pkg/activator/util"
+ "github.com/knative/serving/pkg/apis/serving/v1alpha1"
"github.com/knative/serving/pkg/autoscaler"
"github.com/knative/serving/pkg/http/h2c"
"github.com/knative/serving/pkg/logging"
+ "github.com/knative/serving/pkg/network"
"github.com/knative/serving/pkg/queue"
- "github.com/knative/serving/pkg/system"
- "github.com/knative/serving/pkg/websocket"
+ "github.com/knative/serving/pkg/queue/health"
+ "github.com/knative/serving/pkg/utils"
+ "go.opencensus.io/exporter/prometheus"
+ "go.opencensus.io/stats/view"
"go.uber.org/zap"
+ "k8s.io/apimachinery/pkg/util/wait"
)
const (
@@ -48,68 +53,104 @@ const (
// reporting so that latency in the stat pipeline doesn't
// interfere with request handling.
statReportingQueueLength = 10
+
// Add enough buffer to not block request serving on stats collection
requestCountingQueueLength = 100
- // Number of seconds the /quitquitquit handler should wait before
- // returning. The purpose is to keep the container alive a little
- // bit longer, that it doesn't go away until the pod is truly
- // removed from service.
- quitSleepSecs = 20
+
+ // Duration the /quitquitquit handler should wait before returning.
+ // This is to give Istio a little bit more time to remove the pod
+ // from its configuration and propagate that to all istio-proxies
+ // in the mesh.
+ quitSleepDuration = 20 * time.Second
+
+ // Only report errors about a non-existent websocket connection after
+ // having been up and running for this long.
+ startupConnectionGrace = 10 * time.Second
)
var (
- podName string
- servingNamespace string
- servingRevision string
- servingRevisionKey string
- servingAutoscaler string
- servingAutoscalerPort string
- statChan = make(chan *autoscaler.Stat, statReportingQueueLength)
- reqChan = make(chan queue.ReqEvent, requestCountingQueueLength)
- statSink *websocket.ManagedConnection
- logger *zap.SugaredLogger
- breaker *queue.Breaker
+ podName string
+ servingConfig string
+ servingNamespace string
+ servingRevision string
+ servingRevisionKey string
+ servingAutoscaler string
+ autoscalerNamespace string
+ servingAutoscalerPort int
+ userTargetPort int
+ userTargetAddress string
+ containerConcurrency int
+ revisionTimeoutSeconds int
+ statChan = make(chan *autoscaler.Stat, statReportingQueueLength)
+ reqChan = make(chan queue.ReqEvent, requestCountingQueueLength)
+ statSink *websocket.ManagedConnection
+ logger *zap.SugaredLogger
+ breaker *queue.Breaker
h2cProxy *httputil.ReverseProxy
httpProxy *httputil.ReverseProxy
- health *healthServer = &healthServer{alive: true}
+ server *http.Server
+ healthState = &health.State{}
+ reporter *queue.Reporter // Prometheus stats reporter.
- containerConcurrency = flag.Int("containerConcurrency", 0, "")
+ startupTime = time.Now()
)
func initEnv() {
podName = util.GetRequiredEnvOrFatal("SERVING_POD", logger)
+ servingConfig = util.GetRequiredEnvOrFatal("SERVING_CONFIGURATION", logger)
servingNamespace = util.GetRequiredEnvOrFatal("SERVING_NAMESPACE", logger)
servingRevision = util.GetRequiredEnvOrFatal("SERVING_REVISION", logger)
servingAutoscaler = util.GetRequiredEnvOrFatal("SERVING_AUTOSCALER", logger)
- servingAutoscalerPort = util.GetRequiredEnvOrFatal("SERVING_AUTOSCALER_PORT", logger)
+ autoscalerNamespace = util.GetRequiredEnvOrFatal("SYSTEM_NAMESPACE", logger)
+ servingAutoscalerPort = util.MustParseIntEnvOrFatal("SERVING_AUTOSCALER_PORT", logger)
+ containerConcurrency = util.MustParseIntEnvOrFatal("CONTAINER_CONCURRENCY", logger)
+ revisionTimeoutSeconds = util.MustParseIntEnvOrFatal("REVISION_TIMEOUT_SECONDS", logger)
+ userTargetPort = util.MustParseIntEnvOrFatal("USER_PORT", logger)
+ userTargetAddress = fmt.Sprintf("127.0.0.1:%d", userTargetPort)
// TODO(mattmoor): Move this key to be in terms of the KPA.
- servingRevisionKey = autoscaler.NewKpaKey(servingNamespace, servingRevision)
+ servingRevisionKey = autoscaler.NewMetricKey(servingNamespace, servingRevision)
+ _reporter, err := queue.NewStatsReporter(servingNamespace, servingConfig, servingRevision, podName)
+ if err != nil {
+ logger.Fatalw("Failed to create stats reporter", zap.Error(err))
+ }
+ reporter = _reporter
}
func statReporter() {
for {
s := <-statChan
- if statSink == nil {
- logger.Warn("Stat sink not (yet) connected.")
- continue
- }
- if !health.isAlive() {
- s.LameDuck = true
- }
- sm := autoscaler.StatMessage{
- Stat: *s,
- Key: servingRevisionKey,
- }
- err := statSink.Send(sm)
- if err != nil {
- logger.Error("Error while sending stat", zap.Error(err))
+ if err := sendStat(s); err != nil {
+ // Hide "not-established" errors until the startupConnectionGrace has passed.
+ if err != websocket.ErrConnectionNotEstablished || time.Since(startupTime) > startupConnectionGrace {
+ logger.Errorw("Error while sending stat", zap.Error(err))
+ }
}
}
}
+// sendStat sends a single StatMessage to the autoscaler.
+func sendStat(s *autoscaler.Stat) error {
+ if statSink == nil {
+ return errors.New("stat sink not (yet) connected")
+ }
+ reporter.Report(
+ float64(s.RequestCount),
+ float64(s.AverageConcurrentRequests),
+ )
+ if healthState.IsShuttingDown() {
+ // Do not send metrics if the pods is shutting down.
+ return nil
+ }
+ sm := autoscaler.StatMessage{
+ Stat: *s,
+ Key: servingRevisionKey,
+ }
+ return statSink.Send(sm)
+}
+
func proxyForRequest(req *http.Request) *httputil.ReverseProxy {
if req.ProtoMajor == 2 {
return h2cProxy
@@ -118,16 +159,47 @@ func proxyForRequest(req *http.Request) *httputil.ReverseProxy {
return httpProxy
}
-func isProbe(r *http.Request) bool {
+func isKnativeProbe(r *http.Request) bool {
+ return r.Header.Get(network.ProbeHeaderName) != ""
+}
+
+func isKubeletProbe(r *http.Request) bool {
// Since K8s 1.8, prober requests have
// User-Agent = "kube-probe/{major-version}.{minor-version}".
return strings.HasPrefix(r.Header.Get("User-Agent"), "kube-probe/")
}
+func probeUserContainer() bool {
+ var err error
+ wait.PollImmediate(50*time.Millisecond, 10*time.Second, func() (bool, error) {
+ logger.Debug("TCP probing the user-container.")
+ err = health.TCPProbe(userTargetAddress, 100*time.Millisecond)
+ return err == nil, nil
+ })
+
+ if err == nil {
+ logger.Info("User-container successfully probed.")
+ } else {
+ logger.Errorw("User-container could not be probed successfully.", zap.Error(err))
+ }
+
+ return err == nil
+}
+
func handler(w http.ResponseWriter, r *http.Request) {
proxy := proxyForRequest(r)
- if isProbe(r) {
+ switch {
+ case isKnativeProbe(r):
+ if probeUserContainer() {
+ // Respond with the name of the component handling the request.
+ w.Write([]byte("queue"))
+ } else {
+ http.Error(w, "container not ready", http.StatusServiceUnavailable)
+ }
+ return
+
+ case isKubeletProbe(r):
// Do not count health checks for concurrency metrics
proxy.ServeHTTP(w, r)
return
@@ -138,6 +210,7 @@ func handler(w http.ResponseWriter, r *http.Request) {
defer func() {
reqChan <- queue.ReqEvent{Time: time.Now(), EventType: queue.ReqOut}
}()
+
// Enforce queuing and concurrency limits
if breaker != nil {
ok := breaker.Maybe(func() {
@@ -149,69 +222,27 @@ func handler(w http.ResponseWriter, r *http.Request) {
} else {
proxy.ServeHTTP(w, r)
}
-}
-
-// healthServer registers whether a PreStop hook has been called.
-type healthServer struct {
- alive bool
- mutex sync.RWMutex
-}
-
-// isAlive() returns true until a PreStop hook has been called.
-func (h *healthServer) isAlive() bool {
- h.mutex.RLock()
- defer h.mutex.RUnlock()
- return h.alive
-}
-
-// kill() marks that a PreStop hook has been called.
-func (h *healthServer) kill() {
- h.mutex.Lock()
- h.alive = false
- h.mutex.Unlock()
-}
-
-// healthHandler is used for readinessProbe/livenessCheck of
-// queue-proxy.
-func (h *healthServer) healthHandler(w http.ResponseWriter, r *http.Request) {
- if h.isAlive() {
- w.WriteHeader(http.StatusOK)
- io.WriteString(w, "alive: true")
- } else {
- w.WriteHeader(http.StatusBadRequest)
- io.WriteString(w, "alive: false")
- }
-}
-// quitHandler() is used for preStop hook of queue-proxy. It:
-// - marks the service as not ready, so that requests will no longer
-// be routed to it,
-// - adds a small delay, so that the container doesn't get killed at
-// the same time the pod is marked for removal.
-func (h *healthServer) quitHandler(w http.ResponseWriter, r *http.Request) {
- // First, we want to mark the container as not ready, so that even
- // if the pod removal (from service) isn't yet effective, the
- // readinessCheck will still prevent traffic to be routed to this
- // pod.
- h.kill()
- // However, since both readinessCheck and pod removal from service
- // is eventually consistent, we add here a small delay to have the
- // container stay alive a little bit longer after. We still have
- // no guarantee that container termination is done only after
- // removal from service is effective, but this has been showed to
- // alleviate the issue.
- time.Sleep(quitSleepSecs * time.Second)
- w.WriteHeader(http.StatusOK)
- io.WriteString(w, "alive: false")
}
// Sets up /health and /quitquitquit endpoints.
-func setupAdminHandlers(server *http.Server) {
+func createAdminHandlers() *http.ServeMux {
mux := http.NewServeMux()
- mux.HandleFunc(fmt.Sprintf("/%s", queue.RequestQueueHealthPath), health.healthHandler)
- mux.HandleFunc(fmt.Sprintf("/%s", queue.RequestQueueQuitPath), health.quitHandler)
- server.Handler = mux
- server.ListenAndServe()
+ mux.HandleFunc(queue.RequestQueueHealthPath, healthState.HealthHandler(probeUserContainer))
+ mux.HandleFunc(queue.RequestQueueQuitPath, healthState.QuitHandler(func() {
+ time.Sleep(quitSleepDuration)
+
+ // Shutdown the proxy server.
+ if server != nil {
+ if err := server.Shutdown(context.Background()); err != nil {
+ logger.Errorw("Failed to shutdown proxy-server", zap.Error(err))
+ } else {
+ logger.Debug("Proxy server shutdown successfully.")
+ }
+ }
+ }))
+
+ return mux
}
func main() {
@@ -225,37 +256,53 @@ func main() {
zap.String(logkey.Key, servingRevisionKey),
zap.String(logkey.Pod, podName))
- target, err := url.Parse("http://localhost:8080")
+ target, err := url.Parse(fmt.Sprintf("http://%s", userTargetAddress))
if err != nil {
- logger.Fatal("Failed to parse localhost url", zap.Error(err))
+ logger.Fatalw("Failed to parse localhost url", zap.Error(err))
}
httpProxy = httputil.NewSingleHostReverseProxy(target)
+ httpProxy.FlushInterval = -1
h2cProxy = httputil.NewSingleHostReverseProxy(target)
h2cProxy.Transport = h2c.DefaultTransport
+ h2cProxy.FlushInterval = -1
activatorutil.SetupHeaderPruning(httpProxy)
activatorutil.SetupHeaderPruning(h2cProxy)
// If containerConcurrency == 0 then concurrency is unlimited.
- if *containerConcurrency > 0 {
+ if containerConcurrency > 0 {
// We set the queue depth to be equal to the container concurrency but at least 10 to
// allow the autoscaler to get a strong enough signal.
- queueDepth := *containerConcurrency
+ queueDepth := containerConcurrency
if queueDepth < 10 {
queueDepth = 10
}
- breaker = queue.NewBreaker(int32(queueDepth), int32(*containerConcurrency))
- logger.Infof("Queue container is starting with queueDepth: %d, containerConcurrency: %d", queueDepth, *containerConcurrency)
+ params := queue.BreakerParams{QueueDepth: int32(queueDepth), MaxConcurrency: int32(containerConcurrency), InitialCapacity: int32(containerConcurrency)}
+ breaker = queue.NewBreaker(params)
+ logger.Infof("Queue container is starting with %#v", params)
+ }
+
+ logger.Info("Initializing OpenCensus Prometheus exporter")
+ promExporter, err := prometheus.NewExporter(prometheus.Options{Namespace: "queue"})
+ if err != nil {
+ logger.Fatalw("Failed to create the Prometheus exporter", zap.Error(err))
}
+ view.RegisterExporter(promExporter)
+ view.SetReportingPeriod(queue.ViewReportingPeriod)
+ go func() {
+ mux := http.NewServeMux()
+ mux.Handle("/metrics", promExporter)
+ http.ListenAndServe(fmt.Sprintf(":%d", v1alpha1.RequestQueueMetricsPort), mux)
+ }()
// Open a websocket connection to the autoscaler
- autoscalerEndpoint := fmt.Sprintf("ws://%s.%s:%s", servingAutoscaler, system.Namespace, servingAutoscalerPort)
+ autoscalerEndpoint := fmt.Sprintf("ws://%s.%s.svc.%s:%d", servingAutoscaler, autoscalerNamespace, utils.GetClusterDomainName(), servingAutoscalerPort)
logger.Infof("Connecting to autoscaler at %s", autoscalerEndpoint)
- statSink = websocket.NewDurableSendingConnection(autoscalerEndpoint)
+ statSink = websocket.NewDurableSendingConnection(autoscalerEndpoint, logger)
go statReporter()
- reportTicker := time.NewTicker(time.Second).C
+ reportTicker := time.NewTicker(queue.ReporterReportingPeriod).C
queue.NewStats(podName, queue.Channels{
ReqChan: reqChan,
ReportChan: reportTicker,
@@ -263,34 +310,48 @@ func main() {
}, time.Now())
adminServer := &http.Server{
- Addr: fmt.Sprintf(":%d", queue.RequestQueueAdminPort),
+ Addr: fmt.Sprintf(":%d", v1alpha1.RequestQueueAdminPort),
Handler: nil,
}
+ adminServer.Handler = createAdminHandlers()
+
+ server = h2c.NewServer(
+ fmt.Sprintf(":%d", v1alpha1.RequestQueuePort),
+ queue.TimeToFirstByteTimeoutHandler(http.HandlerFunc(handler), time.Duration(revisionTimeoutSeconds)*time.Second, "request timeout"))
+
+ errChan := make(chan error, 2)
+ // Runs a server created by creator and sends fatal errors to the errChan.
+ // Does not act on the ErrServerClosed error since that indicates we're
+ // already shutting everything down.
+ catchServerError := func(creator func() error) {
+ if err := creator(); err != nil && err != http.ErrServerClosed {
+ errChan <- err
+ }
+ }
- server := h2c.NewServer(
- fmt.Sprintf(":%d", queue.RequestQueuePort),
- http.HandlerFunc(handler),
- )
+ go catchServerError(server.ListenAndServe)
+ go catchServerError(adminServer.ListenAndServe)
+
+ // Blocks until we actually receive a TERM signal or one of the servers
+ // exit unexpectedly. We fold both signals together because we only want
+ // to act on the first of those to reach here.
+ select {
+ case err := <-errChan:
+ logger.Errorw("Failed to bring up queue-proxy, shutting down.", zap.Error(err))
+ os.Exit(1)
+ case <-signals.SetupSignalHandler():
+ logger.Info("Received TERM signal, attempting to gracefully shutdown servers.")
- // Add a SIGTERM handler to gracefully shutdown the servers during
- // pod termination.
- sigTermChan := make(chan os.Signal)
- signal.Notify(sigTermChan, syscall.SIGTERM)
- go func() {
- <-sigTermChan
// Calling server.Shutdown() allows pending requests to
// complete, while no new work is accepted.
-
- server.Shutdown(context.Background())
- adminServer.Shutdown(context.Background())
+ if err := adminServer.Shutdown(context.Background()); err != nil {
+ logger.Errorw("Failed to shutdown admin-server", zap.Error(err))
+ }
if statSink != nil {
- statSink.Close()
+ if err := statSink.Shutdown(); err != nil {
+ logger.Errorw("Failed to shutdown websocket connection", zap.Error(err))
+ }
}
-
- os.Exit(0)
- }()
-
- go server.ListenAndServe()
- setupAdminHandlers(adminServer)
+ }
}
diff --git a/vendor/github.com/knative/serving/cmd/util/env.go b/vendor/github.com/knative/serving/cmd/util/env.go
index a6964ca28a..d936e6fff7 100644
--- a/vendor/github.com/knative/serving/cmd/util/env.go
+++ b/vendor/github.com/knative/serving/cmd/util/env.go
@@ -18,6 +18,7 @@ package util
import (
"os"
+ "strconv"
"go.uber.org/zap"
)
@@ -32,3 +33,13 @@ func GetRequiredEnvOrFatal(key string, logger *zap.SugaredLogger) string {
logger.Infof("%v=%v", key, value)
return value
}
+
+func MustParseIntEnvOrFatal(key string, logger *zap.SugaredLogger) int {
+ value := GetRequiredEnvOrFatal(key, logger)
+ i, err := strconv.Atoi(value)
+ if err != nil {
+ logger.Fatalf("Invalid %v provided: %v", key, value)
+ }
+ logger.Infof("%v=%v", key, i)
+ return i
+}
diff --git a/vendor/github.com/knative/serving/cmd/webhook/kodata/HEAD b/vendor/github.com/knative/serving/cmd/webhook/kodata/HEAD
new file mode 120000
index 0000000000..8f63681d36
--- /dev/null
+++ b/vendor/github.com/knative/serving/cmd/webhook/kodata/HEAD
@@ -0,0 +1 @@
+../../../.git/HEAD
\ No newline at end of file
diff --git a/vendor/github.com/knative/serving/cmd/webhook/main.go b/vendor/github.com/knative/serving/cmd/webhook/main.go
index 206451b5b0..e6d66feef0 100644
--- a/vendor/github.com/knative/serving/cmd/webhook/main.go
+++ b/vendor/github.com/knative/serving/cmd/webhook/main.go
@@ -20,24 +20,31 @@ import (
"flag"
"log"
+ "k8s.io/client-go/tools/clientcmd"
+
"go.uber.org/zap"
"github.com/knative/pkg/configmap"
"github.com/knative/pkg/logging/logkey"
"github.com/knative/pkg/signals"
+ "github.com/knative/pkg/system"
+ "github.com/knative/pkg/version"
"github.com/knative/pkg/webhook"
kpa "github.com/knative/serving/pkg/apis/autoscaling/v1alpha1"
net "github.com/knative/serving/pkg/apis/networking/v1alpha1"
"github.com/knative/serving/pkg/apis/serving/v1alpha1"
"github.com/knative/serving/pkg/logging"
- "github.com/knative/serving/pkg/system"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/client-go/kubernetes"
- "k8s.io/client-go/rest"
)
const (
- logLevelKey = "webhook"
+ component = "webhook"
+)
+
+var (
+ masterURL = flag.String("master", "", "The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.")
+ kubeconfig = flag.String("kubeconfig", "", "Path to a kubeconfig. Only required if out-of-cluster.")
)
func main() {
@@ -50,36 +57,40 @@ func main() {
if err != nil {
log.Fatalf("Error parsing logging configuration: %v", err)
}
- logger, atomicLevel := logging.NewLoggerFromConfig(config, logLevelKey)
+ logger, atomicLevel := logging.NewLoggerFromConfig(config, component)
defer logger.Sync()
- logger = logger.With(zap.String(logkey.ControllerType, "webhook"))
+ logger = logger.With(zap.String(logkey.ControllerType, component))
logger.Info("Starting the Configuration Webhook")
- // set up signals so we handle the first shutdown signal gracefully
+ // Set up signals so we handle the first shutdown signal gracefully.
stopCh := signals.SetupSignalHandler()
- clusterConfig, err := rest.InClusterConfig()
+ clusterConfig, err := clientcmd.BuildConfigFromFlags(*masterURL, *kubeconfig)
if err != nil {
- logger.Fatal("Failed to get in cluster config", zap.Error(err))
+ logger.Fatalw("Failed to get cluster config", zap.Error(err))
}
kubeClient, err := kubernetes.NewForConfig(clusterConfig)
if err != nil {
- logger.Fatal("Failed to get the client set", zap.Error(err))
+ logger.Fatalw("Failed to get the client set", zap.Error(err))
+ }
+
+ if err := version.CheckMinimumVersion(kubeClient.Discovery()); err != nil {
+ logger.Fatalf("Version check failed: %v", err)
}
// Watch the logging config map and dynamically update logging levels.
- configMapWatcher := configmap.NewInformedWatcher(kubeClient, system.Namespace)
- configMapWatcher.Watch(logging.ConfigName, logging.UpdateLevelFromConfigMap(logger, atomicLevel, logLevelKey))
+ configMapWatcher := configmap.NewInformedWatcher(kubeClient, system.Namespace())
+ configMapWatcher.Watch(logging.ConfigName, logging.UpdateLevelFromConfigMap(logger, atomicLevel, component))
if err = configMapWatcher.Start(stopCh); err != nil {
- logger.Fatalf("failed to start configuration manager: %v", err)
+ logger.Fatalw("Failed to start the ConfigMap watcher", zap.Error(err))
}
options := webhook.ControllerOptions{
ServiceName: "webhook",
DeploymentName: "webhook",
- Namespace: system.Namespace,
+ Namespace: system.Namespace(),
Port: 443,
SecretName: "webhook-certs",
WebhookName: "webhook.serving.knative.dev",
@@ -97,8 +108,7 @@ func main() {
},
Logger: logger,
}
- if err != nil {
- logger.Fatal("Failed to create the admission controller", zap.Error(err))
+ if err = controller.Run(stopCh); err != nil {
+ logger.Fatalw("Failed to start the admission controller", zap.Error(err))
}
- controller.Run(stopCh)
}
diff --git a/vendor/github.com/knative/serving/pkg/activator/activator.go b/vendor/github.com/knative/serving/pkg/activator/activator.go
index 12c401de34..d9729026c7 100644
--- a/vendor/github.com/knative/serving/pkg/activator/activator.go
+++ b/vendor/github.com/knative/serving/pkg/activator/activator.go
@@ -16,6 +16,8 @@ limitations under the License.
package activator
+import "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+
const (
// K8sServiceName is the name of the activator service
K8sServiceName = "activator-service"
@@ -25,6 +27,11 @@ const (
RevisionHeaderName string = "knative-serving-revision"
// RevisionHeaderNamespace is the header key for revision's namespace
RevisionHeaderNamespace string = "knative-serving-namespace"
+
+ // ServicePortHTTP1 is the port number for activating HTTP1 revisions
+ ServicePortHTTP1 int32 = 80
+ // ServicePortHTTP1 is the port number for activating H2C revisions
+ ServicePortH2C int32 = 81
)
// Activator provides an active endpoint for a revision or an error and
@@ -34,9 +41,10 @@ type Activator interface {
Shutdown()
}
-type revisionID struct {
- namespace string
- name string
+// RevisionID is the combination of namespace and service name
+type RevisionID struct {
+ Namespace string
+ Name string
}
// Endpoint is a fully-qualified domain name / port pair for an active revision.
@@ -53,3 +61,13 @@ type ActivationResult struct {
ConfigurationName string
Error error
}
+
+// ServicePort returns the activator service port for the given Revision protocol.
+// Default is `ServicePortHTTP1`.
+func ServicePort(protocol v1alpha1.RevisionProtocolType) int32 {
+ if protocol == v1alpha1.RevisionProtocolH2C {
+ return ServicePortH2C
+ }
+
+ return ServicePortHTTP1
+}
diff --git a/vendor/github.com/knative/serving/pkg/activator/dedupe.go b/vendor/github.com/knative/serving/pkg/activator/dedupe.go
index dccb21b11c..b842bf1bb9 100644
--- a/vendor/github.com/knative/serving/pkg/activator/dedupe.go
+++ b/vendor/github.com/knative/serving/pkg/activator/dedupe.go
@@ -17,7 +17,7 @@ limitations under the License.
package activator
import (
- "fmt"
+ "errors"
"net/http"
"sync"
)
@@ -25,14 +25,14 @@ import (
var shuttingDownError = ActivationResult{
Endpoint: Endpoint{},
Status: http.StatusInternalServerError,
- Error: fmt.Errorf("activator shutting down"),
+ Error: errors.New("activator shutting down"),
}
var _ Activator = (*dedupingActivator)(nil)
type dedupingActivator struct {
mux sync.Mutex
- pendingRequests map[revisionID][]chan ActivationResult
+ pendingRequests map[RevisionID][]chan ActivationResult
activator Activator
shutdown bool
}
@@ -41,13 +41,13 @@ type dedupingActivator struct {
// activations requests for the same revision id and namespace.
func NewDedupingActivator(a Activator) Activator {
return &dedupingActivator{
- pendingRequests: make(map[revisionID][]chan ActivationResult),
+ pendingRequests: make(map[RevisionID][]chan ActivationResult),
activator: a,
}
}
func (a *dedupingActivator) ActiveEndpoint(namespace, name string) ActivationResult {
- id := revisionID{namespace: namespace, name: name}
+ id := RevisionID{Namespace: namespace, Name: name}
ch := make(chan ActivationResult, 1)
a.dedupe(id, ch)
result := <-ch
@@ -66,7 +66,7 @@ func (a *dedupingActivator) Shutdown() {
}
}
-func (a *dedupingActivator) dedupe(id revisionID, ch chan ActivationResult) {
+func (a *dedupingActivator) dedupe(id RevisionID, ch chan ActivationResult) {
a.mux.Lock()
defer a.mux.Unlock()
if a.shutdown {
@@ -81,8 +81,8 @@ func (a *dedupingActivator) dedupe(id revisionID, ch chan ActivationResult) {
}
}
-func (a *dedupingActivator) activate(id revisionID) {
- result := a.activator.ActiveEndpoint(id.namespace, id.name)
+func (a *dedupingActivator) activate(id RevisionID) {
+ result := a.activator.ActiveEndpoint(id.Namespace, id.Name)
a.mux.Lock()
defer a.mux.Unlock()
if reqs, ok := a.pendingRequests[id]; ok {
diff --git a/vendor/github.com/knative/serving/pkg/activator/handler/concurrency_reporter.go b/vendor/github.com/knative/serving/pkg/activator/handler/concurrency_reporter.go
index 90a915a5ad..3960be2702 100644
--- a/vendor/github.com/knative/serving/pkg/activator/handler/concurrency_reporter.go
+++ b/vendor/github.com/knative/serving/pkg/activator/handler/concurrency_reporter.go
@@ -19,67 +19,93 @@ package handler
import (
"time"
+ "github.com/knative/pkg/system"
"github.com/knative/serving/pkg/autoscaler"
)
-// Channels is a structure for holding the channels for driving Stats.
-// It's just to make the NewStats signature easier to read.
-type Channels struct {
+// ConcurrencyReporter reports stats based on incoming requests and ticks.
+type ConcurrencyReporter struct {
+ podName string
+
// Ticks with every request arrived/completed respectively
- ReqChan chan ReqEvent
+ reqChan chan ReqEvent
// Ticks with every stat report request
- ReportChan <-chan time.Time
+ reportChan <-chan time.Time
// Stat reporting channel
- StatChan chan *autoscaler.StatMessage
+ statChan chan *autoscaler.StatMessage
+
+ clock system.Clock
+}
+
+// NewConcurrencyReporter creates a ConcurrencyReporter which listens to incoming
+// ReqEvents on reqChan and ticks on reportChan and reports stats on statChan.
+func NewConcurrencyReporter(podName string, reqChan chan ReqEvent, reportChan <-chan time.Time, statChan chan *autoscaler.StatMessage) *ConcurrencyReporter {
+ return NewConcurrencyReporterWithClock(podName, reqChan, reportChan, statChan, system.RealClock{})
+}
+
+// NewConcurrencyReporterWithClock instantiates a new concurrency reporter
+// which uses the passed clock.
+func NewConcurrencyReporterWithClock(podName string, reqChan chan ReqEvent, reportChan <-chan time.Time, statChan chan *autoscaler.StatMessage, clock system.Clock) *ConcurrencyReporter {
+ return &ConcurrencyReporter{
+ podName: podName,
+ reqChan: reqChan,
+ reportChan: reportChan,
+ statChan: statChan,
+ clock: clock,
+ }
+}
+
+func (cr *ConcurrencyReporter) report(now time.Time, key string, concurrency, requestCount int32) {
+ stat := autoscaler.Stat{
+ Time: &now,
+ PodName: cr.podName,
+ AverageConcurrentRequests: float64(concurrency),
+ RequestCount: requestCount,
+ }
+
+ // Send the stat to another goroutine to transmit
+ // so we can continue bucketing stats.
+ cr.statChan <- &autoscaler.StatMessage{
+ Key: key,
+ Stat: stat,
+ }
}
-// NewConcurrencyReporter instantiates a new goroutine that consumes and
-// produces from the given channels.
-// On each tick on the ReportChan, StatMessages will be sent to the
-// StatChan.
-func NewConcurrencyReporter(podName string, channels Channels) {
-
- go func() {
- outstandingRequestsPerKey := make(map[string]int32)
-
- // Contains the number of incoming requests in the current
- // reporting period, per key.
- incomingRequestsPerKey := make(map[string]int32)
- for {
- select {
- case event := <-channels.ReqChan:
- switch event.EventType {
- case ReqIn:
- incomingRequestsPerKey[event.Key]++
- outstandingRequestsPerKey[event.Key]++
- case ReqOut:
- outstandingRequestsPerKey[event.Key]--
+// Run runs until stopCh is closed and processes events on all incoming channels
+func (cr *ConcurrencyReporter) Run(stopCh <-chan struct{}) {
+ // Contains the number of in-flight requests per-key
+ outstandingRequestsPerKey := make(map[string]int32)
+ // Contains the number of incoming requests in the current
+ // reporting period, per key.
+ incomingRequestsPerKey := make(map[string]int32)
+
+ for {
+ select {
+ case event := <-cr.reqChan:
+ switch event.EventType {
+ case ReqIn:
+ incomingRequestsPerKey[event.Key]++
+
+ // Report the first request for a key immediately.
+ if _, ok := outstandingRequestsPerKey[event.Key]; !ok {
+ cr.report(cr.clock.Now(), event.Key, 1, incomingRequestsPerKey[event.Key])
}
- case now := <-channels.ReportChan:
- for key, concurrency := range outstandingRequestsPerKey {
- if concurrency == 0 {
- delete(outstandingRequestsPerKey, key)
- } else {
- requestCount := incomingRequestsPerKey[key]
-
- stat := autoscaler.Stat{
- Time: &now,
- PodName: podName,
- AverageConcurrentRequests: float64(concurrency),
- RequestCount: requestCount,
- }
-
- // Send the stat to another goroutine to transmit
- // so we can continue bucketing stats.
- channels.StatChan <- &autoscaler.StatMessage{
- Key: key,
- Stat: stat,
- }
- }
+ outstandingRequestsPerKey[event.Key]++
+ case ReqOut:
+ outstandingRequestsPerKey[event.Key]--
+ }
+ case now := <-cr.reportChan:
+ for key, concurrency := range outstandingRequestsPerKey {
+ if concurrency == 0 {
+ delete(outstandingRequestsPerKey, key)
+ } else {
+ cr.report(now, key, concurrency, incomingRequestsPerKey[key])
}
-
- incomingRequestsPerKey = make(map[string]int32)
}
+
+ incomingRequestsPerKey = make(map[string]int32)
+ case <-stopCh:
+ return
}
- }()
+ }
}
diff --git a/vendor/github.com/knative/serving/pkg/activator/handler/enforce_length_handler.go b/vendor/github.com/knative/serving/pkg/activator/handler/enforce_length_handler.go
index b4b2da84ba..3188563943 100644
--- a/vendor/github.com/knative/serving/pkg/activator/handler/enforce_length_handler.go
+++ b/vendor/github.com/knative/serving/pkg/activator/handler/enforce_length_handler.go
@@ -24,10 +24,14 @@ type EnforceMaxContentLengthHandler struct {
}
func (h *EnforceMaxContentLengthHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
+ // If we have a ContentLength, we can fail early
if r.ContentLength > h.MaxContentLengthBytes {
w.WriteHeader(http.StatusRequestEntityTooLarge)
return
}
+ // Enforce MaxContentLengthBytes
+ r.Body = http.MaxBytesReader(w, r.Body, h.MaxContentLengthBytes)
+
h.NextHandler.ServeHTTP(w, r)
}
diff --git a/vendor/github.com/knative/serving/pkg/activator/handler/filtering_handler.go b/vendor/github.com/knative/serving/pkg/activator/handler/filtering_handler.go
index c636c6783a..616faf4002 100644
--- a/vendor/github.com/knative/serving/pkg/activator/handler/filtering_handler.go
+++ b/vendor/github.com/knative/serving/pkg/activator/handler/filtering_handler.go
@@ -27,7 +27,7 @@ type FilteringHandler struct {
func (h *FilteringHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
// If this header is set the request was sent by the activator itself, thus
- // we immediatly return a 503 to trigger a retry.
+ // we immediately return a 503 to trigger a retry.
if r.Header.Get(activator.RequestCountHTTPHeader) != "" {
w.WriteHeader(http.StatusServiceUnavailable)
return
diff --git a/vendor/github.com/knative/serving/pkg/activator/handler/handler.go b/vendor/github.com/knative/serving/pkg/activator/handler/handler.go
index 59eff3c5a0..0ef5600ce3 100644
--- a/vendor/github.com/knative/serving/pkg/activator/handler/handler.go
+++ b/vendor/github.com/knative/serving/pkg/activator/handler/handler.go
@@ -14,13 +14,16 @@ limitations under the License.
package handler
import (
+ "bufio"
"fmt"
+ "net"
"net/http"
"net/http/httputil"
"net/url"
"strconv"
"time"
+ "github.com/knative/pkg/websocket"
"github.com/knative/serving/pkg/activator"
"github.com/knative/serving/pkg/activator/util"
pkghttp "github.com/knative/serving/pkg/http"
@@ -34,32 +37,56 @@ type ActivationHandler struct {
Logger *zap.SugaredLogger
Transport http.RoundTripper
Reporter activator.StatsReporter
+ Throttler *activator.Throttler
}
func (a *ActivationHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
namespace := pkghttp.LastHeaderValue(r.Header, activator.RevisionHeaderNamespace)
name := pkghttp.LastHeaderValue(r.Header, activator.RevisionHeaderName)
-
start := time.Now()
- capture := &statusCapture{
- ResponseWriter: w,
- statusCode: http.StatusOK,
- }
+ revID := activator.RevisionID{namespace, name}
+ // ActiveEndpoint() will block until the first endpoint is available.
ar := a.Activator.ActiveEndpoint(namespace, name)
+
if ar.Error != nil {
msg := fmt.Sprintf("Error getting active endpoint: %v", ar.Error)
- a.Logger.Errorf(msg)
+ a.Logger.Error(msg)
http.Error(w, msg, ar.Status)
return
}
-
target := &url.URL{
Scheme: "http",
Host: fmt.Sprintf("%s:%d", ar.Endpoint.FQDN, ar.Endpoint.Port),
}
+
+ err := a.Throttler.Try(revID, func() {
+ attempts, httpStatus := a.proxyRequest(w, r, target)
+
+ // Report the metrics
+ duration := time.Since(start)
+
+ a.Reporter.ReportRequestCount(namespace, ar.ServiceName, ar.ConfigurationName, name, httpStatus, attempts, 1.0)
+ a.Reporter.ReportResponseTime(namespace, ar.ServiceName, ar.ConfigurationName, name, httpStatus, duration)
+ })
+ if err != nil {
+ if err == activator.ErrActivatorOverload {
+ http.Error(w, activator.ErrActivatorOverload.Error(), http.StatusServiceUnavailable)
+ } else {
+ w.WriteHeader(http.StatusInternalServerError)
+ a.Logger.Errorw("Error processing request in the activator", zap.Error(err))
+ }
+ }
+}
+
+func (a *ActivationHandler) proxyRequest(w http.ResponseWriter, r *http.Request, target *url.URL) (int, int) {
+ capture := &statusCapture{
+ ResponseWriter: w,
+ statusCode: http.StatusOK,
+ }
proxy := httputil.NewSingleHostReverseProxy(target)
proxy.Transport = a.Transport
+ proxy.FlushInterval = -1
attempts := int(1) // one attempt is always needed
proxy.ModifyResponse = func(r *http.Response) error {
@@ -81,13 +108,7 @@ func (a *ActivationHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
util.SetupHeaderPruning(proxy)
proxy.ServeHTTP(capture, r)
-
- // Report the metrics
- httpStatus := capture.statusCode
- duration := time.Now().Sub(start)
-
- a.Reporter.ReportResponseCount(namespace, ar.ServiceName, ar.ConfigurationName, name, httpStatus, attempts, 1.0)
- a.Reporter.ReportResponseTime(namespace, ar.ServiceName, ar.ConfigurationName, name, httpStatus, duration)
+ return attempts, capture.statusCode
}
type statusCapture struct {
@@ -95,7 +116,20 @@ type statusCapture struct {
statusCode int
}
+var _ http.Flusher = (*statusCapture)(nil)
+
func (s *statusCapture) WriteHeader(statusCode int) {
s.statusCode = statusCode
s.ResponseWriter.WriteHeader(statusCode)
}
+
+// Hijack calls Hijack() on the wrapped http.ResponseWriter if it implements
+// http.Hijacker interface, which is required for net/http/httputil/reverseproxy
+// to handle connection upgrade/switching protocol. Otherwise returns an error.
+func (s *statusCapture) Hijack() (net.Conn, *bufio.ReadWriter, error) {
+ return websocket.HijackIfPossible(s.ResponseWriter)
+}
+
+func (s *statusCapture) Flush() {
+ s.ResponseWriter.(http.Flusher).Flush()
+}
diff --git a/vendor/github.com/knative/serving/pkg/activator/handler/probe_handler.go b/vendor/github.com/knative/serving/pkg/activator/handler/probe_handler.go
new file mode 100644
index 0000000000..397fdd80dc
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/activator/handler/probe_handler.go
@@ -0,0 +1,36 @@
+/*
+Copyright 2019 The Knative Authors
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package handler
+
+import (
+ "net/http"
+
+ "github.com/knative/serving/pkg/network"
+)
+
+// ProbeHandler handles responding to Knative internal network probes.
+type ProbeHandler struct {
+ NextHandler http.Handler
+}
+
+func (h *ProbeHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
+ // If this header is set the request was sent by a Knative component
+ // probing the network, respond with a 200 and our component name.
+ if r.Header.Get(network.ProbeHeaderName) != "" {
+ w.Write([]byte("activator"))
+ return
+ }
+
+ h.NextHandler.ServeHTTP(w, r)
+}
diff --git a/vendor/github.com/knative/serving/pkg/activator/handler/requestevent_handler.go b/vendor/github.com/knative/serving/pkg/activator/handler/requestevent_handler.go
index 13789f7683..8dfb549496 100644
--- a/vendor/github.com/knative/serving/pkg/activator/handler/requestevent_handler.go
+++ b/vendor/github.com/knative/serving/pkg/activator/handler/requestevent_handler.go
@@ -57,7 +57,7 @@ func (h *RequestEventHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
namespace := r.Header.Get(activator.RevisionHeaderNamespace)
name := r.Header.Get(activator.RevisionHeaderName)
- revisionKey := autoscaler.NewKpaKey(namespace, name)
+ revisionKey := autoscaler.NewMetricKey(namespace, name)
h.ReqChan <- ReqEvent{Key: revisionKey, EventType: ReqIn}
defer func() { h.ReqChan <- ReqEvent{Key: revisionKey, EventType: ReqOut} }()
diff --git a/vendor/github.com/knative/serving/pkg/activator/revision.go b/vendor/github.com/knative/serving/pkg/activator/revision.go
index 6825f13594..b1c2e30683 100644
--- a/vendor/github.com/knative/serving/pkg/activator/revision.go
+++ b/vendor/github.com/knative/serving/pkg/activator/revision.go
@@ -27,6 +27,7 @@ import (
clientset "github.com/knative/serving/pkg/client/clientset/versioned"
revisionresources "github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources"
revisionresourcenames "github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/names"
+ "github.com/knative/serving/pkg/utils"
"github.com/pkg/errors"
"go.uber.org/zap"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -36,78 +37,72 @@ import (
var _ Activator = (*revisionActivator)(nil)
type revisionActivator struct {
- readyTimout time.Duration // for testing
+ readyTimout time.Duration // For testing.
kubeClient kubernetes.Interface
knaClient clientset.Interface
logger *zap.SugaredLogger
- reporter StatsReporter
}
// NewRevisionActivator creates an Activator that changes revision
// serving status to active if necessary, then returns the endpoint
// once the revision is ready to serve traffic.
-func NewRevisionActivator(kubeClient kubernetes.Interface, servingClient clientset.Interface, logger *zap.SugaredLogger, reporter StatsReporter) Activator {
+func NewRevisionActivator(kubeClient kubernetes.Interface, servingClient clientset.Interface, logger *zap.SugaredLogger) Activator {
return &revisionActivator{
readyTimout: 60 * time.Second,
kubeClient: kubeClient,
knaClient: servingClient,
logger: logger,
- reporter: reporter,
}
}
func (r *revisionActivator) Shutdown() {
- // nothing to do
+ // Nothing to do.
}
-func (r *revisionActivator) activateRevision(namespace, name string) (*v1alpha1.Revision, error) {
- key := fmt.Sprintf("%s/%s", namespace, name)
+func (r *revisionActivator) activateRevision(namespace, name, key string) (*v1alpha1.Revision, error) {
logger := r.logger.With(zap.String(logkey.Key, key))
- rev := revisionID{
- namespace: namespace,
- name: name,
+ rev := RevisionID{
+ Namespace: namespace,
+ Name: name,
}
// Get the current revision serving state
- revisionClient := r.knaClient.ServingV1alpha1().Revisions(rev.namespace)
- revision, err := revisionClient.Get(rev.name, metav1.GetOptions{})
+ revisionClient := r.knaClient.ServingV1alpha1().Revisions(rev.Namespace)
+ revision, err := revisionClient.Get(rev.Name, metav1.GetOptions{})
if err != nil {
- return nil, errors.Wrap(err, "Unable to get revision")
+ return nil, errors.Wrap(err, "unable to get the revision")
}
- serviceName, configurationName := getServiceAndConfigurationLabels(revision)
- r.reporter.ReportRequest(namespace, serviceName, configurationName, name, 1.0)
-
- // Wait for the revision to be ready
- if !revision.Status.IsReady() {
- wi, err := r.knaClient.ServingV1alpha1().Revisions(rev.namespace).Watch(metav1.ListOptions{
- FieldSelector: fmt.Sprintf("metadata.name=%s", rev.name),
+ // Wait for the revision to not require activation.
+ if revision.Status.IsActivationRequired() {
+ wi, err := r.knaClient.ServingV1alpha1().Revisions(rev.Namespace).Watch(metav1.ListOptions{
+ FieldSelector: fmt.Sprintf("metadata.name=%s", rev.Name),
})
if err != nil {
- return nil, fmt.Errorf("Failed to watch the revision")
+ return nil, errors.New("failed to watch the revision")
}
defer wi.Stop()
ch := wi.ResultChan()
- RevisionReady:
+ RevisionActive:
for {
select {
case <-time.After(r.readyTimout):
// last chance to check
- if revision.Status.IsReady() {
- break RevisionReady
+ if !revision.Status.IsActivationRequired() {
+ break RevisionActive
}
- return nil, errors.New("Timeout waiting for revision to become ready")
+ return nil, errors.New("timeout waiting for the revision to become ready")
case event := <-ch:
if revision, ok := event.Object.(*v1alpha1.Revision); ok {
- if !revision.Status.IsReady() {
- logger.Info("Revision is not yet ready")
+ if revision.Status.IsActivationRequired() {
+ logger.Infof("Revision %s is not yet ready", name)
continue
} else {
- logger.Info("Revision is ready")
+ logger.Infof("Revision %s is ready", name)
}
- break RevisionReady
+ break RevisionActive
} else {
- return nil, fmt.Errorf("Unexpected result type for revision: %v", event)
+ return nil, fmt.Errorf("unexpected result type for the revision: %v", event)
}
}
}
@@ -115,27 +110,26 @@ func (r *revisionActivator) activateRevision(namespace, name string) (*v1alpha1.
return revision, nil
}
-func (r *revisionActivator) getRevisionEndpoint(revision *v1alpha1.Revision) (end Endpoint, err error) {
- // Get the revision endpoint
+func (r *revisionActivator) revisionEndpoint(revision *v1alpha1.Revision) (end Endpoint, err error) {
services := r.kubeClient.CoreV1().Services(revision.GetNamespace())
serviceName := revisionresourcenames.K8sService(revision)
svc, err := services.Get(serviceName, metav1.GetOptions{})
if err != nil {
- return end, errors.Wrapf(err, "Unable to get service %s for revision", serviceName)
+ return end, errors.Wrapf(err, "unable to get service %s for revision", serviceName)
}
- fqdn := fmt.Sprintf("%s.%s.svc.cluster.local", serviceName, revision.Namespace)
+ fqdn := fmt.Sprintf("%s.%s.svc.%s", serviceName, revision.Namespace, utils.GetClusterDomainName())
// Search for the correct port in all the service ports.
port := int32(-1)
for _, p := range svc.Spec.Ports {
- if p.Name == revisionresources.ServicePortName {
+ if p.Name == revisionresources.ServicePortName(revision) {
port = p.Port
break
}
}
if port == -1 {
- return end, fmt.Errorf("Revision needs external. Found %v", len(svc.Spec.Ports))
+ return end, errors.New("revision needs external HTTP port")
}
return Endpoint{
@@ -144,12 +138,13 @@ func (r *revisionActivator) getRevisionEndpoint(revision *v1alpha1.Revision) (en
}, nil
}
+// ActiveEndpoint activates the revision `name` and returnts the result.
func (r *revisionActivator) ActiveEndpoint(namespace, name string) ActivationResult {
key := fmt.Sprintf("%s/%s", namespace, name)
logger := r.logger.With(zap.String(logkey.Key, key))
- revision, err := r.activateRevision(namespace, name)
+ revision, err := r.activateRevision(namespace, name, key)
if err != nil {
- logger.Error("Failed to activate the revision.", zap.Error(err))
+ logger.Errorw("Failed to activate the revision.", zap.Error(err))
return ActivationResult{
Status: http.StatusInternalServerError,
Error: err,
@@ -157,9 +152,9 @@ func (r *revisionActivator) ActiveEndpoint(namespace, name string) ActivationRes
}
serviceName, configurationName := getServiceAndConfigurationLabels(revision)
- endpoint, err := r.getRevisionEndpoint(revision)
+ endpoint, err := r.revisionEndpoint(revision)
if err != nil {
- logger.Error("Failed to get revision endpoint.", zap.Error(err))
+ logger.Errorw("Failed to get revision endpoint.", zap.Error(err))
return ActivationResult{
Status: http.StatusInternalServerError,
ServiceName: serviceName,
diff --git a/vendor/github.com/knative/serving/pkg/activator/stats_reporter.go b/vendor/github.com/knative/serving/pkg/activator/stats_reporter.go
index ceabd312b2..891a984fd8 100644
--- a/vendor/github.com/knative/serving/pkg/activator/stats_reporter.go
+++ b/vendor/github.com/knative/serving/pkg/activator/stats_reporter.go
@@ -19,82 +19,62 @@ import (
"strconv"
"time"
+ "github.com/knative/pkg/metrics/metricskey"
"go.opencensus.io/stats"
"go.opencensus.io/stats/view"
"go.opencensus.io/tag"
)
-// Measurement represents the type of the autoscaler metric to be reported
-type Measurement int
-
-const (
- // RequestCountM is the requests count that are routed to the activator
- RequestCountM Measurement = iota
-
- //ResponseCountM is the response count when activator proxy the request
- ResponseCountM
-
- // ResponseTimeInMsecM is the response time in millisecond
- ResponseTimeInMsecM
-)
-
var (
- measurements = []*stats.Float64Measure{
- RequestCountM: stats.Float64(
- "revision_request_count",
- "The number of requests that are routed to the activator",
- stats.UnitNone),
- ResponseCountM: stats.Float64(
- "revision_response_count",
- "The response count when activator proxy the request",
- stats.UnitNone),
- ResponseTimeInMsecM: stats.Float64(
- "response_time_msec",
- "The response time in millisecond",
- stats.UnitNone),
- }
+ requestCountM = stats.Int64(
+ "request_count",
+ "The number of requests that are routed to Activator",
+ stats.UnitDimensionless)
+ responseTimeInMsecM = stats.Float64(
+ "request_latencies",
+ "The response time in millisecond",
+ stats.UnitMilliseconds)
)
// StatsReporter defines the interface for sending activator metrics
type StatsReporter interface {
- ReportRequest(ns, service, config, rev string, v float64) error
- ReportResponseCount(ns, service, config, rev string, responseCode, numTries int, v float64) error
+ ReportRequestCount(ns, service, config, rev string, responseCode, numTries int, v int64) error
ReportResponseTime(ns, service, config, rev string, responseCode int, d time.Duration) error
}
// Reporter holds cached metric objects to report autoscaler metrics
type Reporter struct {
- initialized bool
- namespaceTagKey tag.Key
- serviceTagKey tag.Key
- configTagKey tag.Key
- revisionTagKey tag.Key
- responseCodeKey tag.Key
- numTriesKey tag.Key
+ initialized bool
+ namespaceTagKey tag.Key
+ serviceTagKey tag.Key
+ configTagKey tag.Key
+ revisionTagKey tag.Key
+ responseCodeKey tag.Key
+ responseCodeClassKey tag.Key
+ numTriesKey tag.Key
}
// NewStatsReporter creates a reporter that collects and reports activator metrics
func NewStatsReporter() (*Reporter, error) {
-
var r = &Reporter{}
// Create the tag keys that will be used to add tags to our measurements.
- nsTag, err := tag.NewKey("destination_namespace")
+ nsTag, err := tag.NewKey(metricskey.LabelNamespaceName)
if err != nil {
return nil, err
}
r.namespaceTagKey = nsTag
- serviceTag, err := tag.NewKey("destination_service")
+ serviceTag, err := tag.NewKey(metricskey.LabelServiceName)
if err != nil {
return nil, err
}
r.serviceTagKey = serviceTag
- configTag, err := tag.NewKey("destination_configuration")
+ configTag, err := tag.NewKey(metricskey.LabelConfigurationName)
if err != nil {
return nil, err
}
r.configTagKey = configTag
- revTag, err := tag.NewKey("destination_revision")
+ revTag, err := tag.NewKey(metricskey.LabelRevisionName)
if err != nil {
return nil, err
}
@@ -104,6 +84,11 @@ func NewStatsReporter() (*Reporter, error) {
return nil, err
}
r.responseCodeKey = responseCodeTag
+ responseCodeClassTag, err := tag.NewKey("response_code_class")
+ if err != nil {
+ return nil, err
+ }
+ r.responseCodeClassKey = responseCodeClassTag
numTriesTag, err := tag.NewKey("num_tries")
if err != nil {
return nil, err
@@ -112,22 +97,16 @@ func NewStatsReporter() (*Reporter, error) {
// Create view to see our measurements.
err = view.Register(
&view.View{
- Description: "The number of requests that are routed to the activator",
- Measure: measurements[RequestCountM],
- Aggregation: view.Sum(),
- TagKeys: []tag.Key{r.namespaceTagKey, r.serviceTagKey, r.configTagKey, r.revisionTagKey},
- },
- &view.View{
- Description: "The response count when activator proxy the request",
- Measure: measurements[ResponseCountM],
+ Description: "The number of requests that are routed to Activator",
+ Measure: requestCountM,
Aggregation: view.Sum(),
- TagKeys: []tag.Key{r.namespaceTagKey, r.serviceTagKey, r.configTagKey, r.revisionTagKey, r.responseCodeKey, r.numTriesKey},
+ TagKeys: []tag.Key{r.namespaceTagKey, r.serviceTagKey, r.configTagKey, r.revisionTagKey, r.responseCodeKey, r.responseCodeClassKey, r.numTriesKey},
},
&view.View{
Description: "The response time in millisecond",
- Measure: measurements[ResponseTimeInMsecM],
+ Measure: responseTimeInMsecM,
Aggregation: view.Distribution(1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000, 11000, 12000, 13000, 14000, 15000),
- TagKeys: []tag.Key{r.namespaceTagKey, r.serviceTagKey, r.configTagKey, r.revisionTagKey, r.responseCodeKey},
+ TagKeys: []tag.Key{r.namespaceTagKey, r.serviceTagKey, r.configTagKey, r.revisionTagKey, r.responseCodeClassKey, r.responseCodeKey},
},
)
if err != nil {
@@ -138,28 +117,8 @@ func NewStatsReporter() (*Reporter, error) {
return r, nil
}
-// ReportRequest captures request metrics
-func (r *Reporter) ReportRequest(ns, service, config, rev string, v float64) error {
- if !r.initialized {
- return errors.New("StatsReporter is not initialized yet")
- }
-
- ctx, err := tag.New(
- context.Background(),
- tag.Insert(r.namespaceTagKey, ns),
- tag.Insert(r.serviceTagKey, service),
- tag.Insert(r.configTagKey, config),
- tag.Insert(r.revisionTagKey, rev))
- if err != nil {
- return err
- }
-
- stats.Record(ctx, measurements[RequestCountM].M(v))
- return nil
-}
-
-// ReportResponseCount captures response count metric with value v.
-func (r *Reporter) ReportResponseCount(ns, service, config, rev string, responseCode, numTries int, v float64) error {
+// ReportRequestCount captures request count metric with value v.
+func (r *Reporter) ReportRequestCount(ns, service, config, rev string, responseCode, numTries int, v int64) error {
if !r.initialized {
return errors.New("StatsReporter is not initialized yet")
}
@@ -171,12 +130,13 @@ func (r *Reporter) ReportResponseCount(ns, service, config, rev string, response
tag.Insert(r.configTagKey, config),
tag.Insert(r.revisionTagKey, rev),
tag.Insert(r.responseCodeKey, strconv.Itoa(responseCode)),
+ tag.Insert(r.responseCodeClassKey, responseCodeClass(responseCode)),
tag.Insert(r.numTriesKey, strconv.Itoa(numTries)))
if err != nil {
return err
}
- stats.Record(ctx, measurements[ResponseCountM].M(v))
+ stats.Record(ctx, requestCountM.M(v))
return nil
}
@@ -192,12 +152,20 @@ func (r *Reporter) ReportResponseTime(ns, service, config, rev string, responseC
tag.Insert(r.serviceTagKey, service),
tag.Insert(r.configTagKey, config),
tag.Insert(r.revisionTagKey, rev),
- tag.Insert(r.responseCodeKey, strconv.Itoa(responseCode)))
+ tag.Insert(r.responseCodeKey, strconv.Itoa(responseCode)),
+ tag.Insert(r.responseCodeClassKey, responseCodeClass(responseCode)))
if err != nil {
return err
}
// convert time.Duration in nanoseconds to milliseconds
- stats.Record(ctx, measurements[ResponseTimeInMsecM].M(float64(d/time.Millisecond)))
+ stats.Record(ctx, responseTimeInMsecM.M(float64(d/time.Millisecond)))
return nil
}
+
+// responseCodeClass converts response code to a string of response code class.
+// e.g. The response code class is "5xx" for response code 503.
+func responseCodeClass(responseCode int) string {
+ // Get the hundred digit of the response code and concatenate "xx".
+ return strconv.Itoa(responseCode/100) + "xx"
+}
diff --git a/vendor/github.com/knative/serving/pkg/activator/testing/utils.go b/vendor/github.com/knative/serving/pkg/activator/testing/utils.go
new file mode 100644
index 0000000000..c1775f560e
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/activator/testing/utils.go
@@ -0,0 +1,36 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package testing
+
+import (
+ v1 "k8s.io/api/core/v1"
+)
+
+// GetTestEndpointsSubset generates the subsets of endpoints used for testing.
+// It returns a list of desired number of subsets including the desired number of hosts per each subset.
+func GetTestEndpointsSubset(hostsPerSubset, subsets int) []v1.EndpointSubset {
+ resp := []v1.EndpointSubset{}
+ if hostsPerSubset > 0 {
+ addresses := make([]v1.EndpointAddress, hostsPerSubset)
+ subset := v1.EndpointSubset{Addresses: addresses}
+ for s := 0; s < subsets; s++ {
+ resp = append(resp, subset)
+ }
+ return resp
+ }
+ return resp
+}
diff --git a/vendor/github.com/knative/serving/pkg/activator/throttler.go b/vendor/github.com/knative/serving/pkg/activator/throttler.go
new file mode 100644
index 0000000000..523674f5ab
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/activator/throttler.go
@@ -0,0 +1,174 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package activator
+
+import (
+ "errors"
+ "sync"
+
+ "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ "github.com/knative/serving/pkg/queue"
+ "github.com/knative/serving/pkg/reconciler"
+ "go.uber.org/zap"
+ corev1 "k8s.io/api/core/v1"
+)
+
+// ErrActivatorOverload indicates that throttler has no free slots to buffer the request.
+var ErrActivatorOverload = errors.New("activator overload")
+
+// ThrottlerParams defines the parameters of the Throttler.
+type ThrottlerParams struct {
+ BreakerParams queue.BreakerParams
+ Logger *zap.SugaredLogger
+ GetEndpoints func(RevisionID) (int32, error)
+ GetRevision func(RevisionID) (*v1alpha1.Revision, error)
+}
+
+// NewThrottler creates a new Throttler.
+func NewThrottler(params ThrottlerParams) *Throttler {
+ breakers := make(map[RevisionID]*queue.Breaker)
+ return &Throttler{breakers: breakers, breakerParams: params.BreakerParams, logger: params.Logger, getEndpoints: params.GetEndpoints, getRevision: params.GetRevision}
+}
+
+// Throttler keeps the mapping of Revisions to Breakers
+// and allows updating max concurrency dynamically of respective Breakers.
+// Max concurrency is essentially the number of semaphore tokens the Breaker has in rotation.
+// The manipulation of the parameter is done via `UpdateCapacity()` method.
+// It enables the use case to start with max concurrency set to 0 (no requests are sent because no endpoints are available)
+// and gradually increase its value depending on the external condition (e.g. new endpoints become available)
+type Throttler struct {
+ breakers map[RevisionID]*queue.Breaker
+ breakerParams queue.BreakerParams
+ logger *zap.SugaredLogger
+ getEndpoints func(RevisionID) (int32, error)
+ getRevision func(RevisionID) (*v1alpha1.Revision, error)
+ mux sync.Mutex
+}
+
+// Remove deletes the breaker from the bookkeeping.
+func (t *Throttler) Remove(rev RevisionID) {
+ t.mux.Lock()
+ defer t.mux.Unlock()
+ delete(t.breakers, rev)
+}
+
+// UpdateCapacity updates the max concurrency of the Breaker corresponding to a revision.
+func (t *Throttler) UpdateCapacity(rev RevisionID, size int32) error {
+ revision, err := t.getRevision(rev)
+ if err != nil {
+ return err
+ }
+ breaker, _ := t.getOrCreateBreaker(rev)
+ return t.updateCapacity(revision, breaker, size)
+}
+
+// Try potentially registers a new breaker in our bookkeeping
+// and executes the `function` on the Breaker.
+// It returns an error if either breaker doesn't have enough capacity,
+// or breaker's registration didn't succeed, e.g. getting endpoints or update capacity failed.
+func (t *Throttler) Try(rev RevisionID, function func()) error {
+ breaker, existed := t.getOrCreateBreaker(rev)
+ if !existed {
+ // Need to fetch the latest endpoints state, in case we missed the update.
+ if err := t.forceUpdateCapacity(rev, breaker); err != nil {
+ return err
+ }
+ }
+ if !breaker.Maybe(function) {
+ return ErrActivatorOverload
+ }
+ return nil
+}
+
+// This method updates Breaker's concurrency.
+func (t *Throttler) updateCapacity(revision *v1alpha1.Revision, breaker *queue.Breaker, size int32) (err error) {
+ cc := int32(revision.Spec.ContainerConcurrency)
+
+ targetCapacity := cc * size
+ if cc == 0 || targetCapacity > t.breakerParams.MaxConcurrency {
+ // The concurrency is unlimited, thus hand out as many tokens as we can in this breaker.
+ targetCapacity = t.breakerParams.MaxConcurrency
+ }
+
+ return breaker.UpdateConcurrency(targetCapacity)
+}
+
+// getOrCreateBreaker retrieves existing breaker or creates a new one.
+// This is important for not loosing the update signals
+// that came before the requests reached the Activator's Handler.
+func (t *Throttler) getOrCreateBreaker(rev RevisionID) (*queue.Breaker, bool) {
+ t.mux.Lock()
+ defer t.mux.Unlock()
+ breaker, ok := t.breakers[rev]
+ if !ok {
+ breaker = queue.NewBreaker(t.breakerParams)
+ t.breakers[rev] = breaker
+ }
+ return breaker, ok
+}
+
+// forceUpdateCapacity fetches the endpoints and updates the capacity of the newly created breaker.
+// This avoids a potential deadlock in case if we missed the updates from the Endpoints informer.
+// This could happen because of a restart of the Activator or when a new one is added as part of scale out.
+func (t *Throttler) forceUpdateCapacity(rev RevisionID, breaker *queue.Breaker) (err error) {
+ size, err := t.getEndpoints(rev)
+ if err != nil {
+ return err
+ }
+ revision, err := t.getRevision(rev)
+ if err != nil {
+ return err
+ }
+ return t.updateCapacity(revision, breaker, size)
+}
+
+// UpdateEndpoints is a handler function to be used by the Endpoints informer.
+// It updates the endpoints in the Throttler if the number of hosts changed and
+// the revision already exists (we don't want to create/update throttlers for the endpoints
+// that do not belong to any revision).
+//
+// This function must not be called in parallel to not induce a wrong order of events.
+func UpdateEndpoints(throttler *Throttler) func(newObj interface{}) {
+ return func(newObj interface{}) {
+ endpoints := newObj.(*corev1.Endpoints)
+ addresses := EndpointsAddressCount(endpoints.Subsets)
+ revID := RevisionID{endpoints.Namespace, reconciler.GetServingRevisionNameForK8sService(endpoints.Name)}
+ if err := throttler.UpdateCapacity(revID, int32(addresses)); err != nil {
+ throttler.logger.Errorw("updating capacity failed", zap.Error(err))
+ }
+ }
+}
+
+// DeleteBreaker is a handler function to be used by the Endpoints informer.
+// It removes the Breaker from the Throttler bookkeeping.
+func DeleteBreaker(throttler *Throttler) func(obj interface{}) {
+ return func(obj interface{}) {
+ ep := obj.(*corev1.Endpoints)
+ name := reconciler.GetServingRevisionNameForK8sService(ep.Name)
+ revID := RevisionID{ep.Namespace, name}
+ throttler.Remove(revID)
+ }
+}
+
+// EndpointsAddressCount returns the total number of addresses registered for the endpoint.
+func EndpointsAddressCount(subsets []corev1.EndpointSubset) int {
+ var total int
+ for _, subset := range subsets {
+ total += len(subset.Addresses)
+ }
+ return total
+}
diff --git a/vendor/github.com/knative/serving/pkg/activator/util/rewinder.go b/vendor/github.com/knative/serving/pkg/activator/util/rewinder.go
index 243e17a233..723c4372cb 100644
--- a/vendor/github.com/knative/serving/pkg/activator/util/rewinder.go
+++ b/vendor/github.com/knative/serving/pkg/activator/util/rewinder.go
@@ -16,44 +16,65 @@ package util
import (
"bytes"
"io"
- "io/ioutil"
"sync"
)
type rewinder struct {
sync.Mutex
- rc io.ReadCloser
- rs io.ReadSeeker
+ original io.ReadCloser
+ current io.Reader
+ next io.ReadWriter
+ eof bool
}
-// rewinder wraps a single-use `ReadCloser` into a `ReadCloser` that can be read multiple times
+// NewRewinder wraps a single-use `ReadCloser` into a `ReadCloser`
+// that can be read multiple times
func NewRewinder(rc io.ReadCloser) io.ReadCloser {
- return &rewinder{rc: rc}
+ r := &rewinder{original: rc}
+
+ r.next = new(bytes.Buffer)
+ r.current = r.original
+
+ return r
}
func (r *rewinder) Read(b []byte) (int, error) {
r.Lock()
defer r.Unlock()
- // On the first `Read()`, the contents of `rc` is read into a buffer `rs`.
- // This buffer is used for all subsequent reads
- if r.rs == nil {
- buf, err := ioutil.ReadAll(r.rc)
- if err != nil {
- return 0, err
- }
- r.rc.Close()
- r.rs = bytes.NewReader(buf)
+ // Buffer everything we read
+ n, err := io.TeeReader(r.current, r.next).Read(b)
+
+ // Keep track of when we reach the end
+ if err == io.EOF {
+ r.eof = true
}
- return r.rs.Read(b)
+ return n, err
}
func (r *rewinder) Close() error {
r.Lock()
defer r.Unlock()
- // Rewind the buffer on `Close()` for the next call to `Read`
- r.rs.Seek(0, io.SeekStart)
+
+ // Start = what we've read already + what we haven't read yet
+ start := io.MultiReader(r.next, r.current)
+
+ // Close the original ReadCloser if we have read it to the end
+ if r.eof && r.original != nil {
+
+ if r.current == r.original {
+ // Start = only what we've read already
+ start = r.next
+ }
+
+ r.original.Close()
+ r.original = nil
+ }
+
+ // Rewind back to the start
+ r.next = new(bytes.Buffer)
+ r.current = start
return nil
}
diff --git a/vendor/github.com/knative/serving/pkg/activator/util/transports.go b/vendor/github.com/knative/serving/pkg/activator/util/transports.go
index 8d57bb1157..05f2c6df3f 100644
--- a/vendor/github.com/knative/serving/pkg/activator/util/transports.go
+++ b/vendor/github.com/knative/serving/pkg/activator/util/transports.go
@@ -25,13 +25,15 @@ import (
"go.uber.org/zap"
)
+// RoundTripperFunc implementation roundtrips a request.
type RoundTripperFunc func(*http.Request) (*http.Response, error)
+// RoundTrip implements http.RoundTripper.
func (rt RoundTripperFunc) RoundTrip(r *http.Request) (*http.Response, error) {
return rt(r)
}
-// NewHttpTransport will use the appropriate transport for the request's HTTP protocol version
+// NewHTTPTransport will use the appropriate transport for the request's HTTP protocol version
func NewHTTPTransport(v1 http.RoundTripper, v2 http.RoundTripper) http.RoundTripper {
return RoundTripperFunc(func(r *http.Request) (*http.Response, error) {
t := v1
@@ -46,9 +48,10 @@ func NewHTTPTransport(v1 http.RoundTripper, v2 http.RoundTripper) http.RoundTrip
// AutoTransport uses h2c for HTTP2 requests and falls back to `http.DefaultTransport` for all others
var AutoTransport = NewHTTPTransport(http.DefaultTransport, h2cutil.DefaultTransport)
+// RetryCond implementationr returns true if the request is to be retried.
type RetryCond func(*http.Response) bool
-// RetryStatus will filter responses matching `status`
+// RetryStatus will filter responses matching `status`.
func RetryStatus(status int) RetryCond {
return func(resp *http.Response) bool {
return resp.StatusCode == status
@@ -62,7 +65,7 @@ type retryRoundTripper struct {
retryConditions []RetryCond
}
-// RetryRoundTripper retries a request on error or retry condition, using the given `retry` strategy
+// NewRetryRoundTripper retries a request on error or retry condition, using the given `retry` strategy
func NewRetryRoundTripper(rt http.RoundTripper, l *zap.SugaredLogger, b wait.Backoff, conditions ...RetryCond) http.RoundTripper {
return &retryRoundTripper{
logger: l,
diff --git a/vendor/github.com/knative/serving/pkg/apis/autoscaling/register.go b/vendor/github.com/knative/serving/pkg/apis/autoscaling/register.go
index 38626e0b85..1bbcbe7b00 100644
--- a/vendor/github.com/knative/serving/pkg/apis/autoscaling/register.go
+++ b/vendor/github.com/knative/serving/pkg/apis/autoscaling/register.go
@@ -26,10 +26,35 @@ const (
// autoscaling.knative.dev/class: foo
// This uses a different domain because unlike the resource, it is user-facing.
ClassAnnotationKey = GroupName + "/class"
-
+ // KPA is Knative Horizontal Pod Autoscaler
+ KPA = "kpa.autoscaling.knative.dev"
+ // HPA is Kubernetes Horizontal Pod Autoscaler
+ HPA = "hpa.autoscaling.knative.dev"
+
+ // MinScaleAnnotationKey is the annotation to specify the minimum number of Pods
+ // the PodAutoscaler should provision. For example,
+ // autoscaling.knative.dev/minScale: "1"
MinScaleAnnotationKey = GroupName + "/minScale"
+ // MinScaleAnnotationKey is the annotation to specify the maximum number of Pods
+ // the PodAutoscaler should provision. For example,
+ // autoscaling.knative.dev/maxScale: "10"
MaxScaleAnnotationKey = GroupName + "/maxScale"
+ // MetricAnnotationKey is the annotation to specify what metric the PodAutoscaler
+ // should be scaled on. For example,
+ // autoscaling.knative.dev/metric: cpu
+ MetricAnnotationKey = GroupName + "/metric"
+ // Concurrency is the number of requests in-flight at any given time.
+ Concurrency = "concurrency"
+ // CPU is the amount of the requested cpu actually being consumed by the Pod.
+ CPU = "cpu"
+
+ // TargetAnnotationKey is the annotation to specify what metric value the
+ // PodAutoscaler should attempt to maintain. For example,
+ // autoscaling.knative.dev/metric: cpu
+ // autoscaling.knative.dev/target: 75 # target 75% cpu utilization
+ TargetAnnotationKey = GroupName + "/target"
+
// KPALabelKey is the label key attached to a K8s Service to hint to the KPA
// which services/endpoints should trigger reconciles.
KPALabelKey = GroupName + "/kpa"
diff --git a/vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/kpa_defaults.go b/vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/pa_defaults.go
similarity index 60%
rename from vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/kpa_defaults.go
rename to vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/pa_defaults.go
index 6d168478d8..70f6f34752 100644
--- a/vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/kpa_defaults.go
+++ b/vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/pa_defaults.go
@@ -17,11 +17,30 @@ limitations under the License.
package v1alpha1
import (
+ "github.com/knative/serving/pkg/apis/autoscaling"
servingv1alpha1 "github.com/knative/serving/pkg/apis/serving/v1alpha1"
)
func (r *PodAutoscaler) SetDefaults() {
r.Spec.SetDefaults()
+ if r.Annotations == nil {
+ r.Annotations = make(map[string]string)
+ }
+ if _, ok := r.Annotations[autoscaling.ClassAnnotationKey]; !ok {
+ // Default class to KPA.
+ r.Annotations[autoscaling.ClassAnnotationKey] = autoscaling.KPA
+ }
+ // Default metric per class
+ switch r.Class() {
+ case autoscaling.KPA:
+ if _, ok := r.Annotations[autoscaling.MetricAnnotationKey]; !ok {
+ r.Annotations[autoscaling.MetricAnnotationKey] = autoscaling.Concurrency
+ }
+ case autoscaling.HPA:
+ if _, ok := r.Annotations[autoscaling.MetricAnnotationKey]; !ok {
+ r.Annotations[autoscaling.MetricAnnotationKey] = autoscaling.CPU
+ }
+ }
}
func (rs *PodAutoscalerSpec) SetDefaults() {
diff --git a/vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/kpa_types.go b/vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/pa_types.go
similarity index 68%
rename from vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/kpa_types.go
rename to vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/pa_types.go
index c5e73d28dd..65d597cada 100644
--- a/vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/kpa_types.go
+++ b/vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/pa_types.go
@@ -17,17 +17,18 @@ limitations under the License.
package v1alpha1
import (
+ "fmt"
"strconv"
"time"
- autoscalingv1 "k8s.io/api/autoscaling/v1"
- corev1 "k8s.io/api/core/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-
"github.com/knative/pkg/apis"
duckv1alpha1 "github.com/knative/pkg/apis/duck/v1alpha1"
"github.com/knative/serving/pkg/apis/autoscaling"
servingv1alpha1 "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ autoscalingv1 "k8s.io/api/autoscaling/v1"
+ corev1 "k8s.io/api/core/v1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/apimachinery/pkg/runtime/schema"
)
// +genclient
@@ -61,12 +62,16 @@ var _ duckv1alpha1.ConditionsAccessor = (*PodAutoscalerStatus)(nil)
// PodAutoscalerSpec holds the desired state of the PodAutoscaler (from the client).
type PodAutoscalerSpec struct {
- // TODO: Generation does not work correctly with CRD. They are scrubbed
- // by the APIserver (https://github.com/kubernetes/kubernetes/issues/58778)
- // So, we add Generation here. Once that gets fixed, remove this and use
- // ObjectMeta.Generation instead.
+ // DeprecatedGeneration was used prior in Kubernetes versions <1.11
+ // when metadata.generation was not being incremented by the api server
+ //
+ // This property will be dropped in future Knative releases and should
+ // not be used - use metadata.generation
+ //
+ // Tracking issue: https://github.com/knative/serving/issues/643
+ //
// +optional
- Generation int64 `json:"generation,omitempty"`
+ DeprecatedGeneration int64 `json:"generation,omitempty"`
// ConcurrencyModel specifies the desired concurrency model
// (Single or Multi) for the scale target. Defaults to Multi.
@@ -108,6 +113,12 @@ type PodAutoscalerStatus struct {
// state of the world.
// +optional
Conditions duckv1alpha1.Conditions `json:"conditions,omitempty"`
+
+ // ObservedGeneration is the 'Generation' of the PodAutoscaler that
+ // was last processed by the controller. The observed generation is updated
+ // even if the controller failed to process the spec.
+ // +optional
+ ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
@@ -120,10 +131,25 @@ type PodAutoscalerList struct {
Items []PodAutoscaler `json:"items"`
}
-func (kpa *PodAutoscaler) scaleBoundInt32(key string) int32 {
- if s, ok := kpa.Annotations[key]; ok {
+func (pa *PodAutoscaler) GetGroupVersionKind() schema.GroupVersionKind {
+ return SchemeGroupVersion.WithKind("PodAutoscaler")
+}
+
+func (pa *PodAutoscaler) Class() string {
+ if c, ok := pa.Annotations[autoscaling.ClassAnnotationKey]; ok {
+ return c
+ }
+ // Default to "kpa" class for backward compatibility.
+ return autoscaling.KPA
+}
+
+func (pa *PodAutoscaler) annotationInt32(key string) int32 {
+ if s, ok := pa.Annotations[key]; ok {
// no error check: relying on validation
i, _ := strconv.ParseInt(s, 10, 32)
+ if i < 0 {
+ return 0
+ }
return int32(i)
}
return 0
@@ -132,18 +158,39 @@ func (kpa *PodAutoscaler) scaleBoundInt32(key string) int32 {
// ScaleBounds returns scale bounds annotations values as a tuple:
// `(min, max int32)`. The value of 0 for any of min or max means the bound is
// not set
-func (kpa *PodAutoscaler) ScaleBounds() (min, max int32) {
- min = kpa.scaleBoundInt32(autoscaling.MinScaleAnnotationKey)
- max = kpa.scaleBoundInt32(autoscaling.MaxScaleAnnotationKey)
+func (pa *PodAutoscaler) ScaleBounds() (min, max int32) {
+ min = pa.annotationInt32(autoscaling.MinScaleAnnotationKey)
+ max = pa.annotationInt32(autoscaling.MaxScaleAnnotationKey)
return
}
+// Target returns the target annotation value or false if not present.
+func (pa *PodAutoscaler) Target() (target int32, ok bool) {
+ if s, ok := pa.Annotations[autoscaling.TargetAnnotationKey]; ok {
+ if i, err := strconv.Atoi(s); err == nil {
+ if i < 1 {
+ return 0, false
+ }
+ return int32(i), true
+ }
+ }
+ return 0, false
+}
+
// IsReady looks at the conditions and if the Status has a condition
// PodAutoscalerConditionReady returns true if ConditionStatus is True
func (rs *PodAutoscalerStatus) IsReady() bool {
return podCondSet.Manage(rs).IsHappy()
}
+// IsActivating assumes the pod autoscaler is Activating if it is neither
+// Active nor Inactive
+func (rs *PodAutoscalerStatus) IsActivating() bool {
+ cond := rs.GetCondition(PodAutoscalerConditionActive)
+
+ return cond != nil && cond.Status == corev1.ConditionUnknown
+}
+
func (rs *PodAutoscalerStatus) GetCondition(t duckv1alpha1.ConditionType) *duckv1alpha1.Condition {
return podCondSet.Manage(rs).GetCondition(t)
}
@@ -164,6 +211,20 @@ func (rs *PodAutoscalerStatus) MarkInactive(reason, message string) {
podCondSet.Manage(rs).MarkFalse(PodAutoscalerConditionActive, reason, message)
}
+// MarkResourceNotOwned changes the "Active" condition to false to reflect that the
+// resource of the given kind and name has already been created, and we do not own it.
+func (rs *PodAutoscalerStatus) MarkResourceNotOwned(kind, name string) {
+ rs.MarkInactive("NotOwned",
+ fmt.Sprintf("There is an existing %s %q that we do not own.", kind, name))
+}
+
+// MarkResourceFailedCreation changes the "Active" condition to false to reflect that a
+// critical resource of the given kind and name was unable to be created.
+func (rs *PodAutoscalerStatus) MarkResourceFailedCreation(kind, name string) {
+ rs.MarkInactive("FailedCreate",
+ fmt.Sprintf("Failed to create %s %q.", kind, name))
+}
+
// CanScaleToZero checks whether the pod autoscaler has been in an inactive state
// for at least the specified grace period.
func (rs *PodAutoscalerStatus) CanScaleToZero(gracePeriod time.Duration) bool {
@@ -178,6 +239,20 @@ func (rs *PodAutoscalerStatus) CanScaleToZero(gracePeriod time.Duration) bool {
return false
}
+// CanMarkInactive checks whether the pod autoscaler has been in an active state
+// for at least the specified idle period.
+func (rs *PodAutoscalerStatus) CanMarkInactive(idlePeriod time.Duration) bool {
+ if cond := rs.GetCondition(PodAutoscalerConditionActive); cond != nil {
+ switch cond.Status {
+ case corev1.ConditionTrue:
+ // Check that this PodAutoscaler has been active for
+ // at least the grace period.
+ return time.Now().After(cond.LastTransitionTime.Inner.Add(idlePeriod))
+ }
+ }
+ return false
+}
+
// GetConditions returns the Conditions array. This enables generic handling of
// conditions by implementing the duckv1alpha1.Conditions interface.
func (rs *PodAutoscalerStatus) GetConditions() duckv1alpha1.Conditions {
diff --git a/vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/kpa_validation.go b/vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/pa_validation.go
similarity index 59%
rename from vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/kpa_validation.go
rename to vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/pa_validation.go
index 97bd744955..1e893664b8 100644
--- a/vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/kpa_validation.go
+++ b/vendor/github.com/knative/serving/pkg/apis/autoscaling/v1alpha1/pa_validation.go
@@ -17,16 +17,21 @@ limitations under the License.
package v1alpha1
import (
- "github.com/google/go-cmp/cmp"
- autoscalingv1 "k8s.io/api/autoscaling/v1"
- "k8s.io/apimachinery/pkg/api/equality"
+ "fmt"
"github.com/knative/pkg/apis"
+ "github.com/knative/pkg/kmp"
+ "github.com/knative/serving/pkg/apis/autoscaling"
servingv1alpha1 "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ autoscalingv1 "k8s.io/api/autoscaling/v1"
+ "k8s.io/apimachinery/pkg/api/equality"
)
func (rt *PodAutoscaler) Validate() *apis.FieldError {
- return servingv1alpha1.ValidateObjectMetadata(rt.GetObjectMeta()).ViaField("metadata").Also(rt.Spec.Validate().ViaField("spec"))
+ return servingv1alpha1.ValidateObjectMetadata(rt.GetObjectMeta()).
+ ViaField("metadata").
+ Also(rt.Spec.Validate().ViaField("spec")).
+ Also(rt.validateMetric())
}
func (rs *PodAutoscalerSpec) Validate() *apis.FieldError {
@@ -62,18 +67,61 @@ func validateReference(ref autoscalingv1.CrossVersionObjectReference) *apis.Fiel
return errs
}
+func (pa *PodAutoscaler) validateMetric() *apis.FieldError {
+ if metric, ok := pa.Annotations[autoscaling.MetricAnnotationKey]; ok {
+ switch pa.Class() {
+ case autoscaling.KPA:
+ switch metric {
+ case autoscaling.Concurrency:
+ return nil
+ }
+ case autoscaling.HPA:
+ switch metric {
+ case autoscaling.CPU:
+ return nil
+ }
+ // TODO: implement OPS autoscaling.
+ default:
+ // Leave other classes of PodAutoscaler alone.
+ return nil
+ }
+ return &apis.FieldError{
+ Message: fmt.Sprintf("Unsupported metric %q for PodAutoscaler class %q",
+ metric, pa.Class()),
+ Paths: []string{"annotations[autoscaling.knative.dev/metric]"},
+ }
+ }
+ return nil
+}
+
func (current *PodAutoscaler) CheckImmutableFields(og apis.Immutable) *apis.FieldError {
original, ok := og.(*PodAutoscaler)
if !ok {
return &apis.FieldError{Message: "The provided original was not a PodAutoscaler"}
}
- if diff := cmp.Diff(original.Spec, current.Spec); diff != "" {
+ if diff, err := kmp.SafeDiff(original.Spec, current.Spec); err != nil {
+ return &apis.FieldError{
+ Message: "Failed to diff PodAutoscaler",
+ Paths: []string{"spec"},
+ Details: err.Error(),
+ }
+ } else if diff != "" {
return &apis.FieldError{
Message: "Immutable fields changed (-old +new)",
Paths: []string{"spec"},
Details: diff,
}
}
+ // Verify the PA class does not change.
+ // For backward compatibility, we allow a new class where there was none before.
+ if oldClass, ok := original.Annotations[autoscaling.ClassAnnotationKey]; ok {
+ if newClass, ok := current.Annotations[autoscaling.ClassAnnotationKey]; !ok || oldClass != newClass {
+ return &apis.FieldError{
+ Message: fmt.Sprintf("Immutable class annotation changed (-%q +%q)", oldClass, newClass),
+ Paths: []string{"annotations[autoscaling.knative.dev/class]"},
+ }
+ }
+ }
return nil
}
diff --git a/vendor/github.com/knative/serving/pkg/apis/networking/register.go b/vendor/github.com/knative/serving/pkg/apis/networking/register.go
index e47c0cfa04..a430d55d2c 100644
--- a/vendor/github.com/knative/serving/pkg/apis/networking/register.go
+++ b/vendor/github.com/knative/serving/pkg/apis/networking/register.go
@@ -30,7 +30,7 @@ const (
//
// The parent resource may use its own annotations to choose the
// annotation value for the ClusterIngress it uses. Based on such
- // value a different reconcilation logic may be used (for examples,
+ // value a different reconciliation logic may be used (for examples,
// Istio-based ClusterIngress will reconcile into a VirtualService).
IngressClassAnnotationKey = "networking.knative.dev/ingress.class"
diff --git a/vendor/github.com/knative/serving/pkg/apis/networking/v1alpha1/clusteringress_defaults.go b/vendor/github.com/knative/serving/pkg/apis/networking/v1alpha1/clusteringress_defaults.go
index 7a6df88b3b..114dc18ebc 100644
--- a/vendor/github.com/knative/serving/pkg/apis/networking/v1alpha1/clusteringress_defaults.go
+++ b/vendor/github.com/knative/serving/pkg/apis/networking/v1alpha1/clusteringress_defaults.go
@@ -24,7 +24,7 @@ import (
const (
// DefaultTimeout will be set if timeout not specified.
- DefaultTimeout = 60 * time.Second
+ DefaultTimeout = 10 * time.Minute
// DefaultRetryCount will be set if Attempts not specified.
DefaultRetryCount = 3
)
@@ -40,12 +40,15 @@ func (c *IngressSpec) SetDefaults() {
for i := range c.Rules {
c.Rules[i].SetDefaults()
}
+ if c.Visibility == "" {
+ c.Visibility = IngressVisibilityExternalIP
+ }
}
func (t *ClusterIngressTLS) SetDefaults() {
- // Default Secret key for ServerCertificate is `tls.cert`.
+ // Default Secret key for ServerCertificate is `tls.crt`.
if t.ServerCertificate == "" {
- t.ServerCertificate = "tls.cert"
+ t.ServerCertificate = "tls.crt"
}
// Default Secret key for PrivateKey is `tls.key`.
if t.PrivateKey == "" {
diff --git a/vendor/github.com/knative/serving/pkg/apis/networking/v1alpha1/clusteringress_types.go b/vendor/github.com/knative/serving/pkg/apis/networking/v1alpha1/clusteringress_types.go
index 7d19a45b79..868e8aec0f 100644
--- a/vendor/github.com/knative/serving/pkg/apis/networking/v1alpha1/clusteringress_types.go
+++ b/vendor/github.com/knative/serving/pkg/apis/networking/v1alpha1/clusteringress_types.go
@@ -17,6 +17,8 @@ limitations under the License.
package v1alpha1
import (
+ "fmt"
+
"github.com/knative/pkg/apis"
duckv1alpha1 "github.com/knative/pkg/apis/duck/v1alpha1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -74,12 +76,16 @@ type ClusterIngressList struct {
// - Timeout & Retry can be configured.
// - Headers can be appended.
type IngressSpec struct {
- // TODO: Generation does not work correctly with CRD. They are scrubbed
- // by the APIserver (https://github.com/kubernetes/kubernetes/issues/58778)
- // So, we add Generation here. Once that gets fixed, remove this and use
- // ObjectMeta.Generation instead.
+ // DeprecatedGeneration was used prior in Kubernetes versions <1.11
+ // when metadata.generation was not being incremented by the api server
+ //
+ // This property will be dropped in future Knative releases and should
+ // not be used - use metadata.generation
+ //
+ // Tracking issue: https://github.com/knative/serving/issues/643
+ //
// +optional
- Generation int64 `json:"generation,omitempty"`
+ DeprecatedGeneration int64 `json:"generation,omitempty"`
// TLS configuration. Currently the ClusterIngress only supports a single TLS
// port, 443. If multiple members of this list specify different hosts, they
@@ -93,12 +99,24 @@ type IngressSpec struct {
// +optional
Rules []ClusterIngressRule `json:"rules,omitempty"`
- // TODO: We need to consider a way to specify if the ClusterIngress address
- // should be exposed to the Internet, or only exposed privately (cluster local,
- // VPC, RFC1918). An example use case is for
- // https://github.com/knative/serving/issues/2127.
+ // Visibility setting.
+ Visibility IngressVisibility `json:"visibility,omitempty"`
}
+// IngressVisibility describes whether the Ingress should be exposed to
+// public gateways or not.
+type IngressVisibility string
+
+const (
+ // IngressVisibilityExternalIP is used to denote that the Ingress
+ // should be exposed to an external IP, for example a LoadBalancer
+ // Service. This is the default value for IngressVisibility.
+ IngressVisibilityExternalIP IngressVisibility = "ExternalIP"
+ // IngressVisibilityClusterLocal is used to denote that the Ingress
+ // should be only be exposed locally to the cluster.
+ IngressVisibilityClusterLocal IngressVisibility = "ClusterLocal"
+)
+
// ClusterIngressTLS describes the transport layer security associated with an ClusterIngress.
type ClusterIngressTLS struct {
// Hosts are a list of hosts included in the TLS certificate. The values in
@@ -243,6 +261,12 @@ type IngressStatus struct {
// LoadBalancer contains the current status of the load-balancer.
// +optional
LoadBalancer *LoadBalancerStatus `json:"loadBalancer,omitempty"`
+
+ // ObservedGeneration is the 'Generation' of the ClusterIngress that
+ // was last processed by the controller. The observed generation is updated
+ // even if the controller failed to process the spec.
+ // +optional
+ ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}
// LoadBalancerStatus represents the status of a load-balancer.
@@ -273,6 +297,10 @@ type LoadBalancerIngressStatus struct {
//
// +optional
DomainInternal string `json:"domainInternal,omitempty"`
+
+ // MeshOnly is set if the ClusterIngress is only load-balanced through a Service mesh.
+ // +optional
+ MeshOnly bool `json:"meshOnly,omitempty"`
}
// ConditionType represents a ClusterIngress condition value
@@ -303,6 +331,11 @@ func (ci *ClusterIngress) GetGroupVersionKind() schema.GroupVersionKind {
return SchemeGroupVersion.WithKind("ClusterIngress")
}
+// IsPublic returns whether the ClusterIngress should be exposed publicly.
+func (ci *ClusterIngress) IsPublic() bool {
+ return ci.Spec.Visibility == "" || ci.Spec.Visibility == IngressVisibilityExternalIP
+}
+
// GetConditions returns the Conditions array. This enables generic handling of
// conditions by implementing the duckv1alpha1.Conditions interface.
func (cis *IngressStatus) GetConditions() duckv1alpha1.Conditions {
@@ -327,6 +360,13 @@ func (cis *IngressStatus) MarkNetworkConfigured() {
clusterIngressCondSet.Manage(cis).MarkTrue(ClusterIngressConditionNetworkConfigured)
}
+// MarkResourceNotOwned changes the "NetworkConfigured" condition to false to reflect that the
+// resource of the given kind and name has already been created, and we do not own it.
+func (cis *IngressStatus) MarkResourceNotOwned(kind, name string) {
+ clusterIngressCondSet.Manage(cis).MarkFalse(ClusterIngressConditionNetworkConfigured, "NotOwned",
+ fmt.Sprintf("There is an existing %s %q that we do not own.", kind, name))
+}
+
// MarkLoadBalancerReady marks the Ingress with ClusterIngressConditionLoadBalancerReady,
// and also populate the address of the load balancer.
func (cis *IngressStatus) MarkLoadBalancerReady(lbs []LoadBalancerIngressStatus) {
diff --git a/vendor/github.com/knative/serving/pkg/apis/networking/v1alpha1/clusteringress_validation.go b/vendor/github.com/knative/serving/pkg/apis/networking/v1alpha1/clusteringress_validation.go
index b64129b2ed..3184caa181 100644
--- a/vendor/github.com/knative/serving/pkg/apis/networking/v1alpha1/clusteringress_validation.go
+++ b/vendor/github.com/knative/serving/pkg/apis/networking/v1alpha1/clusteringress_validation.go
@@ -17,23 +17,25 @@ limitations under the License.
package v1alpha1
import (
- "fmt"
+ "strconv"
"github.com/knative/pkg/apis"
"k8s.io/apimachinery/pkg/api/equality"
"k8s.io/apimachinery/pkg/util/intstr"
)
+// Validate inspects and validates ClusterIngress object.
func (ci *ClusterIngress) Validate() *apis.FieldError {
return ci.Spec.Validate().ViaField("spec")
}
+// Validate inspects and validates IngressSpec object.
func (spec *IngressSpec) Validate() *apis.FieldError {
// Spec must not be empty.
if equality.Semantic.DeepEqual(spec, &IngressSpec{}) {
return apis.ErrMissingField(apis.CurrentField)
}
- var all *apis.FieldError = nil
+ var all *apis.FieldError
// Spec must have at least one rule.
if len(spec.Rules) == 0 {
all = all.Also(apis.ErrMissingField("rules"))
@@ -49,12 +51,13 @@ func (spec *IngressSpec) Validate() *apis.FieldError {
return all
}
+// Validate inspects and validates ClusterIngressRule object.
func (r *ClusterIngressRule) Validate() *apis.FieldError {
// Provided rule must not be empty.
if equality.Semantic.DeepEqual(r, &ClusterIngressRule{}) {
return apis.ErrMissingField(apis.CurrentField)
}
- var all *apis.FieldError = nil
+ var all *apis.FieldError
if r.HTTP == nil {
all = all.Also(apis.ErrMissingField("http"))
} else {
@@ -63,23 +66,25 @@ func (r *ClusterIngressRule) Validate() *apis.FieldError {
return all
}
+// Validate inspects and validates HTTPClusterIngressRuleValue object.
func (h *HTTPClusterIngressRuleValue) Validate() *apis.FieldError {
if len(h.Paths) == 0 {
return apis.ErrMissingField("paths")
}
- var all *apis.FieldError = nil
+ var all *apis.FieldError
for idx, path := range h.Paths {
all = all.Also(path.Validate().ViaFieldIndex("paths", idx))
}
return all
}
+// Validate inspects and validates HTTPClusterIngressPath object.
func (h HTTPClusterIngressPath) Validate() *apis.FieldError {
// Provided rule must not be empty.
if equality.Semantic.DeepEqual(h, HTTPClusterIngressPath{}) {
return apis.ErrMissingField(apis.CurrentField)
}
- var all *apis.FieldError = nil
+ var all *apis.FieldError
// Must provide as least one split.
if len(h.Splits) == 0 {
all = all.Also(apis.ErrMissingField("splits"))
@@ -95,11 +100,10 @@ func (h HTTPClusterIngressPath) Validate() *apis.FieldError {
// interpret as 100%.
if len(h.Splits) == 1 && totalPct == 0 {
totalPct = 100
- }
- // Total traffic split percentage must sum up to 100%.
- if totalPct != 100 {
+ } else if totalPct != 100 {
+ // Total traffic split percentage must sum up to 100%.
all = all.Also(&apis.FieldError{
- Message: "Traffic split percentage must total to 100",
+ Message: "Traffic split percentage must total to 100, but was " + strconv.Itoa(totalPct),
Paths: []string{"splits"},
})
}
@@ -110,15 +114,16 @@ func (h HTTPClusterIngressPath) Validate() *apis.FieldError {
return all
}
+// Validate inspects and validates HTTPClusterIngressPath object.
func (s ClusterIngressBackendSplit) Validate() *apis.FieldError {
// Must not be empty.
if equality.Semantic.DeepEqual(s, ClusterIngressBackendSplit{}) {
return apis.ErrMissingField(apis.CurrentField)
}
- var all *apis.FieldError = nil
+ var all *apis.FieldError
// Percent must be between 0 and 100.
if s.Percent < 0 || s.Percent > 100 {
- all = all.Also(apis.ErrInvalidValue(fmt.Sprintf("%d", s.Percent), "percent"))
+ all = all.Also(apis.ErrInvalidValue(strconv.Itoa(s.Percent), "percent"))
}
return all.Also(s.ClusterIngressBackend.Validate())
}
@@ -130,7 +135,7 @@ func (b ClusterIngressBackend) Validate() *apis.FieldError {
if equality.Semantic.DeepEqual(b, ClusterIngressBackend{}) {
return apis.ErrMissingField(apis.CurrentField)
}
- var all *apis.FieldError = nil
+ var all *apis.FieldError
if b.ServiceNamespace == "" {
all = all.Also(apis.ErrMissingField("serviceNamespace"))
}
@@ -143,20 +148,22 @@ func (b ClusterIngressBackend) Validate() *apis.FieldError {
return all
}
+// Validate inspects and validates HTTPRetry object.
func (r *HTTPRetry) Validate() *apis.FieldError {
// Attempts must be greater than 0.
if r.Attempts < 0 {
- return apis.ErrInvalidValue(fmt.Sprintf("%d", r.Attempts), "attempts")
+ return apis.ErrInvalidValue(strconv.Itoa(r.Attempts), "attempts")
}
return nil
}
+// Validate inspects and validates ClusterIngressTLS object.
func (t *ClusterIngressTLS) Validate() *apis.FieldError {
// Provided TLS setting must not be empty.
if equality.Semantic.DeepEqual(t, &ClusterIngressTLS{}) {
return apis.ErrMissingField(apis.CurrentField)
}
- var all *apis.FieldError = nil
+ var all *apis.FieldError
// SecretName and SecretNamespace must not be empty.
if t.SecretName == "" {
all = all.Also(apis.ErrMissingField("secretName"))
diff --git a/vendor/github.com/knative/serving/pkg/apis/serving/register.go b/vendor/github.com/knative/serving/pkg/apis/serving/register.go
index a5daf5d034..1034e480a6 100644
--- a/vendor/github.com/knative/serving/pkg/apis/serving/register.go
+++ b/vendor/github.com/knative/serving/pkg/apis/serving/register.go
@@ -23,10 +23,6 @@ const (
// which Configuration it is created.
ConfigurationLabelKey = GroupName + "/configuration"
- // ConfigurationGenerationAnnotationKey is the annotation key attached to a Revision indicating the
- // generation of the Configuration that created this revision
- ConfigurationGenerationAnnotationKey = GroupName + "/configurationGeneration"
-
// RevisionLastPinnedAnnotationKey is the annotation key used for determining when a route has
// pinned a revision
RevisionLastPinnedAnnotationKey = GroupName + "/lastPinned"
@@ -56,4 +52,16 @@ const (
// ServiceLabelKey is the label key attached to a Route and Configuration indicating by
// which Service they are created.
ServiceLabelKey = GroupName + "/service"
+
+ // ConfigurationGenerationLabelKey is the label key attached to a Revision indicating the
+ // metadata generation of the Configuration that created this revision
+ ConfigurationGenerationLabelKey = GroupName + "/configurationGeneration"
+
+ // DeprecatedConfigurationMetadataGenerationLabelKey is the label key attached to a Revision indicating the
+ // metadata generation of the Configuration that created this revision
+ DeprecatedConfigurationMetadataGenerationLabelKey = GroupName + "/configurationMetadataGeneration"
+
+ // BuildHashLabelKey is the label key attached to a Build indicating the
+ // hash of the spec from which they were created.
+ BuildHashLabelKey = GroupName + "/buildHash"
)
diff --git a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/configuration_types.go b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/configuration_types.go
index 503d4ea9b0..f8393b722d 100644
--- a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/configuration_types.go
+++ b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/configuration_types.go
@@ -17,12 +17,11 @@ limitations under the License.
package v1alpha1
import (
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/runtime/schema"
-
"github.com/knative/pkg/apis"
duckv1alpha1 "github.com/knative/pkg/apis/duck/v1alpha1"
"github.com/knative/pkg/kmeta"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/apimachinery/pkg/runtime/schema"
)
// +genclient
@@ -60,12 +59,16 @@ var _ duckv1alpha1.ConditionsAccessor = (*ConfigurationStatus)(nil)
// ConfigurationSpec holds the desired state of the Configuration (from the client).
type ConfigurationSpec struct {
- // TODO: Generation does not work correctly with CRD. They are scrubbed
- // by the APIserver (https://github.com/kubernetes/kubernetes/issues/58778)
- // So, we add Generation here. Once that gets fixed, remove this and use
- // ObjectMeta.Generation instead.
+ // DeprecatedGeneration was used prior in Kubernetes versions <1.11
+ // when metadata.generation was not being incremented by the api server
+ //
+ // This property will be dropped in future Knative releases and should
+ // not be used - use metadata.generation
+ //
+ // Tracking issue: https://github.com/knative/serving/issues/643
+ //
// +optional
- Generation int64 `json:"generation,omitempty"`
+ DeprecatedGeneration int64 `json:"generation,omitempty"`
// Build optionally holds the specification for the build to
// perform to produce the Revision's container image.
@@ -167,14 +170,14 @@ func (cs *ConfigurationStatus) MarkLatestCreatedFailed(name, message string) {
confCondSet.Manage(cs).MarkFalse(
ConfigurationConditionReady,
"RevisionFailed",
- "Revision %q failed with message: %q.", name, message)
+ "Revision %q failed with message: %s.", name, message)
}
func (cs *ConfigurationStatus) MarkRevisionCreationFailed(message string) {
confCondSet.Manage(cs).MarkFalse(
ConfigurationConditionReady,
"RevisionFailed",
- "Revision creation failed with message: %q.", message)
+ "Revision creation failed with message: %s.", message)
}
func (cs *ConfigurationStatus) MarkLatestReadyDeleted() {
diff --git a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/configuration_validation.go b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/configuration_validation.go
index 04f5827a1b..dc806584de 100644
--- a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/configuration_validation.go
+++ b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/configuration_validation.go
@@ -24,11 +24,13 @@ import (
"github.com/knative/pkg/apis"
)
+// Validate makes sure that Configuration is properly configured.
func (c *Configuration) Validate() *apis.FieldError {
return ValidateObjectMetadata(c.GetObjectMeta()).ViaField("metadata").
Also(c.Spec.Validate().ViaField("spec"))
}
+// Validate makes sure that ConfigurationSpec is properly configured.
func (cs *ConfigurationSpec) Validate() *apis.FieldError {
if equality.Semantic.DeepEqual(cs, &ConfigurationSpec{}) {
return apis.ErrMissingField(apis.CurrentField)
diff --git a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/metadata_validation.go b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/metadata_validation.go
index b6755d2bda..e14c24a9a0 100644
--- a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/metadata_validation.go
+++ b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/metadata_validation.go
@@ -19,26 +19,44 @@ package v1alpha1
import (
"fmt"
"strconv"
- "strings"
"github.com/knative/pkg/apis"
"github.com/knative/serving/pkg/apis/autoscaling"
+ "k8s.io/apimachinery/pkg/api/validation"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
+// ValidateObjectMetadata validates that `metadata` stanza of the
+// resources is correct.
func ValidateObjectMetadata(meta metav1.Object) *apis.FieldError {
name := meta.GetName()
+ generateName := meta.GetGenerateName()
- if strings.Contains(name, ".") {
- return &apis.FieldError{
- Message: "Invalid resource name: special character . must not be present",
- Paths: []string{"name"},
+ if generateName != "" {
+ msgs := validation.NameIsDNS1035Label(generateName, true)
+
+ if len(msgs) > 0 {
+ return &apis.FieldError{
+ Message: fmt.Sprintf("not a DNS 1035 label prefix: %v", msgs),
+ Paths: []string{"generateName"},
+ }
+ }
+ }
+
+ if name != "" {
+ msgs := validation.NameIsDNS1035Label(name, false)
+
+ if len(msgs) > 0 {
+ return &apis.FieldError{
+ Message: fmt.Sprintf("not a DNS 1035 label: %v", msgs),
+ Paths: []string{"name"},
+ }
}
}
- if len(name) > 63 {
+ if generateName == "" && name == "" {
return &apis.FieldError{
- Message: "Invalid resource name: length must be no more than 63 characters",
+ Message: "name or generateName is required",
Paths: []string{"name"},
}
}
@@ -56,7 +74,7 @@ func getIntGT0(m map[string]string, k string) (int64, *apis.FieldError) {
i, err := strconv.ParseInt(v, 10, 32)
if err != nil || i < 1 {
return 0, &apis.FieldError{
- Message: fmt.Sprintf("Invalid %s annotation value: must be integer greater than 0", k),
+ Message: fmt.Sprintf("Invalid %s annotation value: must be an integer greater than 0", k),
Paths: []string{k},
}
}
diff --git a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/revision_defaults.go b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/revision_defaults.go
index 2cd42b02e2..b6459ca711 100644
--- a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/revision_defaults.go
+++ b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/revision_defaults.go
@@ -16,6 +16,11 @@ limitations under the License.
package v1alpha1
+const (
+ // defaultTimeoutSeconds will be set if timeoutSeconds not specified.
+ defaultTimeoutSeconds = 5 * 60
+)
+
func (r *Revision) SetDefaults() {
r.Spec.SetDefaults()
}
@@ -23,7 +28,16 @@ func (r *Revision) SetDefaults() {
func (rs *RevisionSpec) SetDefaults() {
// When ConcurrencyModel is specified but ContainerConcurrency
// is not (0), use the ConcurrencyModel value.
- if rs.ConcurrencyModel == RevisionRequestConcurrencyModelSingle && rs.ContainerConcurrency == 0 {
+ if rs.DeprecatedConcurrencyModel == RevisionRequestConcurrencyModelSingle && rs.ContainerConcurrency == 0 {
rs.ContainerConcurrency = 1
}
+
+ if rs.TimeoutSeconds == 0 {
+ rs.TimeoutSeconds = defaultTimeoutSeconds
+ }
+
+ vms := rs.Container.VolumeMounts
+ for i := range vms {
+ vms[i].ReadOnly = true
+ }
}
diff --git a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/revision_types.go b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/revision_types.go
index 2cc7297404..f92a16d256 100644
--- a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/revision_types.go
+++ b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/revision_types.go
@@ -21,14 +21,13 @@ import (
"strconv"
"time"
- corev1 "k8s.io/api/core/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/runtime/schema"
-
"github.com/knative/pkg/apis"
duckv1alpha1 "github.com/knative/pkg/apis/duck/v1alpha1"
"github.com/knative/pkg/kmeta"
"github.com/knative/serving/pkg/apis/serving"
+ corev1 "k8s.io/api/core/v1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/apimachinery/pkg/runtime/schema"
)
// +genclient
@@ -119,14 +118,64 @@ const (
RevisionContainerConcurrencyMax RevisionContainerConcurrencyType = 1000
)
+// RevisionProtocolType is an enumeration of the supported application-layer protocols
+// See also: https://github.com/knative/serving/blob/master/docs/runtime-contract.md#protocols-and-ports
+type RevisionProtocolType string
+
+const (
+ // HTTP/1.1
+ RevisionProtocolHTTP1 RevisionProtocolType = "http1"
+ // HTTP/2 with Prior Knowledge
+ RevisionProtocolH2C RevisionProtocolType = "h2c"
+)
+
+const (
+ // UserPortName is the name that will be used for the Port on the
+ // Deployment and Pod created by a Revision. This name will be set regardless of if
+ // a user specifies a port or the default value is chosen.
+ UserPortName = "user-port"
+
+ // DefaultUserPort is the default port value the QueueProxy will
+ // use for connecting to the user container.
+ DefaultUserPort = 8080
+
+ // RequestQueuePortName specifies the port name to use for http requests
+ // in queue-proxy container.
+ RequestQueuePortName string = "queue-port"
+
+ // RequestQueuePort specifies the port number to use for http requests
+ // in queue-proxy container.
+ RequestQueuePort = 8012
+
+ // RequestQueueAdminPortName specifies the port name for
+ // health check and lifecyle hooks for queue-proxy.
+ RequestQueueAdminPortName string = "queueadm-port"
+
+ // RequestQueueAdminPort specifies the port number for
+ // health check and lifecyle hooks for queue-proxy.
+ RequestQueueAdminPort = 8022
+
+ // RequestQueueMetricsPort specifies the port number for metrics emitted
+ // by queue-proxy.
+ RequestQueueMetricsPort = 9090
+
+ // RequestQueueMetricsPortName specifies the port name to use for metrics
+ // emitted by queue-proxy.
+ RequestQueueMetricsPortName = "queue-metrics"
+)
+
// RevisionSpec holds the desired state of the Revision (from the client).
type RevisionSpec struct {
- // TODO: Generation does not work correctly with CRD. They are scrubbed
- // by the APIserver (https://github.com/kubernetes/kubernetes/issues/58778)
- // So, we add Generation here. Once that gets fixed, remove this and use
- // ObjectMeta.Generation instead.
+ // DeprecatedGeneration was used prior in Kubernetes versions <1.11
+ // when metadata.generation was not being incremented by the api server
+ //
+ // This property will be dropped in future Knative releases and should
+ // not be used - use metadata.generation
+ //
+ // Tracking issue: https://github.com/knative/serving/issues/643
+ //
// +optional
- Generation int64 `json:"generation,omitempty"`
+ DeprecatedGeneration int64 `json:"generation,omitempty"`
// DeprecatedServingState holds a value describing the desired state the Kubernetes
// resources should be in for this Revision.
@@ -135,12 +184,12 @@ type RevisionSpec struct {
// +optional
DeprecatedServingState DeprecatedRevisionServingStateType `json:"servingState,omitempty"`
- // ConcurrencyModel specifies the desired concurrency model
+ // DeprecatedConcurrencyModel specifies the desired concurrency model
// (Single or Multi) for the
// Revision. Defaults to Multi.
// Deprecated in favor of ContainerConcurrency.
// +optional
- ConcurrencyModel RevisionRequestConcurrencyModelType `json:"concurrencyModel,omitempty"`
+ DeprecatedConcurrencyModel RevisionRequestConcurrencyModelType `json:"concurrencyModel,omitempty"`
// ContainerConcurrency specifies the maximum allowed
// in-flight (concurrent) requests per container of the Revision.
@@ -160,11 +209,11 @@ type RevisionSpec struct {
// +optional
ServiceAccountName string `json:"serviceAccountName,omitempty"`
- // BuildName optionally holds the name of the Build responsible for
+ // DeprecatedBuildName optionally holds the name of the Build responsible for
// producing the container image for its Revision.
// DEPRECATED: Use BuildRef instead.
// +optional
- BuildName string `json:"buildName,omitempty"`
+ DeprecatedBuildName string `json:"buildName,omitempty"`
// BuildRef holds the reference to the build (if there is one) responsible
// for producing the container image for this Revision. Otherwise, nil
@@ -173,11 +222,21 @@ type RevisionSpec struct {
// Container defines the unit of execution for this Revision.
// In the context of a Revision, we disallow a number of the fields of
- // this Container, including: name, resources, ports, and volumeMounts.
- // TODO(mattmoor): Link to the runtime contract tracked by:
- // https://github.com/knative/serving/issues/627
+ // this Container, including: name and lifecycle.
+ // See also the runtime contract for more information about the execution
+ // environment:
+ // https://github.com/knative/serving/blob/master/docs/runtime-contract.md
// +optional
Container corev1.Container `json:"container,omitempty"`
+
+ // Volumes defines a set of Kubernetes volumes to be mounted into the
+ // specified Container. Currently only ConfigMap and Secret volumes are
+ // supported.
+ Volumes []corev1.Volume `json:"volumes,omitempty"`
+
+ // TimeoutSeconds holds the max duration the instance is allowed for responding to a request.
+ // +optional
+ TimeoutSeconds int64 `json:"timeoutSeconds,omitempty"`
}
const (
@@ -199,7 +258,7 @@ const (
var revCondSet = duckv1alpha1.NewLivingConditionSet(
RevisionConditionResourcesAvailable,
RevisionConditionContainerHealthy,
- RevisionConditionActive,
+ RevisionConditionBuildSucceeded,
)
var buildCondSet = duckv1alpha1.NewBatchConditionSet()
@@ -262,18 +321,27 @@ func (r *Revision) BuildRef() *corev1.ObjectReference {
return buildRef
}
- if r.Spec.BuildName != "" {
+ if r.Spec.DeprecatedBuildName != "" {
return &corev1.ObjectReference{
APIVersion: "build.knative.dev/v1alpha1",
Kind: "Build",
Namespace: r.Namespace,
- Name: r.Spec.BuildName,
+ Name: r.Spec.DeprecatedBuildName,
}
}
return nil
}
+func (r *Revision) GetProtocol() RevisionProtocolType {
+ ports := r.Spec.Container.Ports
+ if len(ports) > 0 && ports[0].Name == "h2c" {
+ return RevisionProtocolH2C
+ }
+
+ return RevisionProtocolHTTP1
+}
+
// IsReady looks at the conditions and if the Status has a condition
// RevisionConditionReady returns true if ConditionStatus is True
func (rs *RevisionStatus) IsReady() bool {
@@ -287,23 +355,12 @@ func (rs *RevisionStatus) IsActivationRequired() bool {
return false
}
-func (rs *RevisionStatus) IsRoutable() bool {
- return rs.IsReady() || rs.IsActivationRequired()
-}
-
func (rs *RevisionStatus) GetCondition(t duckv1alpha1.ConditionType) *duckv1alpha1.Condition {
return revCondSet.Manage(rs).GetCondition(t)
}
func (rs *RevisionStatus) InitializeConditions() {
revCondSet.Manage(rs).InitializeConditions()
-
- // We don't include BuildSucceeded here because it could confuse users if
- // no `buildName` was specified.
-}
-
-func (rs *RevisionStatus) InitializeBuildCondition() {
- revCondSet.Manage(rs).InitializeCondition(RevisionConditionBuildSucceeded)
}
func (rs *RevisionStatus) PropagateBuildStatus(bs duckv1alpha1.KResourceStatus) {
@@ -321,6 +378,13 @@ func (rs *RevisionStatus) PropagateBuildStatus(bs duckv1alpha1.KResourceStatus)
}
}
+// MarkResourceNotOwned changes the "ResourcesAvailable" condition to false to reflect that the
+// resource of the given kind and name has already been created, and we do not own it.
+func (rs *RevisionStatus) MarkResourceNotOwned(kind, name string) {
+ revCondSet.Manage(rs).MarkFalse(RevisionConditionResourcesAvailable, "NotOwned",
+ fmt.Sprintf("There is an existing %s %q that we do not own.", kind, name))
+}
+
func (rs *RevisionStatus) MarkDeploying(reason string) {
revCondSet.Manage(rs).MarkUnknown(RevisionConditionResourcesAvailable, reason, "")
revCondSet.Manage(rs).MarkUnknown(RevisionConditionContainerHealthy, reason, "")
@@ -339,6 +403,11 @@ func (rs *RevisionStatus) MarkContainerHealthy() {
revCondSet.Manage(rs).MarkTrue(RevisionConditionContainerHealthy)
}
+func (rs *RevisionStatus) MarkContainerExiting(exitCode int32, message string) {
+ exitCodeString := fmt.Sprintf("ExitCode%d", exitCode)
+ revCondSet.Manage(rs).MarkFalse(RevisionConditionContainerHealthy, exitCodeString, RevisionContainerExitingMessage(message))
+}
+
func (rs *RevisionStatus) MarkResourcesAvailable() {
revCondSet.Manage(rs).MarkTrue(RevisionConditionResourcesAvailable)
}
@@ -371,9 +440,23 @@ func (rs *RevisionStatus) SetConditions(conditions duckv1alpha1.Conditions) {
rs.Conditions = conditions
}
+// RevisionContainerMissingMessage constructs the status message if a given image
+// cannot be pulled correctly.
+func RevisionContainerMissingMessage(image string, message string) string {
+ return fmt.Sprintf("Unable to fetch image %q: %s", image, message)
+}
+
+// RevisionContainerExitingMessage constructs the status message if a container
+// fails to come up.
+func RevisionContainerExitingMessage(message string) string {
+ return fmt.Sprintf("Container failed with: %s", message)
+}
+
const (
AnnotationParseErrorTypeMissing = "Missing"
AnnotationParseErrorTypeInvalid = "Invalid"
+ LabelParserErrorTypeMissing = "Missing"
+ LabelParserErrorTypeInvalid = "Invalid"
)
// +k8s:deepcopy-gen=false
@@ -435,29 +518,3 @@ func (r *Revision) GetLastPinned() (time.Time, error) {
return time.Unix(secs, 0), nil
}
-
-func (r *Revision) GetConfigurationGeneration() (int64, error) {
- if r.Annotations == nil {
- return 0, configurationGenerationParseError{
- Type: AnnotationParseErrorTypeMissing,
- }
- }
-
- str, ok := r.ObjectMeta.Annotations[serving.ConfigurationGenerationAnnotationKey]
- if !ok {
- return 0, configurationGenerationParseError{
- Type: AnnotationParseErrorTypeMissing,
- }
- }
-
- gen, err := strconv.ParseInt(str, 10, 64)
- if err != nil {
- return 0, configurationGenerationParseError{
- Type: AnnotationParseErrorTypeInvalid,
- Value: str,
- Err: err,
- }
- }
-
- return gen, nil
-}
diff --git a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/revision_validation.go b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/revision_validation.go
index 882682d939..6c38745274 100644
--- a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/revision_validation.go
+++ b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/revision_validation.go
@@ -17,41 +17,87 @@ limitations under the License.
package v1alpha1
import (
+ "fmt"
+ "path/filepath"
"strconv"
- "github.com/google/go-cmp/cmp"
+ "github.com/google/go-containerregistry/pkg/name"
+ "github.com/knative/pkg/apis"
+ "github.com/knative/pkg/kmp"
+ networkingv1alpha1 "github.com/knative/serving/pkg/apis/networking/v1alpha1"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/equality"
"k8s.io/apimachinery/pkg/util/intstr"
+ "k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/validation"
+)
- "github.com/knative/pkg/apis"
+var (
+ reservedPaths = sets.NewString(
+ "/",
+ "/dev",
+ "/dev/log", // Should be a domain socket
+ "/tmp",
+ "/var",
+ "/var/log",
+ )
)
+// Validate ensures Revision is properly configured.
func (rt *Revision) Validate() *apis.FieldError {
return ValidateObjectMetadata(rt.GetObjectMeta()).ViaField("metadata").
Also(rt.Spec.Validate().ViaField("spec"))
}
+// Validate ensures RevisionTemplateSpec is properly configured.
func (rt *RevisionTemplateSpec) Validate() *apis.FieldError {
return rt.Spec.Validate().ViaField("spec")
}
+// Validate ensures RevisionSpec is properly configured.
func (rs *RevisionSpec) Validate() *apis.FieldError {
if equality.Semantic.DeepEqual(rs, &RevisionSpec{}) {
return apis.ErrMissingField(apis.CurrentField)
}
- errs := validateContainer(rs.Container).ViaField("container").
- Also(validateBuildRef(rs.BuildRef).ViaField("buildRef"))
- if err := rs.ConcurrencyModel.Validate().ViaField("concurrencyModel"); err != nil {
- errs = errs.Also(err)
- } else if err := ValidateContainerConcurrency(rs.ContainerConcurrency, rs.ConcurrencyModel); err != nil {
+ volumes := sets.NewString()
+ var errs *apis.FieldError
+ for i, volume := range rs.Volumes {
+ if volumes.Has(volume.Name) {
+ errs = errs.Also((&apis.FieldError{
+ Message: fmt.Sprintf("duplicate volume name %q", volume.Name),
+ Paths: []string{"name"},
+ }).ViaFieldIndex("volumes", i))
+ }
+ errs = errs.Also(validateVolume(volume).ViaFieldIndex("volumes", i))
+ volumes.Insert(volume.Name)
+ }
+
+ errs = errs.Also(validateContainer(rs.Container, volumes).ViaField("container"))
+ errs = errs.Also(validateBuildRef(rs.BuildRef).ViaField("buildRef"))
+
+ if err := rs.DeprecatedConcurrencyModel.Validate().ViaField("concurrencyModel"); err != nil {
errs = errs.Also(err)
+ } else {
+ errs = errs.Also(ValidateContainerConcurrency(
+ rs.ContainerConcurrency, rs.DeprecatedConcurrencyModel))
}
- return errs
+
+ return errs.Also(validateTimeoutSeconds(rs.TimeoutSeconds))
+}
+
+func validateTimeoutSeconds(timeoutSeconds int64) *apis.FieldError {
+ if timeoutSeconds != 0 {
+ if timeoutSeconds > int64(networkingv1alpha1.DefaultTimeout.Seconds()) || timeoutSeconds < 0 {
+ return apis.ErrOutOfBoundsValue(fmt.Sprintf("%ds", timeoutSeconds), "0s",
+ fmt.Sprintf("%ds", int(networkingv1alpha1.DefaultTimeout.Seconds())),
+ "timeoutSeconds")
+ }
+ }
+ return nil
}
+// Validate ensures RevisionRequestConcurrencyModelType is properly configured.
func (ss DeprecatedRevisionServingStateType) Validate() *apis.FieldError {
switch ss {
case DeprecatedRevisionServingStateType(""),
@@ -64,6 +110,7 @@ func (ss DeprecatedRevisionServingStateType) Validate() *apis.FieldError {
}
}
+// Validate ensures RevisionRequestConcurrencyModelType is properly configured.
func (cm RevisionRequestConcurrencyModelType) Validate() *apis.FieldError {
switch cm {
case RevisionRequestConcurrencyModelType(""),
@@ -75,6 +122,7 @@ func (cm RevisionRequestConcurrencyModelType) Validate() *apis.FieldError {
}
}
+// ValidateContainerConcurrency ensures ContainerConcurrency is properly configured.
func ValidateContainerConcurrency(cc RevisionContainerConcurrencyType, cm RevisionRequestConcurrencyModelType) *apis.FieldError {
// Validate ContainerConcurrency alone
if cc < 0 || cc > RevisionContainerConcurrencyMax {
@@ -95,10 +143,74 @@ func ValidateContainerConcurrency(cc RevisionContainerConcurrencyType, cm Revisi
return nil
}
-func validateContainer(container corev1.Container) *apis.FieldError {
+func validateVolume(volume corev1.Volume) *apis.FieldError {
+ var errs *apis.FieldError
+ if volume.Name == "" {
+ errs = apis.ErrMissingField("name")
+ } else if len(validation.IsDNS1123Label(volume.Name)) != 0 {
+ errs = apis.ErrInvalidValue(volume.Name, "name")
+ }
+
+ vs := volume.VolumeSource
+ switch {
+ case vs.Secret != nil, vs.ConfigMap != nil:
+ // These are fine.
+ default:
+ errs = errs.Also(apis.ErrMissingOneOf("secret", "configMap"))
+ }
+ return errs
+}
+
+func validateContainer(container corev1.Container, volumes sets.String) *apis.FieldError {
if equality.Semantic.DeepEqual(container, corev1.Container{}) {
return apis.ErrMissingField(apis.CurrentField)
}
+
+ // Check that volume mounts match names in "volumes", that "volumes" has 100%
+ // coverage, and the field restrictions.
+ seen := sets.NewString()
+ var errs *apis.FieldError
+ for i, vm := range container.VolumeMounts {
+ // This effectively checks that Name is non-empty because Volume name must be non-empty.
+ if !volumes.Has(vm.Name) {
+ errs = errs.Also((&apis.FieldError{
+ Message: "volumeMount has no matching volume",
+ Paths: []string{"name"},
+ }).ViaFieldIndex("volumeMounts", i))
+ }
+ seen.Insert(vm.Name)
+
+ if vm.MountPath == "" {
+ errs = errs.Also(apis.ErrMissingField("mountPath").ViaFieldIndex("volumeMounts", i))
+ } else if reservedPaths.Has(filepath.Clean(vm.MountPath)) {
+ errs = errs.Also((&apis.FieldError{
+ Message: fmt.Sprintf("mountPath %q is a reserved path", filepath.Clean(vm.MountPath)),
+ Paths: []string{"mountPath"},
+ }).ViaFieldIndex("volumeMounts", i))
+ } else if !filepath.IsAbs(vm.MountPath) {
+ errs = errs.Also(apis.ErrInvalidValue(vm.MountPath, "mountPath").ViaFieldIndex("volumeMounts", i))
+ }
+ if !vm.ReadOnly {
+ errs = errs.Also(apis.ErrMissingField("readOnly").ViaFieldIndex("volumeMounts", i))
+ }
+
+ if vm.SubPath != "" {
+ errs = errs.Also(
+ apis.ErrDisallowedFields("subPath").ViaFieldIndex("volumeMounts", i))
+ }
+ if vm.MountPropagation != nil {
+ errs = errs.Also(
+ apis.ErrDisallowedFields("mountPropagation").ViaFieldIndex("volumeMounts", i))
+ }
+ }
+
+ if missing := volumes.Difference(seen); missing.Len() > 0 {
+ errs = errs.Also(&apis.FieldError{
+ Message: fmt.Sprintf("volumes not mounted: %v", missing.List()),
+ Paths: []string{"volumeMounts"},
+ })
+ }
+
// Some corev1.Container fields are set by Knative Serving controller. We disallow them
// here to avoid silently overwriting these fields and causing confusions for
// the users. See pkg/controller/revision/resources/deploy.go#makePodSpec.
@@ -106,23 +218,17 @@ func validateContainer(container corev1.Container) *apis.FieldError {
if container.Name != "" {
ignoredFields = append(ignoredFields, "name")
}
- if !equality.Semantic.DeepEqual(container.Resources, corev1.ResourceRequirements{}) {
- ignoredFields = append(ignoredFields, "resources")
- }
- if len(container.Ports) > 0 {
- ignoredFields = append(ignoredFields, "ports")
- }
- if len(container.VolumeMounts) > 0 {
- ignoredFields = append(ignoredFields, "volumeMounts")
- }
+
if container.Lifecycle != nil {
ignoredFields = append(ignoredFields, "lifecycle")
}
- var errs *apis.FieldError
if len(ignoredFields) > 0 {
// Complain about all ignored fields so that user can remove them all at once.
errs = errs.Also(apis.ErrDisallowedFields(ignoredFields...))
}
+ if err := validateContainerPorts(container.Ports); err != nil {
+ errs = errs.Also(err.ViaField("ports"))
+ }
// Validate our probes
if err := validateProbe(container.ReadinessProbe).ViaField("readinessProbe"); err != nil {
errs = errs.Also(err)
@@ -130,6 +236,83 @@ func validateContainer(container corev1.Container) *apis.FieldError {
if err := validateProbe(container.LivenessProbe).ViaField("livenessProbe"); err != nil {
errs = errs.Also(err)
}
+ if _, err := name.ParseReference(container.Image, name.WeakValidation); err != nil {
+ fe := &apis.FieldError{
+ Message: "Failed to parse image reference",
+ Paths: []string{"image"},
+ Details: fmt.Sprintf("image: %q, error: %v", container.Image, err),
+ }
+ errs = errs.Also(fe)
+ }
+ return errs
+}
+
+// The port is named "user-port" on the deployment, but a user cannot set an arbitrary name on the port
+// in Configuration. The name field is reserved for content-negotiation. Currently 'h2c' and 'http1' are
+// allowed.
+// https://github.com/knative/serving/blob/master/docs/runtime-contract.md#inbound-network-connectivity
+var validPortNames = sets.NewString(
+ "h2c",
+ "http1",
+ "",
+)
+
+func validateContainerPorts(ports []corev1.ContainerPort) *apis.FieldError {
+ if len(ports) == 0 {
+ return nil
+ }
+
+ var errs *apis.FieldError
+
+ // user can set container port which names "user-port" to define application's port.
+ // Queue-proxy will use it to send requests to application
+ // if user didn't set any port, it will set default port user-port=8080.
+ if len(ports) > 1 {
+ errs = errs.Also(&apis.FieldError{
+ Message: "More than one container port is set",
+ Paths: []string{apis.CurrentField},
+ Details: "Only a single port is allowed",
+ })
+ }
+
+ userPort := ports[0]
+ // Only allow empty (defaulting to "TCP") or explicit TCP for protocol
+ if userPort.Protocol != "" && userPort.Protocol != corev1.ProtocolTCP {
+ errs = errs.Also(apis.ErrInvalidValue(string(userPort.Protocol), "Protocol"))
+ }
+
+ // Don't allow HostIP or HostPort to be set
+ var disallowedFields []string
+ if userPort.HostIP != "" {
+ disallowedFields = append(disallowedFields, "HostIP")
+
+ }
+ if userPort.HostPort != 0 {
+ disallowedFields = append(disallowedFields, "HostPort")
+ }
+ if len(disallowedFields) != 0 {
+ errs = errs.Also(apis.ErrDisallowedFields(disallowedFields...))
+ }
+
+ // Don't allow userPort to conflict with QueueProxy sidecar
+ if userPort.ContainerPort == RequestQueuePort ||
+ userPort.ContainerPort == RequestQueueAdminPort ||
+ userPort.ContainerPort == RequestQueueMetricsPort {
+ errs = errs.Also(apis.ErrInvalidValue(strconv.Itoa(int(userPort.ContainerPort)), "ContainerPort"))
+ }
+
+ if userPort.ContainerPort < 1 || userPort.ContainerPort > 65535 {
+ errs = errs.Also(apis.ErrOutOfBoundsValue(strconv.Itoa(int(userPort.ContainerPort)), "1", "65535", "ContainerPort"))
+ }
+
+ if !validPortNames.Has(userPort.Name) {
+ errs = errs.Also(&apis.FieldError{
+ Message: fmt.Sprintf("Port name %v is not allowed", ports[0].Name),
+ Paths: []string{apis.CurrentField},
+ Details: "Name must be empty, or one of: 'h2c', 'http1'",
+ })
+ }
+
return errs
}
@@ -183,18 +366,26 @@ func validateProbe(p *corev1.Probe) *apis.FieldError {
return nil
}
+// CheckImmutableFields checks the immutable fields are not modified.
func (current *Revision) CheckImmutableFields(og apis.Immutable) *apis.FieldError {
original, ok := og.(*Revision)
if !ok {
return &apis.FieldError{Message: "The provided original was not a Revision"}
}
- if diff := cmp.Diff(original.Spec, current.Spec); diff != "" {
+ if diff, err := kmp.SafeDiff(original.Spec, current.Spec); err != nil {
+ return &apis.FieldError{
+ Message: "Failed to diff Revision",
+ Paths: []string{"spec"},
+ Details: err.Error(),
+ }
+ } else if diff != "" {
return &apis.FieldError{
Message: "Immutable fields changed (-old +new)",
Paths: []string{"spec"},
Details: diff,
}
}
+
return nil
}
diff --git a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/route_types.go b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/route_types.go
index 0dc3d67897..b7ddf57a11 100644
--- a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/route_types.go
+++ b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/route_types.go
@@ -17,6 +17,8 @@ limitations under the License.
package v1alpha1
import (
+ "fmt"
+
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
@@ -88,12 +90,16 @@ type TrafficTarget struct {
// RouteSpec holds the desired state of the Route (from the client).
type RouteSpec struct {
- // TODO: Generation does not work correctly with CRD. They are scrubbed
- // by the APIserver (https://github.com/kubernetes/kubernetes/issues/58778)
- // So, we add Generation here. Once that gets fixed, remove this and use
- // ObjectMeta.Generation instead.
+ // DeprecatedGeneration was used prior in Kubernetes versions <1.11
+ // when metadata.generation was not being incremented by the api server
+ //
+ // This property will be dropped in future Knative releases and should
+ // not be used - use metadata.generation
+ //
+ // Tracking issue: https://github.com/knative/serving/issues/643
+ //
// +optional
- Generation int64 `json:"generation,omitempty"`
+ DeprecatedGeneration int64 `json:"generation,omitempty"`
// Traffic specifies how to distribute traffic over a collection of Knative Serving Revisions and Configurations.
// +optional
@@ -124,12 +130,12 @@ type RouteStatus struct {
// +optional
Domain string `json:"domain,omitempty"`
- // DomainInternal holds the top-level domain that will distribute traffic over the provided
+ // DeprecatedDomainInternal holds the top-level domain that will distribute traffic over the provided
// targets from inside the cluster. It generally has the form
- // {route-name}.{route-namespace}.svc.cluster.local
+ // {route-name}.{route-namespace}.svc.{cluster-domain-name}
// DEPRECATED: Use Address instead.
// +optional
- DomainInternal string `json:"domainInternal,omitempty"`
+ DeprecatedDomainInternal string `json:"domainInternal,omitempty"`
// Address holds the information needed for a Route to be the target of an event.
// +optional
@@ -181,6 +187,13 @@ func (rs *RouteStatus) InitializeConditions() {
routeCondSet.Manage(rs).InitializeConditions()
}
+// MarkServiceNotOwned changes the IngressReady status to be false with the reason being that
+// there is a pre-existing placeholder service with the name we wanted to use.
+func (rs *RouteStatus) MarkServiceNotOwned(name string) {
+ routeCondSet.Manage(rs).MarkFalse(RouteConditionIngressReady, "NotOwned",
+ fmt.Sprintf("There is an existing placeholder Service %q that we do not own.", name))
+}
+
func (rs *RouteStatus) MarkTrafficAssigned() {
routeCondSet.Manage(rs).MarkTrue(RouteConditionAllTrafficAssigned)
}
diff --git a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/route_validation.go b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/route_validation.go
index 58f311fde5..0d82ce0f6c 100644
--- a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/route_validation.go
+++ b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/route_validation.go
@@ -18,6 +18,7 @@ package v1alpha1
import (
"fmt"
+ "strconv"
"k8s.io/apimachinery/pkg/api/equality"
@@ -64,7 +65,9 @@ func (rs *RouteSpec) Validate() *apis.FieldError {
if ent, ok := trafficMap[tt.Name]; !ok {
// No entry exists, so add ours
trafficMap[tt.Name] = nt
- } else if ent.r != nt.r || ent.c != nt.c {
+ } else {
+ // We want only single definition of the route, even if it points
+ // to the same config or revision.
errs = errs.Also(&apis.FieldError{
Message: fmt.Sprintf("Multiple definitions for %q", tt.Name),
Paths: []string{
@@ -84,6 +87,7 @@ func (rs *RouteSpec) Validate() *apis.FieldError {
return errs
}
+// Validate verifies that TrafficTarget is properly configured.
func (tt *TrafficTarget) Validate() *apis.FieldError {
var errs *apis.FieldError
switch {
@@ -101,7 +105,7 @@ func (tt *TrafficTarget) Validate() *apis.FieldError {
errs = apis.ErrMissingOneOf("revisionName", "configurationName")
}
if tt.Percent < 0 || tt.Percent > 100 {
- errs = errs.Also(apis.ErrInvalidValue(fmt.Sprintf("%d", tt.Percent), "percent"))
+ errs = errs.Also(apis.ErrOutOfBoundsValue(strconv.Itoa(tt.Percent), "0", "100", "percent"))
}
return errs
}
diff --git a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/service_defaults.go b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/service_defaults.go
index 4f66f43454..137ba52324 100644
--- a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/service_defaults.go
+++ b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/service_defaults.go
@@ -23,8 +23,8 @@ func (s *Service) SetDefaults() {
func (ss *ServiceSpec) SetDefaults() {
if ss.RunLatest != nil {
ss.RunLatest.Configuration.SetDefaults()
- } else if ss.Pinned != nil {
- ss.Pinned.Configuration.SetDefaults()
+ } else if ss.DeprecatedPinned != nil {
+ ss.DeprecatedPinned.Configuration.SetDefaults()
} else if ss.Release != nil {
ss.Release.Configuration.SetDefaults()
}
diff --git a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/service_types.go b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/service_types.go
index 551456eef8..1266955cd9 100644
--- a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/service_types.go
+++ b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/service_types.go
@@ -17,13 +17,17 @@ limitations under the License.
package v1alpha1
import (
+ "fmt"
+
corev1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/api/equality"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
"github.com/knative/pkg/apis"
duckv1alpha1 "github.com/knative/pkg/apis/duck/v1alpha1"
"github.com/knative/pkg/kmeta"
+ authv1 "k8s.io/api/authentication/v1"
)
// +genclient
@@ -66,12 +70,16 @@ var _ duckv1alpha1.ConditionsAccessor = (*ServiceStatus)(nil)
// track the latest ready revision of a configuration or be pinned to a specific
// revision.
type ServiceSpec struct {
- // TODO: Generation does not work correctly with CRD. They are scrubbed
- // by the APIserver (https://github.com/kubernetes/kubernetes/issues/58778)
- // So, we add Generation here. Once that gets fixed, remove this and use
- // ObjectMeta.Generation instead.
+ // DeprecatedGeneration was used prior in Kubernetes versions <1.11
+ // when metadata.generation was not being incremented by the api server
+ //
+ // This property will be dropped in future Knative releases and should
+ // not be used - use metadata.generation
+ //
+ // Tracking issue: https://github.com/knative/serving/issues/643
+ //
// +optional
- Generation int64 `json:"generation,omitempty"`
+ DeprecatedGeneration int64 `json:"generation,omitempty"`
// RunLatest defines a simple Service. It will automatically
// configure a route that keeps the latest ready revision
@@ -79,11 +87,9 @@ type ServiceSpec struct {
// +optional
RunLatest *RunLatestType `json:"runLatest,omitempty"`
- // Pins this service to a specific revision name. The revision must
- // be owned by the configuration provided.
- // PinnedType is DEPRECATED in favor of ReleaseType
+ // DeprecatedPinned is DEPRECATED in favor of ReleaseType
// +optional
- Pinned *PinnedType `json:"pinned,omitempty"`
+ DeprecatedPinned *PinnedType `json:"pinned,omitempty"`
// Manual mode enables users to start managing the underlying Route and Configuration
// resources directly. This advanced usage is intended as a path for users to graduate
@@ -124,6 +130,11 @@ type ReleaseType struct {
Configuration ConfigurationSpec `json:"configuration,omitempty"`
}
+// ReleaseLatestRevisionKeyword is a shortcut for usage in the `release` mode
+// to refer to the latest created revision.
+// See #2819 for details.
+const ReleaseLatestRevisionKeyword = "@latest"
+
// RunLatestType contains the options for always having a route to the latest configuration. See
// ServiceSpec for more details.
type RunLatestType struct {
@@ -160,6 +171,7 @@ const (
var serviceCondSet = duckv1alpha1.NewLivingConditionSet(ServiceConditionConfigurationsReady, ServiceConditionRoutesReady)
+// ServiceStatus represents the Status stanza of the Service resource.
type ServiceStatus struct {
// +optional
Conditions duckv1alpha1.Conditions `json:"conditions,omitempty"`
@@ -171,12 +183,12 @@ type ServiceStatus struct {
Domain string `json:"domain,omitempty"`
// From RouteStatus.
- // DomainInternal holds the top-level domain that will distribute traffic over the provided
+ // DeprecatedDomainInternal holds the top-level domain that will distribute traffic over the provided
// targets from inside the cluster. It generally has the form
- // {route-name}.{route-namespace}.svc.cluster.local
+ // {route-name}.{route-namespace}.svc.{cluster-domain-name}
// DEPRECATED: Use Address instead.
// +optional
- DomainInternal string `json:"domainInternal,omitempty"`
+ DeprecatedDomainInternal string `json:"domainInternal,omitempty"`
// Address holds the information needed for a Route to be the target of an event.
// +optional
@@ -218,23 +230,44 @@ type ServiceList struct {
Items []Service `json:"items"`
}
+// GetGroupVersionKind returns the GetGroupVersionKind.
func (s *Service) GetGroupVersionKind() schema.GroupVersionKind {
return SchemeGroupVersion.WithKind("Service")
}
+// IsReady returns if the service is ready to serve the requested configuration.
func (ss *ServiceStatus) IsReady() bool {
return serviceCondSet.Manage(ss).IsHappy()
}
+// GetCondition returns the condition by name.
func (ss *ServiceStatus) GetCondition(t duckv1alpha1.ConditionType) *duckv1alpha1.Condition {
return serviceCondSet.Manage(ss).GetCondition(t)
}
+// InitializeConditions sets the initial values to the conditions.
func (ss *ServiceStatus) InitializeConditions() {
serviceCondSet.Manage(ss).InitializeConditions()
}
-func (ss *ServiceStatus) PropagateConfigurationStatus(cs ConfigurationStatus) {
+// MarkConfigurationNotOwned surfaces a failure via the ConfigurationsReady
+// status noting that the Configuration with the name we want has already
+// been created and we do not own it.
+func (ss *ServiceStatus) MarkConfigurationNotOwned(name string) {
+ serviceCondSet.Manage(ss).MarkFalse(ServiceConditionConfigurationsReady, "NotOwned",
+ fmt.Sprintf("There is an existing Configuration %q that we do not own.", name))
+}
+
+// MarkRouteNotOwned surfaces a failure via the RoutesReady status noting that the Route
+// with the name we want has already been created and we do not own it.
+func (ss *ServiceStatus) MarkRouteNotOwned(name string) {
+ serviceCondSet.Manage(ss).MarkFalse(ServiceConditionRoutesReady, "NotOwned",
+ fmt.Sprintf("There is an existing Route %q that we do not own.", name))
+}
+
+// PropagateConfigurationStatus takes the Configuration status and applies its values
+// to the Service status.
+func (ss *ServiceStatus) PropagateConfigurationStatus(cs *ConfigurationStatus) {
ss.LatestReadyRevisionName = cs.LatestReadyRevisionName
ss.LatestCreatedRevisionName = cs.LatestCreatedRevisionName
@@ -252,9 +285,30 @@ func (ss *ServiceStatus) PropagateConfigurationStatus(cs ConfigurationStatus) {
}
}
-func (ss *ServiceStatus) PropagateRouteStatus(rs RouteStatus) {
+const (
+ trafficNotMigratedReason = "TrafficNotMigrated"
+ trafficNotMigratedMessage = "Traffic is not yet migrated to the latest revision."
+
+ // LatestTrafficTarget is the named constant of the `latest` traffic target.
+ LatestTrafficTarget = "latest"
+
+ // CurrentTrafficTarget is the named constnat of the `current` traffic target.
+ CurrentTrafficTarget = "current"
+
+ // CandidateTrafficTarget is the named constnat of the `candidate` traffic target.
+ CandidateTrafficTarget = "candidate"
+)
+
+// MarkRouteNotYetReady marks the service `RouteReady` condition to the `Unknown` state.
+// See: #2430, for details.
+func (ss *ServiceStatus) MarkRouteNotYetReady() {
+ serviceCondSet.Manage(ss).MarkUnknown(ServiceConditionRoutesReady, trafficNotMigratedReason, trafficNotMigratedMessage)
+}
+
+// PropagateRouteStatus propagates route's status to the service's status.
+func (ss *ServiceStatus) PropagateRouteStatus(rs *RouteStatus) {
ss.Domain = rs.Domain
- ss.DomainInternal = rs.DomainInternal
+ ss.DeprecatedDomainInternal = rs.DeprecatedDomainInternal
ss.Address = rs.Address
ss.Traffic = rs.Traffic
@@ -276,8 +330,10 @@ func (ss *ServiceStatus) PropagateRouteStatus(rs RouteStatus) {
// can have TrafficTargets to Configurations not owned by the service. We do not want to falsely
// report Ready.
func (ss *ServiceStatus) SetManualStatus() {
- reason := "Manual"
- message := "Service is set to Manual, and is not managing underlying resources."
+ const (
+ reason = "Manual"
+ message = "Service is set to Manual, and is not managing underlying resources."
+ )
// Clear our fields by creating a new status and copying over only the fields and conditions we want
newStatus := &ServiceStatus{}
@@ -287,10 +343,9 @@ func (ss *ServiceStatus) SetManualStatus() {
newStatus.Address = ss.Address
newStatus.Domain = ss.Domain
- newStatus.DomainInternal = ss.DomainInternal
+ newStatus.DeprecatedDomainInternal = ss.DeprecatedDomainInternal
*ss = *newStatus
-
}
// GetConditions returns the Conditions array. This enables generic handling of
@@ -304,3 +359,39 @@ func (ss *ServiceStatus) GetConditions() duckv1alpha1.Conditions {
func (ss *ServiceStatus) SetConditions(conditions duckv1alpha1.Conditions) {
ss.Conditions = conditions
}
+
+const (
+ // CreatorAnnotation is the annotation key to describe the user that
+ // created the resource.
+ CreatorAnnotation = "serving.knative.dev/creator"
+ // UpdaterAnnotation is the annotation key to describe the user that
+ // last updated the resource.
+ UpdaterAnnotation = "serving.knative.dev/lastModifier"
+)
+
+// AnnotateUserInfo satisfay the apis.Annotatable interface, and set the proper annotations
+// on the Service resource about the user that performed the action.
+func (s *Service) AnnotateUserInfo(prev apis.Annotatable, ui *authv1.UserInfo) {
+ ans := s.GetAnnotations()
+ if ans == nil {
+ ans = map[string]string{}
+ defer s.SetAnnotations(ans)
+ }
+
+ // WebHook makes sure we get the proper type here.
+ ps, _ := prev.(*Service)
+
+ // Creation.
+ if ps == nil {
+ ans[CreatorAnnotation] = ui.Username
+ ans[UpdaterAnnotation] = ui.Username
+ return
+ }
+
+ // Compare the Spec's, we update the `lastModifier` key iff
+ // there's a change in the spec.
+ if equality.Semantic.DeepEqual(ps.Spec, s.Spec) {
+ return
+ }
+ ans[UpdaterAnnotation] = ui.Username
+}
diff --git a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/service_validation.go b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/service_validation.go
index 8ff4ff3a8c..e279bb459a 100644
--- a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/service_validation.go
+++ b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/service_validation.go
@@ -18,7 +18,10 @@ package v1alpha1
import (
"fmt"
+ "strconv"
+
"github.com/knative/pkg/apis"
+ "k8s.io/apimachinery/pkg/util/validation"
)
// Validate validates the fields belonging to Service
@@ -51,9 +54,9 @@ func (ss *ServiceSpec) Validate() *apis.FieldError {
set = append(set, "manual")
errs = errs.Also(ss.Manual.Validate().ViaField("manual"))
}
- if ss.Pinned != nil {
+ if ss.DeprecatedPinned != nil {
set = append(set, "pinned")
- errs = errs.Also(ss.Pinned.Validate().ViaField("pinned"))
+ errs = errs.Also(ss.DeprecatedPinned.Validate().ViaField("pinned"))
}
if len(set) > 1 {
@@ -86,28 +89,32 @@ func (m *ManualType) Validate() *apis.FieldError {
// Validate validates the fields belonging to ReleaseType
func (rt *ReleaseType) Validate() *apis.FieldError {
var errs *apis.FieldError
- minRevisions := 1
- maxRevisions := 2
numRevisions := len(rt.Revisions)
- if numRevisions < minRevisions {
+
+ if numRevisions == 0 {
errs = errs.Also(apis.ErrMissingField("revisions"))
}
-
- if numRevisions > maxRevisions {
- outOfRange := &apis.FieldError{
- Message: fmt.Sprintf("expected number of elements in range [%v, %v], got %v", minRevisions, maxRevisions, numRevisions),
- Paths: []string{"revisions"},
+ if numRevisions > 2 {
+ errs = errs.Also(apis.ErrOutOfBoundsValue(strconv.Itoa(numRevisions), "1", "2", "revisions"))
+ }
+ for i, r := range rt.Revisions {
+ // Skip over the last revision special keyword.
+ if r == ReleaseLatestRevisionKeyword {
+ continue
+ }
+ if msgs := validation.IsDNS1035Label(r); len(msgs) > 0 {
+ errs = errs.Also(apis.ErrInvalidArrayValue(
+ fmt.Sprintf("not a DNS 1035 label: %v", msgs), "revisions", i))
}
- errs = errs.Also(outOfRange)
}
if numRevisions < 2 && rt.RolloutPercent != 0 {
- errs = errs.Also(apis.ErrInvalidValue(fmt.Sprintf("%v", rt.RolloutPercent), "rolloutPercent"))
+ errs = errs.Also(apis.ErrInvalidValue(strconv.Itoa(rt.RolloutPercent), "rolloutPercent"))
}
if rt.RolloutPercent < 0 || rt.RolloutPercent > 99 {
- errs = errs.Also(apis.ErrInvalidValue(fmt.Sprintf("%v", rt.RolloutPercent), "rolloutPercent"))
+ errs = errs.Also(apis.ErrOutOfBoundsValue(strconv.Itoa(rt.RolloutPercent), "0", "99", "rolloutPercent"))
}
return errs.Also(rt.Configuration.Validate().ViaField("configuration"))
diff --git a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/zz_generated.deepcopy.go
index 3504d03a30..942a42f316 100644
--- a/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/zz_generated.deepcopy.go
+++ b/vendor/github.com/knative/serving/pkg/apis/serving/v1alpha1/zz_generated.deepcopy.go
@@ -305,6 +305,13 @@ func (in *RevisionSpec) DeepCopyInto(out *RevisionSpec) {
}
}
in.Container.DeepCopyInto(&out.Container)
+ if in.Volumes != nil {
+ in, out := &in.Volumes, &out.Volumes
+ *out = make([]v1.Volume, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
return
}
@@ -572,8 +579,8 @@ func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec) {
(*in).DeepCopyInto(*out)
}
}
- if in.Pinned != nil {
- in, out := &in.Pinned, &out.Pinned
+ if in.DeprecatedPinned != nil {
+ in, out := &in.DeprecatedPinned, &out.DeprecatedPinned
if *in == nil {
*out = nil
} else {
diff --git a/vendor/github.com/knative/serving/pkg/autoscaler/autoscaler.go b/vendor/github.com/knative/serving/pkg/autoscaler/autoscaler.go
index d1792f791a..f7c93e7470 100644
--- a/vendor/github.com/knative/serving/pkg/autoscaler/autoscaler.go
+++ b/vendor/github.com/knative/serving/pkg/autoscaler/autoscaler.go
@@ -18,20 +18,34 @@ package autoscaler
import (
"context"
+ "errors"
"math"
"strings"
"sync"
"time"
"github.com/knative/pkg/logging"
-
- "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ "go.uber.org/zap"
+ apierrors "k8s.io/apimachinery/pkg/api/errors"
+ "k8s.io/apimachinery/pkg/util/sets"
+ corev1informers "k8s.io/client-go/informers/core/v1"
+ corev1listers "k8s.io/client-go/listers/core/v1"
)
const (
// ActivatorPodName defines the pod name of the activator
// as defined in the metrics it sends.
ActivatorPodName string = "activator"
+
+ // If the latest received stat from a pod is in the last activeThreshold duration,
+ // assume the pod is still active. Otherwise, the active status of a pod is
+ // unknown.
+ activeThreshold time.Duration = time.Second
+
+ // Activator pod weight is always 1
+ activatorPodWeight float64 = 1
+
+ approximateZero = 1e-8
)
// Stat defines a single measurement at a point in time
@@ -50,6 +64,7 @@ type Stat struct {
RequestCount int32
// Lameduck indicates this Pod has received a shutdown signal.
+ // Deprecated and no longer used by newly created Pods.
LameDuck bool
}
@@ -70,7 +85,7 @@ func newTotalAggregation(window time.Duration) *totalAggregation {
return &totalAggregation{
window: window,
perPodAggregations: make(map[string]*perPodAggregation),
- activatorsContained: make(map[string]struct{}),
+ activatorsContained: sets.NewString(),
}
}
@@ -79,34 +94,32 @@ type totalAggregation struct {
window time.Duration
perPodAggregations map[string]*perPodAggregation
probeCount int32
- activatorsContained map[string]struct{}
+ activatorsContained sets.String
}
// Aggregates a given stat to the correct pod-aggregation
func (agg *totalAggregation) aggregate(stat Stat) {
current, exists := agg.perPodAggregations[stat.PodName]
if !exists {
- current = &perPodAggregation{window: agg.window}
+ current = &perPodAggregation{
+ window: agg.window,
+ isActivator: isActivator(stat.PodName),
+ }
agg.perPodAggregations[stat.PodName] = current
}
- if stat.LameDuck {
- current.lameduck(stat.Time)
- } else {
- current.aggregate(stat.AverageConcurrentRequests)
- // TODO(#2282): This can cause naming collisions.
- if strings.HasPrefix(stat.PodName, ActivatorPodName) {
- agg.activatorsContained[stat.PodName] = struct{}{}
- }
- agg.probeCount++
+ current.aggregate(stat)
+ if current.isActivator {
+ agg.activatorsContained.Insert(stat.PodName)
}
+ agg.probeCount++
}
// The number of pods that are observable via stats
-// Substracts the activator pod if its not the only pod reporting stats
+// Subtracts the activator pod if its not the only pod reporting stats
func (agg *totalAggregation) observedPods(now time.Time) float64 {
podCount := float64(0.0)
for _, pod := range agg.perPodAggregations {
- podCount += pod.usageRatio(now)
+ podCount += pod.podWeight(now)
}
activatorsCount := len(agg.activatorsContained)
@@ -122,25 +135,30 @@ func (agg *totalAggregation) observedPods(now time.Time) float64 {
return podCount
}
-// The observed concurrency per pod (sum of all average concurrencies
-// distributed over the observed pods)
+// The observed concurrency of a revision (sum of all average concurrencies of
+// the observed pods)
// Ignores activator sent metrics if its not the only pod reporting stats
-func (agg *totalAggregation) observedConcurrencyPerPod(now time.Time) float64 {
+func (agg *totalAggregation) observedConcurrency(now time.Time) float64 {
accumulatedConcurrency := float64(0)
activatorConcurrency := float64(0)
- observedPods := agg.observedPods(now)
for podName, perPod := range agg.perPodAggregations {
- // TODO(#2282): This can cause naming collisions.
- if strings.HasPrefix(podName, ActivatorPodName) {
+ if isActivator(podName) {
activatorConcurrency += perPod.calculateAverage(now)
} else {
accumulatedConcurrency += perPod.calculateAverage(now)
}
}
- if accumulatedConcurrency == 0.0 {
- return activatorConcurrency / observedPods
+ if accumulatedConcurrency < approximateZero {
+ return activatorConcurrency
}
- return accumulatedConcurrency / observedPods
+ return accumulatedConcurrency
+}
+
+// The observed concurrency per pod (sum of all average concurrencies
+// distributed over the observed pods)
+// Ignores activator sent metrics if its not the only pod reporting stats
+func (agg *totalAggregation) observedConcurrencyPerPod(now time.Time) float64 {
+ return divide(agg.observedConcurrency(now), agg.observedPods(now))
}
// Holds an aggregation per pod
@@ -148,22 +166,16 @@ type perPodAggregation struct {
accumulatedConcurrency float64
probeCount int32
window time.Duration
- lameduckTime *time.Time
+ latestStatTime *time.Time
+ isActivator bool
}
// Aggregates the given concurrency
-func (agg *perPodAggregation) aggregate(concurrency float64) {
- agg.accumulatedConcurrency += concurrency
+func (agg *perPodAggregation) aggregate(stat Stat) {
+ agg.accumulatedConcurrency += stat.AverageConcurrentRequests
agg.probeCount++
-}
-
-// Registers the earliest lameduck metric received.
-func (agg *perPodAggregation) lameduck(t *time.Time) {
- if agg.lameduckTime == nil {
- agg.lameduckTime = t
- }
- if agg.lameduckTime.After(*t) {
- agg.lameduckTime = t
+ if agg.latestStatTime == nil || agg.latestStatTime.Before(*stat.Time) {
+ agg.latestStatTime = stat.Time
}
}
@@ -172,42 +184,73 @@ func (agg *perPodAggregation) calculateAverage(now time.Time) float64 {
if agg.probeCount == 0 {
return 0.0
}
- return agg.accumulatedConcurrency / float64(agg.probeCount) * agg.usageRatio(now)
+ return agg.accumulatedConcurrency / float64(agg.probeCount) * agg.podWeight(now)
}
-// Calculates the weighted pod count
-func (agg *perPodAggregation) usageRatio(now time.Time) float64 {
- if agg.lameduckTime == nil {
- return float64(1.0)
+// Calculates the pod weight. Assuming the latest stat time is the point when
+// pod became out of service.
+func (agg *perPodAggregation) podWeight(now time.Time) float64 {
+ if agg.isActivator {
+ return activatorPodWeight
}
- outOfService := now.Sub(*agg.lameduckTime)
- return float64(1.0) - (float64(outOfService) / float64(agg.window))
+
+ gapToNow := now.Sub(*agg.latestStatTime)
+ // Less than activeThreshold means the pod is active, give 1 weight
+ if gapToNow <= activeThreshold {
+ return 1.0
+ }
+ return 1.0 - (float64(gapToNow) / float64(agg.window))
}
// Autoscaler stores current state of an instance of an autoscaler
type Autoscaler struct {
*DynamicConfig
- containerConcurrency v1alpha1.RevisionContainerConcurrencyType
- stats map[statKey]Stat
- statsMutex sync.Mutex
- panicking bool
- panicTime *time.Time
- maxPanicPods float64
- reporter StatsReporter
- lastRequestTime time.Time
- scaleToZeroThresholdExceeded bool
+ key string
+ namespace string
+ revisionService string
+ endpointsLister corev1listers.EndpointsLister
+ panicking bool
+ panicTime *time.Time
+ maxPanicPods float64
+ reporter StatsReporter
+
+ // targetMutex guards the elements in the block below.
+ targetMutex sync.RWMutex
+ target float64
+
+ // statsMutex guards the elements in the block below.
+ statsMutex sync.Mutex
+ stats map[statKey]Stat
}
// New creates a new instance of autoscaler
-func New(dynamicConfig *DynamicConfig, containerConcurrency v1alpha1.RevisionContainerConcurrencyType, reporter StatsReporter) *Autoscaler {
- return &Autoscaler{
- DynamicConfig: dynamicConfig,
- containerConcurrency: containerConcurrency,
- stats: make(map[statKey]Stat),
- reporter: reporter,
- lastRequestTime: time.Now(),
- scaleToZeroThresholdExceeded: false,
+func New(
+ dynamicConfig *DynamicConfig,
+ namespace string,
+ revisionService string,
+ endpointsInformer corev1informers.EndpointsInformer,
+ target float64,
+ reporter StatsReporter) (*Autoscaler, error) {
+ if endpointsInformer == nil {
+ return nil, errors.New("Empty interface of EndpointsInformer")
}
+ return &Autoscaler{
+ DynamicConfig: dynamicConfig,
+ namespace: namespace,
+ revisionService: revisionService,
+ endpointsLister: endpointsInformer.Lister(),
+ target: target,
+ stats: make(map[statKey]Stat),
+ reporter: reporter,
+ }, nil
+}
+
+// Update reconfigures the UniScaler according to the MetricSpec.
+func (a *Autoscaler) Update(spec MetricSpec) error {
+ a.targetMutex.Lock()
+ defer a.targetMutex.Unlock()
+ a.target = spec.TargetConcurrency
+ return nil
}
// Record a data point.
@@ -217,6 +260,7 @@ func (a *Autoscaler) Record(ctx context.Context, stat Stat) {
logger.Errorf("Missing time from stat: %+v", stat)
return
}
+
a.statsMutex.Lock()
defer a.statsMutex.Unlock()
@@ -230,60 +274,23 @@ func (a *Autoscaler) Record(ctx context.Context, stat Stat) {
// Scale calculates the desired scale based on current statistics given the current time.
func (a *Autoscaler) Scale(ctx context.Context, now time.Time) (int32, bool) {
logger := logging.FromContext(ctx)
- a.statsMutex.Lock()
- defer a.statsMutex.Unlock()
-
- config := a.Current()
-
- // 60 second window
- stableData := newTotalAggregation(config.StableWindow)
-
- // 6 second window
- panicData := newTotalAggregation(config.PanicWindow)
-
- // Last stat per Pod
- lastStat := make(map[string]Stat)
-
- // accumulate stats into their respective buckets
- for key, stat := range a.stats {
- instant := key.time
- if instant.Add(config.PanicWindow).After(now) {
- panicData.aggregate(stat)
- }
- if instant.Add(config.StableWindow).After(now) {
- stableData.aggregate(stat)
- // If there's no last stat for this pod, set it
- if _, ok := lastStat[stat.PodName]; !ok {
- lastStat[stat.PodName] = stat
- }
- // If the current last stat is older than the new one, override
- if lastStat[stat.PodName].Time.Before(*stat.Time) {
- lastStat[stat.PodName] = stat
- }
- // Update lastRequestTime if the current stat is newer and
- // actually contains requests
- if a.lastRequestTime.Before(*stat.Time) && stat.RequestCount > 0 {
- a.lastRequestTime = *stat.Time
- }
- } else {
- // Drop metrics after 60 seconds
- delete(a.stats, key)
- }
+ readyPods, err := a.readyPods()
+ if err != nil {
+ logger.Errorw("Failed to get Endpoints via K8S Lister", zap.Error(err))
+ return 0, false
}
+ config := a.Current()
+
+ stableData, panicData, lastStat := a.aggregateData(now, config.StableWindow, config.PanicWindow)
+ observedStablePods := stableData.observedPods(now)
// Do nothing when we have no data.
- if stableData.observedPods(now) < 1.0 {
+ if observedStablePods < 1.0 {
logger.Debug("No data to scale on.")
return 0, false
}
- // Scale to zero if the last request is from too long ago
- if a.lastRequestTime.Add(config.ScaleToZeroIdlePeriod).Before(now) {
- logger.Debug("Last request is older than scale to zero threshold. Scaling to 0.")
- return 0, true
- }
-
// Log system totals
totalCurrentQPS := int32(0)
totalCurrentConcurrency := float64(0)
@@ -293,59 +300,137 @@ func (a *Autoscaler) Scale(ctx context.Context, now time.Time) (int32, bool) {
}
logger.Debugf("Current QPS: %v Current concurrent clients: %v", totalCurrentQPS, totalCurrentConcurrency)
+ observedPanicPods := panicData.observedPods(now)
+ observedStableConcurrency := stableData.observedConcurrency(now)
+ observedPanicConcurrency := panicData.observedConcurrency(now)
observedStableConcurrencyPerPod := stableData.observedConcurrencyPerPod(now)
observedPanicConcurrencyPerPod := panicData.observedConcurrencyPerPod(now)
- // Desired scaling ratio is observed concurrency over desired (stable) concurrency.
- // Rate limited to within MaxScaleUpRate.
- desiredStableScalingRatio := a.rateLimited(observedStableConcurrencyPerPod / config.TargetConcurrency(a.containerConcurrency))
- desiredPanicScalingRatio := a.rateLimited(observedPanicConcurrencyPerPod / config.TargetConcurrency(a.containerConcurrency))
- desiredStablePodCount := desiredStableScalingRatio * stableData.observedPods(now)
- desiredPanicPodCount := desiredPanicScalingRatio * stableData.observedPods(now)
+ target := a.targetConcurrency()
+ // Desired pod count is observed concurrency of revision over desired (stable) concurrency per pod.
+ // The scaling up rate limited to within MaxScaleUpRate.
+ desiredStablePodCount := a.podCountLimited(observedStableConcurrency/target, readyPods)
+ desiredPanicPodCount := a.podCountLimited(observedPanicConcurrency/target, readyPods)
- a.reporter.Report(ObservedPodCountM, float64(stableData.observedPods(now)))
- a.reporter.Report(ObservedStableConcurrencyM, observedStableConcurrencyPerPod)
- a.reporter.Report(ObservedPanicConcurrencyM, observedPanicConcurrencyPerPod)
- a.reporter.Report(TargetConcurrencyM, config.TargetConcurrency(a.containerConcurrency))
+ a.reporter.ReportObservedPodCount(observedStablePods)
+ a.reporter.ReportStableRequestConcurrency(observedStableConcurrencyPerPod)
+ a.reporter.ReportPanicRequestConcurrency(observedPanicConcurrencyPerPod)
+ a.reporter.ReportTargetRequestConcurrency(target)
logger.Debugf("STABLE: Observed average %0.3f concurrency over %v seconds over %v samples over %v pods.",
- observedStableConcurrencyPerPod, config.StableWindow, stableData.probeCount, stableData.observedPods(now))
+ observedStableConcurrencyPerPod, config.StableWindow, stableData.probeCount, observedStablePods)
logger.Debugf("PANIC: Observed average %0.3f concurrency over %v seconds over %v samples over %v pods.",
- observedPanicConcurrencyPerPod, config.PanicWindow, panicData.probeCount, panicData.observedPods(now))
+ observedPanicConcurrencyPerPod, config.PanicWindow, panicData.probeCount, observedPanicPods)
// Stop panicking after the surge has made its way into the stable metric.
if a.panicking && a.panicTime.Add(config.StableWindow).Before(now) {
logger.Info("Un-panicking.")
- a.reporter.Report(PanicM, 0)
a.panicking = false
a.panicTime = nil
a.maxPanicPods = 0
}
// Begin panicking when we cross the 6 second concurrency threshold.
- if !a.panicking && panicData.observedPods(now) > 0.0 && observedPanicConcurrencyPerPod >= (config.TargetConcurrency(a.containerConcurrency)*2) {
+ if !a.panicking && observedPanicPods > 0.0 && observedPanicConcurrencyPerPod >= (target*2) {
logger.Info("PANICKING")
- a.reporter.Report(PanicM, 1)
a.panicking = true
a.panicTime = &now
}
+ var desiredPodCount int32
+
if a.panicking {
logger.Debug("Operating in panic mode.")
+ a.reporter.ReportPanic(1)
if desiredPanicPodCount > a.maxPanicPods {
- logger.Infof("Increasing pods from %v to %v.", panicData.observedPods(now), int(desiredPanicPodCount))
+ logger.Infof("Increasing pods from %v to %v.", observedPanicPods, int(desiredPanicPodCount))
a.panicTime = &now
a.maxPanicPods = desiredPanicPodCount
}
- return int32(math.Max(1.0, math.Ceil(a.maxPanicPods))), true
+ desiredPodCount = int32(math.Ceil(a.maxPanicPods))
+ } else {
+ logger.Debug("Operating in stable mode.")
+ a.reporter.ReportPanic(0)
+ desiredPodCount = int32(math.Ceil(desiredStablePodCount))
}
- logger.Debug("Operating in stable mode.")
- return int32(math.Max(1.0, math.Ceil(desiredStablePodCount))), true
+
+ a.reporter.ReportDesiredPodCount(int64(desiredPodCount))
+ return desiredPodCount, true
+}
+
+func (a *Autoscaler) aggregateData(now time.Time, stableWindow, panicWindow time.Duration) (*totalAggregation, *totalAggregation, map[string]Stat) {
+ a.statsMutex.Lock()
+ defer a.statsMutex.Unlock()
+
+ // 60 second window
+ stableData := newTotalAggregation(stableWindow)
+
+ // 6 second window
+ panicData := newTotalAggregation(panicWindow)
+
+ // Last stat per Pod
+ lastStat := make(map[string]Stat)
+
+ // Accumulate stats into their respective buckets
+ for key, stat := range a.stats {
+ instant := key.time
+ if instant.Add(panicWindow).After(now) {
+ panicData.aggregate(stat)
+ }
+ if instant.Add(stableWindow).After(now) {
+ stableData.aggregate(stat)
+
+ // If there's no last stat for this pod, set it
+ if _, ok := lastStat[stat.PodName]; !ok {
+ lastStat[stat.PodName] = stat
+ } else if lastStat[stat.PodName].Time.Before(*stat.Time) {
+ // If the current last stat is older than the new one, override
+ lastStat[stat.PodName] = stat
+ }
+ } else {
+ // Drop metrics after 60 seconds
+ delete(a.stats, key)
+ }
+ }
+ return stableData, panicData, lastStat
+}
+
+func (a *Autoscaler) targetConcurrency() float64 {
+ a.targetMutex.RLock()
+ defer a.targetMutex.RUnlock()
+ return a.target
+}
+
+func (a *Autoscaler) podCountLimited(desiredPodCount, currentPodCount float64) float64 {
+ return math.Min(desiredPodCount, a.Current().MaxScaleUpRate*currentPodCount)
+}
+
+func (a *Autoscaler) readyPods() (float64, error) {
+ readyPods := 0
+ endpoints, err := a.endpointsLister.Endpoints(a.namespace).Get(a.revisionService)
+ if apierrors.IsNotFound(err) {
+ // Treat not found as zero endpoints, it either hasn't been created
+ // or it has been torn down.
+ } else if err != nil {
+ return 0, err
+ } else {
+ for _, es := range endpoints.Subsets {
+ readyPods += len(es.Addresses)
+ }
+ }
+
+ // Use 1 as minimum for multiplication and division.
+ return math.Max(1, float64(readyPods)), nil
+}
+
+func isActivator(podName string) bool {
+ // TODO(#2282): This can cause naming collisions.
+ return strings.HasPrefix(podName, ActivatorPodName)
}
-func (a *Autoscaler) rateLimited(desiredRate float64) float64 {
- if desiredRate > a.Current().MaxScaleUpRate {
- return a.Current().MaxScaleUpRate
+func divide(a, b float64) float64 {
+ if math.Abs(b) < approximateZero {
+ return 0
}
- return desiredRate
+ return a / b
}
diff --git a/vendor/github.com/knative/serving/pkg/autoscaler/config.go b/vendor/github.com/knative/serving/pkg/autoscaler/config.go
index 881b78844d..e7f198b73a 100644
--- a/vendor/github.com/knative/serving/pkg/autoscaler/config.go
+++ b/vendor/github.com/knative/serving/pkg/autoscaler/config.go
@@ -29,6 +29,10 @@ import (
const (
// ConfigName is the name of the config map of the autoscaler.
ConfigName = "config-autoscaler"
+
+ // Default values for several key autoscaler settings.
+ DefaultStableWindow = 60 * time.Second
+ DefaultScaleToZeroGracePeriod = 30 * time.Second
)
// Config defines the tunable autoscaler parameters
@@ -36,7 +40,6 @@ const (
type Config struct {
// Feature flags.
EnableScaleToZero bool
- EnableVPA bool
// Target concurrency knobs for different container concurrency configurations.
ContainerConcurrencyTargetPercentage float64
@@ -48,10 +51,7 @@ type Config struct {
PanicWindow time.Duration
TickInterval time.Duration
- ScaleToZeroThreshold time.Duration
ScaleToZeroGracePeriod time.Duration
- // This is computed by ScaleToZeroThreshold - ScaleToZeroGracePeriod
- ScaleToZeroIdlePeriod time.Duration
}
// TargetConcurrency calculates the target concurrency for a given container-concurrency
@@ -69,17 +69,16 @@ func NewConfigFromMap(data map[string]string) (*Config, error) {
// Process bool fields
for _, b := range []struct {
- key string
- field *bool
+ key string
+ field *bool
+ defaultValue bool
}{{
- key: "enable-scale-to-zero",
- field: &lc.EnableScaleToZero,
- }, {
- key: "enable-vertical-pod-autoscaling",
- field: &lc.EnableVPA,
+ key: "enable-scale-to-zero",
+ field: &lc.EnableScaleToZero,
+ defaultValue: true,
}} {
if raw, ok := data[b.key]; !ok {
- *b.field = false
+ *b.field = b.defaultValue
} else {
*b.field = strings.ToLower(raw) == "true"
}
@@ -87,27 +86,27 @@ func NewConfigFromMap(data map[string]string) (*Config, error) {
// Process Float64 fields
for _, f64 := range []struct {
- key string
- field *float64
- optional bool
+ key string
+ field *float64
// specified exactly when optional
defaultValue float64
}{{
- key: "max-scale-up-rate",
- field: &lc.MaxScaleUpRate,
+ key: "max-scale-up-rate",
+ field: &lc.MaxScaleUpRate,
+ defaultValue: 10.0,
}, {
key: "container-concurrency-target-percentage",
field: &lc.ContainerConcurrencyTargetPercentage,
+ // TODO(#1956): tune target usage based on empirical data.
+ // TODO(#2016): Revert to 0.7 once incorrect reporting is solved
+ defaultValue: 1.0,
}, {
- key: "container-concurrency-target-default",
- field: &lc.ContainerConcurrencyTargetDefault,
+ key: "container-concurrency-target-default",
+ field: &lc.ContainerConcurrencyTargetDefault,
+ defaultValue: 100.0,
}} {
if raw, ok := data[f64.key]; !ok {
- if f64.optional {
- *f64.field = f64.defaultValue
- continue
- }
- return nil, fmt.Errorf("Autoscaling configmap is missing %q", f64.key)
+ *f64.field = f64.defaultValue
} else if val, err := strconv.ParseFloat(raw, 64); err != nil {
return nil, err
} else {
@@ -117,35 +116,28 @@ func NewConfigFromMap(data map[string]string) (*Config, error) {
// Process Duration fields
for _, dur := range []struct {
- key string
- field *time.Duration
- optional bool
- // specified exactly when optional
+ key string
+ field *time.Duration
defaultValue time.Duration
}{{
- key: "stable-window",
- field: &lc.StableWindow,
- }, {
- key: "panic-window",
- field: &lc.PanicWindow,
+ key: "stable-window",
+ field: &lc.StableWindow,
+ defaultValue: DefaultStableWindow,
}, {
- key: "scale-to-zero-threshold",
- field: &lc.ScaleToZeroThreshold,
+ key: "panic-window",
+ field: &lc.PanicWindow,
+ defaultValue: 6 * time.Second,
}, {
key: "scale-to-zero-grace-period",
field: &lc.ScaleToZeroGracePeriod,
- optional: true,
- defaultValue: 2 * time.Minute,
+ defaultValue: DefaultScaleToZeroGracePeriod,
}, {
- key: "tick-interval",
- field: &lc.TickInterval,
+ key: "tick-interval",
+ field: &lc.TickInterval,
+ defaultValue: 2 * time.Second,
}} {
if raw, ok := data[dur.key]; !ok {
- if dur.optional {
- *dur.field = dur.defaultValue
- continue
- }
- return nil, fmt.Errorf("Autoscaling configmap is missing %q", dur.key)
+ *dur.field = dur.defaultValue
} else if val, err := time.ParseDuration(raw); err != nil {
return nil, err
} else {
@@ -157,12 +149,6 @@ func NewConfigFromMap(data map[string]string) (*Config, error) {
return nil, fmt.Errorf("scale-to-zero-grace-period must be at least 30s, got %v", lc.ScaleToZeroGracePeriod)
}
- lc.ScaleToZeroIdlePeriod = lc.ScaleToZeroThreshold - lc.ScaleToZeroGracePeriod
- if lc.ScaleToZeroIdlePeriod < 30*time.Second {
- return nil, fmt.Errorf("scale-to-zero-threshold minus scale-to-zero-grace-period must be at least 30s, got %v (%v - %v)",
- lc.ScaleToZeroIdlePeriod, lc.ScaleToZeroThreshold, lc.ScaleToZeroGracePeriod)
- }
-
return lc, nil
}
diff --git a/vendor/github.com/knative/serving/pkg/autoscaler/dynamic_config.go b/vendor/github.com/knative/serving/pkg/autoscaler/dynamic_config.go
index de526ab8bd..fc02ae994b 100644
--- a/vendor/github.com/knative/serving/pkg/autoscaler/dynamic_config.go
+++ b/vendor/github.com/knative/serving/pkg/autoscaler/dynamic_config.go
@@ -27,8 +27,7 @@ type DynamicConfig struct {
mutex sync.RWMutex
config interface{} // discourage direct access as this is not goroutine safe
- logger *zap.SugaredLogger
- containerConcurrency float64
+ logger *zap.SugaredLogger
}
func NewDynamicConfig(config *Config, logger *zap.SugaredLogger) *DynamicConfig {
diff --git a/vendor/github.com/knative/serving/pkg/autoscaler/multiscaler.go b/vendor/github.com/knative/serving/pkg/autoscaler/multiscaler.go
index 8536ed5f71..ce939b767e 100644
--- a/vendor/github.com/knative/serving/pkg/autoscaler/multiscaler.go
+++ b/vendor/github.com/knative/serving/pkg/autoscaler/multiscaler.go
@@ -24,10 +24,10 @@ import (
"github.com/knative/pkg/logging"
"github.com/knative/pkg/logging/logkey"
+ kpa "github.com/knative/serving/pkg/apis/autoscaling/v1alpha1"
"go.uber.org/zap"
"k8s.io/apimachinery/pkg/api/errors"
-
- kpa "github.com/knative/serving/pkg/apis/autoscaling/v1alpha1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
const (
@@ -37,11 +37,26 @@ const (
scaleBufferSize = 10
)
+// Metric is a resource which observes the request load of a Revision and
+// recommends a number of replicas to run.
+// +k8s:deepcopy-gen=true
type Metric struct {
+ metav1.ObjectMeta
+ Spec MetricSpec
+ Status MetricStatus
+}
+
+// MetricSpec is the parameters in which the Revision should scaled.
+type MetricSpec struct {
+ TargetConcurrency float64
+}
+
+// MetricStatus is the current scale recommendation.
+type MetricStatus struct {
DesiredScale int32
}
-// UniScaler records statistics for a particular KPA and proposes the scale for the KPA's target based on those statistics.
+// UniScaler records statistics for a particular Metric and proposes the scale for the Metric's target based on those statistics.
type UniScaler interface {
// Record records the given statistics.
Record(context.Context, Stat)
@@ -49,44 +64,48 @@ type UniScaler interface {
// Scale either proposes a number of replicas or skips proposing. The proposal is requested at the given time.
// The returned boolean is true if and only if a proposal was returned.
Scale(context.Context, time.Time) (int32, bool)
+
+ // Update reconfigures the UniScaler according to the MetricSpec.
+ Update(MetricSpec) error
}
-// UniScalerFactory creates a UniScaler for a given KPA using the given dynamic configuration.
-type UniScalerFactory func(*kpa.PodAutoscaler, *DynamicConfig) (UniScaler, error)
+// UniScalerFactory creates a UniScaler for a given PA using the given dynamic configuration.
+type UniScalerFactory func(*Metric, *DynamicConfig) (UniScaler, error)
// scalerRunner wraps a UniScaler and a channel for implementing shutdown behavior.
type scalerRunner struct {
scaler UniScaler
stopCh chan struct{}
+ pokeCh chan struct{}
- // lsm guards access to latestScale
- lsm sync.RWMutex
- latestScale int32
+ // mux guards access to metric
+ mux sync.RWMutex
+ metric Metric
}
func (sr *scalerRunner) getLatestScale() int32 {
- sr.lsm.RLock()
- defer sr.lsm.RUnlock()
- return sr.latestScale
+ sr.mux.RLock()
+ defer sr.mux.RUnlock()
+ return sr.metric.Status.DesiredScale
}
func (sr *scalerRunner) updateLatestScale(new int32) bool {
- sr.lsm.Lock()
- defer sr.lsm.Unlock()
- if sr.latestScale != new {
- sr.latestScale = new
+ sr.mux.Lock()
+ defer sr.mux.Unlock()
+ if sr.metric.Status.DesiredScale != new {
+ sr.metric.Status.DesiredScale = new
return true
}
return false
}
-// NewKpaKey identifies a KPA in the multiscaler. Stats send in
+// NewMetricKey identifies a UniScaler in the multiscaler. Stats send in
// are identified and routed via this key.
-func NewKpaKey(namespace string, name string) string {
+func NewMetricKey(namespace string, name string) string {
return fmt.Sprintf("%s/%s", namespace, name)
}
-// MultiScaler maintains a collection of UniScalers.
+// MultiScaler maintains a collection of Uniscalers.
type MultiScaler struct {
scalers map[string]*scalerRunner
scalersMutex sync.RWMutex
@@ -98,7 +117,8 @@ type MultiScaler struct {
logger *zap.SugaredLogger
- watcher func(string)
+ watcher func(string)
+ watcherMutex sync.RWMutex
}
// NewMultiScaler constructs a MultiScaler.
@@ -113,7 +133,9 @@ func NewMultiScaler(dynConfig *DynamicConfig, stopCh <-chan struct{}, uniScalerF
}
}
-func (m *MultiScaler) Get(ctx context.Context, key string) (*Metric, error) {
+// Get return the current Metric.
+func (m *MultiScaler) Get(ctx context.Context, namespace, name string) (*Metric, error) {
+ key := NewMetricKey(namespace, name)
m.scalersMutex.RLock()
defer m.scalersMutex.RUnlock()
scaler, exists := m.scalers[key]
@@ -121,30 +143,49 @@ func (m *MultiScaler) Get(ctx context.Context, key string) (*Metric, error) {
// This GroupResource is a lie, but unfortunately this interface requires one.
return nil, errors.NewNotFound(kpa.Resource("Metrics"), key)
}
- return &Metric{
- DesiredScale: scaler.getLatestScale(),
- }, nil
+ scaler.mux.RLock()
+ defer scaler.mux.RUnlock()
+ return (&scaler.metric).DeepCopy(), nil
}
-func (m *MultiScaler) Create(ctx context.Context, kpa *kpa.PodAutoscaler) (*Metric, error) {
+// Create instantiates the desired Metric.
+func (m *MultiScaler) Create(ctx context.Context, metric *Metric) (*Metric, error) {
m.scalersMutex.Lock()
defer m.scalersMutex.Unlock()
- key := NewKpaKey(kpa.Namespace, kpa.Name)
+ key := NewMetricKey(metric.Namespace, metric.Name)
scaler, exists := m.scalers[key]
if !exists {
var err error
- scaler, err = m.createScaler(ctx, kpa)
+ scaler, err = m.createScaler(ctx, metric)
if err != nil {
return nil, err
}
m.scalers[key] = scaler
}
- return &Metric{
- DesiredScale: scaler.getLatestScale(),
- }, nil
+ scaler.mux.RLock()
+ defer scaler.mux.RUnlock()
+ return (&scaler.metric).DeepCopy(), nil
}
-func (m *MultiScaler) Delete(ctx context.Context, key string) error {
+// Update applied the desired MetricSpec to a currently running Metric.
+func (m *MultiScaler) Update(ctx context.Context, metric *Metric) (*Metric, error) {
+ key := NewMetricKey(metric.Namespace, metric.Name)
+ m.scalersMutex.Lock()
+ defer m.scalersMutex.Unlock()
+ if scaler, exists := m.scalers[key]; exists {
+ scaler.mux.Lock()
+ defer scaler.mux.Unlock()
+ scaler.metric = *metric
+ scaler.scaler.Update(metric.Spec)
+ return metric, nil
+ }
+ // This GroupResource is a lie, but unfortunately this interface requires one.
+ return nil, errors.NewNotFound(kpa.Resource("Metrics"), key)
+}
+
+// Delete stops and removes a Metric.
+func (m *MultiScaler) Delete(ctx context.Context, namespace, name string) error {
+ key := NewMetricKey(namespace, name)
m.scalersMutex.Lock()
defer m.scalersMutex.Unlock()
if scaler, exists := m.scalers[key]; exists {
@@ -154,21 +195,55 @@ func (m *MultiScaler) Delete(ctx context.Context, key string) error {
return nil
}
+// Watch registers a singleton function to call when MetricStatus is updated.
func (m *MultiScaler) Watch(fn func(string)) {
+ m.watcherMutex.Lock()
+ defer m.watcherMutex.Unlock()
+
if m.watcher != nil {
m.logger.Fatal("Multiple calls to Watch() not supported")
}
m.watcher = fn
}
-func (m *MultiScaler) createScaler(ctx context.Context, kpa *kpa.PodAutoscaler) (*scalerRunner, error) {
- scaler, err := m.uniScalerFactory(kpa, m.dynConfig)
+// Inform sends an update to the registered watcher function, if it is set.
+func (m *MultiScaler) Inform(event string) bool {
+ m.watcherMutex.RLock()
+ defer m.watcherMutex.RUnlock()
+
+ if m.watcher != nil {
+ m.watcher(event)
+ return true
+ }
+ return false
+}
+
+// setScale directly sets the scale for a given metric key. This does not perform any ticking
+// or updating of other scaler components.
+func (m *MultiScaler) setScale(metricKey string, scale int32) bool {
+ scaler, exists := m.scalers[metricKey]
+ if !exists {
+ return false
+ }
+ scaler.updateLatestScale(scale)
+ return true
+}
+
+func (m *MultiScaler) createScaler(ctx context.Context, metric *Metric) (*scalerRunner, error) {
+
+ scaler, err := m.uniScalerFactory(metric, m.dynConfig)
if err != nil {
return nil, err
}
stopCh := make(chan struct{})
- runner := &scalerRunner{scaler: scaler, latestScale: -1, stopCh: stopCh}
+ runner := &scalerRunner{
+ scaler: scaler,
+ stopCh: stopCh,
+ metric: *metric,
+ pokeCh: make(chan struct{}),
+ }
+ runner.metric.Status.DesiredScale = -1
ticker := time.NewTicker(m.dynConfig.Current().TickInterval)
@@ -185,11 +260,13 @@ func (m *MultiScaler) createScaler(ctx context.Context, kpa *kpa.PodAutoscaler)
return
case <-ticker.C:
m.tickScaler(ctx, scaler, scaleChan)
+ case <-runner.pokeCh:
+ m.tickScaler(ctx, scaler, scaleChan)
}
}
}()
- kpaKey := NewKpaKey(kpa.Namespace, kpa.Name)
+ metricKey := NewMetricKey(metric.Namespace, metric.Name)
go func() {
for {
select {
@@ -199,7 +276,7 @@ func (m *MultiScaler) createScaler(ctx context.Context, kpa *kpa.PodAutoscaler)
return
case desiredScale := <-scaleChan:
if runner.updateLatestScale(desiredScale) {
- m.watcher(kpaKey)
+ m.Inform(metricKey)
}
}
}
@@ -229,8 +306,7 @@ func (m *MultiScaler) tickScaler(ctx context.Context, scaler UniScaler, scaleCha
}
}
-// RecordStat records some statistics for the given KPA. kpaKey should have the
-// form namespace/name.
+// RecordStat records some statistics for the given Metric.
func (m *MultiScaler) RecordStat(key string, stat Stat) {
m.scalersMutex.RLock()
defer m.scalersMutex.RUnlock()
@@ -239,6 +315,10 @@ func (m *MultiScaler) RecordStat(key string, stat Stat) {
if exists {
logger := m.logger.With(zap.String(logkey.Key, key))
ctx := logging.WithLogger(context.TODO(), logger)
+
scaler.scaler.Record(ctx, stat)
+ if scaler.getLatestScale() == 0 && stat.AverageConcurrentRequests != 0 {
+ scaler.pokeCh <- struct{}{}
+ }
}
}
diff --git a/vendor/github.com/knative/serving/pkg/autoscaler/stats_reporter.go b/vendor/github.com/knative/serving/pkg/autoscaler/stats_reporter.go
index ba29096dc4..5453a2c5c7 100644
--- a/vendor/github.com/knative/serving/pkg/autoscaler/stats_reporter.go
+++ b/vendor/github.com/knative/serving/pkg/autoscaler/stats_reporter.go
@@ -20,69 +20,46 @@ import (
"context"
"errors"
+ "github.com/knative/pkg/metrics/metricskey"
+
"go.opencensus.io/stats"
"go.opencensus.io/stats/view"
"go.opencensus.io/tag"
- "go.uber.org/zap"
-)
-
-// Measurement represents the type of the autoscaler metric to be reported
-type Measurement int
-
-const (
- // DesiredPodCountM is used for the pod count that autoscaler wants
- DesiredPodCountM Measurement = iota
- // RequestedPodCountM is used for the requested pod count from kubernetes
- RequestedPodCountM
- // ActualPodCountM is used for the actual number of pods we have
- ActualPodCountM
- // ObservedPodCountM is used for the observed number of pods we have
- ObservedPodCountM
- // ObservedStableConcurrencyM is the average of requests count in each 60 second stable window
- ObservedStableConcurrencyM
- // ObservedPanicConcurrencyM is the average of requests count in each 6 second panic window
- ObservedPanicConcurrencyM
- // TargetConcurrencyM is the desired number of concurrent requests for each pod
- TargetConcurrencyM
- // PanicM is used as a flag to indicate if autoscaler is in panic mode or not
- PanicM
)
var (
- measurements = []*stats.Float64Measure{
- DesiredPodCountM: stats.Float64(
- "desired_pod_count",
- "Number of pods autoscaler wants to allocate",
- stats.UnitNone),
- RequestedPodCountM: stats.Float64(
- "requested_pod_count",
- "Number of pods autoscaler requested from Kubernetes",
- stats.UnitNone),
- ActualPodCountM: stats.Float64(
- "actual_pod_count",
- "Number of pods that are allocated currently",
- stats.UnitNone),
- ObservedPodCountM: stats.Float64(
- "observed_pod_count",
- "Number of pods that are observed currently",
- stats.UnitNone),
- ObservedStableConcurrencyM: stats.Float64(
- "observed_stable_concurrency",
- "Average of requests count in each 60 second stable window",
- stats.UnitNone),
- ObservedPanicConcurrencyM: stats.Float64(
- "observed_panic_concurrency",
- "Average of requests count in each 6 second panic window",
- stats.UnitNone),
- TargetConcurrencyM: stats.Float64(
- "target_concurrency_per_pod",
- "The desired number of concurrent requests for each pod",
- stats.UnitNone),
- PanicM: stats.Float64(
- "panic_mode",
- "1 if autoscaler is in panic mode, 0 otherwise",
- stats.UnitNone),
- }
+ desiredPodCountM = stats.Int64(
+ "desired_pods",
+ "Number of pods autoscaler wants to allocate",
+ stats.UnitDimensionless)
+ requestedPodCountM = stats.Int64(
+ "requested_pods",
+ "Number of pods autoscaler requested from Kubernetes",
+ stats.UnitDimensionless)
+ actualPodCountM = stats.Int64(
+ "actual_pods",
+ "Number of pods that are allocated currently",
+ stats.UnitDimensionless)
+ observedPodCountM = stats.Float64(
+ "observed_pods",
+ "Number of pods that are observed currently",
+ stats.UnitDimensionless)
+ stableRequestConcurrencyM = stats.Float64(
+ "stable_request_concurrency",
+ "Average of requests count per observed pod in each stable window (default 60 seconds)",
+ stats.UnitDimensionless)
+ panicRequestConcurrencyM = stats.Float64(
+ "panic_request_concurrency",
+ "Average of requests count per observed pod in each panic window (default 6 seconds)",
+ stats.UnitDimensionless)
+ targetRequestConcurrencyM = stats.Float64(
+ "target_concurrency_per_pod",
+ "The desired number of concurrent requests for each pod",
+ stats.UnitDimensionless)
+ panicM = stats.Int64(
+ "panic_mode",
+ "1 if autoscaler is in panic mode, 0 otherwise",
+ stats.UnitDimensionless)
namespaceTagKey tag.Key
configTagKey tag.Key
revisionTagKey tag.Key
@@ -96,19 +73,19 @@ func init() {
// go.opencensus.io/tag/validate.go. Currently those restrictions are:
// - length between 1 and 255 inclusive
// - characters are printable US-ASCII
- namespaceTagKey, err = tag.NewKey("configuration_namespace")
+ namespaceTagKey, err = tag.NewKey(metricskey.LabelNamespaceName)
if err != nil {
panic(err)
}
- serviceTagKey, err = tag.NewKey("service")
+ serviceTagKey, err = tag.NewKey(metricskey.LabelServiceName)
if err != nil {
panic(err)
}
- configTagKey, err = tag.NewKey("configuration")
+ configTagKey, err = tag.NewKey(metricskey.LabelConfigurationName)
if err != nil {
panic(err)
}
- revisionTagKey, err = tag.NewKey("revision")
+ revisionTagKey, err = tag.NewKey(metricskey.LabelRevisionName)
if err != nil {
panic(err)
}
@@ -119,49 +96,49 @@ func init() {
err = view.Register(
&view.View{
Description: "Number of pods autoscaler wants to allocate",
- Measure: measurements[DesiredPodCountM],
+ Measure: desiredPodCountM,
Aggregation: view.LastValue(),
TagKeys: []tag.Key{namespaceTagKey, serviceTagKey, configTagKey, revisionTagKey},
},
&view.View{
Description: "Number of pods autoscaler requested from Kubernetes",
- Measure: measurements[RequestedPodCountM],
+ Measure: requestedPodCountM,
Aggregation: view.LastValue(),
TagKeys: []tag.Key{namespaceTagKey, serviceTagKey, configTagKey, revisionTagKey},
},
&view.View{
Description: "Number of pods that are allocated currently",
- Measure: measurements[ActualPodCountM],
+ Measure: actualPodCountM,
Aggregation: view.LastValue(),
TagKeys: []tag.Key{namespaceTagKey, serviceTagKey, configTagKey, revisionTagKey},
},
&view.View{
Description: "Number of pods that are observed currently",
- Measure: measurements[ObservedPodCountM],
+ Measure: observedPodCountM,
Aggregation: view.LastValue(),
TagKeys: []tag.Key{namespaceTagKey, serviceTagKey, configTagKey, revisionTagKey},
},
&view.View{
Description: "Average of requests count in each 60 second stable window",
- Measure: measurements[ObservedStableConcurrencyM],
+ Measure: stableRequestConcurrencyM,
Aggregation: view.LastValue(),
TagKeys: []tag.Key{namespaceTagKey, serviceTagKey, configTagKey, revisionTagKey},
},
&view.View{
Description: "Average of requests count in each 6 second panic window",
- Measure: measurements[ObservedPanicConcurrencyM],
+ Measure: panicRequestConcurrencyM,
Aggregation: view.LastValue(),
TagKeys: []tag.Key{namespaceTagKey, serviceTagKey, configTagKey, revisionTagKey},
},
&view.View{
Description: "The desired number of concurrent requests for each pod",
- Measure: measurements[TargetConcurrencyM],
+ Measure: targetRequestConcurrencyM,
Aggregation: view.LastValue(),
TagKeys: []tag.Key{namespaceTagKey, serviceTagKey, configTagKey, revisionTagKey},
},
&view.View{
Description: "1 if autoscaler is in panic mode, 0 otherwise",
- Measure: measurements[PanicM],
+ Measure: panicM,
Aggregation: view.LastValue(),
TagKeys: []tag.Key{namespaceTagKey, serviceTagKey, configTagKey, revisionTagKey},
},
@@ -174,13 +151,19 @@ func init() {
// StatsReporter defines the interface for sending autoscaler metrics
type StatsReporter interface {
- Report(m Measurement, v float64) error
+ ReportDesiredPodCount(v int64) error
+ ReportRequestedPodCount(v int64) error
+ ReportActualPodCount(v int64) error
+ ReportObservedPodCount(v float64) error
+ ReportStableRequestConcurrency(v float64) error
+ ReportPanicRequestConcurrency(v float64) error
+ ReportTargetRequestConcurrency(v float64) error
+ ReportPanic(v int64) error
}
// Reporter holds cached metric objects to report autoscaler metrics
type Reporter struct {
ctx context.Context
- logger *zap.SugaredLogger
initialized bool
}
@@ -206,12 +189,51 @@ func NewStatsReporter(podNamespace string, service string, config string, revisi
return r, nil
}
-// Report captures value v for measurement m
-func (r *Reporter) Report(m Measurement, v float64) error {
+// ReportDesiredPodCount captures value v for desired pod count measure.
+func (r *Reporter) ReportDesiredPodCount(v int64) error {
+ return r.report(desiredPodCountM.M(v))
+}
+
+// ReportRequestedPodCount captures value v for requested pod count measure.
+func (r *Reporter) ReportRequestedPodCount(v int64) error {
+ return r.report(requestedPodCountM.M(v))
+}
+
+// ReportActualPodCount captures value v for actual pod count measure.
+func (r *Reporter) ReportActualPodCount(v int64) error {
+ return r.report(actualPodCountM.M(v))
+}
+
+// ReportObservedPodCount captures value v for observed pod count measure.
+func (r *Reporter) ReportObservedPodCount(v float64) error {
+ return r.report(observedPodCountM.M(v))
+}
+
+// ReportStableRequestConcurrency captures value v for stable request concurrency measure.
+func (r *Reporter) ReportStableRequestConcurrency(v float64) error {
+ return r.report(stableRequestConcurrencyM.M(v))
+}
+
+// ReportPanicRequestConcurrency captures value v for panic request concurrency measure.
+func (r *Reporter) ReportPanicRequestConcurrency(v float64) error {
+ return r.report(panicRequestConcurrencyM.M(v))
+}
+
+// ReportTargetRequestConcurrency captures value v for target request concurrency measure.
+func (r *Reporter) ReportTargetRequestConcurrency(v float64) error {
+ return r.report(targetRequestConcurrencyM.M(v))
+}
+
+// ReportPanic captures value v for panic mode measure.
+func (r *Reporter) ReportPanic(v int64) error {
+ return r.report(panicM.M(v))
+}
+
+func (r *Reporter) report(m stats.Measurement) error {
if !r.initialized {
return errors.New("StatsReporter is not initialized yet")
}
- stats.Record(r.ctx, measurements[m].M(v))
+ stats.Record(r.ctx, m)
return nil
}
diff --git a/vendor/github.com/knative/serving/pkg/autoscaler/stats_scraper.go b/vendor/github.com/knative/serving/pkg/autoscaler/stats_scraper.go
new file mode 100644
index 0000000000..47fc9590c5
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/autoscaler/stats_scraper.go
@@ -0,0 +1,167 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package autoscaler
+
+import (
+ "errors"
+ "fmt"
+ "io"
+ "net/http"
+ "time"
+
+ "github.com/knative/serving/pkg/apis/serving"
+ "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ "github.com/knative/serving/pkg/reconciler"
+ dto "github.com/prometheus/client_model/go"
+ "github.com/prometheus/common/expfmt"
+ "go.uber.org/zap"
+)
+
+const (
+ httpClientTimeout = 3 * time.Second
+)
+
+// StatsScraper defines the interface for collecting Revision metrics
+type StatsScraper interface {
+ // Scrape scrapes the Revision queue metric endpoint then sends it as a
+ // StatMessage to the given channel.
+ Scrape(statsCh chan<- *StatMessage)
+}
+
+// cacheDisabledClient is a http client with cache disabled. It is shared by
+// every goruntime for a revision scraper.
+var cacheDisabledClient = &http.Client{
+ Transport: &http.Transport{
+ // Do not use the cached connection
+ DisableKeepAlives: true,
+ },
+ Timeout: httpClientTimeout,
+}
+
+// ServiceScraper scrapes Revision metrics via a K8S service by sampling. Which
+// pod to be picked up to serve the request is decided by K8S. Please see
+// https://kubernetes.io/docs/concepts/services-networking/network-policies/
+// for details.
+type ServiceScraper struct {
+ httpClient *http.Client
+ url string
+ metricKey string
+ logger *zap.SugaredLogger
+}
+
+// NewServiceScraper creates a new StatsScraper for the Revision which
+// the given Metric is responsible for.
+func NewServiceScraper(metric *Metric, logger *zap.SugaredLogger) (*ServiceScraper, error) {
+ return newServiceScraperWithClient(metric, logger, cacheDisabledClient)
+}
+
+func newServiceScraperWithClient(metric *Metric, logger *zap.SugaredLogger, httpClient *http.Client) (*ServiceScraper, error) {
+ revName := metric.Labels[serving.RevisionLabelKey]
+ if revName == "" {
+ return nil, fmt.Errorf("no Revision label found for Metric %s", metric.Name)
+ }
+
+ serviceName := reconciler.GetServingK8SServiceNameForObj(revName)
+ return &ServiceScraper{
+ httpClient: httpClient,
+ url: fmt.Sprintf("http://%s.%s:%d/metrics", serviceName, metric.Namespace, v1alpha1.RequestQueueMetricsPort),
+ metricKey: NewMetricKey(metric.Namespace, metric.Name),
+ logger: logger,
+ }, nil
+}
+
+// Scrape call the destination service then send it
+// to the given stats chanel
+func (s *ServiceScraper) Scrape(statsCh chan<- *StatMessage) {
+ stat, err := s.scrapeViaURL()
+ if err != nil {
+ s.logger.Errorw("Failed to get metrics", zap.Error(err))
+ return
+ }
+
+ s.sendStatMessage(*stat, statsCh)
+}
+
+func (s *ServiceScraper) scrapeViaURL() (*Stat, error) {
+ req, err := http.NewRequest("GET", s.url, nil)
+ if err != nil {
+ return nil, err
+ }
+ resp, err := s.httpClient.Do(req)
+ if err != nil {
+ return nil, err
+ }
+ defer resp.Body.Close()
+ if resp.StatusCode < http.StatusOK || resp.StatusCode >= http.StatusMultipleChoices {
+ return nil, fmt.Errorf("GET request for URL %q returned HTTP status %v", s.url, resp.StatusCode)
+ }
+
+ return extractData(resp.Body)
+}
+
+func extractData(body io.Reader) (*Stat, error) {
+ var parser expfmt.TextParser
+ metricFamilies, err := parser.TextToMetricFamilies(body)
+ if err != nil {
+ return nil, fmt.Errorf("Reading text format failed: %v", err)
+ }
+
+ now := time.Now()
+ stat := Stat{
+ Time: &now,
+ }
+
+ if pMetric := getPrometheusMetric(metricFamilies, "queue_average_concurrent_requests"); pMetric != nil {
+ // The autoscaler should decide what to do with a Stat with empty pod name
+ for _, label := range pMetric.Label {
+ if *label.Name == "destination_pod" {
+ stat.PodName = *label.Value
+ break
+ }
+ }
+ stat.AverageConcurrentRequests = *pMetric.Gauge.Value
+ } else {
+ return nil, errors.New("Could not find value for queue_average_concurrent_requests in response")
+ }
+
+ if pMetric := getPrometheusMetric(metricFamilies, "queue_operations_per_second"); pMetric != nil {
+ stat.RequestCount = int32(*pMetric.Gauge.Value)
+ } else {
+ return nil, errors.New("Could not find value for queue_operations_per_second in response")
+ }
+
+ return &stat, nil
+}
+
+// getPrometheusMetric returns the point of the first Metric of the MetricFamily
+// with the given key from the given map. If there is no such MetricFamily or it
+// has no Metrics, then returns nil.
+func getPrometheusMetric(metricFamilies map[string]*dto.MetricFamily, key string) *dto.Metric {
+ if metric, ok := metricFamilies[key]; ok && metric != nil && len(metric.Metric) != 0 {
+ return metric.Metric[0]
+ }
+
+ return nil
+}
+
+func (s *ServiceScraper) sendStatMessage(stat Stat, statsCh chan<- *StatMessage) {
+ sm := &StatMessage{
+ Stat: stat,
+ Key: s.metricKey,
+ }
+ statsCh <- sm
+}
diff --git a/vendor/github.com/knative/serving/pkg/autoscaler/statserver/server.go b/vendor/github.com/knative/serving/pkg/autoscaler/statserver/server.go
index 720ea08b7d..8f130debdf 100644
--- a/vendor/github.com/knative/serving/pkg/autoscaler/statserver/server.go
+++ b/vendor/github.com/knative/serving/pkg/autoscaler/statserver/server.go
@@ -155,7 +155,10 @@ func (s *Server) Handler(w http.ResponseWriter, r *http.Request) {
}
s.logger.Debugf("Received stat message: %+v", sm)
- s.statsCh <- &sm
+ // Drop stats from lameducked pods
+ if !sm.Stat.LameDuck {
+ s.statsCh <- &sm
+ }
}
}
diff --git a/vendor/github.com/knative/serving/pkg/autoscaler/zz_generated.deepcopy.go b/vendor/github.com/knative/serving/pkg/autoscaler/zz_generated.deepcopy.go
index bac37a889c..21c3821317 100644
--- a/vendor/github.com/knative/serving/pkg/autoscaler/zz_generated.deepcopy.go
+++ b/vendor/github.com/knative/serving/pkg/autoscaler/zz_generated.deepcopy.go
@@ -35,3 +35,22 @@ func (in *Config) DeepCopy() *Config {
in.DeepCopyInto(out)
return out
}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Metric) DeepCopyInto(out *Metric) {
+ *out = *in
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ out.Spec = in.Spec
+ out.Status = in.Status
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metric.
+func (in *Metric) DeepCopy() *Metric {
+ if in == nil {
+ return nil
+ }
+ out := new(Metric)
+ in.DeepCopyInto(out)
+ return out
+}
diff --git a/vendor/github.com/knative/serving/pkg/http/h2c/h2c.go b/vendor/github.com/knative/serving/pkg/http/h2c/h2c.go
index 8bab9d9813..fe1a52024b 100644
--- a/vendor/github.com/knative/serving/pkg/http/h2c/h2c.go
+++ b/vendor/github.com/knative/serving/pkg/http/h2c/h2c.go
@@ -17,6 +17,7 @@ import (
"crypto/tls"
"net"
"net/http"
+ "time"
"golang.org/x/net/http2"
"golang.org/x/net/http2/h2c"
@@ -42,6 +43,12 @@ func ListenAndServe(addr string, h http.Handler) error {
var DefaultTransport http.RoundTripper = &http2.Transport{
AllowHTTP: true,
DialTLS: func(netw, addr string, cfg *tls.Config) (net.Conn, error) {
- return net.Dial(netw, addr)
+ d := &net.Dialer{
+ Timeout: 30 * time.Second,
+ KeepAlive: 30 * time.Second,
+ DualStack: true,
+ }
+
+ return d.Dial(netw, addr)
},
}
diff --git a/vendor/github.com/knative/serving/pkg/metrics/config.go b/vendor/github.com/knative/serving/pkg/metrics/config.go
new file mode 100644
index 0000000000..eef553ddd8
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/metrics/config.go
@@ -0,0 +1,34 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package metrics
+
+import (
+ "github.com/knative/pkg/metrics"
+ "go.uber.org/zap"
+ corev1 "k8s.io/api/core/v1"
+)
+
+const (
+ ObservabilityConfigName = "config-observability"
+ metricsDomain = "knative.dev/serving"
+)
+
+// UpdateExporterFromConfigMap returns a helper func that can be used to update the exporter
+// when a config map is updated
+func UpdateExporterFromConfigMap(component string, logger *zap.SugaredLogger) func(configMap *corev1.ConfigMap) {
+ return metrics.UpdateExporterFromConfigMap(metricsDomain, component, logger)
+}
diff --git a/vendor/github.com/knative/serving/pkg/system/names.go b/vendor/github.com/knative/serving/pkg/network/doc.go
similarity index 77%
rename from vendor/github.com/knative/serving/pkg/system/names.go
rename to vendor/github.com/knative/serving/pkg/network/doc.go
index a81a1fff65..71c061a60c 100644
--- a/vendor/github.com/knative/serving/pkg/system/names.go
+++ b/vendor/github.com/knative/serving/pkg/network/doc.go
@@ -14,10 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-package system
-
-const (
- // Namespace holds the K8s namespace where our serving system
- // components run.
- Namespace = "knative-serving"
-)
+// +k8s:deepcopy-gen=package
+// Package network holds the typed objects that define the schemas for
+// configuring the knative/serving networking layer.
+package network
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/config/network.go b/vendor/github.com/knative/serving/pkg/network/network.go
similarity index 58%
rename from vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/config/network.go
rename to vendor/github.com/knative/serving/pkg/network/network.go
index 27df3d13cf..3604213814 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/config/network.go
+++ b/vendor/github.com/knative/serving/pkg/network/network.go
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-package config
+package network
import (
"net"
@@ -24,21 +24,38 @@ import (
)
const (
- // NetworkConfigName is the name of the configmap containing all
+ // ProbeHeaderName is the name of a header that can be added to
+ // requests to probe the knative networking layer. Requests
+ // with this header will not be passed to the user container or
+ // included in request metrics.
+ ProbeHeaderName = "k-network-probe"
+
+ // ConfigName is the name of the configmap containing all
// customizations for networking features.
- NetworkConfigName = "config-network"
+ ConfigName = "config-network"
// IstioOutboundIPRangesKey is the name of the configuration entry
// that specifies Istio outbound ip ranges.
IstioOutboundIPRangesKey = "istio.sidecar.includeOutboundIPRanges"
+
+ // DefaultClusterIngressClassKey is the name of the configuration entry
+ // that specifies the default ClusterIngress.
+ DefaultClusterIngressClassKey = "clusteringress.class"
+
+ // IstioIngressClassName value for specifying knative's Istio
+ // ClusterIngress reconciler.
+ IstioIngressClassName = "istio.ingress.networking.knative.dev"
)
-// Network contains the networking configuration defined in the
+// Config contains the networking configuration defined in the
// network config map.
-type Network struct {
+type Config struct {
// IstioOutboundIPRange specifies the IP ranges to intercept
// by Istio sidecar.
IstioOutboundIPRanges string
+
+ // DefaultClusterIngressClass specifies the default ClusterIngress class.
+ DefaultClusterIngressClass string
}
func validateAndNormalizeOutboundIPRanges(s string) (string, error) {
@@ -66,15 +83,21 @@ func validateAndNormalizeOutboundIPRanges(s string) (string, error) {
return strings.Join(normalized, ","), nil
}
-// NewNetworkFromConfigMap creates a Network from the supplied ConfigMap
-func NewNetworkFromConfigMap(configMap *corev1.ConfigMap) (*Network, error) {
- nc := &Network{}
+// NewConfigFromConfigMap creates a Config from the supplied ConfigMap
+func NewConfigFromConfigMap(configMap *corev1.ConfigMap) (*Config, error) {
+ nc := &Config{}
if ipr, ok := configMap.Data[IstioOutboundIPRangesKey]; !ok {
// It is OK for this to be absent, we will elide the annotation.
+ nc.IstioOutboundIPRanges = "*"
} else if normalizedIpr, err := validateAndNormalizeOutboundIPRanges(ipr); err != nil {
return nil, err
} else {
nc.IstioOutboundIPRanges = normalizedIpr
}
+ if ingressClass, ok := configMap.Data[DefaultClusterIngressClassKey]; !ok {
+ nc.DefaultClusterIngressClass = IstioIngressClassName
+ } else {
+ nc.DefaultClusterIngressClass = ingressClass
+ }
return nc, nil
}
diff --git a/vendor/github.com/knative/serving/pkg/network/testdata/config-network.yaml b/vendor/github.com/knative/serving/pkg/network/testdata/config-network.yaml
new file mode 120000
index 0000000000..e316b0466b
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/network/testdata/config-network.yaml
@@ -0,0 +1 @@
+../../../config/config-network.yaml
\ No newline at end of file
diff --git a/vendor/github.com/knative/serving/pkg/network/zz_generated.deepcopy.go b/vendor/github.com/knative/serving/pkg/network/zz_generated.deepcopy.go
new file mode 100644
index 0000000000..23e4916bd7
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/network/zz_generated.deepcopy.go
@@ -0,0 +1,37 @@
+// +build !ignore_autogenerated
+
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// This file was autogenerated by deepcopy-gen. Do not edit it manually!
+
+package network
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Config) DeepCopyInto(out *Config) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Config.
+func (in *Config) DeepCopy() *Config {
+ if in == nil {
+ return nil
+ }
+ out := new(Config)
+ in.DeepCopyInto(out)
+ return out
+}
diff --git a/vendor/github.com/knative/serving/pkg/pool/doc.go b/vendor/github.com/knative/serving/pkg/pool/doc.go
new file mode 100644
index 0000000000..4cf66210e2
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/pool/doc.go
@@ -0,0 +1,21 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package pool contains a simple threadpool implementation that accepts
+// work in the form of `func() error` function. The intent is for it to
+// support similar workloads to errgroup, but with a maximum number of
+// concurrent worker threads.
+package pool
diff --git a/vendor/github.com/knative/serving/pkg/pool/interface.go b/vendor/github.com/knative/serving/pkg/pool/interface.go
new file mode 100644
index 0000000000..6bfe39a85e
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/pool/interface.go
@@ -0,0 +1,35 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package pool
+
+import (
+ "golang.org/x/sync/errgroup"
+)
+
+// Interface defines an errgroup-compatible interface for interacting with
+// our threadpool.
+type Interface interface {
+ // Go queues a single unit of work for execution on this pool.
+ Go(func() error)
+
+ // Wait blocks until all work is complete, returning the first
+ // error returned by any of the work.
+ Wait() error
+}
+
+// errgroup.Group implements Interface
+var _ Interface = (*errgroup.Group)(nil)
diff --git a/vendor/github.com/knative/serving/pkg/pool/pool.go b/vendor/github.com/knative/serving/pkg/pool/pool.go
new file mode 100644
index 0000000000..8dab75006f
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/pool/pool.go
@@ -0,0 +1,109 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package pool
+
+import (
+ "sync"
+)
+
+type impl struct {
+ wg sync.WaitGroup
+ workCh chan func() error
+ doneCh chan interface{}
+
+ // Ensure that we Wait exactly once and memoize
+ // the result.
+ waitOnce sync.Once
+
+ // We're only interested in the first result so
+ // only set it once.
+ resultOnce sync.Once
+ result error
+}
+
+// impl implements Interface
+var _ Interface = (*impl)(nil)
+
+// DefaultCapacity is the number of work items or errors that we
+// can queue up before calls to Go will block, or work will
+// block until Wait is called.
+const DefaultCapacity = 50
+
+// New creates a fresh worker pool with the specified size.
+func New(workers int) Interface {
+ return NewWithCapacity(workers, DefaultCapacity)
+}
+
+// NewWithCapacity creates a fresh worker pool with the specified size.
+func NewWithCapacity(workers, capacity int) Interface {
+ i := &impl{
+ workCh: make(chan func() error, capacity),
+ doneCh: make(chan interface{}),
+ }
+
+ // Start a go routine for each worker, which:
+ // 1. reads off of the work channel,
+ // 2. (optionally) sends errors on the error channel,
+ // 3. marks work as done in our sync.WaitGroup.
+ for idx := 0; idx < workers; idx++ {
+ go func() {
+ for work := range i.workCh {
+ func() {
+ defer i.wg.Done()
+ if err := work(); err != nil {
+ i.resultOnce.Do(func() {
+ i.result = err
+ })
+ }
+ }()
+ }
+ }()
+ }
+
+ return i
+}
+
+// Go implements Interface.
+func (i *impl) Go(w func() error) {
+ select {
+ // This means, we no longer accept new work.
+ // This prevents racy client from panicing.
+ case <-i.doneCh:
+ return
+ default:
+ }
+ // Increment the amount of outstanding work we're waiting on.
+ i.wg.Add(1)
+ // Send the work along the queue.
+ i.workCh <- w
+}
+
+// Wait implements Interface.
+func (i *impl) Wait() error {
+ i.waitOnce.Do(func() {
+ // Stop accepting new work.
+ close(i.doneCh)
+
+ // Wait for queued work to complete.
+ i.wg.Wait()
+
+ // Now we know there are definitely no new items arriving.
+ close(i.workCh)
+ })
+
+ return i.result
+}
diff --git a/vendor/github.com/knative/serving/pkg/queue/breaker.go b/vendor/github.com/knative/serving/pkg/queue/breaker.go
index 53e25983d9..56f84b3ce8 100644
--- a/vendor/github.com/knative/serving/pkg/queue/breaker.go
+++ b/vendor/github.com/knative/serving/pkg/queue/breaker.go
@@ -16,33 +16,51 @@ limitations under the License.
package queue
-import "fmt"
+import (
+ "errors"
+ "fmt"
+ "sync"
+)
-type token struct{}
+var (
+ // ErrUpdateCapacity the the capacity could not be updated as wished.
+ ErrUpdateCapacity = errors.New("failed to add all capacity to the breaker")
+ // ErrRelease indicates that Release was called more often than Acquire.
+ ErrRelease = errors.New("semaphore release error: returned tokens must be <= acquired tokens")
+)
+
+// BreakerParams defines the parameters of the breaker.
+type BreakerParams struct {
+ QueueDepth int32
+ MaxConcurrency int32
+ InitialCapacity int32
+}
// Breaker is a component that enforces a concurrency limit on the
// execution of a function. It also maintains a queue of function
// executions in excess of the concurrency limit. Function call attempts
// beyond the limit of the queue are failed immediately.
type Breaker struct {
- maxConcurrency int32
- pendingRequests chan token
- activeRequests chan token
+ pendingRequests chan struct{}
+ sem *semaphore
}
-// NewBreaker creates a Breaker with the desired queue depth and
-// concurrency limit.
-func NewBreaker(queueDepth, maxConcurrency int32) *Breaker {
- if queueDepth <= 0 {
- panic(fmt.Sprintf("Queue depth must be greater than 0. Got %v.", queueDepth))
+// NewBreaker creates a Breaker with the desired queue depth,
+// concurrency limit and initial capacity.
+func NewBreaker(params BreakerParams) *Breaker {
+ if params.QueueDepth <= 0 {
+ panic(fmt.Sprintf("Queue depth must be greater than 0. Got %v.", params.QueueDepth))
+ }
+ if params.MaxConcurrency < 0 {
+ panic(fmt.Sprintf("Max concurrency must be 0 or greater. Got %v.", params.QueueDepth))
}
- if maxConcurrency < 0 {
- panic(fmt.Sprintf("Max concurrency must be 0 or greater. Got %v.", maxConcurrency))
+ if params.InitialCapacity < 0 || params.InitialCapacity > params.MaxConcurrency {
+ panic(fmt.Sprintf("Initial capacity must be between 0 and max concurrency. Got %v.", params.InitialCapacity))
}
+ sem := newSemaphore(params.MaxConcurrency, params.InitialCapacity)
return &Breaker{
- maxConcurrency: maxConcurrency,
- pendingRequests: make(chan token, queueDepth+maxConcurrency),
- activeRequests: make(chan token, maxConcurrency),
+ pendingRequests: make(chan struct{}, params.QueueDepth+params.MaxConcurrency),
+ sem: sem,
}
}
@@ -51,21 +69,152 @@ func NewBreaker(queueDepth, maxConcurrency int32) *Breaker {
// already consumed, Maybe returns immediately without calling thunk. If
// the thunk was executed, Maybe returns true, else false.
func (b *Breaker) Maybe(thunk func()) bool {
-
- var t token
select {
default:
// Pending request queue is full. Report failure.
return false
- case b.pendingRequests <- t:
+ case b.pendingRequests <- struct{}{}:
// Pending request has capacity.
// Wait for capacity in the active queue.
- b.activeRequests <- t
+ b.sem.Acquire()
// Defer releasing capacity in the active and pending request queue.
- defer func() { <-b.activeRequests; <-b.pendingRequests }()
+ defer func() {
+ // It's safe to ignore the error returned by Release since we
+ // make sure the semaphore is only manipulated here and Acquire
+ // + Release calls are equally paired.
+ b.sem.Release()
+ <-b.pendingRequests
+ }()
// Do the thing.
thunk()
// Report success
return true
}
}
+
+// UpdateConcurrency updates the maximum number of in-flight requests.
+func (b *Breaker) UpdateConcurrency(size int32) error {
+ return b.sem.UpdateCapacity(size)
+}
+
+// Capacity returns the number of allowed in-flight requests on this breaker.
+func (b *Breaker) Capacity() int32 {
+ return b.sem.Capacity()
+}
+
+// newSemaphore creates a semaphore with the desired maximal and initial capacity.
+// Maximal capacity is the size of the buffered channel, it defines maximum number of tokens
+// in the rotation. Attempting to add more capacity then the max will result in error.
+// Initial capacity is the initial number of free tokens.
+func newSemaphore(maxCapacity, initialCapacity int32) *semaphore {
+ if initialCapacity < 0 || initialCapacity > maxCapacity {
+ panic(fmt.Sprintf("Initial capacity must be between 0 and maximal capacity. Got %v.", initialCapacity))
+ }
+ queue := make(chan struct{}, maxCapacity)
+ sem := &semaphore{queue: queue}
+ if initialCapacity > 0 {
+ sem.UpdateCapacity(initialCapacity)
+ }
+ return sem
+}
+
+// semaphore is an implementation of a semaphore based on Go channels.
+// The presence of elements in the `queue` buffered channel correspond to available tokens.
+// Hence the max number of tokens to hand out equals to the size of the channel.
+// `capacity` defines the current number of tokens in the rotation.
+type semaphore struct {
+ queue chan struct{}
+ reducers int32
+ capacity int32
+ mux sync.Mutex
+}
+
+// Acquire receives the token from the semaphore, potentially blocking.
+func (s *semaphore) Acquire() {
+ <-s.queue
+}
+
+// Release potentially puts the token back to the queue.
+// If the semaphore capacity was reduced in between and is not yet reflected,
+// we remove the tokens from the rotation instead of returning them back.
+func (s *semaphore) Release() error {
+ s.mux.Lock()
+ defer s.mux.Unlock()
+
+ if s.reducers > 0 {
+ s.capacity--
+ s.reducers--
+ return nil
+ }
+
+ // We want to make sure releasing a token is always non-blocking.
+ select {
+ case s.queue <- struct{}{}:
+ return nil
+ default:
+ // This only happens if Release is called more often than Acquire.
+ return ErrRelease
+ }
+}
+
+// UpdateCapacity updates the capacity of the semaphore to the desired
+// size.
+func (s *semaphore) UpdateCapacity(size int32) error {
+ if size < 0 || size > int32(cap(s.queue)) {
+ return ErrUpdateCapacity
+ }
+
+ s.mux.Lock()
+ defer s.mux.Unlock()
+
+ if s.effectiveCapacity() == size {
+ return nil
+ }
+
+ // Add capacity until we reach size, potentially consuming
+ // outstanding reducers first.
+ for s.effectiveCapacity() < size {
+ if s.reducers > 0 {
+ s.reducers--
+ } else {
+ select {
+ case s.queue <- struct{}{}:
+ s.capacity++
+ default:
+ // This indicates that we're operating close to
+ // MaxCapacity and returned more tokens than we
+ // acquired.
+ return ErrUpdateCapacity
+ }
+ }
+ }
+
+ // Reduce capacity until we reach size, potentially adding
+ // new reducers if the queue channel is empty because of
+ // requests in-flight.
+ for s.effectiveCapacity() > size {
+ select {
+ case <-s.queue:
+ s.capacity--
+ default:
+ s.reducers++
+ }
+ }
+
+ return nil
+}
+
+// effectiveCapacity is the capacity with reducers taken into account.
+// `mux` must be held to call it.
+func (s *semaphore) effectiveCapacity() int32 {
+ return s.capacity - s.reducers
+}
+
+// Capacity is the effective capacity after taking reducers into
+// account.
+func (s *semaphore) Capacity() int32 {
+ s.mux.Lock()
+ defer s.mux.Unlock()
+
+ return s.effectiveCapacity()
+}
diff --git a/vendor/github.com/knative/serving/pkg/queue/constants.go b/vendor/github.com/knative/serving/pkg/queue/constants.go
index 4b707dc92b..21727f0491 100644
--- a/vendor/github.com/knative/serving/pkg/queue/constants.go
+++ b/vendor/github.com/knative/serving/pkg/queue/constants.go
@@ -17,31 +17,15 @@ limitations under the License.
package queue
const (
- // RequestQueuePortName specifies the port name to use for http requests
- // in queue-proxy container.
- RequestQueuePortName string = "queue-port"
-
- // RequestQueuePort specifies the port number to use for http requests
- // in queue-proxy container.
- RequestQueuePort = 8012
-
- // RequestQueueAdminPortName specifies the port name for
- // health check and lifecyle hooks for queue-proxy.
- RequestQueueAdminPortName string = "queueadm-port"
-
- // RequestQueueAdminPort specifies the port number for
- // health check and lifecyle hooks for queue-proxy.
- RequestQueueAdminPort = 8022
-
// RequestQueueQuitPath specifies the path to send quit request to
// queue-proxy. This is used for preStop hook of queue-proxy. It:
// - marks the service as not ready, so that requests will no longer
// be routed to it,
// - adds a small delay, so that the container doesn't get killed at
// the same time the pod is marked for removal.
- RequestQueueQuitPath = "quitquitquit"
+ RequestQueueQuitPath = "/quitquitquit"
// RequestQueueHealthPath specifies the path for health checks for
// queue-proxy.
- RequestQueueHealthPath = "health"
+ RequestQueueHealthPath = "/health"
)
diff --git a/vendor/github.com/knative/serving/pkg/queue/health/health_state.go b/vendor/github.com/knative/serving/pkg/queue/health/health_state.go
new file mode 100644
index 0000000000..faca50ee9f
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/queue/health/health_state.go
@@ -0,0 +1,107 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package health
+
+import (
+ "io"
+ "net/http"
+ "sync"
+)
+
+// State holds state about the current healthiness of the component.
+type State struct {
+ alive bool
+ shuttingDown bool
+ mutex sync.RWMutex
+}
+
+// IsAlive returns whether or not the health server is in a known
+// working state currently.
+func (h *State) IsAlive() bool {
+ h.mutex.RLock()
+ defer h.mutex.RUnlock()
+
+ return h.alive
+}
+
+// IsShuttingDown returns whether or not the health server is currently
+// shutting down.
+func (h *State) IsShuttingDown() bool {
+ h.mutex.RLock()
+ defer h.mutex.RUnlock()
+
+ return h.shuttingDown
+}
+
+// setAlive updates the state to declare the service alive.
+func (h *State) setAlive() {
+ h.mutex.Lock()
+ defer h.mutex.Unlock()
+
+ h.alive = true
+ h.shuttingDown = false
+}
+
+// shutdown updates the state to declare the service shutting down.
+func (h *State) shutdown() {
+ h.mutex.Lock()
+ defer h.mutex.Unlock()
+
+ h.alive = false
+ h.shuttingDown = true
+}
+
+// HealthHandler constructs a handler that returns the current state of
+// the health server.
+func (h *State) HealthHandler(prober func() bool) func(w http.ResponseWriter, r *http.Request) {
+ return func(w http.ResponseWriter, r *http.Request) {
+ sendAlive := func() {
+ io.WriteString(w, "alive: true")
+ }
+
+ sendNotAlive := func() {
+ w.WriteHeader(http.StatusBadRequest)
+ io.WriteString(w, "alive: false")
+ }
+
+ switch {
+ case h.IsAlive():
+ sendAlive()
+ case h.IsShuttingDown():
+ sendNotAlive()
+ case prober != nil && !prober():
+ sendNotAlive()
+ default:
+ h.setAlive()
+ sendAlive()
+ }
+ }
+}
+
+// QuitHandler constructs a handler that shuts the current server down.
+// Optional cleanup logic can be added via the given cleaner function.
+func (h *State) QuitHandler(cleaner func()) func(w http.ResponseWriter, r *http.Request) {
+ return func(w http.ResponseWriter, r *http.Request) {
+ h.shutdown()
+
+ if cleaner != nil {
+ cleaner()
+ }
+
+ io.WriteString(w, "alive: false")
+ }
+}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/resources/names/names.go b/vendor/github.com/knative/serving/pkg/queue/health/probe.go
similarity index 58%
rename from vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/resources/names/names.go
rename to vendor/github.com/knative/serving/pkg/queue/health/probe.go
index 90338f26e6..1eac18fe00 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/resources/names/names.go
+++ b/vendor/github.com/knative/serving/pkg/queue/health/probe.go
@@ -1,5 +1,5 @@
/*
-Copyright 2018 The Knative Authors
+Copyright 2019 The Knative Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,21 +14,21 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-package names
+package health
import (
- "fmt"
-
- "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ "net"
+ "time"
)
-func Revision(config *v1alpha1.Configuration) string {
- return fmt.Sprintf("%s-%05d", config.Name, config.Spec.Generation)
-}
-
-func Build(config *v1alpha1.Configuration) string {
- if config.Spec.Build == nil {
- return ""
+// TCPProbe checks that a TCP socket to the address can be opened.
+// Did not reuse k8s.io/kubernetes/pkg/probe/tcp to not create a dependency
+// on klog.
+func TCPProbe(addr string, socketTimeout time.Duration) error {
+ conn, err := net.DialTimeout("tcp", addr, socketTimeout)
+ if err != nil {
+ return err
}
- return Revision(config)
+ conn.Close()
+ return nil
}
diff --git a/vendor/github.com/knative/serving/pkg/queue/stats_reporter.go b/vendor/github.com/knative/serving/pkg/queue/stats_reporter.go
new file mode 100644
index 0000000000..474c2b3088
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/queue/stats_reporter.go
@@ -0,0 +1,173 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package queue
+
+import (
+ "context"
+ "errors"
+ "time"
+
+ "go.opencensus.io/stats"
+ "go.opencensus.io/stats/view"
+ "go.opencensus.io/tag"
+)
+
+// Measurement type for reporting.
+type Measurement int
+
+const (
+ // ViewReportingPeriod is the interval of time between reporting aggregated views.
+ ViewReportingPeriod = time.Second
+ // ReporterReportingPeriod is the interval of time between reporting stats by queue proxy.
+ // It should be equal to or larger than ViewReportingPeriod so that no stat
+ // will be dropped if LastValue aggregation is used for a view.
+ ReporterReportingPeriod = time.Second
+
+ operationsPerSecondN = "operations_per_second"
+ averageConcurrentRequestsN = "average_concurrent_requests"
+
+ // OperationsPerSecondM number of operations per second.
+ OperationsPerSecondM Measurement = iota
+ // AverageConcurrentRequestsM average number of requests currently being handled by this pod.
+ AverageConcurrentRequestsM
+)
+
+var (
+ measurements = []*stats.Float64Measure{
+ // TODO(#2524): make reporting period accurate.
+ OperationsPerSecondM: stats.Float64(
+ operationsPerSecondN,
+ "Number of operations per second",
+ stats.UnitNone),
+ AverageConcurrentRequestsM: stats.Float64(
+ averageConcurrentRequestsN,
+ "Number of requests currently being handled by this pod",
+ stats.UnitNone),
+ }
+)
+
+// Reporter structure represents a prometheus exporter.
+type Reporter struct {
+ Initialized bool
+ ctx context.Context
+ configTagKey tag.Key
+ namespaceTagKey tag.Key
+ revisionTagKey tag.Key
+ podTagKey tag.Key
+}
+
+// NewStatsReporter creates a reporter that collects and reports queue metrics.
+func NewStatsReporter(namespace string, config string, revision string, pod string) (*Reporter, error) {
+ if len(namespace) < 1 {
+ return nil, errors.New("Namespace must not be empty")
+ }
+ if len(config) < 1 {
+ return nil, errors.New("Config must not be empty")
+ }
+ if len(revision) < 1 {
+ return nil, errors.New("Revision must not be empty")
+ }
+ if len(pod) < 1 {
+ return nil, errors.New("Pod must not be empty")
+ }
+
+ // Create the tag keys that will be used to add tags to our measurements.
+ nsTag, err := tag.NewKey("destination_namespace")
+ if err != nil {
+ return nil, err
+ }
+ configTag, err := tag.NewKey("destination_configuration")
+ if err != nil {
+ return nil, err
+ }
+ revTag, err := tag.NewKey("destination_revision")
+ if err != nil {
+ return nil, err
+ }
+ podTag, err := tag.NewKey("destination_pod")
+ if err != nil {
+ return nil, err
+ }
+
+ // Create views to see our measurements. This can return an error if
+ // a previously-registered view has the same name with a different value.
+ // View name defaults to the measure name if unspecified.
+ err = view.Register(
+ &view.View{
+ Description: "Number of requests received since last Stat",
+ Measure: measurements[OperationsPerSecondM],
+ Aggregation: view.LastValue(),
+ TagKeys: []tag.Key{nsTag, configTag, revTag, podTag},
+ },
+ &view.View{
+ Description: "Number of requests currently being handled by this pod",
+ Measure: measurements[AverageConcurrentRequestsM],
+ Aggregation: view.LastValue(),
+ TagKeys: []tag.Key{nsTag, configTag, revTag, podTag},
+ },
+ )
+ if err != nil {
+ return nil, err
+ }
+
+ ctx, err := tag.New(
+ context.Background(),
+ tag.Insert(nsTag, namespace),
+ tag.Insert(configTag, config),
+ tag.Insert(revTag, revision),
+ tag.Insert(podTag, pod),
+ )
+ if err != nil {
+ return nil, err
+ }
+ return &Reporter{
+ Initialized: true,
+
+ ctx: ctx,
+ namespaceTagKey: nsTag,
+ configTagKey: configTag,
+ revisionTagKey: revTag,
+ podTagKey: podTag,
+ }, nil
+}
+
+// Report captures request metrics.
+func (r *Reporter) Report(operationsPerSecond float64, averageConcurrentRequests float64) error {
+ if !r.Initialized {
+ return errors.New("StatsReporter is not Initialized yet")
+ }
+ stats.Record(r.ctx, measurements[OperationsPerSecondM].M(operationsPerSecond))
+ stats.Record(r.ctx, measurements[AverageConcurrentRequestsM].M(averageConcurrentRequests))
+ return nil
+}
+
+// UnregisterViews Unregister views.
+func (r *Reporter) UnregisterViews() error {
+ if r.Initialized != true {
+ return errors.New("Reporter is not initialized")
+ }
+ var views []*view.View
+ if v := view.Find(operationsPerSecondN); v != nil {
+ views = append(views, v)
+ }
+ if v := view.Find(averageConcurrentRequestsN); v != nil {
+ views = append(views, v)
+ }
+ view.Unregister(views...)
+ r.Initialized = false
+ return nil
+}
diff --git a/vendor/github.com/knative/serving/pkg/queue/timeout.go b/vendor/github.com/knative/serving/pkg/queue/timeout.go
new file mode 100644
index 0000000000..ad9fca0150
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/queue/timeout.go
@@ -0,0 +1,180 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package queue
+
+import (
+ "bufio"
+ "context"
+ "io"
+ "net"
+ "net/http"
+ "sync"
+ "time"
+
+ "github.com/knative/pkg/websocket"
+)
+
+var defaultTimeoutBody = "Timeout Timeout "
+
+// TimeToFirstByteTimeoutHandler returns a Handler that runs `h` with the
+// given time limit in which the first byte of the response must be written.
+//
+// The new Handler calls h.ServeHTTP to handle each request, but if a
+// call runs for longer than its time limit, the handler responds with
+// a 503 Service Unavailable error and the given message in its body.
+// (If msg is empty, a suitable default message will be sent.)
+// After such a timeout, writes by h to its ResponseWriter will return
+// ErrHandlerTimeout.
+//
+// A panic from the underlying handler is propagated as-is to be able to
+// make use of custom panic behavior by HTTP handlers. See
+// https://golang.org/pkg/net/http/#Handler.
+//
+// The implementation is largely inspired by http.TimeoutHandler.
+func TimeToFirstByteTimeoutHandler(h http.Handler, dt time.Duration, msg string) http.Handler {
+ return &timeoutHandler{
+ handler: h,
+ body: msg,
+ dt: dt,
+ }
+}
+
+type timeoutHandler struct {
+ handler http.Handler
+ body string
+ dt time.Duration
+}
+
+func (h *timeoutHandler) errorBody() string {
+ if h.body != "" {
+ return h.body
+ }
+ return defaultTimeoutBody
+}
+
+func (h *timeoutHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
+ ctx, cancelCtx := context.WithCancel(r.Context())
+ defer cancelCtx()
+
+ done := make(chan struct{})
+ // The recovery value of a panic is written to this channel to be
+ // propagated (panicked with) again.
+ panicChan := make(chan interface{}, 1)
+ defer close(panicChan)
+
+ tw := &timeoutWriter{w: w}
+ go func() {
+ // The defer statements are executed in LIFO order,
+ // so recover will execute first, then only, the channel will be closed.
+ defer close(done)
+ defer func() {
+ if p := recover(); p != nil {
+ panicChan <- p
+ }
+ }()
+ h.handler.ServeHTTP(tw, r.WithContext(ctx))
+ }()
+
+ timeout := time.After(h.dt)
+ for {
+ select {
+ case p := <-panicChan:
+ panic(p)
+ case <-done:
+ return
+ case <-timeout:
+ if tw.TimeoutAndWriteError(h.errorBody()) {
+ return
+ }
+ }
+ }
+}
+
+// timeoutWriter is a wrapper around an http.ResponseWriter. It guards
+// writing an error response to whether or not the underlying writer has
+// already been written to.
+//
+// If the underlying writer has not been written to, an error response is
+// returned. If it has already been written to, the error is ignored and
+// the response is allowed to continue.
+type timeoutWriter struct {
+ w http.ResponseWriter
+
+ mu sync.Mutex
+ timedOut bool
+ wroteOnce bool
+}
+
+var _ http.Flusher = (*timeoutWriter)(nil)
+
+var _ http.ResponseWriter = (*timeoutWriter)(nil)
+
+func (tw *timeoutWriter) Flush() {
+ tw.w.(http.Flusher).Flush()
+}
+
+// Hijack calls Hijack() on the wrapped http.ResponseWriter if it implements
+// http.Hijacker interface, which is required for net/http/httputil/reverseproxy
+// to handle connection upgrade/switching protocol. Otherwise returns an error.
+func (tw *timeoutWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) {
+ return websocket.HijackIfPossible(tw.w)
+}
+
+func (tw *timeoutWriter) Header() http.Header { return tw.w.Header() }
+
+func (tw *timeoutWriter) Write(p []byte) (int, error) {
+ tw.mu.Lock()
+ defer tw.mu.Unlock()
+ if tw.timedOut {
+ return 0, http.ErrHandlerTimeout
+ }
+
+ tw.wroteOnce = true
+ return tw.w.Write(p)
+}
+
+func (tw *timeoutWriter) WriteHeader(code int) {
+ tw.mu.Lock()
+ defer tw.mu.Unlock()
+ if tw.timedOut {
+ return
+ }
+
+ tw.wroteOnce = true
+ tw.w.WriteHeader(code)
+}
+
+// TimeoutAndError writes an error to the response write if
+// nothing has been written on the writer before. Returns whether
+// an error was written or not.
+//
+// If this writes an error, all subsequent calls to Write will
+// result in http.ErrHandlerTimeout.
+func (tw *timeoutWriter) TimeoutAndWriteError(msg string) bool {
+ tw.mu.Lock()
+ defer tw.mu.Unlock()
+
+ if !tw.wroteOnce {
+ tw.w.WriteHeader(http.StatusServiceUnavailable)
+ io.WriteString(tw.w, msg)
+
+ tw.timedOut = true
+ return true
+ }
+
+ return false
+}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/filter.go b/vendor/github.com/knative/serving/pkg/reconciler/filter.go
new file mode 100644
index 0000000000..c819a8d0cd
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/reconciler/filter.go
@@ -0,0 +1,48 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package reconciler
+
+import (
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+// AnnotationFilterFunc creates a FilterFunc only accepting objects with given annotation key and value
+func AnnotationFilterFunc(key string, value string, allowUnset bool) func(interface{}) bool {
+ return func(obj interface{}) bool {
+ if mo, ok := obj.(metav1.Object); ok {
+ anno := mo.GetAnnotations()
+ annoVal, ok := anno[key]
+ if !ok {
+ return allowUnset
+ }
+ return annoVal == value
+ }
+ return false
+ }
+}
+
+// LabelExistsFilterFunc creates a FilterFunc only accepting objects which have a given label.
+func LabelExistsFilterFunc(label string) func(obj interface{}) bool {
+ return func(obj interface{}) bool {
+ if mo, ok := obj.(metav1.Object); ok {
+ labels := mo.GetLabels()
+ _, ok := labels[label]
+ return ok
+ }
+ return false
+ }
+}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/helper.go b/vendor/github.com/knative/serving/pkg/reconciler/helper.go
deleted file mode 100644
index e4337abd45..0000000000
--- a/vendor/github.com/knative/serving/pkg/reconciler/helper.go
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-Copyright 2018 The Knative Authors
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package reconciler
-
-import (
- "k8s.io/apimachinery/pkg/api/meta"
- "k8s.io/apimachinery/pkg/runtime"
- "k8s.io/apimachinery/pkg/runtime/schema"
-)
-
-type Callback func(interface{})
-
-// TODO(mattmoor): Move this into knative/pkg/controller
-func EnsureTypeMeta(f Callback, gvk schema.GroupVersionKind) Callback {
- apiVersion, kind := gvk.ToAPIVersionAndKind()
-
- return func(untyped interface{}) {
- // TODO(mattmoor): Use a kmeta.Accessor based on getObject
- // in pkg/controller.go first, to support deletes.
- typed, ok := untyped.(runtime.Object)
- if !ok {
- return
- }
- // We need to populated TypeMeta, but cannot trample
- // the informer's copy.
- copy := typed.DeepCopyObject()
-
- accessor, err := meta.TypeAccessor(copy)
- if err != nil {
- return
- }
-
- accessor.SetAPIVersion(apiVersion)
- accessor.SetKind(kind)
- f(copy)
- }
-}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/names.go b/vendor/github.com/knative/serving/pkg/reconciler/names.go
index 729831af11..80f1a68941 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/names.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/names.go
@@ -16,12 +16,27 @@ limitations under the License.
package reconciler
-import "fmt"
+import (
+ "fmt"
+ "strings"
+
+ "github.com/knative/serving/pkg/utils"
+)
+
+const suffix = "-service"
+
+// GetK8sServiceFullname returns service full name
func GetK8sServiceFullname(name string, namespace string) string {
- return fmt.Sprintf("%s.%s.svc.cluster.local", name, namespace)
+ return fmt.Sprintf("%s.%s.svc.%s", name, namespace, utils.GetClusterDomainName())
}
+// GetServingK8SServiceNameForObj returns the service name for the object
func GetServingK8SServiceNameForObj(name string) string {
- return name + "-service"
+ return name + suffix
+}
+
+// GetServingRevisionNameForK8sService returns the revision name from the service name
+func GetServingRevisionNameForK8sService(name string) string {
+ return strings.TrimSuffix(name, suffix)
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/reconciler.go b/vendor/github.com/knative/serving/pkg/reconciler/reconciler.go
index 03ade64dd1..177ce6248d 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/reconciler.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/reconciler.go
@@ -19,8 +19,13 @@ package reconciler
import (
"time"
+ "go.uber.org/zap"
+ corev1 "k8s.io/api/core/v1"
"k8s.io/client-go/dynamic"
+ "k8s.io/client-go/kubernetes"
"k8s.io/client-go/kubernetes/scheme"
+ typedcorev1 "k8s.io/client-go/kubernetes/typed/core/v1"
+ "k8s.io/client-go/tools/record"
cachingclientset "github.com/knative/caching/pkg/client/clientset/versioned"
sharedclientset "github.com/knative/pkg/client/clientset/versioned"
@@ -28,11 +33,6 @@ import (
"github.com/knative/pkg/logging/logkey"
clientset "github.com/knative/serving/pkg/client/clientset/versioned"
servingScheme "github.com/knative/serving/pkg/client/clientset/versioned/scheme"
- "go.uber.org/zap"
- corev1 "k8s.io/api/core/v1"
- "k8s.io/client-go/kubernetes"
- typedcorev1 "k8s.io/client-go/kubernetes/typed/core/v1"
- "k8s.io/client-go/tools/record"
)
// Options defines the common reconciler options.
@@ -44,6 +44,8 @@ type Options struct {
ServingClientSet clientset.Interface
DynamicClientSet dynamic.Interface
CachingClientSet cachingclientset.Interface
+ Recorder record.EventRecorder
+ StatsReporter StatsReporter
ConfigMapWatcher configmap.Watcher
Logger *zap.SugaredLogger
@@ -84,6 +86,9 @@ type Base struct {
// Kubernetes API.
Recorder record.EventRecorder
+ // StatsReporter reports reconciler's metrics.
+ StatsReporter StatsReporter
+
// Sugared logger is easier to use but is not as performant as the
// raw logger. In performance critical paths, call logger.Desugar()
// and use the returned raw logger instead. In addition to the
@@ -98,13 +103,26 @@ func NewBase(opt Options, controllerAgentName string) *Base {
// Enrich the logs with controller name
logger := opt.Logger.Named(controllerAgentName).With(zap.String(logkey.ControllerType, controllerAgentName))
- // Create event broadcaster
- logger.Debug("Creating event broadcaster")
- eventBroadcaster := record.NewBroadcaster()
- eventBroadcaster.StartLogging(logger.Named("event-broadcaster").Infof)
- eventBroadcaster.StartRecordingToSink(&typedcorev1.EventSinkImpl{Interface: opt.KubeClientSet.CoreV1().Events("")})
- recorder := eventBroadcaster.NewRecorder(
- scheme.Scheme, corev1.EventSource{Component: controllerAgentName})
+ recorder := opt.Recorder
+ if recorder == nil {
+ // Create event broadcaster
+ logger.Debug("Creating event broadcaster")
+ eventBroadcaster := record.NewBroadcaster()
+ eventBroadcaster.StartLogging(logger.Named("event-broadcaster").Infof)
+ eventBroadcaster.StartRecordingToSink(&typedcorev1.EventSinkImpl{Interface: opt.KubeClientSet.CoreV1().Events("")})
+ recorder = eventBroadcaster.NewRecorder(
+ scheme.Scheme, corev1.EventSource{Component: controllerAgentName})
+ }
+
+ statsReporter := opt.StatsReporter
+ if statsReporter == nil {
+ logger.Debug("Creating stats reporter")
+ var err error
+ statsReporter, err = NewStatsReporter(controllerAgentName)
+ if err != nil {
+ panic(err)
+ }
+ }
base := &Base{
KubeClientSet: opt.KubeClientSet,
@@ -114,6 +132,7 @@ func NewBase(opt Options, controllerAgentName string) *Base {
CachingClientSet: opt.CachingClientSet,
ConfigMapWatcher: opt.ConfigMapWatcher,
Recorder: recorder,
+ StatsReporter: statsReporter,
Logger: logger,
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/stats_reporter.go b/vendor/github.com/knative/serving/pkg/reconciler/stats_reporter.go
new file mode 100644
index 0000000000..4bf3ffbb08
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/reconciler/stats_reporter.go
@@ -0,0 +1,127 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package reconciler
+
+import (
+ "context"
+ "fmt"
+ "time"
+
+ "go.opencensus.io/stats"
+ "go.opencensus.io/stats/view"
+ "go.opencensus.io/tag"
+)
+
+type Measurement int
+
+const (
+ // ServiceReadyCountN is the number of services that have become ready.
+ ServiceReadyCountN = "service_ready_count"
+ // ServiceReadyLatencyN is the time it takes for a service to become ready since the resource is created.
+ ServiceReadyLatencyN = "service_ready_latency"
+)
+
+var (
+ serviceReadyLatencyStat = stats.Int64(
+ ServiceReadyLatencyN,
+ "Time it takes for a service to become ready since created",
+ stats.UnitMilliseconds)
+ serviceReadyCountStat = stats.Int64(
+ ServiceReadyCountN,
+ "Number of services that became ready",
+ stats.UnitDimensionless)
+
+ reconcilerTagKey tag.Key
+ keyTagKey tag.Key
+)
+
+func init() {
+ var err error
+ // Create the tag keys that will be used to add tags to our measurements.
+ // Tag keys must conform to the restrictions described in
+ // go.opencensus.io/tag/validate.go. Currently those restrictions are:
+ // - length between 1 and 255 inclusive
+ // - characters are printable US-ASCII
+ reconcilerTagKey = mustNewTagKey("reconciler")
+ keyTagKey = mustNewTagKey("key")
+
+ // Create views to see our measurements. This can return an error if
+ // a previously-registered view has the same name with a different value.
+ // View name defaults to the measure name if unspecified.
+ err = view.Register(
+ &view.View{
+ Description: serviceReadyCountStat.Description(),
+ Measure: serviceReadyCountStat,
+ Aggregation: view.Count(),
+ TagKeys: []tag.Key{reconcilerTagKey, keyTagKey},
+ },
+ &view.View{
+ Description: serviceReadyLatencyStat.Description(),
+ Measure: serviceReadyLatencyStat,
+ Aggregation: view.LastValue(),
+ TagKeys: []tag.Key{reconcilerTagKey, keyTagKey},
+ },
+ )
+ if err != nil {
+ panic(err)
+ }
+}
+
+// StatsReporter reports reconcilers' metrics.
+type StatsReporter interface {
+ // ReportServiceReady reports the time it took a service to become Ready.
+ ReportServiceReady(namespace, service string, d time.Duration) error
+}
+
+type reporter struct {
+ ctx context.Context
+}
+
+// NewStatsReporter creates a reporter for reconcilers' metrics
+func NewStatsReporter(reconciler string) (StatsReporter, error) {
+ ctx, err := tag.New(
+ context.Background(),
+ tag.Insert(reconcilerTagKey, reconciler))
+ if err != nil {
+ return nil, err
+ }
+ return &reporter{ctx: ctx}, nil
+}
+
+// ReportServiceReady reports the time it took a service to become Ready
+func (r *reporter) ReportServiceReady(namespace, service string, d time.Duration) error {
+ key := fmt.Sprintf("%s/%s", namespace, service)
+ v := int64(d / time.Millisecond)
+ ctx, err := tag.New(
+ r.ctx,
+ tag.Insert(keyTagKey, key))
+ if err != nil {
+ return err
+ }
+
+ stats.Record(ctx, serviceReadyCountStat.M(1))
+ stats.Record(ctx, serviceReadyLatencyStat.M(v))
+ return nil
+}
+
+func mustNewTagKey(s string) tag.Key {
+ tagKey, err := tag.NewKey(s)
+ if err != nil {
+ panic(err)
+ }
+ return tagKey
+}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/testing/actions.go b/vendor/github.com/knative/serving/pkg/reconciler/testing/actions.go
index cfce064961..a5fdd5f2e6 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/testing/actions.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/testing/actions.go
@@ -23,10 +23,11 @@ import (
)
type Actions struct {
- Creates []clientgotesting.CreateAction
- Updates []clientgotesting.UpdateAction
- Deletes []clientgotesting.DeleteAction
- Patches []clientgotesting.PatchAction
+ Creates []clientgotesting.CreateAction
+ Updates []clientgotesting.UpdateAction
+ Deletes []clientgotesting.DeleteAction
+ DeleteCollections []clientgotesting.DeleteCollectionAction
+ Patches []clientgotesting.PatchAction
}
type ActionRecorder interface {
@@ -50,6 +51,9 @@ func (l ActionRecorderList) ActionsByVerb() (Actions, error) {
case "delete":
a.Deletes = append(a.Deletes,
action.(clientgotesting.DeleteAction))
+ case "delete-collection":
+ a.DeleteCollections = append(a.DeleteCollections,
+ action.(clientgotesting.DeleteCollectionAction))
case "patch":
a.Patches = append(a.Patches,
action.(clientgotesting.PatchAction))
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/testing/configmap.go b/vendor/github.com/knative/serving/pkg/reconciler/testing/configmap.go
index a14d15994a..6cb233aaaf 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/testing/configmap.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/testing/configmap.go
@@ -16,15 +16,31 @@ package testing
import (
"fmt"
"io/ioutil"
+ "strings"
"testing"
"github.com/ghodss/yaml"
corev1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/util/sets"
)
+// TODO(mattmoor): Move this into `knative/pkg/configmap`
+const exampleKey = "_example"
+
// ConfigMapFromTestFile creates a v1.ConfigMap from a YAML file
// It loads the YAML file from the testdata folder.
-func ConfigMapFromTestFile(t *testing.T, name string) *corev1.ConfigMap {
+func ConfigMapFromTestFile(t *testing.T, name string, allowed ...string) *corev1.ConfigMap {
+ t.Helper()
+
+ cm, _ := ConfigMapsFromTestFile(t, name, allowed...)
+ return cm
+}
+
+// configMapsFromTestFile creates two corev1.ConfigMap resources from the config
+// file read from the testdata directory:
+// 1. The raw configmap read in.
+// 2. A second version of the configmap augmenting `data:` with what's parsed from the value of `_example:`
+func ConfigMapsFromTestFile(t *testing.T, name string, allowed ...string) (*corev1.ConfigMap, *corev1.ConfigMap) {
t.Helper()
b, err := ioutil.ReadFile(fmt.Sprintf("testdata/%s.yaml", name))
@@ -32,13 +48,51 @@ func ConfigMapFromTestFile(t *testing.T, name string) *corev1.ConfigMap {
t.Fatalf("ReadFile() = %v", err)
}
- var cm corev1.ConfigMap
+ var orig corev1.ConfigMap
// Use github.com/ghodss/yaml since it reads json struct
// tags so things unmarshal properly
- if err := yaml.Unmarshal(b, &cm); err != nil {
+ if err := yaml.Unmarshal(b, &orig); err != nil {
t.Fatalf("yaml.Unmarshal() = %v", err)
}
- return &cm
+ // We expect each of the allowed keys, and a key holding an example
+ // configuration for us to validate.
+ allowed = append(allowed, exampleKey)
+
+ if len(orig.Data) != len(allowed) {
+ // See here for why we only check in empty ConfigMaps:
+ // https://github.com/knative/serving/issues/2668
+ t.Errorf("Data = %v, wanted %v", orig.Data, allowed)
+ }
+ allow := sets.NewString(allowed...)
+ for key := range orig.Data {
+ if !allow.Has(key) {
+ t.Errorf("Encountered key %q in %q that wasn't on the allowed list", key, name)
+ }
+ }
+ // With the length and membership checks, we know that the keyspace matches.
+
+ exampleBody := orig.Data[exampleKey]
+ // Check that exampleBody does not have lines that end in a trailing space,
+ for i, line := range strings.Split(exampleBody, "\n") {
+ if strings.HasSuffix(line, " ") {
+ t.Errorf("line %d of %q example contains trailing spaces", i, name)
+ }
+ }
+
+ // Parse exampleBody into exemplar.Data
+ exemplar := orig.DeepCopy()
+ if err := yaml.Unmarshal([]byte(exampleBody), &exemplar.Data); err != nil {
+ t.Fatalf("yaml.Unmarshal() = %v", err)
+ }
+ // Augment the sample with actual configuration
+ for k, v := range orig.Data {
+ if _, ok := exemplar.Data[k]; ok {
+ continue
+ }
+ exemplar.Data[k] = v
+ }
+
+ return &orig, exemplar
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/testing/events.go b/vendor/github.com/knative/serving/pkg/reconciler/testing/events.go
new file mode 100644
index 0000000000..ad80e4cf80
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/reconciler/testing/events.go
@@ -0,0 +1,44 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package testing
+
+import (
+ "fmt"
+
+ "k8s.io/client-go/tools/record"
+)
+
+// EventList exports all events during reconciliation through fake event recorder
+// with event channel with buffer of given size.
+type EventList struct {
+ Recorder *record.FakeRecorder
+}
+
+// Events iterates over events received from channel in fake event recorder and returns all.
+func (l EventList) Events() []string {
+ close(l.Recorder.Events)
+ events := []string{}
+ for e := range l.Recorder.Events {
+ events = append(events, e)
+ }
+ return events
+}
+
+// Eventf formats as FakeRecorder does.
+func Eventf(eventType, reason, messageFmt string, args ...interface{}) string {
+ return fmt.Sprintf(eventType+" "+reason+" "+messageFmt, args...)
+}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/testing/generate_name_reactor.go b/vendor/github.com/knative/serving/pkg/reconciler/testing/generate_name_reactor.go
new file mode 100644
index 0000000000..3476fbb280
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/reconciler/testing/generate_name_reactor.go
@@ -0,0 +1,86 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package testing
+
+import (
+ "fmt"
+ "sync/atomic"
+
+ "k8s.io/apimachinery/pkg/api/meta"
+ "k8s.io/apimachinery/pkg/runtime"
+ clientgotesting "k8s.io/client-go/testing"
+)
+
+// GenerateNameReactor will simulate the k8s API server
+// and generate a name for resources who's metadata.generateName
+// property is set. This happens only for CreateAction types
+//
+// This generator is deterministic (unliked k8s) and uses a global
+// counter to help make test names predictable
+type GenerateNameReactor struct {
+ count int64
+}
+
+// Handles contains all the logic to generate the name and mutates
+// the create action object
+//
+// This is a hack as 'React' is passed a DeepCopy of the action hence
+// this is the only opportunity to 'mutate' the action in the
+// ReactionChain and have to continue executing additional reactors
+//
+// We should push changes upstream to client-go to help us with
+// mocking
+func (r *GenerateNameReactor) Handles(action clientgotesting.Action) bool {
+ create, ok := action.(clientgotesting.CreateAction)
+
+ if !ok {
+ return false
+ }
+
+ objMeta, err := meta.Accessor(create.GetObject())
+
+ if err != nil {
+ return false
+ }
+
+ if objMeta.GetName() != "" {
+ return false
+ }
+
+ if objMeta.GetGenerateName() == "" {
+ return false
+ }
+
+ val := atomic.AddInt64(&r.count, 1)
+
+ objMeta.SetName(fmt.Sprintf("%s%05d", objMeta.GetGenerateName(), val))
+
+ return false
+}
+
+// React is noop-function
+func (r *GenerateNameReactor) React(action clientgotesting.Action) (handled bool, ret runtime.Object, err error) {
+ return false, nil, nil
+}
+
+var _ clientgotesting.Reactor = (*GenerateNameReactor)(nil)
+
+// PrependGenerateNameReactor will instrument a client-go testing Fake
+// with a reactor that simulates 'generateName' functionality
+func PrependGenerateNameReactor(f *clientgotesting.Fake) {
+ f.ReactionChain = append([]clientgotesting.Reactor{&GenerateNameReactor{}}, f.ReactionChain...)
+}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/testing/hooks.go b/vendor/github.com/knative/serving/pkg/reconciler/testing/hooks.go
index 650a624e7b..f84feeb6a3 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/testing/hooks.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/testing/hooks.go
@@ -18,7 +18,7 @@ limitations under the License.
package testing
import (
- "fmt"
+ "errors"
"sync/atomic"
"time"
@@ -134,28 +134,24 @@ func (h *Hooks) OnDelete(fake *kubetesting.Fake, resource string, rf DeleteHookF
// WaitForHooks waits until all attached hooks have returned true at least once.
// If the given timeout expires before that happens, an error is returned.
func (h *Hooks) WaitForHooks(timeout time.Duration) error {
- if h.completionIndex == -1 {
+ ci := int(atomic.LoadInt32(&h.completionIndex))
+ if ci == -1 {
return nil
}
+ // Convert index to count.
+ ci++
timer := time.After(timeout)
- hookCompletions := make([]HookResult, h.completionIndex+1)
+ hookCompletions := map[int32]HookResult{}
for {
- res := true
- for _, r := range hookCompletions {
- if !r {
- res = false
- break
- }
- }
- if res {
- h.completionIndex = -1
- return nil
- }
select {
case i := <-h.completionCh:
hookCompletions[i] = HookComplete
+ if len(hookCompletions) == ci {
+ atomic.StoreInt32(&h.completionIndex, -1)
+ return nil
+ }
case <-timer:
- return fmt.Errorf("Timed out waiting for hooks to complete")
+ return errors.New("timed out waiting for hooks to complete")
}
}
}
diff --git a/vendor/github.com/knative/build/pkg/builder/validation/error.go b/vendor/github.com/knative/serving/pkg/reconciler/testing/stats.go
similarity index 53%
rename from vendor/github.com/knative/build/pkg/builder/validation/error.go
rename to vendor/github.com/knative/serving/pkg/reconciler/testing/stats.go
index 876e11de15..53e34cef31 100644
--- a/vendor/github.com/knative/build/pkg/builder/validation/error.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/testing/stats.go
@@ -14,25 +14,27 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-// Package validation provides methods to surface validation errors.
-package validation
+package testing
-import "fmt"
+import (
+ "fmt"
+ "time"
+)
-// Error is for use with a FooInvalid Status Condition.
-type Error struct {
- Reason string
- Message string
+// FakeStatsReporter is a fake implementation of StatsReporter
+type FakeStatsReporter struct {
+ servicesReady map[string]int
}
-func (ve *Error) Error() string {
- return fmt.Sprintf("%s: %s", ve.Reason, ve.Message)
+func (r *FakeStatsReporter) ReportServiceReady(namespace, service string, d time.Duration) error {
+ key := fmt.Sprintf("%s/%s", namespace, service)
+ if r.servicesReady == nil {
+ r.servicesReady = make(map[string]int)
+ }
+ r.servicesReady[key]++
+ return nil
}
-// NewError returns a new validation error.
-func NewError(reason, format string, fmtArgs ...interface{}) error {
- return &Error{
- Reason: reason,
- Message: fmt.Sprintf(format, fmtArgs...),
- }
+func (r *FakeStatsReporter) GetServiceReadyStats() map[string]int {
+ return r.servicesReady
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/testing/table.go b/vendor/github.com/knative/serving/pkg/reconciler/testing/table.go
index 89ede4f987..d8bfd7a4ae 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/testing/table.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/testing/table.go
@@ -18,12 +18,16 @@ package testing
import (
"context"
+ "path"
+ "reflect"
"strings"
"testing"
"github.com/google/go-cmp/cmp"
"github.com/google/go-cmp/cmp/cmpopts"
"github.com/knative/pkg/controller"
+ "github.com/knative/pkg/kmeta"
+ _ "github.com/knative/pkg/system/testing" // Setup system.Namespace()
"k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
@@ -52,12 +56,25 @@ type TableRow struct {
// WantUpdates holds the set of Update calls we expect during reconciliation.
WantUpdates []clientgotesting.UpdateActionImpl
+ // WantStatusUpdates holds the set of Update calls, with `status` subresource set,
+ // that we expect during reconciliation.
+ WantStatusUpdates []clientgotesting.UpdateActionImpl
+
// WantDeletes holds the set of Delete calls we expect during reconciliation.
WantDeletes []clientgotesting.DeleteActionImpl
- // WantPatches holds the set of Patch calls we expect during reconcilliation
+ // WantDeleteCollections holds the set of DeleteCollection calls we expect during reconciliation.
+ WantDeleteCollections []clientgotesting.DeleteCollectionActionImpl
+
+ // WantPatches holds the set of Patch calls we expect during reconciliation.
WantPatches []clientgotesting.PatchActionImpl
+ // WantEvents holds the set of events we expect during reconciliation.
+ WantEvents []string
+
+ // WantServiceReadyStats holds the ServiceReady stats we exepect during reconciliation.
+ WantServiceReadyStats map[string]int
+
// WithReactors is a set of functions that are installed as Reactors for the execution
// of this row of the table-driven-test.
WithReactors []clientgotesting.ReactionFunc
@@ -67,10 +84,21 @@ type TableRow struct {
SkipNamespaceValidation bool
}
-type Factory func(*testing.T, *TableRow) (controller.Reconciler, ActionRecorderList)
+func objKey(o runtime.Object) string {
+ on := o.(kmeta.Accessor)
+ // namespace + name is not unique, and the tests don't populate k8s kind
+ // information, so use GoLang's type name as part of the key.
+ return path.Join(reflect.TypeOf(o).String(), on.GetNamespace(), on.GetName())
+}
+
+// Factory returns a Reconciler.Interface to perform reconciliation in table test,
+// ActionRecorderList/EventList to capture k8s actions/events produced during reconciliation
+// and FakeStatsReporter to capture stats.
+type Factory func(*testing.T, *TableRow) (controller.Reconciler, ActionRecorderList, EventList, *FakeStatsReporter)
+// Test executes the single table test.
func (r *TableRow) Test(t *testing.T, factory Factory) {
- c, recorderList := factory(t, r)
+ c, recorderList, eventList, statsReporter := factory(t, r)
// Run the Reconcile we're testing.
if err := c.Reconcile(context.TODO(), r.Key); (err != nil) != r.WantErr {
@@ -85,18 +113,27 @@ func (r *TableRow) Test(t *testing.T, factory Factory) {
t.Errorf("Error capturing actions by verb: %q", err)
}
+ // Previous state is used to diff resource expected state for update requests that were missed.
+ objPrevState := map[string]runtime.Object{}
+ for _, o := range r.Objects {
+ objPrevState[objKey(o)] = o
+ }
+
for i, want := range r.WantCreates {
if i >= len(actions.Creates) {
t.Errorf("Missing create: %#v", want)
continue
}
got := actions.Creates[i]
+ obj := got.GetObject()
+ objPrevState[objKey(obj)] = obj
+
if !r.SkipNamespaceValidation && got.GetNamespace() != expectedNamespace {
- t.Errorf("unexpected action[%d]: %#v", i, got)
+ t.Errorf("Unexpected action[%d]: %#v", i, got)
}
- obj := got.GetObject()
+
if diff := cmp.Diff(want, obj, ignoreLastTransitionTime, safeDeployDiff, cmpopts.EquateEmpty()); diff != "" {
- t.Errorf("unexpected create (-want +got): %s", diff)
+ t.Errorf("Unexpected create (-want, +got): %s", diff)
}
}
if got, want := len(actions.Creates), len(r.WantCreates); got > want {
@@ -105,22 +142,83 @@ func (r *TableRow) Test(t *testing.T, factory Factory) {
}
}
+ updates := filterUpdatesWithSubresource("", actions.Updates)
for i, want := range r.WantUpdates {
- if i >= len(actions.Updates) {
- t.Errorf("Missing update: %#v", want.GetObject())
+ if i >= len(updates) {
+ wo := want.GetObject()
+ key := objKey(wo)
+ oldObj, ok := objPrevState[key]
+ if !ok {
+ t.Errorf("Object %s was never created: want: %#v", key, wo)
+ continue
+ }
+ t.Errorf("Missing update for %s (-want, +prevState): %s", key,
+ cmp.Diff(oldObj, wo, ignoreLastTransitionTime, safeDeployDiff, cmpopts.EquateEmpty()))
continue
}
- got := actions.Updates[i]
- if diff := cmp.Diff(want.GetObject(), got.GetObject(), ignoreLastTransitionTime, safeDeployDiff, cmpopts.EquateEmpty()); diff != "" {
- t.Errorf("unexpected update (-want +got): %s", diff)
+
+ if want.GetSubresource() != "" {
+ t.Errorf("Expectation was invalid - it should not include a subresource: %#v", want)
+ }
+
+ got := updates[i].GetObject()
+
+ // Update the object state.
+ objPrevState[objKey(got)] = got
+
+ if diff := cmp.Diff(want.GetObject(), got, ignoreLastTransitionTime, safeDeployDiff, cmpopts.EquateEmpty()); diff != "" {
+ t.Errorf("Unexpected update (-want, +got): %s", diff)
}
}
- if got, want := len(actions.Updates), len(r.WantUpdates); got > want {
- for _, extra := range actions.Updates[want:] {
+ if got, want := len(updates), len(r.WantUpdates); got > want {
+ for _, extra := range updates[want:] {
t.Errorf("Extra update: %#v", extra)
}
}
+ // TODO(#2843): refactor.
+ statusUpdates := filterUpdatesWithSubresource("status", actions.Updates)
+ for i, want := range r.WantStatusUpdates {
+ if i >= len(statusUpdates) {
+ wo := want.GetObject()
+ key := objKey(wo)
+ oldObj, ok := objPrevState[key]
+ if !ok {
+ t.Errorf("Object %s was never created: want: %#v", key, wo)
+ continue
+ }
+ t.Errorf("Missing status update for %s (-want, +prevState): %s", key,
+ cmp.Diff(oldObj, wo, ignoreLastTransitionTime, safeDeployDiff, cmpopts.EquateEmpty()))
+ continue
+ }
+
+ got := statusUpdates[i].GetObject()
+
+ // Update the object state.
+ objPrevState[objKey(got)] = got
+
+ if diff := cmp.Diff(want.GetObject(), got, ignoreLastTransitionTime, safeDeployDiff, cmpopts.EquateEmpty()); diff != "" {
+ t.Errorf("Unexpected status update (-want, +got): %s", diff)
+ }
+ }
+ if got, want := len(statusUpdates), len(r.WantStatusUpdates); got > want {
+ for _, extra := range statusUpdates[want:] {
+ t.Errorf("Extra status update: %#v", extra)
+ }
+ }
+
+ if len(statusUpdates)+len(updates) != len(actions.Updates) {
+ var unexpected []clientgotesting.UpdateAction
+
+ for _, update := range actions.Updates {
+ if update.GetSubresource() != "status" && update.GetSubresource() != "" {
+ unexpected = append(unexpected, update)
+ }
+ }
+
+ t.Errorf("Unexpected subresource updates occurred %#v", unexpected)
+ }
+
for i, want := range r.WantDeletes {
if i >= len(actions.Deletes) {
t.Errorf("Missing delete: %#v", want)
@@ -128,10 +226,10 @@ func (r *TableRow) Test(t *testing.T, factory Factory) {
}
got := actions.Deletes[i]
if got.GetName() != want.GetName() {
- t.Errorf("unexpected delete[%d]: %#v", i, got)
+ t.Errorf("Unexpected delete[%d]: %#v", i, got)
}
if !r.SkipNamespaceValidation && got.GetNamespace() != expectedNamespace {
- t.Errorf("unexpected delete[%d]: %#v", i, got)
+ t.Errorf("Unexpected delete[%d]: %#v", i, got)
}
}
if got, want := len(actions.Deletes), len(r.WantDeletes); got > want {
@@ -140,32 +238,90 @@ func (r *TableRow) Test(t *testing.T, factory Factory) {
}
}
+ for i, want := range r.WantDeleteCollections {
+ if i >= len(actions.DeleteCollections) {
+ t.Errorf("Missing delete-collection: %#v", want)
+ continue
+ }
+ got := actions.DeleteCollections[i]
+ if got, want := got.GetListRestrictions().Labels, want.GetListRestrictions().Labels; (got != nil) != (want != nil) || got.String() != want.String() {
+ t.Errorf("Unexpected delete-collection[%d].Labels = %v, wanted %v", i, got, want)
+ }
+ // TODO(mattmoor): Add this if/when we need support.
+ if got := got.GetListRestrictions().Fields; got.String() != "" {
+ t.Errorf("Unexpected delete-collection[%d].Fields = %v, wanted ''", i, got)
+ }
+ if !r.SkipNamespaceValidation && got.GetNamespace() != expectedNamespace {
+ t.Errorf("Unexpected delete-collection[%d]: %#v, wanted %s", i, got, expectedNamespace)
+ }
+ }
+ if got, want := len(actions.DeleteCollections), len(r.WantDeleteCollections); got > want {
+ for _, extra := range actions.DeleteCollections[want:] {
+ t.Errorf("Extra delete-collection: %#v", extra)
+ }
+ }
+
for i, want := range r.WantPatches {
if i >= len(actions.Patches) {
- t.Errorf("Missing patch: %#v", want)
+ t.Errorf("Missing patch: %#v; raw: %s", want, string(want.GetPatch()))
continue
}
got := actions.Patches[i]
if got.GetName() != want.GetName() {
- t.Errorf("unexpected patch[%d]: %#v", i, got)
+ t.Errorf("Unexpected patch[%d]: %#v", i, got)
}
if !r.SkipNamespaceValidation && got.GetNamespace() != expectedNamespace {
- t.Errorf("unexpected patch[%d]: %#v", i, got)
+ t.Errorf("Unexpected patch[%d]: %#v", i, got)
}
if diff := cmp.Diff(string(want.GetPatch()), string(got.GetPatch())); diff != "" {
- t.Errorf("unexpected patch(-want +got): %s", diff)
+ t.Errorf("Unexpected patch(-want, +got): %s", diff)
}
}
if got, want := len(actions.Patches), len(r.WantPatches); got > want {
for _, extra := range actions.Patches[want:] {
- t.Errorf("Extra patch: %#v", extra)
+ t.Errorf("Extra patch: %#v; raw: %s", extra, string(extra.GetPatch()))
+ }
+ }
+
+ gotEvents := eventList.Events()
+ for i, want := range r.WantEvents {
+ if i >= len(gotEvents) {
+ t.Errorf("Missing event: %s", want)
+ continue
+ }
+
+ if diff := cmp.Diff(want, gotEvents[i]); diff != "" {
+ t.Errorf("unexpected event(-want, +got): %s", diff)
+ }
+ }
+ if got, want := len(gotEvents), len(r.WantEvents); got > want {
+ for _, extra := range gotEvents[want:] {
+ t.Errorf("Extra event: %s", extra)
}
}
+
+ gotStats := statsReporter.GetServiceReadyStats()
+ if diff := cmp.Diff(r.WantServiceReadyStats, gotStats); diff != "" {
+ t.Errorf("Unexpected service ready stats (-want, +got): %s", diff)
+ }
}
+func filterUpdatesWithSubresource(
+ subresource string,
+ actions []clientgotesting.UpdateAction) (result []clientgotesting.UpdateAction) {
+ for _, action := range actions {
+ if action.GetSubresource() == subresource {
+ result = append(result, action)
+ }
+ }
+ return
+}
+
+// TableTest represents a list of TableRow tests instances.
type TableTest []TableRow
+// Test executes the whole suite of the table tests.
func (tt TableTest) Test(t *testing.T, factory Factory) {
for _, test := range tt {
// Record the original objects in table.
@@ -178,13 +334,15 @@ func (tt TableTest) Test(t *testing.T, factory Factory) {
})
// Validate cached objects do not get soiled after controller loops
if diff := cmp.Diff(originObjects, test.Objects, safeDeployDiff, cmpopts.EquateEmpty()); diff != "" {
- t.Errorf("Unexpected objects in test %s (-want +got): %v", test.Name, diff)
+ t.Errorf("Unexpected objects in test %s (-want, +got): %v", test.Name, diff)
}
}
}
-var ignoreLastTransitionTime = cmp.FilterPath(func(p cmp.Path) bool {
- return strings.HasSuffix(p.String(), "LastTransitionTime.Inner.Time")
-}, cmp.Ignore())
+var (
+ ignoreLastTransitionTime = cmp.FilterPath(func(p cmp.Path) bool {
+ return strings.HasSuffix(p.String(), "LastTransitionTime.Inner.Time")
+ }, cmp.Ignore())
-var safeDeployDiff = cmpopts.IgnoreUnexported(resource.Quantity{})
+ safeDeployDiff = cmpopts.IgnoreUnexported(resource.Quantity{})
+)
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/autoscaling.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/autoscaling.go
deleted file mode 100644
index 39cc9a25be..0000000000
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/autoscaling.go
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
-Copyright 2018 The Knative Authors
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package autoscaling
-
-import (
- "context"
- "fmt"
- "reflect"
-
- "github.com/knative/pkg/controller"
- "github.com/knative/pkg/logging"
- "go.uber.org/zap"
- corev1 "k8s.io/api/core/v1"
- "k8s.io/apimachinery/pkg/api/equality"
- "k8s.io/apimachinery/pkg/api/errors"
- "k8s.io/apimachinery/pkg/util/runtime"
- corev1informers "k8s.io/client-go/informers/core/v1"
- corev1listers "k8s.io/client-go/listers/core/v1"
- "k8s.io/client-go/tools/cache"
-
- "github.com/knative/serving/pkg/apis/autoscaling"
- kpa "github.com/knative/serving/pkg/apis/autoscaling/v1alpha1"
- "github.com/knative/serving/pkg/autoscaler"
- informers "github.com/knative/serving/pkg/client/informers/externalversions/autoscaling/v1alpha1"
- listers "github.com/knative/serving/pkg/client/listers/autoscaling/v1alpha1"
- "github.com/knative/serving/pkg/reconciler"
-)
-
-const (
- controllerAgentName = "autoscaling-controller"
-)
-
-// KPAMetrics is an interface for notifying the presence or absence of KPAs.
-type KPAMetrics interface {
- // Get accesses the Metric resource for this key, returning any errors.
- Get(ctx context.Context, key string) (*autoscaler.Metric, error)
-
- // Create adds a Metric resource for a given key, returning any errors.
- Create(ctx context.Context, kpa *kpa.PodAutoscaler) (*autoscaler.Metric, error)
-
- // Delete removes the Metric resource for a given key, returning any errors.
- Delete(ctx context.Context, key string) error
-
- // Watch registers a function to call when Metrics change.
- Watch(watcher func(string))
-}
-
-// KPAScaler knows how to scale the targets of KPAs
-type KPAScaler interface {
- // Scale attempts to scale the given KPA's target to the desired scale.
- Scale(ctx context.Context, kpa *kpa.PodAutoscaler, desiredScale int32) error
-}
-
-// Reconciler tracks KPAs and right sizes the ScaleTargetRef based on the
-// information from KPAMetrics.
-type Reconciler struct {
- *reconciler.Base
-
- kpaLister listers.PodAutoscalerLister
- endpointsLister corev1listers.EndpointsLister
-
- kpaMetrics KPAMetrics
- kpaScaler KPAScaler
-}
-
-// Check that our Reconciler implements controller.Reconciler
-var _ controller.Reconciler = (*Reconciler)(nil)
-
-// NewController creates an autoscaling Controller.
-func NewController(
- opts *reconciler.Options,
-
- kpaInformer informers.PodAutoscalerInformer,
- endpointsInformer corev1informers.EndpointsInformer,
-
- kpaMetrics KPAMetrics,
- kpaScaler KPAScaler,
-) *controller.Impl {
-
- c := &Reconciler{
- Base: reconciler.NewBase(*opts, controllerAgentName),
- kpaLister: kpaInformer.Lister(),
- endpointsLister: endpointsInformer.Lister(),
- kpaMetrics: kpaMetrics,
- kpaScaler: kpaScaler,
- }
- impl := controller.NewImpl(c, c.Logger, "Autoscaling", reconciler.MustNewStatsReporter("Autoscaling", c.Logger))
-
- c.Logger.Info("Setting up event handlers")
- kpaInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
- AddFunc: impl.Enqueue,
- UpdateFunc: controller.PassNew(impl.Enqueue),
- DeleteFunc: impl.Enqueue,
- })
-
- endpointsInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
- AddFunc: c.EnqueueEndpointsKPA(impl),
- UpdateFunc: controller.PassNew(c.EnqueueEndpointsKPA(impl)),
- })
-
- // Have the KPAMetrics enqueue the KPAs whose metrics have changed.
- kpaMetrics.Watch(impl.EnqueueKey)
-
- return impl
-}
-
-func (c *Reconciler) EnqueueEndpointsKPA(impl *controller.Impl) func(obj interface{}) {
- return func(obj interface{}) {
- endpoints := obj.(*corev1.Endpoints)
- // Use the label on the Endpoints (from Service) to determine the KPA
- // with which it is associated, and if so queue that KPA.
- if kpaName, ok := endpoints.Labels[autoscaling.KPALabelKey]; ok {
- impl.EnqueueKey(endpoints.Namespace + "/" + kpaName)
- }
- }
-}
-
-// Reconcile right sizes KPA ScaleTargetRefs based on the state of metrics in KPAMetrics.
-func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
- namespace, name, err := cache.SplitMetaNamespaceKey(key)
- if err != nil {
- runtime.HandleError(fmt.Errorf("invalid resource key %s: %v", key, err))
- return nil
- }
- logger := logging.FromContext(ctx)
- logger.Debug("Reconcile KPA")
-
- original, err := c.kpaLister.PodAutoscalers(namespace).Get(name)
- if errors.IsNotFound(err) {
- logger.Debug("KPA no longer exists")
- return c.kpaMetrics.Delete(ctx, key)
- } else if err != nil {
- return err
- }
- // Don't modify the informer's copy.
- kpa := original.DeepCopy()
-
- // Reconcile this copy of the kpa and then write back any status
- // updates regardless of whether the reconciliation errored out.
- err = c.reconcile(ctx, key, kpa)
- if equality.Semantic.DeepEqual(original.Status, kpa.Status) {
- // If we didn't change anything then don't call updateStatus.
- // This is important because the copy we loaded from the informer's
- // cache may be stale and we don't want to overwrite a prior update
- // to status with this stale state.
- } else {
- // logger.Infof("Updating Status (-old, +new): %v", cmp.Diff(original, kpa))
- if _, err := c.updateStatus(kpa); err != nil {
- logger.Warn("Failed to update kpa status", zap.Error(err))
- return err
- }
- }
- return err
-}
-
-func (c *Reconciler) reconcile(ctx context.Context, key string, kpa *kpa.PodAutoscaler) error {
- logger := logging.FromContext(ctx)
-
- kpa.Status.InitializeConditions()
- logger.Debug("KPA exists")
-
- metric, err := c.kpaMetrics.Get(ctx, key)
- if errors.IsNotFound(err) {
- metric, err = c.kpaMetrics.Create(ctx, kpa)
- if err != nil {
- logger.Errorf("Error creating Metric: %v", err)
- return err
- }
- } else if err != nil {
- logger.Errorf("Error fetching Metric: %v", err)
- return err
- }
-
- // Get the appropriate current scale from the metric, and right size
- // the scaleTargetRef based on it.
- if err := c.kpaScaler.Scale(ctx, kpa, metric.DesiredScale); err != nil {
- logger.Errorf("Error scaling target: %v", err)
- return err
- }
-
- // Compare the desired and observed resources to determine our situation.
- got := 0
-
- // Look up the Endpoints resource to determine the available resources.
- endpoints, err := c.endpointsLister.Endpoints(kpa.Namespace).Get(kpa.Spec.ServiceName)
- if errors.IsNotFound(err) {
- // Treat not found as zero endpoints, it either hasn't been created
- // or it has been torn down.
- } else if err != nil {
- logger.Errorf("Error checking Endpoints %q: %v", kpa.Spec.ServiceName, err)
- return err
- } else {
- for _, es := range endpoints.Subsets {
- got += len(es.Addresses)
- }
- }
- want := metric.DesiredScale
- logger.Infof("KPA got=%v, want=%v", got, want)
-
- switch {
- case want == 0:
- kpa.Status.MarkInactive("NoTraffic", "The target is not receiving traffic.")
-
- case got == 0 && want > 0:
- kpa.Status.MarkActivating(
- "Queued", "Requests to the target are being buffered as resources are provisioned.")
-
- case got > 0 || want == -1:
- kpa.Status.MarkActive()
- }
-
- return nil
-}
-
-func (c *Reconciler) updateStatus(desired *kpa.PodAutoscaler) (*kpa.PodAutoscaler, error) {
- kpa, err := c.kpaLister.PodAutoscalers(desired.Namespace).Get(desired.Name)
- if err != nil {
- return nil, err
- }
- // Check if there is anything to update.
- if !reflect.DeepEqual(kpa.Status, desired.Status) {
- // Don't modify the informers copy
- existing := kpa.DeepCopy()
- existing.Status = desired.Status
-
- // TODO: for CRD there's no updatestatus, so use normal update
- return c.ServingClientSet.AutoscalingV1alpha1().PodAutoscalers(kpa.Namespace).Update(existing)
- // return prClient.UpdateStatus(newKPA)
- }
- return kpa, nil
-}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/hpa/hpa.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/hpa/hpa.go
new file mode 100644
index 0000000000..3430f200eb
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/hpa/hpa.go
@@ -0,0 +1,212 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package hpa
+
+import (
+ "context"
+ "fmt"
+ "reflect"
+
+ "github.com/knative/pkg/controller"
+ "github.com/knative/pkg/logging"
+ "github.com/knative/serving/pkg/apis/autoscaling"
+ pav1alpha1 "github.com/knative/serving/pkg/apis/autoscaling/v1alpha1"
+ informers "github.com/knative/serving/pkg/client/informers/externalversions/autoscaling/v1alpha1"
+ listers "github.com/knative/serving/pkg/client/listers/autoscaling/v1alpha1"
+ "github.com/knative/serving/pkg/reconciler"
+ "github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/hpa/resources"
+ "go.uber.org/zap"
+ "k8s.io/apimachinery/pkg/api/equality"
+ "k8s.io/apimachinery/pkg/api/errors"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/apimachinery/pkg/util/runtime"
+ autoscalingv1informers "k8s.io/client-go/informers/autoscaling/v1"
+ autoscalingv1listers "k8s.io/client-go/listers/autoscaling/v1"
+ "k8s.io/client-go/tools/cache"
+)
+
+const (
+ controllerAgentName = "hpa-class-podautoscaler-controller"
+)
+
+type Reconciler struct {
+ *reconciler.Base
+
+ paLister listers.PodAutoscalerLister
+ hpaLister autoscalingv1listers.HorizontalPodAutoscalerLister
+}
+
+var _ controller.Reconciler = (*Reconciler)(nil)
+
+func NewController(
+ opts *reconciler.Options,
+ paInformer informers.PodAutoscalerInformer,
+ hpaInformer autoscalingv1informers.HorizontalPodAutoscalerInformer,
+) *controller.Impl {
+ c := &Reconciler{
+ Base: reconciler.NewBase(*opts, controllerAgentName),
+ paLister: paInformer.Lister(),
+ hpaLister: hpaInformer.Lister(),
+ }
+ impl := controller.NewImpl(c, c.Logger, "HPA-Class Autoscaling", reconciler.MustNewStatsReporter("HPA-Class Autoscaling", c.Logger))
+
+ c.Logger.Info("Setting up hpa-class event handlers")
+ onlyHpaClass := reconciler.AnnotationFilterFunc(autoscaling.ClassAnnotationKey, autoscaling.HPA, false)
+ paInformer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{
+ FilterFunc: onlyHpaClass,
+ Handler: cache.ResourceEventHandlerFuncs{
+ AddFunc: impl.Enqueue,
+ UpdateFunc: controller.PassNew(impl.Enqueue),
+ DeleteFunc: impl.Enqueue,
+ },
+ })
+
+ hpaInformer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{
+ FilterFunc: onlyHpaClass,
+ Handler: cache.ResourceEventHandlerFuncs{
+ AddFunc: impl.EnqueueControllerOf,
+ UpdateFunc: controller.PassNew(impl.EnqueueControllerOf),
+ DeleteFunc: impl.EnqueueControllerOf,
+ },
+ })
+
+ return impl
+}
+
+func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
+ namespace, name, err := cache.SplitMetaNamespaceKey(key)
+ if err != nil {
+ runtime.HandleError(fmt.Errorf("invalid resource key %s: %v", key, err))
+ return nil
+ }
+ logger := logging.FromContext(ctx)
+ logger.Debug("Reconcile hpa-class PodAutoscaler")
+
+ original, err := c.paLister.PodAutoscalers(namespace).Get(name)
+ if errors.IsNotFound(err) {
+ logger.Debug("PA no longer exists")
+ return c.deleteHpa(ctx, key)
+ } else if err != nil {
+ return err
+ }
+
+ if original.Class() != autoscaling.HPA {
+ logger.Warn("Ignoring non-hpa-class PA")
+ return nil
+ }
+
+ // Don't modify the informer's copy.
+ pa := original.DeepCopy()
+ // Reconcile this copy of the pa and then write back any status
+ // updates regardless of whether the reconciliation errored out.
+ err = c.reconcile(ctx, key, pa)
+ if equality.Semantic.DeepEqual(original.Status, pa.Status) {
+ // If we didn't change anything then don't call updateStatus.
+ // This is important because the copy we loaded from the informer's
+ // cache may be stale and we don't want to overwrite a prior update
+ // to status with this stale state.
+ } else {
+ if _, err := c.updateStatus(pa); err != nil {
+ logger.Warn("Failed to update pa status", zap.Error(err))
+ return err
+ }
+ }
+ return err
+}
+
+func (c *Reconciler) reconcile(ctx context.Context, key string, pa *pav1alpha1.PodAutoscaler) error {
+ logger := logging.FromContext(ctx)
+
+ if pa.GetDeletionTimestamp() != nil {
+ return nil
+ }
+
+ // We may be reading a version of the object that was stored at an older version
+ // and may not have had all of the assumed defaults specified. This won't result
+ // in this getting written back to the API Server, but lets downstream logic make
+ // assumptions about defaulting.
+ pa.SetDefaults()
+
+ pa.Status.InitializeConditions()
+ logger.Debug("PA exists")
+
+ // HPA-class PAs don't yet support scale-to-zero
+ pa.Status.MarkActive()
+
+ // HPA-class PA delegates autoscaling to the Kubernetes Horizontal Pod Autoscaler.
+ desiredHpa := resources.MakeHPA(pa)
+ hpa, err := c.hpaLister.HorizontalPodAutoscalers(pa.Namespace).Get(desiredHpa.Name)
+ if errors.IsNotFound(err) {
+ logger.Infof("Creating HPA %q", desiredHpa.Name)
+ if _, err := c.KubeClientSet.AutoscalingV1().HorizontalPodAutoscalers(pa.Namespace).Create(desiredHpa); err != nil {
+ logger.Errorf("Error creating HPA %q: %v", desiredHpa.Name, err)
+ pa.Status.MarkResourceFailedCreation("HorizontalPodAutoscaler", desiredHpa.Name)
+ return err
+ }
+ } else if err != nil {
+ logger.Errorf("Error getting existing HPA %q: %v", desiredHpa.Name, err)
+ return err
+ } else if !metav1.IsControlledBy(hpa, pa) {
+ // Surface an error in the PodAutoscaler's status, and return an error.
+ pa.Status.MarkResourceNotOwned("HorizontalPodAutoscaler", desiredHpa.Name)
+ return fmt.Errorf("PodAutoscaler: %q does not own HPA: %q", pa.Name, desiredHpa.Name)
+ } else {
+ if !equality.Semantic.DeepEqual(desiredHpa.Spec, hpa.Spec) {
+ logger.Infof("Updating HPA %q", desiredHpa.Name)
+ if _, err := c.KubeClientSet.AutoscalingV1().HorizontalPodAutoscalers(pa.Namespace).Update(desiredHpa); err != nil {
+ logger.Errorf("Error updating HPA %q: %v", desiredHpa.Name, err)
+ return err
+ }
+ }
+ }
+ pa.Status.ObservedGeneration = pa.Generation
+ return nil
+}
+
+func (c *Reconciler) deleteHpa(ctx context.Context, key string) error {
+ logger := logging.FromContext(ctx)
+
+ namespace, name, err := cache.SplitMetaNamespaceKey(key)
+ if err != nil {
+ return err
+ }
+ err = c.KubeClientSet.AutoscalingV1().HorizontalPodAutoscalers(namespace).Delete(name, nil)
+ if errors.IsNotFound(err) {
+ // This is fine.
+ return nil
+ } else if err != nil {
+ logger.Errorf("Error deleting HPA %q: %v", name, err)
+ return err
+ }
+ logger.Infof("Deleted HPA %q", name)
+ return nil
+}
+
+func (c *Reconciler) updateStatus(desired *pav1alpha1.PodAutoscaler) (*pav1alpha1.PodAutoscaler, error) {
+ pa, err := c.paLister.PodAutoscalers(desired.Namespace).Get(desired.Name)
+ if err != nil {
+ return nil, err
+ }
+ // Check if there is anything to update.
+ if !reflect.DeepEqual(pa.Status, desired.Status) {
+ // Don't modify the informers copy
+ existing := pa.DeepCopy()
+ existing.Status = desired.Status
+ return c.ServingClientSet.AutoscalingV1alpha1().PodAutoscalers(pa.Namespace).UpdateStatus(existing)
+ }
+ return pa, nil
+}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/hpa/resources/hpa.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/hpa/resources/hpa.go
new file mode 100644
index 0000000000..e5c759a24e
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/hpa/resources/hpa.go
@@ -0,0 +1,53 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package resources
+
+import (
+ "math"
+
+ "github.com/knative/pkg/kmeta"
+ "github.com/knative/serving/pkg/apis/autoscaling/v1alpha1"
+ autoscalingv1 "k8s.io/api/autoscaling/v1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+func MakeHPA(pa *v1alpha1.PodAutoscaler) *autoscalingv1.HorizontalPodAutoscaler {
+ min, max := pa.ScaleBounds()
+ if max == 0 {
+ max = math.MaxInt32 // default to no limit
+ }
+ hpa := &autoscalingv1.HorizontalPodAutoscaler{
+ ObjectMeta: metav1.ObjectMeta{
+ Name: pa.Name,
+ Namespace: pa.Namespace,
+ Labels: pa.Labels,
+ Annotations: pa.Annotations,
+ OwnerReferences: []metav1.OwnerReference{*kmeta.NewControllerRef(pa)},
+ },
+ Spec: autoscalingv1.HorizontalPodAutoscalerSpec{
+ ScaleTargetRef: pa.Spec.ScaleTargetRef,
+ },
+ }
+ hpa.Spec.MaxReplicas = max
+ if min > 0 {
+ hpa.Spec.MinReplicas = &min
+ }
+ if target, ok := pa.Target(); ok {
+ hpa.Spec.TargetCPUUtilizationPercentage = &target
+ }
+ return hpa
+}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/doc.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa/doc.go
similarity index 85%
rename from vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/doc.go
rename to vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa/doc.go
index fe1adb4718..cbdc01f80f 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/doc.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa/doc.go
@@ -16,8 +16,8 @@ limitations under the License.
/*
-Package autoscaling implements a kubernetes controller which tracks revisions and
+Package kpa implements a kubernetes controller which tracks revisions and
notifies a callback interface.
*/
-package autoscaling
+package kpa
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa/kpa.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa/kpa.go
new file mode 100644
index 0000000000..68d04598e4
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa/kpa.go
@@ -0,0 +1,286 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package kpa
+
+import (
+ "context"
+ "fmt"
+ "reflect"
+
+ "github.com/knative/pkg/controller"
+ "github.com/knative/pkg/logging"
+ "github.com/knative/serving/pkg/apis/autoscaling"
+ pav1alpha1 "github.com/knative/serving/pkg/apis/autoscaling/v1alpha1"
+ "github.com/knative/serving/pkg/apis/serving"
+ "github.com/knative/serving/pkg/autoscaler"
+ informers "github.com/knative/serving/pkg/client/informers/externalversions/autoscaling/v1alpha1"
+ listers "github.com/knative/serving/pkg/client/listers/autoscaling/v1alpha1"
+ "github.com/knative/serving/pkg/reconciler"
+ "github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa/resources"
+ "go.uber.org/zap"
+ corev1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/api/equality"
+ "k8s.io/apimachinery/pkg/api/errors"
+ "k8s.io/apimachinery/pkg/util/runtime"
+ corev1informers "k8s.io/client-go/informers/core/v1"
+ corev1listers "k8s.io/client-go/listers/core/v1"
+ "k8s.io/client-go/tools/cache"
+)
+
+const (
+ controllerAgentName = "kpa-class-podautoscaler-controller"
+)
+
+// KPAMetrics is an interface for notifying the presence or absence of KPAs.
+type KPAMetrics interface {
+ // Get accesses the Metric resource for this key, returning any errors.
+ Get(ctx context.Context, namespace, name string) (*autoscaler.Metric, error)
+
+ // Create adds a Metric resource for a given key, returning any errors.
+ Create(ctx context.Context, metric *autoscaler.Metric) (*autoscaler.Metric, error)
+
+ // Delete removes the Metric resource for a given key, returning any errors.
+ Delete(ctx context.Context, namespace, name string) error
+
+ // Watch registers a function to call when Metrics change.
+ Watch(watcher func(string))
+
+ // Update update the Metric resource, return the new Metric or any errors.
+ Update(ctx context.Context, metric *autoscaler.Metric) (*autoscaler.Metric, error)
+}
+
+// KPAScaler knows how to scale the targets of kpa-class PodAutoscalers.
+type KPAScaler interface {
+ // Scale attempts to scale the given PA's target to the desired scale.
+ Scale(ctx context.Context, pa *pav1alpha1.PodAutoscaler, desiredScale int32) (int32, error)
+}
+
+// Reconciler tracks PAs and right sizes the ScaleTargetRef based on the
+// information from KPAMetrics.
+type Reconciler struct {
+ *reconciler.Base
+ paLister listers.PodAutoscalerLister
+ endpointsLister corev1listers.EndpointsLister
+ kpaMetrics KPAMetrics
+ kpaScaler KPAScaler
+ dynConfig *autoscaler.DynamicConfig
+}
+
+// Check that our Reconciler implements controller.Reconciler
+var _ controller.Reconciler = (*Reconciler)(nil)
+
+// NewController creates an autoscaling Controller.
+func NewController(
+ opts *reconciler.Options,
+ paInformer informers.PodAutoscalerInformer,
+ endpointsInformer corev1informers.EndpointsInformer,
+ kpaMetrics KPAMetrics,
+ kpaScaler KPAScaler,
+ dynConfig *autoscaler.DynamicConfig,
+) *controller.Impl {
+
+ c := &Reconciler{
+ Base: reconciler.NewBase(*opts, controllerAgentName),
+ paLister: paInformer.Lister(),
+ endpointsLister: endpointsInformer.Lister(),
+ kpaMetrics: kpaMetrics,
+ kpaScaler: kpaScaler,
+ dynConfig: dynConfig,
+ }
+ impl := controller.NewImpl(c, c.Logger, "KPA-Class Autoscaling", reconciler.MustNewStatsReporter("KPA-Class Autoscaling", c.Logger))
+
+ c.Logger.Info("Setting up kpa-class event handlers")
+ // Handler PodAutoscalers missing the class annotation for backward compatibility.
+ onlyKpaClass := reconciler.AnnotationFilterFunc(autoscaling.ClassAnnotationKey, autoscaling.KPA, true)
+ paInformer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{
+ FilterFunc: onlyKpaClass,
+ Handler: cache.ResourceEventHandlerFuncs{
+ AddFunc: impl.Enqueue,
+ UpdateFunc: controller.PassNew(impl.Enqueue),
+ DeleteFunc: impl.Enqueue,
+ },
+ })
+
+ endpointsInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
+ AddFunc: impl.EnqueueLabelOfNamespaceScopedResource("", autoscaling.KPALabelKey),
+ UpdateFunc: controller.PassNew(impl.EnqueueLabelOfNamespaceScopedResource("", autoscaling.KPALabelKey)),
+ DeleteFunc: impl.EnqueueLabelOfNamespaceScopedResource("", autoscaling.KPALabelKey),
+ })
+
+ // Have the KPAMetrics enqueue the PAs whose metrics have changed.
+ kpaMetrics.Watch(impl.EnqueueKey)
+
+ return impl
+}
+
+// Reconcile right sizes PA ScaleTargetRefs based on the state of metrics in KPAMetrics.
+func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
+ namespace, name, err := cache.SplitMetaNamespaceKey(key)
+ if err != nil {
+ runtime.HandleError(fmt.Errorf("invalid resource key %s: %v", key, err))
+ return nil
+ }
+ logger := logging.FromContext(ctx)
+ logger.Debug("Reconcile kpa-class PodAutoscaler")
+
+ original, err := c.paLister.PodAutoscalers(namespace).Get(name)
+ if errors.IsNotFound(err) {
+ logger.Debug("PA no longer exists")
+ return c.kpaMetrics.Delete(ctx, namespace, name)
+ } else if err != nil {
+ return err
+ }
+
+ if original.Class() != autoscaling.KPA {
+ logger.Warn("Ignoring non-kpa-class PA")
+ return nil
+ }
+
+ // Don't modify the informer's copy.
+ pa := original.DeepCopy()
+
+ // Reconcile this copy of the pa and then write back any status
+ // updates regardless of whether the reconciliation errored out.
+ err = c.reconcile(ctx, pa)
+ if equality.Semantic.DeepEqual(original.Status, pa.Status) {
+ // If we didn't change anything then don't call updateStatus.
+ // This is important because the copy we loaded from the informer's
+ // cache may be stale and we don't want to overwrite a prior update
+ // to status with this stale state.
+ } else if _, err := c.updateStatus(pa); err != nil {
+ logger.Warn("Failed to update kpa status", zap.Error(err))
+ c.Recorder.Eventf(pa, corev1.EventTypeWarning, "UpdateFailed",
+ "Failed to update status for PA %q: %v", pa.Name, err)
+ return err
+ }
+ return err
+}
+
+func (c *Reconciler) reconcile(ctx context.Context, pa *pav1alpha1.PodAutoscaler) error {
+ logger := logging.FromContext(ctx)
+
+ if pa.GetDeletionTimestamp() != nil {
+ return nil
+ }
+
+ // We may be reading a version of the object that was stored at an older version
+ // and may not have had all of the assumed defaults specified. This won't result
+ // in this getting written back to the API Server, but lets downstream logic make
+ // assumptions about defaulting.
+ pa.SetDefaults()
+
+ pa.Status.InitializeConditions()
+ logger.Debug("PA exists")
+
+ desiredMetric := resources.MakeMetric(ctx, pa, c.dynConfig.Current())
+ metric, err := c.kpaMetrics.Get(ctx, desiredMetric.Namespace, desiredMetric.Name)
+ if errors.IsNotFound(err) {
+ metric, err = c.kpaMetrics.Create(ctx, desiredMetric)
+ if err != nil {
+ logger.Errorf("Error creating Metric: %v", err)
+ return err
+ }
+ } else if err != nil {
+ logger.Errorf("Error fetching Metric: %v", err)
+ return err
+ }
+
+ // Ignore status when reconciling
+ desiredMetric.Status = metric.Status
+ if !equality.Semantic.DeepEqual(desiredMetric, metric) {
+ metric, err = c.kpaMetrics.Update(ctx, desiredMetric)
+ if err != nil {
+ logger.Errorf("Error update Metric: %v", err)
+ return err
+ }
+ }
+
+ // Get the appropriate current scale from the metric, and right size
+ // the scaleTargetRef based on it.
+ want, err := c.kpaScaler.Scale(ctx, pa, metric.Status.DesiredScale)
+ if err != nil {
+ logger.Errorf("Error scaling target: %v", err)
+ return err
+ }
+
+ // Compare the desired and observed resources to determine our situation.
+ got := 0
+
+ // Look up the Endpoints resource to determine the available resources.
+ endpoints, err := c.endpointsLister.Endpoints(pa.Namespace).Get(pa.Spec.ServiceName)
+ if errors.IsNotFound(err) {
+ // Treat not found as zero endpoints, it either hasn't been created
+ // or it has been torn down.
+ } else if err != nil {
+ logger.Errorf("Error checking Endpoints %q: %v", pa.Spec.ServiceName, err)
+ return err
+ } else {
+ for _, es := range endpoints.Subsets {
+ got += len(es.Addresses)
+ }
+ }
+
+ logger.Infof("PA got=%v, want=%v", got, want)
+
+ var serviceLabel string
+ var configLabel string
+ if pa.Labels != nil {
+ serviceLabel = pa.Labels[serving.ServiceLabelKey]
+ configLabel = pa.Labels[serving.ConfigurationLabelKey]
+ }
+ reporter, err := autoscaler.NewStatsReporter(pa.Namespace, serviceLabel, configLabel, pa.Name)
+ if err != nil {
+ return err
+ }
+
+ reporter.ReportActualPodCount(int64(got))
+ // negative "want" values represent an empty metrics pipeline and thus no specific request is being made
+ if want >= 0 {
+ reporter.ReportRequestedPodCount(int64(want))
+ }
+
+ switch {
+ case want == 0:
+ pa.Status.MarkInactive("NoTraffic", "The target is not receiving traffic.")
+
+ case got == 0 && want != 0:
+ pa.Status.MarkActivating(
+ "Queued", "Requests to the target are being buffered as resources are provisioned.")
+
+ case got > 0:
+ pa.Status.MarkActive()
+ }
+
+ pa.Status.ObservedGeneration = pa.Generation
+ return nil
+}
+
+func (c *Reconciler) updateStatus(desired *pav1alpha1.PodAutoscaler) (*pav1alpha1.PodAutoscaler, error) {
+ pa, err := c.paLister.PodAutoscalers(desired.Namespace).Get(desired.Name)
+ if err != nil {
+ return nil, err
+ }
+ // If there's nothing to update, just return.
+ if reflect.DeepEqual(pa.Status, desired.Status) {
+ return pa, nil
+ }
+ // Don't modify the informers copy
+ existing := pa.DeepCopy()
+ existing.Status = desired.Status
+
+ return c.ServingClientSet.AutoscalingV1alpha1().PodAutoscalers(pa.Namespace).UpdateStatus(existing)
+}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa_scaler.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa/kpa_scaler.go
similarity index 62%
rename from vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa_scaler.go
rename to vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa/kpa_scaler.go
index da54b8ce7f..4a48fac645 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa_scaler.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa/kpa_scaler.go
@@ -14,28 +14,30 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-package autoscaling
+package kpa
import (
"context"
+ "fmt"
"sync"
- "go.uber.org/zap"
- corev1 "k8s.io/api/core/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/runtime/schema"
- "k8s.io/client-go/scale"
-
"github.com/knative/pkg/apis"
"github.com/knative/pkg/configmap"
"github.com/knative/pkg/logging"
- kpa "github.com/knative/serving/pkg/apis/autoscaling/v1alpha1"
+ pav1alpha1 "github.com/knative/serving/pkg/apis/autoscaling/v1alpha1"
"github.com/knative/serving/pkg/apis/serving/v1alpha1"
"github.com/knative/serving/pkg/autoscaler"
clientset "github.com/knative/serving/pkg/client/clientset/versioned"
+ "go.uber.org/zap"
+ corev1 "k8s.io/api/core/v1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/apimachinery/pkg/runtime/schema"
+ "k8s.io/client-go/scale"
)
-// kpaScaler scales the target of a KPA up or down including scaling to zero.
+const ScaleUnknown = -1
+
+// kpaScaler scales the target of a kpa-class PA up or down including scaling to zero.
type kpaScaler struct {
servingClientSet clientset.Interface
scaleClientSet scale.ScalesGetter
@@ -97,73 +99,93 @@ func applyBounds(min, max int32) func(int32) int32 {
}
}
-// Scale attempts to scale the given KPA's target reference to the desired scale.
-func (ks *kpaScaler) Scale(ctx context.Context, kpa *kpa.PodAutoscaler, desiredScale int32) error {
+// Scale attempts to scale the given PA's target reference to the desired scale.
+func (ks *kpaScaler) Scale(ctx context.Context, pa *pav1alpha1.PodAutoscaler, desiredScale int32) (int32, error) {
logger := logging.FromContext(ctx)
// TODO(mattmoor): Drop this once the KPA is the source of truth and we
// scale exclusively on metrics.
revGVK := v1alpha1.SchemeGroupVersion.WithKind("Revision")
- owner := metav1.GetControllerOf(kpa)
+ owner := metav1.GetControllerOf(pa)
if owner == nil || owner.Kind != revGVK.Kind ||
owner.APIVersion != revGVK.GroupVersion().String() {
- logger.Debug("KPA is not owned by a Revision.")
- return nil
+ logger.Debug("PA is not owned by a Revision.")
+ return desiredScale, nil
}
- gv, err := schema.ParseGroupVersion(kpa.Spec.ScaleTargetRef.APIVersion)
+ gv, err := schema.ParseGroupVersion(pa.Spec.ScaleTargetRef.APIVersion)
if err != nil {
- logger.Error("Unable to parse APIVersion.", zap.Error(err))
- return err
+ logger.Errorw("Unable to parse APIVersion", zap.Error(err))
+ return desiredScale, err
}
- resource := apis.KindToResource(gv.WithKind(kpa.Spec.ScaleTargetRef.Kind)).GroupResource()
- resourceName := kpa.Spec.ScaleTargetRef.Name
+ resource := apis.KindToResource(gv.WithKind(pa.Spec.ScaleTargetRef.Kind)).GroupResource()
+ resourceName := pa.Spec.ScaleTargetRef.Name
// Identify the current scale.
- scl, err := ks.scaleClientSet.Scales(kpa.Namespace).Get(resource, resourceName)
+ scl, err := ks.scaleClientSet.Scales(pa.Namespace).Get(resource, resourceName)
if err != nil {
- logger.Errorf("Resource %q not found.", resourceName, zap.Error(err))
- return err
+ logger.Errorw(fmt.Sprintf("Resource %q not found", resourceName), zap.Error(err))
+ return desiredScale, err
}
currentScale := scl.Spec.Replicas
+ if newScale := applyBounds(pa.ScaleBounds())(desiredScale); newScale != desiredScale {
+ logger.Debugf("Adjusting desiredScale: %v -> %v", desiredScale, newScale)
+ desiredScale = newScale
+ }
+
if desiredScale == 0 {
- // Scale to zero grace period.
- if !kpa.Status.CanScaleToZero(ks.getAutoscalerConfig().ScaleToZeroGracePeriod) {
- logger.Debug("Waiting for Active=False grace period.")
- return nil
+ // We should only scale to zero when both of the following conditions are true:
+ // a) The PA has been active for atleast the stable window, after which it gets marked inactive
+ // b) The PA has been inactive for atleast the grace period
+
+ config := ks.getAutoscalerConfig()
+
+ if pa.Status.IsActivating() { // Active=Unknown
+ // Don't scale-to-zero during activation
+ desiredScale = ScaleUnknown
+ } else if pa.Status.IsReady() { // Active=True
+ // Don't scale-to-zero if the PA is active
+
+ // Only let a revision be scaled to 0 if it's been active for at
+ // least the stable window's time.
+ if pa.Status.CanMarkInactive(config.StableWindow) {
+ return desiredScale, nil
+ }
+ // Otherwise, scale down to 1 until the idle period elapses
+ desiredScale = 1
+ } else { // Active=False
+ // Don't scale-to-zero if the grace period hasn't elapsed
+ if !pa.Status.CanScaleToZero(config.ScaleToZeroGracePeriod) {
+ return desiredScale, nil
+ }
}
}
// Scale from zero. When there are no metrics scale to 1.
- if currentScale == 0 && desiredScale == -1 {
+ if currentScale == 0 && desiredScale == ScaleUnknown {
logger.Debugf("Scaling up from 0 to 1")
desiredScale = 1
}
if desiredScale < 0 {
logger.Debug("Metrics are not yet being collected.")
- return nil
- }
-
- if newScale := applyBounds(kpa.ScaleBounds())(desiredScale); newScale != desiredScale {
- logger.Debugf("Adjusting desiredScale: %v -> %v", desiredScale, newScale)
- desiredScale = newScale
+ return desiredScale, nil
}
if desiredScale == currentScale {
- return nil
+ return desiredScale, nil
}
logger.Infof("Scaling from %d to %d", currentScale, desiredScale)
// Scale the target reference.
scl.Spec.Replicas = desiredScale
- _, err = ks.scaleClientSet.Scales(kpa.Namespace).Update(resource, scl)
+ _, err = ks.scaleClientSet.Scales(pa.Namespace).Update(resource, scl)
if err != nil {
logger.Errorf("Error scaling target reference %v.", resourceName, zap.Error(err))
- return err
+ return desiredScale, err
}
logger.Debug("Successfully scaled.")
- return nil
+ return desiredScale, nil
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa/resources/metric.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa/resources/metric.go
new file mode 100644
index 0000000000..ef17abe692
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/autoscaling/kpa/resources/metric.go
@@ -0,0 +1,52 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package resources
+
+import (
+ "context"
+
+ "github.com/knative/pkg/logging"
+ "github.com/knative/serving/pkg/apis/autoscaling/v1alpha1"
+ "github.com/knative/serving/pkg/autoscaler"
+)
+
+// MakeMetric constructs a Metric resource from a PodAutoscaler taking
+// into account the PA's ContainerConcurrency and the relevant
+// autoscaling annotation.
+func MakeMetric(ctx context.Context, pa *v1alpha1.PodAutoscaler, config *autoscaler.Config) *autoscaler.Metric {
+ logger := logging.FromContext(ctx)
+
+ target := config.TargetConcurrency(pa.Spec.ContainerConcurrency)
+ if mt, ok := pa.Target(); ok {
+ annotationTarget := float64(mt)
+ if annotationTarget > target {
+ // If the annotation target would cause the autoscaler to maintain
+ // more requests per pod than the container can handle, we ignore
+ // the annotation and use a containerConcurrency based target instead.
+ logger.Warnf("Ignoring target of %v because it would underprovision the Revision.", annotationTarget)
+ } else {
+ logger.Debugf("Using target of %v", annotationTarget)
+ target = annotationTarget
+ }
+ }
+ return &autoscaler.Metric{
+ ObjectMeta: pa.ObjectMeta,
+ Spec: autoscaler.MetricSpec{
+ TargetConcurrency: target,
+ },
+ }
+}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/clusteringress.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/clusteringress.go
index 5c3f2533a7..c5e9c07dfd 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/clusteringress.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/clusteringress.go
@@ -18,29 +18,41 @@ package clusteringress
import (
"context"
+ "fmt"
"reflect"
- "go.uber.org/zap"
- corev1 "k8s.io/api/core/v1"
- "k8s.io/apimachinery/pkg/api/equality"
- apierrs "k8s.io/apimachinery/pkg/api/errors"
- "k8s.io/client-go/tools/cache"
+ "k8s.io/apimachinery/pkg/util/sets"
"github.com/knative/pkg/apis/istio/v1alpha3"
istioinformers "github.com/knative/pkg/client/informers/externalversions/istio/v1alpha3"
istiolisters "github.com/knative/pkg/client/listers/istio/v1alpha3"
+ "github.com/knative/pkg/configmap"
"github.com/knative/pkg/controller"
"github.com/knative/pkg/logging"
"github.com/knative/serving/pkg/apis/networking"
"github.com/knative/serving/pkg/apis/networking/v1alpha1"
informers "github.com/knative/serving/pkg/client/informers/externalversions/networking/v1alpha1"
listers "github.com/knative/serving/pkg/client/listers/networking/v1alpha1"
+ "github.com/knative/serving/pkg/network"
"github.com/knative/serving/pkg/reconciler"
+ "github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config"
"github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/resources"
- "github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/resources/names"
+ "go.uber.org/zap"
+ corev1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/api/equality"
+ apierrs "k8s.io/apimachinery/pkg/api/errors"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/client-go/tools/cache"
+)
+
+const (
+ controllerAgentName = "clusteringress-controller"
)
-const controllerAgentName = "clusteringress-controller"
+type configStore interface {
+ ToContext(ctx context.Context) context.Context
+ WatchConfigs(w configmap.Watcher)
+}
// Reconciler implements controller.Reconciler for ClusterIngress resources.
type Reconciler struct {
@@ -49,6 +61,7 @@ type Reconciler struct {
// listers index properties about resources
clusterIngressLister listers.ClusterIngressLister
virtualServiceLister istiolisters.VirtualServiceLister
+ configStore configStore
}
// Check that our Reconciler implements controller.Reconciler
@@ -70,17 +83,31 @@ func NewController(
impl := controller.NewImpl(c, c.Logger, "ClusterIngresses", reconciler.MustNewStatsReporter("ClusterIngress", c.Logger))
c.Logger.Info("Setting up event handlers")
- clusterIngressInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
- AddFunc: impl.Enqueue,
- UpdateFunc: controller.PassNew(impl.Enqueue),
- DeleteFunc: impl.Enqueue,
+ myFilterFunc := reconciler.AnnotationFilterFunc(networking.IngressClassAnnotationKey, network.IstioIngressClassName, true)
+ clusterIngressInformer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{
+ FilterFunc: myFilterFunc,
+ Handler: cache.ResourceEventHandlerFuncs{
+ AddFunc: impl.Enqueue,
+ UpdateFunc: controller.PassNew(impl.Enqueue),
+ DeleteFunc: impl.Enqueue,
+ },
})
- virtualServiceInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
- AddFunc: c.enqueueOwnerIngress(impl),
- UpdateFunc: controller.PassNew(c.enqueueOwnerIngress(impl)),
+ virtualServiceInformer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{
+ FilterFunc: myFilterFunc,
+ Handler: cache.ResourceEventHandlerFuncs{
+ AddFunc: impl.EnqueueLabelOfClusterScopedResource(networking.IngressLabelKey),
+ UpdateFunc: controller.PassNew(impl.EnqueueLabelOfClusterScopedResource(networking.IngressLabelKey)),
+ DeleteFunc: impl.EnqueueLabelOfClusterScopedResource(networking.IngressLabelKey),
+ },
})
+ c.Logger.Info("Setting up ConfigMap receivers")
+ resyncIngressesOnIstioConfigChange := configmap.TypeFilter(&config.Istio{})(func(string, interface{}) {
+ impl.GlobalResync(clusterIngressInformer.Informer())
+ })
+ c.configStore = config.NewStore(c.Logger.Named("config-store"), resyncIngressesOnIstioConfigChange)
+ c.configStore.WatchConfigs(opt.ConfigMapWatcher)
return impl
}
@@ -96,6 +123,8 @@ func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
}
logger := logging.FromContext(ctx)
+ ctx = c.configStore.ToContext(ctx)
+
// Get the ClusterIngress resource with this name.
original, err := c.clusterIngressLister.Get(name)
if apierrs.IsNotFound(err) {
@@ -116,7 +145,7 @@ func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
// This is important because the copy we loaded from the informer's
// cache may be stale and we don't want to overwrite a prior update
// to status with this stale state.
- } else if _, err := c.updateStatus(ctx, ci); err != nil {
+ } else if _, err := c.updateStatus(ci); err != nil {
logger.Warn("Failed to update clusterIngress status", zap.Error(err))
c.Recorder.Eventf(ci, corev1.EventTypeWarning, "UpdateFailed",
"Failed to update status for ClusterIngress %q: %v", ci.Name, err)
@@ -127,7 +156,7 @@ func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
// Update the Status of the ClusterIngress. Caller is responsible for checking
// for semantic differences before calling.
-func (c *Reconciler) updateStatus(ctx context.Context, desired *v1alpha1.ClusterIngress) (*v1alpha1.ClusterIngress, error) {
+func (c *Reconciler) updateStatus(desired *v1alpha1.ClusterIngress) (*v1alpha1.ClusterIngress, error) {
ci, err := c.clusterIngressLister.Get(desired.Name)
if err != nil {
return nil, err
@@ -139,20 +168,23 @@ func (c *Reconciler) updateStatus(ctx context.Context, desired *v1alpha1.Cluster
// Don't modify the informers copy
existing := ci.DeepCopy()
existing.Status = desired.Status
- // TODO: for CRD there's no updatestatus, so use normal update.
- updated, err := c.ServingClientSet.NetworkingV1alpha1().ClusterIngresses().Update(existing)
- if err != nil {
- return nil, err
- }
-
- c.Recorder.Eventf(desired, corev1.EventTypeNormal, "Updated", "Updated status for clusterIngress %q", desired.Name)
- return updated, nil
+ return c.ServingClientSet.NetworkingV1alpha1().ClusterIngresses().UpdateStatus(existing)
}
func (c *Reconciler) reconcile(ctx context.Context, ci *v1alpha1.ClusterIngress) error {
logger := logging.FromContext(ctx)
+ if ci.GetDeletionTimestamp() != nil {
+ return nil
+ }
+
+ // We may be reading a version of the object that was stored at an older version
+ // and may not have had all of the assumed defaults specified. This won't result
+ // in this getting written back to the API Server, but lets downstream logic make
+ // assumptions about defaulting.
+ ci.SetDefaults()
+
ci.Status.InitializeConditions()
- vs := resources.MakeVirtualService(ci)
+ vs := resources.MakeVirtualService(ci, gatewayNamesFromContext(ctx, ci))
logger.Infof("Reconciling clusterIngress :%v", ci)
logger.Info("Creating/Updating VirtualService")
@@ -165,13 +197,66 @@ func (c *Reconciler) reconcile(ctx context.Context, ci *v1alpha1.ClusterIngress)
// here we simply mark the ingress as ready if the VirtualService
// is successfully synced.
ci.Status.MarkNetworkConfigured()
- ci.Status.MarkLoadBalancerReady([]v1alpha1.LoadBalancerIngressStatus{
- {DomainInternal: names.K8sGatewayServiceFullname},
- })
+ ci.Status.MarkLoadBalancerReady(getLBStatus(gatewayServiceURLFromContext(ctx, ci)))
+ ci.Status.ObservedGeneration = ci.Generation
logger.Info("ClusterIngress successfully synced")
return nil
}
+func getLBStatus(gatewayServiceURL string) []v1alpha1.LoadBalancerIngressStatus {
+ // The ClusterIngress isn't load-balanced by any particular
+ // Service, but through a Service mesh.
+ if gatewayServiceURL == "" {
+ return []v1alpha1.LoadBalancerIngressStatus{
+ {MeshOnly: true},
+ }
+ }
+ return []v1alpha1.LoadBalancerIngressStatus{
+ {DomainInternal: gatewayServiceURL},
+ }
+}
+
+// gatewayServiceURLFromContext return an address of a load-balancer
+// that the given ClusterIngress is exposed to, or empty string if
+// none.
+func gatewayServiceURLFromContext(ctx context.Context, ci *v1alpha1.ClusterIngress) string {
+ cfg := config.FromContext(ctx).Istio
+ if len(cfg.IngressGateways) > 0 && ci.IsPublic() {
+ return cfg.IngressGateways[0].ServiceURL
+ }
+ if len(cfg.LocalGateways) > 0 && !ci.IsPublic() {
+ return cfg.LocalGateways[0].ServiceURL
+ }
+ return ""
+}
+
+func gatewayNamesFromContext(ctx context.Context, ci *v1alpha1.ClusterIngress) []string {
+ gateways := []string{}
+ if ci.IsPublic() {
+ for _, gw := range config.FromContext(ctx).Istio.IngressGateways {
+ gateways = append(gateways, gw.GatewayName)
+ }
+ } else {
+ for _, gw := range config.FromContext(ctx).Istio.LocalGateways {
+ gateways = append(gateways, gw.GatewayName)
+ }
+ }
+ return dedup(gateways)
+}
+
+func dedup(strs []string) []string {
+ existed := sets.NewString()
+ unique := []string{}
+ // We can't just do `sets.NewString(str)`, since we need to preserve the order.
+ for _, s := range strs {
+ if !existed.Has(s) {
+ existed.Insert(s)
+ unique = append(unique, s)
+ }
+ }
+ return unique
+}
+
func (c *Reconciler) reconcileVirtualService(ctx context.Context, ci *v1alpha1.ClusterIngress,
desired *v1alpha3.VirtualService) error {
logger := logging.FromContext(ctx)
@@ -191,6 +276,10 @@ func (c *Reconciler) reconcileVirtualService(ctx context.Context, ci *v1alpha1.C
"Created VirtualService %q", desired.Name)
} else if err != nil {
return err
+ } else if !metav1.IsControlledBy(vs, ci) {
+ // Surface an error in the ClusterIngress's status, and return an error.
+ ci.Status.MarkResourceNotOwned("VirtualService", name)
+ return fmt.Errorf("ClusterIngress: %q does not own VirtualService: %q", ci.Name, name)
} else if !equality.Semantic.DeepEqual(vs.Spec, desired.Spec) {
// Don't modify the informers copy
existing := vs.DeepCopy()
@@ -200,26 +289,9 @@ func (c *Reconciler) reconcileVirtualService(ctx context.Context, ci *v1alpha1.C
logger.Error("Failed to update VirtualService", zap.Error(err))
return err
}
- c.Recorder.Eventf(desired, corev1.EventTypeNormal, "Updated",
+ c.Recorder.Eventf(ci, corev1.EventTypeNormal, "Updated",
"Updated status for VirtualService %q/%q", ns, name)
}
return nil
}
-
-func (c *Reconciler) enqueueOwnerIngress(impl *controller.Impl) func(obj interface{}) {
- return func(obj interface{}) {
- vs, ok := obj.(*v1alpha3.VirtualService)
- if !ok {
- c.Logger.Infof("Ignoring non-VirtualService objects %v", obj)
- return
- }
- // Check whether the VirtualService is referred by a ClusterIngress.
- ingressName, ok := vs.Labels[networking.IngressLabelKey]
- if !ok {
- c.Logger.Infof("VirtualService %s/%s does not have a referring ingress", vs.Namespace, vs.Name)
- return
- }
- impl.EnqueueKey(ingressName)
- }
-}
diff --git a/vendor/github.com/knative/build/pkg/system/names.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/doc.go
similarity index 69%
rename from vendor/github.com/knative/build/pkg/system/names.go
rename to vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/doc.go
index 2418f8e0d7..4906a4dc9f 100644
--- a/vendor/github.com/knative/build/pkg/system/names.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/doc.go
@@ -14,19 +14,8 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-package system
+// +k8s:deepcopy-gen=package
-import "os"
-
-var (
- // Namespace holds the K8s namespace where our build system
- // components run.
- Namespace string
-)
-
-func init() {
- Namespace = os.Getenv("SYSTEM_NAMESPACE")
- if Namespace == "" {
- Namespace = "knative-build"
- }
-}
+// Package config holds the typed objects that define the schemas for
+// assorted ConfigMap objects on which the ClusterIngress controller depends.
+package config
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/istio.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/istio.go
new file mode 100644
index 0000000000..440a7e073f
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/istio.go
@@ -0,0 +1,106 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package config
+
+import (
+ "fmt"
+ "sort"
+ "strings"
+
+ "github.com/knative/serving/pkg/utils"
+ corev1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/util/validation"
+)
+
+const (
+ // IstioConfigName is the name of the configmap containing all
+ // customizations for istio related features.
+ IstioConfigName = "config-istio"
+
+ // GatewayKeyPrefix is the prefix of all keys to configure Istio gateways for public ClusterIngresses.
+ GatewayKeyPrefix = "gateway."
+
+ // LocalGatewayKeyPrefix is the prefix of all keys to configure Istio gateways for public & private ClusterIngresses.
+ LocalGatewayKeyPrefix = "local-gateway."
+)
+
+var (
+ defaultGateway = Gateway{
+ GatewayName: "knative-ingress-gateway",
+ ServiceURL: fmt.Sprintf("istio-ingressgateway.istio-system.svc.%s", utils.GetClusterDomainName()),
+ }
+)
+
+// Gateway specifies the name of the Gateway and the K8s Service backing it.
+type Gateway struct {
+ GatewayName string
+ ServiceURL string
+}
+
+// Istio contains istio related configuration defined in the
+// istio config map.
+type Istio struct {
+ // IngressGateway specifies the gateway urls for public ClusterIngress.
+ IngressGateways []Gateway
+
+ // LocalGateway specifies the gateway urls for public & private ClusterIngress.
+ LocalGateways []Gateway
+}
+
+func parseGateways(configMap *corev1.ConfigMap, prefix string) ([]Gateway, error) {
+ urls := map[string]string{}
+ gatewayNames := []string{}
+ for k, v := range configMap.Data {
+ if !strings.HasPrefix(k, prefix) {
+ continue
+ }
+ gatewayName, serviceURL := k[len(prefix):], v
+ if errs := validation.IsDNS1123Subdomain(serviceURL); len(errs) > 0 {
+ return nil, fmt.Errorf("invalid gateway format: %v", errs)
+ }
+ gatewayNames = append(gatewayNames, gatewayName)
+ urls[gatewayName] = serviceURL
+ }
+ sort.Strings(gatewayNames)
+ gateways := make([]Gateway, len(gatewayNames))
+ for i, gatewayName := range gatewayNames {
+ gateways[i] = Gateway{
+ GatewayName: gatewayName,
+ ServiceURL: urls[gatewayName],
+ }
+ }
+ return gateways, nil
+}
+
+// NewIstioFromConfigMap creates an Istio config from the supplied ConfigMap
+func NewIstioFromConfigMap(configMap *corev1.ConfigMap) (*Istio, error) {
+ gateways, err := parseGateways(configMap, GatewayKeyPrefix)
+ if err != nil {
+ return nil, err
+ }
+ if len(gateways) == 0 {
+ gateways = append(gateways, defaultGateway)
+ }
+ localGateways, err := parseGateways(configMap, LocalGatewayKeyPrefix)
+ if err != nil {
+ return nil, err
+ }
+ return &Istio{
+ IngressGateways: gateways,
+ LocalGateways: localGateways,
+ }, nil
+}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/store.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/store.go
new file mode 100644
index 0000000000..3edb8c55c8
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/store.go
@@ -0,0 +1,83 @@
+/*
+Copyright 2018 The Knative Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package config
+
+import (
+ "context"
+
+ "github.com/knative/pkg/configmap"
+)
+
+type cfgKey struct{}
+
+// Config of Istio.
+// +k8s:deepcopy-gen=false
+type Config struct {
+ Istio *Istio
+}
+
+// FromContext fetch config from context.
+func FromContext(ctx context.Context) *Config {
+ return ctx.Value(cfgKey{}).(*Config)
+}
+
+// ToContext adds config to given context.
+func ToContext(ctx context.Context, c *Config) context.Context {
+ return context.WithValue(ctx, cfgKey{}, c)
+}
+
+// Store is configmap.UntypedStore based config store.
+// +k8s:deepcopy-gen=false
+type Store struct {
+ *configmap.UntypedStore
+}
+
+// NewStore creates a configmap.UntypedStore based config store.
+//
+// logger must be non-nil implementation of configmap.Logger (commonly used
+// loggers conform)
+//
+// onAfterStore is a variadic list of callbacks to run
+// after the ConfigMap has been processed and stored.
+//
+// See also: configmap.NewUntypedStore().
+func NewStore(logger configmap.Logger, onAfterStore ...func(name string, value interface{})) *Store {
+ store := &Store{
+ UntypedStore: configmap.NewUntypedStore(
+ "clusteringress",
+ logger,
+ configmap.Constructors{
+ IstioConfigName: NewIstioFromConfigMap,
+ },
+ onAfterStore...,
+ ),
+ }
+
+ return store
+}
+
+// ToContext adds Store contents to given context.
+func (s *Store) ToContext(ctx context.Context) context.Context {
+ return ToContext(ctx, s.Load())
+}
+
+// Load fetches config from Store.
+func (s *Store) Load() *Config {
+ return &Config{
+ Istio: s.UntypedLoad(IstioConfigName).(*Istio).DeepCopy(),
+ }
+}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/testdata/config-istio.yaml b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/testdata/config-istio.yaml
new file mode 120000
index 0000000000..c9ae2a7ee3
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/testdata/config-istio.yaml
@@ -0,0 +1 @@
+../../../../../../config/config-istio.yaml
\ No newline at end of file
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/zz_generated.deepcopy.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/zz_generated.deepcopy.go
new file mode 100644
index 0000000000..b249c939d4
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/config/zz_generated.deepcopy.go
@@ -0,0 +1,63 @@
+// +build !ignore_autogenerated
+
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// This file was autogenerated by deepcopy-gen. Do not edit it manually!
+
+package config
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Gateway) DeepCopyInto(out *Gateway) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Gateway.
+func (in *Gateway) DeepCopy() *Gateway {
+ if in == nil {
+ return nil
+ }
+ out := new(Gateway)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Istio) DeepCopyInto(out *Istio) {
+ *out = *in
+ if in.IngressGateways != nil {
+ in, out := &in.IngressGateways, &out.IngressGateways
+ *out = make([]Gateway, len(*in))
+ copy(*out, *in)
+ }
+ if in.LocalGateways != nil {
+ in, out := &in.LocalGateways, &out.LocalGateways
+ *out = make([]Gateway, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Istio.
+func (in *Istio) DeepCopy() *Istio {
+ if in == nil {
+ return nil
+ }
+ out := new(Istio)
+ in.DeepCopyInto(out)
+ return out
+}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/resources/names/names.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/resources/names/names.go
index 016ca8f9ff..fff85dc965 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/resources/names/names.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/resources/names/names.go
@@ -18,20 +18,8 @@ package names
import (
"github.com/knative/serving/pkg/apis/networking/v1alpha1"
- "github.com/knative/serving/pkg/reconciler"
- "github.com/knative/serving/pkg/system"
)
-// K8sGatewayFullname is the fully-qualified name of Knative shared gateway.
-var K8sGatewayFullname = reconciler.GetK8sServiceFullname(
- "knative-shared-gateway",
- system.Namespace)
-
-// K8sGatewayServiceFullname is the fully-qualified name of in-cluster Knative gateway.
-var K8sGatewayServiceFullname = reconciler.GetK8sServiceFullname(
- "knative-ingressgateway",
- "istio-system")
-
// VirtualService returns the name of the VirtualService child resource for given ClusterIngress.
func VirtualService(i *v1alpha1.ClusterIngress) string {
return i.Name
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/resources/virtual_service.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/resources/virtual_service.go
index 8d4e924911..83d1e5aa3a 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/resources/virtual_service.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/resources/virtual_service.go
@@ -17,33 +17,36 @@ limitations under the License.
package resources
import (
- "sort"
+ "strings"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
+ "k8s.io/apimachinery/pkg/util/sets"
istiov1alpha1 "github.com/knative/pkg/apis/istio/common/v1alpha1"
"github.com/knative/pkg/apis/istio/v1alpha3"
"github.com/knative/pkg/kmeta"
+ "github.com/knative/pkg/system"
"github.com/knative/serving/pkg/apis/networking"
"github.com/knative/serving/pkg/apis/networking/v1alpha1"
"github.com/knative/serving/pkg/apis/serving"
"github.com/knative/serving/pkg/reconciler"
"github.com/knative/serving/pkg/reconciler/v1alpha1/clusteringress/resources/names"
- "github.com/knative/serving/pkg/system"
+ "github.com/knative/serving/pkg/utils"
)
// MakeVirtualService creates an Istio VirtualService as network programming.
// Such VirtualService specifies which Gateways and Hosts that it applies to,
// as well as the routing rules.
-func MakeVirtualService(ci *v1alpha1.ClusterIngress) *v1alpha3.VirtualService {
+func MakeVirtualService(ci *v1alpha1.ClusterIngress, gateways []string) *v1alpha3.VirtualService {
vs := &v1alpha3.VirtualService{
ObjectMeta: metav1.ObjectMeta{
Name: names.VirtualService(ci),
- Namespace: system.Namespace,
+ Namespace: system.Namespace(),
OwnerReferences: []metav1.OwnerReference{*kmeta.NewControllerRef(ci)},
+ Annotations: ci.ObjectMeta.Annotations,
},
- Spec: *makeVirtualServiceSpec(ci),
+ Spec: *makeVirtualServiceSpec(ci, gateways),
}
// Populate the ClusterIngress labels.
@@ -59,17 +62,14 @@ func MakeVirtualService(ci *v1alpha1.ClusterIngress) *v1alpha3.VirtualService {
return vs
}
-func makeVirtualServiceSpec(ci *v1alpha1.ClusterIngress) *v1alpha3.VirtualServiceSpec {
+func makeVirtualServiceSpec(ci *v1alpha1.ClusterIngress, gateways []string) *v1alpha3.VirtualServiceSpec {
spec := v1alpha3.VirtualServiceSpec{
// We want to connect to two Gateways: the Knative shared
// Gateway, and the 'mesh' Gateway. The former provides
// access from outside of the cluster, and the latter provides
// access for services from inside the cluster.
- Gateways: []string{
- names.K8sGatewayFullname,
- "mesh",
- },
- Hosts: getHosts(ci),
+ Gateways: append(gateways, "mesh"),
+ Hosts: getHosts(ci),
}
for _, rule := range ci.Spec.Rules {
@@ -94,7 +94,7 @@ func makePortSelector(ios intstr.IntOrString) v1alpha3.PortSelector {
func makeVirtualServiceRoute(hosts []string, http *v1alpha1.HTTPClusterIngressPath) *v1alpha3.HTTPRoute {
matches := []v1alpha3.HTTPMatchRequest{}
- for _, host := range hosts {
+ for _, host := range expandedHosts(hosts) {
matches = append(matches, makeMatch(host, http.Path))
}
weights := []v1alpha3.DestinationWeight{}
@@ -116,8 +116,30 @@ func makeVirtualServiceRoute(hosts []string, http *v1alpha1.HTTPClusterIngressPa
Attempts: http.Retries.Attempts,
PerTryTimeout: http.Retries.PerTryTimeout.Duration.String(),
},
- AppendHeaders: http.AppendHeaders,
+ AppendHeaders: http.AppendHeaders,
+ WebsocketUpgrade: true,
+ }
+}
+
+func dedup(hosts []string) []string {
+ return sets.NewString(hosts...).List()
+}
+
+func expandedHosts(hosts []string) []string {
+ expanded := []string{}
+ allowedSuffixes := []string{
+ "",
+ "." + utils.GetClusterDomainName(),
+ ".svc." + utils.GetClusterDomainName(),
}
+ for _, h := range hosts {
+ for _, suffix := range allowedSuffixes {
+ if strings.HasSuffix(h, suffix) {
+ expanded = append(expanded, strings.TrimSuffix(h, suffix))
+ }
+ }
+ }
+ return dedup(expanded)
}
func makeMatch(host string, pathRegExp string) v1alpha3.HTTPMatchRequest {
@@ -137,17 +159,11 @@ func makeMatch(host string, pathRegExp string) v1alpha3.HTTPMatchRequest {
}
func getHosts(ci *v1alpha1.ClusterIngress) []string {
- hosts := make(map[string]interface{})
- unique := []string{}
+ hosts := []string{}
for _, rule := range ci.Spec.Rules {
for _, h := range rule.Hosts {
- if _, existed := hosts[h]; !existed {
- hosts[h] = true
- unique = append(unique, h)
- }
+ hosts = append(hosts, h)
}
}
- // Sort the names to give a deterministic ordering.
- sort.Strings(unique)
- return unique
+ return dedup(hosts)
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/configuration.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/configuration.go
index 4992d796a6..d8bcb1f4e5 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/configuration.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/configuration.go
@@ -20,28 +20,29 @@ import (
"context"
"fmt"
"reflect"
+ "sort"
"time"
"github.com/knative/pkg/configmap"
"github.com/knative/pkg/controller"
"github.com/knative/pkg/logging"
+ "github.com/knative/serving/pkg/apis/serving"
+ "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ servinginformers "github.com/knative/serving/pkg/client/informers/externalversions/serving/v1alpha1"
+ listers "github.com/knative/serving/pkg/client/listers/serving/v1alpha1"
+ "github.com/knative/serving/pkg/reconciler"
+ configns "github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/config"
+ "github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/resources"
+ errutil "github.com/pkg/errors"
"go.uber.org/zap"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/equality"
"k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/client-go/tools/cache"
-
- "github.com/knative/serving/pkg/apis/serving"
- "github.com/knative/serving/pkg/apis/serving/v1alpha1"
- servinginformers "github.com/knative/serving/pkg/client/informers/externalversions/serving/v1alpha1"
- listers "github.com/knative/serving/pkg/client/listers/serving/v1alpha1"
- "github.com/knative/serving/pkg/reconciler"
- configns "github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/config"
- "github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/resources"
- resourcenames "github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/resources/names"
)
const controllerAgentName = "configuration-controller"
@@ -91,6 +92,7 @@ func NewController(
Handler: cache.ResourceEventHandlerFuncs{
AddFunc: impl.EnqueueControllerOf,
UpdateFunc: controller.PassNew(impl.EnqueueControllerOf),
+ DeleteFunc: impl.EnqueueControllerOf,
},
})
@@ -104,7 +106,7 @@ func NewController(
// converge the two. It then updates the Status block of the Configuration
// resource with the current status of the resource.
func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
- // Convert the namespace/name string into a distinct namespace and name
+ // Convert the namespace/name string into a distinct namespace and name.
namespace, name, err := cache.SplitMetaNamespaceKey(key)
if err != nil {
c.Logger.Errorf("invalid resource key: %s", key)
@@ -114,7 +116,7 @@ func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
ctx = c.configStore.ToContext(ctx)
- // Get the Configuration resource with this namespace/name
+ // Get the Configuration resource with this namespace/name.
original, err := c.configurationLister.Configurations(namespace).Get(name)
if errors.IsNotFound(err) {
// The resource no longer exists, in which case we stop processing.
@@ -137,6 +139,8 @@ func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
// to status with this stale state.
} else if _, err := c.updateStatus(config); err != nil {
logger.Warn("Failed to update configuration status", zap.Error(err))
+ c.Recorder.Eventf(config, corev1.EventTypeWarning, "UpdateFailed",
+ "Failed to update status for Configuration %q: %v", config.Name, err)
return err
}
return err
@@ -144,16 +148,27 @@ func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
func (c *Reconciler) reconcile(ctx context.Context, config *v1alpha1.Configuration) error {
logger := logging.FromContext(ctx)
+ if config.GetDeletionTimestamp() != nil {
+ return nil
+ }
+
+ // We may be reading a version of the object that was stored at an older version
+ // and may not have had all of the assumed defaults specified. This won't result
+ // in this getting written back to the API Server, but lets downstream logic make
+ // assumptions about defaulting.
+ config.SetDefaults()
+
config.Status.InitializeConditions()
- // First, fetch the revision that should exist for the current generation
- revName := resourcenames.Revision(config)
- latestCreatedRevision, err := c.revisionLister.Revisions(config.Namespace).Get(revName)
+ // First, fetch the revision that should exist for the current generation.
+ lcr, err := c.latestCreatedRevision(config)
if errors.IsNotFound(err) {
- latestCreatedRevision, err = c.createRevision(ctx, config, revName)
+ lcr, err = c.createRevision(ctx, config)
if err != nil {
- logger.Errorf("Failed to create Revision %q: %v", revName, err)
- c.Recorder.Eventf(config, corev1.EventTypeWarning, "CreationFailed", "Failed to create Revision %q: %v", revName, err)
+ errMsg := fmt.Sprintf("Failed to create Revision for Configuration %q: %v", config.Name, err)
+
+ logger.Errorf(errMsg)
+ c.Recorder.Eventf(config, corev1.EventTypeWarning, "CreationFailed", errMsg)
// Mark the Configuration as not-Ready since creating
// its latest revision failed.
@@ -162,17 +177,19 @@ func (c *Reconciler) reconcile(ctx context.Context, config *v1alpha1.Configurati
return err
}
} else if err != nil {
- logger.Errorf("Failed to reconcile Configuration: %q failed to Get Revision: %q", config.Name, revName)
+ logger.Errorf("Failed to reconcile Configuration %q - failed to get Revision: %v", config.Name, err)
return err
}
+ revName := lcr.Name
+
// Second, set this to be the latest revision that we have created.
config.Status.SetLatestCreatedRevisionName(revName)
- config.Status.ObservedGeneration = config.Spec.Generation
+ config.Status.ObservedGeneration = config.Generation
// Last, determine whether we should set LatestReadyRevisionName to our
// LatestCreatedRevision based on its readiness.
- rc := latestCreatedRevision.Status.GetCondition(v1alpha1.RevisionConditionReady)
+ rc := lcr.Status.GetCondition(v1alpha1.RevisionConditionReady)
switch {
case rc == nil || rc.Status == corev1.ConditionUnknown:
logger.Infof("Revision %q of configuration %q is not ready", revName, config.Name)
@@ -183,23 +200,23 @@ func (c *Reconciler) reconcile(ctx context.Context, config *v1alpha1.Configurati
created, ready := config.Status.LatestCreatedRevisionName, config.Status.LatestReadyRevisionName
if ready == "" {
// Surface an event for the first revision becoming ready.
- c.Recorder.Eventf(config, corev1.EventTypeNormal, "ConfigurationReady",
+ c.Recorder.Event(config, corev1.EventTypeNormal, "ConfigurationReady",
"Configuration becomes ready")
}
// Update the LatestReadyRevisionName and surface an event for the transition.
- config.Status.SetLatestReadyRevisionName(latestCreatedRevision.Name)
+ config.Status.SetLatestReadyRevisionName(lcr.Name)
if created != ready {
c.Recorder.Eventf(config, corev1.EventTypeNormal, "LatestReadyUpdate",
- "LatestReadyRevisionName updated to %q", latestCreatedRevision.Name)
+ "LatestReadyRevisionName updated to %q", lcr.Name)
}
case rc.Status == corev1.ConditionFalse:
logger.Infof("Revision %q of configuration %q has failed", revName, config.Name)
// TODO(mattmoor): Only emit the event the first time we see this.
- config.Status.MarkLatestCreatedFailed(latestCreatedRevision.Name, rc.Message)
+ config.Status.MarkLatestCreatedFailed(lcr.Name, rc.Message)
c.Recorder.Eventf(config, corev1.EventTypeWarning, "LatestCreatedFailed",
- "Latest created revision %q has failed", latestCreatedRevision.Name)
+ "Latest created revision %q has failed", lcr.Name)
default:
err := fmt.Errorf("unrecognized condition status: %v on revision %q", rc.Status, revName)
@@ -214,22 +231,63 @@ func (c *Reconciler) reconcile(ctx context.Context, config *v1alpha1.Configurati
return nil
}
-func (c *Reconciler) createRevision(ctx context.Context, config *v1alpha1.Configuration, revName string) (*v1alpha1.Revision, error) {
+func (c *Reconciler) latestCreatedRevision(config *v1alpha1.Configuration) (*v1alpha1.Revision, error) {
+ lister := c.revisionLister.Revisions(config.Namespace)
+
+ // TODO(#643) - in serving 0.5 switch to serving.ConfigurationGenerationLabelKey
+ generationKey := serving.DeprecatedConfigurationMetadataGenerationLabelKey
+
+ list, err := lister.List(labels.SelectorFromSet(map[string]string{
+ generationKey: resources.RevisionLabelValueForKey(generationKey, config),
+ serving.ConfigurationLabelKey: config.Name,
+ }))
+
+ if err == nil && len(list) > 0 {
+ return list[0], nil
+ }
+
+ return nil, errors.NewNotFound(v1alpha1.Resource("revisions"), fmt.Sprintf("revision for %s", config.Name))
+}
+
+func (c *Reconciler) createRevision(ctx context.Context, config *v1alpha1.Configuration) (*v1alpha1.Revision, error) {
logger := logging.FromContext(ctx)
+ var buildRef *corev1.ObjectReference
if config.Spec.Build != nil {
// TODO(mattmoor): Determine whether we reuse the previous build.
build := resources.MakeBuild(config)
gvr, _ := meta.UnsafeGuessKindToResource(build.GroupVersionKind())
- created, err := c.DynamicClientSet.Resource(gvr).Namespace(build.GetNamespace()).Create(build)
+
+ // First, see if a build with this spec already exists.
+ buildHash := build.GetLabels()[serving.BuildHashLabelKey]
+ ul, err := c.DynamicClientSet.Resource(gvr).Namespace(build.GetNamespace()).List(metav1.ListOptions{
+ LabelSelector: fmt.Sprintf("%s=%s", serving.BuildHashLabelKey, buildHash),
+ })
if err != nil {
- return nil, err
+ return nil, errutil.Wrapf(err, "Failed to list GroupVersionResource %+v", gvr)
+ }
+
+ var result *unstructured.Unstructured
+ if len(ul.Items) != 0 {
+ // If one exists, then have the Revision reference it.
+ result = &ul.Items[0]
+ } else {
+ // Otherwise, create a build and reference that.
+ result, err = c.DynamicClientSet.Resource(gvr).Namespace(build.GetNamespace()).Create(build)
+ if err != nil {
+ return nil, errutil.Wrapf(err, "Failed to create Build for Configuration %q", config.GetName())
+ }
+ logger.Infof("Created Build:\n%+v", result.GetName())
+ c.Recorder.Eventf(config, corev1.EventTypeNormal, "Created", "Created Build %q", result.GetName())
+ }
+ buildRef = &corev1.ObjectReference{
+ APIVersion: result.GetAPIVersion(),
+ Kind: result.GetKind(),
+ Name: result.GetName(),
}
- logger.Infof("Created Build:\n%+v", created.GetName())
- c.Recorder.Eventf(config, corev1.EventTypeNormal, "Created", "Created Build %q", created.GetName())
}
- rev := resources.MakeRevision(config)
+ rev := resources.MakeRevision(config, buildRef)
created, err := c.ServingClientSet.ServingV1alpha1().Revisions(config.Namespace).Create(rev)
if err != nil {
return nil, err
@@ -241,22 +299,22 @@ func (c *Reconciler) createRevision(ctx context.Context, config *v1alpha1.Config
}
func (c *Reconciler) updateStatus(desired *v1alpha1.Configuration) (*v1alpha1.Configuration, error) {
- u, err := c.configurationLister.Configurations(desired.Namespace).Get(desired.Name)
+ config, err := c.configurationLister.Configurations(desired.Namespace).Get(desired.Name)
if err != nil {
return nil, err
}
- if !reflect.DeepEqual(u.Status, desired.Status) {
- // Don't modify the informers copy
- existing := u.DeepCopy()
- existing.Status = desired.Status
- // TODO: for CRD there's no updatestatus, so use normal update
- return c.ServingClientSet.ServingV1alpha1().Configurations(desired.Namespace).Update(existing)
- // return configClient.UpdateStatus(newu)
+ // If there's nothing to update, just return.
+ if reflect.DeepEqual(config.Status, desired.Status) {
+ return config, nil
}
- return u, nil
+ // Don't modify the informers copy
+ existing := config.DeepCopy()
+ existing.Status = desired.Status
+ return c.ServingClientSet.ServingV1alpha1().Configurations(desired.Namespace).UpdateStatus(existing)
}
func (c *Reconciler) gcRevisions(ctx context.Context, config *v1alpha1.Configuration) error {
+ cfg := configns.FromContext(ctx).RevisionGC
logger := logging.FromContext(ctx)
selector := labels.Set{serving.ConfigurationLabelKey: config.Name}.AsSelector()
@@ -265,7 +323,18 @@ func (c *Reconciler) gcRevisions(ctx context.Context, config *v1alpha1.Configura
return err
}
- for _, rev := range revs {
+ gcSkipOffset := cfg.StaleRevisionMinimumGenerations
+
+ if gcSkipOffset >= int64(len(revs)) {
+ return nil
+ }
+
+ // Sort by creation timestamp descending
+ sort.Slice(revs, func(i, j int) bool {
+ return revs[j].CreationTimestamp.Before(&revs[i].CreationTimestamp)
+ })
+
+ for _, rev := range revs[gcSkipOffset:] {
if isRevisionStale(ctx, rev, config) {
err := c.ServingClientSet.ServingV1alpha1().Revisions(rev.Namespace).Delete(rev.Name, &metav1.DeleteOptions{})
if err != nil {
@@ -281,24 +350,13 @@ func isRevisionStale(ctx context.Context, rev *v1alpha1.Revision, config *v1alph
cfg := configns.FromContext(ctx).RevisionGC
logger := logging.FromContext(ctx)
- // maxGen is the maximum generation number we consider for GC
- maxGen := config.Spec.Generation - cfg.StaleRevisionMinimumGenerations
-
if config.Status.LatestReadyRevisionName == rev.Name {
return false
}
- // Check if rev is within "MinimumGenerations" of latest
- if gen, err := rev.GetConfigurationGeneration(); err != nil {
- logger.Errorf("Failed to determine revision configuration generation: %v", err)
- return false
- } else if gen > maxGen {
- return false
- }
-
curTime := time.Now()
if rev.ObjectMeta.CreationTimestamp.Add(cfg.StaleRevisionCreateDelay).After(curTime) {
- // Revision was created sooner than staleRevisionCreateDelay. Ignore it
+ // Revision was created sooner than staleRevisionCreateDelay. Ignore it.
return false
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/resources/build.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/resources/build.go
index 6f8e101e29..37ffa20f89 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/resources/build.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/resources/build.go
@@ -17,6 +17,8 @@ limitations under the License.
package resources
import (
+ "crypto/sha256"
+ "encoding/hex"
"encoding/json"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -24,34 +26,62 @@ import (
buildv1alpha1 "github.com/knative/build/pkg/apis/build/v1alpha1"
"github.com/knative/pkg/kmeta"
+ "github.com/knative/serving/pkg/apis/serving"
"github.com/knative/serving/pkg/apis/serving/v1alpha1"
- "github.com/knative/serving/pkg/reconciler/v1alpha1/configuration/resources/names"
)
+// MakeBuild creates an Unstructured Build object from the passed in Configuration and fills
+// in metadata and references based on the Configuration.
func MakeBuild(config *v1alpha1.Configuration) *unstructured.Unstructured {
if config.Spec.Build == nil {
return nil
}
+ u := GetBuild(&config.Spec)
+
+ // Compute the hash of the current build's spec.
+ sum := sha256.Sum256(config.Spec.Build.Raw)
+ h := hex.EncodeToString(sum[:])
+
+ // Put it into a label for later lookups.
+ l := u.GetLabels()
+ if l == nil {
+ l = make(map[string]string)
+ }
+ l[serving.BuildHashLabelKey] = h[:63] // Labels can only be 63 characters.
+ u.SetLabels(l)
+
+ // Clear the name if it's been explicitly set
+ // We want the build to have a generated name
+ //
+ // Note: K8s apimachinery >=v1.12 calling SetName will 'remove' the name
+ // 0 && deployment.Status.AvailableReplicas == 0 {
+ pods, err := c.KubeClientSet.CoreV1().Pods(ns).List(metav1.ListOptions{LabelSelector: metav1.FormatLabelSelector(deployment.Spec.Selector)})
+ if err != nil {
+ logger.Errorf("Error getting pods: %v", err)
+ } else if len(pods.Items) > 0 {
+ // Arbitrarily grab the very first pod, as they all should be crashing
+ pod := pods.Items[0]
+
+ for _, status := range pod.Status.ContainerStatuses {
+ if status.Name == resources.UserContainerName {
+ if t := status.LastTerminationState.Terminated; t != nil {
+ rev.Status.MarkContainerExiting(t.ExitCode, t.Message)
+ }
+ break
+ }
+ }
+ }
}
- // TODO(mattmoor): Consider reconciling the deployment spec to make sure it matches
- // what we expect.
// Now that we have a Deployment, determine whether there is any relevant
// status to surface in the Revision.
- if hasDeploymentTimedOut(deployment) {
+ if hasDeploymentTimedOut(deployment) && !rev.Status.IsActivationRequired() {
rev.Status.MarkProgressDeadlineExceeded(fmt.Sprintf(
"Unable to create pods for more than %d seconds.", resources.ProgressDeadlineSeconds))
c.Recorder.Eventf(rev, corev1.EventTypeNormal, "ProgressDeadlineExceeded",
@@ -95,7 +124,7 @@ func (c *Reconciler) reconcileKPA(ctx context.Context, rev *v1alpha1.Revision) e
kpaName := resourcenames.KPA(rev)
logger := logging.FromContext(ctx)
- kpa, getKPAErr := c.kpaLister.PodAutoscalers(ns).Get(kpaName)
+ kpa, getKPAErr := c.podAutoscalerLister.PodAutoscalers(ns).Get(kpaName)
if apierrs.IsNotFound(getKPAErr) {
// KPA does not exist. Create it.
var err error
@@ -108,6 +137,10 @@ func (c *Reconciler) reconcileKPA(ctx context.Context, rev *v1alpha1.Revision) e
} else if getKPAErr != nil {
logger.Errorf("Error reconciling kpa %q: %v", kpaName, getKPAErr)
return getKPAErr
+ } else if !metav1.IsControlledBy(kpa, rev) {
+ // Surface an error in the revision's status, and return an error.
+ rev.Status.MarkResourceNotOwned("PodAutoscaler", kpaName)
+ return fmt.Errorf("Revision: %q does not own PodAutoscaler: %q", rev.Name, kpaName)
}
// Reflect the KPA status in our own.
@@ -146,6 +179,10 @@ func (c *Reconciler) reconcileService(ctx context.Context, rev *v1alpha1.Revisio
} else if err != nil {
logger.Errorf("Error reconciling Active Service %q: %v", serviceName, err)
return err
+ } else if !metav1.IsControlledBy(service, rev) {
+ // Surface an error in the revision's status, and return an error.
+ rev.Status.MarkResourceNotOwned("Service", serviceName)
+ return fmt.Errorf("Revision: %q does not own Service: %q", rev.Name, serviceName)
} else {
// If it exists, then make sure if looks as we expect.
// It may change if a user edits things around our controller, which we
@@ -184,10 +221,7 @@ func (c *Reconciler) reconcileService(ctx context.Context, rev *v1alpha1.Revisio
if getIsServiceReady(endpoints) {
rev.Status.MarkResourcesAvailable()
rev.Status.MarkContainerHealthy()
- // TODO(mattmoor): How to ensure this only fires once?
- c.Recorder.Eventf(rev, corev1.EventTypeNormal, "RevisionReady",
- "Revision becomes ready upon endpoint %q becoming ready", serviceName)
- } else {
+ } else if !rev.Status.IsActivationRequired() {
// If the endpoints is NOT ready, then check whether it is taking unreasonably
// long to become ready and if so mark our revision as having timed out waiting
// for the Service to become ready.
@@ -229,8 +263,11 @@ func (c *Reconciler) reconcileFluentdConfigMap(ctx context.Context, rev *v1alpha
} else {
desiredConfigMap := resources.MakeFluentdConfigMap(rev, cfgs.Observability)
if !equality.Semantic.DeepEqual(configMap.Data, desiredConfigMap.Data) {
- logger.Infof("Reconciling fluentd configmap diff (-desired, +observed): %v",
- cmp.Diff(desiredConfigMap.Data, configMap.Data))
+ diff, err := kmp.SafeDiff(desiredConfigMap.Data, configMap.Data)
+ if err != nil {
+ return fmt.Errorf("failed to diff ConfigMap: %v", err)
+ }
+ logger.Infof("Reconciling fluentd configmap diff (-desired, +observed): %v", diff)
// Don't modify the informers copy
existing := configMap.DeepCopy()
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resolve.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resolve.go
index 738553b093..f9e2be8614 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resolve.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resolve.go
@@ -17,13 +17,18 @@ limitations under the License.
package revision
import (
+ "crypto/tls"
+ "crypto/x509"
+ "errors"
"fmt"
+ "io/ioutil"
"net/http"
+ "k8s.io/apimachinery/pkg/util/sets"
+
"github.com/google/go-containerregistry/pkg/authn/k8schain"
"github.com/google/go-containerregistry/pkg/name"
"github.com/google/go-containerregistry/pkg/v1/remote"
-
"k8s.io/client-go/kubernetes"
)
@@ -32,12 +37,40 @@ type digestResolver struct {
transport http.RoundTripper
}
+const (
+ // Kubernetes CA certificate bundle is mounted into the pod here, see:
+ // https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster/#trusting-tls-in-a-cluster
+ k8sCertPath = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
+)
+
+// newResolverTransport returns an http.Transport that appends the certs bundle
+// at path to the system cert pool.
+//
+// Use this with k8sCertPath to trust the same certs as the cluster.
+func newResolverTransport(path string) (*http.Transport, error) {
+ pool, err := x509.SystemCertPool()
+ if err != nil {
+ pool = x509.NewCertPool()
+ }
+
+ if crt, err := ioutil.ReadFile(path); err != nil {
+ return nil, err
+ } else if ok := pool.AppendCertsFromPEM(crt); !ok {
+ return nil, errors.New("Failed to append k8s cert bundle to cert pool.")
+ }
+
+ return &http.Transport{
+ TLSClientConfig: &tls.Config{
+ RootCAs: pool,
+ },
+ }, nil
+}
+
// Resolve resolves the image references that use tags to digests.
func (r *digestResolver) Resolve(
image string,
opt k8schain.Options,
- registriesToSkip map[string]struct{},
-) (string, error) {
+ registriesToSkip sets.String) (string, error) {
kc, err := k8schain.New(r.client, opt)
if err != nil {
return "", err
@@ -53,7 +86,7 @@ func (r *digestResolver) Resolve(
return "", err
}
- if _, ok := registriesToSkip[tag.Registry.RegistryStr()]; ok {
+ if registriesToSkip.Has(tag.Registry.RegistryStr()) {
return "", nil
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/constants.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/constants.go
index e9617b804f..c1d6c7a4cc 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/constants.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/constants.go
@@ -21,25 +21,33 @@ import (
)
const (
- userContainerName = "user-container"
- fluentdContainerName = "fluentd-proxy"
- envoyContainerName = "istio-proxy"
- queueContainerName = "queue-proxy"
+ // UserContainerName is the name of the user-container in the PodSpec
+ UserContainerName = "user-container"
+ // FluentdContainerName is the name of the fluentd sidecar when enabled
+ FluentdContainerName = "fluentd-proxy"
+ // EnvoyContainerName is the name of the envoy sidecar when enabled
+ EnvoyContainerName = "istio-proxy"
+ // QueueContainerName is the name of the queue proxy side car
+ QueueContainerName = "queue-proxy"
sidecarIstioInjectAnnotation = "sidecar.istio.io/inject"
// TODO(mattmoor): Make this private once we remove revision_test.go
IstioOutboundIPRangeAnnotation = "traffic.sidecar.istio.io/includeOutboundIPRanges"
- userPortName = "user-port"
- userPort = 8080
userPortEnvName = "PORT"
autoscalerPort = 8080
// ServicePortName is the name of the external port of the service
- ServicePortName = "http"
+ ServicePortNameHTTP1 = "http"
+ ServicePortNameH2C = "http2"
+
// ServicePort is the external port of the service
ServicePort = int32(80)
+ // MetricsPortName is the name of the external port of the service for metrics
+ MetricsPortName = "metrics"
+ // MetricsPort is the external port of the service for metrics
+ MetricsPort = int32(9090)
AppLabelKey = "app"
)
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/deploy.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/deploy.go
index 2008d487a2..0b0bc65385 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/deploy.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/deploy.go
@@ -23,6 +23,7 @@ import (
"github.com/knative/pkg/logging"
"github.com/knative/serving/pkg/apis/serving/v1alpha1"
"github.com/knative/serving/pkg/autoscaler"
+ "github.com/knative/serving/pkg/network"
"github.com/knative/serving/pkg/queue"
"github.com/knative/serving/pkg/reconciler/v1alpha1/revision/config"
"github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/names"
@@ -48,40 +49,27 @@ var (
MountPath: "/var/log",
}
- userPorts = []corev1.ContainerPort{{
- Name: userPortName,
- ContainerPort: int32(userPort),
- }}
-
- // Expose containerPort as env PORT.
- userEnv = corev1.EnvVar{
- Name: userPortEnvName,
- Value: strconv.Itoa(userPort),
- }
-
userResources = corev1.ResourceRequirements{
Requests: corev1.ResourceList{
corev1.ResourceCPU: userContainerCPU,
},
}
- // Add our own PreStop hook here, which should do two things:
- // - make the container fails the next readinessCheck to avoid
- // having more traffic, and
- // - add a small delay so that the container stays alive a little
- // bit longer in case stoppage of traffic is not effective
- // immediately.
+ // This PreStop hook is actually calling an endpoint on the queue-proxy
+ // because of the way PreStop hooks are called by kubelet. We use this
+ // to block the user-container from exiting before the queue-proxy is ready
+ // to exit so we can guarantee that there are no more requests in flight.
userLifecycle = &corev1.Lifecycle{
PreStop: &corev1.Handler{
HTTPGet: &corev1.HTTPGetAction{
- Port: intstr.FromInt(queue.RequestQueueAdminPort),
+ Port: intstr.FromInt(v1alpha1.RequestQueueAdminPort),
Path: queue.RequestQueueQuitPath,
},
},
}
)
-func rewriteUserProbe(p *corev1.Probe) {
+func rewriteUserProbe(p *corev1.Probe, userPort int) {
if p == nil {
return
}
@@ -89,39 +77,75 @@ func rewriteUserProbe(p *corev1.Probe) {
case p.HTTPGet != nil:
// For HTTP probes, we route them through the queue container
// so that we know the queue proxy is ready/live as well.
- p.HTTPGet.Port = intstr.FromInt(queue.RequestQueuePort)
+ p.HTTPGet.Port = intstr.FromInt(v1alpha1.RequestQueuePort)
case p.TCPSocket != nil:
p.TCPSocket.Port = intstr.FromInt(userPort)
}
}
+// applyDefaultResource
+// Implements a deep merge for ResourceRequirements
+// note: DeepCopyInto cannot be used because it replaces limits or requests instead of merging them
+func applyDefaultResources(defaults corev1.ResourceRequirements, out *corev1.ResourceRequirements) {
+ in := defaults.DeepCopy()
+ if in.Limits != nil {
+ in, out := &in.Limits, &out.Limits
+ for key, val := range *out {
+ (*in)[key] = val.DeepCopy()
+ }
+ (*out) = (*in)
+ }
+ if in.Requests != nil {
+ in, out := &in.Requests, &out.Requests
+ for key, val := range *out {
+ (*in)[key] = val.DeepCopy()
+ }
+ (*out) = (*in)
+ }
+}
+
func makePodSpec(rev *v1alpha1.Revision, loggingConfig *logging.Config, observabilityConfig *config.Observability, autoscalerConfig *autoscaler.Config, controllerConfig *config.Controller) *corev1.PodSpec {
userContainer := rev.Spec.Container.DeepCopy()
// Adding or removing an overwritten corev1.Container field here? Don't forget to
// update the validations in pkg/webhook.validateContainer.
- userContainer.Name = userContainerName
- userContainer.Resources = userResources
- userContainer.Ports = userPorts
+ userContainer.Name = UserContainerName
+
+ // If client provides for some resources, override default values
+ applyDefaultResources(userResources, &userContainer.Resources)
+
userContainer.VolumeMounts = append(userContainer.VolumeMounts, varLogVolumeMount)
userContainer.Lifecycle = userLifecycle
- userContainer.Env = append(userContainer.Env, userEnv)
+ userPort := getUserPort(rev)
+ userPortInt := int(userPort)
+ userPortStr := strconv.Itoa(userPortInt)
+ // Replacement is safe as only up to a single port is allowed on the Revision
+ userContainer.Ports = buildContainerPorts(userPort)
+ userContainer.Env = append(userContainer.Env, buildUserPortEnv(userPortStr))
userContainer.Env = append(userContainer.Env, getKnativeEnvVar(rev)...)
+
// Prefer imageDigest from revision if available
if rev.Status.ImageDigest != "" {
userContainer.Image = rev.Status.ImageDigest
}
+ if userContainer.TerminationMessagePolicy == "" {
+ userContainer.TerminationMessagePolicy = corev1.TerminationMessageFallbackToLogsOnError
+ }
+
// If the client provides probes, we should fill in the port for them.
- rewriteUserProbe(userContainer.ReadinessProbe)
- rewriteUserProbe(userContainer.LivenessProbe)
+ rewriteUserProbe(userContainer.ReadinessProbe, userPortInt)
+ rewriteUserProbe(userContainer.LivenessProbe, userPortInt)
+
+ revisionTimeout := rev.Spec.TimeoutSeconds
podSpec := &corev1.PodSpec{
Containers: []corev1.Container{
*userContainer,
*makeQueueContainer(rev, loggingConfig, autoscalerConfig, controllerConfig),
},
- Volumes: []corev1.Volume{varLogVolume},
- ServiceAccountName: rev.Spec.ServiceAccountName,
+ Volumes: append([]corev1.Volume{varLogVolume}, rev.Spec.Volumes...),
+ ServiceAccountName: rev.Spec.ServiceAccountName,
+ TerminationGracePeriodSeconds: &revisionTimeout,
}
// Add Fluentd sidecar and its config map volume if var log collection is enabled.
@@ -133,8 +157,32 @@ func makePodSpec(rev *v1alpha1.Revision, loggingConfig *logging.Config, observab
return podSpec
}
+func getUserPort(rev *v1alpha1.Revision) int32 {
+ if len(rev.Spec.Container.Ports) == 1 {
+ return rev.Spec.Container.Ports[0].ContainerPort
+ }
+
+ //TODO(#2258): Use container EXPOSE metadata from image before falling back to default value
+
+ return v1alpha1.DefaultUserPort
+}
+
+func buildContainerPorts(userPort int32) []corev1.ContainerPort {
+ return []corev1.ContainerPort{{
+ Name: v1alpha1.UserPortName,
+ ContainerPort: userPort,
+ }}
+}
+
+func buildUserPortEnv(userPort string) corev1.EnvVar {
+ return corev1.EnvVar{
+ Name: userPortEnvName,
+ Value: userPort,
+ }
+}
+
func MakeDeployment(rev *v1alpha1.Revision,
- loggingConfig *logging.Config, networkConfig *config.Network, observabilityConfig *config.Observability,
+ loggingConfig *logging.Config, networkConfig *network.Config, observabilityConfig *config.Observability,
autoscalerConfig *autoscaler.Config, controllerConfig *config.Controller) *appsv1.Deployment {
podTemplateAnnotations := makeAnnotations(rev)
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/fluentd.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/fluentd.go
index 5dac3a7ba1..4f801ce21f 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/fluentd.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/fluentd.go
@@ -119,7 +119,7 @@ func makeFluentdContainer(rev *v1alpha1.Revision, observabilityConfig *config.Ob
}
return &corev1.Container{
- Name: fluentdContainerName,
+ Name: FluentdContainerName,
Image: observabilityConfig.FluentdSidecarImage,
Resources: fluentdResources,
Env: []corev1.EnvVar{{
@@ -127,7 +127,7 @@ func makeFluentdContainer(rev *v1alpha1.Revision, observabilityConfig *config.Ob
Value: "--no-supervisor -q",
}, {
Name: "SERVING_CONTAINER_NAME",
- Value: userContainerName,
+ Value: UserContainerName,
}, {
Name: "SERVING_CONFIGURATION",
Value: configName,
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/imagecache.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/imagecache.go
index 82cb1ef959..e0c97f3a14 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/imagecache.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/imagecache.go
@@ -30,7 +30,7 @@ import (
func MakeImageCache(rev *v1alpha1.Revision, deploy *appsv1.Deployment) (*caching.Image, error) {
for _, container := range deploy.Spec.Template.Spec.Containers {
- if container.Name != userContainerName {
+ if container.Name != UserContainerName {
// The sidecars are cached once separately.
continue
}
@@ -53,5 +53,5 @@ func MakeImageCache(rev *v1alpha1.Revision, deploy *appsv1.Deployment) (*caching
return img, nil
}
- return nil, fmt.Errorf("user container %q not found: %v", userContainerName, deploy)
+ return nil, fmt.Errorf("user container %q not found: %v", UserContainerName, deploy)
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/meta.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/meta.go
index f7fc343ff7..140368da83 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/meta.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/meta.go
@@ -44,7 +44,11 @@ func makeLabels(revision *v1alpha1.Revision) map[string]string {
// makeSelector constructs the Selector we will apply to K8s resources.
func makeSelector(revision *v1alpha1.Revision) *metav1.LabelSelector {
- return &metav1.LabelSelector{MatchLabels: makeLabels(revision)}
+ return &metav1.LabelSelector{
+ MatchLabels: map[string]string{
+ serving.RevisionUID: string(revision.UID),
+ },
+ }
}
// makeAnnotations creates the annotations we will apply to
@@ -52,6 +56,11 @@ func makeSelector(revision *v1alpha1.Revision) *metav1.LabelSelector {
func makeAnnotations(revision *v1alpha1.Revision) map[string]string {
annotations := make(map[string]string, len(revision.ObjectMeta.Annotations))
for k, v := range revision.ObjectMeta.Annotations {
+ // Don't propagate known-volatile annotations on the Revision
+ // (e.g. our lastPinned heartbeat) to the Deployment or Pods.
+ if k == serving.RevisionLastPinnedAnnotationKey {
+ continue
+ }
annotations[k] = v
}
return annotations
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/queue.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/queue.go
index 5f642c7439..9ade855053 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/queue.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/queue.go
@@ -17,10 +17,10 @@ limitations under the License.
package resources
import (
- "fmt"
"strconv"
"github.com/knative/pkg/logging"
+ "github.com/knative/pkg/system"
"github.com/knative/serving/pkg/apis/serving/v1alpha1"
"github.com/knative/serving/pkg/autoscaler"
"github.com/knative/serving/pkg/queue"
@@ -37,19 +37,22 @@ var (
},
}
queuePorts = []corev1.ContainerPort{{
- Name: queue.RequestQueuePortName,
- ContainerPort: int32(queue.RequestQueuePort),
+ Name: v1alpha1.RequestQueuePortName,
+ ContainerPort: int32(v1alpha1.RequestQueuePort),
}, {
// Provides health checks and lifecycle hooks.
- Name: queue.RequestQueueAdminPortName,
- ContainerPort: int32(queue.RequestQueueAdminPort),
+ Name: v1alpha1.RequestQueueAdminPortName,
+ ContainerPort: int32(v1alpha1.RequestQueueAdminPort),
+ }, {
+ Name: v1alpha1.RequestQueueMetricsPortName,
+ ContainerPort: int32(v1alpha1.RequestQueueMetricsPort),
}}
// This handler (1) marks the service as not ready and (2)
// adds a small delay before the container is killed.
queueLifecycle = &corev1.Lifecycle{
PreStop: &corev1.Handler{
HTTPGet: &corev1.HTTPGetAction{
- Port: intstr.FromInt(queue.RequestQueueAdminPort),
+ Port: intstr.FromInt(v1alpha1.RequestQueueAdminPort),
Path: queue.RequestQueueQuitPath,
},
},
@@ -57,7 +60,7 @@ var (
queueReadinessProbe = &corev1.Probe{
Handler: corev1.Handler{
HTTPGet: &corev1.HTTPGetAction{
- Port: intstr.FromInt(queue.RequestQueueAdminPort),
+ Port: intstr.FromInt(v1alpha1.RequestQueueAdminPort),
Path: queue.RequestQueueHealthPath,
},
},
@@ -66,6 +69,10 @@ var (
// bit more often than the default. It is a small
// sacrifice for a low rate of 503s.
PeriodSeconds: 1,
+ // We keep the connection open for a while because we're
+ // actively probing the user-container on that endpoint and
+ // thus don't want to be limited by K8s granularity here.
+ TimeoutSeconds: 10,
}
)
@@ -78,6 +85,7 @@ func makeQueueContainer(rev *v1alpha1.Revision, loggingConfig *logging.Config, a
}
autoscalerAddress := "autoscaler"
+ userPort := getUserPort(rev)
var loggingLevel string
if ll, ok := loggingConfig.LoggingLevel["queueproxy"]; ok {
@@ -85,15 +93,12 @@ func makeQueueContainer(rev *v1alpha1.Revision, loggingConfig *logging.Config, a
}
return &corev1.Container{
- Name: queueContainerName,
+ Name: QueueContainerName,
Image: controllerConfig.QueueSidecarImage,
Resources: queueResources,
Ports: queuePorts,
Lifecycle: queueLifecycle,
ReadinessProbe: queueReadinessProbe,
- Args: []string{
- fmt.Sprintf("-containerConcurrency=%v", rev.Spec.ContainerConcurrency),
- },
Env: []corev1.EnvVar{{
Name: "SERVING_NAMESPACE",
Value: rev.Namespace,
@@ -109,6 +114,12 @@ func makeQueueContainer(rev *v1alpha1.Revision, loggingConfig *logging.Config, a
}, {
Name: "SERVING_AUTOSCALER_PORT",
Value: strconv.Itoa(autoscalerPort),
+ }, {
+ Name: "CONTAINER_CONCURRENCY",
+ Value: strconv.Itoa(int(rev.Spec.ContainerConcurrency)),
+ }, {
+ Name: "REVISION_TIMEOUT_SECONDS",
+ Value: strconv.Itoa(int(rev.Spec.TimeoutSeconds)),
}, {
Name: "SERVING_POD",
ValueFrom: &corev1.EnvVarSource{
@@ -122,6 +133,12 @@ func makeQueueContainer(rev *v1alpha1.Revision, loggingConfig *logging.Config, a
}, {
Name: "SERVING_LOGGING_LEVEL",
Value: loggingLevel,
+ }, {
+ Name: "USER_PORT",
+ Value: strconv.Itoa(int(userPort)),
+ }, {
+ Name: system.NamespaceEnvKey,
+ Value: system.Namespace(),
}},
}
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/service.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/service.go
index dbd694d2c5..a7fa14c940 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/service.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/service.go
@@ -21,7 +21,6 @@ import (
"github.com/knative/serving/pkg/apis/autoscaling"
"github.com/knative/serving/pkg/apis/serving"
"github.com/knative/serving/pkg/apis/serving/v1alpha1"
- "github.com/knative/serving/pkg/queue"
"github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/names"
corev1 "k8s.io/api/core/v1"
@@ -29,15 +28,6 @@ import (
"k8s.io/apimachinery/pkg/util/intstr"
)
-var (
- servicePorts = []corev1.ServicePort{{
- Name: ServicePortName,
- Protocol: corev1.ProtocolTCP,
- Port: ServicePort,
- TargetPort: intstr.IntOrString{Type: intstr.String, StrVal: queue.RequestQueuePortName},
- }}
-)
-
// MakeK8sService creates a Kubernetes Service that targets all pods with the same
// serving.RevisionLabelKey label. Traffic is routed to queue-proxy port.
func MakeK8sService(rev *v1alpha1.Revision) *corev1.Service {
@@ -52,10 +42,28 @@ func MakeK8sService(rev *v1alpha1.Revision) *corev1.Service {
OwnerReferences: []metav1.OwnerReference{*kmeta.NewControllerRef(rev)},
},
Spec: corev1.ServiceSpec{
- Ports: servicePorts,
+ Ports: []corev1.ServicePort{{
+ Name: ServicePortName(rev),
+ Protocol: corev1.ProtocolTCP,
+ Port: ServicePort,
+ TargetPort: intstr.FromString(v1alpha1.RequestQueuePortName),
+ }, {
+ Name: MetricsPortName,
+ Protocol: corev1.ProtocolTCP,
+ Port: MetricsPort,
+ TargetPort: intstr.FromString(v1alpha1.RequestQueueMetricsPortName),
+ }},
Selector: map[string]string{
serving.RevisionLabelKey: rev.Name,
},
},
}
}
+
+func ServicePortName(rev *v1alpha1.Revision) string {
+ if rev.GetProtocol() == v1alpha1.RevisionProtocolH2C {
+ return ServicePortNameH2C
+ }
+
+ return ServicePortNameHTTP1
+}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/revision.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/revision.go
index ccb54986df..2622a68ed7 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/revision.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/revision/revision.go
@@ -22,6 +22,18 @@ import (
"reflect"
"strings"
+ corev1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/api/equality"
+ apierrs "k8s.io/apimachinery/pkg/api/errors"
+ "k8s.io/apimachinery/pkg/api/meta"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/apimachinery/pkg/util/sets"
+ appsv1informers "k8s.io/client-go/informers/apps/v1"
+ corev1informers "k8s.io/client-go/informers/core/v1"
+ appsv1listers "k8s.io/client-go/listers/apps/v1"
+ corev1listers "k8s.io/client-go/listers/core/v1"
+ "k8s.io/client-go/tools/cache"
+
"github.com/google/go-containerregistry/pkg/authn/k8schain"
cachinginformers "github.com/knative/caching/pkg/client/informers/externalversions/caching/v1alpha1"
cachinglisters "github.com/knative/caching/pkg/client/listers/caching/v1alpha1"
@@ -33,23 +45,15 @@ import (
"github.com/knative/pkg/tracker"
"github.com/knative/serving/pkg/apis/serving"
"github.com/knative/serving/pkg/apis/serving/v1alpha1"
- kpainformers "github.com/knative/serving/pkg/client/informers/externalversions/autoscaling/v1alpha1"
+ painformers "github.com/knative/serving/pkg/client/informers/externalversions/autoscaling/v1alpha1"
servinginformers "github.com/knative/serving/pkg/client/informers/externalversions/serving/v1alpha1"
kpalisters "github.com/knative/serving/pkg/client/listers/autoscaling/v1alpha1"
listers "github.com/knative/serving/pkg/client/listers/serving/v1alpha1"
+ "github.com/knative/serving/pkg/network"
"github.com/knative/serving/pkg/reconciler"
"github.com/knative/serving/pkg/reconciler/v1alpha1/revision/config"
+
"go.uber.org/zap"
- corev1 "k8s.io/api/core/v1"
- "k8s.io/apimachinery/pkg/api/equality"
- apierrs "k8s.io/apimachinery/pkg/api/errors"
- "k8s.io/apimachinery/pkg/api/meta"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- appsv1informers "k8s.io/client-go/informers/apps/v1"
- corev1informers "k8s.io/client-go/informers/core/v1"
- appsv1listers "k8s.io/client-go/listers/apps/v1"
- corev1listers "k8s.io/client-go/listers/core/v1"
- "k8s.io/client-go/tools/cache"
)
const (
@@ -71,7 +75,7 @@ const (
)
type resolver interface {
- Resolve(string, k8schain.Options, map[string]struct{}) (string, error)
+ Resolve(string, k8schain.Options, sets.String) (string, error)
}
type configStore interface {
@@ -85,13 +89,13 @@ type Reconciler struct {
*reconciler.Base
// lister indexes properties about Revision
- revisionLister listers.RevisionLister
- kpaLister kpalisters.PodAutoscalerLister
- imageLister cachinglisters.ImageLister
- deploymentLister appsv1listers.DeploymentLister
- serviceLister corev1listers.ServiceLister
- endpointsLister corev1listers.EndpointsLister
- configMapLister corev1listers.ConfigMapLister
+ revisionLister listers.RevisionLister
+ podAutoscalerLister kpalisters.PodAutoscalerLister
+ imageLister cachinglisters.ImageLister
+ deploymentLister appsv1listers.DeploymentLister
+ serviceLister corev1listers.ServiceLister
+ endpointsLister corev1listers.EndpointsLister
+ configMapLister corev1listers.ConfigMapLister
buildInformerFactory duck.InformerFactory
@@ -111,7 +115,7 @@ var _ controller.Reconciler = (*Reconciler)(nil)
func NewController(
opt reconciler.Options,
revisionInformer servinginformers.RevisionInformer,
- kpaInformer kpainformers.PodAutoscalerInformer,
+ podAutoscalerInformer painformers.PodAutoscalerInformer,
imageInformer cachinginformers.ImageInformer,
deploymentInformer appsv1informers.DeploymentInformer,
serviceInformer corev1informers.ServiceInformer,
@@ -119,19 +123,25 @@ func NewController(
configMapInformer corev1informers.ConfigMapInformer,
buildInformerFactory duck.InformerFactory,
) *controller.Impl {
+ transport := http.DefaultTransport
+ if rt, err := newResolverTransport(k8sCertPath); err != nil {
+ opt.Logger.Errorf("Failed to create resolver transport: %v", err)
+ } else {
+ transport = rt
+ }
c := &Reconciler{
- Base: reconciler.NewBase(opt, controllerAgentName),
- revisionLister: revisionInformer.Lister(),
- kpaLister: kpaInformer.Lister(),
- imageLister: imageInformer.Lister(),
- deploymentLister: deploymentInformer.Lister(),
- serviceLister: serviceInformer.Lister(),
- endpointsLister: endpointsInformer.Lister(),
- configMapLister: configMapInformer.Lister(),
+ Base: reconciler.NewBase(opt, controllerAgentName),
+ revisionLister: revisionInformer.Lister(),
+ podAutoscalerLister: podAutoscalerInformer.Lister(),
+ imageLister: imageInformer.Lister(),
+ deploymentLister: deploymentInformer.Lister(),
+ serviceLister: serviceInformer.Lister(),
+ endpointsLister: endpointsInformer.Lister(),
+ configMapLister: configMapInformer.Lister(),
resolver: &digestResolver{
client: opt.KubeClientSet,
- transport: http.DefaultTransport,
+ transport: transport,
},
}
impl := controller.NewImpl(c, c.Logger, "Revisions", reconciler.MustNewStatsReporter("Revisions", c.Logger))
@@ -145,8 +155,9 @@ func NewController(
})
endpointsInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
- AddFunc: c.EnqueueEndpointsRevision(impl),
- UpdateFunc: controller.PassNew(c.EnqueueEndpointsRevision(impl)),
+ AddFunc: impl.EnqueueLabelOfNamespaceScopedResource("", serving.RevisionLabelKey),
+ UpdateFunc: controller.PassNew(impl.EnqueueLabelOfNamespaceScopedResource("", serving.RevisionLabelKey)),
+ DeleteFunc: impl.EnqueueLabelOfNamespaceScopedResource("", serving.RevisionLabelKey),
})
deploymentInformer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{
@@ -154,14 +165,16 @@ func NewController(
Handler: cache.ResourceEventHandlerFuncs{
AddFunc: impl.EnqueueControllerOf,
UpdateFunc: controller.PassNew(impl.EnqueueControllerOf),
+ DeleteFunc: impl.EnqueueControllerOf,
},
})
- kpaInformer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{
+ podAutoscalerInformer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{
FilterFunc: controller.Filter(v1alpha1.SchemeGroupVersion.WithKind("Revision")),
Handler: cache.ResourceEventHandlerFuncs{
AddFunc: impl.EnqueueControllerOf,
UpdateFunc: controller.PassNew(impl.EnqueueControllerOf),
+ DeleteFunc: impl.EnqueueControllerOf,
},
})
@@ -176,15 +189,25 @@ func NewController(
Handler: cache.ResourceEventHandlerFuncs{
AddFunc: impl.EnqueueControllerOf,
UpdateFunc: controller.PassNew(impl.EnqueueControllerOf),
+ DeleteFunc: impl.EnqueueControllerOf,
},
})
c.buildInformerFactory = newDuckInformerFactory(c.tracker, buildInformerFactory)
- // TODO(mattmoor): When we support reconciling Deployment differences,
- // we should consider triggering a global reconciliation here to the
- // logging configuration changes are rolled out to active revisions.
- c.configStore = config.NewStore(c.Logger.Named("config-store"))
+ configsToResync := []interface{}{
+ &network.Config{},
+ &config.Observability{},
+ &config.Controller{},
+ }
+
+ resync := configmap.TypeFilter(configsToResync...)(func(string, interface{}) {
+ // Triggers syncs on all revisions when configuration
+ // changes
+ impl.GlobalResync(revisionInformer.Informer())
+ })
+
+ c.configStore = config.NewStore(c.Logger.Named("config-store"), resync)
c.configStore.WatchConfigs(opt.ConfigMapWatcher)
return impl
@@ -206,6 +229,7 @@ func newDuckInformerFactory(t tracker.Interface, delegate duck.InformerFactory)
EventHandler: cache.ResourceEventHandlerFuncs{
AddFunc: t.OnChanged,
UpdateFunc: controller.PassNew(t.OnChanged),
+ DeleteFunc: t.OnChanged,
},
},
}
@@ -235,8 +259,16 @@ func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
} else if err != nil {
return err
}
+
// Don't modify the informer's copy.
- rev := original.DeepCopy()
+ rev, err := c.migrateConfigurationMetadata(original.DeepCopy())
+
+ if err != nil {
+ logger.Warnw("Failed to migrate revision labels", zap.Error(err))
+ c.Recorder.Eventf(rev, corev1.EventTypeWarning, "UpdateFailed",
+ "Failed to migrate revision %q labels: %v", rev.Name, err)
+ return err
+ }
// Reconcile this copy of the revision and then write back any status
// updates regardless of whether the reconciliation errored out.
@@ -246,12 +278,11 @@ func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
// This is important because the copy we loaded from the informer's
// cache may be stale and we don't want to overwrite a prior update
// to status with this stale state.
- } else {
- // logger.Infof("Updating Status (-old, +new): %v", cmp.Diff(original, rev))
- if _, err := c.updateStatus(rev); err != nil {
- logger.Warn("Failed to update revision status", zap.Error(err))
- return err
- }
+ } else if _, err := c.updateStatus(rev); err != nil {
+ logger.Warn("Failed to update revision status", zap.Error(err))
+ c.Recorder.Eventf(rev, corev1.EventTypeWarning, "UpdateFailed",
+ "Failed to update status for Revision %q: %v", rev.Name, err)
+ return err
}
return err
}
@@ -259,6 +290,13 @@ func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
func (c *Reconciler) reconcileBuild(ctx context.Context, rev *v1alpha1.Revision) error {
buildRef := rev.BuildRef()
if buildRef == nil {
+ rev.Status.PropagateBuildStatus(duckv1alpha1.KResourceStatus{
+ Conditions: []duckv1alpha1.Condition{{
+ Type: duckv1alpha1.ConditionSucceeded,
+ Status: corev1.ConditionTrue,
+ Reason: "NoBuild",
+ }},
+ })
return nil
}
@@ -268,7 +306,6 @@ func (c *Reconciler) reconcileBuild(ctx context.Context, rev *v1alpha1.Revision)
logger.Errorf("Error tracking build '%+v' for Revision %q: %+v", buildRef, rev.Name, err)
return err
}
- rev.Status.InitializeBuildCondition()
gvr, _ := meta.UnsafeGuessKindToResource(buildRef.GroupVersionKind())
_, lister, err := c.buildInformerFactory.Get(gvr)
@@ -314,7 +351,7 @@ func (c *Reconciler) reconcileDigest(ctx context.Context, rev *v1alpha1.Revision
}
digest, err := c.resolver.Resolve(rev.Spec.Container.Image, opt, cfgs.Controller.RegistriesSkippingTagResolving)
if err != nil {
- rev.Status.MarkContainerMissing(err.Error())
+ rev.Status.MarkContainerMissing(v1alpha1.RevisionContainerMissingMessage(rev.Spec.Container.Image, err.Error()))
return err
}
@@ -325,10 +362,21 @@ func (c *Reconciler) reconcileDigest(ctx context.Context, rev *v1alpha1.Revision
func (c *Reconciler) reconcile(ctx context.Context, rev *v1alpha1.Revision) error {
logger := commonlogging.FromContext(ctx)
+ if rev.GetDeletionTimestamp() != nil {
+ return nil
+ }
+
+ // We may be reading a version of the object that was stored at an older version
+ // and may not have had all of the assumed defaults specified. This won't result
+ // in this getting written back to the API Server, but lets downstream logic make
+ // assumptions about defaulting.
+ rev.SetDefaults()
rev.Status.InitializeConditions()
c.updateRevisionLoggingURL(ctx, rev)
+ readyBeforeReconcile := rev.Status.IsReady()
+
if err := c.reconcileBuild(ctx, rev); err != nil {
return err
}
@@ -366,6 +414,13 @@ func (c *Reconciler) reconcile(ctx context.Context, rev *v1alpha1.Revision) erro
}
}
+ readyAfterReconcile := rev.Status.IsReady()
+ if !readyBeforeReconcile && readyAfterReconcile {
+ c.Recorder.Eventf(rev, corev1.EventTypeNormal, "RevisionReady",
+ "Revision becomes ready upon all resources being ready")
+ }
+
+ rev.Status.ObservedGeneration = rev.Generation
return nil
}
@@ -386,31 +441,62 @@ func (c *Reconciler) updateRevisionLoggingURL(
"${REVISION_UID}", uid, -1)
}
-func (c *Reconciler) EnqueueEndpointsRevision(impl *controller.Impl) func(obj interface{}) {
- return func(obj interface{}) {
- endpoints := obj.(*corev1.Endpoints)
- // Use the label on the Endpoints (from Service) to determine whether it is
- // owned by a Revision, and if so queue that Revision.
- if revisionName, ok := endpoints.Labels[serving.RevisionLabelKey]; ok {
- impl.EnqueueKey(endpoints.Namespace + "/" + revisionName)
- }
- }
-}
-
func (c *Reconciler) updateStatus(desired *v1alpha1.Revision) (*v1alpha1.Revision, error) {
rev, err := c.revisionLister.Revisions(desired.Namespace).Get(desired.Name)
if err != nil {
return nil, err
}
- // Check if there is anything to update.
- if !reflect.DeepEqual(rev.Status, desired.Status) {
- // Don't modify the informers copy
- existing := rev.DeepCopy()
- existing.Status = desired.Status
-
- // TODO: for CRD there's no updatestatus, so use normal update
- return c.ServingClientSet.ServingV1alpha1().Revisions(desired.Namespace).Update(existing)
- // return prClient.UpdateStatus(newRev)
+ // If there's nothing to update, just return.
+ if reflect.DeepEqual(rev.Status, desired.Status) {
+ return rev, nil
+ }
+ // Don't modify the informers copy
+ existing := rev.DeepCopy()
+ existing.Status = desired.Status
+ return c.ServingClientSet.ServingV1alpha1().Revisions(desired.Namespace).UpdateStatus(existing)
+}
+
+// TODO(643) Change this logic in 0.5 to only drop the deprecated label
+// Delete this logic in 0.6
+func (c *Reconciler) migrateConfigurationMetadata(rev *v1alpha1.Revision) (*v1alpha1.Revision, error) {
+ stale := false
+
+ // The /configurationGeneration label key used to be an annotation key
+ // This is not the case anymore so if the revision has that annotation
+ // we delete it since it used to point to a configuration's spec.generation
+ if rev.Annotations[serving.ConfigurationGenerationLabelKey] != "" {
+ delete(rev.Annotations, serving.ConfigurationGenerationLabelKey)
+ stale = true
+ }
+
+ legacyKey := serving.DeprecatedConfigurationMetadataGenerationLabelKey
+ targetKey := serving.ConfigurationGenerationLabelKey
+
+ legacyValue, hasLegacy := rev.Labels[legacyKey]
+ targetValue, hasTarget := rev.Labels[targetKey]
+
+ // If the two keys are different then set /configurationGeneration
+ // to be the value of the label /configurationMetadataGeneration
+ if hasLegacy && targetValue != legacyValue {
+ stale = true
+ rev.Labels[targetKey] = legacyValue
+ }
+
+ if hasTarget && !hasLegacy {
+ // This occurs if the revision was created with 0.2 and
+ // received a /configurationGeneration label but never
+ // received a /configurationMetadataGeneration label since
+ // it was not the latest created revision
+ //
+ // We drop this label since it's value was set according
+ // to a configuration's spec.generation
+ stale = true
+ delete(rev.Labels, serving.ConfigurationGenerationLabelKey)
}
- return rev, nil
+
+ if !stale {
+ return rev, nil
+ }
+
+ return c.ServingClientSet.ServingV1alpha1().Revisions(rev.Namespace).Update(rev)
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/config/domain.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/config/domain.go
index e8870f9e86..60a3aa6328 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/config/domain.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/config/domain.go
@@ -17,15 +17,31 @@ limitations under the License.
package config
import (
- "fmt"
"strings"
"github.com/ghodss/yaml"
+ "github.com/knative/serving/pkg/utils"
corev1 "k8s.io/api/core/v1"
)
const (
DomainConfigName = "config-domain"
+ // VisibilityLabelKey is the label to indicate visibility of Route
+ // and KServices. It can be an annotation too but since users are
+ // already using labels for domain, it probably best to keep this
+ // consistent.
+ VisibilityLabelKey = "serving.knative.dev/visibility"
+ // VisibilityClusterLocal is the label value for VisibilityLabelKey
+ // that will result to the Route/KService getting a cluster local
+ // domain suffix.
+ VisibilityClusterLocal = "cluster-local"
+ // DefaultDomain holds the domain that Route's live under by default
+ // when no label selector-based options apply.
+ DefaultDomain = "example.com"
+
+ // The key that holds our example configuration.
+ // TODO(mattmoor): We should get this from knative/pkg/configmap
+ exampleKey = "_example"
)
// LabelSelector represents map of {key,value} pairs. A single {key,value} in the
@@ -64,6 +80,9 @@ func NewDomainFromConfigMap(configMap *corev1.ConfigMap) (*Domain, error) {
c := Domain{Domains: map[string]*LabelSelector{}}
hasDefault := false
for k, v := range configMap.Data {
+ if k == exampleKey {
+ continue
+ }
labelSelector := LabelSelector{}
err := yaml.Unmarshal([]byte(v), &labelSelector)
if err != nil {
@@ -75,7 +94,7 @@ func NewDomainFromConfigMap(configMap *corev1.ConfigMap) (*Domain, error) {
}
}
if !hasDefault {
- return nil, fmt.Errorf("Config %#v must have a default domain", configMap.Data)
+ c.Domains[DefaultDomain] = &LabelSelector{}
}
return &c, nil
}
@@ -86,7 +105,11 @@ func NewDomainFromConfigMap(configMap *corev1.ConfigMap) (*Domain, error) {
func (c *Domain) LookupDomainForLabels(labels map[string]string) string {
domain := ""
specificity := -1
-
+ // If we see VisibilityLabelKey sets with VisibilityClusterLocal, that
+ // will take precedence and the route will get a Cluster's Domain Name.
+ if l, _ := labels[VisibilityLabelKey]; l == VisibilityClusterLocal {
+ return "svc." + utils.GetClusterDomainName()
+ }
for k, selector := range c.Domains {
// Ignore if selector doesn't match, or decrease the specificity.
if !selector.Matches(labels) || selector.specificity() < specificity {
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/config/store.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/config/store.go
index 1eff2c3649..f122edeb97 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/config/store.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/config/store.go
@@ -21,14 +21,16 @@ import (
"github.com/knative/pkg/configmap"
"github.com/knative/serving/pkg/gc"
+ "github.com/knative/serving/pkg/network"
)
type cfgKey struct{}
// +k8s:deepcopy-gen=false
type Config struct {
- Domain *Domain
- GC *gc.Config
+ Domain *Domain
+ GC *gc.Config
+ Network *network.Config
}
func FromContext(ctx context.Context) *Config {
@@ -62,8 +64,9 @@ func NewStore(logger configmap.Logger, onAfterStore ...func(name string, value i
"route",
logger,
configmap.Constructors{
- DomainConfigName: NewDomainFromConfigMap,
- gc.ConfigName: gc.NewConfigFromConfigMap,
+ DomainConfigName: NewDomainFromConfigMap,
+ gc.ConfigName: gc.NewConfigFromConfigMap,
+ network.ConfigName: network.NewConfigFromConfigMap,
},
onAfterStore...,
),
@@ -78,7 +81,8 @@ func (s *Store) ToContext(ctx context.Context) context.Context {
func (s *Store) Load() *Config {
return &Config{
- Domain: s.UntypedLoad(DomainConfigName).(*Domain).DeepCopy(),
- GC: s.UntypedLoad(gc.ConfigName).(*gc.Config).DeepCopy(),
+ Domain: s.UntypedLoad(DomainConfigName).(*Domain).DeepCopy(),
+ GC: s.UntypedLoad(gc.ConfigName).(*gc.Config).DeepCopy(),
+ Network: s.UntypedLoad(network.ConfigName).(*network.Config).DeepCopy(),
}
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/config/testdata/config-network.yaml b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/config/testdata/config-network.yaml
new file mode 120000
index 0000000000..f17cdcd38a
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/config/testdata/config-network.yaml
@@ -0,0 +1 @@
+../../../../../../config/config-network.yaml
\ No newline at end of file
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/reconcile_resources.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/reconcile_resources.go
index 580c2a396e..c934bcef55 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/reconcile_resources.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/reconcile_resources.go
@@ -21,14 +21,6 @@ import (
"fmt"
"reflect"
- "go.uber.org/zap"
- "golang.org/x/sync/errgroup"
- corev1 "k8s.io/api/core/v1"
- "k8s.io/apimachinery/pkg/api/equality"
- apierrs "k8s.io/apimachinery/pkg/api/errors"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/apimachinery/pkg/types"
-
"github.com/knative/pkg/apis/duck"
"github.com/knative/pkg/logging"
netv1alpha1 "github.com/knative/serving/pkg/apis/networking/v1alpha1"
@@ -38,19 +30,33 @@ import (
"github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources"
resourcenames "github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources/names"
"github.com/knative/serving/pkg/reconciler/v1alpha1/route/traffic"
+ "go.uber.org/zap"
+ "golang.org/x/sync/errgroup"
+ corev1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/api/equality"
+ apierrs "k8s.io/apimachinery/pkg/api/errors"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/apimachinery/pkg/labels"
+ "k8s.io/apimachinery/pkg/types"
)
func (c *Reconciler) getClusterIngressForRoute(route *v1alpha1.Route) (*netv1alpha1.ClusterIngress, error) {
- selector := labels.Set(map[string]string{
- serving.RouteLabelKey: route.Name,
- serving.RouteNamespaceLabelKey: route.Namespace,
- }).AsSelector()
+ // First, look up the fixed name.
+ ciName := resourcenames.ClusterIngress(route)
+ ci, err := c.clusterIngressLister.Get(ciName)
+ if err == nil {
+ return ci, nil
+ }
+
+ // If that isn't found, then fallback on the legacy selector-based approach.
+ selector := routeOwnerLabelSelector(route)
ingresses, err := c.clusterIngressLister.List(selector)
if err != nil {
return nil, err
}
if len(ingresses) == 0 {
- return nil, apierrs.NewNotFound(v1alpha1.Resource("clusteringress"), resourcenames.ClusterIngressPrefix(route) /* prefix of GenerateName here */)
+ return nil, apierrs.NewNotFound(
+ v1alpha1.Resource("clusteringress"), resourcenames.ClusterIngress(route))
}
if len(ingresses) > 1 {
@@ -61,6 +67,22 @@ func (c *Reconciler) getClusterIngressForRoute(route *v1alpha1.Route) (*netv1alp
return ingresses[0], nil
}
+func routeOwnerLabelSelector(route *v1alpha1.Route) labels.Selector {
+ return labels.Set(map[string]string{
+ serving.RouteLabelKey: route.Name,
+ serving.RouteNamespaceLabelKey: route.Namespace,
+ }).AsSelector()
+}
+
+func (c *Reconciler) deleteClusterIngressesForRoute(route *v1alpha1.Route) error {
+ selector := routeOwnerLabelSelector(route).String()
+
+ // We always use DeleteCollection because even with a fixed name, we apply the labels.
+ return c.ServingClientSet.NetworkingV1alpha1().ClusterIngresses().DeleteCollection(
+ nil, metav1.ListOptions{LabelSelector: selector},
+ )
+}
+
func (c *Reconciler) reconcileClusterIngress(
ctx context.Context, r *v1alpha1.Route, desired *netv1alpha1.ClusterIngress) (*netv1alpha1.ClusterIngress, error) {
logger := logging.FromContext(ctx)
@@ -76,9 +98,11 @@ func (c *Reconciler) reconcileClusterIngress(
c.Recorder.Eventf(r, corev1.EventTypeNormal, "Created",
"Created ClusterIngress %q", clusterIngress.Name)
return clusterIngress, nil
- } else if err == nil {
+ } else if err != nil {
+ return nil, err
+ } else {
// TODO(#642): Remove this (needed to avoid continuous updates)
- desired.Spec.Generation = clusterIngress.Spec.Generation
+ desired.Spec.DeprecatedGeneration = clusterIngress.Spec.DeprecatedGeneration
if !equality.Semantic.DeepEqual(clusterIngress.Spec, desired.Spec) {
// Don't modify the informers copy
origin := clusterIngress.DeepCopy()
@@ -96,22 +120,11 @@ func (c *Reconciler) reconcileClusterIngress(
return clusterIngress, err
}
-func (c *Reconciler) reconcilePlaceholderService(ctx context.Context, route *v1alpha1.Route) error {
+func (c *Reconciler) reconcilePlaceholderService(ctx context.Context, route *v1alpha1.Route, ingress *netv1alpha1.ClusterIngress) error {
logger := logging.FromContext(ctx)
ns := route.Namespace
name := resourcenames.K8sService(route)
- ingress, err := c.getClusterIngressForRoute(route)
- if apierrs.IsNotFound(err) {
- // Ingress not exist, skip creating.
- logger.Infof("Ingress for route %s/%s not exist, skip creating placeholder k8s service", ns, name)
- return nil
- }
- if err != nil {
- // Return errors other than not found error.
- return err
- }
-
desiredService, err := resources.MakeK8sService(route, ingress)
if err != nil {
// Loadbalancer not ready, no need to create.
@@ -133,10 +146,12 @@ func (c *Reconciler) reconcilePlaceholderService(ctx context.Context, route *v1a
c.Recorder.Eventf(route, corev1.EventTypeNormal, "Created", "Created service %q", name)
} else if err != nil {
return err
+ } else if !metav1.IsControlledBy(service, route) {
+ // Surface an error in the route's status, and return an error.
+ route.Status.MarkServiceNotOwned(name)
+ return fmt.Errorf("Route: %q does not own Service: %q", route.Name, name)
} else {
- // Make sure that the service has the proper specification
- // Preserve the ClusterIP field in the Service's Spec, if it has been set.
- desiredService.Spec.ClusterIP = service.Spec.ClusterIP
+ // Make sure that the service has the proper specification.
if !equality.Semantic.DeepEqual(service.Spec, desiredService.Spec) {
// Don't modify the informers copy
existing := service.DeepCopy()
@@ -155,33 +170,27 @@ func (c *Reconciler) reconcilePlaceholderService(ctx context.Context, route *v1a
// Update the Status of the route. Caller is responsible for checking
// for semantic differences before calling.
-func (c *Reconciler) updateStatus(ctx context.Context, route *v1alpha1.Route) (*v1alpha1.Route, error) {
- existing, err := c.routeLister.Routes(route.Namespace).Get(route.Name)
+func (c *Reconciler) updateStatus(desired *v1alpha1.Route) (*v1alpha1.Route, error) {
+ route, err := c.routeLister.Routes(desired.Namespace).Get(desired.Name)
if err != nil {
return nil, err
}
- existing = existing.DeepCopy()
// If there's nothing to update, just return.
- if reflect.DeepEqual(existing.Status, route.Status) {
- return existing, nil
+ if reflect.DeepEqual(route.Status, desired.Status) {
+ return route, nil
}
- existing.Status = route.Status
- // TODO: for CRD there's no updatestatus, so use normal update.
- updated, err := c.ServingClientSet.ServingV1alpha1().Routes(route.Namespace).Update(existing)
- if err != nil {
- return nil, err
- }
-
- c.Recorder.Eventf(route, corev1.EventTypeNormal, "Updated", "Updated status for route %q", route.Name)
- return updated, nil
+ // Don't modify the informers copy
+ existing := route.DeepCopy()
+ existing.Status = desired.Status
+ return c.ServingClientSet.ServingV1alpha1().Routes(desired.Namespace).UpdateStatus(existing)
}
// Update the lastPinned annotation on revisions we target so they don't get GC'd.
-func (c *Reconciler) reconcileTargetRevisions(ctx context.Context, t *traffic.TrafficConfig, route *v1alpha1.Route) error {
+func (c *Reconciler) reconcileTargetRevisions(ctx context.Context, t *traffic.Config, route *v1alpha1.Route) error {
gcConfig := config.FromContext(ctx).GC
lpDebounce := gcConfig.StaleRevisionLastpinnedDebounce
- eg, ctx := errgroup.WithContext(ctx)
+ eg, _ := errgroup.WithContext(ctx)
for _, target := range t.Targets {
for _, rt := range target {
tt := rt.TrafficTarget
@@ -197,12 +206,12 @@ func (c *Reconciler) reconcileTargetRevisions(ctx context.Context, t *traffic.Tr
newRev := rev.DeepCopy()
lastPin, err := newRev.GetLastPinned()
if err != nil {
- // Missing is an expected error case for a not yet pinned revision
+ // Missing is an expected error case for a not yet pinned revision.
if err.(v1alpha1.LastPinnedParseError).Type != v1alpha1.AnnotationParseErrorTypeMissing {
return err
}
} else {
- // Enforce a delay before performing an update on lastPinned to avoid excess churn
+ // Enforce a delay before performing an update on lastPinned to avoid excess churn.
if lastPin.Add(lpDebounce).After(c.clock.Now()) {
return nil
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources/cluster_ingress.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources/cluster_ingress.go
index f8dd6cbff2..a6faccf1bc 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources/cluster_ingress.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources/cluster_ingress.go
@@ -19,12 +19,15 @@ package resources
import (
"fmt"
"sort"
+ "strings"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
+ "k8s.io/apimachinery/pkg/util/sets"
- "github.com/knative/pkg/kmeta"
+ "github.com/knative/pkg/system"
"github.com/knative/serving/pkg/activator"
+ "github.com/knative/serving/pkg/apis/networking"
"github.com/knative/serving/pkg/apis/networking/v1alpha1"
"github.com/knative/serving/pkg/apis/serving"
servingv1alpha1 "github.com/knative/serving/pkg/apis/serving/v1alpha1"
@@ -32,83 +35,81 @@ import (
revisionresources "github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources"
"github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources/names"
"github.com/knative/serving/pkg/reconciler/v1alpha1/route/traffic"
- "github.com/knative/serving/pkg/system"
+ "github.com/knative/serving/pkg/utils"
)
+func isClusterLocal(r *servingv1alpha1.Route) bool {
+ return strings.HasSuffix(r.Status.Domain, utils.GetClusterDomainName())
+}
+
// MakeClusterIngress creates ClusterIngress to set up routing rules. Such ClusterIngress specifies
// which Hosts that it applies to, as well as the routing rules.
-func MakeClusterIngress(r *servingv1alpha1.Route, tc *traffic.TrafficConfig) *v1alpha1.ClusterIngress {
- return &v1alpha1.ClusterIngress{
+func MakeClusterIngress(r *servingv1alpha1.Route, tc *traffic.Config, ingressClass string) *v1alpha1.ClusterIngress {
+ ci := &v1alpha1.ClusterIngress{
ObjectMeta: metav1.ObjectMeta{
// As ClusterIngress resource is cluster-scoped,
// here we use GenerateName to avoid conflict.
- GenerateName: names.ClusterIngressPrefix(r),
+ Name: names.ClusterIngress(r),
Labels: map[string]string{
serving.RouteLabelKey: r.Name,
serving.RouteNamespaceLabelKey: r.Namespace,
},
- OwnerReferences: []metav1.OwnerReference{*kmeta.NewControllerRef(r)},
+ Annotations: r.ObjectMeta.Annotations,
},
Spec: makeClusterIngressSpec(r, tc.Targets),
}
+ // Set the ingress class annotation.
+ if ci.ObjectMeta.Annotations == nil {
+ ci.ObjectMeta.Annotations = make(map[string]string)
+ }
+ ci.ObjectMeta.Annotations[networking.IngressClassAnnotationKey] = ingressClass
+ return ci
}
-func makeClusterIngressSpec(r *servingv1alpha1.Route, targets map[string][]traffic.RevisionTarget) v1alpha1.IngressSpec {
+func makeClusterIngressSpec(r *servingv1alpha1.Route, targets map[string]traffic.RevisionTargets) v1alpha1.IngressSpec {
// Domain should have been specified in route status
// before calling this func.
- domain := r.Status.Domain
- names := []string{}
+ names := make([]string, 0, len(targets))
for name := range targets {
names = append(names, name)
}
// Sort the names to give things a deterministic ordering.
sort.Strings(names)
+
// The routes are matching rule based on domain name to traffic split targets.
- rules := []v1alpha1.ClusterIngressRule{}
+ rules := make([]v1alpha1.ClusterIngressRule, 0, len(names))
for _, name := range names {
- rules = append(rules, *makeClusterIngressRule(getRouteDomains(name, r, domain), r.Namespace, targets[name]))
+ rules = append(rules, *makeClusterIngressRule(
+ routeDomains(name, r), r.Namespace, targets[name]))
}
- return v1alpha1.IngressSpec{
- Rules: rules,
+ spec := v1alpha1.IngressSpec{
+ Rules: rules,
+ Visibility: v1alpha1.IngressVisibilityExternalIP,
}
+ if isClusterLocal(r) {
+ spec.Visibility = v1alpha1.IngressVisibilityClusterLocal
+ }
+ return spec
}
-func getRouteDomains(targetName string, r *servingv1alpha1.Route, domain string) []string {
- if targetName == "" {
+func routeDomains(targetName string, r *servingv1alpha1.Route) []string {
+ if targetName == traffic.DefaultTarget {
// Nameless traffic targets correspond to many domains: the
- // Route.Status.Domain, and also various names of the Route's
- // headless Service.
- domains := []string{domain,
+ // Route.Status.Domain.
+ domains := []string{
+ r.Status.Domain,
names.K8sServiceFullname(r),
- fmt.Sprintf("%s.%s.svc", r.Name, r.Namespace),
- fmt.Sprintf("%s.%s", r.Name, r.Namespace),
}
return dedup(domains)
}
- return []string{fmt.Sprintf("%s.%s", targetName, domain)}
-}
-
-// groupTargets group given targets into active ones and inactive ones.
-func groupTargets(targets []traffic.RevisionTarget) (active []traffic.RevisionTarget, inactive []traffic.RevisionTarget) {
- for _, t := range targets {
- if t.Active {
- active = append(active, t)
- } else {
- inactive = append(inactive, t)
- }
- }
- return active, inactive
+ return []string{fmt.Sprintf("%s.%s", targetName, r.Status.Domain)}
}
-
-func makeClusterIngressRule(domains []string, ns string, targets []traffic.RevisionTarget) *v1alpha1.ClusterIngressRule {
- active, inactive := groupTargets(targets)
- splits := []v1alpha1.ClusterIngressBackendSplit{}
+func makeClusterIngressRule(domains []string, ns string, targets traffic.RevisionTargets) *v1alpha1.ClusterIngressRule {
+ active, inactive := targets.GroupTargets()
+ // Optimistically allocate |active| elements.
+ splits := make([]v1alpha1.ClusterIngressBackendSplit, 0, len(active))
for _, t := range active {
- if t.Percent == 0 {
- // Don't include 0% routes.
- continue
- }
splits = append(splits, v1alpha1.ClusterIngressBackendSplit{
ClusterIngressBackend: v1alpha1.ClusterIngressBackend{
ServiceNamespace: ns,
@@ -118,41 +119,39 @@ func makeClusterIngressRule(domains []string, ns string, targets []traffic.Revis
Percent: t.Percent,
})
}
- path := v1alpha1.HTTPClusterIngressPath{
+ path := &v1alpha1.HTTPClusterIngressPath{
Splits: splits,
// TODO(lichuqiang): #2201, plumbing to config timeout and retries.
-
}
path.SetDefaults()
return &v1alpha1.ClusterIngressRule{
Hosts: domains,
HTTP: &v1alpha1.HTTPClusterIngressRuleValue{
Paths: []v1alpha1.HTTPClusterIngressPath{
- *addInactive(&path, ns, inactive),
+ *addInactive(path, ns, inactive),
},
},
}
}
// addInactive constructs Splits for the inactive targets, and add into given IngressPath.
-func addInactive(r *v1alpha1.HTTPClusterIngressPath, ns string, inactive []traffic.RevisionTarget) *v1alpha1.HTTPClusterIngressPath {
+func addInactive(r *v1alpha1.HTTPClusterIngressPath, ns string, inactive traffic.RevisionTargets) *v1alpha1.HTTPClusterIngressPath {
+ if len(inactive) == 0 {
+ return r
+ }
totalInactivePercent := 0
- maxInactiveTarget := traffic.RevisionTarget{}
- for _, t := range inactive {
+ maxInactiveTarget := &inactive[0]
+ for i, t := range inactive {
totalInactivePercent += t.Percent
if t.Percent >= maxInactiveTarget.Percent {
- maxInactiveTarget = t
+ maxInactiveTarget = &inactive[i]
}
}
- if totalInactivePercent == 0 {
- // There is actually no inactive Revisions.
- return r
- }
r.Splits = append(r.Splits, v1alpha1.ClusterIngressBackendSplit{
ClusterIngressBackend: v1alpha1.ClusterIngressBackend{
- ServiceNamespace: system.Namespace,
+ ServiceNamespace: system.Namespace(),
ServiceName: activator.K8sServiceName,
- ServicePort: intstr.FromInt(int(revisionresources.ServicePort)),
+ ServicePort: intstr.FromInt(int(activator.ServicePort(maxInactiveTarget.Protocol))),
},
Percent: totalInactivePercent,
})
@@ -164,11 +163,11 @@ func addInactive(r *v1alpha1.HTTPClusterIngressPath, ns string, inactive []traff
}
func dedup(strs []string) []string {
- existed := make(map[string]struct{})
+ existed := sets.NewString()
unique := []string{}
for _, s := range strs {
- if _, ok := existed[s]; !ok {
- existed[s] = struct{}{}
+ if !existed.Has(s) {
+ existed.Insert(s)
unique = append(unique, s)
}
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources/names/names.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources/names/names.go
index 951113ad59..a1ea4e4c6e 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources/names/names.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources/names/names.go
@@ -21,17 +21,8 @@ import (
"github.com/knative/serving/pkg/apis/serving/v1alpha1"
"github.com/knative/serving/pkg/reconciler"
- "github.com/knative/serving/pkg/system"
)
-var K8sGatewayFullname = reconciler.GetK8sServiceFullname(
- "knative-shared-gateway",
- system.Namespace)
-
-var K8sGatewayServiceFullname = reconciler.GetK8sServiceFullname(
- "knative-ingressgateway",
- "istio-system")
-
func K8sService(route *v1alpha1.Route) string {
return route.Name
}
@@ -40,8 +31,8 @@ func K8sServiceFullname(route *v1alpha1.Route) string {
return reconciler.GetK8sServiceFullname(K8sService(route), route.Namespace)
}
-// ClusterIngressPrefix returns GenerateName prefix of the
-// ClusterIngress child resource for given Route.
-func ClusterIngressPrefix(route *v1alpha1.Route) string {
- return fmt.Sprintf("%s-", route.Name)
+// ClusterIngress returns the name for the ClusterIngress
+// child resource for the given Route.
+func ClusterIngress(route *v1alpha1.Route) string {
+ return fmt.Sprintf("route-%s", route.UID)
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources/service.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources/service.go
index 4bc53aed34..61f1e8959f 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources/service.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources/service.go
@@ -26,6 +26,7 @@ import (
"github.com/knative/pkg/kmeta"
netv1alpha1 "github.com/knative/serving/pkg/apis/networking/v1alpha1"
"github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ revisionresources "github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources"
"github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources/names"
)
@@ -78,10 +79,22 @@ func makeServiceSpec(ingress *netv1alpha1.ClusterIngress) (*corev1.ServiceSpec,
Type: corev1.ServiceTypeExternalName,
ExternalName: balancer.Domain,
}, nil
+ case balancer.MeshOnly:
+ // The ClusterIngress is loadbalanced through a Service mesh.
+ // We won't have a specific LB endpoint to route traffic to,
+ // but we still need to create a ClusterIP service to make
+ // sure the domain name is available for access within the
+ // mesh.
+ return &corev1.ServiceSpec{
+ Type: corev1.ServiceTypeClusterIP,
+ Ports: []corev1.ServicePort{{
+ Name: revisionresources.ServicePortNameHTTP1,
+ Port: revisionresources.ServicePort,
+ }},
+ }, nil
case len(balancer.IP) != 0:
// TODO(lichuqiang): deal with LoadBalancer IP.
// We'll also need ports info to make it take effect.
}
-
return nil, errLoadBalancerNotFound
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/route.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/route.go
index 54d697c6c8..306ce5ae21 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/route.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/route.go
@@ -18,6 +18,7 @@ package route
import (
"context"
+ "encoding/json"
"fmt"
"go.uber.org/zap"
@@ -25,6 +26,8 @@ import (
"k8s.io/apimachinery/pkg/api/equality"
apierrs "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/runtime/schema"
+ "k8s.io/apimachinery/pkg/types"
+ "k8s.io/apimachinery/pkg/util/sets"
corev1informers "k8s.io/client-go/informers/core/v1"
corev1listers "k8s.io/client-go/listers/core/v1"
"k8s.io/client-go/tools/cache"
@@ -33,26 +36,36 @@ import (
"github.com/knative/pkg/configmap"
"github.com/knative/pkg/controller"
"github.com/knative/pkg/logging"
+ "github.com/knative/pkg/system"
"github.com/knative/pkg/tracker"
- netv1alpha1 "github.com/knative/serving/pkg/apis/networking/v1alpha1"
+ "github.com/knative/serving/pkg/apis/networking"
"github.com/knative/serving/pkg/apis/serving"
"github.com/knative/serving/pkg/apis/serving/v1alpha1"
networkinginformers "github.com/knative/serving/pkg/client/informers/externalversions/networking/v1alpha1"
servinginformers "github.com/knative/serving/pkg/client/informers/externalversions/serving/v1alpha1"
networkinglisters "github.com/knative/serving/pkg/client/listers/networking/v1alpha1"
listers "github.com/knative/serving/pkg/client/listers/serving/v1alpha1"
+ "github.com/knative/serving/pkg/network"
"github.com/knative/serving/pkg/reconciler"
"github.com/knative/serving/pkg/reconciler/v1alpha1/route/config"
"github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources"
resourcenames "github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources/names"
"github.com/knative/serving/pkg/reconciler/v1alpha1/route/traffic"
- "github.com/knative/serving/pkg/system"
)
const (
controllerAgentName = "route-controller"
)
+// routeFinalizer is the name that we put into the resource finalizer list, e.g.
+// metadata:
+// finalizers:
+// - routes.serving.knative.dev
+var (
+ routeResource = v1alpha1.Resource("routes")
+ routeFinalizer = routeResource.String()
+)
+
type configStore interface {
ToContext(ctx context.Context) context.Context
WatchConfigs(w configmap.Watcher)
@@ -129,34 +142,39 @@ func NewControllerWithClock(
Handler: cache.ResourceEventHandlerFuncs{
AddFunc: impl.EnqueueControllerOf,
UpdateFunc: controller.PassNew(impl.EnqueueControllerOf),
+ DeleteFunc: impl.EnqueueControllerOf,
},
})
- clusterIngressInformer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{
- FilterFunc: controller.Filter(v1alpha1.SchemeGroupVersion.WithKind("Route")),
- Handler: cache.ResourceEventHandlerFuncs{
- AddFunc: c.enqueueOwnerRoute(impl),
- UpdateFunc: controller.PassNew(c.enqueueOwnerRoute(impl)),
- },
+ clusterIngressInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
+ AddFunc: impl.EnqueueLabelOfNamespaceScopedResource(serving.RouteNamespaceLabelKey, serving.RouteLabelKey),
+ UpdateFunc: controller.PassNew(impl.EnqueueLabelOfNamespaceScopedResource(serving.RouteNamespaceLabelKey, serving.RouteLabelKey)),
+ DeleteFunc: impl.EnqueueLabelOfNamespaceScopedResource(serving.RouteNamespaceLabelKey, serving.RouteLabelKey),
})
c.tracker = tracker.New(impl.EnqueueKey, opt.GetTrackerLease())
gvk := v1alpha1.SchemeGroupVersion.WithKind("Configuration")
configInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
- AddFunc: reconciler.EnsureTypeMeta(c.tracker.OnChanged, gvk),
- UpdateFunc: controller.PassNew(reconciler.EnsureTypeMeta(c.tracker.OnChanged, gvk)),
+ AddFunc: controller.EnsureTypeMeta(c.tracker.OnChanged, gvk),
+ UpdateFunc: controller.PassNew(controller.EnsureTypeMeta(c.tracker.OnChanged, gvk)),
+ DeleteFunc: controller.EnsureTypeMeta(c.tracker.OnChanged, gvk),
})
gvk = v1alpha1.SchemeGroupVersion.WithKind("Revision")
revisionInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
- AddFunc: reconciler.EnsureTypeMeta(c.tracker.OnChanged, gvk),
- UpdateFunc: controller.PassNew(reconciler.EnsureTypeMeta(c.tracker.OnChanged, gvk)),
+ AddFunc: controller.EnsureTypeMeta(c.tracker.OnChanged, gvk),
+ UpdateFunc: controller.PassNew(controller.EnsureTypeMeta(c.tracker.OnChanged, gvk)),
+ DeleteFunc: controller.EnsureTypeMeta(c.tracker.OnChanged, gvk),
})
c.Logger.Info("Setting up ConfigMap receivers")
- resyncRoutesOnConfigDomainChange := configmap.TypeFilter(&config.Domain{})(func(string, interface{}) {
+ configsToResync := []interface{}{
+ &network.Config{},
+ &config.Domain{},
+ }
+ resync := configmap.TypeFilter(configsToResync...)(func(string, interface{}) {
impl.GlobalResync(routeInformer.Informer())
})
- c.configStore = config.NewStore(c.Logger.Named("config-store"), resyncRoutesOnConfigDomainChange)
+ c.configStore = config.NewStore(c.Logger.Named("config-store"), resync)
c.configStore.WatchConfigs(opt.ConfigMapWatcher)
return impl
}
@@ -179,7 +197,7 @@ func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
ctx = c.configStore.ToContext(ctx)
- // Get the Route resource with this namespace/name
+ // Get the Route resource with this namespace/name.
original, err := c.routeLister.Routes(namespace).Get(name)
if apierrs.IsNotFound(err) {
// The resource may no longer exist, in which case we stop processing.
@@ -188,7 +206,7 @@ func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
} else if err != nil {
return err
}
- // Don't modify the informers copy
+ // Don't modify the informers copy.
route := original.DeepCopy()
// Reconcile this copy of the route and then write back any status
@@ -199,51 +217,111 @@ func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
// This is important because the copy we loaded from the informer's
// cache may be stale and we don't want to overwrite a prior update
// to status with this stale state.
- } else if _, err := c.updateStatus(ctx, route); err != nil {
+ } else if _, err := c.updateStatus(route); err != nil {
logger.Warn("Failed to update route status", zap.Error(err))
c.Recorder.Eventf(route, corev1.EventTypeWarning, "UpdateFailed",
- "Failed to update status for route %q: %v", route.Name, err)
+ "Failed to update status for Route %q: %v", route.Name, err)
return err
}
return err
}
-func (c *Reconciler) reconcile(ctx context.Context, route *v1alpha1.Route) error {
+func ingressClassForRoute(ctx context.Context, r *v1alpha1.Route) string {
+ if ingressClass, _ := r.Annotations[networking.IngressClassAnnotationKey]; ingressClass != "" {
+ return ingressClass
+ }
+ return config.FromContext(ctx).Network.DefaultClusterIngressClass
+}
+
+func (c *Reconciler) reconcile(ctx context.Context, r *v1alpha1.Route) error {
logger := logging.FromContext(ctx)
- route.Status.InitializeConditions()
+ if r.GetDeletionTimestamp() != nil {
+ // Check for a DeletionTimestamp. If present, elide the normal reconcile logic.
+ return c.reconcileDeletion(ctx, r)
+ }
- logger.Infof("Reconciling route :%v", route)
- logger.Info("Creating/Updating placeholder k8s services")
- if err := c.reconcilePlaceholderService(ctx, route); err != nil {
+ // We may be reading a version of the object that was stored at an older version
+ // and may not have had all of the assumed defaults specified. This won't result
+ // in this getting written back to the API Server, but lets downstream logic make
+ // assumptions about defaulting.
+ r.SetDefaults()
+
+ r.Status.InitializeConditions()
+
+ logger.Infof("Reconciling route: %v", r)
+ // Configure traffic based on the RouteSpec.
+ traffic, err := c.configureTraffic(ctx, r)
+ if traffic == nil || err != nil {
+ // Traffic targets aren't ready, no need to configure child resources.
return err
}
- // Call configureTrafficAndUpdateRouteStatus, which also updates the Route.Status
- // to contain the domain we will use for Gateway creation.
- if _, err := c.configureTraffic(ctx, route); err != nil {
+ logger.Info("Updating targeted revisions.")
+ // In all cases we will add annotations to the referred targets. This is so that when they become
+ // routable we can know (through a listener) and attempt traffic configuration again.
+ if err := c.reconcileTargetRevisions(ctx, traffic, r); err != nil {
return err
}
+
+ // Update the information that makes us Addressable.
+ r.Status.Domain = routeDomain(ctx, r)
+ r.Status.DeprecatedDomainInternal = resourcenames.K8sServiceFullname(r)
+ r.Status.Address = &duckv1alpha1.Addressable{
+ Hostname: resourcenames.K8sServiceFullname(r),
+ }
+
+ // Add the finalizer before creating the ClusterIngress so that we can be sure it gets cleaned up.
+ if err := c.ensureFinalizer(r); err != nil {
+ return err
+ }
+
+ logger.Info("Creating ClusterIngress.")
+ desired := resources.MakeClusterIngress(r, traffic, ingressClassForRoute(ctx, r))
+ clusterIngress, err := c.reconcileClusterIngress(ctx, r, desired)
+ if err != nil {
+ return err
+ }
+ r.Status.PropagateClusterIngressStatus(clusterIngress.Status)
+
+ logger.Info("Creating/Updating placeholder k8s services")
+ if err := c.reconcilePlaceholderService(ctx, r, clusterIngress); err != nil {
+ return err
+ }
+
+ r.Status.ObservedGeneration = r.Generation
logger.Info("Route successfully synced")
return nil
}
+func (c *Reconciler) reconcileDeletion(ctx context.Context, r *v1alpha1.Route) error {
+ logger := logging.FromContext(ctx)
+
+ // If our Finalizer is first, delete the ClusterIngress for this Route
+ // and remove the finalizer.
+ if len(r.Finalizers) == 0 || r.Finalizers[0] != routeFinalizer {
+ return nil
+ }
+
+ // Delete the ClusterIngress resources for this Route.
+ logger.Info("Cleaning up ClusterIngress")
+ if err := c.deleteClusterIngressesForRoute(r); err != nil {
+ return err
+ }
+
+ // Update the Route to remove the Finalizer.
+ logger.Info("Removing Finalizer")
+ r.Finalizers = r.Finalizers[1:]
+ _, err := c.ServingClientSet.ServingV1alpha1().Routes(r.Namespace).Update(r)
+ return err
+}
+
// configureTraffic attempts to configure traffic based on the RouteSpec. If there are missing
// targets (e.g. Configurations without a Ready Revision, or Revision that isn't Ready or Inactive),
// no traffic will be configured.
//
// If traffic is configured we update the RouteStatus with AllTrafficAssigned = True. Otherwise we
// mark AllTrafficAssigned = False, with a message referring to one of the missing target.
-//
-// In all cases we will add annotations to the referred targets. This is so that when they become
-// routable we can know (through a listener) and attempt traffic configuration again.
-func (c *Reconciler) configureTraffic(ctx context.Context, r *v1alpha1.Route) (*v1alpha1.Route, error) {
- // Update the information that makes us Callable.
- r.Status.Domain = routeDomain(ctx, r)
- r.Status.DomainInternal = resourcenames.K8sServiceFullname(r)
- r.Status.Address = &duckv1alpha1.Addressable{
- Hostname: resourcenames.K8sServiceFullname(r),
- }
-
+func (c *Reconciler) configureTraffic(ctx context.Context, r *v1alpha1.Route) (*traffic.Config, error) {
logger := logging.FromContext(ctx)
t, err := traffic.BuildTrafficConfiguration(c.configurationLister, c.revisionLister, r)
@@ -272,53 +350,43 @@ func (c *Reconciler) configureTraffic(ctx context.Context, r *v1alpha1.Route) (*
// An error that's not due to missing traffic target should
// make us fail fast.
r.Status.MarkUnknownTrafficError(err.Error())
- return r, err
+ return nil, err
}
if badTarget != nil && isTargetError {
badTarget.MarkBadTrafficTarget(&r.Status)
// Traffic targets aren't ready, no need to configure Route.
- return r, nil
- }
- logger.Info("All referred targets are routable.")
-
- logger.Info("Updating targeted revisions.")
- if err := c.reconcileTargetRevisions(ctx, t, r); err != nil {
- return r, err
+ return nil, nil
}
- logger.Info("Creating ClusterIngress.")
- clusterIngress, err := c.reconcileClusterIngress(ctx, r, resources.MakeClusterIngress(r, t))
- if err != nil {
- return r, err
- }
- r.Status.PropagateClusterIngressStatus(clusterIngress.Status)
-
- logger.Info("ClusterIngress created, marking AllTrafficAssigned with traffic information.")
+ logger.Info("All referred targets are routable, marking AllTrafficAssigned with traffic information.")
r.Status.Traffic = t.GetRevisionTrafficTargets()
r.Status.MarkTrafficAssigned()
- return r, nil
+ return t, nil
}
-// TODO(lichuqiang): add a generalized method in pkg repo to unify similar behaviors.
-func (c *Reconciler) enqueueOwnerRoute(impl *controller.Impl) func(obj interface{}) {
- return func(obj interface{}) {
- ing, ok := obj.(*netv1alpha1.ClusterIngress)
- if !ok {
- c.Logger.Infof("Ignoring non-ClusterIngress objects %v", obj)
- return
- }
- // Check whether the ClusterIngress is referred by a Route.
- routeName, keyExist := ing.Labels[serving.RouteLabelKey]
- routeNamespace, nsExist := ing.Labels[serving.RouteNamespaceLabelKey]
- if !keyExist || !nsExist {
- c.Logger.Errorf("ClusterIngress %s does not have a referring route", ing.Name)
- return
- }
+func (c *Reconciler) ensureFinalizer(route *v1alpha1.Route) error {
+ finalizers := sets.NewString(route.Finalizers...)
+ if finalizers.Has(routeFinalizer) {
+ return nil
+ }
+ finalizers.Insert(routeFinalizer)
+
+ mergePatch := map[string]interface{}{
+ "metadata": map[string]interface{}{
+ "finalizers": finalizers.List(),
+ "resourceVersion": route.ResourceVersion,
+ },
+ }
- impl.EnqueueKey(fmt.Sprintf("%s/%s", routeNamespace, routeName))
+ patch, err := json.Marshal(mergePatch)
+ if err != nil {
+ return err
}
+
+ _, err = c.ServingClientSet.ServingV1alpha1().Routes(route.Namespace).Patch(route.Name, types.MergePatchType, patch)
+ return err
}
/////////////////////////////////////////
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/traffic/traffic.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/traffic/traffic.go
index a098d266b8..5e74b0fe53 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/traffic/traffic.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/route/traffic/traffic.go
@@ -24,26 +24,53 @@ import (
listers "github.com/knative/serving/pkg/client/listers/serving/v1alpha1"
)
-// A RevisionTarget adds the Active/Inactive state of a Revision to a flattened TrafficTarget.
+// DefaultTarget is the unnamed default target for the traffic.
+const DefaultTarget = ""
+
+// A RevisionTarget adds the Active/Inactive state and the transport protocol of a
+// Revision to a flattened TrafficTarget.
type RevisionTarget struct {
v1alpha1.TrafficTarget
- Active bool
+ Active bool
+ Protocol v1alpha1.RevisionProtocolType
+}
+
+// RevisionTargets is a collection of revision targets.
+type RevisionTargets []RevisionTarget
+
+// GroupTargets partitions the targets by active and inactive sets.
+// GroupTargets ignores the targets with 0 percent.
+func (rt RevisionTargets) GroupTargets() (active RevisionTargets, passive RevisionTargets) {
+ // Presume all are active, optimistically
+ active = make(RevisionTargets, 0, len(rt))
+ passive = make(RevisionTargets, 0)
+ for _, t := range rt {
+ if t.Percent == 0 {
+ continue
+ }
+ if t.Active {
+ active = append(active, t)
+ } else {
+ passive = append(passive, t)
+ }
+ }
+ return
}
-// TrafficConfig encapsulates details of our traffic so that we don't need to make API calls, or use details of the
+// Config encapsulates details of our traffic so that we don't need to make API calls, or use details of the
// route beyond its ObjectMeta to make routing changes.
-type TrafficConfig struct {
+type Config struct {
// Group of traffic splits. Un-named targets are grouped together
- // under the key "", and named target are under the respective
+ // under the key `DefaultTarget`, and named target are under the respective
// name. This is used to configure network configuration to
// realize a route's setting.
- Targets map[string][]RevisionTarget
+ Targets map[string]RevisionTargets
// A list traffic targets, flattened to the Revision level. This
// is used to populate the Route.Status.TrafficTarget field.
- RevisionTargets []RevisionTarget
+ revisionTargets RevisionTargets
- // The referred Configurations and Revisions.
+ // The referred `Configuration`s and `Revision`s.
Configurations map[string]*v1alpha1.Configuration
Revisions map[string]*v1alpha1.Revision
}
@@ -54,36 +81,33 @@ type TrafficConfig struct {
//
// In the case that some target is missing, an error of type TargetError will be returned.
func BuildTrafficConfiguration(configLister listers.ConfigurationLister, revLister listers.RevisionLister,
- u *v1alpha1.Route) (*TrafficConfig, error) {
- builder := newBuilder(configLister, revLister, u.Namespace)
- for _, tt := range u.Spec.Traffic {
- if err := builder.addTrafficTarget(&tt); err != nil {
- // Other non-traffic target errors shouldn't be ignored.
- return nil, err
- }
- }
+ u *v1alpha1.Route) (*Config, error) {
+ builder := newBuilder(configLister, revLister, u.Namespace, len(u.Spec.Traffic))
+ builder.applySpecTraffic(u.Spec.Traffic)
return builder.build()
}
-// GetRevisionTrafficTargets return a list of TrafficTarget flattened to the RevisionName, and having ConfigurationName cleared out.
-func (t *TrafficConfig) GetRevisionTrafficTargets() []v1alpha1.TrafficTarget {
- results := []v1alpha1.TrafficTarget{}
- for _, tt := range t.RevisionTargets {
- results = append(results, v1alpha1.TrafficTarget{RevisionName: tt.RevisionName, Name: tt.Name, Percent: tt.Percent})
+// GetRevisionTrafficTargets returns a list of TrafficTarget flattened to the RevisionName, and having ConfigurationName cleared out.
+func (t *Config) GetRevisionTrafficTargets() []v1alpha1.TrafficTarget {
+ results := make([]v1alpha1.TrafficTarget, len(t.revisionTargets))
+ for i, tt := range t.revisionTargets {
+ // We cannot `DeepCopy` here, since tt.TrafficTarget might contain both
+ // configuration and revision.
+ results[i] = v1alpha1.TrafficTarget{RevisionName: tt.RevisionName, Name: tt.Name, Percent: tt.Percent}
}
return results
}
-type trafficConfigBuilder struct {
+type configBuilder struct {
configLister listers.ConfigurationLister
revLister listers.RevisionLister
namespace string
// targets is a grouping of traffic targets serving the same origin.
- targets map[string][]RevisionTarget
+ targets map[string]RevisionTargets
// revisionTargets is the original list of targets, at the Revision level.
- revisionTargets []RevisionTarget
+ revisionTargets RevisionTargets
// configurations contains all the referred Configuration, keyed by their name.
configurations map[string]*v1alpha1.Configuration
@@ -94,19 +118,32 @@ type trafficConfigBuilder struct {
deferredTargetErr TargetError
}
-func newBuilder(configLister listers.ConfigurationLister, revLister listers.RevisionLister, namespace string) *trafficConfigBuilder {
- return &trafficConfigBuilder{
- configLister: configLister,
- revLister: revLister,
- namespace: namespace,
- targets: make(map[string][]RevisionTarget),
+func newBuilder(
+ configLister listers.ConfigurationLister, revLister listers.RevisionLister,
+ namespace string, trafficSize int) *configBuilder {
+ return &configBuilder{
+ configLister: configLister,
+ revLister: revLister,
+ namespace: namespace,
+ targets: make(map[string]RevisionTargets),
+ revisionTargets: make(RevisionTargets, 0, trafficSize),
configurations: make(map[string]*v1alpha1.Configuration),
revisions: make(map[string]*v1alpha1.Revision),
}
}
-func (t *trafficConfigBuilder) getConfiguration(name string) (*v1alpha1.Configuration, error) {
+func (t *configBuilder) applySpecTraffic(traffic []v1alpha1.TrafficTarget) error {
+ for _, tt := range traffic {
+ if err := t.addTrafficTarget(&tt); err != nil {
+ // Other non-traffic target errors shouldn't be ignored.
+ return err
+ }
+ }
+ return nil
+}
+
+func (t *configBuilder) getConfiguration(name string) (*v1alpha1.Configuration, error) {
if _, ok := t.configurations[name]; !ok {
config, err := t.configLister.Configurations(t.namespace).Get(name)
if errors.IsNotFound(err) {
@@ -119,7 +156,7 @@ func (t *trafficConfigBuilder) getConfiguration(name string) (*v1alpha1.Configur
return t.configurations[name], nil
}
-func (t *trafficConfigBuilder) getRevision(name string) (*v1alpha1.Revision, error) {
+func (t *configBuilder) getRevision(name string) (*v1alpha1.Revision, error) {
if _, ok := t.revisions[name]; !ok {
rev, err := t.revLister.Revisions(t.namespace).Get(name)
if errors.IsNotFound(err) {
@@ -134,13 +171,13 @@ func (t *trafficConfigBuilder) getRevision(name string) (*v1alpha1.Revision, err
// deferTargetError will record a TargetError. A TargetError with
// IsFailure()=true will always overwrite a previous TargetError.
-func (t *trafficConfigBuilder) deferTargetError(err TargetError) {
+func (t *configBuilder) deferTargetError(err TargetError) {
if t.deferredTargetErr == nil || err.IsFailure() {
t.deferredTargetErr = err
}
}
-func (t *trafficConfigBuilder) addTrafficTarget(tt *v1alpha1.TrafficTarget) error {
+func (t *configBuilder) addTrafficTarget(tt *v1alpha1.TrafficTarget) error {
var err error
if tt.RevisionName != "" {
err = t.addRevisionTarget(tt)
@@ -158,7 +195,7 @@ func (t *trafficConfigBuilder) addTrafficTarget(tt *v1alpha1.TrafficTarget) erro
// addConfigurationTarget flattens a traffic target to the Revision level, by looking up for the LatestReadyRevisionName
// on the referred Configuration. It adds both to the lists of directly referred targets.
-func (t *trafficConfigBuilder) addConfigurationTarget(tt *v1alpha1.TrafficTarget) error {
+func (t *configBuilder) addConfigurationTarget(tt *v1alpha1.TrafficTarget) error {
config, err := t.getConfiguration(tt.ConfigurationName)
if err != nil {
return err
@@ -173,23 +210,25 @@ func (t *trafficConfigBuilder) addConfigurationTarget(tt *v1alpha1.TrafficTarget
target := RevisionTarget{
TrafficTarget: *tt,
Active: !rev.Status.IsActivationRequired(),
+ Protocol: rev.GetProtocol(),
}
target.TrafficTarget.RevisionName = rev.Name
t.addFlattenedTarget(target)
return nil
}
-func (t *trafficConfigBuilder) addRevisionTarget(tt *v1alpha1.TrafficTarget) error {
+func (t *configBuilder) addRevisionTarget(tt *v1alpha1.TrafficTarget) error {
rev, err := t.getRevision(tt.RevisionName)
if err != nil {
return err
}
- if !rev.Status.IsRoutable() {
+ if !rev.Status.IsReady() {
return errUnreadyRevision(rev)
}
target := RevisionTarget{
TrafficTarget: *tt,
Active: !rev.Status.IsActivationRequired(),
+ Protocol: rev.GetProtocol(),
}
t.revisions[tt.RevisionName] = rev
if configName, ok := rev.Labels[serving.ConfigurationLabelKey]; ok {
@@ -202,16 +241,16 @@ func (t *trafficConfigBuilder) addRevisionTarget(tt *v1alpha1.TrafficTarget) err
return nil
}
-func (t *trafficConfigBuilder) addFlattenedTarget(target RevisionTarget) {
+func (t *configBuilder) addFlattenedTarget(target RevisionTarget) {
name := target.TrafficTarget.Name
t.revisionTargets = append(t.revisionTargets, target)
- t.targets[""] = append(t.targets[""], target)
+ t.targets[DefaultTarget] = append(t.targets[DefaultTarget], target)
if name != "" {
t.targets[name] = append(t.targets[name], target)
}
}
-func consolidate(targets []RevisionTarget) []RevisionTarget {
+func consolidate(targets RevisionTargets) RevisionTargets {
byName := make(map[string]RevisionTarget)
names := []string{}
for _, tt := range targets {
@@ -225,9 +264,9 @@ func consolidate(targets []RevisionTarget) []RevisionTarget {
byName[name] = cur
}
}
- consolidated := []RevisionTarget{}
- for _, name := range names {
- consolidated = append(consolidated, byName[name])
+ consolidated := make([]RevisionTarget, len(names))
+ for i, name := range names {
+ consolidated[i] = byName[name]
}
if len(consolidated) == 1 {
consolidated[0].TrafficTarget.Percent = 100
@@ -235,22 +274,22 @@ func consolidate(targets []RevisionTarget) []RevisionTarget {
return consolidated
}
-func consolidateAll(targets map[string][]RevisionTarget) map[string][]RevisionTarget {
- consolidated := make(map[string][]RevisionTarget)
+func consolidateAll(targets map[string]RevisionTargets) map[string]RevisionTargets {
+ consolidated := make(map[string]RevisionTargets)
for name, tts := range targets {
consolidated[name] = consolidate(tts)
}
return consolidated
}
-func (t *trafficConfigBuilder) build() (*TrafficConfig, error) {
+func (t *configBuilder) build() (*Config, error) {
if t.deferredTargetErr != nil {
t.targets = nil
t.revisionTargets = nil
}
- return &TrafficConfig{
+ return &Config{
Targets: consolidateAll(t.targets),
- RevisionTargets: t.revisionTargets,
+ revisionTargets: t.revisionTargets,
Configurations: t.configurations,
Revisions: t.revisions,
}, t.deferredTargetErr
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/service/resources/configuration.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/service/resources/configuration.go
index 9a2132e03a..96df9c21e7 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/service/resources/configuration.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/service/resources/configuration.go
@@ -41,12 +41,12 @@ func MakeConfiguration(service *v1alpha1.Service) (*v1alpha1.Configuration, erro
if service.Spec.RunLatest != nil {
c.Spec = service.Spec.RunLatest.Configuration
- } else if service.Spec.Pinned != nil {
- c.Spec = service.Spec.Pinned.Configuration
+ } else if service.Spec.DeprecatedPinned != nil {
+ c.Spec = service.Spec.DeprecatedPinned.Configuration
} else if service.Spec.Release != nil {
c.Spec = service.Spec.Release.Configuration
} else {
- // manual does not have a configuration and should not reach this path
+ // Manual does not have a configuration and should not reach this path.
return nil, errors.New("malformed Service: MakeConfiguration requires one of runLatest, pinned, or release must be present")
}
return c, nil
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/service/resources/route.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/service/resources/route.go
index a93a48b0e0..e351a97efb 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/service/resources/route.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/service/resources/route.go
@@ -28,7 +28,6 @@ import (
// MakeRoute creates a Route from a Service object.
func MakeRoute(service *v1alpha1.Service) (*v1alpha1.Route, error) {
-
c := &v1alpha1.Route{
ObjectMeta: metav1.ObjectMeta{
Name: names.Route(service),
@@ -44,29 +43,42 @@ func MakeRoute(service *v1alpha1.Service) (*v1alpha1.Route, error) {
rolloutPercent := service.Spec.Release.RolloutPercent
numRevisions := len(service.Spec.Release.Revisions)
- // Configure the 'current' route
- currentRevisionName := service.Spec.Release.Revisions[0]
+ // Configure the 'current' route.
ttCurrent := v1alpha1.TrafficTarget{
- Name: "current",
- Percent: 100 - rolloutPercent,
- RevisionName: currentRevisionName,
+ Name: v1alpha1.CurrentTrafficTarget,
+ Percent: 100 - rolloutPercent,
+ }
+ currentRevisionName := service.Spec.Release.Revisions[0]
+
+ // If the `current` revision refers to the well known name of the last
+ // known revision, use `Configuration` instead.
+ // Same for the `candidate` below.
+ // Part of #2819.
+ if currentRevisionName == v1alpha1.ReleaseLatestRevisionKeyword {
+ ttCurrent.ConfigurationName = names.Configuration(service)
+ } else {
+ ttCurrent.RevisionName = currentRevisionName
}
c.Spec.Traffic = append(c.Spec.Traffic, ttCurrent)
- // Configure the 'candidate' route
+ // Configure the 'candidate' route.
if numRevisions == 2 {
- candidateRevisionName := service.Spec.Release.Revisions[1]
ttCandidate := v1alpha1.TrafficTarget{
- Name: "candidate",
- Percent: rolloutPercent,
- RevisionName: candidateRevisionName,
+ Name: v1alpha1.CandidateTrafficTarget,
+ Percent: rolloutPercent,
+ }
+ candidateRevisionName := service.Spec.Release.Revisions[1]
+ if candidateRevisionName == v1alpha1.ReleaseLatestRevisionKeyword {
+ ttCandidate.ConfigurationName = names.Configuration(service)
+ } else {
+ ttCandidate.RevisionName = candidateRevisionName
}
c.Spec.Traffic = append(c.Spec.Traffic, ttCandidate)
}
- // Configure the 'latest' route
+ // Configure the 'latest' route.
ttLatest := v1alpha1.TrafficTarget{
- Name: "latest",
+ Name: v1alpha1.LatestTrafficTarget,
ConfigurationName: names.Configuration(service),
Percent: 0,
}
@@ -77,14 +89,14 @@ func MakeRoute(service *v1alpha1.Service) (*v1alpha1.Route, error) {
Percent: 100,
}
c.Spec.Traffic = append(c.Spec.Traffic, tt)
- } else if service.Spec.Pinned != nil {
+ } else if service.Spec.DeprecatedPinned != nil {
tt := v1alpha1.TrafficTarget{
- RevisionName: service.Spec.Pinned.RevisionName,
+ RevisionName: service.Spec.DeprecatedPinned.RevisionName,
Percent: 100,
}
c.Spec.Traffic = append(c.Spec.Traffic, tt)
} else {
- // manual does not have a route and should not reach this path
+ // Manual does not have a route and should not reach this path.
return nil, errors.New("malformed Service: MakeRoute requires one of runLatest, pinned, or release must be present")
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/service/service.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/service/service.go
index ee86398f13..20500b61aa 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/service/service.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/service/service.go
@@ -18,27 +18,34 @@ package service
import (
"context"
+ "fmt"
"reflect"
+ "time"
- "github.com/google/go-cmp/cmp"
"github.com/knative/pkg/controller"
+ "github.com/knative/pkg/kmp"
"github.com/knative/pkg/logging"
+ "github.com/knative/serving/pkg/apis/serving"
+ "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ servinginformers "github.com/knative/serving/pkg/client/informers/externalversions/serving/v1alpha1"
+ listers "github.com/knative/serving/pkg/client/listers/serving/v1alpha1"
+ "github.com/knative/serving/pkg/reconciler"
+ "github.com/knative/serving/pkg/reconciler/v1alpha1/service/resources"
resourcenames "github.com/knative/serving/pkg/reconciler/v1alpha1/service/resources/names"
"go.uber.org/zap"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/equality"
"k8s.io/apimachinery/pkg/api/errors"
apierrs "k8s.io/apimachinery/pkg/api/errors"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/tools/cache"
-
- "github.com/knative/serving/pkg/apis/serving/v1alpha1"
- servinginformers "github.com/knative/serving/pkg/client/informers/externalversions/serving/v1alpha1"
- listers "github.com/knative/serving/pkg/client/listers/serving/v1alpha1"
- "github.com/knative/serving/pkg/reconciler"
- "github.com/knative/serving/pkg/reconciler/v1alpha1/service/resources"
)
-const controllerAgentName = "service-controller"
+const (
+ // ReconcilerName is the name of the reconciler
+ ReconcilerName = "Services"
+ controllerAgentName = "service-controller"
+)
// Reconciler implements controller.Reconciler for Service resources.
type Reconciler struct {
@@ -68,7 +75,7 @@ func NewController(
configurationLister: configurationInformer.Lister(),
routeLister: routeInformer.Lister(),
}
- impl := controller.NewImpl(c, c.Logger, "Services", reconciler.MustNewStatsReporter("Services", c.Logger))
+ impl := controller.NewImpl(c, c.Logger, ReconcilerName, reconciler.MustNewStatsReporter(ReconcilerName, c.Logger))
c.Logger.Info("Setting up event handlers")
serviceInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
@@ -82,6 +89,7 @@ func NewController(
Handler: cache.ResourceEventHandlerFuncs{
AddFunc: impl.EnqueueControllerOf,
UpdateFunc: controller.PassNew(impl.EnqueueControllerOf),
+ DeleteFunc: impl.EnqueueControllerOf,
},
})
@@ -90,6 +98,7 @@ func NewController(
Handler: cache.ResourceEventHandlerFuncs{
AddFunc: impl.EnqueueControllerOf,
UpdateFunc: controller.PassNew(impl.EnqueueControllerOf),
+ DeleteFunc: impl.EnqueueControllerOf,
},
})
@@ -136,15 +145,31 @@ func (c *Reconciler) Reconcile(ctx context.Context, key string) error {
// This is important because the copy we loaded from the informer's
// cache may be stale and we don't want to overwrite a prior update
// to status with this stale state.
- } else if _, err := c.updateStatus(service); err != nil {
- logger.Warn("Failed to update service status", zap.Error(err))
- return err
+
+ } else if _, uErr := c.updateStatus(service); uErr != nil {
+ logger.Warn("Failed to update service status", zap.Error(uErr))
+ c.Recorder.Eventf(service, corev1.EventTypeWarning, "UpdateFailed",
+ "Failed to update status for Service %q: %v", service.Name, uErr)
+ return uErr
+ } else if err == nil {
+ // If there was a difference and there was no error.
+ c.Recorder.Eventf(service, corev1.EventTypeNormal, "Updated", "Updated Service %q", service.GetName())
}
return err
}
func (c *Reconciler) reconcile(ctx context.Context, service *v1alpha1.Service) error {
logger := logging.FromContext(ctx)
+ if service.GetDeletionTimestamp() != nil {
+ return nil
+ }
+
+ // We may be reading a version of the object that was stored at an older version
+ // and may not have had all of the assumed defaults specified. This won't result
+ // in this getting written back to the API Server, but lets downstream logic make
+ // assumptions about defaulting.
+ service.SetDefaults()
+
service.Status.InitializeConditions()
configName := resourcenames.Configuration(service)
@@ -156,16 +181,21 @@ func (c *Reconciler) reconcile(ctx context.Context, service *v1alpha1.Service) e
c.Recorder.Eventf(service, corev1.EventTypeWarning, "CreationFailed", "Failed to create Configuration %q: %v", configName, err)
return err
}
+ c.Recorder.Eventf(service, corev1.EventTypeNormal, "Created", "Created Configuration %q", configName)
} else if err != nil {
logger.Errorf("Failed to reconcile Service: %q failed to Get Configuration: %q; %v", service.Name, configName, zap.Error(err))
return err
+ } else if !metav1.IsControlledBy(config, service) {
+ // Surface an error in the service's status,and return an error.
+ service.Status.MarkConfigurationNotOwned(configName)
+ return fmt.Errorf("Service: %q does not own Configuration: %q", service.Name, configName)
} else if config, err = c.reconcileConfiguration(ctx, service, config); err != nil {
logger.Errorf("Failed to reconcile Service: %q failed to reconcile Configuration: %q; %v", service.Name, configName, zap.Error(err))
return err
}
// Update our Status based on the state of our underlying Configuration.
- service.Status.PropagateConfigurationStatus(config.Status)
+ service.Status.PropagateConfigurationStatus(&config.Status)
routeName := resourcenames.Route(service)
route, err := c.routeLister.Routes(service.Namespace).Get(routeName)
@@ -176,21 +206,38 @@ func (c *Reconciler) reconcile(ctx context.Context, service *v1alpha1.Service) e
c.Recorder.Eventf(service, corev1.EventTypeWarning, "CreationFailed", "Failed to create Route %q: %v", routeName, err)
return err
}
+ c.Recorder.Eventf(service, corev1.EventTypeNormal, "Created", "Created Route %q", routeName)
} else if err != nil {
logger.Errorf("Failed to reconcile Service: %q failed to Get Route: %q", service.Name, routeName)
return err
+ } else if !metav1.IsControlledBy(route, service) {
+ // Surface an error in the service's status, and return an error.
+ service.Status.MarkRouteNotOwned(routeName)
+ return fmt.Errorf("Service: %q does not own Route: %q", service.Name, routeName)
} else if route, err = c.reconcileRoute(ctx, service, route); err != nil {
logger.Errorf("Failed to reconcile Service: %q failed to reconcile Route: %q", service.Name, routeName)
return err
}
// Update our Status based on the state of our underlying Route.
- service.Status.PropagateRouteStatus(route.Status)
-
- // Update the Status of the Service with the latest generation that
- // we just reconciled against so we don't keep generating Revisions.
- // TODO(#642): Remove this.
- service.Status.ObservedGeneration = service.Spec.Generation
+ ss := &service.Status
+ ss.PropagateRouteStatus(&route.Status)
+
+ // `manual` is not reconciled.
+ if rc := service.Status.GetCondition(v1alpha1.ServiceConditionRoutesReady); rc != nil && rc.Status == corev1.ConditionTrue {
+ want, got := route.Spec.DeepCopy().Traffic, route.Status.Traffic
+ // Replace `configuration` target with its latest ready revision.
+ for idx := range want {
+ if want[idx].ConfigurationName == config.Name {
+ want[idx].RevisionName = config.Status.LatestReadyRevisionName
+ want[idx].ConfigurationName = ""
+ }
+ }
+ if eq, err := kmp.SafeEqual(got, want); !eq || err != nil {
+ service.Status.MarkRouteNotYetReady()
+ }
+ }
+ service.Status.ObservedGeneration = service.Generation
return nil
}
@@ -200,16 +247,23 @@ func (c *Reconciler) updateStatus(desired *v1alpha1.Service) (*v1alpha1.Service,
if err != nil {
return nil, err
}
- // Check if there is anything to update.
- if !reflect.DeepEqual(service.Status, desired.Status) {
- // Don't modify the informers copy
- existing := service.DeepCopy()
- existing.Status = desired.Status
- serviceClient := c.ServingClientSet.ServingV1alpha1().Services(desired.Namespace)
- // TODO: for CRD there's no updatestatus, so use normal update.
- return serviceClient.Update(existing)
+ // If there's nothing to update, just return.
+ if reflect.DeepEqual(service.Status, desired.Status) {
+ return service, nil
+ }
+ becomesReady := desired.Status.IsReady() && !service.Status.IsReady()
+ // Don't modify the informers copy.
+ existing := service.DeepCopy()
+ existing.Status = desired.Status
+
+ svc, err := c.ServingClientSet.ServingV1alpha1().Services(desired.Namespace).UpdateStatus(existing)
+ if err == nil && becomesReady {
+ duration := time.Now().Sub(svc.ObjectMeta.CreationTimestamp.Time)
+ c.Logger.Infof("Service %q became ready after %v", service.Name, duration)
+ c.StatsReporter.ReportServiceReady(service.Namespace, service.Name, duration)
}
- return service, nil
+
+ return svc, err
}
func (c *Reconciler) createConfiguration(service *v1alpha1.Service) (*v1alpha1.Configuration, error) {
@@ -220,27 +274,54 @@ func (c *Reconciler) createConfiguration(service *v1alpha1.Service) (*v1alpha1.C
return c.ServingClientSet.ServingV1alpha1().Configurations(service.Namespace).Create(cfg)
}
-func (c *Reconciler) reconcileConfiguration(ctx context.Context, service *v1alpha1.Service, config *v1alpha1.Configuration) (*v1alpha1.Configuration, error) {
+func configSemanticEquals(desiredConfig, config *v1alpha1.Configuration) bool {
+ return equality.Semantic.DeepEqual(desiredConfig.Spec, config.Spec) &&
+ equality.Semantic.DeepEqual(desiredConfig.ObjectMeta.Labels, config.ObjectMeta.Labels)
+}
+
+// ignoreRouteLabelChange sets desiredConfig[serving.RouteLabelKey] to
+// same as config[serving.RouteLabelKey], so that we do nothing about
+// the configuration label serving.RouteLabelKey in our
+// reconciliation.
+func ignoreRouteLabelChange(desiredConfig, config *v1alpha1.Configuration) {
+ routeLabel, existed := config.ObjectMeta.Labels[serving.RouteLabelKey]
+ if !existed {
+ delete(desiredConfig.ObjectMeta.Labels, serving.RouteLabelKey)
+ } else {
+ desiredConfig.ObjectMeta.Labels[serving.RouteLabelKey] = routeLabel
+ }
+}
+func (c *Reconciler) reconcileConfiguration(ctx context.Context, service *v1alpha1.Service, config *v1alpha1.Configuration) (*v1alpha1.Configuration, error) {
logger := logging.FromContext(ctx)
desiredConfig, err := resources.MakeConfiguration(service)
if err != nil {
return nil, err
}
+ // Route label is automatically set by another reconciler. We
+ // want to ignore that label in our reconciliation here by setting
+ // desiredConfig[serving.RouteLabelKey] to the same as
+ // config[erving.RouteLabelKey].
+ ignoreRouteLabelChange(desiredConfig, config)
// TODO(#642): Remove this (needed to avoid continuous updates)
- desiredConfig.Spec.Generation = config.Spec.Generation
+ desiredConfig.Spec.DeprecatedGeneration = config.Spec.DeprecatedGeneration
- if equality.Semantic.DeepEqual(desiredConfig.Spec, config.Spec) {
+ if configSemanticEquals(desiredConfig, config) {
// No differences to reconcile.
return config, nil
}
- logger.Infof("Reconciling configuration diff (-desired, +observed): %v", cmp.Diff(desiredConfig.Spec, config.Spec))
+ diff, err := kmp.SafeDiff(desiredConfig.Spec, config.Spec)
+ if err != nil {
+ return nil, fmt.Errorf("failed to diff Configuration: %v", err)
+ }
+ logger.Infof("Reconciling configuration diff (-desired, +observed): %s", diff)
- // Don't modify the informers copy
+ // Don't modify the informers copy.
existing := config.DeepCopy()
- // Preserve the rest of the object (e.g. ObjectMeta)
+ // Preserve the rest of the object (e.g. ObjectMeta except for labels).
existing.Spec = desiredConfig.Spec
+ existing.ObjectMeta.Labels = desiredConfig.ObjectMeta.Labels
return c.ServingClientSet.ServingV1alpha1().Configurations(service.Namespace).Update(existing)
}
@@ -248,33 +329,45 @@ func (c *Reconciler) createRoute(service *v1alpha1.Service) (*v1alpha1.Route, er
route, err := resources.MakeRoute(service)
if err != nil {
// This should be unreachable as configuration creation
- // happens first in reconcile()
+ // happens first in `reconcile()` and it verifies the edge cases
+ // that would make `MakeRoute` fail as well.
return nil, err
}
return c.ServingClientSet.ServingV1alpha1().Routes(service.Namespace).Create(route)
}
+func routeSemanticEquals(desiredRoute, route *v1alpha1.Route) bool {
+ return equality.Semantic.DeepEqual(desiredRoute.Spec, route.Spec) &&
+ equality.Semantic.DeepEqual(desiredRoute.ObjectMeta.Labels, route.ObjectMeta.Labels)
+}
+
func (c *Reconciler) reconcileRoute(ctx context.Context, service *v1alpha1.Service, route *v1alpha1.Route) (*v1alpha1.Route, error) {
logger := logging.FromContext(ctx)
desiredRoute, err := resources.MakeRoute(service)
if err != nil {
// This should be unreachable as configuration creation
- // happens first in reconcile()
+ // happens first in `reconcile()` and it verifies the edge cases
+ // that would make `MakeRoute` fail as well.
return nil, err
}
- // TODO(#642): Remove this (needed to avoid continuous updates)
- desiredRoute.Spec.Generation = route.Spec.Generation
+ // TODO(#642): Remove this (needed to avoid continuous updates).
+ desiredRoute.Spec.DeprecatedGeneration = route.Spec.DeprecatedGeneration
- if equality.Semantic.DeepEqual(desiredRoute.Spec, route.Spec) {
+ if routeSemanticEquals(desiredRoute, route) {
// No differences to reconcile.
return route, nil
}
- logger.Infof("Reconciling route diff (-desired, +observed): %v", cmp.Diff(desiredRoute.Spec, route.Spec))
+ diff, err := kmp.SafeDiff(desiredRoute.Spec, route.Spec)
+ if err != nil {
+ return nil, fmt.Errorf("failed to diff Route: %v", err)
+ }
+ logger.Infof("Reconciling route diff (-desired, +observed): %s", diff)
- // Don't modify the informers copy
+ // Don't modify the informers copy.
existing := route.DeepCopy()
- // Preserve the rest of the object (e.g. ObjectMeta)
+ // Preserve the rest of the object (e.g. ObjectMeta except for labels).
existing.Spec = desiredRoute.Spec
+ existing.ObjectMeta.Labels = desiredRoute.ObjectMeta.Labels
return c.ServingClientSet.ServingV1alpha1().Routes(service.Namespace).Update(existing)
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/testing/aliases.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/testing/aliases.go
index 39738067c9..ff7a81b6b6 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/testing/aliases.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/testing/aliases.go
@@ -26,8 +26,10 @@ type (
TableRow = testing.TableRow
ActionRecorderList = testing.ActionRecorderList
ActionRecorder = testing.ActionRecorder
+ EventList = testing.EventList
Factory = testing.Factory
HookResult = testing.HookResult
+ FakeStatsReporter = testing.FakeStatsReporter
)
var (
@@ -38,10 +40,17 @@ var (
ValidateCreates = testing.ValidateCreates
ValidateUpdates = testing.ValidateUpdates
ConfigMapFromTestFile = testing.ConfigMapFromTestFile
+ Eventf = testing.Eventf
+
+ PrependGenerateNameReactor = testing.PrependGenerateNameReactor
TestLogger = logtesting.TestLogger
+
+ // ClearAllLoggers removes all the registered test loggers.
+ ClearAllLoggers = logtesting.ClearAll
)
const (
- HookComplete = testing.HookComplete
+ HookComplete = testing.HookComplete
+ HookIncomplete = testing.HookIncomplete
)
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/testing/factory.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/testing/factory.go
index e3ecd2fa95..442ba44209 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/testing/factory.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/testing/factory.go
@@ -19,20 +19,30 @@ package testing
import (
"testing"
+ "k8s.io/apimachinery/pkg/runtime"
+ fakedynamicclientset "k8s.io/client-go/dynamic/fake"
+ fakekubeclientset "k8s.io/client-go/kubernetes/fake"
+ "k8s.io/client-go/tools/record"
+
fakecachingclientset "github.com/knative/caching/pkg/client/clientset/versioned/fake"
fakesharedclientset "github.com/knative/pkg/client/clientset/versioned/fake"
"github.com/knative/pkg/controller"
fakeclientset "github.com/knative/serving/pkg/client/clientset/versioned/fake"
"github.com/knative/serving/pkg/reconciler"
- "k8s.io/apimachinery/pkg/runtime"
- fakedynamicclientset "k8s.io/client-go/dynamic/fake"
- fakekubeclientset "k8s.io/client-go/kubernetes/fake"
)
+const (
+ // maxEventBufferSize is the estimated max number of event notifications that
+ // can be buffered during reconciliation.
+ maxEventBufferSize = 10
+)
+
+// Ctor functions create a k8s controller with given params.
type Ctor func(*Listers, reconciler.Options) controller.Reconciler
+// MakeFactory creates a reconciler factory with fake clients and controller created by `ctor`.
func MakeFactory(ctor Ctor) Factory {
- return func(t *testing.T, r *TableRow) (controller.Reconciler, ActionRecorderList) {
+ return func(t *testing.T, r *TableRow) (controller.Reconciler, ActionRecorderList, EventList, *FakeStatsReporter) {
ls := NewListers(r.Objects)
kubeClient := fakekubeclientset.NewSimpleClientset(ls.GetKubeObjects()...)
@@ -40,6 +50,11 @@ func MakeFactory(ctor Ctor) Factory {
client := fakeclientset.NewSimpleClientset(ls.GetServingObjects()...)
dynamicClient := fakedynamicclientset.NewSimpleDynamicClient(runtime.NewScheme(), ls.GetBuildObjects()...)
cachingClient := fakecachingclientset.NewSimpleClientset(ls.GetCachingObjects()...)
+ eventRecorder := record.NewFakeRecorder(maxEventBufferSize)
+ statsReporter := &FakeStatsReporter{}
+
+ PrependGenerateNameReactor(&client.Fake)
+ PrependGenerateNameReactor(&dynamicClient.Fake)
// Set up our Controller from the fakes.
c := ctor(&ls, reconciler.Options{
@@ -48,6 +63,8 @@ func MakeFactory(ctor Ctor) Factory {
DynamicClientSet: dynamicClient,
CachingClientSet: cachingClient,
ServingClientSet: client,
+ Recorder: eventRecorder,
+ StatsReporter: statsReporter,
Logger: TestLogger(t),
})
@@ -63,6 +80,9 @@ func MakeFactory(ctor Ctor) Factory {
client.PrependReactor("create", "*", ValidateCreates)
client.PrependReactor("update", "*", ValidateUpdates)
- return c, ActionRecorderList{sharedClient, dynamicClient, client, kubeClient, cachingClient}
+ actionRecorderList := ActionRecorderList{sharedClient, dynamicClient, client, kubeClient, cachingClient}
+ eventList := EventList{Recorder: eventRecorder}
+
+ return c, actionRecorderList, eventList, statsReporter
}
}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/testing/functional.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/testing/functional.go
new file mode 100644
index 0000000000..54eb0a7615
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/testing/functional.go
@@ -0,0 +1,871 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package testing
+
+import (
+ "fmt"
+ "time"
+
+ "github.com/knative/pkg/apis"
+ "github.com/knative/pkg/apis/duck"
+ duckv1alpha1 "github.com/knative/pkg/apis/duck/v1alpha1"
+ "github.com/knative/serving/pkg/apis/autoscaling"
+ autoscalingv1alpha1 "github.com/knative/serving/pkg/apis/autoscaling/v1alpha1"
+ "github.com/knative/serving/pkg/apis/networking"
+ netv1alpha1 "github.com/knative/serving/pkg/apis/networking/v1alpha1"
+ "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ routenames "github.com/knative/serving/pkg/reconciler/v1alpha1/route/resources/names"
+ servicenames "github.com/knative/serving/pkg/reconciler/v1alpha1/service/resources/names"
+ corev1 "k8s.io/api/core/v1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
+ "k8s.io/apimachinery/pkg/types"
+)
+
+// BuildOption enables further configuration of a Build.
+type BuildOption func(*unstructured.Unstructured)
+
+// WithSucceededTrue updates the status of the provided unstructured Build object with the
+// expected success condition.
+func WithSucceededTrue(orig *unstructured.Unstructured) {
+ cp := orig.DeepCopy()
+ cp.Object["status"] = map[string]interface{}{"conditions": []duckv1alpha1.Condition{{
+ Type: duckv1alpha1.ConditionSucceeded,
+ Status: corev1.ConditionTrue,
+ }}}
+ duck.FromUnstructured(cp, orig) // prevent panic in b.DeepCopy()
+}
+
+// WithSucceededUnknown updates the status of the provided unstructured Build object with the
+// expected in-flight condition.
+func WithSucceededUnknown(reason, message string) BuildOption {
+ return func(orig *unstructured.Unstructured) {
+ cp := orig.DeepCopy()
+ cp.Object["status"] = map[string]interface{}{"conditions": []duckv1alpha1.Condition{{
+ Type: duckv1alpha1.ConditionSucceeded,
+ Status: corev1.ConditionUnknown,
+ Reason: reason,
+ Message: message,
+ }}}
+ duck.FromUnstructured(cp, orig) // prevent panic in b.DeepCopy()
+ }
+}
+
+// WithSucceededFalse updates the status of the provided unstructured Build object with the
+// expected failure condition.
+func WithSucceededFalse(reason, message string) BuildOption {
+ return func(orig *unstructured.Unstructured) {
+ cp := orig.DeepCopy()
+ cp.Object["status"] = map[string]interface{}{"conditions": []duckv1alpha1.Condition{{
+ Type: duckv1alpha1.ConditionSucceeded,
+ Status: corev1.ConditionFalse,
+ Reason: reason,
+ Message: message,
+ }}}
+ duck.FromUnstructured(cp, orig) // prevent panic in b.DeepCopy()
+ }
+}
+
+// ServiceOption enables further configuration of a Service.
+type ServiceOption func(*v1alpha1.Service)
+
+var (
+ // configSpec is the spec used for the different styles of Service rollout.
+ configSpec = v1alpha1.ConfigurationSpec{
+ RevisionTemplate: v1alpha1.RevisionTemplateSpec{
+ Spec: v1alpha1.RevisionSpec{
+ Container: corev1.Container{
+ Image: "busybox",
+ },
+ TimeoutSeconds: 60,
+ },
+ },
+ }
+)
+
+// WithServiceDeletionTimestamp will set the DeletionTimestamp on the Service.
+func WithServiceDeletionTimestamp(r *v1alpha1.Service) {
+ t := metav1.NewTime(time.Unix(1e9, 0))
+ r.ObjectMeta.SetDeletionTimestamp(&t)
+}
+
+// WithRunLatestRollout configures the Service to use a "runLatest" rollout.
+func WithRunLatestRollout(s *v1alpha1.Service) {
+ s.Spec = v1alpha1.ServiceSpec{
+ RunLatest: &v1alpha1.RunLatestType{
+ Configuration: configSpec,
+ },
+ }
+}
+
+// WithServiceLabel attaches a particular label to the service.
+func WithServiceLabel(key, value string) ServiceOption {
+ return func(service *v1alpha1.Service) {
+ if service.Labels == nil {
+ service.Labels = make(map[string]string)
+ }
+ service.Labels[key] = value
+ }
+}
+
+// MarkConfigurationNotOwned calls the function of the same name on the Service's status.
+func MarkConfigurationNotOwned(service *v1alpha1.Service) {
+ service.Status.MarkConfigurationNotOwned(servicenames.Configuration(service))
+}
+
+// MarkRouteNotOwned calls the function of the same name on the Service's status.
+func MarkRouteNotOwned(service *v1alpha1.Service) {
+ service.Status.MarkRouteNotOwned(servicenames.Route(service))
+}
+
+// WithPinnedRollout configures the Service to use a "pinned" rollout,
+// which is pinned to the named revision.
+// Deprecated, since PinnedType is deprecated.
+func WithPinnedRollout(name string) ServiceOption {
+ return func(s *v1alpha1.Service) {
+ s.Spec = v1alpha1.ServiceSpec{
+ DeprecatedPinned: &v1alpha1.PinnedType{
+ RevisionName: name,
+ Configuration: configSpec,
+ },
+ }
+ }
+}
+
+// WithReleaseRolloutAndPercentage configures the Service to use a "release" rollout,
+// which spans the provided revisions.
+func WithReleaseRolloutAndPercentage(percentage int, names ...string) ServiceOption {
+ return func(s *v1alpha1.Service) {
+ s.Spec = v1alpha1.ServiceSpec{
+ Release: &v1alpha1.ReleaseType{
+ Revisions: names,
+ RolloutPercent: percentage,
+ Configuration: configSpec,
+ },
+ }
+ }
+}
+
+// WithReleaseRollout configures the Service to use a "release" rollout,
+// which spans the provided revisions.
+func WithReleaseRollout(names ...string) ServiceOption {
+ return func(s *v1alpha1.Service) {
+ s.Spec = v1alpha1.ServiceSpec{
+ Release: &v1alpha1.ReleaseType{
+ Revisions: names,
+ Configuration: configSpec,
+ },
+ }
+ }
+}
+
+// WithManualRollout configures the Service to use a "manual" rollout.
+func WithManualRollout(s *v1alpha1.Service) {
+ s.Spec = v1alpha1.ServiceSpec{
+ Manual: &v1alpha1.ManualType{},
+ }
+}
+
+// WithInitSvcConditions initializes the Service's conditions.
+func WithInitSvcConditions(s *v1alpha1.Service) {
+ s.Status.InitializeConditions()
+}
+
+// WithManualStatus configures the Service to have the appropriate
+// status for a "manual" rollout type.
+func WithManualStatus(s *v1alpha1.Service) {
+ s.Status.SetManualStatus()
+}
+
+// WithReadyRoute reflects the Route's readiness in the Service resource.
+func WithReadyRoute(s *v1alpha1.Service) {
+ s.Status.PropagateRouteStatus(&v1alpha1.RouteStatus{
+ Conditions: []duckv1alpha1.Condition{{
+ Type: "Ready",
+ Status: "True",
+ }},
+ })
+}
+
+// WithSvcStatusDomain propagates the domain name to the status of the Service.
+func WithSvcStatusDomain(s *v1alpha1.Service) {
+ n, ns := s.GetName(), s.GetNamespace()
+ s.Status.Domain = fmt.Sprintf("%s.%s.example.com", n, ns)
+ s.Status.DeprecatedDomainInternal = fmt.Sprintf("%s.%s.svc.cluster.local", n, ns)
+}
+
+// WithSvcStatusAddress updates the service's status with the address.
+func WithSvcStatusAddress(s *v1alpha1.Service) {
+ s.Status.Address = &duckv1alpha1.Addressable{
+ Hostname: fmt.Sprintf("%s.%s.svc.cluster.local", s.Name, s.Namespace),
+ }
+}
+
+// WithSvcStatusTraffic sets the Service's status traffic block to the specified traffic targets.
+func WithSvcStatusTraffic(traffic ...v1alpha1.TrafficTarget) ServiceOption {
+ return func(r *v1alpha1.Service) {
+ r.Status.Traffic = traffic
+ }
+}
+
+// WithFailedRoute reflects a Route's failure in the Service resource.
+func WithFailedRoute(reason, message string) ServiceOption {
+ return func(s *v1alpha1.Service) {
+ s.Status.PropagateRouteStatus(&v1alpha1.RouteStatus{
+ Conditions: []duckv1alpha1.Condition{{
+ Type: "Ready",
+ Status: "False",
+ Reason: reason,
+ Message: message,
+ }},
+ })
+ }
+}
+
+// WithReadyConfig reflects the Configuration's readiness in the Service
+// resource. This must coincide with the setting of Latest{Created,Ready}
+// to the provided revision name.
+func WithReadyConfig(name string) ServiceOption {
+ return func(s *v1alpha1.Service) {
+ s.Status.PropagateConfigurationStatus(&v1alpha1.ConfigurationStatus{
+ LatestCreatedRevisionName: name,
+ LatestReadyRevisionName: name,
+ Conditions: []duckv1alpha1.Condition{{
+ Type: "Ready",
+ Status: "True",
+ }},
+ })
+ }
+}
+
+// WithFailedConfig reflects the Configuration's failure in the Service
+// resource. The failing revision's name is reflected in LatestCreated.
+func WithFailedConfig(name, reason, message string) ServiceOption {
+ return func(s *v1alpha1.Service) {
+ s.Status.PropagateConfigurationStatus(&v1alpha1.ConfigurationStatus{
+ LatestCreatedRevisionName: name,
+ Conditions: []duckv1alpha1.Condition{{
+ Type: "Ready",
+ Status: "False",
+ Reason: reason,
+ Message: fmt.Sprintf("Revision %q failed with message: %s.",
+ name, message),
+ }},
+ })
+ }
+}
+
+// WithServiceLatestReadyRevision sets the latest ready revision on the Service's status.
+func WithServiceLatestReadyRevision(lrr string) ServiceOption {
+ return func(s *v1alpha1.Service) {
+ s.Status.LatestReadyRevisionName = lrr
+ }
+}
+
+// WithServiceStatusRouteNotReady sets the `RoutesReady` condition on the service to `Unknown`.
+func WithServiceStatusRouteNotReady(s *v1alpha1.Service) {
+ s.Status.MarkRouteNotYetReady()
+}
+
+// RouteOption enables further configuration of a Route.
+type RouteOption func(*v1alpha1.Route)
+
+// WithSpecTraffic sets the Route's traffic block to the specified traffic targets.
+func WithSpecTraffic(traffic ...v1alpha1.TrafficTarget) RouteOption {
+ return func(r *v1alpha1.Route) {
+ r.Spec.Traffic = traffic
+ }
+}
+
+// WithRouteUID sets the Route's UID
+func WithRouteUID(uid types.UID) RouteOption {
+ return func(r *v1alpha1.Route) {
+ r.ObjectMeta.UID = uid
+ }
+}
+
+// WithRouteDeletionTimestamp will set the DeletionTimestamp on the Route.
+func WithRouteDeletionTimestamp(r *v1alpha1.Route) {
+ t := metav1.NewTime(time.Unix(1e9, 0))
+ r.ObjectMeta.SetDeletionTimestamp(&t)
+}
+
+// WithRouteFinalizer adds the Route finalizer to the Route.
+func WithRouteFinalizer(r *v1alpha1.Route) {
+ r.ObjectMeta.Finalizers = append(r.ObjectMeta.Finalizers, "routes.serving.knative.dev")
+}
+
+// WithAnotherRouteFinalizer adds a non-Route finalizer to the Route.
+func WithAnotherRouteFinalizer(r *v1alpha1.Route) {
+ r.ObjectMeta.Finalizers = append(r.ObjectMeta.Finalizers, "another.serving.knative.dev")
+}
+
+// WithConfigTarget sets the Route's traffic block to point at a particular Configuration.
+func WithConfigTarget(config string) RouteOption {
+ return WithSpecTraffic(v1alpha1.TrafficTarget{
+ ConfigurationName: config,
+ Percent: 100,
+ })
+}
+
+// WithRevTarget sets the Route's traffic block to point at a particular Revision.
+func WithRevTarget(revision string) RouteOption {
+ return WithSpecTraffic(v1alpha1.TrafficTarget{
+ RevisionName: revision,
+ Percent: 100,
+ })
+}
+
+// WithStatusTraffic sets the Route's status traffic block to the specified traffic targets.
+func WithStatusTraffic(traffic ...v1alpha1.TrafficTarget) RouteOption {
+ return func(r *v1alpha1.Route) {
+ r.Status.Traffic = traffic
+ }
+}
+
+// WithRouteOwnersRemoved clears the owner references of this Route.
+func WithRouteOwnersRemoved(r *v1alpha1.Route) {
+ r.OwnerReferences = nil
+}
+
+// MarkServiceNotOwned calls the function of the same name on the Service's status.
+func MarkServiceNotOwned(r *v1alpha1.Route) {
+ r.Status.MarkServiceNotOwned(routenames.K8sService(r))
+}
+
+// WithDomain sets the .Status.Domain field to the prototypical domain.
+func WithDomain(r *v1alpha1.Route) {
+ r.Status.Domain = fmt.Sprintf("%s.%s.example.com", r.Name, r.Namespace)
+}
+
+// WithDomainInternal sets the .Status.DomainInternal field to the prototypical internal domain.
+func WithDomainInternal(r *v1alpha1.Route) {
+ r.Status.DeprecatedDomainInternal = fmt.Sprintf("%s.%s.svc.cluster.local", r.Name, r.Namespace)
+}
+
+// WithAddress sets the .Status.Address field to the prototypical internal hostname.
+func WithAddress(r *v1alpha1.Route) {
+ r.Status.Address = &duckv1alpha1.Addressable{
+ Hostname: fmt.Sprintf("%s.%s.svc.cluster.local", r.Name, r.Namespace),
+ }
+}
+
+// WithAnotherDomain sets the .Status.Domain field to an atypical domain.
+func WithAnotherDomain(r *v1alpha1.Route) {
+ r.Status.Domain = fmt.Sprintf("%s.%s.another-example.com", r.Name, r.Namespace)
+}
+
+// WithLocalDomain sets the .Status.Domain field to use `svc.cluster.local` suffix.
+func WithLocalDomain(r *v1alpha1.Route) {
+ r.Status.Domain = fmt.Sprintf("%s.%s.svc.cluster.local", r.Name, r.Namespace)
+}
+
+// WithInitRouteConditions initializes the Service's conditions.
+func WithInitRouteConditions(rt *v1alpha1.Route) {
+ rt.Status.InitializeConditions()
+}
+
+// MarkTrafficAssigned calls the method of the same name on .Status
+func MarkTrafficAssigned(r *v1alpha1.Route) {
+ r.Status.MarkTrafficAssigned()
+}
+
+// MarkIngressReady propagates a Ready=True ClusterIngress status to the Route.
+func MarkIngressReady(r *v1alpha1.Route) {
+ r.Status.PropagateClusterIngressStatus(netv1alpha1.IngressStatus{
+ Conditions: []duckv1alpha1.Condition{{
+ Type: "Ready",
+ Status: "True",
+ }},
+ })
+}
+
+// MarkMissingTrafficTarget calls the method of the same name on .Status
+func MarkMissingTrafficTarget(kind, revision string) RouteOption {
+ return func(r *v1alpha1.Route) {
+ r.Status.MarkMissingTrafficTarget(kind, revision)
+ }
+}
+
+// MarkConfigurationNotReady calls the method of the same name on .Status
+func MarkConfigurationNotReady(name string) RouteOption {
+ return func(r *v1alpha1.Route) {
+ r.Status.MarkConfigurationNotReady(name)
+ }
+}
+
+// MarkConfigurationFailed calls the method of the same name on .Status
+func MarkConfigurationFailed(name string) RouteOption {
+ return func(r *v1alpha1.Route) {
+ r.Status.MarkConfigurationFailed(name)
+ }
+}
+
+// WithRouteLabel sets the specified label on the Route.
+func WithRouteLabel(key, value string) RouteOption {
+ return func(r *v1alpha1.Route) {
+ if r.Labels == nil {
+ r.Labels = make(map[string]string)
+ }
+ r.Labels[key] = value
+ }
+}
+
+// WithIngressClass sets the ingress class annotation on the Route.
+func WithIngressClass(ingressClass string) RouteOption {
+ return func(r *v1alpha1.Route) {
+ if r.Annotations == nil {
+ r.Annotations = make(map[string]string)
+ }
+ r.Annotations[networking.IngressClassAnnotationKey] = ingressClass
+ }
+}
+
+// ConfigOption enables further configuration of a Configuration.
+type ConfigOption func(*v1alpha1.Configuration)
+
+// WithConfigDeletionTimestamp will set the DeletionTimestamp on the Config.
+func WithConfigDeletionTimestamp(r *v1alpha1.Configuration) {
+ t := metav1.NewTime(time.Unix(1e9, 0))
+ r.ObjectMeta.SetDeletionTimestamp(&t)
+}
+
+// WithBuild adds a Build to the provided Configuration.
+func WithBuild(cfg *v1alpha1.Configuration) {
+ cfg.Spec.Build = &v1alpha1.RawExtension{
+ Object: &unstructured.Unstructured{
+ Object: map[string]interface{}{
+ "apiVersion": "testing.build.knative.dev/v1alpha1",
+ "kind": "Build",
+ "spec": map[string]interface{}{
+ "steps": []interface{}{
+ map[string]interface{}{
+ "image": "foo",
+ },
+ map[string]interface{}{
+ "image": "bar",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+// WithConfigOwnersRemoved clears the owner references of this Configuration.
+func WithConfigOwnersRemoved(cfg *v1alpha1.Configuration) {
+ cfg.OwnerReferences = nil
+}
+
+// WithConfigConcurrencyModel sets the given Configuration's concurrency model.
+func WithConfigConcurrencyModel(ss v1alpha1.RevisionRequestConcurrencyModelType) ConfigOption {
+ return func(cfg *v1alpha1.Configuration) {
+ cfg.Spec.RevisionTemplate.Spec.DeprecatedConcurrencyModel = ss
+ }
+}
+
+// WithGeneration sets the generation of the Configuration.
+func WithGeneration(gen int64) ConfigOption {
+ return func(cfg *v1alpha1.Configuration) {
+ cfg.Generation = gen
+ //TODO(dprotaso) remove this for 0.4 release
+ cfg.Spec.DeprecatedGeneration = gen
+ }
+}
+
+// WithObservedGen sets the observed generation of the Configuration.
+func WithObservedGen(cfg *v1alpha1.Configuration) {
+ cfg.Status.ObservedGeneration = cfg.Generation
+}
+
+// WithCreatedAndReady sets the latest{Created,Ready}RevisionName on the Configuration.
+func WithCreatedAndReady(created, ready string) ConfigOption {
+ return func(cfg *v1alpha1.Configuration) {
+ cfg.Status.SetLatestCreatedRevisionName(created)
+ cfg.Status.SetLatestReadyRevisionName(ready)
+ }
+}
+
+// WithLatestCreated initializes the .status.latestCreatedRevisionName to be the name
+// of the latest revision that the Configuration would have created.
+func WithLatestCreated(name string) ConfigOption {
+ return func(cfg *v1alpha1.Configuration) {
+ cfg.Status.SetLatestCreatedRevisionName(name)
+ }
+}
+
+// WithLatestReady initializes the .status.latestReadyRevisionName to be the name
+// of the latest revision that the Configuration would have created.
+func WithLatestReady(name string) ConfigOption {
+ return func(cfg *v1alpha1.Configuration) {
+ cfg.Status.SetLatestReadyRevisionName(name)
+ }
+}
+
+// MarkRevisionCreationFailed calls .Status.MarkRevisionCreationFailed.
+func MarkRevisionCreationFailed(msg string) ConfigOption {
+ return func(cfg *v1alpha1.Configuration) {
+ cfg.Status.MarkRevisionCreationFailed(msg)
+ }
+}
+
+// MarkLatestCreatedFailed calls .Status.MarkLatestCreatedFailed.
+func MarkLatestCreatedFailed(msg string) ConfigOption {
+ return func(cfg *v1alpha1.Configuration) {
+ cfg.Status.MarkLatestCreatedFailed(cfg.Status.LatestCreatedRevisionName, msg)
+ }
+}
+
+// WithConfigLabel attaches a particular label to the configuration.
+func WithConfigLabel(key, value string) ConfigOption {
+ return func(config *v1alpha1.Configuration) {
+ if config.Labels == nil {
+ config.Labels = make(map[string]string)
+ }
+ config.Labels[key] = value
+ }
+}
+
+// RevisionOption enables further configuration of a Revision.
+type RevisionOption func(*v1alpha1.Revision)
+
+// WithRevisionDeletionTimestamp will set the DeletionTimestamp on the Revision.
+func WithRevisionDeletionTimestamp(r *v1alpha1.Revision) {
+ t := metav1.NewTime(time.Unix(1e9, 0))
+ r.ObjectMeta.SetDeletionTimestamp(&t)
+}
+
+// WithInitRevConditions calls .Status.InitializeConditions() on a Revision.
+func WithInitRevConditions(r *v1alpha1.Revision) {
+ r.Status.InitializeConditions()
+}
+
+// WithRevName sets the name of the revision
+func WithRevName(name string) RevisionOption {
+ return func(rev *v1alpha1.Revision) {
+ rev.Name = name
+ }
+}
+
+// WithBuildRef sets the .Spec.BuildRef on the Revision to match what we'd get
+// using WithBuild(name).
+func WithBuildRef(name string) RevisionOption {
+ return func(rev *v1alpha1.Revision) {
+ rev.Spec.BuildRef = &corev1.ObjectReference{
+ APIVersion: "testing.build.knative.dev/v1alpha1",
+ Kind: "Build",
+ Name: name,
+ }
+ }
+}
+
+// MarkResourceNotOwned calls the function of the same name on the Revision's status.
+func MarkResourceNotOwned(kind, name string) RevisionOption {
+ return func(rev *v1alpha1.Revision) {
+ rev.Status.MarkResourceNotOwned(kind, name)
+ }
+}
+
+// WithRevConcurrencyModel sets the concurrency model on the Revision.
+func WithRevConcurrencyModel(ss v1alpha1.RevisionRequestConcurrencyModelType) RevisionOption {
+ return func(rev *v1alpha1.Revision) {
+ rev.Spec.DeprecatedConcurrencyModel = ss
+ }
+}
+
+// WithLogURL sets the .Status.LogURL to the expected value.
+func WithLogURL(r *v1alpha1.Revision) {
+ r.Status.LogURL = "http://logger.io/test-uid"
+}
+
+// WithCreationTimestamp sets the Revision's timestamp to the provided time.
+// TODO(mattmoor): Ideally this could be a more generic Option and use meta.Accessor,
+// but unfortunately Go's type system cannot support that.
+func WithCreationTimestamp(t time.Time) RevisionOption {
+ return func(rev *v1alpha1.Revision) {
+ rev.ObjectMeta.CreationTimestamp = metav1.Time{Time: t}
+ }
+}
+
+// WithNoBuild updates the status conditions to propagate a Build status as-if
+// no BuildRef was specified.
+func WithNoBuild(r *v1alpha1.Revision) {
+ r.Status.PropagateBuildStatus(duckv1alpha1.KResourceStatus{
+ Conditions: []duckv1alpha1.Condition{{
+ Type: duckv1alpha1.ConditionSucceeded,
+ Status: corev1.ConditionTrue,
+ Reason: "NoBuild",
+ }},
+ })
+}
+
+// WithOngoingBuild propagates the status of an in-progress Build to the Revision's status.
+func WithOngoingBuild(r *v1alpha1.Revision) {
+ r.Status.PropagateBuildStatus(duckv1alpha1.KResourceStatus{
+ Conditions: []duckv1alpha1.Condition{{
+ Type: duckv1alpha1.ConditionSucceeded,
+ Status: corev1.ConditionUnknown,
+ }},
+ })
+}
+
+// WithSuccessfulBuild propagates the status of a successful Build to the Revision's status.
+func WithSuccessfulBuild(r *v1alpha1.Revision) {
+ r.Status.PropagateBuildStatus(duckv1alpha1.KResourceStatus{
+ Conditions: []duckv1alpha1.Condition{{
+ Type: duckv1alpha1.ConditionSucceeded,
+ Status: corev1.ConditionTrue,
+ }},
+ })
+}
+
+// WithFailedBuild propagates the status of a failed Build to the Revision's status.
+func WithFailedBuild(reason, message string) RevisionOption {
+ return func(r *v1alpha1.Revision) {
+ r.Status.PropagateBuildStatus(duckv1alpha1.KResourceStatus{
+ Conditions: []duckv1alpha1.Condition{{
+ Type: duckv1alpha1.ConditionSucceeded,
+ Status: corev1.ConditionFalse,
+ Reason: reason,
+ Message: message,
+ }},
+ })
+ }
+}
+
+// WithEmptyLTTs clears the LastTransitionTime fields on all of the conditions of the
+// provided Revision.
+func WithEmptyLTTs(r *v1alpha1.Revision) {
+ conds := r.Status.Conditions
+ for i, c := range conds {
+ // The LTT defaults and is long enough ago that we expire waiting
+ // on the Endpoints to become ready.
+ c.LastTransitionTime = apis.VolatileTime{}
+ conds[i] = c
+ }
+ r.Status.SetConditions(conds)
+}
+
+// WithLastPinned updates the "last pinned" annotation to the provided timestamp.
+func WithLastPinned(t time.Time) RevisionOption {
+ return func(rev *v1alpha1.Revision) {
+ rev.SetLastPinned(t)
+ }
+}
+
+// WithRevStatus is a generic escape hatch for creating hard-to-craft
+// status orientations.
+func WithRevStatus(st v1alpha1.RevisionStatus) RevisionOption {
+ return func(rev *v1alpha1.Revision) {
+ rev.Status = st
+ }
+}
+
+// MarkActive calls .Status.MarkActive on the Revision.
+func MarkActive(r *v1alpha1.Revision) {
+ r.Status.MarkActive()
+}
+
+// MarkInactive calls .Status.MarkInactive on the Revision.
+func MarkInactive(reason, message string) RevisionOption {
+ return func(r *v1alpha1.Revision) {
+ r.Status.MarkInactive(reason, message)
+ }
+}
+
+// MarkActivating calls .Status.MarkActivating on the Revision.
+func MarkActivating(reason, message string) RevisionOption {
+ return func(r *v1alpha1.Revision) {
+ r.Status.MarkActivating(reason, message)
+ }
+}
+
+// MarkDeploying calls .Status.MarkDeploying on the Revision.
+func MarkDeploying(reason string) RevisionOption {
+ return func(r *v1alpha1.Revision) {
+ r.Status.MarkDeploying(reason)
+ }
+}
+
+// MarkProgressDeadlineExceeded calls the method of the same name on the Revision
+// with the message we expect the Revision Reconciler to pass.
+func MarkProgressDeadlineExceeded(r *v1alpha1.Revision) {
+ r.Status.MarkProgressDeadlineExceeded("Unable to create pods for more than 120 seconds.")
+}
+
+// MarkServiceTimeout calls .Status.MarkServiceTimeout on the Revision.
+func MarkServiceTimeout(r *v1alpha1.Revision) {
+ r.Status.MarkServiceTimeout()
+}
+
+// MarkContainerMissing calls .Status.MarkContainerMissing on the Revision.
+func MarkContainerMissing(rev *v1alpha1.Revision) {
+ rev.Status.MarkContainerMissing("It's the end of the world as we know it")
+}
+
+// MarkContainerExiting calls .Status.MarkContainerExiting on the Revision.
+func MarkContainerExiting(exitCode int32, message string) RevisionOption {
+ return func(r *v1alpha1.Revision) {
+ r.Status.MarkContainerExiting(exitCode, message)
+ }
+}
+
+// MarkRevisionReady calls the necessary helpers to make the Revision Ready=True.
+func MarkRevisionReady(r *v1alpha1.Revision) {
+ WithInitRevConditions(r)
+ WithNoBuild(r)
+ MarkActive(r)
+ r.Status.MarkResourcesAvailable()
+ r.Status.MarkContainerHealthy()
+}
+
+type PodAutoscalerOption func(*autoscalingv1alpha1.PodAutoscaler)
+
+// WithPodAutoscalerOwnersRemoved clears the owner references of this PodAutoscaler.
+func WithPodAutoscalerOwnersRemoved(r *autoscalingv1alpha1.PodAutoscaler) {
+ r.OwnerReferences = nil
+}
+
+// WithTraffic updates the PA to reflect it receiving traffic.
+func WithTraffic(pa *autoscalingv1alpha1.PodAutoscaler) {
+ pa.Status.MarkActive()
+}
+
+// WithBufferedTraffic updates the PA to reflect that it has received
+// and buffered traffic while it is being activated.
+func WithBufferedTraffic(reason, message string) PodAutoscalerOption {
+ return func(pa *autoscalingv1alpha1.PodAutoscaler) {
+ pa.Status.MarkActivating(reason, message)
+ }
+}
+
+// WithNoTraffic updates the PA to reflect the fact that it is not
+// receiving traffic.
+func WithNoTraffic(reason, message string) PodAutoscalerOption {
+ return func(pa *autoscalingv1alpha1.PodAutoscaler) {
+ pa.Status.MarkInactive(reason, message)
+ }
+}
+
+// WithPADeletionTimestamp will set the DeletionTimestamp on the PodAutoscaler.
+func WithPADeletionTimestamp(r *autoscalingv1alpha1.PodAutoscaler) {
+ t := metav1.NewTime(time.Unix(1e9, 0))
+ r.ObjectMeta.SetDeletionTimestamp(&t)
+}
+
+// WithHPAClass updates the PA to add the hpa class annotation.
+func WithHPAClass(pa *autoscalingv1alpha1.PodAutoscaler) {
+ if pa.Annotations == nil {
+ pa.Annotations = make(map[string]string)
+ }
+ pa.Annotations[autoscaling.ClassAnnotationKey] = autoscaling.HPA
+}
+
+// WithKPAClass updates the PA to add the kpa class annotation.
+func WithKPAClass(pa *autoscalingv1alpha1.PodAutoscaler) {
+ if pa.Annotations == nil {
+ pa.Annotations = make(map[string]string)
+ }
+ pa.Annotations[autoscaling.ClassAnnotationKey] = autoscaling.KPA
+}
+
+// WithContainerConcurrency returns a PodAutoscalerOption which sets
+// the PodAutoscaler containerConcurrency to the provided value.
+func WithContainerConcurrency(cc int32) PodAutoscalerOption {
+ return func(pa *autoscalingv1alpha1.PodAutoscaler) {
+ pa.Spec.ContainerConcurrency = v1alpha1.RevisionContainerConcurrencyType(cc)
+ }
+}
+
+// WithTargetAnnotation returns a PodAutoscalerOption which sets
+// the PodAutoscaler autoscaling.knative.dev/target to the provided
+// value.
+func WithTargetAnnotation(target string) PodAutoscalerOption {
+ return func(pa *autoscalingv1alpha1.PodAutoscaler) {
+ if pa.Annotations == nil {
+ pa.Annotations = make(map[string]string)
+ }
+ pa.Annotations[autoscaling.TargetAnnotationKey] = target
+ }
+}
+
+// WithMetricAnnotation adds a metric annotation to the PA.
+func WithMetricAnnotation(metric string) PodAutoscalerOption {
+ return func(pa *autoscalingv1alpha1.PodAutoscaler) {
+ if pa.Annotations == nil {
+ pa.Annotations = make(map[string]string)
+ }
+ pa.Annotations[autoscaling.MetricAnnotationKey] = metric
+ }
+}
+
+// K8sServiceOption enables further configuration of the Kubernetes Service.
+type K8sServiceOption func(*corev1.Service)
+
+// MutateK8sService changes the service in a way that must be reconciled.
+func MutateK8sService(svc *corev1.Service) {
+ // An effective hammer ;-P
+ svc.Spec = corev1.ServiceSpec{}
+}
+
+func WithClusterIP(ip string) K8sServiceOption {
+ return func(svc *corev1.Service) {
+ svc.Spec.ClusterIP = ip
+ }
+}
+
+func WithExternalName(name string) K8sServiceOption {
+ return func(svc *corev1.Service) {
+ svc.Spec.ExternalName = name
+ }
+}
+
+// WithK8sSvcOwnersRemoved clears the owner references of this Route.
+func WithK8sSvcOwnersRemoved(svc *corev1.Service) {
+ svc.OwnerReferences = nil
+}
+
+// EndpointsOption enables further configuration of the Kubernetes Endpoints.
+type EndpointsOption func(*corev1.Endpoints)
+
+// WithSubsets adds subsets to the body of a Revision, enabling us to refer readiness.
+func WithSubsets(ep *corev1.Endpoints) {
+ ep.Subsets = []corev1.EndpointSubset{{
+ Addresses: []corev1.EndpointAddress{{IP: "127.0.0.1"}},
+ }}
+}
+
+// PodOption enables further configuration of a Pod.
+type PodOption func(*corev1.Pod)
+
+// WithFailingContainer sets the .Status.ContainerStatuses on the pod to
+// include a container named accordingly to fail with the given state.
+func WithFailingContainer(name string, exitCode int, message string) PodOption {
+ return func(pod *corev1.Pod) {
+ pod.Status.ContainerStatuses = []corev1.ContainerStatus{
+ {
+ Name: name,
+ LastTerminationState: corev1.ContainerState{
+ Terminated: &corev1.ContainerStateTerminated{
+ ExitCode: int32(exitCode),
+ Message: message,
+ },
+ },
+ },
+ }
+ }
+}
diff --git a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/testing/listers.go b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/testing/listers.go
index fbf50bcbca..60da2fcf44 100644
--- a/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/testing/listers.go
+++ b/vendor/github.com/knative/serving/pkg/reconciler/v1alpha1/testing/listers.go
@@ -32,12 +32,14 @@ import (
servinglisters "github.com/knative/serving/pkg/client/listers/serving/v1alpha1"
"github.com/knative/serving/pkg/reconciler/testing"
appsv1 "k8s.io/api/apps/v1"
+ autoscalingv1 "k8s.io/api/autoscaling/v1"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
fakekubeclientset "k8s.io/client-go/kubernetes/fake"
appsv1listers "k8s.io/client-go/listers/apps/v1"
+ autoscalingv1listers "k8s.io/client-go/listers/autoscaling/v1"
corev1listers "k8s.io/client-go/listers/core/v1"
"k8s.io/client-go/tools/cache"
)
@@ -114,10 +116,14 @@ func (l *Listers) GetRevisionLister() servinglisters.RevisionLister {
return servinglisters.NewRevisionLister(l.indexerFor(&v1alpha1.Revision{}))
}
-func (l *Listers) GetKPALister() kpalisters.PodAutoscalerLister {
+func (l *Listers) GetPodAutoscalerLister() kpalisters.PodAutoscalerLister {
return kpalisters.NewPodAutoscalerLister(l.indexerFor(&kpa.PodAutoscaler{}))
}
+func (l *Listers) GetHorizontalPodAutoscalerLister() autoscalingv1listers.HorizontalPodAutoscalerLister {
+ return autoscalingv1listers.NewHorizontalPodAutoscalerLister(l.indexerFor(&autoscalingv1.HorizontalPodAutoscaler{}))
+}
+
// GetClusterIngressLister get lister for ClusterIngress resource.
func (l *Listers) GetClusterIngressLister() networkinglisters.ClusterIngressLister {
return networkinglisters.NewClusterIngressLister(l.indexerFor(&networking.ClusterIngress{}))
diff --git a/vendor/github.com/knative/serving/pkg/utils/utils.go b/vendor/github.com/knative/serving/pkg/utils/utils.go
new file mode 100644
index 0000000000..33482fc052
--- /dev/null
+++ b/vendor/github.com/knative/serving/pkg/utils/utils.go
@@ -0,0 +1,69 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package utils
+
+import (
+ "bufio"
+ "io"
+ "os"
+ "strings"
+ "sync"
+)
+
+const (
+ resolverFileName = "/etc/resolv.conf"
+ defaultDomainName = "cluster.local"
+)
+
+var (
+ domainName string
+ once sync.Once
+)
+
+// GetClusterDomainName returns cluster's domain name or an error
+// Closes issue: https://github.com/knative/eventing/issues/714
+func GetClusterDomainName() string {
+ once.Do(func() {
+ f, err := os.Open(resolverFileName)
+ if err == nil {
+ defer f.Close()
+ domainName = getClusterDomainName(f)
+
+ } else {
+ domainName = defaultDomainName
+ }
+ })
+
+ return domainName
+}
+
+func getClusterDomainName(r io.Reader) string {
+ scanner := bufio.NewScanner(r)
+ for scanner.Scan() {
+ elements := strings.Split(scanner.Text(), " ")
+ if elements[0] != "search" {
+ continue
+ }
+ for i := 1; i < len(elements)-1; i++ {
+ if strings.HasPrefix(elements[i], "svc.") {
+ return elements[i][4:]
+ }
+ }
+ }
+ // For all abnormal cases return default domain name
+ return defaultDomainName
+}
diff --git a/vendor/github.com/knative/serving/pkg/websocket/connection.go b/vendor/github.com/knative/serving/pkg/websocket/connection.go
deleted file mode 100644
index 0917b70533..0000000000
--- a/vendor/github.com/knative/serving/pkg/websocket/connection.go
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
-Copyright 2018 The Knative Authors
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package websocket
-
-import (
- "bytes"
- "encoding/gob"
- "errors"
- "io"
- "sync"
- "time"
-
- "k8s.io/apimachinery/pkg/util/wait"
-
- "github.com/gorilla/websocket"
-)
-
-var (
- // ErrConnectionNotEstablished is returned by methods that need a connection
- // but no connection is already created.
- ErrConnectionNotEstablished = errors.New("connection has not yet been established")
-
- connFactory = func(target string) (rawConnection, error) {
- dialer := &websocket.Dialer{
- HandshakeTimeout: 3 * time.Second,
- }
- conn, _, err := dialer.Dial(target, nil)
- return conn, err
- }
-)
-
-// RawConnection is an interface defining the methods needed
-// from a websocket connection
-type rawConnection interface {
- WriteMessage(messageType int, data []byte) error
- NextReader() (int, io.Reader, error)
- Close() error
-}
-
-// ManagedConnection represents a websocket connection.
-type ManagedConnection struct {
- target string
- connection rawConnection
- closeChan chan struct{}
-
- // This mutex controls access to the connection reference
- // itself.
- connectionLock sync.RWMutex
-
- // Gorilla's documentation states, that one reader and
- // one writer are allowed concurrently.
- readerLock sync.Mutex
- writerLock sync.Mutex
-}
-
-// NewDurableSendingConnection creates a new websocket connection
-// that can only send messages to the endpoint it connects to.
-// The connection will continuously be kept alive and reconnected
-// in case of a loss of connectivity.
-func NewDurableSendingConnection(target string) *ManagedConnection {
- c := newConnection(target)
-
- // Keep the connection alive asynchronously and reconnect on
- // connection failure.
- go func() {
- // If the close signal races the connection attempt, make
- // sure the connection actually closes.
- defer func() {
- c.connectionLock.RLock()
- defer c.connectionLock.RUnlock()
-
- if conn := c.connection; conn != nil {
- conn.Close()
- }
- }()
- for {
- select {
- default:
- if err := c.connect(); err != nil {
- continue
- }
- c.keepalive()
- case <-c.closeChan:
- return
- }
- }
- }()
-
- return c
-}
-
-// newConnection creates a new connection primitive.
-func newConnection(target string) *ManagedConnection {
- conn := &ManagedConnection{
- target: target,
- closeChan: make(chan struct{}, 1),
- }
-
- return conn
-}
-
-// connect tries to establish a websocket connection.
-func (c *ManagedConnection) connect() (err error) {
- wait.ExponentialBackoff(wait.Backoff{
- Duration: 100 * time.Millisecond,
- Factor: 1.3,
- Steps: 20,
- Jitter: 0.5,
- }, func() (bool, error) {
- conn, err := connFactory(c.target)
- if err != nil {
- return false, nil
- }
- c.connectionLock.Lock()
- defer c.connectionLock.Unlock()
-
- c.connection = conn
- return true, nil
- })
-
- return err
-}
-
-// keepalive keeps the connection open and reads control messages.
-// All messages are discarded.
-func (c *ManagedConnection) keepalive() (err error) {
- c.readerLock.Lock()
- defer c.readerLock.Unlock()
-
- for {
- func() {
- c.connectionLock.RLock()
- defer c.connectionLock.RUnlock()
-
- if conn := c.connection; conn != nil {
- if _, _, err = conn.NextReader(); err != nil {
- conn.Close()
- }
- }
- }()
-
- if err != nil {
- return err
- }
- }
-}
-
-// Send sends an encodable message over the websocket connection.
-func (c *ManagedConnection) Send(msg interface{}) error {
- c.connectionLock.RLock()
- defer c.connectionLock.RUnlock()
-
- conn := c.connection
- if conn == nil {
- return ErrConnectionNotEstablished
- }
-
- c.writerLock.Lock()
- defer c.writerLock.Unlock()
-
- var b bytes.Buffer
- enc := gob.NewEncoder(&b)
- if err := enc.Encode(msg); err != nil {
- return err
- }
-
- return conn.WriteMessage(websocket.BinaryMessage, b.Bytes())
-}
-
-// Close closes the websocket connection.
-func (c *ManagedConnection) Close() error {
- c.closeChan <- struct{}{}
- c.connectionLock.RLock()
- defer c.connectionLock.RUnlock()
-
- if conn := c.connection; conn != nil {
- return conn.Close()
- }
- return nil
-}
diff --git a/vendor/github.com/knative/serving/test/cleanup.go b/vendor/github.com/knative/serving/test/cleanup.go
index c713867c8d..d165fb8fd1 100644
--- a/vendor/github.com/knative/serving/test/cleanup.go
+++ b/vendor/github.com/knative/serving/test/cleanup.go
@@ -22,19 +22,27 @@ package test
import (
"os"
"os/signal"
-
- "github.com/knative/pkg/test/logging"
)
// CleanupOnInterrupt will execute the function cleanup if an interrupt signal is caught
-func CleanupOnInterrupt(cleanup func(), logger *logging.BaseLogger) {
+func CleanupOnInterrupt(cleanup func()) {
c := make(chan os.Signal, 1)
signal.Notify(c, os.Interrupt)
go func() {
for range c {
- logger.Infof("Test interrupted, cleaning up.")
cleanup()
os.Exit(1)
}
}()
}
+
+// TearDown will delete created names using clients.
+func TearDown(clients *Clients, names ResourceNames) {
+ if clients != nil && clients.ServingClient != nil {
+ clients.ServingClient.Delete(
+ []string{names.Route},
+ []string{names.Config},
+ []string{names.Service},
+ )
+ }
+}
diff --git a/vendor/github.com/knative/serving/test/clients.go b/vendor/github.com/knative/serving/test/clients.go
index c4ffeb68b0..1ca227f449 100644
--- a/vendor/github.com/knative/serving/test/clients.go
+++ b/vendor/github.com/knative/serving/test/clients.go
@@ -19,11 +19,13 @@ limitations under the License.
package test
import (
+ pipelineversioned "github.com/knative/build-pipeline/pkg/client/clientset/versioned"
+ pipelinev1alpha1 "github.com/knative/build-pipeline/pkg/client/clientset/versioned/typed/pipeline/v1alpha1"
"github.com/knative/pkg/test"
"github.com/knative/serving/pkg/client/clientset/versioned"
servingtyped "github.com/knative/serving/pkg/client/clientset/versioned/typed/serving/v1alpha1"
testbuildtyped "github.com/knative/serving/test/client/clientset/versioned/typed/testing/v1alpha1"
- "k8s.io/apimachinery/pkg/apis/meta/v1"
+ v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/dynamic"
_ "k8s.io/client-go/plugin/pkg/client/auth/oidc"
"k8s.io/client-go/rest"
@@ -32,10 +34,11 @@ import (
// Clients holds instances of interfaces for making requests to Knative Serving.
type Clients struct {
- KubeClient *test.KubeClient
- ServingClient *ServingClients
- BuildClient *BuildClient
- Dynamic dynamic.Interface
+ KubeClient *test.KubeClient
+ ServingClient *ServingClients
+ BuildClient *BuildClient
+ PipelineClient *PipelineClient
+ Dynamic dynamic.Interface
}
// BuildClient holds instances of interfaces for making requests to build client.
@@ -43,6 +46,15 @@ type BuildClient struct {
TestBuilds testbuildtyped.BuildInterface
}
+// PipelineClient holds instances of interfaces for making requests to pipeline client.
+type PipelineClient struct {
+ Pipeline pipelinev1alpha1.PipelineInterface
+ Task pipelinev1alpha1.TaskInterface
+ TaskRun pipelinev1alpha1.TaskRunInterface
+ PipelineRun pipelinev1alpha1.PipelineRunInterface
+ PipelineResource pipelinev1alpha1.PipelineResourceInterface
+}
+
// ServingClients holds instances of interfaces for making requests to knative serving clients
type ServingClients struct {
Routes servingtyped.RouteInterface
@@ -61,6 +73,10 @@ func NewClients(configPath string, clusterName string, namespace string) (*Clien
return nil, err
}
+ // We poll, so set our limits high.
+ cfg.QPS = 100
+ cfg.Burst = 200
+
clients.KubeClient, err = test.NewKubeClient(configPath, clusterName)
if err != nil {
return nil, err
@@ -71,6 +87,11 @@ func NewClients(configPath string, clusterName string, namespace string) (*Clien
return nil, err
}
+ clients.PipelineClient, err = newPipelineClients(cfg, namespace)
+ if err != nil {
+ return nil, err
+ }
+
clients.ServingClient, err = newServingClients(cfg, namespace)
if err != nil {
return nil, err
@@ -97,6 +118,22 @@ func newBuildClient(cfg *rest.Config, namespace string) (*BuildClient, error) {
}, nil
}
+// NewPipelineClients instantiates and returns several clientsets required for making request to the
+// pipeline client.
+func newPipelineClients(cfg *rest.Config, namespace string) (*PipelineClient, error) {
+ pcs, err := pipelineversioned.NewForConfig(cfg)
+ if err != nil {
+ return nil, err
+ }
+ return &PipelineClient{
+ Pipeline: pcs.PipelineV1alpha1().Pipelines(namespace),
+ PipelineResource: pcs.PipelineV1alpha1().PipelineResources(namespace),
+ PipelineRun: pcs.PipelineV1alpha1().PipelineRuns(namespace),
+ Task: pcs.PipelineV1alpha1().Tasks(namespace),
+ TaskRun: pcs.PipelineV1alpha1().TaskRuns(namespace),
+ }, nil
+}
+
// NewServingClients instantiates and returns the serving clientset required to make requests to the
// knative serving cluster.
func newServingClients(cfg *rest.Config, namespace string) (*ServingClients, error) {
@@ -105,13 +142,12 @@ func newServingClients(cfg *rest.Config, namespace string) (*ServingClients, err
return nil, err
}
- var clients = &ServingClients{}
- clients.Routes = cs.ServingV1alpha1().Routes(namespace)
- clients.Configs = cs.ServingV1alpha1().Configurations(namespace)
- clients.Revisions = cs.ServingV1alpha1().Revisions(namespace)
- clients.Services = cs.ServingV1alpha1().Services(namespace)
-
- return clients, nil
+ return &ServingClients{
+ Configs: cs.ServingV1alpha1().Configurations(namespace),
+ Revisions: cs.ServingV1alpha1().Revisions(namespace),
+ Routes: cs.ServingV1alpha1().Routes(namespace),
+ Services: cs.ServingV1alpha1().Services(namespace),
+ }, nil
}
// Delete will delete all Routes and Configs with the names routes and configs, if clients
@@ -128,6 +164,11 @@ func (clients *ServingClients) Delete(routes []string, configs []string, service
{clients.Services, services},
}
+ propPolicy := v1.DeletePropagationForeground
+ dopt := &v1.DeleteOptions{
+ PropagationPolicy: &propPolicy,
+ }
+
for _, deletion := range deletions {
if deletion.client == nil {
continue
@@ -138,7 +179,7 @@ func (clients *ServingClients) Delete(routes []string, configs []string, service
continue
}
- if err := deletion.client.Delete(item, nil); err != nil {
+ if err := deletion.client.Delete(item, dopt); err != nil {
return err
}
}
diff --git a/vendor/github.com/knative/serving/test/configuration.go b/vendor/github.com/knative/serving/test/configuration.go
index 895f15c7a4..7dc4c95d18 100644
--- a/vendor/github.com/knative/serving/test/configuration.go
+++ b/vendor/github.com/knative/serving/test/configuration.go
@@ -19,22 +19,62 @@ limitations under the License.
package test
import (
- "github.com/knative/pkg/test/logging"
+ "testing"
+
+ "github.com/knative/serving/pkg/apis/serving/v1alpha1"
corev1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/types"
+
+ rtesting "github.com/knative/serving/pkg/reconciler/v1alpha1/testing"
)
// Options are test setup parameters.
type Options struct {
- EnvVars []corev1.EnvVar
- ContainerConcurrency int
+ EnvVars []corev1.EnvVar
+ ContainerPorts []corev1.ContainerPort
+ ContainerConcurrency int
+ RevisionTimeoutSeconds int64
+ ContainerResources corev1.ResourceRequirements
+ ReadinessProbe *corev1.Probe
}
// CreateConfiguration create a configuration resource in namespace with the name names.Config
-// that uses the image specified by imagePath.
-func CreateConfiguration(logger *logging.BaseLogger, clients *Clients, names ResourceNames, imagePath string, options *Options) error {
- config := Configuration(ServingNamespace, names, imagePath, options)
+// that uses the image specified by names.Image.
+func CreateConfiguration(t *testing.T, clients *Clients, names ResourceNames, options *Options, fopt ...rtesting.ConfigOption) (*v1alpha1.Configuration, error) {
+ config := Configuration(ServingNamespace, names, options, fopt...)
+ LogResourceObject(t, ResourceObjects{Config: config})
+ return clients.ServingClient.Configs.Create(config)
+}
+
+// PatchConfigImage patches the existing config passed in with a new imagePath. Returns the latest Configuration object
+func PatchConfigImage(clients *Clients, cfg *v1alpha1.Configuration, imagePath string) (*v1alpha1.Configuration, error) {
+ newCfg := cfg.DeepCopy()
+ newCfg.Spec.RevisionTemplate.Spec.Container.Image = imagePath
+ patchBytes, err := createPatch(cfg, newCfg)
+ if err != nil {
+ return nil, err
+ }
+ return clients.ServingClient.Configs.Patch(cfg.ObjectMeta.Name, types.JSONPatchType, patchBytes, "")
+}
+
+// WaitForConfigLatestRevision takes a revision in through names and compares it to the current state of LatestCreatedRevisionName in Configuration.
+// Once an update is detected in the LatestCreatedRevisionName, the function waits for the created revision to be set in LatestReadyRevisionName
+// before returning the name of the revision.
+func WaitForConfigLatestRevision(clients *Clients, names ResourceNames) (string, error) {
+ var revisionName string
+ err := WaitForConfigurationState(clients.ServingClient, names.Config, func(c *v1alpha1.Configuration) (bool, error) {
+ if c.Status.LatestCreatedRevisionName != names.Revision {
+ revisionName = c.Status.LatestCreatedRevisionName
+ return true, nil
+ }
+ return false, nil
+ }, "ConfigurationUpdatedWithRevision")
+ if err != nil {
+ return "", err
+ }
+ err = WaitForConfigurationState(clients.ServingClient, names.Config, func(c *v1alpha1.Configuration) (bool, error) {
+ return (c.Status.LatestReadyRevisionName == revisionName), nil
+ }, "ConfigurationReadyWithRevision")
- LogResourceObject(logger, ResourceObjects{Configuration: config})
- _, err := clients.ServingClient.Configs.Create(config)
- return err
+ return revisionName, err
}
diff --git a/vendor/github.com/knative/serving/test/conformance/conformancetest_helper.go b/vendor/github.com/knative/serving/test/conformance/conformancetest_helper.go
new file mode 100644
index 0000000000..4acde57514
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/conformance/conformancetest_helper.go
@@ -0,0 +1,144 @@
+// +build e2e
+
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+//runtime_conformance_helper.go contains helper methods used by conformance tests that verify runtime-contract.
+
+package conformance
+
+import (
+ "encoding/json"
+ "fmt"
+ "net/http"
+ "testing"
+
+ pkgTest "github.com/knative/pkg/test"
+ "github.com/knative/pkg/test/spoof"
+ "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ serviceresourcenames "github.com/knative/serving/pkg/reconciler/v1alpha1/service/resources/names"
+ "github.com/knative/serving/test"
+ "github.com/knative/serving/test/types"
+ "github.com/pkg/errors"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+// fetchRuntimeInfo creates a Service that uses the 'runtime' test image, and extracts the returned output into the
+// RuntimeInfo object.
+func fetchRuntimeInfo(t *testing.T, clients *test.Clients, options *test.Options) (*types.RuntimeInfo, error) {
+ names := test.ResourceNames{
+ Service: test.ObjectNameForTest(t),
+ Image: runtime,
+ }
+
+ defer test.TearDown(clients, names)
+ test.CleanupOnInterrupt(func() { test.TearDown(clients, names) })
+
+ objects, err := test.CreateRunLatestServiceReady(t, clients, &names, options)
+ if err != nil {
+ return nil, err
+ }
+
+ resp, err := pkgTest.WaitForEndpointState(
+ clients.KubeClient,
+ t.Logf,
+ objects.Service.Status.Domain,
+ pkgTest.Retrying(func(resp *spoof.Response) (bool, error) {
+ if resp.StatusCode == http.StatusOK {
+ return true, nil
+ }
+
+ return true, errors.New(string(resp.Body))
+ }, http.StatusNotFound),
+ "RuntimeInfo",
+ test.ServingFlags.ResolvableDomain)
+ if err != nil {
+ return nil, err
+ }
+
+ var ri types.RuntimeInfo
+ err = json.Unmarshal(resp.Body, &ri)
+ if err != nil {
+ return nil, err
+ }
+ return &ri, nil
+}
+
+// fetchEnvInfo creates the service using test_images/environment and fetches environment info defined inside the container dictated by urlPath.
+func fetchEnvInfo(t *testing.T, clients *test.Clients, urlPath string, options *test.Options) ([]byte, *test.ResourceNames, error) {
+ t.Log("Creating a new Service")
+ var names test.ResourceNames
+ names.Service = test.ObjectNameForTest(t)
+ names.Image = "environment"
+ svc, err := test.CreateLatestService(t, clients, names, options)
+ if err != nil {
+ return nil, nil, errors.New(fmt.Sprintf("Failed to create Service: %v", err))
+ }
+ names.Route = serviceresourcenames.Route(svc)
+ names.Config = serviceresourcenames.Configuration(svc)
+
+ test.CleanupOnInterrupt(func() { test.TearDown(clients, names) })
+ defer test.TearDown(clients, names)
+
+ var revisionName string
+ t.Log("The Service will be updated with the name of the Revision once it is created")
+ err = test.WaitForServiceState(clients.ServingClient, names.Service, func(s *v1alpha1.Service) (bool, error) {
+ if s.Status.LatestCreatedRevisionName != names.Revision {
+ revisionName = s.Status.LatestCreatedRevisionName
+ return true, nil
+ }
+ return false, nil
+ }, "ServiceUpdatedWithRevision")
+ if err != nil {
+ return nil, nil, errors.New(fmt.Sprintf("Service %s was not updated with the new revision: %v", names.Service, err))
+ }
+ names.Revision = revisionName
+
+ t.Log("When the Service reports as Ready, everything should be ready.")
+ if err := test.WaitForServiceState(clients.ServingClient, names.Service, test.IsServiceReady, "ServiceIsReady"); err != nil {
+ return nil, nil, errors.New(fmt.Sprintf("The Service %s was not marked as Ready to serve traffic to Revision %s: %v", names.Service, names.Revision, err))
+ }
+
+ t.Log("When the Revision can have traffic routed to it, the Route is marked as Ready.")
+ if err := test.WaitForRouteState(clients.ServingClient, names.Route, test.IsRouteReady, "RouteIsReady"); err != nil {
+ return nil, nil, errors.New(fmt.Sprintf("The Route %s was not marked as Ready to serve traffic: %v", names.Route, err))
+ }
+
+ route, err := clients.ServingClient.Routes.Get(names.Route, metav1.GetOptions{})
+ if err != nil {
+ return nil, nil, errors.New(fmt.Sprintf("Error fetching Route %s: %v", names.Route, err))
+ }
+
+ url := route.Status.Domain + urlPath
+ resp, err := pkgTest.WaitForEndpointState(
+ clients.KubeClient,
+ t.Logf,
+ url,
+ pkgTest.Retrying(func(resp *spoof.Response) (bool, error) {
+ if resp.StatusCode == http.StatusOK {
+ return true, nil
+ }
+
+ return true, errors.New(string(resp.Body))
+ }, http.StatusNotFound),
+ "EnvVarsServesText",
+ test.ServingFlags.ResolvableDomain)
+ if err != nil {
+ return nil, nil, errors.New(fmt.Sprintf("Failed before reaching desired state : %v", err))
+ }
+
+ return resp.Body, &names, nil
+}
diff --git a/vendor/github.com/knative/serving/test/conformance/runtime_contract_types.go b/vendor/github.com/knative/serving/test/conformance/runtime_contract_types.go
new file mode 100644
index 0000000000..49911e81cc
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/conformance/runtime_contract_types.go
@@ -0,0 +1,59 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package conformance
+
+//runtime_constract_types.go defines types that encapsulate run-time contract requirements as specified here: https://github.com/knative/serving/blob/master/docs/runtime-contract.md
+
+// ShouldEnvvars defines the environment variables that "SHOULD" be set.
+type ShouldEnvvars struct {
+ Service string `json:"K_SERVICE"`
+ Configuration string `json:"K_CONFIGURATION"`
+ Revision string `json:"K_REVISION"`
+}
+
+// MustEnvvars defines environment variables that "MUST" be set.
+type MustEnvvars struct {
+ Port string `json:"PORT"`
+}
+
+// FilePathInfo data object returned by the environment test-image.
+type FilePathInfo struct {
+ FilePath string `json:"FilePath"`
+ IsDirectory bool `json:"IsDirectory"`
+ PermString string `json:"PermString"`
+}
+
+// MustFilePathSpecs specifies the file-paths and expected permissions that MUST be set as specified in the runtime contract.
+var MustFilePathSpecs = map[string]FilePathInfo{
+ "/tmp": {
+ IsDirectory: true,
+ PermString: "rw*rw*rw*", // * indicates no specification
+ },
+ "/var/log": {
+ IsDirectory: true,
+ PermString: "rw*rw*rw*", // * indicates no specification
+ },
+ // TODO(#822): Add conformance tests for "/dev/log".
+}
+
+// ShouldFilePathSpecs specifies the file-paths and expected permissions that SHOULD be set as specified in the run-time contract.
+var ShouldFilePathSpecs = map[string]FilePathInfo{
+ "/etc/resolv.conf": {
+ IsDirectory: false,
+ PermString: "rw*r**r**", // * indicates no specification
+ },
+}
diff --git a/vendor/github.com/knative/serving/test/conformance/util.go b/vendor/github.com/knative/serving/test/conformance/util.go
index 88ef33c8e0..7dea2eb4ea 100644
--- a/vendor/github.com/knative/serving/test/conformance/util.go
+++ b/vendor/github.com/knative/serving/test/conformance/util.go
@@ -19,23 +19,55 @@ limitations under the License.
package conformance
import (
+ "testing"
+
+ "context"
+ "fmt"
+ "math"
+ "net/http"
+ "regexp"
+ "strings"
+
pkgTest "github.com/knative/pkg/test"
+ "github.com/knative/pkg/test/spoof"
"github.com/knative/serving/test"
- "testing"
+ "github.com/pkg/errors"
+ "golang.org/x/sync/errgroup"
// Mysteriously required to support GCP auth (required by k8s libs). Apparently just importing it is enough. @_@ side effects @_@. https://github.com/kubernetes/client-go/issues/242
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
)
-// Constants for test images located in test/test_images
+// Constants for test images located in test/test_images.
+const (
+ pizzaPlanet1 = "pizzaplanetv1"
+ pizzaPlanet2 = "pizzaplanetv2"
+ helloworld = "helloworld"
+ httpproxy = "httpproxy"
+ singleThreadedImage = "singlethreaded"
+ timeout = "timeout"
+ printport = "printport"
+ runtime = "runtime"
+ protocols = "protocols"
+
+ concurrentRequests = 50
+ // We expect to see 100% of requests succeed for traffic sent directly to revisions.
+ // This might be a bad assumption.
+ minDirectPercentage = 1
+ // We expect to see at least 25% of either response since we're routing 50/50.
+ // This might be a bad assumption.
+ minSplitPercentage = 0.25
+)
+
+// Constants for test image output.
const (
- pizzaPlanet1 = "pizzaplanetv1"
- pizzaPlanet2 = "pizzaplanetv2"
- helloworld = "helloworld"
- httpproxy = "httpproxy"
+ pizzaPlanetText1 = "What a spaceport!"
+ pizzaPlanetText2 = "Re-energize yourself with a slice of pepperoni!"
+ helloWorldText = "Hello World! How about some tasty noodles?"
)
func setup(t *testing.T) *test.Clients {
+ t.Helper()
clients, err := test.NewClients(pkgTest.Flags.Kubeconfig, pkgTest.Flags.Cluster, test.ServingNamespace)
if err != nil {
t.Fatalf("Couldn't initialize clients: %v", err)
@@ -43,8 +75,157 @@ func setup(t *testing.T) *test.Clients {
return clients
}
-func tearDown(clients *test.Clients, names test.ResourceNames) {
- if clients != nil && clients.ServingClient != nil {
- clients.ServingClient.Delete([]string{names.Route}, []string{names.Config}, []string{names.Service})
+func waitForExpectedResponse(t *testing.T, clients *test.Clients, domain, expectedResponse string) error {
+ client, err := pkgTest.NewSpoofingClient(clients.KubeClient, t.Logf, domain, test.ServingFlags.ResolvableDomain)
+ if err != nil {
+ return err
}
+ req, err := http.NewRequest(http.MethodGet, fmt.Sprintf("http://%s", domain), nil)
+ if err != nil {
+ return err
+ }
+ _, err = client.Poll(req, pkgTest.EventuallyMatchesBody(expectedResponse))
+ return err
+}
+
+func validateDomains(
+ t *testing.T, clients *test.Clients, baseDomain string,
+ baseExpected, trafficTargets, targetsExpected []string) error {
+ var subdomains []string
+ for _, target := range trafficTargets {
+ subdomains = append(subdomains, fmt.Sprintf("%s.%s", target, baseDomain))
+ }
+
+ g, _ := errgroup.WithContext(context.Background())
+ // We don't have a good way to check if the route is updated so we will wait until a subdomain has
+ // started returning at least one expected result to key that we should validate percentage splits.
+ // In order for tests to succeed reliably, we need to make sure that all domains succeed.
+ for i, s := range subdomains {
+ i, s := i, s
+ g.Go(func() error {
+ t.Logf("Waiting for route to update domain: %s", s)
+ return waitForExpectedResponse(t, clients, s, targetsExpected[i])
+ })
+ }
+ if err := g.Wait(); err != nil {
+ return errors.Wrap(err, "error with initial domain probing")
+ }
+
+ g.Go(func() error {
+ minBasePercentage := minSplitPercentage
+ if len(baseExpected) == 1 {
+ minBasePercentage = minDirectPercentage
+ }
+ min := int(math.Floor(concurrentRequests * minBasePercentage))
+ return checkDistribution(t, clients, baseDomain, concurrentRequests, min, baseExpected)
+ })
+ for i, subdomain := range subdomains {
+ i, subdomain := i, subdomain
+ g.Go(func() error {
+ min := int(math.Floor(concurrentRequests * minDirectPercentage))
+ return checkDistribution(t, clients, subdomain, concurrentRequests, min, []string{targetsExpected[i]})
+ })
+ }
+ if err := g.Wait(); err != nil {
+ return errors.Wrap(err, "error checking routing distribution")
+ }
+ return nil
+}
+
+func validateImageDigest(imageName string, imageDigest string) (bool, error) {
+ imageDigestRegex := fmt.Sprintf("%s/%s@sha256:[0-9a-f]{64}", test.ServingFlags.DockerRepo, imageName)
+ return regexp.MatchString(imageDigestRegex, imageDigest)
+}
+
+// sendRequests sends "num" requests to "domain", returning a string for each spoof.Response.Body.
+func sendRequests(client spoof.Interface, domain string, num int) ([]string, error) {
+ responses := make([]string, num)
+
+ // Launch "num" requests, recording the responses we get in "responses".
+ g, _ := errgroup.WithContext(context.Background())
+ for i := 0; i < num; i++ {
+ // We don't index into "responses" inside the goroutine to avoid a race, see #1545.
+ result := &responses[i]
+ g.Go(func() error {
+ req, err := http.NewRequest(http.MethodGet, fmt.Sprintf("http://%s", domain), nil)
+ if err != nil {
+ return err
+ }
+
+ resp, err := client.Do(req)
+ if err != nil {
+ return err
+ }
+
+ *result = string(resp.Body)
+ return nil
+ })
+ }
+ return responses, g.Wait()
+}
+
+// checkResponses verifies that each "expectedResponse" is present in "actualResponses" at least "min" times.
+func checkResponses(t *testing.T, num int, min int, domain string, expectedResponses []string, actualResponses []string) error {
+ // counts maps the expected response body to the number of matching requests we saw.
+ counts := make(map[string]int)
+ // badCounts maps the unexpected response body to the number of matching requests we saw.
+ badCounts := make(map[string]int)
+
+ // counts := eval(
+ // SELECT body, count(*) AS total
+ // FROM $actualResponses
+ // WHERE body IN $expectedResponses
+ // GROUP BY body
+ // )
+ for _, ar := range actualResponses {
+ expected := false
+ for _, er := range expectedResponses {
+ if strings.Contains(ar, er) {
+ counts[er]++
+ expected = true
+ }
+ }
+ if !expected {
+ badCounts[ar]++
+ }
+ }
+
+ // Verify that we saw each entry in "expectedResponses" at least "min" times.
+ // check(SELECT body FROM $counts WHERE total < $min)
+ totalMatches := 0
+ for _, er := range expectedResponses {
+ count := counts[er]
+ if count < min {
+ return fmt.Errorf("domain %s failed: want at least %d, got %d for response %q", domain, min, count, er)
+ }
+
+ t.Logf("For domain %s: wanted at least %d, got %d requests.", domain, min, count)
+ totalMatches += count
+ }
+ // Verify that the total expected responses match the number of requests made.
+ for badResponse, count := range badCounts {
+ t.Logf("Saw unexpected response %q %d times.", badResponse, count)
+ }
+ if totalMatches < num {
+ return fmt.Errorf("domain %s: saw expected responses %d times, wanted %d", domain, totalMatches, num)
+ }
+ // If we made it here, the implementation conforms. Congratulations!
+ return nil
+}
+
+// checkDistribution sends "num" requests to "domain", then validates that
+// we see each body in "expectedResponses" at least "min" times.
+func checkDistribution(t *testing.T, clients *test.Clients, domain string, num, min int, expectedResponses []string) error {
+ client, err := pkgTest.NewSpoofingClient(clients.KubeClient, t.Logf, domain, test.ServingFlags.ResolvableDomain)
+ if err != nil {
+ return err
+ }
+
+ t.Logf("Performing %d concurrent requests to %s", num, domain)
+ actualResponses, err := sendRequests(client, domain, num)
+ if err != nil {
+ return err
+ }
+
+ return checkResponses(t, num, min, domain, expectedResponses, actualResponses)
}
diff --git a/vendor/github.com/knative/serving/test/controller/main.go b/vendor/github.com/knative/serving/test/controller/main.go
index 52fa6f0b68..afe28badd2 100644
--- a/vendor/github.com/knative/serving/test/controller/main.go
+++ b/vendor/github.com/knative/serving/test/controller/main.go
@@ -26,6 +26,7 @@ import (
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/tools/clientcmd"
+
// Uncomment the following line to load the gcp plugin (only required to authenticate against GKE clusters).
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
@@ -33,6 +34,7 @@ import (
clientset "github.com/knative/serving/test/client/clientset/versioned"
informers "github.com/knative/serving/test/client/informers/externalversions"
"github.com/knative/serving/test/reconciler/build"
+ "go.uber.org/zap"
)
const (
@@ -54,12 +56,12 @@ func main() {
cfg, err := clientcmd.BuildConfigFromFlags(*masterURL, *kubeconfig)
if err != nil {
- logger.Fatalf("Error building kubeconfig: %v", err)
+ logger.Fatalw("Error building kubeconfig", zap.Error(err))
}
testingClient, err := clientset.NewForConfig(cfg)
if err != nil {
- logger.Fatalf("Error building testing clientset: %v", err)
+ logger.Fatalw("Error building testing clientset", zap.Error(err))
}
testingInformerFactory := informers.NewSharedInformerFactory(testingClient, time.Second*30)
@@ -85,7 +87,7 @@ func main() {
buildInformer.Informer().HasSynced,
} {
if ok := cache.WaitForCacheSync(stopCh, synced); !ok {
- logger.Fatalf("failed to wait for cache at index %v to sync", i)
+ logger.Fatalf("Failed to wait for cache at index %d to sync", i)
}
}
@@ -95,7 +97,7 @@ func main() {
// We don't expect this to return until stop is called,
// but if it does, propagate it back.
if runErr := ctrlr.Run(threadsPerController, stopCh); runErr != nil {
- logger.Fatalf("Error running controller: %v", runErr)
+ logger.Fatalw("Error running controller", zap.Error(runErr))
}
}(ctrlr)
}
diff --git a/vendor/github.com/knative/serving/test/crd.go b/vendor/github.com/knative/serving/test/crd.go
index 1427c9acd6..b8f556b476 100644
--- a/vendor/github.com/knative/serving/test/crd.go
+++ b/vendor/github.com/knative/serving/test/crd.go
@@ -19,15 +19,24 @@ package test
// crd contains functions that construct boilerplate CRD definitions.
import (
- "math/rand"
- "sync"
- "time"
+ "strings"
+ "testing"
+ "unicode"
+ "github.com/knative/pkg/test/helpers"
+ "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ v1alpha1testing "github.com/knative/serving/pkg/reconciler/v1alpha1/testing"
corev1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
- "github.com/knative/pkg/test/logging"
- "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+const (
+ // Default for user containers in e2e tests. This value is lower than the general
+ // Knative's default so as to run more effectively in CI with limited resources.
+ defaultRequestCPU = "100m"
+
+ testNamePrefix = "Test"
)
// ResourceNames holds names of various resources.
@@ -37,33 +46,40 @@ type ResourceNames struct {
Revision string
Service string
TrafficTarget string
+ Domain string
+ Image string
}
// ResourceObjects holds types of the resource objects.
type ResourceObjects struct {
- Route *v1alpha1.Route
- Configuration *v1alpha1.Configuration
- Service *v1alpha1.Service
+ Route *v1alpha1.Route
+ Config *v1alpha1.Configuration
+ Service *v1alpha1.Service
+ Revision *v1alpha1.Revision
}
// Route returns a Route object in namespace using the route and configuration
// names in names.
-func Route(namespace string, names ResourceNames) *v1alpha1.Route {
- return &v1alpha1.Route{
+func Route(namespace string, names ResourceNames, fopt ...v1alpha1testing.RouteOption) *v1alpha1.Route {
+ route := &v1alpha1.Route{
ObjectMeta: metav1.ObjectMeta{
Namespace: namespace,
Name: names.Route,
},
Spec: v1alpha1.RouteSpec{
- Traffic: []v1alpha1.TrafficTarget{
- {
- Name: names.TrafficTarget,
- ConfigurationName: names.Config,
- Percent: 100,
- },
- },
+ Traffic: []v1alpha1.TrafficTarget{{
+ Name: names.TrafficTarget,
+ ConfigurationName: names.Config,
+ Percent: 100,
+ }},
},
}
+
+ for _, opt := range fopt {
+ opt(route)
+ }
+
+ return route
}
// BlueGreenRoute returns a Route object in namespace using the route and configuration
@@ -88,32 +104,67 @@ func BlueGreenRoute(namespace string, names, blue, green ResourceNames) *v1alpha
}
}
+// ConfigurationSpec returns the spec of a configuration to be used throughout different
+// CRD helpers.
+func ConfigurationSpec(imagePath string, options *Options) *v1alpha1.ConfigurationSpec {
+ if options.ContainerResources.Limits == nil && options.ContainerResources.Requests == nil {
+ options.ContainerResources = corev1.ResourceRequirements{
+ Requests: corev1.ResourceList{
+ corev1.ResourceCPU: resource.MustParse(defaultRequestCPU),
+ },
+ }
+ }
+
+ spec := &v1alpha1.ConfigurationSpec{
+ RevisionTemplate: v1alpha1.RevisionTemplateSpec{
+ Spec: v1alpha1.RevisionSpec{
+ Container: corev1.Container{
+ Image: imagePath,
+ Resources: options.ContainerResources,
+ ReadinessProbe: options.ReadinessProbe,
+ Ports: options.ContainerPorts,
+ },
+ ContainerConcurrency: v1alpha1.RevisionContainerConcurrencyType(options.ContainerConcurrency),
+ },
+ },
+ }
+
+ if options.RevisionTimeoutSeconds > 0 {
+ spec.RevisionTemplate.Spec.TimeoutSeconds = options.RevisionTimeoutSeconds
+ }
+
+ if options.EnvVars != nil {
+ spec.RevisionTemplate.Spec.Container.Env = options.EnvVars
+ }
+
+ return spec
+}
+
// Configuration returns a Configuration object in namespace with the name names.Config
-// that uses the image specified by imagePath.
-func Configuration(namespace string, names ResourceNames, imagePath string, options *Options) *v1alpha1.Configuration {
+// that uses the image specified by names.Image
+func Configuration(namespace string, names ResourceNames, options *Options, fopt ...v1alpha1testing.ConfigOption) *v1alpha1.Configuration {
config := &v1alpha1.Configuration{
ObjectMeta: metav1.ObjectMeta{
Namespace: namespace,
Name: names.Config,
},
- Spec: v1alpha1.ConfigurationSpec{
- RevisionTemplate: v1alpha1.RevisionTemplateSpec{
- Spec: v1alpha1.RevisionSpec{
- Container: corev1.Container{
- Image: imagePath,
- },
- ContainerConcurrency: v1alpha1.RevisionContainerConcurrencyType(options.ContainerConcurrency),
- },
- },
- },
+ Spec: *ConfigurationSpec(ImagePath(names.Image), options),
}
- if options.EnvVars != nil && len(options.EnvVars) > 0 {
- config.Spec.RevisionTemplate.Spec.Container.Env = options.EnvVars
+ if options.ContainerPorts != nil && len(options.ContainerPorts) > 0 {
+ config.Spec.RevisionTemplate.Spec.Container.Ports = options.ContainerPorts
}
+
+ for _, opt := range fopt {
+ opt(config)
+ }
+
return config
}
-func ConfigurationWithBuild(namespace string, names ResourceNames, build *v1alpha1.RawExtension, imagePath string) *v1alpha1.Configuration {
+// ConfigurationWithBuild returns a Configuration object in the `namespace`
+// with the name `names.Config` that uses the provided Build spec `build`
+// and image specified by `names.Image`.
+func ConfigurationWithBuild(namespace string, names ResourceNames, build *v1alpha1.RawExtension) *v1alpha1.Configuration {
return &v1alpha1.Configuration{
ObjectMeta: metav1.ObjectMeta{
Namespace: namespace,
@@ -124,7 +175,7 @@ func ConfigurationWithBuild(namespace string, names ResourceNames, build *v1alph
RevisionTemplate: v1alpha1.RevisionTemplateSpec{
Spec: v1alpha1.RevisionSpec{
Container: corev1.Container{
- Image: imagePath,
+ Image: ImagePath(names.Image),
},
},
},
@@ -133,31 +184,52 @@ func ConfigurationWithBuild(namespace string, names ResourceNames, build *v1alph
}
// LatestService returns a RunLatest Service object in namespace with the name names.Service
-// that uses the image specified by imagePath.
-func LatestService(namespace string, names ResourceNames, imagePath string) *v1alpha1.Service {
- return &v1alpha1.Service{
+// that uses the image specified by names.Image.
+func LatestService(namespace string, names ResourceNames, options *Options, fopt ...v1alpha1testing.ServiceOption) *v1alpha1.Service {
+ svc := &v1alpha1.Service{
ObjectMeta: metav1.ObjectMeta{
Namespace: namespace,
Name: names.Service,
},
Spec: v1alpha1.ServiceSpec{
RunLatest: &v1alpha1.RunLatestType{
- Configuration: v1alpha1.ConfigurationSpec{
- RevisionTemplate: v1alpha1.RevisionTemplateSpec{
- Spec: v1alpha1.RevisionSpec{
- Container: corev1.Container{
- Image: imagePath,
- },
- },
- },
- },
+ Configuration: *ConfigurationSpec(ImagePath(names.Image), options),
},
},
}
+
+ // Apply any mutations we have been provided.
+ for _, opt := range fopt {
+ opt(svc)
+ }
+ return svc
+}
+
+// ReleaseLatestService returns a Release Service object in namespace with the name names.Service
+// that uses the image specified by names.Image and `@latest` as the only revision.
+func ReleaseLatestService(namespace string, names ResourceNames, options *Options, fopt ...v1alpha1testing.ServiceOption) *v1alpha1.Service {
+ svc := &v1alpha1.Service{
+ ObjectMeta: metav1.ObjectMeta{
+ Namespace: namespace,
+ Name: names.Service,
+ },
+ Spec: v1alpha1.ServiceSpec{
+ Release: &v1alpha1.ReleaseType{
+ Revisions: []string{v1alpha1.ReleaseLatestRevisionKeyword},
+ Configuration: *ConfigurationSpec(ImagePath(names.Image), options),
+ },
+ },
+ }
+
+ // Apply any mutations we have been provided.
+ for _, opt := range fopt {
+ opt(svc)
+ }
+ return svc
}
// ReleaseService returns a Release Service object in namespace with the name names.Service that uses
-// the image specifeid by imagePath. It also takes a list of 1-2 revisons and a rolloutPercent to be
+// the image specified by names.Image. It also takes a list of 1-2 revisons and a rolloutPercent to be
// used to configure routing
func ReleaseService(svc *v1alpha1.Service, revisions []string, rolloutPercent int) *v1alpha1.Service {
var config v1alpha1.ConfigurationSpec
@@ -165,8 +237,8 @@ func ReleaseService(svc *v1alpha1.Service, revisions []string, rolloutPercent in
config = svc.Spec.RunLatest.Configuration
} else if svc.Spec.Release != nil {
config = svc.Spec.Release.Configuration
- } else if svc.Spec.Pinned != nil {
- config = svc.Spec.Pinned.Configuration
+ } else if svc.Spec.DeprecatedPinned != nil {
+ config = svc.Spec.DeprecatedPinned.Configuration
}
return &v1alpha1.Service{
ObjectMeta: svc.ObjectMeta,
@@ -190,41 +262,39 @@ func ManualService(svc *v1alpha1.Service) *v1alpha1.Service {
}
}
-const (
- letterBytes = "abcdefghijklmnopqrstuvwxyz"
- randSuffixLen = 8
-)
-
-// r is used by AppendRandomString to generate a random string. It is seeded with the time
-// at import so the strings will be different between test runs.
-var (
- r *rand.Rand
- rndMutex *sync.Mutex
-)
-
-// once is used to initialize r
-var once sync.Once
-
-func initSeed(logger *logging.BaseLogger) func() {
- return func() {
- seed := time.Now().UTC().UnixNano()
- logger.Infof("Seeding rand.Rand with %v", seed)
- r = rand.New(rand.NewSource(seed))
- rndMutex = &sync.Mutex{}
- }
-}
-
// AppendRandomString will generate a random string that begins with prefix. This is useful
// if you want to make sure that your tests can run at the same time against the same
// environment without conflicting. This method will seed rand with the current time when
// called for the first time.
-func AppendRandomString(prefix string, logger *logging.BaseLogger) string {
- once.Do(initSeed(logger))
- suffix := make([]byte, randSuffixLen)
- rndMutex.Lock()
- for i := range suffix {
- suffix[i] = letterBytes[r.Intn(len(letterBytes))]
- }
- rndMutex.Unlock()
- return prefix + string(suffix)
+var AppendRandomString = helpers.AppendRandomString
+
+// ObjectNameForTest generates a random object name based on the test name.
+func ObjectNameForTest(t *testing.T) string {
+ return AppendRandomString(makeK8sNamePrefix(strings.TrimPrefix(t.Name(), testNamePrefix)))
+}
+
+// SubServiceNameForTest generates a random service name based on the test name and
+// the given subservice name.
+func SubServiceNameForTest(t *testing.T, subsvc string) string {
+ fullPrefix := strings.TrimPrefix(t.Name(), testNamePrefix) + "-" + subsvc
+ return AppendRandomString(makeK8sNamePrefix(fullPrefix))
+}
+
+// makeK8sNamePrefix converts each chunk of non-alphanumeric character into a single dash
+// and also convert camelcase tokens into dash-delimited lowercase tokens.
+func makeK8sNamePrefix(s string) string {
+ var sb strings.Builder
+ newToken := false
+ for _, c := range s {
+ if !(unicode.IsLetter(c) || unicode.IsNumber(c)) {
+ newToken = true
+ continue
+ }
+ if sb.Len() > 0 && (newToken == true || unicode.IsUpper(c)) {
+ sb.WriteRune('-')
+ }
+ sb.WriteRune(unicode.ToLower(c))
+ newToken = false
+ }
+ return sb.String()
}
diff --git a/vendor/github.com/knative/serving/test/crd_checks.go b/vendor/github.com/knative/serving/test/crd_checks.go
index b34918d3cb..c839a8b5b2 100644
--- a/vendor/github.com/knative/serving/test/crd_checks.go
+++ b/vendor/github.com/knative/serving/test/crd_checks.go
@@ -28,6 +28,7 @@ import (
"github.com/knative/serving/pkg/apis/serving/v1alpha1"
"github.com/pkg/errors"
"go.opencensus.io/trace"
+ apiv1beta1 "k8s.io/api/extensions/v1beta1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/wait"
k8styped "k8s.io/client-go/kubernetes/typed/core/v1"
@@ -47,13 +48,20 @@ func WaitForRouteState(client *ServingClients, name string, inState func(r *v1al
_, span := trace.StartSpan(context.Background(), metricName)
defer span.End()
- return wait.PollImmediate(interval, timeout, func() (bool, error) {
- r, err := client.Routes.Get(name, metav1.GetOptions{})
+ var lastState *v1alpha1.Route
+ waitErr := wait.PollImmediate(interval, timeout, func() (bool, error) {
+ var err error
+ lastState, err = client.Routes.Get(name, metav1.GetOptions{})
if err != nil {
return true, err
}
- return inState(r)
+ return inState(lastState)
})
+
+ if waitErr != nil {
+ return errors.Wrapf(waitErr, "route %q is not in desired state, got: %+v", name, lastState)
+ }
+ return nil
}
// CheckRouteState verifies the status of the Route called name from client
@@ -67,7 +75,7 @@ func CheckRouteState(client *ServingClients, name string, inState func(r *v1alph
if done, err := inState(r); err != nil {
return err
} else if !done {
- return fmt.Errorf("route %q is not in desired state: %+v", name, r)
+ return fmt.Errorf("route %q is not in desired state, got: %+v", name, r)
}
return nil
}
@@ -81,13 +89,20 @@ func WaitForConfigurationState(client *ServingClients, name string, inState func
_, span := trace.StartSpan(context.Background(), metricName)
defer span.End()
- return wait.PollImmediate(interval, timeout, func() (bool, error) {
- c, err := client.Configs.Get(name, metav1.GetOptions{})
+ var lastState *v1alpha1.Configuration
+ waitErr := wait.PollImmediate(interval, timeout, func() (bool, error) {
+ var err error
+ lastState, err = client.Configs.Get(name, metav1.GetOptions{})
if err != nil {
return true, err
}
- return inState(c)
+ return inState(lastState)
})
+
+ if waitErr != nil {
+ return errors.Wrapf(waitErr, "configuration %q is not in desired state, got: %+v", name, lastState)
+ }
+ return nil
}
// CheckConfigurationState verifies the status of the Configuration called name from client
@@ -101,13 +116,13 @@ func CheckConfigurationState(client *ServingClients, name string, inState func(r
if done, err := inState(c); err != nil {
return err
} else if !done {
- return fmt.Errorf("configuration %q is not in desired state: %+v", name, c)
+ return fmt.Errorf("configuration %q is not in desired state, got: %+v", name, c)
}
return nil
}
// WaitForRevisionState polls the status of the Revision called name
-// from client every interval until inState returns `true` indicating it
+// from client every `interval` until `inState` returns `true` indicating it
// is done, returns an error or timeout. desc will be used to name the metric
// that is emitted to track how long it took for name to get into the state checked by inState.
func WaitForRevisionState(client *ServingClients, name string, inState func(r *v1alpha1.Revision) (bool, error), desc string) error {
@@ -115,22 +130,18 @@ func WaitForRevisionState(client *ServingClients, name string, inState func(r *v
_, span := trace.StartSpan(context.Background(), metricName)
defer span.End()
+ var lastState *v1alpha1.Revision
waitErr := wait.PollImmediate(interval, timeout, func() (bool, error) {
- r, err := client.Revisions.Get(name, metav1.GetOptions{})
+ var err error
+ lastState, err = client.Revisions.Get(name, metav1.GetOptions{})
if err != nil {
return true, err
}
- return inState(r)
+ return inState(lastState)
})
- // Attempt to add revision Status to error message.
+
if waitErr != nil {
- r, err := client.Revisions.Get(name, metav1.GetOptions{})
- if err != nil {
- // Cant' look for Revision, don't append Status to error message.
- return waitErr
- }
- // Wrap error with information about Status.
- return errors.Wrapf(waitErr, "Status=%#v", r.Status)
+ return errors.Wrapf(waitErr, "revision %q is not in desired state, got: %+v", name, lastState)
}
return nil
}
@@ -146,13 +157,13 @@ func CheckRevisionState(client *ServingClients, name string, inState func(r *v1a
if done, err := inState(r); err != nil {
return err
} else if !done {
- return fmt.Errorf("revision %q is not in desired state: %+v", name, r)
+ return fmt.Errorf("revision %q is not in desired state, got: %+v", name, r)
}
return nil
}
// WaitForServiceState polls the status of the Service called name
-// from client every interval until inState returns `true` indicating it
+// from client every `interval` until `inState` returns `true` indicating it
// is done, returns an error or timeout. desc will be used to name the metric
// that is emitted to track how long it took for name to get into the state checked by inState.
func WaitForServiceState(client *ServingClients, name string, inState func(s *v1alpha1.Service) (bool, error), desc string) error {
@@ -160,18 +171,25 @@ func WaitForServiceState(client *ServingClients, name string, inState func(s *v1
_, span := trace.StartSpan(context.Background(), metricName)
defer span.End()
- return wait.PollImmediate(interval, timeout, func() (bool, error) {
- s, err := client.Services.Get(name, metav1.GetOptions{})
+ var lastState *v1alpha1.Service
+ waitErr := wait.PollImmediate(interval, timeout, func() (bool, error) {
+ var err error
+ lastState, err = client.Services.Get(name, metav1.GetOptions{})
if err != nil {
return true, err
}
- return inState(s)
+ return inState(lastState)
})
+
+ if waitErr != nil {
+ return errors.Wrapf(waitErr, "service %q is not in desired state, got: %+v", name, lastState)
+ }
+ return nil
}
// CheckServiceState verifies the status of the Service called name from client
// is in a particular state by calling `inState` and expecting `true`.
-// This is the non-polling variety of WaitForServiceState
+// This is the non-polling variety of WaitForServiceState.
func CheckServiceState(client *ServingClients, name string, inState func(s *v1alpha1.Service) (bool, error)) error {
s, err := client.Services.Get(name, metav1.GetOptions{})
if err != nil {
@@ -180,7 +198,7 @@ func CheckServiceState(client *ServingClients, name string, inState func(s *v1al
if done, err := inState(s); err != nil {
return err
} else if !done {
- return fmt.Errorf("service %q is not in desired state: %+v", name, s)
+ return fmt.Errorf("service %q is not in desired state, got: %+v", name, s)
}
return nil
}
@@ -189,3 +207,8 @@ func CheckServiceState(client *ServingClients, name string, inState func(s *v1al
func GetConfigMap(client *pkgTest.KubeClient) k8styped.ConfigMapInterface {
return client.Kube.CoreV1().ConfigMaps("knative-serving")
}
+
+// DeploymentScaledToZeroFunc returns a func that evaluates if a deployment has scaled to 0 pods.
+func DeploymentScaledToZeroFunc(d *apiv1beta1.Deployment) (bool, error) {
+ return d.Status.ReadyReplicas == 0, nil
+}
diff --git a/vendor/github.com/knative/serving/test/e2e/diagnose.go b/vendor/github.com/knative/serving/test/e2e/diagnose.go
index ba019bfed3..bdee3fae43 100644
--- a/vendor/github.com/knative/serving/test/e2e/diagnose.go
+++ b/vendor/github.com/knative/serving/test/e2e/diagnose.go
@@ -1,88 +1,86 @@
package e2e
import (
- "fmt"
+ "testing"
"time"
- "github.com/knative/pkg/test/logging"
+ rnames "github.com/knative/serving/pkg/reconciler/v1alpha1/revision/resources/names"
"github.com/knative/serving/test"
+ v1types "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
-func DiagnoseMeEvery(duration time.Duration, clients *test.Clients, logger *logging.BaseLogger) chan struct{} {
+// DiagnoseMeEvery queries the k8s controller and reports the pod stats to the logger,
+// every `duration` period.
+func DiagnoseMeEvery(t *testing.T, duration time.Duration, clients *test.Clients) chan struct{} {
stopChan := make(chan struct{})
go func() {
+ c := time.NewTicker(duration)
for {
select {
+ case <-c.C:
+ diagnoseMe(t, clients)
+ continue
case <-stopChan:
+ c.Stop()
return
- default:
}
- DiagnoseMe(clients, logger)
- time.Sleep(duration)
}
}()
return stopChan
}
-func DiagnoseMe(clients *test.Clients, logger *logging.BaseLogger) {
+func diagnoseMe(t *testing.T, clients *test.Clients) {
if clients == nil || clients.KubeClient == nil || clients.KubeClient.Kube == nil {
- logger.Errorf(fmt.Sprintf("could not diagnose: nil kube client"))
+ t.Log("Could not diagnose: nil kube client")
return
}
- for _, check := range []func(*test.Clients, *logging.BaseLogger){
+ for _, check := range []func(*testing.T, *test.Clients){
checkCurrentPodCount,
checkUnschedulablePods,
} {
- check(clients, logger)
+ check(t, clients)
}
}
-func checkCurrentPodCount(clients *test.Clients, logger *logging.BaseLogger) {
+func checkCurrentPodCount(t *testing.T, clients *test.Clients) {
revs, err := clients.ServingClient.Revisions.List(metav1.ListOptions{})
if err != nil {
- logger.Errorf(fmt.Sprintf("could not check current pod count: %v", err))
+ t.Logf("Could not check current pod count: %v", err)
return
}
for _, r := range revs.Items {
- deploymentName := r.Name + "-deployment"
+ deploymentName := rnames.Deployment(&r)
dep, err := clients.KubeClient.Kube.AppsV1().Deployments(test.ServingNamespace).Get(deploymentName, metav1.GetOptions{})
if err != nil {
- logger.Errorf(fmt.Sprintf("could not get deployment %v", deploymentName))
+ t.Logf("Could not get deployment %v", deploymentName)
continue
}
- want := dep.Status.Replicas
- have := dep.Status.ReadyReplicas
- if have != want {
- logger.Infof("deployment %v has %v pods. wants %v.", deploymentName, have, want)
- } else {
- logger.Infof("deployment %v has %v pods.", deploymentName, have)
- }
+ t.Logf("Deployment %s has %d pods. wants %d.", deploymentName, dep.Status.Replicas, dep.Status.ReadyReplicas)
}
}
-func checkUnschedulablePods(clients *test.Clients, logger *logging.BaseLogger) {
+func checkUnschedulablePods(t *testing.T, clients *test.Clients) {
kube := clients.KubeClient.Kube
pods, err := kube.CoreV1().Pods(test.ServingNamespace).List(metav1.ListOptions{})
if err != nil {
- logger.Errorf(fmt.Sprintf("could not check unschedulable pods: %v", err))
+ t.Logf("Could not check unschedulable pods: %v", err)
return
}
- totalPods := 0
+
+ totalPods := len(pods.Items)
unschedulablePods := 0
for _, p := range pods.Items {
- totalPods++
for _, c := range p.Status.Conditions {
- if c.Type == "PodScheduled" && c.Status == "False" && c.Reason == "Unschedulable" {
+ if c.Type == v1types.PodScheduled && c.Status == v1types.ConditionFalse && c.Reason == v1types.PodReasonUnschedulable {
unschedulablePods++
break
}
}
}
if unschedulablePods != 0 {
- logger.Errorf(fmt.Sprintf("%v out of %v pods are unschedulable. insufficient cluster capacity?",
- unschedulablePods, totalPods))
+ t.Logf("%v out of %v pods are unschedulable. Insufficient cluster capacity?", unschedulablePods, totalPods)
}
}
diff --git a/vendor/github.com/knative/serving/test/e2e/e2e.go b/vendor/github.com/knative/serving/test/e2e/e2e.go
index a018583bd9..df007311a3 100644
--- a/vendor/github.com/knative/serving/test/e2e/e2e.go
+++ b/vendor/github.com/knative/serving/test/e2e/e2e.go
@@ -9,13 +9,13 @@ import (
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
pkgTest "github.com/knative/pkg/test"
- "github.com/knative/pkg/test/logging"
"github.com/knative/serving/test"
)
const (
- configName = "prod"
- routeName = "noodleburg"
+ configName = "prod"
+ routeName = "noodleburg"
+ helloWorldExpectedOutput = "Hello World! How about some tasty noodles?"
)
// Setup creates the client objects needed in the e2e tests.
@@ -30,23 +30,19 @@ func Setup(t *testing.T) *test.Clients {
return clients
}
-// TearDown will delete created names using clients.
-func TearDown(clients *test.Clients, names test.ResourceNames, logger *logging.BaseLogger) {
- if clients != nil && clients.ServingClient != nil {
- clients.ServingClient.Delete([]string{names.Route}, []string{names.Config}, []string{names.Service})
- }
-}
-
// CreateRouteAndConfig will create Route and Config objects using clients.
// The Config object will serve requests to a container started from the image at imagePath.
-func CreateRouteAndConfig(clients *test.Clients, logger *logging.BaseLogger, imagePath string, options *test.Options) (test.ResourceNames, error) {
- var names test.ResourceNames
- names.Config = test.AppendRandomString(configName, logger)
- names.Route = test.AppendRandomString(routeName, logger)
+func CreateRouteAndConfig(t *testing.T, clients *test.Clients, image string, options *test.Options) (test.ResourceNames, error) {
+ svcName := test.ObjectNameForTest(t)
+ names := test.ResourceNames{
+ Config: svcName,
+ Route: svcName,
+ Image: image,
+ }
- if err := test.CreateConfiguration(logger, clients, names, imagePath, options); err != nil {
+ if _, err := test.CreateConfiguration(t, clients, names, options); err != nil {
return test.ResourceNames{}, err
}
- err := test.CreateRoute(logger, clients, names)
+ _, err := test.CreateRoute(t, clients, names)
return names, err
}
diff --git a/vendor/github.com/knative/serving/test/e2e/scale.go b/vendor/github.com/knative/serving/test/e2e/scale.go
new file mode 100644
index 0000000000..3d8b763839
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/e2e/scale.go
@@ -0,0 +1,218 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package e2e
+
+import (
+ "fmt"
+ "net/http"
+ "testing"
+ "time"
+
+ pkgTest "github.com/knative/pkg/test"
+ "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ serviceresourcenames "github.com/knative/serving/pkg/reconciler/v1alpha1/service/resources/names"
+ "github.com/knative/serving/test"
+ corev1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/api/resource"
+
+ "github.com/knative/serving/pkg/pool"
+ . "github.com/knative/serving/pkg/reconciler/v1alpha1/testing"
+)
+
+// Latencies is an interface for providing mechanisms for recording timings
+// for the parts of the scale test.
+type Latencies interface {
+ // Add takes the name of this measurement and the time at which it began.
+ // This should be called at the moment of completion, so that duration may
+ // be computed with `time.Since(start)`. We use this signature to that this
+ // function is suitable for use in a `defer`.
+ Add(name string, start time.Time)
+}
+
+func ScaleToWithin(t *testing.T, scale int, duration time.Duration, latencies Latencies) {
+ clients := Setup(t)
+
+ cleanupCh := make(chan test.ResourceNames, scale)
+ defer close(cleanupCh)
+
+ fopt := []ServiceOption{
+ // We set a small resource alloc so that we can pack more pods into the cluster.
+ func(svc *v1alpha1.Service) {
+ svc.Spec.RunLatest.Configuration.RevisionTemplate.Spec.Container.Resources = corev1.ResourceRequirements{
+ Limits: corev1.ResourceList{
+ corev1.ResourceCPU: resource.MustParse("10m"),
+ corev1.ResourceMemory: resource.MustParse("50Mi"),
+ },
+ Requests: corev1.ResourceList{
+ corev1.ResourceCPU: resource.MustParse("10m"),
+ corev1.ResourceMemory: resource.MustParse("20Mi"),
+ },
+ }
+ },
+ // See #2946 for why we do this.
+ func(svc *v1alpha1.Service) {
+ svc.Spec.RunLatest.Configuration.RevisionTemplate.ObjectMeta.Annotations = map[string]string{
+ "autoscaling.knative.dev/minScale": "1",
+ "autoscaling.knative.dev/maxScale": "1",
+ }
+ },
+ }
+ // These are the local (per-probe) and global (all probes) targets for the scale test.
+ // 90 = 18/20, so allow two failures with the minimum number of probes, but expect
+ // us to have 2.5 9s overall.
+ //
+ // TODO(#2850): After moving to Istio 1.1 we need to revisit these SLOs.
+ const (
+ localSLO = 0.90
+ globalSLO = 0.995
+ minProbes = 20
+ )
+ pm := test.NewProberManager(t, clients, minProbes)
+
+ timeoutCh := time.After(duration)
+
+ t.Log("Creating new Services")
+ wg := pool.NewWithCapacity(50 /* maximum in-flight creates */, scale /* capacity */)
+ for i := 0; i < scale; i++ {
+ // https://golang.org/doc/faq#closures_and_goroutines
+ i := i
+
+ wg.Go(func() error {
+ names := test.ResourceNames{
+ Service: test.SubServiceNameForTest(t, fmt.Sprintf("%d", i)),
+ Image: "helloworld",
+ }
+
+ options := &test.Options{
+ // Give each request 10 seconds to respond.
+ // This is mostly to work around #2897
+ RevisionTimeoutSeconds: 10,
+ ReadinessProbe: &corev1.Probe{
+ Handler: corev1.Handler{
+ HTTPGet: &corev1.HTTPGetAction{
+ Path: "/",
+ },
+ },
+ },
+ }
+
+ // Start the clock for various waypoints towards Service readiness.
+ start := time.Now()
+ // Record the overall completion time regardless of success/failure.
+ defer latencies.Add("time-to-done", start)
+
+ svc, err := test.CreateLatestService(t, clients, names, options, fopt...)
+ if err != nil {
+ t.Errorf("CreateLatestService() = %v", err)
+ return nil
+ }
+ // Record the time it took to create the service.
+ latencies.Add("time-to-create", start)
+ names.Route = serviceresourcenames.Route(svc)
+ names.Config = serviceresourcenames.Configuration(svc)
+
+ // Send it to our cleanup logic (below)
+ cleanupCh <- names
+
+ t.Logf("Wait for %s to become ready.", names.Service)
+ var domain string
+ err = test.WaitForServiceState(clients.ServingClient, names.Service, func(s *v1alpha1.Service) (bool, error) {
+ if s.Status.Domain == "" {
+ return false, nil
+ }
+ domain = s.Status.Domain
+ return test.IsServiceReady(s)
+ }, "ServiceUpdatedWithDomain")
+ if err != nil {
+ t.Errorf("WaitForServiceState(w/ Domain) = %v", err)
+ return nil
+ }
+ // Record the time it took to become ready.
+ latencies.Add("time-to-ready", start)
+
+ _, err = pkgTest.WaitForEndpointState(
+ clients.KubeClient,
+ t.Logf,
+ domain,
+ pkgTest.Retrying(pkgTest.EventuallyMatchesBody(helloWorldExpectedOutput), http.StatusNotFound),
+ "WaitForEndpointToServeText",
+ test.ServingFlags.ResolvableDomain)
+ if err != nil {
+ t.Errorf("WaitForEndpointState(expected text) = %v", err)
+ return nil
+ }
+ // Record the time it took to get back a 200 with the expected text.
+ latencies.Add("time-to-200", start)
+
+ // Start probing the domain until the test is complete.
+ pm.Spawn(domain)
+
+ t.Logf("%s is ready.", names.Service)
+ return nil
+ })
+ }
+
+ // Wait for all of the service creations to complete (possibly in failure),
+ // and signal the done channel.
+ doneCh := make(chan error)
+ go func() {
+ defer close(doneCh)
+ if err := wg.Wait(); err != nil {
+ doneCh <- err
+ }
+ }()
+
+ for {
+ // As services get created, add logic to clean them up.
+ // When all of the creations have finished, then stop all of the active probers
+ // and check our SLIs against our SLOs.
+ // All of this has to finish within the configured timeout.
+ select {
+ case names := <-cleanupCh:
+ t.Logf("Added %v to cleanup routine.", names)
+ test.CleanupOnInterrupt(func() { test.TearDown(clients, names) })
+ defer test.TearDown(clients, names)
+
+ case err := <-doneCh:
+ if err != nil {
+ t.Fatalf("Unexpected error: %v", err)
+ }
+
+ // This ProberManager implementation waits for minProbes before actually stopping.
+ if err := pm.Stop(); err != nil {
+ t.Fatalf("Stop() = %v", err)
+ }
+ // Check each of the local SLOs
+ pm.Foreach(func(domain string, p test.Prober) {
+ if err := test.CheckSLO(localSLO, domain, p); err != nil {
+ t.Errorf("CheckSLO() = %v", err)
+ }
+ })
+ // Check the global SLO
+ if err := test.CheckSLO(globalSLO, "aggregate", pm); err != nil {
+ t.Errorf("CheckSLO() = %v", err)
+ }
+ return
+
+ case <-timeoutCh:
+ // If we don't do this first, then we'll see tons of 503s from the ongoing probes
+ // as we tear down the things they are probing.
+ defer pm.Stop()
+ t.Fatalf("Timed out waiting for %d services to become ready", scale)
+ }
+ }
+}
diff --git a/vendor/github.com/knative/serving/test/e2e_flags.go b/vendor/github.com/knative/serving/test/e2e_flags.go
index 0df3550e9d..d6fa9a6f57 100644
--- a/vendor/github.com/knative/serving/test/e2e_flags.go
+++ b/vendor/github.com/knative/serving/test/e2e_flags.go
@@ -22,7 +22,6 @@ package test
import (
"flag"
"os"
- "path"
"github.com/knative/pkg/test"
"github.com/knative/pkg/test/logging"
@@ -49,9 +48,8 @@ func initializeServingFlags() *ServingEnvironmentFlags {
flag.BoolVar(&f.ResolvableDomain, "resolvabledomain", false,
"Set this flag to true if you have configured the `domainSuffix` on your Route controller to a domain that will resolve to your test cluster.")
- defaultRepo := path.Join(os.Getenv("DOCKER_REPO_OVERRIDE"), "github.com/knative/serving/test/test_images")
- flag.StringVar(&f.DockerRepo, "dockerrepo", defaultRepo,
- "Provide the uri of the docker repo you have uploaded the test image to using `uploadtestimage.sh`. Defaults to $DOCKER_REPO_OVERRIDE")
+ flag.StringVar(&f.DockerRepo, "dockerrepo", os.Getenv("DOCKER_REPO_OVERRIDE"),
+ "Provide the uri of the docker repo you have uploaded the test image to using `upload-test-images.sh`. Defaults to $DOCKER_REPO_OVERRIDE")
flag.StringVar(&f.Tag, "tag", "latest",
"Provide the version tag for the test images.")
diff --git a/vendor/github.com/knative/serving/test/image_constants.go b/vendor/github.com/knative/serving/test/image_constants.go
new file mode 100644
index 0000000000..94e2365003
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/image_constants.go
@@ -0,0 +1,32 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package test
+
+//image_constants.go defines constants that are shared between test-images and conformance tests
+
+//EnvImageServerPort is the port on which the environment test-image server starts.
+// TODO: Modify this port number after https://github.com/knative/serving/issues/2258 is fixed for a stricter verification.
+const EnvImageServerPort = 8080
+
+//EnvImageEnvVarsPath path exposed by environment test-image to fetch environment variables.
+const EnvImageEnvVarsPath = "/envvars"
+
+//EnvImageFilePathInfoPath path exposed by environment test-image to fetch information for filepaths
+const EnvImageFilePathInfoPath = "/filepath"
+
+//EnvImageFilePathQueryParam query param to be used with EnvImageFilePathInfoPath to specify filepath
+const EnvImageFilePathQueryParam = "path"
diff --git a/vendor/github.com/knative/serving/test/kube_checks.go b/vendor/github.com/knative/serving/test/kube_checks.go
deleted file mode 100644
index 62eeb25b1d..0000000000
--- a/vendor/github.com/knative/serving/test/kube_checks.go
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-Copyright 2018 The Knative Authors
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-// kube_checks contains functions which poll Kubernetes objects until
-// they get into the state desired by the caller or time out.
-
-package test
-
-import (
- "context"
- "fmt"
- "time"
-
- pkgTest "github.com/knative/pkg/test"
- "go.opencensus.io/trace"
- corev1 "k8s.io/api/core/v1"
- apiv1beta1 "k8s.io/api/extensions/v1beta1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/util/wait"
-)
-
-// WaitForDeploymentState polls the status of the Deployment called name
-// from client every interval until inState returns `true` indicating it
-// is done, returns an error or timeout. desc will be used to name the metric
-// that is emitted to track how long it took for name to get into the state checked by inState.
-func WaitForDeploymentState(client *pkgTest.KubeClient, name string, inState func(d *apiv1beta1.Deployment) (bool, error), desc string, timeout time.Duration) error {
- d := client.Kube.ExtensionsV1beta1().Deployments(ServingNamespace)
- metricName := fmt.Sprintf("WaitForDeploymentState/%s/%s", name, desc)
- _, span := trace.StartSpan(context.Background(), metricName)
- defer span.End()
-
- return wait.PollImmediate(interval, timeout, func() (bool, error) {
- d, err := d.Get(name, metav1.GetOptions{})
- if err != nil {
- return true, err
- }
- return inState(d)
- })
-}
-
-// WaitForPodListState polls the status of the PodList
-// from client every interval until inState returns `true` indicating it
-// is done, returns an error or timeout. desc will be used to name the metric
-// that is emitted to track how long it took to get into the state checked by inState.
-func WaitForPodListState(client *pkgTest.KubeClient, inState func(p *corev1.PodList) (bool, error), desc string) error {
- p := client.Kube.CoreV1().Pods(ServingNamespace)
- metricName := fmt.Sprintf("WaitForPodListState/%s", desc)
- _, span := trace.StartSpan(context.Background(), metricName)
- defer span.End()
-
- return wait.PollImmediate(interval, timeout, func() (bool, error) {
- p, err := p.List(metav1.ListOptions{})
- if err != nil {
- return true, err
- }
- return inState(p)
- })
-}
diff --git a/vendor/github.com/knative/serving/test/performance/performance.go b/vendor/github.com/knative/serving/test/performance/performance.go
new file mode 100644
index 0000000000..bf28420601
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/performance/performance.go
@@ -0,0 +1,83 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package performance
+
+import (
+ "context"
+ "fmt"
+ "testing"
+ "time"
+
+ pkgTest "github.com/knative/pkg/test"
+ "github.com/knative/pkg/test/logging"
+ "github.com/knative/serving/test"
+ "github.com/knative/test-infra/shared/junit"
+ "github.com/knative/test-infra/shared/prometheus"
+
+ // Mysteriously required to support GCP auth (required by k8s libs). Apparently just importing it is enough. @_@ side effects @_@. https://github.com/kubernetes/client-go/issues/242
+ _ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
+)
+
+const (
+ istioNS = "istio-system"
+ monitoringNS = "knative-monitoring"
+ gateway = "istio-ingressgateway"
+ // Property name used by testgrid.
+ perfLatency = "perf_latency"
+ duration = 1 * time.Minute
+)
+
+// Client is the client used in the performance tests.
+type Client struct {
+ E2EClients *test.Clients
+ PromClient *prometheus.PromProxy
+}
+
+// Setup creates all the clients that we need to interact with in our tests
+func Setup(ctx context.Context, t *testing.T, promReqd bool) (*Client, error) {
+ clients, err := test.NewClients(pkgTest.Flags.Kubeconfig, pkgTest.Flags.Cluster, test.ServingNamespace)
+ if err != nil {
+ return nil, err
+ }
+
+ var p *prometheus.PromProxy
+ if promReqd {
+ t.Log("Creating prometheus proxy client")
+ p = &prometheus.PromProxy{Namespace: monitoringNS}
+ p.Setup(ctx, logging.GetContextLogger(t.Name()))
+ }
+ return &Client{E2EClients: clients, PromClient: p}, nil
+}
+
+// TearDown cleans up resources used
+func TearDown(t *testing.T, client *Client, names test.ResourceNames) {
+ test.TearDown(client.E2EClients, names)
+
+ if client.PromClient != nil {
+ client.PromClient.Teardown(logging.GetContextLogger(t.Name()))
+ }
+}
+
+// CreatePerfTestCase creates a perf test case with the provided name and value
+func CreatePerfTestCase(metricValue float32, metricName, testName string) junit.TestCase {
+ tp := []junit.TestProperty{{Name: perfLatency, Value: fmt.Sprintf("%f", metricValue)}}
+ tc := junit.TestCase{
+ ClassName: testName,
+ Name: fmt.Sprintf("%s/%s", testName, metricName),
+ Properties: junit.TestProperties{Properties: tp}}
+ return tc
+}
diff --git a/vendor/github.com/knative/serving/test/prober.go b/vendor/github.com/knative/serving/test/prober.go
new file mode 100644
index 0000000000..6650b0a083
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/prober.go
@@ -0,0 +1,273 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// route.go provides methods to perform actions on the route resource.
+
+package test
+
+import (
+ "fmt"
+ "net/http"
+ "sync"
+ "testing"
+
+ pkgTest "github.com/knative/pkg/test"
+ "github.com/knative/pkg/test/spoof"
+ "golang.org/x/sync/errgroup"
+)
+
+// Prober is the interface for a prober, which checks the result of the probes when stopped.
+type Prober interface {
+ // SLI returns the "service level indicator" for the prober, which is the observed
+ // success rate of the probes. This will panic if the prober has not been stopped.
+ SLI() (total int64, failures int64)
+
+ // Stop terminates the prober, returning any observed errors.
+ // Implementations may choose to put additional requirements on
+ // the prober, which may cause this to block (e.g. a minimum number
+ // of probes to achieve a population suitable for SLI measurement).
+ Stop() error
+}
+
+type prober struct {
+ // These shouldn't change after creation
+ t *testing.T
+ domain string
+ minimumProbes int64
+
+ // m guards access to these fields
+ m sync.RWMutex
+ requests int64
+ failures int64
+ stopped bool
+
+ // This channel is used to send errors encountered probing the domain.
+ errCh chan error
+ // This channel is simply closed when minimumProbes has been satisfied.
+ minDoneCh chan struct{}
+}
+
+// prober implements Prober
+var _ Prober = (*prober)(nil)
+
+// SLI implements Prober
+func (p *prober) SLI() (int64, int64) {
+ p.m.RLock()
+ defer p.m.RUnlock()
+
+ return p.requests, p.failures
+}
+
+// Stop implements Prober
+func (p *prober) Stop() error {
+ // When we're done stop sending requests.
+ defer func() {
+ p.m.Lock()
+ defer p.m.Unlock()
+ p.stopped = true
+ }()
+
+ // Check for any immediately available errors
+ select {
+ case err := <-p.errCh:
+ return err
+ default:
+ // Don't block if there are no errors immediately available.
+ }
+
+ // If there aren't any immediately available errors, then
+ // wait for either an error or the minimum number of probes
+ // to be satisfied.
+ select {
+ case err := <-p.errCh:
+ return err
+ case <-p.minDoneCh:
+ return nil
+ }
+}
+
+func (p *prober) handleResponse(response *spoof.Response) (bool, error) {
+ p.m.Lock()
+ defer p.m.Unlock()
+
+ if p.stopped {
+ return p.stopped, nil
+ }
+
+ p.requests++
+ if response.StatusCode != http.StatusOK {
+ p.t.Logf("%q got bad status: %d\nHeaders:%v\nBody: %s", p.domain, response.StatusCode,
+ response.Header, string(response.Body))
+ p.failures++
+ }
+ if p.requests == p.minimumProbes {
+ close(p.minDoneCh)
+ }
+
+ // Returning (false, nil) causes SpoofingClient.Poll to retry.
+ return false, nil
+}
+
+// ProberManager is the interface for spawning probers, and checking their results.
+type ProberManager interface {
+ // The ProberManager should expose a way to collectively reason about spawned
+ // probes as a sort of aggregating Prober.
+ Prober
+
+ // Spawn creates a new Prober
+ Spawn(domain string) Prober
+
+ // Foreach iterates over the probers spawned by this ProberManager.
+ Foreach(func(domain string, p Prober))
+}
+
+type manager struct {
+ // Should not change after creation
+ t *testing.T
+ clients *Clients
+ minProbes int64
+
+ m sync.RWMutex
+ probes map[string]Prober
+}
+
+var _ ProberManager = (*manager)(nil)
+
+// Spawn implements ProberManager
+func (m *manager) Spawn(domain string) Prober {
+ m.m.Lock()
+ defer m.m.Unlock()
+
+ if p, ok := m.probes[domain]; ok {
+ return p
+ }
+
+ m.t.Logf("Starting Route prober for route domain %s.", domain)
+ p := &prober{
+ t: m.t,
+ domain: domain,
+ minimumProbes: m.minProbes,
+ errCh: make(chan error, 1),
+ minDoneCh: make(chan struct{}),
+ }
+ m.probes[domain] = p
+ go func() {
+ client, err := pkgTest.NewSpoofingClient(m.clients.KubeClient, m.t.Logf, domain,
+ ServingFlags.ResolvableDomain)
+ if err != nil {
+ m.t.Logf("NewSpoofingClient() = %v", err)
+ p.errCh <- err
+ return
+ }
+
+ // RequestTimeout is set to 0 to make the polling infinite.
+ client.RequestTimeout = 0
+ req, err := http.NewRequest(http.MethodGet, fmt.Sprintf("http://%s", domain), nil)
+ if err != nil {
+ m.t.Logf("NewRequest() = %v", err)
+ p.errCh <- err
+ return
+ }
+
+ // We keep polling the domain and accumulate success rates
+ // to ultimately establish the SLI and compare to the SLO.
+ _, err = client.Poll(req, p.handleResponse)
+ if err != nil {
+ m.t.Logf("Poll() = %v", err)
+ p.errCh <- err
+ return
+ }
+ }()
+ return p
+}
+
+// Stop implements ProberManager
+func (m *manager) Stop() error {
+ m.m.Lock()
+ defer m.m.Unlock()
+
+ m.t.Log("Stopping all probers")
+
+ errgrp := &errgroup.Group{}
+ for _, prober := range m.probes {
+ errgrp.Go(prober.Stop)
+ }
+ return errgrp.Wait()
+}
+
+// SLI implements Prober
+func (m *manager) SLI() (total int64, failures int64) {
+ m.m.RLock()
+ defer m.m.RUnlock()
+ for _, prober := range m.probes {
+ pt, pf := prober.SLI()
+ total += pt
+ failures += pf
+ }
+ return
+}
+
+// Foreach implements ProberManager
+func (m *manager) Foreach(f func(domain string, p Prober)) {
+ m.m.RLock()
+ defer m.m.RUnlock()
+
+ for domain, prober := range m.probes {
+ f(domain, prober)
+ }
+}
+
+func NewProberManager(t *testing.T, clients *Clients, minProbes int64) ProberManager {
+ return &manager{
+ t: t,
+ clients: clients,
+ minProbes: minProbes,
+ probes: make(map[string]Prober),
+ }
+}
+
+// RunRouteProber starts a single Prober of the given domain.
+func RunRouteProber(t *testing.T, clients *Clients, domain string) Prober {
+ // Default to 10 probes
+ pm := NewProberManager(t, clients, 10)
+ pm.Spawn(domain)
+ return pm
+}
+
+// AssertProberDefault is a helper for stopping the Prober and checking its SLI
+// against the default SLO, which requires perfect responses.
+// This takes `testing.T` so that it may be used in `defer`.
+func AssertProberDefault(t *testing.T, p Prober) {
+ t.Helper()
+ if err := p.Stop(); err != nil {
+ t.Errorf("Stop() = %v", err)
+ }
+ // Default to 100% correct (typically used in conjunction with the low probe count above)
+ if err := CheckSLO(1.0, t.Name(), p); err != nil {
+ t.Errorf("CheckSLO() = %v", err)
+ }
+}
+
+// CheckSLO compares the SLI of the given prober against the SLO, erroring if too low.
+func CheckSLO(slo float64, name string, p Prober) error {
+ total, failures := p.SLI()
+
+ successRate := float64(total-failures) / float64(total)
+ if successRate < slo {
+ return fmt.Errorf("SLI for %q = %f, wanted >= %f", name, successRate, slo)
+ }
+ return nil
+}
diff --git a/vendor/github.com/knative/serving/test/route.go b/vendor/github.com/knative/serving/test/route.go
index 15cfb0aad5..de67b6dc5f 100644
--- a/vendor/github.com/knative/serving/test/route.go
+++ b/vendor/github.com/knative/serving/test/route.go
@@ -19,113 +19,43 @@ limitations under the License.
package test
import (
- "fmt"
- "net/http"
- "time"
+ "testing"
- pkgTest "github.com/knative/pkg/test"
- "github.com/knative/pkg/test/logging"
- "github.com/knative/pkg/test/spoof"
"github.com/knative/serving/pkg/apis/serving/v1alpha1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
+
+ rtesting "github.com/knative/serving/pkg/reconciler/v1alpha1/testing"
)
// CreateRoute creates a route in the given namespace using the route name in names
-func CreateRoute(logger *logging.BaseLogger, clients *Clients, names ResourceNames) error {
- route := Route(ServingNamespace, names)
- LogResourceObject(logger, ResourceObjects{Route: route})
- _, err := clients.ServingClient.Routes.Create(route)
- return err
+func CreateRoute(t *testing.T, clients *Clients, names ResourceNames, fopt ...rtesting.RouteOption) (*v1alpha1.Route, error) {
+ route := Route(ServingNamespace, names, fopt...)
+ LogResourceObject(t, ResourceObjects{Route: route})
+ return clients.ServingClient.Routes.Create(route)
}
// CreateBlueGreenRoute creates a route in the given namespace using the route name in names.
// Traffic is evenly split between the two routes specified by blue and green.
-func CreateBlueGreenRoute(logger *logging.BaseLogger, clients *Clients, names, blue, green ResourceNames) error {
+func CreateBlueGreenRoute(t *testing.T, clients *Clients, names, blue, green ResourceNames) error {
route := BlueGreenRoute(ServingNamespace, names, blue, green)
- LogResourceObject(logger, ResourceObjects{Route: route})
+ LogResourceObject(t, ResourceObjects{Route: route})
_, err := clients.ServingClient.Routes.Create(route)
return err
}
// UpdateRoute updates a route in the given namespace using the route name in names
-func UpdateBlueGreenRoute(logger *logging.BaseLogger, clients *Clients, names, blue, green ResourceNames) (*v1alpha1.Route, error) {
+func UpdateBlueGreenRoute(t *testing.T, clients *Clients, names, blue, green ResourceNames) (*v1alpha1.Route, error) {
route, err := clients.ServingClient.Routes.Get(names.Route, metav1.GetOptions{})
if err != nil {
return nil, err
}
newRoute := BlueGreenRoute(ServingNamespace, names, blue, green)
- newRoute.ObjectMeta.ResourceVersion = route.ObjectMeta.ResourceVersion
- LogResourceObject(logger, ResourceObjects{Route: newRoute})
+ newRoute.ObjectMeta = route.ObjectMeta
+ LogResourceObject(t, ResourceObjects{Route: newRoute})
patchBytes, err := createPatch(route, newRoute)
if err != nil {
return nil, err
}
return clients.ServingClient.Routes.Patch(names.Route, types.JSONPatchType, patchBytes, "")
}
-
-// ProbeDomain sends requests to a domain until we get a successful
-// response. This ensures the domain is routable before we send it a
-// bunch of traffic.
-func ProbeDomain(logger *logging.BaseLogger, clients *Clients, domain string) error {
- client, err := pkgTest.NewSpoofingClient(clients.KubeClient, logger, domain, ServingFlags.ResolvableDomain)
- if err != nil {
- return err
- }
- req, err := http.NewRequest(http.MethodGet, fmt.Sprintf("http://%s", domain), nil)
- if err != nil {
- return err
- }
- // TODO(tcnghia): Replace this probing with Status check when we have them.
- _, err = client.Poll(req, pkgTest.Retrying(pkgTest.MatchesAny, http.StatusNotFound, http.StatusServiceUnavailable))
- return err
-}
-
-// RunRouteProber creates and runs a prober as background goroutine to keep polling Route.
-// It stops when getting an error response from Route.
-func RunRouteProber(logger *logging.BaseLogger, clients *Clients, domain string) <-chan error {
- logger.Infof("Starting Route prober for route domain %s.", domain)
- errorChan := make(chan error, 1)
- go func() {
- client, err := pkgTest.NewSpoofingClient(clients.KubeClient, logger, domain, ServingFlags.ResolvableDomain)
- if err != nil {
- errorChan <- err
- close(errorChan)
- return
- }
- // ResquestTimeout is set to 0 to make the polling infinite.
- client.RequestTimeout = 0 * time.Minute
- req, err := http.NewRequest(http.MethodGet, fmt.Sprintf("http://%s", domain), nil)
- if err != nil {
- errorChan <- err
- close(errorChan)
- return
- }
-
- // We keep polling Route if the response status is OK.
- // If the response status is not OK, we stop the prober and
- // generate error based on the response.
- _, err = client.Poll(req, pkgTest.Retrying(disallowsAny, http.StatusOK))
- if err != nil {
- errorChan <- err
- close(errorChan)
- return
- }
- }()
- return errorChan
-}
-
-// GetRouteProberError gets the error of route prober.
-func GetRouteProberError(errorChan <-chan error, logger *logging.BaseLogger) error {
- select {
- case err := <-errorChan:
- return err
- default:
- logger.Info("No error happens in the Route prober.")
- return nil
- }
-}
-
-func disallowsAny(response *spoof.Response) (bool, error) {
- return true, fmt.Errorf("Get unexpected response %v", response)
-}
diff --git a/vendor/github.com/knative/serving/test/service.go b/vendor/github.com/knative/serving/test/service.go
index 4a810343df..17bbd38fe5 100644
--- a/vendor/github.com/knative/serving/test/service.go
+++ b/vendor/github.com/knative/serving/test/service.go
@@ -20,13 +20,18 @@ package test
import (
"fmt"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "testing"
+
"github.com/knative/pkg/apis/duck"
- "github.com/knative/pkg/test/logging"
"github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ serviceresourcenames "github.com/knative/serving/pkg/reconciler/v1alpha1/service/resources/names"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
+
+ rtesting "github.com/knative/serving/pkg/reconciler/v1alpha1/testing"
)
+// TODO(dangerd): Move function to duck.CreateBytePatch
func createPatch(cur, desired interface{}) ([]byte, error) {
patch, err := duck.CreatePatch(cur, desired)
if err != nil {
@@ -35,19 +40,157 @@ func createPatch(cur, desired interface{}) ([]byte, error) {
return patch.MarshalJSON()
}
-// CreateLatestService creates a service in namespace with the name names.Service
-// that uses the image specified by imagePath
-func CreateLatestService(logger *logging.BaseLogger, clients *Clients, names ResourceNames, imagePath string) (*v1alpha1.Service, error) {
- service := LatestService(ServingNamespace, names, imagePath)
- LogResourceObject(logger, ResourceObjects{Service: service})
+func validateCreatedServiceStatus(clients *Clients, names *ResourceNames) error {
+ return CheckServiceState(clients.ServingClient, names.Service, func(s *v1alpha1.Service) (bool, error) {
+ if s.Status.Domain == "" {
+ return false, fmt.Errorf("domain is not present in Service status: %v", s)
+ }
+ names.Domain = s.Status.Domain
+ if s.Status.LatestCreatedRevisionName == "" {
+ return false, fmt.Errorf("lastCreatedRevision is not present in Service status: %v", s)
+ }
+ names.Revision = s.Status.LatestCreatedRevisionName
+ if s.Status.DeprecatedDomainInternal == "" {
+ return false, fmt.Errorf("domainInternal is not present in Service status: %v", s)
+ }
+ if s.Status.LatestReadyRevisionName == "" {
+ return false, fmt.Errorf("lastReadyRevision is not present in Service status: %v", s)
+ }
+ if s.Status.LatestReadyRevisionName == "" {
+ return false, fmt.Errorf("lastReadyRevision is not present in Service status: %v", s)
+ }
+ if s.Status.ObservedGeneration != 1 {
+ return false, fmt.Errorf("observedGeneration is not 1 in Service status: %v", s)
+ }
+ return true, nil
+ })
+}
+
+// GetResourceObjects obtains the services resources from the k8s API server.
+func GetResourceObjects(clients *Clients, names ResourceNames) (*ResourceObjects, error) {
+ routeObject, err := clients.ServingClient.Routes.Get(names.Route, metav1.GetOptions{})
+ if err != nil {
+ return nil, err
+ }
+
+ serviceObject, err := clients.ServingClient.Services.Get(names.Service, metav1.GetOptions{})
+ if err != nil {
+ return nil, err
+ }
+
+ configObject, err := clients.ServingClient.Configs.Get(names.Config, metav1.GetOptions{})
+ if err != nil {
+ return nil, err
+ }
+
+ revisionObject, err := clients.ServingClient.Revisions.Get(names.Revision, metav1.GetOptions{})
+ if err != nil {
+ return nil, err
+ }
+
+ return &ResourceObjects{
+ Route: routeObject,
+ Service: serviceObject,
+ Config: configObject,
+ Revision: revisionObject,
+ }, nil
+}
+
+// CreateReleaseServiceWithLatest creates a `Release` service using `@latest`
+// as the only revision.
+// This function expects `Service` and `Image` name passed in through `names`.
+// Names is updated with the `Route` and `Configuration` created by the Service
+// and `ResourceObjects` is returned with the `Service`, `Route`, and `Configuration` objects.
+// Returns an error if the service does not come up correctly.
+func CreateReleaseServiceWithLatest(
+ t *testing.T, clients *Clients,
+ names *ResourceNames, options *Options) (*ResourceObjects, error) {
+ if names.Service == "" || names.Image == "" {
+ return nil, fmt.Errorf("expected non-empty Service and Image name; got Service = %s, Image = %s", names.Service, names.Image)
+ }
+
+ t.Log("Creating a new Service as Release with @latest.")
+ svc, err := CreateReleaseService(t, clients, *names, options)
+ if err != nil {
+ return nil, err
+ }
+
+ // Populate Route and Configuration Objects with name
+ names.Route = serviceresourcenames.Route(svc)
+ names.Config = serviceresourcenames.Configuration(svc)
+
+ t.Log("Waiting for Service to transition to Ready.")
+ if err := WaitForServiceState(clients.ServingClient, names.Service, IsServiceReady, "ServiceIsReady"); err != nil {
+ return nil, err
+ }
+
+ t.Log("Checking to ensure Service Status is populated for Ready service.")
+ err = validateCreatedServiceStatus(clients, names)
+ if err != nil {
+ return nil, err
+ }
+
+ t.Log("Getting latest objects Created by Service.")
+ return GetResourceObjects(clients, *names)
+}
+
+// CreateRunLatestServiceReady creates a new RunLatest Service in state 'Ready'. This function expects Service and Image name passed in through 'names'.
+// Names is updated with the Route and Configuration created by the Service and ResourceObjects is returned with the Service, Route, and Configuration objects.
+// Returns error if the service does not come up correctly.
+func CreateRunLatestServiceReady(t *testing.T, clients *Clients, names *ResourceNames, options *Options, fopt ...rtesting.ServiceOption) (*ResourceObjects, error) {
+ if names.Service == "" || names.Image == "" {
+ return nil, fmt.Errorf("expected non-empty Service and Image name; got Service=%v, Image=%v", names.Service, names.Image)
+ }
+
+ t.Logf("Creating a new Service %s as RunLatest.", names.Service)
+ svc, err := CreateLatestService(t, clients, *names, options, fopt...)
+ if err != nil {
+ return nil, err
+ }
+
+ // Populate Route and Configuration Objects with name
+ names.Route = serviceresourcenames.Route(svc)
+ names.Config = serviceresourcenames.Configuration(svc)
+
+ t.Log("Waiting for Service to transition to Ready.")
+ if err := WaitForServiceState(clients.ServingClient, names.Service, IsServiceReady, "ServiceIsReady"); err != nil {
+ return nil, err
+ }
+
+ t.Log("Checking to ensure Service Status is populated for Ready service.")
+ err = validateCreatedServiceStatus(clients, names)
+ if err != nil {
+ return nil, err
+ }
+
+ t.Log("Getting latest objects Created by Service.")
+ resources, err := GetResourceObjects(clients, *names)
+ if err == nil {
+ t.Logf("Successfully created Service %s.", names.Domain)
+ }
+ return resources, err
+}
+
+// CreateReleaseService creates a service in namespace with the name names.Service and names.Image,
+// configured with `@latest` revision.
+func CreateReleaseService(t *testing.T, clients *Clients, names ResourceNames, options *Options, fopt ...rtesting.ServiceOption) (*v1alpha1.Service, error) {
+ service := ReleaseLatestService(ServingNamespace, names, options, fopt...)
+ LogResourceObject(t, ResourceObjects{Service: service})
+ return clients.ServingClient.Services.Create(service)
+}
+
+// CreateLatestService creates a service in namespace with the name names.Service and names.Image
+func CreateLatestService(t *testing.T, clients *Clients, names ResourceNames, options *Options, fopt ...rtesting.ServiceOption) (*v1alpha1.Service, error) {
+ service := LatestService(ServingNamespace, names, options, fopt...)
+ LogResourceObject(t, ResourceObjects{Service: service})
svc, err := clients.ServingClient.Services.Create(service)
return svc, err
}
-// UpdateReleaseService updates an existing service in namespace with the name names.Service
-func UpdateReleaseService(logger *logging.BaseLogger, clients *Clients, svc *v1alpha1.Service, revisions []string, rolloutPercent int) (*v1alpha1.Service, error) {
+// PatchReleaseService patches an existing service in namespace with the name names.Service
+func PatchReleaseService(t *testing.T, clients *Clients, svc *v1alpha1.Service, revisions []string, rolloutPercent int) (*v1alpha1.Service, error) {
newSvc := ReleaseService(svc, revisions, rolloutPercent)
- LogResourceObject(logger, ResourceObjects{Service: newSvc})
+ LogResourceObject(t, ResourceObjects{Service: newSvc})
patchBytes, err := createPatch(svc, newSvc)
if err != nil {
return nil, err
@@ -55,10 +198,10 @@ func UpdateReleaseService(logger *logging.BaseLogger, clients *Clients, svc *v1a
return clients.ServingClient.Services.Patch(svc.ObjectMeta.Name, types.JSONPatchType, patchBytes, "")
}
-// UpdateManualService updates an existing service in namespace with the name names.Service
-func UpdateManualService(logger *logging.BaseLogger, clients *Clients, svc *v1alpha1.Service) (*v1alpha1.Service, error) {
+// PatchManualService patches an existing service in namespace with the name names.Service
+func PatchManualService(t *testing.T, clients *Clients, svc *v1alpha1.Service) (*v1alpha1.Service, error) {
newSvc := ManualService(svc)
- LogResourceObject(logger, ResourceObjects{Service: newSvc})
+ LogResourceObject(t, ResourceObjects{Service: newSvc})
patchBytes, err := createPatch(svc, newSvc)
if err != nil {
return nil, err
@@ -66,17 +209,19 @@ func UpdateManualService(logger *logging.BaseLogger, clients *Clients, svc *v1al
return clients.ServingClient.Services.Patch(svc.ObjectMeta.Name, types.JSONPatchType, patchBytes, "")
}
-func UpdateServiceImage(clients *Clients, svc *v1alpha1.Service, imagePath string) (*v1alpha1.Service, error) {
+// PatchServiceImage patches the existing service passed in with a new imagePath. Returns the latest service object
+func PatchServiceImage(t *testing.T, clients *Clients, svc *v1alpha1.Service, imagePath string) (*v1alpha1.Service, error) {
newSvc := svc.DeepCopy()
if svc.Spec.RunLatest != nil {
newSvc.Spec.RunLatest.Configuration.RevisionTemplate.Spec.Container.Image = imagePath
} else if svc.Spec.Release != nil {
newSvc.Spec.Release.Configuration.RevisionTemplate.Spec.Container.Image = imagePath
- } else if svc.Spec.Pinned != nil {
- newSvc.Spec.Pinned.Configuration.RevisionTemplate.Spec.Container.Image = imagePath
+ } else if svc.Spec.DeprecatedPinned != nil {
+ newSvc.Spec.DeprecatedPinned.Configuration.RevisionTemplate.Spec.Container.Image = imagePath
} else {
return nil, fmt.Errorf("UpdateImageService(%v): unable to determine service type", svc)
}
+ LogResourceObject(t, ResourceObjects{Service: newSvc})
patchBytes, err := createPatch(svc, newSvc)
if err != nil {
return nil, err
@@ -84,22 +229,54 @@ func UpdateServiceImage(clients *Clients, svc *v1alpha1.Service, imagePath strin
return clients.ServingClient.Services.Patch(svc.ObjectMeta.Name, types.JSONPatchType, patchBytes, "")
}
-// Updates an existing service by adding metadata to the service's RevisionTemplateSpec.
-func UpdateServiceRevisionTemplateMetadata(logger *logging.BaseLogger, clients *Clients, svc *v1alpha1.Service, metadata metav1.ObjectMeta) (*v1alpha1.Service, error) {
+// PatchService creates and applies a patch from the diff between curSvc and desiredSvc. Returns the latest service object.
+func PatchService(t *testing.T, clients *Clients, curSvc *v1alpha1.Service, desiredSvc *v1alpha1.Service) (*v1alpha1.Service, error) {
+ LogResourceObject(t, ResourceObjects{Service: desiredSvc})
+ patchBytes, err := createPatch(curSvc, desiredSvc)
+ if err != nil {
+ return nil, err
+ }
+ return clients.ServingClient.Services.Patch(curSvc.ObjectMeta.Name, types.JSONPatchType, patchBytes, "")
+}
+
+// PatchServiceRevisionTemplateMetadata patches an existing service by adding metadata to the service's RevisionTemplateSpec.
+func PatchServiceRevisionTemplateMetadata(t *testing.T, clients *Clients, svc *v1alpha1.Service, metadata metav1.ObjectMeta) (*v1alpha1.Service, error) {
newSvc := svc.DeepCopy()
if svc.Spec.RunLatest != nil {
newSvc.Spec.RunLatest.Configuration.RevisionTemplate.ObjectMeta = metadata
} else if svc.Spec.Release != nil {
newSvc.Spec.Release.Configuration.RevisionTemplate.ObjectMeta = metadata
- } else if svc.Spec.Pinned != nil {
- newSvc.Spec.Pinned.Configuration.RevisionTemplate.ObjectMeta = metadata
+ } else if svc.Spec.DeprecatedPinned != nil {
+ newSvc.Spec.DeprecatedPinned.Configuration.RevisionTemplate.ObjectMeta = metadata
} else {
return nil, fmt.Errorf("UpdateServiceRevisionTemplateMetadata(%v): unable to determine service type", svc)
}
- LogResourceObject(logger, ResourceObjects{Service: newSvc})
+ LogResourceObject(t, ResourceObjects{Service: newSvc})
patchBytes, err := createPatch(svc, newSvc)
if err != nil {
return nil, err
}
return clients.ServingClient.Services.Patch(svc.ObjectMeta.Name, types.JSONPatchType, patchBytes, "")
}
+
+// WaitForServiceLatestRevision takes a revision in through names and compares it to the current state of LatestCreatedRevisionName in Service.
+// Once an update is detected in the LatestCreatedRevisionName, the function waits for the created revision to be set in LatestReadyRevisionName
+// before returning the name of the revision.
+func WaitForServiceLatestRevision(clients *Clients, names ResourceNames) (string, error) {
+ var revisionName string
+ err := WaitForServiceState(clients.ServingClient, names.Service, func(s *v1alpha1.Service) (bool, error) {
+ if s.Status.LatestCreatedRevisionName != names.Revision {
+ revisionName = s.Status.LatestCreatedRevisionName
+ return true, nil
+ }
+ return false, nil
+ }, "ServiceUpdatedWithRevision")
+ if err != nil {
+ return "", err
+ }
+ err = WaitForServiceState(clients.ServingClient, names.Service, func(s *v1alpha1.Service) (bool, error) {
+ return (s.Status.LatestReadyRevisionName == revisionName), nil
+ }, "ServiceReadyWithRevision")
+
+ return revisionName, err
+}
diff --git a/vendor/github.com/knative/serving/test/states.go b/vendor/github.com/knative/serving/test/states.go
index b8540a4fa0..0a83bdfa8c 100644
--- a/vendor/github.com/knative/serving/test/states.go
+++ b/vendor/github.com/knative/serving/test/states.go
@@ -82,19 +82,19 @@ func TODO_ServiceTrafficToRevisionWithInClusterDNS(s *v1alpha1.Service) (bool, e
// ready to serve traffic. It will return false if the status indicates a state other than deploying
// or being ready. It will also return false if the type of the condition is unexpected.
func IsRevisionReady(r *v1alpha1.Revision) (bool, error) {
- return r.Status.IsReady(), nil
+ return r.Generation == r.Status.ObservedGeneration && r.Status.IsReady(), nil
}
// IsServiceReady will check the status conditions of the service and return true if the service is
// ready. This means that its configurations and routes have all reported ready.
func IsServiceReady(s *v1alpha1.Service) (bool, error) {
- return s.Status.IsReady(), nil
+ return s.Generation == s.Status.ObservedGeneration && s.Status.IsReady(), nil
}
// IsRouteReady will check the status conditions of the route and return true if the route is
// ready.
func IsRouteReady(r *v1alpha1.Route) (bool, error) {
- return r.Status.IsReady(), nil
+ return r.Generation == r.Status.ObservedGeneration && r.Status.IsReady(), nil
}
// ConfigurationHasCreatedRevision returns whether the Configuration has created a Revision.
@@ -126,12 +126,12 @@ func IsConfigRevisionCreationFailed(c *v1alpha1.Configuration) (bool, error) {
// set to the expected value.
func IsRevisionAtExpectedGeneration(expectedGeneration string) func(r *v1alpha1.Revision) (bool, error) {
return func(r *v1alpha1.Revision) (bool, error) {
- if a, ok := r.Annotations[serving.ConfigurationGenerationAnnotationKey]; ok {
+ if a, ok := r.Labels[serving.ConfigurationGenerationLabelKey]; ok {
if a != expectedGeneration {
- return true, fmt.Errorf("Expected Revision %s to be annotated with generation %s but was %s instead", r.Name, expectedGeneration, a)
+ return true, fmt.Errorf("Expected Revision %s to be labeled with generation %s but was %s instead", r.Name, expectedGeneration, a)
}
return true, nil
}
- return true, fmt.Errorf("Expected Revision %s to be annotated with generation %s but there was no annotation", r.Name, expectedGeneration)
+ return true, fmt.Errorf("Expected Revision %s to be labeled with generation %s but there was no label", r.Name, expectedGeneration)
}
}
diff --git a/vendor/github.com/knative/serving/test/test_images/autoscale/autoscale.go b/vendor/github.com/knative/serving/test/test_images/autoscale/autoscale.go
index 2de1770d87..8e1732186e 100644
--- a/vendor/github.com/knative/serving/test/test_images/autoscale/autoscale.go
+++ b/vendor/github.com/knative/serving/test/test_images/autoscale/autoscale.go
@@ -23,6 +23,8 @@ import (
"net/http"
"sync"
"time"
+
+ "github.com/knative/serving/test"
)
// Algorithm from https://stackoverflow.com/a/21854246
@@ -99,6 +101,5 @@ func handler(w http.ResponseWriter, r *http.Request) {
}
func main() {
- http.HandleFunc("/", handler)
- http.ListenAndServe(":8080", nil)
+ test.ListenAndServeGracefully(":8080", handler)
}
diff --git a/vendor/github.com/knative/serving/test/test_images/bloatingcow/bloatingcow.go b/vendor/github.com/knative/serving/test/test_images/bloatingcow/bloatingcow.go
new file mode 100644
index 0000000000..7dab201f63
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/test_images/bloatingcow/bloatingcow.go
@@ -0,0 +1,61 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package main
+
+import (
+ "flag"
+ "fmt"
+ "log"
+ "net/http"
+ "strconv"
+)
+
+func bloat(mb int) {
+ if mb == 0 {
+ return
+ }
+ fmt.Printf("Bloat %v Mb of memory.\n", mb)
+
+ b := make([]byte, mb*1024*1024)
+ for i := 0; i < len(b); i++ {
+ b[i] = 1
+ }
+}
+
+func handler(w http.ResponseWriter, r *http.Request) {
+ memoryInMB := r.URL.Query().Get("memory_in_mb")
+ if memoryInMB != "" {
+ mb, err := strconv.Atoi(memoryInMB)
+ if err != nil {
+ fmt.Fprintf(w, "cannot convert %s to int", memoryInMB)
+ w.WriteHeader(http.StatusBadRequest)
+ return
+ }
+ bloat(mb)
+ }
+
+ log.Print("Moo!")
+ fmt.Fprintln(w, "Moo!")
+}
+
+func main() {
+ flag.Parse()
+ log.Print("Bloating cow app started.")
+
+ http.HandleFunc("/", handler)
+ http.ListenAndServe(":8080", nil)
+}
diff --git a/vendor/github.com/knative/serving/test/test_images/environment/environment.go b/vendor/github.com/knative/serving/test/test_images/environment/environment.go
new file mode 100644
index 0000000000..d36f6a59ec
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/test_images/environment/environment.go
@@ -0,0 +1,78 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package main
+
+import (
+ "encoding/json"
+ "flag"
+ "fmt"
+ "log"
+ "net/http"
+ "os"
+ "strings"
+
+ "github.com/knative/serving/test"
+ "github.com/knative/serving/test/conformance"
+)
+
+func envvarsHandler(w http.ResponseWriter, r *http.Request) {
+ envvars := make(map[string]string)
+ for _, pair := range os.Environ() {
+ tokens := strings.Split(pair, "=")
+ envvars[tokens[0]] = tokens[1]
+ }
+
+ if resp, err := json.Marshal(envvars); err != nil {
+ fmt.Fprintf(w, fmt.Sprintf("error building response : %v", err))
+ } else {
+ fmt.Fprintf(w, string(resp))
+ }
+}
+
+func filepathInfoHandler(w http.ResponseWriter, r *http.Request) {
+ filePath := r.URL.Query().Get(test.EnvImageFilePathQueryParam)
+ if len(filePath) == 0 {
+ fmt.Fprintf(w, "no filepath found in queryparam")
+ return
+ }
+
+ info, err := os.Stat(filePath)
+ if err != nil {
+ fmt.Fprintf(w, fmt.Sprintf("Error encountered retrieving info for path '%s': %v", filePath, err))
+ return
+ }
+
+ resp, err := json.Marshal(conformance.FilePathInfo{
+ FilePath: filePath,
+ IsDirectory: info.IsDir(),
+ PermString: info.Mode().Perm().String(),
+ })
+ if err != nil {
+ fmt.Fprintf(w, fmt.Sprintf("error building response : %v", err))
+ } else {
+ fmt.Fprintf(w, string(resp))
+ }
+}
+
+func main() {
+ flag.Parse()
+ log.Print("Environment test app started.")
+ test.ListenAndServeGracefullyWithPattern(fmt.Sprintf(":%d", test.EnvImageServerPort), map[string]func(w http.ResponseWriter, r *http.Request){
+ test.EnvImageEnvVarsPath: envvarsHandler,
+ test.EnvImageFilePathInfoPath: filepathInfoHandler,
+ })
+}
diff --git a/vendor/github.com/knative/serving/test/test_images/failing/failing.go b/vendor/github.com/knative/serving/test/test_images/failing/failing.go
new file mode 100644
index 0000000000..6d35ef6c5c
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/test_images/failing/failing.go
@@ -0,0 +1,34 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package main
+
+import (
+ "log"
+ "os"
+ "time"
+)
+
+func main() {
+ log.Println("Started...")
+
+ // Sleep for 10 seconds to force a race condition, where this
+ // container becomes ready if no readinessProbe is set.
+ time.Sleep(10 * time.Second)
+
+ log.Println("Crashed...")
+ os.Exit(5)
+}
diff --git a/vendor/github.com/knative/serving/test/test_images/grpc-ping/main.go b/vendor/github.com/knative/serving/test/test_images/grpc-ping/main.go
new file mode 100644
index 0000000000..4fb77d90e7
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/test_images/grpc-ping/main.go
@@ -0,0 +1,88 @@
+/*
+Copyright 2019 The Knative Authors
+ Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package main
+
+import (
+ "context"
+ "io"
+ "log"
+ "net"
+
+ "google.golang.org/grpc"
+
+ ping "github.com/knative/serving/test/test_images/grpc-ping/proto"
+)
+
+const port = ":8080"
+
+func pong(req *ping.Request) *ping.Response {
+ return &ping.Response{Msg: req.Msg}
+}
+
+type server struct{}
+
+func (s *server) Ping(ctx context.Context, req *ping.Request) (*ping.Response, error) {
+ log.Printf("Received ping: %v", req.Msg)
+
+ resp := pong(req)
+
+ log.Printf("Sending pong: %v", resp.Msg)
+ return resp, nil
+}
+
+func (s *server) PingStream(stream ping.PingService_PingStreamServer) error {
+ log.Printf("Starting stream")
+ for {
+ req, err := stream.Recv()
+
+ if err == io.EOF {
+ log.Printf("Ending stream")
+ return nil
+ }
+
+ if err != nil {
+ log.Printf("Failed to receive ping: %v", err)
+ return err
+ }
+
+ log.Printf("Received ping: %v", req.Msg)
+
+ resp := pong(req)
+
+ log.Printf("Sending pong: %v", resp.Msg)
+ err = stream.Send(resp)
+
+ if err != nil {
+ log.Printf("Failed to send pong: %v", err)
+ return err
+ }
+ }
+}
+
+func main() {
+ log.Printf("Starting gRPC server on %s", port)
+
+ lis, err := net.Listen("tcp", port)
+ if err != nil {
+ log.Fatalf("Failed to listen: %v", err)
+ }
+
+ s := grpc.NewServer()
+
+ ping.RegisterPingServiceServer(s, &server{})
+
+ if err := s.Serve(lis); err != nil {
+ log.Fatalf("Failed to serve: %v", err)
+ }
+}
diff --git a/vendor/github.com/knative/serving/test/test_images/grpc-ping/proto/ping.pb.go b/vendor/github.com/knative/serving/test/test_images/grpc-ping/proto/ping.pb.go
new file mode 100644
index 0000000000..4c1c038043
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/test_images/grpc-ping/proto/ping.pb.go
@@ -0,0 +1,208 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: ping.proto
+
+package ping
+
+import proto "github.com/golang/protobuf/proto"
+import fmt "fmt"
+import math "math"
+
+import (
+ context "golang.org/x/net/context"
+ grpc "google.golang.org/grpc"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+type Request struct {
+ Msg string `protobuf:"bytes,1,opt,name=msg" json:"msg,omitempty"`
+}
+
+func (m *Request) Reset() { *m = Request{} }
+func (m *Request) String() string { return proto.CompactTextString(m) }
+func (*Request) ProtoMessage() {}
+func (*Request) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }
+
+func (m *Request) GetMsg() string {
+ if m != nil {
+ return m.Msg
+ }
+ return ""
+}
+
+type Response struct {
+ Msg string `protobuf:"bytes,1,opt,name=msg" json:"msg,omitempty"`
+}
+
+func (m *Response) Reset() { *m = Response{} }
+func (m *Response) String() string { return proto.CompactTextString(m) }
+func (*Response) ProtoMessage() {}
+func (*Response) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} }
+
+func (m *Response) GetMsg() string {
+ if m != nil {
+ return m.Msg
+ }
+ return ""
+}
+
+func init() {
+ proto.RegisterType((*Request)(nil), "ping.Request")
+ proto.RegisterType((*Response)(nil), "ping.Response")
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// Client API for PingService service
+
+type PingServiceClient interface {
+ Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error)
+ PingStream(ctx context.Context, opts ...grpc.CallOption) (PingService_PingStreamClient, error)
+}
+
+type pingServiceClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewPingServiceClient(cc *grpc.ClientConn) PingServiceClient {
+ return &pingServiceClient{cc}
+}
+
+func (c *pingServiceClient) Ping(ctx context.Context, in *Request, opts ...grpc.CallOption) (*Response, error) {
+ out := new(Response)
+ err := grpc.Invoke(ctx, "/ping.PingService/Ping", in, out, c.cc, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *pingServiceClient) PingStream(ctx context.Context, opts ...grpc.CallOption) (PingService_PingStreamClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_PingService_serviceDesc.Streams[0], c.cc, "/ping.PingService/PingStream", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &pingServicePingStreamClient{stream}
+ return x, nil
+}
+
+type PingService_PingStreamClient interface {
+ Send(*Request) error
+ Recv() (*Response, error)
+ grpc.ClientStream
+}
+
+type pingServicePingStreamClient struct {
+ grpc.ClientStream
+}
+
+func (x *pingServicePingStreamClient) Send(m *Request) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *pingServicePingStreamClient) Recv() (*Response, error) {
+ m := new(Response)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// Server API for PingService service
+
+type PingServiceServer interface {
+ Ping(context.Context, *Request) (*Response, error)
+ PingStream(PingService_PingStreamServer) error
+}
+
+func RegisterPingServiceServer(s *grpc.Server, srv PingServiceServer) {
+ s.RegisterService(&_PingService_serviceDesc, srv)
+}
+
+func _PingService_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(Request)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(PingServiceServer).Ping(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/ping.PingService/Ping",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(PingServiceServer).Ping(ctx, req.(*Request))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _PingService_PingStream_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(PingServiceServer).PingStream(&pingServicePingStreamServer{stream})
+}
+
+type PingService_PingStreamServer interface {
+ Send(*Response) error
+ Recv() (*Request, error)
+ grpc.ServerStream
+}
+
+type pingServicePingStreamServer struct {
+ grpc.ServerStream
+}
+
+func (x *pingServicePingStreamServer) Send(m *Response) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *pingServicePingStreamServer) Recv() (*Request, error) {
+ m := new(Request)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+var _PingService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "ping.PingService",
+ HandlerType: (*PingServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "Ping",
+ Handler: _PingService_Ping_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "PingStream",
+ Handler: _PingService_PingStream_Handler,
+ ServerStreams: true,
+ ClientStreams: true,
+ },
+ },
+ Metadata: "ping.proto",
+}
+
+func init() { proto.RegisterFile("ping.proto", fileDescriptor1) }
+
+var fileDescriptor1 = []byte{
+ // 139 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2a, 0xc8, 0xcc, 0x4b,
+ 0xd7, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x01, 0xb1, 0x95, 0xa4, 0xb9, 0xd8, 0x83, 0x52,
+ 0x0b, 0x4b, 0x53, 0x8b, 0x4b, 0x84, 0x04, 0xb8, 0x98, 0x73, 0x8b, 0xd3, 0x25, 0x18, 0x15, 0x18,
+ 0x35, 0x38, 0x83, 0x40, 0x4c, 0x25, 0x19, 0x2e, 0x8e, 0xa0, 0xd4, 0xe2, 0x82, 0xfc, 0xbc, 0xe2,
+ 0x54, 0x4c, 0x59, 0xa3, 0x4c, 0x2e, 0xee, 0x80, 0xcc, 0xbc, 0xf4, 0xe0, 0xd4, 0xa2, 0xb2, 0xcc,
+ 0xe4, 0x54, 0x21, 0x75, 0x2e, 0x16, 0x10, 0x57, 0x88, 0x57, 0x0f, 0x6c, 0x09, 0xd4, 0x54, 0x29,
+ 0x3e, 0x18, 0x17, 0x62, 0x8e, 0x12, 0x83, 0x90, 0x21, 0x17, 0x17, 0x58, 0x5f, 0x49, 0x51, 0x6a,
+ 0x62, 0x2e, 0x41, 0xe5, 0x1a, 0x8c, 0x06, 0x8c, 0x49, 0x6c, 0x60, 0x27, 0x1b, 0x03, 0x02, 0x00,
+ 0x00, 0xff, 0xff, 0x85, 0x87, 0x57, 0xf8, 0xc0, 0x00, 0x00, 0x00,
+}
diff --git a/vendor/github.com/knative/serving/test/test_images/hellovolume/hellovolume.go b/vendor/github.com/knative/serving/test/test_images/hellovolume/hellovolume.go
new file mode 100644
index 0000000000..1dec675574
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/test_images/hellovolume/hellovolume.go
@@ -0,0 +1,45 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package main
+
+import (
+ "flag"
+ "fmt"
+ "io/ioutil"
+ "log"
+ "net/http"
+
+ "github.com/knative/serving/test"
+)
+
+func handler(w http.ResponseWriter, r *http.Request) {
+ content, err := ioutil.ReadFile(test.HelloVolumePath)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
+
+ log.Printf("Hello volume received a request: %s", string(content))
+ fmt.Fprintln(w, string(content))
+}
+
+func main() {
+ flag.Parse()
+ log.Print("Hello volume app started.")
+
+ test.ListenAndServeGracefully(":8080", handler)
+}
diff --git a/vendor/github.com/knative/serving/test/test_images/helloworld/helloworld.go b/vendor/github.com/knative/serving/test/test_images/helloworld/helloworld.go
index 87efd0d9bf..cac24407ad 100644
--- a/vendor/github.com/knative/serving/test/test_images/helloworld/helloworld.go
+++ b/vendor/github.com/knative/serving/test/test_images/helloworld/helloworld.go
@@ -21,6 +21,8 @@ import (
"fmt"
"log"
"net/http"
+
+ "github.com/knative/serving/test"
)
func handler(w http.ResponseWriter, r *http.Request) {
@@ -32,6 +34,5 @@ func main() {
flag.Parse()
log.Print("Hello world app started.")
- http.HandleFunc("/", handler)
- http.ListenAndServe(":8080", nil)
+ test.ListenAndServeGracefully(":8080", handler)
}
diff --git a/vendor/github.com/knative/serving/test/test_images/httpproxy/httpproxy.go b/vendor/github.com/knative/serving/test/test_images/httpproxy/httpproxy.go
index c7dfb8e7c3..5c14e94a11 100644
--- a/vendor/github.com/knative/serving/test/test_images/httpproxy/httpproxy.go
+++ b/vendor/github.com/knative/serving/test/test_images/httpproxy/httpproxy.go
@@ -24,6 +24,8 @@ import (
"net/http"
"net/http/httputil"
"net/url"
+
+ "github.com/knative/serving/test"
)
const (
@@ -67,6 +69,5 @@ func main() {
targetUrl := fmt.Sprintf("http://%s", targetHost)
httpProxy = initialHttpProxy(targetUrl)
- http.HandleFunc("/", handler)
- http.ListenAndServe(":8080", nil)
+ test.ListenAndServeGracefully(":8080", handler)
}
diff --git a/vendor/github.com/knative/serving/test/performance/observed-concurrency/observed_concurrency.go b/vendor/github.com/knative/serving/test/test_images/observed-concurrency/observed_concurrency.go
similarity index 93%
rename from vendor/github.com/knative/serving/test/performance/observed-concurrency/observed_concurrency.go
rename to vendor/github.com/knative/serving/test/test_images/observed-concurrency/observed_concurrency.go
index 6b8617dff3..967246119b 100644
--- a/vendor/github.com/knative/serving/test/performance/observed-concurrency/observed_concurrency.go
+++ b/vendor/github.com/knative/serving/test/test_images/observed-concurrency/observed_concurrency.go
@@ -22,6 +22,8 @@ import (
"net/http"
"strconv"
"time"
+
+ "github.com/knative/serving/test"
)
func handler(w http.ResponseWriter, r *http.Request) {
@@ -37,6 +39,5 @@ func main() {
log.Print("Requests against '/?timeout={TIME_IN_MILLISECONDS}' will sleep for the given time.")
log.Print("Each request will return its serverside start and end-time in nanoseconds.")
- http.HandleFunc("/", handler)
- http.ListenAndServe(":8080", nil)
+ test.ListenAndServeGracefully(":8080", handler)
}
diff --git a/vendor/github.com/knative/serving/test/test_images/pizzaplanetv1/main.go b/vendor/github.com/knative/serving/test/test_images/pizzaplanetv1/main.go
index b69c4b844f..f73ea56d6b 100644
--- a/vendor/github.com/knative/serving/test/test_images/pizzaplanetv1/main.go
+++ b/vendor/github.com/knative/serving/test/test_images/pizzaplanetv1/main.go
@@ -20,6 +20,8 @@ import (
"flag"
"fmt"
"net/http"
+
+ "github.com/knative/serving/test"
)
func handler(w http.ResponseWriter, r *http.Request) {
@@ -29,6 +31,5 @@ func handler(w http.ResponseWriter, r *http.Request) {
func main() {
flag.Parse()
- http.HandleFunc("/", handler)
- http.ListenAndServe(":8080", nil)
+ test.ListenAndServeGracefully(":8080", handler)
}
diff --git a/vendor/github.com/knative/serving/test/test_images/pizzaplanetv2/main.go b/vendor/github.com/knative/serving/test/test_images/pizzaplanetv2/main.go
index 882aa787c0..ee542132f8 100644
--- a/vendor/github.com/knative/serving/test/test_images/pizzaplanetv2/main.go
+++ b/vendor/github.com/knative/serving/test/test_images/pizzaplanetv2/main.go
@@ -20,6 +20,8 @@ import (
"flag"
"fmt"
"net/http"
+
+ "github.com/knative/serving/test"
)
func handler(w http.ResponseWriter, r *http.Request) {
@@ -29,6 +31,5 @@ func handler(w http.ResponseWriter, r *http.Request) {
func main() {
flag.Parse()
- http.HandleFunc("/", handler)
- http.ListenAndServe(":8080", nil)
+ test.ListenAndServeGracefully(":8080", handler)
}
diff --git a/vendor/github.com/knative/serving/test/test_images/envvars/envvars.go b/vendor/github.com/knative/serving/test/test_images/printport/main.go
similarity index 69%
rename from vendor/github.com/knative/serving/test/test_images/envvars/envvars.go
rename to vendor/github.com/knative/serving/test/test_images/printport/main.go
index bfab23c30f..524d90e8f6 100644
--- a/vendor/github.com/knative/serving/test/test_images/envvars/envvars.go
+++ b/vendor/github.com/knative/serving/test/test_images/printport/main.go
@@ -25,17 +25,19 @@ import (
)
func handler(w http.ResponseWriter, r *http.Request) {
- log.Print("Env vars test app received a request.")
- svc := os.Getenv("K_SERVICE")
- cfg := os.Getenv("K_CONFIGURATION")
- rev := os.Getenv("K_REVISION")
- fmt.Fprintf(w, "Here are our env vars service:%s - configuration:%s - revision:%s", svc, cfg, rev)
+ log.Print("PrintPort received a request.")
+ fmt.Fprintln(w, os.Getenv("PORT"))
}
func main() {
flag.Parse()
- log.Print("Env vars test app started.")
+ log.Print("PrintPort app started.")
+
+ port, isSet := os.LookupEnv("PORT")
+ if !isSet {
+ log.Fatalln("Environment variable PORT is not set.")
+ }
http.HandleFunc("/", handler)
- http.ListenAndServe(":8080", nil)
+ http.ListenAndServe(fmt.Sprintf(":%s", port), nil)
}
diff --git a/vendor/github.com/knative/serving/test/test_images/protocols/protocols.go b/vendor/github.com/knative/serving/test/test_images/protocols/protocols.go
new file mode 100644
index 0000000000..fe7013f936
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/test_images/protocols/protocols.go
@@ -0,0 +1,45 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package main
+
+import (
+ "encoding/json"
+ "net/http"
+
+ "github.com/knative/serving/test"
+)
+
+type Response struct {
+ ProtoMajor int `json:"protoMajor"`
+ ProtoMinor int `json:"protoMinor"`
+}
+
+func handler(w http.ResponseWriter, r *http.Request) {
+ response := Response{ProtoMajor: r.ProtoMajor, ProtoMinor: r.ProtoMinor}
+
+ json, err := json.Marshal(response)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
+
+ w.Write(json)
+}
+
+func main() {
+ test.ListenAndServeGracefully(":8080", handler)
+}
diff --git a/vendor/github.com/knative/serving/test/test_images/runtime/handlers/cgroup.go b/vendor/github.com/knative/serving/test/test_images/runtime/handlers/cgroup.go
new file mode 100644
index 0000000000..329b55276e
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/test_images/runtime/handlers/cgroup.go
@@ -0,0 +1,69 @@
+/*
+Copyright 2019 The Knative Authors
+ Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package handlers
+
+import (
+ "io/ioutil"
+ "os"
+ "strconv"
+ "strings"
+
+ "github.com/knative/serving/test/types"
+)
+
+// cgroupPaths is the set of cgroups probed and returned to the
+// client as Cgroups.
+var cgroupPaths = []string{
+ "/sys/fs/cgroup/memory/memory.limit_in_bytes",
+ "/sys/fs/cgroup/cpu/cpu.cfs_period_us",
+ "/sys/fs/cgroup/cpu/cpu.cfs_quota_us",
+ "/sys/fs/cgroup/cpu/cpu.shares"}
+
+var (
+ yes = true
+ no = false
+)
+
+func cgroups(paths ...string) []*types.Cgroup {
+ var cgroups []*types.Cgroup
+ for _, path := range paths {
+ if _, err := os.Stat(path); os.IsNotExist(err) {
+ cgroups = append(cgroups, &types.Cgroup{Name: path, Error: err.Error()})
+ continue
+ }
+
+ bc, err := ioutil.ReadFile(path)
+ if err != nil {
+ cgroups = append(cgroups, &types.Cgroup{Name: path, Error: err.Error()})
+ continue
+ }
+ cs := strings.Trim(string(bc), "\n")
+ ic, err := strconv.Atoi(cs)
+ if err != nil {
+ cgroups = append(cgroups, &types.Cgroup{Name: path, Error: err.Error()})
+ continue
+ }
+
+ // Try to write to the Cgroup. We expect this to fail as a cheap
+ // method for read-only validation
+ newValue := []byte{'9'}
+ err = ioutil.WriteFile(path, newValue, 420)
+ if err != nil {
+ cgroups = append(cgroups, &types.Cgroup{Name: path, Value: &ic, ReadOnly: &yes})
+ } else {
+ cgroups = append(cgroups, &types.Cgroup{Name: path, Value: &ic, ReadOnly: &no})
+ }
+ }
+ return cgroups
+}
diff --git a/vendor/github.com/knative/serving/test/test_images/runtime/handlers/env.go b/vendor/github.com/knative/serving/test/test_images/runtime/handlers/env.go
new file mode 100644
index 0000000000..c51af2e17c
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/test_images/runtime/handlers/env.go
@@ -0,0 +1,28 @@
+/*
+Copyright 2019 The Knative Authors
+ Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package handlers
+
+import (
+ "os"
+ "strings"
+)
+
+func env() map[string]string {
+ envMap := map[string]string{}
+ for _, e := range os.Environ() {
+ pair := strings.SplitN(e, "=", 2)
+ envMap[pair[0]] = pair[1]
+ }
+ return envMap
+}
diff --git a/vendor/github.com/knative/serving/test/test_images/runtime/handlers/file.go b/vendor/github.com/knative/serving/test/test_images/runtime/handlers/file.go
new file mode 100644
index 0000000000..e8a249ad1f
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/test_images/runtime/handlers/file.go
@@ -0,0 +1,49 @@
+/*
+Copyright 2019 The Knative Authors
+ Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package handlers
+
+import (
+ "os"
+
+ "github.com/knative/serving/test/types"
+)
+
+// filePaths is the set of filepaths probed and returned to the
+// client as FileInfo.
+var filePaths = []string{"/tmp",
+ "/var/log",
+ "/dev/log",
+ "/etc/hosts",
+ "/etc/hostname",
+ "/etc/resolv.conf"}
+
+func fileInfo(paths ...string) []*types.FileInfo {
+ var infoList []*types.FileInfo
+
+ for _, path := range paths {
+ file, err := os.Stat(path)
+ if err != nil {
+ infoList = append(infoList, &types.FileInfo{Name: path, Error: err.Error()})
+ continue
+ }
+ size := file.Size()
+ dir := file.IsDir()
+ infoList = append(infoList, &types.FileInfo{Name: path,
+ Size: &size,
+ Mode: file.Mode().String(),
+ ModTime: file.ModTime(),
+ IsDir: &dir})
+ }
+ return infoList
+}
diff --git a/vendor/github.com/knative/serving/test/test_images/runtime/handlers/handler.go b/vendor/github.com/knative/serving/test/test_images/runtime/handlers/handler.go
new file mode 100644
index 0000000000..6c7a3d9ad7
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/test_images/runtime/handlers/handler.go
@@ -0,0 +1,62 @@
+/*
+Copyright 2019 The Knative Authors
+ Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package handlers
+
+import (
+ "encoding/json"
+ "fmt"
+ "log"
+ "net/http"
+ "net/http/httputil"
+)
+
+// InitHandlers initializes all handlers.
+func InitHandlers(mux *http.ServeMux) {
+ mux.HandleFunc("/", withHeaders(withRequestLog(runtimeHandler)))
+ mux.HandleFunc("/_healthz", withRequestLog(func(w http.ResponseWriter, _ *http.Request) {
+ fmt.Fprint(w, "ok")
+ }))
+}
+
+// withRequestLog logs each request before handling it.
+func withRequestLog(next http.HandlerFunc) http.HandlerFunc {
+ return func(w http.ResponseWriter, r *http.Request) {
+ reqDump, err := httputil.DumpRequest(r, true)
+ if err != nil {
+ log.Println(err)
+ } else {
+ log.Println(string(reqDump))
+ }
+
+ next.ServeHTTP(w, r)
+ }
+}
+
+// setHeaders injects headers on the responses.
+func withHeaders(next http.HandlerFunc) http.HandlerFunc {
+ return func(w http.ResponseWriter, r *http.Request) {
+ w.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
+ w.Header().Set("Pragma", "no-cache")
+ w.Header().Set("Expires", "0")
+ next.ServeHTTP(w, r)
+ }
+}
+
+// WriteObject write content to response.
+func writeJSON(w http.ResponseWriter, o interface{}) {
+ w.WriteHeader(http.StatusOK)
+ e := json.NewEncoder(w)
+ e.SetIndent("", "\t")
+ e.Encode(o)
+}
diff --git a/vendor/github.com/knative/serving/test/test_images/runtime/handlers/mount.go b/vendor/github.com/knative/serving/test/test_images/runtime/handlers/mount.go
new file mode 100644
index 0000000000..090924b40b
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/test_images/runtime/handlers/mount.go
@@ -0,0 +1,55 @@
+/*
+Copyright 2019 The Knative Authors
+ Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package handlers
+
+import (
+ "bufio"
+ "os"
+ "strings"
+
+ "github.com/knative/serving/test/types"
+)
+
+func mounts() []*types.Mount {
+ file, err := os.Open("/proc/mounts")
+ if err != nil {
+ return []*types.Mount{{Error: err.Error()}}
+ }
+ defer file.Close()
+
+ sc := bufio.NewScanner(file)
+ var mounts []*types.Mount
+ for sc.Scan() {
+ ml := sc.Text()
+ // Each line should be:
+ // Device Path Type Options Unused Unused
+ // sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
+ ms := strings.Split(ml, " ")
+ if len(ms) < 6 {
+ return []*types.Mount{{Error: "unknown /proc/mounts format"}}
+ }
+ mounts = append(mounts, &types.Mount{
+ Device: ms[0],
+ Path: ms[1],
+ Type: ms[2],
+ Options: strings.Split(ms[3], ",")})
+ }
+
+ if err := sc.Err(); err != nil {
+ // Don't return partial list of mounts on error
+ return []*types.Mount{{Error: err.Error()}}
+ }
+
+ return mounts
+}
diff --git a/vendor/github.com/knative/serving/test/test_images/runtime/handlers/request.go b/vendor/github.com/knative/serving/test/test_images/runtime/handlers/request.go
new file mode 100644
index 0000000000..8ac947a5c4
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/test_images/runtime/handlers/request.go
@@ -0,0 +1,31 @@
+/*
+Copyright 2019 The Knative Authors
+ Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package handlers
+
+import (
+ "net/http"
+ "time"
+
+ "github.com/knative/serving/test/types"
+)
+
+func requestInfo(r *http.Request) *types.RequestInfo {
+ return &types.RequestInfo{
+ Ts: time.Now(),
+ URI: r.RequestURI,
+ Host: r.Host,
+ Method: r.Method,
+ Headers: r.Header,
+ }
+}
diff --git a/vendor/github.com/knative/serving/test/test_images/runtime/handlers/runtime.go b/vendor/github.com/knative/serving/test/test_images/runtime/handlers/runtime.go
new file mode 100644
index 0000000000..70b3f60853
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/test_images/runtime/handlers/runtime.go
@@ -0,0 +1,37 @@
+/*
+Copyright 2019 The Knative Authors
+ Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package handlers
+
+import (
+ "log"
+ "net/http"
+
+ "github.com/knative/serving/test/types"
+)
+
+func runtimeHandler(w http.ResponseWriter, r *http.Request) {
+ log.Println("Retrieving Runtime Information")
+ w.Header().Set("Content-Type", "application/json")
+
+ k := &types.RuntimeInfo{
+ Request: requestInfo(r),
+ Host: &types.HostInfo{EnvVars: env(),
+ Files: fileInfo(filePaths...),
+ Cgroups: cgroups(cgroupPaths...),
+ Mounts: mounts(),
+ },
+ }
+
+ writeJSON(w, k)
+}
diff --git a/vendor/github.com/knative/serving/test/test_images/runtime/main.go b/vendor/github.com/knative/serving/test/test_images/runtime/main.go
new file mode 100644
index 0000000000..76508da550
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/test_images/runtime/main.go
@@ -0,0 +1,44 @@
+/*
+Copyright 2019 The Knative Authors
+ Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package main
+
+import (
+ "fmt"
+ "log"
+ "net/http"
+ "os"
+
+ "github.com/knative/serving/test/test_images/runtime/handlers"
+)
+
+func main() {
+
+ // We expect PORT to be defined in a Knative environment
+ // and don't want to mask this failure in a test image.
+ port, isSet := os.LookupEnv("PORT")
+ if !isSet {
+ log.Fatal("Environment variable PORT is not set.")
+ }
+
+ mux := http.NewServeMux()
+ handlers.InitHandlers(mux)
+
+ server := &http.Server{
+ Addr: fmt.Sprintf(":%s", port),
+ Handler: mux,
+ }
+
+ log.Printf("Server starting on port %s\n", port)
+ log.Fatal(server.ListenAndServe())
+}
diff --git a/vendor/github.com/knative/serving/test/test_images/singlethreaded/main.go b/vendor/github.com/knative/serving/test/test_images/singlethreaded/main.go
index 46987a244c..e5c8b92351 100644
--- a/vendor/github.com/knative/serving/test/test_images/singlethreaded/main.go
+++ b/vendor/github.com/knative/serving/test/test_images/singlethreaded/main.go
@@ -23,6 +23,8 @@ import (
"net/http"
"sync/atomic"
"time"
+
+ "github.com/knative/serving/test"
)
var (
@@ -45,6 +47,5 @@ func handler(w http.ResponseWriter, r *http.Request) {
func main() {
flag.Parse()
- http.HandleFunc("/", handler)
- http.ListenAndServe(":8080", nil)
+ test.ListenAndServeGracefully(":8080", handler)
}
diff --git a/vendor/github.com/knative/serving/test/test_images/timeout/timeout.go b/vendor/github.com/knative/serving/test/test_images/timeout/timeout.go
new file mode 100644
index 0000000000..1181adc531
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/test_images/timeout/timeout.go
@@ -0,0 +1,52 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package main
+
+import (
+ "fmt"
+ "net/http"
+ "strconv"
+ "time"
+
+ "github.com/knative/serving/test"
+)
+
+func handler(w http.ResponseWriter, r *http.Request) {
+ // Sleep for a set amount of time before sending headers
+ if initialTimeout := r.URL.Query().Get("initialTimeout"); initialTimeout != "" {
+ parsed, _ := strconv.Atoi(initialTimeout)
+ time.Sleep(time.Duration(parsed) * time.Millisecond)
+ }
+
+ w.WriteHeader(http.StatusOK)
+
+ // Explicitly flush the already written data to trigger (or not)
+ // the time-to-first-byte timeout.
+ if f, ok := w.(http.Flusher); ok {
+ f.Flush()
+ }
+
+ // Sleep for a set amount of time before sending response
+ timeout, _ := strconv.Atoi(r.URL.Query().Get("timeout"))
+ time.Sleep(time.Duration(timeout) * time.Millisecond)
+
+ fmt.Fprintf(w, "Slept for %d milliseconds", timeout)
+}
+
+func main() {
+ test.ListenAndServeGracefully(":8080", handler)
+}
diff --git a/vendor/github.com/knative/serving/test/test_images/wsserver/echo.go b/vendor/github.com/knative/serving/test/test_images/wsserver/echo.go
new file mode 100644
index 0000000000..7f9974676e
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/test_images/wsserver/echo.go
@@ -0,0 +1,69 @@
+/*
+Copyright 2019 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+package main
+
+import (
+ "flag"
+ "log"
+ "net/http"
+
+ "github.com/gorilla/websocket"
+ "github.com/knative/serving/test"
+)
+
+var addr = flag.String("addr", "localhost:8080", "http service address")
+
+var upgrader = websocket.Upgrader{
+ // Allow any origin, since we are spoofing requests anyway.
+ CheckOrigin: func(r *http.Request) bool {
+ return true
+ },
+}
+
+func handler(w http.ResponseWriter, r *http.Request) {
+ conn, err := upgrader.Upgrade(w, r, nil)
+ if err != nil {
+ log.Println("Error upgrading websocket:", err)
+ return
+ }
+ defer conn.Close()
+ log.Println("Connection upgraded to WebSocket. Entering receive loop.")
+ for {
+ messageType, message, err := conn.ReadMessage()
+ if err != nil {
+ // We close abnormally, because we're just closing the connection in the client,
+ // which is okay. There's no value delaying closure of the connection unnecessarily.
+ if websocket.IsCloseError(err, websocket.CloseAbnormalClosure) {
+ log.Println("Client disconnected.")
+ } else {
+ log.Println("Handler exiting on error:", err)
+ }
+ return
+ }
+ log.Printf("Successfully received: %q", message)
+ if err = conn.WriteMessage(messageType, message); err != nil {
+ log.Println("Failed to write message:", err)
+ return
+ }
+ log.Printf("Successfully wrote: %q", message)
+ }
+}
+
+func main() {
+ flag.Parse()
+ log.SetFlags(0)
+ test.ListenAndServeGracefully(*addr, handler)
+}
diff --git a/vendor/github.com/knative/serving/test/types/runtime.go b/vendor/github.com/knative/serving/test/types/runtime.go
new file mode 100644
index 0000000000..da65cfe3f4
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/types/runtime.go
@@ -0,0 +1,95 @@
+/*
+Copyright 2019 The Knative Authors
+ Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package types
+
+import (
+ "net/http"
+ "time"
+)
+
+// RuntimeInfo encapsulates both the host and request information.
+type RuntimeInfo struct {
+ // Request is information about the request.
+ Request *RequestInfo `json:"request"`
+ // Host is a set of host information.
+ Host *HostInfo `json:"host"`
+}
+
+// RequestInfo encapsulates information about the request.
+type RequestInfo struct {
+ // Ts is the timestamp of when the request came in from the system time.
+ Ts time.Time `json:"ts"`
+ // URI is the request-target of the Request-Line.
+ URI string `json:"uri"`
+ // Host is the hostname on which the URL is sought.
+ Host string `json:"host"`
+ // Method is the method used for the request.
+ Method string `json:"method"`
+ // Headers is a Map of all headers set.
+ Headers http.Header `json:"headers"`
+}
+
+// HostInfo contains information about the host environment.
+type HostInfo struct {
+ // Files is a map of file metadata.
+ Files []*FileInfo `json:"files"`
+ // EnvVars is a map of all environment variables set.
+ EnvVars map[string]string `json:"envs"`
+ // Cgroups is a list of cgroup information.
+ Cgroups []*Cgroup `json:"cgroups"`
+ // Mounts is a list of mounted volume information, or error.
+ Mounts []*Mount `json:"mounts"`
+}
+
+// FileInfo contains the metadata for a given file.
+type FileInfo struct {
+ // Name is the full filename.
+ Name string `json:"name"`
+ // Size is the length in bytes for regular files; system-dependent for others.
+ Size *int64 `json:"size,omitempty"`
+ // Mode is the file mode bits.
+ Mode string `json:"mode,omitempty"`
+ // ModTime is the file last modified time
+ ModTime time.Time `json:"modTime,omitempty"`
+ // IsDir is true if the file is a directory.
+ IsDir *bool `json:"isDir,omitempty"`
+ // Error is the String representation of the error returned obtaining the information.
+ Error string `json:"error,omitempty"`
+}
+
+// Cgroup contains the Cgroup value for a given setting.
+type Cgroup struct {
+ // Name is the full path name of the cgroup.
+ Name string `json:"name"`
+ // Value is the integer files in the cgroup file.
+ Value *int `json:"value,omitempty"`
+ // ReadOnly is true if the cgroup was not writable.
+ ReadOnly *bool `json:"readOnly,omitempty"`
+ // Error is the String representation of the error returned obtaining the information.
+ Error string `json:"error,omitempty"`
+}
+
+// Mount contains information about a given mount.
+type Mount struct {
+ // Device is the device that is mounted
+ Device string `json:"device,omitempty"`
+ // Path is the location where the volume is mounted
+ Path string `json:"path,omitempty"`
+ // Type is the filesystem type (i.e. sysfs, proc, tmpfs, ext4, overlay, etc.)
+ Type string `json:"type,omitempty"`
+ // Options is the mount options set (i.e. rw, nosuid, relatime, etc.)
+ Options []string `json:"options,omitempty"`
+ // Error is the String representation of the error returned obtaining the information.
+ Error string `json:"error,omitempty"`
+}
diff --git a/vendor/github.com/knative/serving/test/upgrade/upgrade.go b/vendor/github.com/knative/serving/test/upgrade/upgrade.go
new file mode 100644
index 0000000000..3d0d0378ea
--- /dev/null
+++ b/vendor/github.com/knative/serving/test/upgrade/upgrade.go
@@ -0,0 +1,77 @@
+/*
+Copyright 2018 The Knative Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package upgrade
+
+import (
+ "net/http"
+ "testing"
+
+ // Mysteriously required to support GCP auth (required by k8s libs).
+ // Apparently just importing it is enough. @_@ side effects @_@.
+ // https://github.com/kubernetes/client-go/issues/242
+ _ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
+
+ pkgTest "github.com/knative/pkg/test"
+ "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ "github.com/knative/serving/test"
+)
+
+const (
+ image1 = "pizzaplanetv1"
+ image2 = "pizzaplanetv2"
+
+ serviceName = "pizzaplanet-upgrade-service"
+)
+
+// Shamelessly cribbed from conformance/service_test.
+func assertServiceResourcesUpdated(t *testing.T, clients *test.Clients, names test.ResourceNames, routeDomain, expectedGeneration, expectedText string) {
+ // TODO(#1178): Remove "Wait" from all checks below this point.
+ _, err := pkgTest.WaitForEndpointState(
+ clients.KubeClient,
+ t.Logf,
+ routeDomain,
+ pkgTest.Retrying(pkgTest.EventuallyMatchesBody(expectedText), http.StatusNotFound),
+ "WaitForEndpointToServeText",
+ test.ServingFlags.ResolvableDomain)
+ if err != nil {
+ t.Fatalf("The endpoint for Route %s at domain %s didn't serve the expected text \"%s\": %v", names.Route, routeDomain, expectedText, err)
+ }
+}
+
+func waitForServiceLatestCreatedRevision(clients *test.Clients, names test.ResourceNames) (string, error) {
+ var revisionName string
+ err := test.WaitForServiceState(clients.ServingClient, names.Service, func(s *v1alpha1.Service) (bool, error) {
+ if s.Status.LatestCreatedRevisionName != names.Revision {
+ revisionName = s.Status.LatestCreatedRevisionName
+ return true, nil
+ }
+ return false, nil
+ }, "ServiceUpdatedWithRevision")
+ return revisionName, err
+}
+
+func waitForServiceDomain(clients *test.Clients, names test.ResourceNames) (string, error) {
+ var routeDomain string
+ err := test.WaitForServiceState(clients.ServingClient, names.Service, func(s *v1alpha1.Service) (bool, error) {
+ if s.Status.Domain != "" {
+ routeDomain = s.Status.Domain
+ return true, nil
+ }
+ return false, nil
+ }, "ServiceUpdatedWithDomain")
+ return routeDomain, err
+}
diff --git a/vendor/github.com/knative/serving/test/util.go b/vendor/github.com/knative/serving/test/util.go
index c2d16eec30..43bf0f6e1b 100644
--- a/vendor/github.com/knative/serving/test/util.go
+++ b/vendor/github.com/knative/serving/test/util.go
@@ -10,27 +10,57 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
-// util.go provides shared utilities methods across knative serving test
+
package test
import (
- "encoding/json"
+ "context"
"fmt"
+ "net/http"
+ "testing"
+
+ "github.com/davecgh/go-spew/spew"
+ "github.com/knative/pkg/signals"
+ "golang.org/x/net/http2"
+ "golang.org/x/net/http2/h2c"
+)
- "github.com/knative/pkg/test/logging"
+const (
+ HelloVolumePath = "/hello/world"
)
+// util.go provides shared utilities methods across knative serving test
+
// LogResourceObject logs the resource object with the resource name and value
-func LogResourceObject(logger *logging.BaseLogger, value ResourceObjects) {
- // Log the route object
- if resourceJSON, err := json.Marshal(value); err != nil {
- logger.Infof("Failed to create json from resource object: %v", err)
- } else {
- logger.Infof("resource %s", string(resourceJSON))
- }
+func LogResourceObject(t *testing.T, value ResourceObjects) {
+ t.Logf("resource %s", spew.Sdump(value))
}
// ImagePath is a helper function to prefix image name with repo and suffix with tag
func ImagePath(name string) string {
return fmt.Sprintf("%s/%s:%s", ServingFlags.DockerRepo, name, ServingFlags.Tag)
}
+
+// ListenAndServeGracefully calls into ListenAndServeGracefullyWithPattern
+// by passing handler to handle requests for "/"
+func ListenAndServeGracefully(addr string, handler func(w http.ResponseWriter, r *http.Request)) {
+ ListenAndServeGracefullyWithPattern(addr, map[string]func(w http.ResponseWriter, r *http.Request){
+ "/": handler,
+ })
+}
+
+// ListenAndServeGracefullyWithPattern creates an HTTP server, listens on the defined address
+// and handles incoming requests specified on pattern(path) with the given handlers.
+// It blocks until SIGTERM is received and the underlying server has shutdown gracefully.
+func ListenAndServeGracefullyWithPattern(addr string, handlers map[string]func(w http.ResponseWriter, r *http.Request)) {
+ m := http.NewServeMux()
+ for pattern, handler := range handlers {
+ m.HandleFunc(pattern, handler)
+ }
+
+ server := http.Server{Addr: addr, Handler: h2c.NewHandler(m, &http2.Server{})}
+ go server.ListenAndServe()
+
+ <-signals.SetupSignalHandler()
+ server.Shutdown(context.Background())
+}
diff --git a/vendor/github.com/mailru/easyjson/bootstrap/bootstrap.go b/vendor/github.com/mailru/easyjson/bootstrap/bootstrap.go
index 1116a91af9..a461bf15ee 100644
--- a/vendor/github.com/mailru/easyjson/bootstrap/bootstrap.go
+++ b/vendor/github.com/mailru/easyjson/bootstrap/bootstrap.go
@@ -36,7 +36,7 @@ type Generator struct {
NoFormat bool
}
-// writeStub outputs an initial stubs for marshalers/unmarshalers so that the package
+// writeStub outputs an initial stub for marshalers/unmarshalers so that the package
// using marshalers/unmarshales compiles correctly for boostrapping code.
func (g *Generator) writeStub() error {
f, err := os.Create(g.OutName)
diff --git a/vendor/github.com/mailru/easyjson/gen/decoder.go b/vendor/github.com/mailru/easyjson/gen/decoder.go
index 606602f5e4..02a3dfa233 100644
--- a/vendor/github.com/mailru/easyjson/gen/decoder.go
+++ b/vendor/github.com/mailru/easyjson/gen/decoder.go
@@ -198,7 +198,12 @@ func (g *Generator) genTypeDecoderNoCheck(t reflect.Type, out string, tags field
dec := g.getDecoderName(t)
g.addType(t)
- fmt.Fprintln(g.out, ws+dec+"(in, &"+out+")")
+ if len(out) > 0 && out[0] == '*' {
+ // NOTE: In order to remove an extra reference to a pointer
+ fmt.Fprintln(g.out, ws+dec+"(in, "+out[1:]+")")
+ } else {
+ fmt.Fprintln(g.out, ws+dec+"(in, &"+out+")")
+ }
case reflect.Ptr:
fmt.Fprintln(g.out, ws+"if in.IsNull() {")
@@ -343,7 +348,8 @@ func getStructFields(t reflect.Type) ([]reflect.StructField, error) {
var efields []reflect.StructField
for i := 0; i < t.NumField(); i++ {
f := t.Field(i)
- if !f.Anonymous {
+ tags := parseFieldTags(f)
+ if !f.Anonymous || tags.name != "" {
continue
}
@@ -362,7 +368,8 @@ func getStructFields(t reflect.Type) ([]reflect.StructField, error) {
var fields []reflect.StructField
for i := 0; i < t.NumField(); i++ {
f := t.Field(i)
- if f.Anonymous {
+ tags := parseFieldTags(f)
+ if f.Anonymous && tags.name == "" {
continue
}
diff --git a/vendor/github.com/mailru/easyjson/parser/pkgpath.go b/vendor/github.com/mailru/easyjson/parser/pkgpath.go
index 489b392dd8..155d1684d8 100644
--- a/vendor/github.com/mailru/easyjson/parser/pkgpath.go
+++ b/vendor/github.com/mailru/easyjson/parser/pkgpath.go
@@ -10,6 +10,7 @@ import (
"path/filepath"
"strconv"
"strings"
+ "sync"
)
func getPkgPath(fname string, isDir bool) (string, error) {
@@ -34,9 +35,12 @@ func getPkgPath(fname string, isDir bool) (string, error) {
return getPkgPathFromGOPATH(fname, isDir)
}
-var (
- goModPathCache = make(map[string]string)
-)
+var goModPathCache = struct {
+ paths map[string]string
+ sync.RWMutex
+}{
+ paths: make(map[string]string),
+}
// empty if no go.mod, GO111MODULE=off or go without go modules support
func goModPath(fname string, isDir bool) (string, error) {
@@ -45,13 +49,17 @@ func goModPath(fname string, isDir bool) (string, error) {
root = filepath.Dir(fname)
}
- goModPath, ok := goModPathCache[root]
+ goModPathCache.RLock()
+ goModPath, ok := goModPathCache.paths[root]
+ goModPathCache.RUnlock()
if ok {
return goModPath, nil
}
defer func() {
- goModPathCache[root] = goModPath
+ goModPathCache.Lock()
+ goModPathCache.paths[root] = goModPath
+ goModPathCache.Unlock()
}()
cmd := exec.Command("go", "env", "GOMOD")
diff --git a/vendor/github.com/mailru/easyjson/tests/embedded_type.go b/vendor/github.com/mailru/easyjson/tests/embedded_type.go
index 66470b6ef2..346cf4ab34 100644
--- a/vendor/github.com/mailru/easyjson/tests/embedded_type.go
+++ b/vendor/github.com/mailru/easyjson/tests/embedded_type.go
@@ -6,19 +6,25 @@ type EmbeddedType struct {
Inner struct {
EmbeddedInnerType
}
- Field2 int
+ Field2 int
+ EmbeddedInnerType2 `json:"named"`
}
type EmbeddedInnerType struct {
Field1 int
}
+type EmbeddedInnerType2 struct {
+ Field3 int
+}
+
var embeddedTypeValue EmbeddedType
func init() {
embeddedTypeValue.Field1 = 1
embeddedTypeValue.Field2 = 2
embeddedTypeValue.Inner.Field1 = 3
+ embeddedTypeValue.Field3 = 4
}
-var embeddedTypeValueString = `{"Inner":{"Field1":3},"Field2":2,"Field1":1}`
+var embeddedTypeValueString = `{"Inner":{"Field1":3},"Field2":2,"named":{"Field3":4},"Field1":1}`
diff --git a/vendor/github.com/mailru/easyjson/tests/reference_to_pointer.go b/vendor/github.com/mailru/easyjson/tests/reference_to_pointer.go
new file mode 100644
index 0000000000..6768e53da7
--- /dev/null
+++ b/vendor/github.com/mailru/easyjson/tests/reference_to_pointer.go
@@ -0,0 +1,10 @@
+package tests
+
+type Struct1 struct {
+}
+
+//easyjson:json
+type Struct2 struct {
+ From *Struct1 `json:"from,omitempty"`
+ Through *Struct1 `json:"through,omitempty"`
+}
diff --git a/vendor/github.com/pkg/errors/errors.go b/vendor/github.com/pkg/errors/errors.go
index 842ee80456..7421f326ff 100644
--- a/vendor/github.com/pkg/errors/errors.go
+++ b/vendor/github.com/pkg/errors/errors.go
@@ -6,7 +6,7 @@
// return err
// }
//
-// which applied recursively up the call stack results in error reports
+// which when applied recursively up the call stack results in error reports
// without context or debugging information. The errors package allows
// programmers to add context to the failure path in their code in a way
// that does not destroy the original value of the error.
@@ -15,16 +15,17 @@
//
// The errors.Wrap function returns a new error that adds context to the
// original error by recording a stack trace at the point Wrap is called,
-// and the supplied message. For example
+// together with the supplied message. For example
//
// _, err := ioutil.ReadAll(r)
// if err != nil {
// return errors.Wrap(err, "read failed")
// }
//
-// If additional control is required the errors.WithStack and errors.WithMessage
-// functions destructure errors.Wrap into its component operations of annotating
-// an error with a stack trace and an a message, respectively.
+// If additional control is required, the errors.WithStack and
+// errors.WithMessage functions destructure errors.Wrap into its component
+// operations: annotating an error with a stack trace and with a message,
+// respectively.
//
// Retrieving the cause of an error
//
@@ -38,7 +39,7 @@
// }
//
// can be inspected by errors.Cause. errors.Cause will recursively retrieve
-// the topmost error which does not implement causer, which is assumed to be
+// the topmost error that does not implement causer, which is assumed to be
// the original cause. For example:
//
// switch err := errors.Cause(err).(type) {
@@ -48,16 +49,16 @@
// // unknown error
// }
//
-// causer interface is not exported by this package, but is considered a part
-// of stable public API.
+// Although the causer interface is not exported by this package, it is
+// considered a part of its stable public interface.
//
// Formatted printing of errors
//
// All error values returned from this package implement fmt.Formatter and can
-// be formatted by the fmt package. The following verbs are supported
+// be formatted by the fmt package. The following verbs are supported:
//
// %s print the error. If the error has a Cause it will be
-// printed recursively
+// printed recursively.
// %v see %s
// %+v extended format. Each Frame of the error's StackTrace will
// be printed in detail.
@@ -65,13 +66,13 @@
// Retrieving the stack trace of an error or wrapper
//
// New, Errorf, Wrap, and Wrapf record a stack trace at the point they are
-// invoked. This information can be retrieved with the following interface.
+// invoked. This information can be retrieved with the following interface:
//
// type stackTracer interface {
// StackTrace() errors.StackTrace
// }
//
-// Where errors.StackTrace is defined as
+// The returned errors.StackTrace type is defined as
//
// type StackTrace []Frame
//
@@ -85,8 +86,8 @@
// }
// }
//
-// stackTracer interface is not exported by this package, but is considered a part
-// of stable public API.
+// Although the stackTracer interface is not exported by this package, it is
+// considered a part of its stable public interface.
//
// See the documentation for Frame.Format for more details.
package errors
@@ -192,7 +193,7 @@ func Wrap(err error, message string) error {
}
// Wrapf returns an error annotating err with a stack trace
-// at the point Wrapf is call, and the format specifier.
+// at the point Wrapf is called, and the format specifier.
// If err is nil, Wrapf returns nil.
func Wrapf(err error, format string, args ...interface{}) error {
if err == nil {
@@ -220,6 +221,18 @@ func WithMessage(err error, message string) error {
}
}
+// WithMessagef annotates err with the format specifier.
+// If err is nil, WithMessagef returns nil.
+func WithMessagef(err error, format string, args ...interface{}) error {
+ if err == nil {
+ return nil
+ }
+ return &withMessage{
+ cause: err,
+ msg: fmt.Sprintf(format, args...),
+ }
+}
+
type withMessage struct {
cause error
msg string
diff --git a/vendor/github.com/pkg/errors/stack.go b/vendor/github.com/pkg/errors/stack.go
index 6b1f2891a5..2874a048cf 100644
--- a/vendor/github.com/pkg/errors/stack.go
+++ b/vendor/github.com/pkg/errors/stack.go
@@ -46,7 +46,8 @@ func (f Frame) line() int {
//
// Format accepts flags that alter the printing of some verbs, as follows:
//
-// %+s path of source file relative to the compile time GOPATH
+// %+s function name and path of source file relative to the compile time
+// GOPATH separated by \n\t (\n\t)
// %+v equivalent to %+s:%d
func (f Frame) Format(s fmt.State, verb rune) {
switch verb {
@@ -79,6 +80,14 @@ func (f Frame) Format(s fmt.State, verb rune) {
// StackTrace is stack of Frames from innermost (newest) to outermost (oldest).
type StackTrace []Frame
+// Format formats the stack of Frames according to the fmt.Formatter interface.
+//
+// %s lists source files for each Frame in the stack
+// %v lists the source file and line number for each Frame in the stack
+//
+// Format accepts flags that alter the printing of some verbs, as follows:
+//
+// %+v Prints filename, function, and line number for each Frame in the stack.
func (st StackTrace) Format(s fmt.State, verb rune) {
switch verb {
case 'v':
@@ -136,43 +145,3 @@ func funcname(name string) string {
i = strings.Index(name, ".")
return name[i+1:]
}
-
-func trimGOPATH(name, file string) string {
- // Here we want to get the source file path relative to the compile time
- // GOPATH. As of Go 1.6.x there is no direct way to know the compiled
- // GOPATH at runtime, but we can infer the number of path segments in the
- // GOPATH. We note that fn.Name() returns the function name qualified by
- // the import path, which does not include the GOPATH. Thus we can trim
- // segments from the beginning of the file path until the number of path
- // separators remaining is one more than the number of path separators in
- // the function name. For example, given:
- //
- // GOPATH /home/user
- // file /home/user/src/pkg/sub/file.go
- // fn.Name() pkg/sub.Type.Method
- //
- // We want to produce:
- //
- // pkg/sub/file.go
- //
- // From this we can easily see that fn.Name() has one less path separator
- // than our desired output. We count separators from the end of the file
- // path until it finds two more than in the function name and then move
- // one character forward to preserve the initial path segment without a
- // leading separator.
- const sep = "/"
- goal := strings.Count(name, sep) + 2
- i := len(file)
- for n := 0; n < goal; n++ {
- i = strings.LastIndex(file[:i], sep)
- if i == -1 {
- // not enough separators found, set i so that the slice expression
- // below leaves file unmodified
- i = -len(sep)
- break
- }
- }
- // get back to 0 or trim the leading separator
- file = file[i+len(sep):]
- return file
-}
diff --git a/vendor/github.com/prometheus/client_golang/api/prometheus/v1/api.go b/vendor/github.com/prometheus/client_golang/api/prometheus/v1/api.go
index 642418890c..6a19fac129 100644
--- a/vendor/github.com/prometheus/client_golang/api/prometheus/v1/api.go
+++ b/vendor/github.com/prometheus/client_golang/api/prometheus/v1/api.go
@@ -56,12 +56,10 @@ type HealthStatus string
const (
// Possible values for ErrorType.
ErrBadData ErrorType = "bad_data"
- ErrTimeout ErrorType = "timeout"
- ErrCanceled ErrorType = "canceled"
- ErrExec ErrorType = "execution"
- ErrBadResponse ErrorType = "bad_response"
- ErrServer ErrorType = "server_error"
- ErrClient ErrorType = "client_error"
+ ErrTimeout = "timeout"
+ ErrCanceled = "canceled"
+ ErrExec = "execution"
+ ErrBadResponse = "bad_response"
// Possible values for HealthStatus.
HealthGood HealthStatus = "up"
@@ -71,9 +69,8 @@ const (
// Error is an error returned by the API.
type Error struct {
- Type ErrorType
- Msg string
- Detail string
+ Type ErrorType
+ Msg string
}
func (e *Error) Error() string {
@@ -463,16 +460,6 @@ func apiError(code int) bool {
return code == statusAPIError || code == http.StatusBadRequest
}
-func errorTypeAndMsgFor(resp *http.Response) (ErrorType, string) {
- switch resp.StatusCode / 100 {
- case 4:
- return ErrClient, fmt.Sprintf("client error: %d", resp.StatusCode)
- case 5:
- return ErrServer, fmt.Sprintf("server error: %d", resp.StatusCode)
- }
- return ErrBadResponse, fmt.Sprintf("bad response code %d", resp.StatusCode)
-}
-
func (c apiClient) Do(ctx context.Context, req *http.Request) (*http.Response, []byte, error) {
resp, body, err := c.Client.Do(ctx, req)
if err != nil {
@@ -482,11 +469,9 @@ func (c apiClient) Do(ctx context.Context, req *http.Request) (*http.Response, [
code := resp.StatusCode
if code/100 != 2 && !apiError(code) {
- errorType, errorMsg := errorTypeAndMsgFor(resp)
return resp, body, &Error{
- Type: errorType,
- Msg: errorMsg,
- Detail: string(body),
+ Type: ErrBadResponse,
+ Msg: fmt.Sprintf("bad response code %d", resp.StatusCode),
}
}
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/counter.go b/vendor/github.com/prometheus/client_golang/prometheus/counter.go
index d463e36d3e..765e4550c6 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/counter.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/counter.go
@@ -136,7 +136,7 @@ func NewCounterVec(opts CounterOpts, labelNames []string) *CounterVec {
return &CounterVec{
metricVec: newMetricVec(desc, func(lvs ...string) Metric {
if len(lvs) != len(desc.variableLabels) {
- panic(makeInconsistentCardinalityError(desc.fqName, desc.variableLabels, lvs))
+ panic(errInconsistentCardinality)
}
result := &counter{desc: desc, labelPairs: makeLabelPairs(desc, lvs)}
result.init(result) // Init self-collection.
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/desc.go b/vendor/github.com/prometheus/client_golang/prometheus/desc.go
index 1d034f871c..7b8827ffbc 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/desc.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/desc.go
@@ -93,7 +93,7 @@ func NewDesc(fqName, help string, variableLabels []string, constLabels Labels) *
// First add only the const label names and sort them...
for labelName := range constLabels {
if !checkLabelName(labelName) {
- d.err = fmt.Errorf("%q is not a valid label name for metric %q", labelName, fqName)
+ d.err = fmt.Errorf("%q is not a valid label name", labelName)
return d
}
labelNames = append(labelNames, labelName)
@@ -115,7 +115,7 @@ func NewDesc(fqName, help string, variableLabels []string, constLabels Labels) *
// dimension with a different mix between preset and variable labels.
for _, labelName := range variableLabels {
if !checkLabelName(labelName) {
- d.err = fmt.Errorf("%q is not a valid label name for metric %q", labelName, fqName)
+ d.err = fmt.Errorf("%q is not a valid label name", labelName)
return d
}
labelNames = append(labelNames, "$"+labelName)
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/gauge.go b/vendor/github.com/prometheus/client_golang/prometheus/gauge.go
index 71d406bd92..17c72d7eb0 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/gauge.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/gauge.go
@@ -147,7 +147,7 @@ func NewGaugeVec(opts GaugeOpts, labelNames []string) *GaugeVec {
return &GaugeVec{
metricVec: newMetricVec(desc, func(lvs ...string) Metric {
if len(lvs) != len(desc.variableLabels) {
- panic(makeInconsistentCardinalityError(desc.fqName, desc.variableLabels, lvs))
+ panic(errInconsistentCardinality)
}
result := &gauge{desc: desc, labelPairs: makeLabelPairs(desc, lvs)}
result.init(result) // Init self-collection.
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/histogram.go b/vendor/github.com/prometheus/client_golang/prometheus/histogram.go
index f88da707bc..4d7fa976e4 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/histogram.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/histogram.go
@@ -165,7 +165,7 @@ func NewHistogram(opts HistogramOpts) Histogram {
func newHistogram(desc *Desc, opts HistogramOpts, labelValues ...string) Histogram {
if len(desc.variableLabels) != len(labelValues) {
- panic(makeInconsistentCardinalityError(desc.fqName, desc.variableLabels, labelValues))
+ panic(errInconsistentCardinality)
}
for _, n := range desc.variableLabels {
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/http.go b/vendor/github.com/prometheus/client_golang/prometheus/http.go
index 9f0875bfc8..4b8e602733 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/http.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/http.go
@@ -15,7 +15,9 @@ package prometheus
import (
"bufio"
+ "bytes"
"compress/gzip"
+ "fmt"
"io"
"net"
"net/http"
@@ -39,10 +41,19 @@ const (
acceptEncodingHeader = "Accept-Encoding"
)
-var gzipPool = sync.Pool{
- New: func() interface{} {
- return gzip.NewWriter(nil)
- },
+var bufPool sync.Pool
+
+func getBuf() *bytes.Buffer {
+ buf := bufPool.Get()
+ if buf == nil {
+ return &bytes.Buffer{}
+ }
+ return buf.(*bytes.Buffer)
+}
+
+func giveBuf(buf *bytes.Buffer) {
+ buf.Reset()
+ bufPool.Put(buf)
}
// Handler returns an HTTP handler for the DefaultGatherer. It is
@@ -60,40 +71,58 @@ func Handler() http.Handler {
// Deprecated: Use promhttp.HandlerFor(DefaultGatherer, promhttp.HandlerOpts{})
// instead. See there for further documentation.
func UninstrumentedHandler() http.Handler {
- return http.HandlerFunc(func(rsp http.ResponseWriter, req *http.Request) {
+ return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
mfs, err := DefaultGatherer.Gather()
if err != nil {
- httpError(rsp, err)
+ http.Error(w, "An error has occurred during metrics collection:\n\n"+err.Error(), http.StatusInternalServerError)
return
}
contentType := expfmt.Negotiate(req.Header)
- header := rsp.Header()
- header.Set(contentTypeHeader, string(contentType))
-
- w := io.Writer(rsp)
- if gzipAccepted(req.Header) {
- header.Set(contentEncodingHeader, "gzip")
- gz := gzipPool.Get().(*gzip.Writer)
- defer gzipPool.Put(gz)
-
- gz.Reset(w)
- defer gz.Close()
-
- w = gz
- }
-
- enc := expfmt.NewEncoder(w, contentType)
-
+ buf := getBuf()
+ defer giveBuf(buf)
+ writer, encoding := decorateWriter(req, buf)
+ enc := expfmt.NewEncoder(writer, contentType)
+ var lastErr error
for _, mf := range mfs {
if err := enc.Encode(mf); err != nil {
- httpError(rsp, err)
+ lastErr = err
+ http.Error(w, "An error has occurred during metrics encoding:\n\n"+err.Error(), http.StatusInternalServerError)
return
}
}
+ if closer, ok := writer.(io.Closer); ok {
+ closer.Close()
+ }
+ if lastErr != nil && buf.Len() == 0 {
+ http.Error(w, "No metrics encoded, last error:\n\n"+lastErr.Error(), http.StatusInternalServerError)
+ return
+ }
+ header := w.Header()
+ header.Set(contentTypeHeader, string(contentType))
+ header.Set(contentLengthHeader, fmt.Sprint(buf.Len()))
+ if encoding != "" {
+ header.Set(contentEncodingHeader, encoding)
+ }
+ w.Write(buf.Bytes())
})
}
+// decorateWriter wraps a writer to handle gzip compression if requested. It
+// returns the decorated writer and the appropriate "Content-Encoding" header
+// (which is empty if no compression is enabled).
+func decorateWriter(request *http.Request, writer io.Writer) (io.Writer, string) {
+ header := request.Header.Get(acceptEncodingHeader)
+ parts := strings.Split(header, ",")
+ for _, part := range parts {
+ part = strings.TrimSpace(part)
+ if part == "gzip" || strings.HasPrefix(part, "gzip;") {
+ return gzip.NewWriter(writer), "gzip"
+ }
+ }
+ return writer, ""
+}
+
var instLabels = []string{"method", "code"}
type nower interface {
@@ -474,31 +503,3 @@ func sanitizeCode(s int) string {
return strconv.Itoa(s)
}
}
-
-// gzipAccepted returns whether the client will accept gzip-encoded content.
-func gzipAccepted(header http.Header) bool {
- a := header.Get(acceptEncodingHeader)
- parts := strings.Split(a, ",")
- for _, part := range parts {
- part = strings.TrimSpace(part)
- if part == "gzip" || strings.HasPrefix(part, "gzip;") {
- return true
- }
- }
- return false
-}
-
-// httpError removes any content-encoding header and then calls http.Error with
-// the provided error and http.StatusInternalServerErrer. Error contents is
-// supposed to be uncompressed plain text. However, same as with a plain
-// http.Error, any header settings will be void if the header has already been
-// sent. The error message will still be written to the writer, but it will
-// probably be of limited use.
-func httpError(rsp http.ResponseWriter, err error) {
- rsp.Header().Del(contentEncodingHeader)
- http.Error(
- rsp,
- "An error has occurred while serving metrics:\n\n"+err.Error(),
- http.StatusInternalServerError,
- )
-}
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/labels.go b/vendor/github.com/prometheus/client_golang/prometheus/labels.go
index 2744443ac2..e68f132ece 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/labels.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/labels.go
@@ -37,22 +37,9 @@ const reservedLabelPrefix = "__"
var errInconsistentCardinality = errors.New("inconsistent label cardinality")
-func makeInconsistentCardinalityError(fqName string, labels, labelValues []string) error {
- return fmt.Errorf(
- "%s: %q has %d variable labels named %q but %d values %q were provided",
- errInconsistentCardinality, fqName,
- len(labels), labels,
- len(labelValues), labelValues,
- )
-}
-
func validateValuesInLabels(labels Labels, expectedNumberOfValues int) error {
if len(labels) != expectedNumberOfValues {
- return fmt.Errorf(
- "%s: expected %d label values but got %d in %#v",
- errInconsistentCardinality, expectedNumberOfValues,
- len(labels), labels,
- )
+ return errInconsistentCardinality
}
for name, val := range labels {
@@ -66,11 +53,7 @@ func validateValuesInLabels(labels Labels, expectedNumberOfValues int) error {
func validateLabelValues(vals []string, expectedNumberOfValues int) error {
if len(vals) != expectedNumberOfValues {
- return fmt.Errorf(
- "%s: expected %d label values but got %d in %#v",
- errInconsistentCardinality, expectedNumberOfValues,
- len(vals), vals,
- )
+ return errInconsistentCardinality
}
for _, val := range vals {
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go
index 668eb6b3c9..01357374fe 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go
@@ -32,6 +32,7 @@
package promhttp
import (
+ "bytes"
"compress/gzip"
"fmt"
"io"
@@ -52,10 +53,19 @@ const (
acceptEncodingHeader = "Accept-Encoding"
)
-var gzipPool = sync.Pool{
- New: func() interface{} {
- return gzip.NewWriter(nil)
- },
+var bufPool sync.Pool
+
+func getBuf() *bytes.Buffer {
+ buf := bufPool.Get()
+ if buf == nil {
+ return &bytes.Buffer{}
+ }
+ return buf.(*bytes.Buffer)
+}
+
+func giveBuf(buf *bytes.Buffer) {
+ buf.Reset()
+ bufPool.Put(buf)
}
// Handler returns an http.Handler for the prometheus.DefaultGatherer, using
@@ -90,18 +100,19 @@ func HandlerFor(reg prometheus.Gatherer, opts HandlerOpts) http.Handler {
inFlightSem = make(chan struct{}, opts.MaxRequestsInFlight)
}
- h := http.HandlerFunc(func(rsp http.ResponseWriter, req *http.Request) {
+ h := http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
if inFlightSem != nil {
select {
case inFlightSem <- struct{}{}: // All good, carry on.
defer func() { <-inFlightSem }()
default:
- http.Error(rsp, fmt.Sprintf(
+ http.Error(w, fmt.Sprintf(
"Limit of concurrent requests reached (%d), try again later.", opts.MaxRequestsInFlight,
), http.StatusServiceUnavailable)
return
}
}
+
mfs, err := reg.Gather()
if err != nil {
if opts.ErrorLog != nil {
@@ -112,40 +123,26 @@ func HandlerFor(reg prometheus.Gatherer, opts HandlerOpts) http.Handler {
panic(err)
case ContinueOnError:
if len(mfs) == 0 {
- // Still report the error if no metrics have been gathered.
- httpError(rsp, err)
+ http.Error(w, "No metrics gathered, last error:\n\n"+err.Error(), http.StatusInternalServerError)
return
}
case HTTPErrorOnError:
- httpError(rsp, err)
+ http.Error(w, "An error has occurred during metrics gathering:\n\n"+err.Error(), http.StatusInternalServerError)
return
}
}
contentType := expfmt.Negotiate(req.Header)
- header := rsp.Header()
- header.Set(contentTypeHeader, string(contentType))
-
- w := io.Writer(rsp)
- if !opts.DisableCompression && gzipAccepted(req.Header) {
- header.Set(contentEncodingHeader, "gzip")
- gz := gzipPool.Get().(*gzip.Writer)
- defer gzipPool.Put(gz)
-
- gz.Reset(w)
- defer gz.Close()
-
- w = gz
- }
-
- enc := expfmt.NewEncoder(w, contentType)
-
+ buf := getBuf()
+ defer giveBuf(buf)
+ writer, encoding := decorateWriter(req, buf, opts.DisableCompression)
+ enc := expfmt.NewEncoder(writer, contentType)
var lastErr error
for _, mf := range mfs {
if err := enc.Encode(mf); err != nil {
lastErr = err
if opts.ErrorLog != nil {
- opts.ErrorLog.Println("error encoding and sending metric family:", err)
+ opts.ErrorLog.Println("error encoding metric family:", err)
}
switch opts.ErrorHandling {
case PanicOnError:
@@ -153,15 +150,28 @@ func HandlerFor(reg prometheus.Gatherer, opts HandlerOpts) http.Handler {
case ContinueOnError:
// Handled later.
case HTTPErrorOnError:
- httpError(rsp, err)
+ http.Error(w, "An error has occurred during metrics encoding:\n\n"+err.Error(), http.StatusInternalServerError)
return
}
}
}
-
- if lastErr != nil {
- httpError(rsp, lastErr)
+ if closer, ok := writer.(io.Closer); ok {
+ closer.Close()
+ }
+ if lastErr != nil && buf.Len() == 0 {
+ http.Error(w, "No metrics encoded, last error:\n\n"+lastErr.Error(), http.StatusInternalServerError)
+ return
+ }
+ header := w.Header()
+ header.Set(contentTypeHeader, string(contentType))
+ header.Set(contentLengthHeader, fmt.Sprint(buf.Len()))
+ if encoding != "" {
+ header.Set(contentEncodingHeader, encoding)
}
+ if _, err := w.Write(buf.Bytes()); err != nil && opts.ErrorLog != nil {
+ opts.ErrorLog.Println("error while sending encoded metrics:", err)
+ }
+ // TODO(beorn7): Consider streaming serving of metrics.
})
if opts.Timeout <= 0 {
@@ -282,30 +292,20 @@ type HandlerOpts struct {
Timeout time.Duration
}
-// gzipAccepted returns whether the client will accept gzip-encoded content.
-func gzipAccepted(header http.Header) bool {
- a := header.Get(acceptEncodingHeader)
- parts := strings.Split(a, ",")
+// decorateWriter wraps a writer to handle gzip compression if requested. It
+// returns the decorated writer and the appropriate "Content-Encoding" header
+// (which is empty if no compression is enabled).
+func decorateWriter(request *http.Request, writer io.Writer, compressionDisabled bool) (io.Writer, string) {
+ if compressionDisabled {
+ return writer, ""
+ }
+ header := request.Header.Get(acceptEncodingHeader)
+ parts := strings.Split(header, ",")
for _, part := range parts {
part = strings.TrimSpace(part)
if part == "gzip" || strings.HasPrefix(part, "gzip;") {
- return true
+ return gzip.NewWriter(writer), "gzip"
}
}
- return false
-}
-
-// httpError removes any content-encoding header and then calls http.Error with
-// the provided error and http.StatusInternalServerErrer. Error contents is
-// supposed to be uncompressed plain text. However, same as with a plain
-// http.Error, any header settings will be void if the header has already been
-// sent. The error message will still be written to the writer, but it will
-// probably be of limited use.
-func httpError(rsp http.ResponseWriter, err error) {
- rsp.Header().Del(contentEncodingHeader)
- http.Error(
- rsp,
- "An error has occurred while serving metrics:\n\n"+err.Error(),
- http.StatusInternalServerError,
- )
+ return writer, ""
}
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/registry.go b/vendor/github.com/prometheus/client_golang/prometheus/registry.go
index b5e70b93fa..e422ef3834 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/registry.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/registry.go
@@ -16,9 +16,6 @@ package prometheus
import (
"bytes"
"fmt"
- "io/ioutil"
- "os"
- "path/filepath"
"runtime"
"sort"
"strings"
@@ -26,7 +23,6 @@ import (
"unicode/utf8"
"github.com/golang/protobuf/proto"
- "github.com/prometheus/common/expfmt"
dto "github.com/prometheus/client_model/go"
@@ -537,38 +533,6 @@ func (r *Registry) Gather() ([]*dto.MetricFamily, error) {
return internal.NormalizeMetricFamilies(metricFamiliesByName), errs.MaybeUnwrap()
}
-// WriteToTextfile calls Gather on the provided Gatherer, encodes the result in the
-// Prometheus text format, and writes it to a temporary file. Upon success, the
-// temporary file is renamed to the provided filename.
-//
-// This is intended for use with the textfile collector of the node exporter.
-// Note that the node exporter expects the filename to be suffixed with ".prom".
-func WriteToTextfile(filename string, g Gatherer) error {
- tmp, err := ioutil.TempFile(filepath.Dir(filename), filepath.Base(filename))
- if err != nil {
- return err
- }
- defer os.Remove(tmp.Name())
-
- mfs, err := g.Gather()
- if err != nil {
- return err
- }
- for _, mf := range mfs {
- if _, err := expfmt.MetricFamilyToText(tmp, mf); err != nil {
- return err
- }
- }
- if err := tmp.Close(); err != nil {
- return err
- }
-
- if err := os.Chmod(tmp.Name(), 0644); err != nil {
- return err
- }
- return os.Rename(tmp.Name(), filename)
-}
-
// processMetric is an internal helper method only used by the Gather method.
func processMetric(
metric Metric,
@@ -872,13 +836,7 @@ func checkMetricConsistency(
h = hashAddByte(h, separatorByte)
// Make sure label pairs are sorted. We depend on it for the consistency
// check.
- if !sort.IsSorted(labelPairSorter(dtoMetric.Label)) {
- // We cannot sort dtoMetric.Label in place as it is immutable by contract.
- copiedLabels := make([]*dto.LabelPair, len(dtoMetric.Label))
- copy(copiedLabels, dtoMetric.Label)
- sort.Sort(labelPairSorter(copiedLabels))
- dtoMetric.Label = copiedLabels
- }
+ sort.Sort(labelPairSorter(dtoMetric.Label))
for _, lp := range dtoMetric.Label {
h = hashAdd(h, lp.GetName())
h = hashAddByte(h, separatorByte)
@@ -909,8 +867,8 @@ func checkDescConsistency(
}
// Is the desc consistent with the content of the metric?
- lpsFromDesc := make([]*dto.LabelPair, len(desc.constLabelPairs), len(dtoMetric.Label))
- copy(lpsFromDesc, desc.constLabelPairs)
+ lpsFromDesc := make([]*dto.LabelPair, 0, len(dtoMetric.Label))
+ lpsFromDesc = append(lpsFromDesc, desc.constLabelPairs...)
for _, l := range desc.variableLabels {
lpsFromDesc = append(lpsFromDesc, &dto.LabelPair{
Name: proto.String(l),
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/summary.go b/vendor/github.com/prometheus/client_golang/prometheus/summary.go
index 2980614dff..f7e92d8294 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/summary.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/summary.go
@@ -181,7 +181,7 @@ func NewSummary(opts SummaryOpts) Summary {
func newSummary(desc *Desc, opts SummaryOpts, labelValues ...string) Summary {
if len(desc.variableLabels) != len(labelValues) {
- panic(makeInconsistentCardinalityError(desc.fqName, desc.variableLabels, labelValues))
+ panic(errInconsistentCardinality)
}
for _, n := range desc.variableLabels {
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/testutil/testutil.go b/vendor/github.com/prometheus/client_golang/prometheus/testutil/testutil.go
index e344cc853c..d148af9b85 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/testutil/testutil.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/testutil/testutil.go
@@ -37,6 +37,7 @@ import (
"bytes"
"fmt"
"io"
+ "reflect"
"github.com/prometheus/common/expfmt"
@@ -124,43 +125,38 @@ func CollectAndCompare(c prometheus.Collector, expected io.Reader, metricNames .
// exposition format. If any metricNames are provided, only metrics with those
// names are compared.
func GatherAndCompare(g prometheus.Gatherer, expected io.Reader, metricNames ...string) error {
- got, err := g.Gather()
+ metrics, err := g.Gather()
if err != nil {
return fmt.Errorf("gathering metrics failed: %s", err)
}
if metricNames != nil {
- got = filterMetrics(got, metricNames)
+ metrics = filterMetrics(metrics, metricNames)
}
var tp expfmt.TextParser
- wantRaw, err := tp.TextToMetricFamilies(expected)
+ expectedMetrics, err := tp.TextToMetricFamilies(expected)
if err != nil {
return fmt.Errorf("parsing expected metrics failed: %s", err)
}
- want := internal.NormalizeMetricFamilies(wantRaw)
- return compare(got, want)
-}
-
-// compare encodes both provided slices of metric families into the text format,
-// compares their string message, and returns an error if they do not match.
-// The error contains the encoded text of both the desired and the actual
-// result.
-func compare(got, want []*dto.MetricFamily) error {
- var gotBuf, wantBuf bytes.Buffer
- enc := expfmt.NewEncoder(&gotBuf, expfmt.FmtText)
- for _, mf := range got {
- if err := enc.Encode(mf); err != nil {
- return fmt.Errorf("encoding gathered metrics failed: %s", err)
+ if !reflect.DeepEqual(metrics, internal.NormalizeMetricFamilies(expectedMetrics)) {
+ // Encode the gathered output to the readable text format for comparison.
+ var buf1 bytes.Buffer
+ enc := expfmt.NewEncoder(&buf1, expfmt.FmtText)
+ for _, mf := range metrics {
+ if err := enc.Encode(mf); err != nil {
+ return fmt.Errorf("encoding result failed: %s", err)
+ }
}
- }
- enc = expfmt.NewEncoder(&wantBuf, expfmt.FmtText)
- for _, mf := range want {
- if err := enc.Encode(mf); err != nil {
- return fmt.Errorf("encoding expected metrics failed: %s", err)
+ // Encode normalized expected metrics again to generate them in the same ordering
+ // the registry does to spot differences more easily.
+ var buf2 bytes.Buffer
+ enc = expfmt.NewEncoder(&buf2, expfmt.FmtText)
+ for _, mf := range internal.NormalizeMetricFamilies(expectedMetrics) {
+ if err := enc.Encode(mf); err != nil {
+ return fmt.Errorf("encoding result failed: %s", err)
+ }
}
- }
- if wantBuf.String() != gotBuf.String() {
return fmt.Errorf(`
metric output does not match expectation; want:
@@ -169,8 +165,7 @@ metric output does not match expectation; want:
got:
%s
-`, wantBuf.String(), gotBuf.String())
-
+`, buf2.String(), buf1.String())
}
return nil
}
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/timer.go b/vendor/github.com/prometheus/client_golang/prometheus/timer.go
index 8d5f105233..b8fc5f18c8 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/timer.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/timer.go
@@ -39,16 +39,13 @@ func NewTimer(o Observer) *Timer {
// ObserveDuration records the duration passed since the Timer was created with
// NewTimer. It calls the Observe method of the Observer provided during
-// construction with the duration in seconds as an argument. The observed
-// duration is also returned. ObserveDuration is usually called with a defer
-// statement.
+// construction with the duration in seconds as an argument. ObserveDuration is
+// usually called with a defer statement.
//
// Note that this method is only guaranteed to never observe negative durations
// if used with Go1.9+.
-func (t *Timer) ObserveDuration() time.Duration {
- d := time.Since(t.begin)
+func (t *Timer) ObserveDuration() {
if t.observer != nil {
- t.observer.Observe(d.Seconds())
+ t.observer.Observe(time.Since(t.begin).Seconds())
}
- return d
}
diff --git a/vendor/github.com/prometheus/common/expfmt/text_create.go b/vendor/github.com/prometheus/common/expfmt/text_create.go
index 16655d417c..8e473d0fe9 100644
--- a/vendor/github.com/prometheus/common/expfmt/text_create.go
+++ b/vendor/github.com/prometheus/common/expfmt/text_create.go
@@ -436,11 +436,11 @@ func writeEscapedString(w enhancedWriter, v string, includeDoubleQuote bool) (in
func writeFloat(w enhancedWriter, f float64) (int, error) {
switch {
case f == 1:
- return w.WriteString("1.0")
+ return 1, w.WriteByte('1')
case f == 0:
- return w.WriteString("0.0")
+ return 1, w.WriteByte('0')
case f == -1:
- return w.WriteString("-1.0")
+ return w.WriteString("-1")
case math.IsNaN(f):
return w.WriteString("NaN")
case math.IsInf(f, +1):
@@ -450,12 +450,6 @@ func writeFloat(w enhancedWriter, f float64) (int, error) {
default:
bp := numBufPool.Get().(*[]byte)
*bp = strconv.AppendFloat((*bp)[:0], f, 'g', -1, 64)
- // Add a .0 if used fixed point and there is no decimal
- // point already. This is for future proofing with OpenMetrics,
- // where floats always contain either an exponent or decimal.
- if !bytes.ContainsAny(*bp, "e.") {
- *bp = append(*bp, '.', '0')
- }
written, err := w.Write(*bp)
numBufPool.Put(bp)
return written, err
diff --git a/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/autoneg.go b/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/autoneg.go
index 648b38cb65..26e92288c7 100644
--- a/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/autoneg.go
+++ b/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/autoneg.go
@@ -1,12 +1,12 @@
/*
+Copyright (c) 2011, Open Knowledge Foundation Ltd.
+All rights reserved.
+
HTTP Content-Type Autonegotiation.
The functions in this package implement the behaviour specified in
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
-Copyright (c) 2011, Open Knowledge Foundation Ltd.
-All rights reserved.
-
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
diff --git a/vendor/github.com/prometheus/common/model/metric.go b/vendor/github.com/prometheus/common/model/metric.go
index f7250909b9..00804b7fed 100644
--- a/vendor/github.com/prometheus/common/model/metric.go
+++ b/vendor/github.com/prometheus/common/model/metric.go
@@ -21,7 +21,6 @@ import (
)
var (
- separator = []byte{0}
// MetricNameRE is a regular expression matching valid metric
// names. Note that the IsValidMetricName function performs the same
// check but faster than a match with this regular expression.
diff --git a/vendor/github.com/prometheus/common/route/route.go b/vendor/github.com/prometheus/common/route/route.go
index 66c9d48f91..ec45bdfe69 100644
--- a/vendor/github.com/prometheus/common/route/route.go
+++ b/vendor/github.com/prometheus/common/route/route.go
@@ -1,3 +1,16 @@
+// Copyright 2015 The Prometheus Authors
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
package route
import (
diff --git a/vendor/github.com/prometheus/procfs/diskstats.go b/vendor/github.com/prometheus/procfs/diskstats.go
new file mode 100644
index 0000000000..a116cf3954
--- /dev/null
+++ b/vendor/github.com/prometheus/procfs/diskstats.go
@@ -0,0 +1,81 @@
+// Copyright 2018 The Prometheus Authors
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package procfs
+
+import (
+ "bufio"
+ "fmt"
+ "io"
+ "os"
+
+ "github.com/prometheus/procfs/iostats"
+)
+
+const (
+ diskstatsFilename = "diskstats"
+ statFormat = "%d %d %s %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d"
+)
+
+// NewDiskstats reads the diskstats file and returns
+// an array of Diskstats (one per line/device)
+func NewDiskstats() ([]iostats.IODeviceStats, error) {
+ fs, err := NewFS(DefaultMountPoint)
+ if err != nil {
+ return nil, err
+ }
+
+ return fs.NewDiskstats()
+}
+
+// NewDiskstats reads the diskstats file and returns
+// an array of Diskstats (one per line/device)
+func (fs FS) NewDiskstats() ([]iostats.IODeviceStats, error) {
+ file, err := os.Open(fs.Path(diskstatsFilename))
+ if err != nil {
+ return nil, err
+ }
+ defer file.Close()
+
+ diskstats := []iostats.IODeviceStats{}
+ scanner := bufio.NewScanner(file)
+ for scanner.Scan() {
+ d := &iostats.IODeviceStats{}
+ count, err := fmt.Sscanf(scanner.Text(), statFormat,
+ &d.MajorNumber,
+ &d.MinorNumber,
+ &d.DeviceName,
+ &d.ReadIOs,
+ &d.ReadMerges,
+ &d.ReadSectors,
+ &d.ReadTicks,
+ &d.WriteIOs,
+ &d.WriteMerges,
+ &d.WriteSectors,
+ &d.WriteTicks,
+ &d.IOsInProgress,
+ &d.IOsTotalTicks,
+ &d.WeightedIOTicks,
+ &d.DiscardIOs,
+ &d.DiscardMerges,
+ &d.DiscardSectors,
+ &d.DiscardTicks)
+ if err != nil && err != io.EOF {
+ return diskstats, err
+ }
+ if count == 14 || count == 18 {
+ diskstats = append(diskstats, *d)
+ }
+ }
+ return diskstats, nil
+}
diff --git a/vendor/github.com/prometheus/procfs/internal/util/parse.go b/vendor/github.com/prometheus/procfs/internal/util/parse.go
index 2ff228e9d1..ca74889a1b 100644
--- a/vendor/github.com/prometheus/procfs/internal/util/parse.go
+++ b/vendor/github.com/prometheus/procfs/internal/util/parse.go
@@ -57,3 +57,17 @@ func ReadUintFromFile(path string) (uint64, error) {
}
return strconv.ParseUint(strings.TrimSpace(string(data)), 10, 64)
}
+
+// ParseBool parses a string into a boolean pointer.
+func ParseBool(b string) *bool {
+ var truth bool
+ switch b {
+ case "enabled":
+ truth = true
+ case "disabled":
+ truth = false
+ default:
+ return nil
+ }
+ return &truth
+}
diff --git a/vendor/github.com/prometheus/procfs/iostats/iostats.go b/vendor/github.com/prometheus/procfs/iostats/iostats.go
new file mode 100644
index 0000000000..97e8314762
--- /dev/null
+++ b/vendor/github.com/prometheus/procfs/iostats/iostats.go
@@ -0,0 +1,67 @@
+// Copyright 2018 The Prometheus Authors
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package iostats
+
+// IODevice contains identifying information for an I/O device
+type IODevice struct {
+ MajorNumber uint32
+ MinorNumber uint32
+ DeviceName string
+}
+
+// IOStats models the iostats data described in the kernel documentation
+// https://www.kernel.org/doc/Documentation/iostats.txt,
+// https://www.kernel.org/doc/Documentation/block/stat.txt,
+// and https://www.kernel.org/doc/Documentation/ABI/testing/procfs-diskstats
+type IOStats struct {
+ // ReadIOs is the number of reads completed successfully.
+ ReadIOs uint64
+ // ReadMerges is the number of reads merged. Reads and writes
+ // which are adjacent to each other may be merged for efficiency.
+ ReadMerges uint64
+ // ReadSectors is the total number of sectors read successfully.
+ ReadSectors uint64
+ // ReadTicks is the total number of milliseconds spent by all reads.
+ ReadTicks uint64
+ // WriteIOs is the total number of writes completed successfully.
+ WriteIOs uint64
+ // WriteMerges is the number of reads merged.
+ WriteMerges uint64
+ // WriteSectors is the total number of sectors written successfully.
+ WriteSectors uint64
+ // WriteTicks is the total number of milliseconds spent by all writes.
+ WriteTicks uint64
+ // IOsInProgress is number of I/Os currently in progress.
+ IOsInProgress uint64
+ // IOsTotalTicks is the number of milliseconds spent doing I/Os.
+ // This field increases so long as IosInProgress is nonzero.
+ IOsTotalTicks uint64
+ // WeightedIOTicks is the weighted number of milliseconds spent doing I/Os.
+ // This can also be used to estimate average queue wait time for requests.
+ WeightedIOTicks uint64
+ // DiscardIOs is the total number of discards completed successfully.
+ DiscardIOs uint64
+ // DiscardMerges is the number of discards merged.
+ DiscardMerges uint64
+ // DiscardSectors is the total number of sectors discarded successfully.
+ DiscardSectors uint64
+ // DiscardTicks is the total number of milliseconds spent by all discards.
+ DiscardTicks uint64
+}
+
+// IODeviceStats combines IODevice and IOStats
+type IODeviceStats struct {
+ IODevice
+ IOStats
+}
diff --git a/vendor/github.com/prometheus/procfs/mountstats.go b/vendor/github.com/prometheus/procfs/mountstats.go
index 7a8a1e0990..fc385afcfe 100644
--- a/vendor/github.com/prometheus/procfs/mountstats.go
+++ b/vendor/github.com/prometheus/procfs/mountstats.go
@@ -69,6 +69,8 @@ type MountStats interface {
type MountStatsNFS struct {
// The version of statistics provided.
StatVersion string
+ // The optional mountaddr of the NFS mount.
+ MountAddress string
// The age of the NFS mount.
Age time.Duration
// Statistics related to byte counters for various operations.
@@ -317,6 +319,7 @@ func parseMount(ss []string) (*Mount, error) {
func parseMountStatsNFS(s *bufio.Scanner, statVersion string) (*MountStatsNFS, error) {
// Field indicators for parsing specific types of data
const (
+ fieldOpts = "opts:"
fieldAge = "age:"
fieldBytes = "bytes:"
fieldEvents = "events:"
@@ -338,6 +341,13 @@ func parseMountStatsNFS(s *bufio.Scanner, statVersion string) (*MountStatsNFS, e
}
switch ss[0] {
+ case fieldOpts:
+ for _, opt := range strings.Split(ss[1], ",") {
+ split := strings.Split(opt, "=")
+ if len(split) == 2 && split[0] == "mountaddr" {
+ stats.MountAddress = split[1]
+ }
+ }
case fieldAge:
// Age integer is in seconds
d, err := time.ParseDuration(ss[1] + "s")
diff --git a/vendor/github.com/prometheus/procfs/proc_psi.go b/vendor/github.com/prometheus/procfs/proc_psi.go
new file mode 100644
index 0000000000..4f11cdbdbe
--- /dev/null
+++ b/vendor/github.com/prometheus/procfs/proc_psi.go
@@ -0,0 +1,110 @@
+// Copyright 2019 The Prometheus Authors
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package procfs
+
+// The PSI / pressure interface is described at
+// https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/accounting/psi.txt
+// Each resource (cpu, io, memory, ...) is exposed as a single file.
+// Each file may contain up to two lines, one for "some" pressure and one for "full" pressure.
+// Each line contains several averages (over n seconds) and a total in µs.
+//
+// Example io pressure file:
+// > some avg10=0.06 avg60=0.21 avg300=0.99 total=8537362
+// > full avg10=0.00 avg60=0.13 avg300=0.96 total=8183134
+
+import (
+ "fmt"
+ "io"
+ "io/ioutil"
+ "os"
+ "strings"
+)
+
+const lineFormat = "avg10=%f avg60=%f avg300=%f total=%d"
+
+// PSILine is a single line of values as returned by /proc/pressure/*
+// The Avg entries are averages over n seconds, as a percentage
+// The Total line is in microseconds
+type PSILine struct {
+ Avg10 float64
+ Avg60 float64
+ Avg300 float64
+ Total uint64
+}
+
+// PSIStats represent pressure stall information from /proc/pressure/*
+// Some indicates the share of time in which at least some tasks are stalled
+// Full indicates the share of time in which all non-idle tasks are stalled simultaneously
+type PSIStats struct {
+ Some *PSILine
+ Full *PSILine
+}
+
+// NewPSIStatsForResource reads pressure stall information for the specified
+// resource. At time of writing this can be either "cpu", "memory" or "io".
+func NewPSIStatsForResource(resource string) (PSIStats, error) {
+ fs, err := NewFS(DefaultMountPoint)
+ if err != nil {
+ return PSIStats{}, err
+ }
+
+ return fs.NewPSIStatsForResource(resource)
+}
+
+// NewPSIStatsForResource reads pressure stall information from /proc/pressure/
+func (fs FS) NewPSIStatsForResource(resource string) (PSIStats, error) {
+ file, err := os.Open(fs.Path(fmt.Sprintf("%s/%s", "pressure", resource)))
+ if err != nil {
+ return PSIStats{}, fmt.Errorf("psi_stats: unavailable for %s", resource)
+ }
+
+ defer file.Close()
+ return parsePSIStats(resource, file)
+}
+
+// parsePSIStats parses the specified file for pressure stall information
+func parsePSIStats(resource string, file io.Reader) (PSIStats, error) {
+ psiStats := PSIStats{}
+ stats, err := ioutil.ReadAll(file)
+ if err != nil {
+ return psiStats, fmt.Errorf("psi_stats: unable to read data for %s", resource)
+ }
+
+ for _, l := range strings.Split(string(stats), "\n") {
+ prefix := strings.Split(l, " ")[0]
+ switch prefix {
+ case "some":
+ psi := PSILine{}
+ _, err := fmt.Sscanf(l, fmt.Sprintf("some %s", lineFormat), &psi.Avg10, &psi.Avg60, &psi.Avg300, &psi.Total)
+ if err != nil {
+ return PSIStats{}, err
+ }
+ psiStats.Some = &psi
+ case "full":
+ psi := PSILine{}
+ _, err := fmt.Sscanf(l, fmt.Sprintf("full %s", lineFormat), &psi.Avg10, &psi.Avg60, &psi.Avg300, &psi.Total)
+ if err != nil {
+ return PSIStats{}, err
+ }
+ psiStats.Full = &psi
+ default:
+ // If we encounter a line with an unknown prefix, ignore it and move on
+ // Should new measurement types be added in the future we'll simply ignore them instead
+ // of erroring on retrieval
+ continue
+ }
+ }
+
+ return psiStats, nil
+}
diff --git a/vendor/github.com/prometheus/procfs/proc_stat.go b/vendor/github.com/prometheus/procfs/proc_stat.go
index 3cf2a9f18f..e7c626a8e8 100644
--- a/vendor/github.com/prometheus/procfs/proc_stat.go
+++ b/vendor/github.com/prometheus/procfs/proc_stat.go
@@ -95,7 +95,7 @@ type ProcStat struct {
// in clock ticks.
Starttime uint64
// Virtual memory size in bytes.
- VSize int
+ VSize uint
// Resident set size in pages.
RSS int
@@ -164,7 +164,7 @@ func (p Proc) NewStat() (ProcStat, error) {
}
// VirtualMemory returns the virtual memory size in bytes.
-func (s ProcStat) VirtualMemory() int {
+func (s ProcStat) VirtualMemory() uint {
return s.VSize
}
diff --git a/vendor/github.com/prometheus/procfs/sysfs/block_device.go b/vendor/github.com/prometheus/procfs/sysfs/block_device.go
new file mode 100644
index 0000000000..693952996b
--- /dev/null
+++ b/vendor/github.com/prometheus/procfs/sysfs/block_device.go
@@ -0,0 +1,81 @@
+// Copyright 2018 The Prometheus Authors
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// +build !windows
+
+package sysfs
+
+import (
+ "fmt"
+ "io/ioutil"
+ "strings"
+
+ "github.com/prometheus/procfs/iostats"
+)
+
+const (
+ blockPath = "block"
+ blockDeviceStatFormat = "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d"
+)
+
+// BlockDevice represents block device in the sys filesystem
+// Docs here: https://www.kernel.org/doc/Documentation/block/
+type BlockDevice struct {
+ DeviceName string
+ fs FS
+}
+
+// AllBlockDevices gets the list of block devices from the sys file system
+func (fs FS) AllBlockDevices() ([]BlockDevice, error) {
+ deviceDirs, err := ioutil.ReadDir(fs.Path(blockPath))
+ if err != nil {
+ return nil, err
+ }
+ devices := []BlockDevice{}
+ for _, deviceDir := range deviceDirs {
+ if deviceDir.IsDir() {
+ devices = append(devices, BlockDevice{deviceDir.Name(), fs})
+ }
+ }
+ return devices, nil
+}
+
+// NewBlockDeviceStat returns stats for the block device read from /sys/block//stat.
+func (d BlockDevice) NewBlockDeviceStat() (iostats.IOStats, error) {
+ stat := iostats.IOStats{}
+ bytes, err := ioutil.ReadFile(d.fs.Path(blockPath, d.DeviceName, "stat"))
+ if err != nil {
+ return stat, err
+ }
+ count, err := fmt.Sscanf(strings.TrimSpace(string(bytes)), blockDeviceStatFormat,
+ &stat.ReadIOs,
+ &stat.ReadMerges,
+ &stat.ReadSectors,
+ &stat.ReadTicks,
+ &stat.WriteIOs,
+ &stat.WriteMerges,
+ &stat.WriteSectors,
+ &stat.WriteTicks,
+ &stat.IOsInProgress,
+ &stat.IOsTotalTicks,
+ &stat.WeightedIOTicks,
+ &stat.DiscardIOs,
+ &stat.DiscardMerges,
+ &stat.DiscardSectors,
+ &stat.DiscardTicks,
+ )
+ if count == 11 || count == 15 {
+ return stat, nil
+ }
+ return iostats.IOStats{}, err
+}
diff --git a/vendor/github.com/prometheus/procfs/sysfs/class_power_supply.go b/vendor/github.com/prometheus/procfs/sysfs/class_power_supply.go
new file mode 100644
index 0000000000..9c250270ae
--- /dev/null
+++ b/vendor/github.com/prometheus/procfs/sysfs/class_power_supply.go
@@ -0,0 +1,188 @@
+// Copyright 2018 The Prometheus Authors
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// +build !windows
+
+package sysfs
+
+import (
+ "fmt"
+ "io/ioutil"
+ "os"
+ "reflect"
+ "strconv"
+ "strings"
+
+ "github.com/prometheus/procfs/internal/util"
+)
+
+// PowerSupply contains info from files in /sys/class/power_supply for a single power supply.
+type PowerSupply struct {
+ Name string // Power Supply Name
+ Authentic *int64 `fileName:"authentic"` // /sys/class/power_suppy//authentic
+ Calibrate *int64 `fileName:"calibrate"` // /sys/class/power_suppy//calibrate
+ Capacity *int64 `fileName:"capacity"` // /sys/class/power_suppy//capacity
+ CapacityAlertMax *int64 `fileName:"capacity_alert_max"` // /sys/class/power_suppy//capacity_alert_max
+ CapacityAlertMin *int64 `fileName:"capacity_alert_min"` // /sys/class/power_suppy//capacity_alert_min
+ CapacityLevel string `fileName:"capacity_level"` // /sys/class/power_suppy//capacity_level
+ ChargeAvg *int64 `fileName:"charge_avg"` // /sys/class/power_suppy//charge_avg
+ ChargeControlLimit *int64 `fileName:"charge_control_limit"` // /sys/class/power_suppy//charge_control_limit
+ ChargeControlLimitMax *int64 `fileName:"charge_control_limit_max"` // /sys/class/power_suppy//charge_control_limit_max
+ ChargeCounter *int64 `fileName:"charge_counter"` // /sys/class/power_suppy//charge_counter
+ ChargeEmpty *int64 `fileName:"charge_empty"` // /sys/class/power_suppy//charge_empty
+ ChargeEmptyDesign *int64 `fileName:"charge_empty_design"` // /sys/class/power_suppy//charge_empty_design
+ ChargeFull *int64 `fileName:"charge_full"` // /sys/class/power_suppy//charge_full
+ ChargeFullDesign *int64 `fileName:"charge_full_design"` // /sys/class/power_suppy//charge_full_design
+ ChargeNow *int64 `fileName:"charge_now"` // /sys/class/power_suppy//charge_now
+ ChargeTermCurrent *int64 `fileName:"charge_term_current"` // /sys/class/power_suppy//charge_term_current
+ ChargeType string `fileName:"charge_type"` // /sys/class/power_supply//charge_type
+ ConstantChargeCurrent *int64 `fileName:"constant_charge_current"` // /sys/class/power_suppy//constant_charge_current
+ ConstantChargeCurrentMax *int64 `fileName:"constant_charge_current_max"` // /sys/class/power_suppy//constant_charge_current_max
+ ConstantChargeVoltage *int64 `fileName:"constant_charge_voltage"` // /sys/class/power_suppy//constant_charge_voltage
+ ConstantChargeVoltageMax *int64 `fileName:"constant_charge_voltage_max"` // /sys/class/power_suppy//constant_charge_voltage_max
+ CurrentAvg *int64 `fileName:"current_avg"` // /sys/class/power_suppy//current_avg
+ CurrentBoot *int64 `fileName:"current_boot"` // /sys/class/power_suppy//current_boot
+ CurrentMax *int64 `fileName:"current_max"` // /sys/class/power_suppy//current_max
+ CurrentNow *int64 `fileName:"current_now"` // /sys/class/power_suppy//current_now
+ CycleCount *int64 `fileName:"cycle_count"` // /sys/class/power_suppy//cycle_count
+ EnergyAvg *int64 `fileName:"energy_avg"` // /sys/class/power_supply//energy_avg
+ EnergyEmpty *int64 `fileName:"energy_empty"` // /sys/class/power_suppy//energy_empty
+ EnergyEmptyDesign *int64 `fileName:"energy_empty_design"` // /sys/class/power_suppy//energy_empty_design
+ EnergyFull *int64 `fileName:"energy_full"` // /sys/class/power_suppy//energy_full
+ EnergyFullDesign *int64 `fileName:"energy_full_design"` // /sys/class/power_suppy//energy_full_design
+ EnergyNow *int64 `fileName:"energy_now"` // /sys/class/power_supply//energy_now
+ Health string `fileName:"health"` // /sys/class/power_suppy//health
+ InputCurrentLimit *int64 `fileName:"input_current_limit"` // /sys/class/power_suppy//input_current_limit
+ Manufacturer string `fileName:"manufacturer"` // /sys/class/power_suppy//manufacturer
+ ModelName string `fileName:"model_name"` // /sys/class/power_suppy//model_name
+ Online *int64 `fileName:"online"` // /sys/class/power_suppy//online
+ PowerAvg *int64 `fileName:"power_avg"` // /sys/class/power_suppy//power_avg
+ PowerNow *int64 `fileName:"power_now"` // /sys/class/power_suppy//power_now
+ PrechargeCurrent *int64 `fileName:"precharge_current"` // /sys/class/power_suppy//precharge_current
+ Present *int64 `fileName:"present"` // /sys/class/power_suppy//present
+ Scope *int64 `fileName:"scope"` // /sys/class/power_suppy//scope
+ SerialNumber string `fileName:"serial_number"` // /sys/class/power_suppy//serial_number
+ Status string `fileName:"status"` // /sys/class/power_supply//status
+ Technology string `fileName:"technology"` // /sys/class/power_suppy//technology
+ Temp *int64 `fileName:"temp"` // /sys/class/power_suppy//temp
+ TempAlertMax *int64 `fileName:"temp_alert_max"` // /sys/class/power_suppy//temp_alert_max
+ TempAlertMin *int64 `fileName:"temp_alert_min"` // /sys/class/power_suppy//temp_alert_min
+ TempAmbient *int64 `fileName:"temp_ambient"` // /sys/class/power_suppy//temp_ambient
+ TempAmbientMax *int64 `fileName:"temp_ambient_max"` // /sys/class/power_suppy//temp_ambient_max
+ TempAmbientMin *int64 `fileName:"temp_ambient_min"` // /sys/class/power_suppy//temp_ambient_min
+ TempMax *int64 `fileName:"temp_max"` // /sys/class/power_suppy//temp_max
+ TempMin *int64 `fileName:"temp_min"` // /sys/class/power_suppy//temp_min
+ TimeToEmptyAvg *int64 `fileName:"time_to_empty_avg"` // /sys/class/power_suppy//time_to_empty_avg
+ TimeToEmptyNow *int64 `fileName:"time_to_empty_now"` // /sys/class/power_suppy//time_to_empty_now
+ TimeToFullAvg *int64 `fileName:"time_to_full_avg"` // /sys/class/power_suppy//time_to_full_avg
+ TimeToFullNow *int64 `fileName:"time_to_full_now"` // /sys/class/power_suppy//time_to_full_now
+ Type string `fileName:"type"` // /sys/class/power_supply//type
+ UsbType string `fileName:"usb_type"` // /sys/class/power_supply//usb_type
+ VoltageAvg *int64 `fileName:"voltage_avg"` // /sys/class/power_supply//voltage_avg
+ VoltageBoot *int64 `fileName:"voltage_boot"` // /sys/class/power_suppy//voltage_boot
+ VoltageMax *int64 `fileName:"voltage_max"` // /sys/class/power_suppy//voltage_max
+ VoltageMaxDesign *int64 `fileName:"voltage_max_design"` // /sys/class/power_suppy//voltage_max_design
+ VoltageMin *int64 `fileName:"voltage_min"` // /sys/class/power_suppy//voltage_min
+ VoltageMinDesign *int64 `fileName:"voltage_min_design"` // /sys/class/power_suppy//voltage_min_design
+ VoltageNow *int64 `fileName:"voltage_now"` // /sys/class/power_supply//voltage_now
+ VoltageOCV *int64 `fileName:"voltage_ocv"` // /sys/class/power_suppy//voltage_ocv
+}
+
+// PowerSupplyClass is a collection of every power supply in /sys/class/power_supply/.
+// The map keys are the names of the power supplies.
+type PowerSupplyClass map[string]PowerSupply
+
+// NewPowerSupplyClass returns info for all power supplies read from /sys/class/power_supply/.
+func NewPowerSupplyClass() (PowerSupplyClass, error) {
+ fs, err := NewFS(DefaultMountPoint)
+ if err != nil {
+ return nil, err
+ }
+
+ return fs.NewPowerSupplyClass()
+}
+
+// NewPowerSupplyClass returns info for all power supplies read from /sys/class/power_supply/.
+func (fs FS) NewPowerSupplyClass() (PowerSupplyClass, error) {
+ path := fs.Path("class/power_supply")
+
+ powerSupplyDirs, err := ioutil.ReadDir(path)
+ if err != nil {
+ return PowerSupplyClass{}, fmt.Errorf("cannot access %s dir %s", path, err)
+ }
+
+ powerSupplyClass := PowerSupplyClass{}
+ for _, powerSupplyDir := range powerSupplyDirs {
+ powerSupply, err := powerSupplyClass.parsePowerSupply(path + "/" + powerSupplyDir.Name())
+ if err != nil {
+ return nil, err
+ }
+ powerSupply.Name = powerSupplyDir.Name()
+ powerSupplyClass[powerSupplyDir.Name()] = *powerSupply
+ }
+ return powerSupplyClass, nil
+}
+
+func (psc PowerSupplyClass) parsePowerSupply(powerSupplyPath string) (*PowerSupply, error) {
+ powerSupply := PowerSupply{}
+ powerSupplyElem := reflect.ValueOf(&powerSupply).Elem()
+ powerSupplyType := reflect.TypeOf(powerSupply)
+
+ //start from 1 - skip the Name field
+ for i := 1; i < powerSupplyElem.NumField(); i++ {
+ fieldType := powerSupplyType.Field(i)
+ fieldValue := powerSupplyElem.Field(i)
+
+ if fieldType.Tag.Get("fileName") == "" {
+ panic(fmt.Errorf("field %s does not have a filename tag", fieldType.Name))
+ }
+
+ value, err := util.SysReadFile(powerSupplyPath + "/" + fieldType.Tag.Get("fileName"))
+
+ if err != nil {
+ if os.IsNotExist(err) || err.Error() == "operation not supported" || err.Error() == "invalid argument" {
+ continue
+ }
+ return nil, fmt.Errorf("could not access file %s: %s", fieldType.Tag.Get("fileName"), err)
+ }
+
+ switch fieldValue.Kind() {
+ case reflect.String:
+ fieldValue.SetString(value)
+ case reflect.Ptr:
+ var int64ptr *int64
+ switch fieldValue.Type() {
+ case reflect.TypeOf(int64ptr):
+ var intValue int64
+ if strings.HasPrefix(value, "0x") {
+ intValue, err = strconv.ParseInt(value[2:], 16, 64)
+ if err != nil {
+ return nil, fmt.Errorf("expected hex value for %s, got: %s", fieldType.Name, value)
+ }
+ } else {
+ intValue, err = strconv.ParseInt(value, 10, 64)
+ if err != nil {
+ return nil, fmt.Errorf("expected Uint64 value for %s, got: %s", fieldType.Name, value)
+ }
+ }
+ fieldValue.Set(reflect.ValueOf(&intValue))
+ default:
+ return nil, fmt.Errorf("unhandled pointer type %q", fieldValue.Type())
+ }
+ default:
+ return nil, fmt.Errorf("unhandled type %q", fieldValue.Kind())
+ }
+ }
+
+ return &powerSupply, nil
+}
diff --git a/vendor/github.com/prometheus/procfs/sysfs/class_thermal.go b/vendor/github.com/prometheus/procfs/sysfs/class_thermal.go
new file mode 100644
index 0000000000..4f9cb9a18d
--- /dev/null
+++ b/vendor/github.com/prometheus/procfs/sysfs/class_thermal.go
@@ -0,0 +1,99 @@
+// Copyright 2018 The Prometheus Authors
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// +build !windows
+
+package sysfs
+
+import (
+ "os"
+ "path/filepath"
+ "strings"
+
+ "github.com/prometheus/procfs/internal/util"
+)
+
+// ClassThermalZoneStats contains info from files in /sys/class/thermal/thermal_zone
+// for a single .
+// https://www.kernel.org/doc/Documentation/thermal/sysfs-api.txt
+type ClassThermalZoneStats struct {
+ Name string // The name of the zone from the directory structure.
+ Type string // The type of thermal zone.
+ Temp uint64 // Temperature in millidegree Celsius.
+ Policy string // One of the various thermal governors used for a particular zone.
+ Mode *bool // Optional: One of the predefined values in [enabled, disabled].
+ Passive *uint64 // Optional: millidegrees Celsius. (0 for disabled, > 1000 for enabled+value)
+}
+
+// NewClassThermalZoneStats returns Thermal Zone metrics for all zones.
+func (fs FS) NewClassThermalZoneStats() ([]ClassThermalZoneStats, error) {
+ zones, err := filepath.Glob(fs.Path("class/thermal/thermal_zone[0-9]*"))
+ if err != nil {
+ return []ClassThermalZoneStats{}, err
+ }
+
+ var zoneStats = ClassThermalZoneStats{}
+ stats := make([]ClassThermalZoneStats, len(zones))
+ for i, zone := range zones {
+ zoneName := strings.TrimPrefix(filepath.Base(zone), "thermal_zone")
+
+ zoneStats, err = parseClassThermalZone(zone)
+ if err != nil {
+ return []ClassThermalZoneStats{}, err
+ }
+ zoneStats.Name = zoneName
+ stats[i] = zoneStats
+ }
+ return stats, nil
+}
+
+func parseClassThermalZone(zone string) (ClassThermalZoneStats, error) {
+ // Required attributes.
+ zoneType, err := util.SysReadFile(filepath.Join(zone, "type"))
+ if err != nil {
+ return ClassThermalZoneStats{}, err
+ }
+ zonePolicy, err := util.SysReadFile(filepath.Join(zone, "policy"))
+ if err != nil {
+ return ClassThermalZoneStats{}, err
+ }
+ zoneTemp, err := util.ReadUintFromFile(filepath.Join(zone, "temp"))
+ if err != nil {
+ return ClassThermalZoneStats{}, err
+ }
+
+ // Optional attributes.
+ mode, err := util.SysReadFile(filepath.Join(zone, "mode"))
+ if err != nil && !os.IsNotExist(err) && !os.IsPermission(err) {
+ return ClassThermalZoneStats{}, err
+ }
+ zoneMode := util.ParseBool(mode)
+
+ var zonePassive *uint64
+ passive, err := util.ReadUintFromFile(filepath.Join(zone, "passive"))
+ if os.IsNotExist(err) || os.IsPermission(err) {
+ zonePassive = nil
+ } else if err != nil {
+ return ClassThermalZoneStats{}, err
+ } else {
+ zonePassive = &passive
+ }
+
+ return ClassThermalZoneStats{
+ Type: zoneType,
+ Policy: zonePolicy,
+ Temp: zoneTemp,
+ Mode: zoneMode,
+ Passive: zonePassive,
+ }, nil
+}
diff --git a/vendor/github.com/prometheus/procfs/sysfs/system_cpu.go b/vendor/github.com/prometheus/procfs/sysfs/system_cpu.go
index c90f569c47..6f48aa74e1 100644
--- a/vendor/github.com/prometheus/procfs/sysfs/system_cpu.go
+++ b/vendor/github.com/prometheus/procfs/sysfs/system_cpu.go
@@ -16,26 +16,30 @@
package sysfs
import (
- "fmt"
"os"
"path/filepath"
"strings"
+ "golang.org/x/sync/errgroup"
+
"github.com/prometheus/procfs/internal/util"
)
// SystemCPUCpufreqStats contains stats from devices/system/cpu/cpu[0-9]*/cpufreq/...
type SystemCPUCpufreqStats struct {
- Name string
- CurrentFrequency uint64
- MinimumFrequency uint64
- MaximumFrequency uint64
- TransitionLatency uint64
- AvailableGovernors string
- Driver string
- Govenor string
- RelatedCpus string
- SetSpeed string
+ Name string
+ CpuinfoCurrentFrequency *uint64
+ CpuinfoMinimumFrequency *uint64
+ CpuinfoMaximumFrequency *uint64
+ CpuinfoTransitionLatency *uint64
+ ScalingCurrentFrequency *uint64
+ ScalingMinimumFrequency *uint64
+ ScalingMaximumFrequency *uint64
+ AvailableGovernors string
+ Driver string
+ Governor string
+ RelatedCpus string
+ SetSpeed string
}
// TODO: Add topology support.
@@ -54,60 +58,68 @@ func NewSystemCpufreq() ([]SystemCPUCpufreqStats, error) {
// NewSystemCpufreq returns CPU frequency metrics for all CPUs.
func (fs FS) NewSystemCpufreq() ([]SystemCPUCpufreqStats, error) {
- var cpufreq = &SystemCPUCpufreqStats{}
+ var g errgroup.Group
cpus, err := filepath.Glob(fs.Path("devices/system/cpu/cpu[0-9]*"))
if err != nil {
- return []SystemCPUCpufreqStats{}, err
+ return nil, err
}
- systemCpufreq := []SystemCPUCpufreqStats{}
- for _, cpu := range cpus {
- cpuName := filepath.Base(cpu)
- cpuNum := strings.TrimPrefix(cpuName, "cpu")
+ systemCpufreq := make([]SystemCPUCpufreqStats, len(cpus))
+ for i, cpu := range cpus {
+ cpuName := strings.TrimPrefix(filepath.Base(cpu), "cpu")
cpuCpufreqPath := filepath.Join(cpu, "cpufreq")
if _, err := os.Stat(cpuCpufreqPath); os.IsNotExist(err) {
continue
}
if err != nil {
- return []SystemCPUCpufreqStats{}, err
+ return nil, err
}
- if _, err = os.Stat(filepath.Join(cpuCpufreqPath, "scaling_cur_freq")); err == nil {
- cpufreq, err = parseCpufreqCpuinfo("scaling", cpuCpufreqPath)
- } else if _, err = os.Stat(filepath.Join(cpuCpufreqPath, "cpuinfo_cur_freq")); err == nil {
- // Older kernels have metrics named `cpuinfo_...`.
- cpufreq, err = parseCpufreqCpuinfo("cpuinfo", cpuCpufreqPath)
- } else {
- return []SystemCPUCpufreqStats{}, fmt.Errorf("CPU %v is missing cpufreq", cpu)
- }
- if err != nil {
- return []SystemCPUCpufreqStats{}, err
- }
- cpufreq.Name = cpuNum
- systemCpufreq = append(systemCpufreq, *cpufreq)
+ // Execute the parsing of each CPU in parallel.
+ // This is done because the kernel intentionally delays access to each CPU by
+ // 50 milliseconds to avoid DDoSing possibly expensive functions.
+ i := i // https://golang.org/doc/faq#closures_and_goroutines
+ g.Go(func() error {
+ cpufreq, err := parseCpufreqCpuinfo(cpuCpufreqPath)
+ if err == nil {
+ cpufreq.Name = cpuName
+ systemCpufreq[i] = *cpufreq
+ }
+ return err
+ })
+ }
+
+ if err = g.Wait(); err != nil {
+ return nil, err
}
return systemCpufreq, nil
}
-func parseCpufreqCpuinfo(prefix string, cpuPath string) (*SystemCPUCpufreqStats, error) {
+func parseCpufreqCpuinfo(cpuPath string) (*SystemCPUCpufreqStats, error) {
uintFiles := []string{
- prefix + "_cur_freq",
- prefix + "_max_freq",
- prefix + "_min_freq",
+ "cpuinfo_cur_freq",
+ "cpuinfo_max_freq",
+ "cpuinfo_min_freq",
"cpuinfo_transition_latency",
+ "scaling_cur_freq",
+ "scaling_max_freq",
+ "scaling_min_freq",
}
- uintOut := make([]uint64, len(uintFiles))
+ uintOut := make([]*uint64, len(uintFiles))
for i, f := range uintFiles {
v, err := util.ReadUintFromFile(filepath.Join(cpuPath, f))
if err != nil {
+ if os.IsNotExist(err) || os.IsPermission(err) {
+ continue
+ }
return &SystemCPUCpufreqStats{}, err
}
- uintOut[i] = v
+ uintOut[i] = &v
}
stringFiles := []string{
@@ -128,14 +140,17 @@ func parseCpufreqCpuinfo(prefix string, cpuPath string) (*SystemCPUCpufreqStats,
}
return &SystemCPUCpufreqStats{
- CurrentFrequency: uintOut[0],
- MaximumFrequency: uintOut[1],
- MinimumFrequency: uintOut[2],
- TransitionLatency: uintOut[3],
- AvailableGovernors: stringOut[0],
- Driver: stringOut[1],
- Govenor: stringOut[2],
- RelatedCpus: stringOut[3],
- SetSpeed: stringOut[4],
+ CpuinfoCurrentFrequency: uintOut[0],
+ CpuinfoMaximumFrequency: uintOut[1],
+ CpuinfoMinimumFrequency: uintOut[2],
+ CpuinfoTransitionLatency: uintOut[3],
+ ScalingCurrentFrequency: uintOut[4],
+ ScalingMaximumFrequency: uintOut[5],
+ ScalingMinimumFrequency: uintOut[6],
+ AvailableGovernors: stringOut[0],
+ Driver: stringOut[1],
+ Governor: stringOut[2],
+ RelatedCpus: stringOut[3],
+ SetSpeed: stringOut[4],
}, nil
}
diff --git a/vendor/github.com/radovskyb/watcher/watcher.go b/vendor/github.com/radovskyb/watcher/watcher.go
index e353296968..ecb2fcd1fd 100644
--- a/vendor/github.com/radovskyb/watcher/watcher.go
+++ b/vendor/github.com/radovskyb/watcher/watcher.go
@@ -495,9 +495,11 @@ func (w *Watcher) retrieveFileList() map[string]os.FileInfo {
list, err = w.listRecursive(name)
if err != nil {
if os.IsNotExist(err) {
- w.Error <- ErrWatchedFileDeleted
w.mu.Unlock()
- w.RemoveRecursive(name)
+ if name == err.(*os.PathError).Path {
+ w.Error <- ErrWatchedFileDeleted
+ w.RemoveRecursive(name)
+ }
w.mu.Lock()
} else {
w.Error <- err
@@ -507,9 +509,11 @@ func (w *Watcher) retrieveFileList() map[string]os.FileInfo {
list, err = w.list(name)
if err != nil {
if os.IsNotExist(err) {
- w.Error <- ErrWatchedFileDeleted
w.mu.Unlock()
- w.Remove(name)
+ if name == err.(*os.PathError).Path {
+ w.Error <- ErrWatchedFileDeleted
+ w.Remove(name)
+ }
w.mu.Lock()
} else {
w.Error <- err
diff --git a/vendor/github.com/rogpeppe/go-internal/LICENSE b/vendor/github.com/rogpeppe/go-internal/LICENSE
new file mode 100644
index 0000000000..49ea0f9288
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) 2018 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/github.com/rogpeppe/go-internal/cache/cache.go b/vendor/github.com/rogpeppe/go-internal/cache/cache.go
new file mode 100644
index 0000000000..0cf01550ff
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/cache/cache.go
@@ -0,0 +1,474 @@
+// Copyright 2017 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package cache implements a build artifact cache.
+package cache
+
+import (
+ "bytes"
+ "crypto/sha256"
+ "encoding/hex"
+ "errors"
+ "fmt"
+ "io"
+ "io/ioutil"
+ "os"
+ "path/filepath"
+ "strconv"
+ "strings"
+ "time"
+)
+
+// An ActionID is a cache action key, the hash of a complete description of a
+// repeatable computation (command line, environment variables,
+// input file contents, executable contents).
+type ActionID [HashSize]byte
+
+// An OutputID is a cache output key, the hash of an output of a computation.
+type OutputID [HashSize]byte
+
+// A Cache is a package cache, backed by a file system directory tree.
+type Cache struct {
+ dir string
+ log *os.File
+ now func() time.Time
+}
+
+// Open opens and returns the cache in the given directory.
+//
+// It is safe for multiple processes on a single machine to use the
+// same cache directory in a local file system simultaneously.
+// They will coordinate using operating system file locks and may
+// duplicate effort but will not corrupt the cache.
+//
+// However, it is NOT safe for multiple processes on different machines
+// to share a cache directory (for example, if the directory were stored
+// in a network file system). File locking is notoriously unreliable in
+// network file systems and may not suffice to protect the cache.
+//
+func Open(dir string) (*Cache, error) {
+ info, err := os.Stat(dir)
+ if err != nil {
+ return nil, err
+ }
+ if !info.IsDir() {
+ return nil, &os.PathError{Op: "open", Path: dir, Err: fmt.Errorf("not a directory")}
+ }
+ for i := 0; i < 256; i++ {
+ name := filepath.Join(dir, fmt.Sprintf("%02x", i))
+ if err := os.MkdirAll(name, 0777); err != nil {
+ return nil, err
+ }
+ }
+ f, err := os.OpenFile(filepath.Join(dir, "log.txt"), os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0666)
+ if err != nil {
+ return nil, err
+ }
+ c := &Cache{
+ dir: dir,
+ log: f,
+ now: time.Now,
+ }
+ return c, nil
+}
+
+// fileName returns the name of the file corresponding to the given id.
+func (c *Cache) fileName(id [HashSize]byte, key string) string {
+ return filepath.Join(c.dir, fmt.Sprintf("%02x", id[0]), fmt.Sprintf("%x", id)+"-"+key)
+}
+
+var errMissing = errors.New("cache entry not found")
+
+const (
+ // action entry file is "v1 \n"
+ hexSize = HashSize * 2
+ entrySize = 2 + 1 + hexSize + 1 + hexSize + 1 + 20 + 1 + 20 + 1
+)
+
+// verify controls whether to run the cache in verify mode.
+// In verify mode, the cache always returns errMissing from Get
+// but then double-checks in Put that the data being written
+// exactly matches any existing entry. This provides an easy
+// way to detect program behavior that would have been different
+// had the cache entry been returned from Get.
+//
+// verify is enabled by setting the environment variable
+// GODEBUG=gocacheverify=1.
+var verify = false
+
+// DebugTest is set when GODEBUG=gocachetest=1 is in the environment.
+var DebugTest = false
+
+func init() { initEnv() }
+
+func initEnv() {
+ verify = false
+ debugHash = false
+ debug := strings.Split(os.Getenv("GODEBUG"), ",")
+ for _, f := range debug {
+ if f == "gocacheverify=1" {
+ verify = true
+ }
+ if f == "gocachehash=1" {
+ debugHash = true
+ }
+ if f == "gocachetest=1" {
+ DebugTest = true
+ }
+ }
+}
+
+// Get looks up the action ID in the cache,
+// returning the corresponding output ID and file size, if any.
+// Note that finding an output ID does not guarantee that the
+// saved file for that output ID is still available.
+func (c *Cache) Get(id ActionID) (Entry, error) {
+ if verify {
+ return Entry{}, errMissing
+ }
+ return c.get(id)
+}
+
+type Entry struct {
+ OutputID OutputID
+ Size int64
+ Time time.Time
+}
+
+// get is Get but does not respect verify mode, so that Put can use it.
+func (c *Cache) get(id ActionID) (Entry, error) {
+ missing := func() (Entry, error) {
+ fmt.Fprintf(c.log, "%d miss %x\n", c.now().Unix(), id)
+ return Entry{}, errMissing
+ }
+ f, err := os.Open(c.fileName(id, "a"))
+ if err != nil {
+ return missing()
+ }
+ defer f.Close()
+ entry := make([]byte, entrySize+1) // +1 to detect whether f is too long
+ if n, err := io.ReadFull(f, entry); n != entrySize || err != io.ErrUnexpectedEOF {
+ return missing()
+ }
+ if entry[0] != 'v' || entry[1] != '1' || entry[2] != ' ' || entry[3+hexSize] != ' ' || entry[3+hexSize+1+hexSize] != ' ' || entry[3+hexSize+1+hexSize+1+20] != ' ' || entry[entrySize-1] != '\n' {
+ return missing()
+ }
+ eid, entry := entry[3:3+hexSize], entry[3+hexSize:]
+ eout, entry := entry[1:1+hexSize], entry[1+hexSize:]
+ esize, entry := entry[1:1+20], entry[1+20:]
+ etime, entry := entry[1:1+20], entry[1+20:]
+ var buf [HashSize]byte
+ if _, err := hex.Decode(buf[:], eid); err != nil || buf != id {
+ return missing()
+ }
+ if _, err := hex.Decode(buf[:], eout); err != nil {
+ return missing()
+ }
+ i := 0
+ for i < len(esize) && esize[i] == ' ' {
+ i++
+ }
+ size, err := strconv.ParseInt(string(esize[i:]), 10, 64)
+ if err != nil || size < 0 {
+ return missing()
+ }
+ i = 0
+ for i < len(etime) && etime[i] == ' ' {
+ i++
+ }
+ tm, err := strconv.ParseInt(string(etime[i:]), 10, 64)
+ if err != nil || size < 0 {
+ return missing()
+ }
+
+ fmt.Fprintf(c.log, "%d get %x\n", c.now().Unix(), id)
+
+ c.used(c.fileName(id, "a"))
+
+ return Entry{buf, size, time.Unix(0, tm)}, nil
+}
+
+// GetFile looks up the action ID in the cache and returns
+// the name of the corresponding data file.
+func (c *Cache) GetFile(id ActionID) (file string, entry Entry, err error) {
+ entry, err = c.Get(id)
+ if err != nil {
+ return "", Entry{}, err
+ }
+ file = c.OutputFile(entry.OutputID)
+ info, err := os.Stat(file)
+ if err != nil || info.Size() != entry.Size {
+ return "", Entry{}, errMissing
+ }
+ return file, entry, nil
+}
+
+// GetBytes looks up the action ID in the cache and returns
+// the corresponding output bytes.
+// GetBytes should only be used for data that can be expected to fit in memory.
+func (c *Cache) GetBytes(id ActionID) ([]byte, Entry, error) {
+ entry, err := c.Get(id)
+ if err != nil {
+ return nil, entry, err
+ }
+ data, _ := ioutil.ReadFile(c.OutputFile(entry.OutputID))
+ if sha256.Sum256(data) != entry.OutputID {
+ return nil, entry, errMissing
+ }
+ return data, entry, nil
+}
+
+// OutputFile returns the name of the cache file storing output with the given OutputID.
+func (c *Cache) OutputFile(out OutputID) string {
+ file := c.fileName(out, "d")
+ c.used(file)
+ return file
+}
+
+// Time constants for cache expiration.
+//
+// We set the mtime on a cache file on each use, but at most one per mtimeInterval (1 hour),
+// to avoid causing many unnecessary inode updates. The mtimes therefore
+// roughly reflect "time of last use" but may in fact be older by at most an hour.
+//
+// We scan the cache for entries to delete at most once per trimInterval (1 day).
+//
+// When we do scan the cache, we delete entries that have not been used for
+// at least trimLimit (5 days). Statistics gathered from a month of usage by
+// Go developers found that essentially all reuse of cached entries happened
+// within 5 days of the previous reuse. See golang.org/issue/22990.
+const (
+ mtimeInterval = 1 * time.Hour
+ trimInterval = 24 * time.Hour
+ trimLimit = 5 * 24 * time.Hour
+)
+
+// used makes a best-effort attempt to update mtime on file,
+// so that mtime reflects cache access time.
+//
+// Because the reflection only needs to be approximate,
+// and to reduce the amount of disk activity caused by using
+// cache entries, used only updates the mtime if the current
+// mtime is more than an hour old. This heuristic eliminates
+// nearly all of the mtime updates that would otherwise happen,
+// while still keeping the mtimes useful for cache trimming.
+func (c *Cache) used(file string) {
+ info, err := os.Stat(file)
+ if err == nil && c.now().Sub(info.ModTime()) < mtimeInterval {
+ return
+ }
+ os.Chtimes(file, c.now(), c.now())
+}
+
+// Trim removes old cache entries that are likely not to be reused.
+func (c *Cache) Trim() {
+ now := c.now()
+
+ // We maintain in dir/trim.txt the time of the last completed cache trim.
+ // If the cache has been trimmed recently enough, do nothing.
+ // This is the common case.
+ data, _ := ioutil.ReadFile(filepath.Join(c.dir, "trim.txt"))
+ t, err := strconv.ParseInt(strings.TrimSpace(string(data)), 10, 64)
+ if err == nil && now.Sub(time.Unix(t, 0)) < trimInterval {
+ return
+ }
+
+ // Trim each of the 256 subdirectories.
+ // We subtract an additional mtimeInterval
+ // to account for the imprecision of our "last used" mtimes.
+ cutoff := now.Add(-trimLimit - mtimeInterval)
+ for i := 0; i < 256; i++ {
+ subdir := filepath.Join(c.dir, fmt.Sprintf("%02x", i))
+ c.trimSubdir(subdir, cutoff)
+ }
+
+ ioutil.WriteFile(filepath.Join(c.dir, "trim.txt"), []byte(fmt.Sprintf("%d", now.Unix())), 0666)
+}
+
+// trimSubdir trims a single cache subdirectory.
+func (c *Cache) trimSubdir(subdir string, cutoff time.Time) {
+ // Read all directory entries from subdir before removing
+ // any files, in case removing files invalidates the file offset
+ // in the directory scan. Also, ignore error from f.Readdirnames,
+ // because we don't care about reporting the error and we still
+ // want to process any entries found before the error.
+ f, err := os.Open(subdir)
+ if err != nil {
+ return
+ }
+ names, _ := f.Readdirnames(-1)
+ f.Close()
+
+ for _, name := range names {
+ // Remove only cache entries (xxxx-a and xxxx-d).
+ if !strings.HasSuffix(name, "-a") && !strings.HasSuffix(name, "-d") {
+ continue
+ }
+ entry := filepath.Join(subdir, name)
+ info, err := os.Stat(entry)
+ if err == nil && info.ModTime().Before(cutoff) {
+ os.Remove(entry)
+ }
+ }
+}
+
+// putIndexEntry adds an entry to the cache recording that executing the action
+// with the given id produces an output with the given output id (hash) and size.
+func (c *Cache) putIndexEntry(id ActionID, out OutputID, size int64, allowVerify bool) error {
+ // Note: We expect that for one reason or another it may happen
+ // that repeating an action produces a different output hash
+ // (for example, if the output contains a time stamp or temp dir name).
+ // While not ideal, this is also not a correctness problem, so we
+ // don't make a big deal about it. In particular, we leave the action
+ // cache entries writable specifically so that they can be overwritten.
+ //
+ // Setting GODEBUG=gocacheverify=1 does make a big deal:
+ // in verify mode we are double-checking that the cache entries
+ // are entirely reproducible. As just noted, this may be unrealistic
+ // in some cases but the check is also useful for shaking out real bugs.
+ entry := []byte(fmt.Sprintf("v1 %x %x %20d %20d\n", id, out, size, time.Now().UnixNano()))
+ if verify && allowVerify {
+ old, err := c.get(id)
+ if err == nil && (old.OutputID != out || old.Size != size) {
+ // panic to show stack trace, so we can see what code is generating this cache entry.
+ msg := fmt.Sprintf("go: internal cache error: cache verify failed: id=%x changed:<<<\n%s\n>>>\nold: %x %d\nnew: %x %d", id, reverseHash(id), out, size, old.OutputID, old.Size)
+ panic(msg)
+ }
+ }
+ file := c.fileName(id, "a")
+ if err := ioutil.WriteFile(file, entry, 0666); err != nil {
+ os.Remove(file)
+ return err
+ }
+ os.Chtimes(file, c.now(), c.now()) // mainly for tests
+
+ fmt.Fprintf(c.log, "%d put %x %x %d\n", c.now().Unix(), id, out, size)
+ return nil
+}
+
+// Put stores the given output in the cache as the output for the action ID.
+// It may read file twice. The content of file must not change between the two passes.
+func (c *Cache) Put(id ActionID, file io.ReadSeeker) (OutputID, int64, error) {
+ return c.put(id, file, true)
+}
+
+// PutNoVerify is like Put but disables the verify check
+// when GODEBUG=goverifycache=1 is set.
+// It is meant for data that is OK to cache but that we expect to vary slightly from run to run,
+// like test output containing times and the like.
+func (c *Cache) PutNoVerify(id ActionID, file io.ReadSeeker) (OutputID, int64, error) {
+ return c.put(id, file, false)
+}
+
+func (c *Cache) put(id ActionID, file io.ReadSeeker, allowVerify bool) (OutputID, int64, error) {
+ // Compute output ID.
+ h := sha256.New()
+ if _, err := file.Seek(0, 0); err != nil {
+ return OutputID{}, 0, err
+ }
+ size, err := io.Copy(h, file)
+ if err != nil {
+ return OutputID{}, 0, err
+ }
+ var out OutputID
+ h.Sum(out[:0])
+
+ // Copy to cached output file (if not already present).
+ if err := c.copyFile(file, out, size); err != nil {
+ return out, size, err
+ }
+
+ // Add to cache index.
+ return out, size, c.putIndexEntry(id, out, size, allowVerify)
+}
+
+// PutBytes stores the given bytes in the cache as the output for the action ID.
+func (c *Cache) PutBytes(id ActionID, data []byte) error {
+ _, _, err := c.Put(id, bytes.NewReader(data))
+ return err
+}
+
+// copyFile copies file into the cache, expecting it to have the given
+// output ID and size, if that file is not present already.
+func (c *Cache) copyFile(file io.ReadSeeker, out OutputID, size int64) error {
+ name := c.fileName(out, "d")
+ info, err := os.Stat(name)
+ if err == nil && info.Size() == size {
+ // Check hash.
+ if f, err := os.Open(name); err == nil {
+ h := sha256.New()
+ io.Copy(h, f)
+ f.Close()
+ var out2 OutputID
+ h.Sum(out2[:0])
+ if out == out2 {
+ return nil
+ }
+ }
+ // Hash did not match. Fall through and rewrite file.
+ }
+
+ // Copy file to cache directory.
+ mode := os.O_RDWR | os.O_CREATE
+ if err == nil && info.Size() > size { // shouldn't happen but fix in case
+ mode |= os.O_TRUNC
+ }
+ f, err := os.OpenFile(name, mode, 0666)
+ if err != nil {
+ return err
+ }
+ defer f.Close()
+ if size == 0 {
+ // File now exists with correct size.
+ // Only one possible zero-length file, so contents are OK too.
+ // Early return here makes sure there's a "last byte" for code below.
+ return nil
+ }
+
+ // From here on, if any of the I/O writing the file fails,
+ // we make a best-effort attempt to truncate the file f
+ // before returning, to avoid leaving bad bytes in the file.
+
+ // Copy file to f, but also into h to double-check hash.
+ if _, err := file.Seek(0, 0); err != nil {
+ f.Truncate(0)
+ return err
+ }
+ h := sha256.New()
+ w := io.MultiWriter(f, h)
+ if _, err := io.CopyN(w, file, size-1); err != nil {
+ f.Truncate(0)
+ return err
+ }
+ // Check last byte before writing it; writing it will make the size match
+ // what other processes expect to find and might cause them to start
+ // using the file.
+ buf := make([]byte, 1)
+ if _, err := file.Read(buf); err != nil {
+ f.Truncate(0)
+ return err
+ }
+ h.Write(buf)
+ sum := h.Sum(nil)
+ if !bytes.Equal(sum, out[:]) {
+ f.Truncate(0)
+ return fmt.Errorf("file content changed underfoot")
+ }
+
+ // Commit cache file entry.
+ if _, err := f.Write(buf); err != nil {
+ f.Truncate(0)
+ return err
+ }
+ if err := f.Close(); err != nil {
+ // Data might not have been written,
+ // but file may look like it is the right size.
+ // To be extra careful, remove cached file.
+ os.Remove(name)
+ return err
+ }
+ os.Chtimes(name, c.now(), c.now()) // mainly for tests
+
+ return nil
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/cache/default.go b/vendor/github.com/rogpeppe/go-internal/cache/default.go
new file mode 100644
index 0000000000..4a69bf2a44
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/cache/default.go
@@ -0,0 +1,95 @@
+// Copyright 2017 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package cache
+
+import (
+ "fmt"
+ "io/ioutil"
+ "os"
+ "path/filepath"
+ "sync"
+)
+
+// Default returns the default cache to use, or nil if no cache should be used.
+func Default() *Cache {
+ defaultOnce.Do(initDefaultCache)
+ return defaultCache
+}
+
+var (
+ defaultOnce sync.Once
+ defaultCache *Cache
+)
+
+// cacheREADME is a message stored in a README in the cache directory.
+// Because the cache lives outside the normal Go trees, we leave the
+// README as a courtesy to explain where it came from.
+const cacheREADME = `This directory holds cached build artifacts from the Go build system.
+Run "go clean -cache" if the directory is getting too large.
+See golang.org to learn more about Go.
+`
+
+// initDefaultCache does the work of finding the default cache
+// the first time Default is called.
+func initDefaultCache() {
+ dir, showWarnings := defaultDir()
+ if dir == "off" {
+ return
+ }
+ if err := os.MkdirAll(dir, 0777); err != nil {
+ if showWarnings {
+ fmt.Fprintf(os.Stderr, "go: disabling cache (%s) due to initialization failure: %s\n", dir, err)
+ }
+ return
+ }
+ if _, err := os.Stat(filepath.Join(dir, "README")); err != nil {
+ // Best effort.
+ ioutil.WriteFile(filepath.Join(dir, "README"), []byte(cacheREADME), 0666)
+ }
+
+ c, err := Open(dir)
+ if err != nil {
+ if showWarnings {
+ fmt.Fprintf(os.Stderr, "go: disabling cache (%s) due to initialization failure: %s\n", dir, err)
+ }
+ return
+ }
+ defaultCache = c
+}
+
+// DefaultDir returns the effective GOCACHE setting.
+// It returns "off" if the cache is disabled.
+func DefaultDir() string {
+ dir, _ := defaultDir()
+ return dir
+}
+
+// defaultDir returns the effective GOCACHE setting.
+// It returns "off" if the cache is disabled.
+// The second return value reports whether warnings should
+// be shown if the cache fails to initialize.
+func defaultDir() (string, bool) {
+ dir := os.Getenv("GOCACHE")
+ if dir != "" {
+ return dir, true
+ }
+
+ // Compute default location.
+ dir, err := os.UserCacheDir()
+ if err != nil {
+ return "off", true
+ }
+ dir = filepath.Join(dir, "go-build")
+
+ // Do this after filepath.Join, so that the path has been cleaned.
+ showWarnings := true
+ switch dir {
+ case "/.cache/go-build":
+ // probably docker run with -u flag
+ // https://golang.org/issue/26280
+ showWarnings = false
+ }
+ return dir, showWarnings
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/cache/hash.go b/vendor/github.com/rogpeppe/go-internal/cache/hash.go
new file mode 100644
index 0000000000..e4bb2a34bb
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/cache/hash.go
@@ -0,0 +1,174 @@
+// Copyright 2017 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package cache
+
+import (
+ "bytes"
+ "crypto/sha256"
+ "fmt"
+ "hash"
+ "io"
+ "os"
+ "runtime"
+ "sync"
+)
+
+var debugHash = false // set when GODEBUG=gocachehash=1
+
+// HashSize is the number of bytes in a hash.
+const HashSize = 32
+
+// A Hash provides access to the canonical hash function used to index the cache.
+// The current implementation uses salted SHA256, but clients must not assume this.
+type Hash struct {
+ h hash.Hash
+ name string // for debugging
+ buf *bytes.Buffer // for verify
+}
+
+// hashSalt is a salt string added to the beginning of every hash
+// created by NewHash. Using the Go version makes sure that different
+// versions of the go command (or even different Git commits during
+// work on the development branch) do not address the same cache
+// entries, so that a bug in one version does not affect the execution
+// of other versions. This salt will result in additional ActionID files
+// in the cache, but not additional copies of the large output files,
+// which are still addressed by unsalted SHA256.
+var hashSalt = []byte(runtime.Version())
+
+// Subkey returns an action ID corresponding to mixing a parent
+// action ID with a string description of the subkey.
+func Subkey(parent ActionID, desc string) ActionID {
+ h := sha256.New()
+ h.Write([]byte("subkey:"))
+ h.Write(parent[:])
+ h.Write([]byte(desc))
+ var out ActionID
+ h.Sum(out[:0])
+ if debugHash {
+ fmt.Fprintf(os.Stderr, "HASH subkey %x %q = %x\n", parent, desc, out)
+ }
+ if verify {
+ hashDebug.Lock()
+ hashDebug.m[out] = fmt.Sprintf("subkey %x %q", parent, desc)
+ hashDebug.Unlock()
+ }
+ return out
+}
+
+// NewHash returns a new Hash.
+// The caller is expected to Write data to it and then call Sum.
+func NewHash(name string) *Hash {
+ h := &Hash{h: sha256.New(), name: name}
+ if debugHash {
+ fmt.Fprintf(os.Stderr, "HASH[%s]\n", h.name)
+ }
+ h.Write(hashSalt)
+ if verify {
+ h.buf = new(bytes.Buffer)
+ }
+ return h
+}
+
+// Write writes data to the running hash.
+func (h *Hash) Write(b []byte) (int, error) {
+ if debugHash {
+ fmt.Fprintf(os.Stderr, "HASH[%s]: %q\n", h.name, b)
+ }
+ if h.buf != nil {
+ h.buf.Write(b)
+ }
+ return h.h.Write(b)
+}
+
+// Sum returns the hash of the data written previously.
+func (h *Hash) Sum() [HashSize]byte {
+ var out [HashSize]byte
+ h.h.Sum(out[:0])
+ if debugHash {
+ fmt.Fprintf(os.Stderr, "HASH[%s]: %x\n", h.name, out)
+ }
+ if h.buf != nil {
+ hashDebug.Lock()
+ if hashDebug.m == nil {
+ hashDebug.m = make(map[[HashSize]byte]string)
+ }
+ hashDebug.m[out] = h.buf.String()
+ hashDebug.Unlock()
+ }
+ return out
+}
+
+// In GODEBUG=gocacheverify=1 mode,
+// hashDebug holds the input to every computed hash ID,
+// so that we can work backward from the ID involved in a
+// cache entry mismatch to a description of what should be there.
+var hashDebug struct {
+ sync.Mutex
+ m map[[HashSize]byte]string
+}
+
+// reverseHash returns the input used to compute the hash id.
+func reverseHash(id [HashSize]byte) string {
+ hashDebug.Lock()
+ s := hashDebug.m[id]
+ hashDebug.Unlock()
+ return s
+}
+
+var hashFileCache struct {
+ sync.Mutex
+ m map[string][HashSize]byte
+}
+
+// FileHash returns the hash of the named file.
+// It caches repeated lookups for a given file,
+// and the cache entry for a file can be initialized
+// using SetFileHash.
+// The hash used by FileHash is not the same as
+// the hash used by NewHash.
+func FileHash(file string) ([HashSize]byte, error) {
+ hashFileCache.Lock()
+ out, ok := hashFileCache.m[file]
+ hashFileCache.Unlock()
+
+ if ok {
+ return out, nil
+ }
+
+ h := sha256.New()
+ f, err := os.Open(file)
+ if err != nil {
+ if debugHash {
+ fmt.Fprintf(os.Stderr, "HASH %s: %v\n", file, err)
+ }
+ return [HashSize]byte{}, err
+ }
+ _, err = io.Copy(h, f)
+ f.Close()
+ if err != nil {
+ if debugHash {
+ fmt.Fprintf(os.Stderr, "HASH %s: %v\n", file, err)
+ }
+ return [HashSize]byte{}, err
+ }
+ h.Sum(out[:0])
+ if debugHash {
+ fmt.Fprintf(os.Stderr, "HASH %s: %x\n", file, out)
+ }
+
+ SetFileHash(file, out)
+ return out, nil
+}
+
+// SetFileHash sets the hash returned by FileHash for file.
+func SetFileHash(file string, sum [HashSize]byte) {
+ hashFileCache.Lock()
+ if hashFileCache.m == nil {
+ hashFileCache.m = make(map[string][HashSize]byte)
+ }
+ hashFileCache.m[file] = sum
+ hashFileCache.Unlock()
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/cmd/testscript/help.go b/vendor/github.com/rogpeppe/go-internal/cmd/testscript/help.go
new file mode 100644
index 0000000000..968e522b05
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/cmd/testscript/help.go
@@ -0,0 +1,122 @@
+package main
+
+import (
+ "fmt"
+ "io"
+)
+
+func mainUsage(f io.Writer) {
+ fmt.Fprint(f, mainHelp)
+}
+
+var mainHelp = `
+The testscript command runs github.com/rogpeppe/go-internal/testscript scripts
+in a fresh temporary work directory tree.
+
+Usage:
+ testscript [-v] [-e VAR]... files...
+
+The testscript command is designed to make it easy to create self-contained
+reproductions of command sequences.
+
+Each file is opened as a script and run as described in the documentation for
+github.com/rogpeppe/go-internal/testscript. The special filename "-" is
+interpreted as the standard input.
+
+As a special case, supporting files/directories in the .gomodproxy subdirectory
+will be served via a github.com/rogpeppe/go-internal/goproxytest server which
+is available to each script via the GOPROXY environment variable. The contents
+of the .gomodproxy subdirectory are not available to the script except via the
+proxy server. See the documentation for
+github.com/rogpeppe/go-internal/goproxytest for details on the format of these
+files/directories.
+
+Environment variables can be passed through to each script with the -e flag,
+where VAR is the name of the variable. Variables override testscript-defined
+values, with the exception of WORK which cannot be overridden. The -e flag can
+appear multiple times to specify multiple variables.
+
+Examples
+========
+
+The following example, fruit.txt, shows a simple reproduction that includes
+.gomodproxy supporting files:
+
+ go get -m fruit.com
+ go list fruit.com/...
+ stdout 'fruit.com/fruit'
+
+ -- go.mod --
+ module mod
+
+ -- .gomodproxy/fruit.com_v1.0.0/.mod --
+ module fruit.com
+
+ -- .gomodproxy/fruit.com_v1.0.0/.info --
+ {"Version":"v1.0.0","Time":"2018-10-22T18:45:39Z"}
+
+ -- .gomodproxy/fruit.com_v1.0.0/fruit/fruit.go --
+ package fruit
+
+ const Name = "Apple"
+
+Running testscript -v fruit.txt we get:
+
+ ...
+ > go get -m fruit.com
+ [stderr]
+ go: finding fruit.com v1.0.0
+
+ > go list fruit.com/...
+ [stdout]
+ fruit.com/fruit
+
+ [stderr]
+ go: downloading fruit.com v1.0.0
+
+ > stdout 'fruit.com/fruit'
+ PASS
+
+
+The following example, goimports.txt, shows a simple reproduction involving
+goimports:
+
+ go install golang.org/x/tools/cmd/goimports
+
+ # check goimports help information
+ exec goimports -d main.go
+ stdout 'import "math"'
+
+ -- go.mod --
+ module mod
+
+ require golang.org/x/tools v0.0.0-20181221235234-d00ac6d27372
+
+ -- main.go --
+ package mod
+
+ const Pi = math.Pi
+
+Running testscript -v goimports.txt we get:
+
+ ...
+ > go install golang.org/x/tools/cmd/goimports
+ [stderr]
+ go: finding golang.org/x/tools v0.0.0-20181221235234-d00ac6d27372
+ go: downloading golang.org/x/tools v0.0.0-20181221235234-d00ac6d27372
+
+ # check goimports help information (0.015s)
+ > exec goimports -d main.go
+ [stdout]
+ diff -u main.go.orig main.go
+ --- main.go.orig 2019-01-08 16:03:35.861907738 +0000
+ +++ main.go 2019-01-08 16:03:35.861907738 +0000
+ @@ -1,3 +1,5 @@
+ package mod
+
+ +import "math"
+ +
+ const Pi = math.Pi
+ > stdout 'import "math"'
+ PASS
+`[1:]
diff --git a/vendor/github.com/rogpeppe/go-internal/cmd/testscript/main.go b/vendor/github.com/rogpeppe/go-internal/cmd/testscript/main.go
new file mode 100644
index 0000000000..145a0cfff3
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/cmd/testscript/main.go
@@ -0,0 +1,264 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import (
+ "errors"
+ "flag"
+ "fmt"
+ "io/ioutil"
+ "os"
+ "os/exec"
+ "path/filepath"
+ "strconv"
+ "strings"
+
+ "github.com/rogpeppe/go-internal/goproxytest"
+ "github.com/rogpeppe/go-internal/gotooltest"
+ "github.com/rogpeppe/go-internal/testscript"
+ "github.com/rogpeppe/go-internal/txtar"
+)
+
+const (
+ // goModProxyDir is the special subdirectory in a txtar script's supporting files
+ // within which we expect to find github.com/rogpeppe/go-internal/goproxytest
+ // directories.
+ goModProxyDir = ".gomodproxy"
+)
+
+type envVarsFlag struct {
+ vals []string
+}
+
+func (e *envVarsFlag) String() string {
+ return fmt.Sprintf("%v", e.vals)
+}
+
+func (e *envVarsFlag) Set(v string) error {
+ e.vals = append(e.vals, v)
+ return nil
+}
+
+func main() {
+ os.Exit(main1())
+}
+
+func main1() int {
+ switch err := mainerr(); err {
+ case nil:
+ return 0
+ case flag.ErrHelp:
+ return 2
+ default:
+ fmt.Fprintln(os.Stderr, err)
+ return 1
+ }
+}
+
+func mainerr() (retErr error) {
+ fs := flag.NewFlagSet(os.Args[0], flag.ContinueOnError)
+ fs.Usage = func() {
+ mainUsage(os.Stderr)
+ }
+ var envVars envVarsFlag
+ fWork := fs.Bool("work", false, "print temporary work directory and do not remove when done")
+ fVerbose := fs.Bool("v", false, "run tests verbosely")
+ fs.Var(&envVars, "e", "pass through environment variable to script (can appear multiple times)")
+ if err := fs.Parse(os.Args[1:]); err != nil {
+ return err
+ }
+
+ td, err := ioutil.TempDir("", "testscript")
+ if err != nil {
+ return fmt.Errorf("unable to create temp dir: %v", err)
+ }
+ if *fWork {
+ fmt.Fprintf(os.Stderr, "temporary work directory: %v\n", td)
+ } else {
+ defer os.RemoveAll(td)
+ }
+
+ files := fs.Args()
+ if len(files) == 0 {
+ files = []string{"-"}
+ }
+
+ for i, fileName := range files {
+ // TODO make running files concurrent by default? If we do, note we'll need to do
+ // something smarter with the runner stdout and stderr below
+ runDir := filepath.Join(td, strconv.Itoa(i))
+ if err := os.Mkdir(runDir, 0777); err != nil {
+ return fmt.Errorf("failed to create a run directory within %v for %v: %v", td, fileName, err)
+ }
+ if err := run(runDir, fileName, *fVerbose, envVars.vals); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+var (
+ failedRun = errors.New("failed run")
+ skipRun = errors.New("skip")
+)
+
+type runner struct {
+ verbose bool
+}
+
+func (r runner) Skip(is ...interface{}) {
+ panic(skipRun)
+}
+
+func (r runner) Fatal(is ...interface{}) {
+ r.Log(is...)
+ r.FailNow()
+}
+
+func (r runner) Parallel() {
+ // No-op for now; we are currently only running a single script in a
+ // testscript instance.
+}
+
+func (r runner) Log(is ...interface{}) {
+ fmt.Print(is...)
+}
+
+func (r runner) FailNow() {
+ panic(failedRun)
+}
+
+func (r runner) Run(n string, f func(t testscript.T)) {
+ // For now we we don't top/tail the run of a subtest. We are currently only
+ // running a single script in a testscript instance, which means that we
+ // will only have a single subtest.
+ f(r)
+}
+
+func (r runner) Verbose() bool {
+ return r.verbose
+}
+
+func run(runDir, fileName string, verbose bool, envVars []string) error {
+ var ar *txtar.Archive
+ var err error
+
+ mods := filepath.Join(runDir, goModProxyDir)
+
+ if err := os.MkdirAll(mods, 0777); err != nil {
+ return fmt.Errorf("failed to create goModProxy dir: %v", err)
+ }
+
+ if fileName == "-" {
+ fileName = ""
+ byts, err := ioutil.ReadAll(os.Stdin)
+ if err != nil {
+ return fmt.Errorf("failed to read from stdin: %v", err)
+ }
+ ar = txtar.Parse(byts)
+ } else {
+ ar, err = txtar.ParseFile(fileName)
+ }
+
+ if err != nil {
+ return fmt.Errorf("failed to txtar parse %v: %v", fileName, err)
+ }
+
+ var script, gomodProxy txtar.Archive
+ script.Comment = ar.Comment
+
+ for _, f := range ar.Files {
+ fp := filepath.Clean(filepath.FromSlash(f.Name))
+ parts := strings.Split(fp, string(os.PathSeparator))
+
+ if len(parts) > 1 && parts[0] == goModProxyDir {
+ gomodProxy.Files = append(gomodProxy.Files, f)
+ } else {
+ script.Files = append(script.Files, f)
+ }
+ }
+
+ if txtar.Write(&gomodProxy, runDir); err != nil {
+ return fmt.Errorf("failed to write .gomodproxy files: %v", err)
+ }
+
+ if err := ioutil.WriteFile(filepath.Join(runDir, "script.txt"), txtar.Format(&script), 0666); err != nil {
+ return fmt.Errorf("failed to write script for %v: %v", fileName, err)
+ }
+
+ p := testscript.Params{
+ Dir: runDir,
+ }
+
+ if _, err := exec.LookPath("go"); err == nil {
+ if err := gotooltest.Setup(&p); err != nil {
+ return fmt.Errorf("failed to setup go tool for %v run: %v", fileName, err)
+ }
+ }
+
+ addSetup := func(f func(env *testscript.Env) error) {
+ origSetup := p.Setup
+ p.Setup = func(env *testscript.Env) error {
+ if origSetup != nil {
+ if err := origSetup(env); err != nil {
+ return err
+ }
+ }
+ return f(env)
+ }
+ }
+
+ if len(gomodProxy.Files) > 0 {
+ srv, err := goproxytest.NewServer(mods, "")
+ if err != nil {
+ return fmt.Errorf("cannot start proxy for %v: %v", fileName, err)
+ }
+ defer srv.Close()
+
+ addSetup(func(env *testscript.Env) error {
+ // Add GOPROXY after calling the original setup
+ // so that it overrides any GOPROXY set there.
+ env.Vars = append(env.Vars, "GOPROXY="+srv.URL)
+ return nil
+ })
+ }
+
+ if len(envVars) > 0 {
+ addSetup(func(env *testscript.Env) error {
+ for _, v := range envVars {
+ if v == "WORK" {
+ // cannot override WORK
+ continue
+ }
+ env.Vars = append(env.Vars, v+"="+os.Getenv(v))
+ }
+ return nil
+ })
+ }
+
+ r := runner{
+ verbose: verbose,
+ }
+
+ func() {
+ defer func() {
+ switch recover() {
+ case nil, skipRun:
+ case failedRun:
+ err = failedRun
+ default:
+ panic(fmt.Errorf("unexpected panic: %v [%T]", err, err))
+ }
+ }()
+ testscript.RunT(r, p)
+ }()
+
+ if err != nil {
+ return fmt.Errorf("error running %v in %v\n", fileName, runDir)
+ }
+
+ return nil
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/cmd/txtar-addmod/addmod.go b/vendor/github.com/rogpeppe/go-internal/cmd/txtar-addmod/addmod.go
index f67dafe49d..bdae889a22 100644
--- a/vendor/github.com/rogpeppe/go-internal/cmd/txtar-addmod/addmod.go
+++ b/vendor/github.com/rogpeppe/go-internal/cmd/txtar-addmod/addmod.go
@@ -29,11 +29,13 @@ import (
"path/filepath"
"strings"
+ "github.com/rogpeppe/go-internal/module"
"github.com/rogpeppe/go-internal/txtar"
)
func usage() {
fmt.Fprintf(os.Stderr, "usage: txtar-addmod dir path@version...\n")
+ flag.PrintDefaults()
os.Exit(2)
}
@@ -50,6 +52,8 @@ func main() {
os.Exit(main1())
}
+var allFiles = flag.Bool("all", false, "include all source files")
+
func main1() int {
flag.Usage = usage
flag.Parse()
@@ -103,6 +107,14 @@ func main1() int {
continue
}
path, vers, dir := f[0], f[1], f[2]
+
+ encpath, err := module.EncodePath(path)
+ if err != nil {
+ log.Printf("failed to encode path %q: %v", path, err)
+ continue
+ }
+ path = encpath
+
mod, err := ioutil.ReadFile(filepath.Join(gopath, "pkg/mod/cache/download", path, "@v", vers+".mod"))
if err != nil {
log.Printf("%s: %v", arg, err)
@@ -131,14 +143,23 @@ func main1() int {
if !info.Mode().IsRegular() {
return nil
}
+ // TODO: skip dirs like "testdata" or "_foo" unless -all
+ // is given?
name := info.Name()
- if name == "go.mod" || strings.HasSuffix(name, ".go") {
- data, err := ioutil.ReadFile(path)
- if err != nil {
- return err
- }
- a.Files = append(a.Files, txtar.File{Name: strings.TrimPrefix(path, dir+string(filepath.Separator)), Data: data})
+ switch {
+ case *allFiles:
+ case name == "go.mod":
+ case strings.HasSuffix(name, ".go"):
+ default:
+ // the name is not in the whitelist, and we're
+ // not including all files via -all
+ return nil
+ }
+ data, err := ioutil.ReadFile(path)
+ if err != nil {
+ return err
}
+ a.Files = append(a.Files, txtar.File{Name: strings.TrimPrefix(path, dir+string(filepath.Separator)), Data: data})
return nil
})
if err != nil {
diff --git a/vendor/github.com/rogpeppe/go-internal/cmd/txtar-savedir/savedir.go b/vendor/github.com/rogpeppe/go-internal/cmd/txtar-savedir/savedir.go
index 4165e028ed..834e054b30 100644
--- a/vendor/github.com/rogpeppe/go-internal/cmd/txtar-savedir/savedir.go
+++ b/vendor/github.com/rogpeppe/go-internal/cmd/txtar-savedir/savedir.go
@@ -31,8 +31,6 @@ func usage() {
os.Exit(2)
}
-const goCmd = "go"
-
func main() {
os.Exit(main1())
}
@@ -44,7 +42,7 @@ func main1() int {
usage()
}
- log.SetPrefix("savedir: ")
+ log.SetPrefix("txtar-savedir: ")
log.SetFlags(0)
dir := flag.Arg(0)
diff --git a/vendor/github.com/rogpeppe/go-internal/cmd/txtar-x/extract.go b/vendor/github.com/rogpeppe/go-internal/cmd/txtar-x/extract.go
new file mode 100644
index 0000000000..38d1a9fd83
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/cmd/txtar-x/extract.go
@@ -0,0 +1,70 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// The txtar-x command extracts a txtar archive to a filesystem.
+//
+// Usage:
+//
+// txtar-x [-C root-dir] saved.txt
+//
+// See https://godoc.org/github.com/rogpeppe/go-internal/txtar for details of the format
+// and how to parse a txtar file.
+//
+package main
+
+import (
+ "flag"
+ "fmt"
+ "io/ioutil"
+ "log"
+ "os"
+
+ "github.com/rogpeppe/go-internal/txtar"
+)
+
+var (
+ extractDir = flag.String("C", ".", "directory to extract files into")
+)
+
+func usage() {
+ fmt.Fprintf(os.Stderr, "usage: txtar-x [flags] [file]\n")
+ flag.PrintDefaults()
+}
+
+func main() {
+ os.Exit(main1())
+}
+
+func main1() int {
+ flag.Usage = usage
+ flag.Parse()
+ if flag.NArg() > 1 {
+ usage()
+ return 2
+ }
+ log.SetPrefix("txtar-x: ")
+ log.SetFlags(0)
+
+ var a *txtar.Archive
+ if flag.NArg() == 0 {
+ data, err := ioutil.ReadAll(os.Stdin)
+ if err != nil {
+ log.Printf("cannot read stdin: %v", err)
+ return 1
+ }
+ a = txtar.Parse(data)
+ } else {
+ a1, err := txtar.ParseFile(flag.Arg(0))
+ if err != nil {
+ log.Print(err)
+ return 1
+ }
+ a = a1
+ }
+ if err := txtar.Write(a, *extractDir); err != nil {
+ log.Print(err)
+ return 1
+ }
+ return 0
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/goproxytest/proxy.go b/vendor/github.com/rogpeppe/go-internal/goproxytest/proxy.go
index 63087ba45b..51eb722376 100644
--- a/vendor/github.com/rogpeppe/go-internal/goproxytest/proxy.go
+++ b/vendor/github.com/rogpeppe/go-internal/goproxytest/proxy.go
@@ -3,22 +3,21 @@
// license that can be found in the LICENSE file.
/*
-Package goproxytest serves Go modules from a proxy
-server designed to run on localhost during tests, both to make tests avoid
-requiring specific network servers and also to make them
-significantly faster.
+Package goproxytest serves Go modules from a proxy server designed to run on
+localhost during tests, both to make tests avoid requiring specific network
+servers and also to make them significantly faster.
-Each module archive is named path_vers.txt, where slashes in path
-have been replaced with underscores. The archive must contain
-two files ".info" and ".mod", to be served as the info and mod files
-in the proxy protocol (see https://research.swtch.com/vgo-module).
-The remaining files are served as the content of the module zip file.
-The path@vers prefix required of files in the zip file is added
-automatically by the proxy: the files in the archive have names without
-the prefix, like plain "go.mod", "x.go", and so on.
+Each module archive is either a file named path_vers.txt or a directory named
+path_vers, where slashes in path have been replaced with underscores. The
+archive or directory must contain two files ".info" and ".mod", to be served as
+the info and mod files in the proxy protocol (see
+https://research.swtch.com/vgo-module). The remaining files are served as the
+content of the module zip file. The path@vers prefix required of files in the
+zip file is added automatically by the proxy: the files in the archive have
+names without the prefix, like plain "go.mod", "x.go", and so on.
-See ../cmd/txtar-addmod and ../cmd/txtar-savedir for tools
-generate txtar files, although it's fine to write them by hand.
+See ../cmd/txtar-addmod and ../cmd/txtar-savedir for tools generate txtar
+files, although it's fine to write them by hand.
*/
package goproxytest
@@ -42,9 +41,9 @@ import (
)
type Server struct {
+ server *http.Server
URL string
dir string
- listener net.Listener
modList []module.Version
zipCache par.Cache
archiveCache par.Cache
@@ -72,17 +71,22 @@ func NewServer(dir, addr string) (*Server, error) {
if err != nil {
return nil, fmt.Errorf("cannot listen on %q: %v", addr, err)
}
+ srv.server = &http.Server{
+ Handler: http.HandlerFunc(srv.handler),
+ }
addr = l.Addr().String()
srv.URL = "http://" + addr + "/mod"
go func() {
- log.Printf("go proxy: http.Serve: %v", http.Serve(l, http.HandlerFunc(srv.handler)))
+ if err := srv.server.Serve(l); err != nil && err != http.ErrServerClosed {
+ log.Printf("go proxy: http.Serve: %v", err)
+ }
}()
return &srv, nil
}
// Close shuts down the proxy.
func (srv *Server) Close() {
- srv.listener.Close()
+ srv.server.Close()
}
func (srv *Server) readModList() error {
@@ -92,7 +96,7 @@ func (srv *Server) readModList() error {
}
for _, info := range infos {
name := info.Name()
- if !strings.HasSuffix(name, ".txt") {
+ if !strings.HasSuffix(name, ".txt") && !info.IsDir() {
continue
}
name = strings.TrimSuffix(name, ".txt")
@@ -275,6 +279,34 @@ func (srv *Server) readArchive(path, vers string) *txtar.Archive {
name := filepath.Join(srv.dir, prefix+"_"+encVers+".txt")
a := srv.archiveCache.Do(name, func() interface{} {
a, err := txtar.ParseFile(name)
+ if os.IsNotExist(err) {
+ // we fallback to trying a directory
+ name = strings.TrimSuffix(name, ".txt")
+
+ a = new(txtar.Archive)
+
+ err = filepath.Walk(name, func(path string, info os.FileInfo, err error) error {
+ if err != nil {
+ return err
+ }
+ if path == name && !info.IsDir() {
+ return fmt.Errorf("expected a directory root")
+ }
+ if info.IsDir() {
+ return nil
+ }
+ arpath := filepath.ToSlash(strings.TrimPrefix(path, name+string(os.PathSeparator)))
+ data, err := ioutil.ReadFile(path)
+ if err != nil {
+ return err
+ }
+ a.Files = append(a.Files, txtar.File{
+ Name: arpath,
+ Data: data,
+ })
+ return nil
+ })
+ }
if err != nil {
if !os.IsNotExist(err) {
fmt.Fprintf(os.Stderr, "go proxy: %v\n", err)
diff --git a/vendor/github.com/rogpeppe/go-internal/goproxytest/testdata/mod/fruit.com_v1.1.0/fruit/main.go b/vendor/github.com/rogpeppe/go-internal/goproxytest/testdata/mod/fruit.com_v1.1.0/fruit/main.go
new file mode 100644
index 0000000000..027a8adac4
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/goproxytest/testdata/mod/fruit.com_v1.1.0/fruit/main.go
@@ -0,0 +1,3 @@
+package fruit
+
+const Name = "Apple"
diff --git a/vendor/github.com/rogpeppe/go-internal/gotooltest/setup.go b/vendor/github.com/rogpeppe/go-internal/gotooltest/setup.go
index 5c598e0a71..84705cfaa2 100644
--- a/vendor/github.com/rogpeppe/go-internal/gotooltest/setup.go
+++ b/vendor/github.com/rogpeppe/go-internal/gotooltest/setup.go
@@ -7,19 +7,74 @@
package gotooltest
import (
+ "bytes"
+ "encoding/json"
"fmt"
+ "go/build"
"os/exec"
"path/filepath"
+ "regexp"
"runtime"
"strings"
+ "sync"
- "github.com/rogpeppe/go-internal/imports"
"github.com/rogpeppe/go-internal/testscript"
)
-type testContext struct {
- goroot string
- gocache string
+var (
+ goVersionRegex = regexp.MustCompile(`^go([1-9][0-9]*)\.(0|[1-9][0-9]*)$`)
+
+ goEnv struct {
+ GOROOT string
+ GOCACHE string
+ GOPROXY string
+ goversion string
+ releaseTags []string
+ once sync.Once
+ err error
+ }
+)
+
+// initGoEnv initialises goEnv. It should only be called using goEnv.once.Do,
+// as in Setup.
+func initGoEnv() error {
+ var err error
+
+ run := func(args ...string) (*bytes.Buffer, *bytes.Buffer, error) {
+ var stdout, stderr bytes.Buffer
+ cmd := exec.Command(args[0], args[1:]...)
+ cmd.Stdout = &stdout
+ cmd.Stderr = &stderr
+ return &stdout, &stderr, cmd.Run()
+ }
+
+ lout, stderr, err := run("go", "list", "-f={{context.ReleaseTags}}", "runtime")
+ if err != nil {
+ return fmt.Errorf("failed to determine release tags from go command: %v\n%v", err, stderr.String())
+ }
+ tagStr := strings.TrimSpace(lout.String())
+ tagStr = strings.Trim(tagStr, "[]")
+ goEnv.releaseTags = strings.Split(tagStr, " ")
+
+ eout, stderr, err := run("go", "env", "-json",
+ "GOROOT",
+ "GOCACHE",
+ "GOPROXY",
+ )
+ if err != nil {
+ return fmt.Errorf("failed to determine environment from go command: %v\n%v", err, stderr)
+ }
+ if err := json.Unmarshal(eout.Bytes(), &goEnv); err != nil {
+ return fmt.Errorf("failed to unmarshal GOROOT and GOCACHE tags from go command out: %v\n%v", err, eout)
+ }
+
+ version := goEnv.releaseTags[len(goEnv.releaseTags)-1]
+ if !goVersionRegex.MatchString(version) {
+ return fmt.Errorf("invalid go version %q", version)
+ }
+ goEnv.goversion = version[2:]
+
+ return nil
}
// Setup sets up the given test environment for tests that use the go
@@ -30,13 +85,16 @@ type testContext struct {
// It checks go command can run, but not that it can build or run
// binaries.
func Setup(p *testscript.Params) error {
- var c testContext
- if err := c.init(); err != nil {
- return err
+ goEnv.once.Do(func() {
+ goEnv.err = initGoEnv()
+ })
+ if goEnv.err != nil {
+ return goEnv.err
}
+
origSetup := p.Setup
p.Setup = func(e *testscript.Env) error {
- e.Vars = c.goEnviron(e.Vars)
+ e.Vars = goEnviron(e.Vars)
if origSetup != nil {
return origSetup(e)
}
@@ -48,13 +106,19 @@ func Setup(p *testscript.Params) error {
p.Cmds["go"] = cmdGo
origCondition := p.Condition
p.Condition = func(cond string) (bool, error) {
- switch cond {
- case runtime.GOOS, runtime.GOARCH, runtime.Compiler:
- return true, nil
- default:
- if imports.KnownArch[cond] || imports.KnownOS[cond] || cond == "gc" || cond == "gccgo" {
- return false, nil
+ if cond == "gc" || cond == "gccgo" {
+ // TODO this reflects the compiler that the current
+ // binary was built with but not necessarily the compiler
+ // that will be used.
+ return cond == runtime.Compiler, nil
+ }
+ if goVersionRegex.MatchString(cond) {
+ for _, v := range build.Default.ReleaseTags {
+ if cond == v {
+ return true, nil
+ }
}
+ return false, nil
}
if origCondition == nil {
return false, fmt.Errorf("unknown condition %q", cond)
@@ -64,27 +128,7 @@ func Setup(p *testscript.Params) error {
return nil
}
-func (c *testContext) init() error {
- goEnv := func(name string) (string, error) {
- out, err := exec.Command("go", "env", name).CombinedOutput()
- if err != nil {
- return "", fmt.Errorf("go env %s: %v (%s)", name, err, out)
- }
- return strings.TrimSpace(string(out)), nil
- }
- var err error
- c.goroot, err = goEnv("GOROOT")
- if err != nil {
- return err
- }
- c.gocache, err = goEnv("GOCACHE")
- if err != nil {
- return err
- }
- return nil
-}
-
-func (c *testContext) goEnviron(env0 []string) []string {
+func goEnviron(env0 []string) []string {
env := environ(env0)
workdir := env.get("WORK")
return append(env, []string{
@@ -92,8 +136,10 @@ func (c *testContext) goEnviron(env0 []string) []string {
"CCACHE_DISABLE=1", // ccache breaks with non-existent HOME
"GOARCH=" + runtime.GOARCH,
"GOOS=" + runtime.GOOS,
- "GOROOT=" + c.goroot,
- "GOCACHE=" + c.gocache,
+ "GOROOT=" + goEnv.GOROOT,
+ "GOCACHE=" + goEnv.GOCACHE,
+ "GOPROXY=" + goEnv.GOPROXY,
+ "goversion=" + goEnv.goversion,
}...)
}
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/os/execpath/exec.go b/vendor/github.com/rogpeppe/go-internal/internal/os/execpath/exec.go
new file mode 100644
index 0000000000..4ef092e956
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/os/execpath/exec.go
@@ -0,0 +1,8 @@
+package execpath
+
+import "os/exec"
+
+type Error = exec.Error
+
+// ErrNotFound is the error resulting if a path search failed to find an executable file.
+var ErrNotFound = exec.ErrNotFound
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/os/execpath/lp_js.go b/vendor/github.com/rogpeppe/go-internal/internal/os/execpath/lp_js.go
new file mode 100644
index 0000000000..c96f5bd537
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/os/execpath/lp_js.go
@@ -0,0 +1,16 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build js,wasm
+
+package execpath
+
+// Look searches for an executable named file, using getenv to look up
+// environment variables. If getenv is nil, os.Getenv will be used. If file
+// contains a slash, it is tried directly and getenv will not be called. The
+// result may be an absolute path or a path relative to the current directory.
+func Look(file string, getenv func(string) string) (string, error) {
+ // Wasm can not execute processes, so act as if there are no executables at all.
+ return "", &Error{file, ErrNotFound}
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/os/execpath/lp_plan9.go b/vendor/github.com/rogpeppe/go-internal/internal/os/execpath/lp_plan9.go
new file mode 100644
index 0000000000..03fd8f4c71
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/os/execpath/lp_plan9.go
@@ -0,0 +1,54 @@
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package execpath
+
+import (
+ "os"
+ "path/filepath"
+ "strings"
+)
+
+func findExecutable(file string) error {
+ d, err := os.Stat(file)
+ if err != nil {
+ return err
+ }
+ if m := d.Mode(); !m.IsDir() && m&0111 != 0 {
+ return nil
+ }
+ return os.ErrPermission
+}
+
+// Look searches for an executable named file, using getenv to look up
+// environment variables. If getenv is nil, os.Getenv will be used. If file
+// contains a slash, it is tried directly and getenv will not be called. The
+// result may be an absolute path or a path relative to the current directory.
+func Look(file string, getenv func(string) string) (string, error) {
+ if getenv == nil {
+ getenv = os.Getenv
+ }
+
+ // skip the path lookup for these prefixes
+ skip := []string{"/", "#", "./", "../"}
+
+ for _, p := range skip {
+ if strings.HasPrefix(file, p) {
+ err := findExecutable(file)
+ if err == nil {
+ return file, nil
+ }
+ return "", &Error{file, err}
+ }
+ }
+
+ path := getenv("path")
+ for _, dir := range filepath.SplitList(path) {
+ path := filepath.Join(dir, file)
+ if err := findExecutable(path); err == nil {
+ return path, nil
+ }
+ }
+ return "", &Error{file, ErrNotFound}
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/os/execpath/lp_unix.go b/vendor/github.com/rogpeppe/go-internal/internal/os/execpath/lp_unix.go
new file mode 100644
index 0000000000..76314ea84a
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/os/execpath/lp_unix.go
@@ -0,0 +1,58 @@
+// Copyright 2010 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build aix darwin dragonfly freebsd linux nacl netbsd openbsd solaris
+
+package execpath
+
+import (
+ "os"
+ "path/filepath"
+ "strings"
+)
+
+func findExecutable(file string) error {
+ d, err := os.Stat(file)
+ if err != nil {
+ return err
+ }
+ if m := d.Mode(); !m.IsDir() && m&0111 != 0 {
+ return nil
+ }
+ return os.ErrPermission
+}
+
+// Look searches for an executable named file, using getenv to look up
+// environment variables. If getenv is nil, os.Getenv will be used. If file
+// contains a slash, it is tried directly and getenv will not be called. The
+// result may be an absolute path or a path relative to the current directory.
+func Look(file string, getenv func(string) string) (string, error) {
+ if getenv == nil {
+ getenv = os.Getenv
+ }
+
+ // NOTE(rsc): I wish we could use the Plan 9 behavior here
+ // (only bypass the path if file begins with / or ./ or ../)
+ // but that would not match all the Unix shells.
+
+ if strings.Contains(file, "/") {
+ err := findExecutable(file)
+ if err == nil {
+ return file, nil
+ }
+ return "", &Error{file, err}
+ }
+ path := getenv("PATH")
+ for _, dir := range filepath.SplitList(path) {
+ if dir == "" {
+ // Unix shell semantics: path element "" means "."
+ dir = "."
+ }
+ path := filepath.Join(dir, file)
+ if err := findExecutable(path); err == nil {
+ return path, nil
+ }
+ }
+ return "", &Error{file, ErrNotFound}
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/os/execpath/lp_windows.go b/vendor/github.com/rogpeppe/go-internal/internal/os/execpath/lp_windows.go
new file mode 100644
index 0000000000..3c9a541f06
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/os/execpath/lp_windows.go
@@ -0,0 +1,92 @@
+// Copyright 2010 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package execpath
+
+import (
+ "os"
+ "path/filepath"
+ "strings"
+)
+
+func chkStat(file string) error {
+ d, err := os.Stat(file)
+ if err != nil {
+ return err
+ }
+ if d.IsDir() {
+ return os.ErrPermission
+ }
+ return nil
+}
+
+func hasExt(file string) bool {
+ i := strings.LastIndex(file, ".")
+ if i < 0 {
+ return false
+ }
+ return strings.LastIndexAny(file, `:\/`) < i
+}
+
+func findExecutable(file string, exts []string) (string, error) {
+ if len(exts) == 0 {
+ return file, chkStat(file)
+ }
+ if hasExt(file) {
+ if chkStat(file) == nil {
+ return file, nil
+ }
+ }
+ for _, e := range exts {
+ if f := file + e; chkStat(f) == nil {
+ return f, nil
+ }
+ }
+ return "", os.ErrNotExist
+}
+
+// Look searches for an executable named file, using getenv to look up
+// environment variables. If getenv is nil, os.Getenv will be used. If file
+// contains a slash, it is tried directly and getenv will not be called. The
+// result may be an absolute path or a path relative to the current directory.
+// Look also uses PATHEXT environment variable to match
+// a suitable candidate.
+func Look(file string, getenv func(string) string) (string, error) {
+ if getenv == nil {
+ getenv = os.Getenv
+ }
+ var exts []string
+ x := getenv(`PATHEXT`)
+ if x != "" {
+ for _, e := range strings.Split(strings.ToLower(x), `;`) {
+ if e == "" {
+ continue
+ }
+ if e[0] != '.' {
+ e = "." + e
+ }
+ exts = append(exts, e)
+ }
+ } else {
+ exts = []string{".com", ".exe", ".bat", ".cmd"}
+ }
+
+ if strings.ContainsAny(file, `:\/`) {
+ if f, err := findExecutable(file, exts); err == nil {
+ return f, nil
+ } else {
+ return "", &Error{file, err}
+ }
+ }
+ if f, err := findExecutable(filepath.Join(".", file), exts); err == nil {
+ return f, nil
+ }
+ path := getenv("path")
+ for _, dir := range filepath.SplitList(path) {
+ if f, err := findExecutable(filepath.Join(dir, file), exts); err == nil {
+ return f, nil
+ }
+ }
+ return "", &Error{file, ErrNotFound}
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/mksyscall.go b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/mksyscall.go
new file mode 100644
index 0000000000..a8edafb3c3
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/mksyscall.go
@@ -0,0 +1,7 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package windows
+
+//go:generate go run $GOROOT/src/syscall/mksyscall_windows.go -output zsyscall_windows.go syscall_windows.go security_windows.go psapi_windows.go symlink_windows.go
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/psapi_windows.go b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/psapi_windows.go
new file mode 100644
index 0000000000..b138e658a9
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/psapi_windows.go
@@ -0,0 +1,20 @@
+// Copyright 2017 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package windows
+
+type PROCESS_MEMORY_COUNTERS struct {
+ CB uint32
+ PageFaultCount uint32
+ PeakWorkingSetSize uintptr
+ WorkingSetSize uintptr
+ QuotaPeakPagedPoolUsage uintptr
+ QuotaPagedPoolUsage uintptr
+ QuotaPeakNonPagedPoolUsage uintptr
+ QuotaNonPagedPoolUsage uintptr
+ PagefileUsage uintptr
+ PeakPagefileUsage uintptr
+}
+
+//sys GetProcessMemoryInfo(handle syscall.Handle, memCounters *PROCESS_MEMORY_COUNTERS, cb uint32) (err error) = psapi.GetProcessMemoryInfo
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/key.go b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/key.go
new file mode 100644
index 0000000000..cc3d0c774b
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/key.go
@@ -0,0 +1,173 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build windows
+
+// Package registry provides access to the Windows registry.
+//
+// Here is a simple example, opening a registry key and reading a string value from it.
+//
+// k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Windows NT\CurrentVersion`, registry.QUERY_VALUE)
+// if err != nil {
+// log.Fatal(err)
+// }
+// defer k.Close()
+//
+// s, _, err := k.GetStringValue("SystemRoot")
+// if err != nil {
+// log.Fatal(err)
+// }
+// fmt.Printf("Windows system root is %q\n", s)
+//
+// NOTE: This package is a copy of golang.org/x/sys/windows/registry
+// with KeyInfo.ModTime removed to prevent dependency cycles.
+//
+package registry
+
+import (
+ "io"
+ "syscall"
+)
+
+const (
+ // Registry key security and access rights.
+ // See https://msdn.microsoft.com/en-us/library/windows/desktop/ms724878.aspx
+ // for details.
+ ALL_ACCESS = 0xf003f
+ CREATE_LINK = 0x00020
+ CREATE_SUB_KEY = 0x00004
+ ENUMERATE_SUB_KEYS = 0x00008
+ EXECUTE = 0x20019
+ NOTIFY = 0x00010
+ QUERY_VALUE = 0x00001
+ READ = 0x20019
+ SET_VALUE = 0x00002
+ WOW64_32KEY = 0x00200
+ WOW64_64KEY = 0x00100
+ WRITE = 0x20006
+)
+
+// Key is a handle to an open Windows registry key.
+// Keys can be obtained by calling OpenKey; there are
+// also some predefined root keys such as CURRENT_USER.
+// Keys can be used directly in the Windows API.
+type Key syscall.Handle
+
+const (
+ // Windows defines some predefined root keys that are always open.
+ // An application can use these keys as entry points to the registry.
+ // Normally these keys are used in OpenKey to open new keys,
+ // but they can also be used anywhere a Key is required.
+ CLASSES_ROOT = Key(syscall.HKEY_CLASSES_ROOT)
+ CURRENT_USER = Key(syscall.HKEY_CURRENT_USER)
+ LOCAL_MACHINE = Key(syscall.HKEY_LOCAL_MACHINE)
+ USERS = Key(syscall.HKEY_USERS)
+ CURRENT_CONFIG = Key(syscall.HKEY_CURRENT_CONFIG)
+)
+
+// Close closes open key k.
+func (k Key) Close() error {
+ return syscall.RegCloseKey(syscall.Handle(k))
+}
+
+// OpenKey opens a new key with path name relative to key k.
+// It accepts any open key, including CURRENT_USER and others,
+// and returns the new key and an error.
+// The access parameter specifies desired access rights to the
+// key to be opened.
+func OpenKey(k Key, path string, access uint32) (Key, error) {
+ p, err := syscall.UTF16PtrFromString(path)
+ if err != nil {
+ return 0, err
+ }
+ var subkey syscall.Handle
+ err = syscall.RegOpenKeyEx(syscall.Handle(k), p, 0, access, &subkey)
+ if err != nil {
+ return 0, err
+ }
+ return Key(subkey), nil
+}
+
+// ReadSubKeyNames returns the names of subkeys of key k.
+// The parameter n controls the number of returned names,
+// analogous to the way os.File.Readdirnames works.
+func (k Key) ReadSubKeyNames(n int) ([]string, error) {
+ names := make([]string, 0)
+ // Registry key size limit is 255 bytes and described there:
+ // https://msdn.microsoft.com/library/windows/desktop/ms724872.aspx
+ buf := make([]uint16, 256) //plus extra room for terminating zero byte
+loopItems:
+ for i := uint32(0); ; i++ {
+ if n > 0 {
+ if len(names) == n {
+ return names, nil
+ }
+ }
+ l := uint32(len(buf))
+ for {
+ err := syscall.RegEnumKeyEx(syscall.Handle(k), i, &buf[0], &l, nil, nil, nil, nil)
+ if err == nil {
+ break
+ }
+ if err == syscall.ERROR_MORE_DATA {
+ // Double buffer size and try again.
+ l = uint32(2 * len(buf))
+ buf = make([]uint16, l)
+ continue
+ }
+ if err == _ERROR_NO_MORE_ITEMS {
+ break loopItems
+ }
+ return names, err
+ }
+ names = append(names, syscall.UTF16ToString(buf[:l]))
+ }
+ if n > len(names) {
+ return names, io.EOF
+ }
+ return names, nil
+}
+
+// CreateKey creates a key named path under open key k.
+// CreateKey returns the new key and a boolean flag that reports
+// whether the key already existed.
+// The access parameter specifies the access rights for the key
+// to be created.
+func CreateKey(k Key, path string, access uint32) (newk Key, openedExisting bool, err error) {
+ var h syscall.Handle
+ var d uint32
+ err = regCreateKeyEx(syscall.Handle(k), syscall.StringToUTF16Ptr(path),
+ 0, nil, _REG_OPTION_NON_VOLATILE, access, nil, &h, &d)
+ if err != nil {
+ return 0, false, err
+ }
+ return Key(h), d == _REG_OPENED_EXISTING_KEY, nil
+}
+
+// DeleteKey deletes the subkey path of key k and its values.
+func DeleteKey(k Key, path string) error {
+ return regDeleteKey(syscall.Handle(k), syscall.StringToUTF16Ptr(path))
+}
+
+// A KeyInfo describes the statistics of a key. It is returned by Stat.
+type KeyInfo struct {
+ SubKeyCount uint32
+ MaxSubKeyLen uint32 // size of the key's subkey with the longest name, in Unicode characters, not including the terminating zero byte
+ ValueCount uint32
+ MaxValueNameLen uint32 // size of the key's longest value name, in Unicode characters, not including the terminating zero byte
+ MaxValueLen uint32 // longest data component among the key's values, in bytes
+ lastWriteTime syscall.Filetime
+}
+
+// Stat retrieves information about the open key k.
+func (k Key) Stat() (*KeyInfo, error) {
+ var ki KeyInfo
+ err := syscall.RegQueryInfoKey(syscall.Handle(k), nil, nil, nil,
+ &ki.SubKeyCount, &ki.MaxSubKeyLen, nil, &ki.ValueCount,
+ &ki.MaxValueNameLen, &ki.MaxValueLen, nil, &ki.lastWriteTime)
+ if err != nil {
+ return nil, err
+ }
+ return &ki, nil
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/mksyscall.go b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/mksyscall.go
new file mode 100644
index 0000000000..077215351e
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/mksyscall.go
@@ -0,0 +1,7 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package registry
+
+//go:generate go run $GOROOT/src/syscall/mksyscall_windows.go -output zsyscall_windows.go syscall.go
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/syscall.go b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/syscall.go
new file mode 100644
index 0000000000..a6525dac5d
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/syscall.go
@@ -0,0 +1,31 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build windows
+
+package registry
+
+import "syscall"
+
+const (
+ _REG_OPTION_NON_VOLATILE = 0
+
+ _REG_CREATED_NEW_KEY = 1
+ _REG_OPENED_EXISTING_KEY = 2
+
+ _ERROR_NO_MORE_ITEMS syscall.Errno = 259
+)
+
+func LoadRegLoadMUIString() error {
+ return procRegLoadMUIStringW.Find()
+}
+
+//sys regCreateKeyEx(key syscall.Handle, subkey *uint16, reserved uint32, class *uint16, options uint32, desired uint32, sa *syscall.SecurityAttributes, result *syscall.Handle, disposition *uint32) (regerrno error) = advapi32.RegCreateKeyExW
+//sys regDeleteKey(key syscall.Handle, subkey *uint16) (regerrno error) = advapi32.RegDeleteKeyW
+//sys regSetValueEx(key syscall.Handle, valueName *uint16, reserved uint32, vtype uint32, buf *byte, bufsize uint32) (regerrno error) = advapi32.RegSetValueExW
+//sys regEnumValue(key syscall.Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegEnumValueW
+//sys regDeleteValue(key syscall.Handle, name *uint16) (regerrno error) = advapi32.RegDeleteValueW
+//sys regLoadMUIString(key syscall.Handle, name *uint16, buf *uint16, buflen uint32, buflenCopied *uint32, flags uint32, dir *uint16) (regerrno error) = advapi32.RegLoadMUIStringW
+
+//sys expandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) = kernel32.ExpandEnvironmentStringsW
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/value.go b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/value.go
new file mode 100644
index 0000000000..71d4e15bab
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/value.go
@@ -0,0 +1,384 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build windows
+
+package registry
+
+import (
+ "errors"
+ "io"
+ "syscall"
+ "unicode/utf16"
+ "unsafe"
+)
+
+const (
+ // Registry value types.
+ NONE = 0
+ SZ = 1
+ EXPAND_SZ = 2
+ BINARY = 3
+ DWORD = 4
+ DWORD_BIG_ENDIAN = 5
+ LINK = 6
+ MULTI_SZ = 7
+ RESOURCE_LIST = 8
+ FULL_RESOURCE_DESCRIPTOR = 9
+ RESOURCE_REQUIREMENTS_LIST = 10
+ QWORD = 11
+)
+
+var (
+ // ErrShortBuffer is returned when the buffer was too short for the operation.
+ ErrShortBuffer = syscall.ERROR_MORE_DATA
+
+ // ErrNotExist is returned when a registry key or value does not exist.
+ ErrNotExist = syscall.ERROR_FILE_NOT_FOUND
+
+ // ErrUnexpectedType is returned by Get*Value when the value's type was unexpected.
+ ErrUnexpectedType = errors.New("unexpected key value type")
+)
+
+// GetValue retrieves the type and data for the specified value associated
+// with an open key k. It fills up buffer buf and returns the retrieved
+// byte count n. If buf is too small to fit the stored value it returns
+// ErrShortBuffer error along with the required buffer size n.
+// If no buffer is provided, it returns true and actual buffer size n.
+// If no buffer is provided, GetValue returns the value's type only.
+// If the value does not exist, the error returned is ErrNotExist.
+//
+// GetValue is a low level function. If value's type is known, use the appropriate
+// Get*Value function instead.
+func (k Key) GetValue(name string, buf []byte) (n int, valtype uint32, err error) {
+ pname, err := syscall.UTF16PtrFromString(name)
+ if err != nil {
+ return 0, 0, err
+ }
+ var pbuf *byte
+ if len(buf) > 0 {
+ pbuf = (*byte)(unsafe.Pointer(&buf[0]))
+ }
+ l := uint32(len(buf))
+ err = syscall.RegQueryValueEx(syscall.Handle(k), pname, nil, &valtype, pbuf, &l)
+ if err != nil {
+ return int(l), valtype, err
+ }
+ return int(l), valtype, nil
+}
+
+func (k Key) getValue(name string, buf []byte) (date []byte, valtype uint32, err error) {
+ p, err := syscall.UTF16PtrFromString(name)
+ if err != nil {
+ return nil, 0, err
+ }
+ var t uint32
+ n := uint32(len(buf))
+ for {
+ err = syscall.RegQueryValueEx(syscall.Handle(k), p, nil, &t, (*byte)(unsafe.Pointer(&buf[0])), &n)
+ if err == nil {
+ return buf[:n], t, nil
+ }
+ if err != syscall.ERROR_MORE_DATA {
+ return nil, 0, err
+ }
+ if n <= uint32(len(buf)) {
+ return nil, 0, err
+ }
+ buf = make([]byte, n)
+ }
+}
+
+// GetStringValue retrieves the string value for the specified
+// value name associated with an open key k. It also returns the value's type.
+// If value does not exist, GetStringValue returns ErrNotExist.
+// If value is not SZ or EXPAND_SZ, it will return the correct value
+// type and ErrUnexpectedType.
+func (k Key) GetStringValue(name string) (val string, valtype uint32, err error) {
+ data, typ, err2 := k.getValue(name, make([]byte, 64))
+ if err2 != nil {
+ return "", typ, err2
+ }
+ switch typ {
+ case SZ, EXPAND_SZ:
+ default:
+ return "", typ, ErrUnexpectedType
+ }
+ if len(data) == 0 {
+ return "", typ, nil
+ }
+ u := (*[1 << 29]uint16)(unsafe.Pointer(&data[0]))[:]
+ return syscall.UTF16ToString(u), typ, nil
+}
+
+// GetMUIStringValue retrieves the localized string value for
+// the specified value name associated with an open key k.
+// If the value name doesn't exist or the localized string value
+// can't be resolved, GetMUIStringValue returns ErrNotExist.
+// GetMUIStringValue panics if the system doesn't support
+// regLoadMUIString; use LoadRegLoadMUIString to check if
+// regLoadMUIString is supported before calling this function.
+func (k Key) GetMUIStringValue(name string) (string, error) {
+ pname, err := syscall.UTF16PtrFromString(name)
+ if err != nil {
+ return "", err
+ }
+
+ buf := make([]uint16, 1024)
+ var buflen uint32
+ var pdir *uint16
+
+ err = regLoadMUIString(syscall.Handle(k), pname, &buf[0], uint32(len(buf)), &buflen, 0, pdir)
+ if err == syscall.ERROR_FILE_NOT_FOUND { // Try fallback path
+
+ // Try to resolve the string value using the system directory as
+ // a DLL search path; this assumes the string value is of the form
+ // @[path]\dllname,-strID but with no path given, e.g. @tzres.dll,-320.
+
+ // This approach works with tzres.dll but may have to be revised
+ // in the future to allow callers to provide custom search paths.
+
+ var s string
+ s, err = ExpandString("%SystemRoot%\\system32\\")
+ if err != nil {
+ return "", err
+ }
+ pdir, err = syscall.UTF16PtrFromString(s)
+ if err != nil {
+ return "", err
+ }
+
+ err = regLoadMUIString(syscall.Handle(k), pname, &buf[0], uint32(len(buf)), &buflen, 0, pdir)
+ }
+
+ for err == syscall.ERROR_MORE_DATA { // Grow buffer if needed
+ if buflen <= uint32(len(buf)) {
+ break // Buffer not growing, assume race; break
+ }
+ buf = make([]uint16, buflen)
+ err = regLoadMUIString(syscall.Handle(k), pname, &buf[0], uint32(len(buf)), &buflen, 0, pdir)
+ }
+
+ if err != nil {
+ return "", err
+ }
+
+ return syscall.UTF16ToString(buf), nil
+}
+
+// ExpandString expands environment-variable strings and replaces
+// them with the values defined for the current user.
+// Use ExpandString to expand EXPAND_SZ strings.
+func ExpandString(value string) (string, error) {
+ if value == "" {
+ return "", nil
+ }
+ p, err := syscall.UTF16PtrFromString(value)
+ if err != nil {
+ return "", err
+ }
+ r := make([]uint16, 100)
+ for {
+ n, err := expandEnvironmentStrings(p, &r[0], uint32(len(r)))
+ if err != nil {
+ return "", err
+ }
+ if n <= uint32(len(r)) {
+ u := (*[1 << 29]uint16)(unsafe.Pointer(&r[0]))[:]
+ return syscall.UTF16ToString(u), nil
+ }
+ r = make([]uint16, n)
+ }
+}
+
+// GetStringsValue retrieves the []string value for the specified
+// value name associated with an open key k. It also returns the value's type.
+// If value does not exist, GetStringsValue returns ErrNotExist.
+// If value is not MULTI_SZ, it will return the correct value
+// type and ErrUnexpectedType.
+func (k Key) GetStringsValue(name string) (val []string, valtype uint32, err error) {
+ data, typ, err2 := k.getValue(name, make([]byte, 64))
+ if err2 != nil {
+ return nil, typ, err2
+ }
+ if typ != MULTI_SZ {
+ return nil, typ, ErrUnexpectedType
+ }
+ if len(data) == 0 {
+ return nil, typ, nil
+ }
+ p := (*[1 << 29]uint16)(unsafe.Pointer(&data[0]))[:len(data)/2]
+ if len(p) == 0 {
+ return nil, typ, nil
+ }
+ if p[len(p)-1] == 0 {
+ p = p[:len(p)-1] // remove terminating null
+ }
+ val = make([]string, 0, 5)
+ from := 0
+ for i, c := range p {
+ if c == 0 {
+ val = append(val, string(utf16.Decode(p[from:i])))
+ from = i + 1
+ }
+ }
+ return val, typ, nil
+}
+
+// GetIntegerValue retrieves the integer value for the specified
+// value name associated with an open key k. It also returns the value's type.
+// If value does not exist, GetIntegerValue returns ErrNotExist.
+// If value is not DWORD or QWORD, it will return the correct value
+// type and ErrUnexpectedType.
+func (k Key) GetIntegerValue(name string) (val uint64, valtype uint32, err error) {
+ data, typ, err2 := k.getValue(name, make([]byte, 8))
+ if err2 != nil {
+ return 0, typ, err2
+ }
+ switch typ {
+ case DWORD:
+ if len(data) != 4 {
+ return 0, typ, errors.New("DWORD value is not 4 bytes long")
+ }
+ return uint64(*(*uint32)(unsafe.Pointer(&data[0]))), DWORD, nil
+ case QWORD:
+ if len(data) != 8 {
+ return 0, typ, errors.New("QWORD value is not 8 bytes long")
+ }
+ return uint64(*(*uint64)(unsafe.Pointer(&data[0]))), QWORD, nil
+ default:
+ return 0, typ, ErrUnexpectedType
+ }
+}
+
+// GetBinaryValue retrieves the binary value for the specified
+// value name associated with an open key k. It also returns the value's type.
+// If value does not exist, GetBinaryValue returns ErrNotExist.
+// If value is not BINARY, it will return the correct value
+// type and ErrUnexpectedType.
+func (k Key) GetBinaryValue(name string) (val []byte, valtype uint32, err error) {
+ data, typ, err2 := k.getValue(name, make([]byte, 64))
+ if err2 != nil {
+ return nil, typ, err2
+ }
+ if typ != BINARY {
+ return nil, typ, ErrUnexpectedType
+ }
+ return data, typ, nil
+}
+
+func (k Key) setValue(name string, valtype uint32, data []byte) error {
+ p, err := syscall.UTF16PtrFromString(name)
+ if err != nil {
+ return err
+ }
+ if len(data) == 0 {
+ return regSetValueEx(syscall.Handle(k), p, 0, valtype, nil, 0)
+ }
+ return regSetValueEx(syscall.Handle(k), p, 0, valtype, &data[0], uint32(len(data)))
+}
+
+// SetDWordValue sets the data and type of a name value
+// under key k to value and DWORD.
+func (k Key) SetDWordValue(name string, value uint32) error {
+ return k.setValue(name, DWORD, (*[4]byte)(unsafe.Pointer(&value))[:])
+}
+
+// SetQWordValue sets the data and type of a name value
+// under key k to value and QWORD.
+func (k Key) SetQWordValue(name string, value uint64) error {
+ return k.setValue(name, QWORD, (*[8]byte)(unsafe.Pointer(&value))[:])
+}
+
+func (k Key) setStringValue(name string, valtype uint32, value string) error {
+ v, err := syscall.UTF16FromString(value)
+ if err != nil {
+ return err
+ }
+ buf := (*[1 << 29]byte)(unsafe.Pointer(&v[0]))[:len(v)*2]
+ return k.setValue(name, valtype, buf)
+}
+
+// SetStringValue sets the data and type of a name value
+// under key k to value and SZ. The value must not contain a zero byte.
+func (k Key) SetStringValue(name, value string) error {
+ return k.setStringValue(name, SZ, value)
+}
+
+// SetExpandStringValue sets the data and type of a name value
+// under key k to value and EXPAND_SZ. The value must not contain a zero byte.
+func (k Key) SetExpandStringValue(name, value string) error {
+ return k.setStringValue(name, EXPAND_SZ, value)
+}
+
+// SetStringsValue sets the data and type of a name value
+// under key k to value and MULTI_SZ. The value strings
+// must not contain a zero byte.
+func (k Key) SetStringsValue(name string, value []string) error {
+ ss := ""
+ for _, s := range value {
+ for i := 0; i < len(s); i++ {
+ if s[i] == 0 {
+ return errors.New("string cannot have 0 inside")
+ }
+ }
+ ss += s + "\x00"
+ }
+ v := utf16.Encode([]rune(ss + "\x00"))
+ buf := (*[1 << 29]byte)(unsafe.Pointer(&v[0]))[:len(v)*2]
+ return k.setValue(name, MULTI_SZ, buf)
+}
+
+// SetBinaryValue sets the data and type of a name value
+// under key k to value and BINARY.
+func (k Key) SetBinaryValue(name string, value []byte) error {
+ return k.setValue(name, BINARY, value)
+}
+
+// DeleteValue removes a named value from the key k.
+func (k Key) DeleteValue(name string) error {
+ return regDeleteValue(syscall.Handle(k), syscall.StringToUTF16Ptr(name))
+}
+
+// ReadValueNames returns the value names of key k.
+// The parameter n controls the number of returned names,
+// analogous to the way os.File.Readdirnames works.
+func (k Key) ReadValueNames(n int) ([]string, error) {
+ ki, err := k.Stat()
+ if err != nil {
+ return nil, err
+ }
+ names := make([]string, 0, ki.ValueCount)
+ buf := make([]uint16, ki.MaxValueNameLen+1) // extra room for terminating null character
+loopItems:
+ for i := uint32(0); ; i++ {
+ if n > 0 {
+ if len(names) == n {
+ return names, nil
+ }
+ }
+ l := uint32(len(buf))
+ for {
+ err := regEnumValue(syscall.Handle(k), i, &buf[0], &l, nil, nil, nil, nil)
+ if err == nil {
+ break
+ }
+ if err == syscall.ERROR_MORE_DATA {
+ // Double buffer size and try again.
+ l = uint32(2 * len(buf))
+ buf = make([]uint16, l)
+ continue
+ }
+ if err == _ERROR_NO_MORE_ITEMS {
+ break loopItems
+ }
+ return names, err
+ }
+ names = append(names, syscall.UTF16ToString(buf[:l]))
+ }
+ if n > len(names) {
+ return names, io.EOF
+ }
+ return names, nil
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/zsyscall_windows.go b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/zsyscall_windows.go
new file mode 100644
index 0000000000..ba1fc7d0ea
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/registry/zsyscall_windows.go
@@ -0,0 +1,111 @@
+// Code generated by 'go generate'; DO NOT EDIT.
+
+package registry
+
+import (
+ "syscall"
+ "unsafe"
+
+ "github.com/rogpeppe/go-internal/internal/syscall/windows/sysdll"
+)
+
+var _ unsafe.Pointer
+
+// Do the interface allocations only once for common
+// Errno values.
+const (
+ errnoERROR_IO_PENDING = 997
+)
+
+var (
+ errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
+)
+
+// errnoErr returns common boxed Errno values, to prevent
+// allocations at runtime.
+func errnoErr(e syscall.Errno) error {
+ switch e {
+ case 0:
+ return nil
+ case errnoERROR_IO_PENDING:
+ return errERROR_IO_PENDING
+ }
+ // TODO: add more here, after collecting data on the common
+ // error values see on Windows. (perhaps when running
+ // all.bat?)
+ return e
+}
+
+var (
+ modadvapi32 = syscall.NewLazyDLL(sysdll.Add("advapi32.dll"))
+ modkernel32 = syscall.NewLazyDLL(sysdll.Add("kernel32.dll"))
+
+ procRegCreateKeyExW = modadvapi32.NewProc("RegCreateKeyExW")
+ procRegDeleteKeyW = modadvapi32.NewProc("RegDeleteKeyW")
+ procRegSetValueExW = modadvapi32.NewProc("RegSetValueExW")
+ procRegEnumValueW = modadvapi32.NewProc("RegEnumValueW")
+ procRegDeleteValueW = modadvapi32.NewProc("RegDeleteValueW")
+ procRegLoadMUIStringW = modadvapi32.NewProc("RegLoadMUIStringW")
+ procExpandEnvironmentStringsW = modkernel32.NewProc("ExpandEnvironmentStringsW")
+)
+
+func regCreateKeyEx(key syscall.Handle, subkey *uint16, reserved uint32, class *uint16, options uint32, desired uint32, sa *syscall.SecurityAttributes, result *syscall.Handle, disposition *uint32) (regerrno error) {
+ r0, _, _ := syscall.Syscall9(procRegCreateKeyExW.Addr(), 9, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(reserved), uintptr(unsafe.Pointer(class)), uintptr(options), uintptr(desired), uintptr(unsafe.Pointer(sa)), uintptr(unsafe.Pointer(result)), uintptr(unsafe.Pointer(disposition)))
+ if r0 != 0 {
+ regerrno = syscall.Errno(r0)
+ }
+ return
+}
+
+func regDeleteKey(key syscall.Handle, subkey *uint16) (regerrno error) {
+ r0, _, _ := syscall.Syscall(procRegDeleteKeyW.Addr(), 2, uintptr(key), uintptr(unsafe.Pointer(subkey)), 0)
+ if r0 != 0 {
+ regerrno = syscall.Errno(r0)
+ }
+ return
+}
+
+func regSetValueEx(key syscall.Handle, valueName *uint16, reserved uint32, vtype uint32, buf *byte, bufsize uint32) (regerrno error) {
+ r0, _, _ := syscall.Syscall6(procRegSetValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(valueName)), uintptr(reserved), uintptr(vtype), uintptr(unsafe.Pointer(buf)), uintptr(bufsize))
+ if r0 != 0 {
+ regerrno = syscall.Errno(r0)
+ }
+ return
+}
+
+func regEnumValue(key syscall.Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) {
+ r0, _, _ := syscall.Syscall9(procRegEnumValueW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen)), 0)
+ if r0 != 0 {
+ regerrno = syscall.Errno(r0)
+ }
+ return
+}
+
+func regDeleteValue(key syscall.Handle, name *uint16) (regerrno error) {
+ r0, _, _ := syscall.Syscall(procRegDeleteValueW.Addr(), 2, uintptr(key), uintptr(unsafe.Pointer(name)), 0)
+ if r0 != 0 {
+ regerrno = syscall.Errno(r0)
+ }
+ return
+}
+
+func regLoadMUIString(key syscall.Handle, name *uint16, buf *uint16, buflen uint32, buflenCopied *uint32, flags uint32, dir *uint16) (regerrno error) {
+ r0, _, _ := syscall.Syscall9(procRegLoadMUIStringW.Addr(), 7, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(unsafe.Pointer(buflenCopied)), uintptr(flags), uintptr(unsafe.Pointer(dir)), 0, 0)
+ if r0 != 0 {
+ regerrno = syscall.Errno(r0)
+ }
+ return
+}
+
+func expandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) {
+ r0, _, e1 := syscall.Syscall(procExpandEnvironmentStringsW.Addr(), 3, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size))
+ n = uint32(r0)
+ if n == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/reparse_windows.go b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/reparse_windows.go
new file mode 100644
index 0000000000..7c6ad8fb7e
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/reparse_windows.go
@@ -0,0 +1,64 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package windows
+
+const (
+ FSCTL_SET_REPARSE_POINT = 0x000900A4
+ IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003
+
+ SYMLINK_FLAG_RELATIVE = 1
+)
+
+// These structures are described
+// in https://msdn.microsoft.com/en-us/library/cc232007.aspx
+// and https://msdn.microsoft.com/en-us/library/cc232006.aspx.
+
+// REPARSE_DATA_BUFFER_HEADER is a common part of REPARSE_DATA_BUFFER structure.
+type REPARSE_DATA_BUFFER_HEADER struct {
+ ReparseTag uint32
+ // The size, in bytes, of the reparse data that follows
+ // the common portion of the REPARSE_DATA_BUFFER element.
+ // This value is the length of the data starting at the
+ // SubstituteNameOffset field.
+ ReparseDataLength uint16
+ Reserved uint16
+}
+
+type SymbolicLinkReparseBuffer struct {
+ // The integer that contains the offset, in bytes,
+ // of the substitute name string in the PathBuffer array,
+ // computed as an offset from byte 0 of PathBuffer. Note that
+ // this offset must be divided by 2 to get the array index.
+ SubstituteNameOffset uint16
+ // The integer that contains the length, in bytes, of the
+ // substitute name string. If this string is null-terminated,
+ // SubstituteNameLength does not include the Unicode null character.
+ SubstituteNameLength uint16
+ // PrintNameOffset is similar to SubstituteNameOffset.
+ PrintNameOffset uint16
+ // PrintNameLength is similar to SubstituteNameLength.
+ PrintNameLength uint16
+ // Flags specifies whether the substitute name is a full path name or
+ // a path name relative to the directory containing the symbolic link.
+ Flags uint32
+ PathBuffer [1]uint16
+}
+
+type MountPointReparseBuffer struct {
+ // The integer that contains the offset, in bytes,
+ // of the substitute name string in the PathBuffer array,
+ // computed as an offset from byte 0 of PathBuffer. Note that
+ // this offset must be divided by 2 to get the array index.
+ SubstituteNameOffset uint16
+ // The integer that contains the length, in bytes, of the
+ // substitute name string. If this string is null-terminated,
+ // SubstituteNameLength does not include the Unicode null character.
+ SubstituteNameLength uint16
+ // PrintNameOffset is similar to SubstituteNameOffset.
+ PrintNameOffset uint16
+ // PrintNameLength is similar to SubstituteNameLength.
+ PrintNameLength uint16
+ PathBuffer [1]uint16
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/security_windows.go b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/security_windows.go
new file mode 100644
index 0000000000..4a2dfc0c73
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/security_windows.go
@@ -0,0 +1,128 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package windows
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+const (
+ SecurityAnonymous = 0
+ SecurityIdentification = 1
+ SecurityImpersonation = 2
+ SecurityDelegation = 3
+)
+
+//sys ImpersonateSelf(impersonationlevel uint32) (err error) = advapi32.ImpersonateSelf
+//sys RevertToSelf() (err error) = advapi32.RevertToSelf
+
+const (
+ TOKEN_ADJUST_PRIVILEGES = 0x0020
+ SE_PRIVILEGE_ENABLED = 0x00000002
+)
+
+type LUID struct {
+ LowPart uint32
+ HighPart int32
+}
+
+type LUID_AND_ATTRIBUTES struct {
+ Luid LUID
+ Attributes uint32
+}
+
+type TOKEN_PRIVILEGES struct {
+ PrivilegeCount uint32
+ Privileges [1]LUID_AND_ATTRIBUTES
+}
+
+//sys OpenThreadToken(h syscall.Handle, access uint32, openasself bool, token *syscall.Token) (err error) = advapi32.OpenThreadToken
+//sys LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) = advapi32.LookupPrivilegeValueW
+//sys adjustTokenPrivileges(token syscall.Token, disableAllPrivileges bool, newstate *TOKEN_PRIVILEGES, buflen uint32, prevstate *TOKEN_PRIVILEGES, returnlen *uint32) (ret uint32, err error) [true] = advapi32.AdjustTokenPrivileges
+
+func AdjustTokenPrivileges(token syscall.Token, disableAllPrivileges bool, newstate *TOKEN_PRIVILEGES, buflen uint32, prevstate *TOKEN_PRIVILEGES, returnlen *uint32) error {
+ ret, err := adjustTokenPrivileges(token, disableAllPrivileges, newstate, buflen, prevstate, returnlen)
+ if ret == 0 {
+ // AdjustTokenPrivileges call failed
+ return err
+ }
+ // AdjustTokenPrivileges call succeeded
+ if err == syscall.EINVAL {
+ // GetLastError returned ERROR_SUCCESS
+ return nil
+ }
+ return err
+}
+
+//sys DuplicateTokenEx(hExistingToken syscall.Token, dwDesiredAccess uint32, lpTokenAttributes *syscall.SecurityAttributes, impersonationLevel uint32, tokenType TokenType, phNewToken *syscall.Token) (err error) = advapi32.DuplicateTokenEx
+//sys SetTokenInformation(tokenHandle syscall.Token, tokenInformationClass uint32, tokenInformation uintptr, tokenInformationLength uint32) (err error) = advapi32.SetTokenInformation
+
+type SID_AND_ATTRIBUTES struct {
+ Sid *syscall.SID
+ Attributes uint32
+}
+
+type TOKEN_MANDATORY_LABEL struct {
+ Label SID_AND_ATTRIBUTES
+}
+
+func (tml *TOKEN_MANDATORY_LABEL) Size() uint32 {
+ return uint32(unsafe.Sizeof(TOKEN_MANDATORY_LABEL{})) + syscall.GetLengthSid(tml.Label.Sid)
+}
+
+const SE_GROUP_INTEGRITY = 0x00000020
+
+type TokenType uint32
+
+const (
+ TokenPrimary TokenType = 1
+ TokenImpersonation TokenType = 2
+)
+
+//sys GetProfilesDirectory(dir *uint16, dirLen *uint32) (err error) = userenv.GetProfilesDirectoryW
+
+const (
+ LG_INCLUDE_INDIRECT = 0x1
+ MAX_PREFERRED_LENGTH = 0xFFFFFFFF
+)
+
+type LocalGroupUserInfo0 struct {
+ Name *uint16
+}
+
+type UserInfo4 struct {
+ Name *uint16
+ Password *uint16
+ PasswordAge uint32
+ Priv uint32
+ HomeDir *uint16
+ Comment *uint16
+ Flags uint32
+ ScriptPath *uint16
+ AuthFlags uint32
+ FullName *uint16
+ UsrComment *uint16
+ Parms *uint16
+ Workstations *uint16
+ LastLogon uint32
+ LastLogoff uint32
+ AcctExpires uint32
+ MaxStorage uint32
+ UnitsPerWeek uint32
+ LogonHours *byte
+ BadPwCount uint32
+ NumLogons uint32
+ LogonServer *uint16
+ CountryCode uint32
+ CodePage uint32
+ UserSid *syscall.SID
+ PrimaryGroupID uint32
+ Profile *uint16
+ HomeDirDrive *uint16
+ PasswordExpired uint32
+}
+
+//sys NetUserGetLocalGroups(serverName *uint16, userName *uint16, level uint32, flags uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32) (neterr error) = netapi32.NetUserGetLocalGroups
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/symlink_windows.go b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/symlink_windows.go
new file mode 100644
index 0000000000..b64d058d13
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/symlink_windows.go
@@ -0,0 +1,39 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package windows
+
+import "syscall"
+
+const (
+ ERROR_INVALID_PARAMETER syscall.Errno = 87
+
+ // symlink support for CreateSymbolicLink() starting with Windows 10 (1703, v10.0.14972)
+ SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE = 0x2
+
+ // FileInformationClass values
+ FileBasicInfo = 0 // FILE_BASIC_INFO
+ FileStandardInfo = 1 // FILE_STANDARD_INFO
+ FileNameInfo = 2 // FILE_NAME_INFO
+ FileStreamInfo = 7 // FILE_STREAM_INFO
+ FileCompressionInfo = 8 // FILE_COMPRESSION_INFO
+ FileAttributeTagInfo = 9 // FILE_ATTRIBUTE_TAG_INFO
+ FileIdBothDirectoryInfo = 0xa // FILE_ID_BOTH_DIR_INFO
+ FileIdBothDirectoryRestartInfo = 0xb // FILE_ID_BOTH_DIR_INFO
+ FileRemoteProtocolInfo = 0xd // FILE_REMOTE_PROTOCOL_INFO
+ FileFullDirectoryInfo = 0xe // FILE_FULL_DIR_INFO
+ FileFullDirectoryRestartInfo = 0xf // FILE_FULL_DIR_INFO
+ FileStorageInfo = 0x10 // FILE_STORAGE_INFO
+ FileAlignmentInfo = 0x11 // FILE_ALIGNMENT_INFO
+ FileIdInfo = 0x12 // FILE_ID_INFO
+ FileIdExtdDirectoryInfo = 0x13 // FILE_ID_EXTD_DIR_INFO
+ FileIdExtdDirectoryRestartInfo = 0x14 // FILE_ID_EXTD_DIR_INFO
+)
+
+type FILE_ATTRIBUTE_TAG_INFO struct {
+ FileAttributes uint32
+ ReparseTag uint32
+}
+
+//sys GetFileInformationByHandleEx(handle syscall.Handle, class uint32, info *byte, bufsize uint32) (err error)
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/syscall_windows.go b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/syscall_windows.go
new file mode 100644
index 0000000000..121132f6f7
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/syscall_windows.go
@@ -0,0 +1,307 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package windows
+
+import (
+ "sync"
+ "syscall"
+ "unsafe"
+)
+
+const (
+ ERROR_SHARING_VIOLATION syscall.Errno = 32
+ ERROR_LOCK_VIOLATION syscall.Errno = 33
+ ERROR_NOT_SUPPORTED syscall.Errno = 50
+ ERROR_CALL_NOT_IMPLEMENTED syscall.Errno = 120
+ ERROR_INVALID_NAME syscall.Errno = 123
+ ERROR_LOCK_FAILED syscall.Errno = 167
+ ERROR_NO_UNICODE_TRANSLATION syscall.Errno = 1113
+)
+
+const GAA_FLAG_INCLUDE_PREFIX = 0x00000010
+
+const (
+ IF_TYPE_OTHER = 1
+ IF_TYPE_ETHERNET_CSMACD = 6
+ IF_TYPE_ISO88025_TOKENRING = 9
+ IF_TYPE_PPP = 23
+ IF_TYPE_SOFTWARE_LOOPBACK = 24
+ IF_TYPE_ATM = 37
+ IF_TYPE_IEEE80211 = 71
+ IF_TYPE_TUNNEL = 131
+ IF_TYPE_IEEE1394 = 144
+)
+
+type SocketAddress struct {
+ Sockaddr *syscall.RawSockaddrAny
+ SockaddrLength int32
+}
+
+type IpAdapterUnicastAddress struct {
+ Length uint32
+ Flags uint32
+ Next *IpAdapterUnicastAddress
+ Address SocketAddress
+ PrefixOrigin int32
+ SuffixOrigin int32
+ DadState int32
+ ValidLifetime uint32
+ PreferredLifetime uint32
+ LeaseLifetime uint32
+ OnLinkPrefixLength uint8
+}
+
+type IpAdapterAnycastAddress struct {
+ Length uint32
+ Flags uint32
+ Next *IpAdapterAnycastAddress
+ Address SocketAddress
+}
+
+type IpAdapterMulticastAddress struct {
+ Length uint32
+ Flags uint32
+ Next *IpAdapterMulticastAddress
+ Address SocketAddress
+}
+
+type IpAdapterDnsServerAdapter struct {
+ Length uint32
+ Reserved uint32
+ Next *IpAdapterDnsServerAdapter
+ Address SocketAddress
+}
+
+type IpAdapterPrefix struct {
+ Length uint32
+ Flags uint32
+ Next *IpAdapterPrefix
+ Address SocketAddress
+ PrefixLength uint32
+}
+
+type IpAdapterAddresses struct {
+ Length uint32
+ IfIndex uint32
+ Next *IpAdapterAddresses
+ AdapterName *byte
+ FirstUnicastAddress *IpAdapterUnicastAddress
+ FirstAnycastAddress *IpAdapterAnycastAddress
+ FirstMulticastAddress *IpAdapterMulticastAddress
+ FirstDnsServerAddress *IpAdapterDnsServerAdapter
+ DnsSuffix *uint16
+ Description *uint16
+ FriendlyName *uint16
+ PhysicalAddress [syscall.MAX_ADAPTER_ADDRESS_LENGTH]byte
+ PhysicalAddressLength uint32
+ Flags uint32
+ Mtu uint32
+ IfType uint32
+ OperStatus uint32
+ Ipv6IfIndex uint32
+ ZoneIndices [16]uint32
+ FirstPrefix *IpAdapterPrefix
+ /* more fields might be present here. */
+}
+
+const (
+ IfOperStatusUp = 1
+ IfOperStatusDown = 2
+ IfOperStatusTesting = 3
+ IfOperStatusUnknown = 4
+ IfOperStatusDormant = 5
+ IfOperStatusNotPresent = 6
+ IfOperStatusLowerLayerDown = 7
+)
+
+//sys GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) = iphlpapi.GetAdaptersAddresses
+//sys GetComputerNameEx(nameformat uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW
+//sys MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) = MoveFileExW
+//sys GetModuleFileName(module syscall.Handle, fn *uint16, len uint32) (n uint32, err error) = kernel32.GetModuleFileNameW
+
+const (
+ WSA_FLAG_OVERLAPPED = 0x01
+ WSA_FLAG_NO_HANDLE_INHERIT = 0x80
+
+ WSAEMSGSIZE syscall.Errno = 10040
+
+ MSG_PEEK = 0x2
+ MSG_TRUNC = 0x0100
+ MSG_CTRUNC = 0x0200
+
+ socket_error = uintptr(^uint32(0))
+)
+
+var WSAID_WSASENDMSG = syscall.GUID{
+ Data1: 0xa441e712,
+ Data2: 0x754f,
+ Data3: 0x43ca,
+ Data4: [8]byte{0x84, 0xa7, 0x0d, 0xee, 0x44, 0xcf, 0x60, 0x6d},
+}
+
+var WSAID_WSARECVMSG = syscall.GUID{
+ Data1: 0xf689d7c8,
+ Data2: 0x6f1f,
+ Data3: 0x436b,
+ Data4: [8]byte{0x8a, 0x53, 0xe5, 0x4f, 0xe3, 0x51, 0xc3, 0x22},
+}
+
+var sendRecvMsgFunc struct {
+ once sync.Once
+ sendAddr uintptr
+ recvAddr uintptr
+ err error
+}
+
+type WSAMsg struct {
+ Name *syscall.RawSockaddrAny
+ Namelen int32
+ Buffers *syscall.WSABuf
+ BufferCount uint32
+ Control syscall.WSABuf
+ Flags uint32
+}
+
+//sys WSASocket(af int32, typ int32, protocol int32, protinfo *syscall.WSAProtocolInfo, group uint32, flags uint32) (handle syscall.Handle, err error) [failretval==syscall.InvalidHandle] = ws2_32.WSASocketW
+
+func loadWSASendRecvMsg() error {
+ sendRecvMsgFunc.once.Do(func() {
+ var s syscall.Handle
+ s, sendRecvMsgFunc.err = syscall.Socket(syscall.AF_INET, syscall.SOCK_DGRAM, syscall.IPPROTO_UDP)
+ if sendRecvMsgFunc.err != nil {
+ return
+ }
+ defer syscall.CloseHandle(s)
+ var n uint32
+ sendRecvMsgFunc.err = syscall.WSAIoctl(s,
+ syscall.SIO_GET_EXTENSION_FUNCTION_POINTER,
+ (*byte)(unsafe.Pointer(&WSAID_WSARECVMSG)),
+ uint32(unsafe.Sizeof(WSAID_WSARECVMSG)),
+ (*byte)(unsafe.Pointer(&sendRecvMsgFunc.recvAddr)),
+ uint32(unsafe.Sizeof(sendRecvMsgFunc.recvAddr)),
+ &n, nil, 0)
+ if sendRecvMsgFunc.err != nil {
+ return
+ }
+ sendRecvMsgFunc.err = syscall.WSAIoctl(s,
+ syscall.SIO_GET_EXTENSION_FUNCTION_POINTER,
+ (*byte)(unsafe.Pointer(&WSAID_WSASENDMSG)),
+ uint32(unsafe.Sizeof(WSAID_WSASENDMSG)),
+ (*byte)(unsafe.Pointer(&sendRecvMsgFunc.sendAddr)),
+ uint32(unsafe.Sizeof(sendRecvMsgFunc.sendAddr)),
+ &n, nil, 0)
+ })
+ return sendRecvMsgFunc.err
+}
+
+func WSASendMsg(fd syscall.Handle, msg *WSAMsg, flags uint32, bytesSent *uint32, overlapped *syscall.Overlapped, croutine *byte) error {
+ err := loadWSASendRecvMsg()
+ if err != nil {
+ return err
+ }
+ r1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.sendAddr, 6, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(flags), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)))
+ if r1 == socket_error {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return err
+}
+
+func WSARecvMsg(fd syscall.Handle, msg *WSAMsg, bytesReceived *uint32, overlapped *syscall.Overlapped, croutine *byte) error {
+ err := loadWSASendRecvMsg()
+ if err != nil {
+ return err
+ }
+ r1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.recvAddr, 5, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(bytesReceived)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0)
+ if r1 == socket_error {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return err
+}
+
+const (
+ ComputerNameNetBIOS = 0
+ ComputerNameDnsHostname = 1
+ ComputerNameDnsDomain = 2
+ ComputerNameDnsFullyQualified = 3
+ ComputerNamePhysicalNetBIOS = 4
+ ComputerNamePhysicalDnsHostname = 5
+ ComputerNamePhysicalDnsDomain = 6
+ ComputerNamePhysicalDnsFullyQualified = 7
+ ComputerNameMax = 8
+
+ MOVEFILE_REPLACE_EXISTING = 0x1
+ MOVEFILE_COPY_ALLOWED = 0x2
+ MOVEFILE_DELAY_UNTIL_REBOOT = 0x4
+ MOVEFILE_WRITE_THROUGH = 0x8
+ MOVEFILE_CREATE_HARDLINK = 0x10
+ MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x20
+)
+
+func Rename(oldpath, newpath string) error {
+ from, err := syscall.UTF16PtrFromString(oldpath)
+ if err != nil {
+ return err
+ }
+ to, err := syscall.UTF16PtrFromString(newpath)
+ if err != nil {
+ return err
+ }
+ return MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING)
+}
+
+//sys LockFileEx(file syscall.Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *syscall.Overlapped) (err error) = kernel32.LockFileEx
+//sys UnlockFileEx(file syscall.Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *syscall.Overlapped) (err error) = kernel32.UnlockFileEx
+
+const (
+ LOCKFILE_FAIL_IMMEDIATELY = 0x00000001
+ LOCKFILE_EXCLUSIVE_LOCK = 0x00000002
+)
+
+const MB_ERR_INVALID_CHARS = 8
+
+//sys GetACP() (acp uint32) = kernel32.GetACP
+//sys GetConsoleCP() (ccp uint32) = kernel32.GetConsoleCP
+//sys MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) = kernel32.MultiByteToWideChar
+//sys GetCurrentThread() (pseudoHandle syscall.Handle, err error) = kernel32.GetCurrentThread
+
+const STYPE_DISKTREE = 0x00
+
+type SHARE_INFO_2 struct {
+ Netname *uint16
+ Type uint32
+ Remark *uint16
+ Permissions uint32
+ MaxUses uint32
+ CurrentUses uint32
+ Path *uint16
+ Passwd *uint16
+}
+
+//sys NetShareAdd(serverName *uint16, level uint32, buf *byte, parmErr *uint16) (neterr error) = netapi32.NetShareAdd
+//sys NetShareDel(serverName *uint16, netName *uint16, reserved uint32) (neterr error) = netapi32.NetShareDel
+
+const (
+ FILE_NAME_NORMALIZED = 0x0
+ FILE_NAME_OPENED = 0x8
+
+ VOLUME_NAME_DOS = 0x0
+ VOLUME_NAME_GUID = 0x1
+ VOLUME_NAME_NONE = 0x4
+ VOLUME_NAME_NT = 0x2
+)
+
+//sys GetFinalPathNameByHandle(file syscall.Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) = kernel32.GetFinalPathNameByHandleW
+
+func LoadGetFinalPathNameByHandle() error {
+ return procGetFinalPathNameByHandleW.Find()
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/sysdll/sysdll.go b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/sysdll/sysdll.go
new file mode 100644
index 0000000000..4e0018f387
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/sysdll/sysdll.go
@@ -0,0 +1,28 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package sysdll is an internal leaf package that records and reports
+// which Windows DLL names are used by Go itself. These DLLs are then
+// only loaded from the System32 directory. See Issue 14959.
+package sysdll
+
+// IsSystemDLL reports whether the named dll key (a base name, like
+// "foo.dll") is a system DLL which should only be loaded from the
+// Windows SYSTEM32 directory.
+//
+// Filenames are case sensitive, but that doesn't matter because
+// the case registered with Add is also the same case used with
+// LoadDLL later.
+//
+// It has no associated mutex and should only be mutated serially
+// (currently: during init), and not concurrent with DLL loading.
+var IsSystemDLL = map[string]bool{}
+
+// Add notes that dll is a system32 DLL which should only be loaded
+// from the Windows SYSTEM32 directory. It returns its argument back,
+// for ease of use in generated code.
+func Add(dll string) string {
+ IsSystemDLL[dll] = true
+ return dll
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/zsyscall_windows.go b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/zsyscall_windows.go
new file mode 100644
index 0000000000..3ed2d9fe01
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/syscall/windows/zsyscall_windows.go
@@ -0,0 +1,363 @@
+// Code generated by 'go generate'; DO NOT EDIT.
+
+package windows
+
+import (
+ "syscall"
+ "unsafe"
+
+ "github.com/rogpeppe/go-internal/internal/syscall/windows/sysdll"
+)
+
+var _ unsafe.Pointer
+
+// Do the interface allocations only once for common
+// Errno values.
+const (
+ errnoERROR_IO_PENDING = 997
+)
+
+var (
+ errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
+)
+
+// errnoErr returns common boxed Errno values, to prevent
+// allocations at runtime.
+func errnoErr(e syscall.Errno) error {
+ switch e {
+ case 0:
+ return nil
+ case errnoERROR_IO_PENDING:
+ return errERROR_IO_PENDING
+ }
+ // TODO: add more here, after collecting data on the common
+ // error values see on Windows. (perhaps when running
+ // all.bat?)
+ return e
+}
+
+var (
+ modiphlpapi = syscall.NewLazyDLL(sysdll.Add("iphlpapi.dll"))
+ modkernel32 = syscall.NewLazyDLL(sysdll.Add("kernel32.dll"))
+ modws2_32 = syscall.NewLazyDLL(sysdll.Add("ws2_32.dll"))
+ modnetapi32 = syscall.NewLazyDLL(sysdll.Add("netapi32.dll"))
+ modadvapi32 = syscall.NewLazyDLL(sysdll.Add("advapi32.dll"))
+ moduserenv = syscall.NewLazyDLL(sysdll.Add("userenv.dll"))
+ modpsapi = syscall.NewLazyDLL(sysdll.Add("psapi.dll"))
+
+ procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses")
+ procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW")
+ procMoveFileExW = modkernel32.NewProc("MoveFileExW")
+ procGetModuleFileNameW = modkernel32.NewProc("GetModuleFileNameW")
+ procWSASocketW = modws2_32.NewProc("WSASocketW")
+ procLockFileEx = modkernel32.NewProc("LockFileEx")
+ procUnlockFileEx = modkernel32.NewProc("UnlockFileEx")
+ procGetACP = modkernel32.NewProc("GetACP")
+ procGetConsoleCP = modkernel32.NewProc("GetConsoleCP")
+ procMultiByteToWideChar = modkernel32.NewProc("MultiByteToWideChar")
+ procGetCurrentThread = modkernel32.NewProc("GetCurrentThread")
+ procNetShareAdd = modnetapi32.NewProc("NetShareAdd")
+ procNetShareDel = modnetapi32.NewProc("NetShareDel")
+ procGetFinalPathNameByHandleW = modkernel32.NewProc("GetFinalPathNameByHandleW")
+ procImpersonateSelf = modadvapi32.NewProc("ImpersonateSelf")
+ procRevertToSelf = modadvapi32.NewProc("RevertToSelf")
+ procOpenThreadToken = modadvapi32.NewProc("OpenThreadToken")
+ procLookupPrivilegeValueW = modadvapi32.NewProc("LookupPrivilegeValueW")
+ procAdjustTokenPrivileges = modadvapi32.NewProc("AdjustTokenPrivileges")
+ procDuplicateTokenEx = modadvapi32.NewProc("DuplicateTokenEx")
+ procSetTokenInformation = modadvapi32.NewProc("SetTokenInformation")
+ procGetProfilesDirectoryW = moduserenv.NewProc("GetProfilesDirectoryW")
+ procNetUserGetLocalGroups = modnetapi32.NewProc("NetUserGetLocalGroups")
+ procGetProcessMemoryInfo = modpsapi.NewProc("GetProcessMemoryInfo")
+ procGetFileInformationByHandleEx = modkernel32.NewProc("GetFileInformationByHandleEx")
+)
+
+func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) {
+ r0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0)
+ if r0 != 0 {
+ errcode = syscall.Errno(r0)
+ }
+ return
+}
+
+func GetComputerNameEx(nameformat uint32, buf *uint16, n *uint32) (err error) {
+ r1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nameformat), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)))
+ if r1 == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) {
+ r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags))
+ if r1 == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func GetModuleFileName(module syscall.Handle, fn *uint16, len uint32) (n uint32, err error) {
+ r0, _, e1 := syscall.Syscall(procGetModuleFileNameW.Addr(), 3, uintptr(module), uintptr(unsafe.Pointer(fn)), uintptr(len))
+ n = uint32(r0)
+ if n == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func WSASocket(af int32, typ int32, protocol int32, protinfo *syscall.WSAProtocolInfo, group uint32, flags uint32) (handle syscall.Handle, err error) {
+ r0, _, e1 := syscall.Syscall6(procWSASocketW.Addr(), 6, uintptr(af), uintptr(typ), uintptr(protocol), uintptr(unsafe.Pointer(protinfo)), uintptr(group), uintptr(flags))
+ handle = syscall.Handle(r0)
+ if handle == syscall.InvalidHandle {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func LockFileEx(file syscall.Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *syscall.Overlapped) (err error) {
+ r1, _, e1 := syscall.Syscall6(procLockFileEx.Addr(), 6, uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)))
+ if r1 == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func UnlockFileEx(file syscall.Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *syscall.Overlapped) (err error) {
+ r1, _, e1 := syscall.Syscall6(procUnlockFileEx.Addr(), 5, uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)), 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func GetACP() (acp uint32) {
+ r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0)
+ acp = uint32(r0)
+ return
+}
+
+func GetConsoleCP() (ccp uint32) {
+ r0, _, _ := syscall.Syscall(procGetConsoleCP.Addr(), 0, 0, 0, 0)
+ ccp = uint32(r0)
+ return
+}
+
+func MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) {
+ r0, _, e1 := syscall.Syscall6(procMultiByteToWideChar.Addr(), 6, uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar))
+ nwrite = int32(r0)
+ if nwrite == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func GetCurrentThread() (pseudoHandle syscall.Handle, err error) {
+ r0, _, e1 := syscall.Syscall(procGetCurrentThread.Addr(), 0, 0, 0, 0)
+ pseudoHandle = syscall.Handle(r0)
+ if pseudoHandle == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func NetShareAdd(serverName *uint16, level uint32, buf *byte, parmErr *uint16) (neterr error) {
+ r0, _, _ := syscall.Syscall6(procNetShareAdd.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(parmErr)), 0, 0)
+ if r0 != 0 {
+ neterr = syscall.Errno(r0)
+ }
+ return
+}
+
+func NetShareDel(serverName *uint16, netName *uint16, reserved uint32) (neterr error) {
+ r0, _, _ := syscall.Syscall(procNetShareDel.Addr(), 3, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(netName)), uintptr(reserved))
+ if r0 != 0 {
+ neterr = syscall.Errno(r0)
+ }
+ return
+}
+
+func GetFinalPathNameByHandle(file syscall.Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) {
+ r0, _, e1 := syscall.Syscall6(procGetFinalPathNameByHandleW.Addr(), 4, uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags), 0, 0)
+ n = uint32(r0)
+ if n == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func ImpersonateSelf(impersonationlevel uint32) (err error) {
+ r1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(impersonationlevel), 0, 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func RevertToSelf() (err error) {
+ r1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func OpenThreadToken(h syscall.Handle, access uint32, openasself bool, token *syscall.Token) (err error) {
+ var _p0 uint32
+ if openasself {
+ _p0 = 1
+ } else {
+ _p0 = 0
+ }
+ r1, _, e1 := syscall.Syscall6(procOpenThreadToken.Addr(), 4, uintptr(h), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token)), 0, 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) {
+ r1, _, e1 := syscall.Syscall(procLookupPrivilegeValueW.Addr(), 3, uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid)))
+ if r1 == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func adjustTokenPrivileges(token syscall.Token, disableAllPrivileges bool, newstate *TOKEN_PRIVILEGES, buflen uint32, prevstate *TOKEN_PRIVILEGES, returnlen *uint32) (ret uint32, err error) {
+ var _p0 uint32
+ if disableAllPrivileges {
+ _p0 = 1
+ } else {
+ _p0 = 0
+ }
+ r0, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen)))
+ ret = uint32(r0)
+ if true {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func DuplicateTokenEx(hExistingToken syscall.Token, dwDesiredAccess uint32, lpTokenAttributes *syscall.SecurityAttributes, impersonationLevel uint32, tokenType TokenType, phNewToken *syscall.Token) (err error) {
+ r1, _, e1 := syscall.Syscall6(procDuplicateTokenEx.Addr(), 6, uintptr(hExistingToken), uintptr(dwDesiredAccess), uintptr(unsafe.Pointer(lpTokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(phNewToken)))
+ if r1 == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func SetTokenInformation(tokenHandle syscall.Token, tokenInformationClass uint32, tokenInformation uintptr, tokenInformationLength uint32) (err error) {
+ r1, _, e1 := syscall.Syscall6(procSetTokenInformation.Addr(), 4, uintptr(tokenHandle), uintptr(tokenInformationClass), uintptr(tokenInformation), uintptr(tokenInformationLength), 0, 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func GetProfilesDirectory(dir *uint16, dirLen *uint32) (err error) {
+ r1, _, e1 := syscall.Syscall(procGetProfilesDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen)), 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func NetUserGetLocalGroups(serverName *uint16, userName *uint16, level uint32, flags uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32) (neterr error) {
+ r0, _, _ := syscall.Syscall9(procNetUserGetLocalGroups.Addr(), 8, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(flags), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), 0)
+ if r0 != 0 {
+ neterr = syscall.Errno(r0)
+ }
+ return
+}
+
+func GetProcessMemoryInfo(handle syscall.Handle, memCounters *PROCESS_MEMORY_COUNTERS, cb uint32) (err error) {
+ r1, _, e1 := syscall.Syscall(procGetProcessMemoryInfo.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(memCounters)), uintptr(cb))
+ if r1 == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func GetFileInformationByHandleEx(handle syscall.Handle, class uint32, info *byte, bufsize uint32) (err error) {
+ r1, _, e1 := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(info)), uintptr(bufsize), 0, 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/textutil/diff.go b/vendor/github.com/rogpeppe/go-internal/internal/textutil/diff.go
new file mode 100644
index 0000000000..59f9e01a6d
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/textutil/diff.go
@@ -0,0 +1,78 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package textutil
+
+import (
+ "fmt"
+ "strings"
+)
+
+// Diff returns a formatted diff of the two texts,
+// showing the entire text and the minimum line-level
+// additions and removals to turn text1 into text2.
+// (That is, lines only in text1 appear with a leading -,
+// and lines only in text2 appear with a leading +.)
+func Diff(text1, text2 string) string {
+ if text1 != "" && !strings.HasSuffix(text1, "\n") {
+ text1 += "(missing final newline)"
+ }
+ lines1 := strings.Split(text1, "\n")
+ lines1 = lines1[:len(lines1)-1] // remove empty string after final line
+ if text2 != "" && !strings.HasSuffix(text2, "\n") {
+ text2 += "(missing final newline)"
+ }
+ lines2 := strings.Split(text2, "\n")
+ lines2 = lines2[:len(lines2)-1] // remove empty string after final line
+
+ // Naive dynamic programming algorithm for edit distance.
+ // https://en.wikipedia.org/wiki/Wagner–Fischer_algorithm
+ // dist[i][j] = edit distance between lines1[:len(lines1)-i] and lines2[:len(lines2)-j]
+ // (The reversed indices make following the minimum cost path
+ // visit lines in the same order as in the text.)
+ dist := make([][]int, len(lines1)+1)
+ for i := range dist {
+ dist[i] = make([]int, len(lines2)+1)
+ if i == 0 {
+ for j := range dist[0] {
+ dist[0][j] = j
+ }
+ continue
+ }
+ for j := range dist[i] {
+ if j == 0 {
+ dist[i][0] = i
+ continue
+ }
+ cost := dist[i][j-1] + 1
+ if cost > dist[i-1][j]+1 {
+ cost = dist[i-1][j] + 1
+ }
+ if lines1[len(lines1)-i] == lines2[len(lines2)-j] {
+ if cost > dist[i-1][j-1] {
+ cost = dist[i-1][j-1]
+ }
+ }
+ dist[i][j] = cost
+ }
+ }
+
+ var buf strings.Builder
+ i, j := len(lines1), len(lines2)
+ for i > 0 || j > 0 {
+ cost := dist[i][j]
+ if i > 0 && j > 0 && cost == dist[i-1][j-1] && lines1[len(lines1)-i] == lines2[len(lines2)-j] {
+ fmt.Fprintf(&buf, " %s\n", lines1[len(lines1)-i])
+ i--
+ j--
+ } else if i > 0 && cost == dist[i-1][j]+1 {
+ fmt.Fprintf(&buf, "-%s\n", lines1[len(lines1)-i])
+ i--
+ } else {
+ fmt.Fprintf(&buf, "+%s\n", lines2[len(lines2)-j])
+ j--
+ }
+ }
+ return buf.String()
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/internal/textutil/doc.go b/vendor/github.com/rogpeppe/go-internal/internal/textutil/doc.go
new file mode 100644
index 0000000000..f4a041a731
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/internal/textutil/doc.go
@@ -0,0 +1,9 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// package textutil contains text processing utilities.
+//
+// This package came to life as a result of refactoring code common to
+// internal packages we have factored out of the Go repo.
+package textutil
diff --git a/vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock.go b/vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock.go
new file mode 100644
index 0000000000..aba3eed776
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock.go
@@ -0,0 +1,98 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package filelock provides a platform-independent API for advisory file
+// locking. Calls to functions in this package on platforms that do not support
+// advisory locks will return errors for which IsNotSupported returns true.
+package filelock
+
+import (
+ "errors"
+ "os"
+)
+
+// A File provides the minimal set of methods required to lock an open file.
+// File implementations must be usable as map keys.
+// The usual implementation is *os.File.
+type File interface {
+ // Name returns the name of the file.
+ Name() string
+
+ // Fd returns a valid file descriptor.
+ // (If the File is an *os.File, it must not be closed.)
+ Fd() uintptr
+
+ // Stat returns the FileInfo structure describing file.
+ Stat() (os.FileInfo, error)
+}
+
+// Lock places an advisory write lock on the file, blocking until it can be
+// locked.
+//
+// If Lock returns nil, no other process will be able to place a read or write
+// lock on the file until this process exits, closes f, or calls Unlock on it.
+//
+// If f's descriptor is already read- or write-locked, the behavior of Lock is
+// unspecified.
+//
+// Closing the file may or may not release the lock promptly. Callers should
+// ensure that Unlock is always called when Lock succeeds.
+func Lock(f File) error {
+ return lock(f, writeLock)
+}
+
+// RLock places an advisory read lock on the file, blocking until it can be locked.
+//
+// If RLock returns nil, no other process will be able to place a write lock on
+// the file until this process exits, closes f, or calls Unlock on it.
+//
+// If f is already read- or write-locked, the behavior of RLock is unspecified.
+//
+// Closing the file may or may not release the lock promptly. Callers should
+// ensure that Unlock is always called if RLock succeeds.
+func RLock(f File) error {
+ return lock(f, readLock)
+}
+
+// Unlock removes an advisory lock placed on f by this process.
+//
+// The caller must not attempt to unlock a file that is not locked.
+func Unlock(f File) error {
+ return unlock(f)
+}
+
+// String returns the name of the function corresponding to lt
+// (Lock, RLock, or Unlock).
+func (lt lockType) String() string {
+ switch lt {
+ case readLock:
+ return "RLock"
+ case writeLock:
+ return "Lock"
+ default:
+ return "Unlock"
+ }
+}
+
+// IsNotSupported returns a boolean indicating whether the error is known to
+// report that a function is not supported (possibly for a specific input).
+// It is satisfied by ErrNotSupported as well as some syscall errors.
+func IsNotSupported(err error) bool {
+ return isNotSupported(underlyingError(err))
+}
+
+var ErrNotSupported = errors.New("operation not supported")
+
+// underlyingError returns the underlying error for known os error types.
+func underlyingError(err error) error {
+ switch err := err.(type) {
+ case *os.PathError:
+ return err.Err
+ case *os.LinkError:
+ return err.Err
+ case *os.SyscallError:
+ return err.Err
+ }
+ return err
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_fcntl.go b/vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_fcntl.go
new file mode 100644
index 0000000000..2831975c0c
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_fcntl.go
@@ -0,0 +1,159 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build aix solaris
+
+// This code implements the filelock API using POSIX 'fcntl' locks, which attach
+// to an (inode, process) pair rather than a file descriptor. To avoid unlocking
+// files prematurely when the same file is opened through different descriptors,
+// we allow only one read-lock at a time.
+//
+// Most platforms provide some alternative API, such as an 'flock' system call
+// or an F_OFD_SETLK command for 'fcntl', that allows for better concurrency and
+// does not require per-inode bookkeeping in the application.
+//
+// TODO(bcmills): If we add a build tag for Illumos (see golang.org/issue/20603)
+// then Illumos should use F_OFD_SETLK, and the resulting code would be as
+// simple as filelock_unix.go. We will still need the code in this file for AIX
+// or as long as Oracle Solaris provides only F_SETLK.
+
+package filelock
+
+import (
+ "errors"
+ "io"
+ "os"
+ "sync"
+ "syscall"
+)
+
+type lockType int16
+
+const (
+ readLock lockType = syscall.F_RDLCK
+ writeLock lockType = syscall.F_WRLCK
+)
+
+type inode = uint64 // type of syscall.Stat_t.Ino
+
+type inodeLock struct {
+ owner File
+ queue []<-chan File
+}
+
+type token struct{}
+
+var (
+ mu sync.Mutex
+ inodes = map[File]inode{}
+ locks = map[inode]inodeLock{}
+)
+
+func lock(f File, lt lockType) (err error) {
+ // POSIX locks apply per inode and process, and the lock for an inode is
+ // released when *any* descriptor for that inode is closed. So we need to
+ // synchronize access to each inode internally, and must serialize lock and
+ // unlock calls that refer to the same inode through different descriptors.
+ fi, err := f.Stat()
+ if err != nil {
+ return err
+ }
+ ino := fi.Sys().(*syscall.Stat_t).Ino
+
+ mu.Lock()
+ if i, dup := inodes[f]; dup && i != ino {
+ mu.Unlock()
+ return &os.PathError{
+ Op: lt.String(),
+ Path: f.Name(),
+ Err: errors.New("inode for file changed since last Lock or RLock"),
+ }
+ }
+ inodes[f] = ino
+
+ var wait chan File
+ l := locks[ino]
+ if l.owner == f {
+ // This file already owns the lock, but the call may change its lock type.
+ } else if l.owner == nil {
+ // No owner: it's ours now.
+ l.owner = f
+ } else {
+ // Already owned: add a channel to wait on.
+ wait = make(chan File)
+ l.queue = append(l.queue, wait)
+ }
+ locks[ino] = l
+ mu.Unlock()
+
+ if wait != nil {
+ wait <- f
+ }
+
+ err = setlkw(f.Fd(), lt)
+
+ if err != nil {
+ unlock(f)
+ return &os.PathError{
+ Op: lt.String(),
+ Path: f.Name(),
+ Err: err,
+ }
+ }
+
+ return nil
+}
+
+func unlock(f File) error {
+ var owner File
+
+ mu.Lock()
+ ino, ok := inodes[f]
+ if ok {
+ owner = locks[ino].owner
+ }
+ mu.Unlock()
+
+ if owner != f {
+ panic("unlock called on a file that is not locked")
+ }
+
+ err := setlkw(f.Fd(), syscall.F_UNLCK)
+
+ mu.Lock()
+ l := locks[ino]
+ if len(l.queue) == 0 {
+ // No waiters: remove the map entry.
+ delete(locks, ino)
+ } else {
+ // The first waiter is sending us their file now.
+ // Receive it and update the queue.
+ l.owner = <-l.queue[0]
+ l.queue = l.queue[1:]
+ locks[ino] = l
+ }
+ delete(inodes, f)
+ mu.Unlock()
+
+ return err
+}
+
+// setlkw calls FcntlFlock with F_SETLKW for the entire file indicated by fd.
+func setlkw(fd uintptr, lt lockType) error {
+ for {
+ err := syscall.FcntlFlock(fd, syscall.F_SETLKW, &syscall.Flock_t{
+ Type: int16(lt),
+ Whence: io.SeekStart,
+ Start: 0,
+ Len: 0, // All bytes.
+ })
+ if err != syscall.EINTR {
+ return err
+ }
+ }
+}
+
+func isNotSupported(err error) bool {
+ return err == syscall.ENOSYS || err == syscall.ENOTSUP || err == syscall.EOPNOTSUPP || err == ErrNotSupported
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_other.go b/vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_other.go
new file mode 100644
index 0000000000..107611e1ce
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_other.go
@@ -0,0 +1,36 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!plan9,!solaris,!windows
+
+package filelock
+
+import "os"
+
+type lockType int8
+
+const (
+ readLock = iota + 1
+ writeLock
+)
+
+func lock(f File, lt lockType) error {
+ return &os.PathError{
+ Op: lt.String(),
+ Path: f.Name(),
+ Err: ErrNotSupported,
+ }
+}
+
+func unlock(f File) error {
+ return &os.PathError{
+ Op: "Unlock",
+ Path: f.Name(),
+ Err: ErrNotSupported,
+ }
+}
+
+func isNotSupported(err error) bool {
+ return err == ErrNotSupported
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_plan9.go b/vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_plan9.go
new file mode 100644
index 0000000000..afdffe323f
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_plan9.go
@@ -0,0 +1,38 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build plan9
+
+package filelock
+
+import (
+ "os"
+)
+
+type lockType int8
+
+const (
+ readLock = iota + 1
+ writeLock
+)
+
+func lock(f File, lt lockType) error {
+ return &os.PathError{
+ Op: lt.String(),
+ Path: f.Name(),
+ Err: ErrNotSupported,
+ }
+}
+
+func unlock(f File) error {
+ return &os.PathError{
+ Op: "Unlock",
+ Path: f.Name(),
+ Err: ErrNotSupported,
+ }
+}
+
+func isNotSupported(err error) bool {
+ return err == ErrNotSupported
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_unix.go b/vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_unix.go
new file mode 100644
index 0000000000..00c4262832
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_unix.go
@@ -0,0 +1,44 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin dragonfly freebsd linux netbsd openbsd
+
+package filelock
+
+import (
+ "os"
+ "syscall"
+)
+
+type lockType int16
+
+const (
+ readLock lockType = syscall.LOCK_SH
+ writeLock lockType = syscall.LOCK_EX
+)
+
+func lock(f File, lt lockType) (err error) {
+ for {
+ err = syscall.Flock(int(f.Fd()), int(lt))
+ if err != syscall.EINTR {
+ break
+ }
+ }
+ if err != nil {
+ return &os.PathError{
+ Op: lt.String(),
+ Path: f.Name(),
+ Err: err,
+ }
+ }
+ return nil
+}
+
+func unlock(f File) error {
+ return lock(f, syscall.LOCK_UN)
+}
+
+func isNotSupported(err error) bool {
+ return err == syscall.ENOSYS || err == syscall.ENOTSUP || err == syscall.EOPNOTSUPP || err == ErrNotSupported
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_windows.go b/vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_windows.go
new file mode 100644
index 0000000000..13403a0d88
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/lockedfile/internal/filelock/filelock_windows.go
@@ -0,0 +1,67 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build windows
+
+package filelock
+
+import (
+ "os"
+ "syscall"
+
+ "github.com/rogpeppe/go-internal/internal/syscall/windows"
+)
+
+type lockType uint32
+
+const (
+ readLock lockType = 0
+ writeLock lockType = windows.LOCKFILE_EXCLUSIVE_LOCK
+)
+
+const (
+ reserved = 0
+ allBytes = ^uint32(0)
+)
+
+func lock(f File, lt lockType) error {
+ // Per https://golang.org/issue/19098, “Programs currently expect the Fd
+ // method to return a handle that uses ordinary synchronous I/O.”
+ // However, LockFileEx still requires an OVERLAPPED structure,
+ // which contains the file offset of the beginning of the lock range.
+ // We want to lock the entire file, so we leave the offset as zero.
+ ol := new(syscall.Overlapped)
+
+ err := windows.LockFileEx(syscall.Handle(f.Fd()), uint32(lt), reserved, allBytes, allBytes, ol)
+ if err != nil {
+ return &os.PathError{
+ Op: lt.String(),
+ Path: f.Name(),
+ Err: err,
+ }
+ }
+ return nil
+}
+
+func unlock(f File) error {
+ ol := new(syscall.Overlapped)
+ err := windows.UnlockFileEx(syscall.Handle(f.Fd()), reserved, allBytes, allBytes, ol)
+ if err != nil {
+ return &os.PathError{
+ Op: "Unlock",
+ Path: f.Name(),
+ Err: err,
+ }
+ }
+ return nil
+}
+
+func isNotSupported(err error) bool {
+ switch err {
+ case windows.ERROR_NOT_SUPPORTED, windows.ERROR_CALL_NOT_IMPLEMENTED, ErrNotSupported:
+ return true
+ default:
+ return false
+ }
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/lockedfile/lockedfile.go b/vendor/github.com/rogpeppe/go-internal/lockedfile/lockedfile.go
new file mode 100644
index 0000000000..bb184b1085
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/lockedfile/lockedfile.go
@@ -0,0 +1,122 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package lockedfile creates and manipulates files whose contents should only
+// change atomically.
+package lockedfile
+
+import (
+ "fmt"
+ "io"
+ "io/ioutil"
+ "os"
+ "runtime"
+)
+
+// A File is a locked *os.File.
+//
+// Closing the file releases the lock.
+//
+// If the program exits while a file is locked, the operating system releases
+// the lock but may not do so promptly: callers must ensure that all locked
+// files are closed before exiting.
+type File struct {
+ osFile
+ closed bool
+}
+
+// osFile embeds a *os.File while keeping the pointer itself unexported.
+// (When we close a File, it must be the same file descriptor that we opened!)
+type osFile struct {
+ *os.File
+}
+
+// OpenFile is like os.OpenFile, but returns a locked file.
+// If flag includes os.O_WRONLY or os.O_RDWR, the file is write-locked;
+// otherwise, it is read-locked.
+func OpenFile(name string, flag int, perm os.FileMode) (*File, error) {
+ var (
+ f = new(File)
+ err error
+ )
+ f.osFile.File, err = openFile(name, flag, perm)
+ if err != nil {
+ return nil, err
+ }
+
+ // Although the operating system will drop locks for open files when the go
+ // command exits, we want to hold locks for as little time as possible, and we
+ // especially don't want to leave a file locked after we're done with it. Our
+ // Close method is what releases the locks, so use a finalizer to report
+ // missing Close calls on a best-effort basis.
+ runtime.SetFinalizer(f, func(f *File) {
+ panic(fmt.Sprintf("lockedfile.File %s became unreachable without a call to Close", f.Name()))
+ })
+
+ return f, nil
+}
+
+// Open is like os.Open, but returns a read-locked file.
+func Open(name string) (*File, error) {
+ return OpenFile(name, os.O_RDONLY, 0)
+}
+
+// Create is like os.Create, but returns a write-locked file.
+func Create(name string) (*File, error) {
+ return OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666)
+}
+
+// Edit creates the named file with mode 0666 (before umask),
+// but does not truncate existing contents.
+//
+// If Edit succeeds, methods on the returned File can be used for I/O.
+// The associated file descriptor has mode O_RDWR and the file is write-locked.
+func Edit(name string) (*File, error) {
+ return OpenFile(name, os.O_RDWR|os.O_CREATE, 0666)
+}
+
+// Close unlocks and closes the underlying file.
+//
+// Close may be called multiple times; all calls after the first will return a
+// non-nil error.
+func (f *File) Close() error {
+ if f.closed {
+ return &os.PathError{
+ Op: "close",
+ Path: f.Name(),
+ Err: os.ErrClosed,
+ }
+ }
+ f.closed = true
+
+ err := closeFile(f.osFile.File)
+ runtime.SetFinalizer(f, nil)
+ return err
+}
+
+// Read opens the named file with a read-lock and returns its contents.
+func Read(name string) ([]byte, error) {
+ f, err := Open(name)
+ if err != nil {
+ return nil, err
+ }
+ defer f.Close()
+
+ return ioutil.ReadAll(f)
+}
+
+// Write opens the named file (creating it with the given permissions if needed),
+// then write-locks it and overwrites it with the given content.
+func Write(name string, content io.Reader, perm os.FileMode) (err error) {
+ f, err := OpenFile(name, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm)
+ if err != nil {
+ return err
+ }
+
+ _, err = io.Copy(f, content)
+ if closeErr := f.Close(); err == nil {
+ err = closeErr
+ }
+ return err
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/lockedfile/lockedfile_filelock.go b/vendor/github.com/rogpeppe/go-internal/lockedfile/lockedfile_filelock.go
new file mode 100644
index 0000000000..14cf86cbc9
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/lockedfile/lockedfile_filelock.go
@@ -0,0 +1,64 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !plan9
+
+package lockedfile
+
+import (
+ "os"
+
+ "github.com/rogpeppe/go-internal/lockedfile/internal/filelock"
+)
+
+func openFile(name string, flag int, perm os.FileMode) (*os.File, error) {
+ // On BSD systems, we could add the O_SHLOCK or O_EXLOCK flag to the OpenFile
+ // call instead of locking separately, but we have to support separate locking
+ // calls for Linux and Windows anyway, so it's simpler to use that approach
+ // consistently.
+
+ f, err := os.OpenFile(name, flag&^os.O_TRUNC, perm)
+ if err != nil {
+ return nil, err
+ }
+
+ switch flag & (os.O_RDONLY | os.O_WRONLY | os.O_RDWR) {
+ case os.O_WRONLY, os.O_RDWR:
+ err = filelock.Lock(f)
+ default:
+ err = filelock.RLock(f)
+ }
+ if err != nil {
+ f.Close()
+ return nil, err
+ }
+
+ if flag&os.O_TRUNC == os.O_TRUNC {
+ if err := f.Truncate(0); err != nil {
+ // The documentation for os.O_TRUNC says “if possible, truncate file when
+ // opened”, but doesn't define “possible” (golang.org/issue/28699).
+ // We'll treat regular files (and symlinks to regular files) as “possible”
+ // and ignore errors for the rest.
+ if fi, statErr := f.Stat(); statErr != nil || fi.Mode().IsRegular() {
+ filelock.Unlock(f)
+ f.Close()
+ return nil, err
+ }
+ }
+ }
+
+ return f, nil
+}
+
+func closeFile(f *os.File) error {
+ // Since locking syscalls operate on file descriptors, we must unlock the file
+ // while the descriptor is still valid — that is, before the file is closed —
+ // and avoid unlocking files that are already closed.
+ err := filelock.Unlock(f)
+
+ if closeErr := f.Close(); err == nil {
+ err = closeErr
+ }
+ return err
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/lockedfile/lockedfile_plan9.go b/vendor/github.com/rogpeppe/go-internal/lockedfile/lockedfile_plan9.go
new file mode 100644
index 0000000000..4a52c94976
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/lockedfile/lockedfile_plan9.go
@@ -0,0 +1,93 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build plan9
+
+package lockedfile
+
+import (
+ "math/rand"
+ "os"
+ "strings"
+ "time"
+)
+
+// Opening an exclusive-use file returns an error.
+// The expected error strings are:
+//
+// - "open/create -- file is locked" (cwfs, kfs)
+// - "exclusive lock" (fossil)
+// - "exclusive use file already open" (ramfs)
+var lockedErrStrings = [...]string{
+ "file is locked",
+ "exclusive lock",
+ "exclusive use file already open",
+}
+
+// Even though plan9 doesn't support the Lock/RLock/Unlock functions to
+// manipulate already-open files, IsLocked is still meaningful: os.OpenFile
+// itself may return errors that indicate that a file with the ModeExclusive bit
+// set is already open.
+func isLocked(err error) bool {
+ s := err.Error()
+
+ for _, frag := range lockedErrStrings {
+ if strings.Contains(s, frag) {
+ return true
+ }
+ }
+
+ return false
+}
+
+func openFile(name string, flag int, perm os.FileMode) (*os.File, error) {
+ // Plan 9 uses a mode bit instead of explicit lock/unlock syscalls.
+ //
+ // Per http://man.cat-v.org/plan_9/5/stat: “Exclusive use files may be open
+ // for I/O by only one fid at a time across all clients of the server. If a
+ // second open is attempted, it draws an error.”
+ //
+ // So we can try to open a locked file, but if it fails we're on our own to
+ // figure out when it becomes available. We'll use exponential backoff with
+ // some jitter and an arbitrary limit of 500ms.
+
+ // If the file was unpacked or created by some other program, it might not
+ // have the ModeExclusive bit set. Set it before we call OpenFile, so that we
+ // can be confident that a successful OpenFile implies exclusive use.
+ if fi, err := os.Stat(name); err == nil {
+ if fi.Mode()&os.ModeExclusive == 0 {
+ if err := os.Chmod(name, fi.Mode()|os.ModeExclusive); err != nil {
+ return nil, err
+ }
+ }
+ } else if !os.IsNotExist(err) {
+ return nil, err
+ }
+
+ nextSleep := 1 * time.Millisecond
+ const maxSleep = 500 * time.Millisecond
+ for {
+ f, err := os.OpenFile(name, flag, perm|os.ModeExclusive)
+ if err == nil {
+ return f, nil
+ }
+
+ if !isLocked(err) {
+ return nil, err
+ }
+
+ time.Sleep(nextSleep)
+
+ nextSleep += nextSleep
+ if nextSleep > maxSleep {
+ nextSleep = maxSleep
+ }
+ // Apply 10% jitter to avoid synchronizing collisions.
+ nextSleep += time.Duration((0.1*rand.Float64() - 0.05) * float64(nextSleep))
+ }
+}
+
+func closeFile(f *os.File) error {
+ return f.Close()
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/lockedfile/mutex.go b/vendor/github.com/rogpeppe/go-internal/lockedfile/mutex.go
new file mode 100644
index 0000000000..17f3751c37
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/lockedfile/mutex.go
@@ -0,0 +1,60 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package lockedfile
+
+import (
+ "fmt"
+ "os"
+)
+
+// A Mutex provides mutual exclusion within and across processes by locking a
+// well-known file. Such a file generally guards some other part of the
+// filesystem: for example, a Mutex file in a directory might guard access to
+// the entire tree rooted in that directory.
+//
+// Mutex does not implement sync.Locker: unlike a sync.Mutex, a lockedfile.Mutex
+// can fail to lock (e.g. if there is a permission error in the filesystem).
+//
+// Like a sync.Mutex, a Mutex may be included as a field of a larger struct but
+// must not be copied after first use. The Path field must be set before first
+// use and must not be change thereafter.
+type Mutex struct {
+ Path string // The path to the well-known lock file. Must be non-empty.
+}
+
+// MutexAt returns a new Mutex with Path set to the given non-empty path.
+func MutexAt(path string) *Mutex {
+ if path == "" {
+ panic("lockedfile.MutexAt: path must be non-empty")
+ }
+ return &Mutex{Path: path}
+}
+
+func (mu *Mutex) String() string {
+ return fmt.Sprintf("lockedfile.Mutex(%s)", mu.Path)
+}
+
+// Lock attempts to lock the Mutex.
+//
+// If successful, Lock returns a non-nil unlock function: it is provided as a
+// return-value instead of a separate method to remind the caller to check the
+// accompanying error. (See https://golang.org/issue/20803.)
+func (mu *Mutex) Lock() (unlock func(), err error) {
+ if mu.Path == "" {
+ panic("lockedfile.Mutex: missing Path during Lock")
+ }
+
+ // We could use either O_RDWR or O_WRONLY here. If we choose O_RDWR and the
+ // file at mu.Path is write-only, the call to OpenFile will fail with a
+ // permission error. That's actually what we want: if we add an RLock method
+ // in the future, it should call OpenFile with O_RDONLY and will require the
+ // files must be readable, so we should not let the caller make any
+ // assumptions about Mutex working with write-only files.
+ f, err := OpenFile(mu.Path, os.O_RDWR|os.O_CREATE, 0666)
+ if err != nil {
+ return nil, err
+ }
+ return func() { f.Close() }, nil
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/renameio/renameio.go b/vendor/github.com/rogpeppe/go-internal/renameio/renameio.go
new file mode 100644
index 0000000000..8f59e1a577
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/renameio/renameio.go
@@ -0,0 +1,63 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package renameio writes files atomically by renaming temporary files.
+package renameio
+
+import (
+ "bytes"
+ "io"
+ "io/ioutil"
+ "os"
+ "path/filepath"
+)
+
+const patternSuffix = "*.tmp"
+
+// Pattern returns a glob pattern that matches the unrenamed temporary files
+// created when writing to filename.
+func Pattern(filename string) string {
+ return filepath.Join(filepath.Dir(filename), filepath.Base(filename)+patternSuffix)
+}
+
+// WriteFile is like ioutil.WriteFile, but first writes data to an arbitrary
+// file in the same directory as filename, then renames it atomically to the
+// final name.
+//
+// That ensures that the final location, if it exists, is always a complete file.
+func WriteFile(filename string, data []byte) (err error) {
+ return WriteToFile(filename, bytes.NewReader(data))
+}
+
+// WriteToFile is a variant of WriteFile that accepts the data as an io.Reader
+// instead of a slice.
+func WriteToFile(filename string, data io.Reader) (err error) {
+ f, err := ioutil.TempFile(filepath.Dir(filename), filepath.Base(filename)+patternSuffix)
+ if err != nil {
+ return err
+ }
+ defer func() {
+ // Only call os.Remove on f.Name() if we failed to rename it: otherwise,
+ // some other process may have created a new file with the same name after
+ // that.
+ if err != nil {
+ f.Close()
+ os.Remove(f.Name())
+ }
+ }()
+
+ if _, err := io.Copy(f, data); err != nil {
+ return err
+ }
+ // Sync the file before renaming it: otherwise, after a crash the reader may
+ // observe a 0-length file instead of the actual contents.
+ // See https://golang.org/issue/22397#issuecomment-380831736.
+ if err := f.Sync(); err != nil {
+ return err
+ }
+ if err := f.Close(); err != nil {
+ return err
+ }
+ return os.Rename(f.Name(), filename)
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/testscript/cmd.go b/vendor/github.com/rogpeppe/go-internal/testscript/cmd.go
index e66ed9916b..0ddf22a123 100644
--- a/vendor/github.com/rogpeppe/go-internal/testscript/cmd.go
+++ b/vendor/github.com/rogpeppe/go-internal/testscript/cmd.go
@@ -5,12 +5,16 @@
package testscript
import (
+ "fmt"
"io/ioutil"
"os"
+ "os/exec"
"path/filepath"
"regexp"
"strconv"
"strings"
+
+ "github.com/rogpeppe/go-internal/internal/textutil"
)
// scriptCmds are the script command implementations.
@@ -22,6 +26,7 @@ var scriptCmds = map[string]func(*TestScript, bool, []string){
"cd": (*TestScript).cmdCd,
"chmod": (*TestScript).cmdChmod,
"cmp": (*TestScript).cmdCmp,
+ "cmpenv": (*TestScript).cmdCmpenv,
"cp": (*TestScript).cmdCp,
"env": (*TestScript).cmdEnv,
"exec": (*TestScript).cmdExec,
@@ -30,10 +35,12 @@ var scriptCmds = map[string]func(*TestScript, bool, []string){
"mkdir": (*TestScript).cmdMkdir,
"rm": (*TestScript).cmdRm,
"skip": (*TestScript).cmdSkip,
+ "stdin": (*TestScript).cmdStdin,
"stderr": (*TestScript).cmdStderr,
"stdout": (*TestScript).cmdStdout,
"stop": (*TestScript).cmdStop,
"symlink": (*TestScript).cmdSymlink,
+ "wait": (*TestScript).cmdWait,
}
// cd changes to a different directory.
@@ -94,6 +101,21 @@ func (ts *TestScript) cmdCmp(neg bool, args []string) {
ts.Fatalf("usage: cmp file1 file2")
}
+ ts.doCmdCmp(args, false)
+}
+
+// cmpenv compares two files with environment variable substitution.
+func (ts *TestScript) cmdCmpenv(neg bool, args []string) {
+ if neg {
+ ts.Fatalf("unsupported: ! cmpenv")
+ }
+ if len(args) != 2 {
+ ts.Fatalf("usage: cmpenv file1 file2")
+ }
+ ts.doCmdCmp(args, true)
+}
+
+func (ts *TestScript) doCmdCmp(args []string, env bool) {
name1, name2 := args[0], args[1]
var text1, text2 string
if name1 == "stdout" {
@@ -110,11 +132,15 @@ func (ts *TestScript) cmdCmp(neg bool, args []string) {
ts.Check(err)
text2 = string(data)
+ if env {
+ text2 = ts.expand(text2)
+ }
+
if text1 == text2 {
return
}
- ts.Logf("[diff -%s +%s]\n%s\n", name1, name2, diff(text1, text2))
+ ts.Logf("[diff -%s +%s]\n%s\n", name1, name2, textutil.Diff(text1, text2))
ts.Fatalf("%s and %s differ", name1, name2)
}
@@ -156,8 +182,9 @@ func (ts *TestScript) cmdEnv(neg bool, args []string) {
if len(args) == 0 {
printed := make(map[string]bool) // env list can have duplicates; only print effective value (from envMap) once
for _, kv := range ts.env {
- k := kv[:strings.Index(kv, "=")]
+ k := envvarname(kv[:strings.Index(kv, "=")])
if !printed[k] {
+ printed[k] = true
ts.Logf("%s=%s\n", k, ts.envMap[k])
}
}
@@ -167,30 +194,53 @@ func (ts *TestScript) cmdEnv(neg bool, args []string) {
i := strings.Index(env, "=")
if i < 0 {
// Display value instead of setting it.
- ts.Logf("%s=%s\n", env, ts.envMap[env])
+ ts.Logf("%s=%s\n", env, ts.Getenv(env))
continue
}
- ts.env = append(ts.env, env)
- ts.envMap[env[:i]] = env[i+1:]
+ ts.Setenv(env[:i], env[i+1:])
}
}
// exec runs the given command.
func (ts *TestScript) cmdExec(neg bool, args []string) {
- if len(args) < 1 {
- ts.Fatalf("usage: exec program [args...]")
+ if len(args) < 1 || (len(args) == 1 && args[0] == "&") {
+ ts.Fatalf("usage: exec program [args...] [&]")
}
- err := ts.Exec(args[0], args[1:]...)
- if err != nil {
- ts.Logf("[%v]\n", err)
- if !neg {
- ts.Fatalf("unexpected command failure")
+
+ var err error
+ if len(args) > 0 && args[len(args)-1] == "&" {
+ var cmd *exec.Cmd
+ cmd, err = ts.execBackground(args[0], args[1:len(args)-1]...)
+ if err == nil {
+ wait := make(chan struct{})
+ go func() {
+ ctxWait(ts.ctxt, cmd)
+ close(wait)
+ }()
+ ts.background = append(ts.background, backgroundCmd{cmd, wait, neg})
}
+ ts.stdout, ts.stderr = "", ""
} else {
- if neg {
+ ts.stdout, ts.stderr, err = ts.exec(args[0], args[1:]...)
+ if ts.stdout != "" {
+ fmt.Fprintf(&ts.log, "[stdout]\n%s", ts.stdout)
+ }
+ if ts.stderr != "" {
+ fmt.Fprintf(&ts.log, "[stderr]\n%s", ts.stderr)
+ }
+ if err == nil && neg {
ts.Fatalf("unexpected command success")
}
}
+
+ if err != nil {
+ fmt.Fprintf(&ts.log, "[%v]\n", err)
+ if ts.ctxt.Err() != nil {
+ ts.Fatalf("test timed out while running command")
+ } else if !neg {
+ ts.Fatalf("unexpected command failure")
+ }
+ }
}
// exists checks that the list of files exists.
@@ -259,12 +309,32 @@ func (ts *TestScript) cmdSkip(neg bool, args []string) {
if neg {
ts.Fatalf("unsupported: ! skip")
}
+
+ // Before we mark the test as skipped, shut down any background processes and
+ // make sure they have returned the correct status.
+ for _, bg := range ts.background {
+ interruptProcess(bg.cmd.Process)
+ }
+ ts.cmdWait(false, nil)
+
if len(args) == 1 {
ts.t.Skip(args[0])
}
ts.t.Skip()
}
+func (ts *TestScript) cmdStdin(neg bool, args []string) {
+ if neg {
+ ts.Fatalf("unsupported: ! stdin")
+ }
+ if len(args) != 1 {
+ ts.Fatalf("usage: stdin filename")
+ }
+ data, err := ioutil.ReadFile(ts.MkAbs(args[0]))
+ ts.Check(err)
+ ts.stdin = string(data)
+}
+
// stdout checks that the last go command standard output matches a regexp.
func (ts *TestScript) cmdStdout(neg bool, args []string) {
scriptMatch(ts, neg, args, ts.stdout, "stdout")
@@ -310,6 +380,52 @@ func (ts *TestScript) cmdSymlink(neg bool, args []string) {
ts.Check(os.Symlink(args[2], ts.MkAbs(args[0])))
}
+// Tait waits for background commands to exit, setting stderr and stdout to their result.
+func (ts *TestScript) cmdWait(neg bool, args []string) {
+ if neg {
+ ts.Fatalf("unsupported: ! wait")
+ }
+ if len(args) > 0 {
+ ts.Fatalf("usage: wait")
+ }
+
+ var stdouts, stderrs []string
+ for _, bg := range ts.background {
+ <-bg.wait
+
+ args := append([]string{filepath.Base(bg.cmd.Args[0])}, bg.cmd.Args[1:]...)
+ fmt.Fprintf(&ts.log, "[background] %s: %v\n", strings.Join(args, " "), bg.cmd.ProcessState)
+
+ cmdStdout := bg.cmd.Stdout.(*strings.Builder).String()
+ if cmdStdout != "" {
+ fmt.Fprintf(&ts.log, "[stdout]\n%s", cmdStdout)
+ stdouts = append(stdouts, cmdStdout)
+ }
+
+ cmdStderr := bg.cmd.Stderr.(*strings.Builder).String()
+ if cmdStderr != "" {
+ fmt.Fprintf(&ts.log, "[stderr]\n%s", cmdStderr)
+ stderrs = append(stderrs, cmdStderr)
+ }
+
+ if bg.cmd.ProcessState.Success() {
+ if bg.neg {
+ ts.Fatalf("unexpected command success")
+ }
+ } else {
+ if ts.ctxt.Err() != nil {
+ ts.Fatalf("test timed out while running command")
+ } else if !bg.neg {
+ ts.Fatalf("unexpected command failure")
+ }
+ }
+ }
+
+ ts.stdout = strings.Join(stdouts, "")
+ ts.stderr = strings.Join(stderrs, "")
+ ts.background = nil
+}
+
// scriptMatch implements both stdout and stderr.
func scriptMatch(ts *TestScript, neg bool, args []string, text, name string) {
n := 0
diff --git a/vendor/github.com/rogpeppe/go-internal/testscript/cover.go b/vendor/github.com/rogpeppe/go-internal/testscript/cover.go
index 0a01f7db61..09400c9547 100644
--- a/vendor/github.com/rogpeppe/go-internal/testscript/cover.go
+++ b/vendor/github.com/rogpeppe/go-internal/testscript/cover.go
@@ -1,3 +1,7 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
package testscript
import (
diff --git a/vendor/github.com/rogpeppe/go-internal/testscript/doc.go b/vendor/github.com/rogpeppe/go-internal/testscript/doc.go
index c1a35f8f91..e05258c292 100644
--- a/vendor/github.com/rogpeppe/go-internal/testscript/doc.go
+++ b/vendor/github.com/rogpeppe/go-internal/testscript/doc.go
@@ -10,7 +10,7 @@ To invoke the tests, call testscript.Run. For example:
func TestFoo(t *testing.T) {
testscript.Run(t, testscript.Params{
- Dir: "scripts",
+ Dir: "testdata",
})
}
@@ -46,11 +46,11 @@ create in the script's temporary file system before it starts executing.
As an example:
# hello world
- exec cat hello
- stdout "hello world\n"
+ exec cat hello.text
+ stdout 'hello world\n'
! stderr .
- -- hello.txt--
+ -- hello.text --
hello world
Each script runs in a fresh temporary work directory tree, available to scripts as $WORK.
@@ -60,6 +60,7 @@ Scripts also have access to these other environment variables:
PATH=
TMPDIR=$WORK/tmp
devnull=
+ goversion=
The environment variable $exe (lowercase) is an empty string on most
systems, ".exe" on Windows.
@@ -86,6 +87,12 @@ quote indicates a literal single quote, as in:
A line beginning with # is a comment and conventionally explains what is
being done or tested at the start of a new phase in the script.
+A special form of environment variable syntax can be used to quote
+regexp metacharacters inside environment variables. The "@R" suffix
+is special, and indicates that the variable should be quoted.
+
+ ${VAR@R}
+
The command prefix ! indicates that the command on the rest of the line
(typically go or a matching predicate) must fail, not succeed. Only certain
commands support this prefix. They are indicated below by [!] in the synopsis.
@@ -117,9 +124,13 @@ The predefined commands are:
Check that the named files have the same content.
By convention, file1 is the actual data and file2 the expected data.
File1 can be "stdout" or "stderr" to use the standard output or standard error
- from the most recent exec or go command.
+ from the most recent exec or wait command.
(If the files have differing content, the failure prints a diff.)
+- cmpenv file1 file2
+ Like cmp, but environment variables in file2 are substituted before the
+ comparison. For example, $GOOS is replaced by the target GOOS.
+
- cp src... dst
Copy the listed files to the target file or existing directory.
@@ -127,11 +138,21 @@ The predefined commands are:
With no arguments, print the environment (useful for debugging).
Otherwise add the listed key=value pairs to the environment.
-- [!] exec program [args...]
+- [!] exec program [args...] [&]
Run the given executable program with the arguments.
It must (or must not) succeed.
Note that 'exec' does not terminate the script (unlike in Unix shells).
+ If the last token is '&', the program executes in the background. The standard
+ output and standard error of the previous command is cleared, but the output
+ of the background process is buffered — and checking of its exit status is
+ delayed — until the next call to 'wait', 'skip', or 'stop' or the end of the
+ test. At the end of the test, any remaining background processes are
+ terminated using os.Interrupt (if supported) or os.Kill.
+
+ Standard input can be provided using the stdin command; this will be
+ cleared after exec has been called.
+
- [!] exists [-readonly] file...
Each of the listed files or directories must (or must not) exist.
If -readonly is given, the files or directories must be unwritable.
@@ -149,13 +170,16 @@ The predefined commands are:
- skip [message]
Mark the test skipped, including the message if given.
+- stdin file
+ Set the standard input for the next exec command to the contents of the given file.
+
- [!] stderr [-count=N] pattern
Apply the grep command (see above) to the standard error
- from the most recent exec or go command.
+ from the most recent exec or wait command.
- [!] stdout [-count=N] pattern
Apply the grep command (see above) to the standard output
- from the most recent exec or go command.
+ from the most recent exec or wait command.
- stop [message]
Stop the test early (marking it as passing), including the message if given.
@@ -163,6 +187,13 @@ The predefined commands are:
- symlink file -> target
Create file as a symlink to target. The -> (like in ls -l output) is required.
+- wait
+ Wait for all 'exec' and 'go' commands started in the background (with the '&'
+ token) to exit, and display success or failure status for them.
+ After a call to wait, the 'stderr' and 'stdout' commands will apply to the
+ concatenation of the corresponding streams of the background commands,
+ in the order in which those commands were started.
+
When TestScript runs a script and the script fails, by default TestScript shows
the execution of the most recent phase of the script (since the last # comment)
and only shows the # comments for earlier phases. For example, here is a
diff --git a/vendor/github.com/rogpeppe/go-internal/testscript/envvarname.go b/vendor/github.com/rogpeppe/go-internal/testscript/envvarname.go
new file mode 100644
index 0000000000..a4ec1f756a
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/testscript/envvarname.go
@@ -0,0 +1,7 @@
+// +build !windows
+
+package testscript
+
+func envvarname(k string) string {
+ return k
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/testscript/envvarname_windows.go b/vendor/github.com/rogpeppe/go-internal/testscript/envvarname_windows.go
new file mode 100644
index 0000000000..7c6a3b85dc
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/testscript/envvarname_windows.go
@@ -0,0 +1,7 @@
+package testscript
+
+import "strings"
+
+func envvarname(k string) string {
+ return strings.ToLower(k)
+}
diff --git a/vendor/github.com/rogpeppe/go-internal/testscript/exe.go b/vendor/github.com/rogpeppe/go-internal/testscript/exe.go
index 554a485347..46e5b6e659 100644
--- a/vendor/github.com/rogpeppe/go-internal/testscript/exe.go
+++ b/vendor/github.com/rogpeppe/go-internal/testscript/exe.go
@@ -1,3 +1,7 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
package testscript
import (
@@ -37,6 +41,12 @@ func IgnoreMissedCoverage() {
// code to pass to os.Exit. It's OK for a command function to
// exit itself, but this may result in loss of coverage information.
//
+// When Run is called, these commands will be available as
+// testscript commands; note that these commands behave like
+// commands run with the "exec" command: they set stdout
+// and stderr, and can be run in the background by passing "&"
+// as a final argument.
+//
// This function returns an exit code to pass to os.Exit, after calling m.Run.
func RunMain(m TestingM, commands map[string]func() int) (exitCode int) {
goCoverProfileMerge()
diff --git a/vendor/github.com/rogpeppe/go-internal/testscript/testscript.go b/vendor/github.com/rogpeppe/go-internal/testscript/testscript.go
index 21c069e727..d0a28d51e2 100644
--- a/vendor/github.com/rogpeppe/go-internal/testscript/testscript.go
+++ b/vendor/github.com/rogpeppe/go-internal/testscript/testscript.go
@@ -9,18 +9,22 @@ package testscript
import (
"bytes"
+ "context"
"flag"
"fmt"
"io/ioutil"
"os"
"os/exec"
"path/filepath"
+ "regexp"
"runtime"
"strings"
"sync/atomic"
"testing"
"time"
+ "github.com/rogpeppe/go-internal/imports"
+ "github.com/rogpeppe/go-internal/internal/os/execpath"
"github.com/rogpeppe/go-internal/par"
"github.com/rogpeppe/go-internal/testenv"
"github.com/rogpeppe/go-internal/txtar"
@@ -38,6 +42,16 @@ type Env struct {
WorkDir string
Vars []string
Cd string
+
+ ts *TestScript
+}
+
+// Defer arranges for f to be called at the end
+// of the test. If Defer is called multiple times, the
+// defers are executed in reverse order (similar
+// to Go's defer statement)
+func (e *Env) Defer(f func()) {
+ e.ts.Defer(f)
}
// Params holds parameters for a call to Run.
@@ -50,7 +64,8 @@ type Params struct {
// Setup is called, if not nil, to complete any setup required
// for a test. The WorkDir and Vars fields will have already
- // been initialized, and Cd will be the same as WorkDir.
+ // been initialized and all the files extracted into WorkDir,
+ // and Cd will be the same as WorkDir.
// The Setup function may modify Vars and Cd as it wishes.
Setup func(*Env) error
@@ -78,6 +93,40 @@ type Params struct {
// RunDir runs the tests in the given directory. All files in dir with a ".txt"
// are considered to be test files.
func Run(t *testing.T, p Params) {
+ RunT(tshim{t}, p)
+}
+
+// T holds all the methods of the *testing.T type that
+// are used by testscript.
+type T interface {
+ Skip(...interface{})
+ Fatal(...interface{})
+ Parallel()
+ Log(...interface{})
+ FailNow()
+ Run(string, func(T))
+ // Verbose is usually implemented by the testing package
+ // directly rather than on the *testing.T type.
+ Verbose() bool
+}
+
+type tshim struct {
+ *testing.T
+}
+
+func (t tshim) Run(name string, f func(T)) {
+ t.T.Run(name, func(t *testing.T) {
+ f(tshim{t})
+ })
+}
+
+func (t tshim) Verbose() bool {
+ return testing.Verbose()
+}
+
+// RunT is like Run but uses an interface type instead of the concrete *testing.T
+// type to make it possible to use testscript functionality outside of go test.
+func RunT(t T, p Params) {
files, err := filepath.Glob(filepath.Join(p.Dir, "*.txt"))
if err != nil {
t.Fatal(err)
@@ -90,7 +139,7 @@ func Run(t *testing.T, p Params) {
for _, file := range files {
file := file
name := strings.TrimSuffix(filepath.Base(file), ".txt")
- t.Run(name, func(t *testing.T) {
+ t.Run(name, func(t T) {
t.Parallel()
ts := &TestScript{
t: t,
@@ -98,18 +147,20 @@ func Run(t *testing.T, p Params) {
name: name,
file: file,
params: p,
+ ctxt: context.Background(),
+ deferred: func() {},
}
- ts.setup()
- if !p.TestWork {
- defer func() {
- removeAll(ts.workdir)
- if atomic.AddInt32(&refCount, -1) == 0 {
- // This is the last subtest to finish. Remove the
- // parent directory too.
- os.Remove(testTempDir)
- }
- }()
- }
+ defer func() {
+ if p.TestWork {
+ return
+ }
+ removeAll(ts.workdir)
+ if atomic.AddInt32(&refCount, -1) == 0 {
+ // This is the last subtest to finish. Remove the
+ // parent directory too.
+ os.Remove(testTempDir)
+ }
+ }()
ts.run()
})
}
@@ -118,7 +169,7 @@ func Run(t *testing.T, p Params) {
// A TestScript holds execution state for a single test script.
type TestScript struct {
params Params
- t *testing.T
+ t T
testTempDir string
workdir string // temporary work dir ($WORK)
log bytes.Buffer // test execution log (printed at end of test)
@@ -129,15 +180,27 @@ type TestScript struct {
lineno int // line number currently executing
line string // line currently executing
env []string // environment list (for os/exec)
- envMap map[string]string // environment mapping (matches env)
+ envMap map[string]string // environment mapping (matches env; on Windows keys are lowercase)
+ stdin string // standard input to next 'go' command; set by 'stdin' command.
stdout string // standard output from last 'go' command; for 'stdout' command
stderr string // standard error from last 'go' command; for 'stderr' command
stopped bool // test wants to stop early
start time.Time // time phase started
+ background []backgroundCmd // backgrounded 'exec' and 'go' commands
+ deferred func() // deferred cleanup actions.
+
+ ctxt context.Context // per TestScript context
+}
+
+type backgroundCmd struct {
+ cmd *exec.Cmd
+ wait <-chan struct{}
+ neg bool // if true, cmd should fail
}
// setup sets up the test execution temporary directory and environment.
-func (ts *TestScript) setup() {
+// It returns the comment section of the txtar archive.
+func (ts *TestScript) setup() string {
ts.workdir = filepath.Join(ts.testTempDir, "script-"+ts.name)
ts.Check(os.MkdirAll(filepath.Join(ts.workdir, "tmp"), 0777))
env := &Env{
@@ -151,7 +214,29 @@ func (ts *TestScript) setup() {
},
WorkDir: ts.workdir,
Cd: ts.workdir,
+ ts: ts,
}
+ // Must preserve SYSTEMROOT on Windows: https://github.com/golang/go/issues/25513 et al
+ if runtime.GOOS == "windows" {
+ env.Vars = append(env.Vars,
+ "SYSTEMROOT="+os.Getenv("SYSTEMROOT"),
+ "exe=.exe",
+ )
+ } else {
+ env.Vars = append(env.Vars,
+ "exe=",
+ )
+ }
+ ts.cd = env.Cd
+ // Unpack archive.
+ a, err := txtar.ParseFile(ts.file)
+ ts.Check(err)
+ for _, f := range a.Files {
+ name := ts.MkAbs(ts.expand(f.Name))
+ ts.Check(os.MkdirAll(filepath.Dir(name), 0777))
+ ts.Check(ioutil.WriteFile(name, f.Data, 0666))
+ }
+ // Run any user-defined setup.
if ts.params.Setup != nil {
ts.Check(ts.params.Setup(env))
}
@@ -161,9 +246,10 @@ func (ts *TestScript) setup() {
ts.envMap = make(map[string]string)
for _, kv := range ts.env {
if i := strings.Index(kv, "="); i >= 0 {
- ts.envMap[kv[:i]] = kv[i+1:]
+ ts.envMap[envvarname(kv[:i])] = kv[i+1:]
}
}
+ return string(a.Comment)
}
// run runs the test script.
@@ -171,7 +257,7 @@ func (ts *TestScript) run() {
// Truncate log at end of last phase marker,
// discarding details of successful phase.
rewind := func() {
- if !testing.Verbose() {
+ if !ts.t.Verbose() {
ts.log.Truncate(ts.mark)
}
}
@@ -188,22 +274,28 @@ func (ts *TestScript) run() {
}
defer func() {
+ // On a normal exit from the test loop, background processes are cleaned up
+ // before we print PASS. If we return early (e.g., due to a test failure),
+ // don't print anything about the processes that were still running.
+ for _, bg := range ts.background {
+ interruptProcess(bg.cmd.Process)
+ }
+ for _, bg := range ts.background {
+ <-bg.wait
+ }
+ ts.background = nil
+
markTime()
// Flush testScript log to testing.T log.
ts.t.Log("\n" + ts.abbrev(ts.log.String()))
}()
-
- // Unpack archive.
- a, err := txtar.ParseFile(ts.file)
- ts.Check(err)
- for _, f := range a.Files {
- name := ts.MkAbs(ts.expand(f.Name))
- ts.Check(os.MkdirAll(filepath.Dir(name), 0777))
- ts.Check(ioutil.WriteFile(name, f.Data, 0666))
- }
+ defer func() {
+ ts.deferred()
+ }()
+ script := ts.setup()
// With -v or -testwork, start log with full environment.
- if *testWork || testing.Verbose() {
+ if *testWork || ts.t.Verbose() {
// Display environment.
ts.cmdEnv(false, nil)
fmt.Fprintf(&ts.log, "\n")
@@ -212,7 +304,6 @@ func (ts *TestScript) run() {
// Run script.
// See testdata/script/README for documentation of script form.
- script := string(a.Comment)
Script:
for script != "" {
// Extract next line.
@@ -298,14 +389,23 @@ Script:
// Command can ask script to stop early.
if ts.stopped {
- return
+ // Break instead of returning, so that we check the status of any
+ // background processes and print PASS.
+ break
}
}
+ for _, bg := range ts.background {
+ interruptProcess(bg.cmd.Process)
+ }
+ ts.cmdWait(false, nil)
+
// Final phase ended.
rewind()
markTime()
- fmt.Fprintf(&ts.log, "PASS\n")
+ if !ts.stopped {
+ fmt.Fprintf(&ts.log, "PASS\n")
+ }
}
// condition reports whether the given condition is satisfied.
@@ -319,11 +419,16 @@ func (ts *TestScript) condition(cond string) (bool, error) {
return testenv.HasLink(), nil
case "symlink":
return testenv.HasSymlink(), nil
+ case runtime.GOOS, runtime.GOARCH:
+ return true, nil
default:
+ if imports.KnownArch[cond] || imports.KnownOS[cond] {
+ return false, nil
+ }
if strings.HasPrefix(cond, "exec:") {
prog := cond[len("exec:"):]
ok := execCache.Do(prog, func() interface{} {
- _, err := exec.LookPath(prog)
+ _, err := execpath.Look(prog, ts.Getenv)
return err == nil
}).(bool)
return ok, nil
@@ -349,6 +454,18 @@ func (ts *TestScript) abbrev(s string) string {
return s
}
+// Defer arranges for f to be called at the end
+// of the test. If Defer is called multiple times, the
+// defers are executed in reverse order (similar
+// to Go's defer statement)
+func (ts *TestScript) Defer(f func()) {
+ old := ts.deferred
+ ts.deferred = func() {
+ defer old()
+ f()
+ }
+}
+
// Check calls ts.Fatalf if err != nil.
func (ts *TestScript) Check(err error) {
if err != nil {
@@ -366,16 +483,89 @@ func (ts *TestScript) Logf(format string, args ...interface{}) {
// exec runs the given command line (an actual subprocess, not simulated)
// in ts.cd with environment ts.env and then returns collected standard output and standard error.
func (ts *TestScript) exec(command string, args ...string) (stdout, stderr string, err error) {
- cmd := exec.Command(command, args...)
+ cmd, err := ts.buildExecCmd(command, args...)
+ if err != nil {
+ return "", "", err
+ }
cmd.Dir = ts.cd
cmd.Env = append(ts.env, "PWD="+ts.cd)
+ cmd.Stdin = strings.NewReader(ts.stdin)
var stdoutBuf, stderrBuf strings.Builder
cmd.Stdout = &stdoutBuf
cmd.Stderr = &stderrBuf
- err = cmd.Run()
+ if err = cmd.Start(); err == nil {
+ err = ctxWait(ts.ctxt, cmd)
+ }
+ ts.stdin = ""
return stdoutBuf.String(), stderrBuf.String(), err
}
+// execBackground starts the given command line (an actual subprocess, not simulated)
+// in ts.cd with environment ts.env.
+func (ts *TestScript) execBackground(command string, args ...string) (*exec.Cmd, error) {
+ cmd, err := ts.buildExecCmd(command, args...)
+ if err != nil {
+ return nil, err
+ }
+ cmd.Dir = ts.cd
+ cmd.Env = append(ts.env, "PWD="+ts.cd)
+ var stdoutBuf, stderrBuf strings.Builder
+ cmd.Stdin = strings.NewReader(ts.stdin)
+ cmd.Stdout = &stdoutBuf
+ cmd.Stderr = &stderrBuf
+ ts.stdin = ""
+ return cmd, cmd.Start()
+}
+
+func (ts *TestScript) buildExecCmd(command string, args ...string) (*exec.Cmd, error) {
+ if filepath.Base(command) == command {
+ if lp, err := execpath.Look(command, ts.Getenv); err != nil {
+ return nil, err
+ } else {
+ command = lp
+ }
+ }
+ return exec.Command(command, args...), nil
+}
+
+// BackgroundCmds returns a slice containing all the commands that have
+// been started in the background since the most recent wait command, or
+// the start of the script if wait has not been called.
+func (ts *TestScript) BackgroundCmds() []*exec.Cmd {
+ cmds := make([]*exec.Cmd, len(ts.background))
+ for i, b := range ts.background {
+ cmds[i] = b.cmd
+ }
+ return cmds
+}
+
+// ctxWait is like cmd.Wait, but terminates cmd with os.Interrupt if ctx becomes done.
+//
+// This differs from exec.CommandContext in that it prefers os.Interrupt over os.Kill.
+// (See https://golang.org/issue/21135.)
+func ctxWait(ctx context.Context, cmd *exec.Cmd) error {
+ errc := make(chan error, 1)
+ go func() { errc <- cmd.Wait() }()
+
+ select {
+ case err := <-errc:
+ return err
+ case <-ctx.Done():
+ interruptProcess(cmd.Process)
+ return <-errc
+ }
+}
+
+// interruptProcess sends os.Interrupt to p if supported, or os.Kill otherwise.
+func interruptProcess(p *os.Process) {
+ if err := p.Signal(os.Interrupt); err != nil {
+ // Per https://golang.org/pkg/os/#Signal, “Interrupt is not implemented on
+ // Windows; using it with os.Process.Signal will return an error.”
+ // Fall back to Kill instead.
+ p.Kill()
+ }
+}
+
// Exec runs the given command and saves its stdout and stderr so
// they can be inspected by subsequent script commands.
func (ts *TestScript) Exec(command string, args ...string) error {
@@ -392,7 +582,12 @@ func (ts *TestScript) Exec(command string, args ...string) error {
// expand applies environment variable expansion to the string s.
func (ts *TestScript) expand(s string) string {
- return os.Expand(s, func(key string) string { return ts.envMap[key] })
+ return os.Expand(s, func(key string) string {
+ if key1 := strings.TrimSuffix(key, "@R"); len(key1) != len(key) {
+ return regexp.QuoteMeta(ts.Getenv(key1))
+ }
+ return ts.Getenv(key)
+ })
}
// fatalf aborts the test with the given failure message.
@@ -410,6 +605,17 @@ func (ts *TestScript) MkAbs(file string) string {
return filepath.Join(ts.cd, file)
}
+// Setenv sets the value of the environment variable named by the key.
+func (ts *TestScript) Setenv(key, value string) {
+ ts.env = append(ts.env, key+"="+value)
+ ts.envMap[envvarname(key)] = value
+}
+
+// Getenv gets the value of the environment variable named by the key.
+func (ts *TestScript) Getenv(key string) string {
+ return ts.envMap[envvarname(key)]
+}
+
// parse parses a single line as a list of space-separated arguments
// subject to environment variable expansion (but not resplitting).
// Single quotes around text disable splitting and expansion.
@@ -471,74 +677,6 @@ func (ts *TestScript) parse(line string) []string {
return args
}
-// diff returns a formatted diff of the two texts,
-// showing the entire text and the minimum line-level
-// additions and removals to turn text1 into text2.
-// (That is, lines only in text1 appear with a leading -,
-// and lines only in text2 appear with a leading +.)
-func diff(text1, text2 string) string {
- if text1 != "" && !strings.HasSuffix(text1, "\n") {
- text1 += "(missing final newline)"
- }
- lines1 := strings.Split(text1, "\n")
- lines1 = lines1[:len(lines1)-1] // remove empty string after final line
- if text2 != "" && !strings.HasSuffix(text2, "\n") {
- text2 += "(missing final newline)"
- }
- lines2 := strings.Split(text2, "\n")
- lines2 = lines2[:len(lines2)-1] // remove empty string after final line
-
- // Naive dynamic programming algorithm for edit distance.
- // https://en.wikipedia.org/wiki/Wagner–Fischer_algorithm
- // dist[i][j] = edit distance between lines1[:len(lines1)-i] and lines2[:len(lines2)-j]
- // (The reversed indices make following the minimum cost path
- // visit lines in the same order as in the text.)
- dist := make([][]int, len(lines1)+1)
- for i := range dist {
- dist[i] = make([]int, len(lines2)+1)
- if i == 0 {
- for j := range dist[0] {
- dist[0][j] = j
- }
- continue
- }
- for j := range dist[i] {
- if j == 0 {
- dist[i][0] = i
- continue
- }
- cost := dist[i][j-1] + 1
- if cost > dist[i-1][j]+1 {
- cost = dist[i-1][j] + 1
- }
- if lines1[len(lines1)-i] == lines2[len(lines2)-j] {
- if cost > dist[i-1][j-1] {
- cost = dist[i-1][j-1]
- }
- }
- dist[i][j] = cost
- }
- }
-
- var buf strings.Builder
- i, j := len(lines1), len(lines2)
- for i > 0 || j > 0 {
- cost := dist[i][j]
- if i > 0 && j > 0 && cost == dist[i-1][j-1] && lines1[len(lines1)-i] == lines2[len(lines2)-j] {
- fmt.Fprintf(&buf, " %s\n", lines1[len(lines1)-i])
- i--
- j--
- } else if i > 0 && cost == dist[i-1][j]+1 {
- fmt.Fprintf(&buf, "-%s\n", lines1[len(lines1)-i])
- i--
- } else {
- fmt.Fprintf(&buf, "+%s\n", lines2[len(lines2)-j])
- j--
- }
- }
- return buf.String()
-}
-
func removeAll(dir string) error {
// module cache has 0444 directories;
// make them writable in order to remove content.
diff --git a/vendor/github.com/rogpeppe/go-internal/txtar/archive.go b/vendor/github.com/rogpeppe/go-internal/txtar/archive.go
index c384f33bdf..e3c9415eea 100644
--- a/vendor/github.com/rogpeppe/go-internal/txtar/archive.go
+++ b/vendor/github.com/rogpeppe/go-internal/txtar/archive.go
@@ -35,6 +35,8 @@ import (
"bytes"
"fmt"
"io/ioutil"
+ "os"
+ "path/filepath"
"strings"
)
@@ -120,6 +122,9 @@ func isMarker(data []byte) (name string, after []byte) {
}
if i := bytes.IndexByte(data, '\n'); i >= 0 {
data, after = data[:i], data[i+1:]
+ if data[i-1] == '\r' {
+ data = data[:len(data)-1]
+ }
}
if !bytes.HasSuffix(data, markerEnd) {
return "", nil
@@ -138,3 +143,41 @@ func fixNL(data []byte) []byte {
d[len(data)] = '\n'
return d
}
+
+// Write writes each File in an Archive to the given directory, returning any
+// errors encountered. An error is also returned in the event a file would be
+// written outside of dir.
+func Write(a *Archive, dir string) error {
+ for _, f := range a.Files {
+ fp := filepath.Clean(filepath.FromSlash(f.Name))
+ if isAbs(fp) || strings.HasPrefix(fp, ".."+string(filepath.Separator)) {
+ return fmt.Errorf("%q: outside parent directory", f.Name)
+ }
+ fp = filepath.Join(dir, fp)
+
+ if err := os.MkdirAll(filepath.Dir(fp), 0777); err != nil {
+ return err
+ }
+ // Avoid overwriting existing files by using O_EXCL.
+ out, err := os.OpenFile(fp, os.O_WRONLY|os.O_CREATE|os.O_EXCL, 0666)
+ if err != nil {
+ return err
+ }
+
+ _, err = out.Write(f.Data)
+ cerr := out.Close()
+ if err != nil {
+ return err
+ }
+ if cerr != nil {
+ return cerr
+ }
+ }
+ return nil
+}
+
+func isAbs(p string) bool {
+ // Note: under Windows, filepath.IsAbs(`\foo`) returns false,
+ // so we need to check for that case specifically.
+ return filepath.IsAbs(p) || strings.HasPrefix(p, string(filepath.Separator))
+}
diff --git a/vendor/github.com/sirupsen/logrus/entry.go b/vendor/github.com/sirupsen/logrus/entry.go
index cc85d3aab4..df6d188def 100644
--- a/vendor/github.com/sirupsen/logrus/entry.go
+++ b/vendor/github.com/sirupsen/logrus/entry.go
@@ -108,23 +108,34 @@ func (entry *Entry) WithFields(fields Fields) *Entry {
for k, v := range entry.Data {
data[k] = v
}
- var field_err string
+ fieldErr := entry.err
for k, v := range fields {
- if t := reflect.TypeOf(v); t != nil && t.Kind() == reflect.Func {
- field_err = fmt.Sprintf("can not add field %q", k)
- if entry.err != "" {
- field_err = entry.err + ", " + field_err
+ isErrField := false
+ if t := reflect.TypeOf(v); t != nil {
+ switch t.Kind() {
+ case reflect.Func:
+ isErrField = true
+ case reflect.Ptr:
+ isErrField = t.Elem().Kind() == reflect.Func
+ }
+ }
+ if isErrField {
+ tmp := fmt.Sprintf("can not add field %q", k)
+ if fieldErr != "" {
+ fieldErr = entry.err + ", " + tmp
+ } else {
+ fieldErr = tmp
}
} else {
data[k] = v
}
}
- return &Entry{Logger: entry.Logger, Data: data, Time: entry.Time, err: field_err}
+ return &Entry{Logger: entry.Logger, Data: data, Time: entry.Time, err: fieldErr}
}
// Overrides the time of the Entry.
func (entry *Entry) WithTime(t time.Time) *Entry {
- return &Entry{Logger: entry.Logger, Data: entry.Data, Time: t}
+ return &Entry{Logger: entry.Logger, Data: entry.Data, Time: t, err: entry.err}
}
// getPackageName reduces a fully qualified function name to the package name
@@ -240,16 +251,18 @@ func (entry *Entry) write() {
}
}
-func (entry *Entry) Trace(args ...interface{}) {
- if entry.Logger.IsLevelEnabled(TraceLevel) {
- entry.log(TraceLevel, fmt.Sprint(args...))
+func (entry *Entry) Log(level Level, args ...interface{}) {
+ if entry.Logger.IsLevelEnabled(level) {
+ entry.log(level, fmt.Sprint(args...))
}
}
+func (entry *Entry) Trace(args ...interface{}) {
+ entry.Log(TraceLevel, args...)
+}
+
func (entry *Entry) Debug(args ...interface{}) {
- if entry.Logger.IsLevelEnabled(DebugLevel) {
- entry.log(DebugLevel, fmt.Sprint(args...))
- }
+ entry.Log(DebugLevel, args...)
}
func (entry *Entry) Print(args ...interface{}) {
@@ -257,15 +270,11 @@ func (entry *Entry) Print(args ...interface{}) {
}
func (entry *Entry) Info(args ...interface{}) {
- if entry.Logger.IsLevelEnabled(InfoLevel) {
- entry.log(InfoLevel, fmt.Sprint(args...))
- }
+ entry.Log(InfoLevel, args...)
}
func (entry *Entry) Warn(args ...interface{}) {
- if entry.Logger.IsLevelEnabled(WarnLevel) {
- entry.log(WarnLevel, fmt.Sprint(args...))
- }
+ entry.Log(WarnLevel, args...)
}
func (entry *Entry) Warning(args ...interface{}) {
@@ -273,43 +282,35 @@ func (entry *Entry) Warning(args ...interface{}) {
}
func (entry *Entry) Error(args ...interface{}) {
- if entry.Logger.IsLevelEnabled(ErrorLevel) {
- entry.log(ErrorLevel, fmt.Sprint(args...))
- }
+ entry.Log(ErrorLevel, args...)
}
func (entry *Entry) Fatal(args ...interface{}) {
- if entry.Logger.IsLevelEnabled(FatalLevel) {
- entry.log(FatalLevel, fmt.Sprint(args...))
- }
+ entry.Log(FatalLevel, args...)
entry.Logger.Exit(1)
}
func (entry *Entry) Panic(args ...interface{}) {
- if entry.Logger.IsLevelEnabled(PanicLevel) {
- entry.log(PanicLevel, fmt.Sprint(args...))
- }
+ entry.Log(PanicLevel, args...)
panic(fmt.Sprint(args...))
}
// Entry Printf family functions
+func (entry *Entry) Logf(level Level, format string, args ...interface{}) {
+ entry.Log(level, fmt.Sprintf(format, args...))
+}
+
func (entry *Entry) Tracef(format string, args ...interface{}) {
- if entry.Logger.IsLevelEnabled(TraceLevel) {
- entry.Trace(fmt.Sprintf(format, args...))
- }
+ entry.Logf(TraceLevel, format, args...)
}
func (entry *Entry) Debugf(format string, args ...interface{}) {
- if entry.Logger.IsLevelEnabled(DebugLevel) {
- entry.Debug(fmt.Sprintf(format, args...))
- }
+ entry.Logf(DebugLevel, format, args...)
}
func (entry *Entry) Infof(format string, args ...interface{}) {
- if entry.Logger.IsLevelEnabled(InfoLevel) {
- entry.Info(fmt.Sprintf(format, args...))
- }
+ entry.Logf(InfoLevel, format, args...)
}
func (entry *Entry) Printf(format string, args ...interface{}) {
@@ -317,9 +318,7 @@ func (entry *Entry) Printf(format string, args ...interface{}) {
}
func (entry *Entry) Warnf(format string, args ...interface{}) {
- if entry.Logger.IsLevelEnabled(WarnLevel) {
- entry.Warn(fmt.Sprintf(format, args...))
- }
+ entry.Logf(WarnLevel, format, args...)
}
func (entry *Entry) Warningf(format string, args ...interface{}) {
@@ -327,42 +326,36 @@ func (entry *Entry) Warningf(format string, args ...interface{}) {
}
func (entry *Entry) Errorf(format string, args ...interface{}) {
- if entry.Logger.IsLevelEnabled(ErrorLevel) {
- entry.Error(fmt.Sprintf(format, args...))
- }
+ entry.Logf(ErrorLevel, format, args...)
}
func (entry *Entry) Fatalf(format string, args ...interface{}) {
- if entry.Logger.IsLevelEnabled(FatalLevel) {
- entry.Fatal(fmt.Sprintf(format, args...))
- }
+ entry.Logf(FatalLevel, format, args...)
entry.Logger.Exit(1)
}
func (entry *Entry) Panicf(format string, args ...interface{}) {
- if entry.Logger.IsLevelEnabled(PanicLevel) {
- entry.Panic(fmt.Sprintf(format, args...))
- }
+ entry.Logf(PanicLevel, format, args...)
}
// Entry Println family functions
-func (entry *Entry) Traceln(args ...interface{}) {
- if entry.Logger.IsLevelEnabled(TraceLevel) {
- entry.Trace(entry.sprintlnn(args...))
+func (entry *Entry) Logln(level Level, args ...interface{}) {
+ if entry.Logger.IsLevelEnabled(level) {
+ entry.Log(level, entry.sprintlnn(args...))
}
}
+func (entry *Entry) Traceln(args ...interface{}) {
+ entry.Logln(TraceLevel, args...)
+}
+
func (entry *Entry) Debugln(args ...interface{}) {
- if entry.Logger.IsLevelEnabled(DebugLevel) {
- entry.Debug(entry.sprintlnn(args...))
- }
+ entry.Logln(DebugLevel, args...)
}
func (entry *Entry) Infoln(args ...interface{}) {
- if entry.Logger.IsLevelEnabled(InfoLevel) {
- entry.Info(entry.sprintlnn(args...))
- }
+ entry.Logln(InfoLevel, args...)
}
func (entry *Entry) Println(args ...interface{}) {
@@ -370,9 +363,7 @@ func (entry *Entry) Println(args ...interface{}) {
}
func (entry *Entry) Warnln(args ...interface{}) {
- if entry.Logger.IsLevelEnabled(WarnLevel) {
- entry.Warn(entry.sprintlnn(args...))
- }
+ entry.Logln(WarnLevel, args...)
}
func (entry *Entry) Warningln(args ...interface{}) {
@@ -380,22 +371,16 @@ func (entry *Entry) Warningln(args ...interface{}) {
}
func (entry *Entry) Errorln(args ...interface{}) {
- if entry.Logger.IsLevelEnabled(ErrorLevel) {
- entry.Error(entry.sprintlnn(args...))
- }
+ entry.Logln(ErrorLevel, args...)
}
func (entry *Entry) Fatalln(args ...interface{}) {
- if entry.Logger.IsLevelEnabled(FatalLevel) {
- entry.Fatal(entry.sprintlnn(args...))
- }
+ entry.Logln(FatalLevel, args...)
entry.Logger.Exit(1)
}
func (entry *Entry) Panicln(args ...interface{}) {
- if entry.Logger.IsLevelEnabled(PanicLevel) {
- entry.Panic(entry.sprintlnn(args...))
- }
+ entry.Logln(PanicLevel, args...)
}
// Sprintlnn => Sprint no newline. This is to get the behavior of how
diff --git a/vendor/github.com/sirupsen/logrus/logger.go b/vendor/github.com/sirupsen/logrus/logger.go
index 5ceca0eab4..9bf64e22ae 100644
--- a/vendor/github.com/sirupsen/logrus/logger.go
+++ b/vendor/github.com/sirupsen/logrus/logger.go
@@ -131,28 +131,24 @@ func (logger *Logger) WithTime(t time.Time) *Entry {
return entry.WithTime(t)
}
-func (logger *Logger) Tracef(format string, args ...interface{}) {
- if logger.IsLevelEnabled(TraceLevel) {
+func (logger *Logger) Logf(level Level, format string, args ...interface{}) {
+ if logger.IsLevelEnabled(level) {
entry := logger.newEntry()
- entry.Tracef(format, args...)
+ entry.Logf(level, format, args...)
logger.releaseEntry(entry)
}
}
+func (logger *Logger) Tracef(format string, args ...interface{}) {
+ logger.Logf(TraceLevel, format, args...)
+}
+
func (logger *Logger) Debugf(format string, args ...interface{}) {
- if logger.IsLevelEnabled(DebugLevel) {
- entry := logger.newEntry()
- entry.Debugf(format, args...)
- logger.releaseEntry(entry)
- }
+ logger.Logf(DebugLevel, format, args...)
}
func (logger *Logger) Infof(format string, args ...interface{}) {
- if logger.IsLevelEnabled(InfoLevel) {
- entry := logger.newEntry()
- entry.Infof(format, args...)
- logger.releaseEntry(entry)
- }
+ logger.Logf(InfoLevel, format, args...)
}
func (logger *Logger) Printf(format string, args ...interface{}) {
@@ -162,68 +158,44 @@ func (logger *Logger) Printf(format string, args ...interface{}) {
}
func (logger *Logger) Warnf(format string, args ...interface{}) {
- if logger.IsLevelEnabled(WarnLevel) {
- entry := logger.newEntry()
- entry.Warnf(format, args...)
- logger.releaseEntry(entry)
- }
+ logger.Logf(WarnLevel, format, args...)
}
func (logger *Logger) Warningf(format string, args ...interface{}) {
- if logger.IsLevelEnabled(WarnLevel) {
- entry := logger.newEntry()
- entry.Warnf(format, args...)
- logger.releaseEntry(entry)
- }
+ logger.Warnf(format, args...)
}
func (logger *Logger) Errorf(format string, args ...interface{}) {
- if logger.IsLevelEnabled(ErrorLevel) {
- entry := logger.newEntry()
- entry.Errorf(format, args...)
- logger.releaseEntry(entry)
- }
+ logger.Logf(ErrorLevel, format, args...)
}
func (logger *Logger) Fatalf(format string, args ...interface{}) {
- if logger.IsLevelEnabled(FatalLevel) {
- entry := logger.newEntry()
- entry.Fatalf(format, args...)
- logger.releaseEntry(entry)
- }
+ logger.Logf(FatalLevel, format, args...)
logger.Exit(1)
}
func (logger *Logger) Panicf(format string, args ...interface{}) {
- if logger.IsLevelEnabled(PanicLevel) {
+ logger.Logf(PanicLevel, format, args...)
+}
+
+func (logger *Logger) Log(level Level, args ...interface{}) {
+ if logger.IsLevelEnabled(level) {
entry := logger.newEntry()
- entry.Panicf(format, args...)
+ entry.Log(level, args...)
logger.releaseEntry(entry)
}
}
func (logger *Logger) Trace(args ...interface{}) {
- if logger.IsLevelEnabled(TraceLevel) {
- entry := logger.newEntry()
- entry.Trace(args...)
- logger.releaseEntry(entry)
- }
+ logger.Log(TraceLevel, args...)
}
func (logger *Logger) Debug(args ...interface{}) {
- if logger.IsLevelEnabled(DebugLevel) {
- entry := logger.newEntry()
- entry.Debug(args...)
- logger.releaseEntry(entry)
- }
+ logger.Log(DebugLevel, args...)
}
func (logger *Logger) Info(args ...interface{}) {
- if logger.IsLevelEnabled(InfoLevel) {
- entry := logger.newEntry()
- entry.Info(args...)
- logger.releaseEntry(entry)
- }
+ logger.Log(InfoLevel, args...)
}
func (logger *Logger) Print(args ...interface{}) {
@@ -233,68 +205,44 @@ func (logger *Logger) Print(args ...interface{}) {
}
func (logger *Logger) Warn(args ...interface{}) {
- if logger.IsLevelEnabled(WarnLevel) {
- entry := logger.newEntry()
- entry.Warn(args...)
- logger.releaseEntry(entry)
- }
+ logger.Log(WarnLevel, args...)
}
func (logger *Logger) Warning(args ...interface{}) {
- if logger.IsLevelEnabled(WarnLevel) {
- entry := logger.newEntry()
- entry.Warn(args...)
- logger.releaseEntry(entry)
- }
+ logger.Warn(args...)
}
func (logger *Logger) Error(args ...interface{}) {
- if logger.IsLevelEnabled(ErrorLevel) {
- entry := logger.newEntry()
- entry.Error(args...)
- logger.releaseEntry(entry)
- }
+ logger.Log(ErrorLevel, args...)
}
func (logger *Logger) Fatal(args ...interface{}) {
- if logger.IsLevelEnabled(FatalLevel) {
- entry := logger.newEntry()
- entry.Fatal(args...)
- logger.releaseEntry(entry)
- }
+ logger.Log(FatalLevel, args...)
logger.Exit(1)
}
func (logger *Logger) Panic(args ...interface{}) {
- if logger.IsLevelEnabled(PanicLevel) {
+ logger.Log(PanicLevel, args...)
+}
+
+func (logger *Logger) Logln(level Level, args ...interface{}) {
+ if logger.IsLevelEnabled(level) {
entry := logger.newEntry()
- entry.Panic(args...)
+ entry.Logln(level, args...)
logger.releaseEntry(entry)
}
}
func (logger *Logger) Traceln(args ...interface{}) {
- if logger.IsLevelEnabled(TraceLevel) {
- entry := logger.newEntry()
- entry.Traceln(args...)
- logger.releaseEntry(entry)
- }
+ logger.Logln(TraceLevel, args...)
}
func (logger *Logger) Debugln(args ...interface{}) {
- if logger.IsLevelEnabled(DebugLevel) {
- entry := logger.newEntry()
- entry.Debugln(args...)
- logger.releaseEntry(entry)
- }
+ logger.Logln(DebugLevel, args...)
}
func (logger *Logger) Infoln(args ...interface{}) {
- if logger.IsLevelEnabled(InfoLevel) {
- entry := logger.newEntry()
- entry.Infoln(args...)
- logger.releaseEntry(entry)
- }
+ logger.Logln(InfoLevel, args...)
}
func (logger *Logger) Println(args ...interface{}) {
@@ -304,44 +252,24 @@ func (logger *Logger) Println(args ...interface{}) {
}
func (logger *Logger) Warnln(args ...interface{}) {
- if logger.IsLevelEnabled(WarnLevel) {
- entry := logger.newEntry()
- entry.Warnln(args...)
- logger.releaseEntry(entry)
- }
+ logger.Logln(WarnLevel, args...)
}
func (logger *Logger) Warningln(args ...interface{}) {
- if logger.IsLevelEnabled(WarnLevel) {
- entry := logger.newEntry()
- entry.Warnln(args...)
- logger.releaseEntry(entry)
- }
+ logger.Warn(args...)
}
func (logger *Logger) Errorln(args ...interface{}) {
- if logger.IsLevelEnabled(ErrorLevel) {
- entry := logger.newEntry()
- entry.Errorln(args...)
- logger.releaseEntry(entry)
- }
+ logger.Logln(ErrorLevel, args...)
}
func (logger *Logger) Fatalln(args ...interface{}) {
- if logger.IsLevelEnabled(FatalLevel) {
- entry := logger.newEntry()
- entry.Fatalln(args...)
- logger.releaseEntry(entry)
- }
+ logger.Logln(FatalLevel, args...)
logger.Exit(1)
}
func (logger *Logger) Panicln(args ...interface{}) {
- if logger.IsLevelEnabled(PanicLevel) {
- entry := logger.newEntry()
- entry.Panicln(args...)
- logger.releaseEntry(entry)
- }
+ logger.Logln(PanicLevel, args...)
}
func (logger *Logger) Exit(code int) {
diff --git a/vendor/github.com/sirupsen/logrus/logrus.go b/vendor/github.com/sirupsen/logrus/logrus.go
index 4ef4518662..c1ca889902 100644
--- a/vendor/github.com/sirupsen/logrus/logrus.go
+++ b/vendor/github.com/sirupsen/logrus/logrus.go
@@ -14,24 +14,11 @@ type Level uint32
// Convert the Level to a string. E.g. PanicLevel becomes "panic".
func (level Level) String() string {
- switch level {
- case TraceLevel:
- return "trace"
- case DebugLevel:
- return "debug"
- case InfoLevel:
- return "info"
- case WarnLevel:
- return "warning"
- case ErrorLevel:
- return "error"
- case FatalLevel:
- return "fatal"
- case PanicLevel:
- return "panic"
+ if b, err := level.MarshalText(); err == nil {
+ return string(b)
+ } else {
+ return "unknown"
}
-
- return "unknown"
}
// ParseLevel takes a string level and returns the Logrus log level constant.
@@ -69,6 +56,27 @@ func (level *Level) UnmarshalText(text []byte) error {
return nil
}
+func (level Level) MarshalText() ([]byte, error) {
+ switch level {
+ case TraceLevel:
+ return []byte("trace"), nil
+ case DebugLevel:
+ return []byte("debug"), nil
+ case InfoLevel:
+ return []byte("info"), nil
+ case WarnLevel:
+ return []byte("warning"), nil
+ case ErrorLevel:
+ return []byte("error"), nil
+ case FatalLevel:
+ return []byte("fatal"), nil
+ case PanicLevel:
+ return []byte("panic"), nil
+ }
+
+ return nil, fmt.Errorf("not a valid lorus level %q", level)
+}
+
// A constant exposing all logging levels
var AllLevels = []Level{
PanicLevel,
diff --git a/vendor/github.com/sirupsen/logrus/terminal_check_aix.go b/vendor/github.com/sirupsen/logrus/terminal_check_aix.go
new file mode 100644
index 0000000000..04fdb7ba37
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/terminal_check_aix.go
@@ -0,0 +1,9 @@
+// +build !appengine,!js,!windows,aix
+
+package logrus
+
+import "io"
+
+func checkIfTerminal(w io.Writer) bool {
+ return false
+}
diff --git a/vendor/github.com/sirupsen/logrus/terminal_check_notappengine.go b/vendor/github.com/sirupsen/logrus/terminal_check_notappengine.go
index cf309d6fb6..d46556509e 100644
--- a/vendor/github.com/sirupsen/logrus/terminal_check_notappengine.go
+++ b/vendor/github.com/sirupsen/logrus/terminal_check_notappengine.go
@@ -1,4 +1,4 @@
-// +build !appengine,!js,!windows
+// +build !appengine,!js,!windows,!aix
package logrus
diff --git a/vendor/github.com/sirupsen/logrus/text_formatter.go b/vendor/github.com/sirupsen/logrus/text_formatter.go
index 49ec92f172..fb21649c9a 100644
--- a/vendor/github.com/sirupsen/logrus/text_formatter.go
+++ b/vendor/github.com/sirupsen/logrus/text_formatter.go
@@ -4,6 +4,7 @@ import (
"bytes"
"fmt"
"os"
+ "runtime"
"sort"
"strings"
"sync"
@@ -90,7 +91,7 @@ func (f *TextFormatter) init(entry *Entry) {
}
func (f *TextFormatter) isColored() bool {
- isColored := f.ForceColors || f.isTerminal
+ isColored := f.ForceColors || (f.isTerminal && (runtime.GOOS != "windows"))
if f.EnvironmentOverrideColors {
if force, ok := os.LookupEnv("CLICOLOR_FORCE"); ok && force != "0" {
@@ -107,14 +108,17 @@ func (f *TextFormatter) isColored() bool {
// Format renders a single log entry
func (f *TextFormatter) Format(entry *Entry) ([]byte, error) {
- prefixFieldClashes(entry.Data, f.FieldMap, entry.HasCaller())
-
- keys := make([]string, 0, len(entry.Data))
- for k := range entry.Data {
+ data := make(Fields)
+ for k, v := range entry.Data {
+ data[k] = v
+ }
+ prefixFieldClashes(data, f.FieldMap, entry.HasCaller())
+ keys := make([]string, 0, len(data))
+ for k := range data {
keys = append(keys, k)
}
- fixedKeys := make([]string, 0, 4+len(entry.Data))
+ fixedKeys := make([]string, 0, 4+len(data))
if !f.DisableTimestamp {
fixedKeys = append(fixedKeys, f.FieldMap.resolve(FieldKeyTime))
}
@@ -160,7 +164,7 @@ func (f *TextFormatter) Format(entry *Entry) ([]byte, error) {
timestampFormat = defaultTimestampFormat
}
if f.isColored() {
- f.printColored(b, entry, keys, timestampFormat)
+ f.printColored(b, entry, keys, data, timestampFormat)
} else {
for _, key := range fixedKeys {
var value interface{}
@@ -178,7 +182,7 @@ func (f *TextFormatter) Format(entry *Entry) ([]byte, error) {
case key == f.FieldMap.resolve(FieldKeyFile) && entry.HasCaller():
value = fmt.Sprintf("%s:%d", entry.Caller.File, entry.Caller.Line)
default:
- value = entry.Data[key]
+ value = data[key]
}
f.appendKeyValue(b, key, value)
}
@@ -188,7 +192,7 @@ func (f *TextFormatter) Format(entry *Entry) ([]byte, error) {
return b.Bytes(), nil
}
-func (f *TextFormatter) printColored(b *bytes.Buffer, entry *Entry, keys []string, timestampFormat string) {
+func (f *TextFormatter) printColored(b *bytes.Buffer, entry *Entry, keys []string, data Fields, timestampFormat string) {
var levelColor int
switch entry.Level {
case DebugLevel, TraceLevel:
@@ -225,7 +229,7 @@ func (f *TextFormatter) printColored(b *bytes.Buffer, entry *Entry, keys []strin
fmt.Fprintf(b, "\x1b[%dm%s\x1b[0m[%s]%s %-44s ", levelColor, levelText, entry.Time.Format(timestampFormat), caller, entry.Message)
}
for _, k := range keys {
- v := entry.Data[k]
+ v := data[k]
fmt.Fprintf(b, " \x1b[%dm%s\x1b[0m=", levelColor, k)
f.appendValue(b, v)
}
diff --git a/vendor/github.com/stretchr/testify/LICENSE b/vendor/github.com/stretchr/testify/LICENSE
index 473b670a7c..f38ec5956b 100644
--- a/vendor/github.com/stretchr/testify/LICENSE
+++ b/vendor/github.com/stretchr/testify/LICENSE
@@ -1,22 +1,21 @@
-Copyright (c) 2012 - 2013 Mat Ryer and Tyler Bunnell
+MIT License
-Please consider promoting this project if you find it useful.
+Copyright (c) 2012-2018 Mat Ryer and Tyler Bunnell
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without restriction,
-including without limitation the rights to use, copy, modify, merge,
-publish, distribute, sublicense, and/or sell copies of the Software,
-and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
-OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
-OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/vendor/github.com/stretchr/testify/assert/assertions.go b/vendor/github.com/stretchr/testify/assert/assertions.go
index 5bdec56cd8..9bd4a80e48 100644
--- a/vendor/github.com/stretchr/testify/assert/assertions.go
+++ b/vendor/github.com/stretchr/testify/assert/assertions.go
@@ -39,7 +39,7 @@ type ValueAssertionFunc func(TestingT, interface{}, ...interface{}) bool
// for table driven tests.
type BoolAssertionFunc func(TestingT, bool, ...interface{}) bool
-// ValuesAssertionFunc is a common function prototype when validating an error value. Can be useful
+// ErrorAssertionFunc is a common function prototype when validating an error value. Can be useful
// for table driven tests.
type ErrorAssertionFunc func(TestingT, error, ...interface{}) bool
@@ -179,7 +179,11 @@ func messageFromMsgAndArgs(msgAndArgs ...interface{}) string {
return ""
}
if len(msgAndArgs) == 1 {
- return msgAndArgs[0].(string)
+ msg := msgAndArgs[0]
+ if msgAsStr, ok := msg.(string); ok {
+ return msgAsStr
+ }
+ return fmt.Sprintf("%+v", msg)
}
if len(msgAndArgs) > 1 {
return fmt.Sprintf(msgAndArgs[0].(string), msgAndArgs[1:]...)
@@ -415,6 +419,17 @@ func NotNil(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {
return Fail(t, "Expected value not to be nil.", msgAndArgs...)
}
+// containsKind checks if a specified kind in the slice of kinds.
+func containsKind(kinds []reflect.Kind, kind reflect.Kind) bool {
+ for i := 0; i < len(kinds); i++ {
+ if kind == kinds[i] {
+ return true
+ }
+ }
+
+ return false
+}
+
// isNil checks if a specified object is nil or not, without Failing.
func isNil(object interface{}) bool {
if object == nil {
@@ -423,7 +438,14 @@ func isNil(object interface{}) bool {
value := reflect.ValueOf(object)
kind := value.Kind()
- if kind >= reflect.Chan && kind <= reflect.Slice && value.IsNil() {
+ isNilableKind := containsKind(
+ []reflect.Kind{
+ reflect.Chan, reflect.Func,
+ reflect.Interface, reflect.Map,
+ reflect.Ptr, reflect.Slice},
+ kind)
+
+ if isNilableKind && value.IsNil() {
return true
}
@@ -1327,7 +1349,7 @@ func typeAndKind(v interface{}) (reflect.Type, reflect.Kind) {
}
// diff returns a diff of both values as long as both are of the same type and
-// are a struct, map, slice or array. Otherwise it returns an empty string.
+// are a struct, map, slice, array or string. Otherwise it returns an empty string.
func diff(expected interface{}, actual interface{}) string {
if expected == nil || actual == nil {
return ""
@@ -1345,7 +1367,7 @@ func diff(expected interface{}, actual interface{}) string {
}
var e, a string
- if ek != reflect.String {
+ if et != reflect.TypeOf("") {
e = spewConfig.Sdump(expected)
a = spewConfig.Sdump(actual)
} else {
diff --git a/vendor/github.com/stretchr/testify/mock/mock.go b/vendor/github.com/stretchr/testify/mock/mock.go
index cc4f642b55..d6694ed78a 100644
--- a/vendor/github.com/stretchr/testify/mock/mock.go
+++ b/vendor/github.com/stretchr/testify/mock/mock.go
@@ -176,6 +176,7 @@ func (c *Call) Maybe() *Call {
// Mock.
// On("MyMethod", 1).Return(nil).
// On("MyOtherMethod", 'a', 'b', 'c').Return(errors.New("Some Error"))
+//go:noinline
func (c *Call) On(methodName string, arguments ...interface{}) *Call {
return c.Parent.On(methodName, arguments...)
}
@@ -691,7 +692,7 @@ func (args Arguments) Diff(objects []interface{}) (string, int) {
output = fmt.Sprintf("%s\t%d: PASS: %s matched by %s\n", output, i, actualFmt, matcher)
} else {
differences++
- output = fmt.Sprintf("%s\t%d: PASS: %s not matched by %s\n", output, i, actualFmt, matcher)
+ output = fmt.Sprintf("%s\t%d: FAIL: %s not matched by %s\n", output, i, actualFmt, matcher)
}
} else if reflect.TypeOf(expected) == reflect.TypeOf((*AnythingOfTypeArgument)(nil)).Elem() {
diff --git a/vendor/github.com/stretchr/testify/require/requirements.go b/vendor/github.com/stretchr/testify/require/requirements.go
index 690583a8e0..6b85c5ecef 100644
--- a/vendor/github.com/stretchr/testify/require/requirements.go
+++ b/vendor/github.com/stretchr/testify/require/requirements.go
@@ -22,7 +22,7 @@ type ValueAssertionFunc func(TestingT, interface{}, ...interface{})
// for table driven tests.
type BoolAssertionFunc func(TestingT, bool, ...interface{})
-// ValuesAssertionFunc is a common function prototype when validating an error value. Can be useful
+// ErrorAssertionFunc is a common function prototype when validating an error value. Can be useful
// for table driven tests.
type ErrorAssertionFunc func(TestingT, error, ...interface{})
diff --git a/vendor/github.com/stretchr/testify/suite/suite.go b/vendor/github.com/stretchr/testify/suite/suite.go
index e20afbc21f..5cea8f8c75 100644
--- a/vendor/github.com/stretchr/testify/suite/suite.go
+++ b/vendor/github.com/stretchr/testify/suite/suite.go
@@ -55,10 +55,32 @@ func (suite *Suite) Assert() *assert.Assertions {
return suite.Assertions
}
+func failOnPanic(t *testing.T) {
+ r := recover()
+ if r != nil {
+ t.Errorf("test panicked: %v", r)
+ t.FailNow()
+ }
+}
+
+// Run provides suite functionality around golang subtests. It should be
+// called in place of t.Run(name, func(t *testing.T)) in test suite code.
+// The passed-in func will be executed as a subtest with a fresh instance of t.
+// Provides compatibility with go test pkg -run TestSuite/TestName/SubTestName.
+func (suite *Suite) Run(name string, subtest func()) bool {
+ oldT := suite.T()
+ defer suite.SetT(oldT)
+ return oldT.Run(name, func(t *testing.T) {
+ suite.SetT(t)
+ subtest()
+ })
+}
+
// Run takes a testing suite and runs all of the tests attached
// to it.
func Run(t *testing.T, suite TestingSuite) {
suite.SetT(t)
+ defer failOnPanic(t)
if setupAllSuite, ok := suite.(SetupAllSuite); ok {
setupAllSuite.SetupSuite()
@@ -84,6 +106,8 @@ func Run(t *testing.T, suite TestingSuite) {
F: func(t *testing.T) {
parentT := suite.T()
suite.SetT(t)
+ defer failOnPanic(t)
+
if setupTestSuite, ok := suite.(SetupTestSuite); ok {
setupTestSuite.SetupTest()
}
diff --git a/vendor/golang.org/x/crypto/acme/acme.go b/vendor/golang.org/x/crypto/acme/acme.go
index c6fd998968..00ee955503 100644
--- a/vendor/golang.org/x/crypto/acme/acme.go
+++ b/vendor/golang.org/x/crypto/acme/acme.go
@@ -128,11 +128,7 @@ func (c *Client) Discover(ctx context.Context) (Directory, error) {
return *c.dir, nil
}
- dirURL := c.DirectoryURL
- if dirURL == "" {
- dirURL = LetsEncryptURL
- }
- res, err := c.get(ctx, dirURL, wantStatus(http.StatusOK))
+ res, err := c.get(ctx, c.directoryURL(), wantStatus(http.StatusOK))
if err != nil {
return Directory{}, err
}
@@ -165,6 +161,13 @@ func (c *Client) Discover(ctx context.Context) (Directory, error) {
return *c.dir, nil
}
+func (c *Client) directoryURL() string {
+ if c.DirectoryURL != "" {
+ return c.DirectoryURL
+ }
+ return LetsEncryptURL
+}
+
// CreateCert requests a new certificate using the Certificate Signing Request csr encoded in DER format.
// The exp argument indicates the desired certificate validity duration. CA may issue a certificate
// with a different duration.
@@ -323,6 +326,20 @@ func (c *Client) UpdateReg(ctx context.Context, a *Account) (*Account, error) {
// a valid authorization (Authorization.Status is StatusValid). If so, the caller
// need not fulfill any challenge and can proceed to requesting a certificate.
func (c *Client) Authorize(ctx context.Context, domain string) (*Authorization, error) {
+ return c.authorize(ctx, "dns", domain)
+}
+
+// AuthorizeIP is the same as Authorize but requests IP address authorization.
+// Clients which successfully obtain such authorization may request to issue
+// a certificate for IP addresses.
+//
+// See the ACME spec extension for more details about IP address identifiers:
+// https://tools.ietf.org/html/draft-ietf-acme-ip.
+func (c *Client) AuthorizeIP(ctx context.Context, ipaddr string) (*Authorization, error) {
+ return c.authorize(ctx, "ip", ipaddr)
+}
+
+func (c *Client) authorize(ctx context.Context, typ, val string) (*Authorization, error) {
if _, err := c.Discover(ctx); err != nil {
return nil, err
}
@@ -336,7 +353,7 @@ func (c *Client) Authorize(ctx context.Context, domain string) (*Authorization,
Identifier authzID `json:"identifier"`
}{
Resource: "new-authz",
- Identifier: authzID{Type: "dns", Value: domain},
+ Identifier: authzID{Type: typ, Value: val},
}
res, err := c.post(ctx, c.Key, c.dir.AuthzURL, req, wantStatus(http.StatusCreated))
if err != nil {
@@ -697,12 +714,18 @@ func (c *Client) doReg(ctx context.Context, url string, typ string, acct *Accoun
}
// popNonce returns a nonce value previously stored with c.addNonce
-// or fetches a fresh one from the given URL.
+// or fetches a fresh one from a URL by issuing a HEAD request.
+// It first tries c.directoryURL() and then the provided url if the former fails.
func (c *Client) popNonce(ctx context.Context, url string) (string, error) {
c.noncesMu.Lock()
defer c.noncesMu.Unlock()
if len(c.nonces) == 0 {
- return c.fetchNonce(ctx, url)
+ dirURL := c.directoryURL()
+ v, err := c.fetchNonce(ctx, dirURL)
+ if err != nil && url != dirURL {
+ v, err = c.fetchNonce(ctx, url)
+ }
+ return v, err
}
var nonce string
for nonce = range c.nonces {
diff --git a/vendor/golang.org/x/crypto/blake2b/blake2b.go b/vendor/golang.org/x/crypto/blake2b/blake2b.go
index 58ea875361..c160e1a4e3 100644
--- a/vendor/golang.org/x/crypto/blake2b/blake2b.go
+++ b/vendor/golang.org/x/crypto/blake2b/blake2b.go
@@ -75,19 +75,19 @@ func Sum256(data []byte) [Size256]byte {
}
// New512 returns a new hash.Hash computing the BLAKE2b-512 checksum. A non-nil
-// key turns the hash into a MAC. The key must between zero and 64 bytes long.
+// key turns the hash into a MAC. The key must be between zero and 64 bytes long.
func New512(key []byte) (hash.Hash, error) { return newDigest(Size, key) }
// New384 returns a new hash.Hash computing the BLAKE2b-384 checksum. A non-nil
-// key turns the hash into a MAC. The key must between zero and 64 bytes long.
+// key turns the hash into a MAC. The key must be between zero and 64 bytes long.
func New384(key []byte) (hash.Hash, error) { return newDigest(Size384, key) }
// New256 returns a new hash.Hash computing the BLAKE2b-256 checksum. A non-nil
-// key turns the hash into a MAC. The key must between zero and 64 bytes long.
+// key turns the hash into a MAC. The key must be between zero and 64 bytes long.
func New256(key []byte) (hash.Hash, error) { return newDigest(Size256, key) }
// New returns a new hash.Hash computing the BLAKE2b checksum with a custom length.
-// A non-nil key turns the hash into a MAC. The key must between zero and 64 bytes long.
+// A non-nil key turns the hash into a MAC. The key must be between zero and 64 bytes long.
// The hash size can be a value between 1 and 64 but it is highly recommended to use
// values equal or greater than:
// - 32 if BLAKE2b is used as a hash function (The key is zero bytes long).
diff --git a/vendor/golang.org/x/crypto/blowfish/cipher.go b/vendor/golang.org/x/crypto/blowfish/cipher.go
index 2641dadd64..213bf204af 100644
--- a/vendor/golang.org/x/crypto/blowfish/cipher.go
+++ b/vendor/golang.org/x/crypto/blowfish/cipher.go
@@ -3,6 +3,14 @@
// license that can be found in the LICENSE file.
// Package blowfish implements Bruce Schneier's Blowfish encryption algorithm.
+//
+// Blowfish is a legacy cipher and its short block size makes it vulnerable to
+// birthday bound attacks (see https://sweet32.info). It should only be used
+// where compatibility with legacy systems, not security, is the goal.
+//
+// Deprecated: any new system should use AES (from crypto/aes, if necessary in
+// an AEAD mode like crypto/cipher.NewGCM) or XChaCha20-Poly1305 (from
+// golang.org/x/crypto/chacha20poly1305).
package blowfish // import "golang.org/x/crypto/blowfish"
// The code is a port of Bruce Schneier's C implementation.
diff --git a/vendor/golang.org/x/crypto/bn256/bn256.go b/vendor/golang.org/x/crypto/bn256/bn256.go
index ff27febd68..9c99fcdb5d 100644
--- a/vendor/golang.org/x/crypto/bn256/bn256.go
+++ b/vendor/golang.org/x/crypto/bn256/bn256.go
@@ -15,9 +15,14 @@
// http://cryptojedi.org/papers/dclxvi-20100714.pdf. Its output is compatible
// with the implementation described in that paper.
//
-// (This package previously claimed to operate at a 128-bit security level.
+// This package previously claimed to operate at a 128-bit security level.
// However, recent improvements in attacks mean that is no longer true. See
-// https://moderncrypto.org/mail-archive/curves/2016/000740.html.)
+// https://moderncrypto.org/mail-archive/curves/2016/000740.html.
+//
+// Deprecated: due to its weakened security, new systems should not rely on this
+// elliptic curve. This package is frozen, and not implemented in constant time.
+// There is a more complete implementation at github.com/cloudflare/bn256, but
+// note that it suffers from the same security issues of the underlying curve.
package bn256 // import "golang.org/x/crypto/bn256"
import (
@@ -26,9 +31,6 @@ import (
"math/big"
)
-// BUG(agl): this implementation is not constant time.
-// TODO(agl): keep GF(p²) elements in Mongomery form.
-
// G1 is an abstract cyclic group. The zero value is suitable for use as the
// output of an operation, but cannot be used as an input.
type G1 struct {
@@ -54,6 +56,9 @@ func RandomG1(r io.Reader) (*big.Int, *G1, error) {
}
func (e *G1) String() string {
+ if e.p == nil {
+ return "bn256.G1" + newCurvePoint(nil).String()
+ }
return "bn256.G1" + e.p.String()
}
@@ -77,7 +82,8 @@ func (e *G1) ScalarMult(a *G1, k *big.Int) *G1 {
}
// Add sets e to a+b and then returns e.
-// BUG(agl): this function is not complete: a==b fails.
+//
+// Warning: this function is not complete, it fails for a equal to b.
func (e *G1) Add(a, b *G1) *G1 {
if e.p == nil {
e.p = newCurvePoint(nil)
@@ -175,6 +181,9 @@ func RandomG2(r io.Reader) (*big.Int, *G2, error) {
}
func (e *G2) String() string {
+ if e.p == nil {
+ return "bn256.G2" + newTwistPoint(nil).String()
+ }
return "bn256.G2" + e.p.String()
}
@@ -198,7 +207,8 @@ func (e *G2) ScalarMult(a *G2, k *big.Int) *G2 {
}
// Add sets e to a+b and then returns e.
-// BUG(agl): this function is not complete: a==b fails.
+//
+// Warning: this function is not complete, it fails for a equal to b.
func (e *G2) Add(a, b *G2) *G2 {
if e.p == nil {
e.p = newTwistPoint(nil)
@@ -277,8 +287,11 @@ type GT struct {
p *gfP12
}
-func (g *GT) String() string {
- return "bn256.GT" + g.p.String()
+func (e *GT) String() string {
+ if e.p == nil {
+ return "bn256.GT" + newGFp12(nil).String()
+ }
+ return "bn256.GT" + e.p.String()
}
// ScalarMult sets e to a*k and then returns e.
diff --git a/vendor/golang.org/x/crypto/bn256/gfp12.go b/vendor/golang.org/x/crypto/bn256/gfp12.go
index f084eddf21..2b0151ebcc 100644
--- a/vendor/golang.org/x/crypto/bn256/gfp12.go
+++ b/vendor/golang.org/x/crypto/bn256/gfp12.go
@@ -125,8 +125,8 @@ func (e *gfP12) Mul(a, b *gfP12, pool *bnPool) *gfP12 {
}
func (e *gfP12) MulScalar(a *gfP12, b *gfP6, pool *bnPool) *gfP12 {
- e.x.Mul(e.x, b, pool)
- e.y.Mul(e.y, b, pool)
+ e.x.Mul(a.x, b, pool)
+ e.y.Mul(a.y, b, pool)
return e
}
diff --git a/vendor/golang.org/x/crypto/cast5/cast5.go b/vendor/golang.org/x/crypto/cast5/cast5.go
index 0b4af37bdc..ddcbeb6f2a 100644
--- a/vendor/golang.org/x/crypto/cast5/cast5.go
+++ b/vendor/golang.org/x/crypto/cast5/cast5.go
@@ -2,8 +2,15 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// Package cast5 implements CAST5, as defined in RFC 2144. CAST5 is a common
-// OpenPGP cipher.
+// Package cast5 implements CAST5, as defined in RFC 2144.
+//
+// CAST5 is a legacy cipher and its short block size makes it vulnerable to
+// birthday bound attacks (see https://sweet32.info). It should only be used
+// where compatibility with legacy systems, not security, is the goal.
+//
+// Deprecated: any new system should use AES (from crypto/aes, if necessary in
+// an AEAD mode like crypto/cipher.NewGCM) or XChaCha20-Poly1305 (from
+// golang.org/x/crypto/chacha20poly1305).
package cast5 // import "golang.org/x/crypto/cast5"
import "errors"
diff --git a/vendor/golang.org/x/crypto/curve25519/curve25519.go b/vendor/golang.org/x/crypto/curve25519/curve25519.go
index cb8fbc57b9..75f24babb6 100644
--- a/vendor/golang.org/x/crypto/curve25519/curve25519.go
+++ b/vendor/golang.org/x/crypto/curve25519/curve25519.go
@@ -86,7 +86,7 @@ func feFromBytes(dst *fieldElement, src *[32]byte) {
h6 := load3(src[20:]) << 7
h7 := load3(src[23:]) << 5
h8 := load3(src[26:]) << 4
- h9 := load3(src[29:]) << 2
+ h9 := (load3(src[29:]) & 0x7fffff) << 2
var carry [10]int64
carry[9] = (h9 + 1<<24) >> 25
diff --git a/vendor/golang.org/x/crypto/internal/chacha20/asm_arm64.s b/vendor/golang.org/x/crypto/internal/chacha20/asm_arm64.s
new file mode 100644
index 0000000000..b3a16ef751
--- /dev/null
+++ b/vendor/golang.org/x/crypto/internal/chacha20/asm_arm64.s
@@ -0,0 +1,308 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build go1.11
+// +build !gccgo,!appengine
+
+#include "textflag.h"
+
+#define NUM_ROUNDS 10
+
+// func xorKeyStreamVX(dst, src []byte, key *[8]uint32, nonce *[3]uint32, counter *uint32)
+TEXT ·xorKeyStreamVX(SB), NOSPLIT, $0
+ MOVD dst+0(FP), R1
+ MOVD src+24(FP), R2
+ MOVD src_len+32(FP), R3
+ MOVD key+48(FP), R4
+ MOVD nonce+56(FP), R6
+ MOVD counter+64(FP), R7
+
+ MOVD $·constants(SB), R10
+ MOVD $·incRotMatrix(SB), R11
+
+ MOVW (R7), R20
+
+ AND $~255, R3, R13
+ ADD R2, R13, R12 // R12 for block end
+ AND $255, R3, R13
+loop:
+ MOVD $NUM_ROUNDS, R21
+ VLD1 (R11), [V30.S4, V31.S4]
+
+ // load contants
+ // VLD4R (R10), [V0.S4, V1.S4, V2.S4, V3.S4]
+ WORD $0x4D60E940
+
+ // load keys
+ // VLD4R 16(R4), [V4.S4, V5.S4, V6.S4, V7.S4]
+ WORD $0x4DFFE884
+ // VLD4R 16(R4), [V8.S4, V9.S4, V10.S4, V11.S4]
+ WORD $0x4DFFE888
+ SUB $32, R4
+
+ // load counter + nonce
+ // VLD1R (R7), [V12.S4]
+ WORD $0x4D40C8EC
+
+ // VLD3R (R6), [V13.S4, V14.S4, V15.S4]
+ WORD $0x4D40E8CD
+
+ // update counter
+ VADD V30.S4, V12.S4, V12.S4
+
+chacha:
+ // V0..V3 += V4..V7
+ // V12..V15 <<<= ((V12..V15 XOR V0..V3), 16)
+ VADD V0.S4, V4.S4, V0.S4
+ VADD V1.S4, V5.S4, V1.S4
+ VADD V2.S4, V6.S4, V2.S4
+ VADD V3.S4, V7.S4, V3.S4
+ VEOR V12.B16, V0.B16, V12.B16
+ VEOR V13.B16, V1.B16, V13.B16
+ VEOR V14.B16, V2.B16, V14.B16
+ VEOR V15.B16, V3.B16, V15.B16
+ VREV32 V12.H8, V12.H8
+ VREV32 V13.H8, V13.H8
+ VREV32 V14.H8, V14.H8
+ VREV32 V15.H8, V15.H8
+ // V8..V11 += V12..V15
+ // V4..V7 <<<= ((V4..V7 XOR V8..V11), 12)
+ VADD V8.S4, V12.S4, V8.S4
+ VADD V9.S4, V13.S4, V9.S4
+ VADD V10.S4, V14.S4, V10.S4
+ VADD V11.S4, V15.S4, V11.S4
+ VEOR V8.B16, V4.B16, V16.B16
+ VEOR V9.B16, V5.B16, V17.B16
+ VEOR V10.B16, V6.B16, V18.B16
+ VEOR V11.B16, V7.B16, V19.B16
+ VSHL $12, V16.S4, V4.S4
+ VSHL $12, V17.S4, V5.S4
+ VSHL $12, V18.S4, V6.S4
+ VSHL $12, V19.S4, V7.S4
+ VSRI $20, V16.S4, V4.S4
+ VSRI $20, V17.S4, V5.S4
+ VSRI $20, V18.S4, V6.S4
+ VSRI $20, V19.S4, V7.S4
+
+ // V0..V3 += V4..V7
+ // V12..V15 <<<= ((V12..V15 XOR V0..V3), 8)
+ VADD V0.S4, V4.S4, V0.S4
+ VADD V1.S4, V5.S4, V1.S4
+ VADD V2.S4, V6.S4, V2.S4
+ VADD V3.S4, V7.S4, V3.S4
+ VEOR V12.B16, V0.B16, V12.B16
+ VEOR V13.B16, V1.B16, V13.B16
+ VEOR V14.B16, V2.B16, V14.B16
+ VEOR V15.B16, V3.B16, V15.B16
+ VTBL V31.B16, [V12.B16], V12.B16
+ VTBL V31.B16, [V13.B16], V13.B16
+ VTBL V31.B16, [V14.B16], V14.B16
+ VTBL V31.B16, [V15.B16], V15.B16
+
+ // V8..V11 += V12..V15
+ // V4..V7 <<<= ((V4..V7 XOR V8..V11), 7)
+ VADD V12.S4, V8.S4, V8.S4
+ VADD V13.S4, V9.S4, V9.S4
+ VADD V14.S4, V10.S4, V10.S4
+ VADD V15.S4, V11.S4, V11.S4
+ VEOR V8.B16, V4.B16, V16.B16
+ VEOR V9.B16, V5.B16, V17.B16
+ VEOR V10.B16, V6.B16, V18.B16
+ VEOR V11.B16, V7.B16, V19.B16
+ VSHL $7, V16.S4, V4.S4
+ VSHL $7, V17.S4, V5.S4
+ VSHL $7, V18.S4, V6.S4
+ VSHL $7, V19.S4, V7.S4
+ VSRI $25, V16.S4, V4.S4
+ VSRI $25, V17.S4, V5.S4
+ VSRI $25, V18.S4, V6.S4
+ VSRI $25, V19.S4, V7.S4
+
+ // V0..V3 += V5..V7, V4
+ // V15,V12-V14 <<<= ((V15,V12-V14 XOR V0..V3), 16)
+ VADD V0.S4, V5.S4, V0.S4
+ VADD V1.S4, V6.S4, V1.S4
+ VADD V2.S4, V7.S4, V2.S4
+ VADD V3.S4, V4.S4, V3.S4
+ VEOR V15.B16, V0.B16, V15.B16
+ VEOR V12.B16, V1.B16, V12.B16
+ VEOR V13.B16, V2.B16, V13.B16
+ VEOR V14.B16, V3.B16, V14.B16
+ VREV32 V12.H8, V12.H8
+ VREV32 V13.H8, V13.H8
+ VREV32 V14.H8, V14.H8
+ VREV32 V15.H8, V15.H8
+
+ // V10 += V15; V5 <<<= ((V10 XOR V5), 12)
+ // ...
+ VADD V15.S4, V10.S4, V10.S4
+ VADD V12.S4, V11.S4, V11.S4
+ VADD V13.S4, V8.S4, V8.S4
+ VADD V14.S4, V9.S4, V9.S4
+ VEOR V10.B16, V5.B16, V16.B16
+ VEOR V11.B16, V6.B16, V17.B16
+ VEOR V8.B16, V7.B16, V18.B16
+ VEOR V9.B16, V4.B16, V19.B16
+ VSHL $12, V16.S4, V5.S4
+ VSHL $12, V17.S4, V6.S4
+ VSHL $12, V18.S4, V7.S4
+ VSHL $12, V19.S4, V4.S4
+ VSRI $20, V16.S4, V5.S4
+ VSRI $20, V17.S4, V6.S4
+ VSRI $20, V18.S4, V7.S4
+ VSRI $20, V19.S4, V4.S4
+
+ // V0 += V5; V15 <<<= ((V0 XOR V15), 8)
+ // ...
+ VADD V5.S4, V0.S4, V0.S4
+ VADD V6.S4, V1.S4, V1.S4
+ VADD V7.S4, V2.S4, V2.S4
+ VADD V4.S4, V3.S4, V3.S4
+ VEOR V0.B16, V15.B16, V15.B16
+ VEOR V1.B16, V12.B16, V12.B16
+ VEOR V2.B16, V13.B16, V13.B16
+ VEOR V3.B16, V14.B16, V14.B16
+ VTBL V31.B16, [V12.B16], V12.B16
+ VTBL V31.B16, [V13.B16], V13.B16
+ VTBL V31.B16, [V14.B16], V14.B16
+ VTBL V31.B16, [V15.B16], V15.B16
+
+ // V10 += V15; V5 <<<= ((V10 XOR V5), 7)
+ // ...
+ VADD V15.S4, V10.S4, V10.S4
+ VADD V12.S4, V11.S4, V11.S4
+ VADD V13.S4, V8.S4, V8.S4
+ VADD V14.S4, V9.S4, V9.S4
+ VEOR V10.B16, V5.B16, V16.B16
+ VEOR V11.B16, V6.B16, V17.B16
+ VEOR V8.B16, V7.B16, V18.B16
+ VEOR V9.B16, V4.B16, V19.B16
+ VSHL $7, V16.S4, V5.S4
+ VSHL $7, V17.S4, V6.S4
+ VSHL $7, V18.S4, V7.S4
+ VSHL $7, V19.S4, V4.S4
+ VSRI $25, V16.S4, V5.S4
+ VSRI $25, V17.S4, V6.S4
+ VSRI $25, V18.S4, V7.S4
+ VSRI $25, V19.S4, V4.S4
+
+ SUB $1, R21
+ CBNZ R21, chacha
+
+ // VLD4R (R10), [V16.S4, V17.S4, V18.S4, V19.S4]
+ WORD $0x4D60E950
+
+ // VLD4R 16(R4), [V20.S4, V21.S4, V22.S4, V23.S4]
+ WORD $0x4DFFE894
+ VADD V30.S4, V12.S4, V12.S4
+ VADD V16.S4, V0.S4, V0.S4
+ VADD V17.S4, V1.S4, V1.S4
+ VADD V18.S4, V2.S4, V2.S4
+ VADD V19.S4, V3.S4, V3.S4
+ // VLD4R 16(R4), [V24.S4, V25.S4, V26.S4, V27.S4]
+ WORD $0x4DFFE898
+ // restore R4
+ SUB $32, R4
+
+ // load counter + nonce
+ // VLD1R (R7), [V28.S4]
+ WORD $0x4D40C8FC
+ // VLD3R (R6), [V29.S4, V30.S4, V31.S4]
+ WORD $0x4D40E8DD
+
+ VADD V20.S4, V4.S4, V4.S4
+ VADD V21.S4, V5.S4, V5.S4
+ VADD V22.S4, V6.S4, V6.S4
+ VADD V23.S4, V7.S4, V7.S4
+ VADD V24.S4, V8.S4, V8.S4
+ VADD V25.S4, V9.S4, V9.S4
+ VADD V26.S4, V10.S4, V10.S4
+ VADD V27.S4, V11.S4, V11.S4
+ VADD V28.S4, V12.S4, V12.S4
+ VADD V29.S4, V13.S4, V13.S4
+ VADD V30.S4, V14.S4, V14.S4
+ VADD V31.S4, V15.S4, V15.S4
+
+ VZIP1 V1.S4, V0.S4, V16.S4
+ VZIP2 V1.S4, V0.S4, V17.S4
+ VZIP1 V3.S4, V2.S4, V18.S4
+ VZIP2 V3.S4, V2.S4, V19.S4
+ VZIP1 V5.S4, V4.S4, V20.S4
+ VZIP2 V5.S4, V4.S4, V21.S4
+ VZIP1 V7.S4, V6.S4, V22.S4
+ VZIP2 V7.S4, V6.S4, V23.S4
+ VZIP1 V9.S4, V8.S4, V24.S4
+ VZIP2 V9.S4, V8.S4, V25.S4
+ VZIP1 V11.S4, V10.S4, V26.S4
+ VZIP2 V11.S4, V10.S4, V27.S4
+ VZIP1 V13.S4, V12.S4, V28.S4
+ VZIP2 V13.S4, V12.S4, V29.S4
+ VZIP1 V15.S4, V14.S4, V30.S4
+ VZIP2 V15.S4, V14.S4, V31.S4
+ VZIP1 V18.D2, V16.D2, V0.D2
+ VZIP2 V18.D2, V16.D2, V4.D2
+ VZIP1 V19.D2, V17.D2, V8.D2
+ VZIP2 V19.D2, V17.D2, V12.D2
+ VLD1.P 64(R2), [V16.B16, V17.B16, V18.B16, V19.B16]
+
+ VZIP1 V22.D2, V20.D2, V1.D2
+ VZIP2 V22.D2, V20.D2, V5.D2
+ VZIP1 V23.D2, V21.D2, V9.D2
+ VZIP2 V23.D2, V21.D2, V13.D2
+ VLD1.P 64(R2), [V20.B16, V21.B16, V22.B16, V23.B16]
+ VZIP1 V26.D2, V24.D2, V2.D2
+ VZIP2 V26.D2, V24.D2, V6.D2
+ VZIP1 V27.D2, V25.D2, V10.D2
+ VZIP2 V27.D2, V25.D2, V14.D2
+ VLD1.P 64(R2), [V24.B16, V25.B16, V26.B16, V27.B16]
+ VZIP1 V30.D2, V28.D2, V3.D2
+ VZIP2 V30.D2, V28.D2, V7.D2
+ VZIP1 V31.D2, V29.D2, V11.D2
+ VZIP2 V31.D2, V29.D2, V15.D2
+ VLD1.P 64(R2), [V28.B16, V29.B16, V30.B16, V31.B16]
+ VEOR V0.B16, V16.B16, V16.B16
+ VEOR V1.B16, V17.B16, V17.B16
+ VEOR V2.B16, V18.B16, V18.B16
+ VEOR V3.B16, V19.B16, V19.B16
+ VST1.P [V16.B16, V17.B16, V18.B16, V19.B16], 64(R1)
+ VEOR V4.B16, V20.B16, V20.B16
+ VEOR V5.B16, V21.B16, V21.B16
+ VEOR V6.B16, V22.B16, V22.B16
+ VEOR V7.B16, V23.B16, V23.B16
+ VST1.P [V20.B16, V21.B16, V22.B16, V23.B16], 64(R1)
+ VEOR V8.B16, V24.B16, V24.B16
+ VEOR V9.B16, V25.B16, V25.B16
+ VEOR V10.B16, V26.B16, V26.B16
+ VEOR V11.B16, V27.B16, V27.B16
+ VST1.P [V24.B16, V25.B16, V26.B16, V27.B16], 64(R1)
+ VEOR V12.B16, V28.B16, V28.B16
+ VEOR V13.B16, V29.B16, V29.B16
+ VEOR V14.B16, V30.B16, V30.B16
+ VEOR V15.B16, V31.B16, V31.B16
+ VST1.P [V28.B16, V29.B16, V30.B16, V31.B16], 64(R1)
+
+ ADD $4, R20
+ MOVW R20, (R7) // update counter
+
+ CMP R2, R12
+ BGT loop
+
+ RET
+
+
+DATA ·constants+0x00(SB)/4, $0x61707865
+DATA ·constants+0x04(SB)/4, $0x3320646e
+DATA ·constants+0x08(SB)/4, $0x79622d32
+DATA ·constants+0x0c(SB)/4, $0x6b206574
+GLOBL ·constants(SB), NOPTR|RODATA, $32
+
+DATA ·incRotMatrix+0x00(SB)/4, $0x00000000
+DATA ·incRotMatrix+0x04(SB)/4, $0x00000001
+DATA ·incRotMatrix+0x08(SB)/4, $0x00000002
+DATA ·incRotMatrix+0x0c(SB)/4, $0x00000003
+DATA ·incRotMatrix+0x10(SB)/4, $0x02010003
+DATA ·incRotMatrix+0x14(SB)/4, $0x06050407
+DATA ·incRotMatrix+0x18(SB)/4, $0x0A09080B
+DATA ·incRotMatrix+0x1c(SB)/4, $0x0E0D0C0F
+GLOBL ·incRotMatrix(SB), NOPTR|RODATA, $32
diff --git a/vendor/golang.org/x/crypto/internal/chacha20/chacha_arm64.go b/vendor/golang.org/x/crypto/internal/chacha20/chacha_arm64.go
new file mode 100644
index 0000000000..ad74e23aef
--- /dev/null
+++ b/vendor/golang.org/x/crypto/internal/chacha20/chacha_arm64.go
@@ -0,0 +1,31 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build go1.11
+// +build !gccgo
+
+package chacha20
+
+const (
+ haveAsm = true
+ bufSize = 256
+)
+
+//go:noescape
+func xorKeyStreamVX(dst, src []byte, key *[8]uint32, nonce *[3]uint32, counter *uint32)
+
+func (c *Cipher) xorKeyStreamAsm(dst, src []byte) {
+
+ if len(src) >= bufSize {
+ xorKeyStreamVX(dst, src, &c.key, &c.nonce, &c.counter)
+ }
+
+ if len(src)%bufSize != 0 {
+ i := len(src) - len(src)%bufSize
+ c.buf = [bufSize]byte{}
+ copy(c.buf[:], src[i:])
+ xorKeyStreamVX(c.buf[:], c.buf[:], &c.key, &c.nonce, &c.counter)
+ c.len = bufSize - copy(dst[i:], c.buf[:len(src)%bufSize])
+ }
+}
diff --git a/vendor/golang.org/x/crypto/internal/chacha20/chacha_noasm.go b/vendor/golang.org/x/crypto/internal/chacha20/chacha_noasm.go
index 91520d1de0..47eac0314c 100644
--- a/vendor/golang.org/x/crypto/internal/chacha20/chacha_noasm.go
+++ b/vendor/golang.org/x/crypto/internal/chacha20/chacha_noasm.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// +build !s390x gccgo appengine
+// +build !arm64,!s390x arm64,!go1.11 gccgo appengine
package chacha20
diff --git a/vendor/golang.org/x/crypto/md4/md4.go b/vendor/golang.org/x/crypto/md4/md4.go
index 6d9ba9e5f3..59d3480693 100644
--- a/vendor/golang.org/x/crypto/md4/md4.go
+++ b/vendor/golang.org/x/crypto/md4/md4.go
@@ -3,6 +3,10 @@
// license that can be found in the LICENSE file.
// Package md4 implements the MD4 hash algorithm as defined in RFC 1320.
+//
+// Deprecated: MD4 is cryptographically broken and should should only be used
+// where compatibility with legacy systems, not security, is the goal. Instead,
+// use a secure hash like SHA-256 (from crypto/sha256).
package md4 // import "golang.org/x/crypto/md4"
import (
diff --git a/vendor/golang.org/x/crypto/ocsp/ocsp.go b/vendor/golang.org/x/crypto/ocsp/ocsp.go
index f079d9eab6..d297ac92ea 100644
--- a/vendor/golang.org/x/crypto/ocsp/ocsp.go
+++ b/vendor/golang.org/x/crypto/ocsp/ocsp.go
@@ -487,6 +487,9 @@ func ParseResponseForCert(bytes []byte, cert, issuer *x509.Certificate) (*Respon
if err != nil {
return nil, err
}
+ if len(rest) > 0 {
+ return nil, ParseError("trailing data in OCSP response")
+ }
if n := len(basicResp.TBSResponseData.Responses); n == 0 || cert == nil && n > 1 {
return nil, ParseError("OCSP response contains bad number of responses")
diff --git a/vendor/golang.org/x/crypto/otr/otr.go b/vendor/golang.org/x/crypto/otr/otr.go
index 173b753dbd..29121e9bb6 100644
--- a/vendor/golang.org/x/crypto/otr/otr.go
+++ b/vendor/golang.org/x/crypto/otr/otr.go
@@ -4,6 +4,10 @@
// Package otr implements the Off The Record protocol as specified in
// http://www.cypherpunks.ca/otr/Protocol-v2-3.1.0.html
+//
+// The version of OTR implemented by this package has been deprecated
+// (https://bugs.otr.im/lib/libotr/issues/140). An implementation of OTRv3 is
+// available at https://github.com/coyim/otr3.
package otr // import "golang.org/x/crypto/otr"
import (
@@ -637,7 +641,7 @@ func (c *Conversation) serializeDHKey() []byte {
}
func (c *Conversation) processDHKey(in []byte) (isSame bool, err error) {
- gy, in, ok := getMPI(in)
+ gy, _, ok := getMPI(in)
if !ok {
err = errors.New("otr: corrupt DH key message")
return
diff --git a/vendor/golang.org/x/crypto/pkcs12/pkcs12.go b/vendor/golang.org/x/crypto/pkcs12/pkcs12.go
index eff9ad3a98..55f7691d48 100644
--- a/vendor/golang.org/x/crypto/pkcs12/pkcs12.go
+++ b/vendor/golang.org/x/crypto/pkcs12/pkcs12.go
@@ -7,6 +7,9 @@
// This implementation is distilled from https://tools.ietf.org/html/rfc7292
// and referenced documents. It is intended for decoding P12/PFX-stored
// certificates and keys for use with the crypto/tls package.
+//
+// This package is frozen. If it's missing functionality you need, consider
+// an alternative like software.sslmate.com/src/go-pkcs12.
package pkcs12
import (
@@ -100,7 +103,7 @@ func unmarshal(in []byte, out interface{}) error {
return nil
}
-// ConvertToPEM converts all "safe bags" contained in pfxData to PEM blocks.
+// ToPEM converts all "safe bags" contained in pfxData to PEM blocks.
func ToPEM(pfxData []byte, password string) ([]*pem.Block, error) {
encodedPassword, err := bmpString(password)
if err != nil {
@@ -208,7 +211,7 @@ func convertAttribute(attribute *pkcs12Attribute) (key, value string, err error)
// Decode extracts a certificate and private key from pfxData. This function
// assumes that there is only one certificate and only one private key in the
-// pfxData.
+// pfxData; if there are more use ToPEM instead.
func Decode(pfxData []byte, password string) (privateKey interface{}, certificate *x509.Certificate, err error) {
encodedPassword, err := bmpString(password)
if err != nil {
diff --git a/vendor/golang.org/x/crypto/ripemd160/ripemd160.go b/vendor/golang.org/x/crypto/ripemd160/ripemd160.go
index fd97ba1b06..cf3eeb158a 100644
--- a/vendor/golang.org/x/crypto/ripemd160/ripemd160.go
+++ b/vendor/golang.org/x/crypto/ripemd160/ripemd160.go
@@ -3,6 +3,10 @@
// license that can be found in the LICENSE file.
// Package ripemd160 implements the RIPEMD-160 hash algorithm.
+//
+// Deprecated: RIPEMD-160 is a legacy hash and should not be used for new
+// applications. Also, this package does not and will not provide an optimized
+// implementation. Instead, use a modern hash like SHA-256 (from crypto/sha256).
package ripemd160 // import "golang.org/x/crypto/ripemd160"
// RIPEMD-160 is designed by Hans Dobbertin, Antoon Bosselaers, and Bart
diff --git a/vendor/golang.org/x/crypto/sha3/hashes.go b/vendor/golang.org/x/crypto/sha3/hashes.go
index 4fb38c0abc..0d8043fd2a 100644
--- a/vendor/golang.org/x/crypto/sha3/hashes.go
+++ b/vendor/golang.org/x/crypto/sha3/hashes.go
@@ -58,6 +58,12 @@ func New512() hash.Hash {
// that uses non-standard padding. All other users should use New256 instead.
func NewLegacyKeccak256() hash.Hash { return &state{rate: 136, outputLen: 32, dsbyte: 0x01} }
+// NewLegacyKeccak512 creates a new Keccak-512 hash.
+//
+// Only use this function if you require compatibility with an existing cryptosystem
+// that uses non-standard padding. All other users should use New512 instead.
+func NewLegacyKeccak512() hash.Hash { return &state{rate: 72, outputLen: 64, dsbyte: 0x01} }
+
// Sum224 returns the SHA3-224 digest of the data.
func Sum224(data []byte) (digest [28]byte) {
h := New224()
diff --git a/vendor/golang.org/x/crypto/ssh/agent/server.go b/vendor/golang.org/x/crypto/ssh/agent/server.go
index a19497627d..6e7a1e02f2 100644
--- a/vendor/golang.org/x/crypto/ssh/agent/server.go
+++ b/vendor/golang.org/x/crypto/ssh/agent/server.go
@@ -541,6 +541,9 @@ func ServeAgent(agent Agent, c io.ReadWriter) error {
return err
}
l := binary.BigEndian.Uint32(length[:])
+ if l == 0 {
+ return fmt.Errorf("agent: request size is 0")
+ }
if l > maxAgentResponseBytes {
// We also cap requests.
return fmt.Errorf("agent: request too large: %d", l)
diff --git a/vendor/golang.org/x/crypto/ssh/knownhosts/knownhosts.go b/vendor/golang.org/x/crypto/ssh/knownhosts/knownhosts.go
index bc3db737e5..260cfe58c6 100644
--- a/vendor/golang.org/x/crypto/ssh/knownhosts/knownhosts.go
+++ b/vendor/golang.org/x/crypto/ssh/knownhosts/knownhosts.go
@@ -350,8 +350,8 @@ func (db *hostKeyDB) check(address string, remote net.Addr, remoteKey ssh.Public
return db.checkAddr(hostToCheck, remoteKey)
}
-// checkAddrs checks if we can find the given public key for any of
-// the given addresses. If we only find an entry for the IP address,
+// checkAddr checks if we can find the given public key for the
+// given address. If we only find an entry for the IP address,
// or only the hostname, then this still succeeds.
func (db *hostKeyDB) checkAddr(a addr, remoteKey ssh.PublicKey) error {
// TODO(hanwen): are these the right semantics? What if there
diff --git a/vendor/golang.org/x/crypto/ssh/terminal/terminal.go b/vendor/golang.org/x/crypto/ssh/terminal/terminal.go
index 9a887598ff..9d666ffcf0 100644
--- a/vendor/golang.org/x/crypto/ssh/terminal/terminal.go
+++ b/vendor/golang.org/x/crypto/ssh/terminal/terminal.go
@@ -159,6 +159,10 @@ func bytesToKey(b []byte, pasteActive bool) (rune, []byte) {
return keyClearScreen, b[1:]
case 23: // ^W
return keyDeleteWord, b[1:]
+ case 14: // ^N
+ return keyDown, b[1:]
+ case 16: // ^P
+ return keyUp, b[1:]
}
}
diff --git a/vendor/golang.org/x/crypto/tea/cipher.go b/vendor/golang.org/x/crypto/tea/cipher.go
index ce223b2c2d..c1ff90e048 100644
--- a/vendor/golang.org/x/crypto/tea/cipher.go
+++ b/vendor/golang.org/x/crypto/tea/cipher.go
@@ -5,6 +5,14 @@
// Package tea implements the TEA algorithm, as defined in Needham and
// Wheeler's 1994 technical report, “TEA, a Tiny Encryption Algorithm”. See
// http://www.cix.co.uk/~klockstone/tea.pdf for details.
+//
+// TEA is a legacy cipher and its short block size makes it vulnerable to
+// birthday bound attacks (see https://sweet32.info). It should only be used
+// where compatibility with legacy systems, not security, is the goal.
+//
+// Deprecated: any new system should use AES (from crypto/aes, if necessary in
+// an AEAD mode like crypto/cipher.NewGCM) or XChaCha20-Poly1305 (from
+// golang.org/x/crypto/chacha20poly1305).
package tea
import (
diff --git a/vendor/golang.org/x/crypto/twofish/twofish.go b/vendor/golang.org/x/crypto/twofish/twofish.go
index 6db01fcf45..1197d75132 100644
--- a/vendor/golang.org/x/crypto/twofish/twofish.go
+++ b/vendor/golang.org/x/crypto/twofish/twofish.go
@@ -3,6 +3,12 @@
// license that can be found in the LICENSE file.
// Package twofish implements Bruce Schneier's Twofish encryption algorithm.
+//
+// Deprecated: Twofish is a legacy cipher and should not be used for new
+// applications. Also, this package does not and will not provide an optimized
+// implementation. Instead, use AES (from crypto/aes, if necessary in an AEAD
+// mode like crypto/cipher.NewGCM) or XChaCha20-Poly1305 (from
+// golang.org/x/crypto/chacha20poly1305).
package twofish // import "golang.org/x/crypto/twofish"
// Twofish is defined in https://www.schneier.com/paper-twofish-paper.pdf [TWOFISH]
diff --git a/vendor/golang.org/x/crypto/xtea/cipher.go b/vendor/golang.org/x/crypto/xtea/cipher.go
index 1661cbea80..a4c2fd02b3 100644
--- a/vendor/golang.org/x/crypto/xtea/cipher.go
+++ b/vendor/golang.org/x/crypto/xtea/cipher.go
@@ -4,6 +4,14 @@
// Package xtea implements XTEA encryption, as defined in Needham and Wheeler's
// 1997 technical report, "Tea extensions."
+//
+// XTEA is a legacy cipher and its short block size makes it vulnerable to
+// birthday bound attacks (see https://sweet32.info). It should only be used
+// where compatibility with legacy systems, not security, is the goal.
+//
+// Deprecated: any new system should use AES (from crypto/aes, if necessary in
+// an AEAD mode like crypto/cipher.NewGCM) or XChaCha20-Poly1305 (from
+// golang.org/x/crypto/chacha20poly1305).
package xtea // import "golang.org/x/crypto/xtea"
// For details, see http://www.cix.co.uk/~klockstone/xtea.pdf
diff --git a/vendor/golang.org/x/crypto/xts/xts.go b/vendor/golang.org/x/crypto/xts/xts.go
index 9654e1fc0e..b51308e95e 100644
--- a/vendor/golang.org/x/crypto/xts/xts.go
+++ b/vendor/golang.org/x/crypto/xts/xts.go
@@ -15,22 +15,25 @@
// effectively create a unique key for each sector.
//
// XTS does not provide any authentication. An attacker can manipulate the
-// ciphertext and randomise a block (16 bytes) of the plaintext.
+// ciphertext and randomise a block (16 bytes) of the plaintext. This package
+// does not implement ciphertext-stealing so sectors must be a multiple of 16
+// bytes.
//
-// (Note: this package does not implement ciphertext-stealing so sectors must
-// be a multiple of 16 bytes.)
+// Note that XTS is usually not appropriate for any use besides disk encryption.
+// Most users should use an AEAD mode like GCM (from crypto/cipher.NewGCM) instead.
package xts // import "golang.org/x/crypto/xts"
import (
"crypto/cipher"
"encoding/binary"
"errors"
+ "sync"
"golang.org/x/crypto/internal/subtle"
)
-// Cipher contains an expanded key structure. It doesn't contain mutable state
-// and therefore can be used concurrently.
+// Cipher contains an expanded key structure. It is safe for concurrent use if
+// the underlying block cipher is safe for concurrent use.
type Cipher struct {
k1, k2 cipher.Block
}
@@ -39,6 +42,12 @@ type Cipher struct {
// only defined for 16-byte ciphers.
const blockSize = 16
+var tweakPool = sync.Pool{
+ New: func() interface{} {
+ return new([blockSize]byte)
+ },
+}
+
// NewCipher creates a Cipher given a function for creating the underlying
// block cipher (which must have a block size of 16 bytes). The key must be
// twice the length of the underlying cipher's key.
@@ -70,7 +79,10 @@ func (c *Cipher) Encrypt(ciphertext, plaintext []byte, sectorNum uint64) {
panic("xts: invalid buffer overlap")
}
- var tweak [blockSize]byte
+ tweak := tweakPool.Get().(*[blockSize]byte)
+ for i := range tweak {
+ tweak[i] = 0
+ }
binary.LittleEndian.PutUint64(tweak[:8], sectorNum)
c.k2.Encrypt(tweak[:], tweak[:])
@@ -86,8 +98,10 @@ func (c *Cipher) Encrypt(ciphertext, plaintext []byte, sectorNum uint64) {
plaintext = plaintext[blockSize:]
ciphertext = ciphertext[blockSize:]
- mul2(&tweak)
+ mul2(tweak)
}
+
+ tweakPool.Put(tweak)
}
// Decrypt decrypts a sector of ciphertext and puts the result into plaintext.
@@ -104,7 +118,10 @@ func (c *Cipher) Decrypt(plaintext, ciphertext []byte, sectorNum uint64) {
panic("xts: invalid buffer overlap")
}
- var tweak [blockSize]byte
+ tweak := tweakPool.Get().(*[blockSize]byte)
+ for i := range tweak {
+ tweak[i] = 0
+ }
binary.LittleEndian.PutUint64(tweak[:8], sectorNum)
c.k2.Encrypt(tweak[:], tweak[:])
@@ -120,8 +137,10 @@ func (c *Cipher) Decrypt(plaintext, ciphertext []byte, sectorNum uint64) {
plaintext = plaintext[blockSize:]
ciphertext = ciphertext[blockSize:]
- mul2(&tweak)
+ mul2(tweak)
}
+
+ tweakPool.Put(tweak)
}
// mul2 multiplies tweak by 2 in GF(2¹²⁸) with an irreducible polynomial of
diff --git a/vendor/golang.org/x/net/html/node.go b/vendor/golang.org/x/net/html/node.go
index 2c1cade607..633ee15dc5 100644
--- a/vendor/golang.org/x/net/html/node.go
+++ b/vendor/golang.org/x/net/html/node.go
@@ -177,7 +177,7 @@ func (s *nodeStack) index(n *Node) int {
// contains returns whether a is within s.
func (s *nodeStack) contains(a atom.Atom) bool {
for _, n := range *s {
- if n.DataAtom == a {
+ if n.DataAtom == a && n.Namespace == "" {
return true
}
}
diff --git a/vendor/golang.org/x/net/html/parse.go b/vendor/golang.org/x/net/html/parse.go
index 64a5793725..ca2cb5875b 100644
--- a/vendor/golang.org/x/net/html/parse.go
+++ b/vendor/golang.org/x/net/html/parse.go
@@ -439,9 +439,6 @@ func (p *parser) resetInsertionMode() {
case a.Select:
if !last {
for ancestor, first := n, p.oe[0]; ancestor != first; {
- if ancestor == first {
- break
- }
ancestor = p.oe[p.oe.index(ancestor)-1]
switch ancestor.DataAtom {
case a.Template:
@@ -1719,8 +1716,12 @@ func inSelectIM(p *parser) bool {
}
p.addElement()
case a.Select:
- p.tok.Type = EndTagToken
- return false
+ if p.popUntil(selectScope, a.Select) {
+ p.resetInsertionMode()
+ } else {
+ // Ignore the token.
+ return true
+ }
case a.Input, a.Keygen, a.Textarea:
if p.elementInScope(selectScope, a.Select) {
p.parseImpliedToken(EndTagToken, a.Select, a.Select.String())
@@ -1750,6 +1751,9 @@ func inSelectIM(p *parser) bool {
case a.Select:
if p.popUntil(selectScope, a.Select) {
p.resetInsertionMode()
+ } else {
+ // Ignore the token.
+ return true
}
case a.Template:
return inHeadIM(p)
@@ -1775,13 +1779,22 @@ func inSelectInTableIM(p *parser) bool {
case StartTagToken, EndTagToken:
switch p.tok.DataAtom {
case a.Caption, a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr, a.Td, a.Th:
- if p.tok.Type == StartTagToken || p.elementInScope(tableScope, p.tok.DataAtom) {
- p.parseImpliedToken(EndTagToken, a.Select, a.Select.String())
- return false
- } else {
+ if p.tok.Type == EndTagToken && !p.elementInScope(tableScope, p.tok.DataAtom) {
// Ignore the token.
return true
}
+ // This is like p.popUntil(selectScope, a.Select), but it also
+ // matches , not just . Matching the MathML
+ // tag is arguably incorrect (conceptually), but it mimics what
+ // Chromium does.
+ for i := len(p.oe) - 1; i >= 0; i-- {
+ if n := p.oe[i]; n.DataAtom == a.Select {
+ p.oe = p.oe[:i]
+ break
+ }
+ }
+ p.resetInsertionMode()
+ return false
}
}
return inSelectIM(p)
diff --git a/vendor/golang.org/x/net/http2/frame.go b/vendor/golang.org/x/net/http2/frame.go
index b46791d1da..514c126c5f 100644
--- a/vendor/golang.org/x/net/http2/frame.go
+++ b/vendor/golang.org/x/net/http2/frame.go
@@ -643,7 +643,7 @@ func (f *Framer) WriteData(streamID uint32, endStream bool, data []byte) error {
return f.WriteDataPadded(streamID, endStream, data, nil)
}
-// WriteData writes a DATA frame with optional padding.
+// WriteDataPadded writes a DATA frame with optional padding.
//
// If pad is nil, the padding bit is not sent.
// The length of pad must not exceed 255 bytes.
diff --git a/vendor/golang.org/x/net/http2/h2demo/h2demo.go b/vendor/golang.org/x/net/http2/h2demo/h2demo.go
index 59d9f5f68a..196a2a4e2b 100644
--- a/vendor/golang.org/x/net/http2/h2demo/h2demo.go
+++ b/vendor/golang.org/x/net/http2/h2demo/h2demo.go
@@ -46,6 +46,10 @@ var (
)
func homeOldHTTP(w http.ResponseWriter, r *http.Request) {
+ if r.Host == "http1.golang.org" {
+ http.Redirect(w, r, "https://http2.golang.org/", http.StatusFound)
+ return
+ }
io.WriteString(w, `
Go + HTTP/2
@@ -307,13 +311,13 @@ func newPushHandler() http.Handler {
}
time.Sleep(100 * time.Millisecond) // fake network latency + parsing time
if err := pushTmpl.Execute(w, struct {
- CacheBust int64
- HTTPSHost string
- HTTPHost string
+ CacheBust int64
+ HTTPSHost string
+ HTTP1Prefix string
}{
- CacheBust: cacheBust,
- HTTPSHost: httpsHost(),
- HTTPHost: httpHost(),
+ CacheBust: cacheBust,
+ HTTPSHost: httpsHost(),
+ HTTP1Prefix: http1Prefix(),
}); err != nil {
log.Printf("Executing server push template: %v", err)
}
@@ -382,9 +386,9 @@ func newGopherTilesHandler() http.Handler {
fmt.Fprintf(w, "A grid of %d tiled images is below. Compare:", xt*yt)
for _, ms := range []int{0, 30, 200, 1000} {
d := time.Duration(ms) * nanosPerMilli
- fmt.Fprintf(w, "[HTTP/2, %v latency ] [HTTP/1, %v latency ] \n",
+ fmt.Fprintf(w, "[HTTP/2, %v latency ] [HTTP/1, %v latency ] \n",
httpsHost(), ms, d,
- httpHost(), ms, d,
+ http1Prefix(), ms, d,
)
}
io.WriteString(w, "
\n")
@@ -420,6 +424,13 @@ func httpsHost() string {
}
}
+func http1Prefix() string {
+ if *prod {
+ return "https://http1.golang.org"
+ }
+ return "http://" + httpHost()
+}
+
func httpHost() string {
if *hostHTTP != "" {
return *hostHTTP
@@ -435,6 +446,14 @@ func serveProdTLS(autocertManager *autocert.Manager) error {
srv := &http.Server{
TLSConfig: &tls.Config{
GetCertificate: autocertManager.GetCertificate,
+ GetConfigForClient: func(hello *tls.ClientHelloInfo) (*tls.Config, error) {
+ if hello.ServerName == "http1.golang.org" {
+ return &tls.Config{
+ GetCertificate: autocertManager.GetCertificate,
+ }, nil
+ }
+ return nil, nil // fallback to other methods
+ },
},
}
http2.ConfigureServer(srv, &http2.Server{
@@ -464,7 +483,7 @@ func (ln tcpKeepAliveListener) Accept() (c net.Conn, err error) {
}
func serveProd() error {
- log.Printf("running in production mode")
+ log.Printf("running in production mode.")
storageClient, err := storage.NewClient(context.Background())
if err != nil {
@@ -472,7 +491,7 @@ func serveProd() error {
}
autocertManager := &autocert.Manager{
Prompt: autocert.AcceptTOS,
- HostPolicy: autocert.HostWhitelist("http2.golang.org"),
+ HostPolicy: autocert.HostWhitelist("http1.golang.org", "http2.golang.org"),
Cache: autocertcache.NewGoogleCloudStorageCache(storageClient, "golang-h2demo-autocert"),
}
diff --git a/vendor/golang.org/x/net/http2/h2demo/launch.go b/vendor/golang.org/x/net/http2/h2demo/launch.go
deleted file mode 100644
index df0866a307..0000000000
--- a/vendor/golang.org/x/net/http2/h2demo/launch.go
+++ /dev/null
@@ -1,302 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-package main
-
-import (
- "bufio"
- "bytes"
- "encoding/json"
- "flag"
- "fmt"
- "io"
- "io/ioutil"
- "log"
- "net/http"
- "os"
- "strings"
- "time"
-
- "golang.org/x/oauth2"
- "golang.org/x/oauth2/google"
- compute "google.golang.org/api/compute/v1"
-)
-
-var (
- proj = flag.String("project", "symbolic-datum-552", "name of Project")
- zone = flag.String("zone", "us-central1-a", "GCE zone")
- mach = flag.String("machinetype", "n1-standard-1", "Machine type")
- instName = flag.String("instance_name", "http2-demo", "Name of VM instance.")
- sshPub = flag.String("ssh_public_key", "", "ssh public key file to authorize. Can modify later in Google's web UI anyway.")
- staticIP = flag.String("static_ip", "130.211.116.44", "Static IP to use. If empty, automatic.")
-
- writeObject = flag.String("write_object", "", "If non-empty, a VM isn't created and the flag value is Google Cloud Storage bucket/object to write. The contents from stdin.")
- publicObject = flag.Bool("write_object_is_public", false, "Whether the object created by --write_object should be public.")
-)
-
-func readFile(v string) string {
- slurp, err := ioutil.ReadFile(v)
- if err != nil {
- log.Fatalf("Error reading %s: %v", v, err)
- }
- return strings.TrimSpace(string(slurp))
-}
-
-var config = &oauth2.Config{
- // The client-id and secret should be for an "Installed Application" when using
- // the CLI. Later we'll use a web application with a callback.
- ClientID: readFile("client-id.dat"),
- ClientSecret: readFile("client-secret.dat"),
- Endpoint: google.Endpoint,
- Scopes: []string{
- compute.DevstorageFullControlScope,
- compute.ComputeScope,
- "https://www.googleapis.com/auth/sqlservice",
- "https://www.googleapis.com/auth/sqlservice.admin",
- },
- RedirectURL: "urn:ietf:wg:oauth:2.0:oob",
-}
-
-const baseConfig = `#cloud-config
-coreos:
- units:
- - name: h2demo.service
- command: start
- content: |
- [Unit]
- Description=HTTP2 Demo
-
- [Service]
- ExecStartPre=/bin/bash -c 'mkdir -p /opt/bin && curl -s -o /opt/bin/h2demo http://storage.googleapis.com/http2-demo-server-tls/h2demo && chmod +x /opt/bin/h2demo'
- ExecStart=/opt/bin/h2demo --prod
- RestartSec=5s
- Restart=always
- Type=simple
-
- [Install]
- WantedBy=multi-user.target
-`
-
-func main() {
- flag.Parse()
- if *proj == "" {
- log.Fatalf("Missing --project flag")
- }
- prefix := "https://www.googleapis.com/compute/v1/projects/" + *proj
- machType := prefix + "/zones/" + *zone + "/machineTypes/" + *mach
-
- const tokenFileName = "token.dat"
- tokenFile := tokenCacheFile(tokenFileName)
- tokenSource := oauth2.ReuseTokenSource(nil, tokenFile)
- token, err := tokenSource.Token()
- if err != nil {
- if *writeObject != "" {
- log.Fatalf("Can't use --write_object without a valid token.dat file already cached.")
- }
- log.Printf("Error getting token from %s: %v", tokenFileName, err)
- log.Printf("Get auth code from %v", config.AuthCodeURL("my-state"))
- fmt.Print("\nEnter auth code: ")
- sc := bufio.NewScanner(os.Stdin)
- sc.Scan()
- authCode := strings.TrimSpace(sc.Text())
- token, err = config.Exchange(oauth2.NoContext, authCode)
- if err != nil {
- log.Fatalf("Error exchanging auth code for a token: %v", err)
- }
- if err := tokenFile.WriteToken(token); err != nil {
- log.Fatalf("Error writing to %s: %v", tokenFileName, err)
- }
- tokenSource = oauth2.ReuseTokenSource(token, nil)
- }
-
- oauthClient := oauth2.NewClient(oauth2.NoContext, tokenSource)
-
- if *writeObject != "" {
- writeCloudStorageObject(oauthClient)
- return
- }
-
- computeService, _ := compute.New(oauthClient)
-
- natIP := *staticIP
- if natIP == "" {
- // Try to find it by name.
- aggAddrList, err := computeService.Addresses.AggregatedList(*proj).Do()
- if err != nil {
- log.Fatal(err)
- }
- // http://godoc.org/code.google.com/p/google-api-go-client/compute/v1#AddressAggregatedList
- IPLoop:
- for _, asl := range aggAddrList.Items {
- for _, addr := range asl.Addresses {
- if addr.Name == *instName+"-ip" && addr.Status == "RESERVED" {
- natIP = addr.Address
- break IPLoop
- }
- }
- }
- }
-
- cloudConfig := baseConfig
- if *sshPub != "" {
- key := strings.TrimSpace(readFile(*sshPub))
- cloudConfig += fmt.Sprintf("\nssh_authorized_keys:\n - %s\n", key)
- }
- if os.Getenv("USER") == "bradfitz" {
- cloudConfig += fmt.Sprintf("\nssh_authorized_keys:\n - %s\n", "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAwks9dwWKlRC+73gRbvYtVg0vdCwDSuIlyt4z6xa/YU/jTDynM4R4W10hm2tPjy8iR1k8XhDv4/qdxe6m07NjG/By1tkmGpm1mGwho4Pr5kbAAy/Qg+NLCSdAYnnE00FQEcFOC15GFVMOW2AzDGKisReohwH9eIzHPzdYQNPRWXE= bradfitz@papag.bradfitz.com")
- }
- const maxCloudConfig = 32 << 10 // per compute API docs
- if len(cloudConfig) > maxCloudConfig {
- log.Fatalf("cloud config length of %d bytes is over %d byte limit", len(cloudConfig), maxCloudConfig)
- }
-
- instance := &compute.Instance{
- Name: *instName,
- Description: "Go Builder",
- MachineType: machType,
- Disks: []*compute.AttachedDisk{instanceDisk(computeService)},
- Tags: &compute.Tags{
- Items: []string{"http-server", "https-server"},
- },
- Metadata: &compute.Metadata{
- Items: []*compute.MetadataItems{
- {
- Key: "user-data",
- Value: &cloudConfig,
- },
- },
- },
- NetworkInterfaces: []*compute.NetworkInterface{
- {
- AccessConfigs: []*compute.AccessConfig{
- {
- Type: "ONE_TO_ONE_NAT",
- Name: "External NAT",
- NatIP: natIP,
- },
- },
- Network: prefix + "/global/networks/default",
- },
- },
- ServiceAccounts: []*compute.ServiceAccount{
- {
- Email: "default",
- Scopes: []string{
- compute.DevstorageFullControlScope,
- compute.ComputeScope,
- },
- },
- },
- }
-
- log.Printf("Creating instance...")
- op, err := computeService.Instances.Insert(*proj, *zone, instance).Do()
- if err != nil {
- log.Fatalf("Failed to create instance: %v", err)
- }
- opName := op.Name
- log.Printf("Created. Waiting on operation %v", opName)
-OpLoop:
- for {
- time.Sleep(2 * time.Second)
- op, err := computeService.ZoneOperations.Get(*proj, *zone, opName).Do()
- if err != nil {
- log.Fatalf("Failed to get op %s: %v", opName, err)
- }
- switch op.Status {
- case "PENDING", "RUNNING":
- log.Printf("Waiting on operation %v", opName)
- continue
- case "DONE":
- if op.Error != nil {
- for _, operr := range op.Error.Errors {
- log.Printf("Error: %+v", operr)
- }
- log.Fatalf("Failed to start.")
- }
- log.Printf("Success. %+v", op)
- break OpLoop
- default:
- log.Fatalf("Unknown status %q: %+v", op.Status, op)
- }
- }
-
- inst, err := computeService.Instances.Get(*proj, *zone, *instName).Do()
- if err != nil {
- log.Fatalf("Error getting instance after creation: %v", err)
- }
- ij, _ := json.MarshalIndent(inst, "", " ")
- log.Printf("Instance: %s", ij)
-}
-
-func instanceDisk(svc *compute.Service) *compute.AttachedDisk {
- const imageURL = "https://www.googleapis.com/compute/v1/projects/coreos-cloud/global/images/coreos-stable-444-5-0-v20141016"
- diskName := *instName + "-disk"
-
- return &compute.AttachedDisk{
- AutoDelete: true,
- Boot: true,
- Type: "PERSISTENT",
- InitializeParams: &compute.AttachedDiskInitializeParams{
- DiskName: diskName,
- SourceImage: imageURL,
- DiskSizeGb: 50,
- },
- }
-}
-
-func writeCloudStorageObject(httpClient *http.Client) {
- content := os.Stdin
- const maxSlurp = 1 << 20
- var buf bytes.Buffer
- n, err := io.CopyN(&buf, content, maxSlurp)
- if err != nil && err != io.EOF {
- log.Fatalf("Error reading from stdin: %v, %v", n, err)
- }
- contentType := http.DetectContentType(buf.Bytes())
-
- req, err := http.NewRequest("PUT", "https://storage.googleapis.com/"+*writeObject, io.MultiReader(&buf, content))
- if err != nil {
- log.Fatal(err)
- }
- req.Header.Set("x-goog-api-version", "2")
- if *publicObject {
- req.Header.Set("x-goog-acl", "public-read")
- }
- req.Header.Set("Content-Type", contentType)
- res, err := httpClient.Do(req)
- if err != nil {
- log.Fatal(err)
- }
- if res.StatusCode != 200 {
- res.Write(os.Stderr)
- log.Fatalf("Failed.")
- }
- log.Printf("Success.")
- os.Exit(0)
-}
-
-type tokenCacheFile string
-
-func (f tokenCacheFile) Token() (*oauth2.Token, error) {
- slurp, err := ioutil.ReadFile(string(f))
- if err != nil {
- return nil, err
- }
- t := new(oauth2.Token)
- if err := json.Unmarshal(slurp, t); err != nil {
- return nil, err
- }
- return t, nil
-}
-
-func (f tokenCacheFile) WriteToken(t *oauth2.Token) error {
- jt, err := json.Marshal(t)
- if err != nil {
- return err
- }
- return ioutil.WriteFile(string(f), jt, 0600)
-}
diff --git a/vendor/golang.org/x/net/http2/h2demo/tmpl.go b/vendor/golang.org/x/net/http2/h2demo/tmpl.go
index 504d6a78a2..09fc729926 100644
--- a/vendor/golang.org/x/net/http2/h2demo/tmpl.go
+++ b/vendor/golang.org/x/net/http2/h2demo/tmpl.go
@@ -43,7 +43,7 @@ Note: This page exists for demonstration purposes. For the actual cmd/go docs, g
diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go
index b57b6e2d02..8f1701914c 100644
--- a/vendor/golang.org/x/net/http2/server.go
+++ b/vendor/golang.org/x/net/http2/server.go
@@ -1594,12 +1594,6 @@ func (sc *serverConn) processData(f *DataFrame) error {
// type PROTOCOL_ERROR."
return ConnectionError(ErrCodeProtocol)
}
- // RFC 7540, sec 6.1: If a DATA frame is received whose stream is not in
- // "open" or "half-closed (local)" state, the recipient MUST respond with a
- // stream error (Section 5.4.2) of type STREAM_CLOSED.
- if state == stateClosed {
- return streamError(id, ErrCodeStreamClosed)
- }
if st == nil || state != stateOpen || st.gotTrailerHeader || st.resetQueued {
// This includes sending a RST_STREAM if the stream is
// in stateHalfClosedLocal (which currently means that
diff --git a/vendor/golang.org/x/net/internal/nettest/helper_bsd.go b/vendor/golang.org/x/net/internal/nettest/helper_bsd.go
index a6e433b58c..4025bd289c 100644
--- a/vendor/golang.org/x/net/internal/nettest/helper_bsd.go
+++ b/vendor/golang.org/x/net/internal/nettest/helper_bsd.go
@@ -8,28 +8,8 @@ package nettest
import (
"runtime"
- "strconv"
- "strings"
- "syscall"
)
-var darwinVersion int
-
-func init() {
- if runtime.GOOS == "darwin" {
- // See http://support.apple.com/kb/HT1633.
- s, err := syscall.Sysctl("kern.osrelease")
- if err != nil {
- return
- }
- ss := strings.Split(s, ".")
- if len(ss) == 0 {
- return
- }
- darwinVersion, _ = strconv.Atoi(ss[0])
- }
-}
-
func supportsIPv6MulticastDeliveryOnLoopback() bool {
switch runtime.GOOS {
case "freebsd":
@@ -38,16 +18,7 @@ func supportsIPv6MulticastDeliveryOnLoopback() bool {
// kernels don't deliver link-local scoped multicast
// packets correctly.
return false
- case "darwin":
- return !causesIPv6Crash()
default:
return true
}
}
-
-func causesIPv6Crash() bool {
- // We see some kernel crash when running IPv6 with IP-level
- // options on Darwin kernel version 12 or below.
- // See golang.org/issues/17015.
- return darwinVersion < 13
-}
diff --git a/vendor/golang.org/x/net/internal/nettest/helper_nobsd.go b/vendor/golang.org/x/net/internal/nettest/helper_nobsd.go
index 1611a907f0..bfcaee972c 100644
--- a/vendor/golang.org/x/net/internal/nettest/helper_nobsd.go
+++ b/vendor/golang.org/x/net/internal/nettest/helper_nobsd.go
@@ -9,7 +9,3 @@ package nettest
func supportsIPv6MulticastDeliveryOnLoopback() bool {
return true
}
-
-func causesIPv6Crash() bool {
- return false
-}
diff --git a/vendor/golang.org/x/net/internal/nettest/helper_stub.go b/vendor/golang.org/x/net/internal/nettest/helper_stub.go
index d89cf29962..2eeeb35377 100644
--- a/vendor/golang.org/x/net/internal/nettest/helper_stub.go
+++ b/vendor/golang.org/x/net/internal/nettest/helper_stub.go
@@ -23,10 +23,6 @@ func supportsIPv6MulticastDeliveryOnLoopback() bool {
return false
}
-func causesIPv6Crash() bool {
- return false
-}
-
func protocolNotSupported(err error) bool {
return false
}
diff --git a/vendor/golang.org/x/net/internal/nettest/helper_windows.go b/vendor/golang.org/x/net/internal/nettest/helper_windows.go
index 3dcb727c95..b0a6a30c4d 100644
--- a/vendor/golang.org/x/net/internal/nettest/helper_windows.go
+++ b/vendor/golang.org/x/net/internal/nettest/helper_windows.go
@@ -36,7 +36,3 @@ func supportsRawIPSocket() (string, bool) {
func supportsIPv6MulticastDeliveryOnLoopback() bool {
return true
}
-
-func causesIPv6Crash() bool {
- return false
-}
diff --git a/vendor/golang.org/x/net/ipv4/sys_darwin.go b/vendor/golang.org/x/net/ipv4/sys_darwin.go
index e8fb191692..ac213c7350 100644
--- a/vendor/golang.org/x/net/ipv4/sys_darwin.go
+++ b/vendor/golang.org/x/net/ipv4/sys_darwin.go
@@ -6,8 +6,6 @@ package ipv4
import (
"net"
- "strconv"
- "strings"
"syscall"
"unsafe"
@@ -17,59 +15,33 @@ import (
var (
ctlOpts = [ctlMax]ctlOpt{
- ctlTTL: {sysIP_RECVTTL, 1, marshalTTL, parseTTL},
- ctlDst: {sysIP_RECVDSTADDR, net.IPv4len, marshalDst, parseDst},
- ctlInterface: {sysIP_RECVIF, syscall.SizeofSockaddrDatalink, marshalInterface, parseInterface},
+ ctlTTL: {sysIP_RECVTTL, 1, marshalTTL, parseTTL},
+ ctlDst: {sysIP_RECVDSTADDR, net.IPv4len, marshalDst, parseDst},
+ ctlInterface: {sysIP_RECVIF, syscall.SizeofSockaddrDatalink, marshalInterface, parseInterface},
+ ctlPacketInfo: {sysIP_PKTINFO, sizeofInetPktinfo, marshalPacketInfo, parsePacketInfo},
}
sockOpts = map[int]*sockOpt{
ssoTOS: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TOS, Len: 4}},
ssoTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TTL, Len: 4}},
ssoMulticastTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_TTL, Len: 1}},
- ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: 4}},
+ ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: sizeofIPMreqn}, typ: ssoTypeIPMreqn},
ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_LOOP, Len: 4}},
ssoReceiveTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVTTL, Len: 4}},
ssoReceiveDst: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVDSTADDR, Len: 4}},
ssoReceiveInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVIF, Len: 4}},
ssoHeaderPrepend: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_HDRINCL, Len: 4}},
ssoStripHeader: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_STRIPHDR, Len: 4}},
- ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_ADD_MEMBERSHIP, Len: sizeofIPMreq}, typ: ssoTypeIPMreq},
- ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_DROP_MEMBERSHIP, Len: sizeofIPMreq}, typ: ssoTypeIPMreq},
+ ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
+ ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
+ ssoJoinSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+ ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+ ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+ ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+ ssoPacketInfo: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVPKTINFO, Len: 4}},
}
)
-func init() {
- // Seems like kern.osreldate is veiled on latest OS X. We use
- // kern.osrelease instead.
- s, err := syscall.Sysctl("kern.osrelease")
- if err != nil {
- return
- }
- ss := strings.Split(s, ".")
- if len(ss) == 0 {
- return
- }
- // The IP_PKTINFO and protocol-independent multicast API were
- // introduced in OS X 10.7 (Darwin 11). But it looks like
- // those features require OS X 10.8 (Darwin 12) or above.
- // See http://support.apple.com/kb/HT1633.
- if mjver, err := strconv.Atoi(ss[0]); err != nil || mjver < 12 {
- return
- }
- ctlOpts[ctlPacketInfo].name = sysIP_PKTINFO
- ctlOpts[ctlPacketInfo].length = sizeofInetPktinfo
- ctlOpts[ctlPacketInfo].marshal = marshalPacketInfo
- ctlOpts[ctlPacketInfo].parse = parsePacketInfo
- sockOpts[ssoPacketInfo] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVPKTINFO, Len: 4}}
- sockOpts[ssoMulticastInterface] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: sizeofIPMreqn}, typ: ssoTypeIPMreqn}
- sockOpts[ssoJoinGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}
- sockOpts[ssoLeaveGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}
- sockOpts[ssoJoinSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}
- sockOpts[ssoLeaveSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}
- sockOpts[ssoBlockSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}
- sockOpts[ssoUnblockSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}
-}
-
func (pi *inetPktinfo) setIfindex(i int) {
pi.Ifindex = uint32(i)
}
diff --git a/vendor/golang.org/x/net/ipv6/sys_darwin.go b/vendor/golang.org/x/net/ipv6/sys_darwin.go
index e3d0443927..12cc5cb2c1 100644
--- a/vendor/golang.org/x/net/ipv6/sys_darwin.go
+++ b/vendor/golang.org/x/net/ipv6/sys_darwin.go
@@ -6,8 +6,6 @@ package ipv6
import (
"net"
- "strconv"
- "strings"
"syscall"
"unsafe"
@@ -17,61 +15,35 @@ import (
var (
ctlOpts = [ctlMax]ctlOpt{
- ctlHopLimit: {sysIPV6_2292HOPLIMIT, 4, marshal2292HopLimit, parseHopLimit},
- ctlPacketInfo: {sysIPV6_2292PKTINFO, sizeofInet6Pktinfo, marshal2292PacketInfo, parsePacketInfo},
+ ctlTrafficClass: {sysIPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass},
+ ctlHopLimit: {sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit},
+ ctlPacketInfo: {sysIPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo},
+ ctlNextHop: {sysIPV6_NEXTHOP, sizeofSockaddrInet6, marshalNextHop, parseNextHop},
+ ctlPathMTU: {sysIPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU},
}
sockOpts = map[int]*sockOpt{
- ssoHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_UNICAST_HOPS, Len: 4}},
- ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_IF, Len: 4}},
- ssoMulticastHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_HOPS, Len: 4}},
- ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_LOOP, Len: 4}},
- ssoReceiveHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_2292HOPLIMIT, Len: 4}},
- ssoReceivePacketInfo: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_2292PKTINFO, Len: 4}},
- ssoChecksum: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_CHECKSUM, Len: 4}},
- ssoICMPFilter: {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: sysICMP6_FILTER, Len: sizeofICMPv6Filter}},
- ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_JOIN_GROUP, Len: sizeofIPv6Mreq}, typ: ssoTypeIPMreq},
- ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_LEAVE_GROUP, Len: sizeofIPv6Mreq}, typ: ssoTypeIPMreq},
+ ssoHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_UNICAST_HOPS, Len: 4}},
+ ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_IF, Len: 4}},
+ ssoMulticastHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_HOPS, Len: 4}},
+ ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_LOOP, Len: 4}},
+ ssoTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_TCLASS, Len: 4}},
+ ssoReceiveTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVTCLASS, Len: 4}},
+ ssoReceiveHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVHOPLIMIT, Len: 4}},
+ ssoReceivePacketInfo: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPKTINFO, Len: 4}},
+ ssoReceivePathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPATHMTU, Len: 4}},
+ ssoPathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_PATHMTU, Len: sizeofIPv6Mtuinfo}},
+ ssoChecksum: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_CHECKSUM, Len: 4}},
+ ssoICMPFilter: {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: sysICMP6_FILTER, Len: sizeofICMPv6Filter}},
+ ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
+ ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
+ ssoJoinSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+ ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+ ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+ ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
}
)
-func init() {
- // Seems like kern.osreldate is veiled on latest OS X. We use
- // kern.osrelease instead.
- s, err := syscall.Sysctl("kern.osrelease")
- if err != nil {
- return
- }
- ss := strings.Split(s, ".")
- if len(ss) == 0 {
- return
- }
- // The IP_PKTINFO and protocol-independent multicast API were
- // introduced in OS X 10.7 (Darwin 11). But it looks like
- // those features require OS X 10.8 (Darwin 12) or above.
- // See http://support.apple.com/kb/HT1633.
- if mjver, err := strconv.Atoi(ss[0]); err != nil || mjver < 12 {
- return
- }
- ctlOpts[ctlTrafficClass] = ctlOpt{sysIPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass}
- ctlOpts[ctlHopLimit] = ctlOpt{sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit}
- ctlOpts[ctlPacketInfo] = ctlOpt{sysIPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo}
- ctlOpts[ctlNextHop] = ctlOpt{sysIPV6_NEXTHOP, sizeofSockaddrInet6, marshalNextHop, parseNextHop}
- ctlOpts[ctlPathMTU] = ctlOpt{sysIPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU}
- sockOpts[ssoTrafficClass] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_TCLASS, Len: 4}}
- sockOpts[ssoReceiveTrafficClass] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVTCLASS, Len: 4}}
- sockOpts[ssoReceiveHopLimit] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVHOPLIMIT, Len: 4}}
- sockOpts[ssoReceivePacketInfo] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPKTINFO, Len: 4}}
- sockOpts[ssoReceivePathMTU] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPATHMTU, Len: 4}}
- sockOpts[ssoPathMTU] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_PATHMTU, Len: sizeofIPv6Mtuinfo}}
- sockOpts[ssoJoinGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}
- sockOpts[ssoLeaveGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}
- sockOpts[ssoJoinSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}
- sockOpts[ssoLeaveSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}
- sockOpts[ssoBlockSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}
- sockOpts[ssoUnblockSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}
-}
-
func (sa *sockaddrInet6) setSockaddr(ip net.IP, i int) {
sa.Len = sizeofSockaddrInet6
sa.Family = syscall.AF_INET6
diff --git a/vendor/golang.org/x/net/proxy/proxy.go b/vendor/golang.org/x/net/proxy/proxy.go
index 553ead7cf0..f6026b902c 100644
--- a/vendor/golang.org/x/net/proxy/proxy.go
+++ b/vendor/golang.org/x/net/proxy/proxy.go
@@ -79,8 +79,13 @@ func FromURL(u *url.URL, forward Dialer) (Dialer, error) {
}
switch u.Scheme {
- case "socks5":
- return SOCKS5("tcp", u.Host, auth, forward)
+ case "socks5", "socks5h":
+ addr := u.Hostname()
+ port := u.Port()
+ if port == "" {
+ port = "1080"
+ }
+ return SOCKS5("tcp", net.JoinHostPort(addr, port), auth, forward)
}
// If the scheme doesn't match any of the built-in schemes, see if it
diff --git a/vendor/golang.org/x/net/route/route.go b/vendor/golang.org/x/net/route/route.go
index 081da0d5c1..8cb64f789b 100644
--- a/vendor/golang.org/x/net/route/route.go
+++ b/vendor/golang.org/x/net/route/route.go
@@ -8,8 +8,8 @@
// packet routing facilities on BSD variants.
//
// The package supports any version of Darwin, any version of
-// DragonFly BSD, FreeBSD 7 through 11, NetBSD 6 and above, and
-// OpenBSD 5.6 and above.
+// DragonFly BSD, FreeBSD 7 and above, NetBSD 6 and above, and OpenBSD
+// 5.6 and above.
package route
import (
diff --git a/vendor/golang.org/x/net/route/zsys_freebsd_arm64.go b/vendor/golang.org/x/net/route/zsys_freebsd_arm64.go
new file mode 100644
index 0000000000..4c639b82e4
--- /dev/null
+++ b/vendor/golang.org/x/net/route/zsys_freebsd_arm64.go
@@ -0,0 +1,123 @@
+// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+// cgo -godefs defs_freebsd.go
+
+package route
+
+const (
+ sysAF_UNSPEC = 0x0
+ sysAF_INET = 0x2
+ sysAF_ROUTE = 0x11
+ sysAF_LINK = 0x12
+ sysAF_INET6 = 0x1c
+
+ sysSOCK_RAW = 0x3
+
+ sysNET_RT_DUMP = 0x1
+ sysNET_RT_FLAGS = 0x2
+ sysNET_RT_IFLIST = 0x3
+ sysNET_RT_IFMALIST = 0x4
+ sysNET_RT_IFLISTL = 0x5
+)
+
+const (
+ sysCTL_MAXNAME = 0x18
+
+ sysCTL_UNSPEC = 0x0
+ sysCTL_KERN = 0x1
+ sysCTL_VM = 0x2
+ sysCTL_VFS = 0x3
+ sysCTL_NET = 0x4
+ sysCTL_DEBUG = 0x5
+ sysCTL_HW = 0x6
+ sysCTL_MACHDEP = 0x7
+ sysCTL_USER = 0x8
+ sysCTL_P1003_1B = 0x9
+)
+
+const (
+ sysRTM_VERSION = 0x5
+
+ sysRTM_ADD = 0x1
+ sysRTM_DELETE = 0x2
+ sysRTM_CHANGE = 0x3
+ sysRTM_GET = 0x4
+ sysRTM_LOSING = 0x5
+ sysRTM_REDIRECT = 0x6
+ sysRTM_MISS = 0x7
+ sysRTM_LOCK = 0x8
+ sysRTM_RESOLVE = 0xb
+ sysRTM_NEWADDR = 0xc
+ sysRTM_DELADDR = 0xd
+ sysRTM_IFINFO = 0xe
+ sysRTM_NEWMADDR = 0xf
+ sysRTM_DELMADDR = 0x10
+ sysRTM_IFANNOUNCE = 0x11
+ sysRTM_IEEE80211 = 0x12
+
+ sysRTA_DST = 0x1
+ sysRTA_GATEWAY = 0x2
+ sysRTA_NETMASK = 0x4
+ sysRTA_GENMASK = 0x8
+ sysRTA_IFP = 0x10
+ sysRTA_IFA = 0x20
+ sysRTA_AUTHOR = 0x40
+ sysRTA_BRD = 0x80
+
+ sysRTAX_DST = 0x0
+ sysRTAX_GATEWAY = 0x1
+ sysRTAX_NETMASK = 0x2
+ sysRTAX_GENMASK = 0x3
+ sysRTAX_IFP = 0x4
+ sysRTAX_IFA = 0x5
+ sysRTAX_AUTHOR = 0x6
+ sysRTAX_BRD = 0x7
+ sysRTAX_MAX = 0x8
+)
+
+const (
+ sizeofIfMsghdrlFreeBSD10 = 0xb0
+ sizeofIfaMsghdrFreeBSD10 = 0x14
+ sizeofIfaMsghdrlFreeBSD10 = 0xb0
+ sizeofIfmaMsghdrFreeBSD10 = 0x10
+ sizeofIfAnnouncemsghdrFreeBSD10 = 0x18
+
+ sizeofRtMsghdrFreeBSD10 = 0x98
+ sizeofRtMetricsFreeBSD10 = 0x70
+
+ sizeofIfMsghdrFreeBSD7 = 0xa8
+ sizeofIfMsghdrFreeBSD8 = 0xa8
+ sizeofIfMsghdrFreeBSD9 = 0xa8
+ sizeofIfMsghdrFreeBSD10 = 0xa8
+ sizeofIfMsghdrFreeBSD11 = 0xa8
+
+ sizeofIfDataFreeBSD7 = 0x98
+ sizeofIfDataFreeBSD8 = 0x98
+ sizeofIfDataFreeBSD9 = 0x98
+ sizeofIfDataFreeBSD10 = 0x98
+ sizeofIfDataFreeBSD11 = 0x98
+
+ sizeofIfMsghdrlFreeBSD10Emu = 0xb0
+ sizeofIfaMsghdrFreeBSD10Emu = 0x14
+ sizeofIfaMsghdrlFreeBSD10Emu = 0xb0
+ sizeofIfmaMsghdrFreeBSD10Emu = 0x10
+ sizeofIfAnnouncemsghdrFreeBSD10Emu = 0x18
+
+ sizeofRtMsghdrFreeBSD10Emu = 0x98
+ sizeofRtMetricsFreeBSD10Emu = 0x70
+
+ sizeofIfMsghdrFreeBSD7Emu = 0xa8
+ sizeofIfMsghdrFreeBSD8Emu = 0xa8
+ sizeofIfMsghdrFreeBSD9Emu = 0xa8
+ sizeofIfMsghdrFreeBSD10Emu = 0xa8
+ sizeofIfMsghdrFreeBSD11Emu = 0xa8
+
+ sizeofIfDataFreeBSD7Emu = 0x98
+ sizeofIfDataFreeBSD8Emu = 0x98
+ sizeofIfDataFreeBSD9Emu = 0x98
+ sizeofIfDataFreeBSD10Emu = 0x98
+ sizeofIfDataFreeBSD11Emu = 0x98
+
+ sizeofSockaddrStorage = 0x80
+ sizeofSockaddrInet = 0x10
+ sizeofSockaddrInet6 = 0x1c
+)
diff --git a/vendor/golang.org/x/net/trace/trace.go b/vendor/golang.org/x/net/trace/trace.go
index 43711c67d6..3ebf6f2daa 100644
--- a/vendor/golang.org/x/net/trace/trace.go
+++ b/vendor/golang.org/x/net/trace/trace.go
@@ -86,6 +86,12 @@ import (
// FOR DEBUGGING ONLY. This will slow down the program.
var DebugUseAfterFinish = false
+// HTTP ServeMux paths.
+const (
+ debugRequestsPath = "/debug/requests"
+ debugEventsPath = "/debug/events"
+)
+
// AuthRequest determines whether a specific request is permitted to load the
// /debug/requests or /debug/events pages.
//
@@ -112,8 +118,8 @@ var AuthRequest = func(req *http.Request) (any, sensitive bool) {
}
func init() {
- _, pat := http.DefaultServeMux.Handler(&http.Request{URL: &url.URL{Path: "/debug/requests"}})
- if pat != "" {
+ _, pat := http.DefaultServeMux.Handler(&http.Request{URL: &url.URL{Path: debugRequestsPath}})
+ if pat == debugRequestsPath {
panic("/debug/requests is already registered. You may have two independent copies of " +
"golang.org/x/net/trace in your binary, trying to maintain separate state. This may " +
"involve a vendored copy of golang.org/x/net/trace.")
@@ -121,8 +127,8 @@ func init() {
// TODO(jbd): Serve Traces from /debug/traces in the future?
// There is no requirement for a request to be present to have traces.
- http.HandleFunc("/debug/requests", Traces)
- http.HandleFunc("/debug/events", Events)
+ http.HandleFunc(debugRequestsPath, Traces)
+ http.HandleFunc(debugEventsPath, Events)
}
// NewContext returns a copy of the parent context
diff --git a/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials.go b/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials.go
index 3c816bb8b3..7a0b9ed102 100644
--- a/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials.go
+++ b/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials.go
@@ -42,6 +42,11 @@ type Config struct {
// EndpointParams specifies additional parameters for requests to the token endpoint.
EndpointParams url.Values
+
+ // AuthStyle optionally specifies how the endpoint wants the
+ // client ID & client secret sent. The zero value means to
+ // auto-detect.
+ AuthStyle oauth2.AuthStyle
}
// Token uses client credentials to retrieve a token.
@@ -90,12 +95,15 @@ func (c *tokenSource) Token() (*oauth2.Token, error) {
v.Set("scope", strings.Join(c.conf.Scopes, " "))
}
for k, p := range c.conf.EndpointParams {
- if _, ok := v[k]; ok {
+ // Allow grant_type to be overridden to allow interoperability with
+ // non-compliant implementations.
+ if _, ok := v[k]; ok && k != "grant_type" {
return nil, fmt.Errorf("oauth2: cannot overwrite parameter %q", k)
}
v[k] = p
}
- tk, err := internal.RetrieveToken(c.ctx, c.conf.ClientID, c.conf.ClientSecret, c.conf.TokenURL, v)
+
+ tk, err := internal.RetrieveToken(c.ctx, c.conf.ClientID, c.conf.ClientSecret, c.conf.TokenURL, v, internal.AuthStyle(c.conf.AuthStyle))
if err != nil {
if rErr, ok := err.(*internal.RetrieveError); ok {
return nil, (*oauth2.RetrieveError)(rErr)
diff --git a/vendor/golang.org/x/oauth2/google/google.go b/vendor/golang.org/x/oauth2/google/google.go
index ca7d208d77..4b0b547204 100644
--- a/vendor/golang.org/x/oauth2/google/google.go
+++ b/vendor/golang.org/x/oauth2/google/google.go
@@ -19,8 +19,9 @@ import (
// Endpoint is Google's OAuth 2.0 endpoint.
var Endpoint = oauth2.Endpoint{
- AuthURL: "https://accounts.google.com/o/oauth2/auth",
- TokenURL: "https://accounts.google.com/o/oauth2/token",
+ AuthURL: "https://accounts.google.com/o/oauth2/auth",
+ TokenURL: "https://accounts.google.com/o/oauth2/token",
+ AuthStyle: oauth2.AuthStyleInParams,
}
// JWTTokenURL is Google's OAuth 2.0 token URL to use with the JWT flow.
diff --git a/vendor/golang.org/x/oauth2/internal/token.go b/vendor/golang.org/x/oauth2/internal/token.go
index a831b77465..955d5a02bd 100644
--- a/vendor/golang.org/x/oauth2/internal/token.go
+++ b/vendor/golang.org/x/oauth2/internal/token.go
@@ -16,6 +16,7 @@ import (
"net/url"
"strconv"
"strings"
+ "sync"
"time"
"golang.org/x/net/context/ctxhttp"
@@ -77,6 +78,9 @@ func (e *tokenJSON) expiry() (t time.Time) {
type expirationTime int32
func (e *expirationTime) UnmarshalJSON(b []byte) error {
+ if len(b) == 0 || string(b) == "null" {
+ return nil
+ }
var n json.Number
err := json.Unmarshal(b, &n)
if err != nil {
@@ -90,102 +94,71 @@ func (e *expirationTime) UnmarshalJSON(b []byte) error {
return nil
}
-var brokenAuthHeaderProviders = []string{
- "https://accounts.google.com/",
- "https://api.codeswholesale.com/oauth/token",
- "https://api.dropbox.com/",
- "https://api.dropboxapi.com/",
- "https://api.instagram.com/",
- "https://api.netatmo.net/",
- "https://api.odnoklassniki.ru/",
- "https://api.pushbullet.com/",
- "https://api.soundcloud.com/",
- "https://api.twitch.tv/",
- "https://id.twitch.tv/",
- "https://app.box.com/",
- "https://api.box.com/",
- "https://connect.stripe.com/",
- "https://login.mailchimp.com/",
- "https://login.microsoftonline.com/",
- "https://login.salesforce.com/",
- "https://login.windows.net",
- "https://login.live.com/",
- "https://login.live-int.com/",
- "https://oauth.sandbox.trainingpeaks.com/",
- "https://oauth.trainingpeaks.com/",
- "https://oauth.vk.com/",
- "https://openapi.baidu.com/",
- "https://slack.com/",
- "https://test-sandbox.auth.corp.google.com",
- "https://test.salesforce.com/",
- "https://user.gini.net/",
- "https://www.douban.com/",
- "https://www.googleapis.com/",
- "https://www.linkedin.com/",
- "https://www.strava.com/oauth/",
- "https://www.wunderlist.com/oauth/",
- "https://api.patreon.com/",
- "https://sandbox.codeswholesale.com/oauth/token",
- "https://api.sipgate.com/v1/authorization/oauth",
- "https://api.medium.com/v1/tokens",
- "https://log.finalsurge.com/oauth/token",
- "https://multisport.todaysplan.com.au/rest/oauth/access_token",
- "https://whats.todaysplan.com.au/rest/oauth/access_token",
- "https://stackoverflow.com/oauth/access_token",
- "https://account.health.nokia.com",
- "https://accounts.zoho.com",
- "https://gitter.im/login/oauth/token",
- "https://openid-connect.onelogin.com/oidc",
- "https://api.dailymotion.com/oauth/token",
-}
+// RegisterBrokenAuthHeaderProvider previously did something. It is now a no-op.
+//
+// Deprecated: this function no longer does anything. Caller code that
+// wants to avoid potential extra HTTP requests made during
+// auto-probing of the provider's auth style should set
+// Endpoint.AuthStyle.
+func RegisterBrokenAuthHeaderProvider(tokenURL string) {}
-// brokenAuthHeaderDomains lists broken providers that issue dynamic endpoints.
-var brokenAuthHeaderDomains = []string{
- ".auth0.com",
- ".force.com",
- ".myshopify.com",
- ".okta.com",
- ".oktapreview.com",
+// AuthStyle is a copy of the golang.org/x/oauth2 package's AuthStyle type.
+type AuthStyle int
+
+const (
+ AuthStyleUnknown AuthStyle = 0
+ AuthStyleInParams AuthStyle = 1
+ AuthStyleInHeader AuthStyle = 2
+)
+
+// authStyleCache is the set of tokenURLs we've successfully used via
+// RetrieveToken and which style auth we ended up using.
+// It's called a cache, but it doesn't (yet?) shrink. It's expected that
+// the set of OAuth2 servers a program contacts over time is fixed and
+// small.
+var authStyleCache struct {
+ sync.Mutex
+ m map[string]AuthStyle // keyed by tokenURL
}
-func RegisterBrokenAuthHeaderProvider(tokenURL string) {
- brokenAuthHeaderProviders = append(brokenAuthHeaderProviders, tokenURL)
+// ResetAuthCache resets the global authentication style cache used
+// for AuthStyleUnknown token requests.
+func ResetAuthCache() {
+ authStyleCache.Lock()
+ defer authStyleCache.Unlock()
+ authStyleCache.m = nil
}
-// providerAuthHeaderWorks reports whether the OAuth2 server identified by the tokenURL
-// implements the OAuth2 spec correctly
-// See https://code.google.com/p/goauth2/issues/detail?id=31 for background.
-// In summary:
-// - Reddit only accepts client secret in the Authorization header
-// - Dropbox accepts either it in URL param or Auth header, but not both.
-// - Google only accepts URL param (not spec compliant?), not Auth header
-// - Stripe only accepts client secret in Auth header with Bearer method, not Basic
-func providerAuthHeaderWorks(tokenURL string) bool {
- for _, s := range brokenAuthHeaderProviders {
- if strings.HasPrefix(tokenURL, s) {
- // Some sites fail to implement the OAuth2 spec fully.
- return false
- }
- }
+// lookupAuthStyle reports which auth style we last used with tokenURL
+// when calling RetrieveToken and whether we have ever done so.
+func lookupAuthStyle(tokenURL string) (style AuthStyle, ok bool) {
+ authStyleCache.Lock()
+ defer authStyleCache.Unlock()
+ style, ok = authStyleCache.m[tokenURL]
+ return
+}
- if u, err := url.Parse(tokenURL); err == nil {
- for _, s := range brokenAuthHeaderDomains {
- if strings.HasSuffix(u.Host, s) {
- return false
- }
- }
+// setAuthStyle adds an entry to authStyleCache, documented above.
+func setAuthStyle(tokenURL string, v AuthStyle) {
+ authStyleCache.Lock()
+ defer authStyleCache.Unlock()
+ if authStyleCache.m == nil {
+ authStyleCache.m = make(map[string]AuthStyle)
}
-
- // Assume the provider implements the spec properly
- // otherwise. We can add more exceptions as they're
- // discovered. We will _not_ be adding configurable hooks
- // to this package to let users select server bugs.
- return true
+ authStyleCache.m[tokenURL] = v
}
-func RetrieveToken(ctx context.Context, clientID, clientSecret, tokenURL string, v url.Values) (*Token, error) {
- bustedAuth := !providerAuthHeaderWorks(tokenURL)
- if bustedAuth {
+// newTokenRequest returns a new *http.Request to retrieve a new token
+// from tokenURL using the provided clientID, clientSecret, and POST
+// body parameters.
+//
+// inParams is whether the clientID & clientSecret should be encoded
+// as the POST body. An 'inParams' value of true means to send it in
+// the POST body (along with any values in v); false means to send it
+// in the Authorization header.
+func newTokenRequest(tokenURL, clientID, clientSecret string, v url.Values, authStyle AuthStyle) (*http.Request, error) {
+ if authStyle == AuthStyleInParams {
+ v = cloneURLValues(v)
if clientID != "" {
v.Set("client_id", clientID)
}
@@ -198,15 +171,70 @@ func RetrieveToken(ctx context.Context, clientID, clientSecret, tokenURL string,
return nil, err
}
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
- if !bustedAuth {
+ if authStyle == AuthStyleInHeader {
req.SetBasicAuth(url.QueryEscape(clientID), url.QueryEscape(clientSecret))
}
+ return req, nil
+}
+
+func cloneURLValues(v url.Values) url.Values {
+ v2 := make(url.Values, len(v))
+ for k, vv := range v {
+ v2[k] = append([]string(nil), vv...)
+ }
+ return v2
+}
+
+func RetrieveToken(ctx context.Context, clientID, clientSecret, tokenURL string, v url.Values, authStyle AuthStyle) (*Token, error) {
+ needsAuthStyleProbe := authStyle == 0
+ if needsAuthStyleProbe {
+ if style, ok := lookupAuthStyle(tokenURL); ok {
+ authStyle = style
+ needsAuthStyleProbe = false
+ } else {
+ authStyle = AuthStyleInHeader // the first way we'll try
+ }
+ }
+ req, err := newTokenRequest(tokenURL, clientID, clientSecret, v, authStyle)
+ if err != nil {
+ return nil, err
+ }
+ token, err := doTokenRoundTrip(ctx, req)
+ if err != nil && needsAuthStyleProbe {
+ // If we get an error, assume the server wants the
+ // clientID & clientSecret in a different form.
+ // See https://code.google.com/p/goauth2/issues/detail?id=31 for background.
+ // In summary:
+ // - Reddit only accepts client secret in the Authorization header
+ // - Dropbox accepts either it in URL param or Auth header, but not both.
+ // - Google only accepts URL param (not spec compliant?), not Auth header
+ // - Stripe only accepts client secret in Auth header with Bearer method, not Basic
+ //
+ // We used to maintain a big table in this code of all the sites and which way
+ // they went, but maintaining it didn't scale & got annoying.
+ // So just try both ways.
+ authStyle = AuthStyleInParams // the second way we'll try
+ req, _ = newTokenRequest(tokenURL, clientID, clientSecret, v, authStyle)
+ token, err = doTokenRoundTrip(ctx, req)
+ }
+ if needsAuthStyleProbe && err == nil {
+ setAuthStyle(tokenURL, authStyle)
+ }
+ // Don't overwrite `RefreshToken` with an empty value
+ // if this was a token refreshing request.
+ if token != nil && token.RefreshToken == "" {
+ token.RefreshToken = v.Get("refresh_token")
+ }
+ return token, err
+}
+
+func doTokenRoundTrip(ctx context.Context, req *http.Request) (*Token, error) {
r, err := ctxhttp.Do(ctx, ContextClient(ctx), req)
if err != nil {
return nil, err
}
- defer r.Body.Close()
body, err := ioutil.ReadAll(io.LimitReader(r.Body, 1<<20))
+ r.Body.Close()
if err != nil {
return nil, fmt.Errorf("oauth2: cannot fetch token: %v", err)
}
@@ -232,7 +260,7 @@ func RetrieveToken(ctx context.Context, clientID, clientSecret, tokenURL string,
Raw: vals,
}
e := vals.Get("expires_in")
- if e == "" {
+ if e == "" || e == "null" {
// TODO(jbd): Facebook's OAuth2 implementation is broken and
// returns expires_in field in expires. Remove the fallback to expires,
// when Facebook fixes their implementation.
@@ -256,13 +284,8 @@ func RetrieveToken(ctx context.Context, clientID, clientSecret, tokenURL string,
}
json.Unmarshal(body, &token.Raw) // no error checks for optional fields
}
- // Don't overwrite `RefreshToken` with an empty value
- // if this was a token refreshing request.
- if token.RefreshToken == "" {
- token.RefreshToken = v.Get("refresh_token")
- }
if token.AccessToken == "" {
- return token, errors.New("oauth2: server response missing access_token")
+ return nil, errors.New("oauth2: server response missing access_token")
}
return token, nil
}
diff --git a/vendor/golang.org/x/oauth2/jwt/jwt.go b/vendor/golang.org/x/oauth2/jwt/jwt.go
index 0783a94c48..99f3e0a32c 100644
--- a/vendor/golang.org/x/oauth2/jwt/jwt.go
+++ b/vendor/golang.org/x/oauth2/jwt/jwt.go
@@ -61,6 +61,11 @@ type Config struct {
// Expires optionally specifies how long the token is valid for.
Expires time.Duration
+
+ // Audience optionally specifies the intended audience of the
+ // request. If empty, the value of TokenURL is used as the
+ // intended audience.
+ Audience string
}
// TokenSource returns a JWT TokenSource using the configuration
@@ -105,6 +110,9 @@ func (js jwtSource) Token() (*oauth2.Token, error) {
if t := js.conf.Expires; t > 0 {
claimSet.Exp = time.Now().Add(t).Unix()
}
+ if aud := js.conf.Audience; aud != "" {
+ claimSet.Aud = aud
+ }
h := *defaultHeader
h.KeyID = js.conf.PrivateKeyID
payload, err := jws.Encode(&h, claimSet, pk)
diff --git a/vendor/golang.org/x/oauth2/linkedin/linkedin.go b/vendor/golang.org/x/oauth2/linkedin/linkedin.go
index 62d1de8173..d3972771c6 100644
--- a/vendor/golang.org/x/oauth2/linkedin/linkedin.go
+++ b/vendor/golang.org/x/oauth2/linkedin/linkedin.go
@@ -11,6 +11,7 @@ import (
// Endpoint is LinkedIn's OAuth 2.0 endpoint.
var Endpoint = oauth2.Endpoint{
- AuthURL: "https://www.linkedin.com/oauth/v2/authorization",
- TokenURL: "https://www.linkedin.com/oauth/v2/accessToken",
+ AuthURL: "https://www.linkedin.com/oauth/v2/authorization",
+ TokenURL: "https://www.linkedin.com/oauth/v2/accessToken",
+ AuthStyle: oauth2.AuthStyleInParams,
}
diff --git a/vendor/golang.org/x/oauth2/oauth2.go b/vendor/golang.org/x/oauth2/oauth2.go
index 1e8e1b741a..428283f0b0 100644
--- a/vendor/golang.org/x/oauth2/oauth2.go
+++ b/vendor/golang.org/x/oauth2/oauth2.go
@@ -26,17 +26,13 @@ import (
// Deprecated: Use context.Background() or context.TODO() instead.
var NoContext = context.TODO()
-// RegisterBrokenAuthHeaderProvider registers an OAuth2 server
-// identified by the tokenURL prefix as an OAuth2 implementation
-// which doesn't support the HTTP Basic authentication
-// scheme to authenticate with the authorization server.
-// Once a server is registered, credentials (client_id and client_secret)
-// will be passed as query parameters rather than being present
-// in the Authorization header.
-// See https://code.google.com/p/goauth2/issues/detail?id=31 for background.
-func RegisterBrokenAuthHeaderProvider(tokenURL string) {
- internal.RegisterBrokenAuthHeaderProvider(tokenURL)
-}
+// RegisterBrokenAuthHeaderProvider previously did something. It is now a no-op.
+//
+// Deprecated: this function no longer does anything. Caller code that
+// wants to avoid potential extra HTTP requests made during
+// auto-probing of the provider's auth style should set
+// Endpoint.AuthStyle.
+func RegisterBrokenAuthHeaderProvider(tokenURL string) {}
// Config describes a typical 3-legged OAuth2 flow, with both the
// client application information and the server's endpoint URLs.
@@ -71,13 +67,38 @@ type TokenSource interface {
Token() (*Token, error)
}
-// Endpoint contains the OAuth 2.0 provider's authorization and token
+// Endpoint represents an OAuth 2.0 provider's authorization and token
// endpoint URLs.
type Endpoint struct {
AuthURL string
TokenURL string
+
+ // AuthStyle optionally specifies how the endpoint wants the
+ // client ID & client secret sent. The zero value means to
+ // auto-detect.
+ AuthStyle AuthStyle
}
+// AuthStyle represents how requests for tokens are authenticated
+// to the server.
+type AuthStyle int
+
+const (
+ // AuthStyleAutoDetect means to auto-detect which authentication
+ // style the provider wants by trying both ways and caching
+ // the successful way for the future.
+ AuthStyleAutoDetect AuthStyle = 0
+
+ // AuthStyleInParams sends the "client_id" and "client_secret"
+ // in the POST body as application/x-www-form-urlencoded parameters.
+ AuthStyleInParams AuthStyle = 1
+
+ // AuthStyleInHeader sends the client_id and client_password
+ // using HTTP Basic Authorization. This is an optional style
+ // described in the OAuth2 RFC 6749 section 2.3.1.
+ AuthStyleInHeader AuthStyle = 2
+)
+
var (
// AccessTypeOnline and AccessTypeOffline are options passed
// to the Options.AuthCodeURL method. They modify the
@@ -124,7 +145,7 @@ func SetAuthURLParam(key, value string) AuthCodeOption {
//
// Opts may include AccessTypeOnline or AccessTypeOffline, as well
// as ApprovalForce.
-// It can also be used to pass the PKCE challange.
+// It can also be used to pass the PKCE challenge.
// See https://www.oauth.com/oauth2-servers/pkce/ for more info.
func (c *Config) AuthCodeURL(state string, opts ...AuthCodeOption) string {
var buf bytes.Buffer
diff --git a/vendor/golang.org/x/oauth2/token.go b/vendor/golang.org/x/oauth2/token.go
index 9be1ae5373..822720341a 100644
--- a/vendor/golang.org/x/oauth2/token.go
+++ b/vendor/golang.org/x/oauth2/token.go
@@ -118,13 +118,16 @@ func (t *Token) Extra(key string) interface{} {
return v
}
+// timeNow is time.Now but pulled out as a variable for tests.
+var timeNow = time.Now
+
// expired reports whether the token is expired.
// t must be non-nil.
func (t *Token) expired() bool {
if t.Expiry.IsZero() {
return false
}
- return t.Expiry.Round(0).Add(-expiryDelta).Before(time.Now())
+ return t.Expiry.Round(0).Add(-expiryDelta).Before(timeNow())
}
// Valid reports whether t is non-nil, has an AccessToken, and is not expired.
@@ -151,7 +154,7 @@ func tokenFromInternal(t *internal.Token) *Token {
// This token is then mapped from *internal.Token into an *oauth2.Token which is returned along
// with an error..
func retrieveToken(ctx context.Context, c *Config, v url.Values) (*Token, error) {
- tk, err := internal.RetrieveToken(ctx, c.ClientID, c.ClientSecret, c.Endpoint.TokenURL, v)
+ tk, err := internal.RetrieveToken(ctx, c.ClientID, c.ClientSecret, c.Endpoint.TokenURL, v, internal.AuthStyle(c.Endpoint.AuthStyle))
if err != nil {
if rErr, ok := err.(*internal.RetrieveError); ok {
return nil, (*RetrieveError)(rErr)
diff --git a/vendor/golang.org/x/sys/cpu/byteorder.go b/vendor/golang.org/x/sys/cpu/byteorder.go
new file mode 100644
index 0000000000..da6b9e4363
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/byteorder.go
@@ -0,0 +1,30 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package cpu
+
+import (
+ "encoding/binary"
+ "runtime"
+)
+
+// hostByteOrder returns binary.LittleEndian on little-endian machines and
+// binary.BigEndian on big-endian machines.
+func hostByteOrder() binary.ByteOrder {
+ switch runtime.GOARCH {
+ case "386", "amd64", "amd64p32",
+ "arm", "arm64",
+ "mipsle", "mips64le", "mips64p32le",
+ "ppc64le",
+ "riscv", "riscv64":
+ return binary.LittleEndian
+ case "armbe", "arm64be",
+ "mips", "mips64", "mips64p32",
+ "ppc", "ppc64",
+ "s390", "s390x",
+ "sparc", "sparc64":
+ return binary.BigEndian
+ }
+ panic("unknown architecture")
+}
diff --git a/vendor/golang.org/x/sys/cpu/cpu.go b/vendor/golang.org/x/sys/cpu/cpu.go
index 11e8fb9c22..6b0034ecd7 100644
--- a/vendor/golang.org/x/sys/cpu/cpu.go
+++ b/vendor/golang.org/x/sys/cpu/cpu.go
@@ -29,6 +29,8 @@ var X86 struct {
HasOSXSAVE bool // OS supports XSAVE/XRESTOR for saving/restoring XMM registers.
HasPCLMULQDQ bool // PCLMULQDQ instruction - most often used for AES-GCM
HasPOPCNT bool // Hamming weight instruction POPCNT.
+ HasRDRAND bool // RDRAND instruction (on-chip random number generator)
+ HasRDSEED bool // RDSEED instruction (on-chip random number generator)
HasSSE2 bool // Streaming SIMD extension 2 (always available on amd64)
HasSSE3 bool // Streaming SIMD extension 3
HasSSSE3 bool // Supplemental streaming SIMD extension 3
@@ -68,3 +70,20 @@ var ARM64 struct {
HasASIMDFHM bool // Advanced SIMD multiplication FP16 to FP32
_ CacheLinePad
}
+
+// PPC64 contains the supported CPU features of the current ppc64/ppc64le platforms.
+// If the current platform is not ppc64/ppc64le then all feature flags are false.
+//
+// For ppc64/ppc64le, it is safe to check only for ISA level starting on ISA v3.00,
+// since there are no optional categories. There are some exceptions that also
+// require kernel support to work (DARN, SCV), so there are feature bits for
+// those as well. The minimum processor requirement is POWER8 (ISA 2.07).
+// The struct is padded to avoid false sharing.
+var PPC64 struct {
+ _ CacheLinePad
+ HasDARN bool // Hardware random number generator (requires kernel enablement)
+ HasSCV bool // Syscall vectored (requires kernel enablement)
+ IsPOWER8 bool // ISA v2.07 (POWER8)
+ IsPOWER9 bool // ISA v3.00 (POWER9)
+ _ CacheLinePad
+}
diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_arm64.go
deleted file mode 100644
index 02ed58b30d..0000000000
--- a/vendor/golang.org/x/sys/cpu/cpu_arm64.go
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright 2018 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package cpu
-
-const cacheLineSize = 64
-
-// HWCAP/HWCAP2 bits. These are exposed by Linux.
-const (
- hwcap_FP = 1 << 0
- hwcap_ASIMD = 1 << 1
- hwcap_EVTSTRM = 1 << 2
- hwcap_AES = 1 << 3
- hwcap_PMULL = 1 << 4
- hwcap_SHA1 = 1 << 5
- hwcap_SHA2 = 1 << 6
- hwcap_CRC32 = 1 << 7
- hwcap_ATOMICS = 1 << 8
- hwcap_FPHP = 1 << 9
- hwcap_ASIMDHP = 1 << 10
- hwcap_CPUID = 1 << 11
- hwcap_ASIMDRDM = 1 << 12
- hwcap_JSCVT = 1 << 13
- hwcap_FCMA = 1 << 14
- hwcap_LRCPC = 1 << 15
- hwcap_DCPOP = 1 << 16
- hwcap_SHA3 = 1 << 17
- hwcap_SM3 = 1 << 18
- hwcap_SM4 = 1 << 19
- hwcap_ASIMDDP = 1 << 20
- hwcap_SHA512 = 1 << 21
- hwcap_SVE = 1 << 22
- hwcap_ASIMDFHM = 1 << 23
-)
-
-func doinit() {
- // HWCAP feature bits
- ARM64.HasFP = isSet(HWCap, hwcap_FP)
- ARM64.HasASIMD = isSet(HWCap, hwcap_ASIMD)
- ARM64.HasEVTSTRM = isSet(HWCap, hwcap_EVTSTRM)
- ARM64.HasAES = isSet(HWCap, hwcap_AES)
- ARM64.HasPMULL = isSet(HWCap, hwcap_PMULL)
- ARM64.HasSHA1 = isSet(HWCap, hwcap_SHA1)
- ARM64.HasSHA2 = isSet(HWCap, hwcap_SHA2)
- ARM64.HasCRC32 = isSet(HWCap, hwcap_CRC32)
- ARM64.HasATOMICS = isSet(HWCap, hwcap_ATOMICS)
- ARM64.HasFPHP = isSet(HWCap, hwcap_FPHP)
- ARM64.HasASIMDHP = isSet(HWCap, hwcap_ASIMDHP)
- ARM64.HasCPUID = isSet(HWCap, hwcap_CPUID)
- ARM64.HasASIMDRDM = isSet(HWCap, hwcap_ASIMDRDM)
- ARM64.HasJSCVT = isSet(HWCap, hwcap_JSCVT)
- ARM64.HasFCMA = isSet(HWCap, hwcap_FCMA)
- ARM64.HasLRCPC = isSet(HWCap, hwcap_LRCPC)
- ARM64.HasDCPOP = isSet(HWCap, hwcap_DCPOP)
- ARM64.HasSHA3 = isSet(HWCap, hwcap_SHA3)
- ARM64.HasSM3 = isSet(HWCap, hwcap_SM3)
- ARM64.HasSM4 = isSet(HWCap, hwcap_SM4)
- ARM64.HasASIMDDP = isSet(HWCap, hwcap_ASIMDDP)
- ARM64.HasSHA512 = isSet(HWCap, hwcap_SHA512)
- ARM64.HasSVE = isSet(HWCap, hwcap_SVE)
- ARM64.HasASIMDFHM = isSet(HWCap, hwcap_ASIMDFHM)
-}
-
-func isSet(hwc uint, value uint) bool {
- return hwc&value != 0
-}
diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux.go b/vendor/golang.org/x/sys/cpu/cpu_linux.go
index 126bb684be..33b61e528a 100644
--- a/vendor/golang.org/x/sys/cpu/cpu_linux.go
+++ b/vendor/golang.org/x/sys/cpu/cpu_linux.go
@@ -7,7 +7,6 @@
package cpu
import (
- "encoding/binary"
"io/ioutil"
)
@@ -17,14 +16,14 @@ const (
procAuxv = "/proc/self/auxv"
- uintSize uint = 32 << (^uint(0) >> 63)
+ uintSize = int(32 << (^uint(0) >> 63))
)
// For those platforms don't have a 'cpuid' equivalent we use HWCAP/HWCAP2
// These are initialized in cpu_$GOARCH.go
// and should not be changed after they are initialized.
-var HWCap uint
-var HWCap2 uint
+var hwCap uint
+var hwCap2 uint
func init() {
buf, err := ioutil.ReadFile(procAuxv)
@@ -32,23 +31,24 @@ func init() {
panic("read proc auxv failed: " + err.Error())
}
- pb := int(uintSize / 8)
-
- for i := 0; i < len(buf)-pb*2; i += pb * 2 {
+ bo := hostByteOrder()
+ for len(buf) >= 2*(uintSize/8) {
var tag, val uint
switch uintSize {
case 32:
- tag = uint(binary.LittleEndian.Uint32(buf[i:]))
- val = uint(binary.LittleEndian.Uint32(buf[i+pb:]))
+ tag = uint(bo.Uint32(buf[0:]))
+ val = uint(bo.Uint32(buf[4:]))
+ buf = buf[8:]
case 64:
- tag = uint(binary.LittleEndian.Uint64(buf[i:]))
- val = uint(binary.LittleEndian.Uint64(buf[i+pb:]))
+ tag = uint(bo.Uint64(buf[0:]))
+ val = uint(bo.Uint64(buf[8:]))
+ buf = buf[16:]
}
switch tag {
case _AT_HWCAP:
- HWCap = val
+ hwCap = val
case _AT_HWCAP2:
- HWCap2 = val
+ hwCap2 = val
}
}
doinit()
diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go
new file mode 100644
index 0000000000..fa7fb1bd7b
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go
@@ -0,0 +1,67 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package cpu
+
+const cacheLineSize = 64
+
+// HWCAP/HWCAP2 bits. These are exposed by Linux.
+const (
+ hwcap_FP = 1 << 0
+ hwcap_ASIMD = 1 << 1
+ hwcap_EVTSTRM = 1 << 2
+ hwcap_AES = 1 << 3
+ hwcap_PMULL = 1 << 4
+ hwcap_SHA1 = 1 << 5
+ hwcap_SHA2 = 1 << 6
+ hwcap_CRC32 = 1 << 7
+ hwcap_ATOMICS = 1 << 8
+ hwcap_FPHP = 1 << 9
+ hwcap_ASIMDHP = 1 << 10
+ hwcap_CPUID = 1 << 11
+ hwcap_ASIMDRDM = 1 << 12
+ hwcap_JSCVT = 1 << 13
+ hwcap_FCMA = 1 << 14
+ hwcap_LRCPC = 1 << 15
+ hwcap_DCPOP = 1 << 16
+ hwcap_SHA3 = 1 << 17
+ hwcap_SM3 = 1 << 18
+ hwcap_SM4 = 1 << 19
+ hwcap_ASIMDDP = 1 << 20
+ hwcap_SHA512 = 1 << 21
+ hwcap_SVE = 1 << 22
+ hwcap_ASIMDFHM = 1 << 23
+)
+
+func doinit() {
+ // HWCAP feature bits
+ ARM64.HasFP = isSet(hwCap, hwcap_FP)
+ ARM64.HasASIMD = isSet(hwCap, hwcap_ASIMD)
+ ARM64.HasEVTSTRM = isSet(hwCap, hwcap_EVTSTRM)
+ ARM64.HasAES = isSet(hwCap, hwcap_AES)
+ ARM64.HasPMULL = isSet(hwCap, hwcap_PMULL)
+ ARM64.HasSHA1 = isSet(hwCap, hwcap_SHA1)
+ ARM64.HasSHA2 = isSet(hwCap, hwcap_SHA2)
+ ARM64.HasCRC32 = isSet(hwCap, hwcap_CRC32)
+ ARM64.HasATOMICS = isSet(hwCap, hwcap_ATOMICS)
+ ARM64.HasFPHP = isSet(hwCap, hwcap_FPHP)
+ ARM64.HasASIMDHP = isSet(hwCap, hwcap_ASIMDHP)
+ ARM64.HasCPUID = isSet(hwCap, hwcap_CPUID)
+ ARM64.HasASIMDRDM = isSet(hwCap, hwcap_ASIMDRDM)
+ ARM64.HasJSCVT = isSet(hwCap, hwcap_JSCVT)
+ ARM64.HasFCMA = isSet(hwCap, hwcap_FCMA)
+ ARM64.HasLRCPC = isSet(hwCap, hwcap_LRCPC)
+ ARM64.HasDCPOP = isSet(hwCap, hwcap_DCPOP)
+ ARM64.HasSHA3 = isSet(hwCap, hwcap_SHA3)
+ ARM64.HasSM3 = isSet(hwCap, hwcap_SM3)
+ ARM64.HasSM4 = isSet(hwCap, hwcap_SM4)
+ ARM64.HasASIMDDP = isSet(hwCap, hwcap_ASIMDDP)
+ ARM64.HasSHA512 = isSet(hwCap, hwcap_SHA512)
+ ARM64.HasSVE = isSet(hwCap, hwcap_SVE)
+ ARM64.HasASIMDFHM = isSet(hwCap, hwcap_ASIMDFHM)
+}
+
+func isSet(hwc uint, value uint) bool {
+ return hwc&value != 0
+}
diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go b/vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go
new file mode 100644
index 0000000000..6c8d975d40
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go
@@ -0,0 +1,33 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build linux
+// +build ppc64 ppc64le
+
+package cpu
+
+const cacheLineSize = 128
+
+// HWCAP/HWCAP2 bits. These are exposed by the kernel.
+const (
+ // ISA Level
+ _PPC_FEATURE2_ARCH_2_07 = 0x80000000
+ _PPC_FEATURE2_ARCH_3_00 = 0x00800000
+
+ // CPU features
+ _PPC_FEATURE2_DARN = 0x00200000
+ _PPC_FEATURE2_SCV = 0x00100000
+)
+
+func doinit() {
+ // HWCAP2 feature bits
+ PPC64.IsPOWER8 = isSet(hwCap2, _PPC_FEATURE2_ARCH_2_07)
+ PPC64.IsPOWER9 = isSet(hwCap2, _PPC_FEATURE2_ARCH_3_00)
+ PPC64.HasDARN = isSet(hwCap2, _PPC_FEATURE2_DARN)
+ PPC64.HasSCV = isSet(hwCap2, _PPC_FEATURE2_SCV)
+}
+
+func isSet(hwc uint, value uint) bool {
+ return hwc&value != 0
+}
diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go
new file mode 100644
index 0000000000..dd1e76dc92
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go
@@ -0,0 +1,11 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !linux,arm64
+
+package cpu
+
+const cacheLineSize = 64
+
+func doinit() {}
diff --git a/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go b/vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go
similarity index 72%
rename from vendor/golang.org/x/sys/cpu/cpu_ppc64x.go
rename to vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go
index 70c959bd35..3053b4b987 100644
--- a/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go
+++ b/vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go
@@ -1,7 +1,8 @@
-// Copyright 2018 The Go Authors. All rights reserved.
+// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+// +build !linux
// +build ppc64 ppc64le
package cpu
diff --git a/vendor/golang.org/x/sys/cpu/cpu_x86.go b/vendor/golang.org/x/sys/cpu/cpu_x86.go
index 71e288b062..2b3ca2e115 100644
--- a/vendor/golang.org/x/sys/cpu/cpu_x86.go
+++ b/vendor/golang.org/x/sys/cpu/cpu_x86.go
@@ -27,6 +27,7 @@ func init() {
X86.HasPOPCNT = isSet(23, ecx1)
X86.HasAES = isSet(25, ecx1)
X86.HasOSXSAVE = isSet(27, ecx1)
+ X86.HasRDRAND = isSet(30, ecx1)
osSupportsAVX := false
// For XGETBV, OSXSAVE bit is required and sufficient.
@@ -47,6 +48,7 @@ func init() {
X86.HasAVX2 = isSet(5, ebx7) && osSupportsAVX
X86.HasBMI2 = isSet(8, ebx7)
X86.HasERMS = isSet(9, ebx7)
+ X86.HasRDSEED = isSet(18, ebx7)
X86.HasADX = isSet(19, ebx7)
}
diff --git a/vendor/golang.org/x/sys/plan9/mksyscall.go b/vendor/golang.org/x/sys/plan9/mksyscall.go
new file mode 100644
index 0000000000..c403de16bb
--- /dev/null
+++ b/vendor/golang.org/x/sys/plan9/mksyscall.go
@@ -0,0 +1,393 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build ignore
+
+/*
+This program reads a file containing function prototypes
+(like syscall_plan9.go) and generates system call bodies.
+The prototypes are marked by lines beginning with "//sys"
+and read like func declarations if //sys is replaced by func, but:
+ * The parameter lists must give a name for each argument.
+ This includes return parameters.
+ * The parameter lists must give a type for each argument:
+ the (x, y, z int) shorthand is not allowed.
+ * If the return parameter is an error number, it must be named errno.
+
+A line beginning with //sysnb is like //sys, except that the
+goroutine will not be suspended during the execution of the system
+call. This must only be used for system calls which can never
+block, as otherwise the system call could cause all goroutines to
+hang.
+*/
+package main
+
+import (
+ "bufio"
+ "flag"
+ "fmt"
+ "os"
+ "regexp"
+ "strings"
+)
+
+var (
+ b32 = flag.Bool("b32", false, "32bit big-endian")
+ l32 = flag.Bool("l32", false, "32bit little-endian")
+ plan9 = flag.Bool("plan9", false, "plan9")
+ openbsd = flag.Bool("openbsd", false, "openbsd")
+ netbsd = flag.Bool("netbsd", false, "netbsd")
+ dragonfly = flag.Bool("dragonfly", false, "dragonfly")
+ arm = flag.Bool("arm", false, "arm") // 64-bit value should use (even, odd)-pair
+ tags = flag.String("tags", "", "build tags")
+ filename = flag.String("output", "", "output file name (standard output if omitted)")
+)
+
+// cmdLine returns this programs's commandline arguments
+func cmdLine() string {
+ return "go run mksyscall.go " + strings.Join(os.Args[1:], " ")
+}
+
+// buildTags returns build tags
+func buildTags() string {
+ return *tags
+}
+
+// Param is function parameter
+type Param struct {
+ Name string
+ Type string
+}
+
+// usage prints the program usage
+func usage() {
+ fmt.Fprintf(os.Stderr, "usage: go run mksyscall.go [-b32 | -l32] [-tags x,y] [file ...]\n")
+ os.Exit(1)
+}
+
+// parseParamList parses parameter list and returns a slice of parameters
+func parseParamList(list string) []string {
+ list = strings.TrimSpace(list)
+ if list == "" {
+ return []string{}
+ }
+ return regexp.MustCompile(`\s*,\s*`).Split(list, -1)
+}
+
+// parseParam splits a parameter into name and type
+func parseParam(p string) Param {
+ ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p)
+ if ps == nil {
+ fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p)
+ os.Exit(1)
+ }
+ return Param{ps[1], ps[2]}
+}
+
+func main() {
+ // Get the OS and architecture (using GOARCH_TARGET if it exists)
+ goos := os.Getenv("GOOS")
+ goarch := os.Getenv("GOARCH_TARGET")
+ if goarch == "" {
+ goarch = os.Getenv("GOARCH")
+ }
+
+ // Check that we are using the Docker-based build system if we should
+ if goos == "linux" {
+ if os.Getenv("GOLANG_SYS_BUILD") != "docker" {
+ fmt.Fprintf(os.Stderr, "In the Docker-based build system, mksyscall should not be called directly.\n")
+ fmt.Fprintf(os.Stderr, "See README.md\n")
+ os.Exit(1)
+ }
+ }
+
+ flag.Usage = usage
+ flag.Parse()
+ if len(flag.Args()) <= 0 {
+ fmt.Fprintf(os.Stderr, "no files to parse provided\n")
+ usage()
+ }
+
+ endianness := ""
+ if *b32 {
+ endianness = "big-endian"
+ } else if *l32 {
+ endianness = "little-endian"
+ }
+
+ libc := false
+ if goos == "darwin" && strings.Contains(buildTags(), ",go1.12") {
+ libc = true
+ }
+ trampolines := map[string]bool{}
+
+ text := ""
+ for _, path := range flag.Args() {
+ file, err := os.Open(path)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, err.Error())
+ os.Exit(1)
+ }
+ s := bufio.NewScanner(file)
+ for s.Scan() {
+ t := s.Text()
+ t = strings.TrimSpace(t)
+ t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `)
+ nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t)
+ if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil {
+ continue
+ }
+
+ // Line must be of the form
+ // func Open(path string, mode int, perm int) (fd int, errno error)
+ // Split into name, in params, out params.
+ f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*((?i)SYS_[A-Z0-9_]+))?$`).FindStringSubmatch(t)
+ if f == nil {
+ fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t)
+ os.Exit(1)
+ }
+ funct, inps, outps, sysname := f[2], f[3], f[4], f[5]
+
+ // Split argument lists on comma.
+ in := parseParamList(inps)
+ out := parseParamList(outps)
+
+ // Try in vain to keep people from editing this file.
+ // The theory is that they jump into the middle of the file
+ // without reading the header.
+ text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
+
+ // Go function header.
+ outDecl := ""
+ if len(out) > 0 {
+ outDecl = fmt.Sprintf(" (%s)", strings.Join(out, ", "))
+ }
+ text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outDecl)
+
+ // Check if err return available
+ errvar := ""
+ for _, param := range out {
+ p := parseParam(param)
+ if p.Type == "error" {
+ errvar = p.Name
+ break
+ }
+ }
+
+ // Prepare arguments to Syscall.
+ var args []string
+ n := 0
+ for _, param := range in {
+ p := parseParam(param)
+ if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
+ args = append(args, "uintptr(unsafe.Pointer("+p.Name+"))")
+ } else if p.Type == "string" && errvar != "" {
+ text += fmt.Sprintf("\tvar _p%d *byte\n", n)
+ text += fmt.Sprintf("\t_p%d, %s = BytePtrFromString(%s)\n", n, errvar, p.Name)
+ text += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar)
+ args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
+ n++
+ } else if p.Type == "string" {
+ fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n")
+ text += fmt.Sprintf("\tvar _p%d *byte\n", n)
+ text += fmt.Sprintf("\t_p%d, _ = BytePtrFromString(%s)\n", n, p.Name)
+ args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
+ n++
+ } else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil {
+ // Convert slice into pointer, length.
+ // Have to be careful not to take address of &a[0] if len == 0:
+ // pass dummy pointer in that case.
+ // Used to pass nil, but some OSes or simulators reject write(fd, nil, 0).
+ text += fmt.Sprintf("\tvar _p%d unsafe.Pointer\n", n)
+ text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = unsafe.Pointer(&%s[0])\n\t}", p.Name, n, p.Name)
+ text += fmt.Sprintf(" else {\n\t\t_p%d = unsafe.Pointer(&_zero)\n\t}\n", n)
+ args = append(args, fmt.Sprintf("uintptr(_p%d)", n), fmt.Sprintf("uintptr(len(%s))", p.Name))
+ n++
+ } else if p.Type == "int64" && (*openbsd || *netbsd) {
+ args = append(args, "0")
+ if endianness == "big-endian" {
+ args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
+ } else if endianness == "little-endian" {
+ args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
+ } else {
+ args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
+ }
+ } else if p.Type == "int64" && *dragonfly {
+ if regexp.MustCompile(`^(?i)extp(read|write)`).FindStringSubmatch(funct) == nil {
+ args = append(args, "0")
+ }
+ if endianness == "big-endian" {
+ args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
+ } else if endianness == "little-endian" {
+ args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
+ } else {
+ args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
+ }
+ } else if p.Type == "int64" && endianness != "" {
+ if len(args)%2 == 1 && *arm {
+ // arm abi specifies 64-bit argument uses
+ // (even, odd) pair
+ args = append(args, "0")
+ }
+ if endianness == "big-endian" {
+ args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
+ } else {
+ args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
+ }
+ } else {
+ args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
+ }
+ }
+
+ // Determine which form to use; pad args with zeros.
+ asm := "Syscall"
+ if nonblock != nil {
+ if errvar == "" && goos == "linux" {
+ asm = "RawSyscallNoError"
+ } else {
+ asm = "RawSyscall"
+ }
+ } else {
+ if errvar == "" && goos == "linux" {
+ asm = "SyscallNoError"
+ }
+ }
+ if len(args) <= 3 {
+ for len(args) < 3 {
+ args = append(args, "0")
+ }
+ } else if len(args) <= 6 {
+ asm += "6"
+ for len(args) < 6 {
+ args = append(args, "0")
+ }
+ } else if len(args) <= 9 {
+ asm += "9"
+ for len(args) < 9 {
+ args = append(args, "0")
+ }
+ } else {
+ fmt.Fprintf(os.Stderr, "%s:%s too many arguments to system call\n", path, funct)
+ }
+
+ // System call number.
+ if sysname == "" {
+ sysname = "SYS_" + funct
+ sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`)
+ sysname = strings.ToUpper(sysname)
+ }
+
+ var libcFn string
+ if libc {
+ asm = "syscall_" + strings.ToLower(asm[:1]) + asm[1:] // internal syscall call
+ sysname = strings.TrimPrefix(sysname, "SYS_") // remove SYS_
+ sysname = strings.ToLower(sysname) // lowercase
+ if sysname == "getdirentries64" {
+ // Special case - libSystem name and
+ // raw syscall name don't match.
+ sysname = "__getdirentries64"
+ }
+ libcFn = sysname
+ sysname = "funcPC(libc_" + sysname + "_trampoline)"
+ }
+
+ // Actual call.
+ arglist := strings.Join(args, ", ")
+ call := fmt.Sprintf("%s(%s, %s)", asm, sysname, arglist)
+
+ // Assign return values.
+ body := ""
+ ret := []string{"_", "_", "_"}
+ doErrno := false
+ for i := 0; i < len(out); i++ {
+ p := parseParam(out[i])
+ reg := ""
+ if p.Name == "err" && !*plan9 {
+ reg = "e1"
+ ret[2] = reg
+ doErrno = true
+ } else if p.Name == "err" && *plan9 {
+ ret[0] = "r0"
+ ret[2] = "e1"
+ break
+ } else {
+ reg = fmt.Sprintf("r%d", i)
+ ret[i] = reg
+ }
+ if p.Type == "bool" {
+ reg = fmt.Sprintf("%s != 0", reg)
+ }
+ if p.Type == "int64" && endianness != "" {
+ // 64-bit number in r1:r0 or r0:r1.
+ if i+2 > len(out) {
+ fmt.Fprintf(os.Stderr, "%s:%s not enough registers for int64 return\n", path, funct)
+ }
+ if endianness == "big-endian" {
+ reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i, i+1)
+ } else {
+ reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i+1, i)
+ }
+ ret[i] = fmt.Sprintf("r%d", i)
+ ret[i+1] = fmt.Sprintf("r%d", i+1)
+ }
+ if reg != "e1" || *plan9 {
+ body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg)
+ }
+ }
+ if ret[0] == "_" && ret[1] == "_" && ret[2] == "_" {
+ text += fmt.Sprintf("\t%s\n", call)
+ } else {
+ if errvar == "" && goos == "linux" {
+ // raw syscall without error on Linux, see golang.org/issue/22924
+ text += fmt.Sprintf("\t%s, %s := %s\n", ret[0], ret[1], call)
+ } else {
+ text += fmt.Sprintf("\t%s, %s, %s := %s\n", ret[0], ret[1], ret[2], call)
+ }
+ }
+ text += body
+
+ if *plan9 && ret[2] == "e1" {
+ text += "\tif int32(r0) == -1 {\n"
+ text += "\t\terr = e1\n"
+ text += "\t}\n"
+ } else if doErrno {
+ text += "\tif e1 != 0 {\n"
+ text += "\t\terr = errnoErr(e1)\n"
+ text += "\t}\n"
+ }
+ text += "\treturn\n"
+ text += "}\n\n"
+
+ if libc && !trampolines[libcFn] {
+ // some system calls share a trampoline, like read and readlen.
+ trampolines[libcFn] = true
+ // Declare assembly trampoline.
+ text += fmt.Sprintf("func libc_%s_trampoline()\n", libcFn)
+ // Assembly trampoline calls the libc_* function, which this magic
+ // redirects to use the function from libSystem.
+ text += fmt.Sprintf("//go:linkname libc_%s libc_%s\n", libcFn, libcFn)
+ text += fmt.Sprintf("//go:cgo_import_dynamic libc_%s %s \"/usr/lib/libSystem.B.dylib\"\n", libcFn, libcFn)
+ text += "\n"
+ }
+ }
+ if err := s.Err(); err != nil {
+ fmt.Fprintf(os.Stderr, err.Error())
+ os.Exit(1)
+ }
+ file.Close()
+ }
+ fmt.Printf(srcTemplate, cmdLine(), buildTags(), text)
+}
+
+const srcTemplate = `// %s
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build %s
+
+package plan9
+
+import "unsafe"
+
+%s
+`
diff --git a/vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go b/vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go
index 78d8465e53..6819bc2094 100644
--- a/vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go
+++ b/vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go
@@ -1,5 +1,7 @@
-// mksyscall.pl -l32 -plan9 syscall_plan9.go
-// Code generated by the command above; DO NOT EDIT.
+// go run mksyscall.go -l32 -plan9 -tags plan9,386 syscall_plan9.go
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build plan9,386
package plan9
@@ -57,7 +59,6 @@ func open(path string, mode int) (fd int, err error) {
return
}
r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
fd = int(r0)
if int32(r0) == -1 {
err = e1
@@ -74,7 +75,6 @@ func create(path string, mode int, perm uint32) (fd int, err error) {
return
}
r0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
- use(unsafe.Pointer(_p0))
fd = int(r0)
if int32(r0) == -1 {
err = e1
@@ -91,7 +91,6 @@ func remove(path string) (err error) {
return
}
r0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if int32(r0) == -1 {
err = e1
}
@@ -113,7 +112,6 @@ func stat(path string, edir []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))
- use(unsafe.Pointer(_p0))
n = int(r0)
if int32(r0) == -1 {
err = e1
@@ -135,8 +133,6 @@ func bind(name string, old string, flag int) (err error) {
return
}
r0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if int32(r0) == -1 {
err = e1
}
@@ -157,8 +153,6 @@ func mount(fd int, afd int, old string, flag int, aname string) (err error) {
return
}
r0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if int32(r0) == -1 {
err = e1
}
@@ -180,7 +174,6 @@ func wstat(path string, edir []byte) (err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))
- use(unsafe.Pointer(_p0))
if int32(r0) == -1 {
err = e1
}
@@ -196,7 +189,6 @@ func chdir(path string) (err error) {
return
}
r0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if int32(r0) == -1 {
err = e1
}
diff --git a/vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go b/vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go
index 78d8465e53..418abbbfc7 100644
--- a/vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go
+++ b/vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go
@@ -1,5 +1,7 @@
-// mksyscall.pl -l32 -plan9 syscall_plan9.go
-// Code generated by the command above; DO NOT EDIT.
+// go run mksyscall.go -l32 -plan9 -tags plan9,amd64 syscall_plan9.go
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build plan9,amd64
package plan9
@@ -57,7 +59,6 @@ func open(path string, mode int) (fd int, err error) {
return
}
r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
fd = int(r0)
if int32(r0) == -1 {
err = e1
@@ -74,7 +75,6 @@ func create(path string, mode int, perm uint32) (fd int, err error) {
return
}
r0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
- use(unsafe.Pointer(_p0))
fd = int(r0)
if int32(r0) == -1 {
err = e1
@@ -91,7 +91,6 @@ func remove(path string) (err error) {
return
}
r0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if int32(r0) == -1 {
err = e1
}
@@ -113,7 +112,6 @@ func stat(path string, edir []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))
- use(unsafe.Pointer(_p0))
n = int(r0)
if int32(r0) == -1 {
err = e1
@@ -135,8 +133,6 @@ func bind(name string, old string, flag int) (err error) {
return
}
r0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if int32(r0) == -1 {
err = e1
}
@@ -157,8 +153,6 @@ func mount(fd int, afd int, old string, flag int, aname string) (err error) {
return
}
r0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if int32(r0) == -1 {
err = e1
}
@@ -180,7 +174,6 @@ func wstat(path string, edir []byte) (err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))
- use(unsafe.Pointer(_p0))
if int32(r0) == -1 {
err = e1
}
@@ -196,7 +189,6 @@ func chdir(path string) (err error) {
return
}
r0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if int32(r0) == -1 {
err = e1
}
diff --git a/vendor/golang.org/x/sys/plan9/zsyscall_plan9_arm.go b/vendor/golang.org/x/sys/plan9/zsyscall_plan9_arm.go
index 4ff9e23d7d..3e8a1a58ca 100644
--- a/vendor/golang.org/x/sys/plan9/zsyscall_plan9_arm.go
+++ b/vendor/golang.org/x/sys/plan9/zsyscall_plan9_arm.go
@@ -1,5 +1,5 @@
-// mksyscall.pl -l32 -plan9 -tags plan9,arm syscall_plan9.go
-// Code generated by the command above; DO NOT EDIT.
+// go run mksyscall.go -l32 -plan9 -tags plan9,arm syscall_plan9.go
+// Code generated by the command above; see README.md. DO NOT EDIT.
// +build plan9,arm
diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s b/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s
new file mode 100644
index 0000000000..6f98ba5a37
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s
@@ -0,0 +1,29 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for ARM64, NetBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ B syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ B syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-104
+ B syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ B syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ B syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/fcntl.go b/vendor/golang.org/x/sys/unix/fcntl.go
index 9379ba9cef..39c03f1ef1 100644
--- a/vendor/golang.org/x/sys/unix/fcntl.go
+++ b/vendor/golang.org/x/sys/unix/fcntl.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// +build darwin dragonfly freebsd linux netbsd openbsd
+// +build dragonfly freebsd linux netbsd openbsd
package unix
diff --git a/vendor/golang.org/x/sys/unix/fcntl_darwin.go b/vendor/golang.org/x/sys/unix/fcntl_darwin.go
new file mode 100644
index 0000000000..5868a4a47b
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/fcntl_darwin.go
@@ -0,0 +1,18 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package unix
+
+import "unsafe"
+
+// FcntlInt performs a fcntl syscall on fd with the provided command and argument.
+func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
+ return fcntl(int(fd), cmd, arg)
+}
+
+// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
+func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
+ _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk))))
+ return err
+}
diff --git a/vendor/golang.org/x/sys/unix/linux/types.go b/vendor/golang.org/x/sys/unix/linux/types.go
index 8cac3e6f35..1cf247a43e 100644
--- a/vendor/golang.org/x/sys/unix/linux/types.go
+++ b/vendor/golang.org/x/sys/unix/linux/types.go
@@ -36,6 +36,7 @@ package unix
#include
#include
#include
+#include
#include
#include
#include
@@ -46,6 +47,7 @@ package unix
#include
#include
#include
+#include
#include
#include
#include
@@ -229,8 +231,8 @@ struct sockaddr_rc {
// copied from /usr/include/linux/un.h
struct my_sockaddr_un {
sa_family_t sun_family;
-#if defined(__ARM_EABI__) || defined(__powerpc64__)
- // on ARM char is by default unsigned
+#if defined(__ARM_EABI__) || defined(__powerpc64__) || defined(__riscv)
+ // on some platforms char is unsigned by default
signed char sun_path[108];
#else
char sun_path[108];
@@ -491,6 +493,8 @@ type Ucred C.struct_ucred
type TCPInfo C.struct_tcp_info
+type CanFilter C.struct_can_filter
+
const (
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
@@ -520,6 +524,7 @@ const (
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter
SizeofUcred = C.sizeof_struct_ucred
SizeofTCPInfo = C.sizeof_struct_tcp_info
+ SizeofCanFilter = C.sizeof_struct_can_filter
)
// Netlink routing and interface messages
@@ -657,6 +662,7 @@ const (
SizeofIfAddrmsg = C.sizeof_struct_ifaddrmsg
SizeofRtMsg = C.sizeof_struct_rtmsg
SizeofRtNexthop = C.sizeof_struct_rtnexthop
+ SizeofNdUseroptmsg = C.sizeof_struct_nduseroptmsg
)
type NlMsghdr C.struct_nlmsghdr
@@ -677,6 +683,8 @@ type RtMsg C.struct_rtmsg
type RtNexthop C.struct_rtnexthop
+type NdUseroptmsg C.struct_nduseroptmsg
+
// Linux socket filter
const (
@@ -748,7 +756,7 @@ const (
type Sigset_t C.sigset_t
-const RNDGETENTCNT = C.RNDGETENTCNT
+type SignalfdSiginfo C.struct_signalfd_siginfo
const PERF_IOC_FLAG_GROUP = C.PERF_IOC_FLAG_GROUP
@@ -1640,7 +1648,9 @@ const (
NCSI_CHANNEL_ATTR_VLAN_ID = C.NCSI_CHANNEL_ATTR_VLAN_ID
)
-// SO_TIMESTAMPING flags
+// Timestamping
+
+type ScmTimestamping C.struct_scm_timestamping
const (
SOF_TIMESTAMPING_TX_HARDWARE = C.SOF_TIMESTAMPING_TX_HARDWARE
@@ -1661,4 +1671,12 @@ const (
SOF_TIMESTAMPING_LAST = C.SOF_TIMESTAMPING_LAST
SOF_TIMESTAMPING_MASK = C.SOF_TIMESTAMPING_MASK
+
+ SCM_TSTAMP_SND = C.SCM_TSTAMP_SND
+ SCM_TSTAMP_SCHED = C.SCM_TSTAMP_SCHED
+ SCM_TSTAMP_ACK = C.SCM_TSTAMP_ACK
)
+
+// Socket error queue
+
+type SockExtendedErr C.struct_sock_extended_err
diff --git a/vendor/golang.org/x/sys/unix/mksyscall.go b/vendor/golang.org/x/sys/unix/mksyscall.go
index 890652ca83..e06e4253ea 100644
--- a/vendor/golang.org/x/sys/unix/mksyscall.go
+++ b/vendor/golang.org/x/sys/unix/mksyscall.go
@@ -88,6 +88,10 @@ func parseParam(p string) Param {
func main() {
// Get the OS and architecture (using GOARCH_TARGET if it exists)
goos := os.Getenv("GOOS")
+ if goos == "" {
+ fmt.Fprintln(os.Stderr, "GOOS not defined in environment")
+ os.Exit(1)
+ }
goarch := os.Getenv("GOARCH_TARGET")
if goarch == "" {
goarch = os.Getenv("GOARCH")
diff --git a/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go
new file mode 100644
index 0000000000..f2c58fb7cc
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go
@@ -0,0 +1,404 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build ignore
+
+/*
+This program reads a file containing function prototypes
+(like syscall_aix.go) and generates system call bodies.
+The prototypes are marked by lines beginning with "//sys"
+and read like func declarations if //sys is replaced by func, but:
+ * The parameter lists must give a name for each argument.
+ This includes return parameters.
+ * The parameter lists must give a type for each argument:
+ the (x, y, z int) shorthand is not allowed.
+ * If the return parameter is an error number, it must be named err.
+ * If go func name needs to be different than its libc name,
+ * or the function is not in libc, name could be specified
+ * at the end, after "=" sign, like
+ //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt
+*/
+package main
+
+import (
+ "bufio"
+ "flag"
+ "fmt"
+ "os"
+ "regexp"
+ "strings"
+)
+
+var (
+ b32 = flag.Bool("b32", false, "32bit big-endian")
+ l32 = flag.Bool("l32", false, "32bit little-endian")
+ aix = flag.Bool("aix", false, "aix")
+ tags = flag.String("tags", "", "build tags")
+)
+
+// cmdLine returns this programs's commandline arguments
+func cmdLine() string {
+ return "go run mksyscall_aix_ppc.go " + strings.Join(os.Args[1:], " ")
+}
+
+// buildTags returns build tags
+func buildTags() string {
+ return *tags
+}
+
+// Param is function parameter
+type Param struct {
+ Name string
+ Type string
+}
+
+// usage prints the program usage
+func usage() {
+ fmt.Fprintf(os.Stderr, "usage: go run mksyscall_aix_ppc.go [-b32 | -l32] [-tags x,y] [file ...]\n")
+ os.Exit(1)
+}
+
+// parseParamList parses parameter list and returns a slice of parameters
+func parseParamList(list string) []string {
+ list = strings.TrimSpace(list)
+ if list == "" {
+ return []string{}
+ }
+ return regexp.MustCompile(`\s*,\s*`).Split(list, -1)
+}
+
+// parseParam splits a parameter into name and type
+func parseParam(p string) Param {
+ ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p)
+ if ps == nil {
+ fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p)
+ os.Exit(1)
+ }
+ return Param{ps[1], ps[2]}
+}
+
+func main() {
+ flag.Usage = usage
+ flag.Parse()
+ if len(flag.Args()) <= 0 {
+ fmt.Fprintf(os.Stderr, "no files to parse provided\n")
+ usage()
+ }
+
+ endianness := ""
+ if *b32 {
+ endianness = "big-endian"
+ } else if *l32 {
+ endianness = "little-endian"
+ }
+
+ pack := ""
+ text := ""
+ cExtern := "/*\n#include \n#include \n"
+ for _, path := range flag.Args() {
+ file, err := os.Open(path)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, err.Error())
+ os.Exit(1)
+ }
+ s := bufio.NewScanner(file)
+ for s.Scan() {
+ t := s.Text()
+ t = strings.TrimSpace(t)
+ t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `)
+ if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" {
+ pack = p[1]
+ }
+ nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t)
+ if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil {
+ continue
+ }
+
+ // Line must be of the form
+ // func Open(path string, mode int, perm int) (fd int, err error)
+ // Split into name, in params, out params.
+ f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t)
+ if f == nil {
+ fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t)
+ os.Exit(1)
+ }
+ funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6]
+
+ // Split argument lists on comma.
+ in := parseParamList(inps)
+ out := parseParamList(outps)
+
+ inps = strings.Join(in, ", ")
+ outps = strings.Join(out, ", ")
+
+ // Try in vain to keep people from editing this file.
+ // The theory is that they jump into the middle of the file
+ // without reading the header.
+ text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
+
+ // Check if value return, err return available
+ errvar := ""
+ retvar := ""
+ rettype := ""
+ for _, param := range out {
+ p := parseParam(param)
+ if p.Type == "error" {
+ errvar = p.Name
+ } else {
+ retvar = p.Name
+ rettype = p.Type
+ }
+ }
+
+ // System call name.
+ if sysname == "" {
+ sysname = funct
+ }
+ sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`)
+ sysname = strings.ToLower(sysname) // All libc functions are lowercase.
+
+ cRettype := ""
+ if rettype == "unsafe.Pointer" {
+ cRettype = "uintptr_t"
+ } else if rettype == "uintptr" {
+ cRettype = "uintptr_t"
+ } else if regexp.MustCompile(`^_`).FindStringSubmatch(rettype) != nil {
+ cRettype = "uintptr_t"
+ } else if rettype == "int" {
+ cRettype = "int"
+ } else if rettype == "int32" {
+ cRettype = "int"
+ } else if rettype == "int64" {
+ cRettype = "long long"
+ } else if rettype == "uint32" {
+ cRettype = "unsigned int"
+ } else if rettype == "uint64" {
+ cRettype = "unsigned long long"
+ } else {
+ cRettype = "int"
+ }
+ if sysname == "exit" {
+ cRettype = "void"
+ }
+
+ // Change p.Types to c
+ var cIn []string
+ for _, param := range in {
+ p := parseParam(param)
+ if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
+ cIn = append(cIn, "uintptr_t")
+ } else if p.Type == "string" {
+ cIn = append(cIn, "uintptr_t")
+ } else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil {
+ cIn = append(cIn, "uintptr_t", "size_t")
+ } else if p.Type == "unsafe.Pointer" {
+ cIn = append(cIn, "uintptr_t")
+ } else if p.Type == "uintptr" {
+ cIn = append(cIn, "uintptr_t")
+ } else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil {
+ cIn = append(cIn, "uintptr_t")
+ } else if p.Type == "int" {
+ cIn = append(cIn, "int")
+ } else if p.Type == "int32" {
+ cIn = append(cIn, "int")
+ } else if p.Type == "int64" {
+ cIn = append(cIn, "long long")
+ } else if p.Type == "uint32" {
+ cIn = append(cIn, "unsigned int")
+ } else if p.Type == "uint64" {
+ cIn = append(cIn, "unsigned long long")
+ } else {
+ cIn = append(cIn, "int")
+ }
+ }
+
+ if funct != "fcntl" && funct != "FcntlInt" && funct != "readlen" && funct != "writelen" {
+ // Imports of system calls from libc
+ cExtern += fmt.Sprintf("%s %s", cRettype, sysname)
+ cIn := strings.Join(cIn, ", ")
+ cExtern += fmt.Sprintf("(%s);\n", cIn)
+ }
+
+ // So file name.
+ if *aix {
+ if modname == "" {
+ modname = "libc.a/shr_64.o"
+ } else {
+ fmt.Fprintf(os.Stderr, "%s: only syscall using libc are available\n", funct)
+ os.Exit(1)
+ }
+ }
+
+ strconvfunc := "C.CString"
+
+ // Go function header.
+ if outps != "" {
+ outps = fmt.Sprintf(" (%s)", outps)
+ }
+ if text != "" {
+ text += "\n"
+ }
+
+ text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outps)
+
+ // Prepare arguments to Syscall.
+ var args []string
+ n := 0
+ argN := 0
+ for _, param := range in {
+ p := parseParam(param)
+ if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
+ args = append(args, "C.uintptr_t(uintptr(unsafe.Pointer("+p.Name+")))")
+ } else if p.Type == "string" && errvar != "" {
+ text += fmt.Sprintf("\t_p%d := uintptr(unsafe.Pointer(%s(%s)))\n", n, strconvfunc, p.Name)
+ args = append(args, fmt.Sprintf("C.uintptr_t(_p%d)", n))
+ n++
+ } else if p.Type == "string" {
+ fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n")
+ text += fmt.Sprintf("\t_p%d := uintptr(unsafe.Pointer(%s(%s)))\n", n, strconvfunc, p.Name)
+ args = append(args, fmt.Sprintf("C.uintptr_t(_p%d)", n))
+ n++
+ } else if m := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); m != nil {
+ // Convert slice into pointer, length.
+ // Have to be careful not to take address of &a[0] if len == 0:
+ // pass nil in that case.
+ text += fmt.Sprintf("\tvar _p%d *%s\n", n, m[1])
+ text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name)
+ args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(unsafe.Pointer(_p%d)))", n))
+ n++
+ text += fmt.Sprintf("\tvar _p%d int\n", n)
+ text += fmt.Sprintf("\t_p%d = len(%s)\n", n, p.Name)
+ args = append(args, fmt.Sprintf("C.size_t(_p%d)", n))
+ n++
+ } else if p.Type == "int64" && endianness != "" {
+ if endianness == "big-endian" {
+ args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
+ } else {
+ args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
+ }
+ n++
+ } else if p.Type == "bool" {
+ text += fmt.Sprintf("\tvar _p%d uint32\n", n)
+ text += fmt.Sprintf("\tif %s {\n\t\t_p%d = 1\n\t} else {\n\t\t_p%d = 0\n\t}\n", p.Name, n, n)
+ args = append(args, fmt.Sprintf("_p%d", n))
+ } else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil {
+ args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(%s))", p.Name))
+ } else if p.Type == "unsafe.Pointer" {
+ args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(%s))", p.Name))
+ } else if p.Type == "int" {
+ if (argN == 2) && ((funct == "readlen") || (funct == "writelen")) {
+ args = append(args, fmt.Sprintf("C.size_t(%s)", p.Name))
+ } else if argN == 0 && funct == "fcntl" {
+ args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
+ } else if (argN == 2) && ((funct == "fcntl") || (funct == "FcntlInt")) {
+ args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
+ } else {
+ args = append(args, fmt.Sprintf("C.int(%s)", p.Name))
+ }
+ } else if p.Type == "int32" {
+ args = append(args, fmt.Sprintf("C.int(%s)", p.Name))
+ } else if p.Type == "int64" {
+ args = append(args, fmt.Sprintf("C.longlong(%s)", p.Name))
+ } else if p.Type == "uint32" {
+ args = append(args, fmt.Sprintf("C.uint(%s)", p.Name))
+ } else if p.Type == "uint64" {
+ args = append(args, fmt.Sprintf("C.ulonglong(%s)", p.Name))
+ } else if p.Type == "uintptr" {
+ args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
+ } else {
+ args = append(args, fmt.Sprintf("C.int(%s)", p.Name))
+ }
+ argN++
+ }
+
+ // Actual call.
+ arglist := strings.Join(args, ", ")
+ call := ""
+ if sysname == "exit" {
+ if errvar != "" {
+ call += "er :="
+ } else {
+ call += ""
+ }
+ } else if errvar != "" {
+ call += "r0,er :="
+ } else if retvar != "" {
+ call += "r0,_ :="
+ } else {
+ call += ""
+ }
+ call += fmt.Sprintf("C.%s(%s)", sysname, arglist)
+
+ // Assign return values.
+ body := ""
+ for i := 0; i < len(out); i++ {
+ p := parseParam(out[i])
+ reg := ""
+ if p.Name == "err" {
+ reg = "e1"
+ } else {
+ reg = "r0"
+ }
+ if reg != "e1" {
+ body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg)
+ }
+ }
+
+ // verify return
+ if sysname != "exit" && errvar != "" {
+ if regexp.MustCompile(`^uintptr`).FindStringSubmatch(cRettype) != nil {
+ body += "\tif (uintptr(r0) ==^uintptr(0) && er != nil) {\n"
+ body += fmt.Sprintf("\t\t%s = er\n", errvar)
+ body += "\t}\n"
+ } else {
+ body += "\tif (r0 ==-1 && er != nil) {\n"
+ body += fmt.Sprintf("\t\t%s = er\n", errvar)
+ body += "\t}\n"
+ }
+ } else if errvar != "" {
+ body += "\tif (er != nil) {\n"
+ body += fmt.Sprintf("\t\t%s = er\n", errvar)
+ body += "\t}\n"
+ }
+
+ text += fmt.Sprintf("\t%s\n", call)
+ text += body
+
+ text += "\treturn\n"
+ text += "}\n"
+ }
+ if err := s.Err(); err != nil {
+ fmt.Fprintf(os.Stderr, err.Error())
+ os.Exit(1)
+ }
+ file.Close()
+ }
+ imp := ""
+ if pack != "unix" {
+ imp = "import \"golang.org/x/sys/unix\"\n"
+
+ }
+ fmt.Printf(srcTemplate, cmdLine(), buildTags(), pack, cExtern, imp, text)
+}
+
+const srcTemplate = `// %s
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build %s
+
+package %s
+
+
+%s
+*/
+import "C"
+import (
+ "unsafe"
+)
+
+
+%s
+
+%s
+`
diff --git a/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go
new file mode 100644
index 0000000000..45b4429088
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go
@@ -0,0 +1,602 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build ignore
+
+/*
+This program reads a file containing function prototypes
+(like syscall_aix.go) and generates system call bodies.
+The prototypes are marked by lines beginning with "//sys"
+and read like func declarations if //sys is replaced by func, but:
+ * The parameter lists must give a name for each argument.
+ This includes return parameters.
+ * The parameter lists must give a type for each argument:
+ the (x, y, z int) shorthand is not allowed.
+ * If the return parameter is an error number, it must be named err.
+ * If go func name needs to be different than its libc name,
+ * or the function is not in libc, name could be specified
+ * at the end, after "=" sign, like
+ //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt
+
+
+This program will generate three files and handle both gc and gccgo implementation:
+ - zsyscall_aix_ppc64.go: the common part of each implementation (error handler, pointer creation)
+ - zsyscall_aix_ppc64_gc.go: gc part with //go_cgo_import_dynamic and a call to syscall6
+ - zsyscall_aix_ppc64_gccgo.go: gccgo part with C function and conversion to C type.
+
+ The generated code looks like this
+
+zsyscall_aix_ppc64.go
+func asyscall(...) (n int, err error) {
+ // Pointer Creation
+ r1, e1 := callasyscall(...)
+ // Type Conversion
+ // Error Handler
+ return
+}
+
+zsyscall_aix_ppc64_gc.go
+//go:cgo_import_dynamic libc_asyscall asyscall "libc.a/shr_64.o"
+//go:linkname libc_asyscall libc_asyscall
+var asyscall syscallFunc
+
+func callasyscall(...) (r1 uintptr, e1 Errno) {
+ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_asyscall)), "nb_args", ... )
+ return
+}
+
+zsyscall_aix_ppc64_ggcgo.go
+
+// int asyscall(...)
+
+import "C"
+
+func callasyscall(...) (r1 uintptr, e1 Errno) {
+ r1 = uintptr(C.asyscall(...))
+ e1 = syscall.GetErrno()
+ return
+}
+*/
+
+package main
+
+import (
+ "bufio"
+ "flag"
+ "fmt"
+ "io/ioutil"
+ "os"
+ "regexp"
+ "strings"
+)
+
+var (
+ b32 = flag.Bool("b32", false, "32bit big-endian")
+ l32 = flag.Bool("l32", false, "32bit little-endian")
+ aix = flag.Bool("aix", false, "aix")
+ tags = flag.String("tags", "", "build tags")
+)
+
+// cmdLine returns this programs's commandline arguments
+func cmdLine() string {
+ return "go run mksyscall_aix_ppc64.go " + strings.Join(os.Args[1:], " ")
+}
+
+// buildTags returns build tags
+func buildTags() string {
+ return *tags
+}
+
+// Param is function parameter
+type Param struct {
+ Name string
+ Type string
+}
+
+// usage prints the program usage
+func usage() {
+ fmt.Fprintf(os.Stderr, "usage: go run mksyscall_aix_ppc64.go [-b32 | -l32] [-tags x,y] [file ...]\n")
+ os.Exit(1)
+}
+
+// parseParamList parses parameter list and returns a slice of parameters
+func parseParamList(list string) []string {
+ list = strings.TrimSpace(list)
+ if list == "" {
+ return []string{}
+ }
+ return regexp.MustCompile(`\s*,\s*`).Split(list, -1)
+}
+
+// parseParam splits a parameter into name and type
+func parseParam(p string) Param {
+ ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p)
+ if ps == nil {
+ fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p)
+ os.Exit(1)
+ }
+ return Param{ps[1], ps[2]}
+}
+
+func main() {
+ flag.Usage = usage
+ flag.Parse()
+ if len(flag.Args()) <= 0 {
+ fmt.Fprintf(os.Stderr, "no files to parse provided\n")
+ usage()
+ }
+
+ endianness := ""
+ if *b32 {
+ endianness = "big-endian"
+ } else if *l32 {
+ endianness = "little-endian"
+ }
+
+ pack := ""
+ // GCCGO
+ textgccgo := ""
+ cExtern := "/*\n#include \n"
+ // GC
+ textgc := ""
+ dynimports := ""
+ linknames := ""
+ var vars []string
+ // COMMON
+ textcommon := ""
+ for _, path := range flag.Args() {
+ file, err := os.Open(path)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, err.Error())
+ os.Exit(1)
+ }
+ s := bufio.NewScanner(file)
+ for s.Scan() {
+ t := s.Text()
+ t = strings.TrimSpace(t)
+ t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `)
+ if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" {
+ pack = p[1]
+ }
+ nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t)
+ if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil {
+ continue
+ }
+
+ // Line must be of the form
+ // func Open(path string, mode int, perm int) (fd int, err error)
+ // Split into name, in params, out params.
+ f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t)
+ if f == nil {
+ fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t)
+ os.Exit(1)
+ }
+ funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6]
+
+ // Split argument lists on comma.
+ in := parseParamList(inps)
+ out := parseParamList(outps)
+
+ inps = strings.Join(in, ", ")
+ outps = strings.Join(out, ", ")
+
+ if sysname == "" {
+ sysname = funct
+ }
+
+ onlyCommon := false
+ if funct == "readlen" || funct == "writelen" || funct == "FcntlInt" || funct == "FcntlFlock" {
+ // This function call another syscall which is already implemented.
+ // Therefore, the gc and gccgo part must not be generated.
+ onlyCommon = true
+ }
+
+ // Try in vain to keep people from editing this file.
+ // The theory is that they jump into the middle of the file
+ // without reading the header.
+
+ textcommon += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
+ if !onlyCommon {
+ textgccgo += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
+ textgc += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
+ }
+
+ // Check if value return, err return available
+ errvar := ""
+ rettype := ""
+ for _, param := range out {
+ p := parseParam(param)
+ if p.Type == "error" {
+ errvar = p.Name
+ } else {
+ rettype = p.Type
+ }
+ }
+
+ sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`)
+ sysname = strings.ToLower(sysname) // All libc functions are lowercase.
+
+ // GCCGO Prototype return type
+ cRettype := ""
+ if rettype == "unsafe.Pointer" {
+ cRettype = "uintptr_t"
+ } else if rettype == "uintptr" {
+ cRettype = "uintptr_t"
+ } else if regexp.MustCompile(`^_`).FindStringSubmatch(rettype) != nil {
+ cRettype = "uintptr_t"
+ } else if rettype == "int" {
+ cRettype = "int"
+ } else if rettype == "int32" {
+ cRettype = "int"
+ } else if rettype == "int64" {
+ cRettype = "long long"
+ } else if rettype == "uint32" {
+ cRettype = "unsigned int"
+ } else if rettype == "uint64" {
+ cRettype = "unsigned long long"
+ } else {
+ cRettype = "int"
+ }
+ if sysname == "exit" {
+ cRettype = "void"
+ }
+
+ // GCCGO Prototype arguments type
+ var cIn []string
+ for i, param := range in {
+ p := parseParam(param)
+ if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
+ cIn = append(cIn, "uintptr_t")
+ } else if p.Type == "string" {
+ cIn = append(cIn, "uintptr_t")
+ } else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil {
+ cIn = append(cIn, "uintptr_t", "size_t")
+ } else if p.Type == "unsafe.Pointer" {
+ cIn = append(cIn, "uintptr_t")
+ } else if p.Type == "uintptr" {
+ cIn = append(cIn, "uintptr_t")
+ } else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil {
+ cIn = append(cIn, "uintptr_t")
+ } else if p.Type == "int" {
+ if (i == 0 || i == 2) && funct == "fcntl" {
+ // These fcntl arguments needs to be uintptr to be able to call FcntlInt and FcntlFlock
+ cIn = append(cIn, "uintptr_t")
+ } else {
+ cIn = append(cIn, "int")
+ }
+
+ } else if p.Type == "int32" {
+ cIn = append(cIn, "int")
+ } else if p.Type == "int64" {
+ cIn = append(cIn, "long long")
+ } else if p.Type == "uint32" {
+ cIn = append(cIn, "unsigned int")
+ } else if p.Type == "uint64" {
+ cIn = append(cIn, "unsigned long long")
+ } else {
+ cIn = append(cIn, "int")
+ }
+ }
+
+ if !onlyCommon {
+ // GCCGO Prototype Generation
+ // Imports of system calls from libc
+ cExtern += fmt.Sprintf("%s %s", cRettype, sysname)
+ cIn := strings.Join(cIn, ", ")
+ cExtern += fmt.Sprintf("(%s);\n", cIn)
+ }
+ // GC Library name
+ if modname == "" {
+ modname = "libc.a/shr_64.o"
+ } else {
+ fmt.Fprintf(os.Stderr, "%s: only syscall using libc are available\n", funct)
+ os.Exit(1)
+ }
+ sysvarname := fmt.Sprintf("libc_%s", sysname)
+
+ if !onlyCommon {
+ // GC Runtime import of function to allow cross-platform builds.
+ dynimports += fmt.Sprintf("//go:cgo_import_dynamic %s %s \"%s\"\n", sysvarname, sysname, modname)
+ // GC Link symbol to proc address variable.
+ linknames += fmt.Sprintf("//go:linkname %s %s\n", sysvarname, sysvarname)
+ // GC Library proc address variable.
+ vars = append(vars, sysvarname)
+ }
+
+ strconvfunc := "BytePtrFromString"
+ strconvtype := "*byte"
+
+ // Go function header.
+ if outps != "" {
+ outps = fmt.Sprintf(" (%s)", outps)
+ }
+ if textcommon != "" {
+ textcommon += "\n"
+ }
+
+ textcommon += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outps)
+
+ // Prepare arguments tocall.
+ var argscommon []string // Arguments in the common part
+ var argscall []string // Arguments for call prototype
+ var argsgc []string // Arguments for gc call (with syscall6)
+ var argsgccgo []string // Arguments for gccgo call (with C.name_of_syscall)
+ n := 0
+ argN := 0
+ for _, param := range in {
+ p := parseParam(param)
+ if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
+ argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(%s))", p.Name))
+ argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name))
+ argsgc = append(argsgc, p.Name)
+ argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
+ } else if p.Type == "string" && errvar != "" {
+ textcommon += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype)
+ textcommon += fmt.Sprintf("\t_p%d, %s = %s(%s)\n", n, errvar, strconvfunc, p.Name)
+ textcommon += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar)
+
+ argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
+ argscall = append(argscall, fmt.Sprintf("_p%d uintptr ", n))
+ argsgc = append(argsgc, fmt.Sprintf("_p%d", n))
+ argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(_p%d)", n))
+ n++
+ } else if p.Type == "string" {
+ fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n")
+ textcommon += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype)
+ textcommon += fmt.Sprintf("\t_p%d, %s = %s(%s)\n", n, errvar, strconvfunc, p.Name)
+ textcommon += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar)
+
+ argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
+ argscall = append(argscall, fmt.Sprintf("_p%d uintptr", n))
+ argsgc = append(argsgc, fmt.Sprintf("_p%d", n))
+ argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(_p%d)", n))
+ n++
+ } else if m := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); m != nil {
+ // Convert slice into pointer, length.
+ // Have to be careful not to take address of &a[0] if len == 0:
+ // pass nil in that case.
+ textcommon += fmt.Sprintf("\tvar _p%d *%s\n", n, m[1])
+ textcommon += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name)
+ argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n), fmt.Sprintf("len(%s)", p.Name))
+ argscall = append(argscall, fmt.Sprintf("_p%d uintptr", n), fmt.Sprintf("_lenp%d int", n))
+ argsgc = append(argsgc, fmt.Sprintf("_p%d", n), fmt.Sprintf("uintptr(_lenp%d)", n))
+ argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(_p%d)", n), fmt.Sprintf("C.size_t(_lenp%d)", n))
+ n++
+ } else if p.Type == "int64" && endianness != "" {
+ fmt.Fprintf(os.Stderr, path+":"+funct+" uses int64 with 32 bits mode. Case not yet implemented\n")
+ } else if p.Type == "bool" {
+ fmt.Fprintf(os.Stderr, path+":"+funct+" uses bool. Case not yet implemented\n")
+ } else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil || p.Type == "unsafe.Pointer" {
+ argscommon = append(argscommon, fmt.Sprintf("uintptr(%s)", p.Name))
+ argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name))
+ argsgc = append(argsgc, p.Name)
+ argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
+ } else if p.Type == "int" {
+ if (argN == 0 || argN == 2) && ((funct == "fcntl") || (funct == "FcntlInt") || (funct == "FcntlFlock")) {
+ // These fcntl arguments need to be uintptr to be able to call FcntlInt and FcntlFlock
+ argscommon = append(argscommon, fmt.Sprintf("uintptr(%s)", p.Name))
+ argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name))
+ argsgc = append(argsgc, p.Name)
+ argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
+
+ } else {
+ argscommon = append(argscommon, p.Name)
+ argscall = append(argscall, fmt.Sprintf("%s int", p.Name))
+ argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
+ argsgccgo = append(argsgccgo, fmt.Sprintf("C.int(%s)", p.Name))
+ }
+ } else if p.Type == "int32" {
+ argscommon = append(argscommon, p.Name)
+ argscall = append(argscall, fmt.Sprintf("%s int32", p.Name))
+ argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
+ argsgccgo = append(argsgccgo, fmt.Sprintf("C.int(%s)", p.Name))
+ } else if p.Type == "int64" {
+ argscommon = append(argscommon, p.Name)
+ argscall = append(argscall, fmt.Sprintf("%s int64", p.Name))
+ argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
+ argsgccgo = append(argsgccgo, fmt.Sprintf("C.longlong(%s)", p.Name))
+ } else if p.Type == "uint32" {
+ argscommon = append(argscommon, p.Name)
+ argscall = append(argscall, fmt.Sprintf("%s uint32", p.Name))
+ argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
+ argsgccgo = append(argsgccgo, fmt.Sprintf("C.uint(%s)", p.Name))
+ } else if p.Type == "uint64" {
+ argscommon = append(argscommon, p.Name)
+ argscall = append(argscall, fmt.Sprintf("%s uint64", p.Name))
+ argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
+ argsgccgo = append(argsgccgo, fmt.Sprintf("C.ulonglong(%s)", p.Name))
+ } else if p.Type == "uintptr" {
+ argscommon = append(argscommon, p.Name)
+ argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name))
+ argsgc = append(argsgc, p.Name)
+ argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
+ } else {
+ argscommon = append(argscommon, fmt.Sprintf("int(%s)", p.Name))
+ argscall = append(argscall, fmt.Sprintf("%s int", p.Name))
+ argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
+ argsgccgo = append(argsgccgo, fmt.Sprintf("C.int(%s)", p.Name))
+ }
+ argN++
+ }
+ nargs := len(argsgc)
+
+ // COMMON function generation
+ argscommonlist := strings.Join(argscommon, ", ")
+ callcommon := fmt.Sprintf("call%s(%s)", sysname, argscommonlist)
+ ret := []string{"_", "_"}
+ body := ""
+ doErrno := false
+ for i := 0; i < len(out); i++ {
+ p := parseParam(out[i])
+ reg := ""
+ if p.Name == "err" {
+ reg = "e1"
+ ret[1] = reg
+ doErrno = true
+ } else {
+ reg = "r0"
+ ret[0] = reg
+ }
+ if p.Type == "bool" {
+ reg = fmt.Sprintf("%s != 0", reg)
+ }
+ if reg != "e1" {
+ body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg)
+ }
+ }
+ if ret[0] == "_" && ret[1] == "_" {
+ textcommon += fmt.Sprintf("\t%s\n", callcommon)
+ } else {
+ textcommon += fmt.Sprintf("\t%s, %s := %s\n", ret[0], ret[1], callcommon)
+ }
+ textcommon += body
+
+ if doErrno {
+ textcommon += "\tif e1 != 0 {\n"
+ textcommon += "\t\terr = errnoErr(e1)\n"
+ textcommon += "\t}\n"
+ }
+ textcommon += "\treturn\n"
+ textcommon += "}\n"
+
+ if onlyCommon {
+ continue
+ }
+
+ // CALL Prototype
+ callProto := fmt.Sprintf("func call%s(%s) (r1 uintptr, e1 Errno) {\n", sysname, strings.Join(argscall, ", "))
+
+ // GC function generation
+ asm := "syscall6"
+ if nonblock != nil {
+ asm = "rawSyscall6"
+ }
+
+ if len(argsgc) <= 6 {
+ for len(argsgc) < 6 {
+ argsgc = append(argsgc, "0")
+ }
+ } else {
+ fmt.Fprintf(os.Stderr, "%s: too many arguments to system call", funct)
+ os.Exit(1)
+ }
+ argsgclist := strings.Join(argsgc, ", ")
+ callgc := fmt.Sprintf("%s(uintptr(unsafe.Pointer(&%s)), %d, %s)", asm, sysvarname, nargs, argsgclist)
+
+ textgc += callProto
+ textgc += fmt.Sprintf("\tr1, _, e1 = %s\n", callgc)
+ textgc += "\treturn\n}\n"
+
+ // GCCGO function generation
+ argsgccgolist := strings.Join(argsgccgo, ", ")
+ callgccgo := fmt.Sprintf("C.%s(%s)", sysname, argsgccgolist)
+ textgccgo += callProto
+ textgccgo += fmt.Sprintf("\tr1 = uintptr(%s)\n", callgccgo)
+ textgccgo += "\te1 = syscall.GetErrno()\n"
+ textgccgo += "\treturn\n}\n"
+ }
+ if err := s.Err(); err != nil {
+ fmt.Fprintf(os.Stderr, err.Error())
+ os.Exit(1)
+ }
+ file.Close()
+ }
+ imp := ""
+ if pack != "unix" {
+ imp = "import \"golang.org/x/sys/unix\"\n"
+
+ }
+
+ // Print zsyscall_aix_ppc64.go
+ err := ioutil.WriteFile("zsyscall_aix_ppc64.go",
+ []byte(fmt.Sprintf(srcTemplate1, cmdLine(), buildTags(), pack, imp, textcommon)),
+ 0644)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, err.Error())
+ os.Exit(1)
+ }
+
+ // Print zsyscall_aix_ppc64_gc.go
+ vardecls := "\t" + strings.Join(vars, ",\n\t")
+ vardecls += " syscallFunc"
+ err = ioutil.WriteFile("zsyscall_aix_ppc64_gc.go",
+ []byte(fmt.Sprintf(srcTemplate2, cmdLine(), buildTags(), pack, imp, dynimports, linknames, vardecls, textgc)),
+ 0644)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, err.Error())
+ os.Exit(1)
+ }
+
+ // Print zsyscall_aix_ppc64_gccgo.go
+ err = ioutil.WriteFile("zsyscall_aix_ppc64_gccgo.go",
+ []byte(fmt.Sprintf(srcTemplate3, cmdLine(), buildTags(), pack, cExtern, imp, textgccgo)),
+ 0644)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, err.Error())
+ os.Exit(1)
+ }
+}
+
+const srcTemplate1 = `// %s
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build %s
+
+package %s
+
+import (
+ "unsafe"
+)
+
+
+%s
+
+%s
+`
+const srcTemplate2 = `// %s
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build %s
+// +build !gccgo
+
+package %s
+
+import (
+ "unsafe"
+)
+%s
+%s
+%s
+type syscallFunc uintptr
+
+var (
+%s
+)
+
+// Implemented in runtime/syscall_aix.go.
+func rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
+func syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
+
+%s
+`
+const srcTemplate3 = `// %s
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build %s
+// +build gccgo
+
+package %s
+
+%s
+*/
+import "C"
+import (
+ "syscall"
+)
+
+
+%s
+
+%s
+`
diff --git a/vendor/golang.org/x/sys/unix/mksyscall_solaris.go b/vendor/golang.org/x/sys/unix/mksyscall_solaris.go
new file mode 100644
index 0000000000..3d864738b6
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/mksyscall_solaris.go
@@ -0,0 +1,335 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build ignore
+
+/*
+ This program reads a file containing function prototypes
+ (like syscall_solaris.go) and generates system call bodies.
+ The prototypes are marked by lines beginning with "//sys"
+ and read like func declarations if //sys is replaced by func, but:
+ * The parameter lists must give a name for each argument.
+ This includes return parameters.
+ * The parameter lists must give a type for each argument:
+ the (x, y, z int) shorthand is not allowed.
+ * If the return parameter is an error number, it must be named err.
+ * If go func name needs to be different than its libc name,
+ * or the function is not in libc, name could be specified
+ * at the end, after "=" sign, like
+ //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt
+*/
+
+package main
+
+import (
+ "bufio"
+ "flag"
+ "fmt"
+ "os"
+ "regexp"
+ "strings"
+)
+
+var (
+ b32 = flag.Bool("b32", false, "32bit big-endian")
+ l32 = flag.Bool("l32", false, "32bit little-endian")
+ tags = flag.String("tags", "", "build tags")
+)
+
+// cmdLine returns this programs's commandline arguments
+func cmdLine() string {
+ return "go run mksyscall_solaris.go " + strings.Join(os.Args[1:], " ")
+}
+
+// buildTags returns build tags
+func buildTags() string {
+ return *tags
+}
+
+// Param is function parameter
+type Param struct {
+ Name string
+ Type string
+}
+
+// usage prints the program usage
+func usage() {
+ fmt.Fprintf(os.Stderr, "usage: go run mksyscall_solaris.go [-b32 | -l32] [-tags x,y] [file ...]\n")
+ os.Exit(1)
+}
+
+// parseParamList parses parameter list and returns a slice of parameters
+func parseParamList(list string) []string {
+ list = strings.TrimSpace(list)
+ if list == "" {
+ return []string{}
+ }
+ return regexp.MustCompile(`\s*,\s*`).Split(list, -1)
+}
+
+// parseParam splits a parameter into name and type
+func parseParam(p string) Param {
+ ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p)
+ if ps == nil {
+ fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p)
+ os.Exit(1)
+ }
+ return Param{ps[1], ps[2]}
+}
+
+func main() {
+ flag.Usage = usage
+ flag.Parse()
+ if len(flag.Args()) <= 0 {
+ fmt.Fprintf(os.Stderr, "no files to parse provided\n")
+ usage()
+ }
+
+ endianness := ""
+ if *b32 {
+ endianness = "big-endian"
+ } else if *l32 {
+ endianness = "little-endian"
+ }
+
+ pack := ""
+ text := ""
+ dynimports := ""
+ linknames := ""
+ var vars []string
+ for _, path := range flag.Args() {
+ file, err := os.Open(path)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, err.Error())
+ os.Exit(1)
+ }
+ s := bufio.NewScanner(file)
+ for s.Scan() {
+ t := s.Text()
+ t = strings.TrimSpace(t)
+ t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `)
+ if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" {
+ pack = p[1]
+ }
+ nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t)
+ if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil {
+ continue
+ }
+
+ // Line must be of the form
+ // func Open(path string, mode int, perm int) (fd int, err error)
+ // Split into name, in params, out params.
+ f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t)
+ if f == nil {
+ fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t)
+ os.Exit(1)
+ }
+ funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6]
+
+ // Split argument lists on comma.
+ in := parseParamList(inps)
+ out := parseParamList(outps)
+
+ inps = strings.Join(in, ", ")
+ outps = strings.Join(out, ", ")
+
+ // Try in vain to keep people from editing this file.
+ // The theory is that they jump into the middle of the file
+ // without reading the header.
+ text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
+
+ // So file name.
+ if modname == "" {
+ modname = "libc"
+ }
+
+ // System call name.
+ if sysname == "" {
+ sysname = funct
+ }
+
+ // System call pointer variable name.
+ sysvarname := fmt.Sprintf("proc%s", sysname)
+
+ strconvfunc := "BytePtrFromString"
+ strconvtype := "*byte"
+
+ sysname = strings.ToLower(sysname) // All libc functions are lowercase.
+
+ // Runtime import of function to allow cross-platform builds.
+ dynimports += fmt.Sprintf("//go:cgo_import_dynamic libc_%s %s \"%s.so\"\n", sysname, sysname, modname)
+ // Link symbol to proc address variable.
+ linknames += fmt.Sprintf("//go:linkname %s libc_%s\n", sysvarname, sysname)
+ // Library proc address variable.
+ vars = append(vars, sysvarname)
+
+ // Go function header.
+ outlist := strings.Join(out, ", ")
+ if outlist != "" {
+ outlist = fmt.Sprintf(" (%s)", outlist)
+ }
+ if text != "" {
+ text += "\n"
+ }
+ text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outlist)
+
+ // Check if err return available
+ errvar := ""
+ for _, param := range out {
+ p := parseParam(param)
+ if p.Type == "error" {
+ errvar = p.Name
+ continue
+ }
+ }
+
+ // Prepare arguments to Syscall.
+ var args []string
+ n := 0
+ for _, param := range in {
+ p := parseParam(param)
+ if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
+ args = append(args, "uintptr(unsafe.Pointer("+p.Name+"))")
+ } else if p.Type == "string" && errvar != "" {
+ text += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype)
+ text += fmt.Sprintf("\t_p%d, %s = %s(%s)\n", n, errvar, strconvfunc, p.Name)
+ text += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar)
+ args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
+ n++
+ } else if p.Type == "string" {
+ fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n")
+ text += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype)
+ text += fmt.Sprintf("\t_p%d, _ = %s(%s)\n", n, strconvfunc, p.Name)
+ args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
+ n++
+ } else if s := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); s != nil {
+ // Convert slice into pointer, length.
+ // Have to be careful not to take address of &a[0] if len == 0:
+ // pass nil in that case.
+ text += fmt.Sprintf("\tvar _p%d *%s\n", n, s[1])
+ text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name)
+ args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n), fmt.Sprintf("uintptr(len(%s))", p.Name))
+ n++
+ } else if p.Type == "int64" && endianness != "" {
+ if endianness == "big-endian" {
+ args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
+ } else {
+ args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
+ }
+ } else if p.Type == "bool" {
+ text += fmt.Sprintf("\tvar _p%d uint32\n", n)
+ text += fmt.Sprintf("\tif %s {\n\t\t_p%d = 1\n\t} else {\n\t\t_p%d = 0\n\t}\n", p.Name, n, n)
+ args = append(args, fmt.Sprintf("uintptr(_p%d)", n))
+ n++
+ } else {
+ args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
+ }
+ }
+ nargs := len(args)
+
+ // Determine which form to use; pad args with zeros.
+ asm := "sysvicall6"
+ if nonblock != nil {
+ asm = "rawSysvicall6"
+ }
+ if len(args) <= 6 {
+ for len(args) < 6 {
+ args = append(args, "0")
+ }
+ } else {
+ fmt.Fprintf(os.Stderr, "%s: too many arguments to system call\n", path)
+ os.Exit(1)
+ }
+
+ // Actual call.
+ arglist := strings.Join(args, ", ")
+ call := fmt.Sprintf("%s(uintptr(unsafe.Pointer(&%s)), %d, %s)", asm, sysvarname, nargs, arglist)
+
+ // Assign return values.
+ body := ""
+ ret := []string{"_", "_", "_"}
+ doErrno := false
+ for i := 0; i < len(out); i++ {
+ p := parseParam(out[i])
+ reg := ""
+ if p.Name == "err" {
+ reg = "e1"
+ ret[2] = reg
+ doErrno = true
+ } else {
+ reg = fmt.Sprintf("r%d", i)
+ ret[i] = reg
+ }
+ if p.Type == "bool" {
+ reg = fmt.Sprintf("%d != 0", reg)
+ }
+ if p.Type == "int64" && endianness != "" {
+ // 64-bit number in r1:r0 or r0:r1.
+ if i+2 > len(out) {
+ fmt.Fprintf(os.Stderr, "%s: not enough registers for int64 return\n", path)
+ os.Exit(1)
+ }
+ if endianness == "big-endian" {
+ reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i, i+1)
+ } else {
+ reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i+1, i)
+ }
+ ret[i] = fmt.Sprintf("r%d", i)
+ ret[i+1] = fmt.Sprintf("r%d", i+1)
+ }
+ if reg != "e1" {
+ body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg)
+ }
+ }
+ if ret[0] == "_" && ret[1] == "_" && ret[2] == "_" {
+ text += fmt.Sprintf("\t%s\n", call)
+ } else {
+ text += fmt.Sprintf("\t%s, %s, %s := %s\n", ret[0], ret[1], ret[2], call)
+ }
+ text += body
+
+ if doErrno {
+ text += "\tif e1 != 0 {\n"
+ text += "\t\terr = e1\n"
+ text += "\t}\n"
+ }
+ text += "\treturn\n"
+ text += "}\n"
+ }
+ if err := s.Err(); err != nil {
+ fmt.Fprintf(os.Stderr, err.Error())
+ os.Exit(1)
+ }
+ file.Close()
+ }
+ imp := ""
+ if pack != "unix" {
+ imp = "import \"golang.org/x/sys/unix\"\n"
+
+ }
+ vardecls := "\t" + strings.Join(vars, ",\n\t")
+ vardecls += " syscallFunc"
+ fmt.Printf(srcTemplate, cmdLine(), buildTags(), pack, imp, dynimports, linknames, vardecls, text)
+}
+
+const srcTemplate = `// %s
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build %s
+
+package %s
+
+import (
+ "syscall"
+ "unsafe"
+)
+%s
+%s
+%s
+var (
+%s
+)
+
+%s
+`
diff --git a/vendor/golang.org/x/sys/unix/mksysnum.go b/vendor/golang.org/x/sys/unix/mksysnum.go
index 45b6e756ed..07f8960ff3 100644
--- a/vendor/golang.org/x/sys/unix/mksysnum.go
+++ b/vendor/golang.org/x/sys/unix/mksysnum.go
@@ -106,7 +106,7 @@ func main() {
file := strings.TrimSpace(os.Args[1])
var syscalls io.Reader
- if strings.HasPrefix(file, "http://") {
+ if strings.HasPrefix(file, "https://") || strings.HasPrefix(file, "http://") {
// Download syscalls.master file
syscalls = fetchFile(file)
} else {
diff --git a/vendor/golang.org/x/sys/unix/syscall_aix.go b/vendor/golang.org/x/sys/unix/syscall_aix.go
index 1351a228b8..a76826f443 100644
--- a/vendor/golang.org/x/sys/unix/syscall_aix.go
+++ b/vendor/golang.org/x/sys/unix/syscall_aix.go
@@ -227,7 +227,7 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
// Some versions of AIX have a bug in getsockname (see IV78655).
// We can't rely on sa.Len being set correctly.
- n := SizeofSockaddrUnix - 3 // substract leading Family, Len, terminating NUL.
+ n := SizeofSockaddrUnix - 3 // subtract leading Family, Len, terminating NUL.
for i := 0; i < n; i++ {
if pp.Path[i] == 0 {
n = i
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go
index 04042e44b4..a2e3688822 100644
--- a/vendor/golang.org/x/sys/unix/syscall_darwin.go
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go
@@ -416,6 +416,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
//sys Chmod(path string, mode uint32) (err error)
//sys Chown(path string, uid int, gid int) (err error)
//sys Chroot(path string) (err error)
+//sys ClockGettime(clockid int32, time *Timespec) (err error)
//sys Close(fd int) (err error)
//sys Dup(fd int) (nfd int, err error)
//sys Dup2(from int, to int) (err error)
diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
index 891c94d7e2..962eee3046 100644
--- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
+++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
@@ -304,6 +304,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
//sys read(fd int, p []byte) (n int, err error)
//sys Readlink(path string, buf []byte) (n int, err error)
//sys Rename(from string, to string) (err error)
+//sys Renameat(fromfd int, from string, tofd int, to string) (err error)
//sys Revoke(path string) (err error)
//sys Rmdir(path string) (err error)
//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go
index 7760402333..4bb86aa0fe 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux.go
@@ -14,6 +14,7 @@ package unix
import (
"encoding/binary"
"net"
+ "runtime"
"syscall"
"unsafe"
)
@@ -80,6 +81,12 @@ func ioctlSetTermios(fd int, req uint, value *Termios) error {
return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
}
+func IoctlSetRTCTime(fd int, value *RTCTime) error {
+ err := ioctl(fd, RTC_SET_TIME, uintptr(unsafe.Pointer(value)))
+ runtime.KeepAlive(value)
+ return err
+}
+
// IoctlGetInt performs an ioctl operation which gets an integer value
// from fd, using the specified request number.
func IoctlGetInt(fd int, req uint) (int, error) {
@@ -100,6 +107,12 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
return &value, err
}
+func IoctlGetRTCTime(fd int) (*RTCTime, error) {
+ var value RTCTime
+ err := ioctl(fd, RTC_RD_TIME, uintptr(unsafe.Pointer(&value)))
+ return &value, err
+}
+
//sys Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error)
func Link(oldpath string, newpath string) (err error) {
@@ -981,6 +994,20 @@ func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {
return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))
}
+// SetsockoptSockFprog attaches a classic BPF or an extended BPF program to a
+// socket to filter incoming packets. See 'man 7 socket' for usage information.
+func SetsockoptSockFprog(fd, level, opt int, fprog *SockFprog) error {
+ return setsockopt(fd, level, opt, unsafe.Pointer(fprog), unsafe.Sizeof(*fprog))
+}
+
+func SetsockoptCanRawFilter(fd, level, opt int, filter []CanFilter) error {
+ var p unsafe.Pointer
+ if len(filter) > 0 {
+ p = unsafe.Pointer(&filter[0])
+ }
+ return setsockopt(fd, level, opt, p, uintptr(len(filter)*SizeofCanFilter))
+}
+
// Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html)
// KeyctlInt calls keyctl commands in which each argument is an int.
@@ -1381,6 +1408,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
//sys Chroot(path string) (err error)
//sys ClockGetres(clockid int32, res *Timespec) (err error)
//sys ClockGettime(clockid int32, time *Timespec) (err error)
+//sys ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error)
//sys Close(fd int) (err error)
//sys CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)
//sys DeleteModule(name string, flags int) (err error)
@@ -1441,7 +1469,6 @@ func Getpgrp() (pid int) {
//sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) = SYS_PSELECT6
//sys read(fd int, p []byte) (n int, err error)
//sys Removexattr(path string, attr string) (err error)
-//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
//sys Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error)
//sys RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error)
//sys Setdomainname(p []byte) (err error)
@@ -1466,6 +1493,7 @@ func Setgid(uid int) (err error) {
//sys Setpriority(which int, who int, prio int) (err error)
//sys Setxattr(path string, attr string, data []byte, flags int) (err error)
+//sys Signalfd(fd int, mask *Sigset_t, flags int) = SYS_SIGNALFD4
//sys Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error)
//sys Sync()
//sys Syncfs(fd int) (err error)
@@ -1682,7 +1710,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
// Shmdt
// Shmget
// Sigaltstack
-// Signalfd
// Swapoff
// Swapon
// Sysfs
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_386.go
index 74bc098ce1..e2f8cf6e5a 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_386.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_386.go
@@ -68,6 +68,7 @@ func Pipe2(p []int, flags int) (err error) {
//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32
//sys Setfsuid(uid int) (err error) = SYS_SETFSUID32
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
index 615f2918ad..87a30744d6 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
@@ -43,6 +43,7 @@ func Lstat(path string, stat *Stat_t) (err error) {
//sys Pause() (err error)
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
index ad2bd2582f..cda3559419 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
@@ -89,6 +89,7 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
//sys Listen(s int, n int) (err error)
//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
//sys Pause() (err error)
+//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
index fa5a9a6f64..6d56722401 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
@@ -30,6 +30,7 @@ func EpollCreate(size int) (fd int, err error) {
//sys Listen(s int, n int) (err error)
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
index 18541dc573..b3b21ec1e2 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
@@ -24,6 +24,7 @@ package unix
//sys Pause() (err error)
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
index 99e0e999a1..5144d4e133 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
@@ -28,6 +28,7 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
//sys Listen(s int, n int) (err error)
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
//sys Setfsgid(gid int) (err error)
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
index 41451854bc..0a100b66a3 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
@@ -30,6 +30,7 @@ package unix
//sys Pause() (err error)
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
index 44aa1227a6..f23ca451c7 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
@@ -207,3 +207,7 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
}
return ppoll(&fds[0], len(fds), ts, nil)
}
+
+func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+ return Renameat2(olddirfd, oldpath, newdirfd, newpath, 0)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
index f52f148f9f..f81dbdc9c8 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
@@ -30,6 +30,7 @@ import (
//sys Pause() (err error)
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
index 72e64187de..b69565616f 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
@@ -26,6 +26,7 @@ package unix
//sys Pause() (err error)
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go
new file mode 100644
index 0000000000..f3434465a1
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go
@@ -0,0 +1,33 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build arm64,netbsd
+
+package unix
+
+func setTimespec(sec, nsec int64) Timespec {
+ return Timespec{Sec: sec, Nsec: nsec}
+}
+
+func setTimeval(sec, usec int64) Timeval {
+ return Timeval{Sec: sec, Usec: int32(usec)}
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+ k.Ident = uint64(fd)
+ k.Filter = uint32(mode)
+ k.Flags = uint32(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
index c62bb94902..cb89df8f54 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
@@ -41,7 +41,7 @@ const (
AF_KEY = 0xf
AF_LLC = 0x1a
AF_LOCAL = 0x1
- AF_MAX = 0x2c
+ AF_MAX = 0x2d
AF_MPLS = 0x1c
AF_NETBEUI = 0xd
AF_NETLINK = 0x10
@@ -707,6 +707,7 @@ const (
IN_ISDIR = 0x40000000
IN_LOOPBACKNET = 0x7f
IN_MASK_ADD = 0x20000000
+ IN_MASK_CREATE = 0x10000000
IN_MODIFY = 0x2
IN_MOVE = 0xc0
IN_MOVED_FROM = 0x40
@@ -778,6 +779,7 @@ const (
IPV6_MINHOPCOUNT = 0x49
IPV6_MTU = 0x18
IPV6_MTU_DISCOVER = 0x17
+ IPV6_MULTICAST_ALL = 0x1d
IPV6_MULTICAST_HOPS = 0x12
IPV6_MULTICAST_IF = 0x11
IPV6_MULTICAST_LOOP = 0x13
@@ -1537,6 +1539,13 @@ const (
RLIMIT_SIGPENDING = 0xb
RLIMIT_STACK = 0x3
RLIM_INFINITY = 0xffffffffffffffff
+ RNDADDENTROPY = 0x40085203
+ RNDADDTOENTCNT = 0x40045201
+ RNDCLEARPOOL = 0x5206
+ RNDGETENTCNT = 0x80045200
+ RNDGETPOOL = 0x80085202
+ RNDRESEEDCRNG = 0x5207
+ RNDZAPENTCNT = 0x5204
RTAX_ADVMSS = 0x8
RTAX_CC_ALGO = 0x10
RTAX_CWND = 0x7
@@ -1744,6 +1753,8 @@ const (
SECCOMP_MODE_STRICT = 0x1
SECURITYFS_MAGIC = 0x73636673
SELINUX_MAGIC = 0xf97cff8c
+ SFD_CLOEXEC = 0x80000
+ SFD_NONBLOCK = 0x800
SHUT_RD = 0x0
SHUT_RDWR = 0x2
SHUT_WR = 0x1
@@ -1905,6 +1916,17 @@ const (
SO_DETACH_FILTER = 0x1b
SO_DOMAIN = 0x27
SO_DONTROUTE = 0x5
+ SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
+ SO_EE_CODE_TXTIME_MISSED = 0x2
+ SO_EE_CODE_ZEROCOPY_COPIED = 0x1
+ SO_EE_ORIGIN_ICMP = 0x2
+ SO_EE_ORIGIN_ICMP6 = 0x3
+ SO_EE_ORIGIN_LOCAL = 0x1
+ SO_EE_ORIGIN_NONE = 0x0
+ SO_EE_ORIGIN_TIMESTAMPING = 0x4
+ SO_EE_ORIGIN_TXSTATUS = 0x4
+ SO_EE_ORIGIN_TXTIME = 0x6
+ SO_EE_ORIGIN_ZEROCOPY = 0x5
SO_ERROR = 0x4
SO_GET_FILTER = 0x1a
SO_INCOMING_CPU = 0x31
@@ -2038,6 +2060,7 @@ const (
TCOOFF = 0x0
TCOON = 0x1
TCP_CC_INFO = 0x1a
+ TCP_CM_INQ = 0x24
TCP_CONGESTION = 0xd
TCP_COOKIE_IN_ALWAYS = 0x1
TCP_COOKIE_MAX = 0x10
@@ -2052,6 +2075,7 @@ const (
TCP_FASTOPEN_KEY = 0x21
TCP_FASTOPEN_NO_COOKIE = 0x22
TCP_INFO = 0xb
+ TCP_INQ = 0x24
TCP_KEEPCNT = 0x6
TCP_KEEPIDLE = 0x4
TCP_KEEPINTVL = 0x5
@@ -2071,6 +2095,9 @@ const (
TCP_QUEUE_SEQ = 0x15
TCP_QUICKACK = 0xc
TCP_REPAIR = 0x13
+ TCP_REPAIR_OFF = 0x0
+ TCP_REPAIR_OFF_NO_WP = -0x1
+ TCP_REPAIR_ON = 0x1
TCP_REPAIR_OPTIONS = 0x16
TCP_REPAIR_QUEUE = 0x14
TCP_REPAIR_WINDOW = 0x1d
@@ -2085,6 +2112,7 @@ const (
TCP_ULP = 0x1f
TCP_USER_TIMEOUT = 0x12
TCP_WINDOW_CLAMP = 0xa
+ TCP_ZEROCOPY_RECEIVE = 0x23
TCSAFLUSH = 0x2
TCSBRK = 0x5409
TCSBRKP = 0x5425
@@ -2101,6 +2129,7 @@ const (
TCSETXF = 0x5434
TCSETXW = 0x5435
TCXONC = 0x540a
+ TIMER_ABSTIME = 0x1
TIOCCBRK = 0x5428
TIOCCONS = 0x541d
TIOCEXCL = 0x540c
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
index 93f65d7d1a..73c9b88ca7 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
@@ -41,7 +41,7 @@ const (
AF_KEY = 0xf
AF_LLC = 0x1a
AF_LOCAL = 0x1
- AF_MAX = 0x2c
+ AF_MAX = 0x2d
AF_MPLS = 0x1c
AF_NETBEUI = 0xd
AF_NETLINK = 0x10
@@ -707,6 +707,7 @@ const (
IN_ISDIR = 0x40000000
IN_LOOPBACKNET = 0x7f
IN_MASK_ADD = 0x20000000
+ IN_MASK_CREATE = 0x10000000
IN_MODIFY = 0x2
IN_MOVE = 0xc0
IN_MOVED_FROM = 0x40
@@ -778,6 +779,7 @@ const (
IPV6_MINHOPCOUNT = 0x49
IPV6_MTU = 0x18
IPV6_MTU_DISCOVER = 0x17
+ IPV6_MULTICAST_ALL = 0x1d
IPV6_MULTICAST_HOPS = 0x12
IPV6_MULTICAST_IF = 0x11
IPV6_MULTICAST_LOOP = 0x13
@@ -1538,6 +1540,13 @@ const (
RLIMIT_SIGPENDING = 0xb
RLIMIT_STACK = 0x3
RLIM_INFINITY = 0xffffffffffffffff
+ RNDADDENTROPY = 0x40085203
+ RNDADDTOENTCNT = 0x40045201
+ RNDCLEARPOOL = 0x5206
+ RNDGETENTCNT = 0x80045200
+ RNDGETPOOL = 0x80085202
+ RNDRESEEDCRNG = 0x5207
+ RNDZAPENTCNT = 0x5204
RTAX_ADVMSS = 0x8
RTAX_CC_ALGO = 0x10
RTAX_CWND = 0x7
@@ -1745,6 +1754,8 @@ const (
SECCOMP_MODE_STRICT = 0x1
SECURITYFS_MAGIC = 0x73636673
SELINUX_MAGIC = 0xf97cff8c
+ SFD_CLOEXEC = 0x80000
+ SFD_NONBLOCK = 0x800
SHUT_RD = 0x0
SHUT_RDWR = 0x2
SHUT_WR = 0x1
@@ -1906,6 +1917,17 @@ const (
SO_DETACH_FILTER = 0x1b
SO_DOMAIN = 0x27
SO_DONTROUTE = 0x5
+ SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
+ SO_EE_CODE_TXTIME_MISSED = 0x2
+ SO_EE_CODE_ZEROCOPY_COPIED = 0x1
+ SO_EE_ORIGIN_ICMP = 0x2
+ SO_EE_ORIGIN_ICMP6 = 0x3
+ SO_EE_ORIGIN_LOCAL = 0x1
+ SO_EE_ORIGIN_NONE = 0x0
+ SO_EE_ORIGIN_TIMESTAMPING = 0x4
+ SO_EE_ORIGIN_TXSTATUS = 0x4
+ SO_EE_ORIGIN_TXTIME = 0x6
+ SO_EE_ORIGIN_ZEROCOPY = 0x5
SO_ERROR = 0x4
SO_GET_FILTER = 0x1a
SO_INCOMING_CPU = 0x31
@@ -2039,6 +2061,7 @@ const (
TCOOFF = 0x0
TCOON = 0x1
TCP_CC_INFO = 0x1a
+ TCP_CM_INQ = 0x24
TCP_CONGESTION = 0xd
TCP_COOKIE_IN_ALWAYS = 0x1
TCP_COOKIE_MAX = 0x10
@@ -2053,6 +2076,7 @@ const (
TCP_FASTOPEN_KEY = 0x21
TCP_FASTOPEN_NO_COOKIE = 0x22
TCP_INFO = 0xb
+ TCP_INQ = 0x24
TCP_KEEPCNT = 0x6
TCP_KEEPIDLE = 0x4
TCP_KEEPINTVL = 0x5
@@ -2072,6 +2096,9 @@ const (
TCP_QUEUE_SEQ = 0x15
TCP_QUICKACK = 0xc
TCP_REPAIR = 0x13
+ TCP_REPAIR_OFF = 0x0
+ TCP_REPAIR_OFF_NO_WP = -0x1
+ TCP_REPAIR_ON = 0x1
TCP_REPAIR_OPTIONS = 0x16
TCP_REPAIR_QUEUE = 0x14
TCP_REPAIR_WINDOW = 0x1d
@@ -2086,6 +2113,7 @@ const (
TCP_ULP = 0x1f
TCP_USER_TIMEOUT = 0x12
TCP_WINDOW_CLAMP = 0xa
+ TCP_ZEROCOPY_RECEIVE = 0x23
TCSAFLUSH = 0x2
TCSBRK = 0x5409
TCSBRKP = 0x5425
@@ -2102,6 +2130,7 @@ const (
TCSETXF = 0x5434
TCSETXW = 0x5435
TCXONC = 0x540a
+ TIMER_ABSTIME = 0x1
TIOCCBRK = 0x5428
TIOCCONS = 0x541d
TIOCEXCL = 0x540c
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
index ccc57676fd..f1ef82f57e 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
@@ -41,7 +41,7 @@ const (
AF_KEY = 0xf
AF_LLC = 0x1a
AF_LOCAL = 0x1
- AF_MAX = 0x2c
+ AF_MAX = 0x2d
AF_MPLS = 0x1c
AF_NETBEUI = 0xd
AF_NETLINK = 0x10
@@ -706,6 +706,7 @@ const (
IN_ISDIR = 0x40000000
IN_LOOPBACKNET = 0x7f
IN_MASK_ADD = 0x20000000
+ IN_MASK_CREATE = 0x10000000
IN_MODIFY = 0x2
IN_MOVE = 0xc0
IN_MOVED_FROM = 0x40
@@ -777,6 +778,7 @@ const (
IPV6_MINHOPCOUNT = 0x49
IPV6_MTU = 0x18
IPV6_MTU_DISCOVER = 0x17
+ IPV6_MULTICAST_ALL = 0x1d
IPV6_MULTICAST_HOPS = 0x12
IPV6_MULTICAST_IF = 0x11
IPV6_MULTICAST_LOOP = 0x13
@@ -1544,6 +1546,13 @@ const (
RLIMIT_SIGPENDING = 0xb
RLIMIT_STACK = 0x3
RLIM_INFINITY = 0xffffffffffffffff
+ RNDADDENTROPY = 0x40085203
+ RNDADDTOENTCNT = 0x40045201
+ RNDCLEARPOOL = 0x5206
+ RNDGETENTCNT = 0x80045200
+ RNDGETPOOL = 0x80085202
+ RNDRESEEDCRNG = 0x5207
+ RNDZAPENTCNT = 0x5204
RTAX_ADVMSS = 0x8
RTAX_CC_ALGO = 0x10
RTAX_CWND = 0x7
@@ -1751,6 +1760,8 @@ const (
SECCOMP_MODE_STRICT = 0x1
SECURITYFS_MAGIC = 0x73636673
SELINUX_MAGIC = 0xf97cff8c
+ SFD_CLOEXEC = 0x80000
+ SFD_NONBLOCK = 0x800
SHUT_RD = 0x0
SHUT_RDWR = 0x2
SHUT_WR = 0x1
@@ -1912,6 +1923,17 @@ const (
SO_DETACH_FILTER = 0x1b
SO_DOMAIN = 0x27
SO_DONTROUTE = 0x5
+ SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
+ SO_EE_CODE_TXTIME_MISSED = 0x2
+ SO_EE_CODE_ZEROCOPY_COPIED = 0x1
+ SO_EE_ORIGIN_ICMP = 0x2
+ SO_EE_ORIGIN_ICMP6 = 0x3
+ SO_EE_ORIGIN_LOCAL = 0x1
+ SO_EE_ORIGIN_NONE = 0x0
+ SO_EE_ORIGIN_TIMESTAMPING = 0x4
+ SO_EE_ORIGIN_TXSTATUS = 0x4
+ SO_EE_ORIGIN_TXTIME = 0x6
+ SO_EE_ORIGIN_ZEROCOPY = 0x5
SO_ERROR = 0x4
SO_GET_FILTER = 0x1a
SO_INCOMING_CPU = 0x31
@@ -2045,6 +2067,7 @@ const (
TCOOFF = 0x0
TCOON = 0x1
TCP_CC_INFO = 0x1a
+ TCP_CM_INQ = 0x24
TCP_CONGESTION = 0xd
TCP_COOKIE_IN_ALWAYS = 0x1
TCP_COOKIE_MAX = 0x10
@@ -2059,6 +2082,7 @@ const (
TCP_FASTOPEN_KEY = 0x21
TCP_FASTOPEN_NO_COOKIE = 0x22
TCP_INFO = 0xb
+ TCP_INQ = 0x24
TCP_KEEPCNT = 0x6
TCP_KEEPIDLE = 0x4
TCP_KEEPINTVL = 0x5
@@ -2078,6 +2102,9 @@ const (
TCP_QUEUE_SEQ = 0x15
TCP_QUICKACK = 0xc
TCP_REPAIR = 0x13
+ TCP_REPAIR_OFF = 0x0
+ TCP_REPAIR_OFF_NO_WP = -0x1
+ TCP_REPAIR_ON = 0x1
TCP_REPAIR_OPTIONS = 0x16
TCP_REPAIR_QUEUE = 0x14
TCP_REPAIR_WINDOW = 0x1d
@@ -2092,6 +2119,7 @@ const (
TCP_ULP = 0x1f
TCP_USER_TIMEOUT = 0x12
TCP_WINDOW_CLAMP = 0xa
+ TCP_ZEROCOPY_RECEIVE = 0x23
TCSAFLUSH = 0x2
TCSBRK = 0x5409
TCSBRKP = 0x5425
@@ -2108,6 +2136,7 @@ const (
TCSETXF = 0x5434
TCSETXW = 0x5435
TCXONC = 0x540a
+ TIMER_ABSTIME = 0x1
TIOCCBRK = 0x5428
TIOCCONS = 0x541d
TIOCEXCL = 0x540c
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
index 9c57337c62..cf17c99069 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
@@ -41,7 +41,7 @@ const (
AF_KEY = 0xf
AF_LLC = 0x1a
AF_LOCAL = 0x1
- AF_MAX = 0x2c
+ AF_MAX = 0x2d
AF_MPLS = 0x1c
AF_NETBEUI = 0xd
AF_NETLINK = 0x10
@@ -709,6 +709,7 @@ const (
IN_ISDIR = 0x40000000
IN_LOOPBACKNET = 0x7f
IN_MASK_ADD = 0x20000000
+ IN_MASK_CREATE = 0x10000000
IN_MODIFY = 0x2
IN_MOVE = 0xc0
IN_MOVED_FROM = 0x40
@@ -780,6 +781,7 @@ const (
IPV6_MINHOPCOUNT = 0x49
IPV6_MTU = 0x18
IPV6_MTU_DISCOVER = 0x17
+ IPV6_MULTICAST_ALL = 0x1d
IPV6_MULTICAST_HOPS = 0x12
IPV6_MULTICAST_IF = 0x11
IPV6_MULTICAST_LOOP = 0x13
@@ -1528,6 +1530,13 @@ const (
RLIMIT_SIGPENDING = 0xb
RLIMIT_STACK = 0x3
RLIM_INFINITY = 0xffffffffffffffff
+ RNDADDENTROPY = 0x40085203
+ RNDADDTOENTCNT = 0x40045201
+ RNDCLEARPOOL = 0x5206
+ RNDGETENTCNT = 0x80045200
+ RNDGETPOOL = 0x80085202
+ RNDRESEEDCRNG = 0x5207
+ RNDZAPENTCNT = 0x5204
RTAX_ADVMSS = 0x8
RTAX_CC_ALGO = 0x10
RTAX_CWND = 0x7
@@ -1735,6 +1744,8 @@ const (
SECCOMP_MODE_STRICT = 0x1
SECURITYFS_MAGIC = 0x73636673
SELINUX_MAGIC = 0xf97cff8c
+ SFD_CLOEXEC = 0x80000
+ SFD_NONBLOCK = 0x800
SHUT_RD = 0x0
SHUT_RDWR = 0x2
SHUT_WR = 0x1
@@ -1896,6 +1907,17 @@ const (
SO_DETACH_FILTER = 0x1b
SO_DOMAIN = 0x27
SO_DONTROUTE = 0x5
+ SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
+ SO_EE_CODE_TXTIME_MISSED = 0x2
+ SO_EE_CODE_ZEROCOPY_COPIED = 0x1
+ SO_EE_ORIGIN_ICMP = 0x2
+ SO_EE_ORIGIN_ICMP6 = 0x3
+ SO_EE_ORIGIN_LOCAL = 0x1
+ SO_EE_ORIGIN_NONE = 0x0
+ SO_EE_ORIGIN_TIMESTAMPING = 0x4
+ SO_EE_ORIGIN_TXSTATUS = 0x4
+ SO_EE_ORIGIN_TXTIME = 0x6
+ SO_EE_ORIGIN_ZEROCOPY = 0x5
SO_ERROR = 0x4
SO_GET_FILTER = 0x1a
SO_INCOMING_CPU = 0x31
@@ -2030,6 +2052,7 @@ const (
TCOOFF = 0x0
TCOON = 0x1
TCP_CC_INFO = 0x1a
+ TCP_CM_INQ = 0x24
TCP_CONGESTION = 0xd
TCP_COOKIE_IN_ALWAYS = 0x1
TCP_COOKIE_MAX = 0x10
@@ -2044,6 +2067,7 @@ const (
TCP_FASTOPEN_KEY = 0x21
TCP_FASTOPEN_NO_COOKIE = 0x22
TCP_INFO = 0xb
+ TCP_INQ = 0x24
TCP_KEEPCNT = 0x6
TCP_KEEPIDLE = 0x4
TCP_KEEPINTVL = 0x5
@@ -2063,6 +2087,9 @@ const (
TCP_QUEUE_SEQ = 0x15
TCP_QUICKACK = 0xc
TCP_REPAIR = 0x13
+ TCP_REPAIR_OFF = 0x0
+ TCP_REPAIR_OFF_NO_WP = -0x1
+ TCP_REPAIR_ON = 0x1
TCP_REPAIR_OPTIONS = 0x16
TCP_REPAIR_QUEUE = 0x14
TCP_REPAIR_WINDOW = 0x1d
@@ -2077,6 +2104,7 @@ const (
TCP_ULP = 0x1f
TCP_USER_TIMEOUT = 0x12
TCP_WINDOW_CLAMP = 0xa
+ TCP_ZEROCOPY_RECEIVE = 0x23
TCSAFLUSH = 0x2
TCSBRK = 0x5409
TCSBRKP = 0x5425
@@ -2093,6 +2121,7 @@ const (
TCSETXF = 0x5434
TCSETXW = 0x5435
TCXONC = 0x540a
+ TIMER_ABSTIME = 0x1
TIOCCBRK = 0x5428
TIOCCONS = 0x541d
TIOCEXCL = 0x540c
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
index 66cdbfd586..380913c4fc 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
@@ -41,7 +41,7 @@ const (
AF_KEY = 0xf
AF_LLC = 0x1a
AF_LOCAL = 0x1
- AF_MAX = 0x2c
+ AF_MAX = 0x2d
AF_MPLS = 0x1c
AF_NETBEUI = 0xd
AF_NETLINK = 0x10
@@ -706,6 +706,7 @@ const (
IN_ISDIR = 0x40000000
IN_LOOPBACKNET = 0x7f
IN_MASK_ADD = 0x20000000
+ IN_MASK_CREATE = 0x10000000
IN_MODIFY = 0x2
IN_MOVE = 0xc0
IN_MOVED_FROM = 0x40
@@ -777,6 +778,7 @@ const (
IPV6_MINHOPCOUNT = 0x49
IPV6_MTU = 0x18
IPV6_MTU_DISCOVER = 0x17
+ IPV6_MULTICAST_ALL = 0x1d
IPV6_MULTICAST_HOPS = 0x12
IPV6_MULTICAST_IF = 0x11
IPV6_MULTICAST_LOOP = 0x13
@@ -1537,6 +1539,13 @@ const (
RLIMIT_SIGPENDING = 0xb
RLIMIT_STACK = 0x3
RLIM_INFINITY = 0xffffffffffffffff
+ RNDADDENTROPY = 0x80085203
+ RNDADDTOENTCNT = 0x80045201
+ RNDCLEARPOOL = 0x20005206
+ RNDGETENTCNT = 0x40045200
+ RNDGETPOOL = 0x40085202
+ RNDRESEEDCRNG = 0x20005207
+ RNDZAPENTCNT = 0x20005204
RTAX_ADVMSS = 0x8
RTAX_CC_ALGO = 0x10
RTAX_CWND = 0x7
@@ -1744,6 +1753,8 @@ const (
SECCOMP_MODE_STRICT = 0x1
SECURITYFS_MAGIC = 0x73636673
SELINUX_MAGIC = 0xf97cff8c
+ SFD_CLOEXEC = 0x80000
+ SFD_NONBLOCK = 0x80
SHUT_RD = 0x0
SHUT_RDWR = 0x2
SHUT_WR = 0x1
@@ -1905,6 +1916,17 @@ const (
SO_DETACH_FILTER = 0x1b
SO_DOMAIN = 0x1029
SO_DONTROUTE = 0x10
+ SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
+ SO_EE_CODE_TXTIME_MISSED = 0x2
+ SO_EE_CODE_ZEROCOPY_COPIED = 0x1
+ SO_EE_ORIGIN_ICMP = 0x2
+ SO_EE_ORIGIN_ICMP6 = 0x3
+ SO_EE_ORIGIN_LOCAL = 0x1
+ SO_EE_ORIGIN_NONE = 0x0
+ SO_EE_ORIGIN_TIMESTAMPING = 0x4
+ SO_EE_ORIGIN_TXSTATUS = 0x4
+ SO_EE_ORIGIN_TXTIME = 0x6
+ SO_EE_ORIGIN_ZEROCOPY = 0x5
SO_ERROR = 0x1007
SO_GET_FILTER = 0x1a
SO_INCOMING_CPU = 0x31
@@ -2038,6 +2060,7 @@ const (
TCOOFF = 0x0
TCOON = 0x1
TCP_CC_INFO = 0x1a
+ TCP_CM_INQ = 0x24
TCP_CONGESTION = 0xd
TCP_COOKIE_IN_ALWAYS = 0x1
TCP_COOKIE_MAX = 0x10
@@ -2052,6 +2075,7 @@ const (
TCP_FASTOPEN_KEY = 0x21
TCP_FASTOPEN_NO_COOKIE = 0x22
TCP_INFO = 0xb
+ TCP_INQ = 0x24
TCP_KEEPCNT = 0x6
TCP_KEEPIDLE = 0x4
TCP_KEEPINTVL = 0x5
@@ -2071,6 +2095,9 @@ const (
TCP_QUEUE_SEQ = 0x15
TCP_QUICKACK = 0xc
TCP_REPAIR = 0x13
+ TCP_REPAIR_OFF = 0x0
+ TCP_REPAIR_OFF_NO_WP = -0x1
+ TCP_REPAIR_ON = 0x1
TCP_REPAIR_OPTIONS = 0x16
TCP_REPAIR_QUEUE = 0x14
TCP_REPAIR_WINDOW = 0x1d
@@ -2085,6 +2112,7 @@ const (
TCP_ULP = 0x1f
TCP_USER_TIMEOUT = 0x12
TCP_WINDOW_CLAMP = 0xa
+ TCP_ZEROCOPY_RECEIVE = 0x23
TCSAFLUSH = 0x5410
TCSBRK = 0x5405
TCSBRKP = 0x5486
@@ -2098,6 +2126,7 @@ const (
TCSETSW = 0x540f
TCSETSW2 = 0x8030542c
TCXONC = 0x5406
+ TIMER_ABSTIME = 0x1
TIOCCBRK = 0x5428
TIOCCONS = 0x80047478
TIOCEXCL = 0x740d
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
index 038cfeb7db..fb82529ac9 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
@@ -41,7 +41,7 @@ const (
AF_KEY = 0xf
AF_LLC = 0x1a
AF_LOCAL = 0x1
- AF_MAX = 0x2c
+ AF_MAX = 0x2d
AF_MPLS = 0x1c
AF_NETBEUI = 0xd
AF_NETLINK = 0x10
@@ -706,6 +706,7 @@ const (
IN_ISDIR = 0x40000000
IN_LOOPBACKNET = 0x7f
IN_MASK_ADD = 0x20000000
+ IN_MASK_CREATE = 0x10000000
IN_MODIFY = 0x2
IN_MOVE = 0xc0
IN_MOVED_FROM = 0x40
@@ -777,6 +778,7 @@ const (
IPV6_MINHOPCOUNT = 0x49
IPV6_MTU = 0x18
IPV6_MTU_DISCOVER = 0x17
+ IPV6_MULTICAST_ALL = 0x1d
IPV6_MULTICAST_HOPS = 0x12
IPV6_MULTICAST_IF = 0x11
IPV6_MULTICAST_LOOP = 0x13
@@ -1537,6 +1539,13 @@ const (
RLIMIT_SIGPENDING = 0xb
RLIMIT_STACK = 0x3
RLIM_INFINITY = 0xffffffffffffffff
+ RNDADDENTROPY = 0x80085203
+ RNDADDTOENTCNT = 0x80045201
+ RNDCLEARPOOL = 0x20005206
+ RNDGETENTCNT = 0x40045200
+ RNDGETPOOL = 0x40085202
+ RNDRESEEDCRNG = 0x20005207
+ RNDZAPENTCNT = 0x20005204
RTAX_ADVMSS = 0x8
RTAX_CC_ALGO = 0x10
RTAX_CWND = 0x7
@@ -1744,6 +1753,8 @@ const (
SECCOMP_MODE_STRICT = 0x1
SECURITYFS_MAGIC = 0x73636673
SELINUX_MAGIC = 0xf97cff8c
+ SFD_CLOEXEC = 0x80000
+ SFD_NONBLOCK = 0x80
SHUT_RD = 0x0
SHUT_RDWR = 0x2
SHUT_WR = 0x1
@@ -1905,6 +1916,17 @@ const (
SO_DETACH_FILTER = 0x1b
SO_DOMAIN = 0x1029
SO_DONTROUTE = 0x10
+ SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
+ SO_EE_CODE_TXTIME_MISSED = 0x2
+ SO_EE_CODE_ZEROCOPY_COPIED = 0x1
+ SO_EE_ORIGIN_ICMP = 0x2
+ SO_EE_ORIGIN_ICMP6 = 0x3
+ SO_EE_ORIGIN_LOCAL = 0x1
+ SO_EE_ORIGIN_NONE = 0x0
+ SO_EE_ORIGIN_TIMESTAMPING = 0x4
+ SO_EE_ORIGIN_TXSTATUS = 0x4
+ SO_EE_ORIGIN_TXTIME = 0x6
+ SO_EE_ORIGIN_ZEROCOPY = 0x5
SO_ERROR = 0x1007
SO_GET_FILTER = 0x1a
SO_INCOMING_CPU = 0x31
@@ -2038,6 +2060,7 @@ const (
TCOOFF = 0x0
TCOON = 0x1
TCP_CC_INFO = 0x1a
+ TCP_CM_INQ = 0x24
TCP_CONGESTION = 0xd
TCP_COOKIE_IN_ALWAYS = 0x1
TCP_COOKIE_MAX = 0x10
@@ -2052,6 +2075,7 @@ const (
TCP_FASTOPEN_KEY = 0x21
TCP_FASTOPEN_NO_COOKIE = 0x22
TCP_INFO = 0xb
+ TCP_INQ = 0x24
TCP_KEEPCNT = 0x6
TCP_KEEPIDLE = 0x4
TCP_KEEPINTVL = 0x5
@@ -2071,6 +2095,9 @@ const (
TCP_QUEUE_SEQ = 0x15
TCP_QUICKACK = 0xc
TCP_REPAIR = 0x13
+ TCP_REPAIR_OFF = 0x0
+ TCP_REPAIR_OFF_NO_WP = -0x1
+ TCP_REPAIR_ON = 0x1
TCP_REPAIR_OPTIONS = 0x16
TCP_REPAIR_QUEUE = 0x14
TCP_REPAIR_WINDOW = 0x1d
@@ -2085,6 +2112,7 @@ const (
TCP_ULP = 0x1f
TCP_USER_TIMEOUT = 0x12
TCP_WINDOW_CLAMP = 0xa
+ TCP_ZEROCOPY_RECEIVE = 0x23
TCSAFLUSH = 0x5410
TCSBRK = 0x5405
TCSBRKP = 0x5486
@@ -2098,6 +2126,7 @@ const (
TCSETSW = 0x540f
TCSETSW2 = 0x8030542c
TCXONC = 0x5406
+ TIMER_ABSTIME = 0x1
TIOCCBRK = 0x5428
TIOCCONS = 0x80047478
TIOCEXCL = 0x740d
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
index 2b9af2f5ef..677d904562 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
@@ -41,7 +41,7 @@ const (
AF_KEY = 0xf
AF_LLC = 0x1a
AF_LOCAL = 0x1
- AF_MAX = 0x2c
+ AF_MAX = 0x2d
AF_MPLS = 0x1c
AF_NETBEUI = 0xd
AF_NETLINK = 0x10
@@ -706,6 +706,7 @@ const (
IN_ISDIR = 0x40000000
IN_LOOPBACKNET = 0x7f
IN_MASK_ADD = 0x20000000
+ IN_MASK_CREATE = 0x10000000
IN_MODIFY = 0x2
IN_MOVE = 0xc0
IN_MOVED_FROM = 0x40
@@ -777,6 +778,7 @@ const (
IPV6_MINHOPCOUNT = 0x49
IPV6_MTU = 0x18
IPV6_MTU_DISCOVER = 0x17
+ IPV6_MULTICAST_ALL = 0x1d
IPV6_MULTICAST_HOPS = 0x12
IPV6_MULTICAST_IF = 0x11
IPV6_MULTICAST_LOOP = 0x13
@@ -1537,6 +1539,13 @@ const (
RLIMIT_SIGPENDING = 0xb
RLIMIT_STACK = 0x3
RLIM_INFINITY = 0xffffffffffffffff
+ RNDADDENTROPY = 0x80085203
+ RNDADDTOENTCNT = 0x80045201
+ RNDCLEARPOOL = 0x20005206
+ RNDGETENTCNT = 0x40045200
+ RNDGETPOOL = 0x40085202
+ RNDRESEEDCRNG = 0x20005207
+ RNDZAPENTCNT = 0x20005204
RTAX_ADVMSS = 0x8
RTAX_CC_ALGO = 0x10
RTAX_CWND = 0x7
@@ -1744,6 +1753,8 @@ const (
SECCOMP_MODE_STRICT = 0x1
SECURITYFS_MAGIC = 0x73636673
SELINUX_MAGIC = 0xf97cff8c
+ SFD_CLOEXEC = 0x80000
+ SFD_NONBLOCK = 0x80
SHUT_RD = 0x0
SHUT_RDWR = 0x2
SHUT_WR = 0x1
@@ -1905,6 +1916,17 @@ const (
SO_DETACH_FILTER = 0x1b
SO_DOMAIN = 0x1029
SO_DONTROUTE = 0x10
+ SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
+ SO_EE_CODE_TXTIME_MISSED = 0x2
+ SO_EE_CODE_ZEROCOPY_COPIED = 0x1
+ SO_EE_ORIGIN_ICMP = 0x2
+ SO_EE_ORIGIN_ICMP6 = 0x3
+ SO_EE_ORIGIN_LOCAL = 0x1
+ SO_EE_ORIGIN_NONE = 0x0
+ SO_EE_ORIGIN_TIMESTAMPING = 0x4
+ SO_EE_ORIGIN_TXSTATUS = 0x4
+ SO_EE_ORIGIN_TXTIME = 0x6
+ SO_EE_ORIGIN_ZEROCOPY = 0x5
SO_ERROR = 0x1007
SO_GET_FILTER = 0x1a
SO_INCOMING_CPU = 0x31
@@ -2038,6 +2060,7 @@ const (
TCOOFF = 0x0
TCOON = 0x1
TCP_CC_INFO = 0x1a
+ TCP_CM_INQ = 0x24
TCP_CONGESTION = 0xd
TCP_COOKIE_IN_ALWAYS = 0x1
TCP_COOKIE_MAX = 0x10
@@ -2052,6 +2075,7 @@ const (
TCP_FASTOPEN_KEY = 0x21
TCP_FASTOPEN_NO_COOKIE = 0x22
TCP_INFO = 0xb
+ TCP_INQ = 0x24
TCP_KEEPCNT = 0x6
TCP_KEEPIDLE = 0x4
TCP_KEEPINTVL = 0x5
@@ -2071,6 +2095,9 @@ const (
TCP_QUEUE_SEQ = 0x15
TCP_QUICKACK = 0xc
TCP_REPAIR = 0x13
+ TCP_REPAIR_OFF = 0x0
+ TCP_REPAIR_OFF_NO_WP = -0x1
+ TCP_REPAIR_ON = 0x1
TCP_REPAIR_OPTIONS = 0x16
TCP_REPAIR_QUEUE = 0x14
TCP_REPAIR_WINDOW = 0x1d
@@ -2085,6 +2112,7 @@ const (
TCP_ULP = 0x1f
TCP_USER_TIMEOUT = 0x12
TCP_WINDOW_CLAMP = 0xa
+ TCP_ZEROCOPY_RECEIVE = 0x23
TCSAFLUSH = 0x5410
TCSBRK = 0x5405
TCSBRKP = 0x5486
@@ -2098,6 +2126,7 @@ const (
TCSETSW = 0x540f
TCSETSW2 = 0x8030542c
TCXONC = 0x5406
+ TIMER_ABSTIME = 0x1
TIOCCBRK = 0x5428
TIOCCONS = 0x80047478
TIOCEXCL = 0x740d
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
index d117b63672..7ddd09d782 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
@@ -41,7 +41,7 @@ const (
AF_KEY = 0xf
AF_LLC = 0x1a
AF_LOCAL = 0x1
- AF_MAX = 0x2c
+ AF_MAX = 0x2d
AF_MPLS = 0x1c
AF_NETBEUI = 0xd
AF_NETLINK = 0x10
@@ -706,6 +706,7 @@ const (
IN_ISDIR = 0x40000000
IN_LOOPBACKNET = 0x7f
IN_MASK_ADD = 0x20000000
+ IN_MASK_CREATE = 0x10000000
IN_MODIFY = 0x2
IN_MOVE = 0xc0
IN_MOVED_FROM = 0x40
@@ -777,6 +778,7 @@ const (
IPV6_MINHOPCOUNT = 0x49
IPV6_MTU = 0x18
IPV6_MTU_DISCOVER = 0x17
+ IPV6_MULTICAST_ALL = 0x1d
IPV6_MULTICAST_HOPS = 0x12
IPV6_MULTICAST_IF = 0x11
IPV6_MULTICAST_LOOP = 0x13
@@ -1537,6 +1539,13 @@ const (
RLIMIT_SIGPENDING = 0xb
RLIMIT_STACK = 0x3
RLIM_INFINITY = 0xffffffffffffffff
+ RNDADDENTROPY = 0x80085203
+ RNDADDTOENTCNT = 0x80045201
+ RNDCLEARPOOL = 0x20005206
+ RNDGETENTCNT = 0x40045200
+ RNDGETPOOL = 0x40085202
+ RNDRESEEDCRNG = 0x20005207
+ RNDZAPENTCNT = 0x20005204
RTAX_ADVMSS = 0x8
RTAX_CC_ALGO = 0x10
RTAX_CWND = 0x7
@@ -1744,6 +1753,8 @@ const (
SECCOMP_MODE_STRICT = 0x1
SECURITYFS_MAGIC = 0x73636673
SELINUX_MAGIC = 0xf97cff8c
+ SFD_CLOEXEC = 0x80000
+ SFD_NONBLOCK = 0x80
SHUT_RD = 0x0
SHUT_RDWR = 0x2
SHUT_WR = 0x1
@@ -1905,6 +1916,17 @@ const (
SO_DETACH_FILTER = 0x1b
SO_DOMAIN = 0x1029
SO_DONTROUTE = 0x10
+ SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
+ SO_EE_CODE_TXTIME_MISSED = 0x2
+ SO_EE_CODE_ZEROCOPY_COPIED = 0x1
+ SO_EE_ORIGIN_ICMP = 0x2
+ SO_EE_ORIGIN_ICMP6 = 0x3
+ SO_EE_ORIGIN_LOCAL = 0x1
+ SO_EE_ORIGIN_NONE = 0x0
+ SO_EE_ORIGIN_TIMESTAMPING = 0x4
+ SO_EE_ORIGIN_TXSTATUS = 0x4
+ SO_EE_ORIGIN_TXTIME = 0x6
+ SO_EE_ORIGIN_ZEROCOPY = 0x5
SO_ERROR = 0x1007
SO_GET_FILTER = 0x1a
SO_INCOMING_CPU = 0x31
@@ -2038,6 +2060,7 @@ const (
TCOOFF = 0x0
TCOON = 0x1
TCP_CC_INFO = 0x1a
+ TCP_CM_INQ = 0x24
TCP_CONGESTION = 0xd
TCP_COOKIE_IN_ALWAYS = 0x1
TCP_COOKIE_MAX = 0x10
@@ -2052,6 +2075,7 @@ const (
TCP_FASTOPEN_KEY = 0x21
TCP_FASTOPEN_NO_COOKIE = 0x22
TCP_INFO = 0xb
+ TCP_INQ = 0x24
TCP_KEEPCNT = 0x6
TCP_KEEPIDLE = 0x4
TCP_KEEPINTVL = 0x5
@@ -2071,6 +2095,9 @@ const (
TCP_QUEUE_SEQ = 0x15
TCP_QUICKACK = 0xc
TCP_REPAIR = 0x13
+ TCP_REPAIR_OFF = 0x0
+ TCP_REPAIR_OFF_NO_WP = -0x1
+ TCP_REPAIR_ON = 0x1
TCP_REPAIR_OPTIONS = 0x16
TCP_REPAIR_QUEUE = 0x14
TCP_REPAIR_WINDOW = 0x1d
@@ -2085,6 +2112,7 @@ const (
TCP_ULP = 0x1f
TCP_USER_TIMEOUT = 0x12
TCP_WINDOW_CLAMP = 0xa
+ TCP_ZEROCOPY_RECEIVE = 0x23
TCSAFLUSH = 0x5410
TCSBRK = 0x5405
TCSBRKP = 0x5486
@@ -2098,6 +2126,7 @@ const (
TCSETSW = 0x540f
TCSETSW2 = 0x8030542c
TCXONC = 0x5406
+ TIMER_ABSTIME = 0x1
TIOCCBRK = 0x5428
TIOCCONS = 0x80047478
TIOCEXCL = 0x740d
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
index ed12556bf4..ebaca417b4 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
@@ -41,7 +41,7 @@ const (
AF_KEY = 0xf
AF_LLC = 0x1a
AF_LOCAL = 0x1
- AF_MAX = 0x2c
+ AF_MAX = 0x2d
AF_MPLS = 0x1c
AF_NETBEUI = 0xd
AF_NETLINK = 0x10
@@ -706,6 +706,7 @@ const (
IN_ISDIR = 0x40000000
IN_LOOPBACKNET = 0x7f
IN_MASK_ADD = 0x20000000
+ IN_MASK_CREATE = 0x10000000
IN_MODIFY = 0x2
IN_MOVE = 0xc0
IN_MOVED_FROM = 0x40
@@ -777,6 +778,7 @@ const (
IPV6_MINHOPCOUNT = 0x49
IPV6_MTU = 0x18
IPV6_MTU_DISCOVER = 0x17
+ IPV6_MULTICAST_ALL = 0x1d
IPV6_MULTICAST_HOPS = 0x12
IPV6_MULTICAST_IF = 0x11
IPV6_MULTICAST_LOOP = 0x13
@@ -1595,6 +1597,13 @@ const (
RLIMIT_SIGPENDING = 0xb
RLIMIT_STACK = 0x3
RLIM_INFINITY = 0xffffffffffffffff
+ RNDADDENTROPY = 0x80085203
+ RNDADDTOENTCNT = 0x80045201
+ RNDCLEARPOOL = 0x20005206
+ RNDGETENTCNT = 0x40045200
+ RNDGETPOOL = 0x40085202
+ RNDRESEEDCRNG = 0x20005207
+ RNDZAPENTCNT = 0x20005204
RTAX_ADVMSS = 0x8
RTAX_CC_ALGO = 0x10
RTAX_CWND = 0x7
@@ -1802,6 +1811,8 @@ const (
SECCOMP_MODE_STRICT = 0x1
SECURITYFS_MAGIC = 0x73636673
SELINUX_MAGIC = 0xf97cff8c
+ SFD_CLOEXEC = 0x80000
+ SFD_NONBLOCK = 0x800
SHUT_RD = 0x0
SHUT_RDWR = 0x2
SHUT_WR = 0x1
@@ -1963,6 +1974,17 @@ const (
SO_DETACH_FILTER = 0x1b
SO_DOMAIN = 0x27
SO_DONTROUTE = 0x5
+ SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
+ SO_EE_CODE_TXTIME_MISSED = 0x2
+ SO_EE_CODE_ZEROCOPY_COPIED = 0x1
+ SO_EE_ORIGIN_ICMP = 0x2
+ SO_EE_ORIGIN_ICMP6 = 0x3
+ SO_EE_ORIGIN_LOCAL = 0x1
+ SO_EE_ORIGIN_NONE = 0x0
+ SO_EE_ORIGIN_TIMESTAMPING = 0x4
+ SO_EE_ORIGIN_TXSTATUS = 0x4
+ SO_EE_ORIGIN_TXTIME = 0x6
+ SO_EE_ORIGIN_ZEROCOPY = 0x5
SO_ERROR = 0x4
SO_GET_FILTER = 0x1a
SO_INCOMING_CPU = 0x31
@@ -2094,6 +2116,7 @@ const (
TCOOFF = 0x0
TCOON = 0x1
TCP_CC_INFO = 0x1a
+ TCP_CM_INQ = 0x24
TCP_CONGESTION = 0xd
TCP_COOKIE_IN_ALWAYS = 0x1
TCP_COOKIE_MAX = 0x10
@@ -2108,6 +2131,7 @@ const (
TCP_FASTOPEN_KEY = 0x21
TCP_FASTOPEN_NO_COOKIE = 0x22
TCP_INFO = 0xb
+ TCP_INQ = 0x24
TCP_KEEPCNT = 0x6
TCP_KEEPIDLE = 0x4
TCP_KEEPINTVL = 0x5
@@ -2127,6 +2151,9 @@ const (
TCP_QUEUE_SEQ = 0x15
TCP_QUICKACK = 0xc
TCP_REPAIR = 0x13
+ TCP_REPAIR_OFF = 0x0
+ TCP_REPAIR_OFF_NO_WP = -0x1
+ TCP_REPAIR_ON = 0x1
TCP_REPAIR_OPTIONS = 0x16
TCP_REPAIR_QUEUE = 0x14
TCP_REPAIR_WINDOW = 0x1d
@@ -2141,6 +2168,7 @@ const (
TCP_ULP = 0x1f
TCP_USER_TIMEOUT = 0x12
TCP_WINDOW_CLAMP = 0xa
+ TCP_ZEROCOPY_RECEIVE = 0x23
TCSAFLUSH = 0x2
TCSBRK = 0x2000741d
TCSBRKP = 0x5425
@@ -2151,6 +2179,7 @@ const (
TCSETSF = 0x802c7416
TCSETSW = 0x802c7415
TCXONC = 0x2000741e
+ TIMER_ABSTIME = 0x1
TIOCCBRK = 0x5428
TIOCCONS = 0x541d
TIOCEXCL = 0x540c
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
index 4aa4fa9c99..02938cb6ed 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
@@ -41,7 +41,7 @@ const (
AF_KEY = 0xf
AF_LLC = 0x1a
AF_LOCAL = 0x1
- AF_MAX = 0x2c
+ AF_MAX = 0x2d
AF_MPLS = 0x1c
AF_NETBEUI = 0xd
AF_NETLINK = 0x10
@@ -706,6 +706,7 @@ const (
IN_ISDIR = 0x40000000
IN_LOOPBACKNET = 0x7f
IN_MASK_ADD = 0x20000000
+ IN_MASK_CREATE = 0x10000000
IN_MODIFY = 0x2
IN_MOVE = 0xc0
IN_MOVED_FROM = 0x40
@@ -777,6 +778,7 @@ const (
IPV6_MINHOPCOUNT = 0x49
IPV6_MTU = 0x18
IPV6_MTU_DISCOVER = 0x17
+ IPV6_MULTICAST_ALL = 0x1d
IPV6_MULTICAST_HOPS = 0x12
IPV6_MULTICAST_IF = 0x11
IPV6_MULTICAST_LOOP = 0x13
@@ -1595,6 +1597,13 @@ const (
RLIMIT_SIGPENDING = 0xb
RLIMIT_STACK = 0x3
RLIM_INFINITY = 0xffffffffffffffff
+ RNDADDENTROPY = 0x80085203
+ RNDADDTOENTCNT = 0x80045201
+ RNDCLEARPOOL = 0x20005206
+ RNDGETENTCNT = 0x40045200
+ RNDGETPOOL = 0x40085202
+ RNDRESEEDCRNG = 0x20005207
+ RNDZAPENTCNT = 0x20005204
RTAX_ADVMSS = 0x8
RTAX_CC_ALGO = 0x10
RTAX_CWND = 0x7
@@ -1802,6 +1811,8 @@ const (
SECCOMP_MODE_STRICT = 0x1
SECURITYFS_MAGIC = 0x73636673
SELINUX_MAGIC = 0xf97cff8c
+ SFD_CLOEXEC = 0x80000
+ SFD_NONBLOCK = 0x800
SHUT_RD = 0x0
SHUT_RDWR = 0x2
SHUT_WR = 0x1
@@ -1963,6 +1974,17 @@ const (
SO_DETACH_FILTER = 0x1b
SO_DOMAIN = 0x27
SO_DONTROUTE = 0x5
+ SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
+ SO_EE_CODE_TXTIME_MISSED = 0x2
+ SO_EE_CODE_ZEROCOPY_COPIED = 0x1
+ SO_EE_ORIGIN_ICMP = 0x2
+ SO_EE_ORIGIN_ICMP6 = 0x3
+ SO_EE_ORIGIN_LOCAL = 0x1
+ SO_EE_ORIGIN_NONE = 0x0
+ SO_EE_ORIGIN_TIMESTAMPING = 0x4
+ SO_EE_ORIGIN_TXSTATUS = 0x4
+ SO_EE_ORIGIN_TXTIME = 0x6
+ SO_EE_ORIGIN_ZEROCOPY = 0x5
SO_ERROR = 0x4
SO_GET_FILTER = 0x1a
SO_INCOMING_CPU = 0x31
@@ -2094,6 +2116,7 @@ const (
TCOOFF = 0x0
TCOON = 0x1
TCP_CC_INFO = 0x1a
+ TCP_CM_INQ = 0x24
TCP_CONGESTION = 0xd
TCP_COOKIE_IN_ALWAYS = 0x1
TCP_COOKIE_MAX = 0x10
@@ -2108,6 +2131,7 @@ const (
TCP_FASTOPEN_KEY = 0x21
TCP_FASTOPEN_NO_COOKIE = 0x22
TCP_INFO = 0xb
+ TCP_INQ = 0x24
TCP_KEEPCNT = 0x6
TCP_KEEPIDLE = 0x4
TCP_KEEPINTVL = 0x5
@@ -2127,6 +2151,9 @@ const (
TCP_QUEUE_SEQ = 0x15
TCP_QUICKACK = 0xc
TCP_REPAIR = 0x13
+ TCP_REPAIR_OFF = 0x0
+ TCP_REPAIR_OFF_NO_WP = -0x1
+ TCP_REPAIR_ON = 0x1
TCP_REPAIR_OPTIONS = 0x16
TCP_REPAIR_QUEUE = 0x14
TCP_REPAIR_WINDOW = 0x1d
@@ -2141,6 +2168,7 @@ const (
TCP_ULP = 0x1f
TCP_USER_TIMEOUT = 0x12
TCP_WINDOW_CLAMP = 0xa
+ TCP_ZEROCOPY_RECEIVE = 0x23
TCSAFLUSH = 0x2
TCSBRK = 0x2000741d
TCSBRKP = 0x5425
@@ -2151,6 +2179,7 @@ const (
TCSETSF = 0x802c7416
TCSETSW = 0x802c7415
TCXONC = 0x2000741e
+ TIMER_ABSTIME = 0x1
TIOCCBRK = 0x5428
TIOCCONS = 0x541d
TIOCEXCL = 0x540c
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
index cfe9ef8b1b..5aea4b9093 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
@@ -41,7 +41,7 @@ const (
AF_KEY = 0xf
AF_LLC = 0x1a
AF_LOCAL = 0x1
- AF_MAX = 0x2c
+ AF_MAX = 0x2d
AF_MPLS = 0x1c
AF_NETBEUI = 0xd
AF_NETLINK = 0x10
@@ -706,6 +706,7 @@ const (
IN_ISDIR = 0x40000000
IN_LOOPBACKNET = 0x7f
IN_MASK_ADD = 0x20000000
+ IN_MASK_CREATE = 0x10000000
IN_MODIFY = 0x2
IN_MOVE = 0xc0
IN_MOVED_FROM = 0x40
@@ -777,6 +778,7 @@ const (
IPV6_MINHOPCOUNT = 0x49
IPV6_MTU = 0x18
IPV6_MTU_DISCOVER = 0x17
+ IPV6_MULTICAST_ALL = 0x1d
IPV6_MULTICAST_HOPS = 0x12
IPV6_MULTICAST_IF = 0x11
IPV6_MULTICAST_LOOP = 0x13
@@ -1525,6 +1527,13 @@ const (
RLIMIT_SIGPENDING = 0xb
RLIMIT_STACK = 0x3
RLIM_INFINITY = 0xffffffffffffffff
+ RNDADDENTROPY = 0x40085203
+ RNDADDTOENTCNT = 0x40045201
+ RNDCLEARPOOL = 0x5206
+ RNDGETENTCNT = 0x80045200
+ RNDGETPOOL = 0x80085202
+ RNDRESEEDCRNG = 0x5207
+ RNDZAPENTCNT = 0x5204
RTAX_ADVMSS = 0x8
RTAX_CC_ALGO = 0x10
RTAX_CWND = 0x7
@@ -1732,6 +1741,8 @@ const (
SECCOMP_MODE_STRICT = 0x1
SECURITYFS_MAGIC = 0x73636673
SELINUX_MAGIC = 0xf97cff8c
+ SFD_CLOEXEC = 0x80000
+ SFD_NONBLOCK = 0x800
SHUT_RD = 0x0
SHUT_RDWR = 0x2
SHUT_WR = 0x1
@@ -1893,6 +1904,17 @@ const (
SO_DETACH_FILTER = 0x1b
SO_DOMAIN = 0x27
SO_DONTROUTE = 0x5
+ SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
+ SO_EE_CODE_TXTIME_MISSED = 0x2
+ SO_EE_CODE_ZEROCOPY_COPIED = 0x1
+ SO_EE_ORIGIN_ICMP = 0x2
+ SO_EE_ORIGIN_ICMP6 = 0x3
+ SO_EE_ORIGIN_LOCAL = 0x1
+ SO_EE_ORIGIN_NONE = 0x0
+ SO_EE_ORIGIN_TIMESTAMPING = 0x4
+ SO_EE_ORIGIN_TXSTATUS = 0x4
+ SO_EE_ORIGIN_TXTIME = 0x6
+ SO_EE_ORIGIN_ZEROCOPY = 0x5
SO_ERROR = 0x4
SO_GET_FILTER = 0x1a
SO_INCOMING_CPU = 0x31
@@ -2026,6 +2048,7 @@ const (
TCOOFF = 0x0
TCOON = 0x1
TCP_CC_INFO = 0x1a
+ TCP_CM_INQ = 0x24
TCP_CONGESTION = 0xd
TCP_COOKIE_IN_ALWAYS = 0x1
TCP_COOKIE_MAX = 0x10
@@ -2040,6 +2063,7 @@ const (
TCP_FASTOPEN_KEY = 0x21
TCP_FASTOPEN_NO_COOKIE = 0x22
TCP_INFO = 0xb
+ TCP_INQ = 0x24
TCP_KEEPCNT = 0x6
TCP_KEEPIDLE = 0x4
TCP_KEEPINTVL = 0x5
@@ -2059,6 +2083,9 @@ const (
TCP_QUEUE_SEQ = 0x15
TCP_QUICKACK = 0xc
TCP_REPAIR = 0x13
+ TCP_REPAIR_OFF = 0x0
+ TCP_REPAIR_OFF_NO_WP = -0x1
+ TCP_REPAIR_ON = 0x1
TCP_REPAIR_OPTIONS = 0x16
TCP_REPAIR_QUEUE = 0x14
TCP_REPAIR_WINDOW = 0x1d
@@ -2073,6 +2100,7 @@ const (
TCP_ULP = 0x1f
TCP_USER_TIMEOUT = 0x12
TCP_WINDOW_CLAMP = 0xa
+ TCP_ZEROCOPY_RECEIVE = 0x23
TCSAFLUSH = 0x2
TCSBRK = 0x5409
TCSBRKP = 0x5425
@@ -2089,6 +2117,7 @@ const (
TCSETXF = 0x5434
TCSETXW = 0x5435
TCXONC = 0x540a
+ TIMER_ABSTIME = 0x1
TIOCCBRK = 0x5428
TIOCCONS = 0x541d
TIOCEXCL = 0x540c
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
index 1149661109..7f7c2e3e2f 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
@@ -41,7 +41,7 @@ const (
AF_KEY = 0xf
AF_LLC = 0x1a
AF_LOCAL = 0x1
- AF_MAX = 0x2c
+ AF_MAX = 0x2d
AF_MPLS = 0x1c
AF_NETBEUI = 0xd
AF_NETLINK = 0x10
@@ -706,6 +706,7 @@ const (
IN_ISDIR = 0x40000000
IN_LOOPBACKNET = 0x7f
IN_MASK_ADD = 0x20000000
+ IN_MASK_CREATE = 0x10000000
IN_MODIFY = 0x2
IN_MOVE = 0xc0
IN_MOVED_FROM = 0x40
@@ -777,6 +778,7 @@ const (
IPV6_MINHOPCOUNT = 0x49
IPV6_MTU = 0x18
IPV6_MTU_DISCOVER = 0x17
+ IPV6_MULTICAST_ALL = 0x1d
IPV6_MULTICAST_HOPS = 0x12
IPV6_MULTICAST_IF = 0x11
IPV6_MULTICAST_LOOP = 0x13
@@ -1598,6 +1600,13 @@ const (
RLIMIT_SIGPENDING = 0xb
RLIMIT_STACK = 0x3
RLIM_INFINITY = 0xffffffffffffffff
+ RNDADDENTROPY = 0x40085203
+ RNDADDTOENTCNT = 0x40045201
+ RNDCLEARPOOL = 0x5206
+ RNDGETENTCNT = 0x80045200
+ RNDGETPOOL = 0x80085202
+ RNDRESEEDCRNG = 0x5207
+ RNDZAPENTCNT = 0x5204
RTAX_ADVMSS = 0x8
RTAX_CC_ALGO = 0x10
RTAX_CWND = 0x7
@@ -1805,6 +1814,8 @@ const (
SECCOMP_MODE_STRICT = 0x1
SECURITYFS_MAGIC = 0x73636673
SELINUX_MAGIC = 0xf97cff8c
+ SFD_CLOEXEC = 0x80000
+ SFD_NONBLOCK = 0x800
SHUT_RD = 0x0
SHUT_RDWR = 0x2
SHUT_WR = 0x1
@@ -1966,6 +1977,17 @@ const (
SO_DETACH_FILTER = 0x1b
SO_DOMAIN = 0x27
SO_DONTROUTE = 0x5
+ SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
+ SO_EE_CODE_TXTIME_MISSED = 0x2
+ SO_EE_CODE_ZEROCOPY_COPIED = 0x1
+ SO_EE_ORIGIN_ICMP = 0x2
+ SO_EE_ORIGIN_ICMP6 = 0x3
+ SO_EE_ORIGIN_LOCAL = 0x1
+ SO_EE_ORIGIN_NONE = 0x0
+ SO_EE_ORIGIN_TIMESTAMPING = 0x4
+ SO_EE_ORIGIN_TXSTATUS = 0x4
+ SO_EE_ORIGIN_TXTIME = 0x6
+ SO_EE_ORIGIN_ZEROCOPY = 0x5
SO_ERROR = 0x4
SO_GET_FILTER = 0x1a
SO_INCOMING_CPU = 0x31
@@ -2099,6 +2121,7 @@ const (
TCOOFF = 0x0
TCOON = 0x1
TCP_CC_INFO = 0x1a
+ TCP_CM_INQ = 0x24
TCP_CONGESTION = 0xd
TCP_COOKIE_IN_ALWAYS = 0x1
TCP_COOKIE_MAX = 0x10
@@ -2113,6 +2136,7 @@ const (
TCP_FASTOPEN_KEY = 0x21
TCP_FASTOPEN_NO_COOKIE = 0x22
TCP_INFO = 0xb
+ TCP_INQ = 0x24
TCP_KEEPCNT = 0x6
TCP_KEEPIDLE = 0x4
TCP_KEEPINTVL = 0x5
@@ -2132,6 +2156,9 @@ const (
TCP_QUEUE_SEQ = 0x15
TCP_QUICKACK = 0xc
TCP_REPAIR = 0x13
+ TCP_REPAIR_OFF = 0x0
+ TCP_REPAIR_OFF_NO_WP = -0x1
+ TCP_REPAIR_ON = 0x1
TCP_REPAIR_OPTIONS = 0x16
TCP_REPAIR_QUEUE = 0x14
TCP_REPAIR_WINDOW = 0x1d
@@ -2146,6 +2173,7 @@ const (
TCP_ULP = 0x1f
TCP_USER_TIMEOUT = 0x12
TCP_WINDOW_CLAMP = 0xa
+ TCP_ZEROCOPY_RECEIVE = 0x23
TCSAFLUSH = 0x2
TCSBRK = 0x5409
TCSBRKP = 0x5425
@@ -2162,6 +2190,7 @@ const (
TCSETXF = 0x5434
TCSETXW = 0x5435
TCXONC = 0x540a
+ TIMER_ABSTIME = 0x1
TIOCCBRK = 0x5428
TIOCCONS = 0x541d
TIOCEXCL = 0x540c
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
index 036f3247c7..968e21fd68 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
@@ -41,7 +41,7 @@ const (
AF_KEY = 0xf
AF_LLC = 0x1a
AF_LOCAL = 0x1
- AF_MAX = 0x2c
+ AF_MAX = 0x2d
AF_MPLS = 0x1c
AF_NETBEUI = 0xd
AF_NETLINK = 0x10
@@ -710,6 +710,7 @@ const (
IN_ISDIR = 0x40000000
IN_LOOPBACKNET = 0x7f
IN_MASK_ADD = 0x20000000
+ IN_MASK_CREATE = 0x10000000
IN_MODIFY = 0x2
IN_MOVE = 0xc0
IN_MOVED_FROM = 0x40
@@ -781,6 +782,7 @@ const (
IPV6_MINHOPCOUNT = 0x49
IPV6_MTU = 0x18
IPV6_MTU_DISCOVER = 0x17
+ IPV6_MULTICAST_ALL = 0x1d
IPV6_MULTICAST_HOPS = 0x12
IPV6_MULTICAST_IF = 0x11
IPV6_MULTICAST_LOOP = 0x13
@@ -1590,6 +1592,13 @@ const (
RLIMIT_SIGPENDING = 0xb
RLIMIT_STACK = 0x3
RLIM_INFINITY = 0xffffffffffffffff
+ RNDADDENTROPY = 0x80085203
+ RNDADDTOENTCNT = 0x80045201
+ RNDCLEARPOOL = 0x20005206
+ RNDGETENTCNT = 0x40045200
+ RNDGETPOOL = 0x40085202
+ RNDRESEEDCRNG = 0x20005207
+ RNDZAPENTCNT = 0x20005204
RTAX_ADVMSS = 0x8
RTAX_CC_ALGO = 0x10
RTAX_CWND = 0x7
@@ -1797,6 +1806,8 @@ const (
SECCOMP_MODE_STRICT = 0x1
SECURITYFS_MAGIC = 0x73636673
SELINUX_MAGIC = 0xf97cff8c
+ SFD_CLOEXEC = 0x400000
+ SFD_NONBLOCK = 0x4000
SHUT_RD = 0x0
SHUT_RDWR = 0x2
SHUT_WR = 0x1
@@ -1958,6 +1969,17 @@ const (
SO_DETACH_FILTER = 0x1b
SO_DOMAIN = 0x1029
SO_DONTROUTE = 0x10
+ SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
+ SO_EE_CODE_TXTIME_MISSED = 0x2
+ SO_EE_CODE_ZEROCOPY_COPIED = 0x1
+ SO_EE_ORIGIN_ICMP = 0x2
+ SO_EE_ORIGIN_ICMP6 = 0x3
+ SO_EE_ORIGIN_LOCAL = 0x1
+ SO_EE_ORIGIN_NONE = 0x0
+ SO_EE_ORIGIN_TIMESTAMPING = 0x4
+ SO_EE_ORIGIN_TXSTATUS = 0x4
+ SO_EE_ORIGIN_TXTIME = 0x6
+ SO_EE_ORIGIN_ZEROCOPY = 0x5
SO_ERROR = 0x1007
SO_GET_FILTER = 0x1a
SO_INCOMING_CPU = 0x33
@@ -2090,6 +2112,7 @@ const (
TCOOFF = 0x0
TCOON = 0x1
TCP_CC_INFO = 0x1a
+ TCP_CM_INQ = 0x24
TCP_CONGESTION = 0xd
TCP_COOKIE_IN_ALWAYS = 0x1
TCP_COOKIE_MAX = 0x10
@@ -2104,6 +2127,7 @@ const (
TCP_FASTOPEN_KEY = 0x21
TCP_FASTOPEN_NO_COOKIE = 0x22
TCP_INFO = 0xb
+ TCP_INQ = 0x24
TCP_KEEPCNT = 0x6
TCP_KEEPIDLE = 0x4
TCP_KEEPINTVL = 0x5
@@ -2123,6 +2147,9 @@ const (
TCP_QUEUE_SEQ = 0x15
TCP_QUICKACK = 0xc
TCP_REPAIR = 0x13
+ TCP_REPAIR_OFF = 0x0
+ TCP_REPAIR_OFF_NO_WP = -0x1
+ TCP_REPAIR_ON = 0x1
TCP_REPAIR_OPTIONS = 0x16
TCP_REPAIR_QUEUE = 0x14
TCP_REPAIR_WINDOW = 0x1d
@@ -2137,6 +2164,7 @@ const (
TCP_ULP = 0x1f
TCP_USER_TIMEOUT = 0x12
TCP_WINDOW_CLAMP = 0xa
+ TCP_ZEROCOPY_RECEIVE = 0x23
TCSAFLUSH = 0x2
TCSBRK = 0x20005405
TCSBRKP = 0x5425
@@ -2150,6 +2178,7 @@ const (
TCSETSW = 0x8024540a
TCSETSW2 = 0x802c540e
TCXONC = 0x20005406
+ TIMER_ABSTIME = 0x1
TIOCCBRK = 0x2000747a
TIOCCONS = 0x20007424
TIOCEXCL = 0x2000740d
diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go
new file mode 100644
index 0000000000..fb6c60441d
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go
@@ -0,0 +1,1762 @@
+// mkerrors.sh -m64
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build arm64,netbsd
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m64 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+ AF_APPLETALK = 0x10
+ AF_ARP = 0x1c
+ AF_BLUETOOTH = 0x1f
+ AF_CCITT = 0xa
+ AF_CHAOS = 0x5
+ AF_CNT = 0x15
+ AF_COIP = 0x14
+ AF_DATAKIT = 0x9
+ AF_DECnet = 0xc
+ AF_DLI = 0xd
+ AF_E164 = 0x1a
+ AF_ECMA = 0x8
+ AF_HYLINK = 0xf
+ AF_IEEE80211 = 0x20
+ AF_IMPLINK = 0x3
+ AF_INET = 0x2
+ AF_INET6 = 0x18
+ AF_IPX = 0x17
+ AF_ISDN = 0x1a
+ AF_ISO = 0x7
+ AF_LAT = 0xe
+ AF_LINK = 0x12
+ AF_LOCAL = 0x1
+ AF_MAX = 0x23
+ AF_MPLS = 0x21
+ AF_NATM = 0x1b
+ AF_NS = 0x6
+ AF_OROUTE = 0x11
+ AF_OSI = 0x7
+ AF_PUP = 0x4
+ AF_ROUTE = 0x22
+ AF_SNA = 0xb
+ AF_UNIX = 0x1
+ AF_UNSPEC = 0x0
+ ARPHRD_ARCNET = 0x7
+ ARPHRD_ETHER = 0x1
+ ARPHRD_FRELAY = 0xf
+ ARPHRD_IEEE1394 = 0x18
+ ARPHRD_IEEE802 = 0x6
+ ARPHRD_STRIP = 0x17
+ B0 = 0x0
+ B110 = 0x6e
+ B115200 = 0x1c200
+ B1200 = 0x4b0
+ B134 = 0x86
+ B14400 = 0x3840
+ B150 = 0x96
+ B1800 = 0x708
+ B19200 = 0x4b00
+ B200 = 0xc8
+ B230400 = 0x38400
+ B2400 = 0x960
+ B28800 = 0x7080
+ B300 = 0x12c
+ B38400 = 0x9600
+ B460800 = 0x70800
+ B4800 = 0x12c0
+ B50 = 0x32
+ B57600 = 0xe100
+ B600 = 0x258
+ B7200 = 0x1c20
+ B75 = 0x4b
+ B76800 = 0x12c00
+ B921600 = 0xe1000
+ B9600 = 0x2580
+ BIOCFEEDBACK = 0x8004427d
+ BIOCFLUSH = 0x20004268
+ BIOCGBLEN = 0x40044266
+ BIOCGDLT = 0x4004426a
+ BIOCGDLTLIST = 0xc0104277
+ BIOCGETIF = 0x4090426b
+ BIOCGFEEDBACK = 0x4004427c
+ BIOCGHDRCMPLT = 0x40044274
+ BIOCGRTIMEOUT = 0x4010427b
+ BIOCGSEESENT = 0x40044278
+ BIOCGSTATS = 0x4080426f
+ BIOCGSTATSOLD = 0x4008426f
+ BIOCIMMEDIATE = 0x80044270
+ BIOCPROMISC = 0x20004269
+ BIOCSBLEN = 0xc0044266
+ BIOCSDLT = 0x80044276
+ BIOCSETF = 0x80104267
+ BIOCSETIF = 0x8090426c
+ BIOCSFEEDBACK = 0x8004427d
+ BIOCSHDRCMPLT = 0x80044275
+ BIOCSRTIMEOUT = 0x8010427a
+ BIOCSSEESENT = 0x80044279
+ BIOCSTCPF = 0x80104272
+ BIOCSUDPF = 0x80104273
+ BIOCVERSION = 0x40044271
+ BPF_A = 0x10
+ BPF_ABS = 0x20
+ BPF_ADD = 0x0
+ BPF_ALIGNMENT = 0x8
+ BPF_ALIGNMENT32 = 0x4
+ BPF_ALU = 0x4
+ BPF_AND = 0x50
+ BPF_B = 0x10
+ BPF_DFLTBUFSIZE = 0x100000
+ BPF_DIV = 0x30
+ BPF_H = 0x8
+ BPF_IMM = 0x0
+ BPF_IND = 0x40
+ BPF_JA = 0x0
+ BPF_JEQ = 0x10
+ BPF_JGE = 0x30
+ BPF_JGT = 0x20
+ BPF_JMP = 0x5
+ BPF_JSET = 0x40
+ BPF_K = 0x0
+ BPF_LD = 0x0
+ BPF_LDX = 0x1
+ BPF_LEN = 0x80
+ BPF_LSH = 0x60
+ BPF_MAJOR_VERSION = 0x1
+ BPF_MAXBUFSIZE = 0x1000000
+ BPF_MAXINSNS = 0x200
+ BPF_MEM = 0x60
+ BPF_MEMWORDS = 0x10
+ BPF_MINBUFSIZE = 0x20
+ BPF_MINOR_VERSION = 0x1
+ BPF_MISC = 0x7
+ BPF_MSH = 0xa0
+ BPF_MUL = 0x20
+ BPF_NEG = 0x80
+ BPF_OR = 0x40
+ BPF_RELEASE = 0x30bb6
+ BPF_RET = 0x6
+ BPF_RSH = 0x70
+ BPF_ST = 0x2
+ BPF_STX = 0x3
+ BPF_SUB = 0x10
+ BPF_TAX = 0x0
+ BPF_TXA = 0x80
+ BPF_W = 0x0
+ BPF_X = 0x8
+ BRKINT = 0x2
+ CFLUSH = 0xf
+ CLOCAL = 0x8000
+ CLONE_CSIGNAL = 0xff
+ CLONE_FILES = 0x400
+ CLONE_FS = 0x200
+ CLONE_PID = 0x1000
+ CLONE_PTRACE = 0x2000
+ CLONE_SIGHAND = 0x800
+ CLONE_VFORK = 0x4000
+ CLONE_VM = 0x100
+ CREAD = 0x800
+ CRTSCTS = 0x10000
+ CS5 = 0x0
+ CS6 = 0x100
+ CS7 = 0x200
+ CS8 = 0x300
+ CSIZE = 0x300
+ CSTART = 0x11
+ CSTATUS = 0x14
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
+ CTL_HW = 0x6
+ CTL_KERN = 0x1
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ CTL_QUERY = -0x2
+ DIOCBSFLUSH = 0x20006478
+ DLT_A429 = 0xb8
+ DLT_A653_ICM = 0xb9
+ DLT_AIRONET_HEADER = 0x78
+ DLT_AOS = 0xde
+ DLT_APPLE_IP_OVER_IEEE1394 = 0x8a
+ DLT_ARCNET = 0x7
+ DLT_ARCNET_LINUX = 0x81
+ DLT_ATM_CLIP = 0x13
+ DLT_ATM_RFC1483 = 0xb
+ DLT_AURORA = 0x7e
+ DLT_AX25 = 0x3
+ DLT_AX25_KISS = 0xca
+ DLT_BACNET_MS_TP = 0xa5
+ DLT_BLUETOOTH_HCI_H4 = 0xbb
+ DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9
+ DLT_CAN20B = 0xbe
+ DLT_CAN_SOCKETCAN = 0xe3
+ DLT_CHAOS = 0x5
+ DLT_CISCO_IOS = 0x76
+ DLT_C_HDLC = 0x68
+ DLT_C_HDLC_WITH_DIR = 0xcd
+ DLT_DECT = 0xdd
+ DLT_DOCSIS = 0x8f
+ DLT_ECONET = 0x73
+ DLT_EN10MB = 0x1
+ DLT_EN3MB = 0x2
+ DLT_ENC = 0x6d
+ DLT_ERF = 0xc5
+ DLT_ERF_ETH = 0xaf
+ DLT_ERF_POS = 0xb0
+ DLT_FC_2 = 0xe0
+ DLT_FC_2_WITH_FRAME_DELIMS = 0xe1
+ DLT_FDDI = 0xa
+ DLT_FLEXRAY = 0xd2
+ DLT_FRELAY = 0x6b
+ DLT_FRELAY_WITH_DIR = 0xce
+ DLT_GCOM_SERIAL = 0xad
+ DLT_GCOM_T1E1 = 0xac
+ DLT_GPF_F = 0xab
+ DLT_GPF_T = 0xaa
+ DLT_GPRS_LLC = 0xa9
+ DLT_GSMTAP_ABIS = 0xda
+ DLT_GSMTAP_UM = 0xd9
+ DLT_HDLC = 0x10
+ DLT_HHDLC = 0x79
+ DLT_HIPPI = 0xf
+ DLT_IBM_SN = 0x92
+ DLT_IBM_SP = 0x91
+ DLT_IEEE802 = 0x6
+ DLT_IEEE802_11 = 0x69
+ DLT_IEEE802_11_RADIO = 0x7f
+ DLT_IEEE802_11_RADIO_AVS = 0xa3
+ DLT_IEEE802_15_4 = 0xc3
+ DLT_IEEE802_15_4_LINUX = 0xbf
+ DLT_IEEE802_15_4_NONASK_PHY = 0xd7
+ DLT_IEEE802_16_MAC_CPS = 0xbc
+ DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1
+ DLT_IPMB = 0xc7
+ DLT_IPMB_LINUX = 0xd1
+ DLT_IPNET = 0xe2
+ DLT_IPV4 = 0xe4
+ DLT_IPV6 = 0xe5
+ DLT_IP_OVER_FC = 0x7a
+ DLT_JUNIPER_ATM1 = 0x89
+ DLT_JUNIPER_ATM2 = 0x87
+ DLT_JUNIPER_CHDLC = 0xb5
+ DLT_JUNIPER_ES = 0x84
+ DLT_JUNIPER_ETHER = 0xb2
+ DLT_JUNIPER_FRELAY = 0xb4
+ DLT_JUNIPER_GGSN = 0x85
+ DLT_JUNIPER_ISM = 0xc2
+ DLT_JUNIPER_MFR = 0x86
+ DLT_JUNIPER_MLFR = 0x83
+ DLT_JUNIPER_MLPPP = 0x82
+ DLT_JUNIPER_MONITOR = 0xa4
+ DLT_JUNIPER_PIC_PEER = 0xae
+ DLT_JUNIPER_PPP = 0xb3
+ DLT_JUNIPER_PPPOE = 0xa7
+ DLT_JUNIPER_PPPOE_ATM = 0xa8
+ DLT_JUNIPER_SERVICES = 0x88
+ DLT_JUNIPER_ST = 0xc8
+ DLT_JUNIPER_VP = 0xb7
+ DLT_LAPB_WITH_DIR = 0xcf
+ DLT_LAPD = 0xcb
+ DLT_LIN = 0xd4
+ DLT_LINUX_EVDEV = 0xd8
+ DLT_LINUX_IRDA = 0x90
+ DLT_LINUX_LAPD = 0xb1
+ DLT_LINUX_SLL = 0x71
+ DLT_LOOP = 0x6c
+ DLT_LTALK = 0x72
+ DLT_MFR = 0xb6
+ DLT_MOST = 0xd3
+ DLT_MPLS = 0xdb
+ DLT_MTP2 = 0x8c
+ DLT_MTP2_WITH_PHDR = 0x8b
+ DLT_MTP3 = 0x8d
+ DLT_NULL = 0x0
+ DLT_PCI_EXP = 0x7d
+ DLT_PFLOG = 0x75
+ DLT_PFSYNC = 0x12
+ DLT_PPI = 0xc0
+ DLT_PPP = 0x9
+ DLT_PPP_BSDOS = 0xe
+ DLT_PPP_ETHER = 0x33
+ DLT_PPP_PPPD = 0xa6
+ DLT_PPP_SERIAL = 0x32
+ DLT_PPP_WITH_DIR = 0xcc
+ DLT_PRISM_HEADER = 0x77
+ DLT_PRONET = 0x4
+ DLT_RAIF1 = 0xc6
+ DLT_RAW = 0xc
+ DLT_RAWAF_MASK = 0x2240000
+ DLT_RIO = 0x7c
+ DLT_SCCP = 0x8e
+ DLT_SITA = 0xc4
+ DLT_SLIP = 0x8
+ DLT_SLIP_BSDOS = 0xd
+ DLT_SUNATM = 0x7b
+ DLT_SYMANTEC_FIREWALL = 0x63
+ DLT_TZSP = 0x80
+ DLT_USB = 0xba
+ DLT_USB_LINUX = 0xbd
+ DLT_USB_LINUX_MMAPPED = 0xdc
+ DLT_WIHART = 0xdf
+ DLT_X2E_SERIAL = 0xd5
+ DLT_X2E_XORAYA = 0xd6
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+ DT_FIFO = 0x1
+ DT_LNK = 0xa
+ DT_REG = 0x8
+ DT_SOCK = 0xc
+ DT_UNKNOWN = 0x0
+ DT_WHT = 0xe
+ ECHO = 0x8
+ ECHOCTL = 0x40
+ ECHOE = 0x2
+ ECHOK = 0x4
+ ECHOKE = 0x1
+ ECHONL = 0x10
+ ECHOPRT = 0x20
+ EMUL_LINUX = 0x1
+ EMUL_LINUX32 = 0x5
+ EMUL_MAXID = 0x6
+ ETHERCAP_JUMBO_MTU = 0x4
+ ETHERCAP_VLAN_HWTAGGING = 0x2
+ ETHERCAP_VLAN_MTU = 0x1
+ ETHERMIN = 0x2e
+ ETHERMTU = 0x5dc
+ ETHERMTU_JUMBO = 0x2328
+ ETHERTYPE_8023 = 0x4
+ ETHERTYPE_AARP = 0x80f3
+ ETHERTYPE_ACCTON = 0x8390
+ ETHERTYPE_AEONIC = 0x8036
+ ETHERTYPE_ALPHA = 0x814a
+ ETHERTYPE_AMBER = 0x6008
+ ETHERTYPE_AMOEBA = 0x8145
+ ETHERTYPE_APOLLO = 0x80f7
+ ETHERTYPE_APOLLODOMAIN = 0x8019
+ ETHERTYPE_APPLETALK = 0x809b
+ ETHERTYPE_APPLITEK = 0x80c7
+ ETHERTYPE_ARGONAUT = 0x803a
+ ETHERTYPE_ARP = 0x806
+ ETHERTYPE_AT = 0x809b
+ ETHERTYPE_ATALK = 0x809b
+ ETHERTYPE_ATOMIC = 0x86df
+ ETHERTYPE_ATT = 0x8069
+ ETHERTYPE_ATTSTANFORD = 0x8008
+ ETHERTYPE_AUTOPHON = 0x806a
+ ETHERTYPE_AXIS = 0x8856
+ ETHERTYPE_BCLOOP = 0x9003
+ ETHERTYPE_BOFL = 0x8102
+ ETHERTYPE_CABLETRON = 0x7034
+ ETHERTYPE_CHAOS = 0x804
+ ETHERTYPE_COMDESIGN = 0x806c
+ ETHERTYPE_COMPUGRAPHIC = 0x806d
+ ETHERTYPE_COUNTERPOINT = 0x8062
+ ETHERTYPE_CRONUS = 0x8004
+ ETHERTYPE_CRONUSVLN = 0x8003
+ ETHERTYPE_DCA = 0x1234
+ ETHERTYPE_DDE = 0x807b
+ ETHERTYPE_DEBNI = 0xaaaa
+ ETHERTYPE_DECAM = 0x8048
+ ETHERTYPE_DECCUST = 0x6006
+ ETHERTYPE_DECDIAG = 0x6005
+ ETHERTYPE_DECDNS = 0x803c
+ ETHERTYPE_DECDTS = 0x803e
+ ETHERTYPE_DECEXPER = 0x6000
+ ETHERTYPE_DECLAST = 0x8041
+ ETHERTYPE_DECLTM = 0x803f
+ ETHERTYPE_DECMUMPS = 0x6009
+ ETHERTYPE_DECNETBIOS = 0x8040
+ ETHERTYPE_DELTACON = 0x86de
+ ETHERTYPE_DIDDLE = 0x4321
+ ETHERTYPE_DLOG1 = 0x660
+ ETHERTYPE_DLOG2 = 0x661
+ ETHERTYPE_DN = 0x6003
+ ETHERTYPE_DOGFIGHT = 0x1989
+ ETHERTYPE_DSMD = 0x8039
+ ETHERTYPE_ECMA = 0x803
+ ETHERTYPE_ENCRYPT = 0x803d
+ ETHERTYPE_ES = 0x805d
+ ETHERTYPE_EXCELAN = 0x8010
+ ETHERTYPE_EXPERDATA = 0x8049
+ ETHERTYPE_FLIP = 0x8146
+ ETHERTYPE_FLOWCONTROL = 0x8808
+ ETHERTYPE_FRARP = 0x808
+ ETHERTYPE_GENDYN = 0x8068
+ ETHERTYPE_HAYES = 0x8130
+ ETHERTYPE_HIPPI_FP = 0x8180
+ ETHERTYPE_HITACHI = 0x8820
+ ETHERTYPE_HP = 0x8005
+ ETHERTYPE_IEEEPUP = 0xa00
+ ETHERTYPE_IEEEPUPAT = 0xa01
+ ETHERTYPE_IMLBL = 0x4c42
+ ETHERTYPE_IMLBLDIAG = 0x424c
+ ETHERTYPE_IP = 0x800
+ ETHERTYPE_IPAS = 0x876c
+ ETHERTYPE_IPV6 = 0x86dd
+ ETHERTYPE_IPX = 0x8137
+ ETHERTYPE_IPXNEW = 0x8037
+ ETHERTYPE_KALPANA = 0x8582
+ ETHERTYPE_LANBRIDGE = 0x8038
+ ETHERTYPE_LANPROBE = 0x8888
+ ETHERTYPE_LAT = 0x6004
+ ETHERTYPE_LBACK = 0x9000
+ ETHERTYPE_LITTLE = 0x8060
+ ETHERTYPE_LOGICRAFT = 0x8148
+ ETHERTYPE_LOOPBACK = 0x9000
+ ETHERTYPE_MATRA = 0x807a
+ ETHERTYPE_MAX = 0xffff
+ ETHERTYPE_MERIT = 0x807c
+ ETHERTYPE_MICP = 0x873a
+ ETHERTYPE_MOPDL = 0x6001
+ ETHERTYPE_MOPRC = 0x6002
+ ETHERTYPE_MOTOROLA = 0x818d
+ ETHERTYPE_MPLS = 0x8847
+ ETHERTYPE_MPLS_MCAST = 0x8848
+ ETHERTYPE_MUMPS = 0x813f
+ ETHERTYPE_NBPCC = 0x3c04
+ ETHERTYPE_NBPCLAIM = 0x3c09
+ ETHERTYPE_NBPCLREQ = 0x3c05
+ ETHERTYPE_NBPCLRSP = 0x3c06
+ ETHERTYPE_NBPCREQ = 0x3c02
+ ETHERTYPE_NBPCRSP = 0x3c03
+ ETHERTYPE_NBPDG = 0x3c07
+ ETHERTYPE_NBPDGB = 0x3c08
+ ETHERTYPE_NBPDLTE = 0x3c0a
+ ETHERTYPE_NBPRAR = 0x3c0c
+ ETHERTYPE_NBPRAS = 0x3c0b
+ ETHERTYPE_NBPRST = 0x3c0d
+ ETHERTYPE_NBPSCD = 0x3c01
+ ETHERTYPE_NBPVCD = 0x3c00
+ ETHERTYPE_NBS = 0x802
+ ETHERTYPE_NCD = 0x8149
+ ETHERTYPE_NESTAR = 0x8006
+ ETHERTYPE_NETBEUI = 0x8191
+ ETHERTYPE_NOVELL = 0x8138
+ ETHERTYPE_NS = 0x600
+ ETHERTYPE_NSAT = 0x601
+ ETHERTYPE_NSCOMPAT = 0x807
+ ETHERTYPE_NTRAILER = 0x10
+ ETHERTYPE_OS9 = 0x7007
+ ETHERTYPE_OS9NET = 0x7009
+ ETHERTYPE_PACER = 0x80c6
+ ETHERTYPE_PAE = 0x888e
+ ETHERTYPE_PCS = 0x4242
+ ETHERTYPE_PLANNING = 0x8044
+ ETHERTYPE_PPP = 0x880b
+ ETHERTYPE_PPPOE = 0x8864
+ ETHERTYPE_PPPOEDISC = 0x8863
+ ETHERTYPE_PRIMENTS = 0x7031
+ ETHERTYPE_PUP = 0x200
+ ETHERTYPE_PUPAT = 0x200
+ ETHERTYPE_RACAL = 0x7030
+ ETHERTYPE_RATIONAL = 0x8150
+ ETHERTYPE_RAWFR = 0x6559
+ ETHERTYPE_RCL = 0x1995
+ ETHERTYPE_RDP = 0x8739
+ ETHERTYPE_RETIX = 0x80f2
+ ETHERTYPE_REVARP = 0x8035
+ ETHERTYPE_SCA = 0x6007
+ ETHERTYPE_SECTRA = 0x86db
+ ETHERTYPE_SECUREDATA = 0x876d
+ ETHERTYPE_SGITW = 0x817e
+ ETHERTYPE_SG_BOUNCE = 0x8016
+ ETHERTYPE_SG_DIAG = 0x8013
+ ETHERTYPE_SG_NETGAMES = 0x8014
+ ETHERTYPE_SG_RESV = 0x8015
+ ETHERTYPE_SIMNET = 0x5208
+ ETHERTYPE_SLOWPROTOCOLS = 0x8809
+ ETHERTYPE_SNA = 0x80d5
+ ETHERTYPE_SNMP = 0x814c
+ ETHERTYPE_SONIX = 0xfaf5
+ ETHERTYPE_SPIDER = 0x809f
+ ETHERTYPE_SPRITE = 0x500
+ ETHERTYPE_STP = 0x8181
+ ETHERTYPE_TALARIS = 0x812b
+ ETHERTYPE_TALARISMC = 0x852b
+ ETHERTYPE_TCPCOMP = 0x876b
+ ETHERTYPE_TCPSM = 0x9002
+ ETHERTYPE_TEC = 0x814f
+ ETHERTYPE_TIGAN = 0x802f
+ ETHERTYPE_TRAIL = 0x1000
+ ETHERTYPE_TRANSETHER = 0x6558
+ ETHERTYPE_TYMSHARE = 0x802e
+ ETHERTYPE_UBBST = 0x7005
+ ETHERTYPE_UBDEBUG = 0x900
+ ETHERTYPE_UBDIAGLOOP = 0x7002
+ ETHERTYPE_UBDL = 0x7000
+ ETHERTYPE_UBNIU = 0x7001
+ ETHERTYPE_UBNMC = 0x7003
+ ETHERTYPE_VALID = 0x1600
+ ETHERTYPE_VARIAN = 0x80dd
+ ETHERTYPE_VAXELN = 0x803b
+ ETHERTYPE_VEECO = 0x8067
+ ETHERTYPE_VEXP = 0x805b
+ ETHERTYPE_VGLAB = 0x8131
+ ETHERTYPE_VINES = 0xbad
+ ETHERTYPE_VINESECHO = 0xbaf
+ ETHERTYPE_VINESLOOP = 0xbae
+ ETHERTYPE_VITAL = 0xff00
+ ETHERTYPE_VLAN = 0x8100
+ ETHERTYPE_VLTLMAN = 0x8080
+ ETHERTYPE_VPROD = 0x805c
+ ETHERTYPE_VURESERVED = 0x8147
+ ETHERTYPE_WATERLOO = 0x8130
+ ETHERTYPE_WELLFLEET = 0x8103
+ ETHERTYPE_X25 = 0x805
+ ETHERTYPE_X75 = 0x801
+ ETHERTYPE_XNSSM = 0x9001
+ ETHERTYPE_XTP = 0x817d
+ ETHER_ADDR_LEN = 0x6
+ ETHER_CRC_LEN = 0x4
+ ETHER_CRC_POLY_BE = 0x4c11db6
+ ETHER_CRC_POLY_LE = 0xedb88320
+ ETHER_HDR_LEN = 0xe
+ ETHER_MAX_LEN = 0x5ee
+ ETHER_MAX_LEN_JUMBO = 0x233a
+ ETHER_MIN_LEN = 0x40
+ ETHER_PPPOE_ENCAP_LEN = 0x8
+ ETHER_TYPE_LEN = 0x2
+ ETHER_VLAN_ENCAP_LEN = 0x4
+ EVFILT_AIO = 0x2
+ EVFILT_PROC = 0x4
+ EVFILT_READ = 0x0
+ EVFILT_SIGNAL = 0x5
+ EVFILT_SYSCOUNT = 0x7
+ EVFILT_TIMER = 0x6
+ EVFILT_VNODE = 0x3
+ EVFILT_WRITE = 0x1
+ EV_ADD = 0x1
+ EV_CLEAR = 0x20
+ EV_DELETE = 0x2
+ EV_DISABLE = 0x8
+ EV_ENABLE = 0x4
+ EV_EOF = 0x8000
+ EV_ERROR = 0x4000
+ EV_FLAG1 = 0x2000
+ EV_ONESHOT = 0x10
+ EV_SYSFLAGS = 0xf000
+ EXTA = 0x4b00
+ EXTATTR_CMD_START = 0x1
+ EXTATTR_CMD_STOP = 0x2
+ EXTATTR_NAMESPACE_SYSTEM = 0x2
+ EXTATTR_NAMESPACE_USER = 0x1
+ EXTB = 0x9600
+ EXTPROC = 0x800
+ FD_CLOEXEC = 0x1
+ FD_SETSIZE = 0x100
+ FLUSHO = 0x800000
+ F_CLOSEM = 0xa
+ F_DUPFD = 0x0
+ F_DUPFD_CLOEXEC = 0xc
+ F_FSCTL = -0x80000000
+ F_FSDIRMASK = 0x70000000
+ F_FSIN = 0x10000000
+ F_FSINOUT = 0x30000000
+ F_FSOUT = 0x20000000
+ F_FSPRIV = 0x8000
+ F_FSVOID = 0x40000000
+ F_GETFD = 0x1
+ F_GETFL = 0x3
+ F_GETLK = 0x7
+ F_GETNOSIGPIPE = 0xd
+ F_GETOWN = 0x5
+ F_MAXFD = 0xb
+ F_OK = 0x0
+ F_PARAM_MASK = 0xfff
+ F_PARAM_MAX = 0xfff
+ F_RDLCK = 0x1
+ F_SETFD = 0x2
+ F_SETFL = 0x4
+ F_SETLK = 0x8
+ F_SETLKW = 0x9
+ F_SETNOSIGPIPE = 0xe
+ F_SETOWN = 0x6
+ F_UNLCK = 0x2
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
+ HW_MACHINE = 0x1
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+ IEXTEN = 0x400
+ IFAN_ARRIVAL = 0x0
+ IFAN_DEPARTURE = 0x1
+ IFA_ROUTE = 0x1
+ IFF_ALLMULTI = 0x200
+ IFF_BROADCAST = 0x2
+ IFF_CANTCHANGE = 0x8f52
+ IFF_DEBUG = 0x4
+ IFF_LINK0 = 0x1000
+ IFF_LINK1 = 0x2000
+ IFF_LINK2 = 0x4000
+ IFF_LOOPBACK = 0x8
+ IFF_MULTICAST = 0x8000
+ IFF_NOARP = 0x80
+ IFF_NOTRAILERS = 0x20
+ IFF_OACTIVE = 0x400
+ IFF_POINTOPOINT = 0x10
+ IFF_PROMISC = 0x100
+ IFF_RUNNING = 0x40
+ IFF_SIMPLEX = 0x800
+ IFF_UP = 0x1
+ IFNAMSIZ = 0x10
+ IFT_1822 = 0x2
+ IFT_A12MPPSWITCH = 0x82
+ IFT_AAL2 = 0xbb
+ IFT_AAL5 = 0x31
+ IFT_ADSL = 0x5e
+ IFT_AFLANE8023 = 0x3b
+ IFT_AFLANE8025 = 0x3c
+ IFT_ARAP = 0x58
+ IFT_ARCNET = 0x23
+ IFT_ARCNETPLUS = 0x24
+ IFT_ASYNC = 0x54
+ IFT_ATM = 0x25
+ IFT_ATMDXI = 0x69
+ IFT_ATMFUNI = 0x6a
+ IFT_ATMIMA = 0x6b
+ IFT_ATMLOGICAL = 0x50
+ IFT_ATMRADIO = 0xbd
+ IFT_ATMSUBINTERFACE = 0x86
+ IFT_ATMVCIENDPT = 0xc2
+ IFT_ATMVIRTUAL = 0x95
+ IFT_BGPPOLICYACCOUNTING = 0xa2
+ IFT_BRIDGE = 0xd1
+ IFT_BSC = 0x53
+ IFT_CARP = 0xf8
+ IFT_CCTEMUL = 0x3d
+ IFT_CEPT = 0x13
+ IFT_CES = 0x85
+ IFT_CHANNEL = 0x46
+ IFT_CNR = 0x55
+ IFT_COFFEE = 0x84
+ IFT_COMPOSITELINK = 0x9b
+ IFT_DCN = 0x8d
+ IFT_DIGITALPOWERLINE = 0x8a
+ IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
+ IFT_DLSW = 0x4a
+ IFT_DOCSCABLEDOWNSTREAM = 0x80
+ IFT_DOCSCABLEMACLAYER = 0x7f
+ IFT_DOCSCABLEUPSTREAM = 0x81
+ IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd
+ IFT_DS0 = 0x51
+ IFT_DS0BUNDLE = 0x52
+ IFT_DS1FDL = 0xaa
+ IFT_DS3 = 0x1e
+ IFT_DTM = 0x8c
+ IFT_DVBASILN = 0xac
+ IFT_DVBASIOUT = 0xad
+ IFT_DVBRCCDOWNSTREAM = 0x93
+ IFT_DVBRCCMACLAYER = 0x92
+ IFT_DVBRCCUPSTREAM = 0x94
+ IFT_ECONET = 0xce
+ IFT_EON = 0x19
+ IFT_EPLRS = 0x57
+ IFT_ESCON = 0x49
+ IFT_ETHER = 0x6
+ IFT_FAITH = 0xf2
+ IFT_FAST = 0x7d
+ IFT_FASTETHER = 0x3e
+ IFT_FASTETHERFX = 0x45
+ IFT_FDDI = 0xf
+ IFT_FIBRECHANNEL = 0x38
+ IFT_FRAMERELAYINTERCONNECT = 0x3a
+ IFT_FRAMERELAYMPI = 0x5c
+ IFT_FRDLCIENDPT = 0xc1
+ IFT_FRELAY = 0x20
+ IFT_FRELAYDCE = 0x2c
+ IFT_FRF16MFRBUNDLE = 0xa3
+ IFT_FRFORWARD = 0x9e
+ IFT_G703AT2MB = 0x43
+ IFT_G703AT64K = 0x42
+ IFT_GIF = 0xf0
+ IFT_GIGABITETHERNET = 0x75
+ IFT_GR303IDT = 0xb2
+ IFT_GR303RDT = 0xb1
+ IFT_H323GATEKEEPER = 0xa4
+ IFT_H323PROXY = 0xa5
+ IFT_HDH1822 = 0x3
+ IFT_HDLC = 0x76
+ IFT_HDSL2 = 0xa8
+ IFT_HIPERLAN2 = 0xb7
+ IFT_HIPPI = 0x2f
+ IFT_HIPPIINTERFACE = 0x39
+ IFT_HOSTPAD = 0x5a
+ IFT_HSSI = 0x2e
+ IFT_HY = 0xe
+ IFT_IBM370PARCHAN = 0x48
+ IFT_IDSL = 0x9a
+ IFT_IEEE1394 = 0x90
+ IFT_IEEE80211 = 0x47
+ IFT_IEEE80212 = 0x37
+ IFT_IEEE8023ADLAG = 0xa1
+ IFT_IFGSN = 0x91
+ IFT_IMT = 0xbe
+ IFT_INFINIBAND = 0xc7
+ IFT_INTERLEAVE = 0x7c
+ IFT_IP = 0x7e
+ IFT_IPFORWARD = 0x8e
+ IFT_IPOVERATM = 0x72
+ IFT_IPOVERCDLC = 0x6d
+ IFT_IPOVERCLAW = 0x6e
+ IFT_IPSWITCH = 0x4e
+ IFT_ISDN = 0x3f
+ IFT_ISDNBASIC = 0x14
+ IFT_ISDNPRIMARY = 0x15
+ IFT_ISDNS = 0x4b
+ IFT_ISDNU = 0x4c
+ IFT_ISO88022LLC = 0x29
+ IFT_ISO88023 = 0x7
+ IFT_ISO88024 = 0x8
+ IFT_ISO88025 = 0x9
+ IFT_ISO88025CRFPINT = 0x62
+ IFT_ISO88025DTR = 0x56
+ IFT_ISO88025FIBER = 0x73
+ IFT_ISO88026 = 0xa
+ IFT_ISUP = 0xb3
+ IFT_L2VLAN = 0x87
+ IFT_L3IPVLAN = 0x88
+ IFT_L3IPXVLAN = 0x89
+ IFT_LAPB = 0x10
+ IFT_LAPD = 0x4d
+ IFT_LAPF = 0x77
+ IFT_LINEGROUP = 0xd2
+ IFT_LOCALTALK = 0x2a
+ IFT_LOOP = 0x18
+ IFT_MEDIAMAILOVERIP = 0x8b
+ IFT_MFSIGLINK = 0xa7
+ IFT_MIOX25 = 0x26
+ IFT_MODEM = 0x30
+ IFT_MPC = 0x71
+ IFT_MPLS = 0xa6
+ IFT_MPLSTUNNEL = 0x96
+ IFT_MSDSL = 0x8f
+ IFT_MVL = 0xbf
+ IFT_MYRINET = 0x63
+ IFT_NFAS = 0xaf
+ IFT_NSIP = 0x1b
+ IFT_OPTICALCHANNEL = 0xc3
+ IFT_OPTICALTRANSPORT = 0xc4
+ IFT_OTHER = 0x1
+ IFT_P10 = 0xc
+ IFT_P80 = 0xd
+ IFT_PARA = 0x22
+ IFT_PFLOG = 0xf5
+ IFT_PFSYNC = 0xf6
+ IFT_PLC = 0xae
+ IFT_PON155 = 0xcf
+ IFT_PON622 = 0xd0
+ IFT_POS = 0xab
+ IFT_PPP = 0x17
+ IFT_PPPMULTILINKBUNDLE = 0x6c
+ IFT_PROPATM = 0xc5
+ IFT_PROPBWAP2MP = 0xb8
+ IFT_PROPCNLS = 0x59
+ IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5
+ IFT_PROPDOCSWIRELESSMACLAYER = 0xb4
+ IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6
+ IFT_PROPMUX = 0x36
+ IFT_PROPVIRTUAL = 0x35
+ IFT_PROPWIRELESSP2P = 0x9d
+ IFT_PTPSERIAL = 0x16
+ IFT_PVC = 0xf1
+ IFT_Q2931 = 0xc9
+ IFT_QLLC = 0x44
+ IFT_RADIOMAC = 0xbc
+ IFT_RADSL = 0x5f
+ IFT_REACHDSL = 0xc0
+ IFT_RFC1483 = 0x9f
+ IFT_RS232 = 0x21
+ IFT_RSRB = 0x4f
+ IFT_SDLC = 0x11
+ IFT_SDSL = 0x60
+ IFT_SHDSL = 0xa9
+ IFT_SIP = 0x1f
+ IFT_SIPSIG = 0xcc
+ IFT_SIPTG = 0xcb
+ IFT_SLIP = 0x1c
+ IFT_SMDSDXI = 0x2b
+ IFT_SMDSICIP = 0x34
+ IFT_SONET = 0x27
+ IFT_SONETOVERHEADCHANNEL = 0xb9
+ IFT_SONETPATH = 0x32
+ IFT_SONETVT = 0x33
+ IFT_SRP = 0x97
+ IFT_SS7SIGLINK = 0x9c
+ IFT_STACKTOSTACK = 0x6f
+ IFT_STARLAN = 0xb
+ IFT_STF = 0xd7
+ IFT_T1 = 0x12
+ IFT_TDLC = 0x74
+ IFT_TELINK = 0xc8
+ IFT_TERMPAD = 0x5b
+ IFT_TR008 = 0xb0
+ IFT_TRANSPHDLC = 0x7b
+ IFT_TUNNEL = 0x83
+ IFT_ULTRA = 0x1d
+ IFT_USB = 0xa0
+ IFT_V11 = 0x40
+ IFT_V35 = 0x2d
+ IFT_V36 = 0x41
+ IFT_V37 = 0x78
+ IFT_VDSL = 0x61
+ IFT_VIRTUALIPADDRESS = 0x70
+ IFT_VIRTUALTG = 0xca
+ IFT_VOICEDID = 0xd5
+ IFT_VOICEEM = 0x64
+ IFT_VOICEEMFGD = 0xd3
+ IFT_VOICEENCAP = 0x67
+ IFT_VOICEFGDEANA = 0xd4
+ IFT_VOICEFXO = 0x65
+ IFT_VOICEFXS = 0x66
+ IFT_VOICEOVERATM = 0x98
+ IFT_VOICEOVERCABLE = 0xc6
+ IFT_VOICEOVERFRAMERELAY = 0x99
+ IFT_VOICEOVERIP = 0x68
+ IFT_X213 = 0x5d
+ IFT_X25 = 0x5
+ IFT_X25DDN = 0x4
+ IFT_X25HUNTGROUP = 0x7a
+ IFT_X25MLP = 0x79
+ IFT_X25PLE = 0x28
+ IFT_XETHER = 0x1a
+ IGNBRK = 0x1
+ IGNCR = 0x80
+ IGNPAR = 0x4
+ IMAXBEL = 0x2000
+ INLCR = 0x40
+ INPCK = 0x10
+ IN_CLASSA_HOST = 0xffffff
+ IN_CLASSA_MAX = 0x80
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 0x18
+ IN_CLASSB_HOST = 0xffff
+ IN_CLASSB_MAX = 0x10000
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 0x10
+ IN_CLASSC_HOST = 0xff
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 0x8
+ IN_CLASSD_HOST = 0xfffffff
+ IN_CLASSD_NET = 0xf0000000
+ IN_CLASSD_NSHIFT = 0x1c
+ IN_LOOPBACKNET = 0x7f
+ IPPROTO_AH = 0x33
+ IPPROTO_CARP = 0x70
+ IPPROTO_DONE = 0x101
+ IPPROTO_DSTOPTS = 0x3c
+ IPPROTO_EGP = 0x8
+ IPPROTO_ENCAP = 0x62
+ IPPROTO_EON = 0x50
+ IPPROTO_ESP = 0x32
+ IPPROTO_ETHERIP = 0x61
+ IPPROTO_FRAGMENT = 0x2c
+ IPPROTO_GGP = 0x3
+ IPPROTO_GRE = 0x2f
+ IPPROTO_HOPOPTS = 0x0
+ IPPROTO_ICMP = 0x1
+ IPPROTO_ICMPV6 = 0x3a
+ IPPROTO_IDP = 0x16
+ IPPROTO_IGMP = 0x2
+ IPPROTO_IP = 0x0
+ IPPROTO_IPCOMP = 0x6c
+ IPPROTO_IPIP = 0x4
+ IPPROTO_IPV4 = 0x4
+ IPPROTO_IPV6 = 0x29
+ IPPROTO_IPV6_ICMP = 0x3a
+ IPPROTO_MAX = 0x100
+ IPPROTO_MAXID = 0x34
+ IPPROTO_MOBILE = 0x37
+ IPPROTO_NONE = 0x3b
+ IPPROTO_PFSYNC = 0xf0
+ IPPROTO_PIM = 0x67
+ IPPROTO_PUP = 0xc
+ IPPROTO_RAW = 0xff
+ IPPROTO_ROUTING = 0x2b
+ IPPROTO_RSVP = 0x2e
+ IPPROTO_TCP = 0x6
+ IPPROTO_TP = 0x1d
+ IPPROTO_UDP = 0x11
+ IPPROTO_VRRP = 0x70
+ IPV6_CHECKSUM = 0x1a
+ IPV6_DEFAULT_MULTICAST_HOPS = 0x1
+ IPV6_DEFAULT_MULTICAST_LOOP = 0x1
+ IPV6_DEFHLIM = 0x40
+ IPV6_DONTFRAG = 0x3e
+ IPV6_DSTOPTS = 0x32
+ IPV6_FAITH = 0x1d
+ IPV6_FLOWINFO_MASK = 0xffffff0f
+ IPV6_FLOWLABEL_MASK = 0xffff0f00
+ IPV6_FRAGTTL = 0x78
+ IPV6_HLIMDEC = 0x1
+ IPV6_HOPLIMIT = 0x2f
+ IPV6_HOPOPTS = 0x31
+ IPV6_IPSEC_POLICY = 0x1c
+ IPV6_JOIN_GROUP = 0xc
+ IPV6_LEAVE_GROUP = 0xd
+ IPV6_MAXHLIM = 0xff
+ IPV6_MAXPACKET = 0xffff
+ IPV6_MMTU = 0x500
+ IPV6_MULTICAST_HOPS = 0xa
+ IPV6_MULTICAST_IF = 0x9
+ IPV6_MULTICAST_LOOP = 0xb
+ IPV6_NEXTHOP = 0x30
+ IPV6_PATHMTU = 0x2c
+ IPV6_PKTINFO = 0x2e
+ IPV6_PORTRANGE = 0xe
+ IPV6_PORTRANGE_DEFAULT = 0x0
+ IPV6_PORTRANGE_HIGH = 0x1
+ IPV6_PORTRANGE_LOW = 0x2
+ IPV6_RECVDSTOPTS = 0x28
+ IPV6_RECVHOPLIMIT = 0x25
+ IPV6_RECVHOPOPTS = 0x27
+ IPV6_RECVPATHMTU = 0x2b
+ IPV6_RECVPKTINFO = 0x24
+ IPV6_RECVRTHDR = 0x26
+ IPV6_RECVTCLASS = 0x39
+ IPV6_RTHDR = 0x33
+ IPV6_RTHDRDSTOPTS = 0x23
+ IPV6_RTHDR_LOOSE = 0x0
+ IPV6_RTHDR_STRICT = 0x1
+ IPV6_RTHDR_TYPE_0 = 0x0
+ IPV6_SOCKOPT_RESERVED1 = 0x3
+ IPV6_TCLASS = 0x3d
+ IPV6_UNICAST_HOPS = 0x4
+ IPV6_USE_MIN_MTU = 0x2a
+ IPV6_V6ONLY = 0x1b
+ IPV6_VERSION = 0x60
+ IPV6_VERSION_MASK = 0xf0
+ IP_ADD_MEMBERSHIP = 0xc
+ IP_DEFAULT_MULTICAST_LOOP = 0x1
+ IP_DEFAULT_MULTICAST_TTL = 0x1
+ IP_DF = 0x4000
+ IP_DROP_MEMBERSHIP = 0xd
+ IP_EF = 0x8000
+ IP_ERRORMTU = 0x15
+ IP_HDRINCL = 0x2
+ IP_IPSEC_POLICY = 0x16
+ IP_MAXPACKET = 0xffff
+ IP_MAX_MEMBERSHIPS = 0x14
+ IP_MF = 0x2000
+ IP_MINFRAGSIZE = 0x45
+ IP_MINTTL = 0x18
+ IP_MSS = 0x240
+ IP_MULTICAST_IF = 0x9
+ IP_MULTICAST_LOOP = 0xb
+ IP_MULTICAST_TTL = 0xa
+ IP_OFFMASK = 0x1fff
+ IP_OPTIONS = 0x1
+ IP_PORTRANGE = 0x13
+ IP_PORTRANGE_DEFAULT = 0x0
+ IP_PORTRANGE_HIGH = 0x1
+ IP_PORTRANGE_LOW = 0x2
+ IP_RECVDSTADDR = 0x7
+ IP_RECVIF = 0x14
+ IP_RECVOPTS = 0x5
+ IP_RECVRETOPTS = 0x6
+ IP_RECVTTL = 0x17
+ IP_RETOPTS = 0x8
+ IP_RF = 0x8000
+ IP_TOS = 0x3
+ IP_TTL = 0x4
+ ISIG = 0x80
+ ISTRIP = 0x20
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
+ KERN_HOSTNAME = 0xa
+ KERN_OSRELEASE = 0x2
+ KERN_OSTYPE = 0x1
+ KERN_VERSION = 0x4
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+ LOCK_UN = 0x8
+ MADV_DONTNEED = 0x4
+ MADV_FREE = 0x6
+ MADV_NORMAL = 0x0
+ MADV_RANDOM = 0x1
+ MADV_SEQUENTIAL = 0x2
+ MADV_SPACEAVAIL = 0x5
+ MADV_WILLNEED = 0x3
+ MAP_ALIGNMENT_16MB = 0x18000000
+ MAP_ALIGNMENT_1TB = 0x28000000
+ MAP_ALIGNMENT_256TB = 0x30000000
+ MAP_ALIGNMENT_4GB = 0x20000000
+ MAP_ALIGNMENT_64KB = 0x10000000
+ MAP_ALIGNMENT_64PB = 0x38000000
+ MAP_ALIGNMENT_MASK = -0x1000000
+ MAP_ALIGNMENT_SHIFT = 0x18
+ MAP_ANON = 0x1000
+ MAP_FILE = 0x0
+ MAP_FIXED = 0x10
+ MAP_HASSEMAPHORE = 0x200
+ MAP_INHERIT = 0x80
+ MAP_INHERIT_COPY = 0x1
+ MAP_INHERIT_DEFAULT = 0x1
+ MAP_INHERIT_DONATE_COPY = 0x3
+ MAP_INHERIT_NONE = 0x2
+ MAP_INHERIT_SHARE = 0x0
+ MAP_NORESERVE = 0x40
+ MAP_PRIVATE = 0x2
+ MAP_RENAME = 0x20
+ MAP_SHARED = 0x1
+ MAP_STACK = 0x2000
+ MAP_TRYFIXED = 0x400
+ MAP_WIRED = 0x800
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
+ MNT_ASYNC = 0x40
+ MNT_BASIC_FLAGS = 0xe782807f
+ MNT_DEFEXPORTED = 0x200
+ MNT_DISCARD = 0x800000
+ MNT_EXKERB = 0x800
+ MNT_EXNORESPORT = 0x8000000
+ MNT_EXPORTANON = 0x400
+ MNT_EXPORTED = 0x100
+ MNT_EXPUBLIC = 0x10000000
+ MNT_EXRDONLY = 0x80
+ MNT_EXTATTR = 0x1000000
+ MNT_FORCE = 0x80000
+ MNT_GETARGS = 0x400000
+ MNT_IGNORE = 0x100000
+ MNT_LAZY = 0x3
+ MNT_LOCAL = 0x1000
+ MNT_LOG = 0x2000000
+ MNT_NOATIME = 0x4000000
+ MNT_NOCOREDUMP = 0x8000
+ MNT_NODEV = 0x10
+ MNT_NODEVMTIME = 0x40000000
+ MNT_NOEXEC = 0x4
+ MNT_NOSUID = 0x8
+ MNT_NOWAIT = 0x2
+ MNT_OP_FLAGS = 0x4d0000
+ MNT_QUOTA = 0x2000
+ MNT_RDONLY = 0x1
+ MNT_RELATIME = 0x20000
+ MNT_RELOAD = 0x40000
+ MNT_ROOTFS = 0x4000
+ MNT_SOFTDEP = 0x80000000
+ MNT_SYMPERM = 0x20000000
+ MNT_SYNCHRONOUS = 0x2
+ MNT_UNION = 0x20
+ MNT_UPDATE = 0x10000
+ MNT_VISFLAGMASK = 0xff90ffff
+ MNT_WAIT = 0x1
+ MSG_BCAST = 0x100
+ MSG_CMSG_CLOEXEC = 0x800
+ MSG_CONTROLMBUF = 0x2000000
+ MSG_CTRUNC = 0x20
+ MSG_DONTROUTE = 0x4
+ MSG_DONTWAIT = 0x80
+ MSG_EOR = 0x8
+ MSG_IOVUSRSPACE = 0x4000000
+ MSG_LENUSRSPACE = 0x8000000
+ MSG_MCAST = 0x200
+ MSG_NAMEMBUF = 0x1000000
+ MSG_NBIO = 0x1000
+ MSG_NOSIGNAL = 0x400
+ MSG_OOB = 0x1
+ MSG_PEEK = 0x2
+ MSG_TRUNC = 0x10
+ MSG_USERFLAGS = 0xffffff
+ MSG_WAITALL = 0x40
+ MS_ASYNC = 0x1
+ MS_INVALIDATE = 0x2
+ MS_SYNC = 0x4
+ NAME_MAX = 0x1ff
+ NET_RT_DUMP = 0x1
+ NET_RT_FLAGS = 0x2
+ NET_RT_IFLIST = 0x5
+ NET_RT_MAXID = 0x6
+ NET_RT_OIFLIST = 0x4
+ NET_RT_OOIFLIST = 0x3
+ NOFLSH = 0x80000000
+ NOTE_ATTRIB = 0x8
+ NOTE_CHILD = 0x4
+ NOTE_DELETE = 0x1
+ NOTE_EXEC = 0x20000000
+ NOTE_EXIT = 0x80000000
+ NOTE_EXTEND = 0x4
+ NOTE_FORK = 0x40000000
+ NOTE_LINK = 0x10
+ NOTE_LOWAT = 0x1
+ NOTE_PCTRLMASK = 0xf0000000
+ NOTE_PDATAMASK = 0xfffff
+ NOTE_RENAME = 0x20
+ NOTE_REVOKE = 0x40
+ NOTE_TRACK = 0x1
+ NOTE_TRACKERR = 0x2
+ NOTE_WRITE = 0x2
+ OCRNL = 0x10
+ OFIOGETBMAP = 0xc004667a
+ ONLCR = 0x2
+ ONLRET = 0x40
+ ONOCR = 0x20
+ ONOEOT = 0x8
+ OPOST = 0x1
+ O_ACCMODE = 0x3
+ O_ALT_IO = 0x40000
+ O_APPEND = 0x8
+ O_ASYNC = 0x40
+ O_CLOEXEC = 0x400000
+ O_CREAT = 0x200
+ O_DIRECT = 0x80000
+ O_DIRECTORY = 0x200000
+ O_DSYNC = 0x10000
+ O_EXCL = 0x800
+ O_EXLOCK = 0x20
+ O_FSYNC = 0x80
+ O_NDELAY = 0x4
+ O_NOCTTY = 0x8000
+ O_NOFOLLOW = 0x100
+ O_NONBLOCK = 0x4
+ O_NOSIGPIPE = 0x1000000
+ O_RDONLY = 0x0
+ O_RDWR = 0x2
+ O_RSYNC = 0x20000
+ O_SHLOCK = 0x10
+ O_SYNC = 0x80
+ O_TRUNC = 0x400
+ O_WRONLY = 0x1
+ PARENB = 0x1000
+ PARMRK = 0x8
+ PARODD = 0x2000
+ PENDIN = 0x20000000
+ PRIO_PGRP = 0x1
+ PRIO_PROCESS = 0x0
+ PRIO_USER = 0x2
+ PRI_IOFLUSH = 0x7c
+ PROT_EXEC = 0x4
+ PROT_NONE = 0x0
+ PROT_READ = 0x1
+ PROT_WRITE = 0x2
+ RLIMIT_AS = 0xa
+ RLIMIT_CORE = 0x4
+ RLIMIT_CPU = 0x0
+ RLIMIT_DATA = 0x2
+ RLIMIT_FSIZE = 0x1
+ RLIMIT_MEMLOCK = 0x6
+ RLIMIT_NOFILE = 0x8
+ RLIMIT_NPROC = 0x7
+ RLIMIT_RSS = 0x5
+ RLIMIT_STACK = 0x3
+ RLIM_INFINITY = 0x7fffffffffffffff
+ RTAX_AUTHOR = 0x6
+ RTAX_BRD = 0x7
+ RTAX_DST = 0x0
+ RTAX_GATEWAY = 0x1
+ RTAX_GENMASK = 0x3
+ RTAX_IFA = 0x5
+ RTAX_IFP = 0x4
+ RTAX_MAX = 0x9
+ RTAX_NETMASK = 0x2
+ RTAX_TAG = 0x8
+ RTA_AUTHOR = 0x40
+ RTA_BRD = 0x80
+ RTA_DST = 0x1
+ RTA_GATEWAY = 0x2
+ RTA_GENMASK = 0x8
+ RTA_IFA = 0x20
+ RTA_IFP = 0x10
+ RTA_NETMASK = 0x4
+ RTA_TAG = 0x100
+ RTF_ANNOUNCE = 0x20000
+ RTF_BLACKHOLE = 0x1000
+ RTF_CLONED = 0x2000
+ RTF_CLONING = 0x100
+ RTF_DONE = 0x40
+ RTF_DYNAMIC = 0x10
+ RTF_GATEWAY = 0x2
+ RTF_HOST = 0x4
+ RTF_LLINFO = 0x400
+ RTF_MASK = 0x80
+ RTF_MODIFIED = 0x20
+ RTF_PROTO1 = 0x8000
+ RTF_PROTO2 = 0x4000
+ RTF_REJECT = 0x8
+ RTF_SRC = 0x10000
+ RTF_STATIC = 0x800
+ RTF_UP = 0x1
+ RTF_XRESOLVE = 0x200
+ RTM_ADD = 0x1
+ RTM_CHANGE = 0x3
+ RTM_CHGADDR = 0x15
+ RTM_DELADDR = 0xd
+ RTM_DELETE = 0x2
+ RTM_GET = 0x4
+ RTM_IEEE80211 = 0x11
+ RTM_IFANNOUNCE = 0x10
+ RTM_IFINFO = 0x14
+ RTM_LLINFO_UPD = 0x13
+ RTM_LOCK = 0x8
+ RTM_LOSING = 0x5
+ RTM_MISS = 0x7
+ RTM_NEWADDR = 0xc
+ RTM_OIFINFO = 0xf
+ RTM_OLDADD = 0x9
+ RTM_OLDDEL = 0xa
+ RTM_OOIFINFO = 0xe
+ RTM_REDIRECT = 0x6
+ RTM_RESOLVE = 0xb
+ RTM_RTTUNIT = 0xf4240
+ RTM_SETGATE = 0x12
+ RTM_VERSION = 0x4
+ RTV_EXPIRE = 0x4
+ RTV_HOPCOUNT = 0x2
+ RTV_MTU = 0x1
+ RTV_RPIPE = 0x8
+ RTV_RTT = 0x40
+ RTV_RTTVAR = 0x80
+ RTV_SPIPE = 0x10
+ RTV_SSTHRESH = 0x20
+ RUSAGE_CHILDREN = -0x1
+ RUSAGE_SELF = 0x0
+ SCM_CREDS = 0x4
+ SCM_RIGHTS = 0x1
+ SCM_TIMESTAMP = 0x8
+ SHUT_RD = 0x0
+ SHUT_RDWR = 0x2
+ SHUT_WR = 0x1
+ SIOCADDMULTI = 0x80906931
+ SIOCADDRT = 0x8038720a
+ SIOCAIFADDR = 0x8040691a
+ SIOCALIFADDR = 0x8118691c
+ SIOCATMARK = 0x40047307
+ SIOCDELMULTI = 0x80906932
+ SIOCDELRT = 0x8038720b
+ SIOCDIFADDR = 0x80906919
+ SIOCDIFPHYADDR = 0x80906949
+ SIOCDLIFADDR = 0x8118691e
+ SIOCGDRVSPEC = 0xc028697b
+ SIOCGETPFSYNC = 0xc09069f8
+ SIOCGETSGCNT = 0xc0207534
+ SIOCGETVIFCNT = 0xc0287533
+ SIOCGHIWAT = 0x40047301
+ SIOCGIFADDR = 0xc0906921
+ SIOCGIFADDRPREF = 0xc0986920
+ SIOCGIFALIAS = 0xc040691b
+ SIOCGIFBRDADDR = 0xc0906923
+ SIOCGIFCAP = 0xc0206976
+ SIOCGIFCONF = 0xc0106926
+ SIOCGIFDATA = 0xc0986985
+ SIOCGIFDLT = 0xc0906977
+ SIOCGIFDSTADDR = 0xc0906922
+ SIOCGIFFLAGS = 0xc0906911
+ SIOCGIFGENERIC = 0xc090693a
+ SIOCGIFMEDIA = 0xc0306936
+ SIOCGIFMETRIC = 0xc0906917
+ SIOCGIFMTU = 0xc090697e
+ SIOCGIFNETMASK = 0xc0906925
+ SIOCGIFPDSTADDR = 0xc0906948
+ SIOCGIFPSRCADDR = 0xc0906947
+ SIOCGLIFADDR = 0xc118691d
+ SIOCGLIFPHYADDR = 0xc118694b
+ SIOCGLINKSTR = 0xc0286987
+ SIOCGLOWAT = 0x40047303
+ SIOCGPGRP = 0x40047309
+ SIOCGVH = 0xc0906983
+ SIOCIFCREATE = 0x8090697a
+ SIOCIFDESTROY = 0x80906979
+ SIOCIFGCLONERS = 0xc0106978
+ SIOCINITIFADDR = 0xc0706984
+ SIOCSDRVSPEC = 0x8028697b
+ SIOCSETPFSYNC = 0x809069f7
+ SIOCSHIWAT = 0x80047300
+ SIOCSIFADDR = 0x8090690c
+ SIOCSIFADDRPREF = 0x8098691f
+ SIOCSIFBRDADDR = 0x80906913
+ SIOCSIFCAP = 0x80206975
+ SIOCSIFDSTADDR = 0x8090690e
+ SIOCSIFFLAGS = 0x80906910
+ SIOCSIFGENERIC = 0x80906939
+ SIOCSIFMEDIA = 0xc0906935
+ SIOCSIFMETRIC = 0x80906918
+ SIOCSIFMTU = 0x8090697f
+ SIOCSIFNETMASK = 0x80906916
+ SIOCSIFPHYADDR = 0x80406946
+ SIOCSLIFPHYADDR = 0x8118694a
+ SIOCSLINKSTR = 0x80286988
+ SIOCSLOWAT = 0x80047302
+ SIOCSPGRP = 0x80047308
+ SIOCSVH = 0xc0906982
+ SIOCZIFDATA = 0xc0986986
+ SOCK_CLOEXEC = 0x10000000
+ SOCK_DGRAM = 0x2
+ SOCK_FLAGS_MASK = 0xf0000000
+ SOCK_NONBLOCK = 0x20000000
+ SOCK_NOSIGPIPE = 0x40000000
+ SOCK_RAW = 0x3
+ SOCK_RDM = 0x4
+ SOCK_SEQPACKET = 0x5
+ SOCK_STREAM = 0x1
+ SOL_SOCKET = 0xffff
+ SOMAXCONN = 0x80
+ SO_ACCEPTCONN = 0x2
+ SO_ACCEPTFILTER = 0x1000
+ SO_BROADCAST = 0x20
+ SO_DEBUG = 0x1
+ SO_DONTROUTE = 0x10
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x8
+ SO_LINGER = 0x80
+ SO_NOHEADER = 0x100a
+ SO_NOSIGPIPE = 0x800
+ SO_OOBINLINE = 0x100
+ SO_OVERFLOWED = 0x1009
+ SO_RCVBUF = 0x1002
+ SO_RCVLOWAT = 0x1004
+ SO_RCVTIMEO = 0x100c
+ SO_REUSEADDR = 0x4
+ SO_REUSEPORT = 0x200
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x100b
+ SO_TIMESTAMP = 0x2000
+ SO_TYPE = 0x1008
+ SO_USELOOPBACK = 0x40
+ SYSCTL_VERSION = 0x1000000
+ SYSCTL_VERS_0 = 0x0
+ SYSCTL_VERS_1 = 0x1000000
+ SYSCTL_VERS_MASK = 0xff000000
+ S_ARCH1 = 0x10000
+ S_ARCH2 = 0x20000
+ S_BLKSIZE = 0x200
+ S_IEXEC = 0x40
+ S_IFBLK = 0x6000
+ S_IFCHR = 0x2000
+ S_IFDIR = 0x4000
+ S_IFIFO = 0x1000
+ S_IFLNK = 0xa000
+ S_IFMT = 0xf000
+ S_IFREG = 0x8000
+ S_IFSOCK = 0xc000
+ S_IFWHT = 0xe000
+ S_IREAD = 0x100
+ S_IRGRP = 0x20
+ S_IROTH = 0x4
+ S_IRUSR = 0x100
+ S_IRWXG = 0x38
+ S_IRWXO = 0x7
+ S_IRWXU = 0x1c0
+ S_ISGID = 0x400
+ S_ISTXT = 0x200
+ S_ISUID = 0x800
+ S_ISVTX = 0x200
+ S_IWGRP = 0x10
+ S_IWOTH = 0x2
+ S_IWRITE = 0x80
+ S_IWUSR = 0x80
+ S_IXGRP = 0x8
+ S_IXOTH = 0x1
+ S_IXUSR = 0x40
+ S_LOGIN_SET = 0x1
+ TCIFLUSH = 0x1
+ TCIOFLUSH = 0x3
+ TCOFLUSH = 0x2
+ TCP_CONGCTL = 0x20
+ TCP_KEEPCNT = 0x6
+ TCP_KEEPIDLE = 0x3
+ TCP_KEEPINIT = 0x7
+ TCP_KEEPINTVL = 0x5
+ TCP_MAXBURST = 0x4
+ TCP_MAXSEG = 0x2
+ TCP_MAXWIN = 0xffff
+ TCP_MAX_WINSHIFT = 0xe
+ TCP_MD5SIG = 0x10
+ TCP_MINMSS = 0xd8
+ TCP_MSS = 0x218
+ TCP_NODELAY = 0x1
+ TCSAFLUSH = 0x2
+ TIOCCBRK = 0x2000747a
+ TIOCCDTR = 0x20007478
+ TIOCCONS = 0x80047462
+ TIOCDCDTIMESTAMP = 0x40107458
+ TIOCDRAIN = 0x2000745e
+ TIOCEXCL = 0x2000740d
+ TIOCEXT = 0x80047460
+ TIOCFLAG_CDTRCTS = 0x10
+ TIOCFLAG_CLOCAL = 0x2
+ TIOCFLAG_CRTSCTS = 0x4
+ TIOCFLAG_MDMBUF = 0x8
+ TIOCFLAG_SOFTCAR = 0x1
+ TIOCFLUSH = 0x80047410
+ TIOCGETA = 0x402c7413
+ TIOCGETD = 0x4004741a
+ TIOCGFLAGS = 0x4004745d
+ TIOCGLINED = 0x40207442
+ TIOCGPGRP = 0x40047477
+ TIOCGQSIZE = 0x40047481
+ TIOCGRANTPT = 0x20007447
+ TIOCGSID = 0x40047463
+ TIOCGSIZE = 0x40087468
+ TIOCGWINSZ = 0x40087468
+ TIOCMBIC = 0x8004746b
+ TIOCMBIS = 0x8004746c
+ TIOCMGET = 0x4004746a
+ TIOCMSET = 0x8004746d
+ TIOCM_CAR = 0x40
+ TIOCM_CD = 0x40
+ TIOCM_CTS = 0x20
+ TIOCM_DSR = 0x100
+ TIOCM_DTR = 0x2
+ TIOCM_LE = 0x1
+ TIOCM_RI = 0x80
+ TIOCM_RNG = 0x80
+ TIOCM_RTS = 0x4
+ TIOCM_SR = 0x10
+ TIOCM_ST = 0x8
+ TIOCNOTTY = 0x20007471
+ TIOCNXCL = 0x2000740e
+ TIOCOUTQ = 0x40047473
+ TIOCPKT = 0x80047470
+ TIOCPKT_DATA = 0x0
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x1
+ TIOCPKT_FLUSHWRITE = 0x2
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x8
+ TIOCPKT_STOP = 0x4
+ TIOCPTMGET = 0x40287446
+ TIOCPTSNAME = 0x40287448
+ TIOCRCVFRAME = 0x80087445
+ TIOCREMOTE = 0x80047469
+ TIOCSBRK = 0x2000747b
+ TIOCSCTTY = 0x20007461
+ TIOCSDTR = 0x20007479
+ TIOCSETA = 0x802c7414
+ TIOCSETAF = 0x802c7416
+ TIOCSETAW = 0x802c7415
+ TIOCSETD = 0x8004741b
+ TIOCSFLAGS = 0x8004745c
+ TIOCSIG = 0x2000745f
+ TIOCSLINED = 0x80207443
+ TIOCSPGRP = 0x80047476
+ TIOCSQSIZE = 0x80047480
+ TIOCSSIZE = 0x80087467
+ TIOCSTART = 0x2000746e
+ TIOCSTAT = 0x80047465
+ TIOCSTI = 0x80017472
+ TIOCSTOP = 0x2000746f
+ TIOCSWINSZ = 0x80087467
+ TIOCUCNTL = 0x80047466
+ TIOCXMTFRAME = 0x80087444
+ TOSTOP = 0x400000
+ VDISCARD = 0xf
+ VDSUSP = 0xb
+ VEOF = 0x0
+ VEOL = 0x1
+ VEOL2 = 0x2
+ VERASE = 0x3
+ VINTR = 0x8
+ VKILL = 0x5
+ VLNEXT = 0xe
+ VMIN = 0x10
+ VQUIT = 0x9
+ VREPRINT = 0x6
+ VSTART = 0xc
+ VSTATUS = 0x12
+ VSTOP = 0xd
+ VSUSP = 0xa
+ VTIME = 0x11
+ VWERASE = 0x4
+ WALL = 0x8
+ WALLSIG = 0x8
+ WALTSIG = 0x4
+ WCLONE = 0x4
+ WCOREFLAG = 0x80
+ WNOHANG = 0x1
+ WNOWAIT = 0x10000
+ WNOZOMBIE = 0x20000
+ WOPTSCHECKED = 0x40000
+ WSTOPPED = 0x7f
+ WUNTRACED = 0x2
+)
+
+// Errors
+const (
+ E2BIG = syscall.Errno(0x7)
+ EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x30)
+ EADDRNOTAVAIL = syscall.Errno(0x31)
+ EAFNOSUPPORT = syscall.Errno(0x2f)
+ EAGAIN = syscall.Errno(0x23)
+ EALREADY = syscall.Errno(0x25)
+ EAUTH = syscall.Errno(0x50)
+ EBADF = syscall.Errno(0x9)
+ EBADMSG = syscall.Errno(0x58)
+ EBADRPC = syscall.Errno(0x48)
+ EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x57)
+ ECHILD = syscall.Errno(0xa)
+ ECONNABORTED = syscall.Errno(0x35)
+ ECONNREFUSED = syscall.Errno(0x3d)
+ ECONNRESET = syscall.Errno(0x36)
+ EDEADLK = syscall.Errno(0xb)
+ EDESTADDRREQ = syscall.Errno(0x27)
+ EDOM = syscall.Errno(0x21)
+ EDQUOT = syscall.Errno(0x45)
+ EEXIST = syscall.Errno(0x11)
+ EFAULT = syscall.Errno(0xe)
+ EFBIG = syscall.Errno(0x1b)
+ EFTYPE = syscall.Errno(0x4f)
+ EHOSTDOWN = syscall.Errno(0x40)
+ EHOSTUNREACH = syscall.Errno(0x41)
+ EIDRM = syscall.Errno(0x52)
+ EILSEQ = syscall.Errno(0x55)
+ EINPROGRESS = syscall.Errno(0x24)
+ EINTR = syscall.Errno(0x4)
+ EINVAL = syscall.Errno(0x16)
+ EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x38)
+ EISDIR = syscall.Errno(0x15)
+ ELAST = syscall.Errno(0x60)
+ ELOOP = syscall.Errno(0x3e)
+ EMFILE = syscall.Errno(0x18)
+ EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x28)
+ EMULTIHOP = syscall.Errno(0x5e)
+ ENAMETOOLONG = syscall.Errno(0x3f)
+ ENEEDAUTH = syscall.Errno(0x51)
+ ENETDOWN = syscall.Errno(0x32)
+ ENETRESET = syscall.Errno(0x34)
+ ENETUNREACH = syscall.Errno(0x33)
+ ENFILE = syscall.Errno(0x17)
+ ENOATTR = syscall.Errno(0x5d)
+ ENOBUFS = syscall.Errno(0x37)
+ ENODATA = syscall.Errno(0x59)
+ ENODEV = syscall.Errno(0x13)
+ ENOENT = syscall.Errno(0x2)
+ ENOEXEC = syscall.Errno(0x8)
+ ENOLCK = syscall.Errno(0x4d)
+ ENOLINK = syscall.Errno(0x5f)
+ ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x53)
+ ENOPROTOOPT = syscall.Errno(0x2a)
+ ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x5a)
+ ENOSTR = syscall.Errno(0x5b)
+ ENOSYS = syscall.Errno(0x4e)
+ ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x39)
+ ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x42)
+ ENOTSOCK = syscall.Errno(0x26)
+ ENOTSUP = syscall.Errno(0x56)
+ ENOTTY = syscall.Errno(0x19)
+ ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x2d)
+ EOVERFLOW = syscall.Errno(0x54)
+ EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x2e)
+ EPIPE = syscall.Errno(0x20)
+ EPROCLIM = syscall.Errno(0x43)
+ EPROCUNAVAIL = syscall.Errno(0x4c)
+ EPROGMISMATCH = syscall.Errno(0x4b)
+ EPROGUNAVAIL = syscall.Errno(0x4a)
+ EPROTO = syscall.Errno(0x60)
+ EPROTONOSUPPORT = syscall.Errno(0x2b)
+ EPROTOTYPE = syscall.Errno(0x29)
+ ERANGE = syscall.Errno(0x22)
+ EREMOTE = syscall.Errno(0x47)
+ EROFS = syscall.Errno(0x1e)
+ ERPCMISMATCH = syscall.Errno(0x49)
+ ESHUTDOWN = syscall.Errno(0x3a)
+ ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+ ESPIPE = syscall.Errno(0x1d)
+ ESRCH = syscall.Errno(0x3)
+ ESTALE = syscall.Errno(0x46)
+ ETIME = syscall.Errno(0x5c)
+ ETIMEDOUT = syscall.Errno(0x3c)
+ ETOOMANYREFS = syscall.Errno(0x3b)
+ ETXTBSY = syscall.Errno(0x1a)
+ EUSERS = syscall.Errno(0x44)
+ EWOULDBLOCK = syscall.Errno(0x23)
+ EXDEV = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+ SIGABRT = syscall.Signal(0x6)
+ SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0xa)
+ SIGCHLD = syscall.Signal(0x14)
+ SIGCONT = syscall.Signal(0x13)
+ SIGEMT = syscall.Signal(0x7)
+ SIGFPE = syscall.Signal(0x8)
+ SIGHUP = syscall.Signal(0x1)
+ SIGILL = syscall.Signal(0x4)
+ SIGINFO = syscall.Signal(0x1d)
+ SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x17)
+ SIGIOT = syscall.Signal(0x6)
+ SIGKILL = syscall.Signal(0x9)
+ SIGPIPE = syscall.Signal(0xd)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x20)
+ SIGQUIT = syscall.Signal(0x3)
+ SIGSEGV = syscall.Signal(0xb)
+ SIGSTOP = syscall.Signal(0x11)
+ SIGSYS = syscall.Signal(0xc)
+ SIGTERM = syscall.Signal(0xf)
+ SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x12)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+ SIGURG = syscall.Signal(0x10)
+ SIGUSR1 = syscall.Signal(0x1e)
+ SIGUSR2 = syscall.Signal(0x1f)
+ SIGVTALRM = syscall.Signal(0x1a)
+ SIGWINCH = syscall.Signal(0x1c)
+ SIGXCPU = syscall.Signal(0x18)
+ SIGXFSZ = syscall.Signal(0x19)
+)
+
+// Error table
+var errorList = [...]struct {
+ num syscall.Errno
+ name string
+ desc string
+}{
+ {1, "EPERM", "operation not permitted"},
+ {2, "ENOENT", "no such file or directory"},
+ {3, "ESRCH", "no such process"},
+ {4, "EINTR", "interrupted system call"},
+ {5, "EIO", "input/output error"},
+ {6, "ENXIO", "device not configured"},
+ {7, "E2BIG", "argument list too long"},
+ {8, "ENOEXEC", "exec format error"},
+ {9, "EBADF", "bad file descriptor"},
+ {10, "ECHILD", "no child processes"},
+ {11, "EDEADLK", "resource deadlock avoided"},
+ {12, "ENOMEM", "cannot allocate memory"},
+ {13, "EACCES", "permission denied"},
+ {14, "EFAULT", "bad address"},
+ {15, "ENOTBLK", "block device required"},
+ {16, "EBUSY", "device busy"},
+ {17, "EEXIST", "file exists"},
+ {18, "EXDEV", "cross-device link"},
+ {19, "ENODEV", "operation not supported by device"},
+ {20, "ENOTDIR", "not a directory"},
+ {21, "EISDIR", "is a directory"},
+ {22, "EINVAL", "invalid argument"},
+ {23, "ENFILE", "too many open files in system"},
+ {24, "EMFILE", "too many open files"},
+ {25, "ENOTTY", "inappropriate ioctl for device"},
+ {26, "ETXTBSY", "text file busy"},
+ {27, "EFBIG", "file too large"},
+ {28, "ENOSPC", "no space left on device"},
+ {29, "ESPIPE", "illegal seek"},
+ {30, "EROFS", "read-only file system"},
+ {31, "EMLINK", "too many links"},
+ {32, "EPIPE", "broken pipe"},
+ {33, "EDOM", "numerical argument out of domain"},
+ {34, "ERANGE", "result too large or too small"},
+ {35, "EAGAIN", "resource temporarily unavailable"},
+ {36, "EINPROGRESS", "operation now in progress"},
+ {37, "EALREADY", "operation already in progress"},
+ {38, "ENOTSOCK", "socket operation on non-socket"},
+ {39, "EDESTADDRREQ", "destination address required"},
+ {40, "EMSGSIZE", "message too long"},
+ {41, "EPROTOTYPE", "protocol wrong type for socket"},
+ {42, "ENOPROTOOPT", "protocol option not available"},
+ {43, "EPROTONOSUPPORT", "protocol not supported"},
+ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
+ {45, "EOPNOTSUPP", "operation not supported"},
+ {46, "EPFNOSUPPORT", "protocol family not supported"},
+ {47, "EAFNOSUPPORT", "address family not supported by protocol family"},
+ {48, "EADDRINUSE", "address already in use"},
+ {49, "EADDRNOTAVAIL", "can't assign requested address"},
+ {50, "ENETDOWN", "network is down"},
+ {51, "ENETUNREACH", "network is unreachable"},
+ {52, "ENETRESET", "network dropped connection on reset"},
+ {53, "ECONNABORTED", "software caused connection abort"},
+ {54, "ECONNRESET", "connection reset by peer"},
+ {55, "ENOBUFS", "no buffer space available"},
+ {56, "EISCONN", "socket is already connected"},
+ {57, "ENOTCONN", "socket is not connected"},
+ {58, "ESHUTDOWN", "can't send after socket shutdown"},
+ {59, "ETOOMANYREFS", "too many references: can't splice"},
+ {60, "ETIMEDOUT", "connection timed out"},
+ {61, "ECONNREFUSED", "connection refused"},
+ {62, "ELOOP", "too many levels of symbolic links"},
+ {63, "ENAMETOOLONG", "file name too long"},
+ {64, "EHOSTDOWN", "host is down"},
+ {65, "EHOSTUNREACH", "no route to host"},
+ {66, "ENOTEMPTY", "directory not empty"},
+ {67, "EPROCLIM", "too many processes"},
+ {68, "EUSERS", "too many users"},
+ {69, "EDQUOT", "disc quota exceeded"},
+ {70, "ESTALE", "stale NFS file handle"},
+ {71, "EREMOTE", "too many levels of remote in path"},
+ {72, "EBADRPC", "RPC struct is bad"},
+ {73, "ERPCMISMATCH", "RPC version wrong"},
+ {74, "EPROGUNAVAIL", "RPC prog. not avail"},
+ {75, "EPROGMISMATCH", "program version wrong"},
+ {76, "EPROCUNAVAIL", "bad procedure for program"},
+ {77, "ENOLCK", "no locks available"},
+ {78, "ENOSYS", "function not implemented"},
+ {79, "EFTYPE", "inappropriate file type or format"},
+ {80, "EAUTH", "authentication error"},
+ {81, "ENEEDAUTH", "need authenticator"},
+ {82, "EIDRM", "identifier removed"},
+ {83, "ENOMSG", "no message of desired type"},
+ {84, "EOVERFLOW", "value too large to be stored in data type"},
+ {85, "EILSEQ", "illegal byte sequence"},
+ {86, "ENOTSUP", "not supported"},
+ {87, "ECANCELED", "operation Canceled"},
+ {88, "EBADMSG", "bad or Corrupt message"},
+ {89, "ENODATA", "no message available"},
+ {90, "ENOSR", "no STREAM resources"},
+ {91, "ENOSTR", "not a STREAM"},
+ {92, "ETIME", "STREAM ioctl timeout"},
+ {93, "ENOATTR", "attribute not found"},
+ {94, "EMULTIHOP", "multihop attempted"},
+ {95, "ENOLINK", "link has been severed"},
+ {96, "ELAST", "protocol error"},
+}
+
+// Signal table
+var signalList = [...]struct {
+ num syscall.Signal
+ name string
+ desc string
+}{
+ {1, "SIGHUP", "hangup"},
+ {2, "SIGINT", "interrupt"},
+ {3, "SIGQUIT", "quit"},
+ {4, "SIGILL", "illegal instruction"},
+ {5, "SIGTRAP", "trace/BPT trap"},
+ {6, "SIGIOT", "abort trap"},
+ {7, "SIGEMT", "EMT trap"},
+ {8, "SIGFPE", "floating point exception"},
+ {9, "SIGKILL", "killed"},
+ {10, "SIGBUS", "bus error"},
+ {11, "SIGSEGV", "segmentation fault"},
+ {12, "SIGSYS", "bad system call"},
+ {13, "SIGPIPE", "broken pipe"},
+ {14, "SIGALRM", "alarm clock"},
+ {15, "SIGTERM", "terminated"},
+ {16, "SIGURG", "urgent I/O condition"},
+ {17, "SIGSTOP", "stopped (signal)"},
+ {18, "SIGTSTP", "stopped"},
+ {19, "SIGCONT", "continued"},
+ {20, "SIGCHLD", "child exited"},
+ {21, "SIGTTIN", "stopped (tty input)"},
+ {22, "SIGTTOU", "stopped (tty output)"},
+ {23, "SIGIO", "I/O possible"},
+ {24, "SIGXCPU", "cputime limit exceeded"},
+ {25, "SIGXFSZ", "filesize limit exceeded"},
+ {26, "SIGVTALRM", "virtual timer expired"},
+ {27, "SIGPROF", "profiling timer expired"},
+ {28, "SIGWINCH", "window size changes"},
+ {29, "SIGINFO", "information request"},
+ {30, "SIGUSR1", "user defined signal 1"},
+ {31, "SIGUSR2", "user defined signal 2"},
+ {32, "SIGPWR", "power fail/restart"},
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go
index 6bae21e5d8..79f6e0566e 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go
@@ -1,4 +1,4 @@
-// mksyscall_aix_ppc.pl -aix -tags aix,ppc syscall_aix.go syscall_aix_ppc.go
+// go run mksyscall_aix_ppc.go -aix -tags aix,ppc syscall_aix.go syscall_aix_ppc.go
// Code generated by the command above; see README.md. DO NOT EDIT.
// +build aix,ppc
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go
index 3e929e520e..e645a05cbe 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go
@@ -1,4 +1,4 @@
-// mksyscall_aix_ppc64.pl -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go
+// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go
// Code generated by the command above; see README.md. DO NOT EDIT.
// +build aix,ppc64
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go
index a185ee8424..0b8eb72102 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go
@@ -1,4 +1,4 @@
-// mksyscall_aix_ppc64.pl -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go
+// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go
// Code generated by the command above; see README.md. DO NOT EDIT.
// +build aix,ppc64
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go
index aef7c0e784..e88a442787 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go
@@ -1,4 +1,4 @@
-// mksyscall_aix_ppc64.pl -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go
+// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go
// Code generated by the command above; see README.md. DO NOT EDIT.
// +build aix,ppc64
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
index b50178d679..c142e33e92 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
@@ -943,6 +943,21 @@ func libc_chroot_trampoline()
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func ClockGettime(clockid int32, time *Timespec) (err error) {
+ _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+func libc_clock_gettime_trampoline()
+
+//go:linkname libc_clock_gettime libc_clock_gettime
+//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Close(fd int) (err error) {
_, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0)
if e1 != 0 {
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s
index da9b900a8c..1a3915197d 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s
@@ -108,6 +108,8 @@ TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0
JMP libc_chown(SB)
TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0
JMP libc_chroot(SB)
+TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0
+ JMP libc_clock_gettime(SB)
TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0
JMP libc_close(SB)
TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
index da9986dd21..ae9f1a21e6 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
@@ -1194,6 +1194,26 @@ func Rename(from string, to string) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Renameat(fromfd int, from string, tofd int, to string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(from)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(to)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Revoke(path string) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
index 5356a51759..c8b451000b 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
@@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {
+ _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Close(fd int) (err error) {
_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
if e1 != 0 {
@@ -1195,26 +1205,6 @@ func Removexattr(path string, attr string) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
- var _p0 *byte
- _p0, err = BytePtrFromString(oldpath)
- if err != nil {
- return
- }
- var _p1 *byte
- _p1, err = BytePtrFromString(newpath)
- if err != nil {
- return
- }
- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- if e1 != 0 {
- err = errnoErr(e1)
- }
- return
-}
-
-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-
func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(oldpath)
@@ -1370,6 +1360,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+ SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
@@ -1901,6 +1898,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(oldpath)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(newpath)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
written = int(r0)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
index 0f6d265d8b..2aac3184bc 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
@@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {
+ _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Close(fd int) (err error) {
_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
if e1 != 0 {
@@ -1195,26 +1205,6 @@ func Removexattr(path string, attr string) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
- var _p0 *byte
- _p0, err = BytePtrFromString(oldpath)
- if err != nil {
- return
- }
- var _p1 *byte
- _p1, err = BytePtrFromString(newpath)
- if err != nil {
- return
- }
- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- if e1 != 0 {
- err = errnoErr(e1)
- }
- return
-}
-
-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-
func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(oldpath)
@@ -1370,6 +1360,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+ SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
@@ -1906,6 +1903,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(oldpath)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(newpath)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Seek(fd int, offset int64, whence int) (off int64, err error) {
r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
off = int64(r0)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
index 012261ad54..13c06c2815 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
@@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {
+ _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Close(fd int) (err error) {
_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
if e1 != 0 {
@@ -1195,26 +1205,6 @@ func Removexattr(path string, attr string) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
- var _p0 *byte
- _p0, err = BytePtrFromString(oldpath)
- if err != nil {
- return
- }
- var _p1 *byte
- _p1, err = BytePtrFromString(newpath)
- if err != nil {
- return
- }
- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- if e1 != 0 {
- err = errnoErr(e1)
- }
- return
-}
-
-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-
func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(oldpath)
@@ -1370,6 +1360,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+ SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
@@ -2016,6 +2013,26 @@ func Pause() (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(oldpath)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(newpath)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
written = int(r0)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
index b890cb03c6..737fa8d181 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
@@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {
+ _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Close(fd int) (err error) {
_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
if e1 != 0 {
@@ -1195,26 +1205,6 @@ func Removexattr(path string, attr string) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
- var _p0 *byte
- _p0, err = BytePtrFromString(oldpath)
- if err != nil {
- return
- }
- var _p1 *byte
- _p1, err = BytePtrFromString(newpath)
- if err != nil {
- return
- }
- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- if e1 != 0 {
- err = errnoErr(e1)
- }
- return
-}
-
-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-
func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(oldpath)
@@ -1370,6 +1360,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+ SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
@@ -1829,6 +1826,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(oldpath)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(newpath)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Seek(fd int, offset int64, whence int) (off int64, err error) {
r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
off = int64(r0)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
index cc17b43d35..0a85f3f8db 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
@@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {
+ _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Close(fd int) (err error) {
_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
if e1 != 0 {
@@ -1195,26 +1205,6 @@ func Removexattr(path string, attr string) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
- var _p0 *byte
- _p0, err = BytePtrFromString(oldpath)
- if err != nil {
- return
- }
- var _p1 *byte
- _p1, err = BytePtrFromString(newpath)
- if err != nil {
- return
- }
- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- if e1 != 0 {
- err = errnoErr(e1)
- }
- return
-}
-
-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-
func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(oldpath)
@@ -1370,6 +1360,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+ SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
@@ -1820,6 +1817,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(oldpath)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(newpath)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
n = int(r0)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
index 25026415dd..ec7007e781 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
@@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {
+ _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Close(fd int) (err error) {
_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
if e1 != 0 {
@@ -1195,26 +1205,6 @@ func Removexattr(path string, attr string) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
- var _p0 *byte
- _p0, err = BytePtrFromString(oldpath)
- if err != nil {
- return
- }
- var _p1 *byte
- _p1, err = BytePtrFromString(newpath)
- if err != nil {
- return
- }
- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- if e1 != 0 {
- err = errnoErr(e1)
- }
- return
-}
-
-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-
func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(oldpath)
@@ -1370,6 +1360,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+ SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
@@ -1850,6 +1847,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(oldpath)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(newpath)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Seek(fd int, offset int64, whence int) (off int64, err error) {
r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
off = int64(r0)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
index 83d8bb8af8..c5bb25d964 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
@@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {
+ _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Close(fd int) (err error) {
_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
if e1 != 0 {
@@ -1195,26 +1205,6 @@ func Removexattr(path string, attr string) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
- var _p0 *byte
- _p0, err = BytePtrFromString(oldpath)
- if err != nil {
- return
- }
- var _p1 *byte
- _p1, err = BytePtrFromString(newpath)
- if err != nil {
- return
- }
- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- if e1 != 0 {
- err = errnoErr(e1)
- }
- return
-}
-
-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-
func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(oldpath)
@@ -1370,6 +1360,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+ SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
@@ -1850,6 +1847,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(oldpath)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(newpath)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Seek(fd int, offset int64, whence int) (off int64, err error) {
r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
off = int64(r0)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
index b16b3e1029..26ada0478f 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
@@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {
+ _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Close(fd int) (err error) {
_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
if e1 != 0 {
@@ -1195,26 +1205,6 @@ func Removexattr(path string, attr string) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
- var _p0 *byte
- _p0, err = BytePtrFromString(oldpath)
- if err != nil {
- return
- }
- var _p1 *byte
- _p1, err = BytePtrFromString(newpath)
- if err != nil {
- return
- }
- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- if e1 != 0 {
- err = errnoErr(e1)
- }
- return
-}
-
-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-
func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(oldpath)
@@ -1370,6 +1360,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+ SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
@@ -1820,6 +1817,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(oldpath)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(newpath)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
n = int(r0)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
index 27b6a6bf0e..2da9cb700a 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
@@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {
+ _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Close(fd int) (err error) {
_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
if e1 != 0 {
@@ -1195,26 +1205,6 @@ func Removexattr(path string, attr string) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
- var _p0 *byte
- _p0, err = BytePtrFromString(oldpath)
- if err != nil {
- return
- }
- var _p1 *byte
- _p1, err = BytePtrFromString(newpath)
- if err != nil {
- return
- }
- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- if e1 != 0 {
- err = errnoErr(e1)
- }
- return
-}
-
-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-
func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(oldpath)
@@ -1370,6 +1360,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+ SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
@@ -1921,6 +1918,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(oldpath)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(newpath)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Seek(fd int, offset int64, whence int) (off int64, err error) {
r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
off = int64(r0)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
index f7ecc9afda..772733d83f 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
@@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {
+ _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Close(fd int) (err error) {
_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
if e1 != 0 {
@@ -1195,26 +1205,6 @@ func Removexattr(path string, attr string) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
- var _p0 *byte
- _p0, err = BytePtrFromString(oldpath)
- if err != nil {
- return
- }
- var _p1 *byte
- _p1, err = BytePtrFromString(newpath)
- if err != nil {
- return
- }
- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- if e1 != 0 {
- err = errnoErr(e1)
- }
- return
-}
-
-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-
func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(oldpath)
@@ -1370,6 +1360,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+ SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
@@ -1921,6 +1918,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(oldpath)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(newpath)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Seek(fd int, offset int64, whence int) (off int64, err error) {
r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
off = int64(r0)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go
index e3cd4e53f9..996eba517a 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go
@@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {
+ _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Close(fd int) (err error) {
_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
if e1 != 0 {
@@ -1195,26 +1205,6 @@ func Removexattr(path string, attr string) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
- var _p0 *byte
- _p0, err = BytePtrFromString(oldpath)
- if err != nil {
- return
- }
- var _p1 *byte
- _p1, err = BytePtrFromString(newpath)
- if err != nil {
- return
- }
- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- if e1 != 0 {
- err = errnoErr(e1)
- }
- return
-}
-
-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-
func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(oldpath)
@@ -1370,6 +1360,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+ SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
index 3001d37981..cb9072a33a 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
@@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {
+ _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Close(fd int) (err error) {
_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
if e1 != 0 {
@@ -1195,26 +1205,6 @@ func Removexattr(path string, attr string) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
- var _p0 *byte
- _p0, err = BytePtrFromString(oldpath)
- if err != nil {
- return
- }
- var _p1 *byte
- _p1, err = BytePtrFromString(newpath)
- if err != nil {
- return
- }
- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- if e1 != 0 {
- err = errnoErr(e1)
- }
- return
-}
-
-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-
func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(oldpath)
@@ -1370,6 +1360,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+ SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
@@ -1891,6 +1888,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(oldpath)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(newpath)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Seek(fd int, offset int64, whence int) (off int64, err error) {
r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
off = int64(r0)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
index aafe3660fa..5e48a1001b 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
@@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {
+ _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Close(fd int) (err error) {
_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
if e1 != 0 {
@@ -1195,26 +1205,6 @@ func Removexattr(path string, attr string) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
- var _p0 *byte
- _p0, err = BytePtrFromString(oldpath)
- if err != nil {
- return
- }
- var _p1 *byte
- _p1, err = BytePtrFromString(newpath)
- if err != nil {
- return
- }
- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- if e1 != 0 {
- err = errnoErr(e1)
- }
- return
-}
-
-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-
func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(oldpath)
@@ -1370,6 +1360,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+ SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
@@ -1890,6 +1887,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(oldpath)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(newpath)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Seek(fd int, offset int64, whence int) (off int64, err error) {
r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
off = int64(r0)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go
new file mode 100644
index 0000000000..603d144334
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go
@@ -0,0 +1,1826 @@
+// go run mksyscall.go -netbsd -tags netbsd,arm64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm64.go
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build netbsd,arm64
+
+package unix
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+var _ syscall.Errno
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+ wpid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(s int, how int) (err error) {
+ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+ var _p0 unsafe.Pointer
+ if len(mib) > 0 {
+ _p0 = unsafe.Pointer(&mib[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimes(path string, timeval *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func futimes(fd int, timeval *[2]Timeval) (err error) {
+ _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fcntl(fd int, cmd int, arg int) (val int, err error) {
+ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+ val = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Madvise(b []byte, behav int) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Msync(b []byte, flags int) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlock(b []byte) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe() (fd1 int, fd2 int, err error) {
+ r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+ fd1 = int(r0)
+ fd2 = int(r1)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getdents(fd int, buf []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getcwd(buf []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ioctl(fd int, req uint, arg uintptr) (err error) {
+ _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+ _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chdir(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chflags(path string, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chmod(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chown(path string, uid int, gid int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Chroot(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Close(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup(fd int) (nfd int, err error) {
+ r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
+ nfd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(from int, to int) (err error) {
+ _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Exit(code int) {
+ Syscall(SYS_EXIT, uintptr(code), 0, 0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(attrname)
+ if err != nil {
+ return
+ }
+ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
+ ret = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(attrname)
+ if err != nil {
+ return
+ }
+ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
+ ret = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(attrname)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
+ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
+ ret = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(file)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(attrname)
+ if err != nil {
+ return
+ }
+ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
+ ret = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(file)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(attrname)
+ if err != nil {
+ return
+ }
+ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
+ ret = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(file)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(attrname)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(file)
+ if err != nil {
+ return
+ }
+ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
+ ret = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(link)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(attrname)
+ if err != nil {
+ return
+ }
+ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
+ ret = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(link)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(attrname)
+ if err != nil {
+ return
+ }
+ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
+ ret = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(link)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(attrname)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(link)
+ if err != nil {
+ return
+ }
+ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
+ ret = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+ _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchdir(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchflags(fd int, flags int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchmod(fd int, mode uint32) (err error) {
+ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Flock(fd int, how int) (err error) {
+ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fpathconf(fd int, name int) (val int, err error) {
+ r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
+ val = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fsync(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (uid int) {
+ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+ uid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+ gid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgid(pid int) (pgid int, err error) {
+ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+ pgid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpgrp() (pgrp int) {
+ r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
+ pgrp = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpid() (pid int) {
+ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+ pid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getppid() (ppid int) {
+ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+ ppid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getpriority(which int, who int) (prio int, err error) {
+ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+ prio = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(which int, lim *Rlimit) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrusage(who int, rusage *Rusage) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getsid(pid int) (sid int, err error) {
+ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+ sid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Issetugid() (tainted bool) {
+ r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)
+ tainted = bool(r0 != 0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kill(pid int, signum syscall.Signal) (err error) {
+ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Kqueue() (fd int, err error) {
+ r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Link(path string, link string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(link)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(link)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, backlog int) (err error) {
+ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat(path string, stat *Stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkdir(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkfifo(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mknod(path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Open(path string, mode int, perm uint32) (fd int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pathconf(path string, name int) (val int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+ val = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func read(fd int, p []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlink(path string, buf []byte) (n int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 unsafe.Pointer
+ if len(buf) > 0 {
+ _p1 = unsafe.Pointer(&buf[0])
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 unsafe.Pointer
+ if len(buf) > 0 {
+ _p1 = unsafe.Pointer(&buf[0])
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rename(from string, to string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(from)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(to)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Renameat(fromfd int, from string, tofd int, to string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(from)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(to)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Revoke(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Rmdir(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)
+ newoffset = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+ _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setegid(egid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seteuid(euid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setgid(gid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpgid(pid int, pgid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(which int, lim *Rlimit) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setsid() (pid int, err error) {
+ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+ pid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Settimeofday(tp *Timeval) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setuid(uid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlink(path string, link string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(link)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(oldpath)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(newpath)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Sync() (err error) {
+ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Umask(newmask int) (oldmask int) {
+ r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
+ oldmask = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlink(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unlinkat(dirfd int, path string, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Unmount(path string, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func write(fd int, p []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+ r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)
+ ret = uintptr(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
index 97b22a499e..5f614760c6 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
@@ -1,4 +1,4 @@
-// mksyscall_solaris.pl -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go
+// go run mksyscall_solaris.go -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go
// Code generated by the command above; see README.md. DO NOT EDIT.
// +build solaris,amd64
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go
index 9e2837e0e3..654dd3da3b 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go
@@ -1,4 +1,4 @@
-// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/syscall.h
+// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/syscall.h
// Code generated by the command above; see README.md. DO NOT EDIT.
// +build amd64,darwin
@@ -431,6 +431,8 @@ const (
SYS_NTP_ADJTIME = 527
SYS_NTP_GETTIME = 528
SYS_OS_FAULT_WITH_PAYLOAD = 529
- SYS_MAXSYSCALL = 530
+ SYS_KQUEUE_WORKLOOP_CTL = 530
+ SYS___MACH_BRIDGE_REMOTE_TIME = 531
+ SYS_MAXSYSCALL = 532
SYS_INVALID = 63
)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go
index ff3976edbb..464c9a9832 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go
@@ -1,4 +1,4 @@
-// go run mksysnum.go http://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master
+// go run mksysnum.go https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master
// Code generated by the command above; see README.md. DO NOT EDIT.
// +build amd64,dragonfly
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go
index b1e81b7172..55c3a32945 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go
@@ -1,4 +1,4 @@
-// go run mksysnum.go http://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master
+// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master
// Code generated by the command above; see README.md. DO NOT EDIT.
// +build 386,freebsd
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go
index 73e277fe7a..b39be6cb8f 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go
@@ -1,4 +1,4 @@
-// go run mksysnum.go http://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master
+// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master
// Code generated by the command above; see README.md. DO NOT EDIT.
// +build amd64,freebsd
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go
index e12b469196..44ffd4ce5e 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go
@@ -1,4 +1,4 @@
-// go run mksysnum.go http://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master
+// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master
// Code generated by the command above; see README.md. DO NOT EDIT.
// +build arm,freebsd
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go
index 8c1e16ca51..9f21e9550e 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go
@@ -1,4 +1,4 @@
-// mksysnum_freebsd.pl
+// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master
// Code generated by the command above; see README.md. DO NOT EDIT.
// +build arm64,freebsd
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go
new file mode 100644
index 0000000000..0291c0931b
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go
@@ -0,0 +1,274 @@
+// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master
+// Code generated by the command above; DO NOT EDIT.
+
+// +build arm64,netbsd
+
+package unix
+
+const (
+ SYS_EXIT = 1 // { void|sys||exit(int rval); }
+ SYS_FORK = 2 // { int|sys||fork(void); }
+ SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
+ SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }
+ SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); }
+ SYS_CLOSE = 6 // { int|sys||close(int fd); }
+ SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); }
+ SYS_UNLINK = 10 // { int|sys||unlink(const char *path); }
+ SYS_CHDIR = 12 // { int|sys||chdir(const char *path); }
+ SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); }
+ SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); }
+ SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }
+ SYS_BREAK = 17 // { int|sys||obreak(char *nsize); }
+ SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); }
+ SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); }
+ SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); }
+ SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); }
+ SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); }
+ SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }
+ SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }
+ SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }
+ SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }
+ SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }
+ SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }
+ SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }
+ SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); }
+ SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); }
+ SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); }
+ SYS_SYNC = 36 // { void|sys||sync(void); }
+ SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); }
+ SYS_GETPPID = 39 // { pid_t|sys||getppid(void); }
+ SYS_DUP = 41 // { int|sys||dup(int fd); }
+ SYS_PIPE = 42 // { int|sys||pipe(void); }
+ SYS_GETEGID = 43 // { gid_t|sys||getegid(void); }
+ SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }
+ SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }
+ SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); }
+ SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); }
+ SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); }
+ SYS_ACCT = 51 // { int|sys||acct(const char *path); }
+ SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); }
+ SYS_REVOKE = 56 // { int|sys||revoke(const char *path); }
+ SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); }
+ SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }
+ SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }
+ SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); }
+ SYS_CHROOT = 61 // { int|sys||chroot(const char *path); }
+ SYS_VFORK = 66 // { int|sys||vfork(void); }
+ SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); }
+ SYS_SSTK = 70 // { int|sys||sstk(int incr); }
+ SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); }
+ SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); }
+ SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); }
+ SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); }
+ SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); }
+ SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }
+ SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }
+ SYS_GETPGRP = 81 // { int|sys||getpgrp(void); }
+ SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); }
+ SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); }
+ SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); }
+ SYS_FSYNC = 95 // { int|sys||fsync(int fd); }
+ SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); }
+ SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }
+ SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); }
+ SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }
+ SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }
+ SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); }
+ SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }
+ SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }
+ SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }
+ SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }
+ SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); }
+ SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }
+ SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }
+ SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); }
+ SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); }
+ SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }
+ SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }
+ SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); }
+ SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }
+ SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); }
+ SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); }
+ SYS_SETSID = 147 // { int|sys||setsid(void); }
+ SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); }
+ SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }
+ SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }
+ SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); }
+ SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); }
+ SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); }
+ SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); }
+ SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); }
+ SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); }
+ SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }
+ SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }
+ SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }
+ SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }
+ SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }
+ SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }
+ SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }
+ SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); }
+ SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); }
+ SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); }
+ SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); }
+ SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); }
+ SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }
+ SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }
+ SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }
+ SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); }
+ SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); }
+ SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
+ SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
+ SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }
+ SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); }
+ SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }
+ SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }
+ SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); }
+ SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); }
+ SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); }
+ SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); }
+ SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); }
+ SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }
+ SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); }
+ SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); }
+ SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }
+ SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }
+ SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); }
+ SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }
+ SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }
+ SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }
+ SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }
+ SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }
+ SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); }
+ SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); }
+ SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }
+ SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }
+ SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }
+ SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); }
+ SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); }
+ SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); }
+ SYS_ISSETUGID = 305 // { int|sys||issetugid(void); }
+ SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }
+ SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); }
+ SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }
+ SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }
+ SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); }
+ SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); }
+ SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }
+ SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); }
+ SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); }
+ SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }
+ SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); }
+ SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); }
+ SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }
+ SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); }
+ SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }
+ SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }
+ SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }
+ SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }
+ SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }
+ SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }
+ SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }
+ SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }
+ SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }
+ SYS_KQUEUE = 344 // { int|sys||kqueue(void); }
+ SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }
+ SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }
+ SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }
+ SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }
+ SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); }
+ SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }
+ SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); }
+ SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }
+ SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }
+ SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }
+ SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }
+ SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }
+ SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
+ SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }
+ SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }
+ SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
+ SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }
+ SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }
+ SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
+ SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }
+ SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }
+ SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }
+ SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }
+ SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }
+ SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }
+ SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }
+ SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }
+ SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }
+ SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }
+ SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }
+ SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }
+ SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }
+ SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); }
+ SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); }
+ SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); }
+ SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }
+ SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); }
+ SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }
+ SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }
+ SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }
+ SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); }
+ SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); }
+ SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }
+ SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }
+ SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }
+ SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }
+ SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }
+ SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }
+ SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }
+ SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }
+ SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }
+ SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }
+ SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }
+ SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }
+ SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }
+ SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }
+ SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }
+ SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
+ SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }
+ SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }
+ SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }
+ SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }
+ SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }
+ SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }
+ SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }
+ SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }
+ SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }
+ SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }
+ SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }
+ SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }
+ SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }
+ SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }
+ SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }
+ SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }
+ SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }
+ SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }
+ SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); }
+ SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); }
+ SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); }
+ SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }
+ SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }
+ SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }
+ SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }
+ SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }
+ SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }
+ SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }
+ SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }
+ SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }
+ SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }
+ SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }
+ SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }
+ SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }
+ SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }
+ SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }
+ SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }
+ SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }
+ SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }
+ SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }
+ SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }
+ SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go
index d5bf3c4499..b0207d1c9b 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go
@@ -1,4 +1,4 @@
-// go run mksysnum.go http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master
+// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master
// Code generated by the command above; see README.md. DO NOT EDIT.
// +build 386,openbsd
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go
index cbcfdfb336..f0dec6f0b4 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go
@@ -1,4 +1,4 @@
-// go run mksysnum.go http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master
+// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master
// Code generated by the command above; see README.md. DO NOT EDIT.
// +build amd64,openbsd
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go
index a84cead963..33d1dc5404 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go
@@ -1,4 +1,4 @@
-// go run mksysnum.go http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master
+// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master
// Code generated by the command above; see README.md. DO NOT EDIT.
// +build arm,openbsd
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
index ebf10d48d3..18724670a8 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
@@ -405,6 +405,11 @@ type TCPInfo struct {
Total_retrans uint32
}
+type CanFilter struct {
+ Id uint32
+ Mask uint32
+}
+
const (
SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c
@@ -434,6 +439,7 @@ const (
SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc
SizeofTCPInfo = 0x68
+ SizeofCanFilter = 0x8
)
const (
@@ -569,6 +575,7 @@ const (
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
+ SizeofNdUseroptmsg = 0x10
)
type NlMsghdr struct {
@@ -634,6 +641,17 @@ type RtNexthop struct {
Ifindex int32
}
+type NdUseroptmsg struct {
+ Family uint8
+ Pad1 uint8
+ Opts_len uint16
+ Ifindex int32
+ Icmp_type uint8
+ Icmp_code uint8
+ Pad2 uint16
+ Pad3 uint32
+}
+
const (
SizeofSockFilter = 0x8
SizeofSockFprog = 0x8
@@ -759,7 +777,30 @@ type Sigset_t struct {
Val [32]uint32
}
-const RNDGETENTCNT = 0x80045200
+type SignalfdSiginfo struct {
+ Signo uint32
+ Errno int32
+ Code int32
+ Pid uint32
+ Uid uint32
+ Fd int32
+ Tid uint32
+ Band uint32
+ Overrun uint32
+ Trapno uint32
+ Status int32
+ Int int32
+ Ptr uint64
+ Utime uint64
+ Stime uint64
+ Addr uint64
+ Addr_lsb uint16
+ _ uint16
+ Syscall int32
+ Call_addr uint64
+ Arch uint32
+ _ [28]uint8
+}
const PERF_IOC_FLAG_GROUP = 0x1
@@ -1964,6 +2005,10 @@ const (
NCSI_CHANNEL_ATTR_VLAN_ID = 0xa
)
+type ScmTimestamping struct {
+ Ts [3]Timespec
+}
+
const (
SOF_TIMESTAMPING_TX_HARDWARE = 0x1
SOF_TIMESTAMPING_TX_SOFTWARE = 0x2
@@ -1983,4 +2028,18 @@ const (
SOF_TIMESTAMPING_LAST = 0x4000
SOF_TIMESTAMPING_MASK = 0x7fff
+
+ SCM_TSTAMP_SND = 0x0
+ SCM_TSTAMP_SCHED = 0x1
+ SCM_TSTAMP_ACK = 0x2
)
+
+type SockExtendedErr struct {
+ Errno uint32
+ Origin uint8
+ Type uint8
+ Code uint8
+ Pad uint8
+ Info uint32
+ Data uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
index 99a6900d21..6ddbf0665c 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
@@ -406,6 +406,11 @@ type TCPInfo struct {
Total_retrans uint32
}
+type CanFilter struct {
+ Id uint32
+ Mask uint32
+}
+
const (
SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c
@@ -435,6 +440,7 @@ const (
SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc
SizeofTCPInfo = 0x68
+ SizeofCanFilter = 0x8
)
const (
@@ -570,6 +576,7 @@ const (
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
+ SizeofNdUseroptmsg = 0x10
)
type NlMsghdr struct {
@@ -635,6 +642,17 @@ type RtNexthop struct {
Ifindex int32
}
+type NdUseroptmsg struct {
+ Family uint8
+ Pad1 uint8
+ Opts_len uint16
+ Ifindex int32
+ Icmp_type uint8
+ Icmp_code uint8
+ Pad2 uint16
+ Pad3 uint32
+}
+
const (
SizeofSockFilter = 0x8
SizeofSockFprog = 0x10
@@ -772,7 +790,30 @@ type Sigset_t struct {
Val [16]uint64
}
-const RNDGETENTCNT = 0x80045200
+type SignalfdSiginfo struct {
+ Signo uint32
+ Errno int32
+ Code int32
+ Pid uint32
+ Uid uint32
+ Fd int32
+ Tid uint32
+ Band uint32
+ Overrun uint32
+ Trapno uint32
+ Status int32
+ Int int32
+ Ptr uint64
+ Utime uint64
+ Stime uint64
+ Addr uint64
+ Addr_lsb uint16
+ _ uint16
+ Syscall int32
+ Call_addr uint64
+ Arch uint32
+ _ [28]uint8
+}
const PERF_IOC_FLAG_GROUP = 0x1
@@ -1977,6 +2018,10 @@ const (
NCSI_CHANNEL_ATTR_VLAN_ID = 0xa
)
+type ScmTimestamping struct {
+ Ts [3]Timespec
+}
+
const (
SOF_TIMESTAMPING_TX_HARDWARE = 0x1
SOF_TIMESTAMPING_TX_SOFTWARE = 0x2
@@ -1996,4 +2041,18 @@ const (
SOF_TIMESTAMPING_LAST = 0x4000
SOF_TIMESTAMPING_MASK = 0x7fff
+
+ SCM_TSTAMP_SND = 0x0
+ SCM_TSTAMP_SCHED = 0x1
+ SCM_TSTAMP_ACK = 0x2
)
+
+type SockExtendedErr struct {
+ Errno uint32
+ Origin uint8
+ Type uint8
+ Code uint8
+ Pad uint8
+ Info uint32
+ Data uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
index 5ccc4b5414..b8e3ec1384 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
@@ -409,6 +409,11 @@ type TCPInfo struct {
Total_retrans uint32
}
+type CanFilter struct {
+ Id uint32
+ Mask uint32
+}
+
const (
SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c
@@ -438,6 +443,7 @@ const (
SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc
SizeofTCPInfo = 0x68
+ SizeofCanFilter = 0x8
)
const (
@@ -573,6 +579,7 @@ const (
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
+ SizeofNdUseroptmsg = 0x10
)
type NlMsghdr struct {
@@ -638,6 +645,17 @@ type RtNexthop struct {
Ifindex int32
}
+type NdUseroptmsg struct {
+ Family uint8
+ Pad1 uint8
+ Opts_len uint16
+ Ifindex int32
+ Icmp_type uint8
+ Icmp_code uint8
+ Pad2 uint16
+ Pad3 uint32
+}
+
const (
SizeofSockFilter = 0x8
SizeofSockFprog = 0x8
@@ -748,7 +766,30 @@ type Sigset_t struct {
Val [32]uint32
}
-const RNDGETENTCNT = 0x80045200
+type SignalfdSiginfo struct {
+ Signo uint32
+ Errno int32
+ Code int32
+ Pid uint32
+ Uid uint32
+ Fd int32
+ Tid uint32
+ Band uint32
+ Overrun uint32
+ Trapno uint32
+ Status int32
+ Int int32
+ Ptr uint64
+ Utime uint64
+ Stime uint64
+ Addr uint64
+ Addr_lsb uint16
+ _ uint16
+ Syscall int32
+ Call_addr uint64
+ Arch uint32
+ _ [28]uint8
+}
const PERF_IOC_FLAG_GROUP = 0x1
@@ -1955,6 +1996,10 @@ const (
NCSI_CHANNEL_ATTR_VLAN_ID = 0xa
)
+type ScmTimestamping struct {
+ Ts [3]Timespec
+}
+
const (
SOF_TIMESTAMPING_TX_HARDWARE = 0x1
SOF_TIMESTAMPING_TX_SOFTWARE = 0x2
@@ -1974,4 +2019,18 @@ const (
SOF_TIMESTAMPING_LAST = 0x4000
SOF_TIMESTAMPING_MASK = 0x7fff
+
+ SCM_TSTAMP_SND = 0x0
+ SCM_TSTAMP_SCHED = 0x1
+ SCM_TSTAMP_ACK = 0x2
)
+
+type SockExtendedErr struct {
+ Errno uint32
+ Origin uint8
+ Type uint8
+ Code uint8
+ Pad uint8
+ Info uint32
+ Data uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
index be375d9bb2..2f73f0086d 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
@@ -407,6 +407,11 @@ type TCPInfo struct {
Total_retrans uint32
}
+type CanFilter struct {
+ Id uint32
+ Mask uint32
+}
+
const (
SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c
@@ -436,6 +441,7 @@ const (
SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc
SizeofTCPInfo = 0x68
+ SizeofCanFilter = 0x8
)
const (
@@ -571,6 +577,7 @@ const (
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
+ SizeofNdUseroptmsg = 0x10
)
type NlMsghdr struct {
@@ -636,6 +643,17 @@ type RtNexthop struct {
Ifindex int32
}
+type NdUseroptmsg struct {
+ Family uint8
+ Pad1 uint8
+ Opts_len uint16
+ Ifindex int32
+ Icmp_type uint8
+ Icmp_code uint8
+ Pad2 uint16
+ Pad3 uint32
+}
+
const (
SizeofSockFilter = 0x8
SizeofSockFprog = 0x10
@@ -751,7 +769,30 @@ type Sigset_t struct {
Val [16]uint64
}
-const RNDGETENTCNT = 0x80045200
+type SignalfdSiginfo struct {
+ Signo uint32
+ Errno int32
+ Code int32
+ Pid uint32
+ Uid uint32
+ Fd int32
+ Tid uint32
+ Band uint32
+ Overrun uint32
+ Trapno uint32
+ Status int32
+ Int int32
+ Ptr uint64
+ Utime uint64
+ Stime uint64
+ Addr uint64
+ Addr_lsb uint16
+ _ uint16
+ Syscall int32
+ Call_addr uint64
+ Arch uint32
+ _ [28]uint8
+}
const PERF_IOC_FLAG_GROUP = 0x1
@@ -1956,6 +1997,10 @@ const (
NCSI_CHANNEL_ATTR_VLAN_ID = 0xa
)
+type ScmTimestamping struct {
+ Ts [3]Timespec
+}
+
const (
SOF_TIMESTAMPING_TX_HARDWARE = 0x1
SOF_TIMESTAMPING_TX_SOFTWARE = 0x2
@@ -1975,4 +2020,18 @@ const (
SOF_TIMESTAMPING_LAST = 0x4000
SOF_TIMESTAMPING_MASK = 0x7fff
+
+ SCM_TSTAMP_SND = 0x0
+ SCM_TSTAMP_SCHED = 0x1
+ SCM_TSTAMP_ACK = 0x2
)
+
+type SockExtendedErr struct {
+ Errno uint32
+ Origin uint8
+ Type uint8
+ Code uint8
+ Pad uint8
+ Info uint32
+ Data uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
index 195f7e1f85..4a2a18bcb0 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
@@ -408,6 +408,11 @@ type TCPInfo struct {
Total_retrans uint32
}
+type CanFilter struct {
+ Id uint32
+ Mask uint32
+}
+
const (
SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c
@@ -437,6 +442,7 @@ const (
SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc
SizeofTCPInfo = 0x68
+ SizeofCanFilter = 0x8
)
const (
@@ -572,6 +578,7 @@ const (
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
+ SizeofNdUseroptmsg = 0x10
)
type NlMsghdr struct {
@@ -637,6 +644,17 @@ type RtNexthop struct {
Ifindex int32
}
+type NdUseroptmsg struct {
+ Family uint8
+ Pad1 uint8
+ Opts_len uint16
+ Ifindex int32
+ Icmp_type uint8
+ Icmp_code uint8
+ Pad2 uint16
+ Pad3 uint32
+}
+
const (
SizeofSockFilter = 0x8
SizeofSockFprog = 0x8
@@ -753,7 +771,30 @@ type Sigset_t struct {
Val [32]uint32
}
-const RNDGETENTCNT = 0x40045200
+type SignalfdSiginfo struct {
+ Signo uint32
+ Errno int32
+ Code int32
+ Pid uint32
+ Uid uint32
+ Fd int32
+ Tid uint32
+ Band uint32
+ Overrun uint32
+ Trapno uint32
+ Status int32
+ Int int32
+ Ptr uint64
+ Utime uint64
+ Stime uint64
+ Addr uint64
+ Addr_lsb uint16
+ _ uint16
+ Syscall int32
+ Call_addr uint64
+ Arch uint32
+ _ [28]uint8
+}
const PERF_IOC_FLAG_GROUP = 0x1
@@ -1961,6 +2002,10 @@ const (
NCSI_CHANNEL_ATTR_VLAN_ID = 0xa
)
+type ScmTimestamping struct {
+ Ts [3]Timespec
+}
+
const (
SOF_TIMESTAMPING_TX_HARDWARE = 0x1
SOF_TIMESTAMPING_TX_SOFTWARE = 0x2
@@ -1980,4 +2025,18 @@ const (
SOF_TIMESTAMPING_LAST = 0x4000
SOF_TIMESTAMPING_MASK = 0x7fff
+
+ SCM_TSTAMP_SND = 0x0
+ SCM_TSTAMP_SCHED = 0x1
+ SCM_TSTAMP_ACK = 0x2
)
+
+type SockExtendedErr struct {
+ Errno uint32
+ Origin uint8
+ Type uint8
+ Code uint8
+ Pad uint8
+ Info uint32
+ Data uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
index 77acf56985..41e4513de1 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
@@ -407,6 +407,11 @@ type TCPInfo struct {
Total_retrans uint32
}
+type CanFilter struct {
+ Id uint32
+ Mask uint32
+}
+
const (
SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c
@@ -436,6 +441,7 @@ const (
SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc
SizeofTCPInfo = 0x68
+ SizeofCanFilter = 0x8
)
const (
@@ -571,6 +577,7 @@ const (
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
+ SizeofNdUseroptmsg = 0x10
)
type NlMsghdr struct {
@@ -636,6 +643,17 @@ type RtNexthop struct {
Ifindex int32
}
+type NdUseroptmsg struct {
+ Family uint8
+ Pad1 uint8
+ Opts_len uint16
+ Ifindex int32
+ Icmp_type uint8
+ Icmp_code uint8
+ Pad2 uint16
+ Pad3 uint32
+}
+
const (
SizeofSockFilter = 0x8
SizeofSockFprog = 0x10
@@ -753,7 +771,30 @@ type Sigset_t struct {
Val [16]uint64
}
-const RNDGETENTCNT = 0x40045200
+type SignalfdSiginfo struct {
+ Signo uint32
+ Errno int32
+ Code int32
+ Pid uint32
+ Uid uint32
+ Fd int32
+ Tid uint32
+ Band uint32
+ Overrun uint32
+ Trapno uint32
+ Status int32
+ Int int32
+ Ptr uint64
+ Utime uint64
+ Stime uint64
+ Addr uint64
+ Addr_lsb uint16
+ _ uint16
+ Syscall int32
+ Call_addr uint64
+ Arch uint32
+ _ [28]uint8
+}
const PERF_IOC_FLAG_GROUP = 0x1
@@ -1958,6 +1999,10 @@ const (
NCSI_CHANNEL_ATTR_VLAN_ID = 0xa
)
+type ScmTimestamping struct {
+ Ts [3]Timespec
+}
+
const (
SOF_TIMESTAMPING_TX_HARDWARE = 0x1
SOF_TIMESTAMPING_TX_SOFTWARE = 0x2
@@ -1977,4 +2022,18 @@ const (
SOF_TIMESTAMPING_LAST = 0x4000
SOF_TIMESTAMPING_MASK = 0x7fff
+
+ SCM_TSTAMP_SND = 0x0
+ SCM_TSTAMP_SCHED = 0x1
+ SCM_TSTAMP_ACK = 0x2
)
+
+type SockExtendedErr struct {
+ Errno uint32
+ Origin uint8
+ Type uint8
+ Code uint8
+ Pad uint8
+ Info uint32
+ Data uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
index 2fb7498da6..4a3d74b76e 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
@@ -407,6 +407,11 @@ type TCPInfo struct {
Total_retrans uint32
}
+type CanFilter struct {
+ Id uint32
+ Mask uint32
+}
+
const (
SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c
@@ -436,6 +441,7 @@ const (
SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc
SizeofTCPInfo = 0x68
+ SizeofCanFilter = 0x8
)
const (
@@ -571,6 +577,7 @@ const (
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
+ SizeofNdUseroptmsg = 0x10
)
type NlMsghdr struct {
@@ -636,6 +643,17 @@ type RtNexthop struct {
Ifindex int32
}
+type NdUseroptmsg struct {
+ Family uint8
+ Pad1 uint8
+ Opts_len uint16
+ Ifindex int32
+ Icmp_type uint8
+ Icmp_code uint8
+ Pad2 uint16
+ Pad3 uint32
+}
+
const (
SizeofSockFilter = 0x8
SizeofSockFprog = 0x10
@@ -753,7 +771,30 @@ type Sigset_t struct {
Val [16]uint64
}
-const RNDGETENTCNT = 0x40045200
+type SignalfdSiginfo struct {
+ Signo uint32
+ Errno int32
+ Code int32
+ Pid uint32
+ Uid uint32
+ Fd int32
+ Tid uint32
+ Band uint32
+ Overrun uint32
+ Trapno uint32
+ Status int32
+ Int int32
+ Ptr uint64
+ Utime uint64
+ Stime uint64
+ Addr uint64
+ Addr_lsb uint16
+ _ uint16
+ Syscall int32
+ Call_addr uint64
+ Arch uint32
+ _ [28]uint8
+}
const PERF_IOC_FLAG_GROUP = 0x1
@@ -1958,6 +1999,10 @@ const (
NCSI_CHANNEL_ATTR_VLAN_ID = 0xa
)
+type ScmTimestamping struct {
+ Ts [3]Timespec
+}
+
const (
SOF_TIMESTAMPING_TX_HARDWARE = 0x1
SOF_TIMESTAMPING_TX_SOFTWARE = 0x2
@@ -1977,4 +2022,18 @@ const (
SOF_TIMESTAMPING_LAST = 0x4000
SOF_TIMESTAMPING_MASK = 0x7fff
+
+ SCM_TSTAMP_SND = 0x0
+ SCM_TSTAMP_SCHED = 0x1
+ SCM_TSTAMP_ACK = 0x2
)
+
+type SockExtendedErr struct {
+ Errno uint32
+ Origin uint8
+ Type uint8
+ Code uint8
+ Pad uint8
+ Info uint32
+ Data uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
index 41cb14863c..8ae3ca4e4e 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
@@ -408,6 +408,11 @@ type TCPInfo struct {
Total_retrans uint32
}
+type CanFilter struct {
+ Id uint32
+ Mask uint32
+}
+
const (
SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c
@@ -437,6 +442,7 @@ const (
SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc
SizeofTCPInfo = 0x68
+ SizeofCanFilter = 0x8
)
const (
@@ -572,6 +578,7 @@ const (
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
+ SizeofNdUseroptmsg = 0x10
)
type NlMsghdr struct {
@@ -637,6 +644,17 @@ type RtNexthop struct {
Ifindex int32
}
+type NdUseroptmsg struct {
+ Family uint8
+ Pad1 uint8
+ Opts_len uint16
+ Ifindex int32
+ Icmp_type uint8
+ Icmp_code uint8
+ Pad2 uint16
+ Pad3 uint32
+}
+
const (
SizeofSockFilter = 0x8
SizeofSockFprog = 0x8
@@ -753,7 +771,30 @@ type Sigset_t struct {
Val [32]uint32
}
-const RNDGETENTCNT = 0x40045200
+type SignalfdSiginfo struct {
+ Signo uint32
+ Errno int32
+ Code int32
+ Pid uint32
+ Uid uint32
+ Fd int32
+ Tid uint32
+ Band uint32
+ Overrun uint32
+ Trapno uint32
+ Status int32
+ Int int32
+ Ptr uint64
+ Utime uint64
+ Stime uint64
+ Addr uint64
+ Addr_lsb uint16
+ _ uint16
+ Syscall int32
+ Call_addr uint64
+ Arch uint32
+ _ [28]uint8
+}
const PERF_IOC_FLAG_GROUP = 0x1
@@ -1961,6 +2002,10 @@ const (
NCSI_CHANNEL_ATTR_VLAN_ID = 0xa
)
+type ScmTimestamping struct {
+ Ts [3]Timespec
+}
+
const (
SOF_TIMESTAMPING_TX_HARDWARE = 0x1
SOF_TIMESTAMPING_TX_SOFTWARE = 0x2
@@ -1980,4 +2025,18 @@ const (
SOF_TIMESTAMPING_LAST = 0x4000
SOF_TIMESTAMPING_MASK = 0x7fff
+
+ SCM_TSTAMP_SND = 0x0
+ SCM_TSTAMP_SCHED = 0x1
+ SCM_TSTAMP_ACK = 0x2
)
+
+type SockExtendedErr struct {
+ Errno uint32
+ Origin uint8
+ Type uint8
+ Code uint8
+ Pad uint8
+ Info uint32
+ Data uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
index 8e6b5fa68e..50294c94c0 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
@@ -408,6 +408,11 @@ type TCPInfo struct {
Total_retrans uint32
}
+type CanFilter struct {
+ Id uint32
+ Mask uint32
+}
+
const (
SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c
@@ -437,6 +442,7 @@ const (
SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc
SizeofTCPInfo = 0x68
+ SizeofCanFilter = 0x8
)
const (
@@ -572,6 +578,7 @@ const (
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
+ SizeofNdUseroptmsg = 0x10
)
type NlMsghdr struct {
@@ -637,6 +644,17 @@ type RtNexthop struct {
Ifindex int32
}
+type NdUseroptmsg struct {
+ Family uint8
+ Pad1 uint8
+ Opts_len uint16
+ Ifindex int32
+ Icmp_type uint8
+ Icmp_code uint8
+ Pad2 uint16
+ Pad3 uint32
+}
+
const (
SizeofSockFilter = 0x8
SizeofSockFprog = 0x10
@@ -761,7 +779,30 @@ type Sigset_t struct {
Val [16]uint64
}
-const RNDGETENTCNT = 0x40045200
+type SignalfdSiginfo struct {
+ Signo uint32
+ Errno int32
+ Code int32
+ Pid uint32
+ Uid uint32
+ Fd int32
+ Tid uint32
+ Band uint32
+ Overrun uint32
+ Trapno uint32
+ Status int32
+ Int int32
+ Ptr uint64
+ Utime uint64
+ Stime uint64
+ Addr uint64
+ Addr_lsb uint16
+ _ uint16
+ Syscall int32
+ Call_addr uint64
+ Arch uint32
+ _ [28]uint8
+}
const PERF_IOC_FLAG_GROUP = 0x1
@@ -1966,6 +2007,10 @@ const (
NCSI_CHANNEL_ATTR_VLAN_ID = 0xa
)
+type ScmTimestamping struct {
+ Ts [3]Timespec
+}
+
const (
SOF_TIMESTAMPING_TX_HARDWARE = 0x1
SOF_TIMESTAMPING_TX_SOFTWARE = 0x2
@@ -1985,4 +2030,18 @@ const (
SOF_TIMESTAMPING_LAST = 0x4000
SOF_TIMESTAMPING_MASK = 0x7fff
+
+ SCM_TSTAMP_SND = 0x0
+ SCM_TSTAMP_SCHED = 0x1
+ SCM_TSTAMP_ACK = 0x2
)
+
+type SockExtendedErr struct {
+ Errno uint32
+ Origin uint8
+ Type uint8
+ Code uint8
+ Pad uint8
+ Info uint32
+ Data uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
index 019d2d6a9d..d2acf3a734 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
@@ -408,6 +408,11 @@ type TCPInfo struct {
Total_retrans uint32
}
+type CanFilter struct {
+ Id uint32
+ Mask uint32
+}
+
const (
SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c
@@ -437,6 +442,7 @@ const (
SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc
SizeofTCPInfo = 0x68
+ SizeofCanFilter = 0x8
)
const (
@@ -572,6 +578,7 @@ const (
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
+ SizeofNdUseroptmsg = 0x10
)
type NlMsghdr struct {
@@ -637,6 +644,17 @@ type RtNexthop struct {
Ifindex int32
}
+type NdUseroptmsg struct {
+ Family uint8
+ Pad1 uint8
+ Opts_len uint16
+ Ifindex int32
+ Icmp_type uint8
+ Icmp_code uint8
+ Pad2 uint16
+ Pad3 uint32
+}
+
const (
SizeofSockFilter = 0x8
SizeofSockFprog = 0x10
@@ -761,7 +779,30 @@ type Sigset_t struct {
Val [16]uint64
}
-const RNDGETENTCNT = 0x40045200
+type SignalfdSiginfo struct {
+ Signo uint32
+ Errno int32
+ Code int32
+ Pid uint32
+ Uid uint32
+ Fd int32
+ Tid uint32
+ Band uint32
+ Overrun uint32
+ Trapno uint32
+ Status int32
+ Int int32
+ Ptr uint64
+ Utime uint64
+ Stime uint64
+ Addr uint64
+ Addr_lsb uint16
+ _ uint16
+ Syscall int32
+ Call_addr uint64
+ Arch uint32
+ _ [28]uint8
+}
const PERF_IOC_FLAG_GROUP = 0x1
@@ -1966,6 +2007,10 @@ const (
NCSI_CHANNEL_ATTR_VLAN_ID = 0xa
)
+type ScmTimestamping struct {
+ Ts [3]Timespec
+}
+
const (
SOF_TIMESTAMPING_TX_HARDWARE = 0x1
SOF_TIMESTAMPING_TX_SOFTWARE = 0x2
@@ -1985,4 +2030,18 @@ const (
SOF_TIMESTAMPING_LAST = 0x4000
SOF_TIMESTAMPING_MASK = 0x7fff
+
+ SCM_TSTAMP_SND = 0x0
+ SCM_TSTAMP_SCHED = 0x1
+ SCM_TSTAMP_ACK = 0x2
)
+
+type SockExtendedErr struct {
+ Errno uint32
+ Origin uint8
+ Type uint8
+ Code uint8
+ Pad uint8
+ Info uint32
+ Data uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
index cf110ce2b3..675c596880 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
@@ -212,7 +212,7 @@ type RawSockaddrInet6 struct {
type RawSockaddrUnix struct {
Family uint16
- Path [108]uint8
+ Path [108]int8
}
type RawSockaddrLinklayer struct {
@@ -407,6 +407,11 @@ type TCPInfo struct {
Total_retrans uint32
}
+type CanFilter struct {
+ Id uint32
+ Mask uint32
+}
+
const (
SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c
@@ -436,6 +441,7 @@ const (
SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc
SizeofTCPInfo = 0x68
+ SizeofCanFilter = 0x8
)
const (
@@ -571,6 +577,7 @@ const (
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
+ SizeofNdUseroptmsg = 0x10
)
type NlMsghdr struct {
@@ -636,6 +643,17 @@ type RtNexthop struct {
Ifindex int32
}
+type NdUseroptmsg struct {
+ Family uint8
+ Pad1 uint8
+ Opts_len uint16
+ Ifindex int32
+ Icmp_type uint8
+ Icmp_code uint8
+ Pad2 uint16
+ Pad3 uint32
+}
+
const (
SizeofSockFilter = 0x8
SizeofSockFprog = 0x10
@@ -778,7 +796,30 @@ type Sigset_t struct {
Val [16]uint64
}
-const RNDGETENTCNT = 0x80045200
+type SignalfdSiginfo struct {
+ Signo uint32
+ Errno int32
+ Code int32
+ Pid uint32
+ Uid uint32
+ Fd int32
+ Tid uint32
+ Band uint32
+ Overrun uint32
+ Trapno uint32
+ Status int32
+ Int int32
+ Ptr uint64
+ Utime uint64
+ Stime uint64
+ Addr uint64
+ Addr_lsb uint16
+ _ uint16
+ Syscall int32
+ Call_addr uint64
+ Arch uint32
+ _ [28]uint8
+}
const PERF_IOC_FLAG_GROUP = 0x1
@@ -1983,6 +2024,10 @@ const (
NCSI_CHANNEL_ATTR_VLAN_ID = 0xa
)
+type ScmTimestamping struct {
+ Ts [3]Timespec
+}
+
const (
SOF_TIMESTAMPING_TX_HARDWARE = 0x1
SOF_TIMESTAMPING_TX_SOFTWARE = 0x2
@@ -2002,4 +2047,18 @@ const (
SOF_TIMESTAMPING_LAST = 0x4000
SOF_TIMESTAMPING_MASK = 0x7fff
+
+ SCM_TSTAMP_SND = 0x0
+ SCM_TSTAMP_SCHED = 0x1
+ SCM_TSTAMP_ACK = 0x2
)
+
+type SockExtendedErr struct {
+ Errno uint32
+ Origin uint8
+ Type uint8
+ Code uint8
+ Pad uint8
+ Info uint32
+ Data uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
index abdc0863df..9f2cf0dfd7 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
@@ -406,6 +406,11 @@ type TCPInfo struct {
Total_retrans uint32
}
+type CanFilter struct {
+ Id uint32
+ Mask uint32
+}
+
const (
SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c
@@ -435,6 +440,7 @@ const (
SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc
SizeofTCPInfo = 0x68
+ SizeofCanFilter = 0x8
)
const (
@@ -570,6 +576,7 @@ const (
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
+ SizeofNdUseroptmsg = 0x10
)
type NlMsghdr struct {
@@ -635,6 +642,17 @@ type RtNexthop struct {
Ifindex int32
}
+type NdUseroptmsg struct {
+ Family uint8
+ Pad1 uint8
+ Opts_len uint16
+ Ifindex int32
+ Icmp_type uint8
+ Icmp_code uint8
+ Pad2 uint16
+ Pad3 uint32
+}
+
const (
SizeofSockFilter = 0x8
SizeofSockFprog = 0x10
@@ -774,7 +792,30 @@ type Sigset_t struct {
Val [16]uint64
}
-const RNDGETENTCNT = 0x80045200
+type SignalfdSiginfo struct {
+ Signo uint32
+ Errno int32
+ Code int32
+ Pid uint32
+ Uid uint32
+ Fd int32
+ Tid uint32
+ Band uint32
+ Overrun uint32
+ Trapno uint32
+ Status int32
+ Int int32
+ Ptr uint64
+ Utime uint64
+ Stime uint64
+ Addr uint64
+ Addr_lsb uint16
+ _ uint16
+ Syscall int32
+ Call_addr uint64
+ Arch uint32
+ _ [28]uint8
+}
const PERF_IOC_FLAG_GROUP = 0x1
@@ -1980,6 +2021,10 @@ const (
NCSI_CHANNEL_ATTR_VLAN_ID = 0xa
)
+type ScmTimestamping struct {
+ Ts [3]Timespec
+}
+
const (
SOF_TIMESTAMPING_TX_HARDWARE = 0x1
SOF_TIMESTAMPING_TX_SOFTWARE = 0x2
@@ -1999,4 +2044,18 @@ const (
SOF_TIMESTAMPING_LAST = 0x4000
SOF_TIMESTAMPING_MASK = 0x7fff
+
+ SCM_TSTAMP_SND = 0x0
+ SCM_TSTAMP_SCHED = 0x1
+ SCM_TSTAMP_ACK = 0x2
)
+
+type SockExtendedErr struct {
+ Errno uint32
+ Origin uint8
+ Type uint8
+ Code uint8
+ Pad uint8
+ Info uint32
+ Data uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
index b0c9798d75..68643903c9 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
@@ -410,6 +410,11 @@ type TCPInfo struct {
Total_retrans uint32
}
+type CanFilter struct {
+ Id uint32
+ Mask uint32
+}
+
const (
SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c
@@ -439,6 +444,7 @@ const (
SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc
SizeofTCPInfo = 0x68
+ SizeofCanFilter = 0x8
)
const (
@@ -574,6 +580,7 @@ const (
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
+ SizeofNdUseroptmsg = 0x10
)
type NlMsghdr struct {
@@ -639,6 +646,17 @@ type RtNexthop struct {
Ifindex int32
}
+type NdUseroptmsg struct {
+ Family uint8
+ Pad1 uint8
+ Opts_len uint16
+ Ifindex int32
+ Icmp_type uint8
+ Icmp_code uint8
+ Pad2 uint16
+ Pad3 uint32
+}
+
const (
SizeofSockFilter = 0x8
SizeofSockFprog = 0x10
@@ -756,7 +774,30 @@ type Sigset_t struct {
Val [16]uint64
}
-const RNDGETENTCNT = 0x40045200
+type SignalfdSiginfo struct {
+ Signo uint32
+ Errno int32
+ Code int32
+ Pid uint32
+ Uid uint32
+ Fd int32
+ Tid uint32
+ Band uint32
+ Overrun uint32
+ Trapno uint32
+ Status int32
+ Int int32
+ Ptr uint64
+ Utime uint64
+ Stime uint64
+ Addr uint64
+ Addr_lsb uint16
+ _ uint16
+ Syscall int32
+ Call_addr uint64
+ Arch uint32
+ _ [28]uint8
+}
const PERF_IOC_FLAG_GROUP = 0x1
@@ -1961,6 +2002,10 @@ const (
NCSI_CHANNEL_ATTR_VLAN_ID = 0xa
)
+type ScmTimestamping struct {
+ Ts [3]Timespec
+}
+
const (
SOF_TIMESTAMPING_TX_HARDWARE = 0x1
SOF_TIMESTAMPING_TX_SOFTWARE = 0x2
@@ -1980,4 +2025,18 @@ const (
SOF_TIMESTAMPING_LAST = 0x4000
SOF_TIMESTAMPING_MASK = 0x7fff
+
+ SCM_TSTAMP_SND = 0x0
+ SCM_TSTAMP_SCHED = 0x1
+ SCM_TSTAMP_ACK = 0x2
)
+
+type SockExtendedErr struct {
+ Errno uint32
+ Origin uint8
+ Type uint8
+ Code uint8
+ Pad uint8
+ Info uint32
+ Data uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go
new file mode 100644
index 0000000000..43da2c41c5
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go
@@ -0,0 +1,472 @@
+// cgo -godefs types_netbsd.go | go run mkpost.go
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+// +build arm64,netbsd
+
+package unix
+
+const (
+ SizeofPtr = 0x8
+ SizeofShort = 0x2
+ SizeofInt = 0x4
+ SizeofLong = 0x8
+ SizeofLongLong = 0x8
+)
+
+type (
+ _C_short int16
+ _C_int int32
+ _C_long int64
+ _C_long_long int64
+)
+
+type Timespec struct {
+ Sec int64
+ Nsec int64
+}
+
+type Timeval struct {
+ Sec int64
+ Usec int32
+ Pad_cgo_0 [4]byte
+}
+
+type Rusage struct {
+ Utime Timeval
+ Stime Timeval
+ Maxrss int64
+ Ixrss int64
+ Idrss int64
+ Isrss int64
+ Minflt int64
+ Majflt int64
+ Nswap int64
+ Inblock int64
+ Oublock int64
+ Msgsnd int64
+ Msgrcv int64
+ Nsignals int64
+ Nvcsw int64
+ Nivcsw int64
+}
+
+type Rlimit struct {
+ Cur uint64
+ Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+ Dev uint64
+ Mode uint32
+ Pad_cgo_0 [4]byte
+ Ino uint64
+ Nlink uint32
+ Uid uint32
+ Gid uint32
+ Pad_cgo_1 [4]byte
+ Rdev uint64
+ Atimespec Timespec
+ Mtimespec Timespec
+ Ctimespec Timespec
+ Birthtimespec Timespec
+ Size int64
+ Blocks int64
+ Blksize uint32
+ Flags uint32
+ Gen uint32
+ Spare [2]uint32
+ Pad_cgo_2 [4]byte
+}
+
+type Statfs_t [0]byte
+
+type Flock_t struct {
+ Start int64
+ Len int64
+ Pid int32
+ Type int16
+ Whence int16
+}
+
+type Dirent struct {
+ Fileno uint64
+ Reclen uint16
+ Namlen uint16
+ Type uint8
+ Name [512]int8
+ Pad_cgo_0 [3]byte
+}
+
+type Fsid struct {
+ X__fsid_val [2]int32
+}
+
+const (
+ PathMax = 0x400
+)
+
+const (
+ FADV_NORMAL = 0x0
+ FADV_RANDOM = 0x1
+ FADV_SEQUENTIAL = 0x2
+ FADV_WILLNEED = 0x3
+ FADV_DONTNEED = 0x4
+ FADV_NOREUSE = 0x5
+)
+
+type RawSockaddrInet4 struct {
+ Len uint8
+ Family uint8
+ Port uint16
+ Addr [4]byte /* in_addr */
+ Zero [8]int8
+}
+
+type RawSockaddrInet6 struct {
+ Len uint8
+ Family uint8
+ Port uint16
+ Flowinfo uint32
+ Addr [16]byte /* in6_addr */
+ Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+ Len uint8
+ Family uint8
+ Path [104]int8
+}
+
+type RawSockaddrDatalink struct {
+ Len uint8
+ Family uint8
+ Index uint16
+ Type uint8
+ Nlen uint8
+ Alen uint8
+ Slen uint8
+ Data [12]int8
+}
+
+type RawSockaddr struct {
+ Len uint8
+ Family uint8
+ Data [14]int8
+}
+
+type RawSockaddrAny struct {
+ Addr RawSockaddr
+ Pad [92]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+ Onoff int32
+ Linger int32
+}
+
+type Iovec struct {
+ Base *byte
+ Len uint64
+}
+
+type IPMreq struct {
+ Multiaddr [4]byte /* in_addr */
+ Interface [4]byte /* in_addr */
+}
+
+type IPv6Mreq struct {
+ Multiaddr [16]byte /* in6_addr */
+ Interface uint32
+}
+
+type Msghdr struct {
+ Name *byte
+ Namelen uint32
+ Pad_cgo_0 [4]byte
+ Iov *Iovec
+ Iovlen int32
+ Pad_cgo_1 [4]byte
+ Control *byte
+ Controllen uint32
+ Flags int32
+}
+
+type Cmsghdr struct {
+ Len uint32
+ Level int32
+ Type int32
+}
+
+type Inet6Pktinfo struct {
+ Addr [16]byte /* in6_addr */
+ Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+ Addr RawSockaddrInet6
+ Mtu uint32
+}
+
+type ICMPv6Filter struct {
+ Filt [8]uint32
+}
+
+const (
+ SizeofSockaddrInet4 = 0x10
+ SizeofSockaddrInet6 = 0x1c
+ SizeofSockaddrAny = 0x6c
+ SizeofSockaddrUnix = 0x6a
+ SizeofSockaddrDatalink = 0x14
+ SizeofLinger = 0x8
+ SizeofIPMreq = 0x8
+ SizeofIPv6Mreq = 0x14
+ SizeofMsghdr = 0x30
+ SizeofCmsghdr = 0xc
+ SizeofInet6Pktinfo = 0x14
+ SizeofIPv6MTUInfo = 0x20
+ SizeofICMPv6Filter = 0x20
+)
+
+const (
+ PTRACE_TRACEME = 0x0
+ PTRACE_CONT = 0x7
+ PTRACE_KILL = 0x8
+)
+
+type Kevent_t struct {
+ Ident uint64
+ Filter uint32
+ Flags uint32
+ Fflags uint32
+ Pad_cgo_0 [4]byte
+ Data int64
+ Udata int64
+}
+
+type FdSet struct {
+ Bits [8]uint32
+}
+
+const (
+ SizeofIfMsghdr = 0x98
+ SizeofIfData = 0x88
+ SizeofIfaMsghdr = 0x18
+ SizeofIfAnnounceMsghdr = 0x18
+ SizeofRtMsghdr = 0x78
+ SizeofRtMetrics = 0x50
+)
+
+type IfMsghdr struct {
+ Msglen uint16
+ Version uint8
+ Type uint8
+ Addrs int32
+ Flags int32
+ Index uint16
+ Pad_cgo_0 [2]byte
+ Data IfData
+}
+
+type IfData struct {
+ Type uint8
+ Addrlen uint8
+ Hdrlen uint8
+ Pad_cgo_0 [1]byte
+ Link_state int32
+ Mtu uint64
+ Metric uint64
+ Baudrate uint64
+ Ipackets uint64
+ Ierrors uint64
+ Opackets uint64
+ Oerrors uint64
+ Collisions uint64
+ Ibytes uint64
+ Obytes uint64
+ Imcasts uint64
+ Omcasts uint64
+ Iqdrops uint64
+ Noproto uint64
+ Lastchange Timespec
+}
+
+type IfaMsghdr struct {
+ Msglen uint16
+ Version uint8
+ Type uint8
+ Addrs int32
+ Flags int32
+ Metric int32
+ Index uint16
+ Pad_cgo_0 [6]byte
+}
+
+type IfAnnounceMsghdr struct {
+ Msglen uint16
+ Version uint8
+ Type uint8
+ Index uint16
+ Name [16]int8
+ What uint16
+}
+
+type RtMsghdr struct {
+ Msglen uint16
+ Version uint8
+ Type uint8
+ Index uint16
+ Pad_cgo_0 [2]byte
+ Flags int32
+ Addrs int32
+ Pid int32
+ Seq int32
+ Errno int32
+ Use int32
+ Inits int32
+ Pad_cgo_1 [4]byte
+ Rmx RtMetrics
+}
+
+type RtMetrics struct {
+ Locks uint64
+ Mtu uint64
+ Hopcount uint64
+ Recvpipe uint64
+ Sendpipe uint64
+ Ssthresh uint64
+ Rtt uint64
+ Rttvar uint64
+ Expire int64
+ Pksent int64
+}
+
+type Mclpool [0]byte
+
+const (
+ SizeofBpfVersion = 0x4
+ SizeofBpfStat = 0x80
+ SizeofBpfProgram = 0x10
+ SizeofBpfInsn = 0x8
+ SizeofBpfHdr = 0x20
+)
+
+type BpfVersion struct {
+ Major uint16
+ Minor uint16
+}
+
+type BpfStat struct {
+ Recv uint64
+ Drop uint64
+ Capt uint64
+ Padding [13]uint64
+}
+
+type BpfProgram struct {
+ Len uint32
+ Pad_cgo_0 [4]byte
+ Insns *BpfInsn
+}
+
+type BpfInsn struct {
+ Code uint16
+ Jt uint8
+ Jf uint8
+ K uint32
+}
+
+type BpfHdr struct {
+ Tstamp BpfTimeval
+ Caplen uint32
+ Datalen uint32
+ Hdrlen uint16
+ Pad_cgo_0 [6]byte
+}
+
+type BpfTimeval struct {
+ Sec int64
+ Usec int64
+}
+
+type Termios struct {
+ Iflag uint32
+ Oflag uint32
+ Cflag uint32
+ Lflag uint32
+ Cc [20]uint8
+ Ispeed int32
+ Ospeed int32
+}
+
+type Winsize struct {
+ Row uint16
+ Col uint16
+ Xpixel uint16
+ Ypixel uint16
+}
+
+type Ptmget struct {
+ Cfd int32
+ Sfd int32
+ Cn [1024]byte
+ Sn [1024]byte
+}
+
+const (
+ AT_FDCWD = -0x64
+ AT_SYMLINK_NOFOLLOW = 0x200
+)
+
+type PollFd struct {
+ Fd int32
+ Events int16
+ Revents int16
+}
+
+const (
+ POLLERR = 0x8
+ POLLHUP = 0x10
+ POLLIN = 0x1
+ POLLNVAL = 0x20
+ POLLOUT = 0x4
+ POLLPRI = 0x2
+ POLLRDBAND = 0x80
+ POLLRDNORM = 0x40
+ POLLWRBAND = 0x100
+ POLLWRNORM = 0x4
+)
+
+type Sysctlnode struct {
+ Flags uint32
+ Num int32
+ Name [32]int8
+ Ver uint32
+ X__rsvd uint32
+ Un [16]byte
+ X_sysctl_size [8]byte
+ X_sysctl_func [8]byte
+ X_sysctl_parent [8]byte
+ X_sysctl_desc [8]byte
+}
+
+type Utsname struct {
+ Sysname [256]byte
+ Nodename [256]byte
+ Release [256]byte
+ Version [256]byte
+ Machine [256]byte
+}
+
+const SizeofClockinfo = 0x14
+
+type Clockinfo struct {
+ Hz int32
+ Tick int32
+ Tickadj int32
+ Stathz int32
+ Profhz int32
+}
diff --git a/vendor/golang.org/x/sys/windows/security_windows.go b/vendor/golang.org/x/sys/windows/security_windows.go
index 4f17a3331f..9f946da6fe 100644
--- a/vendor/golang.org/x/sys/windows/security_windows.go
+++ b/vendor/golang.org/x/sys/windows/security_windows.go
@@ -149,7 +149,7 @@ const (
DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 0x22b
DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 0x22c
DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS = 0x22d
- DOMAIN_ALIAS_RID_MONITORING_USERS = 0X22e
+ DOMAIN_ALIAS_RID_MONITORING_USERS = 0x22e
DOMAIN_ALIAS_RID_LOGGING_USERS = 0x22f
DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS = 0x230
DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS = 0x231
diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go
index 8a00b71f1d..f72fa55f3e 100644
--- a/vendor/golang.org/x/sys/windows/syscall_windows.go
+++ b/vendor/golang.org/x/sys/windows/syscall_windows.go
@@ -172,6 +172,7 @@ func NewCallbackCDecl(fn interface{}) uintptr {
//sys GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error)
//sys DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error)
//sys WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff]
+//sys waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] = WaitForMultipleObjects
//sys GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) = GetTempPathW
//sys CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error)
//sys GetFileType(filehandle Handle) (n uint32, err error)
@@ -589,6 +590,18 @@ func LoadSetFileCompletionNotificationModes() error {
return procSetFileCompletionNotificationModes.Find()
}
+func WaitForMultipleObjects(handles []Handle, waitAll bool, waitMilliseconds uint32) (event uint32, err error) {
+ // Every other win32 array API takes arguments as "pointer, count", except for this function. So we
+ // can't declare it as a usual [] type, because mksyscall will use the opposite order. We therefore
+ // trivially stub this ourselves.
+
+ var handlePtr *Handle
+ if len(handles) > 0 {
+ handlePtr = &handles[0]
+ }
+ return waitForMultipleObjects(uint32(len(handles)), uintptr(unsafe.Pointer(handlePtr)), waitAll, waitMilliseconds)
+}
+
// net api calls
const socket_error = uintptr(^uint32(0))
diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go
index fc56aec035..e4b54e2d92 100644
--- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go
+++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go
@@ -112,6 +112,7 @@ var (
procGetProcessTimes = modkernel32.NewProc("GetProcessTimes")
procDuplicateHandle = modkernel32.NewProc("DuplicateHandle")
procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject")
+ procWaitForMultipleObjects = modkernel32.NewProc("WaitForMultipleObjects")
procGetTempPathW = modkernel32.NewProc("GetTempPathW")
procCreatePipe = modkernel32.NewProc("CreatePipe")
procGetFileType = modkernel32.NewProc("GetFileType")
@@ -1084,6 +1085,25 @@ func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32,
return
}
+func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) {
+ var _p0 uint32
+ if waitAll {
+ _p0 = 1
+ } else {
+ _p0 = 0
+ }
+ r0, _, e1 := syscall.Syscall6(procWaitForMultipleObjects.Addr(), 4, uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds), 0, 0)
+ event = uint32(r0)
+ if event == 0xffffffff {
+ if e1 != 0 {
+ err = errnoErr(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) {
r0, _, e1 := syscall.Syscall(procGetTempPathW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0)
n = uint32(r0)
diff --git a/vendor/golang.org/x/tools/cmd/godoc/appinit.go b/vendor/golang.org/x/tools/cmd/godoc/appinit.go
deleted file mode 100644
index 1f276d86b2..0000000000
--- a/vendor/golang.org/x/tools/cmd/godoc/appinit.go
+++ /dev/null
@@ -1,155 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build golangorg
-
-package main
-
-// This file replaces main.go when running godoc under app-engine.
-// See README.godoc-app for details.
-
-import (
- "archive/zip"
- "context"
- "io"
- "log"
- "net/http"
- "os"
- "path"
- "regexp"
- "runtime"
- "strings"
-
- "golang.org/x/tools/godoc"
- "golang.org/x/tools/godoc/dl"
- "golang.org/x/tools/godoc/proxy"
- "golang.org/x/tools/godoc/redirect"
- "golang.org/x/tools/godoc/short"
- "golang.org/x/tools/godoc/static"
- "golang.org/x/tools/godoc/vfs"
- "golang.org/x/tools/godoc/vfs/gatefs"
- "golang.org/x/tools/godoc/vfs/mapfs"
- "golang.org/x/tools/godoc/vfs/zipfs"
-
- "cloud.google.com/go/datastore"
- "golang.org/x/tools/internal/memcache"
-)
-
-func main() {
- log.SetFlags(log.Lshortfile | log.LstdFlags)
-
- var (
- // .zip filename
- zipFilename = os.Getenv("GODOC_ZIP")
-
- // goroot directory in .zip file
- zipGoroot = os.Getenv("GODOC_ZIP_PREFIX")
-
- // glob pattern describing search index files
- // (if empty, the index is built at run-time)
- indexFilenames = os.Getenv("GODOC_INDEX_GLOB")
- )
-
- playEnabled = true
-
- log.Println("initializing godoc ...")
- log.Printf(".zip file = %s", zipFilename)
- log.Printf(".zip GOROOT = %s", zipGoroot)
- log.Printf("index files = %s", indexFilenames)
-
- if zipFilename != "" {
- goroot := path.Join("/", zipGoroot) // fsHttp paths are relative to '/'
- // read .zip file and set up file systems
- rc, err := zip.OpenReader(zipFilename)
- if err != nil {
- log.Fatalf("%s: %s\n", zipFilename, err)
- }
- // rc is never closed (app running forever)
- fs.Bind("/", zipfs.New(rc, zipFilename), goroot, vfs.BindReplace)
- } else {
- rootfs := gatefs.New(vfs.OS(runtime.GOROOT()), make(chan bool, 20))
- fs.Bind("/", rootfs, "/", vfs.BindReplace)
- }
-
- fs.Bind("/lib/godoc", mapfs.New(static.Files), "/", vfs.BindReplace)
-
- corpus := godoc.NewCorpus(fs)
- corpus.Verbose = false
- corpus.MaxResults = 10000 // matches flag default in main.go
- corpus.IndexEnabled = true
- corpus.IndexFiles = indexFilenames
- if err := corpus.Init(); err != nil {
- log.Fatal(err)
- }
- corpus.IndexDirectory = indexDirectoryDefault
- corpus.InitVersionInfo()
- if indexFilenames != "" {
- corpus.RunIndexer()
- } else {
- go corpus.RunIndexer()
- }
-
- pres = godoc.NewPresentation(corpus)
- pres.TabWidth = 8
- pres.ShowPlayground = true
- pres.DeclLinks = true
- pres.NotesRx = regexp.MustCompile("BUG")
- pres.GoogleAnalytics = os.Getenv("GODOC_ANALYTICS")
-
- readTemplates(pres)
-
- datastoreClient, memcacheClient := getClients()
-
- // NOTE(cbro): registerHandlers registers itself against DefaultServeMux.
- // The mux returned has host enforcement, so it's important to register
- // against this mux and not DefaultServeMux.
- mux := registerHandlers(pres)
- dl.RegisterHandlers(mux, datastoreClient, memcacheClient)
- short.RegisterHandlers(mux, datastoreClient, memcacheClient)
-
- // Register /compile and /share handlers against the default serve mux
- // so that other app modules can make plain HTTP requests to those
- // hosts. (For reasons, HTTPS communication between modules is broken.)
- proxy.RegisterHandlers(http.DefaultServeMux)
-
- http.HandleFunc("/_ah/health", func(w http.ResponseWriter, r *http.Request) {
- io.WriteString(w, "ok")
- })
-
- http.HandleFunc("/robots.txt", func(w http.ResponseWriter, r *http.Request) {
- io.WriteString(w, "User-agent: *\nDisallow: /search\n")
- })
-
- if err := redirect.LoadChangeMap("hg-git-mapping.bin"); err != nil {
- log.Fatalf("LoadChangeMap: %v", err)
- }
-
- log.Println("godoc initialization complete")
-
- // TODO(cbro): add instrumentation via opencensus.
- port := "8080"
- if p := os.Getenv("PORT"); p != "" { // PORT is set by GAE flex.
- port = p
- }
- log.Fatal(http.ListenAndServe(":"+port, nil))
-}
-
-func getClients() (*datastore.Client, *memcache.Client) {
- ctx := context.Background()
-
- datastoreClient, err := datastore.NewClient(ctx, "")
- if err != nil {
- if strings.Contains(err.Error(), "missing project") {
- log.Fatalf("Missing datastore project. Set the DATASTORE_PROJECT_ID env variable. Use `gcloud beta emulators datastore` to start a local datastore.")
- }
- log.Fatalf("datastore.NewClient: %v.", err)
- }
-
- redisAddr := os.Getenv("GODOC_REDIS_ADDR")
- if redisAddr == "" {
- log.Fatalf("Missing redis server for godoc in production mode. set GODOC_REDIS_ADDR environment variable.")
- }
- memcacheClient := memcache.New(redisAddr)
- return datastoreClient, memcacheClient
-}
diff --git a/vendor/golang.org/x/tools/cmd/godoc/autocert.go b/vendor/golang.org/x/tools/cmd/godoc/autocert.go
deleted file mode 100644
index 9c2da414aa..0000000000
--- a/vendor/golang.org/x/tools/cmd/godoc/autocert.go
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright 2016 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build autocert
-
-// This file adds automatic TLS certificate support (using
-// golang.org/x/crypto/acme/autocert), conditional on the use of the
-// autocert build tag. It sets the serveAutoCertHook func variable
-// non-nil. It is used by main.go.
-//
-// TODO: make this the default? We're in the Go 1.8 freeze now, so
-// this is too invasive to be default, but we want it for
-// https://beta.golang.org/
-
-package main
-
-import (
- "crypto/tls"
- "flag"
- "net"
- "net/http"
- "time"
-
- "golang.org/x/crypto/acme/autocert"
- "golang.org/x/net/http2"
-)
-
-var (
- autoCertDirFlag = flag.String("autocert_cache_dir", "/var/cache/autocert", "Directory to cache TLS certs")
- autoCertHostFlag = flag.String("autocert_hostname", "", "optional hostname to require in autocert SNI requests")
-)
-
-func init() {
- runHTTPS = runHTTPSAutocert
- certInit = certInitAutocert
- wrapHTTPMux = wrapHTTPMuxAutocert
-}
-
-var autocertManager *autocert.Manager
-
-func certInitAutocert() {
- autocertManager = &autocert.Manager{
- Cache: autocert.DirCache(*autoCertDirFlag),
- Prompt: autocert.AcceptTOS,
- }
- if *autoCertHostFlag != "" {
- autocertManager.HostPolicy = autocert.HostWhitelist(*autoCertHostFlag)
- }
-}
-
-func runHTTPSAutocert(h http.Handler) error {
- srv := &http.Server{
- Handler: h,
- TLSConfig: &tls.Config{
- GetCertificate: autocertManager.GetCertificate,
- },
- IdleTimeout: 60 * time.Second,
- }
- http2.ConfigureServer(srv, &http2.Server{})
- ln, err := net.Listen("tcp", ":443")
- if err != nil {
- return err
- }
- return srv.Serve(tls.NewListener(tcpKeepAliveListener{ln.(*net.TCPListener)}, srv.TLSConfig))
-}
-
-func wrapHTTPMuxAutocert(h http.Handler) http.Handler {
- return autocertManager.HTTPHandler(h)
-}
-
-// tcpKeepAliveListener sets TCP keep-alive timeouts on accepted
-// connections. It's used by ListenAndServe and ListenAndServeTLS so
-// dead TCP connections (e.g. closing laptop mid-download) eventually
-// go away.
-type tcpKeepAliveListener struct {
- *net.TCPListener
-}
-
-func (ln tcpKeepAliveListener) Accept() (c net.Conn, err error) {
- tc, err := ln.AcceptTCP()
- if err != nil {
- return
- }
- tc.SetKeepAlive(true)
- tc.SetKeepAlivePeriod(3 * time.Minute)
- return tc, nil
-}
diff --git a/vendor/golang.org/x/tools/cmd/godoc/dl.go b/vendor/golang.org/x/tools/cmd/godoc/dl.go
index edeecb8a0b..962a0f0172 100644
--- a/vendor/golang.org/x/tools/cmd/godoc/dl.go
+++ b/vendor/golang.org/x/tools/cmd/godoc/dl.go
@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// +build !golangorg
-
package main
import "net/http"
diff --git a/vendor/golang.org/x/tools/cmd/godoc/doc.go b/vendor/golang.org/x/tools/cmd/godoc/doc.go
index 04ba52285b..6dda27870e 100644
--- a/vendor/golang.org/x/tools/cmd/godoc/doc.go
+++ b/vendor/golang.org/x/tools/cmd/godoc/doc.go
@@ -89,7 +89,8 @@ The presentation mode of web pages served by godoc can be controlled with the
all show documentation for all declarations, not just the exported ones
methods show all embedded methods, not just those of unexported anonymous fields
- src show the original source code rather then the extracted documentation
+ src show the original source code rather than the extracted documentation
+ flat present flat (not indented) directory listings using full paths
For instance, https://golang.org/pkg/math/big/?m=all shows the documentation
for all (not just the exported) declarations of package big.
diff --git a/vendor/golang.org/x/tools/cmd/godoc/main.go b/vendor/golang.org/x/tools/cmd/godoc/main.go
index c27ede765d..0c28301a5a 100644
--- a/vendor/golang.org/x/tools/cmd/godoc/main.go
+++ b/vendor/golang.org/x/tools/cmd/godoc/main.go
@@ -15,8 +15,6 @@
// http://godoc/pkg/compress/zlib)
//
-// +build !golangorg
-
package main
import (
@@ -94,7 +92,7 @@ type httpResponseRecorder struct {
}
func (w *httpResponseRecorder) Header() http.Header { return w.header }
-func (w *httpResponseRecorder) Write(b []byte) (int, error) { return len(b), nil }
+func (w *httpResponseRecorder) Write(b []byte) (int, error) { return w.body.Write(b) }
func (w *httpResponseRecorder) WriteHeader(code int) { w.code = code }
func usage() {
@@ -168,8 +166,8 @@ func main() {
fmt.Fprintln(os.Stderr, `Unexpected arguments. Use "go doc" for command-line help output instead. For example, "go doc fmt.Printf".`)
usage()
}
- if *httpAddr != "" && *urlFlag != "" && !*writeIndex {
- fmt.Fprintln(os.Stderr, "Missing args.")
+ if *httpAddr == "" && *urlFlag == "" && !*writeIndex {
+ fmt.Fprintln(os.Stderr, "At least one of -http, -url, or -write_index must be set to a non-zero value.")
usage()
}
@@ -228,7 +226,7 @@ func main() {
corpus.IndexDirectory = indexDirectoryDefault
corpus.IndexThrottle = *indexThrottle
corpus.IndexInterval = *indexInterval
- if *writeIndex {
+ if *writeIndex || *urlFlag != "" {
corpus.IndexThrottle = 1.0
corpus.IndexEnabled = true
initCorpus(corpus)
diff --git a/vendor/golang.org/x/tools/cmd/godoc/play.go b/vendor/golang.org/x/tools/cmd/godoc/play.go
index f44a3cccb8..a899353e68 100644
--- a/vendor/golang.org/x/tools/cmd/godoc/play.go
+++ b/vendor/golang.org/x/tools/cmd/godoc/play.go
@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// +build !golangorg
-
package main
// This package registers "/compile" and "/share" handlers
diff --git a/vendor/golang.org/x/tools/cmd/godoc/x.go b/vendor/golang.org/x/tools/cmd/godoc/x.go
deleted file mode 100644
index 0e51ea8172..0000000000
--- a/vendor/golang.org/x/tools/cmd/godoc/x.go
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file contains the handlers that serve go-import redirects for Go
-// sub-repositories. It specifies the mapping from import paths like
-// "golang.org/x/tools" to the actual repository locations.
-
-package main
-
-import (
- "html/template"
- "log"
- "net/http"
- "strings"
-)
-
-const xPrefix = "/x/"
-
-type xRepo struct {
- URL, VCS string
-}
-
-var xMap = map[string]xRepo{
- "codereview": {"https://code.google.com/p/go.codereview", "hg"}, // Not included at https://golang.org/pkg/#subrepo.
-
- "arch": {"https://go.googlesource.com/arch", "git"}, // Not included at https://golang.org/pkg/#subrepo.
- "benchmarks": {"https://go.googlesource.com/benchmarks", "git"},
- "blog": {"https://go.googlesource.com/blog", "git"},
- "build": {"https://go.googlesource.com/build", "git"},
- "crypto": {"https://go.googlesource.com/crypto", "git"},
- "debug": {"https://go.googlesource.com/debug", "git"},
- "exp": {"https://go.googlesource.com/exp", "git"},
- "image": {"https://go.googlesource.com/image", "git"},
- "lint": {"https://go.googlesource.com/lint", "git"}, // Not included at https://golang.org/pkg/#subrepo.
- "mobile": {"https://go.googlesource.com/mobile", "git"},
- "net": {"https://go.googlesource.com/net", "git"},
- "oauth2": {"https://go.googlesource.com/oauth2", "git"}, // Not included at https://golang.org/pkg/#subrepo.
- "perf": {"https://go.googlesource.com/perf", "git"},
- "playground": {"https://go.googlesource.com/playground", "git"}, // Not included at https://golang.org/pkg/#subrepo.
- "review": {"https://go.googlesource.com/review", "git"},
- "sync": {"https://go.googlesource.com/sync", "git"},
- "sys": {"https://go.googlesource.com/sys", "git"},
- "talks": {"https://go.googlesource.com/talks", "git"}, // Not included at https://golang.org/pkg/#subrepo.
- "term": {"https://go.googlesource.com/term", "git"}, // Not included at https://golang.org/pkg/#subrepo.
- "text": {"https://go.googlesource.com/text", "git"},
- "time": {"https://go.googlesource.com/time", "git"},
- "tools": {"https://go.googlesource.com/tools", "git"},
- "tour": {"https://go.googlesource.com/tour", "git"},
- "vgo": {"https://go.googlesource.com/vgo", "git"}, // Not included at https://golang.org/pkg/#subrepo.
-}
-
-func init() {
- http.HandleFunc(xPrefix, xHandler)
-}
-
-func xHandler(w http.ResponseWriter, r *http.Request) {
- head, tail := strings.TrimPrefix(r.URL.Path, xPrefix), ""
- if i := strings.Index(head, "/"); i != -1 {
- head, tail = head[:i], head[i:]
- }
- if head == "" {
- http.Redirect(w, r, "https://godoc.org/-/subrepo", http.StatusTemporaryRedirect)
- return
- }
- repo, ok := xMap[head]
- if !ok {
- http.NotFound(w, r)
- return
- }
- data := struct {
- Prefix, Head, Tail string
- Repo xRepo
- }{xPrefix, head, tail, repo}
- if err := xTemplate.Execute(w, data); err != nil {
- log.Println("xHandler:", err)
- }
-}
-
-var xTemplate = template.Must(template.New("x").Parse(`
-
-
-
-
-
-
-
-
-Nothing to see here; move along .
-
-
-`))
diff --git a/vendor/golang.org/x/tools/cmd/golsp/main.go b/vendor/golang.org/x/tools/cmd/gopls/main.go
similarity index 83%
rename from vendor/golang.org/x/tools/cmd/golsp/main.go
rename to vendor/golang.org/x/tools/cmd/gopls/main.go
index 365ef14bba..7b708ab9dc 100644
--- a/vendor/golang.org/x/tools/cmd/golsp/main.go
+++ b/vendor/golang.org/x/tools/cmd/gopls/main.go
@@ -2,11 +2,11 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// The golsp command is an LSP server for Go.
+// The gopls command is an LSP server for Go.
// The Language Server Protocol allows any text editor
// to be extended with IDE-like features;
// see https://langserver.org/ for details.
-package main // import "golang.org/x/tools/cmd/golsp"
+package main // import "golang.org/x/tools/cmd/gopls"
import (
"context"
diff --git a/vendor/golang.org/x/tools/cmd/guru/describe.go b/vendor/golang.org/x/tools/cmd/guru/describe.go
index 49a096b40e..125e40972e 100644
--- a/vendor/golang.org/x/tools/cmd/guru/describe.go
+++ b/vendor/golang.org/x/tools/cmd/guru/describe.go
@@ -162,6 +162,9 @@ func findInterestingNode(pkginfo *loader.PackageInfo, path []ast.Node) ([]ast.No
path = append([]ast.Node{n.Name}, path...)
continue
+ case *ast.Comment, *ast.CommentGroup, *ast.File, *ast.KeyValueExpr, *ast.CommClause:
+ return path, actionUnknown // uninteresting
+
case ast.Stmt:
return path, actionStmt
@@ -173,9 +176,6 @@ func findInterestingNode(pkginfo *loader.PackageInfo, path []ast.Node) ([]ast.No
*ast.ChanType:
return path, actionType
- case *ast.Comment, *ast.CommentGroup, *ast.File, *ast.KeyValueExpr, *ast.CommClause:
- return path, actionUnknown // uninteresting
-
case *ast.Ellipsis:
// Continue to enclosing node.
// e.g. [...]T in ArrayType
diff --git a/vendor/golang.org/x/tools/cmd/guru/testdata/src/definition-json/main.go b/vendor/golang.org/x/tools/cmd/guru/testdata/src/definition-json/main.go
index 64084049a8..1674519291 100644
--- a/vendor/golang.org/x/tools/cmd/guru/testdata/src/definition-json/main.go
+++ b/vendor/golang.org/x/tools/cmd/guru/testdata/src/definition-json/main.go
@@ -9,6 +9,7 @@ package definition
import (
"lib"
lib2 "lib"
+ "nosuchpkg"
)
func main() {
@@ -27,6 +28,7 @@ func main() {
var _ lib.Const // @definition qualified-const "Const"
var _ lib2.Type // @definition qualified-type-renaming "Type"
var _ lib.Nonesuch // @definition qualified-nomember "Nonesuch"
+ var _ nosuchpkg.T // @definition qualified-nopkg "nosuchpkg"
var u U
print(u.field) // @definition select-field "field"
diff --git a/vendor/golang.org/x/tools/cmd/guru/testdata/src/definition-json/main19.go b/vendor/golang.org/x/tools/cmd/guru/testdata/src/definition-json/main19.go
deleted file mode 100644
index 9f047c384e..0000000000
--- a/vendor/golang.org/x/tools/cmd/guru/testdata/src/definition-json/main19.go
+++ /dev/null
@@ -1,5 +0,0 @@
-package definition
-
-import "nosuchpkg"
-
-var _ nosuchpkg.T // @definition qualified-nopkg "nosuchpkg"
diff --git a/vendor/golang.org/x/tools/cmd/guru/testdata/src/describe/main.go b/vendor/golang.org/x/tools/cmd/guru/testdata/src/describe/main.go
index dc41ac5359..dad321d17e 100644
--- a/vendor/golang.org/x/tools/cmd/guru/testdata/src/describe/main.go
+++ b/vendor/golang.org/x/tools/cmd/guru/testdata/src/describe/main.go
@@ -8,9 +8,14 @@ package describe // @describe pkgdecl "describe"
import (
"lib"
- _ "unsafe" // @describe unsafe "unsafe"
+ "nosuchpkg" // @describe badimport1 "nosuchpkg"
+ nosuchpkg2 "nosuchpkg" // @describe badimport2 "nosuchpkg2"
+ _ "unsafe" // @describe unsafe "unsafe"
)
+var _ nosuchpkg.T
+var _ nosuchpkg2.T
+
type cake float64 // @describe type-ref-builtin "float64"
const c = iota // @describe const-ref-iota "iota"
diff --git a/vendor/golang.org/x/tools/cmd/guru/testdata/src/describe/main19.go b/vendor/golang.org/x/tools/cmd/guru/testdata/src/describe/main19.go
deleted file mode 100644
index 2068f8ced3..0000000000
--- a/vendor/golang.org/x/tools/cmd/guru/testdata/src/describe/main19.go
+++ /dev/null
@@ -1,13 +0,0 @@
-package describe
-
-// The behavior of "describe" on a non-existent import changed
-// when go/types started returning fake packages, so this test
-// is executed only under go1.9.
-
-import (
- "nosuchpkg" // @describe badimport1 "nosuchpkg"
- nosuchpkg2 "nosuchpkg" // @describe badimport2 "nosuchpkg2"
-)
-
-var _ nosuchpkg.T
-var _ nosuchpkg2.T
diff --git a/vendor/golang.org/x/tools/cmd/guru/what.go b/vendor/golang.org/x/tools/cmd/guru/what.go
index fabc3e801b..82495b4f8d 100644
--- a/vendor/golang.org/x/tools/cmd/guru/what.go
+++ b/vendor/golang.org/x/tools/cmd/guru/what.go
@@ -10,6 +10,7 @@ import (
"go/build"
"go/token"
"os"
+ "path"
"path/filepath"
"sort"
"strings"
@@ -202,7 +203,7 @@ func guessImportPath(filename string, buildContext *build.Context) (srcdir, impo
if d >= 0 && d < minD {
minD = d
srcdir = gopathDir
- importPath = strings.Join(segmentedAbsFileDir[len(segmentedAbsFileDir)-minD:], string(os.PathSeparator))
+ importPath = path.Join(segmentedAbsFileDir[len(segmentedAbsFileDir)-minD:]...)
}
}
if srcdir == "" {
diff --git a/vendor/golang.org/x/tools/cmd/heapview/internal/core/mmapfile.go b/vendor/golang.org/x/tools/cmd/heapview/internal/core/mmapfile.go
deleted file mode 100644
index 78445a9ca8..0000000000
--- a/vendor/golang.org/x/tools/cmd/heapview/internal/core/mmapfile.go
+++ /dev/null
@@ -1,145 +0,0 @@
-// Copyright 2016 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build darwin linux
-
-package core
-
-import (
- "errors"
- "fmt"
- "io"
- "os"
- "syscall"
-)
-
-var errMmapClosed = errors.New("mmap: closed")
-
-// mmapFile wraps a memory-mapped file.
-type mmapFile struct {
- data []byte
- pos uint64
- writable bool
-}
-
-// mmapOpen opens the named file for reading.
-// If writable is true, the file is also open for writing.
-func mmapOpen(filename string, writable bool) (*mmapFile, error) {
- f, err := os.Open(filename)
- if err != nil {
- return nil, err
- }
- defer f.Close()
- st, err := f.Stat()
- if err != nil {
- return nil, err
- }
-
- size := st.Size()
- if size == 0 {
- return &mmapFile{data: []byte{}}, nil
- }
- if size < 0 {
- return nil, fmt.Errorf("mmap: file %q has negative size: %d", filename, size)
- }
- if size != int64(int(size)) {
- return nil, fmt.Errorf("mmap: file %q is too large", filename)
- }
-
- prot := syscall.PROT_READ
- if writable {
- prot |= syscall.PROT_WRITE
- }
- data, err := syscall.Mmap(int(f.Fd()), 0, int(size), prot, syscall.MAP_SHARED)
- if err != nil {
- return nil, err
- }
- return &mmapFile{data: data, writable: writable}, nil
-}
-
-// Size returns the size of the mapped file.
-func (f *mmapFile) Size() uint64 {
- return uint64(len(f.data))
-}
-
-// Pos returns the current file pointer.
-func (f *mmapFile) Pos() uint64 {
- return f.pos
-}
-
-// SeekTo sets the current file pointer relative to the start of the file.
-func (f *mmapFile) SeekTo(offset uint64) {
- f.pos = offset
-}
-
-// Read implements io.Reader.
-func (f *mmapFile) Read(p []byte) (int, error) {
- if f.data == nil {
- return 0, errMmapClosed
- }
- if f.pos >= f.Size() {
- return 0, io.EOF
- }
- n := copy(p, f.data[f.pos:])
- f.pos += uint64(n)
- if n < len(p) {
- return n, io.EOF
- }
- return n, nil
-}
-
-// ReadByte implements io.ByteReader.
-func (f *mmapFile) ReadByte() (byte, error) {
- if f.data == nil {
- return 0, errMmapClosed
- }
- if f.pos >= f.Size() {
- return 0, io.EOF
- }
- b := f.data[f.pos]
- f.pos++
- return b, nil
-}
-
-// ReadSlice returns a slice of size n that points directly at the
-// underlying mapped file. There is no copying. Fails if it cannot
-// read at least n bytes.
-func (f *mmapFile) ReadSlice(n uint64) ([]byte, error) {
- if f.data == nil {
- return nil, errMmapClosed
- }
- if f.pos+n >= f.Size() {
- return nil, io.EOF
- }
- first := f.pos
- f.pos += n
- return f.data[first:f.pos:f.pos], nil
-}
-
-// ReadSliceAt is like ReadSlice, but reads from a specific offset.
-// The file pointer is not used or advanced.
-func (f *mmapFile) ReadSliceAt(offset, n uint64) ([]byte, error) {
- if f.data == nil {
- return nil, errMmapClosed
- }
- if f.Size() < offset {
- return nil, fmt.Errorf("mmap: out-of-bounds ReadSliceAt offset %d, size is %d", offset, f.Size())
- }
- if offset+n >= f.Size() {
- return nil, io.EOF
- }
- end := offset + n
- return f.data[offset:end:end], nil
-}
-
-// Close closes the file.
-func (f *mmapFile) Close() error {
- if f.data == nil {
- return nil
- }
- err := syscall.Munmap(f.data)
- f.data = nil
- f.pos = 0
- return err
-}
diff --git a/vendor/golang.org/x/tools/cmd/heapview/internal/core/mmapfile_other.go b/vendor/golang.org/x/tools/cmd/heapview/internal/core/mmapfile_other.go
deleted file mode 100644
index 181f842067..0000000000
--- a/vendor/golang.org/x/tools/cmd/heapview/internal/core/mmapfile_other.go
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2016 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build !darwin,!linux
-
-package core
-
-// TODO(matloob): perhaps use the more portable golang.org/x/exp/mmap
-// instead of the mmap code in mmapfile.go.
-
-type mmapFile struct{}
-
-func (m *mmapFile) Close() error { return nil }
diff --git a/vendor/golang.org/x/tools/cmd/heapview/internal/core/raw.go b/vendor/golang.org/x/tools/cmd/heapview/internal/core/raw.go
deleted file mode 100644
index febed0f4dc..0000000000
--- a/vendor/golang.org/x/tools/cmd/heapview/internal/core/raw.go
+++ /dev/null
@@ -1,308 +0,0 @@
-// Copyright 2016 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package core provides functions for reading core dumps
-// and examining their contained heaps.
-package core
-
-import (
- "bytes"
- "encoding/binary"
- "fmt"
- "runtime"
- "sort"
-)
-
-// RawDump provides raw access to the heap records in a core file.
-// The raw records in this file are described by other structs named Raw{*}.
-// All []byte slices are direct references to the underlying mmap'd file.
-// These references will become invalid as soon as the RawDump is closed.
-type RawDump struct {
- Params *RawParams
- MemStats *runtime.MemStats
-
- HeapObjects []RawSegment // heap objects sorted by Addr, low-to-high
- GlobalSegments []RawSegment // data, bss, and noptrbss segments
-
- OSThreads []*RawOSThread
- Goroutines []*RawGoroutine
- StackFrames []*RawStackFrame
- OtherRoots []*RawOtherRoot
- Finalizers []*RawFinalizer
- Defers []*RawDefer
- Panics []*RawPanic
-
- TypeFromItab map[uint64]uint64 // map from itab address to the type address that itab represents
- TypeFromAddr map[uint64]*RawType // map from RawType.Addr to RawType
-
- MemProfMap map[uint64]*RawMemProfEntry
- AllocSamples []*RawAllocSample
-
- fmap *mmapFile
-}
-
-// RawParams holds metadata about the program that generated the dump.
-type RawParams struct {
- // Info about the memory space
-
- ByteOrder binary.ByteOrder // byte order of all memory in this dump
- PtrSize uint64 // in bytes
- HeapStart uint64 // heap start address
- HeapEnd uint64 // heap end address (this is the last byte in the heap + 1)
-
- // Info about the program that generated this heapdump
-
- GoArch string // GOARCH of the runtime library that generated this dump
- GoExperiment string // GOEXPERIMENT of the toolchain that build the runtime library
- NCPU uint64 // number of physical cpus available to the program
-}
-
-// RawSegment represents a segment of memory.
-type RawSegment struct {
- Addr uint64 // base address of the segment
- Data []byte // data for this segment
- PtrFields RawPtrFields // offsets of ptr fields within this segment
-}
-
-// RawPtrFields represents a pointer field.
-type RawPtrFields struct {
- encoded []byte // list of uvarint-encoded offsets, or nil if none
- startOff, endOff uint64 // decoded offsets are translated and clipped to [startOff,endOff)
-}
-
-// RawOSThread represents an OS thread.
-type RawOSThread struct {
- MAddr uint64 // address of the OS thread descriptor (M)
- GoID uint64 // go's internal ID for the thread
- ProcID uint64 // kernel's ID for the thread
-}
-
-// RawGoroutine represents a goroutine structure.
-type RawGoroutine struct {
- GAddr uint64 // address of the goroutine descriptor
- SP uint64 // current stack pointer (lowest address in the currently running frame)
- GoID uint64 // goroutine ID
- GoPC uint64 // PC of the go statement that created this goroutine
- Status uint64
- IsSystem bool // true if started by the system
- IsBackground bool // always false in go1.7
- WaitSince uint64 // time the goroutine started waiting, in nanoseconds since the Unix epoch
- WaitReason string
- CtxtAddr uint64 // address of the scheduling ctxt
- MAddr uint64 // address of the OS thread descriptor (M)
- TopDeferAddr uint64 // address of the top defer record
- TopPanicAddr uint64 // address of the top panic record
-}
-
-// RawStackFrame represents a stack frame.
-type RawStackFrame struct {
- Name string
- Depth uint64 // 0 = bottom of stack (currently running frame)
- CalleeSP uint64 // stack pointer of the child frame (or 0 for the bottom-most frame)
- EntryPC uint64 // entry PC for the function
- PC uint64 // current PC being executed
- NextPC uint64 // for callers, where the function resumes (if anywhere) after the callee is done
- Segment RawSegment // local vars (Segment.Addr is the stack pointer, i.e., lowest address in the frame)
-}
-
-// RawOtherRoot represents the other roots not in RawDump's other fields.
-type RawOtherRoot struct {
- Description string
- Addr uint64 // address pointed to by this root
-}
-
-// RawFinalizer represents a finalizer.
-type RawFinalizer struct {
- IsQueued bool // if true, the object is unreachable and the finalizer is ready to run
- ObjAddr uint64 // address of the object to finalize
- ObjTypeAddr uint64 // address of the descriptor for typeof(obj)
- FnAddr uint64 // function to be run (a FuncVal*)
- FnArgTypeAddr uint64 // address of the descriptor for the type of the function argument
- FnPC uint64 // PC of finalizer entry point
-}
-
-// RawDefer represents a defer.
-type RawDefer struct {
- Addr uint64 // address of the defer record
- GAddr uint64 // address of the containing goroutine's descriptor
- ArgP uint64 // stack pointer giving the args for defer (TODO: is this right?)
- PC uint64 // PC of the defer instruction
- FnAddr uint64 // function to be run (a FuncVal*)
- FnPC uint64 // PC of the defered function's entry point
- LinkAddr uint64 // address of the next defer record in this chain
-}
-
-// RawPanic represents a panic.
-type RawPanic struct {
- Addr uint64 // address of the panic record
- GAddr uint64 // address of the containing goroutine's descriptor
- ArgTypeAddr uint64 // type of the panic arg
- ArgAddr uint64 // address of the panic arg
- DeferAddr uint64 // address of the defer record that is currently running
- LinkAddr uint64 // address of the next panic record in this chain
-}
-
-// RawType repesents the Go runtime's representation of a type.
-type RawType struct {
- Addr uint64 // address of the type descriptor
- Size uint64 // in bytes
- Name string // not necessarily unique
- // If true, this type is equivalent to a single pointer, so ifaces can store
- // this type directly in the data field (without indirection).
- DirectIFace bool
-}
-
-// RawMemProfEntry represents a memory profiler entry.
-type RawMemProfEntry struct {
- Size uint64 // size of the allocated object
- NumAllocs uint64 // number of allocations
- NumFrees uint64 // number of frees
- Stacks []RawMemProfFrame // call stacks
-}
-
-// RawMemProfFrame represents a memory profiler frame.
-type RawMemProfFrame struct {
- Func []byte // string left as []byte reference to save memory
- File []byte // string left as []byte reference to save memory
- Line uint64
-}
-
-// RawAllocSample represents a memory profiler allocation sample.
-type RawAllocSample struct {
- Addr uint64 // address of object
- Prof *RawMemProfEntry // record of allocation site
-}
-
-// Close closes the file.
-func (r *RawDump) Close() error {
- return r.fmap.Close()
-}
-
-// FindSegment returns the segment that contains the given address, or
-// nil of no segment contains the address.
-func (r *RawDump) FindSegment(addr uint64) *RawSegment {
- // Binary search for an upper-bound heap object, then check
- // if the previous object contains addr.
- k := sort.Search(len(r.HeapObjects), func(k int) bool {
- return addr < r.HeapObjects[k].Addr
- })
- k--
- if k >= 0 && r.HeapObjects[k].Contains(addr) {
- return &r.HeapObjects[k]
- }
-
- // Check all global segments.
- for k := range r.GlobalSegments {
- if r.GlobalSegments[k].Contains(addr) {
- return &r.GlobalSegments[k]
- }
- }
-
- // NB: Stack-local vars are technically allocated in the heap, since stack frames are
- // allocated in the heap space, however, stack frames don't show up in r.HeapObjects.
- for _, f := range r.StackFrames {
- if f.Segment.Contains(addr) {
- return &f.Segment
- }
- }
-
- return nil
-}
-
-// Contains returns true if the segment contains the given address.
-func (r RawSegment) Contains(addr uint64) bool {
- return r.Addr <= addr && addr < r.Addr+r.Size()
-}
-
-// ContainsRange returns true if the segment contains the range [addr, addr+size).
-func (r RawSegment) ContainsRange(addr, size uint64) bool {
- if !r.Contains(addr) {
- return false
- }
- if size > 0 && !r.Contains(addr+size-1) {
- return false
- }
- return true
-}
-
-// Size returns the size of the segment in bytes.
-func (r RawSegment) Size() uint64 {
- return uint64(len(r.Data))
-}
-
-// Slice takes a slice of the given segment. Panics if [offset,offset+size)
-// is out-of-bounds. The resulting RawSegment.PtrOffsets will clipped and
-// translated into the new segment.
-func (r RawSegment) Slice(offset, size uint64) *RawSegment {
- if offset+size > uint64(len(r.Data)) {
- panic(fmt.Errorf("slice(%d,%d) out-of-bounds of segment @%x sz=%d", offset, size, r.Addr, len(r.Data)))
- }
- return &RawSegment{
- Addr: r.Addr + offset,
- Data: r.Data[offset : offset+size : offset+size],
- PtrFields: RawPtrFields{
- encoded: r.PtrFields.encoded,
- startOff: r.PtrFields.startOff + offset,
- endOff: r.PtrFields.startOff + offset + size,
- },
- }
-}
-
-// Offsets decodes the list of ptr field offsets.
-func (r RawPtrFields) Offsets() []uint64 {
- if r.encoded == nil {
- return nil
- }
-
- // NB: This should never fail since we already decoded the varints once
- // when parsing the file originally. Hence we panic on failure.
- reader := bytes.NewReader(r.encoded)
- readUint64 := func() uint64 {
- x, err := binary.ReadUvarint(reader)
- if err != nil {
- panic(fmt.Errorf("unexpected failure decoding uvarint: %v", err))
- }
- return x
- }
-
- var out []uint64
- for {
- k := readUint64()
- switch k {
- case 0: // end
- return out
- case 1: // ptr
- x := readUint64()
- if r.startOff <= x && x < r.endOff {
- out = append(out, x-r.startOff)
- }
- default:
- panic(fmt.Errorf("unexpected FieldKind %d", k))
- }
- }
-}
-
-// ReadPtr decodes a ptr from the given byte slice.
-func (r *RawParams) ReadPtr(b []byte) uint64 {
- switch r.PtrSize {
- case 4:
- return uint64(r.ByteOrder.Uint32(b))
- case 8:
- return r.ByteOrder.Uint64(b)
- default:
- panic(fmt.Errorf("unsupported PtrSize=%d", r.PtrSize))
- }
-}
-
-// WritePtr encodes a ptr into the given byte slice.
-func (r *RawParams) WritePtr(b []byte, addr uint64) {
- switch r.PtrSize {
- case 4:
- r.ByteOrder.PutUint32(b, uint32(addr))
- case 8:
- r.ByteOrder.PutUint64(b, addr)
- default:
- panic(fmt.Errorf("unsupported PtrSize=%d", r.PtrSize))
- }
-}
diff --git a/vendor/golang.org/x/tools/cmd/heapview/main.go b/vendor/golang.org/x/tools/cmd/heapview/main.go
deleted file mode 100644
index 6dac12e00e..0000000000
--- a/vendor/golang.org/x/tools/cmd/heapview/main.go
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright 2016 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// heapview is a tool for viewing Go heap dumps.
-package main
-
-import (
- "flag"
- "fmt"
- "go/build"
- "io"
- "log"
- "net/http"
- "os"
- "path/filepath"
-)
-
-var host = flag.String("host", "", "host addr to listen on")
-var port = flag.Int("port", 8080, "service port")
-
-var index = `
-
-
-
-
-
-`
-
-func toolsDir() string {
- p, err := build.Import("golang.org/x/tools", "", build.FindOnly)
- if err != nil {
- log.Println("error: can't find client files:", err)
- os.Exit(1)
- }
- return p.Dir
-}
-
-var parseFlags = func() {
- flag.Parse()
-}
-
-var addHandlers = func() {
- toolsDir := toolsDir()
-
- // Directly serve typescript code in client directory for development.
- http.Handle("/client/", http.StripPrefix("/client",
- http.FileServer(http.Dir(filepath.Join(toolsDir, "cmd/heapview/client")))))
-
- // Serve typescript.js and moduleloader.js for development.
- http.HandleFunc("/js/typescript.js", func(w http.ResponseWriter, r *http.Request) {
- http.ServeFile(w, r, filepath.Join(toolsDir, "third_party/typescript/typescript.js"))
- })
- http.HandleFunc("/js/moduleloader.js", func(w http.ResponseWriter, r *http.Request) {
- http.ServeFile(w, r, filepath.Join(toolsDir, "third_party/moduleloader/moduleloader.js"))
- })
- http.HandleFunc("/js/customelements.js", func(w http.ResponseWriter, r *http.Request) {
- http.ServeFile(w, r, filepath.Join(toolsDir, "third_party/webcomponents/customelements.js"))
- })
-
- // Serve index.html using html string above.
- http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
- w.Header().Set("Content-Type", "text/html")
- io.WriteString(w, index)
- })
-}
-
-var listenAndServe = func() error {
- return http.ListenAndServe(fmt.Sprintf("%s:%d", *host, *port), nil)
-}
-
-func main() {
- parseFlags()
- addHandlers()
- log.Fatal(listenAndServe())
-}
diff --git a/vendor/golang.org/x/tools/cmd/splitdwarf/doc.go b/vendor/golang.org/x/tools/cmd/splitdwarf/doc.go
new file mode 100644
index 0000000000..7799f420ae
--- /dev/null
+++ b/vendor/golang.org/x/tools/cmd/splitdwarf/doc.go
@@ -0,0 +1,19 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+/*
+
+Splitdwarf uncompresses and copies the DWARF segment of a Mach-O
+executable into the "dSYM" file expected by lldb and ports of gdb
+on OSX.
+
+Usage: splitdwarf osxMachoFile [ osxDsymFile ]
+
+Unless a dSYM file name is provided on the command line,
+splitdwarf will place it where the OSX tools expect it, in
+".dSYM/Contents/Resources/DWARF/",
+creating directories as necessary.
+
+*/
+package main // import "golang.org/x/tools/cmd/splitdwarf"
diff --git a/vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/fat.go b/vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/fat.go
new file mode 100644
index 0000000000..95e07af0a5
--- /dev/null
+++ b/vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/fat.go
@@ -0,0 +1,141 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package macho
+
+import (
+ "encoding/binary"
+ "io"
+ "os"
+)
+
+// A FatFile is a Mach-O universal binary that contains at least one architecture.
+type FatFile struct {
+ Magic uint32
+ Arches []FatArch
+ closer io.Closer
+}
+
+// A FatArchHeader represents a fat header for a specific image architecture.
+type FatArchHeader struct {
+ Cpu Cpu
+ SubCpu uint32
+ Offset uint32
+ Size uint32
+ Align uint32
+}
+
+const fatArchHeaderSize = 5 * 4
+
+// A FatArch is a Mach-O File inside a FatFile.
+type FatArch struct {
+ FatArchHeader
+ *File
+}
+
+// NewFatFile creates a new FatFile for accessing all the Mach-O images in a
+// universal binary. The Mach-O binary is expected to start at position 0 in
+// the ReaderAt.
+func NewFatFile(r io.ReaderAt) (*FatFile, error) {
+ var ff FatFile
+ sr := io.NewSectionReader(r, 0, 1<<63-1)
+
+ // Read the fat_header struct, which is always in big endian.
+ // Start with the magic number.
+ err := binary.Read(sr, binary.BigEndian, &ff.Magic)
+ if err != nil {
+ return nil, formatError(0, "error reading magic number, %v", err)
+ } else if ff.Magic != MagicFat {
+ // See if this is a Mach-O file via its magic number. The magic
+ // must be converted to little endian first though.
+ var buf [4]byte
+ binary.BigEndian.PutUint32(buf[:], ff.Magic)
+ leMagic := binary.LittleEndian.Uint32(buf[:])
+ if leMagic == Magic32 || leMagic == Magic64 {
+ return nil, formatError(0, "not a fat Mach-O file, leMagic=0x%x", leMagic)
+ } else {
+ return nil, formatError(0, "invalid magic number, leMagic=0x%x", leMagic)
+ }
+ }
+ offset := int64(4)
+
+ // Read the number of FatArchHeaders that come after the fat_header.
+ var narch uint32
+ err = binary.Read(sr, binary.BigEndian, &narch)
+ if err != nil {
+ return nil, formatError(offset, "invalid fat_header %v", err)
+ }
+ offset += 4
+
+ if narch < 1 {
+ return nil, formatError(offset, "file contains no images, narch=%d", narch)
+ }
+
+ // Combine the Cpu and SubCpu (both uint32) into a uint64 to make sure
+ // there are not duplicate architectures.
+ seenArches := make(map[uint64]bool, narch)
+ // Make sure that all images are for the same MH_ type.
+ var machoType HdrType
+
+ // Following the fat_header comes narch fat_arch structs that index
+ // Mach-O images further in the file.
+ ff.Arches = make([]FatArch, narch)
+ for i := uint32(0); i < narch; i++ {
+ fa := &ff.Arches[i]
+ err = binary.Read(sr, binary.BigEndian, &fa.FatArchHeader)
+ if err != nil {
+ return nil, formatError(offset, "invalid fat_arch header, %v", err)
+ }
+ offset += fatArchHeaderSize
+
+ fr := io.NewSectionReader(r, int64(fa.Offset), int64(fa.Size))
+ fa.File, err = NewFile(fr)
+ if err != nil {
+ return nil, err
+ }
+
+ // Make sure the architecture for this image is not duplicate.
+ seenArch := (uint64(fa.Cpu) << 32) | uint64(fa.SubCpu)
+ if o, k := seenArches[seenArch]; o || k {
+ return nil, formatError(offset, "duplicate architecture cpu=%v, subcpu=%#x", fa.Cpu, fa.SubCpu)
+ }
+ seenArches[seenArch] = true
+
+ // Make sure the Mach-O type matches that of the first image.
+ if i == 0 {
+ machoType = HdrType(fa.Type)
+ } else {
+ if HdrType(fa.Type) != machoType {
+ return nil, formatError(offset, "Mach-O type for architecture #%d (type=%#x) does not match first (type=%#x)", i, fa.Type, machoType)
+ }
+ }
+ }
+
+ return &ff, nil
+}
+
+// OpenFat opens the named file using os.Open and prepares it for use as a Mach-O
+// universal binary.
+func OpenFat(name string) (*FatFile, error) {
+ f, err := os.Open(name)
+ if err != nil {
+ return nil, err
+ }
+ ff, err := NewFatFile(f)
+ if err != nil {
+ f.Close()
+ return nil, err
+ }
+ ff.closer = f
+ return ff, nil
+}
+
+func (ff *FatFile) Close() error {
+ var err error
+ if ff.closer != nil {
+ err = ff.closer.Close()
+ ff.closer = nil
+ }
+ return err
+}
diff --git a/vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/file.go b/vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/file.go
new file mode 100644
index 0000000000..ceaaa028e1
--- /dev/null
+++ b/vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/file.go
@@ -0,0 +1,1303 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package macho implements access to Mach-O object files.
+package macho
+
+// High level access to low level data structures.
+
+import (
+ "bytes"
+ "compress/zlib"
+ "debug/dwarf"
+ "encoding/binary"
+ "fmt"
+ "io"
+ "os"
+ "strings"
+ "unsafe"
+)
+
+// A File represents an open Mach-O file.
+type File struct {
+ FileTOC
+
+ Symtab *Symtab
+ Dysymtab *Dysymtab
+
+ closer io.Closer
+}
+
+type FileTOC struct {
+ FileHeader
+ ByteOrder binary.ByteOrder
+ Loads []Load
+ Sections []*Section
+}
+
+func (t *FileTOC) AddLoad(l Load) {
+ t.Loads = append(t.Loads, l)
+ t.NCommands++
+ t.SizeCommands += l.LoadSize(t)
+}
+
+// AddSegment adds segment s to the file table of contents,
+// and also zeroes out the segment information with the expectation
+// that this will be added next.
+func (t *FileTOC) AddSegment(s *Segment) {
+ t.AddLoad(s)
+ s.Nsect = 0
+ s.Firstsect = 0
+}
+
+// Adds section to the most recently added Segment
+func (t *FileTOC) AddSection(s *Section) {
+ g := t.Loads[len(t.Loads)-1].(*Segment)
+ if g.Nsect == 0 {
+ g.Firstsect = uint32(len(t.Sections))
+ }
+ g.Nsect++
+ t.Sections = append(t.Sections, s)
+ sectionsize := uint32(unsafe.Sizeof(Section32{}))
+ if g.Command() == LcSegment64 {
+ sectionsize = uint32(unsafe.Sizeof(Section64{}))
+ }
+ t.SizeCommands += sectionsize
+ g.Len += sectionsize
+}
+
+// A Load represents any Mach-O load command.
+type Load interface {
+ String() string
+ Command() LoadCmd
+ LoadSize(*FileTOC) uint32 // Need the TOC for alignment, sigh.
+ Put([]byte, binary.ByteOrder) int
+
+ // command LC_DYLD_INFO_ONLY contains offsets into __LINKEDIT
+ // e.g., from "otool -l a.out"
+ //
+ // Load command 3
+ // cmd LC_SEGMENT_64
+ // cmdsize 72
+ // segname __LINKEDIT
+ // vmaddr 0x0000000100002000
+ // vmsize 0x0000000000001000
+ // fileoff 8192
+ // filesize 520
+ // maxprot 0x00000007
+ // initprot 0x00000001
+ // nsects 0
+ // flags 0x0
+ // Load command 4
+ // cmd LC_DYLD_INFO_ONLY
+ // cmdsize 48
+ // rebase_off 8192
+ // rebase_size 8
+ // bind_off 8200
+ // bind_size 24
+ // weak_bind_off 0
+ // weak_bind_size 0
+ // lazy_bind_off 8224
+ // lazy_bind_size 16
+ // export_off 8240
+ // export_size 48
+}
+
+// LoadBytes is the uninterpreted bytes of a Mach-O load command.
+type LoadBytes []byte
+
+// A SegmentHeader is the header for a Mach-O 32-bit or 64-bit load segment command.
+type SegmentHeader struct {
+ LoadCmd
+ Len uint32
+ Name string // 16 characters or fewer
+ Addr uint64 // memory address
+ Memsz uint64 // memory size
+ Offset uint64 // file offset
+ Filesz uint64 // number of bytes starting at that file offset
+ Maxprot uint32
+ Prot uint32
+ Nsect uint32
+ Flag SegFlags
+ Firstsect uint32
+}
+
+// A Segment represents a Mach-O 32-bit or 64-bit load segment command.
+type Segment struct {
+ SegmentHeader
+
+ // Embed ReaderAt for ReadAt method.
+ // Do not embed SectionReader directly
+ // to avoid having Read and Seek.
+ // If a client wants Read and Seek it must use
+ // Open() to avoid fighting over the seek offset
+ // with other clients.
+ io.ReaderAt
+ sr *io.SectionReader
+}
+
+func (s *Segment) Put32(b []byte, o binary.ByteOrder) int {
+ o.PutUint32(b[0*4:], uint32(s.LoadCmd))
+ o.PutUint32(b[1*4:], s.Len)
+ putAtMost16Bytes(b[2*4:], s.Name)
+ o.PutUint32(b[6*4:], uint32(s.Addr))
+ o.PutUint32(b[7*4:], uint32(s.Memsz))
+ o.PutUint32(b[8*4:], uint32(s.Offset))
+ o.PutUint32(b[9*4:], uint32(s.Filesz))
+ o.PutUint32(b[10*4:], s.Maxprot)
+ o.PutUint32(b[11*4:], s.Prot)
+ o.PutUint32(b[12*4:], s.Nsect)
+ o.PutUint32(b[13*4:], uint32(s.Flag))
+ return 14 * 4
+}
+
+func (s *Segment) Put64(b []byte, o binary.ByteOrder) int {
+ o.PutUint32(b[0*4:], uint32(s.LoadCmd))
+ o.PutUint32(b[1*4:], s.Len)
+ putAtMost16Bytes(b[2*4:], s.Name)
+ o.PutUint64(b[6*4+0*8:], s.Addr)
+ o.PutUint64(b[6*4+1*8:], s.Memsz)
+ o.PutUint64(b[6*4+2*8:], s.Offset)
+ o.PutUint64(b[6*4+3*8:], s.Filesz)
+ o.PutUint32(b[6*4+4*8:], s.Maxprot)
+ o.PutUint32(b[7*4+4*8:], s.Prot)
+ o.PutUint32(b[8*4+4*8:], s.Nsect)
+ o.PutUint32(b[9*4+4*8:], uint32(s.Flag))
+ return 10*4 + 4*8
+}
+
+// LoadCmdBytes is a command-tagged sequence of bytes.
+// This is used for Load Commands that are not (yet)
+// interesting to us, and to common up this behavior for
+// all those that are.
+type LoadCmdBytes struct {
+ LoadCmd
+ LoadBytes
+}
+
+type SectionHeader struct {
+ Name string
+ Seg string
+ Addr uint64
+ Size uint64
+ Offset uint32
+ Align uint32
+ Reloff uint32
+ Nreloc uint32
+ Flags SecFlags
+ Reserved1 uint32
+ Reserved2 uint32
+ Reserved3 uint32 // only present if original was 64-bit
+}
+
+// A Reloc represents a Mach-O relocation.
+type Reloc struct {
+ Addr uint32
+ Value uint32
+ // when Scattered == false && Extern == true, Value is the symbol number.
+ // when Scattered == false && Extern == false, Value is the section number.
+ // when Scattered == true, Value is the value that this reloc refers to.
+ Type uint8
+ Len uint8 // 0=byte, 1=word, 2=long, 3=quad
+ Pcrel bool
+ Extern bool // valid if Scattered == false
+ Scattered bool
+}
+
+type Section struct {
+ SectionHeader
+ Relocs []Reloc
+
+ // Embed ReaderAt for ReadAt method.
+ // Do not embed SectionReader directly
+ // to avoid having Read and Seek.
+ // If a client wants Read and Seek it must use
+ // Open() to avoid fighting over the seek offset
+ // with other clients.
+ io.ReaderAt
+ sr *io.SectionReader
+}
+
+func (s *Section) Put32(b []byte, o binary.ByteOrder) int {
+ putAtMost16Bytes(b[0:], s.Name)
+ putAtMost16Bytes(b[16:], s.Seg)
+ o.PutUint32(b[8*4:], uint32(s.Addr))
+ o.PutUint32(b[9*4:], uint32(s.Size))
+ o.PutUint32(b[10*4:], s.Offset)
+ o.PutUint32(b[11*4:], s.Align)
+ o.PutUint32(b[12*4:], s.Reloff)
+ o.PutUint32(b[13*4:], s.Nreloc)
+ o.PutUint32(b[14*4:], uint32(s.Flags))
+ o.PutUint32(b[15*4:], s.Reserved1)
+ o.PutUint32(b[16*4:], s.Reserved2)
+ a := 17 * 4
+ return a + s.PutRelocs(b[a:], o)
+}
+
+func (s *Section) Put64(b []byte, o binary.ByteOrder) int {
+ putAtMost16Bytes(b[0:], s.Name)
+ putAtMost16Bytes(b[16:], s.Seg)
+ o.PutUint64(b[8*4+0*8:], s.Addr)
+ o.PutUint64(b[8*4+1*8:], s.Size)
+ o.PutUint32(b[8*4+2*8:], s.Offset)
+ o.PutUint32(b[9*4+2*8:], s.Align)
+ o.PutUint32(b[10*4+2*8:], s.Reloff)
+ o.PutUint32(b[11*4+2*8:], s.Nreloc)
+ o.PutUint32(b[12*4+2*8:], uint32(s.Flags))
+ o.PutUint32(b[13*4+2*8:], s.Reserved1)
+ o.PutUint32(b[14*4+2*8:], s.Reserved2)
+ o.PutUint32(b[15*4+2*8:], s.Reserved3)
+ a := 16*4 + 2*8
+ return a + s.PutRelocs(b[a:], o)
+}
+
+func (s *Section) PutRelocs(b []byte, o binary.ByteOrder) int {
+ a := 0
+ for _, r := range s.Relocs {
+ var ri relocInfo
+ typ := uint32(r.Type) & (1<<4 - 1)
+ len := uint32(r.Len) & (1<<2 - 1)
+ pcrel := uint32(0)
+ if r.Pcrel {
+ pcrel = 1
+ }
+ ext := uint32(0)
+ if r.Extern {
+ ext = 1
+ }
+ switch {
+ case r.Scattered:
+ ri.Addr = r.Addr&(1<<24-1) | typ<<24 | len<<28 | 1<<31 | pcrel<<30
+ ri.Symnum = r.Value
+ case o == binary.LittleEndian:
+ ri.Addr = r.Addr
+ ri.Symnum = r.Value&(1<<24-1) | pcrel<<24 | len<<25 | ext<<27 | typ<<28
+ case o == binary.BigEndian:
+ ri.Addr = r.Addr
+ ri.Symnum = r.Value<<8 | pcrel<<7 | len<<5 | ext<<4 | typ
+ }
+ o.PutUint32(b, ri.Addr)
+ o.PutUint32(b[4:], ri.Symnum)
+ a += 8
+ b = b[8:]
+ }
+ return a
+}
+
+func putAtMost16Bytes(b []byte, n string) {
+ for i := range n { // at most 16 bytes
+ if i == 16 {
+ break
+ }
+ b[i] = n[i]
+ }
+}
+
+// A Symbol is a Mach-O 32-bit or 64-bit symbol table entry.
+type Symbol struct {
+ Name string
+ Type uint8
+ Sect uint8
+ Desc uint16
+ Value uint64
+}
+
+/*
+ * Mach-O reader
+ */
+
+// FormatError is returned by some operations if the data does
+// not have the correct format for an object file.
+type FormatError struct {
+ off int64
+ msg string
+}
+
+func formatError(off int64, format string, data ...interface{}) *FormatError {
+ return &FormatError{off, fmt.Sprintf(format, data...)}
+}
+
+func (e *FormatError) Error() string {
+ return e.msg + fmt.Sprintf(" in record at byte %#x", e.off)
+}
+
+func (e *FormatError) String() string {
+ return e.Error()
+}
+
+// DerivedCopy returns a modified copy of the TOC, with empty loads and sections,
+// and with the specified header type and flags.
+func (t *FileTOC) DerivedCopy(Type HdrType, Flags HdrFlags) *FileTOC {
+ h := t.FileHeader
+ h.NCommands, h.SizeCommands, h.Type, h.Flags = 0, 0, Type, Flags
+
+ return &FileTOC{FileHeader: h, ByteOrder: t.ByteOrder}
+}
+
+// TOCSize returns the size in bytes of the object file representation
+// of the header and Load Commands (including Segments and Sections, but
+// not their contents) at the beginning of a Mach-O file. This typically
+// overlaps the text segment in the object file.
+func (t *FileTOC) TOCSize() uint32 {
+ return t.HdrSize() + t.LoadSize()
+}
+
+// LoadAlign returns the required alignment of Load commands in a binary.
+// This is used to add padding for necessary alignment.
+func (t *FileTOC) LoadAlign() uint64 {
+ if t.Magic == Magic64 {
+ return 8
+ }
+ return 4
+}
+
+// SymbolSize returns the size in bytes of a Symbol (Nlist32 or Nlist64)
+func (t *FileTOC) SymbolSize() uint32 {
+ if t.Magic == Magic64 {
+ return uint32(unsafe.Sizeof(Nlist64{}))
+ }
+ return uint32(unsafe.Sizeof(Nlist32{}))
+}
+
+// HdrSize returns the size in bytes of the Macho header for a given
+// magic number (where the magic number has been appropriately byte-swapped).
+func (t *FileTOC) HdrSize() uint32 {
+ switch t.Magic {
+ case Magic32:
+ return fileHeaderSize32
+ case Magic64:
+ return fileHeaderSize64
+ case MagicFat:
+ panic("MagicFat not handled yet")
+ default:
+ panic(fmt.Sprintf("Unexpected magic number 0x%x, expected Mach-O object file", t.Magic))
+ }
+}
+
+// LoadSize returns the size of all the load commands in a file's table-of contents
+// (but not their associated data, e.g., sections and symbol tables)
+func (t *FileTOC) LoadSize() uint32 {
+ cmdsz := uint32(0)
+ for _, l := range t.Loads {
+ s := l.LoadSize(t)
+ cmdsz += s
+ }
+ return cmdsz
+}
+
+// FileSize returns the size in bytes of the header, load commands, and the
+// in-file contents of all the segments and sections included in those
+// load commands, accounting for their offsets within the file.
+func (t *FileTOC) FileSize() uint64 {
+ sz := uint64(t.LoadSize()) // ought to be contained in text segment, but just in case.
+ for _, l := range t.Loads {
+ if s, ok := l.(*Segment); ok {
+ if m := s.Offset + s.Filesz; m > sz {
+ sz = m
+ }
+ }
+ }
+ return sz
+}
+
+// Put writes the header and all load commands to buffer, using
+// the byte ordering specified in FileTOC t. For sections, this
+// writes the headers that come in-line with the segment Load commands,
+// but does not write the reference data for those sections.
+func (t *FileTOC) Put(buffer []byte) int {
+ next := t.FileHeader.Put(buffer, t.ByteOrder)
+ for _, l := range t.Loads {
+ if s, ok := l.(*Segment); ok {
+ switch t.Magic {
+ case Magic64:
+ next += s.Put64(buffer[next:], t.ByteOrder)
+ for i := uint32(0); i < s.Nsect; i++ {
+ c := t.Sections[i+s.Firstsect]
+ next += c.Put64(buffer[next:], t.ByteOrder)
+ }
+ case Magic32:
+ next += s.Put32(buffer[next:], t.ByteOrder)
+ for i := uint32(0); i < s.Nsect; i++ {
+ c := t.Sections[i+s.Firstsect]
+ next += c.Put32(buffer[next:], t.ByteOrder)
+ }
+ default:
+ panic(fmt.Sprintf("Unexpected magic number 0x%x", t.Magic))
+ }
+
+ } else {
+ next += l.Put(buffer[next:], t.ByteOrder)
+ }
+ }
+ return next
+}
+
+// UncompressedSize returns the size of the segment with its sections uncompressed, ignoring
+// its offset within the file. The returned size is rounded up to the power of two in align.
+func (s *Segment) UncompressedSize(t *FileTOC, align uint64) uint64 {
+ sz := uint64(0)
+ for j := uint32(0); j < s.Nsect; j++ {
+ c := t.Sections[j+s.Firstsect]
+ sz += c.UncompressedSize()
+ }
+ return (sz + align - 1) & uint64(-int64(align))
+}
+
+func (s *Section) UncompressedSize() uint64 {
+ if !strings.HasPrefix(s.Name, "__z") {
+ return s.Size
+ }
+ b := make([]byte, 12)
+ n, err := s.sr.ReadAt(b, 0)
+ if err != nil {
+ panic("Malformed object file")
+ }
+ if n != len(b) {
+ return s.Size
+ }
+ if string(b[:4]) == "ZLIB" {
+ return binary.BigEndian.Uint64(b[4:12])
+ }
+ return s.Size
+}
+
+func (s *Section) PutData(b []byte) {
+ bb := b[0:s.Size]
+ n, err := s.sr.ReadAt(bb, 0)
+ if err != nil || uint64(n) != s.Size {
+ panic("Malformed object file (ReadAt error)")
+ }
+}
+
+func (s *Section) PutUncompressedData(b []byte) {
+ if strings.HasPrefix(s.Name, "__z") {
+ bb := make([]byte, 12)
+ n, err := s.sr.ReadAt(bb, 0)
+ if err != nil {
+ panic("Malformed object file")
+ }
+ if n == len(bb) && string(bb[:4]) == "ZLIB" {
+ size := binary.BigEndian.Uint64(bb[4:12])
+ // Decompress starting at b[12:]
+ r, err := zlib.NewReader(io.NewSectionReader(s, 12, int64(size)-12))
+ if err != nil {
+ panic("Malformed object file (zlib.NewReader error)")
+ }
+ n, err := io.ReadFull(r, b[0:size])
+ if err != nil {
+ panic("Malformed object file (ReadFull error)")
+ }
+ if uint64(n) != size {
+ panic(fmt.Sprintf("PutUncompressedData, expected to read %d bytes, instead read %d", size, n))
+ }
+ if err := r.Close(); err != nil {
+ panic("Malformed object file (Close error)")
+ }
+ return
+ }
+ }
+ // Not compressed
+ s.PutData(b)
+}
+
+func (b LoadBytes) String() string {
+ s := "["
+ for i, a := range b {
+ if i > 0 {
+ s += " "
+ if len(b) > 48 && i >= 16 {
+ s += fmt.Sprintf("... (%d bytes)", len(b))
+ break
+ }
+ }
+ s += fmt.Sprintf("%x", a)
+ }
+ s += "]"
+ return s
+}
+
+func (b LoadBytes) Raw() []byte { return b }
+func (b LoadBytes) Copy() LoadBytes { return LoadBytes(append([]byte{}, b...)) }
+func (b LoadBytes) LoadSize(t *FileTOC) uint32 { return uint32(len(b)) }
+
+func (lc LoadCmd) Put(b []byte, o binary.ByteOrder) int {
+ panic(fmt.Sprintf("Put not implemented for %s", lc.String()))
+}
+
+func (s LoadCmdBytes) String() string {
+ return s.LoadCmd.String() + ": " + s.LoadBytes.String()
+}
+func (s LoadCmdBytes) Copy() LoadCmdBytes {
+ return LoadCmdBytes{LoadCmd: s.LoadCmd, LoadBytes: s.LoadBytes.Copy()}
+}
+
+func (s *SegmentHeader) String() string {
+ return fmt.Sprintf(
+ "Seg %s, len=0x%x, addr=0x%x, memsz=0x%x, offset=0x%x, filesz=0x%x, maxprot=0x%x, prot=0x%x, nsect=%d, flag=0x%x, firstsect=%d",
+ s.Name, s.Len, s.Addr, s.Memsz, s.Offset, s.Filesz, s.Maxprot, s.Prot, s.Nsect, s.Flag, s.Firstsect)
+}
+
+func (s *Segment) String() string {
+ return fmt.Sprintf(
+ "Seg %s, len=0x%x, addr=0x%x, memsz=0x%x, offset=0x%x, filesz=0x%x, maxprot=0x%x, prot=0x%x, nsect=%d, flag=0x%x, firstsect=%d",
+ s.Name, s.Len, s.Addr, s.Memsz, s.Offset, s.Filesz, s.Maxprot, s.Prot, s.Nsect, s.Flag, s.Firstsect)
+}
+
+// Data reads and returns the contents of the segment.
+func (s *Segment) Data() ([]byte, error) {
+ dat := make([]byte, s.sr.Size())
+ n, err := s.sr.ReadAt(dat, 0)
+ if n == len(dat) {
+ err = nil
+ }
+ return dat[0:n], err
+}
+
+func (s *Segment) Copy() *Segment {
+ r := &Segment{SegmentHeader: s.SegmentHeader}
+ return r
+}
+func (s *Segment) CopyZeroed() *Segment {
+ r := s.Copy()
+ r.Filesz = 0
+ r.Offset = 0
+ r.Nsect = 0
+ r.Firstsect = 0
+ if s.Command() == LcSegment64 {
+ r.Len = uint32(unsafe.Sizeof(Segment64{}))
+ } else {
+ r.Len = uint32(unsafe.Sizeof(Segment32{}))
+ }
+ return r
+}
+
+func (s *Segment) LoadSize(t *FileTOC) uint32 {
+ if s.Command() == LcSegment64 {
+ return uint32(unsafe.Sizeof(Segment64{})) + uint32(s.Nsect)*uint32(unsafe.Sizeof(Section64{}))
+ }
+ return uint32(unsafe.Sizeof(Segment32{})) + uint32(s.Nsect)*uint32(unsafe.Sizeof(Section32{}))
+}
+
+// Open returns a new ReadSeeker reading the segment.
+func (s *Segment) Open() io.ReadSeeker { return io.NewSectionReader(s.sr, 0, 1<<63-1) }
+
+// Data reads and returns the contents of the Mach-O section.
+func (s *Section) Data() ([]byte, error) {
+ dat := make([]byte, s.sr.Size())
+ n, err := s.sr.ReadAt(dat, 0)
+ if n == len(dat) {
+ err = nil
+ }
+ return dat[0:n], err
+}
+
+func (s *Section) Copy() *Section {
+ return &Section{SectionHeader: s.SectionHeader}
+}
+
+// Open returns a new ReadSeeker reading the Mach-O section.
+func (s *Section) Open() io.ReadSeeker { return io.NewSectionReader(s.sr, 0, 1<<63-1) }
+
+// A Dylib represents a Mach-O load dynamic library command.
+type Dylib struct {
+ DylibCmd
+ Name string
+ Time uint32
+ CurrentVersion uint32
+ CompatVersion uint32
+}
+
+func (s *Dylib) String() string { return "Dylib " + s.Name }
+func (s *Dylib) Copy() *Dylib {
+ r := *s
+ return &r
+}
+func (s *Dylib) LoadSize(t *FileTOC) uint32 {
+ return uint32(RoundUp(uint64(unsafe.Sizeof(DylibCmd{}))+uint64(len(s.Name)), t.LoadAlign()))
+}
+
+type Dylinker struct {
+ DylinkerCmd // shared by 3 commands, need the LoadCmd
+ Name string
+}
+
+func (s *Dylinker) String() string { return s.DylinkerCmd.LoadCmd.String() + " " + s.Name }
+func (s *Dylinker) Copy() *Dylinker {
+ return &Dylinker{DylinkerCmd: s.DylinkerCmd, Name: s.Name}
+}
+func (s *Dylinker) LoadSize(t *FileTOC) uint32 {
+ return uint32(RoundUp(uint64(unsafe.Sizeof(DylinkerCmd{}))+uint64(len(s.Name)), t.LoadAlign()))
+}
+
+// A Symtab represents a Mach-O symbol table command.
+type Symtab struct {
+ SymtabCmd
+ Syms []Symbol
+}
+
+func (s *Symtab) Put(b []byte, o binary.ByteOrder) int {
+ o.PutUint32(b[0*4:], uint32(s.LoadCmd))
+ o.PutUint32(b[1*4:], s.Len)
+ o.PutUint32(b[2*4:], s.Symoff)
+ o.PutUint32(b[3*4:], s.Nsyms)
+ o.PutUint32(b[4*4:], s.Stroff)
+ o.PutUint32(b[5*4:], s.Strsize)
+ return 6 * 4
+}
+
+func (s *Symtab) String() string { return fmt.Sprintf("Symtab %#v", s.SymtabCmd) }
+func (s *Symtab) Copy() *Symtab {
+ return &Symtab{SymtabCmd: s.SymtabCmd, Syms: append([]Symbol{}, s.Syms...)}
+}
+func (s *Symtab) LoadSize(t *FileTOC) uint32 {
+ return uint32(unsafe.Sizeof(SymtabCmd{}))
+}
+
+type LinkEditData struct {
+ LinkEditDataCmd
+}
+
+func (s *LinkEditData) String() string { return "LinkEditData " + s.LoadCmd.String() }
+func (s *LinkEditData) Copy() *LinkEditData {
+ return &LinkEditData{LinkEditDataCmd: s.LinkEditDataCmd}
+}
+func (s *LinkEditData) LoadSize(t *FileTOC) uint32 {
+ return uint32(unsafe.Sizeof(LinkEditDataCmd{}))
+}
+
+type Uuid struct {
+ UuidCmd
+}
+
+func (s *Uuid) String() string {
+ return fmt.Sprintf("Uuid %X-%X-%X-%X-%X",
+ s.Id[0:4], s.Id[4:6], s.Id[6:8], s.Id[8:10], s.Id[10:16])
+} // 8-4-4-4-12
+func (s *Uuid) Copy() *Uuid {
+ return &Uuid{UuidCmd: s.UuidCmd}
+}
+func (s *Uuid) LoadSize(t *FileTOC) uint32 {
+ return uint32(unsafe.Sizeof(UuidCmd{}))
+}
+func (s *Uuid) Put(b []byte, o binary.ByteOrder) int {
+ o.PutUint32(b[0*4:], uint32(s.LoadCmd))
+ o.PutUint32(b[1*4:], s.Len)
+ copy(b[2*4:], s.Id[0:])
+ return int(s.Len)
+}
+
+type DyldInfo struct {
+ DyldInfoCmd
+}
+
+func (s *DyldInfo) String() string { return "DyldInfo " + s.LoadCmd.String() }
+func (s *DyldInfo) Copy() *DyldInfo {
+ return &DyldInfo{DyldInfoCmd: s.DyldInfoCmd}
+}
+func (s *DyldInfo) LoadSize(t *FileTOC) uint32 {
+ return uint32(unsafe.Sizeof(DyldInfoCmd{}))
+}
+
+type EncryptionInfo struct {
+ EncryptionInfoCmd
+}
+
+func (s *EncryptionInfo) String() string { return "EncryptionInfo " + s.LoadCmd.String() }
+func (s *EncryptionInfo) Copy() *EncryptionInfo {
+ return &EncryptionInfo{EncryptionInfoCmd: s.EncryptionInfoCmd}
+}
+func (s *EncryptionInfo) LoadSize(t *FileTOC) uint32 {
+ return uint32(unsafe.Sizeof(EncryptionInfoCmd{}))
+}
+
+// A Dysymtab represents a Mach-O dynamic symbol table command.
+type Dysymtab struct {
+ DysymtabCmd
+ IndirectSyms []uint32 // indices into Symtab.Syms
+}
+
+func (s *Dysymtab) String() string { return fmt.Sprintf("Dysymtab %#v", s.DysymtabCmd) }
+func (s *Dysymtab) Copy() *Dysymtab {
+ return &Dysymtab{DysymtabCmd: s.DysymtabCmd, IndirectSyms: append([]uint32{}, s.IndirectSyms...)}
+}
+func (s *Dysymtab) LoadSize(t *FileTOC) uint32 {
+ return uint32(unsafe.Sizeof(DysymtabCmd{}))
+}
+
+// A Rpath represents a Mach-O rpath command.
+type Rpath struct {
+ LoadCmd
+ Path string
+}
+
+func (s *Rpath) String() string { return "Rpath " + s.Path }
+func (s *Rpath) Command() LoadCmd { return LcRpath }
+func (s *Rpath) Copy() *Rpath {
+ return &Rpath{Path: s.Path}
+}
+func (s *Rpath) LoadSize(t *FileTOC) uint32 {
+ return uint32(RoundUp(uint64(unsafe.Sizeof(RpathCmd{}))+uint64(len(s.Path)), t.LoadAlign()))
+}
+
+// Open opens the named file using os.Open and prepares it for use as a Mach-O binary.
+func Open(name string) (*File, error) {
+ f, err := os.Open(name)
+ if err != nil {
+ return nil, err
+ }
+ ff, err := NewFile(f)
+ if err != nil {
+ f.Close()
+ return nil, err
+ }
+ ff.closer = f
+ return ff, nil
+}
+
+// Close closes the File.
+// If the File was created using NewFile directly instead of Open,
+// Close has no effect.
+func (f *File) Close() error {
+ var err error
+ if f.closer != nil {
+ err = f.closer.Close()
+ f.closer = nil
+ }
+ return err
+}
+
+// NewFile creates a new File for accessing a Mach-O binary in an underlying reader.
+// The Mach-O binary is expected to start at position 0 in the ReaderAt.
+func NewFile(r io.ReaderAt) (*File, error) {
+ f := new(File)
+ sr := io.NewSectionReader(r, 0, 1<<63-1)
+
+ // Read and decode Mach magic to determine byte order, size.
+ // Magic32 and Magic64 differ only in the bottom bit.
+ var ident [4]byte
+ if _, err := r.ReadAt(ident[0:], 0); err != nil {
+ return nil, err
+ }
+ be := binary.BigEndian.Uint32(ident[0:])
+ le := binary.LittleEndian.Uint32(ident[0:])
+ switch Magic32 &^ 1 {
+ case be &^ 1:
+ f.ByteOrder = binary.BigEndian
+ f.Magic = be
+ case le &^ 1:
+ f.ByteOrder = binary.LittleEndian
+ f.Magic = le
+ default:
+ return nil, formatError(0, "invalid magic number be=0x%x, le=0x%x", be, le)
+ }
+
+ // Read entire file header.
+ if err := binary.Read(sr, f.ByteOrder, &f.FileHeader); err != nil {
+ return nil, err
+ }
+
+ // Then load commands.
+ offset := int64(fileHeaderSize32)
+ if f.Magic == Magic64 {
+ offset = fileHeaderSize64
+ }
+ dat := make([]byte, f.SizeCommands)
+ if _, err := r.ReadAt(dat, offset); err != nil {
+ return nil, err
+ }
+ f.Loads = make([]Load, f.NCommands)
+ bo := f.ByteOrder
+ for i := range f.Loads {
+ // Each load command begins with uint32 command and length.
+ if len(dat) < 8 {
+ return nil, formatError(offset, "command block too small, len(dat) = %d", len(dat))
+ }
+ cmd, siz := LoadCmd(bo.Uint32(dat[0:4])), bo.Uint32(dat[4:8])
+ if siz < 8 || siz > uint32(len(dat)) {
+ return nil, formatError(offset, "invalid command block size, len(dat)=%d, size=%d", len(dat), siz)
+ }
+ var cmddat []byte
+ cmddat, dat = dat[0:siz], dat[siz:]
+ offset += int64(siz)
+ var s *Segment
+ switch cmd {
+ default:
+ f.Loads[i] = LoadCmdBytes{LoadCmd(cmd), LoadBytes(cmddat)}
+
+ case LcUuid:
+ var hdr UuidCmd
+ b := bytes.NewReader(cmddat)
+ if err := binary.Read(b, bo, &hdr); err != nil {
+ return nil, err
+ }
+ l := &Uuid{UuidCmd: hdr}
+
+ f.Loads[i] = l
+
+ case LcRpath:
+ var hdr RpathCmd
+ b := bytes.NewReader(cmddat)
+ if err := binary.Read(b, bo, &hdr); err != nil {
+ return nil, err
+ }
+ l := &Rpath{LoadCmd: hdr.LoadCmd}
+ if hdr.Path >= uint32(len(cmddat)) {
+ return nil, formatError(offset, "invalid path in rpath command, len(cmddat)=%d, hdr.Path=%d", len(cmddat), hdr.Path)
+ }
+ l.Path = cstring(cmddat[hdr.Path:])
+ f.Loads[i] = l
+
+ case LcLoadDylinker, LcIdDylinker, LcDyldEnvironment:
+ var hdr DylinkerCmd
+ b := bytes.NewReader(cmddat)
+ if err := binary.Read(b, bo, &hdr); err != nil {
+ return nil, err
+ }
+ l := new(Dylinker)
+ if hdr.Name >= uint32(len(cmddat)) {
+ return nil, formatError(offset, "invalid name in dynamic linker command, hdr.Name=%d, len(cmddat)=%d", hdr.Name, len(cmddat))
+ }
+ l.Name = cstring(cmddat[hdr.Name:])
+ l.DylinkerCmd = hdr
+ f.Loads[i] = l
+
+ case LcDylib:
+ var hdr DylibCmd
+ b := bytes.NewReader(cmddat)
+ if err := binary.Read(b, bo, &hdr); err != nil {
+ return nil, err
+ }
+ l := new(Dylib)
+ if hdr.Name >= uint32(len(cmddat)) {
+ return nil, formatError(offset, "invalid name in dynamic library command, hdr.Name=%d, len(cmddat)=%d", hdr.Name, len(cmddat))
+ }
+ l.Name = cstring(cmddat[hdr.Name:])
+ l.Time = hdr.Time
+ l.CurrentVersion = hdr.CurrentVersion
+ l.CompatVersion = hdr.CompatVersion
+ f.Loads[i] = l
+
+ case LcSymtab:
+ var hdr SymtabCmd
+ b := bytes.NewReader(cmddat)
+ if err := binary.Read(b, bo, &hdr); err != nil {
+ return nil, err
+ }
+ strtab := make([]byte, hdr.Strsize)
+ if _, err := r.ReadAt(strtab, int64(hdr.Stroff)); err != nil {
+ return nil, err
+ }
+ var symsz int
+ if f.Magic == Magic64 {
+ symsz = 16
+ } else {
+ symsz = 12
+ }
+ symdat := make([]byte, int(hdr.Nsyms)*symsz)
+ if _, err := r.ReadAt(symdat, int64(hdr.Symoff)); err != nil {
+ return nil, err
+ }
+ st, err := f.parseSymtab(symdat, strtab, cmddat, &hdr, offset)
+ st.SymtabCmd = hdr
+ if err != nil {
+ return nil, err
+ }
+ f.Loads[i] = st
+ f.Symtab = st
+
+ case LcDysymtab:
+ var hdr DysymtabCmd
+ b := bytes.NewReader(cmddat)
+ if err := binary.Read(b, bo, &hdr); err != nil {
+ return nil, err
+ }
+ dat := make([]byte, hdr.Nindirectsyms*4)
+ if _, err := r.ReadAt(dat, int64(hdr.Indirectsymoff)); err != nil {
+ return nil, err
+ }
+ x := make([]uint32, hdr.Nindirectsyms)
+ if err := binary.Read(bytes.NewReader(dat), bo, x); err != nil {
+ return nil, err
+ }
+ st := new(Dysymtab)
+ st.DysymtabCmd = hdr
+ st.IndirectSyms = x
+ f.Loads[i] = st
+ f.Dysymtab = st
+
+ case LcSegment:
+ var seg32 Segment32
+ b := bytes.NewReader(cmddat)
+ if err := binary.Read(b, bo, &seg32); err != nil {
+ return nil, err
+ }
+ s = new(Segment)
+ s.LoadCmd = cmd
+ s.Len = siz
+ s.Name = cstring(seg32.Name[0:])
+ s.Addr = uint64(seg32.Addr)
+ s.Memsz = uint64(seg32.Memsz)
+ s.Offset = uint64(seg32.Offset)
+ s.Filesz = uint64(seg32.Filesz)
+ s.Maxprot = seg32.Maxprot
+ s.Prot = seg32.Prot
+ s.Nsect = seg32.Nsect
+ s.Flag = seg32.Flag
+ s.Firstsect = uint32(len(f.Sections))
+ f.Loads[i] = s
+ for i := 0; i < int(s.Nsect); i++ {
+ var sh32 Section32
+ if err := binary.Read(b, bo, &sh32); err != nil {
+ return nil, err
+ }
+ sh := new(Section)
+ sh.Name = cstring(sh32.Name[0:])
+ sh.Seg = cstring(sh32.Seg[0:])
+ sh.Addr = uint64(sh32.Addr)
+ sh.Size = uint64(sh32.Size)
+ sh.Offset = sh32.Offset
+ sh.Align = sh32.Align
+ sh.Reloff = sh32.Reloff
+ sh.Nreloc = sh32.Nreloc
+ sh.Flags = sh32.Flags
+ sh.Reserved1 = sh32.Reserve1
+ sh.Reserved2 = sh32.Reserve2
+ if err := f.pushSection(sh, r); err != nil {
+ return nil, err
+ }
+ }
+
+ case LcSegment64:
+ var seg64 Segment64
+ b := bytes.NewReader(cmddat)
+ if err := binary.Read(b, bo, &seg64); err != nil {
+ return nil, err
+ }
+ s = new(Segment)
+ s.LoadCmd = cmd
+ s.Len = siz
+ s.Name = cstring(seg64.Name[0:])
+ s.Addr = seg64.Addr
+ s.Memsz = seg64.Memsz
+ s.Offset = seg64.Offset
+ s.Filesz = seg64.Filesz
+ s.Maxprot = seg64.Maxprot
+ s.Prot = seg64.Prot
+ s.Nsect = seg64.Nsect
+ s.Flag = seg64.Flag
+ s.Firstsect = uint32(len(f.Sections))
+ f.Loads[i] = s
+ for i := 0; i < int(s.Nsect); i++ {
+ var sh64 Section64
+ if err := binary.Read(b, bo, &sh64); err != nil {
+ return nil, err
+ }
+ sh := new(Section)
+ sh.Name = cstring(sh64.Name[0:])
+ sh.Seg = cstring(sh64.Seg[0:])
+ sh.Addr = sh64.Addr
+ sh.Size = sh64.Size
+ sh.Offset = sh64.Offset
+ sh.Align = sh64.Align
+ sh.Reloff = sh64.Reloff
+ sh.Nreloc = sh64.Nreloc
+ sh.Flags = sh64.Flags
+ sh.Reserved1 = sh64.Reserve1
+ sh.Reserved2 = sh64.Reserve2
+ sh.Reserved3 = sh64.Reserve3
+ if err := f.pushSection(sh, r); err != nil {
+ return nil, err
+ }
+ }
+
+ case LcCodeSignature, LcSegmentSplitInfo, LcFunctionStarts,
+ LcDataInCode, LcDylibCodeSignDrs:
+ var hdr LinkEditDataCmd
+ b := bytes.NewReader(cmddat)
+
+ if err := binary.Read(b, bo, &hdr); err != nil {
+ return nil, err
+ }
+ l := new(LinkEditData)
+
+ l.LinkEditDataCmd = hdr
+ f.Loads[i] = l
+
+ case LcEncryptionInfo, LcEncryptionInfo64:
+ var hdr EncryptionInfoCmd
+ b := bytes.NewReader(cmddat)
+
+ if err := binary.Read(b, bo, &hdr); err != nil {
+ return nil, err
+ }
+ l := new(EncryptionInfo)
+
+ l.EncryptionInfoCmd = hdr
+ f.Loads[i] = l
+
+ case LcDyldInfo, LcDyldInfoOnly:
+ var hdr DyldInfoCmd
+ b := bytes.NewReader(cmddat)
+
+ if err := binary.Read(b, bo, &hdr); err != nil {
+ return nil, err
+ }
+ l := new(DyldInfo)
+
+ l.DyldInfoCmd = hdr
+ f.Loads[i] = l
+ }
+ if s != nil {
+ s.sr = io.NewSectionReader(r, int64(s.Offset), int64(s.Filesz))
+ s.ReaderAt = s.sr
+ }
+ if f.Loads[i].LoadSize(&f.FileTOC) != siz {
+ fmt.Printf("Oops, actual size was %d, calculated was %d, load was %s\n", siz, f.Loads[i].LoadSize(&f.FileTOC), f.Loads[i].String())
+ panic("oops")
+ }
+ }
+ return f, nil
+}
+
+func (f *File) parseSymtab(symdat, strtab, cmddat []byte, hdr *SymtabCmd, offset int64) (*Symtab, error) {
+ bo := f.ByteOrder
+ symtab := make([]Symbol, hdr.Nsyms)
+ b := bytes.NewReader(symdat)
+ for i := range symtab {
+ var n Nlist64
+ if f.Magic == Magic64 {
+ if err := binary.Read(b, bo, &n); err != nil {
+ return nil, err
+ }
+ } else {
+ var n32 Nlist32
+ if err := binary.Read(b, bo, &n32); err != nil {
+ return nil, err
+ }
+ n.Name = n32.Name
+ n.Type = n32.Type
+ n.Sect = n32.Sect
+ n.Desc = n32.Desc
+ n.Value = uint64(n32.Value)
+ }
+ sym := &symtab[i]
+ if n.Name >= uint32(len(strtab)) {
+ return nil, formatError(offset, "invalid name in symbol table, n.Name=%d, len(strtab)=%d", n.Name, len(strtab))
+ }
+ sym.Name = cstring(strtab[n.Name:])
+ sym.Type = n.Type
+ sym.Sect = n.Sect
+ sym.Desc = n.Desc
+ sym.Value = n.Value
+ }
+ st := new(Symtab)
+ st.Syms = symtab
+ return st, nil
+}
+
+type relocInfo struct {
+ Addr uint32
+ Symnum uint32
+}
+
+func (f *File) pushSection(sh *Section, r io.ReaderAt) error {
+ f.Sections = append(f.Sections, sh)
+ sh.sr = io.NewSectionReader(r, int64(sh.Offset), int64(sh.Size))
+ sh.ReaderAt = sh.sr
+
+ if sh.Nreloc > 0 {
+ reldat := make([]byte, int(sh.Nreloc)*8)
+ if _, err := r.ReadAt(reldat, int64(sh.Reloff)); err != nil {
+ return err
+ }
+ b := bytes.NewReader(reldat)
+
+ bo := f.ByteOrder
+
+ sh.Relocs = make([]Reloc, sh.Nreloc)
+ for i := range sh.Relocs {
+ rel := &sh.Relocs[i]
+
+ var ri relocInfo
+ if err := binary.Read(b, bo, &ri); err != nil {
+ return err
+ }
+
+ if ri.Addr&(1<<31) != 0 { // scattered
+ rel.Addr = ri.Addr & (1<<24 - 1)
+ rel.Type = uint8((ri.Addr >> 24) & (1<<4 - 1))
+ rel.Len = uint8((ri.Addr >> 28) & (1<<2 - 1))
+ rel.Pcrel = ri.Addr&(1<<30) != 0
+ rel.Value = ri.Symnum
+ rel.Scattered = true
+ } else {
+ switch bo {
+ case binary.LittleEndian:
+ rel.Addr = ri.Addr
+ rel.Value = ri.Symnum & (1<<24 - 1)
+ rel.Pcrel = ri.Symnum&(1<<24) != 0
+ rel.Len = uint8((ri.Symnum >> 25) & (1<<2 - 1))
+ rel.Extern = ri.Symnum&(1<<27) != 0
+ rel.Type = uint8((ri.Symnum >> 28) & (1<<4 - 1))
+ case binary.BigEndian:
+ rel.Addr = ri.Addr
+ rel.Value = ri.Symnum >> 8
+ rel.Pcrel = ri.Symnum&(1<<7) != 0
+ rel.Len = uint8((ri.Symnum >> 5) & (1<<2 - 1))
+ rel.Extern = ri.Symnum&(1<<4) != 0
+ rel.Type = uint8(ri.Symnum & (1<<4 - 1))
+ default:
+ panic("unreachable")
+ }
+ }
+ }
+ }
+
+ return nil
+}
+
+func cstring(b []byte) string {
+ i := bytes.IndexByte(b, 0)
+ if i == -1 {
+ i = len(b)
+ }
+ return string(b[0:i])
+}
+
+// Segment returns the first Segment with the given name, or nil if no such segment exists.
+func (f *File) Segment(name string) *Segment {
+ for _, l := range f.Loads {
+ if s, ok := l.(*Segment); ok && s.Name == name {
+ return s
+ }
+ }
+ return nil
+}
+
+// Section returns the first section with the given name, or nil if no such
+// section exists.
+func (f *File) Section(name string) *Section {
+ for _, s := range f.Sections {
+ if s.Name == name {
+ return s
+ }
+ }
+ return nil
+}
+
+// DWARF returns the DWARF debug information for the Mach-O file.
+func (f *File) DWARF() (*dwarf.Data, error) {
+ dwarfSuffix := func(s *Section) string {
+ switch {
+ case strings.HasPrefix(s.Name, "__debug_"):
+ return s.Name[8:]
+ case strings.HasPrefix(s.Name, "__zdebug_"):
+ return s.Name[9:]
+ default:
+ return ""
+ }
+
+ }
+ sectionData := func(s *Section) ([]byte, error) {
+ b, err := s.Data()
+ if err != nil && uint64(len(b)) < s.Size {
+ return nil, err
+ }
+
+ if len(b) >= 12 && string(b[:4]) == "ZLIB" {
+ dlen := binary.BigEndian.Uint64(b[4:12])
+ dbuf := make([]byte, dlen)
+ r, err := zlib.NewReader(bytes.NewBuffer(b[12:]))
+ if err != nil {
+ return nil, err
+ }
+ if _, err := io.ReadFull(r, dbuf); err != nil {
+ return nil, err
+ }
+ if err := r.Close(); err != nil {
+ return nil, err
+ }
+ b = dbuf
+ }
+ return b, nil
+ }
+
+ // There are many other DWARF sections, but these
+ // are the ones the debug/dwarf package uses.
+ // Don't bother loading others.
+ var dat = map[string][]byte{"abbrev": nil, "info": nil, "str": nil, "line": nil, "ranges": nil}
+ for _, s := range f.Sections {
+ suffix := dwarfSuffix(s)
+ if suffix == "" {
+ continue
+ }
+ if _, ok := dat[suffix]; !ok {
+ continue
+ }
+ b, err := sectionData(s)
+ if err != nil {
+ return nil, err
+ }
+ dat[suffix] = b
+ }
+
+ d, err := dwarf.New(dat["abbrev"], nil, nil, dat["info"], dat["line"], nil, dat["ranges"], dat["str"])
+ if err != nil {
+ return nil, err
+ }
+
+ // Look for DWARF4 .debug_types sections.
+ for i, s := range f.Sections {
+ suffix := dwarfSuffix(s)
+ if suffix != "types" {
+ continue
+ }
+
+ b, err := sectionData(s)
+ if err != nil {
+ return nil, err
+ }
+
+ err = d.AddTypes(fmt.Sprintf("types-%d", i), b)
+ if err != nil {
+ return nil, err
+ }
+ }
+
+ return d, nil
+}
+
+// ImportedSymbols returns the names of all symbols
+// referred to by the binary f that are expected to be
+// satisfied by other libraries at dynamic load time.
+func (f *File) ImportedSymbols() ([]string, error) {
+ if f.Dysymtab == nil || f.Symtab == nil {
+ return nil, formatError(0, "missing symbol table, f.Dsymtab=%v, f.Symtab=%v", f.Dysymtab, f.Symtab)
+ }
+
+ st := f.Symtab
+ dt := f.Dysymtab
+ var all []string
+ for _, s := range st.Syms[dt.Iundefsym : dt.Iundefsym+dt.Nundefsym] {
+ all = append(all, s.Name)
+ }
+ return all, nil
+}
+
+// ImportedLibraries returns the paths of all libraries
+// referred to by the binary f that are expected to be
+// linked with the binary at dynamic link time.
+func (f *File) ImportedLibraries() ([]string, error) {
+ var all []string
+ for _, l := range f.Loads {
+ if lib, ok := l.(*Dylib); ok {
+ all = append(all, lib.Name)
+ }
+ }
+ return all, nil
+}
+
+func RoundUp(x, align uint64) uint64 {
+ return uint64((x + align - 1) & -align)
+}
diff --git a/vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/macho.go b/vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/macho.go
new file mode 100644
index 0000000000..22f6022f5c
--- /dev/null
+++ b/vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/macho.go
@@ -0,0 +1,468 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Mach-O header data structures
+// http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/MachORuntime/Reference/reference.html
+
+package macho
+
+import (
+ "encoding/binary"
+ "strconv"
+)
+
+// A FileHeader represents a Mach-O file header.
+type FileHeader struct {
+ Magic uint32
+ Cpu Cpu
+ SubCpu uint32
+ Type HdrType
+ NCommands uint32 // number of load commands
+ SizeCommands uint32 // size of all the load commands, not including this header.
+ Flags HdrFlags
+}
+
+func (h *FileHeader) Put(b []byte, o binary.ByteOrder) int {
+ o.PutUint32(b[0:], h.Magic)
+ o.PutUint32(b[4:], uint32(h.Cpu))
+ o.PutUint32(b[8:], h.SubCpu)
+ o.PutUint32(b[12:], uint32(h.Type))
+ o.PutUint32(b[16:], h.NCommands)
+ o.PutUint32(b[20:], h.SizeCommands)
+ o.PutUint32(b[24:], uint32(h.Flags))
+ if h.Magic == Magic32 {
+ return 28
+ }
+ o.PutUint32(b[28:], 0)
+ return 32
+}
+
+const (
+ fileHeaderSize32 = 7 * 4
+ fileHeaderSize64 = 8 * 4
+)
+
+const (
+ Magic32 uint32 = 0xfeedface
+ Magic64 uint32 = 0xfeedfacf
+ MagicFat uint32 = 0xcafebabe
+)
+
+type HdrFlags uint32
+type SegFlags uint32
+type SecFlags uint32
+
+// A HdrType is the Mach-O file type, e.g. an object file, executable, or dynamic library.
+type HdrType uint32
+
+const ( // SNAKE_CASE to CamelCase translation from C names
+ MhObject HdrType = 1
+ MhExecute HdrType = 2
+ MhCore HdrType = 4
+ MhDylib HdrType = 6
+ MhBundle HdrType = 8
+ MhDsym HdrType = 0xa
+)
+
+var typeStrings = []intName{
+ {uint32(MhObject), "Obj"},
+ {uint32(MhExecute), "Exec"},
+ {uint32(MhDylib), "Dylib"},
+ {uint32(MhBundle), "Bundle"},
+ {uint32(MhDsym), "Dsym"},
+}
+
+func (t HdrType) String() string { return stringName(uint32(t), typeStrings, false) }
+func (t HdrType) GoString() string { return stringName(uint32(t), typeStrings, true) }
+
+// A Cpu is a Mach-O cpu type.
+type Cpu uint32
+
+const cpuArch64 = 0x01000000
+
+const (
+ Cpu386 Cpu = 7
+ CpuAmd64 Cpu = Cpu386 | cpuArch64
+ CpuArm Cpu = 12
+ CpuArm64 Cpu = CpuArm | cpuArch64
+ CpuPpc Cpu = 18
+ CpuPpc64 Cpu = CpuPpc | cpuArch64
+)
+
+var cpuStrings = []intName{
+ {uint32(Cpu386), "Cpu386"},
+ {uint32(CpuAmd64), "CpuAmd64"},
+ {uint32(CpuArm), "CpuArm"},
+ {uint32(CpuArm64), "CpuArm64"},
+ {uint32(CpuPpc), "CpuPpc"},
+ {uint32(CpuPpc64), "CpuPpc64"},
+}
+
+func (i Cpu) String() string { return stringName(uint32(i), cpuStrings, false) }
+func (i Cpu) GoString() string { return stringName(uint32(i), cpuStrings, true) }
+
+// A LoadCmd is a Mach-O load command.
+type LoadCmd uint32
+
+func (c LoadCmd) Command() LoadCmd { return c }
+
+const ( // SNAKE_CASE to CamelCase translation from C names
+ // Note 3 and 8 are obsolete
+ LcSegment LoadCmd = 0x1
+ LcSymtab LoadCmd = 0x2
+ LcThread LoadCmd = 0x4
+ LcUnixthread LoadCmd = 0x5 // thread+stack
+ LcDysymtab LoadCmd = 0xb
+ LcDylib LoadCmd = 0xc // load dylib command
+ LcIdDylib LoadCmd = 0xd // dynamically linked shared lib ident
+ LcLoadDylinker LoadCmd = 0xe // load a dynamic linker
+ LcIdDylinker LoadCmd = 0xf // id dylinker command (not load dylinker command)
+ LcSegment64 LoadCmd = 0x19
+ LcUuid LoadCmd = 0x1b
+ LcCodeSignature LoadCmd = 0x1d
+ LcSegmentSplitInfo LoadCmd = 0x1e
+ LcRpath LoadCmd = 0x8000001c
+ LcEncryptionInfo LoadCmd = 0x21
+ LcDyldInfo LoadCmd = 0x22
+ LcDyldInfoOnly LoadCmd = 0x80000022
+ LcVersionMinMacosx LoadCmd = 0x24
+ LcVersionMinIphoneos LoadCmd = 0x25
+ LcFunctionStarts LoadCmd = 0x26
+ LcDyldEnvironment LoadCmd = 0x27
+ LcMain LoadCmd = 0x80000028 // replacement for UnixThread
+ LcDataInCode LoadCmd = 0x29 // There are non-instructions in text
+ LcSourceVersion LoadCmd = 0x2a // Source version used to build binary
+ LcDylibCodeSignDrs LoadCmd = 0x2b
+ LcEncryptionInfo64 LoadCmd = 0x2c
+ LcVersionMinTvos LoadCmd = 0x2f
+ LcVersionMinWatchos LoadCmd = 0x30
+)
+
+var cmdStrings = []intName{
+ {uint32(LcSegment), "LoadCmdSegment"},
+ {uint32(LcThread), "LoadCmdThread"},
+ {uint32(LcUnixthread), "LoadCmdUnixThread"},
+ {uint32(LcDylib), "LoadCmdDylib"},
+ {uint32(LcIdDylib), "LoadCmdIdDylib"},
+ {uint32(LcLoadDylinker), "LoadCmdLoadDylinker"},
+ {uint32(LcIdDylinker), "LoadCmdIdDylinker"},
+ {uint32(LcSegment64), "LoadCmdSegment64"},
+ {uint32(LcUuid), "LoadCmdUuid"},
+ {uint32(LcRpath), "LoadCmdRpath"},
+ {uint32(LcDyldEnvironment), "LoadCmdDyldEnv"},
+ {uint32(LcMain), "LoadCmdMain"},
+ {uint32(LcDataInCode), "LoadCmdDataInCode"},
+ {uint32(LcSourceVersion), "LoadCmdSourceVersion"},
+ {uint32(LcDyldInfo), "LoadCmdDyldInfo"},
+ {uint32(LcDyldInfoOnly), "LoadCmdDyldInfoOnly"},
+ {uint32(LcVersionMinMacosx), "LoadCmdMinOsx"},
+ {uint32(LcFunctionStarts), "LoadCmdFunctionStarts"},
+}
+
+func (i LoadCmd) String() string { return stringName(uint32(i), cmdStrings, false) }
+func (i LoadCmd) GoString() string { return stringName(uint32(i), cmdStrings, true) }
+
+type (
+ // A Segment32 is a 32-bit Mach-O segment load command.
+ Segment32 struct {
+ LoadCmd
+ Len uint32
+ Name [16]byte
+ Addr uint32
+ Memsz uint32
+ Offset uint32
+ Filesz uint32
+ Maxprot uint32
+ Prot uint32
+ Nsect uint32
+ Flag SegFlags
+ }
+
+ // A Segment64 is a 64-bit Mach-O segment load command.
+ Segment64 struct {
+ LoadCmd
+ Len uint32
+ Name [16]byte
+ Addr uint64
+ Memsz uint64
+ Offset uint64
+ Filesz uint64
+ Maxprot uint32
+ Prot uint32
+ Nsect uint32
+ Flag SegFlags
+ }
+
+ // A SymtabCmd is a Mach-O symbol table command.
+ SymtabCmd struct {
+ LoadCmd
+ Len uint32
+ Symoff uint32
+ Nsyms uint32
+ Stroff uint32
+ Strsize uint32
+ }
+
+ // A DysymtabCmd is a Mach-O dynamic symbol table command.
+ DysymtabCmd struct {
+ LoadCmd
+ Len uint32
+ Ilocalsym uint32
+ Nlocalsym uint32
+ Iextdefsym uint32
+ Nextdefsym uint32
+ Iundefsym uint32
+ Nundefsym uint32
+ Tocoffset uint32
+ Ntoc uint32
+ Modtaboff uint32
+ Nmodtab uint32
+ Extrefsymoff uint32
+ Nextrefsyms uint32
+ Indirectsymoff uint32
+ Nindirectsyms uint32
+ Extreloff uint32
+ Nextrel uint32
+ Locreloff uint32
+ Nlocrel uint32
+ }
+
+ // A DylibCmd is a Mach-O load dynamic library command.
+ DylibCmd struct {
+ LoadCmd
+ Len uint32
+ Name uint32
+ Time uint32
+ CurrentVersion uint32
+ CompatVersion uint32
+ }
+
+ // A DylinkerCmd is a Mach-O load dynamic linker or environment command.
+ DylinkerCmd struct {
+ LoadCmd
+ Len uint32
+ Name uint32
+ }
+
+ // A RpathCmd is a Mach-O rpath command.
+ RpathCmd struct {
+ LoadCmd
+ Len uint32
+ Path uint32
+ }
+
+ // A Thread is a Mach-O thread state command.
+ Thread struct {
+ LoadCmd
+ Len uint32
+ Type uint32
+ Data []uint32
+ }
+
+ // LC_DYLD_INFO, LC_DYLD_INFO_ONLY
+ DyldInfoCmd struct {
+ LoadCmd
+ Len uint32
+ RebaseOff, RebaseLen uint32 // file offset and length; data contains segment indices
+ BindOff, BindLen uint32 // file offset and length; data contains segment indices
+ WeakBindOff, WeakBindLen uint32 // file offset and length
+ LazyBindOff, LazyBindLen uint32 // file offset and length
+ ExportOff, ExportLen uint32 // file offset and length
+ }
+
+ // LC_CODE_SIGNATURE, LC_SEGMENT_SPLIT_INFO, LC_FUNCTION_STARTS, LC_DATA_IN_CODE, LC_DYLIB_CODE_SIGN_DRS
+ LinkEditDataCmd struct {
+ LoadCmd
+ Len uint32
+ DataOff, DataLen uint32 // file offset and length
+ }
+
+ // LC_ENCRYPTION_INFO, LC_ENCRYPTION_INFO_64
+ EncryptionInfoCmd struct {
+ LoadCmd
+ Len uint32
+ CryptOff, CryptLen uint32 // file offset and length
+ CryptId uint32
+ }
+
+ UuidCmd struct {
+ LoadCmd
+ Len uint32
+ Id [16]byte
+ }
+
+ // TODO Commands below not fully supported yet.
+
+ EntryPointCmd struct {
+ LoadCmd
+ Len uint32
+ EntryOff uint64 // file offset
+ StackSize uint64 // if not zero, initial stack size
+ }
+
+ NoteCmd struct {
+ LoadCmd
+ Len uint32
+ Name [16]byte
+ Offset, Filesz uint64 // file offset and length
+ }
+)
+
+const (
+ FlagNoUndefs HdrFlags = 0x1
+ FlagIncrLink HdrFlags = 0x2
+ FlagDyldLink HdrFlags = 0x4
+ FlagBindAtLoad HdrFlags = 0x8
+ FlagPrebound HdrFlags = 0x10
+ FlagSplitSegs HdrFlags = 0x20
+ FlagLazyInit HdrFlags = 0x40
+ FlagTwoLevel HdrFlags = 0x80
+ FlagForceFlat HdrFlags = 0x100
+ FlagNoMultiDefs HdrFlags = 0x200
+ FlagNoFixPrebinding HdrFlags = 0x400
+ FlagPrebindable HdrFlags = 0x800
+ FlagAllModsBound HdrFlags = 0x1000
+ FlagSubsectionsViaSymbols HdrFlags = 0x2000
+ FlagCanonical HdrFlags = 0x4000
+ FlagWeakDefines HdrFlags = 0x8000
+ FlagBindsToWeak HdrFlags = 0x10000
+ FlagAllowStackExecution HdrFlags = 0x20000
+ FlagRootSafe HdrFlags = 0x40000
+ FlagSetuidSafe HdrFlags = 0x80000
+ FlagNoReexportedDylibs HdrFlags = 0x100000
+ FlagPIE HdrFlags = 0x200000
+ FlagDeadStrippableDylib HdrFlags = 0x400000
+ FlagHasTLVDescriptors HdrFlags = 0x800000
+ FlagNoHeapExecution HdrFlags = 0x1000000
+ FlagAppExtensionSafe HdrFlags = 0x2000000
+)
+
+// A Section32 is a 32-bit Mach-O section header.
+type Section32 struct {
+ Name [16]byte
+ Seg [16]byte
+ Addr uint32
+ Size uint32
+ Offset uint32
+ Align uint32
+ Reloff uint32
+ Nreloc uint32
+ Flags SecFlags
+ Reserve1 uint32
+ Reserve2 uint32
+}
+
+// A Section64 is a 64-bit Mach-O section header.
+type Section64 struct {
+ Name [16]byte
+ Seg [16]byte
+ Addr uint64
+ Size uint64
+ Offset uint32
+ Align uint32
+ Reloff uint32
+ Nreloc uint32
+ Flags SecFlags
+ Reserve1 uint32
+ Reserve2 uint32
+ Reserve3 uint32
+}
+
+// An Nlist32 is a Mach-O 32-bit symbol table entry.
+type Nlist32 struct {
+ Name uint32
+ Type uint8
+ Sect uint8
+ Desc uint16
+ Value uint32
+}
+
+// An Nlist64 is a Mach-O 64-bit symbol table entry.
+type Nlist64 struct {
+ Name uint32
+ Type uint8
+ Sect uint8
+ Desc uint16
+ Value uint64
+}
+
+func (n *Nlist64) Put64(b []byte, o binary.ByteOrder) uint32 {
+ o.PutUint32(b[0:], n.Name)
+ b[4] = byte(n.Type)
+ b[5] = byte(n.Sect)
+ o.PutUint16(b[6:], n.Desc)
+ o.PutUint64(b[8:], n.Value)
+ return 8 + 8
+}
+
+func (n *Nlist64) Put32(b []byte, o binary.ByteOrder) uint32 {
+ o.PutUint32(b[0:], n.Name)
+ b[4] = byte(n.Type)
+ b[5] = byte(n.Sect)
+ o.PutUint16(b[6:], n.Desc)
+ o.PutUint32(b[8:], uint32(n.Value))
+ return 8 + 4
+}
+
+// Regs386 is the Mach-O 386 register structure.
+type Regs386 struct {
+ AX uint32
+ BX uint32
+ CX uint32
+ DX uint32
+ DI uint32
+ SI uint32
+ BP uint32
+ SP uint32
+ SS uint32
+ FLAGS uint32
+ IP uint32
+ CS uint32
+ DS uint32
+ ES uint32
+ FS uint32
+ GS uint32
+}
+
+// RegsAMD64 is the Mach-O AMD64 register structure.
+type RegsAMD64 struct {
+ AX uint64
+ BX uint64
+ CX uint64
+ DX uint64
+ DI uint64
+ SI uint64
+ BP uint64
+ SP uint64
+ R8 uint64
+ R9 uint64
+ R10 uint64
+ R11 uint64
+ R12 uint64
+ R13 uint64
+ R14 uint64
+ R15 uint64
+ IP uint64
+ FLAGS uint64
+ CS uint64
+ FS uint64
+ GS uint64
+}
+
+type intName struct {
+ i uint32
+ s string
+}
+
+func stringName(i uint32, names []intName, goSyntax bool) string {
+ for _, n := range names {
+ if n.i == i {
+ if goSyntax {
+ return "macho." + n.s
+ }
+ return n.s
+ }
+ }
+ return "0x" + strconv.FormatUint(uint64(i), 16)
+}
diff --git a/vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/reloctype.go b/vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/reloctype.go
new file mode 100644
index 0000000000..496dfce7ec
--- /dev/null
+++ b/vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/reloctype.go
@@ -0,0 +1,72 @@
+// Copyright 2017 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package macho
+
+//go:generate stringer -type=RelocTypeGeneric,RelocTypeX86_64,RelocTypeARM,RelocTypeARM64 -output reloctype_string.go
+
+type RelocTypeGeneric int
+
+const (
+ GENERIC_RELOC_VANILLA RelocTypeGeneric = 0
+ GENERIC_RELOC_PAIR RelocTypeGeneric = 1
+ GENERIC_RELOC_SECTDIFF RelocTypeGeneric = 2
+ GENERIC_RELOC_PB_LA_PTR RelocTypeGeneric = 3
+ GENERIC_RELOC_LOCAL_SECTDIFF RelocTypeGeneric = 4
+ GENERIC_RELOC_TLV RelocTypeGeneric = 5
+)
+
+func (r RelocTypeGeneric) GoString() string { return "macho." + r.String() }
+
+type RelocTypeX86_64 int
+
+const (
+ X86_64_RELOC_UNSIGNED RelocTypeX86_64 = 0
+ X86_64_RELOC_SIGNED RelocTypeX86_64 = 1
+ X86_64_RELOC_BRANCH RelocTypeX86_64 = 2
+ X86_64_RELOC_GOT_LOAD RelocTypeX86_64 = 3
+ X86_64_RELOC_GOT RelocTypeX86_64 = 4
+ X86_64_RELOC_SUBTRACTOR RelocTypeX86_64 = 5
+ X86_64_RELOC_SIGNED_1 RelocTypeX86_64 = 6
+ X86_64_RELOC_SIGNED_2 RelocTypeX86_64 = 7
+ X86_64_RELOC_SIGNED_4 RelocTypeX86_64 = 8
+ X86_64_RELOC_TLV RelocTypeX86_64 = 9
+)
+
+func (r RelocTypeX86_64) GoString() string { return "macho." + r.String() }
+
+type RelocTypeARM int
+
+const (
+ ARM_RELOC_VANILLA RelocTypeARM = 0
+ ARM_RELOC_PAIR RelocTypeARM = 1
+ ARM_RELOC_SECTDIFF RelocTypeARM = 2
+ ARM_RELOC_LOCAL_SECTDIFF RelocTypeARM = 3
+ ARM_RELOC_PB_LA_PTR RelocTypeARM = 4
+ ARM_RELOC_BR24 RelocTypeARM = 5
+ ARM_THUMB_RELOC_BR22 RelocTypeARM = 6
+ ARM_THUMB_32BIT_BRANCH RelocTypeARM = 7
+ ARM_RELOC_HALF RelocTypeARM = 8
+ ARM_RELOC_HALF_SECTDIFF RelocTypeARM = 9
+)
+
+func (r RelocTypeARM) GoString() string { return "macho." + r.String() }
+
+type RelocTypeARM64 int
+
+const (
+ ARM64_RELOC_UNSIGNED RelocTypeARM64 = 0
+ ARM64_RELOC_SUBTRACTOR RelocTypeARM64 = 1
+ ARM64_RELOC_BRANCH26 RelocTypeARM64 = 2
+ ARM64_RELOC_PAGE21 RelocTypeARM64 = 3
+ ARM64_RELOC_PAGEOFF12 RelocTypeARM64 = 4
+ ARM64_RELOC_GOT_LOAD_PAGE21 RelocTypeARM64 = 5
+ ARM64_RELOC_GOT_LOAD_PAGEOFF12 RelocTypeARM64 = 6
+ ARM64_RELOC_POINTER_TO_GOT RelocTypeARM64 = 7
+ ARM64_RELOC_TLVP_LOAD_PAGE21 RelocTypeARM64 = 8
+ ARM64_RELOC_TLVP_LOAD_PAGEOFF12 RelocTypeARM64 = 9
+ ARM64_RELOC_ADDEND RelocTypeARM64 = 10
+)
+
+func (r RelocTypeARM64) GoString() string { return "macho." + r.String() }
diff --git a/vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/reloctype_string.go b/vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/reloctype_string.go
new file mode 100644
index 0000000000..9c2b13186e
--- /dev/null
+++ b/vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/reloctype_string.go
@@ -0,0 +1,49 @@
+// Code generated by "stringer -type=RelocTypeGeneric,RelocTypeX86_64,RelocTypeARM,RelocTypeARM64 -output reloctype_string.go"; DO NOT EDIT.
+
+package macho
+
+import "strconv"
+
+const _RelocTypeGeneric_name = "GENERIC_RELOC_VANILLAGENERIC_RELOC_PAIRGENERIC_RELOC_SECTDIFFGENERIC_RELOC_PB_LA_PTRGENERIC_RELOC_LOCAL_SECTDIFFGENERIC_RELOC_TLV"
+
+var _RelocTypeGeneric_index = [...]uint8{0, 21, 39, 61, 84, 112, 129}
+
+func (i RelocTypeGeneric) String() string {
+ if i < 0 || i >= RelocTypeGeneric(len(_RelocTypeGeneric_index)-1) {
+ return "RelocTypeGeneric(" + strconv.FormatInt(int64(i), 10) + ")"
+ }
+ return _RelocTypeGeneric_name[_RelocTypeGeneric_index[i]:_RelocTypeGeneric_index[i+1]]
+}
+
+const _RelocTypeX86_64_name = "X86_64_RELOC_UNSIGNEDX86_64_RELOC_SIGNEDX86_64_RELOC_BRANCHX86_64_RELOC_GOT_LOADX86_64_RELOC_GOTX86_64_RELOC_SUBTRACTORX86_64_RELOC_SIGNED_1X86_64_RELOC_SIGNED_2X86_64_RELOC_SIGNED_4X86_64_RELOC_TLV"
+
+var _RelocTypeX86_64_index = [...]uint8{0, 21, 40, 59, 80, 96, 119, 140, 161, 182, 198}
+
+func (i RelocTypeX86_64) String() string {
+ if i < 0 || i >= RelocTypeX86_64(len(_RelocTypeX86_64_index)-1) {
+ return "RelocTypeX86_64(" + strconv.FormatInt(int64(i), 10) + ")"
+ }
+ return _RelocTypeX86_64_name[_RelocTypeX86_64_index[i]:_RelocTypeX86_64_index[i+1]]
+}
+
+const _RelocTypeARM_name = "ARM_RELOC_VANILLAARM_RELOC_PAIRARM_RELOC_SECTDIFFARM_RELOC_LOCAL_SECTDIFFARM_RELOC_PB_LA_PTRARM_RELOC_BR24ARM_THUMB_RELOC_BR22ARM_THUMB_32BIT_BRANCHARM_RELOC_HALFARM_RELOC_HALF_SECTDIFF"
+
+var _RelocTypeARM_index = [...]uint8{0, 17, 31, 49, 73, 92, 106, 126, 148, 162, 185}
+
+func (i RelocTypeARM) String() string {
+ if i < 0 || i >= RelocTypeARM(len(_RelocTypeARM_index)-1) {
+ return "RelocTypeARM(" + strconv.FormatInt(int64(i), 10) + ")"
+ }
+ return _RelocTypeARM_name[_RelocTypeARM_index[i]:_RelocTypeARM_index[i+1]]
+}
+
+const _RelocTypeARM64_name = "ARM64_RELOC_UNSIGNEDARM64_RELOC_SUBTRACTORARM64_RELOC_BRANCH26ARM64_RELOC_PAGE21ARM64_RELOC_PAGEOFF12ARM64_RELOC_GOT_LOAD_PAGE21ARM64_RELOC_GOT_LOAD_PAGEOFF12ARM64_RELOC_POINTER_TO_GOTARM64_RELOC_TLVP_LOAD_PAGE21ARM64_RELOC_TLVP_LOAD_PAGEOFF12ARM64_RELOC_ADDEND"
+
+var _RelocTypeARM64_index = [...]uint16{0, 20, 42, 62, 80, 101, 128, 158, 184, 212, 243, 261}
+
+func (i RelocTypeARM64) String() string {
+ if i < 0 || i >= RelocTypeARM64(len(_RelocTypeARM64_index)-1) {
+ return "RelocTypeARM64(" + strconv.FormatInt(int64(i), 10) + ")"
+ }
+ return _RelocTypeARM64_name[_RelocTypeARM64_index[i]:_RelocTypeARM64_index[i+1]]
+}
diff --git a/vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/testdata/hello.c b/vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/testdata/hello.c
new file mode 100644
index 0000000000..a689d3644e
--- /dev/null
+++ b/vendor/golang.org/x/tools/cmd/splitdwarf/internal/macho/testdata/hello.c
@@ -0,0 +1,8 @@
+#include
+
+int
+main(void)
+{
+ printf("hello, world\n");
+ return 0;
+}
diff --git a/vendor/golang.org/x/tools/cmd/splitdwarf/splitdwarf.go b/vendor/golang.org/x/tools/cmd/splitdwarf/splitdwarf.go
new file mode 100644
index 0000000000..a91c8f8d35
--- /dev/null
+++ b/vendor/golang.org/x/tools/cmd/splitdwarf/splitdwarf.go
@@ -0,0 +1,394 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !js,!nacl,!plan9,!solaris,!windows
+
+package main
+
+import (
+ "crypto/sha256"
+ "fmt"
+ "io"
+ "os"
+ "path/filepath"
+ "strings"
+ "syscall"
+
+ "golang.org/x/tools/cmd/splitdwarf/internal/macho"
+)
+
+const (
+ pageAlign = 12 // 4096 = 1 << 12
+)
+
+func note(format string, why ...interface{}) {
+ fmt.Fprintf(os.Stderr, format+"\n", why...)
+}
+
+func fail(format string, why ...interface{}) {
+ note(format, why...)
+ os.Exit(1)
+}
+
+// splitdwarf inputexe [ outputdwarf ]
+func main() {
+ if len(os.Args) < 2 || len(os.Args) > 3 {
+ fmt.Printf(`
+Usage: %s input_exe [ output_dsym ]
+Reads the executable input_exe, uncompresses and copies debugging
+information into output_dsym. If output_dsym is not specified,
+the path
+ input_exe.dSYM/Contents/Resources/DWARF/input_exe
+is used instead. That is the path that gdb and lldb expect
+on OSX. Input_exe needs a UUID segment; if that is missing,
+then one is created and added. In that case, the permissions
+for input_exe need to allow writing.
+`, os.Args[0])
+ return
+ }
+
+ // Read input, find DWARF, be sure it looks right
+ inputExe := os.Args[1]
+ exeFile, err := os.Open(inputExe)
+ if err != nil {
+ fail("%v", err)
+ }
+ exeMacho, err := macho.NewFile(exeFile)
+ if err != nil {
+ fail("(internal) Couldn't create macho, %v", err)
+ }
+ // Postpone dealing with output till input is known-good
+
+ // describe(&exeMacho.FileTOC)
+
+ // Offsets into __LINKEDIT:
+ //
+ // Command LC_SYMTAB =
+ // (1) number of symbols at file offset (within link edit section) of 16-byte symbol table entries
+ // struct {
+ // StringTableIndex uint32
+ // Type, SectionIndex uint8
+ // Description uint16
+ // Value uint64
+ // }
+ //
+ // (2) string table offset and size. Strings are zero-byte terminated. First must be " ".
+ //
+ // Command LC_DYSYMTAB = indices within symtab (above), except for IndSym
+ // IndSym Offset = file offset (within link edit section) of 4-byte indices within symtab.
+ //
+ // Section __TEXT.__symbol_stub1.
+ // Offset and size (Reserved2) locate and describe a table for thios section.
+ // Symbols beginning at IndirectSymIndex (Reserved1) (see LC_DYSYMTAB.IndSymOffset) refer to this table.
+ // (These table entries are apparently PLTs [Procedure Linkage Table/Trampoline])
+ //
+ // Section __DATA.__nl_symbol_ptr.
+ // Reserved1 seems to be an index within the Indirect symbols (see LC_DYSYMTAB.IndSymOffset)
+ // Some of these symbols appear to be duplicates of other indirect symbols appearing early
+ //
+ // Section __DATA.__la_symbol_ptr.
+ // Reserved1 seems to be an index within the Indirect symbols (see LC_DYSYMTAB.IndSymOffset)
+ // Some of these symbols appear to be duplicates of other indirect symbols appearing early
+ //
+
+ // Create a File for the output dwarf.
+ // Copy header, file type is MH_DSYM
+ // Copy the relevant load commands
+
+ // LoadCmdUuid
+ // Symtab -- very abbreviated (Use DYSYMTAB Iextdefsym, Nextdefsym to identify these).
+ // Segment __PAGEZERO
+ // Segment __TEXT (zero the size, zero the offset of each section)
+ // Segment __DATA (zero the size, zero the offset of each section)
+ // Segment __LINKEDIT (contains the symbols and strings from Symtab)
+ // Segment __DWARF (uncompressed)
+
+ var uuid *macho.Uuid
+ for _, l := range exeMacho.Loads {
+ switch l.Command() {
+ case macho.LcUuid:
+ uuid = l.(*macho.Uuid)
+ }
+ }
+
+ // Ensure a given load is not nil
+ nonnilC := func(l macho.Load, s string) {
+ if l == nil {
+ fail("input file %s lacks load command %s", inputExe, s)
+ }
+ }
+
+ // Find a segment by name and ensure it is not nil
+ nonnilS := func(s string) *macho.Segment {
+ l := exeMacho.Segment(s)
+ if l == nil {
+ fail("input file %s lacks segment %s", inputExe, s)
+ }
+ return l
+ }
+
+ newtoc := exeMacho.FileTOC.DerivedCopy(macho.MhDsym, 0)
+
+ symtab := exeMacho.Symtab
+ dysymtab := exeMacho.Dysymtab // Not appearing in output, but necessary to construct output
+ nonnilC(symtab, "symtab")
+ nonnilC(dysymtab, "dysymtab")
+ text := nonnilS("__TEXT")
+ data := nonnilS("__DATA")
+ linkedit := nonnilS("__LINKEDIT")
+ pagezero := nonnilS("__PAGEZERO")
+
+ newtext := text.CopyZeroed()
+ newdata := data.CopyZeroed()
+ newsymtab := symtab.Copy()
+
+ // Linkedit segment contain symbols and strings;
+ // Symtab refers to offsets into linkedit.
+ // This next bit initializes newsymtab and sets up data structures for the linkedit segment
+ linkeditsyms := []macho.Nlist64{}
+ linkeditstrings := []string{}
+
+ // Linkedit will begin at the second page, i.e., offset is one page from beginning
+ // Symbols come first
+ linkeditsymbase := uint32(1) << pageAlign
+
+ // Strings come second, offset by the number of symbols times their size.
+ // Only those symbols from dysymtab.defsym are written into the debugging information.
+ linkeditstringbase := linkeditsymbase + exeMacho.FileTOC.SymbolSize()*dysymtab.Nextdefsym
+
+ // The first two bytes of the strings are reserved for space, null (' ', \000)
+ linkeditstringcur := uint32(2)
+
+ newsymtab.Syms = newsymtab.Syms[:0]
+ newsymtab.Symoff = linkeditsymbase
+ newsymtab.Stroff = linkeditstringbase
+ newsymtab.Nsyms = dysymtab.Nextdefsym
+ for i := uint32(0); i < dysymtab.Nextdefsym; i++ {
+ ii := i + dysymtab.Iextdefsym
+ oldsym := symtab.Syms[ii]
+ newsymtab.Syms = append(newsymtab.Syms, oldsym)
+
+ linkeditsyms = append(linkeditsyms, macho.Nlist64{Name: uint32(linkeditstringcur),
+ Type: oldsym.Type, Sect: oldsym.Sect, Desc: oldsym.Desc, Value: oldsym.Value})
+ linkeditstringcur += uint32(len(oldsym.Name)) + 1
+ linkeditstrings = append(linkeditstrings, oldsym.Name)
+ }
+ newsymtab.Strsize = linkeditstringcur
+
+ exeNeedsUuid := uuid == nil
+ if exeNeedsUuid {
+ uuid = &macho.Uuid{macho.UuidCmd{LoadCmd: macho.LcUuid}}
+ uuid.Len = uuid.LoadSize(newtoc)
+ copy(uuid.Id[0:], contentuuid(&exeMacho.FileTOC)[0:16])
+ uuid.Id[6] = uuid.Id[6]&^0xf0 | 0x40 // version 4 (pseudo-random); see section 4.1.3
+ uuid.Id[8] = uuid.Id[8]&^0xc0 | 0x80 // variant bits; see section 4.1.1
+ }
+ newtoc.AddLoad(uuid)
+
+ // For the specified segment (assumed to be in exeMacho) make a copy of its
+ // sections with appropriate fields zeroed out, and append them to the
+ // currently-last segment in newtoc.
+ copyZOdSections := func(g *macho.Segment) {
+ for i := g.Firstsect; i < g.Firstsect+g.Nsect; i++ {
+ s := exeMacho.Sections[i].Copy()
+ s.Offset = 0
+ s.Reloff = 0
+ s.Nreloc = 0
+ newtoc.AddSection(s)
+ }
+ }
+
+ newtoc.AddLoad(newsymtab)
+ newtoc.AddSegment(pagezero)
+ newtoc.AddSegment(newtext)
+ copyZOdSections(text)
+ newtoc.AddSegment(newdata)
+ copyZOdSections(data)
+
+ newlinkedit := linkedit.Copy()
+ newlinkedit.Offset = uint64(linkeditsymbase)
+ newlinkedit.Filesz = uint64(linkeditstringcur)
+ newlinkedit.Addr = macho.RoundUp(newdata.Addr+newdata.Memsz, 1< 2 {
+ outDwarf = os.Args[2]
+ } else {
+ err := os.MkdirAll(outDwarf, 0755)
+ if err != nil {
+ fail("%v", err)
+ }
+ outDwarf = filepath.Join(outDwarf, filepath.Base(inputExe))
+ }
+ dwarfFile, buffer := CreateMmapFile(outDwarf, int64(newtoc.FileSize()))
+
+ // (1) Linkedit segment
+ // Symbol table
+ offset = uint32(newlinkedit.Offset)
+ for i := range linkeditsyms {
+ if exeMacho.Magic == macho.Magic64 {
+ offset += linkeditsyms[i].Put64(buffer[offset:], newtoc.ByteOrder)
+ } else {
+ offset += linkeditsyms[i].Put32(buffer[offset:], newtoc.ByteOrder)
+ }
+ }
+
+ // Initial two bytes of string table, followed by actual zero-terminated strings.
+ buffer[linkeditstringbase] = ' '
+ buffer[linkeditstringbase+1] = 0
+ offset = linkeditstringbase + 2
+ for _, str := range linkeditstrings {
+ for i := 0; i < len(str); i++ {
+ buffer[offset] = str[i]
+ offset++
+ }
+ buffer[offset] = 0
+ offset++
+ }
+
+ // (2) DWARF segment
+ ioff := newdwarf.Firstsect - dwarf.Firstsect
+ for i := dwarf.Firstsect; i < dwarf.Firstsect+dwarf.Nsect; i++ {
+ s := exeMacho.Sections[i]
+ j := i + ioff
+ s.PutUncompressedData(buffer[newtoc.Sections[j].Offset:])
+ }
+
+ // Because "text" overlaps the header and the loads, write them afterwards, just in case.
+ // Write header.
+ newtoc.Put(buffer)
+
+ err = syscall.Munmap(buffer)
+ if err != nil {
+ fail("Munmap %s for dwarf output failed, %v", outDwarf, err)
+ }
+ err = dwarfFile.Close()
+ if err != nil {
+ fail("Close %s for dwarf output after mmap/munmap failed, %v", outDwarf, err)
+ }
+
+ if exeNeedsUuid { // Map the original exe, modify the header, and write the UUID command
+ hdr := exeMacho.FileTOC.FileHeader
+ oldCommandEnd := hdr.SizeCommands + newtoc.HdrSize()
+ hdr.NCommands += 1
+ hdr.SizeCommands += uuid.LoadSize(newtoc)
+
+ mapf, err := os.OpenFile(inputExe, os.O_RDWR, 0)
+ if err != nil {
+ fail("Updating UUID in binary failed, %v", err)
+ }
+ exebuf, err := syscall.Mmap(int(mapf.Fd()), 0, int(macho.RoundUp(uint64(hdr.SizeCommands), 1<= size {
ident := analysisutil.Format(pass.Fset, x)
pass.Reportf(node.Pos(), "%s (%d bits) too small for shift of %d", ident, size, amt)
}
}
-
-var (
- uintBitSize = 8 * archSizes.Sizeof(types.Typ[types.Uint])
- uintptrBitSize = 8 * archSizes.Sizeof(types.Typ[types.Uintptr])
-)
-
-var archSizes = types.SizesFor("gc", build.Default.GOARCH)
diff --git a/vendor/golang.org/x/tools/go/analysis/passes/structtag/structtag.go b/vendor/golang.org/x/tools/go/analysis/passes/structtag/structtag.go
index 78133fe6f3..2b67c376ba 100644
--- a/vendor/golang.org/x/tools/go/analysis/passes/structtag/structtag.go
+++ b/vendor/golang.org/x/tools/go/analysis/passes/structtag/structtag.go
@@ -136,10 +136,23 @@ func checkTagDuplicates(pass *analysis.Pass, tag, key string, nearest, field *ty
*seen = map[[2]string]token.Pos{}
}
if pos, ok := (*seen)[[2]string{key, val}]; ok {
- posn := pass.Fset.Position(pos)
- posn.Filename = filepath.Base(posn.Filename)
- posn.Column = 0
- pass.Reportf(nearest.Pos(), "struct field %s repeats %s tag %q also at %s", field.Name(), key, val, posn)
+ alsoPos := pass.Fset.Position(pos)
+ alsoPos.Column = 0
+
+ // Make the "also at" position relative to the current position,
+ // to ensure that all warnings are unambiguous and correct. For
+ // example, via anonymous struct fields, it's possible for the
+ // two fields to be in different packages and directories.
+ thisPos := pass.Fset.Position(field.Pos())
+ rel, err := filepath.Rel(filepath.Dir(thisPos.Filename), alsoPos.Filename)
+ if err != nil {
+ // Possibly because the paths are relative; leave the
+ // filename alone.
+ } else {
+ alsoPos.Filename = rel
+ }
+
+ pass.Reportf(nearest.Pos(), "struct field %s repeats %s tag %q also at %s", field.Name(), key, val, alsoPos)
} else {
(*seen)[[2]string{key, val}] = field.Pos()
}
diff --git a/vendor/golang.org/x/tools/go/analysis/passes/structtag/testdata/src/a/a.go b/vendor/golang.org/x/tools/go/analysis/passes/structtag/testdata/src/a/a.go
index fe418ddc7d..abb67fe4e5 100644
--- a/vendor/golang.org/x/tools/go/analysis/passes/structtag/testdata/src/a/a.go
+++ b/vendor/golang.org/x/tools/go/analysis/passes/structtag/testdata/src/a/a.go
@@ -6,7 +6,10 @@
package a
-import "encoding/xml"
+import (
+ "a/b"
+ "encoding/xml"
+)
type StructTagTest struct {
A int "hello" // want "`hello` not compatible with reflect.StructTag.Get: bad syntax for struct tag pair"
@@ -48,48 +51,57 @@ type AnonymousJSONField struct {
A int "hello" // want "`hello` not compatible with reflect.StructTag.Get: bad syntax for struct tag pair"
}
+// With different names to allow using as anonymous fields multiple times.
+
+type AnonymousJSONField2 struct {
+ DuplicateAnonJSON int `json:"a"`
+}
+type AnonymousJSONField3 struct {
+ DuplicateAnonJSON int `json:"a"`
+}
+
type DuplicateJSONFields struct {
JSON int `json:"a"`
- DuplicateJSON int `json:"a"` // want "struct field DuplicateJSON repeats json tag .a. also at a.go:52"
+ DuplicateJSON int `json:"a"` // want "struct field DuplicateJSON repeats json tag .a. also at a.go:64"
IgnoredJSON int `json:"-"`
OtherIgnoredJSON int `json:"-"`
OmitJSON int `json:",omitempty"`
OtherOmitJSON int `json:",omitempty"`
- DuplicateOmitJSON int `json:"a,omitempty"` // want "struct field DuplicateOmitJSON repeats json tag .a. also at a.go:52"
+ DuplicateOmitJSON int `json:"a,omitempty"` // want "struct field DuplicateOmitJSON repeats json tag .a. also at a.go:64"
NonJSON int `foo:"a"`
DuplicateNonJSON int `foo:"a"`
Embedded struct {
DuplicateJSON int `json:"a"` // OK because it's not in the same struct type
}
- AnonymousJSON `json:"a"` // want "struct field AnonymousJSON repeats json tag .a. also at a.go:52"
+ AnonymousJSON `json:"a"` // want "struct field AnonymousJSON repeats json tag .a. also at a.go:64"
- AnonymousJSONField // want "struct field DuplicateAnonJSON repeats json tag .a. also at a.go:52"
+ AnonymousJSONField // want "struct field DuplicateAnonJSON repeats json tag .a. also at a.go:64"
XML int `xml:"a"`
- DuplicateXML int `xml:"a"` // want "struct field DuplicateXML repeats xml tag .a. also at a.go:68"
+ DuplicateXML int `xml:"a"` // want "struct field DuplicateXML repeats xml tag .a. also at a.go:80"
IgnoredXML int `xml:"-"`
OtherIgnoredXML int `xml:"-"`
OmitXML int `xml:",omitempty"`
OtherOmitXML int `xml:",omitempty"`
- DuplicateOmitXML int `xml:"a,omitempty"` // want "struct field DuplicateOmitXML repeats xml tag .a. also at a.go:68"
+ DuplicateOmitXML int `xml:"a,omitempty"` // want "struct field DuplicateOmitXML repeats xml tag .a. also at a.go:80"
NonXML int `foo:"a"`
DuplicateNonXML int `foo:"a"`
Embedded2 struct {
DuplicateXML int `xml:"a"` // OK because it's not in the same struct type
}
- AnonymousXML `xml:"a"` // want "struct field AnonymousXML repeats xml tag .a. also at a.go:68"
+ AnonymousXML `xml:"a"` // want "struct field AnonymousXML repeats xml tag .a. also at a.go:80"
Attribute struct {
XMLName xml.Name `xml:"b"`
NoDup int `xml:"b"` // OK because XMLName above affects enclosing struct.
Attr int `xml:"b,attr"` // OK because 0 is valid.
- DupAttr int `xml:"b,attr"` // want "struct field DupAttr repeats xml attribute tag .b. also at a.go:84"
- DupOmitAttr int `xml:"b,omitempty,attr"` // want "struct field DupOmitAttr repeats xml attribute tag .b. also at a.go:84"
+ DupAttr int `xml:"b,attr"` // want "struct field DupAttr repeats xml attribute tag .b. also at a.go:96"
+ DupOmitAttr int `xml:"b,omitempty,attr"` // want "struct field DupOmitAttr repeats xml attribute tag .b. also at a.go:96"
- AnonymousXML `xml:"b,attr"` // want "struct field AnonymousXML repeats xml attribute tag .b. also at a.go:84"
+ AnonymousXML `xml:"b,attr"` // want "struct field AnonymousXML repeats xml attribute tag .b. also at a.go:96"
}
- AnonymousJSONField `json:"not_anon"` // ok; fields aren't embedded in JSON
- AnonymousJSONField `json:"-"` // ok; entire field is ignored in JSON
+ AnonymousJSONField2 `json:"not_anon"` // ok; fields aren't embedded in JSON
+ AnonymousJSONField3 `json:"-"` // ok; entire field is ignored in JSON
}
type UnexpectedSpacetest struct {
@@ -111,3 +123,11 @@ type UnexpectedSpacetest struct {
P int `xml:","`
Q int `foo:" doesn't care "`
}
+
+type DuplicateWithAnotherPackage struct {
+ b.AnonymousJSONField
+
+ // The "also at" position is in a different package and directory. Use
+ // "b.b" instead of "b/b" to match the relative path on Windows easily.
+ DuplicateJSON int `json:"a"` // want "struct field DuplicateJSON repeats json tag .a. also at b.b.go:8"
+}
diff --git a/vendor/golang.org/x/tools/go/analysis/passes/structtag/testdata/src/a/b/b.go b/vendor/golang.org/x/tools/go/analysis/passes/structtag/testdata/src/a/b/b.go
new file mode 100644
index 0000000000..104037481a
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/analysis/passes/structtag/testdata/src/a/b/b.go
@@ -0,0 +1,9 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package b
+
+type AnonymousJSONField struct {
+ DuplicateAnonJSON int `json:"a"`
+}
diff --git a/vendor/golang.org/x/tools/go/analysis/singlechecker/singlechecker.go b/vendor/golang.org/x/tools/go/analysis/singlechecker/singlechecker.go
index 5194183de7..bd207d0fd2 100644
--- a/vendor/golang.org/x/tools/go/analysis/singlechecker/singlechecker.go
+++ b/vendor/golang.org/x/tools/go/analysis/singlechecker/singlechecker.go
@@ -52,11 +52,11 @@ func Main(a *analysis.Analyzer) {
flag.Usage = func() {
paras := strings.Split(a.Doc, "\n\n")
fmt.Fprintf(os.Stderr, "%s: %s\n\n", a.Name, paras[0])
- fmt.Printf("Usage: %s [-flag] [package]\n\n", a.Name)
+ fmt.Fprintf(os.Stderr, "Usage: %s [-flag] [package]\n\n", a.Name)
if len(paras) > 1 {
- fmt.Println(strings.Join(paras[1:], "\n\n"))
+ fmt.Fprintln(os.Stderr, strings.Join(paras[1:], "\n\n"))
}
- fmt.Println("\nFlags:")
+ fmt.Fprintf(os.Stderr, "\nFlags:")
flag.PrintDefaults()
}
diff --git a/vendor/golang.org/x/tools/go/analysis/unitchecker/testdata/src/a/a.go b/vendor/golang.org/x/tools/go/analysis/unitchecker/testdata/src/a/a.go
deleted file mode 100644
index 9765e19a73..0000000000
--- a/vendor/golang.org/x/tools/go/analysis/unitchecker/testdata/src/a/a.go
+++ /dev/null
@@ -1,7 +0,0 @@
-package a
-
-func _() {
- MyFunc123()
-}
-
-func MyFunc123() {}
diff --git a/vendor/golang.org/x/tools/go/analysis/unitchecker/testdata/src/b/b.go b/vendor/golang.org/x/tools/go/analysis/unitchecker/testdata/src/b/b.go
deleted file mode 100644
index a7b612544d..0000000000
--- a/vendor/golang.org/x/tools/go/analysis/unitchecker/testdata/src/b/b.go
+++ /dev/null
@@ -1,10 +0,0 @@
-package b
-
-import "a"
-
-func _() {
- a.MyFunc123()
- MyFunc123()
-}
-
-func MyFunc123() {}
diff --git a/vendor/golang.org/x/tools/go/analysis/unitchecker/unitchecker.go b/vendor/golang.org/x/tools/go/analysis/unitchecker/unitchecker.go
index 76dabc28b9..ba2e66fed2 100644
--- a/vendor/golang.org/x/tools/go/analysis/unitchecker/unitchecker.go
+++ b/vendor/golang.org/x/tools/go/analysis/unitchecker/unitchecker.go
@@ -329,6 +329,7 @@ func run(fset *token.FileSet, cfg *Config, analyzers []*analysis.Analyzer) ([]re
OtherFiles: cfg.NonGoFiles,
Pkg: pkg,
TypesInfo: info,
+ TypesSizes: tc.Sizes,
ResultOf: inputs,
Report: func(d analysis.Diagnostic) { act.diagnostics = append(act.diagnostics, d) },
ImportObjectFact: facts.ImportObjectFact,
diff --git a/vendor/golang.org/x/tools/go/ast/inspector/inspector.go b/vendor/golang.org/x/tools/go/ast/inspector/inspector.go
index db88a95109..ddbdd3f08f 100644
--- a/vendor/golang.org/x/tools/go/ast/inspector/inspector.go
+++ b/vendor/golang.org/x/tools/go/ast/inspector/inspector.go
@@ -14,7 +14,7 @@
// Experiments suggest the inspector's traversals are about 2.5x faster
// than ast.Inspect, but it may take around 5 traversals for this
// benefit to amortize the inspector's construction cost.
-// If efficiency is the primary concern, do not use use Inspector for
+// If efficiency is the primary concern, do not use Inspector for
// one-off traversals.
package inspector
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/bexport.go b/vendor/golang.org/x/tools/go/internal/gcimporter/bexport.go
index 9f65049140..a807d0aaa2 100644
--- a/vendor/golang.org/x/tools/go/internal/gcimporter/bexport.go
+++ b/vendor/golang.org/x/tools/go/internal/gcimporter/bexport.go
@@ -127,10 +127,10 @@ func BExportData(fset *token.FileSet, pkg *types.Package) (b []byte, err error)
// --- generic export data ---
// populate type map with predeclared "known" types
- for index, typ := range predeclared {
+ for index, typ := range predeclared() {
p.typIndex[typ] = index
}
- if len(p.typIndex) != len(predeclared) {
+ if len(p.typIndex) != len(predeclared()) {
return nil, internalError("duplicate entries in type map?")
}
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/bimport.go b/vendor/golang.org/x/tools/go/internal/gcimporter/bimport.go
index b31eacfc0f..e3c3107825 100644
--- a/vendor/golang.org/x/tools/go/internal/gcimporter/bimport.go
+++ b/vendor/golang.org/x/tools/go/internal/gcimporter/bimport.go
@@ -126,7 +126,7 @@ func BImportData(fset *token.FileSet, imports map[string]*types.Package, data []
// --- generic export data ---
// populate typList with predeclared "known" types
- p.typList = append(p.typList, predeclared...)
+ p.typList = append(p.typList, predeclared()...)
// read package data
pkg = p.pkg()
@@ -976,50 +976,58 @@ const (
aliasTag
)
-var predeclared = []types.Type{
- // basic types
- types.Typ[types.Bool],
- types.Typ[types.Int],
- types.Typ[types.Int8],
- types.Typ[types.Int16],
- types.Typ[types.Int32],
- types.Typ[types.Int64],
- types.Typ[types.Uint],
- types.Typ[types.Uint8],
- types.Typ[types.Uint16],
- types.Typ[types.Uint32],
- types.Typ[types.Uint64],
- types.Typ[types.Uintptr],
- types.Typ[types.Float32],
- types.Typ[types.Float64],
- types.Typ[types.Complex64],
- types.Typ[types.Complex128],
- types.Typ[types.String],
-
- // basic type aliases
- types.Universe.Lookup("byte").Type(),
- types.Universe.Lookup("rune").Type(),
-
- // error
- types.Universe.Lookup("error").Type(),
-
- // untyped types
- types.Typ[types.UntypedBool],
- types.Typ[types.UntypedInt],
- types.Typ[types.UntypedRune],
- types.Typ[types.UntypedFloat],
- types.Typ[types.UntypedComplex],
- types.Typ[types.UntypedString],
- types.Typ[types.UntypedNil],
-
- // package unsafe
- types.Typ[types.UnsafePointer],
-
- // invalid type
- types.Typ[types.Invalid], // only appears in packages with errors
-
- // used internally by gc; never used by this package or in .a files
- anyType{},
+var predecl []types.Type // initialized lazily
+
+func predeclared() []types.Type {
+ if predecl == nil {
+ // initialize lazily to be sure that all
+ // elements have been initialized before
+ predecl = []types.Type{ // basic types
+ types.Typ[types.Bool],
+ types.Typ[types.Int],
+ types.Typ[types.Int8],
+ types.Typ[types.Int16],
+ types.Typ[types.Int32],
+ types.Typ[types.Int64],
+ types.Typ[types.Uint],
+ types.Typ[types.Uint8],
+ types.Typ[types.Uint16],
+ types.Typ[types.Uint32],
+ types.Typ[types.Uint64],
+ types.Typ[types.Uintptr],
+ types.Typ[types.Float32],
+ types.Typ[types.Float64],
+ types.Typ[types.Complex64],
+ types.Typ[types.Complex128],
+ types.Typ[types.String],
+
+ // basic type aliases
+ types.Universe.Lookup("byte").Type(),
+ types.Universe.Lookup("rune").Type(),
+
+ // error
+ types.Universe.Lookup("error").Type(),
+
+ // untyped types
+ types.Typ[types.UntypedBool],
+ types.Typ[types.UntypedInt],
+ types.Typ[types.UntypedRune],
+ types.Typ[types.UntypedFloat],
+ types.Typ[types.UntypedComplex],
+ types.Typ[types.UntypedString],
+ types.Typ[types.UntypedNil],
+
+ // package unsafe
+ types.Typ[types.UnsafePointer],
+
+ // invalid type
+ types.Typ[types.Invalid], // only appears in packages with errors
+
+ // used internally by gc; never used by this package or in .a files
+ anyType{},
+ }
+ }
+ return predecl
}
type anyType struct{}
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/iexport.go b/vendor/golang.org/x/tools/go/internal/gcimporter/iexport.go
new file mode 100644
index 0000000000..be671c79b7
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/internal/gcimporter/iexport.go
@@ -0,0 +1,723 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Indexed binary package export.
+// This file was derived from $GOROOT/src/cmd/compile/internal/gc/iexport.go;
+// see that file for specification of the format.
+
+// +build go1.11
+
+package gcimporter
+
+import (
+ "bytes"
+ "encoding/binary"
+ "go/ast"
+ "go/constant"
+ "go/token"
+ "go/types"
+ "io"
+ "math/big"
+ "reflect"
+ "sort"
+)
+
+// Current indexed export format version. Increase with each format change.
+// 0: Go1.11 encoding
+const iexportVersion = 0
+
+// IExportData returns the binary export data for pkg.
+// If no file set is provided, position info will be missing.
+func IExportData(fset *token.FileSet, pkg *types.Package) (b []byte, err error) {
+ defer func() {
+ if e := recover(); e != nil {
+ if ierr, ok := e.(internalError); ok {
+ err = ierr
+ return
+ }
+ // Not an internal error; panic again.
+ panic(e)
+ }
+ }()
+
+ p := iexporter{
+ out: bytes.NewBuffer(nil),
+ fset: fset,
+ allPkgs: map[*types.Package]bool{},
+ stringIndex: map[string]uint64{},
+ declIndex: map[types.Object]uint64{},
+ typIndex: map[types.Type]uint64{},
+ }
+
+ for i, pt := range predeclared() {
+ p.typIndex[pt] = uint64(i)
+ }
+ if len(p.typIndex) > predeclReserved {
+ panic(internalErrorf("too many predeclared types: %d > %d", len(p.typIndex), predeclReserved))
+ }
+
+ // Initialize work queue with exported declarations.
+ scope := pkg.Scope()
+ for _, name := range scope.Names() {
+ if ast.IsExported(name) {
+ p.pushDecl(scope.Lookup(name))
+ }
+ }
+
+ // Loop until no more work.
+ for !p.declTodo.empty() {
+ p.doDecl(p.declTodo.popHead())
+ }
+
+ // Append indices to data0 section.
+ dataLen := uint64(p.data0.Len())
+ w := p.newWriter()
+ w.writeIndex(p.declIndex, pkg)
+ w.flush()
+
+ // Assemble header.
+ var hdr intWriter
+ hdr.WriteByte('i')
+ hdr.uint64(iexportVersion)
+ hdr.uint64(uint64(p.strings.Len()))
+ hdr.uint64(dataLen)
+
+ // Flush output.
+ io.Copy(p.out, &hdr)
+ io.Copy(p.out, &p.strings)
+ io.Copy(p.out, &p.data0)
+
+ return p.out.Bytes(), nil
+}
+
+// writeIndex writes out an object index. mainIndex indicates whether
+// we're writing out the main index, which is also read by
+// non-compiler tools and includes a complete package description
+// (i.e., name and height).
+func (w *exportWriter) writeIndex(index map[types.Object]uint64, localpkg *types.Package) {
+ // Build a map from packages to objects from that package.
+ pkgObjs := map[*types.Package][]types.Object{}
+
+ // For the main index, make sure to include every package that
+ // we reference, even if we're not exporting (or reexporting)
+ // any symbols from it.
+ pkgObjs[localpkg] = nil
+ for pkg := range w.p.allPkgs {
+ pkgObjs[pkg] = nil
+ }
+
+ for obj := range index {
+ pkgObjs[obj.Pkg()] = append(pkgObjs[obj.Pkg()], obj)
+ }
+
+ var pkgs []*types.Package
+ for pkg, objs := range pkgObjs {
+ pkgs = append(pkgs, pkg)
+
+ sort.Slice(objs, func(i, j int) bool {
+ return objs[i].Name() < objs[j].Name()
+ })
+ }
+
+ sort.Slice(pkgs, func(i, j int) bool {
+ return pkgs[i].Path() < pkgs[j].Path()
+ })
+
+ w.uint64(uint64(len(pkgs)))
+ for _, pkg := range pkgs {
+ w.string(pkg.Path())
+ w.string(pkg.Name())
+ w.uint64(uint64(0)) // package height is not needed for go/types
+
+ objs := pkgObjs[pkg]
+ w.uint64(uint64(len(objs)))
+ for _, obj := range objs {
+ w.string(obj.Name())
+ w.uint64(index[obj])
+ }
+ }
+}
+
+type iexporter struct {
+ fset *token.FileSet
+ out *bytes.Buffer
+
+ // allPkgs tracks all packages that have been referenced by
+ // the export data, so we can ensure to include them in the
+ // main index.
+ allPkgs map[*types.Package]bool
+
+ declTodo objQueue
+
+ strings intWriter
+ stringIndex map[string]uint64
+
+ data0 intWriter
+ declIndex map[types.Object]uint64
+ typIndex map[types.Type]uint64
+}
+
+// stringOff returns the offset of s within the string section.
+// If not already present, it's added to the end.
+func (p *iexporter) stringOff(s string) uint64 {
+ off, ok := p.stringIndex[s]
+ if !ok {
+ off = uint64(p.strings.Len())
+ p.stringIndex[s] = off
+
+ p.strings.uint64(uint64(len(s)))
+ p.strings.WriteString(s)
+ }
+ return off
+}
+
+// pushDecl adds n to the declaration work queue, if not already present.
+func (p *iexporter) pushDecl(obj types.Object) {
+ // Package unsafe is known to the compiler and predeclared.
+ assert(obj.Pkg() != types.Unsafe)
+
+ if _, ok := p.declIndex[obj]; ok {
+ return
+ }
+
+ p.declIndex[obj] = ^uint64(0) // mark n present in work queue
+ p.declTodo.pushTail(obj)
+}
+
+// exportWriter handles writing out individual data section chunks.
+type exportWriter struct {
+ p *iexporter
+
+ data intWriter
+ currPkg *types.Package
+ prevFile string
+ prevLine int64
+}
+
+func (p *iexporter) doDecl(obj types.Object) {
+ w := p.newWriter()
+ w.setPkg(obj.Pkg(), false)
+
+ switch obj := obj.(type) {
+ case *types.Var:
+ w.tag('V')
+ w.pos(obj.Pos())
+ w.typ(obj.Type(), obj.Pkg())
+
+ case *types.Func:
+ sig, _ := obj.Type().(*types.Signature)
+ if sig.Recv() != nil {
+ panic(internalErrorf("unexpected method: %v", sig))
+ }
+ w.tag('F')
+ w.pos(obj.Pos())
+ w.signature(sig)
+
+ case *types.Const:
+ w.tag('C')
+ w.pos(obj.Pos())
+ w.value(obj.Type(), obj.Val())
+
+ case *types.TypeName:
+ if obj.IsAlias() {
+ w.tag('A')
+ w.pos(obj.Pos())
+ w.typ(obj.Type(), obj.Pkg())
+ break
+ }
+
+ // Defined type.
+ w.tag('T')
+ w.pos(obj.Pos())
+
+ underlying := obj.Type().Underlying()
+ w.typ(underlying, obj.Pkg())
+
+ t := obj.Type()
+ if types.IsInterface(t) {
+ break
+ }
+
+ named, ok := t.(*types.Named)
+ if !ok {
+ panic(internalErrorf("%s is not a defined type", t))
+ }
+
+ n := named.NumMethods()
+ w.uint64(uint64(n))
+ for i := 0; i < n; i++ {
+ m := named.Method(i)
+ w.pos(m.Pos())
+ w.string(m.Name())
+ sig, _ := m.Type().(*types.Signature)
+ w.param(sig.Recv())
+ w.signature(sig)
+ }
+
+ default:
+ panic(internalErrorf("unexpected object: %v", obj))
+ }
+
+ p.declIndex[obj] = w.flush()
+}
+
+func (w *exportWriter) tag(tag byte) {
+ w.data.WriteByte(tag)
+}
+
+func (w *exportWriter) pos(pos token.Pos) {
+ p := w.p.fset.Position(pos)
+ file := p.Filename
+ line := int64(p.Line)
+
+ // When file is the same as the last position (common case),
+ // we can save a few bytes by delta encoding just the line
+ // number.
+ //
+ // Note: Because data objects may be read out of order (or not
+ // at all), we can only apply delta encoding within a single
+ // object. This is handled implicitly by tracking prevFile and
+ // prevLine as fields of exportWriter.
+
+ if file == w.prevFile {
+ delta := line - w.prevLine
+ w.int64(delta)
+ if delta == deltaNewFile {
+ w.int64(-1)
+ }
+ } else {
+ w.int64(deltaNewFile)
+ w.int64(line) // line >= 0
+ w.string(file)
+ w.prevFile = file
+ }
+ w.prevLine = line
+}
+
+func (w *exportWriter) pkg(pkg *types.Package) {
+ // Ensure any referenced packages are declared in the main index.
+ w.p.allPkgs[pkg] = true
+
+ w.string(pkg.Path())
+}
+
+func (w *exportWriter) qualifiedIdent(obj types.Object) {
+ // Ensure any referenced declarations are written out too.
+ w.p.pushDecl(obj)
+
+ w.string(obj.Name())
+ w.pkg(obj.Pkg())
+}
+
+func (w *exportWriter) typ(t types.Type, pkg *types.Package) {
+ w.data.uint64(w.p.typOff(t, pkg))
+}
+
+func (p *iexporter) newWriter() *exportWriter {
+ return &exportWriter{p: p}
+}
+
+func (w *exportWriter) flush() uint64 {
+ off := uint64(w.p.data0.Len())
+ io.Copy(&w.p.data0, &w.data)
+ return off
+}
+
+func (p *iexporter) typOff(t types.Type, pkg *types.Package) uint64 {
+ off, ok := p.typIndex[t]
+ if !ok {
+ w := p.newWriter()
+ w.doTyp(t, pkg)
+ off = predeclReserved + w.flush()
+ p.typIndex[t] = off
+ }
+ return off
+}
+
+func (w *exportWriter) startType(k itag) {
+ w.data.uint64(uint64(k))
+}
+
+func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) {
+ switch t := t.(type) {
+ case *types.Named:
+ w.startType(definedType)
+ w.qualifiedIdent(t.Obj())
+
+ case *types.Pointer:
+ w.startType(pointerType)
+ w.typ(t.Elem(), pkg)
+
+ case *types.Slice:
+ w.startType(sliceType)
+ w.typ(t.Elem(), pkg)
+
+ case *types.Array:
+ w.startType(arrayType)
+ w.uint64(uint64(t.Len()))
+ w.typ(t.Elem(), pkg)
+
+ case *types.Chan:
+ w.startType(chanType)
+ // 1 RecvOnly; 2 SendOnly; 3 SendRecv
+ var dir uint64
+ switch t.Dir() {
+ case types.RecvOnly:
+ dir = 1
+ case types.SendOnly:
+ dir = 2
+ case types.SendRecv:
+ dir = 3
+ }
+ w.uint64(dir)
+ w.typ(t.Elem(), pkg)
+
+ case *types.Map:
+ w.startType(mapType)
+ w.typ(t.Key(), pkg)
+ w.typ(t.Elem(), pkg)
+
+ case *types.Signature:
+ w.startType(signatureType)
+ w.setPkg(pkg, true)
+ w.signature(t)
+
+ case *types.Struct:
+ w.startType(structType)
+ w.setPkg(pkg, true)
+
+ n := t.NumFields()
+ w.uint64(uint64(n))
+ for i := 0; i < n; i++ {
+ f := t.Field(i)
+ w.pos(f.Pos())
+ w.string(f.Name())
+ w.typ(f.Type(), pkg)
+ w.bool(f.Embedded())
+ w.string(t.Tag(i)) // note (or tag)
+ }
+
+ case *types.Interface:
+ w.startType(interfaceType)
+ w.setPkg(pkg, true)
+
+ n := t.NumEmbeddeds()
+ w.uint64(uint64(n))
+ for i := 0; i < n; i++ {
+ f := t.Embedded(i)
+ w.pos(f.Obj().Pos())
+ w.typ(f.Obj().Type(), f.Obj().Pkg())
+ }
+
+ n = t.NumExplicitMethods()
+ w.uint64(uint64(n))
+ for i := 0; i < n; i++ {
+ m := t.ExplicitMethod(i)
+ w.pos(m.Pos())
+ w.string(m.Name())
+ sig, _ := m.Type().(*types.Signature)
+ w.signature(sig)
+ }
+
+ default:
+ panic(internalErrorf("unexpected type: %v, %v", t, reflect.TypeOf(t)))
+ }
+}
+
+func (w *exportWriter) setPkg(pkg *types.Package, write bool) {
+ if write {
+ w.pkg(pkg)
+ }
+
+ w.currPkg = pkg
+}
+
+func (w *exportWriter) signature(sig *types.Signature) {
+ w.paramList(sig.Params())
+ w.paramList(sig.Results())
+ if sig.Params().Len() > 0 {
+ w.bool(sig.Variadic())
+ }
+}
+
+func (w *exportWriter) paramList(tup *types.Tuple) {
+ n := tup.Len()
+ w.uint64(uint64(n))
+ for i := 0; i < n; i++ {
+ w.param(tup.At(i))
+ }
+}
+
+func (w *exportWriter) param(obj types.Object) {
+ w.pos(obj.Pos())
+ w.localIdent(obj)
+ w.typ(obj.Type(), obj.Pkg())
+}
+
+func (w *exportWriter) value(typ types.Type, v constant.Value) {
+ w.typ(typ, nil)
+
+ switch v.Kind() {
+ case constant.Bool:
+ w.bool(constant.BoolVal(v))
+ case constant.Int:
+ var i big.Int
+ if i64, exact := constant.Int64Val(v); exact {
+ i.SetInt64(i64)
+ } else if ui64, exact := constant.Uint64Val(v); exact {
+ i.SetUint64(ui64)
+ } else {
+ i.SetString(v.ExactString(), 10)
+ }
+ w.mpint(&i, typ)
+ case constant.Float:
+ f := constantToFloat(v)
+ w.mpfloat(f, typ)
+ case constant.Complex:
+ w.mpfloat(constantToFloat(constant.Real(v)), typ)
+ w.mpfloat(constantToFloat(constant.Imag(v)), typ)
+ case constant.String:
+ w.string(constant.StringVal(v))
+ case constant.Unknown:
+ // package contains type errors
+ default:
+ panic(internalErrorf("unexpected value %v (%T)", v, v))
+ }
+}
+
+// constantToFloat converts a constant.Value with kind constant.Float to a
+// big.Float.
+func constantToFloat(x constant.Value) *big.Float {
+ assert(x.Kind() == constant.Float)
+ // Use the same floating-point precision (512) as cmd/compile
+ // (see Mpprec in cmd/compile/internal/gc/mpfloat.go).
+ const mpprec = 512
+ var f big.Float
+ f.SetPrec(mpprec)
+ if v, exact := constant.Float64Val(x); exact {
+ // float64
+ f.SetFloat64(v)
+ } else if num, denom := constant.Num(x), constant.Denom(x); num.Kind() == constant.Int {
+ // TODO(gri): add big.Rat accessor to constant.Value.
+ n := valueToRat(num)
+ d := valueToRat(denom)
+ f.SetRat(n.Quo(n, d))
+ } else {
+ // Value too large to represent as a fraction => inaccessible.
+ // TODO(gri): add big.Float accessor to constant.Value.
+ _, ok := f.SetString(x.ExactString())
+ assert(ok)
+ }
+ return &f
+}
+
+// mpint exports a multi-precision integer.
+//
+// For unsigned types, small values are written out as a single
+// byte. Larger values are written out as a length-prefixed big-endian
+// byte string, where the length prefix is encoded as its complement.
+// For example, bytes 0, 1, and 2 directly represent the integer
+// values 0, 1, and 2; while bytes 255, 254, and 253 indicate a 1-,
+// 2-, and 3-byte big-endian string follow.
+//
+// Encoding for signed types use the same general approach as for
+// unsigned types, except small values use zig-zag encoding and the
+// bottom bit of length prefix byte for large values is reserved as a
+// sign bit.
+//
+// The exact boundary between small and large encodings varies
+// according to the maximum number of bytes needed to encode a value
+// of type typ. As a special case, 8-bit types are always encoded as a
+// single byte.
+//
+// TODO(mdempsky): Is this level of complexity really worthwhile?
+func (w *exportWriter) mpint(x *big.Int, typ types.Type) {
+ basic, ok := typ.Underlying().(*types.Basic)
+ if !ok {
+ panic(internalErrorf("unexpected type %v (%T)", typ.Underlying(), typ.Underlying()))
+ }
+
+ signed, maxBytes := intSize(basic)
+
+ negative := x.Sign() < 0
+ if !signed && negative {
+ panic(internalErrorf("negative unsigned integer; type %v, value %v", typ, x))
+ }
+
+ b := x.Bytes()
+ if len(b) > 0 && b[0] == 0 {
+ panic(internalErrorf("leading zeros"))
+ }
+ if uint(len(b)) > maxBytes {
+ panic(internalErrorf("bad mpint length: %d > %d (type %v, value %v)", len(b), maxBytes, typ, x))
+ }
+
+ maxSmall := 256 - maxBytes
+ if signed {
+ maxSmall = 256 - 2*maxBytes
+ }
+ if maxBytes == 1 {
+ maxSmall = 256
+ }
+
+ // Check if x can use small value encoding.
+ if len(b) <= 1 {
+ var ux uint
+ if len(b) == 1 {
+ ux = uint(b[0])
+ }
+ if signed {
+ ux <<= 1
+ if negative {
+ ux--
+ }
+ }
+ if ux < maxSmall {
+ w.data.WriteByte(byte(ux))
+ return
+ }
+ }
+
+ n := 256 - uint(len(b))
+ if signed {
+ n = 256 - 2*uint(len(b))
+ if negative {
+ n |= 1
+ }
+ }
+ if n < maxSmall || n >= 256 {
+ panic(internalErrorf("encoding mistake: %d, %v, %v => %d", len(b), signed, negative, n))
+ }
+
+ w.data.WriteByte(byte(n))
+ w.data.Write(b)
+}
+
+// mpfloat exports a multi-precision floating point number.
+//
+// The number's value is decomposed into mantissa × 2**exponent, where
+// mantissa is an integer. The value is written out as mantissa (as a
+// multi-precision integer) and then the exponent, except exponent is
+// omitted if mantissa is zero.
+func (w *exportWriter) mpfloat(f *big.Float, typ types.Type) {
+ if f.IsInf() {
+ panic("infinite constant")
+ }
+
+ // Break into f = mant × 2**exp, with 0.5 <= mant < 1.
+ var mant big.Float
+ exp := int64(f.MantExp(&mant))
+
+ // Scale so that mant is an integer.
+ prec := mant.MinPrec()
+ mant.SetMantExp(&mant, int(prec))
+ exp -= int64(prec)
+
+ manti, acc := mant.Int(nil)
+ if acc != big.Exact {
+ panic(internalErrorf("mantissa scaling failed for %f (%s)", f, acc))
+ }
+ w.mpint(manti, typ)
+ if manti.Sign() != 0 {
+ w.int64(exp)
+ }
+}
+
+func (w *exportWriter) bool(b bool) bool {
+ var x uint64
+ if b {
+ x = 1
+ }
+ w.uint64(x)
+ return b
+}
+
+func (w *exportWriter) int64(x int64) { w.data.int64(x) }
+func (w *exportWriter) uint64(x uint64) { w.data.uint64(x) }
+func (w *exportWriter) string(s string) { w.uint64(w.p.stringOff(s)) }
+
+func (w *exportWriter) localIdent(obj types.Object) {
+ // Anonymous parameters.
+ if obj == nil {
+ w.string("")
+ return
+ }
+
+ name := obj.Name()
+ if name == "_" {
+ w.string("_")
+ return
+ }
+
+ w.string(name)
+}
+
+type intWriter struct {
+ bytes.Buffer
+}
+
+func (w *intWriter) int64(x int64) {
+ var buf [binary.MaxVarintLen64]byte
+ n := binary.PutVarint(buf[:], x)
+ w.Write(buf[:n])
+}
+
+func (w *intWriter) uint64(x uint64) {
+ var buf [binary.MaxVarintLen64]byte
+ n := binary.PutUvarint(buf[:], x)
+ w.Write(buf[:n])
+}
+
+func assert(cond bool) {
+ if !cond {
+ panic("internal error: assertion failed")
+ }
+}
+
+// The below is copied from go/src/cmd/compile/internal/gc/syntax.go.
+
+// objQueue is a FIFO queue of types.Object. The zero value of objQueue is
+// a ready-to-use empty queue.
+type objQueue struct {
+ ring []types.Object
+ head, tail int
+}
+
+// empty returns true if q contains no Nodes.
+func (q *objQueue) empty() bool {
+ return q.head == q.tail
+}
+
+// pushTail appends n to the tail of the queue.
+func (q *objQueue) pushTail(obj types.Object) {
+ if len(q.ring) == 0 {
+ q.ring = make([]types.Object, 16)
+ } else if q.head+len(q.ring) == q.tail {
+ // Grow the ring.
+ nring := make([]types.Object, len(q.ring)*2)
+ // Copy the old elements.
+ part := q.ring[q.head%len(q.ring):]
+ if q.tail-q.head <= len(part) {
+ part = part[:q.tail-q.head]
+ copy(nring, part)
+ } else {
+ pos := copy(nring, part)
+ copy(nring[pos:], q.ring[:q.tail%len(q.ring)])
+ }
+ q.ring, q.head, q.tail = nring, 0, q.tail-q.head
+ }
+
+ q.ring[q.tail%len(q.ring)] = obj
+ q.tail++
+}
+
+// popHead pops a node from the head of the queue. It panics if q is empty.
+func (q *objQueue) popHead() types.Object {
+ if q.empty() {
+ panic("dequeue empty")
+ }
+ obj := q.ring[q.head%len(q.ring)]
+ q.head++
+ return obj
+}
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/iimport.go b/vendor/golang.org/x/tools/go/internal/gcimporter/iimport.go
index 0fd22bb038..3cb7ae5b9e 100644
--- a/vendor/golang.org/x/tools/go/internal/gcimporter/iimport.go
+++ b/vendor/golang.org/x/tools/go/internal/gcimporter/iimport.go
@@ -109,7 +109,7 @@ func IImportData(fset *token.FileSet, imports map[string]*types.Package, data []
},
}
- for i, pt := range predeclared {
+ for i, pt := range predeclared() {
p.typCache[uint64(i)] = pt
}
@@ -142,8 +142,12 @@ func IImportData(fset *token.FileSet, imports map[string]*types.Package, data []
p.pkgIndex[pkg] = nameIndex
pkgList[i] = pkg
}
-
- localpkg := pkgList[0]
+ var localpkg *types.Package
+ for _, pkg := range pkgList {
+ if pkg.Path() == path {
+ localpkg = pkg
+ }
+ }
names := make([]string, 0, len(p.pkgIndex[localpkg]))
for name := range p.pkgIndex[localpkg] {
@@ -330,6 +334,10 @@ func (r *importReader) value() (typ types.Type, val constant.Value) {
val = constant.BinaryOp(re, token.ADD, constant.MakeImag(im))
default:
+ if b.Kind() == types.Invalid {
+ val = constant.MakeUnknown()
+ return
+ }
errorf("unexpected type %v", typ) // panics
panic("unreachable")
}
diff --git a/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go b/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go
index eecf07fee9..fdc7da0568 100644
--- a/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go
+++ b/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go
@@ -86,6 +86,9 @@ func GetSizesGolist(ctx context.Context, buildFlags, env []string, dir string, u
return nil, err
}
fields := strings.Fields(stdout.String())
+ if len(fields) < 2 {
+ return nil, fmt.Errorf("could not determine GOARCH and Go compiler")
+ }
goarch := fields[0]
compiler := fields[1]
return types.SizesFor(compiler, goarch), nil
diff --git a/vendor/golang.org/x/tools/go/packages/doc.go b/vendor/golang.org/x/tools/go/packages/doc.go
index e645651f1b..3799f8ed8b 100644
--- a/vendor/golang.org/x/tools/go/packages/doc.go
+++ b/vendor/golang.org/x/tools/go/packages/doc.go
@@ -5,11 +5,6 @@
/*
Package packages loads Go packages for inspection and analysis.
-Note: Though this package is ready for widespread use, we may make minor
-breaking changes if absolutely necessary. Any such change will be
-announced on golang-tools@ at least one week before it is committed. No
-more breaking changes will be made after December 1, 2018.
-
The Load function takes as input a list of patterns and return a list of Package
structs describing individual packages matched by those patterns.
The LoadMode controls the amount of detail in the loaded packages.
@@ -19,22 +14,17 @@ but all patterns with the prefix "query=", where query is a
non-empty string of letters from [a-z], are reserved and may be
interpreted as query operators.
-Only two query operators are currently supported, "file" and "pattern".
+Two query operators are currently supported: "file" and "pattern".
The query "file=path/to/file.go" matches the package or packages enclosing
the Go source file path/to/file.go. For example "file=~/go/src/fmt/print.go"
-might returns the packages "fmt" and "fmt [fmt.test]".
+might return the packages "fmt" and "fmt [fmt.test]".
The query "pattern=string" causes "string" to be passed directly to
the underlying build tool. In most cases this is unnecessary,
but an application can use Load("pattern=" + x) as an escaping mechanism
to ensure that x is not interpreted as a query operator if it contains '='.
-A third query "name=identifier" will be added soon.
-It will match packages whose package declaration contains the specified identifier.
-For example, "name=rand" would match the packages "math/rand" and "crypto/rand",
-and "name=main" would match all executables.
-
All other query operators are reserved for future use and currently
cause Load to report an error.
diff --git a/vendor/golang.org/x/tools/go/packages/golist.go b/vendor/golang.org/x/tools/go/packages/golist.go
index ffe36d2d6a..2fee7fb1f0 100644
--- a/vendor/golang.org/x/tools/go/packages/golist.go
+++ b/vendor/golang.org/x/tools/go/packages/golist.go
@@ -104,7 +104,7 @@ extractQueries:
containFiles = append(containFiles, value)
case "pattern":
restPatterns = append(restPatterns, value)
- case "name":
+ case "iamashamedtousethedisabledqueryname":
packagesNamed = append(packagesNamed, value)
case "": // not a reserved query
restPatterns = append(restPatterns, pattern)
@@ -120,7 +120,6 @@ extractQueries:
}
}
}
- patterns = restPatterns
// TODO(matloob): Remove the definition of listfunc and just use golistPackages once go1.12 is released.
var listfunc driver
@@ -139,8 +138,10 @@ extractQueries:
response := &responseDeduper{}
var err error
- // see if we have any patterns to pass through to go list.
- if len(restPatterns) > 0 {
+ // See if we have any patterns to pass through to go list. Zero initial
+ // patterns also requires a go list call, since it's the equivalent of
+ // ".".
+ if len(restPatterns) > 0 || len(patterns) == 0 {
dr, err := listfunc(cfg, restPatterns...)
if err != nil {
return nil, err
@@ -282,7 +283,10 @@ func runNamedQueries(cfg *Config, driver driver, response *responseDeduper, quer
matchesMu.Lock()
defer matchesMu.Unlock()
- path := dir[len(root.Path)+1:]
+ path := dir
+ if dir != root.Path {
+ path = dir[len(root.Path)+1:]
+ }
if pathMatchesQueries(path, queries) {
switch root.Type {
case gopathwalk.RootModuleCache:
diff --git a/vendor/golang.org/x/tools/go/packages/golist_fallback.go b/vendor/golang.org/x/tools/go/packages/golist_fallback.go
index 8e88607a0e..141fa19ac1 100644
--- a/vendor/golang.org/x/tools/go/packages/golist_fallback.go
+++ b/vendor/golang.org/x/tools/go/packages/golist_fallback.go
@@ -21,7 +21,7 @@ import (
// TODO(matloob): Delete this file once Go 1.12 is released.
// This file provides backwards compatibility support for
-// loading for versions of Go earlier than 1.10.4. This support is meant to
+// loading for versions of Go earlier than 1.11. This support is meant to
// assist with migration to the Package API until there's
// widespread adoption of these newer Go versions.
// This support will be removed once Go 1.12 is released
@@ -89,11 +89,7 @@ func golistDriverFallback(cfg *Config, words ...string) (*driverResponse, error)
return "", err
}
}
- // Add a "go-build" component to the path to make the tests think the files are in the cache.
- // This allows the same test to test the pre- and post-Go 1.11 go list logic because the Go 1.11
- // go list generates test mains in the cache, and the test code knows not to rely on paths in the
- // cache to stay stable.
- outdir = filepath.Join(tmpdir, "go-build", strings.Replace(p.ImportPath, "/", "_", -1))
+ outdir = filepath.Join(tmpdir, strings.Replace(p.ImportPath, "/", "_", -1))
if err := os.MkdirAll(outdir, 0755); err != nil {
outdir = ""
return "", err
@@ -200,7 +196,11 @@ func golistDriverFallback(cfg *Config, words ...string) (*driverResponse, error)
})
return
}
- testmain := filepath.Join(outdir, "testmain.go")
+ // Don't use a .go extension on the file, so that the tests think the file is inside GOCACHE.
+ // This allows the same test to test the pre- and post-Go 1.11 go list logic because the Go 1.11
+ // go list generates test mains in the cache, and the test code knows not to rely on paths in the
+ // cache to stay stable.
+ testmain := filepath.Join(outdir, "testmain-go")
extraimports, extradeps, err := generateTestmain(testmain, testPkg, xtestPkg)
if err != nil {
testmainPkg.Errors = append(testmainPkg.Errors, Error{
diff --git a/vendor/golang.org/x/tools/go/packages/gopackages/main.go b/vendor/golang.org/x/tools/go/packages/gopackages/main.go
index bff298f789..f202dff71d 100644
--- a/vendor/golang.org/x/tools/go/packages/gopackages/main.go
+++ b/vendor/golang.org/x/tools/go/packages/gopackages/main.go
@@ -9,116 +9,73 @@
package main
import (
+ "context"
"encoding/json"
"flag"
"fmt"
"go/types"
- "log"
"os"
- "runtime"
- "runtime/pprof"
- "runtime/trace"
"sort"
"strings"
"golang.org/x/tools/go/packages"
"golang.org/x/tools/go/types/typeutil"
+ "golang.org/x/tools/internal/tool"
)
-// flags
-var (
- depsFlag = flag.Bool("deps", false, "show dependencies too")
- testFlag = flag.Bool("test", false, "include any tests implied by the patterns")
- mode = flag.String("mode", "imports", "mode (one of files, imports, types, syntax, allsyntax)")
- private = flag.Bool("private", false, "show non-exported declarations too")
- printJSON = flag.Bool("json", false, "print package in JSON form")
+func main() {
+ tool.Main(context.Background(), &application{Mode: "imports"}, os.Args[1:])
+}
- cpuprofile = flag.String("cpuprofile", "", "write CPU profile to this file")
- memprofile = flag.String("memprofile", "", "write memory profile to this file")
- traceFlag = flag.String("trace", "", "write trace log to this file")
+type application struct {
+ // Embed the basic profiling flags supported by the tool package
+ tool.Profile
- buildFlags stringListValue
-)
-
-func init() {
- flag.Var(&buildFlags, "buildflag", "pass argument to underlying build system (may be repeated)")
+ Deps bool `flag:"deps" help:"show dependencies too"`
+ Test bool `flag:"test" help:"include any tests implied by the patterns"`
+ Mode string `flag:"mode" help:"mode (one of files, imports, types, syntax, allsyntax)"`
+ Private bool `flag:"private" help:"show non-exported declarations too"`
+ PrintJSON bool `flag:"json" help:"print package in JSON form"`
+ BuildFlags stringListValue `flag:"buildflag" help:"pass argument to underlying build system (may be repeated)"`
}
-func usage() {
- fmt.Fprintln(os.Stderr, `Usage: gopackages [-deps] [-cgo] [-mode=...] [-private] package...
+// Name implements tool.Application returning the binary name.
+func (app *application) Name() string { return "gopackages" }
+
+// Usage implements tool.Application returning empty extra argument usage.
+func (app *application) Usage() string { return "package..." }
-The gopackages command loads, parses, type-checks,
-and prints one or more Go packages.
+// ShortHelp implements tool.Application returning the main binary help.
+func (app *application) ShortHelp() string {
+ return "gopackages loads, parses, type-checks, and prints one or more Go packages."
+}
+// DetailedHelp implements tool.Application returning the main binary help.
+func (app *application) DetailedHelp(f *flag.FlagSet) {
+ fmt.Fprint(f.Output(), `
Packages are specified using the notation of "go list",
or other underlying build system.
-Flags:`)
- flag.PrintDefaults()
+Flags:
+`)
+ f.PrintDefaults()
}
-func main() {
- log.SetPrefix("gopackages: ")
- log.SetFlags(0)
- flag.Usage = usage
- flag.Parse()
-
- if len(flag.Args()) == 0 {
- usage()
- os.Exit(1)
- }
-
- if *cpuprofile != "" {
- f, err := os.Create(*cpuprofile)
- if err != nil {
- log.Fatal(err)
- }
- if err := pprof.StartCPUProfile(f); err != nil {
- log.Fatal(err)
- }
- // NB: profile won't be written in case of error.
- defer pprof.StopCPUProfile()
- }
-
- if *traceFlag != "" {
- f, err := os.Create(*traceFlag)
- if err != nil {
- log.Fatal(err)
- }
- if err := trace.Start(f); err != nil {
- log.Fatal(err)
- }
- // NB: trace log won't be written in case of error.
- defer func() {
- trace.Stop()
- log.Printf("To view the trace, run:\n$ go tool trace view %s", *traceFlag)
- }()
- }
-
- if *memprofile != "" {
- f, err := os.Create(*memprofile)
- if err != nil {
- log.Fatal(err)
- }
- // NB: memprofile won't be written in case of error.
- defer func() {
- runtime.GC() // get up-to-date statistics
- if err := pprof.WriteHeapProfile(f); err != nil {
- log.Fatalf("Writing memory profile: %v", err)
- }
- f.Close()
- }()
+// Run takes the args after flag processing and performs the specified query.
+func (app *application) Run(ctx context.Context, args ...string) error {
+ if len(args) == 0 {
+ return tool.CommandLineErrorf("not enough arguments")
}
// Load, parse, and type-check the packages named on the command line.
cfg := &packages.Config{
Mode: packages.LoadSyntax,
- Tests: *testFlag,
- BuildFlags: buildFlags,
+ Tests: app.Test,
+ BuildFlags: app.BuildFlags,
}
// -mode flag
- switch strings.ToLower(*mode) {
+ switch strings.ToLower(app.Mode) {
case "files":
cfg.Mode = packages.LoadFiles
case "imports":
@@ -130,16 +87,16 @@ func main() {
case "allsyntax":
cfg.Mode = packages.LoadAllSyntax
default:
- log.Fatalf("invalid mode: %s", *mode)
+ return tool.CommandLineErrorf("invalid mode: %s", app.Mode)
}
- lpkgs, err := packages.Load(cfg, flag.Args()...)
+ lpkgs, err := packages.Load(cfg, args...)
if err != nil {
- log.Fatal(err)
+ return err
}
// -deps: print dependencies too.
- if *depsFlag {
+ if app.Deps {
// We can't use packages.All because
// we need an ordered traversal.
var all []*packages.Package // postorder
@@ -169,12 +126,13 @@ func main() {
}
for _, lpkg := range lpkgs {
- print(lpkg)
+ app.print(lpkg)
}
+ return nil
}
-func print(lpkg *packages.Package) {
- if *printJSON {
+func (app *application) print(lpkg *packages.Package) {
+ if app.PrintJSON {
data, _ := json.MarshalIndent(lpkg, "", "\t")
os.Stdout.Write(data)
return
@@ -237,14 +195,14 @@ func print(lpkg *packages.Package) {
scope := lpkg.Types.Scope()
for _, name := range scope.Names() {
obj := scope.Lookup(name)
- if !obj.Exported() && !*private {
+ if !obj.Exported() && !app.Private {
continue // skip unexported names
}
fmt.Printf("\t%s\n", types.ObjectString(obj, qual))
if _, ok := obj.(*types.TypeName); ok {
for _, meth := range typeutil.IntuitiveMethodSet(obj.Type(), nil) {
- if !meth.Obj().Exported() && !*private {
+ if !meth.Obj().Exported() && !app.Private {
continue // skip unexported names
}
fmt.Printf("\t%s\n", types.SelectionString(meth, qual))
diff --git a/vendor/golang.org/x/tools/go/packages/packages.go b/vendor/golang.org/x/tools/go/packages/packages.go
index 15927f1d38..1e5836c9e9 100644
--- a/vendor/golang.org/x/tools/go/packages/packages.go
+++ b/vendor/golang.org/x/tools/go/packages/packages.go
@@ -19,6 +19,7 @@ import (
"log"
"os"
"path/filepath"
+ "strings"
"sync"
"golang.org/x/tools/go/gcexportdata"
@@ -52,7 +53,7 @@ const (
// LoadAllSyntax adds typed syntax trees for the packages matching the patterns
// and all dependencies.
- // Package fields added: Types, Fset, Illtyped, Syntax, and TypesInfo,
+ // Package fields added: Types, Fset, IllTyped, Syntax, and TypesInfo,
// for all packages in the import graph.
LoadAllSyntax
)
@@ -250,6 +251,9 @@ type Package struct {
// TypesInfo provides type information about the package's syntax trees.
// It is set only when Syntax is set.
TypesInfo *types.Info
+
+ // TypesSizes provides the effective size function for types in TypesInfo.
+ TypesSizes types.Sizes
}
// An Error describes a problem with a package's metadata, syntax, or types.
@@ -582,6 +586,7 @@ func (ld *loader) loadPackage(lpkg *loaderPackage) {
lpkg.Fset = ld.Fset
lpkg.Syntax = []*ast.File{}
lpkg.TypesInfo = new(types.Info)
+ lpkg.TypesSizes = ld.sizes
return
}
@@ -669,6 +674,7 @@ func (ld *loader) loadPackage(lpkg *loaderPackage) {
Scopes: make(map[ast.Node]*types.Scope),
Selections: make(map[*ast.SelectorExpr]*types.Selection),
}
+ lpkg.TypesSizes = ld.sizes
importer := importerFunc(func(path string) (*types.Package, error) {
if path == "unsafe" {
@@ -768,6 +774,11 @@ func (ld *loader) parseFiles(filenames []string) ([]*ast.File, []error) {
parsed := make([]*ast.File, n)
errors := make([]error, n)
for i, file := range filenames {
+ if ld.Config.Context.Err() != nil {
+ parsed[i] = nil
+ errors[i] = ld.Config.Context.Err()
+ continue
+ }
wg.Add(1)
go func(i int, filename string) {
ioLimit <- true // wait
@@ -828,7 +839,7 @@ func sameFile(x, y string) bool {
// overlay case implies x==y.)
return true
}
- if filepath.Base(x) == filepath.Base(y) { // (optimisation)
+ if strings.EqualFold(filepath.Base(x), filepath.Base(y)) { // (optimisation)
if xi, err := os.Stat(x); err == nil {
if yi, err := os.Stat(y); err == nil {
return os.SameFile(xi, yi)
diff --git a/vendor/golang.org/x/tools/go/packages/packagestest/expect.go b/vendor/golang.org/x/tools/go/packages/packagestest/expect.go
index 077c30512e..d431cea7c9 100644
--- a/vendor/golang.org/x/tools/go/packages/packagestest/expect.go
+++ b/vendor/golang.org/x/tools/go/packages/packagestest/expect.go
@@ -236,6 +236,9 @@ func (e *Exported) buildConverter(pt reflect.Type) (converter, error) {
}, nil
case pt == identifierType:
return func(n *expect.Note, args []interface{}) (reflect.Value, []interface{}, error) {
+ if len(args) < 1 {
+ return reflect.Value{}, nil, fmt.Errorf("missing argument")
+ }
arg := args[0]
args = args[1:]
switch arg := arg.(type) {
@@ -248,6 +251,9 @@ func (e *Exported) buildConverter(pt reflect.Type) (converter, error) {
case pt == regexType:
return func(n *expect.Note, args []interface{}) (reflect.Value, []interface{}, error) {
+ if len(args) < 1 {
+ return reflect.Value{}, nil, fmt.Errorf("missing argument")
+ }
arg := args[0]
args = args[1:]
if _, ok := arg.(*regexp.Regexp); !ok {
@@ -258,6 +264,9 @@ func (e *Exported) buildConverter(pt reflect.Type) (converter, error) {
case pt.Kind() == reflect.String:
return func(n *expect.Note, args []interface{}) (reflect.Value, []interface{}, error) {
+ if len(args) < 1 {
+ return reflect.Value{}, nil, fmt.Errorf("missing argument")
+ }
arg := args[0]
args = args[1:]
switch arg := arg.(type) {
@@ -271,6 +280,9 @@ func (e *Exported) buildConverter(pt reflect.Type) (converter, error) {
}, nil
case pt.Kind() == reflect.Int64:
return func(n *expect.Note, args []interface{}) (reflect.Value, []interface{}, error) {
+ if len(args) < 1 {
+ return reflect.Value{}, nil, fmt.Errorf("missing argument")
+ }
arg := args[0]
args = args[1:]
switch arg := arg.(type) {
@@ -282,6 +294,9 @@ func (e *Exported) buildConverter(pt reflect.Type) (converter, error) {
}, nil
case pt.Kind() == reflect.Bool:
return func(n *expect.Note, args []interface{}) (reflect.Value, []interface{}, error) {
+ if len(args) < 1 {
+ return reflect.Value{}, nil, fmt.Errorf("missing argument")
+ }
arg := args[0]
args = args[1:]
b, ok := arg.(bool)
@@ -310,6 +325,9 @@ func (e *Exported) buildConverter(pt reflect.Type) (converter, error) {
default:
if pt.Kind() == reflect.Interface && pt.NumMethod() == 0 {
return func(n *expect.Note, args []interface{}) (reflect.Value, []interface{}, error) {
+ if len(args) < 1 {
+ return reflect.Value{}, nil, fmt.Errorf("missing argument")
+ }
return reflect.ValueOf(args[0]), args[1:], nil
}, nil
}
diff --git a/vendor/golang.org/x/tools/go/packages/packagestest/export.go b/vendor/golang.org/x/tools/go/packages/packagestest/export.go
index 14a0ac15f7..ea478a37b9 100644
--- a/vendor/golang.org/x/tools/go/packages/packagestest/export.go
+++ b/vendor/golang.org/x/tools/go/packages/packagestest/export.go
@@ -136,6 +136,8 @@ func Export(t testing.TB, exporter Exporter, modules []Module) *Exported {
Dir: temp,
Env: append(os.Environ(), "GOPACKAGESDRIVER=off"),
Overlay: make(map[string][]byte),
+ Tests: true,
+ Mode: packages.LoadImports,
},
Modules: modules,
temp: temp,
@@ -277,6 +279,16 @@ func (e *Exported) Cleanup() {
log.Printf("Skipping cleanup of temp dir: %s", e.temp)
return
}
+ // Make everything read-write so that the Module exporter's module cache can be deleted.
+ filepath.Walk(e.temp, func(path string, info os.FileInfo, err error) error {
+ if err != nil {
+ return nil
+ }
+ if info.IsDir() {
+ os.Chmod(path, 0777)
+ }
+ return nil
+ })
os.RemoveAll(e.temp) // ignore errors
e.temp = ""
}
diff --git a/vendor/golang.org/x/tools/go/packages/packagestest/modules.go b/vendor/golang.org/x/tools/go/packages/packagestest/modules.go
index 58137bc6b0..0bcdbf5c84 100644
--- a/vendor/golang.org/x/tools/go/packages/packagestest/modules.go
+++ b/vendor/golang.org/x/tools/go/packages/packagestest/modules.go
@@ -170,6 +170,9 @@ func writeModuleProxy(dir, module string, files map[string]string) error {
if err := z.Close(); err != nil {
return err
}
+ if err := f.Close(); err != nil {
+ return err
+ }
return nil
}
diff --git a/vendor/golang.org/x/tools/go/vcs/vcs.go b/vendor/golang.org/x/tools/go/vcs/vcs.go
index 0451e97b08..6e58ac7491 100644
--- a/vendor/golang.org/x/tools/go/vcs/vcs.go
+++ b/vendor/golang.org/x/tools/go/vcs/vcs.go
@@ -648,15 +648,6 @@ func expand(match map[string]string, s string) string {
// vcsPaths lists the known vcs paths.
var vcsPaths = []*vcsPath{
- // go.googlesource.com
- {
- prefix: "go.googlesource.com",
- re: `^(?Pgo\.googlesource\.com/[A-Za-z0-9_.\-]+/?)$`,
- vcs: "git",
- repo: "https://{root}",
- check: noVCSSuffix,
- },
-
// Github
{
prefix: "github.com/",
diff --git a/vendor/golang.org/x/tools/godoc/dl/dl.go b/vendor/golang.org/x/tools/godoc/dl/dl.go
deleted file mode 100644
index 41c0f32821..0000000000
--- a/vendor/golang.org/x/tools/godoc/dl/dl.go
+++ /dev/null
@@ -1,352 +0,0 @@
-// Copyright 2015 The Go Authors. All rights reserved.
-// Use of this source code is governed by the Apache 2.0
-// license that can be found in the LICENSE file.
-
-// Package dl implements a simple downloads frontend server.
-//
-// It accepts HTTP POST requests to create a new download metadata entity, and
-// lists entities with sorting and filtering.
-// It is designed to run only on the instance of godoc that serves golang.org.
-package dl
-
-import (
- "fmt"
- "html/template"
- "regexp"
- "sort"
- "strconv"
- "strings"
- "time"
-)
-
-const (
- downloadBaseURL = "https://dl.google.com/go/"
- cacheKey = "download_list_3" // increment if listTemplateData changes
- cacheDuration = time.Hour
-)
-
-// File represents a file on the golang.org downloads page.
-// It should be kept in sync with the upload code in x/build/cmd/release.
-type File struct {
- Filename string `json:"filename"`
- OS string `json:"os"`
- Arch string `json:"arch"`
- Version string `json:"version"`
- Checksum string `json:"-" datastore:",noindex"` // SHA1; deprecated
- ChecksumSHA256 string `json:"sha256" datastore:",noindex"`
- Size int64 `json:"size" datastore:",noindex"`
- Kind string `json:"kind"` // "archive", "installer", "source"
- Uploaded time.Time `json:"-"`
-}
-
-func (f File) ChecksumType() string {
- if f.ChecksumSHA256 != "" {
- return "SHA256"
- }
- return "SHA1"
-}
-
-func (f File) PrettyChecksum() string {
- if f.ChecksumSHA256 != "" {
- return f.ChecksumSHA256
- }
- return f.Checksum
-}
-
-func (f File) PrettyOS() string {
- if f.OS == "darwin" {
- switch {
- case strings.Contains(f.Filename, "osx10.8"):
- return "OS X 10.8+"
- case strings.Contains(f.Filename, "osx10.6"):
- return "OS X 10.6+"
- }
- }
- return pretty(f.OS)
-}
-
-func (f File) PrettySize() string {
- const mb = 1 << 20
- if f.Size == 0 {
- return ""
- }
- if f.Size < mb {
- // All Go releases are >1mb, but handle this case anyway.
- return fmt.Sprintf("%v bytes", f.Size)
- }
- return fmt.Sprintf("%.0fMB", float64(f.Size)/mb)
-}
-
-var primaryPorts = map[string]bool{
- "darwin/amd64": true,
- "linux/386": true,
- "linux/amd64": true,
- "linux/armv6l": true,
- "windows/386": true,
- "windows/amd64": true,
-}
-
-func (f File) PrimaryPort() bool {
- if f.Kind == "source" {
- return true
- }
- return primaryPorts[f.OS+"/"+f.Arch]
-}
-
-func (f File) Highlight() bool {
- switch {
- case f.Kind == "source":
- return true
- case f.Arch == "amd64" && f.OS == "linux":
- return true
- case f.Arch == "amd64" && f.Kind == "installer":
- switch f.OS {
- case "windows":
- return true
- case "darwin":
- if !strings.Contains(f.Filename, "osx10.6") {
- return true
- }
- }
- }
- return false
-}
-
-func (f File) URL() string {
- return downloadBaseURL + f.Filename
-}
-
-type Release struct {
- Version string `json:"version"`
- Stable bool `json:"stable"`
- Files []File `json:"files"`
- Visible bool `json:"-"` // show files on page load
- SplitPortTable bool `json:"-"` // whether files should be split by primary/other ports.
-}
-
-type Feature struct {
- // The File field will be filled in by the first stable File
- // whose name matches the given fileRE.
- File
- fileRE *regexp.Regexp
-
- Platform string // "Microsoft Windows", "Apple macOS", "Linux"
- Requirements string // "Windows XP and above, 64-bit Intel Processor"
-}
-
-// featuredFiles lists the platforms and files to be featured
-// at the top of the downloads page.
-var featuredFiles = []Feature{
- {
- Platform: "Microsoft Windows",
- Requirements: "Windows 7 or later, Intel 64-bit processor",
- fileRE: regexp.MustCompile(`\.windows-amd64\.msi$`),
- },
- {
- Platform: "Apple macOS",
- Requirements: "macOS 10.10 or later, Intel 64-bit processor",
- fileRE: regexp.MustCompile(`\.darwin-amd64(-osx10\.8)?\.pkg$`),
- },
- {
- Platform: "Linux",
- Requirements: "Linux 2.6.23 or later, Intel 64-bit processor",
- fileRE: regexp.MustCompile(`\.linux-amd64\.tar\.gz$`),
- },
- {
- Platform: "Source",
- fileRE: regexp.MustCompile(`\.src\.tar\.gz$`),
- },
-}
-
-// data to send to the template; increment cacheKey if you change this.
-type listTemplateData struct {
- Featured []Feature
- Stable, Unstable, Archive []Release
-}
-
-var (
- listTemplate = template.Must(template.New("").Funcs(templateFuncs).Parse(templateHTML))
- templateFuncs = template.FuncMap{"pretty": pretty}
-)
-
-func filesToFeatured(fs []File) (featured []Feature) {
- for _, feature := range featuredFiles {
- for _, file := range fs {
- if feature.fileRE.MatchString(file.Filename) {
- feature.File = file
- featured = append(featured, feature)
- break
- }
- }
- }
- return
-}
-
-func filesToReleases(fs []File) (stable, unstable, archive []Release) {
- sort.Sort(fileOrder(fs))
-
- var r *Release
- var stableMaj, stableMin int
- add := func() {
- if r == nil {
- return
- }
- if !r.Stable {
- if len(unstable) != 0 {
- // Only show one (latest) unstable version.
- return
- }
- maj, min, _ := parseVersion(r.Version)
- if maj < stableMaj || maj == stableMaj && min <= stableMin {
- // Display unstable version only if newer than the
- // latest stable release.
- return
- }
- unstable = append(unstable, *r)
- }
-
- // Reports whether the release is the most recent minor version of the
- // two most recent major versions.
- shouldAddStable := func() bool {
- if len(stable) >= 2 {
- // Show up to two stable versions.
- return false
- }
- if len(stable) == 0 {
- // Most recent stable version.
- stableMaj, stableMin, _ = parseVersion(r.Version)
- return true
- }
- if maj, _, _ := parseVersion(r.Version); maj == stableMaj {
- // Older minor version of most recent major version.
- return false
- }
- // Second most recent stable version.
- return true
- }
- if !shouldAddStable() {
- archive = append(archive, *r)
- return
- }
-
- // Split the file list into primary/other ports for the stable releases.
- // NOTE(cbro): This is only done for stable releases because maintaining the historical
- // nature of primary/other ports for older versions is infeasible.
- // If freebsd is considered primary some time in the future, we'd not want to
- // mark all of the older freebsd binaries as "primary".
- // It might be better if we set that as a flag when uploading.
- r.SplitPortTable = true
- r.Visible = true // Toggle open all stable releases.
- stable = append(stable, *r)
- }
- for _, f := range fs {
- if r == nil || f.Version != r.Version {
- add()
- r = &Release{
- Version: f.Version,
- Stable: isStable(f.Version),
- }
- }
- r.Files = append(r.Files, f)
- }
- add()
- return
-}
-
-// isStable reports whether the version string v is a stable version.
-func isStable(v string) bool {
- return !strings.Contains(v, "beta") && !strings.Contains(v, "rc")
-}
-
-type fileOrder []File
-
-func (s fileOrder) Len() int { return len(s) }
-func (s fileOrder) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
-func (s fileOrder) Less(i, j int) bool {
- a, b := s[i], s[j]
- if av, bv := a.Version, b.Version; av != bv {
- return versionLess(av, bv)
- }
- if a.OS != b.OS {
- return a.OS < b.OS
- }
- if a.Arch != b.Arch {
- return a.Arch < b.Arch
- }
- if a.Kind != b.Kind {
- return a.Kind < b.Kind
- }
- return a.Filename < b.Filename
-}
-
-func versionLess(a, b string) bool {
- // Put stable releases first.
- if isStable(a) != isStable(b) {
- return isStable(a)
- }
- maja, mina, ta := parseVersion(a)
- majb, minb, tb := parseVersion(b)
- if maja == majb {
- if mina == minb {
- return ta >= tb
- }
- return mina >= minb
- }
- return maja >= majb
-}
-
-func parseVersion(v string) (maj, min int, tail string) {
- if i := strings.Index(v, "beta"); i > 0 {
- tail = v[i:]
- v = v[:i]
- }
- if i := strings.Index(v, "rc"); i > 0 {
- tail = v[i:]
- v = v[:i]
- }
- p := strings.Split(strings.TrimPrefix(v, "go1."), ".")
- maj, _ = strconv.Atoi(p[0])
- if len(p) < 2 {
- return
- }
- min, _ = strconv.Atoi(p[1])
- return
-}
-
-func validUser(user string) bool {
- switch user {
- case "adg", "bradfitz", "cbro", "andybons", "valsorda", "dmitshur", "katiehockman":
- return true
- }
- return false
-}
-
-var (
- fileRe = regexp.MustCompile(`^go[0-9a-z.]+\.[0-9a-z.-]+\.(tar\.gz|pkg|msi|zip)$`)
- goGetRe = regexp.MustCompile(`^go[0-9a-z.]+\.[0-9a-z.-]+$`)
-)
-
-// pretty returns a human-readable version of the given OS, Arch, or Kind.
-func pretty(s string) string {
- t, ok := prettyStrings[s]
- if !ok {
- return s
- }
- return t
-}
-
-var prettyStrings = map[string]string{
- "darwin": "macOS",
- "freebsd": "FreeBSD",
- "linux": "Linux",
- "windows": "Windows",
-
- "386": "x86",
- "amd64": "x86-64",
- "armv6l": "ARMv6",
- "arm64": "ARMv8",
-
- "archive": "Archive",
- "installer": "Installer",
- "source": "Source",
-}
diff --git a/vendor/golang.org/x/tools/godoc/dl/server.go b/vendor/golang.org/x/tools/godoc/dl/server.go
deleted file mode 100644
index 43fa45331d..0000000000
--- a/vendor/golang.org/x/tools/godoc/dl/server.go
+++ /dev/null
@@ -1,266 +0,0 @@
-// Copyright 2015 The Go Authors. All rights reserved.
-// Use of this source code is governed by the Apache 2.0
-// license that can be found in the LICENSE file.
-
-// +build golangorg
-
-package dl
-
-import (
- "context"
- "crypto/hmac"
- "crypto/md5"
- "encoding/json"
- "fmt"
- "html"
- "io"
- "log"
- "net/http"
- "strings"
- "sync"
- "time"
-
- "cloud.google.com/go/datastore"
- "golang.org/x/tools/godoc/env"
- "golang.org/x/tools/internal/memcache"
-)
-
-type server struct {
- datastore *datastore.Client
- memcache *memcache.CodecClient
-}
-
-func RegisterHandlers(mux *http.ServeMux, dc *datastore.Client, mc *memcache.Client) {
- s := server{dc, mc.WithCodec(memcache.Gob)}
- mux.HandleFunc("/dl", s.getHandler)
- mux.HandleFunc("/dl/", s.getHandler) // also serves listHandler
- mux.HandleFunc("/dl/upload", s.uploadHandler)
-
- // NOTE(cbro): this only needs to be run once per project,
- // and should be behind an admin login.
- // TODO(cbro): move into a locally-run program? or remove?
- // mux.HandleFunc("/dl/init", initHandler)
-}
-
-// rootKey is the ancestor of all File entities.
-var rootKey = datastore.NameKey("FileRoot", "root", nil)
-
-func (h server) listHandler(w http.ResponseWriter, r *http.Request) {
- if r.Method != "GET" {
- http.Error(w, "method not allowed", http.StatusMethodNotAllowed)
- return
- }
- ctx := r.Context()
- var d listTemplateData
-
- if err := h.memcache.Get(ctx, cacheKey, &d); err != nil {
- if err != memcache.ErrCacheMiss {
- log.Printf("ERROR cache get error: %v", err)
- // NOTE(cbro): continue to hit datastore if the memcache is down.
- }
-
- var fs []File
- q := datastore.NewQuery("File").Ancestor(rootKey)
- if _, err := h.datastore.GetAll(ctx, q, &fs); err != nil {
- log.Printf("ERROR error listing: %v", err)
- http.Error(w, "Could not get download page. Try again in a few minutes.", 500)
- return
- }
- d.Stable, d.Unstable, d.Archive = filesToReleases(fs)
- if len(d.Stable) > 0 {
- d.Featured = filesToFeatured(d.Stable[0].Files)
- }
-
- item := &memcache.Item{Key: cacheKey, Object: &d, Expiration: cacheDuration}
- if err := h.memcache.Set(ctx, item); err != nil {
- log.Printf("ERROR cache set error: %v", err)
- }
- }
-
- if r.URL.Query().Get("mode") == "json" {
- w.Header().Set("Content-Type", "application/json")
- enc := json.NewEncoder(w)
- enc.SetIndent("", " ")
- if err := enc.Encode(d.Stable); err != nil {
- log.Printf("ERROR rendering JSON for releases: %v", err)
- }
- return
- }
-
- if err := listTemplate.ExecuteTemplate(w, "root", d); err != nil {
- log.Printf("ERROR executing template: %v", err)
- }
-}
-
-func (h server) uploadHandler(w http.ResponseWriter, r *http.Request) {
- if r.Method != "POST" {
- http.Error(w, "method not allowed", http.StatusMethodNotAllowed)
- return
- }
- ctx := r.Context()
-
- // Authenticate using a user token (same as gomote).
- user := r.FormValue("user")
- if !validUser(user) {
- http.Error(w, "bad user", http.StatusForbidden)
- return
- }
- if r.FormValue("key") != h.userKey(ctx, user) {
- http.Error(w, "bad key", http.StatusForbidden)
- return
- }
-
- var f File
- defer r.Body.Close()
- if err := json.NewDecoder(r.Body).Decode(&f); err != nil {
- log.Printf("ERROR decoding upload JSON: %v", err)
- http.Error(w, "Something broke", http.StatusInternalServerError)
- return
- }
- if f.Filename == "" {
- http.Error(w, "Must provide Filename", http.StatusBadRequest)
- return
- }
- if f.Uploaded.IsZero() {
- f.Uploaded = time.Now()
- }
- k := datastore.NameKey("File", f.Filename, rootKey)
- if _, err := h.datastore.Put(ctx, k, &f); err != nil {
- log.Printf("ERROR File entity: %v", err)
- http.Error(w, "could not put File entity", http.StatusInternalServerError)
- return
- }
- if err := h.memcache.Delete(ctx, cacheKey); err != nil {
- log.Printf("ERROR delete error: %v", err)
- }
- io.WriteString(w, "OK")
-}
-
-func (h server) getHandler(w http.ResponseWriter, r *http.Request) {
- isGoGet := (r.Method == "GET" || r.Method == "HEAD") && r.FormValue("go-get") == "1"
- // For go get, we need to serve the same meta tags at /dl for cmd/go to
- // validate against the import path.
- if r.URL.Path == "/dl" && isGoGet {
- w.Header().Set("Content-Type", "text/html; charset=utf-8")
- fmt.Fprintf(w, `
-
-`)
- return
- }
- if r.URL.Path == "/dl" {
- http.Redirect(w, r, "/dl/", http.StatusFound)
- return
- }
-
- name := strings.TrimPrefix(r.URL.Path, "/dl/")
- var redirectURL string
- switch {
- case name == "":
- h.listHandler(w, r)
- return
- case fileRe.MatchString(name):
- http.Redirect(w, r, downloadBaseURL+name, http.StatusFound)
- return
- case name == "gotip":
- redirectURL = "https://godoc.org/golang.org/dl/gotip"
- case goGetRe.MatchString(name):
- redirectURL = "https://golang.org/dl/#" + name
- default:
- http.NotFound(w, r)
- return
- }
- w.Header().Set("Content-Type", "text/html; charset=utf-8")
- if !isGoGet {
- w.Header().Set("Location", redirectURL)
- }
- fmt.Fprintf(w, `
-
-
-
-
-
-
-Nothing to see here; move along .
-
-
-`, html.EscapeString(redirectURL), html.EscapeString(redirectURL))
-}
-
-func (h server) initHandler(w http.ResponseWriter, r *http.Request) {
- var fileRoot struct {
- Root string
- }
- ctx := r.Context()
- k := rootKey
- _, err := h.datastore.RunInTransaction(ctx, func(tx *datastore.Transaction) error {
- err := tx.Get(k, &fileRoot)
- if err != nil && err != datastore.ErrNoSuchEntity {
- return err
- }
- _, err = tx.Put(k, &fileRoot)
- return err
- }, nil)
- if err != nil {
- http.Error(w, err.Error(), 500)
- return
- }
- io.WriteString(w, "OK")
-}
-
-func (h server) userKey(c context.Context, user string) string {
- hash := hmac.New(md5.New, []byte(h.secret(c)))
- hash.Write([]byte("user-" + user))
- return fmt.Sprintf("%x", hash.Sum(nil))
-}
-
-// Code below copied from x/build/app/key
-
-var theKey struct {
- sync.RWMutex
- builderKey
-}
-
-type builderKey struct {
- Secret string
-}
-
-func (k *builderKey) Key() *datastore.Key {
- return datastore.NameKey("BuilderKey", "root", nil)
-}
-
-func (h server) secret(ctx context.Context) string {
- // check with rlock
- theKey.RLock()
- k := theKey.Secret
- theKey.RUnlock()
- if k != "" {
- return k
- }
-
- // prepare to fill; check with lock and keep lock
- theKey.Lock()
- defer theKey.Unlock()
- if theKey.Secret != "" {
- return theKey.Secret
- }
-
- // fill
- if err := h.datastore.Get(ctx, theKey.Key(), &theKey.builderKey); err != nil {
- if err == datastore.ErrNoSuchEntity {
- // If the key is not stored in datastore, write it.
- // This only happens at the beginning of a new deployment.
- // The code is left here for SDK use and in case a fresh
- // deployment is ever needed. "gophers rule" is not the
- // real key.
- if env.IsProd() {
- panic("lost key from datastore")
- }
- theKey.Secret = "gophers rule"
- h.datastore.Put(ctx, theKey.Key(), &theKey.builderKey)
- return theKey.Secret
- }
- panic("cannot load builder key: " + err.Error())
- }
-
- return theKey.Secret
-}
diff --git a/vendor/golang.org/x/tools/godoc/dl/tmpl.go b/vendor/golang.org/x/tools/godoc/dl/tmpl.go
deleted file mode 100644
index d086b696c4..0000000000
--- a/vendor/golang.org/x/tools/godoc/dl/tmpl.go
+++ /dev/null
@@ -1,277 +0,0 @@
-// Copyright 2015 The Go Authors. All rights reserved.
-// Use of this source code is governed by the Apache 2.0
-// license that can be found in the LICENSE file.
-
-package dl
-
-// TODO(adg): refactor this to use the tools/godoc/static template.
-
-const templateHTML = `
-{{define "root"}}
-
-
-
-
- Downloads - The Go Programming Language
-
-
-
-
-
-
-
-
-
-
-
-
Downloads
-
-
-After downloading a binary release suitable for your system,
-please follow the installation instructions .
-
-
-
-If you are building from source,
-follow the source installation instructions .
-
-
-
-See the release history for more
-information about Go releases.
-
-
-{{with .Featured}}
-
Featured downloads
-{{range .}}
-{{template "download" .}}
-{{end}}
-{{end}}
-
-
-
-{{with .Stable}}
-
Stable versions
-{{template "releases" .}}
-{{end}}
-
-{{with .Unstable}}
-
Unstable version
-{{template "releases" .}}
-{{end}}
-
-{{with .Archive}}
-
-
-
-
-
-
- {{template "releases" .}}
-
-
-{{end}}
-
-
-
-
-
-
-
-
-
-
-
-{{end}}
-
-{{define "releases"}}
-{{range .}}
-
-
-
-
-
-
- {{if .Stable}}{{else}}
-
This is an unstable version of Go. Use with caution.
-
If you already have Go installed, you can install this version by running:
-
-go get golang.org/dl/{{.Version}}
-
-
Then, use the {{.Version}}
command instead of the go
command to use {{.Version}}.
- {{end}}
- {{template "files" .}}
-
-
-{{end}}
-{{end}}
-
-{{define "files"}}
-
-
-
- File name
- Kind
- OS
- Arch
- Size
- {{/* Use the checksum type of the first file for the column heading. */}}
- {{(index .Files 0).ChecksumType}} Checksum
-
-
-{{if .SplitPortTable}}
- {{range .Files}}{{if .PrimaryPort}}{{template "file" .}}{{end}}{{end}}
-
- {{/* TODO(cbro): add a link to an explanatory doc page */}}
- Other Ports
- {{range .Files}}{{if not .PrimaryPort}}{{template "file" .}}{{end}}{{end}}
-{{else}}
- {{range .Files}}{{template "file" .}}{{end}}
-{{end}}
-
-{{end}}
-
-{{define "file"}}
-
- {{.Filename}}
- {{pretty .Kind}}
- {{.PrettyOS}}
- {{pretty .Arch}}
- {{.PrettySize}}
- {{.PrettyChecksum}}
-
-{{end}}
-
-{{define "download"}}
-
-{{.Platform}}
-{{with .Requirements}}{{.}}
{{end}}
-
- {{.Filename}}
- {{if .Size}}({{.PrettySize}}) {{end}}
-
-
-{{end}}
-`
diff --git a/vendor/golang.org/x/tools/godoc/format.go b/vendor/golang.org/x/tools/godoc/format.go
index 6013238feb..3e8c8673a4 100644
--- a/vendor/golang.org/x/tools/godoc/format.go
+++ b/vendor/golang.org/x/tools/godoc/format.go
@@ -359,7 +359,7 @@ func FormatText(w io.Writer, text []byte, line int, goSource bool, pattern strin
if line >= 0 {
lineTag = func(w io.Writer, _ int, start bool) {
if start {
- fmt.Fprintf(w, "%6d \t", line, line)
+ fmt.Fprintf(w, "%6d ", line, line)
line++
}
}
diff --git a/vendor/golang.org/x/tools/godoc/godoc.go b/vendor/golang.org/x/tools/godoc/godoc.go
index 86575f60f7..0681a5adb7 100644
--- a/vendor/golang.org/x/tools/godoc/godoc.go
+++ b/vendor/golang.org/x/tools/godoc/godoc.go
@@ -33,7 +33,9 @@ import (
)
// Fake relative package path for built-ins. Documentation for all globals
-// (not just exported ones) will be shown for packages in this directory.
+// (not just exported ones) will be shown for packages in this directory,
+// and there will be no association of consts, vars, and factory functions
+// with types (see issue 6645).
const builtinPkgPath = "builtin"
// FuncMap defines template functions used in godoc templates.
diff --git a/vendor/golang.org/x/tools/godoc/pres.go b/vendor/golang.org/x/tools/godoc/pres.go
index 800937af48..7cedcb54e1 100644
--- a/vendor/golang.org/x/tools/godoc/pres.go
+++ b/vendor/golang.org/x/tools/godoc/pres.go
@@ -47,13 +47,6 @@ type Presentation struct {
ShowPlayground bool
DeclLinks bool
- // SrcMode outputs source code instead of documentation in command-line mode.
- SrcMode bool
- // HTMLMode outputs HTML instead of plain text in command-line mode.
- HTMLMode bool
- // AllMode includes unexported identifiers in the output in command-line mode.
- AllMode bool
-
// NotesRx optionally specifies a regexp to match
// notes to render in the output.
NotesRx *regexp.Regexp
diff --git a/vendor/golang.org/x/tools/godoc/proxy/proxy.go b/vendor/golang.org/x/tools/godoc/proxy/proxy.go
deleted file mode 100644
index bb0e81c3c4..0000000000
--- a/vendor/golang.org/x/tools/godoc/proxy/proxy.go
+++ /dev/null
@@ -1,170 +0,0 @@
-// Copyright 2015 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package proxy proxies requests to the playground's compile and share handlers.
-// It is designed to run only on the instance of godoc that serves golang.org.
-package proxy
-
-import (
- "bytes"
- "context"
- "encoding/json"
- "fmt"
- "io"
- "io/ioutil"
- "log"
- "net/http"
- "strings"
- "time"
-
- "golang.org/x/tools/godoc/env"
-)
-
-const playgroundURL = "https://play.golang.org"
-
-type Request struct {
- Body string
-}
-
-type Response struct {
- Errors string
- Events []Event
-}
-
-type Event struct {
- Message string
- Kind string // "stdout" or "stderr"
- Delay time.Duration // time to wait before printing Message
-}
-
-const expires = 7 * 24 * time.Hour // 1 week
-var cacheControlHeader = fmt.Sprintf("public, max-age=%d", int(expires.Seconds()))
-
-func RegisterHandlers(mux *http.ServeMux) {
- mux.HandleFunc("/compile", compile)
- mux.HandleFunc("/share", share)
-}
-
-func compile(w http.ResponseWriter, r *http.Request) {
- if r.Method != "POST" {
- http.Error(w, "I only answer to POST requests.", http.StatusMethodNotAllowed)
- return
- }
-
- ctx := r.Context()
-
- body := r.FormValue("body")
- res := &Response{}
- req := &Request{Body: body}
- if err := makeCompileRequest(ctx, req, res); err != nil {
- log.Printf("ERROR compile error: %v", err)
- http.Error(w, "Internal Server Error", http.StatusInternalServerError)
- return
- }
-
- var out interface{}
- switch r.FormValue("version") {
- case "2":
- out = res
- default: // "1"
- out = struct {
- CompileErrors string `json:"compile_errors"`
- Output string `json:"output"`
- }{res.Errors, flatten(res.Events)}
- }
- b, err := json.Marshal(out)
- if err != nil {
- log.Printf("ERROR encoding response: %v", err)
- http.Error(w, "Internal Server Error", http.StatusInternalServerError)
- return
- }
-
- expiresTime := time.Now().Add(expires).UTC()
- w.Header().Set("Expires", expiresTime.Format(time.RFC1123))
- w.Header().Set("Cache-Control", cacheControlHeader)
- w.Write(b)
-}
-
-// makePlaygroundRequest sends the given Request to the playground compile
-// endpoint and stores the response in the given Response.
-func makeCompileRequest(ctx context.Context, req *Request, res *Response) error {
- reqJ, err := json.Marshal(req)
- if err != nil {
- return fmt.Errorf("marshalling request: %v", err)
- }
- hReq, _ := http.NewRequest("POST", playgroundURL+"/compile", bytes.NewReader(reqJ))
- hReq.Header.Set("Content-Type", "application/json")
- hReq = hReq.WithContext(ctx)
-
- r, err := http.DefaultClient.Do(hReq)
- if err != nil {
- return fmt.Errorf("making request: %v", err)
- }
- defer r.Body.Close()
-
- if r.StatusCode != http.StatusOK {
- b, _ := ioutil.ReadAll(r.Body)
- return fmt.Errorf("bad status: %v body:\n%s", r.Status, b)
- }
-
- if err := json.NewDecoder(r.Body).Decode(res); err != nil {
- return fmt.Errorf("unmarshalling response: %v", err)
- }
- return nil
-}
-
-// flatten takes a sequence of Events and returns their contents, concatenated.
-func flatten(seq []Event) string {
- var buf bytes.Buffer
- for _, e := range seq {
- buf.WriteString(e.Message)
- }
- return buf.String()
-}
-
-func share(w http.ResponseWriter, r *http.Request) {
- if googleCN(r) {
- http.Error(w, http.StatusText(http.StatusForbidden), http.StatusForbidden)
- return
- }
-
- // HACK(cbro): use a simple proxy rather than httputil.ReverseProxy because of Issue #28168.
- // TODO: investigate using ReverseProxy with a Director, unsetting whatever's necessary to make that work.
- req, _ := http.NewRequest("POST", playgroundURL+"/share", r.Body)
- req.Header.Set("Content-Type", r.Header.Get("Content-Type"))
- req = req.WithContext(r.Context())
- resp, err := http.DefaultClient.Do(req)
- if err != nil {
- log.Printf("ERROR share error: %v", err)
- http.Error(w, "Internal Server Error", http.StatusInternalServerError)
- return
- }
- copyHeader := func(k string) {
- if v := resp.Header.Get(k); v != "" {
- w.Header().Set(k, v)
- }
- }
- copyHeader("Content-Type")
- copyHeader("Content-Length")
- defer resp.Body.Close()
- w.WriteHeader(resp.StatusCode)
- io.Copy(w, resp.Body)
-}
-
-func googleCN(r *http.Request) bool {
- if r.FormValue("googlecn") != "" {
- return true
- }
- if !env.IsProd() {
- return false
- }
- if strings.HasSuffix(r.Host, ".cn") {
- return true
- }
- switch r.Header.Get("X-AppEngine-Country") {
- case "", "ZZ", "CN":
- return true
- }
- return false
-}
diff --git a/vendor/golang.org/x/tools/godoc/redirect/redirect.go b/vendor/golang.org/x/tools/godoc/redirect/redirect.go
index 8208518c18..b4599f6a0f 100644
--- a/vendor/golang.org/x/tools/godoc/redirect/redirect.go
+++ b/vendor/golang.org/x/tools/godoc/redirect/redirect.go
@@ -8,12 +8,18 @@
package redirect // import "golang.org/x/tools/godoc/redirect"
import (
+ "context"
"fmt"
+ "html/template"
"net/http"
"os"
"regexp"
"strconv"
"strings"
+ "sync"
+ "time"
+
+ "golang.org/x/net/context/ctxhttp"
)
// Register registers HTTP handlers that redirect old godoc paths to their new
@@ -193,11 +199,17 @@ func clHandler(w http.ResponseWriter, r *http.Request) {
target := ""
if n, err := strconv.Atoi(id); err == nil && isRietveldCL(n) {
- // TODO: Issue 28836: if this Rietveld CL happens to
+ // Issue 28836: if this Rietveld CL happens to
// also be a Gerrit CL, render a disambiguation HTML
- // page with two links instead. We'll need to make an
- // RPC (to maintner?) to figure that out. For now just
- // redirect to rietveld.
+ // page with two links instead. We need to make a
+ // Gerrit API call to figure that out, but we cache
+ // known Gerrit CLs so it's done at most once per CL.
+ if ok, err := isGerritCL(r.Context(), n); err == nil && ok {
+ w.Header().Set("Content-Type", "text/html; charset=utf-8")
+ clDisambiguationHTML.Execute(w, n)
+ return
+ }
+
target = "https://codereview.appspot.com/" + id
} else {
target = "https://go-review.googlesource.com/" + id
@@ -205,6 +217,64 @@ func clHandler(w http.ResponseWriter, r *http.Request) {
http.Redirect(w, r, target, http.StatusFound)
}
+var clDisambiguationHTML = template.Must(template.New("").Parse(`
+
+
+ Go CL {{.}} Disambiguation
+
+
+
+ CL number {{.}} exists in both Gerrit (the current code review system)
+ and Rietveld (the previous code review system). Please make a choice:
+
+
+
+`))
+
+// isGerritCL reports whether a Gerrit CL with the specified numeric change ID (e.g., "4247")
+// is known to exist by querying the Gerrit API at https://go-review.googlesource.com.
+// isGerritCL uses gerritCLCache as a cache of Gerrit CL IDs that exist.
+func isGerritCL(ctx context.Context, id int) (bool, error) {
+ // Check cache first.
+ gerritCLCache.Lock()
+ ok := gerritCLCache.exist[id]
+ gerritCLCache.Unlock()
+ if ok {
+ return true, nil
+ }
+
+ // Query the Gerrit API Get Change endpoint, as documented at
+ // https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#get-change.
+ ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
+ defer cancel()
+ resp, err := ctxhttp.Get(ctx, nil, fmt.Sprintf("https://go-review.googlesource.com/changes/%d", id))
+ if err != nil {
+ return false, err
+ }
+ resp.Body.Close()
+ switch resp.StatusCode {
+ case http.StatusOK:
+ // A Gerrit CL with this ID exists. Add it to cache.
+ gerritCLCache.Lock()
+ gerritCLCache.exist[id] = true
+ gerritCLCache.Unlock()
+ return true, nil
+ case http.StatusNotFound:
+ // A Gerrit CL with this ID doesn't exist. It may get created in the future.
+ return false, nil
+ default:
+ return false, fmt.Errorf("unexpected status code: %v", resp.Status)
+ }
+}
+
+var gerritCLCache = struct {
+ sync.Mutex
+ exist map[int]bool // exist is a set of Gerrit CL IDs that are known to exist.
+}{exist: make(map[int]bool)}
+
var changeMap *hashMap
// LoadChangeMap loads the specified map of Mercurial to Git revisions,
diff --git a/vendor/golang.org/x/tools/godoc/server.go b/vendor/golang.org/x/tools/godoc/server.go
index 57766a2161..693599b4dc 100644
--- a/vendor/golang.org/x/tools/godoc/server.go
+++ b/vendor/golang.org/x/tools/godoc/server.go
@@ -268,7 +268,10 @@ func (h *handlerServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
abspath := pathpkg.Join(h.fsRoot, relpath)
mode := h.p.GetPageInfoMode(r)
if relpath == builtinPkgPath {
- mode = NoFiltering | NoTypeAssoc
+ // The fake built-in package contains unexported identifiers,
+ // but we want to show them. Also, disable type association,
+ // since it's not helpful for this fake package (see issue 6645).
+ mode |= NoFiltering | NoTypeAssoc
}
info := h.GetPageInfo(abspath, relpath, mode, r.FormValue("GOOS"), r.FormValue("GOARCH"))
if info.Err != nil {
@@ -356,9 +359,8 @@ const (
NoFiltering PageInfoMode = 1 << iota // do not filter exports
AllMethods // show all embedded methods
ShowSource // show source code, do not extract documentation
- NoHTML // show result in textual form, do not generate HTML
FlatDir // show directory in a flat (non-indented) manner
- NoTypeAssoc // don't associate consts, vars, and factory functions with types
+ NoTypeAssoc // don't associate consts, vars, and factory functions with types (not exposed via ?m= query parameter, used for package builtin, see issue 6645)
)
// modeNames defines names for each PageInfoMode flag.
@@ -366,7 +368,6 @@ var modeNames = map[string]PageInfoMode{
"all": NoFiltering,
"methods": AllMethods,
"src": ShowSource,
- "text": NoHTML,
"flat": FlatDir,
}
diff --git a/vendor/golang.org/x/tools/godoc/short/short.go b/vendor/golang.org/x/tools/godoc/short/short.go
deleted file mode 100644
index 3a399ab9f0..0000000000
--- a/vendor/golang.org/x/tools/godoc/short/short.go
+++ /dev/null
@@ -1,186 +0,0 @@
-// Copyright 2015 The Go Authors. All rights reserved.
-// Use of this source code is governed by the Apache 2.0
-// license that can be found in the LICENSE file.
-
-// +build golangorg
-
-// Package short implements a simple URL shortener, serving an administrative
-// interface at /s and shortened urls from /s/key.
-// It is designed to run only on the instance of godoc that serves golang.org.
-package short
-
-// TODO(adg): collect statistics on URL visits
-
-import (
- "context"
- "errors"
- "fmt"
- "html/template"
- "io"
- "log"
- "net/http"
- "net/url"
- "regexp"
-
- "cloud.google.com/go/datastore"
- "golang.org/x/tools/internal/memcache"
- "google.golang.org/appengine/user"
-)
-
-const (
- prefix = "/s"
- kind = "Link"
- baseURL = "https://golang.org" + prefix
-)
-
-// Link represents a short link.
-type Link struct {
- Key, Target string
-}
-
-var validKey = regexp.MustCompile(`^[a-zA-Z0-9-_.]+$`)
-
-type server struct {
- datastore *datastore.Client
- memcache *memcache.CodecClient
-}
-
-func RegisterHandlers(mux *http.ServeMux, dc *datastore.Client, mc *memcache.Client) {
- s := server{dc, mc.WithCodec(memcache.JSON)}
- mux.HandleFunc(prefix+"/", s.linkHandler)
-
- // TODO(cbro): move storage of the links to a text file in Gerrit.
- // Disable the admin handler until that happens, since GAE Flex doesn't support
- // the "google.golang.org/appengine/user" package.
- // See golang.org/issue/27205#issuecomment-418673218
- // mux.HandleFunc(prefix, adminHandler)
- mux.HandleFunc(prefix, func(w http.ResponseWriter, r *http.Request) {
- w.WriteHeader(http.StatusForbidden)
- io.WriteString(w, "Link creation temporarily unavailable. See golang.org/issue/27205.")
- })
-}
-
-// linkHandler services requests to short URLs.
-// http://golang.org/s/key
-// It consults memcache and datastore for the Link for key.
-// It then sends a redirects or an error message.
-func (h server) linkHandler(w http.ResponseWriter, r *http.Request) {
- ctx := r.Context()
-
- key := r.URL.Path[len(prefix)+1:]
- if !validKey.MatchString(key) {
- http.Error(w, "not found", http.StatusNotFound)
- return
- }
-
- var link Link
- if err := h.memcache.Get(ctx, cacheKey(key), &link); err != nil {
- k := datastore.NameKey(kind, key, nil)
- err = h.datastore.Get(ctx, k, &link)
- switch err {
- case datastore.ErrNoSuchEntity:
- http.Error(w, "not found", http.StatusNotFound)
- return
- default: // != nil
- log.Printf("ERROR %q: %v", key, err)
- http.Error(w, "internal server error", http.StatusInternalServerError)
- return
- case nil:
- item := &memcache.Item{
- Key: cacheKey(key),
- Object: &link,
- }
- if err := h.memcache.Set(ctx, item); err != nil {
- log.Printf("WARNING %q: %v", key, err)
- }
- }
- }
-
- http.Redirect(w, r, link.Target, http.StatusFound)
-}
-
-var adminTemplate = template.Must(template.New("admin").Parse(templateHTML))
-
-// adminHandler serves an administrative interface.
-func (h server) adminHandler(w http.ResponseWriter, r *http.Request) {
- ctx := r.Context()
-
- if !user.IsAdmin(ctx) {
- http.Error(w, "forbidden", http.StatusForbidden)
- return
- }
-
- var newLink *Link
- var doErr error
- if r.Method == "POST" {
- key := r.FormValue("key")
- switch r.FormValue("do") {
- case "Add":
- newLink = &Link{key, r.FormValue("target")}
- doErr = h.putLink(ctx, newLink)
- case "Delete":
- k := datastore.NameKey(kind, key, nil)
- doErr = h.datastore.Delete(ctx, k)
- default:
- http.Error(w, "unknown action", http.StatusBadRequest)
- }
- err := h.memcache.Delete(ctx, cacheKey(key))
- if err != nil && err != memcache.ErrCacheMiss {
- log.Printf("WARNING %q: %v", key, err)
- }
- }
-
- var links []*Link
- q := datastore.NewQuery(kind).Order("Key")
- if _, err := h.datastore.GetAll(ctx, q, &links); err != nil {
- http.Error(w, err.Error(), http.StatusInternalServerError)
- log.Printf("ERROR %v", err)
- return
- }
-
- // Put the new link in the list if it's not there already.
- // (Eventual consistency means that it might not show up
- // immediately, which might be confusing for the user.)
- if newLink != nil && doErr == nil {
- found := false
- for i := range links {
- if links[i].Key == newLink.Key {
- found = true
- break
- }
- }
- if !found {
- links = append([]*Link{newLink}, links...)
- }
- newLink = nil
- }
-
- var data = struct {
- BaseURL string
- Prefix string
- Links []*Link
- New *Link
- Error error
- }{baseURL, prefix, links, newLink, doErr}
- if err := adminTemplate.Execute(w, &data); err != nil {
- log.Printf("ERROR adminTemplate: %v", err)
- }
-}
-
-// putLink validates the provided link and puts it into the datastore.
-func (h server) putLink(ctx context.Context, link *Link) error {
- if !validKey.MatchString(link.Key) {
- return errors.New("invalid key; must match " + validKey.String())
- }
- if _, err := url.Parse(link.Target); err != nil {
- return fmt.Errorf("bad target: %v", err)
- }
- k := datastore.NameKey(kind, link.Key, nil)
- _, err := h.datastore.Put(ctx, k, link)
- return err
-}
-
-// cacheKey returns a short URL key as a memcache key.
-func cacheKey(key string) string {
- return "link-" + key
-}
diff --git a/vendor/golang.org/x/tools/godoc/short/tmpl.go b/vendor/golang.org/x/tools/godoc/short/tmpl.go
deleted file mode 100644
index 66f5401eb8..0000000000
--- a/vendor/golang.org/x/tools/godoc/short/tmpl.go
+++ /dev/null
@@ -1,119 +0,0 @@
-// Copyright 2015 The Go Authors. All rights reserved.
-// Use of this source code is governed by the Apache 2.0
-// license that can be found in the LICENSE file.
-
-package short
-
-const templateHTML = `
-
-
-
-golang.org URL shortener
-
-
-
-
-
-
-
-
-
-
-
-`
diff --git a/vendor/golang.org/x/tools/godoc/static/static.go b/vendor/golang.org/x/tools/godoc/static/static.go
index 46a2fd763d..1dba28c3b0 100644
--- a/vendor/golang.org/x/tools/godoc/static/static.go
+++ b/vendor/golang.org/x/tools/godoc/static/static.go
@@ -1,4 +1,4 @@
-// Copyright 2018 The Go Authors. All rights reserved.
+// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
@@ -101,5 +101,5 @@ var Files = map[string]string{
"searchtxt.html": "\x0a{{$query_url\x20:=\x20urlquery\x20.Query}}\x0a{{with\x20.Textual}}\x0a\x09{{if\x20$.Complete}}\x0a\x09\x09{{html\x20$.Found}}\x20textual\x20occurrences \x0a\x09{{else}}\x0a\x09\x09More\x20than\x20{{html\x20$.Found}}\x20textual\x20occurrences \x0a\x09\x09\x0a\x09\x09Not\x20all\x20files\x20or\x20lines\x20containing\x20\"{{html\x20$.Query}}\"\x20are\x20shown. \x0a\x09\x09
\x0a\x09{{end}}\x0a\x09\x0a\x09
\x0a\x09{{range\x20.}}\x0a\x09\x09{{$file\x20:=\x20.Filename}}\x0a\x09\x09\x0a\x09\x09\x0a\x09\x09{{$file}} :\x0a\x09\x09 \x0a\x09\x09 \x0a\x09\x09{{len\x20.Lines}} \x0a\x09\x09 \x0a\x09\x09\x0a\x09\x09{{range\x20.Lines}}\x0a\x09\x09\x09{{html\x20.}} \x0a\x09\x09{{end}}\x0a\x09\x09{{if\x20not\x20$.Complete}}\x0a\x09\x09\x09...\x0a\x09\x09{{end}}\x0a\x09\x09 \x0a\x09\x09 \x0a\x09{{end}}\x0a\x09{{if\x20not\x20$.Complete}}\x0a\x09\x09... \x0a\x09{{end}}\x0a\x09
\x0a\x09
\x0a{{end}}\x0a",
- "style.css": "body\x20{\x0a\x09margin:\x200;\x0a\x09font-family:\x20Arial,\x20sans-serif;\x0a\x09background-color:\x20#fff;\x0a\x09line-height:\x201.3;\x0a\x09text-align:\x20center;\x0a\x09color:\x20#222;\x0a}\x0apre,\x0acode\x20{\x0a\x09font-family:\x20Menlo,\x20monospace;\x0a\x09font-size:\x200.875rem;\x0a}\x0apre\x20{\x0a\x09line-height:\x201.4;\x0a\x09overflow-x:\x20auto;\x0a}\x0apre\x20.comment\x20{\x0a\x09color:\x20#006600;\x0a}\x0apre\x20.highlight,\x0apre\x20.highlight-comment,\x0apre\x20.selection-highlight,\x0apre\x20.selection-highlight-comment\x20{\x0a\x09background:\x20#FFFF00;\x0a}\x0apre\x20.selection,\x0apre\x20.selection-comment\x20{\x0a\x09background:\x20#FF9632;\x0a}\x0apre\x20.ln\x20{\x0a\x09color:\x20#999;\x0a\x09background:\x20#efefef;\x0a}\x0a.ln\x20{\x0a\x09-webkit-user-select:\x20none;\x0a\x09-moz-user-select:\x20none;\x0a\x09-ms-user-select:\x20none;\x0a\x09user-select:\x20none;\x0a\x0a\x09/*\x20Ensure\x208\x20characters\x20in\x20the\x20document\x20-\x20which\x20due\x20to\x20floating\x0a\x20\x20\x20*\x20point\x20rendering\x20issues,\x20might\x20have\x20a\x20width\x20of\x20less\x20than\x201\x20each\x20-\x20are\x208\x0a\x20\x20\x20*\x20characters\x20wide,\x20so\x20a\x20tab\x20in\x20the\x209th\x20position\x20indents\x20properly.\x20See\x0a\x20\x20\x20*\x20https://github.com/webcompat/web-bugs/issues/17530#issuecomment-402675091\x0a\x20\x20\x20*\x20for\x20more\x20information.\x20*/\x0a\x09display:\x20inline-block;\x0a\x09width:\x208ch;\x0a}\x0a\x0a.search-nav{\x0a\x09margin-left:\x201.25rem;\x0a\x09font-size:\x200.875rem;\x0a\x09column-gap:\x201.25rem;\x0a\x09column-fill:\x20auto;\x0a\x09column-width:\x2014rem;\x0a}\x0a\x0a.search-nav\x20.indent\x20{\x0a\x09margin-left:\x201.25rem;\x0a}\x0a\x0aa,\x0a.exampleHeading\x20.text,\x0a.expandAll\x20{\x0a\x09color:\x20#375EAB;\x0a\x09text-decoration:\x20none;\x0a}\x0aa:hover,\x0a.exampleHeading\x20.text:hover,\x0a.expandAll:hover\x20{\x0a\x09text-decoration:\x20underline;\x0a}\x0a.article\x20a\x20{\x0a\x09text-decoration:\x20underline;\x0a}\x0a.article\x20.title\x20a\x20{\x0a\x09text-decoration:\x20none;\x0a}\x0a\x0a.permalink\x20{\x0a\x09display:\x20none;\x0a}\x0a:hover\x20>\x20.permalink\x20{\x0a\x09display:\x20inline;\x0a}\x0a\x0ap,\x20li\x20{\x0a\x09max-width:\x2050rem;\x0a\x09word-wrap:\x20break-word;\x0a}\x0ap,\x0apre,\x0aul,\x0aol\x20{\x0a\x09margin:\x201.25rem;\x0a}\x0apre\x20{\x0a\x09background:\x20#EFEFEF;\x0a\x09padding:\x200.625rem;\x0a\x09border-radius:\x200.3125rem;\x0a}\x0a\x0ah1,\x0ah2,\x0ah3,\x0ah4,\x0a.rootHeading\x20{\x0a\x09margin:\x201.25rem\x200\x201.25rem;\x0a\x09padding:\x200;\x0a\x09color:\x20#375EAB;\x0a\x09font-weight:\x20bold;\x0a}\x0ah1\x20{\x0a\x09font-size:\x201.75rem;\x0a\x09line-height:\x201;\x0a}\x0ah1\x20.text-muted\x20{\x0a\x09color:#777;\x0a}\x0ah2\x20{\x0a\x09font-size:\x201.25rem;\x0a\x09background:\x20#E0EBF5;\x0a\x09padding:\x200.5rem;\x0a\x09line-height:\x201.25;\x0a\x09font-weight:\x20normal;\x0a\x09overflow:\x20auto;\x0a\x09overflow-wrap:\x20break-word;\x0a}\x0ah2\x20a\x20{\x0a\x09font-weight:\x20bold;\x0a}\x0ah3\x20{\x0a\x09font-size:\x201.25rem;\x0a\x09line-height:\x201.25;\x0a\x09overflow:\x20auto;\x0a\x09overflow-wrap:\x20break-word;\x0a}\x0ah3,\x0ah4\x20{\x0a\x09margin:\x201.25rem\x200.3125rem;\x0a}\x0ah4\x20{\x0a\x09font-size:\x201rem;\x0a}\x0a.rootHeading\x20{\x0a\x09font-size:\x201.25rem;\x0a\x09margin:\x200;\x0a}\x0a\x0ah2\x20>\x20span,\x0ah3\x20>\x20span\x20{\x0a\x09float:\x20right;\x0a\x09margin:\x200\x2025px\x200\x200;\x0a\x09font-weight:\x20normal;\x0a\x09color:\x20#5279C7;\x0a}\x0a\x0adl\x20{\x0a\x09margin:\x201.25rem;\x0a}\x0add\x20{\x0a\x09margin:\x200\x200\x200\x201.25rem;\x0a}\x0adl,\x0add\x20{\x0a\x09font-size:\x200.875rem;\x0a}\x0adiv#nav\x20table\x20td\x20{\x0a\x09vertical-align:\x20top;\x0a}\x0a\x0a#pkg-index\x20h3\x20{\x0a\x09font-size:\x201rem;\x0a}\x0a.pkg-dir\x20{\x0a\x09padding:\x200\x200.625rem;\x0a}\x0a.pkg-dir\x20table\x20{\x0a\x09border-collapse:\x20collapse;\x0a\x09border-spacing:\x200;\x0a}\x0a.pkg-name\x20{\x0a\x09padding-right:\x200.625rem;\x0a}\x0a.alert\x20{\x0a\x09color:\x20#AA0000;\x0a}\x0a\x0a.top-heading\x20{\x0a\x09float:\x20left;\x0a\x09padding:\x201.313rem\x200;\x0a\x09font-size:\x201.25rem;\x0a\x09font-weight:\x20normal;\x0a}\x0a.top-heading\x20a\x20{\x0a\x09color:\x20#222;\x0a\x09text-decoration:\x20none;\x0a}\x0a\x0a#pkg-examples\x20h3\x20{\x0a\x09float:\x20left;\x0a}\x0a\x0a#pkg-examples\x20dl\x20{\x0a\x09clear:\x20both;\x0a}\x0a\x0a.expandAll\x20{\x0a\x09cursor:\x20pointer;\x0a\x09float:\x20left;\x0a\x09margin:\x201.25rem\x200;\x0a}\x0a\x0adiv#topbar\x20{\x0a\x09background:\x20#E0EBF5;\x0a\x09height:\x204rem;\x0a\x09overflow:\x20hidden;\x0a}\x0a\x0adiv#page\x20{\x0a\x09width:\x20100%;\x0a}\x0adiv#page\x20>\x20.container,\x0adiv#topbar\x20>\x20.container\x20{\x0a\x09text-align:\x20left;\x0a\x09margin-left:\x20auto;\x0a\x09margin-right:\x20auto;\x0a\x09padding:\x200\x201.25rem;\x0a}\x0adiv#topbar\x20>\x20.container,\x0adiv#page\x20>\x20.container\x20{\x0a\x09max-width:\x2059.38rem;\x0a}\x0adiv#page.wide\x20>\x20.container,\x0adiv#topbar.wide\x20>\x20.container\x20{\x0a\x09max-width:\x20none;\x0a}\x0adiv#plusone\x20{\x0a\x09float:\x20right;\x0a\x09clear:\x20right;\x0a\x09margin-top:\x200.3125rem;\x0a}\x0a\x0adiv#footer\x20{\x0a\x09text-align:\x20center;\x0a\x09color:\x20#666;\x0a\x09font-size:\x200.875rem;\x0a\x09margin:\x202.5rem\x200;\x0a}\x0a\x0adiv#menu\x20>\x20a,\x0ainput#search,\x0adiv#learn\x20.buttons\x20a,\x0adiv.play\x20.buttons\x20a,\x0adiv#blog\x20.read\x20a,\x0a#menu-button\x20{\x0a\x09padding:\x200.625rem;\x0a\x0a\x09text-decoration:\x20none;\x0a\x09font-size:\x201rem;\x0a\x09border-radius:\x200.3125rem;\x0a}\x0adiv#playground\x20.buttons\x20a,\x0adiv#menu\x20>\x20a,\x0ainput#search,\x0a#menu-button\x20{\x0a\x09border:\x200.0625rem\x20solid\x20#375EAB;\x0a}\x0adiv#playground\x20.buttons\x20a,\x0adiv#menu\x20>\x20a,\x0a#menu-button\x20{\x0a\x09color:\x20white;\x0a\x09background:\x20#375EAB;\x0a}\x0a#playgroundButton.active\x20{\x0a\x09background:\x20white;\x0a\x09color:\x20#375EAB;\x0a}\x0aa#start,\x0adiv#learn\x20.buttons\x20a,\x0adiv.play\x20.buttons\x20a,\x0adiv#blog\x20.read\x20a\x20{\x0a\x09color:\x20#222;\x0a\x09border:\x200.0625rem\x20solid\x20#375EAB;\x0a\x09background:\x20#E0EBF5;\x0a}\x0a.download\x20{\x0a\x09width:\x209.375rem;\x0a}\x0a\x0adiv#menu\x20{\x0a\x09text-align:\x20right;\x0a\x09padding:\x200.625rem;\x0a\x09white-space:\x20nowrap;\x0a\x09max-height:\x200;\x0a\x09-moz-transition:\x20max-height\x20.25s\x20linear;\x0a\x09transition:\x20max-height\x20.25s\x20linear;\x0a\x09width:\x20100%;\x0a}\x0adiv#menu.menu-visible\x20{\x0a\x09max-height:\x2031.25rem;\x0a}\x0adiv#menu\x20>\x20a,\x0a#menu-button\x20{\x0a\x09margin:\x200.625rem\x200.125rem;\x0a\x09padding:\x200.625rem;\x0a}\x0a::-webkit-input-placeholder\x20{\x0a\x09color:\x20#7f7f7f;\x0a\x09opacity:\x201;\x0a}\x0a::placeholder\x20{\x0a\x09color:\x20#7f7f7f;\x0a\x09opacity:\x201;\x0a}\x0a#menu\x20.search-box\x20{\x0a\x09display:\x20inline-flex;\x0a\x09width:\x208.75rem;\x0a}\x0ainput#search\x20{\x0a\x09background:\x20white;\x0a\x09color:\x20#222;\x0a\x09box-sizing:\x20border-box;\x0a\x09-webkit-appearance:\x20none;\x0a\x09border-top-right-radius:\x200;\x0a\x09border-bottom-right-radius:\x200;\x0a\x09border-right:\x200;\x0a\x09margin-right:\x200;\x0a\x09flex-grow:\x201;\x0a\x09max-width:\x20100%;\x0a\x09min-width:\x205.625rem;\x0a}\x0ainput#search:-webkit-search-decoration\x20{\x0a\x09-webkit-appearance:\x20none;\x0a}\x0ainput#search:-moz-ui-invalid\x20{\x0a\x09box-shadow:\x20unset;\x0a}\x0ainput#search\x20+\x20button\x20{\x0a\x09display:\x20inline;\x0a\x09font-size:\x201em;\x0a\x09background-color:\x20#375EAB;\x0a\x09color:\x20white;\x0a\x09border:\x200.0625rem\x20solid\x20#375EAB;\x0a\x09border-top-left-radius:\x200;\x0a\x09border-top-right-radius:\x200.3125rem;\x0a\x09border-bottom-left-radius:\x200;\x0a\x09border-bottom-right-radius:\x200.3125rem;\x0a\x09margin-left:\x200;\x0a\x09cursor:\x20pointer;\x0a}\x0ainput#search\x20+\x20button\x20span\x20{\x0a\x09display:\x20flex;\x0a}\x0ainput#search\x20+\x20button\x20svg\x20{\x0a\x09fill:\x20white\x0a}\x0a\x0a#menu-button\x20{\x0a\x09display:\x20none;\x0a\x09position:\x20absolute;\x0a\x09right:\x200.3125rem;\x0a\x09top:\x200;\x0a\x09margin-right:\x200.3125rem;\x0a}\x0a#menu-button-arrow\x20{\x0a\x09display:\x20inline-block;\x0a}\x0a.vertical-flip\x20{\x0a\x09transform:\x20rotate(-180deg);\x0a}\x0a\x0adiv.left\x20{\x0a\x09float:\x20left;\x0a\x09clear:\x20left;\x0a\x09margin-right:\x202.5%;\x0a}\x0adiv.right\x20{\x0a\x09float:\x20right;\x0a\x09clear:\x20right;\x0a\x09margin-left:\x202.5%;\x0a}\x0adiv.left,\x0adiv.right\x20{\x0a\x09width:\x2045%;\x0a}\x0a\x0adiv#learn,\x0adiv#about\x20{\x0a\x09padding-top:\x201.25rem;\x0a}\x0adiv#learn\x20h2,\x0adiv#about\x20{\x0a\x09margin:\x200;\x0a}\x0adiv#about\x20{\x0a\x09font-size:\x201.25rem;\x0a\x09margin:\x200\x20auto\x201.875rem;\x0a}\x0adiv#gopher\x20{\x0a\x09background:\x20url(/doc/gopher/frontpage.png)\x20no-repeat;\x0a\x09background-position:\x20center\x20top;\x0a\x09height:\x209.688rem;\x0a\x09max-height:\x20200px;\x20/*\x20Setting\x20in\x20px\x20to\x20prevent\x20the\x20gopher\x20from\x20blowing\x20up\x20in\x20very\x20high\x20default\x20font-sizes\x20*/\x0a}\x0aa#start\x20{\x0a\x09display:\x20block;\x0a\x09padding:\x200.625rem;\x0a\x0a\x09text-align:\x20center;\x0a\x09text-decoration:\x20none;\x0a\x09border-radius:\x200.3125rem;\x0a}\x0aa#start\x20.big\x20{\x0a\x09display:\x20block;\x0a\x09font-weight:\x20bold;\x0a\x09font-size:\x201.25rem;\x0a}\x0aa#start\x20.desc\x20{\x0a\x09display:\x20block;\x0a\x09font-size:\x200.875rem;\x0a\x09font-weight:\x20normal;\x0a\x09margin-top:\x200.3125rem;\x0a}\x0a\x0adiv#learn\x20.popout\x20{\x0a\x09float:\x20right;\x0a\x09display:\x20block;\x0a\x09cursor:\x20pointer;\x0a\x09font-size:\x200.75rem;\x0a\x09background:\x20url(/doc/share.png)\x20no-repeat;\x0a\x09background-position:\x20right\x20center;\x0a\x09padding:\x200.375rem\x201.688rem;\x0a}\x0adiv#learn\x20pre,\x0adiv#learn\x20textarea\x20{\x0a\x09padding:\x200;\x0a\x09margin:\x200;\x0a\x09font-family:\x20Menlo,\x20monospace;\x0a\x09font-size:\x200.875rem;\x0a}\x0adiv#learn\x20.input\x20{\x0a\x09padding:\x200.625rem;\x0a\x09margin-top:\x200.625rem;\x0a\x09height:\x209.375rem;\x0a\x0a\x09border-top-left-radius:\x200.3125rem;\x0a\x09border-top-right-radius:\x200.3125rem;\x0a}\x0adiv#learn\x20.input\x20textarea\x20{\x0a\x09width:\x20100%;\x0a\x09height:\x20100%;\x0a\x09border:\x20none;\x0a\x09outline:\x20none;\x0a\x09resize:\x20none;\x0a}\x0adiv#learn\x20.output\x20{\x0a\x09border-top:\x20none\x20!important;\x0a\x0a\x09padding:\x200.625rem;\x0a\x09height:\x203.688rem;\x0a\x09overflow:\x20auto;\x0a\x0a\x09border-bottom-right-radius:\x200.3125rem;\x0a\x09border-bottom-left-radius:\x200.3125rem;\x0a}\x0adiv#learn\x20.output\x20pre\x20{\x0a\x09padding:\x200;\x0a\x09border-radius:\x200;\x0a}\x0adiv#learn\x20.input,\x0adiv#learn\x20.input\x20textarea,\x0adiv#learn\x20.output,\x0adiv#learn\x20.output\x20pre\x20{\x0a\x09background:\x20#FFFFD8;\x0a}\x0adiv#learn\x20.input,\x0adiv#learn\x20.output\x20{\x0a\x09border:\x200.0625rem\x20solid\x20#375EAB;\x0a}\x0adiv#learn\x20.buttons\x20{\x0a\x09float:\x20right;\x0a\x09padding:\x201.25rem\x200\x200.625rem\x200;\x0a\x09text-align:\x20right;\x0a}\x0adiv#learn\x20.buttons\x20a\x20{\x0a\x09height:\x201rem;\x0a\x09margin-left:\x200.3125rem;\x0a\x09padding:\x200.625rem;\x0a}\x0adiv#learn\x20.toys\x20{\x0a\x09margin-top:\x200.5rem;\x0a}\x0adiv#learn\x20.toys\x20select\x20{\x0a\x09font-size:\x200.875rem;\x0a\x09border:\x200.0625rem\x20solid\x20#375EAB;\x0a\x09margin:\x200;\x0a}\x0adiv#learn\x20.output\x20.exit\x20{\x0a\x09display:\x20none;\x0a}\x0a\x0adiv#video\x20{\x0a\x09max-width:\x20100%;\x0a}\x0adiv#blog,\x0adiv#video\x20{\x0a\x09margin-top:\x202.5rem;\x0a}\x0adiv#blog\x20>\x20a,\x0adiv#blog\x20>\x20div,\x0adiv#blog\x20>\x20h2,\x0adiv#video\x20>\x20a,\x0adiv#video\x20>\x20div,\x0adiv#video\x20>\x20h2\x20{\x0a\x09margin-bottom:\x200.625rem;\x0a}\x0adiv#blog\x20.title,\x0adiv#video\x20.title\x20{\x0a\x09display:\x20block;\x0a\x09font-size:\x201.25rem;\x0a}\x0adiv#blog\x20.when\x20{\x0a\x09color:\x20#666;\x0a\x09font-size:\x200.875rem;\x0a}\x0adiv#blog\x20.read\x20{\x0a\x09text-align:\x20right;\x0a}\x0a\x0a@supports\x20(--c:\x200)\x20{\x0a\x09[style*=\"--aspect-ratio-padding:\"]\x20{\x0a\x09\x09position:\x20relative;\x0a\x09\x09overflow:\x20hidden;\x0a\x09\x09padding-top:\x20var(--aspect-ratio-padding);\x0a\x09}\x0a\x0a\x09[style*=\"--aspect-ratio-padding:\"]>*\x20{\x0a\x09\x09position:\x20absolute;\x0a\x09\x09top:\x200;\x0a\x09\x09left:\x200;\x0a\x09\x09width:\x20100%;\x0a\x09\x09height:\x20100%;\x0a\x09}\x0a}\x0a\x0a.toggleButton\x20{\x20cursor:\x20pointer;\x20}\x0a.toggle\x20>\x20.collapsed\x20{\x20display:\x20block;\x20}\x0a.toggle\x20>\x20.expanded\x20{\x20display:\x20none;\x20}\x0a.toggleVisible\x20>\x20.collapsed\x20{\x20display:\x20none;\x20}\x0a.toggleVisible\x20>\x20.expanded\x20{\x20display:\x20block;\x20}\x0a\x0atable.codetable\x20{\x20margin-left:\x20auto;\x20margin-right:\x20auto;\x20border-style:\x20none;\x20}\x0atable.codetable\x20td\x20{\x20padding-right:\x200.625rem;\x20}\x0ahr\x20{\x20border-style:\x20none;\x20border-top:\x200.0625rem\x20solid\x20black;\x20}\x0a\x0aimg.gopher\x20{\x0a\x09float:\x20right;\x0a\x09margin-left:\x200.625rem;\x0a\x09margin-bottom:\x200.625rem;\x0a\x09z-index:\x20-1;\x0a}\x0ah2\x20{\x20clear:\x20right;\x20}\x0a\x0a/*\x20example\x20and\x20drop-down\x20playground\x20*/\x0adiv.play\x20{\x0a\x09padding:\x200\x201.25rem\x202.5rem\x201.25rem;\x0a}\x0adiv.play\x20pre,\x0adiv.play\x20textarea,\x0adiv.play\x20.lines\x20{\x0a\x09padding:\x200;\x0a\x09margin:\x200;\x0a\x09font-family:\x20Menlo,\x20monospace;\x0a\x09font-size:\x200.875rem;\x0a}\x0adiv.play\x20.input\x20{\x0a\x09padding:\x200.625rem;\x0a\x09margin-top:\x200.625rem;\x0a\x0a\x09border-top-left-radius:\x200.3125rem;\x0a\x09border-top-right-radius:\x200.3125rem;\x0a\x0a\x09overflow:\x20hidden;\x0a}\x0adiv.play\x20.input\x20textarea\x20{\x0a\x09width:\x20100%;\x0a\x09height:\x20100%;\x0a\x09border:\x20none;\x0a\x09outline:\x20none;\x0a\x09resize:\x20none;\x0a\x0a\x09overflow:\x20hidden;\x0a}\x0adiv#playground\x20.input\x20textarea\x20{\x0a\x09overflow:\x20auto;\x0a\x09resize:\x20auto;\x0a}\x0adiv.play\x20.output\x20{\x0a\x09border-top:\x20none\x20!important;\x0a\x0a\x09padding:\x200.625rem;\x0a\x09max-height:\x2012.5rem;\x0a\x09overflow:\x20auto;\x0a\x0a\x09border-bottom-right-radius:\x200.3125rem;\x0a\x09border-bottom-left-radius:\x200.3125rem;\x0a}\x0adiv.play\x20.output\x20pre\x20{\x0a\x09padding:\x200;\x0a\x09border-radius:\x200;\x0a}\x0adiv.play\x20.input,\x0adiv.play\x20.input\x20textarea,\x0adiv.play\x20.output,\x0adiv.play\x20.output\x20pre\x20{\x0a\x09background:\x20#FFFFD8;\x0a}\x0adiv.play\x20.input,\x0adiv.play\x20.output\x20{\x0a\x09border:\x200.0625rem\x20solid\x20#375EAB;\x0a}\x0adiv.play\x20.buttons\x20{\x0a\x09float:\x20right;\x0a\x09padding:\x201.25rem\x200\x200.625rem\x200;\x0a\x09text-align:\x20right;\x0a}\x0adiv.play\x20.buttons\x20a\x20{\x0a\x09height:\x201rem;\x0a\x09margin-left:\x200.3125rem;\x0a\x09padding:\x200.625rem;\x0a\x09cursor:\x20pointer;\x0a}\x0a.output\x20.stderr\x20{\x0a\x09color:\x20#933;\x0a}\x0a.output\x20.system\x20{\x0a\x09color:\x20#999;\x0a}\x0a\x0a/*\x20drop-down\x20playground\x20*/\x0adiv#playground\x20{\x0a\x09/*\x20start\x20hidden;\x20revealed\x20by\x20javascript\x20*/\x0a\x09display:\x20none;\x0a}\x0adiv#playground\x20{\x0a\x09position:\x20absolute;\x0a\x09top:\x203.938rem;\x0a\x09right:\x201.25rem;\x0a\x09padding:\x200\x200.625rem\x200.625rem\x200.625rem;\x0a\x09z-index:\x201;\x0a\x09text-align:\x20left;\x0a\x09background:\x20#E0EBF5;\x0a\x0a\x09border:\x200.0625rem\x20solid\x20#B0BBC5;\x0a\x09border-top:\x20none;\x0a\x0a\x09border-bottom-left-radius:\x200.3125rem;\x0a\x09border-bottom-right-radius:\x200.3125rem;\x0a}\x0adiv#playground\x20.code\x20{\x0a\x09width:\x2032.5rem;\x0a\x09height:\x2012.5rem;\x0a}\x0adiv#playground\x20.output\x20{\x0a\x09height:\x206.25rem;\x0a}\x0a\x0a/*\x20Inline\x20runnable\x20snippets\x20(play.js/initPlayground)\x20*/\x0a#content\x20.code\x20pre,\x20#content\x20.playground\x20pre,\x20#content\x20.output\x20pre\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20margin:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x09outline:\x200\x20solid\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20auto;\x0a}\x0a#content\x20.playground\x20.number,\x20#content\x20.code\x20.number\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#999;\x0a}\x0a#content\x20.code,\x20#content\x20.playground,\x20#content\x20.output\x20{\x0a\x09width:\x20auto;\x0a\x20\x20\x20\x20\x20\x20\x20\x20margin:\x201.25rem;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x200.625rem;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x200.3125rem;\x0a}\x0a#content\x20.code,\x20#content\x20.playground\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#e9e9e9;\x0a}\x0a#content\x20.output\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#202020;\x0a}\x0a#content\x20.output\x20.stdout,\x20#content\x20.output\x20pre\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#e6e6e6;\x0a}\x0a#content\x20.output\x20.stderr,\x20#content\x20.output\x20.error\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20rgb(244,\x2074,\x2063);\x0a}\x0a#content\x20.output\x20.system,\x20#content\x20.output\x20.exit\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20rgb(255,\x20209,\x2077)\x0a}\x0a#content\x20.buttons\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float:\x20right;\x0a\x20\x20\x20\x20\x20\x20\x20\x20top:\x20-3.125rem;\x0a\x20\x20\x20\x20\x20\x20\x20\x20right:\x201.875rem;\x0a}\x0a#content\x20.output\x20.buttons\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20top:\x20-3.75rem;\x0a\x20\x20\x20\x20\x20\x20\x20\x20right:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20height:\x200;\x0a}\x0a#content\x20.buttons\x20.kill\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20visibility:\x20hidden;\x0a}\x0aa.error\x20{\x0a\x09font-weight:\x20bold;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x09background-color:\x20darkred;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom-left-radius:\x200.25rem;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom-right-radius:\x200.25rem;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-top-left-radius:\x200.25rem;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-top-right-radius:\x200.25rem;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x200.125rem\x200.25rem\x200.125rem\x200.25rem;\x20/*\x20TRBL\x20*/\x0a}\x0a\x0a\x0a#heading-narrow\x20{\x0a\x09display:\x20none;\x0a}\x0a\x0a.downloading\x20{\x0a\x09background:\x20#F9F9BE;\x0a\x09padding:\x200.625rem;\x0a\x09text-align:\x20center;\x0a\x09border-radius:\x200.3125rem;\x0a}\x0a\x0a@media\x20(max-width:\x2058.125em)\x20{\x0a\x09#heading-wide\x20{\x0a\x09\x09display:\x20none;\x0a\x09}\x0a\x09#heading-narrow\x20{\x0a\x09\x09display:\x20block;\x0a\x09}\x0a}\x0a\x0a@media\x20(max-width:\x2047.5em)\x20{\x0a\x09.container\x20.left,\x0a\x09.container\x20.right\x20{\x0a\x09\x09width:\x20auto;\x0a\x09\x09float:\x20none;\x0a\x09}\x0a\x0a\x09div#about\x20{\x0a\x09\x09max-width:\x2031.25rem;\x0a\x09\x09text-align:\x20center;\x0a\x09}\x0a}\x0a\x0a@media\x20(min-width:\x2043.75em)\x20and\x20(max-width:\x2062.5em)\x20{\x0a\x09div#menu\x20>\x20a\x20{\x0a\x09\x09margin:\x200.3125rem\x200;\x0a\x09\x09font-size:\x200.875rem;\x0a\x09}\x0a\x0a\x09input#search\x20{\x0a\x09\x09font-size:\x200.875rem;\x0a\x09}\x0a}\x0a\x0a@media\x20(max-width:\x2043.75em)\x20{\x0a\x09body\x20{\x0a\x09\x09font-size:\x200.9375rem;\x0a\x09}\x0a\x0a\x09div#playground\x20{\x0a\x09\x09left:\x200;\x0a\x09\x09right:\x200;\x0a\x09}\x0a\x0a\x09pre,\x0a\x09code\x20{\x0a\x09\x09font-size:\x200.866rem;\x0a\x09}\x0a\x0a\x09div#page\x20>\x20.container\x20{\x0a\x09\x09padding:\x200\x200.625rem;\x0a\x09}\x0a\x0a\x09div#topbar\x20{\x0a\x09\x09height:\x20auto;\x0a\x09\x09padding:\x200.625rem;\x0a\x09}\x0a\x0a\x09div#topbar\x20>\x20.container\x20{\x0a\x09\x09padding:\x200;\x0a\x09}\x0a\x0a\x09#heading-wide\x20{\x0a\x09\x09display:\x20block;\x0a\x09}\x0a\x09#heading-narrow\x20{\x0a\x09\x09display:\x20none;\x0a\x09}\x0a\x0a\x09.top-heading\x20{\x0a\x09\x09float:\x20none;\x0a\x09\x09display:\x20inline-block;\x0a\x09\x09padding:\x200.75rem;\x0a\x09}\x0a\x0a\x09div#menu\x20{\x0a\x09\x09padding:\x200;\x0a\x09\x09min-width:\x200;\x0a\x09\x09text-align:\x20left;\x0a\x09\x09float:\x20left;\x0a\x09}\x0a\x0a\x09div#menu\x20>\x20a\x20{\x0a\x09\x09display:\x20block;\x0a\x09\x09margin-left:\x200;\x0a\x09\x09margin-right:\x200;\x0a\x09}\x0a\x0a\x09#menu\x20.search-box\x20{\x0a\x09\x09display:\x20flex;\x0a\x09\x09width:\x20100%;\x0a\x09}\x0a\x0a\x09#menu-button\x20{\x0a\x09\x09display:\x20inline-block;\x0a\x09}\x0a\x0a\x09p,\x0a\x09pre,\x0a\x09ul,\x0a\x09ol\x20{\x0a\x09\x09margin:\x200.625rem;\x0a\x09}\x0a\x0a\x09.pkg-synopsis\x20{\x0a\x09\x09display:\x20none;\x0a\x09}\x0a\x0a\x09img.gopher\x20{\x0a\x09\x09display:\x20none;\x0a\x09}\x0a}\x0a\x0a@media\x20(max-width:\x2030em)\x20{\x0a\x09#heading-wide\x20{\x0a\x09\x09display:\x20none;\x0a\x09}\x0a\x09#heading-narrow\x20{\x0a\x09\x09display:\x20block;\x0a\x09}\x0a}\x0a\x0a@media\x20print\x20{\x0a\x09pre\x20{\x0a\x09\x09background:\x20#FFF;\x0a\x09\x09border:\x200.0625rem\x20solid\x20#BBB;\x0a\x09\x09white-space:\x20pre-wrap;\x0a\x09}\x0a}\x0a",
+ "style.css": "body\x20{\x0a\x09margin:\x200;\x0a\x09font-family:\x20Arial,\x20sans-serif;\x0a\x09background-color:\x20#fff;\x0a\x09line-height:\x201.3;\x0a\x09text-align:\x20center;\x0a\x09color:\x20#222;\x0a}\x0atextarea\x20{\x0a\x09/*\x20Inherit\x20text\x20color\x20from\x20body\x20avoiding\x20illegible\x20text\x20in\x20the\x20case\x20where\x20the\x0a\x20\x09*\x20user\x20has\x20inverted\x20the\x20browsers\x20custom\x20text\x20and\x20background\x20colors.\x20*/\x0a\x09color:\x20inherit;\x0a}\x0apre,\x0acode\x20{\x0a\x09font-family:\x20Menlo,\x20monospace;\x0a\x09font-size:\x200.875rem;\x0a}\x0apre\x20{\x0a\x09line-height:\x201.4;\x0a\x09overflow-x:\x20auto;\x0a}\x0apre\x20.comment\x20{\x0a\x09color:\x20#006600;\x0a}\x0apre\x20.highlight,\x0apre\x20.highlight-comment,\x0apre\x20.selection-highlight,\x0apre\x20.selection-highlight-comment\x20{\x0a\x09background:\x20#FFFF00;\x0a}\x0apre\x20.selection,\x0apre\x20.selection-comment\x20{\x0a\x09background:\x20#FF9632;\x0a}\x0apre\x20.ln\x20{\x0a\x09color:\x20#999;\x0a\x09background:\x20#efefef;\x0a}\x0a.ln\x20{\x0a\x09-webkit-user-select:\x20none;\x0a\x09-moz-user-select:\x20none;\x0a\x09-ms-user-select:\x20none;\x0a\x09user-select:\x20none;\x0a\x0a\x09/*\x20Ensure\x208\x20characters\x20in\x20the\x20document\x20-\x20which\x20due\x20to\x20floating\x0a\x20\x20\x20*\x20point\x20rendering\x20issues,\x20might\x20have\x20a\x20width\x20of\x20less\x20than\x201\x20each\x20-\x20are\x208\x0a\x20\x20\x20*\x20characters\x20wide,\x20so\x20a\x20tab\x20in\x20the\x209th\x20position\x20indents\x20properly.\x20See\x0a\x20\x20\x20*\x20https://github.com/webcompat/web-bugs/issues/17530#issuecomment-402675091\x0a\x20\x20\x20*\x20for\x20more\x20information.\x20*/\x0a\x09display:\x20inline-block;\x0a\x09width:\x208ch;\x0a}\x0a\x0a.search-nav{\x0a\x09margin-left:\x201.25rem;\x0a\x09font-size:\x200.875rem;\x0a\x09column-gap:\x201.25rem;\x0a\x09column-fill:\x20auto;\x0a\x09column-width:\x2014rem;\x0a}\x0a\x0a.search-nav\x20.indent\x20{\x0a\x09margin-left:\x201.25rem;\x0a}\x0a\x0aa,\x0a.exampleHeading\x20.text,\x0a.expandAll\x20{\x0a\x09color:\x20#375EAB;\x0a\x09text-decoration:\x20none;\x0a}\x0aa:hover,\x0a.exampleHeading\x20.text:hover,\x0a.expandAll:hover\x20{\x0a\x09text-decoration:\x20underline;\x0a}\x0a.article\x20a\x20{\x0a\x09text-decoration:\x20underline;\x0a}\x0a.article\x20.title\x20a\x20{\x0a\x09text-decoration:\x20none;\x0a}\x0a\x0a.permalink\x20{\x0a\x09display:\x20none;\x0a}\x0a:hover\x20>\x20.permalink\x20{\x0a\x09display:\x20inline;\x0a}\x0a\x0ap,\x20li\x20{\x0a\x09max-width:\x2050rem;\x0a\x09word-wrap:\x20break-word;\x0a}\x0ap,\x0apre,\x0aul,\x0aol\x20{\x0a\x09margin:\x201.25rem;\x0a}\x0apre\x20{\x0a\x09background:\x20#EFEFEF;\x0a\x09padding:\x200.625rem;\x0a\x09border-radius:\x200.3125rem;\x0a}\x0a\x0ah1,\x0ah2,\x0ah3,\x0ah4,\x0a.rootHeading\x20{\x0a\x09margin:\x201.25rem\x200\x201.25rem;\x0a\x09padding:\x200;\x0a\x09color:\x20#375EAB;\x0a\x09font-weight:\x20bold;\x0a}\x0ah1\x20{\x0a\x09font-size:\x201.75rem;\x0a\x09line-height:\x201;\x0a}\x0ah1\x20.text-muted\x20{\x0a\x09color:#777;\x0a}\x0ah2\x20{\x0a\x09font-size:\x201.25rem;\x0a\x09background:\x20#E0EBF5;\x0a\x09padding:\x200.5rem;\x0a\x09line-height:\x201.25;\x0a\x09font-weight:\x20normal;\x0a\x09overflow:\x20auto;\x0a\x09overflow-wrap:\x20break-word;\x0a}\x0ah2\x20a\x20{\x0a\x09font-weight:\x20bold;\x0a}\x0ah3\x20{\x0a\x09font-size:\x201.25rem;\x0a\x09line-height:\x201.25;\x0a\x09overflow:\x20auto;\x0a\x09overflow-wrap:\x20break-word;\x0a}\x0ah3,\x0ah4\x20{\x0a\x09margin:\x201.25rem\x200.3125rem;\x0a}\x0ah4\x20{\x0a\x09font-size:\x201rem;\x0a}\x0a.rootHeading\x20{\x0a\x09font-size:\x201.25rem;\x0a\x09margin:\x200;\x0a}\x0a\x0ah2\x20>\x20span,\x0ah3\x20>\x20span\x20{\x0a\x09float:\x20right;\x0a\x09margin:\x200\x2025px\x200\x200;\x0a\x09font-weight:\x20normal;\x0a\x09color:\x20#5279C7;\x0a}\x0a\x0adl\x20{\x0a\x09margin:\x201.25rem;\x0a}\x0add\x20{\x0a\x09margin:\x200\x200\x200\x201.25rem;\x0a}\x0adl,\x0add\x20{\x0a\x09font-size:\x200.875rem;\x0a}\x0adiv#nav\x20table\x20td\x20{\x0a\x09vertical-align:\x20top;\x0a}\x0a\x0a#pkg-index\x20h3\x20{\x0a\x09font-size:\x201rem;\x0a}\x0a.pkg-dir\x20{\x0a\x09padding:\x200\x200.625rem;\x0a}\x0a.pkg-dir\x20table\x20{\x0a\x09border-collapse:\x20collapse;\x0a\x09border-spacing:\x200;\x0a}\x0a.pkg-name\x20{\x0a\x09padding-right:\x200.625rem;\x0a}\x0a.alert\x20{\x0a\x09color:\x20#AA0000;\x0a}\x0a\x0a.top-heading\x20{\x0a\x09float:\x20left;\x0a\x09padding:\x201.313rem\x200;\x0a\x09font-size:\x201.25rem;\x0a\x09font-weight:\x20normal;\x0a}\x0a.top-heading\x20a\x20{\x0a\x09color:\x20#222;\x0a\x09text-decoration:\x20none;\x0a}\x0a\x0a#pkg-examples\x20h3\x20{\x0a\x09float:\x20left;\x0a}\x0a\x0a#pkg-examples\x20dl\x20{\x0a\x09clear:\x20both;\x0a}\x0a\x0a.expandAll\x20{\x0a\x09cursor:\x20pointer;\x0a\x09float:\x20left;\x0a\x09margin:\x201.25rem\x200;\x0a}\x0a\x0adiv#topbar\x20{\x0a\x09background:\x20#E0EBF5;\x0a\x09height:\x204rem;\x0a\x09overflow:\x20hidden;\x0a}\x0a\x0adiv#page\x20{\x0a\x09width:\x20100%;\x0a}\x0adiv#page\x20>\x20.container,\x0adiv#topbar\x20>\x20.container\x20{\x0a\x09text-align:\x20left;\x0a\x09margin-left:\x20auto;\x0a\x09margin-right:\x20auto;\x0a\x09padding:\x200\x201.25rem;\x0a}\x0adiv#topbar\x20>\x20.container,\x0adiv#page\x20>\x20.container\x20{\x0a\x09max-width:\x2059.38rem;\x0a}\x0adiv#page.wide\x20>\x20.container,\x0adiv#topbar.wide\x20>\x20.container\x20{\x0a\x09max-width:\x20none;\x0a}\x0adiv#plusone\x20{\x0a\x09float:\x20right;\x0a\x09clear:\x20right;\x0a\x09margin-top:\x200.3125rem;\x0a}\x0a\x0adiv#footer\x20{\x0a\x09text-align:\x20center;\x0a\x09color:\x20#666;\x0a\x09font-size:\x200.875rem;\x0a\x09margin:\x202.5rem\x200;\x0a}\x0a\x0adiv#menu\x20>\x20a,\x0ainput#search,\x0adiv#learn\x20.buttons\x20a,\x0adiv.play\x20.buttons\x20a,\x0adiv#blog\x20.read\x20a,\x0a#menu-button\x20{\x0a\x09padding:\x200.625rem;\x0a\x0a\x09text-decoration:\x20none;\x0a\x09font-size:\x201rem;\x0a\x09border-radius:\x200.3125rem;\x0a}\x0adiv#playground\x20.buttons\x20a,\x0adiv#menu\x20>\x20a,\x0ainput#search,\x0a#menu-button\x20{\x0a\x09border:\x200.0625rem\x20solid\x20#375EAB;\x0a}\x0adiv#playground\x20.buttons\x20a,\x0adiv#menu\x20>\x20a,\x0a#menu-button\x20{\x0a\x09color:\x20white;\x0a\x09background:\x20#375EAB;\x0a}\x0a#playgroundButton.active\x20{\x0a\x09background:\x20white;\x0a\x09color:\x20#375EAB;\x0a}\x0aa#start,\x0adiv#learn\x20.buttons\x20a,\x0adiv.play\x20.buttons\x20a,\x0adiv#blog\x20.read\x20a\x20{\x0a\x09color:\x20#222;\x0a\x09border:\x200.0625rem\x20solid\x20#375EAB;\x0a\x09background:\x20#E0EBF5;\x0a}\x0a.download\x20{\x0a\x09width:\x209.375rem;\x0a}\x0a\x0adiv#menu\x20{\x0a\x09text-align:\x20right;\x0a\x09padding:\x200.625rem;\x0a\x09white-space:\x20nowrap;\x0a\x09max-height:\x200;\x0a\x09-moz-transition:\x20max-height\x20.25s\x20linear;\x0a\x09transition:\x20max-height\x20.25s\x20linear;\x0a\x09width:\x20100%;\x0a}\x0adiv#menu.menu-visible\x20{\x0a\x09max-height:\x2031.25rem;\x0a}\x0adiv#menu\x20>\x20a,\x0a#menu-button\x20{\x0a\x09margin:\x200.625rem\x200.125rem;\x0a\x09padding:\x200.625rem;\x0a}\x0a::-webkit-input-placeholder\x20{\x0a\x09color:\x20#7f7f7f;\x0a\x09opacity:\x201;\x0a}\x0a::placeholder\x20{\x0a\x09color:\x20#7f7f7f;\x0a\x09opacity:\x201;\x0a}\x0a#menu\x20.search-box\x20{\x0a\x09display:\x20inline-flex;\x0a\x09width:\x208.75rem;\x0a}\x0ainput#search\x20{\x0a\x09background:\x20white;\x0a\x09color:\x20#222;\x0a\x09box-sizing:\x20border-box;\x0a\x09-webkit-appearance:\x20none;\x0a\x09border-top-right-radius:\x200;\x0a\x09border-bottom-right-radius:\x200;\x0a\x09border-right:\x200;\x0a\x09margin-right:\x200;\x0a\x09flex-grow:\x201;\x0a\x09max-width:\x20100%;\x0a\x09min-width:\x205.625rem;\x0a}\x0ainput#search:-webkit-search-decoration\x20{\x0a\x09-webkit-appearance:\x20none;\x0a}\x0ainput#search:-moz-ui-invalid\x20{\x0a\x09box-shadow:\x20unset;\x0a}\x0ainput#search\x20+\x20button\x20{\x0a\x09display:\x20inline;\x0a\x09font-size:\x201em;\x0a\x09background-color:\x20#375EAB;\x0a\x09color:\x20white;\x0a\x09border:\x200.0625rem\x20solid\x20#375EAB;\x0a\x09border-top-left-radius:\x200;\x0a\x09border-top-right-radius:\x200.3125rem;\x0a\x09border-bottom-left-radius:\x200;\x0a\x09border-bottom-right-radius:\x200.3125rem;\x0a\x09margin-left:\x200;\x0a\x09cursor:\x20pointer;\x0a}\x0ainput#search\x20+\x20button\x20span\x20{\x0a\x09display:\x20flex;\x0a}\x0ainput#search\x20+\x20button\x20svg\x20{\x0a\x09fill:\x20white\x0a}\x0a\x0a#menu-button\x20{\x0a\x09display:\x20none;\x0a\x09position:\x20absolute;\x0a\x09right:\x200.3125rem;\x0a\x09top:\x200;\x0a\x09margin-right:\x200.3125rem;\x0a}\x0a#menu-button-arrow\x20{\x0a\x09display:\x20inline-block;\x0a}\x0a.vertical-flip\x20{\x0a\x09transform:\x20rotate(-180deg);\x0a}\x0a\x0adiv.left\x20{\x0a\x09float:\x20left;\x0a\x09clear:\x20left;\x0a\x09margin-right:\x202.5%;\x0a}\x0adiv.right\x20{\x0a\x09float:\x20right;\x0a\x09clear:\x20right;\x0a\x09margin-left:\x202.5%;\x0a}\x0adiv.left,\x0adiv.right\x20{\x0a\x09width:\x2045%;\x0a}\x0a\x0adiv#learn,\x0adiv#about\x20{\x0a\x09padding-top:\x201.25rem;\x0a}\x0adiv#learn\x20h2,\x0adiv#about\x20{\x0a\x09margin:\x200;\x0a}\x0adiv#about\x20{\x0a\x09font-size:\x201.25rem;\x0a\x09margin:\x200\x20auto\x201.875rem;\x0a}\x0adiv#gopher\x20{\x0a\x09background:\x20url(/doc/gopher/frontpage.png)\x20no-repeat;\x0a\x09background-position:\x20center\x20top;\x0a\x09height:\x209.688rem;\x0a\x09max-height:\x20200px;\x20/*\x20Setting\x20in\x20px\x20to\x20prevent\x20the\x20gopher\x20from\x20blowing\x20up\x20in\x20very\x20high\x20default\x20font-sizes\x20*/\x0a}\x0aa#start\x20{\x0a\x09display:\x20block;\x0a\x09padding:\x200.625rem;\x0a\x0a\x09text-align:\x20center;\x0a\x09text-decoration:\x20none;\x0a\x09border-radius:\x200.3125rem;\x0a}\x0aa#start\x20.big\x20{\x0a\x09display:\x20block;\x0a\x09font-weight:\x20bold;\x0a\x09font-size:\x201.25rem;\x0a}\x0aa#start\x20.desc\x20{\x0a\x09display:\x20block;\x0a\x09font-size:\x200.875rem;\x0a\x09font-weight:\x20normal;\x0a\x09margin-top:\x200.3125rem;\x0a}\x0a\x0adiv#learn\x20.popout\x20{\x0a\x09float:\x20right;\x0a\x09display:\x20block;\x0a\x09cursor:\x20pointer;\x0a\x09font-size:\x200.75rem;\x0a\x09background:\x20url(/doc/share.png)\x20no-repeat;\x0a\x09background-position:\x20right\x20center;\x0a\x09padding:\x200.375rem\x201.688rem;\x0a}\x0adiv#learn\x20pre,\x0adiv#learn\x20textarea\x20{\x0a\x09padding:\x200;\x0a\x09margin:\x200;\x0a\x09font-family:\x20Menlo,\x20monospace;\x0a\x09font-size:\x200.875rem;\x0a}\x0adiv#learn\x20.input\x20{\x0a\x09padding:\x200.625rem;\x0a\x09margin-top:\x200.625rem;\x0a\x09height:\x209.375rem;\x0a\x0a\x09border-top-left-radius:\x200.3125rem;\x0a\x09border-top-right-radius:\x200.3125rem;\x0a}\x0adiv#learn\x20.input\x20textarea\x20{\x0a\x09width:\x20100%;\x0a\x09height:\x20100%;\x0a\x09border:\x20none;\x0a\x09outline:\x20none;\x0a\x09resize:\x20none;\x0a}\x0adiv#learn\x20.output\x20{\x0a\x09border-top:\x20none\x20!important;\x0a\x0a\x09padding:\x200.625rem;\x0a\x09height:\x203.688rem;\x0a\x09overflow:\x20auto;\x0a\x0a\x09border-bottom-right-radius:\x200.3125rem;\x0a\x09border-bottom-left-radius:\x200.3125rem;\x0a}\x0adiv#learn\x20.output\x20pre\x20{\x0a\x09padding:\x200;\x0a\x09border-radius:\x200;\x0a}\x0adiv#learn\x20.input,\x0adiv#learn\x20.input\x20textarea,\x0adiv#learn\x20.output,\x0adiv#learn\x20.output\x20pre\x20{\x0a\x09background:\x20#FFFFD8;\x0a}\x0adiv#learn\x20.input,\x0adiv#learn\x20.output\x20{\x0a\x09border:\x200.0625rem\x20solid\x20#375EAB;\x0a}\x0adiv#learn\x20.buttons\x20{\x0a\x09float:\x20right;\x0a\x09padding:\x201.25rem\x200\x200.625rem\x200;\x0a\x09text-align:\x20right;\x0a}\x0adiv#learn\x20.buttons\x20a\x20{\x0a\x09height:\x201rem;\x0a\x09margin-left:\x200.3125rem;\x0a\x09padding:\x200.625rem;\x0a}\x0adiv#learn\x20.toys\x20{\x0a\x09margin-top:\x200.5rem;\x0a}\x0adiv#learn\x20.toys\x20select\x20{\x0a\x09font-size:\x200.875rem;\x0a\x09border:\x200.0625rem\x20solid\x20#375EAB;\x0a\x09margin:\x200;\x0a}\x0adiv#learn\x20.output\x20.exit\x20{\x0a\x09display:\x20none;\x0a}\x0a\x0adiv#video\x20{\x0a\x09max-width:\x20100%;\x0a}\x0adiv#blog,\x0adiv#video\x20{\x0a\x09margin-top:\x202.5rem;\x0a}\x0adiv#blog\x20>\x20a,\x0adiv#blog\x20>\x20div,\x0adiv#blog\x20>\x20h2,\x0adiv#video\x20>\x20a,\x0adiv#video\x20>\x20div,\x0adiv#video\x20>\x20h2\x20{\x0a\x09margin-bottom:\x200.625rem;\x0a}\x0adiv#blog\x20.title,\x0adiv#video\x20.title\x20{\x0a\x09display:\x20block;\x0a\x09font-size:\x201.25rem;\x0a}\x0adiv#blog\x20.when\x20{\x0a\x09color:\x20#666;\x0a\x09font-size:\x200.875rem;\x0a}\x0adiv#blog\x20.read\x20{\x0a\x09text-align:\x20right;\x0a}\x0a\x0a@supports\x20(--c:\x200)\x20{\x0a\x09[style*=\"--aspect-ratio-padding:\"]\x20{\x0a\x09\x09position:\x20relative;\x0a\x09\x09overflow:\x20hidden;\x0a\x09\x09padding-top:\x20var(--aspect-ratio-padding);\x0a\x09}\x0a\x0a\x09[style*=\"--aspect-ratio-padding:\"]>*\x20{\x0a\x09\x09position:\x20absolute;\x0a\x09\x09top:\x200;\x0a\x09\x09left:\x200;\x0a\x09\x09width:\x20100%;\x0a\x09\x09height:\x20100%;\x0a\x09}\x0a}\x0a\x0a.toggleButton\x20{\x20cursor:\x20pointer;\x20}\x0a.toggle\x20>\x20.collapsed\x20{\x20display:\x20block;\x20}\x0a.toggle\x20>\x20.expanded\x20{\x20display:\x20none;\x20}\x0a.toggleVisible\x20>\x20.collapsed\x20{\x20display:\x20none;\x20}\x0a.toggleVisible\x20>\x20.expanded\x20{\x20display:\x20block;\x20}\x0a\x0atable.codetable\x20{\x20margin-left:\x20auto;\x20margin-right:\x20auto;\x20border-style:\x20none;\x20}\x0atable.codetable\x20td\x20{\x20padding-right:\x200.625rem;\x20}\x0ahr\x20{\x20border-style:\x20none;\x20border-top:\x200.0625rem\x20solid\x20black;\x20}\x0a\x0aimg.gopher\x20{\x0a\x09float:\x20right;\x0a\x09margin-left:\x200.625rem;\x0a\x09margin-bottom:\x200.625rem;\x0a\x09z-index:\x20-1;\x0a}\x0ah2\x20{\x20clear:\x20right;\x20}\x0a\x0a/*\x20example\x20and\x20drop-down\x20playground\x20*/\x0adiv.play\x20{\x0a\x09padding:\x200\x201.25rem\x202.5rem\x201.25rem;\x0a}\x0adiv.play\x20pre,\x0adiv.play\x20textarea,\x0adiv.play\x20.lines\x20{\x0a\x09padding:\x200;\x0a\x09margin:\x200;\x0a\x09font-family:\x20Menlo,\x20monospace;\x0a\x09font-size:\x200.875rem;\x0a}\x0adiv.play\x20.input\x20{\x0a\x09padding:\x200.625rem;\x0a\x09margin-top:\x200.625rem;\x0a\x0a\x09border-top-left-radius:\x200.3125rem;\x0a\x09border-top-right-radius:\x200.3125rem;\x0a\x0a\x09overflow:\x20hidden;\x0a}\x0adiv.play\x20.input\x20textarea\x20{\x0a\x09width:\x20100%;\x0a\x09height:\x20100%;\x0a\x09border:\x20none;\x0a\x09outline:\x20none;\x0a\x09resize:\x20none;\x0a\x0a\x09overflow:\x20hidden;\x0a}\x0adiv#playground\x20.input\x20textarea\x20{\x0a\x09overflow:\x20auto;\x0a\x09resize:\x20auto;\x0a}\x0adiv.play\x20.output\x20{\x0a\x09border-top:\x20none\x20!important;\x0a\x0a\x09padding:\x200.625rem;\x0a\x09max-height:\x2012.5rem;\x0a\x09overflow:\x20auto;\x0a\x0a\x09border-bottom-right-radius:\x200.3125rem;\x0a\x09border-bottom-left-radius:\x200.3125rem;\x0a}\x0adiv.play\x20.output\x20pre\x20{\x0a\x09padding:\x200;\x0a\x09border-radius:\x200;\x0a}\x0adiv.play\x20.input,\x0adiv.play\x20.input\x20textarea,\x0adiv.play\x20.output,\x0adiv.play\x20.output\x20pre\x20{\x0a\x09background:\x20#FFFFD8;\x0a}\x0adiv.play\x20.input,\x0adiv.play\x20.output\x20{\x0a\x09border:\x200.0625rem\x20solid\x20#375EAB;\x0a}\x0adiv.play\x20.buttons\x20{\x0a\x09float:\x20right;\x0a\x09padding:\x201.25rem\x200\x200.625rem\x200;\x0a\x09text-align:\x20right;\x0a}\x0adiv.play\x20.buttons\x20a\x20{\x0a\x09height:\x201rem;\x0a\x09margin-left:\x200.3125rem;\x0a\x09padding:\x200.625rem;\x0a\x09cursor:\x20pointer;\x0a}\x0a.output\x20.stderr\x20{\x0a\x09color:\x20#933;\x0a}\x0a.output\x20.system\x20{\x0a\x09color:\x20#999;\x0a}\x0a\x0a/*\x20drop-down\x20playground\x20*/\x0adiv#playground\x20{\x0a\x09/*\x20start\x20hidden;\x20revealed\x20by\x20javascript\x20*/\x0a\x09display:\x20none;\x0a}\x0adiv#playground\x20{\x0a\x09position:\x20absolute;\x0a\x09top:\x203.938rem;\x0a\x09right:\x201.25rem;\x0a\x09padding:\x200\x200.625rem\x200.625rem\x200.625rem;\x0a\x09z-index:\x201;\x0a\x09text-align:\x20left;\x0a\x09background:\x20#E0EBF5;\x0a\x0a\x09border:\x200.0625rem\x20solid\x20#B0BBC5;\x0a\x09border-top:\x20none;\x0a\x0a\x09border-bottom-left-radius:\x200.3125rem;\x0a\x09border-bottom-right-radius:\x200.3125rem;\x0a}\x0adiv#playground\x20.code\x20{\x0a\x09width:\x2032.5rem;\x0a\x09height:\x2012.5rem;\x0a}\x0adiv#playground\x20.output\x20{\x0a\x09height:\x206.25rem;\x0a}\x0a\x0a/*\x20Inline\x20runnable\x20snippets\x20(play.js/initPlayground)\x20*/\x0a#content\x20.code\x20pre,\x20#content\x20.playground\x20pre,\x20#content\x20.output\x20pre\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20margin:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x09outline:\x200\x20solid\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overflow:\x20auto;\x0a}\x0a#content\x20.playground\x20.number,\x20#content\x20.code\x20.number\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#999;\x0a}\x0a#content\x20.code,\x20#content\x20.playground,\x20#content\x20.output\x20{\x0a\x09width:\x20auto;\x0a\x20\x20\x20\x20\x20\x20\x20\x20margin:\x201.25rem;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x200.625rem;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x200.3125rem;\x0a}\x0a#content\x20.code,\x20#content\x20.playground\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#e9e9e9;\x0a}\x0a#content\x20.output\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#202020;\x0a}\x0a#content\x20.output\x20.stdout,\x20#content\x20.output\x20pre\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#e6e6e6;\x0a}\x0a#content\x20.output\x20.stderr,\x20#content\x20.output\x20.error\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20rgb(244,\x2074,\x2063);\x0a}\x0a#content\x20.output\x20.system,\x20#content\x20.output\x20.exit\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20rgb(255,\x20209,\x2077)\x0a}\x0a#content\x20.buttons\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float:\x20right;\x0a\x20\x20\x20\x20\x20\x20\x20\x20top:\x20-3.125rem;\x0a\x20\x20\x20\x20\x20\x20\x20\x20right:\x201.875rem;\x0a}\x0a#content\x20.output\x20.buttons\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20top:\x20-3.75rem;\x0a\x20\x20\x20\x20\x20\x20\x20\x20right:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20height:\x200;\x0a}\x0a#content\x20.buttons\x20.kill\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20visibility:\x20hidden;\x0a}\x0aa.error\x20{\x0a\x09font-weight:\x20bold;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x09background-color:\x20darkred;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom-left-radius:\x200.25rem;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom-right-radius:\x200.25rem;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-top-left-radius:\x200.25rem;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-top-right-radius:\x200.25rem;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x200.125rem\x200.25rem\x200.125rem\x200.25rem;\x20/*\x20TRBL\x20*/\x0a}\x0a\x0a\x0a#heading-narrow\x20{\x0a\x09display:\x20none;\x0a}\x0a\x0a.downloading\x20{\x0a\x09background:\x20#F9F9BE;\x0a\x09padding:\x200.625rem;\x0a\x09text-align:\x20center;\x0a\x09border-radius:\x200.3125rem;\x0a}\x0a\x0a@media\x20(max-width:\x2058.125em)\x20{\x0a\x09#heading-wide\x20{\x0a\x09\x09display:\x20none;\x0a\x09}\x0a\x09#heading-narrow\x20{\x0a\x09\x09display:\x20block;\x0a\x09}\x0a}\x0a\x0a@media\x20(max-width:\x2047.5em)\x20{\x0a\x09.container\x20.left,\x0a\x09.container\x20.right\x20{\x0a\x09\x09width:\x20auto;\x0a\x09\x09float:\x20none;\x0a\x09}\x0a\x0a\x09div#about\x20{\x0a\x09\x09max-width:\x2031.25rem;\x0a\x09\x09text-align:\x20center;\x0a\x09}\x0a}\x0a\x0a@media\x20(min-width:\x2043.75em)\x20and\x20(max-width:\x2062.5em)\x20{\x0a\x09div#menu\x20>\x20a\x20{\x0a\x09\x09margin:\x200.3125rem\x200;\x0a\x09\x09font-size:\x200.875rem;\x0a\x09}\x0a\x0a\x09input#search\x20{\x0a\x09\x09font-size:\x200.875rem;\x0a\x09}\x0a}\x0a\x0a@media\x20(max-width:\x2043.75em)\x20{\x0a\x09body\x20{\x0a\x09\x09font-size:\x200.9375rem;\x0a\x09}\x0a\x0a\x09div#playground\x20{\x0a\x09\x09left:\x200;\x0a\x09\x09right:\x200;\x0a\x09}\x0a\x0a\x09pre,\x0a\x09code\x20{\x0a\x09\x09font-size:\x200.866rem;\x0a\x09}\x0a\x0a\x09div#page\x20>\x20.container\x20{\x0a\x09\x09padding:\x200\x200.625rem;\x0a\x09}\x0a\x0a\x09div#topbar\x20{\x0a\x09\x09height:\x20auto;\x0a\x09\x09padding:\x200.625rem;\x0a\x09}\x0a\x0a\x09div#topbar\x20>\x20.container\x20{\x0a\x09\x09padding:\x200;\x0a\x09}\x0a\x0a\x09#heading-wide\x20{\x0a\x09\x09display:\x20block;\x0a\x09}\x0a\x09#heading-narrow\x20{\x0a\x09\x09display:\x20none;\x0a\x09}\x0a\x0a\x09.top-heading\x20{\x0a\x09\x09float:\x20none;\x0a\x09\x09display:\x20inline-block;\x0a\x09\x09padding:\x200.75rem;\x0a\x09}\x0a\x0a\x09div#menu\x20{\x0a\x09\x09padding:\x200;\x0a\x09\x09min-width:\x200;\x0a\x09\x09text-align:\x20left;\x0a\x09\x09float:\x20left;\x0a\x09}\x0a\x0a\x09div#menu\x20>\x20a\x20{\x0a\x09\x09display:\x20block;\x0a\x09\x09margin-left:\x200;\x0a\x09\x09margin-right:\x200;\x0a\x09}\x0a\x0a\x09#menu\x20.search-box\x20{\x0a\x09\x09display:\x20flex;\x0a\x09\x09width:\x20100%;\x0a\x09}\x0a\x0a\x09#menu-button\x20{\x0a\x09\x09display:\x20inline-block;\x0a\x09}\x0a\x0a\x09p,\x0a\x09pre,\x0a\x09ul,\x0a\x09ol\x20{\x0a\x09\x09margin:\x200.625rem;\x0a\x09}\x0a\x0a\x09.pkg-synopsis\x20{\x0a\x09\x09display:\x20none;\x0a\x09}\x0a\x0a\x09img.gopher\x20{\x0a\x09\x09display:\x20none;\x0a\x09}\x0a}\x0a\x0a@media\x20(max-width:\x2030em)\x20{\x0a\x09#heading-wide\x20{\x0a\x09\x09display:\x20none;\x0a\x09}\x0a\x09#heading-narrow\x20{\x0a\x09\x09display:\x20block;\x0a\x09}\x0a}\x0a\x0a@media\x20print\x20{\x0a\x09pre\x20{\x0a\x09\x09background:\x20#FFF;\x0a\x09\x09border:\x200.0625rem\x20solid\x20#BBB;\x0a\x09\x09white-space:\x20pre-wrap;\x0a\x09}\x0a}\x0a",
}
diff --git a/vendor/golang.org/x/tools/imports/fix.go b/vendor/golang.org/x/tools/imports/fix.go
index 691240926c..4c0339305d 100644
--- a/vendor/golang.org/x/tools/imports/fix.go
+++ b/vendor/golang.org/x/tools/imports/fix.go
@@ -22,6 +22,9 @@ import (
"strconv"
"strings"
"sync"
+ "time"
+ "unicode"
+ "unicode/utf8"
"golang.org/x/tools/go/ast/astutil"
"golang.org/x/tools/go/packages"
@@ -85,7 +88,7 @@ type importInfo struct {
// A packageInfo represents what's known about a package.
type packageInfo struct {
- name string // discovered package name.
+ name string // real package name, if known.
exports map[string]bool // known exports.
}
@@ -142,8 +145,8 @@ func addGlobals(f *ast.File, globals map[string]bool) {
// collectReferences builds a map of selector expressions, from
// left hand side (X) to a set of right hand sides (Sel).
-func collectReferences(f *ast.File) map[string]map[string]bool {
- refs := map[string]map[string]bool{}
+func collectReferences(f *ast.File) references {
+ refs := references{}
var visitor visitFn
visitor = func(node ast.Node) ast.Visitor {
@@ -157,7 +160,11 @@ func collectReferences(f *ast.File) map[string]map[string]bool {
break
}
if xident.Obj != nil {
- // if the parser can resolve it, it's not a package ref
+ // If the parser can resolve it, it's not a package ref.
+ break
+ }
+ if !ast.IsExported(v.Sel.Name) {
+ // Whatever this is, it's not exported from a package.
break
}
pkgName := xident.Name
@@ -166,9 +173,7 @@ func collectReferences(f *ast.File) map[string]map[string]bool {
r = make(map[string]bool)
refs[pkgName] = r
}
- if ast.IsExported(v.Sel.Name) {
- r[v.Sel.Name] = true
- }
+ r[v.Sel.Name] = true
}
return visitor
}
@@ -205,12 +210,7 @@ func (p *pass) findMissingImport(pkg string, syms map[string]bool) *importInfo {
if !ok {
continue
}
- // If the candidate import has a name, it must match pkg.
- if candidate.name != "" && candidate.name != pkg {
- continue
- }
- // Otherwise, the real name of the package must match.
- if candidate.name == "" && pkgInfo.name != pkg {
+ if p.importIdentifier(candidate) != pkg {
continue
}
@@ -229,6 +229,11 @@ func (p *pass) findMissingImport(pkg string, syms map[string]bool) *importInfo {
return nil
}
+// references is set of references found in a Go file. The first map key is the
+// left hand side of a selector expression, the second key is the right hand
+// side, and the value should always be true.
+type references map[string]map[string]bool
+
// A pass contains all the inputs and state necessary to fix a file's imports.
// It can be modified in some ways during use; see comments below.
type pass struct {
@@ -236,14 +241,14 @@ type pass struct {
fset *token.FileSet // fset used to parse f and its siblings.
f *ast.File // the file being fixed.
srcDir string // the directory containing f.
- useGoPackages bool // use go/packages to load package information.
+ fixEnv *fixEnv // the environment to use for go commands, etc.
loadRealPackageNames bool // if true, load package names from disk rather than guessing them.
otherFiles []*ast.File // sibling files.
// Intermediate state, generated by load.
existingImports map[string]*importInfo
- allRefs map[string]map[string]bool
- missingRefs map[string]map[string]bool
+ allRefs references
+ missingRefs references
// Inputs to fix. These can be augmented between successive fix calls.
lastTry bool // indicates that this is the last call and fix should clean up as best it can.
@@ -261,50 +266,32 @@ func (p *pass) loadPackageNames(imports []*importInfo) error {
unknown = append(unknown, imp.importPath)
}
- if !p.useGoPackages || !p.loadRealPackageNames {
- pathToName := importPathToNameBasic
- if p.loadRealPackageNames {
- pathToName = importPathToName
- }
- for _, path := range unknown {
- p.knownPackages[path] = &packageInfo{
- name: pathToName(path, p.srcDir),
- exports: map[string]bool{},
- }
- }
- return nil
- }
-
- cfg := newPackagesConfig(packages.LoadFiles)
- pkgs, err := packages.Load(cfg, unknown...)
+ names, err := p.fixEnv.getResolver().loadPackageNames(unknown, p.srcDir)
if err != nil {
return err
}
- for _, pkg := range pkgs {
- p.knownPackages[VendorlessPath(pkg.PkgPath)] = &packageInfo{
- name: pkg.Name,
- exports: map[string]bool{},
- }
- }
- // We may not have found all the packages. Guess the rest.
- for _, path := range unknown {
- if _, ok := p.knownPackages[path]; ok {
- continue
- }
+
+ for path, name := range names {
p.knownPackages[path] = &packageInfo{
- name: importPathToNameBasic(path, p.srcDir),
+ name: name,
exports: map[string]bool{},
}
}
return nil
}
-// importIdentifier returns the indentifier that imp will introduce.
+// importIdentifier returns the identifier that imp will introduce. It will
+// guess if the package name has not been loaded, e.g. because the source
+// is not available.
func (p *pass) importIdentifier(imp *importInfo) string {
if imp.name != "" {
return imp.name
}
- return p.knownPackages[imp.importPath].name
+ known := p.knownPackages[imp.importPath]
+ if known != nil && known.name != "" {
+ return known.name
+ }
+ return importPathToAssumedName(imp.importPath)
}
// load reads in everything necessary to run a pass, and reports whether the
@@ -312,7 +299,7 @@ func (p *pass) importIdentifier(imp *importInfo) string {
// file's missing symbols, if any, or removes unused imports if not.
func (p *pass) load() bool {
p.knownPackages = map[string]*packageInfo{}
- p.missingRefs = map[string]map[string]bool{}
+ p.missingRefs = references{}
p.existingImports = map[string]*importInfo{}
// Load basic information about the file in question.
@@ -334,7 +321,15 @@ func (p *pass) load() bool {
// Resolve all the import paths we've seen to package names, and store
// f's imports by the identifier they introduce.
imports := collectImports(p.f)
- p.loadPackageNames(append(imports, p.candidates...))
+ if p.loadRealPackageNames {
+ err := p.loadPackageNames(append(imports, p.candidates...))
+ if err != nil {
+ if Debug {
+ log.Printf("loading package names: %v", err)
+ }
+ return false
+ }
+ }
for _, imp := range imports {
p.existingImports[p.importIdentifier(imp)] = imp
}
@@ -395,12 +390,9 @@ func (p *pass) fix() bool {
continue
}
path := strings.Trim(imp.Path.Value, `""`)
- pkg, ok := p.knownPackages[path]
- if !ok {
- continue
- }
- if pkg.name != importPathToNameBasic(path, p.srcDir) {
- imp.Name = &ast.Ident{Name: pkg.name, NamePos: imp.Pos()}
+ ident := p.importIdentifier(&importInfo{importPath: path})
+ if ident != importPathToAssumedName(path) {
+ imp.Name = &ast.Ident{Name: ident, NamePos: imp.Pos()}
}
}
}
@@ -456,7 +448,7 @@ func (p *pass) addCandidate(imp *importInfo, pkg *packageInfo) {
// easily be extended by adding a file with an init function.
var fixImports = fixImportsDefault
-func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string) error {
+func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string, env *fixEnv) error {
abs, err := filepath.Abs(filename)
if err != nil {
return err
@@ -479,7 +471,6 @@ func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string) error
// Second pass: add information from other files in the same package,
// like their package vars and imports.
- p = &pass{fset: fset, f: f, srcDir: srcDir}
p.otherFiles = otherFiles
if p.load() {
return nil
@@ -492,13 +483,10 @@ func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string) error
return nil
}
- // The only things that use go/packages happen in the third pass,
- // so we can delay calling go env until this point.
- useGoPackages := shouldUseGoPackages()
-
// Third pass: get real package names where we had previously used
- // the naive algorithm.
- p = &pass{fset: fset, f: f, srcDir: srcDir, useGoPackages: useGoPackages}
+ // the naive algorithm. This is the first step that will use the
+ // environment, so we provide it here for the first time.
+ p = &pass{fset: fset, f: f, srcDir: srcDir, fixEnv: env}
p.loadRealPackageNames = true
p.otherFiles = otherFiles
if p.load() {
@@ -522,38 +510,98 @@ func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string) error
return nil
}
-// Values controlling the use of go/packages, for testing only.
-var forceGoPackages, _ = strconv.ParseBool(os.Getenv("GOIMPORTSFORCEGOPACKAGES"))
-var goPackagesDir string
-var go111ModuleEnv string
+// fixEnv contains environment variables and settings that affect the use of
+// the go command, the go/build package, etc.
+type fixEnv struct {
+ // If non-empty, these will be used instead of the
+ // process-wide values.
+ GOPATH, GOROOT, GO111MODULE, GOPROXY, GOFLAGS string
+ WorkingDir string
-func shouldUseGoPackages() bool {
- if forceGoPackages {
- return true
+ // If true, use go/packages regardless of the environment.
+ ForceGoPackages bool
+
+ resolver resolver
+}
+
+func (e *fixEnv) env() []string {
+ env := os.Environ()
+ add := func(k, v string) {
+ if v != "" {
+ env = append(env, k+"="+v)
+ }
+ }
+ add("GOPATH", e.GOPATH)
+ add("GOROOT", e.GOROOT)
+ add("GO111MODULE", e.GO111MODULE)
+ add("GOPROXY", e.GOPROXY)
+ add("GOFLAGS", e.GOFLAGS)
+ if e.WorkingDir != "" {
+ add("PWD", e.WorkingDir)
}
+ return env
+}
- cmd := exec.Command("go", "env", "GOMOD")
- cmd.Dir = goPackagesDir
- out, err := cmd.Output()
- if err != nil {
- return false
+func (e *fixEnv) getResolver() resolver {
+ if e.resolver != nil {
+ return e.resolver
+ }
+ if e.ForceGoPackages {
+ return &goPackagesResolver{env: e}
+ }
+
+ out, err := e.invokeGo("env", "GOMOD")
+ if err != nil || len(bytes.TrimSpace(out.Bytes())) == 0 {
+ return &gopathResolver{env: e}
}
- return len(bytes.TrimSpace(out)) > 0
+ return &moduleResolver{env: e}
}
-func newPackagesConfig(mode packages.LoadMode) *packages.Config {
- cfg := &packages.Config{
+func (e *fixEnv) newPackagesConfig(mode packages.LoadMode) *packages.Config {
+ return &packages.Config{
Mode: mode,
- Dir: goPackagesDir,
- Env: append(os.Environ(), "GOROOT="+build.Default.GOROOT, "GOPATH="+build.Default.GOPATH),
+ Dir: e.WorkingDir,
+ Env: e.env(),
+ }
+}
+
+func (e *fixEnv) buildContext() *build.Context {
+ ctx := build.Default
+ ctx.GOROOT = e.GOROOT
+ ctx.GOPATH = e.GOPATH
+ return &ctx
+}
+
+func (e *fixEnv) invokeGo(args ...string) (*bytes.Buffer, error) {
+ cmd := exec.Command("go", args...)
+ stdout := &bytes.Buffer{}
+ stderr := &bytes.Buffer{}
+ cmd.Stdout = stdout
+ cmd.Stderr = stderr
+ cmd.Env = e.env()
+ cmd.Dir = e.WorkingDir
+
+ if Debug {
+ defer func(start time.Time) { log.Printf("%s for %v", time.Since(start), cmdDebugStr(cmd)) }(time.Now())
}
- if go111ModuleEnv != "" {
- cfg.Env = append(cfg.Env, "GO111MODULE="+go111ModuleEnv)
+ if err := cmd.Run(); err != nil {
+ return nil, fmt.Errorf("running go: %v (stderr:\n%s)", err, stderr)
}
- return cfg
+ return stdout, nil
}
-func addStdlibCandidates(pass *pass, refs map[string]map[string]bool) {
+func cmdDebugStr(cmd *exec.Cmd) string {
+ env := make(map[string]string)
+ for _, kv := range cmd.Env {
+ split := strings.Split(kv, "=")
+ k, v := split[0], split[1]
+ env[k] = v
+ }
+
+ return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v GOPROXY=%v PWD=%v go %v", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["GOPROXY"], env["PWD"], cmd.Args)
+}
+
+func addStdlibCandidates(pass *pass, refs references) {
add := func(pkg string) {
pass.addCandidate(
&importInfo{importPath: pkg},
@@ -574,13 +622,47 @@ func addStdlibCandidates(pass *pass, refs map[string]map[string]bool) {
}
}
-func scanGoPackages(refs map[string]map[string]bool) ([]*pkg, error) {
+// A resolver does the build-system-specific parts of goimports.
+type resolver interface {
+ // loadPackageNames loads the package names in importPaths.
+ loadPackageNames(importPaths []string, srcDir string) (map[string]string, error)
+ // scan finds (at least) the packages satisfying refs. The returned slice is unordered.
+ scan(refs references) ([]*pkg, error)
+}
+
+// gopathResolver implements resolver for GOPATH and module workspaces using go/packages.
+type goPackagesResolver struct {
+ env *fixEnv
+}
+
+func (r *goPackagesResolver) loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) {
+ cfg := r.env.newPackagesConfig(packages.LoadFiles)
+ pkgs, err := packages.Load(cfg, importPaths...)
+ if err != nil {
+ return nil, err
+ }
+ names := map[string]string{}
+ for _, pkg := range pkgs {
+ names[VendorlessPath(pkg.PkgPath)] = pkg.Name
+ }
+ // We may not have found all the packages. Guess the rest.
+ for _, path := range importPaths {
+ if _, ok := names[path]; ok {
+ continue
+ }
+ names[path] = importPathToAssumedName(path)
+ }
+ return names, nil
+
+}
+
+func (r *goPackagesResolver) scan(refs references) ([]*pkg, error) {
var loadQueries []string
for pkgName := range refs {
- loadQueries = append(loadQueries, "name="+pkgName)
+ loadQueries = append(loadQueries, "iamashamedtousethedisabledqueryname="+pkgName)
}
sort.Strings(loadQueries)
- cfg := newPackagesConfig(packages.LoadFiles)
+ cfg := r.env.newPackagesConfig(packages.LoadFiles)
goPackages, err := packages.Load(cfg, loadQueries...)
if err != nil {
return nil, err
@@ -597,18 +679,10 @@ func scanGoPackages(refs map[string]map[string]bool) ([]*pkg, error) {
return scan, nil
}
-var addExternalCandidates = addExternalCandidatesDefault
-
-func addExternalCandidatesDefault(pass *pass, refs map[string]map[string]bool, filename string) error {
- var dirScan []*pkg
- if pass.useGoPackages {
- var err error
- dirScan, err = scanGoPackages(refs)
- if err != nil {
- return err
- }
- } else {
- dirScan = scanGoDirs()
+func addExternalCandidates(pass *pass, refs references, filename string) error {
+ dirScan, err := pass.fixEnv.getResolver().scan(refs)
+ if err != nil {
+ return err
}
// Search for imports matching potential package references.
@@ -633,7 +707,7 @@ func addExternalCandidatesDefault(pass *pass, refs map[string]map[string]bool, f
go func(pkgName string, symbols map[string]bool) {
defer wg.Done()
- found, err := findImport(ctx, dirScan, pkgName, symbols, filename)
+ found, err := findImport(ctx, pass.fixEnv, dirScan, pkgName, symbols, filename)
if err != nil {
firstErrOnce.Do(func() {
@@ -669,49 +743,77 @@ func addExternalCandidatesDefault(pass *pass, refs map[string]map[string]bool, f
return firstErr
}
-// importPathToNameBasic assumes the package name is the base of import path,
-// except that if the path ends in foo/vN, it assumes the package name is foo.
-func importPathToNameBasic(importPath, srcDir string) (packageName string) {
+// notIdentifier reports whether ch is an invalid identifier character.
+func notIdentifier(ch rune) bool {
+ return !('a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' ||
+ '0' <= ch && ch <= '9' ||
+ ch == '_' ||
+ ch >= utf8.RuneSelf && (unicode.IsLetter(ch) || unicode.IsDigit(ch)))
+}
+
+// importPathToAssumedName returns the assumed package name of an import path.
+// It does this using only string parsing of the import path.
+// It picks the last element of the path that does not look like a major
+// version, and then picks the valid identifier off the start of that element.
+// It is used to determine if a local rename should be added to an import for
+// clarity.
+// This function could be moved to a standard package and exported if we want
+// for use in other tools.
+func importPathToAssumedName(importPath string) string {
base := path.Base(importPath)
if strings.HasPrefix(base, "v") {
if _, err := strconv.Atoi(base[1:]); err == nil {
dir := path.Dir(importPath)
if dir != "." {
- return path.Base(dir)
+ base = path.Base(dir)
}
}
}
+ base = strings.TrimPrefix(base, "go-")
+ if i := strings.IndexFunc(base, notIdentifier); i >= 0 {
+ base = base[:i]
+ }
return base
}
+// gopathResolver implements resolver for GOPATH workspaces.
+type gopathResolver struct {
+ env *fixEnv
+}
+
+func (r *gopathResolver) loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) {
+ names := map[string]string{}
+ for _, path := range importPaths {
+ names[path] = importPathToName(r.env, path, srcDir)
+ }
+ return names, nil
+}
+
// importPathToNameGoPath finds out the actual package name, as declared in its .go files.
-// If there's a problem, it falls back to using importPathToNameBasic.
-func importPathToName(importPath, srcDir string) (packageName string) {
+// If there's a problem, it returns "".
+func importPathToName(env *fixEnv, importPath, srcDir string) (packageName string) {
// Fast path for standard library without going to disk.
if _, ok := stdlib[importPath]; ok {
return path.Base(importPath) // stdlib packages always match their paths.
}
- pkgName, err := importPathToNameGoPathParse(importPath, srcDir)
- if Debug {
- log.Printf("importPathToNameGoPathParse(%q, srcDir=%q) = %q, %v", importPath, srcDir, pkgName, err)
+ buildPkg, err := env.buildContext().Import(importPath, srcDir, build.FindOnly)
+ if err != nil {
+ return ""
}
- if err == nil {
- return pkgName
+ pkgName, err := packageDirToName(buildPkg.Dir)
+ if err != nil {
+ return ""
}
- return importPathToNameBasic(importPath, srcDir)
+ return pkgName
}
-// importPathToNameGoPathParse is a faster version of build.Import if
+// packageDirToName is a faster version of build.Import if
// the only thing desired is the package name. It uses build.FindOnly
// to find the directory and then only parses one file in the package,
// trusting that the files in the directory are consistent.
-func importPathToNameGoPathParse(importPath, srcDir string) (packageName string, err error) {
- buildPkg, err := build.Import(importPath, srcDir, build.FindOnly)
- if err != nil {
- return "", err
- }
- d, err := os.Open(buildPkg.Dir)
+func packageDirToName(dir string) (packageName string, err error) {
+ d, err := os.Open(dir)
if err != nil {
return "", err
}
@@ -731,7 +833,7 @@ func importPathToNameGoPathParse(importPath, srcDir string) (packageName string,
continue
}
nfile++
- fullFile := filepath.Join(buildPkg.Dir, name)
+ fullFile := filepath.Join(dir, name)
fset := token.NewFileSet()
f, err := parser.ParseFile(fset, fullFile, nil, parser.PackageClauseOnly)
@@ -805,8 +907,7 @@ func distance(basepath, targetpath string) int {
return strings.Count(p, string(filepath.Separator)) + 1
}
-// scanGoDirs populates the dirScan map for GOPATH and GOROOT.
-func scanGoDirs() []*pkg {
+func (r *gopathResolver) scan(_ references) ([]*pkg, error) {
dupCheck := make(map[string]bool)
var result []*pkg
@@ -826,8 +927,8 @@ func scanGoDirs() []*pkg {
dir: dir,
})
}
- gopathwalk.Walk(gopathwalk.SrcDirsRoots(), add, gopathwalk.Options{Debug: Debug, ModulesEnabled: false})
- return result
+ gopathwalk.Walk(gopathwalk.SrcDirsRoots(r.env.buildContext()), add, gopathwalk.Options{Debug: Debug, ModulesEnabled: false})
+ return result, nil
}
// VendorlessPath returns the devendorized version of the import path ipath.
@@ -845,7 +946,7 @@ func VendorlessPath(ipath string) string {
// loadExports returns the set of exported symbols in the package at dir.
// It returns nil on error or if the package name in dir does not match expectPackage.
-func loadExports(ctx context.Context, expectPackage string, pkg *pkg) (map[string]bool, error) {
+func loadExports(ctx context.Context, env *fixEnv, expectPackage string, pkg *pkg) (map[string]bool, error) {
if Debug {
log.Printf("loading exports in dir %s (seeking package %s)", pkg.dir, expectPackage)
}
@@ -855,10 +956,7 @@ func loadExports(ctx context.Context, expectPackage string, pkg *pkg) (map[strin
for _, fname := range pkg.goPackage.CompiledGoFiles {
f, err := parser.ParseFile(fset, fname, nil, 0)
if err != nil {
- if Debug {
- log.Printf("Parsing %s: %v", fname, err)
- }
- return nil, err
+ return nil, fmt.Errorf("parsing %s: %v", fname, err)
}
for name := range f.Scope.Objects {
if ast.IsExported(name) {
@@ -871,34 +969,29 @@ func loadExports(ctx context.Context, expectPackage string, pkg *pkg) (map[strin
exports := make(map[string]bool)
- buildCtx := build.Default
-
- // ReadDir is like ioutil.ReadDir, but only returns *.go files
- // and filters out _test.go files since they're not relevant
- // and only slow things down.
- buildCtx.ReadDir = func(dir string) (notTests []os.FileInfo, err error) {
- all, err := ioutil.ReadDir(dir)
- if err != nil {
- return nil, err
+ // Look for non-test, buildable .go files which could provide exports.
+ all, err := ioutil.ReadDir(pkg.dir)
+ if err != nil {
+ return nil, err
+ }
+ var files []os.FileInfo
+ for _, fi := range all {
+ name := fi.Name()
+ if !strings.HasSuffix(name, ".go") || strings.HasSuffix(name, "_test.go") {
+ continue
}
- notTests = all[:0]
- for _, fi := range all {
- name := fi.Name()
- if strings.HasSuffix(name, ".go") && !strings.HasSuffix(name, "_test.go") {
- notTests = append(notTests, fi)
- }
+ match, err := env.buildContext().MatchFile(pkg.dir, fi.Name())
+ if err != nil || !match {
+ continue
}
- return notTests, nil
+ files = append(files, fi)
}
- files, err := buildCtx.ReadDir(pkg.dir)
- if err != nil {
- log.Print(err)
- return nil, err
+ if len(files) == 0 {
+ return nil, fmt.Errorf("dir %v contains no buildable, non-test .go files", pkg.dir)
}
fset := token.NewFileSet()
-
for _, fi := range files {
select {
case <-ctx.Done():
@@ -906,30 +999,19 @@ func loadExports(ctx context.Context, expectPackage string, pkg *pkg) (map[strin
default:
}
- match, err := buildCtx.MatchFile(pkg.dir, fi.Name())
- if err != nil || !match {
- continue
- }
fullFile := filepath.Join(pkg.dir, fi.Name())
f, err := parser.ParseFile(fset, fullFile, nil, 0)
if err != nil {
- if Debug {
- log.Printf("Parsing %s: %v", fullFile, err)
- }
- return nil, err
+ return nil, fmt.Errorf("parsing %s: %v", fullFile, err)
}
pkgName := f.Name.Name
if pkgName == "documentation" {
// Special case from go/build.ImportDir, not
- // handled by buildCtx.MatchFile.
+ // handled by MatchFile above.
continue
}
if pkgName != expectPackage {
- err := fmt.Errorf("scan of dir %v is not expected package %v (actually %v)", pkg.dir, expectPackage, pkgName)
- if Debug {
- log.Print(err)
- }
- return nil, err
+ return nil, fmt.Errorf("scan of dir %v is not expected package %v (actually %v)", pkg.dir, expectPackage, pkgName)
}
for name := range f.Scope.Objects {
if ast.IsExported(name) {
@@ -951,7 +1033,7 @@ func loadExports(ctx context.Context, expectPackage string, pkg *pkg) (map[strin
// findImport searches for a package with the given symbols.
// If no package is found, findImport returns ("", false, nil)
-func findImport(ctx context.Context, dirScan []*pkg, pkgName string, symbols map[string]bool, filename string) (*pkg, error) {
+func findImport(ctx context.Context, env *fixEnv, dirScan []*pkg, pkgName string, symbols map[string]bool, filename string) (*pkg, error) {
pkgDir, err := filepath.Abs(filename)
if err != nil {
return nil, err
@@ -1013,8 +1095,11 @@ func findImport(ctx context.Context, dirScan []*pkg, pkgName string, symbols map
wg.Done()
}()
- exports, err := loadExports(ctx, pkgName, c.pkg)
+ exports, err := loadExports(ctx, env, pkgName, c.pkg)
if err != nil {
+ if Debug {
+ log.Printf("loading exports in dir %s (seeking package %s): %v", c.pkg.dir, pkgName, err)
+ }
resc <- nil
return
}
diff --git a/vendor/golang.org/x/tools/imports/imports.go b/vendor/golang.org/x/tools/imports/imports.go
index 717a6f3aa0..07101cb804 100644
--- a/vendor/golang.org/x/tools/imports/imports.go
+++ b/vendor/golang.org/x/tools/imports/imports.go
@@ -13,6 +13,7 @@ import (
"bytes"
"fmt"
"go/ast"
+ "go/build"
"go/format"
"go/parser"
"go/printer"
@@ -45,6 +46,11 @@ type Options struct {
// so it is important that filename be accurate.
// To process data ``as if'' it were in filename, pass the data as a non-nil src.
func Process(filename string, src []byte, opt *Options) ([]byte, error) {
+ env := &fixEnv{GOPATH: build.Default.GOPATH, GOROOT: build.Default.GOROOT}
+ return process(filename, src, opt, env)
+}
+
+func process(filename string, src []byte, opt *Options, env *fixEnv) ([]byte, error) {
if opt == nil {
opt = &Options{Comments: true, TabIndent: true, TabWidth: 8}
}
@@ -63,7 +69,7 @@ func Process(filename string, src []byte, opt *Options) ([]byte, error) {
}
if !opt.FormatOnly {
- if err := fixImports(fileSet, file, filename); err != nil {
+ if err := fixImports(fileSet, file, filename, env); err != nil {
return nil, err
}
}
diff --git a/vendor/golang.org/x/tools/imports/mkstdlib.go b/vendor/golang.org/x/tools/imports/mkstdlib.go
index 5e53378fc8..5059ad4d7d 100644
--- a/vendor/golang.org/x/tools/imports/mkstdlib.go
+++ b/vendor/golang.org/x/tools/imports/mkstdlib.go
@@ -58,6 +58,7 @@ func main() {
mustOpen(api("go1.9.txt")),
mustOpen(api("go1.10.txt")),
mustOpen(api("go1.11.txt")),
+ mustOpen(api("go1.12.txt")),
)
sc := bufio.NewScanner(f)
diff --git a/vendor/golang.org/x/tools/imports/mod.go b/vendor/golang.org/x/tools/imports/mod.go
new file mode 100644
index 0000000000..ec769145cc
--- /dev/null
+++ b/vendor/golang.org/x/tools/imports/mod.go
@@ -0,0 +1,351 @@
+package imports
+
+import (
+ "bytes"
+ "encoding/json"
+ "io/ioutil"
+ "log"
+ "os"
+ "path"
+ "path/filepath"
+ "regexp"
+ "sort"
+ "strconv"
+ "strings"
+ "sync"
+ "time"
+
+ "golang.org/x/tools/internal/gopathwalk"
+ "golang.org/x/tools/internal/module"
+)
+
+// moduleResolver implements resolver for modules using the go command as little
+// as feasible.
+type moduleResolver struct {
+ env *fixEnv
+
+ main *moduleJSON
+ modsByModPath []*moduleJSON // All modules, ordered by # of path components in module Path...
+ modsByDir []*moduleJSON // ...or Dir.
+}
+
+type moduleJSON struct {
+ Path string // module path
+ Version string // module version
+ Versions []string // available module versions (with -versions)
+ Replace *moduleJSON // replaced by this module
+ Time *time.Time // time version was created
+ Update *moduleJSON // available update, if any (with -u)
+ Main bool // is this the main module?
+ Indirect bool // is this module only an indirect dependency of main module?
+ Dir string // directory holding files for this module, if any
+ GoMod string // path to go.mod file for this module, if any
+ Error *moduleErrorJSON // error loading module
+}
+
+type moduleErrorJSON struct {
+ Err string // the error itself
+}
+
+func (r *moduleResolver) init() error {
+ if r.main != nil {
+ return nil
+ }
+ stdout, err := r.env.invokeGo("list", "-m", "-json", "...")
+ if err != nil {
+ return err
+ }
+ for dec := json.NewDecoder(stdout); dec.More(); {
+ mod := &moduleJSON{}
+ if err := dec.Decode(mod); err != nil {
+ return err
+ }
+ if mod.Dir == "" {
+ if Debug {
+ log.Printf("module %v has not been downloaded and will be ignored", mod.Path)
+ }
+ // Can't do anything with a module that's not downloaded.
+ continue
+ }
+ r.modsByModPath = append(r.modsByModPath, mod)
+ r.modsByDir = append(r.modsByDir, mod)
+ if mod.Main {
+ r.main = mod
+ }
+ }
+
+ sort.Slice(r.modsByModPath, func(i, j int) bool {
+ count := func(x int) int {
+ return strings.Count(r.modsByModPath[x].Path, "/")
+ }
+ return count(j) < count(i) // descending order
+ })
+ sort.Slice(r.modsByDir, func(i, j int) bool {
+ count := func(x int) int {
+ return strings.Count(r.modsByDir[x].Dir, "/")
+ }
+ return count(j) < count(i) // descending order
+ })
+
+ return nil
+}
+
+// findPackage returns the module and directory that contains the package at
+// the given import path, or returns nil, "" if no module is in scope.
+func (r *moduleResolver) findPackage(importPath string) (*moduleJSON, string) {
+ for _, m := range r.modsByModPath {
+ if !strings.HasPrefix(importPath, m.Path) {
+ continue
+ }
+ pathInModule := importPath[len(m.Path):]
+ pkgDir := filepath.Join(m.Dir, pathInModule)
+ if dirIsNestedModule(pkgDir, m) {
+ continue
+ }
+
+ pkgFiles, err := ioutil.ReadDir(pkgDir)
+ if err != nil {
+ continue
+ }
+
+ // A module only contains a package if it has buildable go
+ // files in that directory. If not, it could be provided by an
+ // outer module. See #29736.
+ for _, fi := range pkgFiles {
+ if ok, _ := r.env.buildContext().MatchFile(pkgDir, fi.Name()); ok {
+ return m, pkgDir
+ }
+ }
+ }
+ return nil, ""
+}
+
+// findModuleByDir returns the module that contains dir, or nil if no such
+// module is in scope.
+func (r *moduleResolver) findModuleByDir(dir string) *moduleJSON {
+ // This is quite tricky and may not be correct. dir could be:
+ // - a package in the main module.
+ // - a replace target underneath the main module's directory.
+ // - a nested module in the above.
+ // - a replace target somewhere totally random.
+ // - a nested module in the above.
+ // - in the mod cache.
+ // - in /vendor/ in -mod=vendor mode.
+ // - nested module? Dunno.
+ // Rumor has it that replace targets cannot contain other replace targets.
+ for _, m := range r.modsByDir {
+ if !strings.HasPrefix(dir, m.Dir) {
+ continue
+ }
+
+ if dirIsNestedModule(dir, m) {
+ continue
+ }
+
+ return m
+ }
+ return nil
+}
+
+// dirIsNestedModule reports if dir is contained in a nested module underneath
+// mod, not actually in mod.
+func dirIsNestedModule(dir string, mod *moduleJSON) bool {
+ if !strings.HasPrefix(dir, mod.Dir) {
+ return false
+ }
+ mf := findModFile(dir)
+ if mf == "" {
+ return false
+ }
+ return filepath.Dir(mf) != mod.Dir
+}
+
+func findModFile(dir string) string {
+ for {
+ f := filepath.Join(dir, "go.mod")
+ info, err := os.Stat(f)
+ if err == nil && !info.IsDir() {
+ return f
+ }
+ d := filepath.Dir(dir)
+ if len(d) >= len(dir) {
+ return "" // reached top of file system, no go.mod
+ }
+ dir = d
+ }
+}
+
+func (r *moduleResolver) loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) {
+ if err := r.init(); err != nil {
+ return nil, err
+ }
+ names := map[string]string{}
+ for _, path := range importPaths {
+ _, packageDir := r.findPackage(path)
+ if packageDir == "" {
+ continue
+ }
+ name, err := packageDirToName(packageDir)
+ if err != nil {
+ continue
+ }
+ names[path] = name
+ }
+ return names, nil
+}
+
+func (r *moduleResolver) scan(_ references) ([]*pkg, error) {
+ if err := r.init(); err != nil {
+ return nil, err
+ }
+
+ // Walk GOROOT, GOPATH/pkg/mod, and the main module.
+ roots := []gopathwalk.Root{
+ {filepath.Join(r.env.GOROOT, "/src"), gopathwalk.RootGOROOT},
+ {r.main.Dir, gopathwalk.RootCurrentModule},
+ }
+ for _, p := range filepath.SplitList(r.env.GOPATH) {
+ roots = append(roots, gopathwalk.Root{filepath.Join(p, "/pkg/mod"), gopathwalk.RootModuleCache})
+ }
+
+ // Walk replace targets, just in case they're not in any of the above.
+ for _, mod := range r.modsByModPath {
+ if mod.Replace != nil {
+ roots = append(roots, gopathwalk.Root{mod.Dir, gopathwalk.RootOther})
+ }
+ }
+
+ var result []*pkg
+ dupCheck := make(map[string]bool)
+ var mu sync.Mutex
+
+ gopathwalk.Walk(roots, func(root gopathwalk.Root, dir string) {
+ mu.Lock()
+ defer mu.Unlock()
+
+ if _, dup := dupCheck[dir]; dup {
+ return
+ }
+
+ dupCheck[dir] = true
+
+ subdir := ""
+ if dir != root.Path {
+ subdir = dir[len(root.Path)+len("/"):]
+ }
+ importPath := filepath.ToSlash(subdir)
+ if strings.HasPrefix(importPath, "vendor/") {
+ // Ignore vendor dirs. If -mod=vendor is on, then things
+ // should mostly just work, but when it's not vendor/
+ // is a mess. There's no easy way to tell if it's on.
+ // We can still find things in the mod cache and
+ // map them into /vendor when -mod=vendor is on.
+ return
+ }
+ switch root.Type {
+ case gopathwalk.RootCurrentModule:
+ importPath = path.Join(r.main.Path, filepath.ToSlash(subdir))
+ case gopathwalk.RootModuleCache:
+ matches := modCacheRegexp.FindStringSubmatch(subdir)
+ modPath, err := module.DecodePath(filepath.ToSlash(matches[1]))
+ if err != nil {
+ if Debug {
+ log.Printf("decoding module cache path %q: %v", subdir, err)
+ }
+ return
+ }
+ importPath = path.Join(modPath, filepath.ToSlash(matches[3]))
+ case gopathwalk.RootGOROOT:
+ importPath = subdir
+ }
+
+ // Check if the directory is underneath a module that's in scope.
+ if mod := r.findModuleByDir(dir); mod != nil {
+ // It is. If dir is the target of a replace directive,
+ // our guessed import path is wrong. Use the real one.
+ if mod.Dir == dir {
+ importPath = mod.Path
+ } else {
+ dirInMod := dir[len(mod.Dir)+len("/"):]
+ importPath = path.Join(mod.Path, filepath.ToSlash(dirInMod))
+ }
+ } else {
+ // The package is in an unknown module. Check that it's
+ // not obviously impossible to import.
+ var modFile string
+ switch root.Type {
+ case gopathwalk.RootModuleCache:
+ matches := modCacheRegexp.FindStringSubmatch(subdir)
+ modFile = filepath.Join(matches[1], "@", matches[2], "go.mod")
+ default:
+ modFile = findModFile(dir)
+ }
+
+ modBytes, err := ioutil.ReadFile(modFile)
+ if err == nil && !strings.HasPrefix(importPath, modulePath(modBytes)) {
+ // The module's declared path does not match
+ // its expected path. It probably needs a
+ // replace directive we don't have.
+ return
+ }
+ }
+ // We may have discovered a package that has a different version
+ // in scope already. Canonicalize to that one if possible.
+ if _, canonicalDir := r.findPackage(importPath); canonicalDir != "" {
+ dir = canonicalDir
+ }
+
+ result = append(result, &pkg{
+ importPathShort: VendorlessPath(importPath),
+ dir: dir,
+ })
+ }, gopathwalk.Options{Debug: Debug, ModulesEnabled: true})
+ return result, nil
+}
+
+// modCacheRegexp splits a path in a module cache into module, module version, and package.
+var modCacheRegexp = regexp.MustCompile(`(.*)@([^/\\]*)(.*)`)
+
+var (
+ slashSlash = []byte("//")
+ moduleStr = []byte("module")
+)
+
+// modulePath returns the module path from the gomod file text.
+// If it cannot find a module path, it returns an empty string.
+// It is tolerant of unrelated problems in the go.mod file.
+//
+// Copied from cmd/go/internal/modfile.
+func modulePath(mod []byte) string {
+ for len(mod) > 0 {
+ line := mod
+ mod = nil
+ if i := bytes.IndexByte(line, '\n'); i >= 0 {
+ line, mod = line[:i], line[i+1:]
+ }
+ if i := bytes.Index(line, slashSlash); i >= 0 {
+ line = line[:i]
+ }
+ line = bytes.TrimSpace(line)
+ if !bytes.HasPrefix(line, moduleStr) {
+ continue
+ }
+ line = line[len(moduleStr):]
+ n := len(line)
+ line = bytes.TrimSpace(line)
+ if len(line) == n || len(line) == 0 {
+ continue
+ }
+
+ if line[0] == '"' || line[0] == '`' {
+ p, err := strconv.Unquote(string(line))
+ if err != nil {
+ return "" // malformed quoted string or multiline module path
+ }
+ return p
+ }
+
+ return string(line)
+ }
+ return "" // missing module path
+}
diff --git a/vendor/golang.org/x/tools/imports/zstdlib.go b/vendor/golang.org/x/tools/imports/zstdlib.go
index ca4f0b2f21..c18a0095b2 100644
--- a/vendor/golang.org/x/tools/imports/zstdlib.go
+++ b/vendor/golang.org/x/tools/imports/zstdlib.go
@@ -112,6 +112,7 @@ var stdlib = map[string]map[string]bool{
"Reader": true,
"Repeat": true,
"Replace": true,
+ "ReplaceAll": true,
"Runes": true,
"Split": true,
"SplitAfter": true,
@@ -441,6 +442,9 @@ var stdlib = map[string]map[string]bool{
"RequireAnyClientCert": true,
"Server": true,
"SignatureScheme": true,
+ "TLS_AES_128_GCM_SHA256": true,
+ "TLS_AES_256_GCM_SHA384": true,
+ "TLS_CHACHA20_POLY1305_SHA256": true,
"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA": true,
"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256": true,
"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256": true,
@@ -469,6 +473,7 @@ var stdlib = map[string]map[string]bool{
"VersionTLS10": true,
"VersionTLS11": true,
"VersionTLS12": true,
+ "VersionTLS13": true,
"X25519": true,
"X509KeyPair": true,
},
@@ -1835,6 +1840,7 @@ var stdlib = map[string]map[string]bool{
"R_PPC_UADDR32": true,
"R_RISCV": true,
"R_RISCV_32": true,
+ "R_RISCV_32_PCREL": true,
"R_RISCV_64": true,
"R_RISCV_ADD16": true,
"R_RISCV_ADD32": true,
@@ -2260,6 +2266,7 @@ var stdlib = map[string]map[string]bool{
"IMAGE_FILE_MACHINE_AMD64": true,
"IMAGE_FILE_MACHINE_ARM": true,
"IMAGE_FILE_MACHINE_ARM64": true,
+ "IMAGE_FILE_MACHINE_ARMNT": true,
"IMAGE_FILE_MACHINE_EBC": true,
"IMAGE_FILE_MACHINE_I386": true,
"IMAGE_FILE_MACHINE_IA64": true,
@@ -2753,6 +2760,7 @@ var stdlib = map[string]map[string]bool{
"New": true,
"Note": true,
"Package": true,
+ "PreserveAST": true,
"Synopsis": true,
"ToHTML": true,
"ToText": true,
@@ -2764,9 +2772,10 @@ var stdlib = map[string]map[string]bool{
"Source": true,
},
"go/importer": map[string]bool{
- "Default": true,
- "For": true,
- "Lookup": true,
+ "Default": true,
+ "For": true,
+ "ForCompiler": true,
+ "Lookup": true,
},
"go/parser": map[string]bool{
"AllErrors": true,
@@ -3296,6 +3305,7 @@ var stdlib = map[string]map[string]bool{
"SeekEnd": true,
"SeekStart": true,
"Seeker": true,
+ "StringWriter": true,
"TeeReader": true,
"WriteCloser": true,
"WriteSeeker": true,
@@ -3498,6 +3508,12 @@ var stdlib = map[string]map[string]bool{
"Word": true,
},
"math/bits": map[string]bool{
+ "Add": true,
+ "Add32": true,
+ "Add64": true,
+ "Div": true,
+ "Div32": true,
+ "Div64": true,
"LeadingZeros": true,
"LeadingZeros16": true,
"LeadingZeros32": true,
@@ -3508,6 +3524,9 @@ var stdlib = map[string]map[string]bool{
"Len32": true,
"Len64": true,
"Len8": true,
+ "Mul": true,
+ "Mul32": true,
+ "Mul64": true,
"OnesCount": true,
"OnesCount16": true,
"OnesCount32": true,
@@ -3527,6 +3546,9 @@ var stdlib = map[string]map[string]bool{
"RotateLeft32": true,
"RotateLeft64": true,
"RotateLeft8": true,
+ "Sub": true,
+ "Sub32": true,
+ "Sub64": true,
"TrailingZeros": true,
"TrailingZeros16": true,
"TrailingZeros32": true,
@@ -3870,6 +3892,7 @@ var stdlib = map[string]map[string]bool{
"StatusTeapot": true,
"StatusTemporaryRedirect": true,
"StatusText": true,
+ "StatusTooEarly": true,
"StatusTooManyRequests": true,
"StatusUnauthorized": true,
"StatusUnavailableForLegalReasons": true,
@@ -4140,6 +4163,7 @@ var stdlib = map[string]map[string]bool{
"Truncate": true,
"Unsetenv": true,
"UserCacheDir": true,
+ "UserHomeDir": true,
},
"os/exec": map[string]bool{
"Cmd": true,
@@ -4244,6 +4268,7 @@ var stdlib = map[string]map[string]bool{
"MakeMapWithSize": true,
"MakeSlice": true,
"Map": true,
+ "MapIter": true,
"MapOf": true,
"Method": true,
"New": true,
@@ -4419,9 +4444,12 @@ var stdlib = map[string]map[string]bool{
"Version": true,
},
"runtime/debug": map[string]bool{
+ "BuildInfo": true,
"FreeOSMemory": true,
"GCStats": true,
+ "Module": true,
"PrintStack": true,
+ "ReadBuildInfo": true,
"ReadGCStats": true,
"SetGCPercent": true,
"SetMaxStack": true,
@@ -4547,6 +4575,7 @@ var stdlib = map[string]map[string]bool{
"Reader": true,
"Repeat": true,
"Replace": true,
+ "ReplaceAll": true,
"Replacer": true,
"Split": true,
"SplitAfter": true,
@@ -6105,6 +6134,7 @@ var stdlib = map[string]map[string]bool{
"FreeLibrary": true,
"Fsid": true,
"Fstat": true,
+ "Fstatat": true,
"Fstatfs": true,
"Fstore_t": true,
"Fsync": true,
@@ -9362,6 +9392,7 @@ var stdlib = map[string]map[string]bool{
"Syscall": true,
"Syscall12": true,
"Syscall15": true,
+ "Syscall18": true,
"Syscall6": true,
"Syscall9": true,
"Sysctl": true,
@@ -9630,6 +9661,7 @@ var stdlib = map[string]map[string]bool{
"TransmitFile": true,
"TransmitFileBuffers": true,
"Truncate": true,
+ "UNIX_PATH_MAX": true,
"USAGE_MATCH_TYPE_AND": true,
"USAGE_MATCH_TYPE_OR": true,
"UTF16FromString": true,
diff --git a/vendor/golang.org/x/tools/internal/gopathwalk/walk.go b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go
index a561f9f414..04bb96a362 100644
--- a/vendor/golang.org/x/tools/internal/gopathwalk/walk.go
+++ b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go
@@ -35,6 +35,7 @@ const (
RootGOPATH
RootCurrentModule
RootModuleCache
+ RootOther
)
// A Root is a starting point for a Walk.
@@ -44,10 +45,10 @@ type Root struct {
}
// SrcDirsRoots returns the roots from build.Default.SrcDirs(). Not modules-compatible.
-func SrcDirsRoots() []Root {
+func SrcDirsRoots(ctx *build.Context) []Root {
var roots []Root
- roots = append(roots, Root{filepath.Join(build.Default.GOROOT, "src"), RootGOROOT})
- for _, p := range filepath.SplitList(build.Default.GOPATH) {
+ roots = append(roots, Root{filepath.Join(ctx.GOROOT, "src"), RootGOROOT})
+ for _, p := range filepath.SplitList(ctx.GOPATH) {
roots = append(roots, Root{filepath.Join(p, "src"), RootGOPATH})
}
return roots
@@ -162,7 +163,7 @@ func (w *walker) shouldSkipDir(fi os.FileInfo) bool {
func (w *walker) walk(path string, typ os.FileMode) error {
dir := filepath.Dir(path)
if typ.IsRegular() {
- if dir == w.root.Path {
+ if dir == w.root.Path && (w.root.Type == RootGOROOT || w.root.Type == RootGOPATH) {
// Doesn't make sense to have regular files
// directly in your $GOPATH/src or $GOROOT/src.
return fastwalk.SkipFiles
diff --git a/vendor/golang.org/x/tools/internal/lsp/cache/file.go b/vendor/golang.org/x/tools/internal/lsp/cache/file.go
index 406fe3cb90..d75c69168f 100644
--- a/vendor/golang.org/x/tools/internal/lsp/cache/file.go
+++ b/vendor/golang.org/x/tools/internal/lsp/cache/file.go
@@ -5,7 +5,6 @@
package cache
import (
- "fmt"
"go/ast"
"go/token"
"io/ioutil"
@@ -25,70 +24,64 @@ type File struct {
pkg *packages.Package
}
-// Read returns the contents of the file, reading it from file system if needed.
-func (f *File) Read() ([]byte, error) {
+// GetContent returns the contents of the file, reading it from file system if needed.
+func (f *File) GetContent() []byte {
f.view.mu.Lock()
defer f.view.mu.Unlock()
- return f.read()
+ f.read()
+ return f.content
}
-func (f *File) GetFileSet() (*token.FileSet, error) {
- if f.view.Config.Fset == nil {
- return nil, fmt.Errorf("no fileset for file view config")
- }
- return f.view.Config.Fset, nil
+func (f *File) GetFileSet() *token.FileSet {
+ return f.view.Config.Fset
}
-func (f *File) GetToken() (*token.File, error) {
+func (f *File) GetToken() *token.File {
f.view.mu.Lock()
defer f.view.mu.Unlock()
if f.token == nil {
if err := f.view.parse(f.URI); err != nil {
- return nil, err
- }
- if f.token == nil {
- return nil, fmt.Errorf("failed to find or parse %v", f.URI)
+ return nil
}
}
- return f.token, nil
+ return f.token
}
-func (f *File) GetAST() (*ast.File, error) {
+func (f *File) GetAST() *ast.File {
f.view.mu.Lock()
defer f.view.mu.Unlock()
if f.ast == nil {
if err := f.view.parse(f.URI); err != nil {
- return nil, err
+ return nil
}
}
- return f.ast, nil
+ return f.ast
}
-func (f *File) GetPackage() (*packages.Package, error) {
+func (f *File) GetPackage() *packages.Package {
f.view.mu.Lock()
defer f.view.mu.Unlock()
if f.pkg == nil {
if err := f.view.parse(f.URI); err != nil {
- return nil, err
+ return nil
}
}
- return f.pkg, nil
+ return f.pkg
}
// read is the internal part of Read that presumes the lock is already held
-func (f *File) read() ([]byte, error) {
+func (f *File) read() {
if f.content != nil {
- return f.content, nil
+ return
}
// we don't know the content yet, so read it
filename, err := f.URI.Filename()
if err != nil {
- return nil, err
+ return
}
content, err := ioutil.ReadFile(filename)
if err != nil {
- return nil, err
+ return
}
f.content = content
- return f.content, nil
}
diff --git a/vendor/golang.org/x/tools/internal/lsp/cache/view.go b/vendor/golang.org/x/tools/internal/lsp/cache/view.go
index 812fa1daaf..8c719eaddc 100644
--- a/vendor/golang.org/x/tools/internal/lsp/cache/view.go
+++ b/vendor/golang.org/x/tools/internal/lsp/cache/view.go
@@ -7,7 +7,15 @@ package cache
import (
"context"
"fmt"
+ "go/ast"
+ "go/scanner"
"go/token"
+ "go/types"
+ "io/ioutil"
+ "log"
+ "os"
+ "path/filepath"
+ "strings"
"sync"
"golang.org/x/tools/go/packages"
@@ -20,6 +28,8 @@ type View struct {
Config packages.Config
files map[source.URI]*File
+
+ analysisCache *source.AnalysisCache
}
// NewView creates a new View, given a root path and go/packages configuration.
@@ -35,13 +45,32 @@ func (v *View) FileSet() *token.FileSet {
return v.Config.Fset
}
+func (v *View) GetAnalysisCache() *source.AnalysisCache {
+ v.analysisCache = source.NewAnalysisCache()
+ return v.analysisCache
+}
+
// SetContent sets the overlay contents for a file. A nil content value will
// remove the file from the active set and revert it to its on-disk contents.
func (v *View) SetContent(ctx context.Context, uri source.URI, content []byte) (source.View, error) {
v.mu.Lock()
defer v.mu.Unlock()
- f := v.getFile(uri)
+ newView := NewView(&v.Config)
+
+ for fURI, f := range v.files {
+ newView.files[fURI] = &File{
+ URI: fURI,
+ view: newView,
+ active: f.active,
+ content: f.content,
+ ast: f.ast,
+ token: f.token,
+ pkg: f.pkg,
+ }
+ }
+
+ f := newView.getFile(uri)
f.content = content
// Resetting the contents invalidates the ast, token, and pkg fields.
@@ -66,8 +95,7 @@ func (v *View) SetContent(ctx context.Context, uri source.URI, content []byte) (
}
}
- // TODO(rstambler): We should really return a new, updated view.
- return v, nil
+ return newView, nil
}
// GetFile returns a File for the given URI. It will always succeed because it
@@ -97,6 +125,7 @@ func (v *View) parse(uri source.URI) error {
if err != nil {
return err
}
+ // TODO(rstambler): Enforce here that LoadMode is LoadImports?
pkgs, err := packages.Load(&v.Config, fmt.Sprintf("file=%s", path))
if len(pkgs) == 0 {
if err == nil {
@@ -104,17 +133,278 @@ func (v *View) parse(uri source.URI) error {
}
return err
}
+ var foundPkg bool // true if we found the package for uri
for _, pkg := range pkgs {
+ // TODO(rstambler): Get real TypeSizes from go/packages (golang.org/issues/30139).
+ pkg.TypesSizes = &types.StdSizes{}
+
+ imp := &importer{
+ entries: make(map[string]*entry),
+ packages: make(map[string]*packages.Package),
+ v: v,
+ topLevelPkgPath: pkg.PkgPath,
+ }
+ if err := imp.addImports(pkg.PkgPath, pkg); err != nil {
+ return err
+ }
+ // Start prefetching direct imports.
+ for importPath := range pkg.Imports {
+ go imp.Import(importPath)
+ }
+ imp.importPackage(pkg.PkgPath)
+
// Add every file in this package to our cache.
- for _, fAST := range pkg.Syntax {
+ for _, file := range pkg.Syntax {
// TODO: If a file is in multiple packages, which package do we store?
- fToken := v.Config.Fset.File(fAST.Pos())
- fURI := source.ToURI(fToken.Name())
- f := v.getFile(fURI)
- f.token = fToken
- f.ast = fAST
+ if !file.Pos().IsValid() {
+ log.Printf("invalid position for file %v", file.Name)
+ continue
+ }
+ tok := imp.v.Config.Fset.File(file.Pos())
+ if tok == nil {
+ log.Printf("no token.File for %v", file.Name)
+ continue
+ }
+ fURI := source.ToURI(tok.Name())
+ if fURI == uri {
+ foundPkg = true
+ }
+ f := imp.v.getFile(fURI)
+ f.token = tok
+ f.ast = file
f.pkg = pkg
}
}
+ if !foundPkg {
+ return fmt.Errorf("no package found for %v", uri)
+ }
return nil
}
+
+type importer struct {
+ mu sync.Mutex
+ entries map[string]*entry
+ packages map[string]*packages.Package
+ topLevelPkgPath string
+
+ v *View
+}
+
+type entry struct {
+ pkg *types.Package
+ err error
+ ready chan struct{}
+}
+
+func (imp *importer) addImports(path string, pkg *packages.Package) error {
+ if _, ok := imp.packages[path]; ok {
+ return nil
+ }
+ imp.packages[path] = pkg
+ for importPath, importPkg := range pkg.Imports {
+ if err := imp.addImports(importPath, importPkg); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+func (imp *importer) Import(path string) (*types.Package, error) {
+ if path == imp.topLevelPkgPath {
+ return nil, fmt.Errorf("import cycle: [%v]", path)
+ }
+ imp.mu.Lock()
+ e, ok := imp.entries[path]
+ if ok {
+ // cache hit
+ imp.mu.Unlock()
+ // wait for entry to become ready
+ <-e.ready
+ } else {
+ // cache miss
+ e = &entry{ready: make(chan struct{})}
+ imp.entries[path] = e
+ imp.mu.Unlock()
+
+ // This goroutine becomes responsible for populating
+ // the entry and broadcasting its readiness.
+ e.pkg, e.err = imp.importPackage(path)
+ close(e.ready)
+ }
+ return e.pkg, e.err
+}
+
+func (imp *importer) importPackage(pkgPath string) (*types.Package, error) {
+ imp.mu.Lock()
+ pkg, ok := imp.packages[pkgPath]
+ imp.mu.Unlock()
+ if !ok {
+ return nil, fmt.Errorf("no metadata for %v", pkgPath)
+ }
+ pkg.Fset = imp.v.Config.Fset
+ appendError := func(err error) {
+ imp.appendPkgError(pkg, err)
+ }
+ files, errs := imp.parseFiles(pkg.CompiledGoFiles)
+ for _, err := range errs {
+ appendError(err)
+ }
+ pkg.Syntax = files
+ cfg := &types.Config{
+ Error: appendError,
+ Importer: imp,
+ }
+ pkg.Types = types.NewPackage(pkg.PkgPath, pkg.Name)
+ pkg.TypesInfo = &types.Info{
+ Types: make(map[ast.Expr]types.TypeAndValue),
+ Defs: make(map[*ast.Ident]types.Object),
+ Uses: make(map[*ast.Ident]types.Object),
+ Implicits: make(map[ast.Node]types.Object),
+ Selections: make(map[*ast.SelectorExpr]*types.Selection),
+ Scopes: make(map[ast.Node]*types.Scope),
+ }
+ check := types.NewChecker(cfg, imp.v.Config.Fset, pkg.Types, pkg.TypesInfo)
+ check.Files(pkg.Syntax)
+
+ return pkg.Types, nil
+}
+
+func (imp *importer) appendPkgError(pkg *packages.Package, err error) {
+ if err == nil {
+ return
+ }
+ var errs []packages.Error
+ switch err := err.(type) {
+ case *scanner.Error:
+ errs = append(errs, packages.Error{
+ Pos: err.Pos.String(),
+ Msg: err.Msg,
+ Kind: packages.ParseError,
+ })
+ case scanner.ErrorList:
+ // The first parser error is likely the root cause of the problem.
+ if err.Len() > 0 {
+ errs = append(errs, packages.Error{
+ Pos: err[0].Pos.String(),
+ Msg: err[0].Msg,
+ Kind: packages.ParseError,
+ })
+ }
+ case types.Error:
+ errs = append(errs, packages.Error{
+ Pos: imp.v.Config.Fset.Position(err.Pos).String(),
+ Msg: err.Msg,
+ Kind: packages.TypeError,
+ })
+ }
+ pkg.Errors = append(pkg.Errors, errs...)
+}
+
+// We use a counting semaphore to limit
+// the number of parallel I/O calls per process.
+var ioLimit = make(chan bool, 20)
+
+// parseFiles reads and parses the Go source files and returns the ASTs
+// of the ones that could be at least partially parsed, along with a
+// list of I/O and parse errors encountered.
+//
+// Because files are scanned in parallel, the token.Pos
+// positions of the resulting ast.Files are not ordered.
+//
+func (imp *importer) parseFiles(filenames []string) ([]*ast.File, []error) {
+ var wg sync.WaitGroup
+ n := len(filenames)
+ parsed := make([]*ast.File, n)
+ errors := make([]error, n)
+ for i, filename := range filenames {
+ if imp.v.Config.Context.Err() != nil {
+ parsed[i] = nil
+ errors[i] = imp.v.Config.Context.Err()
+ continue
+ }
+
+ // First, check if we have already cached an AST for this file.
+ f := imp.v.files[source.ToURI(filename)]
+ var fAST *ast.File
+ if f != nil {
+ fAST = f.ast
+ }
+
+ wg.Add(1)
+ go func(i int, filename string) {
+ ioLimit <- true // wait
+
+ if fAST != nil {
+ parsed[i], errors[i] = fAST, nil
+ } else {
+ // We don't have a cached AST for this file.
+ var src []byte
+ // Check for an available overlay.
+ for f, contents := range imp.v.Config.Overlay {
+ if sameFile(f, filename) {
+ src = contents
+ }
+ }
+ var err error
+ // We don't have an overlay, so we must read the file's contents.
+ if src == nil {
+ src, err = ioutil.ReadFile(filename)
+ }
+ if err != nil {
+ parsed[i], errors[i] = nil, err
+ } else {
+ // ParseFile may return both an AST and an error.
+ parsed[i], errors[i] = imp.v.Config.ParseFile(imp.v.Config.Fset, filename, src)
+ }
+ }
+
+ <-ioLimit // signal
+ wg.Done()
+ }(i, filename)
+ }
+ wg.Wait()
+
+ // Eliminate nils, preserving order.
+ var o int
+ for _, f := range parsed {
+ if f != nil {
+ parsed[o] = f
+ o++
+ }
+ }
+ parsed = parsed[:o]
+
+ o = 0
+ for _, err := range errors {
+ if err != nil {
+ errors[o] = err
+ o++
+ }
+ }
+ errors = errors[:o]
+
+ return parsed, errors
+}
+
+// sameFile returns true if x and y have the same basename and denote
+// the same file.
+//
+func sameFile(x, y string) bool {
+ if x == y {
+ // It could be the case that y doesn't exist.
+ // For instance, it may be an overlay file that
+ // hasn't been written to disk. To handle that case
+ // let x == y through. (We added the exact absolute path
+ // string to the CompiledGoFiles list, so the unwritten
+ // overlay case implies x==y.)
+ return true
+ }
+ if strings.EqualFold(filepath.Base(x), filepath.Base(y)) { // (optimisation)
+ if xi, err := os.Stat(x); err == nil {
+ if yi, err := os.Stat(y); err == nil {
+ return os.SameFile(xi, yi)
+ }
+ }
+ }
+ return false
+}
diff --git a/vendor/golang.org/x/tools/internal/lsp/cmd/cmd.go b/vendor/golang.org/x/tools/internal/lsp/cmd/cmd.go
index a959583003..4f2d225087 100644
--- a/vendor/golang.org/x/tools/internal/lsp/cmd/cmd.go
+++ b/vendor/golang.org/x/tools/internal/lsp/cmd/cmd.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// Package cmd handles the golsp command line.
+// Package cmd handles the gopls command line.
// It contains a handler for each of the modes, along with all the flag handling
// and the command line output format.
package cmd
@@ -11,43 +11,56 @@ import (
"context"
"flag"
"fmt"
+ "go/ast"
+ "go/parser"
+ "go/token"
+
+ "golang.org/x/tools/go/packages"
"golang.org/x/tools/internal/tool"
)
// Application is the main application as passed to tool.Main
// It handles the main command line parsing and dispatch to the sub commands.
type Application struct {
+ // Core application flags
+
// Embed the basic profiling flags supported by the tool package
tool.Profile
- // we also include the server directly for now, so the flags work even without
- // the verb. We should remove this when we stop allowing the server verb by
- // default
- Server server
+ // We include the server configuration directly for now, so the flags work
+ // even without the verb.
+ // TODO: Remove this when we stop allowing the serve verb by default.
+ Serve Serve
+
+ // An initial, common go/packages configuration
+ Config packages.Config
+
+ // Support for remote lsp server
+ Remote string `flag:"remote" help:"*EXPERIMENTAL* - forward all commands to a remote lsp"`
}
// Name implements tool.Application returning the binary name.
-func (app *Application) Name() string { return "golsp" }
+func (app *Application) Name() string { return "gopls" }
// Usage implements tool.Application returning empty extra argument usage.
-func (app *Application) Usage() string { return " [mode-flags] [mode-args]" }
+func (app *Application) Usage() string { return " [command-flags] [command-args]" }
// ShortHelp implements tool.Application returning the main binary help.
func (app *Application) ShortHelp() string {
- return "The Go Language Smartness Provider."
+ return "The Go Language source tools."
}
// DetailedHelp implements tool.Application returning the main binary help.
// This includes the short help for all the sub commands.
func (app *Application) DetailedHelp(f *flag.FlagSet) {
fmt.Fprint(f.Output(), `
-Available modes are:
+Available commands are:
`)
- for _, c := range app.modes() {
+ for _, c := range app.commands() {
fmt.Fprintf(f.Output(), " %s : %v\n", c.Name(), c.ShortHelp())
}
fmt.Fprint(f.Output(), `
-golsp flags are:
+gopls flags are:
`)
f.PrintDefaults()
}
@@ -55,27 +68,38 @@ golsp flags are:
// Run takes the args after top level flag processing, and invokes the correct
// sub command as specified by the first argument.
// If no arguments are passed it will invoke the server sub command, as a
-// temporary measure for compatability.
+// temporary measure for compatibility.
func (app *Application) Run(ctx context.Context, args ...string) error {
+ app.Serve.app = app
if len(args) == 0 {
- tool.Main(ctx, &app.Server, args)
+ tool.Main(ctx, &app.Serve, args)
return nil
}
- mode, args := args[0], args[1:]
- for _, m := range app.modes() {
- if m.Name() == mode {
- tool.Main(ctx, m, args)
+ app.Config.Mode = packages.LoadSyntax
+ app.Config.Tests = true
+ if app.Config.Fset == nil {
+ app.Config.Fset = token.NewFileSet()
+ }
+ app.Config.Context = ctx
+ app.Config.ParseFile = func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) {
+ return parser.ParseFile(fset, filename, src, parser.AllErrors|parser.ParseComments)
+ }
+ command, args := args[0], args[1:]
+ for _, c := range app.commands() {
+ if c.Name() == command {
+ tool.Main(ctx, c, args)
return nil
}
}
- return tool.CommandLineErrorf("Unknown mode %v", mode)
+ return tool.CommandLineErrorf("Unknown command %v", command)
}
-// modes returns the set of command modes supported by the golsp tool on the
+// commands returns the set of commands supported by the gopls tool on the
// command line.
-// The mode is specified by the first non flag argument.
-func (app *Application) modes() []tool.Application {
+// The command is specified by the first non flag argument.
+func (app *Application) commands() []tool.Application {
return []tool.Application{
- &app.Server,
+ &app.Serve,
+ &query{app: app},
}
}
diff --git a/vendor/golang.org/x/tools/internal/lsp/cmd/definition.go b/vendor/golang.org/x/tools/internal/lsp/cmd/definition.go
new file mode 100644
index 0000000000..829a44e980
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/lsp/cmd/definition.go
@@ -0,0 +1,176 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package cmd
+
+import (
+ "bytes"
+ "context"
+ "encoding/json"
+ "flag"
+ "fmt"
+ "go/types"
+ "os"
+
+ guru "golang.org/x/tools/cmd/guru/serial"
+ "golang.org/x/tools/internal/lsp/cache"
+ "golang.org/x/tools/internal/lsp/source"
+ "golang.org/x/tools/internal/tool"
+)
+
+// A Definition is the result of a 'definition' query.
+type Definition struct {
+ Location Location `json:"location"` // location of the definition
+ Description string `json:"description"` // description of the denoted object
+}
+
+// This constant is printed in the help, and then used in a test to verify the
+// help is still valid.
+// It should be the byte offset in this file of the "Set" in "flag.FlagSet" from
+// the DetailedHelp method below.
+const exampleOffset = 1277
+
+// definition implements the definition noun for the query command.
+type definition struct {
+ query *query
+}
+
+func (d *definition) Name() string { return "definition" }
+func (d *definition) Usage() string { return "" }
+func (d *definition) ShortHelp() string { return "show declaration of selected identifier" }
+func (d *definition) DetailedHelp(f *flag.FlagSet) {
+ fmt.Fprintf(f.Output(), `
+Example: show the definition of the identifier at syntax at offset %[1]v in this file (flag.FlagSet):
+
+ $ gopls definition internal/lsp/cmd/definition.go:#%[1]v
+
+ gopls definition flags are:
+`, exampleOffset)
+ f.PrintDefaults()
+}
+
+// Run performs the definition query as specified by args and prints the
+// results to stdout.
+func (d *definition) Run(ctx context.Context, args ...string) error {
+ if len(args) != 1 {
+ return tool.CommandLineErrorf("definition expects 1 argument")
+ }
+ view := cache.NewView(&d.query.app.Config)
+ from, err := parseLocation(args[0])
+ if err != nil {
+ return err
+ }
+ f, err := view.GetFile(ctx, source.ToURI(from.Filename))
+ if err != nil {
+ return err
+ }
+ tok := f.GetToken()
+ pos := tok.Pos(from.Start.Offset)
+ if !pos.IsValid() {
+ return fmt.Errorf("invalid position %v", from.Start.Offset)
+ }
+ ident, err := source.Identifier(ctx, view, f, pos)
+ if err != nil {
+ return err
+ }
+ if ident == nil {
+ return fmt.Errorf("not an identifier")
+ }
+ var result interface{}
+ switch d.query.Emulate {
+ case "":
+ result, err = buildDefinition(view, ident)
+ case emulateGuru:
+ result, err = buildGuruDefinition(view, ident)
+ default:
+ return fmt.Errorf("unknown emulation for definition: %s", d.query.Emulate)
+ }
+ if err != nil {
+ return err
+ }
+ if d.query.JSON {
+ enc := json.NewEncoder(os.Stdout)
+ enc.SetIndent("", "\t")
+ return enc.Encode(result)
+ }
+ switch d := result.(type) {
+ case *Definition:
+ fmt.Printf("%v: defined here as %s", d.Location, d.Description)
+ case *guru.Definition:
+ fmt.Printf("%s: defined here as %s", d.ObjPos, d.Desc)
+ default:
+ return fmt.Errorf("no printer for type %T", result)
+ }
+ return nil
+}
+
+func buildDefinition(view source.View, ident *source.IdentifierInfo) (*Definition, error) {
+ content, err := ident.Hover(nil)
+ if err != nil {
+ return nil, err
+ }
+ return &Definition{
+ Location: newLocation(view.FileSet(), ident.Declaration.Range),
+ Description: content,
+ }, nil
+}
+
+func buildGuruDefinition(view source.View, ident *source.IdentifierInfo) (*guru.Definition, error) {
+ loc := newLocation(view.FileSet(), ident.Declaration.Range)
+ pkg := ident.File.GetPackage()
+ // guru does not support ranges
+ loc.End = loc.Start
+ // Behavior that attempts to match the expected output for guru. For an example
+ // of the format, see the associated definition tests.
+ buf := &bytes.Buffer{}
+ q := types.RelativeTo(pkg.Types)
+ qualifyName := ident.Declaration.Object.Pkg() != pkg.Types
+ name := ident.Name
+ var suffix interface{}
+ switch obj := ident.Declaration.Object.(type) {
+ case *types.TypeName:
+ fmt.Fprint(buf, "type")
+ case *types.Var:
+ if obj.IsField() {
+ qualifyName = false
+ fmt.Fprint(buf, "field")
+ suffix = obj.Type()
+ } else {
+ fmt.Fprint(buf, "var")
+ }
+ case *types.Func:
+ fmt.Fprint(buf, "func")
+ typ := obj.Type()
+ if obj.Type() != nil {
+ if sig, ok := typ.(*types.Signature); ok {
+ buf := &bytes.Buffer{}
+ if recv := sig.Recv(); recv != nil {
+ if named, ok := recv.Type().(*types.Named); ok {
+ fmt.Fprintf(buf, "(%s).%s", named.Obj().Name(), name)
+ }
+ }
+ if buf.Len() == 0 {
+ buf.WriteString(name)
+ }
+ types.WriteSignature(buf, sig, q)
+ name = buf.String()
+ }
+ }
+ default:
+ fmt.Fprintf(buf, "unknown [%T]", obj)
+ }
+ fmt.Fprint(buf, " ")
+ if qualifyName {
+ fmt.Fprintf(buf, "%s.", ident.Declaration.Object.Pkg().Path())
+ }
+ fmt.Fprint(buf, name)
+ if suffix != nil {
+ fmt.Fprint(buf, " ")
+ fmt.Fprint(buf, suffix)
+ }
+ return &guru.Definition{
+ ObjPos: fmt.Sprint(loc),
+ Desc: buf.String(),
+ }, nil
+}
diff --git a/vendor/golang.org/x/tools/internal/lsp/cmd/location.go b/vendor/golang.org/x/tools/internal/lsp/cmd/location.go
new file mode 100644
index 0000000000..101046e0d5
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/lsp/cmd/location.go
@@ -0,0 +1,165 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package cmd
+
+import (
+ "fmt"
+ "go/token"
+ "path/filepath"
+ "regexp"
+ "strconv"
+
+ "golang.org/x/tools/internal/lsp/source"
+)
+
+type Location struct {
+ Filename string `json:"file"`
+ Start Position `json:"start"`
+ End Position `json:"end"`
+}
+
+type Position struct {
+ Line int `json:"line"`
+ Column int `json:"column"`
+ Offset int `json:"offset"`
+}
+
+func newLocation(fset *token.FileSet, r source.Range) Location {
+ start := fset.Position(r.Start)
+ end := fset.Position(r.End)
+ // it should not be possible the following line to fail
+ filename, _ := source.ToURI(start.Filename).Filename()
+ return Location{
+ Filename: filename,
+ Start: Position{
+ Line: start.Line,
+ Column: start.Column,
+ Offset: fset.File(r.Start).Offset(r.Start),
+ },
+ End: Position{
+ Line: end.Line,
+ Column: end.Column,
+ Offset: fset.File(r.End).Offset(r.End),
+ },
+ }
+}
+
+var posRe = regexp.MustCompile(
+ `(?P.*):(?P(?P\d+):(?P\d)+|#(?P\d+))(?P:(?P\d+):(?P\d+)|#(?P\d+))?$`)
+
+const (
+ posReAll = iota
+ posReFile
+ posReStart
+ posReSLine
+ posReSCol
+ posReSOff
+ posReEnd
+ posReELine
+ posReECol
+ posReEOff
+)
+
+func init() {
+ names := posRe.SubexpNames()
+ // verify all our submatch offsets are correct
+ for name, index := range map[string]int{
+ "file": posReFile,
+ "start": posReStart,
+ "sline": posReSLine,
+ "scol": posReSCol,
+ "soff": posReSOff,
+ "end": posReEnd,
+ "eline": posReELine,
+ "ecol": posReECol,
+ "eoff": posReEOff,
+ } {
+ if names[index] == name {
+ continue
+ }
+ // try to find it
+ for test := range names {
+ if names[test] == name {
+ panic(fmt.Errorf("Index for %s incorrect, wanted %v have %v", name, index, test))
+ }
+ }
+ panic(fmt.Errorf("Subexp %s does not exist", name))
+ }
+}
+
+// parseLocation parses a string of the form "file:pos" or
+// file:start,end" where pos, start, end match either a byte offset in the
+// form #%d or a line and column in the form %d,%d.
+func parseLocation(value string) (Location, error) {
+ var loc Location
+ m := posRe.FindStringSubmatch(value)
+ if m == nil {
+ return loc, fmt.Errorf("bad location syntax %q", value)
+ }
+ loc.Filename = m[posReFile]
+ if !filepath.IsAbs(loc.Filename) {
+ loc.Filename, _ = filepath.Abs(loc.Filename) // ignore error
+ }
+ if m[posReSLine] != "" {
+ v, err := strconv.ParseInt(m[posReSLine], 10, 32)
+ if err != nil {
+ return loc, err
+ }
+ loc.Start.Line = int(v)
+ v, err = strconv.ParseInt(m[posReSCol], 10, 32)
+ if err != nil {
+ return loc, err
+ }
+ loc.Start.Column = int(v)
+ } else {
+ v, err := strconv.ParseInt(m[posReSOff], 10, 32)
+ if err != nil {
+ return loc, err
+ }
+ loc.Start.Offset = int(v)
+ }
+ if m[posReEnd] == "" {
+ loc.End = loc.Start
+ } else {
+ if m[posReELine] != "" {
+ v, err := strconv.ParseInt(m[posReELine], 10, 32)
+ if err != nil {
+ return loc, err
+ }
+ loc.End.Line = int(v)
+ v, err = strconv.ParseInt(m[posReECol], 10, 32)
+ if err != nil {
+ return loc, err
+ }
+ loc.End.Column = int(v)
+ } else {
+ v, err := strconv.ParseInt(m[posReEOff], 10, 32)
+ if err != nil {
+ return loc, err
+ }
+ loc.End.Offset = int(v)
+ }
+ }
+ return loc, nil
+}
+
+func (l Location) Format(f fmt.State, c rune) {
+ // we should always have a filename
+ fmt.Fprint(f, l.Filename)
+ // are we in line:column format or #offset format
+ fmt.Fprintf(f, ":%v", l.Start)
+ if l.End != l.Start {
+ fmt.Fprintf(f, ",%v", l.End)
+ }
+}
+
+func (p Position) Format(f fmt.State, c rune) {
+ // are we in line:column format or #offset format
+ if p.Line > 0 {
+ fmt.Fprintf(f, "%d:%d", p.Line, p.Column)
+ return
+ }
+ fmt.Fprintf(f, "#%d", p.Offset)
+}
diff --git a/vendor/golang.org/x/tools/internal/lsp/cmd/query.go b/vendor/golang.org/x/tools/internal/lsp/cmd/query.go
new file mode 100644
index 0000000000..5ab520f9ac
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/lsp/cmd/query.go
@@ -0,0 +1,71 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package cmd
+
+import (
+ "context"
+ "flag"
+ "fmt"
+
+ "golang.org/x/tools/internal/tool"
+)
+
+const (
+ // The set of possible options that can be passed through the -emulate flag,
+ // which causes query to adjust its output to match that of the binary being
+ // emulated.
+
+ // emulateGuru tells query to emulate the output format of the guru tool.
+ emulateGuru = "guru"
+)
+
+// query implements the query command.
+type query struct {
+ JSON bool `flag:"json" help:"emit output in JSON format"`
+ Emulate string `flag:"emulate" help:"compatibility mode, causes gopls to emulate another tool.\nvalues depend on the operation being performed"`
+
+ app *Application
+}
+
+func (q *query) Name() string { return "query" }
+func (q *query) Usage() string { return "query [flags] " }
+func (q *query) ShortHelp() string {
+ return "answer queries about go source code"
+}
+func (q *query) DetailedHelp(f *flag.FlagSet) {
+ fmt.Fprint(f.Output(), `
+The mode argument determines the query to perform:
+`)
+ for _, m := range q.modes() {
+ fmt.Fprintf(f.Output(), " %s : %v\n", m.Name(), m.ShortHelp())
+ }
+ fmt.Fprint(f.Output(), `
+query flags are:
+`)
+ f.PrintDefaults()
+}
+
+// Run takes the args after command flag processing, and invokes the correct
+// query mode as specified by the first argument.
+func (q *query) Run(ctx context.Context, args ...string) error {
+ if len(args) == 0 {
+ return tool.CommandLineErrorf("query must be supplied a mode")
+ }
+ mode, args := args[0], args[1:]
+ for _, m := range q.modes() {
+ if m.Name() == mode {
+ tool.Main(ctx, m, args)
+ return nil
+ }
+ }
+ return tool.CommandLineErrorf("unknown command %v", mode)
+}
+
+// modes returns the set of modes supported by the query command.
+func (q *query) modes() []tool.Application {
+ return []tool.Application{
+ &definition{query: q},
+ }
+}
diff --git a/vendor/golang.org/x/tools/internal/lsp/cmd/serve.go b/vendor/golang.org/x/tools/internal/lsp/cmd/serve.go
new file mode 100644
index 0000000000..2bf79f79c9
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/lsp/cmd/serve.go
@@ -0,0 +1,150 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package cmd
+
+import (
+ "context"
+ "encoding/json"
+ "flag"
+ "fmt"
+ "io"
+ "log"
+ "net"
+ "os"
+ "path/filepath"
+ "strings"
+ "time"
+
+ "golang.org/x/tools/internal/jsonrpc2"
+ "golang.org/x/tools/internal/lsp"
+ "golang.org/x/tools/internal/tool"
+)
+
+// Serve is a struct that exposes the configurable parts of the LSP server as
+// flags, in the right form for tool.Main to consume.
+type Serve struct {
+ Logfile string `flag:"logfile" help:"filename to log to. if value is \"auto\", then logging to a default output file is enabled"`
+ Mode string `flag:"mode" help:"no effect"`
+ Port int `flag:"port" help:"port on which to run gopls for debugging purposes"`
+ Address string `flag:"listen" help:"address on which to listen for remote connections"`
+
+ app *Application
+}
+
+func (s *Serve) Name() string { return "serve" }
+func (s *Serve) Usage() string { return "" }
+func (s *Serve) ShortHelp() string {
+ return "run a server for Go code using the Language Server Protocol"
+}
+func (s *Serve) DetailedHelp(f *flag.FlagSet) {
+ fmt.Fprint(f.Output(), `
+The server communicates using JSONRPC2 on stdin and stdout, and is intended to be run directly as
+a child of an editor process.
+
+gopls server flags are:
+`)
+ f.PrintDefaults()
+}
+
+// Run configures a server based on the flags, and then runs it.
+// It blocks until the server shuts down.
+func (s *Serve) Run(ctx context.Context, args ...string) error {
+ if len(args) > 0 {
+ return tool.CommandLineErrorf("server does not take arguments, got %v", args)
+ }
+ out := os.Stderr
+ if s.Logfile != "" {
+ filename := s.Logfile
+ if filename == "auto" {
+ filename = filepath.Join(os.TempDir(), fmt.Sprintf("gopls-%d.log", os.Getpid()))
+ }
+ f, err := os.Create(filename)
+ if err != nil {
+ return fmt.Errorf("Unable to create log file: %v", err)
+ }
+ defer f.Close()
+ log.SetOutput(io.MultiWriter(os.Stderr, f))
+ out = f
+ }
+ if s.app.Remote != "" {
+ return s.forward()
+ }
+ logger := func(direction jsonrpc2.Direction, id *jsonrpc2.ID, elapsed time.Duration, method string, payload *json.RawMessage, err *jsonrpc2.Error) {
+ const eol = "\r\n\r\n\r\n"
+ if err != nil {
+ fmt.Fprintf(out, "[Error - %v] %s %s%s %v%s", time.Now().Format("3:04:05 PM"),
+ direction, method, id, err, eol)
+ return
+ }
+ outx := new(strings.Builder)
+ fmt.Fprintf(outx, "[Trace - %v] ", time.Now().Format("3:04:05 PM"))
+ switch direction {
+ case jsonrpc2.Send:
+ fmt.Fprint(outx, "Received ")
+ case jsonrpc2.Receive:
+ fmt.Fprint(outx, "Sending ")
+ }
+ switch {
+ case id == nil:
+ fmt.Fprint(outx, "notification ")
+ case elapsed >= 0:
+ fmt.Fprint(outx, "response ")
+ default:
+ fmt.Fprint(outx, "request ")
+ }
+ fmt.Fprintf(outx, "'%s", method)
+ switch {
+ case id == nil:
+ // do nothing
+ case id.Name != "":
+ fmt.Fprintf(outx, " - (%s)", id.Name)
+ default:
+ fmt.Fprintf(outx, " - (%d)", id.Number)
+ }
+ fmt.Fprint(outx, "'")
+ if elapsed >= 0 {
+ msec := int(elapsed.Round(time.Millisecond) / time.Millisecond)
+ fmt.Fprintf(outx, " in %dms", msec)
+ }
+ params := "null"
+ if payload != nil {
+ params = string(*payload)
+ }
+ if params == "null" {
+ params = "{}"
+ }
+ fmt.Fprintf(outx, ".\r\nParams: %s%s", params, eol)
+ fmt.Fprintf(out, "%s", outx.String())
+ }
+ // For debugging purposes only.
+ if s.Address != "" {
+ return lsp.RunServerOnAddress(ctx, s.Address, logger)
+ }
+ if s.Port != 0 {
+ return lsp.RunServerOnPort(ctx, s.Port, logger)
+ }
+ stream := jsonrpc2.NewHeaderStream(os.Stdin, os.Stdout)
+ return lsp.RunServer(ctx, stream, logger)
+}
+
+func (s *Serve) forward() error {
+ conn, err := net.Dial("tcp", s.app.Remote)
+ if err != nil {
+ return err
+ }
+ errc := make(chan error)
+
+ go func(conn net.Conn) {
+ _, err := io.Copy(conn, os.Stdin)
+ errc <- err
+ }(conn)
+
+ go func(conn net.Conn) {
+ _, err := io.Copy(os.Stdout, conn)
+ errc <- err
+ }(conn)
+
+ return <-errc
+}
diff --git a/vendor/golang.org/x/tools/internal/lsp/cmd/server.go b/vendor/golang.org/x/tools/internal/lsp/cmd/server.go
deleted file mode 100644
index ed3b6e0b5b..0000000000
--- a/vendor/golang.org/x/tools/internal/lsp/cmd/server.go
+++ /dev/null
@@ -1,111 +0,0 @@
-// Copyright 2018 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package cmd
-
-import (
- "context"
- "encoding/json"
- "flag"
- "fmt"
- "io"
- "log"
- "os"
- "path/filepath"
- "strings"
- "time"
-
- "golang.org/x/tools/internal/jsonrpc2"
- "golang.org/x/tools/internal/lsp"
- "golang.org/x/tools/internal/tool"
-)
-
-// server is a struct that exposes the configurable parts of the LSP server as
-// flags, in the right form for tool.Main to consume.
-type server struct {
- Logfile string `flag:"logfile" help:"filename to log to. if value is \"auto\", then logging to a default output file is enabled"`
- Mode string `flag:"mode" help:"no effect"`
-}
-
-func (s *server) Name() string { return "server" }
-func (s *server) Usage() string { return "" }
-func (s *server) ShortHelp() string {
- return "run a server for Go code using the Language Server Protocol"
-}
-func (s *server) DetailedHelp(f *flag.FlagSet) {
- fmt.Fprint(f.Output(), `
-The server communicates using JSONRPC2 on stdin and stdout, and is intended to be run directly as
-a child of an editor process.
-`)
-}
-
-// Run configures a server based on the flags, and then runs it.
-// It blocks until the server shuts down.
-func (s *server) Run(ctx context.Context, args ...string) error {
- if len(args) > 0 {
- return tool.CommandLineErrorf("server does not take arguments, got %v", args)
- }
- out := os.Stderr
- if s.Logfile != "" {
- filename := s.Logfile
- if filename == "auto" {
- filename = filepath.Join(os.TempDir(), fmt.Sprintf("golsp-%d.log", os.Getpid()))
- }
- f, err := os.Create(filename)
- if err != nil {
- return fmt.Errorf("Unable to create log file: %v", err)
- }
- defer f.Close()
- log.SetOutput(io.MultiWriter(os.Stderr, f))
- out = f
- }
- return lsp.RunServer(
- ctx,
- jsonrpc2.NewHeaderStream(os.Stdin, os.Stdout),
- func(direction jsonrpc2.Direction, id *jsonrpc2.ID, elapsed time.Duration, method string, payload *json.RawMessage, err *jsonrpc2.Error) {
- const eol = "\r\n\r\n\r\n"
- if err != nil {
- fmt.Fprintf(out, "[Error - %v] %s %s%s %v%s", time.Now().Format("3:04:05 PM"),
- direction, method, id, err, eol)
- return
- }
- outx := new(strings.Builder)
- fmt.Fprintf(outx, "[Trace - %v] ", time.Now().Format("3:04:05 PM"))
- switch direction {
- case jsonrpc2.Send:
- fmt.Fprint(outx, "Received ")
- case jsonrpc2.Receive:
- fmt.Fprint(outx, "Sending ")
- }
- switch {
- case id == nil:
- fmt.Fprint(outx, "notification ")
- case elapsed >= 0:
- fmt.Fprint(outx, "response ")
- default:
- fmt.Fprint(outx, "request ")
- }
- fmt.Fprintf(outx, "'%s", method)
- switch {
- case id == nil:
- // do nothing
- case id.Name != "":
- fmt.Fprintf(outx, " - (%s)", id.Name)
- default:
- fmt.Fprintf(outx, " - (%d)", id.Number)
- }
- fmt.Fprint(outx, "'")
- if elapsed >= 0 {
- msec := int(elapsed.Round(time.Millisecond) / time.Millisecond)
- fmt.Fprintf(outx, " in %dms", msec)
- }
- params := string(*payload)
- if params == "null" {
- params = "{}"
- }
- fmt.Fprintf(outx, ".\r\nParams: %s%s", params, eol)
- fmt.Fprintf(out, "%s", outx.String())
- },
- )
-}
diff --git a/vendor/golang.org/x/tools/internal/lsp/cmd/testdata/a/a.go b/vendor/golang.org/x/tools/internal/lsp/cmd/testdata/a/a.go
new file mode 100644
index 0000000000..23364341e3
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/lsp/cmd/testdata/a/a.go
@@ -0,0 +1,68 @@
+package a
+
+type Thing struct { //@Thing
+ Member string //@Member
+}
+
+var Other Thing //@Other
+
+func Things(val []string) []Thing { //@Things
+ return nil
+}
+
+func (t Thing) Method(i int) string { //@Method
+ return t.Member
+}
+
+func useThings() {
+ t := Thing{} //@mark(aStructType, "ing")
+ fmt.Print(t.Member) //@mark(aMember, "ember")
+ fmt.Print(Other) //@mark(aVar, "ther")
+ Things() //@mark(aFunc, "ings")
+ t.Method() //@mark(aMethod, "eth")
+}
+
+/*@
+definition(aStructType, "", Thing, "$file:$line:$col,$eline:$ecol: defined here as type Thing struct{Member string}")
+definition(aStructType, "-emulate=guru", Thing, "$file:$line:$col: defined here as type Thing")
+
+definition(aMember, "", Member, "$file:$line:$col,$eline:$ecol: defined here as field Member string")
+definition(aMember, "-emulate=guru", Member, "$file:$line:$col: defined here as field Member string")
+
+definition(aVar, "", Other, "$file:$line:$col,$eline:$ecol: defined here as var Other Thing")
+definition(aVar, "-emulate=guru", Other, "$file:$line:$col: defined here as var Other")
+
+definition(aFunc, "", Things, "$file:$line:$col,$eline:$ecol: defined here as func Things(val []string) []Thing")
+definition(aFunc, "-emulate=guru", Things, "$file:$line:$col: defined here as func Things(val []string) []Thing")
+
+definition(aMethod, "", Method, "$file:$line:$col,$eline:$ecol: defined here as func (Thing).Method(i int) string")
+definition(aMethod, "-emulate=guru", Method, "$file:$line:$col: defined here as func (Thing).Method(i int) string")
+
+//param
+//package name
+//const
+//anon field
+
+// JSON tests
+
+definition(aStructType, "-json", Thing, `{
+ "location": {
+ "file": "$efile",
+ "start": {
+ "line": $line,
+ "column": $col,
+ "offset": $offset
+ },
+ "end": {
+ "line": $eline,
+ "column": $ecol,
+ "offset": $eoffset
+ }
+ },
+ "description": "type Thing struct{Member string}"
+}`)
+definition(aStructType, "-json -emulate=guru", Thing, `{
+ "objpos": "$efile:$line:$col",
+ "desc": "type Thing"
+}`)
+*/
diff --git a/vendor/golang.org/x/tools/internal/lsp/cmd/testdata/b/b.go b/vendor/golang.org/x/tools/internal/lsp/cmd/testdata/b/b.go
new file mode 100644
index 0000000000..bd197de684
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/lsp/cmd/testdata/b/b.go
@@ -0,0 +1,26 @@
+package b
+
+import (
+ "golang.org/fake/a"
+)
+
+func useThings() {
+ t := a.Thing{} //@mark(bStructType, "ing")
+ fmt.Print(t.Member) //@mark(bMember, "ember")
+ fmt.Print(a.Other) //@mark(bVar, "ther")
+ a.Things() //@mark(bFunc, "ings")
+}
+
+/*@
+definition(bStructType, "", Thing, "$file:$line:$col,$eline:$ecol: defined here as type a.Thing struct{Member string}")
+definition(bStructType, "-emulate=guru", Thing, "$file:$line:$col: defined here as type golang.org/fake/a.Thing")
+
+definition(bMember, "", Member, "$file:$line:$col,$eline:$ecol: defined here as field Member string")
+definition(bMember, "-emulate=guru", Member, "$file:$line:$col: defined here as field Member string")
+
+definition(bVar, "", Other, "$file:$line:$col,$eline:$ecol: defined here as var a.Other a.Thing")
+definition(bVar, "-emulate=guru", Other, "$file:$line:$col: defined here as var golang.org/fake/a.Other")
+
+definition(bFunc, "", Things, "$file:$line:$col,$eline:$ecol: defined here as func a.Things(val []string) []a.Thing")
+definition(bFunc, "-emulate=guru", Things, "$file:$line:$col: defined here as func golang.org/fake/a.Things(val []string) []golang.org/fake/a.Thing")
+*/
diff --git a/vendor/golang.org/x/tools/internal/lsp/diagnostics.go b/vendor/golang.org/x/tools/internal/lsp/diagnostics.go
index 49743dc024..e928613469 100644
--- a/vendor/golang.org/x/tools/internal/lsp/diagnostics.go
+++ b/vendor/golang.org/x/tools/internal/lsp/diagnostics.go
@@ -13,7 +13,10 @@ import (
)
func (s *server) cacheAndDiagnose(ctx context.Context, uri protocol.DocumentURI, content string) {
- sourceURI := fromProtocolURI(uri)
+ sourceURI, err := fromProtocolURI(uri)
+ if err != nil {
+ return // handle error?
+ }
if err := s.setContent(ctx, sourceURI, []byte(content)); err != nil {
return // handle error?
}
@@ -48,11 +51,15 @@ func toProtocolDiagnostics(ctx context.Context, v source.View, diagnostics []sou
reports := []protocol.Diagnostic{}
for _, diag := range diagnostics {
tok := v.FileSet().File(diag.Start)
+ source := diag.Source
+ if source == "" {
+ source = "LSP"
+ }
reports = append(reports, protocol.Diagnostic{
Message: diag.Message,
Range: toProtocolRange(tok, diag.Range),
Severity: protocol.SeverityError, // all diagnostics have error severity for now
- Source: "LSP",
+ Source: source,
})
}
return reports
diff --git a/vendor/golang.org/x/tools/internal/lsp/diff/diff.go b/vendor/golang.org/x/tools/internal/lsp/diff/diff.go
new file mode 100644
index 0000000000..573190b083
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/lsp/diff/diff.go
@@ -0,0 +1,215 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package diff implements the Myers diff algorithm.
+package diff
+
+import (
+ "strings"
+)
+
+// Sources:
+// https://blog.jcoglan.com/2017/02/17/the-myers-diff-algorithm-part-3/
+// https://www.codeproject.com/Articles/42279/%2FArticles%2F42279%2FInvestigating-Myers-diff-algorithm-Part-1-of-2
+
+type Op struct {
+ Kind OpKind
+ Content string
+ I1, I2 int // indices of the line in a
+ J1, J2 int // indices of the line in b
+}
+
+type OpKind int
+
+const (
+ Delete OpKind = iota
+ Insert
+ Equal
+)
+
+func (k OpKind) String() string {
+ switch k {
+ case Delete:
+ return "delete"
+ case Insert:
+ return "insert"
+ case Equal:
+ return "equal"
+ default:
+ panic("unknown operation kind")
+ }
+}
+
+func ApplyEdits(a []string, operations []*Op) []string {
+ var b []string
+ var prevI2 int
+ for _, op := range operations {
+ // catch up to latest indices
+ if op.I1-prevI2 > 0 {
+ for _, c := range a[prevI2:op.I1] {
+ b = append(b, c)
+ }
+ }
+ switch op.Kind {
+ case Equal, Insert:
+ b = append(b, op.Content)
+ }
+ prevI2 = op.I2
+ }
+ // final catch up
+ if len(a)-prevI2 > 0 {
+ for _, c := range a[prevI2:len(a)] {
+ b = append(b, c)
+ }
+ }
+ return b
+}
+
+// Operations returns the list of operations to convert a into b, consolidating
+// operations for multiple lines and not including equal lines.
+func Operations(a, b []string) []*Op {
+ trace, offset := shortestEditSequence(a, b)
+ snakes := backtrack(trace, len(a), len(b), offset)
+
+ M, N := len(a), len(b)
+
+ var i int
+ solution := make([]*Op, len(a)+len(b))
+
+ add := func(op *Op, i2, j2 int) {
+ if op == nil {
+ return
+ }
+ op.I2 = i2
+ op.J2 = j2
+ if op.Kind == Insert {
+ op.Content = strings.Join(b[op.J1:op.J2], "")
+ }
+ solution[i] = op
+ i++
+ }
+ x, y := 0, 0
+ for _, snake := range snakes {
+ if len(snake) < 2 {
+ continue
+ }
+ var op *Op
+ // delete (horizontal)
+ for snake[0]-snake[1] > x-y {
+ if op == nil {
+ op = &Op{
+ Kind: Delete,
+ I1: x,
+ J1: y,
+ }
+ }
+ x++
+ if x == M {
+ break
+ }
+ }
+ add(op, x, y)
+ op = nil
+ // insert (vertical)
+ for snake[0]-snake[1] < x-y {
+ if op == nil {
+ op = &Op{
+ Kind: Insert,
+ I1: x,
+ J1: y,
+ }
+ }
+ y++
+ }
+ add(op, x, y)
+ op = nil
+ // equal (diagonal)
+ for x < snake[0] {
+ x++
+ y++
+ }
+ if x >= M && y >= N {
+ break
+ }
+ }
+ return solution[:i]
+}
+
+// backtrack uses the trace for the edit sequence computation and returns the
+// "snakes" that make up the solution. A "snake" is a single deletion or
+// insertion followed by zero or diagnonals.
+func backtrack(trace [][]int, x, y, offset int) [][]int {
+ snakes := make([][]int, len(trace))
+ d := len(trace) - 1
+ for ; x > 0 && y > 0 && d > 0; d-- {
+ V := trace[d]
+ if len(V) == 0 {
+ continue
+ }
+ snakes[d] = []int{x, y}
+
+ k := x - y
+
+ var kPrev int
+ if k == -d || (k != d && V[k-1+offset] < V[k+1+offset]) {
+ kPrev = k + 1
+ } else {
+ kPrev = k - 1
+ }
+
+ x = V[kPrev+offset]
+ y = x - kPrev
+ }
+ if x < 0 || y < 0 {
+ return snakes
+ }
+ snakes[d] = []int{x, y}
+ return snakes
+}
+
+// shortestEditSequence returns the shortest edit sequence that converts a into b.
+func shortestEditSequence(a, b []string) ([][]int, int) {
+ M, N := len(a), len(b)
+ V := make([]int, 2*(N+M)+1)
+ offset := N + M
+ trace := make([][]int, N+M+1)
+
+ // Iterate through the maximum possible length of the SES (N+M).
+ for d := 0; d <= N+M; d++ {
+ // k lines are represented by the equation y = x - k. We move in
+ // increments of 2 because end points for even d are on even k lines.
+ for k := -d; k <= d; k += 2 {
+ // At each point, we either go down or to the right. We go down if
+ // k == -d, and we go to the right if k == d. We also prioritize
+ // the maximum x value, because we prefer deletions to insertions.
+ var x int
+ if k == -d || (k != d && V[k-1+offset] < V[k+1+offset]) {
+ x = V[k+1+offset] // down
+ } else {
+ x = V[k-1+offset] + 1 // right
+ }
+
+ y := x - k
+
+ // Diagonal moves while we have equal contents.
+ for x < M && y < N && a[x] == b[y] {
+ x++
+ y++
+ }
+
+ V[k+offset] = x
+
+ // Save the state of the array.
+ copyV := make([]int, len(V))
+ copy(copyV, V)
+ trace[d] = copyV
+
+ // Return if we've exceeded the maximum values.
+ if x == M && y == N {
+ return trace, offset
+ }
+ }
+ }
+ return nil, 0
+}
diff --git a/vendor/golang.org/x/tools/internal/lsp/format.go b/vendor/golang.org/x/tools/internal/lsp/format.go
index 8a2380998a..be88dacf1c 100644
--- a/vendor/golang.org/x/tools/internal/lsp/format.go
+++ b/vendor/golang.org/x/tools/internal/lsp/format.go
@@ -2,7 +2,6 @@ package lsp
import (
"context"
- "go/token"
"golang.org/x/tools/internal/lsp/protocol"
"golang.org/x/tools/internal/lsp/source"
@@ -10,14 +9,15 @@ import (
// formatRange formats a document with a given range.
func formatRange(ctx context.Context, v source.View, uri protocol.DocumentURI, rng *protocol.Range) ([]protocol.TextEdit, error) {
- f, err := v.GetFile(ctx, fromProtocolURI(uri))
+ sourceURI, err := fromProtocolURI(uri)
if err != nil {
return nil, err
}
- tok, err := f.GetToken()
+ f, err := v.GetFile(ctx, sourceURI)
if err != nil {
return nil, err
}
+ tok := f.GetToken()
var r source.Range
if rng == nil {
r.Start = tok.Pos(0)
@@ -25,21 +25,19 @@ func formatRange(ctx context.Context, v source.View, uri protocol.DocumentURI, r
} else {
r = fromProtocolRange(tok, *rng)
}
- content, err := f.Read()
- if err != nil {
- return nil, err
- }
edits, err := source.Format(ctx, f, r)
if err != nil {
return nil, err
}
- return toProtocolEdits(tok, content, edits), nil
+ return toProtocolEdits(f, edits), nil
}
-func toProtocolEdits(tok *token.File, content []byte, edits []source.TextEdit) []protocol.TextEdit {
+func toProtocolEdits(f source.File, edits []source.TextEdit) []protocol.TextEdit {
if edits == nil {
return nil
}
+ tok := f.GetToken()
+ content := f.GetContent()
// When a file ends with an empty line, the newline character is counted
// as part of the previous line. This causes the formatter to insert
// another unnecessary newline on each formatting. We handle this case by
diff --git a/vendor/golang.org/x/tools/internal/lsp/imports.go b/vendor/golang.org/x/tools/internal/lsp/imports.go
index e3b98187a0..fad98c82e8 100644
--- a/vendor/golang.org/x/tools/internal/lsp/imports.go
+++ b/vendor/golang.org/x/tools/internal/lsp/imports.go
@@ -12,25 +12,22 @@ import (
)
func organizeImports(ctx context.Context, v source.View, uri protocol.DocumentURI) ([]protocol.TextEdit, error) {
- f, err := v.GetFile(ctx, fromProtocolURI(uri))
+ sourceURI, err := fromProtocolURI(uri)
if err != nil {
return nil, err
}
- tok, err := f.GetToken()
+ f, err := v.GetFile(ctx, sourceURI)
if err != nil {
return nil, err
}
+ tok := f.GetToken()
r := source.Range{
Start: tok.Pos(0),
End: tok.Pos(tok.Size()),
}
- content, err := f.Read()
+ edits, err := source.Imports(ctx, f, r)
if err != nil {
return nil, err
}
- edits, err := source.Imports(ctx, tok.Name(), content, r)
- if err != nil {
- return nil, err
- }
- return toProtocolEdits(tok, content, edits), nil
+ return toProtocolEdits(f, edits), nil
}
diff --git a/vendor/golang.org/x/tools/internal/lsp/position.go b/vendor/golang.org/x/tools/internal/lsp/position.go
index 692669256c..fb0d9bdba5 100644
--- a/vendor/golang.org/x/tools/internal/lsp/position.go
+++ b/vendor/golang.org/x/tools/internal/lsp/position.go
@@ -7,6 +7,7 @@ package lsp
import (
"context"
"go/token"
+ "net/url"
"golang.org/x/tools/internal/lsp/cache"
"golang.org/x/tools/internal/lsp/protocol"
@@ -15,32 +16,37 @@ import (
// fromProtocolURI converts a protocol.DocumentURI to a source.URI.
// TODO(rstambler): Add logic here to support Windows.
-func fromProtocolURI(uri protocol.DocumentURI) source.URI {
- return source.URI(uri)
+func fromProtocolURI(uri protocol.DocumentURI) (source.URI, error) {
+ unescaped, err := url.PathUnescape(string(uri))
+ if err != nil {
+ return "", err
+ }
+ return source.URI(unescaped), nil
}
// fromProtocolLocation converts from a protocol location to a source range.
// It will return an error if the file of the location was not valid.
// It uses fromProtocolRange to convert the start and end positions.
func fromProtocolLocation(ctx context.Context, v *cache.View, loc protocol.Location) (source.Range, error) {
- f, err := v.GetFile(ctx, fromProtocolURI(loc.URI))
+ sourceURI, err := fromProtocolURI(loc.URI)
if err != nil {
return source.Range{}, err
}
- tok, err := f.GetToken()
+ f, err := v.GetFile(ctx, sourceURI)
if err != nil {
return source.Range{}, err
}
+ tok := f.GetToken()
return fromProtocolRange(tok, loc.Range), nil
}
// toProtocolLocation converts from a source range back to a protocol location.
func toProtocolLocation(fset *token.FileSet, r source.Range) protocol.Location {
- tokFile := fset.File(r.Start)
- uri := source.ToURI(tokFile.Name())
+ tok := fset.File(r.Start)
+ uri := source.ToURI(tok.Name())
return protocol.Location{
URI: protocol.DocumentURI(uri),
- Range: toProtocolRange(tokFile, r),
+ Range: toProtocolRange(tok, r),
}
}
@@ -106,7 +112,7 @@ func fromTokenPosition(f *token.File, pos token.Position) token.Pos {
func lineStart(f *token.File, line int) token.Pos {
// Use binary search to find the start offset of this line.
//
- // TODO(adonovan): eventually replace this function with the
+ // TODO(rstambler): eventually replace this function with the
// simpler and more efficient (*go/token.File).LineStart, added
// in go1.12.
diff --git a/vendor/golang.org/x/tools/internal/lsp/protocol/basic.go b/vendor/golang.org/x/tools/internal/lsp/protocol/basic.go
index 05174d9fa7..a8bd96ced2 100644
--- a/vendor/golang.org/x/tools/internal/lsp/protocol/basic.go
+++ b/vendor/golang.org/x/tools/internal/lsp/protocol/basic.go
@@ -63,6 +63,32 @@ type Location struct {
Range Range `json:"range"`
}
+// LocationLink rerpesents a link betwee a source and a target location.AfterDelay
+type LocationLink struct {
+ /**
+ * Span of the origin of this link.
+ *
+ * Used as the underlined span for mouse interaction. Defaults to the word range at
+ * the mouse position.
+ */
+ OriginSelectionRange *Range `json:"originSelectionRange,omitempty"`
+
+ /**
+ * The target resource identifier of this link.
+ */
+ TargetURI string `json:"targetUri"`
+
+ /**
+ * The full target range of this link.
+ */
+ TargetRange Range `json:"targetRange"`
+
+ /**
+ * The span of this link.
+ */
+ TargetSelectionRange *Range `json:"targetSeletionRange,omitempty"`
+}
+
// Diagnostic represents a diagnostic, such as a compiler error or warning.
// Diagnostic objects are only valid in the scope of a resource.
type Diagnostic struct {
@@ -80,7 +106,7 @@ type Diagnostic struct {
/**
* The diagnostic's code, which might appear in the user interface.
*/
- Code string `json:"code,omitempty"` // number | string
+ Code interface{} `json:"code,omitempty"` // number | string
/**
* A human-readable string describing the source of this
diff --git a/vendor/golang.org/x/tools/internal/lsp/protocol/general.go b/vendor/golang.org/x/tools/internal/lsp/protocol/general.go
index 00dcb41b68..fd457308ee 100644
--- a/vendor/golang.org/x/tools/internal/lsp/protocol/general.go
+++ b/vendor/golang.org/x/tools/internal/lsp/protocol/general.go
@@ -655,7 +655,7 @@ type DocumentLinkOptions struct {
*/
type ExecuteCommandOptions struct {
/**
- * The commands to be executed on the server
+ * The commands to be executed on the server.
*/
Commands []string `json:"commands"`
}
@@ -812,7 +812,7 @@ type ServerCapabilities struct {
/**
* The server provides execute command support.
*/
- ExecuteCommandProvider ExecuteCommandOptions `json:"executeCommandProvider,omitempty"`
+ ExecuteCommandProvider *ExecuteCommandOptions `json:"executeCommandProvider,omitempty"`
/**
* Workspace specific server capabilities
*/
diff --git a/vendor/golang.org/x/tools/internal/lsp/protocol/text.go b/vendor/golang.org/x/tools/internal/lsp/protocol/text.go
index 83456a415b..5d50b2a80d 100644
--- a/vendor/golang.org/x/tools/internal/lsp/protocol/text.go
+++ b/vendor/golang.org/x/tools/internal/lsp/protocol/text.go
@@ -38,7 +38,7 @@ type TextDocumentContentChangeEvent struct {
/**
* The range of the document that changed.
*/
- Range Range `json:"range,omitempty"`
+ Range *Range `json:"range,omitempty"`
/**
* The length of the range that got replaced.
diff --git a/vendor/golang.org/x/tools/internal/lsp/server.go b/vendor/golang.org/x/tools/internal/lsp/server.go
index cdd07f2cb3..121b721608 100644
--- a/vendor/golang.org/x/tools/internal/lsp/server.go
+++ b/vendor/golang.org/x/tools/internal/lsp/server.go
@@ -5,10 +5,16 @@
package lsp
import (
+ "bytes"
"context"
+ "fmt"
+ "go/ast"
+ "go/parser"
"go/token"
+ "net"
"os"
"sync"
+ "unicode/utf8"
"golang.org/x/tools/go/packages"
"golang.org/x/tools/internal/jsonrpc2"
@@ -26,6 +32,34 @@ func RunServer(ctx context.Context, stream jsonrpc2.Stream, opts ...interface{})
return conn.Wait(ctx)
}
+// RunServerOnPort starts an LSP server on the given port and does not exit.
+// This function exists for debugging purposes.
+func RunServerOnPort(ctx context.Context, port int, opts ...interface{}) error {
+ return RunServerOnAddress(ctx, fmt.Sprintf(":%v", port))
+}
+
+// RunServerOnPort starts an LSP server on the given port and does not exit.
+// This function exists for debugging purposes.
+func RunServerOnAddress(ctx context.Context, addr string, opts ...interface{}) error {
+ s := &server{}
+ ln, err := net.Listen("tcp", addr)
+ if err != nil {
+ return err
+ }
+ for {
+ conn, err := ln.Accept()
+ if err != nil {
+ return err
+ }
+ stream := jsonrpc2.NewHeaderStream(conn, conn)
+ go func() {
+ conn, client := protocol.RunServer(ctx, stream, s, opts...)
+ s.client = client
+ conn.Wait(ctx)
+ }()
+ }
+}
+
type server struct {
client protocol.Client
@@ -51,16 +85,29 @@ func (s *server) Initialize(ctx context.Context, params *protocol.InitializePara
s.snippetsSupported = params.Capabilities.TextDocument.Completion.CompletionItem.SnippetSupport
s.signatureHelpEnabled = true
- rootPath, err := fromProtocolURI(*params.RootURI).Filename()
+ var rootURI protocol.DocumentURI
+ if params.RootURI != nil {
+ rootURI = *params.RootURI
+ }
+ sourceURI, err := fromProtocolURI(rootURI)
if err != nil {
return nil, err
}
+ rootPath, err := sourceURI.Filename()
+ if err != nil {
+ return nil, err
+ }
+
s.view = cache.NewView(&packages.Config{
+ Context: ctx,
Dir: rootPath,
- Mode: packages.LoadSyntax,
+ Mode: packages.LoadImports,
Fset: token.NewFileSet(),
- Tests: true,
Overlay: make(map[string][]byte),
+ ParseFile: func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) {
+ return parser.ParseFile(fset, filename, src, parser.AllErrors|parser.ParseComments)
+ },
+ Tests: true,
})
return &protocol.InitializeResult{
@@ -77,7 +124,7 @@ func (s *server) Initialize(ctx context.Context, params *protocol.InitializePara
TriggerCharacters: []string{"(", ","},
},
TextDocumentSync: protocol.TextDocumentSyncOptions{
- Change: float64(protocol.Full), // full contents of file sent on each update
+ Change: float64(protocol.Incremental),
OpenClose: true,
},
TypeDefinitionProvider: true,
@@ -132,14 +179,82 @@ func (s *server) DidOpen(ctx context.Context, params *protocol.DidOpenTextDocume
return nil
}
+func bytesOffset(content []byte, pos protocol.Position) int {
+ var line, char, offset int
+
+ for len(content) > 0 {
+ if line == int(pos.Line) && char == int(pos.Character) {
+ return offset
+ }
+ r, size := utf8.DecodeRune(content)
+ char++
+ // The offsets are based on a UTF-16 string representation.
+ // So the rune should be checked twice for two code units in UTF-16.
+ if r >= 0x10000 {
+ if line == int(pos.Line) && char == int(pos.Character) {
+ return offset
+ }
+ char++
+ }
+ offset += size
+ content = content[size:]
+ if r == '\n' {
+ line++
+ char = 0
+ }
+ }
+ return -1
+}
+
+func (s *server) applyChanges(ctx context.Context, params *protocol.DidChangeTextDocumentParams) (string, error) {
+ if len(params.ContentChanges) == 1 && params.ContentChanges[0].Range == nil {
+ // If range is empty, we expect the full content of file, i.e. a single change with no range.
+ change := params.ContentChanges[0]
+ if change.RangeLength != 0 {
+ return "", jsonrpc2.NewErrorf(jsonrpc2.CodeInternalError, "unexpected change range provided")
+ }
+ return change.Text, nil
+ }
+
+ sourceURI, err := fromProtocolURI(params.TextDocument.URI)
+ if err != nil {
+ return "", err
+ }
+
+ file, err := s.view.GetFile(ctx, sourceURI)
+ if err != nil {
+ return "", jsonrpc2.NewErrorf(jsonrpc2.CodeInternalError, "file not found")
+ }
+
+ content := file.GetContent()
+ for _, change := range params.ContentChanges {
+ start := bytesOffset(content, change.Range.Start)
+ if start == -1 {
+ return "", jsonrpc2.NewErrorf(jsonrpc2.CodeInternalError, "invalid range for content change")
+ }
+ end := bytesOffset(content, change.Range.End)
+ if end == -1 {
+ return "", jsonrpc2.NewErrorf(jsonrpc2.CodeInternalError, "invalid range for content change")
+ }
+ var buf bytes.Buffer
+ buf.Write(content[:start])
+ buf.WriteString(change.Text)
+ buf.Write(content[end:])
+ content = buf.Bytes()
+ }
+ return string(content), nil
+}
+
func (s *server) DidChange(ctx context.Context, params *protocol.DidChangeTextDocumentParams) error {
if len(params.ContentChanges) < 1 {
return jsonrpc2.NewErrorf(jsonrpc2.CodeInternalError, "no content changes provided")
}
- // We expect the full content of file, i.e. a single change with no range.
- if change := params.ContentChanges[0]; change.RangeLength == 0 {
- s.cacheAndDiagnose(ctx, params.TextDocument.URI, change.Text)
+
+ text, err := s.applyChanges(ctx, params)
+ if err != nil {
+ return err
}
+ s.cacheAndDiagnose(ctx, params.TextDocument.URI, text)
return nil
}
@@ -156,19 +271,24 @@ func (s *server) DidSave(context.Context, *protocol.DidSaveTextDocumentParams) e
}
func (s *server) DidClose(ctx context.Context, params *protocol.DidCloseTextDocumentParams) error {
- s.setContent(ctx, fromProtocolURI(params.TextDocument.URI), nil)
+ sourceURI, err := fromProtocolURI(params.TextDocument.URI)
+ if err != nil {
+ return err
+ }
+ s.setContent(ctx, sourceURI, nil)
return nil
}
func (s *server) Completion(ctx context.Context, params *protocol.CompletionParams) (*protocol.CompletionList, error) {
- f, err := s.view.GetFile(ctx, fromProtocolURI(params.TextDocument.URI))
+ sourceURI, err := fromProtocolURI(params.TextDocument.URI)
if err != nil {
return nil, err
}
- tok, err := f.GetToken()
+ f, err := s.view.GetFile(ctx, sourceURI)
if err != nil {
return nil, err
}
+ tok := f.GetToken()
pos := fromProtocolPosition(tok, params.Position)
items, prefix, err := source.Completion(ctx, f, pos)
if err != nil {
@@ -185,37 +305,44 @@ func (s *server) CompletionResolve(context.Context, *protocol.CompletionItem) (*
}
func (s *server) Hover(ctx context.Context, params *protocol.TextDocumentPositionParams) (*protocol.Hover, error) {
- f, err := s.view.GetFile(ctx, fromProtocolURI(params.TextDocument.URI))
+ sourceURI, err := fromProtocolURI(params.TextDocument.URI)
if err != nil {
return nil, err
}
- tok, err := f.GetToken()
+ f, err := s.view.GetFile(ctx, sourceURI)
if err != nil {
return nil, err
}
+ tok := f.GetToken()
pos := fromProtocolPosition(tok, params.Position)
- contents, rng, err := source.Hover(ctx, f, pos)
+ ident, err := source.Identifier(ctx, s.view, f, pos)
+ if err != nil {
+ return nil, err
+ }
+ content, err := ident.Hover(nil)
if err != nil {
return nil, err
}
+ markdown := "```go\n" + content + "\n```"
return &protocol.Hover{
Contents: protocol.MarkupContent{
Kind: protocol.Markdown,
- Value: contents,
+ Value: markdown,
},
- Range: toProtocolRange(tok, rng),
+ Range: toProtocolRange(tok, ident.Range),
}, nil
}
func (s *server) SignatureHelp(ctx context.Context, params *protocol.TextDocumentPositionParams) (*protocol.SignatureHelp, error) {
- f, err := s.view.GetFile(ctx, fromProtocolURI(params.TextDocument.URI))
+ sourceURI, err := fromProtocolURI(params.TextDocument.URI)
if err != nil {
return nil, err
}
- tok, err := f.GetToken()
+ f, err := s.view.GetFile(ctx, sourceURI)
if err != nil {
return nil, err
}
+ tok := f.GetToken()
pos := fromProtocolPosition(tok, params.Position)
info, err := source.SignatureHelp(ctx, f, pos)
if err != nil {
@@ -225,37 +352,39 @@ func (s *server) SignatureHelp(ctx context.Context, params *protocol.TextDocumen
}
func (s *server) Definition(ctx context.Context, params *protocol.TextDocumentPositionParams) ([]protocol.Location, error) {
- f, err := s.view.GetFile(ctx, fromProtocolURI(params.TextDocument.URI))
+ sourceURI, err := fromProtocolURI(params.TextDocument.URI)
if err != nil {
return nil, err
}
- tok, err := f.GetToken()
+ f, err := s.view.GetFile(ctx, sourceURI)
if err != nil {
return nil, err
}
+ tok := f.GetToken()
pos := fromProtocolPosition(tok, params.Position)
- r, err := source.Definition(ctx, s.view, f, pos)
+ ident, err := source.Identifier(ctx, s.view, f, pos)
if err != nil {
return nil, err
}
- return []protocol.Location{toProtocolLocation(s.view.FileSet(), r)}, nil
+ return []protocol.Location{toProtocolLocation(s.view.FileSet(), ident.Declaration.Range)}, nil
}
func (s *server) TypeDefinition(ctx context.Context, params *protocol.TextDocumentPositionParams) ([]protocol.Location, error) {
- f, err := s.view.GetFile(ctx, fromProtocolURI(params.TextDocument.URI))
+ sourceURI, err := fromProtocolURI(params.TextDocument.URI)
if err != nil {
return nil, err
}
- tok, err := f.GetToken()
+ f, err := s.view.GetFile(ctx, sourceURI)
if err != nil {
return nil, err
}
+ tok := f.GetToken()
pos := fromProtocolPosition(tok, params.Position)
- r, err := source.TypeDefinition(ctx, s.view, f, pos)
+ ident, err := source.Identifier(ctx, s.view, f, pos)
if err != nil {
return nil, err
}
- return []protocol.Location{toProtocolLocation(s.view.FileSet(), r)}, nil
+ return []protocol.Location{toProtocolLocation(s.view.FileSet(), ident.Type.Range)}, nil
}
func (s *server) Implementation(context.Context, *protocol.TextDocumentPositionParams) ([]protocol.Location, error) {
diff --git a/vendor/golang.org/x/tools/internal/lsp/source/analysis.go b/vendor/golang.org/x/tools/internal/lsp/source/analysis.go
new file mode 100644
index 0000000000..dacac7f321
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/lsp/source/analysis.go
@@ -0,0 +1,321 @@
+// Copyright 2019 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// This file is largely based on go/analysis/internal/checker/checker.go.
+
+package source
+
+import (
+ "fmt"
+ "go/types"
+ "log"
+ "reflect"
+ "sort"
+ "strings"
+ "sync"
+ "time"
+
+ "golang.org/x/tools/go/analysis"
+ "golang.org/x/tools/go/packages"
+)
+
+// AnalysisCache holds analysis information for all the packages in a view.
+type AnalysisCache struct {
+ m map[analysisKey]*action
+}
+
+func NewAnalysisCache() *AnalysisCache {
+ return &AnalysisCache{make(map[analysisKey]*action)}
+}
+
+// Each graph node (action) is one unit of analysis.
+// Edges express package-to-package (vertical) dependencies,
+// and analysis-to-analysis (horizontal) dependencies.
+type analysisKey struct {
+ *analysis.Analyzer
+ *packages.Package
+}
+
+func (c *AnalysisCache) analyze(pkgs []*packages.Package, analyzers []*analysis.Analyzer) []*action {
+ // TODO(matloob): Every time but the first, this needs to re-construct
+ // the invalidated parts of the action graph, probably under a lock?
+
+ // Construct the action graph.
+ var mkAction func(a *analysis.Analyzer, pkg *packages.Package) *action
+ mkAction = func(a *analysis.Analyzer, pkg *packages.Package) *action {
+ k := analysisKey{a, pkg}
+ act, ok := c.m[k]
+ if !ok {
+ act = &action{a: a, pkg: pkg}
+
+ // Add a dependency on each required analyzers.
+ for _, req := range a.Requires {
+ act.deps = append(act.deps, mkAction(req, pkg))
+ }
+
+ // An analysis that consumes/produces facts
+ // must run on the package's dependencies too.
+ if len(a.FactTypes) > 0 {
+ paths := make([]string, 0, len(pkg.Imports))
+ for path := range pkg.Imports {
+ paths = append(paths, path)
+ }
+ sort.Strings(paths) // for determinism
+ for _, path := range paths {
+ dep := mkAction(a, pkg.Imports[path])
+ act.deps = append(act.deps, dep)
+ }
+ }
+
+ c.m[k] = act
+ }
+ return act
+ }
+
+ // Build nodes for initial packages.
+ var roots []*action
+ for _, a := range analyzers {
+ for _, pkg := range pkgs {
+ root := mkAction(a, pkg)
+ root.isroot = true
+ roots = append(roots, root)
+ }
+ }
+
+ // Execute the graph in parallel.
+ execAll(roots)
+
+ return roots
+}
+
+// An action represents one unit of analysis work: the application of
+// one analysis to one package. Actions form a DAG, both within a
+// package (as different analyzers are applied, either in sequence or
+// parallel), and across packages (as dependencies are analyzed).
+type action struct {
+ once sync.Once
+ a *analysis.Analyzer
+ pkg *packages.Package
+ pass *analysis.Pass
+ isroot bool
+ deps []*action
+ objectFacts map[objectFactKey]analysis.Fact
+ packageFacts map[packageFactKey]analysis.Fact
+ inputs map[*analysis.Analyzer]interface{}
+ result interface{}
+ diagnostics []analysis.Diagnostic
+ err error
+ duration time.Duration
+}
+
+type objectFactKey struct {
+ obj types.Object
+ typ reflect.Type
+}
+
+type packageFactKey struct {
+ pkg *types.Package
+ typ reflect.Type
+}
+
+func (act *action) String() string {
+ return fmt.Sprintf("%s@%s", act.a, act.pkg)
+}
+
+func execAll(actions []*action) {
+ var wg sync.WaitGroup
+ for _, act := range actions {
+ wg.Add(1)
+ work := func(act *action) {
+ act.exec()
+ wg.Done()
+ }
+ go work(act)
+ }
+ wg.Wait()
+}
+
+func (act *action) exec() { act.once.Do(act.execOnce) }
+
+func (act *action) execOnce() {
+ // Analyze dependencies.
+ execAll(act.deps)
+
+ // Report an error if any dependency failed.
+ var failed []string
+ for _, dep := range act.deps {
+ if dep.err != nil {
+ failed = append(failed, dep.String())
+ }
+ }
+ if failed != nil {
+ sort.Strings(failed)
+ act.err = fmt.Errorf("failed prerequisites: %s", strings.Join(failed, ", "))
+ return
+ }
+
+ // Plumb the output values of the dependencies
+ // into the inputs of this action. Also facts.
+ inputs := make(map[*analysis.Analyzer]interface{})
+ act.objectFacts = make(map[objectFactKey]analysis.Fact)
+ act.packageFacts = make(map[packageFactKey]analysis.Fact)
+ for _, dep := range act.deps {
+ if dep.pkg == act.pkg {
+ // Same package, different analysis (horizontal edge):
+ // in-memory outputs of prerequisite analyzers
+ // become inputs to this analysis pass.
+ inputs[dep.a] = dep.result
+
+ } else if dep.a == act.a { // (always true)
+ // Same analysis, different package (vertical edge):
+ // serialized facts produced by prerequisite analysis
+ // become available to this analysis pass.
+ inheritFacts(act, dep)
+ }
+ }
+
+ // Run the analysis.
+ pass := &analysis.Pass{
+ Analyzer: act.a,
+ Fset: act.pkg.Fset,
+ Files: act.pkg.Syntax,
+ OtherFiles: act.pkg.OtherFiles,
+ Pkg: act.pkg.Types,
+ TypesInfo: act.pkg.TypesInfo,
+ TypesSizes: act.pkg.TypesSizes,
+ ResultOf: inputs,
+ Report: func(d analysis.Diagnostic) { act.diagnostics = append(act.diagnostics, d) },
+ ImportObjectFact: act.importObjectFact,
+ ExportObjectFact: act.exportObjectFact,
+ ImportPackageFact: act.importPackageFact,
+ ExportPackageFact: act.exportPackageFact,
+ }
+ act.pass = pass
+
+ var err error
+ if act.pkg.IllTyped && !pass.Analyzer.RunDespiteErrors {
+ err = fmt.Errorf("analysis skipped due to errors in package")
+ } else {
+ act.result, err = pass.Analyzer.Run(pass)
+ if err == nil {
+ if got, want := reflect.TypeOf(act.result), pass.Analyzer.ResultType; got != want {
+ err = fmt.Errorf(
+ "internal error: on package %s, analyzer %s returned a result of type %v, but declared ResultType %v",
+ pass.Pkg.Path(), pass.Analyzer, got, want)
+ }
+ }
+ }
+ act.err = err
+
+ // disallow calls after Run
+ pass.ExportObjectFact = nil
+ pass.ExportPackageFact = nil
+}
+
+// inheritFacts populates act.facts with
+// those it obtains from its dependency, dep.
+func inheritFacts(act, dep *action) {
+ for key, fact := range dep.objectFacts {
+ // Filter out facts related to objects
+ // that are irrelevant downstream
+ // (equivalently: not in the compiler export data).
+ if !exportedFrom(key.obj, dep.pkg.Types) {
+ continue
+ }
+ act.objectFacts[key] = fact
+ }
+
+ for key, fact := range dep.packageFacts {
+ // TODO: filter out facts that belong to
+ // packages not mentioned in the export data
+ // to prevent side channels.
+
+ act.packageFacts[key] = fact
+ }
+}
+
+// exportedFrom reports whether obj may be visible to a package that imports pkg.
+// This includes not just the exported members of pkg, but also unexported
+// constants, types, fields, and methods, perhaps belonging to oether packages,
+// that find there way into the API.
+// This is an overapproximation of the more accurate approach used by
+// gc export data, which walks the type graph, but it's much simpler.
+//
+// TODO(adonovan): do more accurate filtering by walking the type graph.
+func exportedFrom(obj types.Object, pkg *types.Package) bool {
+ switch obj := obj.(type) {
+ case *types.Func:
+ return obj.Exported() && obj.Pkg() == pkg ||
+ obj.Type().(*types.Signature).Recv() != nil
+ case *types.Var:
+ return obj.Exported() && obj.Pkg() == pkg ||
+ obj.IsField()
+ case *types.TypeName, *types.Const:
+ return true
+ }
+ return false // Nil, Builtin, Label, or PkgName
+}
+
+// importObjectFact implements Pass.ImportObjectFact.
+// Given a non-nil pointer ptr of type *T, where *T satisfies Fact,
+// importObjectFact copies the fact value to *ptr.
+func (act *action) importObjectFact(obj types.Object, ptr analysis.Fact) bool {
+ if obj == nil {
+ panic("nil object")
+ }
+ key := objectFactKey{obj, factType(ptr)}
+ if v, ok := act.objectFacts[key]; ok {
+ reflect.ValueOf(ptr).Elem().Set(reflect.ValueOf(v).Elem())
+ return true
+ }
+ return false
+}
+
+// exportObjectFact implements Pass.ExportObjectFact.
+func (act *action) exportObjectFact(obj types.Object, fact analysis.Fact) {
+ if act.pass.ExportObjectFact == nil {
+ log.Panicf("%s: Pass.ExportObjectFact(%s, %T) called after Run", act, obj, fact)
+ }
+
+ if obj.Pkg() != act.pkg.Types {
+ log.Panicf("internal error: in analysis %s of package %s: Fact.Set(%s, %T): can't set facts on objects belonging another package",
+ act.a, act.pkg, obj, fact)
+ }
+
+ key := objectFactKey{obj, factType(fact)}
+ act.objectFacts[key] = fact // clobber any existing entry
+}
+
+// importPackageFact implements Pass.ImportPackageFact.
+// Given a non-nil pointer ptr of type *T, where *T satisfies Fact,
+// fact copies the fact value to *ptr.
+func (act *action) importPackageFact(pkg *types.Package, ptr analysis.Fact) bool {
+ if pkg == nil {
+ panic("nil package")
+ }
+ key := packageFactKey{pkg, factType(ptr)}
+ if v, ok := act.packageFacts[key]; ok {
+ reflect.ValueOf(ptr).Elem().Set(reflect.ValueOf(v).Elem())
+ return true
+ }
+ return false
+}
+
+// exportPackageFact implements Pass.ExportPackageFact.
+func (act *action) exportPackageFact(fact analysis.Fact) {
+ if act.pass.ExportPackageFact == nil {
+ log.Panicf("%s: Pass.ExportPackageFact(%T) called after Run", act, fact)
+ }
+
+ key := packageFactKey{act.pass.Pkg, factType(fact)}
+ act.packageFacts[key] = fact // clobber any existing entry
+}
+
+func factType(fact analysis.Fact) reflect.Type {
+ t := reflect.TypeOf(fact)
+ if t.Kind() != reflect.Ptr {
+ log.Fatalf("invalid Fact type: got %T, want pointer", t)
+ }
+ return t
+}
diff --git a/vendor/golang.org/x/tools/internal/lsp/source/completion.go b/vendor/golang.org/x/tools/internal/lsp/source/completion.go
index 576c501dd6..a6799ad2fc 100644
--- a/vendor/golang.org/x/tools/internal/lsp/source/completion.go
+++ b/vendor/golang.org/x/tools/internal/lsp/source/completion.go
@@ -47,18 +47,13 @@ type finder func(types.Object, float64, []CompletionItem) []CompletionItem
// completion. For instance, some clients may tolerate imperfect matches as
// valid completion results, since users may make typos.
func Completion(ctx context.Context, f File, pos token.Pos) (items []CompletionItem, prefix string, err error) {
- file, err := f.GetAST()
- if err != nil {
- return nil, "", err
- }
- pkg, err := f.GetPackage()
- if err != nil {
- return nil, "", err
- }
+ file := f.GetAST()
+ pkg := f.GetPackage()
path, _ := astutil.PathEnclosingInterval(file, pos, pos)
if path == nil {
return nil, "", fmt.Errorf("cannot find node enclosing position")
}
+
// If the position is not an identifier but immediately follows
// an identifier or selector period (as is common when
// requesting a completion), use the path to the preceding node.
@@ -71,26 +66,38 @@ func Completion(ctx context.Context, f File, pos token.Pos) (items []CompletionI
}
}
+ // Skip completion inside comment blocks.
+ switch path[0].(type) {
+ case *ast.File, *ast.BlockStmt:
+ if inComment(pos, file.Comments) {
+ return items, prefix, nil
+ }
+ }
+
// Save certain facts about the query position, including the expected type
// of the completion result, the signature of the function enclosing the
// position.
typ := expectedType(path, pos, pkg.TypesInfo)
sig := enclosingFunction(path, pos, pkg.TypesInfo)
pkgStringer := qualifier(file, pkg.Types, pkg.TypesInfo)
+ preferTypeNames := wantTypeNames(pos, path)
seen := make(map[types.Object]bool)
-
// found adds a candidate completion.
// Only the first candidate of a given name is considered.
found := func(obj types.Object, weight float64, items []CompletionItem) []CompletionItem {
if obj.Pkg() != nil && obj.Pkg() != pkg.Types && !obj.Exported() {
return items // inaccessible
}
+
if !seen[obj] {
seen[obj] = true
if typ != nil && matchingTypes(typ, obj.Type()) {
weight *= 10.0
}
+ if _, ok := obj.(*types.TypeName); !ok && preferTypeNames {
+ weight *= 0.01
+ }
item := formatCompletion(obj, pkgStringer, weight, func(v *types.Var) bool {
return isParameter(sig, v)
})
@@ -144,7 +151,6 @@ func Completion(ctx context.Context, f File, pos token.Pos) (items []CompletionI
// fallback to lexical completions
return lexical(path, pos, pkg.Types, pkg.TypesInfo, found), "", nil
}
-
return items, prefix, nil
}
@@ -194,6 +200,34 @@ func selector(sel *ast.SelectorExpr, pos token.Pos, info *types.Info, found find
return items, nil
}
+// wantTypeNames checks if given token position is inside func receiver, type params
+// or type results (e.g func (<>) foo(<>) (<>) {} ).
+func wantTypeNames(pos token.Pos, path []ast.Node) bool {
+ for _, p := range path {
+ switch n := p.(type) {
+ case *ast.FuncDecl:
+ recv := n.Recv
+ if recv != nil && recv.Pos() <= pos && pos <= recv.End() {
+ return true
+ }
+
+ if n.Type != nil {
+ params := n.Type.Params
+ if params != nil && params.Pos() <= pos && pos <= params.End() {
+ return true
+ }
+
+ results := n.Type.Results
+ if results != nil && results.Pos() <= pos && pos <= results.End() {
+ return true
+ }
+ }
+ return false
+ }
+ }
+ return false
+}
+
// lexical finds completions in the lexical environment.
func lexical(path []ast.Node, pos token.Pos, pkg *types.Package, info *types.Info, found finder) (items []CompletionItem) {
var scopes []*types.Scope // scopes[i], where i 0 {
+ return reports, nil
+ }
+ // Type checking and parsing succeeded. Run analyses.
+ runAnalyses(v.GetAnalysisCache(), pkg, func(a *analysis.Analyzer, diag analysis.Diagnostic) {
+ pos := pkg.Fset.Position(diag.Pos)
+ category := a.Name
+ if diag.Category != "" {
+ category += "." + category
+ }
+
+ reports[pos.Filename] = append(reports[pos.Filename], Diagnostic{
+ Source: category,
+ Range: Range{Start: diag.Pos, End: diag.Pos},
+ Message: fmt.Sprintf(diag.Message),
+ })
+ })
+
return reports, nil
}
@@ -142,3 +175,47 @@ func identifierEnd(content []byte, l, c int) (int, error) {
}
return bytes.IndexAny(line[c-1:], " \n,():;[]"), nil
}
+
+func runAnalyses(c *AnalysisCache, pkg *packages.Package, report func(a *analysis.Analyzer, diag analysis.Diagnostic)) error {
+ // the traditional vet suite:
+ analyzers := []*analysis.Analyzer{
+ asmdecl.Analyzer,
+ assign.Analyzer,
+ atomic.Analyzer,
+ atomicalign.Analyzer,
+ bools.Analyzer,
+ buildtag.Analyzer,
+ cgocall.Analyzer,
+ composite.Analyzer,
+ copylock.Analyzer,
+ httpresponse.Analyzer,
+ loopclosure.Analyzer,
+ lostcancel.Analyzer,
+ nilfunc.Analyzer,
+ printf.Analyzer,
+ shift.Analyzer,
+ stdmethods.Analyzer,
+ structtag.Analyzer,
+ tests.Analyzer,
+ unmarshal.Analyzer,
+ unreachable.Analyzer,
+ unsafeptr.Analyzer,
+ unusedresult.Analyzer,
+ }
+
+ roots := c.analyze([]*packages.Package{pkg}, analyzers)
+
+ // Report diagnostics and errors from root analyzers.
+ for _, r := range roots {
+ for _, diag := range r.diagnostics {
+ if r.err != nil {
+ // TODO(matloob): This isn't quite right: we might return a failed prerequisites error,
+ // which isn't super useful...
+ return r.err
+ }
+ report(r.a, diag)
+ }
+ }
+
+ return nil
+}
diff --git a/vendor/golang.org/x/tools/internal/lsp/source/format.go b/vendor/golang.org/x/tools/internal/lsp/source/format.go
index 0ac932a00d..1a7e8b0821 100644
--- a/vendor/golang.org/x/tools/internal/lsp/source/format.go
+++ b/vendor/golang.org/x/tools/internal/lsp/source/format.go
@@ -11,17 +11,17 @@ import (
"fmt"
"go/ast"
"go/format"
+ "go/token"
+ "strings"
"golang.org/x/tools/go/ast/astutil"
"golang.org/x/tools/imports"
+ "golang.org/x/tools/internal/lsp/diff"
)
// Format formats a file with a given range.
func Format(ctx context.Context, f File, rng Range) ([]TextEdit, error) {
- fAST, err := f.GetAST()
- if err != nil {
- return nil, err
- }
+ fAST := f.GetAST()
path, exact := astutil.PathEnclosingInterval(fAST, rng.Start, rng.End)
if !exact || len(path) == 0 {
return nil, fmt.Errorf("no exact AST node matching the specified range")
@@ -47,32 +47,55 @@ func Format(ctx context.Context, f File, rng Range) ([]TextEdit, error) {
// of Go used to build the LSP server will determine how it formats code.
// This should be acceptable for all users, who likely be prompted to rebuild
// the LSP server on each Go release.
- fset, err := f.GetFileSet()
- if err != nil {
- return nil, err
- }
+ fset := f.GetFileSet()
buf := &bytes.Buffer{}
if err := format.Node(buf, fset, node); err != nil {
return nil, err
}
- return computeTextEdits(rng, buf.String()), nil
+ return computeTextEdits(f, buf.String()), nil
}
// Imports formats a file using the goimports tool.
-func Imports(ctx context.Context, filename string, content []byte, rng Range) ([]TextEdit, error) {
- content, err := imports.Process(filename, content, nil)
+func Imports(ctx context.Context, f File, rng Range) ([]TextEdit, error) {
+ formatted, err := imports.Process(f.GetToken().Name(), f.GetContent(), nil)
if err != nil {
return nil, err
}
- return computeTextEdits(rng, string(content)), nil
+ return computeTextEdits(f, string(formatted)), nil
}
-// TODO(rstambler): Compute text edits instead of replacing whole file.
-func computeTextEdits(rng Range, content string) []TextEdit {
- return []TextEdit{
- {
- Range: rng,
- NewText: content,
- },
+func computeTextEdits(file File, formatted string) (edits []TextEdit) {
+ u := strings.SplitAfter(string(file.GetContent()), "\n")
+ tok := file.GetToken()
+ f := strings.SplitAfter(formatted, "\n")
+ for _, op := range diff.Operations(u, f) {
+ start := lineStart(tok, op.I1+1)
+ if start == token.NoPos && op.I1 == len(u) {
+ start = tok.Pos(tok.Size())
+ }
+ end := lineStart(tok, op.I2+1)
+ if end == token.NoPos && op.I2 == len(u) {
+ end = tok.Pos(tok.Size())
+ }
+ switch op.Kind {
+ case diff.Delete:
+ // Delete: unformatted[i1:i2] is deleted.
+ edits = append(edits, TextEdit{
+ Range: Range{
+ Start: start,
+ End: end,
+ },
+ })
+ case diff.Insert:
+ // Insert: formatted[j1:j2] is inserted at unformatted[i1:i1].
+ edits = append(edits, TextEdit{
+ Range: Range{
+ Start: start,
+ End: start,
+ },
+ NewText: op.Content,
+ })
+ }
}
+ return edits
}
diff --git a/vendor/golang.org/x/tools/internal/lsp/source/hover.go b/vendor/golang.org/x/tools/internal/lsp/source/hover.go
deleted file mode 100644
index e449434a34..0000000000
--- a/vendor/golang.org/x/tools/internal/lsp/source/hover.go
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2018 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package source
-
-import (
- "context"
- "fmt"
- "go/token"
- "go/types"
-)
-
-func Hover(ctx context.Context, f File, pos token.Pos) (string, Range, error) {
- fAST, err := f.GetAST()
- if err != nil {
- return "", Range{}, err
- }
- pkg, err := f.GetPackage()
- if err != nil {
- return "", Range{}, err
- }
- i, err := findIdentifier(fAST, pos)
- if err != nil {
- return "", Range{}, err
- }
- if i.ident == nil {
- return "", Range{}, fmt.Errorf("not a valid identifier")
- }
- obj := pkg.TypesInfo.ObjectOf(i.ident)
- if obj == nil {
- return "", Range{}, fmt.Errorf("no object")
- }
- if i.wasEmbeddedField {
- // the original position was on the embedded field declaration
- // so we try to dig out the type and jump to that instead
- if v, ok := obj.(*types.Var); ok {
- if n, ok := v.Type().(*types.Named); ok {
- obj = n.Obj()
- }
- }
- }
- // TODO(rstambler): Add documentation and improve quality of object string.
- content := types.ObjectString(obj, qualifier(fAST, pkg.Types, pkg.TypesInfo))
- markdown := "```go\n" + content + "\n```"
- return markdown, Range{
- Start: i.ident.Pos(),
- End: i.ident.End(),
- }, nil
-}
diff --git a/vendor/golang.org/x/tools/internal/lsp/source/signature_help.go b/vendor/golang.org/x/tools/internal/lsp/source/signature_help.go
index db78b12648..4478fed277 100644
--- a/vendor/golang.org/x/tools/internal/lsp/source/signature_help.go
+++ b/vendor/golang.org/x/tools/internal/lsp/source/signature_help.go
@@ -25,14 +25,8 @@ type ParameterInformation struct {
}
func SignatureHelp(ctx context.Context, f File, pos token.Pos) (*SignatureInformation, error) {
- fAST, err := f.GetAST()
- if err != nil {
- return nil, err
- }
- pkg, err := f.GetPackage()
- if err != nil {
- return nil, err
- }
+ fAST := f.GetAST()
+ pkg := f.GetPackage()
// Find a call expression surrounding the query position.
var callExpr *ast.CallExpr
diff --git a/vendor/golang.org/x/tools/internal/lsp/source/view.go b/vendor/golang.org/x/tools/internal/lsp/source/view.go
index 395c06fd58..5a427170f2 100644
--- a/vendor/golang.org/x/tools/internal/lsp/source/view.go
+++ b/vendor/golang.org/x/tools/internal/lsp/source/view.go
@@ -18,6 +18,7 @@ import (
type View interface {
GetFile(ctx context.Context, uri URI) (File, error)
SetContent(ctx context.Context, uri URI, content []byte) (View, error)
+ GetAnalysisCache() *AnalysisCache
FileSet() *token.FileSet
}
@@ -26,11 +27,11 @@ type View interface {
// building blocks for most queries. Users of the source package can abstract
// the loading of packages into their own caching systems.
type File interface {
- GetAST() (*ast.File, error)
- GetFileSet() (*token.FileSet, error)
- GetPackage() (*packages.Package, error)
- GetToken() (*token.File, error)
- Read() ([]byte, error)
+ GetAST() *ast.File
+ GetFileSet() *token.FileSet
+ GetPackage() *packages.Package
+ GetToken() *token.File
+ GetContent() []byte
}
// Range represents a start and end position.
diff --git a/vendor/golang.org/x/tools/internal/lsp/testdata/bad/bad0.go b/vendor/golang.org/x/tools/internal/lsp/testdata/bad/bad0.go
index 72cf120708..e6df4c1c5d 100644
--- a/vendor/golang.org/x/tools/internal/lsp/testdata/bad/bad0.go
+++ b/vendor/golang.org/x/tools/internal/lsp/testdata/bad/bad0.go
@@ -4,9 +4,9 @@ package bad
func stuff() { //@item(stuff, "stuff()", "", "func")
x := "heeeeyyyy"
- random2(x) //@diag("x", "cannot use x (variable of type string) as int value in argument to random2")
+ random2(x) //@diag("x", "LSP", "cannot use x (variable of type string) as int value in argument to random2")
random2(1) //@complete("dom", random, random2, random3)
- y := 3 //@diag("y", "y declared but not used")
+ y := 3 //@diag("y", "LSP", "y declared but not used")
}
type bob struct { //@item(bob, "bob", "struct{...}", "struct")
@@ -16,6 +16,6 @@ type bob struct { //@item(bob, "bob", "struct{...}", "struct")
func _() {
var q int
_ = &bob{
- f: q, //@diag("f", "unknown field f in struct literal")
+ f: q, //@diag("f", "LSP", "unknown field f in struct literal")
}
}
diff --git a/vendor/golang.org/x/tools/internal/lsp/testdata/bad/bad1.go b/vendor/golang.org/x/tools/internal/lsp/testdata/bad/bad1.go
index c7456f5c3a..0949b66808 100644
--- a/vendor/golang.org/x/tools/internal/lsp/testdata/bad/bad1.go
+++ b/vendor/golang.org/x/tools/internal/lsp/testdata/bad/bad1.go
@@ -3,10 +3,10 @@
package bad
// import (
-// "github.com/bob/pkg" //@diag("\"github.com/bob/pkg\"", "unable to import "\"github.com/bob/pkg\"")
+// "github.com/bob/pkg" //@diag("\"github.com/bob/pkg\"", "LSP", "unable to import "\"github.com/bob/pkg\"")
// )
-var a unknown //@item(global_a, "a", "unknown", "var"),diag("unknown", "undeclared name: unknown")
+var a unknown //@item(global_a, "a", "unknown", "var"),diag("unknown", "LSP", "undeclared name: unknown")
func random() int { //@item(random, "random()", "int", "func")
//@complete("", global_a, bob, random, random2, random3, stuff)
@@ -14,9 +14,9 @@ func random() int { //@item(random, "random()", "int", "func")
}
func random2(y int) int { //@item(random2, "random2(y int)", "int", "func"),item(bad_y_param, "y", "int", "var")
- x := 6 //@item(x, "x", "int", "var"),diag("x", "x declared but not used")
- var q blah //@item(q, "q", "blah", "var"),diag("q", "q declared but not used"),diag("blah", "undeclared name: blah")
- var t blob //@item(t, "t", "blob", "var"),diag("t", "t declared but not used"),diag("blob", "undeclared name: blob")
+ x := 6 //@item(x, "x", "int", "var"),diag("x", "LSP", "x declared but not used")
+ var q blah //@item(q, "q", "blah", "var"),diag("q", "LSP", "q declared but not used"),diag("blah", "LSP", "undeclared name: blah")
+ var t blob //@item(t, "t", "blob", "var"),diag("t", "LSP", "t declared but not used"),diag("blob", "LSP", "undeclared name: blob")
//@complete("", q, t, x, bad_y_param, global_a, bob, random, random2, random3, stuff)
return y
diff --git a/vendor/golang.org/x/tools/internal/lsp/testdata/builtins/builtins.go b/vendor/golang.org/x/tools/internal/lsp/testdata/builtins/builtins.go
index 75452504dd..c85a763aab 100644
--- a/vendor/golang.org/x/tools/internal/lsp/testdata/builtins/builtins.go
+++ b/vendor/golang.org/x/tools/internal/lsp/testdata/builtins/builtins.go
@@ -1,6 +1,46 @@
package builtins
func _() {
- // TODO(rstambler): Add testing for completion of builtin symbols.
- //@complete("")
+ //@complete("", append, bool, byte, cap, close, complex, complex128, complex64, copy, delete, error, _false, float32, float64, imag, int, int16, int32, int64, int8, iota, len, make, new, _nil, panic, print, println, real, recover, rune, string, _true, uint, uint16, uint32, uint64, uint8, uintptr)
}
+
+/* Create markers for builtin types. Only for use by this test.
+/* append(slice []T, elems ...T) []T */ //@item(append, "append(slice []T, elems ...T)", "[]T", "func")
+/* bool */ //@item(bool, "bool", "", "type")
+/* byte */ //@item(byte, "byte", "", "type")
+/* cap(v []T) int */ //@item(cap, "cap(v []T)", "int", "func")
+/* close(c chan<- T) */ //@item(close, "close(c chan<- T)", "", "func")
+/* complex(real float64, imag float64) */ //@item(complex, "complex(real float64, imag float64)", "complex128", "func")
+/* complex128 */ //@item(complex128, "complex128", "", "type")
+/* complex64 */ //@item(complex64, "complex64", "", "type")
+/* copy(dst []T, src []T) int */ //@item(copy, "copy(dst []T, src []T)", "int", "func")
+/* delete(m map[K]V, key K) */ //@item(delete, "delete(m map[K]V, key K)", "", "func")
+/* error */ //@item(error, "error", "", "interface")
+/* false */ //@item(_false, "false", "", "const")
+/* float32 */ //@item(float32, "float32", "", "type")
+/* float64 */ //@item(float64, "float64", "", "type")
+/* imag(complex128) float64 */ //@item(imag, "imag(complex128)", "float64", "func")
+/* int */ //@item(int, "int", "", "type")
+/* int16 */ //@item(int16, "int16", "", "type")
+/* int32 */ //@item(int32, "int32", "", "type")
+/* int64 */ //@item(int64, "int64", "", "type")
+/* int8 */ //@item(int8, "int8", "", "type")
+/* iota */ //@item(iota, "iota", "", "const")
+/* len(T) int */ //@item(len, "len(T)", "int", "func")
+/* make(t T, size ...int) T */ //@item(make, "make(t T, size ...int)", "T", "func")
+/* new(T) *T */ //@item(new, "new(T)", "*T", "func")
+/* nil */ //@item(_nil, "nil", "", "var")
+/* panic(interface{}) */ //@item(panic, "panic(interface{})", "", "func")
+/* print(args ...T) */ //@item(print, "print(args ...T)", "", "func")
+/* println(args ...T) */ //@item(println, "println(args ...T)", "", "func")
+/* real(complex128) float64 */ //@item(real, "real(complex128)", "float64", "func")
+/* recover() interface{} */ //@item(recover, "recover()", "interface{}", "func")
+/* rune */ //@item(rune, "rune", "", "type")
+/* string */ //@item(string, "string", "", "type")
+/* true */ //@item(_true, "true", "", "const")
+/* uint */ //@item(uint, "uint", "", "type")
+/* uint16 */ //@item(uint16, "uint16", "", "type")
+/* uint32 */ //@item(uint32, "uint32", "", "type")
+/* uint64 */ //@item(uint64, "uint64", "", "type")
+/* uint8 */ //@item(uint8, "uint8", "", "type")
+/* uintptr */ //@item(uintptr, "uintptr", "", "type")
diff --git a/vendor/golang.org/x/tools/internal/lsp/testdata/foo/foo.go b/vendor/golang.org/x/tools/internal/lsp/testdata/foo/foo.go
index e02099b4d8..acd6cd1e39 100644
--- a/vendor/golang.org/x/tools/internal/lsp/testdata/foo/foo.go
+++ b/vendor/golang.org/x/tools/internal/lsp/testdata/foo/foo.go
@@ -4,7 +4,7 @@ type StructFoo struct { //@item(StructFoo, "StructFoo", "struct{...}", "struct")
Value int //@item(Value, "Value", "int", "field")
}
-// TODO(rstambler): Create pre-set builtins?
+// Pre-set this marker, as we don't have a "source" for it in this package.
/* Error() */ //@item(Error, "Error()", "string", "method")
func Foo() { //@item(Foo, "Foo()", "", "func")
@@ -19,5 +19,4 @@ func _() {
}
}
-//@complete("", Foo, IntFoo, StructFoo)
-type IntFoo int //@item(IntFoo, "IntFoo", "int", "type")
+type IntFoo int //@item(IntFoo, "IntFoo", "int", "type"),complete("", Foo, IntFoo, StructFoo)
diff --git a/vendor/golang.org/x/tools/internal/lsp/testdata/format/bad_format.go b/vendor/golang.org/x/tools/internal/lsp/testdata/format/bad_format.go
deleted file mode 100644
index 77f0861cad..0000000000
--- a/vendor/golang.org/x/tools/internal/lsp/testdata/format/bad_format.go
+++ /dev/null
@@ -1,21 +0,0 @@
-package format //@format("package")
-
-import (
- "fmt"
- "runtime"
-
- "log"
-)
-
-func hello() {
-
- var x int //@diag("x", "x declared but not used")
-}
-
-func hi() {
-
- runtime.GOROOT()
- fmt.Printf("")
-
- log.Printf("")
-}
diff --git a/vendor/golang.org/x/tools/internal/lsp/testdata/good/good0.go b/vendor/golang.org/x/tools/internal/lsp/testdata/good/good0.go
index 5bcb77ded6..4e204e3fdb 100644
--- a/vendor/golang.org/x/tools/internal/lsp/testdata/good/good0.go
+++ b/vendor/golang.org/x/tools/internal/lsp/testdata/good/good0.go
@@ -1,4 +1,4 @@
-package good //@diag("package", "")
+package good //@diag("package", "", "")
func stuff() { //@item(good_stuff, "stuff()", "", "func")
x := 5
diff --git a/vendor/golang.org/x/tools/internal/lsp/testdata/good/good1.go b/vendor/golang.org/x/tools/internal/lsp/testdata/good/good1.go
index 8647f80c41..477a277d62 100644
--- a/vendor/golang.org/x/tools/internal/lsp/testdata/good/good1.go
+++ b/vendor/golang.org/x/tools/internal/lsp/testdata/good/good1.go
@@ -1,4 +1,4 @@
-package good //@diag("package", "")
+package good //@diag("package", "", "")
import (
"golang.org/x/tools/internal/lsp/types" //@item(types_import, "types", "\"golang.org/x/tools/internal/lsp/types\"", "package")
diff --git a/vendor/golang.org/x/tools/internal/lsp/testdata/testy/testy.go b/vendor/golang.org/x/tools/internal/lsp/testdata/testy/testy.go
new file mode 100644
index 0000000000..a72cef8985
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/lsp/testdata/testy/testy.go
@@ -0,0 +1,3 @@
+package testy
+
+func a() {}
diff --git a/vendor/golang.org/x/tools/internal/memcache/memcache.go b/vendor/golang.org/x/tools/internal/memcache/memcache.go
deleted file mode 100644
index be350f6831..0000000000
--- a/vendor/golang.org/x/tools/internal/memcache/memcache.go
+++ /dev/null
@@ -1,159 +0,0 @@
-// Copyright 2018 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build golangorg
-
-// Package memcache provides a minimally compatible interface for
-// google.golang.org/appengine/memcache
-// and stores the data in Redis (e.g., via Cloud Memorystore).
-package memcache
-
-import (
- "bytes"
- "context"
- "encoding/gob"
- "encoding/json"
- "errors"
- "time"
-
- "github.com/gomodule/redigo/redis"
-)
-
-var ErrCacheMiss = errors.New("memcache: cache miss")
-
-func New(addr string) *Client {
- const maxConns = 20
-
- pool := redis.NewPool(func() (redis.Conn, error) {
- return redis.Dial("tcp", addr)
- }, maxConns)
-
- return &Client{
- pool: pool,
- }
-}
-
-type Client struct {
- pool *redis.Pool
-}
-
-type CodecClient struct {
- client *Client
- codec Codec
-}
-
-type Item struct {
- Key string
- Value []byte
- Object interface{} // Used with Codec.
- Expiration time.Duration // Read-only.
-}
-
-func (c *Client) WithCodec(codec Codec) *CodecClient {
- return &CodecClient{
- c, codec,
- }
-}
-
-func (c *Client) Delete(ctx context.Context, key string) error {
- conn, err := c.pool.GetContext(ctx)
- if err != nil {
- return err
- }
- defer conn.Close()
-
- _, err = conn.Do("DEL", key)
- return err
-}
-
-func (c *CodecClient) Delete(ctx context.Context, key string) error {
- return c.client.Delete(ctx, key)
-}
-
-func (c *Client) Set(ctx context.Context, item *Item) error {
- if item.Value == nil {
- return errors.New("nil item value")
- }
- return c.set(ctx, item.Key, item.Value, item.Expiration)
-}
-
-func (c *CodecClient) Set(ctx context.Context, item *Item) error {
- if item.Object == nil {
- return errors.New("nil object value")
- }
- b, err := c.codec.Marshal(item.Object)
- if err != nil {
- return err
- }
- return c.client.set(ctx, item.Key, b, item.Expiration)
-}
-
-func (c *Client) set(ctx context.Context, key string, value []byte, expiration time.Duration) error {
- conn, err := c.pool.GetContext(ctx)
- if err != nil {
- return err
- }
- defer conn.Close()
-
- if expiration == 0 {
- _, err := conn.Do("SET", key, value)
- return err
- }
-
- // NOTE(cbro): redis does not support expiry in units more granular than a second.
- exp := int64(expiration.Seconds())
- if exp == 0 {
- // Redis doesn't allow a zero expiration, delete the key instead.
- _, err := conn.Do("DEL", key)
- return err
- }
-
- _, err = conn.Do("SETEX", key, exp, value)
- return err
-}
-
-// Get gets the item.
-func (c *Client) Get(ctx context.Context, key string) ([]byte, error) {
- conn, err := c.pool.GetContext(ctx)
- if err != nil {
- return nil, err
- }
- defer conn.Close()
-
- b, err := redis.Bytes(conn.Do("GET", key))
- if err == redis.ErrNil {
- err = ErrCacheMiss
- }
- return b, err
-}
-
-func (c *CodecClient) Get(ctx context.Context, key string, v interface{}) error {
- b, err := c.client.Get(ctx, key)
- if err != nil {
- return err
- }
- return c.codec.Unmarshal(b, v)
-}
-
-var (
- Gob = Codec{gobMarshal, gobUnmarshal}
- JSON = Codec{json.Marshal, json.Unmarshal}
-)
-
-type Codec struct {
- Marshal func(interface{}) ([]byte, error)
- Unmarshal func([]byte, interface{}) error
-}
-
-func gobMarshal(v interface{}) ([]byte, error) {
- var buf bytes.Buffer
- if err := gob.NewEncoder(&buf).Encode(v); err != nil {
- return nil, err
- }
- return buf.Bytes(), nil
-}
-
-func gobUnmarshal(data []byte, v interface{}) error {
- return gob.NewDecoder(bytes.NewBuffer(data)).Decode(v)
-}
diff --git a/vendor/golang.org/x/tools/internal/module/module.go b/vendor/golang.org/x/tools/internal/module/module.go
new file mode 100644
index 0000000000..9a4edb9dec
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/module/module.go
@@ -0,0 +1,540 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package module defines the module.Version type
+// along with support code.
+package module
+
+// IMPORTANT NOTE
+//
+// This file essentially defines the set of valid import paths for the go command.
+// There are many subtle considerations, including Unicode ambiguity,
+// security, network, and file system representations.
+//
+// This file also defines the set of valid module path and version combinations,
+// another topic with many subtle considerations.
+//
+// Changes to the semantics in this file require approval from rsc.
+
+import (
+ "fmt"
+ "sort"
+ "strings"
+ "unicode"
+ "unicode/utf8"
+
+ "golang.org/x/tools/internal/semver"
+)
+
+// A Version is defined by a module path and version pair.
+type Version struct {
+ Path string
+
+ // Version is usually a semantic version in canonical form.
+ // There are two exceptions to this general rule.
+ // First, the top-level target of a build has no specific version
+ // and uses Version = "".
+ // Second, during MVS calculations the version "none" is used
+ // to represent the decision to take no version of a given module.
+ Version string `json:",omitempty"`
+}
+
+// Check checks that a given module path, version pair is valid.
+// In addition to the path being a valid module path
+// and the version being a valid semantic version,
+// the two must correspond.
+// For example, the path "yaml/v2" only corresponds to
+// semantic versions beginning with "v2.".
+func Check(path, version string) error {
+ if err := CheckPath(path); err != nil {
+ return err
+ }
+ if !semver.IsValid(version) {
+ return fmt.Errorf("malformed semantic version %v", version)
+ }
+ _, pathMajor, _ := SplitPathVersion(path)
+ if !MatchPathMajor(version, pathMajor) {
+ if pathMajor == "" {
+ pathMajor = "v0 or v1"
+ }
+ if pathMajor[0] == '.' { // .v1
+ pathMajor = pathMajor[1:]
+ }
+ return fmt.Errorf("mismatched module path %v and version %v (want %v)", path, version, pathMajor)
+ }
+ return nil
+}
+
+// firstPathOK reports whether r can appear in the first element of a module path.
+// The first element of the path must be an LDH domain name, at least for now.
+// To avoid case ambiguity, the domain name must be entirely lower case.
+func firstPathOK(r rune) bool {
+ return r == '-' || r == '.' ||
+ '0' <= r && r <= '9' ||
+ 'a' <= r && r <= 'z'
+}
+
+// pathOK reports whether r can appear in an import path element.
+// Paths can be ASCII letters, ASCII digits, and limited ASCII punctuation: + - . _ and ~.
+// This matches what "go get" has historically recognized in import paths.
+// TODO(rsc): We would like to allow Unicode letters, but that requires additional
+// care in the safe encoding (see note below).
+func pathOK(r rune) bool {
+ if r < utf8.RuneSelf {
+ return r == '+' || r == '-' || r == '.' || r == '_' || r == '~' ||
+ '0' <= r && r <= '9' ||
+ 'A' <= r && r <= 'Z' ||
+ 'a' <= r && r <= 'z'
+ }
+ return false
+}
+
+// fileNameOK reports whether r can appear in a file name.
+// For now we allow all Unicode letters but otherwise limit to pathOK plus a few more punctuation characters.
+// If we expand the set of allowed characters here, we have to
+// work harder at detecting potential case-folding and normalization collisions.
+// See note about "safe encoding" below.
+func fileNameOK(r rune) bool {
+ if r < utf8.RuneSelf {
+ // Entire set of ASCII punctuation, from which we remove characters:
+ // ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
+ // We disallow some shell special characters: " ' * < > ? ` |
+ // (Note that some of those are disallowed by the Windows file system as well.)
+ // We also disallow path separators / : and \ (fileNameOK is only called on path element characters).
+ // We allow spaces (U+0020) in file names.
+ const allowed = "!#$%&()+,-.=@[]^_{}~ "
+ if '0' <= r && r <= '9' || 'A' <= r && r <= 'Z' || 'a' <= r && r <= 'z' {
+ return true
+ }
+ for i := 0; i < len(allowed); i++ {
+ if rune(allowed[i]) == r {
+ return true
+ }
+ }
+ return false
+ }
+ // It may be OK to add more ASCII punctuation here, but only carefully.
+ // For example Windows disallows < > \, and macOS disallows :, so we must not allow those.
+ return unicode.IsLetter(r)
+}
+
+// CheckPath checks that a module path is valid.
+func CheckPath(path string) error {
+ if err := checkPath(path, false); err != nil {
+ return fmt.Errorf("malformed module path %q: %v", path, err)
+ }
+ i := strings.Index(path, "/")
+ if i < 0 {
+ i = len(path)
+ }
+ if i == 0 {
+ return fmt.Errorf("malformed module path %q: leading slash", path)
+ }
+ if !strings.Contains(path[:i], ".") {
+ return fmt.Errorf("malformed module path %q: missing dot in first path element", path)
+ }
+ if path[0] == '-' {
+ return fmt.Errorf("malformed module path %q: leading dash in first path element", path)
+ }
+ for _, r := range path[:i] {
+ if !firstPathOK(r) {
+ return fmt.Errorf("malformed module path %q: invalid char %q in first path element", path, r)
+ }
+ }
+ if _, _, ok := SplitPathVersion(path); !ok {
+ return fmt.Errorf("malformed module path %q: invalid version", path)
+ }
+ return nil
+}
+
+// CheckImportPath checks that an import path is valid.
+func CheckImportPath(path string) error {
+ if err := checkPath(path, false); err != nil {
+ return fmt.Errorf("malformed import path %q: %v", path, err)
+ }
+ return nil
+}
+
+// checkPath checks that a general path is valid.
+// It returns an error describing why but not mentioning path.
+// Because these checks apply to both module paths and import paths,
+// the caller is expected to add the "malformed ___ path %q: " prefix.
+// fileName indicates whether the final element of the path is a file name
+// (as opposed to a directory name).
+func checkPath(path string, fileName bool) error {
+ if !utf8.ValidString(path) {
+ return fmt.Errorf("invalid UTF-8")
+ }
+ if path == "" {
+ return fmt.Errorf("empty string")
+ }
+ if strings.Contains(path, "..") {
+ return fmt.Errorf("double dot")
+ }
+ if strings.Contains(path, "//") {
+ return fmt.Errorf("double slash")
+ }
+ if path[len(path)-1] == '/' {
+ return fmt.Errorf("trailing slash")
+ }
+ elemStart := 0
+ for i, r := range path {
+ if r == '/' {
+ if err := checkElem(path[elemStart:i], fileName); err != nil {
+ return err
+ }
+ elemStart = i + 1
+ }
+ }
+ if err := checkElem(path[elemStart:], fileName); err != nil {
+ return err
+ }
+ return nil
+}
+
+// checkElem checks whether an individual path element is valid.
+// fileName indicates whether the element is a file name (not a directory name).
+func checkElem(elem string, fileName bool) error {
+ if elem == "" {
+ return fmt.Errorf("empty path element")
+ }
+ if strings.Count(elem, ".") == len(elem) {
+ return fmt.Errorf("invalid path element %q", elem)
+ }
+ if elem[0] == '.' && !fileName {
+ return fmt.Errorf("leading dot in path element")
+ }
+ if elem[len(elem)-1] == '.' {
+ return fmt.Errorf("trailing dot in path element")
+ }
+ charOK := pathOK
+ if fileName {
+ charOK = fileNameOK
+ }
+ for _, r := range elem {
+ if !charOK(r) {
+ return fmt.Errorf("invalid char %q", r)
+ }
+ }
+
+ // Windows disallows a bunch of path elements, sadly.
+ // See https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file
+ short := elem
+ if i := strings.Index(short, "."); i >= 0 {
+ short = short[:i]
+ }
+ for _, bad := range badWindowsNames {
+ if strings.EqualFold(bad, short) {
+ return fmt.Errorf("disallowed path element %q", elem)
+ }
+ }
+ return nil
+}
+
+// CheckFilePath checks whether a slash-separated file path is valid.
+func CheckFilePath(path string) error {
+ if err := checkPath(path, true); err != nil {
+ return fmt.Errorf("malformed file path %q: %v", path, err)
+ }
+ return nil
+}
+
+// badWindowsNames are the reserved file path elements on Windows.
+// See https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file
+var badWindowsNames = []string{
+ "CON",
+ "PRN",
+ "AUX",
+ "NUL",
+ "COM1",
+ "COM2",
+ "COM3",
+ "COM4",
+ "COM5",
+ "COM6",
+ "COM7",
+ "COM8",
+ "COM9",
+ "LPT1",
+ "LPT2",
+ "LPT3",
+ "LPT4",
+ "LPT5",
+ "LPT6",
+ "LPT7",
+ "LPT8",
+ "LPT9",
+}
+
+// SplitPathVersion returns prefix and major version such that prefix+pathMajor == path
+// and version is either empty or "/vN" for N >= 2.
+// As a special case, gopkg.in paths are recognized directly;
+// they require ".vN" instead of "/vN", and for all N, not just N >= 2.
+func SplitPathVersion(path string) (prefix, pathMajor string, ok bool) {
+ if strings.HasPrefix(path, "gopkg.in/") {
+ return splitGopkgIn(path)
+ }
+
+ i := len(path)
+ dot := false
+ for i > 0 && ('0' <= path[i-1] && path[i-1] <= '9' || path[i-1] == '.') {
+ if path[i-1] == '.' {
+ dot = true
+ }
+ i--
+ }
+ if i <= 1 || i == len(path) || path[i-1] != 'v' || path[i-2] != '/' {
+ return path, "", true
+ }
+ prefix, pathMajor = path[:i-2], path[i-2:]
+ if dot || len(pathMajor) <= 2 || pathMajor[2] == '0' || pathMajor == "/v1" {
+ return path, "", false
+ }
+ return prefix, pathMajor, true
+}
+
+// splitGopkgIn is like SplitPathVersion but only for gopkg.in paths.
+func splitGopkgIn(path string) (prefix, pathMajor string, ok bool) {
+ if !strings.HasPrefix(path, "gopkg.in/") {
+ return path, "", false
+ }
+ i := len(path)
+ if strings.HasSuffix(path, "-unstable") {
+ i -= len("-unstable")
+ }
+ for i > 0 && ('0' <= path[i-1] && path[i-1] <= '9') {
+ i--
+ }
+ if i <= 1 || path[i-1] != 'v' || path[i-2] != '.' {
+ // All gopkg.in paths must end in vN for some N.
+ return path, "", false
+ }
+ prefix, pathMajor = path[:i-2], path[i-2:]
+ if len(pathMajor) <= 2 || pathMajor[2] == '0' && pathMajor != ".v0" {
+ return path, "", false
+ }
+ return prefix, pathMajor, true
+}
+
+// MatchPathMajor reports whether the semantic version v
+// matches the path major version pathMajor.
+func MatchPathMajor(v, pathMajor string) bool {
+ if strings.HasPrefix(pathMajor, ".v") && strings.HasSuffix(pathMajor, "-unstable") {
+ pathMajor = strings.TrimSuffix(pathMajor, "-unstable")
+ }
+ if strings.HasPrefix(v, "v0.0.0-") && pathMajor == ".v1" {
+ // Allow old bug in pseudo-versions that generated v0.0.0- pseudoversion for gopkg .v1.
+ // For example, gopkg.in/yaml.v2@v2.2.1's go.mod requires gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405.
+ return true
+ }
+ m := semver.Major(v)
+ if pathMajor == "" {
+ return m == "v0" || m == "v1" || semver.Build(v) == "+incompatible"
+ }
+ return (pathMajor[0] == '/' || pathMajor[0] == '.') && m == pathMajor[1:]
+}
+
+// CanonicalVersion returns the canonical form of the version string v.
+// It is the same as semver.Canonical(v) except that it preserves the special build suffix "+incompatible".
+func CanonicalVersion(v string) string {
+ cv := semver.Canonical(v)
+ if semver.Build(v) == "+incompatible" {
+ cv += "+incompatible"
+ }
+ return cv
+}
+
+// Sort sorts the list by Path, breaking ties by comparing Versions.
+func Sort(list []Version) {
+ sort.Slice(list, func(i, j int) bool {
+ mi := list[i]
+ mj := list[j]
+ if mi.Path != mj.Path {
+ return mi.Path < mj.Path
+ }
+ // To help go.sum formatting, allow version/file.
+ // Compare semver prefix by semver rules,
+ // file by string order.
+ vi := mi.Version
+ vj := mj.Version
+ var fi, fj string
+ if k := strings.Index(vi, "/"); k >= 0 {
+ vi, fi = vi[:k], vi[k:]
+ }
+ if k := strings.Index(vj, "/"); k >= 0 {
+ vj, fj = vj[:k], vj[k:]
+ }
+ if vi != vj {
+ return semver.Compare(vi, vj) < 0
+ }
+ return fi < fj
+ })
+}
+
+// Safe encodings
+//
+// Module paths appear as substrings of file system paths
+// (in the download cache) and of web server URLs in the proxy protocol.
+// In general we cannot rely on file systems to be case-sensitive,
+// nor can we rely on web servers, since they read from file systems.
+// That is, we cannot rely on the file system to keep rsc.io/QUOTE
+// and rsc.io/quote separate. Windows and macOS don't.
+// Instead, we must never require two different casings of a file path.
+// Because we want the download cache to match the proxy protocol,
+// and because we want the proxy protocol to be possible to serve
+// from a tree of static files (which might be stored on a case-insensitive
+// file system), the proxy protocol must never require two different casings
+// of a URL path either.
+//
+// One possibility would be to make the safe encoding be the lowercase
+// hexadecimal encoding of the actual path bytes. This would avoid ever
+// needing different casings of a file path, but it would be fairly illegible
+// to most programmers when those paths appeared in the file system
+// (including in file paths in compiler errors and stack traces)
+// in web server logs, and so on. Instead, we want a safe encoding that
+// leaves most paths unaltered.
+//
+// The safe encoding is this:
+// replace every uppercase letter with an exclamation mark
+// followed by the letter's lowercase equivalent.
+//
+// For example,
+// github.com/Azure/azure-sdk-for-go -> github.com/!azure/azure-sdk-for-go.
+// github.com/GoogleCloudPlatform/cloudsql-proxy -> github.com/!google!cloud!platform/cloudsql-proxy
+// github.com/Sirupsen/logrus -> github.com/!sirupsen/logrus.
+//
+// Import paths that avoid upper-case letters are left unchanged.
+// Note that because import paths are ASCII-only and avoid various
+// problematic punctuation (like : < and >), the safe encoding is also ASCII-only
+// and avoids the same problematic punctuation.
+//
+// Import paths have never allowed exclamation marks, so there is no
+// need to define how to encode a literal !.
+//
+// Although paths are disallowed from using Unicode (see pathOK above),
+// the eventual plan is to allow Unicode letters as well, to assume that
+// file systems and URLs are Unicode-safe (storing UTF-8), and apply
+// the !-for-uppercase convention. Note however that not all runes that
+// are different but case-fold equivalent are an upper/lower pair.
+// For example, U+004B ('K'), U+006B ('k'), and U+212A ('K' for Kelvin)
+// are considered to case-fold to each other. When we do add Unicode
+// letters, we must not assume that upper/lower are the only case-equivalent pairs.
+// Perhaps the Kelvin symbol would be disallowed entirely, for example.
+// Or perhaps it would encode as "!!k", or perhaps as "(212A)".
+//
+// Also, it would be nice to allow Unicode marks as well as letters,
+// but marks include combining marks, and then we must deal not
+// only with case folding but also normalization: both U+00E9 ('é')
+// and U+0065 U+0301 ('e' followed by combining acute accent)
+// look the same on the page and are treated by some file systems
+// as the same path. If we do allow Unicode marks in paths, there
+// must be some kind of normalization to allow only one canonical
+// encoding of any character used in an import path.
+
+// EncodePath returns the safe encoding of the given module path.
+// It fails if the module path is invalid.
+func EncodePath(path string) (encoding string, err error) {
+ if err := CheckPath(path); err != nil {
+ return "", err
+ }
+
+ return encodeString(path)
+}
+
+// EncodeVersion returns the safe encoding of the given module version.
+// Versions are allowed to be in non-semver form but must be valid file names
+// and not contain exclamation marks.
+func EncodeVersion(v string) (encoding string, err error) {
+ if err := checkElem(v, true); err != nil || strings.Contains(v, "!") {
+ return "", fmt.Errorf("disallowed version string %q", v)
+ }
+ return encodeString(v)
+}
+
+func encodeString(s string) (encoding string, err error) {
+ haveUpper := false
+ for _, r := range s {
+ if r == '!' || r >= utf8.RuneSelf {
+ // This should be disallowed by CheckPath, but diagnose anyway.
+ // The correctness of the encoding loop below depends on it.
+ return "", fmt.Errorf("internal error: inconsistency in EncodePath")
+ }
+ if 'A' <= r && r <= 'Z' {
+ haveUpper = true
+ }
+ }
+
+ if !haveUpper {
+ return s, nil
+ }
+
+ var buf []byte
+ for _, r := range s {
+ if 'A' <= r && r <= 'Z' {
+ buf = append(buf, '!', byte(r+'a'-'A'))
+ } else {
+ buf = append(buf, byte(r))
+ }
+ }
+ return string(buf), nil
+}
+
+// DecodePath returns the module path of the given safe encoding.
+// It fails if the encoding is invalid or encodes an invalid path.
+func DecodePath(encoding string) (path string, err error) {
+ path, ok := decodeString(encoding)
+ if !ok {
+ return "", fmt.Errorf("invalid module path encoding %q", encoding)
+ }
+ if err := CheckPath(path); err != nil {
+ return "", fmt.Errorf("invalid module path encoding %q: %v", encoding, err)
+ }
+ return path, nil
+}
+
+// DecodeVersion returns the version string for the given safe encoding.
+// It fails if the encoding is invalid or encodes an invalid version.
+// Versions are allowed to be in non-semver form but must be valid file names
+// and not contain exclamation marks.
+func DecodeVersion(encoding string) (v string, err error) {
+ v, ok := decodeString(encoding)
+ if !ok {
+ return "", fmt.Errorf("invalid version encoding %q", encoding)
+ }
+ if err := checkElem(v, true); err != nil {
+ return "", fmt.Errorf("disallowed version string %q", v)
+ }
+ return v, nil
+}
+
+func decodeString(encoding string) (string, bool) {
+ var buf []byte
+
+ bang := false
+ for _, r := range encoding {
+ if r >= utf8.RuneSelf {
+ return "", false
+ }
+ if bang {
+ bang = false
+ if r < 'a' || 'z' < r {
+ return "", false
+ }
+ buf = append(buf, byte(r+'A'-'a'))
+ continue
+ }
+ if r == '!' {
+ bang = true
+ continue
+ }
+ if 'A' <= r && r <= 'Z' {
+ return "", false
+ }
+ buf = append(buf, byte(r))
+ }
+ if bang {
+ return "", false
+ }
+ return string(buf), true
+}
diff --git a/vendor/golang.org/x/tools/internal/txtar/archive.go b/vendor/golang.org/x/tools/internal/txtar/archive.go
new file mode 100644
index 0000000000..c384f33bdf
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/txtar/archive.go
@@ -0,0 +1,140 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package txtar implements a trivial text-based file archive format.
+//
+// The goals for the format are:
+//
+// - be trivial enough to create and edit by hand.
+// - be able to store trees of text files describing go command test cases.
+// - diff nicely in git history and code reviews.
+//
+// Non-goals include being a completely general archive format,
+// storing binary data, storing file modes, storing special files like
+// symbolic links, and so on.
+//
+// Txtar format
+//
+// A txtar archive is zero or more comment lines and then a sequence of file entries.
+// Each file entry begins with a file marker line of the form "-- FILENAME --"
+// and is followed by zero or more file content lines making up the file data.
+// The comment or file content ends at the next file marker line.
+// The file marker line must begin with the three-byte sequence "-- "
+// and end with the three-byte sequence " --", but the enclosed
+// file name can be surrounding by additional white space,
+// all of which is stripped.
+//
+// If the txtar file is missing a trailing newline on the final line,
+// parsers should consider a final newline to be present anyway.
+//
+// There are no possible syntax errors in a txtar archive.
+package txtar
+
+import (
+ "bytes"
+ "fmt"
+ "io/ioutil"
+ "strings"
+)
+
+// An Archive is a collection of files.
+type Archive struct {
+ Comment []byte
+ Files []File
+}
+
+// A File is a single file in an archive.
+type File struct {
+ Name string // name of file ("foo/bar.txt")
+ Data []byte // text content of file
+}
+
+// Format returns the serialized form of an Archive.
+// It is assumed that the Archive data structure is well-formed:
+// a.Comment and all a.File[i].Data contain no file marker lines,
+// and all a.File[i].Name is non-empty.
+func Format(a *Archive) []byte {
+ var buf bytes.Buffer
+ buf.Write(fixNL(a.Comment))
+ for _, f := range a.Files {
+ fmt.Fprintf(&buf, "-- %s --\n", f.Name)
+ buf.Write(fixNL(f.Data))
+ }
+ return buf.Bytes()
+}
+
+// ParseFile parses the named file as an archive.
+func ParseFile(file string) (*Archive, error) {
+ data, err := ioutil.ReadFile(file)
+ if err != nil {
+ return nil, err
+ }
+ return Parse(data), nil
+}
+
+// Parse parses the serialized form of an Archive.
+// The returned Archive holds slices of data.
+func Parse(data []byte) *Archive {
+ a := new(Archive)
+ var name string
+ a.Comment, name, data = findFileMarker(data)
+ for name != "" {
+ f := File{name, nil}
+ f.Data, name, data = findFileMarker(data)
+ a.Files = append(a.Files, f)
+ }
+ return a
+}
+
+var (
+ newlineMarker = []byte("\n-- ")
+ marker = []byte("-- ")
+ markerEnd = []byte(" --")
+)
+
+// findFileMarker finds the next file marker in data,
+// extracts the file name, and returns the data before the marker,
+// the file name, and the data after the marker.
+// If there is no next marker, findFileMarker returns before = fixNL(data), name = "", after = nil.
+func findFileMarker(data []byte) (before []byte, name string, after []byte) {
+ var i int
+ for {
+ if name, after = isMarker(data[i:]); name != "" {
+ return data[:i], name, after
+ }
+ j := bytes.Index(data[i:], newlineMarker)
+ if j < 0 {
+ return fixNL(data), "", nil
+ }
+ i += j + 1 // positioned at start of new possible marker
+ }
+}
+
+// isMarker checks whether data begins with a file marker line.
+// If so, it returns the name from the line and the data after the line.
+// Otherwise it returns name == "" with an unspecified after.
+func isMarker(data []byte) (name string, after []byte) {
+ if !bytes.HasPrefix(data, marker) {
+ return "", nil
+ }
+ if i := bytes.IndexByte(data, '\n'); i >= 0 {
+ data, after = data[:i], data[i+1:]
+ }
+ if !bytes.HasSuffix(data, markerEnd) {
+ return "", nil
+ }
+ return strings.TrimSpace(string(data[len(marker) : len(data)-len(markerEnd)])), after
+}
+
+// If data is empty or ends in \n, fixNL returns data.
+// Otherwise fixNL returns a new slice consisting of data with a final \n added.
+func fixNL(data []byte) []byte {
+ if len(data) == 0 || data[len(data)-1] == '\n' {
+ return data
+ }
+ d := make([]byte, len(data)+1)
+ copy(d, data)
+ d[len(data)] = '\n'
+ return d
+}
diff --git a/vendor/golang.org/x/tools/refactor/rename/mvpkg.go b/vendor/golang.org/x/tools/refactor/rename/mvpkg.go
index 638d0cfc25..91c00ff14c 100644
--- a/vendor/golang.org/x/tools/refactor/rename/mvpkg.go
+++ b/vendor/golang.org/x/tools/refactor/rename/mvpkg.go
@@ -9,7 +9,6 @@ package rename
// TODO(matloob):
// - think about what happens if the package is moving across version control systems.
-// - think about windows, which uses "\" as its directory separator.
// - dot imports are not supported. Make sure it's clearly documented.
import (
@@ -52,7 +51,6 @@ func Move(ctxt *build.Context, from, to, moveTmpl string) error {
// This should be the only place in the program that constructs
// file paths.
- // TODO(matloob): test on Microsoft Windows.
fromDir := buildutil.JoinPath(ctxt, srcDir, filepath.FromSlash(from))
toDir := buildutil.JoinPath(ctxt, srcDir, filepath.FromSlash(to))
toParent := filepath.Dir(toDir)
@@ -79,12 +77,7 @@ func Move(ctxt *build.Context, from, to, moveTmpl string) error {
for r := range rev[pkg] {
affectedPackages[r] = true
}
- // Ensure directories have a trailing separator.
- dest := strings.Replace(pkg,
- filepath.Join(from, ""),
- filepath.Join(to, ""),
- 1)
- destinations[pkg] = filepath.ToSlash(dest)
+ destinations[pkg] = strings.Replace(pkg, from, to, 1)
}
// Load all the affected packages.
@@ -135,19 +128,17 @@ func srcDir(ctxt *build.Context, pkg string) (string, error) {
}
// subpackages returns the set of packages in the given srcDir whose
-// import paths start with dir.
-func subpackages(ctxt *build.Context, srcDir string, dir string) map[string]bool {
- subs := map[string]bool{dir: true}
-
- // Find all packages under srcDir whose import paths start with dir.
+// import path equals to root, or has "root/" as the prefix.
+func subpackages(ctxt *build.Context, srcDir string, root string) map[string]bool {
+ var subs = make(map[string]bool)
buildutil.ForEachPackage(ctxt, func(pkg string, err error) {
if err != nil {
log.Fatalf("unexpected error in ForEachPackage: %v", err)
}
- // Only process the package or a sub-package
- if !(strings.HasPrefix(pkg, dir) &&
- (len(pkg) == len(dir) || pkg[len(dir)] == '/')) {
+ // Only process the package root, or a sub-package of it.
+ if !(strings.HasPrefix(pkg, root) &&
+ (len(pkg) == len(root) || pkg[len(root)] == '/')) {
return
}
@@ -164,7 +155,6 @@ func subpackages(ctxt *build.Context, srcDir string, dir string) map[string]bool
subs[pkg] = true
})
-
return subs
}
diff --git a/vendor/k8s.io/code-generator/Godeps/Godeps.json b/vendor/k8s.io/code-generator/Godeps/Godeps.json
index affc13ced2..4546feed41 100644
--- a/vendor/k8s.io/code-generator/Godeps/Godeps.json
+++ b/vendor/k8s.io/code-generator/Godeps/Godeps.json
@@ -1,211 +1,115 @@
{
"ImportPath": "k8s.io/code-generator",
- "GoVersion": "go1.10",
+ "GoVersion": "go1.11",
"GodepVersion": "v80",
"Packages": [
"./..."
],
"Deps": [
- {
- "ImportPath": "github.com/PuerkitoBio/purell",
- "Rev": "8a290539e2e8629dbc4e6bad948158f790ec31f4"
- },
- {
- "ImportPath": "github.com/PuerkitoBio/urlesc",
- "Rev": "5bd2802263f21d8788851d5305584c82a5c75d7e"
- },
- {
- "ImportPath": "github.com/emicklei/go-restful",
- "Rev": "ff4f55a206334ef123e4f79bbf348980da81ca46"
- },
- {
- "ImportPath": "github.com/emicklei/go-restful/log",
- "Rev": "ff4f55a206334ef123e4f79bbf348980da81ca46"
- },
- {
- "ImportPath": "github.com/go-openapi/jsonpointer",
- "Rev": "46af16f9f7b149af66e5d1bd010e3574dc06de98"
- },
- {
- "ImportPath": "github.com/go-openapi/jsonreference",
- "Rev": "13c6e3589ad90f49bd3e3bbe2c2cb3d7a4142272"
- },
- {
- "ImportPath": "github.com/go-openapi/spec",
- "Rev": "1de3e0542de65ad8d75452a595886fdd0befb363"
- },
- {
- "ImportPath": "github.com/go-openapi/swag",
- "Rev": "f3f9494671f93fcff853e3c6e9e948b3eb71e590"
- },
{
"ImportPath": "github.com/gogo/protobuf/gogoproto",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/plugin/compare",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/plugin/defaultcheck",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/plugin/description",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/plugin/embedcheck",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/plugin/enumstringer",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/plugin/equal",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/plugin/face",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/plugin/gostring",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/plugin/marshalto",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/plugin/oneofcheck",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/plugin/populate",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/plugin/size",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/plugin/stringer",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/plugin/testgen",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/plugin/union",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/plugin/unmarshal",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/proto",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/descriptor",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/generator",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/grpc",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/plugin",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/sortkeys",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/vanity",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/gogo/protobuf/vanity/command",
- "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
- },
- {
- "ImportPath": "github.com/golang/glog",
- "Rev": "44145f04b68cf362d9c4df2182967c2275eaefed"
- },
- {
- "ImportPath": "github.com/mailru/easyjson/buffer",
- "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d"
- },
- {
- "ImportPath": "github.com/mailru/easyjson/jlexer",
- "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d"
- },
- {
- "ImportPath": "github.com/mailru/easyjson/jwriter",
- "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d"
+ "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02"
},
{
"ImportPath": "github.com/spf13/pflag",
"Rev": "583c0c0531f06d5278b7d917446061adc344b5cd"
},
- {
- "ImportPath": "golang.org/x/net/idna",
- "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f"
- },
- {
- "ImportPath": "golang.org/x/text/cases",
- "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01"
- },
- {
- "ImportPath": "golang.org/x/text/internal",
- "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01"
- },
- {
- "ImportPath": "golang.org/x/text/internal/tag",
- "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01"
- },
- {
- "ImportPath": "golang.org/x/text/language",
- "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01"
- },
- {
- "ImportPath": "golang.org/x/text/runes",
- "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01"
- },
- {
- "ImportPath": "golang.org/x/text/secure/bidirule",
- "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01"
- },
- {
- "ImportPath": "golang.org/x/text/secure/precis",
- "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01"
- },
- {
- "ImportPath": "golang.org/x/text/transform",
- "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01"
- },
- {
- "ImportPath": "golang.org/x/text/unicode/bidi",
- "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01"
- },
- {
- "ImportPath": "golang.org/x/text/unicode/norm",
- "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01"
- },
- {
- "ImportPath": "golang.org/x/text/width",
- "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01"
- },
{
"ImportPath": "golang.org/x/tools/go/ast/astutil",
"Rev": "2382e3994d48b1d22acc2c86bcad0a2aff028e32"
@@ -214,69 +118,49 @@
"ImportPath": "golang.org/x/tools/imports",
"Rev": "2382e3994d48b1d22acc2c86bcad0a2aff028e32"
},
- {
- "ImportPath": "gopkg.in/yaml.v2",
- "Rev": "670d4cfef0544295bc27a114dbac37980d83185a"
- },
{
"ImportPath": "k8s.io/gengo/args",
- "Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2"
+ "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
},
{
"ImportPath": "k8s.io/gengo/examples/deepcopy-gen/generators",
- "Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2"
+ "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
},
{
"ImportPath": "k8s.io/gengo/examples/defaulter-gen/generators",
- "Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2"
+ "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
},
{
"ImportPath": "k8s.io/gengo/examples/import-boss/generators",
- "Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2"
+ "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
},
{
"ImportPath": "k8s.io/gengo/examples/set-gen/generators",
- "Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2"
+ "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
},
{
"ImportPath": "k8s.io/gengo/examples/set-gen/sets",
- "Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2"
+ "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
},
{
"ImportPath": "k8s.io/gengo/generator",
- "Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2"
+ "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
},
{
"ImportPath": "k8s.io/gengo/namer",
- "Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2"
+ "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
},
{
"ImportPath": "k8s.io/gengo/parser",
- "Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2"
+ "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
},
{
"ImportPath": "k8s.io/gengo/types",
- "Rev": "fdcf9f9480fdd5bf2b3c3df9bf4ecd22b25b87e2"
- },
- {
- "ImportPath": "k8s.io/kube-openapi/cmd/openapi-gen/args",
- "Rev": "0cf8f7e6ed1d2e3d47d02e3b6e559369af24d803"
- },
- {
- "ImportPath": "k8s.io/kube-openapi/pkg/common",
- "Rev": "0cf8f7e6ed1d2e3d47d02e3b6e559369af24d803"
- },
- {
- "ImportPath": "k8s.io/kube-openapi/pkg/generators",
- "Rev": "0cf8f7e6ed1d2e3d47d02e3b6e559369af24d803"
- },
- {
- "ImportPath": "k8s.io/kube-openapi/pkg/generators/rules",
- "Rev": "0cf8f7e6ed1d2e3d47d02e3b6e559369af24d803"
+ "Rev": "51747d6e00da1fc578d5a333a93bb2abcbce7a95"
},
{
- "ImportPath": "k8s.io/kube-openapi/pkg/util/sets",
- "Rev": "0cf8f7e6ed1d2e3d47d02e3b6e559369af24d803"
+ "ImportPath": "k8s.io/klog",
+ "Rev": "8139d8cb77af419532b33dfa7dd09fbc5f1d344f"
}
]
}
diff --git a/vendor/k8s.io/code-generator/_examples/apiserver/apis/example/doc.go b/vendor/k8s.io/code-generator/_examples/apiserver/apis/example/doc.go
index b221d7eb49..3285a056fa 100644
--- a/vendor/k8s.io/code-generator/_examples/apiserver/apis/example/doc.go
+++ b/vendor/k8s.io/code-generator/_examples/apiserver/apis/example/doc.go
@@ -16,4 +16,5 @@ limitations under the License.
// +k8s:deepcopy-gen=package
// +groupName=example.apiserver.code-generator.k8s.io
+
package example // import "k8s.io/code-generator/_examples/apiserver/apis/example"
diff --git a/vendor/k8s.io/code-generator/_examples/apiserver/apis/example/v1/doc.go b/vendor/k8s.io/code-generator/_examples/apiserver/apis/example/v1/doc.go
index 5b6bd5b306..6b1fe6c119 100644
--- a/vendor/k8s.io/code-generator/_examples/apiserver/apis/example/v1/doc.go
+++ b/vendor/k8s.io/code-generator/_examples/apiserver/apis/example/v1/doc.go
@@ -18,4 +18,5 @@ limitations under the License.
// +k8s:defaulter-gen=TypeMeta
// +k8s:conversion-gen=k8s.io/code-generator/_examples/apiserver/apis/example
// +groupName=example.apiserver.code-generator.k8s.io
+
package v1
diff --git a/vendor/k8s.io/code-generator/_examples/apiserver/apis/example2/doc.go b/vendor/k8s.io/code-generator/_examples/apiserver/apis/example2/doc.go
index 3864803757..0edb56dcdd 100644
--- a/vendor/k8s.io/code-generator/_examples/apiserver/apis/example2/doc.go
+++ b/vendor/k8s.io/code-generator/_examples/apiserver/apis/example2/doc.go
@@ -17,4 +17,5 @@ limitations under the License.
// +k8s:deepcopy-gen=package
// +groupName=example.test.apiserver.code-generator.k8s.io
// +groupGoName=SecondExample
+
package example2 // import "k8s.io/code-generator/_examples/apiserver/apis/example2"
diff --git a/vendor/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/doc.go b/vendor/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/doc.go
index 36bd4549cd..211aefc8c4 100644
--- a/vendor/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/doc.go
+++ b/vendor/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/doc.go
@@ -19,4 +19,5 @@ limitations under the License.
// +groupName=example.test.apiserver.code-generator.k8s.io
// +k8s:conversion-gen=k8s.io/code-generator/_examples/apiserver/apis/example2
// +groupGoName=SecondExample
+
package v1
diff --git a/vendor/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example/internalversion/fake/fake_testtype.go b/vendor/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example/internalversion/fake/fake_testtype.go
index 7b247ca950..abff7bb0d6 100644
--- a/vendor/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example/internalversion/fake/fake_testtype.go
+++ b/vendor/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example/internalversion/fake/fake_testtype.go
@@ -131,7 +131,7 @@ func (c *FakeTestTypes) DeleteCollection(options *v1.DeleteOptions, listOptions
// Patch applies the patch and returns the patched testType.
func (c *FakeTestTypes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *example.TestType, err error) {
obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceAction(testtypesResource, c.ns, name, data, subresources...), &example.TestType{})
+ Invokes(testing.NewPatchSubresourceAction(testtypesResource, c.ns, name, pt, data, subresources...), &example.TestType{})
if obj == nil {
return nil, err
diff --git a/vendor/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example/internalversion/testtype.go b/vendor/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example/internalversion/testtype.go
index d19392e853..a06b946169 100644
--- a/vendor/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example/internalversion/testtype.go
+++ b/vendor/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example/internalversion/testtype.go
@@ -19,6 +19,8 @@ limitations under the License.
package internalversion
import (
+ "time"
+
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
watch "k8s.io/apimachinery/pkg/watch"
@@ -76,11 +78,16 @@ func (c *testTypes) Get(name string, options v1.GetOptions) (result *example.Tes
// List takes label and field selectors, and returns the list of TestTypes that match those selectors.
func (c *testTypes) List(opts v1.ListOptions) (result *example.TestTypeList, err error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil {
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
result = &example.TestTypeList{}
err = c.client.Get().
Namespace(c.ns).
Resource("testtypes").
VersionedParams(&opts, scheme.ParameterCodec).
+ Timeout(timeout).
Do().
Into(result)
return
@@ -88,11 +95,16 @@ func (c *testTypes) List(opts v1.ListOptions) (result *example.TestTypeList, err
// Watch returns a watch.Interface that watches the requested testTypes.
func (c *testTypes) Watch(opts v1.ListOptions) (watch.Interface, error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil {
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
opts.Watch = true
return c.client.Get().
Namespace(c.ns).
Resource("testtypes").
VersionedParams(&opts, scheme.ParameterCodec).
+ Timeout(timeout).
Watch()
}
@@ -150,10 +162,15 @@ func (c *testTypes) Delete(name string, options *v1.DeleteOptions) error {
// DeleteCollection deletes a collection of objects.
func (c *testTypes) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
+ var timeout time.Duration
+ if listOptions.TimeoutSeconds != nil {
+ timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
+ }
return c.client.Delete().
Namespace(c.ns).
Resource("testtypes").
VersionedParams(&listOptions, scheme.ParameterCodec).
+ Timeout(timeout).
Body(options).
Do().
Error()
diff --git a/vendor/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/fake/fake_testtype.go b/vendor/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/fake/fake_testtype.go
index 2890ff19d5..0d63cf1033 100644
--- a/vendor/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/fake/fake_testtype.go
+++ b/vendor/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/fake/fake_testtype.go
@@ -131,7 +131,7 @@ func (c *FakeTestTypes) DeleteCollection(options *v1.DeleteOptions, listOptions
// Patch applies the patch and returns the patched testType.
func (c *FakeTestTypes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *example2.TestType, err error) {
obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceAction(testtypesResource, c.ns, name, data, subresources...), &example2.TestType{})
+ Invokes(testing.NewPatchSubresourceAction(testtypesResource, c.ns, name, pt, data, subresources...), &example2.TestType{})
if obj == nil {
return nil, err
diff --git a/vendor/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/testtype.go b/vendor/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/testtype.go
index 1a2ca7891a..5380b86ce7 100644
--- a/vendor/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/testtype.go
+++ b/vendor/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/testtype.go
@@ -19,6 +19,8 @@ limitations under the License.
package internalversion
import (
+ "time"
+
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
watch "k8s.io/apimachinery/pkg/watch"
@@ -76,11 +78,16 @@ func (c *testTypes) Get(name string, options v1.GetOptions) (result *example2.Te
// List takes label and field selectors, and returns the list of TestTypes that match those selectors.
func (c *testTypes) List(opts v1.ListOptions) (result *example2.TestTypeList, err error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil {
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
result = &example2.TestTypeList{}
err = c.client.Get().
Namespace(c.ns).
Resource("testtypes").
VersionedParams(&opts, scheme.ParameterCodec).
+ Timeout(timeout).
Do().
Into(result)
return
@@ -88,11 +95,16 @@ func (c *testTypes) List(opts v1.ListOptions) (result *example2.TestTypeList, er
// Watch returns a watch.Interface that watches the requested testTypes.
func (c *testTypes) Watch(opts v1.ListOptions) (watch.Interface, error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil {
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
opts.Watch = true
return c.client.Get().
Namespace(c.ns).
Resource("testtypes").
VersionedParams(&opts, scheme.ParameterCodec).
+ Timeout(timeout).
Watch()
}
@@ -150,10 +162,15 @@ func (c *testTypes) Delete(name string, options *v1.DeleteOptions) error {
// DeleteCollection deletes a collection of objects.
func (c *testTypes) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
+ var timeout time.Duration
+ if listOptions.TimeoutSeconds != nil {
+ timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
+ }
return c.client.Delete().
Namespace(c.ns).
Resource("testtypes").
VersionedParams(&listOptions, scheme.ParameterCodec).
+ Timeout(timeout).
Body(options).
Do().
Error()
diff --git a/vendor/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example/v1/fake/fake_testtype.go b/vendor/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example/v1/fake/fake_testtype.go
index 6847f17d55..f7e2aacdee 100644
--- a/vendor/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example/v1/fake/fake_testtype.go
+++ b/vendor/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example/v1/fake/fake_testtype.go
@@ -131,7 +131,7 @@ func (c *FakeTestTypes) DeleteCollection(options *v1.DeleteOptions, listOptions
// Patch applies the patch and returns the patched testType.
func (c *FakeTestTypes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *examplev1.TestType, err error) {
obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceAction(testtypesResource, c.ns, name, data, subresources...), &examplev1.TestType{})
+ Invokes(testing.NewPatchSubresourceAction(testtypesResource, c.ns, name, pt, data, subresources...), &examplev1.TestType{})
if obj == nil {
return nil, err
diff --git a/vendor/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example/v1/testtype.go b/vendor/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example/v1/testtype.go
index 2a0606512f..e25fd1fc21 100644
--- a/vendor/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example/v1/testtype.go
+++ b/vendor/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example/v1/testtype.go
@@ -19,6 +19,8 @@ limitations under the License.
package v1
import (
+ "time"
+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
watch "k8s.io/apimachinery/pkg/watch"
@@ -76,11 +78,16 @@ func (c *testTypes) Get(name string, options metav1.GetOptions) (result *v1.Test
// List takes label and field selectors, and returns the list of TestTypes that match those selectors.
func (c *testTypes) List(opts metav1.ListOptions) (result *v1.TestTypeList, err error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil {
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
result = &v1.TestTypeList{}
err = c.client.Get().
Namespace(c.ns).
Resource("testtypes").
VersionedParams(&opts, scheme.ParameterCodec).
+ Timeout(timeout).
Do().
Into(result)
return
@@ -88,11 +95,16 @@ func (c *testTypes) List(opts metav1.ListOptions) (result *v1.TestTypeList, err
// Watch returns a watch.Interface that watches the requested testTypes.
func (c *testTypes) Watch(opts metav1.ListOptions) (watch.Interface, error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil {
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
opts.Watch = true
return c.client.Get().
Namespace(c.ns).
Resource("testtypes").
VersionedParams(&opts, scheme.ParameterCodec).
+ Timeout(timeout).
Watch()
}
@@ -150,10 +162,15 @@ func (c *testTypes) Delete(name string, options *metav1.DeleteOptions) error {
// DeleteCollection deletes a collection of objects.
func (c *testTypes) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error {
+ var timeout time.Duration
+ if listOptions.TimeoutSeconds != nil {
+ timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
+ }
return c.client.Delete().
Namespace(c.ns).
Resource("testtypes").
VersionedParams(&listOptions, scheme.ParameterCodec).
+ Timeout(timeout).
Body(options).
Do().
Error()
diff --git a/vendor/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/fake/fake_testtype.go b/vendor/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/fake/fake_testtype.go
index 51a3f3e7da..ce0782e6e0 100644
--- a/vendor/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/fake/fake_testtype.go
+++ b/vendor/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/fake/fake_testtype.go
@@ -131,7 +131,7 @@ func (c *FakeTestTypes) DeleteCollection(options *v1.DeleteOptions, listOptions
// Patch applies the patch and returns the patched testType.
func (c *FakeTestTypes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *example2v1.TestType, err error) {
obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceAction(testtypesResource, c.ns, name, data, subresources...), &example2v1.TestType{})
+ Invokes(testing.NewPatchSubresourceAction(testtypesResource, c.ns, name, pt, data, subresources...), &example2v1.TestType{})
if obj == nil {
return nil, err
diff --git a/vendor/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/testtype.go b/vendor/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/testtype.go
index b29bd8118b..f5afee94cc 100644
--- a/vendor/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/testtype.go
+++ b/vendor/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/testtype.go
@@ -19,6 +19,8 @@ limitations under the License.
package v1
import (
+ "time"
+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
watch "k8s.io/apimachinery/pkg/watch"
@@ -76,11 +78,16 @@ func (c *testTypes) Get(name string, options metav1.GetOptions) (result *v1.Test
// List takes label and field selectors, and returns the list of TestTypes that match those selectors.
func (c *testTypes) List(opts metav1.ListOptions) (result *v1.TestTypeList, err error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil {
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
result = &v1.TestTypeList{}
err = c.client.Get().
Namespace(c.ns).
Resource("testtypes").
VersionedParams(&opts, scheme.ParameterCodec).
+ Timeout(timeout).
Do().
Into(result)
return
@@ -88,11 +95,16 @@ func (c *testTypes) List(opts metav1.ListOptions) (result *v1.TestTypeList, err
// Watch returns a watch.Interface that watches the requested testTypes.
func (c *testTypes) Watch(opts metav1.ListOptions) (watch.Interface, error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil {
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
opts.Watch = true
return c.client.Get().
Namespace(c.ns).
Resource("testtypes").
VersionedParams(&opts, scheme.ParameterCodec).
+ Timeout(timeout).
Watch()
}
@@ -150,10 +162,15 @@ func (c *testTypes) Delete(name string, options *metav1.DeleteOptions) error {
// DeleteCollection deletes a collection of objects.
func (c *testTypes) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error {
+ var timeout time.Duration
+ if listOptions.TimeoutSeconds != nil {
+ timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
+ }
return c.client.Delete().
Namespace(c.ns).
Resource("testtypes").
VersionedParams(&listOptions, scheme.ParameterCodec).
+ Timeout(timeout).
Body(options).
Do().
Error()
diff --git a/vendor/k8s.io/code-generator/_examples/apiserver/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/code-generator/_examples/apiserver/informers/externalversions/internalinterfaces/factory_interfaces.go
index 6318f52841..21c6669028 100644
--- a/vendor/k8s.io/code-generator/_examples/apiserver/informers/externalversions/internalinterfaces/factory_interfaces.go
+++ b/vendor/k8s.io/code-generator/_examples/apiserver/informers/externalversions/internalinterfaces/factory_interfaces.go
@@ -27,6 +27,7 @@ import (
versioned "k8s.io/code-generator/_examples/apiserver/clientset/versioned"
)
+// NewInformerFunc takes versioned.Interface and time.Duration to return a SharedIndexInformer.
type NewInformerFunc func(versioned.Interface, time.Duration) cache.SharedIndexInformer
// SharedInformerFactory a small interface to allow for adding an informer without an import cycle
@@ -35,4 +36,5 @@ type SharedInformerFactory interface {
InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer
}
+// TweakListOptionsFunc is a function that transforms a v1.ListOptions.
type TweakListOptionsFunc func(*v1.ListOptions)
diff --git a/vendor/k8s.io/code-generator/_examples/apiserver/informers/internalversion/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/code-generator/_examples/apiserver/informers/internalversion/internalinterfaces/factory_interfaces.go
index 03c679244d..5d01820f9c 100644
--- a/vendor/k8s.io/code-generator/_examples/apiserver/informers/internalversion/internalinterfaces/factory_interfaces.go
+++ b/vendor/k8s.io/code-generator/_examples/apiserver/informers/internalversion/internalinterfaces/factory_interfaces.go
@@ -27,6 +27,7 @@ import (
internalversion "k8s.io/code-generator/_examples/apiserver/clientset/internalversion"
)
+// NewInformerFunc takes internalversion.Interface and time.Duration to return a SharedIndexInformer.
type NewInformerFunc func(internalversion.Interface, time.Duration) cache.SharedIndexInformer
// SharedInformerFactory a small interface to allow for adding an informer without an import cycle
@@ -35,4 +36,5 @@ type SharedInformerFactory interface {
InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer
}
+// TweakListOptionsFunc is a function that transforms a v1.ListOptions.
type TweakListOptionsFunc func(*v1.ListOptions)
diff --git a/vendor/k8s.io/code-generator/_examples/crd/apis/example/v1/doc.go b/vendor/k8s.io/code-generator/_examples/crd/apis/example/v1/doc.go
index e6614c0da6..673ac55d7b 100644
--- a/vendor/k8s.io/code-generator/_examples/crd/apis/example/v1/doc.go
+++ b/vendor/k8s.io/code-generator/_examples/crd/apis/example/v1/doc.go
@@ -17,4 +17,5 @@ limitations under the License.
// +k8s:deepcopy-gen=package
// +k8s:defaulter-gen=TypeMeta
// +groupName=example.crd.code-generator.k8s.io
+
package v1
diff --git a/vendor/k8s.io/code-generator/_examples/crd/apis/example2/v1/doc.go b/vendor/k8s.io/code-generator/_examples/crd/apis/example2/v1/doc.go
index 6521d83ff3..5d1cbec5ef 100644
--- a/vendor/k8s.io/code-generator/_examples/crd/apis/example2/v1/doc.go
+++ b/vendor/k8s.io/code-generator/_examples/crd/apis/example2/v1/doc.go
@@ -18,4 +18,5 @@ limitations under the License.
// +k8s:defaulter-gen=TypeMeta
// +groupName=example.test.crd.code-generator.k8s.io
// +groupGoName=SecondExample
+
package v1
diff --git a/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1/clustertesttype.go b/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1/clustertesttype.go
index 30e0e74980..1217dd8673 100644
--- a/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1/clustertesttype.go
+++ b/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1/clustertesttype.go
@@ -19,6 +19,8 @@ limitations under the License.
package v1
import (
+ "time"
+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
watch "k8s.io/apimachinery/pkg/watch"
@@ -77,10 +79,15 @@ func (c *clusterTestTypes) Get(name string, options metav1.GetOptions) (result *
// List takes label and field selectors, and returns the list of ClusterTestTypes that match those selectors.
func (c *clusterTestTypes) List(opts metav1.ListOptions) (result *v1.ClusterTestTypeList, err error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil {
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
result = &v1.ClusterTestTypeList{}
err = c.client.Get().
Resource("clustertesttypes").
VersionedParams(&opts, scheme.ParameterCodec).
+ Timeout(timeout).
Do().
Into(result)
return
@@ -88,10 +95,15 @@ func (c *clusterTestTypes) List(opts metav1.ListOptions) (result *v1.ClusterTest
// Watch returns a watch.Interface that watches the requested clusterTestTypes.
func (c *clusterTestTypes) Watch(opts metav1.ListOptions) (watch.Interface, error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil {
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
opts.Watch = true
return c.client.Get().
Resource("clustertesttypes").
VersionedParams(&opts, scheme.ParameterCodec).
+ Timeout(timeout).
Watch()
}
@@ -145,9 +157,14 @@ func (c *clusterTestTypes) Delete(name string, options *metav1.DeleteOptions) er
// DeleteCollection deletes a collection of objects.
func (c *clusterTestTypes) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error {
+ var timeout time.Duration
+ if listOptions.TimeoutSeconds != nil {
+ timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
+ }
return c.client.Delete().
Resource("clustertesttypes").
VersionedParams(&listOptions, scheme.ParameterCodec).
+ Timeout(timeout).
Body(options).
Do().
Error()
diff --git a/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1/fake/fake_clustertesttype.go b/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1/fake/fake_clustertesttype.go
index e0b0376b84..92d87b12fb 100644
--- a/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1/fake/fake_clustertesttype.go
+++ b/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1/fake/fake_clustertesttype.go
@@ -124,7 +124,7 @@ func (c *FakeClusterTestTypes) DeleteCollection(options *v1.DeleteOptions, listO
// Patch applies the patch and returns the patched clusterTestType.
func (c *FakeClusterTestTypes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *examplev1.ClusterTestType, err error) {
obj, err := c.Fake.
- Invokes(testing.NewRootPatchSubresourceAction(clustertesttypesResource, name, data, subresources...), &examplev1.ClusterTestType{})
+ Invokes(testing.NewRootPatchSubresourceAction(clustertesttypesResource, name, pt, data, subresources...), &examplev1.ClusterTestType{})
if obj == nil {
return nil, err
}
@@ -134,7 +134,7 @@ func (c *FakeClusterTestTypes) Patch(name string, pt types.PatchType, data []byt
// GetScale takes name of the clusterTestType, and returns the corresponding scale object, and an error if there is any.
func (c *FakeClusterTestTypes) GetScale(clusterTestTypeName string, options v1.GetOptions) (result *autoscaling.Scale, err error) {
obj, err := c.Fake.
- Invokes(testing.NewRootGetSubresourceAction(clustertesttypesResource, clusterTestTypeName), &autoscaling.Scale{})
+ Invokes(testing.NewRootGetSubresourceAction(clustertesttypesResource, "scale", clusterTestTypeName), &autoscaling.Scale{})
if obj == nil {
return nil, err
}
diff --git a/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1/fake/fake_testtype.go b/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1/fake/fake_testtype.go
index b284a57978..3ef9885d2c 100644
--- a/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1/fake/fake_testtype.go
+++ b/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1/fake/fake_testtype.go
@@ -131,7 +131,7 @@ func (c *FakeTestTypes) DeleteCollection(options *v1.DeleteOptions, listOptions
// Patch applies the patch and returns the patched testType.
func (c *FakeTestTypes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *examplev1.TestType, err error) {
obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceAction(testtypesResource, c.ns, name, data, subresources...), &examplev1.TestType{})
+ Invokes(testing.NewPatchSubresourceAction(testtypesResource, c.ns, name, pt, data, subresources...), &examplev1.TestType{})
if obj == nil {
return nil, err
diff --git a/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1/testtype.go b/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1/testtype.go
index 6fafb1e1b1..164b0510e4 100644
--- a/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1/testtype.go
+++ b/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1/testtype.go
@@ -19,6 +19,8 @@ limitations under the License.
package v1
import (
+ "time"
+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
watch "k8s.io/apimachinery/pkg/watch"
@@ -76,11 +78,16 @@ func (c *testTypes) Get(name string, options metav1.GetOptions) (result *v1.Test
// List takes label and field selectors, and returns the list of TestTypes that match those selectors.
func (c *testTypes) List(opts metav1.ListOptions) (result *v1.TestTypeList, err error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil {
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
result = &v1.TestTypeList{}
err = c.client.Get().
Namespace(c.ns).
Resource("testtypes").
VersionedParams(&opts, scheme.ParameterCodec).
+ Timeout(timeout).
Do().
Into(result)
return
@@ -88,11 +95,16 @@ func (c *testTypes) List(opts metav1.ListOptions) (result *v1.TestTypeList, err
// Watch returns a watch.Interface that watches the requested testTypes.
func (c *testTypes) Watch(opts metav1.ListOptions) (watch.Interface, error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil {
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
opts.Watch = true
return c.client.Get().
Namespace(c.ns).
Resource("testtypes").
VersionedParams(&opts, scheme.ParameterCodec).
+ Timeout(timeout).
Watch()
}
@@ -150,10 +162,15 @@ func (c *testTypes) Delete(name string, options *metav1.DeleteOptions) error {
// DeleteCollection deletes a collection of objects.
func (c *testTypes) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error {
+ var timeout time.Duration
+ if listOptions.TimeoutSeconds != nil {
+ timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
+ }
return c.client.Delete().
Namespace(c.ns).
Resource("testtypes").
VersionedParams(&listOptions, scheme.ParameterCodec).
+ Timeout(timeout).
Body(options).
Do().
Error()
diff --git a/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/fake/fake_testtype.go b/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/fake/fake_testtype.go
index 7c37bd8163..c4efc6597d 100644
--- a/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/fake/fake_testtype.go
+++ b/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/fake/fake_testtype.go
@@ -131,7 +131,7 @@ func (c *FakeTestTypes) DeleteCollection(options *v1.DeleteOptions, listOptions
// Patch applies the patch and returns the patched testType.
func (c *FakeTestTypes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *example2v1.TestType, err error) {
obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceAction(testtypesResource, c.ns, name, data, subresources...), &example2v1.TestType{})
+ Invokes(testing.NewPatchSubresourceAction(testtypesResource, c.ns, name, pt, data, subresources...), &example2v1.TestType{})
if obj == nil {
return nil, err
diff --git a/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/testtype.go b/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/testtype.go
index 69b0e64c52..2e3194e00a 100644
--- a/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/testtype.go
+++ b/vendor/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/testtype.go
@@ -19,6 +19,8 @@ limitations under the License.
package v1
import (
+ "time"
+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
watch "k8s.io/apimachinery/pkg/watch"
@@ -76,11 +78,16 @@ func (c *testTypes) Get(name string, options metav1.GetOptions) (result *v1.Test
// List takes label and field selectors, and returns the list of TestTypes that match those selectors.
func (c *testTypes) List(opts metav1.ListOptions) (result *v1.TestTypeList, err error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil {
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
result = &v1.TestTypeList{}
err = c.client.Get().
Namespace(c.ns).
Resource("testtypes").
VersionedParams(&opts, scheme.ParameterCodec).
+ Timeout(timeout).
Do().
Into(result)
return
@@ -88,11 +95,16 @@ func (c *testTypes) List(opts metav1.ListOptions) (result *v1.TestTypeList, err
// Watch returns a watch.Interface that watches the requested testTypes.
func (c *testTypes) Watch(opts metav1.ListOptions) (watch.Interface, error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil {
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
opts.Watch = true
return c.client.Get().
Namespace(c.ns).
Resource("testtypes").
VersionedParams(&opts, scheme.ParameterCodec).
+ Timeout(timeout).
Watch()
}
@@ -150,10 +162,15 @@ func (c *testTypes) Delete(name string, options *metav1.DeleteOptions) error {
// DeleteCollection deletes a collection of objects.
func (c *testTypes) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error {
+ var timeout time.Duration
+ if listOptions.TimeoutSeconds != nil {
+ timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
+ }
return c.client.Delete().
Namespace(c.ns).
Resource("testtypes").
VersionedParams(&listOptions, scheme.ParameterCodec).
+ Timeout(timeout).
Body(options).
Do().
Error()
diff --git a/vendor/k8s.io/code-generator/_examples/crd/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/code-generator/_examples/crd/informers/externalversions/internalinterfaces/factory_interfaces.go
index 02e0d6ac35..86d63f376f 100644
--- a/vendor/k8s.io/code-generator/_examples/crd/informers/externalversions/internalinterfaces/factory_interfaces.go
+++ b/vendor/k8s.io/code-generator/_examples/crd/informers/externalversions/internalinterfaces/factory_interfaces.go
@@ -27,6 +27,7 @@ import (
versioned "k8s.io/code-generator/_examples/crd/clientset/versioned"
)
+// NewInformerFunc takes versioned.Interface and time.Duration to return a SharedIndexInformer.
type NewInformerFunc func(versioned.Interface, time.Duration) cache.SharedIndexInformer
// SharedInformerFactory a small interface to allow for adding an informer without an import cycle
@@ -35,4 +36,5 @@ type SharedInformerFactory interface {
InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer
}
+// TweakListOptionsFunc is a function that transforms a v1.ListOptions.
type TweakListOptionsFunc func(*v1.ListOptions)
diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/generators/client_generator.go b/vendor/k8s.io/code-generator/cmd/client-gen/generators/client_generator.go
index 335e995c0a..ee6ebbcf09 100644
--- a/vendor/k8s.io/code-generator/cmd/client-gen/generators/client_generator.go
+++ b/vendor/k8s.io/code-generator/cmd/client-gen/generators/client_generator.go
@@ -32,7 +32,7 @@ import (
"k8s.io/gengo/namer"
"k8s.io/gengo/types"
- "github.com/golang/glog"
+ "k8s.io/klog"
)
// NameSystems returns the name system used by the generators in this package.
@@ -130,7 +130,7 @@ func DefaultNameSystem() string {
}
func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clientsetPackage string, groupPackageName string, groupGoName string, apiPath string, srcTreePath string, inputPackage string, boilerplate []byte) generator.Package {
- groupVersionClientPackage := strings.ToLower(filepath.Join(clientsetPackage, "typed", groupPackageName, gv.Version.NonEmpty()))
+ groupVersionClientPackage := filepath.Join(clientsetPackage, "typed", strings.ToLower(groupPackageName), strings.ToLower(gv.Version.NonEmpty()))
return &generator.DefaultPackage{
PackageName: strings.ToLower(gv.Version.NonEmpty()),
PackagePath: groupVersionClientPackage,
@@ -318,12 +318,12 @@ func applyGroupOverrides(universe types.Universe, customArgs *clientgenargs.Cust
func Packages(context *generator.Context, arguments *args.GeneratorArgs) generator.Packages {
boilerplate, err := arguments.LoadGoBoilerplate()
if err != nil {
- glog.Fatalf("Failed loading boilerplate: %v", err)
+ klog.Fatalf("Failed loading boilerplate: %v", err)
}
customArgs, ok := arguments.CustomArgs.(*clientgenargs.CustomArgs)
if !ok {
- glog.Fatalf("cannot convert arguments.CustomArgs to clientgenargs.CustomArgs")
+ klog.Fatalf("cannot convert arguments.CustomArgs to clientgenargs.CustomArgs")
}
includedTypesOverrides := customArgs.IncludedTypesOverrides
diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/fake_client_generator.go b/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/fake_client_generator.go
index ec439c2f7a..4b3854be6e 100644
--- a/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/fake_client_generator.go
+++ b/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/fake_client_generator.go
@@ -30,9 +30,9 @@ import (
)
func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clientsetPackage string, groupPackageName string, groupGoName string, inputPackage string, boilerplate []byte) generator.Package {
- outputPackage := strings.ToLower(filepath.Join(clientsetPackage, "typed", groupPackageName, gv.Version.NonEmpty(), "fake"))
+ outputPackage := filepath.Join(clientsetPackage, "typed", strings.ToLower(groupPackageName), strings.ToLower(gv.Version.NonEmpty()), "fake")
// TODO: should make this a function, called by here and in client-generator.go
- realClientPackage := filepath.Join(clientsetPackage, "typed", groupPackageName, gv.Version.NonEmpty())
+ realClientPackage := filepath.Join(clientsetPackage, "typed", strings.ToLower(groupPackageName), strings.ToLower(gv.Version.NonEmpty()))
return &generator.DefaultPackage{
PackageName: "fake",
PackagePath: outputPackage,
diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_clientset.go b/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_clientset.go
index f1225acb3d..61b3334f40 100644
--- a/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_clientset.go
+++ b/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_clientset.go
@@ -60,12 +60,12 @@ func (g *genClientset) Imports(c *generator.Context) (imports []string) {
imports = append(imports, g.imports.ImportLines()...)
for _, group := range g.groups {
for _, version := range group.Versions {
- groupClientPackage := filepath.Join(g.fakeClientsetPackage, "typed", group.PackageName, version.NonEmpty())
+ groupClientPackage := filepath.Join(g.fakeClientsetPackage, "typed", strings.ToLower(group.PackageName), strings.ToLower(version.NonEmpty()))
fakeGroupClientPackage := filepath.Join(groupClientPackage, "fake")
groupAlias := strings.ToLower(g.groupGoNames[clientgentypes.GroupVersion{Group: group.Group, Version: version.Version}])
- imports = append(imports, strings.ToLower(fmt.Sprintf("%s%s \"%s\"", groupAlias, version.NonEmpty(), groupClientPackage)))
- imports = append(imports, strings.ToLower(fmt.Sprintf("fake%s%s \"%s\"", groupAlias, version.NonEmpty(), fakeGroupClientPackage)))
+ imports = append(imports, fmt.Sprintf("%s%s \"%s\"", groupAlias, strings.ToLower(version.NonEmpty()), groupClientPackage))
+ imports = append(imports, fmt.Sprintf("fake%s%s \"%s\"", groupAlias, strings.ToLower(version.NonEmpty()), fakeGroupClientPackage))
}
}
// the package that has the clientset Interface
diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_group.go b/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_group.go
index 675fa5f6f7..8f4d5785ef 100644
--- a/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_group.go
+++ b/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_group.go
@@ -64,7 +64,7 @@ func (g *genFakeForGroup) Namers(c *generator.Context) namer.NameSystems {
func (g *genFakeForGroup) Imports(c *generator.Context) (imports []string) {
imports = g.imports.ImportLines()
if len(g.types) != 0 {
- imports = append(imports, strings.ToLower(fmt.Sprintf("%s \"%s\"", filepath.Base(g.realClientPackage), g.realClientPackage)))
+ imports = append(imports, fmt.Sprintf("%s \"%s\"", strings.ToLower(filepath.Base(g.realClientPackage)), g.realClientPackage))
}
return imports
}
diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_type.go b/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_type.go
index bf18c14c64..f5888aef15 100644
--- a/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_type.go
+++ b/vendor/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_type.go
@@ -362,7 +362,7 @@ var getSubresourceTemplate = `
func (c *Fake$.type|publicPlural$) Get($.type|private$Name string, options $.GetOptions|raw$) (result *$.resultType|raw$, err error) {
obj, err := c.Fake.
$if .namespaced$Invokes($.NewGetSubresourceAction|raw$($.type|allLowercasePlural$Resource, c.ns, "$.subresourcePath$", $.type|private$Name), &$.resultType|raw${})
- $else$Invokes($.NewRootGetSubresourceAction|raw$($.type|allLowercasePlural$Resource, $.type|private$Name), &$.resultType|raw${})$end$
+ $else$Invokes($.NewRootGetSubresourceAction|raw$($.type|allLowercasePlural$Resource, "$.subresourcePath$", $.type|private$Name), &$.resultType|raw${})$end$
if obj == nil {
return nil, err
}
@@ -469,8 +469,8 @@ var patchTemplate = `
// Patch applies the patch and returns the patched $.resultType|private$.
func (c *Fake$.type|publicPlural$) Patch(name string, pt $.PatchType|raw$, data []byte, subresources ...string) (result *$.resultType|raw$, err error) {
obj, err := c.Fake.
- $if .namespaced$Invokes($.NewPatchSubresourceAction|raw$($.type|allLowercasePlural$Resource, c.ns, name, data, subresources... ), &$.resultType|raw${})
- $else$Invokes($.NewRootPatchSubresourceAction|raw$($.type|allLowercasePlural$Resource, name, data, subresources...), &$.resultType|raw${})$end$
+ $if .namespaced$Invokes($.NewPatchSubresourceAction|raw$($.type|allLowercasePlural$Resource, c.ns, name, pt, data, subresources... ), &$.resultType|raw${})
+ $else$Invokes($.NewRootPatchSubresourceAction|raw$($.type|allLowercasePlural$Resource, name, pt, data, subresources...), &$.resultType|raw${})$end$
if obj == nil {
return nil, err
}
diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/generators/generator_for_clientset.go b/vendor/k8s.io/code-generator/cmd/client-gen/generators/generator_for_clientset.go
index 18ec09ac6f..6fdb29a94a 100644
--- a/vendor/k8s.io/code-generator/cmd/client-gen/generators/generator_for_clientset.go
+++ b/vendor/k8s.io/code-generator/cmd/client-gen/generators/generator_for_clientset.go
@@ -58,9 +58,9 @@ func (g *genClientset) Imports(c *generator.Context) (imports []string) {
imports = append(imports, g.imports.ImportLines()...)
for _, group := range g.groups {
for _, version := range group.Versions {
- typedClientPath := filepath.Join(g.clientsetPackage, "typed", group.PackageName, version.NonEmpty())
+ typedClientPath := filepath.Join(g.clientsetPackage, "typed", strings.ToLower(group.PackageName), strings.ToLower(version.NonEmpty()))
groupAlias := strings.ToLower(g.groupGoNames[clientgentypes.GroupVersion{Group: group.Group, Version: version.Version}])
- imports = append(imports, strings.ToLower(fmt.Sprintf("%s%s \"%s\"", groupAlias, version.NonEmpty(), typedClientPath)))
+ imports = append(imports, fmt.Sprintf("%s%s \"%s\"", groupAlias, strings.ToLower(version.NonEmpty()), typedClientPath))
}
}
return
diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/generators/generator_for_type.go b/vendor/k8s.io/code-generator/cmd/client-gen/generators/generator_for_type.go
index 92e2a97f1d..3e8fc7c4c6 100644
--- a/vendor/k8s.io/code-generator/cmd/client-gen/generators/generator_for_type.go
+++ b/vendor/k8s.io/code-generator/cmd/client-gen/generators/generator_for_type.go
@@ -387,11 +387,16 @@ func new$.type|publicPlural$(c *$.GroupGoName$$.Version$Client) *$.type|privateP
var listTemplate = `
// List takes label and field selectors, and returns the list of $.resultType|publicPlural$ that match those selectors.
func (c *$.type|privatePlural$) List(opts $.ListOptions|raw$) (result *$.resultType|raw$List, err error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil{
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
result = &$.resultType|raw$List{}
err = c.client.Get().
$if .namespaced$Namespace(c.ns).$end$
Resource("$.type|resource$").
VersionedParams(&opts, $.schemeParameterCodec|raw$).
+ Timeout(timeout).
Do().
Into(result)
return
@@ -401,6 +406,10 @@ func (c *$.type|privatePlural$) List(opts $.ListOptions|raw$) (result *$.resultT
var listSubresourceTemplate = `
// List takes $.type|raw$ name, label and field selectors, and returns the list of $.resultType|publicPlural$ that match those selectors.
func (c *$.type|privatePlural$) List($.type|private$Name string, opts $.ListOptions|raw$) (result *$.resultType|raw$List, err error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil{
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
result = &$.resultType|raw$List{}
err = c.client.Get().
$if .namespaced$Namespace(c.ns).$end$
@@ -408,6 +417,7 @@ func (c *$.type|privatePlural$) List($.type|private$Name string, opts $.ListOpti
Name($.type|private$Name).
SubResource("$.subresourcePath$").
VersionedParams(&opts, $.schemeParameterCodec|raw$).
+ Timeout(timeout).
Do().
Into(result)
return
@@ -461,10 +471,15 @@ func (c *$.type|privatePlural$) Delete(name string, options *$.DeleteOptions|raw
var deleteCollectionTemplate = `
// DeleteCollection deletes a collection of objects.
func (c *$.type|privatePlural$) DeleteCollection(options *$.DeleteOptions|raw$, listOptions $.ListOptions|raw$) error {
+ var timeout time.Duration
+ if listOptions.TimeoutSeconds != nil{
+ timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second
+ }
return c.client.Delete().
$if .namespaced$Namespace(c.ns).$end$
Resource("$.type|resource$").
VersionedParams(&listOptions, $.schemeParameterCodec|raw$).
+ Timeout(timeout).
Body(options).
Do().
Error()
@@ -553,11 +568,16 @@ func (c *$.type|privatePlural$) UpdateStatus($.type|private$ *$.type|raw$) (resu
var watchTemplate = `
// Watch returns a $.watchInterface|raw$ that watches the requested $.type|privatePlural$.
func (c *$.type|privatePlural$) Watch(opts $.ListOptions|raw$) ($.watchInterface|raw$, error) {
+ var timeout time.Duration
+ if opts.TimeoutSeconds != nil{
+ timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
+ }
opts.Watch = true
return c.client.Get().
$if .namespaced$Namespace(c.ns).$end$
Resource("$.type|resource$").
VersionedParams(&opts, $.schemeParameterCodec|raw$).
+ Timeout(timeout).
Watch()
}
`
diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/generators/scheme/generator_for_scheme.go b/vendor/k8s.io/code-generator/cmd/client-gen/generators/scheme/generator_for_scheme.go
index 60cfbcc0f5..a698a28b68 100644
--- a/vendor/k8s.io/code-generator/cmd/client-gen/generators/scheme/generator_for_scheme.go
+++ b/vendor/k8s.io/code-generator/cmd/client-gen/generators/scheme/generator_for_scheme.go
@@ -69,10 +69,11 @@ func (g *GenScheme) Imports(c *generator.Context) (imports []string) {
packagePath = filepath.Dir(packagePath)
}
packagePath = filepath.Join(packagePath, "install")
- imports = append(imports, strings.ToLower(fmt.Sprintf("%s \"%s\"", groupAlias, path.Vendorless(packagePath))))
+
+ imports = append(imports, fmt.Sprintf("%s \"%s\"", groupAlias, path.Vendorless(packagePath)))
break
} else {
- imports = append(imports, strings.ToLower(fmt.Sprintf("%s%s \"%s\"", groupAlias, version.Version.NonEmpty(), path.Vendorless(packagePath))))
+ imports = append(imports, fmt.Sprintf("%s%s \"%s\"", groupAlias, strings.ToLower(version.Version.NonEmpty()), path.Vendorless(packagePath)))
}
}
}
diff --git a/vendor/k8s.io/code-generator/cmd/client-gen/main.go b/vendor/k8s.io/code-generator/cmd/client-gen/main.go
index 22c28e35f8..6e0d187f5c 100644
--- a/vendor/k8s.io/code-generator/cmd/client-gen/main.go
+++ b/vendor/k8s.io/code-generator/cmd/client-gen/main.go
@@ -21,9 +21,9 @@ import (
"flag"
"path/filepath"
- "github.com/golang/glog"
"github.com/spf13/pflag"
"k8s.io/gengo/args"
+ "k8s.io/klog"
generatorargs "k8s.io/code-generator/cmd/client-gen/args"
"k8s.io/code-generator/cmd/client-gen/generators"
@@ -31,6 +31,7 @@ import (
)
func main() {
+ klog.InitFlags(nil)
genericArgs, customArgs := generatorargs.NewDefaults()
// Override defaults.
@@ -52,7 +53,7 @@ func main() {
}
if err := generatorargs.Validate(genericArgs); err != nil {
- glog.Fatalf("Error: %v", err)
+ klog.Fatalf("Error: %v", err)
}
if err := genericArgs.Execute(
@@ -60,6 +61,6 @@ func main() {
generators.DefaultNameSystem(),
generators.Packages,
); err != nil {
- glog.Fatalf("Error: %v", err)
+ klog.Fatalf("Error: %v", err)
}
}
diff --git a/vendor/k8s.io/code-generator/cmd/conversion-gen/generators/conversion.go b/vendor/k8s.io/code-generator/cmd/conversion-gen/generators/conversion.go
index 422237e117..775972d123 100644
--- a/vendor/k8s.io/code-generator/cmd/conversion-gen/generators/conversion.go
+++ b/vendor/k8s.io/code-generator/cmd/conversion-gen/generators/conversion.go
@@ -29,7 +29,7 @@ import (
"k8s.io/gengo/namer"
"k8s.io/gengo/types"
- "github.com/golang/glog"
+ "k8s.io/klog"
conversionargs "k8s.io/code-generator/cmd/conversion-gen/args"
)
@@ -124,10 +124,10 @@ type conversionFuncMap map[conversionPair]*types.Type
// Returns all manually-defined conversion functions in the package.
func getManualConversionFunctions(context *generator.Context, pkg *types.Package, manualMap conversionFuncMap) {
if pkg == nil {
- glog.Warningf("Skipping nil package passed to getManualConversionFunctions")
+ klog.Warningf("Skipping nil package passed to getManualConversionFunctions")
return
}
- glog.V(5).Infof("Scanning for conversion functions in %v", pkg.Name)
+ klog.V(5).Infof("Scanning for conversion functions in %v", pkg.Name)
scopeName := types.Ref(conversionPackagePath, "Scope").Name
errorName := types.Ref("", "error").Name
@@ -136,34 +136,34 @@ func getManualConversionFunctions(context *generator.Context, pkg *types.Package
for _, f := range pkg.Functions {
if f.Underlying == nil || f.Underlying.Kind != types.Func {
- glog.Errorf("Malformed function: %#v", f)
+ klog.Errorf("Malformed function: %#v", f)
continue
}
if f.Underlying.Signature == nil {
- glog.Errorf("Function without signature: %#v", f)
+ klog.Errorf("Function without signature: %#v", f)
continue
}
- glog.V(8).Infof("Considering function %s", f.Name)
+ klog.V(8).Infof("Considering function %s", f.Name)
signature := f.Underlying.Signature
// Check whether the function is conversion function.
// Note that all of them have signature:
// func Convert_inType_To_outType(inType, outType, conversion.Scope) error
if signature.Receiver != nil {
- glog.V(8).Infof("%s has a receiver", f.Name)
+ klog.V(8).Infof("%s has a receiver", f.Name)
continue
}
if len(signature.Parameters) != 3 || signature.Parameters[2].Name != scopeName {
- glog.V(8).Infof("%s has wrong parameters", f.Name)
+ klog.V(8).Infof("%s has wrong parameters", f.Name)
continue
}
if len(signature.Results) != 1 || signature.Results[0].Name != errorName {
- glog.V(8).Infof("%s has wrong results", f.Name)
+ klog.V(8).Infof("%s has wrong results", f.Name)
continue
}
inType := signature.Parameters[0]
outType := signature.Parameters[1]
if inType.Kind != types.Pointer || outType.Kind != types.Pointer {
- glog.V(8).Infof("%s has wrong parameter types", f.Name)
+ klog.V(8).Infof("%s has wrong parameter types", f.Name)
continue
}
// Now check if the name satisfies the convention.
@@ -171,7 +171,7 @@ func getManualConversionFunctions(context *generator.Context, pkg *types.Package
args := argsFromType(inType.Elem, outType.Elem)
sw.Do("Convert_$.inType|public$_To_$.outType|public$", args)
if f.Name.Name == buffer.String() {
- glog.V(4).Infof("Found conversion function %s", f.Name)
+ klog.V(4).Infof("Found conversion function %s", f.Name)
key := conversionPair{inType.Elem, outType.Elem}
// We might scan the same package twice, and that's OK.
if v, ok := manualMap[key]; ok && v != nil && v.Name.Package != pkg.Path {
@@ -181,9 +181,9 @@ func getManualConversionFunctions(context *generator.Context, pkg *types.Package
} else {
// prevent user error when they don't get the correct conversion signature
if strings.HasPrefix(f.Name.Name, "Convert_") {
- glog.Errorf("Rename function %s %s -> %s to match expected conversion signature", f.Name.Package, f.Name.Name, buffer.String())
+ klog.Errorf("Rename function %s %s -> %s to match expected conversion signature", f.Name.Package, f.Name.Name, buffer.String())
}
- glog.V(8).Infof("%s has wrong name", f.Name)
+ klog.V(8).Infof("%s has wrong name", f.Name)
}
buffer.Reset()
}
@@ -192,7 +192,7 @@ func getManualConversionFunctions(context *generator.Context, pkg *types.Package
func Packages(context *generator.Context, arguments *args.GeneratorArgs) generator.Packages {
boilerplate, err := arguments.LoadGoBoilerplate()
if err != nil {
- glog.Fatalf("Failed loading boilerplate: %v", err)
+ klog.Fatalf("Failed loading boilerplate: %v", err)
}
packages := generator.Packages{}
@@ -220,7 +220,7 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
}
processed[i] = true
- glog.V(5).Infof("considering pkg %q", i)
+ klog.V(5).Infof("considering pkg %q", i)
pkg := context.Universe[i]
// typesPkg is where the versioned types are defined. Sometimes it is
// different from pkg. For example, kubernetes core/v1 types are defined
@@ -239,9 +239,9 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
// in their doc.go file.
peerPkgs := extractTag(pkg.Comments)
if peerPkgs != nil {
- glog.V(5).Infof(" tags: %q", peerPkgs)
+ klog.V(5).Infof(" tags: %q", peerPkgs)
} else {
- glog.V(5).Infof(" no tag")
+ klog.V(5).Infof(" no tag")
continue
}
skipUnsafe := false
@@ -255,14 +255,14 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
externalTypesValues := extractExternalTypesTag(pkg.Comments)
if externalTypesValues != nil {
if len(externalTypesValues) != 1 {
- glog.Fatalf(" expect only one value for %q tag, got: %q", externalTypesTagName, externalTypesValues)
+ klog.Fatalf(" expect only one value for %q tag, got: %q", externalTypesTagName, externalTypesValues)
}
externalTypes := externalTypesValues[0]
- glog.V(5).Infof(" external types tags: %q", externalTypes)
+ klog.V(5).Infof(" external types tags: %q", externalTypes)
var err error
typesPkg, err = context.AddDirectory(externalTypes)
if err != nil {
- glog.Fatalf("cannot import package %s", externalTypes)
+ klog.Fatalf("cannot import package %s", externalTypes)
}
// update context.Order to the latest context.Universe
orderer := namer.Orderer{Namer: namer.NewPublicNamer(1)}
@@ -291,7 +291,7 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
context.AddDir(pp)
p := context.Universe[pp]
if nil == p {
- glog.Fatalf("failed to find pkg: %s", pp)
+ klog.Fatalf("failed to find pkg: %s", pp)
}
getManualConversionFunctions(context, p, manualConversions)
}
@@ -335,7 +335,7 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
// from being a candidate for unsafe conversion
for k, v := range manualConversions {
if isCopyOnly(v.CommentLines) {
- glog.V(5).Infof("Conversion function %s will not block memory copy because it is copy-only", v.Name)
+ klog.V(5).Infof("Conversion function %s will not block memory copy because it is copy-only", v.Name)
continue
}
// this type should be excluded from all equivalence, because the converter must be called.
@@ -518,9 +518,9 @@ func (g *genConversion) convertibleOnlyWithinPackage(inType, outType *types.Type
tagvals := extractTag(t.CommentLines)
if tagvals != nil {
if tagvals[0] != "false" {
- glog.Fatalf("Type %v: unsupported %s value: %q", t, tagName, tagvals[0])
+ klog.Fatalf("Type %v: unsupported %s value: %q", t, tagName, tagvals[0])
}
- glog.V(5).Infof("type %v requests no conversion generation, skipping", t)
+ klog.V(5).Infof("type %v requests no conversion generation, skipping", t)
return false
}
// TODO: Consider generating functions for other kinds too.
@@ -582,10 +582,10 @@ func (g *genConversion) preexists(inType, outType *types.Type) (*types.Type, boo
}
func (g *genConversion) Init(c *generator.Context, w io.Writer) error {
- if glog.V(5) {
+ if klog.V(5) {
if m, ok := g.useUnsafe.(equalMemoryTypes); ok {
var result []string
- glog.Infof("All objects without identical memory layout:")
+ klog.Infof("All objects without identical memory layout:")
for k, v := range m {
if v {
continue
@@ -594,7 +594,7 @@ func (g *genConversion) Init(c *generator.Context, w io.Writer) error {
}
sort.Strings(result)
for _, s := range result {
- glog.Infof(s)
+ klog.Infof(s)
}
}
}
@@ -643,7 +643,7 @@ func (g *genConversion) Init(c *generator.Context, w io.Writer) error {
}
func (g *genConversion) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
- glog.V(5).Infof("generating for type %v", t)
+ klog.V(5).Infof("generating for type %v", t)
peerType := getPeerTypeFor(c, t, g.peerPackages)
sw := generator.NewSnippetWriter(w, c, "$", "$")
g.generateConversion(t, peerType, sw)
@@ -664,10 +664,10 @@ func (g *genConversion) generateConversion(inType, outType *types.Type, sw *gene
// There is a public manual Conversion method: use it.
} else if skipped := g.skippedFields[inType]; len(skipped) != 0 {
// The inType had some fields we could not generate.
- glog.Errorf("Warning: could not find nor generate a final Conversion function for %v -> %v", inType, outType)
- glog.Errorf(" the following fields need manual conversion:")
+ klog.Errorf("Warning: could not find nor generate a final Conversion function for %v -> %v", inType, outType)
+ klog.Errorf(" the following fields need manual conversion:")
for _, f := range skipped {
- glog.Errorf(" - %v", f)
+ klog.Errorf(" - %v", f)
}
} else {
// Emit a public conversion function.
@@ -682,7 +682,7 @@ func (g *genConversion) generateConversion(inType, outType *types.Type, sw *gene
// at any nesting level. This makes the autogenerator easy to understand, and
// the compiler shouldn't care.
func (g *genConversion) generateFor(inType, outType *types.Type, sw *generator.SnippetWriter) {
- glog.V(5).Infof("generating %v -> %v", inType, outType)
+ klog.V(5).Infof("generating %v -> %v", inType, outType)
var f func(*types.Type, *types.Type, *generator.SnippetWriter)
switch inType.Kind {
@@ -853,7 +853,7 @@ func (g *genConversion) doStruct(inType, outType *types.Type, sw *generator.Snip
sw.Do("}\n", nil)
continue
}
- glog.V(5).Infof("Skipped function %s because it is copy-only and we can use direct assignment", function.Name)
+ klog.V(5).Infof("Skipped function %s because it is copy-only and we can use direct assignment", function.Name)
}
// If we can't auto-convert, punt before we emit any code.
diff --git a/vendor/k8s.io/code-generator/cmd/conversion-gen/main.go b/vendor/k8s.io/code-generator/cmd/conversion-gen/main.go
index f2b91cc2e2..698baa7db7 100644
--- a/vendor/k8s.io/code-generator/cmd/conversion-gen/main.go
+++ b/vendor/k8s.io/code-generator/cmd/conversion-gen/main.go
@@ -38,9 +38,9 @@ import (
"flag"
"path/filepath"
- "github.com/golang/glog"
"github.com/spf13/pflag"
"k8s.io/gengo/args"
+ "k8s.io/klog"
generatorargs "k8s.io/code-generator/cmd/conversion-gen/args"
"k8s.io/code-generator/cmd/conversion-gen/generators"
@@ -48,6 +48,7 @@ import (
)
func main() {
+ klog.InitFlags(nil)
genericArgs, customArgs := generatorargs.NewDefaults()
// Override defaults.
@@ -61,7 +62,7 @@ func main() {
pflag.Parse()
if err := generatorargs.Validate(genericArgs); err != nil {
- glog.Fatalf("Error: %v", err)
+ klog.Fatalf("Error: %v", err)
}
// Run it.
@@ -70,7 +71,7 @@ func main() {
generators.DefaultNameSystem(),
generators.Packages,
); err != nil {
- glog.Fatalf("Error: %v", err)
+ klog.Fatalf("Error: %v", err)
}
- glog.V(2).Info("Completed successfully.")
+ klog.V(2).Info("Completed successfully.")
}
diff --git a/vendor/k8s.io/code-generator/cmd/deepcopy-gen/main.go b/vendor/k8s.io/code-generator/cmd/deepcopy-gen/main.go
index cce65b772f..96fb298734 100644
--- a/vendor/k8s.io/code-generator/cmd/deepcopy-gen/main.go
+++ b/vendor/k8s.io/code-generator/cmd/deepcopy-gen/main.go
@@ -46,16 +46,17 @@ import (
"flag"
"path/filepath"
- "github.com/golang/glog"
"github.com/spf13/pflag"
"k8s.io/gengo/args"
"k8s.io/gengo/examples/deepcopy-gen/generators"
+ "k8s.io/klog"
generatorargs "k8s.io/code-generator/cmd/deepcopy-gen/args"
"k8s.io/code-generator/pkg/util"
)
func main() {
+ klog.InitFlags(nil)
genericArgs, customArgs := generatorargs.NewDefaults()
// Override defaults.
@@ -69,7 +70,7 @@ func main() {
pflag.Parse()
if err := generatorargs.Validate(genericArgs); err != nil {
- glog.Fatalf("Error: %v", err)
+ klog.Fatalf("Error: %v", err)
}
// Run it.
@@ -78,7 +79,7 @@ func main() {
generators.DefaultNameSystem(),
generators.Packages,
); err != nil {
- glog.Fatalf("Error: %v", err)
+ klog.Fatalf("Error: %v", err)
}
- glog.V(2).Info("Completed successfully.")
+ klog.V(2).Info("Completed successfully.")
}
diff --git a/vendor/k8s.io/code-generator/cmd/defaulter-gen/main.go b/vendor/k8s.io/code-generator/cmd/defaulter-gen/main.go
index 9d33f700b3..40bb875e52 100644
--- a/vendor/k8s.io/code-generator/cmd/defaulter-gen/main.go
+++ b/vendor/k8s.io/code-generator/cmd/defaulter-gen/main.go
@@ -45,16 +45,17 @@ import (
"flag"
"path/filepath"
- "github.com/golang/glog"
"github.com/spf13/pflag"
"k8s.io/gengo/args"
"k8s.io/gengo/examples/defaulter-gen/generators"
+ "k8s.io/klog"
generatorargs "k8s.io/code-generator/cmd/defaulter-gen/args"
"k8s.io/code-generator/pkg/util"
)
func main() {
+ klog.InitFlags(nil)
genericArgs, customArgs := generatorargs.NewDefaults()
// Override defaults.
@@ -68,7 +69,7 @@ func main() {
pflag.Parse()
if err := generatorargs.Validate(genericArgs); err != nil {
- glog.Fatalf("Error: %v", err)
+ klog.Fatalf("Error: %v", err)
}
// Run it.
@@ -77,7 +78,7 @@ func main() {
generators.DefaultNameSystem(),
generators.Packages,
); err != nil {
- glog.Fatalf("Error: %v", err)
+ klog.Fatalf("Error: %v", err)
}
- glog.V(2).Info("Completed successfully.")
+ klog.V(2).Info("Completed successfully.")
}
diff --git a/vendor/k8s.io/code-generator/cmd/go-to-protobuf/protobuf/generator.go b/vendor/k8s.io/code-generator/cmd/go-to-protobuf/protobuf/generator.go
index 0e7a7d8ec3..1a9803dc88 100644
--- a/vendor/k8s.io/code-generator/cmd/go-to-protobuf/protobuf/generator.go
+++ b/vendor/k8s.io/code-generator/cmd/go-to-protobuf/protobuf/generator.go
@@ -25,7 +25,7 @@ import (
"strconv"
"strings"
- "github.com/golang/glog"
+ "k8s.io/klog"
"k8s.io/gengo/generator"
"k8s.io/gengo/namer"
@@ -85,7 +85,7 @@ func (g *genProtoIDL) Filter(c *generator.Context, t *types.Type) bool {
// Type specified "true".
return true
}
- glog.Fatalf(`Comment tag "protobuf" must be true or false, found: %q`, tagVals[0])
+ klog.Fatalf(`Comment tag "protobuf" must be true or false, found: %q`, tagVals[0])
}
if !g.generateAll {
// We're not generating everything.
@@ -724,6 +724,10 @@ func genComment(out io.Writer, lines []string, indent string) {
lines = lines[:l-1]
}
for _, c := range lines {
+ if len(c) == 0 {
+ fmt.Fprintf(out, "%s//\n", indent) // avoid trailing whitespace
+ continue
+ }
fmt.Fprintf(out, "%s// %s\n", indent, c)
}
}
diff --git a/vendor/k8s.io/code-generator/cmd/go-to-protobuf/protobuf/tags.go b/vendor/k8s.io/code-generator/cmd/go-to-protobuf/protobuf/tags.go
index 2dff5b9229..8e2a1917d0 100644
--- a/vendor/k8s.io/code-generator/cmd/go-to-protobuf/protobuf/tags.go
+++ b/vendor/k8s.io/code-generator/cmd/go-to-protobuf/protobuf/tags.go
@@ -17,8 +17,8 @@ limitations under the License.
package protobuf
import (
- "github.com/golang/glog"
"k8s.io/gengo/types"
+ "k8s.io/klog"
)
// extractBoolTagOrDie gets the comment-tags for the key and asserts that, if
@@ -27,7 +27,7 @@ import (
func extractBoolTagOrDie(key string, lines []string) bool {
val, err := types.ExtractSingleBoolCommentTag("+", key, false, lines)
if err != nil {
- glog.Fatal(err)
+ klog.Fatal(err)
}
return val
}
diff --git a/vendor/k8s.io/code-generator/cmd/import-boss/main.go b/vendor/k8s.io/code-generator/cmd/import-boss/main.go
index d998994415..c0f10c3a49 100644
--- a/vendor/k8s.io/code-generator/cmd/import-boss/main.go
+++ b/vendor/k8s.io/code-generator/cmd/import-boss/main.go
@@ -63,10 +63,11 @@ import (
"k8s.io/gengo/args"
"k8s.io/gengo/examples/import-boss/generators"
- "github.com/golang/glog"
+ "k8s.io/klog"
)
func main() {
+ klog.InitFlags(nil)
arguments := args.Default()
// Override defaults.
@@ -82,8 +83,8 @@ func main() {
generators.DefaultNameSystem(),
generators.Packages,
); err != nil {
- glog.Errorf("Error: %v", err)
+ klog.Errorf("Error: %v", err)
os.Exit(1)
}
- glog.V(2).Info("Completed successfully.")
+ klog.V(2).Info("Completed successfully.")
}
diff --git a/vendor/k8s.io/code-generator/cmd/informer-gen/generators/factory.go b/vendor/k8s.io/code-generator/cmd/informer-gen/generators/factory.go
index 5c557db739..62ae109a4a 100644
--- a/vendor/k8s.io/code-generator/cmd/informer-gen/generators/factory.go
+++ b/vendor/k8s.io/code-generator/cmd/informer-gen/generators/factory.go
@@ -25,7 +25,7 @@ import (
"k8s.io/gengo/namer"
"k8s.io/gengo/types"
- "github.com/golang/glog"
+ "k8s.io/klog"
)
// factoryGenerator produces a file of listers for a given GroupVersion and
@@ -65,7 +65,7 @@ func (g *factoryGenerator) Imports(c *generator.Context) (imports []string) {
func (g *factoryGenerator) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
sw := generator.NewSnippetWriter(w, c, "{{", "}}")
- glog.V(5).Infof("processing type %v", t)
+ klog.V(5).Infof("processing type %v", t)
gvInterfaces := make(map[string]*types.Type)
gvNewFuncs := make(map[string]*types.Type)
diff --git a/vendor/k8s.io/code-generator/cmd/informer-gen/generators/factoryinterface.go b/vendor/k8s.io/code-generator/cmd/informer-gen/generators/factoryinterface.go
index c781804387..fc0668c5be 100644
--- a/vendor/k8s.io/code-generator/cmd/informer-gen/generators/factoryinterface.go
+++ b/vendor/k8s.io/code-generator/cmd/informer-gen/generators/factoryinterface.go
@@ -23,7 +23,7 @@ import (
"k8s.io/gengo/namer"
"k8s.io/gengo/types"
- "github.com/golang/glog"
+ "k8s.io/klog"
)
// factoryInterfaceGenerator produces a file of interfaces used to break a dependency cycle for
@@ -60,7 +60,7 @@ func (g *factoryInterfaceGenerator) Imports(c *generator.Context) (imports []str
func (g *factoryInterfaceGenerator) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
sw := generator.NewSnippetWriter(w, c, "{{", "}}")
- glog.V(5).Infof("processing type %v", t)
+ klog.V(5).Infof("processing type %v", t)
m := map[string]interface{}{
"cacheSharedIndexInformer": c.Universe.Type(cacheSharedIndexInformer),
@@ -76,6 +76,7 @@ func (g *factoryInterfaceGenerator) GenerateType(c *generator.Context, t *types.
}
var externalSharedInformerFactoryInterface = `
+// NewInformerFunc takes {{.clientSetPackage|raw}} and {{.timeDuration|raw}} to return a SharedIndexInformer.
type NewInformerFunc func({{.clientSetPackage|raw}}, {{.timeDuration|raw}}) cache.SharedIndexInformer
// SharedInformerFactory a small interface to allow for adding an informer without an import cycle
@@ -84,5 +85,6 @@ type SharedInformerFactory interface {
InformerFor(obj {{.runtimeObject|raw}}, newFunc NewInformerFunc) {{.cacheSharedIndexInformer|raw}}
}
+// TweakListOptionsFunc is a function that transforms a {{.v1ListOptions|raw}}.
type TweakListOptionsFunc func(*{{.v1ListOptions|raw}})
`
diff --git a/vendor/k8s.io/code-generator/cmd/informer-gen/generators/informer.go b/vendor/k8s.io/code-generator/cmd/informer-gen/generators/informer.go
index 88cc08df52..9204d6215a 100644
--- a/vendor/k8s.io/code-generator/cmd/informer-gen/generators/informer.go
+++ b/vendor/k8s.io/code-generator/cmd/informer-gen/generators/informer.go
@@ -28,7 +28,7 @@ import (
"k8s.io/code-generator/cmd/client-gen/generators/util"
clientgentypes "k8s.io/code-generator/cmd/client-gen/types"
- "github.com/golang/glog"
+ "k8s.io/klog"
)
// informerGenerator produces a file of listers for a given GroupVersion and
@@ -66,7 +66,7 @@ func (g *informerGenerator) Imports(c *generator.Context) (imports []string) {
func (g *informerGenerator) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
sw := generator.NewSnippetWriter(w, c, "$", "$")
- glog.V(5).Infof("processing type %v", t)
+ klog.V(5).Infof("processing type %v", t)
listerPackage := fmt.Sprintf("%s/%s/%s", g.listersPackage, g.groupPkgName, strings.ToLower(g.groupVersion.Version.NonEmpty()))
clientSetInterface := c.Universe.Type(types.Name{Package: g.clientSetPackage, Name: "Interface"})
diff --git a/vendor/k8s.io/code-generator/cmd/informer-gen/generators/packages.go b/vendor/k8s.io/code-generator/cmd/informer-gen/generators/packages.go
index 2cc0372f89..cfb91cebac 100644
--- a/vendor/k8s.io/code-generator/cmd/informer-gen/generators/packages.go
+++ b/vendor/k8s.io/code-generator/cmd/informer-gen/generators/packages.go
@@ -22,11 +22,11 @@ import (
"path/filepath"
"strings"
- "github.com/golang/glog"
"k8s.io/gengo/args"
"k8s.io/gengo/generator"
"k8s.io/gengo/namer"
"k8s.io/gengo/types"
+ "k8s.io/klog"
"k8s.io/code-generator/cmd/client-gen/generators/util"
clientgentypes "k8s.io/code-generator/cmd/client-gen/types"
@@ -102,12 +102,12 @@ func vendorless(p string) string {
func Packages(context *generator.Context, arguments *args.GeneratorArgs) generator.Packages {
boilerplate, err := arguments.LoadGoBoilerplate()
if err != nil {
- glog.Fatalf("Failed loading boilerplate: %v", err)
+ klog.Fatalf("Failed loading boilerplate: %v", err)
}
customArgs, ok := arguments.CustomArgs.(*informergenargs.CustomArgs)
if !ok {
- glog.Fatalf("Wrong CustomArgs type: %T", arguments.CustomArgs)
+ klog.Fatalf("Wrong CustomArgs type: %T", arguments.CustomArgs)
}
internalVersionPackagePath := filepath.Join(arguments.OutputPackagePath)
@@ -128,7 +128,7 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
objectMeta, internal, err := objectMetaForPackage(p)
if err != nil {
- glog.Fatal(err)
+ klog.Fatal(err)
}
if objectMeta == nil {
// no types in this package had genclient
@@ -141,7 +141,7 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
if internal {
lastSlash := strings.LastIndex(p.Path, "/")
if lastSlash == -1 {
- glog.Fatalf("error constructing internal group version for package %q", p.Path)
+ klog.Fatalf("error constructing internal group version for package %q", p.Path)
}
gv.Group = clientgentypes.Group(p.Path[lastSlash+1:])
targetGroupVersions = internalGroupVersions
@@ -320,9 +320,9 @@ func versionPackage(basePackage string, groupPkgName string, gv clientgentypes.G
DefaultGen: generator.DefaultGen{
OptionalName: "interface",
},
- outputPackage: packagePath,
- imports: generator.NewImportTracker(),
- types: typesToGenerate,
+ outputPackage: packagePath,
+ imports: generator.NewImportTracker(),
+ types: typesToGenerate,
internalInterfacesPackage: packageForInternalInterfaces(basePackage),
})
diff --git a/vendor/k8s.io/code-generator/cmd/informer-gen/generators/tags.go b/vendor/k8s.io/code-generator/cmd/informer-gen/generators/tags.go
index afa2878152..d25d5b6304 100644
--- a/vendor/k8s.io/code-generator/cmd/informer-gen/generators/tags.go
+++ b/vendor/k8s.io/code-generator/cmd/informer-gen/generators/tags.go
@@ -17,8 +17,8 @@ limitations under the License.
package generators
import (
- "github.com/golang/glog"
"k8s.io/gengo/types"
+ "k8s.io/klog"
)
// extractBoolTagOrDie gets the comment-tags for the key and asserts that, if
@@ -27,7 +27,7 @@ import (
func extractBoolTagOrDie(key string, lines []string) bool {
val, err := types.ExtractSingleBoolCommentTag("+", key, false, lines)
if err != nil {
- glog.Fatal(err)
+ klog.Fatal(err)
}
return val
}
diff --git a/vendor/k8s.io/code-generator/cmd/informer-gen/generators/versioninterface.go b/vendor/k8s.io/code-generator/cmd/informer-gen/generators/versioninterface.go
index 1cd27d5cdd..f80350c5f6 100644
--- a/vendor/k8s.io/code-generator/cmd/informer-gen/generators/versioninterface.go
+++ b/vendor/k8s.io/code-generator/cmd/informer-gen/generators/versioninterface.go
@@ -63,7 +63,7 @@ func (g *versionInterfaceGenerator) GenerateType(c *generator.Context, t *types.
m := map[string]interface{}{
"interfacesTweakListOptionsFunc": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "TweakListOptionsFunc"}),
"interfacesSharedInformerFactory": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "SharedInformerFactory"}),
- "types": g.types,
+ "types": g.types,
}
sw.Do(versionTemplate, m)
diff --git a/vendor/k8s.io/code-generator/cmd/informer-gen/main.go b/vendor/k8s.io/code-generator/cmd/informer-gen/main.go
index bfe826080c..14f3e923e6 100644
--- a/vendor/k8s.io/code-generator/cmd/informer-gen/main.go
+++ b/vendor/k8s.io/code-generator/cmd/informer-gen/main.go
@@ -20,16 +20,17 @@ import (
"flag"
"path/filepath"
- "github.com/golang/glog"
"github.com/spf13/pflag"
"k8s.io/code-generator/cmd/informer-gen/generators"
"k8s.io/code-generator/pkg/util"
"k8s.io/gengo/args"
+ "k8s.io/klog"
generatorargs "k8s.io/code-generator/cmd/informer-gen/args"
)
func main() {
+ klog.InitFlags(nil)
genericArgs, customArgs := generatorargs.NewDefaults()
// Override defaults.
@@ -47,7 +48,7 @@ func main() {
pflag.Parse()
if err := generatorargs.Validate(genericArgs); err != nil {
- glog.Fatalf("Error: %v", err)
+ klog.Fatalf("Error: %v", err)
}
// Run it.
@@ -56,7 +57,7 @@ func main() {
generators.DefaultNameSystem(),
generators.Packages,
); err != nil {
- glog.Fatalf("Error: %v", err)
+ klog.Fatalf("Error: %v", err)
}
- glog.V(2).Info("Completed successfully.")
+ klog.V(2).Info("Completed successfully.")
}
diff --git a/vendor/k8s.io/code-generator/cmd/lister-gen/generators/lister.go b/vendor/k8s.io/code-generator/cmd/lister-gen/generators/lister.go
index cde6e2f770..c8ed5ad4d3 100644
--- a/vendor/k8s.io/code-generator/cmd/lister-gen/generators/lister.go
+++ b/vendor/k8s.io/code-generator/cmd/lister-gen/generators/lister.go
@@ -30,7 +30,7 @@ import (
"k8s.io/code-generator/cmd/client-gen/generators/util"
clientgentypes "k8s.io/code-generator/cmd/client-gen/types"
- "github.com/golang/glog"
+ "k8s.io/klog"
)
// NameSystems returns the name system used by the generators in this package.
@@ -66,7 +66,7 @@ func DefaultNameSystem() string {
func Packages(context *generator.Context, arguments *args.GeneratorArgs) generator.Packages {
boilerplate, err := arguments.LoadGoBoilerplate()
if err != nil {
- glog.Fatalf("Failed loading boilerplate: %v", err)
+ klog.Fatalf("Failed loading boilerplate: %v", err)
}
var packageList generator.Packages
@@ -75,7 +75,7 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
objectMeta, internal, err := objectMetaForPackage(p)
if err != nil {
- glog.Fatal(err)
+ klog.Fatal(err)
}
if objectMeta == nil {
// no types in this package had genclient
@@ -88,7 +88,7 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
if internal {
lastSlash := strings.LastIndex(p.Path, "/")
if lastSlash == -1 {
- glog.Fatalf("error constructing internal group version for package %q", p.Path)
+ klog.Fatalf("error constructing internal group version for package %q", p.Path)
}
gv.Group = clientgentypes.Group(p.Path[lastSlash+1:])
internalGVPkg = p.Path
@@ -223,7 +223,7 @@ func (g *listerGenerator) Imports(c *generator.Context) (imports []string) {
func (g *listerGenerator) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
sw := generator.NewSnippetWriter(w, c, "$", "$")
- glog.V(5).Infof("processing type %v", t)
+ klog.V(5).Infof("processing type %v", t)
m := map[string]interface{}{
"Resource": c.Universe.Function(types.Name{Package: t.Name.Package, Name: "Resource"}),
"type": t,
diff --git a/vendor/k8s.io/code-generator/cmd/lister-gen/generators/tags.go b/vendor/k8s.io/code-generator/cmd/lister-gen/generators/tags.go
index afa2878152..d25d5b6304 100644
--- a/vendor/k8s.io/code-generator/cmd/lister-gen/generators/tags.go
+++ b/vendor/k8s.io/code-generator/cmd/lister-gen/generators/tags.go
@@ -17,8 +17,8 @@ limitations under the License.
package generators
import (
- "github.com/golang/glog"
"k8s.io/gengo/types"
+ "k8s.io/klog"
)
// extractBoolTagOrDie gets the comment-tags for the key and asserts that, if
@@ -27,7 +27,7 @@ import (
func extractBoolTagOrDie(key string, lines []string) bool {
val, err := types.ExtractSingleBoolCommentTag("+", key, false, lines)
if err != nil {
- glog.Fatal(err)
+ klog.Fatal(err)
}
return val
}
diff --git a/vendor/k8s.io/code-generator/cmd/lister-gen/main.go b/vendor/k8s.io/code-generator/cmd/lister-gen/main.go
index d5ff8e46ee..aca16b2bda 100644
--- a/vendor/k8s.io/code-generator/cmd/lister-gen/main.go
+++ b/vendor/k8s.io/code-generator/cmd/lister-gen/main.go
@@ -20,16 +20,17 @@ import (
"flag"
"path/filepath"
- "github.com/golang/glog"
"github.com/spf13/pflag"
"k8s.io/code-generator/cmd/lister-gen/generators"
"k8s.io/code-generator/pkg/util"
"k8s.io/gengo/args"
+ "k8s.io/klog"
generatorargs "k8s.io/code-generator/cmd/lister-gen/args"
)
func main() {
+ klog.InitFlags(nil)
genericArgs, customArgs := generatorargs.NewDefaults()
// Override defaults.
@@ -44,7 +45,7 @@ func main() {
pflag.Parse()
if err := generatorargs.Validate(genericArgs); err != nil {
- glog.Fatalf("Error: %v", err)
+ klog.Fatalf("Error: %v", err)
}
// Run it.
@@ -53,7 +54,7 @@ func main() {
generators.DefaultNameSystem(),
generators.Packages,
); err != nil {
- glog.Fatalf("Error: %v", err)
+ klog.Fatalf("Error: %v", err)
}
- glog.V(2).Info("Completed successfully.")
+ klog.V(2).Info("Completed successfully.")
}
diff --git a/vendor/k8s.io/code-generator/cmd/openapi-gen/README b/vendor/k8s.io/code-generator/cmd/openapi-gen/README
deleted file mode 100644
index e6dcc85d0d..0000000000
--- a/vendor/k8s.io/code-generator/cmd/openapi-gen/README
+++ /dev/null
@@ -1,13 +0,0 @@
-# Generate OpenAPI definitions
-
-- To generate definition for a specific type or package add "+k8s:openapi-gen=true" tag to the type/package comment lines.
-- To exclude a type or a member from a tagged package/type, add "+k8s:openapi-gen=false" tag to the comment lines.
-
-# OpenAPI Extensions
-OpenAPI spec can have extensions on types. To define one or more extensions on a type or its member
-add "+k8s:openapi-gen=x-kubernetes-$NAME:$VALUE" to the comment lines before type/member. A type/member can
-have multiple extensions. The rest of the line in the comment will be used as $VALUE so there is no need to
-escape or quote the value string. Extensions can be use to pass more information to client generators or
-documentation generators. For example a type my have a friendly name to be displayed in documentation or
-being used in a client's fluent interface.
-
diff --git a/vendor/k8s.io/code-generator/cmd/openapi-gen/args/args.go b/vendor/k8s.io/code-generator/cmd/openapi-gen/args/args.go
deleted file mode 100644
index f9bb17e1a5..0000000000
--- a/vendor/k8s.io/code-generator/cmd/openapi-gen/args/args.go
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-Copyright 2016 The Kubernetes Authors.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package args
-
-import (
- "fmt"
-
- "github.com/spf13/pflag"
- "k8s.io/gengo/args"
-)
-
-// CustomArgs is used by the gengo framework to pass args specific to this generator.
-type CustomArgs struct{}
-
-// NewDefaults returns default arguments for the generator.
-func NewDefaults() (*args.GeneratorArgs, *CustomArgs) {
- genericArgs := args.Default().WithoutDefaultFlagParsing()
- customArgs := &CustomArgs{}
- genericArgs.CustomArgs = customArgs
- genericArgs.OutputFileBaseName = "openapi_generated"
- return genericArgs, customArgs
-}
-
-// AddFlags add the generator flags to the flag set.
-func (ca *CustomArgs) AddFlags(fs *pflag.FlagSet) {}
-
-// Validate checks the given arguments.
-func Validate(genericArgs *args.GeneratorArgs) error {
- _ = genericArgs.CustomArgs.(*CustomArgs)
-
- if len(genericArgs.OutputFileBaseName) == 0 {
- return fmt.Errorf("output file base name cannot be empty")
- }
- if len(genericArgs.OutputPackagePath) == 0 {
- return fmt.Errorf("output package cannot be empty")
- }
-
- return nil
-}
diff --git a/vendor/k8s.io/code-generator/cmd/openapi-gen/main.go b/vendor/k8s.io/code-generator/cmd/openapi-gen/main.go
deleted file mode 100644
index fbafc50257..0000000000
--- a/vendor/k8s.io/code-generator/cmd/openapi-gen/main.go
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-Copyright 2016 The Kubernetes Authors.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-// This package generates openAPI definition file to be used in open API spec generation on API servers. To generate
-// definition for a specific type or package add "+k8s:openapi-gen=true" tag to the type/package comment lines. To
-// exclude a type from a tagged package, add "+k8s:openapi-gen=false" tag to the type comment lines.
-package main
-
-import (
- "flag"
- "path/filepath"
-
- "github.com/golang/glog"
- "github.com/spf13/pflag"
- "k8s.io/gengo/args"
- "k8s.io/kube-openapi/pkg/generators"
-
- generatorargs "k8s.io/code-generator/cmd/openapi-gen/args"
- "k8s.io/code-generator/pkg/util"
-)
-
-func main() {
- genericArgs, customArgs := generatorargs.NewDefaults()
-
- // Override defaults.
- // TODO: move this out of openapi-gen
- genericArgs.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), util.BoilerplatePath())
-
- genericArgs.AddFlags(pflag.CommandLine)
- customArgs.AddFlags(pflag.CommandLine)
- flag.Set("logtostderr", "true")
- pflag.CommandLine.AddGoFlagSet(flag.CommandLine)
- pflag.Parse()
-
- if err := generatorargs.Validate(genericArgs); err != nil {
- glog.Fatalf("Error: %v", err)
- }
-
- // Run it.
- if err := genericArgs.Execute(
- generators.NameSystems(),
- generators.DefaultNameSystem(),
- generators.Packages,
- ); err != nil {
- glog.Fatalf("Error: %v", err)
- }
- glog.V(2).Info("Completed successfully.")
-}
diff --git a/vendor/k8s.io/code-generator/cmd/register-gen/generators/packages.go b/vendor/k8s.io/code-generator/cmd/register-gen/generators/packages.go
index ca13ca8579..5186e421f2 100644
--- a/vendor/k8s.io/code-generator/cmd/register-gen/generators/packages.go
+++ b/vendor/k8s.io/code-generator/cmd/register-gen/generators/packages.go
@@ -22,7 +22,7 @@ import (
"path"
"strings"
- "github.com/golang/glog"
+ "k8s.io/klog"
clientgentypes "k8s.io/code-generator/cmd/client-gen/types"
"k8s.io/gengo/args"
@@ -46,7 +46,7 @@ func DefaultNameSystem() string {
func Packages(context *generator.Context, arguments *args.GeneratorArgs) generator.Packages {
boilerplate, err := arguments.LoadGoBoilerplate()
if err != nil {
- glog.Fatalf("Failed loading boilerplate: %v", err)
+ klog.Fatalf("Failed loading boilerplate: %v", err)
}
packages := generator.Packages{}
@@ -54,27 +54,27 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
pkg := context.Universe.Package(inputDir)
internal, err := isInternal(pkg)
if err != nil {
- glog.V(5).Infof("skipping the generation of %s file, due to err %v", arguments.OutputFileBaseName, err)
+ klog.V(5).Infof("skipping the generation of %s file, due to err %v", arguments.OutputFileBaseName, err)
continue
}
if internal {
- glog.V(5).Infof("skipping the generation of %s file because %s package contains internal types, note that internal types don't have \"json\" tags", arguments.OutputFileBaseName, pkg.Name)
+ klog.V(5).Infof("skipping the generation of %s file because %s package contains internal types, note that internal types don't have \"json\" tags", arguments.OutputFileBaseName, pkg.Name)
continue
}
registerFileName := "register.go"
searchPath := path.Join(args.DefaultSourceTree(), inputDir, registerFileName)
if _, err := os.Stat(path.Join(searchPath)); err == nil {
- glog.V(5).Infof("skipping the generation of %s file because %s already exists in the path %s", arguments.OutputFileBaseName, registerFileName, searchPath)
+ klog.V(5).Infof("skipping the generation of %s file because %s already exists in the path %s", arguments.OutputFileBaseName, registerFileName, searchPath)
continue
} else if err != nil && !os.IsNotExist(err) {
- glog.Fatalf("an error %v has occurred while checking if %s exists", err, registerFileName)
+ klog.Fatalf("an error %v has occurred while checking if %s exists", err, registerFileName)
}
gv := clientgentypes.GroupVersion{}
{
pathParts := strings.Split(pkg.Path, "/")
if len(pathParts) < 2 {
- glog.Errorf("the path of the package must contain the group name and the version, path = %s", pkg.Path)
+ klog.Errorf("the path of the package must contain the group name and the version, path = %s", pkg.Path)
continue
}
gv.Group = clientgentypes.Group(pathParts[len(pathParts)-2])
@@ -84,14 +84,14 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
// extract the fully qualified API group name from it and overwrite the group inferred from the package path
if override := types.ExtractCommentTags("+", pkg.DocComments)["groupName"]; override != nil {
groupName := override[0]
- glog.V(5).Infof("overriding the group name with = %s", groupName)
+ klog.V(5).Infof("overriding the group name with = %s", groupName)
gv.Group = clientgentypes.Group(groupName)
}
}
typesToRegister := []*types.Type{}
for _, t := range pkg.Types {
- glog.V(5).Infof("considering type = %s", t.Name.String())
+ klog.V(5).Infof("considering type = %s", t.Name.String())
for _, typeMember := range t.Members {
if typeMember.Name == "TypeMeta" && typeMember.Embedded == true {
typesToRegister = append(typesToRegister, t)
diff --git a/vendor/k8s.io/code-generator/cmd/register-gen/main.go b/vendor/k8s.io/code-generator/cmd/register-gen/main.go
index db02a4af4b..30a175d8d6 100644
--- a/vendor/k8s.io/code-generator/cmd/register-gen/main.go
+++ b/vendor/k8s.io/code-generator/cmd/register-gen/main.go
@@ -20,8 +20,8 @@ import (
"flag"
"path/filepath"
- "github.com/golang/glog"
"github.com/spf13/pflag"
+ "k8s.io/klog"
generatorargs "k8s.io/code-generator/cmd/register-gen/args"
"k8s.io/code-generator/cmd/register-gen/generators"
@@ -30,6 +30,7 @@ import (
)
func main() {
+ klog.InitFlags(nil)
genericArgs := generatorargs.NewDefaults()
genericArgs.GoHeaderFilePath = filepath.Join(args.DefaultSourceTree(), util.BoilerplatePath())
genericArgs.AddFlags(pflag.CommandLine)
@@ -38,7 +39,7 @@ func main() {
pflag.Parse()
if err := generatorargs.Validate(genericArgs); err != nil {
- glog.Fatalf("Error: %v", err)
+ klog.Fatalf("Error: %v", err)
}
if err := genericArgs.Execute(
@@ -46,7 +47,7 @@ func main() {
generators.DefaultNameSystem(),
generators.Packages,
); err != nil {
- glog.Fatalf("Error: %v", err)
+ klog.Fatalf("Error: %v", err)
}
- glog.V(2).Info("Completed successfully.")
+ klog.V(2).Info("Completed successfully.")
}
diff --git a/vendor/k8s.io/code-generator/cmd/set-gen/main.go b/vendor/k8s.io/code-generator/cmd/set-gen/main.go
index cf8f01d89e..45694d4f33 100644
--- a/vendor/k8s.io/code-generator/cmd/set-gen/main.go
+++ b/vendor/k8s.io/code-generator/cmd/set-gen/main.go
@@ -32,10 +32,11 @@ import (
"k8s.io/gengo/args"
"k8s.io/gengo/examples/set-gen/generators"
- "github.com/golang/glog"
+ "k8s.io/klog"
)
func main() {
+ klog.InitFlags(nil)
arguments := args.Default()
// Override defaults.
@@ -48,8 +49,8 @@ func main() {
generators.DefaultNameSystem(),
generators.Packages,
); err != nil {
- glog.Errorf("Error: %v", err)
+ klog.Errorf("Error: %v", err)
os.Exit(1)
}
- glog.V(2).Info("Completed successfully.")
+ klog.V(2).Info("Completed successfully.")
}
diff --git a/vendor/k8s.io/code-generator/generate-groups.sh b/vendor/k8s.io/code-generator/generate-groups.sh
index d7ad5b2e07..d8531a8d9d 100755
--- a/vendor/k8s.io/code-generator/generate-groups.sh
+++ b/vendor/k8s.io/code-generator/generate-groups.sh
@@ -50,7 +50,7 @@ shift 4
# To support running this script from anywhere, we have to first cd into this directory
# so we can install the tools.
cd $(dirname "${0}")
- go install ./cmd/{defaulter-gen,client-gen,lister-gen,informer-gen,deepcopy-gen}
+ go install ${GOFLAGS:-} ./cmd/{defaulter-gen,client-gen,lister-gen,informer-gen,deepcopy-gen}
)
function codegen::join() { local IFS="$1"; shift; echo "$*"; }
@@ -72,8 +72,8 @@ if [ "${GENS}" = "all" ] || grep -qw "deepcopy" <<<"${GENS}"; then
fi
if [ "${GENS}" = "all" ] || grep -qw "client" <<<"${GENS}"; then
- echo "Generating clientset for ${GROUPS_WITH_VERSIONS} at ${OUTPUT_PKG}/clientset"
- ${GOPATH}/bin/client-gen --clientset-name ${CLIENTSET_NAME_VERSIONED:-versioned} --input-base "" --input $(codegen::join , "${FQ_APIS[@]}") --output-package ${OUTPUT_PKG}/clientset "$@"
+ echo "Generating clientset for ${GROUPS_WITH_VERSIONS} at ${OUTPUT_PKG}/${CLIENTSET_PKG_NAME:-clientset}"
+ ${GOPATH}/bin/client-gen --clientset-name ${CLIENTSET_NAME_VERSIONED:-versioned} --input-base "" --input $(codegen::join , "${FQ_APIS[@]}") --output-package ${OUTPUT_PKG}/${CLIENTSET_PKG_NAME:-clientset} "$@"
fi
if [ "${GENS}" = "all" ] || grep -qw "lister" <<<"${GENS}"; then
@@ -85,7 +85,7 @@ if [ "${GENS}" = "all" ] || grep -qw "informer" <<<"${GENS}"; then
echo "Generating informers for ${GROUPS_WITH_VERSIONS} at ${OUTPUT_PKG}/informers"
${GOPATH}/bin/informer-gen \
--input-dirs $(codegen::join , "${FQ_APIS[@]}") \
- --versioned-clientset-package ${OUTPUT_PKG}/clientset/${CLIENTSET_NAME_VERSIONED:-versioned} \
+ --versioned-clientset-package ${OUTPUT_PKG}/${CLIENTSET_PKG_NAME:-clientset}/${CLIENTSET_NAME_VERSIONED:-versioned} \
--listers-package ${OUTPUT_PKG}/listers \
--output-package ${OUTPUT_PKG}/informers \
"$@"
diff --git a/vendor/k8s.io/code-generator/generate-internal-groups.sh b/vendor/k8s.io/code-generator/generate-internal-groups.sh
index 1220e77c58..6849ed9437 100755
--- a/vendor/k8s.io/code-generator/generate-internal-groups.sh
+++ b/vendor/k8s.io/code-generator/generate-internal-groups.sh
@@ -47,7 +47,7 @@ EXT_APIS_PKG="$4"
GROUPS_WITH_VERSIONS="$5"
shift 5
-go install ./$(dirname "${0}")/cmd/{defaulter-gen,conversion-gen,client-gen,lister-gen,informer-gen,deepcopy-gen}
+go install ${GOFLAGS:-} ./$(dirname "${0}")/cmd/{defaulter-gen,conversion-gen,client-gen,lister-gen,informer-gen,deepcopy-gen}
function codegen::join() { local IFS="$1"; shift; echo "$*"; }
# enumerate group versions
@@ -85,11 +85,11 @@ if [ "${GENS}" = "all" ] || grep -qw "conversion" <<<"${GENS}"; then
fi
if [ "${GENS}" = "all" ] || grep -qw "client" <<<"${GENS}"; then
- echo "Generating clientset for ${GROUPS_WITH_VERSIONS} at ${OUTPUT_PKG}/clientset"
+ echo "Generating clientset for ${GROUPS_WITH_VERSIONS} at ${OUTPUT_PKG}/${CLIENTSET_PKG_NAME:-clientset}"
if [ -n "${INT_APIS_PKG}" ]; then
- ${GOPATH}/bin/client-gen --clientset-name ${CLIENTSET_NAME_INTERNAL:-internalversion} --input-base "" --input $(codegen::join , $(printf '%s/ ' "${INT_FQ_APIS[@]}")) --output-package ${OUTPUT_PKG}/clientset "$@"
+ ${GOPATH}/bin/client-gen --clientset-name ${CLIENTSET_NAME_INTERNAL:-internalversion} --input-base "" --input $(codegen::join , $(printf '%s/ ' "${INT_FQ_APIS[@]}")) --output-package ${OUTPUT_PKG}/${CLIENTSET_PKG_NAME:-clientset} "$@"
fi
- ${GOPATH}/bin/client-gen --clientset-name ${CLIENTSET_NAME_VERSIONED:-versioned} --input-base "" --input $(codegen::join , "${EXT_FQ_APIS[@]}") --output-package ${OUTPUT_PKG}/clientset "$@"
+ ${GOPATH}/bin/client-gen --clientset-name ${CLIENTSET_NAME_VERSIONED:-versioned} --input-base "" --input $(codegen::join , "${EXT_FQ_APIS[@]}") --output-package ${OUTPUT_PKG}/${CLIENTSET_PKG_NAME:-clientset} "$@"
fi
if [ "${GENS}" = "all" ] || grep -qw "lister" <<<"${GENS}"; then
@@ -101,8 +101,8 @@ if [ "${GENS}" = "all" ] || grep -qw "informer" <<<"${GENS}"; then
echo "Generating informers for ${GROUPS_WITH_VERSIONS} at ${OUTPUT_PKG}/informers"
${GOPATH}/bin/informer-gen \
--input-dirs $(codegen::join , "${ALL_FQ_APIS[@]}") \
- --versioned-clientset-package ${OUTPUT_PKG}/clientset/${CLIENTSET_NAME_VERSIONED:-versioned} \
- --internal-clientset-package ${OUTPUT_PKG}/clientset/${CLIENTSET_NAME_INTERNAL:-internalversion} \
+ --versioned-clientset-package ${OUTPUT_PKG}/${CLIENTSET_PKG_NAME:-clientset}/${CLIENTSET_NAME_VERSIONED:-versioned} \
+ --internal-clientset-package ${OUTPUT_PKG}/${CLIENTSET_PKG_NAME:-clientset}/${CLIENTSET_NAME_INTERNAL:-internalversion} \
--listers-package ${OUTPUT_PKG}/listers \
--output-package ${OUTPUT_PKG}/informers \
"$@"
diff --git a/vendor/k8s.io/code-generator/hack/update-codegen.sh b/vendor/k8s.io/code-generator/hack/update-codegen.sh
index 767c2ab36b..2a14fe5277 100755
--- a/vendor/k8s.io/code-generator/hack/update-codegen.sh
+++ b/vendor/k8s.io/code-generator/hack/update-codegen.sh
@@ -30,3 +30,7 @@ $(dirname ${BASH_SOURCE})/../generate-groups.sh all \
k8s.io/code-generator/_examples/crd k8s.io/code-generator/_examples/crd/apis \
"example:v1 example2:v1" \
--output-base "$(dirname ${BASH_SOURCE})/../../.."
+ $(dirname ${BASH_SOURCE})/../generate-groups.sh all \
+ k8s.io/code-generator/_examples/MixedCase k8s.io/code-generator/_examples/MixedCase/apis \
+ "example:v1" \
+ --output-base "$(dirname ${BASH_SOURCE})/../../.."
diff --git a/vendor/k8s.io/code-generator/hack/verify-codegen.sh b/vendor/k8s.io/code-generator/hack/verify-codegen.sh
index 25302228df..497f2a484c 100755
--- a/vendor/k8s.io/code-generator/hack/verify-codegen.sh
+++ b/vendor/k8s.io/code-generator/hack/verify-codegen.sh
@@ -50,4 +50,6 @@ fi
# smoke test
echo "Smoke testing _example by compiling..."
-go build ${SCRIPT_ROOT}/_example/...
\ No newline at end of file
+go build ./${SCRIPT_ROOT}/_examples/crd/...
+go build ./${SCRIPT_ROOT}/_examples/apiserver/...
+go build ./${SCRIPT_ROOT}/_examples/MixedCase/...
diff --git a/vendor/k8s.io/gengo/examples/import-boss/generators/import_restrict.go b/vendor/k8s.io/gengo/examples/import-boss/generators/import_restrict.go
index 182f87af74..ea5716b6ce 100644
--- a/vendor/k8s.io/gengo/examples/import-boss/generators/import_restrict.go
+++ b/vendor/k8s.io/gengo/examples/import-boss/generators/import_restrict.go
@@ -19,6 +19,7 @@ package generators
import (
"encoding/json"
+ "errors"
"fmt"
"io"
"io/ioutil"
@@ -196,6 +197,8 @@ func (importRuleFile) VerifyFile(f *generator.File, path string) error {
return nil
}
+ forbiddenImports := map[string]string{}
+ allowedMismatchedImports := []string{}
for _, r := range rules.Rules {
re, err := regexp.Compile(r.SelectorRegexp)
if err != nil {
@@ -209,7 +212,7 @@ func (importRuleFile) VerifyFile(f *generator.File, path string) error {
for _, forbidden := range r.ForbiddenPrefixes {
klog.V(4).Infof("Checking %v against %v\n", v, forbidden)
if strings.HasPrefix(v, forbidden) {
- return fmt.Errorf("import %v has forbidden prefix %v", v, forbidden)
+ forbiddenImports[v] = forbidden
}
}
found := false
@@ -221,10 +224,25 @@ func (importRuleFile) VerifyFile(f *generator.File, path string) error {
}
}
if !found {
- return fmt.Errorf("import %v did not match any allowed prefix", v)
+ allowedMismatchedImports = append(allowedMismatchedImports, v)
}
}
}
+
+ if len(forbiddenImports) > 0 || len(allowedMismatchedImports) > 0 {
+ var errorBuilder strings.Builder
+ for i, f := range forbiddenImports {
+ fmt.Fprintf(&errorBuilder, "import %v has forbidden prefix %v\n", i, f)
+ }
+ if len(allowedMismatchedImports) > 0 {
+ sort.Sort(sort.StringSlice(allowedMismatchedImports))
+ fmt.Fprintf(&errorBuilder, "the following imports did not match any allowed prefix:\n")
+ for _, i := range allowedMismatchedImports {
+ fmt.Fprintf(&errorBuilder, " %v\n", i)
+ }
+ }
+ return errors.New(errorBuilder.String())
+ }
if len(rules.Rules) > 0 {
klog.V(2).Infof("%v passes rules found in %v\n", path, actualPath)
}
diff --git a/vendor/k8s.io/gengo/parser/parse.go b/vendor/k8s.io/gengo/parser/parse.go
index bf8372d920..1c6c55019c 100644
--- a/vendor/k8s.io/gengo/parser/parse.go
+++ b/vendor/k8s.io/gengo/parser/parse.go
@@ -403,7 +403,7 @@ func (b *Builder) typeCheckPackage(pkgPath importPathString) (*tc.Package, error
}
parsedFiles, ok := b.parsed[pkgPath]
if !ok {
- return nil, fmt.Errorf("No files for pkg %q: %#v", pkgPath, b.parsed)
+ return nil, fmt.Errorf("No files for pkg %q", pkgPath)
}
files := make([]*ast.File, len(parsedFiles))
for i := range parsedFiles {
diff --git a/vendor/k8s.io/klog/examples/coexist_glog/coexist_glog.go b/vendor/k8s.io/klog/examples/coexist_glog/coexist_glog.go
index 71087bc0c6..dd2a3644ea 100644
--- a/vendor/k8s.io/klog/examples/coexist_glog/coexist_glog.go
+++ b/vendor/k8s.io/klog/examples/coexist_glog/coexist_glog.go
@@ -2,27 +2,29 @@ package main
import (
"flag"
+
"github.com/golang/glog"
"k8s.io/klog"
)
-type glogWriter struct{}
-
-func (file *glogWriter) Write(data []byte) (n int, err error) {
- glog.InfoDepth(0, string(data))
- return len(data), nil
-}
-
func main() {
flag.Set("alsologtostderr", "true")
-
- var flags flag.FlagSet
- klog.InitFlags(&flags)
- flags.Set("skip_headers", "true")
flag.Parse()
- klog.SetOutput(&glogWriter{})
- klog.Info("nice to meet you")
+ klogFlags := flag.NewFlagSet("klog", flag.ExitOnError)
+ klog.InitFlags(klogFlags)
+
+ // Sync the glog and klog flags.
+ flag.CommandLine.VisitAll(func(f1 *flag.Flag) {
+ f2 := klogFlags.Lookup(f1.Name)
+ if f2 != nil {
+ value := f1.Value.String()
+ f2.Value.Set(value)
+ }
+ })
+
+ glog.Info("hello from glog!")
+ klog.Info("nice to meet you, I'm klog")
glog.Flush()
klog.Flush()
}
diff --git a/vendor/k8s.io/klog/examples/klogr/main.go b/vendor/k8s.io/klog/examples/klogr/main.go
new file mode 100644
index 0000000000..a502642871
--- /dev/null
+++ b/vendor/k8s.io/klog/examples/klogr/main.go
@@ -0,0 +1,27 @@
+package main
+
+import (
+ "flag"
+
+ "k8s.io/klog"
+ "k8s.io/klog/klogr"
+)
+
+type myError struct {
+ str string
+}
+
+func (e myError) Error() string {
+ return e.str
+}
+
+func main() {
+ flag.Set("v", "3")
+ flag.Parse()
+ log := klogr.New().WithName("MyName").WithValues("user", "you")
+ log.Info("hello", "val1", 1, "val2", map[string]int{"k": 1})
+ log.V(3).Info("nice to meet you")
+ log.Error(nil, "uh oh", "trouble", true, "reasons", []float64{0.1, 0.11, 3.14})
+ log.Error(myError{"an error occurred"}, "goodbye", "code", -1)
+ klog.Flush()
+}
diff --git a/vendor/k8s.io/klog/glog/glog.go b/vendor/k8s.io/klog/glog/glog.go
deleted file mode 100644
index f4c0c1ff21..0000000000
--- a/vendor/k8s.io/klog/glog/glog.go
+++ /dev/null
@@ -1,160 +0,0 @@
-// Copyright 2017 Istio Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Package glog exposes an API subset of the [glog](https://github.com/golang/glog) package.
-// All logging state delivered to this package is shunted to the global [klog logger](ttps://github.com/kubernetes/klog).
-//
-// We depend on some downstream components that use glog for logging. This package makes it so we can intercept
-// the calls to glog and redirect them to klog and thus produce a consistent log for our processes.
-package glog
-
-import (
- "k8s.io/klog"
-)
-
-// Level is a shim
-type Level int32
-
-// Verbose is a shim
-type Verbose bool
-
-// Flush is a shim
-func Flush() {
-}
-
-// V is a shim
-func V(level Level) Verbose {
- return Verbose(bool(klog.V(klog.Level(int32(level)))))
-}
-
-// Info is a shim
-func (v Verbose) Info(args ...interface{}) {
- if v {
- klog.Info(args...)
- }
-}
-
-// Infoln is a shim
-func (v Verbose) Infoln(args ...interface{}) {
- if v {
- klog.Infoln(args...)
- }
-}
-
-// Infof is a shim
-func (v Verbose) Infof(format string, args ...interface{}) {
- if v {
- klog.Infof(format, args...)
- }
-}
-
-// Info is a shim
-func Info(args ...interface{}) {
- klog.Info(args...)
-}
-
-// InfoDepth is a shim
-func InfoDepth(depth int, args ...interface{}) {
- klog.InfoDepth(depth, args...)
-}
-
-// Infoln is a shim
-func Infoln(args ...interface{}) {
- klog.Infoln(args...)
-}
-
-// Infof is a shim
-func Infof(format string, args ...interface{}) {
- klog.Infof(format, args...)
-}
-
-// Warning is a shim
-func Warning(args ...interface{}) {
- klog.Warning(args...)
-}
-
-// WarningDepth is a shim
-func WarningDepth(depth int, args ...interface{}) {
- klog.WarningDepth(depth, args...)
-}
-
-// Warningln is a shim
-func Warningln(args ...interface{}) {
- klog.Warningln(args...)
-}
-
-// Warningf is a shim
-func Warningf(format string, args ...interface{}) {
- klog.Warningf(format, args...)
-}
-
-// Error is a shim
-func Error(args ...interface{}) {
- klog.Error(args...)
-}
-
-// ErrorDepth is a shim
-func ErrorDepth(depth int, args ...interface{}) {
- klog.ErrorDepth(depth, args...)
-}
-
-// Errorln is a shim
-func Errorln(args ...interface{}) {
- klog.Errorln(args...)
-}
-
-// Errorf is a shim
-func Errorf(format string, args ...interface{}) {
- klog.Errorf(format, args...)
-}
-
-// Fatal is a shim
-func Fatal(args ...interface{}) {
- klog.Fatal(args...)
-}
-
-// FatalDepth is a shim
-func FatalDepth(depth int, args ...interface{}) {
- klog.FatalDepth(depth, args...)
-}
-
-// Fatalln is a shim
-func Fatalln(args ...interface{}) {
- klog.Fatalln(args...)
-}
-
-// Fatalf is a shim
-func Fatalf(format string, args ...interface{}) {
- klog.Fatalf(format, args...)
-}
-
-// Exit is a shim
-func Exit(args ...interface{}) {
- klog.Exit(args...)
-}
-
-// ExitDepth is a shim
-func ExitDepth(depth int, args ...interface{}) {
- klog.ExitDepth(depth, args...)
-}
-
-// Exitln is a shim
-func Exitln(args ...interface{}) {
- klog.Exitln(args...)
-}
-
-// Exitf is a shim
-func Exitf(format string, args ...interface{}) {
- klog.Exitf(format, args...)
-}
diff --git a/vendor/k8s.io/klog/klog.go b/vendor/k8s.io/klog/klog.go
index 13bcc81a75..733d14b731 100644
--- a/vendor/k8s.io/klog/klog.go
+++ b/vendor/k8s.io/klog/klog.go
@@ -43,7 +43,7 @@
// Logs are written to standard error instead of to files.
// -alsologtostderr=false
// Logs are written to standard error as well as to files.
-// -stderrthreshold=ERROR
+// -stderrthreshold=INFO
// Log events at or above this severity are logged to standard
// error as well as to files.
// -log_dir=""
@@ -396,8 +396,8 @@ type flushSyncWriter interface {
}
func init() {
- // Default stderrThreshold is ERROR.
- logging.stderrThreshold = errorLog
+ // Default stderrThreshold is INFO.
+ logging.stderrThreshold = infoLog
logging.setVState(0, nil, false)
go logging.flushDaemon()
@@ -410,9 +410,9 @@ func InitFlags(flagset *flag.FlagSet) {
}
flagset.StringVar(&logging.logDir, "log_dir", "", "If non-empty, write log files in this directory")
flagset.StringVar(&logging.logFile, "log_file", "", "If non-empty, use this log file")
- flagset.BoolVar(&logging.toStderr, "logtostderr", false, "log to standard error instead of files")
+ flagset.BoolVar(&logging.toStderr, "logtostderr", true, "log to standard error instead of files")
flagset.BoolVar(&logging.alsoToStderr, "alsologtostderr", false, "log to standard error as well as files")
- flagset.Var(&logging.verbosity, "v", "log level for V logs")
+ flagset.Var(&logging.verbosity, "v", "number for the log level verbosity")
flagset.BoolVar(&logging.skipHeaders, "skip_headers", false, "If true, avoid header prefixes in the log messages")
flagset.Var(&logging.stderrThreshold, "stderrthreshold", "logs at or above this threshold go to stderr")
flagset.Var(&logging.vmodule, "vmodule", "comma-separated list of pattern=N settings for file-filtered logging")
@@ -739,7 +739,9 @@ func (l *loggingT) output(s severity, buf *buffer, file string, line int, alsoTo
}
data := buf.Bytes()
if l.toStderr {
- os.Stderr.Write(data)
+ if s >= l.stderrThreshold.get() {
+ os.Stderr.Write(data)
+ }
} else {
if alsoToStderr || l.alsoToStderr || s >= l.stderrThreshold.get() {
os.Stderr.Write(data)
@@ -934,7 +936,7 @@ func (l *loggingT) createFiles(sev severity) error {
return nil
}
-const flushInterval = 30 * time.Second
+const flushInterval = 5 * time.Second
// flushDaemon periodically flushes the log file buffers.
func (l *loggingT) flushDaemon() {
diff --git a/vendor/k8s.io/klog/klogr/klogr.go b/vendor/k8s.io/klog/klogr/klogr.go
new file mode 100644
index 0000000000..e09e82212e
--- /dev/null
+++ b/vendor/k8s.io/klog/klogr/klogr.go
@@ -0,0 +1,147 @@
+// Package klogr implements github.com/go-logr/logr.Logger in terms of
+// k8s.io/klog.
+package klogr
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+ "runtime"
+ "sort"
+
+ "github.com/go-logr/logr"
+ "k8s.io/klog"
+)
+
+// New returns a logr.Logger which is implemented by klog.
+func New() logr.Logger {
+ return klogger{
+ level: 0,
+ prefix: "",
+ values: nil,
+ }
+}
+
+type klogger struct {
+ level int
+ prefix string
+ values []interface{}
+}
+
+func (l klogger) clone() klogger {
+ return klogger{
+ level: l.level,
+ prefix: l.prefix,
+ values: copySlice(l.values),
+ }
+}
+
+func copySlice(in []interface{}) []interface{} {
+ out := make([]interface{}, len(in))
+ copy(out, in)
+ return out
+}
+
+// Magic string for intermediate frames that we should ignore.
+const autogeneratedFrameName = ""
+
+// Discover how many frames we need to climb to find the caller. This approach
+// was suggested by Ian Lance Taylor of the Go team, so it *should* be safe
+// enough (famous last words).
+func framesToCaller() int {
+ // 1 is the immediate caller. 3 should be too many.
+ for i := 1; i < 3; i++ {
+ _, file, _, _ := runtime.Caller(i + 1) // +1 for this function's frame
+ if file != autogeneratedFrameName {
+ return i
+ }
+ }
+ return 1 // something went wrong, this is safe
+}
+
+func flatten(kvList ...interface{}) string {
+ keys := make([]string, 0, len(kvList))
+ vals := make(map[string]interface{}, len(kvList))
+ for i := 0; i < len(kvList); i += 2 {
+ k, ok := kvList[i].(string)
+ if !ok {
+ panic(fmt.Sprintf("key is not a string: %s", pretty(kvList[i])))
+ }
+ var v interface{}
+ if i+1 < len(kvList) {
+ v = kvList[i+1]
+ }
+ keys = append(keys, k)
+ vals[k] = v
+ }
+ sort.Strings(keys)
+ buf := bytes.Buffer{}
+ for i, k := range keys {
+ v := vals[k]
+ if i > 0 {
+ buf.WriteRune(' ')
+ }
+ buf.WriteString(pretty(k))
+ buf.WriteString("=")
+ buf.WriteString(pretty(v))
+ }
+ return buf.String()
+}
+
+func pretty(value interface{}) string {
+ jb, _ := json.Marshal(value)
+ return string(jb)
+}
+
+func (l klogger) Info(msg string, kvList ...interface{}) {
+ if l.Enabled() {
+ lvlStr := flatten("level", l.level)
+ msgStr := flatten("msg", msg)
+ fixedStr := flatten(l.values...)
+ userStr := flatten(kvList...)
+ klog.InfoDepth(framesToCaller(), l.prefix, " ", lvlStr, " ", msgStr, " ", fixedStr, " ", userStr)
+ }
+}
+
+func (l klogger) Enabled() bool {
+ return bool(klog.V(klog.Level(l.level)))
+}
+
+func (l klogger) Error(err error, msg string, kvList ...interface{}) {
+ msgStr := flatten("msg", msg)
+ var loggableErr interface{}
+ if err != nil {
+ loggableErr = err.Error()
+ }
+ errStr := flatten("error", loggableErr)
+ fixedStr := flatten(l.values...)
+ userStr := flatten(kvList...)
+ klog.ErrorDepth(framesToCaller(), l.prefix, " ", msgStr, " ", errStr, " ", fixedStr, " ", userStr)
+}
+
+func (l klogger) V(level int) logr.InfoLogger {
+ new := l.clone()
+ new.level = level
+ return new
+}
+
+// WithName returns a new logr.Logger with the specified name appended. klogr
+// uses '/' characters to separate name elements. Callers should not pass '/'
+// in the provided name string, but this library does not actually enforce that.
+func (l klogger) WithName(name string) logr.Logger {
+ new := l.clone()
+ if len(l.prefix) > 0 {
+ new.prefix = l.prefix + "/"
+ }
+ new.prefix += name
+ return new
+}
+
+func (l klogger) WithValues(kvList ...interface{}) logr.Logger {
+ new := l.clone()
+ new.values = append(new.values, kvList...)
+ return new
+}
+
+var _ logr.Logger = klogger{}
+var _ logr.InfoLogger = klogger{}